1 |
1
타원곡선 암호 시스템의 동작 방법에 있어서,키 설정부에서 암호 알고리즘의 키 길이를 설정하는 단계;상기 키 설정부에서 상기 키 길이에 대응하는 워드 개수를 지시하는 제 1 설정 정보를 설정하는 단계; 및상기 키 설정부에서 상기 키 길이에 대응하는 유한체 나눗셈 연산기의 연산 반복 횟수를 지시하는 제 2 설정 정보를 설정하는 단계를 포함하는 방법
|
2 |
2
제 1 항에 있어서,상기 제 1 설정 정보는 좌표계 변환부, 타원곡선 점 덧셈부 및 타원곡선 스칼라 곱셈부로 구성된 제 1 연산 장치로 전송되고,상기 제 2 설정 정보는 상기 유한체 나눗셈 연산기로 전송되는 것을 특징으로 하는 방법
|
3 |
3
제 2 항에 있어서,상기 제 1 연산 장치는 소프트웨어로 구현되는 것을 특징으로 하는 방법
|
4 |
4
제 2 항에 있어서,상기 유한체 나눗셈 연산기는 하드웨어로 구현되는 것을 특징으로 하는 방법
|
5 |
5
제 4 항에 있어서,상기 유한체 나눗셈 연산기는,초기값과 중간 계산값을 저장하는 복수의 레지스터들;상기 복수의 레지스터들의 출력값들에 대하여 유한체 덧셈 혹은 뺄셈을 수행하는 복수의 가/감산기들;상기 복수의 레지스터들의 어느 하나의 출력값과 상기 복수의 가/감산기들의 어느 하나의 출력값 중에서 어느 하나를 선택하는 복수의 다중화기들; 및상기 복수의 다중화기들의 출력값들을 우측 쉬프트를 수행하고, 상기 중간 계산값인 상기 쉬프트된 값을 대응하는 레지스터로 출력하는 복수의 쉬프터들; 및상기 복수의 가/감산기들, 상기 복수의 다중화기들, 및 상기 복수의 쉬프터들을 제어하는 제어기를 포함하는 방법
|
6 |
6
타원곡선 암호 시스템에 있어서:적어도 하나의 프로세서;상기 적어도 하나의 프로세서에 의해 실행되는 적어도 하나의 인스트럭션을 저장하는 메모리; 및유한체 나눗셈 연산기를 포함하고, 상기 적어도 하나의 인스트럭션은,키 설정부에서 암호 알고리즘의 키 길이를 설정하고;상기 키 설정부에서 상기 키 길이에 대응하는 워드 개수를 지시하는 제 1 설정 정보를 설정하고; 및상기 키 설정부에서 상기 키 길이에 대응하는 상기 유한체 나눗셈 연산기의 연산 반복 횟수를 지시하는 제 2 설정 정보를 설정하도록 구현되는 것을 것을 특징으로 하는 타원곡선 암호 시스템
|
7 |
7
제 6 항에 있어서,상기 적어도 하나의 인스트럭션은,좌표계 변환부에서 타원곡선 암호 연산을 수행하기 위하여 아핀 좌표계, 사영 좌표계, 자코비안 좌표계 사이의 타원곡선 점을 변환하고;타원곡선 점 덧셈부에서 서로 다른 2개의 타원 곡선의 점들에 대한 덧셈 연산을 수행하고; 및타원곡선 스칼라 곱셈부에서 임의의 점 혹은 고정된 점에 대한 스칼라 곱셈을 수행하도록 구현되고,상기 제 1 설정 정보는 상기 좌표계 변환부, 상기 타원곡선 점 덧셈부, 및 상기 타원곡선 스칼라 곱셈부로 전송되는 것을 특징으로 하는 타원곡선 암호 시스템
|
8 |
8
제 6 항에 있어서,상기 유한체 나눗셈 연산기는,초기값과 중간 계산값을 저장하는 복수의 레지스터들;상기 복수의 레지스터들의 출력값들에 대하여 유한체 덧셈 혹은 뺄셈을 수행하는 복수의 가/감산기들;상기 복수의 레지스터들의 어느 하나의 출력값과 상기 복수의 가/감산기들의 어느 하나의 출력값 중에서 어느 하나를 선택하는 복수의 다중화기들; 및상기 복수의 다중화기들의 출력값들을 우측 쉬프트를 수행하고, 상기 중간 계산값인 상기 쉬프트된 값을 대응하는 레지스터로 출력하는 복수의 쉬프터들; 및상기 복수의 가/감산기들, 상기 복수의 다중화기들, 및 상기 복수의 쉬프터들을 제어하는 제어기를 포함하는 타원곡선 암호 시스템
|
9 |
9
제 8 항에 있어서,상기 유한체 나눗셈 연산기는,제 1, 제 2, 제 3, 제 4 및 제 5 레지스터들;상기 제 1 레지스터의 저장값, 상기 제 2 레지스터의 저장값, 및 상기 제 5 레지스터의 저장값을 가산 혹은 감산하는 제 1 가/감산기;상기 제 3 레지스터의 저장값과 상기 제 4 레지스터의 저장값을 가산 혹은 감산 하는 제 2 가/감산기;상기 제 1 레지스터의 저장값과 상기 제 1 가/감산기의 출력값 중에서 어느 하나를 선택하는 제 1 다중화기;상기 제 2 레지스터의 저장값과 상기 제 1 가/감산기의 출력값 중에서 어느 하나를 선택하는 제 2 다중화기;상기 제 3 레지스터의 저장값과 상기 제 2 가/감산기의 출력값 중에서 어느 하나를 선택하는 제 3 다중화기;상기 제 4 레지스터의 저장값과 상기 제 2 가/감산기의 출력값 중에서 어느 하나를 선택하는 제 4 다중화기;상기 제 1 내지 상기 제 4 다중화기기들의 각각의 출력값을 우측 쉬트프 하고, 상기 쉬프트된 값을 상기 제 1 내지 상기 제 4 레지스터들로 출력 하는 제 1 내지 제 4 쉬프터들; 및상기 제 1 및 제 2 가/감산기들, 상기 제 1 내지 상기 제 4 다중화기들, 및 상기 제 1 내지 상기 제 4 쉬프터들을 제어하는 제어기를 포함하는 타원곡선 암호 시스템
|
10 |
10
제 9 항에 있어서,상기 제 1 레지스터의 초기값은 피제수이고,상기 제 2 레지스터의 초기값은 0이고,상기 제 3 레지스터의 초기값은 제수이고,상기 제 4 레지스터의 초기값은 모듈러스이고,상기 제 5 레지스터의 초기값은 상기 모듈러스인 것을 특징으로 하는 타원곡선 암호 시스템
|
11 |
11
제 10 항에 있어서,상기 제 2 설정 정보에 따라 상기 제 1 내지 상기 제 5 레지스터들의 각각의 상기 연산 반복 횟수가 결정되는 것으로 특징으로 하는 타원곡선 암호 시스템
|
12 |
12
제 10 항에 있어서,상기 제어기는,상기 제 3 레지스터의 저장값과 상기 제 4 레지스터의 저장값이 같지 않을 때, 상기 제 3 레지스터의 저장값의 최하위 비트가 '0' 인지를 판별하고, 상기 제 3 레지스터의 저장값의 최하위 비트가 '0'이면, 상기 제 3 레지스터의 저장값을 우측 쉬프트하고, 상기 제 1 레지스터의 저장값의 최하위 비트가 '0'인지 판별하고, 상기 제 1 레지스터의 저장값의 최하위 비트가 '0' 이라면 상기 제 1 레지스터의 저장값을 우측 쉬프트하고, 상기 제 1 레지스터의 저장값의 최하위 비트가 '0'이 아니라면 상기 제 1 레지스터의 저장값과 상기 제 5 레지스터의 저장값을 덧셈 연산하여 우측 쉬프트하고, 상기 우측 쉬프트된 제 1 덧셈 연산값을 상기 제 1 레지스터에 저장하는 것을 특징으로 하는 타원곡선 암호 시스템
|
13 |
13
제 12항에 있어서,상기 제어기는,상기 제 3 레지스터의 저장값의 최하위 비트가 '0'이 아닐 때 상기 제 4 레지스터의 저장값의 최하위 비트가 '0인 지를 판별하고, 상기 제 4 레지스터의 저장값의 최하위 비트가 '0' 이라면 상기 제 4 레지스터의 저장값을 우측 쉬프트하고, 상기 제 2 레지스터의 저장값의 최하위 비트가 '0'인지 판별하고, 상기 제 2 레지스터의 저장값의 최하위 비트가 '0' 이라면 상기 제 2 레지스터의 저장값을 우측 쉬프트하고, 상기 제 2 레지스터의 저장값의 최하위 비트가 '0'이 아니라면 상기 제 2 레지스터의 저장값과 상기 제 5 레지스터의 저장값을 덧셈 연산하여 우측 쉬프트하고, 상기 우측 쉬프트된 제 2 덧셈 연산값을 상기 제 2 레지스터에 저장하는 것을 특징으로 하는 타원곡선 암호 시스템
|
14 |
14
제 13 항에 있어서,상기 제어기는,상기 제 4 레지스터의 저장값의 최하위 비트가 '0' 이 아니라면 상기 제 3 레지스터의 저장값이 상기 제 4 레지스터의 저장값보다 큰 지를 판별하고,상기 제 3 레지스터의 저장값이 상기 제 4 레지스터의 저장값보다 크다면 상기 제 3 레지스터의 저장값에서 상기 제 4 레지스터의 저장값을 뺄셈하여 우측 쉬프트하고, 상기 우측 쉬프트된 제 1 뺄셈 연산값을 상기 제 3 레지스터에 저장하고, 상기 제 1 레지스터의 저장값이 상기 제 2 레지스터의 저장값보다 크거나 같은 지를 판별하고, 상기 제 1 레지스터의 저장값이 상기 제 2 레지스터의 저장값보다 크거나 같을 때 상기 제 1 레지스터의 저장값에서 상기 제 2 레지스터의 저장값을 뺀 값을 제 1 중간 계산값으로 설정하고, 상기 제 1 레지스터의 저장값이 상기 제 2 레지스터의 저장값보다 작을 때 상기 제 1 레지스터의 저장값에서 상기 제 2 레지스터의 저장값을 빼고 상기 제 5 레지스터의 저장값을 더한 값을 상기 제 1 중간 계산값으로 설정하고, 상기 제 1 중간 계산값의 최하위 비트가 '0'인 지를 판별하고, 상기 제 1 중간 계산값의 최하위 비트가 '0'이라면 상기 제 1 레지스터의 저장값을 우측 쉬프트하고, 상기 제 1 중간 계산값의 최하위 비트가 '0' 이 아니라면 상기 제 1 중간 계산값에서 상기 제 5 레지스터의 저장값을 덧셈하여 우측 쉬프트된 제 3 덧셈 연산값을 상기 제 1 레지스터에 저장하는 것을 특징으로 하는 타원곡선 암호 시스템
|
15 |
15
제 14 항에 있어서,상기 제어기는,상기 제 3 레지스터의 저장값이 상기 제 4 레지스터의 저장값보다 크지 않다면 상기 제 4 레지스터의 저장값에서 상기 제 3 레지스터의 저장값을 뺄셈하여 우측 쉬프트하고, 상기 우측 쉬프트된 제 2 뺄셈 연산값을 상기 제 4 레지스터에 저장하고, 상기 제 2 레지스터의 저장값이 상기 제 1 레지스터의 저장값보다 크거나 같은 지를 판별하고, 상기 제 2 레지스터의 저장값이 상기 제 1 레지스터의 저장값보다 크거나 같을 때 상기 제 2 레지스터의 저장값에서 상기 제 1 레지스터의 저장값을 뺀 값을 제 2 중간 계산값으로 설정하고, 상기 제 2 레지스터의 저장값이 상기 제 1 레지스터의 저장값보다 작을 때 상기 제 2 레지스터의 저장값에서 상기 제 1 레지스터의 저장값을 빼고 상기 제 5 레지스터의 저장값을 더한 값을 상기 제 2 중간 계산값으로 설정하고, 상기 제 2 중간 계산값의 최하위 비트가 '0'인 지를 판별하고, 상기 제 2 중간 계산값의 최하위 비트가 '0'이라면 상기 제 2 레지스터의 저장값을 우측 쉬프트하고, 상기 제 2 중간 계산값의 최하위 비트가 '0' 이 아니라면 상기 제 2 중간 계산값에서 상기 제 5 레지스터의 저장값을 덧셈하여 우측 쉬프트된 제 4 덧셈 연산값을 상기 제 2 레지스터에 저장하는 것을 특징으로 하는 타원곡선 암호 시스템
|
16 |
16
제 10 항에 있어서,상기 제어기는,상기 제 3 레지스터의 저장값과 상기 제 4 레지스터의 저장값이 같을 때, 유한체 나눗셈 연산 동작을 종료시키는 것을 특징으로 하는 타원곡선 암호 시스템
|
17 |
17
타원곡선 암호 시스템의 유한체 나눗셈 연산기에 있어서:제 1, 제 2, 제 3, 제 4 및 제 5 레지스터들;상기 제 1 레지스터의 저장값, 상기 제 2 레지스터의 저장값, 및 상기 제 5 레지스터의 저장값을 가산 혹은 감산하는 제 1 가/감산기;상기 제 3 레지스터의 저장값과 상기 제 4 레지스터의 저장값을 가산 혹은 감산 하는 제 2 가/감산기;상기 제 1 레지스터의 저장값과 상기 제 1 가/감산기의 출력값 중에서 어느 하나를 선택하는 제 1 다중화기;상기 제 2 레지스터의 저장값과 상기 제 1 가/감산기의 출력값 중에서 어느 하나를 선택하는 제 2 다중화기;상기 제 3 레지스터의 저장값과 상기 제 2 가/감산기의 출력값 중에서 어느 하나를 선택하는 제 3 다중화기;상기 제 4 레지스터의 저장값과 상기 제 2 가/감산기의 출력값 중에서 어느 하나를 선택하는 제 4 다중화기;상기 제 1 내지 상기 제 4 다중화기기들의 각각의 출력값을 우측 쉬트프 하고, 상기 쉬프트된 값을 상기 제 1 내지 상기 제 4 레지스터들로 출력 하는 제 1 내지 제 4 쉬프터들; 및상기 제 1 및 제 2 가/감산기들, 상기 제 1 내지 상기 제 4 다중화기들, 및 상기 제 1 내지 상기 제 4 쉬프터들을 제어하는 제어기를 포함하고,상기 제 1 내지 상기 제 5 레지스터들의 각각은 설정 정보에 대응하는 레지스터의 크기에 따라 연산의 반복 횟수를 결정하는 것으로 특징으로 하는 유 유한체 나눗셈 연산기
|
18 |
18
제 17 항에 있어서,상기 제 1 레지스터의 초기값은 피제수이고,상기 제 2 레지스터의 초기값은 0이고,상기 제 3 레지스터의 초기값은 제수이고,상기 제 4 레지스터의 초기값은 모듈러스이고,상기 제 5 레지스터의 초기값은 상기 모듈러스인 것을 특징으로 하는 유한체 나눗셈 연산기
|
19 |
19
제 17 항에 있어서,상기 설정 정보는 암호 알고리즘의 키 길이에 따라 달라지는 것을 특징으로 하는 유한체 나눗셈 연산기
|
20 |
20
제 17 항에 있어서,상기 설정 정보에 의해 128 비트 크기의 레지스터 크기를 갖고, 상기 키 길이가 256 비트일 때, 상기 반복 연산 횟수는 2회인 것을 특징으로 하는 유한체 나눗셈 연산기
|