KR100836737B1 - Apparatus and method for modular multiplication using chhinese remainder theorem and carry save adder - Google Patents

Apparatus and method for modular multiplication using chhinese remainder theorem and carry save adder Download PDF

Info

Publication number
KR100836737B1
KR100836737B1 KR1020060081241A KR20060081241A KR100836737B1 KR 100836737 B1 KR100836737 B1 KR 100836737B1 KR 1020060081241 A KR1020060081241 A KR 1020060081241A KR 20060081241 A KR20060081241 A KR 20060081241A KR 100836737 B1 KR100836737 B1 KR 100836737B1
Authority
KR
South Korea
Prior art keywords
bit
crt
information
reg
sel
Prior art date
Application number
KR1020060081241A
Other languages
Korean (ko)
Other versions
KR20070062901A (en
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/en
Application granted granted Critical
Publication of KR100836737B1 publication Critical patent/KR100836737B1/en

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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Complex Calculations (AREA)
  • Signal Processing For Digital Recording And Reproducing (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 복호화 연산을 효율적으로 처리할 수 있는 효과가 있다. The present invention relates to a modular multiplication apparatus and method based on the Chinese Residual Theorem (CRT) and carry storage addition, and more particularly, to implement a Rivest-Shamir-Adleman (RSA) public key cryptography used for data encryption / decryption. The present invention relates to a fast modular multiplication method and a modular multiplication apparatus and method applicable to the Chinese Remainder Theorem (CRT) technique. Modular multiplication according to the present invention utilizes the Boot Encoding technique.
Figure 112006061198274-pat00001
Multiply two n-bit inputs A and B using the bit final adder
Figure 112006061198274-pat00002
It can perform in a crawl cycle only, and can optionally handle one n-bit modular multiplication operation and two n / 2-bit modular multiplication operations based on the carry storage adder to efficiently handle RSA decoding operations using the Chinese remainder theorem. It can work.

몽고메리 모듈러 곱셈, 캐리 저장 가산기, 부스 부호화, 중국인 나머지 정리 Montgomery Modular Multiplication, Carry Storage Adder, Booth Coding, Chinese Rest Theorem

Description

중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치 및 방법{APPARATUS AND METHOD FOR MODULAR MULTIPLICATION USING CHHINESE REMAINDER THEOREM AND CARRY SAVE ADDER}Modular Multiplication Apparatus and Method Based on Chinese Remnant Theorem (CRT) and Carry Storage Addition {APPARATUS AND METHOD FOR MODULAR MULTIPLICATION USING CHHINESE REMAINDER THEOREM AND CARRY SAVE ADDER}

도 1은 본 발명에 의한 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치의 구성을 나타내는 도면,BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a diagram showing a configuration of a modular multiplication apparatus based on Chinese residual theorem (CRT) and carry storage addition according to the present invention;

도 2는 본 발명에 의한 제 1 캐리 저장 가산기의 데이터 입출력을 나타내는 상세도,2 is a detailed view showing data input / output of the first carry storage adder according to the present invention;

도 3은 본 발명에 의한 제 2 캐리 저장 가산기의 데이터 입출력을 나타내는 상세도,3 is a detailed view showing data input / output of a second carry storage adder according to the present invention;

도 4는 본 발명에 의한 부스 레코딩(Booth Recording:BR)부의 구성을 나타내는 도면,4 is a view illustrating a configuration of a booth recording (BR) unit according to the present invention;

도 5는 본 발명에 의한 몽고메리 리덕션 수 계산을 위한 2비트 가산기의 구성을 나타내는 도면,5 is a diagram showing the configuration of a 2-bit adder for calculating the Montgomery reduction number according to the present invention;

도 6은 본 발명에 의한 리덕션 테이블(Reduction Table:RT)부의 구성을 나타내는 도면,6 is a view showing a configuration of a reduction table (RT) unit according to the present invention;

도 7은 본 발명에 의한 다음 라운드로 전달되는 캐리 계산을 위한 2비트 가산기를 나타내는 도면이다. 7 is a diagram illustrating a 2-bit adder for carry calculations carried in the next round according to the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

110:제 1 캐리 저장 가산기 120:제 2 캐리 저장 가산기110: first carry storage adder 120: second carry storage adder

130:승수 저장 레지스터 140:부스 레코딩(BR)부130: multiplier storage register 140: booth recording (BR) section

150:2비트 캐리 전파형 가산기 160:리덕션 테이블(RT)부150: 2-bit carry propagation adder 160: reduction table (RT) unit

170:2비트 캐리 전파형 가산기 180:w-비트 캐리 전파 가산기170: 2-bit carry propagation adder 180: w-bit carry propagation adder

190:다중화기 190: Multiplexer

본 발명은 암호화 기술에 관한 것으로, 더욱 상세하게는 데이터 암/복호화 등에 사용되는 RSA공개키 암호를 고속으로 구현할 수 있는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치 및 방법에 관한 것이다. The present invention relates to an encryption technique, and more particularly, to a modular multiplication apparatus and method based on Chinese residual theorem (CRT) and carry storage addition capable of rapidly implementing RSA public key cryptography used for data encryption / decryption. .

RSA공개키 시스템의 암/복호화 및 전자서명은 모듈러 지수승을 이용하며 이는 모듈러 곱셈의 반복적인 연산을 통해 계산된다. 따라서, 고속의 RSA공개키 암호 시스템 구현 시에는 고속의 모듈러 곱셈 연산을 구현하는 것이 중요한 요소이다. 모듈러 곱셈을 구현하는데 가장 널리 사용되는 알고리즘은 몽고메리 곱셈 알고리즘이며, 이 방법은 모듈러 연산을 위해 필요한 나눗셈 연산을 덧셈과 쉬프트 연산으로 대체할 수 있기 때문에 하드웨어 구현에 적합하다. The encryption / decryption and digital signature of the RSA public key system use modular exponential power, which is calculated through an iterative operation of modular multiplication. Therefore, when implementing a fast RSA public key cryptosystem, it is important to implement a fast modular multiplication operation. The most widely used algorithm for implementing modular multiplication is the Montgomery multiplication algorithm, which is suitable for hardware implementation because it can replace the division operation required for modular operation with addition and shift operations.

알고리즘 1. Radix-2 몽고메리 곱셈 방법Algorithm 1. Radix-2 Montgomery Multiplication Method

Figure 112006061198274-pat00003
Figure 112006061198274-pat00003

몽고메리 곱셈 알고리즘을 사용하여 모듈러 곱셈기를 구현하는 방법에는 systolic-array구조로 설계하는 방법과 캐리 전파 지연을 피하기 위해 캐리 저장 가산기(Carry Save Adder, CSA)를 이용하는 방법이 있다. Systolic-array구조로 설계하는 방법은 1비트 전가산기를 기본구조로 이를 반복사용하여 입력값의 크기만큼 확장시키고, 캐리 전파 지연을 없애기 위해 파이프라인 구조로 곱셈기를 설계하는 방법으로 클록 속도를 고속화하기에 유리한 특징을 가진다. 하지만 매 클록마다 멀티비트를 처리하는 high-radix 곱셈기를 설계하는 경우에는 파이프라인 구조 때문에 발생하는 대기시간(latency)문제로 인해 컨트롤이 복잡해지고 이로 인해 성능이 저하되는 단점을 가진다. 이에 반해 캐리 저장 가산기를 이용하여 설계하는 방법은 입력값의 크기가 증가해도 캐리 전파 지연 시간이 늘어나지 않기 때문에 수천비트의 입력값들을 고속으로 처리하는 데 적합한 특징을 가진다. 상기 기술한 두 방법 모두 고속의 곱셈 연산을 위해 high-radix방식을 사용하는 경우 발생 가능한 부분 합의 개수가 많아지고, 이로 인해 부분합을 계산(혹은 저장)하기 위한 하드웨어 면적의 증가를 야기시키며, 이로 인해 전력 소모가 증가하게 된다.There are two ways to implement a modular multiplier using the Montgomery multiplication algorithm: design a systolic-array structure and use a Carry Save Adder (CSA) to avoid carry propagation delays. The design of the systolic-array structure is to use the 1-bit full adder as the basic structure to expand it by the size of the input value and to increase the clock speed by designing the multiplier with the pipeline structure to eliminate the carry propagation delay. Has advantageous features. However, when designing a high-radix multiplier that handles multiple bits every clock, the latency is caused by the pipeline structure, which complicates the control and degrades the performance. On the other hand, the design using the carry storage adder is suitable for processing thousands of bits of input values at high speed since the carry propagation delay time does not increase even if the input value increases. Both of the above methods increase the number of partial sums that can occur when using the high-radix method for fast multiplication, which causes an increase in the hardware area for calculating (or storing) the subtotals. Power consumption is increased.

따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은

Figure 112006061198274-pat00004
비트 최종 가산기를 사용할 경우 두 개의 n비트 입력 A, B에 대한 곱셈을
Figure 112006061198274-pat00005
클록 사이클만에 처리하는 모듈러 곱셈 방법과 하나의 n비트 모듈러 곱셈 연산과 두개의 n/2비트 모듈러 곱셈 연산을 선택적으로 처리할 수 있는 곱셈 장치를 제안하여 RSA암호 시스템 구현의 핵심기술인 모듈러 곱셈기의 고속 구현을 실현함과 동시에 적은 면적(게이트 수)과 적은 전력소모를 갖는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치 및 방법을 제공하는 것을 목적으로 한다. Therefore, the present invention is made to solve the problems of the prior art as described above, the object of the present invention is
Figure 112006061198274-pat00004
Multiply two n-bit inputs A and B when using the bit final adder
Figure 112006061198274-pat00005
We propose a modular multiplication method that handles only clock cycles, and a multiplying device that can selectively process one n-bit modular multiplication operation and two n / 2-bit modular multiplication operations. The aim is to provide a modular multiplication apparatus and method based on the remainder of theorem (CRT) and carry storage addition, which has a small area (gate count) and low power consumption while realizing the implementation.

상기와 같은 목적을 달성하기 위한 본 발명의 중국인 나머지 정리(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
비트 가산기를 포함하여 이루어지는 것을 특징으로 한다.In order to achieve the above object, the Chinese residual theorem (CRT) and carry storage addition-based modular multiplication apparatus of the present invention includes: a multiplier storage register for storing a multiplier and right shifting according to radix, and information input from the multiplier storage register. And a booth recording (BR) unit for outputting a multiplier determined according to the condition of sel_crt using the multiplicand information, and performing an operation of adding a multiplier output by the booth recording (BR) unit to SUM and CARRY of a previous round. Modulus partial sum by reduction table (RT) part which adds to SUM and CARRY which are the calculation result value of 1 carry storage adder and said 1st carry storage adder (
Figure 112006061198274-pat00006
A carry storage adder configured to include a second carry storage adder for performing an operation of adding a) and a CARRY output from the second carry storage adder.
Figure 112006061198274-pat00007
Save the C register (C_reg), SUM that can be shifted right by bit
Figure 112006061198274-pat00008
S register (S_reg), which can shift right by bit, receives a 2-bit adder and modulus input (Q, P) that calculates whether or not a carry is generated and reflects it in the next operation round.
Figure 112006061198274-pat00009
And 1-bit value according to the condition of sel_crt
Figure 112006061198274-pat00010
And a reduction table (RT) unit for outputting n + 6 bit values (Q, P), a plurality of multiplexers for controlling a 1-bit input value according to the input signal sel_crt, and a final result value from an intermediate result value of the carry storage adder unit. Are used to calculate
Figure 112006061198274-pat00011
And a bit adder.

이때, 승수 저장 레지스터는 n+1비트 승수 입력을 저장하고 2비트씩 우측 쉬프트할 수 있는 것을 특징으로 하고, 특히, 승수 저장 레지스터는 n+4비트 승수 입력을 저장하고 sel_crt신호의 조건에 따라 n+4비트 또는 n/2+2비트 단위로 2비트씩 우측 쉬프트하고 3비트 정보

Figure 112008002564155-pat00189
Figure 112008002564155-pat00190
를 출력하는 것을 특징으로 한다.In this case, the multiplier storage register may store n + 1 bit multiplier input and may shift right by 2 bits. In particular, the multiplier storage register stores n + 4 bit multiplier input and n according to the condition of the sel_crt signal. 3-bit information, shifted right by 2 bits in units of +4 or n / 2 + 2 bits
Figure 112008002564155-pat00189
Wow
Figure 112008002564155-pat00190
It characterized in that the output.

또한, 부스 레코딩(BR)부는 피승수 정보

Figure 112008002564155-pat00014
를 입력받아 상기 승수 저장 레지스터로부터 입력된 3비트 정보
Figure 112008002564155-pat00191
,
Figure 112008002564155-pat00192
과 sel_crt의 조건에 따라 1비트 값
Figure 112008002564155-pat00016
와 n+4비트 값
Figure 112008002564155-pat00017
를 출력하는 것을 특징으로 하고, 특히, 부스 레코딩(BR)부는 입력 신호 sel_crt가 0일때는
Figure 112008002564155-pat00018
를 하나의 n+2비트 피승수로 취급하여
Figure 112008002564155-pat00193
의 조건에 따라
Figure 112008002564155-pat00020
와 피승수의 배수값을
Figure 112008002564155-pat00021
로 출력하고 sel_crt이 1일 때는
Figure 112008002564155-pat00022
을 두 개의 n/2+1비트 피승수 B', B로 각각 취급하여
Figure 112008002564155-pat00194
Figure 112008002564155-pat00195
의 조건에 따라
Figure 112008002564155-pat00025
의 각 배수값을
Figure 112008002564155-pat00026
로 출력하는 것을 특징으로 한다.In addition, the booth recording (BR) unit is multiplier information
Figure 112008002564155-pat00014
3-bit information received from the multiplier storage register
Figure 112008002564155-pat00191
,
Figure 112008002564155-pat00192
And 1-bit value according to the condition of sel_crt
Figure 112008002564155-pat00016
And n + 4 bit values
Figure 112008002564155-pat00017
In particular, when the input signal sel_crt is 0, the booth recording part BR is 0.
Figure 112008002564155-pat00018
Is treated as a single n + 2 bit multiply
Figure 112008002564155-pat00193
Under the terms of
Figure 112008002564155-pat00020
And the multiple of the multiplicand
Figure 112008002564155-pat00021
When sel_crt is 1
Figure 112008002564155-pat00022
Are treated as two n / 2 + 1 bit multipliers B 'and B, respectively.
Figure 112008002564155-pat00194
Wow
Figure 112008002564155-pat00195
Under the terms of
Figure 112008002564155-pat00025
Each multiple of
Figure 112008002564155-pat00026
It characterized in that the output to.

또한, 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비트 가산기를 포함하여 이루어지는 것을 특징으로 한다.Further, the 2-bit adder 1 is the least significant 2 bits of the lower n / 2 + 3 bits S of the intermediate result value SUM of the carry storage addition according to claim 4.
Figure 112006061198274-pat00027
, And by doing addition on the carry input
Figure 112006061198274-pat00028
2-bit adder that computes the upper n / 2 + 3 bits of the SUM
Figure 112006061198274-pat00029
Least significant 2 bits of
Figure 112006061198274-pat00030
, And by doing addition on the carry input
Figure 112006061198274-pat00031
It characterized in that it comprises a 2-bit adder for calculating the.

또한, 리덕션 테이블(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
로 출력하는 것을 특징으로 한다.In addition, when the input signal sel_crt is 0, the reduction table RT treats (Q, P) as one n-bit modulus N.
Figure 112006061198274-pat00032
According to the least significant bit condition of and N
Figure 112006061198274-pat00033
And multiples of N
Figure 112006061198274-pat00034
When sel_crt is 1, (Q, P) is treated as two n / 2-bit modulus Q and P respectively.
Figure 112006061198274-pat00035
And according to each least significant bit condition of Q and P
Figure 112006061198274-pat00036
And each multiple of Q and P
Figure 112006061198274-pat00037
It characterized in that the output to.

또한, 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
비트씩 우측 쉬프트할 수 있는 것을 특징으로 한다. In addition, the C register C_reg is in n + 4 bit units or n / 2 + 2 bit units depending on the condition of the sel_crt signal.
Figure 112006061198274-pat00038
The bit can be shifted right by bit, and the S register (S_reg) is in n + 4 bit units or n / 2 + 2 bit units depending on the condition of the sel_crt signal.
Figure 112006061198274-pat00039
It is characterized by the ability to shift right by bit.

한편, 본 발명의 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법은, n+1비트 입력 A,B와 n비트 모듈러스 N에 대해

Figure 112006061198274-pat00040
(여기서
Figure 112006061198274-pat00041
)의 몽고메리 곱셈 연산에 있어서,On the other hand, the modular multiplication method based on the Chinese residual theorem (CRT) and carry storage addition of the present invention, for n + 1-bit input A, B and n-bit modulus N
Figure 112006061198274-pat00040
(here
Figure 112006061198274-pat00041
In Montgomery multiplication

승수 A의 하위 3비트

Figure 112008002564155-pat00042
와 피승수 B를 이용하여 부스 레코딩한 결과로 부호 정보인
Figure 112008002564155-pat00043
와 B의 배수값인
Figure 112008002564155-pat00044
를 출력하는 1 단계, 상기 출력된
Figure 112008002564155-pat00045
를 중간 결과값 CARRY와 SUM에 캐리 저장 가산을 취하는 2 단계, 상기 1단계와 2 단계에 의해 출력된 SUM의 최하위 2비트
Figure 112008002564155-pat00046
, 그리고 이전 반복 연산의 결과로 저장된 캐리 입력값인
Figure 112008002564155-pat00047
에 대해 2비트 덧셈을 수행하여 2비트 정보
Figure 112008002564155-pat00048
를 계산하는 3 단계, 상기 계산된 2비트 정보
Figure 112008002564155-pat00049
와 모듈러스 N을 이용하여 부호 정보인
Figure 112008002564155-pat00050
과 N의 배수값인
Figure 112008002564155-pat00051
를 결정하는 4 단계, 상기 결정된
Figure 112008002564155-pat00052
를 중간 결과값 CARRY와 SUM에 캐리 저장 가산을 취하는 5 단계, 다음 반복 연산을 위해 SUM의 최하위 2비트
Figure 112008002564155-pat00053
, 그리고 이전 반복 연산의 결과로 저장된 캐리 입력값인
Figure 112008002564155-pat00054
에 대해 2비트 덧셈을 수행하여 캐리 출력값으로
Figure 112008002564155-pat00055
을 갱신하는 6 단계, 상기 캐리 저장 가산에 의한 CARRY와 SUM을 각각 2비트씩 우측 쉬프트시키는 7 단계, 상기 일련의 과정을
Figure 112008002564155-pat00056
번 반복한 다음 CARRY와 SUM을 더해서 최종 결과값을 출력하는 8 단계를 포함하여 이루어지는 것을 특징으로 한다.
본 명세서에서 사용되고 있는 기호들은 아래와 같이 정의된다.
- A : 승수 정보, 입력신호 sel_crt가 '0'인 경우, 승수 정보 레지스터(A_reg)에 n+2 비트 정보로 저장되고, 반면 sel_crt가 '1'인 경우는 A_reg의 하위 n/2+1 비트 위치에 저장됨
- A' : 승수 정보, 입력신호 sel_crt가 '1'인 경우에 승수 정보 레지스터(A_reg)의 상위 n/2+1 비트에 저장되는 정보
- B : 피승수 정보, 입력신호 sel_crt가 '0'인 경우 피승수 정보 레지스터(B_reg)에 n+2 비트 정보로 저장되고, 반면 sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1 비트 위치에 저장됨
- B' : 피승수 정보 레지스터(B_reg)의 상위 n/2+1 비트에 저장되는 정보
-
Figure 112008002564155-pat00196
: sel_crt가 '0'인 경우는 A_reg의 n+2비트 정보를, sel_crt가 '1'인 경우는 A_reg의 하위 n/2+1 비트 정보를 i번째 부스 레코딩에 사용하는 3비트 입력
-
Figure 112008002564155-pat00197
: sel_crt가 '1'인 경우에 A_reg의 상위 n/2+1 비트 정보(A')를 i번째 부스 레코딩에 사용하는 3비트 입력
-
Figure 112008002564155-pat00198
: 입력신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 크기 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
-
Figure 112008002564155-pat00199
: 입력신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
-
Figure 112008002564155-pat00200
: 입력 신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 부호 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
-
Figure 112008002564155-pat00201
: 입력 신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
- S : 캐리저장 가산의 결과 합. 입력신호 sel_crt가 '0'인 경우 S_reg에 n+4 비트 정보로 저장, 반면 sel_crt가 '1'인 경우는 S_reg의 하위 n/2+2 비트 위치에 저장됨
- S' : 캐리저장 가산의 결과 합. sel_crt가 '1'인 경우는 S_reg의 상위 n/2+2 비트 위치에 저장
- C : 캐리저장 가산의 결과 합. 입력신호 sel_crt가 '0'인 경우 C_reg에 n+4 비트 정보로 저장, 반면 sel_crt가 '1'인 경우는 C_reg의 하위 n/2+2 비트 위치에 저장됨
- C' : 캐리저장 가산의 결과 합. sel_crt가 '1'인 경우는 C_reg의 상위 n/2+2 비트 위치에 저장
-
Figure 112008002564155-pat00202
: 캐리저장 결과 합(S)의 i번째 비트.
Figure 112008002564155-pat00203
는 S의 최하위 비트,
Figure 112008002564155-pat00204
는 S의 하위 1번째 비트
-
Figure 112008002564155-pat00205
: 캐리저장 결과 합(S')의 i번째 비트.
Figure 112008002564155-pat00206
는 S'의 최하위 비트,
Figure 112008002564155-pat00207
는 S'의 하위 1번째 비트
-
Figure 112008002564155-pat00208
: 캐리저장 결과 합(C)의 i번째 비트.
Figure 112008002564155-pat00209
는 C의 최하위 비트,
Figure 112008002564155-pat00210
는 C의 하위 1번째 비트
-
Figure 112008002564155-pat00211
: 캐리저장 결과 합(C')의 i번째 비트.
Figure 112008002564155-pat00212
는 C'의 최하위 비트,
Figure 112008002564155-pat00213
는 C'의 하위 1번째 비트
-
Figure 112008002564155-pat00214
: 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00215
Figure 112008002564155-pat00216
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00217
는 최하위 비트,
Figure 112008002564155-pat00218
는 하위 1번째 비트
-
Figure 112008002564155-pat00219
: sel_crt가 '1'인 경우, 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00220
Figure 112008002564155-pat00221
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00222
는 최하위 비트,
Figure 112008002564155-pat00223
는 하위 1번째 비트Lower 3 bits of multiplier A
Figure 112008002564155-pat00042
And booth recording using multiplicand B
Figure 112008002564155-pat00043
Is a multiple of and B
Figure 112008002564155-pat00044
Step
1 to output, the output
Figure 112008002564155-pat00045
(2) taking the carry storage addition to the intermediate result values CARRY and SUM, the least significant 2 bits of the SUM output by steps 1 and 2
Figure 112008002564155-pat00046
, And the carry input stored as a result of the previous iteration
Figure 112008002564155-pat00047
2-bit information by performing 2-bit addition to
Figure 112008002564155-pat00048
3 steps of calculating the information, the calculated 2-bit information
Figure 112008002564155-pat00049
Using modulus N and modulus N
Figure 112008002564155-pat00050
Is a multiple of and N
Figure 112008002564155-pat00051
4 steps to determine, determined
Figure 112008002564155-pat00052
Step 5 to carry the carry storage addition to the intermediate result CARRY and SUM, the least significant 2 bits of the SUM for the next iteration
Figure 112008002564155-pat00053
, And the carry input stored as a result of the previous iteration
Figure 112008002564155-pat00054
Performs a 2-bit addition to the carry output
Figure 112008002564155-pat00055
In step 6 of updating, 7 steps of right shifting each of the CARRY and SUM by the carry storage addition by 2 bits, the series of processes
Figure 112008002564155-pat00056
Repeating once and adding the CARRY and SUM characterized in that it comprises the eight steps to output the final result.
Symbols used in the present specification are defined as follows.
-A: multiplier information, if the input signal sel_crt is '0', it is stored as n + 2 bit information in the multiplier information register (A_reg), whereas, if sel_crt is '1', the lower n / 2 + 1 bit of A_reg Saved to location
A ': multiplier information, information stored in the upper n / 2 + 1 bits of the multiplier information register A_reg when the input signal sel_crt is'1'
-B: Multiplicand information, when the input signal sel_crt is '0', it is stored as n + 2 bit information in the multiplicand information register (B_reg), whereas when sel_crt is '1', the lower n / 2 + 1 bit position of B_reg Saved to
B ': Information stored in the upper n / 2 + 1 bits of the multiplicand information register (B_reg)
-
Figure 112008002564155-pat00196
: 3-bit input using n + 2 bit information of A_reg when sel_crt is '0' and low n / 2 + 1 bit information of A_reg when sel_crt is '1'
-
Figure 112008002564155-pat00197
: 3-bit input using upper n / 2 + 1 bit information (A ') of A_reg for i th booth recording when sel_crt is'1'
-
Figure 112008002564155-pat00198
: When the input signal sel_crt is '0', size information among booth recording results for the entire information of B_reg. If sel_crt is '1', size information among booth recording results for lower n / 2 + 1 bit information of B_reg
-
Figure 112008002564155-pat00199
: If input signal sel_crt is '1', size information among booth recording results for upper n / 2 + 1 bit information of B_reg
-
Figure 112008002564155-pat00200
: When the input signal sel_crt is '0', sign information among booth recording results for all information of B_reg. If sel_crt is '1', sign information among booth recording results for lower n / 2 + 1 bit information of B_reg
-
Figure 112008002564155-pat00201
: If the input signal sel_crt is '1', sign information among booth recording results of upper n / 2 + 1 bit information of B_reg
-S: Sum of result of carry storage addition. If the input signal sel_crt is '0', it is stored as n + 4 bit information in S_reg, whereas if sel_crt is '1', it is stored in the lower n / 2 + 2 bit position of S_reg.
-S ': Sum of the result of the carry storage addition. If sel_crt is '1', it is stored in the upper n / 2 + 2 bit position of S_reg.
-C: Sum of result of carry storage addition. When the input signal sel_crt is '0', it is stored as n + 4 bit information in C_reg, whereas when sel_crt is '1', it is stored in the lower n / 2 + 2 bit position of C_reg.
-C ': Sum of the result of the carry storage addition. If sel_crt is '1', it is stored in the upper n / 2 + 2 bit positions of C_reg.
-
Figure 112008002564155-pat00202
: I-th bit of the carry result sum (S).
Figure 112008002564155-pat00203
Is the least significant bit of S,
Figure 112008002564155-pat00204
Is the lower 1st bit of S
-
Figure 112008002564155-pat00205
: I th bit of the carry result sum (S ').
Figure 112008002564155-pat00206
Is the least significant bit of S ',
Figure 112008002564155-pat00207
Lower 1st bit of S '
-
Figure 112008002564155-pat00208
: I th bit of the carry result sum (C).
Figure 112008002564155-pat00209
Is the least significant bit of C,
Figure 112008002564155-pat00210
Is the lower 1st bit of C
-
Figure 112008002564155-pat00211
: I th bit of the carry result sum (C ').
Figure 112008002564155-pat00212
Is the least significant bit of C ',
Figure 112008002564155-pat00213
Is the lower 1st bit of C '
-
Figure 112008002564155-pat00214
: Carry storage intermediate results S, C and
Figure 112008002564155-pat00215
And
Figure 112008002564155-pat00216
The lower two bits of the result of the addition.
Figure 112008002564155-pat00217
Is the least significant bit,
Figure 112008002564155-pat00218
Is the lower 1st bit
-
Figure 112008002564155-pat00219
: If sel_crt is '1', carry save intermediate result S, C and
Figure 112008002564155-pat00220
And
Figure 112008002564155-pat00221
The lower two bits of the result of the addition.
Figure 112008002564155-pat00222
Is the least significant bit,
Figure 112008002564155-pat00223
Is the lower 1st bit

이하, 본 발명의 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치 및 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

상기에서 기술한 알고리즘 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 몽고메리 모듈러 곱셈 알고리즘은 다음과 같은 방법으로 동작한다.The radix-2 multiplication method, such as Algorithm 1 described above, is very efficient when implemented using CSA. Because least significant bit of CSA output CARRY
Figure 112006061198274-pat00057
Is always 0, so the mod 2 operation is the least significant bit of the CSA output SUM.
Figure 112006061198274-pat00058
This is because the division 2 operation can be easily implemented by shifting SUM and CARRY 1 bit to the right. However, in the case of radix-4 multiplication, it is difficult to handle mod 4 or division 4 operations before adding SUM and CARRY directly. Therefore, the present invention proposes a radix-4 Montgomery modular multiplication method using a method of adding the least two bits of SUM and CARRY using a 2-bit adder. The proposed radix-4 Montgomery modular multiplication algorithm for two n + 1 bit inputs A, B and n bit modulus N works in the following way.

Figure 112006061198274-pat00059
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에서 수행된다. Where (C, S) = CSA (X, Y, Z) represents the carry storage addition for the three inputs X, Y, and Z. Unlike the conventional carry propagation adder, the carry storage adder does not have a separate carry input. Therefore, it is not simple to perform arithmetic on two's complement of input B or N using carry storage adder. Therefore, Booth Recording (BR) in Algorithm 2 is a block in charge of booth encoding, which is processed as shown in Table 1. In other words, if you output a positive multiple of B
Figure 112006061198274-pat00060
Is 0,
Figure 112006061198274-pat00061
Has a value of B or 2B, and for negative multiples
Figure 112006061198274-pat00062
Is 1,
Figure 112006061198274-pat00063
Becomes B or 2B bitwise inverse -B or -2B. In step 5, 2-bit addition is performed on two 2-bit and 1-bit carry inputs.
Figure 112006061198274-pat00064
Least significant bit of and N
Figure 112006061198274-pat00065
Required for the operation of
Figure 112006061198274-pat00066
and
Figure 112006061198274-pat00067
Will be determined. first
Figure 112006061198274-pat00068
Is determined as in process 6
Figure 112006061198274-pat00069
Is determined by the rules shown in Table 2. Also in course 6
Figure 112006061198274-pat00070
The least significant bit of C
Figure 112006061198274-pat00071
It is easily handled by replacing it with. In step 16, another two-bit addition is performed, where division 4 is simply handled by storing only the output carry of the two-bit addition for the next iteration and discarding the remaining two-bit result. In step 17, division 4 is performed by right shifting by 2 bits for C and S. This series of processes
Figure 112006061198274-pat00072
By doing this, the result of the carry stored modular multiplication is stored in C and S, and the operation of adding the two values to obtain the final result is performed in step 19.

표 1 알고리즘 2의 radix-4 부스 레코딩 규칙 Table 1 Radix-4 Booth Recording Rules for Algorithm 2

Figure 112006061198274-pat00073
Figure 112006061198274-pat00073

표 2 알고리즘2의 리덕션 테이블(Reduction Table, RT)Table 2 Reduction Table of Algorithm 2 (RT)

Figure 112006061198274-pat00074
Figure 112006061198274-pat00074

RSA 복호화나 서명 연산은 중국인 나머지 정리(Chinese Remainder Theorem, 이하 CRT)을 이용하여 고속으로 구현될 수 있다. n비트 모듈러스 N은 두 개의 n/2비트 소수 P와 Q의 곱, 즉 N= P x Q이므로 n비트 모듈러 지수승

Figure 112006061198274-pat00075
은 CRT를 이용하여 다음과 같이 두 부분으로 분리되어서 계산이 가능하다.RSA decryption or signature operations can be implemented at high speed using the Chinese Remainder Theorem (CRT). n-bit modulus N is the product of two n / 2-bit primes P and Q, that is, N = P x Q, so n-bit modular exponential power
Figure 112006061198274-pat00075
Can be calculated by dividing into two parts using CRT as follows.

알고리즘 3. CRT를 이용한 RSA 복호화 방법Algorithm 3. RSA Decoding Using CRT

Figure 112006061198274-pat00076
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 적용이 가능한 모듈러 곱셈 장치를 제안한다. In steps 1 and 2, n-bit ciphertext C is reduced to produce two n / 2-bit ciphertexts.
Figure 112006061198274-pat00077
Wow
Figure 112006061198274-pat00078
In Steps 3 to 4, the reduced ciphertext
Figure 112006061198274-pat00079
Wow
Figure 112006061198274-pat00080
, The modular exponent for each, and in steps 5-6, the message generated in the previous step,
Figure 112006061198274-pat00081
Wow
Figure 112006061198274-pat00082
To recombine the final message M. It is easy to see that the most demanding part of the sequence is the n / 2-bit modular exponential operation of steps 3-4. Therefore, in order to speed up the RSA operation using the CRT, a function of operating an n-bit modular multiplier independently in two n / 2 units is required. In the case of using the carry storage addition as in Algorithm 2, the carry propagation between adjacent bits does not occur, which is very advantageous to independently control in units of n / 2 bits. Accordingly, the present invention proposes a modular multiplication apparatus based on Algorithm 2 and applicable to CRT.

도 1은 본 발명에 의한 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치의 구성을 나타내는 도면이다. 1 is a view showing the configuration of the Chinese multiplication theorem (CRT) and carry storage addition based modular multiplication apparatus according to the present invention.

본 발명에 의한 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치는, 승수(A)를 저장하고 radix에 따라 우측 쉬프트 하는 승수 저장 레지스터(130), 승수의 하위 일정 비트를 참고하여 더해질 적절한 피승수(B) 값을 출력하는 부스 레코딩(Booth Recoding:BR)부(140), 연산 중간값들의 덧셈을 수행하는 캐리 저장 가산기(110,120), 연산 중간값의 하위비트 및 모듈러스 수에 따라 더해질 적절한 모듈러스 값을 출력하는 리덕션 테이블(Reduction Table:RT)부, 캐리의 발생 여부를 계산하여 다음 연산 라운드에 반영해주는 2비트 가산기(150,170), 캐리 저장 형태의 연산 중간값을 최종 데이터 출력전에 합산하는데 사용되는 w 비트 크기의 가산기(180)를 포함하여 구성된다. Modular multiplication apparatus based on the Chinese residual theorem (CRT) and carry storage addition according to the present invention, the multiplier storage register 130, which stores the multiplier (A) and shifts right according to the radix, to be added with reference to the lower constant bit of the multiplier Booth recording (BR) section 140 for outputting an appropriate multiplicand (B) value, a carry storage adder (110, 120) for performing addition of intermediate values, appropriate bits to be added according to the low order bits and modulus of the intermediate values Reduction Table (RT) part that outputs modulus value, 2-bit adder (150, 170) that calculates whether Carry is generated and reflects it in the next round of operation, and is used to add the intermediate value of carry storage type before the final data output. And an adder 180 of size w bits.

제 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
개의 연산기가 사용된다. The first carry storage adder 110 subsumes the multiplier determined by the booth recording (BR) unit according to the multiplier bit in the SUM and CARRY of the previous round.
Figure 112006061198274-pat00083
Perform the operation of adding. FIG. 2 is a detailed view showing data input / output of the first carry storage adder, and is composed of (n + 4) parallel adders. The first input and the second input of each individual adder are the SUM and CARRY part of the previous round operation result value, and are configured such that Montgomery reduction is performed, that is, SUM and CARRY shifted left by 2 bits, respectively. In case of n-bit operation mode, not CRT operation,
Figure 112006061198274-pat00084
end
Figure 112006061198274-pat00085
Is a value of n + 2 bits, and n + 2 of the total n + 4 adders are used for the calculation. In CRT mode, two (n / 2 + 2) bits are input, respectively
Figure 112006061198274-pat00086
Operators are used.

제 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개의 연산기가 절반씩 사용되게 된다.The second carry storage adder 120 is a sum of modulus generated in the reduction table unit 160 in SUM and CARRY, which are the result of the calculation of the first carry storage adder 110.
Figure 112006061198274-pat00087
Perform the operation of adding. 3 is a detailed diagram illustrating data input and output of the second carry storage adder 120. The SUM and CARRY calculated by the first carry storage adder 110 have sizes of n + 2 and n + 3 bits, respectively. Is another n + 2 bit input
Figure 112006061198274-pat00088
Will be added together. Therefore, n + 3 operators are used in the non-CRT operation mode, and n + 6 operators in half are used in the CRT mode.

승수 저장 레지스터(130)는 곱셈기 입력

Figure 112006061198274-pat00089
의 저장공간으로 사용된다. 승수 저장 레지스터(130)는 도 1에서 보여지는 바와 같이 CRT모드에 따라 n+1비트의 승수를 저장하거나 혹은 두 개의 (n/2+1)비트 승수를 저장하며 한 클록 주기동안 2비트 우측 쉬프트하며, 각 하위 3개 비트 출력은 부스 레코딩(BR)부(140)의 입력으로 인가된다. Multiplier storage register 130 is a multiplier input
Figure 112006061198274-pat00089
Used as a storage space for. The multiplier storage register 130 stores n + 1 bit multipliers or two (n / 2 + 1) bit multipliers according to the CRT mode as shown in FIG. Each lower 3 bit output is applied to the input of the booth recording (BR) unit 140.

부스 레코딩(BR)부(140)는 승수 레지스터(130)로부터 인가된 두 개의 3비트 입력에 따라 결정된 피승수를 출력하는 회로이다. 도 4는 부스 레코딩(Booth Recording:BR)부의 구성을 나타내는 도면으로 CRT모드 선택을 위한 다중화기(141)는 sel_crt 비트에 따라서

Figure 112008002564155-pat00224
혹은
Figure 112008002564155-pat00225
을 위쪽 비트 영역의 부스 레코더로 입력한다. 부스 레코딩(BR)부(140)는 입력되는 3비트에 따라 각 다중화기(142,143)의 제어신호를 발생한다. 상단부의 다중화기(142)는 피승수를 입력으로 받아 B와 2B중에 적절한 값을 출력하며, 비트별 역원기(bit-wise inverter) 회로(145)에서는 2의 보수 음수출력을 위한 예비 연산을 수행한다. 하단부의 다중화기(143)은 비트별 반전된 값과 반전되지 않은 값들 중에 적절한 값을 부스 레코딩된 결과값에 따라 선택하여 출력한다.The booth recording (BR) unit 140 is a circuit for outputting a multiplicand determined according to two 3-bit inputs applied from the multiplier register 130. 4 is a diagram illustrating a configuration of a booth recording (BR) unit. The multiplexer 141 for selecting a CRT mode is based on the sel_crt bit.
Figure 112008002564155-pat00224
or
Figure 112008002564155-pat00225
Enter into the booth recorder in the upper beat area. The booth recording (BR) unit 140 generates control signals of the multiplexers 142 and 143 according to the input 3 bits. The multiplexer 142 in the upper part receives a multiplicand as an input and outputs an appropriate value among B and 2B, and the bit-wise inverter circuit 145 performs a preliminary operation for a two's complement negative output. . The lower multiplexer 143 selects and outputs an appropriate value among the inverted and uninverted values for each bit according to the bus-recorded result.

제 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) 출력을 입력으로 받는다.Since the operation output value of the first carry storage adder 110 is expressed in the form of SUM and CARRY, according to the lower bit of the output value,
Figure 112006061198274-pat00092
To determine the value, SUM and CARRY of a certain lower bit must be added to calculate the actual operation result. In the case of the Radix-4 multiplier,
Figure 112006061198274-pat00093
Since the value is determined, the above-mentioned addition operation is performed through a 2-bit full adder. A detailed view of the 2-bit adder block 150 is shown in FIG. In the case of the CARRY output of the second carry storage adder 120 that is input to the adder, the first carry storage adder 110 is shifted by one bit to the left, and thus the least significant bit always has a value of zero. Therefore, the negative number in the booth recording (BR) unit 140
Figure 112006061198274-pat00094
When the booth recording (BR) unit generates only the inverted value of each bit, not the two's complement form,
Figure 112006061198274-pat00095
It is configured to generate and apply a signal to the least significant bit of the CARRY input of the 2-bit adder 120. In addition, as the first carry input of the least significant bit adder, the carry_reg 171 output of the 2-bit adder 170 located after the second carry storage adder 120 is received as an input.

리덕션 테이블(RT)부(160)는 몽고메리 리덕션을 적용하기 위해 적절한

Figure 112006061198274-pat00096
값을 선택한다. 도 6은 리덕션 테이블(Reduction Table:RT)부의 구성을 나타내는 도면으로 상기 기술한 2비트 가산기(150)의 결과값 2비트와 모듈러스 N을 입력으로 하며,
Figure 112006061198274-pat00097
값을 발생한다.
Figure 112006061198274-pat00098
값은 상기의 표 2와 같은 규칙에 따라 발생한다. The reduction table (RT) unit 160 is suitable for applying Montgomery reduction.
Figure 112006061198274-pat00096
Select a value. FIG. 6 is a diagram showing the configuration of a reduction table (RT) unit, and inputs two bits of the resultant value of the two-bit adder 150 and modulus N described above.
Figure 112006061198274-pat00097
Generates a value.
Figure 112006061198274-pat00098
Values are generated according to the rules shown in Table 2 above.

다중화기(161)은 모듈러스(N)값의 발생가능한 4가지 값중(0, +N, -N, 2N) 하나를 선택하는 기능을 수행한다. 또한 기 설명한 바와 같이 CRT모드를 지원하여, n/2비트 모드인 경우 n/2비트 모듈러스 수인 P와 Q가 각각 입력되며, n비트 모드인 경우 P, Q는 모듈러스 N의 상위 절반과 하위 절반으로 대응한다. 다중화기(162)는 CRT모드 여부에 따라 상위 비트열을 제어하는 다중화기(161)의 컨트롤 신호를 선택하는 역할을 수행한다.The multiplexer 161 selects one of four possible values of modulus (N) value (0, + N, -N, 2N). In addition, as described above, the CRT mode is supported, and in the case of n / 2-bit mode, P and Q, which are n / 2-bit modulus numbers, are respectively input, and in the case of n-bit mode, P and Q are the upper half and the lower half of modulus N. Corresponds. The multiplexer 162 selects a control signal of the multiplexer 161 that controls the upper bit string according to the CRT mode.

제 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비트 가산기로 구성되며 그 동작은 상기 기술한 바와 같다.After completing the second carry storage adder 120, the SUM and CARRY values are shifted left two bits to perform Montgomery reduction. According to Montgomery's rules of operation, the proper
Figure 112006061198274-pat00099
The lower 2 bits of the operation plus the value must be 0, but since this proposal uses a carry storage adder,
Figure 112006061198274-pat00100
As in the case of,, the actual operation result value is 0 in both bits, but it may occur in the carry storage format. Therefore, in this case, if two bits are left-shifted and input to the register, the lower two bits of information may be lost. To compensate for this, a 2-bit adder 170 is used. As shown in FIG. 7, the 2-bit adder includes the lower 2 bits of the output of the second carry storage adder 120.
Figure 112006061198274-pat00101
When the carry to the third bit position occurs by adding a signal, it is stored in a 1-bit register and reflected as a carry input of the 2-bit adder 150 in the next round iteration operation. The 2-bit adder 150 is also composed of two 2-bit adders to support the CRT mode, and the operation thereof is as described above.

모든 라운드 반복 수행을 마친 후, SUM과 CARRY형태인 캐리 저장형태로 분리되어 있는 결과값을 최종 결과값으로 변환하기 위해

Figure 112006061198274-pat00102
비트 크기의 가산기(180)가 사용된다. 본 가산기는 성능/면적의 조건에 따라 임의 비트 단위로 덧셈을 수행할 수 있다. 최하위 비트 위치의
Figure 112006061198274-pat00103
비트부터 덧셈 연산이 수행되며, 약
Figure 112006061198274-pat00104
싸이클 후에 n비트 CARRY와 SUM의 덧셈이 완료되면 최종 연산 결과값인
Figure 112006061198274-pat00105
(여기서
Figure 112006061198274-pat00106
)이 출력된다.After completing all round iterations, in order to convert the result value separated into a carry storage form of SUM and CARRY form into the final result value
Figure 112006061198274-pat00102
Bit size adder 180 is used. The adder can perform addition in arbitrary bit units according to the performance / area condition. Of least significant bit position
Figure 112006061198274-pat00103
Add operation is performed from bit, and
Figure 112006061198274-pat00104
After adding the n-bit CARRY and SUM after the cycle, the final operation result is
Figure 112006061198274-pat00105
(here
Figure 112006061198274-pat00106
) Is output.

이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.Although the present invention has been described in more detail with reference to some embodiments, the present invention is not necessarily limited to these embodiments, and various modifications can be made without departing from the spirit of the present invention.

상술한 바와 같이, 본 발명에 의한 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치 및 방법은 캐리 저장 가산을 기반으로 하는 radix-4 몽고메리 곱셈 방법과 이를 이용하여 CRT기법에 적용 가능한 모듈러 곱셈 장치를 제시하여 공개키 암호인 RSA 암호 시스템을 고속의 하드웨어로 구현할 수 있는 효과와 함께 적은 면적과 전력소모를 줄일 수 있는 효과가 있다. As described above, the present invention is based on the Chinese residual theorem (CRT) and carry storage addition based modular multiplication apparatus and method is a radix-4 Montgomery multiplication method based on the carry storage addition and modular applicable to the CRT technique using the same By presenting a multiplying device, it is possible to implement a public key cryptography RSA cryptosystem with high speed hardware and to reduce the area and power consumption.

Claims (14)

승수를 저장하고 radix에 따라 우측 쉬프트 하는 승수 저장 레지스터;A multiplier storage register for storing a multiplier and shifting right according to the radix; 상기 승수 저장 레지스터로부터 입력된 정보와 피승수 정보를 이용하여 sel_crt의 조건에 따라 결정된 피승수를 출력하는 부스 레코딩(BR)부;A booth recording unit for outputting a multiplier determined according to a condition of sel_crt by using the information input from the multiplier storage register and the multiplicand information; 이전 라운드의 SUM과 CARRY에 상기 부스 레코딩(BR)부에 의해 출력된 피승수를 더하는 연산을 수행하는 제 1 캐리 저장 가산기와 상기 제 1 캐리 저장 가산기의 연산 결과 값인 SUM과 CARRY에 하기하는 리덕션 테이블(RT)부에 의한 모듈러스 부분합(
Figure 112008002564155-pat00107
)을 더하는 연산을 수행하는 제 2 캐리 저장 가산기로 포함하여 구성되는 캐리 저장 가산부;
A reduction table to be added to SUM and CARRY which are the result of the calculation of the first carry storage adder and the first carry storage adder which perform an operation of adding the multiplicand outputted by the booth recording BR to the SUM and CARRY of the previous round ( Modulus subtotal by RT) part
Figure 112008002564155-pat00107
A carry storage adder configured to include a second carry storage adder for performing an operation of adding a);
상기 제 2 캐리 저장 가산기로부터 출력된 CARRY를 저장하고
Figure 112008002564155-pat00108
비트씩 우측 쉬프트할 수 있는 C 레지스터(C_reg), SUM을 저장하고
Figure 112008002564155-pat00109
비트씩 우측 쉬프트할 수 있는 S 레지스터(S_reg);
Store the CARRY output from the second carry storage adder
Figure 112008002564155-pat00108
Save the C register (C_reg), SUM that can be shifted right by bit
Figure 112008002564155-pat00109
An S register S_reg capable of right shifting bit by bit;
캐리의 발생 여부를 계산하여 다음 연산 라운드에 반영해주는 2비트 가산기;A 2-bit adder that calculates whether a carry occurs and reflects the next round of operation; 모듈러스 입력 (Q,P)를 입력받아, 상기 2비트 가산기에 의한
Figure 112008002564155-pat00110
와 sel_crt의 조건에 따라 1비트 값
Figure 112008002564155-pat00111
와 n+6비트 값 (Q, P)를 출력하는 리덕션 테이블(RT)부;
Modulus inputs (Q, P)
Figure 112008002564155-pat00110
And 1-bit value according to the condition of sel_crt
Figure 112008002564155-pat00111
And a reduction table (RT) unit for outputting n + 6 bit values (Q, P);
입력 신호 sel_crt에 따라 1비트 입력값을 제어하는 복수의 다중화기;A plurality of multiplexers for controlling a one-bit input value according to the input signal sel_crt; 상기 캐리 저장 가산부의 중간 결과값으로부터 최종 결과값을 계산하는데 사용되는 두 개의
Figure 112008002564155-pat00112
비트 가산기를 포함하여 이루어지는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
Two values are used to calculate the final result from the intermediate result of the carry storage adder.
Figure 112008002564155-pat00112
A modular multiplication apparatus based on Chinese residual theorem (CRT) and carry storage adder, comprising a bit adder.
여기서,
Figure 112008002564155-pat00226
: 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00227
Figure 112008002564155-pat00228
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00229
는 최하위 비트,
Figure 112008002564155-pat00230
는 하위 1번째 비트
here,
Figure 112008002564155-pat00226
: Carry storage intermediate results S, C and
Figure 112008002564155-pat00227
And
Figure 112008002564155-pat00228
The lower two bits of the result of the addition.
Figure 112008002564155-pat00229
Is the least significant bit,
Figure 112008002564155-pat00230
Is the lower 1st bit
Figure 112008002564155-pat00231
: sel_crt가 '1'인 경우, 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00232
Figure 112008002564155-pat00233
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00234
는 최하위 비트,
Figure 112008002564155-pat00235
는 하위 1번째 비트
Figure 112008002564155-pat00231
: If sel_crt is '1', carry save intermediate result S, C and
Figure 112008002564155-pat00232
And
Figure 112008002564155-pat00233
The lower two bits of the result of the addition.
Figure 112008002564155-pat00234
Is the least significant bit,
Figure 112008002564155-pat00235
Is the lower 1st bit
제 1항에 있어서, The method of claim 1, 상기 승수 저장 레지스터는 n+1비트 승수 입력을 저장하고 2비트씩 우측 쉬프트할 수 있는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.Wherein said multiplier storage register is capable of storing n + 1 bit multiplier inputs and right shifting by 2 bits. 제 2항에 있어서,The method of claim 2, 상기 승수 저장 레지스터는 n+4비트 승수 입력을 저장하고 sel_crt신호의 조건에 따라 n+4비트 또는 n/2+2비트 단위로 2비트씩 우측 쉬프트하고 3비트 정보
Figure 112008002564155-pat00236
Figure 112008002564155-pat00237
를 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
The multiplier storage register stores an n + 4 bit multiplier input, right shifts by 2 bits in units of n + 4 bits or n / 2 + 2 bits according to the condition of the sel_crt signal, and 3-bit information.
Figure 112008002564155-pat00236
Wow
Figure 112008002564155-pat00237
A modular multiplication device based on the Chinese residual theorem (CRT) and carry storage addition, characterized in that for outputting.
여기서,
Figure 112008002564155-pat00238
: sel_crt가 '0'인 경우는 A_reg의 n+2비트 정보를, sel_crt가 '1'인 경우는 A_reg의 하위 n/2+1 비트 정보를 i번째 부스 레코딩에 사용하는 3비트 입력
here,
Figure 112008002564155-pat00238
: 3-bit input using n + 2 bit information of A_reg when sel_crt is '0' and low n / 2 + 1 bit information of A_reg when sel_crt is '1'
Figure 112008002564155-pat00239
: sel_crt가 '1'인 경우에 A_reg의 상위 n/2+1 비트 정보(A')를 i번째 부스 레코딩에 사용하는 3비트 입력
Figure 112008002564155-pat00239
: 3-bit input using upper n / 2 + 1 bit information (A ') of A_reg for i th booth recording when sel_crt is'1'
--
제 1항 내지 제 3항 중 어느 하나의 항에 있어서,The method according to any one of claims 1 to 3, 상기 부스 레코딩(BR)부는 피승수 정보
Figure 112008002564155-pat00115
를 입력받아 상기 승수 저장 레지스터로부터 입력된 3비트 정보
Figure 112008002564155-pat00240
,
Figure 112008002564155-pat00241
과 sel_crt의 조건에 따라 1비트 값
Figure 112008002564155-pat00117
와 n+4비트 값
Figure 112008002564155-pat00118
를 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
The booth recording part BR multiplicative information
Figure 112008002564155-pat00115
3-bit information received from the multiplier storage register
Figure 112008002564155-pat00240
,
Figure 112008002564155-pat00241
And 1-bit value according to the condition of sel_crt
Figure 112008002564155-pat00117
And n + 4 bit values
Figure 112008002564155-pat00118
A modular multiplication device based on the Chinese residual theorem (CRT) and carry storage addition, characterized in that for outputting.
여기서, B : 피승수 정보, 입력신호 sel_crt가 '0'인 경우 피승수 정보 레지스터(B_reg)에 n+2 비트 정보로 저장되고, 반면 sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1 비트 위치에 저장됨Here, B: multiplicand information, if the input signal sel_crt is '0' is stored as n + 2 bit information in the multiplicand information register (B_reg), whereas, if sel_crt is '1', the lower n / 2 + 1 bit of B_reg Saved to location B' : 피승수 정보 레지스터(B_reg)의 상위 n/2+1 비트에 저장되는 정보B ': Information stored in the upper n / 2 + 1 bits of the multiplicand information register (B_reg)
Figure 112008002564155-pat00242
: sel_crt가 '0'인 경우는 A_reg의 n+2비트 정보를, sel_crt가 '1'인 경우는 A_reg의 하위 n/2+1 비트 정보를 i번째 부스 레코딩에 사용하는 3비트 입력
Figure 112008002564155-pat00242
: 3-bit input using n + 2 bit information of A_reg when sel_crt is '0' and low n / 2 + 1 bit information of A_reg when sel_crt is '1'
Figure 112008002564155-pat00243
: sel_crt가 '1'인 경우에 A_reg의 상위 n/2+1 비트 정보(A')를 i번째 부스 레코딩에 사용하는 3비트 입력
Figure 112008002564155-pat00243
: 3-bit input using upper n / 2 + 1 bit information (A ') of A_reg for i th booth recording when sel_crt is'1'
Figure 112008002564155-pat00244
: 입력 신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 부호 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00244
: When the input signal sel_crt is '0', sign information among booth recording results for all information of B_reg. If sel_crt is '1', sign information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00245
: 입력 신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00245
: If the input signal sel_crt is '1', sign information among booth recording results of upper n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00246
: 입력신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 크기 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
Figure 112008002564155-pat00246
: When the input signal sel_crt is '0', size information among booth recording results for the entire information of B_reg. If sel_crt is '1', size information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00247
: 입력신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
Figure 112008002564155-pat00247
: If input signal sel_crt is '1', size information among booth recording results for upper n / 2 + 1 bit information of B_reg
제 4항에 있어서, The method of claim 4, wherein 상기 부스 레코딩(BR)부는 입력 신호 sel_crt가 0일때는
Figure 112008002564155-pat00119
를 하나의 n+2비트 피승수로 취급하여
Figure 112008002564155-pat00248
의 조건에 따라
Figure 112008002564155-pat00121
와 피승수의 배수값을
Figure 112008002564155-pat00122
로 출력하고 sel_crt이 1일 때는
Figure 112008002564155-pat00123
을 두 개의 n/2+1비트 피승수 B', B로 각각 취급하여
Figure 112008002564155-pat00249
Figure 112008002564155-pat00250
의 조건에 따라
Figure 112008002564155-pat00126
의 각 배수값을
Figure 112008002564155-pat00127
로 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
When the input signal sel_crt is 0, the booth recording BR
Figure 112008002564155-pat00119
Is treated as a single n + 2 bit multiply
Figure 112008002564155-pat00248
Under the terms of
Figure 112008002564155-pat00121
And the multiple of the multiplicand
Figure 112008002564155-pat00122
When sel_crt is 1
Figure 112008002564155-pat00123
Are treated as two n / 2 + 1 bit multipliers B 'and B, respectively.
Figure 112008002564155-pat00249
Wow
Figure 112008002564155-pat00250
Under the terms of
Figure 112008002564155-pat00126
Each multiple of
Figure 112008002564155-pat00127
Modular multiplier based on Chinese residual theorem (CRT) and carry storage addition, characterized in that the output to the output.
여기서, B : 피승수 정보, 입력신호 sel_crt가 '0'인 경우 피승수 정보 레지스터(B_reg)에 n+2 비트 정보로 저장되고, 반면 sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1 비트 위치에 저장됨Here, B: multiplicand information, if the input signal sel_crt is '0' is stored as n + 2 bit information in the multiplicand information register (B_reg), whereas, if sel_crt is '1', the lower n / 2 + 1 bit of B_reg Saved to location B' : 피승수 정보 레지스터(B_reg)의 상위 n/2+1 비트에 저장되는 정보B ': Information stored in the upper n / 2 + 1 bits of the multiplicand information register (B_reg)
Figure 112008002564155-pat00251
: sel_crt가 '0'인 경우는 A_reg의 n+2비트 정보를, sel_crt가 '1'인 경우는 A_reg의 하위 n/2+1 비트 정보를 i번째 부스 레코딩에 사용하는 3비트 입력
Figure 112008002564155-pat00251
: 3-bit input using n + 2 bit information of A_reg when sel_crt is '0' and low n / 2 + 1 bit information of A_reg when sel_crt is '1'
Figure 112008002564155-pat00252
: sel_crt가 '1'인 경우에 A_reg의 상위 n/2+1 비트 정보(A')를 i번째 부스 레코딩에 사용하는 3비트 입력
Figure 112008002564155-pat00252
: 3-bit input using upper n / 2 + 1 bit information (A ') of A_reg for i th booth recording when sel_crt is'1'
Figure 112008002564155-pat00253
: 입력 신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 부호 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00253
: When the input signal sel_crt is '0', sign information among booth recording results for all information of B_reg. If sel_crt is '1', sign information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00254
: 입력 신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00254
: If the input signal sel_crt is '1', sign information among booth recording results of upper n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00255
: 입력신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 크기 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
Figure 112008002564155-pat00255
: When the input signal sel_crt is '0', size information among booth recording results for the entire information of B_reg. If sel_crt is '1', size information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00256
: 입력신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
Figure 112008002564155-pat00256
: If input signal sel_crt is '1', size information among booth recording results for upper n / 2 + 1 bit information of B_reg
제 5항에 있어서, The method of claim 5, 상기 2비트 가산기(2-bit adder1)는 제 4항에 있어서 캐리 저장 가산의 중간 결과값SUM중 하위 n/2+3비트 S의 최하위 2비트
Figure 112008002564155-pat00128
, 그리고 캐리 입력에 대한 덧셈을 수행하여
Figure 112008002564155-pat00129
를 계산하는 2비트 가산기와 SUM의 상위 n/2+3비트 의 최하위 2비트
Figure 112008002564155-pat00131
, 그리고 캐리 입력에 대한 덧셈을 수행하여
Figure 112008002564155-pat00132
를 계산하는 2비트 가산기를 포함하여 이루어지는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
The 2-bit adder 1 is the least significant 2 bits of the lower n / 2 + 3 bits S of the intermediate result value SUM of the carry storage addition.
Figure 112008002564155-pat00128
, And by doing addition on the carry input
Figure 112008002564155-pat00129
2-bit adder that computes the upper n / 2 + 3 bits of the SUM Least significant 2 bits of
Figure 112008002564155-pat00131
, And by doing addition on the carry input
Figure 112008002564155-pat00132
Chinese multiplication theorem (CRT) and carry storage adder based modular multiplication device, characterized in that it comprises a 2-bit adder for calculating a.
여기서,
Figure 112008002564155-pat00257
: 입력 신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 부호 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
here,
Figure 112008002564155-pat00257
: When the input signal sel_crt is '0', sign information among booth recording results for all information of B_reg. If sel_crt is '1', sign information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00258
: 입력 신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00258
: If the input signal sel_crt is '1', sign information among booth recording results of upper n / 2 + 1 bit information of B_reg
S : 캐리저장 가산의 결과 합. 입력신호 sel_crt가 '0'인 경우 S_reg에 n+4 비트 정보로 저장, 반면 sel_crt가 '1'인 경우는 S_reg의 하위 n/2+2 비트 위치에 저장됨S: Sum of the result of the carry storage addition. If the input signal sel_crt is '0', it is stored as n + 4 bit information in S_reg, whereas if sel_crt is '1', it is stored in the lower n / 2 + 2 bit position of S_reg. S' : 캐리저장 가산의 결과 합. sel_crt가 '1'인 경우는 S_reg의 상위 n/2+2 비트 위치에 저장S ': Sum of the result of the carry storage addition. If sel_crt is '1', it is stored in the upper n / 2 + 2 bit position of S_reg. C : 캐리저장 가산의 결과 합. 입력신호 sel_crt가 '0'인 경우 C_reg에 n+4 비트 정보로 저장, 반면 sel_crt가 '1'인 경우는 C_reg의 하위 n/2+2 비트 위치에 저장됨C: Sum of the result of the carry storage addition. When the input signal sel_crt is '0', it is stored as n + 4 bit information in C_reg, whereas when sel_crt is '1', it is stored in the lower n / 2 + 2 bit position of C_reg. C' : 캐리저장 가산의 결과 합. sel_crt가 '1'인 경우는 C_reg의 상위 n/2+2 비트 위치에 저장C ': Sum of the result of the carry storage addition. If sel_crt is '1', it is stored in the upper n / 2 + 2 bit positions of C_reg.
Figure 112008002564155-pat00259
: 캐리저장 결과 합(S)의 i번째 비트.
Figure 112008002564155-pat00260
는 S의 최하위 비트,
Figure 112008002564155-pat00261
는 S의 하위 1번째 비트
Figure 112008002564155-pat00259
: I-th bit of the carry result sum (S).
Figure 112008002564155-pat00260
Is the least significant bit of S,
Figure 112008002564155-pat00261
Is the lower 1st bit of S
Figure 112008002564155-pat00262
: 캐리저장 결과 합(S')의 i번째 비트.
Figure 112008002564155-pat00263
는 S'의 최하위 비트,
Figure 112008002564155-pat00264
는 S'의 하위 1번째 비트
Figure 112008002564155-pat00262
: I th bit of the carry result sum (S ').
Figure 112008002564155-pat00263
Is the least significant bit of S ',
Figure 112008002564155-pat00264
Lower 1st bit of S '
Figure 112008002564155-pat00265
: 캐리저장 결과 합(C)의 i번째 비트.
Figure 112008002564155-pat00266
는 C의 최하위 비트,
Figure 112008002564155-pat00267
는 C의 하위 1번째 비트
Figure 112008002564155-pat00265
: I th bit of the carry result sum (C).
Figure 112008002564155-pat00266
Is the least significant bit of C,
Figure 112008002564155-pat00267
Is the lower 1st bit of C
Figure 112008002564155-pat00268
: 캐리저장 결과 합(C')의 i번째 비트.
Figure 112008002564155-pat00269
는 C'의 최하위 비트,
Figure 112008002564155-pat00270
는 C'의 하위 1번째 비트
Figure 112008002564155-pat00268
: I th bit of the carry result sum (C ').
Figure 112008002564155-pat00269
Is the least significant bit of C ',
Figure 112008002564155-pat00270
Is the lower 1st bit of C '
Figure 112008002564155-pat00271
: 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00272
Figure 112008002564155-pat00273
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00274
는 최하위 비트,
Figure 112008002564155-pat00275
는 하위 1번째 비트
Figure 112008002564155-pat00271
: Carry storage intermediate results S, C and
Figure 112008002564155-pat00272
And
Figure 112008002564155-pat00273
The lower two bits of the result of the addition.
Figure 112008002564155-pat00274
Is the least significant bit,
Figure 112008002564155-pat00275
Is the lower 1st bit
Figure 112008002564155-pat00276
: sel_crt가 '1'인 경우, 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00277
Figure 112008002564155-pat00278
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00279
는 최하위 비트,
Figure 112008002564155-pat00280
는 하위 1번째 비트
Figure 112008002564155-pat00276
: If sel_crt is '1', carry save intermediate result S, C and
Figure 112008002564155-pat00277
And
Figure 112008002564155-pat00278
The lower two bits of the result of the addition.
Figure 112008002564155-pat00279
Is the least significant bit,
Figure 112008002564155-pat00280
Is the lower 1st bit
제 6항에 있어서,The method of claim 6, 상기 리덕션 테이블(RT)부는 입력 신호 sel_crt가 0일때는 (Q, P)를 하나의 n비트 모듈러스 N으로 취급하여
Figure 112008002564155-pat00133
와 N의 최하위 비트 조건에 따라
Figure 112008002564155-pat00134
과 N의 배수값을
Figure 112008002564155-pat00135
로 출력하고 sel_crt가 1일 때는 (Q, P)를 두 개의 n/2비트 모듈러스 Q와 P로 각각 취급하여
Figure 112008002564155-pat00136
와 Q와 P의 각 최하위 비트 조건에 따라
Figure 112008002564155-pat00137
와 Q, P의 각 배수값을
Figure 112008002564155-pat00138
로 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
When the input signal sel_crt is 0, the reduction table RT treats (Q, P) as one n-bit modulus N.
Figure 112008002564155-pat00133
According to the least significant bit condition of and N
Figure 112008002564155-pat00134
And multiples of N
Figure 112008002564155-pat00135
If sel_crt is 1, treat (Q, P) as two n / 2-bit modulus Q and P, respectively.
Figure 112008002564155-pat00136
And according to each least significant bit condition of Q and P
Figure 112008002564155-pat00137
And each multiple of Q and P
Figure 112008002564155-pat00138
Modular multiplier based on Chinese residual theorem (CRT) and carry storage addition, characterized in that the output to the output.
여기서,
Figure 112008002564155-pat00281
: 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00282
Figure 112008002564155-pat00283
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00284
는 최하위 비트,
Figure 112008002564155-pat00285
는 하위 1번째 비트
here,
Figure 112008002564155-pat00281
: Carry storage intermediate results S, C and
Figure 112008002564155-pat00282
And
Figure 112008002564155-pat00283
The lower two bits of the result of the addition.
Figure 112008002564155-pat00284
Is the least significant bit,
Figure 112008002564155-pat00285
Is the lower 1st bit
Figure 112008002564155-pat00286
: sel_crt가 '1'인 경우, 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00287
Figure 112008002564155-pat00288
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00289
는 최하위 비트,
Figure 112008002564155-pat00290
는 하위 1번째 비트
Figure 112008002564155-pat00286
: If sel_crt is '1', carry save intermediate result S, C and
Figure 112008002564155-pat00287
And
Figure 112008002564155-pat00288
The lower two bits of the result of the addition.
Figure 112008002564155-pat00289
Is the least significant bit,
Figure 112008002564155-pat00290
Is the lower 1st bit
제 1항에 있어서,The method of claim 1, 상기 C 레지스터(C_reg)는 sel_crt신호의 조건에 따라 n+4비트 단위 또는 n/2+2비트 단위로
Figure 112006061198274-pat00139
비트씩 우측 쉬프트할 수 있는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
The C register C_reg is in n + 4 bit units or n / 2 + 2 bit units depending on the condition of the sel_crt signal.
Figure 112006061198274-pat00139
A modular multiplication device based on Chinese residual theorem (CRT) and carry storage addition, which is capable of right shifting bit by bit.
제 1항에 있어서,The method of claim 1, 상기 S 레지스터(S_reg)는 sel_crt신호의 조건에 따라 n+4비트 단위 또는 n/2+2비트 단위로
Figure 112006061198274-pat00140
비트씩 우측 쉬프트할 수 있는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 장치.
The S register S_reg is in n + 4 bit units or n / 2 + 2 bit units depending on the condition of the sel_crt signal.
Figure 112006061198274-pat00140
A modular multiplication device based on Chinese residual theorem (CRT) and carry storage addition, which is capable of right shifting bit by bit.
n+1비트 입력 A,B와 n비트 모듈러스 N에 대해
Figure 112008002564155-pat00141
(여기서
Figure 112008002564155-pat00142
)의 몽고메리 곱셈 연산에 있어서,
for n + 1 bit input A, B and n bit modulus N
Figure 112008002564155-pat00141
(here
Figure 112008002564155-pat00142
In Montgomery multiplication
승수 A의 하위 3비트
Figure 112008002564155-pat00291
와 피승수 B를 이용하여 부스 레코딩한 결과로 부호 정보인
Figure 112008002564155-pat00144
와 B의 배수값인
Figure 112008002564155-pat00145
를 출력하는 1 단계;
Lower 3 bits of multiplier A
Figure 112008002564155-pat00291
And booth recording using multiplicand B
Figure 112008002564155-pat00144
Is a multiple of and B
Figure 112008002564155-pat00145
Outputting the first step;
상기 출력된
Figure 112008002564155-pat00146
를 중간 결과값 CARRY와 SUM에 캐리 저장 가산을 취하는 2 단계;
Above output
Figure 112008002564155-pat00146
Taking the carry storage addition to the intermediate result CARRY and SUM;
상기 1단계와 2 단계에 의해 출력된 SUM의 최하위 2비트
Figure 112008002564155-pat00147
, 그리고 이전 반복 연산의 결과로 저장된 캐리 입력값인
Figure 112008002564155-pat00148
에 대해 2비트 덧셈을 수행하여 2비트 정보
Figure 112008002564155-pat00149
를 계산하는 3 단계;
Least significant 2 bits of the SUM output by steps 1 and 2
Figure 112008002564155-pat00147
, And the carry input stored as a result of the previous iteration
Figure 112008002564155-pat00148
2-bit information by performing 2-bit addition to
Figure 112008002564155-pat00149
3 steps to calculate;
상기 계산된 2비트 정보
Figure 112008002564155-pat00150
와 모듈러스 N을 이용하여 부호 정보인
Figure 112008002564155-pat00151
과 N의 배수값인
Figure 112008002564155-pat00152
를 결정하는 4 단계;
The calculated 2-bit information
Figure 112008002564155-pat00150
Using modulus N and modulus N
Figure 112008002564155-pat00151
Is a multiple of and N
Figure 112008002564155-pat00152
4 steps to determine;
상기 결정된
Figure 112008002564155-pat00153
를 중간 결과값 CARRY와 SUM에 캐리 저장 가산을 취하는 5 단계;
Determined above
Figure 112008002564155-pat00153
Taking the carry storage addition to the intermediate result CARRY and SUM;
다음 반복 연산을 위해 SUM의 최하위 2비트
Figure 112008002564155-pat00154
, 그리고 이전 반복 연산의 결과로 저장된 캐리 입력값인
Figure 112008002564155-pat00155
에 대해 2비트 덧셈을 수행하여 캐리 출력값으로
Figure 112008002564155-pat00156
을 갱신하는 6 단계;
Least significant 2 bits of SUM for next iteration
Figure 112008002564155-pat00154
, And the carry input stored as a result of the previous iteration
Figure 112008002564155-pat00155
Performs a 2-bit addition to the carry output
Figure 112008002564155-pat00156
6 steps to update;
상기 캐리 저장 가산에 의한 CARRY와 SUM을 각각 2비트씩 우측 쉬프트시키는 7 단계;7 steps of right shifting each of CARRY and SUM by the carry storage addition by 2 bits; 상기 일련의 과정을
Figure 112008002564155-pat00157
번 반복한 다음 CARRY와 SUM을 더해서 최종 결과값을 출력하는 8 단계를 포함하여 이루어지는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법.
The above series of processes
Figure 112008002564155-pat00157
And repeating the number of times and adding the CARRY and SUM to output the final result value.
여기서, A : 승수 정보, 입력신호 sel_crt가 '0'인 경우, 승수 정보 레지스터(A_reg)에 n+2 비트 정보로 저장되고, 반면 sel_crt가 '1'인 경우는 A_reg의 하위 n/2+1 비트 위치에 저장됨Here, A: multiplier information, when the input signal sel_crt is '0', it is stored as n + 2 bit information in the multiplier information register (A_reg), whereas, if sel_crt is '1', the lower n / 2 + 1 of A_reg Stored in bit position A' : 승수 정보, 입력신호 sel_crt가 '1'인 경우에 승수 정보 레지스터(A_reg)의 상위 n/2+1 비트에 저장되는 정보A ': multiplier information, information stored in the upper n / 2 + 1 bits of the multiplier information register A_reg when the input signal sel_crt is' 1' B : 피승수 정보, 입력신호 sel_crt가 '0'인 경우 피승수 정보 레지스터(B_reg)에 n+2 비트 정보로 저장되고, 반면 sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1 비트 위치에 저장됨B: If the multiplicand information and the input signal sel_crt are '0', it is stored as n + 2 bit information in the multiplicand information register (B_reg), whereas if sel_crt is '1', it is located at the lower n / 2 + 1 bit position of B_reg. Saved B' : 피승수 정보 레지스터(B_reg)의 상위 n/2+1 비트에 저장되는 정보B ': Information stored in the upper n / 2 + 1 bits of the multiplicand information register (B_reg)
Figure 112008002564155-pat00292
: sel_crt가 '0'인 경우는 A_reg의 n+2비트 정보를, sel_crt가 '1'인 경우는 A_reg의 하위 n/2+1 비트 정보를 i번째 부스 레코딩에 사용하는 3비트 입력
Figure 112008002564155-pat00292
: 3-bit input using n + 2 bit information of A_reg when sel_crt is '0' and low n / 2 + 1 bit information of A_reg when sel_crt is '1'
Figure 112008002564155-pat00293
: sel_crt가 '1'인 경우에 A_reg의 상위 n/2+1 비트 정보(A')를 i번째 부스 레코딩에 사용하는 3비트 입력
Figure 112008002564155-pat00293
: 3-bit input using upper n / 2 + 1 bit information (A ') of A_reg for i th booth recording when sel_crt is'1'
Figure 112008002564155-pat00294
: 입력신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 크기 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
Figure 112008002564155-pat00294
: When the input signal sel_crt is '0', size information among booth recording results for the entire information of B_reg. If sel_crt is '1', size information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00295
: 입력신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
Figure 112008002564155-pat00295
: If input signal sel_crt is '1', size information among booth recording results for upper n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00296
: 입력 신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 부호 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00296
: When the input signal sel_crt is '0', sign information among booth recording results for all information of B_reg. If sel_crt is '1', sign information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00297
: 입력 신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00297
: If the input signal sel_crt is '1', sign information among booth recording results of upper n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00298
: 캐리저장 결과 합(S)의 i번째 비트.
Figure 112008002564155-pat00299
는 S의 최하위 비트,
Figure 112008002564155-pat00300
는 S의 하위 1번째 비트
Figure 112008002564155-pat00298
: I-th bit of the carry result sum (S).
Figure 112008002564155-pat00299
Is the least significant bit of S,
Figure 112008002564155-pat00300
Is the lower 1st bit of S
Figure 112008002564155-pat00301
: 캐리저장 결과 합(C)의 i번째 비트.
Figure 112008002564155-pat00302
는 C의 최하위 비트,
Figure 112008002564155-pat00303
는 C의 하위 1번째 비트
Figure 112008002564155-pat00301
: I th bit of the carry result sum (C).
Figure 112008002564155-pat00302
Is the least significant bit of C,
Figure 112008002564155-pat00303
Is the lower 1st bit of C
Figure 112008002564155-pat00304
: 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00305
Figure 112008002564155-pat00306
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00307
는 최하위 비트,
Figure 112008002564155-pat00308
는 하위 1번째 비트
Figure 112008002564155-pat00304
: Carry storage intermediate results S, C and
Figure 112008002564155-pat00305
And
Figure 112008002564155-pat00306
The lower two bits of the result of the addition.
Figure 112008002564155-pat00307
Is the least significant bit,
Figure 112008002564155-pat00308
Is the lower 1st bit
Figure 112008002564155-pat00309
: sel_crt가 '1'인 경우, 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00310
Figure 112008002564155-pat00311
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00312
는 최하위 비트,
Figure 112008002564155-pat00313
는 하위 1번째 비트
Figure 112008002564155-pat00309
: If sel_crt is '1', carry save intermediate result S, C and
Figure 112008002564155-pat00310
And
Figure 112008002564155-pat00311
The lower two bits of the result of the addition.
Figure 112008002564155-pat00312
Is the least significant bit,
Figure 112008002564155-pat00313
Is the lower 1st bit
제 10항에 있어서,The method of claim 10, 상기 제 1 단계의 부스 레코딩은 피승수 정보
Figure 112008002564155-pat00158
를 입력받아 상기 승수 저장 레지스터로부터 입력된 3비트 정보
Figure 112008002564155-pat00314
,
Figure 112008002564155-pat00315
과 sel_crt의 조건에 따라 1비트 값
Figure 112008002564155-pat00160
와 n+4비트 값
Figure 112008002564155-pat00161
를 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법.
Booth recording of the first step is multiplier information
Figure 112008002564155-pat00158
3-bit information received from the multiplier storage register
Figure 112008002564155-pat00314
,
Figure 112008002564155-pat00315
And 1-bit value according to the condition of sel_crt
Figure 112008002564155-pat00160
And n + 4 bit values
Figure 112008002564155-pat00161
A modular multiplication method based on Chinese residual theorem (CRT) and carry storage addition, characterized in that for outputting.
여기서, B : 피승수 정보, 입력신호 sel_crt가 '0'인 경우 피승수 정보 레지스터(B_reg)에 n+2 비트 정보로 저장되고, 반면 sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1 비트 위치에 저장됨Here, B: multiplicand information, if the input signal sel_crt is '0' is stored as n + 2 bit information in the multiplicand information register (B_reg), whereas, if sel_crt is '1', the lower n / 2 + 1 bit of B_reg Saved to location B' : 피승수 정보 레지스터(B_reg)의 상위 n/2+1 비트에 저장되는 정보B ': Information stored in the upper n / 2 + 1 bits of the multiplicand information register (B_reg)
Figure 112008002564155-pat00316
: sel_crt가 '0'인 경우는 A_reg의 n+2비트 정보를, sel_crt가 '1'인 경우는 A_reg의 하위 n/2+1 비트 정보를 i번째 부스 레코딩에 사용하는 3비트 입력
Figure 112008002564155-pat00316
: 3-bit input using n + 2 bit information of A_reg when sel_crt is '0' and low n / 2 + 1 bit information of A_reg when sel_crt is '1'
Figure 112008002564155-pat00317
: sel_crt가 '1'인 경우에 A_reg의 상위 n/2+1 비트 정보(A')를 i번째 부스 레코딩에 사용하는 3비트 입력
Figure 112008002564155-pat00317
: 3-bit input using upper n / 2 + 1 bit information (A ') of A_reg for i th booth recording when sel_crt is'1'
Figure 112008002564155-pat00318
: 입력신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 크기 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
Figure 112008002564155-pat00318
: When the input signal sel_crt is '0', size information among booth recording results for the entire information of B_reg. If sel_crt is '1', size information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00319
: 입력신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
Figure 112008002564155-pat00319
: If input signal sel_crt is '1', size information among booth recording results for upper n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00320
: 입력 신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 부호 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00320
: When the input signal sel_crt is '0', sign information among booth recording results for all information of B_reg. If sel_crt is '1', sign information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00321
: 입력 신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00321
: If the input signal sel_crt is '1', sign information among booth recording results of upper n / 2 + 1 bit information of B_reg
제 11항에 있어서, The method of claim 11, 상기 부스 레코딩은 입력 신호 sel_crt가 0일때는
Figure 112008002564155-pat00162
를 하나의 n+2비트 피승수로 취급하여
Figure 112008002564155-pat00322
의 조건에 따라
Figure 112008002564155-pat00164
와 피승수의 배수값을
Figure 112008002564155-pat00165
로 출력하고 sel_crt이 1일 때는
Figure 112008002564155-pat00166
을 두 개의 n/2+1비트 피승수 B', B로 각각 취급하여
Figure 112008002564155-pat00323
Figure 112008002564155-pat00324
의 조건에 따라
Figure 112008002564155-pat00169
의 각 배수값을
Figure 112008002564155-pat00170
로 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법.
The booth recording is performed when the input signal sel_crt is 0.
Figure 112008002564155-pat00162
Is treated as a single n + 2 bit multiply
Figure 112008002564155-pat00322
Under the terms of
Figure 112008002564155-pat00164
And the multiple of the multiplicand
Figure 112008002564155-pat00165
When sel_crt is 1
Figure 112008002564155-pat00166
Are treated as two n / 2 + 1 bit multipliers B 'and B, respectively.
Figure 112008002564155-pat00323
Wow
Figure 112008002564155-pat00324
Under the terms of
Figure 112008002564155-pat00169
Each multiple of
Figure 112008002564155-pat00170
Modular multiplication method based on Chinese residual theorem (CRT) and carry storage addition, characterized in that the output.
여기서, B : 피승수 정보, 입력신호 sel_crt가 '0'인 경우 피승수 정보 레지스터(B_reg)에 n+2 비트 정보로 저장되고, 반면 sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1 비트 위치에 저장됨Here, B: multiplicand information, if the input signal sel_crt is '0' is stored as n + 2 bit information in the multiplicand information register (B_reg), whereas, if sel_crt is '1', the lower n / 2 + 1 bit of B_reg Saved to location B' : 피승수 정보 레지스터(B_reg)의 상위 n/2+1 비트에 저장되는 정보B ': Information stored in the upper n / 2 + 1 bits of the multiplicand information register (B_reg)
Figure 112008002564155-pat00325
: sel_crt가 '0'인 경우는 A_reg의 n+2비트 정보를, sel_crt가 '1'인 경우는 A_reg의 하위 n/2+1 비트 정보를 i번째 부스 레코딩에 사용하는 3비트 입력
Figure 112008002564155-pat00325
: 3-bit input using n + 2 bit information of A_reg when sel_crt is '0' and low n / 2 + 1 bit information of A_reg when sel_crt is '1'
Figure 112008002564155-pat00326
: sel_crt가 '1'인 경우에 A_reg의 상위 n/2+1 비트 정보(A')를 i번째 부스 레코딩에 사용하는 3비트 입력
Figure 112008002564155-pat00326
: 3-bit input using upper n / 2 + 1 bit information (A ') of A_reg for i th booth recording when sel_crt is'1'
Figure 112008002564155-pat00327
: 입력신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 크기 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
Figure 112008002564155-pat00327
: When the input signal sel_crt is '0', size information among booth recording results for the entire information of B_reg. If sel_crt is '1', size information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00328
: 입력신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
Figure 112008002564155-pat00328
: If input signal sel_crt is '1', size information among booth recording results for upper n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00329
: 입력 신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 부호 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00329
: When the input signal sel_crt is '0', sign information among booth recording results for all information of B_reg. If sel_crt is '1', sign information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00330
: 입력 신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00330
: If the input signal sel_crt is '1', sign information among booth recording results of upper n / 2 + 1 bit information of B_reg
제 11항에 있어서,The method of claim 11, 상기 제 3단계는 캐리 저장 가산의 중간 결과값 SUM중 하위 n/2+3비트 S의 최하위 2비트
Figure 112008002564155-pat00171
, 그리고 캐리 입력에 대한 덧셈을 수행하여
Figure 112008002564155-pat00172
를 계산하는 단계와 SUM의 상위 n/2+3비트
Figure 112008002564155-pat00173
의 최하위 2비트
Figure 112008002564155-pat00174
, 그리고 캐리 입력에 대한 덧셈을 수행하여
Figure 112008002564155-pat00175
를 계산하는 단계를 포함하여 이루어지는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법.
The third step is the least significant 2 bits of the lower n / 2 + 3 bits S of the intermediate result value SUM of the carry storage addition.
Figure 112008002564155-pat00171
, And by doing addition on the carry input
Figure 112008002564155-pat00172
Step and compute the upper n / 2 + 3 bits of the SUM
Figure 112008002564155-pat00173
Least significant 2 bits of
Figure 112008002564155-pat00174
, And by doing addition on the carry input
Figure 112008002564155-pat00175
Chinese modular theorem (CRT) and carry storage addition based modular multiplication method comprising the step of calculating the.
여기서,
Figure 112008002564155-pat00331
: 입력 신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 부호 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
here,
Figure 112008002564155-pat00331
: When the input signal sel_crt is '0', sign information among booth recording results for all information of B_reg. If sel_crt is '1', sign information among booth recording results for lower n / 2 + 1 bit information of B_reg
Figure 112008002564155-pat00332
: 입력 신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
Figure 112008002564155-pat00332
: If the input signal sel_crt is '1', sign information among booth recording results of upper n / 2 + 1 bit information of B_reg
S : 캐리저장 가산의 결과 합. 입력신호 sel_crt가 '0'인 경우 S_reg에 n+4 비트 정보로 저장, 반면 sel_crt가 '1'인 경우는 S_reg의 하위 n/2+2 비트 위치에 저장됨S: Sum of the result of the carry storage addition. If the input signal sel_crt is '0', it is stored as n + 4 bit information in S_reg, whereas if sel_crt is '1', it is stored in the lower n / 2 + 2 bit position of S_reg. S' : 캐리저장 가산의 결과 합. sel_crt가 '1'인 경우는 S_reg의 상위 n/2+2 비트 위치에 저장S ': Sum of the result of the carry storage addition. If sel_crt is '1', it is stored in the upper n / 2 + 2 bit position of S_reg. C : 캐리저장 가산의 결과 합. 입력신호 sel_crt가 '0'인 경우 C_reg에 n+4 비트 정보로 저장, 반면 sel_crt가 '1'인 경우는 C_reg의 하위 n/2+2 비트 위치에 저장됨C: Sum of the result of the carry storage addition. When the input signal sel_crt is '0', it is stored as n + 4 bit information in C_reg, whereas when sel_crt is '1', it is stored in the lower n / 2 + 2 bit position of C_reg. C' : 캐리저장 가산의 결과 합. sel_crt가 '1'인 경우는 C_reg의 상위 n/2+2 비트 위치에 저장C ': Sum of the result of the carry storage addition. If sel_crt is '1', it is stored in the upper n / 2 + 2 bit positions of C_reg.
Figure 112008002564155-pat00333
: 캐리저장 결과 합(S)의 i번째 비트.
Figure 112008002564155-pat00334
는 S의 최하위 비트,
Figure 112008002564155-pat00335
는 S의 하위 1번째 비트
Figure 112008002564155-pat00333
: I-th bit of the carry result sum (S).
Figure 112008002564155-pat00334
Is the least significant bit of S,
Figure 112008002564155-pat00335
Is the lower 1st bit of S
Figure 112008002564155-pat00336
: 캐리저장 결과 합(S')의 i번째 비트.
Figure 112008002564155-pat00337
는 S'의 최하위 비트,
Figure 112008002564155-pat00338
는 S'의 하위 1번째 비트
Figure 112008002564155-pat00336
: I th bit of the carry result sum (S ').
Figure 112008002564155-pat00337
Is the least significant bit of S ',
Figure 112008002564155-pat00338
Lower 1st bit of S '
Figure 112008002564155-pat00339
: 캐리저장 결과 합(C)의 i번째 비트.
Figure 112008002564155-pat00340
는 C의 최하위 비트,
Figure 112008002564155-pat00341
는 C의 하위 1번째 비트
Figure 112008002564155-pat00339
: I th bit of the carry result sum (C).
Figure 112008002564155-pat00340
Is the least significant bit of C,
Figure 112008002564155-pat00341
Is the lower 1st bit of C
Figure 112008002564155-pat00342
: 캐리저장 결과 합(C')의 i번째 비트.
Figure 112008002564155-pat00343
는 C'의 최하위 비트,
Figure 112008002564155-pat00344
는 C'의 하위 1번째 비트
Figure 112008002564155-pat00342
: I th bit of the carry result sum (C ').
Figure 112008002564155-pat00343
Is the least significant bit of C ',
Figure 112008002564155-pat00344
Is the lower 1st bit of C '
Figure 112008002564155-pat00345
: 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00346
Figure 112008002564155-pat00347
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00348
는 최하위 비트,
Figure 112008002564155-pat00349
는 하위 1번째 비트
Figure 112008002564155-pat00345
: Carry storage intermediate results S, C and
Figure 112008002564155-pat00346
And
Figure 112008002564155-pat00347
The lower two bits of the result of the addition.
Figure 112008002564155-pat00348
Is the least significant bit,
Figure 112008002564155-pat00349
Is the lower 1st bit
Figure 112008002564155-pat00350
: sel_crt가 '1'인 경우, 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00351
Figure 112008002564155-pat00352
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00353
는 최하위 비트,
Figure 112008002564155-pat00354
는 하위 1번째 비트
Figure 112008002564155-pat00350
: If sel_crt is '1', carry save intermediate result S, C and
Figure 112008002564155-pat00351
And
Figure 112008002564155-pat00352
The lower two bits of the result of the addition.
Figure 112008002564155-pat00353
Is the least significant bit,
Figure 112008002564155-pat00354
Is the lower 1st bit
제 11항에 있어서,The method of claim 11, 제 4단계는 입력 신호 sel_crt가 0일때는 (Q, P)를 하나의 n비트 모듈러스 N으로 취급하여
Figure 112008002564155-pat00176
와 N의 최하위 비트 조건에 따라
Figure 112008002564155-pat00177
과 N의 배수값을
Figure 112008002564155-pat00178
로 출력하고 sel_crt가 1일 때는 (Q, P)를 두 개의 n/2비트 모듈러스 Q와 P로 각각 취급하여
Figure 112008002564155-pat00179
와 Q와 P의 각 최하위 비트 조건에 따라
Figure 112008002564155-pat00180
와 Q, P의 각 배수값을
Figure 112008002564155-pat00181
로 출력하는 것을 특징으로 하는 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법.
The fourth step is to treat (Q, P) as one n-bit modulus N when the input signal sel_crt is 0.
Figure 112008002564155-pat00176
According to the least significant bit condition of and N
Figure 112008002564155-pat00177
And multiples of N
Figure 112008002564155-pat00178
If sel_crt is 1, treat (Q, P) as two n / 2-bit modulus Q and P, respectively.
Figure 112008002564155-pat00179
And according to each least significant bit condition of Q and P
Figure 112008002564155-pat00180
And each multiple of Q and P
Figure 112008002564155-pat00181
Modular multiplication method based on Chinese residual theorem (CRT) and carry storage addition, characterized in that the output.
여기서,
Figure 112008002564155-pat00355
: 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00356
Figure 112008002564155-pat00357
를 덧셈한 결과 중 하위 2비트. 는 최하위 비트,
Figure 112008002564155-pat00359
는 하위 1번째 비트
here,
Figure 112008002564155-pat00355
: Carry storage intermediate results S, C and
Figure 112008002564155-pat00356
And
Figure 112008002564155-pat00357
The lower two bits of the result of the addition. Is the least significant bit,
Figure 112008002564155-pat00359
Is the lower 1st bit
Figure 112008002564155-pat00360
: sel_crt가 '1'인 경우, 캐리저장 중간결과 S, C와
Figure 112008002564155-pat00361
Figure 112008002564155-pat00362
를 덧셈한 결과 중 하위 2비트.
Figure 112008002564155-pat00363
는 최하위 비트,
Figure 112008002564155-pat00364
는 하위 1번째 비트
Figure 112008002564155-pat00360
: If sel_crt is '1', carry save intermediate result S, C and
Figure 112008002564155-pat00361
And
Figure 112008002564155-pat00362
The lower two bits of the result of the addition.
Figure 112008002564155-pat00363
Is the least significant bit,
Figure 112008002564155-pat00364
Is the lower 1st bit
KR1020060081241A 2005-12-13 2006-08-25 Apparatus and method for modular multiplication using chhinese remainder theorem and carry save adder KR100836737B1 (en)

Applications Claiming Priority (2)

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

Publications (2)

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

Family

ID=38363120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060081241A KR100836737B1 (en) 2005-12-13 2006-08-25 Apparatus and method for modular multiplication using chhinese remainder theorem and carry save adder

Country Status (1)

Country Link
KR (1) KR100836737B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814838B (en) * 2019-03-28 2024-04-12 贵州华芯半导体技术有限公司 Method, hardware device and system for obtaining intermediate result set in encryption and decryption operation
TWI802095B (en) 2021-11-22 2023-05-11 財團法人工業技術研究院 Modular multiplication circuit and corresponding modular multiplication method
KR102621862B1 (en) 2023-04-19 2024-01-05 국방과학연구소 Method and apparatus of binary field Multiplication based on Chinese remainder theorem

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060013124A (en) * 2004-08-06 2006-02-09 삼성전자주식회사 A modular exponentiation algorithm, a record device including the algorithm and a system using the algorithm

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060013124A (en) * 2004-08-06 2006-02-09 삼성전자주식회사 A modular exponentiation algorithm, a record device including the algorithm and a system using the algorithm

Also Published As

Publication number Publication date
KR20070062901A (en) 2007-06-18

Similar Documents

Publication Publication Date Title
Kwon et al. Two implementation methods of a 1024-bit RSA cryptoprocessor based on modified Montgomery algorithm
JP2005250481A (en) Extended montgomery modular multiplier supporting multiple precision
JP2004326112A (en) Multiple modulus selector, accumulator, montgomery multiplier, method of generating multiple modulus, method of producing partial product, accumulating method, method of performing montgomery multiplication, modulus selector, and booth recorder
KR100591761B1 (en) Montgomery Modular Multiplication Method Using Montgomery Modular Multiplier and Carry Store Addition
Abd-Elkader et al. FPGA-based optimized design of montgomery modular multiplier
Zhang et al. An efficient CSA architecture for Montgomery modular multiplication
KR100459732B1 (en) Montgomery modular multiplier by 4 to 2 compressor and multiplication method thereof
KR101925868B1 (en) Modular arithmetic unit and secure system having the same
Abd-Elkader et al. Advanced implementation of montgomery modular multiplier
US7240204B1 (en) Scalable and unified multiplication methods and apparatus
US5751620A (en) Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method
KR100836737B1 (en) Apparatus and method for modular multiplication using chhinese remainder theorem and carry save adder
JP2004227344A (en) Multiplier and code circuit
Hong et al. Radix-4 modular multiplication and exponentiation algorithms for the RSA public-key cryptosystem
KR101136972B1 (en) method for evaluating Elliptic Curve Cryptosystem
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 (en) Scalable Dual-Field Montgomery Multiplier On Dual Field Using Multi-Precision Carry Save Adder
RU2804380C1 (en) Pipeline calculator
KR100858559B1 (en) Method for adding and multipying redundant binary and Apparatus for adding and multipying redundant binary
RU2797163C1 (en) Pipeline calculator
RU2791440C1 (en) Pipeline generator of remainders by an arbitrary modulus
US7801937B1 (en) Method and apparatus for implementing a look-ahead for low radix Montgomery multiplication
JP2004226516A (en) Power remainder computing method and program for the same
Pinckney et al. Parallelized Booth-encoded radix-4 Montgomery multipliers

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