맨위로가기

타원곡선 디피-헬먼

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

타원곡선 디피-헬만(ECDH)은 두 사용자가 타원 곡선을 사용하여 안전하게 공유 비밀 키를 생성하는 암호화 프로토콜이다. 사용자는 특정 정의역 매개변수에 합의하고, 개인키와 공개키로 구성된 키 쌍을 생성한다. 앨리스와 밥은 서로의 공개 키를 교환하고, 각자 계산을 통해 동일한 점의 x 좌표인 공유 비밀값을 얻는다. 이 비밀값은 대칭 키를 생성하기 위해 해시 함수에 사용될 수 있으며, 공개키가 영구적인 경우 ECDH, 일시적인 경우 ECDHE로 불린다. ECDH는 중간자 공격에 취약할 수 있으며, 보안을 위해 인증이 필요하다. ECDH는 타원 곡선 상의 이산 대수 문제와 디피-헬만 문제의 어려움에 기반하여 안전성을 제공하며, Curve25519, Curve448과 같은 구현이 존재하고, 라인, 시그널, 왓츠앱 등에서 사용된다.

더 읽어볼만한 페이지

  • 타원곡선 암호 - 비트코인
    비트코인은 사토시 나카모토가 개발한 최초의 탈중앙화 암호화폐로, 중앙 기관 없이 P2P 네트워크에서 블록체인에 기록되며 채굴을 통해 발행량이 2100만 개로 제한된 자산이다.
  • 타원곡선 암호 - 타원곡선 DSA
    타원곡선 디지털 서명 알고리즘(ECDSA)은 DSA의 계산량 문제를 해결하기 위해 타원곡선 암호를 사용하는 알고리즘으로, 작은 키 크기로 동일한 보안 수준을 제공하여 효율성을 높일 수 있지만, 보안 위협 및 NIST 곡선 신뢰성 문제에 대한 지속적인 연구가 필요하다.
  • 암호학 - 양자 컴퓨터
    양자 컴퓨터는 양자역학적 현상을 이용하여 정보를 처리하는 컴퓨터로, 큐비트를 통해 0과 1을 동시에 표현하여 특정 연산에서 기존 컴퓨터보다 빠른 속도를 보이며 암호 해독, 신약 개발 등 다양한 분야에 혁신을 가져올 것으로 기대된다.
  • 암호학 - 암호화
    암호화는 정보를 보호하기 위해 사용되는 기술로서, 단순한 문자 치환 방식에서 시작하여 현대에는 강력한 암호화 표준과 다양한 종류로 발전했으며, IT 시스템 전반에 적용되지만, 사이버 공격과 양자 컴퓨팅의 발전에 대한 대응이 필요한 기술이다.
타원곡선 디피-헬먼
개요
종류공개 키 암호 방식
기반디피-헬먼 키 교환
수학적 기반타원 곡선 암호
키 교환 방식키 합의
보안 강도사용되는 타원 곡선의 크기에 따라 결정됨
취약점중간자 공격에 취약함 (상호 인증 메커니즘 필요)
작동 방식
개요ECDH는 두 당사자가 비밀 키를 안전하지 않은 채널을 통해 교환하여 공유 비밀을 생성하는 방법임.
키 생성각 당사자는 개인 키와 공개 키 쌍을 생성하며, 공개 키는 교환됨.
공유 비밀 계산각 당사자는 자신의 개인 키와 상대방의 공개 키를 사용하여 공유 비밀을 계산함.
수학적 원리타원 곡선 점 곱셈의 이산 로그 문제에 기반함.
보안 고려 사항
키 크기충분히 큰 키 크기를 사용하여 공격에 대한 보안을 강화해야 함.
타원 곡선 선택안전한 타원 곡선을 선택하는 것이 중요함. (예: NIST에서 권장하는 곡선)
인증중간자 공격을 방지하기 위해 상호 인증 메커니즘을 사용해야 함.
응용 분야
개요다양한 보안 프로토콜 및 시스템에서 널리 사용됨.
예시TLS/SSL
SSH
IPsec
VPN
암호화폐
장점
효율성동일한 보안 수준을 제공하는 다른 키 교환 방식에 비해 계산 비용이 저렴함.
키 크기동일한 보안 수준을 제공하는 다른 방식에 비해 더 작은 키 크기를 사용할 수 있음.
단점
중간자 공격중간자 공격에 취약하므로 인증 메커니즘이 필요함.
특허일부 타원 곡선 암호 방식은 특허로 보호될 수 있음.

2. 전제


  • 모든 사용자는 특정 정의역 매개변수로 (p,a,b,g,n,h)의 6원소 튜플을 사용하기로 합의한다. 경우에 따라서 p={ m,f(x) }를 넣어 7원소 튜플을 쓸 수도 있다.
  • 각 사용자는 ECC 상에서 적절한 키쌍(d_x, Q_x)꼴을 보유해야 한다.
  • d는 무작위로 선택된 1부터 n-1사이의 정수로서, 개인키이다.
  • Q는 Q=dg를 만족하는 정수로서, 공개키이다.

앨리스과 공유 키를 설정하려는 상황을 가정한다. 이 때, 사용 가능한 채널이 제3자에 의해 도청될 수 있다고 가정한다. 우선, 도메인 매개변수 ((p, a, b, G, n, h) 또는 (m, f(x), a, b, G, n, h))에 대해 합의해야 한다. 각 사용자는 타원 곡선 암호화에 적합한 키 쌍을 가져야 한다. 개인 키 d[1, n-1] 구간에서 임의로 선택된 정수이고, 공개 키는 Q = d \cdot G를 만족하는 점 Q이다. (여기서, G는 d번 더한 결과이다). 앨리스의 키 쌍은 (d_\text{A}, Q_\text{A})이고 밥의 키 쌍은 (d_\text{B}, Q_\text{B})이다. 각 사용자는 프로토콜 실행 전에 상대방의 공개 키를 알고 있어야 한다.

3. 절차

앨리스이 공유 키를 설정하려는 상황을 가정한다. 이들이 사용할 수 있는 유일한 통신 채널은 제3자에 의해 도청될 수 있다.

먼저, 도메인 매개변수 (소수 위수 유한체에서는 (p, a, b, G, n, h), 표수 2 유한체에서는 (m, f(x), a, b, G, n, h))에 대해 합의해야 한다.

각 참여자는 타원 곡선 암호화에 적합한 키 쌍을 가져야 한다. 키 쌍은 개인 키 d (구간 [1, n-1]에서 임의로 선택된 정수)와 공개 키 Q (Q = d \cdot G, 즉 Gd번 더한 결과)로 구성된다. 앨리스의 키 쌍을 (d_\text{A}, Q_\text{A}), 밥의 키 쌍을 (d_\text{B}, Q_\text{B})라고 하자. 각 참여자는 프로토콜을 실행하기 전에 상대방의 공개 키를 알고 있어야 한다.

앨리스는 점 (x_k, y_k) = d_\text{A} \cdot Q_\text{B}를 계산한다. 밥은 점 (x_k, y_k) = d_\text{B} \cdot Q_\text{A}를 계산한다. 공유 비밀은 x_k이다(점의 ''x'' 좌표). ECDH를 기반으로 하는 대부분의 표준화된 프로토콜은 일부 해시 기반 키 파생 함수를 사용하여 x_k에서 대칭 키를 파생한다.

양쪽이 계산한 공유 비밀은 동일하다. 왜냐하면 d_\text{A} \cdot Q_\text{B} = d_\text{A} \cdot d_\text{B} \cdot G = d_\text{B} \cdot d_\text{A} \cdot G = d_\text{B} \cdot Q_\text{A}이기 때문이다.

다른 표현으로 정리하면 다음과 같다.


  • 앨리스와 밥은 서로의 공개 키를 교환한다.
  • 앨리스는 (x_A, y_A)=d_A Q_B를 계산하고, 밥은 (x_B, y_B)=d_B Q_A를 계산한다.
  • * d_A Q_B=d_Ad_B G=d_Bd_A G=d_B Q_A
  • 공유 비밀은 x_k이다.
  • * 최근에 사용되는 ECDH 기반 암호들은, 공유된 비밀값을 해시하여 대칭키를 만든다.[4]

4. 특징


  • 공개키가 영구적(static)이면 그냥 ECDH로, 일시적(ephemeral)이면 ECDHE (ECDH Ephemeral)로 부른다.[4]
  • 인증은 중간자 공격을 피하기 위한 필수 요소이다. 앨리스과 공유 키를 설정하려 할 때, 제3자가 도청할 수 있는 채널만 사용 가능하다면, 도메인 매개변수에 대한 합의가 필요하다.
  • 각 당사자는 개인 키와 공개 키로 구성된 키 쌍을 가져야 한다. 앨리스의 키 쌍은 (d_\text{A}, Q_\text{A}), 밥의 키 쌍은 (d_\text{B}, Q_\text{B})이며, 프로토콜 실행 전에 상대방의 공개 키를 알아야 한다.
  • 앨리스와 밥은 각각 (x_k, y_k) = d_\text{A} \cdot Q_\text{B}(x_k, y_k) = d_\text{B} \cdot Q_\text{A}를 계산하여 공유 비밀 x_k(점의 ''x'' 좌표)를 얻는다. 대부분의 표준화된 프로토콜은 x_k에서 해시 기반 키 파생 함수를 사용하여 대칭 키를 파생한다.
  • 공유 비밀은 d_\text{A} \cdot Q_\text{B} = d_\text{A} \cdot d_\text{B} \cdot G = d_\text{B} \cdot d_\text{A} \cdot G = d_\text{B} \cdot Q_\text{A}와 같이 양쪽이 동일하게 계산된다.
  • 앨리스의 개인 키는 이산 대수 문제를 풀 수 없다면 안전하며, 밥의 개인 키도 마찬가지이다. 공유 비밀은 디피-헬만 문제를 풀 수 없다면 안전하다.
  • 공개 키는 정적이거나 일시적('''ECDHE''')일 수 있다. 인증되지 않은 일시적 키는 다른 수단을 통해 진위 보장을 받아야 한다. 중간자 공격을 피하려면 인증이 필요하며, 정적 공개 키는 중간자 공격을 무력화한다.
  • 정적 공개 키는 순방향 비밀성이나 키 손상 위장 복원력 등 고급 보안 속성을 제공하지 않는다. 정적 개인 키 소유자는 다른 공개 키를 검증하고, 키 파생 함수를 적용해야 한다.
  • 앨리스가 악의적으로 유효하지 않은 곡선 점을 선택하고 밥이 검증하지 않으면, 밥의 개인 키가 노출될 수 있다. 여러 TLS 라이브러리가 이 공격에 취약한 것으로 밝혀졌다.[4]
  • 공유 비밀은 크기가 (n+1)/2[0, p)의 하위 집합에서 균일하게 분포되므로, 대칭 키로 직접 사용해서는 안 되며, 키 파생 함수에 대한 엔트로피로 사용될 수 있다.
  • 몽고메리 형태 타원 곡선 E_{M,A,B}By^2 = x(x^2 + Ax + 1) 방정식을 만족하는 모든 (x,y) \in F_p \times F_p의 집합과 무한대 점 \infty로 구성된다.
  • 번스타인은 맵 x_0을 도입했다.[8]
  • Curve25519의 경우, p = 2^{255} - 19, A = 486662B = 1이다.
  • Curve448의 경우, p = 2^{448} - 2^{224} - 1, A = 156326B = 1이다.
  • 앨리스이 통신할 때, 제3자에게 도청될 위험이 있다면, 타원 곡선 파라미터를 결정하고, 비밀 키와 공개 키 쌍을 생성하여 공개 키를 교환한다.
  • 앨리스는 (x_k, y_k) = d_A Q_B, 밥은 (x_k, y_k) = d_B Q_A를 계산하여 공유 비밀 x_k를 얻고, 이를 바탕으로 공통 키를 생성한다.

5. 보안성

타원 곡선 상의 이산 대수 문제를 풀 수 없는 한, 앨리스 외에 제3자는 앨리스와 밥의 개인 키를 알 수 없다. 마찬가지로 타원 곡선 상의 디피-헬만 문제를 풀 수 없는 한, 통신 경로를 도청하는 제3자는 두 사람이 공유하는 비밀키 x_k (점의 ''x'' 좌표)를 계산할 수 없다.[4]

공개 키는 정적(static)이거나 일시적(ephemeral, '''ECDHE'''로 약기)일 수 있다. 일시적 키는 인증되지 않으므로, 인증이 필요한 경우 다른 수단을 통해 중간자 공격을 방지해야 한다. 앨리스나 밥의 공개 키 중 하나가 정적이면 중간자 공격은 불가능하지만, 순방향 비밀성 등 다른 고급 보안 속성은 제공되지 않는다. 정적 개인 키 소유자는 다른 공개 키를 검증하고, 정적 개인 키 정보 유출을 막기 위해 원시 디피-헬만 공유 비밀에 안전한 키 파생 함수를 적용해야 한다.[20]

공유 비밀은 크기가 (n+1)/2[0, p)의 하위 집합에서 균일하게 분포한다. 따라서 비밀은 대칭 키로 직접 사용하지 않고, 키 파생 함수에 대한 엔트로피로 사용될 수 있다.

6. 소프트웨어


  • Curve25519는 다니엘 J. 번스타인이 C 언어로 작성한 인기 있는 타원 곡선 매개변수 집합 및 참조 구현이다. 언어 바인딩 및 대체 구현도 사용할 수 있다.
  • Curve448은 Rambus(램버스) 암호화 연구소의 마이크 함부르크가 개발한, 잠재적으로 224비트의 보안을 제공하는 타원 곡선이다.
  • 라인 메신저 앱(LINE)은 2015년 10월부터 해당 앱을 통해 전송되는 모든 메시지의 "Letter Sealing" 종단 간 암호화에 ECDH 프로토콜을 사용해 왔다.[16]
  • 시그널 프로토콜은 손상 후 보안을 확보하기 위해 ECDH를 사용한다. 이 프로토콜의 구현은 시그널(메신저 앱)(Signal), 왓츠앱(WhatsApp), 페이스북 메신저(Facebook Messenger) 및 스카이프(Skype)에서 찾아볼 수 있다.

참조

[1] 간행물 Special Publication 800-56A, Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography http://csrc.nist.gov[...] NIST 2006-03
[2] 간행물 Standards for efficient cryptography, SEC 1: Elliptic Curve Cryptography http://www.secg.org/[...] Certicom Research 2009-05-21
[3] 간행물 Suite B Implementers' Guide to NIST SP 800-56A http://www.nsa.gov/i[...] NSA Suite B Cryptography 2009-07-28
[4] 논문 Practical Invalid Curve Attacks on TLS-ECDH https://www.nds.ruhr[...] 2015-09-04
[5] 웹사이트 Speeding the Pollard and elliptic curve methods of factorization https://www.ams.org/[...] Mathematics of Computation, 48(177):243–264, 1987 1987
[6] 웹사이트 Montgomery curves and the Montgomery ladder https://eprint.iacr.[...] In Joppe W. Bos and Arjen K. Lenstra, editors, Topics in Computational Number Theory inspired by Peter L. Montgomery, pages 82–115. Cambridge University Press, 2017. 2017
[7] 논문 Montgomery curves and their arithmetic - the case of large characteristic fields https://link.springe[...] J. Cryptographic Engineering, 8(3):227–240, 2018. 2018-09
[8] 웹사이트 Can we avoid tests for zero in fast elliptic-curve arithmetic? https://cr.yp.to/ecd[...]
[9] 서적 Advances in Cryptology — CRYPTO '85 Proceedings In Advances in Cryptology - CRYPTO’85, Santa Barbara, California, USA, August 18-22, 1985, Proceedings, pages 417–426. Springer Berlin Heidelberg, 1985 1986
[10] 서적 Public Key Cryptography - PKC 2006 In: Yung, M., Dodis, Y., Kiayias, A., Malkin, T. (eds) Public Key Cryptography - PKC 2006. Lecture Notes in Computer Science, vol 3958. Springer, Berlin, Heidelberg 2006
[11] 웹사이트 Monte Carlo methods for index computation mod p https://www.ams.org/[...] Mathematics of Computation, 32:918–924, 1978
[12] 웹사이트 Ed448-goldilocks, a new elliptic curve https://eprint.iacr.[...] ACR Cryptology ePrint Archive, 2015:625, 2015 2015
[13] 논문 Security and Efficiency Trade-offs for Elliptic Curve Diffie-Hellman at the 128- and 224-bit Security Levels https://link.springe[...] J Cryptogr Eng 12, 107–121 (2022) 2022
[14] 논문 Efficient Elliptic Curve Diffie-Hellman Computation at the 256-bit Security Level https://doi.org/10.1[...] 2020
[15] 웹사이트 Safecurves: choosing safe curves for elliptic- curve cryptography https://safecurves.c[...] 2024-04-15
[16] 웹사이트 New generation of safe messaging: "Letter Sealing" https://engineering.[...] LINE Corporation 2018-02-05
[17] 간행물 Special Publication 800-56A, Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography http://csrc.nist.gov[...] NIST 2006-03
[18] 간행물 Standards for efficient cryptography, SEC 1: Elliptic Curve Cryptography http://www.secg.org/[...] Certicom Research 2000-09-20
[19] 간행물 Suite B Implementers' Guide to NIST SP 800-56A http://www.nsa.gov/i[...] NSA Suite B Cryptography 2009-07-28
[20] 논문 An Efficient Protocol for Authenticated Key Agreement http://download.cert[...] Certicom 2012-01-19



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com