KR100428755B1 - 비트 슬라이스 모듈러 곱셈기 - Google Patents

비트 슬라이스 모듈러 곱셈기 Download PDF

Info

Publication number
KR100428755B1
KR100428755B1 KR10-2001-0053178A KR20010053178A KR100428755B1 KR 100428755 B1 KR100428755 B1 KR 100428755B1 KR 20010053178 A KR20010053178 A KR 20010053178A KR 100428755 B1 KR100428755 B1 KR 100428755B1
Authority
KR
South Korea
Prior art keywords
bit
modular
multiplier
value
modulus
Prior art date
Application number
KR10-2001-0053178A
Other languages
English (en)
Other versions
KR20030019820A (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-0053178A priority Critical patent/KR100428755B1/ko
Publication of KR20030019820A publication Critical patent/KR20030019820A/ko
Application granted granted Critical
Publication of KR100428755B1 publication Critical patent/KR100428755B1/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
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers

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)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 RSA 공개키 암호시스템에서 암호의 안정성을 위하여 증가되는 암호 키의 비트 크기에 대응한 내부 연산기를 비트 슬라이스 기법으로 설계함으로써, 암호 키의 비트 확장에 대응한 모듈러 곱셈기의 오퍼랜드 비트 확장이 용이토록 하고, 하드웨어 재설계 비용을 저감하도록 한 비트 슬라이스 모듈러 곱셈기에 관한 것으로서, 이러한 본 발명은, 기존 몽고메리 다정도 모듈러 곱셈 알고리즘의 장점인 연산의 병렬성을 이용하여 동일한 구조의 n비트 입력에 대한 슬라이스를 병렬 동작시켜 2n비트 입력 오퍼랜드에 대한 연산을 수행할 수 있도록 비트 슬라이스 모듈러 곱셈기를 구현하고, 또한

Description

비트 슬라이스 모듈러 곱셈기{bit slice modulo multiplier}
본 발명은 비트 슬라이스 모듈러 곱셈기에 관한 것으로, 보다 상세하게는 RSA 공개키 암호시스템에서 암호의 안정성을 위하여 증가되는 암호 키의 비트 크기에 대응한 내부 연산기를 비트 슬라이스 기법으로 설계함으로써, 암호 키의 비트 확장에 대응한 모듈러 곱셈기의 오퍼랜드 비트 확장이 용이토록 하고, 하드웨어 재설계 비용을 저감하도록 한 비트 슬라이스 모듈러 곱셈기에 관한 것이다.
네트워크 환경의 보편화 경향에 따라 정보 보호를 위한 암호화의 필요성이 더욱 강조되고 있다. 여러 암호 시스템 중에서 공개키 암호 시스템은 암호키(key) 분배가 간편하여 네트워크 환경에 적합하다고 여겨지고 있다. RSA 공개키 암호 시스템은 소인수 분해의 계산 복잡도가 암호키의 비트 크기에 따라 급격하게 증가하여 소인수 분해된 숫자를 암호에 사용할 경우 암호화키는 공개되어도 그 해독키를 찾아내는 것이 매우 어렵다는 사실에 기초한 방법이다.
실제로 암호키가 작은 숫자인 경우에는 공격의 위험성이 있으며, 키를 200자리 이상의 숫자로 할 경우에는 보안 능력이 있었으나 최근 컴퓨터의 연산능력의 향상으로 암호키를 300자리 이상의 숫자로 사용하여야 할 필요가 대두되었다.
RSA 공개키 암호 시스템에서 공격에 대한 대처 방법으로는 암호키의 크기를 확장하여 공격의 연산 복잡도를 증가시켜 공격의 위험성을 낮추는 방법을 사용하고있다. 따라서 RSA 공개키 암호 시스템은 매우 큰 수에 대한 모듈러 지수승 연산이 요구된다.
모듈로 지수승 연산은 모듈로 곱셈과 모듈로 제곱의 반복으로 구현되므로 모듈러 곱셈기와 모듈러 제곱 연산기의 설계가 RSA 공개키 암호 시스템에서 큰 비중을 차지하게 된다.
1978년에 RSA 공개키 암호 시스템이 제안된 이후 전용 하드웨어로 RSA 공개키 암호 시스템을 구현하기 위한 많은 연구가 진행되어 왔다. 이러한 연구의 주요 목표는 매운 큰 정수에 대한 연산 알고리즘의 고속화가 주요 목표였다.
그러나 이러한 연구에서는 암호키의 비트 크기가 확장될 경우의 재설계 문제를 고려하지 않았다.
모듈러 곱셈()을 효율적으로 수행할 수 있는 알고리즘은 몽고메리(Montgomery)에 의해서 제안되었다.
모듈러 곱셈을 수행하는 관용적인 방법은 두 수의 곱에 다시 나눗셈 연산을 이용한 모듈러 리덕션(modular reduction) 연산을 하게된다. 따라서 관용적인 방법에서는 큰 수에 대하여 나눗셈 연산을 해야하는 부담이 있다. 이를 해결한 것이 몽고메리 모듈러 리덕션 알고리즘으로 모듈러 연산에 필요한 나눗셈에 대한 부담을 경감시키기 위해 수체계의 변환을 통하여 모듈러 리덕션이 쉽게 되는 수체계에서 연산을 한 후 다시 원래의 수체계로 환원시키는 방법을 이용한다.
또한 몽고메리 모듈러 리덕션 알고리즘의 확장으로써 다정도 모듈러 곱셈(multiple precision modular multiplication)알고리즘이 제안되었다.
다음은 몽고메리 다정도 모듈러 곱셈 알고리즘을 나타낸다.
for i from 0 to (n-1) do
RETURN(A)
몽고메리 다정도 모듈러 리덕션 알고리즘에서는 연산 (1),(2)을 통하여 몽고메리 모듈러 리덕션 알고리즘과 다정도(multiple precision)곱셈이 동시에 수행된다.
한편, 주지한 바와 같이 공개키 암호 시스템은 대칭키 암호 시스템에 비해 암호키를 직접 전송하지 않는다는 장점에 의해 네트워크용에 적합한 특징이 있다. 공개키 암호 시스템은 암호의 공격에 대하여 암호의 안정성을 확보하기 위해 암호키(공개키/비밀키)의 비트 크기를 증가시켜 암호 공격의 연산부하를 증가시킨다. 현실적으로 컴퓨팅 환경의 급속한 발전에 따라 512비트의 암호키에 대한 안정성이 위험성을 내포하기 때문에 1024비트 암호키를 사용하고 있다. 1024비트 암호키 또한 컴퓨팅 환경의 발전추세에 따라 암호의 안정성을 도모하기 위해 비트 크기가 증가될 것으로 예상된다.
그러나 종래의 공개키 암호 시스템에서는 암호키의 비트 크기가 변경(비트 크기 증가)되면 암호 시스템의 연산회로를 재 설계해야 하는 문제점이 있었다.
이에 본 발명은 상기와 같은 종래 공개키 암호 시스템에서 암호키의 비트 크기에 따라 암호 시스템의 연산회로를 재설계해야하는 문제점을 해결하기 위해서 제안된 것으로서,
본 발명의 목적은, RSA 공개키 암호시스템에서 암호의 안정성을 위하여 증가되는 암호키의 비트 크기에 대응한 내부 연산기를 비트 슬라이스 기법으로 설계함으로써, 암호키의 비트 확장에 대응한 모듈러 곱셈기의 오퍼랜드 비트 확장이 용이토록 하고, 하드웨어 재설계 비용을 저감하도록 한 비트 슬라이스 모듈러 곱셈기를 제공하는 데 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 의한 비트 슬라이스형 모듈러 곱셈 알고리즘은,
CONDITION : multiplicand and multiplier is 2n bit, slice is n bit.
,
for i from 0 to 3 do .......(1)'
end if;
for i from 0 to n-1 do .......(2)'
end for;
end if;
end for;
return(A)
이러한 비트 슬라이스형 모듈러 곱셈 알고리즘은 인덱스가 1차원 공간인 몽고메리 다정도 모듈러 곱셈 알고리즘으로부터 인덱스가 2차원 공간인 알고리즘으로 확장시켜 연산의 병렬성을 이용하고자 한 알고리즘이다. 상기 알고리즘에서 인덱스 i는 4개의 슬라이스 중에 하나를 지정하고 인덱스 j는 각 슬라이스에서의 비트 스캔(bit scan)을 의미한다.
본 발명에 의한 비트 슬라이스형 모듈러 곱셈 알고리즘은 임의의 수 x에 대한 M-residue를 xR mod M으로 정의하며, 연산결과는 M-residue로 변환된 X, Y에 대한 모듈러 곱셈이다. 여기서는 두 수의 일반적인 곱셈이며,를 곱하는 과정은 모듈러 리덕션 연산에 해당한다.
모듈러스 배수(modules multiple Uj)는 모듈러스(M)에 일정한 수를 곱하여 최하위 비트가 '0'이 되도록 하여 R로 나누어 떨어지도록 한다. 이러한 모듈러스 배수의 필요성은 나눗셈 연산을 쉬프트 연산으로 대체할 수 있는 이점을 제공한다.
몽고메리 다정도 모듈러 곱셈 알고리즘에서는 먼저 모듈러스(M)보다 크고 모듈러스와 서로소(gcd(M,R)=0)인 R을 정의하는 데 비해 제안 알고리즘에서는 mod R과 div R이 용이하도록 R=2를 사용한다. 따라서 mod2 연산은 최하위 비트만을 검사하면 되고 div 2의 연산은 쉬프트 동작으로 대체할 수 있다.
본 발명에 의한 알고리즘에서는 몽고메리 다정도 모듈러 곱셈 알고리즘의 장점인 연산의 병렬성을 이용하여 동일한 구조의 n비트 입력에 대한 슬라이스를 병렬동작시켜 2n비트 입력 오퍼랜드에 대한 연산을 수행하도록 한다.
두 입력 X, Y가 2n 비트이고 기본 슬라이스가 n비트에 대한 연산을 수행한다면, 몽고메리 다정도 모듈러 곱셈 알고리즘은회의 단정도 곱셈연산을 수행하므로 O(n2)의 시간 복잡도를 갖는다.
한편, 본 발명에 의한 알고리즘에서는회의 단정도 곱셈 연산이 수행되어 알고리즘의 시간 복잡도는 O(n2)으로써 몽고메리 다정도 모듈러 곱셈 알고리즘과 동일한 시간 복잡도를 갖는다.
도 1은 본 발명에 의한 512비트 모듈러 곱셈기의 프로세스 엘리먼트 구성도이고,
도 2는 도 1의 512비트 프로세스 엘리먼트를 이용하여 구현한 모듈러 곱셈기의 블록도이고,
도 3은 도 2의 512비트 모듈러 곱셈기를 이용하여 구현한 1024비트 모듈러 곱셈기의 블록도이고,
도 4는 본 발명에 의한 모듈러 곱셈기의 비트 확장 개념을 설명하기 위한 개념도이다.
<도면의 주요 부분에 대한 부호의 설명>
101, 102, 105 ..... 제1 내지 제3 모듈러 곱셈기
103, 106 ..... 제1 및 제2 덧셈기
104 ..... 배타적 논리합 연산기
107 ..... 쉬프터
108 ..... 비교연산기
810, 820, 830, 840 ..... 제1 내지 제4 모듈러 곱셈부
이하 상기와 같은 기술적 사상에 따른 본 발명의 바람직한 실시예를 첨부한 도면에 의거 상세히 설명하면 다음과 같다.
본 발명에 의해서 제안된 비트 슬라이스 모듈러 곱셈 알고리즘은 n비트 모듈러 곱셈기를 기본 슬라이스로 이용하여 4개의 기본 슬라이스를 병렬 연결하여 2n 비트 모듈러 곱셈 연산을 수행한다.
아래와 같은 [수학식1]과 같이 일반 곱셈 연산을 비트 슬라이스 구조로 연산하는 방법에서는 두 입력 X, Y를 상위 비트군()과 하위 비트군()으로 분리하여 4개의 부분 곱을 구하여 각각의 부분 곱에 대한 캐리 전파 덧셈을 통하여 결과값을 얻는다.
이며 이때는 concatenation이다.
본 발명에 의한 모듈러 곱셈 알고리즘은 일반 곱셈 연산의 비트 슬라이스 방법(수학식1)과 같이 두 입력 오퍼랜드를 상, 하위 비트군으로 나누어 4개의 모듈러 곱셈을 수행하여 4개의 부분 곱을 구한 후 4개의 부분 곱에 대한 캐리 전파 덧셈 결과로써, 모듈러 곱셈의 최종 결과값을 얻는다.
그러나 일반 곱셈연산과는 달리 모듈러 곱셈연산에서는 모듈러 감소 연산을 수행하여야 하므로 모듈러스(modules)에 대한 고려가 필요하다.
상기 [수학식2]에서 모듈러스(M)은로 분할하였다. 모듈러스(M)의 분할은 2n 비트의 두 입력 오퍼랜드 X, Y가 모두 상위 비트군()일 경우 모듈러스이고,인 경우와인경우 모듈러스()와 모듈러스()는이고, ()인 경우 모듈러스()는 M[n-1:0]이다.
본 발명에 의한 알고리즘의 순환문 (1)'에서 4개의 n비트 모듈러 곱셈으로 분할하고, 순환문 (2)'에서는 몽고메리 다정도 모듈러 곱셈 알고리즘을 이용하여 각 모듈러 곱셈연산((3)', (4)')을 수행하며, 연산 (5)'에서는 4개의 모듈러 곱셈연산결과를 더하여 2n 비트의 모듈러 곱셈 결과를 얻는다.
4개의 n비트 모듈러 곱셈 연산을 지시하는 인덱스 i와, n비트 모듈러 곱셈연산을 수행하기 위한 인덱스 j로 표현하여 2n비트 모듈러 곱셈연산을 4개의 n비트 모듈러 곱셈연산으로 분할시킨다. 4n 비트 모듈러 곱셈연산을 수행하기 위해서는 n비트 모듈러 곱셈연산으로 구성되는 2n 비트 모듈러 곱셈연산을 4번 수행하여 4n 비트 모듈러 곱셈연산을 수행할 수 있다. n비트 모듈러 곱셈을 이용하여 2n 비트 모듈러 곱셈을 수행하려면 4개의 n비트 모듈러 곱셈이 필요하고, 4n 비트 모듈러 곱셈연산을 수행하려면 16개의 n비트 모듈러 곱셈이 필요하다. 즉, 본 발명에 의한 알고리즘은 입력 오퍼랜드 X, Y의 비트 크기가 증가할수록 소요되는 기본 비트 슬라이스의 거듭제곱으로 증가된다.
본 발명에서 제안된 알고리즘을 구현하기 위해비트 크기로 암호키(key)가 확장되는 것을 가정하여 64비트 오퍼랜드를 위한 비트 슬라이스형 모듈러 곱셈기를 기본으로 한다.
먼저 기본 프로세스 엘리먼트(PE : Process Element)를 설계하고, 이것을 이용하여 모듈러 곱셈기 슬라이스를 만든다. PE는 제안한 알고리즘의 연산 과정에서 슬라이스 비트 크기만큼 반복하는 내부 루프(2)'의 연산을 수행한다. PE의 비트 크기는 연산 ()에 의해 n의 비트 크기에 의존한다.
비트 단위의 암호키 확장을 가정하므로 64비트 비트 슬라이스형 모듈러 곱셈기에 필요한 64비트 오퍼랜드에 대한 PE를 설계한다.
상기 내부 루프(2')에서이 각각 64비트에 대한 연산이므로 도 1에서와 같이 PE는 64비트의 입력신호와 1비트 입력신호인그리고 64비트의 출력 신호를 갖는다.
본 발명에서 R의 선택은 gcd(M, R)=1, RR-1-MM'=0을 만족하는 범위 내에서 설정한다. 이때, R=2로 선택하면 순환문 (2)'에서의 나눗셈 연산은 쉬프트 연산으로 대신할 수 있고, 모듈러 연산은 최하위 비트 선택으로 대신 할 수 있어 연산의 복잡도를 낮출 수 있다.
PE는 모듈러 곱셈기의 주여 연산부이므로 PE의 최적화 정도가 모듈러 곱셈기의 지연시간 및 회로크기에 큰 영향을 준다.
도 1은 본 발명에 의한 512비트 모듈러 곱셈기의 프로세스 엘리먼트 구성도이다.
여기서 참조부호 101, 102는 제1 및 제2 곱셈기를 나타내고, 참조부호 103은 제1덧셈기를 나타내며, 참조부호 104는 배타적 논리합연산기를 나타내고, 참조부호 105는 제3곱셈기를 나타내며, 참조부호 106은 제2덧셈기를 나타내고, 참조부호 107은 쉬프터를 나타내고, 참조부호 108은 비교연산기를 나타낸다.
이와 같이 구성된 본 발명에 의한 512비트 모듈러 곱셈기는, 먼저 제1곱셈기(101)에서 승수의 최하위 비트에서 최상위 비트에 이르는 각각의 비트값과 피승수를 곱셈 연산하게 된다.
아울러 제2곱셈기(102)는 상기 피승수의 최하위 비트값과 승수의 최하위 비트에서 최상위 비트에 이르는 각각의 비트값과 곱셈연산을 수행한다.
그리고 제1덧셈기(103)는 상기 제1곱셈기(101)의 결과값과 초기 값으로는 "0"을 갖되 이전 단계의 결과값을 갖는 중간결과값을 덧셈 연산하여 그 결과값을 제2덧셈기(106)에 전달한다.
또한, 배타적 논리합연산기(104)는 상기 제2곱셈기(102)의 결과값과 중간결과값의 최하위 비트값을 배타적 논리합하여 그 결과값을 제3곱셈기(105)에 전달한다.
상기 제3곱셈기(105)는 상기 배타적 논리합 연산기(104)의 결과값과 모듈러스의 값을 곱셈 연산하게 되고, 상기 제2덧셈기(106)는 상기 제3곱셈기(105)의 결과값과 상기 제1덧셈기(103)의 출력값을 덧셈 연산한다.
그리고 쉬프터(107)는 상기 제2덧셈기(106)의 결과값에 대하여 순차 오른쪽으로 자리 이동을 시키게 되고, 비교연산기(108)는 상기 쉬프터(107)의 출력값과 모듈러스의 값을 비교하여 쉬프터(107)의 출력값이 상기 모듈러스의 값보다 큰 경우 쉬프터(107)의 출력값에서 상기 모듈러스의 값을 감산하여 그 결과값(Ai+1[511:0])을 출력한다.
한편, 64비트 PE를 64개를 반복 사용함으로써 구현되는 66비트 비트-슬라이스형 모듈러 곱셈기의 구조는 도2와 같다.
여기서 참조부호 201 ~ 712는 도1과 같은 512비트 프로세스 엘리먼트를 나타낸다.
처음 프로세스 엘리먼트(201)의 출력은 다음 프로세스 엘리먼트(202)의 입력이 되며, 이러한 과정을 통해 연산이 이루어지고, 최종 프로세스 엘리먼트(712)의 출력이 512비트 모듈러 곱셈의 결과값이 된다.
도 3은 도2의 512비트 모듈러 곱셈기를 이용하여 구현한 1024비트 모듈러 곱셈기의 블록도이다.
이것은 N비트(512비트) 모듈러 곱셈기를 이용하여 2N비트(1024비트) 모듈러 곱셈기를 구현하는 것이다.
이에 도시된 바와 같이, 승수의 상위 비트군과 피승수의 상위 비트군과 모듈러스를 상위 비트군을 입력받아 모듈러 곱셈 연산을 수행하는 제1모듈러 곱셈부(810)와, 상기 승수의 상위 비트군과 피승수의 하위 비트군과 모듈러스의 중위 비트군을 입력받아 모듈러 곱셈연산을 수행하는 제2모듈러 곱셈부(820)와, 상기 승수의 하위 비트군과 피승수의 상위 비트군과 모듈러스의 중위 비트군을 입력받아 모듈러 곱셈연산을 수행하는 제3모듈러 곱셈부(830)와, 상기 승수의 하위 비트군과 피승수의 하위 비트군과 모듈러스의 하위 비트군을 입력받아 모듈러 곱셈연산을 수행하는 제4모듈러 곱셈부(840)와, 상기 제1 내지 제4 모듈러 곱셈부(810, 820, 830, 840)의 각 출력값을 덧셈 연산하는 가산기(850)로 구성된다.
이와 같이 구성된 1024 비트 모듈러 곱셈장치는, 먼저 제1모듈러 곱셈부(810)에서 두 입력 오퍼랜드(X, Y)와 중간값 계산을 위한 입력 A의 상위 비트군(512비트)과 모듈러스 상위비트군(512비트)을 입력받아 모듈러 곱셈 연산을 한 후 512비트의 모듈러 곱셈 연산 결과를 출력한다.
아울러 제2 모듈러 곱셈부(820)는 두 입력 오퍼랜드(X, Y)와 중간값 계산을 위한 입력 A의 하위비트군(512비트)과 모듈러스의 하위 비트군(512비트)을 입력받아 모듈러 곱셈 연산을 한 후 512비트의 모듈러 곱셈 연산 결과를 출력한다.
또한, 제3 모듈러 곱셈부(830)는 입력 오퍼랜드(X)의 상위 비트군(512비트)과 입력 오퍼랜드(Y)의 하위 비트군과 입력 A의 하위 비트군(512)과 모듈러스의 중위 비트군(512비트)을 입력받아 모듈러 곱셈연산을 한 후 512비트의 모듈러 곱셈 연산 결과를 출력한다.
그리고 제4 모듈러 곱셈부(840)는 입력 오퍼랜드(X)의 하위 비트군(512비트)과 입력 오퍼랜드(Y)의 상위 비트군과 입력 A의 상위 비트군과 모듈러스의 중위 비트군(512비트)을 입력받아 모듈러 곱셈 연산을 한 후 512비트의 모듈러 곱셈연산 결과를 출력한다.
이렇게 4개의 512모듈러 곱셈부(810, 820, 830, 840)의 출력은 다시 가산기(850)로 입력되어 덧셈 연산을 수행하여 1024비트 모듈러 곱셈 연산 결과를 출력한다.
도 4는 본 발명에서 모듈러 곱셈기의 비트 확장 개념을 설명하기 위한 개념도이다.
이것은 512비트 모듈러 곱셈기를 이용한 1024비트 및 2048비트 모듈러 곱셈기의 구현 일 예를 보인 것이다.
512비트 모듈러 곱셈기 4개(901 ~ 904)를 이용하여 1024비트 모듈러 곱셈기(920)를 구현하고, 1024비트 모듈러 곱셈기(920)를 이용하여 2048비트 모듈러 곱셈기(930)를 구현한다.
도 4에서 미설명 부호 941은 512비트 가산기이고, 942는 1024비트 가산기이며, 943은 2048 가산기를 나타낸다.
이상에서 상술한 본 발명 "비트 슬라이스 모듈러 곱셈기"에 따르면, 모듈러 곱셈기의 오퍼랜드 비트 크기가 증가되는 경우에도 이미 구현된 하드웨어를 재사용하여 신속히 곱셈기를 구현할 수 있으므로, 기존과 같이 비트 크기가 증가되면 곱셈기를 재 설계해야 하는 문제점을 해소할 수 있으며, 이에 따라 설계기간의 단축이 가능하고, 모듈러 곱셈기의 오퍼랜드 확장을 용이하게 구현할 수 있는 이점이 있다.

Claims (2)

  1. 승수의 상위 비트군과 피승수의 상위 비트군과 모듈러스를 상위 비트군을 입력받아 모듈러 곱셈 연산을 수행하는 제1모듈러 곱셈부, 상기 승수의 상위 비트군과 피승수의 하위 비트군과 모듈러스의 중위 비트군을 입력받아 모듈러 곱셈연산을 수행하는 제2모듈러 곱셈부, 상기 승수의 하위 비트군과 피승수의 상위 비트군과 모듈러스의 중위 비트군을 입력받아 모듈러 곱셈연산을 수행하는 제3모듈러 곱셈부, 상기 승수의 하위 비트군과 피승수의 하위 비트군과 모듈러스의 하위 비트군을 입력받아 모듈러 곱셈연산을 수행하는 제4모듈러 곱셈부, 상기 제1 내지 제4 모듈러 곱셈부의 각 출력값을 덧셈 연산하는 가산기로 구성된 모듈러 곱셈 연산 장치에 있어서,
    상기 제1 내지 제4 모듈러 곱셈부는,
    상기 승수의 최하위 비트에서 최상위 비트에 이르는 각각의 비트값과 피승수를 곱셈 연산하는 제1곱셈기와, 상기 피승수의 최하위 비트값과 승수의 최하위 비트에서 최상위 비트에 이르는 각각의 비트값과 곱셈연산을 수행하는 제2곱셈기와, 상기 제1곱셈기의 결과값과 초기 값으로는 "0"을 갖되 이전 단계의 결과값을 갖는 중간결과값을 덧셈 연산하여 그 결과값을 출력하는 제1덧셈기와, 상기 제2곱셈기의 결과값과 중간결과값의 최하위 비트값을 배타적 논리합하여 그 결과값을 출력하는 배타적 논리합 연산기와; 상기 배타적 논리합 연산기의 결과값과 모듈러스의 값을 곱셈 연산을 수행하는 제3곱셈기와, 상기 제3곱셈기의 결과값과 상기 제1덧셈기의 출력값을 덧셈 연산하는 제2덧셈기와, 상기 제2덧셈기의 결과값에 대하여 순차 오른쪽으로 자리 이동을 시키는 쉬프터와, 상기 쉬프터의 출력값과 모듈러스의 값을 비교하여 쉬프터의 출력값이 상기 모듈러스의 값보다 큰 경우 쉬프터의 출력값에서 상기 모듈러스의 값을 감산하여 그 결과값(Ai+1[511:0])을 출력하는 비교연산기로 각각 구성된 것을 특징으로 하는 비트 슬라이스 모듈러 곱셈기.
  2. 삭제
KR10-2001-0053178A 2001-08-31 2001-08-31 비트 슬라이스 모듈러 곱셈기 KR100428755B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0053178A KR100428755B1 (ko) 2001-08-31 2001-08-31 비트 슬라이스 모듈러 곱셈기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0053178A KR100428755B1 (ko) 2001-08-31 2001-08-31 비트 슬라이스 모듈러 곱셈기

Publications (2)

Publication Number Publication Date
KR20030019820A KR20030019820A (ko) 2003-03-07
KR100428755B1 true KR100428755B1 (ko) 2004-04-30

Family

ID=27721782

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0053178A KR100428755B1 (ko) 2001-08-31 2001-08-31 비트 슬라이스 모듈러 곱셈기

Country Status (1)

Country Link
KR (1) KR100428755B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100484487B1 (ko) * 2002-10-29 2005-04-20 한국전자통신연구원 모듈러 연산 장치 및 방법, 그리고 이를 이용한 rsa암호 연산 시스템
KR101733871B1 (ko) * 2015-08-10 2017-05-24 한국전력공사 혼합 제곱 연산 방법, 장치 및 이를 활용한 프로그램
KR102496446B1 (ko) * 2020-10-14 2023-02-06 금오공과대학교 산학협력단 모듈러 연산을 위한 워드 병렬 연산 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05260043A (ja) * 1992-03-09 1993-10-08 Nippon Telegr & Teleph Corp <Ntt> ディジタル署名方式
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 乗算回路
US5745398A (en) * 1994-11-08 1998-04-28 Sgs-Thomson Microelectronics S.A. Method for the implementation of modular multiplication according to the Montgomery method
KR19980069870A (ko) * 1997-01-28 1998-10-26 윤종용 벡터 처리기용 실행 장치 데이터 패스
KR19990050434A (ko) * 1997-12-17 1999-07-05 정선종 대용량 키용 모듈러 승산장치
KR19990086179A (ko) * 1998-05-26 1999-12-15 윤종용 모듈러 연산장치 및 그 방법
KR20020076600A (ko) * 2001-03-29 2002-10-11 문상재 모듈라 곱셈장치

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5289397A (en) * 1991-07-22 1994-02-22 Itt Corporation High-speed modulo exponentiator device
JPH05260043A (ja) * 1992-03-09 1993-10-08 Nippon Telegr & Teleph Corp <Ntt> ディジタル署名方式
JPH0784762A (ja) * 1993-09-17 1995-03-31 Nippon Steel Corp 乗算回路
US5745398A (en) * 1994-11-08 1998-04-28 Sgs-Thomson Microelectronics S.A. Method for the implementation of modular multiplication according to the Montgomery method
KR19980069870A (ko) * 1997-01-28 1998-10-26 윤종용 벡터 처리기용 실행 장치 데이터 패스
KR19990050434A (ko) * 1997-12-17 1999-07-05 정선종 대용량 키용 모듈러 승산장치
KR19990086179A (ko) * 1998-05-26 1999-12-15 윤종용 모듈러 연산장치 및 그 방법
KR20020076600A (ko) * 2001-03-29 2002-10-11 문상재 모듈라 곱셈장치

Also Published As

Publication number Publication date
KR20030019820A (ko) 2003-03-07

Similar Documents

Publication Publication Date Title
Mert et al. Design and implementation of encryption/decryption architectures for BFV homomorphic encryption scheme
KR100267009B1 (ko) 고속 암호화 처리를 위한 어레이 구조를 가지는 모듈러 곱셈장치
Ding et al. High-speed ECC processor over NIST prime fields applied with Toom–Cook multiplication
Erdem et al. A general digit-serial architecture for montgomery modular multiplication
Shieh et al. Word-based Montgomery modular multiplication algorithm for low-latency scalable architectures
Bigou et al. Single base modular multiplication for efficient hardware RNS implementations of ECC
Koppermann et al. Low-latency X25519 hardware implementation: Breaking the 100 microseconds barrier
Koppermann et al. X25519 hardware implementation for low-latency applications
Zhang et al. An efficient CSA architecture for Montgomery modular multiplication
Heidarpur et al. An efficient and high-speed overlap-free karatsuba-based finite-field multiplier for fgpa implementation
Schinianakis et al. Residue number systems in cryptography: Design, challenges, robustness
Dai et al. Area-time efficient architecture of FFT-based montgomery multiplication
Zhang et al. High-radix design of a scalable montgomery modular multiplier with low latency
Abd-Elkader et al. Efficient implementation of Montgomery modular multiplier on FPGA
Awaludin et al. A high-performance ecc processor over curve448 based on a novel variant of the karatsuba formula for asymmetric digit multiplier
US6662201B1 (en) Modular arithmetic apparatus and method having high-speed base conversion function
KR100428755B1 (ko) 비트 슬라이스 모듈러 곱셈기
Kudithi et al. Radix-4 interleaved modular multiplication for cryptographic applications
Reddy et al. A low latency montgomery modular exponentiation
Tenca et al. A design framework for scalable and unified multipliers in GF (p) and GF (2m)
Hani et al. FPGA implementation of RSA public-key cryptographic coprocessor
Nibouche et al. Fast architectures for FPGA-based implementation of RSA encryption algorithm
KR100480997B1 (ko) GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치
Koppermann et al. Fast FPGA implementations of Diffie-Hellman on the Kummer surface of a genus-2 curve
Al-Khaleel et al. An elliptic curve cryptosystem design based on FPGA pipeline folding

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee