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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/722—Modular multiplication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
- G06F7/503—Half 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/723—Modular exponentiation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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)기법을 이용하며 비트 최종 가산기를 사용하여 두 개의 n비트 입력 A, B에 대한 곱셈을 클롤 사이클만에 수행하고, 또한 캐리 저장 가산기를 기반으로 하나의 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. Multiply two n-bit inputs A and B using the bit final adder 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
도 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 몽고메리 곱셈 방법
몽고메리 곱셈 알고리즘을 사용하여 모듈러 곱셈기를 구현하는 방법에는 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.
따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 비트 최종 가산기를 사용할 경우 두 개의 n비트 입력 A, B에 대한 곱셈을 클록 사이클만에 처리하는 모듈러 곱셈 방법과 하나의 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 Multiply two n-bit inputs A and B when using the bit final adder 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)부에 의한 모듈러스 부분합()을 더하는 연산을 수행하는 제 2 캐리 저장 가산기로 포함하여 구성되는 캐리 저장 가산부, 상기 제 2 캐리 저장 가산기로부터 출력된 CARRY를 저장하고 비트씩 우측 쉬프트할 수 있는 C 레지스터(C_reg), SUM을 저장하고 비트씩 우측 쉬프트할 수 있는 S 레지스터(S_reg), 캐리의 발생 여부를 계산하여 다음 연산 라운드에 반영해주는 2비트 가산기, 모듈러스 입력 (Q,P)를 입력받아, 상기 2비트 가산기에 의한 와 sel_crt의 조건에 따라 1비트 값 와 n+6비트 값 (Q, P)를 출력하는 리덕션 테이블(RT)부, 입력 신호 sel_crt에 따라 1비트 입력값을 제어하는 복수의 다중화기, 상기 캐리 저장 가산부의 중간 결과값으로부터 최종 결과값을 계산하는데 사용되는 두 개의 비트 가산기를 포함하여 이루어지는 것을 특징으로 한다.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 ( 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. Save the C register (C_reg), SUM that can be shifted right by bit 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. And 1-bit value according to the condition of sel_crt 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 And a bit adder.
이때, 승수 저장 레지스터는 n+1비트 승수 입력을 저장하고 2비트씩 우측 쉬프트할 수 있는 것을 특징으로 하고, 특히, 승수 저장 레지스터는 n+4비트 승수 입력을 저장하고 sel_crt신호의 조건에 따라 n+4비트 또는 n/2+2비트 단위로 2비트씩 우측 쉬프트하고 3비트 정보 와 를 출력하는 것을 특징으로 한다.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 Wow It characterized in that the output.
또한, 부스 레코딩(BR)부는 피승수 정보 를 입력받아 상기 승수 저장 레지스터로부터 입력된 3비트 정보 ,과 sel_crt의 조건에 따라 1비트 값 와 n+4비트 값 를 출력하는 것을 특징으로 하고, 특히, 부스 레코딩(BR)부는 입력 신호 sel_crt가 0일때는 를 하나의 n+2비트 피승수로 취급하여 의 조건에 따라 와 피승수의 배수값을 로 출력하고 sel_crt이 1일 때는 을 두 개의 n/2+1비트 피승수 B', B로 각각 취급하여 와 의 조건에 따라 의 각 배수값을 로 출력하는 것을 특징으로 한다.In addition, the booth recording (BR) unit is multiplier information 3-bit information received from the multiplier storage register , And 1-bit value according to the condition of sel_crt And n + 4 bit values In particular, when the input signal sel_crt is 0, the booth recording part BR is 0. Is treated as a single n + 2 bit multiply Under the terms of And the multiple of the multiplicand When sel_crt is 1 Are treated as two n / 2 + 1 bit multipliers B 'and B, respectively. Wow Under the terms of Each multiple of It characterized in that the output to.
또한, 2비트 가산기(2-bit adder1)는 제 4항에 있어서 캐리 저장 가산의 중간 결과값SUM중 하위 n/2+3비트 S의 최하위 2비트 , 그리고 캐리 입력에 대한 덧셈을 수행하여 를 계산하는 2비트 가산기와 SUM의 상위 n/2+3비트 의 최하위 2비트 , 그리고 캐리 입력에 대한 덧셈을 수행하여 를 계산하는 2비트 가산기를 포함하여 이루어지는 것을 특징으로 한다.Further, the 2-
또한, 리덕션 테이블(RT)부는 입력 신호 sel_crt가 0일때는 (Q, P)를 하나의 n비트 모듈러스 N으로 취급하여 와 N의 최하위 비트 조건에 따라 과 N의 배수값을 로 출력하고 sel_crt가 1일 때는 (Q, P)를 두 개의 n/2비트 모 듈러스 Q와 P로 각각 취급하여 와 Q와 P의 각 최하위 비트 조건에 따라 와 Q, P의 각 배수값을 로 출력하는 것을 특징으로 한다.In addition, when the input signal sel_crt is 0, the reduction table RT treats (Q, P) as one n-bit modulus N. According to the least significant bit condition of and N And multiples of N When sel_crt is 1, (Q, P) is treated as two n / 2-bit modulus Q and P respectively. And according to each least significant bit condition of Q and P And each multiple of Q and P It characterized in that the output to.
또한, C 레지스터(C_reg)는 sel_crt신호의 조건에 따라 n+4비트 단위 또는 n/2+2비트 단위로 비트씩 우측 쉬프트할 수 있는 것을 특징으로 하고, S 레지스터(S_reg)는 sel_crt신호의 조건에 따라 n+4비트 단위 또는 n/2+2비트 단위로 비트씩 우측 쉬프트할 수 있는 것을 특징으로 한다. 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. 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. It is characterized by the ability to shift right by bit.
한편, 본 발명의 중국인 나머지 정리(CRT)와 캐리 저장 가산 기반의 모듈러 곱셈 방법은, n+1비트 입력 A,B와 n비트 모듈러스 N에 대해 (여기서 )의 몽고메리 곱셈 연산에 있어서,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 (here In Montgomery multiplication
승수 A의 하위 3비트 와 피승수 B를 이용하여 부스 레코딩한 결과로 부호 정보인 와 B의 배수값인 를 출력하는 1 단계, 상기 출력된 를 중간 결과값 CARRY와 SUM에 캐리 저장 가산을 취하는 2 단계, 상기 1단계와 2 단계에 의해 출력된 SUM의 최하위 2비트 , 그리고 이전 반복 연산의 결과로 저장된 캐리 입력값인 에 대해 2비트 덧셈을 수행하여 2비트 정보 를 계산하는 3 단계, 상기 계산된 2비트 정보 와 모듈러스 N을 이용하여 부호 정보인 과 N의 배수값인 를 결정하는 4 단계, 상기 결정된 를 중간 결과값 CARRY와 SUM에 캐리 저장 가산을 취하는 5 단계, 다음 반복 연산을 위해 SUM의 최하위 2비트 , 그리고 이전 반복 연산의 결과로 저장된 캐리 입력값인 에 대해 2비트 덧셈을 수행하여 캐리 출력값으로 을 갱신하는 6 단계, 상기 캐리 저장 가산에 의한 CARRY와 SUM을 각각 2비트씩 우측 쉬프트시키는 7 단계, 상기 일련의 과정을 번 반복한 다음 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 비트에 저장되는 정보
- : sel_crt가 '0'인 경우는 A_reg의 n+2비트 정보를, sel_crt가 '1'인 경우는 A_reg의 하위 n/2+1 비트 정보를 i번째 부스 레코딩에 사용하는 3비트 입력
- : sel_crt가 '1'인 경우에 A_reg의 상위 n/2+1 비트 정보(A')를 i번째 부스 레코딩에 사용하는 3비트 입력
- : 입력신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 크기 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
- : 입력신호 sel_crt가 '1'인 경우는 B_reg의 상위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 크기 정보
- : 입력 신호 sel_crt가 '0'인 경우, B_reg의 전체 정보에 대한 부스 레코딩 결과 중 부호 정보. sel_crt가 '1'인 경우는 B_reg의 하위 n/2+1비트 정보에 대한 부스 레코딩 결과 중 부호 정보
- : 입력 신호 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 비트 위치에 저장
- : 캐리저장 결과 합(S)의 i번째 비트. 는 S의 최하위 비트, 는 S의 하위 1번째 비트
- : 캐리저장 결과 합(S')의 i번째 비트. 는 S'의 최하위 비트, 는 S'의 하위 1번째 비트
- : 캐리저장 결과 합(C)의 i번째 비트. 는 C의 최하위 비트, 는 C의 하위 1번째 비트
- : 캐리저장 결과 합(C')의 i번째 비트. 는 C'의 최하위 비트, 는 C'의 하위 1번째 비트
- : 캐리저장 중간결과 S, C와 및 를 덧셈한 결과 중 하위 2비트. 는 최하위 비트, 는 하위 1번째 비트
- : sel_crt가 '1'인 경우, 캐리저장 중간결과 S, C와 및 를 덧셈한 결과 중 하위 2비트. 는 최하위 비트, 는 하위 1번째 비트Lower 3 bits of multiplier A And booth recording using multiplicand B Is a multiple of and
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)
- : 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'
- : 3-bit input using upper n / 2 + 1 bit information (A ') of A_reg for i th booth recording when sel_crt is'1'
- : 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
- : If input signal sel_crt is '1', size information among booth recording results for upper n / 2 + 1 bit information of B_reg
- : 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
- : 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.
- : I-th bit of the carry result sum (S). Is the least significant bit of S, Is the lower 1st bit of S
- : I th bit of the carry result sum (S '). Is the least significant bit of S ', Lower 1st bit of S '
- : I th bit of the carry result sum (C). Is the least significant bit of C, Is the lower 1st bit of C
- : I th bit of the carry result sum (C '). Is the least significant bit of C ', Is the lower 1st bit of C '
- : Carry storage intermediate results S, C and And The lower two bits of the result of the addition. Is the least significant bit, Is the lower 1st bit
- : If sel_crt is '1', carry save intermediate result S, C and And The lower two bits of the result of the addition. Is the least significant bit, 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의 최하위비트 는 항상 0이므로 mod 2 연산은 CSA 출력SUM의 최하위비트 에 의해 결정되며 나누기 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
여기서 (C,S) = CSA(X,Y,Z)는 세 입력 X, Y, 그리고 Z에 대한 캐리 저장 가산을 나타낸다. 일반적인 캐리 전파 가산기와 달리 캐리 저장 가산기는 별도의 캐리 입력이 없다. 따라서 캐리 저장 가산기를 이용하여 입력 B나 N에 대한 2의 보수 에 대한 연산을 수행하는 일은 단순하지 않다. 따라서 알고리즘 2에서의 부스 레코딩(Booth Recoding, BR)은 부스 부호화를 담당하는 블록으로 표 1과 같이 처리된다. 즉 B에 대한 양의 배수를 출력하는 경우는 은 0이고, 는 B나 2B의 값을 가지며, 음의 배수의 경우에는 는 1이고, 는 B나 2B 비트별 역원인 -B나 -2B이 된다. 과정 5에서는 두 개의 2비트 입력과 1비트 캐리 입력에 대한 2비트 덧셈이 수행되며 그 결과값인 과 N의 두번째 최하위 비트 를 이용하여 다음 과정의 연산에 필요한 과 를 결정하게 된다. 먼저 은 과정 6과 같이 결정되며 는 표 2와 같은 규칙으로 결정되게 된다. 또한 과정 6에서의 C의 최하위 비트를 으로 대체함으로써 손쉽게 처리된다. 과정 16에서는 또 하나의 2비트 덧셈이 수행되며 이때 나누기 4는 2비트 덧셈의 출력 캐리만 다음 반복 연산을 위해 저장하고 나머지 2비트 결과를 버림으로써 간단히 처리된다. 다시 과정 17에서는 C과 S에 대해서 2비트씩 우측 쉬프트시켜 나누기 4를 수행한다. 이러한 일련의 과정을 번 수행함으로써 캐리저장 형태의 모듈러 곱셈 결과값이 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
표 1 알고리즘 2의 radix-4 부스 레코딩 규칙 Table 1 Radix-4 Booth Recording Rules for
표 2 알고리즘2의 리덕션 테이블(Reduction Table, RT)Table 2 Reduction Table of Algorithm 2 (RT)
RSA 복호화나 서명 연산은 중국인 나머지 정리(Chinese Remainder Theorem, 이하 CRT)을 이용하여 고속으로 구현될 수 있다. n비트 모듈러스 N은 두 개의 n/2비트 소수 P와 Q의 곱, 즉 N= P x Q이므로 n비트 모듈러 지수승 은 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 Can be calculated by dividing into two parts using CRT as follows.
알고리즘 3. CRT를 이용한 RSA 복호화 방법
여기서 과정 1~2에서는 n비트 암호문 C를 리덕션하여 두 개의 n/2비트 암호문 와 를 계산하며, 과정 3~4에서는 리덕션된 암호문 와 , 각각에 대한 모듈러 지수승을 수행하고, 과정 5~6에서는 이전 과정에서 생성된 메시지, 와 를 가지고 최종 메시지M을 재조합하게된다. 이러한 일련의 과정 중 가장 연산량이 많이 필요한 부분은 과정 3~4의 n/2비트 모듈러 지수승 연산이라는 점을 쉽게 파악할 수 있다. 따라서 CRT를 이용한 RSA연산의 고속화를 위해서는 n비트 모듈러 곱셈 장치가 두 개의 n/2단위로 독립적으로 동작하는 기능이 요구된다. 알고리즘 2와 같이 캐리 저장 가산을 사용하는 방법의 경우, 인접 비트간의 캐리 전파가 발생하지 않기 때문에 n/2비트 단위로 독립적으로 컨트롤하기에 매우 유리하다는 장점을 가진다. 따라서 본 발명은 알고리즘 2를 기반으로 하고 CRT 적용이 가능한 모듈러 곱셈 장치를 제안한다. In
도 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
제 1 캐리 저장 가산기(110)는 이전 라운드의 SUM과 CARRY에 승수 비트에 따라 부스 레코딩(Booth Recoding:BR)부에 의해 결정된 피승수의 부분합을 더하는 연산을 수행한다. 도 2는 제 1 캐리 저장 가산기의 데이터 입출력을 나타내는 상세도로 (n+4)개의 병룔로 연결된 전가산기로 구성된다. 각 개별 가산기의 첫번째 입력과 두번째 입력은 이전 라운드 연산 결과값 중 SUM과 CARRY부이며, 몽고메리 리덕션이 수행된 즉 각각 2비트씩 좌로 쉬프트된 SUM과 CARRY가 입력되도록 구성된다. CRT연산이 아닌 n비트 연산 모드인 경우 연산기에 입력되는 가 중 하나의 값이며 n+2비트의 크기를 가지므로, 전체 n+4개의 가산기중 n+2개가 연산에 사용된다. CRT 모드인 경우 두개의 (n/2+2)비트수가 각각 입력되며 이 경우 전체 개의 연산기가 사용된다. The first
제 2 캐리 저장 가산기(120)는 제 1 캐리 저장 가산기(110)의 연산 결과 값인 SUM과 CARRY에 리덕션 테이블(RT)부(160)에서 발생한 모듈러스의 부분합을 더하는 연산을 수행한다. 도 3은 제 2 캐리 저장 가산기(120)의 데이터 입출력을 나타내는 상세도로 제 1 캐리 저장 가산기(110)에 의해 계산된 SUM과 CARRY는 각각 n+2, n+3비트의 크기를 가지며, 이 값은 또 다른 n+2비트 입력과 함께 더해지게 된다. 따라서 CRT연산 모드가 아닌 경우 n+3개의 연산기가 사용되며, CRT모드인 경우에는 총 n+6개의 연산기가 절반씩 사용되게 된다.The second
승수 저장 레지스터(130)는 곱셈기 입력 의 저장공간으로 사용된다. 승수 저장 레지스터(130)는 도 1에서 보여지는 바와 같이 CRT모드에 따라 n+1비트의 승수를 저장하거나 혹은 두 개의 (n/2+1)비트 승수를 저장하며 한 클록 주기동안 2비트 우측 쉬프트하며, 각 하위 3개 비트 출력은 부스 레코딩(BR)부(140)의 입력으로 인가된다.
부스 레코딩(BR)부(140)는 승수 레지스터(130)로부터 인가된 두 개의 3비트 입력에 따라 결정된 피승수를 출력하는 회로이다. 도 4는 부스 레코딩(Booth Recording:BR)부의 구성을 나타내는 도면으로 CRT모드 선택을 위한 다중화기(141)는 sel_crt 비트에 따라서 혹은 을 위쪽 비트 영역의 부스 레코더로 입력한다. 부스 레코딩(BR)부(140)는 입력되는 3비트에 따라 각 다중화기(142,143)의 제어신호를 발생한다. 상단부의 다중화기(142)는 피승수를 입력으로 받아 B와 2B중에 적절한 값을 출력하며, 비트별 역원기(bit-wise inverter) 회로(145)에서는 2의 보수 음수출력을 위한 예비 연산을 수행한다. 하단부의 다중화기(143)은 비트별 반전된 값과 반전되지 않은 값들 중에 적절한 값을 부스 레코딩된 결과값에 따라 선택하여 출력한다.The booth recording (BR)
제 1 캐리 저장 가산기(110)의 연산 출력값은 SUM과 CARRY형태로 표현되어 있으므로, 출력값의 하위비트에 따라 값을 결정하기 위해서는 일정 하위비트의 SUM과 CARRY를 더하여 실제 연산결과값을 계산해 내야 한다. Radix-4 곱셈기의 경우, 하위 2비트의 덧셈 결과 값에 따라 값이 결정되므로, 2비트 전가산기를 통해 상기 언급한 덧셈 연산이 수행된다. 2비트 가산기 블록(150)의 자세한 도면은 도 5와 같다. 가산기로 입력되는 제 2 캐리 저장 가산기(120)의 CARRY출력의 경우 에는 이미 제 1 캐리 저장 가산기(110)에서 1비트 좌측 쉬프트되어 출력되므로, 최하위 비트는 늘 0값을 가지게 된다. 따라서 부스 레코딩(BR)부(140)에서 음수 가 발생한 경우 부스 레코딩(BR)부는 2의 보수형태가 아닌 비트별 반전된 값만을 발생하고, 신호를 발생하여 본 2비트 가산기(120)의 CARRY 입력 최하위 비트에 인가하여 반영하도록 구성되어 있다. 또한 최하위 비트 가산기의 최초 캐리 입력으로는 제 2 캐리 저장형 가산기(120) 다음에 위치한 2비트 가산기(170)의 carry_reg(171) 출력을 입력으로 받는다.Since the operation output value of the first
리덕션 테이블(RT)부(160)는 몽고메리 리덕션을 적용하기 위해 적절한 값을 선택한다. 도 6은 리덕션 테이블(Reduction Table:RT)부의 구성을 나타내는 도면으로 상기 기술한 2비트 가산기(150)의 결과값 2비트와 모듈러스 N을 입력으로 하며, 값을 발생한다. 값은 상기의 표 2와 같은 규칙에 따라 발생한다. The reduction table (RT)
다중화기(161)은 모듈러스(N)값의 발생가능한 4가지 값중(0, +N, -N, 2N) 하나를 선택하는 기능을 수행한다. 또한 기 설명한 바와 같이 CRT모드를 지원하여, n/2비트 모드인 경우 n/2비트 모듈러스 수인 P와 Q가 각각 입력되며, n비트 모드인 경우 P, Q는 모듈러스 N의 상위 절반과 하위 절반으로 대응한다. 다중화기(162)는 CRT모드 여부에 따라 상위 비트열을 제어하는 다중화기(161)의 컨트롤 신호를 선택하는 역할을 수행한다.The
제 2 캐리 저장 가산기(120) 연산을 마친 SUM과 CARRY값은 몽고메리 리덕션 을 수행하기 위해 2비트 좌측 쉬프트된다. 몽고메리 연산규칙에 따르면, 리덕션 테이블(RT)(160)부에서 발생한 적절한 값을 더한 연산값의 하위 2비트 모두 0이어야 하지만, 본 제안에서는 캐리 저장 가산기를 사용하므로, ,의 경우와 같이 실제 연산 결과값은 2비트 모두 0이지만 캐리 저장 형식으로 0이 아닌 경우가 발생할 수 있다. 따라서 이러한 경우 2비트를 좌측 쉬프트하여 레지스터에 입력할 경우 하위 2비트의 정보를 잃어버릴 수 있다. 이를 보상하기 위해 2비트 가산기(170)가 사용된다. 도 7과 같이 2비트 가산기는 제 2 캐리 저장 가산기(120) 출력의 하위 2비트와 신호를 더하여, 3번째 비트 위치로의 캐리가 발생할 경우 이를 1비트 레지스터에 저장한 후 다음 라운드 반복 연산에 2비트 가산기(150)의 캐리 입력으로 반영한다. 본 2비트 가산기(150) 역시 CRT모드 지원을 위해 두 개의 2비트 가산기로 구성되며 그 동작은 상기 기술한 바와 같다.After completing the second
모든 라운드 반복 수행을 마친 후, SUM과 CARRY형태인 캐리 저장형태로 분리되어 있는 결과값을 최종 결과값으로 변환하기 위해 비트 크기의 가산기(180)가 사용된다. 본 가산기는 성능/면적의 조건에 따라 임의 비트 단위로 덧셈을 수행할 수 있다. 최하위 비트 위치의 비트부터 덧셈 연산이 수행되며, 약 싸이클 후에 n비트 CARRY와 SUM의 덧셈이 완료되면 최종 연산 결과값인 (여기서 )이 출력된다.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
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.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)
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)
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)
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 |
-
2006
- 2006-08-25 KR KR1020060081241A patent/KR100836737B1/en active IP Right Grant
Patent Citations (1)
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 |