KR100322740B1 - Modular computing apparatus and method thereof - Google Patents

Modular computing apparatus and method thereof Download PDF

Info

Publication number
KR100322740B1
KR100322740B1 KR1019980027865A KR19980027865A KR100322740B1 KR 100322740 B1 KR100322740 B1 KR 100322740B1 KR 1019980027865 A KR1019980027865 A KR 1019980027865A KR 19980027865 A KR19980027865 A KR 19980027865A KR 100322740 B1 KR100322740 B1 KR 100322740B1
Authority
KR
South Korea
Prior art keywords
value
carry
bits
bit
memory means
Prior art date
Application number
KR1019980027865A
Other languages
Korean (ko)
Other versions
KR20000008153A (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 윤종용
Priority to KR1019980027865A priority Critical patent/KR100322740B1/en
Publication of KR20000008153A publication Critical patent/KR20000008153A/en
Application granted granted Critical
Publication of KR100322740B1 publication Critical patent/KR100322740B1/en

Links

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/728Methods 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 using Montgomery reduction
    • 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/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 공개키 암호화/복호화 및 디지털 서명 시스템에 사용되는 모듈러 연산장치 및 그 방법에 관한 것으로서, 본 발명에 의한 모듈러 연산장치는 A값을 입력받아 w비트 단위로 하위비트 방향으로 쉬프트하면서 최하위 w비트를 출력하는 A메모리수단; 임시값을 저장하는 S메모리수단 및 C메모리수단; 0, B·2w,…,(2w-1)·B·2w를 출력하는 B곱셈수단; 0, N,…,(2w-1)·N를 출력하는 N곱셈수단; S메모리수단과 C메모리수단의 최하위 w비트를 더한 값과 N값의 최하위 w비트를 입력받고, mi를 생성하는 mi생성기; A메모리수단의 최하위 w비트값에 의해 B곱셈수단의 출력들 중 하나의 값을 선택하는 제1선택수단; mi생성기의 출력값에 의해 N곱셈수단의 출력들 중 하나의 값을 선택하는 제2선택수단; C메모리수단, 제1선택수단 및 제2선택수단의 출력값들을 모두 더하여 S1, C1을 출력하는 제1캐리저장 덧셈기; S메모리수단의 출력과 S1, C1을 모두 더하여 S2, C2를 출력하고, S2 중 상위 k+w+1비트는 S메모리수단에 전달하고, C2 중 상위 k+w+2비트는 C메모리수단에 전달하는 제2캐리저장 덧셈기를 포함함을 특징으로 한다.The present invention relates to a modular arithmetic unit used in a public key encryption / decryption and digital signature system and a method thereof, and a modular arithmetic unit according to the present invention receives an A value and shifts to a lower bit direction in units of w bits, A memory means for outputting a bit; S memory means and C memory means for storing temporary values; 0, B · 2 w , ... , B multiplication means for outputting (2 w -1) B 2 w ; 0, N, ... , N multiplication means for outputting (2 w -1) N; S receives the memory means to the sum of the least significant w bits of the C value memory means and the least significant w bits of the N value, mi generator for generating a m i; First selecting means for selecting one of the outputs of the B multiplying means by the least significant bit value of the A memory means; second selecting means for selecting one of the outputs of the N multiplying means by the output value of the m i generator; A first carry storing adder for adding all the output values of the C memory means, the first selecting means, and the second selecting means to output S1 and C1; W + 1 bits of S 2 are transferred to the S memory means, and the upper k + w + 2 bits of C 2 are added to the C memory means And a second carry storing adder for transmitting the second carry storing adder.

본 발명에 의하면, 몽고메리 알고리듬을 특징을 이용하여 공개키 암호/복호 및 디지털 서명에 이용되는 모듈러 멱승 및 모듈러 곱셈 연산을 적은 클럭수 내에 효율적으로 수행할 수 있고, 그 구성이 간단하여 경제적으로 구현할 수 있다.According to the present invention, a modulo exponentiation and a modular multiplication operation used for public key encryption / decryption and digital signature can be efficiently performed within a fewer number of clocks by using the Montgomery algorithm, and its configuration is simple and economical have.

Description

모듈러 연산장치 및 그 방법Modular computing apparatus and method thereof

본 발명은 모듈러 연산장치에 관한 것으로서, 특히 공개키 암호화/복호화 및 디지털 서명 시스템에 사용되는 모듈러 연산장치 및 그 방법에 관한 것이다.The present invention relates to a modular computing apparatus and, more particularly, to a modular computing apparatus and method for use in a public key encryption / decryption and digital signature system.

1976년 디피(Diffie)와 헬만(Hellman)은 수학적으로 매우 풀기 어려운 문제의 일방성을 이용한 공개키 암호시스템(Public Key Cryptosystem)의 개념을 처음으로 소개하여 현대 암호학의 새로운 전기를 마련하였다. 기존의 관용(대칭형) 암호시스템(conventional or symmetric cryptosystem)에서는 통신하고자 하는 두 사용자가 동일한 비밀키를 공유하여야 하므로 키관리가 어렵고, 디지털 서명(digital signature)을 구현하기 어렵다는 등의 단점이 있었다. 그런데, 공개키 암호시스템에서는 수학적으로 풀기 어려운 문제의 일방성을 이용하여 공개키와 비밀키를 계산하고, 공개키는 누구나 이용할 수 있게 공개하며 비밀키만 각 사용자가 보관하게 된다. 따라서, 공개된 상대방의 공개키를 가진 사용자는 누구나 그 상대방과 비밀통신을 할 수 있게 된다.In 1976 Diffie and Hellman introduced a new concept of modern cryptography by introducing the concept of a public key cryptosystem using mathematically unstable problem solving. In conventional conventional or symmetric cryptosystem, there are disadvantages such as difficulty in key management and difficulty in implementing digital signature since two users to communicate should share the same secret key. In the public key cryptosystem, the public key and the secret key are computed using the unity of the problem which is difficult to solve mathematically. The public key is disclosed to the public and only the private key is kept by each user. Therefore, anyone with the public key of the disclosed party can communicate secretly with the other party.

공개키 암호시스템에서 가장 널리 이용되는 어려운 문제로는 이산대수 문제(Discrete Logarithm Problem)와 소인수분해 문제가 있다. 대표적인 공개키 암호시스템으로는 이산대수 문제에 근거한 엘가말(ElGamal)형의 암호시스템과 소인수분해 문제에 근거한 알.에스.에이(Revest Shamir Adleman : 이하 RSA라 한다) 암호시스템이 있다. 표준으로 채택된 것도 국제표준으로는 ISO(the International Organization for Standardization:국제표준기구)/IEC(the International Electrotechnical Commission:국제전자기술위원회) 9796, 엘가말형의 변형인 미국의 DSA, 러시아의 GOST 등이 있으며, 한국에서는 KC-DSA가 있다.The most widely used problems in public key cryptosystems are the discrete logarithm problem and the factorization problem. A typical public key cryptosystem is the ElGamal cryptosystem based on the discrete algebra problem and the Revest Shamir Adleman (RSA) cryptosystem based on the factorization problem. The standard adopted by the international standard is ISO (International Organization for Standardization) / IEC (International Electrotechnical Commission) 9796, Elgamese variant of US DSA, Russian GOST, etc. And KC-DSA in Korea.

한편, 디지털 서명은 정보를 전자적으로 교환할 때 전자적 문서에 종래 종이에 자필 서명한 기능을 제공할 수 있도록 하는 기술이다.On the other hand, a digital signature is a technique that allows electronic documents to provide a function of handwritten signature on a conventional paper when electronic information is exchanged.

이러한 공개키 암호시스템들 및 디지털 서명 시스템은 대부분 모듈러 멱승(modular exponentiation: memod N) 연산을 필요로 하고, 이 모듈러 멱승 연산을 위해서는 모듈러 곱셈 (AB mod N)을 반복적으로 수행하는 것이 반드시 필요하다. 모듈러 곱셈을 위한 알고리듬으로는 고전적인 알고리듬, 바레트(Barret)의 알고리듬, 그리고 몽고메리(Montgomery) 알고리듬 등이 제안되어 있다.The public key cryptosystem and the digital signature system is mostly modular exponentiation (modular exponentiation: m e mod N ) is necessarily requiring calculation, and repeatedly performs a modular multiplication (AB mod N) to the modular exponentiation Do. A classical algorithm, Barret's algorithm, and Montgomery algorithm are proposed for modular multiplication.

상기 고전적인 알고리듬은 보통 연필로 나눗셈을 하여 나머지를 구하듯이 한자리씩 몫을 추정하여 나머지를 구하는 과정을 반복함으로써 모듈러 감소를 하는 방법이다. 이는 법 M에 대한 제약이 없으며 사전(事前) 계산이나 사후(事後) 계산이 필요하지 않으므로 어느 경우에나 적용될 수 있는 가장 일반적인 모듈러 감소 알고리듬이다. 그러나, 몫을 추정하는 과정에서 (곱셈에 비해 속도가 느린) 나눗셈이 필요하고 추정된 몫이 정확한 값이 아닌 경우 추가적인 덧셈이나 뺄셈이 필요하므로 비교적 속도가 느린 편이다.The classical algorithm is a method of reducing the modulus by repeating the process of estimating the quotient by one digit as in the case of calculating the remainder by dividing by a pencil. This is the most common modular reduction algorithm that can be applied in any case since there is no restriction on law M and no pre- or post-calculations are required. However, in estimating the quotient (slower than multiplication) division is required and the estimated quotient is not accurate, it is relatively slow because it requires additional addition or subtraction.

바레트 알고리듬은 고정된 법에 대한 사전계산값을 이용하여 전체 몫을 한꺼번에 추정하여 곱셈만으로 모듈러 감소를 수행한다. 이는 법 M이 고정되어 있는 경우 또는 같은 법에 대해 많은 수의 모듈러 곱셈이 필요한 모듈러 멱승 연산시 고전적인 알고리듬에 비해 좀 더 나은 성능을 보여준다.The Barrett algorithm estimates the entire quotient at once using the pre-computed values for the fixed method, and performs the modular reduction only by the multiplication. This shows better performance than the classical algorithm in modular exponentiation where the law M is fixed or a large number of modular multiplications are required for the same law.

몽고메리 알고리듬은 수체제의 변환을 통해 나눗셈없이 나머지를 구하는 알고리듬으로서 다른 알고리듬에 비해 속도가 빠르므로 모듈러 멱승이 필요한 공개키 암호시스템의 구현시 가장 널리 이용된다. 즉 주어진 수들을 곱셈만으로 모듈러 감소를 할 수 있는 다은 수체제로 변환하여 거기서 모듈러 감소시킨 후 이를 다시 원래의 수체제로 역변환시켜 원하는 결과를 얻게 된다. 대부분의 공개키 암호시스템에서 요구되는 모듈러 멱승의 연산시는 이러한 사전/사후 계산은 전체의 수행속도에 거의 영향을 미치지 못하므로 이 알고리듬은 전체적으로 다른 알고리듬에 비해 매우 좋은 성능을 보여준다.The Montgomery algorithm is the most widely used public key cryptosystem which requires modular exponentiation because it is faster than other algorithms. In other words, the given numbers are transformed into a multi-modal system which can reduce modularity only by multiplication, modularly reduced there, and then converted back to the original modular system to obtain desired results. Since most of the public key cryptosystems require a modular exponentiation operation, this pre / post computation has little effect on the overall execution speed.

본 발명은 몽고메리 알고리듬을 특징을 이용하여 공개키 암호/복호 및 디지털 서명에 이용되는 모듈러 멱승 및 모듈러 곱셈 연산을 적은 클럭수 내에 효율적으로 수행할 수 있고, 그 구성이 간단한 모듈러 연산장치 및 그 방법을 제공함을 그 목적으로 한다.The present invention can efficiently perform a modular exponentiation and a modular multiplication operation used for public key encryption / decryption and digital signature in a small number of clocks using the Montgomery algorithm, The purpose is to provide.

도 1은 본 발명에 의한 모듈러 연산장치의 구성을 도시한 블록도이다.1 is a block diagram showing a configuration of a modular arithmetic unit according to the present invention.

도 2는 도 1에 도시된 제1캐리저장 덧셈기 및 제2캐리저장 덧셈기의 블록구성도이다.FIG. 2 is a block diagram of the first carry save adder and the second carry save adder shown in FIG. 1. FIG.

상기의 목적을 달성하기 위하여, 본 발명에 의한 모듈러 연산을 계산하는 장치는 k비트의 저장용량을 지니고, 상기 A값을 입력받아 매 클럭마다 w비트 단위로 하위비트 방향으로 쉬프트하면서 최하위 w비트를 출력하는 A메모리수단; (k+w+1)비트의 저장용량을 지니고, 최하위 w비트를 출력하는 S메모리수단; (k+w+2)비트의 저장용량을 지니고, 최하위 w비트를 출력하는 C메모리수단; 상기 B값을 입력받고, 0, B·2w,…,(2w-1)·B·2w를 계산한 2w개의 값들을 출력하는 B곱셈수단; 상기 N값을 입력받고, 0, N,…,(2w-1)·N를 계산한 2w개의 값들을 출력하는 N곱셈수단; 매 클럭마다 상기 S메모리수단과 C메모리수단의 최하위 w비트를 더한 값 ti와 상기 N값의 최하위 w비트인 N0을 입력받고,에 의해 mi를 생성하는 mi생성기(여기에서,); 매 클럭마다 상기 A메모리수단의 최하위 w비트값에 의해 상기 B곱셈수단의 출력 0,…,(2w-1)·B·r 중 하나의 값을 선택하는 제1선택수단; 매 클럭마다 상기 mi생성기의 출력값에 의해 상기 N곱셈수단의 출력 0,…,(2w-1)·N 중 하나의 값을 선택하는 제2선택수단; 상기 C메모리수단, 상기 제1선택수단 및 제2선택수단의 출력값들을 더하여 각 비트의 합 S1 및 각 비트의 캐리 C1을 출력하는 제1캐리저장 덧셈기; 상기 S메모리수단의 출력과 상기 제1캐리저장 덧셈기의 출력 S1, C1을 더하여 각 비트의 합 S2, 각 비트의 캐리 C2를 출력하고, 출력 S2 중 상위 k+w+1비트는 상기 S메모리수단에 전달하고, 출력 C2 중 상위 k+w+2비트는 상기 C메모리수단에 전달하는 제2캐리저장 덧셈기; 상기 S메모리수단과 C메모리수단의 최하위 w비트값을 더하여 상기 mi생성기에 전달하는 제1가산기; 및 상기 제2캐리저장 덧셈기의 출력 S2와 C2의 최하위 w비트값을 더하여 그 캐리값을 생성하는 제2가산기를 포함하고, 상기 제2가산기에 의해 생성된 캐리값은 1클럭 지연되어 상기 S1의 최하위비트로서 상기 제2캐리저장 덧셈기에 입력되고, 캐리 입력으로서 상기 제1가산기에 입력되는 것을 특징으로 한다(여기에서, k = w·s이고, k,w,s는 모두 2이상의 정수).In order to achieve the above object, the modular operation A memory means having a storage capacity of k bits and receiving the A value and shifting in the lower bit direction in units of w bits every clock and outputting the lowest w bits; S memory means having a storage capacity of (k + w + 1) bits and outputting a least significant bit w; C memory means having a storage capacity of (k + w + 2) bits and outputting the least significant bit; The B value is input, and 0, B · 2 w , ... , B multiplication means for outputting 2 w values by calculating (2 w -1) · B 2 w ; The N value is input, and 0, N, ... , N multiplication means for outputting 2 w values by calculating (2 w -1) N; Receives a value t i obtained by adding the least significant w bits of the S memory means and the C memory means and N 0 which is the least significant bit of the N value for every clock, In mi generator (here, to generate a m i by, ); The output of the B multiplying means by the lowest w bit value of the A memory means every clock, , (2 w -1) 揃 B 揃 r; The output of the N multiplication means by the output value of the m i generator for every clock, , (2 w -1) N; A first carry store adder for adding the output values of the C memory means, the first selecting means, and the second selecting means to output a sum S1 of each bit and a carry C1 of each bit; And the upper k + w + 1 bits of the output S 2 are added to the S memory means S 1 and S 2, respectively, by adding the output of the S memory means and the outputs S 1 and C 1 of the first carry storage adder to output the sum S2 of each bit and the carry C 2 of each bit, A second carry store adder for transferring the upper k + w + 2 bits of the output C2 to the C memory means; A first adder for adding the least significant bit value of the S memory means and the C memory means to the m i generator; And a second adder for adding the least significant w bit value of the outputs S2 and C2 of the second carry store adder to generate a carry value, wherein the carry value generated by the second adder is delayed by one clock, (K = w? S, where k, w, and s are both integers greater than or equal to 2) as the least significant bit and input to the second carry adder as a carry input.

상기의 다른 목적을 달성하기 위하여, 본 발명에 의한 모듈러 연산 A·B·2-kmod N 을 계산하는 방법은 (a) 임시값 S 및 C를 0으로 초기화하고, 상기 B를 이용하여 0, B·2w,…,(2w-1)·B·2w으로 구성된 테이블을 준비하고, 상기 N을 이용하여 0,…,(2w-1)·N으로 구성된 테이블을 준비하는 단계; (b) 이전 클럭에서 계산된 캐리 C1_0을 입력 캐리로 하여 S와 C의 하위 w비트를 더한 값 ti이라 하고, 상기 N의 최하위 w비트를 N0이라 할 때, 수학식 mi=ti·N0′ mod 2w, 에 의해 mi를 생성하는 단계(여기에서, N0′=-N0mod 2w ); (c) 상기 A의 최하위 w비트에 따라서 상기 0, B·2w,…,(2w-1)·B·2w으로 구성된 테이블 중 하나의 값을 선택하고, 상기 mi값에 따라서 상기 0,…,(2w-1)·N으로 구성된 테이블 중 하나의 값을 선택하는 단계; (d) 임시값 C 및 상기 (c) 단계에서 선택된 2값을 모두 캐리저장 덧셈하여 각 비트의 합 S1 및 각 비트의 캐리 C1을 생성하는 단계; (e) 임시값 S 및 상기 S1, C1을 모두 캐리저장 덧셈하여 각 비트의 합 S2 및 각 비트의 캐리 C2을 생성하는 단계; (f) S2, C2의 최하위 w비트를 더할 때 생성되는 캐리를 C1_0으로 두고, S2, C2의 최하위 w비트를 제외한 값을 각각 새로운 S와 C로 두는 단계; (g) A를 하위비트 측으로 w비트 만큼 쉬프트하면서 상기 (b) 단계 내지 상기 (f) 단계를 (s+1)번 반복수행하는 단계; 및 (h) S와 C를 더하여 T로 두고, T가 N보다 크면 T에서 N을 뺀 값을 모듈러 연산 결과값으로 두는 단계를 포함함을 특징으로 한다(여기에서, A, B, N이 각각 k비트의 값이라 할 때, k = w·s이고, w,s는 모두 2이상의 정수).In order to achieve the above other objects, A · B · 2 -k mod N (A) temporary values S and C are initialized to 0, and 0, B · 2 w , , (2 w -1) · B · 2 w is prepared, and a table composed of 0, , (2 w -1) N; (b) Assuming that the carry C 1 _ 0 calculated from the previous clock is an input carry and is a value t i obtained by adding the lower w bits of S and C, and the least significant bit of N is N 0 , m i = t i N 0 'mod 2 w, Gt; mi < / RTI > by < N 0 '= -N 0 mod 2 w ); (c) the 0, B, 2 w , ..., , (2 w -1) · B · select the value of one of the table consisting of a 2 w, the 0, according to the value m i, and ... , (2 w -1) N; selecting a value of one of the tables; (d) generating a sum S1 of each bit and a carry C1 of each bit by carrying out addition and subtraction of the temporary value C and the two values selected in the step (c); (e) carries out addition and subtraction of both the temporary value S and the S1 and C1 to generate a sum S2 of each bit and a carry C2 of each bit; (f) S2, placing with the generated carry is added when the least significant w bits of the C2 to C1_ 0, a value other than the least significant w bits of the S2, C2 to each of the new S and C; (g) repeating the steps (b) to (f) by (s + 1) times while shifting A by w bits to the lower bit side; And (h) adding S and C to T, and if T is greater than N, subtracting N from T, as a result of modular operation, wherein A, B, and N are k is a value of k bits, k = w s, and w and s are both an integer of 2 or more).

