KR100406138B1 - 엔티알유 암/복호화 장치 - Google Patents

엔티알유 암/복호화 장치 Download PDF

Info

Publication number
KR100406138B1
KR100406138B1 KR10-2001-0074631A KR20010074631A KR100406138B1 KR 100406138 B1 KR100406138 B1 KR 100406138B1 KR 20010074631 A KR20010074631 A KR 20010074631A KR 100406138 B1 KR100406138 B1 KR 100406138B1
Authority
KR
South Korea
Prior art keywords
output
ntru
storage means
value
encryption
Prior art date
Application number
KR10-2001-0074631A
Other languages
English (en)
Other versions
KR20030043448A (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 KR10-2001-0074631A priority Critical patent/KR100406138B1/ko
Publication of KR20030043448A publication Critical patent/KR20030043448A/ko
Application granted granted Critical
Publication of KR100406138B1 publication Critical patent/KR100406138B1/ko

Links

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

Abstract

본 발명에 따른 NTRU 암/복호화 장치는 NTRU 암호화 및 복호화 연산과정에서 메모리 낭비를 줄이고, 연산의 효율성을 높이기 위한 레지스터 구조를 가지며, NTRU 암호화 및 복호화 연산에 필요한 다항식 곱셈 연산을 수행할 수 있는 NTRU 곱셈 연산기 구조를 포함하며, 모듈러 연산을 위하여 중간 모듈러 연산 및 덧셈 연산기를 이용한 MOD_P 연산기 구조를 채택함으로써, 기존의 종래의 공개키 암호 시스템보다 고속의 암호화 및 복호화 동작을 수행할 수 있으며, 전자 상거래, 전자화폐, 사용자 신분 확인, 사용자 키 관리, 결재 시스템 등에서 높은 안전도와 고성능을 제공하며, 안전성과 시스템 성능에 따라 확장이 용이한 효과를 제공한다.

Description

엔티알유 암/복호화 장치{apparatus for NTRU Cryptosystem}
본 발명은 NTRU 암/복호화 장치에 관한 것이다.
암호 시스템은 크게 비밀키 암호 시스템과 공개키 암호 시스템으로 구분되어진다. 비밀키 암호 시스템은 비밀 채널로 공유된 비밀키를 가지고 상호간의 암호 통신을 하는 방식으로 송, 수신자가 동일한 키에 의하여 암호화 및 복호화 과정을 수행하므로, 키를 안전하게 전송하고 보관함에 어려움이 있다.
이와 같은 키 분배 어려움을 해결한 것이 공개키 암호 알고리즘이다. 공개키 암호는 암호화하는 키와 복호화하는 키가 서로 다른 암호 시스템으로 암호 통신을 원하는 상대의 공개키를 받아서 암호화하여 전송하면 수신측은 자신만의 개인키를 가지고 암호문을 복호화 할 수 있다. 공개키 암호 알고리즘은 키 분배의 문제점을 해결함과 동시의 전자서명의 기능을 제공한다.
그러나, 공개키 암호 알고리즘은 암,복호화의 연산량이 매우 큰 단점을 가지고 있기 때문에 데이터 암호화보다는 비밀키 분배나 전자서명 혹은 인증이 필요한 응용에 사용되고 있다.
대표적인 공개키 암호 시스템으로 RSA와 타원곡선 암호 시스템을 들 수 있다. RSA는 1977년 Rivest, Shamir, Adleman에 의해 개발되었으며, 큰 수의 소인수 분해의 어려움에 안전성의 근거를 두고 있다. RSA 암호화 장치는 Montgomery 곱셈 연산기를 이용하여 많이 구현되며, 현재 공개키 암호 시스템으로 가장 널리 사용되고 있다.
타원곡선 암호 시스템은 1985년 N. Koblitz와 V. Miller에 의해 제안된 암호 시스템으로 타원곡선 상에서 이산대수의 어려움에 안전성의 근거를 두고 있다. 타원곡선 암호 시스템은 어떤 체(Field)를 사용하는가에 따라서 프라임(prime) 체 타원곡선 시스템과 바이너리 체 타원곡선 시스템으로 구분된다. 프라임 체 타원곡선 시스템은 필요한 연산이 RSA에서 수행되는 연산과 유사하여, RSA 암호화 장치와 유사한 연산 장치를 이용하여 구현된다.
바이너리 체 타원곡선 시스템은 다항식 곱셈 연산 장치와 다항식 역승산 연산 장치를 이용하여 구현되는데, 다항식 계수가 0과 1만을 가지므로 구현이 용이하다. 타원곡선 암호 시스템은 RSA에 비해서 짧은 길이의 키 값으로도 충분한 안전성을 보장하여 점차 RSA를 대체하는 공개키 암호 시스템으로 고려되고 있다.
NTRU는 1996년에 발표된 공개키 암호 시스템으로, 브라운대학의 수학과 교수인 Hoffstein, Pipher, Silverman이 고안한 새로운 공개키 암호시스템으로, 두 개의 서로 다른 모듈에 의한 다항식 연산 결과 분석의 어려움에 안전성의 근거를 두고 있다. 최근 시스템의 안전성이 검증되면서 점차 주목 받기 시작한 공개키 암호 알고리즘이다. 이의 안전성은 두 개의 서로 다른 모듈에 의한 다항식 연산 결과 분석의 어려움에 근거를 두고 있으며, 암호 시스템에 이용되는 연산이 복잡하지 않아 암호화 및 복호화 시간이 빠르다는 장점이 있다.
실제 NTRU 암호 시스템의 암호화 및 복호화에 사용되는 주요 연산은 다항식 곱셈 연산 한 가지로 연산 방법은 바이너리 체의 타원곡선 암호 시스템에서 사용되는 다항식 곱셈 연산과 유사하다. 그러나, 곱해지는 두 다항식의 계수들의 표현 범위가 다르다는 점과 많은 메모리를 필요로 한다는 점, 그리고 암호화와 복호화에 필요한 연산이 다소 다르다는 점에서 하드웨어 구현이 쉽지 않고 주로 소프트웨어적인 구현이 이루어지고 있는 문제점이 있다.
본 발명은 이러한 문제점을 해결하기 위하여 안출된 것으로, NTRU 암호화 및 복호화를 효율적으로 수행할 수 있는 NTRU 암/복호화 장치를 제공하는데 그목적이 있다.
도 1은 본 발명의 일실시예에 따른 NTRU 암/복호화 장치의 구성 블록도.
도 2는 도 1에 도시된 입력 레지스터 A의 구성 블록도.
도 3은 도 1에 도시된 입력 레지스터 B (Mod p)의 구성 블록도.
도 4는 도 1에 도시된 입력 레지스터 C (Mod q)의 구성 블록도.
도 5는 도 1에 도시된 NTRU 곱셈 연산기의 구성 블록도.
도 6은 도 1에 도시된 MOD_P 연산기의 구성 블록도.
*도면의 주요부분에 대한 부호의 설명*
11 : 입력 시스템 버스 12 : 입력 레지스터 A
13 : 입력 레지스터 B 14 : 입력 레지스터 C
15 : NTRU 제어기 16 : NTRU 곱셈 연산기
17 : 출력 레지스터 18 : 출력 제어기
19 : MOD_P 연산기
이러한 목적을 달성하기 위한 본 발명에 따른 NTRU 암/복호화 장치의 일측면에 따르면, NTRU 암/복호화 장치에 있어서, NTRU 암호화를 위한 입력 메시지나 NTRU 복호화를 위한 비밀키를 저장하기 위한 제 1 저장 수단과, NTRU 암/복호화를 위한 p를 계수의 모듈러 값으로 취하는 다항식 입력값을 저장하기 위한 제 2 저장 수단과, NTRU 암/복호화를 위한 q를 계수의 모듈러 값으로 취하는 다항식 입력값을 저장하기 위한 제 3 저장 수단과, 제 1 저장 수단과 제 2 저장 수단과 제 3 저장 수단의 값을 이용하여 NTRU 암호화 연산을 수행하고, 복호화 연산을 수행하는 NTRU 연산 수단과, NTRU 연산 수단의 출력 값을 저장한 후 다음 연산에 사용되도록 NTRU 연산 수단으로 입력하기 위한 제 4 저장 수단과, 제 4저장 수단의 출력을 결정하기 위한 출력 선택 수단과, 출력 선택 수단의 출력 값의 모듈러 연산을 위한 모듈러연산 수단과, 각 저장수단 및 NTRU 연산 수단을 제어하고 연산 결과 값의 전송을 통제하기 위한 NTRU 제어 수단을 포함하여 구성된다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 본 발명의 일실시예에 따른 NTRU 암/복호화 장치의 구성 블록도이다. 도 1 에 도시된 바와 같이, 본 발명에 따른 NTRU 암/복호화 장치는 입력 시스템 버스(11), 입력 메시지나 비밀키 Fp를 저장하는 입력 레지스터 A(12), p를 계수의 모듈러 값으로 취하는 입력 다항식 값을 저장하는 입력 레지스터 B(13), q를 계수의 모듈러 값으로 취하는 입력 다항식 값을 저장하는 입력 레지스터 C(14), 각 레지스터와 NTRU 곱셈 연산기 및 출력을 제어하는 NTRU 제어기(15), 각 입력 값들의 NTRU 곱셈 연산을 수행하는 NTRU 곱셈 연산기(16), 중간 연산 결과와 최종 출력값을 저장하는 출력 레지스터(17), 출력 레지스터 값 중 출력 시스템 버스로의 출력값을 선택하는 출력 제어기(18), 그리고 출력 제어기의 출력값을 모듈러 연산을 취하여 다시 입력 레지스터 C로 입력하는 MOD_P 연산기(19), 그리고 출력을 위한 출력 시스템 버스(20)을 구비한다.
NTRU 암/복호화기는 암호화 동작과 복호화 동작 두 가지로 구분되는데, 각 동작은 수학식 1과 수학식 2와 같이 되도록 동작한다.
NTRU 암호화 과정
입력 : r (랜덤 다항식), h (공개키 다항식), m (메시지)
출력 : e (암호화 메시지)
1. e = r * h + m (modulo q)
NTRU 복호화 과정
입력 : e (암호화 메시지), f (비밀키 다항식), Fp (비밀키 다항식)
출력 : c (복호화 메시지)
a = f * e (modulo q)
b = a (modulo p)
c = Fp * b (modulo p)
여기서 수학식 1과 수학식 2의 각 값들은 차수가 N인 다항식이며 r, m, f, Fp, a, c의 계수값은 p를 모듈러 값으로 계산되며, h, e, a의 계수값은 q를 모듈러 값으로 계산된다.
도 1를 참조하여 본 발명에 따른 암호화/복호화의 동작을 설명하도록 하자. NTRU 암호화 과정은 메시지 m과 랜덤 다항식 r과 공개키 h를 각각 레지스터 A와 레지스터 B와 레지스터 C에 입력하여 연산을 수행한다. 연산은 먼저, 입력 레지스터 B와 입력 레지스터 C, NTRU 곱셈 연산기, 그리고 출력 레지스터를 이용하여 r * h 연산을 수행한 후, 메시지 m을 더하는 연산을 수행한다. 이때 출력 레지스터는 중간 연산 결과값들과 최종 출력값을 저장한다.
NTRU 복호화 과정은 수학식 2에서와 같이 3단계로 수행된다. 비밀키인 f와Fp를 각각 입력 레지스터 B(13)와 입력 레지스터 A(12)에 저장하고, 암호화 메시지 e를 입력 레지스터 C(14)에 저장한 후, 단계 1의 f * e (modulo q) 다항식 곱셈 연산을 위하여 입력 레지스터 B(13)와 입력 레지스터 C(14), NTRU 곱셈 연산기(16), 그리고 출력 레지스터(17)를 이용한다. 곱셈 연산 출력은 출력 레지스터(17)에 저장되며, MOD_P 연산기에 의해 단계 2의 모듈러 연산이 수행된다. 출력 제어기(18)는 모듈러 연산이 수행될 값을 선택한다. 모듈러 연산이 수행된 값은 다시 입력 레지스터 C에 저장되어 단계 3 연산에 쓰이게 되는데, 비밀키인 Fp 역시 단계 3의 다항식 곱셈 연산을 위하여 입력 레지스터 B(13)에 저장된다. 마지막으로 입력 레지스터 B(13)에 저장된 비밀키 Fp와 입력 레지스터 C(14)에 저장된 중간 연산 결과값 b를 NTRU 곱셈 연산기(16)를 이용하여 다항식 곱셈 연산을 수행한다. 이때, NTRU 곱셈 연산기(16)의 출력이 모듈러 p인 값이 되도록 NTRU 곱셈 연산기(16)가 동작한다. 최종 출력은 역시 출력 레지스터에 저장된다.
도 2는 본 발명에 따른 입력 레지스터 A의 일실시예 상세 구성도이다.
도 2에 도시된 바와 같이 본 발명에 따른 입력 레지스터 A(12)는 N개의 2비트 레지스터(12a)로 구성된다. 입력 레지스터 A(12)는 NTRU 암호화 과정에서는 메시지 m을 저장하고, NTRU 복호화 과정에서는 비밀키 Fp를 저장하는데 사용된다. 메시지 m과 비밀키 Fp의 계수는 p를 모듈러 값으로 취하는데, NTRU 암호 시스템 효율성과 안전성을 보장하기 위하여 p의 값은 `3`을 기본으로 한다. 따라서 각 계수는 0, 1, -1(2) 세가지 값 중에 하나가 되며, 이를 계수는 2비트 레지스터에 저장된다. 이와 같은 데이터 구조는 필요없는 메모리의 낭비를 줄일 수 있다. 입력 레지스터 A에 저장된 값은 모두 동시에 출력되어 연산에 이용된다.
도 3은 본 발명에 따른 입력 레지스터 B의 일실시예 상세 구성도이다.
도 3에 도시된 바와 같에 본 발명에 따른 입력 레지스터 B(13)는 N개의 다중화기(13a)과 N개의 2비트 레지스터(13b)로 구성된다. 입력 레지스터 B(13)는 NTRU 암호화 및 복호화 과정의 다항식 곱셈에서 모듈러 p를 취하는 다항식을 저장하는데 사용된다. 입력 레지스터 A(12)와 마찬가지로 각 자리는 2비트씩 할당되며, 다항식 곱셈 연산을 위하여 한 클럭마다 값이 순환(rotate)되는 데이터 패스를 포함하고 있다. 각 다중화기(13a)는 입력 시스템 버스(11)로부터의 입력과 입력 레지스터 A(12)로부터의 입력, 그리고 순환 데이터 패스를 위한 입력 중에서 하나를 선택하여 각 레지스터에 입력한다. 입력 레지스터 A로부터의 입력은 복호화 연산 때 입력 레지스터 A에 저장된 비밀키 Fp를 저장하기 위해서 사용된다. 입력 레지스터 B의 출력은 최하위 차수 값 2비트만 출력되어 곱셈 연산에 이용된다.
도 4은 본 발명에 따른 입력 레지스터 C의 일실시예 상세 구성도이다.
도 4에 도시된 바와 같에 본 발명에 따른 입력 레지스터 C(14)는 N개의 다중화기(14a)과 N개의 q` 비트 레지스터(14b)로 구성되며, NTRU 암호화 및 복호화 과정의 다항식 곱셈에서 모듈러 q를 취하는 다항식을 저장하는데 사용된다. 복호화 과정에서는 단계 2의 모듈러 p 연산의 중간 연산 결과를 저장하기 위하여 사용되기도 한다. 여기서 q`값은 log2(q)로 계산되는 값으로, 1024비트 RSA와 동등한 안전성을 보장하는 (251(N), 128(q), 3(p)) NTRU 시스템에서 입력 레지스터 C(14)는 7비트 레지스터 251개로 구성된다. 다중화기는 입력 시스템 버스로부터의 입력과MOD_P 연산기(19)로부터의 입력을 선택하여 각 레지스터에 입력한다. 입력 레지스터 C(14)의 출력은 입력 레지스터 A(12)와 마찬가지로 모든 데이터 값이 출력되어 연산에 이용된다. 도 1의 출력 레지스터(17)도 입력 레지스터 C(14)와 같이 N개의 q` 비트 레지스터로 구성되는데, 다중화기 없이 입력을 NTRU 곱셈 연산기(16)로부터의 입력 하나만 가진다.
도 5는 본 발명에 따른 NTRU 곱셈 연산기의 일실시예 상세 구성도이다.
도 5에 도시된 바와 같에 본 발명에 따른 NTRU 곱셈 연산기(16)는 N차수의 다항식의 곱셈연산을 동시에 수행하는데, 이를 위해서 하나의 OR 연산기(16a)과 N개의 q`비트 곱셈 연산을 수행하는 연산기로 구성된다. 이 q` 비트 곱셈 연산기는 Data_B로부터 출력과 Data_C로부터 출력의 비트 곱을 위한 q`×1 AND 연산기(16b), Data_B와 Data_C의 다항식 곱셈연산을 할 것인지 다항식 곱셈 결과와 Data_A의 덧셈 연산을 수행할 것인지를 선택하기 위한 다중화기(16c), 덧셈 또는 뺄셈을 위한 add/sub 연산기(16d), 복호화의 단계 3 연산의 모듈러 연산을 위한 Mod_3 연산기(16e), 암호화 연산인지 복호화 연산인지에 따라 출력을 결정하기 위한 다중화기(16f)로 구성된다.
이 동작을 자세히 살펴보면, NTRU 곱셈 연산기(16)는 암호화와 복호화 단계 1을 위한 모듈러 q 다항식 곱셈 연산, 암호화 시 곱셈 결과와 메시지의 덧셈 연산, 그리고 복호화 단계 3을 위한 모듈러 p 다항식 곱셈 연산 등의 연산을 수행한다. 모듈러 q 다항식 곱셈 연산은 Data_B의 값이 `1`인 경우 출력 레지스터 값에 입력 레지스터 C의 값을 더하고, `-1`인 경우 값을 빼는 연산을 수행한다. 이와 같은 연산을 위하여 Data_B로부터 2비트 입력을 OR 연산기(16a)에 의해 OR하여 Data_C의 입력값과 AND 연산을 취하고, Data_B의 상위 비트 값에 따라서 add/sub 연산기(16d)를 덧셈기 또는 뺄셈기로 동작시켜 출력한다. 암호화 과정에서 곱셈 결과와 메시지 m의 덧셈 연산은 Data_A와 Data_out이 더해지도록 다중화기(16c)를 제어하여 수행한다. 복호화 단계 3 과정을 위한 모듈러 p 다항식 곱셈 연산은 모듈러 q 다항식 곱셈 연산과 동일하지만, 출력이 모듈러 p가 되도록 Mod_3 연산기(16e)를 통해 출력된다. 이때 Mod_3 연산기(16e)로 입력되는 데이터의 실제 값은 7(1112)을 넘지 않기 때문에 간단한 로직으로 구현된다.
도 6은 본 발명에 따른 MOD_P 연산기(19)를 구현하는 일실시예의 구성 블록도이다.
도 6에 도시된 연산기는 q가 128인 경우로 모듈러 3 연산을 위한 연산기로, 7비트 레지스터(19b)와 다중화기(19a), 중간 모듈러 연산을 위한 홀수비트 mod3(19c), 짝수비트 mod3(19d), Mod3(19e) 연산기들과, 4개의 2비트 덧셈기(19f, 19g, 19h, 19i)와 하나의 3비트 덧셈기(19j), 출력 변환기(19k)로 구성된다.
이 동작을 자세히 살펴보면, 저장된 값은 먼저 홀수비트 mod3(19c), 짝수비트 mod3(19d),Mod3(19e) 연산기들에 의해서 각 비트 별로 모듈러 연산이 수행된다. 여기서 홀수비트 mod3 블록(19c)은 입력값이 있는 경우 `1`을 출력하는데, 이는 3번째 비트 이상의 홀수 비트들은 `3`으로 나누었을 때 나머지가 `1`이기 때문이다. 마찬가지로 짝수비트 mod3 블록(19d)은 입력값이 있는 경우 `2`를 출력한다. Mod3 블록은 입력값이 `3`인 경우, `0`을 출력하고 나머지인 경우에는 그대로 출력한다.이렇게 중간 모듈러 연산이 취해진 값들은 덧셈기들을 통하여 전부 더해져서 다시 입력 레지스터에 저장된다. 최종 결과를 얻기 위해서는 └log2n┘(n:비트길이, └┘은 올림) 값 만큼의 반복이 필요하다. 도 6의 7비트 입력에 대해서는 3번의 반복이 필요하다. 최종 출력은 출력 변환기(19k)를 통하여 레지스터 C(14)로 출력되는데, 출력변환기(19k)에서는 출력값이 '2'일 경우 '-1'로 변환하는 동작을 수행한다. 이는 덧셈기의 출력이 -p/2와 p/2 사이 값이 되도록 하기 위한 것이다. MOD_P연산기(19)의 입력 비트가 크지 않은 경우 롬 테이블로 구성할 수 있다. 이런 경우 한 클럭에 출력을 얻을 수 있다.
상기와 같은 구조로 개발한 NTRU 암/복호화 장치는 다음과 같은 효과를 가진다.
첫째, 본 발명에서 제안하는 방법으로 구현된 NTRU 암/복호화 장치는 RSA나 타원곡선 암호시스템 등의 기존의 공개키 암호 시스템보다 고속의 암호화 및 복호화 동작을 수행할 수 있다.
둘째, 본 발명에서 제안하는 방법으로 구현된 NTRU 암/복호화 장치는 전자 상거래, 전자화폐, 사용자 신분 확인, 사용자 키 관리, 결재 시스템 등에서 높은 안전도와 고성능을 제공한다.
셋째, 본 발명에서 제안하는 방법으로 구현된 NTRU 암/복호화 장치는 높은 성능의 공개키 암호 시스템을 필요로 하는 네트워크 서버등에서 키 교환, 서명, 사용자 인증 등의 용도에 사용될 수 있다.
넷째, 본 발명에서 제안하는 방법으로 구현된 NTRU 암/복호화 장치는 처리에 많은 시간을 요하는 다항식 곱셈 연산 및 모듈러 연산기를 하드웨어적인 방법으로 고속으로 처리하여 실시간 처리 요건을 만족시킨다.
다섯째, 본 발명에서 제안하는 방법으로 구현된 NTRU 암/복호화 장치는 안전성과 시스템 성능에 따라 확장이 용이하다.

Claims (7)

  1. NTRU 암/복호화 장치에 있어서,
    NTRU 암호화를 위한 입력 메시지나 NTRU 복호화를 위한 비밀키를 저장하기 위한 제 1 저장 수단과,
    NTRU 암/복호화를 위한 p를 계수의 모듈러 값으로 취하는 다항식 입력값을 저장하기 위한 제 2 저장 수단과,
    NTRU 암/복호화를 위한 q를 계수의 모듈러 값으로 취하는 다항식 입력값을 저장하기 위한 제 3 저장 수단과,
    상기 제 1 저장 수단과 상기 제 2 저장 수단과 상기 제 3 저장 수단의 값을 수학식 1을 이용하여 NTRU 암호화 연산을 수행하고, 수학식 2를 이용하여 복호화 연산을 수행하는 NTRU 연산 수단과,
    상기 NTRU 연산 수단의 출력 값을 저장한 후 다음 연산에 사용되도록 상기 NTRU 연산 수단으로 입력하기 위한 제 4 저장 수단과,
    상기 제 4저장 수단의 출력을 결정하기 위한 출력 선택 수단과,
    상기 출력 선택 수단의 출력 값의 모듈러 연산을 위한 모듈러 연산 수단과,
    각 레지스터와 NTRU 연산 수단을 제어하고 연산 결과 값의 전송을 제어하기 위한 NTRU 제어 수단을 포함하는 NTRU 암/복호화 장치.
    [수학식 1]
    e = r*h + m(modulo q)
    [수학식 2]
    a = f * e(modulo p)
    b = a(modulo p)
    c = Fp * b(modulo p)
    (단 r: 랜덤 다항식, h : 공개키 다항식, m:메시지, e: 암호화 메시지, f:비밀키 다항식, Fp:비밀키 다항식, c: 복호화 메시지)
  2. 제 1항에 있어서, 상기 제 1 저장 수단은,
    N개의 2비트 레지스터가 병렬로 연결되어 이루어진 NTRU 암/복호화 장치.
  3. 제 1항에 있어서, 상기 제 2 저장 수단은,
    입력 시스템 버스로부터의 입력치, 상기 제 1 저장수단의 출력치, 순환 데이터 패스를 위한 전단계의 출력치를 입력으로 하는 N개의 다중화기와,
    상기 N개의 각 다중화기의 출력치를 입력으로 하는 N개의 2비트 레지스터가 병렬로 연결되어 이루어진 NTRU 암/복호화 장치.
  4. 제 1항에 있어서, 상기 제 3 저장 수단은,
    입력 시스템 버스로부터의 입력치, 상기 모듈러 연산 수단의 출력치를 입력으로 하는 N개의 다중화기와,
    상기 N개의 각 다중화기의 출력치를 입력으로 하는 N개의 q`비트 레지스터로 이루어진 NTRU 암/복호화 장치.
  5. 제 1항에 있어서, 상기 NTRU 연산 수단은, 하나의 OR 연산기와, N개의 q`곱셈연산기로 이루어지되, 상기 각 q`곱셈연산기는,
    상기 제 2 저장수단의 출력과 상기 제 3 저장수단의 출력의 비트 곱을 위한 q`×1 AND 연산기와,
    상기 제 2 저장수단의 출력값과 상기 제 3 저장수단의 다항식 곱셈연산을 할 것인지 다항식 곱셈 결과와 Data_A의 덧셈 연산을 수행할 것인지를 선택하기 위한 다중화기와,
    상기 다중화기의 출력과 상기 출력 선택 수단의 출력값을 입력으로 하고, 상기 제 2 저장수단의 출력값에 따라 덧셈 또는 뺄셈을 위한 add/sub 연산기와,
    상기 add/sub 연산기의 출력값을 모듈러 연산을 위한 Mod_3 연산기와,
    상기 add/sub 연산기의 출력값 및 상기 Mod_3 연산기의 출력을 입력으로 하여암호화 연산인지 복호화 연산인지에 따라 출력을 결정하기 위한 다중화기로 이루어진 NTRU 암/복호화 장치.
  6. 제 1항에 있어서, 모듈러 연산 수단은,
    상기 출력 선택 수단의 출력치와 피드백된 모듈러 출력치를 입력으로 하는 n개의 다중화기와,
    상기 각 다중화기의 출력을 입력으로 하는 1비트의 레지스터 n개로 이루어진 n비트 레지스터와,
    상기 n비트 레지스터들의 각 비트 레지스터의 출력을 입력으로 하여 중간 모듈러 연산을 위한 홀수비트, 짝수비트, Mod3 연산기와,
    상기 홀수비트, 짝수비트, Mod3 연산기의 모듈러 출력치에 대하여 덧셈연산을 수행하고 그 최종단의 출력을 상기 각 다중화기로 피드백시키는 x개의 덧셈기와,
    상기 덧셈기의 최종 출력치에 대하여 -p/2와 p/2 사이 값이 되도록 변환하여 상기 제 3 저장수단으로 출력하는 출력변환기를 포함하는 NTRU 암/복호화 장치.
    단, x = └log2n┘(n:비트길이, └┘은 올림)
  7. 제 1항에 있어서, 모듈러 연산 수단은 롬테이블을 사용하는 NTRU 암/복호화 장치.
KR10-2001-0074631A 2001-11-28 2001-11-28 엔티알유 암/복호화 장치 KR100406138B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0074631A KR100406138B1 (ko) 2001-11-28 2001-11-28 엔티알유 암/복호화 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0074631A KR100406138B1 (ko) 2001-11-28 2001-11-28 엔티알유 암/복호화 장치

Publications (2)

Publication Number Publication Date
KR20030043448A KR20030043448A (ko) 2003-06-02
KR100406138B1 true KR100406138B1 (ko) 2003-11-14

Family

ID=29571847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0074631A KR100406138B1 (ko) 2001-11-28 2001-11-28 엔티알유 암/복호화 장치

Country Status (1)

Country Link
KR (1) KR100406138B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100742093B1 (ko) * 2007-05-10 2007-07-24 인하대학교 산학협력단 엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산방법
KR100876442B1 (ko) * 2007-12-28 2008-12-29 인하대학교 산학협력단 엔티알유 암호화 및 복호화를 위한 안전한 다항식 컨볼루션연산 방법

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
WO2001002270A1 (en) * 1999-07-07 2001-01-11 Tor Petterson Package for housing a self-adhesive bandage

Patent 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
WO2001002270A1 (en) * 1999-07-07 2001-01-11 Tor Petterson Package for housing a self-adhesive bandage

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문 (요약, <page 6, 7> 참조)(1999.08.) *
논문(요약, <page 7, 8, 9> 참조)(2001.09.) *

Also Published As

Publication number Publication date
KR20030043448A (ko) 2003-06-02

Similar Documents

Publication Publication Date Title
EP0656709B1 (en) Encryption device and apparatus for encryption/decryption based on the Montgomery method using efficient modular multiplication
EP0997016B1 (en) Method and apparatus for fast elliptical encryption with direct embedding
US5581616A (en) Method and apparatus for digital signature authentication
US4200770A (en) Cryptographic apparatus and method
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
KR101610917B1 (ko) 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템
JP2006340347A (ja) データに署名するための楕円曲線デジタル署名暗号プロセスを実行する認証システム
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
JP4783382B2 (ja) モンゴメリ法用乗算剰余計算装置
US20060222175A1 (en) Computation method, computing device and computer program
Golic Techniques for random masking in hardware
US6480606B1 (en) Elliptic curve encryption method and system
US7062044B1 (en) Method of elliptic curve cryptographic key agreement using coefficient splitting
US7319750B1 (en) Digital circuit apparatus and method for accelerating preliminary operations for cryptographic processing
JPH11212456A (ja) モンゴメリ法による乗算剰余計算装置
JP3658004B2 (ja) 通信システム
KR100406138B1 (ko) 엔티알유 암/복호화 장치
Huang et al. Fast scalar multiplication for elliptic curve cryptography in sensor networks with hidden generator point
JP3615405B2 (ja) 素体上楕円曲線上の点の演算方法およびその装置
JP3591857B2 (ja) 擬似乱数生成方法及び装置、通信方法及び装置
KR100326226B1 (ko) 행렬그룹공개키생성방법
JP3278790B2 (ja) 公開鍵暗号方法及び公開鍵暗号システム
Issad et al. Secure Hybrid Crypto-system AES/RSA on FPGA for Data Communication
Al-Tuwaijry et al. A high speed RSA processor
Somsuk The alternative Method to Finish Modular Exponentiation and Point Multiplication Processes

Legal Events

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

Payment date: 20081104

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee