KR101610917B1 - 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템 - Google Patents

암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템 Download PDF

Info

Publication number
KR101610917B1
KR101610917B1 KR1020100020505A KR20100020505A KR101610917B1 KR 101610917 B1 KR101610917 B1 KR 101610917B1 KR 1020100020505 A KR1020100020505 A KR 1020100020505A KR 20100020505 A KR20100020505 A KR 20100020505A KR 101610917 B1 KR101610917 B1 KR 101610917B1
Authority
KR
South Korea
Prior art keywords
montgomery
operand
secret key
bit
multiplication
Prior art date
Application number
KR1020100020505A
Other languages
English (en)
Other versions
KR20110101486A (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 KR1020100020505A priority Critical patent/KR101610917B1/ko
Priority to US13/012,570 priority patent/US8422671B2/en
Publication of KR20110101486A publication Critical patent/KR20110101486A/ko
Application granted granted Critical
Publication of KR101610917B1 publication Critical patent/KR101610917B1/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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 실시 예에 따른 암호 알고리즘의 복호 방법은, 비밀키를 입력받고, 및 암호문에 상기 비밀키의 모듈러 지수승될 때까지, 복수의 몽고메리 곱셈들을 반복하는 것을 포함하고, 상기 반복적인 몽고메리 곱셈들을 수행할 때, 상기 복수의 몽고메리 곱셈들의 순서 혹은 오퍼랜드들의 순서가 임의로 변경된다. 본 발명에 따른 암호 알고리즘의 복호 방법은, 몽고메리 곱셈시 곱셈 순서 및 오퍼랜드 순서를 임의로 변경함으로써, 차분전력분석으로부터 비밀키를 보호하게 된다.

Description

암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템{DECRYPTION METHOD OF CRYPTO ALGORITHM AND CRYPTO SYSTEM HAVING ITS}
암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템에 관한 것이다.
일반적으로 암호 기술의 기본 기능은 비밀성 기능('암호화 기술'이라고도 함)과 인증 기능('기본적인 암호 프로토콜 기술'이라고도 함)으로 나눌 수 있다.
비밀성 기능이란 정보통신망에서 전송되는 중요 데이터의 불법적인 노출을 방지하는 기능으로, 메시지를 제3자가 해독 불가능한 형태로 변형하거나 또는 암호화된 통신문을 해독 가능한 형태로 변환하기 위한 원리,수단, 방법 등을 취급하는 기술 또는 과학을 말한다.
송신자가 수신자에게 보내고 싶은 보통의 메시지를 평문(plaintext)이라 하며, 평문을 제 3 자가 그냥 보아서는 이해할 수 없는 암호문(ciphertext)으로 변환시키는 조작을 암호화(encryption)라고 한다. 역으로 암호문을 본래의 평문으로 바꾸는 조작을 복호화(decryption)라 한다. 복호화는 정당한 수신자가 정당한 절차를 통해 평문을 복원하는 경우를 말하며, 부당한 제 3 자(도청자)가 다른 수단을 통해 평문을 알아내는 것을 암호 해독(cryptanalysis)이라 한다.
또한 암호화/복호화 방식을 암호/복호 알고리즘이라 하며, 암호/복호 알고리
즘에 의한 평문/암호문의 변환을 제어하는 파라미터를 암호화/복호화 키(encryption/decryption key)라 한다. 또한, 암호/복호 알고리즘은 대칭키 암호 알고리즘과 공개키(비대칭키) 암호 알고리즘으로 나누어지며, 미국 표준인 DES(Data Encryption Standard) 및 한국 표준인 SEED는 대표적인 대칭키 암호 알고리즘이며, RSA는 대표적인 공개키 암호 알고리즘이다.
본 발명의 목적은 차분전력분석에 안전한 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템을 제공하는데 있다.
본 발명의 실시 예에 따른 암호 알고리즘의 복호 방법은, 비밀키를 입력받고, 및 암호문에 상기 비밀키의 모듈러 지수승될 때까지, 복수의 몽고메리 곱셈들을 반복하는 것을 포함하고, 상기 반복적인 몽고메리 곱셈들을 수행할 때, 상기 복수의 몽고메리 곱셈들의 순서 혹은 오퍼랜드들의 순서가 임의로 변경된다.
실시 예에 있어서, 상기 비밀키를 입력받은 후, 상기 암호문을 블라인딩시키고, 및 상기 반복적인 몽고메리 곱셈들을 수행한 뒤, 최종 값으로부터 상기 블라인딩된 것을 제거한다.
실시 예에 있어서, 상기 암호문을 블라인딩시키기 위하여, 상기 암호문에 난수를 곱하고, 상기 블라인딩된 것을 제거하기 위하여, 상기 최종 값에 상기 난수의 역원을 곱한다.
실시 예에 있어서, 상기 복수의 몽고메리 곱셈들은, 상기 비밀키의 비트에 따라 상기 제 1 오퍼랜드 및 제 2 오퍼랜드들 중 어느 하나의 제곱에 대한 제 1 몽고메리 곱셈, 및 상기 비밀키의 비트에 따라 상기 제 1 오퍼랜드 및 상기 제 2 오퍼랜드의 곱셈에 대한 제 2 몽고메리 곱셈을 포함한다.
실시 예에 있어서, 상기 복수의 몽고메리 곱셈들을 수행하기 전에, 상기 제 1 및 제 2 몽고메리 곱셈들의 순서 혹은 상기 제 1 및 제 2 오퍼랜드들의 순서가 임의로 변경되도록 난수 비트가 생성된다.
실시 예에 있어서, 상기 복수의 몽고메리 곱셈들을 수행하기 전에, 상기 생성된 난수 비트에 따라 상기 제 1 및 제 2 몽고메리 곱셈의 순서가 결정되고, 상기 생성된 난수 비트에 따라 상기 제 1 및 제 2 오퍼랜드들의 순서가 결정된다.
실시 예에 있어서, 상기 제 1 몽고메리 곱셈은, 상기 비밀키의 상기 비트에 대응하는 오퍼랜드와 상기 생성된 난수 비트에 대응하는 오퍼랜드의 몽고메리 곱셈을 수행한다.
실시 예에 있어서, 상기 제 2 몽고메리 곱셈은, 상기 생성된 난수 비트에 반대인 비트에 대응하는 오퍼랜드와 상기 비밀키의 상기 비트에 대응하는 오퍼랜드의 몽고메리 곱셈을 수행한다.
실시 예에 있어서, 상기 제 1 몽고메리 곱셈의 결과값은 상기 난수 비트에 대응하는 오퍼랜드가 된다.
실시 예에 있어서, 상기 암호문이 1 혹은 -1일 때, 소정의 값이 상기 암호 알고리즘의 출력값이 된다.
본 발명의 실시 예에 따른 암호 시스템은, 암호 알고리즘에 따라 평문을 암호키로 암호화시키는 암호 유닛, 및 상기 암호 알고리즘에 따라 암호문을 복호키로 복호화시키는 복호 유닛을 포함하고, 상기 암호 알고리즘은, 상기 암호문에 상기 암호키의 모듈러 지수승될 때까지 상기 암호키의 비트에 따라 제 1 및 제 2 오퍼랜드들을 이용한 몽고메리 곱셈들을 반복적으로 수행하거나, 상기 복호문에 상기 복호키의 모듈러 지수승될 때까지 상기 복호키의 비트에 따라 제 1 및 제 2 오퍼랜드들을 이용한 몽고메리 곱셈들을 반복적으로 수행하고, 상기 몽고메리 곱셈들의 순서 혹은 상기 제 1 및 제 2 오퍼랜드들의 순서는 임의로 변경된다.
본 발명의 실시 예에 따른 복호 유닛은, 복수의 비트들로 구성된 비밀키를 입력받고, 상기 비밀키의 복수의 비트들을 순차적으로 출력하는 쉬프트 레지스터, 블라인딩을 위한 제 1 난수 및 몽고메리 곱셈들의 순서 및 오퍼랜드들의 순서를 임의로 변경하기 위한 제 2 난수를 생성하는 난수 발생기, 암호문을 블라인딩시키기 위하여 입력된 제 1 고정 값 및 제 2 고정 값들 각각에 상기 제 1 난수의 모듈러 지수승하고, 여기서, 상기 2 고정 값은, 상기 제 1 고정 값의 2m 모듈러 지수승된 값의 역원인 지수승 연산기, 제 1 오퍼랜드를 저장하고, 상기 제 1 오퍼랜드의 초기값은, 상기 제 1 고정 값 및 라딕스(radix)의 제곱에 대한 몽고메리 곱셈의 결과값인 제 1 오퍼랜드 레지스터, 제 2 오퍼랜드를 저장하고, 상기 제 2 오퍼랜드의 초기값은, 상기 제 1 오퍼랜드의 상기 초기값 및, 상기 암호문과 상기 라딕스의 제곱에 대한 몽고메리 곱셈의 결과값에 대한 몽고메리 곱셈의 결과값인 제 2 오퍼랜드 레지스터, 상기 암호문의 블라인딩된 것을 제거하기 위한 상기 제 2 고정 값을 저장하는 제 2 오퍼랜드 레지스터, 및 상기 쉬프트 레지스터로부터 출력된 비트에 따라 상기 제 1 및 제 2 오퍼랜드를 이용하여 복수의 몽고메리 곱셈들하고, 상기 복수의 몽고메리 곱셈들시 상기 제 1 및 제 2 오퍼랜드들은 변경되고, 상기 몽고메리 곱셈들을 수행할 때 상기 제 2 난수에 따라 상기 복수의 몽고메리 곱셈들의 순서 혹은 상기 제 1 및 제 2 오퍼랜드들의 순서가 임의로 변경되는 몽고메리 곱셈기를 포함한다.
실시 예에 있어서, 상기 암호문이 1 혹은 -1일 때, 소정의 값을 상기 복호 유닛의 출력값으로 생성하는 메시지 점검기를 더 포함한다.
실시 예에 있어서, 상기 메시지 점검기는, 상기 암호문이 1일 때, 1을 출력하고, 상기 암호문이 -1일 때, 1에서 상기 비밀키의 최하위 비트에 두 배한 것을 뺀 값을 출력한다.
실시 예에 있어서, 상기 제 1 및 제 2 고정 값들이 저장되는 비휘발성 메모리 장치가 더 포함된다.
실시 예에 있어서, 상기 몽고메리 곱셈기는 상기 비밀키의 상기 복수의 비트들 각각에 대하여, 상기 비밀키의 비트에 따라 상기 제 1 오퍼랜드 및 제 2 오퍼랜드들 중 어느 하나의 제곱에 대한 제 1 몽고메리 곱셈을 수행하고, 상기 비밀키의 비트에 따라 상기 제 1 오퍼랜드 및 상기 제 2 오퍼랜드의 곱셈에 대한 제 2 몽고메리 곱셈을 수행하고, 상기 제 1 몽고메리 곱셈의 결과값은 상기 난수 비트에 대응하는 오퍼랜드가 되는 것을 포함한다.
실시 예에 있어서, 상기 몽고메리 곱셈기는, 상기 제 1 오퍼랜드 레지스터에 최종적으로 저장된 값과 상기 제 3 오퍼랜드에 저장된 상기 제 2 고정 값에 대하여 몽고메리 곱셈을 수행함으로써, 상기 복호 유닛의 상기 출력값을 생성한다.
실시 예에 있어서, 상기 제 1 난수는 복수의 비트들로 구성된다.
실시 예에 있어서, 상기 비밀키의 비트 개수는, 모듈러스의 크기이다.
실시 예에 있어서, 상기 모듈러스는, 비슷한 크기의 서로 다른 소수들의 곱이다.
본 발명에 따른 복호 유닛 및 그것의 암호 알고리즘은 몽고메리 곱셈시 곱셈 순서 혹은 오퍼랜드의 순서를 임의로 변경함으로써, 차분 분석 공격으로부터 안전하다.
도 1은 본 발명에 따른 복호 유닛을 보여주는 블록도이다.
도 2은 도 1에 도시된 복호 유닛에 대한 실시 예를 보여주는 도면이다.
도 3은 본 발명에 따른 암호 알고리즘에 대한 실시 예를 보여주는 흐름도이다.
도 4는 일반적인 몽고메리 래더 알고리즘과 본 발명의 암호 알고리즘을 비교하는 도면이다.
도 5는 일반적인 몽고메리 래더 알고리즘을 이용할 때 비트에 따라 두 몽고메리 곱셈 사이의 상관 계수를 얻는 파형을 보여주는 도면이다.
도 6는 본 발명의 암호 알고리즘을 이용할 때 비트에 따라 두 몽고메리 곱셈 사이의 상관 계수를 얻는 파형을 보여주는 도면이다.
도 7은 본 발명의 암호 알고리즘을 적용한 암호 시스템에 대한 블록도이다.
도 8은 본 발명에 따른 보안 로직을 갖는 스마트 카드에 대한 블록도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시 예를 첨부된 도면을 참조하여 설명할 것이다.
도 1은 본 발명에 따른 복호 유닛(100)을 보여주는 블록도이다. 도 1을 참조하면, 복호 유닛(100)은 키 쌍(key pair; (n, d))을 이용하는 암호 알고리즘에 따라 모듈라 지수승(modular exponentiation)을 수행함으로써 암호문(C, Ciphertext)을 평문(Cd mod n, Plaintext)으로 복호화시킨다. 여기서, n은 모듈러스(modulus)이고, d는 비밀키(혹은, 복호화 키)이다. 여기서, 모듈러스(n)은 서로 다른 소수들(prime numbers)의 곱이다.
본 발명의 암호문(C)의 비밀키 모듈러 지수승(Cd mod n)은, 반복적인 복수의 모듈러 곱셈들(modular multiplication)을 수행함으로써 얻는다. 여기서, 복수의 모듈러 곱셈들은 비밀키(d)의 비트에 따라 오퍼랜드(operand, 피연산자)의 제곱(squaring) 혹은 서로 다른 오퍼랜드들의 곱셈(multiplication)을 포함한다.
본 발명의 복호 유닛(100)은 반복적인 복수의 모듈러 곱셈들을 수행할 때, 모듈러 곱셈들의 순서 혹은 오퍼랜드들(operands, 피연산자들)의 순서를 임의로 변경한다.
일반적인 복호 유닛은 모듈로 곱셈들을 수행할 때 오퍼랜드들 중 적어도 하나가 고정된다. 이로써, 차분전력분석(Differential Power Analysis)시 비밀키 혹은 비밀키의 일부 정보가 노출될 가능성이 높다.
반면에, 본 발명의 복호 유닛(100)은 모듈러 곱셈들을 수행할 때 모듈러 곱셈의 순서 혹은 오퍼랜드들 순서를 임의로 변경한다. 이에, 본 발명의 복호 유닛(100)은 차분 전력 분석시 비밀키 혹은 비밀키의 일부 정보를 노출시키지 않는다.
아래에서는 설명의 편의를 위하여, 모듈러 곱셈이 몽고메리 모듈러 곱셈이라고 하겠다. 몽고메리 모듈러 곱셈은 뺄셈 연산을 쉬프트 연산으로 대체함으로써 하드웨어 구현이 간단하고, 속도도 빠르다. 그러나, 본 발명의 모듈러 곱셈이 반드시 몽고메리 곱셈에 한정되지는 않는다.
도 2는 도 1에 도시된 복호 유닛(100)에 대한 실시 예를 보여주는 도면이다. 도 2를 참조하면, 복호 유닛(110)은 메시지 점검기(110), 쉬프트 레지스터(120), 난수 발생기(130), 지수승 연산기(140), 제 1 내지 제 3 오퍼랜드 레지스터들(151, 152, 153), 및 몽고메리 곱셈기(160)를 포함한다.
메시지 점검기(110)는 옌의 공격(Yen's attack)을 방지한다. 여기서, 옌의 공격은 암호문(C)에 1 혹은 -1을 입력함으로써 모듈러스(n) 관련 정보를 얻는다. 메시지 점검기(110)는 암호문(C)으로 1 혹은 -1이 입력될 때, 복호 유닛(100)의 결과값으로 소정의 값을 출력한다. 예를 들어, 메시지 점검기(110)는 암호문(C)이 1일 때 1을 출력하고, 암호문(C)이 -1일 때 1-2d0를 출력한다. 여기서, do는 비밀키(d)의 최하위 비트이다. 여기서, 비밀키(d)는 m개의 바이너리 값이다. 여기서, m은 모듈러스(n)의 크기(size)이다.
쉬프트 레지스터(120)는 m개의 비트들로 구성된 비밀키(d)를 입력받아 몽고메리 곱셈들을 수행할 때 하나씩 출력한다. 여기서, 쉬프트 레지스터(120)의 출력값(di)은 비밀키(d)의 i번째 비트를 의미한다.
난수 발생기(130)는 오퍼랜드 초기화 동작에 사용되는 제 1 난수(v) 및 몽고메리 곱셈에 사용되는 제 2 난수(r)를 생성한다. 제 1 난수(v) 및 제 2 난수(r)는 l(2이상의 정수) 비트이다. 여기서 제 1 난수(v)는 메시지 블라인딩 하기 위하여 이용되고, 제 2 난수(r)는 몽고메리 곱셈들의 순서 혹은 오퍼랜드들의 순서를 임의로 변경하는데 이용된다.
지수승 연산기(140)는 난수들(
Figure 112010014676098-pat00001
)에 대하여 제 1 난수(v) 만큼의 지수승을 수행한다. 여기서, 지수승 연산기(140)의 출력값들(
Figure 112010014676098-pat00002
) 각각은 제 1 오퍼랜드 레지스터(151) 및 제 3 오퍼랜드 레지스터(153)로 입력된다. 다른 말로, 지수승 연산기(140)의 출력값들(
Figure 112010014676098-pat00003
) 각각은 제 1 오퍼랜드 레지스터(151) 및 제 3 오퍼랜드 레지스터(153)의 초기값들이다.
본 발명에서는, 암호문(C)을 메시지 블라인딩시키기 위한 난수를 생성하기 위하여, 난수(z)에 어느 하나의 난수(v)만큼 지수승이 수행된다. 여기서, 암호문(C)를 메시지 블라인딩하는 것은 단순전력분석(Simple Power Analysis)으로부터 암호문(C)을 보호한다. 즉, 지수승 연산기(140)의 출력값(
Figure 112010014676098-pat00004
)은 암호문(C)를 메시지 블라인딩시키기 위한 난수이다. 이는, 역원(
Figure 112010014676098-pat00005
)을 생성하는 비용을 줄이기 위함이다.
제 1 내지 제 3 오퍼랜드 레지스터들(151, 152, 153)는, 몽고메리 곱셈들을 수행하기 위한 제 1 내지 제 3 오퍼랜드 값들(U0, U1, U)를 저장한다.
몽고메리 곱셈기(160)는 암호화 알고리즘에 의하여 제 1 내지 제 2 오퍼랜드 값들(U0, U1)을 이용하여 몽고메리 곱셈을 수행한다. 몽고메리 곱셈은 다음의 수학식을 만족한다.
Figure 112010014676098-pat00006
여기서, A는 피승수(multiplicand)로써, 0 ≤ A < n을 만족하는 정수이고, B는 승수(multiplier)로써, 0 ≤ B < n을 만족하는 정수이며, R은 기수(radix)로써 2m이다. 여기서, m는 모듈러스(n)의 크기(size)이다. 그런데, 기수(R)이 반드시 2m이 필요는 없다. 본 발명의 기수(R)는 n과 서로소(relatively prime)이면서, n보다 큰 정수이다.
몽고메리 곱셈기(160)는 하드웨어 구현이 어려운 난수에 대한 모듈러 연산을 단순하게 곱셈, 덧셈, 및 쉬프트 연산들로 처리한다. 이에, 몽고메리 곱셈기(160)는 하드웨어로 구현하거나 소프트웨어로 구현하는데 유리하다.
몽고메리 곱셈기(160)는 제 1 및 제 2 오퍼랜드들(U0,U1)의 순서를 고정하지 않는다. 몽고메리 곱셈기(160)는 제 2 난수(r)를 이용하여 몽고메리 곱셈의 순서 및 오퍼랜드들(U0, U1)의 순서를 임의로 변경시키는 암호화 알고리즘에 따라 몽고메리 곱셈을 수행한다.
몽고메리 곱셈기(160)는 최종적으로 제 1 오퍼랜드(U0) 및 제 3 오퍼랜드(U)의 몽고메리 곱셈 값(Mont(U0, U))을 출력한다. 다른 말로, 몽고메리 곱셈기(160)는 제 1 오퍼랜드(U0)의 최종값에 대하여 제 3 오퍼랜드(U)의 몽고메리 곱셈을 수행함으로써 블라인딩된 것을 제거한다. 여기서, 암호문을 블라인딩하고 블라인딩된 것을 제거한다는 것은, 다른 말로, 암호문을 맵핑하고 리맵핑한다고 불리기도 한다.
본 발명에 따른 복호 유닛(100)은 난수(r)를 이용하여 몽고메리 곱셈들의 순서 혹은 오퍼랜드들(U0, U1)의 순서를 임의로 변경시키는 암호화 알고리즘에 따라 모듈러 곱셈을 수행한다. 이로써, 차분 분석 공격시 비밀키가 쉽게 노출되지 않게 된다.
도 3은 본 발명에 따른 암호 알고리즘에 대한 실시 예를 보여주는 흐름도이다. 도 2 및 도 3를 참조하면, 본 발명에 따른 암호 알고리즘을 다음과 같이 진행된다. 본 발명의 암호 알고리즘은, 메시지 체크 단계(S110), 오퍼랜드 초기화 단계(S120), 몽고메리 곱셈 단계(S130), 및 출력 단계(S140)로 구분된다.
복호 유닛(100)은 동작에 필요한 입력 값들(C, n, d,
Figure 112010014676098-pat00007
)을 입력받는다(S111). 여기서, 비밀키(d)는 m개의 바이너리 값(dm-1dm-2...d1d0)2 이다. 여기서, m은 모듈러스(n)의 크기이다.
여기서, 입력 값들(
Figure 112010014676098-pat00008
)은 메시지 블라인딩에 사용되기 위한 숫자들로써, 비휘발성 메모리(도시되지 않음)로부터 입력된 값이다. 입력 값들(
Figure 112010014676098-pat00009
)은 비휘발성 메모리에 저장되어 있다. 여기서, 비휘발성 메모리는 롬(ROM), 피램(PRAM), 낸드 플래시 메모리, 노아 플래시 메모리일 수 있다. 본 발명의 입력 값들(
Figure 112010014676098-pat00010
)이 반드시 비휘발성 메모리에 저장될 필요는 없다. 본 발명의 입력 값들(
Figure 112010014676098-pat00011
)은 난수 발생기(130)로부터 생성될 수 있다.
메시지 점검기(110)는 입력된 암호문(C)이 1 혹은 -1인지를 판별한다(S112). 만약, 암호문(C)이 1이면, 메시지 점검기(110)는 암호 유닛(110)의 출력값으로 1을 출력시킨다. 또한, 암호문(C)이 -1이면, 메시지 점검기(110)는 암호 유닛(110)의 출력값으로 1-2d0을 출력시킨다(S141). 이로써, 옌의 공격이 방지된다.
반면에, 입력된 암호문(C)이 1 혹은 -1이 아니면, 오퍼랜드 초기화 단계가 진행된다(S120).
난수 발생기(130)는 오퍼랜드 초기화를 위하여 l 비트의 제 1 난수(v)를 생성한다(S121).
지수승 연산기(140)는 입력된 난수들(
Figure 112010014676098-pat00012
)에 대하여 제 1 난수(v) 만큼의 지수승을 수행한다(S122). 이때, 지수승된 값들 (
Figure 112010014676098-pat00013
) 각각은, 제 1 오퍼랜드 레지스터(151) 및 제 3 오퍼랜드 레지스터(153)에 저장된다. 즉, 지수승된 값들 (
Figure 112010014676098-pat00014
) 각각은 제 1 오퍼랜드(U0) 및 제 3 오퍼랜드(U)의 초기값들이다.
몽고메리 곱셈기(160)는 제 1 오퍼랜드(U0)의 초기값을 이용하여 제 2 오퍼랜드(U1)의 초기값을 계산한다(S123). 몽고메리 곱셈기(160)는 제 1 오퍼랜드(U0)의 초기값과 기수의 제곱 값(R2)에 대하여 몽고메리 곱셈을 통하여 새로운 제 1 오퍼랜드(U0)를 계산한다. 여기서 기수의 제곱 값(R2)은 비휘발성 메모리로부터 입력된다. 이때 새로운 제 1 오퍼랜드(U0)는 아래의 수학식을 만족한다.
Figure 112010014676098-pat00015
몽고메리 곱셈기(160)는 암호문(C)과 기수의 제곱 값(R2)에 대하여 몽고메리 곱셈을 수행한다. 이후, 몽고메리 곱셈기(160)는, 계산된 새로운 제 1 오퍼랜드(U0)와, 연산된 값(Mont(C, R2))에 대하여 몽고메리 곱셈을 수행한다. 이렇게 연산된 값은, 제 2 오퍼랜드(U1)의 초기값으로 제 2 레지스터(152)에 저장된다. 여기서, 제 2 레지스터(152)에 저장되는 제 2 오퍼랜드(U1)의 초기값은 다음과 같은 수학식을 만족한다.
Figure 112010014676098-pat00016
이로써, 오퍼랜드들(U0, U1, U)의 초기값들이 셋팅되고, 반복적인 몽고메리 곱셈들이 수행된다(S130). 여기서, 몽고메리 곱셈들은, 오퍼랜드의 제곱 및 서로 다른 오퍼랜드들의 곱셈을 포함한다.
쉬프트 레지스터(120)는 i 번째 비트(di)을 몽고메리 곱셈기(160)로 출력한다(S131).
난수 발생기(150)는 몽고메리 곱셈에 사용될 제 2 난수(r)를 생성한다(S132). 여기서, 제 2 난수(r)는 0 혹은 1이다.
몽고메리 곱셈기(160)는 오퍼랜드(Udi) 및 오퍼랜드(Ur)에 대하여 몽고메리 곱셈을 수행함으로써 임시 오퍼랜드(U2)를 계산한다(S133). 여기서, 오퍼랜드(Udi)는 제 1 오퍼랜드(U0) 및 제 2 오퍼랜드(U1) 중에 하나이고, 오퍼랜드(Ur)는 제 1 오퍼랜드(U0) 및 제 2 오퍼랜드(U1) 중에 하나이다.
이후, 몽고메리 곱셈기(160)는 오퍼랜드(U1 -r) 및 오퍼랜드(Udi)에 대하여 몽고메리 곱셈을 수행한다(S134). 여기서, 오퍼랜드(U1-r)는 제 1 오퍼랜드(U0) 및 제 2 오퍼랜드(U1) 중에 하나이고, 오퍼랜드(Udi)는 제 1 오퍼랜드(U0) 및 제 2 오퍼랜드(U1) 중에 하나이다.
이후, 몽고메리 곱셈기(160)는 임시 오퍼랜드(U2)를 오퍼랜드(Ur)로 계산한다(S135).
이후, 몽고메리 곱셈기(160)는 i가 0인지를 판별한다(S136).
만약, i가 0이 아니라면, i에서 1을 뺀 값이 새로운 i가 된다. 쉬프트 레지스터(120)는 새로운 i 번째 비밀키(di)를 몽고메리 곱셈기(160)로 출력한다(S132). 이후, S132 단계가 진입된다.
반면에, i가 0이라면, 몽고메리 곱셈기(160)는 제 1 오퍼랜드(U0) 및 제 3 오퍼랜드(U)에 대한 몽고메리 곱셈을 수행함으로써, 복호 유닛(100)의 결과 값(Mont(U0, U))으로 출력한다(S142). 이는 메시지 블라인딩된 값을 제거하는 과정이다.
이때, 제 1 오퍼랜드 레지스터(151)는 최종적으로 아래의 수학식을 만족하는 값이 저장된다.
Figure 112010014676098-pat00017
따라서, 복호 유닛(100)의 결과값(Mont(U0, U))은 아래의 수학식을 만족한다.
Figure 112010014676098-pat00018
본 발명의 암호 알고리즘은, 난수(r)에 따라 몽고메리 곱셈들의 순서를 결정한다. 즉, 난수(r)에 따라 제 1 혹은 제 2 오퍼랜드의 제곱을 먼저 수행할지 혹은 제 1 오퍼랜드와 제 2 오퍼랜드의 곱셈을 먼저 수행할 지가 결정된다.
또한, 본 발명의 암호 알고리즘은, 난수(r)에 따라 제 1 혹은 제 2 오퍼랜드의 제곱을 수행하거나 혹은 제 1 오퍼랜드와 제 2 오퍼랜드의 곱셈을 수행할 때 오퍼랜드들(U0, U1)의 순서를 결정한다. 즉, 난수(r)에 따라 몽고메리 곱셈들을 수행할 때 오퍼랜드들(U0, U1)의 순서가 결정된다.
정리하면, 본 발명의 암호 알고리즘은, 난수(r)에 따라 몽고메리 곱셈들의 순서 혹은 오퍼랜드들의 순서를 임의로 변경한다. 이로써, 본 발명의 암호 알고리즘은 차분 전력 분석시 비밀키(d)를 노출시키지 않게 된다.
도 4는 일반적인 몽고메리 래더 알고리즘과 본 발명의 암호 알고리즘을 비교하는 도면이다.
일반적인 몽고메리 래더 알고리즘은, 비밀키(d)의 비트(di)에 대하여 아래의 수학식을 만족하는 몽고메리 곱셈들을 수행한다.
Figure 112010014676098-pat00019
비밀키(d)의 비트(di)가 0일 때, U0 = Mont(U0, U0), U1 = Mont(U0, U1)이다. 이때, 두 몽고메리 곱셈의 첫번째 오퍼랜드가 동일한 값(U0)이다.
비밀키(d)의 비트(di)가 1일 때, U0 = Mont(U0, U0), U1 = Mont(U1, U1)이다. 이때, 두 몽고메리 곱셈의 두번째 오퍼랜드가 동일한 값(U1)이다.
상술 된 바와 같이, 일반적인 몽고메리 래더 알고리즘은, 비밀키(d)의 비트(di)에 따라 고정된 오퍼랜드의 위치가 달라짐에 따라 차분 전력 분석에 취약하다.
반면에, 본 발명의 암호 알고리즘은, 비밀키(d)의 비트(di)에 대하여 아래의 수학식을 만족하는 연산들을 수행한다.
Figure 112010014676098-pat00020
여기서, r은 난수로써, 0 혹은 1이다.
비밀키(d)의 비트(di)가 0이고, 난수(r)이 0일 때, U2 = Mont(U0, U0), U1 = Mont(U1, U0), U0= U2이다. 반면에, 비밀키(d)의 비트(di)가 0이고, 난수(r)이 1일 때, U2 = Mont(U0, U1), U1 = Mont(U0, U0), U1= U2이다. 따라서, 비밀키(d)의 비트(di)에 따라 몽고메리 곱셈의 오퍼랜드들이 고정되지 않는다.
비밀키(d)의 비트(di)가 1이고, 난수(r)이 0일 때, U2 = Mont(U1, U0), U1 = Mont(U1, U1), U0= U2이다. 반면에, 비밀키(d)의 비트(di)가 1이고, 난수(r)이 1일 때, U2 = Mont(U1, U1), U1 = Mont(U0, U1), U1= U2이다. 따라서, 비밀키(d)의 비트(di)에 따라 몽고메리 곱셈의 오퍼랜드들이 고정되지 않는다.
정리하면, 일반적인 몽고메리 래더 알고리즘은, 비밀키(d)의 비트(di)에 따라 오퍼랜드의 순서가 고정된다. 반면에, 본 발명의 알고리즘은, 비밀키(d)의 비트(di)에 따라 오퍼랜드의 순서가 고정되지 않는다.
본 발명의 알고리즘은, 몽고메리 곱셈의 순서 및 오퍼랜드의 순서가 임의적으로 변경됨으로써, 차분 전력 분석에도 쉽게 비밀키를 노출시키지 않는다.
도 5는 일반적인 몽고메리 래더 알고리즘을 이용할 때 비트에 따라 두 몽고메리 곱셈 사이의 상관 계수(correlation coefficient)를 얻는 파형을 보여주는 도면이다. 상단(upper)은 비트(di)가 0일 때의 상관 계수를 나타내고, 하단(lower)은 비트(di)가 1일 때 상관 계수를 나타낸다. 도 5를 참조하면, 비트(di)에 따라 파형 차이가 분명하다. 이로써, 비밀키(d)의 비트(di)가 쉽게 노출됨을 확인할 수 있다.
도 6은 본 발명의 암호 알고리즘을 이용할 때 비트에 따라 두 몽고메리 곱셈 사이의 상관 계수를 얻는 파형을 보여주는 도면이다. 상단(upper)은 비트(di)가 0일 때의 상관 계수를 나타내고, 하단(lower)은 비트(di)가 1일 때 상관 계수를 나타낸다. 도 6를 참조하면, 비트(di)에 따라 파형 차이가 분명하지 않다. 이로써, 비밀키(d)의 비트(di)가 쉽게 노출되지 않음을 확인할 수 있다.
도 1 내지 도 6에서는 복호 유닛(100)에 대하여 설명하였다. 그러나, 본 발명의 암호 알고리즘에 반드시 복호 유닛에만 적용될 필요는 없다. 본 발명의 암호 알고리즘은, 암호 유닛에도 동일하게 적용될 수 있다.
도 7은 본 발명의 암호 알고리즘을 적용한 암호 시스템(1000)에 대한 블록도이다. 도 7을 참조하면, 암호 시스템(1000)은, 암호 유닛(1100) 및 복호 유닛(1200)를 포함한다.
암호 시스템(100)은 RSA(Rivest, Shamir, Adleman) 시스템이다.
모듈러스(n)은 비슷한 크기의 서로 다른 소수들(p,q)의 곱셈 값(pq)으로 결정된다. 공개키(e)는, φ(n)=(p-1)×(q-1)와 서로소(Relatively Prime)인 정수로써, 1 < e < φ(n)을 만족한다. 여기서 φ(n)은 n 보다 작고, n과 서로소인 양의 정수의 개수를 나타내는 함수이다. 개인키(d)는 e-1 mod φ(n)이다. 여기서, 공개키(e) 및 개인키(d)는 비밀키로서, 아래의 모듈러 방정식(modular equation)을 만족한다. 일반적으로, 공개키(e)는 암호키로 불리고, 개인키(d)는 복호키로 불린다.
Figure 112010014676098-pat00021
예를 들어, 소수(p)가 17이고, 소수(q)가 11이라면, 모듈러스(n)은 187이고, φ(n)는 160이다. 따라서, 공개키(e)는 160과 서로소이고, 160 보다 작은 정수이다. 예를 들어, 공개키(e)는 7이라고 가정하자. 이때, 개인키(d)는, de = 1 mod 160 이고, d < 160인 정수로써, 23이다.
암호 유닛(1100)은 제 1 키쌍(n, e)을 입력받아 암호 알고리즘에 따라 평문(M)을 암호문(C)으로 암호화시킨다. 암호 유닛(1100)은, 도 2에 도시된 복호 유닛(100)과 동일하게 구현된다. 이때, 암호문(C)는 다음 수학식을 만족한다.
Figure 112010014676098-pat00022
복호 유닛(1200)은 제 2 키쌍(n, d)을 입력받아 암호 알고리즘에 따라 암호문(C)을 평문(M)으로 복호화시킨다. 복호 유닛(1200)은, 도 2에 도시된 복호 유닛(100)과 동일하게 구현된다. 이때, 평문(M)은 다음 수학식을 만족한다.
Figure 112010014676098-pat00023
여기서, 공개키(e) 및 개인키(d)의 곱은 1 mod φ(n) 이다.
본 발명에 따른 암호 시스템(1000)은 몽고메리 곱셈시 비밀키의 비트에 따라 오퍼랜드들을 임의로 변경하는 암호 알고리즘을 갖는 암호 유닛(1100) 및 복호 유닛(1200)을 구비함으로써, 차분 전력 분석 공격으로부터 비밀키의 노출을 방지한다.
도 8은 본 발명에 따른 보안 로직을 갖는 스마트 카드(10)에 대한 블록도이다. 도 8를 참조하면, 스마트 카드(10)는 중앙처리장치(11), 보안 로직(12), 입출력 인터페이스(13), 비휘발성 메모리(14), 및 램(15)을 포함한다.
중앙처리장치(11)는 스마트 카드(10)의 전반적인 동작을 제어한다.
보안 로직(12)은 평문을 암호문으로, 암호문을 평문으로 변경한다. 보안 로직(12)은 도 2 내지 도 3에서 상술 된 암호 알고리즘에 따라 구현된다. 보안 로직(12)은, 도 7에 도시된 암호 시스템(1000)을 포함할 수 있다.
도 8에 도시된 바와 같이, 보안 로직(12)은 중앙처리장치(11)의 외부에 도시되었지만, 본 발명이 반드시 여기에 국한될 필요는 없다. 본 발명의 보안 로직(12)는 중앙처리장치(11)의 내부에 존재할 수 있다.
입출력 인터페이스(13)는 스마트 카드(10)와 외부 사이의 명령어, 어드레스, 데이터의 입출력을 인터페이싱한다.
비휘발성 메모리(14)는 프로그램 메모리로써, 카드 운영 체계 및 기본 명령들을 저장한다. 비휘발성 메모리(14)에는 롬, 낸드 플래시, 노아 플래시, 피램 등이 될 수 있다. 본 발명의 비휘발성 메모리(14)는 보안 로직(12)의 구동시 필요한 데이터를 저장할 수 있다.
램(15)은 스마트 카드(10)의 동작 중에 발생되는 임시 데이터 및 중간 계산 결과값들을 저장한다.
일반적인 전력 분석 대응 방법은 이차 차분 전력 분석에 취약하다. 그러나,본 발명은 이차 차분 전력 분석을 방어하기 위해서 몽고메리 래더 기법을 활용하는 새로운 대응방법을 개시한다.
본 발명의 암호 알고리즘은 이차 차분 전력 분석에 취약한 종래의 BRIP 알고리즘과 연산량을 동일하면서도, 이차 차분 전력 분석에 대한 안정성을 제공한다.
또한, 본 발명의 암호 알고리즘은 지수의 랜덤화를 이용함으로써 종래의 그것보다 더 좋은 효율성을 갖는다.
본 발명의 암호 알고리즘은 인버스(inverse) 연산을 요구하지 않음으로써 종래의 그것보다 효율적인 연산 동작을 수행한다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000: 암호 시스템
1100: 암호 유닛
1200: 복호 유닛
100: 복호 유닛
110: 메시지 점검기
120: 쉬프트 레지스터
130: 난수 발생기
140: 지수승 연산기
151: 제 1 오퍼랜드 레지스터
152: 제 2 오퍼랜드 레지스터
153: 제 3 오퍼랜드 레지스터
160: 몽고메리 곱셈기
10: 스마트 카드
12: 보안 로직

Claims (10)

  1. 암호 알고리즘의 복호 방법에 있어서:
    비밀키를 입력받고; 및
    암호문에 상기 비밀키의 모듈러 지수승될 때까지, 복수의 몽고메리 곱셈들을 반복하는 것을 포함하고,
    상기 반복적인 몽고메리 곱셈들을 수행할 때, 상기 복수의 몽고메리 곱셈들의 순서 혹은 오퍼랜드들의 순서가 임의로 변경되고,
    상기 복수의 몽고메리 곱셈들은,
    상기 비밀키의 비트에 따라 제 1 오퍼랜드 및 제 2 오퍼랜드 중 어느 하나의 제곱에 대한 제 1 몽고메리 곱셈; 및
    상기 비밀키의 비트에 따라 상기 제 1 오퍼랜드 및 상기 제 2 오퍼랜드의 곱셈에 대한 제 2 몽고메리 곱셈을 포함하는 복호 방법.
  2. 제 1 항에 있어서,
    상기 비밀키를 입력받은 후, 상기 암호문을 블라인딩시키고; 및
    상기 반복적인 몽고메리 곱셈들을 수행한 뒤, 최종 값으로부터 상기 블라인딩된 것을 제거하는 복호 방법.
  3. 제 2 항에 있어서,
    상기 암호문을 블라인딩시키기 위하여, 상기 암호문에 난수를 곱하고,
    상기 블라인딩된 것을 제거하기 위하여, 상기 최종 값에 상기 난수의 역원을 곱하는 복호 방법.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 복수의 몽고메리 곱셈들을 수행하기 전에, 상기 제 1 및 제 2 몽고메리 곱셈들의 순서 혹은 상기 제 1 및 제 2 오퍼랜드들의 순서가 임의로 변경되도록 난수 비트가 생성되는 복호 방법.
  6. 제 5 항에 있어서,
    상기 복수의 몽고메리 곱셈들을 수행하기 전에, 상기 생성된 난수 비트에 따라 상기 제 1 및 제 2 몽고메리 곱셈의 순서가 결정되고, 상기 생성된 난수 비트에 따라 상기 제 1 및 제 2 오퍼랜드들의 순서가 결정되는 복호 방법.
  7. 제 5 항에 있어서,
    상기 제 1 몽고메리 곱셈은,
    상기 비밀키의 상기 비트에 대응하는 오퍼랜드와 상기 생성된 난수 비트에 대응하는 오퍼랜드의 몽고메리 곱셈을 수행하는 복호 방법.
  8. 제 7 항에 있어서,
    상기 제 2 몽고메리 곱셈은,
    상기 생성된 난수 비트에 반대인 비트에 대응하는 오퍼랜드와 상기 비밀키의 상기 비트에 대응하는 오퍼랜드의 몽고메리 곱셈을 수행하는 복호 방법.
  9. 제 8 항에 있어서,
    상기 제 1 몽고메리 곱셈의 결과값은 상기 난수 비트에 대응하는 오퍼랜드가 되는 복호 방법.
  10. 암호 알고리즘에 따라 평문을 암호키로 암호화시키는 암호 유닛; 및
    상기 암호 알고리즘에 따라 암호문을 복호키로 복호화시키는 복호 유닛을 포함하고,
    상기 암호 알고리즘은,
    상기 암호문에 상기 암호키의 모듈러 지수승될 때까지 상기 암호키의 비트에 따라 제 1 및 제 2 오퍼랜드들을 이용한 몽고메리 곱셈들을 반복적으로 수행하거나, 상기 암호문을 복호화시킨 복호문에 상기 복호키의 모듈러 지수승될 때까지 상기 복호키의 비트에 따라 제 1 및 제 2 오퍼랜드들을 이용한 몽고메리 곱셈들을 반복적으로 수행하고, 상기 몽고메리 곱셈들의 순서 혹은 상기 제 1 및 제 2 오퍼랜드들의 순서는 임의로 변경되고,
    상기 몽고메리 곱셈들은,
    비밀키의 비트에 따라 제 1 오퍼랜드 및 제 2 오퍼랜드 중 어느 하나의 제곱에 대한 제 1 몽고메리 곱셈; 및
    상기 비밀키의 비트에 따라 상기 제 1 오퍼랜드 및 상기 제 2 오퍼랜드의 곱셈에 대한 제 2 몽고메리 곱셈을 포함하는 암호 시스템.
KR1020100020505A 2010-03-08 2010-03-08 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템 KR101610917B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100020505A KR101610917B1 (ko) 2010-03-08 2010-03-08 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템
US13/012,570 US8422671B2 (en) 2010-03-08 2011-01-24 Methods of encryption and decryption using operand ordering and encryption systems using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100020505A KR101610917B1 (ko) 2010-03-08 2010-03-08 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템

Publications (2)

Publication Number Publication Date
KR20110101486A KR20110101486A (ko) 2011-09-16
KR101610917B1 true KR101610917B1 (ko) 2016-04-11

Family

ID=44531359

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100020505A KR101610917B1 (ko) 2010-03-08 2010-03-08 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템

Country Status (2)

Country Link
US (1) US8422671B2 (ko)
KR (1) KR101610917B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101805840B1 (ko) 2016-08-04 2017-12-07 윈본드 일렉트로닉스 코포레이션 암호 계산을 위한 방법, 장치 및 비일시적이고 컴퓨터로 독출가능한 매체

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2895609A1 (fr) * 2005-12-26 2007-06-29 Gemplus Sa Procede cryptographique comprenant une exponentiation modulaire securisee contre les attaques a canaux caches, cryptoprocesseur pour la mise en oeuvre du procede et carte a puce associee
US9400636B2 (en) * 2011-02-11 2016-07-26 Infineon Technologies Ag Apparatus and method for calculating a result in a scalar multiplication
EP2535804A1 (en) * 2011-06-17 2012-12-19 Thomson Licensing Fault-resistant exponentiation algorithm
KR101475747B1 (ko) * 2014-01-22 2014-12-23 고려대학교 산학협력단 동형 암호를 이용한 다자간 위탁 연산 방법
WO2016053792A1 (en) 2014-10-03 2016-04-07 Cryptography Research, Inc. Exponent splitting for cryptographic operations
US9590805B1 (en) * 2014-12-23 2017-03-07 EMC IP Holding Company LLC Ladder-based cryptographic techniques using pre-computed points
US9735953B2 (en) * 2015-03-06 2017-08-15 Qualcomm Incorporated Side channel analysis resistant architecture
US10594471B2 (en) * 2015-03-20 2020-03-17 Cryptography Research, Inc. Multiplicative blinding for cryptographic operations
CN104793919B (zh) * 2015-04-15 2017-11-07 深圳国微技术有限公司 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片
IL239880B (en) 2015-07-09 2018-08-30 Kaluzhny Uri Simplified montgomery multiplication
US10019571B2 (en) 2016-03-13 2018-07-10 Winbond Electronics Corporation Protection from side-channel attacks by varying clock delays
CN106254059B (zh) 2016-07-26 2020-03-20 华为技术有限公司 一种运算方法和安全芯片
CN111712816B (zh) 2018-03-28 2024-05-03 密码研究公司 使用密码蒙蔽以用于高效地使用蒙哥马利乘法
CN110690968B (zh) * 2019-08-19 2022-07-01 广东工业大学 一种基于蒙哥马利-rsa算法的图像加密方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282290B1 (en) * 1997-03-28 2001-08-28 Mykotronx, Inc. High speed modular exponentiator
DE69834431T3 (de) * 1998-01-02 2009-09-10 Cryptography Research Inc., San Francisco Leckresistentes kryptographisches verfahren und vorrichtung
JP2000305453A (ja) * 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
KR100402156B1 (en) 2002-04-25 2003-10-17 Jae Cheol Ha Method for encrypting elliptic curve to prevent power analysis attack
KR20050102291A (ko) 2004-04-21 2005-10-26 삼성전자주식회사 부가채널 공격들로부터 공개키 암호 시스템을 보호하기위한 방법과 장치, 및 상기 방법을 기록한 컴퓨터로 읽을수 있는 기록매체
JP2006217193A (ja) 2005-02-03 2006-08-17 Hitachi Ltd 暗号処理装置および暗号処理方法
US20060227974A1 (en) * 2005-03-30 2006-10-12 Attila Haraszti Encryption and decryption method
KR100731575B1 (ko) 2005-06-29 2007-06-22 경북대학교 산학협력단 전력분석공격에 대응하는 암호화 방법
KR20070049823A (ko) 2005-11-09 2007-05-14 삼성전자주식회사 전력공격에 안전한 모듈라 지수승 연산 및 상수배 곱셈연산방법
KR100772550B1 (ko) 2006-05-11 2007-11-02 경북대학교 산학협력단 전력분석공격에 안전한 메시지 블라인딩 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101805840B1 (ko) 2016-08-04 2017-12-07 윈본드 일렉트로닉스 코포레이션 암호 계산을 위한 방법, 장치 및 비일시적이고 컴퓨터로 독출가능한 매체

Also Published As

Publication number Publication date
US20110216900A1 (en) 2011-09-08
US8422671B2 (en) 2013-04-16
KR20110101486A (ko) 2011-09-16

Similar Documents

Publication Publication Date Title
KR101610917B1 (ko) 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템
US10749675B2 (en) Homomorphic white box system and method for using same
EP0946018B1 (en) Scheme for fast realization of a decryption or an authentication
Segar et al. Pell's RSA key generation and its security analysis
US6154541A (en) Method and apparatus for a robust high-speed cryptosystem
Nagaraj et al. Data encryption and authetication using public key approach
JP2010277085A (ja) Rsaアルゴリズムにおける素数生成の保護
Jahan et al. Improved RSA cryptosystem based on the study of number theory and public key cryptosystems
US7286666B1 (en) Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm
KR100737667B1 (ko) 암호 체계의 개인 키 저장 및 복원 방법과 장치
EP3698262B1 (en) Protecting modular inversion operation from external monitoring attacks
CN109756335B (zh) 一种阶为梅森素数的有限域乘法群的公钥加密解密方法
Dubey et al. Cryptanalytic attacks and countermeasures on RSA
JP2008525835A (ja) 暗号計算を実行するための方法及び装置
CN1985458B (zh) 增强的自然蒙哥马利指数掩蔽和恢复的方法和装置
Hussein et al. Proposed Parallel Algorithms to Encryption Image Based on Hybrid Enhancement RC5 and RSA
CN110495134B (zh) 用于为有限域迪菲-赫尔曼选择安全质数的方法和系统
JP5464341B2 (ja) 複数のナップザックを用いる公開鍵暗号方式による暗号システム、鍵生成装置、暗号化装置、復号装置、データ交換方法およびプログラム
JP3278790B2 (ja) 公開鍵暗号方法及び公開鍵暗号システム
Gyu-Chol et al. A study on the fast ElGamal encryption
KR100406138B1 (ko) 엔티알유 암/복호화 장치
KR20070049823A (ko) 전력공격에 안전한 모듈라 지수승 연산 및 상수배 곱셈연산방법
Abd Ghafar et al. A Survey of Partial Key Exposure Attacks on RSA Cryptosystem
Indira et al. Comparison of some parameters based on different key sizes for certain class of cryptographic algorithms
Sirajudeen et al. Matrix-Based Data Security in Cloud Computing Using Advanced Cramer–Shoup Cryptosystem

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190329

Year of fee payment: 4