×
Crocus
공부한 내용을 정리하는 블로그로 시작한
Crocus는 2014년 1월 14일 부터 시작하여
현재 월 6만명, 총 1,583,109명의 방문자 수를 기록하고 있습니다.
Donation
이제 많은 사용자들이 이용하는 만큼
더 다양한 서비스 개발/제공을 위해 후원금을 모금하고자 합니다.
후원을 해주시는 분들은 Donators 명단에 성명, 후원금을 기입해드리며
Crocus 블로그가 아닌 다른 곳에 정리해둔 저만의 내용을 공유해 드리고자 합니다.
Account
예금주 : 고관우
신한은행 : 110-334-866541
카카오뱅크 : 3333-01-7888060

👉 후원 페이지 바로가기 Donators
익명 : 5000원(Crocus응원합니다.)
busyhuman: 5000원(유용한 지식 감사합니다.)
익명 : 5000원(알고리즘 학습러)
728x90
반응형


목차


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





반응형
  1. 2020.04.28 20:38

    비밀댓글입니다