KR20090093141A - Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체 - Google Patents

Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체

Info

Publication number
KR20090093141A
KR20090093141A KR1020080018492A KR20080018492A KR20090093141A KR 20090093141 A KR20090093141 A KR 20090093141A KR 1020080018492 A KR1020080018492 A KR 1020080018492A KR 20080018492 A KR20080018492 A KR 20080018492A KR 20090093141 A KR20090093141 A KR 20090093141A
Authority
KR
South Korea
Prior art keywords
value
signature
message
crt
generated
Prior art date
Application number
KR1020080018492A
Other languages
English (en)
Other versions
KR100953716B1 (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 KR1020080018492A priority Critical patent/KR100953716B1/ko
Publication of KR20090093141A publication Critical patent/KR20090093141A/ko
Application granted granted Critical
Publication of KR100953716B1 publication Critical patent/KR100953716B1/ko

Links

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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

CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록 매체가 개시된다.
본 발명에 따른 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법은,
서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성하는 단계; 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 단계; 상기 산출된 , 상기 공개키 , 상기 서로 다른 소수 및 상기 제 1 중간 연산자를 이용하여 제 1 사용자 메시지 을 생성하고, 상기 제 1 사용자 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 단계; 상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하고, 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 제 2 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증의 결과값을 생성하는 단계; 및 상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행하는 단계를 포함한다.
본 발명에 의하면, 단순한 레지스터의 추가에 의해 단순한 암호화 방법을 제공하며, 연산량 역시 종래의 암호화 방법에 비해 유사하면서도, 비트 비교 연산을 수행함으로써 입력 값과 서명 생성 과정의 중간 결과값 모두에 오류가 주입되더라도 최근 제시된 오류 주입 공격에 안전성을 제공함으로써 스마트카드와 같은 내장형 장치에서도 효율적이고 안전한 디지털 서명 기법을 제공할 수 있는 효과가 있다.

Description

CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록 매체{Method and Apparatus of digital signature using bit arithmetic based on CRT-RSA 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)이라고 한다.
RSA 암호 알고리즘의 대표적인 연산은 비밀키를 사용한 지수승 연산이다. 스마트 카드나 센서 노드 증 연산 능력이나 메모리 같은 재원이 제한된 환경에서 지수승 연산의 효율성을 증가시키기 위한 많은 방법들이 제안되었다.
그 중에서, 중국인의 나머지 정리(Chinese Remainder Theorem:CRT)는 RSA 암호 시스템에 대하여 전자 서명 생성시에 약 4배 정도의 향상된 속도를 얻을 수 있기 때문에 효율적으로 구현할 수 있다.
따라서, 속도를 향상하기 위하여 많은 표준들에서 권장하고 있지만, CRT 기반의 RSA 암호 시스템이 공격에 매우 취약하다.
1996년 Bellcore가 CRT-RSA가 오류 주입 공격에 안전하지 않다는 것을 소개한 후, 1년 뒤인 1997년에 D.Boneh 등이 공격 방법에 대한 자세한 내용을 언급하였다.
소개한 공격 방법은 암호 시스템이 동작하는 스마트 카드와 같은 환경에 오류를 주입하여 RSA 암호 시스템의 경우 비밀값인 소수 값을 공격자가 알아내는 방법이다.
오류 주입 공격에 대한 연구가 활발해지면서 스마트 카드와 같은 장치에서 안전한 암호학적 알고리즘을 구현하는 문제가 매우 중요해졌다.
특히, RSA는 현실적으로 가장 널리 쓰는 알고리즘이고, CRT를 RSA에 적용할 경우, 효율적으로 연산을 수행할 수 있기 때문에 CRT-RSA를 오류 주입 공격으로부터 안전하게 구현하려는 노력이 지속되어 왔다.
CRT-RSA 암호시스템에 대한 오류 주입 공격 방법에 대한 대응책은 Shamir가 1997년에 CRT 연산 마지막 단계에 비교 연산을 추가함으로써 오류 주입 여부를 확인하였고, 그 방법을 응용하여 많은 대응 방법이 제안되었다.
그러나, 이런 비교 연산으로 구성된 대응 방법이 오류 주입 공격에 안전하지 않다는 것이 알려졌다.
2003년에 Yen이 두 가지의 CRT 연산 프로토콜(CRT-1, CRT-2)을 제안하였다.
Yen 방법은 비교 연산을 사용하지 않고 오류가 발생하였을 경우, 공격자가 비밀 정보를 알아내지 못하게 하는 방법이다.
그러나, FDTC 2006에서 CRT-1, CRT-2 연산 프로토콜이 안전하지 않음으로 나타나게 되었고, 두 CRT 연산 프로토콜에서 비교 연산을 사용하지 않기 위하여 추가 되었던 연산 과정과 메모리 접근 단계에서 오류 주입 공격이 가능하여 비밀 정보를 공격자가 얻을 수 있다.
우선 CRT-RSA 알고리즘의 오류 주입 공격에 대하여 상술하기로 한다.
개인키 , 메시지 에 대한 RSA 서명 값 이다. 이 때, 은 공개 모듈러 값이고, 비밀 값인 큰 소수 의 곱으로 연산된다.
RSA 서명 생성 과정의 속도를 향상하기 위하여 중국인의 나머지 정리를 사용하는 것을 암호화 표준에서 권고하고 있다.
도 1은 종래의 CRT-RSA 서명 알고리즘을 도시한 것이다.
도 1의 알고리즘은 입력값인 메시지 , 비밀값인 소수 , , , 및 상기 의 역수인 을 입력으로 하여 서명 인증값 를 생성하는 알고리즘이다.
여기서, 이다.
그러나, 도 1의 CRT-RSA 서명 알고리즘은 서명 생성 속도는 향상되나 전술한 바와 같이 오류 주입 공격에 대하여 안전하지 않다는 것이 소개되었다.
공격 방법은 하기와 같고, 이 때, 연산의 중간 값 에 오류가 주입된 경우를 라고 표기하고, 의 값은 랜덤한 값으로 로 정의된다. 여기서 는 랜덤한 값이다.
한편, 도 1의 알고리즘에 대하여, 에 오루가 주입된 중간 결과값은 로 표시할 수 있고, 그러면, 오류가 주입된 CRT 연산의 결과값은 와 같이 표시된다.
그러면, 을 계산하면, 이므로 비밀값인 를 얻을 수 있다.
이러한, 공격 방법이 소개된 후, Shamir가 CRT 기반의 RSA 암호 시스템에 대한 오류 주입 공격에 대한 대응 방법을 제안하였다.
제안하는 방법은 32 비트 정도의 랜덤한 값 을 선택한 후, 을 연산하고, CRT 연산 전에 을 확인한다.
만약, (또는 )에서 오류가 발생하였을 경우, 의 연산 단계를 통과하지 못하기 때문에 오류 주입 여부를 확인할 수 있다.
이와 같이, 오류 주입 공격에 대한 첫 대응 방법인 Shamir의 방법이 소개된 후 이를 응용하여 많은 대응 방법이 소개되었다.
그러나, Shamir의 방법에는 여러 가지 문제점이 있다. 가장 큰 문제점은 비교 연산이다. 비교 연산의 안전성 문제는 다음과 같다.
비교 연산()의 연산 과정은 의 단계와 인지를 확인하는 두 단계로 나누어진다. 만약, 공격자가 하기와 같은 두 개의 오류를 CRT 기반의 RSA 서명 생성 과정에 주입하게 되면 공격자는 비밀 정보를 알 수 있다.
첫 번째 오류는 서명 값을 생성하는 중간 과정에서 발생하는 오류이다.
두 번째 오류는 인지를 확인하는 과정에 주입된다. 이는, 을 확인하는 과정을 건너뛰게 하는 것이다.
WISTP 2007에서는 실험을 통하여 두 번째 오류 주입이 가능함을 보여 주었다. 비교 연산을 이용한 알고리즘의 경우 첫 번째 오류 확인을 비교 연산을 통하여 확인하게 되는데, 두 번째 오류 과정을 통하여 첫 번째 오류가 무조건 통과하게 되므로 공격자는 비밀 정보를 얻을 수 있게 된다.
이와 같이, 오류 주입에 대한 공격 방법이 소개된 후 CRT 기반의 RSA 암호시스템에서 오류 주입 공격에 대한 다양한 대응 방법이 제안되었다.
2003년 Yen은 오류 주입에 안전한 두 가지 방법의 CRT 연산 프로토콜을 제안하였다.
Yen이 제안하는 두 프로토콜에서는 서명 값 생성시 오류가 주입되었을 경우 오류 확인을 위한 비교 연산 없이 공격자가 비밀 정보를 알 수 없도록 제안하였다.
그러나, FDTC 2006에 발표된 기술에서는 두 CRT 연산 프로토콜에 대한 공격 방법이 소개되었다.
하기에서는 이 두가지 CRT 연산 프로토콜에 대한 설명과 공격자가 수행할 수 있는 공격방법에 대하여 설명하기로 한다.
도 2는 Yen의 CRT 프로토콜에 대한 일 예를 도시한 것이다.
우선, RSA 암호 시스템에 대한 키 생성을 위하여 메인 키(main key)와 스몰 키(small key)를 생성한다.
스몰 키 생성을 위하여 사용자에 의하여 랜덤한 이 선택되고, 을 만족하는 을 선택한다.
그리고, 을 만족하는 을 선택한다.
한편, 메인 키 생성을 위하여 이라고 할 때, 을 만족하는 를 연산한다.
그러면, 생성된 을 공개키로 설정한다.
도 2를 참조하면, Yen의 CRT 프로토콜에서 오류 주입 공격이 없을 경우 단계 2에서 의 값은 하기의 수학식 1로 표현될 수 있다.
그리고, 의 값은 하기의 수학식 2로 표현될 수 있으므로 올바른 서명 값이 생성될 수 있게 된다.
한편, 상기 도 2의 연산 과정에서 오류가 발생한 경우를 살펴보면 하기와 같다. 여기서, 변수 에 오류가 주입된 경우를 라 정의하고, 여기서 는 랜덤한 정수라 가정한다.
우선, 도 2의 단계 2에서 의 경우, 의 값은 의 오류의 영향으로 틀린 값이 된다.
따라서, 을 이용하여 연산되는 의 값도 틀려지므로 공격자가 틀려진 서명을 가지고는 인수분해가 되지 않아 오류 주입 공격에 실패하게 된다.
의 경우에는 도 2의 단계 3의 의 값이 틀려지고, 를 구하는 CRT와 모두 올바르지 않은 값이 되기 때문에 인수분해로 비밀값을 얻을 수 없다.
오류가 주입된 와 오류가 주입되지 않은 의 경우에는 이고, 가 되고, 이 때 의 값은 랜덤한 값이다.
도 2의 단계 3에서 연산되는 이다. 그러므로, 서명 값인 는 하기의 수학식 3과 같이 표현되므로, 공격자는 을 이용하여 비밀 정보를 알 수 없다.
그 다음, 의 경우, 도 2의 단계 3에서 가 되므로 서명 값 는 하기의 수학식 4와 같이 표현될 수 있다.
따라서, 가 되어 상기 도 2의 CRT-1 프로토콜의 경우 값을 사용하기 위해 메모리에 접근할 경우 발생한 오류나 값을 연산할 때 발생하는 오류의 경우에는 도 2의 CRT-1 프로토콜은 안전하지 않다.
이와 같이, 유사한 방법으로 도 3의 CRT-2 프로토콜도 공격할 수 있다.
도 3은 Yen의 CRT 프로토콜에 대한 다른 예를 도시한 것이다.
도 3의 단계 1의 를 연산하는 과정에서 오류가 발생하거나, 단계 3에서 을 연산하기 위해 메모리를 참조할 경우 오류가 발생하여 인 경우에 단계 2에서 의 값은 올바른 값이고, 단계 3에서 하기의 수학식 5와 같이 가 연산된다.
상기 수학식 5에서 을 만족하는 정수이다. 그러므로 생성되는 오류가 있는 서명 값 는 하기의 수학식 6으로 연산된다.
그러므로, 를 만족하게 되어 공격자가 오류 주입에 의해 공격할 수 있다. 의 방법도 이와 동일한 방법으로 공격자가 오류 주입에 의해 공격할 수 있게 된다.
이와 같이, 종래의 CRT 기반의 RSA 암호화 연산은 공격자의 단순한 오류 주입으로 공격이 가능하여 암호화에 있어서 안전성 및 신뢰성을 제공할 수 없는 문제점이 있다.
본 발명이 해결하고자 하는 첫 번째 과제는 연산 과정이 단순하고 연산량이 추가적으로 증가하지 않으면서도 단순 전력 분석 및 오류 주입 공격에도 안전하여 스마트 카드와 같은 내장형 장치에서도 효율적이고 안전하게 사용할 수 있는 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 두 번째 과제는 상기 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법을 이용한 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 세 번째 과제는 상기 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 컴퓨터 판독 가능 저장 매체를 제공하는 것이다.
상기 첫 번째 과제를 해결하기 위하여 본 발명은,
서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성하는 단계; 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 단계; 상기 산출된 , 상기 공개키 , 상기 서로 다른 소수 및 상기 제 1 중간 연산자를 이용하여 제 1 사용자 메시지 을 생성하고, 상기 제 1 사용자 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 단계; 상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하고, 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 제 2 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증의 결과값을 생성하는 단계; 및 상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행하는 단계를 포함하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법을 제공한다.
한편, 상기 제 1 사용자 메시지 는 수학식 에 의해 생성될 수 있다.
그리고, 제 2 사용자 메시지 는 수학식 에 의해 생성될 수 있다.
또한, 상기 서명 인증을 수행하는 단계는 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고, 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력하는 단계를 포함할 수 있다.
상기 첫 번째 과제를 해결하기 위하여 본 발명은,
서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성하는 단계; 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 단계; 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 단계; 상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하고, 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증값을 생성하는 단계; 및 상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행하는 단계를 포함한다.
그리고, 상기 사용자 메시지 는 수학식 에 의해 연산되는 것을 특징으로 한다.
한편, 상기 서명 인증을 수행하는 단계는 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고, 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력하는 단계를 포함한다.
상기 두 번째 과제를 해결하기 위하여 본 발명은,
서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성하는 중간 연산자 생성부; 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 모듈라 지수승 연산부; 상기 산출된 , 상기 공개키 , 상기 서로 다른 소수 및 상기 제 1 중간 연산자를 이용하여 제 1 사용자 메시지 을 생성하고, 상기 제 1 사용자 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 상관 모듈라 지수승 연산부; 상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하는 CRT 연산부; 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 제 2 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증의 결과값을 생성하는 비트 비교 연산부; 및 상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행하는 서명 인증 수행부를 포함하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치를 제공한다.
한편, 상기 제 1 사용자 메시지 는 수학식 에 의해 생성될 수 있다.
그리고, 제 2 사용자 메시지 는 수학식 에 의해 생성되는 것을 특징으로 한다.
여기서, 상기 서명 인증 수행부는 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고, 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력하는 것을 특징으로 한다.
상기 두 번째 과제를 해결하기 위하여 본 발명은,
서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성하는 중간 연산자 생성부; 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 제 1모듈라 지수승 연산부; 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 제 2 모듈라 지수승 연산부; 상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하고, 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증값을 생성하는 비트 비교 연산부; 및 상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행하는 서명 인증 수행부를 포함하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치를 제공한다.
여기서, 상기 사용자 메시지 는 수학식 에 의해 연산되는 것을 특징으로 한다.
그리고, 상기 서명 인증 수행부는 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고, 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력하는 것을 특징으로 한다.
상기 세 번째 과제를 해결하기 위하여 본 발명은,
상기 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법을 컴퓨터에서 수행할 수 있는 프로그램으로 기록된 컴퓨터 판독 가능 저장 매체를 제공한다.
본 발명에 의하면, 단순한 레지스터의 추가에 의해 단순한 암호화 방법을 제공하며, 연산량 역시 종래의 암호화 방법에 비해 증가하지 않고, 비트 비교 연산에 의해 입력 값과 서명 생성 과정의 중간 결과값 모두에 오류가 주입되더라도 최근 제시된 오류 주입 공격에 안전성을 제공함으로써 스마트카드와 같은 내장형 장치에서도 효율적이고 안전한 디지털 서명 기법을 제공할 수 있는 효과가 있다.
도 1은 종래의 CRT-RSA 서명 알고리즘을 도시한 것이다.
도 2는 Yen의 CRT 프로토콜에 대한 일 예를 도시한 것이다.
도 3은 Yen의 CRT 프로토콜에 대한 다른 예를 도시한 것이다.
도 4는 본 발명에 따른 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 알고리즘의 일 실시예를 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법의 흐름도이다.
도 6은 본 발명에 따른 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 알고리즘의 다른 실시예를 도시한 것이다.
도 7은 본 발명의 일 실시예에 따른 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법의 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치의 블록도이다.
도 9는 본 발명의 다른 실시예에 따른 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치의 블록도이다.
본 발명에서는 전술한 두 개의 CRT-RSA 연산 프로토콜에 대한 오류 주입 공격에 대하여 안전하게 대응할 수 있는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 기법을 제공한다.
본 발명에서 제안하는 대응 방법은 비트 연산인 AND 연산()을 이용하여 오류 주입시 올바르지 않은 서명 값을 통해 비밀 정보를 공격자가 알 수 없게 한다.
이는, AND연산의 특징 중에서 의 특징을 이용한다.
이는 덧셈의 경우, 이고, AND 연산의 경우, 이다. 즉, 비트 연산의 경우, 다른 두 값의 경우에는 연산 결과의 특징이 연산 후에는 유지되지 않음을 알 수 있다.
본 발명에서 제안하는 방법은 상기 도 2 및 도 3에 대한 오류 주입 공격에 대한 대응 방법에 관한 것으로, 공격자에 의해 주입된 오류를 전파하는 방법이다.
만약, 서명 생성시, (또는, )에서 오류가 발생하였을 경우, 오류가 발생하지 않은 (또는 )의 연산시에 오류가 발생하도록 하여 오류가 있는 서명 값이 생성되어도 그 서명 값을 통하여 어떠한 비밀 정보를 알아내지 못하게 하는 것이다
이하, 본 발명의 바람직한 실시예를 첨부도면에 의거하여 상세히 설명하기로 한다.
한편, 다음에 예시하는 본 발명의 실시예는 여러 가지 다른 형태로 변형할 수 있으며, 본 발명의 범위가 다음에 상술하는 실시예에 한정되는 것은 아니다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공된다.
도 4는 본 발명에 따른 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 알고리즘의 일 실시예를 도시한 것이다.
도 4를 참조하면, 상기 도 2에 대응되는 공격자의 오류 주입 공격에 안전한 RT-RSA 기반의 비트 연산을 이용한 디지털 서명 알고리즘을 도시하고 있다.
도 4에서 단계 2는 종래의 방법과 동일하며, 에 오류가 주입되지 않았다면, 의 값은 의 값을 가지게 된다. 단계 3에서 서명 값을 생성하기 위하여 하기의 수학식 7에 따라 을 연산하게 된다.
그러면, 상기 수학식 7에서 볼 수 있는 바와 같이 올바른 서명값을 생성할 수 있게 된다. 한편, 상기 도 4의 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 알고리즘은 하기의 도 5의 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법의 상술과 중복되므로, 이에 대한 중복된 설명은 생략하기로 한다.
도 5는 본 발명의 일 실시예에 따른 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법의 흐름도이다.
우선, 서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성한다(510 과정).
이는 전술한 와 동일한 것으로, 하기의 수학식 8에 의해 암호화 하고자 하는 메시지 및 서로 다른 두 소수 를 이용하여 를 생성한다.
그 다음, 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출한다(520 과정).
상기 는 하기의 수학식 9에 의해 생성될 수 있으며, 이는 중국인의 나머지 정리의 연산(CRT 연산)의 기반이 되는 연산자이다.
그 다음, 상기 산출된 , 상기 공개키 , 상기 서로 다른 소수 및 상기 제 1 중간 연산자를 이용하여 제 1 사용자 메시지 을 생성하고, 상기 제 1 사용자 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출한다(530 과정).
이 역시 상기 는 하기의 수학식 10에 의해 생성될 수 있으며, 마찬가지로 중국인의 나머지 정리의 연산의 기반이 되는 연산자이다.
수학식 10에서 볼 수 있는 바와 같이 본원 발명의 는 제 1 사용자 메시지 를 이용하여 생성된다.
제 1 사용자 메시지는 상기 제 1 중간 연산자를 이용하여 하기의 수학식 11에 의해 생성될 수 있다.
그 다음, 상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하고, 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 제 2 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증의 결과값을 생성한다(540 과정).
여기서, 서명 인증의 결과값 는 하기의 수학식 12에 의해 연산될 수 있다.
여기서, 본원 발명의 핵심은, 제 2 사용자 메시지 를 생성하는 과정이다.
여기서, 제 2 사용자 메시지 는 하기의 수학식 13에 의해 표현될 수 있다.
상기 수학식 13에 의해 생성되는 제 2 사용자 메시지 는 종래의 기술과는 달리 비트 비교 연산에 의해 서명 인증을 수행할 수 있도록 함으로써, 공격자의 오류 주입 공격에 대하여 안전성 및 신뢰성을 제공할 수 있는 기반을 마련한다.
마지막으로, 상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행한다(550 과정).
여기서, 상기 서명 인증을 수행하는 단계(550 과정)는 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고, 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력하는 단계를 포함할 수 있다.
도 5에 따른 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법에 대한 검증은 하기와 같다.
즉, 이는 상기 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법에 오류가 주입되었을 경우이다.
한편, 하기에 상술되는 는 랜덤한 값이다.
첫 번째로, 에 오류가 주입()되었을 경우이다. 이에 대하여 도 5에 개시된 본원 발명의 일 실시예와 대비하면, 오류가 주입된 , , ,는 하기의 수학식 14와 같다.
상기 수학식 14에 의하면 공격자는 랜덤한 서명값 를 얻게 되므로, 공격자는 서명 값 을 통하여 비밀 정보를 알 수 없게 된다.
한편, 에 오류 주입되었을 경우()에는 하기의 수학식 15에 따라 공격자는 마찬가지로 랜덤한 서명 값 을 생성하게 되어 마찬가지로 공격자는 서명 값 을 통하여 비밀 정보를 알 수 없게 된다.
또한, 에 오류가 주입되었을 경우()에는 하기의 수학식 16에 따라 각 변수 인자들이 연산되어 결과적으로 랜덤한 서명값 를 얻게 되므로, 공격자는 서명 값 을 통하여 비밀 정보를 알 수 없게 된다.
그리고, 에 오류가 주입되었을 경우()에도 하기의 수학식 17에 따라 각 변수 인자들이 연산되어 결과적으로 랜덤한 서명값 를 얻게 되므로, 공격자는 서명 값 을 통하여 비밀 정보를 알 수 없게 된다.
그 외의 입력값과 중간 결과값의 각 인자에 오류가 주입된 경우는 전술한 바와 동일하여 오류 확산을 일으키므로 본 발명의 서명 값 생성의 안전성은 완벽하게 보장된다.
도 6은 본 발명에 따른 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 알고리즘의 다른 실시예를 도시한 것이다.
도 6을 참조하면, 상기 도 3에 대응되는 공격자의 오류 주입 공격에 안전한 RT-RSA 기반의 비트 연산을 이용한 디지털 서명 알고리즘을 도시하고 있다.
도 6에서는 상기 도 4와 동일한 방법으로 또는 의 오류 주입 공격에 대응한다.
기존의 방법에서는 도 6의 단계 3에서 을 생성하기 위하여 의 연산을 수행하면서 발생한 문제점을 본원 발명의 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 알고리즘의 다른 실시예 에서는 AND 비트 연산을 통하여 가 연산되도록 하였다 .
이에 대한 설명은 하기의 도 7의 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법의 상술과 중복되므로, 이에 대한 중복된 설명은 생략하기로 한다.
도 7은 본 발명의 일 실시예에 따른 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법의 흐름도이다. 마찬가지로, 도 7은 상기 도 5와 중복된 상술은 생략하기로 한다.
우선, 서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법에 있어서, 인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성한다(710 과정).
그 다음, 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출한다(720 과정).
그 다음, 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출한다(730 과정).
그 다음, 상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하고, 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증값을 생성한다(740 과정).
여기서, 상기 사용자 메시지 는 하기의 수학식 17에 의해 생성된다.
상기 수학식 17도 전술한 수학식 13에 의해 생성되는 제 2 사용자 메시지 와 마찬가지로 종래의 기술과는 달리 비트 비교 연산에 의해 서명 인증을 수행할 수 있도록 함으로써, 공격자의 오류 주입 공격에 대하여 안전성 및 신뢰성을 제공할 수 있는 기반을 마련한다.
마지막으로, 상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행한다(750 과정).
여기서, 상기 서명 인증 수행 과정(750 과정)은 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고, 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력하는 단계를 포함할 수 있다.
이와 같이, 도 7에 따른 CRT-RSA 모듈라 지수승 알고리즘을 이용한 디지털 서명 방법은 기존의 방법과 동일하게 또는 에 오류가 주입되었을 경우 상기 740 과정에서 의 값이 랜덤한 값이 생성되므로, 공격자는 연산을 통하여 비밀값을 얻을 수 없다.
만약, , 에서 오류가 주입되는 경우에도 상기 도 4의 알고리즘과 동일한 방법으로 의 값이 공격자가 비밀 정보를 알 수 없는 랜덤한 값으로 그 결과가 도출되도록 한다.
도 8은 본 발명의 일 실시예에 따른 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치의 블록도이다.
본 발명의 일 실시예에 따른 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치는 중간 연산자 생성부(810), 모듈라 지수승 연산부(820), 상관 모듈라 지수승 연산부(830), CRT 연산부(840), 비트 비교 연산부(850) 및 서명 인증 수행부(860)를 포함한다.
서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치에 있어서, 중간 연산자 생성부(810)는 인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성한다.
상기 제 1 중간 연산자 및 제 2 중간 연산자는 상기 수학식 8에 의해 동일한 연산으로 생성된다.
그리고, 모듈라 지수승 연산부(820)는 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출한다.
한편, 상관 모듈라 지수승 연산부(830)는 상기 산출된 , 상기 공개키 , 상기 서로 다른 소수 및 상기 제 1 중간 연산자를 이용하여 제 1 사용자 메시지 을 생성하고, 상기 제 1 사용자 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출한다.
여기서, 상기 제 1 사용자 메시지 는 상기의 수학식 11에 의해 생성된다.
이와 같이 상관 모듈라 지수승 연산부(830)는 상기 모듈라 지수승 연산부(820)에서 연산된 를 이용하기 때문에 공격자의 오류 주입시 오류 확산을 일으시킬 수 있는 근원을 더 제공한다.
CRT 연산부(840)는 상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성한다.
한편, 비트 비교 연산부(850)는 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 제 2 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증의 결과값을 생성한다.
한편, 제 2 사용자 메시지 는 마찬가지로, 상기의 수학식 13에 의해 생성될 수 있다.
그러면, 서명 인증 수행부(860)는 상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행한다.
한편, 상기 서명 인증 수행부(860)는 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고, 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력하는 것을 특징으로 한다.
도 9는 본 발명의 다른 실시예에 따른 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치의 블록도이다.
본 발명의 다른 실시예에 따른 모듈라 지수승 알고리즘을 이용한 디지털 서명 장치는 중간 연산자 생성부(910), 제 1 모듈라 지수승 연산부(920), 제 2 모듈라 지수승 연산부(930), 비트 비교 연산부(940) 및 서명 인증 수행부(950)를 포함한다.
서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치에 있어서, 중간 연산자 생성부(910)는 인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성한다.
마찬가지로, 상기 제 1 중간 연산자 및 제 2 중간 연산자는 상기의 수학식 8에 의해 연산될 수 있다.
제 1 모듈라 지수승 연산부(920)는 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출한다.
제 2 모듈라 지수승 연산부(930)는 상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출한다.
그러면, 비트 비교 연산부(940)는 상기 제 1 모듈라 지수승 연산부(920) 및 제 2 모듈라 지수승 연산부(930)에서 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하고, 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증값을 생성한다.
여기서, 상기 사용자 메시지 는 상기의 수학식 17에 의해 연산될 수 있다.
그러면, 서명 인증 수행부(950)에서 상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행한다.
한편, 상기 서명 인증 수행부(950)는 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고, 상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력할 수 있다.
본 발명의 도 4 및 도 6에 따른 두 CRT 연산 프로토콜에 대한 안전성과 효율성을 기존의 CRT 연산 프로토콜과 비교하면 하기의 표 1과 같다.
기존의 Yen에 의한 CRT-1 및 CRT-2의 연산 프로토콜의 경우 에서 오류가 주입되는 경우에는 상술한 바와 같이 공격자의 오류 주입 공격이 가능하였지만, 본 발명에서 제안하는 연산 프로토콜의 경우에는 입력 값과 중간 결과값의 모든 경우에 오류가 주입되더라도 안전하다.
하기의 표 1은 기존의 Yen에 의한 CRT-1 및 CRT-2의 연산 프로토콜과 본 발명에 따른 도 4에 기반한 CRT 연산 프로토콜 및 도 6에 따른 두 CRT 연산 프로토콜의 연산량을 비교한 것이다.
하기의 표 1에서 알 수 있듯이 본 발명에서 제안하는 CRT 연산 프로토콜이 기존의 연산량에서 비트 연산인 AND 연산만을 추가적으로 요구하므로 비슷한 연산량으로 최근 제시된 오류 주입 공격에 대하여 안전성 및 신뢰성을 제공함을 알 수 있다.
하기의 표 1 에서 D는 나눗셈, E는 모듈러 지수승, C는 CRT, M은 모듈러 곱셈, A는 덧셈, 그리고, An은 AND 연산을 의미한다.
본 발명에 따른 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법은 컴퓨터 판독 가능 저장 매체를 통하여 실행될 수 있다.
컴퓨터 판독 가능 저장 매체로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 수행하는 코드 세그먼트(code segment)들이다.
상기 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.
컴퓨터가 읽을 수 있는 저장 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 저장 매체의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다.
또한, 컴퓨터가 읽을 수 있는 저장 매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방시으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명은 도면에 도시된 일 실시예를 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며, 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다.
그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다.
따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.

Claims (15)

  1. 서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법에 있어서,
    인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성하는 단계;
    상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 단계;
    상기 산출된 , 상기 공개키 , 상기 서로 다른 소수 및 상기 제 1 중간 연산자를 이용하여 제 1 사용자 메시지 을 생성하고, 상기 제 1 사용자 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 단계;
    상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하고, 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 제 2 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증의 결과값을 생성하는 단계; 및
    상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행하는 단계를 포함하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법.
  2. 제 1 항에 있어서,
    상기 제 1 사용자 메시지 는 하기의 식 (1)에 의해 생성되는 것을 특징으로 하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법.
    (1)
  3. 제 1 항에 있어서,
    제 2 사용자 메시지 는 하기의 식 (2)에 의해 생성되는 것을 특징으로 하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법.
    (2)
  4. 제 1 항에 있어서,
    상기 서명 인증을 수행하는 단계는
    상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고,
    상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력하는 단계를 포함하는 것을 특징으로 하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법.
  5. 서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법에 있어서,
    인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성하는 단계;
    상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 단계;
    상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 단계;
    상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하고, 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증값을 생성하는 단계; 및
    상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행하는 단계를 포함하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법.
  6. 제 5 항에 있어서,
    상기 사용자 메시지 는 하기의 식 3에 의해 연산되는 것을 특징으로 하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법.
    (3)
  7. 제 5 항에 있어서,
    상기 서명 인증을 수행하는 단계는
    상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고,
    상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력하는 단계를 포함하는 것을 특징으로 하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항의 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 기록매체.
  9. 서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치에 있어서,
    인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성하는 중간 연산자 생성부;
    상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 모듈라 지수승 연산부;
    상기 산출된 , 상기 공개키 , 상기 서로 다른 소수 및 상기 제 1 중간 연산자를 이용하여 제 1 사용자 메시지 을 생성하고, 상기 제 1 사용자 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 상관 모듈라 지수승 연산부;
    상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하는 CRT 연산부;
    상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 제 2 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증의 결과값을 생성하는 비트 비교 연산부; 및
    상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행하는 서명 인증 수행부를 포함하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치.
  10. 제 9 항에 있어서,
    상기 제 1 사용자 메시지 는 하기의 식 (4)에 의해 생성되는 것을 특징으로 하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치.
    (4)
  11. 제 9 항에 있어서,
    제 2 사용자 메시지 는 하기의 식 (5)에 의해 생성되는 것을 특징으로 하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치.
    (5)
  12. 제 9 항에 있어서,
    상기 서명 인증 수행부는
    상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고,
    상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력하는 것을 특징으로 하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치.
  13. 서로 다른 소수 를 비밀키로, 를 만족하는 을 공개키로 euler totient 함수 과 서로 소인 랜덤한 정수 에 의해 선택된 을 공개키로, 을 만족하는 을 비밀키로 이용하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치에 있어서,
    인증된 수신자에게 전송하고자 하는 메시지 및 상기 소수 를 이용하여 제 1 중간 연산자 를 생성하고, 상기 메시지 및 상기 소수 를 이용하여 제 2 중간 연산자 를 생성하는 중간 연산자 생성부;
    상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 제 1모듈라 지수승 연산부;
    상기 메시지 에 상기 비밀키 로 모듈라 연산한 값을 제곱한 을 상기 소수 로 모듈라 연산하여 값을 산출하는 제 2 모듈라 지수승 연산부;
    상기 연산된 로 이루어진 데이터 쌍을 입력 값으로 중국인의 나머지 정리를 이용하여 나머지 정리 값 를 생성하고, 상기 나머지 정리 값에 비트 비교 연산자인 AND 연산자에 의해 생성된 사용자 메시지 을 이용한 를 곱하여 상기 메시지 에 대한 서명 인증값을 생성하는 비트 비교 연산부; 및
    상기 생성된 서명 인증의 결과값과 상기 메시지 에 비밀키 제곱한 값에 모듈라 연산하여 생성한 서명값의 동일여부에 따라 서명 인증을 수행하는 서명 인증 수행부를 포함하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치.
  14. 제 13 항에 있어서,
    상기 사용자 메시지 는 하기의 식 6에 의해 연산되는 것을 특징으로 하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치.
    (6)
  15. 제 13 항에 있어서,
    상기 서명 인증 수행부는
    상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하면 서명 인증값을 출력하고,
    상기 생성된 서명 인증의 결과값과 상기 서명값이 동일하지 않으면 오류 메시지를 출력하는 것을 특징으로 하는 CRT-RSA 기반의 비트 연산을 이용한 디지털 서명 장치.
KR1020080018492A 2008-02-28 2008-02-28 Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체 KR100953716B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080018492A KR100953716B1 (ko) 2008-02-28 2008-02-28 Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080018492A KR100953716B1 (ko) 2008-02-28 2008-02-28 Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체

Publications (2)

Publication Number Publication Date
KR20090093141A true KR20090093141A (ko) 2009-09-02
KR100953716B1 KR100953716B1 (ko) 2010-04-19

Family

ID=41301654

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080018492A KR100953716B1 (ko) 2008-02-28 2008-02-28 Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체

Country Status (1)

Country Link
KR (1) KR100953716B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101112570B1 (ko) * 2010-04-12 2012-03-13 고려대학교 산학협력단 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체

Families Citing this family (1)

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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100431286B1 (ko) * 2002-01-14 2004-05-12 한국정보보호진흥원 중국인 나머지 정리(crt) 기반의 오류 공격에 대응하는 방법 및 그 장치
DE10304451B3 (de) * 2003-02-04 2004-09-02 Infineon Technologies Ag Modulare Exponentiation mit randomisiertem Exponenten
KR100652377B1 (ko) * 2004-08-06 2007-02-28 삼성전자주식회사 모듈라 지수승 알고리즘, 기록매체 및 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101112570B1 (ko) * 2010-04-12 2012-03-13 고려대학교 산학협력단 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체

Also Published As

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

Similar Documents

Publication Publication Date Title
CA2792787C (en) System and method for protecting cryptographic assets from a white-box attack
KR100891323B1 (ko) 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
CA2542556C (en) An authentication system executing an elliptic curve digital signature cryptographic process
US8369517B2 (en) Fast scalar multiplication for elliptic curve cryptosystems over prime fields
TWI462010B (zh) 使用橢圓曲線上一點之表現法改變之編譯方法及系統
JP4086503B2 (ja) 暗号演算装置及び方法並びにプログラム
EP3596876B1 (en) Elliptic curve point multiplication device and method for signing a message in a white-box context
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
JP2011530093A (ja) 累乗法による暗号化を保護する解決策
KR100652377B1 (ko) 모듈라 지수승 알고리즘, 기록매체 및 시스템
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
Muhammad et al. Cryptanalytic attacks on Rivest, Shamir, and Adleman (RSA) cryptosystem: issues and challenges
KR100431047B1 (ko) Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치
KR100953715B1 (ko) Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
KR100953716B1 (ko) Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
KR100954844B1 (ko) 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체
KR101112570B1 (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
KR101341810B1 (ko) Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법
Kaminaga et al. Crashing modulus attack on modular squaring for rabin cryptosystem
Lone et al. Common attacks on RSA and its variants with possible countermeasures
Kim et al. Decryption speed up of ElGamal with composite modulus
KR101094339B1 (ko) 오류주입 공격에 안전한 피아트 샤미르 개인 식별 장치, 방법 및 그 기록 매체
Shukla et al. A Comparative analysis of the attacks on public key RSA cryptosystem
KR20240040437A (ko) 암호 연산 방법, 및 상기 방법을 수행하는 전자 장치
Yin Curve selection in elliptic curve cryptography

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