KR19980065477A - Modular Multipliers for Digital Signatures - Google Patents

Modular Multipliers for Digital Signatures Download PDF

Info

Publication number
KR19980065477A
KR19980065477A KR1019970000500A KR19970000500A KR19980065477A KR 19980065477 A KR19980065477 A KR 19980065477A KR 1019970000500 A KR1019970000500 A KR 1019970000500A KR 19970000500 A KR19970000500 A KR 19970000500A KR 19980065477 A KR19980065477 A KR 19980065477A
Authority
KR
South Korea
Prior art keywords
mod
register
adder
output
nand
Prior art date
Application number
KR1019970000500A
Other languages
Korean (ko)
Other versions
KR100400210B1 (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 KR1019970000500A priority Critical patent/KR100400210B1/en
Publication of KR19980065477A publication Critical patent/KR19980065477A/en
Application granted granted Critical
Publication of KR100400210B1 publication Critical patent/KR100400210B1/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/722Modular multiplication
    • 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
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00733Cryptography or similar special procedures in a franking system
    • G07B2017/00741Cryptography or similar special procedures in a franking system using specific cryptographic algorithms or functions
    • G07B2017/00758Asymmetric, public-key algorithms, e.g. RSA, Elgamal
    • G07B2017/00766Digital signature, e.g. DSA, DSS, ECDSA, ESIGN

Landscapes

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

Abstract

본 발명은 디지털 서명을 위한 모듈라 곱셈 장치에 관한 것으로, P=22nmod N 계산부; T=A·B·2-nmod N 계산부; 및 상기 P와 T를 입력으로하여 P·T·2-nmod N = A·B mod N을 계산하는 계산부를 포함한다.The present invention relates to a modular multiplication apparatus for digital signature, comprising: P = 2 2n mod N calculator; T = A · B · 2 −n mod N calculation unit; And a calculation unit for calculating P · T · 2 −n mod N = A · B mod N by inputting P and T.

본 발명에 의하면, 상기 디지털 서명을 위한 모듈라 곱셈 장치는 하드웨어적으로 A·B mod N의 계산을 빠르게 할 수 있고, 디지털 서명의 생성 및 검증을 위한 기기에 사용될 수 있는 장치로 제공될 수 있다. 또한, 아이씨(IC) 카드를 바탕으로한 전자 서명, 인증, 암/복호화의 하드웨어 장치, 또는 모듈라 곱셈을 수행하는 전자 서명기기에 의해서 암/복호화하는 기기에 사용될 수 있다.According to the present invention, the modular multiplication apparatus for the digital signature can be quickly calculated in hardware A · B mod N, can be provided as a device that can be used in the device for the generation and verification of the digital signature. It can also be used in devices that encrypt / decrypt by electronic signatures, authentication, encryption / decryption hardware devices based on IC cards, or electronic signature devices that perform modular multiplication.

Description

디지털 서명을 위한 모듈라 곱셈 장치Modular Multiplication Units for Digital Signatures

본 발명은 디지털 서명을 위한 모듈라 곱셈 장치에 관한 것으로, 특히 디지털 서명에 필요한 모듈라 곱셈을 수행하는 장치에 관한 것이다.The present invention relates to a modular multiplication apparatus for digital signatures, and more particularly, to an apparatus for performing modular multiplication necessary for digital signatures.

디지털 서명이라 함은 정보의 전자적 교환에 있어서, 종래의 종이에 손으로 직접 서명했던 기능을 전자적인 문서에서 제공할 수 있도록 하는 기술을 의미한다. 종류로는 국제 표준인 ISO(the International Organization for Standardization: 국제 표준 기구)/IEC(the International Electrotechnical Commission:국제 전자 기술 위원회) 9796, 엘가말(ElGamal)형의 변형 미국의 DSS(Digital Signiture Standard), 러시아의 고스트(GOST) 및 한국에서 표준으로 진행중인 케이시-디에스에이(KC-DSA) 등이 있다. 상기 디지털 서명들을 구현하기 위해서는 모듈라 멱승 연산이 필요하고, 상기 모듈라 멱승은 A·B·2-nmod N과 A·B mod N 의 모듈라 곱셈이 반드시 필요하다. 상기 모듈라 곱셈을 수행하기 위해서 제안된 알고리즘 가운데 몽고메리(Montgomery) 알고리즘은 계산 효율면에서 가장 효율적인 것으로 알려져 있다.Digital signature refers to a technology that enables electronic documents to provide a function of directly signing a conventional paper in electronic exchange of information. Types include the International Organization for Standardization (ISO) / the International Electrotechnical Commission (IEC) 9796, the ElGamal variant of the United States Digital Signiture Standard (DSS), Russia's Ghost (GOST) and Korea's KC-DSA (KC-DSA) are the standard. To implement the digital signatures, a modular power operation is required, and the modular power requires a modular multiplication of A · B · 2 −n mod N and A · B mod N. Among algorithms proposed for performing the modular multiplication, Montgomery algorithm is known to be the most efficient in terms of computational efficiency.

일반적으로 A·B mod N을 계산하기 위해서는 나눗셈과 A·B의 몫을 추정하는 것이 필요하지만, 몽고메리 알고리즘은 나눗셈과 몫의 추정이 필요하지 않다. 몽고메리 알고리즘은 다음과 같다.In general, in order to calculate A · B mod N, it is necessary to estimate the quotient of division and A · B, but the Montgomery algorithm does not require division and quotient estimation. The Montgomery algorithm is as follows.

각각 n비트인 수 A, B, N에 대해, A, B를 A=an-1·2n-1+····+a1·2+a0, B=bn-1·2n-1+····+b1·2+b0로 표현할 때, T=A·B·R-1mod N을 구하는 알고리즘으로 다음과 같이 나타낼 수 있다.For numbers A, B, and N, which are each n bits, A and B are A = an-1 · 2 n-1 + ··· + a1 · 2 + a0, B = bn-1 · 2 n-1 + When expressed as + b1 · 2 + b0, an algorithm for obtaining T = A · B · R −1 mod N can be expressed as follows.

T=A·B·R-1mod N=(A·B+M·N)/R 이라 할 때,When T = A · B · R −1 mod N = (A · B + M · N) / R,

M=A·B·N' mod R=mn-1·2n-1+····+m1·2+m0M = A · B · N 'mod R = mn-1 · 2 n-1 + ··· + m1 · 2 + m0

단, mi∈{0,1}, 0≤i≤n-1, R=2n, N'은 RR-1-NN'=1을 만족하는 값이다. 상기 수학식 1에 따라 T는 다음과 같이 쓸 수 있다.However, m i ∈ {0,1}, 0 ≦ in −1, R = 2 n , and N ′ are values satisfying RR −1 -NN ′ = 1. According to Equation 1, T can be written as follows.

T=(an-1·2-1+an-2·2-2+··+a1·2-n+1+a0·2-n)·BT = (an-1 · 2 −1 + an-2 · 2 −2 + · + a1 · 2 -n + 1 + a0 · 2 -n )

+(mn-1·2-1+mn-2·2-2+··+m1·2-n+1+m0·2-n)·N+ (mn-1 · 2 -1 + mn-2 · 2 -2 + · + m1 · 2 -n + 1 + m0 · 2 -n ) N

=(··((a0·B+m0·N)·2-1+a1·B+m1·N)·2-1+··+an-1·B+mn-1·N)·2-1 = (·· ((a0 · B + m0 · N) · 2 -1 + a1 · B + m1 · N) · 2 -1 + ·· + an-1 · B + mn-1 · N) · 2 - One

=(··((a0·B+m0·N+2·a1·B)·2-1+m1·N+2·a2·B)·2-1+·+mn-1·N)·2-1 ((A0 · B + m0 · N + 2 · a1 · B) · 2 −1 + m1 · N + 2 · a2 · B) · 2 −1 + · mn-1 · N) -One

단, R=2nWith R = 2 n

여기서 mi는 T의 i번째 비트값인 ti에 따라서 결정되는데, 여기서는 ti가 1이면 mi는 1, ti가 0이면 항상 mi는 0이다.Here, mi is determined according to ti, i-th bit value of T. Here, if ti is 1, mi is 1, and if ti is 0, mi is always 0.

상기한 바와 같이 몽고메리 알고리즘은 나눗셈이 필요하지 않은 효율적인 알고리즘으로서, 종래의 나눗셈, 몫 추정방법을 소프트웨어로 구현시 요구되는 많은 계산량을 줄일 수 있고, 상기 종래 방법을 하드웨어로 구현할 경우에도 많은 소자가 요구되는 단점을 보완할 수 있다. 본 발명은 상기 몽고메리 알고리즘을 하드웨어로 구현하기 위해서, 주어진 값과 임시값을 위한 몇 개의 레지스터와 간단한 논리 조합 회로만을 이용해서 빠른 모듈라 곱셈의 수행이 가능하도록 한 것이다.As described above, the Montgomery algorithm is an efficient algorithm that does not require division, and it can reduce a large amount of computation required when implementing the conventional division and quotient estimation method in software, and many elements are required even when the conventional method is implemented in hardware. It can compensate for the disadvantage. In order to implement the Montgomery algorithm in hardware, the present invention enables fast modular multiplication using only a few logical combination circuits and a few registers for given and temporary values.

본 발명은 상술한 문제점을 해결하기 위해 창출된 것으로서, 계산면에서 효율적인 몽고메리 알고리즘을 이용하여, 주어진 임시 값을 잠시 저장하기 위한 몇 개의 레지스터와 간단한 논리 조합 회로만을 이용해서 디지털 서명에 필요한 모듈라 곱셈을 수행하는 디지털 서명을 위한 모듈라 곱셈 장치를 제공함에 목적이 있다.SUMMARY OF THE INVENTION The present invention was created to solve the above-mentioned problems, using a Montgomery algorithm that is efficient in computation, and performs modular multiplication for digital signatures using only a few logical combination circuits and a few registers to temporarily store a given temporary value. It is an object of the present invention to provide a modular multiplication apparatus for performing digital signatures.

도 1은 본 발명에 따른 디지털 서명을 위한 곱셈 장치에 대한 블록도를 도시한 것이다.1 shows a block diagram of a multiplication apparatus for digital signatures in accordance with the present invention.

도 2는 모듈라 곱셈 장치를 이루는 A·B·2-nmod N을 구하는 블록에 대한 블록도를 도시한 것이다.Fig. 2 shows a block diagram of a block for obtaining A · B · 2 −n mod N constituting the modular multiplication apparatus.

도 3은 도 2의 장치에 대한 각 블록의 타이밍도를 도시한 것이다.3 shows a timing diagram of each block for the apparatus of FIG.

도 4는 도 2의 선택 가산기에 대한 장치도를 도시한 것이다.4 shows an apparatus diagram for the selective adder of FIG.

도 5는 도 4의 낸드 게이트를 도시한 것이다.FIG. 5 illustrates the NAND gate of FIG. 4.

상기 목적을 달성하기 위한 본 발명에 따른, 디지털 서명을 위한 모듈라 곱셈 장치는 P=22nmod N 계산부; T=A·B·2-nmod N 계산부; P·T·2-nmod N = A·B mod N 계산부를 포함함이 바람직하다.According to the present invention for achieving the above object, the modular multiplication device for digital signature P = 2 2n mod N calculation unit; T = A · B · 2 −n mod N calculation unit; It is preferable to include a P · T · 2 −n mod N = A · B mod N calculation unit.

상기 A·B·2-nmod N 계산부는 입력된 n 비트 수 B, N을 저장하는 레지스터; 입력된 n 비트 수 A를 저장하는 쉬프트 레지스터; 상기 T=A·B·2-nmod N의 결과를 매 클럭마다 저장하는 n+2 비트 임시 저장 레지스터; 상기 A 레지스터의 최하위비트인 a0, 상기 T 레지스터의 최하위비트인 t0, 상기 입력값 B 및 상기 입력값 N을 입력으로하고 a0t0가 11이면 2B+N, 10면 2B, 01이면 N, 00이면 0을 n+2 비트로 출력하는 선택 가산기; 및 상기 선택 가산기 출력과 상기 T 레지스터의 출력을 입력으로하여 가산하는 가산기를 구비함이 바람직하다.The A · B · 2 −n mod N calculation unit comprises: a register for storing an input number n of bits B and N; A shift register which stores the input n-bit number A; An n + 2 bit temporary storage register for storing the result of the T = A · B · 2 −n mod N at every clock; Inputs a0 which is the least significant bit of the A register, t0 which is the least significant bit of the T register, the input value B and the input value N, and if a0t0 is 11, 2B + N, 10 is 2B, 01 is N, 00 is 0 A select adder for outputting n + 2 bits; And an adder which adds the selection adder output and the output of the T register as inputs.

상기 선택 가산기는 미리 계산한 2B와 상기 N을 더하는 가산기; 상기 a0, 상기 t0의 반전된 입력 및 상기 2B를 낸드 논리 연산하는 제1 낸드 게이트; 상기 a0의 반전된 입력, 상기 t0 및 상기 N을 낸드 논리 연산하는 제 2 낸드 게이트; 상기 가산기의 출력과 상기 제1, 제2 낸드 게이트의 출력을 낸드 논리 연산하는 제3 낸드 게이트; 상기 제1, 제2 및 제3 낸드 게이트의 출력을 낸드 논리 연산하는 제4 낸드 게이트를 포함함이 바람직하다.The selection adder includes an adder that adds 2B and N previously calculated; A first NAND gate performing a NAND logic operation on the a0, the inverted input of t0 and the 2B; A second NAND gate performing a NAND logic operation on the inverted input of the a0, the t0 and the N; A third NAND gate performing NAND logic operation on the output of the adder and the outputs of the first and second NAND gates; And a fourth NAND gate performing NAND logic operation on the outputs of the first, second and third NAND gates.

이하에서 첨부된 도면을 참조하여 본 발명의 동작을 자세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail the operation of the present invention.

도 1은 본 발명에 따른 모듈라 곱셈 장치에 대한 블록도를 도시한 것으로서, 모듈라 곱셈 장치는 P=22nmod N를 계산하는 P=22nmod N 계산부(100), A, B 및 N을 입력으로하여 T=A·B·2-nmod N을 계산하는 T=A·B·2-nmod N 계산부(110), 상기 P와 T를 입력으로하여 P·T·2-nmod N=A·B mod N을 셰산하는 A·B mod N 계산부(120)로 이루어진다.Figure 1 as showing a block diagram of a modular multiplication according to the present invention, the modular multiplication device is P = 2 2n mod for calculating the N P = 2 2n mod N calculation section (100), A, B, and N entered by T = a · B · 2 -n calculating a mod N T = a · B · 2 -n mod N calculating unit 110, to the P and T as the input P · T · 2 -n mod The A · B mod N calculation unit 120 calculates N = A · B mod N.

상기 T=A·B·2-nmod N의 계산블록은 도 2에 자세히 보인 것과 같이 몇 개의 레지스터들과 간단한 논리 조합 게이트들로 구성되어 있다. A·B·2-nmod N을 계산하기 위해 입력되는 A(200), B(210), N(220)은 각각 n비트인 A,B,N을 저장하기 위한 n비트 레지스터들이다. 이 때 A는 매 클럭마다 오른쪽으로 한 비트씩 이동하는 쉬프트 레지스터이다. T(230)는 매 클럭마다 나오는 임시값을 저장해서 최신의 값으로 바꾸는 n+2비트 레지스터로서 0으로 초기화된다. 상기 가산기(250)는 선택 가산기(240)의 출력과 상기 T(230)의 출력을 입력으로하여 가산한 다음, 상기 가산결과의 최하위비트가 항상 0이고 중간 계산에 필요하지 않는 값이므로, 임시 저장 레지스터인 T(230)로 최하위 비트를 제외한 n+2 비트를 출력한다. 상기 선택 가산기(240)는 도 4에 자세하게 도시된 바와 같이, n비트 낸드 게이트(400, 410, 420, 430)와 가산기(440)로 구성되어 있다. 도 4는 상기 n비트 낸드 게이트(400, 410, 420, 430)를 자세히 도시한 것으로, 각 비트별로 낸드 논리 연산을 수행함을 보인 것이다. 상기 선택 가산기(240)는 상기 a0, t0의 값에 따라 상기 B(210)와 상기 N(220)을 입력으로하여 a0t0가 11이면 2B+N, 10이면 2B, 01이면 N, 00이면 0을 선택하여 그 결과를 출력한다. 상기 레지스터들을 제외한 회로의 오동작을 방지하기 위해서, 조합회로의 전파 지연 시간을 충분히 보장하는 정도로 클럭을 주어야한다. 도 3은 각 동작에 따른 타이밍 도를 보인 것이다. 상기 각 레지스터들에 모든 데이터가 입력되었을 때, 상기 임시 레지스터 T(230)에 저장될 값은 불안정한 값들로 변동을 보이다가 시간이 흐르면 일정한 값으로 안정을 이루게된다. 이때 값은 상기 A(200)와 상기 T(230) 레지스터의 최하위 비트에 의해 결정된다. 상기 결정된 값은 처음 클럭에 상기 T(230) 레지스터에 자신의 최하위 비트를 버린 후 n+2비트크기로 저장된다. 상기와 같은 계산을 n+1 클럭동안 반복하여 수행한다.The computation block of T = A · B · 2 −n mod N is composed of several registers and simple logic combination gates as shown in detail in FIG. A (200), B (210), and N (220) input to calculate A · B · 2 −n mod N are n bit registers for storing A, B, and N, which are n bits, respectively. A is a shift register that shifts one bit to the right every clock. T 230 is initialized to 0 as an n + 2 bit register that stores a temporary value for every clock and replaces it with the latest value. The adder 250 adds the output of the select adder 240 and the output of the T 230 as inputs, and then temporarily stores the least significant bit of the addition result because it is always 0 and is not necessary for the intermediate calculation. It outputs n + 2 bits except the least significant bit to the register T230. As shown in detail in FIG. 4, the selective adder 240 includes n-bit NAND gates 400, 410, 420, and 430 and an adder 440. 4 illustrates the n-bit NAND gates 400, 410, 420, and 430 in detail, showing that the NAND logic operation is performed for each bit. The select adder 240 inputs the B 210 and the N 220 according to the values of a0 and t0, and if a0t0 is 11, 2B + N, 10 is 2B, 01 is N, and 00 is 0. Select and print the result. In order to prevent malfunction of circuits other than the above registers, a clock should be provided to a degree sufficient to ensure propagation delay time of the combination circuit. 3 is a timing diagram according to each operation. When all data is input to each of the registers, the value to be stored in the temporary register T 230 varies with unstable values, and stabilizes to a constant value as time passes. The value is determined by the least significant bits of the A 200 and T 230 registers. The determined value is stored in n + 2 bit sizes after discarding its least significant bit in the T 230 register at the first clock. The above calculation is repeated for n + 1 clocks.

다음 표1은 상기 A 레지스터(200)의 값이 10100110, 상기 B 레지스터(210)의 값이 11100101, 상기 N 레지스터(220)의 값이 11110101인 경우, 본 발명에 의한 모듈라 곱셈 장치중의 A·B·2-nmod N을 계산하는 과정을 보인 것이다.Table 1 shows the values of A ··················· of the modulator multiplier The process of calculating B · 2 −n mod N is shown.

A·B·2-nmod N의 계산과정Calculation process of A · B · 2 -n mod N ii TiTi a0a0 t0t0 Ti'Ti ' 00 00000000000000000000 00 XX 0000000000000000000000 1One 00000000000000000000 1One 00 0011100101000111001010 22 00111001010011100101 1One 1One 0111010010001110100100 33 01110100100111010010 00 00 0011101001000111010010 44 00111010010011101001 00 1One 0011101111000111011110 55 00111011110011101111 1One 1One 0111010111001110101110 66 01110101110111010111 00 1One 0101100110001011001100 77 01011001100101100110 1One 00 0110011000001100110000 88 01100110000110011000 XX 00 0011001100000110011000 99 00110011000011001100

여기서, X의 값은 0이고 Ti'는 상기 가산기(250)의 출력값이다. 먼저 임시 레지스터 Ti(230)는 0으로 초기화 되어있다. 상기 선택 가산기(240)의 출력은 0이고, 상기 가산기(250) 출력 Ti'도 0이다. 첫번째 클럭(i=1)이 들어왔을 때, 상기 a0,t0는 10이므로 상기 선택 가산기(240)의 출력은 0111001010이고, 상기 가산기 출력(250) Ti'는 00111001010이 된다. 이 때, 최하위 비트를 제외한 0011100101이 T 레지스터(230)에 다시 저장된다. 두번째 클럭(i=2)이 들어왔을 때, 상기 a0,t0는 11이므로 상기 선택 가산기(240)의 출력은 1010111111이고, 상기 가산기(250) 출력 Ti'는 01110100100이 되고 상기 T 레지스터(230)에는 최하위 비트를 제외한 0111010010이 저장된다. 상기와 같은 방법으로 n+1클럭까지 계산이 이루어진다. 상기 표 1에서 보인 바와 같이 n비트 입력이 들어왔을 때, n+2비트의 임시 레지스터를 이용해서 n+1 클럭만에 A·B·2-nmod N의 계산이 가능하므로, 몫을 추정하여 모듈라 값을 추정하는 과정에 비해서 클럭 수와 필요한 레지스터를 현저히 줄일 수 있다.Here, the value of X is 0 and Ti 'is an output value of the adder 250. First, the temporary register Ti 230 is initialized to zero. The output of the select adder 240 is zero, and the adder 250 output Ti 'is also zero. When the first clock (i = 1) is input, the a0, t0 is 10, so the output of the select adder 240 is 0111001010, and the adder output 250 Ti 'is 00111001010. At this time, 0011100101 except the least significant bit is stored in the T register 230 again. When a second clock (i = 2) is input, the output of the select adder 240 is 1010111111, the output of the adder 250 becomes 01110100100 since the a0, t0 is 11 and the T register 230 0111010010 is stored except the least significant bit. In the same way as above, calculation is performed up to n + 1 clocks. As shown in Table 1 above, when n-bit input is input, A · B · 2− n mod N can be calculated using only n + 1 clocks using n + 2 bit temporary registers. Compared to estimating modular values, the number of clocks and required registers can be significantly reduced.

본 발명에 의하면, 상기 디지털 서명을 위한 모듈라 곱셈 장치는 하드웨어적으로 A·B mod N의 계산을 빠르게 할 수 있고, 디지털 서명의 생성 및 검증을 위한 기기에 사용될 수 있는 장치로 제공될 수 있다. 또한, 아이씨(IC) 카드를 바탕으로한 전자 서명, 인증, 암/복호화의 하드웨어 장치, 또는 모듈라 곱셈을 수행하는 전자 서명기기에 의해서 암/복호화하는 기기에 사용될 수 있다. 또한, 니스트-디에스에스(NIST-DSS), 알에스에이(Rivest Shamir Adleman), 엘가말, 슈너(Schnorr) 전자 서명등 종래의 공개키 암호 시스템을 구현하는데 이용할 수 있다.According to the present invention, the modular multiplication apparatus for the digital signature can be quickly calculated in hardware A · B mod N, can be provided as a device that can be used in the device for the generation and verification of the digital signature. It can also be used in devices that encrypt / decrypt by electronic signatures, authentication, encryption / decryption hardware devices based on IC cards, or electronic signature devices that perform modular multiplication. It can also be used to implement conventional public key cryptographic systems, such as NIST-DSS, Rivest Shamir Adleman, Elgarmal, and Schnorr digital signatures.

Claims (3)

소정의 n비트로 이루어진 수 A, B, N을 입력으로하여 A·B mod N을 계산하는 디지털 서명을 위한 모듈라 곱셈 장치에 있어서,In the modular multiplication apparatus for digital signature which calculates A · B mod N by inputting the numbers A, B, N of predetermined n bits, P=22nmod N을 계산하는 P=22nmod N 계산부;A P = 2 2n mod N calculator for calculating P = 2 2n mod N; T=A·B·2-nmod N을 계산하는 T=A·B·2-nmod N 계산부; 및T = A · B · T = A · B · 2 -n mod N calculation section for calculating a 2 -n mod N; And 상기 P와 T를 입력으로하여 P·T·2-nmod N을 계산하는 P·T·2-nmod N 계산부를 포함함을 특징으로 하는 디지털 서명을 위한 모듈라 곱셈 장치And a P · T · 2− n mod N calculator configured to calculate P · T · 2 −n mod N by inputting P and T. 제1항에 있어서, 상기 T=A·B·2-nmod N 계산부는The method of claim 1, wherein the T = A · B · 2 −n mod N calculation unit 상기 B를 저장하는 B 레지스터;A B register for storing the B; 상기 N을 저장하는 N 레지스터;An N register storing the N; 상기 A를 저장하고 매 클럭마다 1비트씩 옮겨지는 A 쉬프트 레지스터;An A shift register which stores the A and shifts by one bit every clock; 상기 T=A·B·2-nmod N의 임시 계산 결과를 매 클럭마다 저장하는 n+2 비트로 이루어진 T 레지스터;A T register composed of n + 2 bits for storing a temporary calculation result of the T = A · B · 2 −n mod N every clock; 상기 A 쉬프트 레지스터의 최하위비트인 a0, 상기 T 레지스터의 최하위비트인 t0, 상기 B 레지스터의 출력 및 상기 N 레지스터의 출력을 입력으로하고, a0t0가 11이면 2B+N, a0t0가 10이면 2B, a0t0가 01이면 N, a0t0가 00이면 0을 계산하여, n+2 비트로 출력하는 선택 가산기; 및Inputs a0, which is the least significant bit of the A shift register, t0, which is the least significant bit of the T register, the output of the B register, and the output of the N register, and 2B + N if a0t0 is 11, 2B, a0t0 if a0t0 is 10 Is an adder that calculates N when 01 is 0 and 0 when a0t0 is 00, and outputs n + 2 bits; And 상기 선택 가산기 출력과 상기 T 레지스터의 출력을 입력으로하여 가산한 다음, 상기 가산 결과의 최하위 비트를 버린 후 상기 임시 계산 결과로 출력하는 가산기를 포함함을 특징으로하는 디지털 서명을 위한 모듈라 곱셈 장치And an adder which adds the selection adder output and the output of the T register as inputs, discards the least significant bit of the addition result, and outputs the result as the temporary calculation result. 제2항에 있어서, 상기 선택 가산기는The method of claim 2, wherein the optional adder 상기 B를 미리 계산한 2B와 상기 N을 더하는 가산기;An adder that adds 2B with the B calculated in advance and N; 상기 a0, 상기 t0의 반전된 입력 및 상기 2B를 낸드 논리 연산하는 제1 낸드 게이트;A first NAND gate performing a NAND logic operation on the a0, the inverted input of t0 and the 2B; 상기 a0의 반전된 입력, 상기 t0 및 상기 N을 낸드 논리 연산하는 제2낸드 게이트;A second NAND gate performing NAND logic operation on the inverted input of the a0, the t0 and the N; 상기 가산기의 출력과 상기 제1, 제2 낸드 게이트의 출력을 낸드 논리 연산하는 제3 낸드 게이트; 및A third NAND gate performing NAND logic operation on the output of the adder and the outputs of the first and second NAND gates; And 상기 제1, 제2 및 제3 낸드 게이트의 각각의 출력을 낸드 논리 연산하는 제4 낸드 게이트를 포함함을 특징으로하는 디지털 서명을 위한 모듈라 곱셈 장치And a fourth NAND gate performing NAND logic operation on each output of the first, second and third NAND gates.
KR1019970000500A 1997-01-10 1997-01-10 Modular multiplication device for digital signature KR100400210B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970000500A KR100400210B1 (en) 1997-01-10 1997-01-10 Modular multiplication device for digital signature

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970000500A KR100400210B1 (en) 1997-01-10 1997-01-10 Modular multiplication device for digital signature

Publications (2)

Publication Number Publication Date
KR19980065477A true KR19980065477A (en) 1998-10-15
KR100400210B1 KR100400210B1 (en) 2003-11-14

Family

ID=37422326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970000500A KR100400210B1 (en) 1997-01-10 1997-01-10 Modular multiplication device for digital signature

Country Status (1)

Country Link
KR (1) KR100400210B1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3302043B2 (en) * 1992-05-18 2002-07-15 キヤノン株式会社 Encryption communication method and system
FR2726666B1 (en) * 1994-11-08 1997-01-17 Sgs Thomson Microelectronics PROCESS FOR PRODUCING AN ERROR CORRECTION PARAMETER ASSOCIATED WITH THE IMPLEMENTATION OF MODULAR OPERATIONS ACCORDING TO THE MONTGOMERY METHOD
KR100257124B1 (en) * 1997-05-16 2000-05-15 문상재 High-speed exponentiation method using common-multiplicand modular multiplication
KR100257123B1 (en) * 1997-05-16 2000-05-15 문상재 High-speed exponentiation method using a modified montgomery modular multiplication

Also Published As

Publication number Publication date
KR100400210B1 (en) 2003-11-14

Similar Documents

Publication Publication Date Title
US5742530A (en) Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
EP0933695B1 (en) IC card equipped with elliptic curve encryption processing facility
US8504602B2 (en) Modular multiplication processing apparatus
US6434585B2 (en) Computationally efficient modular multiplication method and apparatus
US4949293A (en) Method and apparatus for computing residue with respect to arbitrary modulus
US8738927B2 (en) Arrangement for and method of protecting a data processing device against an attack or analysis
US5210710A (en) Modulo arithmetic processor chip
KR20010012222A (en) Improved apparatus & method for modular multiplication & exponentiation based on montgomery multiplication
US20040179681A1 (en) Apparatus and method for performing montgomery type modular multiplication
US20060126830A1 (en) Montgomery transform device, arithmetic device, IC card, encryption device, decryption device and program
EP0938790B1 (en) A method and device for executing a decrypting mechanism through calculating a standardized modular exponentiation for thwarting timing attacks
US20100287384A1 (en) Arrangement for and method of protecting a data processing device against an attack or analysis
Rankine Thomas—a complete single chip RSA device
EP1068565B1 (en) Acceleration and security enhancements for elliptic curve and rsa coprocessors
US20040125948A1 (en) Montgomery modular multiplier using a compressor and multiplication method
KR100508092B1 (en) Modular multiplication circuit with low power
KR20040067779A (en) Information processing means
US7512231B2 (en) Computation method for modular exponentiation operation in decryption or signature generation
KR100400210B1 (en) Modular multiplication device for digital signature
Knežević et al. Speeding up bipartite modular multiplication
KR100322740B1 (en) Modular computing apparatus and method thereof
Takagi A modular multiplication algorithm with triangle additions
KR100297110B1 (en) Modular multiplier
Orton et al. A design of a fast pipelined modular multiplier based on a diminished-radix algorithm
JP3779479B2 (en) IC card

Legal Events

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

Payment date: 20120814

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20130822

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee