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

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

Info

Publication number
KR102180029B1
KR102180029B1 KR1020140012212A KR20140012212A KR102180029B1 KR 102180029 B1 KR102180029 B1 KR 102180029B1 KR 1020140012212 A KR1020140012212 A KR 1020140012212A KR 20140012212 A KR20140012212 A KR 20140012212A KR 102180029 B1 KR102180029 B1 KR 102180029B1
Authority
KR
South Korea
Prior art keywords
information
parameter information
block
modular
crt
Prior art date
Application number
KR1020140012212A
Other languages
English (en)
Other versions
KR20150091691A (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

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 암호화 방법은 공개키로부터 산출된 서로 다른 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 112014010513717-pat00001
Figure 112014010513717-pat00002
연산에 기초하여 생성되는 중간 연산 정보
Figure 112014010513717-pat00003
Figure 112014010513717-pat00004
를 각각 제1파라미터 정보 및 제2파라미터 정보로서 결정하거나, 상기
Figure 112014010513717-pat00005
Figure 112014010513717-pat00006
로부터 각각 파생되는 중간 연산 정보들을 제1파라미터 정보 및 제2파라미터 정보로서 결정하고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계는
Figure 112014010513717-pat00007
Figure 112014010513717-pat00008
연산에 기초하여 중간 연산 정보
Figure 112014010513717-pat00009
Figure 112014010513717-pat00010
를 산출하는 단계 및, 상기 중간 연산 정보
Figure 112014010513717-pat00011
Figure 112014010513717-pat00012
를 함께 이용하여 상기 중간 연산 정보
Figure 112014010513717-pat00013
Figure 112014010513717-pat00014
로부터 각각 파생되는 제1파라미터 정보
Figure 112014010513717-pat00015
및 제2파라미터 정보
Figure 112014010513717-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 112014010513717-pat00017
로부터
Figure 112014010513717-pat00018
연산에 기초하여 상기 제1A블록 정보
Figure 112014010513717-pat00019
를 산출할 수 있다.
본 발명의 실시 예에 따르면, 상기 제2A블록 정보를 추출하는 단계는 n비트 길이의 상기 제2파라미터 정보
Figure 112014010513717-pat00020
로부터
Figure 112014010513717-pat00021
연산에 기초하여 상기 제2A블록 정보
Figure 112014010513717-pat00022
를 산출할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1모듈러 지수승 연산을 수행하는 단계는
Figure 112014010513717-pat00023
Figure 112014010513717-pat00024
연산 및
Figure 112014010513717-pat00025
Figure 112014010513717-pat00026
연산에 기초하여 상기 제1파라미터 정보
Figure 112014010513717-pat00027
로부터 분할된 상기 제1A블록 정보
Figure 112014010513717-pat00028
에 대한 모듈러 지수승 연산 결과인 제1연산 값
Figure 112014010513717-pat00029
및 제2연산 값
Figure 112014010513717-pat00030
을 산출하고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1모듈러 지수승 연산을 수행하는 단계는
Figure 112014010513717-pat00031
연산에 기초하여 제3연산 값
Figure 112014010513717-pat00032
을 더 산출하며, 상기
Figure 112014010513717-pat00033
는 s, p 및 q를 이용한 연산에 의하여 상기 p로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제2모듈러 지수승 연산을 수행하는 단계는
Figure 112014010513717-pat00034
Figure 112014010513717-pat00035
Figure 112014010513717-pat00036
연산 및
Figure 112014010513717-pat00037
Figure 112014010513717-pat00038
Figure 112014010513717-pat00039
연산에 기초하여 상기 제2파라미터 정보
Figure 112014010513717-pat00040
로부터 분할된 상기 제2A블록 정보
Figure 112014010513717-pat00041
에 대한 모듈러 지수승 연산 결과인 제4연산 값
Figure 112014010513717-pat00042
및 제5연산 값
Figure 112014010513717-pat00043
을 산출하고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, q는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제2모듈러 지수승 연산을 수행하는 단계는
Figure 112014010513717-pat00044
연산에 기초하여 제6연산 값
Figure 112014010513717-pat00045
을 더 산출하며, 상기
Figure 112014010513717-pat00046
는 s, p 및 q를 이용한 연산에 의하여 상기 q로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1B블록 정보를 추출하는 단계는 n비트 길이의 상기 제1파라미터 정보
Figure 112014010513717-pat00047
로부터
Figure 112014010513717-pat00048
=
Figure 112014010513717-pat00049
연산에 기초하는 상기 제1B블록 정보
Figure 112014010513717-pat00050
를 산출하며, 상기
Figure 112014010513717-pat00051
Figure 112014010513717-pat00052
Figure 112014010513717-pat00053
에 기초하여 결정되고, 상기
Figure 112014010513717-pat00054
Figure 112014010513717-pat00055
는 각각
Figure 112014010513717-pat00056
Figure 112014010513717-pat00057
연산에 기초하여 결정되고, 상기
Figure 112014010513717-pat00058
는 상기 제1A블록 정보 및 중간 연산 정보에 기초하여 결정되며, 상기
Figure 112014010513717-pat00059
는 제2파라미터 정보이고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제2B블록 정보를 추출하는 단계는 n비트 길이의 상기 제2파라미터 정보
Figure 112014010513717-pat00060
로부터
Figure 112014010513717-pat00061
=
Figure 112014010513717-pat00062
연산에 기초하여 상기 제2B블록 정보
Figure 112014010513717-pat00063
를 산출하며, 상기
Figure 112014010513717-pat00064
Figure 112014010513717-pat00065
Figure 112014010513717-pat00066
에 기초하여 결정되고, 상기
Figure 112014010513717-pat00067
Figure 112014010513717-pat00068
는 각각
Figure 112014010513717-pat00069
Figure 112014010513717-pat00070
연산에 기초하여 결정되고, 상기
Figure 112014010513717-pat00071
는 상기 제1A블록 정보 및 중간 연산 정보에 기초하여 결정되며, 상기
Figure 112014010513717-pat00072
는 제1파라미터 정보이고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제3모듈러 지수승 연산을 수행하는 단계는 상기 제1A블록 정보
Figure 112014010513717-pat00073
에 대한 모듈러 지수승 연산 정보를 이용하여 상기 제1B블록 정보
Figure 112014010513717-pat00074
에 대한 모듈러 지수승 연산을 수행하여
Figure 112014010513717-pat00075
연산 및
Figure 112014010513717-pat00076
연산 결과에 상응하는 제7연산 값
Figure 112014010513717-pat00077
및 제8연산 값
Figure 112014010513717-pat00078
을 산출하고, 상기
Figure 112014010513717-pat00079
는 제1파라미터 정보이고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제3모듈러 지수승 연산을 수행하는 단계는
Figure 112014010513717-pat00080
연산에 기초하여 제9연산 값
Figure 112014010513717-pat00081
을 더 산출하며, 상기
Figure 112014010513717-pat00082
는 s, p 및 q를 이용한 연산에 의하여 상기 p로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=p??q인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제4모듈러 지수승 연산을 수행하는 단계는 상기 제2A블록 정보
Figure 112014010513717-pat00083
에 대한 모듈러 지수승 연산 정보를 이용하여 상기 제2B블록 정보
Figure 112014010513717-pat00084
에 대한 모듈러 지수승 연산을 수행하여
Figure 112014010513717-pat00085
연산 및
Figure 112014010513717-pat00086
Figure 112014010513717-pat00087
연산 결과에 상응하는 제10연산 값
Figure 112014010513717-pat00088
및 제11연산 값
Figure 112014010513717-pat00089
을 산출하고, 상기
Figure 112014010513717-pat00090
는 제2파라미터 정보이고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, q는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제4모듈러 지수승 연산을 수행하는 단계는
Figure 112014010513717-pat00091
연산에 기초하여 제12연산 값
Figure 112014010513717-pat00092
을 더 산출하며, 상기
Figure 112014010513717-pat00093
는 s, p 및 q를 이용한 연산에 의하여 상기 q로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 암호화 처리 결과를 산출하는 단계는 상기 모듈러 지수승 연산 결과를 이용한
Figure 112014010513717-pat00094
Figure 112014010513717-pat00095
연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출하는 단계 및, 상기 제13연산 값 S와 제14연산 값 S'를 이용한 비교 연산에 따른 판정에 기초하여 암호화 처리된 결과를 출력하는 단계를 포함하며, 상기
Figure 112014010513717-pat00096
Figure 112014010513717-pat00097
는 각각 제1파라미터
Figure 112014010513717-pat00098
에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이고, 상기
Figure 112014010513717-pat00099
Figure 112014010513717-pat00100
는 각각 제2파라미터
Figure 112014010513717-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 112014010513717-pat00102
Figure 112014010513717-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 112014010513717-pat00104
Figure 112014010513717-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 112014010513717-pat00106
Figure 112014010513717-pat00107
및 단계 1~17에서 연산되는 중간 연산 정보들이 저장될 수 있다. 여기에서, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 그리고,
Figure 112014010513717-pat00108
Figure 112014010513717-pat00109
는 각각
Figure 112014010513717-pat00110
Figure 112014010513717-pat00111
연산에 기초하여 생성되는 정보들이고, d는 비밀키이다.
다른 예로서, 레지스터 블록(120-1)에는 도 10에 도시된 CRT-RSA 알고리즘에서의 입력 정보들
Figure 112014010513717-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 112014010513717-pat00113
,
Figure 112014010513717-pat00114
,
Figure 112014010513717-pat00115
,
Figure 112014010513717-pat00116
을 연산할 수 있다.
다른 예로서, 중간 값 연산부(120-2)는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 2, 3, 6, 8, 12, 14에 대한 연산을 수행하고, 연산 결과를 중간 연산 정보들로서 산출할 수 있다. 또한, 중간 값 연산부(120-2)는 도 10에 도시된 CRT-RSA 알고리즘의 단계 5, 4, 10, 11에서의 중간 연산 정보들
Figure 112014010513717-pat00117
,
Figure 112014010513717-pat00118
,
Figure 112014010513717-pat00119
,
Figure 112014010513717-pat00120
을 연산할 수 있다.
정보 분할 처리부(120-3)는 모듈러 지수승 연산 처리에서의 메시지에 대한 지수승 값을 결정하는 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할 처리한다. 도 8 또는 도 10에 도시된 CRT-RSA 알고리즘에서 제1파라미터 정보는
Figure 112014010513717-pat00121
이고, 제2파라미터 정보는
Figure 112014010513717-pat00122
이다. 예로서, 제1파라미터 정보
Figure 112014010513717-pat00123
및 제2파라미터 정보
Figure 112014010513717-pat00124
를 각각 2개의 블록으로 분할 처리할 수 있다. 예로서, 제1파라미터 정보
Figure 112014010513717-pat00125
및 제2파라미터 정보
Figure 112014010513717-pat00126
를 각각 동일한 사이즈를 갖는 2개 블록으로 분할 처리할 수 있다.
예로서, 정보 분할 처리부(120-3)는 도 9에 도시된 CRT-RSA 알고리즘에서의 단계 4 및 9와 같이 제1파라미터 정보
Figure 112014010513717-pat00127
및 제2파라미터 정보
Figure 112014010513717-pat00128
를 각각 복수의 블록으로 분할 처리할 수 있다.
정보 분할 처리부(120-3)는 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 4와 같이, n비트 길이의 제1파라미터 정보
Figure 112014010513717-pat00129
로부터
Figure 112014010513717-pat00130
연산에 기초하여 제1A블록 정보
Figure 112014010513717-pat00131
를 산출할 수 있다.
정보 분할 처리부(120-3)는 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 4와 같이, n비트 길이의 제2파라미터 정보
Figure 112014010513717-pat00132
로부터
Figure 112014010513717-pat00133
연산에 기초하여 제2A블록 정보
Figure 112014010513717-pat00134
를 산출할 수 있다.
정보 분할 처리부(120-3)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 9와 같이, n비트 길이의 제1파라미터 정보
Figure 112014010513717-pat00135
로부터
Figure 112014010513717-pat00136
=
Figure 112014010513717-pat00137
연산에 기초하는 제1B블록 정보
Figure 112014010513717-pat00138
를 산출할 수 있다.
정보 분할 처리부(120-3)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 9와 같이, n비트 길이의 제2파라미터 정보
Figure 112014010513717-pat00139
로부터
Figure 112014010513717-pat00140
=
Figure 112014010513717-pat00141
연산에 기초하여 제2B블록 정보
Figure 112014010513717-pat00142
를 산출할 수 있다.
위와 같은 방식으로, 정보 분할 처리부(120-3)는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 4 및 9와 같이 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할 처리할 수도 있다.
모듈러 곱셈부(120-4)는 제1파라미터 정보
Figure 112014010513717-pat00143
및 제2파라미터 정보
Figure 112014010513717-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 112014010513717-pat00145
Figure 112014010513717-pat00146
연산 및
Figure 112014010513717-pat00147
Figure 112014010513717-pat00148
연산에 기초하여 제1파라미터 정보
Figure 112014010513717-pat00149
로부터 분할된 제1A블록 정보
Figure 112014010513717-pat00150
에 대한 모듈러 지수승 연산 결과인 제1연산 값
Figure 112014010513717-pat00151
및 제2연산 값
Figure 112014010513717-pat00152
을 산출할 수 있다.
모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 7과 같이,
Figure 112014010513717-pat00153
Figure 112014010513717-pat00154
Figure 112014010513717-pat00155
연산 및
Figure 112014010513717-pat00156
Figure 112014010513717-pat00157
Figure 112014010513717-pat00158
연산에 기초하여 제2파라미터 정보
Figure 112014010513717-pat00159
로부터 분할된 제2A블록 정보
Figure 112014010513717-pat00160
에 대한 모듈러 지수승 연산 결과인 제4연산 값
Figure 112014010513717-pat00161
및 제5연산 값
Figure 112014010513717-pat00162
을 산출할 수 있다.
모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 10과 같이, 제1B블록 정보
Figure 112014010513717-pat00163
에 대한 모듈러 지수승 연산을 수행하여
Figure 112014010513717-pat00164
연산 및
Figure 112014010513717-pat00165
연산 결과에 상응하는 제7연산 값
Figure 112014010513717-pat00166
및 제8연산 값
Figure 112014010513717-pat00167
을 산출할 수 있다. 이 때, 제1A블록 정보
Figure 112014010513717-pat00168
에 대한 모듈러 지수승 연산 정보가 이용된다.
모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 11과 같이, 제2B블록 정보
Figure 112014010513717-pat00169
에 대한 모듈러 지수승 연산을 수행하여
Figure 112014010513717-pat00170
연산 및
Figure 112014010513717-pat00171
Figure 112014010513717-pat00172
연산 결과에 상응하는 제10연산 값
Figure 112014010513717-pat00173
및 제11연산 값
Figure 112014010513717-pat00174
을 산출할 수 있다. 이 때, 제2A블록 정보
Figure 112014010513717-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 112014010513717-pat00176
Figure 112014010513717-pat00177
연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출할 수 있다.
다른 예로서, 모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 13과 같이,
Figure 112014010513717-pat00178
Figure 112014010513717-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 112014010513717-pat00180
인 것으로 판단되는 경우에 암호화 처리에 오류가 발생된 것으로 판정한다. 도 8의 단계 15에서 오류가 발생되지 않은 것으로 판정되면, 암호화 결과 산출부(120-6)는 단계 16과 같은 연산 처리를 실행하여 암호화된 결과 S를 연산하여 출력한다.
암호화 결과 산출부(120-6)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 15와 같이, 비교 판단 처리를 수행할 수 있다. 예로서,
Figure 112014010513717-pat00181
인 것으로 판단되는 경우에 암호화 처리에 오류가 발생된 것으로 판정한다. 도 10의 단계 15에서 오류가 발생되지 않은 것으로 판정되면, 암호화 결과 산출부(120-6)는 단계 16과 같은 연산 처리를 실행하여 암호화된 결과 S를 연산하여 출력할 수도 있다.
다음으로, 도 1의 전자 장치(100)에서 수행되는 본 발명의 기술적 사상에 따른 CRT-RSA 암호화 방법에 대하여 도 3의 흐름도를 참조하여 설명하기로 한다.
우선, 전자 장치(100)는 공개키로부터 산출된 서로 다른 2개의 소수 각각에 대한 오일러 파이 함수 값으로 비밀키를 모듈러 연산한 결과에 기초하여 모듈러 지수승 연산 처리에 이용될 제1파라미터 정보 및 제2파라미터 정보를 산출하는 오퍼레이션을 수행한다(S110).
예로서,
Figure 112014010513717-pat00182
Figure 112014010513717-pat00183
연산에 기초하여 생성되는
Figure 112014010513717-pat00184
Figure 112014010513717-pat00185
를 각각 제1파라미터 정보 및 제2파라미터 정보로서 결정할 수 있다. 여기에서, d는 비밀키이고, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다.
다른 예로서,
Figure 112014010513717-pat00186
Figure 112014010513717-pat00187
로부터 각각 파생되는 중간 연산 정보들인
Figure 112014010513717-pat00188
Figure 112014010513717-pat00189
를 제1파라미터 정보 및 제2파라미터 정보로서 결정할 수도 있다. 여기에서,
Figure 112014010513717-pat00190
Figure 112014010513717-pat00191
Figure 112014010513717-pat00192
를 함께 이용하여
Figure 112014010513717-pat00193
로부터 파생되는 중간 연산 정보로 결정하고,
Figure 112014010513717-pat00194
Figure 112014010513717-pat00195
Figure 112014010513717-pat00196
를 함께 이용하여
Figure 112014010513717-pat00197
로부터 파생되는 중간 연산 정보로 결정할 수 있다.
예로서,
Figure 112014010513717-pat00198
Figure 112014010513717-pat00199
는 도 8에 도시된 CRT-RSA 알고리즘의 단계 3에서와 같은 연산 처리에 의해 산출될 수 있다. 즉,
Figure 112014010513717-pat00200
=
Figure 112014010513717-pat00201
Figure 112014010513717-pat00202
=
Figure 112014010513717-pat00203
연산에 의해
Figure 112014010513717-pat00204
Figure 112014010513717-pat00205
를 결정할 수 있다. 다른 예로서,
Figure 112014010513717-pat00206
Figure 112014010513717-pat00207
는 도 10에 도시된 CRT-RSA 알고리즘의 단계 3에서와 같은 연산 처리에 의해 산출될 수도 있다. 본 발명에서
Figure 112014010513717-pat00208
Figure 112014010513717-pat00209
Figure 112014010513717-pat00210
Figure 112014010513717-pat00211
로부터 다양하게 변형시켜 산출할 수 있다.
다음으로, 전자 장치(100)는 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 이전 블록에서 연산된 정보에 기초하여 다음 블록에 대한 모듈러 지수승 연산 처리를 하는 오퍼레이션을 수행한다(S120). 예로서, 제1파라미터 정보 및 제2파라미터 정보를 각각 2개의 블록들로 분할하고, 분할된 블록 단위로 중간 연산 정보들 및 이전 블록에서 연산된 정보들 중 적어도 하나를 이용하여 다음 블록에 대한 모듈러 지수승 연산을 수행할 수 있다. 예로서, 제1파라미터 정보 및 제2파라미터 정보를 각각 동일한 사이즈를 갖는 2개 블록으로 분할할 수 있다.
다음으로, 전자 장치(100)는 모듈러 지수승 연산 결과를 이용한 CRT 연산에 기초하여 암호화 처리 결과를 산출하는 오퍼레이션을 수행한다(S130). 예로서, 암호화 처리 결과를 산출하는 오퍼레이션에서 비교 판단 처리를 수행하여 오류를 검출할 수도 있다.
도 4는 도 3에 도시된 제1,2파라미터 정보 산출 프로세스(S110)에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
전자 장치(100)는 입력 정보들을 이용하여
Figure 112014010513717-pat00212
Figure 112014010513717-pat00213
연산에 기초하여 중간 연산 정보
Figure 112014010513717-pat00214
Figure 112014010513717-pat00215
를 산출하는 오퍼레이션을 수행한다(S110-1). 여기에서, d는 비밀키이고, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다.
전자 장치(100)는 중간 연산 정보
Figure 112014010513717-pat00216
Figure 112014010513717-pat00217
를 함께 이용하여 중간 연산 정보
Figure 112014010513717-pat00218
Figure 112014010513717-pat00219
로부터 각각 파생되는 제1파라미터 정보
Figure 112014010513717-pat00220
및 제2파라미터 정보
Figure 112014010513717-pat00221
를 산출하는 오퍼레이션을 수행한다(S110-2). 예로서, 제1파라미터 정보
Figure 112014010513717-pat00222
및 제2파라미터 정보
Figure 112014010513717-pat00223
는 도 8 또는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 3과 같은 연산식을 이용하여 산출할 수 있다.
도 5는 도 3에 도시된 모듈러 지수승 연산 수행 프로세스(S120)에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
전자 장치(100)는 제1파라미터 정보
Figure 112014010513717-pat00224
의 일부에 해당되는 제1A블록 정보를 추출하는 오퍼레이션을 수행한다(S120-1). 전자 장치(100)는 LEFTB 함수를 이용하여 제1파라미터 정보
Figure 112014010513717-pat00225
로부터 제1A블록 정보를 추출할 수 있다. 예로서, n비트 길이의 제1파라미터 정보
Figure 112014010513717-pat00226
로부터
Figure 112014010513717-pat00227
연산에 기초하여 제1A블록 정보
Figure 112014010513717-pat00228
를 산출할 수 있다.
그리고, 전자 장치(100)는 제2파라미터 정보
Figure 112014010513717-pat00229
의 일부에 해당되는 제2A블록 정보를 추출하는 오퍼레이션을 수행한다(S120-2). 전자 장치(100)는 LEFTB 함수를 이용하여 제2파라미터 정보
Figure 112014010513717-pat00230
로부터 제2A블록 정보를 추출할 수 있다. 예로서, n비트 길이의 제2파라미터 정보
Figure 112014010513717-pat00231
로부터
Figure 112014010513717-pat00232
연산에 기초하여 제2A블록 정보
Figure 112014010513717-pat00233
를 산출할 수 있다.
다음으로, 전자 장치(100)는 제1A블록 정보에 기초하여 제1모듈러 지수승 연산을 수행한다(S120-3). 예로서,
Figure 112014010513717-pat00234
Figure 112014010513717-pat00235
연산 및
Figure 112014010513717-pat00236
Figure 112014010513717-pat00237
연산에 기초하여 제1파라미터 정보
Figure 112014010513717-pat00238
로부터 분할된 제1A블록 정보
Figure 112014010513717-pat00239
에 대한 모듈러 지수승 연산 결과인 제1연산 값
Figure 112014010513717-pat00240
및 제2연산 값
Figure 112014010513717-pat00241
을 산출할 수 있다. 여기에서, m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수이다. 또한,
Figure 112014010513717-pat00242
연산에 기초하여 제3연산 값
Figure 112014010513717-pat00243
을 더 산출할 수 있다. 여기에서,
Figure 112014010513717-pat00244
는 입력 정보 s, p 및 q를 이용한 연산에 의하여 p로부터 파생되는 중간 연산 정보이고, s는 랜덤한 수이고, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 예로서,
Figure 112014010513717-pat00245
Figure 112014010513717-pat00246
연산에 의하여 결정되고,
Figure 112014010513717-pat00247
Figure 112014010513717-pat00248
Figure 112014010513717-pat00249
연산에 의하여 결정될 수 있다.
그리고, 전자 장치(100)는 제2A블록 정보에 기초하여 제2모듈러 지수승 연산을 수행한다(S120-4). 예로서,
Figure 112014010513717-pat00250
Figure 112014010513717-pat00251
Figure 112014010513717-pat00252
연산 및
Figure 112014010513717-pat00253
Figure 112014010513717-pat00254
Figure 112014010513717-pat00255
연산에 기초하여 제2파라미터 정보
Figure 112014010513717-pat00256
로부터 분할된 제2A블록 정보
Figure 112014010513717-pat00257
에 대한 모듈러 지수승 연산 결과인 제4연산 값
Figure 112014010513717-pat00258
및 제5연산 값
Figure 112014010513717-pat00259
을 산출할 수 있다. 또한,
Figure 112014010513717-pat00260
연산에 기초하여 제6연산 값
Figure 112014010513717-pat00261
을 더 산출할 수 있다. 여기에서,
Figure 112014010513717-pat00262
는 s, p 및 q를 이용한 연산에 의하여 q로부터 파생되는 중간 연산 정보이다. 예로서,
Figure 112014010513717-pat00263
Figure 112014010513717-pat00264
연산에 의하여 결정되고,
Figure 112014010513717-pat00265
Figure 112014010513717-pat00266
Figure 112014010513717-pat00267
연산에 의하여 결정될 수 있다.
다음으로, 전자 장치(100)는 제1파라미터 정보
Figure 112014010513717-pat00268
로부터 제1A블록 정보
Figure 112014010513717-pat00269
를 제외한 나머지 제1B블록 정보를 추출하는 오퍼레이션을 수행한다(S120-5). 예로서, n비트 길이의 제1파라미터 정보
Figure 112014010513717-pat00270
로부터
Figure 112014010513717-pat00271
=
Figure 112014010513717-pat00272
연산에 기초하는 제1B블록 정보
Figure 112014010513717-pat00273
를 산출할 수 있다. 여기에서,
Figure 112014010513717-pat00274
Figure 112014010513717-pat00275
Figure 112014010513717-pat00276
에 기초하여 결정되고,
Figure 112014010513717-pat00277
Figure 112014010513717-pat00278
는 각각
Figure 112014010513717-pat00279
Figure 112014010513717-pat00280
연산에 기초하여 결정되고,
Figure 112014010513717-pat00281
는 제1A블록 정보 및 중간 연산 정보에 기초하여 결정된다. 예로서,
Figure 112014010513717-pat00282
Figure 112014010513717-pat00283
의 연산 결과이고,
Figure 112014010513717-pat00284
Figure 112014010513717-pat00285
=
Figure 112014010513717-pat00286
연산에 기초하여 결정되고,
Figure 112014010513717-pat00287
Figure 112014010513717-pat00288
연산에 기초하여 결정될 수 있다.
그리고, 전자 장치(100)는 제2파라미터 정보
Figure 112014010513717-pat00289
로부터 제2A블록 정보
Figure 112014010513717-pat00290
를 제외한 나머지 제2B블록 정보를 추출하는 오퍼레이션을 수행한다(S120-6). 예로서, n비트 길이의 제2파라미터 정보
Figure 112014010513717-pat00291
로부터
Figure 112014010513717-pat00292
=
Figure 112014010513717-pat00293
연산에 기초하여 제2B블록 정보
Figure 112014010513717-pat00294
를 산출할 수 있다. 여기에서,
Figure 112014010513717-pat00295
Figure 112014010513717-pat00296
Figure 112014010513717-pat00297
에 기초하여 결정되고,
Figure 112014010513717-pat00298
Figure 112014010513717-pat00299
는 각각
Figure 112014010513717-pat00300
Figure 112014010513717-pat00301
연산에 기초하여 결정되고,
Figure 112014010513717-pat00302
는 제1A블록 정보 및 중간 연산 정보에 기초하여 결정될 수 있다. 예로서,
Figure 112014010513717-pat00303
Figure 112014010513717-pat00304
의 연산 결과이고,
Figure 112014010513717-pat00305
Figure 112014010513717-pat00306
=
Figure 112014010513717-pat00307
연산에 기초하여 결정되고,
Figure 112014010513717-pat00308
Figure 112014010513717-pat00309
=
Figure 112014010513717-pat00310
연산에 기초하여 결정될 수 있다.
다음으로, 전자 장치(100)는 1A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 제1B블록 정보에 기초하여 제3모듈러 지수승 연산을 수행한다(S120-7). 예로서, 제1A블록 정보
Figure 112014010513717-pat00311
에 대한 모듈러 지수승 연산 정보인 제1연산 값
Figure 112014010513717-pat00312
및 제2연산 값
Figure 112014010513717-pat00313
를 이용한 제1B블록 정보
Figure 112014010513717-pat00314
에 대한 모듈러 지수승 연산을 수행하여
Figure 112014010513717-pat00315
연산 및
Figure 112014010513717-pat00316
연산 결과에 상응하는 제7연산 값
Figure 112014010513717-pat00317
및 제8연산 값
Figure 112014010513717-pat00318
을 산출할 수 있다. 또한,
Figure 112014010513717-pat00319
연산에 기초하여 제9연산 값
Figure 112014010513717-pat00320
을 더 산출할 수 있다.
다음으로, 전자 장치(100)는 2A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 제2B블록 정보에 기초하여 제4모듈러 지수승 연산을 수행한다(S120-8). 예로서, 제2A블록 정보
Figure 112014010513717-pat00321
에 대한 모듈러 지수승 연산 정보인 제4연산 값
Figure 112014010513717-pat00322
및 제5연산 값
Figure 112014010513717-pat00323
을 이용한 제2B블록 정보
Figure 112014010513717-pat00324
에 대한 모듈러 지수승 연산을 수행하여
Figure 112014010513717-pat00325
연산 및
Figure 112014010513717-pat00326
Figure 112014010513717-pat00327
연산 결과에 상응하는 제10연산 값
Figure 112014010513717-pat00328
및 제11연산 값
Figure 112014010513717-pat00329
을 산출할 수 있다. 또한,
Figure 112014010513717-pat00330
연산에 기초하여 제12연산 값
Figure 112014010513717-pat00331
을 더 산출할 수 있다.
도 6은 도 3에 도시된 암호화 처리 결과 산출 프로세스(S130)에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
전자 장치(100)는 모듈러 지수승 연산 결과를 이용한
Figure 112014010513717-pat00332
Figure 112014010513717-pat00333
연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출한다(S130-1). 여기에서,
Figure 112014010513717-pat00334
Figure 112014010513717-pat00335
는 각각 제1파라미터
Figure 112014010513717-pat00336
에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이고,
Figure 112014010513717-pat00337
Figure 112014010513717-pat00338
는 각각 제2파라미터
Figure 112014010513717-pat00339
에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이다.
다음으로, 전자 장치(100)는 제13연산 값 S와 제14연산 값 S'를 이용한 비교 연산에 따른 판정에 기초하여 암호화 처리된 결과를 출력한다(S130-2). 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 15와 같이, 비교 판단 처리를 수행할 수 있다. 예로서,
Figure 112014010513717-pat00340
인 것으로 판단되는 경우에 암호화 처리에 오류가 발생된 것으로 판정할 수 있다. 도 8의 단계 15에서 오류가 발생되지 않은 것으로 판정되면, 암호화 결과 산출부(120-6)는 단계 16과 같은 연산 처리를 실행하여 암호화된 결과 S를 연산하여 출력할 수 있다.
도 7은 본 발명의 기술적 사상에 따른 CRT-RSA 암호화 처리 방법의 주요 과정을 개념적으로 보여주는 도면이다.
도 7은 파이스텔 구조를 이용하여 CRT-RSA 암호화 처리하는 과정을 개념적으로 보여준다.
오퍼레이션 S701A 및 S701B에서는
Figure 112014010513717-pat00341
Figure 112014010513717-pat00342
를 각각
Figure 112014010513717-pat00343
Figure 112014010513717-pat00344
연산에 기초하여 산출한다.
오퍼레이션 S702A에서는 제1파라미터 정보
Figure 112014010513717-pat00345
Figure 112014010513717-pat00346
Figure 112014010513717-pat00347
값을 적용하여 산출한다. 이에 따라서,
Figure 112014010513717-pat00348
또는
Figure 112014010513717-pat00349
중 어느 하나에 오류가 주입되더라도 오류는 제1파라미터 정보
Figure 112014010513717-pat00350
로 확산된다.
오퍼레이션 S702B에서는 제2파라미터 정보
Figure 112014010513717-pat00351
Figure 112014010513717-pat00352
Figure 112014010513717-pat00353
값을 적용하여 산출한다. 이에 따라서,
Figure 112014010513717-pat00354
또는
Figure 112014010513717-pat00355
중 어느 하나에 오류가 주입되더라도 오류는 제2파라미터 정보
Figure 112014010513717-pat00356
로 확산된다.
오퍼레이션 S703A에서는 제1파라미터 정보
Figure 112014010513717-pat00357
로부터
Figure 112014010513717-pat00358
연산에 기초하여 제1A블록 정보
Figure 112014010513717-pat00359
를 산출한다.
오퍼레이션 S703B에서는 제2파라미터 정보
Figure 112014010513717-pat00360
로부터
Figure 112014010513717-pat00361
연산에 기초하여 제2A블록 정보
Figure 112014010513717-pat00362
를 산출한다.
오퍼레이션 S704A에서는 제1A블록 정보
Figure 112014010513717-pat00363
및 초기 값 정보에 기초한 모듈러 지수승 연산에 의하여 한쌍의 중간 값인 (
Figure 112014010513717-pat00364
,
Figure 112014010513717-pat00365
,
Figure 112014010513717-pat00366
)을 산출한다.
오퍼레이션 S704B에서는 제2A블록 정보
Figure 112014010513717-pat00367
및 초기 값 정보에 기초한 모듈러 지수승 연산에 의하여 다른 한쌍의 중간 값인 (
Figure 112014010513717-pat00368
,
Figure 112014010513717-pat00369
,
Figure 112014010513717-pat00370
)을 산출한다.
오퍼레이션 S705A에서는 제1A블록 정보
Figure 112014010513717-pat00371
및 초기 값 정보에 기초하여 중간 값
Figure 112014010513717-pat00372
를 산출한다.
오퍼레이션 S705B에서는 제2A블록 정보
Figure 112014010513717-pat00373
및 초기 값 정보에 기초하여 중간 값
Figure 112014010513717-pat00374
를 산출한다.
오퍼레이션 S706A에서는 제1A블록 정보
Figure 112014010513717-pat00375
, 중간 값
Figure 112014010513717-pat00376
및 제2파라미터 정보
Figure 112014010513717-pat00377
에 기초하여 제1B블록 정보
Figure 112014010513717-pat00378
를 산출한다. 이에 따라서, 제1파라미터 정보
Figure 112014010513717-pat00379
또는 제2파라미터 정보
Figure 112014010513717-pat00380
중의 어느 하나에 오류가 주입되더라도 오류는 제1B블록 정보
Figure 112014010513717-pat00381
로 확산된다. 또한, 중간 값
Figure 112014010513717-pat00382
를 연산하는데 이용되는 초기 값 또는 중간 값들에 오류가 주입되더라도 오류는 제1B블록 정보
Figure 112014010513717-pat00383
로 확산된다.
오퍼레이션 S706B에서는 제2A블록 정보
Figure 112014010513717-pat00384
, 중간 값
Figure 112014010513717-pat00385
및 제1파라미터 정보
Figure 112014010513717-pat00386
에 기초하여 제2B블록 정보
Figure 112014010513717-pat00387
를 산출한다. 이에 따라서, 제1파라미터 정보
Figure 112014010513717-pat00388
또는 제2파라미터 정보
Figure 112014010513717-pat00389
중의 어느 하나에 오류가 주입되더라도 오류는 제2B블록 정보
Figure 112014010513717-pat00390
로 확산된다. 또한, 중간 값
Figure 112014010513717-pat00391
를 연산하는데 적용되는 초기 값 또는 중간 값들에 오류가 주입되더라도 오류는 제2B블록 정보
Figure 112014010513717-pat00392
로 확산된다.
오퍼레이션 S707A에서는 제1A블록 정보
Figure 112014010513717-pat00393
에 대한 모듈러 지수승 연산 정보, 제1B블록 정보
Figure 112014010513717-pat00394
및 초기 값 정보에 기초한 모듈러 지수승 연산에 의하여 또 다른 한 쌍의 중간 값인 (
Figure 112014010513717-pat00395
,
Figure 112014010513717-pat00396
,
Figure 112014010513717-pat00397
)을 산출한다.
오퍼레이션 S707B에서는 제2A블록 정보
Figure 112014010513717-pat00398
에 대한 모듈러 지수승 연산 정보, 제2B블록 정보
Figure 112014010513717-pat00399
및 초기 값 정보에 기초한 모듈러 지수승 연산에 의하여 또 다른 한 쌍의 중간 값인 (
Figure 112014010513717-pat00400
,
Figure 112014010513717-pat00401
,
Figure 112014010513717-pat00402
)을 산출한다.
오퍼레이션 S708A에서는 초기 값 및 이전 중간 값들을 이용하여 중간값
Figure 112014010513717-pat00403
를 산출한다. 예로서,
Figure 112014010513717-pat00404
와 같은 연산에 의하여 중간값
Figure 112014010513717-pat00405
를 산출할 수 있다.
오퍼레이션 S708B에서는 초기 값 및 이전 중간값들을 이용하여 중간값
Figure 112014010513717-pat00406
를 산출한다. 예로서,
Figure 112014010513717-pat00407
와 같은 연산에 의하여 중간값
Figure 112014010513717-pat00408
를 연산할 수 있다.
오퍼레이션 S709A에서는 오퍼레이션 S707A에서 산출된
Figure 112014010513717-pat00409
및 오퍼레이션 S707B에 산출된
Figure 112014010513717-pat00410
를 이용한 CRT 연산에 의하여 중간 값 S를 산출한다. 이에 따라서,
Figure 112014010513717-pat00411
또는
Figure 112014010513717-pat00412
어느 하나를 산출하는 과정에서 오류가 삽입되더라도 오류는 중간 값 S로 확산된다.
오퍼레이션 S709B에서는 오퍼레이션 S707A에서 산출된
Figure 112014010513717-pat00413
및 오퍼레이션 S707B에 산출된
Figure 112014010513717-pat00414
를 이용한 CRT 연산에 의하여 중간 값 S'를 산출한다. 이에 따라서,
Figure 112014010513717-pat00415
또는
Figure 112014010513717-pat00416
어느 하나를 산출하는 과정에서 오류가 삽입되더라도 오류는 중간 값 S'로 확산된다.
오퍼레이션 S710에서는 초기 값 p 및 q에서 파생되는 중간값들을 이용하여 중간 값
Figure 112014010513717-pat00417
를 산출한다.
오퍼레이션 S711에서는 중간값들을 이용하여 암호화 과정에서 오류가 발생되었는지를 판정한다. 예로서, "
Figure 112014010513717-pat00418
"와 같은 if 문을 사용하여 오류를 판정할 수 있다.
오퍼레이션 S712에서는 오퍼레이션 S711의 판정 결과 오류가 발생되지 않은 것으로 판정된 경우에, 중간 값 S 및 S'와 이전에 생성된 다른 중간값들을 이용하여 최종적인 출력 값인 S를 산출한다.
이와 같은, 파이스텔 구조의 CRT-RSA 암호화 처리하는 과정에 의하여 초기 값 또는 중간값에 오류가 삽입되는 경우에, 이후에 진행되는 중간 값 연산 과정 및 출력 값 연산 과정으로 오류가 랜덤하게 확산된다. 이에 따라서, 오퍼레이션 S711을 삭제하더라도 비밀 값인 p 및 q를 알아낼 수 없게 된다.
도 8은 본 발명의 기술적 사상에 따른 CRT-RSA 알고리즘의 일 예를 보여주는 도면이다.
도 8에 도시된 CRT-RSA 알고리즘에서의 입력 정보들은
Figure 112014010513717-pat00419
Figure 112014010513717-pat00420
가 되고, 출력 정보는
Figure 112014010513717-pat00421
가 된다. 여기에서, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 그리고,
Figure 112014010513717-pat00422
Figure 112014010513717-pat00423
는 각각
Figure 112014010513717-pat00424
Figure 112014010513717-pat00425
연산에 기초하여 생성되는 정보이고, d는 비밀키이다.
도 8 및 도 10에 기재된 '&'는 비트단위의 AND 연산 부호를 의미하고, '
Figure 112014010513717-pat00426
'는 비트단위의 XOR 연산 부호를 의미하고, '∥'는 연결 심볼(concatenation symbol)이다.
단계5, 7, 10, 11에서 사용되는 PMExp 알고리즘은 전력 분석 공격(Power attack) 및 오류 주입 공격(Fault Attack)을 개선하기 위하여 도 9에 도시된 바와 같은 알고리즘이 적용될 수 있다.
만일, 도 8에 도시된 CRT-RSA 알고리즘에서 오류가 주입되지 않았다면 단계1~ 단계17은 다음과 같이 연산된다.
우선, 단계2에서는 수학식 1~3과 같은 연산에 의하여 중간 연산 정보에 해당되는 중간값
Figure 112014010513717-pat00427
,
Figure 112014010513717-pat00428
,
Figure 112014010513717-pat00429
를 각각 산출한다.
Figure 112014010513717-pat00430
Figure 112014010513717-pat00431
Figure 112014010513717-pat00432
다음으로, 단계3에서는 수학식 4 및 5에 의하여 제1파라미터
Figure 112014010513717-pat00433
및 제2파라미터
Figure 112014010513717-pat00434
를 산출한다.
Figure 112014010513717-pat00435
Figure 112014010513717-pat00436
다음으로, 단계4에서는 수학식 6 및 7에 의하여 제1A블록 정보
Figure 112014010513717-pat00437
및 제2A블록 정보
Figure 112014010513717-pat00438
를 산출한다.
Figure 112014010513717-pat00439
Figure 112014010513717-pat00440
다음으로, 단계5에서는 수학식 8, 9 및 10에 의하여 한쌍의 중간값인 (
Figure 112014010513717-pat00441
,
Figure 112014010513717-pat00442
,
Figure 112014010513717-pat00443
)을 산출한다.
Figure 112014010513717-pat00444
Figure 112014010513717-pat00445
Figure 112014010513717-pat00446
다음으로, 단계6에서는 수학식 11에 의하여 중간 값
Figure 112014010513717-pat00447
를 산출한다.
Figure 112014010513717-pat00448
다음으로, 단계7에서는 수학식 12, 13 및 14에 의하여 다른 한쌍의 중간값인 (
Figure 112014010513717-pat00449
,
Figure 112014010513717-pat00450
,
Figure 112014010513717-pat00451
)을 산출한다.
Figure 112014010513717-pat00452
Figure 112014010513717-pat00453
Figure 112014010513717-pat00454
다음으로, 단계8에서는 수학식 15에 의하여 중간 값
Figure 112014010513717-pat00455
를 산출한다.
Figure 112014010513717-pat00456
다음으로, 단계9에서는 수학식 16 및 17에 의하여 제1B블록 정보
Figure 112014010513717-pat00457
및 제2B블록 정보
Figure 112014010513717-pat00458
를 산출한다.
Figure 112014010513717-pat00459
Figure 112014010513717-pat00460
다음으로, 단계10에서는 수학식 18, 19 및 20에 의하여 또 다른 한 쌍의 중간값인 (
Figure 112014010513717-pat00461
,
Figure 112014010513717-pat00462
,
Figure 112014010513717-pat00463
)을 산출한다.
Figure 112014010513717-pat00464
Figure 112014010513717-pat00465
Figure 112014010513717-pat00466
다음으로, 단계11에서는 수학식 21, 22 및 23에 의하여 또 다른 한 쌍의 중간값인 (
Figure 112014010513717-pat00467
,
Figure 112014010513717-pat00468
,
Figure 112014010513717-pat00469
)을 산출한다.
Figure 112014010513717-pat00470
Figure 112014010513717-pat00471
Figure 112014010513717-pat00472
다음으로, 단계12에서는 수학식 24 및 25에 의하여 중간값
Figure 112014010513717-pat00473
Figure 112014010513717-pat00474
를 산출한다.
Figure 112014010513717-pat00475
Figure 112014010513717-pat00476
다음으로, 단계13에서는 수학식 26 및 27에 의하여 CRT 연산을 수행하여 중간 값 S 및 S'를 산출한다.
Figure 112014010513717-pat00477
Figure 112014010513717-pat00478
다음으로, 단계14에서는 수학식 28에 의하여 중간 값
Figure 112014010513717-pat00479
를 산출한다.
Figure 112014010513717-pat00480
다음으로, 단계15의 판단 결과
Figure 112014010513717-pat00481
=
Figure 112014010513717-pat00482
인 경우에, 단계16에서는 수학식 29에 의하여 출력 S를 산출한다.
Figure 112014010513717-pat00483
이와 같이 본 발명에서는 오류 확산을 통한 모듈러스 랜덤 블라인딩 방법을 사용하므로 전력 분석 및 전자파 분석에도 안전하게 적용할 수 있다. 또한, 단계15의 if문이 스킵되는 오류 주입 공격이 수행되더라도 각 단계 연산 중에 오류가 들어가게 되면 오류 확산을 통해서 오류가 주입된 결과 값을 출력한다. 따라서, 공격자는 이러한 오류가 주입된 결과 값을 사용해서는 비밀 값을 찾을 수 없다.
즉, 오류가 주입되는 경우에 중간 연산 과정들에 오류가 확산되게 하여 오류가 주입된 출력 값을 이용하여 비밀 값을 알아낼 수 없게 된다.
도 10은 본 발명의 기술적 사상에 따른 CRT-RSA 알고리즘의 다른 예를 보여주는 도면이다.
도 10에 도시된 CRT-RSA 알고리즘의 예는 도 8에 도시된 CRT-RSA 알고리즘의 예에 비하여, 중간값들
Figure 112014010513717-pat00484
,
Figure 112014010513717-pat00485
,
Figure 112014010513717-pat00486
,
Figure 112014010513717-pat00487
,
Figure 112014010513717-pat00488
,
Figure 112014010513717-pat00489
을 산출하는 연산 식들을 변형하였다.
도 10에 도시된 CRT-RSA 알고리즘에서의 입력 정보들은
Figure 112014010513717-pat00490
Figure 112014010513717-pat00491
가 되고, 출력 정보는
Figure 112014010513717-pat00492
가 된다. 여기에서, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 그리고,
Figure 112014010513717-pat00493
Figure 112014010513717-pat00494
는 각각
Figure 112014010513717-pat00495
Figure 112014010513717-pat00496
연산에 기초하여 생성되는 정보이고, d는 비밀키이다.
도 10의 단계5, 7, 10, 11에서 사용되는 PMExp 알고리즘은 전력 분석 공격(Power attack) 및 오류 주입 공격(Fault Attack)을 개선하기 위하여 도 9에 도시된 바와 같은 알고리즘이 적용될 수 있다.
만일, 도 10에 도시된 CRT-RSA 암호화 처리 방법의 알고리즘에서 오류가 주입되지 않았다면 단계1~ 단계17은 다음과 같이 연산된다.
우선, 단계2에서는 수학식 30~32와 같은 연산에 의하여 중간값들
Figure 112014010513717-pat00497
,
Figure 112014010513717-pat00498
,
Figure 112014010513717-pat00499
를 산출한다.
Figure 112014010513717-pat00500
Figure 112014010513717-pat00501
Figure 112014010513717-pat00502
다음으로, 단계3에서는 수학식 33 및 34에 의하여 제1파라미터
Figure 112014010513717-pat00503
및 제2파라미터
Figure 112014010513717-pat00504
를 산출한다.
Figure 112014010513717-pat00505
Figure 112014010513717-pat00506
단계4에서는 위에서 언급된 수학식 6 및 7에 의하여 제1A블록 정보
Figure 112014010513717-pat00507
및 제2A블록 정보
Figure 112014010513717-pat00508
를 산출한다.
단계5에서는 위에서 언급된 수학식 8, 9 및 10에 의하여 한쌍의 중간값인 (
Figure 112014010513717-pat00509
,
Figure 112014010513717-pat00510
,
Figure 112014010513717-pat00511
)을 산출한다.
단계6에서는 수학식 35에 의하여 중간 값
Figure 112014010513717-pat00512
를 산출한다.
Figure 112014010513717-pat00513
단계7에서는 위에서 언급된 수학식 12, 13 및 14에 의하여 다른 한쌍의 중간값인 (
Figure 112014010513717-pat00514
,
Figure 112014010513717-pat00515
,
Figure 112014010513717-pat00516
)을 산출한다.
단계8에서는 수학식 36에 의하여 중간 값
Figure 112014010513717-pat00517
를 산출한다.
Figure 112014010513717-pat00518
단계9에서는 수학식 37 및 38에 의하여 제1B블록 정보
Figure 112014010513717-pat00519
및 제2B블록 정보
Figure 112014010513717-pat00520
를 산출한다.
Figure 112014010513717-pat00521
Figure 112014010513717-pat00522
단계10에서는 위에서 언급된 수학식 18, 19 및 20에 의하여 또 다른 한 쌍의 중간값인 (
Figure 112014010513717-pat00523
,
Figure 112014010513717-pat00524
,
Figure 112014010513717-pat00525
)을 산출한다.
단계11에서는 위에서 언급된 수학식 21, 22 및 23에 의하여 또 다른 한 쌍의 중간값인 (
Figure 112014010513717-pat00526
,
Figure 112014010513717-pat00527
,
Figure 112014010513717-pat00528
)을 산출한다.
단계12에서는 수학식 39 및 40에 의하여 중간값
Figure 112014010513717-pat00529
Figure 112014010513717-pat00530
를 산출한다.
Figure 112014010513717-pat00531
Figure 112014010513717-pat00532
단계13에서는 수학식 41 및 42에 의하여 CRT 연산을 수행하여 중간 값 S 및 S'를 산출한다.
Figure 112014010513717-pat00533
Figure 112014010513717-pat00534
단계14에서는 수학식 43에 의하여 중간 값
Figure 112014010513717-pat00535
를 산출한다.
Figure 112014010513717-pat00536
다음으로, 단계15의 판단 결과
Figure 112014010513717-pat00537
=
Figure 112014010513717-pat00538
인 경우에, 단계16에서는 수학식 44에 의하여 출력 S를 산출한다.
Figure 112014010513717-pat00539
이와 같이, 단계15의 if문이 스킵되는 오류 주입 공격이 수행되더라도 각 단계 연산 중에 오류가 들어가게 되면 오류 확산을 통해서 오류가 주입된 결과 값을 출력한다. 따라서, 공격자는 이러한 오류가 주입된 결과 값을 사용해서는 비밀 값을 찾을 수 없다.
예로서, 공격자가 도 10에 도시된 알고리즘의 단계3에서
Figure 112014010513717-pat00540
를 변형시키면, 오류가 확산된
Figure 112014010513717-pat00541
Figure 112014010513717-pat00542
는 수학식 45 및 46과 같이 연산된다.
Figure 112014010513717-pat00543
Figure 112014010513717-pat00544
따라서,
Figure 112014010513717-pat00545
에서 발생된 오류가 제1파라미터
Figure 112014010513717-pat00546
및 제2파라미터
Figure 112014010513717-pat00547
로 확산된다는 사실을 알 수 있다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
다른 예로서, 공격자가 도 10에 도시된 알고리즘의 단계3에서
Figure 112014010513717-pat00548
를 변형시키면, 오류가 확산된
Figure 112014010513717-pat00549
Figure 112014010513717-pat00550
는 수학식 47 및 48과 같이 연산된다.
Figure 112014010513717-pat00551
Figure 112014010513717-pat00552
따라서,
Figure 112014010513717-pat00553
에서 발생된 오류가 제1파라미터
Figure 112014010513717-pat00554
및 제2파라미터
Figure 112014010513717-pat00555
로 확산된다는 사실을 알 수 있다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서
Figure 112014010513717-pat00556
또는
Figure 112014010513717-pat00557
를 변형시키면, 오류는 중간값들
Figure 112014010513717-pat00558
,
Figure 112014010513717-pat00559
,
Figure 112014010513717-pat00560
Figure 112014010513717-pat00561
로 함께 확산된다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서 p 또는 q를 변형시키면, 오류는 중간값들 p' 및 q'로 함께 확산된다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서 p' 또는 q'를 변형시키면, 오류는 중간값들
Figure 112014010513717-pat00562
,
Figure 112014010513717-pat00563
,
Figure 112014010513717-pat00564
,
Figure 112014010513717-pat00565
등으로 함께 확산된다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서
Figure 112014010513717-pat00566
또는
Figure 112014010513717-pat00567
를 변형시키면, 오류는 중간값들
Figure 112014010513717-pat00568
Figure 112014010513717-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 112014010513717-pat00570
로부터 분할된 제1A블록 정보
Figure 112014010513717-pat00571
에 대한 제1모듈러 지수승 연산이 수행되고, T2 구간에서는 제2파라미터 정보
Figure 112014010513717-pat00572
로부터 분할된 제2A블록 정보
Figure 112014010513717-pat00573
에 대한 제2모듈러 지수승 연산이 수행되고, T3 구간에서는 제1파라미터 정보
Figure 112014010513717-pat00574
로부터 분할된 제1B블록 정보
Figure 112014010513717-pat00575
에 대한 제3모듈러 지수승 연산이 수행되고, T4 구간에서는 제2파라미터 정보
Figure 112014010513717-pat00576
로부터 분할된 제2B블록 정보
Figure 112014010513717-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 연산에 기초하여 암호화 처리 결과를 산출하는 단계를 포함하고,
    상기 모듈러 지수승 연산을 수행하는 단계는 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 2개의 블록들로 분할하고, 분할된 블록 단위로 중간 연산 정보들 및 이전 블록에서 연산된 정보들 중 적어도 하나를 이용하여 다음 블록에 대한 모듈러 지수승 연산을 수행하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  2. 제1항에 있어서, 상기 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계는
    Figure 112014010513717-pat00578
    Figure 112014010513717-pat00579
    연산에 기초하여 생성되는 중간 연산 정보
    Figure 112014010513717-pat00580
    Figure 112014010513717-pat00581
    를 각각 제1파라미터 정보 및 제2파라미터 정보로서 결정하거나, 상기
    Figure 112014010513717-pat00582
    Figure 112014010513717-pat00583
    로부터 각각 파생되는 중간 연산 정보들을 제1파라미터 정보 및 제2파라미터 정보로서 결정하고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  3. 제1항에 있어서, 상기 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계는
    Figure 112014010513717-pat00584
    Figure 112014010513717-pat00585
    연산에 기초하여 중간 연산 정보
    Figure 112014010513717-pat00586
    Figure 112014010513717-pat00587
    를 산출하는 단계; 및
    상기 중간 연산 정보
    Figure 112014010513717-pat00588
    Figure 112014010513717-pat00589
    를 함께 이용하여 상기 중간 연산 정보
    Figure 112014010513717-pat00590
    Figure 112014010513717-pat00591
    로부터 각각 파생되는 제1파라미터 정보
    Figure 112014010513717-pat00592
    및 제2파라미터 정보
    Figure 112014010513717-pat00593
    를 산출하는 단계를 포함하고,
    상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  4. 삭제
  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 112014010513717-pat00594
    로부터
    Figure 112014010513717-pat00595
    연산에 기초하여 상기 제1A블록 정보
    Figure 112014010513717-pat00596
    를 산출하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  7. 제5항에 있어서, 상기 제2A블록 정보를 추출하는 단계는 n비트 길이의 상기 제2파라미터 정보
    Figure 112014010513717-pat00597
    로부터
    Figure 112014010513717-pat00598
    연산에 기초하여 상기 제2A블록 정보
    Figure 112014010513717-pat00599
    를 산출하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  8. 제5항에 있어서, 상기 제1모듈러 지수승 연산을 수행하는 단계는
    Figure 112014010513717-pat00600
    Figure 112014010513717-pat00601
    연산 및
    Figure 112014010513717-pat00602
    Figure 112014010513717-pat00603
    연산에 기초하여 상기 제1파라미터 정보
    Figure 112014010513717-pat00604
    로부터 분할된 상기 제1A블록 정보
    Figure 112014010513717-pat00605
    에 대한 모듈러 지수승 연산 결과인 제1연산 값
    Figure 112014010513717-pat00606
    및 제2연산 값
    Figure 112014010513717-pat00607
    을 산출하고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수임을 특징으로 하는 CRT-RSA 암호화 방법.
  9. 제5항에 있어서, 상기 제2모듈러 지수승 연산을 수행하는 단계는
    Figure 112014010513717-pat00608
    Figure 112014010513717-pat00609
    Figure 112014010513717-pat00610
    연산 및
    Figure 112014010513717-pat00611
    Figure 112014010513717-pat00612
    Figure 112014010513717-pat00613
    연산에 기초하여 상기 제2파라미터 정보
    Figure 112014010513717-pat00614
    로부터 분할된 상기 제2A블록 정보
    Figure 112014010513717-pat00615
    에 대한 모듈러 지수승 연산 결과인 제4연산 값
    Figure 112014010513717-pat00616
    및 제5연산 값
    Figure 112014010513717-pat00617
    을 산출하고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, q는 소수임을 특징으로 하는 CRT-RSA 암호화 방법.
  10. 제5항에 있어서, 상기 제1B블록 정보를 추출하는 단계는 n비트 길이의 상기 제1파라미터 정보
    Figure 112014010513717-pat00618
    로부터
    Figure 112014010513717-pat00619
    =
    Figure 112014010513717-pat00620
    연산에 기초하는 상기 제1B블록 정보
    Figure 112014010513717-pat00621
    를 산출하며,
    상기
    Figure 112014010513717-pat00622
    Figure 112014010513717-pat00623
    Figure 112014010513717-pat00624
    에 기초하여 결정되고, 상기
    Figure 112014010513717-pat00625
    Figure 112014010513717-pat00626
    는 각각
    Figure 112014010513717-pat00627
    Figure 112014010513717-pat00628
    연산에 기초하여 결정되고, 상기
    Figure 112014010513717-pat00629
    는 상기 제1A블록 정보 및 중간 연산 정보에 기초하여 결정되며, 상기
    Figure 112014010513717-pat00630
    는 제2파라미터 정보이고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  11. 제5항에 있어서, 상기 제2B블록 정보를 추출하는 단계는 n비트 길이의 상기 제2파라미터 정보
    Figure 112014010513717-pat00631
    로부터
    Figure 112014010513717-pat00632
    =
    Figure 112014010513717-pat00633
    연산에 기초하여 상기 제2B블록 정보
    Figure 112014010513717-pat00634
    를 산출하며,
    상기
    Figure 112014010513717-pat00635
    Figure 112014010513717-pat00636
    Figure 112014010513717-pat00637
    에 기초하여 결정되고, 상기
    Figure 112014010513717-pat00638
    Figure 112014010513717-pat00639
    는 각각
    Figure 112014010513717-pat00640
    Figure 112014010513717-pat00641
    연산에 기초하여 결정되고, 상기
    Figure 112014010513717-pat00642
    는 상기 제1A블록 정보 및 중간 연산 정보에 기초하여 결정되며, 상기
    Figure 112014010513717-pat00643
    는 제1파라미터 정보이고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
  12. 제5항에 있어서, 상기 제3모듈러 지수승 연산을 수행하는 단계는 상기 제1A블록 정보
    Figure 112014010513717-pat00644
    에 대한 모듈러 지수승 연산 정보를 이용하여 상기 제1B블록 정보
    Figure 112014010513717-pat00645
    에 대한 모듈러 지수승 연산을 수행하여
    Figure 112014010513717-pat00646
    연산 및
    Figure 112014010513717-pat00647
    연산 결과에 상응하는 제7연산 값
    Figure 112014010513717-pat00648
    및 제8연산 값
    Figure 112014010513717-pat00649
    을 산출하고, 상기
    Figure 112014010513717-pat00650
    는 제1파라미터 정보이고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수임을 특징으로 하는 CRT-RSA 암호화 방법.
  13. 제5항에 있어서, 상기 제4모듈러 지수승 연산을 수행하는 단계는 상기 제2A블록 정보
    Figure 112014010513717-pat00651
    에 대한 모듈러 지수승 연산 정보를 이용하여 상기 제2B블록 정보
    Figure 112014010513717-pat00652
    에 대한 모듈러 지수승 연산을 수행하여
    Figure 112014010513717-pat00653
    연산 및
    Figure 112014010513717-pat00654
    Figure 112014010513717-pat00655
    연산 결과에 상응하는 제10연산 값
    Figure 112014010513717-pat00656
    및 제11연산 값
    Figure 112014010513717-pat00657
    을 산출하고, 상기
    Figure 112014010513717-pat00658
    는 제2파라미터 정보이고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, q는 소수임을 특징으로 하는 CRT-RSA 암호화 방법.
  14. 제1항에 있어서, 상기 암호화 처리 결과를 산출하는 단계는
    상기 모듈러 지수승 연산 결과를 이용한
    Figure 112014010513717-pat00659
    Figure 112014010513717-pat00660
    연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출하는 단계; 및
    상기 제13연산 값 S와 제14연산 값 S'를 이용한 비교 연산에 따른 판정에 기초하여 암호화 처리된 결과를 출력하는 단계를 포함하며,
    상기
    Figure 112014010513717-pat00661
    Figure 112014010513717-pat00662
    는 각각 제1파라미터
    Figure 112014010513717-pat00663
    에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이고, 상기
    Figure 112014010513717-pat00664
    Figure 112014010513717-pat00665
    는 각각 제2파라미터
    Figure 112014010513717-pat00666
    에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이며, 상기 m은 메시지이고, d는 비밀키이고, N은 공개키임을 특징으로 하는 CRT-RSA 암호화 방법.
  15. 암호화 처리에 필요한 입력 정보들 및 암호화 연산 처리 과정에서 생성되는 중간 연산 정보들을 저장하는 레지스터 블록;
    상기 레지스터 블록으로부터 읽어낸 입력 정보들을 적용하여 모듈러 지수승 연산 처리에서의 메시지에 대한 지수승 값을 결정하는 제1파라미터 정보 및 제2파라미터 정보를 포함하는 중간 연산 정보들을 산출하는 중간 값 연산부;
    상기 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할하는 정보 분할 처리부;
    상기 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 상기 중간 연산 정보들을 적용하여 복수의 라운드에 거쳐 모듈러 지수승 연산 처리를 수행하는 모듈러 곱셈부;
    상기 모듈러 지수승 연산 처리 결과를 이용하여 CRT 연산을 수행하는 CRT 연산부; 및
    상기 CRT 연산 결과에 기초하여 암호화 처리 결과를 산출하는 암호화 결과 산출부를 포함하고,
    상기 모듈러 곱셈부는 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 2개의 블록들로 분할하고, 분할된 블록 단위로 상기 중간 연산 정보들 및 이전 블록에서 연산된 정보들 중 적어도 하나를 이용하여 다음 블록에 대한 상기 모듈러 지수승 연산 처리를 수행하는 것을 특징으로 하는 CRT-RSA 암호화 장치.
  16. 제15항에 있어서, 상기 제1파라미터 정보 및 제2파라미터 정보는 각각
    Figure 112014010513717-pat00667
    Figure 112014010513717-pat00668
    연산에 기초하여 생성되는
    Figure 112014010513717-pat00669
    Figure 112014010513717-pat00670
    로 결정하거나, 상기
    Figure 112014010513717-pat00671
    Figure 112014010513717-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 연산에 기초하여 암호화 처리 결과를 산출하는 단계를 포함하고,
    상기 모듈러 지수승 연산을 수행하는 단계는 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 2개의 블록들로 분할하고, 분할된 블록 단위로 중간 연산 정보들 및 이전 블록에서 연산된 정보들 중 적어도 하나를 이용하여 다음 블록에 대한 모듈러 지수승 연산을 수행하도록 하는 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 KR20150091691A (ko) 2015-08-12
KR102180029B1 true 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)

Families Citing this family (4)

* 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 普威达有限公司 计算机实现的隐私工程系统和方法
WO2022061188A1 (en) * 2020-09-17 2022-03-24 X-Logos, LLC Methods and systems for distributed computation within a fully homomorphic encryption scheme using p-adic numbers
KR102331835B1 (ko) * 2020-10-28 2021-12-01 국민대학교산학협력단 오류 주입 공격 시스템

Family Cites Families (16)

* 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
KR100388059B1 (ko) * 2000-12-23 2003-06-18 한국전자통신연구원 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법
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) 기반의 오류 공격에 대응하는 방법 및 그 장치
KR100431047B1 (ko) * 2002-02-26 2004-05-12 주홍정보통신주식회사 Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치
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

Also Published As

Publication number Publication date
US20150222434A1 (en) 2015-08-06
US9571281B2 (en) 2017-02-14
KR20150091691A (ko) 2015-08-12

Similar Documents

Publication Publication Date Title
Aldaya et al. Cache-timing attacks on RSA key generation
US8781111B2 (en) System and methods for side-channel attack prevention
Li et al. SBAP: Software-based attestation for peripherals
WO2016113886A1 (ja) 乱数拡大装置、乱数拡大方法及び乱数拡大プログラム
EP3930252A1 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
US8681976B2 (en) System and method for device dependent and rate limited key generation
KR102180029B1 (ko) Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체
CA2864227C (en) Lightweight stream cipher cryptosystems
KR102132261B1 (ko) 비교 연산이 필요없이 최종 모듈러 감소를 하는 몽고메리 곱셈 방법 및 곱셈기
US11328097B2 (en) Encryption circuit for performing virtual encryption operations
TW200939115A (en) Representation change of a point on an elliptic curve
US9405729B2 (en) Cryptographic method comprising a modular exponentiation operation
US8311212B2 (en) Method of processing data protected against attacks by generating errors and associated device
US11502836B2 (en) Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product
JP2009505148A (ja) 暗号化演算における反転操作を行うための回路配置及び方法
US20230185905A1 (en) Protection of authentication tag computation against power and electromagnetic side-channel attacks
EP3758288B1 (en) Digital signature verification engine for reconfigurable circuit devices
US20220085993A1 (en) Reconfigurable secret key splitting side channel attack resistant rsa-4k accelerator
KR20090004626A (ko) 공개키 암호화 연산에서의 윈도우의 크기를 변경하는 방법
US11792004B2 (en) Polynomial multiplication for side-channel protection in cryptography
KR102425475B1 (ko) 모듈러 곱셈 방법
KR101685354B1 (ko) 모듈러 연산기와 이를 포함하는 장치들
KR101636809B1 (ko) 타원 곡선 암호용 이진체의 감산 방법
CN105099684A (zh) 一种模幂运算的处理方法、装置及密码设备
CN113595730A (zh) 一种用于工程中生成ecc曲线的处理方法和装置

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