KR20090090219A - 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법 - Google Patents

다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법 Download PDF

Info

Publication number
KR20090090219A
KR20090090219A KR1020080015541A KR20080015541A KR20090090219A KR 20090090219 A KR20090090219 A KR 20090090219A KR 1020080015541 A KR1020080015541 A KR 1020080015541A KR 20080015541 A KR20080015541 A KR 20080015541A KR 20090090219 A KR20090090219 A KR 20090090219A
Authority
KR
South Korea
Prior art keywords
multiplication
multiplier
finite field
polynomial
result
Prior art date
Application number
KR1020080015541A
Other languages
English (en)
Other versions
KR100954583B1 (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 KR1020080015541A priority Critical patent/KR100954583B1/ko
Publication of KR20090090219A publication Critical patent/KR20090090219A/ko
Application granted granted Critical
Publication of KR100954583B1 publication Critical patent/KR100954583B1/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/724Finite field arithmetic
    • 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/525Multiplying only in serial-serial fashion, i.e. both operands being entered serially
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법에 관한 것이며, 다항식 기저로 표현되는 제1 승수의 항 중에서 삼항 기약다항식의 각 항의 차수 중 중간 차수와 동일한 차수의 항을 제외하여 제2 승수를 생성하고, 상기 삼항 기약다항식에 의해 다항식 기저로 표현되는 피승수와 상기 제2 승수의 계수 곱셈 및 모듈러 연산을 수행하는 제1 곱셈 및 모듈러 연산부; 상기 제1 곱셈 및 모듈러 연산부의 중간 연산 결과를 저장하여 연산을 보조하고 상기 제1 곱셈 및 모듈러 연산부의 최종 연산 결과인 제1 연산 결과를 저장하는 제1 레지스터; 상기 삼항 기약다항식에 의해 상기 제1 승수에서 제외된 상기 항과 상기 피승수의 계수 곱셈 및 모듈러 연산을 수행하여 제2 연산 결과를 생성하는 제2 곱셈 및 모듈러 연산부; 및 상기 제2 곱셈 및 모듈러 연산부의 연산 결과를 저장하는 제2 레지스터를 포함하고, 상기 제1 곱셈 및 모듈러 연산부는 상기 제1 연산 결과가 생성되면 상기 제1 연산 결과에 상기 제2 레지스터에 저장된 상기 제2 연산 결과를 가산하여 상기 피승수 및 상기 제1 승수의 곱셈 결과를 생성하여 시간 및 공간 복잡도를 개선한다.

Description

다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법{Serial apparatus and method for finite field multiplication using polynomial basis}
본 발명은 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법에 관한 것이며, 더 상세하게는 삼항 기약다항식을 기반으로 설계하여 시간 복잡도를 개선하기 위한 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법에 관한 것이다.
유한체(finite feild)란 유한한 개수의 원소를 포함하는 체(field)를 말한다. 유한체 상의 연산은 코딩이론(coding theory), 컴퓨터 대수(computer algebra), 공개키 암호(public key cryptosystem) 중 타원곡선 암호(elliptic curve cryptosystem) 또는 페어링 기반의 암호시스템(Pairing Based Cryptosystem)등 여러 분야에서 널리 쓰이고 있다. 유한체 상의 주요연산은 덧셈, 곱셈, 제곱, 및 역원 연산들이다. 유한체 연산은 주로 덧셈과 곱셈으로 구성되며, 그 외의 지수승 및 역원 연산 등은 덧셈과 곱셈의 반복 연산으로 구성된다. 그 중에서 곱셈 연산은 덧셈 연산에 비하여 시간-공간 자원을 많이 사용한다. 따라서 시스템 설계의 관점에서 효율적인 곱셈기 설계는 매우 중요하다.
현재까지 연구된 유한체 곱셈 연산기로는 크게 직렬 유한체 곱셈기, 병렬 유 한체 곱셈기, 하이브리드 유한체 곱셈기가 존재한다. 직렬 유한체 곱셈기는 마스트로비토(Maxtrovito)에 의하여 제안되어 유한체 곱셈기의 기본적인 구조로 자리 잡아 왔다. 병렬 유한체 곱셈기의 경우 고속 연산을 수행할 수 있으나 하드웨어 자원을 많이 필요로 하는 문제가 있다. 하이브리드(hybrid) 유한체 곱셈기는 1999년 파르(Paar)에 의하여 제안되어 직렬 유한체 곱셈기의 연산 수행속도 문제를 개선하고 병렬 유한체 곱셈기의 단점으로 볼 수 있는 하드웨어 자원 문제를 개선하였다. 그러나 하이브리드 곱셈기의 경우 사용 가능한 유한체로서 유한체의 차수가 합성수인 합성수 유한체를 사용하기 때문에 암호학적인 안전도가 떨어져 많은 응용 분야에 적용하기 힘들다. 따라서 직렬 유한체 곱셈기의 경우 앞서 언급한 바와 같이 연산 수행속도의 문제는 있지만, 병렬 구조 및 하이브리드 구조에 비하여 회로가 단순하고 적은 크기로 구현할 수 있기 때문에 제한된 크기와 소비전력을 요구하는 시스템 환경에서는 다른 곱셈기들에 비해 그 필요성이 크다.
한편, 유한체 곱셈기 설계에 있어서 원소 표현은 선택은 매우 중요하다. 주로 쓰는 원소 표현 방법으로는 정규 기저(normal basis) 표현, 다항식 기저(polynomial basis) 표현, 쌍대 기저(dual basis) 표현, 및 여분(redundant) 표현 등이 있다. 상기 각각의 기저들은 적용 환경에 따라 장단점을 가진다. 정규 기저 경우 제곱 연산을 사이클릭 쉬프트(Cyclic Shift) 연산으로 매우 쉽게 처리한다. 그러나 정규기저의 경우 다른 기저에 비하여 곱셈기 설계의 복잡도가 크다는 단점을 가진다. 따라서 공간 자원이 중요시되는 환경을 위해 다항식 기저를 사용하는 곱셈기들이 연구되고 있다.
공개키 암호시스템에 있어서 유한체 연산의 고속화를 위하여 표수(characteristic)는 2, 3 등 작은 수가 선택되며, 최근 표수가 3인 유한체 위의 초특이 타원곡선에 대한 암호 애플리케이션을 Koblitz(Koblitz. N의 "An Elliptic Curve Implementation of the Finite Field Digital Signature Algorithm", CRYPTO 1998, LNCS 3574, pp.327-337, Springer-Verlag, 1998. 참조)와 Galbraith(S.D. Galbraith, "Supersingular Curves in Cryptography", ASIACRYPT 2001, LNCS 2248, pp.495-513, Springer-Verlag, 2001. 참조)가 제안하였다. 상기와 같은 페어링 연산 기반 암호시스템은 모듈러 감산 연산의 효율성을 고려하여 삼항 기약다항식(irreducible trinomial)을 주로 사용한다.
또한, 비트-직렬(bit-serial) 곱셈기의 출력은 병렬-출력(Parallel Output) 또는 직렬-출력(Serial Output)으로 나뉘며, 곱셈 방법은 계수를 처리하는 순서에 따라 MSE(Most Significant Element), LSE(Least Significant Element) 타입으로 구분된다. 각각의 타입은 적용 환경에 따라 장단점을 가지면서 시간-공간 복잡도에 영향을 미친다. LSE 타입의 경우 내부연산 모듈의 일부를 병렬화할 수 있다는 장점이 있는 반면, 레지스터의 증가와 제어부가 복잡해진다는 단점이 있다. 따라서 공간 자원이 중요시되는 환경에서는 LSE 타입의 곱셈기에 비해 MSE 타입의 곱셈기가 효율적으로 사용될 수 있다.
그러나 기존의 유한체 GF(pm)에 대한 MSE 타입의 곱셈기는 수행시간이 빠른 경우에는 추가적인 모듈러 연산부 및 저장 공간을 필요로 하는 문제점이 있으며, 특히 추가적인 모듈러 연산부 없이 간단하게 설계되는 경우에는 연산 수행 시간이 느리다는 문제점이 있다.
따라서, 본 발명이 이루고자 하는 첫 번째 기술적 과제는, 삼항 기약다항식을 사용하여 시간 복잡도를 개선하는 다항식 기저 기반의 MSE 타입 유한체 직렬 곱셈 장치를 제공하는 것이다.
본 발명이 이루고자 하는 두 번째 기술적 과제는, 삼항 기약다항식을 사용하여 시간 복잡도를 개선하는 다항식 기저 기반의 MSE 타입 유한체 직렬 곱셈 방법을 제공하는 것이다.
본 발명이 이루고자 하는 세 번째 기술적 과제는, 삼항 기약다항식을 사용하여 시간 및 공간 복잡도를 개선하는 다항식 기저 기반의 MSE 타입 유한체 직렬 곱셈 장치를 제공하는 것이다.
본 발명이 이루고자 하는 네 번째 기술적 과제는, 삼항 기약다항식을 사용하여 시간 및 공간 복잡도를 개선하는 다항식 기저 기반의 MSE 타입 유한체 직렬 곱셈 방법을 제공하는 것이다.
상기와 같은 첫 번째 기술적 과제를 해결하기 위하여, 본 발명은 삼항 기약다항식(f(x))을 사용하여 유한체 상의 두 원소의 곱셈을 수행하는 다항식 기저 기반의 유한체 직렬 곱셈 장치에 있어서, 다항식 기저로 표현되는 제1 승수(b(x))의 항 중에서 삼항 기약다항식(f(x))의 각 항의 차수 중 중간 차수(t)와 동일한 차수 의 항(btxt)을 제외하여 제2 승수(b'(x))를 생성하고, 상기 삼항 기약다항식(f(x))에 의해 다항식 기저로 표현되는 피승수(a(x))와 상기 제2 승수(b'(x))의 계수 곱셈 및 모듈러 연산을 수행하는 제1 곱셈 및 모듈러 연산부; 상기 제1 곱셈 및 모듈러 연산부의 중간 연산 결과를 저장하여 연산을 보조하고 상기 제1 곱셈 및 모듈러 연산부의 최종 연산 결과인 제1 연산 결과를 저장하는 제1 레지스터; 및 상기 삼항 기약다항식(f(x))에 의해 상기 제1 승수(b(x))에서 제외된 상기 항(btxt)과 상기 피승수(a(x))의 계수 곱셈 및 모듈러 연산을 수행하여 제2 연산 결과를 생성하고, 상기 제1 연산 결과를 상기 제2 연산 결과에 가산하여 상기 피승수(a(x))와 상기 제1 승수(b(x))의 곱셈 결과를 생성하는 제2 곱셈 및 모듈러 연산부를 포함하는 다항식 기저 기반의 유한체 직렬 곱셈 장치를 제공한다.
본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는, 상기 피승수(a(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 피승수(a(x))를 전달하는 제2 레지스터; 및 상기 제1 승수(b(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 제1 승수(b(x))를 전달하는 제3 레지스터를 더 포함한다.
본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는, 상기 제2 곱셈 및 모듈러 연산부의 연산 결과를 저장하여 상기 제1 승수 및 상기 피승수의 곱셈 결과를 출력하는 제4 레지스터를 더 포함한다.
본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는, 유한체의 표수(characteristic)가 2 또는 3일 수 있다.
본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치가 사용하는 상기 삼항 기약다항식(f(x))은 수학식 f(x) = xm+ftxt+f0 로 표현될 수 있다(단, ft,f0∈GF(3) 이고 t< m/2).
본 발명의 일 실시예에 따르면, 마이크로프로세서상에 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치를 시스템 온 칩(system on chip) 형태로 구현할 수 있다.
상기와 같은 두 번째 기술적 과제를 해결하기 위하여, 본 발명은 삼항 기약다항식(f(x))을 사용하여 유한체 상의 두 원소의 곱셈을 수행하는 다항식 기저 기반의 유한체 직렬 곱셈 방법에 있어서, 다항식 기저로 표현되는 제1 승수(b(x))의 항 중에서 삼항 기약다항식(f(x))의 각 항의 차수 중 중간 차수(t)와 동일한 차수의 항(btxt)을 제외하여 제2 승수(b'(x))를 생성하고, 상기 삼항 기약다항식(f(x))에 의해 다항식 기저로 표현되는 피승수(a(x))와 상기 제2 승수(b'(x))의 계수 곱셈 및 모듈러 연산을 수행하는 제1 곱셈 및 모듈러 연산 단계; 상기 제1 곱셈 및 모듈러 연산 단계의 중간 연산 결과를 제1 레지스터에 저장하여 연산을 보조하고 상기 제1 곱셈 및 모듈러 연산 단계의 최종 연산 결과인 제1 연산 결과를 상기 제1 레지스터에 저장하는 단계; 및 상기 삼항 기약다항식(f(x))에 의해 상기 제1 승 수(b(x))에서 제외된 상기 항(btxt)과 상기 피승수(a(x))의 계수 곱셈 및 모듈러 연산을 수행하여 제2 연산 결과를 생성하고, 상기 제1 연산 결과를 상기 제2 연산 결과에 가산하여 상기 피승수(a(x))와 상기 제1 승수(b(x))의 곱셈 결과를 생성하는 제2 곱셈 및 모듈러 연산 단계를 포함하는 다항식 기저 기반의 유한체 직렬 곱셈 방법을 제공한다.
본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 상기 제1 곱셈 및 모듈러 연산 단계 전에 외부로부터 입력되는 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 각각 제2 레지스터 및 제3 레지스터 저장하는 단계를 더 포함하고, 상기 제1 곱셈 및 모듈러 연산 단계는, 상기 제2 레지스터 및 상기 제3 레지스터에 저장된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 이용하여 상기 연산을 수행하는 단계이다.
본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은 상기 제2 곱셈 및 모듈러 연산 단계의 연산 결과를 제4 레지스터에 저장하여 상기 제1 승수 및 상기 피승수의 곱셈 결과를 출력하는 단계를 더 포함한다.
본 발명의 일 실시예에 따르면, 마이크로프로세서로 하여금 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법을 수행하도록 구현할 수 있다.
상기와 같은 세 번째 기술적 과제를 해결하기 위하여, 본 발명은 삼항 기약다항식(f(x))을 사용하여 유한체 상의 두 원소의 곱셈을 수행하는 다항식 기저 기반의 유한체 직렬 곱셈 장치에 있어서, 다항식 기저로 표현되는 제1 승수(b(x))의 항 중에서 삼항 기약다항식(f(x))의 각 항의 차수 중 중간 차수(t)와 동일한 차수의 항(btxt)을 제외하여 제2 승수(b'(x))를 생성하고, 상기 삼항 기약다항식(f(x))에 의해 다항식 기저로 표현되는 피승수(a(x))와 상기 제2 승수(b'(x))의 계수 곱셈 및 모듈러 연산을 수행하는 제1 곱셈 및 모듈러 연산부; 상기 제1 곱셈 및 모듈러 연산부의 중간 연산 결과를 저장하여 연산을 보조하고 상기 제1 곱셈 및 모듈러 연산부의 최종 연산 결과인 제1 연산 결과를 저장하는 제1 레지스터; 상기 삼항 기약다항식(f(x))에 의해 상기 제1 승수(b(x))에서 제외된 상기 항(btxt)과 상기 피승수(a(x))의 계수 곱셈 및 모듈러 연산을 수행하여 제2 연산 결과를 생성하는 제2 곱셈 및 모듈러 연산부; 및 상기 제2 곱셈 및 모듈러 연산부의 연산 결과를 저장하는 제2 레지스터를 포함하고, 상기 제1 곱셈 및 모듈러 연산부는 상기 제1 연산 결과가 생성되면 상기 제1 연산 결과에 상기 제2 레지스터에 저장된 상기 제2 연산 결과를 가산하여 상기 피승수(a(x)) 및 상기 제1 승수(b(x))의 곱셈 결과를 생성하는 다항식 기저 기반의 유한체 직렬 곱셈 장치를 제공한다.
본 발명의 일 실시예에 따르면, 상기 제1 레지스터는, 상기 제1 곱셈 및 모듈러 연산부에 의해 생성된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))의 상기 곱셈 결과를 저장하여 출력한다.
본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는, 상기 피승수(a(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 피 승수(a(x))를 전달하는 제3 레지스터; 및 상기 제1 승수(b(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 제1 승수(b(x))를 전달하는 제4 레지스터를 더 포함한다.
본 발명의 일 실시예에 따르면, 마이크로프로세서상에 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치를 시스템 온 칩 형태로 구현할 수 있다.
상기와 같은 네 번째 기술적 과제를 해결하기 위하여, 본 발명은 삼항 기약다항식(f(x))을 사용하여 유한체 상의 두 원소의 곱셈을 수행하는 다항식 기저 기반의 유한체 직렬 곱셈 방법에 있어서, 다항식 기저로 표현되는 제1 승수(b(x))의 항 중에서 삼항 기약다항식(f(x))의 각 항의 차수 중 중간 차수(t)와 동일한 차수의 항(btxt)을 제외하여 제2 승수(b'(x))를 생성하고, 상기 삼항 기약다항식(f(x))에 의해 다항식 기저로 표현되는 피승수(a(x))와 상기 제2 승수(b'(x))의 계수 곱셈 및 모듈러 연산을 수행하는 제1 곱셈 및 모듈러 연산 단계; 상기 삼항 기약다항식(f(x))에 의해 상기 제1 승수(b(x))에서 제외된 상기 항(btxt)과 상기 피승수(a(x))의 계수 곱셈 및 모듈러 연산을 수행하여 제2 연산 결과를 생성하는 제2 곱셈 및 모듈러 연산 단계; 상기 제1 곱셈 및 모듈러 연산 단계의 최종 연산 결과인 제1 연산 결과가 생성될 때까지 상기 제1 곱셈 및 모듈러 연산 단계의 중간 연산 결과를 제1 레지스터에 저장하여 연산을 보조하고, 그리고 상기 제2 곱셈 및 모듈러 연산 단계의 제2 연산 결과를 제2 레지스터에 저장하는 단계; 및 상기 제1 연 산 결과가 생성되면 상기 제1 연산 결과에 상기 제2 레지스터에 저장된 상기 제2 연산 결과를 가산하여 상기 피승수(a(x))와 상기 제1 승수(b(x))의 곱셈 결과를 생성하는 곱셈 결과 생성 단계를 포함하는 다항식 기저 기반의 유한체 직렬 곱셈 방법을 제공한다.
본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 상기 곱셈 결과 생성 단계에서 생성된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))의 상기 곱셈 결과를 상기 제1 레지스터에 저장하여 출력한다.
본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 상기 제1 곱셈 및 모듈러 연산 단계 전에 외부로부터 입력되는 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 각각 제3 레지스터 및 제4 레지스터 저장하는 단계를 더 포함하고, 상기 제1 곱셈 및 모듈러 연산 단계는, 상기 제3 레지스터 및 상기 제4 레지스터에 저장된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 이용하여 상기 연산을 수행하는 단계이다.
본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법은, 기존의 직렬 곱셈기에 비해 시간 복잡도를 개선하고, 나이가 공간 복잡도를 개선하는 이점을 제공한다.
본 발명에 관한 구체적인 내용의 설명에 앞서 이해의 편의를 위해 본 발명이 해결하고자 하는 기술적 과제의 개요를 우선 제시한다.
본 발명은 MSE 타입의 새로운 비트 직렬 곱셈 장치 및 방법을 제안한다. 본 발명에 따른 곱셈 장치 및 방법은 삼항 기약다항식을 기반으로 설계되며, 삼항 기약다항식을 사용하는 페어링 기반의 암호시스템의 GF(3m)을 일례로 하여 설계한다.
우선, f(x)를 GF(3) 위에서 차수가 m인 삼항 기약다항식이라 하고 f(x)를 하기 수학식 1과 같이 정의한다.
f(x) = xm+ftxt+f0 , (단, ft,f0∈GF(3), t< m/2)
그러면 유한체 GF(3m)는 GF(3)[X]/(f(x))와 동형이기 때문에 GF(3m)의 원소 a(x)는 다항식 기저를 이용하여 하기 수학식 2와 같이 표현할 수 있다.
a(x) = am -1xm -1+…+a1x+a0
= (am -1…a1a0) , (단, ai∈GF(3))
ai는 GF(3)의 원소이기 때문에, ai를 표현하기 위해서는 2비트가 필요하게 된다. [PS03]에서는 GF(3)의 원소를 표현하기 위하여 하기 수학식 3과 같은 표기법을 사용한다.
ai = (ai H, ai L ) , 여기서 ai H= ai div 2 이고 ai L=ai mod2
상기 표기법을 사용하여 GF(3)의 원소 ai 및 bi의 덧셈 ci=ai+bi는 3 XOR 게이트와 4 OR 게이트를 이용하여 다음과 같이 계산된다.
ci H=(ai L∨bi L)
Figure 112008012760390-PAT00001
t , ci L=(ai H∨bi H)
Figure 112008012760390-PAT00002
t 그리고
t=(ai L∨bi H)
Figure 112008012760390-PAT00003
(ai H∨bi L) 이다.
특히, 2(ai H, ai L) = -(ai H, ai L) = (ai L, ai H)이므로 뺄셈과 2에 의한 곱셈은 덧셈을 이용하여 쉽게 계산할 수 있다.
이하, 본 발명에 따른 곱셈 장치와의 비교를 위해, 기존의 MSE(Most Significant Element) 타입의 비트-직렬 곱셈기를 개괄적으로 설명한다. 유한체 곱셈은 곱셈 연산, 즉 r'(x)=a(x)·b(x)와 모듈러 연산, 즉 r(x)= r'(x) mod f(x) 으로 구분된다. 따라서, 기존의 MSE 타입의 비트-직렬 곱셈기는 곱셈과 모듈러 연산을 독립으로 수행하는 기존의 제1 타입 곱셈기와, 곱셈과 모듈러 연산을 병렬 수행하는 인터리브 곱셈기(interleaved multiplier)인 기존의 제2 타입 곱셈기로 구분될 수 있다. 상기 기존의 제1 타입 곱셈기가 곱셈과 모듈러 연산을 독립 수행하는 제1 알고리듬은 다음과 같다.
제1 알고리듬
Figure 112008012760390-PAT00004
상기 기존의 제2 타입 곱셈기가 곱셈과 모듈러 연산을 병렬 수행하는 제2 알고리듬은 다음과 같다.
제2 알고리듬
Figure 112008012760390-PAT00005
상기 제1 알고리듬의 경우 계수 곱셈과 r'(x)의 덧셈 연산으로 구성되나 GF(3)의 계수 곱셈은 1 또는 -1의 곱셈이므로 반복문은 덧셈 또는 뺄셈 연산을 m번 반복하게 된다. 그리고 모듈러 연산 r(x)=r'(x) mod f(x)는 삼항 기약다항식의 각 항의 차수 중 중간 차수인 t가 t<m/2를 만족하면 3번의 덧셈 또는 뺄셈 연산으로 구성된다. 따라서 r(x)의 계산에 m+3번의 덧셈 또는 뺄셈으로 r(x)를 계산할 수 있다.
상기 제2 알고리듬의 경우 하기 수학식 4를 반복적으로 수행하며 r(x)는 항상 m개의 항을 가진다. 따라서 2m번의 덧셈 또는 뺄셈으로 r(x)를 계산할 수 있다.
r(x) = ai·b(x) + r(x)·x mod f(x)
= ai·b(x) + r(x)·x - rm -1·f(x)
상기 기존의 제1 타입 곱셈기의 경우 비교적 빠른 연산 속도를 가지나, r(x)의 2배나 되는 r'(x)의 저장 공간 및 추가 모듈러 연산부를 필요로 한다는 문제점이 있다. 상기 기존의 제2 타입 곱셈기의 경우 추가 모듈러 연산 모듈을 필요로 하지 않지만 연산속도가 기존의 제1 타입 곱셈기 보다도 느리다는 문제점이 있다.
이하, 본 발명의 기술적 과제의 해결 방안을 명확화하기 위해 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하되 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여할 수 있으며 당해 도면에 대한 설명시 필요한 경우 다른 도 면의 구성요소를 인용할 수 있음을 미리 밝혀둔다. 그리고 본 발명을 설명함에 있어서 관련된 공지기술 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불명료하게 할 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자 등의 의도 또는 관례 등에 따라 달라질 수 있을 것이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
GF(pm)에서 삼항 기약다항식 f(x)=xm+ftxt+f0 ,(단, ft,f0∈GF(3), t< m/2)을 사용한 다항식 기저 기반의 유한체 곱셈을 기존의 MSE 타입 비트-직렬 곱셈기 보다 고속으로 수행하고, 나아가 추가적으로 증가하는 연산부가 최소가 되도록 설계하기 위해 본 발명은 다음과 같은 의미 있는 곱셈 연산의 변환을 도입한다.
다항식 기저로 표현되는 유한체 상의 두 원소인 피승수 및 승수를 각각 a(x) 및 b(x)라 하면 변환된 승수 b'(x)를 하기 수학식 5와 같이 정의할 수 있다.
b'(x)=b(x)-bt·xt
상기 수학식 5 및 모듈러 연산의 성질에 의해, a(x) 및 b(x)의 곱셈은 하기 수학식 6과 같이 유도될 수 있다.
a(x)*b(x) mod f(x)
= a(x)*[b'(x) + bt·xt]mod f(x)
= [a(x)*b'(x) mod f(x)] + [bt·xt*a(x) mod f(x)]
삼항 기약다항식 환경을 고려하면 상기 수학식 6의 결과의 첫 번째 항인 [a(x)*b'(x) mod f(x)]의 연산은 비트-직렬 곱셈기에서 하기 수학식 7에 나타난 연산을 반복 수행하게 된다.
ai·b'(x)+r'(x)·x mod f(x)
= ai·b'(x)+r'(x)·x - r'm -1·f(x)
= ai·b'(x)+r'(x)·x - r'm -1·{xm+ftxt+f0}
상기 수학식 7의 결과 중에서 첫 번째 항인 ai·b'(x)는 t항이 없고, 두 번째 항인 r'(x)·x에는 상수 항이 없으므로 상기 수학식 7은 한 번의 덧셈(뺄셈)으로 연산이 가능하다. 따라서, 상기 기존의 제2 알고리듬에 비하여 고속 연산을 수행할 수 있게 되고, 또한 모듈러 연산을 수행하므로 상기 기존의 제1 알고리듬에 비하여 적은 저장 공간을 사용할 수 있게 된다.
도 1에는 상기 수학식 6의 결과의 두 번째 항인 [bt·xt*a(x) mod f(x)]의 연산 원리가 도식적으로 나타나 있다. bt*a(x)의 연산 결과를 u1이라 한다. u1에 xt 곱하게 되면 레지스터 상에서는 t만큼의 자리 이동이 발생한다. u1*xt의 결과 중 m-t-1차 항부터 t차 항까지의 부분을 u2라 하고, m+t-1차 항부터 m-t차 항까지의 부분을 u3라 하면, 상기 삼항 기약다항식 f(x)=xm+ftxt+f0에 의해 u3에 대한 모듈러 연산을 수행하여 상기 [bt·xt*a(x) mod f(x)]의 결과를 얻게 된다.
결론적으로, 상기 변환 승수 b'(x)를 이용하는 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법에는 하기 제3 알고리듬이 사용된다.
제3 알고리듬
Figure 112008012760390-PAT00006
도 2에는 상기 제3 알고리듬을 구현하기 위한 본 발명에 따른 제1 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례가 개략적인 블록도로 도시되어 있으며, 도 3 및 도 4에는 보다 세부적인 블록도로 도시되어 있다. 또한, 도 5에는 본 발명에 따른 제1 타입의 다항식 기저 기반의 유한체 직렬 곱셈 방법의 일례가 흐름도로 도시되어 있다.
도 2 내지 도 5를 참조하면, 우선 제1 레지스터(310) 및 제2 레지스터(320)는 각각 다항식 기저로 표현되는 두 원소인 피승수 a(x) 및 제1 승수 b(x)를 저장한다(S500). 상기 제1 레지스터(310) 및 제2 레지스터(320)는 상기 두 원소의 계수를 하나씩 제1 곱셈 및 모듈러 연산부(200)로 출력한다. 그러면 상기 제1 곱셈 및 모듈러 연산부(200)는 상기 제1 승수 b(x)의 항 중에서 삼항 기약다항식 f(x)=xm+ftxt+f0의 각 항의 차수 중 중간 차수 t와 동일한 차수의 항 btxt을 제외하여 제2 승수 b'(x)를 생성하고(S510), 상기 삼항 기약다항식 f(x)을 사용하여 상기 제2 승수와 상기 피승수의 계수 곱셈 및 모듈러 연산을 수행한다(S520). 제3 레지스터(210)는 상기 제1 곱셈 및 모듈러 연산부(200)의 중간 연산 결과를 저장하여 연산을 보조하고 상기 제1 곱셈 및 모듈러 연산부(200)의 최종 연산 결과 r'(x), 즉 상기 수학식 6의 첫 번째 항인 [a(x)*b'(x) mod f(x)]의 연산 결과를 저장한다.
도 3을 참조하여 더 상세히 설명하면, 상기 제1 곱셈 및 모듈러 연산부(200)는 곱셈부(330, 340) 및 덧셈부(350)를 포함하며, 상기 곱셈부(330, 340)는 모듈러 연산 결과를 고려하여 상기 피승수 a(x)의 계수 ai와 상기 제2 승수 b'(x)의 계수들의 곱셈을 수행한다. 상기 제2 승수 b'(x)는 t차 항이 없기 때문에 대신 상기 곱셈부(330)에서는 상기 삼항 기약다항식 f(x)의 중간 차수 항인 t차 항의 계수 ft와 상기 제1 곱셈 및 모듈러 연산부(200)의 중간 연산 결과인 r'm -1과의 곱셈이 이루어진 다. 상기 곱셈부(340)에서는 상기 삼항 기약다항식 f(x)의 상수항인 f0와 상기 r'm - 1과의 곱셈이 이루어진다. 상기 덧셈부(350)에서는 상기 곱셈부(330, 340)의 연산 결과들과 상기 연산 결과들에 대응하는 상기 제1 곱셈 및 모듈러 연산부(200)의 중간 연산 결과를 더하여 그 결과인 ai·b'(x)+r'(x)·x mod f(x)를 상기 제1 곱셈 및 모듈러 연산부(200)의 다음 중간 연산 결과로서 상기 제3 레지스터에 저장한다. 상기 곱셈부(330) 및 상기 덧셈부(350)는 계수 곱셈 및 상기 계수 곱셈의 결과와 중간 연산 결과와의 덧셈 연산을 i=m-1 부터 i=0까지 수행하고 최종 연산 결과 r'(x)=[a(x)*b'(x) mod f(x)]를 상기 제3 레지스터(210)에 저장하게 된다.
제2 곱셈 및 모듈러 연산부(220)는 상기 삼항 기약다항식 f(x)에 의해 상기 제1 승수 b(x)에서 제외된 상기 항 btxt과 상기 피승수 a(x)의 계수 곱셈 및 모듈러 연산을 수행하여 제2 연산 결과, 즉 상기 수학식 6의 상기 두 번째 항인 [bt·xt*a(x) mod f(x)]의 연산 결과를 생성하고 상기 제3 레지스터(210)에 저장되는 제1 곱셈 및 모듈러 연산부(200)의 연산 결과를 상기 제2 연산 결과에 가산하여 상기 유한체 상의 두 원소 a(x) 및 b(x)의 곱셈 결과를 생성한다(S530).
도 4를 참조하여 더 상세히 설명하면, 상기 제2 곱셈 및 모듈러 연산부(220)는 곱셈부(410, 420, 430) 및 덧셈부(440, 450)을 포함하며, 상기 곱셈부(410)는 btxt의 계수와 a(x)의 계수와의 곱셈 연산을 수행한다. 상기 곱셈부(420) 및 상기 곱셈부(430)는 모듈러 연산 결과를 고려하여 각각 ft 및 f0를 상기 곱셈부(410)의 연산 결과, 즉 bt*a(x)의 연산 결과인 v1(x) 중에서 m-t차 항에서 m-1차 항까지의 결과인 v1 ,2(x)와 곱셈 연산한다. 따라서, 상기 곱셈부(420)의 연산 결과인 v2(x)는 도 1의 ft·u3의 연산 결과에 해당하고, 상기 곱셈부(430)의 연산 결과인 v3(x)는 도 1의 f0·u3의 연산 결과에 해당한다. 상기 덧셈부(440)는, 상기 제1 곱셈 및 모듈러 연산부(200)의 최종 연산 결과인 r'(x) 중 m-1차 항부터 t차 항까지의 결과에, 상기 곱셈부(410)의 연산 결과인 v1(x) 중에서 m-t-1차 항에서 0차 항까지의 결과인 v1 ,2(x)를 대응하는 항 별로 각각 더하고, 또한 상기 제1 곱셈 및 모듈러 연산부(200)의 최종 연산 결과인 r'(x) 중 t-1차 항부터 0차 항까지의 결과에 상기 곱셈부(420)의 연산 결과인 v2(x)를 대응하는 항 별로 각각 더한다. 즉, 상기 덧셈부(440)의 결과는 r'(x)+{u2 + ft·u3}의 연산 결과에 해당한다. 따라서, 상기 덧셈부(450)는 상기 덧셈부(440)의 결과에 v3(x), 즉 f0·u3의 연산 결과를 더하는 연산부이다. 결국, 최종 결과는 r'(x)+{u2 + ft·u3 + f0·u3}가 된다. 도 1에서 도식적으로 확인한 바와 같이 {u2 + ft·u3 + f0·u3}는 [bt·xt*a(x) mod f(x)]의 연산 결과에 해당하므로, 유한체 상의 두 원소 a(x) 및 b(x)의 곱셈 결과 r(x) = r'(x)+[bt ·xt*a(x) mod f(x)]가 생성된다.
상기 제2 곱셈 및 모듈러 연산부(220)의 연산 결과는 레지스터의 일종인 어큐뮬레이터(accumulator; 460)에 저장되고 출력된다.
본 발명에 따른 제1 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치에서 레지스터를 이용하여 상기 제2 곱셈 및 모듈러 연산부(220)를 상기 제1 곱셈 및 모듈러 연산부(200)에 직렬로 연결한 제2 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치를 구성하면 시간 복잡도 및 공간 복잡도를 더욱 개선할 수 있다.
일 실시예에 있어서, 본 발명에 따른 제1 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치를 마이크로프로세서상에 시스템 온 칩(system on chip) 형태로 구현하여 상기 마이크로프로세서로 하여금 상기와 같은 다항식 기저 기반의 유한체 직렬 곱셈 방법을 수행하도록 할 수 있다. 본 발명을 마이크로프로세서로 구현하면 각종 시스템의 크기를 줄일 수 있고, 조립 과정을 단순화시킬 수 있으며, 제조 비용을 절감할 수 있는 등의 이점이 있다.
도 6에는 본 발명에 따른 제2 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례가 개략적인 블록도로 도시되어 있으며, 도 7에는 보다 세부적인 블록도로 도시되어 있다. 또한, 도 8에는 본 발명의 따른 제2 타입의 다항식 기저 기반의 유한체 직렬 곱셈 방법의 일례가 흐름도로 도시되어 있다.
도 6 내지 도 8을 참조하면, 우선 제1 레지스터(710) 및 제2 레지스터(720)는 각각 다항식 기저로 표현되는 두 원소인 피승수 a(x) 및 제1 승수 b(x)를 저장 한다(S800). 상기 제1 레지스터(710) 및 제2 레지스터(720)는 상기 두 원소의 계수를 하나씩 제1 곱셈 및 모듈러 연산부(600)로 출력한다. 그러면 상기 제1 곱셈 및 모듈러 연산부(600)는 상기 제1 승수 b(x)의 항 중에서 삼항 기약다항식 f(x)=xm+ftxt+f0의 각 항의 차수 중 중간 차수 t와 동일한 차수의 항 btxt을 제외하여 제2 승수 b'(x)를 생성하고(S810), 상기 삼항 기약다항식 f(x)을 사용하여 상기 제2 승수와 상기 피승수의 계수 곱셈 및 모듈러 연산을 수행한다(S820). 어큐뮬레이터(610)는 일종의 레지스터로서 상기 제1 곱셈 및 모듈러 연산부(600)의 중간 연산 결과를 저장하여 연산을 보조하고 상기 제1 곱셈 및 모듈러 연산부(600)의 최종 연산 결과, 즉 상기 수학식 6의 첫 번째 항인 [a(x)*b'(x) mod f(x)]의 연산 결과를 저장한다.
제2 곱셈 및 모듈러 연산부(620)는 상기 삼항 기약다항식 f(x)에 의해 상기 제1 승수 b(x)에서 제외된 상기 항 btxt과 상기 피승수 a(x)의 계수 곱셈 및 모듈러 연산을 수행하여 제2 연산 결과, 즉 상기 수학식 6의 상기 두 번째 항인 [bt·xt*a(x) mod f(x)]의 연산 결과를 생성하고 레지스터(630)에 저장한다(S830). 상기 제2 곱셈 및 모듈러 연산부(620)의 동작은 하기 제4 알고리듬과 같이 표현할 수 있다.
제4 알고리듬
Figure 112008012760390-PAT00007
상기 제4 알고리듬에서 Pi*bt는 도 1의 u2에 해당하며, Qi*bt*ft 및 Qi*bt*f0는 각각 도 1의 ft*u3 및 f0*u3에 해당한다.
도 7을 참조하여 더 상세히 설명하면, 상기 제1 곱셈 및 모듈러 연산부(600)의 각 곱셈부(MUL) 및 덧셈부(ADD)의 동작은 본 발명에 따른 상기 제1 타입의 곱셈 장치에 포함되는 상기 제1 곱셈 및 모듈러 연산부(200)의 각 곱셈부 및 덧셈부의 동작과 기본적으로 동일하다. 다만, 상기 제1 곱셈 및 모듈러 연산부(600)는 제어신호(crl)에 의해 제어되는 멀티플렉서(730)를 포함하며, 상기 멀티플렉서(730)는 상기 제1 곱셈 및 모듈러 연산부(600)가 i=m-1부터 i=0까지 상기 각 곱셈부(MUL)에 의한 계수 곱셈 연산 및 상기 덧셈부(ADD)에 의한 덧셈 연산을 수행하는 동안에는 상기 곱셈부(MUL)의 연산 결과인 u(x)만을 상기 덧셈부(ADD)에 전달한다. 그리고, 상기 어큐뮬레이터(610)에 [a(x)*b'(x) mod f(x)]의 연산 결과가 모두 저장되면 상 기 멀티플렉서(730)는 제어신호(crl)에 따라 u(x) 대신 상기 레지스터(630)로부터 상기 제2 곱셈 및 모듈러 연산부(620)의 연산 결과, 즉 [bt·xt*a(x) mod f(x)]의 연산 결과를 상기 덧셈부(ADD)에 전달한다. 그러면 상기 덧셈부(ADD)는 상기 [a(x)*b'(x) mod f(x)]의 연산 결과와 상기 [bt·xt*a(x) mod f(x)]의 연산 결과를 더하여 유한체 상의 두 원소인 상기 피승수 a(x) 및 상기 제1 승수 b(x)의 곱셈 결과를 생성한다(S840). 생성된 곱셈 결과는 다시 상기 어큐뮬레이터(610)에 저장되고 출력된다.
상기 제2 곱셈 및 모듈러 연산부(620)의 동작을 상세히 설명하면, 레지스터(740)는 상기 피승수 a(x)의 계수 중에서 m-t-1차 항부터 0차 항까지의 계수를 저장한다. 곱셈부(760)는 상기 레지스터(740)에 저장된 m-t-1차 항부터 0차 항까지의 계수와 상기 btxt의 계수 bt와의 곱셈 연산을 수행하여 도 1의 u2에 해당하는 연산 결과를 출력한다. 로테이터(rotator; 750)는 상기 피승수 a(x)의 계수 중 m-1차 항부터 m-t차 항까지의 계수를 저장한다. 곱셈부(770)는 상기 로테이터(750)에 저장된 계수와 상기 bt와 곱셈 연산을 수행하여 도 1의 u3에 해당하는 연산 결과를 생성하고 그리고 상기 u3에 해당하는 연산 결과와 ft를 곱셈 연산하여 도 1의 ft·u3에 해당하는 연산 결과를 출력한다. 또한, 상기 곱셈부(770)는 제어신호(crl)에 따라 다시 상기 u3에 해당하는 연산 결과와 f0를 곱셈 연산하여 도 1의 f0·u3에 해당 하는 연산 결과를 출력한다. 덧셈부(780)는 상기 곱셈부(760)의 연산 결과 및 상기 곱셈부(770)의 연산 결과를 더하여 상기 레지스터(630)에 {u2 + ft·u3 + f0·u3}의 연산 결과, 즉 [bt·xt*a(x) mod f(x)]의 연산 결과를 저장한다.
일 실시예에 따르면, 본 발명에 따른 제2 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치를 마이크로프로세서상에 시스템 온 칩(system on chip) 형태로 구현하여, 상기 마이크로프로세서로 하여금 상기와 같은 다항식 기저 기반의 유한체 직렬 곱셈 방법을 수행하도록 할 수 있다. 본 발명을 마이크로프로세서로 구현하면 각종 시스템의 크기를 줄일 수 있고, 조립 과정을 단순화시킬 수 있으며, 제조 비용을 절감할 수 있는 등의 이점이 있다.
하기 표 1에는 기존의 제1 타입 및 제2 타입 곱셈기와 본 발명에 따른 제1 타입 및 제2 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치의 시간 복잡도를 비교한 결과가 나타나 있다.
Figure 112008012760390-PAT00008
상기 표 1에 나타난 바와 같이, 본 발명에 따른 곱셈 장치 및 방법은 기존의 MSE 타입 곱셈기에 비하여 시간지연을 감소시키며, 확장체의 표수(characteristic)와 관계없이 적용 가능하다. 특히, 확장체의 표수가 작은 타원곡선 암호 시스템, 페어링 기반의 암호시스템에서 고속 연산이 가능하며, 표수가 2 또는 3인 경우 기존의 곱셈기 보다 대략 2배 빠르게 동작한다는 이점을 제공한다.
하기 표 2에는 곱셈과 모듈러 연산을 독립 수행하는 기존의 제1 타입 곱셈기와 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치의 공간 복잡도를 비교한 결과가 나타나 있다.
Figure 112008012760390-PAT00009
상기 표 2에 나타난 바와 같이, 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치는 기존의 제1 타입 곱셈기에 비해 공간 복잡도까지 개선한 이점을 제공한다.
이제까지 본 발명에 대하여 그 바람직한 실시예를 중심으로 살펴보았다. 그러나 당업자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 본 발명이 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다.그러므로, 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다.
본 발명의 범위는 상술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 본 발명의 곱셈 연산 원리를 도식적으로 나타낸 도면.
도 2는 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례에 관한 개략적인 블록도.
도 3 및 도 4는 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례에 관한 세부적인 블록도.
도 5는 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 방법의 일례에 관한 흐름도.
도 6은 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례에 관한 개략적은 블록도.
도 7은 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례에 관한 세부적인 블록도.
도 8은 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 방법의 일례에 관한 흐름도.

Claims (12)

  1. 삼항 기약다항식(f(x))을 사용하여 유한체 상의 두 원소의 곱셈을 수행하는 다항식 기저 기반의 유한체 직렬 곱셈 장치에 있어서,
    다항식 기저로 표현되는 제1 승수(b(x))의 항 중에서 삼항 기약다항식(f(x))의 각 항의 차수 중 중간 차수(t)와 동일한 차수의 항(btxt)을 제외하여 제2 승수(b'(x))를 생성하고, 상기 삼항 기약다항식(f(x))에 의해 다항식 기저로 표현되는 피승수(a(x))와 상기 제2 승수(b'(x))의 계수 곱셈 및 모듈러 연산을 수행하는 제1 곱셈 및 모듈러 연산부;
    상기 제1 곱셈 및 모듈러 연산부의 중간 연산 결과를 저장하여 연산을 보조하고 상기 제1 곱셈 및 모듈러 연산부의 최종 연산 결과인 제1 연산 결과를 저장하는 제1 레지스터;
    상기 삼항 기약다항식(f(x))에 의해 상기 제1 승수(b(x))에서 제외된 상기 항(btxt)과 상기 피승수(a(x))의 계수 곱셈 및 모듈러 연산을 수행하여 제2 연산 결과를 생성하는 제2 곱셈 및 모듈러 연산부; 및
    상기 제2 곱셈 및 모듈러 연산부의 연산 결과를 저장하는 제2 레지스터를 포함하고, 상기 제1 곱셈 및 모듈러 연산부는 상기 제1 연산 결과가 생성되면 상기 제1 연산 결과에 상기 제2 레지스터에 저장된 상기 제2 연산 결과를 가산하여 상기 피승수(a(x)) 및 상기 제1 승수(b(x))의 곱셈 결과를 생성하는 다항식 기저 기반의 유한체 직렬 곱셈 장치.
  2. 제1항에 있어서,
    상기 제1 레지스터는, 상기 제1 곱셈 및 모듈러 연산부에 의해 생성된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))의 상기 곱셈 결과를 저장하여 출력하는 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 장치.
  3. 제1항에 있어서,
    상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는,
    상기 피승수(a(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 피승수(a(x))를 전달하는 제3 레지스터; 및
    상기 제1 승수(b(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 제1 승수(b(x))를 전달하는 제4 레지스터를 더 포함하는 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 장치.
  4. 제1항에 있어서,
    상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는, 유한체의 표수(characteristic)가 2 또는 3인 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 장치.
  5. 제1항에 있어서,
    상기 다항식 기저 기반의 유한체 직렬 곱셈 장치가 사용하는 상기 삼항 기약다항식(f(x))은, 하기 수학식 1과 같이 표현되는 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 장치.
    <수학식 1>
    f(x) = xm+ftxt+f0 , (단, ft,f0∈GF(3) 이고 t< m/2)
  6. 제1항 내지 제5항 중 어느 한 항에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치를 시스템 온 칩(system on chip) 형태로 구현한 마이크로프로세서.
  7. 삼항 기약다항식(f(x))을 사용하여 유한체 상의 두 원소의 곱셈을 수행하는 다항식 기저 기반의 유한체 직렬 곱셈 방법에 있어서,
    다항식 기저로 표현되는 제1 승수(b(x))의 항 중에서 삼항 기약다항식(f(x))의 각 항의 차수 중 중간 차수(t)와 동일한 차수의 항(btxt)을 제외하여 제2 승수(b'(x))를 생성하고, 상기 삼항 기약다항식(f(x))에 의해 다항식 기저로 표현되는 피승수(a(x))와 상기 제2 승수(b'(x))의 계수 곱셈 및 모듈러 연산을 수행하는 제1 곱셈 및 모듈러 연산 단계;
    상기 삼항 기약다항식(f(x))에 의해 상기 제1 승수(b(x))에서 제외된 상기 항(btxt)과 상기 피승수(a(x))의 계수 곱셈 및 모듈러 연산을 수행하여 제2 연산 결과를 생성하는 제2 곱셈 및 모듈러 연산 단계;
    상기 제1 곱셈 및 모듈러 연산 단계의 최종 연산 결과인 제1 연산 결과가 생성될 때까지 상기 제1 곱셈 및 모듈러 연산 단계의 중간 연산 결과를 제1 레지스터에 저장하여 연산을 보조하고, 그리고 상기 제2 곱셈 및 모듈러 연산 단계의 제2 연산 결과를 제2 레지스터에 저장하는 단계; 및
    상기 제1 연산 결과가 생성되면 상기 제1 연산 결과에 상기 제2 레지스터에 저장된 상기 제2 연산 결과를 가산하여 상기 피승수(a(x))와 상기 제1 승수(b(x))의 곱셈 결과를 생성하는 곱셈 결과 생성 단계를 포함하는 다항식 기저 기반의 유한체 직렬 곱셈 방법.
  8. 제7항에 있어서,
    상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 상기 곱셈 결과 생성 단계에서 생성된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))의 상기 곱셈 결과를 상기 제1 레지스터에 저장하여 출력하는 단계를 더 포함하는 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 방법.
  9. 제7항에 있어서,
    상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 상기 제1 곱셈 및 모듈러 연산 단계 전에 외부로부터 입력되는 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 각각 제3 레지스터 및 제4 레지스터 저장하는 단계를 더 포함하고, 상기 제1 곱셈 및 모듈러 연산 단계는, 상기 제3 레지스터 및 상기 제4 레지스터에 저장된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 이용하여 상기 연산을 수행하는 단계인 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 방법.
  10. 제7항에 있어서,
    상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 유한체의 표수(characteristic)가 2 또는 3인 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 방법.
  11. 제7항에 있어서,
    상기 다항식 기저 기반의 유한체 직렬 곱셈 방법이 사용하는 상기 삼항 기약다항식(f(x))은, 하기 수학식 2와 같이 표현되는 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 방법.
    <수학식 2>
    f(x) = xm+ftxt+f0 , (단, ft,f0∈GF(3) 이고 t< m/2)
  12. 제7항 내지 제11항 중 어느 한 항에 따른 다항식 기저 기반의 유한체 직렬 곱셈 방법을 수행하도록 구현한 마이크로프로세서.
KR1020080015541A 2008-02-20 2008-02-20 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법 KR100954583B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080015541A KR100954583B1 (ko) 2008-02-20 2008-02-20 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080015541A KR100954583B1 (ko) 2008-02-20 2008-02-20 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20090090219A true KR20090090219A (ko) 2009-08-25
KR100954583B1 KR100954583B1 (ko) 2010-04-26

Family

ID=41208144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080015541A KR100954583B1 (ko) 2008-02-20 2008-02-20 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100954583B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102075848B1 (ko) * 2018-11-22 2020-02-10 부산대학교 산학협력단 다항식 연산 최적화 처리 장치, 다항식 연산 최적화 처리 방법 및 기록매체
KR102204081B1 (ko) * 2020-07-24 2021-01-15 한양대학교 에리카산학협력단 효율적인 양자 모듈러 곱셈기 및 양자 모듈러 곱셈 방법
WO2022019443A1 (ko) * 2020-07-24 2022-01-27 한양대학교 에리카산학협력단 효율적인 양자 모듈러 곱셈기 및 양자 모듈러 곱셈 방법

Family Cites Families (2)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102075848B1 (ko) * 2018-11-22 2020-02-10 부산대학교 산학협력단 다항식 연산 최적화 처리 장치, 다항식 연산 최적화 처리 방법 및 기록매체
KR102204081B1 (ko) * 2020-07-24 2021-01-15 한양대학교 에리카산학협력단 효율적인 양자 모듈러 곱셈기 및 양자 모듈러 곱셈 방법
WO2022019443A1 (ko) * 2020-07-24 2022-01-27 한양대학교 에리카산학협력단 효율적인 양자 모듈러 곱셈기 및 양자 모듈러 곱셈 방법

Also Published As

Publication number Publication date
KR100954583B1 (ko) 2010-04-26

Similar Documents

Publication Publication Date Title
Aysu et al. Low-cost and area-efficient FPGA implementations of lattice-based cryptography
Kudithi et al. High-performance ECC processor architecture design for IoT security applications
Javeed et al. Low latency flexible FPGA implementation of point multiplication on elliptic curves over GF (p)
Yao et al. Faster pairing coprocessor architecture
Kim et al. FPGA implementation of high performance elliptic curve cryptographic processor over GF (2163)
Shah et al. A high‐speed RSD‐based flexible ECC processor for arbitrary curves over general prime field
Cohen et al. Architecture optimizations for the RSA public key cryptosystem: A tutorial
Bisheh Niasar et al. Efficient hardware implementations for elliptic curve cryptography over Curve448
Perin et al. Montgomery modular multiplication on reconfigurable hardware: Systolic versus multiplexed implementation
KR100954583B1 (ko) 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법
KR100457177B1 (ko) 유한체 상의 두 원소의 곱을 구하는 직렬-병렬 곱셈기
KR100954579B1 (ko) 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법
KR101136972B1 (ko) 타원곡선 암호 연산 방법
KR100954584B1 (ko) MSD first GF(3^m) 직렬 곱셈 장치, 그방법 및 이를 기록한 기록매체
O'Rourke et al. Achieving NTRU with Montgomery multiplication
Li et al. FPGA implementations of elliptic curve cryptography and Tate pairing over a binary field
Wang et al. A unified architecture for a public key cryptographic coprocessor
Kalaiarasi et al. A parallel elliptic curve crypto-processor architecture with reduced clock cycle for FPGA platforms
KR100974624B1 (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
Kavyashree et al. Design and implementation of different architectures of montgomery modular multiplication
KR100946256B1 (ko) 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기
Mondal et al. A configurable and efficient implementation of Number Theoretic Transform (NTT) for lattice based Post-Quantum-Cryptography
Wu et al. Fast and scalable parallel processing of scalar multiplication in elliptic curve cryptosystems
KR100954582B1 (ko) GF(3) 기반의 덧셈기, GF(3) 기반의 곱셈기,GF(3) 기반의 덧셈 뺄셈 통합형 연산 장치, 및 MSBfirst GF(3^m) 직렬 곱셈 장치
Sakamoto et al. High-Throughput Bilinear Pairing Processor for Server-Side FPGA Applications

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