# 타원곡선 (Elliptic Curve)

타원곡선은 y² = x³ + ax + b 형태의 방정식을 만족하는 점들의 집합으로, 유한체 위에서 정의하면 점 덧셈 연산이 군(group)을 이루어 공개 키 암호와 전자서명의 수학적 토대가 됩니다. 이름과 달리 타원과는 모양이 다르며, 타원의 둘레를 계산하는 적분에서 유래한 역사적 명칭입니다.

## 자세히 알아보기

암호학에서 쓰는 타원곡선은 실수 평면이 아니라 소수 p를 법으로 하는 유한체 𝔽ₚ 위에서 정의됩니다. 곡선이 특이점을 갖지 않으려면 판별 조건 4a³ + 27b² ≠ 0을 만족해야 합니다. 곡선 위의 두 점 P, Q를 지나는 직선이 곡선과 만나는 세 번째 점을 x축에 대해 뒤집은 것을 P + Q로 정의하면, 이 덧셈은 결합법칙을 만족하고 '무한원점'이 항등원 역할을 합니다. 즉 곡선의 점들은 덧셈에 대한 군이 됩니다.

같은 점을 k번 더하는 연산 Q = kP를 스칼라 곱이라고 합니다. k와 P를 알면 Q는 빠르게 계산할 수 있지만, P와 Q만 보고 k를 찾는 것은 잘 고른 곡선에서 현실적으로 불가능합니다. 이것이 타원곡선 이산 로그 문제(ECDLP)이며, 개인 키 = k, 공개 키 = Q라는 구조의 안전성 근거입니다.

방정식 형태는 위의 바이어슈트라스(Weierstrass) 형식 외에도 몽고메리(Montgomery) 형식, (트위스티드) 에드워즈(Edwards) 형식 등이 있습니다. 형식에 따라 연산 속도와 구현 안전성(예: 예외 없는 덧셈 공식)이 달라서, Curve25519는 몽고메리 형식, Ed25519는 에드워즈 형식을 사용합니다. 암호학적 활용은 1985년 닐 코블리츠(Neal Koblitz)와 빅터 밀러(Victor Miller)가 각각 독립적으로 제안했습니다.

어떤 곡선이든 안전한 것은 아닙니다. 군의 위수(점의 개수)에 큰 소인수가 있어야 하고, 이상 곡선(anomalous curve)이나 페어링으로 쉽게 옮겨지는 곡선처럼 알려진 약점이 있는 곡선은 피해야 합니다. 그래서 실무에서는 SEC 2, NIST SP 800-186, RFC 7748 등 표준에 정의된 곡선을 사용합니다.

## 블록체인·암호화폐에서는

Bitcoin, Ethereum, Tron은 모두 secp256k1 곡선(y² = x³ + 7)을 사용합니다. 지갑의 개인 키는 1과 곡선 위수 n 사이의 정수이고, 공개 키는 기준점 G에 개인 키를 스칼라 곱한 점이며, 주소는 이 공개 키를 해시해 만듭니다. USDT를 보내는 트랜잭션의 서명도 이 곡선 위의 ECDSA로 생성됩니다. Solana, Cardano 등은 edwards25519 곡선을 쓰고, Ethereum의 지분 증명 합의는 페어링 친화 곡선 BLS12-381을 사용합니다.

## 쉽게 말하면

정해진 규칙대로 점을 계속 '더해' 나가는 놀이판과 같습니다. 몇 번 더했는지 알면 도착점은 금방 찾지만, 도착점만 보고 몇 번 더했는지 거꾸로 알아내기는 사실상 불가능합니다.

## 예시

secp256k1은 a = 0, b = 7, p = 2²⁵⁶ − 2³² − 977인 곡선입니다. 개인 키 k가 256비트 정수일 때 공개 키 Q = k·G는 (x, y) 좌표 한 쌍으로, 압축 형식에서는 33바이트로 표현됩니다.

---
출처: https://achivx.kr/glossary/elliptic-curve-%ED%83%80%EC%9B%90%EA%B3%A1%EC%84%A0/ · ACHIVX 용어 사전 · 수정일 2026-10-20
