KR20180137534A - Safeguarding against cryptographic power-law algorithms - Measures against error injection attacks - Google Patents
Safeguarding against cryptographic power-law algorithms - Measures against error injection attacks Download PDFInfo
- Publication number
- KR20180137534A KR20180137534A KR1020187033686A KR20187033686A KR20180137534A KR 20180137534 A KR20180137534 A KR 20180137534A KR 1020187033686 A KR1020187033686 A KR 1020187033686A KR 20187033686 A KR20187033686 A KR 20187033686A KR 20180137534 A KR20180137534 A KR 20180137534A
- Authority
- KR
- South Korea
- Prior art keywords
- variable
- modulus
- montgomery
- montgomery multiplication
- cryptographic
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/723—Modular exponentiation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/728—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
특히 세이프-에러 주입 공격에 대하여, RSA와 DSA와 같은 암호적 시스템을 보안하기 위해, 몽고메리 곱셈의 특성을 사용하는 대책이 개시된다. 제안된 알고리즘에서, 이진 거듭제곱 b = ad mod n은, 지수(d)의 현재 비트(di)가 0과 동일할 때, 몽고메리 곱셈을 사용하여 반복적으로 계산된다. 그 경우에, R에 의한 거듭제곱 계산의 실제 결과의 몽고메리 곱셈이 실현된다. 이러한 대책 덕분에, 계산 동안에 도입된 오류 주입 타입의 임의의 교란이 있다면, 개인 키(d)의 현재 비트(di)를 추론하기 위해 이러한 공격이 비효과적이게 하는 최종 결과에 대한 가시적 효과를 가질 것이다.In particular, a countermeasure using Montgomery multiplication properties is disclosed in order to secure a cryptographic system such as RSA and DSA, especially for a secure-error injection attack. In the proposed algorithm, the binary power b = a d mod n is repeatedly calculated using Montgomery multiplication when the current bit (d i ) of the exponent (d) is equal to zero. In that case, a Montgomery multiplication of the actual result of the power calculation by R is realized. By virtue of this measure, if there is any disturbance of the error injection type introduced during the calculation, it is possible to have a visible effect on the final result that this attack becomes ineffective to infer the current bit (d i ) of the private key d will be.
Description
본 발명은 암호적 거듭제곱 알고리즘에 대한 세이프-에러 오류 주입 공격에 대한 대책에 관한 것이다.The present invention relates to countermeasures against a saf-error error injection attack on a cryptographic power-of-squared algorithm.
본 발명은 특히, 제1 메시지(a)로부터 제2 메세지(b)를 생성하기 위한 모듈러 거듭제곱 계산을 포함하는 암호적 방법에서 응용예를 찾는데, b = ad 모듈러스 n, 여기서, d는 개인 키이고, n은 공유 모듈러스이다. 이러한 응용예에서, 본 발명은 세이프-에러 오류 주입 공격(safe-error fault injection attack)과 같은 침입 공격에 대해 암호적 방법을 지키는데 사용될 수 있다. 좀 더 구체적으로, 본 발명은 몽고메리 계산(Montgomery calculation)에 기초하여 대책을 사용하는 것을 제안한다.In particular, the invention finds application in a cryptographic method comprising modular power calculation for generating a second message (b) from a first message (a), wherein b = a d modulus n, Key, and n is a shared modulus. In this application, the present invention can be used to adhere to a cryptographic method for intrusion attacks such as a safe-error fault injection attack. More specifically, the present invention proposes to use countermeasures based on the Montgomery calculation.
본 섹션에서 기술된 접근법을 추구할 수 있지만, 반드시 이전에 고려되거나 추구하였던 접근법은 아니다. 그러므로, 본원에서 다른 표시가 없는 한, 본 섹션에서 기술된 접근법은 본 출원의 청구항에 종래 기술이 아니고, 본 섹션에서의 포함된다고 하여 종래 기술로 인정되는 것도 아니다.The approach described in this section can be pursued, but it is not necessarily an approach that has been previously considered or pursued. Therefore, unless otherwise indicated herein, the approach described in this section is not prior art to the claims of the present application, nor is it recognized as prior art to be included in this section.
모듈러 거듭제곱은, 특히 RSA나 DSA와 같은 암호법에서 사용된다. RSA는 깨끗한 문자 메세지를 암호화하고, 암호화된 메시지를 해독하는데 사용되는 암호적 테크닉이고, DSA는 주어진 메세지의 시그니쳐를 생성하고, 이러한 시그니쳐의 유효성을 확인하는데 사용되는 암호적 테크닉이다. 이들 테크닉들은 공개 키의 로직을 사용한다.Modular power is used especially in cryptography such as RSA or DSA. RSA is a cryptographic technique used to encrypt clear text messages and decrypt encrypted messages, DSA is a cryptographic technique used to generate signatures for a given message and to validate such signatures. These techniques use the logic of the public key.
RSA에 있어서, 암호적 테크닉의 효율성은, 해커가 큰 수를 인수분해하는데 있어서의 어려움에 근거한다. RSA는 발명자, 즉, Rivest, Shamir 및 Adleman의 이니셜을 따라 명명되었는데, 1977년도에 소개되었다(Rivest, R.L, Shamir, A., Adelman, L.M. : "A method for obtaining digital 시그니쳐s and public-key cyptosystems" , Technical Report MIT/LCS/TM-82, 1977 참조). 1983년도에 MIT에 의해 미국에서 특허로 되었다. US 특허는 2000년 9월 22일에 만료되었다.For RSA, the efficiency of cryptographic techniques is based on the difficulty of factoring large numbers of hackers. RSA was named after the inventors, namely, Rivest, Shamir, and Adleman's initials, which were introduced in 1977 (Rivest, RL, Shamir, A., Adelman, LM: "A method for obtaining digital signatures and public-key cyptosystems ", Technical Report MIT / LCS / TM-82, 1977). It was patented in the US by MIT in 1983. The US patent expired on September 22, 2000.
DSA(디지털 시그니쳐 알고리즘)은 미국에서 NIST에 의해 표준화된 알고리즘이다. 이러한 알고리즘은 1993년에 실행되었던 DSS(디지털 시그니쳐 표준)의 일부이다.DSA (Digital Signature Algorithm) is an algorithm standardized by NIST in the United States. These algorithms are part of the Digital Signature Standard (DSS), which was implemented in 1993.
모듈러 거듭제곱은 RSA나 DSA와 같은 공개 키 암호법에 대한 중요한 동작이다. 이러한 모듈러 거듭제곱의 결과는, b = ad mod n을 계산함에 의해, 제2 메세지(b)를 낳는데, 여기서, 지수 d는 개인 키에 대응되는 널이 아닌 정수이고, n은 큰 정수 공유 모듈러스이다. 실제로, 공격자가, 알려진 커플 (a,b)로부터 개인 지수(k)를 추론하는 것은 실현 불가능하다고 증명되었다.Modular power is an important operation for public key cryptography such as RSA or DSA. The result of this modular power gives rise to a second message b by calculating b = a d mod n, where the exponent d is a non-null integer corresponding to the private key and n is a large integer share Modulus. Indeed, it has proved impossible for an attacker to deduce a personal index (k) from a known couple (a, b).
암호적 알고리즘에서 모듈러 거듭제곱을 실행하기 위한 한 가지 방법은 지수의 이진 분해(binary decomposition)를 사용하는 것으로 구성된다. 이러한 소위 "이진 거듭제곱(binary exponentiation)" 방법은 "제곱-및-곱셈(square-and-multiply)" 방법으로도 알려져 있다. 그것은 1997년 Knuth에 의해 설명되었다. 이 방법의 뒤에 있는 아이디어는 지수(d)의 이진 표현(binary representation)을 사용하여 ad를 계산하는 것이다. 그러므로, 거듭제곱 연산은 일련의 제곱 연산과 곱셈 연산으로 분리된다. k가 지수(d)의 비트-길이를 표시한다고 가정하면, 상기 지수는 이진 표현에서 d = (dk-1 dk-2 ... d1d0)2 및 , 여기서 로 표현될 수 있다.One way to implement modular powers in cryptographic algorithms is to use binary decomposition of the exponent. This so-called " binary exponentiation " method is also known as a " square-and-multiply " method. It was described by Knuth in 1997. The idea behind this method is to use a binary representation of the exponent d to compute a d . Therefore, power operations are separated by a series of squared operations and multiplication operations. Assuming that k denotes the bit-length of the exponent d, the exponent is expressed as d = (d k-1 d k-2 ... d 1 d 0 ) 2 in the binary representation and , here . ≪ / RTI >
이진 거듭제곱 방법은 거듭제곱 계산을 빠르게 할 수 있다. 이진 거듭제곱 알고리즘은, 아래의 예시적인 의사-코드에 의해 실행될 수 있는데, 거듭제곱은 지수(d)의 최상위 비트(MSB)로부터 시작하여, 지수의 최하위 비트(LSB)를 향해 진행되면서 계산된다.The binary power method can speed up the power calculation. The binary power algorithm can be implemented by the following exemplary pseudo-code, where the power is calculated as it proceeds from the most significant bit (MSB) of the exponent d to the least significant bit (LSB) of the exponent.
이러한 알고리즘에 대한 계산적인 복잡성은 ad mod n을 평가하기 위한 2x(k/2)+1x(k/2) = 1.5xk이다. 그러므로, 이러한 알고리즘은 자원-제한된 디바이스에 적합하다.The computational complexity for this algorithm is 2x (k / 2) + 1x (k / 2) = 1.5xk for evaluating ad mod n. Therefore, such an algorithm is suitable for resource-limited devices.
그러나, 이진 값 '1'과 동일한 지수의 각각의 비트에 대해 수행된 계산은 개인 키(d)를 해커에게 드러낼 수 있다. 이는, 해독 프로세스가 수행될 때, 디바이스 전력 소비의 분석에 의해 달성될 수 있다. 실제로, 현저하게 더 높은 전력이, 실행 계산이 없는 전력 소비에 비해, 계산이 컴퓨터 유닛에 의해 수행될 때, 컴퓨터 유닛에 의해 소비된다. 그러므로, 이진 거듭제곱 실행의 매 순간의 소비 부하는 프로세스되는 지수의 현재 비트의 이진 값에 의존하므로, 계산에 의해 감소하는 전류를 모니터링하는 것은 상기 지수의 각각의 비트를 용이하게 드러낼 수 있다.However, a computation performed on each bit of the exponent equal to the binary value '1' may reveal the private key (d) to the hacker. This can be achieved by analyzing the device power consumption when the decryption process is performed. Indeed, significantly higher power is consumed by the computer unit when computation is performed by the computer unit, compared to power consumption without execution computation. Therefore, the consumption consumption of each moment of the binary power-up depends on the binary value of the current bit of the exponent being processed, so monitoring the decreasing current by calculation can easily reveal each bit of the exponent.
이러한 문제점을 해결하기 위한 여러가지 옵션이 고려되었다. 특히, 대책의 도입은, 시그니쳐가 계산되거나 확인되는 동안 발생하는 계산 부하의 임의의 베리에이션을 해커에 의해 검출되는 것을 막기위해 제안되었다.Several options have been considered to address this problem. In particular, the introduction of countermeasures has been proposed to prevent any variation of the computational load that occurs while a signature is being computed or verified being detected by a hacker.
그러므로, "제곱-및-곱셈-항상(Square-And-Multiply-Always)"로 알려진 이러한 공격에 대한 하나의 대책은, 아무것도 않하는 대신에, 스캔된 비트가 '0'이라면, 더미 계산(dummy calculation)을 추가하는 것으로 구성된다. 이러한 더미 계산은 가령, 상수나 임의의 수에 의한 메세지의 모듈러 곱셈일 수 있다. 그 경우에, 이진 거듭제곱 알고리즘의 상기 의사-코드는 다음과 같이 된다.Therefore, one measure for this attack known as " Square-And-Multiply-Always " is that, instead of doing nothing, if the scanned bit is '0' calculation. Such a dummy calculation may be, for example, a modular multiplication of a message by a constant or an arbitrary number. In that case, the pseudo-code of the binary power-law algorithm is as follows.
그러나, 이러한 대책은 "오류 주입 공격(fault injection attack)"이라고 하는 또 다른 종류의 공격에 취약하다. 오류 주입 공격은 오류 있는 데이터를 암호적 계산으로 도입하는 개념에 근거하여, 틀리게 계산된 결과의 수학적 속성과 통계적 속성을 분석함에 의해, 개인 키를 식별한다. 실제로, 모듈러 거듭제곱의 실행 흐름을 교란시킴에 의해, 예상된 결과와 (틀린) 결과를 비교하는 것은 조작된 비밀 데이터에 대한 정보를 드러낼 수 있다.However, these measures are vulnerable to another type of attack called a "fault injection attack". The error injection attack identifies the private key by analyzing the mathematical and statistical properties of the incorrectly calculated results, based on the concept of introducing erroneous data into the cryptographic computation. In fact, by disturbing the execution flow of the modular power, comparing the (wrong) result with the expected result can reveal information about the manipulated secret data.
이러한 공격은, 개인 키의 지수의 현재 비트가 0과 동일할 때, 곱셈이 더미 연산이기 때문에, 단계 (2) 동안에 오류 주입이 효과가 없다는 사실을 사용한다. 그러므로, 공격은, 잠재적으로 더미 곱셈 동안에, 천이 랜덤 계산 오류를 도입함에 의해 수행된다. 지수 비트는 출력의 정확성을 검사함에 의해 획득될 수 있다.This attack uses the fact that error injection is ineffective during step (2) because the multiplication is a dummy operation when the current bit of the index of the private key is equal to zero. Therefore, the attack is performed by potentially introducing a random random calculation error during the dummy multiplication. The exponent bits can be obtained by checking the accuracy of the output.
좀 더 구체적으로, 상기 예시적인 의사-코드에 의해 수행된 프로세스의 단계(2)에서 교란을 도입시키는 것은, 제자리(in-place) 곱셈이 사실상 더미 곱셈이었다면, 최종 결과에 영향을 주지 않는다. 동일한 방식으로, 반복 계산의 단계(2)에서 도입된 교란은, 제자리 곱셈이 실제 곱셈이라면, 최종 결과에 가시적 영향을 준다. 이것은,More specifically, introducing disturbances in step (2) of the process performed by the exemplary pseudo-code does not affect the end result if the in-place multiplication was in effect a dummy multiplication. In the same way, the disturbance introduced in step (2) of the iterative calculation has a visible effect on the final result if the in-place multiplication is an actual multiplication. this is,
- 최종 결과가 예산된 것과 상이하다면, 그것은, 실제 곱셈 동안에, 교란(perturbation)이 행해졌다는 것을 의미하고, 스캔된 비트 '1'을 드러내는 반면,- If the final result is different from the budgeted one, it means that during the actual multiplication, a perturbation has been made and exposes the scanned bit '1'
- 최종 결과가 바뀌지 않는다면, 그것은, 더미 곱셈 동안에, 교란이 행해졌다는 것을 의미하고, 스캔된 비트 '0'을 드러낸다.If the final result does not change, it means that during the dummy multiplication, the disturbance has been done, revealing the scanned bit '0'.
지수의 각각의 비트에 이러한 공격을 반복함에 의해, 그리고 최종 결과에 대한 암시(implication)를 분석함에 의해, 해커는 전체 지수를 회복할 수 있다. 이러한 지수가 RSA 개인 키와 같은 중요한 데이터라면, 매우 해로울 수 있다.By repeating this attack on each bit of the exponent and by analyzing the implications of the end result, the hacker can recover the whole index. If this index is important data such as an RSA private key, it can be very harmful.
"세이프-에러 오류 주입(safe-error fault injeciton)"라고 하는, 즉, 거듭제곱의 출력이 바뀌지 않게 유지하는 오류라는 또 다른 타입이 있다. 2차 세이프 에러 공격, 즉, 동일한 계산 동안에 공격자가 두 개의 오류를 주입하는 것을 고려해보고, 결과가 유효한지 아닌지를 관측한다. 공격자는, r은 임의의 수인 지수(ar)의 단계(i)에서 곱셈 동안에 오류를 주입하고, r*=d-r인 지수(ar*)의 단계(i)에서 곱셈 동안에 또 다른 오류를 주입한다고 생각해보자. 이들 두 개의 오류는, (ri, r*i) = (0,0)이라면, 계산에 영향이 없다. 프로세스를 반복함에 의해, 공격자는 그의 선택의 이진 랭크(i)에서 비트에 대해 (0,0)을 얻기 위한 확률의 평가를 획득한다. 이러한 확률은 비트(di)의 값과 강하게 상관된다. 이러한 관측은 공격자가 비밀 지수를 학습하도록 한다. 그것은, Joye, Tunstall, Chapter 7/8에 의한 논문 "FAULT ANALYSIS IN CRYPTOGRAPHY"에 상세히 기술되었다.There is another type of error called " safe-error fault injeciton ", i.e., an error that keeps the power output unchanged. Consider a second-safe error attack, that is, an attacker injecting two errors during the same computation and observe whether the result is valid or not. The attacker injects an error during the multiplication in step (i) of an arbitrary number exponent (a r ) and injects another error during the multiplication in step (i) of the exponent (a r * ) where r * = dr Think about it. These two errors, if (r i , r * i ) = (0,0), have no effect on the computation. By repeating the process, the attacker obtains an estimate of the probability to obtain (0, 0) for the bit in the binary rank (i) of his choice. This probability is strongly correlated with the value of the bit (d i ). These observations allow the attacker to learn the secret index. It is described in detail in the article "FAULT ANALYSIS IN CRYPTOGRAPHY" by Joye, Tunstall, Chapter 7/8.
또 다른 대책은 특허 문헌 WO 98/52319 IMPROVED METHOD AND APPARATUS FOR PROTECTING PUBLIC KEY SCHEMES FROM TIMING AND FAULT ATTACKS'에 기술된 바와 같이, 지수를 랜덤화(randomizing)하는 것으로 구성된다. a d mod n을 계산하는 대신에, 을 계산할 수 있고, 여기서, k는 임의의 정수이고, 는 오일러의 함수이다. n = p.q가 RSA 모듈러스인 경우, 이는 를 낳는다. 그러므로, 지수는 가 된다. 오류 주입 공격을 효율적으로 좌절시키기 위해, 적어도 32-비트 길이 임의의 정수 k를 사용하는 것이 고려될 수 있다. 그러나, 지수는 매우 길게 되었고, 그래서 전제 거듭제곱의 계산은 현저하게 더 시간 소요된다.Another countermeasure consists in randomizing the exponent, as described in patent document WO 98/52319. ≪ Desc /
"CRYPTOGRAPHIC METHOD AND DEVICE FOR PROTECTING PUBLIC-KEY SOFTWARE AGAINST FAULT ATTACKS" 라는 명칭의 프랑스 특허 FR 2884088는, 상기 계산을 두 개의 구별되는 계산 단계로 분해하여서, 궁극적으로 최종 결과를 재결합시키는 것을 개시한다. 개시된 방법에 따르면, 지수는 임의의 방법으로 d = d1 + d2로 분해되고, 한 편으로는 a d1 mod n이, 그리고 다른 한 편으로는 a d2 mod n이 계산되고, 최종적으로, 두 개의 획득된 결과들은 최종 결과를 획득하기 위해 곱해진다. 그러나, 이는 수행될 계산이 두 배를 요한다.French patent FR 2884088 entitled " CRYPTOGRAPHIC METHOD AND DEVICE FOR PROTECTING PUBLIC-KEY SOFTWARE AGAINST FAULT ATTACKS " discloses decomposing the calculation into two distinct computational steps, ultimately recombining the final result. According to the method disclosed, the index is decomposed into d = d 1 + d 2 in any manner, On the one hand this a d1 mod n, and on the other hand this a d2 mod n are calculated, and finally, two The obtained results are multiplied to obtain the final result. However, this requires twice the computation to be performed.
다른 가능한 대책은 추가적인 체인("SECURING RSA AGAINST FAULT ANALYSIS BY DOUBLE ADDITION CHAIN EXPONENTIATION", Rivain, https:veprint.iacr.orq.2009. 1 65.pdf)의 사용을 포함한다. 그것은, 각각의 비트에 대해 다른 것과 함께 업데이트되는 추가적인 시간적 변수를 필요로 한다. 계산 전반에 걸쳐, 이들 두 개의 변수는 거듭제곱 프로세스의 마지막에서 확인될 수 있는 공통 관계를 만족한다. 이러한 관계가 유지되지 않는다면, 계산은 교란될 수 있고, 추가적인 대책이 취해질 수 있다. 이러한 대책은 제2 시간적 변수를 저장하기 위한 또 다른 레지스터를 필요로 하고, 또한, 최종 확인을 요하므로, 추가적인 계산을 요한다.Other possible countermeasures include the use of an additional chain ("SECURING RSA AGAINST FAULT ANALYSIS BY DOUBLE ADDITION CHAIN EXPONENTIATION", Rivain, https: veprint.iacr.orq.2009.165.pdf). It requires additional temporal variables to be updated with each other for each bit. Throughout the calculations, these two variables satisfy a common relationship that can be ascertained at the end of the power-up process. If this relationship is not maintained, the computation can be disturbed and additional measures can be taken. This countermeasure requires another register to store the second temporal variable and also requires final verification, thus requiring additional computation.
"METHOD AND DEVICE FOR COUNTERING FAULT ATTACKS"라는 명칭의 특허 EP 2222012는 결과가 정확하다는 것을 확인하기 위해, 공용 지수 "e"를 사용하는 것으로 구성된 방법을 개시한다. 물론, 그것은 추가적인 거듭제곱과 최종 비교의 계산을 의미한다.Patent EP 2222012 entitled " METHOD AND DEVICE FOR COUNTERING FAULT ATTACKS " discloses a method consisting of using a common exponent " e " to verify that the result is correct. Of course, that means calculating additional powers and final comparisons.
"RANDOMIZED RSA-BASED CRYPTOGRAPHIC EXPONENTIATION RESISTANT TO SIDE CHANNEL AND FAULT ATTACKS"라는 명칭으로 특허 US 8,139,763에 기술된 방법은, 지수를 랜덤화하는 것으로 구성된다. 결과로 나온 랜덤화된 지수는 더 크고, 더 많은 계산 루프를 의미한다.The method described in patent US 8,139,763, entitled " RANDOMIZED RSA BASED CRYPTOGRAPHIC EXPONENTIATION RESISTANT TO SIDE CHANNEL AND FAULT ATTACKS ", consists of randomizing exponents. The resulting randomized exponent is larger, meaning more computational loops.
마지막으로, 특허 EP 1531579 "RSA PUBLIC KEY GENERATION APPARATUS, RSA DECRYPTION APPARATUS, AND RSA SIGNATURE APPARATUS"에서 개시된 방법의 개념은 추가적인 (비싼) 계산 및 최종 확인을 추가하는 것이다.Finally, the concept of the method disclosed in patent EP 1531579 " RSA PUBLIC KEY GENERATION APPARATUS, RSA DECRYPTION APPARATUS, AND RSA SIGNATURE APPARATUS " is to add additional (expensive) calculation and final confirmation.
추가적인 별도의 연산을 제안하는 상기 대책 모두는 특히 성능을 퇴화시킨다. 오류 실패 분석 공격의 존재는, 성능 퇴화 없이 암호적 응용예 보호를 실행할 때, 특별한 관리를 요한다.All of the above measures suggesting an additional separate operation degrade performance in particular. The presence of an error failure analysis attack requires special management when performing cryptographic application protection without performance degradation.
상기를 참작하면, 상기 제시된 바와 같은 기존 해결책에 대하여 간단하고 효율적인 대안예를 제공함에 의해, 세이프-에러 주입 타입의 가능한 공격에 대한 개선된 대책에 대한 필요성이 있다.Taking the above into consideration, there is a need for improved countermeasures against possible attacks of the type of safe-error injection by providing a simple and efficient alternative to the existing solutions as presented above.
이러한 요구를 해결하기 위해, 본 발명의 제1 양태는,In order to solve such a demand,
제1 메세지(a)를 수신하는 단계와,Receiving a first message (a);
모듈러 거듭제곱 b = a d mod n을 계산하는 것에 의해 제2 메세지(b)를 생성하는 단계 - d는, d = (dk-1 dk-2 ... d1d0)와 같이 이진 표현으로 표현된 정수이고, 변수 를 가진 이며, n은 양의 정수 모듈러스이고, R은 n보다 큰 g의 가장 작은 멱(power)으로 정의된 몽고메리 상수이고, g는 기계-단어 기반(machine-word base)임 - 를 포함하되,B) generating a second message (b) by calculating a modular power b = a d mod n , wherein d is a binary value, such as d = (d k-1 d k-2 ... d 1 d 0 ) Expressed as an integer, the variable With Where n is a positive integer modulus, R is a Montgomery constant defined as the smallest power of g greater than n, and g is a machine-word base,
상기 모듈러 거듭제곱 b = a d mod n을 계산하는 것은,Calculating the modular power, b = a d mod n ,
제1 변수를 R 모듈러스 n으로 개시하는 단계와, Initiating a first variable with R modulus n,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산하는 단계 - 상기 반복 프로세스의 각각의 반복은, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입하는, 암호적 방법을 제안한다.d i a d k-1, d k- 2, ... d 1 d 0, and takes a value in each row, the step of calculating a number k times an iterative process wherein each iteration of the iterative process is, d i is 0, a cryptographic method of inserting a measure to replace the first variable by the Montgomery multiplication of the first variable and the R modulus n is proposed.
일 실시예에서, 상기 모듈러 거듭제곱 b = a d mod n을 계산하는 것은 몽고메리 변환을 사용하고,In one embodiment, computing the modular power b = a d mod n uses a Montgomery transform,
제1 변수와 제2 변수를 각각 R 모듈러스 n과 a×R 모듈러스 n으로 개시하는 단계와,Initiating a first variable and a second variable with an R modulus n and an R modulus n, respectively,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산하는 단계 - 제1 변수를 상기 제1 변수와 자체 모듈러스 n의 몽고메리 곱셈으로 대체하는 단계를 포함하되, di가 1과 동일하면, 제1 변수를, 상기 제1 변수와 제2 변수 모듈러스 n의 몽고메리 곱셈으로 대체하고, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 와,d i consecutively taking values of d k-1 , d k-2 , ... d 1 and d 0 , respectively, to calculate a number k iterative process, - calculating a first variable by said first variable and its own modulus n If d i is equal to 1, replacing the first variable by a Montgomery multiplication of the first variable and the second variable modulus n, and if d i is equal to 0, replacing the first variable with a Montgomery multiplication of Inserting a measure to replace the first variable with a Montgomery multiplication of the first variable and R modulus n,
상기 제1 변수를, 상기 제1 변수와 1 모듈러스 n의 몽고메리 곱셈으로 대체하는 단계를 포함한다.And replacing the first variable by a Montgomery multiplication of the first variable and 1 modulus n.
RSA 암호 연산이나 해독 연산의 경우, 메세지(a)는 암호화된 메세지(c)이고, 메세지(b)는 깨끗한 텍스트 메세지(m)이다.In the case of an RSA cryptographic operation or a decryption operation, the message a is an encrypted message c and the message b is a clean text message m.
DSA 암호적 시스템의 경우, 제1 메세지(a)는 정수(h)이고, 제2 메세지(b)는 공개 키(y)이며, 지수(d)는 비밀 키(x)이다.In the DSA cryptographic system, the first message (a) is an integer h, the second message (b) is a public key (y), and the exponent (d) is a secret key (x).
다르게 말하면, 소위 "제곱-및-곱셈 항상(Square-and-Multiply Always)" 대책과 같이 더미 곱셈 dummy = dummy×c mod n을 계산하는 대신에, 본 발명은 result = MontMul(result,R,n)을 계산하는 것을 제안하는데, 여기서, MontMul은 한 세트의 연산 (result,R,n)에 적용되는 몽고메리 곱셈 연산을 표시한다. 이와 같이, 임의의 연산의 및/또는 이러한 계산의 결과에서의 약간의 교란은 이진 거듭제곱 계산의 최종 결과의 수정을 야기할 것이다.In other words, so-called, instead of calculating the dummy multiplication dummy = dummy × c mod n, such as "square-and-multiply all the time (Square-and-Multiply Always) " measures, the present invention result = MontMul (result, R, n ) , Where MontMul denotes a Montgomery multiplication operation applied to a set of operations (result, R, n). As such, some disturbance of any computation and / or the result of such computation will result in the modification of the final result of the binary power calculation.
특히, "HandBook of Applied Cryptography, by Menezes, van Oorschot, and Vanstone, Chapter 14"에 몽고메리 곱셈이 기술된다.Specifically, the Montgomery multiplication is described in "Handbook of Applied Cryptography, by Menezes, van Oorschot, and Vanstone,
기술 분야의 당업자는 더미 연산 대신에 이러한 연산을 도입하는 것은, 몽고메리 곱셈의 정의 때문에 최종 결과를 수정하지 않는다는 것을 인식할 것이다.Those skilled in the art will recognize that introducing such an operation instead of a dummy operation does not modify the end result due to the definition of Montgomery multiplication.
그럼에도 불구하고, 이러한 대책을 추가하는 것은 가령, RSA 알고리즘과 같은 모듈러 거듭제곱 동안에, 거듭제곱 알고리즘의 임의의 순간에 임의의 교란이 최종 결과의 수정을 야기할 것이라는 점에 영향을 준다. 이러한 이점은, 본 대책 연산이 최종 결과에 링크된다는 사실로부터 파생된다.Nonetheless, adding this countermeasure affects that during any modular power, such as an RSA algorithm, random disturbances at any instant of the power-up algorithm will cause a correction of the final result. This advantage derives from the fact that this countermeasure operation is linked to the end result.
다르게 말하면, 몽고메리 곱셈을 사용하는 것이 정상적인 경우에 이진 거듭제곱 계산에 영향을 주지 않는 반면, 상기 언급된 특성은, 이러한 계산 동아네 도입된 임의의 오류가 최종 결과의 가시적 영향을 가질 것이라는 결과를 제공한다.In other words, while the use of Montgomery multiplication does not affect the binary power calculation in the normal case, the above-mentioned property provides a result that any error introduced into this calculation domain will have a visible effect of the final result do.
그러므로, 본 발명은, 임의의 공개 키 암호법(RSA, DSA, 등)의 거듭제곱 연산 동안에, 모듈러 거듭제곱의 계산에서 몽고메리 곱셈을 사용함에 의해, 세이프-에러 주입 타입의 가능한 공격을 좌절시키기 위한 간단하고 효과적인 해결책을 제공한다.Therefore, the present invention provides a method and system for suppressing possible attacks of the saf-error injection type by using Montgomery multiplication in the calculation of modular powers during the power-up of any public key cryptography (RSA, DSA, etc.) It provides a simple and effective solution.
이러한 방법으로 몽고메리 곱셈을 사용하는 것은, 모듈러 거듭제곱 계산을 빠르게 하는데 의도적으로 사용되었더라도, 신규하고, 용이하지 않다.The use of Montgomery multiplication in this way is novel and not easy, even if intentionally used to speed up modular power calculation.
바람직하게는, 제안된 해결책의 실시예는 임의의 공개 키 암호법에서 유용한 빠르고 가벼운 해독 프로세스를 제공한다. 실제로, 본 해결책은 기존 방법보다 더 빠른데, 왜냐하면, 본 해결책은, 해커에게 아무런 오류가 알려지지 않는다는 것을 고려하면, 세이프-에러가 계산 동안에 도입되지 않는다는 것을 보장하기 위한 추가적인 확인 연산을 사용할 필요가 없기 때문이다. 또한, 알고리즘이 추가적인 데이터를 저장하기 위한 추가적인 레지스터를 필요로하지 않기 때문에, 용이하게 사용가능한 테크닉보다 더 가볍다. 그러므로, 메모리-최적화된다. 다시 말해, 제안된 "몽고메리 곱셈" 대책은, 계산 성능과 메모리 용량의 측면에서 매우 대가가 큰 세이프-에러 오류 주입 공격에 대해 회복력이 있는 다른 대책의 바람직한 대안예이다.Preferably, the embodiment of the proposed solution provides a fast and light detoxification process useful in any public key cryptography. In fact, this solution is faster than conventional methods, since this solution does not require the use of additional verification operations to ensure that no saf error is introduced during calculation, considering that no error is known to the hacker to be. Also, since the algorithm does not require additional registers to store additional data, it is lighter than readily available techniques. Therefore, it is memory-optimized. In other words, the proposed " Montgomery multiplication " countermeasure is a preferred alternative to other countermeasures that are resilient to a costly error-correcting injection attack that is very costly in terms of computational performance and memory capacity.
또한, 본 발명은 슬라이딩 윈도우 알고리즘과 같이, 계산을 빠르게 하기 위해 실행될 수 있는 추가적인 최적화와 호환될 수 있다.In addition, the present invention can be compatible with additional optimizations that can be performed to speed up calculations, such as sliding window algorithms.
본 발명의 제2 양태는, 프로세서에 액세스 가능하고, 프로세서에 의해 실행될 때, 본 발명의 제1 양태의 방법의 단계를 수행하도록 하는, 하나 이상의 저장된 시퀀스의 명령어를 포함하는 컴퓨터 프로그램 제품에 관한 것이다.A second aspect of the present invention relates to a computer program product comprising instructions of one or more stored sequences that when executed by a processor cause the processor to perform steps of the method of the first aspect of the present invention, .
마지막으로, 본 발명의 제3 양태는,Finally, in a third aspect of the present invention,
제1 메세지(a)를 수신하기 위한 인터페이스와,An interface for receiving a first message (a)
모듈러 거듭제곱 b = a d mod n을 계산하는 것에 의해 제2 메세지(b)를 생성하도록 구성된 컴퓨터 유닛 - d는, d = (dk-1 dk-2 ... d1d0)와 같이 이진 표현으로 표현된 정수이고, 변수 를 가진 이며, n은 양의 정수 모듈러스이고, R은 n보다 큰 g의 가장 작은 멱(power)으로 정의된 몽고메리 상수이고, g는 기계-단어 기반(machine-word base)임 - 를 포함하되,A computer unit configured to generate a second message (b) by calculating a modular power b = a d mod n , wherein d = (d k-1 d k-2 ... d 1 d 0 ) Similarly, an integer represented as a binary representation, With Where n is a positive integer modulus, R is a Montgomery constant defined as the smallest power of g greater than n, and g is a machine-word base,
상기 컴퓨터 유닛은 모듈러 거듭제곱 b = a d mod n을 계산하기 위해,The computer unit is further programmed to calculate a modular power b = a d mod n ,
제1 변수를 R 모듈러스 n으로 개시하고, Start the first variable with R modulus n,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산 - 상기 반복 프로세스의 각각의 반복은, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 하도록 구성된, 암호적 시스템에 관한 것이다.d i a d k-1, d k- 2, ... d 1 d 0, and takes a value in each row, the number k calculated times an iterative process wherein each iteration of the iterative process is, and d i is 0 And if so, inserting a measure to replace the first variable with a Montgomery multiplication of the first variable and R modulus n.
일 실시예에서, 상기 컴퓨터 유닛은, 상기 모듈러 거듭제곱 b = a d mod n을 계산하기 위한 몽고메리 변환을 사용하도록 구성되고,In one embodiment, the computer unit is configured to use the Montgomery transform to calculate the modular power b = a d mod n ,
제1 변수와 제2 변수를 각각 R 모듈러스 n과 a×R 모듈러스 n으로 개시하고,The first variable and the second variable are expressed as R modulus n and a x R modulus n, respectively,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산 - 제1 변수를 상기 제1 변수와 자체 모듈러스 n의 몽고메리 곱셈으로 대체하되, di가 1과 동일하면, 제1 변수를, 상기 제1 변수와 제2 변수 모듈러스 n의 몽고메리 곱셈으로 대체하고, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 하고,d i takes values of d k-1 , d k-2 , ... d 1 and d 0 , respectively, and calculates the number k iterative process - calculating the first variable by the first variable and the self modulus n, If d i is equal to 1, replacing the first variable by a Montgomery multiplication of the first variable and the second variable modulus n, and if d i is equal to 0, substituting the first variable by the Montgomery multiplication of the first variable and the second variable modulus n, One measure is to insert a Montgomery multiplication of the R modulus n,
상기 제1 변수를, 상기 제1 변수와 1 모듈러스 n의 몽고메리 곱셈으로 대체하도록 한다. The first variable is replaced with the Montgomery multiplication of the first variable and 1 modulus n.
이러한 암호적 시스템은 가령, RSA 또는 DSA 암호법일 수 있다.Such a cryptographic system may be, for example, RSA or DSA cryptography.
일부 실시예에서, 기계-단어 기반(g)은 232와 동일할 수 있다.In some embodiments, the machine-word-based (g) may be equal to 2 32 .
본 발명의 실시예는 제한이 아닌 예시로 나타나며, 첨부 도면에서, 유사한 참조 번호는 유사한 요소를 말한다.
도 1은 제안된 "몽고메리 곱셈(Montgomery multiplication)" 대책 없이, 이진 거듭제곱을 계산하기 위한 "제곱-및-곱셈 항상" 타입의 알고리즘의 단계를 나타내는 순서도이다.
도 2는 몽고메리 곱셈 대책으로 이진 거듭제곱 계산을 계산하기 위한 알고리즘의 단계를 나타내는 순서도이다.
도 3은, 제2 양태에 따른 컴퓨터 프로그램 제품을 실행하는데 적용되는 본 발명의 제3 양태에 따른 암호법의 실시예의 블록도이다.Embodiments of the present invention are illustrated by way of example and not of limitation, in the figures of the accompanying drawings, like reference numerals refer to like elements.
Figure 1 is a flow chart illustrating the steps of a " squared-and-multiply-always " type algorithm for computing binary powers without the proposed " Montgomery multiplication &
FIG. 2 is a flow chart illustrating the steps of an algorithm for calculating a binary power calculation with the Montgomery multiplication measure. FIG.
3 is a block diagram of an embodiment of a cryptographic method according to a third aspect of the present invention applied to executing a computer program product according to the second aspect.
도 1의 순서도를 참조하면, 제안되는 "몽고메리 곱셈(Montgomery multiplication)" 대책 없이, 거듭제곱 b = a d mod n을 계산하기 위한 이진 알고리즘의 실시예가 우선 기술될 것이다. 다시 말하면, 도 1은 가령, "제곱-및-곱셈 항상(Square-And-Multiply Always)"와 같은 대책이 이진 거듭제곱 프로세스에 도입되는 방법의 순서도를 나타낸다.Referring to the flowchart of FIG. 1, an embodiment of a binary algorithm for computing the power b = a d mod n , without the proposed " Montgomery multiplication " countermeasure, will be described first. In other words, FIG. 1 shows a flowchart of a method in which measures such as, for example, "Square-And-Multiply Always" are introduced into a binary power-up process.
RSA 암호 연산 또는 해독 연산의 경우, 메세지(a)는 암호화된 메세지(C)이고, b는 깨끗한 텍스트 메세지(m)이다.In the case of an RSA cryptographic operation or decryption operation, message a is an encrypted message C and b is a clean text message m.
DSA 암호적 시스템의 경우, 제1 메세지(a)는 정수(h)이고, 제2 메세지(b)는 공캐 키(y)이며, 지수(d)는 비밀 키(x)이다.In the DSA cryptographic system, the first message (a) is an integer h, the second message (b) is a concatenation key (y), and the exponent d is a secret key (x).
도시된 실시예에 따른 알고리즘은 다음 단계 11 내지 16을 포함한다.The algorithm according to the illustrated embodiment includes the following steps 11-16.
11에서, 해독 연산에서 사용된 다양한 입력이 정의되는데, 이들 변수는 공유 모듈러스(n), 개인 키(d) 및 제1 메세지(a)를 포함한다.At 11, various inputs used in decryption operations are defined, which include shared modulus (n), private key (d) and first message (a).
일 실시예에서, 공유 모듈러스(n)는 큰 숫자이다. 하나의 예시에서, n은 소수(prime number)일 수 있다. 그러나, 본 발명의 실시예가 이러한 예시에만 제한되도록 의도되지 않는 다는 것은 기술 분야의 당업자에 의해 이해될 것이다.In one embodiment, the shared modulus n is a large number. In one example, n may be a prime number. However, it will be understood by those skilled in the art that the embodiments of the present invention are not intended to be limited to these examples.
개인 키(d)는 d = (dk-1 dk-2 ...d1d0)2, k는 1보다 큰 정수와 같이 이진 표현으로 표현될 수 있다.The private key d may be represented as a binary expression such as d = (d k-1 d k-2 ... d 1 d 0 ) 2 , where k is an integer greater than one.
12에서, 변수 result와 dummy는 모두 1로 개시되는데, 즉, result = 1 및 dummy = 1이다.12, the variables result and dummy both start with 1, i.e., result = 1 and dummy = 1.
13에서, 반복적인 루프-에 대한(for-loop) 프로세스가 시작되고, 이는 k-1에서 아래로 0까지 각각 이르는 인덱스(i)에 대해, 즉, 가령, MSB(최상위 비트)에서 시작하여, LSB(최하위 비트)로 종료되는, 연속적으로 지수(d)의 k 이진 요소(비트) dk-1, dk-2, ... d1 및 d0의 각각에 대해, 숫자 k번 실행된다.13, a for-loop process is started, which starts at index (i) ranging from k-1 to 0 down respectively, i.e. starting at the MSB (most significant bit) For each of the k binary elements (bits) d k-1 , d k-2 , ... d 1 and d 0 of the exponent d terminated in LSB (least significant bit) .
14에서, 변수 result의 제곱이 실현된다. 좀 더 구체적으로, 변수 result는 result × result mod n으로 대체된다.At 14, the square of the variable result is realized. More specifically, the variable result is replaced by result × result mod n .
지수의 현재 비트(di)가 '1'과 동일하다면, 15에서, 변수 result는 result × a mod n으로 대체된다.If the current bit of the exponent (d i ) is equal to '1', at 15, the result result is replaced by result x a mod n .
아니라면, 즉, 지수의 현재 비트(di)가 '0'과 동일하다면, 대책 dummy × a mod n이 16에서 삽입된다. 이는 변수 result를 dummy × a mod n으로 대체함에 획득된다.Otherwise, if the current bit (d i ) of the exponent is equal to '0', the measure dummy × a mod n is inserted at 16. This is obtained by replacing the variable result with dummy × a mod n .
본 발명의 뒤에 있는 개념은, 더미 연산을 항상 최종 결과 a d mod n에 가시적 영향을 주는 다른 연산에 의해 대체하는 것이다.The concept behind the present invention is to replace dummy operations with other operations that always have a visible effect on the final result a d mod n .
간단한 방법은 더미 연산을 1을 곱함에 의해 대체되는 것이다. 최종 결과는 교란없는 중에 영향을 받지 않을 것이고, 이러한 컴퓨테이션 동안에 교란은 최종 결과의 수정에서 높은 확률을 가진 결과일 것이다. 그러므로, 어떤 경우에 오류 주입 공격에 대응할 수 있다. 그러나, '1'의 해밍 가중화(Hamming weight)가 1이기 때문에, 이러한 고유한 비트의 수정은 널(null) 출력을 야기할 것이다. 그러므로, 이는 수행되는 연산에 대한 정보를 부여하고, 해커가 개인 키의 값을 추론하는데 도움을 줄 수 있다.A simple method is to replace the dummy operation by 1. The end result will not be affected in the absence of perturbation, and disturbance during such computation will result in a high probability of modification of the end result. Therefore, in some cases, it can respond to an error injection attack. However, since the Hamming weight of '1' is 1, modification of this unique bit will result in null output. Hence, it gives information about the operation being performed and can help a hacker infer the value of the private key.
동일한 결과를 달성하기 위한 좀 더 안전한 방법은, 실시예에 따르면, 몽고메리 곱셈을 사용하는 것이다.A more secure way to achieve the same result is, according to embodiments, to use Montgomery multiplication.
모듈러 거듭제곱이 내제적인 곱셈 및 나눗셈 연산 때문에, 복잡한 산술 연산으로 고려되지만, 수학자 Peter L. Montgomery는 (1995년에) n에 의해 나누는 것을 피하면서, 두 개의 정수(n-나머지) modulo n을 곱하기 위한 모듈러 감소 알고리즘을 도입하였다. 기술 문헌에서(가령, "HandBook of Applied Cryptography", Menezes, van Oorschot, Vanstone, Chapter 14 참조), 몽고메리 계산의 특성은 모듈러 곱셈과 거듭제곱에 요구되는 제곱 연산을 빠르게 하는데 사용되었다. 간단하고 긴-정수 곱셈으로 실행된 이후에 몽고메리 감소가 실행되고, 상기 몽고메리 감소는 소위 몽고메리 변환의 "역" 연산이다.Although the modular power is considered a complex arithmetic operation due to intrinsic multiplication and division operations, the mathematician Peter L. Montgomery (1995) multiplies two integer (n-modulo) modulo n The modular reduction algorithm is introduced. In the technical literature (see, for example, "Handbook of Applied Cryptography", Menezes, van Oorschot, Vanstone, Chapter 14), Montgomery calculus properties were used to speed up the multiplication required for modular multiplication and power. Montgomery reduction is performed after simple, long-integer multiplication is performed, and the Montgomery reduction is a "inverse" operation of the so-called Montgomery transformation.
다시 말해,In other words,
n 은 큰 정수 모듈러스이고,n is a large integer modulus,
p는 2n 미만의 정수이며(즉, p < 2n),p is an integer less than 2n (i.e., p < 2n)
R은 소위 몽고메리 상수라고 가정하면,Assuming that R is a so-called Montgomery constant,
a의 몽고메리 형태는 p×R mod n으로 정의되고,The Montgomery form of a is defined as p x R mod n,
몽고메리 감소는 p×R-1 mod n으로 정의되는데, R-1은 R의 역수이고,The Montgomery reduction is defined as p x R -1 mod n, where R -1 is the inverse of R,
몽고메리 곱셈 MontMul은 입력(p,q,n)에 대해 값 p×q×R-1 mod n을 계산한다.Montgomery multiplication MontMul computes the value p × q × R -1 mod n for the input (p, q, n).
도 2의 순서도를 참조하면, 본 발명의 제1 양태의 예시적인 실시예가 이제 기술될 것이다. 이러한 양태는 본 발명의 실시예에 따라 제안된 몽고메리 곱셈 대책으로 거듭제곱 ad modulus n의 계산을 하는 알고리즘에 기초한 암호적 방법에 관한 것이다. 소위 몽고메리 상수(R)은 n보다 큰 g의 가장 작은 멱으로 정의되는데, 여기서, g는 기계-단어 기반(32-비트 시스템 상에서, 가령, g = 232)이다. 하나의 예시에서, g는 232와 동일하다. 그러나, g가 가령 216 또는 264와 동일할 수 있으므로, 이는 순전히 설명적이다. Referring to the flowchart of FIG. 2, an exemplary embodiment of the first aspect of the present invention will now be described. This aspect relates to a cryptographic method based on an algorithm for calculating power a d modulus n with Montgomery multiplication measures proposed according to an embodiment of the present invention. The so-called Montgomery constant (R) is defined as the smallest power of g greater than n, where g is machine-word based (on a 32-bit system, for example, g = 2 32 ). In one example, g is equal to 2 32 . However, since g may be equal to 2 16 or 2 64 , for example, it is purely descriptive.
21에서, 본 방법을 수행하기 위해 컴퓨터 수단에 의해 사용되는 다양한 입력이 정의되거나 수신되는데, 모듈러스(n), d = (dk-1 dk-2 ...d1d0)2와 같은 이진 표현으로 표현된 개인 키(d) 및 제1 메세지(a)이다.At 21, various inputs used by the computer means to perform the method are defined or received, such as modulus (n), d = (d k-1 d k-2 ... d 1 d 0 ) 2 (D) expressed in binary representation and the first message (a).
22에서, 변수 result 및 a는 R mod n 및 a×R mod n으로 각각 개시되고, R은 n보다 큰 f의 가장 작은 멱이다.At 22, the variables result and a start with R mod n and a x R mod n, respectively, and R is the smallest power of f that is greater than n.
23에서, 지수(d)의 k 이진 요소, 즉 비트의 k-1에서 0까지 루프-에 대한(for-loop) 실현을 시작한다. 좀 더 구체적으로, 이러한 예시에서, 지수(d)의 k 비트는 MSB에서 LSB까지 프로세스된다. LSB로부터 LSB를 향한 계산을 실행하는 것도 유효한 옵션이라는 것이 기술 분야의 당업자에 의해 인식될 것이다.At 23, a k-binary element of exponent (d), i. E., For-loop implementation of bits k-1 through 0 is started. More specifically, in this example, the k bits of the exponent d are processed from the MSB to the LSB. It will be appreciated by those skilled in the art that performing calculations from LSB to LSB is also a valid option.
24에서, 제곱된 변수 result(즉, result×result)의 몽고메리 곱셈이 수행되는데, result×result×R -1 mod n이다.At 24, the Montgomery multiplication of the squared variable result (ie, result × result ) is performed: result × result × R -1 mod n .
25에서, 지수(d)의 비트(di)가 '1'과 동일하면, result와 a의 몽고메리 곱셈, 즉, result×a×R -1 modulus n이 계산되고, 변수 result가 업데이트, 즉, 동일한 것으로 대체된다.25, if the bit (d i ) of the exponent d is equal to '1', the Montgomery multiplication of result and a, ie, result × a × R -1 modulus n is calculated and the result variable is updated, The same shall be substituted.
result와 R의 몽고메리 곱셈을 실현하는 대책은 지수의 현재 비트가 '0'과 동일할 때, 26에서 삽입된다. 좀 더 구체적으로, 변수 result는 result×R×R -1 modulus n에 의해 대체된다. The measure to realize Montgomery multiplication of result and R is inserted at 26 when the current bit of exponent is equal to '0'. More specifically, the result variable is replaced by result x R x R -1 modulus n .
27에서, 프로세스는 몽고메리 형태에서 정상 형태로 다시 되돌아와서 종료된다. 이는, result와 1의 몽고메리 곱셈을 계산함에 의해 달성될 수 있다. 즉, result는 result×1×R -1 modulus n에 의해 대체된다.At 27, the process returns to its normal form in Montgomery format and ends. This can be achieved by calculating the Montgomery multiplication result of the first. That is, result is replaced by result × 1 × R -1 modulus n .
기술 분야에서 잘 알려진 대책들 중 하나는 이진 거듭제곱 알고리즘에서 더미 곱셈을 추가하는 것으로 구성된다. 본 발명의 실시예에 따르면, 몽고메리 곱셈, MontMul(result,R,n)을 수행함에 의해 이러한 더미 곱셈을 변경하는 것이 제안된다.One of the well-known countermeasures in the art consists in adding a dummy multiplication in a binary power-of-two algorithm. According to an embodiment of the present invention, it is proposed to change this dummy multiplication by performing the Montgomery multiplication, MontMul (result, R, n) .
이러한 방법을 사용하여, 이러한 계산 동엔의 임의의 연산자의 교란 및/또는 단계에 의해, 해커는 개인 키(d)의 현재 비트(di)를 식별할 수 없도록 하는데, 왜냐하면, 최종 결과의 수정을 야기할 것이기 때문이다. 따라서, 제안된 대책은 세이프-에러 오류 주입 공격에 대해 효과적이다.Using this method, the perturbation and / or steps of any operator in this computation dynamics cause the hacker to be unable to identify the current bit (d i ) of the private key d, Because it will cause. Thus, the proposed countermeasures are effective for saf-error error injection attacks.
몽고메리 곱셈에 의한 더미 곱셈의 수정은 정상적인 경우에, 즉, 임의의 주입 공격이 없으면, 최종 결과를 수정하지 않을 것이다, 이는, 다음 식별 특성을 제공하는 몽고메리 곱셈의 정의 때문이다.Modification of the dummy multiplication by the Montgomery multiplication will not modify the final result in the normal case, that is, without any injection attack, because of the Montgomery multiplication definition that provides the following identification characteristics.
MontMul(result,R,n) = result × R × RMontMul (result, R, n) = result x R x R -1-One mod n = result mod n mod n = result mod n
본 발명의 특히 바람직한 효과는, 모듈러 거듭제곱이 몽고메리 변환을 사용하여 계산되는 동안 본 방법이 사용될 때, 달성된다. 실제로, 몽고메리 곱셈의 소비 시그니쳐는 모듈러 곱셈들의 것과 상이할 수 있어서, 모듈러 거듭제곱이 몽고메리 변환을 사용하여 계산될 때, 제안된 <<몽고메리 곱셈>>을 사용하는 이점은, di가 '0'과 동일할 때 및 di가 '1'과 동일할 때, 수행되는 계산을 위한 전력 소비의 임의의 차이를 전체적으로 제거한다는 것이다.A particularly advantageous effect of the present invention is achieved when the method is used while the modular power is calculated using the Montgomery transform. Indeed, the consumption signatures of the Montgomery multiplication can be different from those of the modulo multiplies, so the advantage of using the proposed " Montgomery multiplication " when the modulo powers are calculated using the Montgomery transform is that d i is & , And when d i is equal to '1', it totally eliminates any difference in power consumption for the calculations performed.
그러나, 기술 분야의 당업자는, 몽고메리 변환을 사용하여 모듈러 거듭제곱을 계산하는 것이 필수적이지 않다는 것을 인식할 것이다. 실제로, 본 발명의 실시예에 따른 <<몽고메리 곱셈>> 대책은, di가 '0'과 동일한 경우에서 반복 프로세스를 변경함에 의해서만 실행될 수 있다. 이러한 실행에서, 다른 모든 단계는 표준 <<더미 계산>>이 사용되는 도 1의 단계와 동일하다. 특히, di가 '1'과 동일한 경우의 반복 프로세싱은 표준, 모듈러 곱셈일 수 있다.However, those skilled in the art will recognize that it is not necessary to calculate the modular power using the Montgomery transform. Actually, the Montgomery multiplication measure according to the embodiment of the present invention can be executed only by changing the iterative process in the case where d i is equal to '0'. In this implementation, all other steps are the same as those of Figure 1, where the standard " dummy calculation " is used. In particular, iterative processing when d i is equal to '1' may be standard, modular multiplication.
실시예에서, 제안된 <<몽고메리 곱셈>> 대책을 포함한 거듭제곱 알고리즘은, 가령, 다음 의사코드에 의해 실행될 수 있다.In an embodiment, a power algorithm including the proposed " Montgomery multiplication " countermeasure can be executed, for example, by the following pseudocode.
도 3의 블록도를 참조하여, 본 발명의 제3 양태에 따른 암호법의 실시예가 이제 기술될 것이다. 이러한 암호법은, 프로세서에 액세스가능한 하나 이상의 저장된 시퀀스의 명령어를 포함하는 컴퓨터 프로그램 제품을 실행하고, 프로세서에 의해 실행될 때, 프로세서로 하여금 암호적 방법을 수행하도록 하도록 구성되는 컴퓨터 유닛을 포함할 수 있다.With reference to the block diagram of FIG. 3, an embodiment of the cryptographic method according to the third aspect of the present invention will now be described. Such cryptography may include a computer unit configured to execute a computer program product comprising instructions of one or more stored sequences accessible to a processor and to cause the processor to perform a cryptographic method when executed by the processor .
도시된 실시예에서, 컴퓨터 유닛(30)은 적어도 하나의 프로세서(31), 프로세서(31)에 의해 계산이 실행되는 동안 사용되는 데이터를 저장하기 위한 적어도 하나의 메모리(32), 및 가령, 본 방법을 적절하게 수행하기 위한 특정 파라미터나 실행 커맨드를 저장하는데 사용되는 적어도 하나의 재기입가능한 비-휘발성 메모리(33)를 포함한다.In the illustrated embodiment, the
메모리(32)는 가령, SRAM, DRAM 또는 SDRAM과 같은 임의의 적절한 타입의 램덤 액세스 메모리(RAM)일 수 있다. 메모리(33)는 EPROM 또는 플래시 메모리와 같은 임의의 적절한 타입의 리드 온리 메모리(ROM)일 수 있다.The
암호법은, 가령, RSA의 맥락에서 해독될 메세지(c)와 같은 메세지(a)를 수신하기 위한, 그리고, 상기 맥락에서 해독되면, 깨끗한 텍스트(m)과 같은 메세지(b)를 송출하기 위한 인터페이스(34, I/F)를 더 포함한다.The cryptography is used to receive a message a such as a message c to be decrypted in the context of RSA and to send a message b such as clean text m when decrypted in the context Interface 34 (I / F).
본 발명은, 세이프-에러 오류가 계산 동안에 도입되지 않았다는 보장을 위해, 추가적인 확인을 사용할 필요가 없다. 그것이 알고리즘의 더 빠른 계산을 가능하게 한다. 또한, 이러한 알고리즘은, 추가적인 데이터를 저장하기 위해 추가적인 레지스터를 필요로하지 않기 때문에, 메모리-최적화된다.The present invention does not require the use of additional acknowledgment to ensure that a saf error error has not been introduced during the calculation. It enables a faster calculation of the algorithm. In addition, such an algorithm is memory-optimized because it does not require additional registers to store additional data.
간단한 멱 분석(Simple Power Analysis, SPA)에도 영향받지 않는다. SPA는, 곱셈 및 제곱이 동일한 전력 소비를 야기하지 않을 수 있다는 기본적인 생각에 기반을 둔다. 그러므로, 해커가 모듈러 거듭제곱을 실행하는 암호적 디바이스의 전력 추적을 모니터링하는 수동적인 공격이다. 전력 추적으로부터, 암호법에서 사용되는 중요한 정보를 추론하기 위해, 실제로 실행되었던 제곱 및 곱셈의 시퀀스를 복구하는 것도 기대한다.It is not affected by simple power analysis (SPA). SPA is based on the basic idea that multiplication and squaring may not result in the same power consumption. Therefore, hackers are passive attacks that monitor power tracing of cryptographic devices that perform modular powers. From power tracking, it is also expected to recover the sequence of squaring and multiplication actually performed to infer important information used in cryptography.
본 발명의 실시예는 RSA 알고리즘 내의 해독 연산의 맥락에서 상기에 기술되었다. 그러나, 본 발명은 이러한 예시에 제한되지 않고, 다른 많은 공개 키 암호적 시스템(암호법) 등, 가령, DSA에서 구현될 수 있다는 것을 주목해야 한다.Embodiments of the present invention have been described above in the context of decryption operations within the RSA algorithm. It should be noted, however, that the present invention is not limited to these examples, but may be implemented in many other public key cryptographic systems (cryptography), such as DSA.
또한, 본 발명은 컴퓨팅 디바이스가 임의의 변수 e, f, R, n에 대해 e×f×R -1 mod n의 계산을 컴퓨트하는 연산을 실행하는 임의의 응용예에서 사용될 수 있다. 그 경우에, 디바이스는 변수 e 및 f를 몽고메리 형태로 변환하기 위해, e' = e×R mod n 및 f' = f×R mod n을 우선 계산하고, 그리고 나서, e 및 f 대신에 e' 및 f'를 사용하여 상기 기술된 연산을 실행한다.The present invention also contemplates that the computing device may be configured to < RTI ID = e, f, R, may be used in any applications running operation to compute the computation of e × f × R -1 mod n bit for n. In that case, the device first computes e '= e x R mod n and f' = f x R mod n to transform the variables e and f to Montgomery form, and then e ' And < RTI ID = 0.0 > f '. ≪ / RTI >
마지막으로, 제안된 방법은 가령, 슬라이딩 윈도우 알고리즘과 같이, 계산을 빠르게 하기 위한 다양하고 알려진 추가적인 최적화 프로세스의 실행예와 호환가능하다는 것은, 기술 분야의 당업자에 의해 더욱 인식될 것이다.Finally, it will be further appreciated by those skilled in the art that the proposed method is compatible with example implementations of various known and further optimization processes to speed up computation, such as, for example, a sliding window algorithm.
Claims (12)
모듈러 거듭제곱 b = a d mod n을 계산하는 것에 의해 제2 메세지(b)를 생성하는 단계 - d는, d = (dk-1 dk-2 ... d1d0)와 같이 이진 표현으로 표현된 정수이고, 변수 를 가진 이며, n은 양의 정수 모듈러스이고, R은 n보다 큰 g의 가장 작은 멱(power)으로 정의된 몽고메리 상수이고, g는 기계-단어 기반(machine-word base)임 - 를 포함하되,
상기 모듈러 거듭제곱 b = a d mod n을 계산하는 것은,
제1 변수를 R 모듈러스 n으로 개시하는 단계와,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산하는 단계 - 상기 반복 프로세스의 각각의 반복은, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입하는, 암호적 방법.Receiving a first message (a);
B) generating a second message (b) by calculating a modular power b = a d mod n , wherein d is a binary value, such as d = (d k-1 d k-2 ... d 1 d 0 ) Expressed as an integer, the variable With Where n is a positive integer modulus, R is a Montgomery constant defined as the smallest power of g greater than n, and g is a machine-word base,
Calculating the modular power, b = a d mod n ,
Initiating a first variable with R modulus n,
d i a d k-1, d k- 2, ... d 1 d 0, and takes a value in each row, the step of calculating a number k times an iterative process wherein each iteration of the iterative process is, d i is 0, < / RTI > a cryptographic method is inserted that replaces the first variable with a Montgomery multiplication of the first variable and R modulus n.
제1 변수와 제2 변수를 각각 R 모듈러스 n과 c×R 모듈러스 n으로 개시하는 단계와,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산하는 단계 - 제1 변수를 상기 제1 변수와 자체 모듈러스 n의 몽고메리 곱셈으로 대체하는 단계를 포함하되, di가 1과 동일하면, 제1 변수를, 상기 제1 변수와 제2 변수 모듈러스 n의 몽고메리 곱셈으로 대체하고, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 와,
상기 제1 변수를, 상기 제1 변수와 1 모듈러스 n의 몽고메리 곱셈으로 대체하는 단계를 포함하는, 암호적 방법.2. The method of claim 1, wherein computing the modular power b = a d mod n uses Montgomery conversion,
Initiating a first variable and a second variable with R modulus n and c X R modulus n, respectively,
d i consecutively taking values of d k-1 , d k-2 , ... d 1 and d 0 , respectively, to calculate a number k iterative process, - calculating a first variable by said first variable and its own modulus n If d i is equal to 1, replacing the first variable by a Montgomery multiplication of the first variable and the second variable modulus n, and if d i is equal to 0, replacing the first variable with a Montgomery multiplication of Inserting a measure to replace the first variable with a Montgomery multiplication of the first variable and R modulus n,
And replacing the first variable by a Montgomery multiplication of the first variable and a modulo n.
모듈러 거듭제곱 b = a d mod n을 계산하는 것에 의해 제2 메세지(b)를 생성하도록 구성된 컴퓨터 유닛(30) - d는, d = (dk-1 dk-2 ... d1d0)와 같이 이진 표현으로 표현된 정수이고, 변수 를 가진 이며, n은 양의 정수 모듈러스이고, R은 n보다 큰 g의 가장 작은 멱(power)으로 정의된 몽고메리 상수이고, g는 기계-단어 기반(machine-word base)임 - 를 포함하되,
상기 컴퓨터 유닛은 모듈러 거듭제곱 b = a d mod n을 계산하기 위해,
제1 변수를 R 모듈러스 n으로 개시하고,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산 - 상기 반복 프로세스의 각각의 반복은, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 하도록 구성된, 암호적 시스템.An interface 34 for receiving the first message a,
A computer unit 30 configured to generate a second message b by calculating a modular power b = a d mod n comprises: d = (d k-1 d k-2 ... d 1 d 0 ), and the variable < RTI ID = 0.0 > With Where n is a positive integer modulus, R is a Montgomery constant defined as the smallest power of g greater than n, and g is a machine-word base,
The computer unit is further programmed to calculate a modular power b = a d mod n ,
Start the first variable with R modulus n,
d i a d k-1, d k- 2, ... d 1 d 0, and takes a value in each row, the number k calculated times an iterative process wherein each iteration of the iterative process is, and d i is 0 And if so, inserting a measure to replace the first variable with a Montgomery multiplication of the first variable with R modulus n.
제1 변수와 제2 변수를 각각 R 모듈러스 n과 a×R 모듈러스 n으로 개시하고,
di가 dk-1, dk-2,... d1 및 d0 값을 각각 연속적으로 취하여, 숫자 k번 반복 프로세스를 계산 - 제1 변수를 상기 제1 변수와 자체 모듈러스 n의 몽고메리 곱셈으로 대체하되, di가 1과 동일하면, 제1 변수를, 상기 제1 변수와 제2 변수 모듈러스 n의 몽고메리 곱셈으로 대체하고, di가 0과 동일하면, 제1 변수를, 상기 제1 변수와 R 모듈러스 n의 몽고메리 곱셈으로 대체하는 대책을 삽입함 - 하고,
상기 제1 변수를, 상기 제1 변수와 1 모듈러스 n의 몽고메리 곱셈으로 대체하도록 하는, 암호적 시스템. 9. The apparatus of claim 8, wherein the computer unit is configured to use a Montgomery transform to calculate the modular power b = a d mod n ,
The first variable and the second variable are expressed as R modulus n and a x R modulus n, respectively,
d i takes values of d k-1 , d k-2 , ... d 1 and d 0 , respectively, and calculates the number k iterative process - calculating the first variable by the first variable and the self modulus n, If d i is equal to 1, replacing the first variable by a Montgomery multiplication of the first variable and the second variable modulus n, and if d i is equal to 0, substituting the first variable by the Montgomery multiplication of the first variable and the second variable modulus n, One measure is to insert a Montgomery multiplication of the R modulus n,
And to replace the first variable with a Montgomery multiplication of the first variable and 1 modulus n.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16305520.5 | 2016-05-04 | ||
EP16305520.5A EP3242202A1 (en) | 2016-05-04 | 2016-05-04 | Countermeasure to safe-error fault injection attacks on cryptographic exponentiation algorithms |
PCT/EP2017/060717 WO2017191288A1 (en) | 2016-05-04 | 2017-05-04 | Countermeasure to safe-error fault injection attacks on cryptographic exponentiation algorithms |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180137534A true KR20180137534A (en) | 2018-12-27 |
Family
ID=56119433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187033686A KR20180137534A (en) | 2016-05-04 | 2017-05-04 | Safeguarding against cryptographic power-law algorithms - Measures against error injection attacks |
Country Status (6)
Country | Link |
---|---|
US (1) | US20190089523A1 (en) |
EP (2) | EP3242202A1 (en) |
JP (1) | JP2019515353A (en) |
KR (1) | KR20180137534A (en) |
CN (1) | CN109416626A (en) |
WO (1) | WO2017191288A1 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11522669B2 (en) * | 2018-03-28 | 2022-12-06 | Cryptography Research, Inc. | Using cryptographic blinding for efficient use of Montgomery multiplication |
CN108599951B (en) * | 2018-08-10 | 2021-10-01 | 北京奇虎科技有限公司 | Encryption method, encryption device, computing equipment and computer storage medium |
CN112491543B (en) * | 2020-11-24 | 2022-06-07 | 杭州电子科技大学 | IC card decryption method based on improved Montgomery modular exponentiation circuit |
CN113253975A (en) * | 2021-04-27 | 2021-08-13 | 西安电子科技大学 | Algorithm acceleration method, system, medium, device and application of large digital-to-analog exponentiation |
WO2023141933A1 (en) | 2022-01-28 | 2023-08-03 | Nvidia Corporation | Techniques, devices, and instruction set architecture for efficient modular division and inversion |
WO2023141935A1 (en) | 2022-01-28 | 2023-08-03 | Nvidia Corporation | Techniques, devices, and instruction set architecture for balanced and secure ladder computations |
WO2023141934A1 (en) * | 2022-01-28 | 2023-08-03 | Nvidia Corporation | Efficient masking of secure data in ladder-type cryptographic computations |
CN116647318A (en) * | 2022-02-16 | 2023-08-25 | 瑞昱半导体股份有限公司 | Method for defending time attack of cipher system and cipher system processing circuit |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991415A (en) | 1997-05-12 | 1999-11-23 | Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science | Method and apparatus for protecting public key schemes from timing and fault attacks |
US6804782B1 (en) * | 1999-06-11 | 2004-10-12 | General Instrument Corporation | Countermeasure to power attack and timing attack on cryptographic operations |
JP3950638B2 (en) * | 2001-03-05 | 2007-08-01 | 株式会社日立製作所 | Tamper resistant modular processing method |
US20050157872A1 (en) | 2003-11-12 | 2005-07-21 | Takatoshi Ono | RSA public key generation apparatus, RSA decryption apparatus, and RSA signature apparatus |
FR2884088B1 (en) | 2005-03-31 | 2007-06-22 | Gemplus Sa | METHOD AND CRYPTOGRAPHIC DEVICE FOR PROTECTING THE LOGIC OF PUBLIC KEYS AGAINST FAULT ATTACKS |
EP2138990B1 (en) * | 2007-03-19 | 2013-05-15 | Fujitsu Limited | Built-in device with fault attack countermeasure function |
EP2015171A1 (en) * | 2007-06-29 | 2009-01-14 | Gemplus | Cryptographic method comprising secure modular exponentiation against hidden-channel attacks without the knowledge of the public exponent, cryptoprocessor for implementing the method and associated chip card |
US8139763B2 (en) | 2007-10-10 | 2012-03-20 | Spansion Llc | Randomized RSA-based cryptographic exponentiation resistant to side channel and fault attacks |
EP2222013A1 (en) | 2009-02-19 | 2010-08-25 | Thomson Licensing | Method and device for countering fault attacks |
US8799343B2 (en) * | 2011-09-22 | 2014-08-05 | Intel Corporation | Modular exponentiation with partitioned and scattered storage of Montgomery Multiplication results |
CN103164187B (en) * | 2011-12-09 | 2017-03-01 | 深圳市证通电子股份有限公司 | RSA modular exponentiation circuit and RSA security encryption chip |
-
2016
- 2016-05-04 EP EP16305520.5A patent/EP3242202A1/en not_active Withdrawn
-
2017
- 2017-05-04 CN CN201780041429.7A patent/CN109416626A/en active Pending
- 2017-05-04 KR KR1020187033686A patent/KR20180137534A/en active IP Right Grant
- 2017-05-04 WO PCT/EP2017/060717 patent/WO2017191288A1/en unknown
- 2017-05-04 US US16/098,643 patent/US20190089523A1/en not_active Abandoned
- 2017-05-04 JP JP2018557913A patent/JP2019515353A/en active Pending
- 2017-05-04 EP EP17722418.5A patent/EP3452897B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3242202A1 (en) | 2017-11-08 |
WO2017191288A1 (en) | 2017-11-09 |
EP3452897B1 (en) | 2020-02-19 |
US20190089523A1 (en) | 2019-03-21 |
EP3452897A1 (en) | 2019-03-13 |
CN109416626A (en) | 2019-03-01 |
JP2019515353A (en) | 2019-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20180137534A (en) | Safeguarding against cryptographic power-law algorithms - Measures against error injection attacks | |
Genkin et al. | May the fourth be with you: A microarchitectural side channel attack on several real-world applications of curve25519 | |
Strenzke et al. | Side channels in the McEliece PKC | |
Fan et al. | To infinity and beyond: Combined attack on ECC using points of low order | |
US8065531B2 (en) | Decryption method | |
Strenzke | A timing attack against the secret permutation in the McEliece PKC | |
CN101911009B (en) | Countermeasure method and apparatus for asymmetric encryption with signature scheme | |
JP2010217880A (en) | Fault-resistant calculation on elliptic curve | |
EP3503459B1 (en) | Device and method for protecting execution of a cryptographic operation | |
KR20100113130A (en) | Countermeasure method and devices for asymmetric cryptography | |
JP2011530093A (en) | Solutions to protect power-based encryption | |
US10461922B2 (en) | Method and system for protecting a cryptographic operation | |
JP5573964B2 (en) | Cryptographic processing apparatus and method | |
Boscher et al. | Blinded fault resistant exponentiation revisited | |
Fouque et al. | Defeating countermeasures based on randomized BSD representations | |
Kaminaga et al. | Double Counting in $2^{t} $-ary RSA Precomputation Reveals the Secret Exponent | |
Schmidt et al. | Fault attacks on the montgomery powering ladder | |
KR20080012634A (en) | Method and apparatus of adding points in binary finite field for implementation of fault detecting operation used in fast montgomery power ladder algorithm | |
Guerrini et al. | Randomized mixed-radix scalar multiplication | |
Muller et al. | High-order attacks against the exponent splitting protection | |
KR100954844B1 (en) | Method and Apparatus of digital signature using CRT-RSA modula exponentiation algorithm against fault attacks, and Recording medium using it | |
Kim et al. | Bit-flip faults on elliptic curve base fields, revisited | |
Hamoudi et al. | Side-channel analysis of CRYSTALS-Kyber and a novel low-cost countermeasure | |
Barbu et al. | Combined attack on CRT-RSA: why public verification must not be public? | |
JP5214317B2 (en) | Cryptographic processing apparatus, cryptographic processing method, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |