KR100876442B1 - 엔티알유 암호화 및 복호화를 위한 안전한 다항식 컨볼루션연산 방법 - Google Patents

엔티알유 암호화 및 복호화를 위한 안전한 다항식 컨볼루션연산 방법 Download PDF

Info

Publication number
KR100876442B1
KR100876442B1 KR1020070140162A KR20070140162A KR100876442B1 KR 100876442 B1 KR100876442 B1 KR 100876442B1 KR 1020070140162 A KR1020070140162 A KR 1020070140162A KR 20070140162 A KR20070140162 A KR 20070140162A KR 100876442 B1 KR100876442 B1 KR 100876442B1
Authority
KR
South Korea
Prior art keywords
polynomial
array
convolution operation
convolution
ntru
Prior art date
Application number
KR1020070140162A
Other languages
English (en)
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 PCT/KR2007/006988 priority Critical patent/WO2009084752A1/en
Priority to KR1020070140162A priority patent/KR100876442B1/ko
Application granted granted Critical
Publication of KR100876442B1 publication Critical patent/KR100876442B1/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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 공개키 암호 체계인 NTRU 암호화 및 복호화에서 사용될 수 있는 다항식 컨볼루션 연산 방법에 관한 것이다. 본 발명의 특징에 따른 다항식 컨볼루션 연산 방법은, NTRU 암호화 및 복호화에서, 제1 다항식('공개 키' 또는 '암호문'에 해당함)과 임의선택 가능한 제2 다항식과의 다항식 컨볼루션(convolution) 연산 방법으로서, (1) 상기 제1 다항식과 상기 제2 다항식의 다항식 컨볼루션 연산 결과를 저장할 배열의 각 원소들을 0이 아닌 초기 값으로 초기화하는 단계; 및 (2) 상기 0이 아닌 초기 값으로 초기화된 상기 배열에, 상기 제1 다항식과 상기 제2 다항식의 다항식 컨볼루션 연산 결과를 저장하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
본 발명의 다항식 컨볼루션 연산 방법은, NTRU 암호 체계를 구성하는 중심 연산인 다항식 컨볼루션 연산을 전력 분석 공격에 대해 저항성을 가지도록 설계함으로써 안전한 암호화 시스템을 제공할 수 있으며, 특히 전력 분석 공격의 두 종류인 단순 전력 분석(simple power analysis: SPA) 및 차분 전력 분석(differential power analysis: DPA)을 모두 막을 수 있는 방법을 제공할 수 있다.
또한, 본 발명의 다항식 컨볼루션 연산 방법은, 큰 오버헤드 없이 전력 분석 공격을 방지하는 것에 의해, 다항식 컨볼루션 연산을 효율적으로 수행함으로써 보안 시스템의 성능을 일정 수준 이상으로 유지하는 방법을 제공할 수 있다.
NTRU, 암호화, 복호화, 다항식 컨볼루션 연산, 전력 분석 공격

Description

엔티알유 암호화 및 복호화를 위한 안전한 다항식 컨볼루션 연산 방법{A SECURE METHOD FOR CALCULATING A POLYNOMIAL CONVOLUTION OPERATION FOR AN NTRU CRYPTOSYSTEM}
본 발명은 공개키 암호 체계인 NTRU 암호화 및 복호화에서 사용될 수 있는 다항식 컨볼루션 연산 방법에 관한 것으로서, 구체적으로는 보안 시스템의 전력 소모 패턴의 측정에 의해 내부의 비밀 키 정보를 알아내고자 하는 전력 분석 공격(Power Analysis Attack)에 대비하여, 연산의 단일화(unification) 및 무작위화(randomization)를 통해 안전한 보안 시스템을 구성하는 방법에 관한 것이다.
최근 인터넷 쇼핑, 인터넷 뱅킹, 은행카드 및 신용카드, 휴대전화 등 유무선 네트워크를 통해 개인의 중요한 정보들이 교환되면서 이를 보호하기 위한 수단의 중요성이 부각되고 있다. 따라서 개인 정보 보호를 위한 가장 중요한 이론적 기반인 암호 체계도 점차 더 많은 주목을 받고 있으며, 이미 30여 년 전부터 다양한 표준 기관에 의해 표준화가 진행되고 하드웨어 및 소프트웨어를 망라하는 다양한 방식으로 실현이 되어 왔다.
공개키 암호의 일종으로 최근에 개발된 NTRU 암호 체계는 매개변수의 선택에 따라 다양한 수준의 안전성을 제공할 수 있으며, 그 안전성의 수준을 기존에 알려져 있는 RSA 및 타원곡선암호와 같은 수준으로 조정할 때 이들보다 현저히 빠른 암호화 및 복호화 속도를 보여줌으로써 차세대 공개키 암호로 새롭게 주목받고 있다. 따라서 NTRU 암호 체계는 현재 IEEE에서 기존의 RSA 및 타원곡선암호 관련 표준인 IEEE P1363을 보완할 차세대 표준, 즉 IEEE P1363.1로 고려되고 있으며, 이미 표준화가 상당히 진행되어 2007년에는 Draft 9의 작업이 진행된 바 있다.
한편, 암호 체계의 안전성은 키(key)의 보호에 기인하므로, 암호 체계의 실현에 있어서는 키에 직접 관련된 연산은 시스템 내부에서 안전하게 보호된 상태로 수행하여 키 관련 정보를 외부로 유출하지 않도록 하는 것이 중요하다. 그러나 암호 체계를 규모가 작은 시스템, 예를 들어 스마트카드(smart card)나 내장형 시스템(embedded system) 등에 구현할 경우 그 구조의 단순성으로 인해 외부의 공격자가 이들 시스템의 전력 소모 패턴을 정밀하게 측정함으로써 키를 추측해 내는 것이 가능하며, 이를 전력 분석 공격(power analysis attack)이라 한다. 이 공격은 이론적으로 아무리 안전한 암호 체계를 설계한다 하더라도 그 구현 단계에서 물리적으로 암호를 무력화시키는 매우 강력한 공격 방법이다. RSA 및 타원곡선암호에 대해서는 전력 분석 공격을 막는 다양한 방법이 연구 개발되어 왔으나, NTRU 암호화에 대해서는 이러한 방법이 개발된 바 없다.
본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, NTRU 암호 체계를 구성하는 중심 연산인 다항식 컨볼루션 연산을 전력 분석 공격에 대해 저항성을 가지도록 설계함으로써 안전한 암호화 시스템을 제공하며, 특히 전력 분석 공격의 두 종류인 단순 전력 분석(simple power analysis: SPA) 및 차분 전력 분석(differential power analysis: DPA)을 모두 막을 수 있는 방법을 제공하는 것을 그 목적으로 한다.
또한, 본 발명은 큰 오버헤드 없이 전력 분석 공격을 방지하는 것에 의해, 다항식 컨볼루션 연산을 효율적으로 수행함으로써 보안 시스템의 성능을 일정 수준 이상으로 유지하는 방법을 제공하는 것을 그 또 다른 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 NTRU 암호화 및 복호화를 위한 다항식 컨볼루션 연산 방법은,
NTRU 암호화 및 복호화에서, 제1 다항식('공개 키' 또는 '암호문'에 해당함)과 임의선택 가능한 제2 다항식과의 다항식 컨볼루션(convolution) 연산 방법으로서,
(1) 상기 제1 다항식과 상기 제2 다항식의 다항식 컨볼루션 연산 결과를 저장할 배열의 각 원소들을 0이 아닌 초기 값으로 초기화하는 단계; 및
(2) 상기 0이 아닌 초기 값으로 초기화된 상기 배열에, 상기 제1 다항식과 상기 제2 다항식의 다항식 컨볼루션 연산 결과를 저장하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
바람직하게는, 상기 초기 값은 상기 배열의 모든 원소들에 대하여 동일한 값을 가질 수 있다.
또한 바람직하게는, 상기 동일한 값은, NTRU 암호화에서의 mod 연산의 피연산자와 동일한 값을 가질 수 있다.
또한 바람직하게는, 상기 초기 값은 상기 배열의 각각의 원소들에 대하여 무작위로 생성된 값을 가질 수 있다.
또한 바람직하게는, 상기 저장 단계 이후, 저장된 컨볼루션 연산 결과로부터 상기 무작위로 생성된 값을 감산할 수 있다.
또한 바람직하게는, 상기 제2 다항식은 승법형(product-form) 다항식을 포함할 수 있다.
본 발명의 다항식 컨볼루션 연산 방법은, NTRU 암호 체계를 구성하는 중심 연산인 다항식 컨볼루션 연산을 전력 분석 공격에 대해 저항성을 가지도록 설계함으로써 안전한 암호화 시스템을 제공할 수 있으며, 특히 전력 분석 공격의 두 종류인 단순 전력 분석(simple power analysis: SPA) 및 차분 전력 분석(differential power analysis: DPA)을 모두 막을 수 있는 방법을 제공할 수 있다.
또한, 본 발명의 다항식 컨볼루션 연산 방법은, 큰 오버헤드 없이 전력 분석 공격을 방지하는 것에 의해, 다항식 컨볼루션 연산을 효율적으로 수행함으로써 보 안 시스템의 성능을 일정 수준 이상으로 유지하는 방법을 제공할 수 있다.
본 발명의 다항식 컨볼루션 연산 방법은, 신용카드, 현금카드 및 교통카드를 포함한 스마트카드, 인터넷 뱅킹에서 현재의 보안카드(난수표)를 대체할 차세대 보안 수단인 일회용 패스워드(one time password: OTP), WCDMA 등 3세대 이동통신에서 사용을 의무화하고 있는 범용 사용자 인증 모듈(universal subscriber identity module: USIM), 내장형 시스템(embedded system) 등에 대해 안전성을 제공할 수 있다.
또한, 본 발명의 다항식 컨볼루션 연산 방법은, 위에 나열된 것들 이외에도 전력 분석 공격이 가능한 모든 시스템에 대해 안전성을 제공할 수 있다.
이하에서는 첨부된 도면들을 참조하여, 본 발명에 따른 실시예에 대하여 상세하게 설명하기로 한다.
먼저, 다항식 컨볼루션 연산 및 NTRU 공개-키 암호체계가 무엇인지 간단히 살펴본 후, 본 발명에 따른 다항식 컨볼루션 연산 방법을 살펴보기로 한다.
1. 다항식 컨볼루션 연산( polynomial convolution operation )
Z를 정수들의 집합이라고 하자. Z[X]로 표시되는 Z에 대한 다항식 링은, Z의 계수들을 갖는 모든 다항식들의 집합이다. 몫 링(quotient ring) R을
Figure 112007094456504-pat00001
로 정의하며, 이는 정수 계수를 갖는 임의의 다항식을 다항식 XN - 1 로 나누었을 때 생길 수 있는 모든 가능한 나머지 다항식들의 집합을 의미한다. 따라서 R에 속하는 원소 a는 다항식 또는 벡터로서 다음 수학식 1과 같이 적을 수 있다.
Figure 112007094456504-pat00002
R에 속하는 원소 a와 b에 대한 컨볼루션 곱 c(
Figure 112007094456504-pat00003
)는, 다음 수학식 2와 같이 표시되는 계수를 갖는다.
Figure 112007094456504-pat00004
여기서,
Figure 112007094456504-pat00005
이기 때문이다.
원칙적으로, 이 연산은 N2개의 정수 곱셈을 필요로 하여 그 계산량이 많다. 그러나 NTRU에 의해 사용되는 다항식 컨볼루션 연산은, 일반적으로 a 또는 b 중 어느 하나가 작은 계수들을 가지며, 따라서 a*b의 계산은 매우 빠르게 수행될 수 있다.
2. NTRU 공개-키 암호체계
다양한 종류의 NTRU 암호체계가 존재하지만, Hoffstein이나 Bailey 등에 의해 제안된 개량 버전은 다음과 같이 설명될 수 있다:
- NTRU는 3가지 공개 파라미터(N, p, q)를 가진다(여기서, p와 q의 최대공약 수는 1이고, p ≪ q임).
- 다항식의 계수들은 mod p or q로 감산된다(reduced mod p or q).
- f-1 mod q로 표시되는 다항식 f의 mod q 상의 역원은,
Figure 112007094456504-pat00006
을 만족하는 다항식으로서 정의된다. 여기서, mod q는 다항식 내의 모든 계수가 mod q로 감산됨, 즉 q로 나눈 나머지로 계산됨을 의미한다.
IEEE P1363.1 표준의 초안(working draft)은 NTRU에 대한 몇 가지 전형적인 파라미터 집합을 제안하는데, 그 중 하나는 (N, p, q) = (251, 2, 197)이다.
2.1 키 생성( Key Generation )
R에 속하며 작은 계수들을 갖는 다항식 F, g를 임의로 선택한다. 그 후,
Figure 112007094456504-pat00007
Figure 112007094456504-pat00008
을 계산한다. 여기서, mod q는 다항식 내의 모든 계수가 mod q로 감산됨, 즉 q로 나눈 나머지로 계산됨을 의미한다. 개인 키(private key)는 다항식 f이며, 공개 키는 다항식 h이다.
2.2 암호화( Encryption )
m을 메시지를 나타내는 다항식이라고 하자. 작은 계수를 갖는 N-1차의 다항식 r을 임의로 선택하고, 암호문(ciphertext)
Figure 112007094456504-pat00009
을 계산한다.
2.3 복호화( Decryption )
e를 복호화하기 위해 먼저
Figure 112007094456504-pat00010
을 계산하되, a의 계수들이 A ≤ ai < A + q를 만족하도록 선택한다. A의 값은 고정되며, 나머지 파라미터에 의존하는 간단한 공식에 의해 결정된다. 그 후,
Figure 112007094456504-pat00011
로서 평문(plaintext) m을 복구한다.
2.4 복호화의 유효성
2.3에서 계산된 다항식 a는 다음 수학식 3을 만족한다.
Figure 112007094456504-pat00012
최종 다항식 pr*g + m*f를 고려해 보자. 파라미터들을 적당히 선택하는 것에 의해, q보다 작은 길이의 인터벌 내에 놓이도록 계수들을 조정할 수 있다. 따라서 우리는 다음 수학식 4와 같이 a를 복구할 수 있다.
Figure 112007094456504-pat00013
즉, mod q에 대해서가 아니라 정확한 등식이 성립하도록 할 수 있으므로 m = a mod p이다.
이상 살펴본 내용을 바탕으로, 본 발명에 따른 다항식 컨볼루션 연산 방법에 대하여 상세히 살펴보기로 한다.
도 1은 NTRU 암호화 시스템에 있어서 중심적인 연산인 다항식 컨볼루션 연산을 구현한 알고리즘의 일예를 나타내는 도면이다. 이 알고리즘은 0보다 크거나 같고 자연수 q보다 작은 정수를 계수로 갖는 일반 다항식 c(X)와, 이진수 1 또는 0을 계수로 갖는 이진 다항식 a(X)를 입력으로 하여 이들 두 다항식의 컨볼루션 곱인 t(X) = a(X)*c(X)를 계산한다. 이때 c(X)를 제1 다항식, a(X)를 제2 다항식이라 한다. 단, a(X)는 계수 1의 위치를 나타내는 배열인 b로 대체되어 입력되며, a(X) 및 c(X)의 계수의 총 개수는 N(정수)개이다. 또한 d는 b 배열상의 원소의 개수이다.
여기서, 이진 다항식 a(X)는 복호화에서의 개인 키(private key) 또는 암호화에서의 무작위 다항식 r에 해당하며, 이 부분은 내부 연산에 해당하므로 외부에서 직접 접근할 수 없다. 즉, N개의 계수를 갖는 이진 다항식인 a(X)의 계수들 중 어느 것들이 1인지를 나타내는 배열 b는 외부에서 알 수 없어야 하며, 다만 일반 다항식 c(X)는 공개된 부분으로서 외부에서 접근이 가능할 뿐 아니라 공격자가 임의로 변조할 수도 있다. 공격자는 자신이 임의로 생성 또는 변조한 데이터를 입력으로 주어 이를 이용한 연산을 수행시킨 후 시스템 내부의 전력 소모 패턴을 외부에서 분석하여 간접적으로 키 정보를 유추해 내게 된다.
다음으로, 지금까지 설명한 NTRU 암호화 시스템에서의 다항식 컨볼루션 연산에 대한 공격을 방지하는 본 발명의 특징에 따른 방법을, 단순 전력 분석 공격의 방지 방법과 차분 전력 분석 공격의 방지 방법으로 나누어 설명하기로 한다.
(1) 단순 전력 분석( Simple Power Analysis : SPA ) 공격의 방지
NTRU에 대한 단순 전력 분석 공격에서 공격자는 시스템 내부에서 일어나는 덧셈 x + y 연산에 대해 x, y 중 어느 하나가 0인 경우와 x, y 모두 0이 아닌 경우에 대해 전력 소모의 미세한 차이를 감지할 수 있다. 이 사실을 이용하여 공격자는 일반 다항식 c(X)의 계수들을 0이 아닌 것들로만 구성한 후 시스템으로 하여금 다항식 컨볼루션을 수행하도록 하여 키 정보를 분석한다.
좀 더 구체적으로, 도 1에 따르면 NTRU 다항식 컨볼루션 알고리즘의 제5-7행은 두 정수의 덧셈을 N회 수행하는 것인데, tj 값들은 처음에 모두 0으로 초기화되어 있으므로 제4행에서 j = 0으로 설정하였을 때는 제 5-7행의 N개 연산은 모두 하나의 피연산자가 0인 덧셈이다. 그러나 다음 단계로 제 4행에서 j = 1로 설정하였을 때는 N개 연산 중 일부는 피연산자가 모두 0이 아닌 덧셈이며, 나머지 일부는 피연산자 중 하나가 0인 덧셈이다. 후자의 경우가 어느 부분에서 발생하는지를 측정하면 b 배열의 첫 번째 원소인 b[0]과 두 번째 원소인 b[1]의 상대적인 차이 값을 구할 수 있다. 공격자가 이를 계속 반복하면 b 배열의 인접한 원소들 간의 상대적 차이 값을 모두 구할 수 있으며, 간단한 전수 조사(exhaustive search)에 의해 b[0]값만 구하면 b 배열 내의 모든 원소를 알아내어 키를 복원할 수 있다.
예를 들어, 다음은 N=7, b = [1, 4, 6]인 경우에 있어서, 도 1의 알고리즘의 제5-7행 부분에 대한 전력 소모 패턴을 시간 순으로 모식적으로 나타낸 것이다.
j = 0: ZN ZN ZN ZN ZN ZN ZN
j = 1: NN NN NN NN ZN ZN ZN
j = 2: NN NN NN NN NN ZN ZN
여기서 ZN는 0과 0이 아닌 수 사이의 덧셈을 나타내며, NN은 0이 아닌 수와 0이 아닌 수 사이의 덧셈을 나타낸다.
상기 결과를 분석해 보면, j = 1일 때 후반부의 3개의 ZN 부분은 b[0]과 b[1]의 상대적인 차이가 3임을 의미하며, j = 2일 때 후반부의 2개의 ZN 부분은 b[1]과 b[2]의 상대적인 차이가 2임을 의미한다. 공격자는 b의 내용을 모르는 상태에서 위의 전력 소모 패턴만으로 b를 추측하게 되는데, b[0]을 x라 추정하면, b = [x, x+3, x+5]를 얻을 수 있다. 따라서 b의 원소 각각은 모르지만 실제로는 x 값 하나만을 구하면 b의 모든 원소들을 구할 수 있으므로 x 값을 전수조사하면 b를 알아낼 수 있다.
상기 공격 방법은 도 1의 알고리즘뿐 아니라 이와 유사한 형태를 가지는 모든 컨볼루션 알고리즘에 적용 가능한 방법이다.
도 2는 본 발명의 일 실시예에 따른, SPA 공격을 막기 위한 다항식 컨볼루션 방법의 일례를 구현한 알고리즘을 나타내는 도면이다. 이 알고리즘은 t 배열의 각 원소들을 0으로 초기화하는 대신 q로 초기화함으로써 0과의 덧셈 자체가 일어나지 않게 하여 모든 덧셈이 유사한 전력 소모 패턴을 가지게 한다. 따라서 0에 대한 덧셈 판별에 기초한 SPA 공격을 방지할 수 있다. 또한, 도 2의 알고리즘은 초기화 단계에서의 변경 이외에 어떠한 추가적인 연산도 수행하지 않으므로 SPA 방지 기능을 추가하는 데서 오는 성능상의 손실이 전혀 없는 것을 특징으로 한다.
도 2의 알고리즘의 제1-3행은, '공개 키' 또는 '암호문'에 해당하는 제1 다항식(c(X))과 임의선택 가능한 제2 다항식(a(X))과의 다항식 컨볼루션 연산 결과를 저장할 배열(t(X))의 각 원소들을 0이 아닌 초기 값(q)으로 초기화하는 단계에 해당하며, 나머지 제4-11행은 0이 아닌 초기 값으로 초기화된 배열(t(X))에, 제1 다항식(c(X))과 상기 제2 다항식(a(X))의 컨볼루션 연산 결과를 저장하는 단계에 해당한다. 특히, 알고리즘 2는 다항식 컨볼루션 연산 결과를 저장할 배열(t(X))의 각 원소들을 0이 아닌 동일한 초기 값(q)으로 저장하는 실시예를 나타내고 있다. 또한, 알고리즘 2에 따르면, 0이 아닌 동일한 초기 값을 mod 연산의 피연산자인 q와 동일한 값으로 설정함으로써, 다항식 컨볼루션 연산 결과를 저장한 후, 처음 초기화 단계에서 사용된 초기 값으로 감산하는 단계를 필요 없도록 하고 있다.
(2) 차분 전력 분석( Differential Power Analysis : DPA ) 공격의 방지
SPA에 대한 방지 기능을 추가한 후에는 0과의 덧셈과 0이 아닌 수들 간의 덧셈은 구분되지 않도록 할 수 있으나, 여전히 덧셈 연산의 피연산자들 간의 차이에 의해 전력 소모의 미세한 차이가 발생할 수 있다. 이러한 차이는 SPA와 같은 단순한 공격 방법으로는 감지하기 어려우나, 차분 전력 분석과 같은 좀 더 고도화된 공격 방법으로는 감지할 수 있다. NTRU에 대한 DPA에서 공격자는 일정한 이진 다항식 a(X)(따라서 일정한 배열 b)에 대하여 다양한 일반 다항식 c(X)들을 변화시키면서 적용하여 그 전력 소모 패턴을 측정한 후 그 결과를 통계적으로 분석하여 배열 b의 정보를 알아낸다. 따라서 공격자는 전력 소모 데이터를 SPA에서보다 더 많이 가지고 있으므로, 1회의 전력 분석에서는 감지할 수 없었던 미세한 차이를 누적시켜 더 큰 정밀도를 가지는 공격을 수행할 수 있다.
좀 더 구체적으로 설명하면, 공격자는 b 배열의 원소들을 알아내는 것이 목표인데, 도 1에 도시된 알고리즘의 제6행에서 tk +b[j] + ck의 결과 값이 최하위 비트가 0인 경우와 1인 경우에 대하여 공격자는 전력 소모의 미세한 차이점을 감지할 수 있다. 다만, 이 차이점은 SPA에서와 같이 1회의 전력 측정으로 구분해 낼 수 있는 차이가 아니므로, 다양한 c(X)에 대하여 연산을 수행하여 전력 소모의 차이를 누적시킴으로써 측정하게 된다. 이러한 공격이 가능한 것은, 같은 피연산자에 대한 덧셈은 같은 전력 소모 패턴을 가진다는 데에 기반하고 있다. 따라서 같은 피연산자와 관련된 계산이라도 항상 다른 전력 소모 패턴이 나오도록 함으로써 DPA를 방지하는 것이 가능하다.
도 3은 본 발명의 일 실시예에 따른, DPA 공격을 막기 위한 다항식 컨볼루션 방법의 일례를 구현한 알고리즘을 나타내는 도면이다. 이 알고리즘은 t 배열의 각 원소들을 무작위수로 초기화함으로써 같은 입력에 대하여 알고리즘을 수행시켜도 전력 소모 패턴이 매번 다르게 나오도록 하는 알고리즘이다. 연산이 끝난 후에는 해당 무작위수를 제거하여 연산 결과를 보정해 주어야 하며, t 배열에 초기화되는 각 원소는 모두 같은 값일 수 있다. 이 알고리즘은 같은 입력은 같은 전력 소모를 발생시킨다고 가정하는 데서 기인하는 DPA 공격을 방지할 수 있다.
도 3에 도시된 알고리즘에서, 제1-3행은 다항식 컨볼루션 연산 결과를 저장 할 배열(t(X))의 각 원소들을 초기화할 초기 값들을 무작위로 생성하는 단계를 나타내며, 제4-6행은, 무작위로 생성된 초기 값들을 이용하여 다항식 컨볼루션 연산 결과를 저장할 배열(t(X))의 각 원소들을 초기화하는 단계들을 나타낸다. 제12-14행은, 저장된 다항식 컨볼루션 연산 결과로부터 상기 무작위로 생성된 값을 감산하는 단계를 나타낸다.
도 4 및 도 5는 전력 분석 공격에 대한 방지 기법이 적용되지 않은 도 1의 알고리즘을 이용하여 DPA 공격을 수행하는 실험의 예를 나타내는 도면이다. 도 4와 도 5의 가로축은 시간축이며, 세로축은 전력 신호의 크기를 나타낸다. 이 실험에서 공격자는 고정되어 있는 (그러나 공격자는 모르는) b 배열의 j번째 원소인 b[j]의 값을 임의로 추정한 후, 도 1에 도시된 알고리즘을 서로 다른 다수 개의 c(X) 다항식들에 대하여 수행하여 tk +b[j] + ck 결과 값이 최하위 비트가 1인 경우와 0인 경우를 분류한 후 이들의 차이를 증폭시킨다. 추정이 잘못되었을 경우의 증폭 신호에서는 도 4와 같이 아무런 특징 없이 0을 중심으로 무작위 값들이 나타나게 된다. 만일 추정이 맞을 경우에는 도 5와 같이 일정 부분에서 신호의 극값(peak value)이 나타나게 된다. 이때 공격자는 b[j]의 여러 가능성들에 대해 극값이 나타날 때까지 다른 값으로 재추정하여 분류 및 증폭하는 작업을 반복하면 된다.
본 발명의 특징에 따른 DPA 방지 기법을 적용하면 도 5와 같이 극값이 나타나는 경우는 발생하지 않게 되며, 공격자가 정확한 추정을 하더라도 도 4와 유사한 증폭 그래프를 얻게 되어 자신이 추정한 값이 맞는 값인지 틀린 값인지 확인할 수 없어 공격에 성공할 수 없게 된다.
도 6 및 도 7은 DPA 공격을 막기 위한 다항식 컨볼루션 방법의 또 다른 실시예들을 구현한 알고리즘을 나타내는 도면이다. 이 알고리즘들도 역시 t 배열의 각 원소들을 무작위수로 초기화함으로써 같은 입력에 대하여 알고리즘을 수행시켜도 전력 소모 패턴이 매번 다르게 나오도록 하는 알고리즘이다. 연산이 끝난 후에는 해당 무작위수를 제거하여 연산 결과를 보정해 주어야 하며, t 배열에 초기화되는 각 원소는 모두 같은 값일 수 있다. 이 알고리즘은 같은 입력은 같은 전력 소모를 발생시킨다고 가정하는 데서 기인하는 DPA 공격을 방지할 수 있다.
또한 도 2의 SPA 방지 알고리즘과 도 3, 도 6, 도 7의 DPA 방지 알고리즘들은 다항식 a(X)가 단순한 이진 다항식이 아니라 ‘승법형(product-form)’의 다항식인 경우에도 유사하게 적용 가능하다. 여기서, ‘승법형(product-form)’의 다항식이란, 이진 다항식 a1(X), a2(X), a3(X)에 대하여 a(X) = a1(X)*a2(X) 또는 a(X) = (a1(X)*a2(X)+a3(X)) 또는 a(X) = a1(X)*a2(X)*a3(X)와 같은 형태의 다항식을 말한다.
이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.
도 1은 NTRU 암호화 시스템에 있어서 중심적인 연산인 다항식 컨볼루션 연산을 구현한 알고리즘의 일예를 나타내는 도면.
도 2는 본 발명의 일 실시예에 따른, SPA 공격을 막기 위한 다항식 컨볼루션 방법의 일예를 구현한 알고리즘을 나타내는 도면.
도 3은 본 발명의 일 실시예에 따른, DPA 공격을 막기 위한 다항식 컨볼루션 방법의 일예를 구현한 알고리즘을 나타내는 도면.
도 4 및 도 5는 전력 분석 공격에 대한 방지 기법이 적용되지 않은 도 1의 알고리즘을 이용하여 DPA 공격을 수행하는 실험의 예를 나타내는 도면.
도 6 및 도 7은 DPA 공격을 막기 위한 다항식 컨볼루션 방법의 또 다른 실시예들을 구현한 알고리즘을 나타내는 도면.
<도면 중 주요 부분에 대한 부호의 설명>
c(X): '공개 키' 또는 '암호문'에 해당하는 제1 다항식
a(X): 임의선택 가능한 제2 다항식
t(X): 다항식 컨볼루션 연산 결과를 저장할 배열
b: N개의 계수를 갖는 이진 다항식인 a(X)의 계수들 중 어느 것들이 1인지를 나타내는 배열
q: mod 연산의 피연산자
rj: 무작위로 생성된 초기 값

