타원 곡선 암호에서 디지털 서명은 타원 곡선 디지털 서명 알고리즘(ECDSA)을 통해 이루어집니다. 이는 메시지를 보낸 사람이 정말 본인인지(인증), 메시지가 위변조되지 않았는지(무결성), 그리고 서명한 사실을 부인할 수 없도록(부인 방지) 보장하는 기술입니다. 핵심 원리는 공개 키로는 할 수 없지만 개인 키(비밀 키)로만 쉽게 할 수 있는 수학적 연산 을 이용하는 것입니다. 즉, 개인 키 소유자만이 유효한 서명을 생성할 수 있고, 다른 사람들은 해당 개인 키와 쌍을 이루는 공개 키를 이용해 그 서명이 올바른지 검증할 수 있습니다. 앨리스가 밥에게 메시지를 서명하여 보낸다고 가정해 보겠습니다. 1. 키 생성 먼저, 앨리스는 서명과 검증에 사용할 한 쌍의 키를 생성해야 합니다. 공통 정보 공유: 서명자와 검증자는 모두 동일한 타원 곡선($E$)과 그 위의 기준점($G$)을 미리 알고 있어야 합니다. 이 정보는 공개되어 있습니다. 개인 키 ($d_A$): 앨리스는 아무도 모르는 큰 정수 $d_A$를 자신의 개인 키로 선택합니다. 공개 키 ($Q_A$): 앨리스는 기준점 $G$에 자신의 개인 키 $d_A$를 곱하여(타원 곡선 덧셈 연산) 점 $Q_A = d_A \cdot G$를 계산합니다. 이 $Q_A$가 앨리스의 공개 키이며, 모든 사람에게 공개됩니다. 핵심 보안: 공개 키 $Q_A$와 기준점 $G$를 안다고 해도 개인 키 $d_A$를 역으로 계산하는 것은 '타원 곡선 이산 대수 문제'라는 수학적 난제 때문에 사실상 불가능합니다. 2. 서명 생성 앨리스는 보내려는 메시지($m$)에 대해 다음과 같은 과정으로 서명($r, s$)을 생성합니다. 해시 계산: 메시지($m$)를 해시 함수(예: SHA-256)에 넣어 일정한 길이의 해시 값($h$)을 계산합니다. 이는 메시지의 '지문'과 같아서, 메시지가 1비트만 바뀌어도 해시 값이 완전히 달라집니다. $h = \text{hash}(m)$ 임의의 수 선택: 서명할 때마다 새로운 임의...