디피-헬만 키교환 알고리즘 (Diffie-Helman Key Exchange)

암호학은 어렵다.

아마도 나 처럼 수학에 약한 사람들은 암호학의 수식만 봐도 머리가 어지러워지기 시작할 것이다. 그리고 암호학 전문가가 보안전문가라는데 나는 동의하고 싶지 않다. 정보보안에 필요한 수학의 한 분야일 뿐이기 때문이다. 하지만 그 원리에 대한 기초적인 이해는 보안 전문가라면 반드시 필요하다.

데이터를 암호화하는 기술은 사람들이 “비밀”을 갖게 된 시점부터 그 필요성이 대두되었고 사람들이 모인 조직이 만들어지면서 조직내의 비밀을 유지하기 위해 데이터를 암호화하는…일명 “암호학”이 발전하기 시작하였다.

대칭키 암호화 알고리즘의 문제점

암호학은 비밀을 공유할 사람들만이 암호화하는데 사용할 “키(Key)”를 이용해 데이터를 암화화와 복호화(암호화 데이터를 원상태의 평문으로 변환하는 과정)하는 방향으로 발전하였다. 당연히 초기에는 암호화와 복호화에 동일한 키를 사용하였는데 이렇게 암호화 키와 복호화 키가 같은 암호화 방식을 “대칭키 암호화”라고 부른다.

하지만 대칭키 암호화 알고리즘의 키는 항상 유출의 가능성이 존재하고 암호키 유출 시 암호화된 모든 통신은 노출된다. 이렇게 한번 암호키가 노출되면 이후 주고받을 암호키도 노출되기 때문에 매우 치명적이다. 그래서 데이터를 대칭키로 암복호화하여 송수신할 때 송신자와 수신자가 암호키를 안전하게 주고 받는 암호키 분배 과정의 보안을 위해 사용하는 암호알고리즘이 비대칭키 암호알고리즘이다.

비대칭키 암호화

공개키 암호알고리즘이라고도 불리는 비대칭키 암호화는 말 그대로 암호화 키와 복호화 키가 비대칭, 즉 서로 다른 암호알고리즘이다. 대칭키 키 암호화 알고리즘을 완전하게 대치할 수 있는 완성된 암호알고리즘이지만 속도와 편의성 등의 문제로 인해 현재까지는 모든 평문을 암호화하는 형태로는 많이 사용되지 않고 데이터의 크기가 작은 대칭키 암호화에 사용할 암호키의 안전한 키교환 혹은 금융거래 등에서만 사용되고 있다.

디피-헬만 키교환 알고리즘 (Diffie-Helman Key Exchange)

흔히 디피-헬만 알고리즘을 암호알고리즘이라고 말하는 경우가 있는데 그건 아니다. 디피-헬만 알고리즘은 송신자와 수신자가 안전하게 통신할 대칭키 알고리즘에 사용할 암호키를 생성하는 종단간 키 교환 알고리즘이다. 하지만 이름과는 다르게 암호키 자체를 송신자와 수신자가 통신을 통해 주고 받지 않으며 암호화 알고리즘은 아니다.

먼저 Diffie-Helman의 키 생성 방식을 보면..

송신자, 수신자, 해커가 있다.송신자가 임의로 선택한 소수 P와 정수 G (1부터 P-1까지 중 하나) 를 수신자에게 보낸다. (해커는 이 정보를 가로채 알 수 있다.)송신자는 임의로 정수 A를 선택한다. (수신자와 해커는 알 수 없다.)수신자도 임의로 정수 B를 선택한다. (송신자와 해커는 알 수 없다.)송신자는 G의 A제곱을 P로 나눈 결과값 a를 구한다. (수신자도 G의 B제곱을 P로 나눈 결과값 b를 구한다.송신자와 수신자는 서로 a와 b를 교환한다. (해커는 이 정보를 가로챌 수 있다.)송신자는 b를 받아 b의 A제곱을 P로 나눈 나머지 BB를 구한다.수신자는 a를 받아 a의 B제곱을 P로 나눈 나머지 AA를 구한다.

마지막에 송신자와 수신자가 수학적 공식에 의해 구한 BB와 AA가 이후의 통신에 사용할 암호키(대칭키)이며 BB와 AA는 동일한 값을 갖는다. 즉 AA == BB라는 이야기이며 송신자와 수신자가 안전하게 데이터 암호화에 사용할 대칭키(비밀키)를 교환(실제로는 암호키를 주고받는 것은 아님)하는 키 교환 알고리즘 중 하나이다.

알고리즘 설명

디피헬만의 알고리즘 설명은 생략한다. 다만 위키백과에서 아주 쉽게 실제 사례를 들어 설명해주고 있는 페이지가 있다.

참고하기 바란다.

위키백과의 디피-헬만 키 교환

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top