KR100954586B1 - 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를이용한 마이크로프로세서 - Google Patents

다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를이용한 마이크로프로세서 Download PDF

Info

Publication number
KR100954586B1
KR100954586B1 KR1020080084125A KR20080084125A KR100954586B1 KR 100954586 B1 KR100954586 B1 KR 100954586B1 KR 1020080084125 A KR1020080084125 A KR 1020080084125A KR 20080084125 A KR20080084125 A KR 20080084125A KR 100954586 B1 KR100954586 B1 KR 100954586B1
Authority
KR
South Korea
Prior art keywords
multiplication
exclusive
result
modulo
polynomial
Prior art date
Application number
KR1020080084125A
Other languages
English (en)
Other versions
KR20100025403A (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 KR1020080084125A priority Critical patent/KR100954586B1/ko
Publication of KR20100025403A publication Critical patent/KR20100025403A/ko
Application granted granted Critical
Publication of KR100954586B1 publication Critical patent/KR100954586B1/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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • 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
    • 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

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

Abstract

본 발명은 다항식 기저 기반의 유한체 병렬 곱셈 장치 및 방법과 이를 이용한 마이크로프로세서에 관한 것이며, 삼항 기약다항식(f(x)=xn+xk+1, 1≤k<n/2)을 이용하여 유한체 GF(2n) 상의 두 원소 A 및 B의 곱셈을 수행하는 다항식 기저 기반의 이진체 병렬 곱셈 장치에 있어서, 상기 두 원소 A 및 B를 상기 두 원소 A 및 B의 항 중에서 각각 k 미만 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aL(x) 및 bL(x)와, k 이상 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aH(x)xn-k 및 bH(x)xn-k으로 분할하여 상기 두 원소 A 및 B를 곱셈한 결과인 S가 S=S1+S2+S3일 때 S1, S2 및 S3에 대해 각각 모듈로 감산을 수행한 결과값을 생성하는 곱셈 및 모듈로 감산부; 및 상기 곱셈 및 모듈로 감산부의 결과값에 대해 배타적 논리합 연산을 수행하여 상기 S의 모듈로 감산 결과값을 생성하는 AB 곱셈값 생성부를 포함하여, 공간 복잡도를 감소시키면서도 시간 복잡도의 증가량을 최소화한다.

Description

다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를 이용한 마이크로프로세서{Parallel apparatus and method for polynomial basis multiplication over GF(2^n), and microprocessor using thereof}
본 발명은 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를 이용한 마이크로프로세서에 관한 것이며, 더 상세하게는 다항식 기저 기반으로 삼항 기약다항식을 이용한 설계를 통해 공간 복잡도를 개선한 다항식 기저 기반의 유한체 병렬 곱셈 장치 및 방법과 이를 이용한 마이크로프로세서에 관한 것이다.
유한체(finite field)란 유한한 개수의 원소를 포함하는 체(field)를 말한다. 즉, 유한체 GF(2n)는 2n개의 원소들을 포함하는 수 체계이다. 유한체 상의 연산은 코딩이론(coding theory), 컴퓨터 대수(computer algebra), 공개키 암호 시스템(public key cryptosystem) 중에서 타원곡선 암호시스템(elliptic curve cryptosystem), 페어링 기반의 암호시스템(pairing based cryptosystem) 등 여러 분야에서 널리 쓰이고 있다. 유한체 GF(2n)의 주요연산은 덧셈, 곱셈, 제곱, 역원 연산들이다. 상기 연산들 중에서, 덧셈과 제곱 연산은 이진체 특성에 의하여 쉽게 수행될 수 있지만, 곱셈과 역원 연산은 덧셈 연산에 비하여 많은 시간-공간 자원을 필요로 한다. 특히, 공개키 암호 시스템에서 가장 많은 비중을 차지하는 지수승 연산의 경우, 반복적인 곱셈으로 구성되므로 곱셈기의 효율성이 공개키 암호시스템 전체 효율성에 큰 영향을 미친다.
현재까지 연구된 유한체 곱셈 연산기로는 크게 직렬 곱셈기, 병렬 곱셈기, 하이브리드 곱셈기가 존재한다. 직렬 곱셈기는 마스트로비토(Maxtrovito)에 의하여 제안되어 유한체 곱셈기의 기본적인 구조로 자리 잡아 왔다. 그러나 직렬 곱셈기는 시간 복잡도가 높아 고속 연산에 부적합한 문제가 있다. 하이브리드 곱셈기는 1999년 파르(Paar)에 의하여 제안되어 직렬 곱셈기의 연산 수행속도 문제를 개선하고 병렬 유한체 곱셈기의 단점으로 볼 수 있는 하드웨어 자원 문제를 개선하였다. 그러나 하이브리드 곱셈기의 경우 사용 가능한 유한체로서 유한체의 차수가 합성수인 합성수 유한체를 사용하기 때문에 암호학적인 안전도가 떨어져 많은 응용 분야에 적용하기 힘들다. 병렬 곱셈기의 경우 고속 연산을 수행할 수 있으므로 연산량이 많고 시간이 중요시되는 환경에서 다른 곱셈기들에 비해 그 필요성이 크다. 다만, 앞서 언급한 바와 같이 비교적 하드웨어 자원을 많이 필요로 하는 문제가 있다.
한편, 유한체 GF(2n) 곱셈기 설계에 있어서 기저 선택은 매우 중요하다. 주로 쓰는 기저로는 정규 기저(normal basis), 다항식 기저(polynomial basis), 쌍대 기저(dual basis) 등이 있다. 상기 각각의 기저들은 환경에 따라 장단점을 가진다. 상기 기저들 중 다항식 기저 표현을 사용하는 경우 정규기저(normal basis) 등과 비교할 때, 기저 변환이 불필요한 장점을 가진다. 따라서, 공간 자원이 중요시되는 환경을 위해 다항식 기저를 사용하는 곱셈기들이 연구되고 있다.
Leone은 Karatsuba-Ofman Algorithm(KOA) 방법을 적용하여 시간 복잡도와 공간 복잡도의 교환을 이용하여 시간 복잡도는 증가하지만 낮은 공간 복잡도를 가지는 병렬 처리 곱셈기를 제안하였다(M.Leone,“A New Low Complexity Parallel Multiplier for a Class of Finite Fields,”in Workshop on Cryptographic Hardware and Embedded Systems ( CHES'01 ), LNCS 2162, pp 160-170, 2001. 참조).
Sunar 와 Koc은 1999년에 시간 복잡도를 감소시키기 위한 방법으로 곱셈 행렬을 이용하여 다항식 곱셈과 모듈로 감산 연산을 통합하는 Mastrovito 곱셈 방법을 제시하였다(B.Sunar and C.K.Koc,“Mastrovito multiplier for all trinomials,”I E EE Trans . Comput ., vol.48, no.5, pp.522-527, May 1999. 참조).
Fan과 Dai은 2005년에 다항식 기저(Polynomial Basis; PB) Q를
Figure 112008061236224-pat00001
라 할 때, 상기 다항식 기저 Q에 x-v를 곱한 기저인 Q의 Shifted Polynomial Basis(SPB)를
Figure 112008061236224-pat00002
로 정의하고, 상기 SPB와 Mastrovito 곱셈 방법을 이용하여 기존의 Mastrovito 곱셈 방법과 공간 복잡도가 같고 모든 삼항 기약다항식에서 시간 복잡도가
Figure 112008061236224-pat00003
(T A 는 2개의 입력에 1개의 출력을 가진 AND 게이트 시간, T X 2개의 입력에 1개의 출력을 가진 XOR 게이트 시간)와 같음을 보였다(H.Fan and Y.Dai,"Fast bit parallel GF(2n) multiplier for all trinomials,”IEEE Trans . Comput ., vol.54, no.4, pp.485-490, Apr. 2005. 참조). 또한, 시간지연을 개선하는 방법으로 삼항 기약다항식이 f(x)=xn+xk+1이고 k<n/2일 때 시간 복잡도가
Figure 112008061236224-pat00004
까지 감소할 수 있음을 보였다(H. Fan and M. A. Hasan, "Fast Bit Parallel Shifted Polynomial Basis Multipliers in GF(2n)," IEEE Trans . Circuits & Systems -I, vol. 53, no. 12, pp. 2606-2615, Dec. 2006. 참조).
그러나, 병렬 곱셈기의 근본적인 문제점인 높은 공간 복잡도는 여전히 개선의 필요성이 크며, 특히 하드웨어 자원의 고 효율성이 요구되는 스마트카드, 모바일 폰 등의 환경에서는 시간-공간 복잡도의 트레이드오프(trade-off)를 충분히 고려하면서도 최소한의 공간 복잡도를 지니는 병렬 곱셈기에 대한 요청이 높은 실정이다.
따라서, 본 발명이 이루고자 하는 첫 번째 기술적 과제는, 시간 및 공간 복잡도의 트레이드오프 관계에 관한 효율성을 고려하여 공간 복잡도를 최소화하면서도 시간 복잡도의 증가량을 최소화하는 다항식 기저 기반의 이진체 병렬 곱셈 장치를 제공하는 것이다.
본 발명이 이루고자 하는 두 번째 기술적 과제는, 시간 및 공간 복잡도의 트레이드오프 관계에 관한 효율성을 고려하여 공간 복잡도를 최소화하면서도 시간 복잡도의 증가량을 최소화하는 다항식 기저 기반의 이진체 병렬 방법을 제공하는 것이다.
본 발명이 이루고자 하는 세 번째 기술적 과제는, 상기 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법을 이용한 마이크로프로세서를 제공하는 것이다.
상기와 같은 첫 번째 기술적 과제를 해결하기 위하여 본 발명은, 삼항 기약다항식(f(x)=xn+xk+1, 1≤k<n/2)을 이용하여 유한체 GF(2n) 상의 두 원소 A 및 B의 곱셈을 수행하는 다항식 기저 기반의 이진체 병렬 곱셈 장치에 있어서, 상기 두 원소 A 및 B를 상기 두 원소 A 및 B의 항 중에서 각각 k 미만 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aL(x) 및 bL(x)와, k 이상 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aH(x)xn-k 및 bH(x)xn-k으로 분할하 여 상기 두 원소 A 및 B를 곱셈한 결과인 S가 수학식;
S=S1+S2+S3 이고,
S1=aL(x)bL(x)+aL(x)bL(x)xn -k,
S2=aH(x)bH(x)xn -k+aH(x)bH(x)x2n-2k,
S3=(aL(x)+aH(x))(bL(x)+bH(x))xn -k 과 같이 나타날 때 상기 S1, S2 및 S3에 대해 각각 모듈로 감산을 수행한 결과값을 생성하는 곱셈 및 모듈로 감산부; 및 상기 곱셈 및 모듈로 감산부의 결과값에 대해 배타적 논리합 연산을 수행하여 상기 S의 모듈로 감산 결과값을 생성하는 AB 곱셈값 생성부를 포함하고, 상기 곱셈 및 모듈로 감산부는 상기 다항식 aL(x) 및 bL(x)에 포함되는 항으로서 상기 A 및 B에 포함되지 않는 상기 항의 계수를 0으로 설정하는 다항식 기저 기반의 이진체 병렬 곱셈 장치를 제공한다.
본 발명의 일 실시예에 따르면, 상기 곱셈 및 모듈로 감산부는 상기 S1의 모듈로 감산 결과값을 생성하는데 사용되는 제1 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제1 논리곱 연산부; 상기 S2의 모듈로 감산 결과값을 생성하는데 사용되는 제2 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제2 논리곱 연산부; 및 상기 S3의 모듈로 감산 결과값을 생성하는데 사용되는 제3 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제3 논리곱 연산부를 포함한다.
본 발명의 일 실시예에 따르면, 상기 제3 논리곱 연산부는 상기 제3 곱셈행렬 및 상기 제3 곱셈행렬에 대응하는 상기 원소 B의 계수를 생성하는 XOR 게이트부; 및 상기 제3 곱셈행렬 및 상기 제3 곱셈행렬에 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 AND 게이트부를 포함한다.
본 발명의 일 실시예에 따르면, 상기 곱셈 및 모듈로 감산부는 상기 제3 논리곱 연산부에서 결과값이 생성되는 동안 상기 제1 논리곱 연산부 및 상기 제2 논리곱 연산부에 의한 연산 결과에 대해 배타적 논리합 연산을 수행하는 제1 배타적 논리합 연산부를 더 포함한다.
본 발명의 일 실시예에 따르면, 상기 제1 배타적 논리합 연산부는 상기 제1 논리곱 연산부 및 상기 제2 논리곱 연산부에 의한 연산 수행 후, 상기 XOR 게이트부에 의한 지연시간(1TX)에 대응하는 시간 동안 상기 배타적 논리합 연산을 수행한다.
본 발명의 일 실시예에 따르면, 상기 곱셈 및 모듈로 감산부는 상기 제1 배타적 논리합 연산부 및 상기 제3 논리곱 연산부의 결과값을 재사용되는 결과값과 재사용되지 않는 결과값으로 분류하여 배타적 논리합 연산을 수행함으로써 상기 S1, S2 및 S3에 대해 각각 모듈로 감산을 수행한 상기 결과값을 생성하는 제2 배타적 논리합 연산부를 더 포함한다.
본 발명의 일 실시예에 따르면, 상기 제2 배타적 논리합 연산부는, XOR 트리(tree)를 구성하여 상기 배타적 논리합 연산을 수행한다.
본 발명의 일 실시예에 따르면, 상기 제2 배타적 논리합 연산부는 상기 재사용되는 결과값에 대해 배타적 논리합을 수행하는 두 개의 XOR 트리 및 상기 재사용되지 않는 결과값에 대해 배타적 논리합을 수행하는 한 개의 XOR 트리를 구성하여 상기 배타적 논리합 연산을 수행한다.
상기와 같은 두 번째 기술적 과제를 해결하기 위하여 본 발명은, 삼항 기약다항식(f(x)=xn+xk+1, 1≤k<n/2)을 이용하여 유한체 GF(2n) 상의 두 원소 A 및 B의 곱셈을 수행하는 다항식 기저 기반의 이진체 병렬 곱셈 방법에 있어서, 상기 두 원소 A 및 B를 상기 두 원소 A 및 B의 항 중에서 각각 k 미만 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aL(x) 및 bL(x)와, k 이상 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aH(x)xn-k 및 bH(x)xn-k으로 분할하여 상기 두 원소 A 및 B를 곱셈한 결과인 S가 수학식;
S=S1+S2+S3 이고,
S1=aL(x)bL(x)+aL(x)bL(x)xn -k,
S2=aH(x)bH(x)xn -k+aH(x)bH(x)x2n-2k,
S3=(aL(x)+aH(x))(bL(x)+bH(x))xn -k과 같이 나타날 때 상기 S1, S2 및 S3에 대해 각각 모듈로 감산을 수행한 결과값을 생성하는 곱셈 및 모듈로 감산 단계; 및 상기 곱셈 및 모듈로 감산 단계의 결과값에 대해 배타적 논리합 연산을 수행하여 상기 S의 모듈로 감산 결과값을 생성하는 AB 곱셈값 생성 단계를 포함하고, 상기 곱셈 및 모듈로 감산 단계는 상기 다항식 aL(x) 및 bL(x)에 포함되는 항으로서 상기 A 및 B에 포함되지 않는 상기 항의 계수를 0으로 설정하는 단계인 다항식 기저 기반의 이진체 병렬 곱셈 방법을 제공한다.
본 발명의 일 실시예에 따르면, 상기 곱셈 및 모듈로 감산 단계는 상기 S1의 모듈로 감산 결과값을 생성하는데 사용되는 제1 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제1 논리곱 연산 단계; 상기 S2의 모듈로 감산 결과값을 생성하는데 사용되는 제2 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제2 논리곱 연산 단계; 및 상기 S3의 모듈로 감산 결과값을 생성하는데 사용되는 제3 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제3 논리곱 연산 단계를 포함한다.
본 발명의 일 실시예에 따르면, 상기 제3 논리곱 연산 단계는 상기 제3 곱셈행렬 및 상기 제3 곱셈행렬에 대응하는 상기 원소 B의 계수를 생성하는 XOR 연산 단계; 및 상기 제3 곱셈행렬 및 상기 제3 곱셈행렬에 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 AND 연산 단계를 포함한다.
본 발명의 일 실시예에 따르면, 상기 곱셈 및 모듈로 감산 단계는 상기 제3 논리곱 연산 단계에서 결과값이 생성되는 동안 상기 제1 논리곱 연산 단계 및 상기 제2 논리곱 연산 단계에 의한 연산 결과에 대해 배타적 논리합 연산을 수행하는 제1 배타적 논리합 연산 단계를 더 포함한다.
본 발명의 일 실시예에 따르면, 상기 제1 배타적 논리합 연산 단계는 상기 제1 논리곱 연산 단계 및 상기 제2 논리곱 연산 단계에 의한 연산 수행 후, 상기 XOR 연산 단계에 의한 지연시간(1TX)에 대응하는 시간 동안 상기 배타적 논리합 연산을 수행하는 단계이다.
본 발명의 일 실시예에 따르면, 상기 곱셈 및 모듈로 감산 단계는 상기 제1 배타적 논리합 연산 단계 및 상기 제3 논리곱 연산 단계의 결과값을 재사용되는 결과값과 재사용되지 않는 결과값으로 분류하여 배타적 논리합 연산을 수행함으로써 상기 S1, S2 및 S3에 대해 각각 모듈로 감산을 수행한 상기 결과값을 생성하는 제2 배타적 논리합 연산 단계를 더 포함한다.
본 발명의 일 실시예에 따르면, 상기 제2 배타적 논리합 연산 단계는 XOR 트리(tree)를 구성하여 상기 배타적 논리합 연산을 수행하는 단계이다.
본 발명의 일 실시예에 따르면, 상기 제2 배타적 논리합 연산 단계는 상기 재사용되는 결과값에 대해 배타적 논리합을 수행하는 두 개의 XOR 트리 및 상기 재사용되지 않는 결과값에 대해 배타적 논리합을 수행하는 한 개의 XOR 트리를 구성하여 상기 배타적 논리합 연산을 수행하는 단계이다.
상기와 같은 세 번째 기술적 과제를 해결하기 위하여 본 발명은, 상기 다항식 기저 기반의 유한체 병렬 곱셈 방법을 수행하도록 구현한 마이크로프로세서를 제공한다.
본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를 이용한 마이크로프로세서는, 공간 복잡도를 감소시키면서도 시간 복잡도의 증가량을 최소화하여 스마트카드와 같은 보안 토큰, 모바일 폰 등 회로의 집적화와 낮은 공간 복잡도가 요구되는 환경에 효과적으로 적용될 수 있다는 이점을 제공한다.
본 발명에 관한 구체적인 내용의 설명에 앞서 이해의 편의를 위해 유한체 GF(2n)에서의 곱셈 방법에 대하여 설명하기로 한다.
GF (2 n ) 유한체 곱셈
n차 기약다항식 f(x)에 의해 생성된 유한체 GF(2n)에서 x(x∈GF(2n))를 f(x)의 근이라 하면 {1,x,x2,…, xn -1}는 GF(2n)의 다항식 기저가 된다. 즉, 유한체 GF(2n)의 원소 A는 A=a0+a1x+a2x2+…+an -1xn -1, ai∈GF(2)와 같이 유일하게 표현된다. 상기 A의 계수 벡터를 a=[a0,a1,…,an -1] T 와 같이 표현하면 수학식 1과 같이 표현될 수 있다.
Figure 112008061236224-pat00005
, (T는 전치(Transpose)를 의미한다).
유한체 GF(2n)의 원소 A와 B의 다항식 곱셈을 하면 다음과 같이 2n-2차의 다항식 S로 나타나며 상기 S는 수학식 2와 같이 표현될 수 있다.
Figure 112008061236224-pat00006
, si∈GF(2n).
그러면 A와 B의 곱 C는 수학식 3과 같이 모듈로 감산 연산으로 얻을 수 있다.
Figure 112008061236224-pat00007
.
계수벡터 v =[v 0,v 1,…,v n -1] 및 w =[w 0,w 1,…,w n -1]와 (n×m) 행렬 M 과 관련하여 본 명세서에서 사용하는 기호를 정의하면 다음과 같다.
( v →i) : 벡터 v 를 오른쪽으로 i만큼 이동하고 빈 위치에 0을 채움. 예컨대, ( v →i)=[0,0,0,v 1,…,v n -4]와 같이 표현함
( v ←j) : 벡터 v 를 왼쪽으로 j만큼 이동하고 빈 위치에 0을 채움.
M i : 행렬 M 의 i행.
M i …j : 행렬 M 의 i행부터 j행.
v_s : 벡터 v 의 모든 원소의 합. 즉,
Figure 112008061236224-pat00008
.
v ( j): v 의 j번째 원소.
v w : [v 0×w 0,v 1×w 1,…,v n -1×w n -1], ×는 GF(2)의 곱셈.
( M v ): M 의 각 행에 v 를 ∧연산한 행렬.
( M v )_ s :
Figure 112008061236224-pat00009
.
Polynomial Basis Mastrovito 곱셈 방법
다항식 곱셈 단계와 모듈로 감산 연산 단계를 통합한 Mastrovito 곱셈 방법에 대하여 살펴본다. 우선 유한체 GF(2n)의 원소 A와 B의 다항식 곱셈 결과 값 S의 계수벡터 [s0,s1,…,s2n -2] T 를 나타내는 행렬 M을 구성한다.
도 1에는 상기 S의 계수벡터 s의 원소가 si=Mi·b가 되도록 구성된 행렬 M이 도시되어 있다. 상기 b는 상기 B의 계수벡터이며 b=[b0,b1,…,bn -1]T이다.
다음으로, 상기 다항식 A와 B의 다항식 곱 S를 f(x)=xn+xk+1로 모듈로 감산한 값 C는 n≤i≤2n-2에 대하여 xn=xk+1modf(x) 이므로 ximodf(x)는 수학식 4와 같이 두 가지 경우로 얻을 수 있다.
Figure 112008061236224-pat00010
즉, xi(n≤i≤2n-2)항들의 계수들이 모듈로 감산에 의해 상기 수학식 4의 두 가지 경우로 수학식 5과 같이 해당 n-1차 이하 항의 계수에 더해진다.
Figure 112008061236224-pat00011
C의 계수벡터 cc=[c0,c1,…,cn -2,cn -1] T 라고 할 때, 곱셈 및 모듈로 연산의 두 단계를 하나의 행렬 c=Z·b로 통합할 수 있다. 이때, 상기 Z를 곱셈행렬이라 한다. 상기 곱셈행렬 Z는 상기 행렬 M을 이용하여 수학식 6과 같이 구할 수 있다.
Figure 112008061236224-pat00012
상기 행렬 M의 각 행이 상기 수학식 6의 연산을 수행하고 나면 n의 행 이하의 행은 모두 0이 되므로 (n×n)행렬인 곱셈행렬 Z가 생성된다.
Shfited Polynomial Basis Mastrovito 곱셈 방법
기존 방법과 비교할 때, SPB를 Mastrovito 곱셈 방법에 적용할 경우 곱셈 행렬 Z를 생성함에 있어서 최단 지연 경로(Critical Path Delay)를 줄여서 1TX의 시간 지연을 줄일 수 있다. 또한, S.O.Lee 외 다수가 제안한 방법(S.O.Lee, S.W.Jung, C.H.Kim, J.Yoon, J.Koh, and D. Kim, “"Design of bit parallel multiplier with lower time complexity,”" in Proc. ICICS , pp.127-139, 2004. 참조)으로 기약 다항식의 중간 항 차수 k에 따라 시간 복잡도를 더욱 줄일 수 있다. 감산 연산시 C의 계수벡터를 구할 때 XOR 연산으로 인한 시간을 최소화할 수 있어 기존 방법들 중 PB Mastrovito 곱셈 방법과 공간 복잡도가 같을 때 가장 낮은 시간 복잡도를 갖는다.
이하, 본 발명의 기술적 과제의 해결 방안을 명확화하기 위해 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다. 다만, 본 발명을 설명함에 있어서 관련된 공지기술 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불명료하게 할 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자 등의 의도 또는 관례 등에 따라 달라질 수 있을 것이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 2에는 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치의 일례가 블록도로 도시되어 있다.
도 2에 도시된 바와 같이, 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치는 곱셈 및 모듈로 감산부(200) 및 AB 곱셈값 생성부(260)를 포함한다.
상기 곱셈 및 모듈로 감산부(200)는, 삼항 기약다항식(f(x)=xn+xk+1, 1≤k<n/2)을 이용하여 유한체 GF(2n) 상의 두 원소 A 및 B의 곱셈을 수행하는 다항식 기저 기반의 이진체 병렬 곱셈 장치에 있어서, 상기 두 원소 A 및 B를 상기 두 원소 A 및 B의 항 중에서 각각 k 미만 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aL(x) 및 bL(x)와, k 이상 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aH(x)xn-k 및 bH(x)xn-k으로 분할하여 상기 두 원소 A 및 B를 곱셈한 결과인 S가 S=S1+S2+S3 (S1=aL(x)bL(x)+aL(x)bL(x)xn -k, S2=aH(x)bH(x)xn -k+aH(x)bH(x)x2n-2k, S3=(aL(x)+aH(x))(bL(x)+bH(x))xn -k)일 때 상기 S1, S2 및 S3에 대해 각각 모듈로 감산을 수행한 결과값을 생성한다. 상기 곱셈 및 모듈로 감산부(200)는, 상기 다항식 aL(x) 및 bL(x)에 포함되는 항으로서 상기 A 및 B에 포함되지 않는 상기 항의 계수를 0으로 설정한다.
상기 AB 곱셈값 생성부(260)는, 상기 곱셈 및 모듈로 감산부의 결과값에 대해 배타적 논리합 연산을 수행하여 상기 S의 모듈로 감산 결과값을 생성한다.
더욱 상세하게 설명하면, 본 발명은 다항식 곱셈과 모듈로 감산 연산의 단계로 나뉘어져 있는 과정을 통합하기 위해 앞에서 설명한 Mastrovito 곱셈 방식과 유사하게 곱셈행렬을 이용하여 시간 지연을 줄인다. 본 발명은 모듈로 감산 연산을 위해 중간항의 차수가 최고차 항의 차수의 1/2보다 작은 삼항 기약다항식을 이용한다. 즉, 삼항 기약다항식이 f(x)=xn+xk+1라 할 때, 1≤k<n/2인 f(x)를 이용한다. k=n/2인 경우에는 기존의 KOA방법과 동일해지고, k>n/2인 경우에는 reciprocal 성질에 의하여 f(x)=xn+xn -k+1인 기약다항식이 항상 존재하게 되는바 효율성을 고려한 것이다.
우선, 본 발명을 설명하기 위한 기호를 정의한다.
Figure 112008061236224-pat00013
Figure 112008061236224-pat00014
Figure 112008061236224-pat00015
Figure 112008061236224-pat00016
Figure 112008061236224-pat00017
Figure 112008061236224-pat00018
Figure 112008061236224-pat00019
Figure 112008061236224-pat00020
Figure 112008061236224-pat00021
분할 및 곱셈 방법
유한체 GF(2n)의 원소 A를 수학식 7과 같이 n-k 개의 항을 지니는 aL(x)와 aH(x)xn-k으로 분할하되 aL(x)에 포함되나 원소 A에 존재하지 않는 항들에 대해서는 계수를 0으로 하여 분할한다. 주목할 점은, 아래에서 설명하겠지만 바로 본 발명에 상기의 분할 과정에 의해 모듈로 감산 연산으로 상쇄되는 원소가 크게 증가하여 실제 연산해야할 양이 감소된다는 것이다.
Figure 112008061236224-pat00022
이때, 상기 k는 k<n/2이므로 기존 KOA와 달리 항상 k에 의존하는 비 균등한 분할이 되어 시간-공간 복잡도의 트레이드오프(trade-off)에 의해 발생하는 시간 지연의 증가를 삼항 기약다항식의 특징을 이용하여 최소화한다.
유한체 GF(2n)의 원소 A 및 B의 다항식 곱셈 결과 S는 수학식 8과 같이 표현될 수 있다.
Figure 112008061236224-pat00023
따라서, S1, S2, 및 S3는 수학식 9와 같이 정의한다.
Figure 112008061236224-pat00024
상기 S1, S2, 및 S3의 계수 s1, s2, 및 s3를 구하기 위한 행렬을 각각 M1, M2 및 M3라고 하면 상기 s1, s2, 및 s3는 수학식 10과 같이 나타낼 수 있다.
Figure 112008061236224-pat00025
M1은 (n+k-1)×k 행렬, M2는 (3n-3k-1)×(n-k) 행렬, 그리고 M3는 (2n-2k-1)×(n-k)행렬이다.
도 3에는 본 발명에서 사용하는 곱셈행렬을 생성하기 위한 상기 행렬 M1, M2 및 M3가 도시되어 있다.
이하, 상기 M1, M2 및 M3를 이용하여 곱셈행렬 Z1, Z2, 및 Z3를 구하는 과정과 그 과정 중에 GF(2)에서 상쇄되어 연산할 필요가 없는 부분을 제거하는 과정을 설명한다. 상기 과정을 통해 실제 계산해야할 계수들이 크게 감소함을 알 수 있다. 우선, 위에서 구한 행렬 M1, M2 및 M3를 분할 방법에 따른 영역으로 나눈다. M1은 수학식 11과 같이 M1L와 M1H로 나누어지는데 이는 상기 S1의 두 항에 따라 나눈 것이다.
Figure 112008061236224-pat00026
마찬가지로 M2도 수학식 12와 같이 나눈다.
Figure 112008061236224-pat00027
M1H 및 M2H는 각각 M1 및 M2의 n-k행부터 시작된다. 이때, M2i=M3i (0≤i≤n-2k-2)이므로 다항식 곱셈 S=S1+S2+S3=X1·(M1·b L )+X2·(M2·b H )+X3·(M3·b S )를 구하는 과정에서 GF(2)의 연산 특성에 의해 상쇄되는 부분이다. 따라서, 이 부분은 불필요한 연산으로서 제거하는 것이 가능하고 편의를 위해 상기 S의 계수벡터의 원소 s i 가 수학식 13과 같이 표현될 수 있도록 행렬 M2, M3를 위쪽 방향으로 n-3k만큼 이동하고 빈자리는 제거한다.
Figure 112008061236224-pat00028
그러면, M2의 경우 수학식 14와 같다.
Figure 112008061236224-pat00029
결과적으로, M2, M3는 수학식 15와 같이 나타낼 수 있다.
Figure 112008061236224-pat00030
상기 행렬 M1, M2, 및 M3를 이용하여 곱셈행렬 Z1, Z2 및 Z3를 구하기 위하여, 사용하는 삼항 기약다항식에 따라 각 행렬의 n행 이상의 행들을 각 행렬의 n-1행 이하의 해당 행에 더해주고 n행 이상의 행들을 제거함으로써 얻을 수 있다. 그러면 각 행렬은 모두 n개의 행을 지니는 곱셈행렬이 된다. 즉, Z1의 경우 수학식 16과 같이 나타낼 수 있다.
Figure 112008061236224-pat00031
그런데, 상기 수학식 16에서 M1i +(n-k)=M1L i=M1i이므로 M1i+M1i +(n-k) (k≤i≤2k-2)는 GF(2)에서 연산할 필요가 없으므로 Z1i=[0,…,0] (k≤i≤n-k-1)이 된다. 결과적으로 Z1은 수학식 17과 같이 M1L으로만 이루어진다.
Figure 112008061236224-pat00032
또한, M2에서는 M2n …2n-2행이 감산되어야 하는데 여기에서 M2n …2n-2는 M2L n …n+k-2와 M2H k …n+k-2로 이루어져 있고 먼저 M2H k …n+k-2를 감산하기 위해서 M2L i+M2H i (k≤i≤n+k-2)를 계산하게 되는데 이때 M2L i=M2H i (k≤i≤n+k-2)이므로 이 부분 역시 GF(2)에서 연산할 필요가 없으므로 제거할 수 있다. 이 경우, M2L n …n+k-2도 함께 상쇄되므로 나머지 M2i+M2H k +i (0≤i≤n-2)의 감산연산이 진행되면 수학식 18과 같이 Z2에서 M2L은 모두 제거되고 M2H만 남게 된다.
Figure 112008061236224-pat00033
마지막으로 Z3를 생성하기 위해 M3n…n+k-2가 감산 되어야 하고, 그 결과 Z3는 수학식 19와 같이 나타낼 수 있다.
Figure 112008061236224-pat00034
도 4에는 본 발명에 사용되는 곱셈행렬 Z1, Z2 및 Z3가 도시되어 있다.
도 5에는 삼항 기약다항식이 f(x)=x5+x2+1이고, A(x)=a0+a1x+a2x2+a3x3+a4x4, B(x)=b0+b1x+b2x2+b3x3+b4x4일 때, 곱셈행렬 Z1, Z2 및 Z3 일례가 도시되어 있다.
상술한 바와 같이 Z3는 불필요한 원소 a2와 M1H, M2L을 제외하고 도 5와 같이 구할 수 있다.
일반적인 곱셈기는 곱셈행렬 Z를 구한 후 Z·b를 수행하여 결과벡터를 구한다. 본 발명은 곱셈행렬 Z의 원소 Zi (j)
Figure 112008061236224-pat00035
또는
Figure 112008061236224-pat00036
를 곱한 후 공간 복잡도를 줄이기 위하여 세 개의 XOR 트리를 구성하여 c를 구한다. 이 세 개의 XOR 트리를 구성 하기 위해 하기의 정리1에 의하여 c=(Z1·b L )+(Z2·b H)+(Z3·b S ) 대신 c=(Z1∧b L )_s+(Z2∧b H )_s+(Z3∧b S )_s를 계산하기로 한다.
정리1 . 행렬 Z가 n×m행렬 일 때 C의 계수벡터 c는 수학식 20과 같다.
c=b=(Z∧b)_s.
증명
c=Z·b이면,
Figure 112008061236224-pat00037
따라서, c=(Z∧b)_s 이다.
c=(Z1∧b L )_s+(Z2∧b H )_s+(Z3∧b S )_s를 구하기 위해 상기 곱셈 및 모듈로 감산부(200)는, 상기 S1의 모듈로 감산 결과값을 생성하는데 사용되는 제1 곱셈행렬의 원소와 대응하는 상기 원소 B의 계수벡터의 곱셈을 수행하는 제1 논리곱 연산부(210), 상기 S2의 모듈로 감산 결과값을 생성하는데 사용되는 제2 곱셈행렬의 원소와 대응하는 상기 원소 B의 계수벡터의 곱셈을 수행하는 제2 논리곱 연산부(220), 및 상기 S3의 모듈로 감산 결과값을 생성하는데 사용되는 제3 곱셈행렬의 원소와 대응하는 상기 원소 B의 계수벡터의 곱셈을 수행하는 제3 논리곱 연산 부(230)를 포함한다. 즉, Z1∧b L 를 계산하는 상기 제1 논리곱 연산부(210), Z2∧b H 를 계산하는 상기 제2 논리곱 연산부(220), Z3∧b S 을 계산하는 상기 제3 논리곱 연산부(230)을 포함한다.
제3 논리곱 연산부(230)는, 상기 제3 곱셈행렬 및 상기 제3 곱셈행렬에 대응하는 상기 원소 B의 계수를 생성하는 XOR 게이트부(232), 및 상기 제3 곱셈행렬 및 상기 제3 곱셈행렬에 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 AND 게이트부(234)를 포함한다. 즉, 상기 Z3와 b S 를 생성하기 위해 사전계산을 하는 상기 XOR 게이트부(232)와 사전계산이 끝난 후 Z3∧b S 을 계산하는 상기 AND 게이트부(234)를 포함한다.
또한, 상기 곱셈 및 모듈로 감산부(200)는, 상기 제3 논리곱 연산부(230)에서 결과값이 생성되는 동안 상기 제1 논리곱 연산부(210) 및 상기 제2 논리곱 연산부(220)에 의한 연산 결과에 대해 배타적 논리합 연산을 수행하는 제1 배타적 논리합 연산부(240)를 더 포함한다. 즉, 상기 XOR 게이트부(232) 및 상기 AND 게이트부(234)가 연산을 수행하는 동안 상기 제1 논리곱 연산부(210) 및 상기 제2 논리곱 연산부(220)의 연산 결과값인 원소를 더하는 상기 제1 배타적 논리합 연산부(240)를 더 포함한다. 상기 제1 배타적 논리합 연산부(240)는 상기 제1 논리곱 연산부(210) 및 상기 제2 논리곱 연산부(220)에 의한 연산 수행 후, 상기 XOR 게이트부(232)에 의한 지연시간(1TX)에 대응하는 시간 동안 상기 배타적 논리합 연산을 수 행하는 것이다.
또한, 상기 곱셈 및 모듈로 감산부(200)는, 상기 제1 배타적 논리합 연산부(240) 및 상기 제3 논리곱 연산부(230)의 결과값을 재사용되는 결과값과 재사용되지 않는 결과값으로 분류하여 배타적 논리합 연산을 수행함으로써 상기 S1, S2 및 S3에 대해 각각 모듈로 감산을 수행한 상기 결과값을 생성하는 제2 배타적 논리합 연산부(250)를 더 포함한다. 상기 제2 배타적 논리합 연산부(250)는 중복 데이터 활용을 위해 세 개의 XOR 트리(tree)를 구성하여 상기 배타적 논리합 연산을 수행한다. 즉, 상기 제2 배타적 논리합 연산부(250)는 상기 재사용되는 결과값에 대해 배타적 논리합을 수행하는 두 개의 XOR 트리 및 상기 재사용되지 않는 결과값에 대해 배타적 논리합을 수행하는 한 개의 XOR 트리를 구성하여 상기 배타적 논리합 연산을 수행한다. 세 개의 트리를 형성하여 계산하는 제2 배타적 논리합 연산부(250)를 더 포함한다.
상기 AB 곱셈값 생성부(260)는 상기 제2 배타적 논리합 연산부(250)의 결과를 더하여 C를 구한다.
이하, 상기 본 발명의 구성요소들의 동작을 더욱 상세하게 설명한다.
상기 제1 논리곱 연산부(210)는, 수학식 21과 같이 Z1∧b L 를 계산한다.
Figure 112008061236224-pat00038
상기 수학식 21에서 (M1L i+M1L k +i)∧b L 은 (M1L ib L )+(M1L k +ib L )로 표현할 수 있으며, 여기서 M1L ib L (0≤i≤k-1)과 M1L i -(n-k)b L (n-k≤i≤n-1)이 동일하다.
상기 제2 논리곱 연산부(220)는, 수학식 22와 같이 Z2∧b H 를 계산한다.
Figure 112008061236224-pat00039
상기 수학식 22에서 Z20b H 를 살펴보면,
Figure 112008061236224-pat00040
이며, 이는
Figure 112008061236224-pat00041
와 처음과 끝 원소를 제외하고 동일함을 알 수 있다. 따라서 공간 복잡도를 최소화하기 위해 중복되는 일부 원소를 재사용할 수 있다. M2H k +ib H 및 M3k +ib S 의 동일한 부분은 Z20 …n-2k-2 및 Z3k…n-k-2에서 나타난다. 이들을 각각 (M2H k +ib H )' 및 (M3k +ib S )' (0≤i≤n-2k-2)라고 한다.
상기 제3 논리곱 연산부(230)의 상기 XOR 게이트부(232)는, 상기 Z3 및 상기 b S 의 원소들을 곱하기 전에 사전계산을 하는 과정으로써,
Figure 112008061236224-pat00042
(i=0,1,…,k-1) 및
Figure 112008061236224-pat00043
(i=0,1,…,k-1)를 생성하기 위해 XOR 연산을 수행하게 된다. 상기 제3 논리곱 연산부(230)의 상기 AND 게이트부(234)는 상기 XOR 게이트부(232)에서 Z3 및 b S 가 생성되면, 하기 수학식 23과 같이 Z3∧b S 를 계산한다.
Figure 112008061236224-pat00044
상기 수학식 23에서 (M3i+M3i +(n-k))∧b S 는 (M3ib S )+(M3i +(n-k)b S )로 표현할 수 있으며, 여기서 M3n +ib S (0≤i≤k-2)와 M3i +(n-k)b S (k≤i≤2k-2)가 동일하다.
상기 제1 배타적 논리합 연산부(240)는, 상기 제3 논리곱 연산부(230)의 상기 XOR 게이트부(232) 및 상기 AND 게이트부(234)가 사전계산 및 곱셈연산을 수행한 결과와 상기 제1 논리곱 연산부(210) 및 상기 제2 논리곱 연산부(220)의 결과를 더해서 c i 를 구하기 위한 XOR연산을 수행한다. 그러나, 상기 제3 논리곱 연산부(230)의 결과가 생성되기까지는 1TA+1TX의 시간이 필요하므로 상기 제1 논리곱 연산부(210) 및 상기 제2 논리곱 연산부(220)가 곱셈연산을 하고 난 후 1TX의 시간이 지연될 수 있다. 따라서 이러한 시간지연을 활용하기 위해서 상기 제1 논리곱 연산 부(210) 및 상기 제2 논리곱 연산부(220)의 결과가 상기 제3 논리곱 연산부(230)의 결과와 통합되어 새로 분류되기 전에 한 번의 XOR연산을 수행할 수 있다. 상기 제1 배타적 논리합 연산부(240)에서는 상기 제1 논리곱 연산부(210) 및 상기 제2 논리곱 연산부(220)의 결과 중 재사용될 부분과 아닌 부분으로 분류하여 한 번의 XOR연산을 수행한다. 상기 제1 논리곱 연산부(210)의 M1L ib L (0≤i≤k-1)의 원소들이 재사용되므로 상기 제1 논리곱 연산부(210)의 결과를 M1L ib L (0≤i≤k-1)과 M1L k +ib L (0≤i≤k-2)로 분류하고 상기 제2 논리곱 연산부(220)에서는 (M2H k +ib H )' (0≤i≤n-2k-2)를 재사용할 수 있으므로 (M2H k +ib H )' (0≤i≤n-2k-2)와 나머지로 분류하여 한 번의 XOR 연산을 수행한다.
상기 제2 배타적 논리합 연산부(250)는, 1TA+1TX의 시간 후에 상기 제3 논리곱 연산부(230) 및 상기 제1 배타적 논리합 연산부(240)의 결과가 생성되면 이들을 통합하여 재사용할 부분과 아닌 부분으로 구분하여 세 개의 XOR 트리를 생성한다. 상기 트리를 각각 T1, T2 및 T3라 하면 T1 및 T2가 재사용 가능한 원소들의 합을 생성하는 XOR 트리이고 T3는 재사용되지 않는 원소들의 합을 생성하는 XOR 트리이다. 우선 T1은 상기 제1 배타적 논리합 연산부(240)의 결과 중 M1L ib L (0≤i≤k-1)와 관련된 원소들의 합을 생성하게 되는데 결과적으로 (M1L ib L )_s (0≤i≤k-1) 를 계산한다. T2는 상기 제1 배타적 논리합 연산부(240)의 결과 중 (M2H k +ib H )' (0≤i≤n-2k-2)의 원소들과 관련된 부분과 상기 제3 논리곱 연산부(230)에서 재사용 가능한 M3n +ib S (0≤i≤k-2)의 원소들의 합을 생성하게 된다. 즉, (M2H k +ib H )'_s+(M3n+ib S )_s 를 계산한다. 마지막으로 T3는 원소의 합이 재사용되지 않는 상기 제3 논리곱 연산부(230) 및 상기 제1 배타적 논리합 연산부(240)의 결과 원소들의 합을 계산한다. 예컨대 (n+1)/3≤k<n/2인 경우 상기 T3는 수학식 24와 같이 계산을 수행한다.
Figure 112008061236224-pat00045
Figure 112008061236224-pat00046
상기 AB 곱셈값 생성부(260)는, T1, T2 및 T3의 결과를 더하여 c i 를 구한다.
도 6에는 삼항 기약다항식이 f(x)=x5+x2+1일 때 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치의 구조가 도시되어 있다.
도 7에는 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 방법의 일례 가 흐름도로 도시되어 있다.
도 7에 도시된 바와 같이, 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 방법은, 삼항 기약다항식(f(x)=xn+xk+1, 1≤k<n/2)을 이용하여 유한체 GF(2n) 상의 두 원소 A 및 B의 곱셈을 수행하는 다항식 기저 기반의 이진체 병렬 곱셈 방법에 있어서, 상기 두 원소 A 및 B를 상기 두 원소 A 및 B의 항 중에서 각각 k 미만 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aL(x) 및 bL(x)와, k 이상 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aH(x)xn-k 및 bH(x)xn-k으로 분할하여 상기 두 원소 A 및 B를 곱셈한 결과인 S가 S=S1+S2+S3 (S1=aL(x)bL(x)+aL(x)bL(x)xn -k, S2=aH(x)bH(x)xn -k+aH(x)bH(x)x2n-2k, S3=(aL(x)+aH(x))(bL(x)+bH(x))xn-k)일 때, S1, S2 및 S3에 대해 각각 모듈로 감산을 수행한 결과값을 생성하는 곱셈 및 모듈로 감산 단계(S700), 및 상기 곱셈 및 모듈로 감산 단계의 결과값에 대해 배타적 논리합 연산을 수행하여 상기 S의 모듈로 감산 결과값을 생성하는 AB 곱셈값 생성 단계(S710)를 포함한다. 상기 곱셈 및 모듈로 감산 단계에서는 상기 다항식 aL(x) 및 bL(x)에 포함되는 항으로서 상기 A 및 B에 포함되지 않는 상기 항의 계수를 0으로 설정한다.
본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 방법의 세부적인 단계는 상기 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치의 각 구성요소 들의 동작과 대응되는 설명이 가능하다.
일 실시예에 있어서, 본 발명에 따른 다항식 기저 기반의 유한체 병렬 곱셈 장치를 마이크로프로세서상에 시스템 온 칩(system on chip) 형태로 구현하여 상기 마이크로프로세서로 하여금 상기와 같은 다항식 기저 기반의 유한체 병렬 곱셈 방법을 수행하도록 할 수 있다. 본 발명을 마이크로프로세서로 구현하면 각종 시스템의 크기를 줄일 수 있고, 조립 과정을 단순화시킬 수 있으며, 제조 비용을 절감할 수 있는 등의 이점이 있다.
본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법은 또한 컴퓨터로 판독할 수 있는 기록매체에 컴퓨터가 읽어들일 수 있는 프로그램 코드로서 구현하는 것이 가능하다. 본 발명이 소프트웨어를 통해 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.
컴퓨터가 판독할 수 있는 기록매체에는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 판독할 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 판독할 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽어들일 수 있는 코드가 저장되고 실행될 수 있다.
본 발명의 공간 복잡도 및 시간 복잡도
이하, 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치의 공간복잡도와 시간 복잡도에 대하여 살펴본다. 공간 복잡도를 최소화하기 위해 XOR 트리를 세 개로 분할한 것이므로 이것은 Z1, Z2 및 Z3에 중복되어 나타나는 원소들을 한 곳에만 존재하도록 하여 곱셈을 하고 T1 및 T2의 결과를 재사용하여 c=(Z1∧b L )_s+(Z2∧b H )_s+(Z3∧b S )_s를 계산하는데 드는 게이트 비용을 측정하는 것과 같다. 상기 제1 논리곱 연산부(210)에서는 Z1∧b L , 상기 제2 논리곱 연산부(220)에서는 Z2∧b H 를 계산하는데 재사용되는 부분을 제외하면 각각 M1Lb L 과 M2Hb H 만을 계산하면 되므로 k비트 곱셈과 n-k비트 곱셈이 필요하다. 상기 제3 논리곱 연산부(230)의 상기 AND 게이트부(234)에서는 Z3∧b S 의 계산을 위해 M3∧b S 을 계산해야 하므로 n-k비트 곱셈이 필요하나 이들 중에서 M2L과 같아서 불필요한 연산으로 제거된 부분과 (M2H k +ib H )'으로 대신할 수 있는 (M3k +ib S )' (0≤i≤n-2k-2)를 제외하면 (n-k)2-(n-2k)2=2nk-3k2의 AND 연산만이 필요하다.
그리고 상기 제3 논리곱 연산부(230)의 상기 XOR 게이트부(232)에서 수행하는 사전계산의 경우 k비트 덧셈이 두 번 필요하고, (Z1∧b L )_s를 계산하기 위해서는 상기 수학식 21로부터 (k-1)2+(k-1)의 덧셈 연산이 필요하고, (Z2∧b H )_s를 계산하기 위해 상기 수학식 22로부터 (n-k-1)2+(n-2k)의 덧셈이 필요하다. (Z3∧b S )_s를 계산하기 위해서는 상기 수학식 23으로부터 (n-k-1)2-(n-2k-1)2+k-1의 덧셈 연산이 필요하다. 여기서 (n-2k-1)2는 불필요한 부분과 재사용되는 부분에 필요한 덧셈 연산수이다. 이제 최종결과인 c i 를 구하는데 필요한 덧셈 연산을 살펴보면 (Z1∧b L )_s+(Z2∧b H )_s+(Z3∧b S )_s을 계산하여 c 0 ~c k -2 를 구하는데 2(k-1), c k -1 을 구하는데 1, c k ~c n -k-1 을 구하는데 n-2k, c n -k ~c n -1 을 구하는데 2k의 덧셈이 필요하다. 그러므로 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치의 공간 복잡도는 수학식 25와 같다.
# AND = n2-k2,
# XOR = n2-1-(k-1)2,
# TOT = 2n2-2k2+2k-2.
시간 복잡도는 먼저 상기 제1 논리곱 연산부(210), 상기 제2 논리곱 연산부(220) 및 상기 제1 배타적 논리합 연산부(240)와 상기 XOR 게이트부(232) 및 상기 AND 게이트부(234)가 연산을 수행하는데 각각 한 번의 AND와 XOR 연산이 필요하므로 1TA+1TX의 시간지연이 생기고 그 이후에 필요한 시간지연은 모듈로 감산 연산에 이용하는 삼항 기약다항식 f(x)=xn+xk+1의 중간항의 차수 k에 따라 달라진다. 본 발명에 따른 곱셈 장치가 상기 제2 배타적 논리합 연산부(250)에서 세 개의 XOR 트리를 구성하여 덧셈을 하고 있으므로 세 개의 트리가 계산을 끝내는데 소요되는 시간지연이 본 발명에 따른 곱셈 장치의 시간 복잡도가 된다. 여기서 1TA+1TX이후에 상기 제3 논리곱 연산부(230)의 결과와 상기 제1 배타적 논리합 연산부(240)의 결과를 분류하여 생성한 트리가 결과를 계산하는데 걸리는 시간은 1TA 이후에 상기 제1 논리곱 연산부(210) 및 상기 제2 논리곱 연산부(220)의 원소와 상기 제3 논리곱 연산부(230)의 원소의 두 배를 분류하여 T1, T2 및 T3 트리로 생성하여 계산하는 시간과 같다. 또한 마지막으로 T1, T2 및 T3의 결과를 더할 때 T3의 결과가 먼저 생성되었어도 재사용을 위해 생성된 트리 T1 및 T2의 결과에 T3의 결과가 더해져서 영향을 미치게 해서는 안된다. T1 및 T2의 결과는 재사용을 위해 보존되어야 하기 때문이다. 따라서 T1 및 T2의 결과가 생성되면 T3의 결과와 더해야 한다. 그러므로 1TA 이후에 T1, T2 및 T3의 원소의 수가 각각 t1, t2 및 t3라 하면 시간 복잡도는 수학식 26과 같다.
Figure 112008061236224-pat00047
곱셈행렬의 형태는 사용되는 삼항 기약다항식 f(x)에 따라 다음과 같이 여섯 가지 경우로 나눌 수 있다.
1. k=1,
2. 1<k≤(n-1)/4,
3. (n-1)/4<k≤(n-2)/3,
4. k=(n-1)/3,
5. k=n/3,
6. (n+1)/3≤k<n/2.
첫 번째 k=1의 경우를 살펴보자. k가 1일 때 각 c i 를 구하기 위해 세 개의 XOR 트리가 더해야할 원소의 개수는 수학식 27과 같다.
Figure 112008061236224-pat00048
상기 수학식 27에서 각 계수를 구하는데 소요되는 시간은 수학식 28과 같다.
Figure 112008061236224-pat00049
Figure 112008061236224-pat00050
상기 수학식 28에서 가장 큰 값이 k=1일 때의 시간 복잡도가 된다. 하기의 정리 2에 의해서, n=2m+u (1≤u≤2m), k=1일 때
Figure 112008061236224-pat00051
또는
Figure 112008061236224-pat00052
에서
Figure 112008061236224-pat00053
가 최대값을 가지며 이는 C의 다른 계수를 구하기 위한 시간보다 크므로, 이때 시간 복잡도는,
Figure 112008061236224-pat00054
, 또는
Figure 112008061236224-pat00055
임을 알 수 있다.
정리 2. n=2 m +u (1≤u≤2 m )이고 k=1일 때
Figure 112008061236224-pat00056
또는
Figure 112008061236224-pat00057
을 구할 때 최대 시간지연이 발생한다.
증명
u-3>0인 경우에는, 2n-6-2t=2m+1+2u-6-2t이므로 2n-6-2t>0이면
Figure 112008061236224-pat00058
이다.
Figure 112008061236224-pat00059
는 2n-6-2t>0를 만족하는 t가 최대일 때 최대값을 가지므로, 이 때 t=u-4가 된다. 따라서,
Figure 112008061236224-pat00060
를 계산할 때 최대값을 가진다.
u-3≤0인 경우에는, 2u-6-2t는 짝수이므로 t가 증가하여 2u-6-2t가 -2m+2까 지 감소하여도
Figure 112008061236224-pat00061
로 일정하므로 t=u-4+2m-1일 때, 즉
Figure 112008061236224-pat00062
를 구할 때
Figure 112008061236224-pat00063
가 최대값을 가진다.
나머지 경우도 상기 정리 2와 유사하게 구할 수 있다.
도 8에는 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치의 시간 및 공간 복잡도를 기존 곱셈기와 비교한 결과가 표로서 도시되어 있다.
도 8에 도시된 바와 같이, 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법은 공간 복잡도가 곱셈연산에 필요한 AND 게이트 및 XOR 게이트 수의 합인 기존 방법들의 공간 복잡도 2n2-1에 비해 2k2-2k+1만큼이나 감소한다. 특히, k가 n/2에 가까울수록 공간 복잡도 감소의 폭이 더욱 커짐을 알 수 있다. 한편, 공간 복잡도가 2n2-1일 때 가장 낮은 시간 복잡도를 갖는 기존의 SPB Mastrovito 곱셈 방법에 비해 시간 복잡도가 동일하거나 1TX 정도 증가 되지만 이는 공간 복잡도와의 트레이드오프 관계를 고려할 때 최소 범위에 그치는 것이다.
도 9에는 n이 100에서 126 사이일 때 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치의 시간 및 공간 복잡도를 기존 곱셈기와 비교한 결과가 표로서 도시되어 있다.
도 7에서, 비율(%) ①은 (본 발명의 XOR 시간복잡도/기존 XOR 시간복잡도)×100이며, 비율(%) ②는 (본 발명의 공간복잡도/기존 공간복잡도)×100이다. 모듈로 감산 연산에 사용되는 삼항 기약다항식의 최고차 항의 차수 n의 범위가 100≤n<1000이고 중간항의 차수 k가 k<n/2인 1323개의 삼항 기약다항식 중 40% 정도인 533개에서 시간 복잡도가 기존의 결과와 같았고 나머지 790개에서는 시간 복잡도가 10%~12.5% 정도 증가하는데 그치며, n이 증가할수록 시간 복잡도의 증가 비율이 감소함을 볼 수 있다. 특히 주목할 점으로서 공간 복잡도의 경우 상기 조건을 만족하는 모든 기약다항식에서 감소되며 최대 25%까지 감소함을 볼 수 있다.
상술한 바와 같이, 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법은 암호 연산이나 유한체 연산을 수행하는 모든 기술분야 제품에 적용 가능하다. 특히, 최근 급격히 발전하고 있는 스마트카드와 같은 보안 토큰, 모바일 폰 등 회로의 집적화와 낮은 공간 복잡도가 요구되는 환경에 효과적으로 적용될 수 있다는 이점을 제공한다.
지금까지 본 발명에 대해 실시예들을 참고하여 설명하였다. 그러나 당업자라면 본 발명의 본질적인 기술적 사상으로부터 벗어나지 않는 범위에서 본 발명이 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 즉, 본 발명의 진정한 기술적 범위는 첨부된 특허청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함되는 것으로 해석되어야 할 것이다.
도 1은 다항식 곱셈 결과인 S의 계수벡터 s의 원소가 si=Mi·b가 되도록 구성된 행렬 M을 나타낸 도면.
도 2는 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치의 일례를 나타낸 블록도.
도 3은 본 발명에 사용되는 곱셈행렬을 생성하기 위한 행렬 M1, M2 및 M3를 나타낸 도면.
도 4는 본 발명에 사용되는 곱셈행렬 Z1, Z2 및 Z3를 나타낸 도면.
도 5는 삼항 기약다항식이 f(x)=x5+x2+1인 경우 곱셈행렬 Z1, Z2 및 Z3을 나타낸 도면.
도 6은 삼항 기약다항식이 f(x)=x5+x2+1인 경우 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치의 구조를 나타낸 도면.
도 7은 본 발명에 따른 다항식 기저 기반의 이진체 병렬 곱셈 방법의 일례를 나타낸 흐름도.
도 8은 본 발명의 시간 및 공간 복잡도를 기존 곱셈기와 비교한 결과를 나타낸 도면.
도 9는 n이 100에서 126 사이인 경우 본 발명의 시간 및 공간 복잡도를 기존 곱셈기와 비교한 결과를 나타낸 도면.

Claims (18)

  1. 삼항 기약다항식(f(x)=xn+xk+1, 1≤k<n/2)을 이용하여 유한체 GF(2n) 상의 두 원소 A 및 B의 곱셈을 수행하는 다항식 기저 기반의 이진체 병렬 곱셈 장치에 있어서,
    상기 두 원소 A 및 B를 상기 두 원소 A 및 B의 항 중에서 각각 k 미만 차수의 항을 지니는 다항식으로서 k 개의 항을 지니는 다항식 aL(x) 및 bL(x)와, k 이상 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aH(x)xn-k 및 bH(x)xn-k으로 분할하여 상기 두 원소 A 및 B를 곱셈한 결과인 S가 수학식 1과 같이 나타날 때 수학식 1의 S1, S2 및 S3에 대해 각각 모듈로 감산을 수행한 결과값을 생성하는 곱셈 및 모듈로 감산부; 및
    상기 곱셈 및 모듈로 감산부의 결과값에 대해 복수의 XOR 게이트를 포함하는 XOR 트리를 사용하여 S1, S2 및 S3의 배타적 논리합 연산을 수행함으로써 상기 S의 모듈로 감산 결과값을 생성하여 상기 두 원소 A와 B의 모듈로 곱셈 결과값을 생성하는 AB 곱셈값 생성부를 포함하는 다항식 기저 기반의 이진체 병렬 곱셈 장치;
    <수학식 1>
    S=S1+S2+S3 이고,
    S1=aL(x)bL(x)+aL(x)bL(x)xn-k,
    S2=aH(x)bH(x)xn-k+aH(x)bH(x)x2n-2k,
    S3=(aL(x)+aH(x))(bL(x)+bH(x))xn-k.
  2. 제1항에 있어서,
    상기 곱셈 및 모듈로 감산부는,
    상기 S1의 모듈로 감산 결과값을 생성하는데 사용되는 제1 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제1 논리곱 연산부;
    상기 S2의 모듈로 감산 결과값을 생성하는데 사용되는 제2 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제2 논리곱 연산부; 및
    상기 S3의 모듈로 감산 결과값을 생성하는데 사용되는 제3 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제3 논리곱 연산부를 포함하는 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 장치.
  3. 제2항에 있어서,
    상기 제3 논리곱 연산부는,
    상기 제3 곱셈행렬 및 상기 제3 곱셈행렬을 위한 aL(x)+aH(x)와 이에 대응하는 상기 원소 B의 계수를 위한 bL(x)+bH(x)의 결과값을 생성하는 XOR 게이트부; 및
    상기 제3 곱셈행렬 및 상기 제3 곱셈행렬에 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 AND 게이트부를 포함하는 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 장치.
  4. 제3항에 있어서,
    상기 곱셈 및 모듈로 감산부는, 상기 제3 논리곱 연산부에서 결과값이 생성되는 동안 상기 제1 논리곱 연산부 및 상기 제2 논리곱 연산부에 의한 연산 결과에 대해 배타적 논리합 연산을 수행하는 제1 배타적 논리합 연산부를 더 포함하는 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 장치.
  5. 제4항에 있어서,
    상기 제1 배타적 논리합 연산부는, 상기 제1 논리곱 연산부 및 상기 제2 논리곱 연산부에 의한 연산 수행 후, 상기 XOR 게이트부에 의한 지연시간(1TX)에 대응하는 시간 동안 상기 배타적 논리합 연산을 수행하는 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 장치.
  6. 제4항에 있어서,
    상기 곱셈 및 모듈로 감산부는, 상기 제1 배타적 논리합 연산부 및 상기 제3 논리곱 연산부의 결과값을 재사용되는 결과값과 재사용되지 않는 결과값으로 분류하여 배타적 논리합 연산을 수행함으로써 상기 S1, S2 및 S3에 대한 배타적 논리합의 결과값을 생성하는 제2 배타적 논리합 연산부를 더 포함하는 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 장치.
  7. 제6항에 있어서,
    상기 제2 배타적 논리합 연산부는, 상기 제1 배타적 논리합 연산부 및 상기 제3 논리곱 연산부의 결과값을 재사용되는 결과값과 재사용되지 않는 결과값으로 분류한 후 각각에 대해 XOR 트리(tree)를 구성하여 상기 배타적 논리합 연산을 수행하는 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 장치.
  8. 제7항에 있어서,
    상기 제2 배타적 논리합 연산부는, 상기 재사용되는 결과값에 대해 배타적 논리합을 수행하는 두 개의 XOR 트리 및 상기 재사용되지 않는 결과값에 대해 배타적 논리합을 수행하는 한 개의 XOR 트리를 구성하여 상기 배타적 논리합 연산을 수행하는 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 장치.
  9. 제1항 내지 제8항 중 어느 한 항에 따른 다항식 기저 기반의 이진체 병렬 곱셈 장치를 시스템 온 칩(system on chip) 형태로 구현한 마이크로프로세서.
  10. 삼항 기약다항식(f(x)=xn+xk+1, 1≤k<n/2)을 이용하여 유한체 GF(2n) 상의 두 원소 A 및 B의 곱셈을 수행하는 다항식 기저 기반의 이진체 병렬 곱셈 방법에 있어서,
    상기 두 원소 A 및 B를 상기 두 원소 A 및 B의 항 중에서 각각 k 미만 차수의 항을 지니는 다항식으로서 k 개의 항을 지니는 다항식 aL(x) 및 bL(x)와, k 이상 차수의 항을 지니는 다항식으로서 n-k 개의 항을 지니는 다항식 aH(x)xn-k 및 bH(x)xn-k으로 분할하여 상기 두 원소 A 및 B를 곱셈한 결과인 S가 수학식 2와 같이 나타날 때 수학식 2의 S1, S2 및 S3에 대해 각각 모듈로 감산을 수행한 결과값을 생성하는 곱셈 및 모듈로 감산 단계; 및
    상기 곱셈 및 모듈로 감산 단계의 결과값에 대해 복수의 XOR 게이트를 포함하는 XOR 트리를 사용하여 S1, S2 및 S3의 배타적 논리합 연산을 수행함으로써 상기 S의 모듈로 감산 결과값을 생성하여 상기 두 원소 A와 B의 모듈로 곱셈 결과값을 생성하는 AB 곱셈값 생성 단계를 포함하는 다항식 기저 기반의 이진체 병렬 곱셈 방법;
    <수학식 2>
    S=S1+S2+S3 이고,
    S1=aL(x)bL(x)+aL(x)bL(x)xn-k,
    S2=aH(x)bH(x)xn-k+aH(x)bH(x)x2n-2k,
    S3=(aL(x)+aH(x))(bL(x)+bH(x))xn-k.
  11. 제10항에 있어서,
    상기 곱셈 및 모듈로 감산 단계는,
    상기 S1의 모듈로 감산 결과값을 생성하는데 사용되는 제1 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제1 논리곱 연산 단계;
    상기 S2의 모듈로 감산 결과값을 생성하는데 사용되는 제2 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제2 논리곱 연산 단계; 및
    상기 S3의 모듈로 감산 결과값을 생성하는데 사용되는 제3 곱셈행렬과 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 제3 논리곱 연산 단계를 포함하는 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 방법.
  12. 제11항에 있어서,
    상기 제3 논리곱 연산 단계는,
    상기 제3 곱셈행렬 및 상기 제3 곱셈행렬에 대응하는 상기 원소 B의 계수를 생성하는 XOR 연산 단계; 및
    상기 제3 곱셈행렬 및 상기 제3 곱셈행렬에 대응하는 상기 원소 B의 계수의 곱셈을 수행하는 AND 연산 단계를 포함하는 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 방법.
  13. 제12항에 있어서,
    상기 곱셈 및 모듈로 감산 단계는, 상기 제3 논리곱 연산 단계에서 결과값이 생성되는 동안 상기 제1 논리곱 연산 단계 및 상기 제2 논리곱 연산 단계에 의한 연산 결과에 대해 배타적 논리합 연산을 수행하는 제1 배타적 논리합 연산 단계를 더 포함하는 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 방법.
  14. 제13항에 있어서,
    상기 제1 배타적 논리합 연산 단계는, 상기 제1 논리곱 연산 단계 및 상기 제2 논리곱 연산 단계에 의한 연산 수행 후, 상기 XOR 연산 단계에 의한 지연시간(1TX)에 대응하는 시간 동안 상기 배타적 논리합 연산을 수행하는 단계인 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 방법.
  15. 제13항에 있어서,
    상기 곱셈 및 모듈로 감산 단계는, 상기 제1 배타적 논리합 연산 단계 및 상기 제3 논리곱 연산 단계의 결과값을 재사용되는 결과값과 재사용되지 않는 결과값으로 분류하여 배타적 논리합 연산을 수행함으로써 상기 S1, S2 및 S3에 대해 각각 모듈로 감산을 수행한 상기 결과값을 생성하는 제2 배타적 논리합 연산 단계를 더 포함하는 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 방법.
  16. 제15항에 있어서,
    상기 제2 배타적 논리합 연산 단계는,
    상기 제1 배타적 논리합 연산 단계 및 상기 제3 논리곱 연산 단계의 결과값을 재사용되는 결과값과 재사용되지 않는 결과값으로 분류한 후 각각에 대해 XOR 트리(tree)를 구성하여 상기 배타적 논리합 연산을 수행하는 단계인 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 방법.
  17. 제16항에 있어서,
    상기 제2 배타적 논리합 연산 단계는, 상기 재사용되는 결과값에 대해 배타적 논리합을 수행하는 두 개의 XOR 트리 및 상기 재사용되지 않는 결과값에 대해 배타적 논리합을 수행하는 한 개의 XOR 트리를 구성하여 상기 배타적 논리합 연산을 수행하는 단계인 것을 특징으로 하는 다항식 기저 기반의 이진체 병렬 곱셈 방법.
  18. 제10항 내지 제17항 중 어느 한 항에 따른 다항식 기저 기반의 유한체 병렬 곱셈 방법을 수행하도록 구현한 마이크로프로세서.
KR1020080084125A 2008-08-27 2008-08-27 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를이용한 마이크로프로세서 KR100954586B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080084125A KR100954586B1 (ko) 2008-08-27 2008-08-27 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를이용한 마이크로프로세서

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080084125A KR100954586B1 (ko) 2008-08-27 2008-08-27 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를이용한 마이크로프로세서

Publications (2)

Publication Number Publication Date
KR20100025403A KR20100025403A (ko) 2010-03-09
KR100954586B1 true KR100954586B1 (ko) 2010-04-26

Family

ID=42176960

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080084125A KR100954586B1 (ko) 2008-08-27 2008-08-27 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를이용한 마이크로프로세서

Country Status (1)

Country Link
KR (1) KR100954586B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101636809B1 (ko) 2014-12-31 2016-07-07 고려대학교 산학협력단 타원 곡선 암호용 이진체의 감산 방법
KR102075848B1 (ko) * 2018-11-22 2020-02-10 부산대학교 산학협력단 다항식 연산 최적화 처리 장치, 다항식 연산 최적화 처리 방법 및 기록매체

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020079144A (ko) * 2001-04-13 2002-10-19 한국전자통신연구원 다항식 기저에서 유한체 승산 장치 및 그 방법
KR20040055550A (ko) * 2002-12-20 2004-06-26 한국전자통신연구원 유한체 상의 두 원소의 곱을 구하는 직렬-병렬 곱셈기

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020079144A (ko) * 2001-04-13 2002-10-19 한국전자통신연구원 다항식 기저에서 유한체 승산 장치 및 그 방법
KR20040055550A (ko) * 2002-12-20 2004-06-26 한국전자통신연구원 유한체 상의 두 원소의 곱을 구하는 직렬-병렬 곱셈기

Also Published As

Publication number Publication date
KR20100025403A (ko) 2010-03-09

Similar Documents

Publication Publication Date Title
Okada et al. Implementation of Elliptic Curve Cryptographic Coprocessor over GF (2 m) on an FPGA
Knezevic et al. Faster interleaved modular multiplication based on Barrett and Montgomery reduction methods
Fan et al. Efficient hardware implementation of Fp-arithmetic for pairing-friendly curves
Wu Bit-parallel polynomial basis multiplier for new classes of finite fields
Chen et al. Scalable and systolic dual basis multiplier over GF (2m)
Sassaw et al. High radix implementation of Montgomery multipliers with CSA
Putranto et al. Another concrete quantum cryptanalysis of binary elliptic curves
US6763366B2 (en) Method for calculating arithmetic inverse over finite fields for use in cryptography
Dimitrov et al. Another look at inversions over binary fields
KR100954586B1 (ko) 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를이용한 마이크로프로세서
KR100950581B1 (ko) 여분 표현을 사용하는 유한체 비트―병렬 곱셈 장치 및방법
Vollala et al. Efficient modular exponential algorithms compatible with hardware implementation of public‐key cryptography
KR100954584B1 (ko) MSD first GF(3^m) 직렬 곱셈 장치, 그방법 및 이를 기록한 기록매체
KR101094354B1 (ko) 유한체의 원소간 비트-병렬 곱셈방법 및 장치
Lee et al. Low area-delay complexity digit-level parallel-in serial-out multiplier over GF (2m) based on overlap-free karatsuba algorithm
Lee et al. Subquadratic space complexity digit-serial multiplier over binary extension fields using Toom-Cook algorithm
KR100954583B1 (ko) 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법
KR100902847B1 (ko) 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체
KR20060037941A (ko) 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법
Jeon et al. Elliptic curve based hardware architecture using cellular automata
Elia et al. On the inherent space complexity of fast parallel multipliers for GF (2/sup m/)
Lee et al. Low-complexity digit-serial multiplier over $ GF (2^{m}) $ based on efficient toeplitz block toeplitz matrix–vector product decomposition
KR100954579B1 (ko) 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법
Hasan et al. Sequential multiplier with sub-linear gate complexity
KR20070050726A (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: 20130405

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140304

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee