KR100478974B1 - 직렬 유한체 승산기 - Google Patents
직렬 유한체 승산기 Download PDFInfo
- Publication number
- KR100478974B1 KR100478974B1 KR10-2002-0076202A KR20020076202A KR100478974B1 KR 100478974 B1 KR100478974 B1 KR 100478974B1 KR 20020076202 A KR20020076202 A KR 20020076202A KR 100478974 B1 KR100478974 B1 KR 100478974B1
- Authority
- KR
- South Korea
- Prior art keywords
- register
- registers
- value
- bit
- clock
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
- Complex Calculations (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
본 발명은 암호화 알고리즘을 회로로 구현하는 데 이용되는 유한체 승산기에 관한 것으로, LFSR(Linear Feedback Shift Register) 구조를 갖는 유한체 승산기를 구현함에 있어 소비전력과 회로의 면적이 최소화되도록 한다. 본 발명의 유한체 승산기는 Galois Field에서 다항식 기저(polynomial basis)로 표현된 두 개의 데이터의 승산(multiplication) 결과를 기약다항식(irreducible polynomial)으로 모듈화(modulo)하는 연산기이다. LFSR 구조는 직렬 유한체 승산 구조로 배열(array) 구조 및 하이브리드(hybrid) 구조에 비하여 회로가 단순하고 적은 크기로 구현이 가능하기 때문에 제한된 크기와 소비전력을 요구하는 시스템에 적용하는 데 장점을 갖는다.
Description
본 발명은 암호화 알고리즘을 회로로 구현하는 데 이용되는 유한체 승산기에 관한 것으로, 더욱 상세하게는 회로의 동작에 소비되는 전력(power consumption) 및 회로의 크기를 최소화할 수 있도록 한 직렬 유한체 승산기에 관한 것이다.
스마트 카드나 스마트 폰 등의 휴대형(portable type) 단말장치에는 마이크로프로세서, 암호화 회로, 메모리, 입출력 제어회로 등이 구비된다. 이러한 휴대형 단말장치는 카드리더(READER) 시스템과의 원활한 인터페이스를 위해 그 규격이 국제적으로 정해져 있기 때문에 한정된 공간에서 최소의 면적으로 구현되어야 한다. 따라서 암호화(cryptography)를 구현하기 위한 암호화 회로도 낮은 소비전력(low-power)과 적은 면적(small area)을 갖도록 설계되어야 한다.
타원곡선 암호프로세서와 같은 암호화 회로는 Galois Field 상에서 승산, 제산, 가산, 제곱 등의 연산기로 구현되는데, 이 가운데 승산기가 가장 기본적인 연산기로 사용된다. 유한체 연산에서 연산식은 standard base, normal base, dual base 등으로 표현된다. 일반적으로 standard base 표현이 연산기 구현에 용이하기 때문에 널리 사용된다. Polynomial base 표현은 Standard base 표현에 속한다. Polynomial base 유한체 상에서 일반적인 승산기의 구조는 비트-시리얼(bit-serial) 방식과 배열(array) 방식으로 구현된다. 배열 방식의 경우에는 고속의 동작이 가능하지만 구현에 필요한 하드웨어가 차지하는 면적이 크기 때문에 휴대형 정보 단말장치의 경우에는 비트-시리얼 구조를 채택하고 있다.
스마트 카드와 공개키 암호(public-key cryptography)는 20여년 전부터 갖고 있던 아이디어였다. 그러나 집적회로(IC) 카드에 적합한 공개키 암호회로의 구현 방법이 발달하지 못하여 스마트 카드와 공개키 암호가 결합된 것은 불과 수년 전의 일이었다. 최근에는 RSA, US Digital Signature Strandard, Russign Gost 34.10과 같은 암호가 집적회로(IC) 카드에 많이 응용되고 있다.
스마트 카드에 사용될 수 있는 공개키 암호의 개념은 1976년 W. Diffie와 M. E. Hellman에 의해 "New Directions in Cryptography"에서 처음 소개되었다. 이후 1978년 소인수 분해의 어려움에 기반을 둔 RSA가 소개되어 지금까지 넓게 사용되고 있다. 그러나 RSA는 비도를 높이기 위해 1024 비트 이상으로 확장되는 추세로, 스마트 카드와 같이 제한된 면적에 탑재되는 데 어려움이 많다. 1987년 Koblitz와 Miller는 공개키 암호화에 타원곡선(ECC) 알고리즘을 적용하였다. ECC(Elliptic Curve Cryptography)는 적은 비트로 높은 비도를 보이기 때문에 최근 스마트 카드와 같은 집적회로(IC) 카드의 암호화 구현에 사용되는 추세에 있다.
타원곡선 알고리즘을 적용한 암호프로세서는 유한체 승산기, 제산기, 가산기, 제곱기로 구성되며, 제산기와 제곱기는 승산기로도 구현이 가능하기 때문에 승산기가 가장 핵심적인 역할을 한다. 유한체 승산기는 다양한 방법으로 구현되지만, 일반적으로 LFSR(Linear Feedback Shift Register) 구조의 직렬(serial) 승산 구조와 Systolic array 구조를 적용한 병렬(parallel) 승산 구조가 널리 사용된다. 이 가운데 LFSR 구조는 승산 속도가 병렬 승산에 비하여 느린 단점은 있지만, 회로 구현이 간편하고 적은 크기로 구현이 가능하기 때문에 사용범위가 넓다.
LFSR 구조의 승산기는 Edoardo D. Mastrovito 가 제안한 방법을 바탕으로 하여 여러 가지로 개선되어 왔다. 직렬 승산 방식인 LFSR 구조의 단점인 느린 수행속도를 개선하는 방법도 제안되었는데, 이 방법은 t 배의 속도향상을 위하여 t × m개의 레지스터를 추가적으로 사용하기 때문에 회로의 크기가 증가되는 단점이 있다.
LFSR 구조를 갖는 종래의 유한체 승산기는 제 1 입력값이 저장되는 쉬프트 레지스터, 제 2 입력값이 저장되는 쉬프트 레지스터, 각 비트의 제 1 입력값과 제 2 입력값을 논리곱하는 다수의 논리게이트, 각 논리게이트의 출력값과 각 비트의 자신의 값을 더하여 승산결과를 생성하고 이를 저장하는 레지스터로 이루어진다.
제 1 입력값과 제 2 입력값을 저장하는 쉬프트 레지스터는 도 1에 도시된 바와 같이 플립플롭(1, 2, 3)으로 구현되며, 각 비트의 플립플롭은 주클럭에 따라 모두 동시에 동기화(syncronization)되어 쉬프트 동작을 이룬다. 또한, 승산결과를 저장하는 레지스터도 도 2에 도시된 바와 같이 각각 플립플롭(6)으로 구성된다.
각 비트의 플립플롭(1, 2, 3, 6)은 도 3에 도시된 바와 같이 제 1 및 제 2 래치(4 및 5)로 구성되며, 클럭의 에지(edge)에서 입력값을 출력으로 전달한다. 제 1 및 제 2 래치(4 및 5)는 클럭에 따라 입력값을 받는 트랜지스터(Q1)와, 클럭에 따라 동작되는 트랜지스터(Q2)를 통해 입력값을 래치시키는 인버터(I1 및 I2)로 구성된다.
상기와 같이 LFSR 구조를 갖는 승산기 회로는 쉬프트(shift) 기능을 갖는 레지스터, AND 게이트 및 XOR 게이트를 포함하며, 쉬프트 레지스터는 클럭의 에지(edge)에서 동기화되는 플립플롭으로 구성한다. 승산 데이터의 길이가 m 비트일 때 입력 데이터와 승산 결과 데이터를 저장하기 위하여 3 x m개의 플립플롭이 필요하며, 1개의 플립플롭은 2개의 래치로 구성되기 때문에 결국 6×m개의 래치가 필요하게 된다. 또한, m개의 AND 게이트, m+k개의 XOR 게이트(k: 기약다항식 계수가 1인 개수, 즉, 궤환이 발생한 비트의 개수)가 필요하다. 이와 같이 구성되는 유한체 승산 회로에서 레지스터가 전체 면적과 소비전력의 60% 이상을 차지한다. 따라서 플립플롭은 래치에 비하여 2배의 면적과 전력을 소모하기 때문에 제한된 조건에서 유한체 승산기의 면적과 소비전력을 감소시키는 데는 한계가 있다.
따라서 본 발명은 래치를 사용하여 레지스터를 구성하고, 클럭과 데이터의 쉬프트 순서를 제어하므로써 상기한 단점을 해소할 수 있는 직렬 유한체 승산기를 제공하는 데 그 목적이 있다.
상기한 목적을 달성하기 위한 본 발명은 제 1 내지 제 3 클럭에 따라 m 비트의 제 1 입력값이 한 비트씩 오른쪽으로 이동하는 제 1 쉬프트 레지스터와, 상기 제 1 내지 제 3 클럭에 따라 m 비트의 제 2 입력값이 한 비트씩 오른쪽으로 이동하는 제 2 쉬프트 레지스터와, 각 비트의 상기 제 1 입력값과 제 2 입력값을 논리곱하는 m개의 논리게이트와, 상기 각 논리게이트의 출력값과 각 비트의 자신의 값을 더하여 승산결과를 생성하고 이를 저장하는 m 비트의 레지스터를 포함하는 것을 특징으로 한다.
상기 제 1 쉬프트 레지스터는 상기 제 1 입력값의 각 비트값이 저장되며 상기 제 1 내지 제 3 클럭에 따라 저장된 값이 쉬프트되는 다수의 레지스터와, 상기 레지스터 간에 각각 연결되며 기약다항식의 계수에 따라 이전 레지스터의 출력값과 궤환된 레지스터의 출력값을 가산하는 다수의 가산기로 이루어지되, 홀수번째의 상기 레지스터는 1개의 래치로 구성되고, 짝수번째의 상기 레지스터는 제 1 및 제 2 래치로 구성되며, 상기 레지스터에 저장된 값은 상기 제 1 클럭에 의해 상기 짝수번째 레지스터의 제 1 래치에 저장된 데이터가 상기 제 2 래치로 전달되는 단계, 상기 제 2 클럭에 의해 상기 홀수번째 레지스터의 래치에 저장된 데이터가 상기 짝수번째 레지스터의 제 1 래치로 전달되는 단계, 상기 제 3 클럭신호에 의해 상기 짝수번째 레지스터의 제 2 래치에 저장된 데이터가 상기 홀수번째 레지스터로 전달되는 단계를 통해 쉬프트되는 것을 특징으로 한다.
상기 제 2 쉬프트 레지스터는 상기 제 2 입력값의 각 비트값이 저장되며 상기 제 1 내지 제 3 클럭에 따라 저장된 값이 쉬프트되는 다수의 레지스터로 이루어지되, 홀수번째의 상기 레지스터는 1개의 래치로 구성되고, 짝수번째의 상기 레지스터는 제 1 및 제 2 래치로 구성되며, 상기 레지스터에 저장된 값은 상기 제 1 클럭에 의해 상기 짝수번째 레지스터의 제 1 래치에 저장된 데이터가 상기 제 2 래치로 전달되는 단계, 상기 제 2 클럭에 의해 상기 홀수번째 레지스터의 래치에 저장된 데이터가 상기 짝수번째 레지스터의 제 1 래치로 전달되는 단계, 상기 제 3 클럭신호에 의해 상기 짝수번째 레지스터의 제 2 래치에 저장된 데이터가 상기 홀수번째 레지스터로 전달되는 단계를 통해 쉬프트되는 것을 특징으로 한다.
상기 승산결과를 생성하고 이를 저장하는 m 비트의 레지스터는 각각 래치로 구성되고, 상기 각 래치는 상기 제 1 클럭에 따라 입력값을 받아들이는 것을 특징으로 한다.
상기 제 1 내지 제 3 클럭은 한 주기동안 순차적으로 발생되는 것을 특징으로 한다.
비트-시리얼 구조의 승산기는 주로 LFSR를 사용하여 설계한다. LFSR를 사용하면 암호 비트수에 비례하여 지연시간은 증가하지만 어레이 방식보다 게이트의 수를 감소시킬 수 있다. 본 발명에서는 LFSR의 구조를 개선하여 기존의 LFSR 구조보다 면적과 소비전력 측면에서 효율적인 새로운 구조의 유한체 승산기를 구현한다.
본 발명은 최근 스마트 카드 등의 휴대형 정보 단말장치에 널리 사용되는 공개키 암호방식 가운데 타원곡선 암호알고리즘을 회로로 구현하는 데 큰 장점을 갖는다.
유한체 승산기의 레지스터를 플립플롭 대신 래치로 구현하면 전체 회로의 크기와 소비전력을 상당히 개선할 수 있다. 그러나 래치는 클럭의 레벨(level)에 따라 입력값을 출력단자로 전달하기 때문에 쉬프트 레지스터를 래치로 구성할 경우 데이터의 레이싱(lacing)이 발생하여 플립플롭과 같이 매 클럭마다 한 비트씩 이동시키는 기능을 수행할 수 없다. 따라서 본 발명은 클럭 제어와 데이터의 쉬프트(shift) 순서를 제어하여 래치의 레이싱 문제를 해결하므로써 플립플롭을 사용하지 않고 래치만으로 LFSR 구조의 유한체 승산기를 구현할 수 있도록 한다.
도 4는 본 발명에 따른 LFSR 구조의 직렬 유한체 승산기의 구성도로서, m 비트의 제 1 및 제 2 입력값(a 및 b)을 승산하고 그 결과를 기약다항식 계수(p)로 나누어(modulo) m 비트의 출력(z)을 생성하도록 구성된다.
제 1 쉬프트 레지스터(11)는 제 1 내지 제 3 클럭(클럭 1 내지 클럭 3)에 따라 m 비트의 제 1 입력값(a)을 한 비트씩 오른쪽으로 이동시킨다. 제 1 쉬프트 레지스터(11)는 제 1 입력값(a)의 각 비트값이 저장되며 제 1 내지 제 3 클럭(클럭 1 내지 클럭 3)에 따라 저장된 값이 쉬프트되는 다수의 레지스터(a0 내지 am-1)와, 레지스터(a0 내지 am-1) 간에 각각 연결되며 기약다항식의 계수(p0 내지 p
m-1)에 따라 이전 레지스터의 출력값과 궤환된 레지스터의 출력값을 가산하는 다수의 가산기(18)로 이루어지며, 홀수번째의 레지스터(a0, a2, a4, ....)는 1개의 래치로 구성되고, 짝수번째의 레지스터(a1, a3, a5, ....)는 2개의 래치로 구성된다.
제 2 쉬프트 레지스터(12)는 제 1 내지 제 3 클럭(클럭 1 내지 클럭 3)에 따라 m 비트의 제 2 입력값(b)을 한 비트씩 오른쪽으로 이동시킨다. 제 2 쉬프트 레지스터(12)는 제 2 입력값(b)의 각 비트값이 저장되며 제 1 내지 제 3 클럭(클럭 1 내지 클럭 3)에 따라 저장된 값이 시프트되는 다수의 레지스터(b0 내지 bm-1)로 이루어지며, 홀수번째의 레지스터(b0, b2, b4, ....)는 1개의 래치로 구성되고, 짝수번째의 레지스터(b1, b3, b5, ....)는 2개의 래치로 구성된다.
m개의 논리게이트(G0 내지 Gm-1)는 제 1 쉬프트 레지스터(11)의 각 비트의 제 1 입력값(a)과 제 2 쉬프트 레지스터(12)로부터 출력되는 제 2 입력값(b)을 논리곱(AND)하여 그 결과를 출력 레지스터(12)로 보낸다. m 비트의 출력 레지스터(13)는 m개의 레지스터(Z0 내지 Zm-1)로 이루어진다. 각 논리게이트(G0
내지 Gm-1)의 출력값은 각각의 가산기(19)에서 레지스터(Z0 내지 Zm-1)의 각 비트의 자신의 값과 더해지고, 생성된 승산결과는 각각의 레지스터(Z0 내지 Zm-1)에 저장된다. 제 1 입력값(a)과 제 2 입력값(b)이 m번의 쉬프트를 수행한 후에 레지스터(Z0 내지 Zm-1)에 남아 있는 값이 최종 승산 결과값이 된다.
도 4에서 a0부터 am-1까지 m개의 레지스터 및 b0부터 bm-1까지 m개의 레지스터는 승산기의 입력값을 저장하는 레지스터이며, z0부터 zm-1까지 m개의 레지스터는 승산 결과를 저장하는 레지스터이다. 또한, p0부터 pm-1까지 m개 비트는 기약다항식의 계수(coefficient)를 나타낸다. 기약다항식의 계수는 궤환(feedback)을 의미하는 것으로, 예를 들어, 계수값(p2)이 1이면 궤환이 발생하여 레지스터(a1)의 값과 궤환된 레지스터(am-1)의 값이 더해진다. 가산기(18)는 예를 들어, XOR 게이트로 구현된다. 기약다항식의 계수(p)는 제한된(configurable) 승산기 구조에서는 레지스터에 저장하여 다양한 형식의 다항식을 사용할 수 있도록 하고 있으나, 본 발명의 실시예에서는 기약다항식의 계수(p)가 고정된(hard-wired) 것으로 간주한다.
도 5는 상기 제 1 입력값(a)과 제 2 입력값(b)을 저장하는 제 1 쉬프트 레지스터(11)와 제 2 쉬프트 레지스터(12)의 구성도로서, 제 1 쉬프트 레지스터(11)의 레지스터(a0 내지 am-1)와 제 2 쉬프트 레지스터(12)의 레지스터(b0 내지 bm-1)는 동일한 방식 즉, 홀수번째의 레지스터는 1개의 래치로 구성되고, 짝수번째의 레지스터는 2개의 래치로 구성된다.
홀수번째 예를 들어, i 번째 레지스터(14)는 제 3 클럭(클럭 3)에 따라 i-1 번째 레지스터(도시되지 않음)로부터 데이터를 받아들이는 래치로 구성된다. 짝수번째인 i+1 번째 레지스터(15)는 제 2 클럭(클럭 2)에 따라 i 번째 레지스터(14)로부터 데이터를 받아들이는 제 1 래치(15a)와, 제 1 클럭(클럭 1)에 따라 제 1 래치(15a)로부터 데이터를 받아들이는 제 2 래치(15b)로 구성된다. 동일한 방식으로 홀수번째인 i+2 번째 레지스터(16)는 제 3 클럭(클럭 3)에 따라 i+1 번째 레지스터(15)로부터 데이터를 받아들이는 래치로 구성된다.
상기 제 1 내지 제 3 클럭(클럭 1 내지 클럭 3)은 도 6에 도시된 바와 같이 주클럭의 한번의 주기(cycle)동안 순차적으로 발생되는데, 상기 쉬프트 레지스터는 다음과 같은 과정을 거쳐 1 비트의 데이터를 오른쪽으로 전달한다.
제 1 클럭(클럭 1)에 의해 짝수번째 레지스터(15)의 제 1 래치(15a)에 저장된 데이터가 제 2 래치(15b)로 전달되고(단계 SFT1), 제 2 클럭(클럭 2)에 의해 홀수번째 레지스터(14)의 래치에 저장된 데이터가 짝수번째 레지스터(15)의 제 1 래치(15a)로 전달되며(단계 SFT2), 제 3 클럭(클럭 3)에 의해 짝수번째 레지스터(15)의 제 2 래치(15b)에 저장된 데이터가 홀수번째 레지스터(16)로 전달된다(단계 SFT3).
한편, 출력 레지스터(13)의 m개의 레지스터(Z0 내지 Zm-1)는 각각 도 7에 도시된 바와 같이 1개의 래치(17)로 구성되며, 각 래치(17)는 상기 제 1 클럭(클럭 1)에 따라 입력값을 받아들인다.
종래에는 출력 레지스터가 도 2와 같이 2개의 래치(4 및 5)로 구성된 플립플롭(6)으로 구현되고 클럭의 에지(edge)에서 데이터의 저장이 이루어졌다. 그러나 본 발명에서는 도 7과 같이 클럭의 레벨을 이용하는 한 개의 래치(17)로 출력 레지스터를 구현하고 제 1 클럭(클럭 1)을 사용하였다. 제 3 클럭(클럭 3)에서 제 1 쉬프트 레지스터(11)와 제 2 쉬프트 레지스터(12)가 1 비트 쉬프트 동작을 완료한다. 따라서 다음 주기의 제 1 클럭(클럭 1)이 시작할 때는 도 4에서 논리게이트(AND)의 출력이 안정한 상태(stable state)에 있기 때문에 제 1 클럭(클럭 1)에서 출력 레지스터(13)가 자신의 값과 논리게이트(AND)의 출력값을 안정한 상태에서 더하는 동작을 수행할 수 있다.
플립플롭을 사용하는 기존의 방법으로 m 비트의 유한체 승산기를 구현할 경우 모두 6 x m개의 래치가 소요되었으나, 본 발명을 이용하여 래치만으로 LFSR 구조의 유한체 승산기를 구현하면 4 x m개의 래치가 소요된다. 결론적으로 본 발명에 따른 LFSR 구조의 유한체 승산기는 기존의 방식에 비하여 30% 이상의 면적과 소비전력을 줄일 수 있다.
상술한 바와 같이 본 발명은 래치를 사용하여 레지스터를 구성하고, 클럭과 데이터의 쉬프트 순서를 제어하므로써 다음과 같은 효과를 얻을 수 있도록 한다.
첫째, 다항식의 차수가 높은 유한체 승산에 필요한 승산 회로의 소비전력을 최소화시키고, 적은 면적에 구현할 수 있도록 한다. 둘째, 타원곡선 암호알고리즘에 기반한 암호화 프로세서에서 공개키를 이용한 암호화 장치 또는 오류정정 부호화 장치 등에 효과적으로 적용이 가능하고, 셋째, 스마트 카드와 같은 전자카드의 암호화 프로세서 회로에서 핵심적인 역할을 하는 승산기를 용이하게 구현할 수 있도록 한다.
도 1은 종래 유한체 승산기의 쉬프트 레지스터의 구성도.
도 2는 종래 유한체 승산기의 출력 레지스터의 구성도.
도 3은 도 1 및 도 2의 플립플롭의 상세 회로도.
도 4은 본 발명에 따른 유한체 승산기의 구성도.
도 5는 도 4의 쉬프트 레지스터의 구성도.
도 6은 도 4의 쉬프트 레지스터의 동작에 사용되는 클럭의 타이밍도.
도 7은 도 4의 출력 레지스터의 구성도.
<도면의 주요 부분에 대한 부호의 설명>
1, 2, 3, 6: 플립플롭
4, 5, 17: 래치
11: 제 1 쉬프트 레지스터
12: 제 2 쉬프트 레지스터
13: 출력 레지스터
14, 15, 16: 레지스터
15a, 15b: 제 1 및 제 2 래치
18, 19: 가산기
Claims (8)
- 삭제
- 제 1 내지 제 3 클럭에 따라 m 비트의 제 1 입력값이 한 비트씩 오른쪽으로 이동하는 제 1 쉬프트 레지스터,상기 제 1 내지 제 3 클럭에 따라 m 비트의 제 2 입력값이 한 비트씩 오른쪽으로 이동하는 제 2 쉬프트 레지스터,각 비트의 상기 제 1 입력값과 제 2 입력값을 논리곱하는 m개의 논리게이트,상기 각 논리게이트의 출력값과 각 비트의 자신의 값을 더하여 승산결과를 생성하고 이를 저장하는 m 비트의 레지스터를 포함하며,상기 제 1 쉬프트 레지스터는 상기 제 1 입력값의 각 비트값이 저장되며 상기 제 1 내지 제 3 클럭에 따라 저장된 값이 쉬프트되는 다수의 레지스터와, 상기 레지스터 간에 각각 연결되며 기약다항식의 계수에 따라 이전 레지스터의 출력값과 궤환된 레지스터의 출력값을 가산하는 다수의 가산기로 이루어지고,상기 제 2 쉬프트 레지스터는 상기 제 2 입력값의 각 비트값이 저장되며 상기 제 1 내지 제 3 클럭에 따라 저장된 값이 시프트되는 다수의 레지스터로 이루어지며,상기 제 1 및 제 2 쉬프트 레지스터의 홀수번째 레지스터는 1개의 래치로 구성되고, 짝수번째 레지스터는 제 1 및 제 2 래치로 구성된 것을 특징으로 하는 유한체 승산기.
- 제 2 항에 있어서, 상기 레지스터에 저장된 값은상기 제 1 클럭에 의해 상기 짝수번째 레지스터의 제 1 래치에 저장된 데이터가 상기 제 2 래치로 전달되는 단계,상기 제 2 클럭에 의해 상기 홀수번째 레지스터의 래치에 저장된 데이터가 상기 짝수번째 레지스터의 제 1 래치로 전달되는 단계,상기 제 3 클럭신호에 의해 상기 짝수번째 레지스터의 제 2 래치에 저장된 데이터가 상기 홀수번째 레지스터로 전달되는 단계를 통해 쉬프트되는 것을 특징으로 하는 유한체 승산기.
- 삭제
- 삭제
- 제 2 항에 있어서, 상기 제 1 내지 제 3 클럭은 한 주기동안 순차적으로 발생되는 것을 특징으로 하는 유한체 승산기.
- 제 2 항에 있어서, 상기 m 비트의 레지스터는 각각 래치로 구성된 것을 특징으로 하는 유한체 승산기.
- 제 7 항에 있어서, 상기 각 래치는 상기 제 1 클럭에 따라 입력값을 받아들이는 것을 특징으로 하는 유한체 승산기.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0076202A KR100478974B1 (ko) | 2002-12-03 | 2002-12-03 | 직렬 유한체 승산기 |
US10/683,228 US6917218B2 (en) | 2002-12-03 | 2003-10-10 | Serial finite field multiplier |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0076202A KR100478974B1 (ko) | 2002-12-03 | 2002-12-03 | 직렬 유한체 승산기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040048471A KR20040048471A (ko) | 2004-06-10 |
KR100478974B1 true KR100478974B1 (ko) | 2005-03-25 |
Family
ID=32388305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0076202A KR100478974B1 (ko) | 2002-12-03 | 2002-12-03 | 직렬 유한체 승산기 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6917218B2 (ko) |
KR (1) | KR100478974B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100865678B1 (ko) | 2007-01-16 | 2008-10-29 | 충북대학교 산학협력단 | 고속 공개키 암호시스템의 고속 곱셈 역원 방법 및 시스템 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7519644B2 (en) * | 2004-05-27 | 2009-04-14 | King Fahd University Of Petroleum And Minerals | Finite field serial-serial multiplication/reduction structure and method |
US20060106908A1 (en) * | 2004-11-17 | 2006-05-18 | Chang Gung University | Low complexity bit-parallel systolic architecture for computing C+AB, AB, C+AB2 or AB2 over a class of GF (2m) |
US7688107B2 (en) * | 2005-04-19 | 2010-03-30 | Semiconductor Energy Laboratory Co., Ltd. | Shift register, display device, and electronic device |
KR100859185B1 (ko) * | 2006-05-18 | 2008-09-18 | 학교법인 영광학원 | 유한체 GF(2m)상의 곱셈기 |
US8024391B2 (en) * | 2006-11-06 | 2011-09-20 | Atmel Rousset S.A.S. | Modular multiplication method with precomputation using one known operand |
US8036380B2 (en) * | 2006-12-14 | 2011-10-11 | Telefonaktiebolaget L M Ericsson (Publ) | Efficient data integrity protection |
KR100954843B1 (ko) * | 2008-08-29 | 2010-04-28 | 고려대학교 산학협력단 | 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체 |
RU2011107568A (ru) | 2011-03-01 | 2012-09-10 | ЭлЭсАй Корпорейшн (US) | Устройство (варианты) и способ генерирования конструкции комбинационного умножителя конечного поля малой глубины |
CN106201433B (zh) * | 2016-07-10 | 2019-01-11 | 北京工业大学 | 一种基于rs码的有限域乘法器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4574361A (en) * | 1982-06-15 | 1986-03-04 | Tokyo Shibaura Denki Kabushiki Kaisha | Apparatus for dividing the elements of a Galois field |
US4745568A (en) * | 1986-12-16 | 1988-05-17 | Onyszchuk Ivan M | Computational method and apparatus for finite field multiplication |
EP0741355A1 (en) * | 1995-03-30 | 1996-11-06 | Certicom Corp. | Finite field multiple bit multiplier |
KR100218825B1 (ko) * | 1995-02-14 | 1999-09-01 | 니시무로 타이죠 | 승산기 및 곱합 연산 장치 |
KR20030082255A (ko) * | 2002-04-17 | 2003-10-22 | 한국전자통신연구원 | 향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4797848A (en) | 1986-04-18 | 1989-01-10 | Hughes Aircraft Company | Pipelined bit-serial Galois Field multiplier |
US5999959A (en) | 1998-02-18 | 1999-12-07 | Quantum Corporation | Galois field multiplier |
US6178436B1 (en) * | 1998-07-01 | 2001-01-23 | Hewlett-Packard Company | Apparatus and method for multiplication in large finite fields |
KR100341998B1 (ko) | 1999-07-22 | 2002-06-27 | 최승진 | 누름버튼 스위치 박스 |
-
2002
- 2002-12-03 KR KR10-2002-0076202A patent/KR100478974B1/ko active IP Right Grant
-
2003
- 2003-10-10 US US10/683,228 patent/US6917218B2/en not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4574361A (en) * | 1982-06-15 | 1986-03-04 | Tokyo Shibaura Denki Kabushiki Kaisha | Apparatus for dividing the elements of a Galois field |
US4745568A (en) * | 1986-12-16 | 1988-05-17 | Onyszchuk Ivan M | Computational method and apparatus for finite field multiplication |
KR100218825B1 (ko) * | 1995-02-14 | 1999-09-01 | 니시무로 타이죠 | 승산기 및 곱합 연산 장치 |
EP0741355A1 (en) * | 1995-03-30 | 1996-11-06 | Certicom Corp. | Finite field multiple bit multiplier |
KR20030082255A (ko) * | 2002-04-17 | 2003-10-22 | 한국전자통신연구원 | 향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100865678B1 (ko) | 2007-01-16 | 2008-10-29 | 충북대학교 산학협력단 | 고속 공개키 암호시스템의 고속 곱셈 역원 방법 및 시스템 |
Also Published As
Publication number | Publication date |
---|---|
US6917218B2 (en) | 2005-07-12 |
KR20040048471A (ko) | 2004-06-10 |
US20040107233A1 (en) | 2004-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7277540B1 (en) | Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography | |
Öztürk et al. | Low-power elliptic curve cryptography using scaled modular arithmetic | |
US6182104B1 (en) | Circuit and method of modulo multiplication | |
US6356636B1 (en) | Circuit and method for fast modular multiplication | |
Rashidi et al. | High-speed hardware architecture of scalar multiplication for binary elliptic curve cryptosystems | |
EP1457875A2 (en) | Apparatus and method for performing montgomery type modular multiplication | |
KR100478974B1 (ko) | 직렬 유한체 승산기 | |
Karakoyunlu et al. | Efficient and side-channel-aware implementations of elliptic curve cryptosystems over prime fields | |
JP4180024B2 (ja) | 乗算剰余演算器及び情報処理装置 | |
JP2002229445A (ja) | べき乗剰余演算器 | |
Elkhatib et al. | Accelerated RISC-V for post-quantum SIKE | |
KR100508092B1 (ko) | 저전력 모듈로 곱셈을 수행하는 연산장치 | |
JP4170267B2 (ja) | 乗算剰余演算器及び情報処理装置 | |
JPH05324277A (ja) | 暗号通信方法 | |
JP2001034167A (ja) | 演算装置及び暗号処理装置 | |
US7171437B2 (en) | Residue calculating unit immune to power analysis | |
JP2002358010A (ja) | べき乗剰余演算器 | |
US5999953A (en) | Method for the production of a parameter Jo associated with the implementation of a modular operation according to the Montgomery method | |
TW202332229A (zh) | 用來進行功耗擾動操作以降低密碼系統功耗分析攻擊的成功率之方法、密碼系統處理電路及電子裝置 | |
JP2000207387A (ja) | 演算装置及び暗号処理装置 | |
KR100417136B1 (ko) | 다항식 기저에서 유한체 승산 장치 및 그 방법 | |
EP1455270A2 (en) | Method and apparatus for basis conversion in finite field and a multiplier | |
CN107463354A (zh) | 一种面向ECC的双域并行度可变的Montgomery模乘电路 | |
Nedjah et al. | High-performance hardware of the sliding-window method for parallel computation of modular exponentiations | |
KR100564764B1 (ko) | 유한체 다항식 곱셈 장치 및 그 방법 |
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: 20110228 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20111208 Year of fee payment: 17 |