KR20110113965A - 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체 - Google Patents
전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체 Download PDFInfo
- Publication number
- KR20110113965A KR20110113965A KR1020100033335A KR20100033335A KR20110113965A KR 20110113965 A KR20110113965 A KR 20110113965A KR 1020100033335 A KR1020100033335 A KR 1020100033335A KR 20100033335 A KR20100033335 A KR 20100033335A KR 20110113965 A KR20110113965 A KR 20110113965A
- Authority
- KR
- South Korea
- Prior art keywords
- value
- data pair
- intermediate value
- signature
- operator
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3249—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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 함수 을 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 m, 서로 다른 두 소수 p와 q, 비밀키 d, d를 p-1로 모듈러 연산한 dp, d를 q-1로 모듈러 연산한 dq, p와 q의 합인 T1을 수신하고, 제1 정수 k 및 제2 정수 r을 랜덤하게 선택하는 초기화부; 초기화부의 값들을 이용하여 제1 데이터 쌍 , 제2 데이터 쌍 , 서명 연산자를 연산하는 지수승 연산부; 제1 데이터 쌍의 와 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값 를 산출하고, 제1 데이터 쌍의 와 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값 를 산출하는 중간값 연산부; 의 비트열 길이와 N의 비트열 길이에 따라 결정된 제로 비트 생성 인자 , 의 보수 , p 및 q'를 이용하여 중간 연산자 를 연산하는 중간 연산자 연산부; 와 의 논리곱 연산을 수행하여 제1 중간값을 갱신하는 제1 중간값 갱신부; 를 로 나눈값과 제2 중간값을 논리곱 연산을 수행하여 제2 중간값을 갱신하는 제2 중간값 갱신부; 및 서명 연산자를 에 곱하여 최종 서명값을 생성하는 서명값 생성부를 포함한다.
Description
본 발명은 암호 알고리즘 및 암호 프로토콜에 관한 것으로, 특히, 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체에 관한 것이다.
공개키 암호 알고리즘은 개선된 암호화 표준(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 암호화에 방식에서의 오류 주입 공격을 소개하기로 한다.
한편, 암호화 표준에서는 RSA 서명 생성과정의 속도를 향상하기 위하여 중국인의 나머지 정리(Chinese Remainder Theorem:CRT)를 이용한 RSA 암호 시스템(CRT-RSA)을 사용하기를 권고 하고 있다.
상기 도 1에 의하면, 서명값 S의 생성 속도는 향상되나, 최근 연구 논문들에 의하여 오류 주입 공격에 안전하지 않다는 것이 알려졌다. 여기서, 오류 주입 공격을 상술하기 전에 기호를 정의하기로 한다.
한편, CRT-RSA의 오류 주입 공격시의 중간값들도 하기와 같이 표현된다. 상기 표 1의 알고리즘 1에서 단계 1에서 오류가 주입된 제 1 중간 결과값은 이고, 단계 2의 중간 결과값은 이며, 오류가 주입된 CRT 연산 결과값 는 에 의해 연산된다. 여기서, 을 연산하면, 비밀값인 q를 얻을 수 있다.
이러한 공격 방법이 소개된 후, 샤미르(Shamir)가 CRT-RSA 암호 시스템에 대한 오류 주입 공격에 대한 대응 방법을 제안하였다. 샤미르가 제안하는 방법은 32비트 정도의 랜덤한 값 r을 선택한 후에 , 을 연산하고, CRT 연산 전에 을 만족하는지를 확인하는데, 또는 에서 오류가 발생하였을 경우에는 의 연산 단계를 통과하지 못하기 때문에 오류 주입 여부를 확인할 수 있다.
이하는, 오류 주입의 대응 방법으로 알려진 대표적인 CRT-RSA 알고리즘을 살펴본다. 기존의 방법들은 비교 연산을 사용하는 방법과 비교 연산을 사용하지 않는 방법으로 나눌 수 있다.
우선, 비교 연산을 사용하는 대응 방법을 살펴보기로 한다. Giraud의 방법에 의하면, SPA에 안전한 몽고메리 래더(Montgomery ladder) 지수승 연산 방법과 두 번의 CRT 연산을 이용하여 과 을 연산하고, 가 되는 것과 나머지 메모리 공간의 오류주입을 확인하여 결과를 출력하게 된다.
그 다음은, BNP에 의한 방법으로, BNP 방법은 지수승 연산에서 오류가 주입되지 않았을 경우의 각 메모리 공간의 값이 가 되는 것을 이용하여 이 되는 것을 확인하여 결과값을 출력하게 된다. 이 방법 외에도 대부분의 CRT-RSA 알고리즘의 대응 방법이 비교 연산을 통하여 오류를 확인한다.
하기는 비교 연산을 사용하지 않는 오류 주입에 대한 대응 방법에 대한 상술이다. 우선, 옌(Yen)의 방법으로, 이는 의 추가적인 메모리 공간을 이용하여 비교 연산을 사용하지 않고, 이외의 메모리에 오류가 발생하였을 경우, 오류 확산이라는 방법을 통하여 오류가 발생된 출력 값을 가지고는 비밀 정보를 알 수 없게 하는 방법이다.
이와 같은 기존의 CRT-RSA 대응 방법은 아래와 같이 크게 3 단계의 연산 과정으로 구분할 수 있다. 첫 번째는 와 의 연산 과정이고, 두 번째는 의 연산 과정이고, 세 번째는 오류 주입의 여부 확인 과정이다. 각 단계마다 다양한 오류주입 공격이 가능하므로 안전한 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의 알고리즘에서 , 의 경우에는 공격자는 p 또는 q의 값을 알 수 있게 된다. 다시 말하면, 특정 메모리가 p 또는 q 연산에 모두 사용되지 않아서, 오류가 주입된 경우에 gcd 연산을 통하여 비밀값을 알 수 있게 된다.
최근 이러한 문제를 해결하기 위해 CHK 알고리즘이 제안되었으나, 알고리즘 수행 과정의 연산 부하가 지나치게 크다. 따라서, 종래의 CRT-RSA 알고리즘은 연산 부하가 지나치게 크거나 데이터 랜덤화, 데이터 리셋, 옵코드의 변경 등에 안전하지 않아, 암호화에 대한 신뢰도 및 안전성을 보장할 수 없다는 문제점을 안고 있다.
따라서, 본 발명이 이루고자 하는 첫 번째 기술적 과제는 연산 부하가 크지 않으면서 데이터 랜덤화, 데이터 리셋, 옵코드의 변경 등에 대해 안전성을 향상시킬 수 있는, 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치를 제공하는 데 있다.
본 발명이 이루고자 하는 두 번째 기술적 과제는 상기의 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치에 적용되는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 세 번째 기술적 과제는 상기의 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 첫 번째 기술적 과제를 이루기 위하여, 본 발명의 일 실시 예에 따른 디지털 서명 장치는 N=pq를 만족하는 서로 다른 두 소수인 비밀키 p와 q, 오일러의 totient 함수 을 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 m, 상기 서로 다른 두 소수 p와 q, 비밀키 d, 상기 d를 p-1로 모듈러 연산한 dp, 상기 d를 q-1로 모듈러 연산한 dq, 상기 p와 q의 합인 T1을 수신하고, 제1 정수 k 및 제2 정수 r을 랜덤하게 선택하는 초기화부; 상기 을 이용하여 제1 데이터 쌍 을 연산하고, 을 이용하여 제2 데이터 쌍 을 연산하며, 을 이용하여 서명 연산자를 연산하는 지수승 연산부; 상기 제1 데이터 쌍의 와 상기 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값 를 산출하고, 상기 제1 데이터 쌍의 와 상기 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값 를 산출하는 중간값 연산부; 상기 의 비트열 길이와 상기 N의 비트열 길이에 따라 결정된 제로 비트 생성 인자 , 상기 의 보수 , 상기 p 및 q'를 이용하여 중간 연산자 를 연산하는 중간 연산자 연산부; 상기 와 의 논리곱 연산을 수행하여 상기 제1 중간값을 갱신하는 제1 중간값 갱신부; 상기 를 로 나눈값과 상기 제2 중간값을 논리곱 연산을 수행하여 상기 제2 중간값을 갱신하는 제2 중간값 갱신부; 및 상기 서명 연산자를 에 곱하여 최종 서명값을 생성하는 서명값 생성부를 포함한다.
상기의 두 번째 기술적 과제를 이루기 위하여, 본 발명의 일 실시 예에 따른 디지털 서명 방법은 N=pq를 만족하는 서로 다른 두 소수인 비밀키 p와 q, 오일러의 totient 함수 을 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 m, 상기 서로 다른 두 소수 p와 q, 비밀키 d, 상기 d를 p-1로 모듈러 연산한 dp, 상기 d를 q-1로 모듈러 연산한 dq, 상기 p와 q의 합인 T1을 수신하고, 제1 정수 k 및 제2 정수 r을 랜덤하게 선택하는 단계; 상기 을 이용하여 제1 데이터 쌍 을 연산하고, 상기 을 이용하여 제2 데이터 쌍 을 연산하며, 을 이용하여 서명 연산자를 연산하는 단계; 상기 제1 데이터 쌍의 와 상기 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값 를 산출하고, 상기 제1 데이터 쌍의 와 상기 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값 를 산출하는 단계; 상기 의 비트열 길이와 상기 N의 비트열 길이에 따라 결정된 제로 비트 생성 인자 , 상기 의 보수 , 상기 p 및 q'를 이용하여 중간 연산자 를 생성하는 단계; 상기 와 의 논리곱 연산을 수행하여 상기 제1 중간값을 갱신하는 단계; 상기 를 로 나눈값과 상기 제2 중간값을 논리곱 연산을 수행하여 상기 제2 중간값을 갱신하는 단계; 및 상기 서명 연산자를 에 곱하여 최종 서명값을 생성하는 단계를 포함한다.
본 발명에 의하면, 대표적인 오류 주입 공격인 SPA, DPA, FA에 모두 안전한 서명 생성 기법을 제공하여 암호화의 신뢰성 및 안전성을 제공하며, 종래의 CRT-RSA 암호화 알고리즘에 비하여 연산량을 감소시켜 빠른 연산 처리 속도를 제공할 수 있다.
도 1 및 2는 종래의 CRT-RSA 알고리즘의 예를 도시한 것이다.
도 3은 본 발명의 일 실시 예에 따른 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치의 블록도이다.
도 4는 본 발명에 따른 지수승 알고리즘을 도시한 것이다.
도 5는 본 발명에 따른 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법의 알고리즘이다.
도 6은 비트 연산을 통해 올바른 서명값을 얻는 과정을 도시한 것이다.
도 7은 본 발명의 일 실시 예에 따른 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법의 흐름도이다.
도 8은 기존의 알고리즘과 본 발명의 일 실시 예에 따른 알고리즘의 연산 복잡도 및 안전성을 비교한 것이다.
도 3은 본 발명의 일 실시 예에 따른 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치의 블록도이다.
도 4는 본 발명에 따른 지수승 알고리즘을 도시한 것이다.
도 5는 본 발명에 따른 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법의 알고리즘이다.
도 6은 비트 연산을 통해 올바른 서명값을 얻는 과정을 도시한 것이다.
도 7은 본 발명의 일 실시 예에 따른 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법의 흐름도이다.
도 8은 기존의 알고리즘과 본 발명의 일 실시 예에 따른 알고리즘의 연산 복잡도 및 안전성을 비교한 것이다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나, 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다.
이하에서 송신자는 스마트 카드 기타 인증 정보나 개인 정보를 저장하는 장치를 의미한다. 수신자는 송신자로부터 수신되는 정보를 이용하여 송신자를 검증하는 장치나 서버 등을 의미한다.
본 발명의 실시 예들은 N=pq를 만족하는 서로 다른 소수 두 p와 q를 비밀키로 이용하고, 오일러의 totient 함수 , 비밀키 d를 이용하는 오류 주입 공격에 안전한 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법 및 장치에 관한 것이다.
도 3은 본 발명의 일 실시 예에 따른 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치의 블록도이다.
초기화부(310)는 인증된 수신자에게 전송하고자 하는 메시지 m, 서로 다른 두 소수 p와 q, 비밀키 d, 비밀키 d를 p-1로 모듈러 연산한 dp, 비밀키 d를 q-1로 모듈러 연산한 dq, p와 q의 합인 T1, 등의 암호화 인자를 수신한다. 또한, 초기화부(310)는 제1 정수 k 및 제2 정수 r을 랜덤하게 선택한다.
지수승 연산부(320)는 을 이용하여 제1 데이터 쌍 을 연산한다. 본 발명의 지수승 연산부(320)는 체크섬을 사용하지 않으므로 기존 지수승 연산 방법에 비해 메모리 공간과 계산의 복잡도를 줄일 수 있다.
한편, 도 3의 서명 장치는 송신자에 해당한다. 이하에서는 이와 같이 송신자 측의 서명 장치에서 수행되는 알고리즘의 예를 구체적으로 설명한다.
도 4는 본 발명에 따른 지수승 알고리즘을 도시한 것이다.
도 4의 지수승 알고리즘은 의 값을 입력받고, 을 연산한다. 의 값은 p와 q에 대한 오류 주입을 확인하기 위한 값이다. 도 4의 지수승 알고리즘은 체크섬을 사용하지 않으므로 기존 지수승 연산 알고리즘에 비해 메모리 공간과 계산의 복잡도를 줄일 수 있다. 상세한 설명은 하기에 더욱 상술하기로 한다. 도 4의 알고리즘은 CRT-RSA 연산에서 역원 계산을 하지 않도록 설계된 것이다. 또한, 도 4의 알고리즘은 SPA의 경우, 지수승 알고리즘의 경우 분기점을 사용하지 않기 때문에 안전한 방법이다. 그리고, DPA의 경우, 랜덤 값을 사용하여 중간 연산 값을 알 수 없으므로 DPA에 안전한 알고리즘이다.
보다 상세하게는, 도 3의 입력값 의 인자를 순서대로 제1 데이터 집합인 로 대체함으로써 도 3의 알고리즘을 기반으로 제1 데이터 쌍 을 생성한다. 제1 데이터 쌍 는 하기의 수학식 3과 같은 값을 가지게 된다.
마찬가지로, 도 4의 입력값인 의 인자를 순서대로 제2 데이터 집합인 로 대체함으로써 도 4의 알고리즘을 기반으로 제2 데이터 쌍 을 생성한다. 제2 데이터 쌍 는 하기의 수학식 4와 같은 값을 가지게 된다.
그 다음, 단계 3에서는 단계 2에서 생성된 를 입력값으로, 중국인의 나머지 정리를 이용하여 제1 중간값 S'=와, 제2 중간값 S=을 연산한다. CRTOur(A, B) 함수는 수학식 6과 같이 중국인의 나머지 정리를 수행하는 함수를 의미한다.
본 발명에서는 기존의 방법이 아닌 수학식 6과 같은 CRTour방법을 사용하므로 p, q에 대한 오류 체크를 따로 하지 않아도 p', q'을 사용하여 안전한 알고리즘을 구현할 수 있다.
그 다음, 단계 4에서는 의 연산이 수행된다. 이때, 는 N의 문자열의 길이에 의 문자열의 길이를 뺀값()에 해당하는 값이다. 오류가 주입되지 않았을 경우에는 , 이다. 이 경우, , 이 된다. 결국, 이 경우, 중간 연산자 가 된다.
그 다음, 단계 6에서 의 상위 길이 만큼을 '0'으로 만든다. 도 6을 참고하면, 단계 5의 와 단계 6의 를 XOR 연산하였을 경우 올바른 서명값을 얻을 수 있음을 알 수 있다.
도 5의 알고리즘에서는 기존과는 달리 역원 계산을 하지 않는데, 역원 계산은 계산 연산량이 보통 지수승 연산보다 크다. 따라서 도 5의 알고리즘은 역원 계산을 하지 않으므로 복잡도를 많이 줄일 수 있다.
도 7은 본 발명의 일 실시 예에 따른 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법의 흐름도이다.
우선, 인증된 수신자에게 전송하고자 하는 메시지 m, 서로 다른 두 소수 p와 q, 비밀키 d를 p-1로 모듈러 연산한 dp, d를 q-1로 모듈러 연산한 dq, p와 q의 합인 , Iq등을 수신하고, 암호화하고자 하는 송신자가 제1 정수 k, 제2 정수 r을 선택한다(S710).
다음, 을 이용하여 제1 데이터 쌍 을 연산하고, 을 이용하여 제2 데이터 쌍 을 연산한다(S720). 여기서, 제1 데이터 쌍 는 상기의 수학식 3과 같은 값을 갖는다. 또한, 제2 데이터 쌍 는 상기의 수학식 4와 같은 값을 갖는다.
그 다음, 제1 데이터 쌍의 와 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값 를 산출한다(S740). 제1 중간값 는 수학식 7에 의해 생성될 수 있다.
그 다음, 제1 데이터 쌍의 와 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값 를 산출한다(S750). 제2 중간값 는 수학식 8에 의해 생성될 수 있다.
그 다음, 의 비트열의 길이와 N의 비트열의 길이에 따라 결정된 제로 비트 생성 인자 , 의 보수 , p 및 q'를 이용하여 를 생성한다(S760). 여기서, 제로 비트 생성 인자 는 N의 이진 비트열의 길이를 len(N)이라고 하고, 의 이진 비트열의 길이를 이라고 할 때, 에 의해 생성될 수 있다. 그러면, 제로 비트 생성 인자를 이용하여, 의 값은 하기의 수학식 9에 의해 생성될 수 있다.
이와 같은 과정으로 본 발명은 전력 분석과 오류 주입 공격에 안전한 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)
- N=pq를 만족하는 서로 다른 두 소수인 비밀키 p와 q, 오일러의 totient 함수 을 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법에 있어서,
인증된 수신자에게 전송하고자 하는 메시지 m, 상기 서로 다른 두 소수 p와 q, 비밀키 d, 상기 d를 p-1로 모듈러 연산한 dp, 상기 d를 q-1로 모듈러 연산한 dq, 상기 p와 q의 합인 T1을 수신하고, 제1 정수 k 및 제2 정수 r을 랜덤하게 선택하는 단계;
상기 을 이용하여 제1 데이터 쌍 을 연산하고, 상기 을 이용하여 제2 데이터 쌍 을 연산하며, 을 이용하여 서명 연산자를 연산하는 단계;
상기 제1 데이터 쌍의 와 상기 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값 를 산출하고, 상기 제1 데이터 쌍의 와 상기 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값 를 산출하는 단계;
상기 의 비트열 길이와 상기 N의 비트열 길이에 따라 결정된 제로 비트 생성 인자 , 상기 의 보수 , 상기 p 및 q'를 이용하여 중간 연산자 를 생성하는 단계;
상기 와 의 논리곱 연산을 수행하여 상기 제1 중간값을 갱신하는 단계;
상기 를 로 나눈값과 상기 제2 중간값을 논리곱 연산을 수행하여 상기 제2 중간값을 갱신하는 단계; 및
상기 서명 연산자를 에 곱하여 최종 서명값을 생성하는 단계를 포함하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 방법. - 제1 항 내지 제8 항 중 어느 한 항의 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 기록매체.
- N=pq를 만족하는 서로 다른 두 소수인 비밀키 p와 q, 오일러의 totient 함수 을 이용하는 CRT-RSA 모듈러 지수승 알고리즘을 이용한 디지털 서명 장치에 있어서,
인증된 수신자에게 전송하고자 하는 메시지 m, 상기 서로 다른 두 소수 p와 q, 비밀키 d, 상기 d를 p-1로 모듈러 연산한 dp, 상기 d를 q-1로 모듈러 연산한 dq, 상기 p와 q의 합인 T1을 수신하고, 제1 정수 k 및 제2 정수 r을 랜덤하게 선택하는 초기화부;
상기 을 이용하여 제1 데이터 쌍 을 연산하고, 을 이용하여 제2 데이터 쌍 을 연산하며, 을 이용하여 서명 연산자를 연산하는 지수승 연산부;
상기 제1 데이터 쌍의 와 상기 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제1 중간값 를 산출하고, 상기 제1 데이터 쌍의 와 상기 제2 데이터 쌍의 를 입력값으로 중국인의 나머지 정리를 이용하여 제2 중간값 를 산출하는 중간값 연산부;
상기 의 비트열 길이와 상기 N의 비트열 길이에 따라 결정된 제로 비트 생성 인자 , 상기 의 보수 , 상기 p 및 q'를 이용하여 중간 연산자 를 연산하는 중간 연산자 연산부;
상기 와 의 논리곱 연산을 수행하여 상기 제1 중간값을 갱신하는 제1 중간값 갱신부;
상기 를 로 나눈값과 상기 제2 중간값을 논리곱 연산을 수행하여 상기 제2 중간값을 갱신하는 제2 중간값 갱신부; 및
상기 서명 연산자를 에 곱하여 최종 서명값을 생성하는 서명값 생성부를 포함하는 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치.
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 true KR20110113965A (ko) | 2011-10-19 |
KR101112570B1 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102375031B1 (ko) * | 2020-10-19 | 2022-03-17 | 국방과학연구소 | 전자서명 알고리즘의 부채널 분석 방법 및 그 장치 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102180029B1 (ko) | 2014-02-03 | 2020-11-17 | 삼성전자 주식회사 | Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100431286B1 (ko) * | 2002-01-14 | 2004-05-12 | 한국정보보호진흥원 | 중국인 나머지 정리(crt) 기반의 오류 공격에 대응하는 방법 및 그 장치 |
KR100431047B1 (ko) * | 2002-02-26 | 2004-05-12 | 주홍정보통신주식회사 | Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치 |
KR100652377B1 (ko) * | 2004-08-06 | 2007-02-28 | 삼성전자주식회사 | 모듈라 지수승 알고리즘, 기록매체 및 시스템 |
KR100953716B1 (ko) * | 2008-02-28 | 2010-04-19 | 고려대학교 산학협력단 | Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체 |
-
2010
- 2010-04-12 KR KR1020100033335A patent/KR101112570B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102375031B1 (ko) * | 2020-10-19 | 2022-03-17 | 국방과학연구소 | 전자서명 알고리즘의 부채널 분석 방법 및 그 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR101112570B1 (ko) | 2012-03-13 |
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에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치 | |
US20100040225A1 (en) | Fast Scalar Multiplication for Elliptic Curve Cryptosystems over Prime Fields | |
JP2008252299A (ja) | 暗号処理システム及び暗号処理方法 | |
JP2006340347A (ja) | データに署名するための楕円曲線デジタル署名暗号プロセスを実行する認証システム | |
EP3191936B1 (en) | System and method for one-time chinese-remainder-theorem exponentiation for cryptographic algorythms | |
JP2011530093A (ja) | 累乗法による暗号化を保護する解決策 | |
JP2019515353A (ja) | 暗号化べき乗アルゴリズムへのセーフ−エラーフォールトインジェクション攻撃に対する対策 | |
EP3698262B1 (en) | Protecting modular inversion operation from external monitoring attacks | |
JP2004304800A (ja) | データ処理装置におけるサイドチャネル攻撃防止 | |
EP2738973A1 (en) | System and method for cryptography using multiplicative masking using simultaneous exponentiation techniques | |
KR20060013124A (ko) | 모듈라 지수승 알고리즘, 기록매체 및 시스템 | |
KR101112570B1 (ko) | 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체 | |
CN1985458B (zh) | 增强的自然蒙哥马利指数掩蔽和恢复的方法和装置 | |
KR100954844B1 (ko) | 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체 | |
US20120039462A1 (en) | Rsa signature method and apparatus | |
EP3166013B1 (en) | Modular exponentiation using randomized addition chains | |
KR100953715B1 (ko) | Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체 | |
KR100953716B1 (ko) | Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체 | |
KR101341810B1 (ko) | Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법 | |
KR102510077B1 (ko) | 부채널 공격에 안전한 연산 장치 및 방법 | |
CN104125061A (zh) | 使用rsa加密算法的电子部件中的防攻击方法 | |
Mahdion et al. | New single‐trace side‐channel attacks on a specific class of Elgamal cryptosystem | |
Tejashwini et al. | Mobile communication security using Galios Field in elliptic curve Cryptography |
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 |