[정의] 두 사용자가 사전에 어떠한 비밀 교환 없이도 공중 통신망 환경에서 공통키를 교환하게 해주는 이산대수 기반의 알고리즘. 

 

[특징] 중간자 공격에 취약. 중간에서 바꾼 값을 양쪽에 전달하여 공격 가능.


[쉬운 예시(색깔)]

A와 B가 키 교환을 진행

공개색깔 : 노랑

A의 비밀색 : 빨강
B의 비밀색 : 파랑

 

1) A는 노랑과 빨강을 섞어서 B에게 보냄
2) B는 노랑과 파랑을 섞어서 A에게 보냄


서로 받은 색깔은

A는 노랑+파랑

B는 노랑+빨강

 

3) 각자의 비밀색을 합침

A는 (노랑+파랑)+빨강

B는 (노랑+빨강)+파랑

 

두개가 구질구질한 동일한 색을 가지게 됨.

이것을 키로 사용.

 

 

 

 


[숫자 예시]

- 원시값(공개값) : 3 mod 17
- A의 임의의수 = 15 / B의 임의의수 = 13
- A에서 B로 전송값 = 3^15 mod 17 = 6 // B에서 A로 전송값 = 3^13 mod 17 = 12
- A에서 키값생성 : 전달받은 값에 본인의 임의의수를 지수승으로 계산. 12^15 mod 17 = 10.
- B에서 키값생성 : 전달받은 값에 본인의 임의의수를 지수승으로 계산. 6^13 mod 17 = 10.
※ 키값이 동일하게 되는 원리
- A 가 받은 12는 3^13mod 17 값으로, 3^13^15 mod 17 의미.
- B 가 받은 6은 3^15mod 17 값으로, 3^15^13 mod 17의미.
- 따라서 지수의 위치 변경 가능하므로, 3^13^15 = 3^15^13. 끝.


[man-in-the-middle 공격 해결법] 교환하는 값(ga mod p, gb mod p)을 대칭키로 암호화, 교환하는 값을 공개키로 암호화, 교환하는 값을 개인키로 서명. key를 2048bit로 변경.

 

 

 

'ITPE > 보안' 카테고리의 다른 글

접근제어 (MAC, DAC, RBAC, ABAC)  (0) 2021.03.28
암호 공격기법  (0) 2021.03.28
블럭암호화 운영모드  (0) 2021.03.28
SPN(Substitution-Permutation Network)  (0) 2021.03.28
Feistel  (0) 2021.03.28

+ Recent posts