1 |
1
소수체를 기반으로 하는 공개키 암호장치에 있어서, 암호 연산을 위한 각종 데이터를 저장하는 레지스터부와; RSA 공개키 암호 연산을 수행하는 RSA 연산부와; 소수체를 기반으로 하는 연산에서 데이터의 역원을 계산하는 모듈러 역원 연산부와; 타원곡선 공개키 암호 연산을 수행하는 타원곡선 연산부와; 상기 RSA/타원곡선 암호 연산을 수행하기 위해 내부 연산의 구성을 32비트 단위로 구성하여 반복 연산을 수행하는 모듈러 연산부와; 상기 레지스터부로부터 암호 연산을 위해 필요한 데이터를 리드/라이트하며, 상기 RSA 연산부와 타원곡선 연산부를 제어하여 RSA 공개키 암호 연산과 소수체에서의 타원곡선 공개키 암호 연산을 수행하고, 상기 암호 연산을 위한 각 부의 동작을 제어하는 제어부;를 포함하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
2 |
2
제1항에 있어서, 상기 암호장치는, 상기 레지스터부에 연결되며, 시스템 버스를 통해 외부로부터 암호장치 내부로 암호 연산을 위한 데이터와 제어신호를 전송하고, 상기 암호장치에서 수행된 데이터를 순차적으로 상기 시스템 버스로 전송하는 인터페이스부;를 더 포함하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
3 |
3
제1항에 있어서, 상기 레지스터부는, 상기 암호 장치의 연산을 제어하는 제어신호를 입력받아 지정된 위치에 저장하는 제어 레지스터와; 암호 연산을 위해 입력되는 키 데이터를 저장하는 키 레지스터와; 암호 연산을 위해 입력되는 데이터를 저장하는 데이터 레지스터;를 포함하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
4 |
4
제1항에 있어서, 상기 제어부는, 상기 RSA 암호 연산과 타원곡선 암호연산을 수행하기 위한 상기 키 레지스터나 데이터 레지스터의 데이터 리드/라이트 동작을 제어하며, RSA 암호연산과 소수체에서의 타원곡선 공개키 암호 연산을 위한 제어신호를 생성하여 상기 RSA 연산부 및 타원곡선 연산부로 인가하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
5 |
5
삭제
|
6 |
6
제4항에 있어서,상기 제어부는, 상기 키 레지스터나 데이터 레지스터에서 RSA 또는 타원곡선 암호 연산의 수행을 위해 상기 RSA 연산부나 타원곡선 연산부 또는 모듈러 연산부로 입력되는 데이터들의 경로 설정을 위한 제어신호를 생성시키는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
7 |
7
제3항에 있어서, 상기 제어 레지스터는, 상기 공개키 암호장치의 연산을 제어하는 제어 신호를 입력받아 지정된 비트 위치에 저장하고, 연산이 끝나는 경우, 연산이 종료되었음을 알려주는 인터럽트를 설정하기 위한 데이터를 지정하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
8 |
8
제7항에 있어서, 상기 제어 레지스터는, 상기 공개키 암호장치가 수행해야 하는 연산의 종류, 동작의 시작 및 연산의 종료를 위한 제어 데이터를 해당 비트에 저장하고 있으며, 최하위 비트에는 상기 공개키 암호장치의 동작 시작 제어신호가, 두 번째 비트에는 연산의 종류 제어신호를 저장하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
9 |
9
제3항에 있어서, 상기 키 레지스터는, 각 암호 알고리즘을 위한 연산에서 발생하는 중간값과 결과값을 필요에 따라 순차적으로 저장하는 32비트 레지스터와; 상기 제어부로부터의 입력 데이터 선택신호에 따라 상기 32비트 레지스터의 데이터 라이트 동작을 수행하는 입력 데이터 선택기와; 상기 제어부로부터의 출력 데이터 선택신호에 따라 상기 32비트 레지스터의 데이터 리드 동작을 수행하는 출력 데이터 선택기;를 포함하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
10 |
10
제3항에 있어서, 상기 RSA 연산부는, 상기 제어 레지스터에 설정된 값에 의해 공개키 암호장치에서 수행되는 RSA 공개키 암호연산을 수행하며, 아래의 [수학식]에 나타난 바와 같이 모듈러 연산부를 이용하여 반복적인 모듈러 연산을 수행하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
11 |
11
제10항에 있어서, 상기 제어부는, 상기 제어 레지스터에 RSA 공개키 암호 연산을 수행하는 명령이 설정되는 경우, 상기 RSA 연산부로 RSA 암/복호화 연산 중 명령된 연산의 종류와 연산의 시작을 알리는 제어신호를 인가시켜 RSA 공개키 암호/복호화가 수행되도록 하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
12 |
12
제1항에 있어서, 상기 모듈러 역원 연산부는, 상기 RSA 암호연산과 타원곡선 암호연산에 모두 필요한 모듈러스 M 또는 p를 법으로 하는 연산을 수행하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
13 |
13
제1항에 있어서,상기 타원곡선 연산부는, 상기 제어 레지스터에 설정된 값에 의해 타원곡선 공개키 암호연산을 수행하며, 아래의 [수학식]에 나타난 바와 같이 타원곡선의 포인트 덧셈을 이용하여 타원곡선 위의 점 P의 k 번 반복된 포인트 덧셈을 수행하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
14 |
14
제13항에 있어서, 상기 타원곡선 연산부는, 상기 포인트 덧셈의 수행을 위한 연산 시작 제어신호를 제어부로부터 인가받아 타원곡선 암호연산 수행에 필요한 계산을 상기 모듈러 연산부를 통해 반복 수행하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
15 |
15
제1항에 있어서, 상기 모듈러 연산부는, 상기 RSA 및 타원곡선 암호 연산을 수행하기 위해 내부 연산의 구성을 32비트 단위로 구성하여 반복 연산을 수행하는 것을 특징으로 하는 것을 소수체를 기반으로 하는 공개키 암호장치
|
16 |
16
제15항에 있어서, 상기 모듈러 연산부는, 상기 RSA 암호 연산 및 타원곡선 암호 연산 알고리즘에서 사용되는 키의 길이에 따라 연산의 회수가 해당 RSA 연산부 및 타원곡선 연산부에서 별도로 제어되는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
17 |
17
제16항에 있어서, 상기 모듈러 연산부는, 입력 데이터를 선택하기 위한 데이터 선택기와; 상기 데이터 선택기로부터 선택 입력되는 두 개의 다정도 정소의 곱셈 연산을 수행하는 곱셈기와; 모듈러 덧셈 연산을 수행하는 덧셈기와; 상기 곱셈기 및 덧셈기에서 연산된 데이터의 중간값을 저장하는 곱셈 레지스터와; 상기 곱셈기/덧셈기와 곱셈레지스터간 위치되어 상기 데이터 중간값이 저장될 곱셈 레지스터의 위치를 선택하는 데이터 위치 선택기와; 상기 두 개의 다정도 정수의 곱셈 결과에서 모듈러 값 M을 감산하는 리덕션 장치;를 포함하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
18 |
18
제17항에 있어서, 상기 곱셈기와 덧셈기는, RSA 암호 알고리즘과 타원곡선 암호 알고리즘의 동시 지원을 위한 32비트 연산장치로 구현되는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
19 |
19
제17항에 있어서, 상기 리덕션 장치는, 아래의 [수학식]에서와 같이 모듈러 연산의 기본적인 연산으로 상기 두 개의 다정도 정수의 곱셈결과에서 모듈러 값 M을 감산하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|
20 |
19
제17항에 있어서, 상기 리덕션 장치는, 아래의 [수학식]에서와 같이 모듈러 연산의 기본적인 연산으로 상기 두 개의 다정도 정수의 곱셈결과에서 모듈러 값 M을 감산하는 것을 특징으로 하는 소수체를 기반으로 하는 공개키 암호장치
|