타원 곡선 암호화 (ECC, Elliptic Curve Cryptography)

타원 곡선 이산 대수 문제(ECDLP)의 수학적 어려움을 보안 기반으로 하는 공개 키 암호 시스템으로, RSA와 동등한 보안을 훨씬 작은 키 크기로 제공합니다.

후양자 전환: NIST는 ECDH와 ECDSA의 대체제로 ML-KEM(Kyber)과 ML-DSA(Dilithium)를 표준화. TLS 1.3은 하이브리드 키 교환(X25519+Kyber)을 도입.

        graph LR
  Center["타원 곡선 암호화 (ECC, Elliptic Curve Cryptography)"]:::main
  Pre_cryptography["cryptography"]:::pre --> Center
  click Pre_cryptography "/terms/cryptography"
  Pre_asymmetric_encryption["asymmetric-encryption"]:::pre --> Center
  click Pre_asymmetric_encryption "/terms/asymmetric-encryption"
  Rel_private_key["private-key"]:::related -.-> Center
  click Rel_private_key "/terms/private-key"
  Rel_public_key["public-key"]:::related -.-> Center
  click Rel_public_key "/terms/public-key"
  Rel_public_key_cryptography["public-key-cryptography"]:::related -.-> Center
  click Rel_public_key_cryptography "/terms/public-key-cryptography"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5살도 이해할 수 있게 설명

한 방향으로는 쉽지만 역방향으로는 불가능한 마법 곱셈을 상상해 보세요. 곡선 위의 특별한 점에 비밀 숫자(개인 키)를 곱하면 공개 점(공개 키)을 빠르게 얻을 수 있습니다. 하지만 누군가 공개 점과 원래 점만 알고 있다면, 비밀 숫자를 역으로 계산하는 데 슈퍼컴퓨터로도 우주의 나이보다 오래 걸릴 것입니다. 이 단방향 수학이 ECC를 강력하게 만드는 것입니다.

🤓 Expert Deep Dive

타원 곡선 군 구조: y² ≡ x³ + ax + b (mod p). secp256k1 매개변수: a=0, b=7, p = 2²⁵⁶ - 2³² - 977. 키 크기 동등성(NIST SP 800-57): 256비트 ECC = 3072비트 RSA(128비트 보안 수준). Curve25519: Daniel Bernstein이 상수 시간 구현을 위해 설계 — 비밀 데이터에 대한 분기 없음 — 타이밍 부채널 공격에 본질적으로 강인. X25519는 TLS 1.3에서 필수. Dual_EC_DRBG 백도어(2013): 스노든 문서는 ECC 상수를 사용한 NIST 난수 생성기에 NSA 백도어가 있었음을 시사. NIST는 표준을 철회.

❓ 자주 묻는 질문

Why is ECC more efficient than RSA?

ECC achieves the same security level as RSA with much smaller key sizes (256-bit ECC ≈ 3072-bit RSA). Smaller keys mean faster signature generation/verification, less bandwidth for certificate transmission, and lower computational overhead — critical for constrained devices like hardware wallets and IoT sensors.

What is the difference between ECC and ECDSA?

ECC is the mathematical framework (the geometry of elliptic curves over finite fields). ECDSA is a specific digital signature algorithm that uses ECC mathematics. Similarly, ECDH is a key agreement protocol built on ECC. ECC is the foundation; ECDSA and ECDH are applications built on top of it.

Why do Bitcoin and Ethereum use secp256k1 instead of the more common P-256 (NIST) curve?

Satoshi Nakamoto chose secp256k1 — a less common curve at the time — partly because P-256 was designed with NSA-selected constants of unclear provenance. secp256k1 parameters are derived transparently from the simple equation y² = x³ + 7, with no arbitrary constants that could hide a backdoor.

🔗 관련 용어

📚 출처