KR20070062901A - 중국인 나머지 정리(crt)와 캐리 저장 가산 기반의모듈러 곱셈 장치 및 방법 - Google Patents

중국인 나머지 정리(crt)와 캐리 저장 가산 기반의모듈러 곱셈 장치 및 방법 Download PDF

Info

Publication number
KR20070062901A
KR20070062901A KR1020060081241A KR20060081241A KR20070062901A KR 20070062901 A KR20070062901 A KR 20070062901A KR 1020060081241 A KR1020060081241 A KR 1020060081241A KR 20060081241 A KR20060081241 A KR 20060081241A KR 20070062901 A KR20070062901 A KR 20070062901A
Authority
KR
South Korea
Prior art keywords
bit
carry
crt
bits
adder
Prior art date
Application number
KR1020060081241A
Other languages
English (en)
Other versions
KR100836737B1 (ko
Inventor
구본석
이동욱
양상운
류권호
장태주
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20070062901A publication Critical patent/KR20070062901A/ko
Application granted granted Critical
Publication of KR100836737B1 publication Critical patent/KR100836737B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/503Half or full adders, i.e. basic adder cells for one denomination using carry switching, i.e. the incoming carry being connected directly, or only via an inverter, to the carry output under control of a carry propagate signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치 및 방법에 관한 것으로, 더욱 상세하게는 데이터 암/복호화 등에 사용되는 RSA(Rivest-Shamir-Adleman) 공개키 암호를 구현하는데 필요한 고속의 모듈러 곱셈 방법과 이를 이용하여 중국인 나머지 정리(Chinese Remainder Theorem, CRT) 기법에 적용 가능한 모듈러 곱셈 장치 및 방법에 관한 것이다. 본 발명에 의한 모듈러 곱셈은 부스 부호화(Booth Encoding)기법을 이용하며
Figure 112006061198274-PAT00001
비트 최종 가산기를 사용하여 두 개의 n비트 입력 A, B에 대한 곱셈을
Figure 112006061198274-PAT00002
클롤 사이클만에 수행하고, 또한 캐리 저장 가산기를 기반으로 하나의 n 비트 모듈러 곱셈 연산과 두 개의 n/2 비트 모듈러 곱셈 연산을 선택적으로 처리할 수 있어 중국인 나머지 정리를 이용한 RSA 복호화 연산을 효율적으로 처리할 수 있는 효과가 있다.
몽고메리 모듈러 곱셈, 캐리 저장 가산기, 부스 부호화, 중국인 나머지 정리

Description

중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치 및 방법{APPARATUS AND METHOD FOR MODULAR MULTIPLICATION USING CHHINESE REMAINDER THEOREM AND CARRY SAVE ADDER}
도 1은 본 발명에 의한 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치의 구성을 나타내는 도면,
도 2는 본 발명에 의한 제 1 캐리 저장 가산기의 데이터 입출력을 나타내는 상세도,
도 3은 본 발명에 의한 제 2 캐리 저장 가산기의 데이터 입출력을 나타내는 상세도,
도 4는 본 발명에 의한 부스 레코딩(Booth Recording:BR)부의 구성을 나타내는 도면,
도 5는 본 발명에 의한 몽고메리 리덕션 수 계산을 위한 2비트 가산기의 구성을 나타내는 도면,
도 6은 본 발명에 의한 리덕션 테이블(Reduction Table:RT)부의 구성을 나타내는 도면,
도 7은 본 발명에 의한 다음 라운드로 전달되는 캐리 계산을 위한 2비트 가산기를 나타내는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
110:제 1 캐리 저장 가산기 120:제 2 캐리 저장 가산기
130:승수 저장 레지스터 140:부스 레코딩(BR)부
150:2비트 캐리 전파형 가산기 160:리덕션 테이블(RT)부
170:2비트 캐리 전파형 가산기 180:w-비트 캐리 전파 가산기
190:다중화기
본 발명은 암호화 기술에 관한 것으로, 더욱 상세하게는 데이터 암/복호화 등에 사용되는 RSA공개키 암호를 고속으로 구현할 수 있는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치 및 방법에 관한 것이다.
RSA공개키 시스템의 암/복호화 및 전자서명은 모듈러 지수승을 이용하며 이는 모듈러 곱셈의 반복적인 연산을 통해 계산된다. 따라서, 고속의 RSA공개키 암호 시스템 구현 시에는 고속의 모듈러 곱셈 연산을 구현하는 것이 중요한 요소이다. 모듈러 곱셈을 구현하는데 가장 널리 사용되는 알고리즘은 몽고메리 곱셈 알고리즘이며, 이 방법은 모듈러 연산을 위해 필요한 나눗셈 연산을 덧셈과 쉬프트 연산으로 대체할 수 있기 때문에 하드웨어 구현에 적합하다.
알고리즘 1. Radix-2 몽고메리 곱셈 방법
Figure 112006061198274-PAT00003
몽고메리 곱셈 알고리즘을 사용하여 모듈러 곱셈기를 구현하는 방법에는 systolic-array구조로 설계하는 방법과 캐리 전파 지연을 피하기 위해 캐리 저장 가산기(Carry Save Adder, CSA)를 이용하는 방법이 있다. Systolic-array구조로 설계하는 방법은 1비트 전가산기를 기본구조로 이를 반복사용하여 입력값의 크기만큼 확장시키고, 캐리 전파 지연을 없애기 위해 파이프라인 구조로 곱셈기를 설계하는 방법으로 클록 속도를 고속화하기에 유리한 특징을 가진다. 하지만 매 클록마다 멀티비트를 처리하는 high-radix 곱셈기를 설계하는 경우에는 파이프라인 구조 때문에 발생하는 대기시간(latency)문제로 인해 컨트롤이 복잡해지고 이로 인해 성능이 저하되는 단점을 가진다. 이에 반해 캐리 저장 가산기를 이용하여 설계하는 방법은 입력값의 크기가 증가해도 캐리 전파 지연 시간이 늘어나지 않기 때문에 수천비트의 입력값들을 고속으로 처리하는 데 적합한 특징을 가진다. 상기 기술한 두 방법 모두 고속의 곱셈 연산을 위해 high-radix방식을 사용하는 경우 발생 가능한 부분 합의 개수가 많아지고, 이로 인해 부분합을 계산(혹은 저장)하기 위한 하드웨어 면적의 증가를 야기시키며, 이로 인해 전력 소모가 증가하게 된다.
따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은
Figure 112006061198274-PAT00004
비트 최종 가산기를 사용할 경우 두 개의 n비트 입력 A, B에 대한 곱셈을
Figure 112006061198274-PAT00005
클록 사이클만에 처리하는 모듈러 곱셈 방법과 하나의 n비트 모듈러 곱셈 연산과 두개의 n/2비트 모듈러 곱셈 연산을 선택적으로 처리할 수 있는 곱셈 장치를 제안하여 RSA암호 시스템 구현의 핵심기술인 모듈러 곱셈기의 고속 구현을 실현함과 동시에 적은 면적(게이트 수)과 적은 전력소모를 갖는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치 및 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위한 본 발명의 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치는, 승수를 저장하고 radix에 따라 우측 쉬프트 하는 승수 저장 레지스터, 상기 승수 저장 레지스터로부터 입력된 정보와 피승수 정보를 이용하여 sel_crt의 조건에 따라 결정된 피승수를 출력하는 부스 레코딩(BR)부, 이전 라운드의 SUM과 CARRY에 상기 부스 레코딩(BR)부에 의해 출력된 피 승수를 더하는 연산을 수행하는 제 1 캐리 저장 가산기와 상기 제 1 캐리 저장 가산기의 연산 결과 값인 SUM과 CARRY에 하기하는 리덕션 테이블(RT)부에 의한 모듈러스 부분합(
Figure 112006061198274-PAT00006
)을 더하는 연산을 수행하는 제 2 캐리 저장 가산기로 포함하여 구성되는 캐리 저장 가산부, 상기 제 2 캐리 저장 가산기로부터 출력된 CARRY를 저장하고
Figure 112006061198274-PAT00007
비트씩 우측 쉬프트할 수 있는 C 레지스터(C_reg), SUM을 저장하고
Figure 112006061198274-PAT00008
비트씩 우측 쉬프트할 수 있는 S 레지스터(S_reg), 캐리의 발생 여부를 계산하여 다음 연산 라운드에 반영해주는 2비트 가산기, 모듈러스 입력 (Q,P)를 입력받아, 상기 2비트 가산기에 의한
Figure 112006061198274-PAT00009
와 sel_crt의 조건에 따라 1비트 값
Figure 112006061198274-PAT00010
와 n+6비트 값 (Q, P)를 출력하는 리덕션 테이블(RT)부, 입력 신호 sel_crt에 따라 1비트 입력값을 제어하는 복수의 다중화기, 상기 캐리 저장 가산부의 중간 결과값으로부터 최종 결과값을 계산하는데 사용되는 두 개의
Figure 112006061198274-PAT00011
비트 가산기를 포함하여 이루어지는 것을 특징으로 한다.
이때, 승수 저장 레지스터는 n+1비트 승수 입력을 저장하고 2비트씩 우측 쉬프트할 수 있는 것을 특징으로 하고, 특히, 승수 저장 레지스터는 n+4비트 승수 입력을 저장하고 sel_crt신호의 조건에 따라 n+4비트 또는 n/2+2비트 단위로 2비트씩 우측 쉬프트하고 3비트 정보
Figure 112006061198274-PAT00012
Figure 112006061198274-PAT00013
를 출력하는 것을 특징으로 한다.
또한, 부스 레코딩(BR)부는 피승수 정보
Figure 112006061198274-PAT00014
를 입력받아 상기 승수 저장 레지스터로부터 입력된 3비트 정보
Figure 112006061198274-PAT00015
과 sel_crt의 조건에 따라 1비트 값
Figure 112006061198274-PAT00016
와 n+4비트 값
Figure 112006061198274-PAT00017
를 출력하는 것을 특징으로 하고, 특히, 부스 레코딩(BR)부는 입력 신호 sel_crt가 0일때는
Figure 112006061198274-PAT00018
를 하나의 n+2비트 피승수로 취급하여
Figure 112006061198274-PAT00019
의 조건에 따라
Figure 112006061198274-PAT00020
와 피승수의 배수값을
Figure 112006061198274-PAT00021
로 출력하고 sel_crt이 1일 때는
Figure 112006061198274-PAT00022
을 두 개의 n/2+1비트 피승수 B', B로 각각 취급하여
Figure 112006061198274-PAT00023
Figure 112006061198274-PAT00024
의 조건에 따라
Figure 112006061198274-PAT00025
의 각 배수값을
Figure 112006061198274-PAT00026
로 출력하는 것을 특징으로 한다.
또한, 2비트 가산기(2-bit adder1)는 제 4항에 있어서 캐리 저장 가산의 중간 결과값SUM중 하위 n/2+3비트 S의 최하위 2비트
Figure 112006061198274-PAT00027
, 그리고 캐리 입력에 대한 덧셈을 수행하여
Figure 112006061198274-PAT00028
를 계산하는 2비트 가산기와 SUM의 상위 n/2+3비트
Figure 112006061198274-PAT00029
의 최하위 2비트
Figure 112006061198274-PAT00030
, 그리고 캐리 입력에 대한 덧셈을 수행하여
Figure 112006061198274-PAT00031
를 계산하는 2비트 가산기를 포함하여 이루어지는 것을 특징으로 한다.
또한, 리덕션 테이블(RT)부는 입력 신호 sel_crt가 0일때는 (Q, P)를 하나의 n비트 모듈러스 N으로 취급하여
Figure 112006061198274-PAT00032
와 N의 최하위 비트 조건에 따라
Figure 112006061198274-PAT00033
과 N의 배수값을
Figure 112006061198274-PAT00034
로 출력하고 sel_crt가 1일 때는 (Q, P)를 두 개의 n/2비트 모 듈러스 Q와 P로 각각 취급하여
Figure 112006061198274-PAT00035
와 Q와 P의 각 최하위 비트 조건에 따라
Figure 112006061198274-PAT00036
와 Q, P의 각 배수값을
Figure 112006061198274-PAT00037
로 출력하는 것을 특징으로 한다.
또한, C 레지스터(C_reg)는 sel_crt신호의 조건에 따라 n+4비트 단위 또는 n/2+2비트 단위로
Figure 112006061198274-PAT00038
비트씩 우측 쉬프트할 수 있는 것을 특징으로 하고, S 레지스터(S_reg)는 sel_crt신호의 조건에 따라 n+4비트 단위 또는 n/2+2비트 단위로
Figure 112006061198274-PAT00039
비트씩 우측 쉬프트할 수 있는 것을 특징으로 한다.
한편, 본 발명의 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법은, n+1비트 입력 A,B와 n비트 모듈러스 N에 대해
Figure 112006061198274-PAT00040
(여기서
Figure 112006061198274-PAT00041
)의 몽고메리 곱셈 연산에 있어서,
승수 A의 하위 3비트
Figure 112006061198274-PAT00042
와 피승수 B를 이용하여 부스 레코딩한 결과로 부호 정보인
Figure 112006061198274-PAT00043
와 B의 배수값인
Figure 112006061198274-PAT00044
를 출력하는 1 단계, 상기 출력된
Figure 112006061198274-PAT00045
를 중간 결과값 CARRY와 SUM에 캐리 저장 가산을 취하는 2 단계, 상기 1단계와 2 단계에 의해 출력된 SUM의 최하위 2비트
Figure 112006061198274-PAT00046
, 그리고 이전 반복 연산의 결과로 저장된 캐리 입력값인
Figure 112006061198274-PAT00047
에 대해 2비트 덧셈을 수행하여 2비트 정보
Figure 112006061198274-PAT00048
를 계산하는 3 단계, 상기 계산된 2비트 정보
Figure 112006061198274-PAT00049
와 모듈러스 N을 이용하여 부호 정보인
Figure 112006061198274-PAT00050
과 N의 배수값인
Figure 112006061198274-PAT00051
를 결정하는 4 단계, 상기 결정된
Figure 112006061198274-PAT00052
를 중간 결과값 CARRY와 SUM에 캐리 저장 가산을 취하는 5 단계, 다음 반복 연산을 위해 SUM의 최하위 2비트
Figure 112006061198274-PAT00053
, 그리고 이전 반복 연산의 결과로 저장된 캐리 입력값인
Figure 112006061198274-PAT00054
에 대해 2비트 덧셈을 수행하여 캐리 출력값으로
Figure 112006061198274-PAT00055
을 갱신하는 6 단계, 상기 캐리 저장 가산에 의한 CARRY와 SUM을 각각 2비트씩 우측 쉬프트시키는 7 단계, 상기 일련의 과정을
Figure 112006061198274-PAT00056
번 반복한 다음 CARRY와 SUM을 더해서 최종 결과값을 출력하는 8 단계를 포함하여 이루어지는 것을 특징으로 한다.
이하, 본 발명의 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치 및 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
상기에서 기술한 알고리즘 1과 같은 radix-2 곱셈 방법은 CSA를 이용하여 구현하면 매우 효율적이다. 왜냐하면 CSA 출력 CARRY의 최하위비트
Figure 112006061198274-PAT00057
는 항상 0이므로 mod 2 연산은 CSA 출력SUM의 최하위비트
Figure 112006061198274-PAT00058
에 의해 결정되며 나누기 2 연산은 SUM과 CARRY를 1비트 우측 쉬프트시킴으로써 손쉽게 구현이 가능하기 때문이다. 하지만 radix-4 곱셈의 경우에는 SUM과 CARRY를 직접 더하기 전에는 mod 4나 나누기 4 연산을 처리하기 곤란한 문제가 발생한다. 따라서 본 발명은 2비트 가산기를 이용하여 SUM과 CARRY의 최하위 2비트를 더하는 방식을 이용하는 radix-4 몽고메리 모듈러 곱셈 방법을 제안한다. 두 개의 n+1 비트 입력 A, B 그리고 n비트 모듈러 스(modulus) N에 대해 제안하는 radix-4 몽고메리 모듈러 곱셈 알고리즘은 다음과 같은 방법으로 동작한다.
Figure 112006061198274-PAT00059
여기서 (C,S) = CSA(X,Y,Z)는 세 입력 X, Y, 그리고 Z에 대한 캐리 저장 가산을 나타낸다. 일반적인 캐리 전파 가산기와 달리 캐리 저장 가산기는 별도의 캐리 입력이 없다. 따라서 캐리 저장 가산기를 이용하여 입력 B나 N에 대한 2의 보수 에 대한 연산을 수행하는 일은 단순하지 않다. 따라서 알고리즘 2에서의 부스 레코딩(Booth Recoding, BR)은 부스 부호화를 담당하는 블록으로 표 1과 같이 처리된다. 즉 B에 대한 양의 배수를 출력하는 경우는
Figure 112006061198274-PAT00060
은 0이고,
Figure 112006061198274-PAT00061
는 B나 2B의 값을 가지며, 음의 배수의 경우에는
Figure 112006061198274-PAT00062
는 1이고,
Figure 112006061198274-PAT00063
는 B나 2B 비트별 역원인 -B나 -2B이 된다. 과정 5에서는 두 개의 2비트 입력과 1비트 캐리 입력에 대한 2비트 덧셈이 수행되며 그 결과값인
Figure 112006061198274-PAT00064
과 N의 두번째 최하위 비트
Figure 112006061198274-PAT00065
를 이용하여 다음 과정의 연산에 필요한
Figure 112006061198274-PAT00066
Figure 112006061198274-PAT00067
를 결정하게 된다. 먼저
Figure 112006061198274-PAT00068
은 과정 6과 같이 결정되며
Figure 112006061198274-PAT00069
는 표 2와 같은 규칙으로 결정되게 된다. 또한 과정 6에서의
Figure 112006061198274-PAT00070
C의 최하위 비트를
Figure 112006061198274-PAT00071
으로 대체함으로써 손쉽게 처리된다. 과정 16에서는 또 하나의 2비트 덧셈이 수행되며 이때 나누기 4는 2비트 덧셈의 출력 캐리만 다음 반복 연산을 위해 저장하고 나머지 2비트 결과를 버림으로써 간단히 처리된다. 다시 과정 17에서는 C과 S에 대해서 2비트씩 우측 쉬프트시켜 나누기 4를 수행한다. 이러한 일련의 과정을
Figure 112006061198274-PAT00072
번 수행함으로써 캐리저장 형태의 모듈러 곱셈 결과값이 C과 S에 저장되며 이로부터 최종 결과값을 얻기 위해 두 값을 더해주는 작업이 과정 19에서 수행된다.
표 1 알고리즘 2의 radix-4 부스 레코딩 규칙
Figure 112006061198274-PAT00073
표 2 알고리즘2의 리덕션 테이블(Reduction Table, RT)
Figure 112006061198274-PAT00074
RSA 복호화나 서명 연산은 중국인 나머지 정리(Chinese Remainder Theorem, 이하 CRT)을 이용하여 고속으로 구현될 수 있다. n비트 모듈러스 N은 두 개의 n/2비트 소수 P와 Q의 곱, 즉 N= P x Q이므로 n비트 모듈러 지수승
Figure 112006061198274-PAT00075
은 CRT를 이용하여 다음과 같이 두 부분으로 분리되어서 계산이 가능하다.
알고리즘 3. CRT를 이용한 RSA 복호화 방법
Figure 112006061198274-PAT00076
여기서 과정 1~2에서는 n비트 암호문 C를 리덕션하여 두 개의 n/2비트 암호문
Figure 112006061198274-PAT00077
Figure 112006061198274-PAT00078
를 계산하며, 과정 3~4에서는 리덕션된 암호문
Figure 112006061198274-PAT00079
Figure 112006061198274-PAT00080
, 각각에 대한 모듈러 지수승을 수행하고, 과정 5~6에서는 이전 과정에서 생성된 메시지,
Figure 112006061198274-PAT00081
Figure 112006061198274-PAT00082
를 가지고 최종 메시지M을 재조합하게된다. 이러한 일련의 과정 중 가장 연산량이 많이 필요한 부분은 과정 3~4의 n/2비트 모듈러 지수승 연산이라는 점을 쉽게 파악할 수 있다. 따라서 CRT를 이용한 RSA연산의 고속화를 위해서는 n비트 모듈러 곱셈 장치가 두 개의 n/2단위로 독립적으로 동작하는 기능이 요구된다. 알고리즘 2와 같이 캐리 저장 가산을 사용하는 방법의 경우, 인접 비트간의 캐리 전파가 발생하지 않기 때문에 n/2비트 단위로 독립적으로 컨트롤하기에 매우 유리하다는 장점을 가진다. 따라서 본 발명은 알고리즘 2를 기반으로 하고 CRT 적용이 가능한 모듈러 곱셈 장치를 제안한다.
도 1은 본 발명에 의한 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치의 구성을 나타내는 도면이다.
본 발명에 의한 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치는, 승수(A)를 저장하고 radix에 따라 우측 쉬프트 하는 승수 저장 레지스터(130), 승수의 하위 일정 비트를 참고하여 더해질 적절한 피승수(B) 값을 출력하는 부스 레코딩(Booth Recoding:BR)부(140), 연산 중간값들의 덧셈을 수행하는 캐리 저장 가산기(110,120), 연산 중간값의 하위비트 및 모듈러스 수에 따라 더해질 적절한 모듈러스 값을 출력하는 리덕션 테이블(Reduction Table:RT)부, 캐리의 발생 여부를 계산하여 다음 연산 라운드에 반영해주는 2비트 가산기(150,170), 캐리 저장 형태의 연산 중간값을 최종 데이터 출력전에 합산하는데 사용되는 w 비트 크기의 가산기(180)를 포함하여 구성된다.
제 1 캐리 저장 가산기(110)는 이전 라운드의 SUM과 CARRY에 승수 비트에 따라 부스 레코딩(Booth Recoding:BR)부에 의해 결정된 피승수의 부분합
Figure 112006061198274-PAT00083
을 더하는 연산을 수행한다. 도 2는 제 1 캐리 저장 가산기의 데이터 입출력을 나타내는 상세도로 (n+4)개의 병룔로 연결된 전가산기로 구성된다. 각 개별 가산기의 첫번째 입력과 두번째 입력은 이전 라운드 연산 결과값 중 SUM과 CARRY부이며, 몽고메리 리덕션이 수행된 즉 각각 2비트씩 좌로 쉬프트된 SUM과 CARRY가 입력되도록 구성된다. CRT연산이 아닌 n비트 연산 모드인 경우 연산기에 입력되는
Figure 112006061198274-PAT00084
Figure 112006061198274-PAT00085
중 하나의 값이며 n+2비트의 크기를 가지므로, 전체 n+4개의 가산기중 n+2개가 연산에 사용된다. CRT 모드인 경우 두개의 (n/2+2)비트수가 각각 입력되며 이 경우 전체
Figure 112006061198274-PAT00086
개의 연산기가 사용된다.
제 2 캐리 저장 가산기(120)는 제 1 캐리 저장 가산기(110)의 연산 결과 값인 SUM과 CARRY에 리덕션 테이블(RT)부(160)에서 발생한 모듈러스의 부분합
Figure 112006061198274-PAT00087
을 더하는 연산을 수행한다. 도 3은 제 2 캐리 저장 가산기(120)의 데이터 입출력을 나타내는 상세도로 제 1 캐리 저장 가산기(110)에 의해 계산된 SUM과 CARRY는 각각 n+2, n+3비트의 크기를 가지며, 이 값은 또 다른 n+2비트 입력
Figure 112006061198274-PAT00088
과 함께 더해지게 된다. 따라서 CRT연산 모드가 아닌 경우 n+3개의 연산기가 사용되며, CRT모드인 경우에는 총 n+6개의 연산기가 절반씩 사용되게 된다.
승수 저장 레지스터(130)는 곱셈기 입력
Figure 112006061198274-PAT00089
의 저장공간으로 사용된다. 승수 저장 레지스터(130)는 도 1에서 보여지는 바와 같이 CRT모드에 따라 n+1비트의 승수를 저장하거나 혹은 두 개의 (n/2+1)비트 승수를 저장하며 한 클록 주기동안 2비트 우측 쉬프트하며, 각 하위 3개 비트 출력은 부스 레코딩(BR)부(140)의 입력으로 인가된다.
부스 레코딩(BR)부(140)는 승수 레지스터(130)로부터 인가된 두 개의 3비트 입력에 따라 결정된 피승수를 출력하는 회로이다. 도 4는 부스 레코딩(Booth Recording:BR)부의 구성을 나타내는 도면으로 CRT모드 선택을 위한 다중화기(141)는 sel_crt 비트에 따라서
Figure 112006061198274-PAT00090
나 혹은
Figure 112006061198274-PAT00091
을 위쪽 비트 영역의 부스 레코더로 입력한다. 부스 레코딩(BR)부(140)는 입력되는 3비트에 따라 각 다중화기(142,143)의 제어신호를 발생한다. 상단부의 다중화기(142)는 피승수를 입력으로 받아 B와 2B중에 적절한 값을 출력하며, 비트별 역원기(bit-wise inverter) 회로(145)에서는 2의 보수 음수출력을 위한 예비 연산을 수행한다. 하단부의 다중화기(143)은 비트별 반전된 값과 반전되지 않은 값들 중에 적절한 값을 부스 레코딩된 결과값에 따라 선택하여 출력한다.
제 1 캐리 저장 가산기(110)의 연산 출력값은 SUM과 CARRY형태로 표현되어 있으므로, 출력값의 하위비트에 따라
Figure 112006061198274-PAT00092
값을 결정하기 위해서는 일정 하위비트의 SUM과 CARRY를 더하여 실제 연산결과값을 계산해 내야 한다. Radix-4 곱셈기의 경우, 하위 2비트의 덧셈 결과 값에 따라
Figure 112006061198274-PAT00093
값이 결정되므로, 2비트 전가산기를 통해 상기 언급한 덧셈 연산이 수행된다. 2비트 가산기 블록(150)의 자세한 도면은 도 5와 같다. 가산기로 입력되는 제 2 캐리 저장 가산기(120)의 CARRY출력의 경우 에는 이미 제 1 캐리 저장 가산기(110)에서 1비트 좌측 쉬프트되어 출력되므로, 최하위 비트는 늘 0값을 가지게 된다. 따라서 부스 레코딩(BR)부(140)에서 음수
Figure 112006061198274-PAT00094
가 발생한 경우 부스 레코딩(BR)부는 2의 보수형태가 아닌 비트별 반전된 값만을 발생하고,
Figure 112006061198274-PAT00095
신호를 발생하여 본 2비트 가산기(120)의 CARRY 입력 최하위 비트에 인가하여 반영하도록 구성되어 있다. 또한 최하위 비트 가산기의 최초 캐리 입력으로는 제 2 캐리 저장형 가산기(120) 다음에 위치한 2비트 가산기(170)의 carry_reg(171) 출력을 입력으로 받는다.
리덕션 테이블(RT)부(160)는 몽고메리 리덕션을 적용하기 위해 적절한
Figure 112006061198274-PAT00096
값을 선택한다. 도 6은 리덕션 테이블(Reduction Table:RT)부의 구성을 나타내는 도면으로 상기 기술한 2비트 가산기(150)의 결과값 2비트와 모듈러스 N을 입력으로 하며,
Figure 112006061198274-PAT00097
값을 발생한다.
Figure 112006061198274-PAT00098
값은 상기의 표 2와 같은 규칙에 따라 발생한다.
다중화기(161)은 모듈러스(N)값의 발생가능한 4가지 값중(0, +N, -N, 2N) 하나를 선택하는 기능을 수행한다. 또한 기 설명한 바와 같이 CRT모드를 지원하여, n/2비트 모드인 경우 n/2비트 모듈러스 수인 P와 Q가 각각 입력되며, n비트 모드인 경우 P, Q는 모듈러스 N의 상위 절반과 하위 절반으로 대응한다. 다중화기(162)는 CRT모드 여부에 따라 상위 비트열을 제어하는 다중화기(161)의 컨트롤 신호를 선택하는 역할을 수행한다.
제 2 캐리 저장 가산기(120) 연산을 마친 SUM과 CARRY값은 몽고메리 리덕션 을 수행하기 위해 2비트 좌측 쉬프트된다. 몽고메리 연산규칙에 따르면, 리덕션 테이블(RT)(160)부에서 발생한 적절한
Figure 112006061198274-PAT00099
값을 더한 연산값의 하위 2비트 모두 0이어야 하지만, 본 제안에서는 캐리 저장 가산기를 사용하므로,
Figure 112006061198274-PAT00100
,의 경우와 같이 실제 연산 결과값은 2비트 모두 0이지만 캐리 저장 형식으로 0이 아닌 경우가 발생할 수 있다. 따라서 이러한 경우 2비트를 좌측 쉬프트하여 레지스터에 입력할 경우 하위 2비트의 정보를 잃어버릴 수 있다. 이를 보상하기 위해 2비트 가산기(170)가 사용된다. 도 7과 같이 2비트 가산기는 제 2 캐리 저장 가산기(120) 출력의 하위 2비트와
Figure 112006061198274-PAT00101
신호를 더하여, 3번째 비트 위치로의 캐리가 발생할 경우 이를 1비트 레지스터에 저장한 후 다음 라운드 반복 연산에 2비트 가산기(150)의 캐리 입력으로 반영한다. 본 2비트 가산기(150) 역시 CRT모드 지원을 위해 두 개의 2비트 가산기로 구성되며 그 동작은 상기 기술한 바와 같다.
모든 라운드 반복 수행을 마친 후, SUM과 CARRY형태인 캐리 저장형태로 분리되어 있는 결과값을 최종 결과값으로 변환하기 위해
Figure 112006061198274-PAT00102
비트 크기의 가산기(180)가 사용된다. 본 가산기는 성능/면적의 조건에 따라 임의 비트 단위로 덧셈을 수행할 수 있다. 최하위 비트 위치의
Figure 112006061198274-PAT00103
비트부터 덧셈 연산이 수행되며, 약
Figure 112006061198274-PAT00104
싸이클 후에 n비트 CARRY와 SUM의 덧셈이 완료되면 최종 연산 결과값인
Figure 112006061198274-PAT00105
(여기서
Figure 112006061198274-PAT00106
)이 출력된다.
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
상술한 바와 같이, 본 발명에 의한 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치 및 방법은 캐리 저장 가산을 기반으로 하는 radix-4 몽고메리 곱셈 방법과 이를 이용하여 CRT기법에 적용 가능한 모듈러 곱셈 장치를 제시하여 공개키 암호인 RSA 암호 시스템을 고속의 하드웨어로 구현할 수 있는 효과와 함께 적은 면적과 전력소모를 줄일 수 있는 효과가 있다.

Claims (14)

  1. 승수를 저장하고 radix에 따라 우측 쉬프트 하는 승수 저장 레지스터;
    상기 승수 저장 레지스터로부터 입력된 정보와 피승수 정보를 이용하여 sel_crt의 조건에 따라 결정된 피승수를 출력하는 부스 레코딩(BR)부;
    이전 라운드의 SUM과 CARRY에 상기 부스 레코딩(BR)부에 의해 출력된 피승수를 더하는 연산을 수행하는 제 1 캐리 저장 가산기와 상기 제 1 캐리 저장 가산기의 연산 결과 값인 SUM과 CARRY에 하기하는 리덕션 테이블(RT)부에 의한 모듈러스 부분합(
    Figure 112006061198274-PAT00107
    )을 더하는 연산을 수행하는 제 2 캐리 저장 가산기로 포함하여 구성되는 캐리 저장 가산부;
    상기 제 2 캐리 저장 가산기로부터 출력된 CARRY를 저장하고
    Figure 112006061198274-PAT00108
    비트씩 우측 쉬프트할 수 있는 C 레지스터(C_reg), SUM을 저장하고
    Figure 112006061198274-PAT00109
    비트씩 우측 쉬프트할 수 있는 S 레지스터(S_reg);
    캐리의 발생 여부를 계산하여 다음 연산 라운드에 반영해주는 2비트 가산기;
    모듈러스 입력 (Q,P)를 입력받아, 상기 2비트 가산기에 의한
    Figure 112006061198274-PAT00110
    와 sel_crt의 조건에 따라 1비트 값
    Figure 112006061198274-PAT00111
    와 n+6비트 값 (Q, P)를 출력하는 리덕션 테이블(RT)부;
    입력 신호 sel_crt에 따라 1비트 입력값을 제어하는 복수의 다중화기;
    상기 캐리 저장 가산부의 중간 결과값으로부터 최종 결과값을 계산하는데 사 용되는 두 개의
    Figure 112006061198274-PAT00112
    비트 가산기를 포함하여 이루어지는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
  2. 제 1항에 있어서,
    상기 승수 저장 레지스터는 n+1비트 승수 입력을 저장하고 2비트씩 우측 쉬프트할 수 있는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
  3. 제 2항에 있어서,
    상기 승수 저장 레지스터는 n+4비트 승수 입력을 저장하고 sel_crt신호의 조건에 따라 n+4비트 또는 n/2+2비트 단위로 2비트씩 우측 쉬프트하고 3비트 정보
    Figure 112006061198274-PAT00113
    Figure 112006061198274-PAT00114
    를 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
  4. 제 1항 내지 제 3항 중 어느 하나의 항에 있어서,
    상기 부스 레코딩(BR)부는 피승수 정보
    Figure 112006061198274-PAT00115
    를 입력받아 상기 승수 저장 레지스터로부터 입력된 3비트 정보
    Figure 112006061198274-PAT00116
    과 sel_crt의 조건에 따라 1비트 값
    Figure 112006061198274-PAT00117
    와 n+4비트 값
    Figure 112006061198274-PAT00118
    를 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
  5. 제 4항에 있어서,
    상기 부스 레코딩(BR)부는 입력 신호 sel_crt가 0일때는
    Figure 112006061198274-PAT00119
    를 하나의 n+2비트 피승수로 취급하여
    Figure 112006061198274-PAT00120
    의 조건에 따라
    Figure 112006061198274-PAT00121
    와 피승수의 배수값을
    Figure 112006061198274-PAT00122
    로 출력하고 sel_crt이 1일 때는
    Figure 112006061198274-PAT00123
    을 두 개의 n/2+1비트 피승수 B', B로 각각 취급하여
    Figure 112006061198274-PAT00124
    Figure 112006061198274-PAT00125
    의 조건에 따라
    Figure 112006061198274-PAT00126
    의 각 배수값을
    Figure 112006061198274-PAT00127
    로 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
  6. 제 5항에 있어서,
    상기 2비트 가산기(2-bit adder1)는 제 4항에 있어서 캐리 저장 가산의 중간 결과값SUM중 하위 n/2+3비트 S의 최하위 2비트
    Figure 112006061198274-PAT00128
    , 그리고 캐리 입력에 대한 덧셈을 수행하여
    Figure 112006061198274-PAT00129
    를 계산하는 2비트 가산기와 SUM의 상위 n/2+3비트
    Figure 112006061198274-PAT00130
    의 최하위 2비트
    Figure 112006061198274-PAT00131
    , 그리고 캐리 입력에 대한 덧셈을 수행하여
    Figure 112006061198274-PAT00132
    를 계산하는 2비트 가산기를 포함하여 이루어지는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
  7. 제 6항에 있어서,
    상기 리덕션 테이블(RT)부는 입력 신호 sel_crt가 0일때는 (Q, P)를 하나의 n비트 모듈러스 N으로 취급하여
    Figure 112006061198274-PAT00133
    와 N의 최하위 비트 조건에 따라
    Figure 112006061198274-PAT00134
    과 N의 배수값을
    Figure 112006061198274-PAT00135
    로 출력하고 sel_crt가 1일 때는 (Q, P)를 두 개의 n/2비트 모듈러스 Q와 P로 각각 취급하여
    Figure 112006061198274-PAT00136
    와 Q와 P의 각 최하위 비트 조건에 따라
    Figure 112006061198274-PAT00137
    와 Q, P의 각 배수값을
    Figure 112006061198274-PAT00138
    로 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
  8. 제 1항에 있어서,
    상기 C 레지스터(C_reg)는 sel_crt신호의 조건에 따라 n+4비트 단위 또는 n/2+2비트 단위로
    Figure 112006061198274-PAT00139
    비트씩 우측 쉬프트할 수 있는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
  9. 제 1항에 있어서,
    상기 S 레지스터(S_reg)는 sel_crt신호의 조건에 따라 n+4비트 단위 또는 n/2+2비트 단위로
    Figure 112006061198274-PAT00140
    비트씩 우측 쉬프트할 수 있는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
  10. n+1비트 입력 A,B와 n비트 모듈러스 N에 대해
    Figure 112006061198274-PAT00141
    (여기서
    Figure 112006061198274-PAT00142
    )의 몽고메리 곱셈 연산에 있어서,
    승수 A의 하위 3비트
    Figure 112006061198274-PAT00143
    와 피승수 B를 이용하여 부스 레코딩한 결과로 부호 정보인
    Figure 112006061198274-PAT00144
    와 B의 배수값인
    Figure 112006061198274-PAT00145
    를 출력하는 1 단계;
    상기 출력된
    Figure 112006061198274-PAT00146
    를 중간 결과값 CARRY와 SUM에 캐리 저장 가산을 취하는 2 단계;
    상기 1단계와 2 단계에 의해 출력된 SUM의 최하위 2비트
    Figure 112006061198274-PAT00147
    , 그리고 이전 반복 연산의 결과로 저장된 캐리 입력값인
    Figure 112006061198274-PAT00148
    에 대해 2비트 덧셈을 수행하여 2비트 정보
    Figure 112006061198274-PAT00149
    를 계산하는 3 단계;
    상기 계산된 2비트 정보
    Figure 112006061198274-PAT00150
    와 모듈러스 N을 이용하여 부호 정보인
    Figure 112006061198274-PAT00151
    과 N의 배수값인
    Figure 112006061198274-PAT00152
    를 결정하는 4 단계;
    상기 결정된
    Figure 112006061198274-PAT00153
    를 중간 결과값 CARRY와 SUM에 캐리 저장 가산을 취하는 5 단계;
    다음 반복 연산을 위해 SUM의 최하위 2비트
    Figure 112006061198274-PAT00154
    , 그리고 이전 반복 연산의 결과로 저장된 캐리 입력값인
    Figure 112006061198274-PAT00155
    에 대해 2비트 덧셈을 수행하여 캐리 출력값으로
    Figure 112006061198274-PAT00156
    을 갱신하는 6 단계;
    상기 캐리 저장 가산에 의한 CARRY와 SUM을 각각 2비트씩 우측 쉬프트시키는 7 단계;
    상기 일련의 과정을
    Figure 112006061198274-PAT00157
    번 반복한 다음 CARRY와 SUM을 더해서 최종 결과값을 출력하는 8 단계를 포함하여 이루어지는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법.
  11. 제 10항에 있어서,
    상기 제 1 단계의 부스 레코딩은 피승수 정보
    Figure 112006061198274-PAT00158
    를 입력받아 상기 승수 저장 레지스터로부터 입력된 3비트 정보
    Figure 112006061198274-PAT00159
    과 sel_crt의 조건에 따라 1비트 값
    Figure 112006061198274-PAT00160
    와 n+4비트 값
    Figure 112006061198274-PAT00161
    를 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법.
  12. 제 11항에 있어서,
    상기 부스 레코딩은 입력 신호 sel_crt가 0일때는
    Figure 112006061198274-PAT00162
    를 하나의 n+2비트 피승수로 취급하여
    Figure 112006061198274-PAT00163
    의 조건에 따라
    Figure 112006061198274-PAT00164
    와 피승수의 배수값을
    Figure 112006061198274-PAT00165
    로 출력하고 sel_crt이 1일 때는
    Figure 112006061198274-PAT00166
    을 두 개의 n/2+1비트 피승수 B', B로 각각 취급하여
    Figure 112006061198274-PAT00167
    Figure 112006061198274-PAT00168
    의 조건에 따라
    Figure 112006061198274-PAT00169
    의 각 배수값을
    Figure 112006061198274-PAT00170
    로 출력하는 것을 특징으로 하는 중국 인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법.
  13. 제 11항에 있어서,
    상기 제 3단계는 캐리 저장 가산의 중간 결과값 SUM중 하위 n/2+3비트 S의 최하위 2비트
    Figure 112006061198274-PAT00171
    , 그리고 캐리 입력에 대한 덧셈을 수행하여
    Figure 112006061198274-PAT00172
    를 계산하는 단계와 SUM의 상위 n/2+3비트
    Figure 112006061198274-PAT00173
    의 최하위 2비트
    Figure 112006061198274-PAT00174
    , 그리고 캐리 입력에 대한 덧셈을 수행하여
    Figure 112006061198274-PAT00175
    를 계산하는 단계를 포함하여 이루어지는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법.
  14. 제 11항에 있어서,
    제 4단계는 입력 신호 sel_crt가 0일때는 (Q, P)를 하나의 n비트 모듈러스 N으로 취급하여
    Figure 112006061198274-PAT00176
    와 N의 최하위 비트 조건에 따라
    Figure 112006061198274-PAT00177
    과 N의 배수값을
    Figure 112006061198274-PAT00178
    로 출력하고 sel_crt가 1일 때는 (Q, P)를 두 개의 n/2비트 모듈러스 Q와 P로 각각 취급하여
    Figure 112006061198274-PAT00179
    와 Q와 P의 각 최하위 비트 조건에 따라
    Figure 112006061198274-PAT00180
    와 Q, P의 각 배수값을
    Figure 112006061198274-PAT00181
    로 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법.
KR1020060081241A 2005-12-13 2006-08-25 중국인 나머지 정리(crt)와 캐리 저장 가산 기반의모듈러 곱셈 장치 및 방법 KR100836737B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050122661 2005-12-13
KR20050122661 2005-12-13

Publications (2)

Publication Number Publication Date
KR20070062901A true KR20070062901A (ko) 2007-06-18
KR100836737B1 KR100836737B1 (ko) 2008-06-10

Family

ID=38363120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060081241A KR100836737B1 (ko) 2005-12-13 2006-08-25 중국인 나머지 정리(crt)와 캐리 저장 가산 기반의모듈러 곱셈 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100836737B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814838A (zh) * 2019-03-28 2019-05-28 贵州华芯通半导体技术有限公司 获取加解密运算中的中间结果组的方法、硬件装置和***
US11829731B2 (en) 2021-11-22 2023-11-28 Industrial Technology Research Institute Modular multiplication circuit and corresponding modular multiplication method
KR102621862B1 (ko) 2023-04-19 2024-01-05 국방과학연구소 중국인의 나머지 정리 기반 이진체 곱셈 장치 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100652377B1 (ko) * 2004-08-06 2007-02-28 삼성전자주식회사 모듈라 지수승 알고리즘, 기록매체 및 시스템

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814838A (zh) * 2019-03-28 2019-05-28 贵州华芯通半导体技术有限公司 获取加解密运算中的中间结果组的方法、硬件装置和***
CN109814838B (zh) * 2019-03-28 2024-04-12 贵州华芯半导体技术有限公司 获取加解密运算中的中间结果组的方法、硬件装置和***
US11829731B2 (en) 2021-11-22 2023-11-28 Industrial Technology Research Institute Modular multiplication circuit and corresponding modular multiplication method
KR102621862B1 (ko) 2023-04-19 2024-01-05 국방과학연구소 중국인의 나머지 정리 기반 이진체 곱셈 장치 및 방법

Also Published As

Publication number Publication date
KR100836737B1 (ko) 2008-06-10

Similar Documents

Publication Publication Date Title
Kwon et al. Two implementation methods of a 1024-bit RSA cryptoprocessor based on modified Montgomery algorithm
JP4870932B2 (ja) 多重精度を支援する拡張型モンゴメリモジュラ掛け算器
JP2004326112A (ja) マルチプルモジュラス選択器、累算器、モンゴメリー掛け算器、マルチプルモジュラス発生方法、部分掛け発生方法、累算方法、掛け算方法、モジュラス選択器、およびブースレコーダ
KR100591761B1 (ko) 몽고메리 모듈러 곱셈기 및 캐리 저장 가산을 이용한몽고메리 모듈러 곱셈 방법
Tian et al. High-speed FPGA implementation of SIKE based on an ultra-low-latency modular multiplier
US5121429A (en) Digital signal processing
KR100459732B1 (ko) 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법
KR101925868B1 (ko) 모듈러 계산 유닛 및 그것을 포함하는 보안 시스템
US7240204B1 (en) Scalable and unified multiplication methods and apparatus
KR100836737B1 (ko) 중국인 나머지 정리(crt)와 캐리 저장 가산 기반의모듈러 곱셈 장치 및 방법
US8527570B1 (en) Low cost and high speed architecture of montgomery multiplier
JP2004258141A (ja) モンゴメリ乗算剰余の多倍長演算のための演算装置
JP2004227344A (ja) 乗算器及び暗号回路
Hong et al. Radix-4 modular multiplication and exponentiation algorithms for the RSA public-key cryptosystem
KR20220049212A (ko) 모듈러 연산을 위한 워드 병렬 연산 방법
KR101136972B1 (ko) 타원곡선 암호 연산 방법
JP2006023647A (ja) 乗算剰余演算器及び情報処理装置
Zhang et al. A high-performance low-power Barrett modular multiplier for cryptosystems
US7607165B2 (en) Method and apparatus for multiplication and/or modular reduction processing
US7266577B2 (en) Modular multiplication apparatus, modular multiplication method, and modular exponentiation apparatus
KR100946256B1 (ko) 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기
KR100858559B1 (ko) 잉여 이진수의 덧셈 방법, 잉여 이진수의 곱셈 방법, 잉여이진수 덧셈기 및 잉여 이진수 곱셈기
RU2804380C1 (ru) Конвейерный вычислитель
RU2791440C1 (ru) Конвейерный формирователь остатков по произвольному модулю
RU2797163C1 (ru) Конвейерный вычислитель

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130410

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140326

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160328

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170406

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 11