KR100859185B1 - 유한체 GF(2m)상의 곱셈기 - Google Patents

유한체 GF(2m)상의 곱셈기 Download PDF

Info

Publication number
KR100859185B1
KR100859185B1 KR1020060044858A KR20060044858A KR100859185B1 KR 100859185 B1 KR100859185 B1 KR 100859185B1 KR 1020060044858 A KR1020060044858 A KR 1020060044858A KR 20060044858 A KR20060044858 A KR 20060044858A KR 100859185 B1 KR100859185 B1 KR 100859185B1
Authority
KR
South Korea
Prior art keywords
exclusive
unit
value
operation unit
register
Prior art date
Application number
KR1020060044858A
Other languages
English (en)
Other versions
KR20070111718A (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 KR1020060044858A priority Critical patent/KR100859185B1/ko
Publication of KR20070111718A publication Critical patent/KR20070111718A/ko
Application granted granted Critical
Publication of KR100859185B1 publication Critical patent/KR100859185B1/ko

Links

Images

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/08Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
    • 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/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 타원곡선 암호 프로세서를 위한 유한체 GF(2 m )상의 새로운 곱셈기에 관한 것이다.
본 발명에 따른 실시예는 유한체 GF(2m )상의 곱셈기에 있어서, 벡터 A를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 한 비트 쉬프트하는 제1 레지스터부(10)와, 상기 제1 레지스터부에 저장된 값을 사전에 설정된 알고리즘에 의해 배타적 논리합 연산을 수행하는 배타적 논리합 연산부(40)와, 벡터 B를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 한 비트 쉬프트하는 제2 레지스터부(20)와, 기준클럭 단위로 상기 제2 레지스터부(20)에 저장된 값 및 상기 배타적 논리합 연산부(40)를 통해 논리연산된 값을 곱셈 연산한 곱셈값과, 다수의 세부레지스터(R0 ~ R6) 각각에 저장되어 있던 각각의 값들과 XOR연산하여 저장 및 딜레이하는 제3 레지스터부(30);를 구비하여 구성되는 것을 특징으로 한다.
유한체, 곱셈기, 연산회로, 곱셈 알고리즘, 가우시안 정규기저

Description

유한체 GF(2m)상의 곱셈기{Multiplier Over GF(2m) using Gaussian Normal Basis}
도 1은 본 발명에 따른 유한체 GF(2 m )상의 곱셈기 중 비트-레벨 곱셈기의 회로도.
도 2는 도 1에 도시한 제3 레지스터부의 상세 구성도.
도 3은 본 발명에 따른 유한체 GF(2 m )상의 곱셈기 중 워드-레벨 곱셈기의 회로도.
도 4는 도 3에 도시한 논리연산부의 상세 회로도.
본 발명은 유한체 GF(2 m )상의 곱셈기로, 보다 상세하게는 타원곡선 암호시스템 (ECC : Elliptic Curve Cryptosystems)을 위한 곱셈기로서, 기존의 동일한 형태의 곱셈기에 비해 낮은 하드웨어 복잡도 및 최대 처리기 지연시간을 가진다. 또한 워드레벨로 설계되었기 때문에 계산지연시간 및 하드웨어 면적에 있어 상충 관계를 개선 할 수 있다.
1980년대 중반 Victor Miller와 Neal Kobliz에 의해 제안된 타원곡선 암호 시스템(Elliptic Curve Cryptosystem: ECC)는 최근 학계나 산업계로부터 많은 관심을 모으고 있다. ECC의 가장 주된 장점은 RSA나 ElGamal과 같은 다른 암호 시스템에 비해 현저히 작은 키를 사용하면서(약 1/6 정도) 동일한 안전도를 가진다.
작은 키를 사용한다는 것은 계산 시간, 전력 소모 그리고 저장 공간의 감소를 의미한다. 이러한 장점 때문에 최근 IEEE 1363 및 NIST은 공개키 암호 시스템을 위해 ECC에 기반한 타원곡선 전자서명 알고리즘(Elliptic Curve Digital Signature: ECDSA)를 표준으로 채택하였다. ECDSA를 위해 유한체는 GF(p)와 GF(2 m )을, GF(2 m )상의 원소 표기법으로는 가우시안 정규기저(Gaussian Normal Basis: GNB)와 다항식 기저(Polynomial Basis: PB) 표기법을 사용한다. 여기서 p는 소수이고 GNB는 정규 기저(Normal Basis: NB)의 특별한 경우로서 8로 나누어지지 않는 모든 양의 정수 m에 대해 존재한다.
상기 ECC를 GF(2 m )상에서 구현할 경우, GF(2 m )상의 덧셈, 곱셈, 역원(혹은 나눗셈) 연산이 필요하다. 여기서 덧셈은 비트별 XOR 연산으로, 기저 표기법에 상관없이 동일하다. 그러나 곱셈 및 역원 연산은 선택된 기저에 따라 서로 다른 하드웨어 구조를 갖는다. PB를 사용한 곱셈기 설계의 경우 m값과 원소 생성에 사용되는 기약다항식(Irreducible Polynomial)에 상관없이 동일한 하드웨어 구조 설계가 가능한 장점이 있다. NB를 사용할 경우 임의의 원소 AGF(2 m )의
Figure 112008026662611-pat00001
(0 ≤ im-1) 연산은 i-비트 순환 쉬프트로 Fermat의 이론을 이용하면 연속된 연산으로 역원 연산을 수행할 수 있다. 따라서 NB를 사용하여 ECC를 구현할 경우 곱셈기의 성능은 매우 중요하다.
지금까지 다양한 NB 곱셈기들이 제안되었다. 이러한 곱셈기들 중 Messey와 Omura 곱셈기는 패러럴 입력 시리얼 출력 구조를 가지지만 곱셈기의 최대 처리기 지연시간은
Figure 112008026662611-pat00002
에 비례한다. 따라서 이 곱셈기는 ECC와 같이 매우 큰 m을 요구하는 응용에서는 높은 최대 처리기 지연시간을 보인다. Agnew등은 Messey와 Omura 곱셈 알고리즘을 이용하여 패러럴 입력 패러럴 출력 구조의 선형 곱셈기를 제안하였다. 이 곱셈기는 Messey와 Omura 곱셈기에 비해 m-비트 레지스터를 추가함으로써 최대 처리기 지연시간을 TA + 2TX 로 줄였다. 여기서 TA 는 2-입력 AND 게이트 딜레이 시간이고 TX 는 2-입력 XOR 게이트 딜레이 시간이다. 또한 최근 Reyhani-Masoleh와 Hasan은 정규기저 원소의 대칭성을 이용하여, TA + 2TX 의 최대 처리기 지연시간을 가지는 저면적 선형 곱셈기를 제안하였다.
그런데, 유한체 GF(2 m )상의 덧셈은 비트별 XOR 연산으로, 빠르고 간단하게 구현할 수 있지만, 다른 연산들은 매우 복잡하다. 특히 지수 및 역원 연산이 가장 복잡한데 이러한 연산들은 반복적인 곱셈 연산으로 이루어진다. 따라서 효율적인 곱셈 연산기의 구현은 필요하다.
본 발명은 전술한 점을 감안하여 안출된 것으로서, 타원곡선 암호시스템을 위한 유한체 GF(2 m )상의 새로운 곱셈기를 제공하는 것에 그 목적이 있다.
또한, 본 발명은 정규기저 원소들의 대칭성을 이용할 뿐만 아니라 정규기저 원소 계수의 인덱스를 변형함으로써 기존에 제안된 곱셈기보다 낮은 하드웨어 복잡도를 가지지만 동일한 최대 처리기 지연시간을 가지는 유한체 GF(2m)상의 곱셈기를 제공함에 다른 목적이 있다.
또한, 본 발명은 기존에 제안된 곱셈기 보다 낮은 하드웨어 복잡도 및 최대 처리기 지연시간을 보이는 유한체 GF(2m)상의 곱셈기를 제공함에 다른 목적이 있다.
또한, 본 발명은 그 구조가 매우 규칙적이기 때문에 VLSI 구현에 매우 적합한 유한체 GF(2m)상의 곱셈기를 제공함에 다른 목적이 있다.
전술한 목적을 달성하기 위한 본 발명에 따른 실시예는 유한체 GF(2m )상의 곱셈기에 있어서, 벡터 A를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 한 비트 쉬프트하는 제1 레지스터부(10)와, 상기 제1 레지스터부에 저장된 값을 사전에 설정된 알고리즘에 의해 배타적 논리합 연산을 수행하는 배타적 논리합 연산부(40)와, 벡터 B를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 한 비트 쉬프트하는 제2 레지스터부(20)와, 기준클럭 단위로 상기 제2 레지스터부(20)에 저장된 값 및 상기 배타적 논리합 연산부(40)를 통해 논리연산된 값을 곱셈 연산한 곱셈값과, 다수의 세부레지스터(R0 ~ R6) 각각에 저장되어 있던 각각의 값들과 XOR연산하여 저장 및 딜레이하는 제3 레지스터부(30);를 구비하여 구성되는 것을 특징으로 한다.
여기서, 본 발명의 실시예는 비트연산이기 때문에 한 비트씩 논리연산 된다.
상기 제3 레지스터부(30)의 상기 다수의 세부레지스터(R0 ~ R6)는, 각각 상기 제2 레지스터부(20)에 저장된 값과 상기 배타적 논리합 연산부(40)에서 논리 연산된 값을 논리곱하는 앤드게이트(30a)와, 상기 앤드게이트(30a)에서 논리곱 된 값과 하위 세부레지스터로부터 쉬프트된 값을 배타적 논리합 연산하는 XOR 게이트(30b)와, 상기 XOR 게이트에서 논리 연산된 값을 딜레이시키는 딜레이부(30c);를 구비하여 구성되는 것을 특징으로 한다.
본 발명에 따른 다른 실시예는 유한체 GF(2m)상의 곱셈기에 있어서, 벡터 A를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 워드크기 w만큼씩 쉬프트하는 A 레지스터부(100)와, 벡터 B를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 워드크기 w만큼씩 쉬프트하는 B 레지스터부(110)와, 기준클럭 단위로 상기 A 레지스터부에 저장된 값과 상기 B 레지스터부에 저장된 값을 사전에 설정된 알고리즘에 따라 각각 논리연산하는 F0 논리연산부(120a)와 F1 논리연산부(120b)를 구비하는 논리연산부(120)와, 상기 F1 논리연산부(120b)에서 출력되는 값과 외부에서 제공되는 제어값을 논리곱하는 논리곱 연산부(130)와, 상기 F0 논리연산부(120a)와 논리곱 연산부(130)에서 출력되는 값을 배타적 논리합 연산을 수행하는 제1 배타적 논리합 연산부(140)와, 상기 제1 배타적 논리합 연산부(140)에서 처리된 값과 하위레지스터(R0 ~ R6)에서 워드크기 w만큼 쉬프된 하위레지스터값을 다시 배타적 논리합 연산하는 제2 배타적 논리 연산부(160)와, 상기 제2 배타적 논리 연산부에서 출력되는 값을 딜레이시키는 딜레이부(150);를 구비하며,
상기 논리연산부(120)는 상기 A 레지스터부(100)에 저장된 값을 사전에 설정된 알고리즘에 의해 배타적 논리합 연산을 수행하는 GNB 배타적 논리합 연산부(121)와, 상기 GNB 배타적 논리합 연산부(121)를 통해 논리연산된 값과 상기 B 레지스터부(110)에 저장된 값을 곱셈연산 하는 엔드게이트들(123)로 이루어지는 것을 특징으로 한다.
여기서, 본 발명의 다른 실시예는 워드연산이기 때문에 한 워드크기 w만큼씩 논리연산 된다.
상기 제어값은, 첫번째 클럭에서 마지막 전 클럭까지는 상기 F1 논리연산부(120b)의 출력값을 상기 제1 배타적 논리합 연산부(140)에 전달하기 위해 제어값 1에 의해 상기 제1 배타적 논리합 연산부(140)에서 논리곱연산을 수행하고, 마지막 클럭에서 상기 F1 논리연산부(120b)의 출력값을 상기 제1 배타적 논리합 연산부(140)에 전달되지 않도록, 제어신호 0에 의해 상기 제1 배타적 논리합 연산부(140)에 논리곱연산 하는 것을 특징으로 한다.
이하에서는 첨부된 도면을 참조하여 본 발명에 따른 유한체 GF(2m)상의 곱셈기를 보다 상세하게 설명한다.
도 1은 본 발명에 따른 유한체 GF(2m)상의 곱셈기 중 비트-레벨 곱셈기의 회로도이고, 도 2는 도 1에 도시한 제3 레지스터부의 상세 구성도이며, 도 3은 본 발명에 따른 유한체 GF(2m)상의 곱셈기 중 워드-레벨 곱셈기의 회로도이고, 도 4는 도 3에 도시한 기능블록의 상세 회로도이다.
본 발명에 따른 유한체 GF(2m)상의 곱셈기는 비트 단위의 곱셈 연산을 수행하는 비트-레벨 곱셈기와 워드 단위의 곱셈 연산을 수행하는 워드-레벨 곱셈기로 크게 구분할 수 있다. 상기 비트-레벨 곱셈기와 워드-레벨 곱셈기는 가우시안 정규기저를 이용하여 구현된다.
이하, 도 1 및 도 2에 해당되는 본 발명의 실시예를 구체적으로 설명하면 아래와 같다.
먼저, 제 1 레지스터부(10)에 저장된 값으로부터 배타적 논리합 연산부(40)를 통해 논리 연산된 값과 제 2 레지스터부(20)에 저장된 값을 제 3 레지스터부(30)의 앤드게이트(30a)에서 곱셈하여 연산 결과를 출력하고, 초기 클럭에서는 딜레이부(30c)인 D i 의 모든 값이 0이므로 셋팅되어 앤드게이트(30a)에서 곱셈 연산 결과값이 그대로 딜레이부(30c)에 저장되고 2번째 클럭부터는 앤드게이트(30a)에서 곱셈 연산 결과값과 이전 클럭에서 딜레이부(30c)에 저장되어 있는 값이 제 3 레지스터부(30)의 세부레지스터(R0 ~ R6)들에서 상위의 세부레지스터로 전달되어 XOR 게이트부(30b)에서 XOR 연산을 실행하여 제 3 레지스터부(30)의 각각 딜레이부(30c)에 저장된다.
그리고, 다수의 세부레지스터(R0 ~ R6)는, 제 1레지스터부(10)의 값이 배타적 논리합 연산부(40)의 논리 연산을 실행한 값과 제 2레지스터부(20)의 값, 이 2개의 입력값을 받아 논리곱하는 앤드게이트(30a)와, 이 앤드게이트(30a)의 각 값과 제 3레지스터부(30)의 하위 딜레이부(30c)의 출력값을 XOR 연산하는 XOR 게이트(30b), 이 값을 딜레이시키기 위한 딜레이부(30c)로 구성되며, 제 3레지스터부(30)인 R i 의 출력값은 딜레이부(30c)인 D i 의 출력값이므로 1비트 출력값이다.
상기한 비트-레벨 곱셈기를 구현하기 위하여 적용되는 알고리즘은 아래의 표 (1)과 같다.
GNB를 이용한 GF(2 m )상의 곱셈 알고리즘
Input :
Figure 112008026662611-pat00003
Output :
Figure 112008026662611-pat00004
,
Figure 112008026662611-pat00005
for all
Figure 112008026662611-pat00006
, where
Figure 112008026662611-pat00007
. Initial :
Figure 112008026662611-pat00008
Figure 112008026662611-pat00009
Figure 112008026662611-pat00010
. 1. For
Figure 112008026662611-pat00011
to
Figure 112008026662611-pat00012
2. For
Figure 112008026662611-pat00013
to
Figure 112008026662611-pat00014
3.
Figure 112008026662611-pat00015
4. End for 5. End for 6. Return D

상기한 표 (1)과 같은 곱셈 알고리즘을 유도하는 과정을 설명한다.
먼저, 표 1은 도 1의 비트-레벨 곱셈기의 회로도에 대한 알고리즘으로 표현한 것이다. 그리고, 표 1에서 스탭 3은 도 2에 해당하는 과정을 보인 것이다.
그리고, 유한체 GF(2 m )은 GF(2)상의 m차원 벡터 공간으로 GF(2 m )상의 원소 A는 기저
Figure 112008026662611-pat00016
에 대해
Figure 112008026662611-pat00017
와 같이 표현할 수 있다.

이때, 수학식 1은 제1레지스터부(10)에 해당하는 것이고, 입력 벡터를 B로하면 제2레지스터부(20)에도 해당된다. 그리고,
Figure 112008026662611-pat00018
형태의 basis를 NB(Normal Basis)라 한다. GF(2 m )상에서 ECC의 높은 안전성을 위해서 소수인 m을 요구한다. 이러한 조건은 Pohlig-Hellman 형태의 공격을 회피하기 위해 필요하다. 예를 들면, NIST와 IEEE 1363에서는 ECDSA(Elliptic Curve Digital Signature Algoritym)을 위해 권고하는 필드 사이즈 m=163, 233, 283, 409, 571으로서 m은 홀수인 소수이다. 따라서 본 발명에서는 m이 홀수인 소수에 대해서만 고려한다.
이하에서 설명되는 수학식 2 내지 수학식 16은 도 1에 도시된 배타적 논리합 연산부(40)에 대한 진행과정을 보인 것이다.
이어서, NB에 대해,
Figure 112008026662611-pat00062
라 하면,
Figure 112008026662611-pat00020
이고,
Figure 112008026662611-pat00021

이다. 여기서 λij ( s )GF(2)의 원소라 하자. 그러면, 임의의 t에 대해,
Figure 112008026662611-pat00022

이고, λ의 위, 아래 첨자는 mod(modulation operation) m이다.
Figure 112008026662611-pat00063
s 의 계수를 비교하면, λij ( s ) = λi - t,j - t ( s-t )이고, λij ( s )=λi - s,j - s (0)임을 알 수 있다. GF(2 m )상의 원소 A, B의 곱 C = AB
Figure 112008026662611-pat00023

이고, C의 계수 cs
Figure 112008026662611-pat00024

이다.
여기서
Figure 112008026662611-pat00064
i
Figure 112008026662611-pat00065
j 대신
Figure 112008026662611-pat00066
Figure 112008026662611-pat00067
j 를 사용하고,
Figure 112008026662611-pat00068
Figure 112008026662611-pat00069
i
Figure 112008026662611-pat00070
Figure 112008026662611-pat00071
m-i 의 대칭성을 이용하면 아래의 수학식 (6)을 얻을 수 있다.
Figure 112008026662611-pat00025

위 수학식 (6)에서
Figure 112008026662611-pat00026
=
Figure 112008026662611-pat00027
이다.
이어서, 가우시안 정규기저를 이용한 유한체 GF(2 mk )상의 곱셈 알고리즘에 대해서 설명한다.
우선, m, k를 소수 p≠2에 대해, p=mk+1인 양의 정수라 하고, K=<τ>는 GF(p)×에서 위수(order) k인 유일한 부분군이라 하자. βGF(2 mk )상의 단위원(unity)에 대한 p번째 원시근이라면, 다음 원소
Figure 112008026662611-pat00028

GF(2)상의 (m, k)타입의 Gauss period라 한다. ord p 2를 mod p에 대한 2의 위수라 하고, gcd(mk/ord p 2, m)=1이라 가정하면,
Figure 112008026662611-pat00072
GF(2 m )상에서 NB의 원소이고, 0≤im-1에 대해,
Figure 112008026662611-pat00073
라 놓으면, {
Figure 112008026662611-pat00074
0,
Figure 112008026662611-pat00075
1,
Figure 112008026662611-pat00076
2,...
Figure 112008026662611-pat00077
m-1}은 GF(2)상의 GF(2 m )에 대한 기저이며, 이것을 GF(2 m )상에서 m 또는 (m, k) 타입의 가우시안 정규기저라 부른다.
이어서, 가우시안 정규기저를 이용하여
Figure 112008026662611-pat00078
Figure 112008026662611-pat00079
i 를 구하면,
Figure 112008026662611-pat00030

를 얻을 수 있고, 1+τu 2 v =0∈GF(p)인 0≤uk-1과 0≤vm-1가 유일하게 존재한다. 만약, tu 또는 iv이면, ti에 의해 결정되는 임의의 0≤σ(t, i)≤m-1에 대하여, 1+τt 2 i Kσ ( t , i )을 얻는다. 따라서 임의의 t′에 대해, 1+τt 2 i =τt 2 σ ( t , i )와 같이 쓸 수 있다. 여기서 iv일 때,
Figure 112008026662611-pat00031

이다. 또한, i=v일 때,
Figure 112008026662611-pat00032

이다. 그러므로
Figure 112008026662611-pat00033
iv에 대해,
Figure 112008026662611-pat00034
에서 많아야 k개의 기저 원소의 합으로 계산되고,
Figure 112008026662611-pat00035
는 많아야 k-1개의 기저 원소와 상수 부분 k=0,1∈GF(2)의 합으로 계산된다.
Figure 112008026662611-pat00036

라 놓고, λij GF(2)의 원소라 하자. 양변에 2의 거듭 제곱을 하면, λij ( s )=λi-j , s-j 이다.
상기한 점을 감안하였을 때 다음과 같은 정리가 성립된다.
(정리)
k가 짝수일 때,
Figure 112008026662611-pat00037
이 타입 k GNB이면,
λij (0)=λij
이다.
(증명) 이 증명은 λij ( s )=λi-j , -j 임을 보이면 충분하다. 수학식 (9)와 (10)으로부터 λij =1이면
1+τs 2 i =τs 2 j
를 만족하는 (s,s') (mod k)의 홀수 순서쌍이 존재함을 안다. 이때, S를 모든 순서쌍 (s,s') (mod k)의 집합이라 하고, T를 1+τt 2 i - j =τt 2 -j 를 만족하는 모든 순서쌍 (t,t') (mod m)의 집합이라 하자. 식 (13)의 양변을 τs 2 j 으로 나누면 τ-s 2- j +τs-s 2 i - j =1이고, τ의 위수가 k이고 k는 짝수이므로 -1=τk/ 2이고 τ-s 2- j =1+τk/ 2+ s-s 2 i - j 이다. 여기서, 사상 fS : S TfS (s,s´)=(k/2+s-s´,-s´)으로 주고, 사상 fT : T SfT (t,t´)=( k/2+t-t´,-t´)으로 주면 두 사상은 일대일 대응이므로 위 정리는 증명된다.
이어서, 상기한 정리를 바탕으로,
Figure 112008026662611-pat00080
의 계수 cs
Figure 112008026662611-pat00081

와 같다.
대응되는 행렬 X=(xst )에 대해 GF(2)상에서 원소 xst , 0≤s,tm-1를
Figure 112008026662611-pat00082

라 정의하자.
그러면 Xt번째 열벡터 Xt =(x0t , x1t ,…, xm-1 , t )T이고, 이 때, (x0t , x1t ,…, xm-1 , t )T는 행벡터 (x0t , x1t ,…, xm-1 , t )의 전치 행렬이다.
또한,
Figure 112008026662611-pat00041
이기 때문에 모든 열벡터 Xt , t=0,1,…,m-1의 합은 (c 0, c 1,…, cm -1)T이다. 그리하여 열벡터 Xt 를 재배열하고 계산 과정에서 부분합의 신호를 재사용함으로써 게이트 복잡도 및 임계 경로를 줄일 수 있다.
한편, m-1=2υ라 하고 다음과 같이 X의 열벡터의 치환에 의해 m×m 행렬 Y=(yst )를 정의하자.
υ가 홀수일 때, Y를 정의하면
(Xυ,...,X3, X1, Xm-1,...,Xm-υ,Xυ-1,...,X2,X0,Xm-2,...Xm-υ+1 ) 이고,
υ가 짝수일 때, Y를 정의하면
(Xυ,...,X2, X0, Xm-2,...,Xm-υ,Xυ-1,...,X3,X1,Xm-1,...Xm-υ+1 ) 이다.
그러면 Yt =(y0t , y1t ,…, ym-1 , t )TY의 모든 열벡터 Yt , t=0,1,…,m-1의 합은 (c 0, c 1,…, cm -1)TX의 모든 열벡터 Xt , t=0,1,…,m-1의 합과 같다. 병렬-입력, 병렬-출력 곱셈 구조를 구현하기 위해 Y의 열벡터의 합을 계산하는 대신에 Y의 이동한 대각 벡터의 합으로 계산한다. 이것은 다음의 결과로부터 얻을 수 있다. 행렬 Y의 표현에서 벡터 Xt Xm-t 사이에 정확히 t-1개의 열이 존재한다. 또한, Xt s번째 원소와 Xm-t s+t번째 원소는 그들의 가수(summand)에서 ai 의 같은 항을 가진다.
또한,
Figure 112008026662611-pat00042

를 얻는다. 이 때, 상기한 수학식 (16)에서 세 번째 식 표현은 아래 첨자 i에서 합의 재배열로 나오고 마지막 식 표현은 λij =λi - j, - j 로부터 나온다. 그러므로 xst xs + t , m - t 는 식의 표현에서 같은 항
Figure 112008026662611-pat00083
를 가지고 AB를 계산하는 동안 XOR 게이트의 수를 절약할 수 있다.
따라서, 전술한 바와 같이 상기 표 1과 같은 새로운 GNB 곱셈 알고리즘을 얻을 수 있게 되는데, 도 1에 상기한 바와 같은 GNB 곱셈 알고리즘을 이용하여 구현되는 비트-레벨 곱셈기의 구성을 나타내었다.
상기한 비트-레벨 곱셈기는 벡터 A를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 쉬프트하는 제1 레지스터부(10)와 상기 제1 레지스터부에 저장된 값을 사전에 설정된 알고리즘에 의해 배타적 논리합 연산을 수행하는 배타적 논리합 연산부(40), 벡터 B를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 쉬프트하는 제2 레지스터부(20), 기준클럭 단위로 상기 제1 레지스터부에 저장된 값과 상기 제2 레지스터부에 저장된 값 및 상기 배타적 논리합 연산부를 통해 논리연산된 값을 곱셈 연산하는 제3 레지스터부(30)를 구비하여 구성되게 된다.
이하, 본 발명의 실시예의 과정을 상세히 설명하면 아래와 같다.
먼저, 수학식 14와 수학식 15에 보여지는 바와 같이,
Figure 112008026662611-pat00084
의 계수 cs 는 수학식 14와 수학식 15에 의해
Figure 112008026662611-pat00085
임을 알 수 있습니다.
또한 Xt =(x0t , x1t ,…, xm-1 , t )TXt번째 열벡터이고 X의 열벡터의 치환에 의해 Xt 가 재배열되어 m×m 행렬 Y를 구할 수 있다.
예를 들면, 수학식 21에서 t가 0일 때, 즉 첫 번째 클럭에서 y00=(a 2+a 5)b 3, y11=(a 1+a 3+a 6+a 0)b 2, y22=(a 3+a 6+a 0+a 1)b 1, y33=(a 5+a 2)b 0, y44=(a 5+a 0+a 1+a 2)b 6, y55=a 6 b 5, y66=(a 0+a 1+a 2+a 5)b 4이 계산된다.
여기서 y s,s a의 계수만를 살펴보면 y00와 y33, y11와 y22, y44와 y66이 같다는 것을 알 수 있다. 또한 y00와 y33에 사용된 (a 2+a 5)은 y44와 y66에 재사용되고 y11와 y22에서 사용된 (a 0+a 1)도 y44와 y66에 재사용된다. 이러한 성질을 이용하여 제 1레지스터부(10)에 저장된 A로부터 A 계수의 합으로 표현한 회로도로 구현한 부분이 배타적 논리합 연산부(40)이다. 이 배타적 논리합 연산부는 m에 의해 좌우된다.
배타적 논리합 연산부(40)에서의 결과 값인 각각의 A 계수의 합, (a 2+a 5), (a 1+a 3+a 6+a 0), (a 3+a 6+a 0+a 1), (a 5+a 2), (a 5+a 0+a 1+a 2), a 6, (a 0+a 1+a 2+a 5)와 제 2레지스터부(20)의 B의 계수, b 3, b 2, b 1, b 0, b 6, b 5, b 4의 곱을 계산하기 위한 것이 제 3레지스터(30)의 R i 에 해당하는 앤드게이트(30a)이다.
그리고, 초기에는 R i 의 딜레이부(30c) D i 들이 0으로 셋팅되어 있으므로 앤드게이트(30a)의 값과 제 3레지스터(30)의 R i 의 딜레이부(30c)부터 전달된 D i =0이 XOR 게이트(30b)에서 XOR 연산을 한 후, 각 D i 에 저장되면 y00=(a 2+a 5)b 3, y11=(a 1+a 3+a 6+a 0)b 2, y22=(a 3+a 6+a 0+a 1)b 1, y33=(a 5+a 2)b 0, y44=(a 5+a 0+a 1+a 2)b 6, y55=a 6 b 5, y66=(a 0+a 1+a 2+a 5)b 4을 얻게 된다.
또한, 아래의 식은 수학식 21에서 두 번째 클럭의 과정을 설명하기 위한 것이다.
Figure 112008026662611-pat00086

먼저, t가 1일 때 즉 2번째 클럭에서는 제 1레지스터부(10)에 저장된 A값과 제 2레지스터부(20)에 저장된 B값이 각각 상위 비트측으로 쉬프트 된 후 y60=(a 1+a 2+a 3+a 6)b 5, y01=(a 3+a 6)b 4, y12=(a 2+a 4+a 0+a 1)b 3, y23=(a 4+a 0+a 1+a 2)b 2, y34=(a 6+a 3)b 1, y45=(a 6+a 1+a 2+a 3)b 0, y56=a 0 b 6이 계산된다.
제 1레지스터부(10)의 값이 상위 비트측으로 쉬프트 된 후 의 배타적 논리합 연산부(40)를 실행한 값, (a 1+a 2+a 3+a 6), (a 3+a 6), (a 2+a 4+a 0+a 1), (a 4+a 0+a 1+a 2), (a 6+a 3), (a 6+a 1+a 2+a 3), a 0과 제 2레지스터부(20)의 값이 상위 비트측으로 쉬프트 된 후의 B의 계수, b 5, b 4, b 3, b 2, b 1, b 0, b 6의 곱을 제 3레지스터(30)의 R i 에 해당하는 앤드게이트(30a)에서 계산한다.
이번 클럭에서는 첫 번째 클럭에서 R i 의 딜레이부(30c) D i 들에 저장된 y00, y11, y22, y33, y44, y55, y66을 전달받아 XOR 게이트(30b)에서 XOR 연산을 한 후 각 D i 에 저장된다.
이와 같이, 본 발명의 실시예에 따른 GF(27)상의 비트-레벨 곱셈기는 7번의 클럭을 수행한 후에 최종 결과값을 얻을 수 있다. 그리고, 본 발명의 실시예의 AND 게이트와 XOR 게이트는 2-입력 1-출력 게이트이다. 따라서 곱과 XOR 연산은 단지 두 개의 입력값만 받아서 연산을 수행한다.
이어서, GNB를 이용한 유한체 GF(2 m )상의 워드-레벨 곱셈기에 대해서 설명한다.
본 발명에 따른 유한체상의 곱셈기에 적용되는 워드-레벨 구조는 데이터를 일정한 크기의 워드 단위로 나눈 다음, 워드 단위로 처리 및 전송한다. 데이터 크기가 m비트이고 워드의 크기가 w비트이면, 워드 개수
Figure 112008026662611-pat00044
이 된다. 비트 시리얼 구조는 m클럭 사이클마다 결과를 출력하지만, 워드-레벨 구조는 L클럭 사이클마다 결과를 출력한다. 워드-레벨 구조는 워드의 크기가 커질수록 연산 시간을 단축할 수 있으나, 하드웨어 복잡도가 증가한다. 그러나 시간과 공간을 만족시키는 가장 적합한 워드 크기를 찾는다면 둘 사이의 상충 관계를 개선할 수 있다. 아래의 표 (2)는 GNB를 이용한 GF(2 m )상의 워드-레벨 곱셈 알고리즘이다.
이하, 도 3 및 도 4에 도시된 본 발명의 다른 실시예를 상세히 설명하면 아래와 같다.
먼저, A 레지스터부(100)는 A를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 워드크기 w만큼씩 쉬프트한다.
그리고, B 레지스터부(110)는 벡터 B를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 워드크기 w만큼씩 쉬프트한다.
이때, 논리연산부(120)는 워드 크기 w에 좌우된다. w비트이면 w개의 세부적인 논리연산부 f0, f1, …, f w -1로 구성된다. 즉, 워드 크기가 2이므로 2개의 논리연산부로 구성되어 f0 논리연산부(120a)와 f1 논리연산부(120b)로 구성된다.
이러한 f0 논리연산부(120a)와 f1 논리연산부(120b)는 동일한 구조를 가진다. f i 논리연산부(120)는 A 레지스터부(100)에 저장된 값을 사전에 설정된 알고리즘에 의해 배타적 논리합 연산을 수행하는 GNB 배타적 논리합 연산부(121)와, GNB 배타적 논리합 연산부(121)를 통해 논리연산된 값과 상기 B 레지스터부(110)에 저장된 값을 곱셈연산 하는 엔드게이트들(123)로 구성되어 있다.
또한, 논리곱 연산부(130)는 mw에 의해 좌우된다. LrL=
Figure 112008026662611-pat00087
,
Figure 112008026662611-pat00088
으로 정의되어 L클럭 후에 결과값을 얻게 된다. 또한 마지막 L번째 클럭에서는 w-r개의 원소가 첫 번째 클럭에서의 결과값과 중복되므로 f0, f1, …, f r , f r +1, …, f w -1 논리연산부의 결과값 중에서 r개의 논리연산부 결과값 f0, f1, …, f r 을 제외한 w-r개의 논리연산부 결과값은 제 1 배타적 논리합 연산부(140)에 영향을 미치지 않아야 한다.
따라서, 논리곱 연산부(130)는 mw에 따라 w-r개가 나타난다. 그리고 제어신호는 마지막 클럭에서 중복되는 부분을 피하기 위한 방법으로 0을 곱해준다. 그러면 제어신호는 (1,1,…,1,0)과 같이 L-1번째 클럭까지는 1을, 마지막 L번째 클럭에서만 0으로 제어한다.
이때, m=7, w=2이므로 L=4가 되어 4클럭 후에 결과값을 얻게 된다. r=1로서 마지막 4번째 클럭에서는 f1 논리연산부의 출력값이 1번째 클럭의 출력값과 중복되므로 f1 논리연산부의 출력값이 결과값에 영향을 미치지 않게 하기 위해 논리곱 연산부의 제어신호 0과 논리곱 연산을 수행하여 모든 값이 0으로 셋팅되고 출력값이 중복되지 않게 되는 것입니다.
제 1 배타적 논리합 연산부(140)는 수학식 20에서와 같이 동시에 논리연산부(120)의 w개 세부 논리연산부, f0, f1, …, f w -1 논리연산부의 대응되는 m비트 출력값을 XOR하기 위한 것이다. 따라서
Figure 112008026662611-pat00089
개의 2-입력 XOR 게이트가 필요하게 됩니다.
따라서 제 1 배타적 논리합 연산부(140)는 w에 의해 좌우된다. 이때, m=7, w=2이므로 7개의 2-입력 XOR 게이트로 구성되며 워드 크기 w값이 증가하면 XOR 게이트도 증가하게 된다.
제 2 배타적 논리합 연산부(160)는 XOR 게이트와 같은 역할을 수행합니다. 각 클럭마다 출력되는 제 1 배타적 논리합 연산부(140)의 출력값과 딜레이부(150)의 레지스터(R1, R2, R3, R4, R5, R6, R0)의 XOR 연산을 수행한다. 제 2 배타적 논리합 연산부(160)는 워드 크기 w와 상관없이 m비트값을 출력하기 위한 것이므로 m개의 XOR 게이트로 구성된다.
딜레이부(150)는 단지 딜레이의 역할로서 임시로 출력값을 저장하였다가 다음 클럭에서 출력되는 값과 같이 제 2 배타적 논리합 연산부(160)에서 XOR 연산을 위해 딜레이시키기 위한 역할을 수행한다.
따라서, 딜레이부(150)는 도 1에 도시된 딜레이부(30)의 R i 와 혼돈되지 않도록 모호성을 배제하기 위해서는 R i 를 D i 로 바꾸어 생각하여야 한다.
그리고, f i 논리연산부(120)는 각각 m비트의 출력값을 가지게 됩니다. 또한 제어신호에 의해 1번째 클럭부터 L-1번째 클럭까지는 f i 논리연산부는 각 m비트의 출력값이 제 1 배타적 논리합 연산부에 입력되어야 하므로, f i 논리연산부는 각 m비트 출력값이 제어신호 1과 각각 곱해져서 제 1 배타적 논리합 연산부(140)에 전달e된다.
즉 제어신호 1과 f i 논리연산부(120)는 각 m비트 출력값이 논리곱 연산부에서 연산 수행한 결과는 f i 논리연산부의 출력값과 같다. 하지만 마지막 L클럭에서는 w-r개의 f i 논리연산부의 각 m비트 출력값이 1번째 클럭의 출력값과 중복됨을 피하기 위해 각 m비트와 0을 곱하여 출력값이 제 1 배타적 논리합 연산부(140)에 전달되지 않게 하는 역할을 한다.
이 제어신호는 L에 의해 좌우되며 마지막 클럭에서만 0이 입력되어 중복을 회피할 수 있다. 이는 m/w가 정수가 아닌 경우에 발생하여 중복을 피하는 것이다. 만약 m/w가 정수인 경우는 논리곱 연산부(130)는 필요없으며 따라서 제어신호도 필요하지 않다.
알고리즘 4.2. GF(2 m )상의 GNB를 이용한 워드-레벨 곱셈 알고리즘
Input : A, BGF(2 m ) Output : D=(D 0 , D 1, …, Dm -1), Ds =cs for all 0≤sm-1, where AB=
Figure 112008026662611-pat00045
. Initial : A ← (a 0, a 1, …, am -1), B ← (b 0, b 1, …, bm -1), D ← (D 0, D 1, …, Dm -1) ← (0, 0, …, 0). 1. For t=0 to L-2 2. For s=0 to m-1 3. Ds +( t +1) w - r ys , s + tw + ys , s + tw +1 + … + ys , s + tw +( w -1) + Ds + tw - r 4. End for 5. End for 6. t=L-1 7. For s=0 to m-1 8. Ds +( t +1) w - r ys , s + tw + ys , s + tw +1 + … + ys , s + tw +( w -1)- r + Ds + tw - r 9. End for 10. Return D
Figure 112008026662611-pat00046
,
Figure 112008026662611-pat00047

먼저, 표 2는 도 3의 워드-레벨 곱셈기의 회로도에 대한 알고리즘으로 표현한 것이다.
여기서, 표 2의 알고리즘에서 0≤tL-2일 때, 모든 0≤sm-1에 대한 ys , s + tw , ys , s + tw +1, …, ys , s + tw +( w -1)을 계산하기 위해 w개의 블록이 필요하지만 t=L-1일 때는 r개의 블록이 t=0일 때의 원소와 중복되므로 w-r개의 블록 ys , s +( L -1) w , ys , s +( L -1) w +1, …, ys , s +( L -1) w +( w - r )-1만 계산하면 된다. 그리고 ys , s +( L -1) w +( w -1)- r =ys , s + m -1이다.
위 알고리즘을 상세하게 설명하면, 첫 번째 사이클(t=0)일 때, 모든 0≤sm-1에 대해, Ds + w - r = Ds - r + ys , s + ys , s +1 + … + ys , s + w -1은 동시에 계산된다. 즉, Dw - r = y 0 , 0 + y 0 , 1 + … + y 0 ,w -1, Dw - r +1 = y 1 , 1 + y 1 , 2 + … + y 1 ,w , …, Dw - r +( m -1) = ym -1 ,m -1 + ym -1 , 0 + … + ym -1 ,w -2가 동시에 계산된다. 다시 말해, w개의 블록 - ys , s 블록, ys , s +1 블록, …, ys , s + w -1 블록이 동시에 계산되는 것이다. 또한, t=1일 때, 모든 0≤sm-1에 대해, Ds +2 w - r = Ds + w - r + ys , s + w + ys , s + w +1 + … + ys , s +2 w -1은 동시에 계산된다. 즉, D 2 w - r = Dw - r + y 0 ,w + y 0 ,w +1 + … + y 0 , 2 w -1 = y 0 , 0 + y 0 , 1 + … + y 0 , 2 w -1, D 2 w - r +1 = Dw - r +1 + y 1 ,w +1 + y 1 ,w +2 + … + y 1 , 2 w = y 1 , 1 + y 1 , 2 + … + y 1 , 2 w , …, D 2 w - r +( m -1) = Dw - r +( m -1) + ym -1 ,w -1 + ym -1 ,w + … + ym -1 , 2 w -2 = ym -1 ,m -1 + ym -1 , 0 + … + ym -1 , 2 w -2w개의 블록이 동시에 계산된다. 마지막으로 L-1번째 사이클(t=L-1)일 때, 모든 0≤sm-1에 대해, Ds + Lw - r = Ds +( L -1) w - r + ys , s +( L -1) w + ys , s +( L -1) w +1 + … + ys , s +( L -1) w +( w - r )-1 = Ds +( L -1) w - r + ys , s +( L -1) w + ys , s +( L -1) w +1 + … + ys , s + m -1은 동시에 계산된다.
이때, 이하에서 설명되는 수학식 17 내지 수학식 19는 도 3에 도시된 논리연산부(120)에 해당한다.
여기서 Ds + Lw - r = Ds + m = Ds . 즉,
D 0 = D ( L -1) w - r + y 0,( L -1) w + y 0,( L -1) w +1 + … + y 0, m -1
= y 0 , 0 + y 0 , 1 + … + y 0 ,m -1 = c 0
D 1 = D 1+( L -1) w - r + y 1,1+( L -1) w + y 1,1+( L -1) w +1 + … + y 1,0
= y 1 , 1 + y 1 , 2 + … + y 1 , 0 = c 1
……
……
Dm -1 = Dm -1+( L -1) w - r + ym -1, m -1+( L -1) w + ym -1, m -1+( L -1) w +1 + … + ym -1, m -2
= ym -1 ,m -1 + ym -1 , 0 + … + ym -1, m -2
이 동시에 계산된다. 다시 말해, 고정된 s에 대해, 마지막 출력값 Ds 는 다음과 같은 방법으로 연속적으로 계산된다.
Figure 112008026662611-pat00048

이때, 수학식 20은 도 3에 도시된 논리연산부(120), 논리곱 연산부(130), 제1 배타적 논리연산부(140), 딜레이부(150) 및 제2 배타적 논리연산부(160)에 해당한다.
앞 절에서 xs -1, s' (=y s-1, s )는 xs , s' (=y s, s )의 벡터 ai , bi 들을 오른쪽으로 한 번 순환 쉬프트해서 얻어진다는 것을 알았다. 그러므로 w개의 블록을 동시에 계산하기 위해서 ys , s 블록과 ys , s 의 벡터 ai , bi 들을 오른쪽으로 각각 한 번, 두 번, …, w-1번 순환 쉬프트하여 얻게 되는 ys , s +1 블록, ys , s +2 블록, …, ys , s + w -1 블록을 동시에 계산하여야 하며 이때, 각 블록의 구조는 동일하다. 모든 0≤sm-1에 대해, ys , s 를 실행하기 위해서는 m개의 AND 게이트와
Figure 112008026662611-pat00049
개의 XOR 게이트가 필요함을 알 수 있다.
따라서 Ds + tw - r 을 계산하기 위해서는 w개의 블록을 동시에 계산해야 하므로 wm개의 AND 게이트와 많아야
Figure 112008026662611-pat00050
개의 XOR 게이트가 필요하다. 또한, Ds + tw - r Ds +( t -1) w - r , ys , s +( t -1) w , ys , s +( t -1) w +1, …, ys , s +( t -1) w +( w -1)의 합을 계산하기 위해 wm개의 XOR 게이트가 필요하다. 특히, t=L-1일 때 r개의 블록이 중복되므로 중복되는 r개의 블록 값을 회피하기 위해 제어 신호 '0'과 AND 연산을 하게 되므로 rw개의 AND 게이트가 필요하게 된다. 따라서 제안된 워드-레벨 곱셈기의 복잡도는 도 3에 도시한 바와 같이 wm+rm개의 AND 게이트와 많아야
Figure 112008026662611-pat00051
개의 XOR 게이트로 이루어진다. 처리 지연 시간은 T A와 많아야
Figure 112008026662611-pat00052
이고, r개의 블록에서 나온 값과 제어 신호가 AND 연산을 한 후, Ds +( t -1) w - r + ys , s +( t -1) w + ys , s +( t -1) w +1 + … + ys , s +( t -1) w +( w -1)를 계산하므로 T A
Figure 112008026662611-pat00053
이다.
따라서 처리 지연 시간은 많아야 2T A +
Figure 112008026662611-pat00054
이다. 특히 k=2이면 워드-레벨 곱셈기의 처리 지연 시간은 2T A +
Figure 112008026662611-pat00055
이고, wm+rm개의 AND 게이트와 많아야
Figure 112008026662611-pat00090
개의 XOR 게이트가 필요하다.
전술한 바와 같은 본 발명에 따른 워드-레벨 곱셈기의 성능 분석을 한 결과 기존의 곱셈기보다 작은 하드웨어 복잡도와 훨씬 낮은 처리 지연 시간을 나타내었다.
전술한 바와 같은 내용을 바탕으로, w=2인 GF(27)상의 GNB 타입 4를 사용한 워드-레벨 곱셈 C=AB=
Figure 112008026662611-pat00056
는 아래의 수학식 (21)과 같이 얻을 수 있다. w=2이므로 아래의 밑줄 친 두 개의 원소를 XOR 연산하여 레지스터에 저장하게 되는데 밑줄 친 원소의 첫 번째 항은 ai 들의 공통된 항을 가지는 주 대각 원소를 계산하는 f 0 블록이고, 두 번째 항은 주 대각 원소의 벡터 ai , bi 들을 한 번 순환 쉬프트하여 계산하는 f 1 블록이다.
Figure 112008026662611-pat00091

여기서, 수학식 21은 논리 연산부(120)를 거쳐 제1 배타적 논리 연산부(140)까지의 과정을 보인 것으로 1 클럭에 해당한다. 이때, 밑줄친 부분에서 + 의 앞부분은 F0 논리연산부(120a)에 해당되고, + 의 뒷부분은 F1 논리연산부(120b)에 해당된다.
도 3은 w=2에 대한 GF(27)상의 GNB 타입 4를 사용한 C=AB의 대응되는 쉬프트 레지스터 회로이고, 도 4는 도 3에서의 fj 블록 구조를 나타낸다. 워드-레벨 구조에서는 한 클럭 사이클마다 w=2개의 원소를 연산하므로 A, B, R 레지스터는 w 크기만큼 순환 쉬프트하고 L=4 클럭 사이클 후에 모든 연산이 끝나고 결과가 출력된다. m이 홀수이기 때문에 두 개의 원소씩 처리하면 마지막 클럭 사이클에서는 중복되는 원소의 연산이 나타나므로 이 중복되는 연산을 회피해야 한다.
워드의 크기 w에 따라 중복되는 원소의 개수 w-r도 다르게 나타나므로 중복되는 원소의 개수만큼 마지막 클럭 사이클에서 제어 신호로 제거해 주어야 한다. 도 3에 나타나듯이 제안된 곱셈기는 (1, 1, 1, 0)의 제어 신호를 사용하여 마지막 제어 신호에서는 중복되는 값을 회피하였다. 또한, m/w가 정수가 아니므로 곱셈 결과 레지스터 Ri 는 정확한 ci 를 가지지 않는다. 따라서 정확한 출력을 위해 Ri 의 위치를 변경해야만 하고 r만큼 순환 쉬프트하여 해결할 수 있다. 이와 같이 w=2에 대한 GF(27)상의 GNB 타입 4에 대한 워드-레벨 곱셈기를 살펴보면, 공간 복잡도가 증가하였고 처리 지연 시간 또한 2T A+4T X이지만, 비트 시리얼 곱셈기가 m클럭 사이클 후에 출력되는데 반해, L클럭 사이클 후에 출력할 수 있다는 장점이 있다. 기존의 곱셈기는 선택된 원시 기약 다항식에 따라 서로 다른 하드웨어 구조를 가지지만 본 발명에서 제안된 곱셈기는 동일한 GNB 타입만 가지면 동일한 형태의 하드웨어 구조를 얻을 수 있다. 따라서 본 발명에 따른 유한체 GF(2m)상의 곱셈기는 ECC의 곱셈기로 매우 적합하다고 할 수 있다.
전술한 바와 같은 본 발명에 따른 유한체상의 곱셈기는 GF(2m)상의 곱셈기의 FPGA 구현 및 기능 검증을 위해 VHDL로 회로를 기술한 것이고, Xilinx사의 ISE 6.3i를 이용하여 회로를 합성한 후, Mento Graphics사의 Model Sim을 이용하여 그 기능을 검증하였다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서 본 발명의 기술적 범위는 실시 예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위 및 그와 균등한 것들에 의하여 정해져야 한다.
전술한 바와 같은 본 발명은 기존의 곱셈기 보다 낮은 하드웨어 복잡도를 가지지만 훨씬 낮은 Critical Path Delay를 가지게 되는 유한체상의 곱셈기를 구현할 수 있게 된다.
또한, 기존의 곱셈기가 원시 기약 다항식에 따라 서로 다른 하드웨어 구조를 가지는 반면 본 발명에 따른 곱셈기는 동일한 GNB 타입만 가지면 동일한 형태의 하드웨어 구조를 얻을 수 있게 되고, 나아가 본 발명에 따른 곱셈기는 타원곡선 암호시스템을 위한 최적의 곱셈기를 구현할 수 있도록 하는 효과가 있다.
또한, 본 발명은 그 구조가 매우 규칙적이기 때문에 VLSI 구현에 매우 적합한 매우 유용한 발명이다.

Claims (4)

  1. 유한체 GF(2m )상의 곱셈기에 있어서,
    벡터 A를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 한 비트 쉬프트하는 제1 레지스터부(10);
    상기 제1 레지스터부에 저장된 값을 사전에 설정된 알고리즘에 의해 배타적 논리합 연산을 수행하는 배타적 논리합 연산부(40);
    벡터 B를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 한 비트 쉬프트하는 제2 레지스터부(20);
    기준클럭 단위로 상기 제2 레지스터부(20)에 저장된 값 및 상기 배타적 논리합 연산부(40)를 통해 논리연산된 값을 곱셈 연산한 곱셈값과, 다수의 세부레지스터(R0 ~ R6) 각각에 저장되어 있던 각각의 값들과 XOR연산하여 저장 및 딜레이하는 제3 레지스터부(30);를 구비하여 구성되는 것을 특징으로 하는 유한체상 GF(2m)상의 곱셈기.
  2. 제 1항에 있어서,
    상기 제3 레지스터부(30)의 상기 다수의 세부레지스터(R0 ~ R6)는, 각각
    상기 제2 레지스터부(20)에 저장된 값과 상기 배타적 논리합 연산부(40)에서 논리 연산된 값을 논리곱하는 앤드게이트(30a);
    상기 앤드게이트(30a)에서 논리곱 된 값과 하위 세부레지스터로부터 쉬프트된 값을 배타적 논리합 연산하는 XOR 게이트(30b);
    상기 XOR 게이트에서 논리 연산된 값을 딜레이시키는 딜레이부(30c);를 구비하여 구성되는 것을 특징으로 하는 유한체 GF(2m)상의 곱셈기.
  3. 유한체 GF(2m)상의 곱셈기에 있어서,
    벡터 A를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 워드크기 w만큼씩 쉬프트하는 A 레지스터부(100);
    벡터 B를 입력받아 저장하고, 기준클럭에 의해 상위 비트측으로 워드크기 w만큼씩 쉬프트하는 B 레지스터부(110);
    기준클럭 단위로 상기 A 레지스터부에 저장된 값과 상기 B 레지스터부에 저장된 값을 사전에 설정된 알고리즘에 따라 각각 논리연산하는 F0 논리연산부(120a)와 F1 논리연산부(120b)를 구비하는 논리연산부(120);
    상기 F1 논리연산부(120b)에서 출력되는 값과 외부에서 제공되는 제어값을 논리곱하는 논리곱 연산부(130);
    상기 F0 논리연산부(120a)와 논리곱 연산부(130)에서 출력되는 값을 배타적 논리합 연산을 수행하는 제1 배타적 논리합 연산부(140);
    상기 제1 배타적 논리합 연산부(140)에서 처리된 값과 하위레지스터(R0 ~ R6)에서 워드크기 w만큼 쉬프된 하위레지스터값을 다시 배타적 논리합 연산하는 제2 배타적 논리 연산부(160);
    상기 제2 배타적 논리 연산부에서 출력되는 값을 딜레이시키는 딜레이부(150);를 구비하며,
    상기 논리연산부(120)는
    상기 A 레지스터부(100)에 저장된 값을 사전에 설정된 알고리즘에 의해 배타적 논리합 연산을 수행하는 GNB 배타적 논리합 연산부(121)와,
    상기 GNB 배타적 논리합 연산부(121)를 통해 논리연산된 값과 상기 B 레지스터부(110)에 저장된 값을 곱셈연산 하는 엔드게이트들(123)로 이루어지는 것을 특징으로 하는 유한체 GF(2m)상의 곱셈기.
  4. 제 3항에 있어서,
    상기 제어값은,
    첫번째 클럭에서 마지막 전 클럭까지는 상기 F1 논리연산부(120b)의 출력값을 상기 제1 배타적 논리합 연산부(140)에 전달하기 위해 제어값 1에 의해 상기 제1 배타적 논리합 연산부(140)에서 논리곱연산을 수행하고,
    마지막 클럭에서 상기 F1 논리연산부(120b)의 출력값을 상기 제1 배타적 논리합 연산부(140)에 전달되지 않도록, 제어신호 0에 의해 상기 제1 배타적 논리합 연산부(140)에 논리곱연산 하는 것을 특징으로 하는 유한체 GF(2m)상의 곱셈기.
KR1020060044858A 2006-05-18 2006-05-18 유한체 GF(2m)상의 곱셈기 KR100859185B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060044858A KR100859185B1 (ko) 2006-05-18 2006-05-18 유한체 GF(2m)상의 곱셈기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060044858A KR100859185B1 (ko) 2006-05-18 2006-05-18 유한체 GF(2m)상의 곱셈기

Publications (2)

Publication Number Publication Date
KR20070111718A KR20070111718A (ko) 2007-11-22
KR100859185B1 true KR100859185B1 (ko) 2008-09-18

Family

ID=39090483

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060044858A KR100859185B1 (ko) 2006-05-18 2006-05-18 유한체 GF(2m)상의 곱셈기

Country Status (1)

Country Link
KR (1) KR100859185B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112214244A (zh) * 2016-08-05 2021-01-12 中科寒武纪科技股份有限公司 一种运算装置及其操作方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4745568A (en) * 1986-12-16 1988-05-17 Onyszchuk Ivan M Computational method and apparatus for finite field multiplication
US5787028A (en) * 1995-03-30 1998-07-28 Certicom, Corp. Multiple bit multiplier
KR20000026250A (en) * 1998-10-19 2000-05-15 Samsung Electronics Co Ltd Method and apparatus for operating finite field
JP2000276328A (ja) * 1999-03-29 2000-10-06 Toyo Commun Equip Co Ltd 有限体上の乗算回路
KR20010103134A (ko) * 1999-12-17 2001-11-23 김지윤 빠른 유한체 연산을 이용한 타원곡선 암호화 방법 및 전자서명 방법
KR20040048471A (ko) * 2002-12-03 2004-06-10 한국전자통신연구원 직렬 유한체 승산기
KR20040055523A (ko) * 2002-12-21 2004-06-26 한국전자통신연구원 GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치
KR100656406B1 (ko) * 2005-11-29 2006-12-11 한국전자통신연구원 최적 정규 기저용 유한체 연산 장치

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4745568A (en) * 1986-12-16 1988-05-17 Onyszchuk Ivan M Computational method and apparatus for finite field multiplication
US5787028A (en) * 1995-03-30 1998-07-28 Certicom, Corp. Multiple bit multiplier
KR20000026250A (en) * 1998-10-19 2000-05-15 Samsung Electronics Co Ltd Method and apparatus for operating finite field
JP2000276328A (ja) * 1999-03-29 2000-10-06 Toyo Commun Equip Co Ltd 有限体上の乗算回路
KR20010103134A (ko) * 1999-12-17 2001-11-23 김지윤 빠른 유한체 연산을 이용한 타원곡선 암호화 방법 및 전자서명 방법
KR20040048471A (ko) * 2002-12-03 2004-06-10 한국전자통신연구원 직렬 유한체 승산기
KR20040055523A (ko) * 2002-12-21 2004-06-26 한국전자통신연구원 GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치
KR100656406B1 (ko) * 2005-11-29 2006-12-11 한국전자통신연구원 최적 정규 기저용 유한체 연산 장치

Also Published As

Publication number Publication date
KR20070111718A (ko) 2007-11-22

Similar Documents

Publication Publication Date Title
Kitsos et al. An efficient reconfigurable multiplier architecture for Galois field GF (2m)
McIvor et al. Modified Montgomery modular multiplication and RSA exponentiation techniques
US7805479B2 (en) Scalable, faster method and apparatus for montgomery multiplication
EP2261795B9 (en) Circuits and methods for performing exponentiation and inversion of finite field elements
Javeed et al. Radix-4 and radix-8 booth encoded interleaved modular multipliers over general F p
Marzouqi et al. An FPGA implementation of NIST 256 prime field ECC processor
Imana LFSR-Based Bit-Serial $ GF (2^ m) $ G F (2 m) Multipliers Using Irreducible Trinomials
Reyhani-Masoleh A new bit-serial architecture for field multiplication using polynomial bases
Elkhatib et al. Accelerated RISC-V for post-quantum SIKE
Ozcan et al. A high performance full-word Barrett multiplier designed for FPGAs with DSP resources
Mathe et al. Design and implementation of a sequential polynomial basis multiplier over GF (2 m)
Huang et al. Non-XOR approach for low-cost bit-parallel polynomial basis multiplier over GF (2m)
KR100859185B1 (ko) 유한체 GF(2m)상의 곱셈기
Ghoreishi et al. High speed RSA implementation based on modified Booth's technique and Montgomery's multiplication for FPGA platform
Rouhifar et al. Fast overflow detection in moduli set {2n–1, 2n, 2n+ 1}
Rashidi High-speed hardware implementation of Gaussian normal basis inversion algorithm over F2m
Kadu et al. Hardware implementation of efficient elliptic curve scalar multiplication using vedic multiplier
Shylashree et al. FPGA based efficient elliptic curve cryptosystem processor for NIST 256 prime field
Morales-Sandoval et al. A compact FPGA-based Montgomery multiplier over prime fields
Alkar et al. A hardware version of the RSA using the Montgomery's algorithm with systolic arrays
Jeon et al. Elliptic curve based hardware architecture using cellular automata
KR100946256B1 (ko) 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기
Masoumi et al. Efficient Hardware Implementation of an Elliptic Curve Cryptographic Processor over GF (2 163)
Wang Speed and area optimized parallel higher-radix modular multipliers
Chang et al. Concurrent error detection in polynomial basis multiplier over GF (2m) using irreducible trinomial

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20120911

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130603

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141013

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150909

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160913

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170901

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee