DOI QR코드

DOI QR Code

Design of Modular Exponentiation Processor for RSA Cryptography

RSA 암호시스템을 위한 모듈러 지수 연산 프로세서 설계

  • 허영준 (한국전자통신연구원) ;
  • 박혜경 (한국전자통신연구원) ;
  • 이건직 (경북대학교 컴퓨터공학과) ;
  • 이원호 (경북대학교 컴퓨터공학과) ;
  • 유기영 (경북대학교 컴퓨터공학과)
  • Published : 2000.12.01

Abstract

In this paper, we design modular multiplication systolic array and exponentiation processor having n bits message black. This processor uses Montgomery algorithm and LR binary square and multiply algorithm. This processor consists of 3 divisions, which are control unit that controls computation sequence, 5 shift registers that save input and output values, and modular exponentiation unit. To verify the designed exponetion processor, we model and simulate it using VHDL and MAX+PLUS II. Consider a message block length of n=512, the time needed for encrypting or decrypting such a block is 59.5ms. This modular exponentiation unit is used to RSA cryptosystem.

본 논문에서는 몽고메리 알고리즘을 사용하여 모듈러 곱셈을 빠르게 수행하는 선형 시스톨릭 어레이를 설계하고, 이 곱셈기와 LR 이진 제곱 곱셈 알고리즘을 사용하여 n 비트 메시지 블록에 대해 모듈러 지수 연산을 수행하는 지수 연산 프로세서를 설계한다 이 프로세서는 제어장치, 입출력 시프트 레지스터, 지수 연산 장치 등 3개의 영역으로 나 누어진다. 설계된 지수 연산 프로세서의 동작을 검증하기 위해 VHDL를 사용하여 모델링하고 MAX+PLUS II를 사용하여 시뮬레이션 한다. 메시지 블록의 길이 n=512일 때 설계된 지수 연산 프로세서의 지연 시간은 59.5ms이다. 설계된 모듈러 지수 연산 프로세서는 RSA 칩(chip)에 이용될 수 있을 것이다.

Keywords

Ⅰ. 서론

정보화 사회에서 음성, 화상, 데이터 등 다양한 종류의 정보를 교환하고 저장하는 대량 정보 통신시스템에서 이 시스템의 신뢰성과 안전성이 필수 불가결한 요건이며, 특히 시스템 내부 또는 각 시스템 상호 간 통신에서의 각종 정보에 대한 보안(security) 문제를 해결하기 위해 암호화 알고리즘과 그것의 효율적인 구현에 대한 연구가 이루어지고 있다. 여러 암호화 기법 중에서 1978년 공개된 RSA 공개키 암호 시스템이 현재 가장 널리 사용되고 있다(1).

RSA 암호시스템에서 송신자는 모든 사용자들에게 공개되는 수신자의 공개키 e를 이용하여 암호화된메시지 C* (mod N)을 보낸다. 수신자는 자신의비밀키 d를 이용해서 원래 메시지 M=(y (mod N) 을 복원한다. 암호시스템의 안전성을 확보하기 위해 M. e. Ne 512비트 이상의 아주 큰 수를 사용하기때문에 모듈러 지수 연산 속도가 RSA 암호시스템 성능에 큰 영향을 미친다. 모듈러 지수 연산은 단순히 AB (mod N) 형태의 곱셈을 연속적으로 수행함으로결과를 얻을 수 있는데, 빠른 암호시스템을 구현하기위해 모듈러 곱셈 연산의 단위 수행시간을 단축시키는것으로 빠른 곱셈 알고리즘을 제안하거나 하드웨어로곱셈기를 설계하였고”"气 모듈러 곱셈 수행 회수를줄이는 방법에 대한 연구가 이루어졌다'。

RSA 암호시스템은 암호화 및 복호화 때 처리 속도의 지연이 가장 큰 문제가 되므로 모듈러 지수 연산의 고속화를 위한 하드웨어 구현이 필수적이다. 첫 번째로 개발된 모듈러 지수 연산 프로세서는 분산된 여러 요소들을 하나의 보드위에 모아서 모듈러 지수 연산을 수행하였다. 1980년 Rivest, Shamir 와 Adlemane 512비트 모듈러 연산기를 1개의 칩 (chip)으로 구현하였다. 1981년 Sandia National 연구소에서 336비트 칩을 개발하였는데 이는 두 개의 칩을 합성함으로써 336비트 키를 사용하였다. Ivey는 512비트 모듈러스를 사용하는 RSA 암호시스템을 구현하였고(戚, Orupe 모듈러스 길이가 561비트이고 2, 인 곱셈기를 사용하는 암호 시스템을 발표하였다(3).

본 논문에서는 RSA 암호시스템에 사용할 수 있는 단일 칩 모듈러 지수 연산 프로세서를 설계한다. 우선 Montgomery 알고리즘을 이용하여 모듈러 곱셈시스톨릭 어레이를 설계하고 제어 장치와 입출력 레지스터 등 주변장치들을 추가하여 지수 연산을 수행하는 프로세서를 설계한다. 설계된 지수 연산기의 하드웨어 구현 가능성과 성능을 알아보기 위해 VHDL을이용하여 모델링하고 ALTERA사의 MAX+PLUS 11[2|) 를 사용하여 시뮬레이션한다.

본 논문의 구성은 다음과 같다. 먼저 2장에서 모듈러 곱셈을 수행하는 선형 시스톨릭 어레이에 대해기술하고, 3장에서는 LR 이진 제곱 지수 연산 알고리즘을 이용하여 모듈러 지수 연산 프로세서를 설계하고. VHDL을 이용하여 시뮬레이션 한다. 마지막으로 4장에서는 결론을 내린다.

Ⅱ. 모듈러 곱셈 시스톨릭 어레이

모듈러 곱셈 알고리즘에는 2n 자리수 C를 n 자리수 N에 대해 모듈러 감소시키는 고전적인(Classic) 알고리즘⑺, 한번에 몫을 추정하여 모듈러 감소 연산을 하는 Barrett 알고리즘(4). 큰 수를 产으로 나누었을 때 몫과 나머지를 구하는 것은 각각 그 수의 〃자리 이상의 수를 취하는 것과 〃자리 미만의 수를취하게 하여 빠른 모듈러 감소 연산을 수행하게 하는 Montgomery 알고리즘⑻, N이 주어지면 적당한 N의 배수 512개를 Table〔512〕에 저장하고 이것을이용하여 모듈러 감소를 하는 Selby 알고리즘⑼ 등이 있는데, 이중에서 Montgomery 알고리즘이 가장 빠르다고 알려져 있다(""*

Montgomery 알고리즘을 이용하여 모듈러 곱셈을 수행하는 시스톨릭 어레이 설계에 대해 많은 연구가 있었다(2)小狗 Sauerbrey(2)는 곱셈 연산을수행하는 두 개의 시스톨릭 어레이로 Montgomery 모듈러 곱셈기를 만들었고. Iwamura'2, 등은 Montgomery 모듈러 곱셈을 수행하는 선형 시스톨릭 어레이를 설계하였다. Walter'湖는 평면 시스톨릭 어레이를 제안하였다. 본 논문에서는 Montgomery 알고리즘을 이용하여 모듈러 곱셈을 수행하는 선형시스톨릭 어레이를 설계한다.

Montgomery 모듈러 곱셈 알고리즘을 분석하여 빠른 모듈러 연산을 수행할 수 있도록 알고리즘을 개선하고 정규 순환방정식으로 표현하면 아래와 같다.

#

알고리즘에 내재되어 있는 병렬성을 찾기 위해 정규순환방정식을 종속 그래프로 나타내면 그림 1 과같다. 종속 그래프로부터 자료 흐름 벡터들과 초기값의 위치를 구한 다음, 대수적으로 시간-공간 변환을 통해 모듈러 곱셈을 수행하는 시스톨릭 어레이를 설계된 시스톨릭 어레이는〔그림 2〕와 같고 모든 처리기의 구조는〔그림 3〕과 같다.

그림 1 종속 그래프

〔그림 2J 모듈러 곱셈 시스톨릭 어레이

그림 3 처리기 구조

모듈러스 N의 길이가 n 비트일 때 본 논문에서제안된 시스톨릭 어레이와 기존의 다른 시스톨릭 어레이의 성능을 비교하면〔표 1〕과 같다.

〔표 1) 모듈러 곱셈 시스톨릭 어레이의 성능 비교

Ⅲ. 모듈러 지수연산 프로세서 설계

3.1 모듈러 지수연산 알고리즘

아주 큰수의 모듈러 지수연산은 RSA 암호 시스템의 기본적인 연산이며 일반 사용자들이 수용할 수있을 정도의 빠른 속도로 수행되어져야 한다. 안정성을 확보하기 위해 C. M. Ne 아주 큰 수이어야하며, 일반적으로 512비트나 1024비트가 사용되고있다. 이러한 모듈러 지수승은 소프트웨어나 하드웨어 상에서 모듈러 곱셈의 반복적인 연산으로 수행된다. 현재까지 RSA 암호시스템의 수행속도를 증가시키기 위해 많은 알고리즘이 제시되었다’ 본 장에서는 기존의 지수 연산 알고리즘에 대해 알아본다.

원시 알고리즘은 C=M (mod N)으로부터 시작하여 C=CM (mod N)의 모듈러 곱셈 연산을 e-1 번의 곱셈을 한다. 원시적인 방법을 개선하여 곱셈수행 회수를 줄이기 위해 제안된 것이 "이진 제곱곱셈 (binary square and multiply)" 알고리즘이다⑺. 이진 제곱 곱셈 알고리즘은 지수 e의 이진 표현에 근거하여 반복하여 제곱과 곱셈을 수행한다. 0-14-24-3, …, eieo)를 지수。의 이진 표현이라 하면 지수。는 如비트 길이의 수이고 务-1는 최상위 비트(most significant bit)가 되고 eoe 최하위 비트(Ieas£ significant bit)가 되며, 지수。의 이진표현과 모듈러 지수 연산은 아래와 같다.

#

이 알고리즘은 각 반복문이 단지 모듈러 곱셈과 간단한 이진 결정(binary decision)만을 취하기 때문에 특히 하드웨어 상에서 수행하기에 효율적이다. 이진 제곱 곱셈 알고리즘은 지수 e의 비트가 처리되는 순서에 따라 두 가지 방법이 있다. 최상위 비트에서 최하위 비트 순서로 처리하는 Left-to-Right(LR) 과 최하위 비트에서 최상위 비트 순서로 처리하는 Right-to-Left(RL) 알고리즘이 있다. LR 이진 제곱 알고리즘은 아래와 같다.

#

이 알고리즘은 지수 e를 이진수로 표현했을 때 T'의 개수에 의해 모듈러 곱셈의 수행 회수가 결정된다. 평균적으로 e가 가지는 T'의 개수가 n/2일때 n번의 모듈러 제곱과 兀/2번의 모듈러 곱셈이 수행되므로 전체 모듈러 곱셈의 연산 수행 회수는 凯/2번이다. 최악의 경우 2n번, 최상의 경우는 n번의 모듈러 곱셈 연산을 수행한다. 연산에 필요한 기억장치는 메시지 값 M과 계산 결과 C값을 저장하기 위한 기억공간이 필요하다.

이진 곱셈 제곱 알고리즘은 e의 비트를 1비트씩스캔하였으나. 다른 방법으로 스캔되는 비트 수에따라, 2비트씩 스캔하면 quaternary 방식, 3비트씩 스캔하면 octal 방식으로 분류된다. 일반적으로스캔되는 비트 수가 Zog2m이면 m-ary 방식이라 한다. 이 방식은 곱셈의 회수를 줄일 수 있어나 M값부터 까지 값의 선계산(precomputation)이필요하고 계산된 값들을 저장할 기억공간이 필요한단점이 있어 하드웨어 구현이 용이하지 못하다.

또 다른 방법으로 제시된 알고리즘은 암호화 키 e 의 이진 표현에 계수 "-1”을 추가하여 결과적으로 “0”이 아닌 비트 수를 줄여 곱셈 연산 회수를 줄이는 방법으로 이진 잉여 표현법(binary redundant representation)을 사용하는 수정된 부호화 디지트(Modified signed digit)알고리즘이 있다"*. 이 알고리즘은 "'의 선계산을 하여 메모리에 저장하여야 하고 지수 e값의 표현에서 “0”이 아닌 수를 줄이는 선계산 과정을 수행하여야 하는 단점이 있다.

K-SR 알고리즘은 암호화 키 e를 표현함에 있어서 열 치환 표현 기법을 사용한다. 즉, 치환할 크기 K가 정해진 후에 를 만족하는 i에 대해서 i 개의 연속적인(consecutive) 비트 T을 2'T로 변환시키고, 2七1이하의 M의 지수(財, 几时&卢...)를선계산하여 메모리에 저장하고 필요시 사용하며 단지 연속적인 K개의 비트 T만을 K-SR 표현으로 변환시킬 수 있다'(3)

최근에 제안된 SS(l) 알고리즘은 e의 이진 표현에서 고정된 1개의 크기 내에서 홀수(odd number) 로표현 가능한 비트 패턴을 찾아서 대치하는 것이다薛 이렇게 함으로써 모듈러 지수 연산시 선계산되는 연산의 수를 반으로 줄이고 또 선계산 결과를 저장하는 메모리 공간을 줄일 수 있다.

본 논문에서는 위에서 고찰한 알고리즘 중 수행에필요한 기억장소와 수행 시간을 고려하여 하드웨어구현이 가장 용이한 LR 이진 제곱 곱셈 알고리즘을사용하여 모듈러 지수 연산 프로세서를 설계한다’ Montgomery 곱셈 알고리즘(MMM)을 사용한 LR 이진 제곱 곱셈 알고리즘은 다음과 같다.

#

여기서 Re 产을 의미한다. LR 이진제곱 곱셈 알고리즘에 Montgomery 모듈러 곱셈 알고리즘을 사용하기 위해서는 정규 모듈러 수 체계를 Montgomery 모듈러 수 체계로 변환하여야 한다. 위 알고리즘에서 M, C는 M, C의 Montgomery 수 표현을 의미한다. 단계 1. 2에서는 정규 수 체계인 메시지 M과 결과 값을 저장하기 위한 C를 Montgomery 모듈러 수 체계 표현으로 변경하는 계산이 선행된다. 단계 3에서 모듈러 지수 연산이 수행될 때, 중간결과( C) 의 제곱을 계산하기 위해 Montgomery 모듈러 곱셈 MMM( ~C, 亍)을 수행하고 지수 ei의 값이 T이면 메시지( M)와 중간결과( C)의 Montgomery 모듈러 곱셈 (:M, W) 을 한번 더 수행한다. 단계 4에서 Montgomery 수 체계의 계산 결과를 정규 모듈러 수 체계로 변환하기 위해 T과 지수 연산 결과 값 I를 사용하여 Montgomery 모듈러 곱셈 MMM{ C, 1) 을 한번 더 수행한다. 여기서 정규 수 체계 표현을 Montgomery 수 체계 표현으로 변경하고 다시 이것을 정규 수 체계로 변경하는 부가적인 연산이 필요하나 모듈러스 N에 AAmodN 형태의 제곱 연산과 AB mod N 형태의 곱셈 연산을 반복적으로 수행하는 시간에 비해 이 연산들의 계산 시간은 매우 미비하므로 부가적인 계산 시간을 무시할 수 있다.

3.2 모듈러 지수연산 프로세서 설계

본 절에서는 2장에서 기술한 모듈러 곱셈기와 LR 곱셈 제곱 알고리즘을 이용하여 RSA 암호시스템에사용되는 모듈러 지수 연산 프로세서를 설계한다. 모듈러 지수연산을 고속으로 수행하기 위해 설계한 지수 연산 프로세서는 人]용할 키를 입력받아 레지스터에저장하고 이것을 이용하여 입력되는 메시지를 암호화한다. 지수 연산 프로세서 내부에서 모든 데이터는 1 비트 단위로 처리되며 외부와의 입출력도 1비트 단위로 이루어지는 범용성 처리기이다. 모듈러 지수 연산프로세서는[그림 4〕와 같이 제어장치, 입출력 레지스터 , 지수 연산 장치 등 3개 영역으로 구성된다.

(그림 4) 모듈러 지수 연산 프로세서

3.2.1 제어장치(Control Unit)

제어장치는 사용자에 의해 선택된 구성에 대해 프로세서의 기능성을 구성하는 역할을 한다. 게다가 제어 장치는 지수 연산 프로세서의 계산 순서를 제어하고 인터페이스 프로토콜을 구현한다. 프로세서와의 통신은 사용자가 정의한 인터페이스 신호에 의해 제어되고 상태 플래그(state flag)는 프로세서에 의해 생성된다. 제어장치는 각 장치의 동작을 제어하기 위해 제어 신호를 생성한다. 제어 장치를 유한상태도(Finite State Machine)로 설계하기 위한상태 천이도는〔그림 5〕와 같다.

〔그림 5) 제어장치의 상태 천이도

제어장치는 3개의 단계로 구성된다. 먼저 모듈러 지수 연산 프로세서의 환경 설정을 위한 인터페이스프로토콜을 구현한다. 연산 프로세서에 입력되는 값들의 자리수를 지정하고, 초기화 과정으로 연산 프로세서의 내부 레지스터들을 초기화한다. 그리고 지수 (e), 모듈러스(N), 메시지(M). 제어신호(C0)값 들을 지수 연산기 내부 레지스터에 저장한다. 마지막으로 지수 연산 장치에서 일어나는 계산과정으로 정규수 체계를 Montgomery 수 체계로 변환하여 지수연산을 수행하고 계산 결과를 다시 정규 수 체계 표현으로 변환한다. 지수의 각 비트를 검사하여 제곱과 곱셈 연산이 올바르게 수행되도록 한다.

3.2.2 I/O 레지스터

입줄력 (Input/Output) 레지스터는 지수 키 e와데이터 입출력과 저장을 위해 데이터를 결합하고 계산 중간 결과를 저장하고 계산에 필요한 값들을 지수 연산 프로세서에 전달한다. I/O 레지스터는 시프트(shift) 레지스터로 구성된다. 암 . 복호화에 사용되는 키 모듈러스(N), 지수(e). 제어 신호(。〃와입력 더]이터(M)를 입력하여 각 레지스터에 저장하고 곱셈과 제곱의 중간 계산 결과를 저장한다.

RSA 지수 연산을 수행하는데 필요한 피연산자 (operand)# 저장하기 위해 5개의 시프트 레지스터를 사용하였다. 모듈러스 시프트 레지스터 (RegN)에 공개키 N이 저장되고. Exponent 시프트 레지스터 (RegE)에 지수 e가 저장된다. 입력 데이터 M와 출력데이터 C는 각각 RegM과 RegC 레지스터에 저장되고. 모듈러 곱셈 시스톨릭 어레이의 동작을 제어하기 위해 제어 신호(C〃)가 Control 시프트 레지스터(RegCtl) 에 저장된다. 지수 연산 프로세서에 사용되는 시프트 레지스터의 블록도는〔그림 6〕과 같다. 모듈러스 시프트 레지스터, 입력 시프트 레지스터, 출력 시프트 레지스터, 제어 신호 (Control) 시프트 레지스터는 Right cyclic 시프트 레지스터인 반면 Exponent 시프트 레지스터는 Left cyclic 시프트 레지스터이다.

(그림 6) 입출력 시프트 레지스터

3.2.3 모듈러 지수 연산 장치

모듈러 지수 연산 장치는 LR 이진 제곱 알고리즘을 사용하여 설계하였다. 모듈러 지수 연산장치의 블록구조는〔그림 7]과 같다.