본 발명은 각각 k비트인 수In the present invention,

에 대하여 몽고메리 알고리듬을 이용하여 A·B mod N을 효율적으로 구현하기 위한 것이다. 이때, A,B,N은 각각으로 나타낼 수 있는 큰 수이고, w비트인 워드 s개로 나타낼 수 있다(여기에서, k=s·w, r=2w). 몽고메리 알고리듬에 의하면 T = A·B·R-1mod N은 다음과 같이 표현될 수 있다(단, R=rs).And to implement A · B mod N efficiently using the Montgomery algorithm. At this time, A, B, and N are (Where k = s 占,, r = 2 w ), which is a large number that can be represented by? According to Montgomery's algorithm, T = A · B · R -1 mod N can be expressed as follows (where R = r s ).

여기서 mi는 i번째 임시값의 최하위워드값인 ti에 의해서 결정되는데, 이것은 조합회로를 이용해서 구성할 수 있다. 즉,,을 만족하도록 조합회로를 구성한다(여기에서 N0는 N의 최하위워드이다). 이때, 워드의 크기가 커질수록 조합회로의 깊이가 깊어져 신호의 전파 지연시간이 길어지게 된다. 예를들어, 워드가 2비트로 구성되었을 때, mi는 다음의 표 1을 바탕으로 조합회로를 구성할 수 있다.Where m i is determined by the least significant word value of the i th temporary value, t i , which can be constructed using a combination circuit. In other words, , (Where N 0 is the least significant word of N). At this time, as the size of the word increases, the depth of the combinational circuit becomes deeper and the propagation delay time of the signal becomes longer. For example, when a word is composed of two bits, m i can form a combining circuit based on Table 1 below.

