본문 바로가기

정보보안 일반 - Diffie-Hellman 프로토콜

액트 2019. 8. 23.
반응형

정보보안 일반 Diffie-Hellman 프로토콜

 


다음 지문이 설명하고 있는 프로토콜은? 4
[보기]
- 공유할 암호키를 계산하여 만들어낸다.
- 유한체상의 이산대수문제를 풀기 어려움에 기반한다. 
- 중간자 공격이나 재전송 공격에는 취약하다.
① Needham-Schroeder 프로토콜
② 공개키 암호 
③ KDC 기반 키 분배
④ Diffie-Hellman 프로토콜


키 합의 프로토콜

 

암호기술을 이용해 여러 가지 유용한 프로토콜들을 안전하게 수행하는 재미있는 사례들이 많이 있다. 여기에서는 몇 가지 대표적인 사례들을 소개하는데, 비대면 통신 프로토콜에서 통상적으로 이루어지기 어려운 문제들을 암호학을 이용하면 어떻게 구현 가능한지 알 수 있다.

만나지 않고도 비밀키를 공유할 수 있다 : 키합의

A와 B 두 사람은 인터넷을 통해 안전한 통신하려고 함

암호 알고리즘으로 암호화해서 메시지를 전송

 

먼저 암호 알고리즘에 사용할 비밀키를 공유해야 한다.

 (직접 만나서 하면 문제될 게 없다.)

 

위 같은 목적에 사용할 수 있는 방법이 키합의(key agreement) 프로토콜이다.

디피헬만(Diffie-Hellman) 프로토콜을 이용한 키합의 방식이 대표적이다

 

이것은 이산대수 문제를 푸는 것이 어렵다는 사실에 기반하여 안전하게 키를 합의하는 방식이다. 

 

modp를 사용하는 이산대수계에서 생성자를 g라고 할 때,

1. A는 임의의 난수 a를 선택하고 ya=gamodp를 계산하여 B에게 전송한다.
2. B는 임의의 난수 b를 선택하고 yb=gbmodp를 계산하여 A에게 전송한다.
3. A와 B는 자신의 난수와 상대방으로부터 받은 정보를 이용하여 똑같은 정보 K를 계산할 수 있다.
A : yab=[gb]amodp=gabmodpK
B : yba=[ga]bmodp=gabmodpK

K가 비밀키

 

여기에서 계산된 K는 A와 B만이 계산할 수 있는 비밀정보로서 두 사람은 이것을 비밀키로 사용할 수 있다.

 

A와 B 이외의 공격자들은 전송되는 정보인 ya yb를 얻을 수 있겠지만, 이것으로부터 K=gabmodp를 계산할 수 없다. 이것을 계산적 디피헬만 문제(Computational Diffie-Hellman problem)라고 하는데, 어려운 문제로 알려져 있다.

 

이러한 키합의 방식은 SSL(secure socket layer)과 같은 세션 암호화에 사용된다. 웹브라우저와 웹서버 간에 결제정보와 같은 중요 정보를 전송하고자 하는 경우, 이것이 공격자에게 노출되면 안 되기 때문에 암호화해서 전송한다. 그런데 암호화에 사용되는 비밀키를 결정하기 위해 웹브라우저와 웹서버는 서로 만날 수 없고, 이러한 키합의 방식을 이용하여 ya yb를 주고받은 후 비밀키 K를 계산하여 암호화를 할 수 있다.

 

 

 

 

 

[출처]: [네이버 지식백과] 여러 가지 암호 프로토콜 (훤히 보이는 정보보호, 2008. 11. 25., 정교일, 이병천, 진승헌, 조현숙)

 

 

반응형

댓글