KR100434957B1 - 비트확장성을 갖는 모듈러 곱셈기 - Google Patents

비트확장성을 갖는 모듈러 곱셈기 Download PDF

Info

Publication number
KR100434957B1
KR100434957B1 KR10-2001-0089093A KR20010089093A KR100434957B1 KR 100434957 B1 KR100434957 B1 KR 100434957B1 KR 20010089093 A KR20010089093 A KR 20010089093A KR 100434957 B1 KR100434957 B1 KR 100434957B1
Authority
KR
South Korea
Prior art keywords
modular
bit group
multiplier
multiplication
modulus
Prior art date
Application number
KR10-2001-0089093A
Other languages
English (en)
Other versions
KR20030058579A (ko
Inventor
류동렬
Original Assignee
주식회사 하이닉스반도체
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 하이닉스반도체 filed Critical 주식회사 하이닉스반도체
Priority to KR10-2001-0089093A priority Critical patent/KR100434957B1/ko
Publication of KR20030058579A publication Critical patent/KR20030058579A/ko
Application granted granted Critical
Publication of KR100434957B1 publication Critical patent/KR100434957B1/ko

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

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

본 발명은 모듈러 곱셈기에 관한 것으로, 특히 각각 2N 비트 크기의 모듈러 승수, 모듈러 피승수, 및 모듈러스를 입력받아, 상기 모듈러 승수와 상기 모듈러 피승수를 각각 N 비트 크기의 상위비트군과 N 비트의 하위비트군으로 분리하고, 상기 모듈러스를 각각 N 비트의 크기의 상위비트군, 중위비트군, 하위비트군으로 분리하는 입력수단; 상기 입력수단으로부터 상기 모듈러 승수의 상위비트군, 상기 모듈러 피승수의 상위비트군, 상기 모듈러스의 상위비트군을 입력받아 모듈러 곱연산을 수행하는 제1 모듈러 곱셈수단; 상기 입력수단으로부터 상기 모듈러 승수의 상위비트군, 상기 모듈러 피승수의 하위비트군, 상기 모듈러스의 중위비트군을 입력받아 모듈러 곱연산을 수행하는 제2 모듈러 곱셈수단; 상기 입력수단으로부터 상기 모듈러 승수의 하위비트군, 상기 모듈러 피승수의 상위비트군, 상기 모듈러스의 중위비트군을 입력받아 모듈러 곱연산을 수행하는 제3 모듈러 곱셈수단; 상기 입력수단으로부터 상기 모듈러 승수의 하위비트군, 상기 모듈러 피승수의 하위비트군, 상기 모듈러스의 하위비트군을 입력받아 모듈러 곱연산을 수행하는 제4 모듈러 곱셈수단; 상기 제1 내지 제4 모듈러 곱셈수단의 결과값들에 대해 덧셈연산을 수행하는 덧셈수단을 포함하는 것을 특징으로 함으로써, 공개키 암호 시스템의 암호키(공개키/비밀키)의 비트 크기가 증가되더라도 기존에 설계된 모듈러 곱셈기를 재사용하여 확장된 암호키에 적용할 수 있는 장점이 있어 암호키의 비트 크기에 따른 하드웨어 재설계 비용 및 설계 기간을 단축할 수 있는 현저한 효과가 있다.

Description

비트확장성을 갖는 모듈러 곱셈기{Modular Multiplicator for Bit Expanding}
본 발명은 공개키 암호시스템의 주요 연산 블록인 모듈러 곱셈기에 관한 것으로, 보다 상세하게는 암호시스템의 암호키의 비트크기가 증가하더라도 기존에 설계된 모듈러 곱셈기를 재사용하여 확장된 비트크기의 모듈러 곱셈기를 구현할 수 있는 비트 슬라이스 구조를 가지는 모듈러 곱셈기에 관한 것이다.
공개키 암호 시스템은 대칭키 암호 시스템에 비해 암호키를 직접 전송하지 않는다는 장점에 의해 네트워크용에 적합한 특징이 있다. 공개키 암호 시스템은 암호의 공격에 대해 암호의 안정성을 확보하기 위해 암호키의 비트크기를 증가시켜 암호 공격의 연산부하를 증가시킨다. 현실적으로 컴퓨팅 환경의 급속한 발전에 따라 512 비트의 암호키에 대한 안정성이 위험성을 내포하기 때문에 1024 비트 암호키를 사용하고 있으나, 1024 비트 암호키 또한 컴퓨팅 환경의 발전추세에 따라 암호의 안정성을 도모하기 위해 비트 크기가 증가될 것으로 예상된다.
그런데, 종래 모듈러 곱셈기의 동작알고리즘으로써 가장 뛰어난 성능을 보이는 몽고메리(Montgomery) 알고리즘은 512 비트의 입력을 가지는 경우를 예를 들면, 다음과 같은 절차로 수행이 된다.
MMULT2(X,Y,M,R)
A[0] = 0 ;
for i from 0 to(n-1) do
Ui = (A[0] + Xi*Yi[0]))mod 2
A(i+1)[511:0]=(Ai[511:0] + Xi*Yi[511:0] + Ui*Mi[511:0])/b
if A(i+1)[511:0] < Mi[511:0] then A(i+1) = A(i+1) - Mi[511:0]
return (A)
이때 X는 모듈러 승수, Y는 모듈러 피승수, M은 모듈러스이고, A는 중간결과이다. 본 발명에 따른 모듈러 곱셈기는 (XY mod M)의 동작을 수행한다. 일반적으로, N 비트의 모듈러 승수(X), 모듈러 피승수(Y), 및 모듈러스(M)로 모듈러 곱셈을 수행하는 경우 모듈러 승수(X)의 각각의 자릿수마다 상기의 단위연산을 순차적으로 수행하여 최종결과를 얻는다. 따라서, 모듈러 곱셈수단은 모듈러 승수(X)의 각각의 자릿수에 대응하는 N개의 단위연산수단이 올림차순으로 직렬연결되는 구성을 가진다.
도 1은 상기 몽고메리 알고리즘을 구현한 모듈러 곱셈기의 단위연산수단(10)을 도시하는 도면이다. 이하에서는, 모듈러 승수(X), 모듈러 피승수(Y), 및 모듈러스(M)의 크기가 각각 512 비트인 경우를 예를 들어 설명한다. 단위연산수단(10)은 제1 곱연산기(11), 제2 곱연산기(12), 제3 곱연산기(13), 제1 덧셈연산기(14), 논리합연산기(15), 제2 덧셈연산기(16), 비교연산기(17), 및 쉬프터로 구성된다. 제1 곱셈연산기(11)는 모듈러 승수(X)의 대응 자릿수 비트(Xi)와 모듈러 피승수(Yi[511:0]) 간의 곱셈연산을 수행하고, 제2 곱셈연산기(12)는 모듈러 승수(X)의 대응 자릿수 비트(Xi)와 모듈러 피승수(Y) 최하위 자릿수의 비트(Yi[0]) 간의 곱셈연산을 수행한다.
제1 덧셈연산기(14)는 직전의 단위연산수단(10)의 결과값으로써 초기값으로 0을 갖는 중간결과(Ai[511:0])와 제1 곱연산기(11)의 연산결과 간의 덧셈연산을 수행한다. 배타적 논리합연산기(15)는 중간결과(A)의 최하위 자릿수의 비트(Ai[0])와제2 곱셈연산기(12)의 연산결과 간의 배타적 논리합 연산을 수행하고, 제3 곱연산기(13)는 배타적 논리합연산기(15)의 연산결과와 모듈러스(Mi[511:0]) 간의 곱셈연산을 수행한다.
제2 덧셈연산기(16)는 제3 곱연산기(13)의 연산결과와 제1 덧셈연산기(14)의 연산결과 간의 덧셈연산을 수행하고, 쉬프터는 제2 덧셈연산기의 연산결과에 대해 오른자리 이동을 수행한다. 마지막으로, 비교연산기(17)는 쉬프터의 연산결과와 모듈러스(Mi[511:0])를 비교하여 쉬프터의 연산결과가 모듈러스(M)보다 큰 경우에는 쉬프터의 연산결과값과 모듈러스(M)의 뺄셈연산을 수행하여 그 결과를 당해 단위연산수단의 중간결과(Ai[511:0])로써 출력하고, 그렇지않은 경우에는 쉬프터의 연산결과를 그대로 당해 단위연산수단의 중간결과(Ai[511:0)로써 출력한다.
도 2는 단위연산수단을 직렬연결한 512 비트 모듈러 곱셈수단을 도시하는 도면이다. 512개의 단위연산수단(10,20,30,40,50)은 직렬연결되고, 최좌측의 단위연산수단(10)은 모듈러 승수(X)의 첫 번째 비트에 대해, 단위연산수단(20)은 모듈러 승수(X)의 두 번째 비트에 대해, 단위연산수단(50)은 512번째 비트에 대해 각각 단위연산을 수행한다. 이때 A[511:0]은 바로 직전의 단위연산수단의 중간결과를 의미하는 것으로써, 최좌측의 단위연산수단(10)에는 초기값으로써 0이 입력이 된다.
그런데, 1024 비트의 모듈러 곱셈을 수행하기 위해서는, 각각의 단위연산수단은 1024 비트의 모듈러 피승수(Y), 모듈러스(M), 및 중간결과(A)를 입력받아 연산하도록 전면적으로 재설계되어야 한다. 즉, 종래의 공개키 암호 시스템은 암호키의 비트 크기를 확장하기 위해서는 암호시스템의 연산회로의 전면적인 재설계를 필요로 하는 문제점이 있었다.
본 발명은 상기의 문제점을 해결하기 위한 것으로서, 공개키 암호 시스템의 주요 연산기인 모듈러 곱셈기의 오퍼랜드 비트 크기가 용이하게 확장될 수 있도록 비트슬라이스 기법을 이용한 모듈러 곱셈방법과 모듈러 곱셈기를 제공하는데 그 목적이 있다.
도 1은 종래의 512 비트 모듈러 곱셈기의 단위연산수단을 도시하는 도면.
도 2는 종래의 512 비트 모듈러 곱셈기를 도시하는 도면.
도 3은 본 발명의 실시례에 따른 1024 비트 모듈러 곱셈기를 도시하는 도면.
도 4는 본 발명의 실시례에 따른 2048 비트 모듈러 곱셈기를 도시하는 도면.
< 도면의 주요부분에 대한 부호의 설명 >
10,20,30,40,50 : 단위연산수단 11 : 제1 곱연산기
12 : 제2 곱연산기 13 : 제3 곱연산기
14 : 제1 덧셈연산기 15 : 논리합연산기
17 : 비교연산기 110 : 제1 모듈러 곱셈수단
120 : 제2 모듈러 곱셈수단 130 : 제3 모듈러 곱셈수단
140 : 제4 모듈러 곱셈수단 160 : 512 비트 모듈러 곱셈기
170 : 1024 비트 모듈러 곱셈기 180 : 2048 비트 모듈러 곱셈기
상기한 목적을 달성하기 위하여, 본 발명에 따른 모듈러 곱셈기는 각각 2N 비트 크기의 모듈러 승수, 모듈러 피승수, 및 모듈러스를 입력받아, 상기 모듈러 승수와 상기 모듈러 피승수를 각각 N 비트 크기의 상위비트군과 N 비트의 하위비트군으로 분리하고, 상기 모듈러스를 각각 N 비트의 크기의 상위비트군, 중위비트군, 하위비트군으로 분리하는 입력수단; 상기 입력수단으로부터 상기 모듈러 승수의 상위비트군, 상기 모듈러 피승수의 상위비트군, 상기 모듈러스의 상위비트군을 입력받아 모듈러 곱연산을 수행하는 제1 모듈러 곱셈수단; 상기 입력수단으로부터 상기 모듈러 승수의 상위비트군, 상기 모듈러 피승수의 하위비트군, 상기 모듈러스의 중위비트군을 입력받아 모듈러 곱연산을 수행하는 제2 모듈러 곱셈수단; 상기 입력수단으로부터 상기 모듈러 승수의 하위비트군, 상기 모듈러 피승수의 상위비트군, 상기 모듈러스의 중위비트군을 입력받아 모듈러 곱연산을 수행하는 제3 모듈러 곱셈수단; 상기 입력수단으로부터 상기 모듈러 승수의 하위비트군, 상기 모듈러 피승수의 하위비트군, 상기 모듈러스의 하위비트군을 입력받아 모듈러 곱연산을 수행하는제4 모듈러 곱셈수단; 상기 제1 내지 제4 모듈러 곱셈수단의 결과값들에 대해 덧셈연산을 수행하는 덧셈수단을 포함하는 것을 특징으로 한다.
종래의 몽고메리 알고리즘으로부터 비트 슬라이스 구현을 위해 제시하는 본 발명에 따른 모듈러 곱셈기의 알고리즘 표현은 아래와 같다.
for I from 0 to 3 do----------(1)
if i=0 then Mi=M[2N-1:N]; Xi=X[2N-1:N]; Yi=[2N-1:N]
else if i=1 then Mi=M[3N/2-1:N/2]; Xi=X[2N-1:N];Yi=[N-1:0];
else if i=2 then Mi=M[3N/2-1:N/2]; Xi=X[N-1:0];Yi=[2N-1:N];
else if i=3 then Mi=M[N-1:0]; Xi=X[N-1:0];Yi=[N-1:0];
for j from 0 to N-1 do--------(2)
Uij=(Aij[0]+Xi[J]*Yi[0])mod2
Aij=(Aij+Xi[j]*Yi+Uij*Mi)/2
if Aij<m then A=A-m.
return(Aij)
싱기한 알고리즘은 암호키의 비트 크기가 2N 비트인 경우에 대한 본 발명의 구성 및 동작을 의미한다. 루프(1)을 통해 4개의 비트 슬라이스를 구성하고, 루프(2)를 통해 종래 모듈러 곱셈기의 동작을 수행한다. 즉, 2N 비트 모듈러 곱셈기를 구현하기 위해서는 N비트 모듈러 곱셈기 4개가 사용된다.
비트 슬라이스의 구성은, 2N 비트중 0번째 비트에서 N-1 번째 비트군을 하위비트군, N/2 번째 비트에서 (3N/2)-1 번째 비트군을 중위비트군, N 번째 비트에서2N-1 번째 비트군을 상위비트군이라 하면, i=0인 경우, 모듈러 승수(X)는 상위비트군(X0=X[2N-1:N]), 모듈러 피승수(Y)도 상위비트군(Yo=[2N-1:N]), 모듈러스(M)도 상위 비트군(M0=M[2N-1:N])으로 입력받아 이용해 종래의 모듈러 곱셈 알고리즘인 루프(2)를 수행한다.
i=1인 경우, 모듈러 승수(X)는 상위비트군(X1=X[2N-1:N]), 모듈러 피승수(Y)는 하위비트군(Y1=[N-1:0]), 모듈러스(M)는 중위 비트군(M1=M[3N/2-1:N/2])으로 입력받아 이용해 종래의 모듈러 곱셈 알고리즘인 루프(2)를 수행한다.
i=2인 경우, 모듈러 승수(X)는 하위비트군(X2=X[N-1:0]), 모듈러 피승수(Y)는 상위비트군(Y2=[2N-1:N]), 모듈러스(M)는 중위 비트군(M2=M[3N/2-1:N/2])으로 입력받아 이용해 종래의 모듈러 곱셈 알고리즘인 루프(2)를 수행한다.
i=3인 경우, 모듈러 승수(X)는 하위비트군(X3=X[N-1:0]), 모듈러 피승수(Y)도 하위비트군(Y3=[N-1:0]), 모듈러스(M)도 하위 비트군(M3=M[N-1:0])으로 입력받아 이용해 종래의 모듈러 곱셈 알고리즘인 루프(2)를 수행한다.
상술한 목적 및 기타의 목적과 본 발명의 특징 및 이점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다.
도 3은 본 발명의 실시례에 따른 N 비트(512 비트)의 비트 슬라이스를 가지는 2N 비트(1024 비트) 모듈러 곱셈기의 구조를 도시하는 도면이다. 모듈러 곱셈기는 입력수단, 제1 모듈러 곱셈수단(110), 제2 모듈러 곱셈수단(120), 제3 모듈러 곱셈수단(130), 제4 모듈러 곱셈수단(140), 및 덧셈수단(150)으로 구성된다.
입력수단은 각각 2N 비트(1024 비트) 크기의 모듈러 승수(X[1024:0]), 모듈러 피승수(Y[1024:0]), 및 모듈러스(M[1024:0])를 입력받아, 모듈러 승수(X)와 모듈러 피승수(Y)를 각각 N 비트 크기(512 비트)의 상위비트군(XH,YH)과 N 비트(512 비트)의 하위비트군(XL,YL)으로 분리하고, 모듈러스(M)를 각각 N 비트(512 비트)의 크기의 상위비트군(MH), 중위비트군(MM), 하위비트군(ML)으로 분리한다. 이러한 2N 비트에 대한 N 비트로의 비트분할 작업은 N 비트의 입력을 받도록 설계된 각각의 모듈러 곱셈수단의 입력으로 사용하기 위해 수행된다.
제1 모듈러 곱셈수단(110)은 입력수단으로부터 모듈러 승수의 상위비트군(XH), 모듈러 피승수의 상위비트군(YH), 모듈러스의 상위비트군(MH)을 입력받아 모듈러 곱연산을 수행하고, 제2 모듈러 곱셈수단(120)은 입력수단으로부터 모듈러 승수의 상위비트군(XH), 모듈러 피승수의 하위비트군(YL), 모듈러스의 중위비트군(MM)을 입력받아 모듈러 곱연산을 수행하고, 제3 모듈러 곱셈장치(130)는 입력수단으로부터 모듈러 승수의 하위비트군(XL), 모듈러 피승수의 상위비트군(YH), 모듈러스의 중위비트군(MM)을 입력받아 모듈러 곱연산을 수행하고, 제4 모듈러 곱셈수단(140)은 입력수단으로부터 모듈러 승수의 하위비트군(XL), 모듈러 피승수의 하위비트군(YL), 모듈러스의 하위비트군(ML)을 입력받아 모듈러 곱연산을 수행한다.
덧셈수단(150)은 제1 내지 제4 모듈러 곱셈수단(110,120,130,140)의 결과값들에 대해 덧셈연산을 수행하여 2N 비트에 대한 최종적인 모듈러 곱셈결과를 출력한다.
바람직하게는, 입력수단은, 2N 비트(1024비트)의 중간결과(M[1024:0])를 더 입력받아 각각 N비트(512비트)의 상위비트군(AH)과 하위비트군(AL)로 분리하고, 제1 모듈러 곱셈수단(110)은 입력수단으로부터 중간결과의 상위비트군(AH)을 더 입력받아 모듈러 곱연산을 수행하고, 제2 모듈러 곱셈수단(120)은 입력수단으로부터 중간결과의 하위비트군(AL)을 더 입력받아 모듈러 곱연산을 수행하고, 제3 모듈러 곱셈수단(130)은 입력수단으로부터 중간결과의 상위비트군(AH)을 더 입력받아 모듈러 곱연산을 수행하고, 제4 모듈러 곱셈수단(140)은 입력수단으로부터 중간결과의 하위비트군(AL)을 더 입력받아 모듈러 곱연산을 수행할 수 있다.
도 6은 512비트 모듈러 곱셈기(160)를 이용한 1024비트 및 2048비트 모듈러 곱셈기의 구현한 도면이다. 512비트 모듈러 곱셈기 4개와 1024 비트 덧셈수단을 이용하여 1024비트 모듈러 곱셈기(170)를 구현하고, 512 비트 모듈러 곱셈기 16개와 2048 비트 덧셈수단을 이용하여 2048비트 모듈러 곱셈기(180)를 구현할 수 있다. 비슷한 방법으로 N 비트의 모듈러 곱셈기를 이용하여, 2N 비트, 4N 비트, 8N 비트 및 (2^M)*N 비트의 모듈러 곱셈기를 손쉽게 구현할 수 있다.
본 명세서에서는 설명의 편의를 위해서 N=512 비트인 경우를 중심으로 설명하였지만, N=128 비트, N=1024 비트 또는 N=2048 비트 등의 어느 경우에도 적용할 수 있음을 유의하여야 한다.
이상에서 설명한 바와 같이 본 발명에 따른 모듈러 곱셈기에 따르면, 낮은 비트를 처리할 수 있는 모듈러 곱셈수단을 복수개 연결하여 높은 비트를 비트 슬라이스화하여 각각의 모듈러 곱셈기수단에서 분산처리함으로써 높은 수준의 모듈러 곱셈기를 구현할 수 있으므로, 특히, 공개키 암호 시스템의 암호키(공개키/비밀키)의 비트 크기가 증가되더라도 기존에 설계된 모듈러 곱셈기를 재사용하여 확장된 암호키에 적용할 수 있는 장점이 있어 암호키의 비트 크기에 따른 하드웨어 재설계 비용 및 설계 기간을 단축할 수 있는 현저한 효과가 있다.
아울러 본 발명의 바람직한 실시예들은 예시의 목적을 위해 개시된 것이며, 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가 등이 가능할 것이며, 이러한 수정 변경 등은 이하의 특허청구의 범위에 속하는 것으로 보아야 할 것이다.

Claims (3)

  1. 삭제
  2. 각각 2N 비트 크기의 모듈러 승수, 모듈러 피승수, 및 모듈러스를 입력받아, 상기 모듈러 승수와 상기 모듈러 피승수를 각각 N 비트 크기의 상위비트군과 N 비트의 하위비트군으로 분리하고, 상기 모듈러스를 각각 N 비트의 크기의 상위비트군, 중위비트군, 하위비트군으로 분리하는 입력수단;
    상기 입력수단으로부터 상기 모듈러 승수의 상위비트군, 상기 모듈러 피승수의 상위비트군, 상기 모듈러스의 상위비트군을 입력받아 모듈러 곱연산을 수행하는 제1 모듈러 곱셈수단;
    상기 입력수단으로부터 상기 모듈러 승수의 상위비트군, 상기 모듈러 피승수의 하위비트군, 상기 모듈러스의 중위비트군을 입력받아 모듈러 곱연산을 수행하는 제2 모듈러 곱셈수단;
    상기 입력수단으로부터 상기 모듈러 승수의 하위비트군, 상기 모듈러 피승수의 상위비트군, 상기 모듈러스의 중위비트군을 입력받아 모듈러 곱연산을 수행하는 제3 모듈러 곱셈수단;
    상기 입력수단으로부터 상기 모듈러 승수의 하위비트군, 상기 모듈러 피승수의 하위비트군, 상기 모듈러스의 하위비트군을 입력받아 모듈러 곱연산을 수행하는 제4 모듈러 곱셈수단; 및
    상기 제1 내지 제4 모듈러 곱셈수단의 결과값들에 대해 덧셈연산을 수행하는 덧셈수단을 포함하고,
    상기 제1 내지 제4 모듈러 곱셈수단은 상기 모듈러 승수의 비트군의 각각의 자릿수에 대응하는 N개의 단위연산수단이 올림차순으로 직렬연결되되;
    각각의 단위연산수단은,
    상기 모듈러 승수의 비트군의 대응 자릿수 비트와 상기 모듈러 피승수의 비트군 간의 곱셈연산을 수행하는 제1 곱연산기;
    상기 모듈러 승수의 비트군의 대응 자릿수의 비트와 상기 모듈러 피승수의 최하위 자릿수의 비트 간의 곱셈연산을 수행하는 제2 곱연산기;
    직전의 단위연산수단의 결과로써 초기값으로 0을 갖는 중간결과와 상기 제1 곱연산기의 연산결과 간의 덧셈연산을 수행하는 제1 덧셈연산기;
    상기 중간결과의 최하위 자릿수 비트와 상기 제2 곱셈연산기의 연산결과 간의 배타적 논리합 연산을 수행하는 배타적 논리합연산기;
    상기 배타적 논리합연산기의 연산결과와 상기 모듈러스의 비트군 간의 곱셈연산을 수행하는 제3 곱연산기;
    상기 제3 곱연산기의 연산결과와 상기 제1 덧셈연산기의 연산결과 간의 덧셈연산을 수행하는 제2 덧셈연산기;
    상기 제2 덧셈연산기의 연산결과에 대해 오른자리 이동을 수행하는 쉬프터; 및
    상기 쉬프터의 연산결과와 상기 모듈러스의 비트군을 비교하여 상기 쉬프터의 연산결과가 상기 모듈러스의 비트군보다 큰 경우에는 상기 쉬프터의 연산결과와 상기 모듈러스 비트군 간의 뺄셈연산을 수행하여 그 결과를 당해 단위연산수단의 중간결과로써 출력하고, 그렇지 않은 경우는 상기 쉬프터의 연산결과를 당해 단위연산수단의 중간결과로써 출력하는 비교연산기를 포함하는 것을 특징으로 하는 모듈러 곱셈기.
  3. 제 2 항에 있어서,
    상기 입력수단은, 2N 비트의 중간결과를 더 입력받아 각각 N비트의 상위비트군과 하위비트군로 분리하고;
    상기 제1 모듈러 곱셈수단은 상기 입력수단으로부터 상기 중간결과의 상위비트군을 더 입력받아 모듈러 곱연산을 수행하고;
    상기 제2 모듈러 곱셈수단은 상기 입력수단으로부터 상기 중간결과의 하위비트군을 더 입력받아 모듈러 곱연산을 수행하고;
    상기 제3 모듈러 곱셈수단은 상기 입력수단으로부터 상기 중간결과의 상위비트군을 더 입력받아 모듈러 곱연산을 수행하고;
    상기 제4 모듈러 곱셈수단은 상기 입력수단으로부터 상기 중간결과의 하위비트군을 더 입력받아 모듈러 곱연산을 수행하는 것을 특징으로 하는 모듈러 곱셈기.
KR10-2001-0089093A 2001-12-31 2001-12-31 비트확장성을 갖는 모듈러 곱셈기 KR100434957B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0089093A KR100434957B1 (ko) 2001-12-31 2001-12-31 비트확장성을 갖는 모듈러 곱셈기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0089093A KR100434957B1 (ko) 2001-12-31 2001-12-31 비트확장성을 갖는 모듈러 곱셈기

Publications (2)

Publication Number Publication Date
KR20030058579A KR20030058579A (ko) 2003-07-07
KR100434957B1 true KR100434957B1 (ko) 2004-06-09

Family

ID=32216480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0089093A KR100434957B1 (ko) 2001-12-31 2001-12-31 비트확장성을 갖는 모듈러 곱셈기

Country Status (1)

Country Link
KR (1) KR100434957B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210216281A1 (en) * 2020-04-02 2021-07-15 Intel Corporation Folded Integer Multiplication for Field-Programmable Gate Arrays

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4910700A (en) * 1988-06-10 1990-03-20 General Electric Company Bit-sliced digit-serial multiplier
US5289397A (en) * 1991-07-22 1994-02-22 Itt Corporation High-speed modulo exponentiator device
JPH0784762A (ja) * 1993-09-17 1995-03-31 Nippon Steel Corp 乗算回路
KR20020076600A (ko) * 2001-03-29 2002-10-11 문상재 모듈라 곱셈장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4910700A (en) * 1988-06-10 1990-03-20 General Electric Company Bit-sliced digit-serial multiplier
US5289397A (en) * 1991-07-22 1994-02-22 Itt Corporation High-speed modulo exponentiator device
JPH0784762A (ja) * 1993-09-17 1995-03-31 Nippon Steel Corp 乗算回路
KR20020076600A (ko) * 2001-03-29 2002-10-11 문상재 모듈라 곱셈장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210216281A1 (en) * 2020-04-02 2021-07-15 Intel Corporation Folded Integer Multiplication for Field-Programmable Gate Arrays
US11960853B2 (en) * 2020-04-02 2024-04-16 Intel Corporation Folded integer multiplication for field-programmable gate arrays

Also Published As

Publication number Publication date
KR20030058579A (ko) 2003-07-07

Similar Documents

Publication Publication Date Title
EP1708081B1 (en) Method and device for calculating a Montgomery conversion parameter
Liu et al. High performance modular multiplication for SIDH
Gokhale et al. Design of area and delay efficient Vedic multiplier using Carry Select Adder
US7412474B2 (en) Montgomery modular multiplier using a compressor and multiplication method
Sousa Efficient method for magnitude comparison in RNS based on two pairs of conjugate moduli
EP1600852B1 (en) Method and apparatus for calculating a modular inverse
KR20040067779A (ko) 정보 처리방법
KR100434957B1 (ko) 비트확장성을 갖는 모듈러 곱셈기
JP3660075B2 (ja) 除算装置
KR100480997B1 (ko) GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치
US6684236B1 (en) System of and method for efficiently performing computations through extended booth encoding of the operands thereto
WO2022115108A1 (en) An architecture for small and efficient modular multiplication using carry-save adders
KR100428755B1 (ko) 비트 슬라이스 모듈러 곱셈기
US5781465A (en) Method and apparatus for fast carry generation detection and comparison
Molahosseini et al. Efficient MRC-based residue to binary converters for the new moduli sets {2 2n, 2 n-1, 2 n+ 1-1} and {2 2n, 2 n-1, 2 n-1-1}
JP4290203B2 (ja) リダクションアレイの装置および方法
Abdul-Mumin et al. Mixed Radix Conversion based RSA Encryption System
Artem et al. Area&power optimized modulo (2 n±2 p±1) multiplier
Cao et al. A new design method to modulo 2/sup n/-1 squaring
Slobodskoy et al. Check for updates RNS Reverse Conversion Algorithm and Parity Detection for the Wide Arbitrary Moduli Set
KR100805272B1 (ko) 부호화를 이용하는 곱셈 장치 및 그 방법
Mekhallalati et al. Radix modular multiplication algorithm
Mathew et al. Residue-to-Binary Arithmetic Converter for the Moduli Set {2 n-1, 2 n, 2 n+ 1, 2 n+ 1, 2 n-1}
CN117938347A (zh) 用于抵御侧信道攻击的安全加密系统及方法
Sabu Comparitive study of RSD based and CSD based arithmetic modules of ECC

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
LAPS Lapse due to unpaid annual fee