이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will now be described in detail with reference to the accompanying drawings.

수학식 1에 의하여 T = A·B·R-1mod N을 계산하기 위한 회로를 도 1과 같이 구성할 수 있다.A circuit for calculating T = A 占 · R- 1 mod N according to Equation 1 can be constructed as shown in Fig.

A메모리수단(10), B메모리수단(12) 및 N메모리수단(14)은 각각 k비트의 레지스터 또는 유사한 형태의 메모리로 구현되며, A·B·2-kmod N을 계산하기 위한 A, B, N을 저장한다. A메모리수단(10)은 매 클럭마다 하위비트 측으로 한 워드 단위, 즉 w비트 단위로 이동시키는 쉬프트 레지스터이다(메모리인 경우에는 한 워드 단위로 값을 읽어들인다).A memory means (10), B the memory means 12 and the N memory means (14) are implemented each in the form of a register or similar memory in k-bit, A to calculate A · B · 2 -k mod N , B, and N are stored. The A memory means 10 is a shift register for shifting by one word unit, that is, w bit unit, to the lower bit side every clock (in the case of a memory, the value is read in one word unit).

B곱셈부(20)는 B메모리수단(12)로부터 B를 입력받아 0,…,(2w-1)·B·r을 계산하여 테이블 형태로 관리한다. 그리고, N곱셈기(22)는 N메모리수단(14)로부터 N을 입력받아 0,…,(2w-1)·N을 계산하여 테이블 형태로 관리한다.B multiplier 20 receives B from B memory means 12, , (2 w -1) · B · r are calculated and managed in the form of a table. The N multiplier 22 receives N from the N memory means 14, , (2 w -1) · N are calculated and managed in the form of a table.

S메모리수단(16)과 C메모리수단(18)은 각각 k+w+2비트의 레지스터 또는 유사한 형태의 메모리로 구현되며, 매 클럭마다의 계산 과정에서 생성된 최신의 임시값을 저장한다. 도 1의 aw-1…a0, Sw-1…S0, Cw-1…C0는 각각 A메모리수단(10), S메모리수단(18) 및 C메모리수단(16)의 최하위워드(Least Significant Word : 이하 LSW라 한다)를 표시한 것이다.The S memory means 16 and the C memory means 18 are each implemented by a register of k + w + 2 bits or a similar type of memory, and store the latest temporary value generated in the calculation for each clock. 1 w-1 ... a 0 , S w-1 ... S 0 , C w-1 ... C 0 represent the Least Significant Word (LSW) of the A memory means 10, the S memory means 18 and the C memory means 16, respectively.

mi생성기(28)는 매 클럭마다 S메모리수단(16)과 C메모리수단(18)의 최하위워드값을 더한 값과 N0에 의해 mi를 생성하는 조합회로이다.The mi generator 28 is a combinational circuit that generates m i by N 0 and a value obtained by adding the S word memory means 16 and the least significant word value of the C memory means 18 every clock.

제1멀티플렉서(26)은 매 클럭마다 A메모리수단의 최하위워드값에 의해 B곱셈부(20)로부터 0,…,(2w-1)·B·r 중 하나의 값을 선택한다. 그리고, 제2멀티플렉서(28)는 mi생성기(24)의 출력값에 의해 N곱셈부(22)로부터 0,…,(2w-1)·N 중 하나의 값을 선택한다.The first multiplexer 26 outputs, from the B multiplier 20, 0, ..., , (2 w -1) · B · r is selected. The second multiplexer 28 receives 0, ..., N from the N multiplier 22 according to the output value of the m i generator 24, , (2 w -1) · N.

도 1의 제1캐리저장덧셈기(30) 및 제2캐리저장덧셈기(32)는 각각 세 개의 입력을 받아서 캐리와 그 합을 출력한다. 비트 크기가 큰 수의 덧셈의 경우에는 덧셈 시 발생하는 캐리의 전파 시간이 문제가 된다. 더구나, RSA의 멱승과 같은 응용에서 많은 곱셈은 덧셈의 연속이므로 고속의 덧셈기는 중요한 요소이다. 본 발명에서는 덧셈을 수행할 때 임의의 k비트의 수를 입력으로 하여 1개의 전가산기 만큼의 전파지연시간을 갖는 캐리저장 덧셈기를 채용하고 있다.The first carry store adder 30 and the second carry store adder 32 of FIG. 1 receive three inputs, respectively, and output a carry and its sum. In the case of addition of a large number of bits, the propagation time of the carry occurring in the addition becomes a problem. Moreover, in applications such as the RSA exponentiation, many multiplications are successive additions, so fast adders are an important factor. The present invention adopts a carry storage adder having a propagation delay time equal to one full adder by taking the number of arbitrary k bits as input when performing addition.

도 2에 의하면, 캐리저장 덧셈기는 다음 두 수식Ci+1=AiBi+BiCi+CiAi에 의해 구성할 수 있는데, 이는 입력 비트 수 만큼의 전가산기(Full Adder)를 사용하여 구현할 수 있다. 본 발명은 이 캐리저장 덧셈기를 사용함으로써 크리티컬 패스(critical path)의 전파지연(propagation delay)을 현저히 줄여서 프로세서의 클럭 속도를 높이고, 입력을 새로 표현해야 하는 번거로움이 없앴다.Referring to FIG. 2, the carry store adder is represented by the following two equations C i + 1 = A i B i + B i C i + C i A i , which can be implemented using a full adder as many as the number of input bits. By using this carry storage adder, the propagation delay of the critical path is significantly reduced, thereby increasing the clock speed of the processor and eliminating the need to newly express the input.

다시, 도 3에 의하면 제2캐리저장 덧셈기(32)의 C2출력은 k+2w+2비트이고, S2출력은 k+2w+1비트인데, 이들 출력 S2와 C2의 LSW의 합은 항상 0이다. 그리고, 이 값은 중간에 필요하지 않은 값이므로, 임시값을 저장하는 S메모리수단(18) 및 C메모리수단(16)의 입력단에는 각각 제2캐리저장 덧셈기(32) 출력 S2와 C2의 LSW를 제외한 k+w+1 및 k+w+2비트가 각각 입력된다.3, the C2 output of the second carry adder 32 is k + 2w + 2 bits and the S2 output is k + 2w + 1 bits, the sum of the LSWs of these outputs S2 and C2 is always zero . Therefore, the LSWs of the outputs S2 and C2 of the second carry storing adder 32 are inputted to the input terminals of the S memory means 18 and the C memory means 16 for storing temporary values, respectively, Except that k + w + 1 and k + w + 2 bits are input.

제1가산기(34)는 S메모리수단(16)과 C메모리수단(18)의 최하위워드값을 더하여 mi생성기(24)에 전달한다. 제2가산기(36)는 제2캐리저장 덧셈기(32) 출력 S2와 C2의 LSW를 더하여 그 캐리값을 출력한다. 이 캐리값은 D플립플롭(38)에 의해 1클럭 지연되어 S1의 최하위비트로서 제2캐리저장 덧셈기(32)에 입력되고, 캐리값 C1_0로서 제1가산기(34)에 입력된다.The first adder 34 adds the least significant word value of the S memory means 16 and the C memory means 18 and transfers it to the m i generator 24. The second adder 36 adds the LSWs of the outputs S2 and C2 of the second carry store adder 32 and outputs the carry value. The carry value is input to the D flip-flop 38, the first adder 34 is 1 clock delay as the least significant bits of S1 being input to the second carry save adder 32, a carry value by the C1_ 0.

이하에서 본 발명의 동작과정을 도 1을 이용하여 설명한다.Hereinafter, the operation of the present invention will be described with reference to FIG.

본 발명에서 중요한 점은 각각 k비트인 A, B, N을 입력으로 받아서 s+1 클럭만에 (A·B·2-kmod N)을 계산하는데 있다. (A·B·2-kmod N)을 계산하는 과정을 설명하면 다음과 같다.The important point in the present invention is to calculate (A · B · 2 -k mod N) at s + 1 clocks by receiving k bits A, B and N, respectively. (A · B · 2 -k mod N) is described as follows.

a) 먼저 초기화 단계로서 k비트인 A,B,N을 각각의 레지스터 혹은 메모리에 저장한다. 임시값을 저장하는 S메모리수단(18)과 C메모리수단(16)은 0으로 초기화시킨다.a) First, initialize k bits A, B, N in each register or memory. The S memory means 18 for storing the temporary value and the C memory means 16 are initialized to zero.

b) 이전 클럭에서 계산된 제2캐리저장덧셈기(32)의 출력인 S2, C2의 하위 w비트를 더할 때 생성되는 캐리 C1_0을 입력 캐리로 하여 S메모리수단(18)과 C메모리수단(16)의 하위 w비트를 더한 결과에 의해서 mi를 결정한다.b) before the clock of the second carry save adder 32, the output of S2, when added to the lower w bits of the C2 produced which carry C1_ 0 to the input carry to S memory means 18 and the C memory means of calculation (16 ) ≪ / RTI > plus the lower w bits of < RTI ID = 0.0 >

c) 각각의 레지스터 또는 메모리에 모든 데이터들이 입력되었을 때, 제1멀티플렉서(26)는 aw-1…a0값에 따라서 0, B·r,…, (2w-1)B·r 중 하나, 제2멀티플렉서(28)는 mi값에 따라서 0, N,…,(2w-1)N 중 한 값을 선택한다.c) When all the data has been input into each register or memory, the first multiplexer 26 selects a w-1 ... According to a 0 value, 0, B · r, ... , (2 w -1) B · r, and the second multiplexer 28 selects one of 0, N, ... according to the value of m i . , And (2 w -1) N, respectively.

d) 제1캐리저장 덧셈기(30)는 C메모리수단(16), 제1멀티플렉서(26) 및 제2멀티플렉서(28)의 출력값들을 더하여 출력 S1, C1을 제2캐리저장 덧셈기(32)의 입력으로 한다.d) The first carry store adder 30 adds the outputs of the C memory means 16, the first multiplexer 26 and the second multiplexer 28 and adds the outputs S1 and C1 to the inputs of the second carry store adder 32 .

e) 제2캐리저장 덧셈기(32)는 S메모리수단(18)의 출력과 제1캐리저장 덧셈기(30)의 출력 S1, C1을 입력으로 하여 S2, C2를 출력으로 한다. 이때, S1의 최하위비트는 S2, C2의 하위 w비트를 더한 캐리로 구성한다.e) The second carry store adder 32 receives the outputs of the S memory means 18 and the outputs S1 and C1 of the first carry store adder 30 and outputs S2 and C2. At this time, the least significant bit of S1 is composed of a carry added by the lower w bits of S2 and C2.

f) S2, C2의 하위 w비트를 제외한 값을 각각 S메모리수단(18)과 C메모리수단(16)에 저장한다.f) stores the values excluding the lower w bits of S2 and C2 in the S memory means 18 and the C memory means 16, respectively.

g) s+1 클럭 동안에 A메모리수단(10)의 저장된 값을 하위비트 측으로 한 워드만큼 쉬프트하면서 b) 단계 내지 f) 단계를 반복 수행한다.g) shifting the stored value of the A memory means 10 by one word to the lower bit side during the (s + 1) -th clock, and repeats b) to f).

h) S메모리수단(18)과 C메모리수단(16)에 남아 있는 값들을 더한 값 T가 N보다 크면, T에서 N을 뺀 값을 T값으로 한다.h) If the value T, which is the sum of the remaining values in the S memory means 18 and the C memory means 16, is greater than N, then a value obtained by subtracting N from T is taken as T value.

본 발명에서는 레지스터 등의 메모리수단을 제외한 모든 소자는 단순한 조합회로로 구현되므로 회로의 잘못된 동작을 방지하기 위하여 연결된 조합회로의 전파지연시간을 충분히 보장하는 정도의 클럭을 제공하여야 한다.In the present invention, all the elements except the memory means such as a resistor are implemented by a simple combination circuit, so that a clock which can sufficiently guarantee the propagation delay time of the connected combination circuit should be provided in order to prevent erroneous operation of the circuit.

본 발명에 의한 모듈러 연산장치를 이용하여 모듈러 곱셈 A·B mod N을 계산하는 과정은 다음과 같다.The process of calculating the modular multiplication A · B mod N using the modular operation apparatus according to the present invention is as follows.

(1) 먼저, 미리 P = 22kmod N을 계산해 둔다.(1) First, P = 2 2k mod N is calculated in advance.

(2) 다음, 도 1에 도시된 회로를 이용하여 C = A·B·2-kmod N을 계산한다.(2) Next, C = A · B · 2 -k mod N is calculated using the circuit shown in FIG.

(3) 마지막으로, P·C·2-kmod N = A·B mod N을 계산한다.(3) Finally, calculate P · C · 2 -k mod N = A · B mod N.

본 발명에 의하면, 몽고메리 알고리듬을 특징을 이용하여 공개키 암호/복호 및 디지털 서명에 이용되는 모듈러 멱승 및 모듈러 곱셈 연산을 적은 클럭수 내에 효율적으로 수행할 수 있고, 그 구성이 간단하여 경제적으로 구현할 수 있다.According to the present invention, a modulo exponentiation and a modular multiplication operation used for public key encryption / decryption and digital signature can be efficiently performed within a fewer number of clocks by using the Montgomery algorithm, and its configuration is simple and economical have.

Claims (5)

모듈러 연산 A·B·2-kmod N 을 계산하는 장치에 있어서,Modular operation A · B · 2 -k mod N The apparatus comprising: k비트의 저장용량을 지니고, 상기 A값을 입력받아 매 클럭마다 w비트 단위로 하위비트 방향으로 쉬프트하면서 최하위 w비트를 출력하는 A메모리수단;an A memory means having a storage capacity of k bits and receiving the A value and shifting in a lower bit direction in units of w bits for every clock and outputting a lowest w bit; (k+w+1)비트의 저장용량을 지니고, 최하위 w비트를 출력하는 S메모리수단;S memory means having a storage capacity of (k + w + 1) bits and outputting a least significant bit w; (k+w+2)비트의 저장용량을 지니고, 최하위 w비트를 출력하는 C메모리수단;C memory means having a storage capacity of (k + w + 2) bits and outputting the least significant bit; 상기 B값을 입력받고, 0, B·2w,…,(2w-1)·B·2w를 계산한 2w개의 값들을 출력하는 B곱셈수단;The B value is input, and 0, B · 2 w , ... , B multiplication means for outputting 2 w values by calculating (2 w -1) · B 2 w ; 상기 N값을 입력받고, 0, N,…,(2w-1)·N를 계산한 2w개의 값들을 출력하는 N곱셈수단;The N value is input, and 0, N, ... , N multiplication means for outputting 2 w values by calculating (2 w -1) N; 매 클럭마다 상기 S메모리수단과 C메모리수단의 최하위 w비트를 더한 값 ti와 상기 N값의 최하위 w비트인 N0을 입력받고, mi=ti·N0′ mod 2w, 에 의해 mi를 생성하는 mi생성기(여기에서, N0′=-N0mod 2w );Receives a value t i obtained by adding the least significant w bits of the S memory means and the C memory means and N 0 which is the least significant bit of the N value for every clock, m i = t i N 0 'mod 2 w, In mi generator (here, to generate a m i by, N 0 '= -N 0 mod 2 w ); 매 클럭마다 상기 A메모리수단의 최하위 w비트값에 의해 상기 B곱셈수단의 출력 0,…,(2w-1)·B·r 중 하나의 값을 선택하는 제1선택수단;The output of the B multiplying means by the lowest w bit value of the A memory means every clock, , (2 w -1) 揃 B 揃 r; 매 클럭마다 상기 mi생성기의 출력값에 의해 상기 N곱셈수단의 출력 0,…,(2w-1)·N 중 하나의 값을 선택하는 제2선택수단;The output of the N multiplication means by the output value of the m i generator for every clock, , (2 w -1) N; 상기 C메모리수단, 상기 제1선택수단 및 제2선택수단의 출력값들을 모두 더하여 각 비트의 합 S1 및 각 비트의 캐리 C1을 출력하는 제1캐리저장 덧셈기;A first carry store adder for adding all the output values of the C memory means, the first selecting means, and the second selecting means to output a sum S1 of each bit and a carry C1 of each bit; 상기 S메모리수단의 출력과 상기 제1캐리저장 덧셈기의 출력 S1, C1을 모두 더하여 각 비트의 합 S2, 각 비트의 캐리 C2를 출력하고, 출력 S2 중 상위 k+w+1비트는 상기 S메모리수단에 전달하고, 출력 C2 중 상위 k+w+2비트는 상기 C메모리수단에 전달하는 제2캐리저장 덧셈기;And the upper k + w + 1 bits of the output S 2 are added to the S memory 22, and the sum of the outputs S 1 and C 1 of the first carry storing adder is summed to output the sum S2 of each bit and the carry C 2 of each bit, A second carry store adder for transferring the upper k + w + 2 bits of the output C2 to the C memory means; 상기 S메모리수단과 C메모리수단의 최하위 w비트값을 더하여 상기 mi생성기에 전달하는 제1가산기; 및A first adder for adding the least significant bit value of the S memory means and the C memory means to the m i generator; And 상기 제2캐리저장 덧셈기의 출력 S2와 C2의 최하위 w비트값을 더하여 그 캐리값을 생성하는 제2가산기를 포함하고, 상기 제2가산기에 의해 생성된 캐리값은 1클럭 지연되어 상기 S1의 최하위비트로서 상기 제2캐리저장 덧셈기에 입력되고, 캐리 입력으로서 상기 제1가산기에 입력되는 것을 특징으로 하는 모듈러 연산장치(여기에서, k = w·s이고, k,w,s는 모두 2이상의 정수).And a second adder for adding the least significant w bit value of the outputs S2 and C2 of the second carry store adder to generate a carry value of the second carry adder, wherein the carry value generated by the second adder is delayed by one clock, Wherein k = w s and k, w, s are all integers greater than or equal to 2, and wherein the first carry adder is provided as a carry input to the second carry adder, ). 제1항에 있어서, 상기 B곱셈수단 및 상기 N곱셈수단은 각각2. The apparatus of claim 1, wherein the B multiplying means and the N multiplying means are 각각 출력값을 미리 계산하여 저장한 테이블 형식의 메모리수단을 구비함을 특징으로 하는 모듈러 연산장치.And a memory means of a table format in which the output values are calculated in advance and stored. 제1항에 있어서, 상기 제1선택수단 및 상기 제2선택수단은 각각2. The apparatus according to claim 1, wherein the first selecting means and the second selecting means are 멀티플렉서임을 특징으로 하는 모듈러 연산장치.Multiplexer. 제1항에 있어서,The method according to claim 1, 상기 제2가산기에 의해 생성된 캐리값은 1클럭 지연시키기 위한 D플립플롭을 더 포함함을 특징으로 하는 모듈러 연산장치.And a D flip-flop for delaying the carry value generated by the second adder by one clock. 모듈러 연산 A·B·2-kmod N 을 계산하는 방법에 있어서,Modular operation A · B · 2 -k mod N A method according to claim 1, (a) 임시값 S 및 C를 0으로 초기화하고, 상기 B를 이용하여 0, B·2w,…,(2w-1)·B·2w으로 구성된 테이블을 준비하고, 상기 N을 이용하여 0,…,(2w-1)·N으로 구성된 테이블을 준비하는 단계;(a) initialize temporary values S and C to 0, and use 0, B, 2 w , ... , (2 w -1) · B · 2 w is prepared, and a table composed of 0, , (2 w -1) N; (b) 이전 클럭에서 계산된 캐리 C1_0을 입력 캐리로 하여 S와 C의 하위 w비트를 더한 값 ti이라 하고, 상기 N의 최하위 w비트를 N0이라 할 때, 수학식 mi=ti·N0′ mod 2w, 에 의해 mi를 생성하는 단계(여기에서, N0′=-N0mod 2w );(b) Assuming that the carry C 1 _ 0 calculated from the previous clock is an input carry and is a value t i obtained by adding the lower w bits of S and C, and the least significant bit of N is N 0 , m i = t i N 0 'mod 2 w, Gt; mi < / RTI > by < N 0 '= -N 0 mod 2 w ); (c) 상기 A의 최하위 w비트에 따라서 상기 0, B·2w,…,(2w-1)·B·2w으로 구성된 테이블 중 하나의 값을 선택하고, 상기 mi값에 따라서 상기 0,…,(2w-1)·N으로 구성된 테이블 중 하나의 값을 선택하는 단계;(c) the 0, B, 2 w , ..., , (2 w -1) · B · select the value of one of the table consisting of a 2 w, the 0, according to the value m i, and ... , (2 w -1) N; selecting a value of one of the tables; (d) 임시값 C 및 상기 (c) 단계에서 선택된 2값을 모두 캐리저장 덧셈하여 각 비트의 합 S1 및 각 비트의 캐리 C1을 생성하는 단계;(d) generating a sum S1 of each bit and a carry C1 of each bit by carrying out addition and subtraction of the temporary value C and the two values selected in the step (c); (e) 임시값 S 및 상기 S1, C1을 모두 캐리저장 덧셈하여 각 비트의 합 S2 및 각 비트의 캐리 C2을 생성하는 단계;(e) carries out addition and subtraction of both the temporary value S and the S1 and C1 to generate a sum S2 of each bit and a carry C2 of each bit; (f) S2, C2의 최하위 w비트를 더할 때 생성되는 캐리를 C1_0으로 두고, S2, C2의 최하위 w비트를 제외한 값을 각각 새로운 S와 C로 두는 단계;(f) S2, placing with the generated carry is added when the least significant w bits of the C2 to C1_ 0, a value other than the least significant w bits of the S2, C2 to each of the new S and C; (g) A를 하위비트 측으로 w비트 만큼 쉬프트하면서 상기 (b) 단계 내지 상기 (f) 단계를 (s+1)번 반복수행하는 단계; 및(g) repeating the steps (b) to (f) by (s + 1) times while shifting A by w bits to the lower bit side; And (h) S와 C를 더하여 T로 두고, T가 N보다 크면 T에서 N을 뺀 값을 모듈러 연산 결과값으로 두는 단계를 포함함을 특징으로 하는 모듈러 연산방법(여기에서, A, B, N이 각각 k비트의 값이라 할 때, k = w·s이고, w,s는 모두 2이상의 정수).(h) adding S and C to T, and if T is greater than N, subtracting N from T, as a result of the modular arithmetic operation, wherein A, B, N Is a value of k bits, k = w s, and w and s are both an integer of 2 or more).
KR1019980027865A 1998-07-10 1998-07-10 Modular computing apparatus and method thereof KR100322740B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980027865A KR100322740B1 (en) 1998-07-10 1998-07-10 Modular computing apparatus and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980027865A KR100322740B1 (en) 1998-07-10 1998-07-10 Modular computing apparatus and method thereof

Publications (2)

Publication Number Publication Date
KR20000008153A KR20000008153A (en) 2000-02-07
KR100322740B1 true KR100322740B1 (en) 2002-03-08

Family

ID=19543738

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980027865A KR100322740B1 (en) 1998-07-10 1998-07-10 Modular computing apparatus and method thereof

Country Status (1)

Country Link
KR (1) KR100322740B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100413947B1 (en) * 2001-07-07 2004-01-07 주홍정보통신주식회사 RSA cipher device using modular exponentiation algorithm
KR100449491B1 (en) * 2001-12-11 2004-09-21 한국전자통신연구원 Modular multiply apparatus
JP4408712B2 (en) * 2004-01-26 2010-02-03 富士通マイクロエレクトロニクス株式会社 Multi-precision data product-sum operation processing circuit and Montgomery product-sum operation circuit
KR100617384B1 (en) * 2004-09-24 2006-08-31 광주과학기술원 Montgomery Multiplier for RSA Security Module

Also Published As

Publication number Publication date
KR20000008153A (en) 2000-02-07

Similar Documents

Publication Publication Date Title
Kaliski The Montgomery inverse and its applications
US8504602B2 (en) Modular multiplication processing apparatus
JP4955182B2 (en) Integer calculation field range extension
JP4554239B2 (en) Montgomery type modular multiplication apparatus and method
KR100591761B1 (en) Montgomery Modular Multiplication Method Using Montgomery Modular Multiplier and Carry Store Addition
US5121429A (en) Digital signal processing
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
US20080114820A1 (en) Apparatus and method for high-speed modulo multiplication and division
US7412474B2 (en) Montgomery modular multiplier using a compressor and multiplication method
KR100508092B1 (en) Modular multiplication circuit with low power
Sakiyama et al. Reconfigurable modular arithmetic logic unit for high-performance public-key cryptosystems
KR100322740B1 (en) Modular computing apparatus and method thereof
Kong Optimizing the improved Barrett modular multipliers for public-key cryptography
KR100486697B1 (en) Modular arithmetic apparatus and method thereof
KR100480997B1 (en) APPARATUS OF FIELD MULTIPLICATION OVER GF(p) AND GF(2^m)
JPH11143688A (en) Arithmetic lint rsa crypto graphic device and elliptic cryptographic device lising the unit
WO2023043467A1 (en) A method and architecture for performing modular addition and multiplication sequences
Knežević et al. Speeding up bipartite modular multiplication
KR100946256B1 (en) Scalable Dual-Field Montgomery Multiplier On Dual Field Using Multi-Precision Carry Save Adder
KR100297110B1 (en) Modular multiplier
Subudhi et al. Implementation of vedic divider on RSA cryptosystem
Poomagal et al. Modular multiplication algorithm in cryptographic processor: A review and future directions
Laracy An RSA Co-processor Architecture Suitable for a User-Parameterized FPGA Implementation
Nibouche et al. New iterative algorithms and architectures of modular multiplication for cryptography
KR100400210B1 (en) Modular multiplication device for digital signature

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: 20090112

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee