KR20150091691A - Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체 - Google Patents
Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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 암호화 방법 및 장치와 이를 기록한 저장 매체에 관한 것이다.
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파라미터 정보를 산출하는 단계는 및 연산에 기초하여 생성되는 중간 연산 정보 및 를 각각 제1파라미터 정보 및 제2파라미터 정보로서 결정하거나, 상기 및 로부터 각각 파생되는 중간 연산 정보들을 제1파라미터 정보 및 제2파라미터 정보로서 결정하고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계는 및 연산에 기초하여 중간 연산 정보 및 를 산출하는 단계 및, 상기 중간 연산 정보 및 를 함께 이용하여 상기 중간 연산 정보 및 로부터 각각 파생되는 제1파라미터 정보 및 제2파라미터 정보 를 산출하는 단계를 포함하고, 상기 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모듈러 지수승 연산을 수행하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1모듈러 지수승 연산을 수행하는 단계는 연산 및 연산에 기초하여 상기 제1파라미터 정보 로부터 분할된 상기 제1A블록 정보 에 대한 모듈러 지수승 연산 결과인 제1연산 값 및 제2연산 값 을 산출하고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1모듈러 지수승 연산을 수행하는 단계는 연산에 기초하여 제3연산 값 을 더 산출하며, 상기 는 s, p 및 q를 이용한 연산에 의하여 상기 p로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제2모듈러 지수승 연산을 수행하는 단계는 연산 및 연산에 기초하여 상기 제2파라미터 정보 로부터 분할된 상기 제2A블록 정보 에 대한 모듈러 지수승 연산 결과인 제4연산 값 및 제5연산 값 을 산출하고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, q는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제2모듈러 지수승 연산을 수행하는 단계는 연산에 기초하여 제6연산 값 을 더 산출하며, 상기 는 s, p 및 q를 이용한 연산에 의하여 상기 q로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제1B블록 정보를 추출하는 단계는 n비트 길이의 상기 제1파라미터 정보 로부터 = 연산에 기초하는 상기 제1B블록 정보 를 산출하며, 상기 는 및 에 기초하여 결정되고, 상기 및 는 각각 및 연산에 기초하여 결정되고, 상기 는 상기 제1A블록 정보 및 중간 연산 정보에 기초하여 결정되며, 상기 는 제2파라미터 정보이고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제2B블록 정보를 추출하는 단계는 n비트 길이의 상기 제2파라미터 정보 로부터 = 연산에 기초하여 상기 제2B블록 정보 를 산출하며, 상기 는 및 에 기초하여 결정되고, 상기 및 는 각각 및 연산에 기초하여 결정되고, 상기 는 상기 제1A블록 정보 및 중간 연산 정보에 기초하여 결정되며, 상기 는 제1파라미터 정보이고, 상기 d는 비밀키이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제3모듈러 지수승 연산을 수행하는 단계는 상기 제1A블록 정보 에 대한 모듈러 지수승 연산 정보를 이용하여 상기 제1B블록 정보 에 대한 모듈러 지수승 연산을 수행하여 연산 및 연산 결과에 상응하는 제7연산 값 및 제8연산 값 을 산출하고, 상기 는 제1파라미터 정보이고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제3모듈러 지수승 연산을 수행하는 단계는 연산에 기초하여 제9연산 값 을 더 산출하며, 상기 는 s, p 및 q를 이용한 연산에 의하여 상기 p로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=p??q인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제4모듈러 지수승 연산을 수행하는 단계는 상기 제2A블록 정보 에 대한 모듈러 지수승 연산 정보를 이용하여 상기 제2B블록 정보 에 대한 모듈러 지수승 연산을 수행하여 연산 및 연산 결과에 상응하는 제10연산 값 및 제11연산 값 을 산출하고, 상기 는 제2파라미터 정보이고, 상기 m은 암호화하는 메시지이고, s는 랜덤한 수이고, q는 소수로 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 제4모듈러 지수승 연산을 수행하는 단계는 연산에 기초하여 제12연산 값 을 더 산출하며, 상기 는 s, p 및 q를 이용한 연산에 의하여 상기 q로부터 파생되는 중간 연산 정보이고, 상기 s는 랜덤한 수이고, 상기 p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족하도록 결정할 수 있다.
본 발명의 실시 예에 따르면, 상기 암호화 처리 결과를 산출하는 단계는 상기 모듈러 지수승 연산 결과를 이용한 및 연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출하는 단계 및, 상기 제13연산 값 S와 제14연산 값 S'를 이용한 비교 연산에 따른 판정에 기초하여 암호화 처리된 결과를 출력하는 단계를 포함하며, 상기 및 는 각각 제1파라미터 에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이고, 상기 및 는 각각 제2파라미터 에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이며, 상기 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로부터 파생되는 와 )를 각각 분할하여 암호화 처리를 수행함으로써, 암호화 중간 연산 과정에서 오류 확산을 넓게 유도할 수 있다. 이로 인하여, 오류 주입 공격에 의해서도 공격자가 비밀 값을 알아낼 수 없으므로 정보를 안전하게 보호할 수 있는 효과가 발생된다.
그리고, 본 발명에서 제안하는 파이스텔(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 알고리즘이 채용된 장치에서의 암호화 처리 과정에서의 소비 전력 분포를 보여주는 도면이다.
도 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로부터 파생되는 와 )를 각각 분할하여 암호화 처리하는 방식이다. 예로서, 비밀 값인 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 알고리즘에서의 입력 정보들 및 및 단계 1~17에서 연산되는 중간 연산 정보들이 저장될 수 있다. 여기에서, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 그리고, 및 는 각각 및 연산에 기초하여 생성되는 정보들이고, d는 비밀키이다.
중간 값 연산부(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에서의 중간 연산 정보들 , , , 을 연산할 수 있다.
다른 예로서, 중간 값 연산부(120-2)는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 2, 3, 6, 8, 12, 14에 대한 연산을 수행하고, 연산 결과를 중간 연산 정보들로서 산출할 수 있다. 또한, 중간 값 연산부(120-2)는 도 10에 도시된 CRT-RSA 알고리즘의 단계 5, 4, 10, 11에서의 중간 연산 정보들 , , , 을 연산할 수 있다.
정보 분할 처리부(120-3)는 모듈러 지수승 연산 처리에서의 메시지에 대한 지수승 값을 결정하는 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할 처리한다. 도 8 또는 도 10에 도시된 CRT-RSA 알고리즘에서 제1파라미터 정보는 이고, 제2파라미터 정보는 이다. 예로서, 제1파라미터 정보 및 제2파라미터 정보 를 각각 2개의 블록으로 분할 처리할 수 있다. 예로서, 제1파라미터 정보 및 제2파라미터 정보 를 각각 동일한 사이즈를 갖는 2개 블록으로 분할 처리할 수 있다.
예로서, 정보 분할 처리부(120-3)는 도 9에 도시된 CRT-RSA 알고리즘에서의 단계 4 및 9와 같이 제1파라미터 정보 및 제2파라미터 정보 를 각각 복수의 블록으로 분할 처리할 수 있다.
정보 분할 처리부(120-3)는 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 4와 같이, n비트 길이의 제1파라미터 정보 로부터 연산에 기초하여 제1A블록 정보 를 산출할 수 있다.
정보 분할 처리부(120-3)는 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 4와 같이, n비트 길이의 제2파라미터 정보 로부터 연산에 기초하여 제2A블록 정보 를 산출할 수 있다.
정보 분할 처리부(120-3)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 9와 같이, n비트 길이의 제1파라미터 정보 로부터 = 연산에 기초하는 제1B블록 정보 를 산출할 수 있다.
정보 분할 처리부(120-3)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 9와 같이, n비트 길이의 제2파라미터 정보 로부터 = 연산에 기초하여 제2B블록 정보 를 산출할 수 있다.
위와 같은 방식으로, 정보 분할 처리부(120-3)는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 4 및 9와 같이 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할 처리할 수도 있다.
모듈러 곱셈부(120-4)는 제1파라미터 정보 및 제2파라미터 정보 로부터 각각 분할된 블록 단위로 중간 연산 정보들을 적용하여 복수의 라운드에 거쳐 모듈러 지수승 연산 처리를 수행한다. 예로서, 모듈러 지수승 연산 처리에는 도 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와 같이, 연산 및 연산에 기초하여 제1파라미터 정보 로부터 분할된 제1A블록 정보 에 대한 모듈러 지수승 연산 결과인 제1연산 값 및 제2연산 값 을 산출할 수 있다.
모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 7과 같이, 연산 및 연산에 기초하여 제2파라미터 정보 로부터 분할된 제2A블록 정보 에 대한 모듈러 지수승 연산 결과인 제4연산 값 및 제5연산 값 을 산출할 수 있다.
모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 10과 같이, 제1B블록 정보 에 대한 모듈러 지수승 연산을 수행하여 연산 및 연산 결과에 상응하는 제7연산 값 및 제8연산 값 을 산출할 수 있다. 이 때, 제1A블록 정보 에 대한 모듈러 지수승 연산 정보가 이용된다.
모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 11과 같이, 제2B블록 정보 에 대한 모듈러 지수승 연산을 수행하여 연산 및 연산 결과에 상응하는 제10연산 값 및 제11연산 값 을 산출할 수 있다. 이 때, 제2A블록 정보 에 대한 모듈러 지수승 연산 정보가 이용된다.
위와 같은 방식으로, 모듈러 곱셈부(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과 같이, 및 연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출할 수 있다.
다른 예로서, 모듈러 곱셈부(120-4)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 13과 같이, 및 연산에 기초하여 제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와 같이, 비교 판단 처리를 수행할 수 있다. 예로서, 인 것으로 판단되는 경우에 암호화 처리에 오류가 발생된 것으로 판정한다. 도 8의 단계 15에서 오류가 발생되지 않은 것으로 판정되면, 암호화 결과 산출부(120-6)는 단계 16과 같은 연산 처리를 실행하여 암호화된 결과 S를 연산하여 출력한다.
암호화 결과 산출부(120-6)는 레지스터 블록(120-1)에 저장된 입력 정보들 및 중간 연산 정보들을 이용하여 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 15와 같이, 비교 판단 처리를 수행할 수 있다. 예로서, 인 것으로 판단되는 경우에 암호화 처리에 오류가 발생된 것으로 판정한다. 도 10의 단계 15에서 오류가 발생되지 않은 것으로 판정되면, 암호화 결과 산출부(120-6)는 단계 16과 같은 연산 처리를 실행하여 암호화된 결과 S를 연산하여 출력할 수도 있다.
다음으로, 도 1의 전자 장치(100)에서 수행되는 본 발명의 기술적 사상에 따른 CRT-RSA 암호화 방법에 대하여 도 3의 흐름도를 참조하여 설명하기로 한다.
우선, 전자 장치(100)는 공개키로부터 산출된 서로 다른 2개의 소수 각각에 대한 오일러 파이 함수 값으로 비밀키를 모듈러 연산한 결과에 기초하여 모듈러 지수승 연산 처리에 이용될 제1파라미터 정보 및 제2파라미터 정보를 산출하는 오퍼레이션을 수행한다(S110).
예로서, 및 연산에 기초하여 생성되는 및 를 각각 제1파라미터 정보 및 제2파라미터 정보로서 결정할 수 있다. 여기에서, d는 비밀키이고, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다.
다른 예로서, 및 로부터 각각 파생되는 중간 연산 정보들인 및 를 제1파라미터 정보 및 제2파라미터 정보로서 결정할 수도 있다. 여기에서, 는 및 를 함께 이용하여 로부터 파생되는 중간 연산 정보로 결정하고, 는 및 를 함께 이용하여 로부터 파생되는 중간 연산 정보로 결정할 수 있다.
예로서, 및 는 도 8에 도시된 CRT-RSA 알고리즘의 단계 3에서와 같은 연산 처리에 의해 산출될 수 있다. 즉, = 및 = 연산에 의해 및 를 결정할 수 있다. 다른 예로서, 및 는 도 10에 도시된 CRT-RSA 알고리즘의 단계 3에서와 같은 연산 처리에 의해 산출될 수도 있다. 본 발명에서 및 는 및 로부터 다양하게 변형시켜 산출할 수 있다.
다음으로, 전자 장치(100)는 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 이전 블록에서 연산된 정보에 기초하여 다음 블록에 대한 모듈러 지수승 연산 처리를 하는 오퍼레이션을 수행한다(S120). 예로서, 제1파라미터 정보 및 제2파라미터 정보를 각각 2개의 블록들로 분할하고, 분할된 블록 단위로 중간 연산 정보들 및 이전 블록에서 연산된 정보들 중 적어도 하나를 이용하여 다음 블록에 대한 모듈러 지수승 연산을 수행할 수 있다. 예로서, 제1파라미터 정보 및 제2파라미터 정보를 각각 동일한 사이즈를 갖는 2개 블록으로 분할할 수 있다.
다음으로, 전자 장치(100)는 모듈러 지수승 연산 결과를 이용한 CRT 연산에 기초하여 암호화 처리 결과를 산출하는 오퍼레이션을 수행한다(S130). 예로서, 암호화 처리 결과를 산출하는 오퍼레이션에서 비교 판단 처리를 수행하여 오류를 검출할 수도 있다.
도 4는 도 3에 도시된 제1,2파라미터 정보 산출 프로세스(S110)에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
전자 장치(100)는 입력 정보들을 이용하여 및 연산에 기초하여 중간 연산 정보 및 를 산출하는 오퍼레이션을 수행한다(S110-1). 여기에서, d는 비밀키이고, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다.
전자 장치(100)는 중간 연산 정보 및 를 함께 이용하여 중간 연산 정보 및 로부터 각각 파생되는 제1파라미터 정보 및 제2파라미터 정보 를 산출하는 오퍼레이션을 수행한다(S110-2). 예로서, 제1파라미터 정보 및 제2파라미터 정보 는 도 8 또는 도 10에 도시된 CRT-RSA 알고리즘에서의 단계 3과 같은 연산식을 이용하여 산출할 수 있다.
도 5는 도 3에 도시된 모듈러 지수승 연산 수행 프로세스(S120)에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
전자 장치(100)는 제1파라미터 정보 의 일부에 해당되는 제1A블록 정보를 추출하는 오퍼레이션을 수행한다(S120-1). 전자 장치(100)는 LEFTB 함수를 이용하여 제1파라미터 정보 로부터 제1A블록 정보를 추출할 수 있다. 예로서, n비트 길이의 제1파라미터 정보 로부터 연산에 기초하여 제1A블록 정보 를 산출할 수 있다.
그리고, 전자 장치(100)는 제2파라미터 정보 의 일부에 해당되는 제2A블록 정보를 추출하는 오퍼레이션을 수행한다(S120-2). 전자 장치(100)는 LEFTB 함수를 이용하여 제2파라미터 정보 로부터 제2A블록 정보를 추출할 수 있다. 예로서, n비트 길이의 제2파라미터 정보 로부터 연산에 기초하여 제2A블록 정보 를 산출할 수 있다.
다음으로, 전자 장치(100)는 제1A블록 정보에 기초하여 제1모듈러 지수승 연산을 수행한다(S120-3). 예로서, 연산 및 연산에 기초하여 제1파라미터 정보 로부터 분할된 제1A블록 정보 에 대한 모듈러 지수승 연산 결과인 제1연산 값 및 제2연산 값 을 산출할 수 있다. 여기에서, m은 암호화하는 메시지이고, s는 랜덤한 수이고, p는 소수이다. 또한, 연산에 기초하여 제3연산 값 을 더 산출할 수 있다. 여기에서, 는 입력 정보 s, p 및 q를 이용한 연산에 의하여 p로부터 파생되는 중간 연산 정보이고, s는 랜덤한 수이고, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 예로서, 는 연산에 의하여 결정되고, 는 연산에 의하여 결정될 수 있다.
그리고, 전자 장치(100)는 제2A블록 정보에 기초하여 제2모듈러 지수승 연산을 수행한다(S120-4). 예로서, 연산 및 연산에 기초하여 제2파라미터 정보 로부터 분할된 제2A블록 정보 에 대한 모듈러 지수승 연산 결과인 제4연산 값 및 제5연산 값 을 산출할 수 있다. 또한, 연산에 기초하여 제6연산 값 을 더 산출할 수 있다. 여기에서, 는 s, p 및 q를 이용한 연산에 의하여 q로부터 파생되는 중간 연산 정보이다. 예로서, 는 연산에 의하여 결정되고, 는 연산에 의하여 결정될 수 있다.
다음으로, 전자 장치(100)는 제1파라미터 정보 로부터 제1A블록 정보 를 제외한 나머지 제1B블록 정보를 추출하는 오퍼레이션을 수행한다(S120-5). 예로서, n비트 길이의 제1파라미터 정보 로부터 = 연산에 기초하는 제1B블록 정보 를 산출할 수 있다. 여기에서, 는 및 에 기초하여 결정되고, 및 는 각각 및 연산에 기초하여 결정되고, 는 제1A블록 정보 및 중간 연산 정보에 기초하여 결정된다. 예로서, 는 의 연산 결과이고, 는 = 연산에 기초하여 결정되고, 는 연산에 기초하여 결정될 수 있다.
그리고, 전자 장치(100)는 제2파라미터 정보 로부터 제2A블록 정보 를 제외한 나머지 제2B블록 정보를 추출하는 오퍼레이션을 수행한다(S120-6). 예로서, n비트 길이의 제2파라미터 정보 로부터 = 연산에 기초하여 제2B블록 정보 를 산출할 수 있다. 여기에서, 는 및 에 기초하여 결정되고, 및 는 각각 및 연산에 기초하여 결정되고, 는 제1A블록 정보 및 중간 연산 정보에 기초하여 결정될 수 있다. 예로서, 는 의 연산 결과이고, 는 = 연산에 기초하여 결정되고, 는 = 연산에 기초하여 결정될 수 있다.
다음으로, 전자 장치(100)는 1A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 제1B블록 정보에 기초하여 제3모듈러 지수승 연산을 수행한다(S120-7). 예로서, 제1A블록 정보 에 대한 모듈러 지수승 연산 정보인 제1연산 값 및 제2연산 값 를 이용한 제1B블록 정보 에 대한 모듈러 지수승 연산을 수행하여 연산 및 연산 결과에 상응하는 제7연산 값 및 제8연산 값 을 산출할 수 있다. 또한, 연산에 기초하여 제9연산 값 을 더 산출할 수 있다.
다음으로, 전자 장치(100)는 2A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 제2B블록 정보에 기초하여 제4모듈러 지수승 연산을 수행한다(S120-8). 예로서, 제2A블록 정보 에 대한 모듈러 지수승 연산 정보인 제4연산 값 및 제5연산 값 을 이용한 제2B블록 정보 에 대한 모듈러 지수승 연산을 수행하여 연산 및 연산 결과에 상응하는 제10연산 값 및 제11연산 값 을 산출할 수 있다. 또한, 연산에 기초하여 제12연산 값 을 더 산출할 수 있다.
도 6은 도 3에 도시된 암호화 처리 결과 산출 프로세스(S130)에 대한 세부 동작을 예시적으로 보여주는 흐름도이다.
전자 장치(100)는 모듈러 지수승 연산 결과를 이용한 및 연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출한다(S130-1). 여기에서, 및 는 각각 제1파라미터 에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이고, 및 는 각각 제2파라미터 에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이다.
다음으로, 전자 장치(100)는 제13연산 값 S와 제14연산 값 S'를 이용한 비교 연산에 따른 판정에 기초하여 암호화 처리된 결과를 출력한다(S130-2). 입력 정보들 및 중간 연산 정보들을 이용하여 도 8에 도시된 CRT-RSA 알고리즘에서의 단계 15와 같이, 비교 판단 처리를 수행할 수 있다. 예로서, 인 것으로 판단되는 경우에 암호화 처리에 오류가 발생된 것으로 판정할 수 있다. 도 8의 단계 15에서 오류가 발생되지 않은 것으로 판정되면, 암호화 결과 산출부(120-6)는 단계 16과 같은 연산 처리를 실행하여 암호화된 결과 S를 연산하여 출력할 수 있다.
도 7은 본 발명의 기술적 사상에 따른 CRT-RSA 암호화 처리 방법의 주요 과정을 개념적으로 보여주는 도면이다.
도 7은 파이스텔 구조를 이용하여 CRT-RSA 암호화 처리하는 과정을 개념적으로 보여준다.
오퍼레이션 S706A에서는 제1A블록 정보 , 중간 값 및 제2파라미터 정보 에 기초하여 제1B블록 정보 를 산출한다. 이에 따라서, 제1파라미터 정보 또는 제2파라미터 정보 중의 어느 하나에 오류가 주입되더라도 오류는 제1B블록 정보 로 확산된다. 또한, 중간 값 를 연산하는데 이용되는 초기 값 또는 중간 값들에 오류가 주입되더라도 오류는 제1B블록 정보 로 확산된다.
오퍼레이션 S706B에서는 제2A블록 정보 , 중간 값 및 제1파라미터 정보 에 기초하여 제2B블록 정보 를 산출한다. 이에 따라서, 제1파라미터 정보 또는 제2파라미터 정보 중의 어느 하나에 오류가 주입되더라도 오류는 제2B블록 정보 로 확산된다. 또한, 중간 값 를 연산하는데 적용되는 초기 값 또는 중간 값들에 오류가 주입되더라도 오류는 제2B블록 정보 로 확산된다.
오퍼레이션 S707A에서는 제1A블록 정보 에 대한 모듈러 지수승 연산 정보, 제1B블록 정보 및 초기 값 정보에 기초한 모듈러 지수승 연산에 의하여 또 다른 한 쌍의 중간 값인 (, , )을 산출한다.
오퍼레이션 S707B에서는 제2A블록 정보 에 대한 모듈러 지수승 연산 정보, 제2B블록 정보 및 초기 값 정보에 기초한 모듈러 지수승 연산에 의하여 또 다른 한 쌍의 중간 값인 (, , )을 산출한다.
오퍼레이션 S709A에서는 오퍼레이션 S707A에서 산출된 및 오퍼레이션 S707B에 산출된 를 이용한 CRT 연산에 의하여 중간 값 S를 산출한다. 이에 따라서, 또는 어느 하나를 산출하는 과정에서 오류가 삽입되더라도 오류는 중간 값 S로 확산된다.
오퍼레이션 S709B에서는 오퍼레이션 S707A에서 산출된 및 오퍼레이션 S707B에 산출된 를 이용한 CRT 연산에 의하여 중간 값 S'를 산출한다. 이에 따라서, 또는 어느 하나를 산출하는 과정에서 오류가 삽입되더라도 오류는 중간 값 S'로 확산된다.
오퍼레이션 S712에서는 오퍼레이션 S711의 판정 결과 오류가 발생되지 않은 것으로 판정된 경우에, 중간 값 S 및 S'와 이전에 생성된 다른 중간값들을 이용하여 최종적인 출력 값인 S를 산출한다.
이와 같은, 파이스텔 구조의 CRT-RSA 암호화 처리하는 과정에 의하여 초기 값 또는 중간값에 오류가 삽입되는 경우에, 이후에 진행되는 중간 값 연산 과정 및 출력 값 연산 과정으로 오류가 랜덤하게 확산된다. 이에 따라서, 오퍼레이션 S711을 삭제하더라도 비밀 값인 p 및 q를 알아낼 수 없게 된다.
도 8은 본 발명의 기술적 사상에 따른 CRT-RSA 알고리즘의 일 예를 보여주는 도면이다.
도 8에 도시된 CRT-RSA 알고리즘에서의 입력 정보들은 및 가 되고, 출력 정보는 가 된다. 여기에서, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 그리고, 및 는 각각 및 연산에 기초하여 생성되는 정보이고, d는 비밀키이다.
도 8 및 도 10에 기재된 '&'는 비트단위의 AND 연산 부호를 의미하고, ''는 비트단위의 XOR 연산 부호를 의미하고, '∥'는 연결 심볼(concatenation symbol)이다.
단계5, 7, 10, 11에서 사용되는 PMExp 알고리즘은 전력 분석 공격(Power attack) 및 오류 주입 공격(Fault Attack)을 개선하기 위하여 도 9에 도시된 바와 같은 알고리즘이 적용될 수 있다.
만일, 도 8에 도시된 CRT-RSA 알고리즘에서 오류가 주입되지 않았다면 단계1~ 단계17은 다음과 같이 연산된다.
다음으로, 단계13에서는 수학식 26 및 27에 의하여 CRT 연산을 수행하여 중간 값 S 및 S'를 산출한다.
이와 같이 본 발명에서는 오류 확산을 통한 모듈러스 랜덤 블라인딩 방법을 사용하므로 전력 분석 및 전자파 분석에도 안전하게 적용할 수 있다. 또한, 단계15의 if문이 스킵되는 오류 주입 공격이 수행되더라도 각 단계 연산 중에 오류가 들어가게 되면 오류 확산을 통해서 오류가 주입된 결과 값을 출력한다. 따라서, 공격자는 이러한 오류가 주입된 결과 값을 사용해서는 비밀 값을 찾을 수 없다.
즉, 오류가 주입되는 경우에 중간 연산 과정들에 오류가 확산되게 하여 오류가 주입된 출력 값을 이용하여 비밀 값을 알아낼 수 없게 된다.
도 10은 본 발명의 기술적 사상에 따른 CRT-RSA 알고리즘의 다른 예를 보여주는 도면이다.
도 10에 도시된 CRT-RSA 알고리즘에서의 입력 정보들은 및 가 되고, 출력 정보는 가 된다. 여기에서, p 및 q는 소수이고, 공개키 N은 N=pㆍq인 조건을 만족한다. 그리고, 및 는 각각 및 연산에 기초하여 생성되는 정보이고, d는 비밀키이다.
도 10의 단계5, 7, 10, 11에서 사용되는 PMExp 알고리즘은 전력 분석 공격(Power attack) 및 오류 주입 공격(Fault Attack)을 개선하기 위하여 도 9에 도시된 바와 같은 알고리즘이 적용될 수 있다.
만일, 도 10에 도시된 CRT-RSA 암호화 처리 방법의 알고리즘에서 오류가 주입되지 않았다면 단계1~ 단계17은 다음과 같이 연산된다.
단계13에서는 수학식 41 및 42에 의하여 CRT 연산을 수행하여 중간 값 S 및 S'를 산출한다.
이와 같이, 단계15의 if문이 스킵되는 오류 주입 공격이 수행되더라도 각 단계 연산 중에 오류가 들어가게 되면 오류 확산을 통해서 오류가 주입된 결과 값을 출력한다. 따라서, 공격자는 이러한 오류가 주입된 결과 값을 사용해서는 비밀 값을 찾을 수 없다.
따라서, 에서 발생된 오류가 제1파라미터 및 제2파라미터 로 확산된다는 사실을 알 수 있다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
따라서, 에서 발생된 오류가 제1파라미터 및 제2파라미터 로 확산된다는 사실을 알 수 있다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서 또는 를 변형시키면, 오류는 중간값들 , , 및 로 함께 확산된다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서 p 또는 q를 변형시키면, 오류는 중간값들 p' 및 q'로 함께 확산된다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서 p' 또는 q'를 변형시키면, 오류는 중간값들 , , , 등으로 함께 확산된다. 이로 인하여, 오류가 발생된 암호화 결과 S는 p 및 q에 독립적인 랜덤한 정보가 된다.
또 다른 예로서, 공격자가 도 10에 도시된 알고리즘에서 또는 를 변형시키면, 오류는 중간값들 및 로 함께 확산된다. 이로 인하여, 오류가 발생된 암호화 결과 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파라미터 정보 로부터 분할된 제1A블록 정보 에 대한 제1모듈러 지수승 연산이 수행되고, T2 구간에서는 제2파라미터 정보 로부터 분할된 제2A블록 정보 에 대한 제2모듈러 지수승 연산이 수행되고, T3 구간에서는 제1파라미터 정보 로부터 분할된 제1B블록 정보 에 대한 제3모듈러 지수승 연산이 수행되고, T4 구간에서는 제2파라미터 정보 로부터 분할된 제2B블록 정보 에 대한 제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 : 메모리 장치
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)
- 공개키로부터 산출된 서로 다른 2개의 소수 각각에 대한 오일러 파이 함수 값으로 비밀키를 모듈러 연산한 결과에 기초하여 모듈러 지수승 연산 처리에 이용될 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계;
상기 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 이전 블록에서 연산된 정보에 기초하여 다음 블록에 대한 모듈러 지수승 연산을 수행하는 단계; 및
상기 모듈러 지수승 연산 결과를 이용한 CRT 연산에 기초하여 암호화 처리 결과를 산출하는 단계를 포함함을 특징으로 하는 CRT-RSA 암호화 방법. - 제1항에 있어서, 상기 모듈러 지수승 연산을 수행하는 단계는 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 2개의 블록들로 분할하고, 분할된 블록 단위로 중간 연산 정보들 및 이전 블록에서 연산된 정보들 중 적어도 하나를 이용하여 다음 블록에 대한 모듈러 지수승 연산을 수행하는 것을 특징으로 하는 CRT-RSA 암호화 방법.
- 제1항에 있어서, 상기 모듈러 지수승 연산을 수행하는 단계는
상기 제1파라미터 정보의 일부에 해당되는 제1A블록 정보를 추출하는 단계;
상기 제2파라미터 정보의 일부에 해당되는 제2A블록 정보를 추출하는 단계;
상기 제1A블록 정보에 기초하여 제1모듈러 지수승 연산을 수행하는 단계;
상기 제2A블록 정보에 기초하여 제2모듈러 지수승 연산을 수행하는 단계;
상기 제1파라미터 정보로부터 상기 제1A블록 정보를 제외한 나머지 제1B블록 정보를 추출하는 단계;
상기 제2파라미터 정보에 기초하여 상기 제2A블록 정보를 제외한 나머지 제2B블록 정보를 추출하는 단계;
상기 제1A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 상기 제1B블록 정보에 기초한 제3모듈러 지수승 연산을 수행하는 단계; 및
상기 제2A블록 정보에 기초한 모듈러 지수승 연산 결과를 이용하여 상기 제2B블록 정보에 대한 제4모듈러 지수승 연산을 수행하는 단계를 포함함을 특징으로 하는 CRT-RSA 암호화 방법. - 제1항에 있어서, 상기 암호화 처리 결과를 산출하는 단계는
상기 모듈러 지수승 연산 결과를 이용한 및 연산에 기초하여 제13연산 값 S와 제14연산 값 S'를 산출하는 단계; 및
상기 제13연산 값 S와 제14연산 값 S'를 이용한 비교 연산에 따른 판정에 기초하여 암호화 처리된 결과를 출력하는 단계를 포함하며,
상기 및 는 각각 제1파라미터 에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이고, 상기 및 는 각각 제2파라미터 에 기초한 모듈러 지수승 연산 처리 과정에서 산출되는 값들이며, 상기 m은 메시지이고, d는 비밀키이고, N은 공개키임을 특징으로 하는 CRT-RSA 암호화 방법. - 암호화 처리에 필요한 입력 정보들 및 암호화 연산 처리 과정에서 생성되는 중간 연산 정보들을 저장하는 레지스터 블록;
상기 레지스터 블록으로부터 읽어낸 입력 정보들을 적용하여 모듈러 지수승 연산 처리에서의 메시지에 대한 지수승 값을 결정하는 제1파라미터 정보 및 제2파라미터 정보를 포함하는 중간 연산 정보들을 산출하는 중간 값 연산부;
상기 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할하는 정보 분할 처리부;
상기 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 상기 중간 연산 정보들을 적용하여 복수의 라운드에 거쳐 모듈러 지수승 연산 처리를 수행하는 모듈러 곱셈부;
상기 모듈러 지수승 연산 처리 결과를 이용하여 CRT 연산을 수행하는 CRT 연산부; 및
상기 CRT 연산 결과에 기초하여 암호화 처리 결과를 산출하는 암호화 결과 산출부를 포함함을 특징으로 하는 CRT-RSA 암호화 장치. - 제15항에 있어서, 상기 정보 분할 처리부는 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 동일한 사이즈를 갖는 2개 블록으로 분할하는 것을 특징으로 하는 CRT-RSA 암호화 장치.
- 제15항에 있어서, 상기 모듈러 곱셈부는 상기 제1파라미터 정보에서 분할된 제1A 블록 정보에 기초한 제1모듈러 지수승 연산 처리, 상기 제2파라미터 정보에서 분할된 제2A 블록 정보에 기초한 제2모듈러 지수승 연산 처리, 상기 제1파라미터 정보에서 상기 제1A 블록 정보를 제외한 제1B 블록 정보에 기초한 제3모듈러 지수승 연산 처리 및 상기 제2파라미터 정보에서 상기 제2A 블록 정보를 제외한 제2B 블록 정보에 기초한 제4모듈러 지수승 연산 처리를 순차적으로 수행하며, 상기 제3모듈러 지수승 연산 처리는 상기 제1모듈러 지수승 연산 처리 결과를 이용하여 수행하고, 제4모듈러 지수승 연산 처리는 상기 제2모듈러 지수승 연산 처리 결과를 이용하여 수행함을 특징으로 하는 CRT-RSA 암호화 장치.
- 제15항에 있어서, 상기 중간 값 연산부는 상기 제1파라미터 정보 및 제2파라미터 정보를 각각 복수의 블록으로 분할 처리하는데 적용되는 중간 연산 정보들 및 상기 블록 단위의 모듈러 지수승 연산 처리에 적용되는 중간 연산 정보들 중의 적어도 하나를 산출하는 것을 특징으로 하는 CRT-RSA 암호화 장치.
- 공개키로부터 산출된 서로 다른 2개의 소수 각각에 대한 오일러 파이 함수 값으로 비밀키를 모듈러 연산한 결과에 기초하여 모듈러 지수승 연산 처리에 이용될 제1파라미터 정보 및 제2파라미터 정보를 산출하는 단계;
상기 제1파라미터 정보 및 제2파라미터 정보로부터 각각 분할된 블록 단위로 이전 블록에서 연산된 정보에 기초하여 다음 블록에 대한 모듈러 지수승 연산을 수행하는 단계; 및
상기 모듈러 지수승 연산 결과를 이용한 CRT 연산에 기초하여 암호화 처리 결과를 산출하는 단계를 포함하는 CRT-RSA 암호화 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드가 기록된 컴퓨터 판독가능 저장매체.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102331835B1 (ko) * | 2020-10-28 | 2021-12-01 | 국민대학교산학협력단 | 오류 주입 공격 시스템 |
Families Citing this family (3)
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)
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)
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 |
-
2014
- 2014-02-03 KR KR1020140012212A patent/KR102180029B1/ko active IP Right Grant
- 2014-12-16 US US14/571,442 patent/US9571281B2/en active Active
Patent Citations (2)
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)
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 |