KR101837750B1 - Parallel multipliier apparatus and method over finite field - Google Patents

Parallel multipliier apparatus and method over finite field Download PDF

Info

Publication number
KR101837750B1
KR101837750B1 KR1020170012310A KR20170012310A KR101837750B1 KR 101837750 B1 KR101837750 B1 KR 101837750B1 KR 1020170012310 A KR1020170012310 A KR 1020170012310A KR 20170012310 A KR20170012310 A KR 20170012310A KR 101837750 B1 KR101837750 B1 KR 101837750B1
Authority
KR
South Korea
Prior art keywords
polynomial
vector
rti
operation unit
multiplication
Prior art date
Application number
KR1020170012310A
Other languages
Korean (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 KR1020170012310A priority Critical patent/KR101837750B1/en
Priority to PCT/KR2017/013417 priority patent/WO2018139750A1/en
Application granted granted Critical
Publication of KR101837750B1 publication Critical patent/KR101837750B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/40Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
    • G06F7/44Multiplying; Dividing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Electromagnetism (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)

Abstract

The present invention relates to a parallel finite field multiplication device and a method thereof. More specifically, the parallel finite field multiplication device comprises: a first vector operation unit; a second vector operation unit; a first polynomial operation unit configured to operate the polynomial, (A_0B_1 + A_1B_0)X, by using vectors generated in the second vector operation unit; a second polynomial operation unit configured to operate the polynomial, (A_0B_0 + A_1B_1)X^2, by using vectors generated in the second vector operation unit; and an output unit configured to output C which is a product of A and B. Therefore, the parallel finite field multiplication device can be applied to all hardware designs.

Description

유한체 병렬 곱셈 장치 및 방법{PARALLEL MULTIPLIIER APPARATUS AND METHOD OVER FINITE FIELD}FIELD OF THE INVENTION [0001] The present invention relates to a parallel multiplier and a finite-

본 발명은 유한체 병렬 곱셈 장치 및 방법에 관한 것으로서, 보다 상세하게는 이차 미만의 공간 복잡도(subquadratic space complexity)를 갖는 다항식의 곱셈 연산 기법에 기반한 유한체 병렬 곱셈 장치 및 방법에 관한 것이다.The present invention relates to a finite-field parallel multiplication apparatus and method, and more particularly, to a finite field parallel multiplication apparatus and method based on a polynomial multiplication operation technique having subquadratic space complexity.

유한체상에서의 연산(arithmetic operation)은 코딩 이론(coding theory)과 타원 곡선 암호(elliptic curve cryptography) 등 여러 응용분야에 필요하다. 그 중 곱셈 연산(field multiplication)은 가장 중요하고 핵심이 되는 연산이지만, 연산 수행이 복잡하고 비용이 비싸기 때문에 효율적인 곱셈 연산 기법이 요구되어 왔다. Arithmetic operations on finite fields are required for various applications such as coding theory and elliptic curve cryptography. Among them, field multiplication is the most important and important operation, but since the operation is complicated and expensive, efficient multiplication operation technique has been required.

Figure 112017009186411-pat00001
를 차수(degree)
Figure 112017009186411-pat00002
Figure 112017009186411-pat00003
에 있는 기약 다항식(irreducible polynomial)이라 하자. 유한체
Figure 112017009186411-pat00004
Figure 112017009186411-pat00005
와 동형(isomorphism)이므로, 다시 말해
Figure 112017009186411-pat00006
이므로, 유한체
Figure 112017009186411-pat00007
의 임의의 원소
Figure 112017009186411-pat00008
는 다음과 같이 차수가
Figure 112017009186411-pat00009
보다 작은 다항식(polynomial) 형태
Figure 112017009186411-pat00010
로 표현이 가능하다. 여기서
Figure 112017009186411-pat00011
이다. 이때, 집합
Figure 112017009186411-pat00012
Figure 112017009186411-pat00013
상에서
Figure 112017009186411-pat00014
의 다항식 기저(polynomial basis)라고 한다. 다항식 기저는 유한체의 원소를 표현할 때 가장 널리 쓰이는 기저 중 하나이다. 다항식 기저에 의해
Figure 112017009186411-pat00015
의 두 원소
Figure 112017009186411-pat00016
Figure 112017009186411-pat00017
가 주어졌을 때 (여기서,
Figure 112017009186411-pat00018
이다), 두 원소의 곱
Figure 112017009186411-pat00019
는 다음 두 단계에 의하여 계산 가능하다.
Figure 112017009186411-pat00001
(Degree)
Figure 112017009186411-pat00002
sign
Figure 112017009186411-pat00003
Let's call it an irreducible polynomial. Finite element
Figure 112017009186411-pat00004
silver
Figure 112017009186411-pat00005
And isomorphism, in other words,
Figure 112017009186411-pat00006
Therefore,
Figure 112017009186411-pat00007
Any element of
Figure 112017009186411-pat00008
The order is
Figure 112017009186411-pat00009
Smaller polynomial form
Figure 112017009186411-pat00010
Can be expressed as. here
Figure 112017009186411-pat00011
to be. At this time,
Figure 112017009186411-pat00012
of
Figure 112017009186411-pat00013
On
Figure 112017009186411-pat00014
Is called the polynomial basis. A polynomial basis is one of the most widely used bases for expressing elements of finite fields. By polynomial basis
Figure 112017009186411-pat00015
Two elements of
Figure 112017009186411-pat00016
Wow
Figure 112017009186411-pat00017
When given (here,
Figure 112017009186411-pat00018
), The product of the two elements
Figure 112017009186411-pat00019
Can be calculated by the following two steps.

제 1단계에서는

Figure 112017009186411-pat00020
Figure 112017009186411-pat00021
를 다항식으로 간주하고 다항식의 곱셈
Figure 112017009186411-pat00022
을 수행하여
Figure 112017009186411-pat00023
를 얻는다.In the first step
Figure 112017009186411-pat00020
Wow
Figure 112017009186411-pat00021
Consider the polynomial as a polynomial multiplication
Figure 112017009186411-pat00022
By doing
Figure 112017009186411-pat00023
.

제 2단계에서는 상기 생성된 다항식

Figure 112017009186411-pat00024
에 대해 기약 다항식
Figure 112017009186411-pat00025
에 의한 모듈러(modular) 감산 연산을 하여, 두 원소의 곱
Figure 112017009186411-pat00026
를 얻는다.In the second step, the generated polynomial
Figure 112017009186411-pat00024
For example,
Figure 112017009186411-pat00025
Modulo subtraction operation with the product of the two elements
Figure 112017009186411-pat00026
.

따라서 유한체의 곱셈 연산의 복잡도는 위의 두 단계의 복잡도에 의하여 결정된다. 제 1단계를 수행할 때 필요한 공간 복잡도(space complexity), 즉

Figure 112017009186411-pat00027
상의 필요한 XOR 게이트(gate) 또는 AND 게이트 수는
Figure 112017009186411-pat00028
으로 알려져 있다. 제 2단계에 대한 비용은 기약 다항식
Figure 112017009186411-pat00029
의 항의 개수에 의해 영향을 받는다. 비특허문헌 1 [G. Seroussi, “Table of low-weight binary irreducible polynomials”HP Labs, Technical Reports HPL-98-135, 1998]에 의하면, 우리가 실제 다루는 유한체의 경우 유한체
Figure 112017009186411-pat00030
을 정의하는 기약 다항식
Figure 112017009186411-pat00031
으로 삼항 다항식(trinomial)이나 오항 다항식(pentanomial)을 선택할 수 있다. 이러한 삼항 또는 오항 다항식에 의한 모듈러 감산 연산은
Figure 112017009186411-pat00032
상에서 필요한 게이트의 수가 단지
Figure 112017009186411-pat00033
으로 제1 단계와 비교하여 매우 적다. 따라서 효율적인 유한체의 곱셈기를 얻기 위해 제1 단계, 즉 두 다항식의 곱셈 연산에 대한 복잡도(complexity)를 줄이고자 하는 연구가 많이 이루어지고 있다. Therefore, the complexity of the finite field multiplication operation is determined by the complexity of the above two steps. The space complexity required when performing the first step, that is,
Figure 112017009186411-pat00027
The number of required XOR gates or AND gates on the
Figure 112017009186411-pat00028
. The cost for the second step is the exponential polynomial
Figure 112017009186411-pat00029
And the number of terms in Non-Patent Document 1 [G. According to Seroussi, "Table of low-weight binary irreducible polynomials", HP Labs, Technical Reports HPL-98-135, 1998,
Figure 112017009186411-pat00030
Quot; polynomial < / RTI >
Figure 112017009186411-pat00031
You can choose trinomials or pentanomials. This modulo subtraction operation by the ternary or five-polynomial equation
Figure 112017009186411-pat00032
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00033
Which is very small compared to the first step. Therefore, to obtain an efficient finite field multiplier, many studies have been conducted to reduce the complexity of the first step, that is, the multiplication of two polynomials.

실제 응용에 쓰이는 유한체

Figure 112017009186411-pat00034
의 크기, 즉
Figure 112017009186411-pat00035
의 크기는 매우 크므로, 곱셈 연산을 수행할 때 필요한 공간 복잡도가
Figure 112017009186411-pat00036
이 되는 이차 미만의 공간 복잡도(subquadratic space complexity)를 가진 병렬 곱셈기의 연구가 특히 관심을 받아왔다.Finite element used in real application
Figure 112017009186411-pat00034
The size of
Figure 112017009186411-pat00035
Is very large, so the space complexity required when performing the multiplication operation is
Figure 112017009186411-pat00036
The study of parallel multipliers with subquadratic space complexity has been of particular interest.

그러나 유한체

Figure 112017009186411-pat00037
의 크기는 계속 커지는 추세인 반면, 스마트 기기의 확산으로 인해 연산의 경량화가 요구되는 바, 더욱 효율적인 이차 미만의 공간 복잡도를 갖는 병렬 곱셈기의 개발이 요구되고 있다.However,
Figure 112017009186411-pat00037
The size of the device is continuously increasing. On the other hand, it is required to reduce the weight of the calculation due to the diffusion of the smart device. Therefore, it is required to develop a parallel multiplier having less efficient secondary complexity.

본 발명의 배경기술은 대한민국 공개특허공보 10-2011-0027176호(2011.03.16)의 '유한체의 원소간 비트-병렬 곱셈방법 및 장치'에 개시되어 있다.The background art of the present invention is disclosed in Korean Patent Application Publication No. 10-2011-0027176 (Mar. 16, 2011) entitled " Method and apparatus for inter-element bit-parallel multiplication of finite fields. &Quot;

본 발명은 전술한 문제점을 개선하기 위해 창안된 것으로서, 본 발명의 일 측면에 따른 목적은 임의의 유한체

Figure 112017009186411-pat00038
상에서 보다 효율적인 이차 미만의 공간 복잡도를 갖는 유한체 병렬 곱셈 장치 및 방법을 제공하는 것이다. SUMMARY OF THE INVENTION The present invention has been made to overcome the above problems, and an object of one aspect of the present invention is to provide an arbitrary finite element
Figure 112017009186411-pat00038
The present invention provides a finite-field parallel multiplication apparatus and method that have a spatial complexity that is less efficient than the second-order complexity.

본 발명의 일 측면에 따른 유한체 병렬 곱셈 장치는 차수

Figure 112017009186411-pat00039
인 두 다항식
Figure 112017009186411-pat00040
Figure 112017009186411-pat00041
으로부터 각 성분(component)의 개수가
Figure 112017009186411-pat00042
인 벡터를 생성하는 제1 벡터 연산부; 상기 제1 벡터 연산부에서 생성된 벡터들을 이용하여 각 성분의 개수가
Figure 112017009186411-pat00043
인 벡터를 생성하는 제2 벡터 연산부; 상기 제2 벡터 연산부에서 생성된 벡터들을 이용하여 다항식
Figure 112017009186411-pat00044
를 연산하는 제1 다항식 연산부; 상기 제2 벡터 연산부에서 생성된 벡터들을 이용하여 다항식
Figure 112017009186411-pat00045
를 연산하는 제2 다항식 연산부 및; 상기 제1 다항식 연산부와 상기 제2 다항식 연산부에 의해 각각 연산된 다항식
Figure 112017009186411-pat00046
및 다항식
Figure 112017009186411-pat00047
으로부터 두 다항식 A와 B의 곱
Figure 112017009186411-pat00048
를 출력하는 출력부를 포함하는 것을 특징으로 한다. A finite field parallel multiplier according to an aspect of the present invention includes:
Figure 112017009186411-pat00039
Two polynomials
Figure 112017009186411-pat00040
Wow
Figure 112017009186411-pat00041
The number of components is
Figure 112017009186411-pat00042
A first vector operation unit for generating a vector vector; And the number of each component is calculated using the vectors generated in the first vector computing unit
Figure 112017009186411-pat00043
A second vector operation unit for generating a vector vector; And a second vector computing unit
Figure 112017009186411-pat00044
A first polynomial operation unit operable to: And a second vector computing unit
Figure 112017009186411-pat00045
A second polynomial operation unit operable to: Wherein the first polynomial calculation unit and the second polynomial calculation unit calculate a polynomial
Figure 112017009186411-pat00046
And polynomial
Figure 112017009186411-pat00047
The product of two polynomials A and B
Figure 112017009186411-pat00048
And an output unit for outputting the output signal.

본 발명에서, 상기 제1 벡터 연산부는 다항식

Figure 112017009186411-pat00049
Figure 112017009186411-pat00050
으로부터 차수가
Figure 112017009186411-pat00051
인 네 개의 다항식
Figure 112017009186411-pat00052
을 입력받아 각 성분의 개수가 각
Figure 112017009186411-pat00053
개의 성분(component)을 갖는 벡터
Figure 112017009186411-pat00054
,
Figure 112017009186411-pat00055
,
Figure 112017009186411-pat00056
,
Figure 112017009186411-pat00057
을 생성하는 것을 특징으로 한다. In the present invention, the first vector computing unit may be a polynomial
Figure 112017009186411-pat00049
Wow
Figure 112017009186411-pat00050
Order from
Figure 112017009186411-pat00051
Four polynomials
Figure 112017009186411-pat00052
And the number of each component is
Figure 112017009186411-pat00053
A vector having < RTI ID = 0.0 >
Figure 112017009186411-pat00054
,
Figure 112017009186411-pat00055
,
Figure 112017009186411-pat00056
,
Figure 112017009186411-pat00057
.

본 발명에서, 상기 제2 벡터 연산부는 상기 제1 벡터 연산부에서 연산된 벡터들을 입력받아 성분끼리의 곱 연산을 통해

Figure 112017009186411-pat00058
Figure 112017009186411-pat00059
에 대해 벡터들
Figure 112017009186411-pat00060
을 생성하는 것을 특징으로 한다. In the present invention, the second vector operation unit receives the vectors calculated in the first vector operation unit and performs a product operation between the components
Figure 112017009186411-pat00058
sign
Figure 112017009186411-pat00059
/ RTI >
Figure 112017009186411-pat00060
.

본 발명에서, 상기 제1 다항식 연산부는 상기 제2 벡터 연산부에 의해 연산된 벡터들 중

Figure 112017009186411-pat00061
Figure 112017009186411-pat00062
을 이용하여 다항식
Figure 112017009186411-pat00063
를 계산하는 것을 특징으로 한다. In the present invention, the first polynomial calculator may calculate the first polynomial of the vectors calculated by the second vector calculator
Figure 112017009186411-pat00061
and
Figure 112017009186411-pat00062
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00063
Is calculated.

본 발명에서, 상기 제1 다항식 연산부는

Figure 112017009186411-pat00064
Figure 112017009186411-pat00065
의 합
Figure 112017009186411-pat00066
을 계산하고,
Figure 112017009186411-pat00067
벡터를 이용하여 다항식
Figure 112017009186411-pat00068
을 계산한 후, 다항식
Figure 112017009186411-pat00069
를 쉬프트(shift)하여 다항식
Figure 112017009186411-pat00070
를 출력하는 것을 특징으로 한다. In the present invention, the first polynomial operation unit
Figure 112017009186411-pat00064
and
Figure 112017009186411-pat00065
Sum of
Figure 112017009186411-pat00066
Lt; / RTI >
Figure 112017009186411-pat00067
Using the vector,
Figure 112017009186411-pat00068
, The polynomial equation
Figure 112017009186411-pat00069
To obtain a polynomial < RTI ID = 0.0 >
Figure 112017009186411-pat00070
And outputs the output signal.

본 발명에서, 상기 제2 다항식 연산부는 상기 제2 벡터 연산부에 의해 연산된 벡터들 중

Figure 112017009186411-pat00071
Figure 112017009186411-pat00072
을 이용하여 다항식
Figure 112017009186411-pat00073
를 연산하는 것을 특징으로 한다. In the present invention, the second polynomial calculator may calculate the second polynomial of the vectors calculated by the second vector calculator
Figure 112017009186411-pat00071
and
Figure 112017009186411-pat00072
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00073
Is calculated.

본 발명에서, 상기 제2 다항식 연산부는 상기 제2 벡터 연산부에 의해 연산된

Figure 112017009186411-pat00074
Figure 112017009186411-pat00075
을 입력받아
Figure 112017009186411-pat00076
를 계산하고, 계산된
Figure 112017009186411-pat00077
을 이용하여 다항식
Figure 112017009186411-pat00078
을 계산하며, 계산된 변수
Figure 112017009186411-pat00079
에 대한 다항식
Figure 112017009186411-pat00080
을 입력받아 다항식의 덧셈을 수행하여
Figure 112017009186411-pat00081
Figure 112017009186411-pat00082
를 생성한 후, 다항식
Figure 112017009186411-pat00083
Figure 112017009186411-pat00084
의 계수를 상호 배치(interleaving)함으로써 다항식
Figure 112017009186411-pat00085
를 출력하는 것을 특징으로 한다. In the present invention, the second polynomial calculator may calculate the second polynomial calculator
Figure 112017009186411-pat00074
and
Figure 112017009186411-pat00075
Take input
Figure 112017009186411-pat00076
And calculates
Figure 112017009186411-pat00077
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00078
, And the calculated variable
Figure 112017009186411-pat00079
Polynomial for
Figure 112017009186411-pat00080
And the addition of the polynomial is performed
Figure 112017009186411-pat00081
Wow
Figure 112017009186411-pat00082
And then,
Figure 112017009186411-pat00083
Wow
Figure 112017009186411-pat00084
By interleaving the coefficients of the polynomial < RTI ID = 0.0 >
Figure 112017009186411-pat00085
And outputs the output signal.

본 발명에서, 상기 출력부에 의해 연산된 다항식

Figure 112017009186411-pat00086
에 대해 다항식
Figure 112017009186411-pat00087
에 의한 모듈러(modular) 감산 연산을 하여 두 원소의 곱
Figure 112017009186411-pat00088
를 얻는 모듈러 감산부를 더 포함하는 것을 특징으로 하는 유한체 병렬 곱셈 장치. In the present invention, the polynomial calculated by the output unit
Figure 112017009186411-pat00086
Polynomial for
Figure 112017009186411-pat00087
And the product of the two elements
Figure 112017009186411-pat00088
And a modulo subtracter operable to derive a finite field parallel multiplier.

본 발명의 일 측면에 따른 유한체 병렬 곱셈 방법은 제1 벡터 연산부가 차수

Figure 112017009186411-pat00089
인 다항식
Figure 112017009186411-pat00090
Figure 112017009186411-pat00091
으로부터 차수가
Figure 112017009186411-pat00092
인 네 개의 다항식
Figure 112017009186411-pat00093
을 입력받아 각 성분의 개수가
Figure 112017009186411-pat00094
인 벡터
Figure 112017009186411-pat00095
,
Figure 112017009186411-pat00096
,
Figure 112017009186411-pat00097
,
Figure 112017009186411-pat00098
를 생성하는 단계; 제2 벡터 연산부가 상기 제1 벡터 연산부에서 생성된 벡터들을 이용하여 각 성분의 개수가
Figure 112017009186411-pat00099
인 벡터를 생성하는 단계; 제1 다항식 연산부가 상기 제2 벡터 연산부에서 생성된 벡터 중
Figure 112017009186411-pat00100
Figure 112017009186411-pat00101
을 이용하여 다항식
Figure 112017009186411-pat00102
를 연산하는 단계; 제2 다항식 연산부가 상기 제2 벡터 연산부에서 생성된 벡터 중
Figure 112017009186411-pat00103
Figure 112017009186411-pat00104
을 이용하여 다항식
Figure 112017009186411-pat00105
를 연산하는 단계; 및 출력부가 상기 제1 다항식 연산부와 상기 제2 다항식 연산부에 의해 각각 연산된 다항식
Figure 112017009186411-pat00106
및 다항식
Figure 112017009186411-pat00107
으로부터 두 다항식 A와 B의 곱
Figure 112017009186411-pat00108
를 출력하는 단계를 포함하는 것을 특징으로 한다. A finite field parallel multiplication method according to an aspect of the present invention includes:
Figure 112017009186411-pat00089
In polynomial
Figure 112017009186411-pat00090
Wow
Figure 112017009186411-pat00091
Order from
Figure 112017009186411-pat00092
Four polynomials
Figure 112017009186411-pat00093
And the number of each component is
Figure 112017009186411-pat00094
In vector
Figure 112017009186411-pat00095
,
Figure 112017009186411-pat00096
,
Figure 112017009186411-pat00097
,
Figure 112017009186411-pat00098
≪ / RTI > The second vector operation unit uses the vectors generated in the first vector operation unit,
Figure 112017009186411-pat00099
Generating an in-vector; The first polynomial operation unit may be a vector generated by the second vector operation unit
Figure 112017009186411-pat00100
and
Figure 112017009186411-pat00101
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00102
; And the second polynomial operation unit is a vector generated in the second vector operation unit
Figure 112017009186411-pat00103
and
Figure 112017009186411-pat00104
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00105
; And an output unit for outputting a polynomial equation obtained by the first polynomial calculator and the second polynomial calculator,
Figure 112017009186411-pat00106
And polynomial
Figure 112017009186411-pat00107
The product of two polynomials A and B
Figure 112017009186411-pat00108
And outputting the output signal.

본 발명에서, 상기 제2 벡터 연산부는 상기 제1 벡터 연산부에서 연산된 벡터들을 입력받아 성분끼리의 곱 연산을 통해

Figure 112017009186411-pat00109
Figure 112017009186411-pat00110
에 대해 벡터들
Figure 112017009186411-pat00111
을 생성하는 것을 특징으로 한다. In the present invention, the second vector operation unit receives the vectors calculated in the first vector operation unit and performs a product operation between the components
Figure 112017009186411-pat00109
sign
Figure 112017009186411-pat00110
/ RTI >
Figure 112017009186411-pat00111
.

본 발명에서, 상기 제1 다항식 연산부는

Figure 112017009186411-pat00112
Figure 112017009186411-pat00113
의 합
Figure 112017009186411-pat00114
을 계산하고,
Figure 112017009186411-pat00115
벡터를 입력받아 다항식
Figure 112017009186411-pat00116
을 계산한 후, 다항식
Figure 112017009186411-pat00117
를 쉬프트(shift)하여 다항식
Figure 112017009186411-pat00118
를 출력하는 것을 특징으로 한다. In the present invention, the first polynomial operation unit
Figure 112017009186411-pat00112
and
Figure 112017009186411-pat00113
Sum of
Figure 112017009186411-pat00114
Lt; / RTI >
Figure 112017009186411-pat00115
By taking the vector as a polynomial
Figure 112017009186411-pat00116
, The polynomial equation
Figure 112017009186411-pat00117
To obtain a polynomial < RTI ID = 0.0 >
Figure 112017009186411-pat00118
And outputs the output signal.

본 발명에서, 상기 제2 다항식 연산부는 상기 제2 벡터 연산부에 의해 연산된

Figure 112017009186411-pat00119
Figure 112017009186411-pat00120
을 입력받아
Figure 112017009186411-pat00121
를 계산하고, 계산된
Figure 112017009186411-pat00122
을 이용하여 다항식
Figure 112017009186411-pat00123
을 계산하며, 계산된 변수
Figure 112017009186411-pat00124
에 대한 다항식
Figure 112017009186411-pat00125
을 입력받아 다항식의 덧셈을 수행하여
Figure 112017009186411-pat00126
Figure 112017009186411-pat00127
를 생성한 후, 다항식
Figure 112017009186411-pat00128
Figure 112017009186411-pat00129
의 계수를 상호 배치(interleaving)하여 다항식
Figure 112017009186411-pat00130
를 출력하는 것을 특징으로 한다. In the present invention, the second polynomial calculator may calculate the second polynomial calculator
Figure 112017009186411-pat00119
and
Figure 112017009186411-pat00120
Take input
Figure 112017009186411-pat00121
And calculates
Figure 112017009186411-pat00122
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00123
, And the calculated variable
Figure 112017009186411-pat00124
Polynomial for
Figure 112017009186411-pat00125
And the addition of the polynomial is performed
Figure 112017009186411-pat00126
Wow
Figure 112017009186411-pat00127
And then,
Figure 112017009186411-pat00128
Wow
Figure 112017009186411-pat00129
By interleaving the coefficients of the polynomial < RTI ID = 0.0 >
Figure 112017009186411-pat00130
And outputs the output signal.

본 발명에서, 모듈러 감산부가 상기 출력부에 의해 연산된 다항식

Figure 112017009186411-pat00131
에 대해 다항식
Figure 112017009186411-pat00132
에 의한 모듈러(modular) 감산 연산을 하여 두 원소의 곱
Figure 112017009186411-pat00133
를 얻는 단계를 더 포함하는 것을 특징으로 한다. In the present invention, the modulo subtractor multiplies the polynomial
Figure 112017009186411-pat00131
Polynomial for
Figure 112017009186411-pat00132
And the product of the two elements
Figure 112017009186411-pat00133
The method comprising the steps of:

본 발명의 일 측면에 따른 유한체 병렬 곱셈 장치 및 방법은 차수가

Figure 112017009186411-pat00134
인 두 다항식의 곱셈 연산을 복잡도면에서 보다 효율적으로 수행할 수 있도록 한다. A finite field parallel multiplier and method according to an aspect of the present invention includes:
Figure 112017009186411-pat00134
So that the multiplication operation of the two polynomials can be performed more efficiently in the complex drawings.

또한, 본 발명의 일 측면에 따른 유한체 병렬 곱셈 장치 및 방법은 차수가

Figure 112017009186411-pat00135
인 두 다항식의 곱셈 연산을 기반으로 하는 모든 하드웨어 설계에 적용될 수 있으며, 유한체
Figure 112017009186411-pat00136
상의 곱셈 연산을 효율적으로 수행할 수 있도록 한다.In addition, a finite-field parallel multiplier and method according to an aspect of the present invention includes:
Figure 112017009186411-pat00135
Can be applied to all hardware designs based on multiplication of two polynomials,
Figure 112017009186411-pat00136
So that the multiplication operation can be performed efficiently.

도 1은 본 발명의 일 실시예에 따른 유한체 병렬 곱셈 장치의 블럭 구성도이다.
도 2는 본 발명의 일 실시예에 따른 두 다항식의 한체 병렬 곱셈 방법의 순서도이다.
도 3은 도 2의 단계 S400을 보다 상세하게 도시한 도면이다.
1 is a block diagram of a finite field parallel multiplier according to an embodiment of the present invention.
2 is a flowchart of a hue parallel multiplication method of two polynomials according to an embodiment of the present invention.
Figure 3 is a more detailed illustration of step S400 of Figure 2.

이하에서는 본 발명의 일 실시예에 따른 유한체 병렬 곱셈 장치 및 방법을 첨부된 도면들을 참조하여 상세하게 설명한다. 이러한 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 이용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야할 것이다. Hereinafter, a finite-field parallel multiplier and method according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings. In this process, the thicknesses of the lines and the sizes of the components shown in the drawings may be exaggerated for clarity and convenience of explanation. Further, the terms described below are defined in consideration of the functions of the present invention, which may vary depending on the user, the intention or custom of the operator. Therefore, definitions of these terms should be made based on the contents throughout this specification.

유한체

Figure 112017009186411-pat00137
이 기약 다항식
Figure 112017009186411-pat00138
에 의해 정의된다고 하면,
Figure 112017009186411-pat00139
이고, 유한체
Figure 112017009186411-pat00140
의 임의의 두 원소
Figure 112017009186411-pat00141
Figure 112017009186411-pat00142
는 다항식 기저
Figure 112017009186411-pat00143
를 이용하여 다음과 같이 표현된다. 여기서
Figure 112017009186411-pat00144
이다.Finite element
Figure 112017009186411-pat00137
This irreducible polynomial
Figure 112017009186411-pat00138
, ≪ / RTI >
Figure 112017009186411-pat00139
, And a finite element
Figure 112017009186411-pat00140
Any two elements of
Figure 112017009186411-pat00141
Wow
Figure 112017009186411-pat00142
Is a polynomial basis
Figure 112017009186411-pat00143
Is expressed as follows. here
Figure 112017009186411-pat00144
to be.

Figure 112017009186411-pat00145
Figure 112017009186411-pat00145

두 원소들

Figure 112017009186411-pat00146
Figure 112017009186411-pat00147
의 곱
Figure 112017009186411-pat00148
는 다음 두 단계에 의하여 계산된다. Two elements
Figure 112017009186411-pat00146
Wow
Figure 112017009186411-pat00147
Product of
Figure 112017009186411-pat00148
Is calculated by the following two steps.

첫 번째 단계에서는

Figure 112017009186411-pat00149
Figure 112017009186411-pat00150
를 다항식으로 간주하고 다항식의 곱셈
Figure 112017009186411-pat00151
을 수행하여
Figure 112017009186411-pat00152
를 얻는다.In the first step
Figure 112017009186411-pat00149
Wow
Figure 112017009186411-pat00150
Consider the polynomial as a polynomial multiplication
Figure 112017009186411-pat00151
By doing
Figure 112017009186411-pat00152
.

두 번째 단계에서는 첫 번째 단계에서 생성된 다항식

Figure 112017009186411-pat00153
를 다항식
Figure 112017009186411-pat00154
에 의한 모듈러(modular) 감산 연산을 하여, 두 원소의 곱
Figure 112017009186411-pat00155
를 얻는다.In the second step, the polynomial generated in the first step
Figure 112017009186411-pat00153
Is a polynomial
Figure 112017009186411-pat00154
Modulo subtraction operation with the product of the two elements
Figure 112017009186411-pat00155
.

먼저, 두 번째 단계의 모듈러 감산 연산의 비용을 고려한다. 여기서, 유한체

Figure 112017009186411-pat00156
을 정의하는 기약 다항식
Figure 112017009186411-pat00157
으로 삼항 다항식 또는 오항 다항식이 선택될 수 있다. 예를 들어,
Figure 112017009186411-pat00158
가 삼항 다항식
Figure 112017009186411-pat00159
이라고 가정하자.
Figure 112017009186411-pat00160
가 기약이면 다항식
Figure 112017009186411-pat00161
도 기약이 되므로,
Figure 112017009186411-pat00162
의 값이
Figure 112017009186411-pat00163
을 만족한다고 가정할 수 있다. 이 경우,
Figure 112017009186411-pat00164
에 의한 모듈러 감산 연산은 다음과 같이 수행된다.First, the cost of the modulo subtraction operation of the second stage is considered. Here,
Figure 112017009186411-pat00156
Quot; polynomial < / RTI >
Figure 112017009186411-pat00157
A ternary polynomial or a polynomial may be selected. E.g,
Figure 112017009186411-pat00158
Is a ternary polynomial
Figure 112017009186411-pat00159
.
Figure 112017009186411-pat00160
Lt; RTI ID = 0.0 > polynomial &
Figure 112017009186411-pat00161
Also,
Figure 112017009186411-pat00162
The value of
Figure 112017009186411-pat00163
. ≪ / RTI > in this case,
Figure 112017009186411-pat00164
The modulo subtracting operation by Eq.

Figure 112017009186411-pat00165
Figure 112017009186411-pat00165

상기한 모듈러 감산 연산은

Figure 112017009186411-pat00166
XOR 게이트 수와
Figure 112017009186411-pat00167
시간 지연이 필요하다. XOR와 AND 게이트의 시간지연은 각각
Figure 112017009186411-pat00168
로 표기된다. The modulo subtraction operation described above
Figure 112017009186411-pat00166
The number of XOR gates
Figure 112017009186411-pat00167
Time delay is required. The time delays of the XOR and AND gates are
Figure 112017009186411-pat00168
Respectively.

상기와 같이 두 번째 단계는 간단하게 수행되며, 두 번째 단계의 복잡도는 첫 번째 단계와 비교할 때 매우 낮다. 따라서 곱셈 연산의 효율성은 첫 번째 단계를 얼마나 효율적으로 수행할 수 있는지에 의존한다. 그러므로 첫 번째 단계에 초점을 맞추어 그의 효율적인 수행방법을 제안하고자 한다. As described above, the second step is simply performed, and the complexity of the second step is very low as compared with the first step. Therefore, the efficiency of the multiplication operation depends on how efficiently the first step can be performed. Therefore, we focus on the first step and propose its efficient method.

이를 위해, 앞으로는 두 원소

Figure 112017009186411-pat00169
Figure 112017009186411-pat00170
를 다항식으로 간주한다. To this end,
Figure 112017009186411-pat00169
Wow
Figure 112017009186411-pat00170
Is regarded as a polynomial.

도 1은 본 발명의 일 실시예에 따른 유한체 병렬 곱셈 장치의 블럭 구성도이다.1 is a block diagram of a finite field parallel multiplier according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 유한체 병렬 곱셈 장치는 제1 벡터 연산부(10), 제2 벡터 연산부(20), 제1 다항식 연산부(30), 제2 다항식 연산부(40), 출력부(50), 및 모듈러 감산부(60)를 포함한다.1, a finite field parallel multiplier according to an embodiment of the present invention includes a first vector computing unit 10, a second vector computing unit 20, a first polynomial computing unit 30, a second polynomial computing unit 40 An output unit 50, and a modulo subtractor 60. The modulo subtractor 60 subtracts the modulo subtractor 60 from the subtractor 60,

상기한 첫 번째 단계는 제1 벡터 연산부(10), 제2 벡터 연산부(20), 제1 다항식 연산부(30), 제2 다항식 연산부(40) 및 출력부(50)에서 수행되며, 두 번째 단계는 모듈러 감산부(60)에서 수행된다. The first step is performed in the first vector operation unit 10, the second vector operation unit 20, the first polynomial operation unit 30, the second polynomial operation unit 40 and the output unit 50, Is performed in the modulo subtractor (60).

제1 벡터 연산부(10)는 차수

Figure 112017009186411-pat00171
인 두 다항식
Figure 112017009186411-pat00172
Figure 112017009186411-pat00173
으로부터 차수가
Figure 112017009186411-pat00174
인 네 개의 다항식
Figure 112017009186411-pat00175
을 입력받아 각 성분의 개수가
Figure 112017009186411-pat00176
인 네 개의 벡터를 생성한다.The first vector calculator 10 calculates the first-
Figure 112017009186411-pat00171
Two polynomials
Figure 112017009186411-pat00172
Wow
Figure 112017009186411-pat00173
Order from
Figure 112017009186411-pat00174
Four polynomials
Figure 112017009186411-pat00175
And the number of each component is
Figure 112017009186411-pat00176
≪ / RTI >

제2 벡터 연산부(20)는 제1 벡터 연산부(10)에서 생성된 네 개의 벡터들을 입력받아 성분끼리의 곱 연산을 통해 각 성분의 개수가

Figure 112017009186411-pat00177
인 네 개의 새로운 벡터를 생성한다. The second vector computing unit 20 receives the four vectors generated by the first vector computing unit 10 and calculates the number of each component through multiplication of the components
Figure 112017009186411-pat00177
Gt; vector < / RTI >

제1 다항식 연산부(30)는 제2 벡터 연산부(20)의 벡터들을 입력받아, 이들 벡터를 이용하여 다항식

Figure 112017009186411-pat00178
를 계산한다.The first polynomial operation unit 30 receives the vectors of the second vector operation unit 20,
Figure 112017009186411-pat00178
.

제2 다항식 연산부(40)는 제2 벡터 연산부(20)의 벡터들을 입력받아, 이들 벡터를 이용하여 다항식

Figure 112017009186411-pat00179
를 계산한다.The second polynomial operation unit 40 receives the vectors of the second vector operation unit 20,
Figure 112017009186411-pat00179
.

출력부(50)는 제1 다항식 연산부(30)와 제2 다항식 연산부(40)에 의해 각각 계산된 다항식들

Figure 112017009186411-pat00180
Figure 112017009186411-pat00181
를 입력받아 두 다항식
Figure 112017009186411-pat00182
의 곱
Figure 112017009186411-pat00183
를 출력한다.The output unit 50 outputs the polynomials calculated by the first polynomial operation unit 30 and the second polynomial operation unit 40,
Figure 112017009186411-pat00180
Wow
Figure 112017009186411-pat00181
Lt; RTI ID = 0.0 > polynomial &
Figure 112017009186411-pat00182
Product of
Figure 112017009186411-pat00183
.

이하 도 2 내지 도 3 을 참조하여 본 발명의 일 실시예에 따른 유한체 병렬 곱셈 방법을 상세하게 설명한다. Hereinafter, a finite field parallel multiplication method according to an embodiment of the present invention will be described in detail with reference to FIG. 2 to FIG.

도 2는 본 발명의 일 실시예에 따른 두 다항식의 유한체 병렬 곱셈 방법의 순서도이고, 도 3은 도 2의 단계 S400을 보다 상세하게 도시한 도면이다.FIG. 2 is a flowchart of a finite field parallel multiplication method of two polynomials according to an embodiment of the present invention, and FIG. 3 is a diagram illustrating step 400 of FIG. 2 in more detail.

유한체

Figure 112017009186411-pat00184
의 두 원소
Figure 112017009186411-pat00185
Figure 112017009186411-pat00186
는 차수
Figure 112017009186411-pat00187
인 다항식으로 간주되고, 각각 다음과 같이 두 부분으로 분리된다. Finite element
Figure 112017009186411-pat00184
Two elements of
Figure 112017009186411-pat00185
Wow
Figure 112017009186411-pat00186
Is an order
Figure 112017009186411-pat00187
Are regarded as polynomials, and are separated into two parts as follows.

Figure 112017009186411-pat00188
,
Figure 112017009186411-pat00189
Figure 112017009186411-pat00188
,
Figure 112017009186411-pat00189

여기서, 다항식

Figure 112017009186411-pat00190
은 변수(variable)
Figure 112017009186411-pat00191
에 관해 차수가
Figure 112017009186411-pat00192
인 다항식이다. Here,
Figure 112017009186411-pat00190
Is a variable,
Figure 112017009186411-pat00191
About the order
Figure 112017009186411-pat00192
Is a polynomial.

도 2 를 참조하면, 본 발명의 일 실시예에 따른 유한체 병렬 곱셈 방법은 제1 벡터 연산부(10)가 차수

Figure 112017009186411-pat00193
인 두 다항식
Figure 112017009186411-pat00194
Figure 112017009186411-pat00195
로부터 차수
Figure 112017009186411-pat00196
인 다항식
Figure 112017009186411-pat00197
을 입력받아 각각
Figure 112017009186411-pat00198
개의 성분을 갖는 벡터들
Figure 112017009186411-pat00199
,
Figure 112017009186411-pat00200
,
Figure 112017009186411-pat00201
,
Figure 112017009186411-pat00202
을 생성하는 단계(S100), 제2 벡터 연산부(20)가 상기 생성된 벡터들
Figure 112017009186411-pat00203
,
Figure 112017009186411-pat00204
,
Figure 112017009186411-pat00205
,
Figure 112017009186411-pat00206
을 입력받아 각 성분끼리의 곱을 수행하여,
Figure 112017009186411-pat00207
Figure 112017009186411-pat00208
에 대해 벡터들
Figure 112017009186411-pat00209
를 생성하는 단계(S200), 제1 다항식 연산부(30)가 상기 생성된 벡터들 중
Figure 112017009186411-pat00210
Figure 112017009186411-pat00211
을 입력받고
Figure 112017009186411-pat00212
Figure 112017009186411-pat00213
을 이용하여 다항식
Figure 112017009186411-pat00214
를 연산 및 출력하는 단계(S300), 제2 다항식 연산부(40)가 상기 생성된 벡터들 중
Figure 112017009186411-pat00215
Figure 112017009186411-pat00216
을 입력받고
Figure 112017009186411-pat00217
Figure 112017009186411-pat00218
을 이용하여 다항식
Figure 112017009186411-pat00219
을 연산 및 출력하는 단계(S400), 및 출력부(50)가 제1 다항식 연산부(30)와 제2 다항식 연산부(40)에 의해 각각 계산된 다항식들
Figure 112017009186411-pat00220
Figure 112017009186411-pat00221
을 입력받고 다항식들
Figure 112017009186411-pat00222
Figure 112017009186411-pat00223
을 이용하여 다항식 A와 B의 곱
Figure 112017009186411-pat00224
를 출력하는 단계(S500)를 포함한다. 2, a finite field parallel multiplication method according to an embodiment of the present invention includes a first vector operation unit 10,
Figure 112017009186411-pat00193
Two polynomials
Figure 112017009186411-pat00194
Wow
Figure 112017009186411-pat00195
Order from
Figure 112017009186411-pat00196
In polynomial
Figure 112017009186411-pat00197
Respectively.
Figure 112017009186411-pat00198
Vectors having < RTI ID = 0.0 >
Figure 112017009186411-pat00199
,
Figure 112017009186411-pat00200
,
Figure 112017009186411-pat00201
,
Figure 112017009186411-pat00202
(S100), and the second vector operation unit 20 generates the generated vectors
Figure 112017009186411-pat00203
,
Figure 112017009186411-pat00204
,
Figure 112017009186411-pat00205
,
Figure 112017009186411-pat00206
And performs multiplication of the respective components,
Figure 112017009186411-pat00207
sign
Figure 112017009186411-pat00208
/ RTI >
Figure 112017009186411-pat00209
(S200), and the first polynomial operation unit (30)
Figure 112017009186411-pat00210
and
Figure 112017009186411-pat00211
To receive
Figure 112017009186411-pat00212
and
Figure 112017009186411-pat00213
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00214
(S300), and the second polynomial calculator (40) calculates and outputs the generated vectors
Figure 112017009186411-pat00215
and
Figure 112017009186411-pat00216
To receive
Figure 112017009186411-pat00217
and
Figure 112017009186411-pat00218
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00219
And the output unit 50 outputs the polynomials calculated by the first polynomial operation unit 30 and the second polynomial operation unit 40,
Figure 112017009186411-pat00220
And
Figure 112017009186411-pat00221
And the polynomials
Figure 112017009186411-pat00222
And
Figure 112017009186411-pat00223
The product of the polynomials A and B
Figure 112017009186411-pat00224
(S500).

도 2의 각 단계를 상세히 설명하면 다음과 같다.Each step of FIG. 2 will be described in detail as follows.

먼저,

Figure 112017009186411-pat00225
이라 가정한다 (
Figure 112017009186411-pat00226
).
Figure 112017009186411-pat00227
이 2의 거듭제곱이 아닌 경우는 계수를 0으로 간주하여 다항식의 차수가
Figure 112017009186411-pat00228
이라고 가정할 수 있다. Two-way split overlap 방법에 따라, 두 다항식first,
Figure 112017009186411-pat00225
(
Figure 112017009186411-pat00226
).
Figure 112017009186411-pat00227
If this is not a power of 2, the coefficient is regarded as 0 and the order of the polynomial is
Figure 112017009186411-pat00228
. According to the two-way split overlap method, two polynomials

Figure 112017009186411-pat00229
를 다음과 같이 두 부분으로 분리한다.
Figure 112017009186411-pat00229
Into two parts as follows.

Figure 112017009186411-pat00230
Figure 112017009186411-pat00230

여기서, 다항식

Figure 112017009186411-pat00231
은 변수
Figure 112017009186411-pat00232
에 관해 차수가
Figure 112017009186411-pat00233
인 다항식으로 다음과 같이 정의된다.Here,
Figure 112017009186411-pat00231
Is a variable
Figure 112017009186411-pat00232
About the order
Figure 112017009186411-pat00233
Is a polynomial expression defined as follows.

Figure 112017009186411-pat00234
Figure 112017009186411-pat00234

그러면, 두 다항식의 곱

Figure 112017009186411-pat00235
는 다음과 같은 수식을 통해 얻을 수 있다.Then, the product of the two polynomials
Figure 112017009186411-pat00235
Can be obtained by the following formula.

Figure 112017009186411-pat00236
Figure 112017009186411-pat00236

여기서,

Figure 112017009186411-pat00237
는 상기 다항식
Figure 112017009186411-pat00238
을 이용하여 다음과 같이 정의된다. here,
Figure 112017009186411-pat00237
≪ / RTI >
Figure 112017009186411-pat00238
Is defined as follows.

Figure 112017009186411-pat00239
Figure 112017009186411-pat00239

상기 세 개의 곱

Figure 112017009186411-pat00240
Figure 112017009186411-pat00241
를 계산한 위의 방법을 재귀적으로(recursively) 사용하여 계산된다. 상기한 two-way split overlap 방법을 이용한 다항식 곱셈 연산 수행방법은 다음과 같이 세 개의 독립된 블록들 CPF(Component polynomial formation), CM(Component multiplication), R(Reconstruction)으로 나누어 수행될 수 있다. 상기 세 블록들의 상세한 정의는 다음과 같다. The three products
Figure 112017009186411-pat00240
The
Figure 112017009186411-pat00241
Is computed recursively using the above method. The polynomial multiplication operation using the two-way split overlap method can be performed by dividing into three independent blocks CPF (component polynomial formation), CM (component multiplication) and R (reconstruction) as follows. The detailed definitions of the three blocks are as follows.

[정의 1][Definition 1]

Figure 112017009186411-pat00242
Figure 112017009186411-pat00242

Figure 112017009186411-pat00243
Figure 112017009186411-pat00243

Figure 112017009186411-pat00244
Figure 112017009186411-pat00244

여기서, 두 벡터에 대한 연산

Figure 112017009186411-pat00245
는 두 벡터의 성분끼리 곱하여 새로운 벡터를 생성하는 연산이다. 그리고
Figure 112017009186411-pat00246
는 성분의 개수가
Figure 112017009186411-pat00247
인 벡터이다. Here, the operation on the two vectors
Figure 112017009186411-pat00245
Is an operation for multiplying the components of two vectors to generate a new vector. And
Figure 112017009186411-pat00246
The number of components is
Figure 112017009186411-pat00247
.

도 4에서는 상기 세 개의 블록들을 이용한 다항식 곱셈연산의 수행과정이 도시화된다. FIG. 4 illustrates a process of performing a polynomial multiplication operation using the three blocks.

두 다항식의 곱

Figure 112017009186411-pat00248
를 상기 블록들을 이용하여 표현하면 다음과 같다.Product of two polynomials
Figure 112017009186411-pat00248
Is expressed using the blocks as follows.

[정리 1] [Theorem 1]

차수

Figure 112017009186411-pat00249
인 두 다항식
Figure 112017009186411-pat00250
Figure 112017009186411-pat00251
의 곱을
Figure 112017009186411-pat00252
라 하자. 그러면, 곱
Figure 112017009186411-pat00253
는 다음과 같이 계산된다.Order
Figure 112017009186411-pat00249
Two polynomials
Figure 112017009186411-pat00250
Wow
Figure 112017009186411-pat00251
The product of
Figure 112017009186411-pat00252
Let's say. Then,
Figure 112017009186411-pat00253
Is calculated as follows.

Figure 112017009186411-pat00254
Figure 112017009186411-pat00254

각 블록들을 수행하는데 필요한 복잡도는 아래의 표 1에서 주어진다. The complexity required to perform each block is given in Table 1 below.

여기서,

Figure 112017009186411-pat00255
은 차수가
Figure 112017009186411-pat00256
인 두 다항식의 곱셈 연산 시 수행되는 블록*에 대한 복잡도, 즉 블록*을 실행하는데 필요한 게이트 수와 시간지연을 각각 의미한다. XOR와 AND 게이트의 시간지연은 각각
Figure 112017009186411-pat00257
로 표기된다. 또한, CA(Component addition)블록에 대한 복잡도를 추가한다.
Figure 112017009186411-pat00258
블록에서는 성분의 개수가
Figure 112017009186411-pat00259
인 두 벡터
Figure 112017009186411-pat00260
Figure 112017009186411-pat00261
의 더하기(addition) 연산
Figure 112017009186411-pat00262
을 수행한다.here,
Figure 112017009186411-pat00255
The order is
Figure 112017009186411-pat00256
The complexity of the block *, that is, the number of gates and the time delay required to execute the block *, respectively, in a multiply operation of two polynomials. The time delays of the XOR and AND gates are
Figure 112017009186411-pat00257
Respectively. It also adds complexity to the CA (Component addition) block.
Figure 112017009186411-pat00258
In the block,
Figure 112017009186411-pat00259
In two vectors
Figure 112017009186411-pat00260
Wow
Figure 112017009186411-pat00261
Addition operation
Figure 112017009186411-pat00262
.

Figure 112017009186411-pat00263
Figure 112017009186411-pat00263

다항식 곱셈 연산의 상기 블록들을 재조합하여 공간 복잡도를 줄이기 위해 다음 정리를 이용한다. The following theorem is used to recombine the blocks of the polynomial multiplication operation to reduce spatial complexity.

[정리 2] [Theorem 2]

성분의 개수가

Figure 112017009186411-pat00264
인 임의의 두 벡터
Figure 112017009186411-pat00265
Figure 112017009186411-pat00266
에 대해 다음이 성립한다. If the number of ingredients is
Figure 112017009186411-pat00264
Any two vectors
Figure 112017009186411-pat00265
Wow
Figure 112017009186411-pat00266
The following holds.

Figure 112017009186411-pat00267
Figure 112017009186411-pat00267

위의 [정리 2]와 [정의 1]에 있는 블록들의 정의를 이용하여 다항식의 곱셈 연산 수행을 위한 블록들을 새롭게 재조합한다.The blocks for the polynomial multiplication operation are newly reorganized using the definitions of the blocks in [Theorem 2] and [Definition 1] above.

먼저, 두 다항식

Figure 112017009186411-pat00268
의 곱
Figure 112017009186411-pat00269
를 다음과 같이 전개 후 재배열한다.First, two polynomials
Figure 112017009186411-pat00268
Product of
Figure 112017009186411-pat00269
Are rearranged and rearranged as follows.

Figure 112017009186411-pat00270
Figure 112017009186411-pat00270

다항식

Figure 112017009186411-pat00271
은 변수
Figure 112017009186411-pat00272
에 관한 다항식이기 때문에 다항식
Figure 112017009186411-pat00273
의 계수는 두 다항식
Figure 112017009186411-pat00274
Figure 112017009186411-pat00275
의 계수를 상호 배치(interleaving)하여 얻어진다. 이에, 두 다항식
Figure 112017009186411-pat00276
Figure 112017009186411-pat00277
를 구하고자 한다.Polynomial
Figure 112017009186411-pat00271
Is a variable
Figure 112017009186411-pat00272
Lt; RTI ID = 0.0 > polynomial <
Figure 112017009186411-pat00273
The coefficients of the two polynomials
Figure 112017009186411-pat00274
Wow
Figure 112017009186411-pat00275
By interleaving the coefficients of the matrix. Therefore,
Figure 112017009186411-pat00276
Wow
Figure 112017009186411-pat00277
.

도 2에서, 제1 벡터 연산부(10)는 다항식

Figure 112017009186411-pat00278
를 입력받아 각
Figure 112017009186411-pat00279
의 성분을 갖는 벡터들
Figure 112017009186411-pat00280
,
Figure 112017009186411-pat00281
,
Figure 112017009186411-pat00282
,
Figure 112017009186411-pat00283
을 생성한다(S100).In Fig. 2, the first vector computing unit 10 multiplies the polynomial
Figure 112017009186411-pat00278
Respectively.
Figure 112017009186411-pat00279
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00280
,
Figure 112017009186411-pat00281
,
Figure 112017009186411-pat00282
,
Figure 112017009186411-pat00283
(S100).

도 2에서, 제2 벡터 연산부(20)는 상기 계산된 벡터들

Figure 112017009186411-pat00284
,
Figure 112017009186411-pat00285
,
Figure 112017009186411-pat00286
,
Figure 112017009186411-pat00287
을 입력받아 각 성분끼리의 곱을 수행하여
Figure 112017009186411-pat00288
Figure 112017009186411-pat00289
에 대해 벡터들
Figure 112017009186411-pat00290
을 생성한다(S200). In Fig. 2, the second vector calculator 20 calculates the vector
Figure 112017009186411-pat00284
,
Figure 112017009186411-pat00285
,
Figure 112017009186411-pat00286
,
Figure 112017009186411-pat00287
And performs multiplication of the respective components
Figure 112017009186411-pat00288
sign
Figure 112017009186411-pat00289
/ RTI >
Figure 112017009186411-pat00290
(S200).

다음으로, 도 2에서, 제1 다항식 연산부(30)는 상기 생성된 벡터들 중

Figure 112017009186411-pat00291
Figure 112017009186411-pat00292
을 입력받아 다항식
Figure 112017009186411-pat00293
를 연산한다(S300). [정리 1]에 의해,
Figure 112017009186411-pat00294
이고
Figure 112017009186411-pat00295
이므로, [정리 2]를 이용하면 다음이 성립한다. Next, in Fig. 2, the first polynomial calculator 30 calculates
Figure 112017009186411-pat00291
and
Figure 112017009186411-pat00292
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00293
(S300). [Theorem 1]
Figure 112017009186411-pat00294
ego
Figure 112017009186411-pat00295
Therefore, using [Theorem 2], the following holds.

Figure 112017009186411-pat00296
Figure 112017009186411-pat00296

도 2에서, 단계(S300)은

Figure 112017009186411-pat00297
블록에서 두 벡터의 합
Figure 112017009186411-pat00298
을 계산하는 과정,
Figure 112017009186411-pat00299
블록에서 상기 계산된
Figure 112017009186411-pat00300
벡터를 입력받아 다항식
Figure 112017009186411-pat00301
을 계산하는 과정, 계산된 다항식
Figure 112017009186411-pat00302
를 쉬프트(shift)함으로써 다항식
Figure 112017009186411-pat00303
를 출력하는 과정으로 이루어진다. In Figure 2, step S300 is
Figure 112017009186411-pat00297
Sum of two vectors in a block
Figure 112017009186411-pat00298
, ≪ / RTI >
Figure 112017009186411-pat00299
In the block,
Figure 112017009186411-pat00300
By taking the vector as a polynomial
Figure 112017009186411-pat00301
, Calculating a polynomial < RTI ID = 0.0 >
Figure 112017009186411-pat00302
The polynomial < RTI ID = 0.0 >
Figure 112017009186411-pat00303
.

도 2에서, 제2 다항식 연산부(40)는 상기에서 생성된 벡터들 중

Figure 112017009186411-pat00304
Figure 112017009186411-pat00305
을 입력받아 다항식
Figure 112017009186411-pat00306
를 출력한다(S400). [정리 1]에 의하면,
Figure 112017009186411-pat00307
,
Figure 112017009186411-pat00308
이다. 먼저, 벡터들
Figure 112017009186411-pat00309
Figure 112017009186411-pat00310
은 다음과 같이 표현된다.In FIG. 2, the second polynomial calculator 40 calculates
Figure 112017009186411-pat00304
and
Figure 112017009186411-pat00305
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00306
(S400). According to the theorem 1,
Figure 112017009186411-pat00307
,
Figure 112017009186411-pat00308
to be. First,
Figure 112017009186411-pat00309
and
Figure 112017009186411-pat00310
Is expressed as follows.

Figure 112017009186411-pat00311
,
Figure 112017009186411-pat00312
Figure 112017009186411-pat00311
,
Figure 112017009186411-pat00312

앞의 [정의 1]에 있는 Rn블록의 정의에 의해 다음과 같은 식을 얻는다.The following equation is obtained by the definition of R n block in [Definition 1] above.

Figure 112017009186411-pat00313
,
Figure 112017009186411-pat00313
,

Figure 112017009186411-pat00314
Figure 112017009186411-pat00314

상기 식과 [정리 2]를 사용하여 다음 식을 얻는다.Using the above equation and [Theorem 2], the following equation is obtained.

Figure 112017009186411-pat00315
Figure 112017009186411-pat00315

Figure 112017009186411-pat00316
Figure 112017009186411-pat00316

여기서,

Figure 112017009186411-pat00317
이다.here,
Figure 112017009186411-pat00317
to be.

그리고

Figure 112017009186411-pat00318
은 변수
Figure 112017009186411-pat00319
에 대해 차수
Figure 112017009186411-pat00320
인 다항식이다. 따라서 다항식
Figure 112017009186411-pat00321
의 변수
Figure 112017009186411-pat00322
에 대한 계수는 다항식
Figure 112017009186411-pat00323
Figure 112017009186411-pat00324
의 계수를 상호 배치함으로써 얻을 수 있다. 도 2의 단계(S400)은 다음과 같이 수행된다.And
Figure 112017009186411-pat00318
Is a variable
Figure 112017009186411-pat00319
About
Figure 112017009186411-pat00320
Is a polynomial. Therefore,
Figure 112017009186411-pat00321
Variable of
Figure 112017009186411-pat00322
The coefficients for < RTI ID = 0.0 >
Figure 112017009186411-pat00323
Wow
Figure 112017009186411-pat00324
By mutually arranging the coefficients of the respective coefficients. Step S400 of FIG. 2 is performed as follows.

도 2에서 단계(S400)는

Figure 112017009186411-pat00325
Blocks에서 벡터들
Figure 112017009186411-pat00326
Figure 112017009186411-pat00327
을 입력받아 상기 수식에 있는 벡터들
Figure 112017009186411-pat00328
를 계산하는 과정,
Figure 112017009186411-pat00329
Blocks에서 상기 계산된 벡터들
Figure 112017009186411-pat00330
을 입력받아 4개의
Figure 112017009186411-pat00331
Blocks을 수행하여 다항식
Figure 112017009186411-pat00332
을 계산하는 과정, Addition Blocks에서 상기 계산된 변수
Figure 112017009186411-pat00333
에 대한 다항식
Figure 112017009186411-pat00334
을 입력받아 다항식의 덧셈을 수행하여
Figure 112017009186411-pat00335
Figure 112017009186411-pat00336
를 생성하는 과정, 및 Interleaving 블록에서 다항식
Figure 112017009186411-pat00337
Figure 112017009186411-pat00338
의 계수를 상호 배치함으로써 다항식
Figure 112017009186411-pat00339
를 출력하는 과정을 포함한다. In Figure 2, step S400
Figure 112017009186411-pat00325
In Blocks, vectors
Figure 112017009186411-pat00326
and
Figure 112017009186411-pat00327
Lt; RTI ID = 0.0 > vectors < / RTI &
Figure 112017009186411-pat00328
, ≪ / RTI >
Figure 112017009186411-pat00329
In blocks < RTI ID = 0.0 >
Figure 112017009186411-pat00330
To receive four
Figure 112017009186411-pat00331
Blocks are performed to determine the polynomial
Figure 112017009186411-pat00332
, In the Addition Blocks, the calculated variable
Figure 112017009186411-pat00333
Polynomial for
Figure 112017009186411-pat00334
And the addition of the polynomial is performed
Figure 112017009186411-pat00335
Wow
Figure 112017009186411-pat00336
And in the interleaving block,
Figure 112017009186411-pat00337
Wow
Figure 112017009186411-pat00338
By mutually arranging the coefficients of the polynomial
Figure 112017009186411-pat00339
.

도 3에서는 앞서 설명한 도 2의 단계(S400)에 있는

Figure 112017009186411-pat00340
Blocks,
Figure 112017009186411-pat00341
Blocks, 및 Addition Blocks이 보다 상세하게 도시되었다. 3, in step S400 of FIG. 2 described above,
Figure 112017009186411-pat00340
Blocks,
Figure 112017009186411-pat00341
Blocks, and Addition Blocks are shown in more detail.

도 2의 출력부(50)는 제1 다항식 연산부(30)와 제2 다항식 연산부(40)에서 각각 계산된 두 다항식

Figure 112017009186411-pat00342
Figure 112017009186411-pat00343
를 입력받아 두 다항식의 계수를 상호 배치하여 다항식 A와 B의 곱
Figure 112017009186411-pat00344
를 출력한다(S500).The output unit 50 of FIG. 2 includes two polynomial calculation units 30 and 40, which are respectively calculated by the first polynomial calculation unit 30 and the second polynomial calculation unit 40,
Figure 112017009186411-pat00342
Wow
Figure 112017009186411-pat00343
And the coefficients of the two polynomials are interleaved to obtain the product of the polynomials A and B
Figure 112017009186411-pat00344
(S500).

다음으로, 도 2에 따라 수행된 첫 번째 단계, 즉 두 다항식의 곱셈 연산에 대한 복잡도(complexity)를 설명한다. Next, the complexity of the first step performed according to FIG. 2, that is, the multiplication of two polynomials, is described.

도 2의 단계(S100)는 4개의

Figure 112017009186411-pat00345
블록들을 병렬적으로 수행하므로
Figure 112017009186411-pat00346
XOR 게이트 수,
Figure 112017009186411-pat00347
시간지연의 복잡도가 필요하다. Step S100 of FIG. 2 includes four
Figure 112017009186411-pat00345
Blocks are executed in parallel
Figure 112017009186411-pat00346
XOR gate count,
Figure 112017009186411-pat00347
Complexity of time delay is required.

도 2의 단계(S200)는 4개의

Figure 112017009186411-pat00348
블록들을 병렬적으로 수행하므로
Figure 112017009186411-pat00349
AND 게이트 수,
Figure 112017009186411-pat00350
시간지연의 복잡도가 요구된다. Step S200 of FIG. 2 includes four
Figure 112017009186411-pat00348
Blocks are executed in parallel
Figure 112017009186411-pat00349
AND gate count,
Figure 112017009186411-pat00350
Complexity of time delay is required.

도 2의 단계(S300)는

Figure 112017009186411-pat00351
블록 수행 후
Figure 112017009186411-pat00352
블록을 수행한다. 이는
Figure 112017009186411-pat00353
XOR 게이트 수,
Figure 112017009186411-pat00354
시간지연이 필요하다. 마지막 쉬프트 블록은 하드웨어에서 비용없이 수행될 수 있다. Step S300 of FIG.
Figure 112017009186411-pat00351
After block execution
Figure 112017009186411-pat00352
Block. this is
Figure 112017009186411-pat00353
XOR gate count,
Figure 112017009186411-pat00354
Time delay is required. The last shift block can be performed in hardware without cost.

도 2의 단계(S400)에 대한 복잡도는 그 과정을 상세하게 도시화한 도 3을 통해 더욱 쉽게 알 수 있다. The complexity of step S400 of FIG. 2 can be more easily understood by referring to FIG. 3 which shows the process in detail.

도 3의

Figure 112017009186411-pat00355
Blocks은
Figure 112017009186411-pat00356
XOR 게이트 수,
Figure 112017009186411-pat00357
시간지연이 필요하다. 다음
Figure 112017009186411-pat00358
Blocks에서는 4개의
Figure 112017009186411-pat00359
블록들이 병렬적으로 수행되므로 그의 복잡도는
Figure 112017009186411-pat00360
XOR 게이트 수,
Figure 112017009186411-pat00361
시간지연이다. Addition Blocks에서는 변수
Figure 112017009186411-pat00362
에 대해 차수가
Figure 112017009186411-pat00363
인 다항식들의 두 덧셈
Figure 112017009186411-pat00364
Figure 112017009186411-pat00365
이 병렬적으로 수행되므로
Figure 112017009186411-pat00366
XOR 게이트 수,
Figure 112017009186411-pat00367
시간지연이 필요하다. 도 3에 있는 쉬프트 블록과 상호 배치 블록의 수행은 하드웨어에서 비용을 발생하지 않는다. 그러므로 도 2의 단계(S400)의 복잡도는
Figure 112017009186411-pat00368
XOR 게이트 수,
Figure 112017009186411-pat00369
시간지연이라는 것을 알 수 있다. 3
Figure 112017009186411-pat00355
Blocks
Figure 112017009186411-pat00356
XOR gate count,
Figure 112017009186411-pat00357
Time delay is required. next
Figure 112017009186411-pat00358
In Blocks, four
Figure 112017009186411-pat00359
Since the blocks are performed in parallel, their complexity is
Figure 112017009186411-pat00360
XOR gate count,
Figure 112017009186411-pat00361
Time delay. Addition Blocks
Figure 112017009186411-pat00362
About
Figure 112017009186411-pat00363
Two additions of polynomials
Figure 112017009186411-pat00364
Wow
Figure 112017009186411-pat00365
Is performed in parallel
Figure 112017009186411-pat00366
XOR gate count,
Figure 112017009186411-pat00367
Time delay is required. Implementation of the shift blocks and interleaving blocks in FIG. 3 does not incur cost in hardware. Therefore, the complexity of step S400 of FIG.
Figure 112017009186411-pat00368
XOR gate count,
Figure 112017009186411-pat00369
Time delay.

마지막으로 도 2의 (S500)의 상호 배치 블록은 비용없이 수행된다. Finally, the interleaving block of (S500) of Figure 2 is performed without cost.

따라서 도 2에 따라 수행된 첫 번째 단계, 즉 다항식의 곱셈

Figure 112017009186411-pat00370
를 계산하는데 필요한 복잡도는 앞의 [표 1]를 이용하면 다음과 같다.Thus, the first step performed according to FIG. 2, i.e., the multiplication of the polynomial
Figure 112017009186411-pat00370
The complexity required to calculate the complexity is given by [Table 1].

XOR 게이트 수Number of XOR gates

Figure 112017009186411-pat00371
Figure 112017009186411-pat00371

AND 게이트 수

Figure 112017009186411-pat00372
및AND gate count
Figure 112017009186411-pat00372
And

총 시간복잡도Total time complexity

Figure 112017009186411-pat00373
Figure 112017009186411-pat00373

이다. to be.

다음의 [표 2]는 첫 번째 단계, 즉 차수

Figure 112017009186411-pat00374
인 두 다항식의 기존 곱셈 연산 방법들과 본 발명의 도 2의 실시 예에 따른 연산 방법의 복잡도들을 비교한다. [표 2]에서 알 수 있듯이 본 발명의 실시 예에 따른 연산 방법은 비교예2([H. Fan, J. Sun, M. Gu, and K.-Y. Lam, “Karatsuba-Ofman polynomial multiplication algorithms,”IET Information Security, vol. 4, pp. 8-14, 2010]), 및 비교예3([M. Cenk, M.A. Hasan, and C. Negre, “subquadratic space complexity binary polynomial multipliers based on block recombination,”IEEE Trans. Computers, vol. 63, no. 9, pp. 2273-2287, 2014])에 비해 낮은 공간 복잡도를 가진다. The following [Table 2] shows the first step,
Figure 112017009186411-pat00374
And the complexity of the operation method according to the embodiment of FIG. 2 of the present invention are compared with each other. As can be seen from Table 2, the calculation method according to the embodiment of the present invention is similar to that of Comparative Example 2 (H. Fan, J. Sun, M. Gu, and K.-Y. Lam, Karatsuba-Ofman polynomial multiplication algorithms (IET Information Security, vol. 4, pp. 8-14, 2010) and Comparative Example 3 (M. Cenk, MA Hasan, and C. Negre, "Subquadratic space complexity binary polynomial multiplier based on block recombination, "IEEE Trans. Computers, vol. 63, no. 9, pp. 2273-2287, 2014).

Figure 112017009186411-pat00375
Figure 112017009186411-pat00375

이와 같이 본 발명의 일 실시예에 따른 유한체 병렬 곱셈 장치 및 방법은 차수가

Figure 112017009186411-pat00376
인 두 다항식의 곱셈 연산을 복잡도면에서 보다 효율적으로 수행할 수 있도록 한다. As described above, the finite-field parallel multiplier and method according to an embodiment of the present invention are characterized in that the order
Figure 112017009186411-pat00376
So that the multiplication operation of the two polynomials can be performed more efficiently in the complex drawings.

또한, 본 발명의 일 측면에 따른 유한체 병렬 곱셈 장치 및 방법은 이를 기반으로 하는 모든 하드웨어 설계에 적용될 수 있으며 특히, 이를 이용한 유한체

Figure 112017009186411-pat00377
상의 곱셈 연산을 효율적으로 수행할 수 있도록 한다.In addition, the finite field parallel multiplier and method according to an aspect of the present invention can be applied to all hardware designs based on the finite field parallel multiplier, and in particular,
Figure 112017009186411-pat00377
So that the multiplication operation can be performed efficiently.

본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며 당해 기술이 속하는 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 아래의 특허청구범위에 의하여 정해져야할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, I will understand. Accordingly, the true scope of the present invention should be determined by the following claims.

10: 제1 벡터 연산부
20: 제2 벡터 연산부
30: 제1 다항식 연산부
40: 제2 다항식 연산부
50: 출력부
60: 모듈러 감산부
10: first vector computing unit
20: second vector operation unit
30: first polynomial operation unit
40: second polynomial operation unit
50: Output section
60: modular subtractor

Claims (13)

차수
Figure 112017009186411-pat00378
인 두 다항식
Figure 112017009186411-pat00379
Figure 112017009186411-pat00380
으로부터 각 성분의 개수가
Figure 112017009186411-pat00381
인 벡터를 생성하는 제1 벡터 연산부;
상기 제1 벡터 연산부에서 생성된 벡터들을 이용하여 각 성분의 개수가
Figure 112017009186411-pat00382
인 벡터를 생성하는 제2 벡터 연산부;
상기 제2 벡터 연산부에서 생성된 벡터들을 이용하여 다항식
Figure 112017009186411-pat00383
를 연산하는 제1 다항식 연산부;
상기 제2 벡터 연산부에서 생성된 벡터들을 이용하여 다항식
Figure 112017009186411-pat00384
를 연산하는 제2 다항식 연산부 및;
상기 제1 다항식 연산부와 상기 제2 다항식 연산부에 의해 각각 연산된 다항식
Figure 112017009186411-pat00385
및 다항식
Figure 112017009186411-pat00386
으로부터 두 다항식 A와 B의 곱
Figure 112017009186411-pat00387
를 출력하는 출력부를 포함하는 유한체 병렬 곱셈 장치.
Order
Figure 112017009186411-pat00378
Two polynomials
Figure 112017009186411-pat00379
Wow
Figure 112017009186411-pat00380
≪ / RTI >
Figure 112017009186411-pat00381
A first vector operation unit for generating a vector vector;
And the number of each component is calculated using the vectors generated in the first vector computing unit
Figure 112017009186411-pat00382
A second vector operation unit for generating a vector vector;
And a second vector computing unit
Figure 112017009186411-pat00383
A first polynomial operation unit operable to:
And a second vector computing unit
Figure 112017009186411-pat00384
A second polynomial operation unit operable to:
Wherein the first polynomial calculation unit and the second polynomial calculation unit calculate a polynomial
Figure 112017009186411-pat00385
And polynomial
Figure 112017009186411-pat00386
The product of two polynomials A and B
Figure 112017009186411-pat00387
And an output unit for outputting the output of the finite-field parallel multiplier.
제 1 항에 있어서, 상기 제1 벡터 연산부는 다항식
Figure 112017009186411-pat00388
Figure 112017009186411-pat00389
으로부터 차수가
Figure 112017009186411-pat00390
인 네 개의 다항식
Figure 112017009186411-pat00391
을 입력받아 각 성분의 개수가 각
Figure 112017009186411-pat00392
개의 성분(component)을 갖는 벡터
Figure 112017009186411-pat00393
,
Figure 112017009186411-pat00394
,
Figure 112017009186411-pat00395
,
Figure 112017009186411-pat00396
을 생성하는 것을 특징으로 하는 유한체 병렬 곱셈 장치.
2. The apparatus according to claim 1,
Figure 112017009186411-pat00388
Wow
Figure 112017009186411-pat00389
Order from
Figure 112017009186411-pat00390
Four polynomials
Figure 112017009186411-pat00391
And the number of each component is
Figure 112017009186411-pat00392
A vector having < RTI ID = 0.0 >
Figure 112017009186411-pat00393
,
Figure 112017009186411-pat00394
,
Figure 112017009186411-pat00395
,
Figure 112017009186411-pat00396
And outputs the result of the multiplication.
제 1 항에 있어서, 상기 제2 벡터 연산부는 상기 제1 벡터 연산부에서 연산된 벡터들을 입력받아 성분끼리의 곱 연산을 통해
Figure 112017009186411-pat00397
Figure 112017009186411-pat00398
에 대해 벡터들
Figure 112017009186411-pat00399
을 생성하는 것을 특징으로 하는 유한체 병렬 곱셈 장치.
[2] The apparatus of claim 1, wherein the second vector operation unit receives vectors calculated in the first vector operation unit,
Figure 112017009186411-pat00397
sign
Figure 112017009186411-pat00398
/ RTI >
Figure 112017009186411-pat00399
And outputs the result of the multiplication.
제 1 항에 있어서, 상기 제1 다항식 연산부는 상기 제2 벡터 연산부에 의해 연산된 벡터들 중
Figure 112017009186411-pat00400
Figure 112017009186411-pat00401
을 이용하여 다항식
Figure 112017009186411-pat00402
를 계산하는 것을 특징으로 하는 유한체 병렬 곱셈 장치.
2. The apparatus of claim 1, wherein the first polynomial operation unit comprises:
Figure 112017009186411-pat00400
and
Figure 112017009186411-pat00401
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00402
And a second multiplier for multiplying the first multiplier and the second multiplier.
제 4 항에 있어서, 상기 제1 다항식 연산부는
Figure 112017009186411-pat00403
Figure 112017009186411-pat00404
의 합
Figure 112017009186411-pat00405
을 계산하고,
Figure 112017009186411-pat00406
벡터를 이용하여 다항식
Figure 112017009186411-pat00407
을 계산한 후, 다항식
Figure 112017009186411-pat00408
를 쉬프트(shift)하여 다항식
Figure 112017009186411-pat00409
를 출력하는 것을 특징으로 하는 유한체 병렬 곱셈 장치.
5. The apparatus of claim 4, wherein the first polynomial operation unit
Figure 112017009186411-pat00403
and
Figure 112017009186411-pat00404
Sum of
Figure 112017009186411-pat00405
Lt; / RTI >
Figure 112017009186411-pat00406
Using the vector,
Figure 112017009186411-pat00407
, The polynomial equation
Figure 112017009186411-pat00408
To obtain a polynomial < RTI ID = 0.0 >
Figure 112017009186411-pat00409
And outputs the result of the multiplication.
제 1 항에 있어서, 상기 제2 다항식 연산부는 상기 제2 벡터 연산부에 의해 연산된 벡터들 중
Figure 112017009186411-pat00410
Figure 112017009186411-pat00411
을 이용하여 다항식
Figure 112017009186411-pat00412
를 연산하는 것을 특징으로 하는 유한체 병렬 곱셈 장치.
The apparatus of claim 1, wherein the second polynomial calculator comprises:
Figure 112017009186411-pat00410
and
Figure 112017009186411-pat00411
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00412
To-parallel multiplier.
제 6 항에 있어서, 상기 제2 다항식 연산부는 상기 제2 벡터 연산부에 의해 연산된
Figure 112017009186411-pat00413
Figure 112017009186411-pat00414
을 입력받아 를 계산하고, 계산된
Figure 112017009186411-pat00416
을 이용하여 다항식
Figure 112017009186411-pat00417
을 계산하며, 계산된 변수
Figure 112017009186411-pat00418
에 대한 다항식
Figure 112017009186411-pat00419
을 입력받아 다항식의 덧셈을 수행하여
Figure 112017009186411-pat00420
Figure 112017009186411-pat00421
를 생성한 후, 다항식
Figure 112017009186411-pat00422
Figure 112017009186411-pat00423
의 계수를 상호 배치(interleaving)함으로써 다항식
Figure 112017009186411-pat00424
를 출력하는 것을 특징으로 하는 유한체 병렬 곱셈 장치.
7. The apparatus of claim 6, wherein the second polynomial calculator comprises:
Figure 112017009186411-pat00413
and
Figure 112017009186411-pat00414
Take input And calculates
Figure 112017009186411-pat00416
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00417
, And the calculated variable
Figure 112017009186411-pat00418
Polynomial for
Figure 112017009186411-pat00419
And the addition of the polynomial is performed
Figure 112017009186411-pat00420
Wow
Figure 112017009186411-pat00421
And then,
Figure 112017009186411-pat00422
Wow
Figure 112017009186411-pat00423
By interleaving the coefficients of the polynomial < RTI ID = 0.0 >
Figure 112017009186411-pat00424
And outputs the result of the multiplication.
제 1 항에 있어서, 상기 출력부에 의해 연산된 다항식
Figure 112017009186411-pat00425
에 대해 다항식
Figure 112017009186411-pat00426
에 의한 모듈러(modular) 감산 연산을 하여 두 원소의 곱
Figure 112017009186411-pat00427
를 얻는 모듈러 감산부를 더 포함하는 것을 특징으로 하는 유한체 병렬 곱셈 장치.
2. The apparatus of claim 1, wherein the polynomial < RTI ID = 0.0 >
Figure 112017009186411-pat00425
Polynomial for
Figure 112017009186411-pat00426
And the product of the two elements
Figure 112017009186411-pat00427
And a modulo subtracter operable to derive a finite field parallel multiplier.
제1 벡터 연산부가 차수
Figure 112017009186411-pat00428
인 다항식
Figure 112017009186411-pat00429
Figure 112017009186411-pat00430
으로부터 차수가
Figure 112017009186411-pat00431
인 네 개의 다항식
Figure 112017009186411-pat00432
을 입력받아 각 성분의 개수가
Figure 112017009186411-pat00433
인 벡터
Figure 112017009186411-pat00434
,
Figure 112017009186411-pat00435
,
Figure 112017009186411-pat00436
,
Figure 112017009186411-pat00437
를 생성하는 단계;
제2 벡터 연산부가 상기 제1 벡터 연산부에서 생성된 벡터들을 이용하여 각 성분의 개수가
Figure 112017009186411-pat00438
인 벡터를 생성하는 단계;
제1 다항식 연산부가 상기 제2 벡터 연산부에서 생성된 벡터 중
Figure 112017009186411-pat00439
Figure 112017009186411-pat00440
을 이용하여 다항식
Figure 112017009186411-pat00441
를 연산하는 단계;
제2 다항식 연산부가 상기 제2 벡터 연산부에서 생성된 벡터 중
Figure 112017009186411-pat00442
Figure 112017009186411-pat00443
을 이용하여 다항식
Figure 112017009186411-pat00444
를 연산하는 단계; 및
출력부가 상기 제1 다항식 연산부와 상기 제2 다항식 연산부에 의해 각각 연산된 다항식
Figure 112017009186411-pat00445
및 다항식
Figure 112017009186411-pat00446
으로부터 두 다항식 A와 B의 곱
Figure 112017009186411-pat00447
를 출력하는 단계를 포함하는 유한체 병렬 곱셈 방법.
The first vector operation unit
Figure 112017009186411-pat00428
In polynomial
Figure 112017009186411-pat00429
Wow
Figure 112017009186411-pat00430
Order from
Figure 112017009186411-pat00431
Four polynomials
Figure 112017009186411-pat00432
And the number of each component is
Figure 112017009186411-pat00433
In vector
Figure 112017009186411-pat00434
,
Figure 112017009186411-pat00435
,
Figure 112017009186411-pat00436
,
Figure 112017009186411-pat00437
≪ / RTI >
The second vector operation unit uses the vectors generated in the first vector operation unit,
Figure 112017009186411-pat00438
Generating an in-vector;
The first polynomial operation unit may be a vector generated by the second vector operation unit
Figure 112017009186411-pat00439
and
Figure 112017009186411-pat00440
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00441
;
And the second polynomial operation unit is a vector generated in the second vector operation unit
Figure 112017009186411-pat00442
and
Figure 112017009186411-pat00443
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00444
; And
Wherein the output unit comprises: a first polynomial calculation unit and a second polynomial calculation unit,
Figure 112017009186411-pat00445
And polynomial
Figure 112017009186411-pat00446
The product of two polynomials A and B
Figure 112017009186411-pat00447
And outputting the finite field parallel multiplication method.
제 9 항에 있어서, 상기 제2 벡터 연산부는 상기 제1 벡터 연산부에서 연산된 벡터들을 입력받아 성분끼리의 곱 연산을 통해
Figure 112017009186411-pat00448
Figure 112017009186411-pat00449
에 대해 벡터들
Figure 112017009186411-pat00450
을 생성하는 것을 특징으로 하는 유한체 병렬 곱셈 방법.
[11] The apparatus of claim 9, wherein the second vector calculator receives the vectors calculated by the first vector calculator,
Figure 112017009186411-pat00448
sign
Figure 112017009186411-pat00449
/ RTI >
Figure 112017009186411-pat00450
And generating a finite field parallel multiplication method.
제 9 항에 있어서, 상기 제1 다항식 연산부는
Figure 112017009186411-pat00451
Figure 112017009186411-pat00452
의 합
Figure 112017009186411-pat00453
을 계산하고,
Figure 112017009186411-pat00454
벡터를 입력받아 다항식
Figure 112017009186411-pat00455
을 계산한 후, 다항식
Figure 112017009186411-pat00456
를 쉬프트(shift)하여 다항식
Figure 112017009186411-pat00457
를 출력하는 것을 특징으로 하는 유한체 병렬 곱셈 방법.
The apparatus of claim 9, wherein the first polynomial operation unit
Figure 112017009186411-pat00451
and
Figure 112017009186411-pat00452
Sum of
Figure 112017009186411-pat00453
Lt; / RTI >
Figure 112017009186411-pat00454
By taking the vector as a polynomial
Figure 112017009186411-pat00455
, The polynomial equation
Figure 112017009186411-pat00456
To obtain a polynomial < RTI ID = 0.0 >
Figure 112017009186411-pat00457
And outputting the multiplication result.
제 9 항에 있어서, 상기 제2 다항식 연산부는 상기 제2 벡터 연산부에 의해 연산된
Figure 112017009186411-pat00458
Figure 112017009186411-pat00459
을 입력받아
Figure 112017009186411-pat00460
를 계산하고, 계산된
Figure 112017009186411-pat00461
을 이용하여 다항식
Figure 112017009186411-pat00462
을 계산하며, 계산된 변수
Figure 112017009186411-pat00463
에 대한 다항식
Figure 112017009186411-pat00464
을 입력받아 다항식의 덧셈을 수행하여
Figure 112017009186411-pat00465
Figure 112017009186411-pat00466
를 생성한 후, 다항식
Figure 112017009186411-pat00467
Figure 112017009186411-pat00468
의 계수를 상호 배치(interleaving)하여 다항식
Figure 112017009186411-pat00469
를 출력하는 것을 특징으로 하는 유한체 병렬 곱셈 방법.
10. The apparatus according to claim 9, wherein the second polynomial calculator comprises:
Figure 112017009186411-pat00458
and
Figure 112017009186411-pat00459
Take input
Figure 112017009186411-pat00460
And calculates
Figure 112017009186411-pat00461
Lt; RTI ID = 0.0 >
Figure 112017009186411-pat00462
, And the calculated variable
Figure 112017009186411-pat00463
Polynomial for
Figure 112017009186411-pat00464
And the addition of the polynomial is performed
Figure 112017009186411-pat00465
Wow
Figure 112017009186411-pat00466
And then,
Figure 112017009186411-pat00467
Wow
Figure 112017009186411-pat00468
By interleaving the coefficients of the polynomial < RTI ID = 0.0 >
Figure 112017009186411-pat00469
And outputting the multiplication result.
제 9 항에 있어서, 모듈러 감산부가 상기 출력부에 의해 연산된 다항식
Figure 112017009186411-pat00470
에 대해 다항식
Figure 112017009186411-pat00471
에 의한 모듈러(modular) 감산 연산을 하여 두 원소의 곱
Figure 112017009186411-pat00472
를 얻는 단계를 더 포함하는 것을 특징으로 하는 유한체 병렬 곱셈 방법.
10. The image processing apparatus according to claim 9, wherein the modulo subtracting unit
Figure 112017009186411-pat00470
Polynomial for
Figure 112017009186411-pat00471
And the product of the two elements
Figure 112017009186411-pat00472
Further comprising the step of: obtaining a finite field parallel multiplication method.
KR1020170012310A 2017-01-25 2017-01-25 Parallel multipliier apparatus and method over finite field KR101837750B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170012310A KR101837750B1 (en) 2017-01-25 2017-01-25 Parallel multipliier apparatus and method over finite field
PCT/KR2017/013417 WO2018139750A1 (en) 2017-01-25 2017-11-23 Finite field parallel multiplier and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170012310A KR101837750B1 (en) 2017-01-25 2017-01-25 Parallel multipliier apparatus and method over finite field

Publications (1)

Publication Number Publication Date
KR101837750B1 true KR101837750B1 (en) 2018-03-13

Family

ID=61660793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170012310A KR101837750B1 (en) 2017-01-25 2017-01-25 Parallel multipliier apparatus and method over finite field

Country Status (2)

Country Link
KR (1) KR101837750B1 (en)
WO (1) WO2018139750A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020105797A1 (en) * 2018-11-22 2020-05-28 부산대학교 산학협력단 Polynomial expression operation optimization device, polynomial expression operation optimization method, and recording medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100670780B1 (en) * 2004-10-29 2007-01-17 한국전자통신연구원 Apparatus for hybrid multiplier in GF2^m and Method for multiplying
KR100893695B1 (en) * 2006-12-15 2009-04-17 영동대학교 Architecture of fast-serial finite field multiplier
KR100976232B1 (en) * 2009-02-13 2010-08-17 고려대학교 산학협력단 Fast bit-parellel polynomial multipier and method thereof
KR101418686B1 (en) * 2013-08-02 2014-07-10 공주대학교 산학협력단 Subquadratic Space Complexity Parallel Multiplier and Method using type 4 Gaussian normal basis
KR101533929B1 (en) * 2014-06-27 2015-07-09 공주대학교 산학협력단 Subquadratic Space Complexity Parallel Multiplier for using shifted polynomial basis, method thereof, and recording medium using this

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020105797A1 (en) * 2018-11-22 2020-05-28 부산대학교 산학협력단 Polynomial expression operation optimization device, polynomial expression operation optimization method, and recording medium

Also Published As

Publication number Publication date
WO2018139750A1 (en) 2018-08-02

Similar Documents

Publication Publication Date Title
D'Andrea et al. Explicit formulas for the multivariate resultant
Erdem et al. A general digit-serial architecture for montgomery modular multiplication
TWI406138B (en) Sequential galois field multiplication architecture and method
Hoang Ngoc Minh On a conjecture by Pierre Cartier about a group of associators
Fan et al. A survey of some recent bit-parallel GF (2n) multipliers
Cenk et al. Improved three-way split formulas for binary polynomial and Toeplitz matrix vector products
Chinnathambi et al. FPGA implementation of fast and area efficient CORDIC algorithm
Morales-Sandoval et al. Area/performance trade-off analysis of an FPGA digit-serial GF (2m) Montgomery multiplier based on LFSR
JPH0728782A (en) Operating circuit and operating method
KR101837750B1 (en) Parallel multipliier apparatus and method over finite field
KR100950581B1 (en) Bit-parallel multiplier and multiplying method for finite field using redundant representation
KR102110162B1 (en) Parallel finite field multiplication method based on a polynomial multiplication method
Mirhosseini et al. A reduced-bias approach with a lightweight hard-multiple generator to design a radix-8 modulo $2^{n}+ 1$ multiplier
Gustafsson et al. Low-complexity constant coefficient matrix multiplication using a minimum spanning tree approach
Lima et al. A Karatsuba-based algorithm for polynomial multiplication in Chebyshev form
KR101607812B1 (en) METHOD AND APPARATUS FOR PARALLEL MULTIPLICATION CALCULATION USING DICKSON BASIS ON GF(2^n) FINITE FIELD
Mishra et al. Synthesis comparison of Karatsuba multiplierusing polynomial multiplication, vedic multiplier and classical multiplier
Mishra et al. Implementation of karatsuba algorithm using polynomial multiplication
Baldeaux et al. Duality theory and propagation rules for higher order nets
JP4933405B2 (en) Data conversion apparatus and control method thereof
Dilcher Determinant Expressions for $ q $-Harmonic Congruences and Degenerate Bernoulli Numbers
KR20200022844A (en) A PARALLEL GF(2^m) MULTIPLIER AND MULTIPLICATION METHOD USING GAUSSIAN NORMAL BASIS
Ghosh et al. FPGA implementation of RNS adder based MAC unit in ternary value logic domain for signal processing algorithm and its performance analysis
Tanaka et al. Novel binary signed-digit addition algorithm for FPGA implementation
Elias et al. Area efficient fully parallel distributed arithmetic architecture for one-dimensional discrete cosine transform

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant