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 PDF

Info

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
Application number
KR1020110120062A
Other languages
Korean (ko)
Other versions
KR20130054591A (en
Inventor
홍석희
김성경
김태현
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020110120062A priority Critical patent/KR101341810B1/en
Publication of KR20130054591A publication Critical patent/KR20130054591A/en
Application granted granted Critical
Publication of KR101341810B1 publication Critical patent/KR101341810B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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/06Apparatus 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)인

Figure 112011503453602-pat00162
비트 길이의 p와
Figure 112011503453602-pat00163
비트 길이의 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의 합인
Figure 112011503453602-pat00135
,을 입력받고, 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의 곱을
Figure 112011503453602-pat00136
로 모듈러 연산한 값
Figure 112011503453602-pat00137
과 S'p와 Sq의 곱을
Figure 112011503453602-pat00138
로 모듈러 연산한 값
Figure 112011503453602-pat00139
을 산출하고, S'p와 S'q를 이용하여 m의 암호화된 정보(S)의 제1 중간값 S1을 산출하고, Sp와 Sq를 이용하여 S의 제2 중간값 S2을 산출한 다음, 레지스터(C1)에
Figure 112011503453602-pat00164
, к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
Figure 112011503453602-pat00162
Bit length p and
Figure 112011503453602-pat00163
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
Figure 112011503453602-pat00135
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 .
Figure 112011503453602-pat00136
Modulated value with
Figure 112011503453602-pat00137
And the product of S ' p and S q
Figure 112011503453602-pat00138
Modulated value with
Figure 112011503453602-pat00139
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 )
Figure 112011503453602-pat00164
, к 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

CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법{Method for protecting information against PA and FA using CRT-RSA}How to protect information against power analysis attacks and fault injection attacks using Crt-Rss {Method for protecting information against PA and FA using CRT-RSA}

본 발명은 전력 분석 공격(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)인

Figure 112011503453602-pat00147
비트 길이의 p와
Figure 112011503453602-pat00148
비트 길이의 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의 합인
Figure 112011503453602-pat00035
,을 입력받고, 상기 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의 곱을
Figure 112011503453602-pat00036
로 모듈러 연산한 값
Figure 112011503453602-pat00037
과 상기 S'p와 상기 Sq의 곱을
Figure 112011503453602-pat00038
로 모듈러 연산한 값
Figure 112011503453602-pat00039
을 산출하는 단계; 상기 S'p와 상기 S'q를 이용하여 상기 m의 암호화된 정보(S)의 제1 중간값 S1을 산출하고, 상기 Sp와 상기 Sq를 이용하여 상기 S의 제2 중간값 S2을 산출하는 단계; 레지스터(C1)에 상기
Figure 112011503453602-pat00149
, 상기 к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.
Figure 112011503453602-pat00147
Bit length p and
Figure 112011503453602-pat00148
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
Figure 112011503453602-pat00035
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
Figure 112011503453602-pat00036
Modulated value with
Figure 112011503453602-pat00037
And the product of S ' p and S q
Figure 112011503453602-pat00038
Modulated value with
Figure 112011503453602-pat00039
; 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
Figure 112011503453602-pat00149
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 step 120 of FIG.
4 is a diagram illustrating a modular exponential algorithm according to an exemplary embodiment of the present invention used in step 120 of FIG. 1.
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 step 110, first, a value required for deriving the encrypted information S to be robust to the error injection attack and the power analysis attack is received or selected from the protection target information m (step 1 of FIG. 2).

즉, 서로 다른 두 소수(prime number)인

Figure 112011503453602-pat00150
비트 길이의 p와
Figure 112011503453602-pat00165
비트 길이의 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의 합인
Figure 112011503453602-pat00043
를 입력받고, 상기 p와 q 보다 작은 r를 랜덤하게 선택한다(도 2의 step 1).That is, two different prime numbers
Figure 112011503453602-pat00150
Bit length p and
Figure 112011503453602-pat00165
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
Figure 112011503453602-pat00043
Is input and randomly selects r smaller than p and q (step 1 of FIG. 2).

이때, 입력 파라미터들 m,p,q,dp,dq,Ip,Tp,Tq,

Figure 112011503453602-pat00044
는 스마트 카드의 ROM에 저장되어 있는 것이 바람직하다. 한편, C1과 C2는 각각
Figure 112011503453602-pat00045
비트 레지스터이다.In this case, the input parameters m, p, q, d p , d q , I p , T p , T q ,
Figure 112011503453602-pat00044
Is preferably stored in the ROM of the smart card. On the other hand, C 1 and C 2 are
Figure 112011503453602-pat00045
Bit register.

110 단계에서 입력 또는 선택된 값들이 알고리즘의 입력값이 되면, 최종 출력값은 S(=md mod N)인데, 0이 아닌 к 1과 0이 아닌 к2가 같다면, 상기 S는 mS1 mod N의

Figure 112011503453602-pat00046
개의 상위 비트들과, S2
Figure 112011503453602-pat00047
개의 하위 비트들로 이루어져 있다. 여기서, S1은 md-1 mod N이고, S2는 md mod N이다. 여기서, N=pq이다.If the values input or selected in step 110 become the input values of the algorithm, the final output value is S (= m d mod N), and if nonzero к 1 and nonzero к 2 are equal, S is mS 1 mod N. of
Figure 112011503453602-pat00046
High bits and S 2
Figure 112011503453602-pat00047
Consists of four lower bits. Where S 1 is m d-1 mod N and S 2 is m d mod N. Where N = pq.

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 eseo step 115, by adding a secret key exponent d p is a secret key exponent d p is randomized, and generates a d 'p. Similarly, q-1 and then multiplied by a random value r to, by adding a secret key exponent d q, and generates a secret key exponent d q are the randomized d 'q (in Fig. 2 step 2).

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 step 120, m, d ' p , p, r, and T p are used to generate a first data pair (S' p , S p , p '), and m, d' q , q, r, T q Generates a second data pair (S ' q , S q , q') (step 3 of FIG. 2).

이들 두 데이터 쌍의 생성은 모듈러 지수승 알고리즘(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

Figure 112011503453602-pat00048
Figure 112011503453602-pat00048

Figure 112011503453602-pat00049
Figure 112011503453602-pat00049

120 단계에서 제1 데이터 쌍과 제2 데이터 쌍의 생성 후, 130 단계에서 상기 Sp와 상기 S'q의 곱을

Figure 112011503453602-pat00050
로 모듈러 연산한 값
Figure 112011503453602-pat00051
과 상기 S'p와 상기 Sq의 곱을
Figure 112011503453602-pat00052
로 모듈러 연산한 값
Figure 112011503453602-pat00053
을 산출한다(도 2의 step 4).After generation of the first data pair and the second data pair in step 120, the product of S p and S ′ q is calculated in step 130.
Figure 112011503453602-pat00050
Modulated value with
Figure 112011503453602-pat00051
And the product of S ' p and S q
Figure 112011503453602-pat00052
Modulated value with
Figure 112011503453602-pat00053
Is calculated (step 4 of FIG. 2).

к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.

Figure 112011503453602-pat00054
Figure 112011503453602-pat00054

Figure 112011503453602-pat00055
Figure 112011503453602-pat00055

여기서,

Figure 112011503453602-pat00152
은 p와 q의 비트 길이이다.here,
Figure 112011503453602-pat00152
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 step 140, the first intermediate value S 1 for obtaining the encrypted information S of m using the S ' p and the S' q and the S using the S p and the S q are obtained. The second intermediate value S 2 is calculated (step 5 of FIG. 2). The calculation of the first intermediate value and the second intermediate value may be specifically performed as follows.

Figure 112011503453602-pat00057
Figure 112011503453602-pat00057

Figure 112011503453602-pat00058
Figure 112011503453602-pat00058

여기서 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')·(

Figure 112011503453602-pat00059
-Ip)+Sp mod p'q'이다.CRT Our (S p , S q ) = (((S q -S p ) mod rq ') I p mod rq') (
Figure 112011503453602-pat00059
-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 step 190, an error if the к к 1 and 2 are not the same is detected in step 140.

이때, 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)에 입력될 값을 상기

Figure 112011503453602-pat00153
, 상기 p, 상기 q, 상기 к1, 및 상기 к2를 이용하여 구현한다(도 2의 step 6).After calculating the first intermediate value and the second intermediate value in step 140 (step 5 of FIG. 2), the value to be input to the register C 1 is described in step 150.
Figure 112011503453602-pat00153
, P, q, k 1 , and k 2 (step 6 of FIG. 2).

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.

Figure 112011503453602-pat00061
Figure 112011503453602-pat00061

여기서,

Figure 112011503453602-pat00062
here,
Figure 112011503453602-pat00062

즉, 0이 아닌 к1과 к2를 이용하여 C1

Figure 112011503453602-pat00063
비트 길이를 갖는 상위 비트(upper bit)를 모두 '1' 로 구현한다. 그리고 2x는 x 비트만큼의 쉬프트-레프트 연산(shift-left operation)을 의미한다.That is, using a 1 к к and 2 non-zero of C 1
Figure 112011503453602-pat00063
Implement all the upper bits having a bit length as '1'. And 2 x means a shift-left operation by x bits.

만일 오류가 없다면,

Figure 112011503453602-pat00064
이고,
Figure 112011503453602-pat00154
Figure 112011503453602-pat00066
이므로, 만일 к1 к2이 같은 경우, C1은 다음과 같다.If there is no error,
Figure 112011503453602-pat00064
ego,
Figure 112011503453602-pat00154
this
Figure 112011503453602-pat00066
, If к 1 and When к 2 is equal, C 1 is

Figure 112011503453602-pat00067
Figure 112011503453602-pat00067

여기서 ,

Figure 112011503453602-pat00068
이다.here ,
Figure 112011503453602-pat00068
to be.

만일,

Figure 112011503453602-pat00069
이면,
Figure 112011503453602-pat00070
이다.if,
Figure 112011503453602-pat00069
If so,
Figure 112011503453602-pat00070
to be.

만일 к1과 к2이 0이면,

Figure 112011503453602-pat00071
이고,If к 1 and к 2 are 0,
Figure 112011503453602-pat00071
ego,

Figure 112011503453602-pat00072
Figure 112011503453602-pat00072

이다. 여기서

Figure 112011503453602-pat00073
는 bitwise XOR 연산을,
Figure 112011503453602-pat00074
x의 logical 0에서 logical 1(또는 그 반대)로의 스위칭 상태(switching state)를 의미한다.to be. here
Figure 112011503453602-pat00073
Is a bitwise XOR operation,
Figure 112011503453602-pat00074
Denotes a switching state from logical 0 of logical x to logical 1 (or vice versa).

따라서,

Figure 112011503453602-pat00075
이다.therefore,
Figure 112011503453602-pat00075
to be.

160 단계에서 레지스터(C2)에 입력될 값을 상기 C1, 상기 m, 상기 S1, 상기 к2 및 상기 N을 이용하여 구현한다(도 2의 step 7).In step 160, the value to be input to the register C 2 is implemented using the C 1 , the m, the S 1 , the k 2, and the N (step 7 of FIG. 2).

C2는 구체적으로 다음과 같이 이루어질 수 있다.C 2 may be specifically as follows.

Figure 112011503453602-pat00076
Figure 112011503453602-pat00076

여기서 ∧는 bitwise AND 연산을 의미한다.Where ∧ means bitwise AND operation.

여기서,

Figure 112011503453602-pat00077
을 포함하는 레지스터를 μ라고 표시하면,here,
Figure 112011503453602-pat00077
If the register containing is denoted as μ ,

Figure 112011503453602-pat00078
Figure 112011503453602-pat00078

과 같이 표현된다.It is expressed as

여기서,

Figure 112011503453602-pat00079
이다.here,
Figure 112011503453602-pat00079
to be.

170 단계에서 상기 p의 레지스터(C1)를 다음과 같이 재계산한다.In step 170, the register C 1 of p is recalculated as follows.

Figure 112011503453602-pat00080
Figure 112011503453602-pat00080

만일 어떠한 오류 공격도 없다면, C1은 다음과 같이 표현될 수 있다.If there is no error attack, C 1 can be expressed as

Figure 112011503453602-pat00081
Figure 112011503453602-pat00081

Figure 112011503453602-pat00082
Figure 112011503453602-pat00082

따라서, C1

Figure 112011503453602-pat00083
개의 상위 비트들이 (11...11)2이거나 (00...01)2 인지 확인함으로써, к 1에 발생한 오류를 감지할 수 있다. 즉, 만일 к 1=0이 되는 오류가 발생하면 C1은 상위 비트가 (00...01)2의 값을 갖게 된다.Thus, C 1
Figure 112011503453602-pat00083
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 step 180, S 'is generated using the C 2 , the S 2 , the C 1 , the k 1 , and the k 2 (step 9 of FIG. 2).

S'는 구체적으로 다음과 같이 생성할 수 있다.S 'may be specifically generated as follows.

Figure 112011503453602-pat00084
Figure 112011503453602-pat00084

к 1이 0이 아닌 경우에 다음의 단계를 수행하여 S'를 생성할 수 있다. If к 1 is not 0, S 'can be generated by performing the following steps.

여기서,

Figure 112011503453602-pat00085
을 포함하는 레지스터를
Figure 112011503453602-pat00086
로 나타내기로 한다.here,
Figure 112011503453602-pat00085
Register containing
Figure 112011503453602-pat00086
It is represented by.

Figure 112011503453602-pat00087
Figure 112011503453602-pat00087

여기서,

Figure 112011503453602-pat00088
이고,
Figure 112011503453602-pat00089
이고,
Figure 112011503453602-pat00090
이다.here,
Figure 112011503453602-pat00088
ego,
Figure 112011503453602-pat00089
ego,
Figure 112011503453602-pat00090
to be.

그리고,

Figure 112011503453602-pat00091
는 C1
Figure 112011503453602-pat00092
비트만큼 오른쪽 시프트 연산을 함으로써 수행된다.And,
Figure 112011503453602-pat00091
C 1
Figure 112011503453602-pat00092
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.

Figure 112011503453602-pat00093
Figure 112011503453602-pat00093

따라서,therefore,

Figure 112011503453602-pat00094
Figure 112011503453602-pat00094

190 단계에서 어떠한 오류도 없으면, к1 = к2이기 때문에, S는 다음과 같이 나타낼 수 있다. 190 단계에서는 S'에서 к2를 빼므로 к1 = к2인지 여부를 확인할 수 있다.If there are no errors in step 190, к 1 = Since k 2 , S can be expressed as In step 190 we subtract к 2 from S ', so к 1 = You can check whether it is к 2 .

Figure 112011503453602-pat00095
Figure 112011503453602-pat00095

종래의 방법에서는 오류가 발생된 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 step 120 of FIG.

도 4는 도 1의 120 단계에서 사용된 본 발명의 바람직한 일 실시예에 따른 모듈러 지수승 알고리즘을 제시한 도면이다.4 is a diagram illustrating a modular exponential algorithm according to an exemplary embodiment of the present invention used in step 120 of FIG. 1.

본 발명에서의 모듈러 지수승 알고리즘은 상기 보호 대상 정보 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 step 300, the protected object information m, a binary number x having an n-bit length, a modulus Z (= pq), r, and tZ are received.

310 단계에서 상기 x를 이용하여 소정의 수 K를 초기화시킨다(도 4의 step 1).In step 310, a predetermined number K is initialized using x (step 1 of FIG. 4).

도 4의 step 1에 의한 초기화는 구체적으로 다음과 같이 이루어질 수 있다.Initialization by step 1 of FIG. 4 may be specifically performed as follows.

Figure 112011503453602-pat00096
Figure 112011503453602-pat00096

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 operation 320, the modular exponential algorithm according to the present invention modulates m by a product of r and Z (m mod rZ) to a [0], and squares of m to a product of r and Z. The difference between the initial value (m 2 mod rZ) of a [1] and the initial value (m mod rZ) of a [0] is calculated as a [1] by a modular operation value (m 2 mod rZ). 1] -a [0]) into a [2] to initialize a [0], a [1], and a [2] (step 2 of FIG. 4).

330 단계에서 상기 a[0], a[1]의 값을 상기 x의 최상위 비트와 최하위 비트를 제외한 각 비트 단위로 반복 연산(예를 들어 for loop 연산)하여 구한다(도 4의 step 3 내지 step 9).In operation 330, the values of a [0] and a [1] are obtained by iterative operation (for loop operation) for each bit unit except for the most significant bit and the least significant bit of x (steps 3 to step of FIG. 4). 9).

도 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 .

Figure 112011503453602-pat00097
Figure 112011503453602-pat00097

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 operation 340, the product of a [0] obtained through the iterative operation and the value a [0] mod rZ, which is modularized by multiplying r and N by a [0] · a [ 0] mod rZ) is generated as the final value (output value) of a [1] (step 10 of FIG. 4). At this time, Z * = rZ.

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 (step 11 of FIG. 4). Renewal of K may be specifically performed as follows.

Figure 112011503453602-pat00098
Figure 112011503453602-pat00098

만일 지수승 알고리즘이 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 step 350, the output t z - K becomes p or q because K becomes d p or d q (step 11 in FIG. 4).

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 operation 360, a [2] obtained through the iterative operation and a [0] obtained through the iterative operation are modulated by a product of r and t z -K (a [0] mod r ( t z - K )) (a [2] .a [0] mod r ( t z -K )) is generated as the final value (output value) of a [0] (step 12 in FIG. 4).

370 단계에서 상기 a[1]의 최종값과 상기 a[0]의 최종값을 이용하여 상기 a[2]의 최종값(출력값)을 생성하여, 본 발명에 의한 모듈러 지수승 알고리즘이 완결된다(도 4의 step 13).In step 370, a final exponent (output value) of a [2] is generated using the final value of a [1] and the final value of a [0], thereby completing the modular exponential algorithm according to the present invention. Step 13 of FIG. 4).

이때, a[2]의 최종값(출력값)의 연산은 구체적으로 다음과 같이 이루어질 수 있다.At this time, the calculation of the final value (output value) of a [2] may be specifically performed as follows.

Figure 112011503453602-pat00099
Figure 112011503453602-pat00099

380 단계에서 본 발명에 따른 모듈러 지수승 알고리즘의 출력은 (a[1],a[2],t z -K)가 된다(도 4의 step 14).In step 380, the output of the modular exponential algorithm according to the present invention becomes ( a [1], a [2], t z - K ) (step 14 of FIG. 4).

본 발명에 따른 지수승 알고리즘에서는 레지스터 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.

Figure 112011503453602-pat00100
Figure 112011503453602-pat00100

도 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 steps 10, 12, and 13 of FIG.

한편, 오류가 지수 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 step 6 of FIG. 4 in order to prevent the opcode sequence from being skipped due to a lasting error.

도 4의 step 6을 건너뛰게 되면, 마지막에는 (t z -K)≠Z(=p or q)가 되기 때문에 오류를 탐지할 수 있게 된다.If step 6 of FIG. 4 is skipped, an error can be detected since ( t z - K ) ≠ Z (= p or q ) at the end.

본 발명에 따른 지수승 알고리즘은 루프마다 지수의 비트 값에 독립적인 동일한 연산 시퀀스를 실행하는 구조를 갖고 있기 때문에 단순 전력 분석(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)를 고려한다.

Figure 112011503453602-pat00155
은 모듈러스 p 또는 q의 비트 길이이고, b는 임의의 정수의 비트 길이이다.For comparison, we consider security and computational load.
Figure 112011503453602-pat00155
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개의

Figure 112011503453602-pat00102
-비트 수,
Figure 112011503453602-pat00103
-비트 모듈러스의
Figure 112011503453602-pat00104
-비트 지수를 갖는 2번의 지수승(exponentiation), 2개의
Figure 112011503453602-pat00105
-비트 숫자의 1번의 곱셈, 2개의
Figure 112011503453602-pat00156
-비트 숫자의 1번의 곱셈 및
Figure 112011503453602-pat00157
-비트와 b-비트 숫자의 2번의 곱셈이 요구된다.The present invention is based on the CRT-RSA algorithm as described above.
Figure 112011503453602-pat00102
Number of bits,
Figure 112011503453602-pat00103
-Bit modulus
Figure 112011503453602-pat00104
Two exponentiations with bit exponents, two
Figure 112011503453602-pat00105
1 multiplication of the number of bits, two
Figure 112011503453602-pat00156
1 multiplication of the bit number and
Figure 112011503453602-pat00157
Two multiplications of the -bit and b-bit numbers are required.

그러므로 본 발명에 의한 CRT-RSA의 시간 복잡도(time complexity)는, 잉여 연산들(extra operations, 덧셈 및 로직 연산)을 제외하고,

Figure 112011503453602-pat00108
이다.Therefore, the time complexity of the CRT-RSA according to the present invention, except for the extra operations (addition and logic operations),
Figure 112011503453602-pat00108
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)

N=pq를 만족하는 서로 다른 두 소수(prime number)인
Figure 112011503453602-pat00158
비트 길이의 p와
Figure 112011503453602-pat00166
비트 길이의 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의 합인
Figure 112011503453602-pat00111
,을 입력받고, 상기 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의 곱을
Figure 112011503453602-pat00112
로 모듈러 연산한 값
Figure 112011503453602-pat00113
과 상기 S'p와 상기 Sq의 곱을
Figure 112011503453602-pat00114
로 모듈러 연산한 값
Figure 112011503453602-pat00115
을 산출하는 단계;
상기 S'p와 상기 S'q를 이용하여 상기 m의 암호화된 정보(S)의 제1 중간값 S1을 산출하고, 상기 Sp와 상기 Sq를 이용하여 상기 S의 제2 중간값 S2을 산출하는 단계;
레지스터(C1)에 상기
Figure 112011503453602-pat00160
, 상기 к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,
Figure 112011503453602-pat00158
Bit length p and
Figure 112011503453602-pat00166
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
Figure 112011503453602-pat00111
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
Figure 112011503453602-pat00112
Modulated value with
Figure 112011503453602-pat00113
And the product of S ' p and S q
Figure 112011503453602-pat00114
Modulated value with
Figure 112011503453602-pat00115
;
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
Figure 112011503453602-pat00160
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 항에 있어서,
상기 제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.
제 2 항에 있어서, 상기 모듈러 지수승 알고리즘은
상기 보호 대상 정보 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.
제 3 항에 있어서,
상기 K를 초기화시키는 것은 하기의 식 1에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
Figure 112011503453602-pat00117
식(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.
Figure 112011503453602-pat00117
Equation (1)
Where x is a binary number having n-bit length, n is the bit length of x, and Z * is rZ.
제 4 항에 있어서,
상기 a[0], a[1]의 값을 상기 x의 최상위 비트와 최하위 비트를 제외한 각 비트 단위로 반복 연산하여 구하는 단계는 하기의 식 2에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
Figure 112013030409655-pat00118
식(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.
Figure 112013030409655-pat00118
Formula (2).
제 5 항에 있어서,
상기 K를 갱신하는 단계는 하기의 식 3에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
Figure 112011503453602-pat00119
식(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.
Figure 112011503453602-pat00119
Equation (3).
제 6 항에 있어서,
상기 a[2]의 최종값을 생성하는 단계는 하기의 식 4에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
Figure 112011503453602-pat00120
식(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.
Figure 112011503453602-pat00120
(4).
제 2 항 내지 제 7 항 중 어느 한 항에 있어서, 상기 m의 암호화된 정보(S)를 획득하기 위한 제1 중간값 S1과 제2 중간값 S2의 산출은 하기의 식 5에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
Figure 112011503453602-pat00121

Figure 112011503453602-pat00122
식(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.
Figure 112011503453602-pat00121

Figure 112011503453602-pat00122
(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.
제 8 항에 있어서,
상기 레지스터(C1)에 상기
Figure 112011503453602-pat00161
, 상기 к1, 및 상기 к2를 이용하여 산출된 값을 저장하는 단계는,
하기의 식 6에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
Figure 112011503453602-pat00124
식(6).
여기서,
Figure 112011503453602-pat00125
는 к1의 bit length를, 2x는 x 비트 쉬프트-레프트 연산(shift-left operation)을 의미한다.
The method of claim 8,
In the register C 1
Figure 112011503453602-pat00161
, 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.
Figure 112011503453602-pat00124
(6).
here,
Figure 112011503453602-pat00125
Denotes a bit length of k 1 , and 2 x denotes a x bit shift-left operation.
제 9 항에 있어서,
상기 p', 상기 q', 및 상기 к1를 이용하여 재산출된 값은 하기의 식 7에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
Figure 112011503453602-pat00126
식(7).
상기 식(7)에서
Figure 112011503453602-pat00127
는 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.
Figure 112011503453602-pat00126
(7).
In the above formula (7)
Figure 112011503453602-pat00127
Means bitwise XOR operation.
제 10 항에 있어서,
상기 레지스터(C2)에 상기 C1, 상기 m, 상기 S1, 상기 к2, 및 상기 N을 이용하여 산출된 값을 저장하는 단계는,
하기의 식 8에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
Figure 112011503453602-pat00128
식(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.
Figure 112011503453602-pat00128
Equation (8).
In Equation (8), ∧ means a bitwise AND operation.
제 11 항에 있어서,
상기 S를 상기 C2, 상기 S2, 상기 C1, 상기 к1, 및 상기 к2 를 이용하여 생성하는 단계는, 하기의 식 9에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
Figure 112011503453602-pat00129

Figure 112011503453602-pat00144
식(9).
상기 식(9)에서
Figure 112011503453602-pat00131
는 C1
Figure 112011503453602-pat00132
비트만큼 쉬프트-라이트 연산(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.
Figure 112011503453602-pat00129

Figure 112011503453602-pat00144
(9).
In the above formula (9)
Figure 112011503453602-pat00131
C 1
Figure 112011503453602-pat00132
It means to perform a shift-right operation by a bit.
제 1 항 내지 제 7 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.A computer readable recording medium having recorded thereon a program for executing the method of claim 1 on a computer.
KR1020110120062A 2011-11-17 2011-11-17 Method for protecting information against PA and FA using CRT-RSA KR101341810B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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