KR101558201B1 - Crt-rsa 암호 연산에서의 오류 주입 공격 방지 방법 및 그 기록매체 - Google Patents

Crt-rsa 암호 연산에서의 오류 주입 공격 방지 방법 및 그 기록매체 Download PDF

Info

Publication number
KR101558201B1
KR101558201B1 KR1020120074949A KR20120074949A KR101558201B1 KR 101558201 B1 KR101558201 B1 KR 101558201B1 KR 1020120074949 A KR1020120074949 A KR 1020120074949A KR 20120074949 A KR20120074949 A KR 20120074949A KR 101558201 B1 KR101558201 B1 KR 101558201B1
Authority
KR
South Korea
Prior art keywords
value
prime
random
error
reference value
Prior art date
Application number
KR1020120074949A
Other languages
English (en)
Other versions
KR20130092353A (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 US13/585,731 priority Critical patent/US8861718B2/en
Publication of KR20130092353A publication Critical patent/KR20130092353A/ko
Application granted granted Critical
Publication of KR101558201B1 publication Critical patent/KR101558201B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Abstract

본 발명은 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법 및 그 기록매체에 관한 것으로, 오류 주입 공격 방지 방법은 CRT 기반 RSA 암호 연산에 사용되는 서로 다른 제1 소수(p) 및 제2 소수(q) 이외에 랜덤하게 선택된 작은 소수인 랜덤수(r)를 입력 받는 단계, 푸쉬 함수를 이용하여 상기 제1 소수, 제2 소수 및 랜덤수를 배타적 논리합(Exclusive OR) 연산하여 누적값을 산출하는 단계, 상기 푸쉬 함수에 상응하는 팝 함수에 의하여 상기 누적값에 대한 배타적 논리합 연산에 의하여 상기 제1 소수, 제2 소수 및 랜덤수를 로드(load)하는 단계, 및 로드된 상기 제1 소수 및 상기 제2 소수 각각을 이용한 모듈로 연산에 의해 CRT 기반 RSA 연산을 수행하는 단계를 포함한다.

Description

CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법 및 그 기록매체{Method for preventing fault attacks of chinese remainder theorem based on rivest shamir adleman algorithm and recording medium thereof}
본 발명은 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법 및 그 기록매체에 관한 것으로, 더욱 상세하게는 CRT-RSA 암호 알고리즘을 수행하는 과정에서 발생하는 오류 주입 공격을 방지하기 위한 방법 및 그 기록매체에 관한 것이다.
RSA(Rivest Shamir Adleman, 이하 'RSA')는 공개키와 개인키를 이용하여 암호화와 복호화를 하는 암호화 및 인증 시스템의 하나이다. CRT-RSA 알고리즘은 중국인의 나머지 정리(Chinese Remainder Theorem, 이하 'CRT')를 RSA 알고리즘에 적용하여 4배 정도 빠른 연산 속도를 제공한다.
오류주입에 의한 암호 연산 장치에 대한 공격은 암호 알고리즘을 수행하는 보안 전자 장비들에 가변전압, 가변클럭 또는 레이저 등을 통하여 연산 중 오류를 유도한 후 획득한 결과값을 분석하여 암호화 키 등의 비밀 정보를 획득하는 분석법이다.
CRT-RSA에 대한 오류주입 공격은 Bellcore 공격이 대표적이며, 이에 대하여 Shamir의 방지기법을 시작으로 다양한 형태의 방지기법이 제안되었다. 일 예로서, 공개특허 10-2008-0098252호를 들 수 있다.
그러나 각기 오류주입 공격에 취약하거나 CRT-RSA 에 비하여 과도한 추가 연산을 필요로 하는 문제가 있다.
본 발명의 목적은, CRT 기반 RSA 암호 알고리즘 연산을 수행하는 중에 발생하는 오류 주입 공격을 방지하여 오류 주입 공격에 안전하면서, 동시에 효율적으로 서명값을 산출하는 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법 및 그 기록매체를 제공함에 있다.
상기의 목적을 달성하기 위한 본 발명에 따른 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법은, CRT 기반 RSA 암호 연산에 사용되는 서로 다른 제1 소수(p) 및 제2 소수(q) 이외에 랜덤하게 선택된 작은 소수인 랜덤수(r)를 입력 받는 단계, 푸쉬 함수를 이용하여 상기 제1 소수, 제2 소수 및 랜덤수를 배타적 논리합(Exclusive OR) 연산하여 누적값을 산출하는 단계, 상기 푸쉬 함수에 상응하는 팝 함수에 의하여 상기 누적값에 대한 배타적 논리합 연산에 의하여 상기 제1 소수, 제2 소수 및 랜덤수를 로드(load)하는 단계, 및 로드된 상기 제1 소수 및 상기 제2 소수 각각을 이용한 모듈로 연산에 의해 CRT 기반 RSA 연산을 수행하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은, 상기 제1 소수, 제2 소수 및 랜덤수 중 어느 하나를 로드하는 과정에서 발생한 오류는 상기 누적값을 통하여 상기 제1 소수, 제2 소수 및 랜덤수 중 다른 값들로 확산되어 상기 오류 주입 공격을 방지하는 것을 특징으로 한다.
한편, 본 발명은, 로드된 상기 제1 소수 및 상기 제2 소수 각각에 로드된 상기 랜덤수를 곱한 제1 곱셈값 및 제2 곱셈값을 산출하고, 전송하고자 하는 메시지의 제1 지수승 및 상기 제1 곱셈값을 모듈로 연산하여 제1 랜덤 기준값 및 상기 메시지의 제2 지수승 및 상기 제2 곱셈값을 모듈로 연산하여 제2 랜덤 기준값을 산출하고 상기 제1 랜덤 기준값 및 상기 제2 랜덤 기준값을 이용하여 상기 제1 랜덤 기준값 및 상기 제2 랜덤 기준값 산출을 위한 연산중 발생한 오류를 감지하는 단계를 더 포함하는 것을 특징으로 한다.
상기 오류를 감지하는 단계는, 상기 제1 랜덤 기준값과 로드된 상기 랜덤수를 모듈로 연산한 값과, 상기 제2 랜덤 기준값 및 로드된 상기 랜덤수를 모듈로 연산한 값과 비교하여 두 값이 같지 않으면 상기 오류로 판단하는 것을 특징으로 한다.
또한, 로드된 상기 제1 소수 및 상기 제1 랜덤 기준값과 상기 제2 소수 및 상기 재2 랜덤 기준값을 각각 모듈로 연산하여 제3 랜덤 기준값 및 제4 랜덤 기준값을 산출하고, 상기 제3 랜덤 기준값 및 제4 랜덤 기준값을 이용하여 서명값 산출을 위한 연산 중 발생한 오류를 감지하는 단계를 더 포함하는 것을 특징으로 한다.
이때, 서명값 산출을 위한 연산 중 발생한 오류를 감지하는 단계에서 상기 서명값 및 상기 제1 소수를 모듈로 연산한 값과, 상기 제1 소수 및 상기 제1 랜덤 기준값을 모듈로 연산한 값이 서로 같지 않거나, 상기 서명값 및 상기 제2 소수를 모듈로 연산한 값과, 상기 제2 소수 및 상기 제2 랜덤 기준값을 모듈로 연산한 값이 서로 같지 않으면 상기 오류로 판단하는 것을 특징으로 한다.
또한, 본 발명은, 상기 제1 소수, 제2 소수 및 랜덤수를 합한 값을 이용하여 상기 CRT 기반 RSA 연산 중 발생한 오류를 감지하는 단계를 더 포함하는 것을 특징으로 한다.
상기 랜덤수는, 크기가 적어도 32비트인 것을 특징으로 한다.
한편, 본 발명은 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법을 구현하기 위한 프로그램이 기록된 기록매체를 포함한다.
본 발명에 따르면, CRT 기반 RSA 암호 알고리즘 연산을 수행하는 중에 발생하는 오류 주입 공격을 방지하여 오류 주입 공격에 안전하면서, 동시에 효율적으로 서명값을 산출할 수 있는 이점이 있다.
도 1은 본 발명에 적용되는 CRT 기반 RSA 암호 알고리즘을 도시한 도이다.
도 2는 본 발명에 적용되는 CRT 기반 RSA 암호 알고리즘의 푸쉬 함수 알고리즘을 도시한 도이다.
도 3은 본 발명에 적용되는 CRT 기반 RSA 암호 알고리즘의 팝 함수 알고리즘을 도시한 도이다.
도 4 내지 도 6은 본 발명에 따른 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법에 대한 동작 흐름을 도시한 순서도이다.
도 7은 본 발명에 따른 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 장치의 구성을 설명하는데 참조되는 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 설명한다.
도 1은 본 발명에 적용되는 CRT 기반 RSA 암호 알고리즘을 도시한 도이다.
이때, 청구항에서 기재하고 있는 메시지는 m, 제1 소수는 p, 제2 소수는 q, 랜덤수는 r, 제1 곱셈값은 p', 제2 곱셈값은 q', 제1 지수는 dpr, 제2 지수는 dqr, 제1 랜덤 기준값은 Spr, 제2 랜덤 기준값은 Sqr, 제3 랜덤 기준값은 Sp, 제4 랜덤 기준값은 Sq, 서명값은 S인 것으로 하여 설명한다.
도 1에 도시된 바와 같이, 본 발명에 적용되는 CRT 기반 RSA 암호 알고리즘은 전송하고자 하는 메시지 m과, 복수의 키, 즉, d, 소수 p와 q, 그리고 q-1과 p를 모듈로 연산한 z를 입력 받고, 랜덤하게 선택된 작은 소수 r을 입력 받는다.
이후, d와 (p-1)*(r-1)을 모듈로 연산하여 dpr값을 산출하고, 이때 이용된 p 및 r 값을 push 함수를 통해 XOR 연산하여 총 누적값을 계산한다. 또한, d와 (q-1)*(r-1)를 모듈로 연산하여 dqr값을 산출하고, 이때 이용된 q 값을 push 함수를 통해 XOR 연산하여 총 누적값을 계산한다.
여기서, p, q, 및 r 값에 대한 총 누적값을 계산하기 위한 push 함수는 도 2를 참조하도록 한다.
도 2는 본 발명에 적용되는 CRT 기반 RSA 암호 알고리즘의 push 함수 알고리즘을 나타낸 것으로, 상세하게는 push(x, y) 함수에 대한 알고리즘을 나타낸 것이다.
도 2에 도시된 바와 같이, push(x, y) 함수는 x와 y를 XOR(eXclusive OR) 연산하여 sum에 누적시키고, 이때 집합 W는 sum에 누적된 변수값들을 원소로 갖는다.
따라서, 도 1에 도시된 알고리즘에서 3열의 push(p, r)이 실행됨에 따라 sum=p
Figure 112012055022191-pat00001
r이 되고, W={p, r}이 된다. 또한, 도 1의 5열에 도시된 push(q)가 실행됨에 따라 sum=p
Figure 112012055022191-pat00002
q
Figure 112012055022191-pat00003
r이 되고, W={p, q, r}이 된다.
다시, 도 1에서 5열의 push 함수를 실행한 이후, pop(p)와 pop(r)을 곱한 값으로부터 p'를 산출하고, pop(q)와 pop(r)을 곱한 값으로부터 q'를 산출한다.
여기서, pop 함수에 대한 세부 알고리즘은 도 3을 참조하도록 한다.
도 3은 본 발명에 적용되는 CRT 기반 RSA 암호 알고리즘의 pop 함수 알고리즘을 나타낸 것으로, 상세하게는 pop(x) 함수에 대한 세부 알고리즘을 나타낸 것이다.
도 3에 도시된 바와 같이, pop(x)는 먼저 도 2의 집합 W에서 x 원소를 제거한 나머지 원소들에 대한 XOR 연산을 수행하여 T_sum 값을 산출한다. 이후, 도 2에서 산출된 sum과 도 3에서 산출된 T_sum을 XOR 연산하여 Result 값을 산출하고, 다시 T_sum과 Result를 XOR 연산하여 Sum 값을 산출한다.
따라서, 도 1에 도시된 알고리즘에서 6열의 pop(p)에 의해 T={q, r}이 되므로 T_sum=q
Figure 112012055022191-pat00004
r이 되고, 도 2에서 누적된 sum과 T_sum을 XOR 연산한 Result=(p
Figure 112012055022191-pat00005
q
Figure 112012055022191-pat00006
r)
Figure 112012055022191-pat00007
(q
Figure 112012055022191-pat00008
r)=p가 되므로, 최종적으로 Sum=p
Figure 112012055022191-pat00009
q
Figure 112012055022191-pat00010
r이 된다.
반면, 도 2에서 p 값을 불러오기 위해 메모리에 접근하는 중 Bellcore 공격에 의해 오류가 발생하여 p*값이 되면, push되는 값은 p가 아니라 p*가 된다. 이 경우, sum에 누적되는 값은 p*
Figure 112012055022191-pat00011
q
Figure 112012055022191-pat00012
r이 된다. 이후, 도 3에서 q를 pop하는 과정에서 Result(q)=(p*
Figure 112012055022191-pat00013
q
Figure 112012055022191-pat00014
r)
Figure 112012055022191-pat00015
(p
Figure 112012055022191-pat00016
r)=(p*
Figure 112012055022191-pat00017
p
Figure 112012055022191-pat00018
q)가 되므로, 결국 Result(q)≠q가 되고, 최종적으로 Sum=p*
Figure 112012055022191-pat00019
q
Figure 112012055022191-pat00020
r이 된다.
즉, p에 주입된 오류가 p 뿐만 아니라 q의 값에도 영향을 미치게 되어 오류가 확산됨을 알 수 있다. 상기와 같은 방식으로 r 값에도 오류가 확산될 수 있다.
이와 같이, p에 주입된 오류가 q와 r에도 확산되게 되면, 8열에서
Figure 112012055022191-pat00021
과 p'를 모듈로 연산하여 산출한 Spr과, 9열에서
Figure 112012055022191-pat00022
과 q'를 모듈로 연산하여 산출한 Sqr값에 오류값이 적용되어, 10열에서 Spr과 pop(r)를 모듈로 연산한 값은 Sqr과 pop(r)를 모듈로 연산한 값과 다르게 되므로, 10열에서 1차 오류를 검출하게 된다. 이때, 오류를 검출하는 확률은 r의 길이에 비례한다.
여기서, r은 랜덤 수이므로 그 길이를 가변시킬 수 있지만, 큰 r을 선택하게 되면 감지할 수 없는 오류가 존재할 확률이 줄어들지만 보다 큰 수에 대해서 모듈로 연산을 취해야 하므로 그만큼 연산의 효율성이 떨어지게 된다. 반대로 작은 r을 선택하면 연산의 효율성이 상대적으로 증가 하지만, 감지할 수 없는 오류가 존재할 경우가 확률적으로 높아지므로 안전성이 위협받을 수 있다. 따라서, 충분한 안전성을 제공하기 위해서는 r의 비트수가 적어도 32비트가 되어야 한다.
이후, 11열에서는 Spr과 pop(p)를 모듈로 연산하여 Sp를 산출하고, 12열에서는 Sqr과 pop(q)를 모듈로 연산하여 Sq를 산출한다. 이때, 11열과 12열에서 계산한 Sp, Sq를 Garner의 CRT 재조합(recombination) 식에 적용하여 서명값 S를 산출한다.
CRT 재조합에 의해 서명값 S를 산출하는 식은 아래 [수학식 1]과 같다.
Figure 112012055022191-pat00023
상기 [수학식 1]에서와 같이, 서명값 S는 Sp에서 Sq를 차감한 값과 p를 모듈로 연산한 값과, q-1과 p를 모듈로 연산한 값을 곱하여 산출된 값에 q를 곱한 후, Sq를 더하여 산출할 수 있다.
한편, 도 1의 14열에서는 13열에서 산출된 서명값 S와, Sp 또는 Sq와의 관계를 통해 13열에서의 CRT 재조합 중에 주입된 오류를 검출한다. 즉, 서명값 S와 p를 모듈로 연산한 값이 Spr과 p를 모듈로 연산한 값과 서로 다르거나, 서명값 S와 q를 모듈로 연산한 값이 Sqr과 q를 모듈로 연산한 값과 서로 다르면 오류가 주입된 것으로 판단하여, 이를 검출한다.
또한, 도 1의 11열에서 pop 함수 내부의 연산 도중 오류가 주입이 되면 모듈로 연산에 사용되는 p값이 왜곡될 뿐만 아니라, 12열에서 q값을 pop 할 때도 역시 왜곡된 q를 계산하게 되어 오류가 확산되게 된다. 이 경우에는 Bellcore 공격이 적용되지 않는다.
상기와 같이, 11열에서 pop 함수 내부의 연산 도중 오류가 주입이 되면, 오류 확산으로 인해 15열에서 산출된 check≠0이 되므로, 16열에서 최종적으로 오류를 검출하게 된다.
도 4 내지 도 6은 본 발명에 따른 오류 주입 공격에 안전한 CRT 기반 RSA 암호 알고리즘을 이용한 디지털 서명 방법에 대한 동작 흐름을 도시한 순서도이다.
먼저, 도 4에 도시된 바와 같이, 본 발명에 따른 CRT 기반 RSA 암호 알고리즘을 이용한 오류 주입 공격 검출 방법은, 복수의 인자, 즉, 전송하고자 하는 메시지 m과, d, 소수 p와 q, q-1과 p를 모듈로 연산한 z를 키로 입력 받고, 랜덤하게 선택된 작은 소수 r을 입력 받는다(S100).
이후, 'S100' 과정에서 입력된 d, p, r을 이용하여 dpr값을 산출하고(S110), 이때 이용된 p, r 값을 push 함수를 통해 XOR 연산하여 sum에 누적한다(S120). 여기서, dpr값은 d와 (p-1)*(r-1)을 모듈로 연산하여 산출한다.
한편, 'S100' 과정에서 입력된 d, q, r을 이용하여 dqr값을 산출하고(S130), 이때 이용된 q 값을 push 함수를 통해 XOR 연산하여 sum에 누적한다(S140). 여기서, dqr값은 d와 (q-1)*(r-1)을 모듈로 연산하여 산출한다.
'S120' 및 'S140' 과정에서, p, q, 및 r 값에 대한 누적값을 계산하기 위한 push 함수는 도 2를 참조하도록 한다.
또한, pop 함수를 이용하여 p, q, r로부터 p' 및 q'를 산출한다(S150). 다시 말해, pop(p)와 pop(r)을 곱한 값으로부터 p'를 산출하고, pop(q)와 pop(r)을 곱한 값으로부터 q'를 산출한다. pop 함수에 대한 세부 알고리즘은 도 3을 참조하도록 한다.
여기서, pop(p)에 적용되는 p 값은 sum
Figure 112012055022191-pat00024
(q
Figure 112012055022191-pat00025
r)=(p
Figure 112012055022191-pat00026
q
Figure 112012055022191-pat00027
r)
Figure 112012055022191-pat00028
(q
Figure 112012055022191-pat00029
r)=p로부터 산출 가능하며, 이때 산출된 p 값은 pop 함수에서 누적값 Sum을 계산하는데 사용된다. 이때, r은 p, q와 길이가 다르기 때문에 길이를 맞추기 위하여 앞 부분을 zero-extension한다.
이후, 'S110'과정에서 산출된 dpr과 'S150' 과정에서 산출된 p'를 이용하여 Spr을 산출하고, 'S130' 과정에서 산출된 dqr과 'S150' 과정에서 산출된 q'를 이용하여 Spr을 산출한다(S160).
다시 말해, Spr
Figure 112012055022191-pat00030
과 p'를 모듈로 연산하여 산출하고, Sqr
Figure 112012055022191-pat00031
과 q'를 모듈로 연산하여 산출한다.
한편, 'S150' 과정에서 p'를 계산하기 위해 p 값을 불러오는 과정에서 오류가 주입되면, pop 함수에서 Sum에 누적되는 값은 p*
Figure 112012055022191-pat00032
q
Figure 112012055022191-pat00033
r이 되며, p에 주입된 오류는 q와 r로 확산된다.
일 예로서, p 값을 불러오기 위해 메모리에 접근하는 중 Bellcore 공격에 의해 오류가 발생하여 p*값이 되면, push되는 값은 p가 아니라 p*가 된다. 이 경우, sum에 누적되는 값은 p*
Figure 112012055022191-pat00034
q
Figure 112012055022191-pat00035
r이 되고, 이후 q를 pop하는 과정에서 Result(q)=(p*
Figure 112012055022191-pat00036
q
Figure 112012055022191-pat00037
r)
Figure 112012055022191-pat00038
(p
Figure 112012055022191-pat00039
r)=(p*
Figure 112012055022191-pat00040
p
Figure 112012055022191-pat00041
q)가 되므로, 결국 Result(q)≠q가 되고, 최종적으로 Sum=p*
Figure 112012055022191-pat00042
q
Figure 112012055022191-pat00043
r이 된다.
즉, 오류가 주입된 p*는 p 뿐만 아니라 q의 값에도 영향을 미치게 되어 오류가 확산됨을 알 수 있다.
따라서, p에 주입된 오류가 q와 r에도 확산되게 되면, 'S160' 과정에서 산출된 Spr과 Sqr값에도 오류값이 적용되므로, Spr과 Sqr값을 비교함으로써 1차 오류주입 공격을 검출할 수 있다(S170). 이때, Spr과 pop(r)를 모듈로 연산한 값이 Sqr과 pop(r)을 모듈로 연산한 값과 다르면, 오류가 주입된 것으로 판단하여, 오류를 검출하게 된다.
여기서, 오류를 검출하는 확률은 r의 길이에 비례한다. r은 랜덤 수이므로 그 길이를 가변시킬 수 있지만, 큰 r을 선택하게 되면 감지할 수 없는 오류가 존재할 확률이 줄어들지만 보다 큰 수에 대해서 모듈로 연산을 취해야 하므로 그만큼 연산의 효율성이 떨어지게 된다. 반대로 작은 r을 선택하면 연산의 효율성이 상대적으로 증가 하지만, 감지할 수 없는 오류가 존재할 경우가 확률적으로 높아지므로 안전성이 위협받을 수 있다. 따라서, 충분한 안전성을 제공하기 위해서는 r의 비트수가 적어도 32비트가 되어야 한다.
'S170' 과정에서 오류가 검출되지 않았다면, 도 5의 'A' 이후 과정을 수행하도록 한다.
도 5에 도시된 바와 같이, 본 발명에 따른 오류 주입 공격에 안전한 CRT 기반 RSA 암호 알고리즘을 이용한 디지털 서명 방법은, 'S160' 과정에서 산출된 Spr, Sqr과 p, q 값을 이용하여 Sp, Sq를 산출한다.
다시 말해, Sp는 'S160' 과정에서 산출된 Spr과 pop(p)를 모듈로 연산하여 산출하고, Sq는 'S160' 과정에서 산출된 Sqr과 pop(q)를 모듈로 연산하여 산출한다.
이후, 'S200' 과정에서 산출된 Sp, Sq를 CRT 재조합하여 서명값 S를 산출한다(S210). 서명값 S는 Sp에서 Sq를 차감한 값과 p를 모듈로 연산한 값과, q-1과 p를 모듈로 연산한 값을 곱하여 산출된 값에 q를 곱한 후, Sq를 더하여 산출할 수 있다.
이때, 'S210' 과정에서 산출된 서명값 S와 'S200' 과정에서 산출된 Sp, Sq를 비교함으로써, 2차 오류 주입 공격을 검출할 수 있다(S220). 즉, 서명값 S와 p를 모듈로 연산한 값이 Spr과 p를 모듈로 연산한 값과 서로 다르거나, 서명값 S와 q를 모듈로 연산한 값이 Sqr과 q를 모듈로 연산한 값과 서로 다르면 오류가 주입된 것으로 판단하여, 이를 검출한다. 'S220' 과정에서는 서명값 S를 산출하는 과정에서 CRT 재조합 중에 주입된 오류를 검출한다.
이후, 도 6의 'B' 이후 과정을 수행하도록 한다.
도 6에 도시된 바와 같이, 본 발명에 따른 오류 주입 공격에 안전한 CRT 기반 RSA 암호 알고리즘을 이용한 디지털 서명 방법은, sum의 누적값을 통해 check 값을 산출하고(S300), 이때 산출된 check 값이 '0'이 되는지를 검사한다(S310). 이때, check 값이 0이 되는지 여부에 따라 3차 오류 주입 공격을 검출할 수 있다.
다시 말해, 정상적인 경우 sum=p
Figure 112012055022191-pat00044
q
Figure 112012055022191-pat00045
r이고 W={p, q, r}이므로, check=sum
Figure 112012055022191-pat00046
(p
Figure 112012055022191-pat00047
q
Figure 112012055022191-pat00048
r)=0이 된다.
한편, pop 함수 내부의 연산 도중 오류가 주입이 되면 모듈로 연산에 사용되는 p값이 왜곡될 뿐만 아니라, 12열에서 q값을 pop 할 때도 역시 왜곡된 q를 계산하게 되어 오류가 확산되게 된다. 즉, pop 함수 내부의 연산 도중 오류가 주입이 되면, 오류 확산으로 인해 check≠0이 되게 된다.
따라서, 'S310' 과정에서 check 값이 0이 아니면, 오류가 주입된 것으로 판단하여 이를 검출한다(S320).
한편, 상기와 같이 이루어지는 본 발명의 오류 주입 공격에 안전한 CRT 기반 RSA 암호 알고리즘을 이용한 디지털 서명 방법의 모든 단계들은, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다.
컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, CD-RW, 자기 테이프, 플로피디스크, HDD, 광 디스크, 광자기 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이에, 도 7에서는 상기의 기록매체가 적용된 오류 주입 공격에 안전한 CRT 기반 RSA 암호 알고리즘을 이용한 디지털 서명 장치에 대해 설명하고자 한다.
도 7에 도시된 바와 같이, 오류 주입 공격에 안전한 CRT 기반 RSA 암호 알고리즘을 이용한 디지털 서명 장치는, 제어부(10), 입력부(20), 출력부(30), 저장부(40), 통신부(50), 연산부(60), 비교부(70), 검사부(80), 및 오류 검출부(90)를 포함한다. 여기서, 제어부(10)는 오류 주입 공격 검출 장치의 각 부의 동작을 제어한다.
입력부(20)는 관리자로부터 CRT 기반 RSA 암호 알고리즘을 수행하기 위한 초기값 또는 키 값 등을 입력 받기 위한 수단으로, 복수의 인자, 즉, 전송하고자 하는 메시지 m과, d, 소수 p와 q, q-1과 p를 모듈로 연산한 z를 키로 입력 받고, 랜덤하게 선택된 작은 소수 r을 입력 받는다.
출력부(30)는 CRT 기반 RSA 암호 알고리즘 수행 결과로서 산출된 결과값을 출력하거나, CRT 기반 RSA 암호 알고리즘 수행 중 주입된 오류 검출 결과를 출력할 수 있다.
저장부(40)는 본 발명에 적용되는 CRT 기반 RSA 암호 알고리즘이 저장된다. 이때, 저장부(40)에 저장되는 CRT 기반 RSA 암호 알고리즘은 컴퓨터가 읽을 수 있는 코드로서 구현된다. 저장부(40)는 ROM, RAM, CD-ROM, CD-RW, 자기 테이프, 플로피디스크, HDD, 광 디스크, 광자기 저장장치 중 적어도 하나일 수 있으며, 네트워크로 연결된 컴퓨터 시스템일 수 있다.
통신부(50)는 외부의 수신 단말 또는 컴퓨터 시스템과 통신을 위한 통신 인터페이스를 제공한다. 이때, 통신부(50)를 통해 외부로부터 CRT 기반 RSA 암호 알고리즘을 수행하기 위한 초기값 또는 키 값 등을 수신할 수 있으며, CRT 기반 RSA 암호 알고리즘 수행 결과로서 산출된 결과값을 외부로 송신할 수 있다.
연산부(60)는 CRT 기반 RSA 암호 알고리즘을 수행하기 위한 초기값 또는 키 값이 입력되면, 저장부(40)에 저장된 CRT 기반 RSA 암호 알고리즘을 수행한다. 이때, 연산부(60)는 초기값 또는 키 값을 CRT 기반 RSA 암호 알고리즘에 적용하여, 도 1에 도시된 dpr, dqr, p', q', Spr, Sqr, Sp, Sq, 및 S 값들을 산출한다. 여기서, dpr, dqr, p', q', Spr, Sqr, Sp, Sq, 및 S 값들을 산출하는 방법에 대한 구체적인 예시는 앞에서 서술하였으므로 생략하도록 한다.
비교부(70)는 연산부(60)에서 CRT 기반 RSA 암호 알고리즘을 수행하는 동안 산출된 값들 중 정해진 값들을 비교한다.
일 예로서, 비교부(70)는, 도 1의 10열에서와 같이, Spr과 pop(r)를 모듈로 연산한 값과, Sqr과 pop(r)을 모듈로 연산한 값을 비교한다. 또한, 비교부(70)는, 도 1의 14열에서와 같이, S와 p를 모듈로 연산한 값과, Spr과 p를 모듈로 연산한 값을 비교한다. 또한, 비교부(70)는 S와 p를 모듈로 연산한 값과, Sqr과 q를 모듈로 연산한 값을 비교한다.
이때, 비교부(70)의 비교 결과는 오류 검출부(90)에서 오류를 검출하는데 이용된다.
검사부(80)는 CRT 기반 RSA 암호 알고리즘의 마지막 단계로서, 변수들의 총 누적값을 검사한다. 다시 말해, 검사부(80)는 p, q, r이 누적된 sum 값으로부터 check 값을 산출하여, 최종적으로 check 값이 '0'이 되는지 검사한다.
오류 검출부(90)는 비교부(70)의 비교 결과 및 검사부의 check 값 검사 결과로부터 오류 주입 공격을 검출한다.
일 예로서, 오류 검출부(90)는 Spr과 pop(r)를 모듈로 연산한 값이 Sqr과 pop(r)을 모듈로 연산한 값과 다르면 오류가 주입된 것으로 판단하여, 오류를 검출하게 된다. 또한, 오류 검출부(90)는 S와 p를 모듈로 연산한 값이 Spr과 p를 모듈로 연산한 값과 서로 다르거나, S와 p를 모듈로 연산한 값이 Sqr과 q를 모듈로 연산한 값과 서로 다르면 오류가 주입된 것으로 판단하여, 이를 검출한다. 또한, 오류 검출부(90)는 최종 검사 과정에서 산출된 check 값이 0이 아니면 오류가 주입된 것으로 판단하여, 이를 검출한다
이와 같이, 특정 값을 불러오는 과정에 주입된 오류나, pop 함수의 내부 연산 과정에서 주입된 오류, 또는 CRT 재조합 중에 주입된 오류는 특정 값, 예를 들어, p에만 영향을 미치는 것이 아니라, 그 외의 변수, 즉, q와 r에도 확산되어 영향을 미치게 되므로, 본 발명에 적용되는 CRT 기반 RSA 암호 알고리즘을 통해 오류를 쉽게 검출하는 것이 가능하게 된다.
이상과 같이 본 발명에 의한 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법 및 그 기록매체는 예시된 도면을 참조로 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않고, 기술사상이 보호되는 범위 이내에서 응용될 수 있다.
10: 제어부 20: 입력부
30: 출력부 40: 저장부
50: 통신부 60: 연산부
70: 비교부 80: 검사부
90: 오류 검출부

Claims (9)

  1. CRT 기반 RSA 암호 연산에 사용되는 서로 다른 제1 소수(p) 및 제2 소수(q) 이외에 랜덤하게 선택된 작은 소수인 랜덤수(r)를 입력 받는 단계;
    푸쉬 함수를 이용하여 상기 제1 소수, 제2 소수 및 랜덤수를 배타적 논리합(Exclusive OR) 연산하여 누적값을 산출하는 단계;
    상기 푸쉬 함수에 상응하는 팝 함수에 의하여 상기 누적값에 대한 배타적 논리합 연산에 의하여 상기 제1 소수, 제2 소수 및 랜덤수를 로드(load)하는 단계; 및
    로드된 상기 제1 소수 및 상기 제2 소수 각각을 이용한 모듈로 연산에 의해 CRT 기반 RSA 연산을 수행하는 단계를 포함하고,
    상기 제1 소수, 제2 소수 및 랜덤수 중 어느 하나를 로드하는 과정에서 발생한 오류는 상기 누적값을 통하여 상기 제1 소수, 제2 소수 및 랜덤수 중 다른 값들로 확산되어 상기 오류 주입 공격을 방지하는 것을 특징으로 하는 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법.
  2. 삭제
  3. 청구항 1에 있어서,
    로드된 상기 제1 소수 및 상기 제2 소수 각각에 로드된 상기 랜덤수를 곱한 제1 곱셈값 및 제2 곱셈값을 산출하고, 전송하고자 하는 메시지의 제1 지수승 및 상기 제1 곱셈값을 모듈로 연산하여 제1 랜덤 기준값 및 상기 메시지의 제2 지수승 및 상기 제2 곱셈값을 모듈로 연산하여 제2 랜덤 기준값을 산출하고 상기 제1 랜덤 기준값 및 상기 제2 랜덤 기준값을 이용하여 상기 제1 랜덤 기준값 및 상기 제2 랜덤 기준값 산출을 위한 연산중 발생한 오류를 감지하는 단계를 더 포함하는 것을 특징으로 하는 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법.
  4. 청구항 3에 있어서,
    상기 오류를 감지하는 단계는,
    상기 제1 랜덤 기준값과 로드된 상기 랜덤수를 모듈로 연산한 값과, 상기 제2 랜덤 기준값과 로드된 상기 랜덤수를 모듈로 연산한 값을 비교하여 두 값이 같지 않으면 상기 오류로 판단하는 것을 특징으로 하는 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법.
  5. 청구항 3에 있어서,
    로드된 상기 제1 소수 및 상기 제1 랜덤 기준값과 상기 제2 소수 및 상기 재2 랜덤 기준값을 각각 모듈로 연산하여 제3 랜덤 기준값 및 제4 랜덤 기준값을 산출하고, 상기 제3 랜덤 기준값 및 제4 랜덤 기준값을 이용하여 서명값 산출을 위한 연산 중 발생한 오류를 감지하는 단계를 더 포함하는 것을 특징으로 하는 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법.
  6. 청구항 5에 있어서,
    상기 서명값 산출을 위한 연산 중 발생한 오류를 감지하는 단계는,
    상기 서명값 및 상기 제1 소수를 모듈로 연산한 값과, 상기 제1 소수 및 상기 제1 랜덤 기준값을 모듈로 연산한 값이 서로 같지 않거나, 상기 서명값 및 상기 제2 소수를 모듈로 연산한 값과, 상기 제2 소수 및 상기 제2 랜덤 기준값을 모듈로 연산한 값이 서로 같지 않으면 상기 오류로 판단하는 것을 특징으로 하는 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법.
  7. 청구항 1에 있어서,
    상기 제1 소수, 제2 소수 및 랜덤수를 합한 값을 이용하여 상기 CRT 기반 RSA 연산 중 발생한 오류를 감지하는 단계를 더 포함하는 것을 특징으로 하는 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법.
  8. 청구항 1에 있어서,
    상기 랜덤수는,
    크기가 적어도 32비트인 것을 특징으로 하는 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법.
  9. 청구항 1, 청구항 3 내지 청구항 8 중 적어도 어느 한 항의 CRT-RSA 암호 연산에서의 오류 주입 공격 방지 방법을 구현하기 위한 프로그램이 기록된 기록매체.
KR1020120074949A 2012-02-10 2012-07-10 Crt-rsa 암호 연산에서의 오류 주입 공격 방지 방법 및 그 기록매체 KR101558201B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/585,731 US8861718B2 (en) 2012-02-10 2012-08-14 Method of preventing fault-injection attacks on Chinese Remainder Theorem-Rivest Shamir Adleman cryptographic operations and recording medium for storing program implementing the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120013776 2012-02-10
KR20120013776 2012-02-10

Publications (2)

Publication Number Publication Date
KR20130092353A KR20130092353A (ko) 2013-08-20
KR101558201B1 true KR101558201B1 (ko) 2015-10-12

Family

ID=49217216

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120074949A KR101558201B1 (ko) 2012-02-10 2012-07-10 Crt-rsa 암호 연산에서의 오류 주입 공격 방지 방법 및 그 기록매체

Country Status (1)

Country Link
KR (1) KR101558201B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100431047B1 (ko) 2002-02-26 2004-05-12 주홍정보통신주식회사 Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100431047B1 (ko) 2002-02-26 2004-05-12 주홍정보통신주식회사 Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치

Also Published As

Publication number Publication date
KR20130092353A (ko) 2013-08-20

Similar Documents

Publication Publication Date Title
US8861718B2 (en) Method of preventing fault-injection attacks on Chinese Remainder Theorem-Rivest Shamir Adleman cryptographic operations and recording medium for storing program implementing the same
US8850221B2 (en) Protection against side channel attacks with an integrity check
US9571289B2 (en) Methods and systems for glitch-resistant cryptographic signing
EP1327932B1 (en) Encryption apparatus and method with side-channel attack resistance
US11139971B2 (en) Conducting a cryptographic operation
EP2523098B1 (en) Finite field crytographic arithmetic resistant to fault attacks
US9654290B2 (en) Integrity verification of cryptographic key pairs
JP2011530093A (ja) 累乗法による暗号化を保護する解決策
EP3188401B1 (en) Method and system for protecting a cryptographic operation
EP1347596B1 (en) Digital signature methods and apparatus
KR101558201B1 (ko) Crt-rsa 암호 연산에서의 오류 주입 공격 방지 방법 및 그 기록매체
CN110495133B (zh) 用于生成用于密码应用的素数的方法
US11606195B2 (en) Method of verifying integrity of a pair of cryptographic keys and cryptographic device
KR100954844B1 (ko) 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체
US10354065B2 (en) Method for protecting data and data processing device
KR20200107621A (ko) 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법
EP3166013B1 (en) Modular exponentiation using randomized addition chains
US9755829B2 (en) Generation of cryptographic keys
US9680645B2 (en) Integrity verification of cryptographic key pairs
KR100953716B1 (ko) Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
KR101112570B1 (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
KR101341810B1 (ko) Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee