0Pricing
Cryptology Academy · 강의

ECDH: 키 교환을 위한 타원 곡선

타원 곡선 스칼라 곱셈을 ECDH 키 합의에 적용합니다.

ECDH: 키 교환을 위한 타원 곡선은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

ECDH는 DH의 곱셈군을 타원 곡선 군으로 대체합니다. 그 결과 동일한 보안 수준을 유지하면서 키는 10배 작아지고 연산은 10배 빨라집니다.

EC 군 연산

ECDH에서 '곱셈'은 타원 곡선 스칼라 곱셈을 의미합니다. 점 P에 스칼라 k를 곱한다는 것은 P를 k번 더하는 것, 즉 k×P를 뜻합니다. 이는 g^k mod p에 해당하는 타원 곡선의 연산입니다.

ECDH 프로토콜

곡선 E와 기저점 G를 공개적으로 합의합니다. 앨리스: 개인 키 a, 공개 키 A = a×G 밥: 개인 키 b, 공개 키 B = b×G 앨리스: S = a×B = a×b×G 밥: S = b×A = b×a×G 둘 다 같은 점 S를 도출합니다.

ECDLP

타원 곡선에서 A = a×G가 주어졌을 때 a를 찾는 문제입니다. 이것이 타원 곡선 이산 로그 문제입니다. 일반적인 곡선에 대해 알려진 준지수 시간 알고리즘이 없으므로, 같은 키 길이에서는 ECDLP가 DLP보다 더 어렵습니다.

Curve25519

Bernstein이 2005년에 설계했습니다. 소수 2^255-19를 법으로 하는 몽고메리 형식 y²=x³+486662x²+x를 사용합니다. 빠르고 구현 오류에 강하도록 설계되었습니다. WireGuard, Signal, SSH에서 사용됩니다.

X25519 키 교환

X25519는 Curve25519를 사용하는 ECDH 함수입니다. 공유점의 x좌표만 사용하며, 코팩터 곱셈이 경계 사례를 처리합니다. RFC 7748은 X25519와 X448을 표준화했습니다.

Python에서의 ECDH

from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey alice_priv = X25519PrivateKey.generate() bob_priv = X25519PrivateKey.generate() alice_pub = alice_priv.public_key() bob_pub = bob_priv.public_key() shared_alice = alice_priv.exchange(bob_pub) shared_bob = bob_priv.exchange(alice_pub) assert shared_alice == shared_bob

공유점에서 대칭 키로

원시 공유점을 키로 직접 사용하지는 않습니다. 공유점은 균등하게 분포하지 않기 때문입니다. HKDF를 사용하여 적절한 대칭 키를 파생하세요: from cryptography.hazmat.primitives.kdf.hkdf import HKDF key = HKDF(SHA256, 32, salt, info).derive(shared_secret)

ECDH와 DH의 키 크기

128비트 보안 수준: - DH: 3072비트 소수 - ECDH: 256비트 곡선 키 크기 비율: 약 12:1입니다. ECDH 공개 키는 32바이트(Curve25519)이고, DH 공개 키는 384바이트입니다. ECDH 개인 키 연산은 약 50배 빠릅니다.

취약한 곡선에서의 코팩터 공격

작은 부분군 공격은 자명하지 않은 코팩터를 가진 곡선을 악용합니다. Curve25519의 코팩터는 8이지만 X25519는 이를 올바르게 처리합니다. NIST P-곡선의 코팩터는 1입니다. 항상 표준화된 구현을 사용하세요.

TLS 1.3에서의 ECDH

TLS 1.3은 키 교환에 X25519, X448, P-256, P-384, P-521을 지원합니다. X25519가 가장 널리 사용되며 빠르고 안전하고 일정 시간에 실행됩니다. 두 피어는 각 세션마다 임시 키를 생성합니다.

빠른 확인

기존 디피-헬먼에 비해 ECDH가 가지는 가장 큰 장점은 무엇인가요?

복습

ECDH를 완전히 익혔습니다! 다음으로 순방향 비밀성과 TLS에서 임시 키 교환이 중요한 이유를 알아보겠습니다.

자주 묻는 질문

“ECDH: 키 교환을 위한 타원 곡선” 강의는 무료인가요?

네 — “ECDH: 키 교환을 위한 타원 곡선” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“ECDH: 키 교환을 위한 타원 곡선”에서 뭘 배우나요?

타원 곡선 스칼라 곱셈을 ECDH 키 합의에 적용합니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“ECDH: 키 교환을 위한 타원 곡선” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 키 분배 문제
  2. Diffie-Hellman 키 교환 수학
  3. ECDH: 키 교환을 위한 타원 곡선
  4. 순방향 보안과 임시 키 교환
← Cryptology Academy(으)로 돌아가기