KR102490702B1 - 유한 필드 디피 헬만에서 보안 소수를 선택하기 위한 방법 및 시스템 - Google Patents

유한 필드 디피 헬만에서 보안 소수를 선택하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR102490702B1
KR102490702B1 KR1020197031203A KR20197031203A KR102490702B1 KR 102490702 B1 KR102490702 B1 KR 102490702B1 KR 1020197031203 A KR1020197031203 A KR 1020197031203A KR 20197031203 A KR20197031203 A KR 20197031203A KR 102490702 B1 KR102490702 B1 KR 102490702B1
Authority
KR
South Korea
Prior art keywords
key
prime
field size
public key
private key
Prior art date
Application number
KR1020197031203A
Other languages
English (en)
Other versions
KR20190127915A (ko
Inventor
다니엘 리차드 엘. 브라운
Original Assignee
블랙베리 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 블랙베리 리미티드 filed Critical 블랙베리 리미티드
Publication of KR20190127915A publication Critical patent/KR20190127915A/ko
Application granted granted Critical
Publication of KR102490702B1 publication Critical patent/KR102490702B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C5/00Ciphering apparatus or methods not provided for in the preceding groups, e.g. involving the concealment or deformation of graphic data such as designs, written or printed messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

디피 헬만 키 교환 방법에 있어서, 이 방법은, p = hq+1의 형태의 필드 사이즈 p를 선택하는 단계를 포함하고, 여기서 q는 계승수 b에 1을 더한 소수이므로 q = (b!+1)이고, h는 여인수(cofactor)이므로 p = hq+1가 소수가 되는, 상기 필드 사이즈 p를 선택하는 단계와, 오더 모듈로 p가 소수 q이거나 q로 나누어질 수 있는 제너레이터 정수 g를 선택하는 단계와, 개인키 x를 선택하는 단계와, 상기 제너레이터 g에 상기 개인키 x를 거듭제곱하고 산술 모듈로 상기 소수 필드 사이즈 p를 사용하여, 공개키 gx mod p를 계산하는 단계와, 상기 공개키 gx mod p를 상대방에 전송하는 단계와, 상기 상대방으로부터, 상기 상대방이 선택한 제2 개인키 y를 g에 거듭제곱해서 gy 형태로 포함하는 제2 공개키 B를 수신하는 단계와, 산술 모듈로 상기 소수 필드 사이즈 p를 사용하여, 상기 수신된 제2 공개키 B로부터, 상기 제2 공개키 B에 상기 개인키 x를 거듭제곱하여 키 Bx를 생성하는 단계를 포함한다.

Description

유한 필드 디피 헬만에서 보안 소수를 선택하기 위한 방법 및 시스템
본 개시내용은 암호화 분야에 있어서 유한 필드 사이즈의 선택에 관한 것이다.
공개 채널을 통해 암호키를 보안적으로 교환하는 방법이 디피 헬만(Diffie-Hellman) 키 교환이다. 다양한 시스템에서, 프로토콜은 정수 모듈로 p의 곱셈 그룹을 사용하는데, 여기서 p는 소수이다. 공개값 g는 모듈로 p의 원시근이며, 암호화 트랜잭션의 각 측의 비밀 지수가 거듭제곱된다. 곱셈 그룹의 특징으로 인해, 각각 당사자들 중 한쪽에 대해 비밀로 제기된 두 개의 원시근의 교환이 서로 결합되어 양 당사자 사이에 공유 비밀을 형성할 수 있다. 이산 로그 문제(discrete logarithm)로 인해 도청자(eavesdropper)가 공유 비밀을 쉽게 도출할 수 없다.
1992년 고든(Daniel M. Gordon)은 "Designing and detecting trapdoors for discrete log cryptosystems"라는 제목의 논문[CRYPTO'92, Lecture Notes in Computer Science vo. 740, pp. 66-75.]을 발표하였다. 이 논문에서 고든은 특수 소수들이 SNFS(special number field sieve)에 취약하다는 것을 인식하였으며, 이것은 소수가 생각만큼 안전하지 않다는 것을 의미한다. 또한 고든은 그러한 특수 소수들이 그들의 특별한 구조를 상당히 숨길 수 있음을 인식하였다. 그렇기 때문에, 공격자는 이 백도어를 사용하여, 임의의 디피 헬만 키 협정 세션 동안 교환된 공개 메시지를 관찰한 후에 타인의 비밀 합의 키를 찾을 수 있다.
또한, 선택된 필드 사이즈 p와 연관된 보안 우려는 고든의 공격 외에 다른 취약성도 포함할 수 있다. 이들은, 예를 들면, 고든의 공격처럼 숨겨지거나 또는 공개된, SNFS(special number field sieve)에 대한 잠재적 취약성; 확률이 낮은 랜덤 디피 헬만 필드 사이즈에만 영향을 줄 수 있는 이산 로그 문제에 대한 다른 비밀 알고리즘에 대한 잠재적 취약성; 이산 로그 문제가 여전히 하드(hard)하더라도, 약한 디피 헬만 문제의 잠재적 취약성; 소규모 서브그룹 공격의 위협; 및 비교 가능한 보안성의 디피 헬만 모듈러스 간의 최적이 아닌 산술 효율을 포함한다. 일부 방법은 위의 잠재적 취약성을 일부 줄이려고 시도하지만, 위의 모든 잠재적 취약성을 해결할 수 있는 현재의 방법은 없다.
본 개시내용은 이하의 도면을 참조하여 더 잘 이해될 것이다.
도 1은 암호화 모듈을 사용하여 참가자들이 정보를 교환하는 것을 보여주는 블록도이다.
도 2는 필드 사이즈를 선택하고 사용하는 일례의 블록도이다.
도 3은 디피 헬만 키 교환의 일례의 블록도이다.
도 4는 본 개시내용의 실시형태를 수행할 수 있는 단순화된 컴퓨팅 디바이스의 블록도이다.
본 개시내용은 디피 헬만 키 교환 방법을 제공하며, 이 방법은, p = hq+1의 형태의 필드 사이즈 p를 선택하는 단계로서, 여기서 q는 계승수(fatorial number) b에 1을 더한 소수이므로 q = (b!+1)이고, h는 여인수(cofactor)이므로 p = hq+1가 소수가 되는, 상기 필드 사이즈 p를 선택하는 단계와, 오더 모듈로(order modulo) p가 소수 q이거나 q로 나누어질 수 있는 제너레이터 정수 g를 선택하는 단계와, 개인키 x를 선택하는 단계와, 상기 제너레이터 g에 상기 개인키 x를 거듭제곱하고 공개키 gx mod p를 계산하는 단계와, 상기 공개키 gx mod p를 상대방(correspondent)에 전송하는 단계와, 상기 상대방으로부터, 상기 상대방이 선택한 제2 개인키 y를 g에 거듭제곱해서 gy 형태로 포함하는 제2 공개키 B를 수신하는 단계와, 산술 모듈로(arithmetic modulo) 상기 소수 필드 사이즈 p를 사용해서, 상기 수신된 제2 공개키 B로부터, 상기 제2 공개키 B에 상기 개인키 x를 거듭제곱하여 키 Bx를 생성하는 단계를 포함한다.
본 개시내용은 또한, 디피 헬만 키 교환을 위해 구성된 컴퓨팅 디바이스를 제공하며, 이 컴퓨팅 디바이스는, p = hq+1의 형태의 필드 사이즈 p를 선택하고― 여기서 q는 계승수 b에 1을 더한 소수이므로 q = (b!+1)이고, h는 여인수(cofactor)이므로 p = hq+1가 소수가 됨―, 오더 모듈로 p가 소수 q이거나 q로 나누어질 수 있는 제너레이터 정수 g를 선택하며, 개인키 x를 선택하고, 상기 제너레이터 g에 상기 개인키 x를 거듭제곱하고 산술 모듈로 상기 소수 필드 사이즈 p를 사용하여, 공개키 gx mod p를 계산하며, 상기 공개키 gx mod p를 상대방에 전송하고, 상기 상대방으로부터, 상기 상대방이 선택한 제2 개인키 y를 g에 거듭제곱해서 gy 형태로 포함하는 제2 공개키 B를 수신하고, 산술 모듈로 상기 소수 필드 사이즈 p를 사용해서, 상기 수신된 제2 공개키 B로부터, 상기 제2 공개키 B에 상기 개인키 x를 거듭제곱하여 키 Bx를 생성하도록 구성된다.
본 개시내용은 또한, 컴퓨팅 디바이스의 프로세서에 의해 실행될 때에 디피 헬만 키 교환을 위해 구성되는 프로그램 코드를 포함하는 컴퓨터 판독 가능 매체를 제공하며, 이 프로그램 코드는 컴퓨팅 디바이스로 하여금, p = hq+1의 형태의 필드 사이즈 p를 선택하게 하고―여기서 q는 계승수 b에 1을 더한 소수이므로 q = (b!+1)이고, h는 여인수(cofactor)이므로 p = hq+1가 소수가 됨―, 오더 모듈로 p가 소수 q이거나 q로 나누어질 수 있는 제너레이터 정수 g를 선택하게 하며, 개인키 x를 선택하고, 상기 제너레이터 g에 상기 개인키 x를 거듭제곱하고 산술 모듈로 상기 소수 필드 사이즈 p를 사용하여, 공개키 gx mod p를 계산하게 하고, 상기 공개키 gx mod p를 상대방에 전송하게 하며, 상기 상대방으로부터, 상기 상대방이 선택한 제2 개인키 y를 g에 거듭제곱해서 gy 형태로 포함하는 제2 공개키 B를 수신하게 하고, 산술 모듈로 상기 소수 필드 사이즈 p를 사용해서, 상기 수신된 제2 공개키 B로부터, 상기 제2 공개키 B에 상기 개인키 x를 거듭제곱하여 키 Bx를 생성하게 한다.
이제 도 1을 참조하면, 도 1은 한 쌍의 통신자(correspondent) 간의 메시지 통신을 위한 시스템(10)을 도시한다. 구체적으로, 도 1에는 한 쌍의 통신자(A 및 B)가 데이터 통신 링크(12)에 의해 접속되어 있다. 각각의 통신자(A 및 B)는 링크(12)를 통한 보안 통신을 허용하는 확립된 프로토콜에 따라 공개키 암호화 연산을 수행하는 암호화 모듈 또는 유닛(14)을 갖는다. 암호화 유닛(14)은 다른 엔티티에 의해 공유되는 파라미터를 가지는 암호화 도메인 내에서 동작한다.
일례에 있어서, 통신자(A 및 B)는 디피 헬만(DH) 키 교환을 활용한다. 특히, 디피 헬만 키 교환은 가환 그룹(commutative group)을 사용하는데, 이것은 하나의 이항 연산(binary operation)을 가지며 특정 공리를 따르는 일종의 대수 체계이다.
원래 디피(Diffie)와 헬만(Hellman)이 제안한 그룹은 사이즈 p의 유한 필드의 곱셈 그룹으로 알려져 있는데, 여기서 p는 소수이다. 이러한 곱셈 그룹을 사용하면, 숫자 집합 {1, 2,…, p-1}은 곱셈 모듈로(multiplication modulo) p로 정의되는 이항 연산을 가질 수 있는데, 곱셈 모듈로 p란 p로 나눈 나머지를 계산한 후의 곱셈을 의미한다. 이 그룹은 수학계에서 잘 알려져 있으며, 디피와 헬만에 의해 암호화에 적용되었다.
예를 들어 설명하기 위해 작은 소수 p = 5를 고려한다. 해당 그룹에 대한 이항 연산, 곱셈 모듈로 p는 다음 표에 나타낸 바와 같다.
Figure 112019107979108-pct00001
표 1: 이항 연산, 곱셈 모듈로 5
이 그룹에서, 2×4 = 3을 예로 든다. 구체적으로, 정규 곱셈 2 × 4 = 8이지만, 이 그룹에서는 8 = 1×5+3이므로 나머지는 모듈로 5로 계산되어 3이 된다.
그룹의 임의의 엘리먼트 g와 일부 양의 정수 x에 대해, g의 x개의 사본들 간에 이항 연산을 적용하여 gx를 정의할 수 있다. 이 연산을 그룹 지수화(group exponentiation)라고 하고, g를 베이스, x를 지수라고 칭한다. 이 그룹이 유한 필드의 곱셈 그룹인 경우, 그룹 지수화도 모듈러 지수화라고 한다.
따라서, 예시를 위해, 앞의 표 1에서와 같이 p = 5라고 하기로 한다. g = 2이고 x = 6이면 모듈러 지수화에서는 gx = 26 = 4이다. 이것은, 통상의 지수화에서 26 = 64이고 64 모듈로 5의 나머지가 4이기 때문이다.
그룹 지수화는 제곱 및 곱셈 알고리즘(square-and-multiply algorithm)과 같은 알고리즘을 사용하여, 예컨대 거의 2256에 가까운 사이즈의 대규모 그룹에서도 상당히 효율적으로 행해질 수 있다. 이 알고리즘은 gx를 계산하기 위해 최대 2log2 (x)개의 그룹 연산을 필요로 한다. 그룹 사이즈 2256에서는 그룹 지수화에 512개 이하의 그룹 연산이 필요한데, 일반적으로 이것은 실용적이다.
이산 로그는 그룹 지수화의 역(inverse)이다. 베이스 g에 대한 y = gx의 이산 로그는 x이다. 이산 로그를 계산하는 것이 일부 그룹에서는 "하드(hard)"한 문제이다. 이 문제의 "하드성(hardness)"이 디피 헬만 키 교환과, 이산 로그 문제(DLP, discrete logarithm problem)라고 하는 관련 공개키 암호화 알고리즘의 보안에 있어서 핵심이다. 하드하다는 것은 암호화 분야의 용어로서, 일반적으로 본 명세서에서 사용되는 바와 같이, 시스템의 보안이 중요하다고 간주된다면, 시스템을 침입하려는 막아야 하는 대적(adversary)의 능력범위(reach)를 능가하는 것을 의미한다. 수학적으로, 이 용어는 문제에 대한 해를 점근 다항 시간(asymptotic polynomial time) 안에 풀 수 없음을 의미할 수 있다.
그래서, 공개키 암호화는 DLP가 하드한 것에 의존한다.
도 1을 다시 참조하면, 디피 헬만 키 교환에서, 통신자 A가 비밀 지수(x)를 생성하고, 통신자 B가 비밀 지수(y)를 생성한다. 비밀 지수(x 및 y)는 각각 통신자(A 및 B)의 개인키라고도 지칭될 수 있다.
A는 A = gx를 B에 전송하고, B는 B = gy를 A에 전송한다. 통신자(A)는 z = Bx를 계산하고, 통신자(B)는 w = Ay를 계산한다. 계산된 값들은, z = gxy = w이라서 동일하므로 양 통신자는 동일한 공유값 w = z를 계산한 것이다.
이산 로그 문제가 하드한 그룹에서는, 통상적으로 대적 또는 도청자(E)가 g, A 및 B로부터 z와 w를 계산하는 것이 어렵다고알려져 있다. 이 문제는 이제 디피 헬만 문제(DHP)로 알려져 있다. DHP는 DLP를 풀면 해결될 수 있는데, A = gx라고 하면, DLP를 풀어서 x를 찾은 다음 그룹 지수화에 의해 Bx를 계산함으로써, w = z = Bx이므로 DHP를 풀 수 있다. 따라서 DHP는 DLP보다 어렵지 않다. DHP가 DLP보다 쉬울 수 있지만, 경우에 따라서는, 변환에 더 많은 단계가 걸리더라도, DHP를 풀어서 DLP를 풀 수 있도 있다.
이상이 디피 헬만 키 교환의 기본 형태이다.
디피 헬만 키 교환의 출현에 후속하여, 엘가멜(ElGamal)이 디지털 서명에 동일한 디피 헬만 그룹을 사용하여 통신자 A와 B가 서로의 메시지를 확인할 수 있는 방법을 소개하였다. 엘가멜은 또한 공개키 암호화 스킴을 구축하는 데에 디피 헬만 키 교환을 사용할 수 있다고도 하였다. 일례로, 통신자 B는 고정된 디피 헬만 개인키를 사용할 수 있는 반면, 통신자 A는 통신자 B에게 전송하고자 하는 메시지마다 하나의 키만 있는 임시 개인키를 사용할 수 있다.
디피 헬만 필드 사이즈
앞에서는, 키 교환을 위해 공지된 정수 g에 x 및 y 각각이 거듭제곱된다. 정수 g는 오더 q 모듈로 p를 갖는데, 즉
Figure 112019107979108-pct00002
을 의미하며, 여기서 q는 이러한 양의 정수 중 가장 작은 것이다.
전술한 DHP의 하드성은 선택된 필드 사이즈 p의 영향을 받는다. 특히, p의 값에 관련하여 몇 가지 취약성이 발견되었다.
덴 보어의 축소(den Boer's reduction)
한 정리에 따르면, q가 p-1로 나누어지므로 대개 실제 계산에서는 q가 소수이고 크도록 g를 선택하는 것이 좋다. 특히, 연구원 버트 덴 보어(Bert den Boer)는 1988년에 "Diffie-Hellman is as strong as discrete log for certain primes"라는 제목의 논문을 발표했다[CRYPTO '88, Lecture Notes in Computer Science vol.403, pp. 530-539, 1988]. 이 논문에서 덴 보어는 이산 로그 문제와 디피 헬만 문제 사이에 갭이 없음을 증명하는데 도움이 되는 제너레이터 g의 오더 q에 대한 기준을 인지하였다. 디피 헬만 키 협정이 안전하려면 양 문제 모두 하드해야 한다.
덴 보어 기준은 q-1이 작은 수들의 곱이라는 것이다.
q-1이 작은 수들의 곱이 아닌 기존의 디피 헬만 필드 사이즈는 덴 보어 기준에 의존하지 않는다. 대신, 기존의 디피 헬만 필드 사이즈는 디피 헬만 문제가 하드하다는 추측에 의존한다. 다시 말해, 종래의 계산은 덴 보어의 증거보다는 추측에 의존한다는 것이다. 따라서 이 규칙은 증명 가능한 보안(provable security)을 약화시킨다.
상기한 바에 기초하여, 본 개시내용에 따르면, 덴 보어 소수의 보안성은 증명 가능하기 때문에 덴 보어 기준이 디피 헬만 필드 사이즈의 보안성을 향상시킨다는 입장이 세워진다.
덴 보어의 기준에 대한 한 가지 문제는 다른 보안 방법, 특히 이하에 설명하는 바와 같은 나이브(na
Figure 112019107979108-pct00003
ve) NUMS(nothing up my sleeve) 방법과 해시 출력 접근법(hashed-output approach)과의 비호환성이다. NUMS와 해시 접근법 둘 다는 효과적으로 의사랜덤 수 q를 생성한다. 랜덤 수는 대부분 작은 수들의 곱이 아니라는 것은 잘 알려진 숫자 이론의 사실이다.
따라서, 덴 보어 기준은 일반적으로 의사랜덤 접근법에 대해서는 충족되지 않으며, 기존의 디피 헬만 소수가 덴 보어 기준을 충족시키지 못하는 이유는 설명할 수 있다. 즉, 기존의 디피 헬만 소수는 일반적으로, 디피 헬만과 이산 로그 문제 간의 갭에 대한 우려보다는 고든의 공격에 대한 우려 때문에 선택된다.
고든의 공격
전술한 바와 같이, 다른 보안 문제는 고든의 공격이다. 구체적으로, 고든의 공격은, 큰 소수 p에 있어서 이산 로그 문제를 푸는 데에 가장 빠르다고 알려진 로그(logarithm)인 특수 NFS(number field sieve)를 사용한다. 작은 계수들을 가진 다항식의 출력으로 표현될 수 있는 특수 소수 p에서는, NFS가 상당히 가속화될 수 있다. 대략, 특수 소수 대 일반 소수에 대한 NFS에 필적하는 저항을 유지하려면 소수의 사이즈를 거의 제곱하거나 소수의 비트 길이를 2배로 늘려야 한다. 그러므로, 디피 헬만 키 교환에서 특수 소수 p를 사용하는 시스템은 NFS를 사용하는 공격자에게 취약할 수 있다.
배치되어 있는 일부 디피 헬만 시스템은 아마도 더 나은 계산 효율성을 제공하기 때문에 어쨌든 이러한 특수 소수를 사용하고 있다. 그러나, NFS에 대한 훨씬 더 약한 저항이 계산 효율의 이점을 상쇄시킨다.
고든은 특수 NFS에 취약한 특수 소수가 그 구조를 상당히 잘 숨길 수 있음을 인식하였다.
고든의 공격의 우려에 대한 기존의 대응책은 NUMS(nothing-up-my-sleeve) 수로부터 파생된 의사랜덤 소수 p를 선택하는 것이다. 이 접근법은 일반적으로 두 가지 방향이 있다.
제1 접근법에서는 π와 같은 무리수의 사용으로 큰 수가 곱해져서 그 결과가 거의 정수로 반올림된다. 그 수는 소수가 얻어질 때까지 필요하다면 증분될 수 있다.
제2 접근법에서는, 해시 함수와 같은 잘 확립된 의사랜덤 함수를 작은 입력값에 적용하여 소수를 생성할 수 있다.
제1 접근법은 π와 같은 무리수의 특수 숫자 구조가 그 숫자를 특별하게 하지 않는다는 기대에 의존한다. 다시 말해서, 특수 무리수 π는 여하튼 특수 NFS에 필요한 특성과 무관하다.
제2 접근법은 해시 함수의 의사랜덤성이 이미 암호화 알고리즘의 다른 곳에서 테스트되어 종속된다는 점에서 더 보수적이다. NFS가 해시 함수의 출력을 랜덤한 문자열과 구별할 수 있다는 것은 놀라운 일이다.
두 방법 모두 특수한 종류의 소수를 만들어내지만, 이러한 종류의 소수마저도 조작될 수 있다. 한가지 우려는 소수 p를 선택하는 공격자가 필드 사이즈 p에서 어떤 종류의 약점을 구성할 수 있을 정도로 무리수 또는 해시 함수를 선택하는데 약간의 여지가 있다는 것이다.
상기한 접근법은 암호화에서 다소 일반적인 개념인 NUMS(Nothing-Up-My-Sleeve) 수라고 한다. NUMS 접근법은 다소 랜덤한 필드 사이즈를 초래한다고 추측되며, 이에 여러가지 이유에서 특수 NFS의 숨겨진 취약성을 찾는 고든의 공격을 막을 수 있는 것으로 생각된다. 그 이유에는 고든의 공격이 대규모 검색을 수반한다는 사실이 포함된다. 이러한 대규모 검색은 공격자가 제어할 수 없는 정보를 포함하는 필드 사이즈를 초래할 것으로 예측된다. 특히, 공격자가 그 정의에 π를 실을 가능성은 없을 것으로 보인다.
또한, π의 십진(또는 이진) 확장은 예측 가능하더라도 일반적으로 랜덤한 것처럼 진행되므로 다른 것(π 이외의 것)과는 상관이 없는 것으로 생각된다. 다시 말해, π로부터 파생된 디피 헬만의 특수 구조는 특수 NFS가 효과적이기에 필요한 특수 구조와 완전히 상관되지 않는 것으로 생각된다.
NUMS 접근법은 다른 공격을 막을 수도 있다. 특히, NUMS 접근법이 고든의 공격을 방해하는 것과 같은 이유로 작은 확률로 임의의 디피 헬만 필드 사이즈에만 영향을 미치는 이산 로그에 대한 비밀 공격 알고리즘이 차단될 수 있다. 또한, NUMS 접근법은 유사한 이유로 약한 디피 헬만 문제를 막을 수 있다.
아래에서 더 상세하게 설명하겠지만, 본 개시내용의 실시형태는 NUMS 접근법의 변형을 제공한다. 나이브하게 π를 사용하는 것 대신에, 또 다른 정식의 간단한 수학적 구조를 사용하는 것이다. 따라서, 후술하는 실시형태에서, NUMS의 일반적인 이점은 여전히 실시형태에 적용되지만, 나이브 NUMS 접근법의 다음의 단점들은 피한다.
π를 기반으로 하는 것과 같은 나이브 NUMS 접근법의 주요 단점은 이하를 포함한다.
π로부터 파생된 필드 사이즈가 사실상 의사랜덤 필드 사이즈라서, 평균 랜덤 소수 필드 사이즈보다도 계산상 효율적이지 않을 것으로 예상할 수 있다. 다시 말해, 이러한 의사랜덤 필드 사이즈의 사용은 다른 필드 사이즈만큼 계산상 효율적이지 않다.
다른 단점으로, π로부터 파생된 필드 사이즈는 e 또는 2의 제곱근과 같은 다른 상수로부터도 도출될 수 있었고, 따라서 모든 조작으로부터 객관적이고 주목할 정도로 자유롭지 못하다. 다시 말해, 필드 사이즈를 최적으로 신뢰할 수 없다.
또한 NUMS의 단점은 π로부터 파생된 필드 사이즈가 사실상 의사랜덤 필드 사이즈이므로, 평균 소수 필드 사이즈보다 더 안전할 것으로 예상할 수 없다는 것이다.
NUMS 접근법의 또 다른 단점은 π로부터 파생된 필드 사이즈가 수론적(number-theoretic) 공격으로부터 완전히 보호되지 못한다는 것이다. 특히, π는 수론적 문제와 상당히 관련이 있다. 예를 들어, 2개의 랜덤한 양의 정수에 공통 소인수가 없을 확률은 6/π^2이다.
작은 여인수 디피 헬만 소수(Small Cofactor Diffie-Hellman Primes)
전술한 바와 같이, p가 소수 디피 헬만 필드 사이즈이고, g가 디피 헬만 제너레이터 모듈로 p인 경우, g는 여러 곱셈 오더 q를 가지는데, q가, gq = 1 mod p의 경우에 있어서 가장 작은 양의 정수임을 의미한다. 양의 정수 h에 대해, 보통 여인수라고 불리는 p = hq+1이 수론의 기본 정리이다. 이것은 q가 소수일 때 특히 그렇다.
소규모 서브그룹 공격은 대규모 유한 그룹에서 작동하는 암호화 방법인데, 이 경우에 있어서 침입자는 원하는 그룹의 예상외의 소규모 서브그룹으로 키를 제한시킴으로써 암호화 방법을 손상시키려고 시도한다. 이러한 소규모 서브그룹 공격을 피하는 표준 방법은 p와 q 둘 다가 소수이고 h가 작은 수인 것을 보장하는 것이다. 종종 h는 2로 선택된다.
작은 여인수 디피 헬만 필드 사이즈가 소규모 서브그룹 공격을 막는 효과적인 방법이다.
불행히도, 작은 여인수 디피 헬만 필드 사이즈를 선택하는 것만으로 다른 공격을 막을 수는 없다. 따라서, 디피 헬만 필드 사이즈에 대해 작은 여인수를 선택하는 방법은 일반적으로 다른 방법과 조합된다.
후술하는 실시형태에 따르면, 본 개시내용에서는 작은 여인수가 선택된다.
2의 거듭제곱 필드 사이즈에의 근접
약한 필드 사이즈 p를 피하기 위한 다른 접근법에서, 디피 헬만 필드 사이즈는 메르센 소수와 같이 2의 거듭제곱에 가까운 것이 선택될 수 있다. 이러한 선택에는 몇가지 장점이 있을 수 있다. 첫째, 2의 거듭제곱에 가까운 필드 사이즈가 그 비트 길이에 대해 계산상 효율적이다. 또한, 필드 사이즈가 2의 거듭제곱에 가깝다는 특성은 비교적 드물기 때문에, 상기한 NUMS 접근법과 마찬가지로, 숨겨진 공격이 검색하여 얻어질 결과일 가능성이 없다.
그러나 2의 거듭제곱 필드 사이즈에 가까운 것을 선택하는 한 가지 단점은 숫자들이 특수 NFS에 특히 취약하다는 것이다. 보다 정량적으로, 일반적인 랜덤 소수의 일반 NFS에 대해 동등하게 안전하기 위해서는 비트 길이가 대략 두 배가 되어야 한다. 이렇게 비트 길이가 두 배가 되면 일반적으로 계산 효율성의 이점을 압도한다. 다시 말해, 제공된 보안 수준에 비해 필드 사이즈의 계산 효율성이 떨어진다.
일반 및 특수 NFS를 포함하여 알려진 모든 이산 로그 공격에 대해 거의 동등한 저항으로 랜덤 필드 사이즈 및 2의 거듭제곱 필드 사이즈에의 특수 근접(special close)이 선택되면, 2의 거듭제곱 필드 사이즈에의 근접은, 비트 길이가 거의 2배가 되기 때문에, 계산상 더 느려질 것이다.
해시 출력 소수
π와 같은 상수로부터 직접 파생되는 것보다는 의사랜덤 함수의 출력으로부터 디피 헬만 필드 사이즈를 도출할 때 더 강력한 보안이 달성될 수 있다.
의사랜덤 함수가 사용될 때 필드 사이즈가 더 강력한 이유는 π가 사실상 랜덤 또는 의사랜덤도 아니라는 개념에 근거한다. 그보다 이것은 매우 특수한 숫자이므로 잠재적으로 매우 특수한 비밀 공격과 관련이 있을 수 있다.
한 보안 주장에 따르면 π로부터 디피 헬만 필드 사이즈를 도출하면 π와 상관되는 수론 공격이 발생할 가능성이 거의 없다는 것이다. 그러나, 이 주장은 거의 엄밀하지 않다.
반대로, 비밀 입력이 주어지면 해시 함수(의사랜덤 함수로 사용)의 출력은 랜덤과 구별될 수 없는 것으로 여겨진다. 이러한 확신은 의사랜덤 수 생성, 키 도출 및 보안 메시지 인증과 같은 작업을 위해 다수의 암호화 시스템에서 수년에 걸쳐 해시 함수를 사용하여 테스트되었다.
또한, 대부분의 해시 함수는 디피 헬만 키 협정에 필요한 전문용 수학적 연산과 달리 다소 임의적이고 원시적인 컴퓨터 워드 연산을 사용하여 설계되고 있다.
반면, 숫자 π는 자연 수학적 상수로서, 수론 공격에서 발생하는 수학에 사실상 가까울 것이다. 예를 들어 π는 구의 부피와 그보다 높은 차원의 버전에서 보이므로, 주어진 짧은 길이의 예상 벡터 수 등과 관련이 있다.
그러나, 해시 함수를 사용하면 단점도 있다. 예를 들어, 해시 함수를 사용하면 출력도 의사랜덤하기 때문에, 사용되고 있는 π와 유사한 단점을 갖고 있다. 이러한 단점은 최적이 아닌 계산 효율 및 증명 가능한 보안 약화를 포함할 수 있다.
또한, 해시 함수의 사용은 그 입력이 비밀 공격을 실현하도록 조작될 수도 있다는 단점이 있을 수 있다. 이 문제를 해결하기 위해, 일반적으로 π와 같은 NUMS 자체의 입력을 선택하지만, 그 결과가 조작의 자유와 관련하여 π를 직접 사용하는 신뢰도를 향상시키지 못한다.
해시 함수의 또 다른 단점은 비밀 공격을 실현하는데 해시 함수 그 자체가 조작되어 신뢰도가 감소한다는 것이다.
검색 파라미터
나이브 NUMS 및 해시 파생 의사랜덤 접근법을 포함하여, 디피 헬만 필드 사이즈를 찾는 상기한 의사랜덤 접근법은, 일반적으로 의사랜덤 수 값에서 시작하여 추가 기준을 충족하는 작은 카운터 값을 검색하는 것을 필요로 한다. 일반적으로 그 기준은 다음과 같은 방식으로 작동한다. 의사랜덤 수 값 및 작은 값은, 디피 헬만 필드 사이즈에 대한 후보값 p를 얻기 위해 추가된다. p는 소수가 아니면 거부된다. p가 소수이면, q가 소수이고 h가 작은 경우에 있어서 p = hq +1이 되도록 작은 인수를 갖는 것이 테스트된다. 이것이 실패하면 p가 거부된다. 어떤 경우에서도 p가 거부되면 작은 카운터 값이 1씩 증분되고 p값이 최종적으로 허용될 때까지 프로세스가 반복된다.
소수가 드물기 때문에 이 검색에는 시간이 오래 걸릴 수 있다. 검색이 약 백만번 정도 반복될 수 있다고 예상할 수 있다. 이와 관련하여, 작은 카운터 값은 약 백만개 정도일 수 있다. 또한 소수의 조건이 복잡하기 때문에 그렇게 얻어진 작은 카운터 값도 복잡하므로 크게 압축될 수 없다. p를 정의하는 어떤 간단한 산술 연산에도 간단한 카운터 값이 포함되어야 한다.
결과적으로, 검색으로 인한 소수 p는 가장 간결할 것 같은 표현을 갖지 않는다. 반면, p에 가까운 의사 메르센 소수(pseudo Mersenne prime number)는 훨씬 더 간결한 표현을 갖는 경향이 있다.
p 선택
상기한 전부에 근거하여, 대부분의 기존 접근법은 계산 효율성 또는 보안성을 최적화하지 못한다. 특히, 나이브 접근법은 필드 사이즈의 검색을 더욱 확장하기 위해 추가 개선한 것이다. 예를 들어 덴 보어 기준과 아마도 몇몇 효율성 기준을 검색할 수 있다. 그러나, 이 추가 검색의 주요 단점은 검색이 악의적인 것으로 의심될 수 있다는 것이다. 이 추가 검색의 또 다른 단점은 카운터 시드값이 훨씬 더 커지고 추가 조건이 매우 드물게 충족되기 때문에 필드 사이즈를 지정하려면 이러한 검색에 더 많은 정보가 필요하다는 것이다. 또한 추가 기준을 충족하기 위해서는 다량의 검색 수고가 필요할 수 있다.
따라서, 본 개시내용에 따르면, (b!+1) 형태로 작성되는, 계승에 1을 더한 소수 오더를 갖는 고전적인 디피 헬만 서브그룹 사이즈가 제공된다. 후술하겠지만, 이러한 소수 오더는 디피 헬만 키 교환이 특수 NFS에 저항할 수 있게 한다.
후술하는 실시형태에 따르면, 서브그룹 오더의 특수 구조는 또한 이산 로그와 디피 헬만 문제 간의 덴 보어의 축소를 최적화하는 것을 돕는다. 이에, 디피 헬만 문제는 이산 로그 문제에 가깝다.
또한, 소수 필드 사이즈에 대한 최소 여인수를 선택함으로써 소규모 서브그룹 공격의 우려를 더욱 최소화할 수 있다. 경우에 따라, 특수 구조는 랜덤한 소수를 능가하는 계산 효율성 이점도 제공할 수 있다.
또한, 후술하는 실시형태에서는, 소수의 표현이 간단한 방정식에 맞춰지기에 충분히 작고, 이에 다른 소수와 비교할 때 이 소수가 악의적으로 선택되었다는 우려를 없애는데 도움이 된다.
이제 소수 필드 사이즈 p를 선택하고 사용하는 프로세스를 보여주는 도 2를 참조하여 설명한다. 도 2의 프로세스에서는 필드 사이즈 p = h(b!+1)+1가 된다.
구체적으로, 프로세스는 블록 210에서 시작하며, 제너레이터에 소수 오더 q가 사용되는 블록 212로 진행한다. 소수 오더 q는 계승수(fatorial number) b에 1을 더한 것을 사용하여 생성된다. b!+1 형태의 계승 소수는 매우 드물기 때문에 이러한 소수 오더를 사용하면 드문 소수가 생성된다.
일부 실시형태에서, 블록 212에서의 선택은, 효율적으로 계산되기에 너무 큰 수를 생성하지 않으면서 애플리케이션을 위해 충분한 암호화 보안을 제공하기에 q가 충분히 큰 것을 보장하도록 이루어질 수 있다.
당업자라면 이해할 수 있겠지만, n!는 처음 n개의 양의 정수의 곱이다. 구체적으로, n! = 1*2*3*…*(n-1)*n이다.
블록 212에서의 b의 선택을 위한 다양한 옵션이 가능하다. 예를 들어, b = 399, b = 427, 및 b = 872는 b!+1의 형태일 때 각각 소수를 생성하므로 소수 오더 q에 대한 가능성이다.
일반적으로, 128 비트 보안을 필요로 하는 애플리케이션은 128개의 대칭키를 보호하기 위해 필드 사이즈 p에 대한 비트 길이가 3000 비트와 4000 비트 사이에 있는 것을 필요로 한다.
소수 (399!+1)는 비트 길이가 2887이므로 일부 애플리케이션에는 충분하지만 128개의 비트 보안을 필요로 하는 애플리케이션에는 충분하지 않을 수도 있다.
소수 (427!+1)는 비트 길이가 3121고, 그래서 여인수가 곱해진 후에, 비트 길이 p는 디피 헬만 필드 사이즈에 현재 사용되는 기존의 3072 비트를 초과한다.
계승 소수는 매우 드물기 때문에 고려할 수 있는 b의 다음 값은 b = 872이다. 소수 (872!+1)는 비트 길이가 7000와 8000 사이에 있어서 일부 애플리케이션에서는 클 수도 있다.
다음으로, 블록 212로부터, 프로세스는 여인수 h를 찾는 블록 220으로 진행한다. 특히, 여인수 h를 선택할 때, 공식 p = hq+1이 사용될 수 있고 소수를 생성해야 한다. 전술한 바와 같이, 소규모 서브그룹 공격을 피하기 위해서는 여인수 h가 상대적으로 작아야 한다.
각각의 경우에, 여인수 h는 단순히 각 짝수 h를 시도하고 p = hq+1을 계산한 다음 p가 소수인지 테스트함으로써 찾는다. 소수 정리에 따르면, 시도할 값 h의 예상 수와, 따라서 찾게 되는 제1 적합한 h의 사이즈는 대략 1000개 정도이다.
상기한 b가 427!로 선택되면 소수 p를 생성하는 h의 최소값은 630이다. b가 872!로 지정되면, 가장 작은 값의 여인수는 1398이고, 그래서 p = 1398(872!+1)+1가 된다.
따라서, 일 실시형태에서, 블록 212 및 220에서의 선택은 소수 필드 사이즈 p = 630(427!+1)+1을 생성할 수 있다.
630을 더 큰 여인수 h로 대체함으로써 다른 소수 p를 고려할 수도 있지만, 일부 실시형태에서는 불필요할 수도 있다. 예를 들어, 다른 여인수를 고려해야 하는 한 가지 이유는 h = 630인 원래값 p가 특수 NFS에 다소 취약한 경우이다. 더 큰 여인수 값이 취약하지 않다고 하면 선택이 이루어지게 된다. 그러나 원래의 p 값과 더 큰 p 값이 간단한 관계로 선형으로 관련되는 경우, 특수 NFS가 양 여인수에서 거의 동일하게 작동하고, 따라서 이렇게 약간 증가한 h값이 특수 NFS 취약성을 방지할 가능성은 단지 적을 뿐이다. 다시 말해, 주어진 q에 대해, 일 실시형태에서, 소수를 만드는 가장 작은 값의 h가 선택될 수 있다.
소수 필드 사이즈 p = h(b!+1)+1을 선택하면 상기에서 확인한 문제가 해결되는데, 즉, 이러한 필드 사이즈를 사용한 키 협정은 고든의 공격 및 특수 NFS에 저항하며, 이산 로그 문제와 디피 헬만 문제의 상관관계가 밀접하고, 키 협정은 이산 로그 문제에 대한 비밀 알고리즘에 저항하며, 이러한 필드 사이즈를 사용한 키 협정은 소규모 서브그룹 공격의 위협에 더욱 저항한다.
특히, 특수 NFS에 대한 고든의 숨겨진 취약성 공격 우려는 두 가지 이유로 최소화된다. 기존의 NUMS 인수인 고든의 공격에 대한 고든의 원래의 대응책에 대해 전술한 바와 같이, 필드 사이즈가 매우 압축된 형태로 표시될 수 있기 때문에 이 공격은 방지된다. 본 개시내용의 실시형태는 p = h(b!+1)+1이라는 요건(specification)이 적은 형태로 더 큰 압축을 사용함으로써 NUM 인수를 개선시킨다.
또한, 계승을 거듭제곱의 합으로 표현하는 일반적인 방법은 인수분해 알고리즘(factoring algorithm)을 초래하게 된다. 예를 들어 소수 s에 대해 n = rs를 인수분해하려면 m을 n의 제곱에 가까운 정수로 지정하면 쉽게 찾을 수 있다. 그러면 m은 r과 s 사이에 있다. m!이 거듭제곱의 합으로 쓰여지면, m! 모듈로 n을 축소하려는 시도가 행해질 수 있는데, 거듭제곱은 제곱-곱셈 알고리즘에 의해 효율적으로 축소될 수 있기 때문이다. 축소된 m!과 n의 최대공약수(gcd)를 찾으면, 공통 약수는 n의 더 작은 인수가 될 것이다.
인수분해는 어려운 것으로 여겨지기 때문에, 계승을 단순한 거듭제곱의 합으로서 재작성하는 일반적인 방법은 없어야 한다. 따라서 630(427!+1)+1과 같은 숫자가 거듭제곱의 소규모 합으로 쓰여질 가능성이 낮으므로 특수 NFS에 취약해지지 않게 된다.
p = h(b!+1)+1을 사용하면 또한, 가능성이 낮은 랜덤 소수에 영향을 미치는 다른 비밀 공격에 대한 조작 우려를 해결할 수 있다. 이는 매우 간단한 형태의 방정식으로 인한 것인데, 검색 결과를 제공하는 검색 정보가 그 간단한 방정식에 포함되지 않을 가능성이 있음을 의미한다. 더욱이, b!+1가 소수가 되는 특수한 특성은 그것의 간결한 표현이 제안하게 되는 것보다 훨씬 드물어서, 이 경우도 특수 NFS에 취약할 가능성이 적다.
디피 헬만 스킴이 안전한 것으로 간주된다면 디피 헬만 문제와 이산 로그 간의 난이도의 갭은 작아야 한다. 필드 사이즈 p = h(b!+1)+1은 디피 헬만 문제와 이산 로그 문제 간의 갭의 우려를 줄이는데 이 사이즈가 덴 보어 조건을 충족하기 때문이다. 구체적으로, 수 q-1 = b!은 작은 숫자들의 곱이므로 덴 보어의 증명이 적용된다. 대부분의 랜덤 소수는 작은 갭이라는 이러한 강력한 증거를 결코 갖지 않는다.
작은 여인수 h의 경우에 있어서, 상기한 실시형태에서의 여인수는 q에 비해 매우 작다. 3000 비트의 비밀 중 최대 10 비트가 유출될 수 있고 소규모 서브그룹 공격에 저항하는 여인수 방법은 상대적으로 저렴하여 런타임의 약 1% 미만이다.
또한, 상기한 실시형태는 랜덤 소수와 비교하여, h(b!+1)+1의 이진 확장이 그 이진 확장에서 반복 비트의 강력한 패턴을 갖는다는 이점을 제공한다. 구체적으로, 630(427!+1)+1을 사용하는 경우, 그 이진 확장은 411개의 연속의 제로 비트의 시퀀스를 갖는다. 이들 패턴은 약간 더 빨라진 산술로 이어질 수 있다. 특히, p에서의 반복된 비트로 인해, 축소 mod p를 수행하는데 필요한 작업의 일부가 불필요해지기 때문에 모듈러 축소가 상당히 가속화될 수 있다. 예를 들어, 몽고메리(Montgomery) 모듈러 축소에서는, 단계 중 하나가 p를 곱하는 것이다. p의 다수의 연속 비트가 0 또는 1이면, 랜덤한 p와 비교하여 p의 곱셈이 가속화될 수 있다. 이러한 가속화는 미미하더라도 측정 가능하다. 또한, 거듭제곱의 합인 다른 특수 소수와 달리, 더 빨라진 산술이 보안성을 떨어지게 하지 않을 수 있다.
부록 A는 본 개시내용의 실시형태에 따라 설명된 형태로 소수를 검색하는데 사용되는 코드를 나타낸다.
다시 도 2를 참조하면, 블록 220으로부터 프로세스는 필드 사이즈 p를 디피 헬만 키 교환에 사용하는 블록 230으로 진행한다. 그 후 프로세스는 블록 250으로 진행하여 종료된다.
이제, 통신자(A)와 통신자(B)가 디피 헬만 키 교환을 수행하는 것을 보여주는 도 3을 참조하여 설명한다. 도청자(330)가 두 통신자 사이의 통신을 청취한다.
상기한 개시내용에 따르면, 통신자(A) 및 통신자(B)의 컴퓨팅 디바이스 상의 소프트웨어는 필드 사이즈 p를 사용할 것이다. 각각은 이미 소수 모듈러스를 알고 있을 수도 있고 또는 소수 필드 사이즈가 두 통신자 사이의 링크(12)를 통해 교환될 수도 있다.
또한, 정수 g가 통신자(A 또는 B)의 컴퓨팅 디바이스에 이미 공지되어 있거나, 예를 들어 메시지(340)로 나타내는 바와 같이 교환될 수도 있다.
양 당사자가 g를 알게 되면, 통신자(A)는 gx를 생성할 수 있고 통신자(B)는 gy를 생성할 수 있는데, 여기서 x와 y는 각각 통신자(A 및 B)의 개인키이다.
통신자(A)는 메시지(350)로 통신자(B)에게 A = gx를 전송하고, 통신자(B)는 메시지(352)로 대응자(A)에게 B = gy를 전송한다. 그 후, 통신자(A)는 z = bx = gxy를 계산할 수 있고, 통신자(B)는 w = Ay = gxy를 계산할 수 있다. 따라서, 양 통신자(A 및 B)는 두 당사자 사이의 통신(correspondence)을 암호화하고 해독하는데 사용할 수 있는 공유키를 갖게 된다.
상기한 바는 임의의 컴퓨팅 디바이스를 사용하여 구현될 수 있다. 예를 들어, 도 4와 관련하여 하나의 단순화된 컴퓨팅 디바이스가 제공된다.
도 4에서, 디바이스(410)는 프로세서(420) 및 통신 서브시스템(430)을 포함하고, 프로세서(420) 및 통신 서브시스템(430)은 전술한 실시형태의 방법을 수행하기 위해 협력한다.
프로세서(420)는, 디바이스(410) 상에, 데이터와 함께 저장될 수 있고 도 4의 예에서는 메모리(440)로서 도시되는 프로그래머블 로직을 실행하도록 구성된다. 메모리(440)는 임의의 유형의(tangible) 비일시적 컴퓨터 판독 가능 저장 매체일 수도 있다. 컴퓨터 판독 가능 저장 매체는, 옵티컬(예컨대, CD, DVD 등), 매그네틱(예컨대, 테이프), 플래시 드라이브, 하드 드라이브, 또는 당업계에 알려진 다른 메모리와 같은 유형적 또는 일시적/비일시적 매체일 수도 있다.
대안적으로, 또는 메모리(440)에 추가하여, 디바이스(410)는 예컨대 통신 서브시스템(430)을 통해 외부 저장 매체로부터의 데이터 또는 프로그래머블 로직에 액세스할 수도 있다.
통신 서브시스템(430)은 디바이스(410)가 다른 디바이스 또는 네트워크 엘리먼트와 통신할 수 있게 한다.
디바이스(410)의 다양한 엘리먼트들 간의 통신은 일 실시형태에서는 내부 버스(460)를 통해 이루어질 수 있다. 그러나 다른 형태의 통신도 가능하다.
본 명세서에서 설명하고 도면에 도시한 특정 실시형태의 구조, 특징, 액세서리 및 대안은 호환 가능하다면 본 명세서에서 설명하고 도시한 실시형태 전부를 포함해 본 개시내용의 모든 교시에 일반적으로 적용되는 것이 의도된다. 다시 말해서, 특정 실시형태의 구조, 특징, 액세서리 및 대안은 달리 지시되지 않는 한 특정 실시형태에만 제한되는 것이 의도되지 않는다.
또한, 본 개시내용의 추가 특징 및 장점이 당업자에게 이해될 것이다.
본 명세서에서 설명한 실시형태는 본 출원의 기술의 요소에 대응하는 요소를 갖는 구조, 시스템 또는 방법의 예이다. 여기에 쓰여진 설명은 당업자가 본원의 기술의 요소에 마찬가지로 대응하는 대안의 요소를 갖는 실시형태를 구성하고 사용하는 것을 가능하게 한다. 따라서 본원의 기술의 의도된 범위는 본 명세서에서 설명한 바와 같이 본원의 기술과 다르지 않은 다른 구조, 시스템 또는 방법을 포함하고, 본 명세서에서 설명한 바와 같이 본원의 기술과 미미한 차이점을 갖는 다른 구조, 시스템 또는 방법도 포함한다.
부록 A
소수 검색에 사용되는 코드
Figure 112019107979108-pct00004

Claims (15)

  1. 디피 헬만(Diffie Hellman) 키 교환 방법에 있어서,
    p = hq+1의 형태의 필드 사이즈 p를 선택하는 단계 ― 여기서 q는 계승수(factorial number) b에 1을 더한 소수이므로 q = (b!+1)이고, h는 여인수(cofactor)이므로 p = hq+1가 소수가 됨 ―;
    오더 모듈로(order modulo) p가 소수 q이거나 q로 나누어질 수 있는 제너레이터 정수 g를 선택하는 단계;
    개인키 x를 선택하는 단계;
    상기 제너레이터 g에 상기 개인키 x를 거듭제곱하고 산술 모듈로(arithmetic modulo) 상기 소수 필드 사이즈 p를 사용하여, 공개키 gx mod p를 계산하는 단계;
    상기 공개키 gx mod p를 상대방(correspondent)에 전송하는 단계;
    상기 상대방으로부터, 상기 상대방이 선택한 제2 개인키 y를 g에 거듭제곱해서 gy 형태로 포함하는 제2 공개키 B를 수신하는 단계; 및
    산술 모듈로 상기 소수 필드 사이즈 p를 사용해서, 상기 수신된 제2 공개키 B로부터, 상기 제2 공개키 B에 상기 개인키 x를 거듭제곱하여 키 Bx를 생성하는 단계
    를 포함하는, 디피 헬만 키 교환 방법.
  2. 제1항에 있어서, b는, 소수 오더가 최소 임계 사이즈를 초과하도록 선택되는, 디피 헬만 키 교환 방법.
  3. 제2항에 있어서, 상기 최소 임계 사이즈는 3000 비트인, 디피 헬만 키 교환 방법.
  4. 제3항에 있어서, b가 427로 선택되는, 디피 헬만 키 교환 방법.
  5. 제4항에 있어서, h가 630으로 선택되어 p = 630(427!+1)+1이 되는, 디피 헬만 키 교환 방법.
  6. 제3항에 있어서, b가 872로 선택되는, 디피 헬만 키 교환 방법.
  7. 제6항에 있어서, h가 1398로 선택되어 p = 1398(872!+1)+1이 되는, 디피 헬만 키 교환 방법.
  8. 디피 헬만 키 교환을 위해 구성되는 컴퓨팅 디바이스에 있어서,
    프로세서를 포함하고, 상기 프로세서는,
    p = hq+1의 형태의 필드 사이즈 p를 선택하고 ― 여기서 q는 계승수 b에 1을 더한 소수이므로 q = (b!+1)이고, h는 여인수(cofactor)이므로 p = hq+1가 소수가 됨 ―,
    오더 모듈로 p가 소수 q이거나 q로 나누어질 수 있는 제너레이터 정수 g를 선택하고,
    개인키 x를 선택하고,
    상기 제너레이터 g에 상기 개인키 x를 거듭제곱하고 산술 모듈로 상기 소수 필드 사이즈 p를 사용하여, 공개키 gx mod p를 계산하고,
    상기 공개키 gx mod p를 상대방에 전송하고,
    상기 상대방으로부터, 상기 상대방이 선택한 제2 개인키 y를 g에 거듭제곱해서 gy 형태로 포함하는 제2 공개키 B를 수신하고,
    산술 모듈로 상기 소수 필드 사이즈 p를 사용해서, 상기 수신된 제2 공개키 B로부터, 상기 제2 공개키 B에 상기 개인키 x를 거듭제곱하여 키 Bx를 생성하도록
    구성되는, 컴퓨팅 디바이스.
  9. 제8항에 있어서, b는, 소수 오더가 최소 임계 사이즈를 초과하도록 선택되는, 컴퓨팅 디바이스.
  10. 제9항에 있어서, 상기 최소 임계 사이즈는 3000 비트인, 컴퓨팅 디바이스.
  11. 제10항에 있어서, b가 427로 선택되는, 컴퓨팅 디바이스.
  12. 제11항에 있어서, h가 630으로 선택되어 p = 630(427!+1)+1이 되는, 컴퓨팅 디바이스.
  13. 제10항에 있어서, b가 872로 선택되는, 컴퓨팅 디바이스.
  14. 제13항에 있어서, h가 1398로 선택되어 p = 1398(872!+1)+1이 되는, 컴퓨팅 디바이스.
  15. 컴퓨팅 디바이스의 프로세서에 의해 실행될 때에 디피 헬만 키 교환을 위해 구성되는 프로그램 코드를 포함하는 컴퓨터 판독 가능 매체에 있어서,
    상기 프로그램 코드는 상기 컴퓨팅 디바이스로 하여금,
    p = hq+1의 형태의 필드 사이즈 p를 선택하고 ― 여기서 q는 계승수 b에 1을 더한 소수이므로 q = (b!+1)이고, h는 여인수(cofactor)이므로 p = hq+1가 소수가 됨 ―,
    오더 모듈로 p가 소수 q이거나 q로 나누어질 수 있는 제너레이터 정수 g를 선택하고,
    개인키 x를 선택하고,
    상기 제너레이터 g에 상기 개인키 x를 거듭제곱하고 산술 모듈로 상기 소수 필드 사이즈 p를 사용하여, 공개키 gx mod p를 계산하고,
    상기 공개키 gx mod p를 상대방에 전송하고,
    상기 상대방으로부터, 상기 상대방이 선택한 제2 개인키 y를 g에 거듭제곱해서 gy 형태로 포함하는 제2 공개키 B를 수신하고,
    산술 모듈로 상기 소수 필드 사이즈 p를 사용해서, 상기 수신된 제2 공개키 B로부터, 상기 제2 공개키 B에 상기 개인키 x를 거듭제곱하여 키 Bx를 생성하게 하는, 컴퓨터 판독 가능 매체.
KR1020197031203A 2017-03-27 2018-03-15 유한 필드 디피 헬만에서 보안 소수를 선택하기 위한 방법 및 시스템 KR102490702B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/470,259 US10355859B2 (en) 2017-03-27 2017-03-27 Method and system for selecting a secure prime for finite field diffie-hellman
US15/470,259 2017-03-27
PCT/CA2018/050313 WO2018176122A1 (en) 2017-03-27 2018-03-15 Method and system for selecting a secure prime for finite field diffie-hellman

Publications (2)

Publication Number Publication Date
KR20190127915A KR20190127915A (ko) 2019-11-13
KR102490702B1 true KR102490702B1 (ko) 2023-01-19

Family

ID=63583657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197031203A KR102490702B1 (ko) 2017-03-27 2018-03-15 유한 필드 디피 헬만에서 보안 소수를 선택하기 위한 방법 및 시스템

Country Status (6)

Country Link
US (1) US10355859B2 (ko)
EP (2) EP3809628B1 (ko)
KR (1) KR102490702B1 (ko)
CN (2) CN116865968A (ko)
CA (1) CA3056150C (ko)
WO (1) WO2018176122A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11374740B2 (en) * 2020-03-13 2022-06-28 Infineon Technologies Ag Controller area network key exchange

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5159632A (en) * 1991-09-17 1992-10-27 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
GB9510035D0 (en) * 1995-05-18 1995-08-02 Cryptech Systems Inc Strengthened public key protocols
NL1005919C1 (nl) * 1997-04-28 1998-10-29 Eric Robert Verheul Een methode voor Publiekelijk verifieerbare örecoveryö van Diffie-Hellman, RSA en Rabin gerelateerde asymmetrische versleuteling.
US6151395A (en) * 1997-12-04 2000-11-21 Cisco Technology, Inc. System and method for regenerating secret keys in diffie-hellman communication sessions
US7076061B1 (en) * 2000-02-07 2006-07-11 Citibank, N.A. Efficient and compact subgroup trace representation (“XTR”)
FR2842052B1 (fr) * 2002-07-05 2004-09-24 France Telecom Procede et dispositifs cryptographiques permettant d'alleger les calculs au cours de transactions
EP1467514B1 (en) * 2003-04-07 2006-06-14 STMicroelectronics S.r.l. Encryption process employing modified chaotic maps and relative digital signature process
DE60322338D1 (de) * 2003-04-07 2008-09-04 St Microelectronics Srl Verschlüsselungsverfahren unter Verwendung von chaotischen Abbildungen und digitale Unterschriftsverfahren
WO2006051402A1 (en) * 2004-11-11 2006-05-18 Certicom Corp. Custom static diffie-hellman groups
JP2007052386A (ja) * 2005-08-17 2007-03-01 Kiki Mimori 複素数及び行列による強化rsa系暗号
CN101336437B (zh) * 2005-12-29 2013-03-27 雷吉菲公司 用于提供电子邮件消息的递送的通信系统
KR100872817B1 (ko) * 2006-12-07 2008-12-09 인하대학교 산학협력단 변형 디피 헬만 기반 키교환 방법
US7925011B2 (en) * 2006-12-14 2011-04-12 Intel Corporation Method for simultaneous modular exponentiations
WO2009056048A1 (en) 2007-10-23 2009-05-07 Yao Andrew C Method and structure for self-sealed joint proof-of-knowledge and diffie-hellman key-exchange protocols
JP2010011478A (ja) * 2009-08-24 2010-01-14 Certicom Corp 内在的署名を用いた鍵一致及び搬送方法
US8892908B2 (en) * 2010-12-23 2014-11-18 Morega Systems Inc. Cryptography module for use with fragmented key and methods for use therewith
RU2016104606A (ru) * 2013-07-12 2017-08-18 Конинклейке Филипс Н.В. Устройство и способ согласования ключа
GB2547441B (en) * 2016-02-17 2020-04-29 Arm Ip Ltd A method for mitigating a DOS attack on a device
US20180091301A1 (en) * 2016-05-06 2018-03-29 ZeroDB, Inc. Method and system for switching public keys in ciphertexts

Also Published As

Publication number Publication date
CN110495134B (zh) 2023-08-25
EP3809628B1 (en) 2022-08-24
WO2018176122A1 (en) 2018-10-04
US20180278416A1 (en) 2018-09-27
KR20190127915A (ko) 2019-11-13
EP3580890A1 (en) 2019-12-18
EP3580890A4 (en) 2020-01-08
CN116865968A (zh) 2023-10-10
CN110495134A (zh) 2019-11-22
EP3580890B1 (en) 2020-12-16
EP3809628A1 (en) 2021-04-21
CA3056150A1 (en) 2018-10-04
US10355859B2 (en) 2019-07-16
CA3056150C (en) 2024-01-30

Similar Documents

Publication Publication Date Title
US11876901B2 (en) Elliptic curve random number generation
Kahrobaei et al. Public key exchange using matrices over group rings
CN105892991B (zh) 使用查找表的模乘运算
Segar et al. Pell's RSA key generation and its security analysis
CA2587618C (en) Custom static diffie-hellman groups
Ullah et al. A review of signcryption schemes based on hyper elliptic curve
Khan et al. Data security in cloud computing using elliptic curve cryptography
Sengupta et al. Message mapping and reverse mapping in elliptic curve cryptosystem
US9590805B1 (en) Ladder-based cryptographic techniques using pre-computed points
Mukhopadhyay et al. Securing the data in clouds with hyperelliptic curve cryptography
KR102490702B1 (ko) 유한 필드 디피 헬만에서 보안 소수를 선택하기 위한 방법 및 시스템
JP3402441B2 (ja) 公開鍵暗号化装置、公開鍵暗号復号装置及び復号プログラム記録媒体
Gorbenko et al. Methods of building general parameters and keys for NTRU Prime Ukraine of 5 th–7 th levels of stability. Product form
EP2395698A1 (en) Implicit certificate generation in the case of weak pseudo-random number generators
Somsuk The New Equation for RSA's Decryption Process Appropriate with High Private Key Exponent
EP3166013A1 (en) Modular exponentiation using randomized addition chains
Somsuk et al. Speed up RSA’s Decryption Process with Large sub Exponents using Improved CRT
Yakubu et al. An improved RSA image encryption algorithm using 1-D logistic map
Agarwal et al. Elliptic Curves: An Efficient and Secure Encryption Scheme in Modern Cryptography
Somsuk The alternative Method to Finish Modular Exponentiation and Point Multiplication Processes
KR100368204B1 (ko) 정규 기저를 이용한 역원 계산 알고리즘
Banerjee et al. Improved Trial Division Technique for Primality Checking in RSA Algorithm
Merkle et al. 8. Hiding Information and Signatures in
Banerjee et al. Deterministic and Probabilistic Approach in Primality Checking for RSA Algorithm
Purboyo et al. A Review of Key Length SelectionFormula for Elliptic Curve Cryptosystems.

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant