![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/20HPK/btqSZyjyTxh/zm7wKuNa3UEFDI2QcckKOk/img.png)
이번에 학교에서 학부생 인턴 연구 주제로 동형암호에 대해 진행하였다. 동형 암호 내용 자체가 학부생 수준에서 이해하기 어렵다고 교수님도 그려셔서 그냥 개념과 특징만 정리해보겠다. 보고서에는 SEAL이랑 HElib 사용한 것도 첨부하였는데 그건 깃헙이랑 보고서 읽어봐도 무슨 원리로 한지 이해가 되지 않고 (너무 어려운 대수학 내용이 가득하다.) 그냥 유튜브에 설치 방법 따라해서 소스코드 파일에 있는 예제들 돌려본 수준이라 따로 올리진 않겠다. 0. 최신 암호 시스템의 필요성 현재 양자 컴퓨팅에 관한 연구가 활발하다. 제작년인가 구글에서 슈퍼컴퓨터로 1만년 걸리는 계산을 양자컴퓨터로 200초만에 해결했다는 기사가 나왔다. www.aitimes.kr/news/articleView.html?idxno=15037..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bz2Y5v/btqRqcbyZFf/yyUqTZcItPykC7cSYFMuT0/img.png)
SHA-1,2,3까지 현재 나왔다. MD5가 깨지면서 대체된 해쉬 함수 기반 암호이다. 우선 해쉬 함수는 임의의 길이의 input을 넣어도 일정 길이의 output이 나오는 함수를 의미한다. 대표적인 예로 modulo 연산이 존재한다. Z_10에서 input이 무엇이더라도 mod 10 연산에 의해 0~9 값 중 하나로 결정된다. MD는 깨졌지만 SHA-1의 기반이 된 암호이므로 살펴보자. 기본 MD 함수 구조는 다음과 같다. MD4 : f : {0,1}^128 x {0,1}^512 -> {0,1}^128, h_i = f(h_(i-1), m_i) 의 구조를 가진다. 48step(3rounds)를 이룬다. MD5: f : {0,1}^128 x {0,1}^512 -> {0,1}^128, h_i = f(h_(i..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bFWbJW/btqRqcCyzdW/kfKOHMa95y3XLv7kECpggk/img.png)
Integrity의 뜻은 다음과 같다. If Alice need to be sure that the contents of her documents will not be changed, she can put her fingerprint at the bottom of the document. 기본적으로 hash 함수에 대해 다루게 되는데 hash를 이용한 암호인 sha-2 등은 뒤에서 다루겠다. hash 함수가 지녀야할 조건 3가지는 다음과 같다. 1. Preimage Resistance 2. Second Preimage Resistance 3. Collision Resistance 1. Preimage Resistance 2. Second Preimage Resistance 3. Collision Resi..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/mZZcQ/btqRx0t2BVQ/Q7wVatA2GQ68EnTVRzi6c0/img.png)
Diffie-Hellman Key Exchange, Discrete Logarithm Problem (DLP) 등에 기반하여 만든 암호시스템이다. 키 생성과 공개키, 개인키는 다음과 같다. ECC는 Elgamal을 log 연산한 것과 유사한 식을 지닌다. ECC는 Elliptic Curve Cryptosystem으로 Elliptic Curve (EC)를 이용한다. EC의 기본 꼴은 아래와 같다. 그리고 EC에서의 연산은 다음과 같이 정의된다. ECC의 키 생성과 공개키, 개인키는 다음과 같다.