Claims (6)

  1. NTRU 암호화 및 복호화에서, 제1 다항식('공개 키' 또는 '암호문'에 해당함)과 임의선택 가능한 제2 다항식과의 다항식 컨볼루션(convolution) 연산 방법으로서,
    (1) 상기 제1 다항식과 상기 제2 다항식의 다항식 컨볼루션 연산 결과를 저장할 배열의 각 원소들을 0이 아닌 초기 값으로 초기화하는 단계; 및
    (2) 상기 0이 아닌 초기 값으로 초기화된 상기 배열에, 상기 제1 다항식과 상기 제2 다항식의 다항식 컨볼루션 연산 결과를 저장하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 초기 값은 상기 배열의 모든 원소들에 대하여 동일한 값을 갖는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 동일한 값은, NTRU 암호화에서의 mod 연산의 피연산자와 동일한 값을 갖는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 초기 값은 상기 배열의 각각의 원소들에 대하여 무작위로 생성된 값을 갖는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 저장 단계 이후, 저장된 다항식 컨볼루션 연산 결과로부터 상기 무작위로 생성된 값을 감산하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 제2 다항식은 승법형(product-form) 다항식을 포함하는 것을 특징으로 하는 방법.
KR1020070140162A 2007-12-28 2007-12-28 엔티알유 암호화 및 복호화를 위한 안전한 다항식 컨볼루션연산 방법 KR100876442B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2007/006988 WO2009084752A1 (en) 2007-12-28 2007-12-28 A secure method for calculating a polynomial convolution operation for an ntru cryptosystem
KR1020070140162A KR100876442B1 (ko) 2007-12-28 2007-12-28 엔티알유 암호화 및 복호화를 위한 안전한 다항식 컨볼루션연산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070140162A KR100876442B1 (ko) 2007-12-28 2007-12-28 엔티알유 암호화 및 복호화를 위한 안전한 다항식 컨볼루션연산 방법

Publications (1)

Publication Number Publication Date
KR100876442B1 true KR100876442B1 (ko) 2008-12-29

Family

ID=40373348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070140162A KR100876442B1 (ko) 2007-12-28 2007-12-28 엔티알유 암호화 및 복호화를 위한 안전한 다항식 컨볼루션연산 방법

Country Status (2)

Country Link
KR (1) KR100876442B1 (ko)
WO (1) WO2009084752A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112818366A (zh) * 2021-02-01 2021-05-18 东北大学 一种基于ntru全同态加密的图像特征检测方法
US11146292B2 (en) 2019-12-13 2021-10-12 Agency For Defense Development Data decoding apparatus and method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683102A (zh) * 2013-11-29 2015-06-03 上海复旦微电子集团股份有限公司 一种sm2签名计算方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998008323A1 (en) 1996-08-19 1998-02-26 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
WO2003050998A1 (en) * 2001-12-07 2003-06-19 Ntru Cryptosystems, Inc. Digital signature and authentication method and apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100406138B1 (ko) * 2001-11-28 2003-11-14 한국전자통신연구원 엔티알유 암/복호화 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998008323A1 (en) 1996-08-19 1998-02-26 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
US6081597A (en) 1996-08-19 2000-06-27 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
WO2003050998A1 (en) * 2001-12-07 2003-06-19 Ntru Cryptosystems, Inc. Digital signature and authentication method and apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11146292B2 (en) 2019-12-13 2021-10-12 Agency For Defense Development Data decoding apparatus and method
CN112818366A (zh) * 2021-02-01 2021-05-18 东北大学 一种基于ntru全同态加密的图像特征检测方法
CN112818366B (zh) * 2021-02-01 2023-09-26 东北大学 一种基于ntru全同态加密的图像特征检测方法

Also Published As

Publication number Publication date
WO2009084752A1 (en) 2009-07-09

Similar Documents

Publication Publication Date Title
CA2614120C (en) Elliptic curve point multiplication
US8595513B2 (en) Method and system for protecting a cryptography device
JP4671571B2 (ja) 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ
EP1648111B1 (en) Tamper-resistant encryption using a private key
US7162033B1 (en) Countermeasure procedures in an electronic component implementing an elliptical curve type public key encryption algorithm
EP1134653B1 (en) Information processing device, information processing method and smartcard
US20130279692A1 (en) Protecting modular exponentiation in cryptographic operations
Galindo et al. A practical leakage-resilient signature scheme in the generic group model
KR20090006176A (ko) 평문 판정 방법
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
RU2579990C2 (ru) Защита от пассивного сниффинга
EP2154604A1 (en) Countermeasure securing exponentiation based cryptography
US10461922B2 (en) Method and system for protecting a cryptographic operation
JP5261088B2 (ja) 不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法
EP3089398B1 (en) Securing a cryptographic device
US9780946B2 (en) Elliptic curve encryption method comprising an error detection
KR100876442B1 (ko) 엔티알유 암호화 및 복호화를 위한 안전한 다항식 컨볼루션연산 방법
KR20070075665A (ko) Dfa에 대항하는 방법을 구비하는 몽고메리 전력 래더알고리즘
KR20190006490A (ko) 천 저항 정적 디피-헬만 보안을 위한 방법 및 시스템
KR101513012B1 (ko) 오류 주입과 전력 분석을 조합한 공격에 강인한 멱승 방법
KR100875461B1 (ko) 전력 분석 공격 방지를 위한 엔티알유 다항식 컨볼루션연산 방법 및 컴퓨터로 읽을 수 있는 기록매체
JP3952304B2 (ja) 電子コンポネントにおいて公開指数を求める暗号アルゴリズムを実行する方法
US10305678B2 (en) Imbalanced montgomery ladder
US11029922B2 (en) Method for determining a modular inverse and associated cryptographic processing device
KR20240040437A (ko) 암호 연산 방법, 및 상기 방법을 수행하는 전자 장치

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20121217

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130913

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140818

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160912

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170829

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee