이름과 달리 타원곡선은 타원(원을 찌그러뜨린 모양)처럼 생기지 않았어요. 이름의 유래는 "타원의 둘레를 구하는 계산(타원 적분)"에 이 곡선이 등장했기 때문이에요. 그런데 이 낯선 곡선 위에서 점과 점을 더하는 신기한 규칙이, 어떻게 비트코인과 우리가 매일 쓰는 HTTPS 연결을 지키는 암호가 됐는지 하나씩 확인해봐요 (고등학교~대학 초반 수준의 내용이 포함돼요).
타원곡선은 y² = x³ + ax + b 라는 식으로 그려지는 곡선이에요. 이 곡선 위의 두 점을 아주 독특한 방법으로 "더할" 수 있는데, 이 덧셈을 계속 반복하는 건 쉽지만, 결과만 보고 몇 번 더했는지 거꾸로 알아내는 건 아주 어려워요. RSA가 "소인수분해의 어려움"을 이용했다면, 타원곡선 암호(ECC)는 "이 덧셈을 거꾸로 푸는 어려움"을 이용해요.
y² = x³ + ax + b 에서 a와 b를 바꿔가며 곡선의 모양이 어떻게 달라지는지 확인해보세요.
타원곡선 위의 두 점 P, Q를 더하려면: 두 점을 잇는 직선을 그어 곡선과 만나는 세 번째 점을 찾고, 그 점을 x축 기준으로 뒤집어요. 그게 바로 P+Q예요.
실제 암호에서는 실수가 아니라 "나머지 연산(mod)"으로 계산해요. 소수 17로 나머지 연산을 하는 작은 곡선 y² ≡ x³+2x+2 (mod 17)에서, 기준점 P를 계속 더한 배수들을 확인해보세요.
컴퓨터가 비밀 숫자 k를 골라서 kP를 계산해 알려줬어요. P와 kP만 보고 k를 맞혀보세요 — 경우의 수가 겨우 18개뿐인 이 장난감 곡선에서도 하나씩 확인하는 것 말고는 뾰족한 방법이 없다는 걸 느껴보세요.
비트코인과 이더리움 같은 암호화폐는 지갑 서명에 타원곡선 암호(ECDSA)를 써요. 내 지갑에서 거래를 승인했다는 걸 증명하지만, 개인키(비밀 숫자 k)는 절대 드러나지 않아요.
HTTPS 웹사이트 연결에서도 대부분 타원곡선 기반의 키 교환(ECDH)을 써서 브라우저와 서버가 안전하게 암호 키를 주고받아요. 자물쇠 아이콘이 뜨는 그 순간, 이 페이지에서 배운 점 덧셈이 실제로 작동하고 있는 거예요.
스마트폰, 메신저 앱(예: 시그널)도 ECC를 즐겨 써요. RSA보다 훨씬 짧은 키로 비슷한 안전성을 낼 수 있어서, 배터리와 연산 능력이 부족한 기기에 특히 유리하거든요.