KR20130054591A - Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법 - Google Patents

Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법 Download PDF

Info

Publication number
KR20130054591A
KR20130054591A KR1020110120062A KR20110120062A KR20130054591A KR 20130054591 A KR20130054591 A KR 20130054591A KR 1020110120062 A KR1020110120062 A KR 1020110120062A KR 20110120062 A KR20110120062 A KR 20110120062A KR 20130054591 A KR20130054591 A KR 20130054591A
Authority
KR
South Korea
Prior art keywords
value
crt
attack
rsa
information
Prior art date
Application number
KR1020110120062A
Other languages
English (en)
Other versions
KR101341810B1 (ko
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/ko
Publication of KR20130054591A publication Critical patent/KR20130054591A/ko
Application granted granted Critical
Publication of KR101341810B1 publication Critical patent/KR101341810B1/ko

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

Abstract

본 발명은 CRT-RSA(Chinese Reminder Theorem-Rivest Shamir Adleman)를 이용하여 전력 분석 공격과 오류 주입 공격에 강인한 정보 보호 방법에 관한 것이며, 특히 상기한 두 공격에 대해 안전성을 보장할 수 있고 아울러 고속의 연산 속도를 발현할 수 있는 모듈러 지수승 알고리즘(modular exponentiation algorithm)을 구현하여 정보를 보호하는 방법에 관한 것이다.
본 발명에 따른 N=pq를 만족하는 서로 다른 두 소수(prime number)인
Figure pat00162
비트 길이의 p와
Figure 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 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 pat00136
로 모듈러 연산한 값
Figure pat00137
과 S'p와 Sq의 곱을
Figure pat00138
로 모듈러 연산한 값
Figure pat00139
을 산출하고, S'p와 S'q를 이용하여 m의 암호화된 정보(S)의 제1 중간값 S1을 산출하고, Sp와 Sq를 이용하여 S의 제2 중간값 S2을 산출한 다음, 레지스터(C1)에
Figure pat00164
, к1, 및 к2를 이용하여 산출된 값을 저장하고, 레지스터(C2)에 C1, m, S1, к2, 및 N을 이용하여 산출된 값을 저장하고, p', q', 및 к1를 이용하여 재산출된 값을 레지스터(C1)에 저장된 값과 비교하고, S를 C2, S2, C1, к1, 및 к2 를 이용하여 생성하는 것을 특징으로 한다.

Description

CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법{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)을 구현하여 정보를 보호하는 방법에 관한 것이다.
정보화 사회의 도래와 함께 암호 알고리즘 및 암호 프로토콜을 이용한 정보의 보호는 그 중요성을 더해가고 있다. 이러한 암호 알고리즘 중에서 공개키 암호 알고리즘은 개선된 암호화 표준(Advanced Encryption Standard: AES)을 포함하는 비밀키 암호 알고리즘의 단점인 키 분배 문제, 전자 서명 문제 등을 해결하면서 인터넷이나 금융망과 같은 여러 분야의 응용에 빠르게 적용이 되어가고 있다.
전송되는 내용을 암호화하여 전송하는 방식에는 대칭키 암호화 방식과 공개키 암호화 방식이 있고, 공개키 암호화 방식 중에서 현재 인터넷이나 금융계 중에서 표준으로 선택되어 널리 사용되고 있는 방식으로는 RSA(Rivest Shamir Adleman) 공개키 암호화 방식이 있다.
한편, 1996년 Kocher에 의하여 부채널 공격(side channel attack)이 소개된 후, 내장형 장치(embedded device)의 암호 알고리즘에 대한 다양한 공격 방법이 소개되었다. 수동적인 공격 방법으로 분류되는 부채널 공격은 공격자가 알고리즘 수행시간, 알고리즘의 동작 중에 사용되는 전력량과 전자파를 이용하여 공격하며 이를 각 시간 공격(Timing Attack: TA), 단순 전력 분석(Simple Power Analysis: SPA), 차분 전력 분석(Differential Power Analysis: DPA), 전자파 분석(Electro-Magnetic Analysis: EMA)이라고 한다.
능동적인 공격은 변형된 외부 클럭을 주입하거나, 온도를 변화시키거나 장치에 X-ray와 같은 레이저를 이용하여 공격하며, 이와 같이 능동적인 공격 방법을 오류 주입 공격(Fault Attack: FA)이라고 한다.
1996년 Bellcore에 의해 CRT(Chinese Remainder Theorem)를 이용한 RSA 암호 시스템(CRT-RSA)에서의 오류 주입 공격 방법이 제시된 후, 최근 DES, RSA, ElGamal, ECC, AES 등 다양한 공개키 암호 알고리즘이 오류 주입 공격 방법에 의해 공격되었다. 한편 공개키 암호 알고리즘의 기반이 되는 연산은 모듈러 지수승 알고리즘(modular exponentiation algorithm)으로 이 알고리즘 역시 전력분석 공격과 오류주입 공격에 안전하게 구현되어야 할 필요성이 있다.
본 발명은 상기한 필요성에 부응하기 위해 창안된 것으로, 본 발명이 해결하고자하는 과제는 특히 전력 분석 공격과 오류 주입 공격에 강인하고 아울러 고속의 연산 속도를 발현할 수 있도록 CRT-RSA에서의 모듈러 지수승 알고리즘을 구현하여 정보를 보호하는 방안을 제시하는 것이다.
본 발명은 상기 과제를 달성하기 위하여, N=pq를 만족하는 서로 다른 두 소수(prime number)인
Figure pat00147
비트 길이의 p와
Figure 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 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 pat00036
로 모듈러 연산한 값
Figure pat00037
과 상기 S'p와 상기 Sq의 곱을
Figure pat00038
로 모듈러 연산한 값
Figure pat00039
을 산출하는 단계; 상기 S'p와 상기 S'q를 이용하여 상기 m의 암호화된 정보(S)의 제1 중간값 S1을 산출하고, 상기 Sp와 상기 Sq를 이용하여 상기 S의 제2 중간값 S2을 산출하는 단계; 레지스터(C1)에 상기
Figure pat00149
, 상기 к1, 및 상기 к2를 이용하여 산출된 값을 저장하는 단계; 레지스터(C2)에 상기 C1, 상기 m, 상기 S1, 상기 к2, 및 상기 N을 이용하여 산출된 값을 저장하는 단계; 및 상기 p', 상기 q', 및 상기 к1를 이용하여 재산출된 값을 상기 레지스터(C1)에 저장된 값과 비교하는 단계; 상기 S를 상기 C2, 상기 S2, 상기 C1, 상기 к1, 및 상기 к2 를 이용하여 생성하는 단계를 포함하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법을 제공한다.
본 발명의 일 실시예에 의하면, 상기 제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를 입력으로 하는 모듈러 지수승 알고리즘에 의하여 이루어질 수 있다.
또한, 상기 모듈러 지수승 알고리즘은, 상기 보호 대상 정보 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 암호화 알고리즘에 비하여 연산량을 감소시켜 빠른 연산 처리 속도를 제공할 수 있다.
도 1은 본 발명의 바람직한 일 실시예에 따른 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법의 흐름도이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법의 알고리즘을 제시한 도면이다.
도 3은 도 1의 120 단계에서 사용된 본 발명의 바람직한 일 실시예에 따른 모듈러 지수승 방법의 흐름도이다.
도 4는 도 1의 120 단계에서 사용된 본 발명의 바람직한 일 실시예에 따른 모듈러 지수승 알고리즘을 제시한 도면이다.
도 5는 기존의 공격 방지 방안의 대표적인 두 가지 방안과 본 발명의 간략한 비교를 제시한 것이다.
이하, 본 발명을 실시하기 위한 구체적인 내용을 본 발명의 바람직한 실시예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다. 아울러 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명 그리고 그 이외의 제반 사항이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법의 흐름도이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법의 알고리즘을 제시한 도면이다.
도 1과 도 2를 참조하여, 본 발명의 바람직한 일 실시예에 따른 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법을 이하 상세히 살펴보기로 한다.
이하의 과정은 어떠한 오류도 발생하지 않은 경우, 도 2에 도시된 알고리즘이 주어진 보호 대상 정보 m에 대하여 RSA 서명 S(=md mod N)를 정확하게 연산하는 과정이다.
110 단계에서 우선 보호 대상 정보 m으로부터 오류 주입 공격과 전력 분석 공격에 강인하게 하기 위해 암호화시킨 정보(S)를 도출하기 위해 필요한 값들을 입력받거나 선택한다(도 2의 step 1).
즉, 서로 다른 두 소수(prime number)인
Figure pat00150
비트 길이의 p와
Figure 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 pat00043
를 입력받고, 상기 p와 q 보다 작은 r를 랜덤하게 선택한다(도 2의 step 1).
이때, 입력 파라미터들 m,p,q,dp,dq,Ip,Tp,Tq,
Figure pat00044
는 스마트 카드의 ROM에 저장되어 있는 것이 바람직하다. 한편, C1과 C2는 각각
Figure pat00045
비트 레지스터이다.
110 단계에서 입력 또는 선택된 값들이 알고리즘의 입력값이 되면, 최종 출력값은 S(=md mod N)인데, 0이 아닌 к 1과 0이 아닌 к2가 같다면, 상기 S는 mS1 mod N의
Figure pat00046
개의 상위 비트들과, S2
Figure pat00047
개의 하위 비트들로 이루어져 있다. 여기서, S1은 md-1 mod N이고, S2는 md mod N이다. 여기서, N=pq이다.
115 단계에서 p-1에 랜덤값 r을 곱한 후, 비밀키 지수 dp에 더함으로써, 비밀키 지수 dp가 랜덤화되어 d'p을 생성한다. 마찬가지로 q-1에 랜덤값 r을 곱한 후, 비밀키 지수 dq를 더함으로써, 비밀키 지수 dq가 랜덤화된 d'q을 생성한다(도 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).
이들 두 데이터 쌍의 생성은 모듈러 지수승 알고리즘(modular exponentiation algorithm)에 의해 이루어지는데, 도 2의 step 3에서는 모듈러 지수승 알고리즘이 'Algorithm 2( )'로 표기되어 있으며, 본 발명에서의 모듈러 지수승 알고리즘은 도 4와 같이 구현된다. 즉, CRT 값을 지수승 알고리즘을 이용하여 계산한다.
제1 데이터 쌍과 제2 데이터 쌍을 도 4에 제시된 모듈러 지수승 알고리즘을 이용하여 생성하는데(도 2의 step 3), 각 데이터 쌍의 튜플(S'p, Sp, p', S'q, Sq, q')들의 결과값은 결국 다음과 같이 된다.
Figure pat00048
Figure pat00049
120 단계에서 제1 데이터 쌍과 제2 데이터 쌍의 생성 후, 130 단계에서 상기 Sp와 상기 S'q의 곱을
Figure pat00050
로 모듈러 연산한 값
Figure pat00051
과 상기 S'p와 상기 Sq의 곱을
Figure pat00052
로 모듈러 연산한 값
Figure pat00053
을 산출한다(도 2의 step 4).
к1과 к2의 산출은 (S'p, Sp) 또는 (S'q, Sq)를 포함하는 버퍼(buffer)가 (0,0)로 지정되어(set) 있는지의 여부를 체크하기 위해 이루어지는 것이다. 만일 어떠한 오류(fault)도 없으면, к1과 к2는 동일한 값을 갖고 이는 к1과 к2 가 0이 아닐 확률이 매우 크다는 의미이다.
따라서, к1과 к2를 비교하여 동일하면, 어떠한 오류도 없는 것으로 판단하고, к1과 к2가 동일하지 않으면 오류를 검출할 수 있게 된다.
이때, к1과 к2는 다음과 같이 계산될 수 있다.
Figure pat00054
Figure pat00055
여기서,
Figure pat00152
은 p와 q의 비트 길이이다.
140 단계에서 상기 S'p와 상기 S'q를 이용하여 상기 m의 암호화된 정보(S)를 획득하기 위한 제1 중간값 S1과 상기 Sp와 상기 Sq를 이용하여 상기 S를 획득하기 위한 제2 중간값 S2을 산출한다(도 2의 step 5). 제1 중간값과 제2 중간값의 산출은 구체적으로 다음과 같이 이루어질 수 있다.
Figure pat00057
Figure pat00058
여기서 CRTOur(a,b)는 a, b를 입력으로 하는 Chinese Reminder Theorem(CRT)을 수행하는 함수를 의미하며,
CRTOur(Sp,Sq)=(((Sq-Sp) mod rq')·Ip mod rq')·(
Figure pat00059
-Ip)+Sp mod p'q'이다.
제2 중간값(S2)은 к1과 к2에 오류가 있는지 검출하기 위해 산출되는 것이다. 즉, 140 단계에서 제2 중간값(S2)을 계산시, к1를 더하고, 190 단계에서 к2를 S'으로부터 빼주기 때문에 к1과 к2가 같지 않은 경우 오류가 검출되게 된다.
이때, S2는 md mod p'q'에 к1을 더함으로써 계산된다.
140 단계에서 제1 중간값과 제2 중간값을 산출(도 2의 step 5)한 후, 150 단계에서 레지스터(C1)에 입력될 값을 상기
Figure pat00153
, 상기 p, 상기 q, 상기 к1, 및 상기 к2를 이용하여 구현한다(도 2의 step 6).
C1은 к1과 к2가 0인지 아닌지를 검출하기 위해 산출되며 구체적으로 다음과 같이 산출될 수 있다.
Figure pat00061
여기서,
Figure pat00062
즉, 0이 아닌 к1과 к2를 이용하여 C1
Figure pat00063
비트 길이를 갖는 상위 비트(upper bit)를 모두 '1' 로 구현한다. 그리고 2x는 x 비트만큼의 쉬프트-레프트 연산(shift-left operation)을 의미한다.
만일 오류가 없다면,
Figure pat00064
이고,
Figure pat00154
Figure pat00066
이므로, 만일 к1 к2이 같은 경우, C1은 다음과 같다.
Figure pat00067
여기서 ,
Figure pat00068
이다.
만일,
Figure pat00069
이면,
Figure pat00070
이다.
만일 к1과 к2이 0이면,
Figure pat00071
이고,
Figure pat00072
이다. 여기서
Figure pat00073
는 bitwise XOR 연산을,
Figure pat00074
x의 logical 0에서 logical 1(또는 그 반대)로의 스위칭 상태(switching state)를 의미한다.
따라서,
Figure pat00075
이다.
160 단계에서 레지스터(C2)에 입력될 값을 상기 C1, 상기 m, 상기 S1, 상기 к2 및 상기 N을 이용하여 구현한다(도 2의 step 7).
C2는 구체적으로 다음과 같이 이루어질 수 있다.
Figure pat00076
여기서 ∧는 bitwise AND 연산을 의미한다.
여기서,
Figure pat00077
을 포함하는 레지스터를 μ라고 표시하면,
Figure pat00078
과 같이 표현된다.
여기서,
Figure pat00079
이다.
170 단계에서 상기 p의 레지스터(C1)를 다음과 같이 재계산한다.
Figure pat00080
만일 어떠한 오류 공격도 없다면, C1은 다음과 같이 표현될 수 있다.
Figure pat00081
Figure pat00082
따라서, C1
Figure pat00083
개의 상위 비트들이 (11...11)2이거나 (00...01)2 인지 확인함으로써, к 1에 발생한 오류를 감지할 수 있다. 즉, 만일 к 1=0이 되는 오류가 발생하면 C1은 상위 비트가 (00...01)2의 값을 갖게 된다.
180 단계에서 S'를 상기 C2, 상기 S2, 상기 C1, 상기 к 1 , 및 상기 к 2 를 이용하여 생성한다(도 2의 step 9).
S'는 구체적으로 다음과 같이 생성할 수 있다.
Figure pat00084
к 1이 0이 아닌 경우에 다음의 단계를 수행하여 S'를 생성할 수 있다.
여기서,
Figure pat00085
을 포함하는 레지스터를
Figure pat00086
로 나타내기로 한다.
Figure pat00087
여기서,
Figure pat00088
이고,
Figure pat00089
이고,
Figure pat00090
이다.
그리고,
Figure pat00091
는 C1
Figure pat00092
비트만큼 오른쪽 시프트 연산을 함으로써 수행된다.
따라서, к 1, к 2, C1, C2, 및 그 밖에 다른 파라미터들에서 오류가 없다면, 다음의 수식을 만족한다.
Figure pat00093
따라서,
Figure pat00094
190 단계에서 어떠한 오류도 없으면, к1 = к2이기 때문에, S는 다음과 같이 나타낼 수 있다. 190 단계에서는 S'에서 к2를 빼므로 к1 = к2인지 여부를 확인할 수 있다.
Figure pat00095
종래의 방법에서는 오류가 발생된 S값을 이용하여 비밀값들을 알 수 있었으나, 본 발명에서는 어떠한 오류가 발생된 S값을 알고 있다고 하더라도 비밀값을 알 수 없다.
도 3은 도 1의 120 단계에서 사용된 본 발명의 바람직한 일 실시예에 따른 모듈러 지수승 방법의 흐름도이다.
도 4는 도 1의 120 단계에서 사용된 본 발명의 바람직한 일 실시예에 따른 모듈러 지수승 알고리즘을 제시한 도면이다.
본 발명에서의 모듈러 지수승 알고리즘은 상기 보호 대상 정보 m, n-비트 길이를 갖는 이진수 x, 모듈러스 Z(=p 또는 q), 상기 r, 및 tz을 입력으로 하며, 몽고메리 지수승 사다리 알고리즘(Montgomery powering ladder algorithm)과 유사하게 mx mod Z 대신 (mx-1 mod rZ, mx mod rZ, Z)을 출력으로 한다.
하지만 본 발명에서의 모듈러 지수승 알고리즘에서는, 몽고메리 지수승 사다리 알고리즘에서와는 달리, 추가적 레지스터(additional register)인 레지스터 2(a[2])를 사용하는데 이는 2차 오류 공격(second order fault attack)을 방지하기 위한 것이다.
본 발명에 따른 모듈러 지수승 알고리즘은 입력 파라미터로 x는 d p +r(p-1)이거나, d q +r(q-1)이고, t z p+d p 이거나 q+d q 이다. 본 랜덤화 과정은 비트-리셋 오류 공격과 차분 전력 분석 공격을 방어할 수 있도록 한다.
300 단계에서 상기 보호 대상 정보 m, n-비트 길이를 갖는 이진수 x, 모듈러스 Z(=pq), 상기 r, 및 tZ을 입력받는다.
310 단계에서 상기 x를 이용하여 소정의 수 K를 초기화시킨다(도 4의 step 1).
도 4의 step 1에 의한 초기화는 구체적으로 다음과 같이 이루어질 수 있다.
Figure 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).
330 단계에서 상기 a[0], a[1]의 값을 상기 x의 최상위 비트와 최하위 비트를 제외한 각 비트 단위로 반복 연산(예를 들어 for loop 연산)하여 구한다(도 4의 step 3 내지 step 9).
도 4의 step 3 내지 step 9에 의한 반복 연산은 구체적으로 다음과 같이 이루어질 수 있다.
루프 연산의 마지막에는 K=x-rZ가 된다.
Figure 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이다.
a[1]의 최종값(출력값)을 생성한 후 350 단계에서 소정의 수 K를 갱신한다(도 4의 step 11). K의 갱신은 구체적으로 다음과 같이 이루어질 수 있다.
Figure pat00098
만일 지수승 알고리즘이 CRT-RSA 알고리즘에서 사용되는 경우,
K=d p -r 이거나 K=d q -r 이 된다.
350 단계에서 K에 r을 더함으로써, K가 d p 또는 d q 가 되기 때문에 출력 t z -K는 p나 q가 된다(도 4의 step 11).
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).
370 단계에서 상기 a[1]의 최종값과 상기 a[0]의 최종값을 이용하여 상기 a[2]의 최종값(출력값)을 생성하여, 본 발명에 의한 모듈러 지수승 알고리즘이 완결된다(도 4의 step 13).
이때, a[2]의 최종값(출력값)의 연산은 구체적으로 다음과 같이 이루어질 수 있다.
Figure pat00099
380 단계에서 본 발명에 따른 모듈러 지수승 알고리즘의 출력은 (a[1],a[2],t z -K)가 된다(도 4의 step 14).
본 발명에 따른 지수승 알고리즘에서는 레지스터 a[2]가 추가로 사용된다. 따라서, 지수승 알고리즘 과정 중에 사용하는 세 개의 요소(a[0], a[1], a[2])는 다음의 관계를 만족한다.
a[0]m=a[1] mod rZ 이고, a[2]=±(a[0]-a[1]) mod rZ
추가로 사용되는 레지스터 a[2]는 n-i가 짝수이면 a[0]-a[1]이고, 홀수이면 a[1]-a[0]이다. 여기서, n은 지수의 비트 길이이고, i는 루프 카운터이다.
몽고메리 지수승 사다리 알고리즘(Montgomery powering ladder algorithm)과 유사하게 본 발명에 따른 지수승 사다리 알고리즘에서는 다음의 수학식과 같이 a[2]를 사용하여 제곱 연산과 곱셈 연산을 수행한다.
Figure pat00100
도 4의 step 10, 12, 및 13을 건너뛰는 것을 방지하기 위해 출력 레지스터를 (a[0], a[1])에서 (a[1], a[2])로 변경한다.
한편, 오류가 지수 x, 모듈러스 Z, 또는 루프 카운터에 발생하였는지 여부를 확인하기 위해서 참조값 t z 를 사용할 수 있다. 즉, 모든 루프를 수행하지 않거나 루프 수행 중에 오류가 들어가게 되면 t z -K 값이 p 또는 q가 되지 않는다.
또한, 오래가는 오류로 인해 opcode의 시퀀스를 건너뛰는 것을 방지하기 위해 도 4의 step 6에서 K를 업데이트한다.
도 4의 step 6을 건너뛰게 되면, 마지막에는 (t z -K)≠Z(=p or q)가 되기 때문에 오류를 탐지할 수 있게 된다.
본 발명에 따른 지수승 알고리즘은 루프마다 지수의 비트 값에 독립적인 동일한 연산 시퀀스를 실행하는 구조를 갖고 있기 때문에 단순 전력 분석(SPA)에 안전하다. 또한, 지수와 모듈러스를 각 연산과정에서 새로운 랜덤값으로 감춤으로써, 중간에 사용되는 값들은 항상 랜덤화된다. 이로 인해 DPA, RPA, 및 (Z-1) 공격과 같은 알려져 있는 모든 통계적인 전력 분석 공격에 대비할 수 있다.
이하에서는 본 발명과 기존 공격 방지 방안을 비교하기로 한다.
도 5는 기존의 공격 방지 방안의 대표적인 두 가지 방안과 본 발명의 간략한 비교를 제시한 것이다.
비교를 위해 안전성(security)과 연산 부하(computational load)를 고려한다.
Figure pat00155
은 모듈러스 p 또는 q의 비트 길이이고, b는 임의의 정수의 비트 길이이다.
기존의 방안들 가운데, 도 5에 제시된 Dottax_Griaud 알고리즘이 연산 부하에 있어서 가장 효과적인 방법이고, Ebeid_Lembert 알고리즘이 안정성면에 있어서, 가장 효과적인 방법이다. 따라서, 이하에서는 이들 2개의 방안과의 비교를 제시하고자 한다.
본 발명은 상기한 바와 같이 CRT-RSA 알고리즘에 기반하는 것으로, 2개의
Figure pat00102
-비트 수,
Figure pat00103
-비트 모듈러스의
Figure pat00104
-비트 지수를 갖는 2번의 지수승(exponentiation), 2개의
Figure pat00105
-비트 숫자의 1번의 곱셈, 2개의
Figure pat00156
-비트 숫자의 1번의 곱셈 및
Figure pat00157
-비트와 b-비트 숫자의 2번의 곱셈이 요구된다.
그러므로 본 발명에 의한 CRT-RSA의 시간 복잡도(time complexity)는, 잉여 연산들(extra operations, 덧셈 및 로직 연산)을 제외하고,
Figure pat00108
이다.
게다가 본 발명은 어떠한 역 연산(inverse operation)도 행하지 아니하며 공개키(public exponent) e에 대해 알 필요가 없다. 일반적으로 Java 카드를 이용할 시에는 비밀키와 해당 X.509 인증서만이 카드에 저장된다. 즉, 공개키를 요구하는 것이 언제나 유효한(available) 것은 아니다. 따라서, 본 발명은 기존의 보호 방안과 비교해볼 때 낮은 연산 부하를 갖는다. 그러므로 본 발명은 기존의 보호 방안에 비해 보다 다양한 환경에서 효과적으로 작동할 수 있다.
도 5에 제시된 Dottax et al과 비교해보면, 본 발명은 다양한 오류 주입 공격과 전력 분석 공격에 보다 더 안전하다고 할 수 있는데 Dottax et al은 실행코드를 변형할 뿐만이 아니라 데이터 오류 공격을 리셋팅하는 것에 영향을 받기 때문이다.
본 방법발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 유무선 네트워크를 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다.
그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 균등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (13)

  1. N=pq를 만족하는 서로 다른 두 소수(prime number)인
    Figure pat00158
    비트 길이의 p와
    Figure 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 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 pat00112
    로 모듈러 연산한 값
    Figure pat00113
    과 상기 S'p와 상기 Sq의 곱을
    Figure pat00114
    로 모듈러 연산한 값
    Figure pat00115
    을 산출하는 단계;
    상기 S'p와 상기 S'q를 이용하여 상기 m의 암호화된 정보(S)의 제1 중간값 S1을 산출하고, 상기 Sp와 상기 Sq를 이용하여 상기 S의 제2 중간값 S2을 산출하는 단계;
    레지스터(C1)에 상기
    Figure pat00160
    , 상기 к1, 및 상기 к2를 이용하여 산출된 값을 저장하는 단계;
    레지스터(C2)에 상기 C1, 상기 m, 상기 S1, 상기 к2, 및 상기 N을 이용하여 산출된 값을 저장하는 단계; 및
    상기 p', 상기 q', 및 상기 к1를 이용하여 재산출된 값을 상기 레지스터(C1)에 저장된 값과 비교하는 단계;
    상기 S를 상기 C2, 상기 S2, 상기 C1, 상기 к1, 및 상기 к2 를 이용하여 생성하는 단계를 포함하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로 부터 정보(m)를 보호하는 방법.
  2. 제 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)를 보호하는 방법.
  3. 제 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)를 보호하는 방법.
  4. 제 3 항에 있어서,
    상기 K를 초기화시키는 것은 하기의 식 1에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
    Figure pat00117
    식(1)
    여기서, 상기 x는 n-비트 길이를 갖는 이진수, 상기 n은 상기 x의 비트 길이, Z*는 rZ.
  5. 제 4 항에 있어서,
    상기 a[0], a[1]의 값을 상기 k의 최상위 비트와 최하위 비트를 제외한 각 비트 단위로 반복 연산하여 구하는 단계는 하기의 식 2에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
    Figure pat00118
    식(2).
  6. 제 5 항에 있어서,
    상기 K를 갱신하는 단계는 하기의 식 3에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
    Figure pat00119
    식(3).
  7. 제 6 항에 있어서,
    상기 a[2]의 최종값을 생성하는 단계는 하기의 식 4에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
    Figure pat00120
    식(4).
  8. 제 2 항 내지 제 7 항 중 어느 한 항에 있어서, 상기 m의 암호화된 정보(S)를 획득하기 위한 제1 중간값 S1과 제2 중간값 S2의 산출은 하기의 식 5에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
    Figure pat00121

    Figure pat00122
    식(5).
    상기 식(5)에서 CRTOur(S'p,S'q)는 S'p, S'q를 입력으로 하는 Chinese Reminder Theorem(CRT)을 수행하는 함수를 의미한다.
  9. 제 8 항에 있어서,
    상기 레지스터(C1)에 상기
    Figure pat00161
    , 상기 к1, 및 상기 к2를 이용하여 산출된 값을 저장하는 단계는,
    하기의 식 6에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
    Figure pat00124
    식(6).
    여기서,
    Figure pat00125
    는 к1의 bit length를, 2x는 x 비트 쉬프트-레프트 연산(shift-left operation)을 의미한다.
  10. 제 9 항에 있어서,
    상기 p', 상기 q', 및 상기 к1를 이용하여 재산출된 값은 하기의 식 7에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
    Figure pat00126
    식(7).
    상기 식(7)에서
    Figure pat00127
    는 bitwise XOR 연산을 의미한다.
  11. 제 10 항에 있어서,
    상기 레지스터(C2)에 상기 C1, 상기 m, 상기 S1, 상기 к2, 및 상기 N을 이용하여 산출된 값을 저장하는 단계는,
    하기의 식 8에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
    Figure pat00128
    식(8).
    상기 식(8)에서 ∧는 bitwise AND 연산을 의미한다.
  12. 제 11 항에 있어서,
    상기 S를 상기 C2, 상기 S2, 상기 C1, 상기 к1, 및 상기 к2 를 이용하여 생성하는 단계는, 하기의 식 9에 의해 이루어지는 것을 특징으로 하는 CRT-RSA를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보(m)를 보호하는 방법.
    Figure pat00129

    Figure pat00144
    식(9).
    상기 식(9)에서
    Figure pat00131
    는 C1
    Figure pat00132
    비트만큼 쉬프트-라이트 연산(shift-right operation)을 하는 것을 의미한다.
  13. 제 1 항 내지 제 12 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
KR1020110120062A 2011-11-17 2011-11-17 Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법 KR101341810B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110120062A KR101341810B1 (ko) 2011-11-17 2011-11-17 Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110120062A KR101341810B1 (ko) 2011-11-17 2011-11-17 Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법

Publications (2)

Publication Number Publication Date
KR20130054591A true KR20130054591A (ko) 2013-05-27
KR101341810B1 KR101341810B1 (ko) 2013-12-17

Family

ID=48663345

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110120062A KR101341810B1 (ko) 2011-11-17 2011-11-17 Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법

Country Status (1)

Country Link
KR (1) KR101341810B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9571281B2 (en) 2014-02-03 2017-02-14 Samsung Electronics Co., Ltd. CRT-RSA encryption method and apparatus
US11392725B2 (en) 2019-01-16 2022-07-19 Samsung Electronics Co., Ltd. Security processor performing remainder calculation by using random number and operating method of the security processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9571281B2 (en) 2014-02-03 2017-02-14 Samsung Electronics Co., Ltd. CRT-RSA encryption method and apparatus
US11392725B2 (en) 2019-01-16 2022-07-19 Samsung Electronics Co., Ltd. Security processor performing remainder calculation by using random number and operating method of the security processor

Also Published As

Publication number Publication date
KR101341810B1 (ko) 2013-12-17

Similar Documents

Publication Publication Date Title
CA2792787C (en) System and method for protecting cryptographic assets from a white-box attack
KR100891323B1 (ko) 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
Fan et al. To infinity and beyond: Combined attack on ECC using points of low order
Vigilant RSA with CRT: A new cost-effective solution to thwart fault attacks
US20100040225A1 (en) Fast Scalar Multiplication for Elliptic Curve Cryptosystems over Prime Fields
EP2332040B1 (en) Countermeasure securing exponentiation based cryptography
JP5365624B2 (ja) 電力解析攻撃への対策機能を備えた復号装置、プログラム、及び復装置を組み込んだ組込機器装置
EP0952697B1 (en) Elliptic curve encryption method and system
JP5261088B2 (ja) 不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法
US8744074B2 (en) Method and device for countering fault attacks
KR101341810B1 (ko) Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법
EP1347596B1 (en) Digital signature methods and apparatus
KR100954844B1 (ko) 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체
KR100953715B1 (ko) Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
KR101112570B1 (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
KR100953716B1 (ko) Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
US10355859B2 (en) Method and system for selecting a secure prime for finite field diffie-hellman
Hanley et al. Exploiting collisions in addition chain-based exponentiation algorithms using a single trace
KR101094339B1 (ko) 오류주입 공격에 안전한 피아트 샤미르 개인 식별 장치, 방법 및 그 기록 매체
Kim et al. A New Exponentiation Algorithm Resistant to Combined Side Channel Attack.
Yin Curve selection in elliptic curve cryptography
Tai et al. Weak-keys in public key cryptosystems based on discrete logarithms
Shukla et al. A Comparative analysis of the attacks on public key RSA cryptosystem
Chapter Implementation Attacks & Countermeasures
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