KR100198810B1 - Multi-signature method and modular value generation method - Google Patents

Multi-signature method and modular value generation method Download PDF

Info

Publication number
KR100198810B1
KR100198810B1 KR1019960063174A KR19960063174A KR100198810B1 KR 100198810 B1 KR100198810 B1 KR 100198810B1 KR 1019960063174 A KR1019960063174 A KR 1019960063174A KR 19960063174 A KR19960063174 A KR 19960063174A KR 100198810 B1 KR100198810 B1 KR 100198810B1
Authority
KR
South Korea
Prior art keywords
rsa
signature
public key
signer
modular
Prior art date
Application number
KR1019960063174A
Other languages
Korean (ko)
Other versions
KR19980045017A (en
Inventor
박상준
박상우
김광조
이대기
Original Assignee
정선종
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 정선종, 한국전자통신연구원 filed Critical 정선종
Priority to KR1019960063174A priority Critical patent/KR100198810B1/en
Publication of KR19980045017A publication Critical patent/KR19980045017A/en
Application granted granted Critical
Publication of KR100198810B1 publication Critical patent/KR100198810B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04KSECRET COMMUNICATION; JAMMING OF COMMUNICATION
    • H04K1/00Secret communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 RSA(Rivest Shamir Adleman) 공개키 암호 시스템(public key cryptosystem)을 이용하여 다중 서명(multisignature) 즉, 하나의 메시지에 복수의 사용자가 서명을 하는 경우에 각 사용자의 RSA 모듈러(modular) 값의 크기 차이로 인하여 필연적으로 발생하는 블록 보호(blocking) 문제를 해결하기 위한 방법에 관한 것으로, 모든 사용자가 동일한 길이를 가지며 최상위 1 비트 형태가 동일한 RS 모듈러 값을 사용하는 RSA 다중 서명 과정에 필요한 RSA 모듈러 값을 생성하는 방법과 이러한 RSA 모듈러 값을 사용하여 다중 서명하는 방법을 제안한다.The present invention uses the RSA (Rivest Shamir Adleman) public key cryptosystem (multisignature), that is, when multiple users sign a single message, the RSA modular value of each user The present invention relates to a method for solving a block protection problem inevitably caused by a difference in size of RSA. RSA is required for an RSA multi-signature process in which all users have the same length and use the same RS modular value with the highest 1-bit type. We propose a method of generating modular values and multiple signing using these RSA modular values.

RSA 공개키 암호 시스템은 인수 분해 문제의 어려움에 근거한 공개키 암호 시스템으로 디지털 서명(digital signature)에 적용 가능하다. 그러나 여러 명이 하나의 서류에 다중 서명하고자 할 경우에는 각 사용자들이 가지고 있는 RSA 모듈러 값들의 차이로 인하여 블록 보호 문제가 유발된다. 여기서 블록 보호 문제란 임의의 서명자가 생성한 RSA 서명문에 대하여 또 다른 서명자가 서명하고자 하고 기 생성된 RSA 서명문이 또 다른 서명자의 RSA 모듈러 값보다 큰 경우에 발생하는데, 이 경우 서명 검증은 서명이 올바르게 수행되었다 하더라도 실패하게 된다. 이러한 블럭 보호 문제를 해결하기 위한 방법으로 RSA 공개키 암호 시스템의 모든 사용자들이 동일한 길이를 갖으며 최상위 1 비트 형태가 동일한 RSA 모듈러 값을 갖도록 하는 방법을 제안한다. 이런 시스템에서 사용자들이 다중 서명을 하게 되면 블록 보호 문제를 높은 확률로서 해결할 수 있다. 그러나 이 경우 특정 길이를 가지며 최상위 1 비트 형태가 어떤 일정한 값을 가지고 큰 소인수를 가지는 두 소수(prime number)의 곱이 되는 RSA 모듈러 값이 필수적으로 필요하다. 여기서 큰 소인수를 가진다는 것은 RSA 공개키 암호 시스템이 안전하기 위한 필수 조건들중 하나인데, 본 발명을 통하여 이러한 특성을 만족하는 RSA 모듈러 값을 생성할 수 있다. 따라서 모든 사용자가 동일한 길이를 가지며 최상위 1 비트 형태가 동일한 RSA 모듈러 값을 사용하는 RSA 다중 서명 방법을 실제로 구현할 수 있게 되며, 궁극적으로 모든 사용자들이 특정 길이를 가지며 최상위 1 비트 형태가 동일하고 큰 소인수를 가지는 2개의 소수의 곱인 RSA 모듈라 값을 가지는 RSA 공개키 암호 시스템의 실질적인 구현이 가능하게 된다.The RSA public key cryptosystem is a public key cryptosystem based on the difficulty of factoring problems and is applicable to digital signatures. However, if several people want to multi-sign a single document, a block protection problem is caused by the difference in RSA modular values of each user. The block protection problem here occurs when another signer wants to sign an RSA signature generated by an arbitrary signer, and the pre-generated RSA signature is larger than another signer's RSA modular value. Will fail even if done correctly. To solve this block protection problem, we propose a method that all users of the RSA public key cryptosystem have the same length and the most significant 1-bit type has the same RSA modular value. In such a system, users can multi-sign and solve the block protection problem with a high probability. However, in this case, an RSA modular value is essentially required, which is a product of two prime numbers having a certain length and having a certain constant and a large prime number. Here, having a large prime factor is one of the prerequisites for the RSA public key cryptosystem to be secure. According to the present invention, an RSA modular value satisfying these characteristics can be generated. Thus, it is possible to actually implement an RSA multi-signature method in which all users have the same length and the same RSA modular value with the highest 1-bit form, and ultimately all users have a certain length, the same one with the highest 1-bit form, and a large prime factor. It is possible to implement a practical implementation of the RSA public key cryptosystem with RSA modular value that is the product of two prime numbers.

Description

다중 서명 방법 및 이에 적합한 모듈러 값 생성 방법Multiple signature method and suitable modular value generation method

본 발명은 다중 서명 방법 및 이에 적합한 모듈러 값 생성 방법에 관한 것으로, 특히 RSA(Rivest Shamir Adleman) 공개키 암호 시스템을 이용하여 복수의 사람이 하나의 메세지에 다중 서명을 하는 경우 필연적으로 발생되는 블록 보호 문제를 해결할 수 있도록 한 다중 서명 방법 및 이에 적합한 모듈러 값 생성 방법에 관한 것이다.The present invention relates to a multiple signing method and a method for generating a modular value suitable for the same, and particularly, a block protection inevitably generated when a plurality of people multi-sign a single message by using a RSA (Rivest Shamir Adleman) public key cryptosystem. The present invention relates to a multi-signature method and a method for generating modular values suitable for solving the problem.

일반적으로 공개키 암호 시스템은 제1도에 도시된 바와 같이 각 사용자(Ui)가 자신의 공개키(public key : Eui)를 공개키 디렉토리(public key directory; 11)에 등록시키므로써 공개되도록 구성된다. 즉, 상기 공개키 디렉토리(11)는 공개키 암호 시스템의 각 사용자의 공개키(E1i)를 보관하고 있다. 또한 각 사용자는 자신의 공개키(Eui)에 대응하는 비밀키(Dui)를 안전하게 보관한다.In general, a public key cryptosystem is disclosed by registering each user U i with a public key (E ui ) in a public key directory 11, as shown in FIG. It is composed. That is, the public key directory 11 stores the public key E 1i of each user of the public key cryptosystem. In addition, each user securely stores a secret key (D ui ) corresponding to his public key (E ui ).

따라서 각 사용자는 디지털 서명시 자신이 안전하게 보관하고 있는 비밀키(Dui)를 사용하여 메시지에 디지털 서명을 수행한 후 수신자에게 전송하며 수신자는 공개키 디렉토리에 보관된 송신자의 공개키(Eui)를 사용하여 서명을 확인한다. 그러면 상시 공개키 암호 시스템을 이용한 디지털 서명 절차를 제2도를 통해 설명하면 다음과 같다.Therefore, each user digitally signs the message using his private key (D ui ), which he keeps safe when digitally signing, and sends it to the recipient, and the recipient sends the sender's public key (E ui ) stored in the public key directory. To verify the signature. Then, the digital signature procedure using the public key cryptography system will be described with reference to FIG.

시작 단계로부터 단계(21)로 진행하여 송신자(Ui)는 우선 서명하고자 하는 메시지를 생성한다. 그리고 단계(22)로 진행하여 자신의 비밀키(Dui)를 사용하여 서명하고자 하는 메시지에 대한 서명(Si)을 생성한 후 단계(23)로 진행하여 메시지와 서명(Si)을 수신자(Uj)에게 전송한다. 이후 단계(24)에서 수신자(Uj)는 공개키 디렉토리에 등록된 송신자(Ui)의 공개키(Eui)를 사용하여 수신한 서명을 복호화 한 다음 단계(25)로 진행하여 서명 확인을 수행한다. 이때 상기 복호화하여 얻은 결과가 상기 송신자(Ui)가 서명과 함께 송신한 메시지와 동일한 경우 상기 수신자(Uj)는 서명을 확인한 후 종료하고, 동일하지 않은 경우 단계(26)으로 진행하여 상기 수신을 거절하거나 상기 송신자(Ui)에게 재 전송을 요구한다. 그러면 여기서 상기 RSA 공개키 암호 시스템의 구성 절차를 제3도를 통해 설명하기로 한다.Proceeding from the start step to step 21, the sender U i first generates a message to be signed. Proceed to step 22 to generate a signature (S i ) for the message to be signed using its private key (D ui ), and then proceed to step 23 to receive the message and signature (S i ) Send to (U j ). Subsequently, in step 24, the receiver U j decrypts the received signature using the public key E ui of the sender U i registered in the public key directory, and then proceeds to step 25 to confirm signature verification. Perform. At this time, if the result obtained by the decryption is the same as the message sent by the sender U i with the signature, the receiver U j checks the signature and terminates. If not, proceeds to step 26 and receives the received message. Reject or request retransmission from the sender U i . Next, a configuration procedure of the RSA public key cryptosystem will be described with reference to FIG. 3.

상기 RSA 공개키 암호 시스템을 구성하기 위하여 사용자(Ui)는 먼저 시작 단계로부터 단계(31)로 진행하여 두 개의 소수 Pi와 Qi를 생성한 후 단계(32)로 진행하여 Ni를 계산하는 데, 상기 Ni는 하기의 식 1과 같이 상기 두개의 소수 Pi와 Qi의 곱에 의해 산출된다. 이후 단계(33)으로 진행하여 (Pi-1) X (Qi-1)과 서로소인 정수 Di를 선택한다. 그리고 단계(34)로 진행하여 상기 모듈러(Pi-1) X (Qi-1)에 대한 Di의 곱셈의 역원 Ei을 계산한 다음 단계(35)로 진행하여 자신의 RSA 공개키 Eui=(Ei, Ni)를 공개키 디렉토리에 등록하고 단계(36)로 진행하여 RSA 비틸키 Dui=(Pi, Qi, Ni)를 안전하게 보관한다.In order to configure the RSA public key cryptosystem, the user U i first proceeds from the start step to step 31 to generate two prime numbers P i and Q i and then proceeds to step 32 to calculate N i . N i is calculated by multiplying the two prime numbers P i and Q i as in Equation 1 below. Proceed to step 33, where (P i -1) X (Q i -1) and an integer D i mutually different are selected. Proceed to step 34 to calculate the inverse Ei of the multiplication of Di for the modular (P i -1) X (Q i -1), and then proceed to step 35 to set the RSA public key E ui = Register (E i , N i ) in the public key directory and proceed to step 36 to securely store the RSA beta key D ui = (P i , Q i , N i ).

즉, 제2도 및 제3도를 바탕으로 한 RSA 공개키 암호 시스템을 이용한 디지털 서명 절차를 설명하면, 송신자 Ui는 서명하고자 하는 메시지 M을 생성한다. 그리고 상기 송신자 Ui는 자신의 비밀키 Di를 사용하여 상기 메시지 M에 대한 서명 Si을 다음의 식 2와 같이 생성한다.In other words, when the digital signature procedure using the RSA public key cryptosystem based on FIG. 2 and FIG. 3 is described, the sender U i generates a message M to be signed. The sender U i generates a signature S i for the message M using its private key D i as shown in Equation 2 below.

그리고 상기 M과 Si를 상기 수신자 Uj에게 전송한다. 그리고 상기 송신자 Ui로 부터 상기 M과 Si를 수신한 상기 수신자 Uj는 공개키 디렉토리에 등록된 상기 송신자 Ui의 공개키를 사용하여 다음의 식 3과 같은 과정을 통해 서명 Si를 복호한다The M and S i are transmitted to the receiver U j . And the public key of the sender from the M U i and the receiver receiving the S i U j is the sender of the U i registered in the public key directory, Decode the signature S i using the same procedure as in Equation 3 below.

상기와 같은 복호 과정에서 상기 M을 올바르게 얻는 경우에 상기 수신자 Uj는 서명을 올바른 것으로 판단하며 사아기 M이 올바르지 않은 경우에는 수신을 거절하거나 재전송을 요구한다.When the M is correctly obtained in the decoding process, the receiver U j determines that the signature is correct, and when the baby M is not correct, the receiver U j rejects the reception or requests retransmission.

상기 RSA 공개키 암호 시스템을 사용하여 복수의 사용자가 하나의 문서에 서명 즉, 다중 서명하고자 할 경우에는 블록 보호 문제가 발생되는데, 이를 쉽게 설명하면 다음과 같다.When a plurality of users want to sign one document, that is, multiple signatures using the RSA public key cryptosystem, a block protection problem occurs.

예를들어 사용자 U1과 U2가 하나의 메시지 M에 서명을 하고, 이때 각각의 RSA 공개키는 (E1, N1)와 (E2, N2)이고 RSA 비밀키는 (D1, P1, Q1)와 (D2, P2, Q2)이며 상기 N1≤ N2이라면, 첫째, 상기 사용자 U1이 먼저 서명한 후 상기 사용자 U2가 서명한 경우, 상기 사용자 U1이 메시지 M에 서명한 결과를 S1이라고 하면 S1=MD1Mod N1이 된다. 그리고 상기 사용자 U2가 상기 사용자 U1의 서명 결과 S1에 자신의 RSA 비밀키 D2를 사용하여 서명하면, 그 결과 S2=S1 D1Mod N2=(MD1Mod N1)D2Mod N2가 된다.For example, users U 1 and U 2 sign a message M, where each RSA public key is (E 1 , N 1 ) and (E 2 , N 2 ) and the RSA private key is (D 1 , P 1 , Q 1 ) and (D 2 , P 2 , Q 2 ) and if N 1 ≤ N 2 , firstly, when the user U 1 signs first and then the user U 2 signs, the user U 1 If the result of signing this message M is S 1 , then S 1 = M D1 Mod N 1 . If the user U 2 signs the signature result S 1 of the user U 1 using his RSA secret key D 2 , the result S 2 = S 1 D1 Mod N 2 = (M D1 Mod N 1 ) D2 Mod N 2 is obtained.

둘째, 상기 사용자 U2가 먼저 서명을 하는 경우, S1=MD2Mod N2가 된다. 이후 상기 사용자 U1이 서명하면 상기 N1≤ N2이므로 S1≥ N1일 확률이 발생하며, 이러한 경우에 상기 S1에 대한 상기 사용자 U1의 서명은 S'≡S1Mod N1에 대한 서명과 동일하게 된다. 따라서 서명하는 사용자의 서명 순서에 따라 다른 서명이 생성될 수 있다. 이를 블록 보호 문제라 하는데, 다중 서명시에도 이에 참여하는 각 사용자간의 RSA 모듈러 값 Ni들의 크기가 다르기 때문에 블록 보호 문제가 발생한다.Second, when the user U 2 signs first, S 1 = M D2 Mod N 2 . After the user U 1 signs, since N 1 ≤ N 2 , a probability S 1 ≥ N 1 occurs. In this case, the signature of the user U 1 for S 1 is determined by S'≡S 1 Mod N 1 . Will be identical to the signature for. Thus, different signatures can be generated according to the signature order of the signing user. This is called a block protection problem. The block protection problem occurs even when multiple signatures have different sizes of RSA modular values N i between each user.

그래서 이러한 문제를 해결하기 위하여 여러 가지 RSA 공개키 암호 시스템을 이용한 다중 서명 방법이 제안되어 왔다. 그중 비트 확장을 발생시키지 않는 방법이 있는데, 이는 서명에 참여하는 사용자들중 가장 크기가 작은 RSA 모듈러 값을 가지는 사용자부터 서명하는 것이다. 그러나 이 방법을 이용하는 경우 상기 RSA 모듈러 값에 따라 서명의 순서가 제한되며 다중 서명중에 새로운 사용자가 서명에 참여할 수 없는 단점이 있다. 다른 방법으로는 다중 서명에 참여하는 모든 사용자들이 특정한 형태의 RSA 모듈러 값을 사용하여 블록 보호 문제 발생 확률을 최소화하는 방법이 있다.Therefore, in order to solve this problem, a multiple signature method using various RSA public key cryptosystems has been proposed. Among them, there is a method that does not cause bit expansion, which is to sign the user having the smallest RSA modular value among the users participating in the signature. However, when using this method, the order of signatures is limited according to the RSA modular value, and a new user cannot participate in a signature during multiple signatures. Alternatively, all users participating in multiple signatures can use a particular type of RSA modular value to minimize the probability of block protection problems.

따라서 본 발명은 모든 사용자가 동일한 길이를 가지며 동일한 상위 1 비트 형태를 가지는 RSA 모듈러 값을 사용하여 다중 서명을 하므로써 상기한 단점을 해소할 수 있는 다중 서명 방법 및 이에 적합한 모듈러 값 생성 방법을 제공하는 데 그 목적이 있다.Accordingly, the present invention provides a multi-signature method and a modular value generation method suitable for solving the above-mentioned disadvantages by multi-signing using RSA modular values having the same length and having the same upper 1-bit form. The purpose is.

상기한 목적을 달성하기 위한 본 발명에 따른 다중 서명 방법은 시작 단계로부터 첫 번째 서명자를 선택한 후 첫 번째 서명자의 비밀키 및 모듈러 값 N1을 입력받는 제1단계와, 상기 제1단계로부터 메시지에 대한 서명을 생성하는 제2단계와, 상기 제2단계로부터 상기 서명과 H의 크기를 비교하는 제3단계와, 상기 제3단계로부터 상기 서명이 상기 H보다 크거난 같은 경우 상기 첫 번째 서명자는 상기 서명이 상기 H보다 작아질 때까지 지수승 연산을 반복 실시하는 제4단계와, 상기 제3단계로부터 상기 서명이 상기 H보다 작은 경우 상기 서명자의 순서를 확인하는 제5단계와, 상기 제5단계로부터 상기 서명을 두 번째 서명자에게 전송하는 제6단계와, 상기 제6단계로부터 상기 서명자의 순서를 비교한 후 메시지에 대한 다중 서명을 수신한 사용자는 상기 서명자의 공개키를 이용하여 복호과정을 수행하는 제7단계와, 상기 제7단계로부터 연산된 서명과 H의 크기를 비교하는 제8단계와, 상기 제8단계로부터 상기 서명이 H보다 큰 경우 서명이 H보다 작아질 때까지 지수승 연산을 반복 실시하는 제9단계와, 상기 제9단계로부터 마지막 서명을 수신하여 확인한 후 메시지가 올바른 경우에는 진행을 종료하고 메시지가 올바르지 않은 경우에는 수신을 거절하거나 재전송을 요구하는 제10단계로 이루어지는 것을 특징으로 하며, 본 발명에 따른 다중 서명 방법에 적합한 모듈러 값 생성 방법은 모든 사용자들이 특정의 길이를 가지며 최상위 1 비트 형태가 동일하고 큰 소인수를 가지는 2개의 소수의 곱으로 이루어지는 것을 특징으로 한다.In order to achieve the above object, a multi-signature method according to the present invention includes a first step of selecting a first signer from a start step and receiving a secret key and a modular value N 1 of a first signer, and a message from the first step. A second step of generating a signature for the second step; a third step of comparing the magnitude of the signature and H from the second step; and if the signature from the third step is greater than the H, the first signer A fourth step of repeating an exponential operation until the signature is smaller than H, a fifth step of checking the order of the signers when the signature is smaller than H from the third step, and the fifth step The sixth step of transmitting the signature from the sixth signer to the second signer, and the user receiving the multiple signatures for the message after comparing the order of the signers from the sixth step, A seventh step of performing a decryption process using the public key of the third party; an eighth step of comparing the magnitude of the signature calculated from the seventh step with H; and a signature if the signature is larger than H from the eighth step. The ninth step of repeating the exponential operation until it is smaller than H, and after receiving and confirming the last signature from the ninth step, if the message is correct, proceeds to stop and if the message is not correct, rejects or resends The modular value generation method suitable for the multi-signature method according to the present invention is characterized in that it comprises a tenth step that requires a number of two prime numbers of which all users have a specific length, have the same top 1-bit form, and have a large prime factor. It is characterized by consisting of a product.

제1도는 일반적인 공개키 암호 시스템을 설명하기 위한 구성도.1 is a configuration diagram illustrating a general public key cryptosystem.

제2도는 공개키 암호 시스템을 이용한 디지털 서명 절차를 설명하기 위한 흐름도.2 is a flowchart illustrating a digital signature procedure using a public key cryptosystem.

제3도는 RSA 공개키 암호 시스템의 구성 절차를 설명하기 위한 흐름도.3 is a flowchart illustrating a configuration procedure of an RSA public key cryptosystem.

제4도는 모든 사용자가 동일한 길이를 가지며 최상위 1 비트 형태가 동일한 RSA 모듈러 값을 사용하는 RSA 공개키 암호 시스템의 다중 서명 절차를 설명하기 위한 흐름도.4 is a flow chart illustrating a multiple signing procedure of an RSA public key cryptosystem where all users have the same length and the same highest order one bit type uses the same RSA modular value.

제5도는 특정 길이의, 그리고 특정한 상위 1 비트 형태 및 큰 소인수를 가지는 2개의 소수의 곱인 RSA 모듈러 값 생성 절차를 설명하기 위한 흐름도.FIG. 5 is a flow chart illustrating an RSA modular value generation procedure of a product of two prime numbers of a particular length and with a particular upper one bit form and a large prime factor.

이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings will be described in detail the present invention.

제4도는 모든 사용자가 동일한 길이를 가지며 죄상위 1 비트 형태가 동일한 RSA 모듈러 값을 사용하는 RSA 공개키 암호 시스템의 다중 서명 절차를 설명하기 위한 흐름도로서, 먼저,을 다중 서명에 참여하는 서명자들이라 하고,을 상기 각 서명자들의 RSA 모듈러 값이라 하자. 그리고 상기 서명자들의 RSA 모듈러 값들은 모두 K 비트의 길이를 갖으며 최상위 1 비트 형태가 동일하다고 하자. 그러면 각 사용자들의 RSA 모듈러 값 Ni는 하기의 식 4와 같이 표현될 수 있다.4 is a flowchart illustrating a multiple signing procedure of an RSA public key cryptosystem where all users have the same length and the same 1-bit form of RSA modular value. Are called signers participating in multiple signatures, Let be the RSA modular value of each of the above signers. The RSA modular values of the signers all have a length of K bits and assume that the most significant 1 bit type is the same. Then, the RSA modular value N i of each user may be expressed as in Equation 4 below.

여기서 상기 CX2K-1를 기준치 H라 하자. 그리고 Ei및 Ni는 서명자 U1의 RSA 공개키이고, Di, Pi및 Qi는 서명자 Ui의 RSA 비밀키이다. 그러면 이 경우 상기 서명자에 의하여 평문 M〈 N1에 대한 다중 서명을 생성하는 과정을 설명한다.Let CX2 K-1 be the reference value H. And E i and N i are the RSA public key of signer U 1 , and D i , P i and Q i are the RSA private key of signer U i . Then in this case the signer The process of generating multiple signatures for plaintext M < N 1 will be described.

먼저 시작단계로부터 단계(400)로 진행하여 첫 번째 서명자를 선택하고 단계(401)로 진행하여 자신의 비밀키 D1과 자신의 모듈러 값 N1을 입력한다. 이후 단계(402)로 진행하여 U1은 메시지 M에 대한 서명 S1을 하기의 식 5와 같이 생성한다.First, proceeding from the start step to step 400 to select the first signer, and proceeds to step 401 to enter their private key D 1 and its own modular value N 1 . Subsequently, proceeding to step 402, U 1 generates a signature S 1 for the message M as shown in Equation 5 below.

다음으로 단계(403)로부터 진행하여 상기 S1에 대한 확인을 수행한 후 상기 S1≥ H인 경우 단계(404)로 진행하여 상기 첫 번째 서명자 U1은 상기 S1이 H보다 작아질 때까지 S1=S1 D1Mod N1을 반복하여 계산한다. 그리고 상기 S1이 상기 H보다 작아지면 상기 S1을 두번째 서명자 U2에게 전송한다. 계속해서 i번째 서명자 Ui는 i-1번째 서명자 Ui-1로부터 수신한 서명 Si-1에 대하여 Si=Si-1 DiMod Ni를 계산한다(단계 402). 다음으로 Si에 대한 확인 수행한다(단계 403). 만일 Si≥ H이면 i번째 서명자 Ui는 Si가 H보다 작아질 때까지 Si=Si-1 DiMod Ni를 반복하여 계산한다(단계 404). 그리고 Si가 H보다 작아지면 Si를 i+1번째 서명자 Ui+1에게 전송한다. 마지막 서명자 Um의 서명 결과 Sm이 메시지 M에 대한 다중 서명이 된다. 상기 메시지 M에 대한 다중 서명 Sm을 수신한 이용자는에 대하여 서명자의 공개키를 이용하여 Sj-1=Sj EjMod Nj를 계산한다(단계 409). 다음으로, 이 경우에 서명시와 마찬가지로 Sj-1에 대한 확인 과정을 수행한다(410). 만약 Sj-1이 H보다 크면 Si-1이 H보다 작아질 때까지 Sj-1을 반복 계산한다(단계411). 마직막으로 Sm을 수신한 사용자는 S0와 M이 동일한 지를 확인한다(단계 414).Next, the process proceeds from step 403 to confirm the S 1 and if S 1 ≥ H proceeds to step 404 until the first signer U 1 becomes smaller than H 1 . S 1 = S 1 D1 Mod N 1 is calculated repeatedly. When S 1 becomes smaller than H, the S 1 is transmitted to the second signer U 2 . Subsequently, the i th signer U i calculates S i = S i-1 Di Mod N i for the signature S i-1 received from the i-1 th signer U i-1 (step 402). Next, a check is performed on S i (step 403). If the S i ≥ H i-th signer U i is calculated by S i is repeated for S i = S i-1 Di Mod N i until becomes smaller than H (step 404). And S i is less than H when transmits the S i to (i + 1) th signer U i + 1. Signing the result of the last signatory U m S m is a multiple signature for the message M. The user who receives the multiple signature S m for the message M Calculate S j-1 = S j Ej Mod N j using the signer's public key with respect to (step 409). Next, in this case, as in the case of signature, the verification process for S j-1 is performed (410). If S j-1 is greater than H, S j-1 is repeatedly calculated until S i-1 is less than H (step 411). Finally, the user who receives S m checks whether S 0 and M are the same (step 414).

서명 시에 Si-1 DiMod Ni〈 H이 성립할 확률은 1-2-1+1보다 크다. 따라서 1=32이상인 경우 각 서명자가 반복해서 자신의 비밀키로 지수승 연산을 수행하게 될 확률은 거의 없다. 그러므로, 서명 Sm이 생성되기까지 각 서명자들이 수행한 지수승 연산의 총 횟수는 평균 (1+2-1+1)ㆍm보다 작다. 마찬가지로 최종 Sm를 수신한 수신자는 평균 (1+2-1+1)ㆍm회의 지수승 연산만으로 검증 가능하다. 이 방법에서는 각 서명자들이 현실적으로 단 1회의 지수승 연산만을 수행하기 때문에 매우 효과적이다. 예를 들어 1=32이고 M=20이라 하면 이 방법에서 필요한 지수승 계산의 수는 평균(1+2-31)×20이 된다. 이경우 2-31은 무시할 수 있으므로 20회 정도의 지수승 연산을 수행한다고 할 수 있다. 결론적으로 제4도에 도시된 RSA 공개키 암호시스템을 이용한 다중 서명 방법은 매우 효율적인 방법이다.The probability that S i-1 Di Mod N i 〈H at signing is greater than 1-2 −1 +1 . Therefore, if 1 = 32 or more, there is little chance that each signer will repeatedly perform exponential operations with its private key. Therefore, the total number of exponential power operations performed by each signer until the signature S m is generated is less than the average (1 + 2 -1 + 1 ) m. Similarly, the receiver receiving the final S m can be verified with only an average (1 + 2 -1 + 1 ) · m exponential operation. This method is very effective because each signer actually performs only one exponential operation. For example, if 1 = 32 and M = 20, the number of exponential calculations required in this method is average (1 + 2 -31 ) x 20. In this case, 2 -31 can be ignored, so it can be said that it performs about 20 exponential power operations. In conclusion, the multiple signing method using the RSA public key cryptosystem shown in FIG. 4 is a very efficient method.

제5도는 특정의 길이, 동일한 상위 1 비트 형태이며 및 큰 소인수를 가지는 2개의 소수의 곱인 RSA 모듈러 값 생성 절차를 설명하기 위한 흐름도로서, 특정 길이를 가지며 특정한 최상위 1 비트 형태를 가진다는 조건은 상기 제4도에 도시된 RSA 다중 서명 방법에 사용하기 위한 조건이며, 큰 소인수를 가진다는 것은 RSA 공개키 암호 시스템의 근본적인 안전성을 보장하기 위함이다. 먼저 RSA 공개키 암호 시스템의 모든 사용자들은 사용하고자 하는 RSA 모듈러 값의 비트 길이 K와 1 비트 형태 C를 랜덤하게 생성하고, 이를 사용하기로 동의한다. 즉, 각 사용자들의 RSA 모듈러 값 N은 비트 길이가 K이고 최상위 1비트 형태가 C가 되어야 하며, 또한, RSA 암호의 안전성을 위하여 N은 큰 소인수를 가지는 2개 소수의 곱이 되어야 한다. 먼저 사용자 Ui는 K-1비트 랜덤수 R를 생성하여(단계 501) N=Cㆍ2K-1+R을 계산한다(단계 502). 다음으로 K/2 비트 랜덤수 P를 생성하고(단계 503), K/2-1-t 비트 소수 P'i및 Q'i을 생성한다(단계 504). 그리고 하기의 식 6을 계산한다.FIG. 5 is a flowchart for explaining a procedure of generating an RSA modular value, which is a product of two prime numbers having a specific length, the same upper 1 bit form, and having a large prime factor. It is a condition for use in the RSA multi-signature method shown in FIG. 4, and having a large prime factor is to ensure the fundamental security of the RSA public key cryptosystem. First, all users of the RSA public key cryptosystem agree to randomly generate the bit length K and the 1-bit form C of the RSA modular value to use. That is, the RSA modular value N of each user should have a bit length K and the most significant 1 bit type C. Also, for the security of the RSA cipher, N must be a product of two prime numbers with large prime factors. First, the user Ui generates a K-1 bit random number R (step 501) to calculate N = C · 2 K-1 + R (step 502). Next, generate a K / 2-bit P generates a random number (step 503), K / 2-1-t-bit prime number P 'i and Q' i (step 504). And the following formula 6 is calculated.

그리고 Pi=2ㆍP'iㆍS+1을 계산하여(단계 506) 상기 Pi가 소수인지를 확인한다(단계 507). 이것이 소수가 아니면 S=S+1(단계 509)하고 상기 단계(506)로 귀환한다. 또한 상기 Pi가 소수이면 Q=N / Pi 를 계산하고(단계 508) 다음으로 S = Q / (2·Q'i)을 계산한다(단계 510). 다음으로 Qi= 2·Q'i·S + 1를 계산한다(단계 511) 그리고 상기 Qi가 소수인지를 확인한다(단계 512). 이때 상기 Qi가 소수가 아니면 S = S +1(단계 513)하고 상기 단계 (511)부터 다시 실행한다. 상기 Qi가 소수이면 Ni =Pi ·Qi를 계산한다(단계 514). 다음으로Ni/ 2k-1 = C이 성립하는 지를 확인한다(단계 515). 성립하지 않으면 단계(501)로 귀환하고 성립하면 단계(54)에서 얻은 Ni는 K비트 길이에 상위 1 비트 형태가 C인 RSA 모듈러 값이다. 위와같은 과정을 통해서 생성된 Ni의 상위 1 비트 형태가 C로 모두 동일하지만 Ni의 소인수 Pi와 Qi들은 랜덤한 비트 형태를 갖는다. 상기 단계(504)에서 t값은 단계(509)와 (513)에서 증가되는 S값에 대하여 RSA 모듈러 값 Ni의 최상위 1 비트 형태 C가 변화되지 않도록 하기 위하여 설정한 변수이다. 현실적으로 t=16으로 하면 상기 단계(514) 에서 생성되는 RSA 모듈러 값 Ni의 상위 1비트는 거의 대부분의 경우 C가 된다. 상기 단계(504)에서 생성된 P'i, Q'i는 Pi -1과 Qi -1의 (K/2)-1-t 비트 소인수이므로 소수 Pi, Qi는 큰 소인수를 가지는 소수들이다. 제5도와 같은 방법으로 생성된 소수 Pi, Qi와 합성수 Ni는 K=768, l=32 그리고 t=16일 경우에 사용자의 모든 RSA 모듈러 값은 길이가 768 비트이며, 상위 32 비트는 C= LNi/2736으로 동일하다. 또한, 2767〈 Ni〈 2768이다. 각 소수 Pi, Qi는 384 비트이고, Pi -1, Qi -1은 각각 336 비트 길이를 갖는 소인수 P'i, Q'i을 갖는다.And Pi = 2 · P 'iCalculate S + 1 (step 506) to the PiCheck if is a prime number (step 507). If this is not a prime number, S = S + 1 (step 509) and returns to step 506 above. Also said PiQ is primeN / Pi (Step 508) and then S = Q / (2Q 'i(Step 510). Next Qi= 2 · Q 'iCalculate S + 1 (step 511) and QiCheck if is a prime number (step 512). Where QiIf is not a prime number, S = S +1 (step 513) and the process is executed again from step 511 above. If Qi is a prime number, Ni = PiiQi is calculated (step 514). to the nextNi/ 2k-1 = Check that C holds (step 515). If not, return to step 501 and if established, N obtained in step 54iIs an RSA modular value with a K bit length and the upper 1 bit type C. N generated through the above processiThe upper 1 bit forms of are all the same as C, but NiPrime factors ofiAnd QiHave a random bit form. The t value in step 504 is the RSA modular value N for the S value that is increased in steps 509 and 513.iThis variable is set so that the most significant 1-bit type C of C is not changed. In practice, when t = 16, the RSA modular value N generated in step 514 is used.iThe upper 1 bit of C is almost always C. P ′ generated in step 504i, Q 'iPi -OneAnd Qi -OnePrime (K / 2) -1-t bit prime, so prime Pi, QiAre prime numbers with large prime factors. Prime P generated in the same way as in FIG.i, QiAnd the compound number NiIs a K-768, l = 32, and t = 16, all of your RSA modular values are 768 bits long, and the upper 32 bits are C = LN.i/2736Same as 2767〈Ni< 2768to be. Each prime Pi, QiIs 384 bits, Pi -One, Qi -OneAre prime factors P 'each 336 bits longi, Q 'iHas

상술한 바와 같이 본 발명에 의하면 특정 길이 및 동일한 최상위 1 비트형태를 가지며 큰 소인수를 가지는 2개의 소수의 곱으로 이루어진 RSA 모듈러 값을 실질적으로 생성하므로써 RSA 공개키 암호 시스템을 이용한 디지털 서명시에 발생하는 블록 보호 문제가 효과적으로 해결되어 효율적인 RSA 공개키 암호 시스템을 이용한 다중 서명이 이루어진다. 그리고 모든 사용자들이 특정 길이 및 최상위 1 비트 형태가 동일하고 큰 소인수를 가지는 2개의 소수의 곱인 RSA 모듈러 값을 가지는 RSA 공개키 암호 시스템의 실질적인 구현이 가능하게 되는 효과가 있다.As described above, according to the present invention, when the digital signature using the RSA public key cryptosystem is generated by substantially generating an RSA modular value consisting of a product of two prime numbers having a specific length and the same top 1 bit form and having a large prime factor. The block protection problem is effectively solved, resulting in multiple signatures using an efficient RSA public key cryptosystem. In addition, there is an effect that the actual implementation of the RSA public key cryptosystem having an RSA modular value, which is a product of two prime numbers, in which all users have the same length and most significant one bit type and has a large prime factor.

Claims (4)

시작 단계로부터 첫번째 서명자를 선택한 후 자신의 비밀키 및 모듈러 값 N1을 입력받는 제1단계와, 상기 제1단계로부터 메시지에 대한 서명을 생성하는 제2단계와, 상기 제2단계로부터 상기 서명과 H의 크기를 비교하는 제3단계와, 상기 제3단계로부터 상기 서명이 H보다 크거나 같은 경우 상기 첫번째 서명자는 상기 서명이 상기 H보다 작아질 때까지 지수승 연산을 반복 실시하는 제4단계와, 상기 제3단계로부터 상기 서명이 H보다 작은 경우 상기 서명자의 순서를 확인하는 제5단계와, 상기 제5단계로부터 상기 서명을 두번째 서명자에게 전송하는 제6단계와, 상기 제6단계로부터 상기 서명자의 순서를 비교한 후 메시지에 대한 다중 서명을 수신한 사용자는 상기 서명자의 공개키를 이용하여 복호과정을 수행하는 제7단계와, 상기 제7단계로부터 연산된 서명과 H의 크기를 비교하는 제8단계와, 상기 제8단계로부터 상기 서명이 H보다 큰 경우 서명이 H보다 작아질 때까지 지수승 연산을 반복 실시하는 제9단계와, 상기 제9단계로부터 마지막 서명을 수신하여 확인한 후 메시지가 올바른 경우에는 진행을 종료하고 메시지가 올바르지 않은 경우에는 수신을 거절하거나 재전송을 요구하는 제10단계로 이루어지는 것을 특징으로 하는 다중 서명 방법.A first step of selecting a first signer from a start step and receiving a private key and a modular value N1, a second step of generating a signature for a message from the first step, and the signature and H from the second step A third step of comparing the magnitude of the first step, and if the signature is greater than or equal to H from the third step, the first signer repeats an exponential operation until the signature is smaller than the H; A fifth step of confirming the order of the signers when the signature is smaller than H from the third step, a sixth step of transmitting the signature to the second signer from the fifth step, and a signing of the signer from the sixth step. After comparing the order, the user who has received the multi-signature for the message performs the decryption process by using the signer's public key, and the document calculated from the seventh step. An eighth step of comparing the magnitudes of the names and H; a ninth step of repeating the exponential power operation until the signature becomes smaller than H if the signature is larger than H from the eighth step; 10. The multi-signature method of claim 10, wherein the message is terminated if the message is correct after receiving and confirming the signature, and if the message is not correct, the tenth step of rejecting the reception or requesting retransmission. 제1항에 있어서, 사용되는 모듈러 값이 모든 사용자에 대하여 동일한 길이이고, 최상위 1 비트 패턴이 동일하며, 큰 소인수를 가지는 2개의 소수의 곱인 다중 서명 방법.The method of claim 1, wherein the modular value used is the same length for all users, the most significant one bit pattern is the same, and the product of two prime numbers with large prime factors. 제1항에 있어서, 상기 제3 및 제8단계와 H는 H=C×2K-1꼴의 기준치를 사용하여 지수승 연산 실시 여부를 확인하는 것을 특징으로 하는 다중 서명 방법.The multi-signature method of claim 1, wherein the third and eighth steps and H confirm whether exponential multiplication is performed using a reference value of H = C × 2 K−1 . 다중 서명 방법에 적합한 모듈러 값 생성 방법에 있어서, 모든 사용자들이 특정의 길이를 가지며 최상위 1 비트 형태가 동일하고 큰 소인수를 가지는 2개의 곱으로 이루어지는 것을 특징으로 하는 모듈러 값 생성 방법.A modular value generation method suitable for a multiple signature method, wherein all users have a specific length and have two products having the same first-bit form and having a large prime factor.
KR1019960063174A 1996-12-09 1996-12-09 Multi-signature method and modular value generation method KR100198810B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960063174A KR100198810B1 (en) 1996-12-09 1996-12-09 Multi-signature method and modular value generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960063174A KR100198810B1 (en) 1996-12-09 1996-12-09 Multi-signature method and modular value generation method

Publications (2)

Publication Number Publication Date
KR19980045017A KR19980045017A (en) 1998-09-15
KR100198810B1 true KR100198810B1 (en) 1999-06-15

Family

ID=19486635

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960063174A KR100198810B1 (en) 1996-12-09 1996-12-09 Multi-signature method and modular value generation method

Country Status (1)

Country Link
KR (1) KR100198810B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100384233B1 (en) * 2000-07-12 2003-05-16 스팍스컴 주식회사 A method of highr order linear recurrence creating for public-key cryptosystems
KR101123729B1 (en) * 2011-06-24 2012-03-16 국민대학교산학협력단 Message blinding method for rsa without inversion operation
CN117240477B (en) * 2023-11-13 2024-02-23 泉州信息工程学院 Digital signature method, system and storage medium based on RSA algorithm

Also Published As

Publication number Publication date
KR19980045017A (en) 1998-09-15

Similar Documents

Publication Publication Date Title
MacKenzie et al. Two-party generation of DSA signatures
US7308097B2 (en) Digital signature and authentication method and apparatus
Canetti Towards realizing random oracles: Hash functions that hide all partial information
US8462944B2 (en) Method of public key generation
Ohkubo et al. A length-invariant hybrid mix
Pedersen et al. Fail-stop signatures
CN100440776C (en) Elliptic curve signature and signature verification method and apparatus
CN109450640B (en) SM 2-based two-party signature method and system
WO2016049406A1 (en) Method and apparatus for secure non-interactive threshold signatures
US20020136401A1 (en) Digital signature and authentication method and apparatus
Jager et al. On the security of the PKCS# 1 v1. 5 signature scheme
van Heijst et al. New constructions of fail-stop signatures and lower bounds
US20050240762A1 (en) Cryptographic method and apparatus
Peng et al. Batch zero-knowledge proof and verification and its applications
KR100198810B1 (en) Multi-signature method and modular value generation method
Hayashi et al. An RSA family of trap-door permutations with a common domain and its applications
Inam et al. A novel public key cryptosystem and digital signatures
Bohli et al. A subliminal-free variant of ECDSA
Wang et al. Signature schemes based on two hard problems simultaneously
Dong et al. Two extensions of the ring signature scheme of Rivest–Shamir–Taumann
CA2306468A1 (en) Signature verification for elgamal schemes
Chang et al. Threshold untraceable signature for group communications
Chung et al. A study on efficient group-oriented signature schemes for realistic application environment
JP3338088B2 (en) Electronic signature device and electronic signature system
Lv et al. Ring authenticated encryption: a new type of authenticated encryption

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090115

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee