티스토리 뷰

암호학

키 분배 프로토콜

삼전동해커 2020. 10. 5. 15:30

대칭키로 암호화를 진행할 때 키를 전송해야 한다. 이 때 스니핑에 의해 중간에 키가 가로채 진다면 보안적으로 문제가 발생한다. 이를 방지하기 위한 프로토콜을 공부해봤다.


Diffie-Hellman 키 합의

D-H프로토콜은 양쪽 통신주체가 KDC(키 분배센터)없이 대칭 세션 키를 생성한다.
양 쪽은 p,g를 선택한다. p는 300자리가 넘는 매우 큰 소수, g는 군<Zp,x>의 원소로서 위수가 p-1인 생성자이다. p,g는 비밀일 필요는 없다.

1)Alice는 0<=x<=p-1안에서 x를 선택해 R1=q^x mod p를 계산한다.
2)Bob은 0<=y<=p-1 안에서 y를 선택해 R2 =q^x mod p를 계산한다.
3)Alice는 R1을 전송.
4)Bob은 R2를 전송.
5)Alice는 K=(R2)^x mod p를 계산.
6)Bob은 K=(R1)^y mod p를 계산.

결국 K=(q^x mod p)^y mod p = (q^y mod p)^x mod p = g^xy mod p이기 때문에 둘은 같은 값을 가진다.

D-H의 취약점
1)이산대수공격 : 공격자가 R1과 R2를 가로채 R1=q^x mod p에서 x를 구하고 R2=q^y mod p에서 y를 구하면 대칭키 K를 구할 수 있다.

2)중간자 공격 : 굳이 x와 y를 구하지 않고, 공격자가 2개의 키를 만들어 하나는 공격자와 Alice사이, 다른 하나는 공격자와 Bob사이에서 사용한다.
Alice는 R1을 만들어 Bob인줄 알고 공격자에게 전송하고, Bob은 R3를 만들어 Alice인줄 알고 공격자에게 전송한다. 공격자는 Alice와 Bob으로 부터 받은 R1,R3를 이용해 원하는 메세지를 가로챌 수 있다.

국대국 합의(station to station)

D-H프로토콜을 기반으로 중간자 공격을 막기위한 방법이다.

1)Alice는 R1을 Bob에게 보낸다.
2)Bob은 R2를 계산한 후, Alice의 ID | R1 | R2를 개인 키로 서명한다. R2,서명,자신의 공개 키 인증서를 Alice에게 보낸다. 메세지의 암호화는 세션 키로 한다.
3)Alice는 세션 키를 계산한 후, Bob의 서명이 검증 되면 Bob의 ID | R1 | R2를 개인 키로 서명한 후 전송한다. 메세지의 암호화는 세션 키로 한다.
4)Alice의 서명이 검증되면 Bob은 세션 키를 받아 들인다.


국대국 프로토콜의 안정성
공격자가 R1을 가로챈 뒤, R2를 Alice에게 보내 Bob인 것 처럼 할 수 없다. 공격자는 Bob의 개인 키를 알 수 없기 때문에 서명을 생성 할 수 없다. 서명을 꾸몄다 하더라도 인증서에 들어 있는 Bob의 공개 키로 검증되지 않는다.


'암호학' 카테고리의 다른 글

전자서명  (0) 2020.10.13
블럭 암호 운용 방식  (0) 2020.10.13
대칭키, 공개키  (0) 2020.10.13
메세지 인증  (0) 2020.10.03
해시함수란?hash function?  (0) 2020.08.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함