기본 콘텐츠로 건너뛰기

라벨이 키교환인 게시물 표시

ECC-8. 타원 곡선 디피-헬만(ECDH) 키 교환

타원 곡선 디피-헬만(ECDH) 키 교환은 타원 곡선 암호(ECC)를 이용하여 안전하게 비밀 키를 공유하는 방법입니다. 이 과정의 보안은 '타원 곡선 이산 대수 문제(Elliptic Curve Discrete Logarithm Problem, ECDLP)'라는 수학적 난제에 기반을 둡니다. 쉽게 말해, 타원 곡선 위의 한 점에서 특정 연산을 반복하여 다른 점을 찾는 것은 쉽지만, 결과 점만 가지고 몇 번의 연산을 했는지 알아내는 것은 계산적으로 매우 어렵다는 원리입니다. ECDH 키 교환 과정 앨리스와 밥이 안전하지 않은 통신 채널을 통해 비밀 키를 공유하려는 상황을 가정해 보겠습니다. 초기 설정 공유: 먼저, 앨리스와 밥은 모두가 알아도 되는 공개된 정보 두 가지를 사전에 합의합니다. 타원 곡선 ($E$): 사용할 특정 타원 곡선 방정식입니다. 기준점 ($G$): 해당 타원 곡선 위의 한 점으로, 모든 계산의 시작점이 됩니다. 각자의 비밀 키와 공개 키 생성: 앨리스: 임의의 정수 $a$를 자신의 비밀 키로 선택합니다. 그리고 기준점 $G$에 $a$번의 덧셈 연산을 수행하여 새로운 점 $P_A = a · G$를 계산하고, 이 점을 자신의 공개 키로 만들어 밥에게 보냅니다. 밥: 마찬가지로 임의의 정수 $b$를 자신의 비밀 키로 선택합니다. 그리고 기준점 $G$에 $b$번의 덧셈 연산을 수행하여 새로운 점 $P_B = b · G$를 계산하고, 이 점을 자신의 공개 키로 만들어 앨리스에게 보냅니다. 공유 비밀 키 계산: 앨리스: 밥에게서 받은 공개 키 $P_B$에 자신의 비밀 키 $a$를 곱합니다. $S = a · P_B = a · (b · G) = (ab) · G$ 밥: 앨리스에게서 받은 공개 키 $P_A$에 자신의 비밀 키 $b$를 곱합니다. $S = b · P_A = b · (a · G) = (ab) · G$ 키 교환 완료: 앨리스와 밥은 중간에서 통신을 도청한 사람이 있더라도, 각자 동일한 점 $S$를 계산해 낼 수 있습니다....