KR20100039048A - 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체 - Google Patents

오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체 Download PDF

Info

Publication number
KR20100039048A
KR20100039048A KR1020080098252A KR20080098252A KR20100039048A KR 20100039048 A KR20100039048 A KR 20100039048A KR 1020080098252 A KR1020080098252 A KR 1020080098252A KR 20080098252 A KR20080098252 A KR 20080098252A KR 20100039048 A KR20100039048 A KR 20100039048A
Authority
KR
South Korea
Prior art keywords
crt
data pair
value
digital signature
remind
Prior art date
Application number
KR1020080098252A
Other languages
English (en)
Other versions
KR100954844B1 (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 KR1020080098252A priority Critical patent/KR100954844B1/ko
Publication of KR20100039048A publication Critical patent/KR20100039048A/ko
Application granted granted Critical
Publication of KR100954844B1 publication Critical patent/KR100954844B1/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7271Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체가 개시된다.
본 발명에 따른 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법은
Figure 112008069998856-PAT00001
를 만족하는 서로 다른 소수 두
Figure 112008069998856-PAT00002
를 비밀키로, euler totient 함수
Figure 112008069998856-PAT00003
과 서로 소인 소정의 정수
Figure 112008069998856-PAT00004
를 공개키로,
Figure 112008069998856-PAT00005
을 만족하는
Figure 112008069998856-PAT00006
를 비밀키로 이용하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명방법에 있어서, 인증된 수신자에게 전송하고자 하는 메시지
Figure 112008069998856-PAT00007
, 상기 서로 다른 두 소수
Figure 112008069998856-PAT00008
, 상기 비밀키
Figure 112008069998856-PAT00009
Figure 112008069998856-PAT00010
로 모듈러 연산한
Figure 112008069998856-PAT00011
, 상기
Figure 112008069998856-PAT00012
Figure 112008069998856-PAT00013
로 모듈러 연산한
Figure 112008069998856-PAT00014
, 상기
Figure 112008069998856-PAT00015
Figure 112008069998856-PAT00016
의 합인
Figure 112008069998856-PAT00017
,
Figure 112008069998856-PAT00018
으로 연산되는
Figure 112008069998856-PAT00019
, 암호화하고자 하는 송신자에 의해 랜덤하게 선택된 제 1 정수
Figure 112008069998856-PAT00020
, 제 2 정수
Figure 112008069998856-PAT00021
, 및 상기 제 2 정수
Figure 112008069998856-PAT00022
에 의해
Figure 112008069998856-PAT00023
의 연산으로 생성되는
Figure 112008069998856-PAT00024
를 포함하는 복수 개의 암호화 인자를 수신하는 단계; 상기 복수 개의 암호화 인자 중에서 선택된 제 1 데이터 집합
Figure 112008069998856-PAT00025
을 이용하여 제 1 데이터 쌍
Figure 112008069998856-PAT00026
을 생성하는 단계; 상기 수신된 복수 개의 암호화 인자 및 상기 제 1 데이터 쌍 중에서 선택된 제 2 데이터 집합
Figure 112008069998856-PAT00027
을 이용하여 제 2 데이터 쌍
Figure 112008069998856-PAT00028
을 생성하는 단계; 상기 제 1 데이터 쌍의 와 상기 제 2 데이터 쌍의
Figure 112008069998856-PAT00030
를 입력값으로 중국인의 나머지 정리를 이용하여 제 1 중간값
Figure 112008069998856-PAT00031
를 산출하는 단계; 상기 제 1 데이터 쌍의
Figure 112008069998856-PAT00032
와 상기 제 2 데이터 쌍의
Figure 112008069998856-PAT00033
를 입력값으로 중국인의 나머지 정리를 이용하여 제 2 중간값
Figure 112008069998856-PAT00034
를 산출하는 단계; 상기
Figure 112008069998856-PAT00035
의 비트열의 길이와 상기
Figure 112008069998856-PAT00036
의 비트열의 길이에 따라 결정된 제로 비트 생성 인자
Figure 112008069998856-PAT00037
, 상기
Figure 112008069998856-PAT00038
의 보수
Figure 112008069998856-PAT00039
, 상기
Figure 112008069998856-PAT00040
Figure 112008069998856-PAT00041
를 이용하여 중간 연산자
Figure 112008069998856-PAT00042
를 생성하는 단계; 상기
Figure 112008069998856-PAT00043
Figure 112008069998856-PAT00044
의 논리곱 연산을 수행하여 상기 제 1 중간값
Figure 112008069998856-PAT00045
를 갱신하는 단계; 상기
Figure 112008069998856-PAT00046
Figure 112008069998856-PAT00047
로 나눈값과 상기
Figure 112008069998856-PAT00048
를 논리곱 연산을 수행하여 상기 제 2 중간값
Figure 112008069998856-PAT00049
를 갱신하는 단계; 및 상기
Figure 112008069998856-PAT00050
,
Figure 112008069998856-PAT00051
Figure 112008069998856-PAT00052
에 곱하여 최종 서명값을 생성하는 단계를 포함한다.
본 발명에 의하면, 오류 주입시 오류 확산을 유발시키는 지수승 연산 방법을 제공할 수 있으며, 대표적인 오류 주입 공격인 SPA, DPA, FA에 모두 안전한 서명 생성 기법을 제공하여 암호화의 신뢰성 및 안전성을 제공할 수 있으며, 대표적인 CRT-RSA 암호화 알고리즘에 비하여 연산량을 감소시켜, 보다 빠른 연산 처리 속도를 제공할 수 있는 효과가 있다.

Description

오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체{Method and Apparatus of digital signature using CRT-RSA modula exponentiation algorithm against fault attacks, and Recording medium using it}
본 발명은 암호화 알고리즘에 관한 것으로서, 특히 다양한 오류 주입 공격에 대하여 암호화된 서명의 안전성을 보장할 수 있으면서도 빠른 연산 속도를 제공할 수 있는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체에 관한 것이다.
정보화 사회의 도래와 함께 암호 알고리즘 및 암호 프로토콜을 이용한 정보의 보호는 그 중요성을 더해가고 있다. 이러한 암호 알고리즘 중에서 공개키 암호 알고리즘은 개선된 암호화 표준(Advanced Encryption Standard:AES)을 포함하는 비밀키 암호 알고리즘의 단점인 키 분배 문제, 전자 서명 문제 등을 해결하면서 인터넷이나 금융 망과 같은 여러 분야의 응용에 빠르게 적용이 되어 가고 있다.
전송되는 내용을 암호화하여 전송하는 방식에는 대칭키 암호화 방식과 공개키 암호화 방식이 있고, 공개키 암호화 방식 중에서 현재 인터넷이나 금융계 중에 서 표준으로 선택되어 널리 사용되고 있는 방식으로는 RSA(Rivest Shamir Adleman) 공개키 암호화 방식이 있다.
RSA 공개키 암호화 방식은 Rivest, Shamir 및 Adleman에 의해 제안된 방식으로 암호화문에 따른 데이터의 크기가 커질수록 소인수 분해가 어렵다는 점에 그 안전도의 기반을 두고 있다.
한편, 1996년 Kocher에 의하여 부채널 공격이 소개된 후, 내장형 장치(embedded device)의 암호 알고리즘에 대한 다양한 공격 방법이 소개되었다. 수동적인 공격 방법으로 분류되는 부채널 공격은 공격자가 알고리즘 수행 시간, 알고리즘의 동작 중에 사용되는 전력량, 그리고 전자파를 이용하여 공격하며 이를 각 시간 공격(Timing Attack:TA), 단순 전력 분석(Simple Power Analysis:SPA), 차분 전력 분석(Differential Power Analysis:DPA), 전자파 분석(Electro-Magnetic Analysis:EMA)이라고 한다.
능동적인 공격은 변형된 외부 클럭을 주입하거나, 온도를 변화시키거나 장치에 X-ray와 같은 레이저를 이용하여 공격하며, 이와 같이 능동적인 공격 방법을 오류 주입 공격(Fault Attack:FA)이라고 한다.
1996년 Bellcore에 의해 중국인의 나머지 정리(Chinese Remainder Theorem:CRT)를 이용한 RSA 암호 시스템(CRT-RSA)에서의 오류 주입 공격 방법이 제시된 후, 최근 DES, RSA, ElGamal, ECC, AES 등 다양한 암호 알고리즘이 오류 주입 공격 방법에 의해 공격되었다.
한편, CRT-RSA에서의 오류 주입 공격 방법에 대해서 스마트 카드의 사용이 증가하면서 효율적인 부채널 공격과 오류 주입 공격에 안전한 대응 방법이 요구되고, 스마트 카드와 같은 내장형 장치에는 연산 능력과 메모리가 제한적이기 때문에 적은 메모리와 연산량을 사용하는 효율적인 대응 방법이 요구되며 이에 대한 연구가 많이 진행되었다.
최근 2005년 Giraud가 처음으로 전력 분석 공격 방법 중 하나인 단순 전력 공격 분석과 오류 주입 공격에 안전한 방법을 제안하였다.
Giraud 방법에서의 지수승 알고리즘은 단순 전력 분석과 오류 주입 공격에 안전한 Montgomery Ladder 방법을 이용하여 연산되고, 개인키만을 이용하여 오류 주입을 확인하게 된다. 따라서 개인키 만을 사용할 수 있는 자바 카드(Java card)의 공개키 환경에서도 안전하게 사용될 수 있다.
전술한 바와 같이, RSA 공개키 암호화 방식에서는 일반 공개키 암호화 방식에서와 같이 일반인도 알 수 있는 공개키와 암호화를 시키는 본인만이 알 수 있는 비밀키가 있다.
상기 CRT-RSA 암호화에 방식에서의 오류 주입 공격을 소개하기로 한다.
개인키
Figure 112008069998856-PAT00054
, 및 메시지
Figure 112008069998856-PAT00055
에 대한 RSA 서명값
Figure 112008069998856-PAT00056
Figure 112008069998856-PAT00057
이다. 여기서
Figure 112008069998856-PAT00058
은 공개 모듈라값이고, 비밀값인 큰 소수
Figure 112008069998856-PAT00059
Figure 112008069998856-PAT00060
의 곱으로 연산된다.
한편, 암호화 표준에서는 RSA 서명 생성과정의 속도를 향상하기 위하여 중국인의 나머지 정리(Chinese Remainder Theorem:CRT)를 이용한 RSA 암호 시스템(CRT-RSA)을 사용하기를 권고 하고 있다.
도 1에 따른 알고리즘 1에서 단계 3을
Figure 112008069998856-PAT00061
로 표기하고,
Figure 112008069998856-PAT00062
이고,
Figure 112008069998856-PAT00064
Figure 112008069998856-PAT00065
이 된다.
상기 도 1에 의하면, 서명값
Figure 112008069998856-PAT00066
의 생성 속도는 향상되나, 최근 연구 논문들에 의하여 오류 주입 공격에 안전하지 않다는 것이 알려졌다. 여기서, 오류 주입 공격을 상술하기 전에 기호를 정의하기로 한다.
첫 번째로, 연산의 중간값
Figure 112008069998856-PAT00067
에 오류
Figure 112008069998856-PAT00068
가 주입된 경우를
Figure 112008069998856-PAT00069
라고 표기하고, 이를 하기의 수학식 1로 정의한다.
Figure 112008069998856-PAT00070
따라서, 상기 수학식 1에 의하여
Figure 112008069998856-PAT00071
을 만족한다.
한편, CRT-RSA의 오류 주입 공격시의 중간값들도 하기와 같이 표현된다.
상기 표 1의 알고리즘 1에서 단계 1에서 오류가 주입된 제 1 중간 결과값은
Figure 112008069998856-PAT00072
이고, 단계 2의 중간 결과값은
Figure 112008069998856-PAT00073
이며, 오류가 주입된 CRT 연산 결과값
Figure 112008069998856-PAT00074
Figure 112008069998856-PAT00075
에 의해 연산된다. 여기서,
Figure 112008069998856-PAT00076
을 연산하면, 비밀값인
Figure 112008069998856-PAT00077
를 얻을 수 있다.
이러한 공격 방법이 소개된 후, 샤미르(Shamir)가 CRT-RSA 암호 시스템에 대 한 오류 주입 공격에 대한 대응 방법을 제안하였다. 샤미르가 제안하는 방법은 32비트 정도의 랜덤한 값
Figure 112008069998856-PAT00078
를 선택한 후에
Figure 112008069998856-PAT00079
,
Figure 112008069998856-PAT00080
을 연ㅅ산하고, CRT 연산 전에
Figure 112008069998856-PAT00081
을 만족하는지를 확인하는데,
Figure 112008069998856-PAT00082
또는
Figure 112008069998856-PAT00083
에서 오류가 발생하였을 경우에는
Figure 112008069998856-PAT00084
의 연산 단계를 통과하지 못하기 때문에 오류 주입 여부를 확인할 수 있다.
이하는, 오류 주입의 대응 방법으로 ewkf알려진 대표적인 CRT-RSA 알고리즘을 살펴본다. 기존의 방법들은 비교 연산을 사용하는 방법과 비교 연산을 사용하지 않는 방법으로 나눌 수 있다.
우선, 비교 연산을 사용하는 대응 방법을 살펴보기로 한다.
이는 Giraud의 방법으로, SPA에 안전한 몽고메리 래더(Montgomery ladder) 지수승 연산 방법과 두 번의 CRT 연산을 이용하여
Figure 112008069998856-PAT00085
Figure 112008069998856-PAT00086
을 연산하고,
Figure 112008069998856-PAT00087
가 되는 것과 나머지 메모리 공간의 오류주입을 확인하여 결과를 출력하게 된다.
한편,
Figure 112008069998856-PAT00088
의 값은
Figure 112008069998856-PAT00089
로 정의하기로 한다.
그 다음은, BNP에 의한 방법으로, BNP 방법은 지수승 연산에서 오류가 주입되지 않았을 경우의 각 메모리 공간의 값이
Figure 112008069998856-PAT00090
가 되는 것을 이용하여
Figure 112008069998856-PAT00091
이 되는 것을 확인하여 결과값을 출력하게 된다.
이 방법 외에도 대부분의 CRT-RSA 알고리즘의 대응 방법이 오류 확인을 비교 연산을 통하여 사용한다.
하기는 비교 연산을 사용하지 않는 오류 주입에 대한 대응 방법에 대한 상술이다.
우선, 옌(Yen)의 방법으로, 이는
Figure 112008069998856-PAT00092
의 추가적인 메모리 공간을 이용하여 비교 연산을 사용하지 않고, 이외의 메모리에 오류가 발생하였을 경우, 오류 확산이라는 방법을 통하여 오류가 발생된 출력 값을 가지고는 비밀 정보를 알 수 없게 하는 방법이다.
이와 같은 기존의 CRT-RSA 대응 방법은 아래와 같이 크게 3 단계의 연산 과정으로 구분할 수 있다.
첫 번째는
Figure 112008069998856-PAT00093
Figure 112008069998856-PAT00094
의 연산 과정이고, 두 번째는
Figure 112008069998856-PAT00095
의 연산 과정이고, 세 번째는 오류 주입의 여부 확인 과정이다.
각 단계마다 다양한 오류주입 공격이 가능하므로 안전한 CRT-RSA 알고리즘을 설계하기 위해서는 각 단계마다 다양한 오류 주입의 공격에 모두 안전하여야 한다.
CRT-RSA 암호화 과정에서 고려하는 하드웨어 오류 주입 공격 방법은 아래와 같다.
첫 번째는, 데이터 랜덤화(Data Randomization)에 관한 것으로, 연산에 필요한 데이터를 랜덤 값으로 오류를 주입하는 공격방법이다. 이 때, 공격자는 랜덤값을 알 수 없고, 데이터가 저장되어 있는 메모리 공간에 오류를 주입하여 공격자는 지속적 오류와 메모리를 참조할 경우의 오류를 발생하는 일시적 오류로 나눌 수 있다.
두 번째는, 데이터 리셋(Resetting Data)에 관한 것으로, 공격자가 알 수 없는 랜덤으로 데이터를 변화하는 데이터 랜덤화와는 달리 데이터의 각 비트를 '0' 또는 '1'로 데이터를 리셋하는 공격방법이다.
세 번째는, 옵코드 변경(opcode Modifying)에 관한 것으로, 수행하는 명령어를 스킵하여 오류가 주입된 서명값을 출력하도록 함으로써 비밀 정보를 알아낸다
최초, 오류 주입 공격이 개시되었을 경우에는 한 번의 오류 주입의 공격만 고려하였지만, 현재 실험을 통하여 두 번의 서로 다른 연산에 오류가 주입되는 것까지 고려하게 된다.
예를 들어, 한번의 공격에서 특정 메모리에는 랜덤하게 오류가 주입되고, 다른 메모리에는 '0'으로 리셋되는 경우를 고려하게 된다
각각의 오류주입 공격을 통하여 기존 대응 방법에 대한 안전성 분석은 아래와 같다.
우선, ABFHS, Ciet, Gir명 BNP의 경우는 3번째 단계인 오류 주입 확인 과정 을 수행하기 위하여 비료 연산을 수행하게 된다. 이 경우는 비교연산으로 인한 옵코드 변형(modifying opcode) 공격이 가능하다.
비교 연산의 안전성을 살펴보면, 실제로 비교 연산(a=b)의 연산 과정은 c=a-b의 단계와 c=0 인지를 확인하는 두 단계의 과정으로 나눌 수 있다. 만약, 공격자가 하기와 같은 두 개의 오류를 CRT 기반의 RSA 서명 생성 과정에 주입하게 되면 공격자는 비밀 정보를 알 수 있다.
첫 번째 오류는 서명 값을 생성하는 중간 과정에서 발생하는 오류이다.
그리고, 두 번째 오류는 c=0을 확인하는 과정에 주입하여, c=0을 확인하는 과정을 건너뛰게 하는 것이다.
종래 연구에서 실험을 통하여 두 번째 오류 주입이 가능함이 확인되었고, 비교 연산을 이용한 알고리즘의 경우, 첫 번째 오류 확인을 비교 연산을 통하여 확인하게 되는데, 두 번째 오류 과정을 통하여 첫 번째 오류가 무조건 통과하게 되므로 공격자는 비밀 정보를 얻을 수 있게 된다.
한편, ABFHS, Yen, BNP의 경우에는 특정 메모리에 랜덤하게 오류가 주입된 경우
Figure 112008069998856-PAT00096
또는
Figure 112008069998856-PAT00097
의 값을 알 수 있게 된다.
예를 들어, 도 2의 Yen의 알고리즘에서
Figure 112008069998856-PAT00098
,
Figure 112008069998856-PAT00099
의 경우에는 공격자는
Figure 112008069998856-PAT00100
또는
Figure 112008069998856-PAT00101
의 값을 알 수 있게 된다.
다시 말하면, 특정 메모리가
Figure 112008069998856-PAT00102
또는
Figure 112008069998856-PAT00103
연산에 모두 사용되지 않아서, 오 류가 주입된 경우에 gcd 연산을 통하여 비밀값을 알 수 있게 된다.
이는, 도 2의 단계 3에서,
Figure 112008069998856-PAT00104
이므로, 서명값은 하기의 수학식 2와 같이 생성된다.
Figure 112008069998856-PAT00105
따라서,
Figure 112008069998856-PAT00106
를 만족하게 된다.
그러므로,
Figure 112008069998856-PAT00107
값을 사용하기 위하여 메모리에 접근할 경우 발생한 오류나
Figure 112008069998856-PAT00108
값을 연산할 때 발생하는 오류의 경우에는 안전하지 않다.
한편, Abid의 경우에는 특정 메모리가 '0'으로 리셋 되었을 경우, 공격자는 비밀 정보를 알 수 있다.
Abid의 대응 방법에서는 중군 연산에 오류가 주입되었음을 확인하기 위하여 하기의 수학식 3과 같은 추가적인 연산을 이용한다.
Figure 112008069998856-PAT00109
이때,
Figure 112008069998856-PAT00110
의 메모리 값이 '0'으로 리셋 되었을 경우,
Figure 112008069998856-PAT00111
또는
Figure 112008069998856-PAT00112
에 오류가 주입된 경우에 공격자의 공격이 가능하다.
가장 대표적인 CRT-RSA 알고리즘에 대한 안전성 분석 비교는 하기의 표 1과 같다. 왕거(Wanger)의 공격은 기술 논문에서 소개된 확률적인 공격 방법이다.
Figure 112008069998856-PAT00113
이와 같이, 종래의 대표적인 CRT-RSA 알고리즘은 데이터 랜덤화, 데이터 리셋, 옵코드의 변경, 왕거의 공격에 안전하지 않아, 암호화에 대한 신뢰도 및 안전성을 보장할 수 없다는 치명적인 문제점을 안고 있다.
따라서, 본 발명이 해결하고자 하는 첫 번째 과제는 대표적인 오류주입에 따른 데이터 랜덤화, 데이터 리셋, 옵코드의 변경, 왕거의 공격에 안전하면서도, 암호화 연산의 처리 속도를 향상시킬 수 있는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 두 번째 과제는 상기 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법을 적용한 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치를 제공하는 것이다.
그리고, 본 발명이 해결하고자 하는 세 번째 과제는 상기 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 기록매체를 제공하는 것이다.
상기 첫 번째 과제를 해결하기 위하여 본 발명은,
Figure 112008069998856-PAT00114
를 만족하는 서로 다른 소수 두
Figure 112008069998856-PAT00115
를 비밀키로, euler totient 함수
Figure 112008069998856-PAT00116
과 서로 소인 소정의 정수
Figure 112008069998856-PAT00117
를 공개키로,
Figure 112008069998856-PAT00118
을 만족하는
Figure 112008069998856-PAT00119
를 비밀키로 이용하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법에 있어서, 인증된 수신자에게 전송하고자 하 는 메시지
Figure 112008069998856-PAT00120
, 상기 서로 다른 두 소수
Figure 112008069998856-PAT00121
, 상기 비밀키
Figure 112008069998856-PAT00122
Figure 112008069998856-PAT00123
로 모듈러 연산한
Figure 112008069998856-PAT00124
, 상기
Figure 112008069998856-PAT00125
Figure 112008069998856-PAT00126
로 모듈러 연산한
Figure 112008069998856-PAT00127
, 상기
Figure 112008069998856-PAT00128
Figure 112008069998856-PAT00129
의 합인
Figure 112008069998856-PAT00130
,
Figure 112008069998856-PAT00131
으로 연산되는
Figure 112008069998856-PAT00132
, 암호화하고자 하는 송신자에 의해 랜덤하게 선택된 제 1 정수
Figure 112008069998856-PAT00133
, 제 2 정수
Figure 112008069998856-PAT00134
, 및 상기 제 2 정수
Figure 112008069998856-PAT00135
에 의해
Figure 112008069998856-PAT00136
의 연산으로 생성되는
Figure 112008069998856-PAT00137
를 포함하는 복수 개의 암호화 인자를 수신하는 단계; 상기 복수 개의 암호화 인자 중에서 선택된 제 1 데이터 집합
Figure 112008069998856-PAT00138
을 이용하여 제 1 데이터 쌍
Figure 112008069998856-PAT00139
을 생성하는 단계; 상기 수신된 복수 개의 암호화 인자 및 상기 제 1 데이터 쌍 중에서 선택된 제 2 데이터 집합
Figure 112008069998856-PAT00140
을 이용하여 제 2 데이터 쌍
Figure 112008069998856-PAT00141
을 생성하는 단계; 상기 제 1 데이터 쌍의
Figure 112008069998856-PAT00142
와 상기 제 2 데이터 쌍의
Figure 112008069998856-PAT00143
를 입력값으로 중국인의 나머지 정리를 이용하여 제 1 중간값
Figure 112008069998856-PAT00144
를 산출하는 단계; 상기 제 1 데이터 쌍의
Figure 112008069998856-PAT00145
와 상기 제 2 데이터 쌍의
Figure 112008069998856-PAT00146
를 입력값으로 중국인의 나머지 정리를 이용하여 제 2 중간값
Figure 112008069998856-PAT00147
를 산출하는 단계; 상기
Figure 112008069998856-PAT00148
의 비트열의 길이와 상기
Figure 112008069998856-PAT00149
의 비트열의 길이에 따라 결정된 제로 비트 생성 인자
Figure 112008069998856-PAT00150
, 상기
Figure 112008069998856-PAT00151
의 보수
Figure 112008069998856-PAT00152
, 상기
Figure 112008069998856-PAT00153
Figure 112008069998856-PAT00154
를 이용하여 중간 연산자
Figure 112008069998856-PAT00155
를 생성하는 단계; 상기
Figure 112008069998856-PAT00156
Figure 112008069998856-PAT00157
의 논리곱 연산을 수행하여 상기 제 1 중간값
Figure 112008069998856-PAT00158
를 갱신하는 단계; 상기
Figure 112008069998856-PAT00159
Figure 112008069998856-PAT00160
로 나눈값과 상기
Figure 112008069998856-PAT00161
를 논리곱 연산을 수행하여 상기 제 2 중간값
Figure 112008069998856-PAT00162
를 갱신하는 단계; 및 상기
Figure 112008069998856-PAT00163
,
Figure 112008069998856-PAT00164
Figure 112008069998856-PAT00165
Figure 112008069998856-PAT00166
에 곱하여 최종 서명값을 생성하는 단계를 포함하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법을 제공한다.
한편, 상기 제 1 데이터 쌍
Figure 112008069998856-PAT00167
는 수식
Figure 112008069998856-PAT00168
,
Figure 112008069998856-PAT00169
,
Figure 112008069998856-PAT00170
에 의해 생성되는 것을 특징으로 한다.
그리고, 상기 제 2 데이터 쌍
Figure 112008069998856-PAT00171
는 수식
Figure 112008069998856-PAT00172
,
Figure 112008069998856-PAT00173
,
Figure 112008069998856-PAT00174
에 의해 생성되는 것을 특징으로 한다.
그리고, 상기 제 1 중간값
Figure 112008069998856-PAT00175
Figure 112008069998856-PAT00176
에 의해 생성되는 것을 특징으로 한다.
아울러, 상기 제 2 중간값
Figure 112008069998856-PAT00177
Figure 112008069998856-PAT00178
에 의해 생성되는 것을 특징으로 한다.
그리고, 상기 제로 비트 생성 인자
Figure 112008069998856-PAT00179
는 상기
Figure 112008069998856-PAT00180
의 이진 비트열의 길이를
Figure 112008069998856-PAT00181
이라고 하고, 상기
Figure 112008069998856-PAT00182
의 이진 비트열의 길이를
Figure 112008069998856-PAT00183
이라고 할 때,
Figure 112008069998856-PAT00184
에 의해 결정되는 것을 특징으로 한다.
한편, 상기 중간 연산자
Figure 112008069998856-PAT00185
Figure 112008069998856-PAT00186
에 의해 생성되는 것을 특징으로 한다.
또한, 상기 최종 서명값
Figure 112008069998856-PAT00187
Figure 112008069998856-PAT00188
에 의해 생성되는 것을 특징으로 한다.
상기 두 번째 과제를 해결하기 위하여 본 발명은,
Figure 112008069998856-PAT00189
를 만족하는 서로 다른 소수 두
Figure 112008069998856-PAT00190
를 비밀키로, euler totient 함수
Figure 112008069998856-PAT00191
과 서로 소인 소정의 정수
Figure 112008069998856-PAT00192
를 공개키로,
Figure 112008069998856-PAT00193
을 만족하는
Figure 112008069998856-PAT00194
를 비밀키로 이용하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치에 있어서, 인증된 수신자에게 전송하고자 하는 메시지
Figure 112008069998856-PAT00195
, 상기 서로 다른 두 소수
Figure 112008069998856-PAT00196
, 상기 비밀키
Figure 112008069998856-PAT00197
Figure 112008069998856-PAT00198
로 모듈러 연산한
Figure 112008069998856-PAT00199
, 상기
Figure 112008069998856-PAT00200
Figure 112008069998856-PAT00201
로 모듈러 연산한
Figure 112008069998856-PAT00202
, 상기
Figure 112008069998856-PAT00203
Figure 112008069998856-PAT00204
의 합인
Figure 112008069998856-PAT00205
,
Figure 112008069998856-PAT00206
으로 연산되는
Figure 112008069998856-PAT00207
, 암호화하고자 하는 송신자에 의해 랜덤하게 선택된 제 1 정수
Figure 112008069998856-PAT00208
, 제 2 정수
Figure 112008069998856-PAT00209
, 및 상기 제 2 정수
Figure 112008069998856-PAT00210
에 의해
Figure 112008069998856-PAT00211
의 연산으로 생성되는
Figure 112008069998856-PAT00212
를 포함하는 복수 개의 암호화 인자를 수신하는 암호화 인자 수신부; 상기 복수 개의 암호화 인자 중에서 선택된 제 1 데이터 집합
Figure 112008069998856-PAT00213
을 이용하여 제 1 데이터 쌍
Figure 112008069998856-PAT00214
을 생성하는 제 1 데이터 쌍 생성부; 상기 수신된 복수 개의 암호화 인자 및 상기 제 1 데이터 쌍 중에서 선택된 제 2 데이터 집합
Figure 112008069998856-PAT00215
을 이용하여 제 2 데이터 쌍
Figure 112008069998856-PAT00216
을 생성하는 제 2 데이터 쌍 생성부; 상기 제 1 데이터 쌍의
Figure 112008069998856-PAT00217
와 상기 제 2 데이터 쌍의
Figure 112008069998856-PAT00218
를 입력값으로 중국인의 나머지 정리를 이용하여 제 1 중간값
Figure 112008069998856-PAT00219
를 산출하는 제 1 중간값 생성부; 상기 제 1 데이터 쌍의
Figure 112008069998856-PAT00220
와 상기 제 2 데이터 쌍의
Figure 112008069998856-PAT00221
를 입력값으로 중국인의 나머지 정리를 이용하여 제 2 중간값
Figure 112008069998856-PAT00222
를 산출하는 제 2 중간값 생성부; 상기
Figure 112008069998856-PAT00223
의 비트열의 길이와 상기
Figure 112008069998856-PAT00224
의 비트열의 길이에 따라 결정된 제로 비트 생성 인자
Figure 112008069998856-PAT00225
, 상기
Figure 112008069998856-PAT00226
의 보수
Figure 112008069998856-PAT00227
, 상기
Figure 112008069998856-PAT00228
Figure 112008069998856-PAT00229
를 이용하여 중간 연산자
Figure 112008069998856-PAT00230
를 생성하는 중간 연산자 생성 부; 상기
Figure 112008069998856-PAT00231
Figure 112008069998856-PAT00232
의 논리곱 연산을 수행하여 상기 제 1 중간값
Figure 112008069998856-PAT00233
를 갱신하는 제 1 중간값 갱신부; 상기
Figure 112008069998856-PAT00234
Figure 112008069998856-PAT00235
로 나눈값과 상기
Figure 112008069998856-PAT00236
를 논리곱 연산을 수행하여 상기 제 2 중간값
Figure 112008069998856-PAT00237
를 갱신하는 제 2 중간값 갱신부; 및 상기
Figure 112008069998856-PAT00238
,
Figure 112008069998856-PAT00239
Figure 112008069998856-PAT00240
Figure 112008069998856-PAT00241
에 곱하여 최종 서명값을 생성하는 서명값 생성부를 포함하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치를 제공한다.
여기서, 상기 제 1 데이터 쌍
Figure 112008069998856-PAT00242
Figure 112008069998856-PAT00243
,
Figure 112008069998856-PAT00244
,
Figure 112008069998856-PAT00245
에 의해 생성되는 것을 특징으로 한다.
그리고, 상기 제 2 데이터 쌍
Figure 112008069998856-PAT00246
Figure 112008069998856-PAT00247
,
Figure 112008069998856-PAT00248
,
Figure 112008069998856-PAT00249
에 의해 생성되는 것을 특징으로 한다.
그리고, 상기 제 1 중간값
Figure 112008069998856-PAT00250
Figure 112008069998856-PAT00251
에 의해 생성되는 것을 특징으로 한다.
아울러, 상기 제 2 중간값
Figure 112008069998856-PAT00252
Figure 112008069998856-PAT00253
에 의해 생성되는 것을 특징으로 한다.
또한, 상기 제로 비트 생성 인자
Figure 112008069998856-PAT00254
는 상기
Figure 112008069998856-PAT00255
의 이진 비트열의 길이를
Figure 112008069998856-PAT00256
이라고 하고, 상기
Figure 112008069998856-PAT00257
의 이진 비트열의 길이를
Figure 112008069998856-PAT00258
이라고 할 때,
Figure 112008069998856-PAT00259
에 의해 결정되는 것을 특징으로 한다.
아울러, 상기 중간 연산자
Figure 112008069998856-PAT00260
의 값은
Figure 112008069998856-PAT00261
에 의해 생성되는 것을 특징으로 한다.
그리고, 상기 최종 서명값
Figure 112008069998856-PAT00262
Figure 112008069998856-PAT00263
에 의해 생성되는 것을 특징으로 한다.
상기 세 번째 과제를 해결하기 위하여 본 발명은,
상기 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 기록매체를 제공한다.
본 발명에 의하면, 오류 주입시 오류 확산을 유발시키는 지수승 연산 방법을 제공할 수 있으며, 대표적인 오류 주입 공격인 SPA, DPA, FA에 모두 안전한 서명 생성 기법을 제공하여 암호화의 신뢰성 및 안전성을 제공할 수 있으며, 대표적인 CRT-RSA 암호화 알고리즘에 비하여 연산량을 감소시켜, 보다 빠른 연산 처리 속도를 제공할 수 있는 효과가 있다.
본 발명은 기존의 오류 주입 공격에 대하여 완벽한 대응을 수행할 수 있는 방법을 제공한다.
본 발명에서 제안하는 대응 방법은 SPA, DPA와 FA에 모두 안전하고 효율적인 방법이다.
본 발명에서 제안하는 방법은 기존에 알려진 방법 중 가장 효율적이라고 알려져 있는 Giraud의 방법을 이용하여 구성된다.
도 3은 본 발명에 의한 SPA, DPA 그리고 FA에 안전한 지수승 연산 방법의 알고리즘이고, 도 4는 도 3을 이용한 본 발명에 따른 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법의 알고리즘이다.
도 3 및 도 4의 각 알고리즘에 대한 각 단계의 설명은 아래와 같다.
도 3은 SPA, DPA 그리고 FA에 안전한 지수승 연산 방법의 알고리즘에 관한 것으로
Figure 112008069998856-PAT00264
Figure 112008069998856-PAT00265
의 체크합(checksum)의 입력값을 가지고,
Figure 112008069998856-PAT00266
을 연산한다.
Figure 112008069998856-PAT00267
의 값은 본 발명의 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법에서
Figure 112008069998856-PAT00268
에 대한 오류 주입을 확인하는 과정에서 사용하기 위한 값이다. 상세한 설명은 하기에 더욱 상술하기로 한다.
한편, 도 3의 알고리즘에 대한 안전성 분석은 하기와 같다.
도 3의 알고리즘은 SPA의 경우, 지수승 알고리즘의 경우 분기점을 사용하지 않기 때문에 안전한 방법이다.
그리고, DPA의 경우, 랜덤 값을 사용하여 중간 연산 값을 알 수 없으므로 DPA에 안전한 알고리즘이다.
그리고, FA의 경우 단계 4의 for반복 횟수에 대한 오류와 지수값에 오류가 주입되었을 경우를 고려하여
Figure 112008069998856-PAT00269
를 사용하므로 오류 주입에 대한 안전성을 보장한다.
도 4에 대하여는,
Figure 112008069998856-PAT00270
의 입력값을 사용한다. 이때,
Figure 112008069998856-PAT00271
의 값은
Figure 112008069998856-PAT00272
의 문자열의 길이에
Figure 112008069998856-PAT00273
의 문자열의 길이를 뺀 값에 해당하는 값인
Figure 112008069998856-PAT00274
의 값이다.
도 4에서, 단계 2는 단계 1에서 생성된
Figure 112008069998856-PAT00275
Figure 112008069998856-PAT00276
을 이용하여 제 1 데이터 쌍
Figure 112008069998856-PAT00277
과 제 2 데이터 쌍 를 생성한다.
상세하게는 , 상기 도 3의 알고리즘을 이용하는 것으로 도 3의 입력값인
Figure 112008069998856-PAT00278
의 인자를 순서대로 제 1 데이터 집합인
Figure 112008069998856-PAT00279
로 대체함으로써 상기 도 3의 알고리즘을 기반으로 제 1 데이터 쌍
Figure 112008069998856-PAT00280
을 생성한다.
그러면, 상기 제 1 데이터 쌍
Figure 112008069998856-PAT00281
는 하기의 수학식 4과 같은 값을 가지게 된다.
Figure 112008069998856-PAT00282
,
Figure 112008069998856-PAT00283
,
Figure 112008069998856-PAT00284
한편, 상기 단계 1에서 생성된
Figure 112008069998856-PAT00285
Figure 112008069998856-PAT00286
및 상기 제 1 데이터 쌍 중에서 선택된 제 2 데이터 집합
Figure 112008069998856-PAT00287
을 이용하여 제 2 데이터 쌍
Figure 112008069998856-PAT00288
을 생성한다.
마찬가지로, 상기 제 2 데이터 쌍 역시 상기 도 3의 알고리즘을 이용하는 것으로 도 3의 입력값인
Figure 112008069998856-PAT00289
의 인자를 순서대로 제 2 데이터 집합인
Figure 112008069998856-PAT00290
로 대체함으로써 상기 도 3의 알고리즘을 기반으로 제 2 데이터 쌍
Figure 112008069998856-PAT00291
을 생성한다.
그러면, 상기 제 2 데이터 쌍
Figure 112008069998856-PAT00292
는 하기의 수학식 5과 같은 값을 가지게 된다.
Figure 112008069998856-PAT00293
,
Figure 112008069998856-PAT00294
,
Figure 112008069998856-PAT00295
그 다음, 단계 3에서는 단계 2에서 생성된
Figure 112008069998856-PAT00296
를 입력값으로, 중국인의 나머지 정리를 이용하여 제 1 중간값
Figure 112008069998856-PAT00297
와, 제 2 중간값
Figure 112008069998856-PAT00298
을 연산한다.
구체적으로는, 상기 제 1 중간값
Figure 112008069998856-PAT00299
는 하기의 수학식 6에 의해, 상기 제 2 중간값
Figure 112008069998856-PAT00300
는 하기의 수학식 7에 의해 생성된다.
Figure 112008069998856-PAT00301
상기 수학식 6에서
Figure 112008069998856-PAT00302
Figure 112008069998856-PAT00303
Figure 112008069998856-PAT00304
를 입력값으로 중국인의 나머지 정리를 수행하는 함수를 의미한다.
Figure 112008069998856-PAT00305
상기 수학식 7에서
Figure 112008069998856-PAT00306
Figure 112008069998856-PAT00307
Figure 112008069998856-PAT00308
를 입력값으로 중국인의 나머지 정리를 수행하는 함수를 의미한다.
그 다음, 단계 4에서는
Figure 112008069998856-PAT00309
의 연산이 수행되며,
Figure 112008069998856-PAT00310
에 오류가 주입되지 않았을 경우에는
Figure 112008069998856-PAT00311
이다.
한편, 단계 4의
Figure 112008069998856-PAT00312
의 값을 이용하여
Figure 112008069998856-PAT00313
의 하위
Figure 112008069998856-PAT00314
길이만큼 '0'으로 만든다.
그 다음, 단계 5에서
Figure 112008069998856-PAT00315
의 상위
Figure 112008069998856-PAT00316
길이만큼을 '0'으로 만든다. 즉, 단계 4의
Figure 112008069998856-PAT00317
와 단계 5의
Figure 112008069998856-PAT00318
를 XOR 연산하였을 경우 올바른 서명값을 얻을 수 있다.
최종적으로, 랜덤한 수
Figure 112008069998856-PAT00319
의 역원인
Figure 112008069998856-PAT00320
Figure 112008069998856-PAT00321
의 오류 주입을 확인하기 위하여
Figure 112008069998856-PAT00322
Figure 112008069998856-PAT00323
Figure 112008069998856-PAT00324
에 곱하여 최종 서명값
Figure 112008069998856-PAT00325
를 생성한다.
도 5는 본 발명에 따른 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알 고리즘을 이용한 디지털 서명 방법의 흐름도이다.
본 발명은,
Figure 112008069998856-PAT00326
를 만족하는 서로 다른 소수 두
Figure 112008069998856-PAT00327
를 비밀키로, euler totient 함수
Figure 112008069998856-PAT00328
과 서로 소인 소정의 정수
Figure 112008069998856-PAT00329
를 공개키로,
Figure 112008069998856-PAT00330
을 만족하는
Figure 112008069998856-PAT00331
를 비밀키로 이용하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명방법에 관한 것이다.
우선, 인증된 수신자에게 전송하고자 하는 메시지
Figure 112008069998856-PAT00332
, 상기 서로 다른 두 소수
Figure 112008069998856-PAT00333
, 상기 비밀키
Figure 112008069998856-PAT00334
Figure 112008069998856-PAT00335
로 모듈러 연산한
Figure 112008069998856-PAT00336
, 상기
Figure 112008069998856-PAT00337
Figure 112008069998856-PAT00338
로 모듈러 연산한
Figure 112008069998856-PAT00339
, 상기
Figure 112008069998856-PAT00340
Figure 112008069998856-PAT00341
의 합인
Figure 112008069998856-PAT00342
,
Figure 112008069998856-PAT00343
으로 연산되는
Figure 112008069998856-PAT00344
, 암호화하고자 하는 송신자에 의해 랜덤하게 선택된 제 1 정수
Figure 112008069998856-PAT00345
, 제 2 정수
Figure 112008069998856-PAT00346
, 및 상기 제 2 정수
Figure 112008069998856-PAT00347
에 의해
Figure 112008069998856-PAT00348
의 연산으로 생성되는
Figure 112008069998856-PAT00349
를 포함하는 복수 개의 암호화 인자를 수신한다(S510).
그 다음, 상기 복수 개의 암호화 인자 중에서 선택된 제 1 데이터 집합
Figure 112008069998856-PAT00350
을 이용하여 제 1 데이터 쌍
Figure 112008069998856-PAT00351
을 생성한다(S520).
이는 전술한 바와 같이, 도 3의 알고리즘을 적용하여 도 3의 입력값인
Figure 112008069998856-PAT00352
의 인자를 순서대로 제 1 데이터 집합인
Figure 112008069998856-PAT00353
로 대체함으로써 상기 도 3의 알고리즘을 기반으로 제 1 데이터 쌍
Figure 112008069998856-PAT00354
을 생성한다.
그러면, 상기 제 1 데이터 쌍
Figure 112008069998856-PAT00355
는 상기의 수학식 4과 같은 값을 가지게 된다.
그 다음, 상기 수신된 복수 개의 암호화 인자 및 상기 제 1 데이터 쌍 중에서 선택된 제 2 데이터 집합
Figure 112008069998856-PAT00356
을 이용하여 제 2 데이터 쌍
Figure 112008069998856-PAT00357
을 생성한다(S530).
이 역시 전술한 바와 같이, 상기 도 3의 알고리즘을 이용하는 것으로 도 3의 입력값인
Figure 112008069998856-PAT00358
의 인자를 순서대로 제 2 데이터 집합인
Figure 112008069998856-PAT00359
로 대체함으로써 상기 도 3의 알고리즘을 기반으로 제 2 데이터 쌍
Figure 112008069998856-PAT00360
을 생성한다.
그러면, 상기 제 2 데이터 쌍
Figure 112008069998856-PAT00361
는 상기의 수학식 5과 같은 값을 가지게 된다.
그 다음, 상기 제 1 데이터 쌍의
Figure 112008069998856-PAT00362
와 상기 제 2 데이터 쌍의
Figure 112008069998856-PAT00363
를 입력값으로 중국인의 나머지 정리를 이용하여 제 1 중간값
Figure 112008069998856-PAT00364
를 산출한다(S540).
상기 제 1 중간값
Figure 112008069998856-PAT00365
는 상기 수학식 6에 의해 생성될 수 있다.
그 다음, 상기 제 1 데이터 쌍의
Figure 112008069998856-PAT00366
와 상기 제 2 데이터 쌍의
Figure 112008069998856-PAT00367
를 입력값으로 중국인의 나머지 정리를 이용하여 제 2 중간값
Figure 112008069998856-PAT00368
를 산출한다(S550).
상기 제 2 중간값
Figure 112008069998856-PAT00369
는 상기 수학식 7에 의해 생성될 수 있다.
그 다음, 상기
Figure 112008069998856-PAT00370
의 비트열의 길이와 상기
Figure 112008069998856-PAT00371
의 비트열의 길이에 따라 결정된 제로 비트 생성 인자
Figure 112008069998856-PAT00372
, 상기
Figure 112008069998856-PAT00373
의 보수
Figure 112008069998856-PAT00374
, 상기
Figure 112008069998856-PAT00375
Figure 112008069998856-PAT00376
를 이용하여
Figure 112008069998856-PAT00377
를 생성한다(S560).
여기서, 제로 비트 생성 인자
Figure 112008069998856-PAT00378
는 상기
Figure 112008069998856-PAT00379
의 이진 비트열의 길이를
Figure 112008069998856-PAT00380
이라고 하고, 상기
Figure 112008069998856-PAT00381
의 이진 비트열의 길이를 이라고 할 때,
Figure 112008069998856-PAT00383
에 의해 생성될 수 있다.
그러면, 상기 제로 비트 생성 인자를 이용하여, 상기
Figure 112008069998856-PAT00384
의 값은 하기의 수학식 8에 의해 생성될 수 있으며,
Figure 112008069998856-PAT00385
는 XOR 연산인자를 의미한다.
Figure 112008069998856-PAT00386
그런 다음, 상기
Figure 112008069998856-PAT00387
Figure 112008069998856-PAT00388
의 논리곱 연산을 수행하여 상기 제 1 중간값
Figure 112008069998856-PAT00389
를 갱신한다(S570).
이와 같이 갱신되는 제 1 중간값
Figure 112008069998856-PAT00390
는 하기의 수학식 9로 표현될 수 있다.
Figure 112008069998856-PAT00391
그 다음, 상기
Figure 112008069998856-PAT00392
Figure 112008069998856-PAT00393
로 나눈값과 상기
Figure 112008069998856-PAT00394
를 논리곱 연산을 수행하여 상기 제 2 중간값
Figure 112008069998856-PAT00395
를 갱신한다(S580).
이와 같이 갱신되는 제 2 중간값
Figure 112008069998856-PAT00396
는 하기의 수학식 10으로 표현될 수 있다.
Figure 112008069998856-PAT00397
그 다음, 최종적으로 상기
Figure 112008069998856-PAT00398
,
Figure 112008069998856-PAT00399
Figure 112008069998856-PAT00400
Figure 112008069998856-PAT00401
에 곱하여 최종 서명값
Figure 112008069998856-PAT00402
를 생성한다(S590).
상기 최종 서명값
Figure 112008069998856-PAT00403
는 하기의 수학식 11로 표현될 수 있다.
Figure 112008069998856-PAT00404
이와 같은 과정으로 본 발명은 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명을 생성할 수 있게 된다.
본 발명에 따른 오류 주입 공격에 안전한
Figure 112008069998856-PAT00405
모듈러 지수승 알고리즘을 이용한 디지털 서명 생성 방법의 안전성 분석은 아래와 같다.
우선, SPA 및 DPA에서의 안전성 분석이다. 파워 분석(Power analysis)의 경우는 CRT-RSA 알고리즘에 사용되는 지수승 알고리즘에 의존하게 된다. 따라서, 앞서 살펴본 바와 같이, 본 발명의 디지털 서명 알고리즘에서 사용하는 지수승 알고리즘은 SPA, DPA에 안전하다.
그 다음은 FA이다.
첫 번째로, 데이터 랜덤화 및 데이터 리셋에 관한 것이다.
본 발명은 Giraud의 방법을 모태로 하고 있으므로, 본 발명에서는
Figure 112008069998856-PAT00406
에 대한 오류 주입만 고려한다.
이는, 도 4의 단계 3 이후
Figure 112008069998856-PAT00407
또는
Figure 112008069998856-PAT00408
에 오류가 주입되었을 경우,
Figure 112008069998856-PAT00409
의 연산으로 비밀값
Figure 112008069998856-PAT00410
,
Figure 112008069998856-PAT00411
를 연산하기 위한 복잡도는
Figure 112008069998856-PAT00412
이다.
그리고, 상기 수학식 11에서
Figure 112008069998856-PAT00413
혹은
Figure 112008069998856-PAT00414
의 값이 랜덤값이 된다. 따라서, 올바르지 않은 서명값이 출력되더라도
Figure 112008069998856-PAT00415
또는
Figure 112008069998856-PAT00416
의 값을 연산하기 위해서는
Figure 112008069998856-PAT00417
의 연산 복잡도를 가진다.
한편, 입력값
Figure 112008069998856-PAT00418
에 오류가 발생한 경우, 출력값인
Figure 112008069998856-PAT00419
는 비밀값에 의존하 지 않는 랜덤값이 된다.
또한 입력값,
Figure 112008069998856-PAT00420
에 오류가 발생하면, 도 3의 알고리즘 연산 후의 결과값은 오류가 주입된 제 1 데이터 쌍인
Figure 112008069998856-PAT00421
값이 되고,
Figure 112008069998856-PAT00422
를 이용하여 연산하는 도 3의 알고리즘 연산 후의 결과값인 제 2 데이터 쌍 역시 오류가 주입된
Figure 112008069998856-PAT00423
값이 된다. 따라서, 오류가 주입된
Figure 112008069998856-PAT00424
를 이용하여 CRT 연산을 하게 되므로 비밀값에 의존하지 않는 랜덤한 값이 된다.
한편,
Figure 112008069998856-PAT00425
에 오류가 발생한 경우는 하기의 수학식 12로 표현된다.
Figure 112008069998856-PAT00426
즉,
Figure 112008069998856-PAT00427
에 오류가 발생하였다면, 오류가 주입된
Figure 112008069998856-PAT00428
값이 된다. 만약
Figure 112008069998856-PAT00429
에 오류가 주입됨을 확인하는 과정이 없다면,
Figure 112008069998856-PAT00430
을 이용하여 비밀값을 알 수 있다. 따라서, 상기 S560 단계를 통하여 오류 주입을 확인한다.
만약에 오류가 주입되었을 경우
Figure 112008069998856-PAT00431
의 값은 랜덤 값이 되고, 이 값을 이용하여 S570 단계 및, S580 단계fmf 연산하므로
Figure 112008069998856-PAT00432
역시 비밀값에 의존하지 않는 랜덤값이 된다.
한편,
Figure 112008069998856-PAT00433
에 오류가 발생하였을 경우,
Figure 112008069998856-PAT00434
의 연산으로, 비밀값
Figure 112008069998856-PAT00435
를 연산하기 위한 복잡도는
Figure 112008069998856-PAT00436
이다.
여기서,
Figure 112008069998856-PAT00437
에 오류가 발생하였을 경우에는 크게 3가지로 나누어 볼 수 있다. 첫 번째는 상기 S520 단계의
Figure 112008069998856-PAT00438
연산시 일시적으로 오류가 주입된 경우이고, 두 번째는 상기 S530 단계의
Figure 112008069998856-PAT00439
의 연산에서 일시적으로 오류가 주입된 경우이며, 세 번째는
Figure 112008069998856-PAT00440
에 지속적인 오류가 주입된 경우이다.
첫 번째의 경우는
Figure 112008069998856-PAT00441
에 오류가 발생하였을 경우와 동일하게 증명될 수 있다.
두 번째의 경우는 S530 단계의
Figure 112008069998856-PAT00442
의 연산시 오류가 주입되었기 때문에
Figure 112008069998856-PAT00443
이고, 단계 S560에서
Figure 112008069998856-PAT00444
Figure 112008069998856-PAT00445
의 값이 다르므로,
Figure 112008069998856-PAT00446
는 랜덤값이 된다. 따라서,
Figure 112008069998856-PAT00447
에 오류가 발생하였을 경우와 동일하게 증명할 수 있다.
그리고, 세 번째의 경우는 상기 두 번째의 경우와 동일하게 증명될 수 있다.
한편,
Figure 112008069998856-PAT00448
에 오류가 주입되었을 경우는 비밀값
Figure 112008069998856-PAT00449
를 연산할 수 없으며, 이는 단계 S590에서 연산하는
Figure 112008069998856-PAT00450
의 연산에서 랜덤값이 생성되므로 공격되지 아니한다.
그리고,
Figure 112008069998856-PAT00451
의 메모리가 리셋(reset)된 경우, 비밀값
Figure 112008069998856-PAT00452
를 연산하기 위 해서는
Figure 112008069998856-PAT00453
의 복잡도를 가진다.
이는
Figure 112008069998856-PAT00454
의 메모리 비트가 모두 '0'으로 리셋된 경우에는
Figure 112008069998856-PAT00455
Figure 112008069998856-PAT00456
모두 0이 되고, '1'로 리셋된 경우에는
Figure 112008069998856-PAT00457
Figure 112008069998856-PAT00458
의 값이고,
Figure 112008069998856-PAT00459
Figure 112008069998856-PAT00460
의 하위
Figure 112008069998856-PAT00461
비트만 값이 있게 되므로, 두 값을 XOR하게 되면 랜덤 값이 된다.
전술한 바와 같이, 출력값이 비밀값에 의존하지 않는 랜덤 값이므로
Figure 112008069998856-PAT00462
를 연산하기 위해서는
Figure 112008069998856-PAT00463
의 복잡도를 가진다. 따라서 리셋이 된 경우에도 안전하게 암호화 연산을 수행할 수 있다.
그 다음은 옵코드(opcode)의 변형에 관한 것이다. 이는 비교 연산에 의한 옵코드의 변형의 경우, 본 발명에 따른 CRT-RSA 알고리즘의 경우는 오류 주입 확인을 비교연산 없이 수행하므로 안전하게 연산된다.
연산 단계의 스킵으로 인한 경우는 이전 연산의 결과값이 다음 단계의 입력갓으로 사용되므로, 그 전 단계를 스킵하였을 경우, 올바른 서명값이 아닌 랜덤값을 출력하게 된다.
한편, 왕거(Wanger)의 공격은 본 발명에서 제안하는 CRT-RSA 방법이 적용되지 않으므로 해당 사항 없다.
현재의 지수승 알고리즘의 경우 M-Safe error 공격에 안전한 방법이 존재하지 않는다.
그러나, 지수승 알고리즘에서 사용되는 지수 값인
Figure 112008069998856-PAT00464
Figure 112008069998856-PAT00465
과 같이 랜덤한 값으로 바꾸어서 연산하게 되면 M-Safe error 공격을 막을수 있다.
현재, SPA와 DPA, FA에 모두 안전하다고 알려진 CRT-RSA 알고리즘에서 연산량이 가장 적다고 알려진 Giraud의 방법과 연산량을 비교하도록 한다. 비교표는 하기의 표 2과 같다.
Figure 112008069998856-PAT00466
표 2를 참조하면, 기존의 Giraud의 방법보다는 3번의 곱셈과 4번의 비트 연산, 2번의 쉬프트 연산만을 추가하여 기존의 방법이 가지지 못했던 DPA와 FA에 모두 안전하게 수행될 수 있고, CHK 방법보다는 훨씬 적은 연산량으로 동일한 안전성을 가진다.
도 6은 본 발명에 따른 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치의 블록도를 도시한 것이다.
한편, 본 발명에 따른 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치의 상술에 있어서, 전술한 본 발명의 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법과 중복된 상술은 발명의 구성의 명확화를 위하여 과감히 생략하기로 한다.
도 6을 참조하면, 본 발명에 따른 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치는 암호화 인자 수신부(610), 제 1 데이터 쌍 생성부(620), 제 2 데이터 쌍 생성부(630), 제 1 중간값 생성부(640), 제 2 중간값 생성부(650), 중간 연산자 생성부(660), 제 1 중간값 갱신부(670), 제 2 중간값 갱신부(680) 및 서명값 생성부(690)를 포함할 수 있다.
본 발명에 따른 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치는
Figure 112008069998856-PAT00467
를 만족하는 서로 다른 소수 두
Figure 112008069998856-PAT00468
를 비밀키로, euler totient 함수
Figure 112008069998856-PAT00469
과 서로 소인 소정의 정수
Figure 112008069998856-PAT00470
를 공개키로,
Figure 112008069998856-PAT00471
을 만족하는
Figure 112008069998856-PAT00472
를 비밀키로 이용한다.
여기서, 암호화 인자 수신부(610)는 인증된 수신자에게 전송하고자 하는 메시지
Figure 112008069998856-PAT00473
, 상기 서로 다른 두 소수
Figure 112008069998856-PAT00474
, 상기 비밀키
Figure 112008069998856-PAT00475
Figure 112008069998856-PAT00476
로 모듈러 연산한
Figure 112008069998856-PAT00477
, 상기
Figure 112008069998856-PAT00478
Figure 112008069998856-PAT00479
로 모듈러 연산한
Figure 112008069998856-PAT00480
, 상기
Figure 112008069998856-PAT00481
Figure 112008069998856-PAT00482
의 합인
Figure 112008069998856-PAT00483
,
Figure 112008069998856-PAT00484
으로 연산되는
Figure 112008069998856-PAT00485
, 암호화하고자 하는 송신자에 의해 랜덤하게 선택된 제 1 정수
Figure 112008069998856-PAT00486
, 제 2 정수
Figure 112008069998856-PAT00487
, 및 상기 제 2 정수
Figure 112008069998856-PAT00488
에 의해
Figure 112008069998856-PAT00489
의 연산으로 생성되는
Figure 112008069998856-PAT00490
를 포함하는 복수 개의 암호화 인자를 수신한다.
그리고, 제 1 데이터 쌍 생성부(620)는 상기 암호화 인자 수신부(610)에서 수신된 복수 개의 암호화 인자 중에서 선택된 제 1 데이터 집합
Figure 112008069998856-PAT00491
을 이용하여 제 1 데이터 쌍
Figure 112008069998856-PAT00492
을 생성한다.
이는 전술한 바와 같이, 상기 수학식 4에 따라 상기 제 1 데이터 집합을 이용하여 상기 제 1 데이터 쌍을 생성한다.
제 2 데이터 쌍 생성부(630)는 상기 암호화 인자 수신부(610)에서 수신된 복수 개의 암호화 인자 및 상기 제 1 데이터 쌍 생성부(620)로부터 수신한 데이터를 이용하여 생성된 제 2 데이터 집합
Figure 112008069998856-PAT00493
에 따라 제 2 데이터 쌍
Figure 112008069998856-PAT00494
을 생성한다.
마찬가지로, 상기 제 2 데이터 쌍은 상기 제 2 데이터 집합을 입력값으로 하여 수학식 5를 이용하여 생성된다.
제 1 중간값 생성부(640)는 상기 제 1 데이터 쌍의
Figure 112008069998856-PAT00495
와 상기 제 2 데이터 쌍의
Figure 112008069998856-PAT00496
를 입력값으로 중국인의 나머지 정리를 이용하여 제 1 중간값
Figure 112008069998856-PAT00497
를 산출하며, 구체적으로는 상기 수학식 6에 의해 제 1 중간값
Figure 112008069998856-PAT00498
가 생성된다.
제 2 중간값 생성부(650)는 상기 제 1 데이터 쌍의
Figure 112008069998856-PAT00499
와 상기 제 2 데이터 쌍의
Figure 112008069998856-PAT00500
를 입력값으로 중국인의 나머지 정리를 이용하여 제 2 중간값
Figure 112008069998856-PAT00501
를 산출하며, 구체적으로는 상기 수학식 7에 의해 제 2 중간값
Figure 112008069998856-PAT00502
가 생성된다.
그리고, 중간 연산자 생성부(660)는 상기
Figure 112008069998856-PAT00503
의 비트열의 길이와 상기
Figure 112008069998856-PAT00504
의 비트열의 길이에 따라 결정된 제로 비트 생성 인자
Figure 112008069998856-PAT00505
, 상기
Figure 112008069998856-PAT00506
의 보수
Figure 112008069998856-PAT00507
, 상기
Figure 112008069998856-PAT00508
Figure 112008069998856-PAT00509
를 이용하여 중간 연산자
Figure 112008069998856-PAT00510
를 생성하며, 구체적으로는 상기 수학식 8에 따라 중간 연산자
Figure 112008069998856-PAT00511
가 생성된다.
한편, 제 1 중간값 갱신부(670)는 상기
Figure 112008069998856-PAT00512
Figure 112008069998856-PAT00513
의 논리곱 연산을 수행하여 상기 제 1 중간값
Figure 112008069998856-PAT00514
를 갱신하며, 상기 제 1 중간값
Figure 112008069998856-PAT00515
는 상기 수학식 9에 의해 갱신된다.
아울러, 제 2 중간값 갱신부(680)는 상기
Figure 112008069998856-PAT00516
Figure 112008069998856-PAT00517
로 나눈값과 상기
Figure 112008069998856-PAT00518
를 논리곱 연산을 수행하여 상기 제 2 중간값
Figure 112008069998856-PAT00519
를 갱신하며, 상기 제 2 중간값
Figure 112008069998856-PAT00520
는 상기 수학식 10에 의해 갱신된다.
서명값 생성부는 상기
Figure 112008069998856-PAT00521
,
Figure 112008069998856-PAT00522
Figure 112008069998856-PAT00523
Figure 112008069998856-PAT00524
에 곱하여 최종 서명값을 생성하며, 상기 최종 서명값의 연산은 상기 수학식 11에 의해 수행된다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다.
컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 테이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다.또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사항에 의해 정해져야 할 것이다.
도 1은 종래의 일반적인 CRT-RSA 알고리즘을 도시한 것이다.
도 2는 비교 연산을 사용하지 않는 옌(Yen)의 서명 생성 알고리즘을 도시한 것이다.
도 3은 본 발명에 따른 지수승 연산 알고리즘을 도시한 것이다.
도 4는 본 발명에 따른 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 생성 알고리즘을 도시한 것이다.
도 5는 본 발명에 따른 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 생성 방법의 흐름도를 도시한 것이다.
도 6은 본 발명에 따른 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 생성 장치의 블록도를 도시한 것이다.

Claims (17)

  1. Figure 112008069998856-PAT00525
    를 만족하는 서로 다른 소수 두
    Figure 112008069998856-PAT00526
    를 비밀키로, euler totient 함수
    Figure 112008069998856-PAT00527
    과 서로 소인 소정의 정수
    Figure 112008069998856-PAT00528
    를 공개키로,
    Figure 112008069998856-PAT00529
    을 만족하는
    Figure 112008069998856-PAT00530
    를 비밀키로 이용하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법에 있어서,
    인증된 수신자에게 전송하고자 하는 메시지 , 상기 서로 다른 두 소수
    Figure 112008069998856-PAT00532
    , 상기 비밀키
    Figure 112008069998856-PAT00533
    Figure 112008069998856-PAT00534
    로 모듈러 연산한
    Figure 112008069998856-PAT00535
    , 상기
    Figure 112008069998856-PAT00536
    Figure 112008069998856-PAT00537
    로 모듈러 연산한
    Figure 112008069998856-PAT00538
    , 상기
    Figure 112008069998856-PAT00539
    Figure 112008069998856-PAT00540
    의 합인
    Figure 112008069998856-PAT00541
    ,
    Figure 112008069998856-PAT00542
    으로 연산되는
    Figure 112008069998856-PAT00543
    , 암호화하고자 하는 송신자에 의해 랜덤하게 선택된 제 1 정수
    Figure 112008069998856-PAT00544
    , 제 2 정수
    Figure 112008069998856-PAT00545
    , 및 상기 제 2 정수
    Figure 112008069998856-PAT00546
    에 의해
    Figure 112008069998856-PAT00547
    의 연산으로 생성되는
    Figure 112008069998856-PAT00548
    를 포함하는 복수 개의 암호화 인자를 수신하는 단계;
    상기 복수 개의 암호화 인자 중에서 선택된 제 1 데이터 집합
    Figure 112008069998856-PAT00549
    을 이용하여 제 1 데이터 쌍
    Figure 112008069998856-PAT00550
    을 생성하는 단계;
    상기 수신된 복수 개의 암호화 인자 및 상기 제 1 데이터 쌍 중에서 선택된 제 2 데이터 집합
    Figure 112008069998856-PAT00551
    을 이용하여 제 2 데이터 쌍
    Figure 112008069998856-PAT00552
    을 생성하는 단계;
    상기 제 1 데이터 쌍의
    Figure 112008069998856-PAT00553
    와 상기 제 2 데이터 쌍의
    Figure 112008069998856-PAT00554
    를 입력값으로 중국인의 나머지 정리를 이용하여 제 1 중간값
    Figure 112008069998856-PAT00555
    를 산출하는 단계;
    상기 제 1 데이터 쌍의
    Figure 112008069998856-PAT00556
    와 상기 제 2 데이터 쌍의
    Figure 112008069998856-PAT00557
    를 입력값으로 중국인의 나머지 정리를 이용하여 제 2 중간값
    Figure 112008069998856-PAT00558
    를 산출하는 단계;
    상기
    Figure 112008069998856-PAT00559
    의 비트열의 길이와 상기
    Figure 112008069998856-PAT00560
    의 비트열의 길이에 따라 결정된 제로 비트 생성 인자
    Figure 112008069998856-PAT00561
    , 상기
    Figure 112008069998856-PAT00562
    의 보수
    Figure 112008069998856-PAT00563
    , 상기
    Figure 112008069998856-PAT00564
    Figure 112008069998856-PAT00565
    를 이용하여 중간 연산자
    Figure 112008069998856-PAT00566
    를 생성하는 단계;
    상기
    Figure 112008069998856-PAT00567
    의 논리곱 연산을 수행하여 상기 제 1 중간값
    Figure 112008069998856-PAT00569
    를 갱신하는 단계;
    상기
    Figure 112008069998856-PAT00570
    Figure 112008069998856-PAT00571
    로 나눈값과 상기
    Figure 112008069998856-PAT00572
    를 논리곱 연산을 수행하여 상기 제 2 중간값
    Figure 112008069998856-PAT00573
    를 갱신하는 단계; 및
    상기
    Figure 112008069998856-PAT00574
    ,
    Figure 112008069998856-PAT00575
    Figure 112008069998856-PAT00576
    Figure 112008069998856-PAT00577
    에 곱하여 최종 서명값을 생성하는 단계를 포함하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법.
  2. 제 1 항에 있어서,
    상기 제 1 데이터 쌍
    Figure 112008069998856-PAT00578
    는 하기의 식 1에 의해 생성되는 것을 특징으로 하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법.
    Figure 112008069998856-PAT00579
    ,
    Figure 112008069998856-PAT00580
    ,
    Figure 112008069998856-PAT00581
    (1)
  3. 제 2 항에 있어서,
    상기 제 2 데이터 쌍
    Figure 112008069998856-PAT00582
    는 하기의 식 2에 의해 생성되는 것을 특징으로 하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법.
    Figure 112008069998856-PAT00583
    ,
    Figure 112008069998856-PAT00584
    ,
    Figure 112008069998856-PAT00585
    (2)
  4. 제 1 항에 있어서,
    상기 제 1 중간값
    Figure 112008069998856-PAT00586
    는 하기의 식 3에 의해 생성되는 것을 특징으로 하는 오류주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법.
    Figure 112008069998856-PAT00587
    (3)
    (상기 식에서
    Figure 112008069998856-PAT00589
    Figure 112008069998856-PAT00590
    를 입력값으로 중국인의 나머지 정리를 수행하는 함수를 의미함.)
  5. 제 1 항에 있어서,
    상기 제 2 중간값
    Figure 112008069998856-PAT00591
    는 하기의 식 4에 의해 생성되는 것을 특징으로 하는 오류주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법.
    Figure 112008069998856-PAT00592
    (4)
    (상기 식에서
    Figure 112008069998856-PAT00593
    Figure 112008069998856-PAT00594
    Figure 112008069998856-PAT00595
    를 입력값으로 중국인의 나머지 정리를 수행하는 함수를 의미함.)
  6. 제 1 항에 있어서,
    상기 제로 비트 생성 인자
    Figure 112008069998856-PAT00596
    상기
    Figure 112008069998856-PAT00597
    의 이진 비트열의 길이를
    Figure 112008069998856-PAT00598
    이라고 하고, 상기
    Figure 112008069998856-PAT00599
    의 이진 비트열의 길이를
    Figure 112008069998856-PAT00600
    이라고 할 때, 하기의 식 5에 의해 결정되는 것을 특징으로 하는 오류주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법.
    Figure 112008069998856-PAT00601
    (5)
  7. 제 6 항에 있어서,
    상기 중간 연산자
    Figure 112008069998856-PAT00602
    하기의 식 6에 의해 생성되는 것을 특징으로 하는 오류주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법.
    Figure 112008069998856-PAT00603
    (6)
  8. 제 1 항에 있어서,
    상기 최종 서명값
    Figure 112008069998856-PAT00604
    는 하기의 식 7에 의해 생성되는 것을 특징으로 하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법.
    Figure 112008069998856-PAT00605
    (7)
  9. 제 1 항 내지 제 8 항 중 어느 한 항의 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 기록매체.
  10. Figure 112008069998856-PAT00606
    를 만족하는 서로 다른 소수 두
    Figure 112008069998856-PAT00607
    를 비밀키로, euler totient 함수
    Figure 112008069998856-PAT00608
    과 서로 소인 소정의 정수
    Figure 112008069998856-PAT00609
    를 공개키로,
    Figure 112008069998856-PAT00610
    을 만족하는
    Figure 112008069998856-PAT00611
    를 비밀키로 이용하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치에 있어서,
    인증된 수신자에게 전송하고자 하는 메시지
    Figure 112008069998856-PAT00612
    , 상기 서로 다른 두 소수
    Figure 112008069998856-PAT00613
    , 상기 비밀키
    Figure 112008069998856-PAT00614
    Figure 112008069998856-PAT00615
    로 모듈러 연산한
    Figure 112008069998856-PAT00616
    , 상기
    Figure 112008069998856-PAT00617
    Figure 112008069998856-PAT00618
    로 모듈러 연산한
    Figure 112008069998856-PAT00619
    , 상기
    Figure 112008069998856-PAT00620
    Figure 112008069998856-PAT00621
    의 합인
    Figure 112008069998856-PAT00622
    ,
    Figure 112008069998856-PAT00623
    으로 연산되는
    Figure 112008069998856-PAT00624
    , 암호화하고자 하는 송신자에 의해 랜덤하게 선택된 제 1 정수
    Figure 112008069998856-PAT00625
    , 제 2 정수
    Figure 112008069998856-PAT00626
    , 및 상기 제 2 정수
    Figure 112008069998856-PAT00627
    에 의해
    Figure 112008069998856-PAT00628
    의 연산으로 생성되는
    Figure 112008069998856-PAT00629
    를 포함하는 복수 개의 암호화 인자를 수신하는 암호화 인자 수신부;
    상기 복수 개의 암호화 인자 중에서 선택된 제 1 데이터 집합
    Figure 112008069998856-PAT00630
    을 이용하여 제 1 데이터 쌍
    Figure 112008069998856-PAT00631
    을 생성하는 제 1 데이터 쌍 생성부;
    상기 수신된 복수 개의 암호화 인자 및 상기 제 1 데이터 쌍 중에서 선택된 제 2 데이터 집합
    Figure 112008069998856-PAT00632
    을 이용하여 제 2 데이터 쌍
    Figure 112008069998856-PAT00633
    을 생성하는 제 2 데이터 쌍 생성부;
    상기 제 1 데이터 쌍의
    Figure 112008069998856-PAT00634
    와 상기 제 2 데이터 쌍의
    Figure 112008069998856-PAT00635
    를 입력값으로 중국인의 나머지 정리를 이용하여 제 1 중간값
    Figure 112008069998856-PAT00636
    를 산출하는 제 1 중간값 생성부;
    상기 제 1 데이터 쌍의
    Figure 112008069998856-PAT00637
    와 상기 제 2 데이터 쌍의
    Figure 112008069998856-PAT00638
    를 입력값으로 중국인의 나머지 정리를 이용하여 제 2 중간값
    Figure 112008069998856-PAT00639
    를 산출하는 제 2 중간값 생성부;
    상기
    Figure 112008069998856-PAT00640
    의 비트열의 길이와 상기
    Figure 112008069998856-PAT00641
    의 비트열의 길이에 따라 결정된 제로 비트 생성 인자
    Figure 112008069998856-PAT00642
    , 상기
    Figure 112008069998856-PAT00643
    의 보수
    Figure 112008069998856-PAT00644
    , 상기
    Figure 112008069998856-PAT00645
    Figure 112008069998856-PAT00646
    를 이용하여 중간 연산자
    Figure 112008069998856-PAT00647
    를 생성하는 중간 연산자 생성부;
    상기
    Figure 112008069998856-PAT00648
    Figure 112008069998856-PAT00649
    의 논리곱 연산을 수행하여 상기 제 1 중간값
    Figure 112008069998856-PAT00650
    를 갱신하는 제 1 중간값 갱신부;
    상기
    Figure 112008069998856-PAT00651
    Figure 112008069998856-PAT00652
    로 나눈값과 상기
    Figure 112008069998856-PAT00653
    를 논리곱 연산을 수행하여 상기 제 2 중간값
    Figure 112008069998856-PAT00654
    를 갱신하는 제 2 중간값 갱신부; 및
    상기
    Figure 112008069998856-PAT00655
    ,
    Figure 112008069998856-PAT00656
    Figure 112008069998856-PAT00657
    Figure 112008069998856-PAT00658
    에 곱하여 최종 서명값을 생성하는 서명값 생성부를 포함하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치.
  11. 제 10 항에 있어서,
    상기 제 1 데이터 쌍
    Figure 112008069998856-PAT00659
    는 하기의 식 8에 의해 생성되는 것을 특징으로 하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치.
    Figure 112008069998856-PAT00660
    ,
    Figure 112008069998856-PAT00661
    ,
    Figure 112008069998856-PAT00662
    (8)
  12. 제 11 항에 있어서,
    상기 제 2 데이터 쌍
    Figure 112008069998856-PAT00663
    는 하기의 식 9에 의해 생성되는 것을 특징으로 하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치.
    Figure 112008069998856-PAT00664
    ,
    Figure 112008069998856-PAT00665
    ,
    Figure 112008069998856-PAT00666
    (9)
  13. 제 10 항에 있어서,
    상기 제 1 중간값
    Figure 112008069998856-PAT00667
    는 하기의 식 10에 의해 생성되는 것을 특징으로 하는 오류주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치.
    Figure 112008069998856-PAT00668
    (10)
    (상기 식에서
    Figure 112008069998856-PAT00669
    Figure 112008069998856-PAT00670
    Figure 112008069998856-PAT00671
    를 입력값으로 중국인의 나머지 정리를 수행하는 함수를 의미함.)
  14. 제 10 항에 있어서,
    상기 제 2 중간값
    Figure 112008069998856-PAT00672
    는 하기의 식 11에 의해 생성되는 것을 특징으로 하는 오류주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치.
    Figure 112008069998856-PAT00673
    (11)
    (상기 식에서
    Figure 112008069998856-PAT00674
    Figure 112008069998856-PAT00675
    Figure 112008069998856-PAT00676
    를 입력값으로 중국인의 나머지 정리를 수행하는 함수를 의미함.)
  15. 제 10 항에 있어서,
    상기 제로 비트 생성 인자
    Figure 112008069998856-PAT00677
    상기
    Figure 112008069998856-PAT00678
    의 이진 비트열의 길이를
    Figure 112008069998856-PAT00679
    이라고 하고, 상기
    Figure 112008069998856-PAT00680
    의 이진 비트열의 길이를
    Figure 112008069998856-PAT00681
    이라고 할 때, 하기의 식 12에 의해 결정되는 것을 특징으로 하는 오류주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치.
    Figure 112008069998856-PAT00682
    (12)
  16. 제 15 항에 있어서,
    상기 중간 연산자
    Figure 112008069998856-PAT00683
    의 값은
    하기의 식 13에 의해 생성되는 것을 특징으로 하는 오류주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치.
    Figure 112008069998856-PAT00684
    (13)
  17. 제 10 항에 있어서,
    상기 최종 서명값
    Figure 112008069998856-PAT00685
    는 하기의 식 14에 의해 생성되는 것을 특징으로 하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치.
    Figure 112008069998856-PAT00686
    (14)
KR1020080098252A 2008-10-07 2008-10-07 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체 KR100954844B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080098252A KR100954844B1 (ko) 2008-10-07 2008-10-07 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080098252A KR100954844B1 (ko) 2008-10-07 2008-10-07 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체

Publications (2)

Publication Number Publication Date
KR20100039048A true KR20100039048A (ko) 2010-04-15
KR100954844B1 KR100954844B1 (ko) 2010-04-28

Family

ID=42215678

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080098252A KR100954844B1 (ko) 2008-10-07 2008-10-07 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체

Country Status (1)

Country Link
KR (1) KR100954844B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101440680B1 (ko) * 2012-08-28 2014-09-15 서울대학교산학협력단 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
US8861718B2 (en) 2012-02-10 2014-10-14 Electronics And Telecommunications Research Institute Method of preventing fault-injection attacks on Chinese Remainder Theorem-Rivest Shamir Adleman cryptographic operations and recording medium for storing program implementing the same

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102180029B1 (ko) 2014-02-03 2020-11-17 삼성전자 주식회사 Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100431286B1 (ko) 2002-01-14 2004-05-12 한국정보보호진흥원 중국인 나머지 정리(crt) 기반의 오류 공격에 대응하는 방법 및 그 장치
KR100431047B1 (ko) 2002-02-26 2004-05-12 주홍정보통신주식회사 Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치
KR100652377B1 (ko) 2004-08-06 2007-02-28 삼성전자주식회사 모듈라 지수승 알고리즘, 기록매체 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8861718B2 (en) 2012-02-10 2014-10-14 Electronics And Telecommunications Research Institute Method of preventing fault-injection attacks on Chinese Remainder Theorem-Rivest Shamir Adleman cryptographic operations and recording medium for storing program implementing the same
KR101440680B1 (ko) * 2012-08-28 2014-09-15 서울대학교산학협력단 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치

Also Published As

Publication number Publication date
KR100954844B1 (ko) 2010-04-28

Similar Documents

Publication Publication Date Title
Genkin et al. May the fourth be with you: A microarchitectural side channel attack on several real-world applications of curve25519
EP2553866B1 (en) System and method for protecting cryptographic assets from a white-box attack
EP3596876B1 (en) Elliptic curve point multiplication device and method for signing a message in a white-box context
JP4086503B2 (ja) 暗号演算装置及び方法並びにプログラム
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
EP3191936B1 (en) System and method for one-time chinese-remainder-theorem exponentiation for cryptographic algorythms
JP2011530093A (ja) 累乗法による暗号化を保護する解決策
JP2019515353A (ja) 暗号化べき乗アルゴリズムへのセーフ−エラーフォールトインジェクション攻撃に対する対策
KR100652377B1 (ko) 모듈라 지수승 알고리즘, 기록매체 및 시스템
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
TWI512610B (zh) 利用模數的特殊形式之模組約化
EP3698262B1 (en) Protecting modular inversion operation from external monitoring attacks
EP3188000A1 (en) System and method for hiding a cryptographic secret using expansion
KR100954844B1 (ko) 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체
Kaminaga et al. Double Counting in $2^{t} $-ary RSA Precomputation Reveals the Secret Exponent
EP1347596B1 (en) Digital signature methods and apparatus
EP2401734B1 (en) System and method for performing exponentiation in a cryptographic system
KR100953715B1 (ko) Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
EP3166013B1 (en) Modular exponentiation using randomized addition chains
KR101440680B1 (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
KR101112570B1 (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
KR100953716B1 (ko) Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
Pontie et al. Dummy operations in scalar multiplication over elliptic curves: a tradeoff between security and performance
KR101341810B1 (ko) Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법
US10305678B2 (en) Imbalanced montgomery ladder

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
FPAY Annual fee payment

Payment date: 20130405

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140304

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee