정보보안 일반 - 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=gabmodp→K
B : yba=[ga]bmodp=gabmodp→K
K가 비밀키
여기에서 계산된 K는 A와 B만이 계산할 수 있는 비밀정보로서 두 사람은 이것을 비밀키로 사용할 수 있다.
A와 B 이외의 공격자들은 전송되는 정보인 ya와 yb를 얻을 수 있겠지만, 이것으로부터 K=gabmodp를 계산할 수 없다. 이것을 계산적 디피헬만 문제(Computational Diffie-Hellman problem)라고 하는데, 어려운 문제로 알려져 있다.
이러한 키합의 방식은 SSL(secure socket layer)과 같은 세션 암호화에 사용된다. 웹브라우저와 웹서버 간에 결제정보와 같은 중요 정보를 전송하고자 하는 경우, 이것이 공격자에게 노출되면 안 되기 때문에 암호화해서 전송한다. 그런데 암호화에 사용되는 비밀키를 결정하기 위해 웹브라우저와 웹서버는 서로 만날 수 없고, 이러한 키합의 방식을 이용하여 ya와 yb를 주고받은 후 비밀키 K를 계산하여 암호화를 할 수 있다.
[출처]: [네이버 지식백과] 여러 가지 암호 프로토콜 (훤히 보이는 정보보호, 2008. 11. 25., 정교일, 이병천, 진승헌, 조현숙)
'IT > 정보보안' 카테고리의 다른 글
정보보안 일반 - PRNG, HRNG, TRNG (0) | 2019.08.26 |
---|---|
정보보안 일반 - 전수 공격, 통계적 분석 공격, 차분 공격, 선형 공격, 수학적 분석 공격 (0) | 2019.08.23 |
정보보안 보안 - 접근 통제 정책 (0) | 2019.08.23 |
애플리케이션 보안 - 하트블리드 (Heartbleed) (0) | 2019.08.22 |
애플리케이션 보안 - 전자 문서 (EDI, XML) (0) | 2019.08.22 |
댓글