KR102110162B1 - 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법 - Google Patents

다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법 Download PDF

Info

Publication number
KR102110162B1
KR102110162B1 KR1020170181906A KR20170181906A KR102110162B1 KR 102110162 B1 KR102110162 B1 KR 102110162B1 KR 1020170181906 A KR1020170181906 A KR 1020170181906A KR 20170181906 A KR20170181906 A KR 20170181906A KR 102110162 B1 KR102110162 B1 KR 102110162B1
Authority
KR
South Korea
Prior art keywords
polynomials
polynomial
subordinate
finite
finite field
Prior art date
Application number
KR1020170181906A
Other languages
English (en)
Other versions
KR20190079857A (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 KR1020170181906A priority Critical patent/KR102110162B1/ko
Publication of KR20190079857A publication Critical patent/KR20190079857A/ko
Application granted granted Critical
Publication of KR102110162B1 publication Critical patent/KR102110162B1/ko

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
    • 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

Landscapes

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

Abstract

유한체의 병렬 곱셈 연산 방법이 개시된다. 본 발명의 유한체의 병렬 곱셈 연산 방법은 차수
Figure 112017130222776-pat00630
이하인
Figure 112017130222776-pat00631
의 다항식
Figure 112017130222776-pat00632
으로부터 차수
Figure 112017130222776-pat00633
이하인
Figure 112017130222776-pat00634
의 세 개의 다항식
Figure 112017130222776-pat00635
을 입력받아 차수
Figure 112017130222776-pat00636
이하인 다섯 개의
Figure 112017130222776-pat00637
의 다항식들을 생성하는 제 1단계; 차수
Figure 112017130222776-pat00638
이하인
Figure 112017130222776-pat00639
의 다항식
Figure 112017130222776-pat00640
으로부터 차수
Figure 112017130222776-pat00641
이하인
Figure 112017130222776-pat00642
의 세 개의 다항식
Figure 112017130222776-pat00643
을 입력받아 차수
Figure 112017130222776-pat00644
이하인 다섯 개의
Figure 112017130222776-pat00645
의 다항식들을 생성하는 제 2단계; 상기 제 1단계와 상기 제 2단계에서 생성된 열 개의 다항식들을 이용하여 다섯 쌍의 다항식들의 곱
Figure 112017130222776-pat00646
을 재귀적인 방법으로 생성하는 제 3단계; 및 상기 제 3단계에서 생성된 다항식들의 곱들
Figure 112017130222776-pat00647
을 이용하여 두 다항식
Figure 112017130222776-pat00648
의 곱
Figure 112017130222776-pat00649
를 출력하는 제 4단계를 포함하는 것을 특징으로 한다.

Description

다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법{PARALLEL FINITE FIELD MULTIPLICATION METHOD BASED ON A POLYNOMIAL MULTIPLICATION METHOD}
본 발명은 유한체의 병렬 곱셈 연산 방법에 관한 것으로서, 보다 상세하게는 공개키 암호(public key cryptography)나 코딩 이론(coding theory)에 사용되는 유한체의 병렬 곱셈 연산 방법에 관한 것이다.
유한체
Figure 112017130222776-pat00001
Figure 112017130222776-pat00002
의 기약 다항식(irreducible polynomial)
Figure 112017130222776-pat00003
에 의해 정의된다고 하자. 그러면,
Figure 112017130222776-pat00004
Figure 112017130222776-pat00005
와 동형(isomorphism)
Figure 112017130222776-pat00006
이므로, 유한체
Figure 112017130222776-pat00007
의 임의의 원소
Figure 112017130222776-pat00008
는 차수가
Figure 112017130222776-pat00009
보다 작은 다항식(polynomial) 형태
Figure 112017130222776-pat00010
로 표현이 가능하다(
Figure 112017130222776-pat00011
). 이때, 집합
Figure 112017130222776-pat00012
Figure 112017130222776-pat00013
상에서
Figure 112017130222776-pat00014
의 다항식 기저(polynomial basis)라고 한다. 다항식 기저는 유한체의 원소를 표현할 때 가장 널리 쓰이는 기저 중 하나이다.
유한체상에서 연산(arithmetic operation)은 코딩 이론이나 암호(cryptography), 특히 타원 곡선 암호(elliptic curve cryptography)에 널리 쓰인다. 그 중 곱셈 연산(field multiplication)은 가장 중요하고 핵심이 되는 연산으로 효율적인 곱셈기(multiplier)에 대한 연구는 많은 관심을 받으며 진행되어 오고 있다
다항식 기저에 의해
Figure 112017130222776-pat00015
의 두 원소
Figure 112017130222776-pat00016
Figure 112017130222776-pat00017
가 주어졌을 때 (여기서,
Figure 112017130222776-pat00018
이다), 두 원소의 곱은 다음 두 단계에 의하여 구할 수 있다.
Figure 112017130222776-pat00019
단계(1):
Figure 112017130222776-pat00020
Figure 112017130222776-pat00021
를 다항식으로 간주하고 다항식의 곱셈을 수행하여
Figure 112017130222776-pat00022
를 얻는다.
Figure 112017130222776-pat00023
단계(2): 상기 생성된 다항식
Figure 112017130222776-pat00024
를 기약 다항식
Figure 112017130222776-pat00025
에 의한 모듈러(modular) 감산 연산을 하여, 두 원소의 곱
Figure 112017130222776-pat00026
를 얻는다.
이 경우, 유한체상의 두 원소의 곱셈 연산에 대한 복잡도(complexity)는 상기 두 단계의 복잡도에 의하여 결정된다. 단계(1)에서 두 다항식의 곱셈 연산을 수행할 때 필요한 공간 복잡도(space complexity), 즉
Figure 112017130222776-pat00027
상에서 요구되는 XOR 게이트(gate)와 AND 게이트 수는 일반적으로
Figure 112017130222776-pat00028
이다. 단계(2)의 기약 다항식에 의한 모듈러 감산 연산에 대한 비용은 기약 다항식
Figure 112017130222776-pat00029
의 항의 개수에 의해 영향을 받는다. 비특허문헌 1 [G. Seroussi, “Table of low-weight binary irreducible polynomials” HP Labs, Technical Reports HPL-98-135, 1998]에 의하면, 실제 응용에서 고려되는 유한체의 경우 유한체
Figure 112017130222776-pat00030
을 정의하는 기약 다항식으로 삼항 다항식(trinomial)이나 오항 다항식(pentanomial)이 존재한다. 이러한 삼항 또는 오항 다항식에 의한 모듈러 감산 연산은
Figure 112017130222776-pat00031
상에서 요구되는 게이트의 수가 단지
Figure 112017130222776-pat00032
으로 단계(1)과 비교하여 매우 적다. 따라서 효율적인 유한체의 곱셈기를 얻기 위해 단계(1), 즉 두 다항식의 곱셈 연산에 대한 복잡도 (complexity)를 줄이고자 하는 연구가 많이 이루어지고 있다. 실제 응용에 쓰이는 유한체
Figure 112017130222776-pat00033
의 크기, 즉
Figure 112017130222776-pat00034
의 크기는 매우 크므로, 곱셈 연산을 수행할 때 필요한 공간 복잡도가
Figure 112017130222776-pat00035
이 되는 이차 미만의 공간 복잡도(subquadratic space complexity)를 가진 병렬 곱셈기의 연구가 특히 관심을 받아왔다.
단계(1), 즉 두 다항식의 곱셈 연산의 한 방법으로 비특허문헌 2 [M. Cenk, C. Negre, and M. A. Hasan, “Improved three-way split formulas for binary polynomial and Toeplitz matrix vector products,” IEEE Trans. Comput., vol. 62, no. 7, pp. 1345-1361, 2013]에서 three-way split 방법이 제안되었다. 그 방법을 간단하게 설명하면 다음과 같다.
Figure 112017130222776-pat00036
을 3의 거듭제곱(power)라고 가정한다. 변수(variable)
Figure 112017130222776-pat00037
에 대해 차수
Figure 112017130222776-pat00038
이하인 두 다항식
Figure 112017130222776-pat00039
을 다음과 같이 세 부분으로 분할(split)한다. (여기서
Figure 112017130222776-pat00040
이다.)
Figure 112017130222776-pat00041
여기서, 다항식
Figure 112017130222776-pat00042
는 변수
Figure 112017130222776-pat00043
에 관해 차수가
Figure 112017130222776-pat00044
이하인 다항식으로 다음과 같이 정의된다.
Figure 112017130222776-pat00045
이진체
Figure 112017130222776-pat00046
의 확장체
Figure 112017130222776-pat00047
상에서 분할된 형태의 다항식들
Figure 112017130222776-pat00048
Figure 112017130222776-pat00049
의 여러 함숫값을 구하여 내삽법 (multi-evaluation과 interpolation 방법)을 적용하면 두 다항식의 곱
Figure 112017130222776-pat00050
는 다음과 같은 수학식을 통해 얻을 수 있다.
Figure 112017130222776-pat00051
여기서 상기 다항식들
Figure 112017130222776-pat00052
Figure 112017130222776-pat00053
Figure 112017130222776-pat00054
의 분할된 다항식들
Figure 112017130222776-pat00055
을 이용하여 다음과 같이 정의된다.
Figure 112017130222776-pat00056
상기 다섯 개의 다항식들
Figure 112017130222776-pat00057
는 곱
Figure 112017130222776-pat00058
를 구하기 위한 상기 three-way split 방법 (다항식들을 분할하고 여러 함숫값을 구한 후 내삽법을 적용하는 방법)을 재귀적으로(recursively) 사용하여 계산된다. 그 결과, 상기 three-way split 방법을 재귀적으로 이용한 다항식의 곱셈 연산 방법은 이차 미만의 공간 복잡도
Figure 112017130222776-pat00059
를 가지고 수행된다.
최근, 비특허문헌 3 [M. Cenk and M.A. Hasan, “Some new results on binary polynomial multiplication,” J. Cryptographic Engineering, vol. 5, no. 4, pp. 289-303, 2015]에서 앞의 비특허문헌 2에서 제안된 three-way split 방법을 개선하여 다항식 곱셈 연산 방법의 공간 복잡도를 약 50% 줄였다.
그러나 실제 응용에서 사용되고 있는 유한체
Figure 112017130222776-pat00060
의 크기는 계속 커지는 추세인 반면, 스마트 기기의 확산으로 인해 IT 기기의 소형화 및 경량화가 필요하므로 더욱 효율적인 복잡도를 갖는 병렬 곱셈기의 개발이 계속 요구되고 있다.
본 발명의 배경기술은 대한민국 공개특허공보 10-2011-0027176호(2011.03.16)의 '유한체의 원소간 비트-병렬 곱셈방법 및 장치'에 개시되어 있다.
본 발명은 전술한 문제점을 개선하기 위해 창안된 것으로서, 임의의 유한체
Figure 112017130222776-pat00061
상에서 공간 복잡도와 시간 복잡도면에서 우수한 유한체의 병렬 곱셈 연산 방법을 제공하는 것이다.
본 발명의 일 측면에 따른 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법은 차수
Figure 112017130222776-pat00062
이하인
Figure 112017130222776-pat00063
의 다항식
Figure 112017130222776-pat00064
으로부터 차수
Figure 112017130222776-pat00065
이하인
Figure 112017130222776-pat00066
의 세 개의 다항식
Figure 112017130222776-pat00067
을 입력받아 차수
Figure 112017130222776-pat00068
이하인 다섯 개의
Figure 112017130222776-pat00069
의 다항식들을 생성하는 제 1단계; 차수
Figure 112017130222776-pat00070
이하인
Figure 112017130222776-pat00071
의 다항식
Figure 112017130222776-pat00072
으로부터 차수
Figure 112017130222776-pat00073
이하인
Figure 112017130222776-pat00074
의 세 개의 다항식
Figure 112017130222776-pat00075
을 입력받아 차수
Figure 112017130222776-pat00076
이하인 다섯 개의
Figure 112017130222776-pat00077
의 다항식들을 생성하는 제 2단계; 상기 제 1단계와 상기 제 2단계에서 생성된 열 개의 다항식들을 이용하여 다섯 쌍의 다항식들의 곱
Figure 112017130222776-pat00078
을 재귀적인 방법으로 생성하는 제 3단계; 및 상기 제 3단계에서 생성된 다항식들의 곱들
Figure 112017130222776-pat00079
을 이용하여 두 다항식
Figure 112017130222776-pat00080
의 곱
Figure 112017130222776-pat00081
를 출력하는 제 4단계를 포함하는 것을 특징으로 한다.
본 발명의 상기 제 1단계에서 제 1정리를 이용하여 두 다항식들
Figure 112017130222776-pat00082
Figure 112017130222776-pat00083
를 동시에 계산하는 것을 특징으로 한다.
본 발명의 상기 제 3단계에서 다항식들
Figure 112017130222776-pat00084
을 입력받아 상기 제 4 단계의
Figure 112017130222776-pat00085
를 제 2정리를 이용하여 계산하고, 세 다항식들
Figure 112017130222776-pat00086
의 계수를 상호 배치하여 곱
Figure 112017130222776-pat00087
를 계산하는 것을 특징으로 한다.
본 발명의 다른 측면에 따른 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법은 차수
Figure 112017130222776-pat00088
이하인
Figure 112017130222776-pat00089
의 다항식
Figure 112017130222776-pat00090
으로부터 차수
Figure 112017130222776-pat00091
이하인
Figure 112017130222776-pat00092
의 세 개의 다항식
Figure 112017130222776-pat00093
을 입력받아 차수
Figure 112017130222776-pat00094
이하인 세 개의
Figure 112017130222776-pat00095
의 다항식들과 한 개의
Figure 112017130222776-pat00096
의 다항식을 생성하는 제 1단계; 차수
Figure 112017130222776-pat00097
이하인
Figure 112017130222776-pat00098
의 다항식
Figure 112017130222776-pat00099
으로부터 차수
Figure 112017130222776-pat00100
이하인
Figure 112017130222776-pat00101
의 세 개의 다항식
Figure 112017130222776-pat00102
을 입력받아 차수
Figure 112017130222776-pat00103
이하인 세 개의
Figure 112017130222776-pat00104
의 다항식들과 한 개의
Figure 112017130222776-pat00105
의 다항식을 생성하는 제 2단계; 상기 제 1단계와 상기 제 2단계에서 생성된 여덟 개의 다항식들을 이용하여 네 쌍의 다항식들의 곱
Figure 112017130222776-pat00106
을 생성하는 제 3단계; 및 상기 제 3단계에서 생성된 다항식들의 곱들
Figure 112017130222776-pat00107
을 이용하여 두 다항식
Figure 112017130222776-pat00108
의 곱
Figure 112017130222776-pat00109
를 출력하는 제 4단계를 포함하는 것을 특징으로 한다.
본 발명의 상기 제 3 단계에서 다항식들의 곱
Figure 112017130222776-pat00110
는 재귀적으로 사용하여 계산하고, 곱
Figure 112017130222776-pat00111
는 재귀적으로 계산하는 것을 특징으로 하되, 상기 곱
Figure 112017130222776-pat00112
는, 차수
Figure 112017130222776-pat00113
이하인
Figure 112017130222776-pat00114
의 다항식
Figure 112017130222776-pat00115
으로부터 차수
Figure 112017130222776-pat00116
이하인
Figure 112017130222776-pat00117
의 세 개의 다항식
Figure 112017130222776-pat00118
을 입력받아 차수
Figure 112017130222776-pat00119
이하인 다섯 개의
Figure 112017130222776-pat00120
의 다항식들을 생성하는 제 1단계; 차수
Figure 112017130222776-pat00121
이하인
Figure 112017130222776-pat00122
의 다항식
Figure 112017130222776-pat00123
으로부터 차수
Figure 112017130222776-pat00124
이하인
Figure 112017130222776-pat00125
의 세 개의 다항식
Figure 112017130222776-pat00126
을 입력받아 차수
Figure 112017130222776-pat00127
이하인 다섯 개의
Figure 112017130222776-pat00128
의 다항식들을 생성하는 제 2단계; 및 상기 제 1단계와 상기 제 2단계에서 생성된 열 개의 다항식들을 이용하여 재귀적인 방법으로 생성하는 것을 특징으로 한다.
본 발명의 또 다른 측면에 따른 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법은
Figure 112017130222776-pat00129
의 두 다항식의 병렬 곱셈 연산 방법으로 유한체
Figure 112017130222776-pat00130
의 병렬 곱셈 연산하는 것을 특징으로 한다.
본 발명에 따른 유한체
Figure 112017130222776-pat00131
의 병렬 곱셈 연산 방법은
Figure 112017130222776-pat00132
의 다항식을 분할한 후 확장체
Figure 112017130222776-pat00133
상에서 분할된 형태의 다항식의 여러 함숫값을 구한 후 유한체
Figure 112017130222776-pat00134
상에서 분할된 형태의 다항식에 내삽법(multi-evaluation과 interpolation 방법) 및 새로운 기법들을 적용하여 공간 복잡도와 시간 복잡도면에 우수한 다항식 곱셈 연산 수행 방법을 제안하고 이를 기반으로 유한체
Figure 112017130222776-pat00135
의 곱셈기를 제공할 수 있도록 한다.
도 1은 본 발명의 실시 예에 따라
Figure 112017130222776-pat00136
의 두 다항식의 곱셈 연산을 수행하기 위한 제어 흐름도이다.
도 2는 본 발명의 다른 실시 예에 따라
Figure 112017130222776-pat00137
의 두 다항식의 곱셈 연산을 수행하기 위한 제어 흐름도이다.
이하에서는 본 발명의 일 실시 예에 따른 유한체의 병렬 곱셈 연산 방법을 첨부된 도면들을 참조하여 상세하게 설명한다. 이러한 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 이용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
유한체
Figure 112017130222776-pat00138
이 기약 다항식
Figure 112017130222776-pat00139
에 의해 정의된다고 하자. 그러면,
Figure 112017130222776-pat00140
이고
Figure 112017130222776-pat00141
의 임의의 두 원소
Figure 112017130222776-pat00142
Figure 112017130222776-pat00143
는 다항식 기저
Figure 112017130222776-pat00144
를 이용하여 다음과 같이 표현될 수 있다. (여기서
Figure 112017130222776-pat00145
이다.)
Figure 112017130222776-pat00146
두 원소들
Figure 112017130222776-pat00147
Figure 112017130222776-pat00148
의 곱은 다음 두 단계에 의하여 계산 가능하다.
Figure 112017130222776-pat00149
단계(1):
Figure 112017130222776-pat00150
Figure 112017130222776-pat00151
를 다항식으로 간주하고 다항식의 곱셈을 수행하여
Figure 112017130222776-pat00152
를 얻는다.
Figure 112017130222776-pat00153
단계(2): 상기 생성된 다항식
Figure 112017130222776-pat00154
를 다항식
Figure 112017130222776-pat00155
에 의한 모듈러(modular) 감산 연산을 통해, 두 원소의 곱
Figure 112017130222776-pat00156
를 얻는다.
단계(2)의 모듈러 감산 연산의 비용은 앞서 언급했듯이 단계(1)과 비교하여 매우 낮다. 따라서 유한체상에서 곱셈 연산의 효율성은 단계(1)의 다항식의 곱셈 연산을 얼마나 효율적으로 수행할 수 있는지에 의존한다. 그러므로 지금부터는 단계(1)에 초점을 맞추어 그의 효율적인 수행방법을 제안하고자 한다.
이를 위해, 앞으로는 두 원소
Figure 112017130222776-pat00157
Figure 112017130222776-pat00158
를 다항식으로 간주한다.
도 1과 도 2는 본 발명의 실시 예에 따른 단계(1), 즉 두 다항식
Figure 112017130222776-pat00159
Figure 112017130222776-pat00160
의 곱셈 연산을 수행하는 방법을
Figure 112017130222776-pat00161
Figure 112017130222776-pat00162
인 경우에 따라 각각 나타낸 제어 흐름도들이다.
차수
Figure 112017130222776-pat00163
이하인 두 다항식
Figure 112017130222776-pat00164
Figure 112017130222776-pat00165
를 다음과 같이 세 부분으로 분할한다.
Figure 112017130222776-pat00166
,
Figure 112017130222776-pat00167
여기서, 다항식
Figure 112017130222776-pat00168
은 변수
Figure 112017130222776-pat00169
에 관해 차수가
Figure 112017130222776-pat00170
이하인 다항식들이다.
도 1은 변수
Figure 112017130222776-pat00171
에 대해 차수
Figure 112017130222776-pat00172
이하인
Figure 112017130222776-pat00173
의 다항식
Figure 112017130222776-pat00174
로부터 변수
Figure 112017130222776-pat00175
에 대해 차수
Figure 112017130222776-pat00176
이하인 다항식
Figure 112017130222776-pat00177
을 입력받아 변수
Figure 112017130222776-pat00178
에 대해 차수
Figure 112017130222776-pat00179
이하인
Figure 112017130222776-pat00180
의 다항식들
Figure 112017130222776-pat00181
를 생성하는 단계(100), 변수
Figure 112017130222776-pat00182
에 대해 차수
Figure 112017130222776-pat00183
이하인
Figure 112017130222776-pat00184
의 다항식
Figure 112017130222776-pat00185
로부터 변수
Figure 112017130222776-pat00186
에 대해 차수
Figure 112017130222776-pat00187
이하인
Figure 112017130222776-pat00188
의 다항식
Figure 112017130222776-pat00189
을 입력받아 변수
Figure 112017130222776-pat00190
에 대해 차수
Figure 112017130222776-pat00191
이하인 다항식들
Figure 112017130222776-pat00192
를 생성하는 단계(200), 상기 생성된 다항식들
Figure 112017130222776-pat00193
,
Figure 112017130222776-pat00194
를 입력받아 다항식들의 곱들
Figure 112017130222776-pat00195
을 도 1의 제어 흐름도를 재귀적으로 이용하여 생성하는 단계(300), 상기 생성된
Figure 112017130222776-pat00196
를 입력받아 다항식들
Figure 112017130222776-pat00197
를 생성하여 다항식
Figure 112017130222776-pat00198
Figure 112017130222776-pat00199
의 곱
Figure 112017130222776-pat00200
출력하는 단계(400)로 구성된다.
도 2는 변수
Figure 112017130222776-pat00201
에 대해 차수
Figure 112017130222776-pat00202
이하인
Figure 112017130222776-pat00203
의 다항식
Figure 112017130222776-pat00204
로부터 변수
Figure 112017130222776-pat00205
에 대해 차수
Figure 112017130222776-pat00206
이하인
Figure 112017130222776-pat00207
의 다항식
Figure 112017130222776-pat00208
을 입력받아 변수
Figure 112017130222776-pat00209
에 대해 차수
Figure 112017130222776-pat00210
이하인 다항식들
Figure 112017130222776-pat00211
를 생성하는 단계(500), 변수
Figure 112017130222776-pat00212
에 대해 차수
Figure 112017130222776-pat00213
이하인
Figure 112017130222776-pat00214
의 다항식
Figure 112017130222776-pat00215
로부터 변수
Figure 112017130222776-pat00216
에 대해 차수
Figure 112017130222776-pat00217
이하인
Figure 112017130222776-pat00218
의 다항식
Figure 112017130222776-pat00219
을 입력받아 변수
Figure 112017130222776-pat00220
에 대해 차수
Figure 112017130222776-pat00221
이하인 다항식들
Figure 112017130222776-pat00222
를 생성하는 단계(600), 상기 생성된 다항식들
Figure 112017130222776-pat00223
,
Figure 112017130222776-pat00224
를 입력받아 다항식들의 곱들
Figure 112017130222776-pat00225
Figure 112017130222776-pat00226
를 도 2와 도 1의 제어 흐름도들을 각각 재귀적으로 이용하여 생성하는 단계(700), 상기 생성된
Figure 112017130222776-pat00227
를 입력받아 다항식들
Figure 112017130222776-pat00228
를 생성하여 다항식
Figure 112017130222776-pat00229
Figure 112017130222776-pat00230
의 곱
Figure 112017130222776-pat00231
출력하는 단계(800)로 구성된다.
도 1과 도 2의 각 단계를 상세히 설명하면 다음과 같다.
먼저,
Figure 112017130222776-pat00232
이라 가정한다 (
Figure 112017130222776-pat00233
). (
Figure 112017130222776-pat00234
이 3의 거듭제곱이 아닌 경우는 계수를 0으로 간주하여
Figure 112017130222776-pat00235
이라고 가정할 수 있다.) 변수
Figure 112017130222776-pat00236
에 대해 차수
Figure 112017130222776-pat00237
이하인 두 다항식
Figure 112017130222776-pat00238
를 다음과 같이 세 부분으로 분할한다.
Figure 112017130222776-pat00239
,
Figure 112017130222776-pat00240
여기서, 다항식
Figure 112017130222776-pat00241
은 변수
Figure 112017130222776-pat00242
에 관해 차수가
Figure 112017130222776-pat00243
이하인 다항식으로 다음과 같이 정의된다.
Figure 112017130222776-pat00244
비특허문헌 2와 유사하게
Figure 112017130222776-pat00245
의 확장체
Figure 112017130222776-pat00246
상에서 분할된 형태의 다항식들
Figure 112017130222776-pat00247
Figure 112017130222776-pat00248
의 여러 함숫값을 구한 후 내삽법 (multi-evaluation과 interpolation 방법)을 적용하여 정리하면, 두 다항식의 곱
Figure 112017130222776-pat00249
는 다음의 [수학식 1]을 통해 얻을 수 있다.
Figure 112017130222776-pat00250
여기서,
Figure 112017130222776-pat00251
는 상기 다항식들
Figure 112017130222776-pat00252
을 이용하여 다음의 [수학식 2]에서 정의된다.
Figure 112017130222776-pat00253
또한,
Figure 112017130222776-pat00254
는 다음 [수학식 3]에서 정의된다.
Figure 112017130222776-pat00255
상기 다섯 개의 다항식들
Figure 112017130222776-pat00256
는 변수
Figure 112017130222776-pat00257
에 대해 차수
Figure 112017130222776-pat00258
이하인 다항식들의 곱들로
Figure 112017130222776-pat00259
계산을 위한 상기 [수학식 1] , [수학식 2] , [수학식 3]의 방법을 재귀적으로(recursively) 사용하여 계산된다.
여기서 주목할 점은 만약 두 다항식들
Figure 112017130222776-pat00260
Figure 112017130222776-pat00261
Figure 112017130222776-pat00262
에 속해 있으면, 다시 말해, 두 다항식들
Figure 112017130222776-pat00263
Figure 112017130222776-pat00264
의 계수가
Figure 112017130222776-pat00265
에 속해 있는 경우에는,
Figure 112017130222776-pat00266
이지만
Figure 112017130222776-pat00267
를 만족한다. 한편으로,
Figure 112017130222776-pat00268
인 경우에는
Figure 112017130222776-pat00269
이다. 따라서, 상기 수학식들 [수학식 1], [수학식 2], [수학식 3]의 방법을 재귀적으로 이용하여 다항식의 곱셈 연산을 수행하려면
Figure 112017130222776-pat00270
Figure 112017130222776-pat00271
인 두 경우 모두 고려하여야 한다. 그런데 두 경우에 따라 다항식의 곱
Figure 112017130222776-pat00272
의 계산과정과 그의 복잡도가 달라지므로 두 경우는 분리되어 다뤄진다. 먼저,
Figure 112017130222776-pat00273
인 경우를 고려한다.
Figure 112017130222776-pat00274
인 경우
이 경우에 상기 수학식들 [수학식 1], [수학식 2], [수학식 3]에 따른 다항식의 곱
Figure 112017130222776-pat00275
의 계산은 multi-evaluation step(도 1의 단계(100)과 단계(200)), product step(도 1의 단계(300)), reconstruction step(도 1의 단계(400))의 세 단계로 수행된다.
도 1의 단계(100)와 단계(200)는 분할된 다항식들
Figure 112017130222776-pat00276
Figure 112017130222776-pat00277
을 각각 입력받아 다항식들
Figure 112017130222776-pat00278
,
Figure 112017130222776-pat00279
를 각각 생성하기 위한 제어 흐름도를 나타내는 multi-evaluation step이다. 여기서
Figure 112017130222776-pat00280
은 두 다항식들의 덧셈 연산을 의미한다. 이 단계를 좀 더 효율적으로 수행하기 위해 다음의 제1 정리가 필요하다.
[제 1정리]
유한체
Figure 112017130222776-pat00281
의 임의의 두 원소
Figure 112017130222776-pat00282
Figure 112017130222776-pat00283
에 대해,
Figure 112017130222776-pat00284
이므로
Figure 112017130222776-pat00285
Figure 112017130222776-pat00286
의 계산은 중복된 계산을 피한다면 4 XOR 게이트와 2
Figure 112017130222776-pat00287
시간 지연이 필요하다. (여기서
Figure 112017130222776-pat00288
Figure 112017130222776-pat00289
상에서 하나의 XOR 게이트를 수행 할 때 소요되는 시간 지연을 의미한다.) 결과적으로
Figure 112017130222776-pat00290
의 원소를 계수로 갖는 차수
Figure 112017130222776-pat00291
인 두 다항식들
Figure 112017130222776-pat00292
에 대해 다항식들
Figure 112017130222776-pat00293
Figure 112017130222776-pat00294
의 계산은
Figure 112017130222776-pat00295
XOR 게이트와
Figure 112017130222776-pat00296
시간 지연의 복잡도를 갖는다.
Figure 112017130222776-pat00297
임을 이용하여 다항식들
Figure 112017130222776-pat00298
Figure 112017130222776-pat00299
는 상기 제 1정리를 이용하여 동시에 계산된다. 후술한 [표 1]에 도 1의 단계(100)와 단계(200), 즉, multi-evaluation step의 수행 과정이 표로도 주어진다.
도 1의 단계(300)에서는 상기 생성된 다항식들
Figure 112017130222776-pat00300
,
Figure 112017130222776-pat00301
를 입력받아 [수학식 2]에서 정의된 다섯 개의 다항식들
Figure 112017130222776-pat00302
을 생성하는 product step이다. 이 다섯 개의 다항식들
Figure 112017130222776-pat00303
는 차수
Figure 112017130222776-pat00304
이하인 다항식들의 곱들로 곱
Figure 112017130222776-pat00305
를 구하기 위한 방법인 도 1의 제어 흐름도를 재귀적으로 사용하여 (다시 말해, multi-evaluation step, product step, reconstruction step의 세 단계에 의해) 계산된다.
도 1의 단계(400)는 상기 생성된 곱들
Figure 112017130222776-pat00306
을 입력받아 [수학식 3]에 따라
Figure 112017130222776-pat00307
를 계산하고 곱
Figure 112017130222776-pat00308
를 출력하기 위한 제어 흐름도를 나타내는 reconstruction step이다. 여기서 다항식
Figure 112017130222776-pat00309
는 다항식
Figure 112017130222776-pat00310
의 계수를 오른쪽으로 쉬프트(shift) 함으로써 얻어진다. 또한,
Figure 112017130222776-pat00311
의 계산을 효율적으로 수행하기 위해 다음 제 2정리를 이용한다.
[제 2정의]
유한체
Figure 112017130222776-pat00312
의 두 원소
Figure 112017130222776-pat00313
Figure 112017130222776-pat00314
에 대해,
Figure 112017130222776-pat00315
의 값을 알고 있다고 가정하자. 그러면
Figure 112017130222776-pat00316
의 계산은 단지 2 XOR 게이트와
Figure 112017130222776-pat00317
의 시간 지연이 필요하다. 결과적으로
Figure 112017130222776-pat00318
의 원소를 계수로 갖는 차수
Figure 112017130222776-pat00319
인 두 다항식들
Figure 112017130222776-pat00320
에 대해 다항식
Figure 112017130222776-pat00321
가 이미 계산되어 있다면, 다항식
Figure 112017130222776-pat00322
의 계산은
Figure 112017130222776-pat00323
XOR 게이트와
Figure 112017130222776-pat00324
시간 지연의 복잡도를 필요로 한다.
다항식들
Figure 112017130222776-pat00325
은 변수
Figure 112017130222776-pat00326
에 관한 식들이다. 따라서, [수학식 1]의 다항식
Figure 112017130222776-pat00327
의 계수는 세 다항식
Figure 112017130222776-pat00328
의 계수를 상호 배치 (interleaving)하여 얻어진다. 후술한 [표 2]에 도 1의 단계(400), 즉 reconstruction step의 수행 과정이 표로도 주어진다.
다음으로
Figure 112017130222776-pat00329
인 경우 도 2의 제어 흐름도에 따른 다항식의 곱셈 연산 방법을 설명한다.
Figure 112017130222776-pat00330
인 경우
이 경우에는 수학식들 [수학식 1]과 [수학식 3]을 보다 간단하게 정리할 수 있다.
Figure 112017130222776-pat00331
이기 때문에, 만약
Figure 112017130222776-pat00332
으로 표현한다면 (여기서,
Figure 112017130222776-pat00333
이다.),
Figure 112017130222776-pat00334
가 성립한다. 따라서 [수학식 1]과 [수학식 3]은 다음과 같이 간단하게 정리된다.
Figure 112017130222776-pat00335
결과적으로 이 경우, 다항식의 곱
Figure 112017130222776-pat00336
를 구하기 위해서는
Figure 112017130222776-pat00337
의 계산이 필요가 없다. [수학식 4]에 따른 곱
Figure 112017130222776-pat00338
의 계산은 multi-evaluation step (도 2의 단계(500)와 단계(600)), product step (도 2의 단계(700)), reconstruction step (도 2의 단계(800))의 세 단계로 수행된다.
도 2의 단계(500)와 단계(600)은 분할된 다항식들
Figure 112017130222776-pat00339
Figure 112017130222776-pat00340
을 각각 입력받아 다항식들
Figure 112017130222776-pat00341
,
Figure 112017130222776-pat00342
를 각각 생성하기 위한 제어 흐름도를 나타내는 multi-evaluation step이다. 후술한 [표 3]에 도 2의 단계(500)와 단계(600), 즉 multi-evaluation step의 수행 과정이 표로도 주어진다.
도 2의 단계(700)에서는 상기 생성된 다항식들
Figure 112017130222776-pat00343
,
Figure 112017130222776-pat00344
을 입력받아 [수학식 2]에서 정의된 다섯 개의 다항식들 중 네 개의 다항식들
Figure 112017130222776-pat00345
을 생성하는 product step이다. 이때,
Figure 112017130222776-pat00346
이고
Figure 112017130222776-pat00347
이므로
Figure 112017130222776-pat00348
는 도 2의 제어 흐름도를 재귀적으로 사용하여 계산되고,
Figure 112017130222776-pat00349
는 도 1의 제어 흐름도를 재귀적으로 사용하여 계산된다.
도 2의 단계(800)은 상기 생성된 곱들
Figure 112017130222776-pat00350
입력받아 [수학식 4]에 따라
Figure 112017130222776-pat00351
를 계산하고 곱
Figure 112017130222776-pat00352
를 출력하기 위한 제어 흐름도를 나타내는 reconstruction step이다. 다항식들
Figure 112017130222776-pat00353
은 변수
Figure 112017130222776-pat00354
에 관한 식들이기 때문에 다항식
Figure 112017130222776-pat00355
의 계수는 세 다항식
Figure 112017130222776-pat00356
의 계수를 상호 배치 (interleaving)하여 얻어진다. 후술한 [표 4]에 도 2의 단계(800), 즉 reconstruction step의 수행 과정이 표로도 주어진다.
다음으로, 도 1 또는 도 2에 따라 수행된 두 다항식의 곱셈 연산에 대한 복잡도(complexity)를 설명한다.
차수
Figure 112017130222776-pat00357
이하인 두 다항식
Figure 112017130222776-pat00358
Figure 112017130222776-pat00359
에 대하여
Figure 112017130222776-pat00360
인 경우, 도 1의 제어 흐름도에 따른
Figure 112017130222776-pat00361
Figure 112017130222776-pat00362
의 곱셈 연산 계산에 대한 복잡도, 즉 다항식 곱셈 연산 수행 시 필요한 XOR 게이트 수, AND 게이트 수와 그들의 시간 지연을 각각
Figure 112017130222776-pat00363
,
Figure 112017130222776-pat00364
,
Figure 112017130222776-pat00365
으로 표기한다.
Figure 112017130222776-pat00366
인 경우에는, 도 2의 제어 흐름도에 따른 곱셈 연산 계산에 대한 복잡도를
Figure 112017130222776-pat00367
,
Figure 112017130222776-pat00368
,
Figure 112017130222776-pat00369
을 이용하여 나타낸다.
먼저,
Figure 112017130222776-pat00370
인 경우를 살펴보자.
도 1의 단계(100)과 단계(200)의 복잡도는 [표 1]에서 주어진다.
Figure 112017130222776-pat00371
의 원소를 계수로 갖는 차수
Figure 112017130222776-pat00372
인 두 다항식의 덧셈 연산은
Figure 112017130222776-pat00373
XOR 게이트와
Figure 112017130222776-pat00374
시간지연이 필요하다.
Figure 112017130222776-pat00375
Figure 112017130222776-pat00376
는 차수
Figure 112017130222776-pat00377
인 다항식들이므로 [표 1]에서
Figure 112017130222776-pat00378
의 계산은 각각
Figure 112017130222776-pat00379
XOR 게이트와
Figure 112017130222776-pat00380
시간지연의 복잡도가 필요하다. [표 1]에서
Figure 112017130222776-pat00381
Figure 112017130222776-pat00382
는 제 1정리에 의해 동시에 계산되며
Figure 112017130222776-pat00383
XOR 게이트와
Figure 112017130222776-pat00384
시간지연의 복잡도가 요구된다.
Figure 112017130222776-pat00385
Figure 112017130222776-pat00386
또한 제 1정리에 의해 동시에 계산된다. 결과적으로 도 1의 단계(100)과 단계(200)의 총 복잡도는
Figure 112017130222776-pat00387
XOR 게이트와
Figure 112017130222776-pat00388
시간지연이다.
Figure 112017130222776-pat00389
상에서 multi-evaluation step
XOR 게이트 수 시간
지연
Figure 112017130222776-pat00390
Figure 112017130222776-pat00391
Figure 112017130222776-pat00392
Figure 112017130222776-pat00393
Figure 112017130222776-pat00394
Figure 112017130222776-pat00395
Figure 112017130222776-pat00396
Figure 112017130222776-pat00397
Figure 112017130222776-pat00398
Figure 112017130222776-pat00399
Figure 112017130222776-pat00400
Figure 112017130222776-pat00401
Figure 112017130222776-pat00402
Figure 112017130222776-pat00403
합계
Figure 112017130222776-pat00404
Figure 112017130222776-pat00405
도 1의 단계(300)은 차수
Figure 112017130222776-pat00406
이하인
Figure 112017130222776-pat00407
의 다항식들의 곱들인
Figure 112017130222776-pat00408
를 각각 도 1의 제어 흐름도를 재귀적으로 사용하여 계산한다.
Figure 112017130222776-pat00409
의 각 계산은 병렬적으로 수행되므로 이 과정은
Figure 112017130222776-pat00410
XOR 게이트,
Figure 112017130222776-pat00411
AND 게이트,
Figure 112017130222776-pat00412
시간 지연이 필요하다.
도 1의 단계(400)에 대한 복잡도는 [표 2]에서 정리된다. [표 2]에서
Figure 112017130222776-pat00413
의 다항식
Figure 112017130222776-pat00414
은 다항식
Figure 112017130222776-pat00415
의 계수를 오른쪽으로 한자리 쉬프트하여 얻어지며 하드웨어에서 아무 비용 없이 수행될 수 있다. 또한,
Figure 112017130222776-pat00416
를 제외한 [표 2]의 모든
Figure 112017130222776-pat00417
들은
Figure 112017130222776-pat00418
에 있는 다항식들의 덧셈 연산으로 이뤄져있으며 그들 연산의 복잡도는 도 1의 단계(100) 또는 단계(200)에서처럼 쉽게 계산된다.
Figure 112017130222776-pat00419
의 계산은 제 2정리를 이용하여 수행하면
Figure 112017130222776-pat00420
XOR 게이트와
Figure 112017130222776-pat00421
시간지연을 필요로 한다. 마지막으로 다항식의 곱
Figure 112017130222776-pat00422
은 다항식들
Figure 112017130222776-pat00423
의 계수를 상호 배치하여 얻는데 이는 하드웨어에서 비용이 들지 않는다. 따라서 도 1 의 단계(400)의 복잡도는
Figure 112017130222776-pat00424
XOR 게이트와
Figure 112017130222776-pat00425
시간지연이다.
Figure 112017130222776-pat00426
상에서 reconstruction step
XOR 게이트 수 시간지연
Figure 112017130222776-pat00427
Figure 112017130222776-pat00428
Figure 112017130222776-pat00429
Figure 112017130222776-pat00430
Figure 112017130222776-pat00431
Figure 112017130222776-pat00432
Figure 112017130222776-pat00433
Figure 112017130222776-pat00434
Figure 112017130222776-pat00435
Figure 112017130222776-pat00436
Figure 112017130222776-pat00437
Figure 112017130222776-pat00438
Figure 112017130222776-pat00439
Figure 112017130222776-pat00440
Figure 112017130222776-pat00441
Figure 112017130222776-pat00442
Figure 112017130222776-pat00443
Figure 112017130222776-pat00444
Figure 112017130222776-pat00445
Figure 112017130222776-pat00446
Figure 112017130222776-pat00447
합계
Figure 112017130222776-pat00448
Figure 112017130222776-pat00449
상기 결과들을 종합하면, 도 1에 따라 수행된 다항식의 곱
Figure 112017130222776-pat00450
를 계산하는데 필요한 복잡도는 다음과 같이 재귀적인 공식에 의해 표현된다.
Figure 112017130222776-pat00451
상기 복잡도의 값을 구체적으로 구하기 위해 비특허문헌 2에 증명된 다음 보조정리를 이용한다.
[보조정리 1]
Figure 112017130222776-pat00452
를 양의 정수라 하자. 그리고
Figure 112017130222776-pat00453
을 만족한다고 하자.
(1)
Figure 112017130222776-pat00454
일 때,
Figure 112017130222776-pat00455
관계식들로부터,
Figure 112017130222776-pat00456
이 성립한다.
(2)
Figure 112017130222776-pat00457
관계식들로부터,
Figure 112017130222776-pat00458
이 성립한다.
상기 정리를 [수학식 5]에 적용하면 도 1에 따른 다항식의 곱
Figure 112017130222776-pat00459
계산에 대한 복잡도를 다음과 같이 구할 수 있다.
Figure 112017130222776-pat00460
다음으로,
Figure 112017130222776-pat00461
인 경우를 살펴보자.
도 2의 단계(500)과 단계(600)의 복잡도는 [표 3]에서 주어진다.
Figure 112017130222776-pat00462
의 원소를 계수로 갖는 차수
Figure 112017130222776-pat00463
인 두 다항식의 덧셈 연산은
Figure 112017130222776-pat00464
XOR 게이트와
Figure 112017130222776-pat00465
시간지연이 필요하다.
Figure 112017130222776-pat00466
Figure 112017130222776-pat00467
는 차수
Figure 112017130222776-pat00468
인 다항식들이므로 [표 3]에서
Figure 112017130222776-pat00469
의 계산은 각각
Figure 112017130222776-pat00470
XOR 게이트와
Figure 112017130222776-pat00471
시간지연의 복잡도가 필요하다.
Figure 112017130222776-pat00472
이기 때문에
Figure 112017130222776-pat00473
Figure 112017130222776-pat00474
는 아무 비용 없이 구할 수 있다. 결과적으로 도 2의 단계(500)와 단계(600)의 총 복잡도는
Figure 112017130222776-pat00475
XOR 게이트와
Figure 112017130222776-pat00476
시간지연이다.
Figure 112017130222776-pat00477
상에서 multi-evaluation step
XOR 게이트 수 시간지연
Figure 112017130222776-pat00478
Figure 112017130222776-pat00479
Figure 112017130222776-pat00480
Figure 112017130222776-pat00481
Figure 112017130222776-pat00482
Figure 112017130222776-pat00483
Figure 112017130222776-pat00484
Figure 112017130222776-pat00485
Figure 112017130222776-pat00486
-
Figure 112017130222776-pat00487
-
합계
Figure 112017130222776-pat00488
Figure 112017130222776-pat00489
도 2의 단계(700)는 차수
Figure 112017130222776-pat00490
이하인
Figure 112017130222776-pat00491
의 다항식들의 곱들인
Figure 112017130222776-pat00492
와 차수
Figure 112017130222776-pat00493
이하인
Figure 112017130222776-pat00494
의 다항식들의 곱인
Figure 112017130222776-pat00495
를 도 2의 제어 흐름도와 도 1의 제어 흐름도를 각각 사용하여 병렬적으로 계산된다. 그에 따른 비용은
Figure 112017130222776-pat00496
XOR 게이트,
Figure 112017130222776-pat00497
AND 게이트,
Figure 112017130222776-pat00498
시간 지연이 필요하다.
도 2의 단계(800)에 대한 복잡도는 [표 4]에서 정리된다. [표 4]에서
Figure 112017130222776-pat00499
들과
Figure 112017130222776-pat00500
들은
Figure 112017130222776-pat00501
에 있는 다항식들의 덧셈 연산으로 이뤄져있으므로 그들 계산의 비용은 쉽게 계산된다. 결과적으로 도 2 의 단계(800)의 복잡도는
Figure 112017130222776-pat00502
XOR 게이트와
Figure 112017130222776-pat00503
시간지연이다.
Figure 112017130222776-pat00504
상에서 reconstruction step
XOR 게이트 수 시간지연
Figure 112017130222776-pat00505
Figure 112017130222776-pat00506
Figure 112017130222776-pat00507
Figure 112017130222776-pat00508
Figure 112017130222776-pat00509
Figure 112017130222776-pat00510
Figure 112017130222776-pat00511
Figure 112017130222776-pat00512
Figure 112017130222776-pat00513
Figure 112017130222776-pat00514
Figure 112017130222776-pat00515
Figure 112017130222776-pat00516
Figure 112017130222776-pat00517
Figure 112017130222776-pat00518
Figure 112017130222776-pat00519
Figure 112017130222776-pat00520
합계
Figure 112017130222776-pat00521
Figure 112017130222776-pat00522
상기 결과들을 종합하면, 도 2에 따라 수행된 다항식의 곱
Figure 112017130222776-pat00523
를 계산하는데 필요한 복잡도는 다음의 공식에 의해 표현된다.
Figure 112017130222776-pat00524
상기 [수학식 6]에 주어진
Figure 112017130222776-pat00525
,
Figure 112017130222776-pat00526
,
Figure 112017130222776-pat00527
의 값을 이용하여
Figure 112017130222776-pat00528
,
Figure 112017130222776-pat00529
,
Figure 112017130222776-pat00530
의 다음의 재귀적인 공식을 얻을 수 있다.
Figure 112017130222776-pat00531
상기 복잡도의 값을 구체적으로 구하기 위해 비특허문헌 2에 증명된 다음 보조정리를 이용한다.
[보조정리 2]
Figure 112017130222776-pat00532
를 양의 정수라 하자. 그리고
Figure 112017130222776-pat00533
을 만족한다고 하자.
Figure 112017130222776-pat00534
관계식들로부터,
Figure 112017130222776-pat00535
이 성립한다.
상기 [보조정리 2]를 [수학식 7]에 적용하면 도 2에 따른 다항식의 곱
Figure 112017130222776-pat00536
에 대한 복잡도를 다음과 같이 구할 수 있다.
Figure 112017130222776-pat00537
다음의 [표 5]는
Figure 112017130222776-pat00538
상에서 다항식의 곱셈 연산의 기존 방법들과 본 발명의 도 2의 실시 예에 따른 연산 방법의 복잡도들을 비교한다. [표 5]에서 알 수 있듯이 본 발명의 실시 예에 따른 연산 방법은 기존보다 낮은 공간 복잡도를 가질 뿐 아니라, 약 40%정도 줄어든 시간 지연을 갖는다.
Figure 112017130222776-pat00539
이와 같이 본 발명의 일 실시예에 따른 유한체의 병렬 곱셈 연산 방법은 실시 예에 따른 유한체
Figure 112017130222776-pat00540
의 병렬 곱셈 연산 방법은
Figure 112017130222776-pat00541
의 다항식을 분할한 후, 확장체
Figure 112017130222776-pat00542
상에서 분할된 형태의 다항식의 여러 함수값을 구한 후 유한체
Figure 112017130222776-pat00543
상에서 분할된 형태의 다항식에 내삽법(multi-evaluation과 interpolation 방법) 및 새로운 기법들을 적용하여 공간 복잡도와 시간 복잡도면에 우수한 다항식 곱셈 연산 수행 방법을 제안하고 이를 기반으로 유한체
Figure 112017130222776-pat00544
의 곱셈기를 제공할 수 있도록 한다.
본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며 당해 기술이 속하는 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 아래의 특허청구범위에 의하여 정해져야할 것이다.
100: 차수
Figure 112017130222776-pat00545
이하인 다섯 개의
Figure 112017130222776-pat00546
의 다항식들을 생성하는 단계
200: 차수
Figure 112017130222776-pat00547
이하인 다섯 개의
Figure 112017130222776-pat00548
의 다항식들을 생성하는 단계
300: 다섯 쌍의 다항식들의 곱
Figure 112017130222776-pat00549
을 재귀적인 방법으로 생성하는 단계
400:
Figure 112017130222776-pat00550
의 두 다항식
Figure 112017130222776-pat00551
의 곱
Figure 112017130222776-pat00552
를 출력하는 단계
500: 차수
Figure 112017130222776-pat00553
이하인 네 개의
Figure 112017130222776-pat00554
의 다항식들을 생성하는 단계
600: 차수
Figure 112017130222776-pat00555
이하인 네 개의
Figure 112017130222776-pat00556
의 다항식들을 생성하는 단계
700: 네 쌍의 다항식들의 곱
Figure 112017130222776-pat00557
을 재귀적인 방법으로 생성하는 단계
800:
Figure 112017130222776-pat00558
의 두 다항식
Figure 112017130222776-pat00559
의 곱
Figure 112017130222776-pat00560
를 출력하는 단계

Claims (6)

  1. 유한체 곱셈기의 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법에 있어서,
    상기 유한체 곱셈기가 변수
    Figure 112020022211194-pat00817
    에 대해 차수
    Figure 112020022211194-pat00818
    이하인
    Figure 112020022211194-pat00819
    Figure 112020022211194-pat00820
    의 다항식
    Figure 112020022211194-pat00821
    으로 분할하여 세 다항식
    Figure 112020022211194-pat00822
    ,
    Figure 112020022211194-pat00823
    ,
    Figure 112020022211194-pat00824
    를 생성하고, 세 다항식
    Figure 112020022211194-pat00825
    를 변수
    Figure 112020022211194-pat00826
    의 다항식으로 간주하여 차수
    Figure 112020022211194-pat00827
    이하인
    Figure 112020022211194-pat00828
    의 세 개의 다항식
    Figure 112020022211194-pat00829
    를 입력받아, 유한체
    Figure 112020022211194-pat00830
    상의 주어진 두 다항식
    Figure 112020022211194-pat00831
    에 대해, 두 다항식
    Figure 112020022211194-pat00832
    Figure 112020022211194-pat00833
    의 계산 방법을 제시한 제 1정리를 이용하여
    Figure 112020022211194-pat00834
    로부터 차수
    Figure 112020022211194-pat00835
    이하인
    Figure 112020022211194-pat00836
    의 다항식들
    Figure 112020022211194-pat00837
    을 생성하는 제 1단계;
    상기 유한체 곱셈기가 변수
    Figure 112020022211194-pat00838
    에 대해 차수
    Figure 112020022211194-pat00839
    이하인
    Figure 112020022211194-pat00840
    Figure 112020022211194-pat00841
    의 다항식
    Figure 112020022211194-pat00842
    으로 분할하여 세 다항식
    Figure 112020022211194-pat00843
    ,
    Figure 112020022211194-pat00844
    ,
    Figure 112020022211194-pat00845
    을 생성하고, 세 다항식
    Figure 112020022211194-pat00846
    를 변수
    Figure 112020022211194-pat00847
    의 다항식으로 간주하여 차수
    Figure 112020022211194-pat00848
    이하인
    Figure 112020022211194-pat00849
    의 세 개의 다항식
    Figure 112020022211194-pat00850
    을 입력받아, 상기 제 1정리를 이용하여
    Figure 112020022211194-pat00851
    로부터 차수
    Figure 112020022211194-pat00852
    이하인
    Figure 112020022211194-pat00853
    의 다항식들
    Figure 112020022211194-pat00919
    를 생성하는 제 2단계;
    상기 유한체 곱셈기가 상기 제 1단계와 상기 제 2단계에서 생성된 열 개의 다항식들을 입력받아 다섯 쌍의 다항식들의 곱
    Figure 112020022211194-pat00855
    을 재귀적인 방법으로 생성하는 제 3단계; 및
    상기 유한체 곱셈기가 상기 제 3단계에서 생성된 다항식들의 곱들
    Figure 112020022211194-pat00856
    를 입력받아 세 다항식
    Figure 112020022211194-pat00857
    을 계산하여 두 다항식
    Figure 112020022211194-pat00858
    의 곱
    Figure 112020022211194-pat00859
    를 출력하는 제 4단계를 포함하고,
    상기 제 1단계와 상기 제 2단계는 multi-evalua tion step이고, 상기 제 3단계는 product step이며, 상기 제 4단계는 reconstruction step이며,
    상기 제 3단계에서 다항식들의 곱
    Figure 112020022211194-pat00860
    은 multi-evaluation step, product step 및 reconstruction step을 재귀적으로 사용하여 계산되며,
    상기 유한체 곱셈기는 유한체
    Figure 112020022211194-pat00861
    의 원소를 계수로 갖는 차수
    Figure 112020022211194-pat00862
    인 두 다항식들
    Figure 112020022211194-pat00863
    와 더불어 다항식
    Figure 112020022211194-pat00864
    가 주어졌을 때, 다항식
    Figure 112020022211194-pat00865
    의 계산 방법을 제시한 제 2정리를 이용하여, 상기 제 3단계로부터 다항식들
    Figure 112020022211194-pat00866
    을 입력받아 상기 제 4단계의
    Figure 112020022211194-pat00867
    를 계산하고, 세 다항식들
    Figure 112020022211194-pat00868
    의 계수를 상호 배치하여 곱
    Figure 112020022211194-pat00869
    를 계산하며,
    상기 제 2정리는
    Figure 112020022211194-pat00870
    의 원소를 계수로 갖는 차수
    Figure 112020022211194-pat00871
    인 두 다항식들
    Figure 112020022211194-pat00872
    와 더불어 다항식
    Figure 112020022211194-pat00873
    가 주어졌을 때 다항식
    Figure 112020022211194-pat00874
    의 계산은
    Figure 112020022211194-pat00875
    XOR 게이트와
    Figure 112020022211194-pat00876
    시간 지연의 복잡도를 필요로 하는 것임을 특징으로 하는 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법.
  2. 제 1 항에 있어서, 상기 유한체 곱셈기는 상기 제 1정리를 이용하여 두 다항식들
    Figure 112019123470012-pat00750
    Figure 112019123470012-pat00751
    를 동시에 계산하여 계산의 복잡도를 낮추며,
    상기 제 1정리는 유한체
    Figure 112019123470012-pat00752
    의 원소를 계수로 갖는 차수
    Figure 112019123470012-pat00753
    인 두 다항식
    Figure 112019123470012-pat00754
    에 대해, 두 다항식
    Figure 112019123470012-pat00755
    Figure 112019123470012-pat00756
    의 계산은
    Figure 112019123470012-pat00757
    XOR 게이트와
    Figure 112019123470012-pat00758
    시간 지연의 복잡도를 필요로 하는 것임을 특징으로 하는 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법.
  3. 삭제
  4. 유한체 곱셈기의 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법에 있어서,
    상기 유한체 곱셈기가 변수
    Figure 112020022211194-pat00877
    에 대해 차수
    Figure 112020022211194-pat00878
    이하인
    Figure 112020022211194-pat00879
    Figure 112020022211194-pat00880
    의 다항식
    Figure 112020022211194-pat00881
    으로 분할하여 세 다항식
    Figure 112020022211194-pat00882
    ,
    Figure 112020022211194-pat00883
    ,
    Figure 112020022211194-pat00884
    을 생성하고, 세 다항식
    Figure 112020022211194-pat00885
    를 변수
    Figure 112020022211194-pat00886
    의 다항식으로 간주하여 차수
    Figure 112020022211194-pat00887
    이하인
    Figure 112020022211194-pat00888
    의 세 개의 다항식
    Figure 112020022211194-pat00889
    을 입력받아, 차수
    Figure 112020022211194-pat00890
    이하인
    Figure 112020022211194-pat00891
    의 다항식들
    Figure 112020022211194-pat00892
    Figure 112020022211194-pat00893
    의 다항식
    Figure 112020022211194-pat00894
    을 생성하는 제 1단계;
    상기 유한체 곱셈기가 변수
    Figure 112020022211194-pat00895
    에 대해 차수
    Figure 112020022211194-pat00896
    이하인
    Figure 112020022211194-pat00897
    의 다항식
    Figure 112020022211194-pat00898
    으로 분할하여 세 다항식
    Figure 112020022211194-pat00899
    ,
    Figure 112020022211194-pat00900
    ,
    Figure 112020022211194-pat00901
    을 생성하고, 세 다항식
    Figure 112020022211194-pat00902
    를 변수
    Figure 112020022211194-pat00903
    의 다항식으로 간주하여 차수
    Figure 112020022211194-pat00904
    이하인
    Figure 112020022211194-pat00905
    의 세 개의 다항식
    Figure 112020022211194-pat00906
    을 입력받아, 차수
    Figure 112020022211194-pat00907
    이하인
    Figure 112020022211194-pat00908
    의 다항식들
    Figure 112020022211194-pat00909
    Figure 112020022211194-pat00910
    의 다항식
    Figure 112020022211194-pat00911
    를 생성하는 제 2단계;
    상기 유한체 곱셈기가 상기 제 1단계와 상기 제 2단계에서 생성된 여덟 개의 다항식들을 입력받아 네 쌍의 다항식들의 곱
    Figure 112020022211194-pat00912
    를 재귀적인 방법으로 생성하는 제 3 단계;

    상기 유한체 곱셈기가 상기 제 3단계에서 생성된 다항식들의 곱들
    Figure 112020022211194-pat00913
    를 입력받아 세 다항식
    Figure 112020022211194-pat00914
    를 계산하여 두 다항식
    Figure 112020022211194-pat00915
    Figure 112020022211194-pat00916
    의 곱
    Figure 112020022211194-pat00917
    를 출력하는 제 4단계를 포함하고,
    상기 제 1단계와 상기 제 2단계는 multi-evaluation step이고, 상기 제 3단계는 product step이며, 상기 제 4단계는 reconstruction step이며,
    상기 제 3단계에서 다항식들의 곱
    Figure 112020022211194-pat00918
    는 multi-evaluation step, product step 및 reconstruction step을 재귀적으로 사용하여 계산되는 것을 특징으로 하는 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법.
  5. 삭제
  6. 제 4항의
    Figure 112019055208576-pat00704
    의 두 다항식의 병렬 곱셈 연산 방법으로 유한체 곱셈기가 유한체
    Figure 112019055208576-pat00705
    의 병렬 곱셈 연산하는 것을 특징으로 하는 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법.


KR1020170181906A 2017-12-28 2017-12-28 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법 KR102110162B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170181906A KR102110162B1 (ko) 2017-12-28 2017-12-28 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170181906A KR102110162B1 (ko) 2017-12-28 2017-12-28 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법

Publications (2)

Publication Number Publication Date
KR20190079857A KR20190079857A (ko) 2019-07-08
KR102110162B1 true KR102110162B1 (ko) 2020-05-14

Family

ID=67256430

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170181906A KR102110162B1 (ko) 2017-12-28 2017-12-28 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법

Country Status (1)

Country Link
KR (1) KR102110162B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102336535B1 (ko) * 2021-10-05 2021-12-08 (주) 가온칩스 테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100552694B1 (ko) * 2003-10-16 2006-02-20 삼성전자주식회사 유한 체에서 곱셈 연산 방법 및 장치
KR100893695B1 (ko) * 2006-12-15 2009-04-17 영동대학교 유한체 상의 고속 직렬 곱셈기 구조

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Murat Cenk 외, ‘Improved Three-Way Split Formulas for Binary Polynomial and Toeplitz Matrix Vector Products', IEEE, 2013.07.*
정석원 외, ‘GF(2n)에서의 직렬-병렬 곱셈기 구조’, 정보보호학회 논문지, 2003.06.*

Also Published As

Publication number Publication date
KR20190079857A (ko) 2019-07-08

Similar Documents

Publication Publication Date Title
Okada et al. Implementation of Elliptic Curve Cryptographic Coprocessor over GF (2 m) on an FPGA
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
Abd-Elkader et al. Efficient implementation of Montgomery modular multiplier on FPGA
Respondek Recursive numerical recipes for the high efficient inversion of the confluent Vandermonde matrices
Chen et al. FPGA realization of low register systolic all-one-polynomial multipliers over $ GF (2^{m}) $ and their applications in trinomial multipliers
İlter et al. Efficient big integer multiplication in cryptography
KR102110162B1 (ko) 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법
Verde-Star Infinite triangular matrices, q-Pascal matrices, and determinantal representations
KR100950581B1 (ko) 여분 표현을 사용하는 유한체 비트―병렬 곱셈 장치 및방법
KR101837750B1 (ko) 유한체 병렬 곱셈 장치 및 방법
Kazemifard et al. On maximal curves related to Chebyshev polynomials
KR101533929B1 (ko) 유한체 GF(3ⁿ)상에서 쉬프트 된 다항식 기저를 이용한 이차 미만의 공간복잡도를 갖는 병렬 곱셈기, 그 방법 및 이를 기록한 기록매체
Imana et al. Low complexity bit-parallel polynomial basis multipliers over binary fields for special irreducible pentanomials
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
Kadu et al. Hardware implementation of efficient elliptic curve scalar multiplication using vedic multiplier
Baldeaux et al. Duality theory and propagation rules for higher order nets
KR100902847B1 (ko) 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체
KR20140089230A (ko) 중복 형태 리코딩을 이용한 곱셈 방법 및 모듈러 곱셈기
Kukade et al. A Novel Parallel Multiplier for 2's Complement Numbers Using Booth's Recoding Algorithm
Rasheed Resultant-based Elimination for Skew Polynomials
Cenk et al. New efficient algorithms for multiplication over fields of characteristic three
KR101626743B1 (ko) 유한체상의 몽고메리 알고리즘을 이용한 곱셉기 및 곱셈 방법
Hasan On matrix-vector product based sub-quadratic arithmetic complexity schemes for field multiplication

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant