KR20150091691A - Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체 - Google Patents

Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체 Download PDF

Info

Publication number
KR20150091691A
KR20150091691A KR1020140012212A KR20140012212A KR20150091691A KR 20150091691 A KR20150091691 A KR 20150091691A KR 1020140012212 A KR1020140012212 A KR 1020140012212A KR 20140012212 A KR20140012212 A KR 20140012212A KR 20150091691 A KR20150091691 A KR 20150091691A
Authority
KR
South Korea
Prior art keywords
information
parameter information
block
crt
modular exponentiation
Prior art date
Application number
KR1020140012212A
Other languages
English (en)
Other versions
KR102180029B1 (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 KR1020140012212A priority Critical patent/KR102180029B1/ko
Priority to US14/571,442 priority patent/US9571281B2/en
Publication of KR20150091691A publication Critical patent/KR20150091691A/ko
Application granted granted Critical
Publication of KR102180029B1 publication Critical patent/KR102180029B1/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/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
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI

Abstract

CRT-RSA 암호화 방법 및 장치와 이를 기록한 저장 매체에 관하여 개시한다. CRT-RSA 암호화 방법은 공개키로부터 산출된 서로 다른 2개의 소수 각각에 대한 오일러 파이 함수 값으로 비밀키를 모듈러 연산한 결과에 기초하여 모듈러 지수승 연산 처리에 이용될 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계, 상기 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 이전 블록에서 연산된 정보에 기초하여 다음 블록에 대한 모듈러 지수승 연산을 수행하는 단계 및, 상기 모듈러 지수승 연산 결과를 이용한 CRT 연산에 기초하여 암호화 처리 결과를 산출하는 단계를 포함한다.

Description

CRT-RSA 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체{CRT-RSA encryption method and apparatus and computer readable storage medium therefore}
본 발명은 암호화 방법 및 장치에 관한 것으로서, 자세하게는 CRT-RSA 암호화 방법 및 장치와 이를 기록한 저장 매체에 관한 것이다.
RSA(Rivest Shamir Adleman) 알고리즘의 대표적인 연산은 비밀키를 사용하는 지수승 연산이다. 암호화 처리를 수행하는 시스템의 계산 능력이나 메모리 자원이 제한된 환경에서의 지수승 연산의 효율성을 증대시키기 위한 많은 방법들이 제안되었다. 그 중에서 중국인 나머지 정리(Chinese remainder theorem; CRT)는 RSA 암호화 시스템에 대하여 전자서명 생성 시에 약 4배 정도의 향상된 속도를 얻을 수 있기 때문에 효율적으로 구현할 수 있다. 그러나, CRT 기반의 RSA(CRT-RSA) 알고리즘은 물리적 공격에 취약하므로, 오류 주입 공격에 대응하기 위한 연구가 진행되고 있다.
본 발명의 목적은 파이스텔(Feistel) 구조를 이용한 오류 주입 공격에 강건한 CRT-RSA 암호화 방법을 제공하는데 있다.
본 발명의 다른 목적은 파이스텔(Feistel) 구조를 이용한 오류 주입 공격에 강건한 CRT-RSA 암호화 장치를 제공하는데 있다.
본 발명의 또 다른 목적은 파이스텔(Feistel) 구조를 이용한 오류 주입 공격에 강건한 CRT-RSA 암호화 방법을 수행하기 위한 프로그램 코드가 기록된 컴퓨터 판독가능 저장매체를 제공하는데 있다.
본 발명의 기술적 사상의 일면에 따른 CRT-RSA 암호화 방법은 공개키로부터 산출된 서로 다른 2개의 소수 각각에 대한 오일러 파이 함수 값으로 비밀키를 모듈러 연산한 결과에 기초하여 모듈러 지수승 연산 처리에 이용될 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계, 상기 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 이전 블록에서 연산된 정보에 기초하여 다음 블록에 대한 모듈러 지수승 연산을 수행하는 단계 및, 상기 모듈러 지수승 연산 결과를 이용한 CRT 연산에 기초하여 암호화 처리 결과를 산출하는 단계를 포함한다.
본 발명의 실시 예에 따르면, 상기 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계는
Figure pat00001
Figure pat00002
연산에 기초하여 생성되는 중간 연산 정보
Figure pat00003
Figure pat00004
를 각각 제1파라미터 정보 및 제2파라미터 정보로서 결정하거나, 상기
Figure pat00005
Figure pat00006
로부터 각각 파생되는 중간 연산 정보들을 제1파라미터 정보 및 제2파라미터 정보로서 결정하고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계는
Figure pat00007
Figure pat00008
연산에 기초하여 중간 연산 정보
Figure pat00009
Figure pat00010
를 산출하는 단계 및, 상기 중간 연산 정보
Figure pat00011
Figure pat00012
를 함께 이용하여 상기 중간 연산 정보
Figure pat00013
Figure pat00014
로부터 각각 파생되는 제1파라미터 정보
Figure pat00015
및 제2파라미터 정보
Figure pat00016
를 산출하는 단계를 포함하고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 모듈러 지수승 연산을 수행하는 단계는 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 2개의 블록들로 분할하고, 분할된 블록 단위로 중간 연산 정보들 및 이전 블록에서 연산된 정보들 중 적어도 하나를 이용하여 다음 블록에 대한 모듈러 지수승 연산을 수행할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 동일한 사이즈를 갖는 2개 블록으로 분할할 수 있다.
본 발명의 실시 예에 따르면, 상기 모듈러 지수승 연산을 수행하는 단계는 상기 제1파라미터 정보의 일부에 해당되는 제1A블록 정보를 추출하는 단계, 상기 제2파라미터 정보의 일부에 해당되는 제2A블록 정보를 추출하는 단계, 상기 제1A블록 정보에 기초하여 제1모듈러 지수승 연산을 수행하는 단계, 상기 제2A블록 정보에 기초하여 제2모듈러 지수승 연산을 수행하는 단계, 상기 제1파라미터 정보로부터 상기 제1A블록 정보를 제외한 나머지 제1B블록 정보를 추출하는 단계, 상기 제2파라미터 정보에 기초하여 상기 제2A블록 정보를 제외한 나머지 제2B블록 정보를 추출하는 단계, 상기 제1A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 상기 제1B블록 정보에 기초한 제3모듈러 지수승 연산을 수행하는 단계 및, 상기 제2A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 상기 제2B블록 정보에 대한 제4모듈러 지수승 연산을 수행하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1A블록 정보를 각각 추출하는 단계는 n비트 길이의 상기 제1파라미터 정보
Figure pat00017
로부터
Figure pat00018
연산에 기초하여 상기 제1A블록 정보
Figure pat00019
를 산출할 수 있다.
본 발명의 실시 예에 따르면, 상기 제2A블록 정보를 추출하는 단계는 n비트 길이의 상기 제2파라미터 정보
Figure pat00020
로부터
Figure pat00021
연산에 기초하여 상기 제2A블록 정보
Figure pat00022
를 산출할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1모듈러 지수승 연산을 수행하는 단계는
Figure pat00023
Figure pat00024
연산 및
Figure pat00025
Figure pat00026
연산에 기초하여 상기 제1파라미터 정보
Figure pat00027
로부터 분할된 상기 제1A블록 정보
Figure pat00028
에 대한 모듈러 지수승 연산 결과인 제1연산 값
Figure pat00029
및 제2연산 값
Figure pat00030
을 산출하고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1모듈러 지수승 연산을 수행하는 단계는
Figure pat00031
연산에 기초하여 제3연산 값
Figure pat00032
을 더 산출하며, 상기
Figure pat00033
는 s, p 및 q를 이용한 연산에 의하여 상기 p로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제2모듈러 지수승 연산을 수행하는 단계는
Figure pat00034
Figure pat00035
Figure pat00036
연산 및
Figure pat00037
Figure pat00038
Figure pat00039
연산에 기초하여 상기 제2파라미터 정보
Figure pat00040
로부터 분할된 상기 제2A블록 정보
Figure pat00041
에 대한 모듈러 지수승 연산 결과인 제4연산 값
Figure pat00042
및 제5연산 값
Figure pat00043
을 산출하고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, q는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제2모듈러 지수승 연산을 수행하는 단계는
Figure pat00044
연산에 기초하여 제6연산 값
Figure pat00045
을 더 산출하며, 상기
Figure pat00046
는 s, p 및 q를 이용한 연산에 의하여 상기 q로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1B블록 정보를 추출하는 단계는 n비트 길이의 상기 제1파라미터 정보
Figure pat00047
로부터
Figure pat00048
=
Figure pat00049
연산에 기초하는 상기 제1B블록 정보
Figure pat00050
를 산출하며, 상기
Figure pat00051
Figure pat00052
Figure pat00053
에 기초하여 결정되고, 상기
Figure pat00054
Figure pat00055
는 각각
Figure pat00056
Figure pat00057
연산에 기초하여 결정되고, 상기
Figure pat00058
는 상기 제1A블록 정보 및 중간 연산 정보에 기초하여 결정되며, 상기
Figure pat00059
는 제2파라미터 정보이고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제2B블록 정보를 추출하는 단계는 n비트 길이의 상기 제2파라미터 정보
Figure pat00060
로부터
Figure pat00061
=
Figure pat00062
연산에 기초하여 상기 제2B블록 정보
Figure pat00063
를 산출하며, 상기
Figure pat00064
Figure pat00065
Figure pat00066
에 기초하여 결정되고, 상기
Figure pat00067
Figure pat00068
는 각각
Figure pat00069
Figure pat00070
연산에 기초하여 결정되고, 상기
Figure pat00071
는 상기 제1A블록 정보 및 중간 연산 정보에 기초하여 결정되며, 상기
Figure pat00072
는 제1파라미터 정보이고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제3모듈러 지수승 연산을 수행하는 단계는 상기 제1A블록 정보
Figure pat00073
에 대한 모듈러 지수승 연산 정보를 이용하여 상기 제1B블록 정보
Figure pat00074
에 대한 모듈러 지수승 연산을 수행하여
Figure pat00075
연산 및
Figure pat00076
연산 결과에 상응하는 제7연산 값
Figure pat00077
및 제8연산 값
Figure pat00078
을 산출하고, 상기
Figure pat00079
는 제1파라미터 정보이고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제3모듈러 지수승 연산을 수행하는 단계는
Figure pat00080
연산에 기초하여 제9연산 값
Figure pat00081
을 더 산출하며, 상기
Figure pat00082
는 s, p 및 q를 이용한 연산에 의하여 상기 p로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=p??q인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제4모듈러 지수승 연산을 수행하는 단계는 상기 제2A블록 정보
Figure pat00083
에 대한 모듈러 지수승 연산 정보를 이용하여 상기 제2B블록 정보
Figure pat00084
에 대한 모듈러 지수승 연산을 수행하여
Figure pat00085
연산 및
Figure pat00086
Figure pat00087
연산 결과에 상응하는 제10연산 값
Figure pat00088
및 제11연산 값
Figure pat00089
을 산출하고, 상기
Figure pat00090
는 제2파라미터 정보이고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, q는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제4모듈러 지수승 연산을 수행하는 단계는
Figure pat00091
연산에 기초하여 제12연산 값
Figure pat00092
을 더 산출하며, 상기
Figure pat00093
는 s, p 및 q를 이용한 연산에 의하여 상기 q로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 암호화 처리 결과를 산출하는 단계는 상기 모듈러 지수승 연산 결과를 이용한
Figure pat00094
Figure pat00095
연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출하는 단계 및, 상기 제13연산 값 S와 제14연산 값 S'를 이용한 비교 연산에 따른 판정에 기초하여 암호화 처리된 결과를 출력하는 단계를 포함하며, 상기
Figure pat00096
Figure pat00097
는 각각 제1파라미터
Figure pat00098
에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이고, 상기
Figure pat00099
Figure pat00100
는 각각 제2파라미터
Figure pat00101
에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이며, 상기 m은 메시지이고, d는 비밀키이고, N은 공개키이다.
본 발명의 기술적 사상의 다른 면에 따른 CRT-RSA 암호화 장치는 암호화 처리에 필요한 입력 정보들 및 암호화 연산 처리 과정에서 생성되는 중간 연산 정보들을 저장하는 레지스터 블록, 상기 레지스터 블록으로부터 읽어낸 입력 정보들을 적용하여 모듈러 지수승 연산 처리에서의 메시지에 대한 지수승 값을 결정하는 제1파라미터 정보 및 제2파라미터 정보를 포함하는 중간 연산 정보들을 산출하는 중간 값 연산부, 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할하는 정보 분할 처리부, 상기 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 상기 중간 연산 정보들을 적용하여 복수의 라운드에 거쳐 모듈러 지수승 연산 처리를 수행하는 모듈러 곱셈부, 상기 모듈러 지수승 연산 처리 결과를 이용하여 CRT 연산을 수행하는 CRT 연산부 및, 상기 CRT 연산 결과에 기초하여 암호화 처리 결과를 산출하는 암호화 결과 산출부를 포함한다.
본 발명의 일실시 예에 따르면, 상기 모듈러 곱셈부는 상기 제1파라미터 정보에서 분할된 제1A 블록 정보에 기초한 제1모듈러 지수승 연산 처리, 상기 제2파라미터 정보에서 분할된 제2A 블록 정보에 기초한 제2모듈러 지수승 연산 처리, 상기 제1파라미터 정보에서 상기 제1A 블록 정보를 제외한 제1B 블록 정보에 기초한 제3모듈러 지수승 연산 처리 및 상기 제2파라미터 정보에서 상기 제2A 블록 정보를 제외한 제2B 블록 정보에 기초한 제4모듈러 지수승 연산 처리를 순차적으로 수행하며, 상기 제3모듈러 지수승 연산 처리는 상기 제1모듈러 지수승 연산 처리 결과를 이용하여 수행하고, 제4모듈러 지수승 연산 처리는 상기 제2모듈러 지수승 연산 처리 결과를 이용하여 수행할 수 있다.
본 발명의 일실시 예에 따르면, 상기 중간 값 연산부는 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할 처리하는데 적용되는 중간 연산 정보들 및 상기 블록 단위의 모듈러 지수승 연산 처리에 적용되는 중간 연산 정보들 중의 적어도 하나를 산출할 수 있다.
본 발명의 기술적 사상의 또 다른 면에 따른 컴퓨터 판독가능 저장매체는 공개키로부터 산출된 서로 다른 2개의 소수 각각에 대한 오일러 파이 함수 값으로 비밀키를 모듈러 연산한 결과에 기초하여 모듈러 지수승 연산 처리에 이용될 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계, 상기 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 이전 블록에서 연산된 정보에 기초하여 다음 블록에 대한 모듈러 지수승 연산을 수행하는 단계 및, 상기 모듈러 지수승 연산 결과를 이용한 CRT 연산에 기초하여 암호화 처리 결과를 산출하는 단계를 포함하는 CRT-RSA 암호화 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드가 기록된 것을 특징으로 한다.
본 발명에 의하면 파이스텔(Feistel) 구조를 CRT-RSA 알고리즘에 적용하여 비밀 값인 p와 q(또는 p와 q로부터 파생되는
Figure pat00102
Figure pat00103
)를 각각 분할하여 암호화 처리를 수행함으로써, 암호화 중간 연산 과정에서 오류 확산을 넓게 유도할 수 있다. 이로 인하여, 오류 주입 공격에 의해서도 공격자가 비밀 값을 알아낼 수 없으므로 정보를 안전하게 보호할 수 있는 효과가 발생된다.
그리고, 본 발명에서 제안하는 파이스텔(Feistel) 구조를 이용한 CRT-RSA 알고리즘은 오리지널 CRT-RSA 알고리즘에 비하여 비교적 적은 연산량을 추가함으로써, 오류 주입 공격으로부터 효율적으로 정보를 보호할 수 있는 효과가 발생된다.
도 1은 본 발명의 기술적 사상에 따른 CRT-RSA 알고리즘이 적용되는 전자 장치의 구성도이다.
도 2는 도 1에 도시된 암호화 처리부의 세부 구성을 예시적으로 보여주는 도면이다.
도 3은 본 발명의 기술적 사상에 따른 CRT-RSA 암호화 방법의 흐름도이다.
도 4는 도 3에 도시된 제1,2파라미터 정보 산출 프로세스에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
도 5는 도 3에 도시된 모듈러 지수승 연산 수행 프로세스에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
도 6은 도 3에 도시된 암호화 처리 결과 산출 프로세스에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
도 7은 본 발명의 기술적 사상에 따른 CRT-RSA 암호화 처리 방법의 주요 과정을 개념적으로 보여주는 도면이다.
도 8은 본 발명의 기술적 사상에 따른 CRT-RSA 알고리즘의 일 예를 보여주는 도면이다.
도 9는 본 발명의 기술적 사상에 따른 CRT-RSA 암호화 처리 방법에 적용되는 모듈러 지수승 연산 알고리즘의 일 예를 보여주는 도면이다.
도 10은 본 발명의 기술적 사상에 따른 CRT-RSA 알고리즘의 다른 예를 보여주는 도면이다.
도 11은 본 발명의 실시 예들에 대한 CRT-RSA 알고리즘이 채용된 컴퓨터 시스템의 일 구현 예를 나타내는 블록도이다.
도 12는 본 발명의 실시 예들에 대한 CRT-RSA 알고리즘이 채용된 메모리 카드 시스템의 일 구현 예를 나타내는 블록도이다.
도 13은 본 발명의 실시 예들에 대한 CRT-RSA 알고리즘이 채용된 장치에서의 암호화 처리 과정에서의 소비 전력 분포를 보여주는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
우선, RSA 알고리즘 및 이에 대한 공격에 대하여 설명하기로 한다.
RSA 알고리즘에 대한 공격으로는 수동적인 공격 방법과 능동적인 공격 방법이 있다.
수동적인 공격 방법으로 분류되는 부채널 공격 방법에는 공격자가 알고리즘 수행 시간, 알고리즘의 동작 중에 사용되는 전력 및 전자파를 분석하여 공격하는 방법 등이 있다.
능동적인 공격 방법으로는 변형된 외부 클럭을 주입하거나, 온도를 변화시키거나 장치에 X-ray와 같은 레이저를 이용하여 공격하는 방법 등이 있다, 이러한 능동적인 공격 방법을 오류 주입 공격(Fault Attack; FA)이라고 한다.
RSA 알고리즘의 대표적인 연산은 비밀키를 사용하는 지수승 연산이다. 이와 같은 지수승 연산의 효율성을 증대시키기 위하여 제안된 알고리즘이 중국인 나머지 정리(Chinese remainder theorem; CRT) 기반의 CRT-RSA 알고리즘이다.
위에서 언급한 공격 방법은 RSA 암호 알고리즘이 적용된 스마트 카드와 같은 환경에서 오류를 주입하여 비밀값인 소수 값을 공격자가 알아내는 것이다.
본 발명에서는 파이스텔(Feistel) 구조를 이용한 오류 주입 공격에 강건한 CRT-RSA 암호화 방법 및 장치를 제안하였다. 이에 대하여 아래에서 상세히 설명하기로 한다.
도 1은 본 발명의 기술적 사상에 따른 암호화 방법이 적용되는 전자 장치(100)의 구성도이다.
도 1에 도시된 바와 같이, 전자 장치(100)는 중앙 처리 장치(CPU; 110), 암호화 처리부(120), 복호화 처리부(130), 저장부(140), 입/출력(I/O) 인터페이스(150) 및 버스(160)를 포함한다.
예로서, 전자 장치(100)에는 휴대폰, 스마트 카드, 퍼스널 컴퓨터, 노트북 컴퓨터, PDA(personal digital assistant) 등이 포함될 수 있다.
CPU(110)는 버스(160)를 통하여 암호화 처리부(120), 복호화 처리부(130), 저장부(140) 및 I/O 인터페이스(150)와 전기적으로 접속된다.
버스(160)는 전자 장치(100)의 구성 수단들 간의 정보를 전송하는 전송로를 의미한다.
CPU(110)는 전자 장치(100)의 전반적인 동작을 제어한다. 세부적으로, I/O 인터페이스(150)를 통하여 수신되는 커맨드를 해독하고, 해독된 결과에 따른 동작을 수행하도록 전자 장치(100)를 제어한다. 예로서, CPU(110)는 본 발명에서 제안하는 CRT-RSA 알고리즘을 이용하여 암호화 처리부(120)에서 암호화 처리를 수행하도록 전자 장치(100)를 제어할 수 있다.
저장부(140)에는 I/O 인터페이스(150)를 통하여 수신되는 정보들 및 암호화 처리에 이용되는 정보들이 저장된다. 예로서, 암호화 처리에 이용되는 정보에는 공개키, 비밀키, 메시지 등이 포함될 수 있다.
I/O 인터페이스(150)는 전자 장치(100)와 접속되는 호스트와의 데이터 교환 프로토콜을 구비하고 전자 장치(100)와 호스트를 상호 연결한다. I/O 인터페이스(150)는 ATA(Advanced Technology Attachment) 인터페이스, SATA(Serial Advanced Technology Attachment) 인터페이스, PATA(Parallel Advanced Technology Attachment) 인터페이스, USB(Universal Serial Bus) 또는 SAS(Serial Attached Small Computer System) 인터페이스, SCSI(Small Computer System Interface), eMMC(embedded Multi Media Card) 인터페이스, UFS(Unix File System) 인터페이스로 구현할 수 있다. 그러나 이는 예시일 뿐 이에 제한되는 것은 아니다.
암호화 처리부(120)는 저장부(140)로부터 읽어낸 공개키, 비밀키 및 메시지에 기초하여 본 발명에서 제안하는 CRT-RSA 알고리즘에 따른 암호화 처리를 수행하기 위한 하드웨어 및 소프트웨어로 구성된다.
본 발명에서 제안하는 CRT-RSA 알고리즘은 오류 확산을 넓게 하기 위하여 파이스텔(Feistel) 구조를 CRT-RSA 알고리즘에 적용하여 비밀 값인 p와 q(또는 p와 q로부터 파생되는
Figure pat00104
Figure pat00105
)를 각각 분할하여 암호화 처리하는 방식이다. 예로서, 비밀 값인 p와 q의 비트 길이를 n이라고 하면, 파이스텔 구조와 같이 p와 q를 n/2 만큼씩 나누어 지수승 연산 처리를 한다. 각 지수승 연산 결과 값을 이용하여 다음 지수승 연산에 사용하므로 오류 확산을 유도할 수 있게 된다.
본 발명에서 제안하는 CRT-RSA 알고리즘은 공개키로부터 산출된 서로 다른 2개의 소수 각각에 대한 오일러 파이 함수 값으로 비밀키를 모듈러 연산한 결과에 기초하여 모듈러 지수승 연산 처리에 이용될 제1파라미터 정보 및 제2파라미터 정보를 산출하는 오퍼레이션, 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 이전 블록에서 연산된 정보에 기초하여 다음 블록에 대한 모듈러 지수승 연산을 수행하는 오퍼레이션 및 모듈러 지수승 연산 결과를 이용한 CRT 연산에 기초하여 암호화 처리 결과를 산출하는 오퍼레이션으로 구성될 수 있다.
복호화 처리부(130)는 I/O 인터페이스(150)를 통하여 수신되는 암호문을 저장부(140)로부터 읽어낸 공개키 및 비밀키를 이용하여 암호 해독 처리를 수행하기 위한 하드웨어 및 소프트웨어로 구성된다. 예로서, CRT-RSA 복호화 알고리즘이 적용될 수 있다.
도 2는 도 1에 도시된 암호화 처리부(120)의 세부 구성을 예시적으로 보여주는 도면이다.
도 2에 도시된 바와 같이, 암호화 처리부(120)는 레지스터 블록(120-1), 중간 값 연산부(120-2), 정보 분할 처리부(120-3), 모듈러 곱셈부(120-4), CRT 연산부(120-5), 암호화 결과 산출부(120-6) 및 버스(160)를 포함한다.
레지스터 블록(120-1)은 복수의 레지스터들로 구성되며, 암호화 처리에 필요한 입력 정보들 및 암호화 연산 처리 과정에서 생성되는 중간 연산 정보들이 각각 지정된 레지스터에 저장된다.
예로서, 레지스터 블록(120-1)에는 도 8에 도시된 CRT-RSA 알고리즘에서의 입력 정보들
Figure pat00106
Figure pat00107
및 단계 1~17에서 연산되는 중간 연산 정보들이 저장될 수 있다. 여기에서, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 그리고,
Figure pat00108
Figure pat00109
는 각각
Figure pat00110
Figure pat00111
연산에 기초하여 생성되는 정보들이고, d는 비밀키이다.
다른 예로서, 레지스터 블록(120-1)에는 도 10에 도시된 CRT-RSA 알고리즘에서의 입력 정보들
Figure pat00112
및 단계 1~17에서 연산되는 중간 연산 정보들이 저장될 수 있다.
중간 값 연산부(120-2)는 레지스터 블록(120-1)으로부터 읽어낸 입력 정보들을 적용하여 모듈러 지수승 연산 처리에서의 메시지에 대한 지수승 값을 결정하는 제1파라미터 정보 및 제2파라미터 정보를 포함하는 중간 연산 정보들을 산출한다.
예로서, 중간 값 연산부(120-2)는 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 2, 3, 6, 8, 12, 14에 대한 연산을 수행하고, 연산 결과를 중간 연산 정보들로서 산출할 수 있다. 또한, 중간 값 연산부(120-2)는 도 8에 도시된 CRT-RSA 알고리즘의 단계 5, 4, 10, 11에서의 중간 연산 정보들
Figure pat00113
,
Figure pat00114
,
Figure pat00115
,
Figure pat00116
을 연산할 수 있다.
다른 예로서, 중간 값 연산부(120-2)는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 2, 3, 6, 8, 12, 14에 대한 연산을 수행하고, 연산 결과를 중간 연산 정보들로서 산출할 수 있다. 또한, 중간 값 연산부(120-2)는 도 10에 도시된 CRT-RSA 알고리즘의 단계 5, 4, 10, 11에서의 중간 연산 정보들
Figure pat00117
,
Figure pat00118
,
Figure pat00119
,
Figure pat00120
을 연산할 수 있다.
정보 분할 처리부(120-3)는 모듈러 지수승 연산 처리에서의 메시지에 대한 지수승 값을 결정하는 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할 처리한다. 도 8 또는 도 10에 도시된 CRT-RSA 알고리즘에서 제1파라미터 정보는
Figure pat00121
이고, 제2파라미터 정보는
Figure pat00122
이다. 예로서, 제1파라미터 정보
Figure pat00123
및 제2파라미터 정보
Figure pat00124
를 각각 2개의 블록으로 분할 처리할 수 있다. 예로서, 제1파라미터 정보
Figure pat00125
및 제2파라미터 정보
Figure pat00126
를 각각 동일한 사이즈를 갖는 2개 블록으로 분할 처리할 수 있다.
예로서, 정보 분할 처리부(120-3)는 도 9에 도시된 CRT-RSA 알고리즘에서의 단계 4 및 9와 같이 제1파라미터 정보
Figure pat00127
및 제2파라미터 정보
Figure pat00128
를 각각 복수의 블록으로 분할 처리할 수 있다.
정보 분할 처리부(120-3)는 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 4와 같이, n비트 길이의 제1파라미터 정보
Figure pat00129
로부터
Figure pat00130
연산에 기초하여 제1A블록 정보
Figure pat00131
를 산출할 수 있다.
정보 분할 처리부(120-3)는 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 4와 같이, n비트 길이의 제2파라미터 정보
Figure pat00132
로부터
Figure pat00133
연산에 기초하여 제2A블록 정보
Figure pat00134
를 산출할 수 있다.
정보 분할 처리부(120-3)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 9와 같이, n비트 길이의 제1파라미터 정보
Figure pat00135
로부터
Figure pat00136
=
Figure pat00137
연산에 기초하는 제1B블록 정보
Figure pat00138
를 산출할 수 있다.
정보 분할 처리부(120-3)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 9와 같이, n비트 길이의 제2파라미터 정보
Figure pat00139
로부터
Figure pat00140
=
Figure pat00141
연산에 기초하여 제2B블록 정보
Figure pat00142
를 산출할 수 있다.
위와 같은 방식으로, 정보 분할 처리부(120-3)는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 4 및 9와 같이 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할 처리할 수도 있다.
모듈러 곱셈부(120-4)는 제1파라미터 정보
Figure pat00143
및 제2파라미터 정보
Figure pat00144
로부터 각각 분할된 블록 단위로 중간 연산 정보들을 적용하여 복수의 라운드에 거쳐 모듈러 지수승 연산 처리를 수행한다. 예로서, 모듈러 지수승 연산 처리에는 도 9에 도시된 바와 같은 모듈러 지수승 연산 알고리즘이 이용될 수 있다.
예로서, 모듈러 곱셈부(120-4)는 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 5, 7, 10, 11과 같은 블록 단위의 모듈러 지수승 연산을 수행할 수 있다.
다른 예로서, 모듈러 곱셈부(120-4)는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 5, 7, 10, 11과 같은 블록 단위의 모듈러 지수승 연산을 수행할 수 있다.
모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 5와 같이,
Figure pat00145
Figure pat00146
연산 및
Figure pat00147
Figure pat00148
연산에 기초하여 제1파라미터 정보
Figure pat00149
로부터 분할된 제1A블록 정보
Figure pat00150
에 대한 모듈러 지수승 연산 결과인 제1연산 값
Figure pat00151
및 제2연산 값
Figure pat00152
을 산출할 수 있다.
모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 7과 같이,
Figure pat00153
Figure pat00154
Figure pat00155
연산 및
Figure pat00156
Figure pat00157
Figure pat00158
연산에 기초하여 제2파라미터 정보
Figure pat00159
로부터 분할된 제2A블록 정보
Figure pat00160
에 대한 모듈러 지수승 연산 결과인 제4연산 값
Figure pat00161
및 제5연산 값
Figure pat00162
을 산출할 수 있다.
모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 10과 같이, 제1B블록 정보
Figure pat00163
에 대한 모듈러 지수승 연산을 수행하여 연산 및
Figure pat00165
연산 결과에 상응하는 제7연산 값
Figure pat00166
및 제8연산 값
Figure pat00167
을 산출할 수 있다. 이 때, 제1A블록 정보
Figure pat00168
에 대한 모듈러 지수승 연산 정보가 이용된다.
모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 11과 같이, 제2B블록 정보
Figure pat00169
에 대한 모듈러 지수승 연산을 수행하여
Figure pat00170
연산 및
Figure pat00171
Figure pat00172
연산 결과에 상응하는 제10연산 값
Figure pat00173
및 제11연산 값
Figure pat00174
을 산출할 수 있다. 이 때, 제2A블록 정보
Figure pat00175
에 대한 모듈러 지수승 연산 정보가 이용된다.
위와 같은 방식으로, 모듈러 곱셈부(120-4)는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 5, 7, 10, 11과 같은 블록 단위의 모듈러 지수승 연산을 수행할 수도 있다.
CRT 연산부(120-5)는 모듈러 지수승 연산 처리 결과를 이용하여 CRT 연산을 수행한다.
예로서, CRT 연산부(120-5)는 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 13과 같은 CRT 연산을 수행할 수 있다.
다른 예로서, 모듈러 곱셈부(120-4)는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 13과 같은 CRT 연산을 수행할 수도 있다.
예로서, 모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 13과 같이,
Figure pat00176
Figure pat00177
연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출할 수 있다.
다른 예로서, 모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 13과 같이,
Figure pat00178
Figure pat00179
연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출할 수도 있다.
암호화 결과 산출부(120-6)는 CRT 연산 결과에 기초하여 비교 판단 오퍼레이션을 거쳐 암호화 처리 결과를 산출하는 암호화 결과를 산출한다.
예로서, 암호화 결과 산출부(120-6)는 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 15, 16, 17을 수행할 수 있다.
다른 예로서, 암호화 결과 산출부(120-6)는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 15, 16, 17을 수행할 수 있다.
암호화 결과 산출부(120-6)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 15와 같이, 비교 판단 처리를 수행할 수 있다. 예로서,
Figure pat00180
인 것으로 판단되는 경우에 암호화 처리에 오류가 발생된 것으로 판정한다. 도 8의 단계 15에서 오류가 발생되지 않은 것으로 판정되면, 암호화 결과 산출부(120-6)는 단계 16과 같은 연산 처리를 실행하여 암호화된 결과 S를 연산하여 출력한다.
암호화 결과 산출부(120-6)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 15와 같이, 비교 판단 처리를 수행할 수 있다. 예로서,
Figure pat00181
인 것으로 판단되는 경우에 암호화 처리에 오류가 발생된 것으로 판정한다. 도 10의 단계 15에서 오류가 발생되지 않은 것으로 판정되면, 암호화 결과 산출부(120-6)는 단계 16과 같은 연산 처리를 실행하여 암호화된 결과 S를 연산하여 출력할 수도 있다.
다음으로, 도 1의 전자 장치(100)에서 수행되는 본 발명의 기술적 사상에 따른 CRT-RSA 암호화 방법에 대하여 도 3의 흐름도를 참조하여 설명하기로 한다.
우선, 전자 장치(100)는 공개키로부터 산출된 서로 다른 2개의 소수 각각에 대한 오일러 파이 함수 값으로 비밀키를 모듈러 연산한 결과에 기초하여 모듈러 지수승 연산 처리에 이용될 제1파라미터 정보 및 제2파라미터 정보를 산출하는 오퍼레이션을 수행한다(S110).
예로서,
Figure pat00182
Figure pat00183
연산에 기초하여 생성되는
Figure pat00184
Figure pat00185
를 각각 제1파라미터 정보 및 제2파라미터 정보로서 결정할 수 있다. 여기에서, d는 비밀키이고, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다.
다른 예로서,
Figure pat00186
Figure pat00187
로부터 각각 파생되는 중간 연산 정보들인
Figure pat00188
Figure pat00189
를 제1파라미터 정보 및 제2파라미터 정보로서 결정할 수도 있다. 여기에서,
Figure pat00190
Figure pat00191
Figure pat00192
를 함께 이용하여
Figure pat00193
로부터 파생되는 중간 연산 정보로 결정하고,
Figure pat00194
Figure pat00195
Figure pat00196
를 함께 이용하여
Figure pat00197
로부터 파생되는 중간 연산 정보로 결정할 수 있다.
예로서,
Figure pat00198
Figure pat00199
는 도 8에 도시된 CRT-RSA 알고리즘의 단계 3에서와 같은 연산 처리에 의해 산출될 수 있다. 즉,
Figure pat00200
=
Figure pat00201
Figure pat00202
=
Figure pat00203
연산에 의해
Figure pat00204
Figure pat00205
를 결정할 수 있다. 다른 예로서,
Figure pat00206
Figure pat00207
는 도 10에 도시된 CRT-RSA 알고리즘의 단계 3에서와 같은 연산 처리에 의해 산출될 수도 있다. 본 발명에서
Figure pat00208
Figure pat00209
Figure pat00210
Figure pat00211
로부터 다양하게 변형시켜 산출할 수 있다.
다음으로, 전자 장치(100)는 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 이전 블록에서 연산된 정보에 기초하여 다음 블록에 대한 모듈러 지수승 연산 처리를 하는 오퍼레이션을 수행한다(S120). 예로서, 제1파라미터 정보 및 제2파라미터 정보를 각각 2개의 블록들로 분할하고, 분할된 블록 단위로 중간 연산 정보들 및 이전 블록에서 연산된 정보들 중 적어도 하나를 이용하여 다음 블록에 대한 모듈러 지수승 연산을 수행할 수 있다. 예로서, 제1파라미터 정보 및 제2파라미터 정보를 각각 동일한 사이즈를 갖는 2개 블록으로 분할할 수 있다.
다음으로, 전자 장치(100)는 모듈러 지수승 연산 결과를 이용한 CRT 연산에 기초하여 암호화 처리 결과를 산출하는 오퍼레이션을 수행한다(S130). 예로서, 암호화 처리 결과를 산출하는 오퍼레이션에서 비교 판단 처리를 수행하여 오류를 검출할 수도 있다.
도 4는 도 3에 도시된 제1,2파라미터 정보 산출 프로세스(S110)에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
전자 장치(100)는 입력 정보들을 이용하여
Figure pat00212
Figure pat00213
연산에 기초하여 중간 연산 정보
Figure pat00214
Figure pat00215
를 산출하는 오퍼레이션을 수행한다(S110-1). 여기에서, d는 비밀키이고, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다.
전자 장치(100)는 중간 연산 정보
Figure pat00216
Figure pat00217
를 함께 이용하여 중간 연산 정보
Figure pat00218
Figure pat00219
로부터 각각 파생되는 제1파라미터 정보
Figure pat00220
및 제2파라미터 정보
Figure pat00221
를 산출하는 오퍼레이션을 수행한다(S110-2). 예로서, 제1파라미터 정보
Figure pat00222
및 제2파라미터 정보
Figure pat00223
는 도 8 또는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 3과 같은 연산식을 이용하여 산출할 수 있다.
도 5는 도 3에 도시된 모듈러 지수승 연산 수행 프로세스(S120)에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
전자 장치(100)는 제1파라미터 정보
Figure pat00224
의 일부에 해당되는 제1A블록 정보를 추출하는 오퍼레이션을 수행한다(S120-1). 전자 장치(100)는 LEFTB 함수를 이용하여 제1파라미터 정보
Figure pat00225
로부터 제1A블록 정보를 추출할 수 있다. 예로서, n비트 길이의 제1파라미터 정보
Figure pat00226
로부터
Figure pat00227
연산에 기초하여 제1A블록 정보
Figure pat00228
를 산출할 수 있다.
그리고, 전자 장치(100)는 제2파라미터 정보
Figure pat00229
의 일부에 해당되는 제2A블록 정보를 추출하는 오퍼레이션을 수행한다(S120-2). 전자 장치(100)는 LEFTB 함수를 이용하여 제2파라미터 정보
Figure pat00230
로부터 제2A블록 정보를 추출할 수 있다. 예로서, n비트 길이의 제2파라미터 정보
Figure pat00231
로부터
Figure pat00232
연산에 기초하여 제2A블록 정보
Figure pat00233
를 산출할 수 있다.
다음으로, 전자 장치(100)는 제1A블록 정보에 기초하여 제1모듈러 지수승 연산을 수행한다(S120-3). 예로서,
Figure pat00234
Figure pat00235
연산 및
Figure pat00236
Figure pat00237
연산에 기초하여 제1파라미터 정보
Figure pat00238
로부터 분할된 제1A블록 정보
Figure pat00239
에 대한 모듈러 지수승 연산 결과인 제1연산 값
Figure pat00240
및 제2연산 값
Figure pat00241
을 산출할 수 있다. 여기에서, m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수이다. 또한,
Figure pat00242
연산에 기초하여 제3연산 값
Figure pat00243
을 더 산출할 수 있다. 여기에서,
Figure pat00244
는 입력 정보 s, p 및 q를 이용한 연산에 의하여 p로부터 파생되는 중간 연산 정보이고, s는 랜덤한 수이고, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 예로서,
Figure pat00245
Figure pat00246
연산에 의하여 결정되고,
Figure pat00247
Figure pat00248
Figure pat00249
연산에 의하여 결정될 수 있다.
그리고, 전자 장치(100)는 제2A블록 정보에 기초하여 제2모듈러 지수승 연산을 수행한다(S120-4). 예로서,
Figure pat00250
Figure pat00251
Figure pat00252
연산 및
Figure pat00253
Figure pat00254
Figure pat00255
연산에 기초하여 제2파라미터 정보
Figure pat00256
로부터 분할된 제2A블록 정보
Figure pat00257
에 대한 모듈러 지수승 연산 결과인 제4연산 값
Figure pat00258
및 제5연산 값
Figure pat00259
을 산출할 수 있다. 또한,
Figure pat00260
연산에 기초하여 제6연산 값
Figure pat00261
을 더 산출할 수 있다. 여기에서,
Figure pat00262
는 s, p 및 q를 이용한 연산에 의하여 q로부터 파생되는 중간 연산 정보이다. 예로서,
Figure pat00263
Figure pat00264
연산에 의하여 결정되고,
Figure pat00265
Figure pat00266
Figure pat00267
연산에 의하여 결정될 수 있다.
다음으로, 전자 장치(100)는 제1파라미터 정보
Figure pat00268
로부터 제1A블록 정보
Figure pat00269
를 제외한 나머지 제1B블록 정보를 추출하는 오퍼레이션을 수행한다(S120-5). 예로서, n비트 길이의 제1파라미터 정보
Figure pat00270
로부터
Figure pat00271
=
Figure pat00272
연산에 기초하는 제1B블록 정보
Figure pat00273
를 산출할 수 있다. 여기에서,
Figure pat00274
Figure pat00275
Figure pat00276
에 기초하여 결정되고,
Figure pat00277
Figure pat00278
는 각각
Figure pat00279
Figure pat00280
연산에 기초하여 결정되고,
Figure pat00281
는 제1A블록 정보 및 중간 연산 정보에 기초하여 결정된다. 예로서,
Figure pat00282
Figure pat00283
의 연산 결과이고,
Figure pat00284
Figure pat00285
=
Figure pat00286
연산에 기초하여 결정되고,
Figure pat00287
Figure pat00288
연산에 기초하여 결정될 수 있다.
그리고, 전자 장치(100)는 제2파라미터 정보
Figure pat00289
로부터 제2A블록 정보
Figure pat00290
를 제외한 나머지 제2B블록 정보를 추출하는 오퍼레이션을 수행한다(S120-6). 예로서, n비트 길이의 제2파라미터 정보
Figure pat00291
로부터
Figure pat00292
=
Figure pat00293
연산에 기초하여 제2B블록 정보
Figure pat00294
를 산출할 수 있다. 여기에서,
Figure pat00295
Figure pat00296
Figure pat00297
에 기초하여 결정되고,
Figure pat00298
Figure pat00299
는 각각
Figure pat00300
Figure pat00301
연산에 기초하여 결정되고,
Figure pat00302
는 제1A블록 정보 및 중간 연산 정보에 기초하여 결정될 수 있다. 예로서,
Figure pat00303
Figure pat00304
의 연산 결과이고,
Figure pat00305
Figure pat00306
=
Figure pat00307
연산에 기초하여 결정되고,
Figure pat00308
Figure pat00309
=
Figure pat00310
연산에 기초하여 결정될 수 있다.
다음으로, 전자 장치(100)는 1A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 제1B블록 정보에 기초하여 제3모듈러 지수승 연산을 수행한다(S120-7). 예로서, 제1A블록 정보
Figure pat00311
에 대한 모듈러 지수승 연산 정보인 제1연산 값
Figure pat00312
및 제2연산 값
Figure pat00313
를 이용한 제1B블록 정보
Figure pat00314
에 대한 모듈러 지수승 연산을 수행하여
Figure pat00315
연산 및
Figure pat00316
연산 결과에 상응하는 제7연산 값
Figure pat00317
및 제8연산 값
Figure pat00318
을 산출할 수 있다. 또한,
Figure pat00319
연산에 기초하여 제9연산 값
Figure pat00320
을 더 산출할 수 있다.
다음으로, 전자 장치(100)는 2A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 제2B블록 정보에 기초하여 제4모듈러 지수승 연산을 수행한다(S120-8). 예로서, 제2A블록 정보
Figure pat00321
에 대한 모듈러 지수승 연산 정보인 제4연산 값
Figure pat00322
및 제5연산 값
Figure pat00323
을 이용한 제2B블록 정보
Figure pat00324
에 대한 모듈러 지수승 연산을 수행하여
Figure pat00325
연산 및
Figure pat00326
Figure pat00327
연산 결과에 상응하는 제10연산 값
Figure pat00328
및 제11연산 값
Figure pat00329
을 산출할 수 있다. 또한,
Figure pat00330
연산에 기초하여 제12연산 값
Figure pat00331
을 더 산출할 수 있다.
도 6은 도 3에 도시된 암호화 처리 결과 산출 프로세스(S130)에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
전자 장치(100)는 모듈러 지수승 연산 결과를 이용한
Figure pat00332
Figure pat00333
연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출한다(S130-1). 여기에서,
Figure pat00334
Figure pat00335
는 각각 제1파라미터
Figure pat00336
에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이고,
Figure pat00337
Figure pat00338
는 각각 제2파라미터
Figure pat00339
에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이다.
다음으로, 전자 장치(100)는 제13연산 값 S와 제14연산 값 S'를 이용한 비교 연산에 따른 판정에 기초하여 암호화 처리된 결과를 출력한다(S130-2). 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 15와 같이, 비교 판단 처리를 수행할 수 있다. 예로서,
Figure pat00340
인 것으로 판단되는 경우에 암호화 처리에 오류가 발생된 것으로 판정할 수 있다. 도 8의 단계 15에서 오류가 발생되지 않은 것으로 판정되면, 암호화 결과 산출부(120-6)는 단계 16과 같은 연산 처리를 실행하여 암호화된 결과 S를 연산하여 출력할 수 있다.
도 7은 본 발명의 기술적 사상에 따른 CRT-RSA 암호화 처리 방법의 주요 과정을 개념적으로 보여주는 도면이다.
도 7은 파이스텔 구조를 이용하여 CRT-RSA 암호화 처리하는 과정을 개념적으로 보여준다.
오퍼레이션 S701A 및 S701B에서는
Figure pat00341
Figure pat00342
를 각각
Figure pat00343
Figure pat00344
연산에 기초하여 산출한다.
오퍼레이션 S702A에서는 제1파라미터 정보
Figure pat00345
Figure pat00346
Figure pat00347
값을 적용하여 산출한다. 이에 따라서,
Figure pat00348
또는
Figure pat00349
중 어느 하나에 오류가 주입되더라도 오류는 제1파라미터 정보
Figure pat00350
로 확산된다.
오퍼레이션 S702B에서는 제2파라미터 정보
Figure pat00351
Figure pat00352
Figure pat00353
값을 적용하여 산출한다. 이에 따라서,
Figure pat00354
또는
Figure pat00355
중 어느 하나에 오류가 주입되더라도 오류는 제2파라미터 정보
Figure pat00356
로 확산된다.
오퍼레이션 S703A에서는 제1파라미터 정보
Figure pat00357
로부터
Figure pat00358
연산에 기초하여 제1A블록 정보
Figure pat00359
를 산출한다.
오퍼레이션 S703B에서는 제2파라미터 정보
Figure pat00360
로부터
Figure pat00361
연산에 기초하여 제2A블록 정보
Figure pat00362
를 산출한다.
오퍼레이션 S704A에서는 제1A블록 정보
Figure pat00363
및 초기 값 정보에 기초한 모듈러 지수승 연산에 의하여 한쌍의 중간 값인 (
Figure pat00364
,
Figure pat00365
,
Figure pat00366
)을 산출한다.
오퍼레이션 S704B에서는 제2A블록 정보
Figure pat00367
및 초기 값 정보에 기초한 모듈러 지수승 연산에 의하여 다른 한쌍의 중간 값인 (
Figure pat00368
,
Figure pat00369
,
Figure pat00370
)을 산출한다.
오퍼레이션 S705A에서는 제1A블록 정보
Figure pat00371
및 초기 값 정보에 기초하여 중간 값
Figure pat00372
를 산출한다.
오퍼레이션 S705B에서는 제2A블록 정보
Figure pat00373
및 초기 값 정보에 기초하여 중간 값
Figure pat00374
를 산출한다.
오퍼레이션 S706A에서는 제1A블록 정보
Figure pat00375
, 중간 값
Figure pat00376
및 제2파라미터 정보
Figure pat00377
에 기초하여 제1B블록 정보
Figure pat00378
를 산출한다. 이에 따라서, 제1파라미터 정보
Figure pat00379
또는 제2파라미터 정보
Figure pat00380
중의 어느 하나에 오류가 주입되더라도 오류는 제1B블록 정보
Figure pat00381
로 확산된다. 또한, 중간 값
Figure pat00382
를 연산하는데 이용되는 초기 값 또는 중간 값들에 오류가 주입되더라도 오류는 제1B블록 정보
Figure pat00383
로 확산된다.
오퍼레이션 S706B에서는 제2A블록 정보
Figure pat00384
, 중간 값
Figure pat00385
및 제1파라미터 정보
Figure pat00386
에 기초하여 제2B블록 정보
Figure pat00387
를 산출한다. 이에 따라서, 제1파라미터 정보
Figure pat00388
또는 제2파라미터 정보
Figure pat00389
중의 어느 하나에 오류가 주입되더라도 오류는 제2B블록 정보
Figure pat00390
로 확산된다. 또한, 중간 값
Figure pat00391
를 연산하는데 적용되는 초기 값 또는 중간 값들에 오류가 주입되더라도 오류는 제2B블록 정보
Figure pat00392
로 확산된다.
오퍼레이션 S707A에서는 제1A블록 정보
Figure pat00393
에 대한 모듈러 지수승 연산 정보, 제1B블록 정보
Figure pat00394
및 초기 값 정보에 기초한 모듈러 지수승 연산에 의하여 또 다른 한 쌍의 중간 값인 (
Figure pat00395
,
Figure pat00396
,
Figure pat00397
)을 산출한다.
오퍼레이션 S707B에서는 제2A블록 정보
Figure pat00398
에 대한 모듈러 지수승 연산 정보, 제2B블록 정보
Figure pat00399
및 초기 값 정보에 기초한 모듈러 지수승 연산에 의하여 또 다른 한 쌍의 중간 값인 (
Figure pat00400
,
Figure pat00401
,
Figure pat00402
)을 산출한다.
오퍼레이션 S708A에서는 초기 값 및 이전 중간 값들을 이용하여 중간값
Figure pat00403
를 산출한다. 예로서,
Figure pat00404
와 같은 연산에 의하여 중간값
Figure pat00405
를 산출할 수 있다.
오퍼레이션 S708B에서는 초기 값 및 이전 중간값들을 이용하여 중간값
Figure pat00406
를 산출한다. 예로서,
Figure pat00407
와 같은 연산에 의하여 중간값
Figure pat00408
를 연산할 수 있다.
오퍼레이션 S709A에서는 오퍼레이션 S707A에서 산출된
Figure pat00409
및 오퍼레이션 S707B에 산출된
Figure pat00410
를 이용한 CRT 연산에 의하여 중간 값 S를 산출한다. 이에 따라서,
Figure pat00411
또는
Figure pat00412
어느 하나를 산출하는 과정에서 오류가 삽입되더라도 오류는 중간 값 S로 확산된다.
오퍼레이션 S709B에서는 오퍼레이션 S707A에서 산출된
Figure pat00413
및 오퍼레이션 S707B에 산출된
Figure pat00414
를 이용한 CRT 연산에 의하여 중간 값 S'를 산출한다. 이에 따라서,
Figure pat00415
또는
Figure pat00416
어느 하나를 산출하는 과정에서 오류가 삽입되더라도 오류는 중간 값 S'로 확산된다.
오퍼레이션 S710에서는 초기 값 p 및 q에서 파생되는 중간값들을 이용하여 중간 값
Figure pat00417
를 산출한다.
오퍼레이션 S711에서는 중간값들을 이용하여 암호화 과정에서 오류가 발생되었는지를 판정한다. 예로서, "
Figure pat00418
"와 같은 if 문을 사용하여 오류를 판정할 수 있다.
오퍼레이션 S712에서는 오퍼레이션 S711의 판정 결과 오류가 발생되지 않은 것으로 판정된 경우에, 중간 값 S 및 S'와 이전에 생성된 다른 중간값들을 이용하여 최종적인 출력 값인 S를 산출한다.
이와 같은, 파이스텔 구조의 CRT-RSA 암호화 처리하는 과정에 의하여 초기 값 또는 중간값에 오류가 삽입되는 경우에, 이후에 진행되는 중간 값 연산 과정 및 출력 값 연산 과정으로 오류가 랜덤하게 확산된다. 이에 따라서, 오퍼레이션 S711을 삭제하더라도 비밀 값인 p 및 q를 알아낼 수 없게 된다.
도 8은 본 발명의 기술적 사상에 따른 CRT-RSA 알고리즘의 일 예를 보여주는 도면이다.
도 8에 도시된 CRT-RSA 알고리즘에서의 입력 정보들은
Figure pat00419
Figure pat00420
가 되고, 출력 정보는
Figure pat00421
가 된다. 여기에서, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 그리고,
Figure pat00422
Figure pat00423
는 각각
Figure pat00424
Figure pat00425
연산에 기초하여 생성되는 정보이고, d는 비밀키이다.
도 8 및 도 10에 기재된 '&'는 비트단위의 AND 연산 부호를 의미하고, '
Figure pat00426
'는 비트단위의 XOR 연산 부호를 의미하고, '∥'는 연결 심볼(concatenation symbol)이다.
단계5, 7, 10, 11에서 사용되는 PMExp 알고리즘은 전력 분석 공격(Power attack) 및 오류 주입 공격(Fault Attack)을 개선하기 위하여 도 9에 도시된 바와 같은 알고리즘이 적용될 수 있다.
만일, 도 8에 도시된 CRT-RSA 알고리즘에서 오류가 주입되지 않았다면 단계1~ 단계17은 다음과 같이 연산된다.
우선, 단계2에서는 수학식 1~3과 같은 연산에 의하여 중간 연산 정보에 해당되는 중간값
Figure pat00427
,
Figure pat00428
,
Figure pat00429
를 각각 산출한다.
Figure pat00430
Figure pat00431
Figure pat00432
다음으로, 단계3에서는 수학식 4 및 5에 의하여 제1파라미터
Figure pat00433
및 제2파라미터
Figure pat00434
를 산출한다.
Figure pat00435
Figure pat00436
다음으로, 단계4에서는 수학식 6 및 7에 의하여 제1A블록 정보
Figure pat00437
및 제2A블록 정보
Figure pat00438
를 산출한다.
Figure pat00439
Figure pat00440
다음으로, 단계5에서는 수학식 8, 9 및 10에 의하여 한쌍의 중간값인 (
Figure pat00441
,
Figure pat00442
,
Figure pat00443
)을 산출한다.
Figure pat00444
Figure pat00445
Figure pat00446
다음으로, 단계6에서는 수학식 11에 의하여 중간 값
Figure pat00447
를 산출한다.
Figure pat00448
다음으로, 단계7에서는 수학식 12, 13 및 14에 의하여 다른 한쌍의 중간값인 (
Figure pat00449
,
Figure pat00450
,
Figure pat00451
)을 산출한다.
Figure pat00452
Figure pat00453
Figure pat00454
다음으로, 단계8에서는 수학식 15에 의하여 중간 값
Figure pat00455
를 산출한다.
Figure pat00456
다음으로, 단계9에서는 수학식 16 및 17에 의하여 제1B블록 정보
Figure pat00457
및 제2B블록 정보
Figure pat00458
를 산출한다.
Figure pat00459
Figure pat00460
다음으로, 단계10에서는 수학식 18, 19 및 20에 의하여 또 다른 한 쌍의 중간값인 (
Figure pat00461
,
Figure pat00462
,
Figure pat00463
)을 산출한다.
Figure pat00464
Figure pat00465
Figure pat00466
다음으로, 단계11에서는 수학식 21, 22 및 23에 의하여 또 다른 한 쌍의 중간값인 (
Figure pat00467
,
Figure pat00468
,
Figure pat00469
)을 산출한다.
Figure pat00470
Figure pat00471
Figure pat00472
다음으로, 단계12에서는 수학식 24 및 25에 의하여 중간값
Figure pat00473
Figure pat00474
를 산출한다.
Figure pat00475
Figure pat00476
다음으로, 단계13에서는 수학식 26 및 27에 의하여 CRT 연산을 수행하여 중간 값 S 및 S'를 산출한다.
Figure pat00477
Figure pat00478
다음으로, 단계14에서는 수학식 28에 의하여 중간 값
Figure pat00479
를 산출한다.
Figure pat00480
다음으로, 단계15의 판단 결과
Figure pat00481
=
Figure pat00482
인 경우에, 단계16에서는 수학식 29에 의하여 출력 S를 산출한다.
Figure pat00483
이와 같이 본 발명에서는 오류 확산을 통한 모듈러스 랜덤 블라인딩 방법을 사용하므로 전력 분석 및 전자파 분석에도 안전하게 적용할 수 있다. 또한, 단계15의 if문이 스킵되는 오류 주입 공격이 수행되더라도 각 단계 연산 중에 오류가 들어가게 되면 오류 확산을 통해서 오류가 주입된 결과 값을 출력한다. 따라서, 공격자는 이러한 오류가 주입된 결과 값을 사용해서는 비밀 값을 찾을 수 없다.
즉, 오류가 주입되는 경우에 중간 연산 과정들에 오류가 확산되게 하여 오류가 주입된 출력 값을 이용하여 비밀 값을 알아낼 수 없게 된다.
도 10은 본 발명의 기술적 사상에 따른 CRT-RSA 알고리즘의 다른 예를 보여주는 도면이다.
도 10에 도시된 CRT-RSA 알고리즘의 예는 도 8에 도시된 CRT-RSA 알고리즘의 예에 비하여, 중간값들
Figure pat00484
,
Figure pat00485
,
Figure pat00486
,
Figure pat00487
,
Figure pat00488
,
Figure pat00489
을 산출하는 연산 식들을 변형하였다.
도 10에 도시된 CRT-RSA 알고리즘에서의 입력 정보들은
Figure pat00490
Figure pat00491
가 되고, 출력 정보는
Figure pat00492
가 된다. 여기에서, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 그리고,
Figure pat00493
Figure pat00494
는 각각
Figure pat00495
Figure pat00496
연산에 기초하여 생성되는 정보이고, d는 비밀키이다.
도 10의 단계5, 7, 10, 11에서 사용되는 PMExp 알고리즘은 전력 분석 공격(Power attack) 및 오류 주입 공격(Fault Attack)을 개선하기 위하여 도 9에 도시된 바와 같은 알고리즘이 적용될 수 있다.
만일, 도 10에 도시된 CRT-RSA 암호화 처리 방법의 알고리즘에서 오류가 주입되지 않았다면 단계1~ 단계17은 다음과 같이 연산된다.
우선, 단계2에서는 수학식 30~32와 같은 연산에 의하여 중간값들
Figure pat00497
,
Figure pat00498
,
Figure pat00499
를 산출한다.
Figure pat00501
Figure pat00502
다음으로, 단계3에서는 수학식 33 및 34에 의하여 제1파라미터
Figure pat00503
및 제2파라미터
Figure pat00504
를 산출한다.
Figure pat00505
Figure pat00506
단계4에서는 위에서 언급된 수학식 6 및 7에 의하여 제1A블록 정보
Figure pat00507
및 제2A블록 정보
Figure pat00508
를 산출한다.
단계5에서는 위에서 언급된 수학식 8, 9 및 10에 의하여 한쌍의 중간값인 (
Figure pat00509
,
Figure pat00510
,
Figure pat00511
)을 산출한다.
단계6에서는 수학식 35에 의하여 중간 값
Figure pat00512
를 산출한다.
Figure pat00513
단계7에서는 위에서 언급된 수학식 12, 13 및 14에 의하여 다른 한쌍의 중간값인 (
Figure pat00514
,
Figure pat00515
,
Figure pat00516
)을 산출한다.
단계8에서는 수학식 36에 의하여 중간 값
Figure pat00517
를 산출한다.
Figure pat00518
단계9에서는 수학식 37 및 38에 의하여 제1B블록 정보
Figure pat00519
및 제2B블록 정보
Figure pat00520
를 산출한다.
Figure pat00521
Figure pat00522
단계10에서는 위에서 언급된 수학식 18, 19 및 20에 의하여 또 다른 한 쌍의 중간값인 (
Figure pat00523
,
Figure pat00524
,
Figure pat00525
)을 산출한다.
단계11에서는 위에서 언급된 수학식 21, 22 및 23에 의하여 또 다른 한 쌍의 중간값인 (
Figure pat00526
,
Figure pat00527
,
Figure pat00528
)을 산출한다.
단계12에서는 수학식 39 및 40에 의하여 중간값
Figure pat00529
Figure pat00530
를 산출한다.
Figure pat00531
Figure pat00532
단계13에서는 수학식 41 및 42에 의하여 CRT 연산을 수행하여 중간 값 S 및 S'를 산출한다.
Figure pat00533
Figure pat00534
단계14에서는 수학식 43에 의하여 중간 값
Figure pat00535
를 산출한다.
Figure pat00536
다음으로, 단계15의 판단 결과
Figure pat00537
=
Figure pat00538
인 경우에, 단계16에서는 수학식 44에 의하여 출력 S를 산출한다.
Figure pat00539
이와 같이, 단계15의 if문이 스킵되는 오류 주입 공격이 수행되더라도 각 단계 연산 중에 오류가 들어가게 되면 오류 확산을 통해서 오류가 주입된 결과 값을 출력한다. 따라서, 공격자는 이러한 오류가 주입된 결과 값을 사용해서는 비밀 값을 찾을 수 없다.
예로서, 공격자가 도 10에 도시된 알고리즘의 단계3에서
Figure pat00540
를 변형시키면, 오류가 확산된
Figure pat00541
Figure pat00542
는 수학식 45 및 46과 같이 연산된다.
Figure pat00543
Figure pat00544
따라서,
Figure pat00545
에서 발생된 오류가 제1파라미터
Figure pat00546
및 제2파라미터
Figure pat00547
로 확산된다는 사실을 알 수 있다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
다른 예로서, 공격자가 도 10에 도시된 알고리즘의 단계3에서
Figure pat00548
를 변형시키면, 오류가 확산된
Figure pat00549
Figure pat00550
는 수학식 47 및 48과 같이 연산된다.
Figure pat00551
Figure pat00552
따라서,
Figure pat00553
에서 발생된 오류가 제1파라미터
Figure pat00554
및 제2파라미터
Figure pat00555
로 확산된다는 사실을 알 수 있다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서
Figure pat00556
또는
Figure pat00557
를 변형시키면, 오류는 중간값들
Figure pat00558
,
Figure pat00559
,
Figure pat00560
Figure pat00561
로 함께 확산된다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서 p 또는 q를 변형시키면, 오류는 중간값들 p' 및 q'로 함께 확산된다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서 p' 또는 q'를 변형시키면, 오류는 중간값들
Figure pat00562
,
Figure pat00563
,
Figure pat00564
,
Figure pat00565
등으로 함께 확산된다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서
Figure pat00566
또는
Figure pat00567
를 변형시키면, 오류는 중간값들
Figure pat00568
Figure pat00569
로 함께 확산된다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
따라서, 오류 주입 공격에 의하여 비밀 값인 p 또는 q를 알아낼 수 없게 된다.
본 발명에서 제안하는 파이스텔 구조를 이용한 CRT-RSA 알고리즘은 오리지널 CRT-RSA 알고리즘에 비하여 약 0.002% 정도의 적은 연산량을 추가함으로써, 현재 알려진 모든 공격에도 안전하게 동작할 수 있다.
도 11은 본 발명의 실시 예들에 대한 CRT-RSA 알고리즘이 채용된 컴퓨터 시스템(1000)의 일 구현 예를 나타내는 블록도이다.
도 11을 참조하면, 컴퓨터 시스템(1000)은 비휘발성(NV) 메모리 장치(1100), 프로세서(1200), RAM(1300), 입출력 장치(I/O; 1400), 전원 장치(1500) 및 버스(1600)를 포함할 수 있다. 한편, 도 11에는 도시되지 않았지만, 컴퓨터 시스템(1000)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다. 컴퓨터 시스템(1000)은 퍼스널 컴퓨터로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(personal digital assistant) 및 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
예로서, 도 11에 도시된 프로세서(1200)에는 도 1 또는 2에 도시된 암호화 처리부(120)를 구현하는 하드웨어 및 소프트웨어가 내장될 수 있다.
예로서, 도 11에 도시된 NV 메모리(1110)에는 도 3 ~ 도 7에 도시된 CRT-RSA 암호화 처리 방법을 수행하기 위한 프로그램 코드들이 저장될 수 있다. 또한, 도 8 ~ 10에 도시된 CRT-RSA 알고리즘을 구현하기 위한 프로그램 코드들이 저장될 수 있다.
프로세서(1200)는 특정 계산들 또는 태스크(task)들을 수행할 수 있다. 예로서, 본 발명에서 제안하는 CRT-RSA 알고리즘에 따른 오퍼레이션을 수행할 수 있다. 실시 예에 따라, 프로세서(1200)는 마이크로프로세서(micro-processor), 중앙 처리 장치(Central Processing Unit; CPU)일수 있다. 프로세서(1200)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus) 등과 같은 버스(1600)를 통하여 RAM(1300), 입출력 장치(1400) 및 NV 메모리 장치(1100)와 통신을 수행할 수 있다. 실시 예에 따라, 프로세서(1200)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다.
RAM(1300)는 컴퓨터 시스템(1000)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들어, RAM(1300)는 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)으로 구현될 수 있다.
입출력 장치(1400)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터, 디스플레이 등과 같은 출력 수단을 포함할 수 있다. 전원 장치(1500)는 컴퓨터 시스템(1000)의 동작에 필요한 동작 전압을 공급할 수 있다.
도 12는 본 발명의 실시 예들에 따른 메모리 시스템을 포함하는 메모리 카드 시스템(2000)을 나타내는 블록도이다.
도 12를 참조하면, 메모리 카드 시스템(2000)은 호스트(2100) 및 메모리 카드(2200)를 포함할 수 있다. 호스트(2100)는 호스트 컨트롤러(2110) 및 호스트 접속부(2120)를 포함할 수 있다. 메모리 카드(2200)는 카드 접속부(2210), 카드 컨트롤러(2220) 및 메모리 장치(2230)를 포함할 수 있다.
도 12에 도시된 메모리 장치(2230)에는 도 3 ~ 도 7에 도시된 CRT-RSA 암호화 처리 방법을 수행하기 위한 프로그램 코드들이 저장될 수 있다. 또한, 도 8 ~ 10에 도시된 CRT-RSA 알고리즘을 구현하기 위한 프로그램 코드들이 저장될 수 있다.
카드 컨트롤러(2220)에는 도 1 또는 2에 도시된 암호화 처리부(120)를 구현하는 하드웨어 및 소프트웨어가 내장될 수 있다. 이에 따라서, 카드 컨트롤러(2220)는 본 발명에서 제안하는 CRT-RSA 알고리즘에 따른 오퍼레이션을 수행할 수 있다.
호스트(2100)는 메모리 카드(2200)에 데이터를 기입하거나, 메모리 카드(2200)에 저장된 데이터를 독출할 수 있다. 예로서, 호스트(2100)는 본 발명에서 제안하는 CRT-RSA 알고리즘에 따른 오퍼레이션을 수행할 수 있다.
호스트 컨트롤러(2110)는 커맨드(CMD), 호스트(2100) 내의 클럭 발생기(미도시)에서 발생한 클럭 신호(CLK), 및 데이터(DATA)를 호스트 접속부(2120)를 통해 메모리 카드(2200)로 전송할 수 있다.
예로서, 호스트 컨트롤러(2110)에는 도 1 또는 2에 도시된 암호화 처리부(120)를 구현하는 하드웨어 및 소프트웨어가 내장될 수 있다.
메모리 카드(2200)는 컴팩트 플래시 카드(CFC: Compact Flash Card), 마이크로 드라이브(Microdrive), 스마트 미디어 카드(SMC: Smart Media Card) 멀티미디어 카드(MMC: Multimedia Card), 보안 디지털 카드(SDC: Security Digital Card), 메모리 스틱(Memory Stick), 및 USB 플래시 메모리 드라이버 등으로 구현될 수 있다.
도 13은 본 발명의 실시 예들에 대한 CRT-RSA 알고리즘이 채용된 장치에서의 암호화 처리 과정에서의 소비 전력 분포를 보여주는 도면이다.
도 13은 본 발명의 실시 예에 따른 도 8 또는 도 10에 도시된 CRT-RSA 알고리즘을 적용하여 전자 기기에서 암호화 처리를 수행하는 경우의 소비 전력 분포를 보여준다.
도 13을 참조하면, T1, T2, T3, T4는 각각 블록 단위의 모듈러 지수승 연산을 수행하는 구간을 나타내고, T5는 CRT 연산을 수행하는 구간을 나타낸다. 구체적으로, T1 구간에서는 제1파라미터 정보
Figure pat00570
로부터 분할된 제1A블록 정보
Figure pat00571
에 대한 제1모듈러 지수승 연산이 수행되고, T2 구간에서는 제2파라미터 정보
Figure pat00572
로부터 분할된 제2A블록 정보
Figure pat00573
에 대한 제2모듈러 지수승 연산이 수행되고, T3 구간에서는 제1파라미터 정보
Figure pat00574
로부터 분할된 제1B블록 정보
Figure pat00575
에 대한 제3모듈러 지수승 연산이 수행되고, T4 구간에서는 제2파라미터 정보
Figure pat00576
로부터 분할된 제2B블록 정보
Figure pat00577
에 대한 제4모듈러 지수승 연산이 수행된다.
한편, 상기에서 설명된 본 발명에 따른 시스템은 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 예를 들면, 본 발명에 따른 시스템은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic MetricQuad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
또한, 본 발명은 방법, 장치, 시스템 등으로서 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필연적으로 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되어 질 수 있으며 또는 전송 매체 또는 통신망을 통하여 컴퓨터 데이터 신호에 의하여 전송될 수 있다. 프로세서 판독 가능 매체는 정보를 저장 또는 전송할 수 있는 어떠한 매체도 포함한다. 프로세서 판독 가능 매체의 예로는 전자 회로, 반도체 메모리 소자, ROM, 플레쉬 메모리, 이레이져블 ROM(EROM : Erasable ROM), 플로피 디스크, 광 디스크, 하드디스크 등이 있다. 컴퓨터 데이터 신호는 유선 통신망 또는 무선 통신망과 같은 전송 매체 위로 전파될 수 있는 어떠한 신호도 포함된다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
110 : CPU 120 : 암호화 처리부
130 : 복호화 처리부 140 : 저장부
150 : I/O 인터페이스 160, 1600 : 버스
120-1 : 레지스터 블록 120-2 : 중간 값 연산부
120-3 : 정보 분할 처리부 120-4 : 모듈러 곱셈부
120-5 : CRT 연산부 120-6 : 암호화 결과 산출부
1100 : NV 메모리 장치 1200 : 프로세서
1300 : RAM 1400 : 입출력 장치
1500 : 전원 장치 2100 : 호스트
2200 : 메모리 카드 2110 : 호스트 컨트롤러
2120 : 호스트 접속부 2210 : 카드 접속부
2220 : 카드 컨트롤러 2230 : 메모리 장치

Claims (20)

  1. 공개키로부터 산출된 서로 다른 2개의 소수 각각에 대한 오일러 파이 함수 값으로 비밀키를 모듈러 연산한 결과에 기초하여 모듈러 지수승 연산 처리에 이용될 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계;
    상기 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 이전 블록에서 연산된 정보에 기초하여 다음 블록에 대한 모듈러 지수승 연산을 수행하는 단계; 및
    상기 모듈러 지수승 연산 결과를 이용한 CRT 연산에 기초하여 암호화 처리 결과를 산출하는 단계를 포함함을 특징으로 하는 CRT-RSA 암호화 방법.
  2. 제1항에 있어서, 상기 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계는
    Figure pat00578
    Figure pat00579
    연산에 기초하여 생성되는 중간 연산 정보
    Figure pat00580
    Figure pat00581
    를 각각 제1파라미터 정보 및 제2파라미터 정보로서 결정하거나, 상기
    Figure pat00582
    Figure pat00583
    로부터 각각 파생되는 중간 연산 정보들을 제1파라미터 정보 및 제2파라미터 정보로서 결정하고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  3. 제1항에 있어서, 상기 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계는
    Figure pat00584
    Figure pat00585
    연산에 기초하여 중간 연산 정보
    Figure pat00586
    Figure pat00587
    를 산출하는 단계; 및
    상기 중간 연산 정보
    Figure pat00588
    Figure pat00589
    를 함께 이용하여 상기 중간 연산 정보
    Figure pat00590
    Figure pat00591
    로부터 각각 파생되는 제1파라미터 정보
    Figure pat00592
    및 제2파라미터 정보
    Figure pat00593
    를 산출하는 단계를 포함하고,
    상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  4. 제1항에 있어서, 상기 모듈러 지수승 연산을 수행하는 단계는 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 2개의 블록들로 분할하고, 분할된 블록 단위로 중간 연산 정보들 및 이전 블록에서 연산된 정보들 중 적어도 하나를 이용하여 다음 블록에 대한 모듈러 지수승 연산을 수행하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  5. 제1항에 있어서, 상기 모듈러 지수승 연산을 수행하는 단계는
    상기 제1파라미터 정보의 일부에 해당되는 제1A블록 정보를 추출하는 단계;
    상기 제2파라미터 정보의 일부에 해당되는 제2A블록 정보를 추출하는 단계;
    상기 제1A블록 정보에 기초하여 제1모듈러 지수승 연산을 수행하는 단계;
    상기 제2A블록 정보에 기초하여 제2모듈러 지수승 연산을 수행하는 단계;
    상기 제1파라미터 정보로부터 상기 제1A블록 정보를 제외한 나머지 제1B블록 정보를 추출하는 단계;
    상기 제2파라미터 정보에 기초하여 상기 제2A블록 정보를 제외한 나머지 제2B블록 정보를 추출하는 단계;
    상기 제1A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 상기 제1B블록 정보에 기초한 제3모듈러 지수승 연산을 수행하는 단계; 및
    상기 제2A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 상기 제2B블록 정보에 대한 제4모듈러 지수승 연산을 수행하는 단계를 포함함을 특징으로 하는 CRT-RSA 암호화 방법.
  6. 제5항에 있어서, 상기 제1A블록 정보를 각각 추출하는 단계는 n비트 길이의 상기 제1파라미터 정보
    Figure pat00594
    로부터
    Figure pat00595
    연산에 기초하여 상기 제1A블록 정보
    Figure pat00596
    를 산출하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  7. 제5항에 있어서, 상기 제2A블록 정보를 추출하는 단계는 n비트 길이의 상기 제2파라미터 정보
    Figure pat00597
    로부터
    Figure pat00598
    연산에 기초하여 상기 제2A블록 정보
    Figure pat00599
    를 산출하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  8. 제5항에 있어서, 상기 제1모듈러 지수승 연산을 수행하는 단계는
    Figure pat00600
    Figure pat00601
    연산 및
    Figure pat00602
    Figure pat00603
    연산에 기초하여 상기 제1파라미터 정보
    Figure pat00604
    로부터 분할된 상기 제1A블록 정보
    Figure pat00605
    에 대한 모듈러 지수승 연산 결과인 제1연산 값
    Figure pat00606
    및 제2연산 값
    Figure pat00607
    을 산출하고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수임을 특징으로 하는 CRT-RSA 암호화 방법.
  9. 제5항에 있어서, 상기 제2모듈러 지수승 연산을 수행하는 단계는
    Figure pat00608
    Figure pat00609
    Figure pat00610
    연산 및
    Figure pat00611
    Figure pat00612
    Figure pat00613
    연산에 기초하여 상기 제2파라미터 정보
    Figure pat00614
    로부터 분할된 상기 제2A블록 정보
    Figure pat00615
    에 대한 모듈러 지수승 연산 결과인 제4연산 값
    Figure pat00616
    및 제5연산 값
    Figure pat00617
    을 산출하고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, q는 소수임을 특징으로 하는 CRT-RSA 암호화 방법.
  10. 제5항에 있어서, 상기 제1B블록 정보를 추출하는 단계는 n비트 길이의 상기 제1파라미터 정보
    Figure pat00618
    로부터
    Figure pat00619
    =
    Figure pat00620
    연산에 기초하는 상기 제1B블록 정보
    Figure pat00621
    를 산출하며,
    상기
    Figure pat00622
    Figure pat00623
    Figure pat00624
    에 기초하여 결정되고, 상기
    Figure pat00625
    Figure pat00626
    는 각각
    Figure pat00627
    Figure pat00628
    연산에 기초하여 결정되고, 상기
    Figure pat00629
    는 상기 제1A블록 정보 및 중간 연산 정보에 기초하여 결정되며, 상기
    Figure pat00630
    는 제2파라미터 정보이고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  11. 제5항에 있어서, 상기 제2B블록 정보를 추출하는 단계는 n비트 길이의 상기 제2파라미터 정보
    Figure pat00631
    로부터
    Figure pat00632
    =
    Figure pat00633
    연산에 기초하여 상기 제2B블록 정보
    Figure pat00634
    를 산출하며,
    상기
    Figure pat00635
    Figure pat00636
    Figure pat00637
    에 기초하여 결정되고, 상기
    Figure pat00638
    Figure pat00639
    는 각각
    Figure pat00640
    Figure pat00641
    연산에 기초하여 결정되고, 상기
    Figure pat00642
    는 상기 제1A블록 정보 및 중간 연산 정보에 기초하여 결정되며, 상기
    Figure pat00643
    는 제1파라미터 정보이고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  12. 제5항에 있어서, 상기 제3모듈러 지수승 연산을 수행하는 단계는 상기 제1A블록 정보
    Figure pat00644
    에 대한 모듈러 지수승 연산 정보를 이용하여 상기 제1B블록 정보
    Figure pat00645
    에 대한 모듈러 지수승 연산을 수행하여
    Figure pat00646
    연산 및
    Figure pat00647
    연산 결과에 상응하는 제7연산 값
    Figure pat00648
    및 제8연산 값
    Figure pat00649
    을 산출하고, 상기
    Figure pat00650
    는 제1파라미터 정보이고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수임을 특징으로 하는 CRT-RSA 암호화 방법.
  13. 제5항에 있어서, 상기 제4모듈러 지수승 연산을 수행하는 단계는 상기 제2A블록 정보
    Figure pat00651
    에 대한 모듈러 지수승 연산 정보를 이용하여 상기 제2B블록 정보
    Figure pat00652
    에 대한 모듈러 지수승 연산을 수행하여
    Figure pat00653
    연산 및
    Figure pat00654
    Figure pat00655
    연산 결과에 상응하는 제10연산 값
    Figure pat00656
    및 제11연산 값
    Figure pat00657
    을 산출하고, 상기
    Figure pat00658
    는 제2파라미터 정보이고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, q는 소수임을 특징으로 하는 CRT-RSA 암호화 방법.
  14. 제1항에 있어서, 상기 암호화 처리 결과를 산출하는 단계는
    상기 모듈러 지수승 연산 결과를 이용한
    Figure pat00659
    Figure pat00660
    연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출하는 단계; 및
    상기 제13연산 값 S와 제14연산 값 S'를 이용한 비교 연산에 따른 판정에 기초하여 암호화 처리된 결과를 출력하는 단계를 포함하며,
    상기
    Figure pat00661
    Figure pat00662
    는 각각 제1파라미터
    Figure pat00663
    에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이고, 상기
    Figure pat00664
    Figure pat00665
    는 각각 제2파라미터
    Figure pat00666
    에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이며, 상기 m은 메시지이고, d는 비밀키이고, N은 공개키임을 특징으로 하는 CRT-RSA 암호화 방법.
  15. 암호화 처리에 필요한 입력 정보들 및 암호화 연산 처리 과정에서 생성되는 중간 연산 정보들을 저장하는 레지스터 블록;
    상기 레지스터 블록으로부터 읽어낸 입력 정보들을 적용하여 모듈러 지수승 연산 처리에서의 메시지에 대한 지수승 값을 결정하는 제1파라미터 정보 및 제2파라미터 정보를 포함하는 중간 연산 정보들을 산출하는 중간 값 연산부;
    상기 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할하는 정보 분할 처리부;
    상기 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 상기 중간 연산 정보들을 적용하여 복수의 라운드에 거쳐 모듈러 지수승 연산 처리를 수행하는 모듈러 곱셈부;
    상기 모듈러 지수승 연산 처리 결과를 이용하여 CRT 연산을 수행하는 CRT 연산부; 및
    상기 CRT 연산 결과에 기초하여 암호화 처리 결과를 산출하는 암호화 결과 산출부를 포함함을 특징으로 하는 CRT-RSA 암호화 장치.
  16. 제15항에 있어서, 상기 제1파라미터 정보 및 제2파라미터 정보는 각각
    Figure pat00667
    Figure pat00668
    연산에 기초하여 생성되는
    Figure pat00669
    Figure pat00670
    로 결정하거나, 상기
    Figure pat00671
    Figure pat00672
    로부터 각각 파생되는 중간 연산 정보들로 결정하고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하는 것을 특징으로 하는 CRT-RSA 암호화 장치.
  17. 제15항에 있어서, 상기 정보 분할 처리부는 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 동일한 사이즈를 갖는 2개 블록으로 분할하는 것을 특징으로 하는 CRT-RSA 암호화 장치.
  18. 제15항에 있어서, 상기 모듈러 곱셈부는 상기 제1파라미터 정보에서 분할된 제1A 블록 정보에 기초한 제1모듈러 지수승 연산 처리, 상기 제2파라미터 정보에서 분할된 제2A 블록 정보에 기초한 제2모듈러 지수승 연산 처리, 상기 제1파라미터 정보에서 상기 제1A 블록 정보를 제외한 제1B 블록 정보에 기초한 제3모듈러 지수승 연산 처리 및 상기 제2파라미터 정보에서 상기 제2A 블록 정보를 제외한 제2B 블록 정보에 기초한 제4모듈러 지수승 연산 처리를 순차적으로 수행하며, 상기 제3모듈러 지수승 연산 처리는 상기 제1모듈러 지수승 연산 처리 결과를 이용하여 수행하고, 제4모듈러 지수승 연산 처리는 상기 제2모듈러 지수승 연산 처리 결과를 이용하여 수행함을 특징으로 하는 CRT-RSA 암호화 장치.
  19. 제15항에 있어서, 상기 중간 값 연산부는 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할 처리하는데 적용되는 중간 연산 정보들 및 상기 블록 단위의 모듈러 지수승 연산 처리에 적용되는 중간 연산 정보들 중의 적어도 하나를 산출하는 것을 특징으로 하는 CRT-RSA 암호화 장치.
  20. 공개키로부터 산출된 서로 다른 2개의 소수 각각에 대한 오일러 파이 함수 값으로 비밀키를 모듈러 연산한 결과에 기초하여 모듈러 지수승 연산 처리에 이용될 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계;
    상기 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 이전 블록에서 연산된 정보에 기초하여 다음 블록에 대한 모듈러 지수승 연산을 수행하는 단계; 및
    상기 모듈러 지수승 연산 결과를 이용한 CRT 연산에 기초하여 암호화 처리 결과를 산출하는 단계를 포함하는 CRT-RSA 암호화 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드가 기록된 컴퓨터 판독가능 저장매체.
KR1020140012212A 2014-02-03 2014-02-03 Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체 KR102180029B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140012212A KR102180029B1 (ko) 2014-02-03 2014-02-03 Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체
US14/571,442 US9571281B2 (en) 2014-02-03 2014-12-16 CRT-RSA encryption method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140012212A KR102180029B1 (ko) 2014-02-03 2014-02-03 Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체

Publications (2)

Publication Number Publication Date
KR20150091691A true KR20150091691A (ko) 2015-08-12
KR102180029B1 KR102180029B1 (ko) 2020-11-17

Family

ID=53755731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140012212A KR102180029B1 (ko) 2014-02-03 2014-02-03 Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체

Country Status (2)

Country Link
US (1) US9571281B2 (ko)
KR (1) KR102180029B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102331835B1 (ko) * 2020-10-28 2021-12-01 국민대학교산학협력단 오류 주입 공격 시스템

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101989956B1 (ko) * 2015-10-29 2019-06-17 삼성에스디에스 주식회사 암호화 장치 및 방법
CN109716345B (zh) * 2016-04-29 2023-09-15 普威达有限公司 计算机实现的隐私工程系统和方法
WO2022061184A2 (en) * 2020-09-17 2022-03-24 X-Logos, LLC Methods and systems for encrypting rational numbers and adding randomness to rsa cryptosystems using p-adic numbers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020051597A (ko) * 2000-12-23 2002-06-29 오길록 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법
KR20030070733A (ko) * 2002-02-26 2003-09-02 주홍정보통신주식회사 Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치

Family Cites Families (14)

* 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
US6144740A (en) 1998-05-20 2000-11-07 Network Security Technology Co. Method for designing public key cryptosystems against fault-based attacks with an implementation
EP1454260B1 (de) 2001-10-17 2005-06-01 Infineon Technologies AG Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt)
KR100431286B1 (ko) 2002-01-14 2004-05-12 한국정보보호진흥원 중국인 나머지 정리(crt) 기반의 오류 공격에 대응하는 방법 및 그 장치
KR100652377B1 (ko) 2004-08-06 2007-02-28 삼성전자주식회사 모듈라 지수승 알고리즘, 기록매체 및 시스템
FR2884088B1 (fr) 2005-03-31 2007-06-22 Gemplus Sa Procede et dispositif cryptographique permettant de proteger les logiques de cles publiques contre les attaques par faute
WO2008114310A1 (ja) 2007-03-16 2008-09-25 Fujitsu Limited Fault攻撃対策機能を備えた組み込み装置
KR100953715B1 (ko) 2008-01-22 2010-04-19 고려대학교 산학협력단 Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
KR100953716B1 (ko) 2008-02-28 2010-04-19 고려대학교 산학협력단 Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
KR100954844B1 (ko) 2008-10-07 2010-04-28 고려대학교 산학협력단 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체
EP2222013A1 (en) 2009-02-19 2010-08-25 Thomson Licensing Method and device for countering fault attacks
KR101112570B1 (ko) 2010-04-12 2012-03-13 고려대학교 산학협력단 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
KR101341810B1 (ko) 2011-11-17 2013-12-17 고려대학교 산학협력단 Crt-rsa를 이용하여 전력 분석 공격과 오류 주입 공격으로부터 정보를 보호하는 방법
US8861718B2 (en) * 2012-02-10 2014-10-14 Electronics And Telecommunications Research Institute Method of preventing fault-injection attacks on Chinese Remainder Theorem-Rivest Shamir Adleman cryptographic operations and recording medium for storing program implementing the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020051597A (ko) * 2000-12-23 2002-06-29 오길록 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법
KR20030070733A (ko) * 2002-02-26 2003-09-02 주홍정보통신주식회사 Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102331835B1 (ko) * 2020-10-28 2021-12-01 국민대학교산학협력단 오류 주입 공격 시스템

Also Published As

Publication number Publication date
KR102180029B1 (ko) 2020-11-17
US20150222434A1 (en) 2015-08-06
US9571281B2 (en) 2017-02-14

Similar Documents

Publication Publication Date Title
Thirumalai et al. An efficient public key secure scheme for cloud and IoT security
Yarom et al. Recovering OpenSSL ECDSA nonces using the FLUSH+ RELOAD cache side-channel attack
US8781111B2 (en) System and methods for side-channel attack prevention
CN107040362B (zh) 模乘设备和方法
CA2864227C (en) Lightweight stream cipher cryptosystems
JPWO2016113886A1 (ja) 乱数拡大装置、乱数拡大方法及び乱数拡大プログラム
US9813232B2 (en) Device and method for resisting non-invasive attacks
CN108418688B (zh) 用于椭圆曲线加密硬件加速的计算设备、方法和存储介质
US11328097B2 (en) Encryption circuit for performing virtual encryption operations
TW200939115A (en) Representation change of a point on an elliptic curve
KR20180110550A (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
KR102180029B1 (ko) Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체
Morales-Sandoval et al. A compact fpga-based accelerator for curve-based cryptography in wireless sensor networks
Harb et al. FPGA implementation of the ECC over GF (2m) for small embedded applications
EP3930252A1 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
Sghaier et al. Fast hardware implementation of ECDSA signature scheme
JP2009505148A (ja) 暗号化演算における反転操作を行うための回路配置及び方法
US20230185905A1 (en) Protection of authentication tag computation against power and electromagnetic side-channel attacks
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
Elango et al. High-Performance Multi-RNS-Assisted Concurrent RSA Cryptosystem Architectures
US11792004B2 (en) Polynomial multiplication for side-channel protection in cryptography
KR102627585B1 (ko) 부 채널 분석 공격을 방지하기 위한 암호화/복호화 연산을 수행하는 전자 회로 및 그것을 포함하는 전자 장치
Morales-Sandoval et al. Research Article A Compact FPGA-Based Accelerator for Curve-Based Cryptography in Wireless Sensor Networks
Chen et al. DNA-Cryptography-Based Obfuscated Systolic Finite Field Multiplier for Secure Cryptosystem in Smart Grid
KR101636809B1 (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