Diffie-Hellman 방식은 public key distribution scheme이지, arbitrary message를 교환하는데에 사용할 수 없지만 대신 common key를 생성할 수 있다. 이 common key 값은 participant에 달려있으며, 키를 교환하는 두 participant만 값을 서로 알 수 있다. finite Galois field 내에서 exponentiation으로 생성된 암호들은 풀기 쉽지만, Diffie-hellman 방식은 discrete logarithm이 풀기 어렵다는 것에 착안하여 만들어진 키 교환 방식이기 때문에 풀기 어렵다.
이는 1 session 과정으로, 브라우저 접속 후 웹사이트 접속 시 브라우저와 서버가 통신하여 key exchange를 한다. 그 후 접속을 다시 하면 이 과정을 반복하여 "새로운 session key" 를 얻는데, 이를 ephimeral 하다고 한다.
Attacker이 알 수 있는 정보에는 YA, YB, q, α가 있다.
decrypt를 위해서는 최소 XA나 XB가 필요한데, 이 둘을 모른다면 discrete logarithm이나 brute force를 해야 하는데 이는 infeasible 하다.
<예시>
Key Exchange Protocols
1. communicate 할 때마다 private/public DH key 생성
2. private/public DH key를 생성한 후 directory에 publish. -> group of users의 경우
두 방법 모두 man-in-the middle attack에 취약하므로, 교환된 키의 authentication이 필수적이다.
중간자는 앨리스와 밥 간의 모든 메시지를 가로채고, 앨리스와 함께 session key 계산 / 밥과 함께 session key 계산을 한다. 즉, 중간자는 앨리스와 밥 간의 모든 메시지를 가로채고, 해독하여 내용을 확인하거나 변경한 후 전달할 수 있다.
Man-in-the-middle attack은 두개의 public-private key pair이 있을 때 일어나는 protocol attack이다. 1개의 key pair이 사용되는 경우에는, 앨리스나 밥 중 어느 한 쪽에 대한 공격은 성공할지 몰라도, 양쪽을 동시에 제어하는 데에는 어려움이 있을 것이다.
'CS > 정보보호' 카테고리의 다른 글
[정보보호] TLS(Transport Layer Secrecy)에서의 Forward Secrecy (0) | 2023.11.21 |
---|---|
[정보보호] Elliptic Curve Cryptography (1) | 2023.11.15 |
[정보보호] ElGamal Cryptography (0) | 2023.11.14 |
[정보보호] RSA (0) | 2023.11.11 |
[정보보호] Public-Key Cryptography (0) | 2023.11.10 |