KR20020060189A - 엔티티의 인증성 또는 메시지의 무결성을 검증하기 위한특수 키 세트 - Google Patents
엔티티의 인증성 또는 메시지의 무결성을 검증하기 위한특수 키 세트 Download PDFInfo
- Publication number
- KR20020060189A KR20020060189A KR1020027004229A KR20027004229A KR20020060189A KR 20020060189 A KR20020060189 A KR 20020060189A KR 1020027004229 A KR1020027004229 A KR 1020027004229A KR 20027004229 A KR20027004229 A KR 20027004229A KR 20020060189 A KR20020060189 A KR 20020060189A
- Authority
- KR
- South Korea
- Prior art keywords
- mod
- key
- secret
- modulus
- prime factors
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 제어자 엔티티에 메시지의 인증성 또는 메시지 M의 무결성을 검증하는 방법에 관한 것이다. 상기 검증방법은, 비밀값 Qi과 공개값 Gi,=gi 2의 m개(m≥ 1)의 쌍과, f개(f ≥2)의 소인수의 곱으로 구성된 공개모듈러스 n과, 식 GiㆍQi v≡1ㆍmod n 또는 Gi ≡Qi vmod n로 연관된 공개지수 v=2k를 포함하는 키 세트에 의해 확립되며, 상기 키 세트는, Qi또는 역모듈로 n을 k-1배 계수로 모듈로 n 제곱하여 얻어진 m개의 q1중의 하나는 ±gi과 상이하거나, 2m개의 식 X2≡gimod n, X2≡- gimod n 중에서 적어도 하나는 정수 모듈로 n의 링(ring) 내에서 x에 대한 해를 갖도록 생성된다.
Description
EP 0 311 470 B1호(발명자; Louis Guillou와 Jean-Jacques Quisquater)는 상기 방법을 기재하고 있다. 이하, 상기 특허를 "GQ 특허" 또는 "GQ 방법"이라는 용어로 칭하여 참조할 것이다. 이하 "GQ2", "GQ2 발명" 또는 "GQ2 기술"이라는 용어들은 때때로 GQ 기술을 사용하며 QuisquaterFrance Telecom, TDF와 Mathrizk Company에 의해 출원되고 Louis Guillou와 Jean-Jacques에 의해 발명된 본 출원과 동일자에 진행 중인 출원들에 의해 새로이 개발된 형태들을 지칭하는데 사용될 것이다. 상기 진행 중인 출원들의 독특한 특징은 이하 설명에서 필요할 때마다 재언급될 것이다.
상기 GQ 방법에 따르면, "신뢰받은 권한(trusted authority)"으로 알려진 엔티티는 "증거(witness)"라 하는 엔티티 각각에 식별성(identity)을 할당하고 그 RSA 서명을 연산한다: 개별화된 과정에서, 상기 신뢰받은 권한은 상기 증거에 식별성 및 서명을 부여한다. 그런 후, 상기 증거는 "여기 나의 식별성이 있음. 나는 그 RSA의 서명을 알아냈음." 이라고 선언한다. 상기 사실을 공개하지 않고, 상기 증거는 자신이 그 식별성의 RSA 서명을 알고 있슴을 증명한다. 상기 신뢰받은 권한에 의해 분배된 RSA 공개 식별키를 통해서 "제어자(controller)"로 알려진 엔티티는 상기 식별키의 지식(knowledge)을 제공받지 않고, 상기 RSA 서명이 상기 선언된 동일성과 일치하는 지를 확인한다. 상기 GQ 방법을 이용하는 메커니즘은 "지식의 전송없이" 이루어진다. 상기 GQ 방법에 따르면, 상기 증거는 신뢰받은 권한이 수많은 식별자를 서명하는데 사용하는 RSA 비밀키를 알지 못한다.
상술한 GQ 기술은 RSA 기술을 사용한다. 그러나, RSA기술이 정확하게 모듈러스(modulus) n의 인수분해에 의존하는 반면에, 이러한 의존성은 등가가 아니다. 즉, RSA기술을 구현하는 디지털 서명의 다양한 표준에 대한 소위 "승산" 어택("multiplicative" attack)에서 나타나는 것과 같이, 결코 등가와 관련없는 것이다.
GQ2 기술의 목적은 2가지이다. 하나는 RSA 기술의 고유성능을 향상시키는 것이고, 다른 하나는 RSA 기술의 본질적인 문제를 해결하는 것이다. GQ2 비밀키의 지식은 모듈러스 n의 인수분해의 지식과 동등하다. 상기 트리플렛(triplet) GQ2에 대한 임의의 어택은 모듈러스 n에 대한 인수분해가 된다. 이러한 경우는 등가이다. GQ2 기술을 이용함으로써, 작업 부하는 서명 또는 자기 인증 엔티티 및 제어 엔티티를 위해 감소된다. 보안 및 성능의 면에서 인수분해의 문제를 더 향상되게 사용하는 것을 통해서, GQ2 기술은 RSA 기술의 단점을 극복하게 된다.
상기 GQ 방법은 512비트 또는 그 이상의 수의 모듈로(modulo) 연산을 구현한다. 상기 연산수치는 216+1 차수의 거듭제곱으로 상승된 크기와 대략적으로 동일한 크기를 갖는 수와 관련되어 있다. 예를 들면, 은행 카드 분야에서, 기존 마이크로전자 하부구조는 연산 보조프로세서 없이 자체 프로그램 가능한 모노리식 마이크로 프로세서(monolithic self-programmable microprocessor)를 이용한다. 상기 GQ 방법과 같은 방법들에 속하는 다중 연산 수행(operation)과 연관된 작업부하는 계산시간을 야기하고, 이러한 계산시간은 어떤 경우에는 소비자가 구매시 은행카드를 사용하여 지불하는데 불편을 느끼게 된다. 여기서, 지불카드의 보안성을 향상시키는 데 있어서, 은행측은 해결하기 특별히 어려운 문제에 직면할 수 있다는 것을 생각해 볼 수 있다. 실제로 명백하게 모순되는 2가지 문제를 해결해야 한다. 즉, 각 카드에 점차 길고 명확한 키를 사용하여 보안성을 증가시키는 반면에, 그 작업부하로 인해 사용자들에게 과도한 계산시간이 야기되지 않도록 해야 한다. 이러한 문제가 특히 심각해지는 한 부가적으로 현재 하부구조 및 마이크로프로세서를 고려해 보아야만 한다.
GQ2 기술은 강력한 보안과 함께 상술한 문제에 대한 해결책을 제공한다.
GQ2 기술은 특수한 성질을 가지는 소인수(prime factor)들을 포함한다. 여러가지 기술들이 상기 소인수들을 생성하기 위해 존재한다. 본 발명의 대상은 상술한 것과 같은 종류의 소인수들을 체계적으로 생성할 수 있는 방법이다. 또한 본 발명의 대상은 GQ2 기술을 포함하는 상기 소인수들로 구성되는 그 응용법과 관련이 있다. 상기 특수 소인수와 상기 특수 소인수를 생산하는 방법은 GQ2 기술 분야 외에서 적용될 수 있다는 점을 지금 여기서 강조하는 바이다.
본 발명은 엔티티(entity)의 인증성 및/또는 메시지의 무결성 및/또는 인증성을 검증하기 위해 고안된 방법, 시스템 및 장치들의 기술 분야에 관한 것이다.
도1a 내지 도1d는 각각 3(mod 4), 5(mod 8), 9(mod 16) 및 17(mod 32)과 일치하는 p에 대한 그래프부분이다.
도2a 및 도2b는 각각 k ≥t = 3인 경우 및 u>0이고 u+k≤t인 경우, pi에 대한 그래프부분이다.
도3a 및 도3b는 각각 t<k인 경우 및 t≥k인 경우를 나타내는 그래프이다.
본 발명은,
- 메시지의 인증성 및/또는
- 메시지 M의 무결성을 제어자 엔티티에 검증하기 위한 방법으로,
상기 방법은,
- f개의 소인수 p1, p2, ..., pf(f는 2 이상임)의 곱으로 구성되거나 f개의 소인수를 구현하는 공개 모듈러스 n과,
- m개의 다른 정수인 기수 g1, g2, ..., gm(m은 1 이상임) - 여기서, gi는 상기 f개의 소인수들 p1, p2, ..., pf보다 작음 - 과,
- 비밀값 Q1, Q2,..., Qm과 공개값 G1, G2, ..., Gm(m은 1 이상임)의 m개의 쌍 또는 이로부터 유도된 파라미터를 구현하고,
상기 모듈러스와, 상기 비밀값 및 공개값은 관계식:
GiㆍQi v≡1ㆍmod n 또는 Gi ≡Qi vmod n
으로 연결되며, 상기 공개값 Gi는 상기 기수의 제곱인 gi 2이며, 상기 v는
v=2k
인 공개지수를 나타내며, 여기서, k는 1보다 큰 비밀 요소이다.
본 발명에 따른 방법은 아래의 조건을 만족시키는 방법으로 f개의 소인수 p1, p2, ..., pf및/또는 m개의 기수 g1, g2, ..., gm를 생성하는 단계를 포함한다.
제1 조건:
제1 조건에 따르면, 상기 각각의 식,
xv≡g1 2mod n (1)
정수인 모듈로 n의 링(ring)에서 x에 대한 해를 가짐.
제2 조건:
상기 제2 조건에 따르면, Gi ≡Qi vmod n인 경우, Q1을 계수가 k-1배로 모듈로 n 제곱하여 얻어진 m개의 q1중의 하나는 ±gi과 상이하며(즉, 비단순형(nontrivial)임,
상기 제2 조건에 따르면, Gi·Qi v≡1·mod n인 경우, Q1모듈로 n의 역을 계수가 k-1배로 모듈로 n 제곱하여 얻어진 m개의 q1중의 하나는 ±gi과 상이하다(즉, 비단순형임).
여기서, 일반 부호에 따라 ±gi는 gi와 n-gi를 나타낸다는 것을 밝혀둔다.
제3 조건:
제3 조건에 따르면, 아래 2m개의 식 중에서,
X2≡gimod n (2)
X2≡- gimod n (3)
적어도 하나는 정수 모듈로 n의 링(ring) 내에서 x에 대한 해를 갖는다.
본 발명에 따른, 상기 f개의 소인수 p1, p2, ..., pf및/또는 상기 m개의 기수 g1, g2, ..., gm을 생성하는 방법은 우선적으로,
ㆍ 상기 보안파라미터(security parameter) k와,
ㆍ 상기 f개의 소인수 p1, p2, ..., pf또는상기 m개의 기수 g1, g2, ..., gm를 생성하는지 여부에 따라, 그 m개의 기수 g1, g2, ..., gm및/또는 그 f개의 소인수 p1, p2, ..., pf를 선택하는 단계를 포함한다.
바람직하게는, 상기 m개의 기수 g1, g2, ..., gm은 적어도 제1 정수(whole number) 중에서 부분적으로 선택된다.
바람직하게는, 상기 보안파라미터 k는 특히, 100 미만의 작은 정수(whole number)이다.
바람직하게는, 상기 모듈러스 n의 크기는 수백 비트보다 크다.
바람직하게는, 상기 f개의 소인수 p1, p2, ..., pf는 상기 소인수의 개수 f에 의해 나누어지는 상기 모듈러스 n의 크기에 근접한 크기를 갖는다.
상기 제1 조건을 테스트하기 위해, 아래에 주어진 알고리듬을 구현함으로써상기 수 k, p, g의 양립성(compatibility)을 검사한다. 여기서, h는 p에 관한 g의 계수가 2h로는 나누어지고, 2h+1로는 나눠지지 않는 수를 의미한다. 상기 h는 르장드르 기호 (g|p)와, CG(p)에서 유닛의 2t차 원시근과 등가인 수 b로부터 계산된다. 여기서, 르장드르 기호 (gi|pi) 및 t는 아래의 설명에서 정의되는 의미를 갖는다.
이하, 상기 알고리듬의 단계이다.
ㆍ (g|p) = -1이면, h = t
ㆍ t = 1일 때 (g|p) = +1이면, h = 0
ㆍ t 〉1일 때 (g|p) = +1이면, 그 과정은 다음과 같다.
즉, 상기 키 <(p-1+21)/2t+1, p>는 G에 적용되어, 결과 w가 얻어진다:
ㆍ w = +g 이면 h = 0
ㆍ w = p-g 이면 h = +1.
상기 w가 +g 또는 p-g와 다르면(이 경우, t가 2보다 큼), 서브-모듈러스의 계산이 적용된다. 변수 c는 b로 초기화되고, 이어 아래의 단계인 서브-모듈러스 계산 단계를 i값을 t-1로부터 2까지 진행시키면서 반복한다.
제1 단계: 키 <2i,p>를 w/g(modp)에 적용하고.
* 그 결과가 +1과 등가이면, 제2 단계로 진행됨.
* 그 결과가 -1과 등가이면, 상기 i값은 h로 하고, w는 w.c(modp)로 대체됨.
제2 단계: c가 c2(modp)로 대체된다.
구해진 h 값은, 상기 제1 단계에 따라 키 <2i,p>를 적용하여 -1과 등가인 결과가 생성되는 것을 마지막으로 하여 얻어지는 값이다.
다음의 사항을 기억할 것이다.
- h 〉1이고 k+h〉t+1일 때, k, g, p 는 양립가능함.
- k값에 상관없이 h=0 또는 1이거나, h〉1이고 k+h≤t+1일 때, k, g, p 는 양립가능함.
상기 제2 조건을 테스트하기 위해, 적어도 하나의 세트 {δi,1, ..., δi,f}가 변수 또는 닐(nil)인지를 검사한다(이하, δ는 아래의 설명에 정의되는 의미임).
상기 제3 조건을 테스트하기 위해, f개의 르장드르 기호 (gi|p1) 내지 (gi|pf)의 값이 모두 +1 이거나 르장드르 기호 (-gi|p1) 내지 (-gi|pf)이 값이 모두 +1이 되는 기수 g1내지 gm이 존재하는지를 검사한다.
아래와 같이 t값에 따라 경우를 달리하는 과정으로, Gi≡Qi vmod n인 비밀값 Q1, Q2, ..., Qm(Qi,j≡Qimod pj)의 fㆍm 비밀요소 Qi,j를 계산한다.
t=1(즉, pj≡3(mod4))일 경우:
ㆍ 수 sj는 sj≡((pj+1)/4k(mod(pj-1)/2)을 만족하도록 계산되고,
ㆍ 그 키 <sj,pj>가 유도되며,
ㆍ 상기 키 <sj,pj>가 Gi에 적용되고,
ㆍ 이로써, w ≡Gi sj(modpj)를 얻을 수 있다.
Qi,j으로 가능한 2개의 값은 w와 pj-w이다.
t=2(즉, pj≡5(mod8))일 경우:
ㆍ 수 sj는 sj≡((pj+3)/8k(mod(pj-1)/4)를 만족하도록 계산되고,
ㆍ 그 키 <sj,pj>가 유도되며.
ㆍ 상기 키 <sj,pj>가 Gi에 적용되고,
ㆍ 이로써, w ≡Gi sj(modpj) 및 w'≡w.z(mod pj)를 얻을 수 있다.
여기서, z는 아래의 설명을 통해 정의되는 의미를 갖는다.
Qi,j로 가능한 4개의 값은 w, pj-w, w' 및 pj-w'이다.
h=0이거나 h=1일 때, t〉2(즉, pj≡2t+1(mod2t+1))인 경우,
ㆍ 수 sj는 sj≡((pj-1+2t)/2t+1)k(mod(pj-1)/2t)를 만족하도록 계산되고.
ㆍ 그 키 <sj,pj>가 유도되며,
ㆍ 상기 키 <sj,pj>가 Gi에 적용되고,
ㆍ 이로써, w ≡Gi sj(modpj)를 얻을 수 있다.
Qi,j의 2min(k,t)가지 가능한 값은 CP(pj)에서 유닛의 2min(k,t)차 근 중의 임의의 한 근과 w의 곱와 등가이다.
h〉1 또는 h+k ≤t+1일 때, t〉2(즉, pj≡2t+1(mod2t+1))인 경우,
ㆍ 수 sj는 sj≡((pj-1+2t)/2t+1)k+h-1(mod(pj-1)/2t)를 만족하도록 계산되고,
ㆍ 그 키 <sj,pj>가 유추되며,
ㆍ 상기 키 <sj,pj>가 2h-1차 제곱 Gi에 적용되고,
ㆍ 이로써, w를 얻을 수 있다.
Qi,j로 가능한 2k개의 값은 CP(pj)에서 유닛의 2k+h-1차 근과 w의 모든 곱이다.
Gi.Qi≡1.mod n 인 비밀요소 Qi,j를 계산하기 위해, 키 <sj,pj>에서 sj는 ((pj-1)/2t)-sj로 대체된다.
또한, 본 발명은 생성된 f개의 소인수 p1, p2, ..., pf또는 m개의 기수 g1, g2, ..., gm를 생성할 수 있는 방법에 관한 것이다.
상기 방법은,
제어자 엔티티에,
- 엔티티의 인증성 및/또는
- 상기 엔티티와 결합된 메시지 M의 무결성을,
비밀수 Q1, Q2, ..., Qm과 공개수 G1, G2, ..., Gm의 m개의 쌍(m은 1이상임), 또는 상기 비밀수와 공개수로부터 유도되는 파라미터에 의해, 특히 비밀요소 Qi,j를 이용하여 증명한다.
상기 방법은 아래의 단계에 따라 증거(witness)라 명명되는 엔티티를 구현한다.
상기 증거 엔티티는 f개의 소인수 pi 및/또는 소인수의 차이니즈 나머지의 파라미터 및/또는 공개 모듈러스 및/또는 비밀값 Qi의 fㆍm개의 비밀요소 Qi,j및 공개지수를 갖는다.
상기 증거는 정수 모듈로 n의 링에서 커미트먼트 R을 계산한다.
상기 각 커미트먼트는 ,
ㆍ r이 0〈r〈n을 만족하는 임의의 값인,
R≡rvmod n
으로 연산을 수행하여 계산하거나, 또는
ㆍ ri가 0〈ri〈pi를 만족하도록 소수(prime number) pi와 관련된 임의의 값이며, 각 ri가 임의의 수 {r1, r2, ..., rf}의 콜렉션에 속하는,
Ri≡ri vmod pi
으로 연산을 수행한 후에 차이니즈 나머지 방법을 적용하여 계산된다.
상기 증거는 하나 이상의 챌린지(challenge) d를 받는다. 아래에서 m개의 정수 di를 포함한 각 챌린지 d를 기본 챌린지(elementary challenge)라 한다.
상기 증거는 상기 각 챌린지 d로부터,
ㆍ D≡r.Q1 d1.Q2 d2... Qm dmmod n
으로 연산을 수행하거나, 또는
ㆍ Di≡ri.Qi,1 d1.Qi,2 d2... Qi,m dmmod pi
으로 연산을 수행한 후 차이니즈 나머지 방법을 적용함으로써 레스펀스 D를 계산한다.
상기 방법은, 챌린지 d와 커미트먼트 R과 동일한 수의 레스펀스 D를 생성한다. 상기 R, d, D 값의 각 그룹은 {R, d, D}로 표기되는 트리플릿을 구성한다.
GQ기술은 엔티티 및 메시지의 동적 인증과 메시지의 디지탈 서명을 목적으로 하며, "지식의 전송이 없는" 기술이다. 하나의 엔티티는 증명한다: 이러한 엔티티는 하나이상의 비밀수를 인식하고 있다. 다른 엔티티는 제어한다: 이러한 엔티티는 그에 상응하는 공개수(들)를 인식하고 있다. 상기 증명하는 엔티티는 비밀수(들)를 드러내지 않고 상기 제어하는 엔티티를 확신시켜 필요한 횟수만큼 그것을 사용하는 것을 허용한다.
각 GQ 패턴은 대규모의 비밀 소인수로 구성된 공개모듈러스에 기초한다. 공개지수(v) 및 공개 모듈러스(n)는 함께, "모듈러스n의 v제곱"을 나타내는 검증키<v,n>를 형성하고, 하나 이상의 일반식, 즉 모든 직접 등식형태인 G ≡Qv(mod n) 또는 그 역인 G ×Qv≡1 (mod n)으 통해 구현한다. 이러한 형태는 증명 엔티티가 아닌 제어 엔터티 내부의 연산작동에 영향을 준다; 실제로 보안성 분석은 상기 2가지의 형태를 혼동한다.각 일반식은 공개수 G 및 비밀수 Q를 연결하여 {G,Q}수의 쌍을 형성한다. 정리하면, 각 GQ 패턴은 하나 이상의 쌍의 {G,Q}를 동일한 키인 <v,n>으로 구현한다.
여기서 GQ1이라 하는 종래 버전의 GQ패턴은 RSA 디지탈 서명패턴을 사용한다. 이어, 그 검증키<v,n>는 바람직하게는 불균일한 v지수가 소인수인 RSA 공개키이다. 각 GQ1패턴은 일반적으로 한쌍의 수 {G,Q}를 사용한다: 상기 RSA디지탈서명의 정수부인 포맷 메카니즘에 따라서, 상기 공개수 G는 식별데이터로부터 유도된다. 상기 비밀수 Q 또는 그 밖의 그 역모듈로 n는 식별데이터의 RSA서명이다. 상기 증명 엔티티는 RSA서명의 지식을 자신의 식별데이터로부터 입증하고 이 증거는 서명을 노출시키지 않는다. 따라서, 그 서명은 비밀로 유지되어 필요한 횟수만큼 사용될 수 있다.
GQ1패턴은 대개 2개의 키 레벨(key level)에 적용한다: 상기 RSA서명 비밀키는 식별테이터를 통해 자신을 다른 것과 상호 구별하는 엔티티를 신임하는 권한을 위해 보존된다. 이러한 패턴은 "동일성에 기반된다(identity based)"라 한다. 이와 같이, 칩 카드 발행자는 자신의 RSA 비밀키를 사용하여, 각 카드를 발행할 때에 그 카드의 다변화형 비밀키(diversified private key)로서 기입한 비밀수 Q를 연산한다. 그 밖의 경우에서, 컴퓨터 네트워크 상의 고객은 로그온(log-on)할 때마다 그 기간동안에 고객의 임시 비밀키(ephemeral private key)인 비밀수 Q를 연산하기 위해 자신의 RSA 비밀키를 사용한다. 증명 엔티티, 칩 카드 또는 로그온된 고객은 그들의 식별데이터의 RSA서명을 알지만, 키들의 계층에서 바로 상위레벨에 있는 RSA 비밀키에 대해서는 알지 못한다. 그러나, 권한 레벨에서 768 비트 모듈러스를 갖는 GQ1에 의한 엔티티의 동적인증은 각 엔티티의 레벨에서 3개의 소인수를 지닌 512비트 모듈러스를 갖는 RSA에 의한 엔티티의 동적인증 - 그 증명 엔티티는 얻어진 모듈로가 곱이 되도록 계산하기 전에 그 얻어진 모듈로를 각 소인수가 되도록 계산함으로써 차이니스 나머지 기법을 사용할 수 있음-과 거의 동일한 작업부하를 요구한다.
그러나, 권한과 신임받은 엔티티 간의 키의 계층은 강제적(mandatory)이지는 않다. GQ1은 증명 엔티티에 특정된 모듈러스를 가지고 사용되어 차이니스 나머지 기법을 그 증명 엔티티의 작업부하를 감소시키는데 사용할 수 있으나, 증명 엔터티 레벨에서의 모듈러스가 권한레벨에서의 모듈러스보다 짧은 것, 예를 들어 768비트에 대해 512비트인 것과는 별도로, 제어자 엔티티의 작업부하를 근본적으로 변화시키지는 못한다.
엔티티가 그 자신의 모듈러스의 소인수를 알지 못할 때에, 왜 디지탈 서명 RSA패턴을 사용하는가?
여기서 기본 GQ2라 하는, 다른 버전의 GQ 패턴은 모듈러스의 인수분해문제를 직접적으로 사용한다. 이 문장에서 "직접적으로(directly)"는 "RSA서명을 사용하지 않는다"라는 것을 말한다. GQ2의 목적은 증명 엔티티의 작업부하뿐만 아니라 제어 엔티티의 작업부하도 감소시키는 것에 있다. 상기 증명엔티티는 그 자신의 모듈러스의 분해(decomposition)에 관한 지식을 입증하며 이 증명에서는 그 분해를 노출시키지 않는다. 따라서, 상기 분해는 비밀로 유지되어 필요한 횟수만큼 사용될 수 있다. 상기 GQ2 프로토콜의 보안성은 모듈러스의 인수분해와 동등한다.
각 증명 엔티티는 자신의 모듈러스 n을 갖는다. 각 GQ2패턴은 파라미터 k, 1보다 크며 공개지수 v=2k로 정해지는 작은 수 및, 하나 이상의 쌍인 {G1,Q1} 내지 {Gm,Qm}을 구현한다. 각 공개수 G1은, 1보다 큰 작은 수 g1의 제곱이며, "기수(base number)"라 한다. 모든 증명 엔티티는 동일한 G1내지 Gm의 공개수(들)을 사용할 수 있다. 이어, 모듈러스 n과 Q1내지 Qm인 공개수(들)의 인수분해는 키계층에서 동일한 수준에 있다. GQ2 기본키의 각 세트는 필요조건이자 충분조건인 2개의 조건에 의해 정의된다.
- 각 기수와 관련하여, 2개의 식 x2≡±gi(mod n) 중 어느 식도 정수모듈로 n의 링에서 x의 해를 갖지 못함. 즉, 상기 수 ±gi는 2개의 비-이차 나머지(non-quadratic residues) 모듈로 n임.
- 각 기수와 관련하여, v=2k인 2개의 식 xv≡±gi 2(mod n)은 정수모듈로 n의 링에서 x의 해를 가짐. 상기 비밀수 Q1또는 그 역모듈로 n이 이 해 중 하나임.
이와 같이 주어진 2개의 조건에서, 상기 수 ±gi가 2개의 비-이차 나머지(non-quadratic residues) 모듈로 n이 되기 위해, 상기 모듈러스 m은 g1르장드르 기호(Legendre symbol)가 다르다는 것과 관련하여 3(mod 4)에 일치하는 적어도 2개의 소인수를 포함한다. 결과적으로, 소인수가 없거나 3(mod 4)와 일치하는 소인수 중 하나로 이루어진 임의의 모듈러스는 GQ2 기본키의 세트를 확립시키지 못하며, 3(mod 4)에 일치하는 소인수를 지지한다. 큰 소인수들을 그 중 반을 무작위로 인출하는 것은 3(mod 4)와 일치하고 1(mod 4)와는 반인 것으로 증명된다. 따라서, 사용 중인 다수의 RSA 모듈로는 기본 GQ2키의 세트를 확립시킬 수 없다.
본 명세서에서는, 이러한 한계를 극복하기 위한 GQ2의 일반화된 키(GQ2 generalized key) 세트의 사용을 도입하여, 임의의 모듈러스와 함께, 특히 임의의 RSA 모듈러스와 함게 GQ2기술을 사용할 수 있다. 이들은 2개의 필수적인면서 충분한 원리에 기초한다.
제1 원리는 제2 GQ1 기본조건을 재생산한다.
각 기수 g1내지 gm에서는, v=2k인 식 xv≡gi 2(mod n)은 정수 모듈로 n의 링에서 x의 해를 갖는다.
각 비밀수 Qi또는 그 역모듈로 n이 상기 식에서 해이므로, k-1 연속제곱(successive square) 모듈로 n은 그것을 상기 정수 모듈로 n의 링에서 Gi의 제곱근인 수 qi로 변환한다. 수qi은 두 수 gi또는 n-gi와 동일하거나, 두 수 gi및 n-gi와는 다르다. 이를 단순(trivial) 또는 비단순이라 한다. 수 qi가 비단순형일 때에, qi 2- gi 2를 나누는 n은 qi - gi와 qi + gi둘 모두를 나누지 않는다. 따라서, 임의 비단순수 qi는상기 모듈러스 n의 분해를 노출시키지 않는다.
n = pgcd(n,qi - gi) ×pgcd(n,qi + gi)
제2 원리는 상기 제1 GQ2 기본조건을 확대시킨다.
수 qi내지 qm중에서, 적어도 하나의 qi는 비단순형이다.
수 ±gi가 정수모듈로 n의 링에서 2개의 비-이차 유수일 때, 수 qi가 존재하면, 수 qi는 명백히 비단순형이라는 것을 주목하자. 그러므로, 임의의 모듈러스를 이용할 수 있는 일반적인 사용시에, 기본 GQ2키 세트는 GQ2의 집합의 완전부분이다. 즉, 적어도 2개가 구별되는, 3 또는 1(mod 4)에 무관하게 일치되는 큰 소인수의 임의의 구성이다. 한편, 일반적으로 사용할 때에 다수의 GQ2 키 세트는 GQ2 기본 키 세트가 아니다. 일반적으로 사용되는 각 GQ2 키 세트는 하기 2개의 경우 중 하나이다.
- 2 ×m개의 수 ±gi내지 ±gm이 모두 비-이차유수일 때에, GQ2 기본 키 세트이다.
- 2 ×m개의 수 ±gi내지 ±gm중에서, 적어도 하나의 비-이차유수가 있을 때에, GQ2 기본 키 세트가 아닌 GQ2 컴플리먼트리 키(complementary key) 세트이다.
정의를 내리자면, 본 발명은 GQ2 컴플리먼트리 키 세트에 관한 것이며, 이러한 GQ2 키 세트는 일반사용시에 기본키가 아니다. 상기 2개의 원리와는 별도로, 이러한 종류의 세트는 제3 원리를 만족해야 한다.
- 2 ×m개의 수 ±gi내지 ±gm중에서, 적어도 하나의 비-이차유수가 있다.
본 발명에서 제공되는 문제를 인지하고 그 해결책을 이해하기 위해서, 우선 비단순수 q에 의해 노출되는 모듈러스 n의 분해를 분석하기로 한다. 이어, 차이니스 나머지기법를 상기한 후에 갈루아 필드 CG(p)에서 계수의 개념을 이해한다. 그리고 나서, CG(p)에서 "제곱연산(raise to square)" 및 CG(p)에서 이차나머지의 "제곱근연산(take a square root)"의 함수를 연구하자. 끝으로, 상기 3가지 원리의 응용성을 분석하기로 한다.
모듈러스 분해의 분석
모듈러스 n이 f개의 소인수 p1내지 pf로 분해할 때에, 정수모듈로 n의 링은 f개의 갈루아 필드 CG(p1) 내지 CG(pf)으로 분해한다. 각 필드에서, 상기 유닛의 2 개의 제곱근(예를 들면, ±1)이 있다. 그러므로, 상기 링에는 상기 유닛의 2f개의 제곱근이 있다. 각 비밀수 Q1내지 Qm은 상기 링에서 유닛들의 2f개의 제곱근 중 하나인 수 Δi= qi/gi(mod n)를 정의한다. 달리 말해, n으로 Δi 2- 1을 나눈다.
ㆍ qi가 단순형일 때, 즉 Δi= ±1일 때, n으로 Δi+ 1 또는 Δi- 1을 나눈다. 따라서, Δi는 모듈러스 n의 어떤 분해도 노출시키지 않는다.
ㆍ qi가 비단순형일 때, 즉 Δi≠ ±1일 때, n으로 Δi+ 1 또는 Δi- 1을 나누지 않는다. 따라서, Δi는 모듈러스 n의 분해, n = pgcd(n,Δi- 1) ×pgcd(n,Δi+ 1)를 노출시킨다. 이는 각 필드에서 Δi의 값으로부터 얻어지며, 소인수(들)로 일측에서는 Δi- 1을 나누고 다른 측에서는 Δi+ 1을 나눈다.
수 q의 곱셈구성법칙(muliplicative composition rule)을 알아보자. 2개의 수 {q1,q2}는 하나의 합성수(composite number) q1×q2(mod n)를 제공한다.
- q1가 비단순형이고 q2가 단순형일 때, 상기 합성수 q1×q2(mod n)는 비단순형이며, 이는 q1와 동일한 분해를 노출시킨다.
- q1및 q2가 비단순형이고 Δ1= ±Δ2일 때, 상기 합성수 q1×q2(mod n)는 단순형이며, 이는 어떤 분해를 노출시키지 않는다.
- q1및 q2가 비단순형이고 Δ1≠ ±Δ2일 때, 상기 합성수 q1×q2(mod n)는 비단순형이며, 이는 3차 분해를 노출시키지 않는다.
3개의 수인 {q1,q2,q3}는 4개의 합성수인 {q1×q2, q1×q3, q2×q3, q1×q2×q3(mod n)}를 제공한다. 즉 총 7개의 수이다. 이와 같이, m개의 수가 2m- m -1 합성수를 제공하면, 총 2m-1개의 수가 된다.
일반 사용시에 i개의 기수 g1내지 gi와, i개의 수 q1내지 qi를 제공하는 i개의 비밀수 Q1내지 Qi와, 그 결과로 상기 유닛의 근인 i개의 수 Δ1내지 Δi를 포함하는 GQ2 키의 세트를 참작하고, qi+1을 제공하는 비밀수 Qi+1과 그 결과인 근Δi+1으로 다른 기수 gi+1를 고려해 보려 한다.
ㆍ 총 2i+1-1개의 수는 아래의 두 경우 각각에서 다수의 비단순수(nontrivial number)로서 이루어진다.
- 근 Δi+1는 단순형이며, 근 Δ1내지 Δi중 적어도 하나는 비단순형이다.
- 근 Δi+1는 비단순형이며, 2 ×i개의 근 ±Δ1내지 ±Δi중에서 나타난다.
ㆍ 근 Δi+1는 비단순형이며, 2 ×i개의 근 ±Δ1내지 ±Δi중에서 나타나지 않는 경우에, qi+1이 나타나는 각 합성수는 비단순형이다.
결과적으로, m개의 수 q1내지 qi중에서 적어도 하나의 비단순형이 있을 때에, 상기 총 2m-1개의 수의 반이상이 비단순형이다.
정의하자면, 2l-l-1개의 상응하는 합성수 각각이 비단순형일 때,l < f개의 비단순수{q1,q2,....qi}는 모듈러스n에 대해 독립적이다. 즉, 전체적으로 2l-1개의 수가 모두 비단순형이라 할 수 있다. 이어, 각 2l-1개의 수 각각은 모듈러스 n의 다른 분해를 노출시킨다.
상기 f개의 소인수가 구별될 때에, 상기 모듈러스 n의 2f-1-1개 분해가 있다. 이어, f-1개의 수 q가 독립적이면, f-1개의 독립수 및 2f-1-f개의 상응 합성수르 포함한 총 2f-1-1개의 수와, 2f-1-1개의 분해 사이에 일 대 일 대응이 있다.
차이니스 나머지- 2개의 수 a와 b를 0<a<b가 되도록 그 사이에서 소(prime)가 되고, 0부터 a-1까지의 Xa와 0부터 b-1까지 Xb인 두 개의 수가 되게 한다. Xa≡X(mod a)이며 Xb≡X(mod b)가 되도록 0부터 a ×b - 1까지의 유일수를 정의하는 것이 중요하다. 수 α≡{b(mod a)}-1(mod a)가 차이니스 나머지의 파라미터이다. 아래에 차이니스 나머지의 기본연산이 있다.
x ≡Xb(mod a)
y ≡Xa- x ; 만약 y가 음수라면, y는 y+a로 대체한다.
z ≡a ×y (mod a)
x = z ×b + xb
정리하면, 우리는 x = 차이니스 나머지 (Xa,Xb)이라고 기재한다.
f개의 소인수가 오름차수에 대입할 대에, 최소 p1에서부터 최대 pf까지, 차이니스 나머지의 파라미터는 아래와 같다(소인수보다 작은 하나임, 즉 f-1).
제1 파라미터는 α≡{p2(mod p1)}-1(mod p1)임.
제2 파라미터는 β≡{p1×p2(mod p3)}-1(mod p3)임.
제i 파라미터는 λ≡{p1×...pi-1(mod pi)}-1(mod pi)임.
등등.
f-1개의 기본연산에서, Xf가 0 내지 pf-1인 X1내지 Xf인 f개의 요소의 임의집합으로부터 0 내지 n-1에서 수 X가 성립된다.
- 제1 파리미터와 함께 제1 결과(mod p1×p2)
- 이어, 제2 파리미터와 함께 제2 결과(mod p1×p2×p3)
- 최종 파리미터와 함께 최종 결과(mod p1×p2×...pf)까지임.
정리하면, 소인수 p1내지 pf가 제공되면, 정수모듈로 n의 링의 각 요소는 2개의 동등한 표시를 갖는다.
- f개의 수 x1내지 xf, 소인수 당 하나의 구성요소 : Xf≡X(mod pf),
- 0 내지 n-1의 수 x, X = 차이니스 나머지(X1,X2....Xf)
CG(p)에서 수의 계수(rank)- 홀수인(uneven) 소인수 p와, p보다 작은 수 a가 있다. 즉 0 < a < p이다. 정의하면, p에 대한 a의 계수는 {x1= a ; then, for i≥1, xi+1≡apxxi≡(mod p)}로 정의되는 스트림{x}의 주기이다. 페르마이론에 의해, 소인수 p에 대한 수a의 계수는 p-1 또는 p-1의 약수(divisor)이다.
예를 들면, (p-1)/2이 홀수인 소인수 p'일 때에, 갈루아 필드 CG(p)는 계수 1인 수를 포함한다. 이는 1이다. 계수 2인 수는 -1이다. 계수가 p'인 경우, p'-1개의 수이고, 계수가 2 ×p' = p - 1인 경우, p'-1개의 수이다. CG(p)에서, 계수 p-1인 임의의 수는 "생성자(generator)"이다. 이 명칭은 CG(p)의 생성자의 연속적인 거듭제곱, 즉 1 내지 p-1의 지수에 대해 스트림{X}항이 CG(p)의 모든 비-닐요소(non nil element)의 순열을 형성하는 사실에 기인한다.
CG(p)의 생성자 y가 있고, i 및 p-1 의 함수로서 수 y (mod p)의 계수를 평가하자. i는 p-1과 소일 때에, 이는 p-1이다. i로 p-1를 나눌때에는 이는 (p-1)/i이다. 모든 경우에서, 이는 (p-1)/pgcd(p-1,i)이다.
정의하자면, 오일러(Euler) 함수 φ(n)은 n보다 작고 n과는 소인 수들의 수이다. CG(p)에서는, φ(p-1)생성자가 있다.
예시된 설명에 의해, 상기 계수는 RSA의 기본을 잘 이해시킬 수 있다. 모듈러스 n은, f개의 소인수 p1내지 pf(f≥2)의 곱이다. p1내지 pf중 각 소인수 pj에 대해, 공개지수 e는 pj-1과 소이어야 한다. 이어, 상기 키<e,pj>는 CG(pf)의 요소인 계수와 관계한다. 이는 CG(pj)의 요소를 순열화(permutate)시킨다. pj-1가 e ×dj가 되도록 수 dj(대개, 가능하면 최소의 수)가 존재한다. 상기 키 <dj,pj>는 CG(pj)요소의 순열을 반전시킨다. 이러한 f개의 순열, 즉 CG(p1) 내지 CG(pi)의 각 필드 중 하나는 정수 모듈로의 링에서 공개키 <e,n>으로 정리된 RSA순열에 의해 표현된다.ppcm(p1-1,p2-1,...pj-1)이 d ×e -1이 되도록, 수 d(대개, 가능하면 최소의 수)가 존재한다. p1내지 pf의 각 소인수 pj에 대해, dj≡d(mod pf-1)을 갖는다. 상기 공개키 <e,n>으로 정리된 RSA순열은 비밀키 <d,n>에 의해 반전된다.
CG(p)에서의 제곱- p-1가 2t+1에 의해서는 나눠지지 않고 2t에 의해 나눠질 수 있도록, 수 t를 정의하자. 큰 소인수 각각은 하나의 카데고리와 단독으로, 즉 t=1,t=2,t=3,t=4 등으로 나타난다. 연속적인 소인수 중 충분히 큰 수를 고려한다면, 2개 중 하나는 p가 3(mod 4)에 일치하는 제1 카테고리에서 나타나며, 4개 중 하나는 p가 5(mod 8)에 일치하는 제2 카테고리에서 나타나고, 8개 중 하나는 p가 9(mod 16)에 일치하는 제3 카테고리에서 나타난다. 또한, 16개 중 하나는 p가 17(mod 32)에 일치하는 제4 카테고리에서 나타나는 등, 이런 방식으로 나타난다. 평균하여, 2t개 중 하나는 p가 2t+1(mod 2t+1)에 일치하는 제t 카테고리에서 나타난다.
수 x 및 p-x는 CG(p)에서 동일한 제곱을 가지므로, 상기 키 <2,p>는 CG(p)를 순열화한다. CG(p)에서 "제곱연산" 함수는 상기 필드의 각 비-닐요소(non-nil element)가 배치된 지향성 그래프(oriented graph)에 의해 표시된다. 각 요소의 계수의 패리티(parity)에 따라서 브랜치 및 원에서 그래프의 구조를 분석하자.
- 닐 요소는 고정된다.이는 0이며, 계수는 닐요소에 대해서 정의되지 않는다. 닐요소는 다른 요소에 연결되지 않으며, 고립되어 있다.
- 유닛 요소는 고정된다.이는 1이며, 단지 계수가 하나인 요소이다. 계수 CG(p)에서 유닛의 근은 1과 연결하는 브랜치에 있다. y는 CG(p)의 비-이차유수(non-quadratic residue)로 한다. 키<(p-1)/2t, p>는 y를 b로 표시되는 -1의 2t-1차 원시근(primitive root)으로 전환한다. 실제로, 우리는 y(p-1)/2≡-1(mod p)를 갖는다. 결과적으로, CG(p)에서, 1 내지 2t-1의 지수에 대한 b의 거듭제곱이 1과 다른 유닛의 2t-1-1개의 근이다. 이들은 1과 연결된 브랜치를 구성한다.
-짝수인 계수의 임의 요소의 제곱은 둘로 나눠지는 계수를 갖는 다른 요소이다.결과적으로, 각 짝수인 계수의 각 요소는 브랜치에 배치된다.각 브랜치는 둘로 나눠지지만 넷으로 나눠지지 않는 계수를 포함한다. 이어, t≥2이면, 넷으로 나눌수 있으나 여덟로 나눠질 수 없는 2개의 계수를 포함한다. 또한, t≥3이면, 여덟로 나눌수 있으나 열여섯으로 나눠질 수 없는 4개의 계수를 포함하고, t≥4이면, 여덟로 나눌수 있으나 열여섯으로 나눠질 수 없는 8개의 계수를 포함하는 등 이런 방식으로 이루어진다. 모든 브랜치는 1과 연결된 브랜치와 유사하다. 각 브랜치의 2t-1개의 리프(leaves)는 비-이차 유수다. 각 브랜치는 2t-1개의 요소를 포함하고 홀수인 랭크에 연결된다. 모두 동일한 길이 t를 갖는 (p-1)/2t개의 브랜치가 있다.
-상기 유닛요소와 다른 홀수 계수인 임의 요소의 제곱은 동일한 계수를 갖는 또 다른 요소이다.키 <2,p>는 홀수 계수인 모든 (p-1)/2t개의 요소를 순열화한다. 상기 순열은 순열사이클(permutation cycle)로 분해한다. 사이클의 수는 (p-1)/2t의 인수분해에 의존한다. (p-1)/2t의 각 약수에 대해, 계수 p'의 φ(p')요소를 포함한 사이클이 있다. 정의하자면, 오일러 함수 φ(p')는 p'보다 작은 수들의 수이며 p'과는 소인 것을 기억해야 한다. 예를 들면,p'=(p-1)/2t는 소일 때에, 계수 p'의 p'-1개의 수는 큰 순열사이클이다.
도1a 내지 도1d는 각각 3(mod 4), 5(mod 8), 9(mod 16) 및 17(mod 32)과 일치하는 p에 대한 그래프부분이다.
- 브랜치의 리프는 흰 원으로 표시된다. 이는 비-이차유슈다.
- 브랜치의 노드는 회색 원으로 표시된다. 이는 짝수 계수의 이차요소이다.
- 사이클의 노드는 검은 원으로 표시된다. 이는 홀수 계수의 이차요소이다.
CG(p)에서의 제곱근- a가 CG(p)의 이차유수라는 사실을 알 때, 식 x2≡a (mod p)에 해를 연산하는 방법, 즉 CG(p)에서 "제곱근연산"법을 알아보자. 물론 동일한 결과를 얻는 여러 방법들이 있다. 헨리 코헨(Henri Cohen)저 "a Course in Computation Algebraic Number Theory(series Graduate Texts in Mathematics 중 138권(GTM 138), 31-36페이지, 1993년 베를린소재 스프링거 출판)"를 참조할 수 있다.
수 s = (p-1+2t)/2t-1는 아래의 가치가 있는 키<s,p>를 제공한다.
p가 3(mod 4)에 일치할 때는 <p+1)/4,p>,
p가 5(mod 8)에 일치할 때는 <p+3)/8,p>,
p가 9(mod 16)에 일치할 때는 <p+7)/32,p>,
p가 17(mod 32)에 일치할 때는 <p+15)/32,p> 등등.
상기 키 <s,p>는 사이클 내의 임의의 요소를 그 사이클의 선행요소로 전환시킨다. a는 홀수 계수일 때, 이는 홀수 계수의 해이다. 여기서는 이를 w라 한다. 실제로, CG(p)에서, w2/a는 (2×(p-1+2t/2t-1))-1 = (p-1)/2t제곱된 a의 가치가 있다. 다른 해는 짝수 계수이다. 이는 p-w이다.
일반적인 방식에서는, 상기 키 <s,p>는 임으의 이차 유수 a를 r이라 하는 제1 해 근사치로 전환한다. a는 2차 유수이므로, 상기 키 <2t-1,p>는 확실하게 r2/a를 1로 전환한다. a의 제곱근에 근접하기 위해, r2/a를 2t-2(mod p)제곱하여 +1 또는 -1를 얻는다. 상기 결과가 +1이면 새로운 근사치는 r로 남고, 그 결과치가 -1이면 새로운 근사치는 b ×r(mod p)가 된다. 여기서, b는 필드 CG(p)에서 1의 임의의 2t차 원시근을 나타낸다. 키<2t-3,p>를 사용하고 필요에 따라 b2(mod p)를 곱함으로써 근접하게 하는 것도 가능하다. 이와에 다양한 방법이 있다.
아래의 알고리즘은 등식을 푼다. 앞서 정의된 수 a,b,p,r 및 t와, 2개의 변수 c 및 w를 사용한다.c는 연속보정(successive correction)을 표시하고, w는 연속근사(successive approximation)을 표시한다. 알고리즘의 초기에서는, c=b이면서w=r이다. 그 연산의 후미에서는, 두 해는 w 및 p-w이다.
t-2 내지 1사이에 있는 i에 대해, 아래의 시퀀스를 반복한다.
- +1 또는 -1을 얻기 위해 키 <2t,p>를 수 w2/a(mod p)에 적용함.
- -1을 얻은 경우에, w를 w ×c(mod p)로 대체함.
- c를 c2(mod p)로 대체함.
원리의 응용성- 정의하자면, 지수v가 2k인 식 xv≡g2(mod p)가 필드 CG(p)의 링에서 x로 풀수 없을 때에 파라미터 k, 기수 g 및 소인수 p는 호환성(compatible)이 있다라고 한다. 수 k 및 g는 작으면서도 1보다 큰 수이다. 상기 수p는 큰 소수(prime number)이다.
- t=1일 때, 즉 p ≡3 (mod 4)일 때에, 상기 식은 2개의 해를 갖는다.
- t=2일 때, 즉 p ≡5 (mod 8)일 때에, p에 관련된 q의 르장드르 기호에 따라서, (g│p)= +1이라면 상기 식은 4개의 해를 가지며, (g│p)= -1이라면 상기 식은 해를 갖지 못한다.
- t>2일 때, 즉 p ≡1 (mod 8)일 때, 2k로 p에 관련된 공개수 G= g2의 계수를 나누고 2u-1로는 이를 나누지 못하도록 u를 정한다. 결과적으로, u는 0 내지 t-1의 수 중 하나와 동일하다. u>0이고 k+u>t이면 상기 식은 해를 갖지 못하며, k+u ≤t이면 2k개의 해를 갖는다. 또한, u=0이고 k>t이면 상기 식은 2t개의 해를 갖는다.
따라서, G는 사이클 내에서 또는 브랜치 내의 적절한 위치여부에 따라 2형태의 양립성(compatibility)이 존재한다.
- G가 사이클 내에 있을 때, 즉 k값과 관계없이 u=0일 때, 사이클 내의 홀수 계수의 해와, 사이클과 연결된 연속 브랜치(consecutive branch)인, α= min(k,t)에 산재된 짝수 계수의 해들(즉, 모두 2α개의 해)이 존재한다. 도2a는 k ≥t = 3인 경우를 나타낸다. 즉, u=0을 부과한 9(mod 16)에 일치하는 소인수인 경우를 도시한다.
- G가 브랜치의 적절한 위치에 있을 때, 즉 u>0이고 u+k≤t일 때, 브랜치 내에 있고 모든 짝수 계수인, 2k개의 해가 존재한다. 도2b는 이런 경우를 나타낸다.
파라미터 k가 주어지면, t값은 k미만이거나 k이상인지여부에 따라서, 그로부터 2 가지형태의 소인수가 존재한다.
- t<k를 만족하는 임의의 소인수pj에서는, 각 Gi가 사이클 내에 있어야 하며, Gi와 연결된 브랜치에서 해가 존재하지 않는다. 상기 사이클 내에 있는 것이 gi인지 -gi인지에 의존하여 +1 또는 -1가 되는 수 Δij를 정의한다. m개의 수Δ1,j내지Δm,j중 일부에 대한 선택은 없다. 도3a는 t<k인 경우를 도시한다. Gi는 9(mod 16)과 일치하는 소인수pj를 갖는 사이클 내에 있다. 즉 u=0이고,k>3인 t=3이다.
- t≥k를 만족하는 임의의 소인수pj에서는, 각 Gi가 u + k ≤t를 만족하거나즉 u=0인 사이클내에 있어야 하거나, 또는 1 ≤u ≤t-k인 브랜치에 적절한 위치에 있어야 한다. Qij가 상기 사이클 내의 gi와 연결되었는지 -gi와 연결되었는지에 의존하여, +1 또는 -1가 되는 수 Δij를 정의한다. m개의 수 Δ1,j내지 Δm,j중 각각에 대해 선택할 수 있다. 각 Δi,j중는 하나의 값과 다른 값사이에서 개별적으로 변동될 수 있다. 도3b는 t≥k인 경우를 도시한다. Gi는 17(mod 32)과 일치하는 소인수pj를 갖는 사이클 내에 있다. 즉 u=1이고,k=3인 t=4이다.
f개의 구성요소 {Δi,1내지 Δi,f}의 각 세트는 CG(pf)에서 유닛의 제곱근이다. 이 근은 상기 f개의 구성요소가 동일한지여부에 따라서 단순형이거나 비단순형이 된다. 이어, 상기 f구성요소의 세트를 상수 또는 변수라고 하며, 이는 상기 수 qi가 단순형이거나 비단순형인 사실을 나타낸다. 결과적으로, qi가 단순형일 때, f개의 구성요소 {Δi,1내지 Δi,f}의 세트는 모듈의 분해를 요약한다. 이어, 비밀구성요소인 Qi,j를 계산하기 전에 상기 원리를 테스트하는 것도 가능하다.
- 공개수 Gi가 소인수 pj에 대한 사이클 내에 존재할 때, 상기 수 Δi,j는 상기 사이클 내에 있는 것이 gi인지 -gi인지에 따라서 +1 또는 -1가 된다. pj≡3(mod 4)일 때, 이는 르장드르 기호: Δi,j= (gi│pj)이다.
- 공개수 Gi가 소인수 pj에 대한 브랜치 내의 적절한 위치에 존재할 때, 비밀구성요소 Qi,j를 계산하기 전에, Δi,j에 주어질 상기 값을 정할 수도 있다.
키세트의 생성- 파라미터 k가 주어지면, 2가지 방식이 있다.
- 일 방식에서는, 상기 생성자(generator)는 m개의 기수를 결정하기 위해 f개의 소인수를 요구한다. 제1 소인수: 2,3,5,7 등은 f개의 큰 소인수 p1내지 pf의 각각과의 양립성(compatibility)을 평가하기 위해 조사된다. g = 2가 p ≡5 (mod 8)와의 양립성이 없더라도, 2는 기수의 구성이 될 수 있다. 실제로, 2개의 수가 브랜치의 유사한 위치에 있을 때에, 제곱이 상기 사이클에 근접해지는 것과 같이 그 곱은 상기 사이클에 보다 근접한다. 이런 방식으로 기수는 개별적으로 적합하지 않은 수를 포함함으로써 얻어질 수 있다.
- 또는, 다른 방식에서는, 상기 생성자는 f≥2개의 소인수를 결정하기 위해 , m개의 기수 및, 비트크기(예를 들어, 512,768,1024,1536,2048)와 1보다 큰 고차수비트의 수(예를 들어, 1,8,16,24,32)와 같은 모듈러스 특성을 요구한다. 상기 기수를 g1,g2,...gm으로 표시하면, 그 기수는 일반적으로 제1 소인수: 2,3,5,7,11 등 중의 숫자로 나타내거나, 상기 제1 소인수의 조합이다. 이와 달리, 지정되지 않으면, 상기 기수는 m개의 제1 소인수:g1=2, g2=3, g3=5, g4=7 등이다. p ≡5(mod 8)이 g=2와 양립되지 않는 것을 주목해야 한다. 상기 모듈러스 n은 네이버링 사이즈(neighbouring size), 즉 f개로 나뉘는 모듈러스에 할당된 크기인 f개의 소인수의 곱이 될 수 있다.
제1 원리- 상기 파라미터 k, p1내지 pf중 각 소인수 p와, g1내지 gm중 각 기수g는 양립될 수 있어야 한다. 2h로 p와 관련된 g의 계수를 나누도록 수h를 정의한다. 이에 반해, 상기 계수를 2h+1로는 나누지 못한다. 이러한 수h를 계산하기 우해서, 아래 과정은 르장드르 기호 (g │p)와, 수 b, 즉 CG(p)에서 유닛의 2t차 원시근을 사용한다.
- t=1인 (g │p) = +1인 경우, "h = 0"으로 응답한다.
- t>1인 (g │p) = +1인 경우, 상기 키 <p-1+2t)/2t+1,p>를 G에 적용하여 w라 하는 결과를 얻는다.
- w = +g인 경우, "h = 0"으로 응답한다.
- w = p-g인 경우, "h = 1"로 응답한다.
- 만약 그렇지 않으면, b에 그리고 t-1 내지 2의 i에 대해 c를 대입한다.
- 상기 키 <2i,p>를 w/g(mod p)에 적용하여 ±1을 얻는다.
- 만약 -1이면, h를 i에 대입하고 w를 w ×c (mod p)로 대체한다
- c를 c2(mod p)로 대체한다.
- (g │p) = -1인 경우, "h = t"로 응답한다.
k+u>t에서 u > 0인 경우에, k, g 및 p가 양립될 수 없다는 것을 상기하자. 이들은 h = 0 또는 1일 때에 k값과 관계없이 양립가능하며, k+h≤t+1에서 h>1가일때에도 양립될 수 있다.
제2 원리- 아래 3가지 과정은 제2 원리의 다른 구현형태에 상응한다. 어떤 구현형태에서는, 제2 원리는 q1내지 qm의 각 수가 비단순형일 것을 요구하는 정도로 강화될 수 있다. 이어, 상기 기수의 역할은 균형을 이루게 된다. 제2 원리가 균형을 이루는지 그렇지 않은지에 의해 상기 패턴의 보안성을 입증하는 양태에 영향을 준다. 최종적으로, m개의 수 {q1내지 qm} 중에 f>2개의 서로 다른 소인수가 있을 때에, f-1개의 독립수(independant numbers) 중 적어도 하나의 서브유닛를 요구하는 것이 가능하다.
상기 3가지 과정은 아래와 같이 정의되는, m ×f개의 수 δi,j를 사용한다.
- pj는 t<k가 될 때, δi,j= Δi,j(i는 1부터 m까지 진행됨). 즉, hi,j=0이면 +1이며, hi,j=1이면 -1이다.
- pj는 t≥k가 될 때, δi,j= 0이며(i는 1부터 m까지 진행됨), 이는 제2 원리의 함수로서 Δ1,j내지 Δm,j를 선택할 수 있다는 것을 보여준다.
제1 과정은세트{δi,1내지 δi,f}중 적어도 하나가 변수 또는 닐인지, 즉 수 q1내지 qm중 적어도 하나의 수가 비단순형이거나 비단순형으로 선택될 수 있는지 를 검사한다.
- i는 1부터 m까지 진행되고, j는 1부터 f까지 진행되는 경우,
- δi,j= 0 또는 ≠δi,1이면, "성공(success)"으로 응답한다.
- "실패(failure)"로 응답한다.
제2 과정은세트{δi,1내지 δi,f}의 각각이 변수 또는 닐인지, 즉 수 q1내지 qm중 적어도 하나의 수가 비단순형이거나 비단순형으로 선택될 수 있는지를 검사한다.
- i는 1부터 m까지 진행되고,
- j는 1부터 f까지 진행되는 경우,
- δi,j= 0 또는 ≠δi,1이면, 다음 i값으로 진행된다.
- "실패"으로 응답한다.
- "성공"로 응답한다.
제3 과정은1≤j1≤j2≤f인 소인수의 각 쌍인 pj1와 pj2에 대해, δi,j1이 닐이거나 δi,j2와 상이한, 적어도 하나의 세트{δi,1내지 δi,f}가 존재하는지를 검사한다. m이 f-1보다 작을 때는 명백히 실패한다. 성공할때는, m개의 수 q1내지 qm중에서, f개의 소인수에 관련된 f-1개의 독립수로 이루어진 적어도 한개의 세트가 존재한다.
- j1는 1부터 f-1까지 진행되고, j2는 J1+1부터 f까지 진행되며,
- i는 1부터 m까지 진행되는 경우,
- δi,j= 0 또는 ≠δi,1이면, j1및 j2의 다음 값으로 진행된다.
- "실패"으로 응답한다.
- "성공"로 응답한다.
상기 과정이 실패한 경우에는, GQ2키 세트의 생성자는 다음 2개의 방식 중 하나를 수행한다.
- f개의 소인수를 유지하면서, m개의 기수 중 하나를 변경함.
- m개의 기수를 유지하면서, f개의 소인수 중 하나를 변경함.
제3 원리- 아래 과정은 생성과정 또는 이미 생성된 일반 GQ2키 세트가:
- GQ2기본키 세트, 즉 2 ×m개의 수 ±g1내지 ±gm이 모두 비-이차유수인지,
- 또는, GQ2 컴플리먼트리 키 세트, 즉 2 ×m개의 수 ±g1내지 ±gm중 적어도 하나가 이차유수인지를 판단한다.
상기 과정은 i가 1부터 m까지 진행되고 j가 1부터 f까지 진행될 때에 2개의 르장드르 기호인 (gi│pj) 및 (-gi│pj)를 사용한다.
- i는 1부터 m까지 진행되고,
- j는 1부터 f까지 진행되는 경우,
- (gi│pj)= -1이면, 다음 i값으로 진행된다.
- "GQ2 컴플리먼트리 키 세트"로 응답한다.
- j는 1부터 f까지 진행되는 경우,
- (-gi│pj)= -1이면, 다음 i값으로 진행된다.
- "GQ2 컴플리먼트리 키 세트"로 응답한다.
- "GQ2 기본키 세트"로 응답한다.
비밀 구성요소- 직접형: xv≡gi 2(mod pj)의 등식에서는, 아래의 연산은 비밀구성요소 Qi,j의 모든 가능한 값을 확립한다. 상기 2개의 가장 간소하면서도 가장 일반적인 경우(즉, t=1 인 경우 및 t=2인 경우)에 이어 가장 복잡한 경우(즉, t>2인 경우)를 설명한다.
t=1, 즉 p j ≡3(mod 4)의 경우,상기 키 <(pj+1)/4,pj>는 CG(pj)에서 임의의 이차유수의 제곱 이차근(square quadratic root)을 제공한다. 수 sj≡((pj+1)/4)k(mod(pj-1)/2)를 유도하여, G1를 w≡G1 sj(mod pj)로 전환하는 키 <sj,pj>를 제공한다. Qi,j는 w 또는 pj-w과 등가이다.
t=2, 즉 p j ≡5(mod 8)의 경우,상기 키 <(pj+3)/8,pj>는 CG(pj)에서 임의의 요소의 홀수계수의 제곱 이차근을 제공한다. 수 sj≡((pj+1)/8)k(mod(pj-1)/4)를 유도하여, Gi를 w≡Gi sj(mod pj)로 전환하는 키 <sj,pj>를 제공한다. 2가 CG(pj)에서 비이차유수이므로, z ≡2(pj-1)/4(mod pj)가 -1의 제곱근인지를 조사해야 한다. Qi,j는 w 또는 pj-w과 등가이거나, 혹은 w ≡w ×z (mod pj) 또는 pj-w'와 등가이다.
t>2인 p j ≡2 t +1(mod 2 t+1 )의 경우,상기 키 <(pj-1+2t)/2t+1,pj>는 CG(pj)에서 임의의 요소의 홀수계수의 제곱 이차근을 제공한다. k, g 및 p 사이의 양립성 테스트는 h값을 제공하고, 이어 u값을 제공한다.
- Gi가 사이클(k값에 관계없이 u=0임) 내에 있을 때에, 상기 수sj≡((pj-1+2t)/2t+1)k(mod (pj-1)/2t)를 확립한다. 키<sj,pj>는 Gi를 홀수 계수인 G1 sj(mod pj)로 전환한다. α브랜치라고도 하는 상기 사이클에 연결된 연속적인 브랜치 min(k,t)에 분산된 짝수 계수의 해가 존재한다. Qi,j는 CG(pj)에서의 유닛의 2α차 근 중 임의의 근과 w의 곱에 등가이다.
- Gi가 브랜치(u>0, u+k≤t임)의 적절한 위치에 있을 때, 모든 해는 Gi와 동일한 브랜치에 존재하며, 브랜치는 수 Gi의 2u-차 제곱에 의해 사이클에 연결된다. 상기 수 sj≡((pj-1+2t)/2t+1)k+u(mod (pj-1)/2t)를 확립한다. 키<sj,pj>는 Gi의 2u-차 제곱을 홀수 계수인 w의 수로 전환한다. CG(pj)에서의 2α차 원시근과 w의 모든 곱은Qi,j를 포함한다.
- pj가 t ≥k되며, 수 bj가 CG(pj)에서 유닛의 2t-차 원시근일 때에, CG(pj)에서의 bj의 2t-u-차 제곱은 존재한다. 이는 상기 유닛의 2k-차 원시근이다. 상기 유닛의 2k-차 원시근으로 Qi,j를 곱함으로써 수 Δi,j의 값이 변동되게(swung) 할 수 있다.
역(inverse)형태: 1 ≡xvxgi 2(mod pj)의 등식에서는, 키<sj,pj>에서 상기 수 sj를 ((pj-1)/2t)-sj로 대체하는 것으로 충분한다. 이는 CG(pj)에서 Qi,j의 값을 전환하는 것이 된다.
5 (mod 8)과 일치하는 두개의 소인수를 포함하는 키 세트의 예
이하, 상기 최초 소수의 르장드르 기호이다.
(2|p1) = -1; (3|p1) = -1; (5|p1) = -1; (7|p1) = -1; (11|p1) = +1;
(13|p1) = -1; (17|p1) = +1;
CG(p2)에서 상기 계수는 -5, -11 및 17에 대해 홀수(uneven)이다.
(2|p2) = -1; (3|p2) = +1; (5|p2) = +1; (7|p2) = +1; (11|p2) = +1;
(13|p2) = -1; (17|p2) = -1;
CG(p2)에서 상기 계수는 3, -5, 7 및 11에 대해 홀수이다.
카마이클(Carmichael) 함수는 λ(n) = ppcm((p1-1)/4,(p2-1)/4)이다.
k=9일 때, 역함수 형태의 일반 함수를 사용하기 위한 비밀지수로서 σ≡λ(n)-((1+λ(n))/2)9(mod λ(n))이다.
2, 3, 7, 13 및 17은 기수로서 적합하지 않다.
상기 키 <σ,n>은 g1=5를 분해할 수 없는 비밀값 Q1으로 변환한다. 즉, 양쪽 영역에서 5는 반복된다.
상기 키 <σ,n>은 g2=11를 분해되는 비밀값 Q2로 변환한다. 즉, 양 필드에서 11은 동일한 위치가 아니다.
상기 키 <σ,n>은 g3=21=3×7을 분해되는 비밀값 Q3으로 변환한다.
상기 키 <σ,n>은 g4=26=2×13을 분해되는 비밀값 Q4로 변환한다.
상기 비밀키는 여전히 두개의 소인수, 차이니즈 나머지들의 파라미터 및 여덟개의 비밀요소에 의해 표현될 수 있다.
GQ2 비밀키의 폴리머피즘(polymorphism)- GQ2 비밀키의 여러가지의 가능한 표현형태(representation)는 등가인 것으로 입증된다: 진정한 GQ2 비밀키인 모듈러스 n의 인수분해의 지식과 동일하다.상기 GQ2 비밀키의 표현형태는 제어 엔티티가 아닌, 증명 엔티티 내에서 계산작동에 영향을 미친다.이하, GQ2 비밀키의 3가지 가능한 주요 표현형태이다. 1) GQ 비밀키의통상적인 표현형태는 m개의 비밀값 Qi와 GQ2 패턴에 대한 공개 검사키 <v,n>의 저장수단으로 이루어진다. 상기 형태는 다음의 두 형태와 필적된다. 2)작업부하와 관련한 최적 표현형태는 파라메터 k, f개의소인수 pj, m×f 개의 비밀 요소 Qi,j및 차이니즈 나머지들의 f-1개의 파라메터들을 저장하여 구성된다. 3)비밀키 크기와 관련된 최적 표현형태는파라메터 k, m개의 기수 gi및 f개의 소인수 pj를 저장하고 나서, 제1 형태로 복귀하기 위해 m개의 비밀값 Qi및 모듈러스 n을 설정하거나 제2 형태로 복귀하기 위해 m×f 개의 비밀 요소 Qi,j및 차이니즈 나머지들의 f-1개의 파라미터를 설정함으로써 각각의 사용을 시작할 수 있다.
동적 인증 메카니즘 또는 디지털 서명 메카니즘은 모듈러스의 분해 지식과 동일하기 때문에, GQ2 패턴들은 동일한 모듈러스를 사용한 2개의 엔티티를 간단하게 구별하는데 사용할 수 없다. 일반적으로, 자신을 각각의 엔티티들은 자기의 GQ2 모듈러스를 갖는다. 그러나, 4개의 소인수로 GQ2 모듈러스를 지정하여 그 중 2개는 한 엔티티가 알고 있고 나머지 2개는 다른 엔티티가 알고 있게 할 수 있다.
동적 인증- 상기 동적 인증 메카니즘은제어자(controller)로서 알려진 엔티티에게증명자(demonstrator)로 알려진 다른 엔티티의 인증성과, 그와 관련성 있는 메시지M의 인증성을 검증받기 위해 고안된다. 따라서, 제어자는 그것이 정확히 증명자임을 확인할 수 있고, 경우에 따라 증명자만을 확인할 수 있으며, 상기 증명자가 동일한 메시지 M를 정확히 말하고 있는지 확인할 수 있다. 상기 관련 메시지 M은 선택적이다. 이는 공백일 수 있다는 것을 의미한다.
상기 동적 인증 메카니즘은 커미트먼트(commitment) 동작, 챌린지(challenge) 동작, 레스펀스(response)동작 및 검사(checking)동작으로 된일련의 4개 동작 과정으로 이루어진다. 상기 증명자는 커미트먼트 및 레스펀스의 동작을 수행한다. 상기 제어자는 챌린지 및 제어 동작을 수행한다.
증명자 내에서는,그 증명자의 가장 민감한 파라미터 및 함수, 즉 커미트먼트과 레스펀스의 결과를 분리시키는 것과 같은 방법으로증거(witness)를 분리하는 것이 가능하다.상기 증거는 처리 시에 파라미터 k 및 비밀키 GQ2, 즉 상기 설명된 3가지 형태 중 하나의 형태 (ㆍf개의 소인수 및 m개의 기수, ㆍm×f 비밀요소와 f개의 소인수와 차이니스 나머지의 f-1개의 파라미터, ㆍm개의 비밀값과 모듈러스 n 중 하나)에 따르는 모듈러스 n의 인수분해를 갖는다.
상기 증거는 부분적인 실시형태(예를 들면, 전체 증명자를 형성하는 PC에 연결된 칩 카드 또는 PC 내에 설치된 특수 보안 프로그램 또는 칩 카드 내에 설치된 특수 보안 프로그램)에 해당한다. 이와 같이 분리된 증거는 서명 당사자 내에서 이하에 정의되는 증거와 유사하다. 상기 메카니즘의 각 실행에서, 증거는 하나 또는 그 이상의 커미트먼트 R, 이어 다수의 레스펀스 D, 다수의 챌린지 d를 생성한다. 각 집합 {R,d,D}는GQ2 트리플릿이다.
상기 증거의 구성과 별도로, 필요한 경우에 상기 증명자도 해싱 함수(hashing function) 및 메시지 M을 갖는다.
상기 제어자는 처리 시에, 예를 들면 공개키의 디렉토리(directory)로 부터 또는 공개키의 레지스터(register)로 부터 모듈러스 n 을 갖으며, 필요한 경우에 동일한 해싱함수 및 메시지 M'을 갖는다. 상기 GQ2 공개 파라미터, 즉 숫자 k, m및 g1내지 gm은 증명자에 의해 제어자에게로 주어진다. 상기 제어자는 임의의 챌린지 d 및 임의의 레스펀스 D로부터 커미트먼트 R'을 복구할 수 있다. 상기 파라미터 k 및 m은 제어자에게 통보한다. 그와 반대로 어떤 지시를 실패하면, g1에서 gm까지의 m개의 기수는 m개의 첫번째 소수이다. 각 챌린지 d는 기수 당 하나씩, d1부터 dm으로 표현된 m개의 초기 챌린지(elementary challenge)를 가져야 한다. d1부터 dm까지의 초기 챌린지는 0에서 2λ-1- 1사이의 값을 가질 수 있다(v/2에서 v-1의 값은 사용되지 않음). 통상적으로, 각 챌린지는 m ×k-1비트(m ×k가 아님)에 의해 인코딩된다. 예를 들면, k=5 이고 m=4 이며, 기수 5, 11, 21 및 26 일 때, 상기 각 챌린지는 4쿼텟(quartet)으로 전송되는 16비트를 갖는다. 상기 (k-1)×m개의 챌린지가 가능할 때에는, (k-1)×m값이 각 GQ2 트리플릿에 의해 제공된 보안성을 결정한다. 모듈러스 n의 인수분해를 알지 못하는 소위 사칭자(impostor)는 2(k-1).m에서 정확히 단 한번의 성공기회만을 갖는다. (k-1)×m이 15에서 20사이일 때에, 하나의 트리플릿으로 동적 인증을 위해 합리적으로 제공하기에 충분하다. 임의의 보안레벨을 이루기 위해서, 병렬로 트리플릿을 제공할 수 있다. 또한, 연속적으로 제공하는 것, 즉 메카니즘의 실행을 반복하는 것도 가능하다.
1)커미트먼트 동작은 다음 연산으로 이루어진다.
상기 증거가 차이니즈 나머지들을 사용하지 않을 때, 처리 시에 상기 증거는 파라미터 k, Q1에서 Qm까지 m개의 비밀값 및 모듈러스 n을 가진다. 상기 증거는 불규칙하고 비공개로 하나 이상의 랜덤값 r(random value r)(0 < r < n)을 발행한다. 이어, k 연속 제곱(mod n)연산에 의해, 각 랜덤값 r 을 커미트먼트 R로 변환한다.
R ≡rv(mod n)
이하, 차이니즈 나머지들을 갖지 않는 종래의 키 세트를 갖는 일 예이다.
상기 증거가 차이니즈 나머지들을 사용할 때, 처리 시에 상기 증거는 파라미터 k, p1에서 pf까지 f개의 소인수, 차이니즈 나머지들의 f-1개의 파라미터 및 m×f개의 비밀 요소 Qi,j를 갖는다. 상기 증거는 불규칙적이고 비공개적으로 f개의 랜덤값의 하나 이상의 콜렉션(collection)을 발행하며, 상기 각 콜렉션은 소인수 pi(0 < ri< pi)마다 하나의 랜덤값 ri를 갖는다. 이어, k 제곱(mod pi)의 연속 연산에 의해, 각 랜덤값ri은 커미트먼트 요소 Ri로 변환한다.
Ri≡ri v(mod pi)
f개의 커미트먼트요소의 각 콜렉션에 대해, 상기 증거는 차이니스 나머지의 기술에 따라서 커미트먼트를 설정한다. 랜덤값의 콜렉션이 존재하는 수만큼 커미트먼트가 존재한다.
R≡차이니스 나머지(R1,R2, ..., Rf)
이하, 차이니즈 나머지들을 갖는 종래의 키 세트를 갖는 일 예이다.
두 경우에서, 상기 증명자는 각 커미트먼트 R의 모두 또는 일부, 혹은 각 커미트먼트 R 및 하나의 메시지 M를 해싱함으로써 얻을 수 있는 해싱코드 H를 상기 제어자에게 보낸다.
2)챌린지 동작은 각각이 m개의 초기 챌린지 d1,d2,....,dm으로 이루어진 하나 이상의 챌린지 d를 불규칙하게 발행한 것이다. 상기 각각의 초기 챌린지di는 0에서 v/2-1사이의 값 중 하나를 갖는다.
d = d1, d2, ..., dm
이하, k=5과 m=4인 키의 제1 세트에 대한 일예이다.
d1= 1010 = 11 = 'B'; d2= 0011 = 3; d3= 0110 = 6; d4= 1001 = 9,
d = d1∥d2∥d3∥d4= 10110011 01101001 = B3 69
상기 제어자는 각각의 챌린지 d를 증명자에게 보낸다.
3)레스펀스 동작은 아래 연산을 갖는다.
상기 증거가 차이니즈 나머지들을 사용하지 않을 때, 상기 증거는 처리 시에 파라미터 k, Q1에서 Qm까지의 m개의 비밀값 및 모듈러스 n을 가진다. 상기 증거는 커미트먼트의 동작의 각 랜덤값 r과 상기 초기 챌린지에 따른 비밀값을 사용하여 하나 이상의 레스펀스 D를 계산한다.
D ≡r ×Q1 d1×Q2 d2×... ×Qm dm(mod n)
이하 차이니즈 나머지들을 가지지 않는 경우의 일련의 예이다.
상기 증거가 차이니즈 나머지들을 사용할 때, 상기 증거는 처리 시에 파라미터 k, p1에서 pf까지의 f개의 소인수와 m×f개의 비밀요소 Qi.j를 가진다. 상기 증거는 커미트먼트동작의 랜덤값의 각 콜렉션(collection)을 사용하여 f개의 레스펀스요소의 하나이상의 콜렉션을 계산하며, 상기 레스펀스 요소의 각 콜렉션은 소인수마다 하나의 요소로 이루어진다.
D ≡r ×Q1 d1×Q2 d2×... ×Qm dm(mod n)
레스펀스 요소의 각 콜렉션에 대해, 상기 증거는 차이니즈 나머지 기술에 따라 레스펀스를 설정한다. 챌린지 수 만큼의 레스펀스가 존재한다.
D = 차이니즈 나머지들 (D1, D2, ..., Df)
이하 차이니즈 나머지들을 갖는 경우 일련의 예이다.
상기 두 경우 모두에 있어서, 상기 증명자는 각 레스펀스 D를 상기 제어자에게 보낸다.
4)검사동작은 각 트리플릿{R,d,D}이비-닐(non-nil) 값에 대한아래의 형태의 식을 검증하는 것을 확인하거나,
그밖에 각 커미트먼트를 재설정하는 것이다.어느 것도 닐이 되어서는 안된다.
필요하다면, 제어자는 재확정된 각 커미트먼트 R' 및 메시지 M'을 각각 해싱하여 해싱코드 H' 를 계산한다. 이와 같이, 상기 제어자가 제1 의 커미트먼트동작의 종료시에 수신한 것, 즉 각 커미트먼트 R의 전부 또는 일부, 혹은 해싱코드 H를 검색할 때에 상기 동적 인증은 성공적으로 된다.
예를 들어, 일련의 초기연산은 레스펀스 D를 커미트먼트 R'로 전환한다. 상기 연산은 k 거듭제곱 (mod n)을 기수로 k-1번의 나눗셈 또는 곱셈 (mod n)으로 분리되게 한다. i 번째 제곱과 i+1 번째 제곱사이에서 실행되는 제i 번째 나눗셈 또는 곱셈의 경우, 상기 초기 챌린지 d1의 i번째 비트는 g1를 사용하는 것이 필요한지 여부를 지시하고, 상기 초기 챌린지 d2의 i번째 비트는 g2를 사용하는 것이 필요한지 여부를 지시하고, 이런 식으로 초기 챌린지 dm의 i번째 비트가 gm를 사용하는 것이 필요한지 여부까지 지시한다.
이하, 차이니즈 나머지를 갖지 않는 경우의 마지막 일예이다.
모듈로 n을 제곱한다:
모듈로 n 에 5 ×26 = 130, 즉 '82'를 곱한다:
모듈로 n을 제곱한다:
모듈로 n 에 21, 즉 '15'를 곱한다:
모듈로 n을 제곱한다:
모듈로 n 에 5 ×11 ×21 = 1155, 즉 '483'을 곱한다:
모듈로 n을 제곱한다:
모듈로 n 에 5 ×11 ×26 = 1430, 즉 '596'을 곱한다:
모듈로 n을 제곱한다:
상기 커미트먼트 R을 찾았다. 상기 인증은 성공적이다.
이하, 차이니즈 나머지를 가지는 경우 마지막 일예이다.
모듈로 n을 제곱한다:
모듈로 n 에 5 ×26 = 130, 즉 '82'를 곱한다:
모듈로 n을 제곱한다:
모듈로 n 에 21, 즉 '15'를 곱한다:
모듈로 n을 제곱한다:
모듈로 n 에 5 ×11 ×21 = 1155, 즉 '483'을 곱한다:
모듈로 n을 제곱한다:
모듈로 n 에 5 ×11 ×26 = 1430, 즉 '596'을 곱한다:
모듈로 n을 제곱한다:
상기 커미트먼트 R을 찾았다. 상기 인증에 성공하였다.
디지털 서명
상기 디지털 서명 메카니즘에 따르면,서명자(signatory)라 하는 엔티티가 서명된 메시지를 작성하고,제어자(controller)라 하는 엔티티가 그 서명된 메시지를 확인할 수 있도록 한다. 상기 메시지 M은 임의의 2진 시퀀스이다. 이는 비어(empty) 있을 수 있다. 상기 메시지 M은 서명 부록(signature appendix)을 첨부함으로써 서명된다. 상기 서명 부록은 하나 이상의 커미트먼트(commitment) 또는 챌린지(challenge)뿐만 아니라, 그와 대응하는 레스펀스(response)으로 이루어진다.
상기 제어자는 처리 시에, 예를 들면 공개키의 디렉토리(directory)로부터 또는 공개키의 레지스터(register)로부터 모듈러스 n을 가진다. 상기 제어자는 또한 동일한 해싱 함수를 가진다. GQ2 공개 파라미터, 즉 숫자 k, m 및 g1내지 gm은 증명자에 의해, 예를 들면 서명 부록에 입력함으로써 제어자에게로 주어진다.
상기 파라미터 k 및 m은 제어자에게 정보를 제공한다. 첫째, d1부터 dm까지의 초기 챌린지(elementary challenge)는 0에서 2k-1- 1사이의 값이다.(v/2에서 v-1의 값은 사용되지 않음). 둘째, 각 챌린지 d는 d1부터 dm으로 표현된 m개의 초기 챌린지로 구성되어야 한다. 즉, 그 수는 기수의 수와 동일하다. 나아가, 반대로 지시가 실패한 경우에는, g1에서 gm까지의m개의 기수는 그 m개의 첫번째 소수(primenumber)이다. (k-1)×m이 15내지 20과 동일하다면, 병렬로 생성된 4개의 트리플릿 GQ2로 서명하는 것이 가능하다. (k-1)×m이 60이상과 동일하다면, 1개의 트리플릿 GQ2로 서명하는 것이 가능하다. 예를 들면, k=9 이고 m=8 이면, 하나의 트리플릿 GQ2면 충분하다. 각 챌린지는 8바이트이며 상기 기수는 2, 3, 5, 7, 11, 13, 17 및 19이다.
상기 서명 연산과정은 커미트먼트동작, 챌린지동작, 레스펀스동작을 포함하는 일련의 3개의 동작이다. 각 동작은 하나이상의 GQ2 트리플릿을 생성하며, 각각은 커미트먼트 R(≠0)과, d1,d2,...dm으로 표현된 m개의 초기 챌린지로 이루어진 챌린지 d 및 레스펀스D(≠0)을 포함한다.
상기 서명자는 처리 시에 해싱 함수, 파라미터 k 및 GQ2 비밀키, 즉 여기서 상술된 바 있는 3가지 형태 중 하나의 형태에 따른 모듈러스 n의 인수분해를 갖는다.상기 서명자의 범위에서는, 상기 증명자와 가장 민감한 함수와 파라미터를 분리시키기 위해,커미트먼트와 레스펀스 동작을 수행하는 증거를 분리하는 것이 가능하다.커미트먼트와 레스펀스를 계산하기 위해, 상기 증거는 파라미터 k와 GQ2 비밀키, 즉 여기서 상술된 바 있는 3가지 형태 중 하나이 형태에 따른 모듈러스 n의 인수분해를 갖는다. 이와 같이 분리된 증거는 상기 증명자 내에서 정의도는 증거와 유사하다. 이는 특정 실시형태, 예를 들면, 전체 서명자를 형성하는 PC에 연결된 칩카드 또는 PC 내에 설치된 특정 보안 프로그램 또는 칩카드 내에 설치된 특정 보안 프로그램에 해당한다.
1)커미트먼트 동작은 아래 연산으로 이루어진다.
상기 증거는 처리 시에 Q1에서 Qm까지의 m개의 비밀값과 모듈러스 n을 가질 때, 불규칙하고 비공개로 하나 이상의 랜덤값 r(random value r)(0 < r < n)을 발행한다. 이어, k 연속 제곱(mod n)연산에 의해, 각 랜덤값 r을 커미트먼트 R로 변환한다.
R ≡rv(mod n)
상기 증거는 처리 시에, p1에서 pf까지의 f개의 소인수와 m×f개의 비밀요소 Qij를 가질 때, 불규칙적이고 비공개적으로 f개의 랜덤값의 하나이상의 콜렉션을 발행하며, 상기 각 콜렉션은 소인수 pi(0 < ri< pi)마다 하나의 랜덤값 ri를 갖는다. 이어, k 제곱(mod pi)의 연속 연산에 의해, 각 랜덤값 ri은 커미트먼트요소 Ri로 변환한다.
Ri≡ri v(mod pi)
f개의 커미트먼트요소의 각 콜렉션에 대해, 상기 증거는 차이니스 나머지의 기술에 따라서 커미트먼트를 설정한다. 랜덤값의 콜렉션의 수만큼 커미트먼트가 존재한다.
Ri≡차이니스 나머지(R1,R2,....,Rj)
2)챌린지 동작은 서명자가 각각이 m개의 초기 챌린지로 이루어진 하나이상의 챌린지를 형성하는 해싱코드를 얻기 위해 모든 커미트먼트 R과 M 서명된 메시지를 해싱하는 것이다. 상기 각각의 초기 챌린지는 0에서 v/2-1사이의 값 중 하나를 갖는다. 예를 들면, k=9이고 m=8이다. 각 챌린지는 8바이트로 구성된다. 커미트먼트과 동일한 수의 챌린지가 존재한다.
결과 해시(M,R)로부터 추출된 d = d1,d2,...,dm
3)레스펀스 동작은 아래 연산으로 이루어진다.
상기 증거는 Q1에서 Qm까지의 m개의 비밀값과 모듈러스 n 을 가질 때에, 상기 초기 챌린지에 따른 커미트먼트와 비밀값의 동작의 각 랜덤값 r을 사용하여 하나 이상의 레스펀스 D를 계산한다.
X ≡ Q1 d1×Q2 d2× ... ×Qm dm(mod n)
D ≡r×X(mod n)
상기 증거는 실행 시에 p1에서 pf까지의 f개의 소인수와 m×f개의 비밀요소 Qij를 가질 때, 커미트먼트 동작의 랜덤값의 각 컬렉션을 사용하여 f개의 레스펀스요소의 하나이상의 콜렉션(collection)을 계산하며, 상기 레스펀스 요소의 각 콜렉션은 소인수마다 하나의 요소로 이루어진다.
Xi≡ Q1,i d1×Q2,i d2× ... ×Qm,i dm(mod pi)
Di≡riXi(mod pi)
레스펀스요소의 각 컬렉션에서, 상기 증거는 차이니스 나머지 기술에 따라서 커미트먼트를 설정한다. 챌린지와 동일한 수의 레스펀스가 존재한다.
D = 차이니스 나머지 (D1,D2,...,Df)
상기 서명자는아래 사항을 포함하는 서명부록을 첨가할 때에상기 메시지M에 서명한다.
- 각 GQ2 트리플릿 즉 각 커미트먼트 R, 각 챌린지 d 및 각 레스펀스 D
- 또는, 각 커미트먼트 R 및 이에 대응하는 각각 레스펀스 D,
- 또는, 각 챌린지 d 및 이에 대응하는 각각 레스펀스 D.
검증(verification)연산의 실행과정은 서명 부록의 컨텐츠에 의존한다. 이러한 의존성에 대해 3가지 경우를 들 수 있다.
부록이 하나 이상의 트리플릿으로 이루어진 경우, 상기 제어 연산과정은 무형의(immaterial) 크로놀로지를 가지는 2가지 독립된 과정을 갖는다. 아래 2개의 조건이 이행되기만 하면, 상기 제어자는 서명된 메시지를 수용하게 된다.
우선, 각 트리플릿이 일관성(coherent; 적절한 관계를 검사해야함)있고 수용성(receivable; 비-닐값으로 비교되어야 함)이 있어야 한다.
예를 들면, 일련의 초기 연산으로 상기 레스펀스 D를 전환한다. 즉, k 제곱된 (mod n)을 기수로 k-1번의 곱셈 또는 나눗셈 (mod n)으로 분리한다. i 번째 제곱과 i+1 번째 제곱사이에서 실행되는 제i 번째 곱셈 또는 나눗셈의 경우, 상기 초기 챌린지 d1의 i번째 비트는 g1를 사용하는 것이 필요한지 여부를 지시한다. 즉, 상기 초기 챌린지 d2의 i번째 비트는 g2를 사용하는 것이 필요한지 여부를 지시하고, 이런 식으로 초기 챌린지 dm의 i번째 비트는 gm를 사용하는 것이 필요한지 여부까지를 지시한다. 이와 같이, 상기 서명 부록 내에서 커미트먼트 R 각각을 검색하는 것이 요구된다.
나아가, 하나의 트리플릿 또는 복수의 트리플릿은 메시지 M에 링크되어야 한다. 모든 커미트먼트 R과 상기 메시지 M을 해싱함으로써, 각각의 챌린지 d를 복구할 수 있는 해싱코드를 얻는다.
결과 해시(M,R)로부터 추출된 것과 동일한 d = d1,d2,...,dm .
부록이 챌린지를 갖고 있지 않은 경우에는, 상기 제어 연산 과정은 모든 커미트먼트 R과 상기 메시지 M을 해싱함으로써 하나 이상의 챌린지 dn의 복구 단계로 시작한다.
결과 해시(M,R)로부터 추출된 d' = d'1,d'2,...,d'm.
다음으로, 각 트리플릿이 일관성(coherent; 아래 형식에 대한 적절한 관계를 검사해야함)과, 수용성(receivable; 비-닐값으로 비교되어야 함)이 있기만 하면.제어자는 서명된 메시지를 수용한다.
부록이 커미트먼트를 포함하지 않는 경우에는 상기 제어 연산과정은 아래 2 식 중 적절한 하나의 식에 따라서 하나 이상의 커미트먼트 R'을 복구하는 단계로 시작된다. 닐인 재확립된 커미트먼트는 없다.
이어, 제어자는 각 챌린지 d를 재구성하기 위해 모든 커미트먼트 R' 및 상기메시지 M을 해시해야 한다.
결과 해시(M,R)로부터 추출된 것과 동일한 d = d1d2... dm.
재구성된 각각의 챌린지가 부록에 있는 대응하는 챌린지와 동일하기만 하면, 상기 제어자는 각 서명된 메시지를 수용한다.
본 발명은 상술한 것과 같은 종류의 소인수들을 체계적으로 생성할 수 있는 방법을 제공한다. 또한, 본 발명은 GQ2 기술을 포함하는 상기 소인수들로 구성되는 그 응용법을 제공한다.
Claims (11)
- 제어자 엔티티에게- 메시지의 인증성 및/또는- 메시지 M의 무결성을 검증하는방법으로,상기 방법은,- f개의 소인수 p1, p2, ..., pf(f는 2 이상임)의 곱으로 구성되거나 f개의 소인수를 구현하는 공개 모듈러스 n과,- m개의 다른 정수인 기수 g1, g2, ..., gm(m은 1 이상임) - 여기서, gi는 상기 f개의 소인수들 p1, p2, ..., pf보다 작음 - 과,- 비밀값 Q1, Q2,..., Qm과 공개값 G1, G2, ..., Gm(m은 1 이상임)의 m개의 쌍 또는 그로부터 유도된 파라미터를 구현하고,상기 모듈러스와, 상기 비밀값 및 공개값은, 식:GiㆍQi v≡1ㆍmod n 또는 Gi ≡Qi vmod n으로 연관되며, 상기 공개값 Gi는 상기 기수의 제곱인 gi 2이며, 상기 v는v=2k인 공개지수를 나타내며, 여기서, k는 1보다 큰 비밀 요소이고,또한, 상기 방법은 아래의 조건을 만족시키는 방법으로 f개의 소인수 p1, p2, ..., pf및/또는 m개의 기수 g1, g2, ..., gm를 생성하는 단계를 포함하며,제1 조건:제1 조건에 따르면, 상기 각각의 식,xv≡g1 2mod n (1)정수인 모듈로 n의 링(ring)에서 x에 대한 해를 가짐.제2 조건:Gi ≡Qi vmod n인 경우, Q1을 k-1배 계수인 모듈로 n 제곱하여 얻어진 m개의 q1중의 하나는 ±gi과 상이하며(즉, 비단순형(nontrivial),Gi·Qi v≡1·mod n인 경우, Q1모듈로 n의 역을 k-1배 계수인 모듈로 n 제곱하여 얻어진 m개의 q1중의 하나는 ±gi과 상이함(즉, 비단순형임).제3 조건:아래 2m개의 식 중에서,X2≡gimod n (2)X2≡- gimod n (3)적어도 하나는 정수 모듈로 n의 링(ring) 내에서 x에 대한 해를 가짐.나아가, 상기 f개의 소인수 p1, p2, ..., pf및/또는 상기 m개의 기수 g1, g2, ..., gm을 생성하는 방법은, 우선적으로,ㆍ 상기 보안파라미터(security parameter) k와,ㆍ 상기 f개의 소인수 p1, p2, ..., pf또는상기 m개의 기수 g1, g2, ..., gm를 생성하는지 여부에 따라, 그 m개의 기수 g1, g2, ..., gm및/또는 그 f개의 소인수 p1, p2, ..., pf를 선택하는 단계를 포함하는 방법.
- 제1항에 있어서,상기 m개의 기수 g1, g2, ..., gm은 적어도 제1 정수(whole number) 중에서 부분적으로 선택되는 것을 특징으로 하는 방법.
- 제1항 또는 제2항에 있어서,상기 보안파라미터 k는 작은 정수, 특히 100 미만의 작은 정수(whole number)인 것을 특징으로 하는 방법.
- 제1항 내지 제3항 중 어느 한 항에 있어서,상기 모듈러스 n의 크기는 수백 비트보다 큰 것을 특징으로 하는 방법.
- 제1항 내지 제4항 중 어느 한 항에 있어서,상기 f개의 소인수 p1, p2, ..., pf는 상기 소인수의 개수 f에 의해 나누어지는 상기 모듈러스 n의 크기에 근접한 크기를 갖는 것을 특징으로 하는 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서,상기 제1 조건을 테스트하기 위해, h가 p에 관한 g의 계수가 2h로는 나누어지고, 2h+1로는 나눠지지 않는 수를 나타내고, 상기 h는 르장드르 기호 (g|p)와 CG(p)에서 유닛의 2t차 원시근과 등가인 수 b로부터 계산될 때에,아래의 알고리듬, 즉ㆍ (g|p) = -1이면, h = tㆍ t = 1일 때 (g|p) = +1이면, h = 0ㆍ t 〉1일 때 (g|p) = +1이면, 상기 키 <(p-1+21)/2t+1, p>는 G에 적용되어, 결과 w는ㆍㆍ w = +g 이면 h = 0ㆍ ㆍw = p-g 이면 h = +1로 얻어지며,ㆍㆍ 이와 달리, 변수 c를 b로 초기화하고, 이어 아래의 단계를 t-1로부터 2까지의 i값에 대해 반복함으로써 서브모듈러스 연산을 적용하고.제1 단계: 키 <2i,p>를 w/g(modp)에 적용하여,* 그 결과가 +1과 등가이면, 제2 단계로 진행하며,* 그 결과가 -1과 등가이면, 상기 i값은 h로 하고, w는 w.c(modp)로 대체되고,제2 단계: c가 c2(modp)로 대체하며,여기서, 구해진 h 값은, 상기 제1 단계에 따라 키 <2i,p>를 적용하여 -1과 등가인 결과가 생성되는 것을 마지막으로 하여 얻어지는 값( - h 〉1이고 k+h〉t+1일 때, k, g, p 는 양립가능하고, - k값에 상관없이 h=0 또는 1이거나, h〉1이고 k+h≤t+1일 때, k, g, p 는 양립가능하다는 것을 상기함)인 알고리듬을 구현함으로써(상기 알고리듬에서, 르장드르 기호 (gi|pi) 및 t는 본원의 상세한 설명에서 정의된 개념임),상기 수 k, p, g의 양립성(compatibility)을 검사하는 것을 특징으로 하는 방법.
- 제6항에 있어서,상기 제2 조건을 테스트하기 위해, 적어도 하나의 세트 {δi,1, ..., δi,f}가 변수 또는 닐(nil)인지를 검사하는(여기서, δ는 본원의 상세한 설명에서 정의된 개념임) 것을 특징으로 하는 방법.
- 제7항에 있어서,상기 제3 조건을 테스트하기 위해, f개의 르장드르 기호 (gi|p1) 내지 (gi|pf)의 값이 모두 +1 이거나 르장드르 기호 (-gi|p1) 내지 (-gi|pf)이 값이 모두 +1을 만족하는 기수 g1내지 gm이 존재하는지를 검사하는 것을 특징으로 하는 방법.
- 제1항 내지 제8항 중 어느 한 항에 있어서,Gi≡Qi vmod n인 비밀값 Q1, Q2, ..., Qm(Qi,j≡Qimod pj)의 fㆍm 비밀요소 Qi,j를 아래의 과정으로,- t=1(즉, pj≡3(mod4))일 경우,ㆍ 수 sj는 sj≡((pj+1)/4k(mod(pj-1)/2)을 만족하도록 계산되고,ㆍ 그 키 <sj,pj>가 유도되며,ㆍ 상기 키 <sj,pj>가 Gi에 적용되고,ㆍ 이로써, w ≡Gi sj(modpj)를 구함.ㆍ Qi,j으로 가능한 2개의 값은 w와 pj-w임.- t=2(즉, pj≡5(mod8))일 경우,ㆍ 수 sj는 sj≡((pj+3)/8k(mod(pj-1)/4)를 만족하도록 계산되고,ㆍ 그 키 <sj,pj>가 유도되며.ㆍ 상기 키 <sj,pj>가 Gi에 적용되고,ㆍ 이로써, w ≡Gi sj(modpj) 및 w'≡w.z(mod pj)를 구함.ㆍ Qi,j로 가능한 4개의 값은 w, pj-w, w' 및 pj-w'임.(상기 알고리듬에서, z는 본원의 상세한 설명에서 정의된 개념임)- h=0이거나 h=1일 때, t〉2(즉, pj≡2t+1(mod2t+1))인 경우,ㆍ 수 sj는 sj≡((pj-1+2t)/2t+1)k(mod(pj-1)/2t)를 만족하도록 계산되고.ㆍ 그 키 <sj,pj>가 유도되며,ㆍ 상기 키 <sj,pj>가 Gi에 적용되고,ㆍ 이로써, w ≡Gi sj(modpj)를 구함.ㆍ Qi,j의 2min(k,t)가지 가능한 값은 CP(pj)에서 유닛의 2min(k,t)차 근 중의 임의의 한 근과 w의 곱와 등가임.- h〉1 또는 h+k ≤t+1일 때, t〉2(즉, pj≡2t+1(mod2t+1))인 경우,ㆍ 수 sj는 sj≡((pj-1+2t)/2t+1)k+h-1(mod(pj-1)/2t)를 만족하도록 계산되고,ㆍ 그 키 <sj,pj>가 유추되며,ㆍ 상기 키 <sj,pj>가 2h-1차 제곱 Gi에 적용되고,ㆍ 이로써, w를 구함.ㆍ Qi,j로 가능한 2k개의 값은 CP(pj)에서 유닛의 2k+h-1차 근과 w의 모든 곱임.계산하는 것을 특징으로 하는 방법.
- 제9항에 있어서,Gi.Qi≡1.mod n 인 상기 비밀요소 Qi,j를 계산하기 위해, 키 <sj,pj>에서 sj는 ((pj-1)/2t)-sj로 대체하는 것을 특징으로 하는 방법.
- 제1항 내지 제8항 중 어느 한 항에 따른 방법을, 상기 f개의 소인수 p1, p2, ..., pf또는 상기 m개의 기수 g1, g2, ..., gm를 생성하도록 응용한 방법으로,상기 방법은,제어자 엔티티에,- 엔티티의 인증성 및/또는- 상기 엔티티와 결합된 메시지 M의 무결성을,비밀수 Q1, Q2, ..., Qm과 공개수 G1, G2, ..., Gm의 m개의 쌍(m은 1이상임), 또는 상기 비밀수와 공개수로부터 유도되는 파라미터에 의해, 특히 비밀요소 Qi,j를 이용하여 증명하고,상기 방법은 아래의 단계에 따라 증거(witness)라 명명되는 엔티티 - 여기서, 상기 증거 엔티티는 f개의 소인수 pi 및/또는 소인수의 차이니즈 나머지의 파라미터 및/또는 공개 모듈러스 및/또는 비밀값 Qi의 fㆍm개의 비밀요소 Qi,j및 공개지수를 가짐 - 를 구현하며,- 상기 증거는 정수 모듈로 n의 링에서 커미트먼트 R을 계산하며,상기 각 커미트먼트는 ,ㆍ r이 0〈r〈n을 만족하는 임의의 값인,R≡rvmod n으로 연산을 수행하여 계산하거나,ㆍ또는ㆍㆍ ri가 0〈ri〈pi를 만족하도록 소수(prime number) pi와 관련된 임의의 값이며, 각 ri가 임의의 수 {r1, r2, ..., rf}의 콜렉션에 속하는,Ri≡ri vmod pi으로 연산을 수행하고,ㆍㆍ이어, 차이니즈 나머지 방법을 적용하여 계산되고;상기 증거는 하나 이상의 챌린지(challenge) d - 여기서, 아래에서 m개의 정수 di를 포함한 챌린지 d 각각은 기본 챌린지(elementary challenge)라 함 - 를 수신하며; 상기 증거는 상기 각 챌린지 d로부터,ㆍ D≡r.Q1 d1.Q2 d2... Qm dmmod n으로 연산을 수행하거나,ㆍ또는ㆍㆍ Di≡ri.Qi,1 d1.Qi,2 d2... Qi,m dmmod pi으로 연산을 수행하고,ㆍㆍ이어, 차이니즈 나머지 방법을 적용함으로써 레스펀스 D를 계산하며,상기 방법은, 챌린지 d와 커미트먼트 R과 동일한 수의 레스펀스 D를 생성하며, 상기 R, d, D 값의 각 그룹은 {R, d, D}로 표기되는 트리플릿을 구성하는 방법.
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9912465A FR2788908B1 (fr) | 1999-01-27 | 1999-10-01 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message |
FR9912468A FR2824974B1 (fr) | 1999-01-27 | 1999-10-01 | Procede destine a prouver l'authenticite d'une entite ou l'integrite d'un message au moyen d'un exposant public egal a une puissance de deux. |
FR99/12467 | 1999-10-01 | ||
FR99/12468 | 1999-10-01 | ||
FR9912467A FR2788912B1 (fr) | 1999-01-27 | 1999-10-01 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message aux moyens de facteurs premiers particuliers |
FR99/12465 | 1999-10-01 | ||
FR0009644 | 2000-07-21 | ||
FR00/09644 | 2000-07-21 | ||
PCT/FR2000/002715 WO2001026278A1 (fr) | 1999-10-01 | 2000-09-29 | Jeux de cles particuliers destines a prouver l'authenticite d'une entite ou l'integrite d'un message |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20020060189A true KR20020060189A (ko) | 2002-07-16 |
Family
ID=58044230
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027004209A KR100844546B1 (ko) | 1999-10-01 | 2000-09-29 | 엔티티의 진정성 또는 메시지의 무결성 검증방법, 시스템 및 장치 |
KR1020027004229A KR20020060189A (ko) | 1999-10-01 | 2000-09-29 | 엔티티의 인증성 또는 메시지의 무결성을 검증하기 위한특수 키 세트 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027004209A KR100844546B1 (ko) | 1999-10-01 | 2000-09-29 | 엔티티의 진정성 또는 메시지의 무결성 검증방법, 시스템 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (2) | KR100844546B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180073854A (ko) | 2016-12-23 | 2018-07-03 | 주식회사 포스코 | 롤 그라인더의 모니터링 시스템 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2620248B1 (fr) * | 1987-09-07 | 1989-11-24 | France Etat | Procedes d'authentification d'accreditations ou de messages a apport nul de connaissance et de signature de messages |
WO1989011706A1 (en) * | 1988-05-19 | 1989-11-30 | Ncr Corporation | Method and device for authentication |
FR2733379B1 (fr) * | 1995-04-20 | 1997-06-20 | Gemplus Card Int | Procede de generation de signatures electroniques, notamment pour cartes a puces |
DE69704684T2 (de) | 1996-02-23 | 2004-07-15 | Fuji Xerox Co., Ltd. | Vorrichtung und Verfahren zur Authentifizierung von Zugangsrechten eines Benutzers zu Betriebsmitteln nach dem Challenge-Response-Prinzip |
-
2000
- 2000-09-29 KR KR1020027004209A patent/KR100844546B1/ko not_active IP Right Cessation
- 2000-09-29 KR KR1020027004229A patent/KR20020060189A/ko not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180073854A (ko) | 2016-12-23 | 2018-07-03 | 주식회사 포스코 | 롤 그라인더의 모니터링 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR100844546B1 (ko) | 2008-07-08 |
KR20020060188A (ko) | 2002-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4759064A (en) | Blind unanticipated signature systems | |
Damgård et al. | New convertible undeniable signature schemes | |
US5606617A (en) | Secret-key certificates | |
MacKenzie et al. | Two-party generation of DSA signatures | |
EP0503119A1 (en) | Public key cryptographic system using elliptic curves over rings | |
TW201320701A (zh) | 資訊處理裝置、資訊處理方法及程式 | |
EP1135886B1 (en) | Cryptosystems with elliptic curves chosen by users | |
TW201320700A (zh) | 署名驗證裝置、署名驗證方法、程式及記錄媒體 | |
Monnerat et al. | Undeniable signatures based on characters: How to sign with one bit | |
AU765538B2 (en) | Set of particular keys for proving authenticity of an entity or the integrity of a message | |
JP4772965B2 (ja) | エンティティの真正性および/またはメッセージの完全性を証明するための方法 | |
CN112887096A (zh) | 用于签名和密钥交换的素数阶椭圆曲线生成方法及系统 | |
KR100844546B1 (ko) | 엔티티의 진정성 또는 메시지의 무결성 검증방법, 시스템 및 장치 | |
Lee et al. | On the Security of Nova Recursive Proof System | |
KR100676461B1 (ko) | 특정 소인수를 이용한 엔티티 인증성, 및 메시지의 무결성및(또는) 인증성 검증방법, 시스템 및 장치 | |
Garjan et al. | Supersingular Isogeny-based Ring Signature | |
RU2280896C1 (ru) | Способ проверки подлинности электронной цифровой подписи, заверяющей электронный документ | |
JPH0695590A (ja) | 電子署名システム及び電子署名方法 | |
RU2325767C1 (ru) | Способ формирования и проверки подлинности электронной цифровой подписи, заверяющей электронный документ | |
Al-Saidi et al. | A new idea in zero knowledge protocols based on iterated function systems | |
RU2325768C1 (ru) | Способ генерации и проверки подлинности электронной цифровой подписи, заверяющей электронный документ | |
Khamitov et al. | Blind unanticipated RSA-signature schemes | |
EP0858701B1 (en) | Cryptographic methods for demonstrating satisfiable formulas from propositional logic | |
Young et al. | Towards signature-only signature schemes | |
McCullagh | Crytographic applications of bilinear maps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |