[정의] 두 사용자가 사전에 어떠한 비밀 교환 없이도 공중 통신망 환경에서 공통키를 교환하게 해주는 이산대수 기반의 알고리즘.
[특징] 중간자 공격에 취약. 중간에서 바꾼 값을 양쪽에 전달하여 공격 가능.
[쉬운 예시(색깔)]
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 |