반응형


목차


1. 디피 헬만 알고리즘(Diffie-Hellman Algorithm)이란? 


2. 디피 헬만 알고리즘(Diffie-Hellman Algorithm) 동작 원리 


3. 디피 헬만 알고리즘 취약점 


4. 디피 헬만을 2048 bit로 바꿔야 하는 이유 





1. 디피 헬만 알고리즘(Diffie-Hellman Algorithm)이란?


DH 알고리즘의 핵심은 상대방의 공개키와 나의 개인키를 이용하여 계산을 하면 비밀키가 나온다는 것이다. 


그 후 나와 상대방은 비밀키를 사용하여 데이터를 암호화한 후 전달하면 된다.


이러한 DH 알고리즘은 "키 교환(key exchange)" 알고리즘으로 대칭키를 공유하는데 사용한다. 


이는 암호화나 서명을 위한 것은 아니다.


이는 이산 대수 문제(Discrete Logarithm Problem)(혹은 이산 로그)라는 방식을 이용하는데


일때 g와 x와 p를 안다면 y는 구하기 쉽지만


g와 y와 p를 알땐 x를 구하기는 어렵다는 방식에 착안하여 만들어진 알고리즘이다.

  



우선 DH 알고리즘을 보기 전 아래 동영상을 한번 보자.


동영상을 꼭 보자.







2. 디피 헬만 알고리즘(Diffie-Hellman Algorithm) 동작 원리



위의 동영상처럼 공개적으로 교환할 발생기(Generator)를 생성한다.


이는 g라고 하고 우리가 mod 할 값 p는 소수로 지정한다.


1. 이제 A는 개인키 a를 이용하여 를 생성한다.


2. 마찬가지로 B는 개인키 b를 이용하여 를 생성한다.


3. 이제 A는 B에게 를 보내고 B는 A에게 를 보낸다.


4. 마지막으로 A는 자신의 개인키 a를 이용하여  를 만들고


5. B는 자신의 개인키 b를 이용하여 를 만든다.


6. 이제 A와 B는 새롭게 생성된 키를 대칭키(비밀키)로 이용한다.

(이때 A와 B가 교환하여 결합한 값이 서로 같다는 것을 확인하자.)


이때 공격자인 T가 있다고 가정해보자.


T는 A와 B사이에서 데이터를 가로채기 시작하는데


공격자가 가로챈 값들로는 절대 를 만들 수 없음을 알 수 있다.


( 공격자는 만들어봤자 밖에 만들지 못한다. )










3. 디피 헬만 알고리즘 취약점


디피 헬만 알고리즘은 대칭키를 비밀스럽게 만들 수 있다는 점에서 장점이 있지만


결국 T가 값을 조작해버리면 Man In the Middle attack(MIM)에 당하게 된다.



1. A와 B가 서로 g를 이용하여 와 를 보낸다.


2. 중간에서 T가 t라는 개인키로 서로에게 보내고 T는 와 를 이용하여 

 와 를 만든다.


3. A와 B는 눈치채지 못하고 t가 준 를 이용하여 서로  와 를 만든다.


4. 이제 A, B, T 모두 같은 대칭키를 가지게 되었다.(공격을 당할 수 있게 됐다.)





4. 디피 헬만을 2048 bit로 바꿔야 하는 이유


https://rsec.kr/?p=242





반응형