그림 7 지수 연산장치 블록도

지수 연산 장치는 지수를 저장하고 있는 레지스터 RegE의 최상위 비트(MSB)부터 최하위 비트(LSB) 순으로 검사한다. 지수 값 e를 저장하는 레지스터 RegE 의 i번째 값 匂에 대해 제어신호를 저장하고 있는 RegCtl 레지스터. 지수 연산의 중간 계산 결과값을 저장하고 있는 RegC 레지스터. 모듈러스를저장하고 있는 RegN 레지스터는 저장하고 있는 값을 1비트씩 모듈러 곱셈 장치 (Modular Multiplication! Unit)으로 보내어 제곱 연산, CC mod N. 을 계산하여 결과값을 RegC 레지스터에 저장한다. 만약 지수 e, 의 값이 T이면 MC mod N을 계산하기 위해 RegCtl 레지스터. RegN 레지스터. 입력 데이터를 저장하고 있는 RegM 레지스터와 RegC 레지스터의 값들을 곱셈 장치에 전달하여 곱셈 연산이 수행되도록 한다. 즉, e, 값에 대해 제곱 연산을 수행하고 ei 값에 따라 곱셈 연산도 하기도 한다. 레지스터 RegM 값은 e, 값의 비트값에 따라 e값이 T'이면레지스터 값을 모듈러 곱셈 장치로 출력한다. e, 비트에 대한 연산이 끝난 후 레지스터 RegE의 값을 1비트 왼쪽 시프트 하여 번째 비트를 검사하여 위의 연산 과정을 반복한다.

3.3 VHDL 실험

모듈러 지수 연산기의 하드웨어 성능을 알아보기위해 각 모듈에 대해서 하드웨어 기술 언어인 VHDL 코드를 작성하고 작성된 코드의 동작을 검증하기 위해 ALTERA사의 MAX + PLUS II 도구를 이용하여시뮬레이션한 결과는〔그림 8〕과 같다. Clock는 클락 주기, Ctljn, NJn, E_in, M_ine 지수 연산기로 입력되는 입력 값을 나타내고. C_oute 계산결과를 나타낸다.

N_in="1011". E_in="0I01"일 때 지수 연산의 결과 C_out는 "1001"임을 알 수 있다.

〔그림 8) 실험 결과

지수 연산기의 Clock 주기는 50ns임을 알 수 있고, 결과 값의 출력이 시작되는 지연시간은 10.2972您임을 알 수 있다. 입력 데이터 N_in. Ctl_in, E_in, M_in의 입력시간은 949.5ns이고 한번의 모듈러 곱셈 수행시간이 972ns로 9번의 곱셈을 수행하므로 한 번의 모듈러 지수 연산에 소요되는 지연 시간은 10.2俊임을 알 수 있다.

입력 값의 자리수가 4, 8. 16. 32, 64비트, 지수 E_in값 중에서 1의 개수가 n/2일 때 MAX+PLUS II와 FLEX10K 장치를 사용하여 실험한 지수 연산프로세서의 지연 시간과 사용 게이트 수는〔표 2〕와같다. 만약 메시지 블록의 길이가 n = 512이고 지수 E_in값 중에서 1의 개수가 256일 때 설계된 암호시스템의 지연 시간은 59.5ms로 예상된다. 수행 시간이 500ms보다 작은 암호시스템은 스마트 카드에 이용될 수 있는더L 본 논문에서 설계된 지수 연산프로세서는 스마트 카드에 이용될 수 있다.

(표 2) 자리수별 지연시간과 게이트 수(r = 2)

Ⅴ. 결론

본 논문에서는 RSA 암호시스템에 사용되는 모듈러 곱셈 시스톨릭 어레이와 지수 연산 프로세서를설계하였다. 설계된 지수 연산 프로세서의 구조는계산 순서를 제어하는 제어장치, 시프트 레지스터로구현되는 입출력 (I/O) 레지스터, 지수연산을 수행하는 지수 연산 장치의 3개 영역으로 구성된다.

설계된 지수 연산 프로세서의 VHDL 코드를 사용하여 모델링하고 회로의 동작을 검증하기 위해 MAX+ PLUS II를 이용하여 시뮬레이션하고 성능을 확인하였다. 입력 값의 자리수가 4비트 일 때 VHDL 언어로시뮬레이션하고 ALTERA사의 EPM9400CLC84-15 장치(device)를 사용하여 합성을 한 결과 지수 연산프로세서의 지연시간은 10.2972us이다. 만약 메시지블록의 길이가 n=512이고 지수 E_in값 중에서 T의개수가 256일 때 지수 연산 프로세서의 지연 시간은 59.5ms이다.

설계된 RSA 모듈러 곱셈 시스톨릭 어레이와 지수 연산기는 시뮬레이션 결과를 통해 암. 복 호화가 정확히 수행됨을 확인하였고, 하드웨어 구현이 가능하여 하드웨어를 이용한 빠른 모듈러 연산을 수행할 수 있다. 향후 연구과제로는 새로운 곱셈 알고리즘 및 지수 알고리즘의 개발과 다른 지수 알고리즘을 사용하여 지수 연산 프로세서를 설계하여 비교 분석하여 가장 효율적인 지수 연산 프로세서를 설계한다.

References

  1. Commu. ACM. v.21 A Method for Obtaining Digital Signatures and Public-key Cryptosystems R.L. Rivest;A. Shamir;L. Adleman
  2. Abstract AUSCRYPT'92 A Modular Exponentiation unit based on Systolic Arrays J. Sauerbrey
  3. Ph.D. thesis Exponentiation, Modular Multiplication and VLSI Implementation of High-Speed RSA Cryptography H. Orup
  4. Advances in Cryptology-Crypto'86, LNCS 263 Implementing the Rivest Shamir and Adleman Public Key encryption algorithm on a standard digital signature Processor Paul Barrett
  5. Proceedings of the 11th IEEE Symposium on Computer Arithmetic Fast implementation of RSA cryptography Shand, M;Vuillemin, J.
  6. Computer Mathematics Applications v.25 no.6 An improved binary algorithm for RSA C.N. Zhang
  7. The Art of Programming(2nd Ed.) v.2:Seminumerical Algorithms D.E. Knuth
  8. Mathematics of Computation v.44 Modular Multiplication Without Trial Division P.L. Montgomery
  9. IEE Proceedings v.136 Pt. E no.3 Algorithms for software implementations of RSA A. Selby;C. Mitchell
  10. Advances in Cryptology-CRYPTO'93 Comparison of three modular reduction function Antoon Bosselaers;Rene Govaerts;Joos Vandewalle
  11. 통신정보보호학회지 v.4 no.3 PC에서 모듈러 곱셈연산의 구현과 비교 분석 황효선;임채훈;이필중
  12. IEEE Transaction on computers v.41 no.7 Modular Multiplication Hardware Algorithms with Redunt Representation and Their Application to RSA Cryptosystem N. Takagi;S. Yajima
  13. Handbook of Applied Cryptography A.J. Menezes;P.V. Oorschot;S. Vanstone
  14. Electronics letters v.30 no.25 Efficient of SS(1) square and multiply exponentiation algorithms K.Y. Lam;L.C.K. Hui
  15. IEEE MICRO v.14 no.3 IEEE
  16. IEE Proceedings Computer Digit Technology v.141 no.3 Public-key cryptosystem design based on factoring and discrete logorithms L. Harn
  17. Technical Report RSA Hardware Implementation C.K. Koc
  18. ISSCC Digest of Technical Papers A 600MHz superscalar RISC microprocessor with out-of-order execution Gieseke, B.
  19. Proceedings of the IEEE 1992 Custom Integrated Circuits Conference An ultra-high speed public key encryption processor Ivey, P.A.;Walker, S.N.;J.M.;Davidson, S.
  20. Advances in Cryptology - CRYPTO'89 A survey of hardware implementations of RSA E.F. Brickell
  21. MAX+PLUS Ⅱ Getting Started v.11 ALTERA
  22. Proc. Euro CRYPT'92 Systolic Arrays for Modular Exponentiation using Montgomery Method K. Iwamura;T. Matsumoto;H. Imai
  23. IEEE Trans. on Computers v.42 Systolic Modular Multiplication C.D. Walter