KR101341810B1 - Method for protecting information against PA and FA using CRT-RSA - Google Patents
Method for protecting information against PA and FA using CRT-RSA Download PDFInfo
- Publication number
- KR101341810B1 KR101341810B1 KR1020110120062A KR20110120062A KR101341810B1 KR 101341810 B1 KR101341810 B1 KR 101341810B1 KR 1020110120062 A KR1020110120062 A KR 1020110120062A KR 20110120062 A KR20110120062 A KR 20110120062A KR 101341810 B1 KR101341810 B1 KR 101341810B1
- Authority
- KR
- South Korea
- Prior art keywords
- value
- crt
- mod
- attack
- information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
- G09C1/06—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system wherein elements corresponding to the signs making up the clear text are operatively connected with elements corresponding to the signs making up the ciphered text, the connections, during operation of the apparatus, being automatically and continuously permuted by a coding or key member
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 CRT-RSA(Chinese Reminder Theorem-Rivest Shamir Adleman)를 이용하여 전력 분석 공격과 오류 주입 공격에 강인한 정보 보호 방법에 관한 것이며, 특히 상기한 두 공격에 대해 안전성을 보장할 수 있고 아울러 고속의 연산 속도를 발현할 수 있는 모듈러 지수승 알고리즘(modular exponentiation algorithm)을 구현하여 정보를 보호하는 방법에 관한 것이다.
본 발명에 따른 N=pq를 만족하는 서로 다른 두 소수(prime number)인 비트 길이의 p와 비트 길이의 q를 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법에 있어서, 보호 대상 정보 m, 두 소수 p와 q, 비밀키 d를 p-1로 모듈러 연산한 dp(= d mod (p-1)), d를 q-1로 모듈러 연산한 dq(= d mod (q-1)), p의 역수를 q로 모듈러 연산한 Ip(= p-1 mod q), p와 dp의 합인 Tp, q와 dq의 합인 Tq, p와 Ip의 합인 ,을 입력받고, p와 q보다 작은 수 r를 랜덤하게 선택하고, m, dp, p, r, Tp를 이용하여 제1 데이터 쌍 (S'p, SP, p')을 생성하고, m, dq, q, r, Tq를 이용하여 제2 데이터 쌍(S'q, Sq, q')을 생성하며, Sp와 S'q의 곱을 로 모듈러 연산한 값 과 S'p와 Sq의 곱을 로 모듈러 연산한 값 을 산출하고, S'p와 S'q를 이용하여 m의 암호화된 정보(S)의 제1 중간값 S1을 산출하고, Sp와 Sq를 이용하여 S의 제2 중간값 S2을 산출한 다음, 레지스터(C1)에 , к1, 및 к2를 이용하여 산출된 값을 저장하고, 레지스터(C2)에 C1, m, S1, к2, 및 N을 이용하여 산출된 값을 저장하고, p', q', 및 к1를 이용하여 재산출된 값을 레지스터(C1)에 저장된 값과 비교하고, S를 C2, S2, C1, к1, 및 к2 를 이용하여 생성하는 것을 특징으로 한다.The present invention relates to a method of robust information protection against power analysis attacks and fault injection attacks using Chinese Reminder Theorem-Rivest Shamir Adleman (CRT-RSA). The present invention relates to a method of protecting information by implementing a modular exponentiation algorithm capable of expressing a computational speed.
Two different prime numbers satisfying N = pq according to the present invention Bit length p and A method of protecting information (m) from a power analysis attack and an error injection attack using a CRT-RSA modular exponential algorithm using a bit length q, the protected object information m, two prime numbers p and q, and a secret key d d p (= d mod (p-1)) modularized with p-1, d q (= d mod (q-1)) modularized with d minus q-1, and inverse of p I p (= p -1 mod q), T p , the sum of p and d p , T q , the sum of q and d q , and the sum of p and I p Input a, randomly select a number r smaller than p and q, generate a first data pair (S ' p , S P , p') using m, d p , p, r, and T p Create a second data pair (S ' q , S q , q') using m, d q , q, r, and T q , and multiply S p by S ' q . Modulated value with And the product of S ' p and S q Modulated value with For the calculation, and S 'p and S' by using the q by calculating a first intermediate value S 1 of the encryption information (S) in m, and the second of the S by using the S p and S q 2 Median S 2 After calculating, the register (C 1 ) , к 1 , And store the value computed using к 2 , store the value computed using C 1 , m, S 1 , к 2 , and N in register C 2 , p ', q', and к The value recalculated using 1 is compared with the value stored in the register C 1 , and S is generated using C 2 , S 2 , C 1 , к 1 , and к 2 .
Description
본 발명은 전력 분석 공격(power attack)과 오류 주입 공격(fault attack)으로부터 정보를 보호하는 방법에 관한 것으로, 보다 상세하게는 CRT-RSA(Chinese Reminder Theorem-Rivest Shamir Adleman)를 이용하여 전력 분석 공격과 오류 주입 공격에 강인하도록 한 정보 보호 방법에 관한 것이며, 특히 상기한 두 공격에 대해 안전성을 보장할 수 있고 아울러 고속의 연산 속도를 발현할 수 있는 모듈러 지수승 알고리즘(modular exponentiation algorithm)을 구현하여 정보를 보호하는 방법에 관한 것이다.The present invention relates to a method for protecting information from a power attack attack and a fault injection attack, and more particularly, a power analysis attack using a Chinese Reminder Theorem-Rivest Shamir Adleman (CRT-RSA). The present invention relates to a method of protecting information that is robust against error injection and error injection attacks, and in particular, by implementing a modular exponentiation algorithm that can guarantee safety against the above-mentioned two attacks and express high speed of computation. It is about how to protect information.
정보화 사회의 도래와 함께 암호 알고리즘 및 암호 프로토콜을 이용한 정보의 보호는 그 중요성을 더해가고 있다. 이러한 암호 알고리즘 중에서 공개키 암호 알고리즘은 개선된 암호화 표준(Advanced Encryption Standard: AES)을 포함하는 비밀키 암호 알고리즘의 단점인 키 분배 문제, 전자 서명 문제 등을 해결하면서 인터넷이나 금융망과 같은 여러 분야의 응용에 빠르게 적용이 되어가고 있다.With the advent of the information society, the protection of information using cryptographic algorithms and cryptographic protocols is increasing in importance. Among these cryptographic algorithms, public key cryptographic algorithms solve the disadvantages of secret key cryptographic algorithms, including the Advanced Encryption Standard (AES), such as key distribution, digital signatures, etc. It is quickly becoming an application.
전송되는 내용을 암호화하여 전송하는 방식에는 대칭키 암호화 방식과 공개키 암호화 방식이 있고, 공개키 암호화 방식 중에서 현재 인터넷이나 금융계 중에서 표준으로 선택되어 널리 사용되고 있는 방식으로는 RSA(Rivest Shamir Adleman) 공개키 암호화 방식이 있다.There are symmetric key encryption method and public key encryption method for encrypting the transmitted contents. Among the public key encryption methods, RSA (Rivest Shamir Adleman) public key is widely used. There is an encryption method.
한편, 1996년 Kocher에 의하여 부채널 공격(side channel attack)이 소개된 후, 내장형 장치(embedded device)의 암호 알고리즘에 대한 다양한 공격 방법이 소개되었다. 수동적인 공격 방법으로 분류되는 부채널 공격은 공격자가 알고리즘 수행시간, 알고리즘의 동작 중에 사용되는 전력량과 전자파를 이용하여 공격하며 이를 각 시간 공격(Timing Attack: TA), 단순 전력 분석(Simple Power Analysis: SPA), 차분 전력 분석(Differential Power Analysis: DPA), 전자파 분석(Electro-Magnetic Analysis: EMA)이라고 한다.On the other hand, since side channel attack was introduced by Kocher in 1996, various attack methods for encryption algorithm of embedded device were introduced. Sub-channel attacks, which are classified as passive attack methods, use an attacker's time by executing the algorithm, the amount of power used during the operation of the algorithm, and the electromagnetic waves, and attack each time attack (TA) and simple power analysis (Simple Power Analysis). SPA), differential power analysis (DPA), and electromagnetic-analysis (EMA).
능동적인 공격은 변형된 외부 클럭을 주입하거나, 온도를 변화시키거나 장치에 X-ray와 같은 레이저를 이용하여 공격하며, 이와 같이 능동적인 공격 방법을 오류 주입 공격(Fault Attack: FA)이라고 한다.Active attacks inject a modified external clock, change the temperature, or attack the device using a laser such as X-ray, and this type of active attack is called a fault attack (FA).
1996년 Bellcore에 의해 CRT(Chinese Remainder Theorem)를 이용한 RSA 암호 시스템(CRT-RSA)에서의 오류 주입 공격 방법이 제시된 후, 최근 DES, RSA, ElGamal, ECC, AES 등 다양한 공개키 암호 알고리즘이 오류 주입 공격 방법에 의해 공격되었다. 한편 공개키 암호 알고리즘의 기반이 되는 연산은 모듈러 지수승 알고리즘(modular exponentiation algorithm)으로 이 알고리즘 역시 전력분석 공격과 오류주입 공격에 안전하게 구현되어야 할 필요성이 있다.In 1996, after Bellcore introduced the method of error injection in the RSA cryptosystem (CRT-RSA) using the Chinese Remainder Theorem (CRT), various public key cryptography algorithms such as DES, RSA, ElGamal, ECC, AES, etc. Attack was attacked by the method. On the other hand, the operation that is the basis of the public key cryptographic algorithm is a modular exponentiation algorithm, which also needs to be securely implemented for power analysis and error injection attacks.
본 발명은 상기한 필요성에 부응하기 위해 창안된 것으로, 본 발명이 해결하고자하는 과제는 특히 전력 분석 공격과 오류 주입 공격에 강인하고 아울러 고속의 연산 속도를 발현할 수 있도록 CRT-RSA에서의 모듈러 지수승 알고리즘을 구현하여 정보를 보호하는 방안을 제시하는 것이다.The present invention was created to meet the above needs, and the problem to be solved by the present invention is a modular index in the CRT-RSA to be particularly robust to power analysis attacks and error injection attacks, and to express a high computational speed. By implementing the multiplication algorithm, we propose a way to protect the information.
본 발명은 상기 과제를 달성하기 위하여, N=pq를 만족하는 서로 다른 두 소수(prime number)인 비트 길이의 p와 비트 길이의 q를 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법에 있어서, 상기 보호 대상 정보 m, 상기 두 소수 p와 q, 비밀키 d를 p-1로 모듈러 연산한 dp(= d mod (p-1)), 상기 d를 q-1로 모듈러 연산한 dq(= d mod (q-1)), 상기 p의 역수를 상기 q로 모듈러 연산한 Ip(= p-1 mod q), 상기 p와 dp의 합인 Tp, 상기 q와 dq의 합인 Tq, 상기 p와 Ip의 합인 ,을 입력받고, 상기 p와 상기 q보다 작은 수 r를 랜덤하게 선택하는 단계; 상기 m, dp, p, r, Tp를 이용하여 제1 데이터 쌍 (S'p, Sp, p')을 생성하고, 상기 m, dq, q, r, Tq를 이용하여 제2 데이터 쌍 (S'q, Sq, q')을 생성하는 단계; 상기 Sp와 상기 S'q의 곱을 로 모듈러 연산한 값 과 상기 S'p와 상기 Sq의 곱을 로 모듈러 연산한 값 을 산출하는 단계; 상기 S'p와 상기 S'q를 이용하여 상기 m의 암호화된 정보(S)의 제1 중간값 S1을 산출하고, 상기 Sp와 상기 Sq를 이용하여 상기 S의 제2 중간값 S2을 산출하는 단계; 레지스터(C1)에 상기 , 상기 к1, 및 상기 к2를 이용하여 산출된 값을 저장하는 단계; 레지스터(C2)에 상기 C1, 상기 m, 상기 S1, 상기 к2, 및 상기 N을 이용하여 산출된 값을 저장하는 단계; 및 상기 p', 상기 q', 및 상기 к1를 이용하여 재산출된 값을 상기 레지스터(C1)에 저장된 값과 비교하는 단계; 상기 S를 상기 C2, 상기 S2, 상기 C1, 상기 к1, 및 상기 к2 를 이용하여 생성하는 단계를 포함하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법을 제공한다.In order to achieve the above object, the present invention provides two different prime numbers satisfying N = pq. Bit length p and A method of protecting information (m) from a power analysis attack and an error injection attack using a CRT-RSA modular exponential algorithm using a bit length q, the protected object information m, the two prime numbers p and q, and a secret key d p (= d mod (p-1)) modularized to d-1, d q (= d mod (q-1)) modularized to d-1, and reciprocal of p the q in the modular arithmetic I p (= p -1 mod q ), wherein the sum of p and d p sum T p, q and the sum of d q T q, wherein p and I p of the Receiving, and randomly selecting p and a number r smaller than q; The first data pairs S ' p , S p , p' are generated using the m, d p , p, r, and T p , and the m, d q , q, r, and T q are generated. Generating two data pairs (S ' q , S q , q'); The product of S p and S ' q Modulated value with And the product of S ' p and S q Modulated value with ; The first intermediate value S 1 of the encrypted information S of m is calculated using the S ′ p and the S ′ q , and the second intermediate value S of the S is calculated using the S p and S q . Calculating 2 ; Above in register C 1 Storing a value calculated using the k 1 and the k 2 ; Storing a value calculated using C 1 , m, S 1 , к 2 , and N in a register (C 2 ); Comparing the value recalculated using the p ', the q', and the k 1 with a value stored in the register C 1 ; Information (m) from a power analysis attack and an error injection attack using a CRT-RSA comprising generating the S using the C 2 , the S 2 , the C 1 , the k 1 , and the k 2 . Provide a way to protect it.
본 발명의 일 실시예에 의하면, 상기 제1 데이터 쌍 (S'p, Sp, p')의 생성은 상기 m, d'p, p, r, Tp를 입력으로 하는 모듈러 지수승 알고리즘(modular exponentiation algorithm)에 의하여 이루어지고, 상기 제2 데이터 쌍 (S'q, Sq, q')의 생성은 상기 m, d'q, q, r, Tq를 입력으로 하는 모듈러 지수승 알고리즘에 의하여 이루어질 수 있다.According to an embodiment of the present invention, the generation of the first data pair (S ' p , S p , p') is a modular exponential algorithm (M, d ' p , p, r, T p as input) A modular exponentiation algorithm is used to generate the second data pairs S ' q , S q and q' in order to generate a modular exponentiation algorithm using m, d ' q , q, r, and T q as inputs. It can be made by.
또한, 상기 모듈러 지수승 알고리즘은, 상기 보호 대상 정보 m, n 비트 길이를 갖는 이진수 x, Z(상기 p 또는 상기 q), 상기 r, 및 p+d p 이거나 q+d q 인 t z 을 입력받는 단계; 상기 x를 이용하여 소정의 수 K를 초기화시키는 단계; 상기 m을 상기 r과 상기 Z의 곱으로 모듈러 연산한 값(m mod rZ)을 레지스터 0(a[0])에, 상기 m의 제곱을 상기 r과 상기 Z의 곱으로 모듈러 연산한 값(m2 mod rZ)을 레지스터 1(a[1])에, 상기 a[1]의 초기값(m2 mod rZ)과 상기 a[0]의 초기값(m mod rZ)의 차(a[1]-a[0])를 레지스터 2(a[2])에 입력하여 상기 a[0], a[1], a[2]를 초기화시키는 단계; 상기 a[0]와 상기 a[1]의 값을 상기 x의 최상위 비트와 최하위 비트를 제외한 각 비트 단위로 반복 연산하여 구하는 단계; 상기 반복 연산을 통해 획득된 a[0]과 상기 a[0]을 상기 r과 Z의 곱으로 모듈러 연산한 값(a[0] mod rZ)의 곱(a[0]·a[0] mod rZ)을 상기 a[1]의 최종값으로 생성하는 단계; 상기 소정의 수 K를 갱신하는 단계; 상기 반복 연산을 통해 획득된 a[2]와 상기 반복 연산을 통해 획득된 a[0]을 상기 r과 t z -K의 곱으로 모듈러 연산한 값(a[0] mod r(t z -K))의 곱(a[2]·a[0] mod r(t z -K))을 상기 a[0]의 최종값으로 생성하는 단계; 및 상기 a[1]의 최종값과 상기 a[0]의 최종값을 이용하여 상기 a[2]의 최종값을 생성하는 단계를 포함할 수 있다.In addition, the modular exponentiation algorithm inputs the protected object information m, a binary number x, Z (the p or the q), the r, and t z which is p + d p or q + d q having a length of n bits. Receiving step; Initializing a predetermined number K using the x; A value obtained by modularizing the m by the product of r and Z (m mod rZ), and registering the square of m by the product of r and Z (m mod rZ) 2 mod rZ to register 1 (a [1]) and the difference between the initial value (m 2 mod rZ) of a [1] and the initial value (m mod rZ) of a [0] (a [1]). -a [0]) into register 2 (a [2]) to initialize a [0], a [1], a [2]; Iteratively calculating the values of a [0] and a [1] by each bit unit except the most significant bit and least significant bit of x; A [0] · a [0] mod of a [0] and a [0] obtained by the iterative operation and a value (a [0] mod rZ) modulated by a product of r and Z generating rZ) as the final value of a [1]; Updating the predetermined number K; A [2] obtained through the iterative operation and a [0] obtained through the iterative operation as a result of a modular operation as a product of r and t z -K (a [0] mod r ( t z - K Generating a product (a [2] · a [0] mod r ( t z - K )) as the final value of a [0]; And generating a final value of a [2] by using the final value of a [1] and the final value of a [0].
상기 과제를 해결하기 위하여, 본 발명은 상기된 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.In order to solve the above problems, the present invention provides a computer-readable recording medium having recorded thereon a program for executing a method for protecting information from the above-described power analysis attack and error injection attack on a computer.
본 발명에 의하면, 모든 가능한 오류 주입 공격과 전력 분석 공격에 안전한 정보 보호 방안을 제공하여 정보 암호화의 신뢰성 및 안전성을 제공하며, 기존의 CRT-RSA 암호화 알고리즘에 비하여 연산량을 감소시켜 빠른 연산 처리 속도를 제공할 수 있다.According to the present invention, a reliable information security scheme is provided for all possible error injection attacks and power analysis attacks, thereby providing reliability and safety of information encryption, and reducing the amount of computation compared to the conventional CRT-RSA encryption algorithm, thereby increasing the speed of computation. Can provide.
도 1은 본 발명의 바람직한 일 실시예에 따른 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법의 흐름도이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법의 알고리즘을 제시한 도면이다.
도 3은 도 1의 120 단계에서 사용된 본 발명의 바람직한 일 실시예에 따른 모듈러 지수승 방법의 흐름도이다.
도 4는 도 1의 120 단계에서 사용된 본 발명의 바람직한 일 실시예에 따른 모듈러 지수승 알고리즘을 제시한 도면이다.
도 5는 기존의 공격 방지 방안의 대표적인 두 가지 방안과 본 발명의 간략한 비교를 제시한 것이다.1 is a flowchart of a method of protecting information from a power analysis attack and an error injection attack according to a preferred embodiment of the present invention.
2 is a diagram illustrating an algorithm of a method of protecting information from a power analysis attack and an error injection attack according to an exemplary embodiment of the present invention.
3 is a flow chart of a modular exponential power method according to an embodiment of the present invention used in
4 is a diagram illustrating a modular exponential algorithm according to an exemplary embodiment of the present invention used in
Figure 5 shows a brief comparison of the two representative methods of the conventional attack prevention method and the present invention.
이하, 본 발명을 실시하기 위한 구체적인 내용을 본 발명의 바람직한 실시예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다. 아울러 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명 그리고 그 이외의 제반 사항이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다.The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which exemplary embodiments of the invention are shown. In the following description, It is to be noted that the same reference numerals are given to the drawings and that elements of other drawings can be cited when necessary in the description of the drawings. In the following description, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.
도 1은 본 발명의 바람직한 일 실시예에 따른 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법의 흐름도이다.1 is a flowchart of a method of protecting information from a power analysis attack and an error injection attack according to a preferred embodiment of the present invention.
도 2는 본 발명의 바람직한 일 실시예에 따른 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법의 알고리즘을 제시한 도면이다.2 is a diagram illustrating an algorithm of a method of protecting information from a power analysis attack and an error injection attack according to an exemplary embodiment of the present invention.
도 1과 도 2를 참조하여, 본 발명의 바람직한 일 실시예에 따른 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법을 이하 상세히 살펴보기로 한다.1 and 2, a method of protecting information from a power analysis attack and an error injection attack according to an embodiment of the present invention will be described in detail below.
이하의 과정은 어떠한 오류도 발생하지 않은 경우, 도 2에 도시된 알고리즘이 주어진 보호 대상 정보 m에 대하여 RSA 서명 S(=md mod N)를 정확하게 연산하는 과정이다.The following process is a process of accurately calculating the RSA signature S (= m d mod N) for the given protected object information m when no error occurs.
110 단계에서 우선 보호 대상 정보 m으로부터 오류 주입 공격과 전력 분석 공격에 강인하게 하기 위해 암호화시킨 정보(S)를 도출하기 위해 필요한 값들을 입력받거나 선택한다(도 2의 step 1).In
즉, 서로 다른 두 소수(prime number)인 비트 길이의 p와 비트 길이의 q, 비밀키 d를 p-1로 모듈러 연산한 dP(= d mod (p-1)), 상기 d를 q-1로 모듈러 연산한 dq(= d mod (q-1)), 상기 p의 역수를 상기 q로 모듈러 연산한 Ip(= p-1 mod q), 상기 p와 dp의 합인 Tp, 상기 q와 dq의 합인 Tq, 상기 p와 Ip의 합인 를 입력받고, 상기 p와 q 보다 작은 r를 랜덤하게 선택한다(도 2의 step 1).That is, two different prime numbers Bit length p and Q of bit length, d P (= d mod (p-1)), modulated by secret key d with p-1, d q (= d mod (q-1), modularized with d-1 ), of the p modular inverse calculation by I p (= a q of the p -1 mod q), wherein p and d p sum T p, q and the sum of d q T q, wherein p and I p of the Sum Is input and randomly selects r smaller than p and q (
이때, 입력 파라미터들 m,p,q,dp,dq,Ip,Tp,Tq,는 스마트 카드의 ROM에 저장되어 있는 것이 바람직하다. 한편, C1과 C2는 각각 비트 레지스터이다.In this case, the input parameters m, p, q, d p , d q , I p , T p , T q , Is preferably stored in the ROM of the smart card. On the other hand, C 1 and C 2 are Bit register.
110 단계에서 입력 또는 선택된 값들이 알고리즘의 입력값이 되면, 최종 출력값은 S(=md mod N)인데, 0이 아닌 к 1과 0이 아닌 к2가 같다면, 상기 S는 mS1 mod N의 개의 상위 비트들과, S2의 개의 하위 비트들로 이루어져 있다. 여기서, S1은 md-1 mod N이고, S2는 md mod N이다. 여기서, N=pq이다.If the values input or selected in
115 단계에서 p-1에 랜덤값 r을 곱한 후, 비밀키 지수 dp에 더함으로써, 비밀키 지수 dp가 랜덤화되어 d'p을 생성한다. 마찬가지로 q-1에 랜덤값 r을 곱한 후, 비밀키 지수 dq를 더함으로써, 비밀키 지수 dq가 랜덤화된 d'q을 생성한다(도 2의 step 2).Multiplied by a random value r to p-1
120 단계에서 m, d'p, p, r, Tp를 이용하여 제1 데이터 쌍 (S'p, Sp, p')을 생성하고, 상기 m, d'q, q, r, Tq를 이용하여 제2 데이터 쌍 (S'q, Sq, q')을 생성한다(도 2의 step 3).In
이들 두 데이터 쌍의 생성은 모듈러 지수승 알고리즘(modular exponentiation algorithm)에 의해 이루어지는데, 도 2의 step 3에서는 모듈러 지수승 알고리즘이 'Algorithm 2( )'로 표기되어 있으며, 본 발명에서의 모듈러 지수승 알고리즘은 도 4와 같이 구현된다. 즉, CRT 값을 지수승 알고리즘을 이용하여 계산한다.The generation of these two data pairs is performed by a modular exponentiation algorithm. In step 3 of FIG. 2, the modular exponentiation algorithm is denoted by 'Algorithm 2 ()', and the modular exponentiation in the present invention is performed. The algorithm is implemented as shown in FIG. That is, the CRT value is calculated using the exponential power algorithm.
제1 데이터 쌍과 제2 데이터 쌍을 도 4에 제시된 모듈러 지수승 알고리즘을 이용하여 생성하는데(도 2의 step 3), 각 데이터 쌍의 튜플(S'p, Sp, p', S'q, Sq, q')들의 결과값은 결국 다음과 같이 된다.A first data pair and a second data pair are generated using the modular exponential algorithm shown in FIG. 4 (step 3 of FIG. 2), and tuples S ' p , S p , p', and S ' q of each data pair are generated. , S q , q ') results in
120 단계에서 제1 데이터 쌍과 제2 데이터 쌍의 생성 후, 130 단계에서 상기 Sp와 상기 S'q의 곱을 로 모듈러 연산한 값 과 상기 S'p와 상기 Sq의 곱을 로 모듈러 연산한 값 을 산출한다(도 2의 step 4).After generation of the first data pair and the second data pair in
к1과 к2의 산출은 (S'p, Sp) 또는 (S'q, Sq)를 포함하는 버퍼(buffer)가 (0,0)로 지정되어(set) 있는지의 여부를 체크하기 위해 이루어지는 것이다. 만일 어떠한 오류(fault)도 없으면, к1과 к2는 동일한 값을 갖고 이는 к1과 к2 가 0이 아닐 확률이 매우 크다는 의미이다.The calculation of к 1 and к 2 checks whether the buffer containing (S ' p , S p ) or (S' q , S q ) is set to (0,0) It is done for. If there is no fault, к 1 and к 2 have the same value, which means that there is a high probability that к 1 and к 2 are not zero.
따라서, к1과 к2를 비교하여 동일하면, 어떠한 오류도 없는 것으로 판단하고, к1과 к2가 동일하지 않으면 오류를 검출할 수 있게 된다.Accordingly, if κ 1 and κ 2 are the same, it is determined that there is no error, and if κ 1 and κ 2 are not the same, an error can be detected.
이때, к1과 к2는 다음과 같이 계산될 수 있다.In this case, к 1 and к 2 may be calculated as follows.
여기서, 은 p와 q의 비트 길이이다.here, Is the bit length of p and q.
140 단계에서 상기 S'p와 상기 S'q를 이용하여 상기 m의 암호화된 정보(S)를 획득하기 위한 제1 중간값 S1과 상기 Sp와 상기 Sq를 이용하여 상기 S를 획득하기 위한 제2 중간값 S2을 산출한다(도 2의 step 5). 제1 중간값과 제2 중간값의 산출은 구체적으로 다음과 같이 이루어질 수 있다.In
여기서 CRTOur(a,b)는 a, b를 입력으로 하는 Chinese Reminder Theorem(CRT)을 수행하는 함수를 의미하며,Here, CRT Our (a, b) means a function that performs Chinese Reminder Theorem (CRT) with a and b as inputs.
CRTOur(Sp,Sq)=(((Sq-Sp) mod rq')·Ip mod rq')·(-Ip)+Sp mod p'q'이다.CRT Our (S p , S q ) = (((S q -S p ) mod rq ') I p mod rq') ( -I p ) + S p mod p'q '.
제2 중간값(S2)은 к1과 к2에 오류가 있는지 검출하기 위해 산출되는 것이다. 즉, 140 단계에서 제2 중간값(S2)을 계산시, к1를 더하고, 190 단계에서 к2를 S'으로부터 빼주기 때문에 к1과 к2가 같지 않은 경우 오류가 검출되게 된다.The second intermediate value S 2 is calculated to detect whether there are errors in k 1 and k 2 . That is, the second intermediate value to be added to, к 1 when calculating the (S 2), because it out from the к 2 S 'in
이때, S2는 md mod p'q'에 к1을 더함으로써 계산된다.In this case, S 2 is calculated by adding k 1 to m d mod p'q '.
140 단계에서 제1 중간값과 제2 중간값을 산출(도 2의 step 5)한 후, 150 단계에서 레지스터(C1)에 입력될 값을 상기 , 상기 p, 상기 q, 상기 к1, 및 상기 к2를 이용하여 구현한다(도 2의 step 6).After calculating the first intermediate value and the second intermediate value in step 140 (
C1은 к1과 к2가 0인지 아닌지를 검출하기 위해 산출되며 구체적으로 다음과 같이 산출될 수 있다.C 1 is calculated to detect whether or not k 1 and k 2 are 0, and specifically, it may be calculated as follows.
여기서, here,
즉, 0이 아닌 к1과 к2를 이용하여 C1의 비트 길이를 갖는 상위 비트(upper bit)를 모두 '1' 로 구현한다. 그리고 2x는 x 비트만큼의 쉬프트-레프트 연산(shift-left operation)을 의미한다.That is, using a 1 к к and 2 non-zero of C 1 Implement all the upper bits having a bit length as '1'. And 2 x means a shift-left operation by x bits.
만일 오류가 없다면, 이고, 이 이므로, 만일 к1과 к2이 같은 경우, C1은 다음과 같다.If there is no error, ego, this , If к 1 and When к 2 is equal, C 1 is
여기서 , 이다.here , to be.
만일, 이면,이다.if, If so, to be.
만일 к1과 к2이 0이면, 이고,If к 1 and к 2 are 0, ego,
이다. 여기서 는 bitwise XOR 연산을, 는 x의 logical 0에서 logical 1(또는 그 반대)로의 스위칭 상태(switching state)를 의미한다.to be. here Is a bitwise XOR operation, Denotes a switching state from logical 0 of logical x to logical 1 (or vice versa).
따라서, 이다.therefore, to be.
160 단계에서 레지스터(C2)에 입력될 값을 상기 C1, 상기 m, 상기 S1, 상기 к2 및 상기 N을 이용하여 구현한다(도 2의 step 7).In
C2는 구체적으로 다음과 같이 이루어질 수 있다.C 2 may be specifically as follows.
여기서 ∧는 bitwise AND 연산을 의미한다.Where ∧ means bitwise AND operation.
여기서, 을 포함하는 레지스터를 μ라고 표시하면,here, If the register containing is denoted as μ ,
과 같이 표현된다.It is expressed as
여기서, 이다.here, to be.
170 단계에서 상기 p의 레지스터(C1)를 다음과 같이 재계산한다.In
만일 어떠한 오류 공격도 없다면, C1은 다음과 같이 표현될 수 있다.If there is no error attack, C 1 can be expressed as
따라서, C1의 개의 상위 비트들이 (11...11)2이거나 (00...01)2 인지 확인함으로써, к 1에 발생한 오류를 감지할 수 있다. 즉, 만일 к 1=0이 되는 오류가 발생하면 C1은 상위 비트가 (00...01)2의 값을 갖게 된다.Thus, C 1 By checking whether the top bits are (11 ... 11) 2 or (00 ... 01) 2 , an error occurring at к 1 can be detected. That is, if the к 1 = 0 is the error that occurs is C 1 has a value of upper bits is (00 ... 01) 2.
180 단계에서 S'를 상기 C2, 상기 S2, 상기 C1, 상기 к 1 , 및 상기 к 2 를 이용하여 생성한다(도 2의 step 9).In
S'는 구체적으로 다음과 같이 생성할 수 있다.S 'may be specifically generated as follows.
к 1이 0이 아닌 경우에 다음의 단계를 수행하여 S'를 생성할 수 있다. If к 1 is not 0, S 'can be generated by performing the following steps.
여기서, 을 포함하는 레지스터를 로 나타내기로 한다.here, Register containing It is represented by.
여기서, 이고, 이고, 이다.here, ego, ego, to be.
그리고, 는 C1을 비트만큼 오른쪽 시프트 연산을 함으로써 수행된다.And, C 1 This is done by doing a right shift operation by bits.
따라서, к 1, к 2, C1, C2, 및 그 밖에 다른 파라미터들에서 오류가 없다면, 다음의 수식을 만족한다.Thus, if there are no errors in k 1 , k 2 , C 1 , C 2 , and other parameters, the following equation is satisfied.
따라서,therefore,
190 단계에서 어떠한 오류도 없으면, к1 = к2이기 때문에, S는 다음과 같이 나타낼 수 있다. 190 단계에서는 S'에서 к2를 빼므로 к1 = к2인지 여부를 확인할 수 있다.If there are no errors in
종래의 방법에서는 오류가 발생된 S값을 이용하여 비밀값들을 알 수 있었으나, 본 발명에서는 어떠한 오류가 발생된 S값을 알고 있다고 하더라도 비밀값을 알 수 없다.In the conventional method, the secret values can be known by using the S value in which an error occurs. However, in the present invention, even if the S value in which an error occurs is known, the secret value is not known.
도 3은 도 1의 120 단계에서 사용된 본 발명의 바람직한 일 실시예에 따른 모듈러 지수승 방법의 흐름도이다.3 is a flow chart of a modular exponential power method according to an embodiment of the present invention used in
도 4는 도 1의 120 단계에서 사용된 본 발명의 바람직한 일 실시예에 따른 모듈러 지수승 알고리즘을 제시한 도면이다.4 is a diagram illustrating a modular exponential algorithm according to an exemplary embodiment of the present invention used in
본 발명에서의 모듈러 지수승 알고리즘은 상기 보호 대상 정보 m, n-비트 길이를 갖는 이진수 x, 모듈러스 Z(=p 또는 q), 상기 r, 및 tz을 입력으로 하며, 몽고메리 지수승 사다리 알고리즘(Montgomery powering ladder algorithm)과 유사하게 mx mod Z 대신 (mx-1 mod rZ, mx mod rZ, Z)을 출력으로 한다.The modular exponential algorithm according to the present invention inputs the protected information m, a binary number x having an n-bit length, modulus Z (= p or q), the r, and t z , and the Montgomery exponential ladder algorithm ( Montgomery ladder algorithm powering analogy) to the m x mod Z instead of (m x-1 mod rZ, m x mod rZ, Z) to the output.
하지만 본 발명에서의 모듈러 지수승 알고리즘에서는, 몽고메리 지수승 사다리 알고리즘에서와는 달리, 추가적 레지스터(additional register)인 레지스터 2(a[2])를 사용하는데 이는 2차 오류 공격(second order fault attack)을 방지하기 위한 것이다.However, unlike the Montgomery exponential ladder algorithm, the modular exponential algorithm in the present invention uses an additional register (a [2]), which prevents a second order fault attack. It is to.
본 발명에 따른 모듈러 지수승 알고리즘은 입력 파라미터로 x는 d p +r(p-1)이거나, d q +r(q-1)이고, t z 는 p+d p 이거나 q+d q 이다. 본 랜덤화 과정은 비트-리셋 오류 공격과 차분 전력 분석 공격을 방어할 수 있도록 한다.In the modular exponential algorithm according to the present invention, x is d p + r ( p −1), d q + r ( q −1), and t z is p + d p or q + d q as an input parameter. This randomization process can protect against bit-reset error attacks and differential power analysis attacks.
300 단계에서 상기 보호 대상 정보 m, n-비트 길이를 갖는 이진수 x, 모듈러스 Z(=pq), 상기 r, 및 tZ을 입력받는다.In
310 단계에서 상기 x를 이용하여 소정의 수 K를 초기화시킨다(도 4의 step 1).In
도 4의 step 1에 의한 초기화는 구체적으로 다음과 같이 이루어질 수 있다.Initialization by
320 단계에서 본 발명에서의 모듈러 지수승 알고리즘은 상기 m을 상기 r과 Z의 곱으로 모듈러 연산한 값(m mod rZ)을 a[0]에, 상기 m의 제곱을 상기 r과 Z의 곱으로 모듈러 연산한 값(m2 mod rZ)을 a[1]에, 상기 a[1]의 초기값(m2 mod rZ)과 상기 a[0]의 초기값(m mod rZ)의 차(a[1]-a[0])를 a[2]에 입력하여 상기 a[0], a[1], a[2]를 초기화시킨다(도 4의 step 2).In
330 단계에서 상기 a[0], a[1]의 값을 상기 x의 최상위 비트와 최하위 비트를 제외한 각 비트 단위로 반복 연산(예를 들어 for loop 연산)하여 구한다(도 4의 step 3 내지 step 9).In
도 4의 step 3 내지 step 9에 의한 반복 연산은 구체적으로 다음과 같이 이루어질 수 있다.The iterative operation by steps 3 to 9 of FIG. 4 may be specifically performed as follows.
루프 연산의 마지막에는 K=x-rZ가 된다.At the end of the loop operation, K = x - rZ .
340 단계에서 상기 반복 연산을 통해 획득된 a[0]과 이 a[0]을 상기 r과 N의 곱으로 모듈러 연산한 값(a[0] mod rZ)의 곱(a[0]·a[0] mod rZ)을 상기 a[1]의 최종값(출력값)으로 생성한다(도 4의 step 10). 이때, Z*=rZ이다.In
a[1]의 최종값(출력값)을 생성한 후 350 단계에서 소정의 수 K를 갱신한다(도 4의 step 11). K의 갱신은 구체적으로 다음과 같이 이루어질 수 있다.After the final value (output value) of a [1] is generated, the predetermined number K is updated in step 350 (
만일 지수승 알고리즘이 CRT-RSA 알고리즘에서 사용되는 경우,If the exponential algorithm is used in the CRT-RSA algorithm,
K=d p -r 이거나 K=d q -r 이 된다. K = d p - r or K = d q - r .
350 단계에서 K에 r을 더함으로써, K가 d p 또는 d q 가 되기 때문에 출력 t z -K는 p나 q가 된다(도 4의 step 11).By adding r to K in
360 단계에서 상기 반복 연산을 통해 획득된 a[2]와, 상기 반복 연산을 통해 획득된 a[0]을 상기 r과 t z -K의 곱으로 모듈러 연산한 값(a[0] mod r(t z -K))의 곱(a[2]·a[0] mod r(t z -K))을 상기 a[0]의 최종값(출력값)으로 생성한다(도 4의 step 12).In
370 단계에서 상기 a[1]의 최종값과 상기 a[0]의 최종값을 이용하여 상기 a[2]의 최종값(출력값)을 생성하여, 본 발명에 의한 모듈러 지수승 알고리즘이 완결된다(도 4의 step 13).In
이때, a[2]의 최종값(출력값)의 연산은 구체적으로 다음과 같이 이루어질 수 있다.At this time, the calculation of the final value (output value) of a [2] may be specifically performed as follows.
380 단계에서 본 발명에 따른 모듈러 지수승 알고리즘의 출력은 (a[1],a[2],t z -K)가 된다(도 4의 step 14).In
본 발명에 따른 지수승 알고리즘에서는 레지스터 a[2]가 추가로 사용된다. 따라서, 지수승 알고리즘 과정 중에 사용하는 세 개의 요소(a[0], a[1], a[2])는 다음의 관계를 만족한다.In the exponential algorithm according to the present invention, register a [2] is additionally used. Therefore, three elements (a [0], a [1], a [2]) used during the exponential multiplication algorithm satisfy the following relationship.
a[0]m=a[1] mod rZ 이고, a[2]=±(a[0]-a[1]) mod rZ a [0] m = a [1] mod rZ and a [2] = ± ( a [0] -a [1]) mod rZ
추가로 사용되는 레지스터 a[2]는 n-i가 짝수이면 a[0]-a[1]이고, 홀수이면 a[1]-a[0]이다. 여기서, n은 지수의 비트 길이이고, i는 루프 카운터이다.Additional registers a [2] used are a [0] -a [1] if n-i is even and a [1] -a [0] if odd. Where n is the bit length of the exponent and i is the loop counter.
몽고메리 지수승 사다리 알고리즘(Montgomery powering ladder algorithm)과 유사하게 본 발명에 따른 지수승 사다리 알고리즘에서는 다음의 수학식과 같이 a[2]를 사용하여 제곱 연산과 곱셈 연산을 수행한다.Similar to the Montgomery powering ladder algorithm, the exponential ladder algorithm according to the present invention performs a square operation and a multiplication operation using a [2] as shown in the following equation.
도 4의 step 10, 12, 및 13을 건너뛰는 것을 방지하기 위해 출력 레지스터를 (a[0], a[1])에서 (a[1], a[2])로 변경한다.Change the output register from (a [0], a [1]) to (a [1], a [2]) to avoid skipping
한편, 오류가 지수 x, 모듈러스 Z, 또는 루프 카운터에 발생하였는지 여부를 확인하기 위해서 참조값 t z 를 사용할 수 있다. 즉, 모든 루프를 수행하지 않거나 루프 수행 중에 오류가 들어가게 되면 t z -K 값이 p 또는 q가 되지 않는다.On the other hand, the reference value t z can be used to check whether an error has occurred in the exponent x, modulus Z, or loop counter. That is, t z - K does not become p or q if all loops are not executed or an error is entered during loop execution.
또한, 오래가는 오류로 인해 opcode의 시퀀스를 건너뛰는 것을 방지하기 위해 도 4의 step 6에서 K를 업데이트한다.In addition, K is updated in
도 4의 step 6을 건너뛰게 되면, 마지막에는 (t z -K)≠Z(=p or q)가 되기 때문에 오류를 탐지할 수 있게 된다.If
본 발명에 따른 지수승 알고리즘은 루프마다 지수의 비트 값에 독립적인 동일한 연산 시퀀스를 실행하는 구조를 갖고 있기 때문에 단순 전력 분석(SPA)에 안전하다. 또한, 지수와 모듈러스를 각 연산과정에서 새로운 랜덤값으로 감춤으로써, 중간에 사용되는 값들은 항상 랜덤화된다. 이로 인해 DPA, RPA, 및 (Z-1) 공격과 같은 알려져 있는 모든 통계적인 전력 분석 공격에 대비할 수 있다.The exponential power algorithm according to the present invention is safe for simple power analysis (SPA) because it has a structure for executing the same operation sequence for each loop independent of the bit value of the exponent. Also, by hiding exponents and modulus with new random values in each operation, the values used in between are always randomized. This prepares you for all known statistical power analysis attacks, such as DPA, RPA, and (Z-1) attacks.
이하에서는 본 발명과 기존 공격 방지 방안을 비교하기로 한다.Hereinafter, the present invention will be compared with the conventional attack prevention method.
도 5는 기존의 공격 방지 방안의 대표적인 두 가지 방안과 본 발명의 간략한 비교를 제시한 것이다.Figure 5 shows a brief comparison of the two representative methods of the conventional attack prevention method and the present invention.
비교를 위해 안전성(security)과 연산 부하(computational load)를 고려한다. 은 모듈러스 p 또는 q의 비트 길이이고, b는 임의의 정수의 비트 길이이다.For comparison, we consider security and computational load. Is a bit length of modulus p or q and b is a bit length of any integer.
기존의 방안들 가운데, 도 5에 제시된 Dottax_Griaud 알고리즘이 연산 부하에 있어서 가장 효과적인 방법이고, Ebeid_Lembert 알고리즘이 안정성면에 있어서, 가장 효과적인 방법이다. 따라서, 이하에서는 이들 2개의 방안과의 비교를 제시하고자 한다.Among the existing methods, the Dottax_Griaud algorithm shown in FIG. 5 is the most effective method for the computational load, and the Ebeid_Lembert algorithm is the most effective method in terms of stability. Therefore, the following is to present a comparison with these two approaches.
본 발명은 상기한 바와 같이 CRT-RSA 알고리즘에 기반하는 것으로, 2개의 -비트 수, -비트 모듈러스의 -비트 지수를 갖는 2번의 지수승(exponentiation), 2개의 -비트 숫자의 1번의 곱셈, 2개의 -비트 숫자의 1번의 곱셈 및 -비트와 b-비트 숫자의 2번의 곱셈이 요구된다.The present invention is based on the CRT-RSA algorithm as described above. Number of bits, -Bit modulus Two exponentiations with bit exponents, two 1 multiplication of the number of bits, two 1 multiplication of the bit number and Two multiplications of the -bit and b-bit numbers are required.
그러므로 본 발명에 의한 CRT-RSA의 시간 복잡도(time complexity)는, 잉여 연산들(extra operations, 덧셈 및 로직 연산)을 제외하고, 이다.Therefore, the time complexity of the CRT-RSA according to the present invention, except for the extra operations (addition and logic operations), to be.
게다가 본 발명은 어떠한 역 연산(inverse operation)도 행하지 아니하며 공개키(public exponent) e에 대해 알 필요가 없다. 일반적으로 Java 카드를 이용할 시에는 비밀키와 해당 X.509 인증서만이 카드에 저장된다. 즉, 공개키를 요구하는 것이 언제나 유효한(available) 것은 아니다. 따라서, 본 발명은 기존의 보호 방안과 비교해볼 때 낮은 연산 부하를 갖는다. 그러므로 본 발명은 기존의 보호 방안에 비해 보다 다양한 환경에서 효과적으로 작동할 수 있다.In addition, the present invention does not perform any inverse operation and does not need to know about the public exponent e. In general, when using Java cards, only the private key and the corresponding X.509 certificate are stored on the card. In other words, requesting a public key is not always available. Thus, the present invention has a low computational load when compared to the existing protection schemes. Therefore, the present invention can operate effectively in a variety of environments compared to the existing protection measures.
도 5에 제시된 Dottax et al과 비교해보면, 본 발명은 다양한 오류 주입 공격과 전력 분석 공격에 보다 더 안전하다고 할 수 있는데 Dottax et al은 실행코드를 변형할 뿐만이 아니라 데이터 오류 공격을 리셋팅하는 것에 영향을 받기 때문이다.Compared with Dottax et al shown in FIG. 5, the present invention can be said to be safer against various error injection attacks and power analysis attacks. Dottax et al not only modifies the execution code but also affects resetting the data error attack. Because you receive.
본 방법발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.The method of the present invention can also be embodied as computer readable code on a computer readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 유무선 네트워크를 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and also implemented in the form of a carrier wave (for example, transmission over a wired or wireless network) . The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
이제까지 본 발명에 대하여 그 바람직한 실시예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다.The present invention has been described above with reference to preferred embodiments thereof. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.
그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 균등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.
Claims (13)
상기 보호 대상 정보 m, 상기 두 소수 p와 q, 비밀키 d를 p-1로 모듈러 연산한 dp(= d mod (p-1)), 상기 d를 q-1로 모듈러 연산한 dq(= d mod (q-1)), 상기 p의 역수를 상기 q로 모듈러 연산한 Ip(= p-1 mod q), 상기 p와 dp의 합인 Tp, 상기 q와 dq의 합인 Tq, 상기 p와 Ip의 합인 ,을 입력받고, 상기 p와 상기 q보다 작은 수 r를 랜덤하게 선택하는 단계;
상기 m, dp, p, r, Tp를 이용하여 제1 데이터 쌍 (S'p, Sp, p')을 생성하고, 상기 m, dq, q, r, Tq를 이용하여 제2 데이터 쌍 (S'q, Sq, q')을 생성하는 단계;
상기 Sp와 상기 S'q의 곱을 로 모듈러 연산한 값 과 상기 S'p와 상기 Sq의 곱을 로 모듈러 연산한 값 을 산출하는 단계;
상기 S'p와 상기 S'q를 이용하여 상기 m의 암호화된 정보(S)의 제1 중간값 S1을 산출하고, 상기 Sp와 상기 Sq를 이용하여 상기 S의 제2 중간값 S2을 산출하는 단계;
레지스터(C1)에 상기 , 상기 к1, 및 상기 к2를 이용하여 산출된 값을 저장하는 단계;
레지스터(C2)에 상기 C1, 상기 m, 상기 S1, 상기 к2, 및 상기 N을 이용하여 산출된 값을 저장하는 단계; 및
상기 p', 상기 q', 및 상기 к1를 이용하여 재산출된 값을 상기 레지스터(C1)에 저장된 값과 비교하는 단계;
상기 S를 상기 C2, 상기 S2, 상기 C1, 상기 к1, 및 상기 к2 를 이용하여 생성하는 단계를 포함하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로 부터 정보(m)를 보호하는 방법.Two different prime numbers satisfying N = pq, Bit length p and In the method for protecting information (m) from power analysis attack and error injection attack using a CRT-RSA modular exponential algorithm using a bit length q,
The protected object information m, the two prime numbers p and q, d p (= d mod (p-1)), a modular operation of p-1, and d q (modular operation of q-1) = d mod (q-1)), I p (= p -1 mod q) modulated by the inverse of p with q, T p as the sum of p and d p , T as the sum of q and d q q , which is the sum of p and I p Receiving, and randomly selecting p and a number r smaller than q;
The first data pairs S ' p , S p , p' are generated using the m, d p , p, r, and T p , and the m, d q , q, r, and T q are generated. Generating two data pairs (S ' q , S q , q');
The product of S p and S ' q Modulated value with And the product of S ' p and S q Modulated value with ;
The first intermediate value S 1 of the encrypted information S of m is calculated using the S ′ p and the S ′ q , and the second intermediate value S of the S is calculated using the S p and S q . Calculating 2 ;
Above in register C 1 Storing a value calculated using the k 1 and the k 2 ;
Storing a value calculated using C 1 , m, S 1 , к 2 , and N in a register (C 2 ); And
Comparing the value recalculated using the p ', q', and к 1 with a value stored in the register (C 1 );
Information (m) from a power analysis attack and an error injection attack using the CRT-RSA comprising generating the S using the C 2 , the S 2 , the C 1 , the к 1 , and the к 2 . ) How to protect.
상기 제1 데이터 쌍 (S'p, Sp, p')의 생성은 상기 m, d'p, p, r, Tp를 입력으로 하는 모듈러 지수승 알고리즘(modular exponentiation algorithm)에 의하여 이루어지고,
상기 제2 데이터 쌍 (S'q, Sq, q')의 생성은 상기 m, d'q, q, r, Tq를 입력으로 하는 모듈러 지수승 알고리즘에 의하여 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.The method of claim 1,
Generation of the first data pair (S ' p , S p , p') is made by a modular exponentiation algorithm with m, d ' p , p, r, and T p as inputs,
CRT-RSA, characterized in that the generation of the second data pair (S ' q , S q , q') is made by a modular exponential algorithm that takes m, d ' q , q, r, and T q as inputs. To protect information (m) from power analysis attacks and fault injection attacks.
상기 보호 대상 정보 m, n 비트 길이를 갖는 이진수 x, Z(상기 p 또는 상기 q), 상기 r, 및 p+d p 이거나 q+d q 인 t z 을 입력받는 단계;
상기 x를 이용하여 소정의 수 K를 초기화시키는 단계;
상기 m을 상기 r과 상기 Z의 곱으로 모듈러 연산한 값(m mod rZ)을 레지스터 0(a[0])에, 상기 m의 제곱을 상기 r과 상기 Z의 곱으로 모듈러 연산한 값(m2 mod rZ)을 레지스터 1(a[1])에, 상기 a[1]의 초기값(m2 mod rZ)과 상기 a[0]의 초기값(m mod rZ)의 차(a[1]-a[0])를 레지스터 2(a[2])에 입력하여 상기 a[0], a[1], a[2]를 초기화시키는 단계;
상기 a[0]와 상기 a[1]의 값을 상기 x의 최상위 비트와 최하위 비트를 제외한 각 비트 단위로 반복 연산하여 구하는 단계;
상기 반복 연산을 통해 획득된 a[0]과 상기 a[0]을 상기 r과 Z의 곱으로 모듈러 연산한 값(a[0] mod rZ)의 곱(a[0]·a[0] mod rZ)을 상기 a[1]의 최종값으로 생성하는 단계;
상기 소정의 수 K를 갱신하는 단계;
상기 반복 연산을 통해 획득된 a[2]와 상기 반복 연산을 통해 획득된 a[0]을 상기 r과 t z -K의 곱으로 모듈러 연산한 값(a[0] mod r(t z -K))의 곱(a[2]·a[0] mod r(t z -K))을 상기 a[0]의 최종값으로 생성하는 단계; 및
상기 a[1]의 최종값과 상기 a[0]의 최종값을 이용하여 상기 a[2]의 최종값을 생성하는 단계를 포함하는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.The algorithm of claim 2, wherein the modular exponential algorithm
The protected information m, n binary numbers x, Z (the p or the q) having a bit length, or wherein r, p and d p + step of receiving the q + d q of t z;
Initializing a predetermined number K using the x;
A value obtained by modularizing the m by the product of r and Z (m mod rZ), and registering the square of m by the product of r and Z (m mod rZ) 2 mod rZ to register 1 (a [1]) and the difference between the initial value (m 2 mod rZ) of a [1] and the initial value (m mod rZ) of a [0] (a [1]). -a [0]) into register 2 (a [2]) to initialize a [0], a [1], a [2];
Iteratively calculating the values of a [0] and a [1] by each bit unit except the most significant bit and least significant bit of x;
A [0] · a [0] mod of a [0] and a [0] obtained by the iterative operation and a value (a [0] mod rZ) modulated by a product of r and Z generating rZ) as the final value of a [1];
Updating the predetermined number K;
A [2] obtained through the iterative operation and a [0] obtained through the iterative operation as a result of a modular operation as a product of r and t z -K (a [0] mod r ( t z - K Generating a product (a [2] · a [0] mod r ( t z - K )) as the final value of a [0]; And
Generating a final value of a [2] by using the final value of a [1] and the final value of a [0]; and a power analysis attack and error using a CRT-RSA. How to protect information (m) from injection attacks.
상기 K를 초기화시키는 것은 하기의 식 1에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
식(1)
여기서, 상기 x는 n-비트 길이를 갖는 이진수, 상기 n은 상기 x의 비트 길이, Z*는 rZ.The method of claim 3, wherein
Initializing the K is a method of protecting information (m) from a power analysis attack and error injection attack using a CRT-RSA, characterized in that by the following equation 1.
Equation (1)
Where x is a binary number having n-bit length, n is the bit length of x, and Z * is rZ.
상기 a[0], a[1]의 값을 상기 x의 최상위 비트와 최하위 비트를 제외한 각 비트 단위로 반복 연산하여 구하는 단계는 하기의 식 2에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
식(2).5. The method of claim 4,
Iteratively calculating the values of a [0] and a [1] in units of bits except for the most significant bit and the least significant bit of x, using CRT-RSA, characterized in that How to protect information (m) from power analysis attacks and fault injection attacks.
Formula (2).
상기 K를 갱신하는 단계는 하기의 식 3에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
식(3).The method of claim 5, wherein
The updating of the K is performed by Equation 3 below. The method of protecting information m from a power analysis attack and an error injection attack using the CRT-RSA.
Equation (3).
상기 a[2]의 최종값을 생성하는 단계는 하기의 식 4에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
식(4).The method according to claim 6,
The generating of the final value of a [2] is a method of protecting information (m) from a power analysis attack and an error injection attack using a CRT-RSA, characterized by the following equation 4.
(4).
식(5).
상기 식(5)에서 CRTOur(S'p,S'q)는 S'p, S'q를 입력으로 하는 Chinese Reminder Theorem(CRT)을 수행하는 함수를 의미한다.The calculation according to any one of claims 2 to 7, wherein the calculation of the first intermediate value S 1 and the second intermediate value S 2 for obtaining the encrypted information S of m is performed by the following equation (5). And protecting the information (m) from a power analysis attack and an error injection attack using a CRT-RSA.
(5).
In Equation (5), CRT Our (S ' p , S' q ) means a function for performing Chinese Reminder Theorem (CRT) with S ' p and S' q as inputs.
상기 레지스터(C1)에 상기 , 상기 к1, 및 상기 к2를 이용하여 산출된 값을 저장하는 단계는,
하기의 식 6에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
식(6).
여기서, 는 к1의 bit length를, 2x는 x 비트 쉬프트-레프트 연산(shift-left operation)을 의미한다.The method of claim 8,
In the register C 1 , And storing the values calculated using the к 1 and к 2 ,
A method of protecting information (m) from a power analysis attack and an error injection attack using a CRT-RSA, characterized by the following equation 6.
(6).
here, Denotes a bit length of k 1 , and 2 x denotes a x bit shift-left operation.
상기 p', 상기 q', 및 상기 к1를 이용하여 재산출된 값은 하기의 식 7에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
식(7).
상기 식(7)에서 는 bitwise XOR 연산을 의미한다.The method of claim 9,
The value recalculated using the p ', q', and к 1 is obtained by the following equation (7) to obtain information (m) from the power analysis attack and error injection attack using the CRT-RSA How to protect.
(7).
In the above formula (7) Means bitwise XOR operation.
상기 레지스터(C2)에 상기 C1, 상기 m, 상기 S1, 상기 к2, 및 상기 N을 이용하여 산출된 값을 저장하는 단계는,
하기의 식 8에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
식(8).
상기 식(8)에서 ∧는 bitwise AND 연산을 의미한다.11. The method of claim 10,
The storing of the value calculated using the C 1 , the m, the S 1 , the к 2 , and the N in the register C 2 may include:
A method of protecting information (m) from a power analysis attack and an error injection attack using a CRT-RSA, characterized by the following equation 8.
Equation (8).
In Equation (8), ∧ means a bitwise AND operation.
상기 S를 상기 C2, 상기 S2, 상기 C1, 상기 к1, 및 상기 к2 를 이용하여 생성하는 단계는, 하기의 식 9에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
식(9).
상기 식(9)에서 는 C1을 비트만큼 쉬프트-라이트 연산(shift-right operation)을 하는 것을 의미한다.The method of claim 11,
Generating the S using the C 2 , the S 2 , the C 1 , the k 1 , and the k 2 , power analysis using a CRT-RSA, characterized in that How to protect information (m) from attacks and error injection attacks.
(9).
In the above formula (9) C 1 It means to perform a shift-right operation by a bit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110120062A KR101341810B1 (en) | 2011-11-17 | 2011-11-17 | Method for protecting information against PA and FA using CRT-RSA |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110120062A KR101341810B1 (en) | 2011-11-17 | 2011-11-17 | Method for protecting information against PA and FA using CRT-RSA |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130054591A KR20130054591A (en) | 2013-05-27 |
KR101341810B1 true KR101341810B1 (en) | 2013-12-17 |
Family
ID=48663345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110120062A KR101341810B1 (en) | 2011-11-17 | 2011-11-17 | Method for protecting information against PA and FA using CRT-RSA |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101341810B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102180029B1 (en) | 2014-02-03 | 2020-11-17 | 삼성전자 주식회사 | CRT-RSA encryption method and apparatus and computer readable storage medium therefore |
KR102653018B1 (en) | 2019-01-16 | 2024-03-29 | 삼성전자주식회사 | Security processor performing remainder calculation using random number and operating method using the same |
-
2011
- 2011-11-17 KR KR1020110120062A patent/KR101341810B1/en active IP Right Grant
Non-Patent Citations (2)
Title |
---|
전철현, "오류 및 전력 분석 공격에 강인한 CRT-RSA 암호시스템" 경북대학교 대학원, 석사학위논문, 2009.02. |
하재철 외 2명, "오류확산기법을 이용한 CRT-RSA 오류주입 공격 대응방안", 정보보호학회논문지 제18권제2호, 2008.04. |
Also Published As
Publication number | Publication date |
---|---|
KR20130054591A (en) | 2013-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2792787C (en) | System and method for protecting cryptographic assets from a white-box attack | |
KR100891323B1 (en) | Method and apparatus to increase complexity of power analysis based on random point representation in binary field Elliptic Curve CryptographyECC | |
Fan et al. | To infinity and beyond: Combined attack on ECC using points of low order | |
EP2523098B1 (en) | Finite field crytographic arithmetic resistant to fault attacks | |
EP2332040B1 (en) | Countermeasure securing exponentiation based cryptography | |
WO2009122461A1 (en) | Encrypting method having countermeasure function against power analyzing attacks | |
JP5261088B2 (en) | Unauthorized operation detection circuit, device provided with unauthorized operation detection circuit, and unauthorized operation detection method | |
KR101341810B1 (en) | Method for protecting information against PA and FA using CRT-RSA | |
US20080031444A1 (en) | Apparatus for performing a fault detection operation and method thereof | |
EP1347596B1 (en) | Digital signature methods and apparatus | |
KR100954844B1 (en) | Method and Apparatus of digital signature using CRT-RSA modula exponentiation algorithm against fault attacks, and Recording medium using it | |
KR101112570B1 (en) | Apparatus and Method for digital signature immune to power analysis and fault attacks, and Recording medium thereof | |
US20140270155A1 (en) | Method and a device for fault-resistant exponentiation in cryptographic systems | |
KR100953715B1 (en) | Digital signature method, Digital signature apparatus using CRT-RSA modula exponentiation algorithm and Recording medium using by the same | |
KR100953716B1 (en) | Method and Apparatus of digital signature using bit arithmetic based on CRT-RSA and Recording medium using by the same | |
CN1985458A (en) | Enhanced natural Montgomery exponent masking | |
KR102490702B1 (en) | Method and system for selecting secure prime numbers in finite field Diffie Hellman | |
Hanley et al. | Exploiting collisions in addition chain-based exponentiation algorithms using a single trace | |
KR101094339B1 (en) | Apparatus and Method for Fiat-Shamir identification immune to Fault attacks, and Recoreding medium thereof | |
Kim et al. | A New Exponentiation Algorithm Resistant to Combined Side Channel Attack. | |
Tai et al. | Weak-keys in public key cryptosystems based on discrete logarithms | |
Sarkar | Analysis of Hidden Number Problem with Hidden Multiplier. | |
Yin | Curve selection in elliptic curve cryptography | |
Shukla et al. | A Comparative analysis of the attacks on public key RSA cryptosystem | |
Mogollon | Number Theory and Finite Fields |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160928 Year of fee payment: 4 |