KR19990039365A - Public key encryption method using precomputation in safety module - Google Patents

Public key encryption method using precomputation in safety module Download PDF

Info

Publication number
KR19990039365A
KR19990039365A KR1019970059424A KR19970059424A KR19990039365A KR 19990039365 A KR19990039365 A KR 19990039365A KR 1019970059424 A KR1019970059424 A KR 1019970059424A KR 19970059424 A KR19970059424 A KR 19970059424A KR 19990039365 A KR19990039365 A KR 19990039365A
Authority
KR
South Korea
Prior art keywords
key
mod
card
private key
value
Prior art date
Application number
KR1019970059424A
Other languages
Korean (ko)
Other versions
KR100258310B1 (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 KR1019970059424A priority Critical patent/KR100258310B1/en
Publication of KR19990039365A publication Critical patent/KR19990039365A/en
Application granted granted Critical
Publication of KR100258310B1 publication Critical patent/KR100258310B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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
    • H04L9/3263Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
    • G06K17/0022Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations arrangements or provisious for transferring data to distant stations, e.g. from a sensing device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/0013Methods or arrangements for sensing record carriers, e.g. for reading patterns by galvanic contacts, e.g. card connectors for ISO-7816 compliant smart cards or memory cards, e.g. SD card readers

Abstract

본 발명은 증명자/서명자측 단말기내에 기존의 IC카드와 동일한 능력의 안전 모듈(Security Module)을 구비하여 실체 인증및 디지털 서명을 효과적으로 행할 수 있는 암호화 방법을 제시하였다.The present invention proposes an encryption method capable of effectively performing entity authentication and digital signature by providing a security module having the same capability as an existing IC card in the authenticator / signer side terminal.

사용자 IC 카드내에는 비공개키를 저장하며 단말기 내의 안전 모듈은 마스터키를 구비한다. 이 비밀키및 마스터키로써 단말기와 IC 카드는 상호 인증을 행하고 세션키를 분배하여 사용자의 비공개키를 세션키로 암호화하여 단말기내의 안전 모듈로 전송한다. 안전 모듈은 서명이나 실체 인증의 개시전에 멱승 계산이나 역수 계산을 미리 행하여 저장해 둔다. 실제 서명이나 인증시에는 저장된 값을 이용하므로 한 번의 모듈러 곱과 모듈러 합을 행함으로써 인증값이나 서명값을 효과적으로 계산할 수 있다.A private key is stored in the user IC card, and the safety module in the terminal has a master key. With this secret key and master key, the terminal and the IC card perform mutual authentication, distribute the session key, encrypt the user's private key with the session key, and transmit it to the security module in the terminal. The safety module stores the power calculation and the reciprocal calculation in advance before the signature or entity authentication is started. Since the stored value is used for the actual signature or authentication, the authentication value or the signature value can be effectively calculated by performing a modular multiplication and a modular sum.

Description

안전 모듈에서의 사전계산을 이용한 공개키 암호화 방법Public key encryption method using precomputation in safety module

본 발명은 공개키 암호 체계의 비공개키를 이용하는 암호화 방법에 관한 것으로서, 더욱 상세하게는 실체 인증및 디지털 서명을 위하여 필요한 연산을 사전에 행할 수 있게 한 방법에 관한 것이다.The present invention relates to an encryption method using a private key of a public key cryptosystem, and more particularly, to a method capable of performing operations required for entity authentication and digital signature in advance.

암호화 알고리즘은 크게 두가지로 구분할 수 있다. 하나는 DES와 같은 대칭형 암호 시스템이고 다른 하나는 RSA와 같은 비대칭형 암호시스템으로서, 비대칭형 암호 시스템은 공개키 암호 시스템이라고도 불리고 있다. 대칭형 암호 시스템은 암호화하는 키와 해독하는 키가 일치하는 경우이며, 키를 아는 사람은 누구나 해독을 수행할 수 있는 특성을 가지며, 따라서 키의 보안과 분배가 중요한 문제가 된다.Encryption algorithms can be divided into two categories. One is a symmetric cryptosystem such as DES and the other is an asymmetric cryptosystem such as RSA, which is also called a public key cryptosystem. A symmetric cryptosystem is a case where the encryption key and the decryption key match, and anyone who knows the key can perform decryption, so the security and distribution of the key becomes an important problem.

반면, 공개키 암호 시스템은 암호키와 해독키가 다르며, 암호키는 모두에게 공개하고 해독기는 사용자 자신만이 갖게된다. 따라서, 해독키의 보안만이 중요하고 비밀 정보를 공유할 필요가 없어지므로 보안 정보의 이동이 적다는 장점을 가지게 된다.On the other hand, public key cryptosystems are different from encryption keys and decryption keys, and the cryptographic keys are disclosed to everyone and only the user has the decryptor. Therefore, since only the security of the decryption key is important and there is no need to share secret information, there is an advantage that the movement of the security information is small.

디피(W. Diffie)와 헬만(M. Hellman)은 이러한 공개키 암호 시스템을 제안하였다. 공개키 암호 시스템에서는 각 사용자의 키가 비공개키와 공개키로 구성되어 있으며, 키에 대한 안전도는 공개키를 사용자 모두에게 공개하더라도 공개키로 비공개키를 얻기가 계산상 불가능하다는 일방성의 문제의 어려움에 달려있다. 여기서, 사용되는 일방성의 난이도는 소인수 분해나 이산 대수 문제의 어려움에 근거하며, 키의 크기가 클수록 풀기가 어렵다.W. Diffie and M. Hellman proposed this public key cryptosystem. In public key cryptosystem, each user's key consists of private key and public key, and the security of key depends on the difficulty of unilateral problem that it is impossible to calculate private key with public key even if public key is disclosed to all users. have. Here, the unidirectional difficulty used is based on the difficulty of factoring the prime factorization or discrete logarithm, and the larger the key, the harder it is to solve.

오들리즈코(Odlyzko)는 1994년 기준으로 2014년에 예상되는 가용 계산력과 소인수 분해 문제를 푸는 알고리즘의 난이도를 비교하여 당분간 안전하게 사용할 수 있는 키의 크기에 대하여 제안하였다. 이것을 이산 대수 문제의 난이도와 비교하여 보면, 비공개키의 크기는 160비트 이상, 공개키의 크기는 768비트 이상이어야 적어도 향후 10년동안 안전하게 사용할 수 있다. 이와 같이 공개키 암호 시스템에서는 키의 크기가 상당히 크기 때문에 효율성은 저하되지만, 키관리의 용이성이나 디지털 서명과 같은 보안 서비스를 제공할 수 있다는 측면에서 널리 이용되고 있다.Odlyzko proposed a key size that can be safely used for the time being by comparing the computational complexity expected in 2014 and the difficulty of an algorithm to solve prime factorization problems. Comparing this to the difficulty of discrete algebraic problems, the size of the private key must be at least 160 bits and the size of the public key must be at least 768 bits for safe use for at least the next 10 years. As such, in public key cryptosystems, the size of keys is considerably large, which lowers the efficiency, but is widely used in terms of ease of key management and security services such as digital signatures.

공개키 암호 시스템에서 비공개키의 안전한 보관을 위하여 물리적 안전 장치(Temper- Resistance Device)를 가지고 있는 IC 카드가 사용되고 있다. 즉, 비공개키는 일반적으로 160비트 이상의 난수이므로 이를 암기한다는 것은 거의 불가능하기 때문에 이의 저장을 위하여 IC 카드가 사용되는 것이다. 비공개키를 IC 카드에 저장해두고 디지털 서명을 생성할 때나 실체 인증을 할 때 카드를 단말기(Card Reader)에 넣고 원하는 과정을 수행하게 된다. 이때, 비공개키의 노츌을 막기 위해서 비공개키가 단말기에 보내어지지 않고 IC 카드내에서 계산들이 이루어져야 한다. 따라서, 공개키 암호 시스템을 위한 IC 카드는 보안 장치와 함께 자체적 연산 기능을 갖추어야 하며 이러한 카드를 스마트 카드(Smart Card)라 부르고 있다.In public key cryptosystems, IC cards with a physical-resistance device are used for the safe storage of private keys. That is, since a private key is generally a random number of 160 bits or more, it is almost impossible to memorize it, so that an IC card is used for its storage. When a private key is stored in an IC card and a digital signature is generated or an entity is authenticated, the card is inserted into a card reader and a desired process is performed. At this time, in order to prevent leakage of the private key, calculations should be made in the IC card without sending the private key to the terminal. Therefore, the IC card for the public key cryptographic system must have its own arithmetic function together with the security device and such a card is called a smart card.

도 1 에는 공개키 암호 개념의 대표적인 응용분야인 실체 인증 프로토콜및 디지털 서명 프로토콜을 위한 장치의 개략도가 도시되어 있다. 여기서, 부호(1)는 단말기를 의미하는 것으로 단말기(1)는 IC 카드(2)에 전원을 공급하고 데이터를 전송 받을 수 있는 단말기 회로(10)를 구비하고 있다. 단말기(1)는 후술하는 바와 같이 검증자로서 작동하는 단말기(3)에 연결되어 있으며, 단말기(3)는 퍼스널 컴퓨터, 워크스테이션등으로 구현가능하다.1 shows a schematic diagram of an apparatus for an entity authentication protocol and a digital signature protocol, which are representative applications of the public key cryptography concept. Here, reference numeral 1 denotes a terminal, and the terminal 1 has a terminal circuit 10 capable of supplying power to the IC card 2 and receiving data. The terminal 1 is connected to a terminal 3 that acts as a verifier as described below, and the terminal 3 can be implemented by a personal computer, a workstation, or the like.

이와 같이 구성된 장치에서 먼저 실체 인증 프로토콜(Entity Authentication)을 설명하면 다음과 같다.In the device configured as described above, entity authentication protocol will be described first.

자신의 실체(또는 신원, 신분)를 증명하고자 하는 자를 증명자(Prover)라 하고, 증명자가 자신이 주장하는 실체와 일치하는가를 검증하는 자를 검증자(Verifier)라고 한다. 검증자는 상술한 바와 같이 실체 인증 프로토콜이 구현되어 있는 퍼스널 컴퓨터나 워크스테이션 또는 단말기(3)가 될 수도 있으며 본명세서에서는 증명자를 단말기로 한 경우를 예로하여 설명하였다.A person who wants to prove his or her identity (or identity) is called a prover, and a person who verifies whether the prover matches his claim is called a verifier. As described above, the verifier may be a personal computer, a workstation, or a terminal 3 in which the entity authentication protocol is implemented.

증명자는 자신만이 아는 비공개키(X)를 IC 카드(2)와 같이 안전한 곳에 가지고 있으며, 검증자는 증명자의 공개키(Y)를 이미 얻었다고 가정한다. 증명자가 증명하는 것은 자신이 공개키(Y)에 대응하는 비공개키(X)를 가지고 있다는 것이며 비공개키(X)는 알려져 있지 않아야 하므로 비공개키(X)가 사용되는 계산은 계산 능력을 갖춘 IC 카드(2)에서 행하여지게 된다. 이와 같은 IC 카드(2)와 검증자의 작동 프로토콜은 다음과 같다.It is assumed that the prover has a private key X which only he knows, such as an IC card 2, and the verifier has already obtained the prover's public key Y. The prover proves that he has a private key (X) corresponding to the public key (Y), and that the private key (X) should not be known, so that calculations in which the private key (X) is used are computationally capable IC cards. In (2). The operation protocol of the IC card 2 and the verifier is as follows.

단계 1(A1)(난수 발생 단계) : 증명자의 IC 카드(2)는 소정의 난수(K)를 발생한다.Step 1 (A1) (random number generation step): The prover's IC card 2 generates a predetermined random number K. FIG.

단계 2(A2)(증명값 계산 단계) : 증명자의 IC 카드(2)에서 난수(K)로 증명값(commitment)(R)을 계산하고 단말기(1)를 통하여 검증자에게 전송한다.Step 2 (A2) (calculation value calculation step): The proof value R is calculated from the prover's IC card 2 as a random number K and transmitted to the verifier through the terminal 1.

단계 3(A3)(요구값 발생 단계) : 검증자는 요구값(challenge)으로 난수(E)를 발생하여 증명자에게 전송한다.Step 3 (A3) (requirement value generation step): The verifier generates a random number E as a challenge value and sends it to the prover.

단계 4(A4)(인증값 계산 단계) : 증명자의 IC 카드(2)는 증명자의 비공개키(X)와 증명값(R) 그리고 난수(E)로 인증값(response)(S)를 계산하고 검증자에게 전송한다.Step 4 (A4) (Authentication value calculation step): The prover's IC card 2 calculates the authentication value (S) from the prover's private key (X), the proof value (R), and a random number (E). Send to verifier

단계 5(A5)(검증 단계) : 검증자는 증명자의 공개키(Y)와 저장하여 두었던 증명값(R), 난수(E) 그리고 인증값(S)으로 검증을 행한다.Step 5 (A5) (verification step): The verifier verifies with the prover's public key Y, the stored proof value (R), a random number (E), and the authentication value (S).

다음으로 디지털 서명 프로토콜을 설명하면 다음과 같다.Next, the digital signature protocol will be described.

서명자는 디지털 메시지(M)에 자신의 디지털 서명을 덧붙여 보내고자 하며, 검증자는 메시지와 그에 덧붙여진 서명을 받은 후, 그 서명을 검증하여 메시지의 출처와 변경 여부를 확인할 수 있다.The signer wants to add his digital signature to the digital message (M), and the verifier can receive the message and the signature attached to it, and then verify the signature to verify the origin and change of the message.

검증자는 도 1 에서와 같이 디지털 서명 프로토콜이 구현되어 있는 단말기(3)가 될 수 있으며 이를 이용하고 있는 사람이 될 수도 있다. 서명자는 자신만이 아는 비공개키(X)를 IC 카드(2)와 같이 안전한 곳에 가지고 있으며 검증자는 증명자의 공개키(Y)를 이미 갖고 있다고 가정한다. 서명자의 비공개키(X)는 알려지지 않아야 하므로 비공개키(X)가 사용되는 계산은 계산 능력을 갖춘 IC 카드(2)에서 이루어지게 된다.The verifier may be a terminal 3 in which a digital signature protocol is implemented as shown in FIG. 1 and may be a person using the digital signature protocol. It is assumed that the signer has a private key X which only he knows, such as IC card 2, and that the verifier already has the public key Y of the prover. Since the signer's private key X should not be known, the calculation in which the private key X is used is made in the IC card 2 having a computing capability.

단계 1(D1)(난수 발생 단계) : 서명자의 IC 카드(2)에서 난수(K)를 발생한다.Step 1 (D1) (random number generation step): A random number K is generated in the IC card 2 of the signer.

단계 2(D2)(서명값 1 계산 단계) : 서명자의 IC 카드(2)에서 난수(K)로 서명값(R)을 계산하고 단말기(1)에 전송하거나 저장한다.Step 2 (D2) (Signature Value Calculation Step 1): The signature value R is calculated from the signer's IC card 2 as a random number K and transmitted or stored in the terminal 1.

단계 3(D3)(메시지 해쉬 단계) : 서명자의 단말기는 메시지를 해쉬 함수(H)로 압축하여 그 결과를 IC 카드(2)에 전송한다. 서명값(R)이 메시지와 함께 해쉬 함수(H)의 입력이 되는 경우도 있다(예컨데 쉬놀(Schnor) 디지털 서명).Step 3 (D3) (Message Hash Step): The signer's terminal compresses the message into a hash function H and transmits the result to the IC card 2. In some cases, the signature value R may be input to the hash function H together with the message (eg, Schnor digital signature).

단계 4(D4)(서명값 2 계산 단계) : 서명자의 IC 카드(2)는 서명자의 비공개키(X)와 서명값(R)과 해쉬 함수(H)로써 서명값(S)을 계산하여 단말기(1)에 서명값(R)과 함께(단계 2에서 저장한 경우) 전송하고 서명자의 단말기(1)는 메시지와 서명값(R, S)를 연접(∥)하여 검증자에게 전송한다(여기서 서명값(R) 또는 (S)중 한 개만 있으면 서명이 되지 않는다).Step 4 (D4) (Signature Value Calculation Step 2): The signer's IC card 2 calculates the signature value S using the signer's private key (X), signature value (R) and hash function (H). (1) is sent together with the signature value R (if stored in step 2), and the signer's terminal 1 transmits the message and signature values (R, S) in concatenated (∥) to the verifier (where If only one of the signature values (R) or (S) is signed).

단계 5(D5)(서명 검증 단계) : 검증자는 서명자의 공개키(Y)로 메시지(M)에 대한 서명 R∥S를 검증한다.Step 5 (D5) (Signature Verification Step): The verifier verifies the signature R ′S for the message M with the signer's public key Y.

여기서, 단계A2 및 D2의 계산은 모듈라 멱승(gkmod P)을 포함하고 있는 바, 전체 계산 시간은 단계A2 및 D2에서 걸리는 시간이라고 보면 된다. 그러나, 현재 상용화된 IC 카드는 간단한 난수발생과 암호 알고리즘만을 수행할 수 있을뿐 768비트 이상의 정수들을 실시간내에 100회 이상 곱할 수 있는 능력을 갖고 있지 않다. 이를 위해서는 Cnypt-Engine이라 불리고 있는 특수한 연산 장치를 갖추어야 한다. 즉, 현재의 IC 카드내의 램및 중앙 처리 장치를 이용하여서는 상술한 단계A2 및 D2의 계산을 필요한 시간내에 행하도록 구현하기가 어렵다.Here, the calculation of steps A2 and D2 includes a modulus power (g k mod P), so the total calculation time can be regarded as the time taken in steps A2 and D2. However, currently commercially available IC cards can only perform simple random number generation and encryption algorithms and do not have the ability to multiply integers of 768 bits or more in 100 times in real time. This requires a special computing device called the Cnypt-Engine. In other words, using the RAM and the central processing unit in the current IC card, it is difficult to implement the calculation of the above-mentioned steps A2 and D2 in a necessary time.

이러한 문제를 해결하기 위하여 모듈러 연산 프로그램을 소프트웨어로 구현하여 EEPROM에 저장하고 IC 카드를 사용하고 있지 않을 때에 시간이 많이 소요되는 계산을 미리 해놓고 실제 서명 생성과 인증 시에는 저장된 값을 가져다 사용하는 사전 계산 방법이 제안되었다. 그러나, 종래의 사전 계산 방법은 IC 카드가 오프 라인(off-line)되었을 때, 즉 카드가 사용되지 않을 때(전원이 공급되지않은 상태)에는 계산 능력을 잃기 때문에 사전 계산을 행할 수 없어 현재의 IC 카드와 단말기로는 실용적인 암호화 시스템 구현이 힘들다는 문제가 있었다.In order to solve this problem, a modular calculation program is implemented in software, stored in EEPROM, and pre-calculated calculations are made in advance when time-consuming calculations are made when the IC card is not in use, and when the actual signature is generated and authenticated. The method has been proposed. However, the conventional precalculation method loses computational power when the IC card is off-line, i.e. when the card is not used (no power supply), and thus cannot perform precomputation. There is a problem that it is difficult to implement a practical encryption system with an IC card and a terminal.

본 발명은 이러한 문제를 해결하기 위한 것으로서 본 발명의 목적은 증명자/서명자의 단말기내에서 사전 계산 알고리즘을 행하여 실체 인증/디지털 서명을 용이하게 수행할 수 있게 한 안전 모듈에서의 사전계산을 이용한 고개키 암호화 장치를 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made to solve this problem, and an object of the present invention is to use a precomputation in a safety module that makes it possible to easily perform entity authentication / digital signature by performing a precalculation algorithm in a terminal of a prover / signer. It is to provide a key encryption device.

본 발명의 다른 목적은 서명자의 단말기내에서 사전 계산 알고리즘을 행하여 디지탈 서명을 용이하게 생성할 수 있게 한 안전 모듈에서의 사전계산을 이용한 공개키 암호화 방법을 제공하는데 있다.It is another object of the present invention to provide a public key encryption method using precomputation in a security module that enables a digital signature to be easily generated by performing a precomputation algorithm in the signer's terminal.

이러한 목적을 달성하기 위한 본 발명은, 비공개키(X)및 비밀 암호화키가 저장된 소정의 IC 카드를 가진 증명자가 마스터키, 난수 발생 알고리즘및 모듈러 연산 알고리즘이 있는 안전 모듈(Security Module)이 장착된 단말기를 이용하여 증명자의 공개키를 구비하는 검증자에게 자신의 실체(identity)를 증명하는 방법으로서, ⅰ) 실체 인증이 개시되기 전에 상기 안전 모듈은 다수의 난수(Kj)및 이 난수(Kj)에 대응하는 증명값 (Rj) 를 생성하는 사전 계산 단계와; ⅱ) 실체 인증이 개시되면 안전 모듈은 사용되지 않은 (Kj,Rj) 에서 하나를 선택하여 (K,R)로 놓고 (R)을 증명값으로 검증자에게 전송하는 증명값 전송 단계와; ⅲ) 검증자는 증명값(R)을 저장하고 t비트의 난수(E)를 발생시켜 증명자에게 전송하는 요구값 전송 단계와; ⅳ) 증명자의 안전 모듈은 상기 IC 카드로부터 비공개키(X)를 습득하는 비공개키 습득 단계와; ⅴ) 증명자는 난수(E)가 t비트인가를 확인하고 SM(11)은 인증값(S)를 계산하여 이 값을 검증자에게 전송하는 인증값 전송 단계와; ⅵ) 검증자는 증명자의 공개키를 얻어 검증식을 수행하는 검증 단계를 구비한다.In order to achieve this object, the present invention provides a proof module having a predetermined IC card storing a private key (X) and a secret encryption key equipped with a security module having a master key, a random number generation algorithm, and a modular operation algorithm. A method of proving its identity to a verifier having a prover's public key using a terminal, i) Before the entity authentication is initiated, the safety module includes a plurality of random numbers (K j ) and the random number (K j ). j ) corresponding proof value (R j ) Generating a precomputation step; Ii) the safety module is not used when entity authentication is initiated. (K j, R j ) Selecting one at (K, R) and transmitting (R) to the verifier as an attestation value; Iv) the verifier stores the proof value (R) and sends a request value to generate a t-bit random number (E) and send it to the prover; Iv) the secure module of the prover comprises a private key acquisition step of learning a private key (X) from the IC card; Iv) the authenticator confirms whether the random number E is t bits, and the SM 11 calculates the authentication value S and transmits this value to the verifier; V) The verifier obtains the public key of the prover and includes a verification step of performing a verification expression.

본 발명은 또한, 비공개키(X)및 비밀키 암호화가 저장된 소정의 IC 카드내를 가진 서명자가 마스터키, 난수 발생 알고리즘및 모듈러 연산 알고리즘이 있는 안전 모듈(Security Module)을 이용하여 디지탈 서명을 생성하고, 서명자의 공개키를 구비하는 검증자가 그 서명을 검증하는 방법으로서, ⅰ) 디지털 서명이 개시되기 전에 안전 모듈은 다수의 난수 (Kj) 및 이 난수에 대응하는 (K′j,Rj) 를 각각 생성하는 사전 계산 단계와; ⅱ) 증명자의 안전 모듈은 IC 카드로부터 비공개키(X)를 습득하는 비공개키 습득 단계와; ⅲ) 안전 모듈은 사용되지 않은( K′j,Rj )에서 하나를 선택하고 서명자는 소정 메시지를 해쉬 함수로 압축하여 그 결과(H)를 IC 카드에 전송하는 메시지 해쉬 단계와; ⅳ) 안전 모듈은 서명값(S)을 산출하고 , 서명자는 서명값(R,S)을 메시지와 연접(∥)하여 상기 검증자에게 전송하는 서명 생성 단계와; ⅴ) 검증자는 서명자의 공개키로 메시지(M)에 대한 해쉬함수로 해쉬값(H)을 얻은 후, 서명 검증식을 수행하는 서명 검증 단계를 구비한다.The present invention also provides that a signer with a predetermined IC card stored private key (X) and secret key encryption generates a digital signature using a security module with a master key, a random number generation algorithm and a modular operation algorithm. And a verifier having the signer's public key to verify the signature, i) before the digital signature is initiated, the safety module generates a plurality of random numbers. (K j ) And corresponding to this random number (K ′ j , R j ) A precalculation step of generating each; Ii) the secure module of the prover comprises a private key acquisition step of obtaining a private key (X) from the IC card; 모듈) The safety module is not used ( K ′ j , R j A message hashing step of selecting one from) and the signer compressing a predetermined message into a hash function and sending the result H to the IC card; Iii) the signature module calculates a signature value (S), and the signer generates a signature value (R, S) in concatenation with the message and sends it to the verifier; V) The verifier has a signature verification step of obtaining a hash value H as a hash function for the message M with the signer's public key and then performing a signature verification expression.

도 1은 종래 암호화 장치를 도시한 도면,1 is a view showing a conventional encryption device,

도 2는 본 발명에 따른 암호화 방법을 행하는 장치의 개략 블록도,2 is a schematic block diagram of an apparatus for performing an encryption method according to the present invention;

도 3은 본 발명에 따른 암호화 방법의 순서를 개략적으로 도시한 도면.3 is a view schematically showing a sequence of an encryption method according to the present invention;

<도면의 주요부분에 대한 부호의 설명><Description of Symbols for Main Parts of Drawings>

1, 3 : 단말기 2 : IC 카드1, 3: terminal 2: IC card

10 : 단말기 회로 11 : 안전 모듈10 terminal circuit 11 safety module

본 발명의 기본적 기술 사상은 증명자/서명자측의 단말기내에 사전 계산 알고리즘을 행하는 안전 모듈(Security Module : SM이라 함)을 구성하는데에 있다. 이와 같이 SM 내에서 사전 계산 알고리즘에 의하여 얻어진 데이터들은 안전하게 저장되어 있다가 실제로 서명이나 실체 인증을 할 때에는 비공개키를 IC 카드로부터 SM으로 전송하고, SM에서는 사전 계산된 값으로 서명 생성이나 실체 인증을 위한 계산을 행하게 된다.The basic technical idea of the present invention is to construct a security module (referred to as SM) that performs a precalculation algorithm in a terminal on the prover / signer side. In this way, the data obtained by the precomputation algorithm in the SM is safely stored, and when the signature or the entity is authenticated, the private key is transferred from the IC card to the SM. In the SM, the signature generation or the entity authentication is performed using the pre-calculated values. Will be calculated.

한편, 이와 같은 본 발명을 행하기 위하여는 비공개키가 증명자/서명자측의 단말기에 노출되는 바, IC 카드는 먼저 단말기가 합법적인가를 확인 한 후에 비공개키를 전송해야 한다. 이를 위하여 SM에는 마스터키, IC 카드에는 마스터키로 사용자에 관한 데이터들을 암호화한 결과인 비밀 암호화키를 저장한다. IC 카드는 SM이 마스터키를 갖고 있는지를, 단말기는 IC 카드가 비밀 암호화키를 갖고 있는가를 확인하므로써 서로 적법한가를 확인하게 된다. 이 과정 도중이나 후에 IC 카드와 SM간의 세션키를 분배하고 세션키로 비공개키를 암호화하여 단말기의 SM에 전송한다. 여기서, 세션키는 비공개키를 사용할 때마다(한 세션이 형성되는 것임)달라져야 한다.On the other hand, in order to implement the present invention, the private key is exposed to the terminal on the prover / signer side, and the IC card must first confirm whether the terminal is legitimate and then transmit the private key. To this end, the SM stores a secret encryption key which is a result of encrypting data about a user with a master key and an IC card with a master key. The IC card checks whether the SM has a master key and the terminal checks whether the IC card has a secret encryption key and whether it is legitimate with each other. During or after this process, the session key is distributed between the IC card and the SM, and the private key is encrypted with the session key and transmitted to the SM of the terminal. Here, the session key must be different each time a private key is used (that is, one session is formed).

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

도 2 는 본 발명에 따른 장치의 블록도로서 부호(1)는 증명자/서명자측의 단말기를 의미하는 것으로 단말기(1)는 IC 카드(2)에 전원을 공급하고 데이터를 교환할 수 있는 단말기 회로(10)및 안전 모듈(Security Module ; 이하, SM이라 함)(11)이 형성되어있다. 단말기(1)는 후술하는 바와 같이 검증자와 연결되어 있으며, 검증자는 단말기, 퍼스널 컴퓨터, 워크스테이션등으로 구현가능하나 본 명세서에서는 단말기(3)로서 표현하였다.Fig. 2 is a block diagram of the device according to the present invention, where 1 denotes a terminal on the prover / signer side, the terminal 1 being capable of supplying power to the IC card 2 and exchanging data. A circuit 10 and a security module (hereinafter referred to as SM) 11 are formed. The terminal 1 is connected to the verifier as described below, and the verifier may be implemented as a terminal, a personal computer, a workstation, etc., but is represented as the terminal 3 in the present specification.

여기서, 본 발명의 IC 카드(2)내에는 중앙 처리 장치, 롬, 램, 8Kbyt EEPROM(Electrically Erasable PROM)을 구비하고 있으며 롬내에에 COS(Chip Operating System)(11)이 저장되어 있다. 또한, EEPROM에는 암호 알고리즘, 난수 발생 알고리즘및 비밀 암호화키와 비공개키가 저장된다. 암호 알고리즘은 단말기(1)에 비밀 데이터를 전송하기 위하여 사용되는 대칭키 암호 알고리즘을 의미하며, 난수 발생 알고리즘은 난수를 발생시키기 위한 알고리즘으로서 후술하는 바와 같이 상호 인증및 분배를 위하여 사용된다. 또한 비밀 암호화키는 카드를 발급받을 때에 카드 인증을 위하여 저장된 키 데이터로서 SM(11)내의 마스터키로서 사용자들의 데이터들을 암호화하여 얻은 값을 의미한다. 이러한 비밀 암호화키는 후술하는 바와 같이 대칭키 암호 알고리즘의 키로서 사용된다. 또한 비공개키는 사용자 개인만이 가지고 노출되거나 변경되어서는 안되며 서명 혹은 실체 인증을 위하여 사용되는 키 데이터를 의미한다.Here, the IC card 2 of the present invention is provided with a central processing unit, ROM, RAM, 8Kbyt EEPROM (Electrically Erasable PROM), and a COS (Chip Operating System) 11 is stored in the ROM. The EEPROM also stores cryptographic algorithms, random number generation algorithms, and secret encryption and private keys. The encryption algorithm refers to a symmetric key encryption algorithm used for transmitting secret data to the terminal 1, and the random number generation algorithm is used for mutual authentication and distribution as described below as an algorithm for generating a random number. In addition, the secret encryption key refers to a value obtained by encrypting data of users as a master key in the SM 11 as key data stored for card authentication when a card is issued. This secret encryption key is used as a key of the symmetric key encryption algorithm as described later. In addition, the private key means key data used only for signature or entity authentication, and should not be exposed or changed with only the user.

또한, 단말기(1)내의 SM(11)은 IC 카드(2)와 동일한 능력의 하드웨어로 구성되며 롬과 EEPROM을 구비하고 있다. 여기서 롬내에는 COS가 저장되며, EEPROM내에는 암호 알고리즘, 난수 발생 알고리즘, 모듈라 연산 알고리즘, 사전 계산 알고리즘및 마스터 키가 저장된다.In addition, the SM 11 in the terminal 1 is composed of hardware having the same capability as the IC card 2, and has a ROM and an EEPROM. Here, the COS is stored in the ROM, and the encryption algorithm, random number generation algorithm, modular operation algorithm, precomputation algorithm, and master key are stored in the EEPROM.

여기서, 암호 알고리즘은 IC 카드(2)내에 저장되는 알고리즘과 동일한 알고리즘이며, 난수 발생 알고리즘은 난수를 발생시키기 위한 알고리즘으로서 후술하는 바와 같이 서명, 실체 인증, 상호 인증및 세션키 분배를 위하여 사용된다.Here, the encryption algorithm is the same algorithm as the algorithm stored in the IC card 2, and the random number generation algorithm is an algorithm for generating random numbers and is used for signature, entity authentication, mutual authentication, and session key distribution as described below.

모듈라 연산 알고리즘은 서명및 실체 인증 계산에 필요하며 큰 수의 곱, 모듈라 감소 등의 연산들로 구성된다. 사전 계산 알고리즘은 난수 발생 알고리즘과 모듈라 연산 알고리즘으로 구성되며 서명에 필요한 데이터를 서명하지 않는 동안에 계산하여 저장하여 두는 알고리즘을 의미한다. 마스터키는 카드 인증을 위하여 단말기 공급자가 모든 단말기에 공통으로 저장하는 키로써 대칭키 암호 알고리즘의 키로서 사용된다.Modular arithmetic algorithms are required for signature and entity authentication calculations and consist of a large number of products, modular reduction, and so on. The precomputation algorithm is composed of a random number generation algorithm and a modular arithmetic algorithm. The precomputation algorithm refers to an algorithm that calculates and stores data for signing while it is not signed. The master key is a key stored in all terminals by the terminal provider for card authentication and is used as a key of the symmetric key encryption algorithm.

도 3 a, b에는 상술한 구성을 갖는 장치가 실체 인증및 디지탈 서명을 행하는 순서가 도시되어 있다. 도 3의 순서도를 쉬놀(Schnorr) 실체 인증 프로토콜과 미국의 디지털 서명 표준 알고리즘인 DSS를 예로 설명하며 사용된 기호와 표기의 정의는 다음과 같다.3A and 3B show a procedure in which a device having the above-described configuration performs entity authentication and digital signature. The flowchart of FIG. 3 illustrates the Schnorr entity authentication protocol and DSS, a digital signature standard algorithm of the United States, as an example, and the definitions of symbols and notations used are as follows.

P : 768 비트 이상의 소수P: decimal with more than 768 bits

Q : 160 비트 이상의 P - 1을 나누는 소수Q: a decimal number dividing P-1 by more than 160 bits

G : a(P-1)/Qmod P,1<a<P-1 이고 a(P-1)/Qmod P=1 을 만족함G: a (P-1) / Q mod P, 1 <a <P-1 ego a (P-1) / Q mod P = 1 Satisfied

h() : |Q|길이의 출력값을 갖는 충돌 회피성의 해쉬 함수h (): | Q | Hash function of collision avoidance with output of length

X : 비공개키 0<X<QX: Private key 0 <X <Q

Y : 공개키 Y=GXmod P Y: public key Y = G X mod P

t : 안전 변수 80 이상t: Safety variable above 80

|Z| : Z의 비트 수Z | Number of bits in Z

서명 생성시나 실체 인증시|Q|비트 난수(K)를 발생시켜 GKmod P 을 계산해야한다. DSS(미국의 디지털 서명 표준 알고리즘)에서는 역수 (K-1) 도 계산해야 한다. 역수 계산을 하기 위해서는 |Q| 크기의 정수에 대한 약 |Q|번의 나눗셈을 해야 하고, 멱승 계산은 |P|크기의 정수에 대한 평균 (3|Q|)/2번의 모듈라 곱을 해야한다. 이 계산들은 실체 인증, 서명 생성시 대부분의 계산 시간을 소비하며 서명할 메시지, 인증 대상과 전혀 관계없는 데이터이다. 따라서 단말기의 유휴시간(idle-time 또는 avalable time)에 여러개의 난수( Kj , j=1,2,3,....)를 발생시켜 해당되는 값들을 계산하여 보관하고, 필요할 때 보관된 데이터들을 가져다 쓰는 사전 계산 알고리즘을 이용하면 그 계산 시간을 절약할 수 있으며, 본 발명은 이러한 사전 계산 알고리즘을 이용하는 것이다.When generating a signature or authenticating a certificate | Q | Generate a random bit (K) G K mod P Should be calculated. Inverse in the US Digital Signature Standard Algorithm (DSS) (K -1 ) Must also be calculated. In order to perform the inverse calculation, we need to divide about | Q | by integers of the | Q | size integer, and the power-of-sequence calculation requires the average (3 | Q |) / 2 modular product of | P | -size integers. These calculations spend most of the computation time on authenticating the certificate, generating the signature, and are messages that have nothing to do with the message to be signed or the subject of the certificate. Therefore, multiple random numbers (idle-time or avalable time) K j , j = 1,2,3, ....) to calculate and store the corresponding values, and save the calculation time by using a pre-calculation algorithm that writes the stored data when needed. The invention utilizes this precomputation algorithm.

도 3 a는 본 발명의 사전 계산 알고리즘을 사용하는 실체 인증 프로토콜의 수행 순서를 도시한 도면으로 그 순서는 다음과 같다.3A is a diagram illustrating a procedure of performing an entity authentication protocol using the pre-calculation algorithm of the present invention.

단계 0(E0)(사전 계산 단계) :Step 0 (E0) (precalculation step):

상술한 바와 같이 j=1,2,3,......일 때에 다음과 같이 난수( Kj )및 증명값( Rj )을 생성한다.As described above, when j = 1, 2, 3, ..., K j ) And proof value ( R j ).

Kj=r() 여기서 r()은 난수 발생 알고리즘을 의미한다. K j = r () Here r () means a random number generation algorithm.

Rj=(GKjmod P)mod QR j = (G Kj mod P) mod Q

즉, SM(11)은 아이들(idle) 시간에 난수( Kj )및 증명값( Rj )을 여러개 계산하여 두는 것이다. 여기서 난수( Kj )는 안전하게 저장되어야 하고, 증명값( Rj )은 후에 공개될 데이터이므로 SM(11)밖의 메모리에 저장할 수도 있다.In other words, the SM 11 generates random numbers at idle time. K j ) And proof value ( R j ) To calculate several. Where random number ( K j ) Must be stored securely, and the proof value ( R j ) May be stored in a memory other than the SM 11 since the data will be released later.

단계 1(E1)(증명값(Commitment)(R) 전송 단계Step 1 (E1) (Commitment (R) Transfer Step

실체 인증 프로토콜이 시작되면 증명자의 SM(11)(또는 단말기(1))은 사용되지 않은 ( Kj,Rj )에서 하나를 선택하여 (K,R)로 놓고 R을 증명값으로 검증자에게 전송한다. 여기서 선택된 ( Kj,Rj )은 안전하게 폐기되어야 한다.When the entity authentication protocol starts, the authenticator's SM 11 (or terminal 1) is not used ( K j , R j Select one from) and set it to (K, R) and send R as proof to the verifier. Where selected ( K j , R j ) Should be disposed of safely.

단계 2(E2)(요구값(Challenge)(E) 전송 단계Step 2 (E2) (Challenge (E) Transfer Step)

검증자는 증명값(R)을 저장하고 t비트의 난수(E)를 발생시켜 증명자에게 전송한다.The verifier stores the proof value (R) and generates a t-bit random number (E) and sends it to the prover.

단계 3(E3)(비공개키 습득 단계)Step 3 (E3) (Private Key Acquisition Step)

증명자의 IC 카드(2)와 SM(11)은 상호 인증및 세션키를 분배하고 증명자의 IC 카드(2)는 비공개키(X)를 세션키로 암호화하여 단말기(1)내의 SM(11)에 전송한다. SM(11)은 비공개키(X)의 암호문을 세션키로 복호하여 비공개키(X)를 습득한다. 이러한 비공개키(X)의 습득 단계는 상세히 후술하였다.The prover's IC card 2 and the SM 11 distribute mutual authentication and session keys, and the prover's IC card 2 encrypts the private key X with a session key and transmits it to the SM 11 in the terminal 1. do. The SM 11 decrypts the ciphertext of the private key X with the session key and acquires the private key X. The acquisition step of such a private key (X) is described in detail later.

단계 4(E4)(인증값(Response)(S) 전송 단계)Step 4 (E4) (Transfer of Response (S))

증명자는 난수(E)가 t비트인가를 확인하고 다음을 SM(11)에서 계산하고 사용된 K,R을 완전히 폐기한다.The prover checks whether the random number E is t bits, calculates the next in the SM 11, and discards the used K and R completely.

S=(K-EX) mod QS = (K-EX) mod Q

그리고, 이 인증값(S)을 검증자에게 전송한다.The authentication value S is then sent to the verifier.

단계 5(E5)(검증 단계)Phase 5 (E5) (Validation Phase)

검증자는 증명자의 공개키(Y)를 얻어 (GSYEmod P)mod Q=R 인가를 확인하게 된다.The verifier obtains the authenticator's public key (Y) (G S Y E mod P) mod Q = R The authorization will be confirmed.

상술한 설명에서 증명자측 즉, IC 카드(11)및 SM(11)에서 실시간 계산량이 가장 많은 것은 인증값(S)을 계산하기 위하여 모듈러 곱 한 번과 모듈러 합 한 번을 하는 것이다. 이정도의 계산량은 현재의 IC 카드(11)에 들어가는 8 비트의 마이크로 프로세서로서 실용성있는 실체 인증 시스템을 구현할 수 있다.In the above description, the greatest amount of real-time calculation is performed on the prover side, that is, on the IC card 11 and the SM 11, to perform one modular product and one modular sum to calculate the authentication value S. This amount of computation can implement a practical entity authentication system as an 8-bit microprocessor in the current IC card 11.

다음으로 상술한 단계 3 즉, 비공개키 습득 단계에서 IC 카드(2)가 SM(11)에 비공개키(X)를 전송하기 위한 과정을 설명하면 다음과 같다.Next, a description will be given of the process for the IC card 2 to transmit the private key X to the SM 11 in the above-described step 3, that is, the private key acquisition step.

단계1(F1)(IC 카드(2)와 단말기간(1)의 상호 인증 단계)Step 1 (F1) (the mutual authentication step between the IC card 2 and the terminal 1)

IC 카드(2)와 단말기(1)가 상호 적법한 장치인가를 확인하는 절차이다. SM(11)은 IC 카드(2)가 마스터키로 만들어진 비밀 암호화키를 가지고 있는가를 확인하고 IC 카드(2)는 SM(11)이 마스터키를 가지고 있는가를 확인한다.This is a procedure for confirming whether the IC card 2 and the terminal 1 are legitimate devices. The SM 11 checks whether the IC card 2 has a secret encryption key made of a master key, and the IC card 2 checks whether the SM 11 has a master key.

단계 2(F2)(세션키 분배 단계)Step 2 (F2) (session key distribution step)

비공개키(X)를 일회 사용할 때마다 한 세션이 형성되는 것이며, 각 세션마다 다른 키를 분배한다. 비밀 암호화키와 마스터키, 난수를 이용하여 IC 카드(2)와 SM(11)사이에 세션키를 공유하며 상호 인증 과정에서 세션키 분배가 이루어질 수 있다.Each time a private key (X) is used, one session is formed, and a different key is distributed to each session. The session key is shared between the IC card 2 and the SM 11 using a secret encryption key, a master key, and a random number, and the session key distribution can be performed in the mutual authentication process.

단계 3(F3)(비공개키 전송)Step 3 (F3) (Send Private Key)

IC 카드(2)는 공유된 세션키를 이용하여 암호 알고리즘으로 비공개키를 암호화하여 그 결과를 단말기(11)에 전송한다.The IC card 2 encrypts the private key with an encryption algorithm using the shared session key and transmits the result to the terminal 11.

단계 4(F4)(비공개키 복호 단계)Step 4 (F4) (private key decryption step)

SM(11)에서는 공유한 세션키로 암호화된 비공개키를 복호하여 사용자의 비공개키를 얻어낸다.The SM 11 decrypts the private key encrypted with the shared session key to obtain the private key of the user.

도 3 b는 본발명에 따른 디지털 서명 생성 과정을 도시한 것이다. 그 예로써 DSS를 다음에 설명하였다.3b illustrates a digital signature generation process according to the present invention. As an example, DSS is described next.

단계 0(G1)(사전 계산 단계)Phase 0 (G1) (precalculation phase)

상기 단계(F1) 에서와 같이 SM(11))은 j=1,2,3,......일 때에 다음과 같이 난수( Kj )및 증명값( Rj )을 발생한다.As in the step F1, the SM 11 has a random number as follows when j = 1, 2, 3, ... K j ) And proof value ( R j Will occur).

Kj =r() 여기서 r()은 난수 발생 알고리즘을 의미한다. K j r () where r () represents a random number generation algorithm.

K′j= Kj -1mod QK ′ j = K j -1 mod Q

Rj=(GKj mod P)mod QR j = (G K j mod P) mod Q

즉, SM(11)은 아이들(idle) 시간에 데이터( K′j,Rj )를 여러개 계산하여두는 것이다. 여기서 K′j 는 SM(11)내부에 저장해야 하지만, Rj 는 외부에 저장할 수도 있다.That is, the SM 11 stores data at idle time. K ′ j , R j ) To calculate several. here K ′ j Should be stored inside SM (11), R j Can also be stored externally.

단계 1(G1)(비공개키 습득 단계)Phase 1 (G1) (Private Key Acquisition Phase)

디지탈 서명 프로토콜이 시작되면 IC 카드(2)와 SM(11)은 상술한 단계(F1-F4)에서와 같이 상호 인증및 세션키를 분배하고, IC 카드(20는 비공개키(X)를 세션키로 암호화하여 단말기(1)내의 SM(11)에 전송한다. SM(11)은 비공개키(X)의 암호문을 세션키로 복호하여 비공개키(X)를 습득한다.When the digital signature protocol starts, the IC card 2 and the SM 11 distribute mutual authentication and session keys as in steps F1 to F4 described above, and the IC card 20 uses the private key X as the session key. The encryption is transmitted to the SM 11 in the terminal 1. The SM 11 decrypts the cipher text of the private key X with the session key to acquire the private key X.

단계 2(G2)(메시지 해쉬 단계)Phase 2 (G2) (Message Hash Phase)

사용되지 않은 ( K′j,Rj )에서 하나를 선택하여 ( K-1,R )로 놓고 선택된 ( K′j,Rj )은 안전하게 폐기한다. 그리고, 서명자의 단말기(1)는 메시지를 해쉬 함수로 압축하여 그 결과(H)를 IC 카드에 전송한다.Unused ( K ′ j , R j ) Select one from K -1 , R ) And select ( K ′ j , R j ) Is disposed of safely. The terminal 1 of the signer compresses the message into a hash function and transmits the result H to the IC card.

단계 3(G3)(서명 생성 단계)Phase 3 (G3) (Signature Generation Phase)

SM(11)은 서명자의 비공개키(X)와 서명값(R), 해쉬값(H)으로 서명값(S)을 다음과 같이 계산한다.The SM 11 calculates the signature value S with the signer's private key X, the signature value R, and the hash value H as follows.

S=K-1(H+XR)mod QS = K -1 (H + XR) mod Q

서명자의 단말기(1)는 서명값(R,S)을 SM(11)으로부터 받아 메시지와 연접(∥)하여 검증자에게 전송한다(여기서, 서명값(R 또는 S 하나만 있으면 서명이 되지 않는다).The signer's terminal 1 receives the signature values R and S from the SM 11 and concatenates them with the message and sends them to the verifier (here, only one signature value R or S is not signed).

단계 4(G4)(서명 검증 단계)Phase 4 (G4) (Signature Verification Step)

검증자는 서명자의 공개키(Y)로 메시지(M)(혹은 R과 함께)에 대한 해쉬 함수로 해쉬값(H)을 얻은 후 서명 R∥S를 다음과 같이 검증한다.The verifier obtains the hash value (H) as a hash function for the message (M) (or with R) with the signer's public key (Y), and then verifies the signature R∥S as follows.

U=S-1H,V=S-1RU = S -1 H, V = S -1 R

( GUYVmod P ) mod Q = R인가를 검증한다.( G U Y V mod P ) Verify that mod Q = R

즉, 본 발명에서는 실체 인증및 서명을 위한 대부분의 계산을 단말기내의 안전 모듈이 담당하도록 구성하므로써 현재 IC 카드의 계산 능력 제한성을 극복하고 안전한 쉬놀형 암호학적 프로토콜을 구현할 수 있게 한 것이다. 이와 같이 본 발명에서 제시하는 IC 카드는 종래의 IC 카드에 비공개키만을 더 저장한 형태이며 SM은 IC 카드와 같은 하드웨어 구성이고 모듈러 연산과 같은 특수한 연산 프로그램을 구비하게 된다. 이를 이용하여 실체 인증및 서명 계산시 가장 많은 시간이 소요되는 멱승 계산 R=f(GKmod P) 또는 역수 계산 K-1mod Q 을 미리 계산해 두므로써 실체 쉬놀형의 인증값 계산, 서명 생성 등을 빠른 시간내에 수행할 수 있는 것이다.That is, in the present invention, by configuring the security module in the terminal to handle most of the calculation for the entity authentication and signature, it is possible to overcome the limitation of the computational capacity of the current IC card and to implement a secure shnol cryptographic protocol. As described above, the IC card of the present invention is a type in which only a private key is further stored in a conventional IC card, and the SM has a hardware configuration such as an IC card and includes a special operation program such as modular operation. Calculate power that takes the most time when calculating entity authentication and signature using this R = f (G K mod P) Or reciprocal calculation K -1 mod Q By precomputing, it is possible to quickly perform the calculation of the authentication value of the entity-Shinol type, the signature generation, and the like.

이와 같이 본 발명은 공개키 암호 프로토콜의 수행시 필요한 연산 과정의 일부를 별도의 안전 장치를 이용하여 사전에 수행케 하므로써 실체 인증및 디지털 서명 과정을 기존의 IC 카드로써 효과적으로 신속히 행할 수 있다는 효과가 있다.As described above, the present invention has an effect that the authentication and digital signature process can be effectively and quickly performed by using an existing IC card by performing a part of a calculation process necessary for executing the public key cryptographic protocol in advance by using a separate safety device. .

Claims (4)

비공개키(X)및 비밀키가 소정의 IC 카드내에 저장되어 있으며 마스터키를 갖고 난수 발생 알고리즘및 모듈러 연산 알고리즘이 안전 모듈(Security Module)내에서 행하여지는 증명자와, 공개키를 구비하는 검증자간의 실체 인증 방법으로서,The private key (X) and the secret key are stored in a predetermined IC card and have a master key, and a random number generation algorithm and a modular operation algorithm are performed in a security module, and a validator having a public key. As an entity authentication method of ⅰ) 상기 실체 인증이 개시되기 전에 상기 안전 모듈은 다수의 난수( Kj )및 이 난수( Kj )에 대응하는 증명값( Kj,Rj=(GKjmod P ) mod Q : P는 768 비트 이상의 소수, Q는 160비트 이상의 P-1을 나누는 소수, G는 a(P-1)/Qmod P,1<a<P-1 이고 a(P-1)/Qmod P>1 을 만족하는 수)를 생성하는 사전 계산 단계와;Iii) before the entity authentication is initiated, the safety module generates a plurality of random numbers; K j ) And this random number ( K j Proof value corresponding to K j , R j = (G Kj mod P) mod Q: P is a decimal number over 768 bits, Q is a fractional number that divides P-1 over 160 bits, G is a (P-1) / Q mod P, 1 <a <P-1 ego a (P-1) / Q mod P> 1 A pre-calculation step of generating a number satisfactory; ⅱ) 상기 실체 인증이 개시되면 상기 안전 모듈은 사용되지 않은 ( Kj,Rj )에서 하나를 선택하여 (K,R)로 놓고 상기 (R)을 증명값으로 검증자에게 전송하는 증명값 전송 단계와;Ii) when the entity authentication is initiated, the safety module is not used ( K j , R j Selecting one from) and setting it to (K, R) and transmitting (R) to the verifier as an attestation value; ⅲ) 상기 검증자는 상기 증명값(R)을 저장하고 t비트의 난수(E)를 발생시켜 상기 증명자에게 전송하는 요구값 전송 단계와;Iii) the requestor transmitting the request value by storing the proof value (R), generating a random number (E) of t bits, and transmitting the generated random number (E) to the prover; ⅳ) 상기 증명자의 안전 모듈은 상기 IC 카드로부터 비공개키(X)를 습득하는 비공개키 습득 단계와;Iv) the secure module of the prover comprises a private key learning step of obtaining a private key (X) from the IC card; ⅴ) 상기 증명자는 상기 난수(E)가 t비트인가를 확인하고 상기 SM(11)은 인증값(S,S=(K-EX)mod Q)을 계산하여 이 값을 상기 검증자에게 전송하는 인증값 전송 단계와;Iv) The prover checks whether the random number E is t bits, and the SM 11 calculates an authentication value (S, S = (K-EX) mod Q) and transmits this value to the verifier. Transmitting an authentication value; ⅵ) 상기 검증자는 상기 증명자의 공개키( Y=GXmod P )를 얻어(검증: GSYEmod P)mod Q=R )인가를 확인하므로써 실체 인증을 행하는 검증 단계를 구비하는 안전 모듈에서의 사전계산을 이용한 공개키 암호화 방법.Iv) the verifier is the public key of the Y = G X mod P ) (Verification: G S Y E mod P) mod Q = R Public key encryption method using pre-computation in a safety module having a verification step of performing entity authentication by confirming authorization. 제 1 항에 있어서,The method of claim 1, 상기 비공개키 습득 단계는,The private key acquisition step, 상기 IC 카드는 상기 안전 모듈이 마스터키를 구비하는가를, 상기 안전 모듈은 상기 IC 카드가 비밀키를 가지고 있는가를 확인하는 단계와;The IC card checking whether the safety module has a master key, and the safety module checking whether the IC card has a secret key; 상기 IC 카드및 상기 안전 모듈에 동일한 세션키를 각기 공유하는 단계와;Sharing the same session key with the IC card and the safety module, respectively; 상기 IC 카드는 공유된 세션키를 이용하여 암호 알고리즘으로 비공개키를 암호화하여 그 결과를 상기 안전 모듈에 전송하는 단계와;Encrypting the private key with an encryption algorithm using a shared session key and transmitting the result to the security module; 상기 안전 모듈은 상기 공유한 세션키로 암호화된 비공개키를 복호하는 단계를 구비하는 안전 모듈에서의 사건계산을 이용한 공개키 암호화 방법.And the security module decrypts a private key encrypted with the shared session key. 비공개키(X)및 비밀키가 소정의 IC 카드내에 저장되어 있으며 마스터키를 갖고 난수 발생 알고리즘및 모듈러 연산 알고리즘이 안전 모듈(Security Module)내에서 행하여지는 서명자와, 공개키를 구비하는 검증자간의 디지털 서명 방법으로서,The private key (X) and the secret key are stored in a predetermined IC card, and have a master key between the signer whose random number generation algorithm and the modular operation algorithm are performed in the security module, and the verifier with the public key. As a digital signature method, ⅰ) 상기 디지털 서명이 개시되기 전에 상기 안전 모듈은 다수의 난수( Kj )및 이 난수( Kj )에 대응하는 ( K′j:K′j=Kj -1mod Q ) 및 서명값 (Rj-(GKmod P)mod Q) (여기서 P는 768 비트 이상의 소수, Q는 160비트 이상의 P-1을 나누는 소수 G는 a(P-1)/Qmod P,1<a<P-1 이고 a(P-1)/Qmod P>1 을 만족하는 수)을 각각 형성하는 사전 계산 단계와;Iii) before the digital signature is initiated, the safety module generates a plurality of random numbers ( K j ) And this random number ( K j Corresponding to K ′ j : K ′ j = K j -1 mod Q ) And signature value (R j- (G K mod P) mod Q) Where P is a fraction of 768 bits or more, Q is a fraction G that divides P-1 of 160 bits or more a (P-1) / Q mod P, 1 <a <P-1 ego a (P-1) / Q mod P> 1 A precomputation step each forming a number satisfying a value; ⅱ) 상기 증명자의 안전 모듈은 상기 IC 카드로부터 비공개키(X)를 습득하는 비공개키 습득 단계와;Ii) the secure module of the prover comprises a private key acquisition step of obtaining a private key (X) from the IC card; ⅲ) 상기 안전 모듈은 사용되지 않은 (K′j,Rj) 에서 하나를 선택하고 상기 서명자는 소정 메시지를 해쉬 함수로 압축하여 그 결과(H)를 IC 카드에 전송하는 메시지 해쉬 단계와;Iii) the safety module is not used. (K ′ j , R j ) A message hashing step of selecting one from and the signer compressing a predetermined message into a hash function and sending the result H to the IC card; ⅳ)상기 안전 모듈은 SM(11)은 서명값( S : S=K-1(H+XR) mod Q)을 산출하고 , 상기 서명자는 상기 서명값(R,S)을 메시지와 연접(∥)하여 상기 검증자에게 전송하는 서명 생성 단계와;안전) The safety module SM (11) is a signature value ( S: S = K -1 (H + XR) a signature generation step of calculating mod Q), wherein the signer concatenates the signature values (R, S) with a message and sends them to the verifier; ⅴ)상기 검증자는 서명자의 공개키( Y=GXmod P )로 메시지(M)에 대항 해쉬함수로 해쉬값(H)을 얻은 후, 서명 R∥S로 검증식 (U=S-1H mod Q, V-S-1R mod Q, (GUYVmod P) mod Q=R) 을 확인하는 서명 검증 단계를 구비하는 안전 모듈에서의 사전계산을 이용한 공개키 암호화 방법.Iii) The verifier is the signer's public key ( Y = G X mod P ), The hash value (H) is obtained from the hash function against the message (M), and the signature R∥S is verified. (U = S -1 H mod Q, VS -1 R mod Q, (G U Y V mod P) mod Q = R) A public key encryption method using precomputation in a safety module having a signature verification step of verifying the identity. 제 3 항에 있어서,The method of claim 3, wherein 상기 비공개키 습득 단계는,The private key acquisition step, 상기 IC 카드는 상기 안전 모듈이 마스터키를 구비하는가를, 상기 안전 모듈은 상기 IC 카드가 비밀키를 가지고 있는가를 확인하는 단계와;The IC card checking whether the safety module has a master key, and the safety module checking whether the IC card has a secret key; 상기 IC 카드및 상기 안전 모듈에 동일한 세션키를 각기 공유하는 단계와;Sharing the same session key with the IC card and the safety module, respectively; 상기 IC 카드는 공유된 세션키를 이용하여 암호 알고리즘으로 비공개키를 암호화하여 그 결과를 상기 안전 모듈에 전송하는 단계와;Encrypting the private key with an encryption algorithm using a shared session key and transmitting the result to the security module; 상기 안전 모듈은 상기 공유한 세션키로 암호화된 비공개키를 복호하는 단계를 구비하는 안전 모듈에서의 사전계산을 이용한 공개키 암호화 방법.And the security module decrypts a private key encrypted with the shared session key.
KR1019970059424A 1997-11-12 1997-11-12 Method of cryptographing KR100258310B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970059424A KR100258310B1 (en) 1997-11-12 1997-11-12 Method of cryptographing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970059424A KR100258310B1 (en) 1997-11-12 1997-11-12 Method of cryptographing

Publications (2)

Publication Number Publication Date
KR19990039365A true KR19990039365A (en) 1999-06-05
KR100258310B1 KR100258310B1 (en) 2000-06-01

Family

ID=19524574

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970059424A KR100258310B1 (en) 1997-11-12 1997-11-12 Method of cryptographing

Country Status (1)

Country Link
KR (1) KR100258310B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100441397B1 (en) * 2002-10-31 2004-07-23 소프트포럼 주식회사 message encryption and authentication method
KR100890479B1 (en) * 2000-12-22 2009-03-26 나그라비젼 에스에이 Match control method
US7580897B2 (en) 2002-06-10 2009-08-25 Ken Sakamura IC card and authentication method in electronic ticket distribution system
CN110781140A (en) * 2019-09-06 2020-02-11 平安科技(深圳)有限公司 Method and device for data signature in block chain, computer equipment and storage medium
CN112560070A (en) * 2020-12-28 2021-03-26 杭州趣链科技有限公司 Data sharing method with auditing function

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100890479B1 (en) * 2000-12-22 2009-03-26 나그라비젼 에스에이 Match control method
US7580897B2 (en) 2002-06-10 2009-08-25 Ken Sakamura IC card and authentication method in electronic ticket distribution system
US8306919B2 (en) 2002-06-10 2012-11-06 Ken Sakamura IC card and authentication method in electronic ticket distribution system
KR100441397B1 (en) * 2002-10-31 2004-07-23 소프트포럼 주식회사 message encryption and authentication method
CN110781140A (en) * 2019-09-06 2020-02-11 平安科技(深圳)有限公司 Method and device for data signature in block chain, computer equipment and storage medium
CN110781140B (en) * 2019-09-06 2023-08-18 平安科技(深圳)有限公司 Method, device, computer equipment and storage medium for signing data in blockchain
CN112560070A (en) * 2020-12-28 2021-03-26 杭州趣链科技有限公司 Data sharing method with auditing function
CN112560070B (en) * 2020-12-28 2024-03-22 杭州趣链科技有限公司 Data sharing method with auditing function

Also Published As

Publication number Publication date
KR100258310B1 (en) 2000-06-01

Similar Documents

Publication Publication Date Title
US6178507B1 (en) Data card verification system
US6446207B1 (en) Verification protocol
EP0821504B1 (en) Method and system for depositing private key used in RSA cryptosystem
US4956863A (en) Cryptographic method and apparatus for public key exchange with authentication
Park On certificate-based security protocols for wireless mobile communication systems
JP2606419B2 (en) Cryptographic communication system and cryptographic communication method
US5796833A (en) Public key sterilization
EP1526676B1 (en) Conference session key distribution method on an id-based cryptographic system
EP0695056A2 (en) A method for sharing secret information, generating a digital signature, and performing certification in a communication system that has a plurality of information processing apparatuses and a communication system that employs such a method
US8868911B2 (en) Method for key generation, member authentication, and communication security in dynamic group
US20040139029A1 (en) Apparatus and method for generating and verifying ID-based blind signature by using bilinear parings
US6769062B1 (en) Method and system of using an insecure crypto-accelerator
US20020055962A1 (en) Automatically solving equations in finite fields
US7248692B2 (en) Method of and apparatus for determining a key pair and for generating RSA keys
KR100396740B1 (en) Provably secure public key encryption scheme based on computational diffie-hellman assumption
KR100258310B1 (en) Method of cryptographing
JP4307589B2 (en) Authentication protocol
Andreevich et al. On Using Mersenne Primes in Designing Cryptoschemes
Kwon Virtual software tokens-a practical way to secure PKI roaming
US6724893B1 (en) Method of passing a cryptographic key that allows third party access to the key
JP3694242B2 (en) Signed cryptographic communication method and apparatus
JPH07118709B2 (en) Confidential information communication method
KR100363253B1 (en) Method for generating a secret key in communication and apparatus thereof
EP2315390B1 (en) Key agreement and transport protocol with implicit signatures
KR950002164B1 (en) Electronic signature and authentication method

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: 20060310

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee