KR102177956B1 - Apparatus and method for authenticating - Google Patents
Apparatus and method for authenticating Download PDFInfo
- Publication number
- KR102177956B1 KR102177956B1 KR1020170055361A KR20170055361A KR102177956B1 KR 102177956 B1 KR102177956 B1 KR 102177956B1 KR 1020170055361 A KR1020170055361 A KR 1020170055361A KR 20170055361 A KR20170055361 A KR 20170055361A KR 102177956 B1 KR102177956 B1 KR 102177956B1
- Authority
- KR
- South Korea
- Prior art keywords
- public key
- instant
- key
- instant public
- private key
- 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
- H04L9/3263—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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- 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
- H04L9/3247—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 involving digital signatures
-
- 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
- H04L9/3247—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 involving digital signatures
- H04L9/3249—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 involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
-
- 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
- H04L9/3271—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 using challenge-response
- H04L9/3278—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 using challenge-response using physically unclonable functions [PUF]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
공개키 암호화 알고리즘을 이용하는 인증 장치가 제시된다. 일실시예에 따르면 장치는, 메시지에 대응하는 전자 서명 생성 요청에 응답하여, 랜덤 넘버 생성 과정을 통해 제1 인스턴트 공개키를 생성한다. 그리고 상기 제1 인스턴트 공개키를 이용해서, 상기 제1 인스턴트 공개키와 쌍을 이루는 제1 인스턴트 개인키를 계산하여 사용한다.An authentication device using a public key encryption algorithm is provided. According to an embodiment, the device generates a first instant public key through a random number generation process in response to a request for generating an electronic signature corresponding to the message. Then, using the first instant public key, a first instant private key paired with the first instant public key is calculated and used.
Description
인증 장치 및 방법에 연관되며, 보다 특정하게는 공개키 암호 알고리즘 기반 인증 장치의 보안 공격에 대한 강인함 향상에 연관된다.It relates to an authentication device and method, and more particularly, to the improvement of the robustness against a security attack of an authentication device based on a public key cryptographic algorithm.
기기(device) 인증이나 메시지 전자 서명에서 공개키 암호 알고리즘을 이용한 서명 기법이 사용된다. 예를 들어, RSA (Rivest Shamir Adleman) 알고리즘은 공개키와 개인키를 세트로 만들어서 암호화와 복호화를 수행하는 인터넷 암호화 및 인증 방법으로, 개인키는 기기에, 공개키는 인증기관과 같은 상대 기기에 전달되어 보관된다.A signature technique using a public key cryptographic algorithm is used for device authentication or digital message signature. For example, the RSA (Rivest Shamir Adleman) algorithm is an Internet encryption and authentication method that performs encryption and decryption by creating a public key and a private key as a set. The private key is used in a device, and the public key is used in an external device such as an authentication authority. Delivered and stored.
한편, RSA와 같은 공개키 알고리즘 기반에서 개인키가 노출/유출되는 경우 서명을 위조할 수 있으므로 개인키는 보안 공격, 이를테면 부채널 공격(side channel attack)의 목표가 되고 있다. 부채널 공격 방법 중, 대량의 데이터를 수집하여 통계적으로 분석하는 DPA(Differential Power Analysis) 공격은 매우 강력한 것으로 알려져 있다.On the other hand, if the private key is exposed/lead based on a public key algorithm such as RSA, the signature can be forged, so the private key is a target of a security attack, such as a side channel attack. Among the side-channel attack methods, DPA (Differential Power Analysis) attack, which collects and statistically analyzes a large amount of data, is known to be very powerful.
한편, PUF (Physically Unclonable Function)는 예측 불가능한 (unpredictable) 디지털 값을 제공할 수 있다. 개개의 PUF들은 정확한 제조 공정이 주어지고, 동일한 공정에서 제조되더라도, 상기 개개의 PUF들이 제공하는 디지털 값은 다르다. PUF는 복제가 불가능한 POWF (Physical One-Way Function practically impossible to be duplicated)로 지칭될 수도 있다.Meanwhile, PUF (Physically Unclonable Function) may provide an unpredictable digital value. Individual PUFs are given an exact manufacturing process, and even though they are manufactured in the same process, the digital values provided by the individual PUFs are different. PUF may also be referred to as POWF (Physical One-Way Function practically impossible to be duplicated), which cannot be duplicated.
이러한 PUF의 복제 불가능한 특성은 보안 및/또는 인증을 위한 기기의 식별자(identifier)를 생성하는 데에 이용될 수 있다. 이를테면, 디바이스를 다른 디바이스와 구별하기 위한 유니크 키(unique key to distinguish devices from one another)를 제공하기 위해 PUF가 이용될 수 있다.The non-replicable nature of this PUF can be used to generate an identifier of a device for security and/or authentication. For example, a PUF can be used to provide a unique key to distinguish devices from one another.
한국 등록특허 10-1139630호(이하 '630 특허)에서 PUF를 구현하는 방법이 제시된 바 있다. '630 특허에서는 반도체의 공정 편차(process variation)를 이용하여 반도체의 전도성 레이어들 사이의 인터-레이어 콘택(inter-layer contact) 또는 비아(via)의 생성 여부가 확률적으로 결정되도록 한 방법이 제시되었다.In Korean Patent Registration No. 10-1139630 (hereinafter '630 patent), a method of implementing a PUF has been suggested. The '630 patent proposes a method in which the generation of inter-layer contacts or vias between the conductive layers of the semiconductor is determined probabilistically by using the process variation of the semiconductor. Became.
실시예들에 따르면, 부채널 공격에 강인한 인증 장치 및 인증 방법이 제시된다. 이를테면, 공개키 기반 알고리즘을 이용하면서도 DPA 공격을 불가능하고 또한 무의미하게 만드는 인증 장치 및 방법이 제시된다. 실시예들에 따르면 공개키-개인키 쌍이 고정된 값으로 되어 반복적으로 사용되지 않고, 대신 인증이 필요한 경우에 인스턴트하게(instantly) 생성되어 사용될 수 있다.According to embodiments, an authentication apparatus and an authentication method robust against side-channel attacks are provided. For example, an authentication device and method that makes DPA attacks impossible and meaningless while using a public key-based algorithm are presented. According to embodiments, a public key-private key pair is a fixed value, so that it is not used repeatedly, and instead may be instantly generated and used when authentication is required.
일측에 따르면, 적어도 하나의 프로세서를 포함하고 공개키 기반 암호화 알고리즘(encryption algorithm using public key), 이를테면 비대칭키 암호화 알고리즘(asymmetric keys encryption algorithm)인 RSA 에 따른 인증 절차를 수행하는 인증 장치가 제공된다. 장치에는 기 생성된 고정 개인키 p, q를 가지고 있다. 일실시예에 따르면 장치는: 상기 알고리즘에 대응하는 전자 서명이 필요한 경우에 응답하여, 제1 인스턴트 공개키를 생성하는 생성부; 상기 고정 개인키와 상기 제1 인스턴트 공개키를 이용해서, 상기 알고리즘에서 상기 제1 인스턴트 공개키와 쌍을 이루는 제1 인스턴트 개인키를 계산하는 계산부; 및 상기 제1 인스턴트 개인키를 이용하여 상기 알고리즘에 의한 전자서명을 생성하는 처리부를 포함할 수 있다. 상기 생성부, 상기 계산부 및 상기 처리부는 상기 적어도 하나의 프로세서에 의해 적어도 일시적으로 구현될 수 있다. 일실시예에 따르면 장치는 전송할 메시지를 상기 전자서명 및 상기 제1 인스턴트 공개키와 함께 상대 기기에 전송하는 통신부를 더 포함한다.According to one side, there is provided an authentication apparatus that includes at least one processor and performs an authentication procedure according to an encryption algorithm using public key, such as RSA, which is an asymmetric keys encryption algorithm. The device has pre-generated fixed private keys p and q. According to an embodiment, an apparatus includes: a generator configured to generate a first instant public key in response to a case where an electronic signature corresponding to the algorithm is required; A calculation unit that calculates a first instant private key paired with the first instant public key in the algorithm using the fixed private key and the first instant public key; And a processing unit for generating an electronic signature by the algorithm using the first instant private key. The generation unit, the calculation unit, and the processing unit may be implemented at least temporarily by the at least one processor. According to an embodiment, the device further includes a communication unit for transmitting a message to be transmitted together with the electronic signature and the first instant public key to the counterpart device.
일실시예에 따르면 장치는 공개키 키 생성 알고리즘을 통해 상기 고정 개인키를 생성하여 보유하고 있다. 상기 고정 개인키는 상기 제1 인스턴트 공개키를 이용해서 상기 제1 인스턴트 개인키를 계산할 때와 사용에 앞서 발급 과정에서 다른 기기로 전달되어 추후 서명 검증에 함께 사용되는 고정 공개키를 생성할 때 이용된다. 예시적으로, 그러나 한정되지 않게, 상기 인증 장치에는 무작위적으로 발생하는 공정 편차를 이용하여 하드웨어 핑거프린트를 제공하는 PUF가 더 포함될 수 있다. 일실시예에 따르면 이 PUF의 값이 상기 고정 개인키 값으로 직접 또는 간접적으로 사용할 수 있다. 이 경우에는 메모리에 상기 고정 개인키를 직접적으로 저장할 필요가 없어 물리적 공격으로부터 상기 고정 개인키를 보호할 수 있다. 이는 상기 고정 개인키가 해당 기기 내에만 존재한다는 점이 강하게 보장되기 때문에 다른 기기에서 인스턴트 공개키-개인키 쌍을 임의로 만들 수 없음 또한 보장된다. 또한 다른 실시예에서는, 상기 PUF의 값이 인스턴트 공개키들을 만드는 데에 직접 또는 간접적으로 이용될 수도 있다. 이를테면 랜덤 넘버 생성 과정에서의 시드 값 또는 근원 값으로 이용될 수 있다.. 이 경우, PUF를 랜덤 넘버 생성 알고리즘의 근원 값으로 사용함으로써, 기기 마다 생성되는 랜덤 넘버 생성 결과가 서로 독립적이고 또한 값이 상이해지도록 하는 효과를 추가적으로 기대할 수 있다.According to an embodiment, the device generates and holds the fixed private key through a public key key generation algorithm. The fixed private key is used when calculating the first instant private key using the first instant public key and when generating a fixed public key that is transferred to another device during the issuing process prior to use and used for later signature verification. do. By way of example, but not limitation, the authentication apparatus may further include a PUF that provides a hardware fingerprint using a process variation that occurs randomly. According to an embodiment, the value of this PUF may be used directly or indirectly as the fixed private key value. In this case, there is no need to directly store the fixed private key in a memory, so that the fixed private key can be protected from physical attacks. This is strongly guaranteed that the fixed private key exists only in the corresponding device, so it is also guaranteed that an instant public key-private key pair cannot be arbitrarily created in another device. Also, in another embodiment, the value of the PUF may be used directly or indirectly to generate instant public keys. For example, it can be used as a seed value or a source value in the process of generating a random number. In this case, by using the PUF as a source value of the random number generation algorithm, the random number generation results generated for each device are independent of each other and the value is You can expect additional effects to make them different.
한편 상기 상대 기기로부터 재전송 요청이 수신되는 것에 응답하여 아래와 같이 대응할 수 있다. 단순 통신 오류로 인한 재전송 요청의 경우 생성했던 메시지를 재전송 할 수 있다. 그러나 그 외의 경우, 이를테면 잘못된 서명, 또는 공격이 있는 것으로 의심되는 경우, 제 1 인스턴트 공개키를 폐기하고, 이와 상이한 새로운 제2 인스턴트 공개키를 생성하여 다시 전자서명을 생성하여 전송한다.Meanwhile, in response to receiving a retransmission request from the counterpart device, it may respond as follows. In the case of a retransmission request due to a simple communication error, the generated message can be retransmitted. However, in other cases, for example, when it is suspected that there is an incorrect signature or attack, the first instant public key is discarded, a new second instant public key different from this is generated, and a digital signature is again generated and transmitted.
일실시예에 따르면 상기 계산 결과에서 상기 제1 인스턴트 공개키와 쌍을 이루는 상기 제1 인스턴트 개인키가 존재하지 않는 것으로 판단되는 경우에, 상기 생성부는 상기 제1 인스턴트 공개키와 상이한 제2 인스턴트 공개키를 생성한다. 그러면 상기 계산부는 상기 알고리즘에서 상기 제2 인스턴트 공개키와 쌍을 이루는 제2 인스턴트 개인키를 계산한다. 한편, 상기 생성부는 상기 제2 인스턴트 공개키를 생성하기 위해 상기 랜덤 넘버 생성 과정을 수행하는 대신 상기 제1 인스턴트 공개키에 정수 2를 더한 수를 상기 제2 인스턴트 공개키로 결정하여 제공할 수도 있다. 제1 인스턴트 공개키에 더해지는 "2"라는 정수는 예시적인 것이므로, 다른 값으로 변경될 수 있다. 만약 상기 암호화 알고리즘이 RSA-CRT (Chinese Remainder Theorem) 알고리즘인 경우, 상기 계산부가 계산하는 상기 제1 인스턴트 개인키는 제1 dP 값 및 제1 dQ 값을 포함하는 것이다. 이 RSA-CRT 실시예에서 상기 계산 결과에 따른 상기 제1 dP 값 및 상기 제1 dQ 값 중 어느 하나라도 존재하지 않는 것으로 판단되는 경우라면, 상기 생성부는 상기 제1 인스턴트 공개키와 상이한 제2 인스턴트 공개키를 생성한다. 그리고 상기 계산부는 상기 알고리즘에서 상기 제2 인스턴트 공개키와 쌍을 이루는 제2 dP 값 및 제2 dQ 값을 계산한다.According to one embodiment, when it is determined from the calculation result that the first instant private key paired with the first instant public key does not exist, the generation unit discloses a second instant different from the first instant public key. Generate the key. Then, the calculation unit calculates a second instant private key paired with the second instant public key in the algorithm. Meanwhile, the generation unit may determine and provide a number obtained by adding an integer of 2 to the first instant public key as the second instant public key instead of performing the process of generating the random number to generate the second instant public key. The integer "2" added to the first instant public key is exemplary and may be changed to a different value. If the encryption algorithm is a RSA-CRT (Chinese Remainder Theorem) algorithm, the first instant private key calculated by the calculation unit includes a first dP value and a first dQ value. In this RSA-CRT embodiment, if it is determined that either of the first dP value and the first dQ value according to the calculation result does not exist, the generation unit is a second instant public key different from the first instant public key. Generate a public key. Further, the calculator calculates a second dP value and a second dQ value paired with the second instant public key in the algorithm.
다른 일측에 따르면, 적어도 하나의 프로세서를 포함하고 공개키 기반 암호화 알고리즘에 따라 상대 기기가 전송한 전자서명을 검증하는 인증 장치, 이를테면 인증 기관(CA: Certification Authority)가 제공된다. 장치는, 보유하고 있던 상기 상대 기기의 고정 공개키, 및 상기 상대 기기가 인스턴트하게 생성하여 상기 전자서명과 함께 전송한 제1 인스턴트 공개키를 이용하여, 상기 전자서명을 검증하는 처리부를 포함할 수 있다.According to the other side, an authentication device, such as a certification authority (CA), is provided that includes at least one processor and verifies an electronic signature transmitted by an external device according to a public key-based encryption algorithm. The device may include a processing unit for verifying the digital signature using a fixed public key of the counterpart device held by the counterpart device, and a first instant public key instantaneously generated by the counterpart device and transmitted with the electronic signature. have.
일실시예에 따르면 장치는, 상기 제1 인스턴트 공개키가 3 이상의 홀수가 아니라면, 상기 제1 인스턴트 공개키를 유효하지 않은 것으로 판단하는 판단부를 더 포함할 수 있다. 한편, 상기 처리부와 상기 판단부는 상기 적어도 하나의 프로세서에 의해 적어도 일시적으로 구현될 수 있다.According to an embodiment, the apparatus may further include a determination unit that determines that the first instant public key is invalid if the first instant public key is not an odd number of 3 or more. Meanwhile, the processing unit and the determination unit may be implemented at least temporarily by the at least one processor.
또 다른 일측에 따르면, 적어도 하나의 프로세서를 포함하는 인증 장치에 있어서, 상대 기기로부터 수신되는 제1 인스턴트 공개키가 유효한 값인지 판단하는 판단부; 및 상기 제1 인스턴트 공개키가 유효한 값인 경우, 보유하고 있던 상기 상대 기기의 고정 공개키와 상기 제1 인스턴트 공개키를 이용하여, 전송할 데이터를 인코딩하는 처리부를 포함하는 인증 장치가 제공된다. 상기 판단부와 상기 처리부는 상기 적어도 하나의 프로세서에 의해 적어도 일시적으로 구현될 수 있다. 예시적으로, 그러나 한정되지 않게, 상기 제1 인스턴트 공개키는 상기 상대 기기에서 랜덤 넘버 생성 과정을 통해 생성된 것일 수 있다.According to another aspect, there is provided an authentication apparatus including at least one processor, comprising: a determination unit determining whether a first instant public key received from a counterpart device is a valid value; And a processing unit for encoding data to be transmitted using the fixed public key of the counterpart device and the first instant public key held when the first instant public key is a valid value. The determination unit and the processing unit may be implemented at least temporarily by the at least one processor. For example, but not limited to, the first instant public key may be generated by the counterpart device through a random number generation process.
일실시예에 따르면 상기 제1 인스턴트 공개키가 3 이상의 홀수가 아니라면, 상기 판단부가 상기 제1 인스턴트 공개키를 유효하지 않은 것이라고 판단할 수 있다. 또 다른 일측에 따르면, 적어도 하나의 프로세서를 포함하고 공개키 기반 암호화 알고리즘에 따른 인증 절차를 수행하는 인증 장치가 제공된다. 장치는: 상기 인증 절차가 수행되어야 하는 것에 응답하여, 랜덤 넘버 생성 과정을 통해 제1 인스턴트 공개키를 생성하는 생성부; 상기 제1 인스턴트 공개키를 이용해서, 상기 알고리즘에서 상기 제1 인스턴트 공개키와 쌍을 이루는 제1 인스턴트 개인키를 계산하는 계산부; 및 상기 제1 인스턴트 공개키를 전송 받은 상대 기기로부터, 상기 상대 기기에 미리 보유되는 고정 공개키와 상기 제1 인스턴트 공개키를 이용하여 인코딩한 메시지가 수신되면, 상기 제1 인스턴트 개인키를 이용하여 상기 메시지를 디코딩하는 처리부를 포함할 수 있다. 상기 생성부, 상기 계산부, 상기 처리부는 상기 적어도 하나의 프로세서에 의해 적어도 일시적으로 구현될 수 있다.According to an embodiment, if the first instant public key is not an odd number of 3 or more, the determination unit may determine that the first instant public key is invalid. According to another aspect, there is provided an authentication apparatus including at least one processor and performing an authentication procedure according to a public key-based encryption algorithm. The apparatus includes: a generator configured to generate a first instant public key through a random number generation process in response to the authentication procedure to be performed; A calculation unit that calculates a first instant private key paired with the first instant public key in the algorithm using the first instant public key; And when a message encoded using the first instant public key and a fixed public key previously held in the counterpart device is received from the counterpart device that has received the first instant public key, the first instant private key is used. It may include a processing unit for decoding the message. The generation unit, the calculation unit, and the processing unit may be implemented at least temporarily by the at least one processor.
일실시예에 따르면 상기 인증 장치에는 무작위적으로 발생하는 공정 편차를 이용하여 하드웨어 핑거프린트를 제공하는 PUF가 더 포함될 수 있다. 이 경우, 상기 랜덤 넘버 생성 과정은, 상기 하드웨어 핑거프린트 값을 근원 값으로 이용하는 랜덤 넘버 생성 알고리즘을 포함한다.According to an embodiment, the authentication device may further include a PUF that provides a hardware fingerprint using a process deviation that occurs randomly. In this case, the process of generating the random number includes a random number generation algorithm using the hardware fingerprint value as a source value.
일실시예에 따르면, 상기 계산 결과에서 상기 제1 인스턴트 공개키와 쌍을 이루는 상기 제1 인스턴트 개인키가 존재하지 않는 것으로 판단되는 경우에, 상기 생성부는 상기 제1 인스턴트 공개키와 상이한 제2 인스턴트 공개키를 생성한다. 그리고 상기 계산부는 상기 알고리즘에서 상기 제2 인스턴트 공개키와 쌍을 이루는 제2 인스턴트 개인키를 계산할 수 있다.According to an embodiment, when it is determined from the calculation result that the first instant private key paired with the first instant public key does not exist, the generation unit Generate a public key. In addition, the calculation unit may calculate a second instant private key paired with the second instant public key by the algorithm.
또 다른 일측에 따르면, 컴퓨터-판독가능 기록매체에 저장되는 비-일실시적 컴퓨터 프로그램이 제공된다. 상기 프로그램은 프로세서를 포함하는 컴퓨팅 장치에서 실행되는 경우 상기 프로세서가 동작하도록 하는 이하의 명령어 세트들을 포함할 수 있다. 명령어 세트들은: 상기 프로세서가 메시지에 대응하는 전자 서명 생성 요청에 응답하여, 랜덤 넘버 생성 과정을 통해 제1 인스턴트 공개키를 생성하도록 하는 명령어 세트; 상기 프로세서가 상기 제1 인스턴트 공개키를 이용해서, 상기 제1 인스턴트 공개키와 쌍을 이루는 제1 인스턴트 개인키를 계산하도록 하는 명령어 세트; 및 상기 프로세서가 상기 제1 인스턴트 개인키를 이용하여 공개키-알고리즘에 의한 전자서명을 생성하도록 하는 명령어 세트를 포함할 수 있다.According to another aspect, there is provided a non-executive computer program stored on a computer-readable recording medium. The program may include the following instruction sets for causing the processor to operate when executed in a computing device including a processor. The instruction sets include: an instruction set for causing the processor to generate a first instant public key through a random number generation process in response to a request for generating an electronic signature corresponding to the message; An instruction set for causing the processor to calculate a first instant private key paired with the first instant public key by using the first instant public key; And an instruction set for causing the processor to generate an electronic signature based on a public key-algorithm using the first instant private key.
또 다른 일측에 따르면, 컴퓨터-판독가능 기록매체에 저장되는 비-일실시적 컴퓨터 프로그램이 제공된다. 상기 프로그램은 프로세서를 포함하는 컴퓨팅 장치에서 실행되는 경우 상기 프로세서가 동작하도록 하는 이하의 명령어 세트들을 포함할 수 있다. 명령어 세트들은: 상기 프로세서가 상대 기기로부터 메시지 및 전자서명과 함께 수신된 제1 인스턴트 공개키가 유효한 지 판단하도록 하는 명령어 세트; 및 상기 프로세서가 상기 제1 인스턴트 공개키가 유효한 경우, 상기 컴퓨팅 장치에 저장되어 있던 상기 상대 기기의 고정 공개키, 및 수신한 상기 제1 인스턴트 공개키를 이용하여 상기 전자서명을 검증하도록 하는 명령어 세트를 포함할 수 있다.According to another aspect, there is provided a non-executive computer program stored on a computer-readable recording medium. The program may include the following instruction sets for causing the processor to operate when executed in a computing device including a processor. The instruction sets include: an instruction set for causing the processor to determine whether a first instant public key received with a message and an electronic signature from an external device is valid; And an instruction set for causing the processor to verify the digital signature using a fixed public key of the counterpart device stored in the computing device and the received first instant public key when the first instant public key is valid. It may include.
도 1은 일실시예에 따라 인스턴트 공개키와 인스턴트 개인키를 제공하는 인증 장치를 도시하는 블록도이다.
도 2는 일실시예에 따라 상대방이 생성한 인스턴트 공개키를 전달 받아 사용하는 인증 장치를 도시하는 블록도이다.
도 3은 일실시예에 따른 전자 서명 검증 과정을 도시하는 흐름도이다.
도 4는 일실시예에 따른 인코딩 및 디코딩 과정을 도시하는 흐름도이다.
도 5는 일실시예에 따라 인스턴트 개인키가 존재하지 않는 경우의 처리를 도시하는 흐름도이다.
도 6은 일실시예에 따라 RSA-CRT 알고리즘 적용 시 개인키가 존재하지 않는 경우의 처리를 도시하는 흐름도이다.1 is a block diagram showing an authentication device that provides an instant public key and an instant private key according to an embodiment.
2 is a block diagram illustrating an authentication device that receives and uses an instant public key generated by a counterpart according to an embodiment.
3 is a flowchart illustrating a process of verifying an electronic signature according to an embodiment.
4 is a flowchart illustrating an encoding and decoding process according to an embodiment.
Fig. 5 is a flow chart showing processing when an instant private key does not exist according to an embodiment.
6 is a flowchart illustrating processing when a private key does not exist when applying the RSA-CRT algorithm according to an embodiment.
이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the rights is not limited or limited by these embodiments. The same reference numerals in each drawing indicate the same members.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.The terms used in the description below have been selected as general and universal in the related technology field, but there may be other terms depending on the development and/or change of technology, customs, preferences of technicians, and the like. Therefore, terms used in the following description should not be understood as limiting the technical idea, but should be understood as exemplary terms for describing embodiments.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, detailed meanings will be described in the corresponding description. Therefore, terms used in the following description should be understood based on the meaning of the term and the contents throughout the specification, not just the name of the term.
도 1은 일실시예에 따라 인스턴트 공개키와 인스턴트 개인키를 제공하는 인증 장치를 도시하는 블록도이다. 장치(100)는 적어도 하나의 프로세서를 포함하는 컴퓨팅 단말의 적어도 일부분일 수 있다. 이 컴퓨팅 단말은, 예시적으로 그러나 한정되지 않게, 스마트폰, 태블릿, 랩탑, 범용 컴퓨터, 서버, 또는 암호화 통신용 전용 단말기 등일 수 있다. 장치(100)는 공개키 기반 암호화 알고리즘, 이를테면 RSA와 같은 비대칭키 암호화 알고리즘에 따른 인증 절차를 수행한다.1 is a block diagram showing an authentication device that provides an instant public key and an instant private key according to an embodiment. The
일실시예에 따르면 장치(100)의 생성부(110)는 RSA 알고리즘에 대응하는 전자 서명이 필요한 경우에 응답하여, 제1 인스턴트 공개키(instant public-key) "E"를 생성한다. 이러한 제1 인스턴트 공개키 E의 생성은 랜덤 넘버 생성(random number generating) 과정을 통해 수행될 수 있다. 한편, 생성되는 E는 3이상의 홀수이어야 한다. 소수(prime) 또는 매우 큰 수인 경우에도 의사-소수(pseudo-prime)이어야 하기 때문이다. 생성부(110)는 생성된 E가 홀수인지와, 그 값이 1이 아닌지 확인할 수 있다.According to an embodiment, the
한편 일실시예에 따르면 장치(100)에는 무작위적으로 발생하는 반도체 공정 편차(process variation)를 이용하여 하드웨어 핑거프린트(hardware finger-print)를 제공하는 PUF (미도시)가 포함되어 있을 수 있다. 반도체 공정 편차를 이용하여 PUF를 구현하는 예에도 여러 가지가 있다. 예시적으로 반도체의 전도성 레이어들 사이에 배치되는 비아(via)들 또는 인터-레이어 컨택(inter-layer contact)들의 무작위적 형성-형성실패 결과를 이용하여 PUF가 구현될 수 있으며, 이를 자세히 공개한 '630 특허의 명세서가, 참고로서 이 명세서에 인용된다.Meanwhile, according to an embodiment, the
한편 이러한 예시적 상황에서, PUF가 제공하는 하드웨어 핑거프린트는 상기 고정 개인키 생성 알고리즘에 이용될 수 있다. 장치가 기본적으로 가지고 있는(301) 고정 개인키(p, q)는 소수로, 이를 생성할 때 고정 개인키(p, q)의 후보 값으로 하드웨어 핑거프린트가 이용될 수 있다. 이 경우 하드웨어 핑거프린트 값과 실제 생성된 고정 개인키(p, q) 값의 차이만 메모리에 기록하면 된다. 기록되는 값은 32-bit로 충분하므로 이 값만 가지고 원래 고정 개인키(p, q)을 추측하기는 불가능하다. 또한, 필요 시 하드웨어 핑거프린트 값으로부터 고정 개인키 값을 빠르게 재생산하는 것도 가능하다.Meanwhile, in this exemplary situation, the hardware fingerprint provided by the PUF may be used for the fixed private key generation algorithm. The fixed private keys (p, q) that the device basically has (301) is a prime number, and when generating them, a hardware fingerprint may be used as a candidate value of the fixed private keys (p, q). In this case, only the difference between the hardware fingerprint value and the actually generated fixed private key (p, q) value needs to be recorded in the memory. Since the recorded value is enough to be 32-bit, it is impossible to guess the original fixed private key (p, q) using only this value. In addition, it is also possible to quickly reproduce a fixed private key value from a hardware fingerprint value if necessary.
한편 이러한 예시적 상황에서, PUF가 제공하는 하드웨어 핑거프린트는 상기 랜덤 넘버 생성 알고리즘에 이용될 수도 있다. 이를테면 소프트웨어 및/또는 하드웨어 적으로 동작하는 랜덤 넘버 알고리즘에서 요구되는 근원 값, 또는 시드 키(seed key)로 하드웨어 핑거프린트가 이용될 수 있다. Meanwhile, in this exemplary situation, the hardware fingerprint provided by the PUF may be used for the random number generation algorithm. For example, a hardware fingerprint may be used as a seed key or a source value required in a random number algorithm operating in software and/or hardware.
위 수학식 1에 의해 제1 인스턴트 공개키 E가 생성되면, 계산부(120)는 RSA 방식에서 규정된 계산 방식에 따라 알고리즘에 따라 제1 인스턴트 공개키 E를 이용해서, E의 RSA 쌍인, 다시 말해 E와 쌍을 이루는 제1 인스턴트 개인키(instant private-key) "D"를 계산해 낸다.When the first instant public key E is generated by
이렇게 RSA 알고리즘에서 키 발급 과정의 대상인, 개인키-공개키를 즉석에서 생성 및 계산하는 것은 아래와 같은 장점이 있다. RSA 방식에서 개인키는 {D, p, q}가 있으며, 상대방 기기에 제공되는 공개키는 {E, N}이 있다. 여기서 N은 p와 q의 곱이며, D와 E는 D × E = 1 mod (p-1)(q-1)인 관계가 성립한다. 다른 기기나 인증기관으로 전달되는 E나 N과 달리 인증 장치 내부에만 존재하게 되는(그리고 존재해야만 하는) 개인키 {D, p, q}는 보안 공격의 대상이 된다. D를 제3자가 알게 되면, 직접적인 전자서명 위조가 가능하다. 그리고 D를 모르더라도 p 및/또는 q 값을 제3자가 알면, 외부에 공개되어 있는 E와 함께 사용하여 D를 계산해낼 수도 있기 때문에, 이 RSA 암호화는 더 이상 가치가 없게 된다.In this way, generating and calculating the private key-public key, which is the target of the key issuance process in the RSA algorithm, has the following advantages. In the RSA method, there are {D, p, q} for private keys, and {E, N} for public keys provided to the counterpart device. Here, N is the product of p and q, and D and E have a relationship of D × E = 1 mod (p-1)(q-1). Unlike E and N, which are transmitted to other devices or certification authorities, the private keys {D, p, q} that exist only inside the authentication device (and must exist) are subject to security attacks. If D is known to a third party, it is possible to forge digital signatures directly. And, even if D is not known, this RSA encryption is no longer valuable because if a third party knows the p and/or q values, it can be used with E, which is publicly disclosed, to calculate D.
앞서 언급한 바와 같이, 부채널 공격, 이를테면 DPA (Differential Power Analysis, 차분 전력 분석)은 기기의 소모 전력 파형을 분석하는데, 하나의 전류 소모 파형만 관찰하는 SPA (Simple Power Analysis) 공격과 달리, 실제 키가 사용된 파형을 다수 수집 후 통계적 분석 방법에 의해 이 D, p 또는 q를 획득하려 하게 된다. 노이즈가 심한 환경이나, 전력 소모를 쉴드하여 관찰이 어렵도록 한 경우에 SPA 공격은 성공적이지 못할 수 있지만, 여전히 DPA 공격은 알고리즘의 안전성에 위협적이다. 다수의 파형을 통한 통계적 분석 과정에서 노이즈 등 기타 아웃라이어는 상쇄될 수 있고, 유의미한 패턴이 발견될 수 있기 때문이다.As mentioned above, a side-channel attack, such as DPA (Differential Power Analysis), analyzes the power consumption waveform of a device. Unlike the SPA (Simple Power Analysis) attack, which observes only one current consumption waveform, the actual After collecting a number of waveforms with keys used, this D, p or q is attempted to be obtained by statistical analysis method. SPA attacks may not be successful in a noisy environment or when power consumption is shielded to make observation difficult, but DPA attacks still threaten the safety of the algorithm. This is because, in the process of statistical analysis through multiple waveforms, other outliers such as noise can be canceled out, and meaningful patterns can be found.
종래의 RSA 암호 알고리즘에서는 인증 장치가 고정된 개인키인 {D, p, q}를 가지고 있고, 상대방인 인증기관이 이 인증 장치의 고정된 공개키인 {E, N}을 가지고 있었다. 따라서 공격자가 기기에게 전자서명을 반복적으로 재요청하는 식으로 DPA에 필요한 다수의 파형을 수집하는 것이 가능하기에 위험이 있었다.In the conventional RSA encryption algorithm, the authentication device has a fixed private key {D, p, q}, and the other authentication authority has the fixed public key {E, N} of this authentication device. Therefore, there was a risk because it was possible for an attacker to collect multiple waveforms required for DPA by repeatedly re-requesting an electronic signature from the device.
그러나 상기 실시예에 따르면, 이 개인키와 공개키 중 적어도 D와 E가 고정된 값이 아닌 동적으로 변하는 값이 된다. 다시 말해, 전자서명과 같은 암호화 알고리즘 수행이 필요한 경우에 즉석에서(instantly) 잠시 사용하는 D와 E를 생성하는 것이다. 생성된 D와 E는 한 번(one time)만 사용되기 때문에 공격자에게 전자서명이 수집된다 하더라도 통계적으로 무의미 한 것이 된다. 실시예들은 이렇게 고정되지 않고 동적으로 변경되는 E와 D를 생성하여 사용함으로써 DPA 공격 등 부채널 공격을 원천적으로 방지하게 된다.However, according to the above embodiment, at least D and E of the private key and public key are not fixed values but are dynamically changing values. In other words, when it is necessary to perform an encryption algorithm such as an electronic signature, D and E are generated to be used for a while immediately. Since the generated D and E are used only one time, even if a digital signature is collected by the attacker, it is statistically meaningless. The embodiments essentially prevent side-channel attacks such as DPA attacks by generating and using E and D that are not fixed but dynamically changed.
더욱이, 앞서 설명한 바와 같이, 랜덤하게 제1 인스턴트 공개 키 E를 생성하는 데에 이용되는 PUF의 하드웨어 핑거프린트는 동일하게 설계되더라도 그 값이 달라서 물리적으로 복제한다는 것이 불가능하다. 그리고 PUF 값이나 구조도 외부에서 관찰 및 분석이 거의 불가능하다. 따라서, 이러한 실시예에 따르면 PUF값을 시드로 하여 랜덤한 E를 생성하는 알고리즘 자체를 공격하는 것도 방지된다.Moreover, as described above, even if the hardware fingerprint of the PUF used to randomly generate the first instant public key E is designed to be the same, it is impossible to physically duplicate it because the value is different. And it is almost impossible to observe and analyze the PUF value or structure from outside. Therefore, according to this embodiment, attacking the algorithm itself that generates a random E using the PUF value as a seed is also prevented.
이렇게 제1 인스턴트 공개키 E가 생성되고, 이를 이용하여 E의 쌍인 제1 인스턴트 개인키 D가 계산되게 되는데, 경우에 따라서는 위 수학식 2를 만족하는 D가 존재하지 않을 수도 있다.In this way, the first instant public key E is generated, and the first instant private key D, which is a pair of E, is calculated using this. In some cases, D that satisfies
D가 존재하지 않는다면, 유효한 "인스턴트 D - 인스턴트 E의 쌍"이 만들어질 수 없으므로, 생성부(110)이 앞선 제1 인스턴트 공개키 E와 다른 제2 인스턴트 공개키 E'을 생성하게 된다. 이러한 제2 인스턴트 공개키 E'을 가지고 계산부(120)가 수학식 2에 따라 제2 인스턴트 개인키 D'을 계산해 본다. D'이 존재한다면 E'과 D'을 사용하고, 그렇지 않으면 이 과정을 반복할 수 있다.If D does not exist, since a valid "instant D-instant E pair" cannot be created, the
여기서, 생성부(110)가 제2 인스턴트 공개키 E'을 만드는 과정은 제1 인스턴트 공개키 E를 만들었던 것과 유사하게 다시 랜덤 넘버 생성 과정을 거치는 것일 수도 있다. 그러나 이러한 과정보다 더 간단한 다른 실시예도 가능하다. 이를테면, 생성부(110)는 다시 랜덤 넘버 생성 과정을 수행하는 대신, 생성되었으나 대응하는 D가 존재하지 않았던 제1 인스턴트 공개키 E에 정수 2를 더한 수 (다시 말해 E 바로 위의 홀수)를 제2 인스턴트 공개키 E'이라고 결정하여 제공할 수도 있다. 여기서 E'을 생성하기 위해 E에 더해지는 "2"라는 정수는 예시적인 것이므로, 다른 값으로 변경될 수 있다. D의 존재 여부에 따라 E를 다시 생성하는 것은 도 5를 참조하여 다시 설명할 것이다.Here, the process of generating the second instant public key E'by the
한편, 상기 암호화 알고리즘이 CRT (Chinese Remainder Theorem)를 이용하는 알고리즘일 수도 있는데, 이 경우에는 E를 가지고 계산되어야 하는 인스턴트 개인키는 D 하나가 아니라 아래 수학식 3과 수학식 4에 따라 계산되는 {dP, dQ}일 수 있다.On the other hand, the encryption algorithm may be an algorithm using CRT (Chinese Remainder Theorem). In this case, the instant private key to be calculated with E is not one D, but {dP calculated according to Equations 3 and 4 below. , dQ}.
이 RSA-CRT 실시예에서, 계산부(120)의 계산에 따라 E에 대응하는 유효한 dP 값 및 유효한 dQ 값 중 어느 하나라도 존재하지 않는 것으로 판단되면 마찬가지로 E를 다시 생성해야 할 수 있다. 이 경우도 랜덤 넘버 생성 과정을 다시 거칠 수도 있으나, E에 2를 더해서 간단히 E'을 결정하고, 이 E'에 대응하는 dP' 값 및 dQ' 값을 계산할 수도 있다. 자세한 내용은 도 6을 참조하여 다시 설명할 것이다.In this RSA-CRT embodiment, if it is determined that either of the valid dP value and the valid dQ value corresponding to E does not exist according to the calculation of the
이상의 과정을 통해 유효한 인스턴트 공개키(E)와 인스턴트 개인키(D 또는 {dP, dQ})가 결정되면 이를 통하여 RSA 방식의 암호화 알고리즘이 수행될 수 있다. 메시지 M을 서명하여 전자서명 S를 생성한다면 처리부(130)가 아래와 같은 과정을 수행할 수 있다.When a valid instant public key (E) and an instant private key (D or {dP, dQ}) are determined through the above process, the RSA-type encryption algorithm may be performed through this. If the digital signature S is generated by signing the message M, the
GenSign()은 전자서명 생성 함수로서, RSA 알고리즘에 따라 규정되어 있다. 통신부(140)은 생성된 전자서명 S를 메시지 M과 함께 상대방 기기 (이를 테면 인증 기관)에 전송하되, 종래와는 다르게 위에서 생성한 인스턴트 공개키 E도 함께 전송한다. 그러면 상대방 기기는 이 인스턴트 공개키 E를 이미 보유하고 있던 장치(100)의 고정 공개키 N과 함께 사용하여 전자서명 S를 검증할 것이다. 이상의 과정은 도 3을 참조하여 다시 설명될 것이다.GenSign() is a digital signature generation function and is specified according to the RSA algorithm. The
한편, 이렇게 전송된 인스턴트 공개키 E를 이용하여 상대방 기기가 메시지를 인코딩해서 보내온다면 장치(100)은 가지고 있던 인스턴트 개인키 D (또는 dP, dQ)를 p, q와 함께 이용하여 메시지를 디코딩할 수 있다. 이러한 과정이 도 4를 참조하여 후술된다.On the other hand, if the other device encodes and sends the message using the instant public key E transmitted in this way, the
이처럼 실시예들에 따라 보안 공격의 위험을 상당히 낮추었으나, 예상할 수 있는 몇 가지의 또 다른 공격 시도들이 있을 수 있고, 이러한 다른 공격들은 아래와 같은 실시예들에 의해 구현될 수 있다. 만약 공격자가 매우 짧은 시간에 여러 번 키의 재전송을 요구할 수 있다. 일실시예에 따른 장치(100)는 통신오류의 경우 인스턴트 개인키를 재사용하여 서명을 재생성하지 않고 이미 생성된 생성을 재전송하기만 한다. 그리고 통신 오류가 아닌 경우 기 생성된 인스턴트 공개키를 폐기하고, 새로운 인스턴트 공개키를 생성할 수 있다. 통신 오류인지 여부는 전송 메시지에 대한 통신 Ack가 수신 여부로 확인할 수 있다. 상대방 기기 쪽에서 수행할 수 있는 공격 방지 대안들은 도 2를 참고하여 보다 상세히 설명할 것이다.As described above, the risk of a security attack is considerably reduced according to the embodiments, but there may be several other attack attempts that can be expected, and these other attacks may be implemented by the following embodiments. If an attacker can request a key retransmission several times in a very short time. In the case of a communication error, the
도 2는 일실시예에 따라 상대방이 생성한 인스턴트 공개키를 전달 받아 사용하는 인증 장치를 도시하는 블록도이다. 장치(200)은 이를 테면 인증 기관(CA: Certification Authority)일 수 있다. 그리고 장치(200)는 적어도 하나의 프로세서를 포함하는 컴퓨팅 단말의 적어도 일부분일 수 있고, 후술하는 판단부(210)와 처리부(220)는 상기 프로세서에 의해 적어도 일시적으로 구현될 수 있다.2 is a block diagram illustrating an authentication device that receives and uses an instant public key generated by a counterpart according to an embodiment. The
일실시예에 따른 장치(200)는, 보유하고 있던 상기 상대 기기의 고정 공개키 N과, 도 1에서 설명한 것과 같이 상대 기기가 인스턴트하게 생성하여 메시지 M, 전자서명 S와 함께 전송한 제1 인스턴트 공개키 E를 이용하여, 전자서명 S를 검증하는 처리부(220)를 포함할 수 있다.The
메시지를 인코딩하여 상대 기기에게 보내야 하는 경우에, 처리부(220)는 보유하고 있던 그 상대 기기의 고정 공개키 N과, 앞서 전달 받은 제1 인스턴트 공개키 E를 이용하여, 전송할 데이터 M을 인코딩한다. M이 정상적으로 인코딩된 M'이 상대 기기로 전송된다면, 상대 기기는 자신의 고정 개인키 p, q와 인스턴트 개인키 D (또는 dP와 dQ)를 이용하여 M'을 M으로 디코딩 할 것이다.When the message is to be encoded and sent to the counterpart device, the
한편, 일실시예에 따르면 장치(200)는, 상대 기기가 보내온 인스턴트 공개키 E가 유효한 것인지 판단하는 판단부(210)을 더 포함할 수도 있다. 공격자가 E와 D를 모두 1로 하여 전자서명을 생성하고 이를 전달하는 공격을 예상해 볼 수 있다. 이 경우 전자서명 생성 및 검증 연산은 실제로 이루어지지 않는다. E와 D는 RSA 연산에서 지수 값(exponential value)로서 사용되기 때문에 값이 1이라면 인코딩-디코딩을 위해 메시지의 "1"제곱을 하는 것은 연산을 하지 않는 것과 동일하기 때문이다. 이 때 인증기관 CA 입장에서 보면 서명 검증 결과가 유효하게 나올 수도 있게 된다. 따라서 이러한 상황을 방지하기 위해 판단부(210)는 상대 기기로부터 전달받은 인스턴트 공개키 E가 3이상의 홀수 인지 확인한다. 그래서 E가 짝수라거나, E가 1이라면 유효하지 않은 E라고 판단할 수 있다.Meanwhile, according to an embodiment, the
나아가, 다른 일실시예에 따른 판단부(210)는 E가 지정된 재사용 횟수 이상 반복하여 사용되고 있는 경우에, 이를 비정상적인 상황으로 인식하여 인스턴트 공개키 E를 유효하지 않은 것으로 취급할 수도 있다.Further, the
도 3은 일실시예에 따른 전자 서명 검증 과정을 도시하는 흐름도이다. 상술한 바와 같이, 종래의 RSA와 차이점은 기기가 고정된 개인키 D를 가지고 있지 않고, 상대 인증기관도 이 기기의 고정된 공개키 E를 가지고 있지 않다는 점이다. 따라서, 실시예에 따르면 도 1 내지 도 2를 참조하여 상술한 대로 인증이 필요한 경우에 인스턴트 공개키 E와 이에 의해 계산되는 인스턴트 개인키 D가 생성되어 활용된다.3 is a flowchart illustrating a process of verifying an electronic signature according to an embodiment. As described above, the difference from the conventional RSA is that the device does not have a fixed private key D, and the other authentication authority does not have the fixed public key E of the device. Accordingly, according to an embodiment, when authentication is required as described above with reference to FIGS. 1 to 2, an instant public key E and an instant private key D calculated by the instant public key E are generated and utilized.
도시된 실시예에서, 기기는 저장소(301)에 p와 q만을 가지고 있다. 그리고 인증기관은 이 기기의 고정 공개키 중 N만을 가지고 있다. 인증이 필요한 경우, 단계(310)이 수행된다. 단계(310)은 랜덤 넘버 생성 과정을 통해 랜덤한 인스턴트 공개키 E가 생성되는 과정으로, 생성되는 E는 3 이상의 홀수이다. 인스턴트 E의 생성 및 그 유효성 검증에 대해서는 도 1을 참조하여 설명한 바와 같다.In the illustrated embodiment, the device only has p and q in the
그러면 단계(320)에서 인스턴트 공개키 E의 RSA 쌍인 D가 계산된다. RSA에서 규정된 방식에 의하므로 이 분야의 통상의 기술자는 이러한 D의 계산을 쉽게 이해할 수 있다. 그러면 단계(330)에서 전송할 메시지 M에 대한 전자서명 S가 생성된다. 그리고, 단계(340)에서 메시지 M, 전자서명 S와 함께 상기 인스턴트 공개키 E가 인증기관으로 전송된다. 그러면 인증기관은 전자서명 검증 알고리즘을 수행하는 단계(350)에서, 앞서 전달 받은 E를 미리 가지고 있던 N과 함께 사용할 것이다. 단계(350)의 수행에 앞서서 인증기관은 전달 받은 E가 유효한 지를 검증하는 과정을 거칠 수도 있으며, 이는 도 2를 참조하여 상세히 설명한 바 있다.Then, in
도 4는 일실시예에 따른 인코딩 및 디코딩 과정을 도시하는 흐름도이다. 인증기관이 메시지 M을 인코딩하여 기기에게 보내는 과정이 도시되어 있다. 인증기관은 단계(410)에서 미리 보유하고 있던 그 상대 기기의 고정 공개키 N과, 앞서 전달 받은 인스턴트 공개키 E를 이용하여, 전송할 데이터 M을 인코딩한다. 그리고 단계(420)에서 인코딩된 메시지 M'이 기기로 전송되고, 기기는 단계(430)에서 자신의 고정 개인키 p, q와 인스턴트 개인키 D (또는 dP와 dQ)를 이용하여 M'을 M으로 디코딩 할 수 있다.4 is a flowchart illustrating an encoding and decoding process according to an embodiment. A process by which the certification authority encodes the message M and sends it to the device is shown. In
도 5는 일실시예에 따라 인스턴트 개인키가 존재하지 않는 경우의 처리를 도시하는 흐름도이다. 단계(510)에서 기기의 생성부가 랜덤 넘버 생성 과정을 통해 인스턴트 공개기 E를 생성한다. 그리고 단계(520)에서 기기의 계산부가 E를 이용하여 수학식 2에 따라 E의 RSA 쌍인 인스턴트 개인키 D를 계산해 본다. 단계(530)에서 이 유효한 D가 존재하는 경우라면 도 1 내지 도 4를 참조하여 설명한 바와 같이 인스턴트 D와 인스턴트 E를 사용한 인증 과정이 수행된다.Fig. 5 is a flow chart showing processing when an instant private key does not exist according to an embodiment. In
그러나 단계(530)의 판단에서 D가 존재하지 않는 경우라면 기기의 생성부는 앞선 인스턴트 공개키 E와 다른 제2 인스턴트 공개키 E'을 생성한다. 이러한 과정은 다시 랜덤 넘버 생성 과정을 거치는 것일 수도 있으나 도 5에서 도시된 예에서는 보다 간단한 실시예가 제시되었다. 단계(540)에서 앞서 생성되었으나 D가 존재하지 않아 사용될 수 없는 인스턴트 공개키 E에 정수 2를 더하는 것이다. 이러한 과정이 유효한 E-D 쌍이 있을 때까지 반복된다.However, if D does not exist in the determination of
도 6은 일실시예에 따라 RSA-CRT 알고리즘 적용 시 개인키가 존재하지 않는 경우의 처리를 도시하는 흐름도이다. 먼저 CRT를 사용하지 않는 앞의 실시예의 경우 서명을 생성할 때와 CRT를 사용하는 경우 서명을 생성할 때를 비교하면 아래 표와 같다.6 is a flowchart illustrating processing when a private key does not exist when applying the RSA-CRT algorithm according to an embodiment. First, in the case of the previous embodiment not using the CRT, when the signature is generated and when the CRT is used, the signature is generated as shown in the table below.
N = pq
S = M''D mod ND = E -1 mod (p-1)(q-1)
N = pq
S = M'' D mod N
dQ = E-1 mod (q-1)
qInv = q-1 mod p
s1 = M''dp mod p
s2 = M''dq mod q
h = qInv × (s1 - s2) mod p
S = s2 + h × qdP = E -1 mod (p-1)
dQ = E -1 mod (q-1)
qInv = q -1 mod p
s 1 = M'' dp mod p
s 2 = M'' dq mod q
h = qInv × (s 1 -s 2 ) mod p
S = s 2 + h × q
위 표 1에서 M''은 RSA 서명 포맷에 맞게 메시지 M의 해쉬값에 패딩 등을 추가한 값이다. 표 1에서 확인할 수 있듯이 CRT를 사용할 경우 식이 복잡해지나 RSA 연산에서 연산양의 상당 부분을 차지하는 "modular exponentiation"의 처리 데이터 길이가 1/2이 되기 때문에, CRT를 사용하지 않는 경우에 비해 오히려 연산 속도는 4배 내지 8배 가량 빨라질 수 있다.In Table 1 above, M'' is a value obtained by adding padding to the hash value of the message M according to the RSA signature format. As can be seen in Table 1, when using CRT, the expression becomes complicated, but the processing data length of "modular exponentiation", which occupies a significant part of the calculation amount in RSA calculation, is 1/2, so the calculation speed is rather than when CRT is not used. Can be 4 to 8 times faster.
랜덤한 인스턴트 공개키 E가 생성된 후, CRT가 사용되는 경우이면(단계 610), 단계(620)에서 dP가 계산되고, 이 dP가 존재하는지 판단된다(630). dQ의 존재 여부와 관계 없이 이 dP가 존재하지 않는다면 E는 사용될 수 없다. 따라서 단계(631)에서 E에 2를 더한 수를 다시 E로 지정하고 dP를 계산하는 과정이 이 dP가 존재할 때까지 반복된다. 물론 앞서 설명한 것처럼 단계(631)은 선택적인 실시예이므로, 랜덤 넘버 생성 과정을 통해 완전히 새로운 E를 다시 생성하는 것도 가능하다.If a CRT is used after the random instant public key E is generated (step 610), dP is calculated in
dP가 존재하는 경우, dQ에 대해서도 동일한 과정이 반복된다. dQ의 계산(640) 및 존재 여부 판단(650) 및 dQ 부존재에 따른 E의 재생성(651)은 단계(620, 630 및 631)의 설명과 같다. 그리고 유효한 dP와 dQ가 모두 존재하는 경우, 단계(660)에서 CRT를 사용하는 암호화 알고리즘이 수행될 것이다.If dP exists, the same process is repeated for dQ. The
상술한 실시예들에 따른 효과 및 성능 이슈를 잠시 설명하기로 한다. 실시예들 중 PUF 하드웨어 핑거프린트를 근원 값으로 하는 랜덤 넘버 생성의 경우 외부의 공격이 불가능하다. E와 D의 쌍(pair)을 항상 재생성하여 사용하더라도 E의 값이 너무 작다면(예를 들어 16-bit 미만) 동일한 E-D 쌍이 우연히 사용될 수도 있을 것이나, 이는 E를 조금 키움으로써 방지할 수 있다. E의 크기가 커지는 경우, 전자서명 검증에 필요한 연산양은 증가하지만, 이러한 연산을 하는 인증기관의 하드웨어 리소스를 고려하면 부담이 되지 않는 정도이다. 따라서, E 값의 크기는 성능을 저하하지 않는 선에서 충분히 큰 값, 이를테면 128-bit 이상으로 정해질 수 있다.Effects and performance issues according to the above-described embodiments will be briefly described. In the case of generating a random number using a PUF hardware fingerprint as a source value, an external attack is impossible. Even if a pair of E and D is always regenerated and used, if the value of E is too small (for example, less than 16-bit), the same E-D pair may be accidentally used, but this can be prevented by increasing E a little. When the size of E increases, the amount of computation required for digital signature verification increases, but it is not a burden considering the hardware resources of the certification authority that performs such computation. Therefore, the size of the E value can be set to a sufficiently large value, such as 128-bit or more, without deteriorating the performance.
한편, 실시예들에 따라 E- D 쌍이 지속적으로 재생성 됨으로써 발생하는 성능 저하도 크지 않다. E-D 쌍을 생성하는 연산의 시간 복잡도는 키의 길이 n에 비례하고(시간 복잡도 O(n)), 서명 생성 연산은 구현 방식에 따라 키의 길이 n의 제곱 또는 세제곱에 비례한다(시간 복잡도 O(n2) 또는 O(n3)). 그런데 최근 사용되는 RSA의 최저 키 길이는 1024, 2048-bit 이상이기 때문에 E-D 쌍을 생성하는 연산 시간은 서명 생성 시간의 수천분의 1에 해당하며, 이 정도 소모 시간은 전체적으로 봤을 때 그 비중을 무시할 수 있을 정도로 작은 편이다. 따라서 실시예들에 따르면 하드웨어적인 무리나 성능 저하 없이 DPA와 같은 부채널 공격이 원천적으로 방지된다.On the other hand, according to embodiments, performance degradation caused by continuously regenerating the E-D pair is not significant. The time complexity of the operation to generate the ED pair is proportional to the length n of the key (time complexity O(n)), and the signature generation operation is proportional to the square or cube of the length n of the key (time complexity O( n 2 ) or O(n 3 )). However, since the minimum key length of the recently used RSA is 1024, 2048-bit or more, the computation time for generating an ED pair is one thousandth of the signature generation time, and this amount of time is negligible overall. It's small enough. Therefore, according to the embodiments, side-channel attacks such as DPA are prevented from being inherently unreasonable in hardware or performance degradation.
이상에서, 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.In the above, although the embodiments have been described by the limited drawings, various modifications and variations are possible from the above description by those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and claims and equivalents fall within the scope of the claims to be described later.
Claims (20)
상기 알고리즘에 대응하는 전자 서명이 필요한 경우에 응답하여, 메시지에 대한 제1 인스턴트 공개키를 생성하는 생성부;
상기 제1 인스턴트 공개키, 고정 개인키 및 상기 알고리즘을 이용해서, 상기 알고리즘에서 상기 제1 인스턴트 공개키와 쌍을 이루는 제1 인스턴트 개인키를 계산하는 계산부; 및
상기 제1 인스턴트 개인키, 상기 메시지 및 상기 고정 개인키를 이용하여 상기 알고리즘에 의한 전자서명을 생성하는 처리부
를 포함하고,
상기 제1 인스턴트 공개키는 상기 인증 절차를 위해 일시적으로 생성되어 제2 인스턴트 공개키는 상기 제1 인스턴트 공개키와 상이하고,
각 인스턴트 개인키는 대응하여 생성된 인스턴트 공개키에 기초하여 계산되는 인증 장치.In the authentication device comprising at least one processor and performing an authentication procedure according to public-key cryptosystems, the authentication device is implemented at least temporarily by the at least one processor:
A generator for generating a first instant public key for a message in response to a case where an electronic signature corresponding to the algorithm is required;
A calculation unit for calculating a first instant private key paired with the first instant public key in the algorithm by using the first instant public key, the fixed private key, and the algorithm; And
A processing unit that generates an electronic signature by the algorithm using the first instant private key, the message, and the fixed private key
Including,
The first instant public key is temporarily generated for the authentication procedure so that the second instant public key is different from the first instant public key,
Each instant private key is an authentication device that is calculated based on the corresponding instant public key.
전송할 메시지를 상기 전자서명 및 상기 제1 인스턴트 공개키와 함께 상대 기기에 전송하는 통신부
를 더 포함하는 인증 장치.The method of claim 1,
Communication unit that transmits a message to be transmitted to a counterpart device together with the digital signature and the first instant public key
Authentication device further comprising a.
상기 상대 기기로부터 재전송 요청이 수신되는 것에 응답하여, 통신 Ack가 수신되어 통신 오류가 없었던 것으로 판단되는 경우에 해당한다면 상기 생성부가 상기 제1 인스턴트 공개키와 상이한 제2 인스턴트 공개키를 생성하는 인증 장치.The method of claim 2,
In response to receiving a retransmission request from the counterpart device, if a communication Ack is received and it is determined that there is no communication error, the generating unit generates a second instant public key different from the first instant public key .
상기 생성부는, 랜덤 넘버 생성 과정을 통해 상기 제1 인스턴트 공개키를 생성하는 인증 장치.The method of claim 1,
The generating unit is an authentication device that generates the first instant public key through a process of generating a random number.
상기 인증 장치는 무작위적으로 발생하는 공정 편차를 이용하여 하드웨어 핑거프린트를 제공하는 PUF(Physically Unclonable Function)를 더 포함하고,
상기 랜덤 넘버 생성 과정은, 상기 하드웨어 핑거프린트를 근원 값으로 이용하는 랜덤 넘버 생성 알고리즘을 포함하는 인증 장치.The method of claim 4,
The authentication device further includes a PUF (Physically Unclonable Function) that provides a hardware fingerprint using a process deviation that occurs randomly,
The random number generation process includes a random number generation algorithm using the hardware fingerprint as a source value.
상기 계산 결과에서 상기 제1 인스턴트 공개키와 쌍을 이루는 상기 제1 인스턴트 개인키가 존재하지 않는 것으로 판단되는 경우:
상기 생성부는 상기 제1 인스턴트 공개키와 상이한 제2 인스턴트 공개키를 생성하고; 상기 계산부는 상기 알고리즘에서 상기 제2 인스턴트 공개키와 쌍을 이루는 제2 인스턴트 개인키를 계산하는 인증 장치.The method of claim 4,
When it is determined from the calculation result that the first instant private key paired with the first instant public key does not exist:
The generation unit generates a second instant public key different from the first instant public key; The calculation unit is an authentication device for calculating a second instant private key paired with the second instant public key in the algorithm.
상기 생성부는 상기 제2 인스턴트 공개키를 생성하기 위해 상기 랜덤 넘버 생성 과정을 수행하는 대신 상기 제1 인스턴트 공개키에 정수 2를 더한 수를 상기 제2 인스턴트 공개키로 결정하여 제공하는 인증 장치.The method of claim 6,
Instead of performing the process of generating the random number to generate the second instant public key, the generator determines and provides a number obtained by adding an integer of 2 to the first instant public key as the second instant public key.
상기 암호화 알고리즘이 RSA-CRT (Chinese Remainder Theorem) 알고리즘인 경우, 상기 계산부가 계산하는 상기 제1 인스턴트 개인키는 제1 dP 값 및 제1 dQ 값을 포함하고,
상기 계산 결과에서 상기 제1 dP 값 및 상기 제1 dQ 값 중 어느 하나라도 존재하지 않는 것으로 판단되는 경우:
상기 생성부는 상기 제1 인스턴트 공개키와 상이한 제2 인스턴트 공개키를 생성하고; 상기 계산부는 상기 알고리즘에서 상기 제2 인스턴트 공개키와 쌍을 이루는 제2 dP 값 및 제2 dQ 값을 계산하는 인증 장치.The method of claim 6,
When the encryption algorithm is a RSA-CRT (Chinese Remainder Theorem) algorithm, the first instant private key calculated by the calculation unit includes a first dP value and a first dQ value,
When it is determined that either of the first dP value and the first dQ value does not exist in the calculation result:
The generation unit generates a second instant public key different from the first instant public key; The calculation unit is an authentication device that calculates a second dP value and a second dQ value paired with the second instant public key in the algorithm.
보유하고 있던 상기 상대 기기의 고정 공개키, 및 상기 상대 기기가 전자서명에 대한 요청에 응답하여 메시지에 대해 인스턴트하게 생성하여 상기 전자서명과 함께 전송한 제1 인스턴트 공개키를 이용하여, 상기 전자서명을 검증하는 처리부
를 포함하고,
상기 제1 인스턴트 공개키는 상기 공개키 기반 암호화 알고리즘에 따른 인증 절차를 위해 일시적으로 생성되어 제2 인스턴트 공개키는 상기 제1 인스턴트 공개키와 상이하고,
각 인스턴트 개인키는 대응하여 생성된 인스턴트 공개키에 기초하여 계산되고,
상기 전자서명은 상기 상대 기기에서 제1 인스턴트 개인키, 상기 메시지 및 고정 개인키를 이용하여 상기 공개키 기반 암호화 알고리즘에 의해 생성되고,
상기 제1 인스턴트 개인키는 상기 상대 기기에서 상기 제1 인스턴트 공개키, 상기 고정 개인키 및 상기 공개키 기반 암호화 알고리즘을 이용해서 계산되는 인증 장치.An authentication device including at least one processor and for verifying an electronic signature transmitted by an external device according to a public key-based encryption algorithm, wherein the authentication device is implemented at least temporarily by the at least one processor:
Using the fixed public key of the counterpart device held by the counterpart device, and the first instant public key that the counterpart device instantaneously generated for a message in response to a request for an electronic signature and transmitted with the electronic signature, the digital signature Processing unit to verify
Including,
The first instant public key is temporarily generated for an authentication procedure according to the public key-based encryption algorithm, so that the second instant public key is different from the first instant public key,
Each instant private key is calculated based on the corresponding generated instant public key,
The digital signature is generated by the public key-based encryption algorithm using a first instant private key, the message, and a fixed private key in the counterpart device,
The first instant private key is calculated by the counterpart device using the first instant public key, the fixed private key, and the public key-based encryption algorithm.
상기 제1 인스턴트 공개키가 3 이상의 홀수가 아니라면, 상기 제1 인스턴트 공개키를 유효하지 않은 것으로 판단하는 판단부
를 더 포함하는 인증 장치.The method of claim 9,
If the first instant public key is not an odd number of 3 or more, a determination unit that determines that the first instant public key is invalid
Authentication device further comprising a.
상기 제1 인스턴트 공개키가 반복 생성된 것이라면 상기 제1 인스턴트 공개키를 유효하지 않은 것으로 판단하는 판단부
를 더 포함하는 인증 장치.The method of claim 9,
If the first instant public key is repeatedly generated, a determination unit that determines that the first instant public key is invalid
Authentication device further comprising a.
상대 기기로부터 수신되는 제1 인스턴트 공개키가 유효한 값인지 판단하는 판단부; 및
상기 제1 인스턴트 공개키가 유효한 값인 경우, 보유하고 있던 상기 상대 기기의 고정 공개키와 상기 제1 인스턴트 공개키를 이용하여, 전송할 데이터를 인코딩하는 처리부
를 포함하고,
상기 제1 인스턴트 공개키는 인증 절차를 위해 일시적으로 생성되어 제2 인스턴트 공개키는 상기 제1 인스턴트 공개키와 상이하고,
각 인스턴트 개인키는 대응하여 생성된 인스턴트 공개키에 기초하여 계산되고,
상기 제1 인스턴트 공개키는 전자서명에 대한 요청에 응답하여 상기 상대 기기에서 메시지에 대해 생성되고,
상기 전자서명은 상기 상대 기기에서 제1 인스턴트 개인키, 상기 메시지 및 고정 개인키를 이용하여 공개키 기반 암호화 알고리즘에 의해 생성되고,
상기 제1 인스턴트 개인키는 상기 상대 기기에서 상기 제1 인스턴트 공개키, 상기 고정 개인키 및 상기 공개키 기반 암호화 알고리즘을 이용해서 계산되는 인증 장치.An authentication device comprising at least one processor, wherein the authentication device is implemented at least temporarily by the at least one processor:
A determination unit that determines whether the first instant public key received from the counterpart device is a valid value; And
When the first instant public key is a valid value, a processing unit that encodes data to be transmitted using a fixed public key of the counterpart device and the first instant public key held
Including,
The first instant public key is temporarily generated for an authentication procedure, so that the second instant public key is different from the first instant public key,
Each instant private key is calculated based on the corresponding generated instant public key,
The first instant public key is generated for a message in the counterpart device in response to a request for an electronic signature,
The digital signature is generated by a public key-based encryption algorithm using a first instant private key, the message, and a fixed private key in the counterpart device,
The first instant private key is calculated by the counterpart device using the first instant public key, the fixed private key, and the public key-based encryption algorithm.
상기 제1 인스턴트 공개키는, 상기 상대 기기에서 랜덤 넘버 생성 과정을 통해 생성된 것인 인증 장치.The method of claim 12,
The first instant public key is generated by the counterpart device through a random number generation process.
상기 판단부는, 상기 제1 인스턴트 공개키가 3 이상의 홀수가 아니라면, 상기 제1 인스턴트 공개키를 유효하지 않은 것으로 판단하는 인증 장치.The method of claim 12,
The determining unit, when the first instant public key is not an odd number of 3 or more, determines that the first instant public key is invalid.
상기 판단부는, 상기 제1 인스턴트 공개키가 미리 지정된 재사용 횟수 이상 반복 사용되고 있는 경우라면, 상기 제1 인스턴트 공개키를 유효하지 않은 것으로 판단하는 인증 장치.The method of claim 12,
The determining unit, when the first instant public key is repeatedly used for more than a predetermined number of reuses, determines that the first instant public key is not valid.
상기 인증 절차가 수행되어야 하는 것에 응답하여, 랜덤 넘버 생성 과정을 통해 메시지에 대한 제1 인스턴트 공개키를 생성하는 생성부;
상기 제1 인스턴트 공개키, 고정 개인키 및 상기 알고리즘을 이용해서, 상기 알고리즘에서 상기 제1 인스턴트 공개키와 쌍을 이루는 제1 인스턴트 개인키를 계산하는 계산부; 및
상기 제1 인스턴트 공개키, 상기 메시지 및 상기 고정 개인키를 전송 받은 상대 기기로부터, 상기 상대 기기에 미리 보유되는 고정 공개키와 상기 제1 인스턴트 공개키를 이용하여 인코딩한 메시지가 수신되면, 상기 제1 인스턴트 개인키를 이용하여 상기 메시지를 디코딩하는 처리부
를 포함하고,
상기 제1 인스턴트 공개키는 상기 인증 절차를 위해 일시적으로 생성되어 제2 인스턴트 공개키는 상기 제1 인스턴트 공개키와 상이하고,
각 인스턴트 개인키는 대응하여 생성된 인스턴트 공개키에 기초하여 계산되는 인증 장치.An authentication device comprising at least one processor and performing an authentication procedure according to a public key-based encryption algorithm, wherein the authentication device is implemented at least temporarily by the at least one processor:
A generator for generating a first instant public key for a message through a random number generation process in response to the authentication procedure to be performed;
A calculation unit for calculating a first instant private key paired with the first instant public key in the algorithm by using the first instant public key, the fixed private key, and the algorithm; And
When a message encoded using the first instant public key and a fixed public key previously held in the counterpart device is received from the counterpart device that has received the first instant public key, the message, and the fixed private key, the second 1 Processing unit that decodes the message using an instant private key
Including,
The first instant public key is temporarily generated for the authentication procedure so that the second instant public key is different from the first instant public key,
Each instant private key is an authentication device that is calculated based on the corresponding instant public key.
상기 인증 장치는 무작위적으로 발생하는 공정 편차를 이용하여 하드웨어 핑거프린트를 제공하는 PUF(Physically Unclonable Function)를 더 포함하고,
상기 랜덤 넘버 생성 과정은, 상기 하드웨어 핑거프린트를 근원 값으로 이용하는 랜덤 넘버 생성 알고리즘을 포함하는 인증 장치.The method of claim 16,
The authentication device further includes a PUF (Physically Unclonable Function) that provides a hardware fingerprint using a process deviation that occurs randomly,
The random number generation process includes a random number generation algorithm using the hardware fingerprint as a source value.
상기 계산 결과에서 상기 제1 인스턴트 공개키와 쌍을 이루는 상기 제1 인스턴트 개인키가 존재하지 않는 것으로 판단되는 경우:
상기 생성부는 상기 제1 인스턴트 공개키와 상이한 제2 인스턴트 공개키를 생성하고; 상기 계산부는 상기 알고리즘에서 상기 제2 인스턴트 공개키와 쌍을 이루는 제2 인스턴트 개인키를 계산하는 인증 장치.The method of claim 1,
When it is determined from the calculation result that the first instant private key paired with the first instant public key does not exist:
The generation unit generates a second instant public key different from the first instant public key; The calculation unit is an authentication device for calculating a second instant private key paired with the second instant public key in the algorithm.
메시지에 대응하는 전자 서명 생성 요청에 응답하여, 랜덤 넘버 생성 과정을 통해 메시지에 대한 제1 인스턴트 공개키를 생성하도록 하는 명령어 세트;
상기 제1 인스턴트 공개키, 고정 개인키 및 공개키 기반 암호화 알고리즘을 이용해서, 상기 제1 인스턴트 공개키와 쌍을 이루는 제1 인스턴트 개인키를 계산하도록 하는 명령어 세트; 및
상기 제1 인스턴트 개인키, 상기 메시지 및 상기 고정 개인키를 이용하여 상기 공개키 기반 암호화 알고리즘에 의한 전자서명을 생성하도록 하는 명령어 세트
를 포함하고,
상기 제1 인스턴트 공개키는 인증 절차를 위해 일시적으로 생성되어 제2 인스턴트 공개키는 상기 제1 인스턴트 공개키와 상이하고,
각 인스턴트 개인키는 대응하여 생성된 인스턴트 공개키에 기초하여 계산되는 컴퓨터-판독가능 기록매체에 저장되는 프로그램.A non-executive computer program stored on a computer-readable recording medium, wherein when the program is executed on a computing device including a processor, the processor:
An instruction set for generating a first instant public key for a message through a process of generating a random number in response to a request for generating an electronic signature corresponding to the message;
An instruction set for calculating a first instant private key paired with the first instant public key using the first instant public key, a fixed private key, and a public key-based encryption algorithm; And
An instruction set for generating an electronic signature using the public key-based encryption algorithm using the first instant private key, the message, and the fixed private key
Including,
The first instant public key is temporarily generated for an authentication procedure, so that the second instant public key is different from the first instant public key,
Each instant private key is a program stored in a computer-readable recording medium that is calculated based on the corresponding generated instant public key.
상대 기기로부터 메시지 및 전자서명과 함께 수신된 상기 메시지의 제1 인스턴트 공개키가 유효한 지 판단하도록 하는 명령어 세트; 및
상기 제1 인스턴트 공개키가 유효한 경우, 상기 컴퓨팅 장치에 저장되어 있던 상기 상대 기기의 고정 공개키, 및 수신한 상기 제1 인스턴트 공개키를 이용하여 상기 전자서명을 검증하도록 하는 명령어 세트
를 포함하고,
상기 제1 인스턴트 공개키는 인증 절차를 위해 일시적으로 생성되어 제2 인스턴트 공개키는 상기 제1 인스턴트 공개키와 상이하고,
각 인스턴트 개인키는 대응하여 생성된 인스턴트 공개키에 기초하여 계산되고,
상기 전자서명은 상기 상대 기기에서 제1 인스턴트 개인키, 상기 메시지 및 고정 개인키를 이용하여 공개키 기반 암호화 알고리즘에 의해 생성되고,
상기 제1 인스턴트 개인키는 상기 상대 기기에서 상기 제1 인스턴트 공개키, 상기 고정 개인키 및 상기 공개키 기반 암호화 알고리즘을 이용해서 계산되는 컴퓨터-판독가능 기록매체에 저장되는 프로그램.A non-executive computer program stored on a computer-readable recording medium, wherein when the program is executed on a computing device including a processor, the processor:
An instruction set for determining whether the first instant public key of the message received together with the message and the electronic signature from the counterpart device is valid; And
When the first instant public key is valid, a set of instructions for verifying the digital signature using the fixed public key of the counterpart device stored in the computing device and the received first instant public key
Including,
The first instant public key is temporarily generated for an authentication procedure, so that the second instant public key is different from the first instant public key,
Each instant private key is calculated based on the corresponding generated instant public key,
The digital signature is generated by a public key-based encryption algorithm using a first instant private key, the message, and a fixed private key in the counterpart device,
The first instant private key is a program stored in a computer-readable recording medium calculated using the first instant public key, the fixed private key, and the public key-based encryption algorithm in the external device.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140042360 | 2014-04-09 | ||
KR20140042360 | 2014-04-09 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150050155A Division KR20150117225A (en) | 2014-04-09 | 2015-04-09 | Apparatus and method for authenticating |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170052548A KR20170052548A (en) | 2017-05-12 |
KR102177956B1 true KR102177956B1 (en) | 2020-11-12 |
Family
ID=54399524
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150050155A KR20150117225A (en) | 2014-04-09 | 2015-04-09 | Apparatus and method for authenticating |
KR1020170055361A KR102177956B1 (en) | 2014-04-09 | 2017-04-28 | Apparatus and method for authenticating |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150050155A KR20150117225A (en) | 2014-04-09 | 2015-04-09 | Apparatus and method for authenticating |
Country Status (5)
Country | Link |
---|---|
US (1) | US10659232B2 (en) |
EP (1) | EP3131231B1 (en) |
JP (1) | JP2017511095A (en) |
KR (2) | KR20150117225A (en) |
CN (1) | CN106464501B (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10397215B2 (en) | 2016-09-27 | 2019-08-27 | Visa International Service Assocation | Secure element installation and provisioning |
US11229023B2 (en) * | 2017-04-21 | 2022-01-18 | Netgear, Inc. | Secure communication in network access points |
FR3069677A1 (en) * | 2017-07-27 | 2019-02-01 | Stmicroelectronics (Crolles 2) Sas | DEVICE FOR GENERATING A RANDOM NUMBER |
JP2019121884A (en) * | 2017-12-28 | 2019-07-22 | 三菱重工業株式会社 | Integrated circuit, control device, information distribution method, and information distribution system |
JP2020195100A (en) * | 2019-05-29 | 2020-12-03 | 株式会社bitFlyer Blockchain | Device and method for proving reliability of public key, and program therefor |
CN111709044B (en) * | 2020-06-19 | 2021-06-22 | 山东省计算中心(国家超级计算济南中心) | Hardware fingerprint information generation method and system based on state cryptographic algorithm |
GB2601846A (en) * | 2021-03-15 | 2022-06-15 | Nordic Semiconductor Asa | Encoding |
US11765143B2 (en) * | 2021-05-21 | 2023-09-19 | Zoom Video Communications, Inc. | Systems and methods for securing videoconferencing meetings |
US20220385485A1 (en) * | 2021-06-01 | 2022-12-01 | Micron Technology, Inc. | Identity theft protection with no password access |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110103589A1 (en) * | 2008-05-29 | 2011-05-05 | China Iwncomm Co., Ltd. | Key distributing method, public key of key distribution centre online updating method and device |
US20120321077A1 (en) * | 2011-06-20 | 2012-12-20 | Renesas Electronics Corporation | Cryptographic communication system and cryptographic communication method |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5016274A (en) | 1988-11-08 | 1991-05-14 | Silvio Micali | On-line/off-line digital signing |
CN1103486C (en) * | 1995-08-21 | 2003-03-19 | 松下电器产业株式会社 | Multimedia optical disk capable of preserving freshness of image content for long time and its reproduction apparatus and method |
JPH09223210A (en) * | 1996-02-19 | 1997-08-26 | Dainippon Printing Co Ltd | Portable information storage medium and authentication method and authentication system using the same |
US20020007453A1 (en) * | 2000-05-23 | 2002-01-17 | Nemovicher C. Kerry | Secured electronic mail system and method |
FR2829335A1 (en) * | 2001-09-06 | 2003-03-07 | St Microelectronics Sa | METHOD FOR INTERFERING A QUANTITY SECRET CALCULATION |
US8468209B2 (en) * | 2003-09-18 | 2013-06-18 | International Business Machines Corporation | Method of rescinding previously transmitted e-mail messages |
KR100571820B1 (en) | 2003-10-20 | 2006-04-17 | 삼성전자주식회사 | Conference session key distribution method on ID-based cryptographic system |
KR20050102291A (en) | 2004-04-21 | 2005-10-26 | 삼성전자주식회사 | Method and apparatus for protecting public key cryptosystems from side-channel attacks, and computer readable record medium stored thereof method |
WO2006091844A1 (en) * | 2005-02-25 | 2006-08-31 | Qualcomm Incorporated | Small public-key based digital signatures for authentication |
EP2030364B1 (en) * | 2006-05-21 | 2015-08-12 | International Business Machines Corporation | Assertion message signatures |
US8175269B2 (en) | 2006-07-05 | 2012-05-08 | Oracle International Corporation | System and method for enterprise security including symmetric key protection |
US8290150B2 (en) * | 2007-05-11 | 2012-10-16 | Validity Sensors, Inc. | Method and system for electronically securing an electronic device using physically unclonable functions |
US20110002461A1 (en) * | 2007-05-11 | 2011-01-06 | Validity Sensors, Inc. | Method and System for Electronically Securing an Electronic Biometric Device Using Physically Unclonable Functions |
US8533492B2 (en) | 2009-05-22 | 2013-09-10 | Mitsubishi Electric Corporation | Electronic device, key generation program, recording medium, and key generation method |
CN102265285B (en) * | 2009-09-17 | 2014-11-12 | 松下电器产业株式会社 | Information processing device, administration device and invalid-module detection system |
US8667269B2 (en) * | 2010-04-02 | 2014-03-04 | Suridx, Inc. | Efficient, secure, cloud-based identity services |
FR2959899B1 (en) * | 2010-05-10 | 2012-06-08 | Commissariat Energie Atomique | SECURE PACKET TRANSMISSION METHOD FOR WIRELESS TELECOMMUNICATION SYSTEM. |
KR101139630B1 (en) | 2010-12-09 | 2012-05-30 | 한양대학교 산학협력단 | Apparatus and method for generating identification key |
CN102325024A (en) * | 2011-09-26 | 2012-01-18 | 飞天诚信科技股份有限公司 | Method and device for generating big prime |
JP5707311B2 (en) * | 2011-12-12 | 2015-04-30 | 株式会社日立製作所 | Biometric signature system |
US8750502B2 (en) * | 2012-03-22 | 2014-06-10 | Purdue Research Foundation | System on chip and method for cryptography using a physically unclonable function |
-
2015
- 2015-04-09 EP EP15776257.6A patent/EP3131231B1/en active Active
- 2015-04-09 JP JP2017505025A patent/JP2017511095A/en not_active Withdrawn
- 2015-04-09 CN CN201580030397.1A patent/CN106464501B/en not_active Expired - Fee Related
- 2015-04-09 US US15/302,947 patent/US10659232B2/en active Active
- 2015-04-09 KR KR1020150050155A patent/KR20150117225A/en active Search and Examination
-
2017
- 2017-04-28 KR KR1020170055361A patent/KR102177956B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110103589A1 (en) * | 2008-05-29 | 2011-05-05 | China Iwncomm Co., Ltd. | Key distributing method, public key of key distribution centre online updating method and device |
US20120321077A1 (en) * | 2011-06-20 | 2012-12-20 | Renesas Electronics Corporation | Cryptographic communication system and cryptographic communication method |
Non-Patent Citations (1)
Title |
---|
QG.N.Shinde 외 1명, "Faster RSA Algorithm for Decryption Using Chinese Remainder Theorem", ICCES, vol.5, no.4, pp.255-261 (2008.)* |
Also Published As
Publication number | Publication date |
---|---|
EP3131231B1 (en) | 2019-10-16 |
CN106464501A (en) | 2017-02-22 |
US10659232B2 (en) | 2020-05-19 |
KR20170052548A (en) | 2017-05-12 |
EP3131231A1 (en) | 2017-02-15 |
KR20150117225A (en) | 2015-10-19 |
US20170187537A1 (en) | 2017-06-29 |
CN106464501B (en) | 2020-09-25 |
EP3131231A4 (en) | 2017-11-01 |
JP2017511095A (en) | 2017-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102177956B1 (en) | Apparatus and method for authenticating | |
Maitra et al. | A robust ElGamal‐based password‐authentication protocol using smart card for client‐server communication | |
US9531540B2 (en) | Secure token-based signature schemes using look-up tables | |
US8983064B2 (en) | Strengthened public key protocol | |
JPWO2007125877A1 (en) | Communication device and communication system | |
KR20140054151A (en) | Credential validation | |
CN107124274A (en) | Digital signature method and device based on SM2 | |
Ngo et al. | Dynamic Key Cryptography and Applications. | |
EP3496331A1 (en) | Two-party signature device and method | |
CN111211897A (en) | Time control encryption security enhancement method based on random prediction model | |
EP3224983A1 (en) | A method and device for authentication | |
CN107332665B (en) | Partial blind signature method based on identity on lattice | |
Muhammad et al. | Loop-based RSA key generation algorithm using string identity | |
JP2017526981A (en) | System and method for powering one-time Chinese remainder theorem for cryptographic algorithms | |
CN110990814A (en) | Trusted digital identity authentication method, system, equipment and medium | |
JP2017526981A5 (en) | ||
JP2021521748A (en) | How to generate cryptographic keys onboard using physical replication difficulty functions | |
CN117195306A (en) | Malicious participation behavior detection method based on multiparty energy data privacy calculation | |
EP3166013B1 (en) | Modular exponentiation using randomized addition chains | |
Acheampong et al. | Authentication Scheme Based on Non-Interactive Zero-Knowledge Proof for Mobile Health | |
WO2015156621A1 (en) | Authentication apparatus and method | |
Damgård et al. | On the theory and practice of personal digital signatures | |
Cheng et al. | Smart card–based password authenticated key agreement protocol using chaotic maps | |
US20230044442A1 (en) | Information leakage mitigation associated with elliptic curve operations | |
Lee et al. | An Effective and Secure User Authentication and Key Agreement Scheme in m-Healthcare Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |