1 |
1
모듈러 곱셈 연산을 반복적으로 수행하는 모듈러 곱셈부;
상기 모듈러 곱셈부가 수행하는 연산 과정 중 발생하는 적어도 하나의 결과 값이 저장되는 메모리; 및
상기 메모리에 저장되는 결과 값 중 어느 하나를 이용하여 상기 모듈러 곱셈부와의 동기를 맞추고, 맞춰진 동기에 따라 상기 모듈러 곱셈부로부터 출력되는 값을 상기 메모리에 저장하며, 상기 모듈러 곱셈부가 요청하는 적어도 하나의 값을 상기 메모리에서 읽어 들여 상기 모듈러 곱셈부로 제공하는 모듈러 인터페이스부
를 포함하는 모듈러 곱셈 장치
|
2 |
2
제1 항에 있어서,
상기 모듈러 인터페이스부는,
외부로부터 입력되는 신호들의 동기를 맞춘 후, 상기 맞춰진 신호를 이용하여 상기 메모리에 접근하기 위한 신호를 생성하며, 상기 생성된 신호를 통해 외부로부터 요청 받은 상기 메모리 내의 주소에 저장된 값을 읽어 들인 후, 상기 읽어 들인 값 및 상기 읽어 들인 값을 알리는 제어 신호를 상기 외부로 출력하는 시스템 입출력 제어부
를 포함하는 모듈러 곱셈 장치
|
3 |
3
제2 항에 있어서,
상기 모듈러 인터페이스부는,
상기 모듈러 곱셈부로부터 출력되는 상태 값을 이용하여 상기 모듈러 곱셈부와의 동기를 맞춘 후, 상기 맞춰진 동기에 따라 상기 모듈러 곱셈부로부터 출력되는 연산 결과 값을 상기 메모리에 저장하며, 상기 모듈러 곱셈부가 요청하는 메모리 내의 소정의 주소에 저장된 값을 읽어 들여 상기 모듈러 곱셈부로 제공하는 모듈러 입출력 제어부; 및
외부로부터 입력된 데이터를 통해 제어 신호를 생성하며, 상기 생성된 제어 신호를 토대로 상기 메모리에 접근하려는 적어도 하나의 기능부 중 어느 하나를 선택한 후, 상기 선택된 기능부에게 메모리로의 접근을 허용하며, 상기 생성된 제어 신호를 이용하여 상기 모듈러 곱셈부를 구동하는 메모리 입출력 제어부
를 더 포함하는 모듈러 곱셈 장치
|
4 |
4
제1 항 내지 제3 항 중 어느 한 항에 있어서,
상기 모듈러 곱셈부는,
상기 외부로부터 입력된 데이터를 상기 모듈러 인터페이스부로부터 전달 받아 저장하는 소정 개수의 입력 레지스터;
상기 저장된 데이터를 이용하여 소정 단위의 모듈러 곱셈 연산을 반복적으로 수행하는 모듈러 하드웨어 코어부;
상기 모듈러 곱셈 과정 중 발생하는 적어도 하나의 출력 값을 저장하는 소정 개수의 출력 레지스터; 및
상기 모듈러 곱셈 과정 중 발생하는 적어도 하나의 상태 값을 저장하는 상태 레지스터
를 포함하는 모듈러 곱셈 장치
|
5 |
5
제4 항에 있어서,
상기 메모리는,
소정 개수의 세그먼트를 포함하며,
상기 세그먼트는, 상기 모듈러 곱셈부로부터 출력되는 값을 저장하는 모듈러 곱셈 장치
|
6 |
6
외부로부터 입력되는 신호들의 동기를 맞춘 후, 상기 맞춰진 신호를 통해 메모리에 접근하기 위한 신호를 생성하는 단계;
상기 생성된 신호를 이용하여 상기 외부로부터 요청 받은 상기 메모리 내의 주소에 저장된 값을 읽어 들인 후, 상기 읽어 들인 값 및 상기 읽어 들인 값을 알리는 제어 신호를 상기 외부로 출력하는 단계;
소정의 값을 통해 모듈러 곱셈 연산을 수행하는 기능부와의 동기를 맞춘 후, 상기 맞춰진 동기에 따라, 상기 기능부의 출력 값 중 적어도 하나를 상기 메모리에 저장하는 단계;
상기 기능부가 요청하는 상기 메모리의 주소에 저장된 값을 읽어 들여 상기 기능부로 제공하는 단계;
상기 외부로부터 입력되는 신호 중 어느 하나를 이용하여 제어 신호를 생성한 후, 상기 생성된 제어 신호를 이용하여 상기 메모리에 접근하려는 기능부 중 어느 하나의 기능부를 선택하는 단계; 및
상기 선택된 기능부의 신호를 상기 메모리로 전송하며, 상기 메모리로부터 출력되는 값을 상기 메모리에 접근하려는 기능부 중 어느 하나에 전송하는 단계
를 포함하는 모듈러 곱셈 방법
|
7 |
7
제6 항에 있어서,
상기 메모리를 소정 개수의 세그먼트로 구성하는 단계; 및
상기 구성된 세그먼트에 상기 모듈러 지수승 연산 과정 및 입출력 과정 중 발생하는 결과 값에서 상기 메모리에 저장해야 하는 결과 값을 선택하여 저장하는 단계
를 더 포함하는 모듈러 곱셈 방법
|
8 |
8
제7 항에 있어서,
기본적인 데이터를 지정된 세그먼트에 저장한 후, 소정의 값을 계산하여 해당 세그먼트에 각각 저장하는 단계;
플래그 값을 초기화한 후, 지수 값 키의 비트 크기를 카운터에 지정한 후, 제곱 연산을 수행하는 단계;
현재 카운트에 해당하는 키 비트 값을 확인한 후, 상기 확인된 값에 따라 상기 소정의 값과 현재 값을 모듈러 곱셈하는 단계;
상기 확인된 값에 따라 플래그 값을 토글시키는 단계;
상기 카운트 값을 확인한 후, 상기 확인된 값에 따라 상기 카운트 값을 감소시키고 상기 제곱 연산을 다시 수행하는 단계; 및
상기 확인된 카운트 값에 따라, 최종 결과값을 계산하는 단계
를 더 포함하는 모듈러 곱셈 방법
|
9 |
9
제8 항에 있어서,
상기 확인된 키 비트 값에 따라, 이전 단계에서 수행된 결과 값이 어느 세그먼트에 저장되어 있는지를 알려주는 단계; 및
상기 세그먼트 중 하나를 선택하여 상기 결과 값을 저장하는 단계
를 더 포함하는 모듈러 곱셈 방법
|