KR100954583B1 - Serial apparatus and method for finite field multiplication using polynomial basis - Google Patents

Serial apparatus and method for finite field multiplication using polynomial basis Download PDF

Info

Publication number
KR100954583B1
KR100954583B1 KR1020080015541A KR20080015541A KR100954583B1 KR 100954583 B1 KR100954583 B1 KR 100954583B1 KR 1020080015541 A KR1020080015541 A KR 1020080015541A KR 20080015541 A KR20080015541 A KR 20080015541A KR 100954583 B1 KR100954583 B1 KR 100954583B1
Authority
KR
South Korea
Prior art keywords
multiplication
multiplier
polynomial
finite field
result
Prior art date
Application number
KR1020080015541A
Other languages
Korean (ko)
Other versions
KR20090090219A (en
Inventor
홍석희
임종인
김창한
장남수
김태현
김용훈
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020080015541A priority Critical patent/KR100954583B1/en
Publication of KR20090090219A publication Critical patent/KR20090090219A/en
Application granted granted Critical
Publication of KR100954583B1 publication Critical patent/KR100954583B1/en

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 승수의 곱셈 결과를 생성하여 시간 및 공간 복잡도를 개선한다.

Figure R1020080015541

TECHNICAL FIELD The present invention relates to a polynomial basis-based finite field multiplication apparatus and method, wherein a second multiplier is excluded among terms of each term of the ternary term polynomial among terms of the first multiplier represented by the polynomial basis. A first multiplication and modular operation unit for generating a multiplier and a multiplication of the multiplier represented by the polynomial basis and the second multiplier by the ternary contract polynomial; A first register storing an intermediate operation result of the first multiplication and modular operation unit to assist the operation and storing a first operation result which is a final operation result of the first multiplication and modular operation unit; A second multiplication and modular operation unit configured to perform a coefficient multiplication and a modular operation of the term excluded from the first multiplier and the multiplicand by the ternary polynomial to generate a second operation result; And a second register configured to store an operation result of the second multiplication and modular operation unit, wherein the first multiplication and modular operation unit is stored in the second register in the first operation result when the first operation result is generated. A second operation result is added to generate a multiplication result of the multiplier and the first multiplier to improve time and space complexity.

Figure R1020080015541

Description

다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법{Serial apparatus and method for finite field multiplication using polynomial basis}Serial apparatus and method for finite field multiplication using polynomial basis

본 발명은 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법에 관한 것이며, 더 상세하게는 삼항 기약다항식을 기반으로 설계하여 시간 복잡도를 개선하기 위한 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법에 관한 것이다.The present invention relates to a polynomial basis based finite field multiplication apparatus and method, and more particularly, to a polynomial basis based finite field serial multiplication apparatus and method for improving time complexity by designing based on ternary weak polynomial. .

유한체(finite feild)란 유한한 개수의 원소를 포함하는 체(field)를 말한다. 유한체 상의 연산은 코딩이론(coding theory), 컴퓨터 대수(computer algebra), 공개키 암호(public key cryptosystem) 중 타원곡선 암호(elliptic curve cryptosystem) 또는 페어링 기반의 암호시스템(Pairing Based Cryptosystem)등 여러 분야에서 널리 쓰이고 있다. 유한체 상의 주요연산은 덧셈, 곱셈, 제곱, 및 역원 연산들이다. 유한체 연산은 주로 덧셈과 곱셈으로 구성되며, 그 외의 지수승 및 역원 연산 등은 덧셈과 곱셈의 반복 연산으로 구성된다. 그 중에서 곱셈 연산은 덧셈 연산에 비하여 시간-공간 자원을 많이 사용한다. 따라서 시스템 설계의 관점에서 효율적인 곱셈기 설계는 매우 중요하다.A finite feild is a field containing a finite number of elements. Finite field operations can be found in many fields, such as coding theory, computer algebra, elliptic curve cryptosystems in public key cryptosystems, or pairing based cryptosystems. It is widely used in. The main operations on the finite field are addition, multiplication, square, and inverse operations. Finite field operations mainly consist of addition and multiplication, and other exponential power and inverse operations consist of repetitive operations of addition and multiplication. Among them, the multiplication operation uses more time-space resources than the addition operation. Therefore, from the system design point of view, efficient multiplier design is very important.

현재까지 연구된 유한체 곱셈 연산기로는 크게 직렬 유한체 곱셈기, 병렬 유 한체 곱셈기, 하이브리드 유한체 곱셈기가 존재한다. 직렬 유한체 곱셈기는 마스트로비토(Maxtrovito)에 의하여 제안되어 유한체 곱셈기의 기본적인 구조로 자리 잡아 왔다. 병렬 유한체 곱셈기의 경우 고속 연산을 수행할 수 있으나 하드웨어 자원을 많이 필요로 하는 문제가 있다. 하이브리드(hybrid) 유한체 곱셈기는 1999년 파르(Paar)에 의하여 제안되어 직렬 유한체 곱셈기의 연산 수행속도 문제를 개선하고 병렬 유한체 곱셈기의 단점으로 볼 수 있는 하드웨어 자원 문제를 개선하였다. 그러나 하이브리드 곱셈기의 경우 사용 가능한 유한체로서 유한체의 차수가 합성수인 합성수 유한체를 사용하기 때문에 암호학적인 안전도가 떨어져 많은 응용 분야에 적용하기 힘들다. 따라서 직렬 유한체 곱셈기의 경우 앞서 언급한 바와 같이 연산 수행속도의 문제는 있지만, 병렬 구조 및 하이브리드 구조에 비하여 회로가 단순하고 적은 크기로 구현할 수 있기 때문에 제한된 크기와 소비전력을 요구하는 시스템 환경에서는 다른 곱셈기들에 비해 그 필요성이 크다.The finite field multipliers that have been studied so far include serial finite field multipliers, parallel finite multipliers, and hybrid finite field multipliers. A series finite field multiplier has been proposed by Maxtrovito and has become the basic structure of a finite field multiplier. In the case of a parallel finite multiplier, it is possible to perform a high speed operation, but there is a problem that requires a lot of hardware resources. The hybrid finite field multiplier was proposed by Parr in 1999 to improve the computational performance problem of the serial finite field multiplier and to solve the hardware resource problem that can be considered as a disadvantage of the parallel finite field multiplier. However, in the case of the hybrid multiplier, it is difficult to apply it to many application fields because of its low cryptographic security because it uses a synthetic finite field whose order of the finite field is a synthetic number. Therefore, in the case of the serial finite field multiplier, there is a problem of the operation speed as mentioned above, but since the circuit is simpler and smaller in size than the parallel structure and the hybrid structure, it is different from the system environment requiring limited size and power consumption. Compared to multipliers, the need is great.

한편, 유한체 곱셈기 설계에 있어서 원소 표현은 선택은 매우 중요하다. 주로 쓰는 원소 표현 방법으로는 정규 기저(normal basis) 표현, 다항식 기저(polynomial basis) 표현, 쌍대 기저(dual basis) 표현, 및 여분(redundant) 표현 등이 있다. 상기 각각의 기저들은 적용 환경에 따라 장단점을 가진다. 정규 기저 경우 제곱 연산을 사이클릭 쉬프트(Cyclic Shift) 연산으로 매우 쉽게 처리한다. 그러나 정규기저의 경우 다른 기저에 비하여 곱셈기 설계의 복잡도가 크다는 단점을 가진다. 따라서 공간 자원이 중요시되는 환경을 위해 다항식 기저를 사용하는 곱셈기들이 연구되고 있다. On the other hand, the choice of elemental representation is very important in finite field multiplier design. Commonly used element representation methods include normal basis expression, polynomial basis expression, dual basis expression, and redundant expression. Each of these bases has advantages and disadvantages depending on the application environment. The normal basis case makes square operations very easy with cyclic shifts. However, the regular basis has a disadvantage in that the complexity of the multiplier design is larger than that of the other basis. Therefore, multipliers using a polynomial basis have been studied for environments where spatial resources are important.

공개키 암호시스템에 있어서 유한체 연산의 고속화를 위하여 표수(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)을 주로 사용한다.To speed up the finite field operation in public key cryptosystems, a small number such as 2 or 3 is selected. A cryptographic application for a super-specific elliptic curve on a finite field with a recent number of 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.) and Galbraith (SD Galbraith, "Supersingular Curves in Cryptography", ASIACRYPT 2001 , LNCS 2248, pp. 495-513, Springer-Verlag, 2001.). The pairing operation-based cryptography system mainly uses an irreducible trinomial in consideration of the efficiency of the modular subtraction operation.

또한, 비트-직렬(bit-serial) 곱셈기의 출력은 병렬-출력(Parallel Output) 또는 직렬-출력(Serial Output)으로 나뉘며, 곱셈 방법은 계수를 처리하는 순서에 따라 MSE(Most Significant Element), LSE(Least Significant Element) 타입으로 구분된다. 각각의 타입은 적용 환경에 따라 장단점을 가지면서 시간-공간 복잡도에 영향을 미친다. LSE 타입의 경우 내부연산 모듈의 일부를 병렬화할 수 있다는 장점이 있는 반면, 레지스터의 증가와 제어부가 복잡해진다는 단점이 있다. 따라서 공간 자원이 중요시되는 환경에서는 LSE 타입의 곱셈기에 비해 MSE 타입의 곱셈기가 효율적으로 사용될 수 있다.In addition, the output of a bit-serial multiplier is divided into parallel output or serial output, and the multiplication method is based on the order of processing coefficients, MSE (Most Significant Element), LSE Classified as (Least Significant Element) type. Each type has advantages and disadvantages depending on the application environment and affects time-space complexity. The LSE type has the advantage of parallelizing some of the internal operation modules, but has the disadvantage of increasing registers and complicated control. Therefore, in an environment where space resources are important, the MSE type multiplier can be used more efficiently than the LSE type multiplier.

그러나 기존의 유한체 GF(pm)에 대한 MSE 타입의 곱셈기는 수행시간이 빠른 경우에는 추가적인 모듈러 연산부 및 저장 공간을 필요로 하는 문제점이 있으며, 특히 추가적인 모듈러 연산부 없이 간단하게 설계되는 경우에는 연산 수행 시간이 느리다는 문제점이 있다.However, the conventional MSE type multiplier for the finite field GF (p m ) has a problem of requiring additional modular operation unit and storage space when the execution time is fast, especially when it is simply designed without additional modular operation unit. The problem is that time is slow.

따라서, 본 발명이 이루고자 하는 첫 번째 기술적 과제는, 삼항 기약다항식을 사용하여 시간 복잡도를 개선하는 다항식 기저 기반의 MSE 타입 유한체 직렬 곱셈 장치를 제공하는 것이다.Accordingly, the first technical problem to be achieved by the present invention is to provide a polynomial basis-based MSE type finite field multiplication apparatus that improves time complexity by using a ternary weak polynomial.

본 발명이 이루고자 하는 두 번째 기술적 과제는, 삼항 기약다항식을 사용하여 시간 복잡도를 개선하는 다항식 기저 기반의 MSE 타입 유한체 직렬 곱셈 방법을 제공하는 것이다.The second technical problem to be achieved by the present invention is to provide a polynomial basis-based MSE type finite field multiplication method that improves the time complexity by using the ternary weak polynomial.

본 발명이 이루고자 하는 세 번째 기술적 과제는, 삼항 기약다항식을 사용하여 시간 및 공간 복잡도를 개선하는 다항식 기저 기반의 MSE 타입 유한체 직렬 곱셈 장치를 제공하는 것이다.The third technical problem to be achieved by the present invention is to provide a polynomial basis-based MSE type finite field multiplication apparatus that improves time and space complexity by using a ternary weak polynomial.

본 발명이 이루고자 하는 네 번째 기술적 과제는, 삼항 기약다항식을 사용하여 시간 및 공간 복잡도를 개선하는 다항식 기저 기반의 MSE 타입 유한체 직렬 곱셈 방법을 제공하는 것이다.A fourth technical problem to be achieved by the present invention is to provide a polynomial basis-based MSE type finite field serial multiplication method that improves temporal and spatial complexity by using a ternary weak polynomial.

상기와 같은 첫 번째 기술적 과제를 해결하기 위하여, 본 발명은 삼항 기약다항식(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 곱셈 및 모듈러 연산부를 포함하는 다항식 기저 기반의 유한체 직렬 곱셈 장치를 제공한다.In order to solve the first technical problem as described above, the present invention provides a polynomial basis-based finite field multiplication apparatus for performing multiplication of two elements on a finite body using a ternary weak polynomial (f (x)). Among the terms of the first term multiplier (b (x)) expressed as the basis, except for terms (b t x t ) of the same order (t) among the orders of each term of the ternary contract polynomial (f (x)). A multiplier b '(x) is generated, and the multiplier a (x) and the second multiplier b' (x) represented by the polynomial basis by the ternary term polynomial f (x) A first multiplication and modular operation unit performing coefficient multiplication and modular operations; A first register storing an intermediate operation result of the first multiplication and modular operation unit to assist the operation and storing a first operation result which is a final operation result of the first multiplication and modular operation unit; And a coefficient multiplication and modular operation of the term (b t x t ) and the multiplicand (a (x)) excluded from the first multiplier (b (x)) by the ternary polynomial polynomial f (x). Performing a second operation result and adding the first operation result to the second operation result to generate a multiplication result of the multiplier a (x) and the first multiplier b (x). A polynomial basis-based finite field multiplication apparatus including two multiplication and a modular operation is provided.

본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는, 상기 피승수(a(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 피승수(a(x))를 전달하는 제2 레지스터; 및 상기 제1 승수(b(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 제1 승수(b(x))를 전달하는 제3 레지스터를 더 포함한다.According to an embodiment of the present invention, the polynomial basis-based finite field multiplication apparatus stores the multiplier (a (x)) and transfers the multiplier (a (x)) to the first multiplication and modular operation unit. A second register; And a third register that stores the first multiplier b (x) and transfers the first multiplier b (x) to the first multiplication and modular operation unit.

본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는, 상기 제2 곱셈 및 모듈러 연산부의 연산 결과를 저장하여 상기 제1 승수 및 상기 피승수의 곱셈 결과를 출력하는 제4 레지스터를 더 포함한다.According to an embodiment of the present invention, the polynomial basis-based finite field serial multiplier, the fourth register for storing the result of the operation of the second multiplier and modular operation unit to output the multiplication result of the first multiplier and the multiplicand It further includes.

본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는, 유한체의 표수(characteristic)가 2 또는 3일 수 있다.According to an embodiment of the present invention, the polynomial basis-based finite field serial multiplier may have a characteristic number of finite bodies of 2 or 3.

본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치가 사용하는 상기 삼항 기약다항식(f(x))은 수학식 f(x) = xm+ftxt+f0 로 표현될 수 있다(단, ft,f0∈GF(3) 이고, t는 0<t<m/2인 정수).According to an embodiment of the present invention, the ternary term polynomial (f (x)) used by the polynomial basis-based finite field multiplier is expressed by the equation f (x) = x m + f t x t + f 0 (Where f t , f 0 ∈GF (3) and t is an integer of 0 <t <m / 2).

본 발명의 일 실시예에 따르면, 마이크로프로세서상에 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치를 시스템 온 칩(system on chip) 형태로 구현할 수 있다.According to an embodiment of the present invention, the polynomial basis-based finite field multiplication apparatus may be implemented on a microprocessor in the form of a 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 곱셈 및 모듈러 연산 단계를 포함하는 다항식 기저 기반의 유한체 직렬 곱셈 방법을 제공한다.In order to solve the second technical problem as described above, the present invention provides a polynomial basis-based finite field multiplication method for performing multiplication of two elements on a finite body using a ternary weak polynomial (f (x)). Among the terms of the first term multiplier (b (x)) expressed as the basis, except for the terms (b t x t ) of the same order (t) among the orders of the terms of the ternary term polynomial (f (x)). A multiplier b '(x) is generated, and the multiplier a (x) and the second multiplier b' (x) represented by the polynomial basis by the ternary term polynomial f (x) A first multiplication and modular operation step of performing coefficient multiplication and modular operation; Storing intermediate results of the first multiplication and modular operations in a first register to assist the operation, and storing first calculation results, which are the last calculation results of the first multiplication and modular operations, in the first register; And coefficient multiplication and modular operation of the term (b t x t ) and the multiplicand (a (x)) excluded from the first multiplier (b (x)) by the ternary polynomial polynomial f (x). Generating a second operation result and adding the first operation result to the second operation result to generate a multiplication result of the multiplier a (x) and the first multiplier b (x). A polynomial basis-based finite field multiplication method comprising a second multiplication and a modular operation step is provided.

본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 상기 제1 곱셈 및 모듈러 연산 단계 전에 외부로부터 입력되는 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 각각 제2 레지스터 및 제3 레지스터 저장하는 단계를 더 포함하고, 상기 제1 곱셈 및 모듈러 연산 단계는, 상기 제2 레지스터 및 상기 제3 레지스터에 저장된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 이용하여 상기 연산을 수행하는 단계이다.According to one embodiment of the present invention, the polynomial basis-based finite field multiplication method, the multiplier (a (x)) and the first multiplier (b () input from the outside before the first multiplication and modular operation step ( and x)) storing a second register and a third register, respectively, wherein the first multiplication and modular operation step comprises: the multiplicand a (x) stored in the second register and the third register; The operation is performed by using the first multiplier b (x).

본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은 상기 제2 곱셈 및 모듈러 연산 단계의 연산 결과를 제4 레지스터에 저장하여 상기 제1 승수 및 상기 피승수의 곱셈 결과를 출력하는 단계를 더 포함한다.According to an embodiment of the present invention, the polynomial basis-based finite field serial multiplication method stores the operation results of the second multiplication and modular operation steps in a fourth register to output a multiplication result of the first multiplier and the multiplicand. It further comprises the step.

본 발명의 일 실시예에 따르면, 마이크로프로세서로 하여금 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법을 수행하도록 구현할 수 있다.According to an embodiment of the present invention, a microprocessor may be implemented to perform the polynomial basis-based finite field multiplication method.

상기와 같은 세 번째 기술적 과제를 해결하기 위하여, 본 발명은 삼항 기약다항식(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))의 곱셈 결과를 생성하는 다항식 기저 기반의 유한체 직렬 곱셈 장치를 제공한다.In order to solve the third technical problem as described above, the present invention provides a polynomial basis-based finite field multiplication apparatus for performing multiplication of two elements on a finite body using a ternary weak polynomial (f (x)). Among the terms of the first term multiplier (b (x)) expressed as the basis, except for the terms (b t x t ) of the same order (t) among the orders of the terms of the ternary term polynomial (f (x)). A multiplier b '(x) is generated, and the multiplier a (x) and the second multiplier b' (x) represented by the polynomial basis by the ternary term polynomial f (x) A first multiplication and modular operation unit performing coefficient multiplication and modular operations; A first register storing an intermediate operation result of the first multiplication and modular operation unit to assist the operation and storing a first operation result which is a final operation result of the first multiplication and modular operation unit; Performs coefficient multiplication and modular operation of the term (b t x t ) and the multiplicand (a (x)) excluded from the first multiplier (b (x)) by the ternary term polynomial f (x) A second multiplication and modular operation unit configured to generate a second operation result; And a second register configured to store an operation result of the second multiplication and modular operation unit, wherein the first multiplication and modular operation unit is stored in the second register in the first operation result when the first operation result is generated. A polynomial basis-based finite field multiplication apparatus for generating a multiplication result of the multiplier a (x) and the first multiplier b (x) by adding a second operation result.

본 발명의 일 실시예에 따르면, 상기 제1 레지스터는, 상기 제1 곱셈 및 모듈러 연산부에 의해 생성된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))의 상기 곱셈 결과를 저장하여 출력한다.According to an embodiment of the present invention, the first register is configured to multiply the multiplication result of the multiplier a (x) and the first multiplier b (x) generated by the first multiplication and modular operation unit. Save and print.

본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는, 상기 피승수(a(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 피 승수(a(x))를 전달하는 제3 레지스터; 및 상기 제1 승수(b(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 제1 승수(b(x))를 전달하는 제4 레지스터를 더 포함한다.According to an embodiment of the present invention, the polynomial basis-based finite field multiplication apparatus stores the multiplier (a (x)) and stores the multiplier (a (x)) in the first multiplication and modular operation unit. A third register to transfer; And a fourth register configured to store the first multiplier b (x) and transfer the first multiplier b (x) to the first multiplication and modular operation unit.

본 발명의 일 실시예에 따르면, 마이크로프로세서상에 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치를 시스템 온 칩 형태로 구현할 수 있다.According to an embodiment of the present invention, the polynomial basis-based finite field multiplication apparatus may be implemented in a system-on-chip form on a microprocessor.

상기와 같은 네 번째 기술적 과제를 해결하기 위하여, 본 발명은 삼항 기약다항식(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))의 곱셈 결과를 생성하는 곱셈 결과 생성 단계를 포함하는 다항식 기저 기반의 유한체 직렬 곱셈 방법을 제공한다.In order to solve the fourth technical problem as described above, the present invention provides a polynomial basis-based finite field serial multiplication method for performing multiplication of two elements on a finite body using a ternary weak polynomial (f (x)). Among the terms of the first term multiplier (b (x)) expressed as the basis, except for the terms (b t x t ) of the same order (t) among the orders of the terms of the ternary term polynomial (f (x)). A multiplier b '(x) is generated, and the multiplier a (x) and the second multiplier b' (x) represented by the polynomial basis by the ternary term polynomial f (x) A first multiplication and modular operation step of performing coefficient multiplication and modular operation; Performs coefficient multiplication and modular operation of the term (b t x t ) and the multiplicand (a (x)) excluded from the first multiplier (b (x)) by the ternary term polynomial f (x) A second multiplication and modular operation step of generating a second operation result; Assisting the operation by storing an intermediate operation result of the first multiplication and modular operation step in a first register until a first operation result, which is a final operation result of the first multiplication and modular operation step, is generated. Storing a second operation result of the multiplication and modular operation steps in a second register; And when the first operation result is generated, adds the second operation result stored in the second register to the first operation result to determine the multiplier a (x) and the first multiplier b (x). A polynomial basis-based finite field multiplication method including a multiplication result generation step of generating a multiplication result is provided.

본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 상기 곱셈 결과 생성 단계에서 생성된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))의 상기 곱셈 결과를 상기 제1 레지스터에 저장하여 출력한다.According to one embodiment of the present invention, the polynomial basis-based finite field multiplication method, the multiplication of the multiplier (a (x)) and the first multiplier (b (x)) generated in the multiplication result generation step The multiplication result is stored in the first register and output.

본 발명의 일 실시예에 따르면, 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 상기 제1 곱셈 및 모듈러 연산 단계 전에 외부로부터 입력되는 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 각각 제3 레지스터 및 제4 레지스터 저장하는 단계를 더 포함하고, 상기 제1 곱셈 및 모듈러 연산 단계는, 상기 제3 레지스터 및 상기 제4 레지스터에 저장된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 이용하여 상기 연산을 수행하는 단계이다.According to one embodiment of the present invention, the polynomial basis-based finite field multiplication method, the multiplier (a (x)) and the first multiplier (b () input from the outside before the first multiplication and modular operation step ( and x)) storing a third register and a fourth register, respectively, wherein the first multiplication and modular operation steps include: the multiplicand a (x) stored in the third register and the fourth register; The operation is performed by using the first multiplier b (x).

본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법은, 기존의 직렬 곱셈기에 비해 시간 복잡도를 개선하고, 나이가 공간 복잡도를 개선하는 이점을 제공한다.The polynomial basis-based finite field multiplication apparatus and method according to the present invention provides the advantages of improving time complexity and improving older spatial complexity over conventional serial multipliers.

본 발명에 관한 구체적인 내용의 설명에 앞서 이해의 편의를 위해 본 발명이 해결하고자 하는 기술적 과제의 개요를 우선 제시한다.Prior to the description of the specific contents of the present invention, for the sake of understanding, an outline of the technical problem to be solved by the present invention is first presented.

본 발명은 MSE 타입의 새로운 비트 직렬 곱셈 장치 및 방법을 제안한다. 본 발명에 따른 곱셈 장치 및 방법은 삼항 기약다항식을 기반으로 설계되며, 삼항 기약다항식을 사용하는 페어링 기반의 암호시스템의 GF(3m)을 일례로 하여 설계한다.The present invention proposes a new bit serial multiplication apparatus and method of the MSE type. The multiplication apparatus and method according to the present invention are designed based on the ternary contracted polynomial, and are designed based on the GF (3 m ) of a pairing based cryptographic system using the ternary contracted polynomial.

우선, f(x)를 GF(3) 위에서 차수가 m인 삼항 기약다항식이라 하고 f(x)를 하기 수학식 1과 같이 정의한다.First, f (x) is called a ternary contracted polynomial of order m above GF (3), and f (x) is defined as in Equation 1 below.

f(x) = xm+ftxt+f0 , (단, ft,f0∈GF(3), t< m/2)f (x) = x m + f t x t + f 0 , Where f t , f 0 ∈GF (3), t <m / 2)

그러면 유한체 GF(3m)는 GF(3)[X]/(f(x))와 동형이기 때문에 GF(3m)의 원소 a(x)는 다항식 기저를 이용하여 하기 수학식 2와 같이 표현할 수 있다.Then, since the finite field GF (3 m ) is homogeneous with GF (3) [X] / (f (x)), the element a (x) of GF (3 m ) is expressed by Equation 2 using the polynomial basis. I can express it.

a(x) = am -1xm -1+…+a1x+a0 a (x) = a m -1 x m -1 +... + a 1 x + a 0

= (am -1…a1a0) , (단, ai∈GF(3))= (a m -1 … a 1 a 0 ), (where a i ∈GF (3))

ai는 GF(3)의 원소이기 때문에, ai를 표현하기 위해서는 2비트가 필요하게 된다. [PS03]에서는 GF(3)의 원소를 표현하기 위하여 하기 수학식 3과 같은 표기법을 사용한다.Since a i is an element of GF (3), two bits are required to represent a i . In [PS03], a notation such as Equation 3 below is used to express an element of GF (3).

ai = (ai H, ai L ) , 여기서 ai H= ai div 2 이고 ai L=ai mod2a i = (a i H , a i L ) , where a i H = a i div 2 and a i L = a i mod2

상기 표기법을 사용하여 GF(3)의 원소 ai 및 bi의 덧셈 ci=ai+bi는 3 XOR 게이트와 4 OR 게이트를 이용하여 다음과 같이 계산된다.Using the above notation, the addition c i = a i + b i of elements a i and b i of GF (3) is calculated as follows using 3 XOR gates and 4 OR gates.

ci H=(ai L∨bi L)

Figure 112008012760390-pat00001
t , ci L=(ai H∨bi H)
Figure 112008012760390-pat00002
t 그리고c i H = (a i L ∨b i L )
Figure 112008012760390-pat00001
t, c i L = (a i H ∨b i H )
Figure 112008012760390-pat00002
t and

t=(ai L∨bi H)

Figure 112008012760390-pat00003
(ai H∨bi L) 이다.t = (a i L ∨b i H )
Figure 112008012760390-pat00003
(a i H ∨ b i L ).

특히, 2(ai H, ai L) = -(ai H, ai L) = (ai L, ai H)이므로 뺄셈과 2에 의한 곱셈은 덧셈을 이용하여 쉽게 계산할 수 있다.Specifically, 2 (a i H , a i L ) =-(a i H , a i L ) = (a i L , a i H ), so subtraction and multiplication by 2 can be easily calculated using addition.

이하, 본 발명에 따른 곱셈 장치와의 비교를 위해, 기존의 MSE(Most Significant Element) 타입의 비트-직렬 곱셈기를 개괄적으로 설명한다. 유한체 곱셈은 곱셈 연산, 즉 r'(x)=a(x)·b(x)와 모듈러 연산, 즉 r(x)= r'(x) mod f(x) 으로 구분된다. 따라서, 기존의 MSE 타입의 비트-직렬 곱셈기는 곱셈과 모듈러 연산을 독립으로 수행하는 기존의 제1 타입 곱셈기와, 곱셈과 모듈러 연산을 병렬 수행하는 인터리브 곱셈기(interleaved multiplier)인 기존의 제2 타입 곱셈기로 구분될 수 있다. 상기 기존의 제1 타입 곱셈기가 곱셈과 모듈러 연산을 독립 수행하는 제1 알고리듬은 다음과 같다.Hereinafter, a conventional bit-serial multiplier of the Most Significant Element (MSE) type will be described for comparison with a multiplication apparatus according to the present invention. Finite field multiplication is divided into multiplication operations, that is, r '(x) = a (x) · b (x) and modular operations, that is, r (x) = r' (x) mod f (x). Accordingly, a conventional MSE type bit-serial multiplier is a conventional first type multiplier that performs multiplication and modular operation independently, and an existing second type multiplier which is an interleaved multiplier that performs multiplication and modular operation in parallel. It can be divided into. A first algorithm in which the existing first type multiplier independently performs multiplication and modular operation is as follows.

제1 First 알고리듬Algorithm

Figure 112008012760390-pat00004
Figure 112008012760390-pat00004

상기 기존의 제2 타입 곱셈기가 곱셈과 모듈러 연산을 병렬 수행하는 제2 알고리듬은 다음과 같다.A second algorithm in which the existing second type multiplier performs multiplication and modular operation in parallel is as follows.

제2 2nd 알고리듬Algorithm

Figure 112008012760390-pat00005
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)를 계산할 수 있다.In the case of the first algorithm, a coefficient multiplication and an r '(x) addition operation are performed. However, the coefficient multiplication of GF (3) is a multiplication of 1 or -1, and the loop repeats the addition or subtraction operation m times. The modular operation r (x) = r '(x) mod f (x) consists of three addition or subtraction operations if t, the middle order t, of the terms of each term in the ternary polynomial satisfies t <m / 2. Therefore, r (x) can be calculated by adding or subtracting m + 3 times to calculate r (x).

상기 제2 알고리듬의 경우 하기 수학식 4를 반복적으로 수행하며 r(x)는 항상 m개의 항을 가진다. 따라서 2m번의 덧셈 또는 뺄셈으로 r(x)를 계산할 수 있다. In the case of the second algorithm, Equation 4 is repeatedly performed, and r (x) always has m terms. Therefore, r (x) can be calculated by 2m addition or subtraction.

r(x) = ai·b(x) + r(x)·x mod f(x)r (x) = a ib (x) + r (x) x mod f (x)

= ai·b(x) + r(x)·x - rm -1·f(x)= a ib (x) + r (x) x-r m -1f (x)

상기 기존의 제1 타입 곱셈기의 경우 비교적 빠른 연산 속도를 가지나, r(x)의 2배나 되는 r'(x)의 저장 공간 및 추가 모듈러 연산부를 필요로 한다는 문제점이 있다. 상기 기존의 제2 타입 곱셈기의 경우 추가 모듈러 연산 모듈을 필요로 하지 않지만 연산속도가 기존의 제1 타입 곱셈기 보다도 느리다는 문제점이 있다.The conventional first type multiplier has a relatively fast operation speed, but has a problem of requiring an additional modular operation unit and a storage space of r '(x) that is twice as large as r (x). The conventional second type multiplier does not require an additional modular operation module, but has a problem that the operation speed is slower than that of the conventional first type multiplier.

이하, 본 발명의 기술적 과제의 해결 방안을 명확화하기 위해 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하되 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여할 수 있으며 당해 도면에 대한 설명시 필요한 경우 다른 도 면의 구성요소를 인용할 수 있음을 미리 밝혀둔다. 그리고 본 발명을 설명함에 있어서 관련된 공지기술 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불명료하게 할 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자 등의 의도 또는 관례 등에 따라 달라질 수 있을 것이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings to clarify the solutions of the technical problems of the present invention. The same reference numerals may be given even in the drawings, and it will be appreciated that components of other drawings may be cited when necessary in describing the drawings. In the following description of the present invention, detailed descriptions of related well-known techniques or configurations will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to intention or custom of a user, an operator, or the like. Therefore, the definition should be made based on the contents throughout the specification.

GF(pm)에서 삼항 기약다항식 f(x)=xm+ftxt+f0 ,(단, ft,f0∈GF(3), t< m/2)을 사용한 다항식 기저 기반의 유한체 곱셈을 기존의 MSE 타입 비트-직렬 곱셈기 보다 고속으로 수행하고, 나아가 추가적으로 증가하는 연산부가 최소가 되도록 설계하기 위해 본 발명은 다음과 같은 의미 있는 곱셈 연산의 변환을 도입한다.Ternary polynomial in GF (p m ) f (x) = x m + f t x t + f 0 Polynomial basis-based finite field multiplication using, (f t , f 0 ∈GF (3), t <m / 2) is faster than conventional MSE type bit-serial multiplier and further increases In order to design the addition minimum, the present invention introduces a transformation of the following meaningful multiplication operation.

다항식 기저로 표현되는 유한체 상의 두 원소인 피승수 및 승수를 각각 a(x) 및 b(x)라 하면 변환된 승수 b'(x)를 하기 수학식 5와 같이 정의할 수 있다.A multiplier and a multiplier, which are two elements on a finite body expressed as a polynomial basis, may be defined as a (x) and b (x), respectively, as shown in Equation 5 below.

b'(x)=b(x)-bt·xt b '(x) = b (x) -b tx t

상기 수학식 5 및 모듈러 연산의 성질에 의해, a(x) 및 b(x)의 곱셈은 하기 수학식 6과 같이 유도될 수 있다.By the property of Equation 5 and the modular operation, the multiplication of a (x) and b (x) can be derived as shown in Equation 6 below.

a(x)*b(x) mod f(x)a (x) * b (x) mod f (x)

= a(x)*[b'(x) + bt·xt]mod f(x)= A (x) * [b '(x) + b t · x t] mod f (x)

= [a(x)*b'(x) mod f(x)] + [bt·xt*a(x) mod f(x)]= [a (x) * b '(x) mod f (x)] + [b txx t * a (x) mod f (x)]

삼항 기약다항식 환경을 고려하면 상기 수학식 6의 결과의 첫 번째 항인 [a(x)*b'(x) mod f(x)]의 연산은 비트-직렬 곱셈기에서 하기 수학식 7에 나타난 연산을 반복 수행하게 된다.Considering the ternary-term polynomial environment, the operation of [a (x) * b '(x) mod f (x)], which is the first term of the result of Equation 6, is performed by the bit-serial multiplier. Will be repeated.

ai·b'(x)+r'(x)·x mod f(x)a ib '(x) + r' (x) x mod f (x)

= ai·b'(x)+r'(x)·x - r'm -1·f(x)= a ib '(x) + r' (x) x-r ' m -1f (x)

= ai·b'(x)+r'(x)·x - r'm -1·{xm+ftxt+f0}= a ib '(x) + r' (x) x-r ' m -1 (x m + f t x t + f 0 }

상기 수학식 7의 결과 중에서 첫 번째 항인 ai·b'(x)는 t항이 없고, 두 번째 항인 r'(x)·x에는 상수 항이 없으므로 상기 수학식 7은 한 번의 덧셈(뺄셈)으로 연산이 가능하다. 따라서, 상기 기존의 제2 알고리듬에 비하여 고속 연산을 수행할 수 있게 되고, 또한 모듈러 연산을 수행하므로 상기 기존의 제1 알고리듬에 비하여 적은 저장 공간을 사용할 수 있게 된다.In the result of Equation 7, the first term a i b '(x) has no t term, and the second term r' (x) · x has no constant term, so Equation 7 is calculated by one addition (subtraction). This is possible. Therefore, it is possible to perform a faster operation than the existing second algorithm, and also to perform a modular operation, it is possible to use less storage space than the existing first algorithm.

도 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)]의 결과를 얻게 된다.Figure 1 shows the operation principle of the second Anti - Human the result of Equation 6 [b t · x t * a (x) mod f (x)] is diagrammatically indicated by. The operation result of b t * a (x) is called u1. x t in u1 When multiplied, t shifts occur in registers. In the result of u1 * x t , the portion from the mt-first term to the order-order term is u2, and the portion from the m + t-first term to the order-mt term is u3. The result of [b t x x t * a (x) mod f (x)] is obtained by performing a modular operation on u3 by) = x m + f t x t + f 0 .

결론적으로, 상기 변환 승수 b'(x)를 이용하는 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법에는 하기 제3 알고리듬이 사용된다.In conclusion, the following third algorithm is used in the polynomial basis-based finite field multiplication apparatus and method using the transform multiplier b '(x).

제3 The third 알고리듬Algorithm

Figure 112008012760390-pat00006
Figure 112008012760390-pat00006

도 2에는 상기 제3 알고리듬을 구현하기 위한 본 발명에 따른 제1 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례가 개략적인 블록도로 도시되어 있으며, 도 3 및 도 4에는 보다 세부적인 블록도로 도시되어 있다. 또한, 도 5에는 본 발명에 따른 제1 타입의 다항식 기저 기반의 유한체 직렬 곱셈 방법의 일례가 흐름도로 도시되어 있다.FIG. 2 is a schematic block diagram showing an example of a first type polynomial basis-based finite field multiplication apparatus according to the present invention for implementing the third algorithm. FIG. 3 and FIG. 4 are detailed block diagrams. Is shown. In addition, Fig. 5 shows a flowchart of an example of the first type of polynomial basis-based finite field serial multiplication method according to the present invention.

도 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)]의 연산 결과를 저장한다.2 to 5, first register 310 and second register 320 each store a multiplier a (x) and a first multiplier b (x), which are two elements each represented by a polynomial basis ( S500). The first register 310 and the second register 320 output the coefficients of the two elements one by one to the first multiplication and modular operation unit 200. Then, the first multiplication and modular operation unit 200 and the middle order t of the order of each term of the ternary polynomial f (x) = x m + f t x t + f 0 among the terms of the first multiplier b (x) A second multiplier b '(x) is generated except for terms b t x t of the same order (S510), and the coefficient multiplication and modular operation of the second multiplier and the multiplicand are performed using the ternary weak polynomial f (x). Perform (S520). The third register 210 stores an intermediate operation result of the first multiplication and modular operation unit 200 to assist the operation, and a final operation result r '(x) of the first multiplication and modular operation unit 200, that is, the The operation result of [a (x) * b '(x) mod f (x)], which is the first term in Equation 6, is stored.

도 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)에 저장하게 된다.Referring to FIG. 3, the first multiplication and modular operation unit 200 includes multipliers 330 and 340 and an adder 350, and the multipliers 330 and 340 are modular calculation results. In consideration of the multiplication of the coefficient a i of the multiplicand a (x) and the coefficients of the second multiplier b '(x) is performed. Since the second multiplier b '(x) has no t-order term, the multiplier 330 instead uses the coefficient f t of the t- order term, which is the intermediate order term of the ternary polynomial f (x), and the first multiplication and modular operation unit ( Multiplication is performed with r ' m -1 , which is the result of an intermediate operation of 200). The multiplier 340, the constant term of f 0 and the r 'm of the ternary irreducible polynomial f (x) - is made of multiplication and one. In the addition unit 350, in addition to the intermediate calculation result of the first multiplication and modular operation unit 200 corresponding to the operation result and the operation result of the multiplier (330, 340) as a result of a i · b '(x) + r' (x) x mod f (x) is stored in the third register as a result of the next intermediate operation of the first multiplication and modular operation unit 200. The multiplier 330 and the adder 350 perform coefficient multiplication and addition operation between the result of the coefficient multiplication and the intermediate operation result from i = m-1 to i = 0, and the final operation result r '(x ) = [a (x) * b '(x) mod f (x)] is stored in the third register 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).The second multiplication and modular operation unit 220 performs a coefficient multiplication and modular operation of the term b t x t and the multiplicand a (x) excluded from the first multiplier b (x) by the ternary polynomial f (x). To generate a second operation result, that is, the operation result of [b t · x t * a (x) mod f (x)], which is the second term of Equation 6, and store the result in the third register 210. The operation result of the first multiplication and modular operation unit 200 is added to the second operation result to generate a multiplication result of two elements a (x) and b (x) on the finite body (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)]가 생성된다.Referring to FIG. 4, the second multiplier and modular operator 220 includes multipliers 410, 420, and 430 and adders 440 and 450, and the multiplier 410 includes b. Multiply the coefficients of t x t with the coefficients of a (x). The multiplier 420 and the multiplier 430 respectively consider f t and f 0 in consideration of the modular operation result, and calculate the result of the operation of the multiplier 410, that is, the result of the operation of b t * a (x). 1 (x) and from the v 1, operation 2 (x) and the multiplication result of the mt order term to m-1 order term. Accordingly, v 2 (x), which is an operation result of the multiplier 420, corresponds to the operation result of f t · u 3 of FIG. 1, and v 3 (x), which is an operation result of the multiplier 430, is illustrated in FIG. 1. Corresponds to the operation result of f 0 u3. The adder 440 of the multiplier 410 is a result of the m-1 th order to the t th term among r '(x) which is the final operation result of the first multiplication and modular operation unit 200. Among the calculation results v 1 (x), v 1 , 2 (x) , which is a result of the mt-1 to 0th order terms, is added for each corresponding term, and the final value of the first multiplication and modular operation unit 200 is also added. Among the calculation results r '(x), v 2 (x), which is the calculation result of the multiplication unit 420, is added to each of the corresponding terms to the results from the t-1th term to the 0th order term. That is, the result of the adder 440 corresponds to the operation result of r '(x) + {u2 + f t u3}. Accordingly, the adder 450 is an operation unit that adds an operation result of v 3 (x), that is, f 0 · u 3 to the result of the adder 440. Eventually, the final result is r '(x) + {u2 + f t u3 + f 0 u3}. As shown schematically in FIG. 1, {u2 + f t u3 + f 0 u3} corresponds to the operation result of [b t x x t * a (x) mod f (x)]. As a result of the multiplication of the elements a (x) and b (x), r (x) = r '(x) + [b t * x t * a (x) mod f (x)] is generated.

