개념
송신자와 수신자가 암호화 되지 않은 통신망을 통해 안전하게 통신할 대칭키 알고리즘에 사용할 암호키를 생성하는 종단간 키교환 알고리즘
두 사용자가 사전에 어떠한 비밀 교환 없이도 공중 통신망 환경에서 공통키를 교환하게 해주는 알고리즘
(특징 )
구분 | 내용 |
이산 대수 문제 | 두 개의 공개키로부터 공격자가 비밀 정수 2개를 구하는 것이 계산적으로 불가능하다는 이산 대수 문제를 이용 |
공개키 | 계산 결과인 공개키를 상호간 교환하여 암호키(Encryption Key)를 생성 |
중간자 공격 취약 | 초기 키 교환 시, 별도의 인증 단계가 없으므로 중간자 공격에 취약 |
디피 헬만 키교환 알고리즘 절차
- 디피-헬먼 키 교환(Diffie-Hellman key exchange)은 무결성과 기밀성이 보장되지 않아 재전송 공격, 중간자 공격에 취약
절차 | 생성키 | 설명 |
사전공개값 공유 | p : 충분히 큰 소수 p |
- 충분히 큰 소수 선택으로 키의 경우의 수를 증가시켜 보안성 향상 |
g : 소수 p 의 원시근 (Primitive Root) |
-자기 자신의 거듭제곱을 이용하여 1 부터 p-1 까지의 정수를 모두 생성 가능한 수 |
|
각자의 비공개 정수(키) 선정 | x : Alice 의 임의 선택 정수 (비 공개키) R1 = g^x mod p |
- Alice와 Bob은 각자 임의의 정수를 선택하고 선택한 값과 1단계에서 사전 공유한 p와 g를 이용하여 연산 - R = g^(임의 선택 정수) mod p - 0 ≤ (임의 선택 정수) ≤ p - 1 |
y : Bob 의 임의 선택정수 (비 공개키) R2 = g^y mod p |
||
공개키공유 | R1과 R2 교환 (공개키) | - Alice의 R1과 Bob의 R2를 상호 전송 |
비공개 정수를 이용하여 재연산 |
Alice: K1 = (R2)^x mod p | - Alice와 Bob은 기존에 선택한 임의의 정수와 R1,R2를 이용하여 연산 - K=(상호 공유한 R)^(임의선택정수) mod p |
Bob: K2 = (R1)^y mod p | ||
공통의 비밀키 공유 | K1 = K2 | - (g^x modp)^y modp=(g^x)^y mod p - (g^y modp)^x modp=(g^y)^x mod p - ∴ (g^x)^y modp=(g^y)^x modp=g^xy mod p |
디피-헬만 알고리즘의 취약점
- Eve 는 중간에서 Alice 와 Bob 사이에서 두 개의 Diffie-Hellman 키 교환을 생성하여 둘 사이의 정보를 손쉽게 탈취하는 것이 가능
- 해결방안 : 인증된 상대방과의 통신처리를 위해 공개키/개인키 기반의 RSA 알고리즘을 활용하여 키 교환
알고리즘에 인증 기능을 추가하여 중간자 공격을 예방
'메가노트 > 토픽과제(정리)' 카테고리의 다른 글
접근통제모델(이상희) (0) | 2022.09.24 |
---|---|
CAPTCHA(문경숙) (0) | 2022.09.24 |
큐비트(황선환) (0) | 2022.09.24 |
양자암호(홍진택) (2) | 2022.09.24 |
개인정보 익명처리 기술(안혜진) (0) | 2022.09.24 |