1 |
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 암/복호화 장치
|
2 |
2
제 1항에 있어서, 상기 제 1 저장 수단은, N개의 2비트 레지스터가 병렬로 연결되어 이루어진 NTRU 암/복호화 장치
|
3 |
3
제 1항에 있어서, 상기 제 2 저장 수단은, 입력 시스템 버스로부터의 입력치, 상기 제 1 저장수단의 출력치, 순환 데이터 패스를 위한 전단계의 출력치를 입력으로 하는 N개의 다중화기와, 상기 N개의 각 다중화기의 출력치를 입력으로 하는 N개의 2비트 레지스터가 병렬로 연결되어 이루어진 NTRU 암/복호화 장치
|
4 |
4
제 1항에 있어서, 상기 제 3 저장 수단은, 입력 시스템 버스로부터의 입력치, 상기 모듈러 연산 수단의 출력치를 입력으로 하는 N개의 다중화기와, 상기 N개의 각 다중화기의 출력치를 입력으로 하는 N개의 q`비트 레지스터로 이루어진 NTRU 암/복호화 장치
|
5 |
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 |
6
제 1항에 있어서, 모듈러 연산 수단은, 상기 출력 선택 수단의 출력치와 피드백된 모듈러 출력치를 입력으로 하는 n개의 다중화기와, 상기 각 다중화기의 출력을 입력으로 하는 1비트의 레지스터 n개로 이루어진 n비트 레지스터와, 상기 n비트 레지스터들의 각 비트 레지스터의 출력을 입력으로 하여 중간 모듈러 연산을 위한 홀수비트, 짝수비트, Mod3 연산기와, 상기 홀수비트, 짝수비트, Mod3 연산기의 모듈러 출력치에 대하여 덧셈연산을 수행하고 그 최종단의 출력을 상기 각 다중화기로 피드백시키는 x개의 덧셈기와, 상기 덧셈기의 최종 출력치에 대하여 -p/2와 p/2 사이 값이 되도록 변환하여 상기 제 3 저장수단으로 출력하는 출력변환기를 포함하는 NTRU 암/복호화 장치
|
7 |
7
제 1항에 있어서, 모듈러 연산 수단은 롬테이블을 사용하는 NTRU 암/복호화 장치
|