암호학 (4)공개키 암호

2020. 1. 14. 11:21Security/알고리즘&암호학

* 공개키 암호 시스템

- 두 개의 다른 키를 사용

- 두 개의 키중 하나는 인터넷에 공개(공개키), 하나는 자신만이 소유(개인키)

- 개인키가 따로 있기때문에 송,수신자가 상면하지 않아도 된다.

- 공개키로 암호화하면 반드시 개인키로 복호화, 개인키로 암호화하면 반드시 공개키로 복호화한다.

1. A가 B에게만 평문을 전송 하고 싶다.

2. A가 B의 공개키로 평문을 암호문으로 만든다.

3. B는 개인키로 암호문을 복호화한다.

4. 따라서 개인키의 관리를 잘 해야 한다.

 

* 공개키 암호 시스템의 응용

공개키 암호의 기밀성

공개키를 이용한 인증

- 보낸 사람이 누군지 증명(근원지 증명)이 되기때문에 부인방지가 불가능하다.

- 개인키로 암호화된 문서를 암호문보다는 서명문이라고 부른다.

- 누구나 서명문의 조회는 가능하지만 개인키가 없기때문에 작성은 불가능하다. 

 

공개키를 이용한 기밀 통신과 서명

1. 송신자(A)가 자신의 개인키로 평문을 암호화해서 서명문으로 만든다. 

2. 서명문을 수신자(B)의 공개키로 암호화해서 암호문으로 바꾼다. 

3. 수신자(B)가 자신의 개인키로 암호문을 복호화해서 서명문으로 바꾼다.

4. 수신자(B)가 서명문을 A의 공개키로 복호화해서 평문으로 바꾼다. 이 과정에서 송신자가 누구인지 확인

 

- 그렇지만 이 방법은 느려서 사용하지 않는다.

- 여기서 1과 2의 순서를 바꿔도 무방하지만 순서를 바꾸지 않는다. 

 

* 공개키 암호 시스템의 종류

공개키 암호 시스템의 사용
- 암호/복호(수신자의 공개키로 메시지 암호)
- 디지털 서명(송신자의 개인키로 메시지 서명)
- 키 교환(세션키를 교환하기 위해 사용)

- 공개키 암호는 수학적인 난제를 이용 암호화를 수행.

 

공개키 알고리즘의 조건 (Diffie와 Hellman)
- 키 쌍(공개키 KU, 개인키 KR)의 생성이 쉽다.
- 다음 식과 같은 암호문의 생성이 쉽다.

-> C는 암호문, E는 암호화, M은 평문.   M(평문)을 b(수신자)의 KU(공개키)로 E(암호화)한 것이 C(암호문)이다.

 

- 다음식과 같은 암호문의 복구화가 쉽다.

-> C(암호문)을 b(수신자)의 개인키(KR)로 D(복호화)하면 M(평문이 나온다)

 

- 공개키 KUb로부터 개인키 KRb를 결정하는 것은 어렵다.
- 공개키 KUb와 암호문 C로부터 메시지 M의 복구가 어렵다.
- 암호와 복호 기능이 다음과 같이 적용 가능하다.

위의 수식은 서명문을 만드는 과정을 의미

 

[간단한 실습]

mod5의 

- mod 5는 행과 열에 모든 잉여계가 존재하고 mod4는 행과 열에 모든 잉여계가 존재하지 않는다.

- mod 5에서 2*3=1이기때문에 a*2=b라면 b*3=a이다. 여기서 2는 공개키, 3은 개인키이다.

- 일반적인 연산에서 정수끼리의 역원은 존재할 수 없지만 mod 연산에서는 가능하다.

 

* 공개키 암호 분석

공격 유형
- 전사적 공격에 취약

-> 키의 크기를 크게 함으로써 방지(상대적으로 속도가 느려짐)

 

- 공개키로부터 개인키를 계산하는 방법

-> 수학적으로 계산이 불가능함을 증명하지 못 함

 

- 가능한 메시지 공격(모든 가능한 메시지를 공개키로 암호화하여 암호문과 비교)

-> 메시지에 임의의 비트를 추가함으로써 방지

 

'Security > 알고리즘&암호학' 카테고리의 다른 글

암호학 (6)전자 서명&인증서  (0) 2020.01.21
암호학 (5)키 관리&hash 함수  (0) 2020.01.16
암호학 (3)대칭키(비밀키) 암호  (0) 2020.01.13
암호학 (2)고전적 암호  (0) 2020.01.07
암호학  (0) 2020.01.06