1 |
1
IC카드 시스템의 프로세서에 연동되는 RSA 암호 연산 장치에 있어서, 모듈러 연산에 필요한 데이터를 각각 할당된 영역에 저장하고, 모듈러 연산이 수행됨에 따라 제어 신호에 의해 순차적으로 연산에 필요한 데이터를 제공하며, 모듈러 연산의 결과값을 저장하는 메모리와, 상기 IC카드 시스템의 프로세서에서 전송되는 제어 신호 및 암호 연산을 위한 데이터를 송수신하는 인터페이스부와, 상기 프로세서로부터 상기 인터페이스부를 통해 전송되는 제어신호에 따라 암호 연산의 동작모드를 제어하기 정보를 저장하는 제어 레지스터와, 상기 제어 레지스터에 저장된 정보에 따라 모듈러 곱셈 또는 모듈러 지수승 연산을 수행하기 위한 데이터를 상기 메모리로부터 미리 읽어 저장하는 입력 레지스터와, 상기 입력 레지스터에 저장된 값을 읽어 내부 레지스터를 이용하여 암호 연산에 필요한 모듈러 곱셈 또는 모듈러 지수승 연산을 수행하는 모듈러부와, 상기 모듈러부에 의해 연산된 결과값을 보정하는 감산부와, 상기 IC카드 프로세서로부터 전송되는 제어신호를 상기 제어 레지스터에 저장하고, 그 제어신호에 따라 모듈러 연산 수행을 위해 상기 메모리로부터 데이터를 로드하여 상기 입력 레지스터를 통해 상기 모듈러부에 제공하여 모듈러 연산을 수행하기 위한 제어신호를 생성하는 제어부를 포함하는 IC카드용 RSA암호 연산 장치
|
2 |
2
제 1 항에 있어서, 상기 메모리는, 데이터의 입력과 출력을 위한 데이터 경로를 같이 사용하는 메모리외에 데이터의 입력과 출력을 따로 사용하는 메모리를 더 포함하는 IC카드용 RSA암호 연산 장치
|
3 |
3
제 1 항에 있어서, 상기 제어 레지스터에 저장되는 정보는, 암호 회로의 초기화를 위한 reset 신호, 암호 회로의 연산 시작을 지시하는 start 신호, 암호 회로에서 수행할 동작이 모듈러 곱셈 연산인지 모듈러 지수승 연산인지를 결정하는 모드 선택신호, 암호 회로의 동작이 모듈러 지수승 연산인 경우, 암호화 연산인지 복호화 연산인지를 결정하는 지수승 모드 선택 신호, 암호 연산의 수행이 끝났음을 알려주는 end 신호중 적어도 하나를 포함하는 IC카드용 RSA암호 연산 장치
|
4 |
4
제1항에 있어서, 상기 입력 레지스터는 32bit로 구성되는 IC카드용 RSA암호 연산 장치
|
5 |
5
제 1항에 있어서, 상기 입력 레지스터는, 데이터를 위해 메모리에서 입력 받는 것 외에 특정 주소가 가해지는 경우, 상기 인터페이스부로부터 직접 데이터를 입력 받는 IC카드용 RSA암호 연산 장치
|
6 |
6
제 1 항에 있어서, 모듈러부는, 곱셈연산을 위한 입력 데이터를 선택하는 제 1 데이터 선택부와, 상기 제 1 데이터 선택부에 의해 입력된 데이터에 대한 반복 연산을 수행하는 곱셈부와, 덧셈 연산을 위한 입력 데이터를 선택하는 제 2 데이터 선택부와, 상기 제 2 데이터 선택부에 의해 입력된 데이터에 대한 덧셈 연산을 수행하는 덧셈부와, 상기 곱셈부 또는 덧셈부의 연산에 의한 중간값을 저장하는 중간값 저장 레지스터와, 상기 중간값 저장 레지스터의 데이터 저장 경로를 설정하는 제3데이터 선택부를 포함하는 IC카드용 RSA암호 연산 장치
|
7 |
7
제 6 항에 있어서, 상기 제 1, 2, 3데이터 선택부는, 데이터의 선택적 설정이 가능한 다중화기 또는 역 다중화기를 포함하는 IC카드용 RSA암호 연산 장치
|
8 |
8
제 6항에 있어서, 상기 제1, 2, 3데이터 선택부는, 곱셈과 덧셈 연산을 위해 데이터를 순차적으로 선택하는 IC카드용 RSA암호 연산 장치
|
9 |
9
제 6 항에 있어서, 상기 곱셈부는, 곱셈과 덧셈 연산을 동시에 1클럭에 수행하는 IC카드용 RSA암호 연산 장치
|
10 |
10
제 6 항에 있어서, 상기 곱셈부는, 32bit 데이터를 8bit 또는 16bit 단위로 나누어서 반복 연산을 수행하는 IC카드용 RSA암호 연산 장치
|
11 |
11
제 6 항에 있어서, 상기 곱셈부는, 32bit 데이터의 곱셈을 수행하기 위하여, 8bit 또는 16bit 단위로 나누어서 반복 연산을 수행하기 위한 경로 설정부를 그 내부에 포함하는 IC카드용 RSA암호 연산 장치
|
12 |
12
제 6 항에 있어서, 상기 중간값 저장 레지스터는, 순차적으로 배열된 32bit 레지스터를 포함하는 IC카드용 RSA암호 연산 장치
|
13 |
13
제 6항에 있어서, 상기 중간값 저장 레지스터에서, 최상위 워드 또는 비트 값은 결과값 보정을 위해 판단 값으로 사용되는 IC카드용 RSA암호 연산 장치
|
14 |
14
제 6항에 있어서, 상기 중간값 저장 레지스터는, 그 길이가 모듈러 곱셈 연산을 수행하는 모듈러 값보다 1워드 또는 1bit 더 큰 크기를 갖는 IC카드용 RSA암호 연산 장치
|
15 |
15
제 1 항에 있어서, 상기 모듈러부는, 모듈러 지수승 연산을 수행하기 위해, 아래 수학식의 지수 값 e = (et…e1e0)2의 최상위 1의 bit 자릿수 t를 찾는 탐색부를 포함하는 IC카드용 RSA암호 연산 장치
|
16 |
16
제 1항에 있어서, 상기 모듈러부는, 모듈러 지수승 연산을 수행하기 위해, 아래 수학식의 Mont(A, A)와 같이, 동일 데이터의 곱셈 연산을 위한 제곱 연산부를 더 포함하는 IC카드용 RSA암호 연산 장치
|
17 |
17
제 1항에 있어서, 상기 모듈러부는, 모듈러 지수승 연산을 수행하기 위해, 지수 값의 자릿수를 외부로부터 입력 받아서 연산을 수행하는 IC카드용 RSA암호 연산 장치
|
18 |
18
제 1항에 있어서, 상기 모듈러부는, 모듈러 연산을 수행함에 있어, 몽고메리 잉여류 수 체계로 변환하기 위하여, 모듈러 곱셈 연산을 먼저 수행한 후, 다시 그 값을 입력 값으로 사용하는 IC카드용 RSA암호 연산 장치
|
19 |
19
제 1항에 있어서, 상기 모듈러부는, 모듈러 연산을 수행함에 있어, 몽고메리 잉여류 수 체계로 변환되어진 값을 입력으로 받아서 연산을 수행하는 IC카드용 RSA암호 연산 장치
|
20 |
20
제 1항에 있어서, 상기 모듈러부에서, 모듈러 지수승 연산의 수행시, 메모리에서 지수승 값을 32bit씩 읽어올 때, 카운터 장치를 이용하여 일정한 연산 수행 횟수에 동기화 되어, 지수승 값을 로드하는 IC카드용 RSA암호 연산 장치
|
21 |
21
제 1항에 있어서, 상기 모듈러부에서, 모듈러 지수승 연산을 수행함에 있어, 지수승 값을 상기 제어부에서 발생하는 제어신호에 의해서 입력 받는 IC카드용 RSA암호 연산 장치
|
22 |
22
제 15항에 있어서, 상기 모듈러부에서, 지수 값e의 자릿수 t를 구하기 위해, 워드(32bit) 단위로 지수 값을 읽어서, 해당 워드의 값이 0인가 검사 후, 0이 아닌 워드에서 다시 0이 아닌 bit의 위치를 찾는 IC카드용 RSA암호 연산 장치
|
23 |
23
제 15항에 있어서, 상기 모듈러부에서, 지수 값e의 자릿수 t를 구하기 위해, 워드 단위로 지수 값을 읽어서, 해당 워드의 최상위 bit부터 하위 bit로 각 bit의 값이 1인지 검사하여 위치를 찾는 IC카드용 RSA암호 연산 장치
|
24 |
24
제 1 항에 있어서, 상기 모듈러는, 모듈러 지수승 연산을 수행함에 있어서, 아래 수학식에서 Mont(A, 1)를 수행하는 경우, 피승수 1의 값을 프로세서가 메모리에 설정하여 구동하는 IC카드용 RSA암호 연산 장치
|
25 |
25
제 1항에 있어서, 모듈러 지수승 연산을 수행함에 있어 아래 수학식에서 Mont(A, 1)를 수행하는 경우, 피승수 1의 값을, 곱셈을 수행하는 반복과정에서, 레지스터Rb의 값을 초기에 1로 설정하고, 나머지 연산 과정에서 레지스터Rb 값을 0으로 설정하는 IC카드용 RSA암호 연산 장치
|
26 |
26
제 1항에 있어서, 상기 감산부는, 모듈러 연산의 결과값에 대해 보정을 위해 상기 모듈러부의 출력으로부터 모듈러M값을 뺄셈 연산을 수행하는 뺄셈부와, 상기 뺄셈부의 연산결과에 대하여 상기 제어부의 제어신호에 따라 상기 메모리에 저장될 데이터의 경로를 설정하는 출력선택부를 포함하는 IC카드용 RSA암호 연산 장치
|
27 |
27
제 26항에 있어서, 상기 뺄셈부는, 상기 모듈러에 중간값으로 저장된 데이터와 상기 메모리에 저장된 모듈러 값을 그 입력으로 하며, 하위 워드에서 상위 워드로 32bit씩 순차적 뺄셈 연산을 수행하는 IC카드용 RSA암호 연산 장치
|
28 |
28
제 1항에 있어서, 상기 제어부에서 생성하는 제어신호는, 모듈러 연산의 수행을 위해 상기 IC카드의 프로세서로부터 전송되는 제어신호를 상기 제어 레지스터에 저장하거나, 모듈러 곱셈 연산이 종료되었음을 알리기 위한 레지스터 제어신호와, 상기 메모리로부터 모듈러 연산에 필요한 데이터를 순차적으로 읽어 들이거나, 모듈러 연산이 수행된 후 결과값을 저장하기 위한 메모리 제어신호와, 상기 메모리로부터 모듈러부로 입력되는 데이터들을 상기 입력 레지스터에 선택적으로 저장하기 위한 입력 레지스터 제어신호와, 상기 입력 레지스터에 순차적으로 저장되는 데이터들을 이용하여 모듈러 연산을 수행하는 과정에 필요한 모듈러 제어신호를 포함하는 IC카드용 RSA암호 연산 장치
|
29 |
29
제 1항에 있어서, 상기 제어부는, 모듈러 연산의 결과값을 보정하기 위하여, 상기 감산부의 뺄셈 연산에서 발생하는 자리 빌림 신호에 따라 상기 모듈러 연산결과를 상기 메모리에 저장하기 위한 주소를 설정하는 IC카드용 RSA암호 연산 장치
|