상기 제2 곱셈 및 모듈러 연산부(220)의 연산 결과는 레지스터의 일종인 어큐뮬레이터(accumulator; 460)에 저장되고 출력된다.The operation result of the second multiplication and modular operation unit 220 is stored and output in an accumulator 460 which is a kind of register.

본 발명에 따른 제1 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치에서 레지스터를 이용하여 상기 제2 곱셈 및 모듈러 연산부(220)를 상기 제1 곱셈 및 모듈러 연산부(200)에 직렬로 연결한 제2 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치를 구성하면 시간 복잡도 및 공간 복잡도를 더욱 개선할 수 있다.In the first type polynomial basis-based finite field serial multiplier of the present invention, a second multiplier and modular operator 220 is connected in series to the first multiplier and modular operator 200 using a register. The construction of a type polynomial basis-based finite field multiplier can further improve time and space complexity.

일 실시예에 있어서, 본 발명에 따른 제1 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치를 마이크로프로세서상에 시스템 온 칩(system on chip) 형태로 구현하여 상기 마이크로프로세서로 하여금 상기와 같은 다항식 기저 기반의 유한체 직렬 곱셈 방법을 수행하도록 할 수 있다. 본 발명을 마이크로프로세서로 구현하면 각종 시스템의 크기를 줄일 수 있고, 조립 과정을 단순화시킬 수 있으며, 제조 비용을 절감할 수 있는 등의 이점이 있다.In one embodiment, the first type of polynomial basis-based finite field multiplier according to the present invention is implemented on a microprocessor in the form of a system on chip, which causes the microprocessor to perform such a polynomial basis. Based finite field multiplication method. If the present invention is implemented in a microprocessor, the size of various systems can be reduced, the assembly process can be simplified, and manufacturing costs can be reduced.

도 6에는 본 발명에 따른 제2 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례가 개략적인 블록도로 도시되어 있으며, 도 7에는 보다 세부적인 블록도로 도시되어 있다. 또한, 도 8에는 본 발명의 따른 제2 타입의 다항식 기저 기반의 유한체 직렬 곱셈 방법의 일례가 흐름도로 도시되어 있다.FIG. 6 is a schematic block diagram showing an example of a second type of polynomial basis-based finite field multiplication apparatus according to the present invention, and FIG. 7 is a more detailed block diagram. Also shown in FIG. 8 is an example of a second type polynomial basis-based finite field serial multiplication method according to the present invention.

도 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)]의 연산 결과를 저장한다.6 to 8, first, the first register 710 and the second register 720 each store a multiplier a (x) and a first multiplier b (x), which are two elements represented by a polynomial basis, respectively ( S800). The first register 710 and the second register 720 output the coefficients of the two elements one by one to the first multiplication and modular operation unit 600. Then, the first multiplication and modular operation unit 600 and the intermediate degree t of the order of each term of the ternary polynomial f (x) = x m + f t x t + f 0 among the terms of the first multiplier b (x) and A second multiplier b '(x) is generated except for terms b t x t of the same order (S810), and the coefficient multiplication and modular operation of the second multiplier and the multiplicand are performed using the ternary polynomial f (x). Perform (S820). Accumulator 610 is a kind of register to store the intermediate operation result of the first multiplication and modular operation unit 600 to assist the operation and the final operation result of the first multiplication and modular operation unit 600, that is, Store the result of the first term [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 알고리듬과 같이 표현할 수 있다.The second multiplication and modular operation unit 620 performs a coefficient multiplication and modular operation of the term b t x t and the multiplicand a (x) excluded from the first multiplier b (x) by the ternary term polynomial f (x). To generate a second operation result, that is, the operation result of [b t · x t * a (x) mod f (x)], which is the second term of Equation 6, and store the result in the register 630 (S830). ). The operation of the second multiplication and modular operation unit 620 may be expressed as the following fourth algorithm.

제4 4th 알고리듬Algorithm

Figure 112008012760390-pat00007
Figure 112008012760390-pat00007

상기 제4 알고리듬에서 Pi*bt는 도 1의 u2에 해당하며, Qi*bt*ft 및 Qi*bt*f0는 각각 도 1의 ft*u3 및 f0*u3에 해당한다.In the fourth algorithm, P i * b t corresponds to u2 of FIG. 1, and Q i * b t * f t And Q i * b t * f 0 correspond to f t * u 3 and f 0 * u 3 of FIG. 1, respectively.

도 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)에 저장되고 출력된다.Referring to FIG. 7, the operations of the multiplication unit MUL and the adder ADD of the first multiplication and modular operation unit 600 are included in the first type multiplication apparatus according to the present invention. It is basically the same as the operation of each multiplier and adder of the first multiplier and modular operator 200. However, the first multiplication and modular operation unit 600 includes a multiplexer 730 controlled by a control signal crl, and the multiplexer 730 is configured such that i = m by the first multiplication and modular operation unit 600. During the multiplication operation by the multiplier MUL and the add operation by the adder ADD from -1 to i = 0, only u (x), which is a result of the operation of the multiplier MUL, is determined. Pass it to the adder (ADD). In addition, when all the calculation results of [a (x) * b '(x) mod f (x)] are stored in the accumulator 610, the multiplexer 730 may set u (x) according to the control signal crl. Instead, from the register 630, the operation result of the second multiplication and modular operation unit 620, that is, the operation result of [b t x x t * a (x) mod f (x)], is added to the adder ADD. To pass. The adder ADD then computes the result of the operation [a (x) * b '(x) mod f (x)] and the operation of the [b t · x t * a (x) mod f (x)]. The result is added to generate a multiplication result of the multiplicand a (x) and the first multiplier b (x), which are two elements on the finite body (S840). The generated multiplication result is stored in the accumulator 610 and output again.

상기 제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)]의 연산 결과를 저장한다.The operation of the second multiplication and modular operation unit 620 will be described in detail. The register 740 stores coefficients from the first order term to the zeroth order term among the coefficients of the multiplier a (x). The multiplication unit 760 is a coefficient from the mt-1th term to the 0th order term stored in the register 740 and the coefficient of b t x t A multiplication operation with b t is performed to output an operation result corresponding to u2 of FIG. 1. The rotator 750 stores coefficients from the m-1th term to the mtth term among the coefficients of the multiplicand a (x). The multiplier 770 performs a multiplication operation with the coefficient stored in the rotator 750 and b t to generate an operation result corresponding to u3 of FIG. 1, and multiplies the operation result corresponding to u3 with f t . To output the result of operation corresponding to f t · u 3 in FIG. 1. In addition, the multiplier 770 multiplies the operation result corresponding to u3 and f 0 based on the control signal crl and outputs the operation result corresponding to f 0 · u 3 of FIG. 1. The adder 780 adds an operation result of the multiplier 760 and an operation result of the multiplier 770 to add the operation result of {u2 + f t · u3 + f 0 · u3} to the register 630, That is, the operation result of [b t x t * a (x) mod f (x)] is stored.

일 실시예에 따르면, 본 발명에 따른 제2 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치를 마이크로프로세서상에 시스템 온 칩(system on chip) 형태로 구현하여, 상기 마이크로프로세서로 하여금 상기와 같은 다항식 기저 기반의 유한체 직렬 곱셈 방법을 수행하도록 할 수 있다. 본 발명을 마이크로프로세서로 구현하면 각종 시스템의 크기를 줄일 수 있고, 조립 과정을 단순화시킬 수 있으며, 제조 비용을 절감할 수 있는 등의 이점이 있다.According to an embodiment, a second type of polynomial base-based finite field multiplication apparatus according to the present invention is implemented in a system on chip form on a microprocessor, thereby allowing the microprocessor to perform the above polynomial. A base-based finite field multiplication method can be performed. If the present invention is implemented in a microprocessor, the size of various systems can be reduced, the assembly process can be simplified, and manufacturing costs can be reduced.

하기 표 1에는 기존의 제1 타입 및 제2 타입 곱셈기와 본 발명에 따른 제1 타입 및 제2 타입의 다항식 기저 기반의 유한체 직렬 곱셈 장치의 시간 복잡도를 비교한 결과가 나타나 있다.Table 1 below shows the results of comparing the time complexity of the conventional first type and second type multipliers and the first and second type polynomial basis-based finite field multipliers.

Figure 112008012760390-pat00008
Figure 112008012760390-pat00008

상기 표 1에 나타난 바와 같이, 본 발명에 따른 곱셈 장치 및 방법은 기존의 MSE 타입 곱셈기에 비하여 시간지연을 감소시키며, 확장체의 표수(characteristic)와 관계없이 적용 가능하다. 특히, 확장체의 표수가 작은 타원곡선 암호 시스템, 페어링 기반의 암호시스템에서 고속 연산이 가능하며, 표수가 2 또는 3인 경우 기존의 곱셈기 보다 대략 2배 빠르게 동작한다는 이점을 제공한다.As shown in Table 1, the multiplication apparatus and method according to the present invention reduces the time delay compared to the conventional MSE type multiplier, and can be applied regardless of the characteristic of the extension. In particular, high-speed computation is possible in elliptic-curve cryptographic systems and pairing-based cryptosystems with small numbers of extensions, and when the number of tables is 2 or 3, it operates about twice as fast as a conventional multiplier.

하기 표 2에는 곱셈과 모듈러 연산을 독립 수행하는 기존의 제1 타입 곱셈기와 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치의 공간 복잡도를 비교한 결과가 나타나 있다.Table 2 below shows a result of comparing the spatial complexity of the conventional first type multiplier that independently performs multiplication and modular operation, and the polynomial basis-based finite field serial multiplier according to the present invention.

Figure 112008012760390-pat00009
Figure 112008012760390-pat00009

상기 표 2에 나타난 바와 같이, 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치는 기존의 제1 타입 곱셈기에 비해 공간 복잡도까지 개선한 이점을 제공한다.As shown in Table 2, the polynomial basis-based finite field multiplication apparatus according to the present invention provides an advantage of improved spatial complexity compared to the conventional first type multiplier.

이제까지 본 발명에 대하여 그 바람직한 실시예를 중심으로 살펴보았다. 그러나 당업자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 본 발명이 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다.그러므로, 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다.The present invention has been described above with reference to preferred embodiments thereof. However, it will be apparent to those skilled in the art that the present invention may be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation.

본 발명의 범위는 상술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The scope of the present invention is shown in the appended claims rather than the foregoing description, and all differences within the equivalent scope will be construed as being included in the present invention.

도 1은 본 발명의 곱셈 연산 원리를 도식적으로 나타낸 도면.1 is a diagram schematically illustrating the principle of multiplication operations of the present invention.

도 2는 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례에 관한 개략적인 블록도.2 is a schematic block diagram of an example of a polynomial basis-based finite field multiplication apparatus in accordance with the present invention.

도 3 및 도 4는 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례에 관한 세부적인 블록도.3 and 4 are detailed block diagrams of an example of a polynomial basis-based finite field multiplication apparatus in accordance with the present invention.

도 5는 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 방법의 일례에 관한 흐름도.5 is a flow diagram of one example of a polynomial basis-based finite field multiplication method in accordance with the present invention.

도 6은 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례에 관한 개략적은 블록도.6 is a schematic block diagram of an example of a polynomial basis-based finite field multiplication apparatus in accordance with the present invention.

도 7은 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치의 일례에 관한 세부적인 블록도.7 is a detailed block diagram of an example of a polynomial basis-based finite field multiplication apparatus in accordance with the present invention.

도 8은 본 발명에 따른 다항식 기저 기반의 유한체 직렬 곱셈 방법의 일례에 관한 흐름도.8 is a flow diagram of one example of a polynomial basis-based finite field multiplication method in accordance with the present invention.

Claims (12)

삼항 기약다항식(f(x))을 사용하여 유한체 상의 두 원소의 곱셈을 수행하는 다항식 기저 기반의 유한체 직렬 곱셈 장치에 있어서,In a polynomial basis-based finite field serial multiplier that uses the ternary weak polynomial (f (x)) to multiply two elements on a finite field, 다항식 기저로 표현되는 제1 승수(b(x))의 항 중에서 삼항 기약다항식(f(x))의 각 항의 차수 중 중간 차수(t)와 동일한 차수의 항(btxt)을 제외하여 제2 승수(b'(x))를 생성하고, 상기 삼항 기약다항식(f(x))에 의해 다항식 기저로 표현되는 피승수(a(x))와 상기 제2 승수(b'(x))의 계수 곱셈 및 모듈러 연산을 수행하는 제1 곱셈 및 모듈러 연산부;Except for terms of the first order multiplier b (x) expressed as a polynomial basis, the terms of the order (b t x t ) equal to the intermediate order t of the terms of each term of the ternary term polynomial f (x) A multiplier a (x) and a second multiplier b '(x) generated by generating a second multiplier b' (x) and expressed as a polynomial basis by the ternary-term polynomial f (x). A first multiplication and modular operation unit for performing coefficient multiplication and modular operation of the first and second operations; 상기 제1 곱셈 및 모듈러 연산부의 중간 연산 결과를 저장하여 연산을 보조하고 상기 제1 곱셈 및 모듈러 연산부의 최종 연산 결과인 제1 연산 결과를 저장하는 제1 레지스터;A first register storing an intermediate operation result of the first multiplication and modular operation unit to assist the operation and storing a first operation result which is a final operation result of the first multiplication and modular operation unit; 상기 삼항 기약다항식(f(x))에 의해 상기 제1 승수(b(x))에서 제외된 상기 항(btxt)과 상기 피승수(a(x))의 계수 곱셈 및 모듈러 연산을 수행하여 제2 연산 결과를 생성하는 제2 곱셈 및 모듈러 연산부; 및Performs coefficient multiplication and modular operation of the term (b t x t ) and the multiplicand (a (x)) excluded from the first multiplier (b (x)) by the ternary term polynomial f (x) A second multiplication and modular operation unit configured to generate a second operation result; And 상기 제2 곱셈 및 모듈러 연산부의 연산 결과를 저장하는 제2 레지스터를 포함하고, 상기 제1 곱셈 및 모듈러 연산부는 상기 제1 연산 결과가 생성되면 상기 제1 연산 결과에 상기 제2 레지스터에 저장된 상기 제2 연산 결과를 가산하여 상기 피승수(a(x)) 및 상기 제1 승수(b(x))의 곱셈 결과를 생성하는 다항식 기저 기반의 유한체 직렬 곱셈 장치.And a second register configured to store an operation result of the second multiplication and modular operation unit, wherein the first multiplication and modular operation unit is stored in the second register in the first operation result when the first operation result is generated. A polynomial basis-based finite field multiplication apparatus for generating a multiplication result of the multiplier (a (x)) and the first multiplier (b (x)) by adding a result of two operations. 제1항에 있어서,The method of claim 1, 상기 제1 레지스터는, 상기 제1 곱셈 및 모듈러 연산부에 의해 생성된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))의 상기 곱셈 결과를 저장하여 출력하는 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 장치.And wherein the first register stores and outputs the multiplication result of the multiplier a (x) and the first multiplier b (x) generated by the first multiplication and modular operation unit. Basis-based finite field multiplication device. 제1항에 있어서,The method of claim 1, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는,The polynomial basis-based finite field multiplication apparatus, 상기 피승수(a(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 피승수(a(x))를 전달하는 제3 레지스터; 및A third register for storing the multiplier (a (x)) and transferring the multiplier (a (x)) to the first multiplication and modular operation unit; And 상기 제1 승수(b(x))를 저장하고 상기 제1 곱셈 및 모듈러 연산부에 상기 제1 승수(b(x))를 전달하는 제4 레지스터를 더 포함하는 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 장치.And a fourth register for storing the first multiplier (b (x)) and transferring the first multiplier (b (x)) to the first multiplication and modular operation. Sieve serial multiplication device. 제1항에 있어서,The method of claim 1, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치는, 유한체의 표수(characteristic)가 2 또는 3인 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 장치.The polynomial basis-based finite field serial multiplier is a polynomial basis-based finite field serial multiplier characterized in that the characteristic of the finite body is 2 or 3. 제1항에 있어서,The method of claim 1, 상기 다항식 기저 기반의 유한체 직렬 곱셈 장치가 사용하는 상기 삼항 기약다항식(f(x))은, 하기 수학식 1과 같이 표현되는 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 장치.The polynomial basis-based finite field multiplier (f (x)) used by the polynomial basis-based finite field serial multiplier is expressed by Equation 1 below. <수학식 1><Equation 1> f(x) = xm+ftxt+f0 , (단, ft,f0∈GF(3) 이고, t는 0<t<m/2인 정수)f (x) = x m + f t x t + f 0 , (where f t , f 0 ∈GF (3) and t is an integer 0 <t <m / 2) 제1항 내지 제5항 중 어느 한 항에 따른 다항식 기저 기반의 유한체 직렬 곱셈 장치를 시스템 온 칩(system on chip) 형태로 구현한 마이크로프로세서.A microprocessor implementing the polynomial basis-based finite field serial multiplier according to any one of claims 1 to 5 in the form of a system on chip. 삼항 기약다항식(f(x))을 사용하여 유한체 상의 두 원소의 곱셈을 수행하는 다항식 기저 기반의 유한체 직렬 곱셈 방법에 있어서,In the polynomial basis-based finite field multiplication method of performing a multiplication of two elements on a finite body using a ternary weak polynomial (f (x)), 다항식 기저로 표현되는 제1 승수(b(x))의 항 중에서 삼항 기약다항식(f(x))의 각 항의 차수 중 중간 차수(t)와 동일한 차수의 항(btxt)을 제외하여 제2 승수(b'(x))를 생성하고, 상기 삼항 기약다항식(f(x))에 의해 다항식 기저로 표현되는 피승수(a(x))와 상기 제2 승수(b'(x))의 계수 곱셈 및 모듈러 연산을 수행하는 제1 곱셈 및 모듈러 연산 단계;Except for terms of the first order multiplier b (x) expressed as a polynomial basis, the terms of the order (b t x t ) equal to the intermediate order t of the terms of each term of the ternary term polynomial f (x) A multiplier a (x) and a second multiplier b '(x) generated by generating a second multiplier b' (x) and expressed as a polynomial basis by the ternary-term polynomial f (x). A first multiplication and modular operation step of performing coefficient multiplication and modular operation; 상기 삼항 기약다항식(f(x))에 의해 상기 제1 승수(b(x))에서 제외된 상기 항(btxt)과 상기 피승수(a(x))의 계수 곱셈 및 모듈러 연산을 수행하여 제2 연산 결과를 생성하는 제2 곱셈 및 모듈러 연산 단계;Performs coefficient multiplication and modular operation of the term (b t x t ) and the multiplicand (a (x)) excluded from the first multiplier (b (x)) by the ternary term polynomial f (x) A second multiplication and modular operation step of generating a second operation result; 상기 제1 곱셈 및 모듈러 연산 단계의 최종 연산 결과인 제1 연산 결과가 생성될 때까지 상기 제1 곱셈 및 모듈러 연산 단계의 중간 연산 결과를 제1 레지스터에 저장하여 연산을 보조하고, 그리고 상기 제2 곱셈 및 모듈러 연산 단계의 제2 연산 결과를 제2 레지스터에 저장하는 단계; 및Assisting the operation by storing an intermediate operation result of the first multiplication and modular operation step in a first register until a first operation result, which is a final operation result of the first multiplication and modular operation step, is generated. Storing a second operation result of the multiplication and modular operation steps in a second register; And 상기 제1 연산 결과가 생성되면 상기 제1 연산 결과에 상기 제2 레지스터에 저장된 상기 제2 연산 결과를 가산하여 상기 피승수(a(x))와 상기 제1 승수(b(x))의 곱셈 결과를 생성하는 곱셈 결과 생성 단계를 포함하는 다항식 기저 기반의 유한체 직렬 곱셈 방법.When the first operation result is generated, the multiplication result of the multiplier a (x) and the first multiplier b (x) is added by adding the second operation result stored in the second register to the first operation result. A polynomial basis-based finite field serial multiplication method comprising the step of generating a multiplication result. 제7항에 있어서,The method of claim 7, wherein 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 상기 곱셈 결과 생성 단계에서 생성된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))의 상기 곱셈 결과를 상기 제1 레지스터에 저장하여 출력하는 단계를 더 포함하는 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 방법.The polynomial basis-based finite field serial multiplication method may store the multiplication result of the multiplier a (x) and the first multiplier b (x) generated in the multiplication result generation step in the first register. And a polynomial basis-based finite field multiplication method further comprising the step of outputting the same. 제7항에 있어서,The method of claim 7, wherein 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 상기 제1 곱셈 및 모듈러 연산 단계 전에 외부로부터 입력되는 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 각각 제3 레지스터 및 제4 레지스터 저장하는 단계를 더 포함하고, 상기 제1 곱셈 및 모듈러 연산 단계는, 상기 제3 레지스터 및 상기 제4 레지스터에 저장된 상기 피승수(a(x)) 및 상기 제1 승수(b(x))를 이용하여 상기 연산을 수행하는 단계인 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 방법.The polynomial basis-based finite field serial multiplication method may further include a third register and And storing a fourth register, wherein the first multiply and modular operations include: the multiplier a (x) and the first multiplier b (x) stored in the third register and the fourth register. And performing the operation using a) polynomial basis based finite field serial multiplication method. 제7항에 있어서,The method of claim 7, wherein 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법은, 유한체의 표수(characteristic)가 2 또는 3인 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 방법.The polynomial basis-based finite field serial multiplication method is a polynomial basis-based finite field serial multiplication method characterized in that the characteristic of the finite field is 2 or 3. 제7항에 있어서,The method of claim 7, wherein 상기 다항식 기저 기반의 유한체 직렬 곱셈 방법이 사용하는 상기 삼항 기약다항식(f(x))은, 하기 수학식 2와 같이 표현되는 것을 특징으로 하는 다항식 기저 기반의 유한체 직렬 곱셈 방법.The polynomial basis-based finite field multiplication method used by the polynomial basis-based finite field serial multiplication method (f (x)) is expressed as Equation 2 below. <수학식 2><Equation 2> f(x) = xm+ftxt+f0 , (단, ft,f0∈GF(3) 이고, t는 0<t<m/2인 정수)f (x) = x m + f t x t + f 0 , (where f t , f 0 ∈GF (3) and t is an integer 0 <t <m / 2) 제7항 내지 제11항 중 어느 한 항에 따른 다항식 기저 기반의 유한체 직렬 곱셈 방법을 수행하도록 구현한 마이크로프로세서.A microprocessor implemented to perform the polynomial basis-based finite field multiplication method according to any one of claims 7 to 11.
KR1020080015541A 2008-02-20 2008-02-20 Serial apparatus and method for finite field multiplication using polynomial basis KR100954583B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080015541A KR100954583B1 (en) 2008-02-20 2008-02-20 Serial apparatus and method for finite field multiplication using polynomial basis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080015541A KR100954583B1 (en) 2008-02-20 2008-02-20 Serial apparatus and method for finite field multiplication using polynomial basis

Publications (2)

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

Family

ID=41208144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080015541A KR100954583B1 (en) 2008-02-20 2008-02-20 Serial apparatus and method for finite field multiplication using polynomial basis

Country Status (1)

Country Link
KR (1) KR100954583B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102075848B1 (en) * 2018-11-22 2020-02-10 부산대학교 산학협력단 Method, Apparatus and Recording Medium Of Polynomial Operation Optimization Processing
US20230316121A1 (en) * 2020-07-24 2023-10-05 Industry-University Cooperation Foundation Hanyang University Erica Campus Efficient quantum modular multiplier and quantum modular multiplication method
KR102204081B1 (en) * 2020-07-24 2021-01-15 한양대학교 에리카산학협력단 Efficient quantum modular multiplier and method of quantum modular multiplication

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020079144A (en) * 2001-04-13 2002-10-19 한국전자통신연구원 Apparatus and Method of Polynomial-Basis Multiplication based on Finite-Field
KR20040055550A (en) * 2002-12-20 2004-06-26 한국전자통신연구원 Serial-Parallel Multiplier to Multiply Two Elements in the Finite Field

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020079144A (en) * 2001-04-13 2002-10-19 한국전자통신연구원 Apparatus and Method of Polynomial-Basis Multiplication based on Finite-Field
KR20040055550A (en) * 2002-12-20 2004-06-26 한국전자통신연구원 Serial-Parallel Multiplier to Multiply Two Elements in the Finite Field

Also Published As

Publication number Publication date
KR20090090219A (en) 2009-08-25

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)
Gao et al. Elliptic curve scalar multiplier design using FPGAs
Shah et al. A high‐speed RSD‐based flexible ECC processor for arbitrary curves over general prime field
Bisheh Niasar et al. Efficient hardware implementations for elliptic curve cryptography over Curve448
Cohen et al. Architecture optimizations for the RSA public key cryptosystem: A tutorial
Perin et al. Montgomery modular multiplication on reconfigurable hardware: Systolic versus multiplexed implementation
Schinianakis et al. Residue number systems in cryptography: Design, challenges, robustness
KR100954583B1 (en) Serial apparatus and method for finite field multiplication using polynomial basis
KR100457177B1 (en) Serial-Parallel Multiplier to Multiply Two Elements in the Finite Field
KR100950581B1 (en) Bit-parallel multiplier and multiplying method for finite field using redundant representation
KR100954579B1 (en) Serial apparatus and method for finite field multiplication using polynomial basis
KR100954584B1 (en) Apparatus and Method for MSD first GF3^m serial multiplication and Recording medium using this
KR101136972B1 (en) method for evaluating Elliptic Curve Cryptosystem
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
Jeon et al. Elliptic curve based hardware architecture using cellular automata
Ma et al. Fast implementation for modular inversion and scalar multiplication in the elliptic curve cryptography
Kavyashree et al. Design and implementation of different architectures of montgomery modular multiplication
KR100974624B1 (en) Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it

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