KR20010108780A - Pipeline modulo operation device for realizing encryption hardware - Google Patents

Pipeline modulo operation device for realizing encryption hardware Download PDF

Info

Publication number
KR20010108780A
KR20010108780A KR1020000029689A KR20000029689A KR20010108780A KR 20010108780 A KR20010108780 A KR 20010108780A KR 1020000029689 A KR1020000029689 A KR 1020000029689A KR 20000029689 A KR20000029689 A KR 20000029689A KR 20010108780 A KR20010108780 A KR 20010108780A
Authority
KR
South Korea
Prior art keywords
output
pipeline
receiving
exclusive
adder
Prior art date
Application number
KR1020000029689A
Other languages
Korean (ko)
Other versions
KR100460764B1 (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 KR10-2000-0029689A priority Critical patent/KR100460764B1/en
Publication of KR20010108780A publication Critical patent/KR20010108780A/en
Application granted granted Critical
Publication of KR100460764B1 publication Critical patent/KR100460764B1/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/727Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Advance Control (AREA)

Abstract

본 발명은 암호화에 적용되는 모듈러 연산 장치에 관한 것으로, 모듈러 곱셈 연산을 계산함에 있어서, 고속처리가 가능하면서도 회로 면적을 최소화할 수 있는 모듈러 연산 장치를 제공하는데 그 목적이 있다. 이를 위하여 본 발명은 RSA 방식의 암호화를 수행하는 암호화 장치에 있어서, 곱셈기로부터 b 비트의 출력과 피승수를 입력받는 제1배타적 논리곱 연산부; 상기 곱셈기의 출력을 왼쪽으로 b 비트만큼 쉬프트하는 제1쉬프트부; 상기 배타적 논리곱 연산부의 출력을 입려받는 제1파이프라인; 모듈러스의 계수와 제5파이프라인의 출력을 입력받는 제2배타적 논리곱 연산부; 상기 제2배타적 논리곱 연산부의 출력을 입력받는 제2파이프라인; 상기 제2파이프라인의 출력에 대하여 보수화 연산을 수행하는 보수화 수단; 상기 제1파이프라인과 상기 보수화 수단과 제3파이프라인의 출력을 입력받아 덧셈 연산을 하기 위한 덧셈 연산기; 상기 덧셈 연산기의 출력을 입력받는 제4파이프라인; 상기 제4파이프라인의 출력을 입력받아 파이프라인을 수행한 값을 저장하기 위한 축적기; 상기 축적기의 출력을 입력받는 제3파이프라인; 상기 축적기의 출력을 왼쪽으로 b 비트만큼 쉬프트하기 위한 제2쉬프트부 및 제5파이프라인; 상기 제4파이프라인의 출력을 n으로 나누어 분배하기 위한 분배기; 및 상기 분배기(240)의 출력을 입력받는 제5파이프라인(250)을 포함하여 이루어진다.The present invention relates to a modular arithmetic apparatus applied to encryption, and to provide a modular arithmetic apparatus capable of minimizing a circuit area while enabling high speed processing in calculating a modular multiplication operation. To this end, the present invention provides an encryption apparatus for performing RSA encryption, comprising: a first exclusive logical product operation unit receiving an output of b bits and a multiplicand from a multiplier; A first shift unit shifting the output of the multiplier by b bits to the left; A first pipeline receiving the output of the exclusive AND product; A second exclusive logical AND operation unit receiving modulus coefficients and an output of a fifth pipeline; A second pipeline receiving an output of the second exclusive AND product; Complementary means for performing a complementary operation on the output of the second pipeline; An addition operator for receiving an output of the first pipeline, the complementary means, and the third pipeline and performing an addition operation; A fourth pipeline receiving the output of the addition operator; An accumulator for receiving the output of the fourth pipeline and storing a value of performing the pipeline; A third pipeline receiving an output of the accumulator; A second shift portion and a fifth pipeline for shifting the output of the accumulator by b bits to the left; A divider for dividing and dividing the output of the fourth pipeline by n; And a fifth pipeline 250 receiving the output of the distributor 240.

Description

암호화 하드웨어 구현을 위한 파이프라인 모듈러 연산 장치{Pipeline modulo operation device for realizing encryption hardware}Pipeline modulo operation device for realizing encryption hardware}

본 발명은 암호화 장치에 관한 것으로, 특히 RSA 방식의 암호화 장치 중 암호화에 적용되는 회로 규모가 작은 고속의 모듈러 연산 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an encryption device, and more particularly, to a high speed modular computing device having a small circuit scale applied to encryption among RSA encryption devices.

일반적으로 암호화 기술은 다양한 분야에서 활용가능한데 최근에는 특히 인터넷의 활성화에 따라 통신상의 필수 기술로 부각되고 있다. 이러한 암호화 기술 중 주요한 방법의 하나가 RSA 방식의 암호화다. RAS는 1978년 Rivest, Shamir, Adleman이 발표한 논문에서 제안된 시스템을 말하며, 발표자의 머리 문자를 연결한 것이다. RSA 방식의 암호화는 독자적인 암호화 뿐만이 아니라 DES 암호화 등과 결합하여 네트워크 상의 암호화에도 널리 쓰이고 있다.Generally, encryption technology can be used in various fields. Recently, as the Internet is activated, it is emerging as an essential technology for communication. One of the main methods of such encryption technology is RSA encryption. RAS refers to the proposed system in a paper published by Rivest, Shamir, and Adleman in 1978, and connects the speaker's initials. RSA encryption is widely used in network encryption in combination with DES encryption as well as proprietary encryption.

RSA 알고리즘에서는 암호화 키와 복호키로 각각 2 개의 양의 정수가 사용된다. 즉 메시지(M)을 암호화하기 위해 두 개의 양의 정수로 구성된 암호화 키(e,n)을 이용하여 메시지(M)을 e승한 값 Me를 계산한 후 n으로 나누어 나머지를 구한 값이 암호문(c)이 된다. 복호화는 복호키(d,n)을 이용하여 암호문 c를 d번 곱한 후 n으로 나누게 되면 원래의 메시지 M이 된다. 이와 같이 메시지 M을 구하기 위한 가장 중요한 연산중의 하나가 모듈러 곱셈이다.In the RSA algorithm, two positive integers are used for the encryption key and the decryption key, respectively. In other words, to encrypt the message (M), using the encryption key (e, n) consisting of two positive integers, the value of the message M multiplied by e is calculated, and the value obtained by dividing by n is obtained from the ciphertext (c). ) Decryption is obtained by multiplying the ciphertext c by d using a decryption key (d, n) and dividing by n to become the original message M. Thus, one of the most important operations for obtaining the message M is modular multiplication.

그러나 이러한 모듈러 연산 방법을 하드웨어로 구현할 때 임계 경로의 지연으로 인한 연산 속도가 문제가 된다. 그리고 모듈러 곱셈 장치가 차지하는 면적이 크다는 문제점이 발생하게 된다.However, when implementing this modular operation method in hardware, the operation speed due to the delay of the critical path becomes a problem. And a problem arises that the area occupied by the modular multiplication apparatus is large.

본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 것으로써, 모듈러 곱셈 연산을 계산함에 있어서, 고속처리가 가능하면서도 회로 면적을 최소화할 수 있는 모듈러 연산 장치를 제공하는데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems of the prior art, and it is an object of the present invention to provide a modular computing device capable of minimizing a circuit area while performing high speed processing in calculating a modular multiplication operation.

도1은 본 발명의 모듈러 연산장치의 블럭도,1 is a block diagram of a modular computing device of the present invention;

도2는 상기 덧셈 연산기의 구조를 나타내는 블럭도.2 is a block diagram showing the structure of the addition operator;

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

100 : 곱셈기 140 : 제1배타적 논리합 연산부100: multiplier 140: first exclusive logical operation unit

150 : 제1파이프라인 180 : 보수화 수단150: first pipeline 180: repair means

190 : 덧셈 연산기 240 : 분배기190: addition calculator 240: divider

상기 목적을 달성하기 위하여 본 발명의 모듈러 연산 장치는 RSA 방식의 암호화를 수행하는 암호화 장치에 있어서, 곱셈기로부터 b 비트의 출력과 피승수를 입력받는 제1배타적 논리곱 연산부; 상기 곱셈기의 출력을 왼쪽으로 b 비트만큼 쉬프트하는 제1쉬프트부; 상기 배타적 논리곱 연산부의 출력을 입력받는 제1파이프라인; 모듈러스의 계수와 제5파이프라인의 출력을 입력받는 제2배타적 논리곱 연산부; 상기 제2배타적 논리곱 연산부의 출력을 입력받는 제2파이프라인; 상기 제2파이프라인의 출력에 대하여 보수화 연산을 수행하는 보수화 수단; 상기 제1파이프라인과 상기 보수화 수단과 제3파이프라인의 출력을 입력받아 덧셈 연산을 하기 위한 덧셈 연산기; 상기 덧셈 연산기의 출력을 입력받는 제4파이프라인; 상기 제4파이프라인의 출력을 입력받아 파이프라인을 수행한 값을 저장하기 위한 축적기; 상기 축적기의 출력을 입력받는 제3파이프라인; 상기 축적기의 출력을 왼쪽으로 b 비트만큼 쉬프트하기 위한 제2쉬프트부 및 제5파이프라인; 상기 제4파이프라인의 출력을 n으로 나누어 분배하기 위한 분배기; 및 상기 분배기(240)의 출력을 입력받는 제5파이프라인(250)을 포함하여 이루어진다.In order to achieve the above object, the modular operation device of the present invention is an encryption device for performing RSA encryption, comprising: a first exclusive logical product operation unit receiving an output of b bits and a multiplicand from a multiplier; A first shift unit shifting the output of the multiplier by b bits to the left; A first pipeline receiving an output of the exclusive AND product; A second exclusive logical AND operation unit receiving modulus coefficients and an output of a fifth pipeline; A second pipeline receiving an output of the second exclusive AND product; Complementary means for performing a complementary operation on the output of the second pipeline; An addition operator for receiving an output of the first pipeline, the complementary means, and the third pipeline and performing an addition operation; A fourth pipeline receiving the output of the addition operator; An accumulator for receiving the output of the fourth pipeline and storing a value of performing the pipeline; A third pipeline receiving an output of the accumulator; A second shift portion and a fifth pipeline for shifting the output of the accumulator by b bits to the left; A divider for dividing and dividing the output of the fourth pipeline by n; And a fifth pipeline 250 receiving the output of the distributor 240.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 설명하기로 한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the technical idea of the present invention. do.

도1은 본 발명의 모듈러 연산장치의 블럭도이다.1 is a block diagram of a modular computing device of the present invention.

상기 도1을 참조하면, 본 발명의 모듈러 연산장치는 곱셈기(100)로부터 b 비트의 출력과 피승수(110)을 입력받는 제1배타적 논리곱 연산부(140)와, 상기 곱셈기의 출력을 왼쪽으로 b 비트만큼 쉬프트하는 제1쉬프트부와, 상기 배타적 논리곱 연산부(140)의 출력을 입려받는 제1파이프라인(150)과, 모듈러스(120)의 계수와 제5파이프라인(250)의 출력을 입력받는 제2배타적 논리곱 연산부(160)와, 상기 제2배타적 논리곱 연산부(160)의 출력을 입력받는 제2파이프라인(170)과, 상기 제2파이프라인의 출력에 대하여 보수화 연산을 수행하는 보수화 수단(180)과, 상기 제1파이프라인(150)과 상기 보수화 수단(180)과 제3파이프라인의 출력을 입력받아 덧셈 연산을 하기 위한 덧셈 연산기(190)와, 상기 덧셈 연산기(190)의 출력을 입력받는 제4파이프라인(200)과, 상기 제4파이프라인(200)의 출력을 입력받아 파이프라인을 수행한 값을 저장하기 위한 축적기(210)와, 상기 축적기(210)의 출력을 입력받는 제3파이프라인(230)과, 상기 축적기(210)의 출력을 왼쪽으로 b 비트만큼 쉬프트하기 위한 제2쉬프트부 및 제5파이프라인(220)과, 상기 제4파이프라인의 출력을 n으로 나누어 분배하기 위한 분배기(240)와, 상기 분배기(240)의 출력을 입력받는 제5파이프라인(250)을 구비한다.Referring to FIG. 1, the modular operation device of the present invention includes a first exclusive logical product operation unit 140 that receives an output of b bits and a multiplicand 110 from the multiplier 100, and outputs the output of the multiplier to the left b. A first shift unit shifting by a bit, a first pipeline 150 receiving the output of the exclusive AND product 140, a coefficient of the modulus 120, and an output of the fifth pipeline 250. Performing a complementary operation on the received second exclusive AND operator 160, the second pipeline 170 receiving the output of the second exclusive AND operator 160, and the output of the second pipeline. An add operator 190 for receiving an output of the complementary means 180, the first pipeline 150, the output of the complementary means 180, and the third pipeline, and the addition operator 190. The fourth pipeline 200 receiving the output of the fourth pipeline 200 The accumulator 210 for storing the pipelined value and the third pipeline 230 receiving the output of the accumulator 210 and the accumulator 210. A second shift unit and a fifth pipeline 220 for shifting the output to the left by b bits, a divider 240 for dividing the output of the fourth pipeline by n, and a divider 240 The fifth pipe line 250 receives an output.

본 발명에서 구현하고자 하는모듈러(Modulo) 곱셈 연산을 살펴보면 다음과 같다. 우선 다음의 곱셈 P'를 정의하면 다음 수학식1과 같다.Looking at the Modulo multiplication operation to be implemented in the present invention. First, the following multiplication P 'is defined.

P' = A × B = A × Bi × 2i = (A × Bi) × 2iP '= A × B = A × Bi × 2i = (A × Bi) × 2i

= 2(...2(2(0 + A × Bk-1) + A × Bk-2) + ...) + A × B0= 2 (... 2 (2 (0 + A × Bk-1) + A × Bk-2) + ...) + A × B0

위의 연산식은 쉬프트-애드(shift-add) 곱셈 알고리즘을 필요로 한다. 또한 매 단계마다의 부분곱 모듈로(modulo) n은 다음 표1과 같이 구할 수 있다.The above expression requires a shift-add multiplication algorithm. In addition, the modulo n at each step can be obtained as shown in Table 1 below.

1. P := 02. for i = 0 to k-12a. P := 2P + A × Bj2b. P := P mod n3. return PP: = 02.for i = 0 to k-12a. P: = 2P + A × Bj2b. P: = P mod n3. return P

결국, P = AB(mod n) 의 주요 연산을 차지하는 부분은 내부 곱인 P := 2b× P + A × Bi - Q × n 을 구하는 것이다. 여기서 2b를 라딕스(radix)라고 하자. 또한 P는 부분 내부곱이고, Bi는 라딕스(radix) 2b의 B의 i번째 숫자이다. Q는 모듈러(modelo) n을 줄이기 위하여 부분곱 P로부터 모듈로(modulo) n을 뺀 숫자이다. Q는 부분곱으로 현재 부분 곱인 P를 n으로 나누어 구할 수 있다.After all, the main part of P = AB (mod n) is to find the internal product P: = 2 b × P + A × Bi-Q × n. Let 2 b be radix. P is the partial internal product and Bi is the i-th number of B in radix 2 b . Q is the number of sub products P minus modulo n to reduce modelo n. Q is the partial product, which can be found by dividing the current partial product P by n.

라딕스(radix) 2 곱셈기의 속도를 극복하기 위해서는 하이-라딕스(High-radix)방식을 사용하도록 한다. 하이-라딕스(High-radix) 연산은 클럭 사이클은 적지만, 사이클 타임과 보다 많은 면적을 필요로 한다.To overcome the speed of a radix 2 multiplier, use a high-radix method. High-radix operations require fewer clock cycles, but require cycle times and more area.

라딕스(radix) 2 방식에서는 앤드 게이트 어레이(AND gate array)를 이용하여 부분곱을 생성할 수 있다. 하이-라딕스(High-radix) 방식에서의 부분 곱 계산은 보다 복잡할 수 있다. 하지만, 부분곱의 계산을 위한 방법은 파이프라인 방식을 이용하여 사이클 타임을 많이 증가시키지 않을 수 있다.In the Radix 2 method, a partial product may be generated using an AND gate array. Partial product calculation in a high-radix scheme can be more complex. However, the method for calculating the partial product may not increase the cycle time by using the pipeline method.

도2는 상기 덧셈 연산기의 구조를 나타내는 블럭도이다.2 is a block diagram showing the structure of the addition operator.

상기 도2를 참조하면, 본 발명의 덧셈 연산기는 Ai, Bi, Mi를 가산하여합(S'i) 및 캐리(Ci+1)을 발생하는 제1덧셈기(200)와, 상기 제1덧셈기(200)의 출력을 입력받는 제2파이프라인(210)과, 선택신호에 따라 상기 제2파이프라인(210)을 통하여 입력되는 신호들을 선택하여 출력하는 입력선택기(220)와, 상기 입력선택기(220)의 출력을 입력받는 제3파이프라인(230)과, 상기 제3파이프라인(230)의 출력을 가산하는 제2덧셈기(240)와, 제어신호에 따라 상기 제2덧셈기(240)의 출력의 차단 여부를 결정하는 출력 생성기(250)와, 상기 제2덧셈기(240)의 캐리 발생 여부에 따라 선택신호와 제어신호를 발생하는 제어부(260)를 구비한다.Referring to FIG. 2, the addition operator of the present invention adds Ai, Bi, and Mi to generate a sum S'i and a carry Ci + 1, and a first adder 200. A second pipe line 210 receiving the output of the 200, an input selector 220 for selecting and outputting signals input through the second pipe line 210 according to a selection signal, and the input selector 220 Of the third pipe line 230 receiving the output of the second output line, the second adder 240 adding the output of the third pipe line 230, and the output of the second adder 240 according to a control signal. An output generator 250 for determining whether to cut off is provided, and a controller 260 for generating a selection signal and a control signal according to whether a carry of the second adder 240 occurs.

먼저 제1덧셈기(200)은 3입력(Ai, Bi, Mi)에 대한 가산 연산을 수행하여 다음 수학식2와 같이 캐리와 그 합을 구한다.First, the first adder 200 performs an add operation on three inputs Ai, Bi, and Mi to obtain a carry and a sum thereof as shown in Equation 2 below.

Ci+1 = Ai·Bi + Ai·Mi + Bi·MiCi + 1 = AiBi + AiMi + BiMi

S'i = AiBiMiS'i = Ai Bi Mi

여기서는 배타적 논리합 연산을 나타내고, ·는 논리곱 연산을 의미한다.here Denotes an exclusive OR operation, and denotes an AND operation.

이어서, 입력선택기(220)는 선택신호에 따라 상기 제2파이프라인(210)의 출력(Si, Ci+1) 또는 외부의 입력(S", Ni)중 하나를 선택 출력한다.Subsequently, the input selector 220 selectively outputs one of the outputs Si and Ci + 1 of the second pipe line 210 and the external inputs S and Ni according to the selection signal.

이어서, 상기 제2덧셈기(240)은 상기 제3파이프라인(230)의 출력을 가산하고, 그 가산 결과로서의 최종 캐리(C"i+1)와 합(S"i)를 각각 출력한다.Subsequently, the second adder 240 adds an output of the third pipeline 230 and outputs a final carry C ″ i + 1 and a sum S ″ i as the addition result.

이어서, 상기 출력생성기(250)은 상기 제어기(260)로부터의 제어신호에 따라 상기 제2덧셈기(240)의 출력을 스위칭하는 역할을 수행한다. 즉 상기제2덧셈기(240)의 출력을 최종 출력으로 그대로 출력하거나, 혹은 차단한다. 이때 상기 제1 및 제2덧셈기(200, 240)는 고속 연산을 위해 캐리 세이브 가산기(carry save adder)를 이용하는 것이 바람직하다.Subsequently, the output generator 250 switches the output of the second adder 240 according to a control signal from the controller 260. That is, the output of the second adder 240 is output as it is, or cut off as the final output. In this case, it is preferable that the first and second adders 200 and 240 use a carry save adder for a high speed operation.

이어서, 상기 제어기(260)는 회로 구성의 재이용을 위해 상기 제2덧셈기(240)의 가산 결과로서 출력되는 최종 캐리(C"i+1)를 입력받아, 만약 캐리가 발생된 경우라면 즉, C"i+1이 논리 하이이면 상기 입력선택기(220)가 상기 제2파이프라인(210)의 출력을 선택 출력하도록 선택신호를 발생하고, 또한 출력생성기(250)에 제어신호를 발생하여 상기 제2덧셈기(240)의 출력을 차단한다. 반대로 C"i+1이 논리 로우이면 상기 입력선택기(220)에 제어신호를 선택신호를 발생하여 상기 제2파이프라인(210)의 출력을 선택 출력하도록 하고, 상기 출력생성기(250)에 제어신호를 발생하여 최종 출력으로서 상기 제2덧셈기(240)의 출력을 그대로 출력하도록 제어한다.Subsequently, the controller 260 receives a final carry C ″ i + 1 output as a result of the addition of the second adder 240 to reuse the circuit configuration, and if the carry is generated, that is, C "If i + 1 is a logic high, the input selector 220 generates a selection signal to selectively output the output of the second pipeline 210, and generates a control signal to the output generator 250 to generate the second signal. The output of the adder 240 is blocked. On the contrary, when C "i + 1 is a logic low, a control signal is generated to the input selector 220 to selectively output an output of the second pipeline 210, and a control signal to the output generator 250. Is generated to control the output of the second adder 240 to be output as it is.

본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.Although the technical spirit of the present invention has been described in detail according to the above-described preferred embodiment, it should be noted that the above-described embodiment is for the purpose of description and not of limitation. In addition, those skilled in the art will understand that various embodiments are possible within the scope of the technical idea of the present invention.

상기와 같이 본 발명은 파이프라인을 이용함으로써 고속 연산이 가능하며 효율적인 하드웨어 구성이 가능하게 되어 실시간 하드웨어 구현시 면적 및 속도의 상관관계가 조화된 칩을 개발할 수 있다.As described above, the present invention enables a high speed operation and an efficient hardware configuration by using a pipeline, so that a chip in which the correlation between area and speed is harmonized when real-time hardware is implemented can be developed.

Claims (2)

RSA 방식의 암호화를 수행하는 암호화 장치에 있어서,An encryption device for performing RSA encryption, 곱셈기로부터 b 비트의 출력과 피승수를 입력받는 제1배타적 논리곱 연산부;A first exclusive AND product receiving an output of b bits and a multiplicand from a multiplier; 상기 곱셈기의 출력을 왼쪽으로 b 비트만큼 쉬프트하는 제1쉬프트부;A first shift unit shifting the output of the multiplier by b bits to the left; 상기 배타적 논리곱 연산부의 출력을 입력받는 제1파이프라인;A first pipeline receiving an output of the exclusive AND product; 모듈러스의 계수와 제5파이프라인의 출력을 입력받는 제2배타적 논리곱 연산부;A second exclusive logical AND operation unit receiving modulus coefficients and an output of a fifth pipeline; 상기 제2배타적 논리곱 연산부의 출력을 입력받는 제2파이프라인;A second pipeline receiving an output of the second exclusive AND product; 상기 제2파이프라인의 출력에 대하여 보수화 연산을 수행하는 보수화 수단;Complementary means for performing a complementary operation on the output of the second pipeline; 상기 제1파이프라인과 상기 보수화 수단과 제3파이프라인의 출력을 입력받아 덧셈 연산을 하기 위한 덧셈 연산기;An addition operator for receiving an output of the first pipeline, the complementary means, and the third pipeline and performing an addition operation; 상기 덧셈 연산기의 출력을 입력받는 제4파이프라인;A fourth pipeline receiving the output of the addition operator; 상기 제4파이프라인의 출력을 입력받아 파이프라인을 수행한 값을 저장하기 위한 축적기;An accumulator for receiving the output of the fourth pipeline and storing a value of performing the pipeline; 상기 축적기의 출력을 입력받는 제3파이프라인;A third pipeline receiving an output of the accumulator; 상기 축적기의 출력을 왼쪽으로 b 비트만큼 쉬프트하기 위한 제2쉬프트부 및 제5파이프라인;A second shift portion and a fifth pipeline for shifting the output of the accumulator by b bits to the left; 상기 제4파이프라인의 출력을 n으로 나누어 분배하기 위한 분배기; 및A divider for dividing and dividing the output of the fourth pipeline by n; And 상기 분배기(240)의 출력을 입력받는 제5파이프라인(250)The fifth pipeline 250 receiving the output of the distributor 240 을 포함하여 이루어진 모듈러 연산 장치.Modular computing device comprising a. 제 1 항에 있어서,The method of claim 1, 덧셈 연산기는,The addition operator 입력(Ai, Bi, Mi)을 가산하여 합(S'i) 및 캐리(Ci+1)을 발생하는 제1덧셈기;A first adder which adds inputs Ai, Bi, Mi to generate a sum S'i and a carry Ci + 1; 상기 제1덧셈기의 출력을 입력받는 제2파이프라인;A second pipeline receiving an output of the first adder; 선택신호에 따라 상기 제2파이프라인을 통하여 입력되는 신호들을 선택하여 출력하는 입력선택기;An input selector for selecting and outputting signals input through the second pipeline according to a selection signal; 상기 입력선택기의 출력을 입력받는 제3파이프라인;A third pipeline receiving an output of the input selector; 상기 제3파이프라인의 출력을 가산하는 제2덧셈기;A second adder for adding an output of the third pipeline; 제어신호에 따라 상기 제2덧셈기의 출력의 차단 여부를 결정하는 출력 생성기; 및An output generator for determining whether to block the output of the second adder according to a control signal; And 상기 제2덧셈기의 캐리 발생 여부에 따라 선택신호와 제어신호를 발생하는 제어부A control unit for generating a selection signal and a control signal according to whether the second adder carries 를 포함하여 이루어진 모듈러 연산 장치.Modular computing device comprising a.
KR10-2000-0029689A 2000-05-31 2000-05-31 Pipeline modulo operation device for realizing encryption hardware KR100460764B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0029689A KR100460764B1 (en) 2000-05-31 2000-05-31 Pipeline modulo operation device for realizing encryption hardware

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0029689A KR100460764B1 (en) 2000-05-31 2000-05-31 Pipeline modulo operation device for realizing encryption hardware

Publications (2)

Publication Number Publication Date
KR20010108780A true KR20010108780A (en) 2001-12-08
KR100460764B1 KR100460764B1 (en) 2004-12-09

Family

ID=45855002

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0029689A KR100460764B1 (en) 2000-05-31 2000-05-31 Pipeline modulo operation device for realizing encryption hardware

Country Status (1)

Country Link
KR (1) KR100460764B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8417757B2 (en) 2006-12-07 2013-04-09 Electronics And Telecommunications Research Institute Method and apparatus for modulo N calculation wherein calculation result is applied to match speeds in wireless communication system
KR101321221B1 (en) * 2013-05-23 2013-10-22 목포대학교산학협력단 Cryptographic modular apparatus and cryptographic modular method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2621144B1 (en) * 1987-09-25 1989-12-29 Labo Electronique Physique MULTIPLIER PIPELINE SERIE
US5313530A (en) * 1991-03-05 1994-05-17 Canon Kabushiki Kaisha Calculating apparatus and method of encrypting/decrypting communication data by using the same
US6061706A (en) * 1997-10-10 2000-05-09 United Microelectronics Corp. Systolic linear-array modular multiplier with pipeline processing elements
KR20000000770A (en) * 1998-06-03 2000-01-15 정선종 Device for multiplying modular

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8417757B2 (en) 2006-12-07 2013-04-09 Electronics And Telecommunications Research Institute Method and apparatus for modulo N calculation wherein calculation result is applied to match speeds in wireless communication system
KR101321221B1 (en) * 2013-05-23 2013-10-22 목포대학교산학협력단 Cryptographic modular apparatus and cryptographic modular method

Also Published As

Publication number Publication date
KR100460764B1 (en) 2004-12-09

Similar Documents

Publication Publication Date Title
Kwon et al. Two implementation methods of a 1024-bit RSA cryptoprocessor based on modified Montgomery algorithm
US7694045B2 (en) Methods and apparatus for pipeline processing of encryption data
Grossschadl The Chinese remainder theorem and its application in a high-speed RSA crypto chip
Amanor et al. Efficient hardware architectures for modular multiplication on FPGAs
US7024560B2 (en) Power-residue calculating unit using Montgomery algorithm
US5121429A (en) Digital signal processing
KR100459732B1 (en) Montgomery modular multiplier by 4 to 2 compressor and multiplication method thereof
US7240204B1 (en) Scalable and unified multiplication methods and apparatus
US7552163B2 (en) Montgomery modular multiplier and method thereof
Hasan Double-basis multiplicative inversion over GF (2/sup m/)
Batina et al. Montgomery in practice: How to do it more efficiently in hardware
KR100460764B1 (en) Pipeline modulo operation device for realizing encryption hardware
O'Rourke et al. Achieving NTRU with Montgomery multiplication
Mahapatra et al. RSA cryptosystem with modified Montgomery modular multiplier
KR100481586B1 (en) Apparatus for modular multiplication
KR100413947B1 (en) RSA cipher device using modular exponentiation algorithm
KR100946256B1 (en) Scalable Dual-Field Montgomery Multiplier On Dual Field Using Multi-Precision Carry Save Adder
EP1480119A1 (en) Montgomery modular multiplier and method thereof
KR20000000770A (en) Device for multiplying modular
KR100297110B1 (en) Modular multiplier
KR20070062901A (en) Apparatus and method for modular multiplication using chhinese remainder theorem and carry save adder
TWI403952B (en) A large integer modulus index chip structure for signature cryptography
Shirase et al. An architecture for elliptic curve cryptograph computation
US7471789B2 (en) Encryption circuit achieving higher operation speed
JP3137599B2 (en) Circuit for calculating the remainder of B raised to the power of C modulo n

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee