KR101112570B1 - 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체 - Google Patents

전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체 Download PDF

Info

Publication number
KR101112570B1
KR101112570B1 KR1020100033335A KR20100033335A KR101112570B1 KR 101112570 B1 KR101112570 B1 KR 101112570B1 KR 1020100033335 A KR1020100033335 A KR 1020100033335A KR 20100033335 A KR20100033335 A KR 20100033335A KR 101112570 B1 KR101112570 B1 KR 101112570B1
Authority
KR
South Korea
Prior art keywords
value
data pair
intermediate value
signature
operator
Prior art date
Application number
KR1020100033335A
Other languages
English (en)
Other versions
KR20110113965A (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 KR1020100033335A priority Critical patent/KR101112570B1/ko
Publication of KR20110113965A publication Critical patent/KR20110113965A/ko
Application granted granted Critical
Publication of KR101112570B1 publication Critical patent/KR101112570B1/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/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

Landscapes

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

Abstract

본 발명의 일 실시 예에 따른 디지털 서명 장치는 N=pq를 만족하는 서로 다른 두 소수인 비밀키 p와 q, 오일러의 totient 함수
Figure 112010023166913-pat00268
을 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 m, 서로 다른 두 소수 p와 q, 비밀키 d, d를 p-1로 모듈러 연산한 dp, d를 q-1로 모듈러 연산한 dq, p와 q의 합인 T1을 수신하고, 제1 정수 k 및 제2 정수 r을 랜덤하게 선택하는 초기화부; 초기화부의 값들을 이용하여 제1 데이터 쌍
Figure 112010023166913-pat00269
, 제2 데이터 쌍
Figure 112010023166913-pat00270
, 서명 연산자를 연산하는 지수승 연산부; 제1 데이터 쌍의
Figure 112010023166913-pat00271
와 제2 데이터 쌍의
Figure 112010023166913-pat00272
를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값
Figure 112010023166913-pat00273
를 산출하고, 제1 데이터 쌍의
Figure 112010023166913-pat00274
와 제2 데이터 쌍의
Figure 112010023166913-pat00275
를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값
Figure 112010023166913-pat00276
를 산출하는 중간값 연산부;
Figure 112010023166913-pat00277
의 비트열 길이와 N의 비트열 길이에 따라 결정된 제로 비트 생성 인자
Figure 112010023166913-pat00278
,
Figure 112010023166913-pat00279
의 보수
Figure 112010023166913-pat00280
, p 및 q'를 이용하여 중간 연산자
Figure 112010023166913-pat00281
를 연산하는 중간 연산자 연산부;
Figure 112010023166913-pat00282
Figure 112010023166913-pat00283
의 논리곱 연산을 수행하여 제1 중간값을 갱신하는 제1 중간값 갱신부;
Figure 112010023166913-pat00284
Figure 112010023166913-pat00285
로 나눈값과 제2 중간값을 논리곱 연산을 수행하여 제2 중간값을 갱신하는 제2 중간값 갱신부; 및 서명 연산자를
Figure 112010023166913-pat00286
에 곱하여 최종 서명값을 생성하는 서명값 생성부를 포함한다.

Description

전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체 {Apparatus and Method for digital signature immune to power analysis and fault attacks, and Recording medium thereof}
본 발명은 암호 알고리즘 및 암호 프로토콜에 관한 것으로, 특히, 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체에 관한 것이다.
공개키 암호 알고리즘은 개선된 암호화 표준(Advanced Encryption Standard:AES)을 포함하는 비밀키 암호 알고리즘의 단점인 키 분배 문제, 전자 서명 문제 등을 해결하면서 인터넷이나 금융 망과 같은 여러 분야의 응용에 빠르게 적용이 되어 가고 있다.
전송되는 내용을 암호화하여 전송하는 방식에는 대칭키 암호화 방식과 공개키 암호화 방식이 있고, 공개키 암호화 방식 중에서 현재 인터넷이나 금융계 중에서 표준으로 선택되어 널리 사용되고 있는 방식으로는 RSA(Rivest Shamir Adleman) 공개키 암호화 방식이 있다.
RSA 공개키 암호화 방식은 Rivest, Shamir 및 Adleman에 의해 제안된 방식으로 암호화문에 따른 데이터의 크기가 커질수록 소인수 분해가 어렵다는 점에 그 안전도의 기반을 두고 있다.
한편, Kocher에 의하여 부채널 공격이 소개된 후, 내장형 장치(embedded device)의 암호 알고리즘에 대한 다양한 공격 방법이 소개되었다. 수동적인 공격 방법으로 분류되는 부채널 공격은 공격자가 알고리즘 수행 시간, 알고리즘의 동작 중에 사용되는 전력량, 그리고 전자파를 이용하여 공격하며 이를 각 시간 공격(Timing Attack:TA), 단순 전력 분석(Simple Power Analysis:SPA), 차분 전력 분석(Differential Power Analysis:DPA), 전자파 분석(Electro-Magnetic Analysis:EMA)이라고 한다.
능동적인 공격은 변형된 외부 클럭을 주입하거나, 온도를 변화시키거나 장치에 X-ray와 같은 레이저를 이용하여 공격하며, 이와 같이 능동적인 공격 방법을 오류 주입 공격(Fault Attack:FA)이라고 한다.
Bellcore에 의해 중국인의 나머지 정리(Chinese Remainder Theorem:CRT)를 이용한 RSA 암호 시스템(CRT-RSA)에서의 오류 주입 공격 방법이 제시된 후, 최근 DES, RSA, ElGamal, ECC, AES 등 다양한 암호 알고리즘이 오류 주입 공격 방법에 의해 공격되었다.
한편, CRT-RSA에서의 오류 주입 공격 방법에 대해서 스마트 카드의 사용이 증가하면서 효율적인 부채널 공격과 오류 주입 공격에 안전한 대응 방법이 요구되고, 스마트 카드와 같은 내장형 장치에는 연산 능력과 메모리가 제한적이기 때문에 적은 메모리와 연산량을 사용하는 효율적인 대응 방법이 요구되며 이에 대한 연구가 많이 진행되었다.
최근 Giraud가 처음으로 전력 분석 공격 방법 중 하나인 단순 전력 공격 분석과 오류 주입 공격에 안전한 방법을 제안하였다.
Giraud 방법에서의 지수승 알고리즘은 단순 전력 분석과 오류 주입 공격에 안전한 Montgomery Ladder 방법을 이용하여 연산되고, 개인키만을 이용하여 오류 주입을 확인하게 된다. 따라서 개인키 만을 사용할 수 있는 자바 카드(Java card)의 공개키 환경에서도 안전하게 사용될 수 있다.
전술한 바와 같이, RSA 공개키 암호화 방식에서는 일반 공개키 암호화 방식에서와 같이 일반인도 알 수 있는 공개키와 암호화를 시키는 본인만이 알 수 있는 비밀키가 있다.
상기 CRT-RSA 암호화에 방식에서의 오류 주입 공격을 소개하기로 한다.
개인키 d, 및 메시지 m에 대한 RSA 서명값 S는
Figure 112010023166913-pat00001
이다. 여기서 n은 공개 모듈라값이고, 비밀값인 큰 소수 p와 q의 곱으로 연산된다.
한편, 암호화 표준에서는 RSA 서명 생성과정의 속도를 향상하기 위하여 중국인의 나머지 정리(Chinese Remainder Theorem:CRT)를 이용한 RSA 암호 시스템(CRT-RSA)을 사용하기를 권고 하고 있다.
도 1에 따른 알고리즘 1에서 단계 3을
Figure 112010023166913-pat00002
로 표기하고,
Figure 112010023166913-pat00003
Figure 112010023166913-pat00004
이고,
Figure 112010023166913-pat00005
Figure 112010023166913-pat00006
이 된다.
상기 도 1에 의하면, 서명값 S의 생성 속도는 향상되나, 최근 연구 논문들에 의하여 오류 주입 공격에 안전하지 않다는 것이 알려졌다. 여기서, 오류 주입 공격을 상술하기 전에 기호를 정의하기로 한다.
첫 번째로, 연산의 중간값
Figure 112010023166913-pat00007
에 오류
Figure 112010023166913-pat00008
가 주입된 경우를
Figure 112010023166913-pat00009
라고 표기하고, 이를 하기의 수학식 1로 정의한다.
Figure 112010023166913-pat00010
따라서, 상기 수학식 1에 의하여
Figure 112010023166913-pat00011
을 만족한다.
한편, CRT-RSA의 오류 주입 공격시의 중간값들도 하기와 같이 표현된다. 상기 표 1의 알고리즘 1에서 단계 1에서 오류가 주입된 제 1 중간 결과값은
Figure 112010023166913-pat00012
이고, 단계 2의 중간 결과값은
Figure 112010023166913-pat00013
이며, 오류가 주입된 CRT 연산 결과값
Figure 112010023166913-pat00014
Figure 112010023166913-pat00015
에 의해 연산된다. 여기서,
Figure 112010023166913-pat00016
을 연산하면, 비밀값인 q를 얻을 수 있다.
이러한 공격 방법이 소개된 후, 샤미르(Shamir)가 CRT-RSA 암호 시스템에 대한 오류 주입 공격에 대한 대응 방법을 제안하였다. 샤미르가 제안하는 방법은 32비트 정도의 랜덤한 값 r을 선택한 후에
Figure 112010023166913-pat00017
,
Figure 112010023166913-pat00018
을 연산하고, CRT 연산 전에
Figure 112010023166913-pat00019
을 만족하는지를 확인하는데,
Figure 112010023166913-pat00020
또는
Figure 112010023166913-pat00021
에서 오류가 발생하였을 경우에는
Figure 112010023166913-pat00022
의 연산 단계를 통과하지 못하기 때문에 오류 주입 여부를 확인할 수 있다.
이하는, 오류 주입의 대응 방법으로 알려진 대표적인 CRT-RSA 알고리즘을 살펴본다. 기존의 방법들은 비교 연산을 사용하는 방법과 비교 연산을 사용하지 않는 방법으로 나눌 수 있다.
우선, 비교 연산을 사용하는 대응 방법을 살펴보기로 한다. Giraud의 방법에 의하면, SPA에 안전한 몽고메리 래더(Montgomery ladder) 지수승 연산 방법과 두 번의 CRT 연산을 이용하여
Figure 112010023166913-pat00023
Figure 112010023166913-pat00024
을 연산하고,
Figure 112010023166913-pat00025
가 되는 것과 나머지 메모리 공간의 오류주입을 확인하여 결과를 출력하게 된다.
한편,
Figure 112010023166913-pat00026
의 값은
Figure 112010023166913-pat00027
로 정의하기로 한다.
그 다음은, BNP에 의한 방법으로, BNP 방법은 지수승 연산에서 오류가 주입되지 않았을 경우의 각 메모리 공간의 값이
Figure 112010023166913-pat00028
가 되는 것을 이용하여
Figure 112010023166913-pat00029
이 되는 것을 확인하여 결과값을 출력하게 된다. 이 방법 외에도 대부분의 CRT-RSA 알고리즘의 대응 방법이 비교 연산을 통하여 오류를 확인한다.
하기는 비교 연산을 사용하지 않는 오류 주입에 대한 대응 방법에 대한 상술이다. 우선, 옌(Yen)의 방법으로, 이는
Figure 112010023166913-pat00030
의 추가적인 메모리 공간을 이용하여 비교 연산을 사용하지 않고, 이외의 메모리에 오류가 발생하였을 경우, 오류 확산이라는 방법을 통하여 오류가 발생된 출력 값을 가지고는 비밀 정보를 알 수 없게 하는 방법이다.
이와 같은 기존의 CRT-RSA 대응 방법은 아래와 같이 크게 3 단계의 연산 과정으로 구분할 수 있다. 첫 번째는
Figure 112010023166913-pat00031
Figure 112010023166913-pat00032
의 연산 과정이고, 두 번째는
Figure 112010023166913-pat00033
의 연산 과정이고, 세 번째는 오류 주입의 여부 확인 과정이다. 각 단계마다 다양한 오류주입 공격이 가능하므로 안전한 CRT-RSA 알고리즘을 설계하기 위해서는 각 단계마다 다양한 오류 주입의 공격에 모두 안전하여야 한다.
CRT-RSA 암호화 과정에서 고려하는 하드웨어 오류 주입 공격 방법은 아래와 같다. 첫 번째는, 데이터 랜덤화(Data Randomization)에 관한 것으로, 연산에 필요한 데이터를 랜덤 값으로 오류를 주입하는 공격방법이다. 이 때, 공격자는 랜덤값을 알 수 없고, 데이터가 저장되어 있는 메모리 공간에 오류를 주입하여 공격자는 지속적 오류와 메모리를 참조할 경우의 오류를 발생하는 일시적 오류로 나눌 수 있다.
두 번째는, 데이터 리셋(Resetting Data)에 관한 것으로, 공격자가 알 수 없는 랜덤으로 데이터를 변화하는 데이터 랜덤화와는 달리 데이터의 각 비트를 '0' 또는 '1'로 데이터를 리셋하는 공격방법이다.
세 번째는, 옵코드 변경(opcode Modifying)에 관한 것으로, 수행하는 명령어를 스킵하여 오류가 주입된 서명값을 출력하도록 함으로써 비밀 정보를 알아낸다
최초, 오류 주입 공격이 개시되었을 경우에는 한 번의 오류 주입의 공격만 고려하였지만, 현재 실험을 통하여 두 번의 서로 다른 연산에 오류가 주입되는 것까지 고려하게 된다. 예를 들어, 한번의 공격에서 특정 메모리에는 랜덤하게 오류가 주입되고, 다른 메모리에는 '0'으로 리셋되는 경우를 고려하게 된다
각각의 오류주입 공격에 대한 기존 대응 방법의 안전성은 다음과 같다. 우선, ABFHS, Ciet, Giraud BNP의 경우는 3번째 단계인 오류 주입 확인 과정을 수행하기 위하여 비료 연산을 수행하게 된다. 이 경우는 비교 연산으로 인한 옵코드 변형(modifying opcode) 공격이 가능하다.
비교 연산의 안전성을 살펴보면, 실제로 비교 연산(a=b)의 연산 과정은 c=a-b의 단계와 c=0 인지를 확인하는 두 단계의 과정으로 나눌 수 있다. 만약, 공격자가 하기와 같은 두 개의 오류를 CRT 기반의 RSA 서명 생성 과정에 주입하게 되면 공격자는 비밀 정보를 알 수 있다. 첫 번째 오류는 서명 값을 생성하는 중간 과정에서 발생하는 오류이다. 그리고, 두 번째 오류는 c=0을 확인하는 과정에 주입하여, c=0을 확인하는 과정을 건너뛰게 하는 것이다.
종래 연구에서 실험을 통하여 두 번째 오류 주입이 가능함이 확인되었고, 비교 연산을 이용한 알고리즘의 경우, 첫 번째 오류 확인을 비교 연산을 통하여 확인하게 되는데, 두 번째 오류 과정을 통하여 첫 번째 오류가 무조건 통과하게 되므로 공격자는 비밀 정보를 얻을 수 있게 된다.
한편, ABFHS, Yen, BNP의 경우에는 특정 메모리에 랜덤하게 오류가 주입된 경우 p 또는 q의 값을 알 수 있게 된다. 예를 들어, 도 2의 Yen의 알고리즘에서
Figure 112010023166913-pat00034
,
Figure 112010023166913-pat00035
의 경우에는 공격자는 p 또는 q의 값을 알 수 있게 된다. 다시 말하면, 특정 메모리가 p 또는 q 연산에 모두 사용되지 않아서, 오류가 주입된 경우에 gcd 연산을 통하여 비밀값을 알 수 있게 된다.
이는, 도 2의 단계 3에서,
Figure 112010023166913-pat00036
이므로, 서명값은 하기의 수학식 2와 같이 생성된다.
Figure 112010023166913-pat00037
따라서,
Figure 112010023166913-pat00038
를 만족하게 된다. 그러므로,
Figure 112010023166913-pat00039
값을 사용하기 위하여 메모리에 접근할 경우 발생한 오류나
Figure 112010023166913-pat00040
값을 연산할 때 발생하는 오류의 경우에는 안전하지 않다.
최근 이러한 문제를 해결하기 위해 CHK 알고리즘이 제안되었으나, 알고리즘 수행 과정의 연산 부하가 지나치게 크다. 따라서, 종래의 CRT-RSA 알고리즘은 연산 부하가 지나치게 크거나 데이터 랜덤화, 데이터 리셋, 옵코드의 변경 등에 안전하지 않아, 암호화에 대한 신뢰도 및 안전성을 보장할 수 없다는 문제점을 안고 있다.
따라서, 본 발명이 이루고자 하는 첫 번째 기술적 과제는 연산 부하가 크지 않으면서 데이터 랜덤화, 데이터 리셋, 옵코드의 변경 등에 대해 안전성을 향상시킬 수 있는, 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치를 제공하는 데 있다.
본 발명이 이루고자 하는 두 번째 기술적 과제는 상기의 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치에 적용되는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 세 번째 기술적 과제는 상기의 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 첫 번째 기술적 과제를 이루기 위하여, 본 발명의 일 실시 예에 따른 디지털 서명 장치는 N=pq를 만족하는 서로 다른 두 소수인 비밀키 p와 q, 오일러의 totient 함수
Figure 112010023166913-pat00041
을 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 m, 상기 서로 다른 두 소수 p와 q, 비밀키 d, 상기 d를 p-1로 모듈러 연산한 dp, 상기 d를 q-1로 모듈러 연산한 dq, 상기 p와 q의 합인 T1을 수신하고, 제1 정수 k 및 제2 정수 r을 랜덤하게 선택하는 초기화부; 상기
Figure 112010023166913-pat00042
을 이용하여 제1 데이터 쌍
Figure 112010023166913-pat00043
을 연산하고,
Figure 112010023166913-pat00044
을 이용하여 제2 데이터 쌍
Figure 112010023166913-pat00045
을 연산하며,
Figure 112010023166913-pat00046
을 이용하여 서명 연산자를 연산하는 지수승 연산부; 상기 제1 데이터 쌍의
Figure 112010023166913-pat00047
와 상기 제2 데이터 쌍의
Figure 112010023166913-pat00048
를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값
Figure 112010023166913-pat00049
를 산출하고, 상기 제1 데이터 쌍의
Figure 112010023166913-pat00050
와 상기 제2 데이터 쌍의
Figure 112010023166913-pat00051
를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값
Figure 112010023166913-pat00052
를 산출하는 중간값 연산부; 상기
Figure 112010023166913-pat00053
의 비트열 길이와 상기 N의 비트열 길이에 따라 결정된 제로 비트 생성 인자
Figure 112010023166913-pat00054
, 상기
Figure 112010023166913-pat00055
의 보수
Figure 112010023166913-pat00056
, 상기 p 및 q'를 이용하여 중간 연산자
Figure 112010023166913-pat00057
를 연산하는 중간 연산자 연산부; 상기
Figure 112010023166913-pat00058
Figure 112010023166913-pat00059
의 논리곱 연산을 수행하여 상기 제1 중간값을 갱신하는 제1 중간값 갱신부; 상기
Figure 112010023166913-pat00060
Figure 112010023166913-pat00061
로 나눈값과 상기 제2 중간값을 논리곱 연산을 수행하여 상기 제2 중간값을 갱신하는 제2 중간값 갱신부; 및 상기 서명 연산자를
Figure 112010023166913-pat00062
에 곱하여 최종 서명값을 생성하는 서명값 생성부를 포함한다.
상기의 두 번째 기술적 과제를 이루기 위하여, 본 발명의 일 실시 예에 따른 디지털 서명 방법은 N=pq를 만족하는 서로 다른 두 소수인 비밀키 p와 q, 오일러의 totient 함수
Figure 112010023166913-pat00063
을 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 m, 상기 서로 다른 두 소수 p와 q, 비밀키 d, 상기 d를 p-1로 모듈러 연산한 dp, 상기 d를 q-1로 모듈러 연산한 dq, 상기 p와 q의 합인 T1을 수신하고, 제1 정수 k 및 제2 정수 r을 랜덤하게 선택하는 단계; 상기
Figure 112010023166913-pat00064
을 이용하여 제1 데이터 쌍
Figure 112010023166913-pat00065
을 연산하고, 상기
Figure 112010023166913-pat00066
을 이용하여 제2 데이터 쌍
Figure 112010023166913-pat00067
을 연산하며,
Figure 112010023166913-pat00068
을 이용하여 서명 연산자를 연산하는 단계; 상기 제1 데이터 쌍의
Figure 112010023166913-pat00069
와 상기 제2 데이터 쌍의
Figure 112010023166913-pat00070
를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값
Figure 112010023166913-pat00071
를 산출하고, 상기 제1 데이터 쌍의
Figure 112010023166913-pat00072
와 상기 제2 데이터 쌍의
Figure 112010023166913-pat00073
를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값
Figure 112010023166913-pat00074
를 산출하는 단계; 상기
Figure 112010023166913-pat00075
의 비트열 길이와 상기 N의 비트열 길이에 따라 결정된 제로 비트 생성 인자
Figure 112010023166913-pat00076
, 상기
Figure 112010023166913-pat00077
의 보수
Figure 112010023166913-pat00078
, 상기 p 및 q'를 이용하여 중간 연산자
Figure 112010023166913-pat00079
를 생성하는 단계; 상기
Figure 112010023166913-pat00080
Figure 112010023166913-pat00081
의 논리곱 연산을 수행하여 상기 제1 중간값을 갱신하는 단계; 상기
Figure 112010023166913-pat00082
Figure 112010023166913-pat00083
로 나눈값과 상기 제2 중간값을 논리곱 연산을 수행하여 상기 제2 중간값을 갱신하는 단계; 및 상기 서명 연산자를
Figure 112010023166913-pat00084
에 곱하여 최종 서명값을 생성하는 단계를 포함한다.
본 발명에 의하면, 대표적인 오류 주입 공격인 SPA, DPA, FA에 모두 안전한 서명 생성 기법을 제공하여 암호화의 신뢰성 및 안전성을 제공하며, 종래의 CRT-RSA 암호화 알고리즘에 비하여 연산량을 감소시켜 빠른 연산 처리 속도를 제공할 수 있다.
도 1 및 2는 종래의 CRT-RSA 알고리즘의 예를 도시한 것이다.
도 3은 본 발명의 일 실시 예에 따른 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치의 블록도이다.
도 4는 본 발명에 따른 지수승 알고리즘을 도시한 것이다.
도 5는 본 발명에 따른 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법의 알고리즘이다.
도 6은 비트 연산을 통해 올바른 서명값을 얻는 과정을 도시한 것이다.
도 7은 본 발명의 일 실시 예에 따른 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법의 흐름도이다.
도 8은 기존의 알고리즘과 본 발명의 일 실시 예에 따른 알고리즘의 연산 복잡도 및 안전성을 비교한 것이다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나, 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다.
이하에서 송신자는 스마트 카드 기타 인증 정보나 개인 정보를 저장하는 장치를 의미한다. 수신자는 송신자로부터 수신되는 정보를 이용하여 송신자를 검증하는 장치나 서버 등을 의미한다.
본 발명의 실시 예들은 N=pq를 만족하는 서로 다른 소수 두 p와 q를 비밀키로 이용하고, 오일러의 totient 함수
Figure 112010023166913-pat00085
, 비밀키 d를 이용하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법 및 장치에 관한 것이다.
도 3은 본 발명의 일 실시 예에 따른 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치의 블록도이다.
초기화부(310)는 인증된 수신자에게 전송하고자 하는 메시지 m, 서로 다른 두 소수 p와 q, 비밀키 d, 비밀키 d를 p-1로 모듈러 연산한 dp, 비밀키 d를 q-1로 모듈러 연산한 dq, p와 q의 합인 T1,
Figure 112010023166913-pat00086
등의 암호화 인자를 수신한다. 또한, 초기화부(310)는 제1 정수 k 및 제2 정수 r을 랜덤하게 선택한다.
지수승 연산부(320)는
Figure 112010023166913-pat00087
을 이용하여 제1 데이터 쌍
Figure 112010023166913-pat00088
을 연산한다. 본 발명의 지수승 연산부(320)는 체크섬을 사용하지 않으므로 기존 지수승 연산 방법에 비해 메모리 공간과 계산의 복잡도를 줄일 수 있다.
또한, 지수승 연산부(320)는
Figure 112010023166913-pat00089
을 이용하여 제2 데이터 쌍
Figure 112010023166913-pat00090
을 연산한다. 한편, 지수승 연산부(320)는
Figure 112010023166913-pat00091
을 이용하여 서명 연산자를 연산한다.
중간값 연산부(330)는
Figure 112010023166913-pat00092
Figure 112010023166913-pat00093
를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값
Figure 112010023166913-pat00094
를 산출하고,
Figure 112010023166913-pat00095
Figure 112010023166913-pat00096
를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값
Figure 112010023166913-pat00097
를 산출한다.
중간 연산자 연산부(340)는
Figure 112010023166913-pat00098
의 비트열 길이와 N의 비트열 길이에 따라 결정된 제로 비트 생성 인자
Figure 112010023166913-pat00099
,
Figure 112010023166913-pat00100
의 보수
Figure 112010023166913-pat00101
, p 및 q'를 이용하여 중간 연산자
Figure 112010023166913-pat00102
를 연산한다.
제1 중간값 갱신부(351)는
Figure 112010023166913-pat00103
Figure 112010023166913-pat00104
Figure 112010023166913-pat00105
의 논리곱 연산을 수행하여 제1 중간값을 갱신한다.
제2 중간값 갱신부(352)는
Figure 112010023166913-pat00106
Figure 112010023166913-pat00107
로 나눈값과 제2 중간값을 논리곱 연산을 수행하여 제2 중간값을 갱신한다.
서명값 생성부(360)는 지수승 연산부(320)에서 연산된 서명 연산자를
Figure 112010023166913-pat00108
에 곱하여 최종 서명값을 생성한다.
Figure 112010023166913-pat00109
는 XOR 연산자를 의미한다.
한편, 도 3의 서명 장치는 송신자에 해당한다. 이하에서는 이와 같이 송신자 측의 서명 장치에서 수행되는 알고리즘의 예를 구체적으로 설명한다.
도 4는 본 발명에 따른 지수승 알고리즘을 도시한 것이다.
도 4의 지수승 알고리즘은
Figure 112010023166913-pat00110
의 값을 입력받고,
Figure 112010023166913-pat00111
을 연산한다.
Figure 112010023166913-pat00112
의 값은 p와 q에 대한 오류 주입을 확인하기 위한 값이다. 도 4의 지수승 알고리즘은 체크섬을 사용하지 않으므로 기존 지수승 연산 알고리즘에 비해 메모리 공간과 계산의 복잡도를 줄일 수 있다. 상세한 설명은 하기에 더욱 상술하기로 한다. 도 4의 알고리즘은 CRT-RSA 연산에서 역원 계산을 하지 않도록 설계된 것이다. 또한, 도 4의 알고리즘은 SPA의 경우, 지수승 알고리즘의 경우 분기점을 사용하지 않기 때문에 안전한 방법이다. 그리고, DPA의 경우, 랜덤 값을 사용하여 중간 연산 값을 알 수 없으므로 DPA에 안전한 알고리즘이다.
도 5는 본 발명에 따른 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법의 알고리즘이다. 도 5에서, 입력값은
Figure 112010023166913-pat00113
등이다. 여기서,
Figure 112010023166913-pat00114
이다.
단계 1은 랜덤값 k, r을 선택하고, 중간 연산자
Figure 112010023166913-pat00115
를 0으로 초기화하는 과정이다.
단계 2는 단계 1에서 선택된 k, r과
Figure 112010023166913-pat00116
을 이용하여 제1 데이터 쌍
Figure 112010023166913-pat00117
, 제2 데이터 쌍
Figure 112010023166913-pat00118
Figure 112010023166913-pat00119
을 연산한다.
보다 상세하게는, 도 3의 입력값
Figure 112010023166913-pat00120
의 인자를 순서대로 제1 데이터 집합인
Figure 112010023166913-pat00121
로 대체함으로써 도 3의 알고리즘을 기반으로 제1 데이터 쌍
Figure 112010023166913-pat00122
을 생성한다. 제1 데이터 쌍
Figure 112010023166913-pat00123
는 하기의 수학식 3과 같은 값을 가지게 된다.
Figure 112010023166913-pat00124
마찬가지로, 도 4의 입력값인
Figure 112010023166913-pat00125
의 인자를 순서대로 제2 데이터 집합인
Figure 112010023166913-pat00126
로 대체함으로써 도 4의 알고리즘을 기반으로 제2 데이터 쌍
Figure 112010023166913-pat00127
을 생성한다. 제2 데이터 쌍
Figure 112010023166913-pat00128
는 하기의 수학식 4와 같은 값을 가지게 된다.
Figure 112010023166913-pat00129
단계 2에서는 이에 더하여,
Figure 112010023166913-pat00130
을 이용하여
Figure 112010023166913-pat00131
을 연산한다.
Figure 112010023166913-pat00132
은 수학식 5와 같이 연산될 수 있다.
Figure 112010023166913-pat00133
이하에서는,
Figure 112010023166913-pat00134
을 '서명 연산자'로 정의한다.
그 다음, 단계 3에서는 단계 2에서 생성된
Figure 112010023166913-pat00135
를 입력값으로, 중국인의 나머지 정리를 이용하여 제1 중간값 S'=
Figure 112010023166913-pat00136
와, 제2 중간값 S=
Figure 112010023166913-pat00137
을 연산한다. CRTOur(A, B) 함수는 수학식 6과 같이 중국인의 나머지 정리를 수행하는 함수를 의미한다.
Figure 112010023166913-pat00138
본 발명에서는 기존의 방법이 아닌 수학식 6과 같은 CRTour방법을 사용하므로 p, q에 대한 오류 체크를 따로 하지 않아도 p', q'을 사용하여 안전한 알고리즘을 구현할 수 있다.
Figure 112010023166913-pat00139
Figure 112010023166913-pat00140
는 각각 수학식 7 및 8과 같이 연산된다.
Figure 112011062153913-pat00297

Figure 112011062153913-pat00298
삭제
그 다음, 단계 4에서는
Figure 112010023166913-pat00143
의 연산이 수행된다. 이때,
Figure 112010023166913-pat00144
는 N의 문자열의 길이에
Figure 112010023166913-pat00145
의 문자열의 길이를 뺀값(
Figure 112010023166913-pat00146
)에 해당하는 값이다. 오류가 주입되지 않았을 경우에는
Figure 112010023166913-pat00147
,
Figure 112010023166913-pat00148
이다. 이 경우,
Figure 112010023166913-pat00149
,
Figure 112010023166913-pat00150
이 된다. 결국, 이 경우, 중간 연산자
Figure 112010023166913-pat00151
가 된다.
단계 5에서, 중간 연산자
Figure 112010023166913-pat00152
의 값을 이용하여
Figure 112010023166913-pat00153
의 하위 비트들을
Figure 112010023166913-pat00154
길이만큼 '0'으로 만든다.
그 다음, 단계 6에서
Figure 112010023166913-pat00155
의 상위
Figure 112010023166913-pat00156
길이 만큼을 '0'으로 만든다. 도 6을 참고하면, 단계 5의
Figure 112010023166913-pat00157
와 단계 6의
Figure 112010023166913-pat00158
를 XOR 연산하였을 경우 올바른 서명값을 얻을 수 있음을 알 수 있다.
최종적으로, 서명 연산자
Figure 112010023166913-pat00159
Figure 112010023166913-pat00160
에 곱하여 최종 서명값 Sig를 생성한다.
도 5의 알고리즘에서는 기존과는 달리 역원 계산을 하지 않는데, 역원 계산은 계산 연산량이 보통 지수승 연산보다 크다. 따라서 도 5의 알고리즘은 역원 계산을 하지 않으므로 복잡도를 많이 줄일 수 있다.
도 7은 본 발명의 일 실시 예에 따른 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법의 흐름도이다.
우선, 인증된 수신자에게 전송하고자 하는 메시지 m, 서로 다른 두 소수 p와 q, 비밀키 d를 p-1로 모듈러 연산한 dp, d를 q-1로 모듈러 연산한 dq, p와 q의 합인
Figure 112010023166913-pat00161
, Iq등을 수신하고, 암호화하고자 하는 송신자가 제1 정수 k, 제2 정수 r을 선택한다(S710).
다음,
Figure 112010023166913-pat00162
을 이용하여 제1 데이터 쌍
Figure 112010023166913-pat00163
을 연산하고,
Figure 112010023166913-pat00164
을 이용하여 제2 데이터 쌍
Figure 112010023166913-pat00165
을 연산한다(S720). 여기서, 제1 데이터 쌍
Figure 112010023166913-pat00166
는 상기의 수학식 3과 같은 값을 갖는다. 또한, 제2 데이터 쌍
Figure 112010023166913-pat00167
는 상기의 수학식 4와 같은 값을 갖는다.
다음,
Figure 112010023166913-pat00168
을 이용하여 서명 연산자를 연산한다(S730). 서명 연산자는 수학식 5에 의해 생성될 수 있다.
그 다음, 제1 데이터 쌍의
Figure 112010023166913-pat00169
와 제2 데이터 쌍의
Figure 112010023166913-pat00170
를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값
Figure 112010023166913-pat00171
를 산출한다(S740). 제1 중간값
Figure 112010023166913-pat00172
는 수학식 7에 의해 생성될 수 있다.
그 다음, 제1 데이터 쌍의
Figure 112010023166913-pat00173
와 제2 데이터 쌍의
Figure 112010023166913-pat00174
를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값
Figure 112010023166913-pat00175
를 산출한다(S750). 제2 중간값
Figure 112010023166913-pat00176
는 수학식 8에 의해 생성될 수 있다.
그 다음,
Figure 112010023166913-pat00177
의 비트열의 길이와 N의 비트열의 길이에 따라 결정된 제로 비트 생성 인자
Figure 112010023166913-pat00178
,
Figure 112010023166913-pat00179
의 보수
Figure 112010023166913-pat00180
, p 및 q'를 이용하여
Figure 112010023166913-pat00181
를 생성한다(S760). 여기서, 제로 비트 생성 인자
Figure 112010023166913-pat00182
는 N의 이진 비트열의 길이를 len(N)이라고 하고,
Figure 112010023166913-pat00183
의 이진 비트열의 길이를
Figure 112010023166913-pat00184
이라고 할 때,
Figure 112010023166913-pat00185
에 의해 생성될 수 있다. 그러면, 제로 비트 생성 인자를 이용하여,
Figure 112010023166913-pat00186
의 값은 하기의 수학식 9에 의해 생성될 수 있다.
Figure 112010023166913-pat00187
그런 다음,
Figure 112010023166913-pat00188
Figure 112010023166913-pat00189
의 논리곱 연산을 수행하여 제1 중간값 S'를 갱신한다(S770). 이와 같이 갱신되는 제1 중간값 S'는 하기의 수학식 10과 같이 표현될 수 있다.
Figure 112010023166913-pat00190
그 다음,
Figure 112010023166913-pat00191
Figure 112010023166913-pat00192
로 나눈값과 S를 논리곱 연산을 수행하여 제2 중간값 S를 갱신한다(S780). 이와 같이 갱신되는 제2 중간값 S는 하기의 수학식 11과 같이 표현될 수 있다.
Figure 112010023166913-pat00193
그 다음, 최종적으로 서명 연산자
Figure 112010023166913-pat00194
Figure 112010023166913-pat00195
에 곱하여 최종 서명값 Sig를 생성한다(S790). 최종 서명값 Sig는 하기의 수학식 12와 같이 표현될 수 있다.
Figure 112010023166913-pat00196
이와 같은 과정으로 본 발명은 전력 분석과 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명을 생성할 수 있게 된다.
도 8은 기존의 CHK 알고리즘, Giraud의 알고리즘 등과 본 발명의 일 실시 예에 따른 알고리즘(Ours)의 연산 복잡도 및 안전성을 비교한 것이다.
본 발명의 일 실시 예에 따른 알고리즘(Ours)은 CHK 알고리즘과 비교하여 안전성(Weak against)은 동일하나, 모듈라 지수승(modular exponentiation) 등에서 적은 연산을 필요로 한다. 또한, CHK 알고리즘이 공개키 e를 필요로 하는 반면, 본 발명의 일 실시 예에 따른 알고리즘(Ours)은 공개키 e가 불필요하여 더 유리하다. 한편, 본 발명의 일 실시 예에 따른 알고리즘(Ours)은 Giraud의 알고리즘에 비해 안전성(Weak against)이 뛰어남을 알 수 있다.
본 발명은 소프트웨어를 통해 실행될 수 있다. 바람직하게는, 본 발명의 실시 예들에 따른 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 기록매체에 기록하여 제공할 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.
컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명은 도면에 도시된 실시 예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시 예의 변형이 가능하다는 점을 이해할 것이다. 그리고, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.

Claims (14)

  1. N=pq를 만족하는 서로 다른 두 소수인 비밀키 p와 q, 오일러의 totient 함수
    Figure 112010023166913-pat00197
    을 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법에 있어서,
    인증된 수신자에게 전송하고자 하는 메시지 m, 상기 서로 다른 두 소수 p와 q, 비밀키 d, 상기 d를 p-1로 모듈러 연산한 dp, 상기 d를 q-1로 모듈러 연산한 dq, 상기 p와 q의 합인 T1을 수신하고, 제1 정수 k 및 제2 정수 r을 랜덤하게 선택하는 단계;
    상기
    Figure 112010023166913-pat00198
    을 이용하여 제1 데이터 쌍
    Figure 112010023166913-pat00199
    을 연산하고, 상기
    Figure 112010023166913-pat00200
    을 이용하여 제2 데이터 쌍
    Figure 112010023166913-pat00201
    을 연산하며,
    Figure 112010023166913-pat00202
    을 이용하여 서명 연산자를 연산하는 단계;
    상기 제1 데이터 쌍의
    Figure 112010023166913-pat00203
    와 상기 제2 데이터 쌍의
    Figure 112010023166913-pat00204
    를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값
    Figure 112010023166913-pat00205
    를 산출하고, 상기 제1 데이터 쌍의
    Figure 112010023166913-pat00206
    와 상기 제2 데이터 쌍의
    Figure 112010023166913-pat00207
    를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값
    Figure 112010023166913-pat00208
    를 산출하는 단계;
    상기
    Figure 112010023166913-pat00209
    의 비트열 길이와 상기 N의 비트열 길이에 따라 결정된 제로 비트 생성 인자
    Figure 112010023166913-pat00210
    , 상기
    Figure 112010023166913-pat00211
    의 보수
    Figure 112010023166913-pat00212
    , 상기 p 및 q'를 이용하여 중간 연산자
    Figure 112010023166913-pat00213
    를 생성하는 단계;
    상기
    Figure 112010023166913-pat00214
    Figure 112010023166913-pat00215
    의 논리곱 연산을 수행하여 상기 제1 중간값을 갱신하는 단계;
    상기
    Figure 112010023166913-pat00216
    Figure 112010023166913-pat00217
    로 나눈값과 상기 제2 중간값을 논리곱 연산을 수행하여 상기 제2 중간값을 갱신하는 단계; 및
    상기 서명 연산자를
    Figure 112010023166913-pat00218
    에 곱하여 최종 서명값을 생성하는 단계를 포함하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법.
  2. 제1 항에 있어서,
    상기 제1 데이터 쌍은 하기의 식 1에 의해 생성되는 것을 특징으로 하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법.
    Figure 112010023166913-pat00219
    (1)
  3. 제2 항에 있어서,
    상기 제2 데이터 쌍은 하기의 식 2에 의해 생성되는 것을 특징으로 하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법.
    Figure 112010023166913-pat00220
    (2)
  4. 제1 항에 있어서,
    상기 제1 중간값은
    Figure 112011062153913-pat00221
    일 때, 하기의 식 3에 의해 생성되는 것을 특징으로 하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법.
    CRTour(S'p,S'q)=((( S'q - S'p)mod(k?q'))?Iqmod(k?q'))?p' + S'p modN (3)
    (상기 식에서
    Figure 112011062153913-pat00223
    Figure 112011062153913-pat00224
    Figure 112011062153913-pat00225
    를 입력값으로 중국인의 나머지 정리를 수행하는 함수를 의미함.)
  5. 제1 항에 있어서,
    상기 제2 중간값은
    Figure 112011062153913-pat00226
    일 때, 하기의 식 4에 의해 생성되는 것을 특징으로 하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법.
    CRTour(Sp,Sq)=((( Sq - Sp)mod(k?q'))?Iqmod(k?q'))?p' + Sp modN (4)
    (상기 식에서
    Figure 112011062153913-pat00228
    Figure 112011062153913-pat00229
    Figure 112011062153913-pat00230
    를 입력값으로 중국인의 나머지 정리를 수행하는 함수를 의미함.)
  6. 제1 항에 있어서,
    상기 서명 연산자는
    하기의 식 5에 의해 결정되는 것을 특징으로 하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법.
    Figure 112010023166913-pat00231
    (5)
  7. 제1 항에 있어서,
    상기 중간 연산자는
    하기의 식 6에 의해 생성되는 것을 특징으로 하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법.
    Figure 112010023166913-pat00232
    (6)
  8. 제1 항에 있어서,
    상기 최종 서명값은 하기의 식 7에 의해 생성되는 것을 특징으로 하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법.
    Figure 112010023166913-pat00233
    (7)
  9. 제1 항 내지 제8 항 중 어느 한 항의 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 기록매체.
  10. N=pq를 만족하는 서로 다른 두 소수인 비밀키 p와 q, 오일러의 totient 함수
    Figure 112010023166913-pat00234
    을 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치에 있어서,
    인증된 수신자에게 전송하고자 하는 메시지 m, 상기 서로 다른 두 소수 p와 q, 비밀키 d, 상기 d를 p-1로 모듈러 연산한 dp, 상기 d를 q-1로 모듈러 연산한 dq, 상기 p와 q의 합인 T1을 수신하고, 제1 정수 k 및 제2 정수 r을 랜덤하게 선택하는 초기화부;
    상기
    Figure 112010023166913-pat00235
    을 이용하여 제1 데이터 쌍
    Figure 112010023166913-pat00236
    을 연산하고,
    Figure 112010023166913-pat00237
    을 이용하여 제2 데이터 쌍
    Figure 112010023166913-pat00238
    을 연산하며,
    Figure 112010023166913-pat00239
    을 이용하여 서명 연산자를 연산하는 지수승 연산부;
    상기 제1 데이터 쌍의
    Figure 112010023166913-pat00240
    와 상기 제2 데이터 쌍의
    Figure 112010023166913-pat00241
    를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값
    Figure 112010023166913-pat00242
    를 산출하고, 상기 제1 데이터 쌍의
    Figure 112010023166913-pat00243
    와 상기 제2 데이터 쌍의
    Figure 112010023166913-pat00244
    를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값
    Figure 112010023166913-pat00245
    를 산출하는 중간값 연산부;
    상기
    Figure 112010023166913-pat00246
    의 비트열 길이와 상기 N의 비트열 길이에 따라 결정된 제로 비트 생성 인자
    Figure 112010023166913-pat00247
    , 상기
    Figure 112010023166913-pat00248
    의 보수
    Figure 112010023166913-pat00249
    , 상기 p 및 q'를 이용하여 중간 연산자
    Figure 112010023166913-pat00250
    를 연산하는 중간 연산자 연산부;
    상기
    Figure 112010023166913-pat00251
    Figure 112010023166913-pat00252
    의 논리곱 연산을 수행하여 상기 제1 중간값을 갱신하는 제1 중간값 갱신부;
    상기
    Figure 112010023166913-pat00253
    Figure 112010023166913-pat00254
    로 나눈값과 상기 제2 중간값을 논리곱 연산을 수행하여 상기 제2 중간값을 갱신하는 제2 중간값 갱신부; 및
    상기 서명 연산자를
    Figure 112010023166913-pat00255
    에 곱하여 최종 서명값을 생성하는 서명값 생성부를 포함하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치.
  11. 제10 항에 있어서,
    상기 제1 중간값은
    Figure 112011062153913-pat00256
    일 때, 하기의 식 8에 의해 생성되는 것을 특징으로 하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치.
    CRTour(S'p,S'q)=((( S'q - S'p)mod(k?q'))?Iqmod(k?q'))?p' + S'p modN (8)
    (상기 식에서
    Figure 112011062153913-pat00258
    Figure 112011062153913-pat00259
    Figure 112011062153913-pat00260
    를 입력값으로 중국인의 나머지 정리를 수행하는 함수를 의미함.)
  12. 제10 항에 있어서,
    상기 제2 중간값은
    Figure 112011062153913-pat00261
    일 때, 하기의 식 9에 의해 생성되는 것을 특징으로 하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치.
    CRTour(Sp,Sq)=((( Sq - Sp)mod(k?q'))?Iqmod(k?q'))?p' + Sp modN (9)
    (상기 식에서
    Figure 112011062153913-pat00263
    Figure 112011062153913-pat00264
    Figure 112011062153913-pat00265
    를 입력값으로 중국인의 나머지 정리를 수행하는 함수를 의미함.)
  13. 제10 항에 있어서,
    상기 서명 연산자는
    하기의 식 10에 의해 결정되는 것을 특징으로 하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치.
    Figure 112011062153913-pat00266
    (10)
  14. 제10 항에 있어서,
    상기 최종 서명값은 하기의 식 11에 의해 생성되는 것을 특징으로 하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치.
    Figure 112010023166913-pat00267
    (11)
KR1020100033335A 2010-04-12 2010-04-12 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체 KR101112570B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100033335A KR101112570B1 (ko) 2010-04-12 2010-04-12 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100033335A KR101112570B1 (ko) 2010-04-12 2010-04-12 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체

Publications (2)

Publication Number Publication Date
KR20110113965A KR20110113965A (ko) 2011-10-19
KR101112570B1 true KR101112570B1 (ko) 2012-03-13

Family

ID=45029125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100033335A KR101112570B1 (ko) 2010-04-12 2010-04-12 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체

Country Status (1)

Country Link
KR (1) KR101112570B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9571281B2 (en) 2014-02-03 2017-02-14 Samsung Electronics Co., Ltd. CRT-RSA encryption method and apparatus

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102375031B1 (ko) * 2020-10-19 2022-03-17 국방과학연구소 전자서명 알고리즘의 부채널 분석 방법 및 그 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030061497A (ko) * 2002-01-14 2003-07-22 한국정보보호진흥원 중국인 나머지 정리(crt) 기반의 오류 공격에 대응하는 방법 및 그 장치
KR20030070733A (ko) * 2002-02-26 2003-09-02 주홍정보통신주식회사 Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치
KR20060013124A (ko) * 2004-08-06 2006-02-09 삼성전자주식회사 모듈라 지수승 알고리즘, 기록매체 및 시스템
KR20090093141A (ko) * 2008-02-28 2009-09-02 고려대학교 산학협력단 Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030061497A (ko) * 2002-01-14 2003-07-22 한국정보보호진흥원 중국인 나머지 정리(crt) 기반의 오류 공격에 대응하는 방법 및 그 장치
KR20030070733A (ko) * 2002-02-26 2003-09-02 주홍정보통신주식회사 Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치
KR20060013124A (ko) * 2004-08-06 2006-02-09 삼성전자주식회사 모듈라 지수승 알고리즘, 기록매체 및 시스템
KR20090093141A (ko) * 2008-02-28 2009-09-02 고려대학교 산학협력단 Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9571281B2 (en) 2014-02-03 2017-02-14 Samsung Electronics Co., Ltd. CRT-RSA encryption method and apparatus

Also Published As

Publication number Publication date
KR20110113965A (ko) 2011-10-19

Similar Documents

Publication Publication Date Title
CA2792787C (en) System and method for protecting cryptographic assets from a white-box attack
EP3059894B1 (en) Modular multiplication using look-up tables
KR100891323B1 (ko) 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
US8369517B2 (en) Fast scalar multiplication for elliptic curve cryptosystems over prime fields
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
EP3596876B1 (en) Elliptic curve point multiplication device and method for signing a message in a white-box context
CA2542556A1 (en) An authentication system executing an elliptic curve digital signature cryptographic process
EP3191936B1 (en) System and method for one-time chinese-remainder-theorem exponentiation for cryptographic algorythms
JP2011530093A (ja) 累乗法による暗号化を保護する解決策
KR100652377B1 (ko) 모듈라 지수승 알고리즘, 기록매체 및 시스템
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
EP3698262B1 (en) Protecting modular inversion operation from external monitoring attacks
EP2738973A1 (en) System and method for cryptography using multiplicative masking using simultaneous exponentiation techniques
KR101112570B1 (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
KR100954844B1 (ko) 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체
KR100953715B1 (ko) Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
CN1985458B (zh) 增强的自然蒙哥马利指数掩蔽和恢复的方法和装置
EP3166013B1 (en) Modular exponentiation using randomized addition chains
KR100953716B1 (ko) Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
KR20030070733A (ko) Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치
KR101341810B1 (ko) Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법
KR102510077B1 (ko) 부채널 공격에 안전한 연산 장치 및 방법
Kaminaga et al. Crashing modulus attack on modular squaring for rabin cryptosystem
Tejashwini et al. Mobile communication security using Galios Field in elliptic curve Cryptography
KR20240040437A (ko) 암호 연산 방법, 및 상기 방법을 수행하는 전자 장치

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: 20150108

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160125

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee