KR20090080842A - Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체 - Google Patents

Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체 Download PDF

Info

Publication number
KR20090080842A
KR20090080842A KR1020080006827A KR20080006827A KR20090080842A KR 20090080842 A KR20090080842 A KR 20090080842A KR 1020080006827 A KR1020080006827 A KR 1020080006827A KR 20080006827 A KR20080006827 A KR 20080006827A KR 20090080842 A KR20090080842 A KR 20090080842A
Authority
KR
South Korea
Prior art keywords
value
crt
modular
message
remind
Prior art date
Application number
KR1020080006827A
Other languages
English (en)
Other versions
KR100953715B1 (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 KR1020080006827A priority Critical patent/KR100953715B1/ko
Publication of KR20090080842A publication Critical patent/KR20090080842A/ko
Application granted granted Critical
Publication of KR100953715B1 publication Critical patent/KR100953715B1/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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장 매체가 개시된다.
본 발명에 따른 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법은 서로 다른 소수
Figure 112008005443008-PAT00001
를 비밀키로,
Figure 112008005443008-PAT00002
를 만족하는
Figure 112008005443008-PAT00003
을 공개키로 euler totient 함수
Figure 112008005443008-PAT00004
과 서로 소인 소정의 정수
Figure 112008005443008-PAT00005
를 공개키로,
Figure 112008005443008-PAT00006
을 만족하는
Figure 112008005443008-PAT00007
를 비밀키로 이용하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법에 있어서, 인증된 수신자에게 전송하고자 하는 메시지
Figure 112008005443008-PAT00008
, 상기 서로 다른 소수
Figure 112008005443008-PAT00009
, 상기
Figure 112008005443008-PAT00010
Figure 112008005443008-PAT00011
로 모듈라 연산한
Figure 112008005443008-PAT00012
, 상기
Figure 112008005443008-PAT00013
Figure 112008005443008-PAT00014
로 모듈라 연산한
Figure 112008005443008-PAT00015
, 상기
Figure 112008005443008-PAT00016
Figure 112008005443008-PAT00017
의 합인
Figure 112008005443008-PAT00018
, 상기
Figure 112008005443008-PAT00019
Figure 112008005443008-PAT00020
로 모듈라 연산한
Figure 112008005443008-PAT00021
및 암호화하고자 하는 송신자에 의해 선택된 랜덤한 정수
Figure 112008005443008-PAT00022
를 수신하는 단계; 상기
Figure 112008005443008-PAT00023
Figure 112008005443008-PAT00024
의 차에 따라
Figure 112008005443008-PAT00025
를 생성하고, 상기 메시지
Figure 112008005443008-PAT00026
Figure 112008005443008-PAT00027
승한 값을 상기
Figure 112008005443008-PAT00028
와 상기 정수
Figure 112008005443008-PAT00029
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00030
값을 산출하며, 상기 메시지
Figure 112008005443008-PAT00031
Figure 112008005443008-PAT00032
승한 값을 상기
Figure 112008005443008-PAT00033
와 상기 정수
Figure 112008005443008-PAT00034
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00035
값을 산출하는 단계; 상기
Figure 112008005443008-PAT00036
Figure 112008005443008-PAT00037
의 차에 따라
Figure 112008005443008-PAT00038
를 생성하고, 상기 메시지
Figure 112008005443008-PAT00039
Figure 112008005443008-PAT00040
승한 값을 상기
Figure 112008005443008-PAT00041
와 상기 정수
Figure 112008005443008-PAT00042
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00043
값을 산출하고, 상기 메시지
Figure 112008005443008-PAT00044
Figure 112008005443008-PAT00045
승한 값을 상기
Figure 112008005443008-PAT00046
와 상기 정수
Figure 112008005443008-PAT00047
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00048
값을 산출하는 단계; 상기 연산된
Figure 112008005443008-PAT00049
Figure 112008005443008-PAT00050
로 이루어진 제 1 데이터 쌍을 이용하여
Figure 112008005443008-PAT00051
를 생성하고, 상기 연산된
Figure 112008005443008-PAT00052
Figure 112008005443008-PAT00053
로 이루어진 제 2 데이터 쌍을 이용하여
Figure 112008005443008-PAT00054
를 생성하는 단계; 상기
Figure 112008005443008-PAT00055
의 비트 길이인
Figure 112008005443008-PAT00056
와 모듈러
Figure 112008005443008-PAT00057
의 비트 길이에 따라 생성되는 제 1 출력값과,
Figure 112008005443008-PAT00058
Figure 112008005443008-PAT00059
의 합에 상기
Figure 112008005443008-PAT00060
의 보수
Figure 112008005443008-PAT00061
를 제 1 논리 연산을 수행한 제 2 출력값을 합하여 제 1 총합값을 생성하고, 상기 메시지
Figure 112008005443008-PAT00062
Figure 112008005443008-PAT00063
를 곱한 값을
Figure 112008005443008-PAT00064
으로 모듈라 연산하여 제 3 출력값을 생성하여, 상기 제 1 총합값과 제 3 출력값을 입력으로 제 2 논리 연산을 수행하여 논리합 연산의 결과값을 생성하는 단계; 및 상기 논리합 연산의 결과값과 상기
Figure 112008005443008-PAT00065
의 동일 여부에 따라 서명 인증값을 생성하는 단계를 포함한다.
본 발명에 의하면, 단순한 레지스터의 추가에 의해 단순한 암호화 방법을 제공하며, 연산량 역시 종래의 암호화 방법에 비해 증가하지 않으면서도 최근 제시된 새로운 단순 전력 분석 및 오류 주입 공격에 안전성을 제공함으로써 스마트카드와 같은 내장형 장치에서도 효율적이고 안전한 디지털 서명 기법을 제공할 수 있는 효과가 있다.

Description

CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장 매체{Digital signature method, Digital signature apparatus using CRT-RSA modula exponentiation algorithm and Recording medium using by the same}
본 발명은 암호화에 관한 것으로서, 특히 암호화의 표준인 중국인의 나머지 정리(Chinese Remainder Theorem:CRT)를 이용한 RSA 암호화 시스템에 오류 주입에 대한 안전성을 가질 뿐만 아니라, 전력 분석 공격 방법 중 단순 전력 공격 방법에도 안전한 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 공개키 암호화 방식에서는 일반 공개키 암호화 방식에서와 같이 일반인도 알 수 있는 공개키와 암호화를 시키는 본인만이 알 수 있는 비밀키가 있다.
상기 RSA 암호화에 방식에서의 암호화 알고리즘은 하기와 같다.
우선, 암호문 작성자는 두 소수
Figure 112008005443008-PAT00066
Figure 112008005443008-PAT00067
를 생성하여 비밀키로 지정하고, 상기 두 소수
Figure 112008005443008-PAT00068
Figure 112008005443008-PAT00069
를 이용하여
Figure 112008005443008-PAT00070
을 공개키로 일반에게 공개한다.
그런 다음, Euler totient 함수
Figure 112008005443008-PAT00071
Figure 112008005443008-PAT00072
과 서로 소(Relatively Prime)인 임의의 정수
Figure 112008005443008-PAT00073
를 선택하여 공개키로 지정하고,
Figure 112008005443008-PAT00074
을 만족하는 정수
Figure 112008005443008-PAT00075
를 Elucid 알고리즘을 이용하여 생성한 다음 이를 비밀키로 지정한다.
이와 같이, RSA 공개키 암호화 방식은 비밀키로
Figure 112008005443008-PAT00076
를 지정하고, 공개키로
Figure 112008005443008-PAT00077
를 지정하여, 전송하고자 하는 메시지를 자신의 비밀키 또는 상대방의 공개키 등을 이용하여 암호화하고, 수신자는 이와 반대로 전송자의 공개키 또는 자신의 비밀키 등을 이용하여 복호화한다.
여기서, 수신자에게 전송하고자하는 메시지를
Figure 112008005443008-PAT00078
이라고 할 때, 메시지 전송자는 암호문
Figure 112008005443008-PAT00079
Figure 112008005443008-PAT00080
를 수신자에게 전송하게 되고, 수신자는 수신된 암호문
Figure 112008005443008-PAT00081
로부터 메시지
Figure 112008005443008-PAT00082
Figure 112008005443008-PAT00083
의 과정을 통하여 복호화하여 복호화된 메시지를 확인한다.
한편, 수신자에게 전송하는 메시지에 디지털 서명을 하기 위하여 전송자는
Figure 112008005443008-PAT00084
의 과정을 거쳐 생성된 서명문
Figure 112008005443008-PAT00085
와 메시지
Figure 112008005443008-PAT00086
을 수신자에게 전송하며, 수신자는
Figure 112008005443008-PAT00087
의 연산 과정을 거쳐 복호화한 후, 수신된
Figure 112008005443008-PAT00088
과 연산된
Figure 112008005443008-PAT00089
를 비교하여 양자가 동일하면 진정한 서명으로 인증을 하게 된다.
RSA 시스템은 공개 정보로부터 비밀키
Figure 112008005443008-PAT00090
를 알아내는 것이 암호문을 해독하 는 키가 되며, 공개 정보로부터 비밀키
Figure 112008005443008-PAT00091
를 알아내는 공격이 성공하기 위해서는
Figure 112008005443008-PAT00092
을 알아야 하고, 이는 공개키
Figure 112008005443008-PAT00093
을 소인수 분해하여
Figure 112008005443008-PAT00094
Figure 112008005443008-PAT00095
를 구하는 문제로 귀결된다.
암호화하는 전송자는 타인이 암호문을 해독하는 것을 방지하기 위하여
Figure 112008005443008-PAT00096
Figure 112008005443008-PAT00097
를 일정크기 이상, 바람직하게는 384비트 이상의 수를 사용하여
Figure 112008005443008-PAT00098
이 소인수 분해되는 것을 방지한다.
이와 같이, RSA 시스템에서 암호 및 서명을 하기 위해서는 큰 수에 대한 연산을 수행하여야 하고, 암호문을 복호화할 경우, 서명에 대한 많은 연산이 불가피하다.
이러한 단점을 보완하기 위하여 많은 고속 알고리즘이 개발되었는데, 그 중 중국인의 나머지 정리(Chinese Remainder Theorem:CRT)에 기초한 방법은 비밀키
Figure 112008005443008-PAT00099
에 대한 멱승 연산을 효과적으로 처리하기 때문에 CRT를 이용한 RSA 암호 시스템에서 널리 사용되고 있다.
한편, CRT를 이용한 RSA 암호 시스템에서 사용되는 파라미터들은 RSA 모듈러 값인
Figure 112008005443008-PAT00100
, 공개키
Figure 112008005443008-PAT00101
및 개인키
Figure 112008005443008-PAT00102
이다.
CRT 기반의 RSA 암호 시스템에서
Figure 112008005443008-PAT00103
의 연산은 하기의 수학식 1을 통하여 연산된다.
Figure 112008005443008-PAT00104
Figure 112008005443008-PAT00105
그런 다음, 상기 수학식 1에 의거하여
Figure 112008005443008-PAT00106
연산을 수행한다.
그러나, 이에 대하여 오류 주입 공격을 수행하면, CRT 기반의 RSA 암호시스템은 안전하지 않다는 지적이 제시되었다.
오류 주입 공격이란, IC 카드나 프로세서의 동작 과정에서 과전류를 흘려보내는 등의 방식으로 하드웨어 도는 소프트웨어 상에 의도적으로 오류가 발생하도록 하여 출력된 오류값을 이용하여 원하는 비밀 정보를 알아내는 방법으로서 최근 주목을 받고 있는 공격 방법이다.
만약,
Figure 112008005443008-PAT00107
(또는
Figure 112008005443008-PAT00108
) 연산에서 오류가 발생하고,
Figure 112008005443008-PAT00109
(또는
Figure 112008005443008-PAT00110
) 는 오류가 발생하지 않는 값이라고 할 경우, 하기의 수학식 2과 같은 연산을 통하여 비밀 정보인
Figure 112008005443008-PAT00111
(또는
Figure 112008005443008-PAT00112
)의 값을 공격자가 알 수 있다.
Figure 112008005443008-PAT00113
Figure 112008005443008-PAT00114
Shamir에 따른 CRT 기반의 RSA 암호 시스템에 대한 오류 주입 공격에 대한 대응 방법은 32비트 정도의 랜덤한 값
Figure 112008005443008-PAT00115
을 선택한 후 하기의 수학식 3에 의거하여
Figure 112008005443008-PAT00116
또는
Figure 112008005443008-PAT00117
를 연산한다.
Figure 112008005443008-PAT00118
Figure 112008005443008-PAT00119
그런 다음, CRT 연산 전에
Figure 112008005443008-PAT00120
을 확인한다. 만약
Figure 112008005443008-PAT00121
(또는
Figure 112008005443008-PAT00122
) 연산에서 오류가 발생하였을 경우
Figure 112008005443008-PAT00123
의 연산 단계를 통과하지 못하기 때문에 오류 주입 여부를 확인할 수 있다. 그러나, Shamir의 방법에는 여러 가지 문제점이 제안되었고, 그 후로 많은 대응 방안이 제시되었다.
최근 2005년에 Ciet와 Joye, 그리고 Giraud가 새로운 대응 방법을 제시하였다. Ciet와 joye는 Shamir의 대응 방법을 일반화하였고, Giraud는 Montgomery Ladder를 이용하여 오류 주입 공격에 안전한 방법을 제안하였다.
Giraud의 방법은 전력 분석 공격 중 하나인 단순 전력 분석 공격에도 안전한 방법이다.
Giraud의 방법은 Joye와 Yen이 제안하였던 단순 전력 분석 대응 방법의 Montgomery Ladder 모듈러 지수성 알고리즘의 결과 값인
Figure 112008005443008-PAT00124
를 이용하며, Giraud는 Joye와 Yen의 모듈러 지수승 알고리즘을 단순전력 분석과 오류 주입 공격에 모두 안전한 모듈러 지수승으로 바꾸어 제안하였고, 이는 도 1에 도시된 바와 같다.
한편, 도 1에 따른 알고리즘 1을 이용하여 연산되는 Giraud의 CRT-RSA 방법은 도 2에 따른 알고리즘 2과 같다.
도 2에 따른 Giraud가 제안한 CRT-RSA 방법은 공개키
Figure 112008005443008-PAT00125
를 요구하지 않으므로 자바 카드의 공개키 환경에서처럼 오직 개인키
Figure 112008005443008-PAT00126
만 요구하는 경우에도 사용가능하다. 공개키
Figure 112008005443008-PAT00127
를 이용하여 CRT-RSA 연산을 사용하는 경우, 공개키의 길이가 커질수록 속도 역시 늦어지게 되는 단점이 있어 Giraud가 제안한 CRT-RSA 방법은 유용하게 사용된다.
Giraud가 제안하는 CRT-RSA 방법을 도 2를 참조하여 상술하면, Giraud가 제안하는 CRT-RSA 방법은 두 번의 CRT 연산을 수행하게 된다.
첫 번째 단계로, 입력값
Figure 112008005443008-PAT00128
가 주어졌을 때, 먼저 랜덤한
Figure 112008005443008-PAT00129
를 선택한다.
그 다음 단계로,
Figure 112008005443008-PAT00130
를 사용하여
Figure 112008005443008-PAT00131
를 연산한다. 여기서,
Figure 112008005443008-PAT00132
이고,
Figure 112008005443008-PAT00133
의 값을 가지게 된다. 이와 같이 그 다음 단계인
Figure 112008005443008-PAT00134
의 값도 마찬가지로 연산 된다.
그 다음 단계 4 및 단계 5에서는 두 번의 CRT 연산을 통하여
Figure 112008005443008-PAT00135
값을 연산하고, 단계 6에서
Figure 112008005443008-PAT00136
값에
Figure 112008005443008-PAT00137
을 곱하여
Figure 112008005443008-PAT00138
와 동일한 값을 만들어 단계 7에서
Figure 112008005443008-PAT00139
값과 비교한다.
Figure 112008005443008-PAT00140
이고, 만약 그 전 단계에서 오류가 주입되었을 경우, 단계 7에서의
Figure 112008005443008-PAT00141
를 통과하지 못하게 된다. 또한, 연산에 사용되는 각 변수들에 대한 변경 역시 단계 7에서 확인하게 된다.
Giraud에 의해 제시된 모듈러 지수승 알고리즘에 대한 안전성은 하기와 같다. 그리고, 여기서 오류가 주입되어 변경된 값을 햇(hat, ^)을 사용하여 표현한다.
즉,
Figure 112008005443008-PAT00142
에 오류가 주입된 경우,
Figure 112008005443008-PAT00143
로 표현할 수 있다.
첫 번째로,
Figure 112008005443008-PAT00144
의 연산 중에
Figure 112008005443008-PAT00145
에 오류가 주입되었을 경우에는
Figure 112008005443008-PAT00146
를 이용하여
Figure 112008005443008-PAT00147
를 연산하고,
Figure 112008005443008-PAT00148
를 이용하여
Figure 112008005443008-PAT00149
를 연산한다. 여기서,
Figure 112008005443008-PAT00150
의 값은 하기의 수학식 4와 같다.
Figure 112008005443008-PAT00151
따라서, 상기 도 2의 단계 7에서의
Figure 112008005443008-PAT00152
의 비교 단계는 하기의 수학식 5에 의한다.
Figure 112008005443008-PAT00153
상기 수학식 5에서
Figure 112008005443008-PAT00154
Figure 112008005443008-PAT00155
는 유일한 정수 값이다. 이때,
Figure 112008005443008-PAT00156
Figure 112008005443008-PAT00157
로 나눠지지 않고, '0'의 값도 아니기 때문에 상기 도 2의 단계 7을 통과하지 못한다.
그러므로, 공격자는 송신자의 메시지에 대한 비밀 정보를 알아낼 수 없다.
두 번째로,
Figure 112008005443008-PAT00158
(또는
Figure 112008005443008-PAT00159
)의 연산과정에서 오류가 주입되었을 경우, 즉
Figure 112008005443008-PAT00160
(또는
Figure 112008005443008-PAT00161
)의 연산을 위해 CRT 연산 시 오류가 주입 되었을 경우에는
Figure 112008005443008-PAT00162
의 관계가 성립되지 않으므로 상기 도 2의 단계 7을 통과하지 못하여 공격자는 비밀 정보를 알아낼 수 없다.
세 번째로,
Figure 112008005443008-PAT00163
(또는,
Figure 112008005443008-PAT00164
)의 연산 과정에 오류가 주입되었을 경우이다.
이는,
Figure 112008005443008-PAT00165
의 경우 상기 도 2의 단계 7은 하기의 수학식 6으로 표현될 수 있다.
Figure 112008005443008-PAT00166
여기서,
Figure 112008005443008-PAT00167
이므로,
Figure 112008005443008-PAT00168
이고,
Figure 112008005443008-PAT00169
이므로,
Figure 112008005443008-PAT00170
을 만족한다. 이는
Figure 112008005443008-PAT00171
이기 때문에 '0'의 값도 아니고,
Figure 112008005443008-PAT00172
로 나누어 지지도 않는다.
상술한 오류 주입에 대한 검증은, 서명의 생성시
Figure 112008005443008-PAT00173
,
Figure 112008005443008-PAT00174
를 두 번 연산하거나 검증함수를 통하여 오류가 발생하였는지를 검사하여 오류가 발생한 경우에는 서명을 다시 수행하여 공격자가 공격을 할 수 없도록 하는 방법이다.
이러한 방법은 암호 연산 자체가 많은 연산량을 요구하므로 비효율적이고, 또한 영구적인 결함을 가지고 있는 시스템의 경우에 오류가 생성되었는지를 검증할 방법이 없어 적절하지 못하며, 연산 과정이 복잡하고 계산량이 증가하는 단점이 있 고, 비밀리에 관리해야 할 파라미터가 추가로 발생한다는 점에서 기존의 시스템과 호환적이지 않다는 문제점이 있다.
본 발명이 해결하고자 하는 첫 번째 과제는 연산 과정이 단순하고 연산량이 추가적으로 증가하지 않으면서도 단순 전력 분석 및 오류 주입 공격에도 안전하여 스마트 카드와 같은 내장형 장치에서도 효율적이고 안전하게 사용할 수 있는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 두 번째 과제는 상기 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법을 이용한 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 세 번째 과제는 상기 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 컴퓨터 판독 가능 저장 매체를 제공하는 것이다.
상기 첫 번째 과제를 해결하기 위하여 본 발명은,
서로 다른 소수
Figure 112008005443008-PAT00175
를 비밀키로,
Figure 112008005443008-PAT00176
를 만족하는
Figure 112008005443008-PAT00177
을 공개키로 euler totient 함수
Figure 112008005443008-PAT00178
과 서로 소인 소정의 정수
Figure 112008005443008-PAT00179
를 공개키로,
Figure 112008005443008-PAT00180
을 만족하는
Figure 112008005443008-PAT00181
를 비밀키로 이용하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법에 있어서, 인증된 수신자에게 전송하고자 하는 메시 지
Figure 112008005443008-PAT00182
, 상기 서로 다른 소수
Figure 112008005443008-PAT00183
, 상기
Figure 112008005443008-PAT00184
Figure 112008005443008-PAT00185
로 모듈라 연산한
Figure 112008005443008-PAT00186
, 상기
Figure 112008005443008-PAT00187
Figure 112008005443008-PAT00188
로 모듈라 연산한
Figure 112008005443008-PAT00189
, 상기
Figure 112008005443008-PAT00190
Figure 112008005443008-PAT00191
의 합인
Figure 112008005443008-PAT00192
, 상기
Figure 112008005443008-PAT00193
Figure 112008005443008-PAT00194
로 모듈라 연산한
Figure 112008005443008-PAT00195
및 암호화하고자 하는 송신자에 의해 선택된 랜덤한 정수
Figure 112008005443008-PAT00196
를 수신하는 단계; 상기
Figure 112008005443008-PAT00197
Figure 112008005443008-PAT00198
의 차에 따라
Figure 112008005443008-PAT00199
를 생성하고, 상기 메시지
Figure 112008005443008-PAT00200
Figure 112008005443008-PAT00201
승한 값을 상기
Figure 112008005443008-PAT00202
와 상기 정수
Figure 112008005443008-PAT00203
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00204
값을 산출하며, 상기 메시지
Figure 112008005443008-PAT00205
Figure 112008005443008-PAT00206
승한 값을 상기
Figure 112008005443008-PAT00207
와 상기 정수
Figure 112008005443008-PAT00208
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00209
값을 산출하는 단계;
상기
Figure 112008005443008-PAT00210
Figure 112008005443008-PAT00211
의 차에 따라
Figure 112008005443008-PAT00212
를 생성하고, 상기 메시지
Figure 112008005443008-PAT00213
Figure 112008005443008-PAT00214
승한 값을 상기
Figure 112008005443008-PAT00215
와 상기 정수
Figure 112008005443008-PAT00216
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00217
값을 산출하고, 상기 메시지
Figure 112008005443008-PAT00218
Figure 112008005443008-PAT00219
승한 값을 상기
Figure 112008005443008-PAT00220
와 상기 정수
Figure 112008005443008-PAT00221
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00222
값을 산출하는 단계; 상기 연산된
Figure 112008005443008-PAT00223
Figure 112008005443008-PAT00224
로 이루어진 제 1 데이터 쌍을 이용하여
Figure 112008005443008-PAT00225
를 생성하고, 상기 연산된
Figure 112008005443008-PAT00226
Figure 112008005443008-PAT00227
로 이루어진 제 2 데이터 쌍을 이용하여
Figure 112008005443008-PAT00228
를 생성하는 단계; 상기
Figure 112008005443008-PAT00229
의 비트 길이인
Figure 112008005443008-PAT00230
와 모듈러
Figure 112008005443008-PAT00231
의 비트 길이에 따라 생성되는 제 1 출력값과,
Figure 112008005443008-PAT00232
Figure 112008005443008-PAT00233
의 합에 상기
Figure 112008005443008-PAT00234
의 보수
Figure 112008005443008-PAT00235
를 제 1 논리 연산을 수행한 제 2 출력값을 합하여 제 1 총합값을 생성하고, 상기 메시지
Figure 112008005443008-PAT00236
Figure 112008005443008-PAT00237
를 곱한 값을
Figure 112008005443008-PAT00238
으로 모듈라 연산하여 제 3 출력값을 생성하여, 상기 제 1 총합값과 제 3 출력값을 입력으로 제 2 논리 연산을 수행하여 논리합 연산의 결과값을 생성하는 단계; 및 상기 논리합 연산의 결과값과 상기
Figure 112008005443008-PAT00239
의 동일 여부에 따라 서명 인증값을 생성하는 단계를 포함하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명방법을 제공한다.
여기서, 상기 논리합 연산의 결과값은 수학식
Figure 112008005443008-PAT00240
에 의해 생성되는 것을 특징으로 한다.
그리고, 상기 제 1 논리 연산은 AND 연산이며, 상기 제 2 논리 연산은 XOR 연산인 것을 특징으로 한다.
한편, 상기 서명 인증값을 생성하는 단계는 상기 논리합 연산의 결과값과 상기
Figure 112008005443008-PAT00241
가 동일하면 서명 인증값을 출력하고, 상기 논리합 연산의 결과값과 상기
Figure 112008005443008-PAT00242
가 동일하지 않으면 오류 메시지를 출력하는 단계를 포함하는 것을 특징으로 한다.
아울러, 상기
Figure 112008005443008-PAT00243
Figure 112008005443008-PAT00244
는 각각 병렬로 CRT 연산에 따라 생성되는 것을 특징으로 한다.
상기 두 번째 과제를 해결하기 위하여 본 발명은,
서로 다른 소수
Figure 112008005443008-PAT00245
를 비밀키로,
Figure 112008005443008-PAT00246
를 만족하는
Figure 112008005443008-PAT00247
을 공개키로 euler totient 함수
Figure 112008005443008-PAT00248
과 서로 소인 소정의 정수
Figure 112008005443008-PAT00249
를 공개키로,
Figure 112008005443008-PAT00250
을 만족하는
Figure 112008005443008-PAT00251
를 비밀키로 이용하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치에 있어서, 인증된 수신자에게 전송하고자 하는 메시지
Figure 112008005443008-PAT00252
, 상기 서로 다른 소수
Figure 112008005443008-PAT00253
, 상기
Figure 112008005443008-PAT00254
Figure 112008005443008-PAT00255
로 모듈라 연산한
Figure 112008005443008-PAT00256
, 상기
Figure 112008005443008-PAT00257
Figure 112008005443008-PAT00258
로 모듈라 연산한
Figure 112008005443008-PAT00259
, 상기
Figure 112008005443008-PAT00260
Figure 112008005443008-PAT00261
의 합인
Figure 112008005443008-PAT00262
, 상기
Figure 112008005443008-PAT00263
Figure 112008005443008-PAT00264
로 모듈라 연산한
Figure 112008005443008-PAT00265
가 입력되는 데이터 입력부; 상기 메시지
Figure 112008005443008-PAT00266
을 암호화하고자 하는 송신자에 의해 랜덤한 정수
Figure 112008005443008-PAT00267
가 선택되는 사용자 데이터 선택부; 상기
Figure 112008005443008-PAT00268
Figure 112008005443008-PAT00269
의 차에 따라
Figure 112008005443008-PAT00270
를 생성하고, 상기 메시지
Figure 112008005443008-PAT00271
Figure 112008005443008-PAT00272
승한 값을 상기
Figure 112008005443008-PAT00273
와 상기 정수 를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00275
값을 산출하며, 상기 메시지
Figure 112008005443008-PAT00276
Figure 112008005443008-PAT00277
승한 값을 상기
Figure 112008005443008-PAT00278
와 상기 정수
Figure 112008005443008-PAT00279
를 곱한 값으로 모듈러 연산하여 값을 산출하는 제 1 모듈라 지수승 연산부; 상기
Figure 112008005443008-PAT00281
Figure 112008005443008-PAT00282
의 차에 따라
Figure 112008005443008-PAT00283
를 생성하고, 상기 메시지
Figure 112008005443008-PAT00284
Figure 112008005443008-PAT00285
승한 값을 상기
Figure 112008005443008-PAT00286
와 상기 정수
Figure 112008005443008-PAT00287
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00288
값을 산출하고, 상기 메시지
Figure 112008005443008-PAT00289
Figure 112008005443008-PAT00290
승한 값을 상기
Figure 112008005443008-PAT00291
와 상기 정수
Figure 112008005443008-PAT00292
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00293
값을 산출하는 제 2 모듈라 지수승 연산부; 상기 연산된
Figure 112008005443008-PAT00294
Figure 112008005443008-PAT00295
로 이루어진 제 1 데이터 쌍을 이용하여 CRT 연산에 따라
Figure 112008005443008-PAT00296
를 생성하는 제 1 CRT 연산부; 상기 연산된
Figure 112008005443008-PAT00297
Figure 112008005443008-PAT00298
로 이루어진 제 2 데이터 쌍을 이용하여 CRT 연산에 따라
Figure 112008005443008-PAT00299
를 생성하는 제 2 CRT 연산부; 상기
Figure 112008005443008-PAT00300
의 비트 길이인
Figure 112008005443008-PAT00301
와 모듈러
Figure 112008005443008-PAT00302
의 비트 길이에 따라 생성되는 제 1 출력값과,
Figure 112008005443008-PAT00303
Figure 112008005443008-PAT00304
의 합에 상기
Figure 112008005443008-PAT00305
의 보수
Figure 112008005443008-PAT00306
를 제 1 논리 연산을 수행한 제 2 출력값을 합하여 제 1 총합값을 생성하고, 상기 메시지
Figure 112008005443008-PAT00307
Figure 112008005443008-PAT00308
를 곱한 값을
Figure 112008005443008-PAT00309
으로 모듈라 연산하여 제 3 출력값을 생성하여, 상기 제 1 총합값과 제 3 출력값을 입력으로 제 2 논리 연산을 수행하여 논리합 연산의 결과값을 생성하는 비교값 생성부; 및 상기 논리합 연산의 결과값과 상기
Figure 112008005443008-PAT00310
의 동일 여부에 따라 서명 인증값을 생성하는 제어부를 포함하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치를 제공한다.
여기서, 상기 논리합 연산의 결과값은 수학식
Figure 112008005443008-PAT00311
에 의해 생성되는 것을 특징으로 한다.
그리고, 상기 제 1 논리 연산은 AND 연산이며, 상기 제 2 논리 연산은 XOR 연산인 것을 특징으로 한다.
한편, 상기 제어부는 상기 논리합 연산의 결과값과 상기
Figure 112008005443008-PAT00312
가 동일하면 서명 인증값을 출력하고, 상기 논리합 연산의 결과값과 상기
Figure 112008005443008-PAT00313
가 동일하지 않으면 오류 메시지를 출력하는 것을 특징으로 한다.
상기 세 번째 과제를 해결하기 위하여 본 발명은, 상기 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법을 컴퓨터에서 수행할 수 있는 프로그램으로 기록된 컴퓨터 판독 가능 저장 매체를 제공한다.
상술한 바와 같이 본 발명에 의하면, 단순한 레지스터의 추가에 의해 단순한 암호화 방법을 제공하며, 연산량 역시 종래의 암호화 방법에 비해 증가하지 않으면서도 최근 제시된 새로운 단순 전력 분석 및 오류 주입 공격에 안전성을 제공함으로써 스마트카드와 같은 내장형 장치에서도 효율적이고 안전한 디지털 서명 기법을 제공할 수 있는 효과가 있다.
상술한 Giraud의 대응 방법에 대하여 새로운 오류 주입 공격 방법을 제시할 수 있다.
전술한 도 2에서 기존의 Giraud의 대응 방법에 대하여
Figure 112008005443008-PAT00314
Figure 112008005443008-PAT00315
에 오류가 주입되었을 때에도 안전하다고 주장되었으나, 도 2의 단계 2 또는 단계 3에서
Figure 112008005443008-PAT00316
또는
Figure 112008005443008-PAT00317
에 오류가 주입된 경우에는 안전하지 않다.
Figure 112008005443008-PAT00318
에 오류가 일시적으로 주입되었을 경우를 예를 들면 하기와 같다.
우선, 도 2의 단계 2에서
Figure 112008005443008-PAT00319
를 구하는 과정에서
Figure 112008005443008-PAT00320
에 오류가 주입되었을 경우를 가정하면, 각 단계의 값은 하기의 수학식 7과 같다.
Figure 112008005443008-PAT00321
그리고, 도 2의 단계 3은 하기의 수학식 8과 같다.
Figure 112008005443008-PAT00322
그리고, 도 2의 단계 4에서는
Figure 112008005443008-PAT00323
이고, 단계 5는
Figure 112008005443008-PAT00324
으로 연산 된다.
여기서, 상기 도 2의 알고리즘의 확인 과정은
Figure 112008005443008-PAT00325
이 되고 이는 하기의 수학식 9로 표현할 수 있다.
Figure 112008005443008-PAT00326
상기 수학식 9를 달리 표현하면 하기의 수학식 10으로 표현할 수 있다.
Figure 112008005443008-PAT00327
여기서,
Figure 112008005443008-PAT00328
이고,
Figure 112008005443008-PAT00329
이기 때문에
Figure 112008005443008-PAT00330
을 만족하게 된다.
그리고,
Figure 112008005443008-PAT00331
역시 변경되지 않았기 때문에 상기 도 2의 단계 7을 통과하게 된다.
동일한 방법으로
Figure 112008005443008-PAT00332
에서 오류가 발생하더라도 상기 도 2의 단계 7을 통과하게 된다. 즉, 두 번의 CRT 연산 과정에서 같은 오류의 값으로 연산되기 때문에 비교 과정에서
Figure 112008005443008-PAT00333
에서의 오류 주입만 발생하지 않았다면 이에 대한 공격이 가능하게 된다.
따라서, Giraud가 제안한 대응 방법은
Figure 112008005443008-PAT00334
Figure 112008005443008-PAT00335
에서의 오류 주입에 대하여 공격이 가능하게 된다.
이에 따라 본 발명은, 상기
Figure 112008005443008-PAT00336
Figure 112008005443008-PAT00337
에서의 오류 주입에 대해서도 안전한 CRT-RSA 알고리즘을 제안하며, 이를 정리하면 도 3에 도시된 바와 같다.
본 발명에서는 전술한 상기
Figure 112008005443008-PAT00338
Figure 112008005443008-PAT00339
에서의 오류 주입에 대해서도 안전하게 구현될 수 있는 CRT-RSA 알고리즘을 제안한다.
종래의 CRT-RSA 알고리즘에 대하여 오류 주입에 따른 공격이 가능한 이유가 상기 도 2의 단계 2 또는 단계 3에서의 연산시 오류가 발생하더라도
Figure 112008005443008-PAT00340
또는
Figure 112008005443008-PAT00341
에 있어서 두 값 사이에 연결성이 유지되어 있기 때문이다.
따라서, 본 발명에서 제안하는 대응 방법은
Figure 112008005443008-PAT00342
또는
Figure 112008005443008-PAT00343
를 연산할 때의 오류를 확인하는 과정을 추가하여, 상기 도 2의 단계 7의
Figure 112008005443008-PAT00344
를 통과하지 못하게 된다.
본 발명은 종래의 CRT-RSA 방법과는 달리 입력 값이
Figure 112008005443008-PAT00345
이다.
도 4는 본 발명에 따른 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법의 흐름도를 도시한 것이다.
우선, 서로 다른 소수
Figure 112008005443008-PAT00346
를 비밀키로,
Figure 112008005443008-PAT00347
를 만족하는
Figure 112008005443008-PAT00348
을 공개키로 euler totient 함수
Figure 112008005443008-PAT00349
과 서로 소인 소정의 정수
Figure 112008005443008-PAT00350
를 공개키로,
Figure 112008005443008-PAT00351
을 만족하는
Figure 112008005443008-PAT00352
를 비밀키로 이용하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명방법에 있어서, 인증된 수신자에게 전송하고자 하는 메시지
Figure 112008005443008-PAT00353
, 상기 서로 다른 소수
Figure 112008005443008-PAT00354
, 상기
Figure 112008005443008-PAT00355
Figure 112008005443008-PAT00356
로 모듈라 연산한
Figure 112008005443008-PAT00357
, 상기
Figure 112008005443008-PAT00358
Figure 112008005443008-PAT00359
로 모듈라 연산한
Figure 112008005443008-PAT00360
, 상기
Figure 112008005443008-PAT00361
Figure 112008005443008-PAT00362
의 합인
Figure 112008005443008-PAT00363
, 상기
Figure 112008005443008-PAT00364
Figure 112008005443008-PAT00365
로 모듈라 연산한
Figure 112008005443008-PAT00366
및 암호화하고자 하는 송신자에 의해 선택된 랜덤한 정수
Figure 112008005443008-PAT00367
를 수신한다(410 과정). 이는 암호화 파라미터들을 입력받는 과정으로, 상기 파라미터를 이용하여 CRT-RSA 모듈라 지수승 알고리즘에 따라 암호화가 수행되게 된다.
그 다음, 상기
Figure 112008005443008-PAT00368
Figure 112008005443008-PAT00369
의 차에 따라
Figure 112008005443008-PAT00370
를 생성하고, 상기 메시지
Figure 112008005443008-PAT00371
Figure 112008005443008-PAT00372
승한 값을 상기
Figure 112008005443008-PAT00373
와 상기 정수
Figure 112008005443008-PAT00374
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00375
값을 산출하며, 상기 메시지
Figure 112008005443008-PAT00376
Figure 112008005443008-PAT00377
승한 값을 상기
Figure 112008005443008-PAT00378
와 상기 정수
Figure 112008005443008-PAT00379
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00380
값을 산출한다(420 과정).
이는, 도 1의 알고리즘에 따라
Figure 112008005443008-PAT00381
,
Figure 112008005443008-PAT00382
,
Figure 112008005443008-PAT00383
,
Figure 112008005443008-PAT00384
Figure 112008005443008-PAT00385
에 따른
Figure 112008005443008-PAT00386
을 입력으로 하여
Figure 112008005443008-PAT00387
,
Figure 112008005443008-PAT00388
를 산출하는 과정으로 본 발명은
Figure 112008005443008-PAT00389
Figure 112008005443008-PAT00390
를 사용하여 공격자의 오류 주입 공격과 단순 전력 분석 공격으로부터 안전한 CRT- RSA 모듈라 지수승 알고리즘을 제공할 수 있다.
그 다음, 상기
Figure 112008005443008-PAT00391
Figure 112008005443008-PAT00392
의 차에 따라
Figure 112008005443008-PAT00393
를 생성하고, 상기 메시지
Figure 112008005443008-PAT00394
Figure 112008005443008-PAT00395
승한 값을 상기
Figure 112008005443008-PAT00396
와 상기 정수
Figure 112008005443008-PAT00397
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00398
값을 산출하고, 상기 메시지
Figure 112008005443008-PAT00399
Figure 112008005443008-PAT00400
승한 값을 상기
Figure 112008005443008-PAT00401
와 상기 정수
Figure 112008005443008-PAT00402
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00403
값을 산출한다(430 과정).
마찬가지로, 도 1의 알고리즘에 따라
Figure 112008005443008-PAT00404
,
Figure 112008005443008-PAT00405
,
Figure 112008005443008-PAT00406
,
Figure 112008005443008-PAT00407
Figure 112008005443008-PAT00408
에 따른
Figure 112008005443008-PAT00409
을 입력으로 하여
Figure 112008005443008-PAT00410
,
Figure 112008005443008-PAT00411
를 산출하는 과정으로 본 발명은
Figure 112008005443008-PAT00412
Figure 112008005443008-PAT00413
를 사용하여 공격자의 오류 주입 공격과 단순 전력 분석 공격으로부터 안전한 CRT-RSA 모듈라 지수승 알고리즘을 제공할 수 있다.
즉, 이는 상기 420 과정에서 입력 값은
Figure 112008005443008-PAT00414
가 되고, 단계 430 과정에서 입력 값은
Figure 112008005443008-PAT00415
이다.
그 다음, 상기 연산된
Figure 112008005443008-PAT00416
Figure 112008005443008-PAT00417
로 이루어진 제 1 데이터 쌍을 이용하여
Figure 112008005443008-PAT00418
를 생성하고, 상기 연산된
Figure 112008005443008-PAT00419
Figure 112008005443008-PAT00420
로 이루어진 제 2 데이터 쌍을 이용하여
Figure 112008005443008-PAT00421
를 생성한다(440 과정).
여기서,
Figure 112008005443008-PAT00422
는 상기 연산된
Figure 112008005443008-PAT00423
Figure 112008005443008-PAT00424
로 이루어진 제 1 데이터 쌍을 이용하여 하기의 수학식 11에 의하여 생성될 수 있고,
Figure 112008005443008-PAT00425
는 상기 연산된
Figure 112008005443008-PAT00426
Figure 112008005443008-PAT00427
로 이루어진 제 2 데이터 쌍을 이용하여 하기의 수학식 12에 의하여 생성될 수 있다.
Figure 112008005443008-PAT00428
Figure 112008005443008-PAT00429
Figure 112008005443008-PAT00430
연산은 기존의
Figure 112008005443008-PAT00431
연산과 유사한 방법으로 계산되며,
Figure 112008005443008-PAT00432
Figure 112008005443008-PAT00433
의 결과값을
Figure 112008005443008-PAT00434
로 수정하는 과정이 추가된 것이다.
그 다음, 상기
Figure 112008005443008-PAT00435
의 비트 길이인
Figure 112008005443008-PAT00436
와 모듈러
Figure 112008005443008-PAT00437
의 비트 길이에 따라 생성되는 제 1 출력값과,
Figure 112008005443008-PAT00438
Figure 112008005443008-PAT00439
의 합에 상기
Figure 112008005443008-PAT00440
의 보수
Figure 112008005443008-PAT00441
를 제 1 논리 연산을 수행한 제 2 출력값을 합하여 제 1 총합값을 생성하고, 상기 메시지
Figure 112008005443008-PAT00442
Figure 112008005443008-PAT00443
를 곱한 값을
Figure 112008005443008-PAT00444
으로 모듈라 연산하여 제 3 출력값을 생성하여, 상기 제 1 총합값과 제 3 출력값을 입력으로 제 2 논리 연산을 수행하여 논리합 연산의 결과값을 생 성한다(450 과정).
이는,
Figure 112008005443008-PAT00445
의 값과
Figure 112008005443008-PAT00446
의 값을 AND 연산하게 된다.
이때,
Figure 112008005443008-PAT00447
의 값은
Figure 112008005443008-PAT00448
의 보수 값이고,
Figure 112008005443008-PAT00449
Figure 112008005443008-PAT00450
의 비트 길이,
Figure 112008005443008-PAT00451
는 모듈러
Figure 112008005443008-PAT00452
의 비트 길이이다.
또한,
Figure 112008005443008-PAT00453
은 AND 연산을 위한 비트 길이를 맞추는 패딩 연산이다.
Figure 112008005443008-PAT00454
의 결과 값에 대한 비트 길이는 모듈러
Figure 112008005443008-PAT00455
의 비트 길이인
Figure 112008005443008-PAT00456
이고,
Figure 112008005443008-PAT00457
의 결과 값에 대한 비트 길이는
Figure 112008005443008-PAT00458
의 비트 길이인
Figure 112008005443008-PAT00459
이다.
따라서,
Figure 112008005443008-PAT00460
이므로, 상기 논리합 연산의 결과 값을 생성하는 연산은 비트 차이만큼
Figure 112008005443008-PAT00461
이 채워지는 연산에 해당한다.
여기서, 오류가 주입되지 않았을 경우는
Figure 112008005443008-PAT00462
값과
Figure 112008005443008-PAT00463
의 값이 동일하므로,
Figure 112008005443008-PAT00464
연산의 결과
Figure 112008005443008-PAT00465
이고, 패딩 연산 후의 결과 값은
Figure 112008005443008-PAT00466
이 된다.
따라서,
Figure 112008005443008-PAT00467
값과 비트 길이가
Figure 112008005443008-PAT00468
Figure 112008005443008-PAT00469
을 AND 연산을 하게 되면, 그 결과 값은 기존의
Figure 112008005443008-PAT00470
값이 된다.
한편, 450 과정에서의 상기 논리합 연산의 결과값
Figure 112008005443008-PAT00471
는 하기의 수학식 13에 의해 생성될 수 있다.
Figure 112008005443008-PAT00472
상기 수학식 13의 각각의 변수는 전술한 바와 동일하므로 중복된 상술은 생략하기로 하며, 상기 수학식 13에서
Figure 112008005443008-PAT00473
는 논리 연산 중 XOR 연산을 의미하며,
Figure 112008005443008-PAT00474
는 논리 연산 중 AND 연산을 의미한다.
마지막으로, 상기 논리합 연산의 결과값과 상기
Figure 112008005443008-PAT00475
의 동일 여부에 따라 서명 인증값을 생성한다(460 과정).
여기서, 상기 논리합 연산의 결과값
Figure 112008005443008-PAT00476
는 상기 440 과정의 CRT 연산에 의한
Figure 112008005443008-PAT00477
을 곱한 값이므로, 공격자의 공격에 의하여 오류가 발생하지 않았을 경우에는 상기 논리합 연산의 결과값
Figure 112008005443008-PAT00479
와 상기
Figure 112008005443008-PAT00480
는 동일하여야 한다.
따라서, 상기 논리합 연산의 결과값
Figure 112008005443008-PAT00481
Figure 112008005443008-PAT00482
가 동일한 경우에는 공격자에 의한 공격을 받지 않은 것으로 판단할 수 있고, 이에 따른 사용자의 서명 인증값을 생성하게 되고, 상기 논리합 연산의 결과값
Figure 112008005443008-PAT00483
Figure 112008005443008-PAT00484
가 동일하지 않을 경우에는 공격자에 의한 공격을 받은 것이므로 사용자의 서명 인증값을 생성하지 않고 오류 메시지를 출력하게 된다.
이와 같이, 상기 오류가 발생하지 않은 경우는 본 발명의 160 과정을 통과하게 되어 올바른 서명 값을 출력하게 된다. 오류가 발생할 수 있는 경우는 입력 값과 중간 연산 결과 값이다. 즉, 이는
Figure 112008005443008-PAT00485
이다.
여기서 오류가 발생할 수 있는 경우를 살펴보면 하기와 같다.
첫 번째는 , 상기 420 과정의 연산시
Figure 112008005443008-PAT00486
에 오류가 발생하였을 경우이다.
이는
Figure 112008005443008-PAT00487
의 경우
Figure 112008005443008-PAT00488
의 값도 오류가 발생하게 되고, 430 과정에서의 입력 값
Figure 112008005443008-PAT00489
에 오류가 주입되었기 때문에
Figure 112008005443008-PAT00490
모두 오류가 주입된 값이므로 공격자가 올바르지 않는 값을 이용하여
Figure 112008005443008-PAT00491
또는
Figure 112008005443008-PAT00492
를 얻을 수 없다.
두 번째는, 상기 430 과정에서의
Figure 112008005443008-PAT00493
의 메모리에 오류가 발생하였을 경우이다.
이와 같은 경우는, 상기 첫 번째의 경우와 동일하게
Figure 112008005443008-PAT00494
모두 오류가 주입된 값이므로 공격자가 올바르지 않는 값을 이용하여
Figure 112008005443008-PAT00495
또는
Figure 112008005443008-PAT00496
를 얻지 못한다.
세 번째는, 상기 430 과정에서의 연산시에
Figure 112008005443008-PAT00497
에 오류가 발생하였을 경우이다.
이는 첫 번째 오류와는 달리
Figure 112008005443008-PAT00498
에 오류가 발생하는 경우
Figure 112008005443008-PAT00499
가 되며, 첫 번째 경우와는 달리 오류 확산이 일어나지 않는다. 따라서 별도로 확인하는 과정이 필요하다.
이는 450 과정에서
Figure 112008005443008-PAT00500
를 연산하는 것이다.
Figure 112008005443008-PAT00501
의 값의 모든 비트가 '1'이 아니기 때문에 상기 450 연산의 결과 값인
Figure 112008005443008-PAT00502
Figure 112008005443008-PAT00503
와 달라지기 때문에 상기 460 과정을 통과하지 못한다.
그 다음 네 번째는, 일시적인
Figure 112008005443008-PAT00504
의 오류이다.
이는 일시적으로
Figure 112008005443008-PAT00505
에 오류가 발생하였을 경우에는 첫 번째 분석과 동일하게 오류 확산이 일어나기 때문에 공격이 불가능하다. 또한 430 과정에서의
Figure 112008005443008-PAT00506
의 일시적 오류인 경우에도 두 번째 분석과 동일하게 460 과정을 통과하지 못한다.
그 다음 다섯 번째는 지속적인
Figure 112008005443008-PAT00507
의 오류이다.
이는 지속적으로
Figure 112008005443008-PAT00508
에 오류가 발생하였을 경우
Figure 112008005443008-PAT00509
는 오류가 주입된 값이 되지만,
Figure 112008005443008-PAT00510
의 값은 올바른 값이 된다. 따라서,
Figure 112008005443008-PAT00511
의 오류를 확인하는 과정이 없 다면 공격자는 공격을 성공하게 된다.
Figure 112008005443008-PAT00512
의 오류 확인 과정도 상기 450 과정에서
Figure 112008005443008-PAT00513
을 이용한다.
Figure 112008005443008-PAT00514
는 기존의 오류가 주입되지 않은
Figure 112008005443008-PAT00515
값과 동일하지만, 오류가 주입된
Figure 112008005443008-PAT00516
와 달라지므로 상기 460 과정을 통과하지 못하게 된다.
다른 오류가 주입되었을 경우에는, 기존의 Giraud의 방법의 분석과 동일하게 된다. 따라서 본 발명에서 제안하는 대응 방법은 상기 420 과정 및 430 과정에서의 입력 값에 대한 일시적인 오류까지 안전한 방법이다.
본 대응 방법은 기존의 방법보다 세 개의 레지스터
Figure 112008005443008-PAT00517
를 추가 사용하고, 상기 420 과정 및 430 과정에서의 두 번의 뺄셈 연산, 450 과정에서의 두 번의 덧셈 연산, AND 연산과 XOR 연산 만을 추가하여 공격자의 오류 주입에 대응하게 된다.
따라서, 본 발명에서는 오류 주입 공격과 단순 전력 분석 공격에 안전하다고 제안된 Giraud의 대응 방법에 대한 장점을 모두 취하며, 세 개의 레지스터를 더 요구하며 추가적인 연산으로 덧셈, 뺄셈 연산 그리고 XOR, AND 연산을 사용한다.
모듈러 지수성 연산에 필요한 연산량에 비교하면, 크게 고려하지 않아도 되는 추가 연산량이다. 따라서, 본 발명에 따르면 연산 능력과 메모리가 제안된 모든 환경에서 안전하게 이용될 수 있는 장점이 있다.
도 5는 본 발명에 따른 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서 명 장치의 블록도를 도시한 것이다.
도 5를 참조하면, 본 발명에 따른 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치는, 데이터 입력부(510), 사용자 데이터 선택부(520), 제 1 모듈라 지수승 연산부(531), 제 2 모듈라 지수승 연산부(532), 제 1 CRT 연산부(541), 제 2 CRT 연산부(542), 비교값 생성부(550) 및 제어부(560)으로 이루어질 수 있다.
서로 다른 소수
Figure 112008005443008-PAT00518
를 비밀키로,
Figure 112008005443008-PAT00519
를 만족하는
Figure 112008005443008-PAT00520
을 공개키로 euler totient 함수
Figure 112008005443008-PAT00521
과 서로 소인 소정의 정수
Figure 112008005443008-PAT00522
를 공개키로,
Figure 112008005443008-PAT00523
을 만족하는
Figure 112008005443008-PAT00524
를 비밀키로 이용하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치에 있어서, 데이터 입력부(510)는 인증된 수신자에게 전송하고자 하는 메시지
Figure 112008005443008-PAT00525
, 상기 서로 다른 소수
Figure 112008005443008-PAT00526
, 상기
Figure 112008005443008-PAT00527
Figure 112008005443008-PAT00528
로 모듈라 연산한
Figure 112008005443008-PAT00529
, 상기
Figure 112008005443008-PAT00530
Figure 112008005443008-PAT00531
로 모듈라 연산한
Figure 112008005443008-PAT00532
, 상기
Figure 112008005443008-PAT00533
Figure 112008005443008-PAT00534
의 합인
Figure 112008005443008-PAT00535
, 상기
Figure 112008005443008-PAT00536
Figure 112008005443008-PAT00537
로 모듈라 연산한
Figure 112008005443008-PAT00538
가 사용자에 의해 입력된다.
그리고, 사용자 데이터 선택부(520)는 상기 메시지
Figure 112008005443008-PAT00539
을 암호화하고자 하는 송신자에 의해 랜덤한 정수
Figure 112008005443008-PAT00540
가 선택되어 진다.
제 1 모듈라 지수승 연산부(531)는 상기
Figure 112008005443008-PAT00541
Figure 112008005443008-PAT00542
의 차에 따라
Figure 112008005443008-PAT00543
를 생성하고, 상기 메시지
Figure 112008005443008-PAT00544
Figure 112008005443008-PAT00545
승한 값을 상기
Figure 112008005443008-PAT00546
와 상기 정수
Figure 112008005443008-PAT00547
를 곱한 값으 로 모듈러 연산하여
Figure 112008005443008-PAT00548
값을 산출하며, 상기 메시지
Figure 112008005443008-PAT00549
Figure 112008005443008-PAT00550
승한 값을 상기
Figure 112008005443008-PAT00551
와 상기 정수
Figure 112008005443008-PAT00552
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00553
값을 산출한다.
제 2 모듈라 지수승 연산부(532)는 상기
Figure 112008005443008-PAT00554
Figure 112008005443008-PAT00555
의 차에 따라
Figure 112008005443008-PAT00556
를 생성하고, 상기 메시지
Figure 112008005443008-PAT00557
Figure 112008005443008-PAT00558
승한 값을 상기
Figure 112008005443008-PAT00559
와 상기 정수
Figure 112008005443008-PAT00560
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00561
값을 산출하고, 상기 메시지
Figure 112008005443008-PAT00562
Figure 112008005443008-PAT00563
승한 값을 상기
Figure 112008005443008-PAT00564
와 상기 정수
Figure 112008005443008-PAT00565
를 곱한 값으로 모듈러 연산하여
Figure 112008005443008-PAT00566
값을 산출한다.
여기서, 상기 제 1 모듈라 지수승 연산부(531)와 제 2 모듈라 지수승 연산부(532)는 병렬 연결되어 연산되므로 병렬 연산에 의해 연산 속도를 향상시킬 수 있다.
한편, 제 1 CRT 연산부(541)는 상기 연산된
Figure 112008005443008-PAT00567
Figure 112008005443008-PAT00568
로 이루어진 제 1 데이터 쌍을 이용하여 CRT 연산에 따라
Figure 112008005443008-PAT00569
를 생성한다.
그리고, 제 2 CRT 연산부(542)는 상기 연산된
Figure 112008005443008-PAT00570
Figure 112008005443008-PAT00571
로 이루어진 제 2 데이터 쌍을 이용하여 CRT 연산에 따라
Figure 112008005443008-PAT00572
를 생성한다.
비교값 생성부(550)는 상기
Figure 112008005443008-PAT00573
의 비트 길이인
Figure 112008005443008-PAT00574
와 모듈러
Figure 112008005443008-PAT00575
의 비트 길 이에 따라 생성되는 제 1 출력값과,
Figure 112008005443008-PAT00576
Figure 112008005443008-PAT00577
의 합에 상기
Figure 112008005443008-PAT00578
의 보수
Figure 112008005443008-PAT00579
를 제 1 논리 연산을 수행한 제 2 출력값을 합하여 제 1 총합값을 생성하고, 상기 메시지
Figure 112008005443008-PAT00580
Figure 112008005443008-PAT00581
를 곱한 값을
Figure 112008005443008-PAT00582
으로 모듈라 연산하여 제 3 출력값을 생성하여, 상기 제 1 총합값과 제 3 출력값을 입력으로 제 2 논리 연산을 수행하여 논리합 연산의 결과값을 생성한다.
여기서, 상기 논리합 연산의 결과값은 상기 수학식 11에 의해 생성되며, 상기 제 1 논리 연산은 AND 연산이며, 상기 제 2 논리 연산은 XOR 연산일 수 있다.
그리고, 제어부(560)는 상기 논리합 연산의 결과값과 상기
Figure 112008005443008-PAT00583
의 동일 여부에 따라 서명 인증값을 생성한다.
상기 제어부(560)는 상기 논리합 연산의 결과값과 상기
Figure 112008005443008-PAT00584
가 동일하면 서명 인증값을 출력하고, 상기 논리합 연산의 결과값과 상기
Figure 112008005443008-PAT00585
가 동일하지 않으면 오류 메시지를 출력할 수 있다.
이와 같이, 본 발명은 기존의 암호화 장치보다 세 개의 레지스터
Figure 112008005443008-PAT00586
만을 추가적으로 사용함으로써, 제 1 모듈라 지수승 연산부(531)와 제 2 모듈라 지수승 연산부(532)에서 수행되는 두 번의 뺄셈 연산, 비교값 생성부(550)에서의 두 번의 덧셈 연산, AND 연산 및 XOR 연산 만을 추가하여 공격자의 오류 주입 공격과 단순 전력 분석 공격에 모두 안전한 CRT-RSA 모듈라 지수승 알고 리즘을 이용한 디지털 서명 장치를 제공할 수 있다.
본 발명에 따른 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법은 컴퓨터 판독 가능 저장 매체를 통하여 실행될 수 있다.
컴퓨터 판독 가능 저장 매체로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 수행하는 코드 세그먼트(code segment)들이다.
상기 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.
컴퓨터가 읽을 수 있는 저장 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 저장 매체의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다.
또한, 컴퓨터가 읽을 수 있는 저장 매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방시으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명은 도면에 도시된 일 실시예를 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며, 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다.
그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다.
따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.
도 1은 종래의 모듈러 지수승 알고리즘을 도시한 것이다.
도 2는 Giraud의 종래의 단순 전력 분석 및 오류 주입 공격에 안전한 모듈러 지수승 알고리즘을 도시한 것이다.
도 3은 본 발명에 따른 모듈러 지수승 알고리즘을 도시한 것이다.
도 4는 본 발명에 따른 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법의 흐름도를 도시한 것이다.
도 5는 본 발명에 따른 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치의 블록도를 도시한 것이다.

Claims (14)

  1. 서로 다른 소수
    Figure 112008005443008-PAT00587
    를 비밀키로,
    Figure 112008005443008-PAT00588
    를 만족하는
    Figure 112008005443008-PAT00589
    을 공개키로 euler totient 함수
    Figure 112008005443008-PAT00590
    과 서로 소인 소정의 정수
    Figure 112008005443008-PAT00591
    를 공개키로,
    Figure 112008005443008-PAT00592
    을 만족하는
    Figure 112008005443008-PAT00593
    를 비밀키로 이용하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법에 있어서,
    인증된 수신자에게 전송하고자 하는 메시지
    Figure 112008005443008-PAT00594
    , 상기 서로 다른 소수
    Figure 112008005443008-PAT00595
    , 상기
    Figure 112008005443008-PAT00596
    Figure 112008005443008-PAT00597
    로 모듈라 연산한
    Figure 112008005443008-PAT00598
    , 상기
    Figure 112008005443008-PAT00599
    Figure 112008005443008-PAT00600
    로 모듈라 연산한
    Figure 112008005443008-PAT00601
    , 상기
    Figure 112008005443008-PAT00602
    Figure 112008005443008-PAT00603
    의 합인
    Figure 112008005443008-PAT00604
    , 상기
    Figure 112008005443008-PAT00605
    Figure 112008005443008-PAT00606
    로 모듈라 연산한
    Figure 112008005443008-PAT00607
    및 암호화하고자 하는 송신자에 의해 선택된 랜덤한 정수
    Figure 112008005443008-PAT00608
    를 수신하는 단계;
    상기
    Figure 112008005443008-PAT00609
    Figure 112008005443008-PAT00610
    의 차에 따라
    Figure 112008005443008-PAT00611
    를 생성하고, 상기 메시지
    Figure 112008005443008-PAT00612
    Figure 112008005443008-PAT00613
    승한 값을 상기
    Figure 112008005443008-PAT00614
    와 상기 정수
    Figure 112008005443008-PAT00615
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00616
    값을 산출하며, 상기 메시지
    Figure 112008005443008-PAT00617
    Figure 112008005443008-PAT00618
    승한 값을 상기
    Figure 112008005443008-PAT00619
    와 상기 정수
    Figure 112008005443008-PAT00620
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00621
    값을 산출하는 단계;
    상기
    Figure 112008005443008-PAT00622
    Figure 112008005443008-PAT00623
    의 차에 따라
    Figure 112008005443008-PAT00624
    를 생성하고, 상기 메시지
    Figure 112008005443008-PAT00625
    Figure 112008005443008-PAT00626
    승 한 값을 상기
    Figure 112008005443008-PAT00627
    와 상기 정수
    Figure 112008005443008-PAT00628
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00629
    값을 산출하고, 상기 메시지
    Figure 112008005443008-PAT00630
    Figure 112008005443008-PAT00631
    승한 값을 상기
    Figure 112008005443008-PAT00632
    와 상기 정수
    Figure 112008005443008-PAT00633
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00634
    값을 산출하는 단계;
    상기 연산된
    Figure 112008005443008-PAT00635
    Figure 112008005443008-PAT00636
    로 이루어진 제 1 데이터 쌍을 이용하여
    Figure 112008005443008-PAT00637
    를 생성하고, 상기 연산된
    Figure 112008005443008-PAT00638
    Figure 112008005443008-PAT00639
    로 이루어진 제 2 데이터 쌍을 이용하여
    Figure 112008005443008-PAT00640
    를 생성하는 단계;
    상기
    Figure 112008005443008-PAT00641
    의 비트 길이인
    Figure 112008005443008-PAT00642
    와 모듈러
    Figure 112008005443008-PAT00643
    의 비트 길이에 따라 생성되는 제 1 출력값과,
    Figure 112008005443008-PAT00644
    Figure 112008005443008-PAT00645
    의 합에 상기
    Figure 112008005443008-PAT00646
    의 보수
    Figure 112008005443008-PAT00647
    를 제 1 논리 연산을 수행한 제 2 출력값을 합하여 제 1 총합값을 생성하고, 상기 메시지
    Figure 112008005443008-PAT00648
    Figure 112008005443008-PAT00649
    를 곱한 값을
    Figure 112008005443008-PAT00650
    으로 모듈라 연산하여 제 3 출력값을 생성하여, 상기 제 1 총합값과 제 3 출력값을 입력으로 제 2 논리 연산을 수행하여 논리합 연산의 결과값을 생성하는 단계; 및
    상기 논리합 연산의 결과값과 상기
    Figure 112008005443008-PAT00651
    의 동일 여부에 따라 서명 인증값을 생성하는 단계를 포함하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법.
  2. 제 1 항에 있어서,
    상기 논리합 연산의 결과값인
    Figure 112008005443008-PAT00652
    Figure 112008005443008-PAT00653
    가 AND 연산이며
    Figure 112008005443008-PAT00654
    가 XOR 연산을 의미할 때, 하기의 식 1에 의해 생성되는 것을 특징으로 하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법.
    Figure 112008005443008-PAT00655
    (1)
  3. 제 1 항에 있어서,
    상기 제 1 논리 연산은 AND 연산이며, 상기 제 2 논리 연산은 XOR 연산인 것을 특징으로 하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법.
  4. 제 1 항에 있어서,
    상기 서명 인증값을 생성하는 단계는
    상기 논리합 연산의 결과값과 상기
    Figure 112008005443008-PAT00656
    가 동일하면 서명 인증값을 출력하고,
    상기 논리합 연산의 결과값과 상기
    Figure 112008005443008-PAT00657
    가 동일하지 않으면 오류 메시지를 출력하는 단계를 포함하는 것을 특징으로 하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법.
  5. 제 1 항에 있어서,
    상기
    Figure 112008005443008-PAT00658
    Figure 112008005443008-PAT00659
    각각 병렬로 CRT 연산에 따라 생성되는 것을 특징으로 하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법.
  6. 서로 다른 소수
    Figure 112008005443008-PAT00660
    를 비밀키로,
    Figure 112008005443008-PAT00661
    를 만족하는
    Figure 112008005443008-PAT00662
    을 공개키로 euler totient 함수
    Figure 112008005443008-PAT00663
    과 서로 소인 소정의 정수
    Figure 112008005443008-PAT00664
    를 공개키로,
    Figure 112008005443008-PAT00665
    을 만족하는
    Figure 112008005443008-PAT00666
    를 비밀키로 이용하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치에 있어서,
    인증된 수신자에게 전송하고자 하는 메시지
    Figure 112008005443008-PAT00667
    , 상기 서로 다른 소수
    Figure 112008005443008-PAT00668
    , 상기
    Figure 112008005443008-PAT00669
    Figure 112008005443008-PAT00670
    로 모듈라 연산한
    Figure 112008005443008-PAT00671
    , 상기
    Figure 112008005443008-PAT00672
    Figure 112008005443008-PAT00673
    로 모듈라 연산한
    Figure 112008005443008-PAT00674
    , 상기
    Figure 112008005443008-PAT00675
    Figure 112008005443008-PAT00676
    의 합인
    Figure 112008005443008-PAT00677
    및 상기
    Figure 112008005443008-PAT00678
    Figure 112008005443008-PAT00679
    로 모듈라 연산한
    Figure 112008005443008-PAT00680
    가 입력되는 데이터 입력부;
    상기 메시지
    Figure 112008005443008-PAT00681
    을 암호화하고자 하는 송신자에 의해 랜덤한 정수
    Figure 112008005443008-PAT00682
    가 선택되는 사용자 데이터 선택부;
    상기
    Figure 112008005443008-PAT00683
    Figure 112008005443008-PAT00684
    의 차에 따라
    Figure 112008005443008-PAT00685
    를 생성하고, 상기 메시지
    Figure 112008005443008-PAT00686
    Figure 112008005443008-PAT00687
    승한 값을 상기
    Figure 112008005443008-PAT00688
    와 상기 정수
    Figure 112008005443008-PAT00689
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00690
    값을 산출하며, 상기 메시지
    Figure 112008005443008-PAT00691
    Figure 112008005443008-PAT00692
    승한 값을 상기
    Figure 112008005443008-PAT00693
    와 상기 정수
    Figure 112008005443008-PAT00694
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00695
    값을 산출하는 제 1 모듈라 지수승 연산부;
    상기
    Figure 112008005443008-PAT00696
    Figure 112008005443008-PAT00697
    의 차에 따라
    Figure 112008005443008-PAT00698
    를 생성하고, 상기 메시지
    Figure 112008005443008-PAT00699
    Figure 112008005443008-PAT00700
    승한 값을 상기
    Figure 112008005443008-PAT00701
    와 상기 정수
    Figure 112008005443008-PAT00702
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00703
    값을 산출하고, 상기 메시지
    Figure 112008005443008-PAT00704
    Figure 112008005443008-PAT00705
    승한 값을 상기
    Figure 112008005443008-PAT00706
    와 상기 정수
    Figure 112008005443008-PAT00707
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00708
    값을 산출하는 제 2 모듈라 지수승 연산부;
    상기 연산된
    Figure 112008005443008-PAT00709
    Figure 112008005443008-PAT00710
    로 이루어진 제 1 데이터 쌍을 이용하여 CRT 연산에 따라
    Figure 112008005443008-PAT00711
    를 생성하는 제 1 CRT 연산부;
    상기 연산된
    Figure 112008005443008-PAT00712
    Figure 112008005443008-PAT00713
    로 이루어진 제 2 데이터 쌍을 이용하여 CRT 연산에 따라
    Figure 112008005443008-PAT00714
    를 생성하는 제 2 CRT 연산부;
    상기
    Figure 112008005443008-PAT00715
    의 비트 길이인
    Figure 112008005443008-PAT00716
    와 모듈러
    Figure 112008005443008-PAT00717
    의 비트 길이에 따라 생성되는 제 1 출력값과,
    Figure 112008005443008-PAT00718
    Figure 112008005443008-PAT00719
    의 합에 상기
    Figure 112008005443008-PAT00720
    의 보수
    Figure 112008005443008-PAT00721
    를 제 1 논리 연산을 수행한 제 2 출력값을 합하여 제 1 총합값을 생성하고, 상기 메시지
    Figure 112008005443008-PAT00722
    Figure 112008005443008-PAT00723
    를 곱한 값을
    Figure 112008005443008-PAT00724
    으로 모듈라 연산하여 제 3 출력값을 생성하여, 상기 제 1 총합값과 제 3 출력값을 입력으로 제 2 논리 연산을 수행하여 논리합 연산의 결과값을 생성하는 비교값 생성부; 및
    상기 논리합 연산의 결과값과 상기
    Figure 112008005443008-PAT00725
    의 동일 여부에 따라 서명 인증값을 생성하는 제어부를 포함하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치.
  7. 제 6 항에 있어서,
    상기 논리합 연산의 결과값은
    Figure 112008005443008-PAT00726
    가 AND 연산이며
    Figure 112008005443008-PAT00727
    가 XOR 연산을 의미할 때, 하기의 식 2에 의해 생성되는 것을 특징으로 하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치.
    Figure 112008005443008-PAT00728
    (2)
  8. 제 6 항에 있어서,
    상기 제 1 논리 연산은 AND 연산이며, 상기 제 2 논리 연산은 XOR 연산인 것을 특징으로 하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치.
  9. 제 6 항에 있어서,
    상기 제어부는
    상기 논리합 연산의 결과값과 상기
    Figure 112008005443008-PAT00729
    가 동일하면 서명 인증값을 출력하고,
    상기 논리합 연산의 결과값과 상기
    Figure 112008005443008-PAT00730
    가 동일하지 않으면 오류 메시지를 출력하는 것을 특징으로 하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치.
  10. 컴퓨터 판독 가능 저장 매체에 서로 다른 소수
    Figure 112008005443008-PAT00731
    를 비밀키로,
    Figure 112008005443008-PAT00732
    를 만족하는
    Figure 112008005443008-PAT00733
    을 공개키로 euler totient 함수
    Figure 112008005443008-PAT00734
    과 서로 소인 소정의 정수
    Figure 112008005443008-PAT00735
    를 공개키로,
    Figure 112008005443008-PAT00736
    을 만족하는
    Figure 112008005443008-PAT00737
    를 비밀키로 이용하는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명을 생성하는 프로그램이 기록되어 있고, 상기 프로그램은,
    인증된 수신자에게 전송하고자 하는 메시지
    Figure 112008005443008-PAT00738
    , 상기 서로 다른 소수
    Figure 112008005443008-PAT00739
    , 상기
    Figure 112008005443008-PAT00740
    Figure 112008005443008-PAT00741
    로 모듈라 연산한
    Figure 112008005443008-PAT00742
    , 상기
    Figure 112008005443008-PAT00743
    Figure 112008005443008-PAT00744
    로 모듈라 연산한
    Figure 112008005443008-PAT00745
    , 상기
    Figure 112008005443008-PAT00746
    Figure 112008005443008-PAT00747
    의 합인
    Figure 112008005443008-PAT00748
    , 상기
    Figure 112008005443008-PAT00749
    Figure 112008005443008-PAT00750
    로 모듈라 연산한
    Figure 112008005443008-PAT00751
    및 암호화하고자 하는 송신자에 의해 선택된 랜덤한 정수
    Figure 112008005443008-PAT00752
    에 따라 상기
    Figure 112008005443008-PAT00753
    Figure 112008005443008-PAT00754
    의 차에 따라
    Figure 112008005443008-PAT00755
    를 생성하고, 상기 메시지
    Figure 112008005443008-PAT00756
    Figure 112008005443008-PAT00757
    승한 값을 상기
    Figure 112008005443008-PAT00758
    와 상기 정수
    Figure 112008005443008-PAT00759
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00760
    값을 산출하며, 상기 메시지
    Figure 112008005443008-PAT00761
    Figure 112008005443008-PAT00762
    승한 값을 상기
    Figure 112008005443008-PAT00763
    와 상기 정수
    Figure 112008005443008-PAT00764
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00765
    값을 산출하도록 하는 코드;
    상기
    Figure 112008005443008-PAT00767
    의 차에 따라
    Figure 112008005443008-PAT00768
    를 생성하고, 상기 메시지
    Figure 112008005443008-PAT00769
    Figure 112008005443008-PAT00770
    승한 값을 상기
    Figure 112008005443008-PAT00771
    와 상기 정수
    Figure 112008005443008-PAT00772
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00773
    값을 산출하고, 상기 메시지
    Figure 112008005443008-PAT00774
    Figure 112008005443008-PAT00775
    승한 값을 상기
    Figure 112008005443008-PAT00776
    와 상기 정수
    Figure 112008005443008-PAT00777
    를 곱한 값으로 모듈러 연산하여
    Figure 112008005443008-PAT00778
    값을 산출하도록 하는 코드;
    상기 연산된
    Figure 112008005443008-PAT00779
    Figure 112008005443008-PAT00780
    로 이루어진 제 1 데이터 쌍을 이용하여
    Figure 112008005443008-PAT00781
    를 생성하고, 상기 연산된
    Figure 112008005443008-PAT00782
    Figure 112008005443008-PAT00783
    로 이루어진 제 2 데이터 쌍을 이용하여
    Figure 112008005443008-PAT00784
    를 생성하도록 하는 코드;
    상기
    Figure 112008005443008-PAT00785
    의 비트 길이인
    Figure 112008005443008-PAT00786
    와 모듈러
    Figure 112008005443008-PAT00787
    의 비트 길이에 따라 생성되는 제 1 출력값과,
    Figure 112008005443008-PAT00788
    Figure 112008005443008-PAT00789
    의 합에 상기
    Figure 112008005443008-PAT00790
    의 보수
    Figure 112008005443008-PAT00791
    를 제 1 논리 연산을 수행한 제 2 출력값을 합하여 제 1 총합값을 생성하고, 상기 메시지
    Figure 112008005443008-PAT00792
    Figure 112008005443008-PAT00793
    를 곱한 값을
    Figure 112008005443008-PAT00794
    으로 모듈라 연산하여 제 3 출력값을 생성하여, 상기 제 1 총합값과 제 3 출력값을 입력으로 제 2 논리 연산을 수행하여 논리합 연산의 결과값을 생성하도록 하는 코드; 및
    상기 논리합 연산의 결과값과 상기
    Figure 112008005443008-PAT00795
    의 동일 여부에 따라 서명 인증값을 생성하도록 하는 코드를 포함하는 컴퓨터 판독 가능 저장 매체.
  11. 제 10 항에 있어서,
    상기 논리합 연산의 결과값은
    Figure 112008005443008-PAT00796
    가 AND 연산이며
    Figure 112008005443008-PAT00797
    가 XOR 연산을 의미할 때, 하기의 식 3에 의해 생성되는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
    Figure 112008005443008-PAT00798
    (3)
  12. 제 10 항에 있어서,
    상기 제 1 논리 연산은 AND 연산이며, 상기 제 2 논리 연산은 XOR 연산인 것 을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  13. 제 10 항에 있어서,
    상기 서명 인증값을 생성하도록 하는 코드는
    상기 논리합 연산의 결과값과 상기
    Figure 112008005443008-PAT00799
    가 동일하면 서명 인증값을 출력하고,
    상기 논리합 연산의 결과값과 상기
    Figure 112008005443008-PAT00800
    가 동일하지 않으면 오류 메시지를 출력하도록 하는 코드를 포함하는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  14. 제 10 항에 있어서,
    상기
    Figure 112008005443008-PAT00801
    Figure 112008005443008-PAT00802
    각각 병렬로 CRT 연산에 따라 생성되는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
KR1020080006827A 2008-01-22 2008-01-22 Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체 KR100953715B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080006827A KR100953715B1 (ko) 2008-01-22 2008-01-22 Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080006827A KR100953715B1 (ko) 2008-01-22 2008-01-22 Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체

Publications (2)

Publication Number Publication Date
KR20090080842A true KR20090080842A (ko) 2009-07-27
KR100953715B1 KR100953715B1 (ko) 2010-04-19

Family

ID=41291877

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080006827A KR100953715B1 (ko) 2008-01-22 2008-01-22 Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체

Country Status (1)

Country Link
KR (1) KR100953715B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115139980A (zh) * 2022-07-07 2022-10-04 重庆长安汽车股份有限公司 车辆的控制方法、装置、云服务器及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101344402B1 (ko) * 2010-08-12 2013-12-26 한국전자통신연구원 Rsa 서명 방법 및 장치
KR102180029B1 (ko) 2014-02-03 2020-11-17 삼성전자 주식회사 Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991415A (en) 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
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
CN115139980A (zh) * 2022-07-07 2022-10-04 重庆长安汽车股份有限公司 车辆的控制方法、装置、云服务器及存储介质
CN115139980B (zh) * 2022-07-07 2023-10-13 重庆长安汽车股份有限公司 车辆的控制方法、装置、云服务器及存储介质

Also Published As

Publication number Publication date
KR100953715B1 (ko) 2010-04-19

Similar Documents

Publication Publication Date Title
CA2542556C (en) An authentication system executing an elliptic curve digital signature cryptographic process
CA2792787C (en) System and method for protecting cryptographic assets from a white-box attack
US6049610A (en) Method and apparatus for digital signature authentication
KR100891323B1 (ko) 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
JP4086503B2 (ja) 暗号演算装置及び方法並びにプログラム
EP3596876B1 (en) Elliptic curve point multiplication device and method for signing a message in a white-box context
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
KR100652377B1 (ko) 모듈라 지수승 알고리즘, 기록매체 및 시스템
US7043015B2 (en) Methods for point compression for Jacobians of hyperelliptic curves
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
KR100396740B1 (ko) 계산적 디피-헬만 가정에 기반하는 안전성 증명 가능한공개키 암호화 방법
KR100953715B1 (ko) Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
KR100431047B1 (ko) Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치
JP4626148B2 (ja) 復号または署名作成におけるべき乗剰余算の計算方法
CN1985458B (zh) 增强的自然蒙哥马利指数掩蔽和恢复的方法和装置
KR100954844B1 (ko) 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체
KR100953716B1 (ko) Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
KR101112570B1 (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
Lone et al. Common attacks on RSA and its variants with possible countermeasures
Upadhyay Attack on RSA cryptosystem
KR20130054591A (ko) Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법
KR20050102291A (ko) 부가채널 공격들로부터 공개키 암호 시스템을 보호하기위한 방법과 장치, 및 상기 방법을 기록한 컴퓨터로 읽을수 있는 기록매체
KR101094339B1 (ko) 오류주입 공격에 안전한 피아트 샤미르 개인 식별 장치, 방법 및 그 기록 매체
Shukla et al. A Comparative analysis of the attacks on public key RSA cryptosystem
Yeh et al. The orthogonal signature

Legal Events

Date Code Title Description
A201 Request for examination
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