KR100844546B1 - Method, system, device for proving the authenticity of an entity or integrity of a message - Google Patents
Method, system, device for proving the authenticity of an entity or integrity of a message Download PDFInfo
- Publication number
- KR100844546B1 KR100844546B1 KR1020027004209A KR20027004209A KR100844546B1 KR 100844546 B1 KR100844546 B1 KR 100844546B1 KR 1020027004209 A KR1020027004209 A KR 1020027004209A KR 20027004209 A KR20027004209 A KR 20027004209A KR 100844546 B1 KR100844546 B1 KR 100844546B1
- Authority
- KR
- South Korea
- Prior art keywords
- mod
- value
- integer
- commitment
- daemon
- Prior art date
Links
Images
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
본 발명은 The present invention
m(≥1)쌍의 비밀값 Qi 및 공개값 Gi=gi 2 ;secret value Q i and published value G i = g i 2 of m (≥1) pairs;
f(≥2)개의 소인수의 곱에 의해 형성되는 공개 모듈 n; 및an open module n formed by the product of f (≧ 2) prime factors; And
Gi·Qi v=1 mod n 또는 Gi=Qi v mod n 의 형식에 관련된 지수 v=2k(k>1)에 의해서 증명을 행하는 방법에 관한 것이다. It relates to a method for verifying by an index v = 2 k (k> 1) related to the format G i Q i v = 1 mod n or G i = Q i v mod n.
Qi 또는 그 역 모듈로 n 을 모듈로 n 의 2승까지 증가시켜서 k-1회 취함으로써 얻어지는 m 개의 Qi 중에서, 그들중의 하나는 ±gi와 같지않다. x2=gi mod n, x2=-gi mod n인 2m 식에서 적어도 하나는 모듈로 n 정수 환에서 x는 해를 갖는다. Of the m Q i obtained by increasing Q i or the inverse modulo n by the modulus n to the power of modulo n, one of them is not equal to ± g i . In the 2m equation, where x 2 = gi mod n, x 2 = -gi mod n, at least one modulo n has a solution in the n integer ring.
모듈, 진정성, 무결성, 검증, 엔티티Module, authenticity, integrity, validation, entity
Description
본 발명은 엔티티(entity)의 진정성 및/또는, 메시지의 무결성(integrity) 및/또는 진정성을 검증하기 위한 방법, 시스템, 및 장치들에 관한 것이다. The present invention relates to methods, systems, and apparatuses for verifying the authenticity of an entity and / or the integrity and / or authenticity of a message.
EP O 311 470 B1호(발명자; Louis Guillou 와 Jean- Jacques Quisquater)는 상기 방법을 기재하고 있다. 이하, 상기 특허를 "GQ 특허" 또는 "GQ 방법"이라는 용어를 사용하여 참조할 것이다. 또한, 이하에서, 본 발명을 설명하기 위하여, "GQ2" 또는 "GQ2 발명" 또는 "GQ2 기법"이라는 표현을 사용할 것이다. EP O 311 470 B1 (inventor; Louis Guillou and Jean-Jacques Quisquater) describes this method. Hereinafter, the patent will be referred to using the terms "GQ patent" or "GQ method". In addition, hereinafter, to describe the present invention, the expression "GQ2" or "GQ2 invention" or "GQ2 technique" will be used.
상기 GQ 기법에 따르면, "신뢰받은 기관(trusted authority)"으로 알려진 엔티티는 "증인(witness)"라고 불리는 엔티티 각각에 식별 정보(identity)을 할당하고 그 RSA 서명을 연산한다. 커스터마이즈 과정에서, 상기 신뢰받은 기관은 증인에게 식별 정보 및 서명을 부여한다. 그런 후, 증인은 "여기에 나의 식별 정보가 있다 나는 식별 정보의 RSA 서명을 알고 있다" 이라고 선언한다. 증인은 자신이 식별 정보의 RSA서명을 알고 있음을 RSA 서명을 밝히지 않고 증명한다. 신뢰받은 기관에 의해 분배된 RSA 공개 식별키를 통해서 "제어자(controller)"로 알려진 엔티티는 상기 식별키의 지식(knowledge)을 제공받지 않고, RSA서명이 상기 선언된 식별정보와 일치하는지를 확인한다. GQ기법을 이용하는 메커니즘은 "지식의 전송없이" 이루어진다. GQ 기법에 따르면, 증인은 신뢰받은 기관이 수많은 식별 정보를 서명하는데 사용하는 RSA 비밀키를 알지 못한다. According to the GQ technique, an entity known as a "trusted authority" assigns an identity to each entity called "witness" and computes its RSA signature. In the customization process, the trusted authority gives the witness identification information and signature. The witness then declares, "Here is my identifying information. I know the RSA signature of the identifying information." The witness certifies that he knows the RSA signature of the identifying information without revealing the RSA signature. An entity known as a "controller" via an RSA public identification key distributed by a trusted authority does not receive knowledge of the identification key and verifies that the RSA signature matches the declared identification. . The mechanism using the GQ technique is done "without knowledge transfer." According to the GQ technique, the witness does not know the RSA secret key that a trusted authority uses to sign a lot of identifying information.
상술된 GQ기법은 RSA기술을 이용한다. 그러나, RSA기술이 정확하게 모듈러스(modulus) n의 인수분해에 의존하는 반면에, 이러한 의존성은 같지않다. 즉, RSA기술을 구현하는 디지털 서명의 다양한 표준에 대한 소위 "증식성의 공격(multiplicative attack)"에서 나타나는 것과 같이, 실제로는 다른 것이다. The GQ technique described above uses RSA technology. However, while the RSA technique depends precisely on the factorization of modulus n, this dependency is not the same. In other words, it is actually different, as is shown in the so-called "multiplicative attack" against the various standards of digital signatures that implement RSA technology.
GQ2 기법의 목적은 2 가지이다. 하나는 RSA 기술의 고유성능을 향상시키는 것이고, 다른 하나는 RSA 기법의 본질적인 문제를 해결하는 것이다. GQ2 비밀키의 지식은 모듈러스 n의 인수분해의 지식과 동등하다. 트리플렛(triplet) GQ2에 대한 임의의 공격(attack)도 모듈러스 n에 대한 인수분해가 된다. 이러한 시간은 등가이다. GQ2 기법을 이용함으로써, 작업 부하는 서명 또는 자기 인증 엔티티 및 제어 엔티티를 위해 감소된다. 보안 및 성능의 면에서 인수분해의 문제를 더 향상되게 사용하는 것을 통해서, GQ2 기법은 RSA 기법의 단점을 극복하게 된다. The purpose of the GQ2 technique is twofold. One is to improve the inherent performance of the RSA technology, and the other is to solve the inherent problems of the RSA technique. The knowledge of the GQ2 secret key is equivalent to the knowledge of the factorization of modulus n. Any attack on the triplet GQ2 is also factored on modulus n. This time is equivalent. By using the GQ2 technique, the workload is reduced for signature or self-certifying entities and control entities. By making better use of factorization issues in terms of security and performance, the GQ2 technique overcomes the shortcomings of the RSA technique.
GQ기법은 512비트 이상으로 이루어진 수의 모듈로(modulo) 연산을 구현한다. 연산수치는 216+1차수의 거듭제곱으로 상승된 크기와 실질적으로 동일한 크기를 갖는 수와 관련되어 있다. 그러나, 은행카드 분야에서, 현존하는 마이크로전자 하부구조는 연산 보조프로세서 없이 자체 프로그램 가능한 모노리식 마이크로 프로세서(monolithic self-programmable microprocessor)를 사용한다. GQ기법과 같은 방법에 속하는 다중 연산 애플리케이션과 관련된 작업부하는 계산시간을 야기하고, 이러한 계산시간은 어떤 경우에는 소비자가 구매시 은행카드를 사용하여 지불하는데 불편을 느끼게 된다. 여기서, 지불카드의 보안성을 향상시키는데 있어서, 은행기관이 해결하기 특별히 어려운 문제에 직면할 수 있다는 것을 생각해볼 수 있다. 실제로, 명백하게 모순되는 2가지 문제를 해결해야 한다. 즉, 한편으로는 각 카드에 점차 길고 명확한 키를 사용하여 보안성을 증가시키는 반면에, 다른 한편으로 그 작업부하로 인해 사용자에게 과도한 계산시간이 야기되지 않도록 해야 한다. 이러한 문제는 심각해지고, 따라서 현재 하부구조 및 마이크로프로세서를 고려해 볼 필요가 있다.The GQ technique implements a number of modulo operations of more than 512 bits. The arithmetic value is associated with a number that is substantially the same size as the magnitude raised to the power of 2 16 +1 order. However, in the field of bank cards, existing microelectronic infrastructures use monolithic self-programmable microprocessors without computational coprocessors. Workloads associated with multi-computation applications belonging to the same method as the GQ technique cause computation time, which in some cases makes the consumer uncomfortable paying with a bank card at the time of purchase. It is conceivable here that in improving the security of payment cards, banks may face problems that are particularly difficult to solve. Indeed, two obviously contradictory problems must be solved. That is to say, on the one hand, increasingly long and clear keys are used for each card to increase security, while on the other hand, the workload should not cause excessive computation time for the user. This problem is aggravating and it is therefore necessary to consider current infrastructure and microprocessors.
GQ2기법은 보안성을 강화시키는 동시에 상술한 문제의 해결책을 제공하는 것을 목적으로 한다. The GQ2 technique aims to enhance security and at the same time provide a solution to the above problems.
방법Way
보다 상세하게는, 본 발명은 제어자 엔티티(controller entity)에 대해서, More specifically, the present invention relates to a controller entity,
- 엔티티의 진정성 또는/및The authenticity of the entity and / or
- 엔티티와 관련된 메시지 M의 무결성을 검증하기 위한 검증방법에 관한 것이다. A verification method for verifying the integrity of message M associated with an entity.
이러한 검증은 This verification is
- m개 쌍의 비밀값 Q1,Q2,...,Qm 및 공개값 G1,G2,...,Gm (m은 1 이상임)과,m pairs of secret values Q 1 , Q 2 , ..., Q m and the public values G 1 , G 2 , ..., G m (m is 1 or more),
- f개의 소인수 P1,P2,...,Pf의 곱에 의해 구성된 공개 모듈러스 n(f는 2 이상임)를 포함하는 파라미터와 그 파라미터의 도함수(derivative)의 일부 또는 전부에 의해 성립된다. a parameter comprising a public modulus n (f is greater than or equal to 2) composed of the product of f prime factors P 1 , P 2 , ..., P f , and some or all of its derivatives .
모듈러스와 비밀값 및 공개값은 Gi×Qi v = 1 mod n 또는 Gi = Qi v mod n 의 식에 의해 연관되고, v는 v=2k 형식의 공개지수가 되고, 여기서, k가 1보다 큰 보안 파라미터(security parameter)이고, Modulus, secret and open values are G i × Q i v = 1 mod n or G i = Q i v mod n, where v is a public index of the form v = 2 k , where k is a security parameter greater than 1
m개의 공개값 Gi는 f개의 소인수 p1,p2,...,pm 보다 작은 m개의 식별 기수(base number) g1,g2,...,gm의 제곱 gi 2이며, 상기 f개의 소인수 p1,p2,...,pf 및/또는 상기 m개의 기수(base number) g1,g2,...,gm는 아래의 조건들을 만족하도록 곱해진다. m public values G i is the squared g i 2 of m base numbers g 1 , g 2 , ..., g m less than f prime factors p 1 , p 2 , ..., p m , The f prime factors p 1 , p 2 , ..., p f and / or the m base numbers g 1 , g 2 , ..., g m are multiplied to satisfy the following conditions.
제1조건First condition
xv = gi 2 mod n (1) x v = g i 2 mod n (1)
상기 각각의 식들은 모듈로 n의 정수 환에서 x로 풀릴 수 있다. Each of the above expressions can be solved with x in the integer ring of modulo n.
제2조건
만약, Gi= Qi v mod n 인 경우, Qi 을 제곱해서 모듈로 n을 k-1회 취함으로써 얻어지는 m 개의 qi 중에서, 그들 중의 하나는 ±gi와 같지않고(즉, 단순형이 아니다.) Second condition
If G i = Q i v mod n, then among m m q i obtained by squaring Q i and taking modulo n k-1 times, one of them is not equal to ± g i (i.e. no.)
삭제delete
만약, GiQi v = 1 mod n 인 경우, Qi 의 모듈로 n 을 제곱한 것의 역 모듈로 n 을 k-1회 취함으로써 얻어지는 m 개의 qi 중에서, 그들 중의 하나는 ±gi와 같지않음(즉, 단순형이 아니다) If, when G i Q i v = 1 a mod n, from the m number q i is obtained by taking the n time k-1 to the station module of what the squares of n modulo of Q i, one of them is ± g i, and Not equal (ie not simple)
제3조건Third condition
x2 = gi mod n (2) x 2 = g i mod n (2)
x2 = - gi mod n (3)x 2 =-g i mod n (3)
적어도 상기 2m 식들중의 하나는 모듈로 n의 정수 환에서 x로 풀릴수 있다. At least one of the 2m equations can be solved by x in an integer ring of modulo n.
상기 방법은 증인(witness)라 하는 엔티티를 다음 단계에서 구현하며, 상기 엔티티는 f개 소인수 pi 및/또는 m개 기수 gi 및/또는 상기 소인수의 차이니스 잉여값의 파라미터 및/또는 공개 모듈러스 n 및/또는 상기 m개의 비밀값 Qi 및/또는 그 비밀값 Qi과 그 공개지수v의 f×m 개의 요소(component) Qi,j (Qi,j = Qi mod pj )중 적어도 하나를 구비한다. The method implements, in the next step, an entity called a witness (witness), the entity having f prime factors p i and / or m radix g i and / or parameters of the difference surplus value of the prime factors and / or public modulus n and / or the m secret values Q i and / or the secret values Q i and the f × m components Q i, j (Q i, j = Q i mod p j ) of the public index v At least one.
상기 증인은 모듈로 n의 정수 환에서 커미트먼트(commitment) R을 연산한다. 여기서 각 커미트먼트(commitment)는;The witness computes a commitment R on the integer ring of modulo n. Where each commitment is:
r이 0 < r < n 이되는 임의값인 경우 R = rv mod n 또는 R is any value where r is 0 <r <n = r v mod n or
ri은 0 < ri < pi이 되는, 소수 Pi 와 관련된 랜덤값이고 각 ri는 랜덤값의 콜렉션 {r1,r2,...,rf}에 속하는 경우 Ri = ri v mod pi의 연산을 실행하고, 이어 차이니스 잉여법(Chinese remaninders method)을 적용하는 것에 의해 계산된다. r i is a random value associated with the prime number P i , where 0 <r i <p i and each r i is in the collection of random values {r 1 , r 2 , ..., r f } R i = r i v It is calculated by executing the operation of mod p i and then applying the Chinese remaninders method.
상기 증인은 각각 m개의 초기 챌린지(elementary challenge)이라 하는 정수 di를 포함한, 하나 이상의 챌린지 d을 수신한다. 그 증인은 각 챌린지 d에 기초하여 D = r× Q1 d1×Q2 d2×...×Qm dm mod n 의 연산을 실행하거나,Di = ri× Qi,1 d1×Qi,2 d2×...×Qi,m dm mod pi 의 연산을 실행하고, 이어, 차이니스 잉여법(Chinese remainder method)을 적용함으로써 레스펀스 D를 계산한다. The witness receives one or more challenges d, each including an integer d i called m initial challenges. Its witness is based on each challenge, d = r × Q 1 d 1 × Q 2 d 2 × ... × Q m dm Perform the operation of mod n or D i = r i × Q i, 1 d1 × Q i, 2 d2 × ... × Q i, m dm Calculate the response D by executing the operation of mod p i and then applying the Chinese remainder method.
본 방법은 상기 레스펀스 D가 상기 챌린지 d와 상기 커미트먼트 R의 수와 동일한 수가 되도록 하여, 상기 R,d,D의 그룹은 {R,d,D}로 참조된 트리플릿을 형성하도록 한다. The method allows the response D to be equal in number to the challenge d and the commitment R so that the groups of R, d, and D form a triplet referred to as {R, d, D}.
엔티티의 진정성을 검증하는 경우When verifying the authenticity of an entity
제 1 실시예에 의하면, 본 발명에 의한 상기 검증방법은 증명자로 알려진 엔티티의 진정성을 제어자로 알려진 엔티티에게 검증하게 된다. 상기 증명자 엔티티는 상기 증인를 포함한다. According to the first embodiment, the verification method according to the present invention verifies the authenticity of an entity known as an authenticator to an entity known as a controller. The attestor entity includes the attestor.
상기 증명자 및 제어자는,The prover and controller,
ㆍ제1 단계: 커미트먼트 R의 행위Phase 1: Commitment of Commitment R
- 각 호출시에, 상기 증인은 제1항에 기재된 절차를 적용함으로써 각각의 커미트먼트 R을 계산하며, At each call, the witness calculates each commitment R by applying the procedure described in
- 상기 증명자는 상기 제어자에게 각 커미트먼트 R의 일부 또는 전부를 전송한다. The prover sends some or all of each commitment R to the controller.
ㆍ제2 단계: 챌린지 d의 행위Phase 2: Actions of Challenge d
상기 제어자는 커미트먼트 R의 일부 또는 전부를 수신한 후에, 상기 제어자는 커미트먼트 R의 수와 동일한 수의 챌린지 d를 생성하고, 상기 챌린지 d를 상기 증명자에 전송한다. After the controller receives some or all of commitment R, the controller generates the same number of challenges d as the number of commitments R and sends the challenge d to the prover.
ㆍ제3 단계: 레스펀스(response) D의 행위Phase 3: Response D's Action
상기 증인은 제1항에 기재된 절차를 적용함으로써 상기 챌린지 d로부터 상기 레스펀스 D를 계산한다. The witness calculates the response D from the challenge d by applying the procedure described in
ㆍ제4 단계: 검사행위ㆍ Step 4: Inspection Act
상기 증명자는 상기 각 레스펀스 D를 상기 제어자에게 전송하는 단계를 실행한다. The attestor executes sending each response D to the controller.
제 1 케이스 : 증명자는 각 커미트먼트R의 일부를 전송하였을 경우Case 1: If the prover sent a portion of each commitment R
상기 증명자가 각 커미트먼트 R의 일부를 전송하였다면, m개의 공개값 G1, G2,...,Gm 을 갖는 상기 제어자는 각 챌린지 d와 각 레스펀스 D로부터 재구성된 커미트먼트 R'를 계산하고, 그 재구성된 커미트먼트 R'는 If the prover sent a portion of each commitment R, the controller with m public values G 1 , G 2 , ..., G m calculates the reconstructed commitment R 'from each challenge d and each response D and , The reconstructed commitment R '
R' = G1 d1×G2 d2×...×Gm dm×Dvmod n 의 식, 또는 R '= G 1 d 1 × G 2 d 2 × ... × G m dm × D v mod n, or
R' = Dv/G1 d1×G2 d2×...×Gm dm× Dvmod n의 식을 만족하게 된다. R '= D v / G 1 d1 × G 2 d2 × ... × G m dm × D v mod n is satisfied.
상기 제어자는 각 재구성된 커미트먼트 R'이 그 제어자에 전송되었던 각 커미트먼트 R의 일부 또는 전부를 재생성하는 것을 확인한다. The controller confirms that each reconstructed commitment R 'regenerates some or all of each commitment R that was sent to that controller.
제 2 케이스 : 증명자가 각 커미트먼트 R의 전부를 전송하였을 경우Case 2: if the prover sent all of each commitment R
상기 증명자가 각 커미트먼트 R의 전부를 전송하였다면, m개의 공개값 G1, G2,...,Gm 을 갖는 상기 제어자는 각 커미트먼트 R는 If the proving party transmits the whole of each of the commitment R, of m public values G 1, G 2, ..., each of said control characters having a commitment R m G is
R = G1 d1×G2 d2×...×Gm dm×Dvmod n 의 식, 또는 R = G 1 d 1 × G 2 d 2 × ... × G m dm × D v mod n, or
R = Dv/G1 d1×G2 d2×...×Gm dm mod n의 식을 만족하는지를 확인하게 된다. R = D v / G 1 d1 × G 2 d2 × ... × G m dm mod n Check if the equation is satisfied.
메시지의 무결성을 검증하는 경우When verifying the integrity of a message
상기 제 1 실시예와 조합될 수 있는 제 2 실시예에서, 본 발명에 의한 방법은 제어자 엔티티로 알려진 엔티티에게 증명자 엔티티라 하는 엔티티와 관련된 메시지 M의 무결성을 검증받기 위해 고안된다. 상기 증명자 엔티티는 상기 증인를 포함한다. In a second embodiment, which can be combined with the first embodiment, the method according to the invention is designed to verify the integrity of a message M associated with an entity known as a prover entity to an entity known as a controller entity. The attestor entity includes the attestor.
상기 증명자 및 제어자 엔티티는,The prover and controller entity,
ㆍ제1 단계: 커미트먼트 R의 행위Phase 1: Commitment of Commitment R
각 호출시에, 상기 증인은 제1항에 기재된 절차를 적용하여 각 커미트먼트 R을 계산한다. At each call, the witness calculates each commitment R using the procedure described in
ㆍ제2 단계: 챌린지 d의 행위Phase 2: Actions of Challenge d
상기 증명자는 그 인수가 메시지 M과, 각 커미트먼트 R의 모두 또는 일부인 해싱 함수 h를 적용하여 적어도 하나의 토큰 T를 계산한다. 상기 증명자는 상기 토큰 T를 상기 제어자에게 전송한다. 상기 토큰 T를 전송받은 후에, 상기 제어자는 커미트먼트 R의 수와 동일한 수로 챌린지 d를 생성하고, 챌린지 d를 상기 증명자에게 전송한다. The prover calculates at least one token T by applying a hashing function h whose argument is message M and all or part of each commitment R. The prover sends the token T to the controller. After receiving the token T, the controller generates a challenge d with the same number of commitments R and sends the challenge d to the prover.
ㆍ제3 단계: 레스펀스 D의 행위Phase 3: Response to Response D
상기 증인은 제1항에 기재된 절차를 적용하여 상기 챌린지 d로부터 상기 레스펀스 D를 계산한다. The witness applies the procedure described in
ㆍ제4 단계: 검사 행위ㆍ 4th step: inspection
상기 증명자는 각 레스펀스 D를 상기 제어자에게 전송한다. m개의 공개값 G1, G2,...,Gm 을 갖는 상기 제어자는 챌린지 d와 레스펀스 D 각각으로부터 각 커미트먼트 R'을 재구성하고, 그 재구성된 커미트먼트 R'은The prover sends each response D to the controller. The controller with m public values G 1 , G 2 , ..., G m reconstructs each commitment R 'from each of challenge d and response D, and the reconstructed commitment R'
R' = G1 d1×G2 d2×...×Gm dm×Dvmod n 의 식, 또는 R '= G 1 d 1 × G 2 d 2 × ... × G m dm × D v mod n, or
R' = Dv/G1 d1×G2 d2×...×Gm dm mod n의 식을 만족한다. R '= D v / G 1 d1 × G 2 d2 × ... × G m dm mod n
이어, 상기 제어자는 그 인수가 메시지 M과, 각 재구성된 커미트먼트 R'의 모두 또는 일부인 해싱 함수 h를 적용하여, 적어도 하나의 토큰 T'을 재구성한다. The controller then reconstructs at least one token T 'by applying a hashing function h whose argument is message M and all or part of each reconstructed commitment R'.
상기 제어자는 상기 토큰 T'가 전송된 토큰 T와 동일한지를 확인하는 단계를 실행한다. The controller executes a step of checking whether the token T 'is the same as the transmitted token T'.
메시지의 디지탈 서명 및 그의 진정성의 입증Digital signature of the message and proof of its authenticity
상기 두개의 선행 실시예와 조합될 수 있는 본 발명에 의한 제 3 실시예에서는, 본 발명에 의한 방법은 서명 엔티티(signing entity)로 알려진 엔티티에 의해 메시지 M의 디지털 서명을 생성하기 위해 고안된다. 상기 서명 엔티티는 상기 증인를 포함한다. In a third embodiment according to the invention, which can be combined with the two preceding embodiments, the method according to the invention is designed for generating a digital signature of message M by an entity known as a signing entity. The signing entity includes the attestor.
서명작동Signature
상기 서명 엔티티는,The signature entity is
- 메시지 MMessage M
- 챌린지 d 및/또는 커미트먼트 RChallenge d and / or commitment R
- 레스펀스 DResponse D
를 포함한 서명된 메시지를 얻기 위해 서명연산을 실행한다. Performs a signature operation to obtain a signed message including
상기 서명 엔티티는 The signature entity
ㆍ제1 단계: 커미트먼트 R의 행위Phase 1: Commitment of Commitment R
각 호출시에, 상기 증인은 제1항에 기재된 절차를 적용하여 각 커미트먼트 R을 계산하한다. At each call, the witness applies the procedure described in
ㆍ제2 단계: 챌린지 d의 행위Phase 2: Actions of Challenge d
상기 서명자는 그 인수가 메시지 M과, 각 커미트먼트 R의 모두 또는 일부인 해싱 함수 h를 적용하여 이진 트레인(binary train)을 얻는다. 이러한 이진 트레인으로부터 상기 서명자는 커미트먼트 R의 수와 동일한 수로 챌린지 d를 추출하는 단계를 포함한다. The signer obtains a binary train by applying a hashing function h whose argument is message M and all or part of each commitment R. From this binary train the signer comprises extracting the challenge d in the same number as the number of commitments R.
ㆍ제3 단계: 레스펀스 D의 행위Phase 3: Response to Response D
상기 증인은 제1항에 기재된 절차를 적용하여 상기 챌린지 d로부터 상기 레스펀스 D를 계산하는 단계를 구현함으로써 상기 서명연산을 실행한다. The witness performs the signature operation by implementing the step of calculating the response D from the challenge d by applying the procedure described in
검사 작동Inspection works
메시지 M의 진정성을 검증하기 위하여, 제어자라 하는 엔티티는 상기 서명된 메시지를 검사한다. 상기 서명된 메시지를 갖는 제어자 엔티티는, To verify the authenticity of message M, an entity called a controller examines the signed message. The controller entity with the signed message is
ㆍ 제어자가 커미트먼트 R, 챌린지 d 및 레스펀스 D를 가질 경우.The controller has commitment R, challenge d and response D.
상기 제어자가 커미트먼트 R, 챌린지 d,및 레스펀스 D를 갖는경우, 상기 제어자는 커미트먼트 R, 챌린지 d, 레스펀스 D가 R = G1 d1×G2 d2×...×Gm dm×Dvmod n 의 식 또는 R = Dv/G1 d1×G2 d2×...×Gm dm mod n 의 식을 만족하는지를 확인한다. 상기 제어자는 메시지 M, 챌린지 d 및 커미트먼트 R이 해싱함수 d = h(message, R)을 만족하는지를 확인한다. When the controller has a commitment R, a challenge d, and a response D, the controller has a commitment R, a challenge d, a response D where R = G 1 d1 x G 2 d2 x ... x G m dm x D v Check whether mod n or R = D v / G 1 d1 × G 2 d2 × ... × G m dm mod n is satisfied. The controller checks if message M, challenge d and commitment R satisfy the hashing function d = h (message, R).
ㆍ제어자가 챌린지 d와 레스펀스 D를 가질 경우.The controller has a challenge d and a response D.
상기 제어자가 챌린지 d, 및 레스펀스 D를 갖는경우, 상기 제어자는 각 챌린지 d와 레스펀스 D에 기초하여, R' = G1 d1×G2 d2×...×Gm dm×Dvmod n 또는 R' = Dv/G1 d1×G2 d2×...×Gm dm mod n의 관계식을 만족하는 커미트먼트R'을 재구성한다. 상기 제어자는 상기 메시지 M 및 챌린지 d가 해싱함수 d = h(message, R')을 만족하는지를 확인한다. If the controller has a challenge d and response D, the controller is based on each challenge d and response D, and R '= G 1 d 1 × G 2 d 2 × ... × G m dm × D v mod n or R '= D v / G 1 d1 × G 2 d2 × ... × G m dm Recommit the commitment R 'that satisfies the relation of mod n. The controller checks whether the message M and the challenge d satisfy a hashing function d = h (message, R ').
ㆍ제어자가 커미트먼트 R와 레스펀스 D를 가질 경우.The controller has commitment R and response D.
상기 제어자가 커미트먼트 R와 레스펀스 D를 갖는다면, 상기 제어자는 해싱함수 d' = h(message, R)을 적용하여 d'를 재구성하고, 상기 제어자는 싱기 커미트먼트 R과 상기 챌린지 d' 및 상기 레스펀스 D가 R = G1 d1×G2 d2×...×Gm dm×Dvmod n 또는 R = Dv/G1 d1×G2 d2×...×Gm dm mod n의 식을 만족하는지를 확인하는 절차에 의해 검사연산을 실행한다. If the controller has a commitment R and a response D, the controller reconstructs d 'by applying a hashing function d' = h (message, R), and the controller has a sinker commitment R and the challenge d 'and the response. The formula D is R = G 1 d1 × G 2 d2 × ... × G m dm × D v mod n or R = D v / G 1 d1 × G 2 d2 × ... × G m dm mod n Perform the check operation by the procedure to check if
시스템system
본 발명은 또한, 제어자 서버에The invention also relates to a controller server
- 엔티티의 진정성 또는(및)The authenticity of the entity or (and)
- 상기 엔티티와 관련된 메시지 M의 무결성을 검증하기 위한 검증 시스템에 관한 것이다. A verification system for verifying the integrity of message M associated with said entity.
이러한 검증은 아래의 파라미터와 그 파라미터의 도함수(derivative)의 일부 또는 전부에 의해 성립된다. This verification is established by some or all of the following parameters and their derivatives.
- m개 쌍의 비밀값 Q1,Q2,...,Qm 및 공개값 G1,G2,...,Gm (m은 1 이상임),m pairs of secret values Q 1 , Q 2 , ..., Q m and the public values G 1 , G 2 , ..., G m (m is 1 or more),
- f개의 소인수 p1,p2,...,pf의 곱에 의해 구성된 공개 모듈러스 n(f는 2 이상임)-the open modulus n composed of the product of f prime factors p 1 , p 2 , ..., p f (f is not less than 2)
상기 모듈러스, 상기 비밀값 및 상기 공개값은 Gi×Qi v = 1 mod n 또는 Gi = Qi v mod n 의 관계식에 의해 관련되고, 여기서 v는 v=2k 형식의 공개지수가 되며, k는 1보다 큰 보안 파라미터이며, The modulus, the secret value and the published value are G i × Q i v = 1 mod n or G i = Q i v mod n, where v is a public index of the form v = 2 k , where k is a security parameter greater than 1
상기 m개의 공개값 Gi는 f개의 소인수 p1,p2,...,pf보다 작은 기수 g1,g2,...,gm의 제곱 gi 2이며, The m public values G i is f of prime factors p 1, p 2, ..., smaller than radix p f g 1, g the power of 2, ..., g m g i 2,
상기 소인수 p1,p2,...,pf 및/또는 상기 m개의 기수(base number) g1,g2,...,gm는 아래의 조건들을 만족하도록 곱해진다. The prime factors p 1 , p 2 , ..., p f and / or the m base numbers g 1 , g 2 , ..., g m are multiplied to satisfy the following conditions.
제1조건First condition
xv = gi 2 mod n (1) x v = g i 2 mod n (1)
상기 각각의 식들은 모듈로 n의 정수 환에서 x로 풀릴 수 있다. Each of the above expressions can be solved with x in the integer ring of modulo n.
제2조건Second condition
만약, Gi= Qi v mod n 이면, Qi 제곱 모듈로 n을 k-1회 취함으로써 얻어지는 m 개의 qi 중에서, 그들중의 하나는 ±gi와 같지않고(즉, 단순형이 아니다.)If G i = Q i v mod n, one of them is not equal to ± g i (ie, not simple) out of m q i obtained by taking n−1 with Q i squared modulus. )
만약, GiQi v = 1 mod n 이면, Qi 모듈로 n 의 역(inverse) 제곱 모듈로 n을 k-1회 취함으로써 얻어지는 m 개의 qi 중에서, 그들중의 하나는 ±gi와 같지않다. (즉, 단순형이 아니다) If G i Q i v = 1 mod n, then among m m q i obtained by taking n inverse squared modulo n of Q i modulo, one of them is ± g i and Not equal (Ie not simple)
제3조건Third condition
x2 = gi mod n (2) x 2 = g i mod n (2)
x2 = - gi mod n (3)x 2 =-g i mod n (3)
적어도 상기 2m 식들중의 하나는 모듈로 n의 정수 환에서 x로 풀릴수 있다. At least one of the 2m equations can be solved by x in an integer ring of modulo n.
또한, 상기 시스템은 특히, 예를 들어, 마이크로 프로세서 기반 은행카드의 형태를 갖는 노매드 객체에서 내장되는 증인 장치를 포함한다. The system also includes in particular a witness device embedded in a nomad object, for example in the form of a microprocessor based bank card.
상기 증인 장치는 f개의 소인수 pi 및/또는 m개의 기수 gi 및/또는 그 소인수의 차이니스 잉여값의 파라미터 및/또는 공개 모듈러스 n 및/또는 상기 m개의 비밀값 Qi 및/또는 그 비밀값 Qi과 그 공개지수v의 f×m 개의 요소(component) Qi,j(Qi,j = Qi mod pj) 를 포함하는 메모리 영역을 포함한다. The attestation apparatus may include a parameter of the f prime factor p i and / or m base numbers g i and / or the prime surplus value and / or the public modulus n and / or the m secret values Q i and / or its secrets. F x m components of the value Q i and its open index v Q i, j (Q i, j = Q i mod p j ) It includes a memory area including a.
상기 증인장치는 이하에서 증인 장치의 랜덤값을 생성하기 위한 수단이라 불리는, 랜덤값 생성 수단, 및The witness apparatus is hereinafter referred to as random value generating means, called means for generating a random value of the witness apparatus, and
이하에서 증인 장치의 커미트먼트 R을 계산하기 위한 수단이라 불리는, 모듈로 n의 정수 환에서 커미트먼트 R을 계산하기 위한 계산수단을 포함한다. Calculation means for calculating the commitment R in the integer ring of modulo n, referred to below as means for calculating the commitment R of the witness apparatus.
계산 수단은 커미트먼트 R을 모듈로 n의 정수 환에서 계산하는 것을 가능하게 한다. 상기 각 커미트먼트 R은 The calculation means makes it possible to calculate the commitment R at the integer ring of modulo n. Each commitment R is
r은 0 < r < n이 되는 랜덤값인 경우 R = rv mod n의 연산을 실행하거나, ri은 0 < ri < pi이 되도록 소수 Pi 와 관련된 랜덤값이고 상기 각 ri 는 랜덤값의 콜렉션 {r1,r2,...,rf}에 속하는 경우, Ri = ri v mod pi의 연산을 실행하고, 이어서 차이니스 잉여법을 적용하여 계산한다. r is a random value where 0 <r <n = r v perform an operation of mod n, or r i is a random value associated with prime number P i such that 0 <r i <p i and each r i is a collection of random values {r 1 , r 2 , ..., r f } If it belongs to R i = r i v Perform the operation of mod p i and then calculate it by applying the Chinese residual surplus method.
또한, 상기 증인 장치는,In addition, the witness apparatus,
- 이하에서 증인 장치의 챌린지 d 를 수신하기 위한 수단이라 하는, 하나 이상의 챌린지 d을 수신하고, 상기 각 챌린지 d는 m개의 정수 di(초기 챌린지이라고도 함)를 포함하는 수신수단(reception means), Receiving one or more challenges d, hereinafter referred to as means for receiving a challenge d of the witness apparatus, each challenge d comprising m integers d i (also called initial challenges),
- 이하에서 증인 장치의 레스펀스 D를 계산하기 위한 수단이라 하는, 각 챌린지 d에 기초하여 레스펀스 D를, D = r×Q1 d1×Q2 d2×...×Qm dm mod n 의 연산을 실행하거나, D = r×Qi,1 d1×Qi,2 d2×...×Qi,m dm mod pi 의 연산을 실행함으로써 계산하고, 이어, 차이니스 잉여법을 적용하여 계산하기 위한 계산 수단을 포함한다. Responsive D is defined based on each challenge d, which is hereafter referred to as the means for calculating the response D of the witness device, where D = r x Q 1 d 1 Q 2 d 2 x ... x Q m dm mod n Calculation by executing the calculation or by performing the calculation of D = r × Q i, 1 d1 × Q i, 2 d2 × ... × Q i, m dm mod p i Calculation means for calculating.
또한 상기 증인장치는 하나이상의 상기 챌린지 d와 하나이상의 레스펀스 D를 전송하기 위한 전송수단을 포함한다. 상기 레스펀스 D는 각 커미트먼트 R과 챌린지 R의 수와 동일한 수로 존재하며, 상기 R,d,D의 그룹은 {R,d,D}로 참조된 트리플릿을 형성한다. The attestation device also includes transmission means for transmitting one or more of the challenge d and one or more response D. The response D is present in the same number as each commitment R and challenge R, and the groups of R, d and D form a triplet referred to as {R, d, D}.
엔티티의 진정성을 검증하는 경우When verifying the authenticity of an entity
제 1 실시예에서, 본 발명에 의한 시스템은 증명자라 하는 엔티티의 진정성과 제어자라 하는 엔티티를 검증하게 된다. In the first embodiment, the system according to the present invention verifies the authenticity of an entity called the prover and the entity called the controller.
상기 시스템은 상호 연결수단에 의해 상기 증인 장치와 서로 연결되며, 특히, 노매드 객체의 로직 마이크로 회로 형태, 예를 들면 마이크로 프로세서 기반 은행카드의 마이크로 프로세서 형태를 갖는, 증명자 엔티티와 관련된 증명자 장치, 및 특히, 터미널 또는 원격 서버의 형태이며, 전자적, 전자기적, 광학적 또는 음성학적으로 상기 증명자 장치와 연결하기 위한 연결수단, 특히, 데이터프로세싱 통신 네트워크와 같은 연결수단을 포함하는, 상기 제어자 엔티티와 관련된 제어자 장치를 포함하도록 이루어진다. The system is interconnected with the attestation device by means of interconnecting means, in particular a prover device associated with an attestor entity, in the form of a logic microcircuit of a nomad object, for example a microprocessor form of a microprocessor-based bank card, And, in particular, in the form of a terminal or remote server, connecting means for connecting to the prover device electronically, electromagnetically, optically or phonetically, in particular connecting means such as a data processing communication network. And a controller device associated with the controller.
상기 시스템은, The system,
ㆍ제1 단계: 커미트먼트 R의 행위Phase 1: Commitment of Commitment R
각 호출시에, 증인장치의 커미트먼트 R 계산수단은 상기 제1항에 기재된 절차를 적용하여 각각의 커미트먼트 R을 계산하고, 상기 증인 장치는 상기 상호연결수단을 통해 상기 증명자 장치에 상기 각 커미트먼트 R의 일부 또는 전부를 전송하기 위한 전송수단 - 이하, 증인장치의 전송수단이라 함 - 을 가지며, At each call, the commitment R calculation means of the attestor apparatus calculates each commitment R by applying the procedure described in
상기 증명자 장치는 상기 연결수단을 통해 제어자 장치에 상기 각 커미트먼트 R의 일부 또는 전부를 전송하기 위한 전송수단 - 이하, 증명자장치의 전송수단이라 함 - 을 갖는다.The prover device has transmission means for transmitting a part or all of each of the commitments R to the controller device via the connection means, hereinafter referred to as transmission means of the prover device.
ㆍ제2 단계: 챌린지 d의 행위Phase 2: Actions of Challenge d
상기 제어자 장치는 상기 각 커미트먼트 R의 일부 또는 전부를 수신한 후에 그 커미트먼트 R의 수와 동일한 수로 챌린지 d를 생성하기 위한 챌린지 생성수단을 포함하며, 또한, 상기 제어자 장치는 상기 연결수단을 통해 상기 증명자에 챌린지 d를 전송하기 위한 전송수단 - 이하, 제어자의 전송수단이라 함 - 을 포함한다. The controller device comprises challenge generating means for generating a challenge d with a number equal to the number of commitments R after receiving some or all of each of the commitments R, and wherein the controller device via the connection means And a transmission means for transmitting the challenge d to the prover, hereinafter referred to as a transmission means of the controller.
ㆍ제3 단계: 레스펀스 D의 행위Phase 3: Response to Response D
상기 증인장치의 챌린지 d 수신수단은 상기 상호연결수단을 통해 증명자 장치로부터 들어오는 각각의 챌린지 d를 수신하며, 상기 증인 장치의 레스펀스 D 계산수단은 상기 제1항에 기재된 절차를 적용하여 상기 챌린지 d로부터 상기 레스펀스 D를 계산한다.The challenge d receiving means of the attestation device receives each challenge d coming from the prover device through the interconnecting means, and the response D calculation means of the attestation device applies the procedure described in
ㆍ제4 단계: 검사 행위ㆍ 4th step: inspection
상기 증명자의 전송수단은 각 레스펀스 D를 상기 제어자에게 전송하고, The transmission means of the prover sends each response D to the controller,
또한, 상기 제어자 장치는In addition, the controller device
- 이하에서 제어자 장치의 계산수단이라 하는 계산 수단과,Calculation means hereinafter referred to as calculation means of the controller device;
- 이하에서 제어자 장치의 비교수단이라 하는 비교 수단을 포함하는 단계의 실행을 가능하게 한다. Enabling the execution of steps comprising comparison means, hereinafter referred to as comparison means of the controller device.
증명자가 각 커미트먼트 R의 일부를 전송하였을 경우.If the prover sent a portion of each commitment R.
상기 증명자의 전송수단이 각 커미트먼트 R의 일부를 전송하였다면, m개의 공개값 G1, G2,...,Gm 을 갖는 상기 제어자 장치의 계산수단은 각 챌린지 d와 각 레스펀스 D로부터 재구성된 커미트먼트 R'를 계산하고, 그 재구성된 커미트먼트 R'은 R' = G1 d1×G2 d2×...×Gm dm×Dvmod n 의 식, 또는 R' = Dv/G1 d1×G2 d2×...×Gm dm mod n의 식을 만족하며, 상기 제어자 장치의 비교수단은 이미 수신한 각 커미트먼트 R의 일부 또는 전부과 각 재구성된 커미트먼트 R'을 비교한다.If the prover's transmitting means has transmitted a portion of each commitment R, then the computing means of the controller device with m public values G 1 , G 2 ,..., G m is calculated from each challenge d and each response D. Calculate the reconstructed commitment R ', wherein the reconstructed commitment R' is the formula of R '= G 1 d1 × G 2 d2 × ... × G m dm × D v mod n, or R' = D v / G 1 d1 x G 2 d2 x ... x G m dm mod n, where the comparing means of the controller device compares each or all of the already received commitments R with each reconstructed commitment R '.
증명자가 각 커미트먼트 R의 전부를 전송하였을 경우. If the prover sent all of its commitments R.
상기 증명자의 전송수단이 각 커미트먼트 R의 전부를 전송하였다면, m개의 공개값 G1, G2,...,Gm 을 갖는 상기 제어자 장치의 계산수단 및 비교수단은 각 커미트먼트 R이 R = G1 d1×G2 d2×...×Gm dm×Dvmod n 의 식, 또는 R = Dv/G1 d1×G2 d2×...×Gm dm mod n의 식을 만족하는지를 확인한다.If the transmitting means of the prover has transmitted all of the commitments R, the calculating means and the comparing means of the controller apparatus having m public values G 1 , G 2 ,. Satisfies the formula G 1 d1 × G 2 d2 × ... × G m dm × D v mod n, or R = D v / G 1 d1 × G 2 d2 × ... × G m dm mod n Check if
메시지의 무결성을 검증하는 경우When verifying the integrity of a message
상기 제 1 실시예와 조합될 수 있는 제 2 실시예에서, 본 발명에 의한 시스템은 제어자 엔티티로 알려진 엔티티에게 증명자 엔티티라 하는 엔티티와 관련된 메시지 M의 무결성의 증인를 주도록 한다. 상기 시스템은 상호연결수단에 의해 상기 증인 장치와 서로 연결되고, 노매드 객체의 로직 마이크로 회로 형태, 예를 들면 마이크로 프로세서 기반 은행카드의 마이크로 프로세서 형태를 가질 수 있는, 상기 증명자 엔티티와 관련된 증명자장치, 및 특히, 터미널 또는 원격 서버의 형태이며, 전자적, 전자기적, 광학적 또는 음성학적으로 상기 증명자 장치와 연결하기 위한 연결수단, 특히, 데이터프로세싱 통신 네트워크와 같은 연결수단을 포함하는, 상기 제어자 엔티티와 관련된 제어자 장치를 포함하도록 이루어진다. In a second embodiment, which may be combined with the first embodiment, the system according to the invention allows an entity known as the controller entity to give witnesses of the integrity of the message M associated with the entity called the prover entity. The system is associated with the attestor device by interconnecting means, and may be in the form of a logic microcircuit of a nomad object, for example a microprocessor form of a microprocessor-based bank card. And, in particular in the form of a terminal or a remote server, the controller comprising connecting means for connecting the prover device electronically, electromagnetically, optically or phonetically, in particular connecting means such as a data processing communication network. It is made to include a controller device associated with the entity.
상기 시스템은 The system
ㆍ제1 단계: 커미트먼트 R의 행위Phase 1: Commitment of Commitment R
각 호출시에, 상기 증인 장치의 커미트먼트R 계산수단은 제1항에 기재된 절차를 적용하여 각 커미트먼트 R을 계산하고, 상기 증인 장치는 상기 상호연결수단을 통해 상기 증명자 장치에 상기 각 커미트먼트 R의 일부 또는 전부를 전송하기 위한 전송수단 - 이하, 증인장치의 전송수단이라 함 - 을 구비한다.At each call, the commitment R calculation means of the attestation device calculates each commitment R by applying the procedure described in
ㆍ제2 단계: 챌린지 d의 행위Phase 2: Actions of Challenge d
상기 증명자 장치는 그 인수가 메시지 M과, 상기 각 커미트먼트 R의 모두 또는 일부인 해싱 함수 h를 적용하여 적어도 하나의 토큰 T를 계산하기 위한 계산수단 - 이하, 증명자의 계산수단이라 함 - 을 포함하고, The prover device comprises calculation means for calculating at least one token T by applying a message M and a hashing function h, which is all or part of each commitment R, hereinafter referred to as the calculation means of the prover; ,
또한, 상기 증명자 장치는 상기 연결수단을 통해 상기 제어자 장치에 상기 각 토큰 T를 전송하기 위한 전송수단 - 이하, 상기 증명자 장치의 전송수단이라 함 - 을 포함하며, In addition, the prover device includes a transmission means for transmitting each token T to the controller device through the connection means, hereinafter referred to as a transmission means of the prover device,
나아가, 상기 제어자 장치는 상기 토큰 T를 수신한 후에 그 커미트먼트 R의 수와 동일한 수로 챌린지 d를 생성하기 위한 챌린지 생성수단을 포함하고, Furthermore, the controller device includes a challenge generating means for generating a challenge d with a number equal to the number of commitments R after receiving the token T,
또한, 상기 제어자 장치는 상기 연결수단을 통해 상기 증명자에 챌린지 d를 전송하기 위한 전송수단 - 이하, 제어자의 전송수단이라 함 - 을 포함한다. The controller device also includes a transmission means for transmitting the challenge d to the prover via the connection means, hereinafter referred to as the transmission means of the controller.
ㆍ제3 단계: 레스펀스 D의 행위Phase 3: Response to Response D
상기 증인장치의 챌린지 d 수신수단은 상기 상호연결수단을 통해 상기 증명자 장치로부터 들어오는 상기 각 챌린지 d를 수신하고, 상기 증인 장치의 레스펀스 D 계산수단은 상기 제1항에 기재된 절차를 적용하여 상기 챌린지 d로부터 상기 레스펀스 D를 계산한다.The challenge d receiving means of the attestation device receives each challenge d coming from the prover device through the interconnecting means, and the response D calculating means of the attestation device applies the procedure described in
ㆍ제4 단계: 검사 행위ㆍ 4th step: inspection
상기 증명자의 전송수단은 상기 각 레스펀스 D를 상기 제어자에게 전송한다.The transmitting means of the prover transmits each response D to the controller.
또한, 상기 제어자 장치는 우선, m개의 공개값 G1, G2,...,Gm 을 가지며, 상기 챌린지 d와 레스펀스 D 각각으로부터 각 커미트먼트 R'을 재구성하고, 그 재구성된 커미트먼트 R'이 R' = G1 d1×G2 d2×...×Gm dm×Dvmod n 의 식, 또는 R' = Dv/G1 d1×G2 d2...Gm dm mod n의 식을 만족하는지 계산한다.Further, the controller device first has m public values G 1 , G 2 ,..., G m , reconstructs each commitment R ′ from each of the challenge d and the response D, and the reconstructed commitment R Where R '= G 1 d1 × G 2 d2 × ... × G m dm × D v mod n, or R' = D v / G 1 d1 × G 2 d2 ... G m dm mod n Calculate whether the equation is satisfied.
이어, 그 인수가 메시지 M과 각 재구성된 커미트먼트 R'의 모두 또는 일부인, 해싱 함수 h를 적용하여, 적어도 하나의 토큰 T'을 계산하기 위한 계산 수단 - 이하, 제어자 장치의 계산수단이라 함 - 을 포함한다.Calculation means for calculating at least one token T 'by applying a hashing function h, whose argument is all or part of message M and each reconstructed commitment R', hereinafter referred to as calculation means of the controller device. It includes.
또한, 상기 제어자 장치는 상기 토큰 T'를 전송된 토큰 T와 비교하기 위한 비교 수단 - 이하, 제어자 장치의 비교수단이라 함 - 을 포함하는 단계를 실행하는 것을 가능하게 한다.
The controller device also makes it possible to carry out a step comprising comparing means for comparing the token T 'with the transmitted token T, hereinafter referred to as comparing means of the controller device.
메시지의 디지탈 서명 및 그 진정성의 검증Digital signature of the message and verification of its authenticity
상기 실시예들과 서로 또는 각각 조합될 수 있는 본 발명에 따른 제 3 실시예에서, 본 발명에 따른 시스템은 서명 엔티티(signing entity)라 하는 엔티티에 의해 메시지 M - 이하, 서명된 메시지라 함 - 의 디지털 서명을 검증한다.In a third embodiment according to the invention, which can be combined with each other or with the above embodiments, the system according to the invention is a message M-hereinafter referred to as a signed message-by an entity called a signing entity. To verify the digital signature.
상기 서명 메시지는, The signature message is,
- 메시지 M,-Message M,
- 챌린지 d 및/또는 커미트먼트 R,Challenge d and / or commitment R,
- 레스펀스 D 를 포함한다. -Include response D.
서명 작동Signature works
상기 시스템은 상호연결수단에 의해 상기 증인 장치와 서로 연결되고, 특히, 노매드 객체의 로직 마이크로 회로 형태, 예를 들면 마이크로 프로세서 기반 은행카드의 마이크로 프로세서 형태일 수 있는, 상기 서명 엔티티와 관련된 서명 장치(signing device)를 포함하도록 이루어진다.The system is interconnected with the attestation device by means of interconnecting means, in particular a signature device associated with the signature entity, which may be in the form of a logic microcircuit of a nomad object, for example a microprocessor of a microprocessor-based bank card. signing device).
상기 시스템은 아래의 단계들을 실행하는데 사용된다. The system is used to perform the following steps.
ㆍ제1 단계: 커미트먼트 R의 행위Phase 1: Commitment of Commitment R
각각의 호출시에, 상기 증인 장치의 커미트먼트 R 계산수단은 상기 제1항에 기재된 절차를 적용하여 각 커미트먼트 R을 계산하고, 상기 증인 장치는 상기 상호연결수단을 통해 증명자 장치에 상기 각 커미트먼트 R의 일부 또는 전부를 전송하기 위한 전송수단 - 이하, 증인장치의 전송수단이라 함 - 을 갖는다.At each call, the commitment R calculation means of the attestation device calculates each commitment R by applying the procedure described in
ㆍ제2 단계: 챌린지 d의 행위Phase 2: Actions of Challenge d
상기 서명 장치는, 그 인수가 상기 메시지 M과 각 커미트먼트 R의 모두 또는 일부인 해싱 함수 h를 적용하여 이진 트레인을 계산하고, 그 이진 트레인으로부터 커미트먼트 R의 수와 동일한 수로 챌린지 d를 추출하기 위한 계산수단 - 이하, 서명 장치의 계산수단이라 함 - 을 포함한다. The signature apparatus calculates a binary train by applying a hashing function h whose argument is all or part of the message M and each commitment R, and calculating means for extracting the challenge d from the binary train by the same number as the number of commitment Rs. Hereinafter referred to as the calculation means of the signature device.
ㆍ제3 단계: 레스펀스 D의 행위Phase 3: Response to Response D
상기 증인장치의 챌린지 d 수신수단은 상기 상호연결수단을 통해 증명자 장치로부터 들어오는 상기 각 챌린지 d를 수신하고, 상기 증인 장치의 레스펀스 D 계산수단은 상기 제1항에 기재된 절차를 적용하여 상기 챌린지 d로부터 상기 레스펀스 D를 계산하며, 상기 증인 장치는 상기 상호연결수단을 통해 상기 서명장치에 상기 레스펀스 D를 전송하기 위해 전송수단을 포함한다.The challenge d receiving means of the attestation device receives each challenge d coming from the prover device through the interconnecting means, and the response D calculating means of the attestation device applies the procedure described in
검사 작동Inspection works
상기 시스템은 제어자로 알려진 엔티티가 상기 서명된 메시지를 검사함으로써 상기 메시지 M의 진정성을 검증하게 된다. The system verifies the authenticity of the message M by an entity known as a controller checking the signed message.
상기 시스템은 특히, 터미널 또는 원격 서버의 형태이며, 전자적, 전자기적, 광학적 또는 음성학적으로 상기 서명 장치와 연결하기 위한 연결수단, 특히, 데이터프로세싱 통신 네트워크와 같은 연결수단을 구비한, 상기 제어자 엔티티와 관련된 제어자 장치를 포함한다.The system is in the form of a terminal or a remote server, in particular, the controller having connection means for connecting the signature device electronically, electromagnetically, optically or phonetically, in particular a connection such as a data processing communication network. It includes a controller device associated with the entity.
상기 서명 엔티티와 관련된 서명 장치는, 상기 연결수단을 통해 서명된 메시지를 상기 제어자 장치에 전송하기 위한 전송수단 - 이하, 서명 장치의 전송수단이라 함 - 을 포함한다.The signature device associated with the signature entity includes transmission means for transmitting a message signed through the connection means to the controller device, hereinafter referred to as transmission means of the signature device.
이러한 방식으로, 상기 제어자 장치는In this way, the controller device
- 메시지 M,-Message M,
- 챌린지 d 및/또는 커미트먼트 R,Challenge d and / or commitment R,
- 레스펀스 D 를 포함하는 서명된 메시지를 갖게 된다. You have a signed message that contains Response D.
상기 제어자 장치는,The controller device,
계산 수단 - 이하, 제어자 장치의 계산수단이라 함 - 과,Calculating means, hereinafter referred to as calculating means of the controller device;
비교 수단 - 이하, 제어자 장치의 비교수단이라 함 - 을 포함한다.
Comparison means, hereinafter referred to as comparison means of the controller device.
제어자 장치가 커미트먼트 R, 챌린지 d, 레스펀스 D를 가질 경우 If the controller device has commitment R, challenge d, response D
상기 제어자 장치가 커미트먼트 R, 챌린지 d 및 레스펀스 D를 갖는 경우, 상기 제어자 장치의 계산수단 및 비교수단은 커미트먼트 R, 챌린지 d, 레스펀스 D가 R = G1 d1×G2 d2×...×Gm dm×Dvmod n 의 식, 또는 R = Dv/G1 d1×G2 d2×...×Gm dm mod n의 관계식을 만족하는지를 확인한다. When the controller device has a commitment R, a challenge d and a response D, the calculation means and the comparison means of the controller device have a commitment R, a challenge d and a response D equal to R = G 1 d1 × G 2 d2 ×. Verify that the equation of G m dm × D v mod n or R = D v / G 1 d1 × G 2 d2 × ... × G m dm mod n is satisfied.
이어, 상기 제어자 장치의 계산수단 및 비교수단은 메시지 M, 챌린지 d 및 커미트먼트 R이 해싱함수 d = h(message, R)을 만족하는지를 확인한다.
Subsequently, the calculating means and the comparing means of the controller device check whether the message M, the challenge d, and the commitment R satisfy the hashing function d = h (message, R).
제어자 장치가 챌린지 d와 레스펀스 D를 가질 경우When controller device has challenge d and response D
상기 제어자 장치가 챌린지 d, 레스펀스 D를 갖는 경우, 상기 제어자의 계산수단은 각 챌린지 d와 레스펀스 D에 기초하여, R' = G1 d1×G2 d2×...×Gm dm×Dvmod n 의 식,또는 R' = Dv/G1 d1×G2 d2×...×Gm dm mod n의 식을 만족하는 커미트먼트 R'을 재구성한다.When the controller device has a challenge d, a response D, the controller's calculation means is based on each challenge d and the response D, where R '= G 1 d1 × G 2 d2 × ... × G m dm × D v mod n, or R '= D v / G 1 d1 × G 2 d2 × ... × G m dm Reconstruct the commitment R 'that satisfies the expression of mod n.
이어, 상기 제어자 장치의 계산수단 및 비교수단은 상기 메시지 M 및 챌린지 d가 해싱함수 d = h(message, R')을 만족하는지를 확인한다.
Subsequently, the calculating means and the comparing means of the controller device check whether the message M and the challenge d satisfy a hashing function d = h (message, R ').
ㆍ 제어자 장치가 커미트먼트 R와 레스펀스 D를 가질 경우The controller device has a commitment R and a response D.
상기 제어자 장치가 커미트먼트 R와 레스펀스 D를 갖는 경우, 상기 제어자 장치의 계산수단은 해싱함수 d' = h(message, R)을 적용하여 d'를 계산한다.When the controller device has a commitment R and a response D, the calculating means of the controller device calculates d 'by applying a hashing function d' = h (message, R).
이어, 상기 제어자 장치의 계산수단 및 비교수단은 싱기 커미트먼트 R과 상기 챌린지 d' 및 상기 레스펀스 D가 R = G1 d'1×G2 d'2×...×Gm d'm×Dvmod n의 식, 또는 R = Dv/G1 d'1×G2 d'2×...×Gm d'm mod n의 식을 만족하는지를 확인한다.Subsequently, the calculation means and the comparison means of the controller apparatus include a synchronizing commitment R and the challenge d 'and the response D, wherein R = G 1 d'1 × G 2 d'2 × ... × G m d'm. Verify that the expression x D v mod n or R = D v / G 1 d'1 x G 2 d'2 x ... x G m d'm mod n is satisfied.
단말기 장치Terminal device
본 발명은 또한 엔티티와 연관된 단말기 장치에 관한 것이다. The invention also relates to a terminal device associated with an entity.
상기 단말기 장치는 특히, 노매드 객체에서 예를 들어 마이크로 프로세서 기반 은행카드의 형태이다. 단말기 장치는 제어자 서버에게 The terminal device is, in particular, in the form of a microprocessor based bank card, for example in a nomad object. The terminal device tells the controller server
- 엔티티의 진정성 및/또는 The authenticity of the entity and / or
- 상기 엔티티와 관련된 메시지 M의 무결성을 검증받기 위하여 고안된다. Designed to verify the integrity of message M associated with the entity.
이러한 검증은 This verification is
- m개 쌍의 비밀값 Q1,Q2,...,Qm 및 공개값 G1,G2,...,Gm (m은 1 이상임),m pairs of secret values Q 1 , Q 2 , ..., Q m and the public values G 1 , G 2 , ..., G m (m is 1 or more),
- f개의 소인수 p1,p2,...,pf의 곱에 의해 구성된 공개 모듈 n(f는 2 이상임)인 파라미터와 그 파라미터의 도함수의 일부 또는 전부에 의해 성립된다. -is established by a parameter of open module n (f is greater than or equal to 2) composed of the product of f prime factors p 1 , p 2 , ..., p f and some or all of its derivatives.
상기 모듈, 상기 비밀값 및 상기 공개값은 Gi×Qi v = 1 mod n 또는 Gi = Qi v mod n 의 관계식에 의해 관련되고, 여기서 v는 v=2k 형식의 공개지수가 되며, k는 1보다 큰 보안 파라미터이다. The module, the secret value and the published value are G i × Q i v = 1 mod n or G i = Q i v mod n, where v is a public index of the form v = 2 k , where k is a security parameter greater than one.
상기 m개의 공개값 Gi는 f개의 소인수 p1,p2,...,pf보다 작은 기수 g1,g2,...,gm의 제곱 gi 2이며, 상기 소인수 p1,p2,...,pf 및/또는 상기 m개의 기수(base number) g1,g2,...,gm는 아래의 조건들을 만족하도록 곱해진다. The m public values G i is f of prime factors p 1, p 2, ..., smaller than radix p f g 1, g the power of 2, ..., g m g i 2, the prime factor p 1, p 2 , ..., p f and / or the m base numbers g 1 , g 2 , ..., g m are multiplied to satisfy the following conditions.
제1조건First condition
xv = gi 2 mod n (1) x v = g i 2 mod n (1)
상기 각각의 식들은 모듈로 n의 정수 환에서 x로 풀릴 수 있다.Each of the above expressions can be solved with x in the integer ring of modulo n.
제2조건Second condition
만약, Gi= Qi v mod n 이면, Qi 제곱 모듈로 n을 k-1회 취함으로써 얻어지는 m 개의 qi 중에서, 그들중의 하나는 ±gi와 같지않고(즉, 단순형이 아니다.)If G i = Q i v mod n, one of them is not equal to ± g i (ie, not simple) out of m q i obtained by taking n−1 with Q i squared modulus. )
만약, GiQi v = 1 mod n 이면, Qi 모듈로 n 의 역(inverse) 제곱 모듈로 n을 k-1회 취함으로써 얻어지는 m 개의 qi 중에서, 그들중의 하나는 ±gi와 같지않다.(즉, 단순형이 아니다),If G i Q i v = 1 mod n, then among m m q i obtained by taking n inverse squared modulo n of Q i modulo, one of them is ± g i and Not equal (ie not simple),
제3조건Third condition
x2 = gi mod n (2) x 2 = g i mod n (2)
x2 = - gi mod n (3)x 2 =-g i mod n (3)
적어도 상기 2m 식들중의 하나는 모듈로 n의 정수 환에서 x로 풀릴수 있다.At least one of the 2m equations can be solved by x in an integer ring of modulo n.
상기 단말기 장치는 f개 소인수 pi 및/또는 m개 기수 gi 및/또는 상기 소인수의 차이니스 잉여값의 파라미터 및/또는 공개 모듈러스 n 및/또는 상기 m개의 비밀값 Qi 및/또는 그 비밀값 Qi과 그 공개지수v의 f×m 개의 요소(component) Qi,j (Qi,j = Qi mod pj )를 포함하는 메모리 영역을 갖는 증인 장치를 포함한다. The terminal device may include a parameter of f prime factors p i and / or m radix g i and / or the difference surplus value of the prime factors and / or the public modulus n and / or the m secret values Q i and / or its secrets. A witness device having a memory area comprising a value Q i and f × m components Q i, j (Q i, j = Q i mod p j ) of its public index v.
또한, 상기 증인 장치는, 랜덤값 생성 수단 - 이하, 증인 장치의 랜덤값을 생성하기 위한 수단이라 함 - 과, 계산수단 - 이하, 증인 장치의 커미트먼트 R을 계산하기 위한 수단이라 함- 을 포함하고, 상기 계산수단은 정수 모듈로n의 링에서 커미트먼트 R을 계산한다.The attestation apparatus further includes random value generating means, hereinafter referred to as means for generating a random value of the witness apparatus, and calculation means hereinafter, means for calculating the commitment R of the attestation apparatus. The calculation means calculates a commitment R in a ring of integer modulo n.
상기 각 커미트먼트 R은, Each commitment R is
r이 0 < r < n 이되는 임의값인 경우 R = rv mod n 또는 R is any value where r is 0 <r <n = r v mod n or
ri은 0 < ri < pi이 되는, 소수 Pi 와 관련된 랜덤값이고 각 ri는 랜덤값 생성 수단에 의해 생성되는 랜덤값의 콜렉션 {r1,r2,...,rf}에 속하는 경우 Ri = ri v mod pi의 연산을 실행하고, 이어 차이니스 잉여법을 적용한다. r i is a random value associated with the prime number P i , where 0 <r i <p i and each r i is a collection of random values produced by the random value generating means {r 1 , r 2 , ..., r f } If it belongs to R i = r i v Perform the operation of mod p i and then apply the Chinese difference surplus method.
또한, 상기 증인 장치는,In addition, the witness apparatus,
하나 이상의 챌린지 d을 수신하고, 상기 각 챌린지 d는 m개의 정수 di(초기 챌린지이라고도 함)를 포함하는 수신수단 - 이하, 증인 장치의 챌린지 d 를 수신하기 위한 수단이라 함 - 과,Receiving means comprising at least one challenge d, each challenge d comprising m integers d i (also called initial challenges), hereinafter referred to as means for receiving a challenge d of the witness device;
각 챌린지 d에 기초하여 레스펀스 D를, Response D, based on each challenge d,
D = r×Q1 d1×Q2 d2×...×Qm dm mod n 의 연산을 실행하거나,D = r × Q 1 d1 × Q 2 d2 × ... × Q m dm perform a mod n operation, or
D = r×Qi,1 d1×Qi,2 d2×...×Qi,m dm mod pi 의 연산을 실행하고, 이어, 차이니스 잉여법을 적용함으로써 계산하기 위한 계산 수단 - 이하, 증인 장치의 레스펀스 D를 계산하기 위한 수단이라 함 - 을 포함한다. D = r × Q i, 1 d1 × Q i, 2 d2 × ... × Q i, m dm calculation means for executing the calculation of mod p i and then applying the difference surplus method, hereinafter referred to as means for calculating the response D of the witness apparatus.
상기 증인 장치는 상기 하나 이상의 커미트먼트 R과 하나 이상의 레스펀스 D를 전송하기 위한 전송수단을 포함한다. 상기 레스펀스 D는 각 커미트먼트 R과 챌린지 d의 수와 동일한 수로 존재하고, 상기 R,d,D의 각 그룹은 {R,d,D}로 참조된 트리플릿을 형성한다. The attestation device comprises transmission means for transmitting the one or more commitments R and one or more response Ds. The response D is present in the same number as each commitment R and the challenge d, and each group of R, d, D forms a triplet referred to as {R, d, D}.
엔티티의 진정성의 검증의 경우For verification of the authenticity of an entity
제 1 실시예에서, 본 발명에 의한 상기 단말기 장치는 증명자라 하는 엔티티의 진정성을 제어자라 하는 엔티티에게 검증하게 된다. In the first embodiment, the terminal device according to the present invention verifies the authenticity of an entity called an authenticator to an entity called a controller.
상기 단말기 장치는 상기 증명자 엔티티와 관련되고, 상호 연결수단에 의해 상기 증인 장치와 서로 연결된다. 특히, 노매드 객체에서 로직 마이크로 회로의 형태, 예를 들면 마이크로 프로세서 기반 은행카드의 마이크로 프로세서의 형태일 수 있는 증명자 장치를 포함한다. The terminal device is associated with the attestor entity and is interconnected with the attestation device by interconnecting means. In particular, it includes a prover device that can be in the form of a logic microcircuit in a nomad object, for example in the form of a microprocessor of a microprocessor-based bank card.
또한, 상기 증명자 장치는, 전자적, 전자기적, 광학적 또는 음성학적으로 상기 제어자 장치와 연결하기 위한 연결수단, 특히, 데이터프로세싱 통신 네트워크와 같은 연결수단을 포함하며, 특히, 상기 제어자 장치는 단말기 또는 원격 서버의 형태일 수 있다. The prover device also comprises connecting means for connecting the controller device electronically, electromagnetically, optically or phonetically, in particular connection means such as a data processing communication network. It may be in the form of a terminal or a remote server.
상기 단말기 장치는 아래의 단계들을 실행하는데 사용된다. , The terminal device is used to perform the following steps. ,
제1 단계: 커미트먼트 R의 행위Step 1: Action of Commitment R
각각의 호출시에, 증인 장치의 커미트먼트 R 계산수단은 상기 제1항에 기재된 절차를 적용하여 각각의 커미트먼트 R을 계산하고, 상기 증인 장치는 상기 상호연결수단을 통해 증명자 장치에 상기 각 커미트먼트 R의 일부 또는 전부를 전송하기 위한 전송수단 - 이하, 증인장치의 전송수단이라 함 - 을 갖는다.At each call, the commitment R calculation means of the attestation device calculates each commitment R by applying the procedure described in
또한, 상기 증명자 장치는 상기 연결수단을 통해 제어자 장치에 상기 각 커미트먼트 R의 일부 또는 전부를 다시 전송하기 위한 전송수단 - 이하, 증명자 장치의 전송수단이라 함 - 을 갖는다.Further, the prover device has a transmission means for retransmitting part or all of each of the commitments R to the controller device via the connection means, hereinafter referred to as transmission means of the prover device.
ㆍ제2 및 제3 단계: 챌린지 d의 행위, 레스펀스 D의 행위. Second and Third Steps: Challenge d, Response D's Action.
상기 증인 장치의 챌린지 d 수신수단은 상기 제어자 장치와 상기 증명자 장치 사이의 연결수단과, 상기 증명자 장치와 상기 증인 장치 사이의 상호연결수단을 통해 상기 증명자 장치로부터 들어오는 각각의 챌린지 d를 수신하고, 상기 증인 장치의 레스펀스 D 계산수단은 상기 제1항에 기재된 절차를 적용하여 상기 챌린지 d로부터 상기 레스펀스 D를 계산한다.The challenge d receiving means of the attestor device receives each challenge d coming from the attestor device through a connecting means between the controller device and the prover device and an interconnecting means between the prover device and the attestation device. Upon receipt, the response D calculation means of the attestation device calculates the response D from the challenge d by applying the procedure described in
ㆍ제4 단계: 검사 행위ㆍ 4th step: inspection
상기 증명자의 전송수단은 상기 각 레스펀스 D를 검사를 실행하는 상기 제어자에 전송한다.
The sending means of the prover sends each response D to the controller executing the inspection.
메시지의 무결성의 검증의 경우For the verification of the integrity of the message
제 1 실시예와 조합될 수 있는 제 2 실시예에서, 상기 단말기 장치는 제어자 엔티티로 알려진 엔티티에게 증명자 엔티티라 하는 엔티티와 관련된 메시지 M의 무결성의 입증을 받게 된다. In a second embodiment, which can be combined with the first embodiment, the terminal device is subject to an entity known as the controller entity to the verification of the integrity of the message M associated with the entity called the prover entity.
상기 단말기 장치는 상기 증명자 엔티티와 관련된 증명자 장치를 포함하도록 구성되며, 상기 증명자 장치는 상호연결수단에 의해 상기 증인 장치와 서로 연결되며, 상기 증명자 장치는 특히, 노매드 객체에서 로직 마이크로 회로의 형태, 예를 들면 마이크로 프로세서 기반 은행카드의 마이크로 프로세서 형태일 수 있다. The terminal device is configured to include an authenticator device associated with the attestor entity, wherein the prover device is connected to the attestor device by interconnection means, the prover device being in particular a logic microcircuit in the nomad object. It may be in the form of, for example, a microprocessor of a microprocessor-based bank card.
상기 증명자 장치는 전자적, 전자기적, 광학적 또는 음성학적으로 상기 제어자 엔티티와 관련된 제어자 장치와 연결하기 위한 연결수단, 특히, 데이터프로세싱 통신 네트워크와 같은 연결수단을 포함하고, 특히, 상기 제어자 장치는 터미널 또는 원격 서버 형태일 수 있다. The prover device comprises connecting means for connecting electronically, electromagnetically, optically or phonetically with the controller device associated with the controller entity, in particular connecting means such as a data processing communication network, in particular the controller The device may be in the form of a terminal or a remote server.
상기 단말기 장치는 아래의 단계들을 실행하는데 사용된다. The terminal device is used to perform the following steps.
ㆍ제1 단계: 커미트먼트 R의 행위Phase 1: Commitment of Commitment R
각 호출시에, 상기 증인 장치의 커미트먼트R 계산수단은 제1항에 기재된 절차를 적용하여 각 커미트먼트 R을 계산하고, 상기 증인 장치는 상기 상호연결수단을 통해 상기 증명자 장치에 상기 커미트먼트 R의 일부 또는 전부를 전송하기 위한 전송수단 - 이하, 증인장치의 전송수단이라 함 - 을 갖는다. At each call, the commitment R calculation means of the attestation device calculates each commitment R by applying the procedure described in
ㆍ제2 및 제3 단계: 챌린지 d의 행위, 레스펀스 D의 행위2nd and 3rd stage: challenge d action, response D action
상기 증명자 장치는 그 인수가 상기 메시지 M과, 각 커미트먼트 R의 모두 또는 일부인 해싱 함수 h를 적용하여 적어도 하나의 토큰 T를 계산하기 위한 계산수단 - 이하, 증명자의 계산수단이라 함 - 을 포함한다. 또한, 상기 증명자 장치는 상기 연결수단을 통해 상기 제어자 장치에 상기 각 토큰 T를 전송하기 위한 전송수단 - 이하, 상기 증명자 장치의 전송수단이라 함 - 을 구비한다. The prover device includes calculation means for calculating at least one token T by applying a hashing function h whose argument is the message M and all or part of each commitment R, hereinafter referred to as the calculation means of the prover. . Further, the prover device has a transmission means for transmitting each token T to the controller device through the connection means, hereinafter referred to as a transmission means of the prover device.
상기 제어자 장치는 상기 토큰 T를 수신한 후에 상기 커미트먼트 R의 수와 동일한 수로 챌린지 d를 생성한다. The controller device generates a challenge d with a number equal to the number of commitments R after receiving the token T.
상기 증인장치의 챌린지 d 수신수단은 상기 제어자 장치와 상기 증명자 장치사이의 연결수단과 상기 증명자 장치와 상기 증인 장치 사이의 상호연결수단을 통해 상기 제어자 장치로부터 들어오는 상기 각 챌린지 d를 수신한다. The challenge d receiving means of the at least one witness device receives each challenge d coming from the controller device through a connecting means between the controller device and the prover device and an interconnecting means between the prover device and the attestation device. do.
상기 증인 장치의 레스펀스 D 계산수단은 상기 제1항에 기재된 절차를 적용하여 상기 챌린지 d로부터 상기 레스펀스 D를 계산한다. The response D calculation means of the witness apparatus calculates the response D from the challenge d by applying the procedure described in
ㆍ제4 단계: 검사 행위ㆍ 4th step: inspection
상기 증명자의 전송수단은 검사를 실행하는, 상기 제어자 장치에 상기 각 레스펀스 D를 전송한다.
The sending means of the prover sends each response D to the controller device, which executes the inspection.
메시지의 디지탈 서명 및 그의 진정성의 검증Digital signature of the message and verification of its authenticity
상기 두개의 실시예의 어느 하나와 조합될 수 있는 제 3 실시예에서, 상기 단말기 장치는 서명 엔티티라 하는 엔티티에 의해 메시지 M - 이하, 서명된 메시지라 함 - 의 디지털 서명을 검증하게 된다. In a third embodiment, which can be combined with any of the two embodiments, the terminal device verifies the digital signature of the message M, hereafter referred to as a signed message, by an entity called a signing entity.
상기 서명 메시지는,The signature message is,
- 메시지 M,-Message M,
- 챌린지 d 및/또는 커미트먼트 R,Challenge d and / or commitment R,
- 레스펀스 D 를 포함한다. -Include response D.
상기 단말기 장치는 상기 서명자 엔티티와 관련된 서명 장치를 포함하도록 구성된다. 상기 서명 장치는 상호연결수단에 의해 상기 증인 장치와 서로 연결되고, 또한, 특히, 노매드 객체에서 로직 마이크로 회로의 형태, 예를 들면 마이크로 프로세서 기반 은행카드의 마이크로 프로세서 형태일 수 있다.The terminal device is configured to include a signature device associated with the signer entity. The signature device is interconnected with the attestation device by means of interconnection means and may also be in the form of a logic micro circuit, in particular in a nomad object, for example in the form of a microprocessor of a microprocessor based bank card.
상기 서명 장치는 전자적, 전자기적, 광학적 또는 음성학적으로 상기 제어자 엔티티와 관련된 제어자 장치와 연결하기 위한 연결수단, 특히, 데이터프로세싱 통신 네트워크와 같은 연결수단을 포함하며, 상기 제어자 장치는 터미널 또는 원격 서버의 형태이다. The signature device comprises connecting means for connecting electronically, electromagnetically, optically or phonetically with the controller device associated with the controller entity, in particular connection means such as a data processing communication network, the controller device being a terminal. Or in the form of a remote server.
서명 작동Signature works
상기 단말기 장치는 아래의 단계들을 실행하는데 사용된다. The terminal device is used to perform the following steps.
제1 단계: 커미트먼트 R의 행위Step 1: Action of Commitment R
각각의 호출시에, 상기 증인 장치의 커미트먼트 R 계산수단은 상기 제1항에 기재된 절차를 적용하여 상기 각 커미트먼트 R을 계산한다. 상기 증인 장치는 상기 상호연결수단을 통해 상기 증명자 장치에 상기 각 커미트먼트 R의 일부 또는 전부를 전송하기 위한 전송수단 - 이하, 증인장치의 전송수단이라 함 - 을 갖는다. At each call, the commitment R calculation means of the attestation device calculates each of the commitments R by applying the procedure described in
ㆍ제2 단계: 챌린지 d의 행위Phase 2: Actions of Challenge d
상기 서명 장치는, 그 인수가 상기 메시지 M과 각 커미트먼트 R의 모두 또는 일부인 해싱 함수 h를 적용하여 이진 트레인을 계산하고, 그 이진 트레인으로부터 커미트먼트 R의 수와 동일한 수로 챌린지 d를 추출하기 위한 계산수단 - 이하, 서명 장치의 계산수단이라 함 - 을 포함한다. The signature apparatus calculates a binary train by applying a hashing function h whose argument is all or part of the message M and each commitment R, and calculating means for extracting the challenge d from the binary train by the same number as the number of commitment Rs. Hereinafter referred to as the calculation means of the signature device.
ㆍ제3 단계: 레스펀스 D의 행위Phase 3: Response to Response D
상기 증인 장치의 챌린지 d 수신수단은 상기 상호연결수단을 통해 상기 서명 장치로부터 들어오는 각각의 챌린지 d를 수신한다. 상기 증인 장치의 레스펀스 D 계산수단은 상기 제1항에 기재된 절차를 적용하여 상기 챌린지 d로부터 상기 레스펀스 D를 계산한다. 상기 증인 장치는 상기 상호연결수단을 통해 레스펀스 D를 상기 서명 장치로 전송하기 위한 전송수단 - 이하, 증인 장치의 전송수단이라 함 - 을 포함한다. The challenge d receiving means of the attestation device receives each challenge d coming from the signature device via the interconnecting means. The response D calculation means of the witness apparatus calculates the response D from the challenge d by applying the procedure described in
제어자 장치Controller device
본 발명은 또한 제어자 장치에 관한 것이다. 상기 제어자 장치는 특히, 제어자 엔티티와 관련된 단말기 또는 원격 서버의 형태를 가진다. 상기 제어자 장치는 The invention also relates to a controller device. The controller device in particular takes the form of a terminal or a remote server associated with the controller entity. The controller device
- 엔티티의 진정성 및/또는The authenticity of the entity and / or
- 상기 엔티티와 관련된 메시지 M의 무결성을 검증하게 된다. Verify the integrity of message M associated with the entity.
이러한 검증은 아래의 파라미터와 그 파라미터의 도함수의 일부 또는 전부에 의해 성립된다. This verification is established by some or all of the following parameters and their derivatives.
- m개 쌍의 공개값 G1,G2,...,Gm (m은 1 이상임),m pairs of public values G 1 , G 2 , ..., G m (m is 1 or more),
- f개의 소인수 p1,p2,...,pf의 곱에 의해 구성되고, 제어자 장치 및 그와 관련된 제어자 엔티티에 알려지지않은 공개 모듈러스 n(f는 2 이상임)a public modulus n consisting of the product of f prime factors p 1 , p 2 , ..., p f , unknown to the controller device and its associated controller entity, where f is 2 or more
상기 모듈러스, 상기 비밀값 및 상기 공개값은 Gi×Qi v = 1 mod n 또는 Gi = Qi v mod n 의 관계식에 의해 관련되고, 여기서 v는 v=2k 형식의 공개지수가 되며, k는 1보다 큰 보안 파라미터이다. The modulus, the secret value and the published value are G i × Q i v = 1 mod n or G i = Q i v mod n, where v is a public index of the form v = 2 k , where k is a security parameter greater than one.
상기 m개의 공개값 Gi는 f개의 소인수 p1,p2,...,pf보다 작은 기수 g1,g2,...,gm의 제곱 gi 2이며, 상기 소인수 p1,p2,...,pf 및/또는 상기 m개의 기수(base number) g1,g2,...,gm는 아래의 조건들을 만족하도록 곱해진다. The m public values G i is f of prime factors p 1, p 2, ..., smaller than radix p f g 1, g the power of 2, ..., g m g i 2, the prime factor p 1, p 2 , ..., p f and / or the m base numbers g 1 , g 2 , ..., g m are multiplied to satisfy the following conditions.
제1조건First condition
xv = gi 2 mod n (1) x v = g i 2 mod n (1)
상기 각각의 식들은 모듈로 n의 정수 환에서 x로 풀릴 수 있다.Each of the above expressions can be solved with x in the integer ring of modulo n.
제2조건Second condition
만약, Gi= Qi v mod n 이면, Qi 제곱 모듈로 n을 k-1회 취함으로써 얻어지는 m 개의 qi 중에서, 그들중의 하나는 ±gi와 같지않고(즉, 단순형이 아니다.)If G i = Q i v mod n, one of them is not equal to ± g i (ie, not simple) out of m q i obtained by taking n−1 with Q i squared modulus. )
만약, GiQi v = 1 mod n 이면, Qi 모듈로 n 의 역(inverse) 제곱 모듈로 n을 k-1회 취함으로써 얻어지는 m 개의 qi 중에서, 그들중의 하나는 ±gi와 같지않다.(즉, 단순형이 아니다)If G i Q i v = 1 mod n, then among m m q i obtained by taking n inverse squared modulo n of Q i modulo, one of them is ± g i and Not equal (i.e. not simple)
제3조건Third condition
x2 = gi mod n (2) x 2 = g i mod n (2)
x2 = - gi mod n (3)x 2 =-g i mod n (3)
적어도 상기 2m 식들중의 하나는 모듈로 n의 정수 환에서 x로 풀릴수 있다.At least one of the 2m equations can be solved by x in an integer ring of modulo n.
엔티티의 진정성을 검증하는 경우When verifying the authenticity of an entity
제 1 실시예에서, 본 발명에 따른 상기 제어자 장치는 제어자라하는 엔티티와 증명자라 하는 엔티티의 진정성을 검증하게 된다. In a first embodiment, the controller device according to the present invention verifies the authenticity of an entity called a controller and an entity called an authenticator.
상기 제어자 장치는 전자적, 전자기적, 광학적 또는 음성학적으로 상기 증명자 엔티티와 관련된 증명자 장치와 연결하기 위한 연결수단, 특히, 데이터프로세싱 통신 네트워크와 같은 연결수단을 포함한다. The controller device comprises connecting means for connecting electronically, electromagnetically, optically or phonetically with the prover device associated with the prover entity, in particular connection means such as a data processing communication network.
상기 제어자 장치는 아래의 단계들을 실행하는데 사용된다. The controller device is used to perform the following steps.
제1 및 제2 단계: 커미트먼트 R의 행위, 챌린지d의 행위
상기 제어자 장치는 또한 상기 연결수단을 통해 상기 증명자 장치로부터 들어오는 커미트먼트 R의 일부 또는 전부를 수신하기 위한 수신수단을 갖는다. The controller device also has receiving means for receiving some or all of the commitment R coming from the prover device via the connecting means.
상기 제어자 장치는 상기 각 증명자 R의 일부 또는 전부를 수신한 후에 커미트먼트 R의 수와 동일한 수로 챌린지 d를 생성하기 위한 챌린지 생성수단을 포함하며, 상기 각 챌린지 d는 m개의, 초기 챌린지라 하는 정수 di를 포함한다. The controller device comprises challenge generating means for generating a challenge d with a number equal to the number of commitments R after receiving some or all of each prover R, wherein each challenge d is referred to as m initial challenges. Contains the integer d i .
또한, 상기 제어자 장치는 상기 연결수단을 통해 상기 증명자에 챌린지 d를 전송하기 위한 전송수단 - 이하, 제어자의 전송수단이라 함 - 을 포함한다. The controller device also includes a transmission means for transmitting the challenge d to the prover via the connection means, hereinafter referred to as the transmission means of the controller.
ㆍ제3 및 제4 단계: 레스펀스 D의 행위, 검사행위ㆍ 3rd and 4th Stage: Response and Response of Response D
상기 제어자 장치는 The controller device
상기 상호연결수단을 통해 상기 증명자 장치로부터 들어오는 레스펀스 D를 수신하기 위한 수신수단과, Receiving means for receiving a response D from the prover device via the interconnecting means;
계산 수단 - 이하 제어자 장치의 계산수단이라 함 - 과,Calculating means, hereinafter referred to as calculating means of the controller device;
비교 수단 - 이하 제어자 장치의 비교수단이라 함 - 을 포함한다.
Comparison means, hereinafter referred to as comparison means of the controller device.
제 1 케이스 :First case: 증명자가 각 커미트먼트 R의 일부를 전송하였을 경우 If the prover sent a portion of each commitment R
상기 증명자의 전송수단이 각 커미트먼트 R의 일부를 전송하였다면, m개의 공개값 G1, G2,...,Gm 을 갖는 상기 제어자 장치의 계산수단은 상기 각 챌린지 d와 각 레스펀스 D로부터 재구성된 커미트먼트 R'를 계산하고, 그 재구성된 커미트먼트 R'는 If the prover's transmitting means has transmitted a portion of each commitment R, then the computing means of the controller device having m public values G 1 , G 2 ,..., G m is calculated for each challenge d and each response D. Calculate the reconstructed commitment R 'from the reconstructed commitment R'
R' = G1 d1×G2 d2×...×Gm dm ×Dvmod n 의 식, R '= G 1 d1 × G 2 d2 × ... × G m dm XD v mod n,
또는 R' = Dv/G1 d1×G2 d2×...×Gm dm mod n의 식을 만족하게 된다. Or R '= D v / G 1 d1 × G 2 d2 × ... × G m dm The expression of mod n is satisfied.
상기 제어자 장치의 비교수단은 상기 수신된 각 커미트먼트 R의 일부 또는 전부과 각 재구성된 커미트먼트 R'을 비교한다. The comparing means of the controller device compares each or all of the received commitments R with each reconstructed commitment R '.
제 2 케이스 : 증명자가 각 커미트먼트 R의 전부를 전송하였을 경우Case 2: if the prover sent all of each commitment R
상기 증명자의 전송수단이 각 커미트먼트 R의 전부를 전송하였다면, m개의 공개값 G1, G2,...,Gm 을 갖는 상기 제어자 장치의 계산수단은 상기 각 커미트먼트 R이 If the transmitting means of the prover has transmitted all of the commitments R, the calculating means of the controller device having m public values G 1 , G 2 ,.
R = G1 d1×G2 d2×...×Gm dm ×Dvmod n 의 식, 또는 R = G 1 d1 × G 2 d2 × ... × G m dm XD v mod n, or
R = Dv/G1 d1×G2 d2×...×Gm dm mod n의 식을 만족하는지를 확인한다. R = D v / G 1 d1 × G 2 d2 × ... × G m dm Check that mod n's expression is satisfied.
메시지의 무결성을 검증하는 경우 When verifying the integrity of a message
상기 제 1 실시예와 조합될 수 있는 제 2 실시예에서, 본 발명에 의한 상기 제어자 장치는 제어자로 알려진 엔티티와 관련된 메시지 M의 무결성을 검증하게 된다. In a second embodiment, which can be combined with the first embodiment, the controller device according to the present invention verifies the integrity of the message M associated with an entity known as the controller.
상기 제어자 장치는 전자적, 전자기적, 광학적 또는 음성학적으로 상기 증명자 엔티티와 관련된 증명자 장치와 연결하기 위한 연결수단, 특히, 데이터프로세싱 통신 네트워크와 같은 연결수단을 포함한다. The controller device comprises connecting means for connecting electronically, electromagnetically, optically or phonetically with the prover device associated with the prover entity, in particular connection means such as a data processing communication network.
상기 시스템은 아래의 단계들을 실행하는데 사용된다. The system is used to perform the following steps.
제1 및 제2 단계: 커미트먼트 R의 행위, 챌린지 d의 행위
상기 제어자 장치는 상기 연결수단을 통해 상기 증명자 장치로부터 들어오는 토큰 T를 수신하기 위한 수단을 갖는다. 상기 제어자 장치는 상기 토큰 T를 수신한 후에 커미트먼트 R의 수와 동일한 수로 챌린지 d를 생성하기 위한 챌린지 생성수단을 구비하며, 상기 각 챌린지 d는 초기챌린지 di이라고 하는 m개의 정수를 포함한다. 또한, 상기 제어자 장치는 상기 연결수단을 통해 상기 증명자에 챌린지 d를 전송하기 위한 전송수단 - 이하, 제어자의 전송수단이라 함 - 을 포함한다. The controller device has means for receiving a token T coming from the prover device via the connecting means. The controller device has a challenge generating means for generating a challenge d with a number equal to the number of commitments R after receiving the token T, each challenge d including m integers called an initial challenge d i . The controller device also includes a transmission means for transmitting the challenge d to the prover via the connection means, hereinafter referred to as the transmission means of the controller.
제3 및 제4 단계: 레스펀스 D의 행위, 검사행위Third and Fourth Steps: Response and Investigations of Response D
상기 제어자 장치는 상기 연결수단을 통해 상기 증명자 장치로부터 들어오는 각각의 챌린지 d를 수신하기 위한 수단을 포함한다. The controller device comprises means for receiving each challenge d coming from the prover device via the connecting means.
상기 제어자 장치는 우선, m개의 공개값 G1, G2,...,Gm 을 가지며, 챌린지 d와 레스펀스 D 각각으로부터 재구성된 커미트먼트 R'을 식 R' = G1 d1×G2 d2×...×Gm dm ×Dvmod n, 또는 식 R' = Dv/G1 d1×G2 d2×...×Gm dm mod n의 식을 만족시키도록 계산하고, 이어서, 그 인수가 메시지 M과 상기 각 재구성된 커미트먼트 R'의 모두 또는 일부인 해싱 함수 h를 적용하여, 적어도 하나의 토큰 T'을 계산하기 위한, 이하에서 제어자 장치의 계산수단이라고 불리는 계산 수단을 포함한다. The controller device first has m public values G 1 , G 2 ,..., G m , and expresses a commitment R 'reconstructed from each of the challenge d and the response D, where R' = G 1 d1 × G 2. d2 × ... × G m dm × D v mod n, or the formula R '= D v / G 1 d1 × G 2 d2 × ... × G m dm Calculate to satisfy the expression of mod n, and then apply the hashing function h whose argument is all or part of message M and each of the reconstructed commitments R 'to calculate at least one token T', Calculation means called calculation means of the controller device.
상기 제어자 장치는 또한 상기 토큰 T'를 전송된 토큰 T와 비교하기 위한, 이하에서 제어자 장치의 비교수단이라 불리는 비교수단을 포함한다.
The controller device also includes comparing means, hereinafter referred to as comparing means of the controller device, for comparing the token T 'with the transmitted token T'.
메시지의 디지탈 서명 및 그의 진정성의 검증Digital signature of the message and verification of its authenticity
상기 실시예들과 조합될 수 있는 제 3 실시예에서, 본 발명에 의한 상기 제어자 장치는 서명된 메시지라고 불리는 엔티티에 의해 서명된 메시지를 검사함으로써 메시지 M의 진정성을 검사하게 된다. In a third embodiment, which can be combined with the above embodiments, the controller device according to the invention checks the authenticity of message M by checking a message signed by an entity called a signed message.
해싱 함수 h(message, R)을 갖는 서명엔티티와 관련된 서명 장치에 의해 전송된, 상기 서명된 메시지는,The signed message, sent by the signature device associated with the signature entity with a hashing function h (message, R),
- 메시지 M,-Message M,
- 챌린지 d 및/또는 커미트먼트 R,Challenge d and / or commitment R,
- 레스펀스 D 를 포함한다.
-Include response D.
검사 행위Inspection
상기 제어자 장치는 전자적, 전자기적, 광학적 또는 음성학적으로 상기 서명 엔티티와 관련된 서명 장치와 연결하기 위한 연결수단, 특히, 데이터프로세싱 통신 네트워크와 같은 연결수단을 포함하고, 상기 제어자 장치는 상기 연결수단을 통해 서명장치로부터 서명된 메시지를 수신한다. The controller device comprises connecting means for connecting electronically, electromagnetically, optically or phonetically with a signature device associated with the signature entity, in particular connection means such as a data processing communication network, the controller device comprising the connection. Receive a signed message from the signing device via the means.
상기 제어자 장치는 The controller device
계산 수단 - 이하, 제어자 장치의 계산수단이라 함 - 과,Calculating means, hereinafter referred to as calculating means of the controller device;
비교 수단 - 이하, 제어자 장치의 비교수단이라 함 - 을 포함한다.
Comparison means, hereinafter referred to as comparison means of the controller device.
제어자 장치가 커미트먼트 R, 챌린지 d, 레스펀스 D를 가질 경우:If the controller device has commitment R, challenge d, response D:
상기 제어자 장치가 커미트먼트 R, 챌린지 d 및 레스펀스 D를 갖는다면, 상기 제어자 장치의 계산수단 및 비교수단은 상기 커미트먼트 R, 상기 챌린지 d, 상기 레스펀스 D가If the controller device has a commitment R, a challenge d and a response D, the calculation means and the comparison means of the controller device indicate that the commitment R, the challenge d and the response D are
R = G1 d1×G2 d2×...×Gm dm×Dvmod n 의 식 또는 R = G 1 d1 × G 2 d2 × ... × G m dm × D v mod n or
R = Dv/G1 d1×G2 d2×...×Gm dm mod n의 식을 만족하는지를 확인한다. R = D v / G 1 d1 × G 2 d2 × ... × G m dm Verify that the formula mod n is satisfied.
이어, 상기 제어자 장치의 계산수단 및 비교수단은 메시지 M, 및 챌린지 d가 해싱함수 d = h(message, R)을 만족하는지를 확인한다.
Subsequently, the calculating means and the comparing means of the controller device check whether the message M and the challenge d satisfy the hashing function d = h (message, R).
제어자 장치가 챌린지 d와 레스펀스 D를 가질 경우.The controller device has a challenge d and a response D.
상기 제어자 장치가 챌린지 d, 레스펀스 D를 갖는다면, 상기 제어자의 계산수단은 각 챌린지 d와 각 레스펀스 D에 기초하여, If the controller device has a challenge d, a response D, the controller's calculation means is based on each challenge d and each response D,
R' = G1 d1×G2 d2×...×Gm dm×Dvmod n 의 식, 또는 R '= G 1 d 1 × G 2 d 2 × ... × G m dm × D v mod n, or
R' = Dv/G1 d1×G2 d2×...×Gm dm mod n의 식을 만족하는 커미트먼트 R'을 재구성하고, 상기 제어자장치의 계산 및 비교수단은 상기 메시지 M 및 챌린지 d가 해싱함수 d = h(message, R')을 만족하는지를 확인한다. R '= D v / G 1 d1 × G 2 d2 × ... × G m dm mod n reconstruct the commitment R' satisfying the equation, and the means for calculating and comparing the controller device is the message M and the challenge Check that d satisfies the hashing function d = h (message, R ').
제어자가 커미트먼트 R와 레스펀스 D를 가질 경우:If the controller has commitment R and response D:
상기 제어자가 커미트먼트 R와 레스펀스 D를 갖는다면, 상기 제어자 장치의 계산수단은 해싱함수 d' = h(message, R)을 적용하여 d'를 계산하고, 이어, 상기 제어자 장치의 계산수단 및 비교수단은 상기 커미트먼트 R과 상기 챌린지 d' 및 상기 레스펀스 D가 If the controller has a commitment R and a response D, the calculating means of the controller device calculates d 'by applying a hashing function d' = h (message, R), and then calculating means of the controller device. And the comparison means that the commitment R and the challenge d 'and the response D are
R = G1 d'1×G2 d'2×...×Gm d'm×Dvmod n의 식, 또는 R = G 1 d'1 × G 2 d'2 × ... × G m d'm × D v mod n, or
R = Dv/G1 d'1×G2 d'2×...×Gm d'm mod n의 식을 만족하는지를 확인한다. R = D v / G 1 d'1 × G 2 d'2 × ... × G m d'm mod n Verify that the equation is satisfied.
GQ기술은 엔티티 및 메시지의 동적 인증과 메시지의 디지탈 서명을 목적으로 하며, "지식의 전송이 없는" 기술이다. 한 엔티티는 하나이상의 비공개수를 인식하고 있다는 것을 증명한다. 다른 엔티티는 그것을 확인한다; 이 엔티티는 그와 상응하는 공개수(들)를 인식하고 있다. 상기 증명하는 엔티티는 비공개수(들)를 드러내지 않고 상기 확인하는 엔티티를 확신시켜 언제까지나 필요한 만큼 그 비공개수들을 사용할 있도록 한다. GQ technology aims at the dynamic authentication of entities and messages and the digital signature of messages, and is a "no knowledge transfer" technology. One entity proves that it recognizes one or more private numbers. The other entity confirms it; This entity is aware of the corresponding publish (es). The attesting entity assures the identifying entity without revealing the private number (s) so that it can use those private numbers for as long as necessary.
각 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>으로 구현한다.Each GQ pattern is based on a public modulus of large secret prime factors. The openness index v and open modulus n together form a verification key <v, n> representing " v square of modulus n " and one or more general formulas, i.e. all direct equations, G = Q v ( mod n) or vice versa with G × Q v = 1 (mod n). This type affects the internal operation of the identifying entity, but not inside the certifying entity; Indeed, security analysis confuses the two forms. Each general formula connects the public number G and the private number Q to form a pair of {G, Q} numbers. In summary, each GQ pattern implements one or more pairs of {G, Q} with the same key <v, n>.
여기서 GQ1이라 하는 종래 버전의 GQ패턴은 RSA 디지탈 서명패턴을 사용한다. 이어, 그 검증키<v,n>는 바람직하게는 불균일한 v지수가 소인수인 RSA 공개키이다. 각 GQ1패턴은 일반적으로 한쌍의 수 {G,Q}를 사용한다: 상기 RSA디지탈서명의 정수부인 포맷 메카니즘에 따라서, 상기 공개수 G는 식별데이터로부터 유도된다. 상기 비공개수 Q 또는 그 밖의 그 역모듈로 n는 식별데이터의 RSA서명이다. 상기 증명 엔티티는 RSA서명의 지식을 자신의 식별데이터로부터 입증하고 이 증인은 서명을 노출시키지 않는다. 따라서, 그 서명은 비밀로 유지되어 필요한 횟수만큼 사용될 수 있다. Here, the conventional version of the GQ pattern called GQ1 uses an RSA digital signature pattern. Then, the verification key <v, n> is preferably an RSA public key whose non-uniform v index is a prime factor. Each GQ1 pattern generally uses a pair of numbers {G, Q}: According to the format mechanism, which is an integer part of the RSA digital signature, the publication number G is derived from the identification data. The private number Q or other inverse modulo n is the RSA signature of the identification data. The attestation entity verifies the knowledge of the RSA signature from its identifying data and the attestor does not expose the signature. Thus, the signature can be kept secret and used as many times as necessary.
GQ1패턴은 일반적으로 2개의 키 레벨(key level)을 구현한다: 상기 RSA서명 비공개키는 식별테이터에 의해서 자신을 다른 것과 상호 구별하는 엔티티를 신임하는 기관을 위해 보존된다. 이러한 패턴은 "동일성에 기반됨(identity based)"이라 한다. 이와 같이, 칩 카드 발행자는 각 카드를 발행할 때에, 그 카드의 다변화형 비공개키(diversified private key)로서 기입한 비공개수 Q를 연산하기 위해 자신의 RSA 비공개키를 사용한다. 그 밖의 경우에서, 컴퓨터 네트워크 상의 고객은 로그온(log-on)할 때마다, 그 기간동안에 고객의 임시 비공개키(ephemeral private key)인 비공개수 Q를 연산하기 위해 자신의 RSA 비공개키를 사용한다. 증명 엔티티, 칩 카드 또는 로그온된 고객은 그들의 식별데이터의 RSA서명을 알지만, 키들의 계층에서 바로 상위레벨에 있는 RSA 비밀키에 대해서는 알지 못한다. 그러나, 기관 레벨에서 768 비트 모듈러스를 갖는 GQ1에 의한 엔티티의 동적인증은 각 엔티티의 레벨에서 3개의 소인수를 지닌 512비트 모듈러스를 갖는 RSA에 의한 엔티티의 동적인증 - 그 증명 엔티티는 얻어진 모듈로가 곱이 되도록 계산하기 전에 그 얻어진 모듈로를 각 소인수가 되도록 계산함으로써 차이니스 잉여법을 사용할 수 있음-과 거의 동일한 작업부하를 요구한다.The GQ1 pattern generally implements two key levels: The RSA signature private key is reserved for the organization that trusts the entity that distinguishes itself from others by means of identifying data. This pattern is called "identity based." Thus, when issuing each card, the chip card issuer uses its own RSA private key to calculate the private number Q written as the diversified private key of the card. In other cases, every time a customer on a computer network logs on, he uses his RSA private key to compute the private number Q, which is his or her private private key during that time. The attesting entity, chip card, or logged on customer knows the RSA signature of their identifying data, but not the RSA secret key just above the hierarchy of keys. However, dynamic authentication of an entity by GQ1 with 768-bit modulus at the institutional level is dynamic authentication of an entity by RSA with 512-bit modulus with three prime factors at the level of each entity. It requires almost the same workload as the difference surplus method can be used by calculating the obtained modulo to each prime factor before calculating it.
그러나, 기관과 신임받은 엔티티 간의 키의 계층은 강제적(mandatory)이지는 않다. GQ1은 증명 엔티티에 특정된 모듈러스를 가지고 사용되어 차이니스 잉여법을 그 증명 엔티티의 작업부하를 감소시키는데 사용할 수 있으나, 증명 엔터티 레벨에서의 모듈러스가 기관레벨에서의 모듈러스보다 짧은 것, 예를 들어 768비트에 대해 512비트인 것과는 별도로, 제어자 엔티티의 작업부하를 근본적으로 변화시키지는 못한다. However, the hierarchy of keys between institutions and trusted entities is not mandatory. GQ1 can be used with modulus specific to the attestation entity, so that the Chinese surplus method can be used to reduce the workload of the attestation entity, but the modulus at the attestation entity level is shorter than the modulus at the institution level, eg 768. Apart from being 512 bits per bit, it does not fundamentally change the workload of the controller entity.
엔티티가 그 자신의 모듈러스의 소인수를 알지 못할 때에, 왜 디지탈 서명 RSA패턴을 사용하는가?When an entity does not know the prime factor of its own modulus, why use the digital signature RSA pattern?
여기서 기본 GQ2라 하는, 다른 버전의 GQ 패턴은 모듈러스의 인수분해문제를 직접적으로 사용한다. 이 문장에서 "직접적으로(directly)"는 "RSA서명을 사용하지 않는다"라는 것을 말한다. GQ2의 목적은 증명 엔티티의 작업부하뿐만 아니라 제어 엔티티의 작업부하도 감소시키는 것에 있다. 상기 증명엔티티는 그 자신의 모듈러스의 분해(decomposition)에 관한 지식을 입증하며 이 증명에서는 그 분해를 노출시키지 않는다. 따라서, 상기 분해는 비밀로 유지되어 필요한 횟수만큼 사용될 수 있다. 상기 GQ2 프로토콜의 보안성은 모듈러스의 인수분해와 동등한다. Another version of the GQ pattern, called the basic GQ2, directly uses modulus factorization problems. In this context, "directly" means "do not use RSA signatures." The purpose of GQ2 is to reduce the workload of the controlling entity as well as the workload of the attesting entity. The attestation entity demonstrates knowledge of the decomposition of its own modulus and does not expose the decomposition in this attestation. Thus, the decomposition can be kept secret and used as many times as necessary. The security of the GQ2 protocol is equivalent to the factorization of modulus.
각 증명 엔티티는 자신의 모듈러스 n을 갖는다. 각 GQ2패턴은 파라미터 k, 1보다 크며 공개지수 v=2k로 정해지는 작은 수 및, 하나 이상의 쌍인 {G1,Q1} 내지 {Gm,Qm}을 구현한다. 각 공개수 G1은, 1보다 큰 작은 수 g1의 제곱이며, "기수(base number)"라 한다. 모든 증명 엔티티는 동일한 G1 내지 Gm의 공개수(들)을 사용할 수 있다. 이어, 모듈러스 n과 Q1 내지 Qm인 공개수(들)의 인수분해는 키계층에서 동일한 수준에 있다. GQ2 기본키의 각 세트는 필요조건이자 충분조건인 2개의 조건에 의해 정의된다. Each attestation entity has its own modulus n. Each GQ2 pattern implements a parameter k, a larger number than 1 and a small number determined by the public index v = 2 k , and one or more pairs {G 1 , Q 1 } to {G m , Q m }. Each publication number G 1 is a square of a number g 1 which is smaller than 1 , and is referred to as a "base number". All attestation entities may use the same G 1 through G m public number (s). The factorization of the modulus n and the published number (s) with Q 1 to Q m is at the same level in the key hierarchy. Each set of GQ2 primary keys is defined by two conditions, both necessary and sufficient.
- 각 기수와 관련하여, 2개의 식 x2= ±gi(mod n) 중 어느 식도 정수모듈로 n의 링에서 x의 해를 갖지 못함. 즉, 상기 수 ±gi는 2개의 비-이차 나머지(non-quadratic residues) 모듈로 n임.For each radix, none of the two equations x 2 = ± g i (mod n) is an integer module with no solution of x in the ring of n. That is, the number ± g i is two non-quadratic residues modulo n.
- 각 기수와 관련하여, v=2k인 2개의 식 xv= ±gi 2(mod n)은 정수모듈로 n의 링에서 x의 해를 가짐. 상기 비공개수 Qi 또는 그 역모듈로 n이 이 해 중 하나임.For each radix, two equations, v v = ± g i 2 (mod n), with v = 2 k , are integer modules with solutions of x in the ring of n. The private number Q i or its inverse modulo n is one of these solutions.
이와 같이 주어진 2개의 조건에서, 상기 수 ±gi가 2개의 비-이차 나머지(non-quadratic residues) 모듈로 n이 되기 위해, 상기 모듈러스 m은 gi의 르장드르 기호(Legendre symbol)가 다르다는 것과 관련하여 3(mod 4)에 일치하는 적어도 2개의 소인수를 포함한다. 결과적으로, 소인수가 없거나 3(mod 4)와 일치하는 소인수 중 하나로 이루어진 임의의 모듈러스는 GQ2 기본키의 세트를 확립시키지 못하며, 3(mod 4)에 일치하는 소인수를 지지한다. 큰 소인수들을 그 중 반을 무작위로 인출하는 것은 3(mod 4)와 일치하고 1(mod 4)와는 반인 것으로 증명된다. 따라서, 사용 중인 다수의 RSA 모듈로는 기본 GQ2키의 세트를 확립시킬 수 없다. As a secondary rest (non-quadratic residues) to be the n modulo said modulus m is different from the Legendre symbol (Legendre symbol) of g i - in the two conditions given in this manner, the number of ± g i are two non- Include at least two prime factors that match 3 (mod 4) in this context. As a result, any modulus that does not have a prime factor or consists of one of the prime factors that match 3 (mod 4) does not establish a set of GQ2 primary keys, and supports a prime factor that matches 3 (mod 4). Randomly withdrawing half of the large prime factors proves to match 3 (mod 4) and half to 1 (mod 4). Thus, many RSA modules in use cannot establish a set of basic GQ2 keys.
본 명세서에서는, 이러한 한계를 극복하기 위한 GQ2의 일반화된 키(GQ2 generalized key) 세트의 사용을 도입하여, 임의의 모듈러스와 함께, 특히 임의의 RSA 모듈러스와 함게 GQ2기술을 사용할 수 있다. 이들은 2개의 필수적이면서 충분한 원리에 기초한다.In this specification, the use of GQ2 generalized key sets to overcome this limitation allows the use of GQ2 technology with any modulus, in particular with any RSA modulus. These are based on two essential and sufficient principles.
제1 원리는 제2 GQ1 기본조건을 재생산한다. The first principle reproduces the second GQ1 basic condition.
각 기수 g1 내지 gm에서는, v=2k인 식 xv= gi 2(mod n)은 모듈로 n의 정수 환에서 x의 해를 갖는다.In each radix g 1 to g m , the expression x v = g i 2 (mod n) with v = 2 k has the solution of x in the integer ring of modulo n.
각 비공개수 Q 또는 그밖의 그 역모듈로 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의 분해를 노출시키지 않는다.Since each private number Q or other inverse modulo n is solved in the above equation, k-1 successive square modulo n is equal to the number q i which is the square root of G i in the integer ring of the modulo n. To convert. The number q i is the same as the two numbers g i or ng i , or different from the two numbers g i and ng i . This is called trivial or non-simple. When the number q i is nonsimple, n dividing q i 2 -g i 2 is q i -g i and q i + g i Do not divide both. Thus, any non-simple q i does not expose the decomposition of the modulus n.
n = pgcd(n,qi - gi) ×pgcd(n,qi + gi) n = pgcd (n, q i g i ) × pgcd (n, q i + g i )
제2 원리는 상기 제1 GQ2 기본조건을 확대시킨다. The second principle extends the first GQ2 basic condition.
- 수 q1 내지 qm 중에서, 적어도 하나의 qi는 비단순형이다. Of the numbers q 1 to q m , at least one q i is non-simple.
수 ±gi가 정수모듈로 n의 링에서 2개의 비-이차 나머지수일 때에 수 q+가 존재하면, 수 qi는 명백히 비단순형이라는 것을 주목하자. 그러므로, 임의의 모듈러스를 이용할 수 있는 일반적인 사용시에, 기본 GQ2키의 세트는 GQ2의 집합의 완전부분이다. 즉, 적어도 2개가 구별되는, 3 또는 1(mod 4)에 무관하게 일치되는 큰 소인수의 임의의 구성이다. 한편, 일반적으로 사용할 때에 다수의 GQ2 키 세트는 GQ2 기본 키 세트가 아니다. 일반적으로 사용되는 각 GQ2 키 세트는 하기 2개의 경우 중 하나이다. Note that if the number q + is present when the number ± g i is the integer modulo two non-secondary remainders in the ring of n, then the number q i is clearly non-simple. Therefore, in normal use where any modulus is available, the set of basic GQ2 keys is a complete part of the set of GQ2. That is, any configuration of large prime factors that match at least two, regardless of 3 or 1 (mod 4). On the other hand, in general use, many GQ2 key sets are not GQ2 primary key sets. Each commonly used GQ2 key set is one of two cases:
- 2 ×m개의 수 ±g1 내지 ±gm이 모두 비-이차 나머지일 때에, GQ2 기본 키 세트이다. When the 2 x m numbers ± g 1 to ± g m are all non-secondary remainders, this is the GQ2 primary key set.
- 2 ×m개의 수 ±g1 내지 ±gm중에서, 적어도 하나의 비-이차 나머지가 있을 때에, GQ2 기본 키 세트가 아닌 GQ2 컴플리먼트리 키(complementary)의 세트이다.-A set of GQ2 complementary keys, not a GQ2 primary key set, when there are at least one non-secondary remainder out of the 2 x m numbers ± g 1 to ± g m .
정의를 내리자면, 본 발명은 GQ2 컴플리먼트리 키의 세트에 관한 것이며, 이러한 GQ2 키 세트는 일반사용시에 기본키가 아니다. 상기 2개의 원리와는 별도로, 이러한 종류의 세트는 제3 원리를 만족해야 한다.By definition, the present invention relates to a set of GQ2 complete keys, which are not primary keys in normal use. Apart from the above two principles, this kind of set must satisfy the third principle.
- 2 ×m개의 수 ±g1 내지 ±gm중에서, 적어도 하나의 비-이차 나머지가 있다. There are at least one non-secondary remainder out of the 2 x m numbers ± g 1 to ± g m .
본 발명에서 제공되는 문제를 인지하고 그 해결책을 이해하기 위해서, 우선 비단순형 q에 의해 노출되는 모듈러스 n의 분해를 분석하기로 한다. 이어, 차이니스 잉여법을 상기한 후에 갈루아 필드 CG(p)에서 계수의 개념을 이해한다. 그리고 나서, CG(p)에서 "제곱연산(raise to square)" 및 CG(p)에서 이차나머지의 "제곱근연산(take a square root)"의 함수를 연구하자. 끝으로, 상기 3가지 원리의 응용성을 분석하기로 한다.In order to recognize the problem provided in the present invention and to understand its solution, we first analyze the decomposition of modulus n exposed by the non-simple q. The concept of coefficients in the Galois field CG (p) is then understood after recalling the Chinese surplus method. Then, study the functions of the "raise to square" in CG (p) and the "take a square root" of the second order in CG (p). Finally, the applicability of the three principles will be analyzed.
모듈러스 분해의 분석Analysis of Modulus Decomposition
모듈러스 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을 나눈다.When modulus n decomposes into f prime factors p 1 to p f , the ring of integer modulo n decomposes into f Galois fields CG (p 1 ) to CG (p f ). In each field, there are two square roots of the unit (eg ± 1). Therefore, there are 2 f square roots of the unit in the ring. Each private number Q 1 to Q m defines the number Δ i = q i / g i (mod n), which is one of the 2 f square roots of the units in the ring. In other words, divide Δ i 2 − 1 by n.
ㆍ qi가 단순형일 때, 즉 Δi = ±1일 때, n으로 Δi+ 1 또는 Δi - 1을 나눈다. 따라서, Δi는 모듈러스 n의 어떤 분해도 노출시키지 않는다.When q i is simple, i.e., Δ i = ± 1, divide Δ i + 1 or Δ i − 1 by n. Thus, Δ i does not expose any decomposition of modulus 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을 나눈다.When q i is non-simple, i.e., Δ i ≠ 1, do not divide Δ i + 1 or Δ i − 1 by n. Thus, Δ i exposes the decomposition of modulus n, n = pgcd (n, Δ i −1) × pgcd (n, Δ i + 1). This is obtained from the value of Δ i in each field, dividing Δ i -1 on one side and Δ i + 1 on the other by the prime factor (s).
수 q의 곱셈구성법칙(muliplicative composition rule)을 알아보자. 2개의 수 {q1,q2}는 하나의 합성수(composite number) q1 ×q2 (mod n)를 제공한다.Let's look at the muliplicative composition rule of the number q. Two numbers {q 1 , q 2 } give one composite number q 1 × q 2 (mod n).
- q1가 비단순형이고 q2가 단순형일 때, 상기 합성수 q1 ×q2 (mod n)는 비단순형이며, 이는 q1와 동일한 분해를 노출시킨다.When q 1 is non-simple and q 2 is simple, the synthetic water q 1 × q 2 (mod n) is non-simple, which exposes the same decomposition as q 1 .
- q1 및 q2가 비단순형이고 Δ1 = ±Δ2일 때, 상기 합성수 q1 ×q2 (mod n)는 단순형이며, 이는 어떤 분해를 노출시키지 않는다. When q 1 and q 2 are non-simple and Δ 1 = ± Δ 2 , the synthetic water q 1 × q 2 (mod n) is simple, which does not expose any decomposition.
- q1 및 q2가 비단순형이고 Δ1 ≠ ±Δ2일 때, 상기 합성수 q1 ×q2 (mod n)는 비단순형이며, 이는 3차 분해를 노출시키지 않는다.When q 1 and q 2 are non-simple and Δ 1 ≠ ± Δ 2 , the synthetic water q 1 × q 2 (mod n) is non-simple, which does not expose tertiary decomposition.
3개의 수인 {q1,q2,q3}는 4개의 합성수인 {q1 ×q2, q1 ×q3, q2 ×q3, q1 ×q2 ×q3(mod n)}를 제공한다. 즉 총 7개의 수이다. 이와 같이, m개의 수가 2m- m -1 합성수를 제공하면, 총 2m-1개의 수가 된다.Three numbers {q 1 , q 2 , q 3 } are four synthetic numbers {q 1 × q 2 , q 1 × q 3 , q 2 × q 3 , q 1 × q 2 × q 3 (mod n) } Is provided. That is a total of seven numbers. In this way, when m numbers provide 2 m -m -1 synthetic water, the total number is 2 m -1.
일반 사용시에 i개의 기수 g1 내지 gi와, i개의 수 q1 내지 qi를 제공하는 i개의 비공개수 Q1 내지 Qi와, 그 결과로 상기 유닛의 근인 i개의 수 Δ1 내지 Δi를 포함하는 GQ2 키의 세트를 참작하고, qi+1을 제공하는 비공개수 Qi+1과 그 결과인 근Δi+1 으로 다른 기수 gi+1를 고려해 보려 한다.I odd numbers g 1 to g i in normal use, i private numbers Q 1 to Q i providing i numbers q 1 to q i , and consequently i numbers Δ 1 to Δ i, the roots of the unit. Considering the set of GQ2 keys containing, consider the other radix g i + 1 as the private number Q i + 1 giving q i + 1 and the resulting root Δ i + 1 .
ㆍ 총 2i+1-1개의 수는 아래의 두 경우 각각에서 다수의 비단순형(nontrivial number)로서 이루어진다.A total of 2 i + 1 −1 numbers consists of multiple nontrivial numbers in each of the following two cases.
- 근 Δi+1는 단순형이며, 근 Δ1 내지 Δi 중 적어도 하나는 비단순형이다. Root Δ i + 1 is simple and at least one of roots Δ 1 to Δ i is non-simple.
- 근 Δi+1는 비단순형이며, 2 ×i개의 근 ±Δ1 내지 ±Δi 중에서 나타난다.Root Δ i + 1 is non-simple and appears out of 2 × i roots ± Δ 1 to ± Δ i .
ㆍ 근 Δi+1는 비단순형이며, 2 ×i개의 근 ±Δ1 내지 ±Δi 중에서 나타나지 않는 경우에, qi+1이 나타나는 각 합성수는 비단순형이다. The root Δ i + 1 is non-simple, and when it does not appear among 2 x i roots ± 1 to ± Δ i , each synthetic number in which q i + 1 appears is non-simple.
결과적으로, m개의 수 q1 내지 qi 중에서 적어도 하나의 비단순형이 있을 때에, 상기 총 2m-1개의 수의 반이상이 비단순형이다.As a result, when there is at least one non-simple form out of the m numbers q 1 to q i , more than half of the total 2 m −1 numbers are non simple forms.
정의하자면, 2l-l-1개의 상응하는 합성수 각각이 비단순형일 때, l < f 개의 비단순형{q1,q2,...,ql}는 모듈러스n에 대해 독립적이다. 즉, 전체적으로 2l-1개의 수가 모두 비단순형이라 할 수 있다. 이어, 각 2l-1개의 수 각각은 모듈러스 n의 다른 분해를 노출시킨다. By definition, l <f non-simple {q 1 , q 2 , ..., q l } are independent of modulus n when each of 2 l -1 -1 corresponding synthetic numbers is non-simple. That is, the total number of 2 l -1 numbers can be said to be non-simple. Subsequently, each 2 l -1 number each exposes a different decomposition of modulus n.
- 상기 f개의 소인수가 구별될 때에, 상기 모듈러스 n의 2f-1-1개 분해가 있다. 이어, f-1개의 수 q가 독립적이면, f-1개의 독립수 및 2f-1-f개의 상응 합성수르 포함한 총 2f-1-1개의 수와, 2f-1-1개의 분해 사이에 일 대 일 대응이 있다.When the f prime factors are distinguished, there are 2 f-1 −1 decompositions of the modulus n. Followed by, f-1 if the number of q is independently, f-1 can be independent and 2 f-1 -f of the corresponding synthetic Sur including total 2 f-1 -1 of the number and, 2 f-1 42-1 decomposition of There is a one-to-one correspondence.
차이이스 잉여- 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까지의 유일수를 정의하는 것이 중요하다. 수 x= {b(mod a)}-1(mod a)가 차이이스 잉여의 파라미터이다. 아래에 차이이스 잉여의 기본연산이 있다.Difference surplus-two numbers a and b primed between 0 <a < b , with two numbers X a from 0 to a-1 and X b from 0 to b-1 To be. It is important to define the unique number from 0 to a × b-1 so that X a = X (mod a) and X b = X (mod b). The number x = {b (mod a)} −1 (mod a) is the parameter of the difference surplus. Below is the basic operation of the difference surplus.
x = Xb (mod a)x = X b (mod a)
y = Xa - x ; 만약 y가 음수라면, y는 y+a로 대체한다.y = X a -x; If y is negative, y is replaced by y + a.
z = a ×y (mod a)z = a × y (mod a)
x = z ×b + xb x = z × b + x b
정리하면, 우리는 x = 차이이스 잉여 (Xa,Xb)이라고 기재한다.In summary, we write x = difference surplus (X a , X b ).
f개의 소인수가 오름차수에 대입할 대에, 최소 p1 에서부터 최대 pf까지, 차이이스 잉여의 파라미터는 아래와 같다(소인수보다 작은 하나임, 즉 f-1).When f prime factors are assigned to the ascending order, from minimum p 1 to maximum p f , the difference surplus parameter is as follows (one less than the prime factor, ie f-1).
- 제1 파라미터는 x = {p2(mod p1)}-1(mod p1)임.The first parameter is x = {p 2 (mod p 1 )} -1 (mod p 1 ).
- 제2 파라미터는 β= {p1 ×p2(mod p3)}-1(mod p3)임.The second parameter is β = {p 1 × p 2 (mod p 3 )} −1 (mod p 3 ).
- 제i 파라미터는 λ= {p1 ×p2×...×pi-1(mod pi)}-1(mod pi)임.The i-th parameter is lambda = {p 1 × p 2 × ... × p i-1 (mod p i )} −1 (mod p i ).
- 등등.- etc.
f-1개의 기본연산에서, Xj가 0 내지 pj-1인 Xl 내지 Xf인 f개의 요소의 임의집합으로부터 0 내지 n-1에서 수 X가 성립된다.In the f-1 basic operations, the number X is established from 0 to n-1 from any set of f elements from X 1 to X f where X j is 0 to p j-1 .
- 제1 파리미터와 함께 제1 결과(mod p1 ×p2)The first result (mod p 1 × p 2 ) with the first parameter
- 이어, 제2 파리미터와 함께 제2 결과(mod n = p1 ×p2 ×p3)Then, the second result (mod n = p 1 × p 2 × p 3 ) with the second parameter
- 최종 파리미터와 함께 최종 결과(mod p1 ×p2 ×...×pf)까지임.With final parameters up to the final result (mod p 1 × p 2 × ... × p f ).
정리하면, 소인수 p1 내지 pf가 제공되면, 정수모듈로 n의 링의 각 요소는 2 개의 동등한 표시를 갖는다. In summary, given the prime factors p 1 to p f , each element of the ring of n modulo has two equivalent representations.
- f개의 수 x1 내지 xf, 소인수 당 하나의 구성요소 : Xf = X(mod pf),f number x 1 to x f , one component per prime factor: X f = X (mod p f ),
- 0 내지 n-1의 수 x, X = 차이이스 잉여(X1,X2,...,Xf)-Numbers from 0 to n-1 x, X = differential surplus (X 1 , X 2 , ..., X f )
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)이다. In CG (p) there are rank -uneven prime factors p and a number a less than p. Ie 0 <a <p. If defined, the coefficient of a to p is {x 1 = a; then, for i≥1, x i + 1 = a p xx i = (mod p)}. By Fermat theory, the coefficient of number a to the prime factor p is a divisor of p-1 or p-1.
예를 들면, (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 zero element)의 순열을 형성하는 사실에 기인한다.For example, when (p-1) / 2 is an odd prime factor p ', the Galois field CG (p) contains a number having a coefficient of one. This is 1. The number 2 is -1. If the coefficient is p ', it is p'-1 number, and if the coefficient is 2xp' = p-1, it is p'-1 number. In CG (p), any number with coefficient p-1 is a "generator". This name implies that the stream {X} term forms a permutation of all non zero elements of CG (p) for successive powers of the generators of CG (p), i. Due to the fact.
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)이다.There is a constructor y of CG (p), and evaluate the coefficient of the number y (mod p) as a function of i and p-1. When i is small with p-1, it is p-1. When dividing p-1 by i, it is (p-1) / i. In all cases, this is (p-1) / pgcd (p-1, i).
정의하자면, 오일러(Euler) 함수 φ(n)은 n보다 작고 n과는 소인 수들의 수이다. CG(p)에서는, φ(p-1)생성자가 있다. By definition, Euler function φ (n) is less than n and is the number of prime numbers. In CG (p), there is a φ (p-1) constructor.
예시된 설명에 의해, 상기 계수는 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>에 의해 반전된다.By the illustrated description, the coefficients can better understand the basics of RSA. Modulus n is a product of f prime factors p 1 to p f ( f ≧ 2). For each prime factor p j of p 1 to p f , the publication index e must be prime with p j −1. The key <e, p j > then relates to a coefficient that is an element of CG (p f ). This permutates the elements of CG (p j ). There is a number d j (usually the smallest possible number) such that p j −1 is e × d j . The key <d j , p j > inverts the permutation of CG (p j ) elements. One of each of these f permutations, namely CG (p 1 ) to CG (p i ), is represented by an RSA permutation arranged by the public key <e, n> in the ring to the integer module. There is a number d (usually the smallest possible number) such that ppcm (p 1 -1, p 2 -1, ..., p j -1) becomes d xe -1. For each prime factor p j of p 1 to p f , we have d j = d (mod p f −1). The RSA permutation arranged by the public key <e, n> is inverted by the private key <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 카테고리에서 나타난다. Square in CG (p) -Define the number t so that p-1 can be divided by 2 t rather than by 2 t + 1 . Each of the large prime factors is represented by one category alone, that is, t = 1, t = 2, t = 3, t = 4, and the like. Considering a sufficiently large number of consecutive prime factors, one of the two appears in the first category where p matches 3 (mod 4), and one of the four has a second category where p matches 5 (mod 8). And one of the eight appears in the third category where p matches 9 (mod 16). In addition, one of the 16 appears in this way, such that p appears in a fourth category that matches 17 (mod 32). The average, one of the two 2 t t is shown in the category that matches the p 2 t +1 (mod 2 t + 1).
수 x 및 p-x는 CG(p)에서 동일한 제곱을 가지므로, 상기 키 <2,p>는 CG(p)를 순열화한다. CG(p)에서 "제곱연산" 함수는 상기 필드의 각 비-제로요소(non-zero element)가 배치된 지향성 그래프(oriented graph)에 의해 표시된다. 각 요소의 계수의 패리티(parity)에 따라서 브랜치 및 원에서 그래프의 구조를 분석하자.Since the numbers x and p-x have the same square in CG (p), the keys <2, p> permutate CG (p). The function "square operation" in CG (p) is represented by an oriented graph in which each non-zero element of the field is placed. Analyze the structure of the graph in branches and circles according to the parity of the coefficients of each element.
- 제로 요소는 고정된다. 이는 0이며, 계수는 제로요소에 대해서 정의되지 않는다. 제로요소는 다른 요소에 연결되지 않으며, 고립되어 있다. -Zero element is fixed. It is 0 and the coefficient is not defined for zero element. The zero element is not connected to other elements and is isolated.
- 유닛 요소는 고정된다. 이는 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과 연결된 브랜치를 구성한다. The unit element is fixed. This is 1, only an element with one coefficient. The root of the unit in the coefficient CG (p) is in the branch connecting 1. y is the non-quadratic residue of CG (p). The key <(p-1) / 2 t , p> converts y to a 2 t-1 primitive root of -1 represented by b. In fact, we have y (p-1) / 2 = -1 (mod p). As a result, in CG (p), the power of b for an exponent of 1 to 2 t-1 is 2 t-1 -1 roots of the unit different from 1 . These constitute a branch associated with one.
- 짝수인 계수의 임의 요소의 제곱은 둘로 나눠지는 계수를 갖는 다른 요소이다. 결과적으로, 각 짝수인 계수의 각 요소는 브랜치에 배치된다.각 브랜치는 둘로 나눠지지만 넷으로 나눠지지 않는 계수를 포함한다. 이어, t≥2이면, 넷으로 나눌수 있으나 여덟로 나눠질 수 없는 2개의 계수를 포함한다. 또한, t≥3이면, 여덟 로 나눌수 있으나 열여섯으로 나눠질 수 없는 4개의 계수를 포함하고, t≥4이면, 여덟로 나눌수 있으나 열여섯으로 나눠질 수 없는 8개의 계수를 포함하는 등 이런 방식으로 이루어진다. 모든 브랜치는 1과 연결된 브랜치와 유사하다. 각 브랜치의 2t-1개의 리프(leaves)는 비-이차 유수다. 각 브랜치는 2t-1개의 요소를 포함하고 홀수인 랭크에 연결된다. 모두 동일한 길이 t를 갖는 (p-1)/2t개의 브랜치가 있다. The square of any element of an even coefficient is another element with coefficients divided by two. As a result, each element of each even coefficient is placed in a branch. Each branch contains coefficients that are divided into two but not divided into four. Then, if t ≧ 2, it includes two coefficients that can be divided into four but not divided into eight. In addition, if t≥3, it contains four coefficients that can be divided into eight but not divided into sixteen, and if t≥4, it includes eight coefficients that can be divided into eight but not divided by sixteen. Is done. All branches are similar to branches associated with one. 2 t-1 leaves of each branch are non-secondary runoff. Each branch contains 2 t −1 elements and is connected to an odd rank. There are (p-1) / 2 t branches, all of which have the same length t.
- 상기 유닛요소와 다른 홀수 계수인 임의 요소의 제곱은 동일한 계수를 갖는 또 다른 요소이다. 키 <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개의 수는 큰 순열사이클이다. The square of any element that is an odd coefficient different from the unit element is another element with the same coefficient. The key <2, p> permutes all (p-1) / 2 t elements of odd coefficients. The permutation decomposes into a permutation cycle. The number of cycles depends on the factorization of (p-1) / 2 t . For each divisor of (p-1) / 2 t , there is a cycle including the φ (p ') element of the coefficient p'. By definition, remember that Euler's function φ (p ') is a number less than p' and less than p '. For example, when p '= (p-1) / 2t is small, the number of p'-1 of the coefficient p' is a large permutation cycle.
도1a 내지 도1d는 각각 3(mod 4), 5(mod 8), 9(mod 16) 및 17(mod 32)과 일치하는 p에 대한 그래프부분이다.1a to 1d are graph parts of p corresponding to 3 (mod 4), 5 (mod 8), 9 (mod 16) and 17 (mod 32), respectively.
- 브랜치의 리프는 흰 원으로 표시된다. 이는 비-이차 유수(residues)이다.The leaf of the branch is indicated by a white circle. This is non-secondary residues.
- 브랜치의 노드는 회색 원으로 표시된다. 이는 짝수 계수의 이차요소이다.Nodes in branches are shown as gray circles. This is the secondary of even coefficients.
- 사이클의 노드는 검은 원으로 표시된다. 이는 짝수 계수의 이차요소이다. The nodes of the cycle are marked with black circles. This is the secondary of even coefficients.
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년 베를린소재 스프링거 출판)"를 참조할 수 있다. Square Root in CG (p)-Knowing that a is the second run of CG (p), the solution to the equation x 2 = a (mod p), ie the "square root operation" in CG (p) Let's find out. Of course there are several ways to achieve the same result. See Henry Cohen, "a Course in Computation Algebraic Number Theory (vol. 138 of series Graduate Texts in Mathematics, 138 (GTM 138), pages 31-36, published by Springer, 1993, Berlin).
수 s = (p-1+2t)/2t+l는 아래의 가치가 있는 키<s,p>를 제공한다.The number s = (p-1 + 2 t ) / 2 t + l gives the keys <s, p> worth
p가 3(mod 4)에 일치할 때는 <p+1)/4,p>,When p matches 3 (mod 4), <p + 1) / 4, p>,
p가 5(mod 8)에 일치할 때는 <p+3)/8,p>,When p matches 5 (mod 8), <p + 3) / 8, p>,
p가 9(mod 16)에 일치할 때는 <p+7)/32,p>,<p + 7) / 32, p> when p matches 9 (mod 16),
p가 17(mod 32)에 일치할 때는 <p+15)/32,p> 등등.<p + 15) / 32, p> when p matches 17 (mod 32), etc.
- 상기 키 <s,p>는 사이클 내의 임의의 요소를 그 사이클의 선행요소로 전환시킨다. a는 짝수 계수일 때, 이는 홀수 계수의 해이다. 여기서는 이를 w라 한다. 실제로, CG(p)에서, w2/a는 (2×(p-1+2t)/2t+1)-1 = (p-1)/2t제곱된 a의 가치가 있다. 다른 해는 짝수 계수이다. 이는 p-w이다.
The key <s, p> converts any element in the cycle to the preceding element of the cycle. When a is an even coefficient, it is a solution of odd coefficients. This is called w here. Indeed, in CG (p), w 2 / a is worth (2 × (p-1 + 2 t ) / 2 t + 1 ) -1 = (p-1) / 2 t squared a. The other solution is an even coefficient. This is pw.
- 일반적인 방식에서는, 상기 키 <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)를 곱함으로써 근접하게 하는 것도 가능하다. 이와에 다양한 방법이 있다.In a general manner, the key <s, p> converts any secondary flow a into a first solution approximation called r. Since a is the second flow, the key <2 t-1 , p> reliably switches r 2 / a to 1. To approximate the square root of a, r 2 / a is squared by 2 t-2 (mod p) to obtain +1 or -1. If the result is +1, the new approximation remains r. If the result is -1, the new approximation is b x r (mod p). Where b represents any 2 th order primitive root of 1 in field CG (p). It is also possible to approximate by using the keys <2 t-3 , p> and multiply b 2 (mod p) as needed. There are various ways to do this.
아래의 알고리즘은 등식을 푼다. 앞서 정의된 수 a,b,p,r 및 t와, 2개의 변수 c 및 w를 사용한다.c는 연속보정(successive correction)을 표시하고, w는 연속근사(successive approximation)을 표시한다. 알고리즘의 초기에서는, c=b이면서 w=r이다. 그 연산의 후미에서는, 두 해는 w 및 p-w이다. The algorithm below solves the equation: We use the numbers a, b, p, r and t previously defined, and two variables c and w. C denotes successive correction and w denotes successive approximation. In the beginning of the algorithm, c = b and w = r. At the end of the operation, the two solutions are w and p-w.
t-2 내지 1사이에 있는 i에 대해, 아래의 시퀀스를 반복한다.For i between t-2 and 1, the following sequence is repeated.
- +1 또는 -1을 얻기 위해 키 <2t,p>를 수 w3/a(mod p)에 적용함.-Apply key <2 t , p> to number w 3 / a (mod p) to get +1 or -1
- -1을 얻은 경우에, w를 w ×c(mod p)로 대체함.If -1 is obtained, replace w with w xc (mod p).
- c를 c2(mod p)로 대체함.replacing c with c 2 (mod p).
원리의 응용성 - 정의하자면, 지수v가 2k인 식 xv= g2(mod p)가 필드 CG(p)의 링에서 x로 풀수 없을 때에 파라미터 k, 기수 g 및 소인수 p는 양립가능하다(compatible)라고 한다. 수 k 및 g는 작으면서도 1보다 큰 수이다. 상기 수p는 큰 소수(prime number)이다. Applicability of the Principle -By definition, the parameter k, radix g and prime factor p are compatible when the expression x v = g 2 (mod p) with an index v of 2 k cannot be solved with x in the ring of field CG (p). It is called (compatible). The numbers k and g are small but larger than one. The number p is a large prime number.
- t=1일 때, 즉 p = 3 (mod 4)일 때에, 상기 식은 2개의 해를 갖는다.When t = 1, ie p = 3 (mod 4), the equation has two solutions.
- t=2일 때, 즉 p = 5 (mod 8)일 때에, p에 관련된 q의 르장드르 기호에 따라서, (g│p)= +1이라면 상기 식은 4개의 해를 가지며, (g│p)= -1이라면 상기 식은 해를 갖지 못한다.When t = 2, i.e., when p = 5 (mod 8), the equation has four solutions, if (g│p) = + 1, depending on the Rejangdre symbol of q associated with p If) =-1, the equation has no solution.
- t>2일 때, 즉 p = 1 (mod 8)일 때, 2u로 p에 관련된 공개수 G= g2의 계수를 나누고 2u-1로는 이를 나누지 못하도록 u를 정한다. 결과적으로, u는 0 내지 t-1의 수 중 하나와 동일하다. u>0이고 k+u>t이면 상기 식은 해를 갖지 못하며, k+u ≤t이면 2k개의 해를 갖는다. 또한, u=0이고 k>t이면 상기 식은 2t개의 해를 갖는다.When t> 2, i.e. when p = 1 (mod 8), u divides the coefficient of the open number G = g 2 related to p by 2 u and does not divide it by 2 u-1 . As a result, u is equal to one of the numbers 0 to t-1. If u> 0 and k + u> t, then the equation has no solution, and if k + u ≦ t there are 2 k solutions. Further, if u = 0 and k> t, the equation has 2 t solutions.
따라서, G는 사이클 내에서 또는 브랜치 내의 적절한 위치여부에 따라 2형태의 양립성(compatibility)이 존재한다. Thus, G has two types of compatibility depending on whether or not it is properly positioned in the cycle or in the branch.
- G가 사이클 내에 있을 때, 즉 k값과 관계없이 u=0일 때, 사이클 내의 홀수 계수의 해와, 사이클과 연결된 연속 브랜치(consecutive branch)인, α= min(k,t)에 산재된 짝수 계수의 해들(즉, 모두 2α개의 해)이 존재한다. 도2a는 k ≥t = 3인 경우를 나타낸다. 즉, u=0을 부과한 9(mod 16)에 일치하는 소인수인 경우를 도시한다.When G is in the cycle, i.e., u = 0 regardless of the value of k, the solution of the odd coefficients in the cycle and the even number interspersed with α = min (k, t), the continuous branch connected to the cycle There are solutions of the coefficients (ie, all 2 α solutions). 2A shows the case where k ≧ t = 3. That is, the case where the prime factor corresponding to 9 (mod 16) which imposed u = 0 is shown.
- G가 브랜치의 적절한 위치에 있을 때, 즉 u>0이고 u+k≤t일 때, 브랜치 내에 있고 모든 짝수 계수인, 2k개의 해가 존재한다. 도2b는 이런 경우를 나타낸다.When G is in the proper position of the branch, i.e. when u> 0 and u + k ≦ t, there are 2 k solutions, which are in the branch and are all even coefficients. Fig. 2B shows this case.
파라미터 k가 주어지면, t값은 k미만이거나 k이상인지여부에 따라서, 그로부터 2 가지형태의 소인수가 존재한다. Given a parameter k, there are two types of prime factors from there, depending on whether the value of t is less than or equal to k.
- 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이다.For any prime factor p j that satisfies t <k, each G i must be in cycle, and there is no solution in the branch connected to G i . Define a number Δ ij which becomes +1 or -1 depending on whether g i or-g i is in the cycle. There is no selection for some of the m numbers Δ 1, j to Δ m, j . 3A shows the case where t <k. G i is in a cycle with a prime factor p j equal to 9 (mod 16). That is, u = 0 and t = 3 where k> 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이다.For any prime factor p j that satisfies t≥k, each G i must be in a cycle that satisfies u + k ≤ t, i.e. u = 0, or in the proper position for a branch of 1 ≤ u ≤tk . Q ij that is connected to the g i in the cycle defines the number Δ ij which, depending on whether the connection with -g i, +1 or -1. for each of the m numbers Δ 1, j to Δm , j . Each of Δ i, j can be individually varied between one value and the other. 3B shows the case where t ≧ k. G i is in a cycle with a prime factor p j equal to 17 (mod 32). That is, u = 1 and k = 3, t = 4.
f개의 구성요소 {Δi,1,Δi,2 ,..., Δi,f }의 각 세트는 CG(pf)에서 유닛의 제곱근이다. 이 근은 상기 f개의 구성요소가 동일한지여부에 따라서 단순형이거나 비단순형이 된다. 이어, 상기 f구성요소의 세트를 상수 또는 변수라고 하며, 이는 상기 수 qi가 단순형이거나 비단순형인 사실을 나타낸다. 결과적으로, qi가 단순형일 때, f개의 구성요소 {Δi,1,Δi,2 ,..., Δi,f }의 세트는 모듈의 분해를 요약한다. 이어, 비밀구성요소인 Qi,j를 계산하기 전에 상기 원리를 테스트하는 것도 가능하다.Each set of f components {Δ i, 1 , Δ i, 2 , ..., Δ i, f } is the square root of the unit in CG (p f ). This root is either simple or non-simple, depending on whether the f components are equal. The set of f-components is then called a constant or variable, indicating the fact that the number q i is simple or non-simple. As a result, when q i is simple, the set of f components {Δ i, 1 , Δ i, 2 , ..., Δ i, f } summarizes the decomposition of the module. It is then possible to test this principle before calculating the secret component Q i, j .
- 공개수 Gi가 소인수 pj에 대한 사이클 내에 존재할 때, 상기 수 Δi,j는 상기 사이클 내에 있는 것이 gi 인지 -gi인지에 따라서 +1 또는 -1가 된다. pj = 3(mod 4)일 때, 이는 르장드르 기호: Δi,j= (gi│pj)이다.When the publication number G i is present in the cycle for the prime factor p j , the number Δ i, j becomes +1 or −1 depending on whether g i or-g i is in the cycle. When p j = 3 (mod 4), this is the Rejangdre symbol: Δ i, j = (g i │ p j ).
- 공개수 Gi가 소인수 pj에 대한 브랜치 내의 적절한 위치에 존재할 때, 비밀구성요소 Qi,j를 계산하기 전에, Δi,j에 주어질 상기 값을 정할 수도 있다.When the public number G i is present at a suitable position in the branch to the prime factor p j , the value to be given to Δ i, j may be determined before calculating the secret component Q i, j .
키세트의 생성 - 파라미터 k가 주어지면, 2가지 방식이 있다. Generation of Key Sets- Given a parameter k, there are two ways.
- 일 방식에서는, 상기 생성자(generator)는 m개의 기수를 결정하기 위해 f개의 소인수를 요구한다. 제1 소인수: 2,3,5,7 등은 f개의 큰 소인수 p1 내지 pf의 각각과의 양립성(compatibility)을 평가하기 위해 조사된다. g = 2가 p = 5 (mod 8)와의 양립성이 없더라도, 2는 기수의 구성이 될 수 있다. 실제로, 2개의 수가 브랜치의 유사한 위치에 있을 때에, 제곱이 상기 사이클에 근접해지는 것과 같이 그 곱은 상기 사이클에 보다 근접한다. 이런 방식으로 기수는 개별적으로 적합하지 않은 수를 포함함으로써 얻어질 수 있다.In one scheme, the generator requires f prime factors to determine m bases. First prime factors: 2,3,5,7 and the like are examined to evaluate compatibility with each of the f large prime factors p 1 to p f . Although g = 2 is incompatible with p = 5 (mod 8), 2 can be a base composition. In fact, when the two numbers are in similar positions of the branch, the product is closer to the cycle, as the square approaches the cycle. In this way the radix can be obtained by including numbers that are not individually suitable.
- 또는, 다른 방식에서는, 상기 생성자는 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개의 소인수의 곱이 될 수 있다. Or, in another way, the generator may use m radix and bit sizes (e.g., 512,768,1024,1536,2048) and number of higher order bits greater than 1 to determine f≥2 prime factors. For example, modulus characteristics such as 1, 8, 16, 24, 32 are required. When the radix is represented by G 1 , G 2 ,..., G m , the radix is generally represented by a number in a first prime factor: 2 , 3 , 5 , 7 , 11 , or the like, or a combination of the first prime factors. to be. Otherwise, if not specified, the radix is m first prime factors: G 1 = 2, G 2 = 3, G 3 = 5, G 4 = 7 and the like. Note that p = 5 (mod 8) is not compatible with g = 2. The modulus n may be a product of a neighboring size, i.e., f prime factors that are sizes allocated to f modulus divided by f.
제1 원리 - 상기 파라미터 k, p1 내지 pf 중 각 소인수 p와, g1 내지 gm 중 각 기수g는 양립될 수 있어야 한다. 2h로 p와 관련된 g의 계수를 나누도록 수h를 정의한다. 이에 반해, 상기 계수를 2h+1로는 나누지 못한다. 이러한 수h를 계산하기 우해서, 아래 절차는 르장드르 기호 (g │p)와, 수 b, 즉 CG(p)에서 유닛의 2t차 원시근을 사용한다. First Principle -Each prime factor p of the parameters k, p 1 to p f and each base g of g 1 to g m should be compatible. Define h to divide the coefficient of g associated with p by 2 h . In contrast, the coefficient cannot be divided by 2 h + 1 . In order to calculate this number h, the procedure below uses the genre symbol (g | p) and the second t order primitive root of the unit at number b, ie CG (p).
- t=1인 (g │p) = +1인 경우, "h = 0"으로 응답한다.If t = 1 (g | p) = +1, respond with "h = 0".
- t>1인 (g │p) = +1인 경우, 상기 키 <p-1+2t)/2t+1,p>를 G에 적용하여 w라 하는 결과를 얻는다.If t> 1 (g | p) = +1, the key <p-1 + 2 t ) / 2 t + 1 , p> is applied to G to obtain a result of w.
- w = +g인 경우, "h = 0"으로 응답한다.If w = + g, reply with "h = 0".
- w = p-g인 경우, "h = 1"로 응답한다.If w = p-g, respond with "h = 1".
- 만약 그렇지 않으면, b에 그리고 t-1 내지 2의 i에 대해 c를 대입한다. Otherwise, substitute c for b and for i of t-1 to 2.
- 상기 키 <2i,p>를 w/g(mod p)에 적용하여 ±1을 얻는다.Apply the key <2 i , p> to w / g (mod p) to get ± 1.
- 만약 -1이면, h를 i에 대입하고 w를 w ×c (mod p)로 대체한다If -1, substitute h for i and replace w with w × c (mod p)
- c를 c2(mod p)로 대체한다.replace c with c 2 (mod p)
- (g │p) = -1인 경우, "h = t"로 응답한다.-if (g | p) = -1, reply with "h = t".
k+u>t에서 u > 0인 경우에, k, g 및 p가 양립될 수 없다는 것을 상기하자. 이들은 h = 0 또는 1일 때에 k값과 관계없이 양립가능하며, k+h≤t+1에서 k>1가 일때에도 양립될 수 있다.Recall that when k> u> t, u> 0, k, g and p are incompatible. They are compatible irrespective of the value of k when h = 0 or 1, and are compatible even when k> 1 in k + h ≦
제2 원리 - 아래 3가지 절차는 제2 원리의 다른 구현형태에 상응한다. 어떤 구현형태에서는, 제2 원리는 q1 내지 qm의 각 수가 비단순형일 것을 요구하는 정도로 강화될 수 있다. 이어, 상기 기수의 역할은 균형을 이루게 된다. 제2 원리가 균형을 이루는지 그렇지 않은지에 의해 상기 패턴의 보안성을 입증하는 양태에 영향을 준다. 최종적으로, m개의 수 {q1내지 qm} 중에 f>2개의 서로 다른 소인수가 있을 때에, f-1개의 독립수(independant numbers) 중 적어도 하나의 서브유닛를 요구하는 것이 가능하다. Second Principle -The three procedures below correspond to different implementations of the second principle. In some implementations, the second principle can be enhanced to the extent that each number of q 1 to q m is non-simple. The role of the rider is then balanced. Whether the second principle is balanced or not affects the aspect demonstrating the security of the pattern. Finally, when there are f> 2 different prime factors out of m numbers {q 1 to q m }, it is possible to request at least one subunit of f-1 independent numbers.
상기 3가지 절차는 아래와 같이 정의되는, m ×f개의 수 δi,j를 사용한다.The three procedures use m x f numbers δ i, j , defined as follows.
- pj는 t<k가 될 때, δi,j = Δi,j (i는 1부터 m까지 진행됨). 즉, hi,j=0이면 +1이며, hi,j=1이면 -1이다.p j is t <k, where δ i, j = Δ i, j (i runs from 1 to m). That is, if h i, j = 0, it is +1, and if h i, j = 1, it is -1.
- pj는 t≥k가 될 때, δi,j = 0이며(i는 1부터 m까지 진행됨), 이는 제2 원리 의 함수로서 Δ1,j 내지 Δm,j를 선택할 수 있다는 것을 보여준다.p j is δ i, j = 0 (i goes from 1 to m) when t≥k, which shows that we can choose Δ 1, j to Δ m, j as a function of the second principle .
제1 절차는 세트{δi,1 내지 δi,f }중 적어도 하나가 변수 또는 제로인지, 즉 수 q1 내지 qm중 적어도 하나의 수가 비단순형이거나 비단순형으로 선택될 수 있는지 를 검사한다. The first procedure checks whether at least one of the sets {δ i, 1 to δ i, f } is variable or zero, that is, the number of at least one of the numbers q 1 to q m can be chosen as non-simple or non-simple. .
- i는 1부터 m까지 진행되고, j는 1부터 f까지 진행되는 경우,i goes from 1 to m, j goes from 1 to f,
- δi,j= 0 또는 ≠δi,1이면, "성공(success)"으로 응답한다.If δ i, j = 0 or ≠ δ i, 1 , respond with "success."
- "실패(failure)"로 응답한다.Respond "failure"
제2 절차는 세트{δi,1 내지 δi,f }의 각각이 변수 또는 제로인지, 즉 수 q 1 내지 qm중 적어도 하나의 수가 비단순형이거나 비단순형으로 선택될 수 있는지를 검사한다. The second procedure checks whether each of the sets {δ i, 1 to δ i, f } is variable or zero, ie, the number of at least one of the numbers q 1 to q m can be chosen as non-simple or non-simple.
- i는 1부터 m까지 진행되고, i runs from 1 to m,
- j는 1부터 f까지 진행되는 경우,j goes from 1 to f,
- δi,j= 0 또는 ≠δi,1이면, 다음 i값으로 진행된다.If δ i, j = 0 or ≠ δ i, 1 , then proceed to the next i value.
- "실패"으로 응답한다.-Respond with "failure"
- "성공"로 응답한다.-Respond with "success"
제3 절차는 1≤j1≤j2≤f인 소인수의 각 쌍인 pj1와 pj2에 대해, δi,j1 이 제로이거나 δi,j2와 상이한, 적어도 하나의 세트{δi,1 ,δi,2 ,..., δi,f }가 존재하는지를 검사한다. m이 f-1보다 작을 때는 명백히 실패한다. 성공할때는, m개의 수 q1 내지 qm중에서, f개의 소인수에 관련된 f-1개의 독립수로 이루어진 적어도 한개의 세트가 존재한다. The third procedure involves at least one set, for each pair of prime factors p j1 and p j2 , where 1 ≦ j 1 ≦ j 2 ≦ f, where δ i, j1 is zero or different from δ i, j2 {δ i, 1 , Check if δ i, 2 , ..., δ i, f } is present. Obviously it fails when m is less than f-1. On success, there is at least one set of f-1 independent numbers related to f prime factors among the m numbers q 1 to q m .
- j1는 1부터 f-1까지 진행되고, j2는 J1+1부터 f까지 진행되며,j 1 goes from 1 to f-1, j 2 goes from J 1 +1 to f,
- i는 1부터 m까지 진행되는 경우,i goes from 1 to m,
- δi,j= 0 또는 ≠δi,1이면, j1 및 j2의 다음 값으로 진행된다. If δ i, j = 0 or ≠ δ i, 1 , proceed to the next value of j 1 and j 2 .
- "실패"으로 응답한다.-Respond with "failure"
- "성공"로 응답한다.
-Respond with "success"
절차가 실패한 경우에는, GQ2키 세트의 생성자는 다음 2개의 방식 중 하나를 수행한다.If the procedure fails, the generator of the GQ2 key set performs one of two ways:
- f개의 소인수를 유지하면서, m개의 기수 중 하나를 변경함.Changing one of the m bases while maintaining the f prime factors.
- m개의 기수를 유지하면서, f개의 소인수 중 하나를 변경함.Changing one of the f prime factors while maintaining m bases.
제3 원리 - 아래 절차는 생성과정 또는 이미 생성된 일반 GQ2키 세트가: Principle 3 -The procedure below is generated or a generic set of generated GQ2 keys:
- GQ2기본키 세트, 즉 2 ×m개의 수 ±g1 내지 ±gm 이 모두 비-이차유수인지,Whether the GQ2 primary key set, ie 2 x m numbers ± g 1 to ± g m, are all non-secondary flows,
- 또는, GQ2 컴플리먼트리 키 세트, 즉 2 ×m개의 수 ±g1 내지 ±gm 중 적어도 하나가 이차유수인지를 판단한다.Or, it is determined whether at least one of the GQ2 completeness key sets, i.e., 2 x m numbers ± g 1 to ± g m , is a secondary flow.
상기 절차는 i가 1부터 m까지 진행되고 j가 1부터 f까지 진행될 때에 2개의 르장드르 기호인 (gi│pj) 및 (-gi│pj)를 사용한다.The procedure uses two Legendre symbol is (g i │p j) and (i │p -g j) when i is conducted until between 1 m j is conducted from 1 to f.
- i는 1부터 m까지 진행되고, i runs from 1 to m,
- j는 1부터 f까지 진행되는 경우,j goes from 1 to f,
- (gi│pj)= -1이면, 다음 i값으로 진행된다.If (g i │ p j ) = -1, it proceeds to the next i value.
- "GQ2 컴플리먼트리 키 세트"로 응답한다.Respond with a "GQ2 complete key set".
- j는 1부터 f까지 진행되는 경우,j goes from 1 to f,
- (-gi│pj)= -1이면, 다음 i값으로 진행된다.-(-g i │ p j ) = -1, proceeds to the next i value.
- "GQ2 컴플리먼트리 키 세트"로 응답한다.Respond with a "GQ2 complete key set".
- "GQ2 기본키 세트"로 응답한다.Reply with "GQ2 primary key set".
비밀 구성요소 - 직접형: xv = gi 2 (mod pj)의 등식에서는, 아래의 연산은 비밀구성요소 Qi,j의 모든 가능한 값을 확립한다. 상기 2개의 가장 간소하면서도 가장 일반적인 경우(즉, t=1 인 경우 및 t=2인 경우)에 이어 가장 복잡한 경우(즉, t>2인 경우)를 설명한다. Secret component -direct form: In the equation of x v = g i 2 (mod p j ), the following operation establishes all possible values of secret component Q i, j . The two most simple and most common cases (ie, when t = 1 and t = 2) are described followed by the most complex case (ie, when t> 2).
t=1, 즉 pj = 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과 등가이다. For t = 1, i.e., p j = 3 (mod 4), the key <(p j +1) / 4, p j > is the square quadratic root of any quadratic run in CG (p j ) ). The key to derive the number s j = ((p j +1) / 4) k (mod (p j -1) / 2), converting G 1 to w = G 1 sj (mod p j ) <s j , p j > Q i, j is equivalent to w or p j -w.
t=2, 즉 pj = 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'와 등가이다. For t = 2, i.e. p j = 5 (mod 8), the key <(p j +3) / 8, p j > gives the square quadratic root of the odd coefficient of any element in CG (p j ) do. The key to derive the number s j = ((p j +1) / 8) k (mod (p j -1) / 4), converting G i to w = G i sj (mod p j ) <s j , p j > Since 2 is a non-second-order flow in CG (p j ), we must examine whether z = 2 (pj-1) / 4 (mod p j ) is the square root of -1. Q i, j is equivalent to w or p j -w, or is equivalent to w = w x z (mod p j ) or p j -w '.
t>2인 pj = 2t+1(mod 2t+1)의 경우, 상기 키 <(pj-1+2t)/2t+1,pj>는 CG(pj)에서 임의의 요소의 홀수계수의 제곱 이차근을 제공한다. k, g 및 p 사이의 양립성 테스트는 h값을 제공하고, 이어 u값을 제공한다. For p j = 2 t +1 (mod 2 t + 1 ) with t> 2, the key <(p j -1 + 2 t ) / 2 t + 1 , p j > is random in CG (p j ) Gives the square root of the odd coefficient of the element of. The compatibility test between k, g and p gives the h value followed by the u value.
- 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의 곱에 등가이다. The number s j = ((p j −1 + 2 t ) / 2 t + 1 ) k (mod (p j −1) when G i is in a cycle (u = 0 regardless of k value) / 2 t ). Key <s j, p j> is converted to G 1 sj (mod p j) of the odd-numbered coefficient G i. There is a solution of even coefficients distributed over successive branches min (k, t) connected to the cycle, also called a branch. Q i, j is equivalent to the product of w and any root of the 2 ? Order roots of the unit in CG (p j ).
- 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를 포함한다.When G i is in the proper position of the branch (u> 0, u + k ≦ t), all solutions are in the same branch as G i, and the branch is cycled by the 2 u -order square of the number G i . Is connected to. The number s j = ((p j −1 + 2 t ) / 2 t + 1 ) k + u (mod (p j −1) / 2 t ) is established. The keys <s j , p j > convert the 2 u -order squares of G i to the number of w, which is an odd coefficient. Includes 2 α-dimensional product of all Q i, j of sigeun and w in the CG (p j).
- pj가 t ≥k되며, 수 bj가 CG(pj)에서 유닛의 2t-차 원시근일 때에, CG(pj)에서의 bj의 2t-u-차 제곱은 존재한다. 이는 상기 유닛의 2k -차 원시근이다. 상기 유닛의 2k-차 원시근으로 Qi,j를 곱함으로써 수 Δi,j의 값이 변동되게(swung) 할 수 있다.- p and t j is ≥k, b j be a CG (p j) of 2 units at t - when primary source of these days, 2 tu of b j in CG (p j) - squared difference is present. This is the 2 k -order primitive root of the unit. The value of the number Δ i, j can be swung by multiplying Q i, j by the 2 k -order primitive roots of the unit.
역(inverse)형태: 1 = xvxgi 2(mod pj)의 등식에서는, 키<sj,pj>에서 상기 수 sj를 ((pj-1)/2t)-sj로 대체하는 것으로 충분한다. 이는 CG(pj)에서 Qi,j의 값을 전환하는 것이 된다.Inverse: In the
5 (mod 8)과 일치하는 두개의 소인수를 포함하는 키셋의 예Example of a keyset containing two prime factors that match 5 (mod 8)
이하, 상기 최초 소수의 르장드르(Legendre) 기호이다.Hereinafter, the first few Regendre symbols.
(2|p1) = -1; (3|p1) = -1; (5|p1) = -1; (7|p1) = -1; (11|p1) = +1;(2 | p 1 ) = -1; (3 | p 1 ) = -1; (5 | p 1 ) = -1; (7 | p 1 ) = -1; (11 | p 1 ) = +1;
(13|p1) = -1; (17|p1) = +1;(13 | p 1 ) = -1; (17 | p1) = +1;
CG(p2)에서 상기 계수는 -5, -11 및 17에 대해 홀수이다.In CG (p2) the coefficients are odd for -5, -11 and 17.
(2|p2) = -1; (3|p2) = +1; (5|p2) = +1; (7|p2) = +1; (11|p2) = +1; (2 | p 2 ) = -1; (3 | p 2 ) = +1; (5 | p 2 ) = +1; (7 | p 2 ) = +1; (11 | p 2 ) = +1;
(13|p2) = -1; (17|p2) = -1;(13 | p 2 ) = -1; (17 | p 2 ) = -1;
CG(p2)에서 상기 계수는 3, -5, 7 및 11에 대해 홀수이다.In CG (p 2 ) the coefficient is odd for 3, -5, 7 and 11.
카마이클(Carmichael) 함수는 λ(n) = scm((p1-1)/4,(p2-1)/4)이다.The carmichael function is λ (n) = scm ((p 1 -1) / 4, (p 2 -1) / 4).
k=9일 때, 역함수 형태의 일반 함수를 사용하기 위한 비밀 지수로서 σ= λ(n)-((1+λ(n))/2)9(mod λ(n)).When k = 9, σ = λ (n)-((1 + λ (n)) / 2) 9 (mod λ (n)) as the secret exponent for using a general function of the inverse function form.
2, 3, 7, 13 및 17은 기수로서 적합하지 않다.2, 3, 7, 13 and 17 are not suitable as bases.
상기 키 <σ,n>은 g1=5를 분해할 수 없는 비밀값 Q1으로 변환한다. 즉, 양쪽 영역에서 5는 반복된다.The key <σ, n> converts g 1 = 5 into an inseparable secret value Q 1 . That is, 5 is repeated in both regions.
상기 키 <σ,n>은 g2=11를 분해되는 비밀값 Q2로 변환한다. 즉, 양쪽 영역에서 11은 같은 위치에 있지 않다.The key <σ, n> converts g 2 = 11 into a secret value Q 2 that is decomposed. In other words, 11 is not in the same position in both areas.
상기 키 <σ,n>은 g3=21=3×7을 분해되는 비밀값 Q3으로 변환한다.The key <σ, n> converts g 3 = 21 = 3 × 7 into a secret value Q 3 which is decomposed.
상기 키 <σ,n>은 g4=26=2×13을 분해되는 비밀값 Q4로 변환한다.The key <σ, n> converts g 4 = 26 = 2 × 13 into a secret value Q 4 which is decomposed.
상기 비밀키는 여전히 두개의 소인수, 차이니즈 나머지들의 파라메터 및 여덟개의 비밀요소에 의해 표현될 수 있다.The secret key can still be represented by two prime factors, the parameters of the Chinese remainder and the eight secret elements.
GQ2 비밀키의 폴리머피즘(polymorphism) - GQ2 비밀키의 여러가지의 가능한 형태는 등가인 것으로 입증된다: 진정한 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개의 파라미터를 설정함으로써 각각의 사용을 시작할 수 있다. Polymorphism of GQ2 Secret Keys-Various possible forms of GQ2 secret keys prove to be equivalent: equivalent to the knowledge of factorization of modulus n, which is a true GQ2 secret key. This type of GQ2 secret key strives for computation in the attestation entity, not in the controlling entity. Below are three possible main forms of GQ2 secret keys. 1) The standard form of the GQ secret key consists of the storage means of the m secret values Q i and the public check key <v, n> for the GQ2 pattern. This form is comparable to the following two forms. 2) The optimal form for the work load consists of storing parameters k, f prime factors p j , m × f secret elements Q i, j and f-1 parameters of the Chinese remainder. 3) The optimal form associated with the secret key size is to store the parameters k, m radix g i and f prime factors p j , and then set m secret values Q i and modulus n to return to the first form or the second. Each use can be started by setting the m × f secret elements Q i, j and f−1 parameters of the Chinese remainders to return to the form.
동적 인증 메카니즘 또는 디지털 서명 메카니즘은 모듈러스의 분해 지식과 동일하기 때문에, GQ2 패턴들은 동일한 모듈러스를 사용한 2개의 엔티티를 간단하게 구별하는데 사용할 수 없다. 일반적으로, 자신을 각각의 엔티티들은 자기의 GQ2 모듈러스를 갖는다. 그러나, 그러나, 2개는 한 엔티티가 알고 있고 나머지 2개는 다른 엔티티가 알고 있는 4개의 소인수로 GQ2 모듈러스를 지정할 수 있다.Since the dynamic authentication mechanism or digital signature mechanism is the same as the decomposition knowledge of the modulus, GQ2 patterns cannot be used to simply distinguish two entities using the same modulus. In general, each entity that has itself has its own GQ2 modulus. However, however, two can specify GQ2 modulus with four prime factors that one entity knows and the other two know.
동적 인증 - 상기 동적 인증 메카니즘은 제어자(controller)로서 알려진 엔티티에게 증명자(demonstrator)로 알려진 다른 엔티티의 진정성과, 그와 관련성 있는 메시지M의 진정성을 검증받기 위해 고안된다. 따라서, 제어자는 그것이 정확히 증명자임을 확인할 수 있고, 경우에 따라 증명자만을 확인할 수 있으며, 상기 증명자가 동일한 메시지 M를 정확히 말하고 있는지 확인할 수 있다. 상기 관련 메시지 M은 선택적이다. 이는 공백일 수 있다는 것을 의미한다. Dynamic authentication -The dynamic authentication mechanism is designed to verify the authenticity of another entity known as a controller to the entity known as the controller, and the authenticity of the message M associated with it. Thus, the controller can confirm that it is exactly the prover, in some cases only the prover, and can verify that the prover is speaking the same message M correctly. The related message M is optional. This means it can be blank.
상기 동적 인증 메카니즘은 커미트먼트(commitment) 행위, 챌린지(challenge) 행위, 레스펀스(response)행위 및 검사(checking)행위으로 된 일련의 4개 행위 과정으로 이루어진다. 상기 증명자는 커미트먼트 및 레스펀스의 행위을 수행한다. 상기 제어자는 챌린지 및 제어 행위을 수행한다.The dynamic authentication mechanism consists of a series of four behavior processes consisting of commitment behavior, challenge behavior, response behavior and checking behavior. The prover performs the actions of commitments and responses. The controller performs challenge and control actions.
증명자 내에서는, 그 증명자의 가장 민감한 파라미터 및 함수, 즉 커미트먼트과 레스펀스의 결과를 분리시키는 것과 같은 방법으로 증인(witness)를 분리하는 것이 가능하다. 상기 증인은 처리 시에 파라미터 k 및 비밀키 GQ2, 즉 상기 설명된 3가지 형태 중 하나의 형태 (ㆍf개의 소인수 및 m개의 기수, ㆍm×f 비밀요소와 f개의 소인수와 차이이스 잉여의 f-1개의 파라미터, ㆍm개의 비밀값과 모듈러스 n 중 하나)에 따르는 모듈러스 n의 인수분해를 갖는다. Within the prover, it is possible to separate the witness in such a way as to separate the prover's most sensitive parameters and functions, namely the results of commitment and response . The witness may, upon processing, parameter k and a secret key GQ2, i.e., one of the three forms described above (f primes and m bases, m × f secrets and f primes and difference surplus f). -Factor of modulus n according to one parameter, one of m secret values and one of modulus n).
상기 증인은 부분적인 실시형태(예를 들면, 전체 증명자를 형성하는 PC에 연결된 칩 카드 또는 PC 내에 설치된 특수 보안 프로그램 또는 칩 카드 내에 설치된 특수 보안 프로그램)에 해당한다. 이와 같이 분리된 증인은 서명 당사자 내에서 이하에 정의되는 증인과 유사하다. 상기 메카니즘의 각 실행에서, 증인은 하나 또는 그 이상의 커미트먼트 R, 이어 다수의 레스펀스 D, 다수의 챌린지 d를 생성한다. 각 집합 {R,d,D}는 GQ2 트리플릿이다.The witness corresponds to a partial embodiment (e.g., a chip card connected to a PC forming a full proof or a special security program installed in a PC or a special security program installed in a chip card). The witnesses thus separated are similar to the witnesses defined below within the signing party. In each implementation of the mechanism, the witness creates one or more commitments R, followed by multiple responses D and multiple challenges d. Each set {R, d, D} is a GQ2 triplet .
상기 증인의 구성과 별도로, 필요한 경우에 상기 증명자도 해싱 함수(hashing function) 및 메시지 M을 갖는다.Apart from the configuration of the witness, the prover also has a hashing function and message M, if necessary.
상기 제어자는 처리 시에, 예를 들면 공개키의 디렉토리(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사이일 때에, 하나의 트리플릿으로 동적 인증을 위해 합리적으로 제공하기에 충분하다. 임의의 보안레벨을 이루기 위해서, 병렬로 트리플릿을 제공할 수 있다. 또한, 연속적으로 제공하는 것, 즉 메카니즘의 실행을 반복하는 것도 가능하다.The controller has modulus n at processing, for example from a directory of the public key or from a register of the public key, and has the same hashing function and message M 'if necessary. The GQ2 disclosure parameters, ie the numbers k, m and g 1 to g m, are given to the controller by the prover. The controller can recover commitment R 'from any challenge d and any response D. The parameters k and m inform the controller. On the contrary, if any instruction fails, m radix from g 1 to g m are m first prime numbers. Each challenge d must have m initial elementary challenges represented by d 1 to d m , one per nose. The initial challenge from d 1 to d m may have a value between 0 and 2 λ −1 −1 (the value of v−1 on v / 2 is not used). Typically, each challenge is encoded by m × k−1 bits (not m × k). For example, when k = 5 and m = 4, and when the radix 5, 11, 21 and 26, each challenge has 16 bits transmitted in 4 quarts. When the (k-1) x m challenges are possible, the (k-1) x m value determines the security provided by each GQ2 triplet. The so-called impostor, not knowing the factorization of modulus n, has exactly one chance of success at 2 (k-1) .m . When (k-1) x m is between 15 and 20, one triplet is sufficient to reasonably provide for dynamic authentication. To achieve any level of security, triplets can be provided in parallel. It is also possible to provide continuously, ie to repeat the execution of the mechanism.
1) 커미트먼트 행위는 다음 연산으로 이루어진다.1) Commitment behavior consists of the following operations:
상기 증인이 차이니즈 나머지들을 사용하지 않을 때, 처리 시에 상기 증인은 파라미터 k, Q1에서 Qm까지 m개의 비밀값 및 모듈러스 n을 가진다. 상기 증인은 불규칙하고 비공개로 하나 이상의 랜덤값 r(random value r)(0 < r < n)을 발행한다. 이어, k 연속 제곱(mod n)연산에 의해, 각 랜덤값 r 을 커미트먼트 R로 변환한다.When the witness does not use the Chinese remainders, the witness has m secret values and modulus n from parameters k, Q 1 to Q m in processing. The witness issues one or more random value r (0 < r < n) randomly and privately. Subsequently, each random value r is converted into a commitment R by k continuous square (mod n) operations.
R = rv(mod n)R = r v (mod n)
이하, 차이니즈 나머지들을 갖지 않는 종래의 키 세트를 갖는 일 예이다.The following is an example with a conventional key set having no Chinese remainders.
상기 증인이 차이니즈 나머지들을 사용할 때, 처리 시에 상기 증인은 파라미터 k, p1에서 pf까지 f개의 소인수, 차이니즈 나머지들의 f-1개의 파라미터 및 m×f개의 비밀 요소 Qi,j를 갖는다. 상기 증인은 불규칙적이고 비공개적으로 f개의 랜덤값의 하나 이상의 콜렉션(collection)을 발행하며, 상기 각 콜렉션은 소인수 pi(0 < ri < pi)마다 하나의 랜덤값 ri를 갖는다. 이어, k 제곱(mod pi)의 연속 연산에 의해, 각 랜덤값ri은 커미트먼트 요소 Ri로 변환한다.When the witness uses Chinese remainders, in processing the witness has parameters k, f primes from p 1 to p f , f-1 parameters of Chinese remainders and m × f secret elements Q i, j . The witness randomly and privately issues one or more collections of f random values, each collection having one random value r i for each prime factor p i (0 <r i <p i ). Subsequently, by random operation k squared (mod p i ), each random value r i is converted into a commitment element R i .
Ri = ri v(mod pi)R i = r i v (mod p i )
f개의 커미트먼트요소의 각 콜렉션에 대해, 상기 증인은 차이이스 잉여의 기술에 따라서 커미트먼트를 설정한다. 랜덤값의 콜렉션이 존재하는 수만큼 커미트먼트가 존재한다.For each collection of f commitment elements, the witness establishes a commitment in accordance with the description of the difference surplus. There are as many commitments as there are collections of random values.
R = 차이이스 잉여(R1, R2, ..., Rf)R = Difference surplus (R 1 , R 2 , ..., R f )
이하, 차이니즈 나머지들을 갖는 종래의 키 세트를 갖는 일 예이다.Below is an example with a conventional key set with Chinese remainders.
두 경우에서, 상기 증명자는 각 커미트먼트 R의 모두 또는 일부, 혹은 각 커미트먼트 R 및 하나의 메시지 M를 해싱함으로써 얻을 수 있는 해싱코드 H를 상기 제어자에게 보낸다.In both cases, the prover sends the controller a hashing code H that can be obtained by hashing all or some of each commitment R, or each commitment R and one message M.
2) 챌린지 행위는 각각이 m개의 초기 챌린지 d1,d2,....,dm으로 이루어진 하나 이상의 챌린지 d를 불규칙하게 발행한 것이다. 상기 각각의 초기 챌린지di는 0에서 v/2-1사이의 값 중 하나를 갖는다.2) Challenge behavior is the irregular issue of one or more challenges d, each consisting of m initial challenges d 1 , d 2 , ...., d m . Each initial challenge d i has one of values between 0 and v / 2-1.
d = d1, d2, ..., dm d = d 1 , d 2 , ..., d m
이하, k=5과 m=4인 키의 제1 세트에 대한 일예이다.The following is an example for a first set of keys with k = 5 and m = 4.
d1 = 1010 = 11 = 'B'; d2 = 0011 = 3; d3 = 0110 = 6; d4 = 1001 = 9,d 1 = 1010 = 11 = 'B'; d 2 = 0011 = 3; d 3 = 0110 = 6; d 4 = 1001 = 9,
d = d1∥d2∥d3∥d4 = 10110011 01101001 = B3 69 d = d 1 ∥ d 2 ∥ d 3 ∥ d 4 = 10110011 01101001 = B3 69
상기 제어자는 각각의 챌린지 d를 증명자에게 보낸다.The controller sends each challenge d to the prover.
3) 레스펀스 행위는 아래 연산을 갖는다.3) Response action has the following operation.
상기 증인이 차이니즈 나머지들을 사용하지 않을 때, 상기 증인은 처리 시에 파라미터 k, Q1에서 Qm까지의 m개의 비밀값 및 모듈러스 n을 가진다. 상기 증인은 커미트먼트의 행위의 각 랜덤값 r과 상기 초기 챌린지에 따른 비밀값을 사용하여 하나 이상의 레스펀스 D를 계산한다.When the witness does not use Chinese remainders, the witness has parameters k, m secret values and modulus n from Q 1 to Q m in processing. The witness calculates one or more responses D using each random value r of the behavior of the commitment and the secret value according to the initial challenge.
D = ri ×Qi d1 ×Q2 d2 ×... ×Qm dm(mod n)D = r i × Q i d1 × Q 2 d2 × ... × Q m dm (mod n)
이하 차이니즈 나머지들을 가지지 않는 경우의 일련의 예이다.The following is a series of examples without having the Chinese remainders.
상기 증인이 차이니즈 나머지들을 사용할 때, 상기 증인은 처리 시에 파라미터 k, p1에서 pf까지의 f개의 소인수와 m×f개의 비밀요소 Qi.j를 가진다. 상기 증인은 커미트먼트행위의 랜덤값의 각 콜렉션(collection)을 사용하여 f개의 레스펀스요소의 하나이상의 콜렉션을 계산하며, 상기 레스펀스 요소의 각 콜렉션은 소인수마다 하나의 요소로 이루어진다.When the witness uses the Chinese remainders, the witness has the parameters k, f prime factors from p 1 to p f and m × f secret elements Q ij . The witness calculates one or more collections of f response elements using each collection of random values of commitment behavior, each collection of response elements consisting of one element per prime factor.
D = r ×Q1 d1 ×Q2 d2 ×... ×Qm dm(mod n)D = r × Q 1 d1 × Q 2 d2 × ... × Q m dm (mod n)
레스펀스 요소의 각 콜렉션에 대해, 상기 증인은 차이니즈 나머지 기술에 따라 레스펀스를 설정한다. 챌린지 수 만큼의 레스펀스가 존재한다.For each collection of response elements, the witness establishes a response in accordance with the Chinese rest technique. There are as many responses as there are challenges.
D = 차이니즈 나머지들 (D1, D2, ..., Df)D = Chinese remainders (D 1 , D 2 , ..., D f )
이하 차이니즈 나머지들을 갖는 경우의 일련의 예이다.The following is a series of examples with Chinese residues.
D1 = ri ×Q1,1 d1 ×Q2,1 d2 ×Q3,1 d3×Q4,1 d4(mod p1) D1 = r i × Q 1,1 d1 × Q 2,1 d2 × Q 3,1 d3 × Q 4,1 d4 (mod p1)
상기 두 경우 모두에 있어서, 상기 증명자는 각 레스펀스 D를 상기 제어자에게 보낸다.In both cases, the prover sends each response D to the controller.
4) 검사행위는 각 트리플릿{R,d,D}이 비제로(non-zero) 값에 대한 아래의 형태의 식을 검증하는 것을 확인하거나,4) The inspection act verifies that each triplet {R, d, D} verifies the following form of expression for non-zero values, or
그밖에 각 커미트먼트를 재설정하는 것이다. 어느것도 제로가 되어서는 안된다. In addition, it will reset each commitment. None should be zero.
필요하다면, 이어 제어자는 재확정된 각 커미트먼트 R' 및 메시지 M'을 각각 해싱하여 해싱코드 H' 를 계산한다. 이와 같이, 상기 제어자가 제1 의 커미트먼트행위의 종료시에 수신한 것, 즉 각 커미트먼트 R의 전부 또는 일부, 혹은 해싱코드 H를 검색할 때에 상기 동적 인증은 성공적으로 된다.If necessary, the controller then hashes each recommitted commitment R 'and message M' respectively to calculate the hashing code H '. Thus, the dynamic authentication is successful when the controller retrieves at the end of the first commitment action, i.e., all or part of each commitment R, or the hashing code H.
예를 들어, 일련의 초기연산은 레스펀스 D를 커미트먼트 R'로 전환한다. 상기 연산은 k 거듭제곱 (mod n)을 기수로 k-1번의 나눗셈 또는 곱셈 (mod n)으로 분리되게 한다. i 번째 제곱과 i+1 번째 제곱사이에서 실행되는 제i 번째 나눗셈 또는 곱셈의 경우, 상기 초기 챌린지 d1의 i번째 비트는 g1를 사용하는 것이 필요한지 여부를 지시하고, 상기 초기 챌린지 d2의 i번째 비트는 g2를 사용하는 것이 필요한지 여부를 지시하고, 이런 식으로 초기 챌린지 dm의 i번째 비트가 gm를 사용하는 것이 필요한지 여부까지 지시한다.For example, a series of initial operations convert response D to commitment R '. The operation allows k powers (mod n) to be divided into radix k-1 divisions or multiplications (mod n). If the i-th square and the i-th division or a multiplication is carried out between the i + 1-th square, the i-th bit of the initial challenge d 1 is indicated whether it is necessary to use a g 1, and the initial challenge d 2 The i th bit indicates whether it is necessary to use g 2 , and in this way up to whether the i th bit of the initial challenge d m needs to use g m .
이하, 차이니즈 나머지를 갖지 않는 경우의 마지막 일예이다.The following is a final example in which no Chinese remainder is provided.
모듈로 n을 제곱한다:Modulo n squares:
모듈로 n 에 5 ×26 = 130, 즉 '82'를 곱한다:Multiply modulo n by 5 × 26 = 130, ie '82':
모듈로 n을 제곱한다:Modulo n squares:
모듈로 n 에 21, 즉 '15'를 곱한다:Multiply modulo n by 21, or '15':
모듈로 n을 제곱한다:Modulo n squares:
모듈로 n 에 5 ×11 ×21 = 1155, 즉 '483'을 곱한다:Multiply modulo n by 5 × 11 × 21 = 1155, or '483':
모듈로 n을 제곱한다:Modulo n squares:
모듈로 n 에 5 ×11 ×26 = 1430, 즉 '596'을 곱한다:Multiply modulo n by 5 × 11 × 26 = 1430, or '596':
모듈로 n을 제곱한다:Modulo n squares:
상기 커미트먼트 R을 찾았다. 상기 인증에 성공하였다. The commitment R was found. The authentication was successful.
이하, 차이니즈 나머지를 가지는 경우의 마지막 일예이다.The following is an example of the case having the Chinese remainder.
모듈로 n을 제곱한다:Modulo n squares:
모듈로 n 에 5 ×26 = 130, 즉 '82'를 곱한다:Multiply modulo n by 5 × 26 = 130, ie '82':
모듈로 n을 제곱한다:Modulo n squares:
모듈로 n 에 21, 즉 '15'를 곱한다:Multiply modulo n by 21, or '15':
모듈로 n을 제곱한다:Modulo n squares:
모듈로 n 에 5 ×11 ×21 = 1155, 즉 '483'을 곱한다:Multiply modulo n by 5 × 11 × 21 = 1155, or '483':
모듈로 n을 제곱한다:Modulo n squares:
모듈로 n 에 5 ×11 ×26 = 1430, 즉 '596'을 곱한다:Multiply modulo n by 5 × 11 × 26 = 1430, or '596':
모듈로 n을 제곱한다:Modulo n squares:
상기 커미트먼트 r을 찾았다. 상기 인증에 성공하였다.
The commitment r was found. The authentication was successful.
디지털 서명Digital signature
상기 디지털 서명 메카니즘에 따르면, 서명자(signatory)라 하는 엔티티가 서명된 메시지를 작성하고, 제어자(controller)라 하는 엔티티가 그 서명된 메시지를 확인할 수 있도록 한다. 상기 메시지 M은 임의의 2진 시퀀스이다. 이는 비어(empty) 있을 수 있다. 상기 메시지 M은 서명 부록(signature appendix)을 첨부함으로써 서명된다. 상기 서명 부록은 하나 이상의 커미트먼트(commitment) 또는 챌린지(challenge)뿐만 아니라, 그와 대응하는 레스펀스(response)으로 이루어진다.According to the digital signature mechanism, an entity called a signatory creates a signed message, and an entity called a controller can verify the signed message. The message M is any binary sequence. It may be empty. The message M is signed by attaching a signature appendix. The signature appendix consists of one or more commitments or challenges, as well as corresponding responses.
상기 제어자는 처리 시에, 예를 들면 공개키의 디렉토리(directory)로부터 또는 공개키의 레지스터(register)로부터 모듈러스 n을 가진다. 상기 제어자는 또한 동일한 해싱 함수를 가진다. GQ2 공개 파라미터, 즉 숫자 k, m 및 g1 내지 gm은 증명자에 의해, 예를 들면 서명 부록에 입력함으로써 제어자에게로 주어진다. The controller has modulus n in processing, for example from a directory of the public key or from a register of the public key. The controller also has the same hashing function. The GQ2 public parameters, ie the numbers k, m and g 1 to g m, are given to the controller by the prover, for example by entering in the signature appendix.
상기 파라미터 k 및 m은 제어자에게 정보를 제공한다. 첫째, d1부터 dm까지의 초기 챌린지(elementary challenge)는 0에서 2k-1- 1사이의 값이다.(v/2에서 v-1의 값은 사용되지 않음). 둘째, 각 챌린지 d는 d1부터 dm으로 표현된 m개의 초기 챌린지로 구성되어야 한다. 즉, 그 수는 기수의 수와 동일하다. 나아가, 반대로 지시가 실패한 경우에는, g1에서 gm까지의 m개의 기수는 그 m개의 첫번째 소수(prime number)이다. (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이다.The parameters k and m provide information to the controller. First, the initial challenge from d 1 to d m is between 0 and 2 k-1-1 (the value of v-1 at v / 2 is not used). Second, each challenge d must consist of m initial challenges, represented by d 1 to d m . That is, the number is equal to the number of radix. On the contrary, if the indication fails, g 1 to g m The m bases are the m first prime numbers. If (k−1) × m is equal to 15 to 20, it is possible to sign with four triplets GQ2 generated in parallel. If (k-1) x m is equal to or more than 60, it is possible to sign with one triplet GQ2. For example, if k = 9 and m = 8, one triplet GQ2 is sufficient. Each challenge is 8 bytes and the cardinality is 2, 3, 5, 7, 11, 13, 17 and 19.
상기 서명 연산과정은 커미트먼트행위, 챌린지행위, 레스펀스행위을 포함하는 일련의 3개의 행위가다. 각 행위는 하나이상의 GQ2 트리플릿을 생성하며, 각각은 커미트먼트 r(≠0)과, d1,d2,...,dm으로 표현된 m개의 초기 챌린지로 이루어진 챌린지 d 및 레스펀스D(≠0)을 포함한다.The signature arithmetic process is a series of three acts, including commitment acts, challenge acts, and response acts. Each action produces one or more GQ2 triplets, each of which consists of a commitment r (≠ 0) and m initial challenges represented by d 1 , d 2 , ..., d m 0).
상기 서명자는 처리 시에 해싱 함수, 파라미터 k 및 GQ2 비밀키, 즉 여기서 상술된 바 있는 3가지 형태 중 하나의 형태에 따른 모듈러스 n의 인수분해를 갖는다. 상기 서명자의 범위에서는, 상기 증명자와 가장 민감한 함수와 파라미터를 분리시키기 위해, 커미트먼트와 레스펀스 행위을 수행하는 증인를 분리하는 것이 가능하다. 커미트먼트와 레스펀스를 계산하기 위해, 상기 증인은 파라미터 k와 GQ2 비밀키, 즉 여기서 상술된 바 있는 3가지 형태 중 하나이 형태에 따른 모듈러스 n의 인수분해를 갖는다. 이와 같이 분리된 증인은 상기 증명자 내에서 정의도는 증인과 유사하다. 이는 특정 실시형태, 예를 들면, 전체 서명자를 형성하는 PC에 연결된 칩카드 또는 PC 내에 설치된 특정 보안 프로그램 또는 칩카드 내에 설치된 특정 보안 프로그램에 해당한다.The signer has a factoring of modulus n according to the type of hashing function, parameter k and GQ2 secret key, ie one of the three forms described herein above, upon processing. In the scope of the signer, it is possible to separate the commitment and response witnesses to separate the prover and the most sensitive functions and parameters. To calculate the commitment and response, the witness has a factor k and a GQ2 secret key, i.e., one of the three forms described above, with a factorization of modulus n according to the form. The witnesses thus separated are similar to the witnesses defined in the attestor. This corresponds to a particular embodiment, for example a particular security program installed within a chip card or a chip card connected to a PC or a PC connected to a PC forming an entire signer.
1) 커미트먼트 행위는 아래 연산으로 이루어진다.1) Commitment behavior consists of the following operations.
상기 증인은 처리 시에 Q1에서 Qm까지의 m개의 비밀값과 모듈러스 n을 가질 때, 불규칙하고 비공개로 하나 이상의 랜덤값 r(random value r)(0 < r < n)을 발행한다. 이어, k 연속 제곱(mod n)연산에 의해, 각 랜덤값 r을 커미트먼트 R로 변환한다.The witness issues one or more random values r (0 <r <n) randomly and privately when it has m secret values and modulus n from Q 1 to Q m in processing. Subsequently, each random value r is converted into a commitment R by k continuous square (mod n) operations.
R = rv(mod n)R = r v (mod n)
상기 증인은 처리 시에, p1에서 pf까지의 f개의 소인수와 m×f개의 비밀요소 Qij를 가질 때, 불규칙적이고 비공개적으로 f개의 랜덤값의 하나이상의 콜렉션을 발행하며, 상기 각 콜렉션은 소인수 pi(0 < ri < pi)마다 하나의 랜덤값 ri를 갖는다. 이어, k 제곱(mod pi)의 연속 연산에 의해, 각 랜덤값 ri은 커미트먼트요소 Ri로 변환한다.The witness may, upon processing, issue one or more collections of randomly and randomly f random values when having f prime factors from p 1 to p f and m × f secret elements Q ij . Has one random value r i for each prime factor p i (0 <r i <p i ). Then, by random operation k squared (mod p i ), each random value r i is converted into a commitment element R i .
Ri = ri v(mod pi)R i = r i v (mod p i )
f개의 커미트먼트요소의 각 콜렉션에 대해, 상기 증인은 차이이스 잉여의 기술에 따라서 커미트먼트를 설정한다. 랜덤값의 콜렉션의 수만큼 커미트먼트가 존재한다.For each collection of f commitment elements, the witness establishes a commitment in accordance with the description of the difference surplus. There are as many commitments as there are collections of random values.
r = 차이이스 잉여(R1, R2,....,Rf)r = Difference surplus (R 1 , R 2 , ...., R f )
2) 챌린지 행위는 서명자가 각각이 m개의 초기 챌린지로 이루어진 하나이상의 챌린지를 형성하는 해싱코드를 얻기 위해 모든 커미트먼트 R과 M 서명된 메시지를 해싱하는 것이다. 상기 각각의 초기 챌린지는 0에서 v/2-1사이의 값 중 하나를 갖는다. 예를 들면, k=9이고 m=8이다. 각 챌린지는 8바이트로 구성된다. 커미트먼트과 동일한 수의 챌린지가 존재한다. 2) The challenge action is that the signer hashes all commitment R and M signed messages to obtain a hashing code that forms one or more challenges, each of which consists of m initial challenges. Each initial challenge has one of the values between 0 and v / 2-1. For example, k = 9 and m = 8. Each challenge consists of 8 bytes. There is the same number of challenges as commitments.
결과 해시(M,R)로부터 추출된 d = d1,d2,...,dm D = d 1 , d 2 , ..., d m extracted from the resulting hash (M, R)
3) 레스펀스 행위는 아래 연산으로 이루어진다.3) Response action consists of the following operations.
상기 증인은 Q1에서 Qm까지의 m개의 비밀값과 모듈러스 n 을 가질 때에, 상기 초기 챌린지에 따른 커미트먼트와 비밀값의 행위의 각 랜덤값 r을 사용하여 하나 이상의 레스펀스 D를 계산한다.When the witness has m secret values Q 1 to Q m and modulus n, the witness calculates one or more responses D using each random value r of the commitment and secret value behavior according to the initial challenge.
X = Q1 d1×Q2 d2× ... ×Qm dm (mod n) X = Q 1 d1 × Q 2 d2 × ... × Q m dm (mod n)
D = r×X(mod n) D = r × X (mod n)
상기 증인은 실행 시에 p1에서 pf까지의 f개의 소인수와 m×f개의 비밀요소 Qij를 가질 때, 커미트먼트 행위의 랜덤값의 각 컬렉션을 사용하여 f개의 레스펀스요소의 하나이상의 콜렉션(collection)을 계산하며, 상기 레스펀스 요소의 각 콜렉션은 소인수마다 하나의 요소로 이루어진다.The witness may, at runtime, have one or more primes from p 1 to p f and m × f secret elements Q ij , using each collection of random values of commitment behavior, using one or more collections of f response elements ( collection), and each collection of response elements consists of one element per prime factor.
Xi = Q1,i d1×Q2,i d2× ... ×Qm,i dm (mod pi) X i = Q 1, i d1 × Q 2, i d2 × ... × Q m, i dm (mod p i )
Di = riXi(mod pi)D i = r i X i (mod p i )
레스펀스요소의 각 컬렉션에서, 상기 증인은 차이이스 잉여 기술에 따라서 커미트먼트를 설정한다. 챌린지와 동일한 수의 레스펀스가 존재한다.In each collection of response elements, the witness establishes a commitment in accordance with the difference surplus technique. There is the same number of responses as the challenge.
D = 차이이스 잉여 (D1,D2,...,Df)D = difference surplus (D 1 , D 2 , ..., D f )
상기 서명자는 아래 사항을 포함하는 서명부록을 첨가할 때에 상기 메시지M에 서명한다. The signer signs the message M when adding a signature addendum containing :
- 각 GQ2 트리플릿 즉 각 커미트먼트 R, 각 챌린지 d 및 각 레스펀스 DEach GQ2 triplet, ie each commitment R, each challenge d, and each response D
- 또는, 각 커미트먼트 R 및 이에 대응하는 각각 레스펀스 D,Or, each commitment R and its corresponding response D,
- 또는, 각 챌린지 d 및 이에 대응하는 각각 레스펀스 D.Or, for each challenge d and the corresponding response D, respectively.
검증(verification)연산의 실행과정은 서명 부록의 컨텐츠에 의존한다. 이러한 의존성에 대해 3가지 경우를 들 수 있다. The implementation of the verification operation depends on the content of the signature appendix. There are three cases for this dependency.
부록이 하나 이상의 트리플릿으로 이루어진 경우, 상기 확인(checking) 연산과정은 순서(chronology)가 관계없는 2 개의 독립적인 절차를 갖는다. 아래 2개의 조건이 이행되는 경우에만, 상기 제어자는 서명된 메시지를 수용하게 된다. If the appendix consists of more than one triplet , the checking operation has two independent procedures that are independent of chronology. Only when the following two conditions are fulfilled, the controller will accept the signed message.
우선, 각 트리플릿이 일관성(consistent : 아래 타입의 적절한 관계가 인증되어야 함)이 있고, 수용성(acceptable : 비제로값으로 비교되어야 함)이 있어야 한다.First, each triplet must be consistent (an appropriate relationship of the following types must be authenticated) and acceptable (compare by nonzero).
예를 들면, 일련의 초기 연산으로 상기 레스펀스 D를 전환한다. 즉, k 제곱된 (mod n)을 기수로 k-l번의 곱셈 또는 나눗셈 (mod n)으로 분리한다. i 번째 제곱과 i+1 번째 제곱사이에서 실행되는 제i 번째 곱셈 또는 나눗셈의 경우, 상기 초기 챌린지 d1의 i번째 비트는 g1를 사용하는 것이 필요한지 여부를 지시한다. 즉, 상기 초기 챌린지 d2의 i번째 비트는 g2를 사용하는 것이 필요한지 여부를 지시하고, 이런 식으로 초기 챌린지 dm의 i번째 비트는 gm를 사용하는 것이 필요한지 여부까지를 지시한다. 이와 같이, 상기 서명 부록 내에서 커미트먼트 R 각각을 검색하는 것이 요구된다.For example, the response D is switched in a series of initial operations. That is, k squared (mod n) is divided into bases of kl times or divisions (mod n). For the i th multiplication or division performed between the i th square and the i + 1 th square, the i th bit of the initial challenge d 1 indicates whether it is necessary to use g 1 . That is, the i th bit of the initial challenge d 2 indicates whether it is necessary to use g 2 , and in this way, the i th bit of the initial challenge d m indicates whether or not it is necessary to use g m . As such, it is required to retrieve each of the commitments R within the signature appendix.
나아가, 하나의 트리플릿 또는 복수의 트리플릿은 메시지 M에 링크되어야 한다. 모든 커미트먼트 R과 상기 메시지 M을 해싱함으로써, 각각의 챌린지 d를 복구할 수 있는 해싱코드를 얻는다.Furthermore, one triplet or multiple triplets should be linked to the message M. By hashing all of the commitments R and the message M, a hashing code is obtained that can recover each challenge d.
결과 해시(M,R)로부터 추출된 것과 동일한 d = d1,d2,...,dm . The same d = d 1 , d 2 , ..., d m as extracted from the resulting hash (M, R) .
부록이 챌린지를 갖고 있지 않은 경우에는, 상기 확인 연산은 모든 커미트먼트 R과 상기 메시지 M을 해싱함으로써 하나 이상의 챌린지 dn의 복구 단계로 시작한다. If the appendix does not have a challenge , the verify operation begins with a recovery phase of one or more challenges d n by hashing all the commitments R and the message M.
결과 해시(M,R)로부터 추출된 d' = d'1,d'2,...,d'm.D '= d' 1 , d ' 2 , ..., d' m extracted from the resulting hash (M, R).
다음으로, 각 트리플릿이 일관성(consistent : 아래 타입의 적절한 관계가 인증됨)과, 수용성(acceptable; 비제로값으로 비교되어야 함)이 있기만 하면. 제어자는 서명된 메시지를 수용한다.Next, as long as each triplet is consistent (an appropriate relationship of the following types is authenticated) and acceptable (must be compared by nonzero value). The controller accepts the signed message.
부록이 커미트먼트를 포함하지 않는 경우에는 상기 확인 연산은 아래 2 식 중 적절한 하나의 식에 따라서 하나 이상의 커미트먼트 R'을 복구하는 단계로 시작된다. 제로인 재확립된 커미트먼트은 없다. If the appendix does not include a commitment, the check operation begins with restoring one or more commitments R 'according to the appropriate one of the following two equations. There is no zero-established commitment.
이어, 제어자는 각 챌린지 d를 재구성하기 위해 모든 커미트먼트 R' 및 상기메시지 M을 해시해야 한다.The controller must then hash all of the commitments R 'and the message M to reconstruct each challenge d.
결과 해시(M,R)로부터 추출된 것과 동일한 d = d1, d2 ,..., dm The same d = d 1 , extracted from the resulting hash (M, R), d 2 , ..., d m
재구성된 각각의 챌린지가 부록에 있는 대응하는 챌린지와 동일하기만 하면, 상기 제어자는 각 서명된 메시지를 수용한다.
As long as each challenge reconstructed is the same as the corresponding challenge in the appendix, the controller accepts each signed message.
본 발명은 엔티티(entity)의 진정성 및/또는 메시지의 무결성(integrity) 및/또는 진정성을 검증하기 위한 방법, 시스템, 및 장치들에 관한 것이다. The present invention relates to methods, systems, and apparatuses for verifying the authenticity of an entity and / or the integrity and / or authenticity of a message.
Claims (29)
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9912467A FR2788912B1 (en) | 1999-01-27 | 1999-10-01 | METHOD, SYSTEM, DEVICE FOR PROVIDING THE AUTHENTICITY OF AN ENTITY AND / OR THE INTEGRITY AND / OR AUTHENTICITY OF A MESSAGE BY MEANS OF FIRST PARTICULAR FACTORS |
FR99/12465 | 1999-10-01 | ||
FR9912468A FR2824974B1 (en) | 1999-01-27 | 1999-10-01 | METHOD FOR PROVIDING THE AUTHENTICITY OF AN ENTITY OR THE INTEGRITY OF A MESSAGE BY MEANS OF A PUBLIC EXHIBITOR EQUAL TO A POWER OF TWO. |
FR99/12468 | 1999-10-01 | ||
FR9912465A FR2788908B1 (en) | 1999-01-27 | 1999-10-01 | METHOD, SYSTEM, DEVICE FOR PROVIDING THE AUTHENTICITY OF AN ENTITY AND / OR THE INTEGRITY AND / OR AUTHENTICITY OF A MESSAGE |
FR99/12467 | 1999-10-01 | ||
FR0009644 | 2000-07-21 | ||
FR00/09644 | 2000-07-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020060188A KR20020060188A (en) | 2002-07-16 |
KR100844546B1 true KR100844546B1 (en) | 2008-07-08 |
Family
ID=58044230
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027004209A KR100844546B1 (en) | 1999-10-01 | 2000-09-29 | Method, system, device for proving the authenticity of an entity or integrity of a message |
KR1020027004229A KR20020060189A (en) | 1999-10-01 | 2000-09-29 | Set of particular keys for proving authenticity of an entity or the integrity of a message |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027004229A KR20020060189A (en) | 1999-10-01 | 2000-09-29 | Set of particular keys for proving authenticity of an entity or the integrity of a message |
Country Status (1)
Country | Link |
---|---|
KR (2) | KR100844546B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101940881B1 (en) | 2016-12-23 | 2019-01-21 | 주식회사 포스코 | Monitoring system for roll grinder |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0311470A1 (en) * | 1987-09-07 | 1989-04-12 | France Telecom | Methods and systems to authenticate authorizations and messages with a zero knowledge-proof system and to provide messages with a signature |
WO1989011706A1 (en) * | 1988-05-19 | 1989-11-30 | Ncr Corporation | Method and device for authentication |
WO1996033567A1 (en) * | 1995-04-20 | 1996-10-24 | Gemplus | Process for generating electronic signatures, in particular for smart cards |
EP0792044A2 (en) | 1996-02-23 | 1997-08-27 | Fuji Xerox Co., Ltd. | Device and method for authenticating user's access rights to resources according to the Challenge-Response principle |
-
2000
- 2000-09-29 KR KR1020027004209A patent/KR100844546B1/en not_active IP Right Cessation
- 2000-09-29 KR KR1020027004229A patent/KR20020060189A/en not_active Application Discontinuation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0311470A1 (en) * | 1987-09-07 | 1989-04-12 | France Telecom | Methods and systems to authenticate authorizations and messages with a zero knowledge-proof system and to provide messages with a signature |
WO1989011706A1 (en) * | 1988-05-19 | 1989-11-30 | Ncr Corporation | Method and device for authentication |
WO1996033567A1 (en) * | 1995-04-20 | 1996-10-24 | Gemplus | Process for generating electronic signatures, in particular for smart cards |
EP0792044A2 (en) | 1996-02-23 | 1997-08-27 | Fuji Xerox Co., Ltd. | Device and method for authenticating user's access rights to resources according to the Challenge-Response principle |
Also Published As
Publication number | Publication date |
---|---|
KR20020060188A (en) | 2002-07-16 |
KR20020060189A (en) | 2002-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Camenisch et al. | Efficient protocols for set membership and range proofs | |
US4759064A (en) | Blind unanticipated signature systems | |
Beth | Efficient zero-knowledge identification scheme for smart cards | |
Fiat et al. | How to prove yourself: Practical solutions to identification and signature problems | |
EP0503119A1 (en) | Public key cryptographic system using elliptic curves over rings | |
JP4809310B2 (en) | Method, system, device for proving entity authenticity or message integrity | |
TW201320700A (en) | Signature verification device, signature verification method, program, and recording medium | |
TW201320701A (en) | Information processing device, information processing method, and program | |
US6959085B1 (en) | Secure user identification based on ring homomorphisms | |
JP4772965B2 (en) | Method for proving entity authenticity and / or message integrity | |
Wu et al. | Efficient partially blind signatures with provable security | |
Ateniese et al. | Leakage-resilient identification schemes from zero-knowledge proofs of storage | |
KR100844546B1 (en) | Method, system, device for proving the authenticity of an entity or integrity of a message | |
US6978372B1 (en) | Verification of correct exponentiation or other operations in cryptographic applications | |
Lyuu et al. | Convertible group undeniable signatures | |
KR100676460B1 (en) | Method for proving the authenticity of an entity and/or the integrity of a message by means of a public exponent equal to the power of two | |
Lee et al. | On the Security of Nova Recursive Proof System | |
Huang et al. | New constructions of convertible undeniable signature schemes without random oracles | |
Garjan et al. | Supersingular Isogeny-based Ring Signature | |
Maire et al. | Efficient Zero-Knowledge Arguments and Digital Signatures via Sharing Conversion in the Head | |
Wesolowski | A proof of time or knowledge | |
JPH0695590A (en) | Electronic signature system and electronic signature method | |
Beullens | Week 4: Signatures based on SIDH and CSIDH. | |
Asaar et al. | Identity‐based proxy signatures: a generic construction and a concrete scheme from RSA | |
Al-Saidi et al. | A new idea in zero knowledge protocols based on iterated function systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120628 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |