KR100902847B1 - 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체 - Google Patents

분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체 Download PDF

Info

Publication number
KR100902847B1
KR100902847B1 KR1020070067290A KR20070067290A KR100902847B1 KR 100902847 B1 KR100902847 B1 KR 100902847B1 KR 1020070067290 A KR1020070067290 A KR 1020070067290A KR 20070067290 A KR20070067290 A KR 20070067290A KR 100902847 B1 KR100902847 B1 KR 100902847B1
Authority
KR
South Korea
Prior art keywords
multiplication
order
multiplier
partition table
gates
Prior art date
Application number
KR1020070067290A
Other languages
English (en)
Other versions
KR20090002899A (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 KR1020070067290A priority Critical patent/KR100902847B1/ko
Publication of KR20090002899A publication Critical patent/KR20090002899A/ko
Application granted granted Critical
Publication of KR100902847B1 publication Critical patent/KR100902847B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/46Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
    • G06F7/462Multiplying; dividing
    • G06F7/465Multiplying; dividing by partial product forming (with electric multiplication table)
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/5057Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination using table look-up; using programmable logic arrays

Landscapes

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

Abstract

분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및 기록매체가 개시된다. 본 발명은 유한체
Figure 112007048986253-pat00001
의 두 원소의 곱셈을 수행하는 장치에 있어서, 임의의 정수
Figure 112007048986253-pat00002
에 대하여, 차수 n이
Figure 112007048986253-pat00003
를 만족하면, 2-다중분할 카라슈바 방법을
Figure 112007048986253-pat00004
번 적용하고, 상기 차수 n이 25이면, 5-다중분할 카라슈바 방법을 적용하도록 분할 테이블을 생성하는 테이블 작성부; 상기 분할 테이블을 이용하여 차수 n에 대한 곱셈기를 구성하는 테이블 적용부; 및 상기 테이블 적용부에서 구성된 곱셈기를 이용하여 상기 두 원소의 곱셈을 수행하는 곱셈 수행부를 포함한다. 본 발명에 의하면, 유한체의 두 원소의 곱셈에 대하여 다양한 차수에 대한 최적의 분할 방법을 제공함으로써, 필요한 게이트 수 및 지연 시간을 감소시키고, 저장 공간의 축약에 효율성을 향상시킬 수 있으며, 스마트 카드, PDA, 모바일 폰과 같이 저장 공간에 제약이 있는 소형장비에 타원 곡선 암호와 같은 암호 시스템을 장착하기 용이하다.

Description

분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및 기록매체 {Device and Method for multiplication over finite field using segment table and Recording medium thereof}
본 발명은 유한체
Figure 112007048986253-pat00005
곱셈을 수행하기 위하여 필요한 게이트 수를 줄이기 위한 장치 및 방법에 관한 것으로, 특히, 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및 기록매체에 관한 것이다.
타원곡선 암호(Elliptic Curve Cryptosystem)는 이산대수 문제(Discrete Logarithm Problem)를 기반으로 구성되었다. 타원곡선 암호는 종래의 인수분해 문제를 기반으로 구성된 RSA(Rivest-Shmire-Adleman) 암호 시스템보다 작은 키 사이즈(Key Size)로 같은 안정성을 가진다고 알려져 있다. 타원곡선 암호는 유한체 연산을 통하여 구성되며, 유한체 연산은 타원곡선 암호뿐 아니라 XTR, ElGamal 타입 암호 등의 관련 응용 분야에 활발하게 사용되므로 유한체 연산의 효율적인 구성은 주요 관심의 대상이다. 유한체 연산에서 곱셈은 주요한 연산 중 하나이고, 하드웨어 구현은 공간 복잡도와 시간 복잡도를 통하여 효율성을 비교한다. 따라서 하드웨 어에서 곱셈 연산의 복잡도를 효율적으로 구성하는 것은 전체 암호 시스템의 복잡도 감소에 많은 영향을 준다.
스마트 카드, 모바일 폰, PDA와 같은 소형 장비는 저장 공간 활용에 제약이 있으므로 타원곡선과 같은 암호 시스템을 소형 장비에 적용하기 위하여 가장 중요한 관점은 공간 복잡도를 줄이는 것이다.
카라슈바(Karatsuba) 곱셈기의 공간 복잡도를 줄이기 위한 방법으로 Leone은 Karatsuba와 Ofman이 제안한 KOA(Karatsuba-Ofman Algorithm) 방법을 적용하여 시간 복잡도는 증가하지만 낮은 공간 복잡도를 가지는 병렬 처리 곱셈기를 제안하였다. Ernst는 Leone이 제안한 KOA 방법에서 분할 수를 증가시켜 양의 정수 k에 대하여 k-다중 분할 방법으로 확장할 수 있는 다중분할 카라슈바 방법(Multi-Segment Karatsuba:
Figure 112007048986253-pat00006
방법)을 제안하였다. 또, Chang은 Ernst가 제안한
Figure 112007048986253-pat00007
방법이 k가 5 또는 7일 경우, 불필요한 패턴을 가지는 것을 개선하여 Ernst가 제안한
Figure 112007048986253-pat00008
방법과
Figure 112007048986253-pat00009
방법보다 낮은 공간 복잡도를 가지는 새로운
Figure 112007048986253-pat00010
,
Figure 112007048986253-pat00011
방법을 제안하였다. 그러나 일반적으로 k>2에 대해서
Figure 112007048986253-pat00012
방법은
Figure 112007048986253-pat00013
(=KOA:
Figure 112007048986253-pat00014
방법에서 k가 2일 경우는 KOA 방법과 동일하다) 방법보다 곱셈을 구성할 경우 필요한 전체 게이트 수가 작아지는 차수가 드물게 나타나므로 비효율적이다. 따라서 Chang은 낮은 공간 복잡도를 가지는 곱셈기를 구성하기 위해서
Figure 112007048986253-pat00015
방법을 혼합하여 사용할 것을 권고 하였고, Gathen은 SB 방법과
Figure 112007048986253-pat00016
,
Figure 112007048986253-pat00017
방법을 혼합하여 곱셈을 구 성할 경우 최적의 분할 방법과 필요한 게이트 수를 제시하였다.
유한체
Figure 112007048986253-pat00018
에서의 종래의 곱셈 방법에 관하여 살펴본다. 종래의 곱셈 방법에는 일반적인 스쿨북(SchoolBook) 곱셈(이하 SB) 방법과 Karatsuba-Ofman 곱셈(이하
Figure 112007048986253-pat00019
) 방법, k-다중 분할 곱셈 방법(이하
Figure 112007048986253-pat00020
), Gathen이 제안한 혼합
Figure 112007048986253-pat00021
(이하 2:3) 방법이 있다.
n차 기약다항식
Figure 112007048986253-pat00022
에 의하여 생성된
Figure 112007048986253-pat00023
의 원소는 다항식 기저와
Figure 112007048986253-pat00024
에 의하여 다음의 수학식 1과 같이 표현된다.
Figure 112007048986253-pat00025
수학식 1과 같이 표현된
Figure 112007048986253-pat00026
의 두 원소
Figure 112007048986253-pat00027
의 곱셈은 도 1a와 같이, 두 가지 단계로 나누어진다.
먼저, 곱셈기(101)에서 곱셈을 수행한다. 곱셈기(101)는 두개의 n-1차 다항식
Figure 112007048986253-pat00028
Figure 112007048986253-pat00029
의 곱셈을 수행하여 2n-2차 다항식
Figure 112007048986253-pat00030
을 출력한다.
다음, 감산기(102)에서 모듈러 감사을 수행한다. 감산기(102)는 첫째 곱셈 단계의 결과인 2n-2차 다항식
Figure 112007048986253-pat00031
를 유한체
Figure 112007048986253-pat00032
의 원소 n-1차 다항식으로 모듈러 감산(Modular Reduction)한다.
이하에서 곱셈기의 효율성을 비교하기 위하여 다음과 같은 기호를 사용한다
Figure 112007048986253-pat00033
은 method에 표기된 방법을 적용하여 n비트 곱셈을 수행하기 위한 XOR 게이트의 수,
Figure 112007048986253-pat00034
은 method에 표기된 방법을 적용하여 n비트 곱셈을 수행하기 위한 AND 게이트의 수,
Figure 112007048986253-pat00035
은 method에 표기된 방법을 적용하여 n비트 곱셈을 수행하기 위한 XOR 게이트와 AND 게이트 수의 합,
Figure 112007048986253-pat00036
은 method에 표기된 방법을 적용하여 n비트 곱셈의 시간 지연을 의미한다. 또한,
Figure 112007048986253-pat00037
는 XOR 연산의 시간 지연,
Figure 112007048986253-pat00038
는 AND 연산의 시간 지연을 의미한다.
종래의 SB(SB) 곱셈 방법에서, 수학식 1과 같이 표현된
Figure 112007048986253-pat00039
의 두 원소
Figure 112007048986253-pat00040
Figure 112007048986253-pat00041
의 곱
Figure 112007048986253-pat00042
는 다음의 수학식 2 및 수학식 3과 같이 표현된다.
Figure 112007048986253-pat00043
Figure 112007048986253-pat00044
Figure 112007048986253-pat00045
한편, 종래의 2-다중분할 카라슈바 방법(
Figure 112007048986253-pat00046
) 즉, KOA 곱셈 방법은 Divide-and-Conquer방법으로
Figure 112007048986253-pat00047
번 반복 수행이 가능하고, SB 방법보다 효율적인 방법 으로 알려져 있다.
Figure 112007048986253-pat00048
방법의 기본 아이디어는 두 이차 다항식
Figure 112007048986253-pat00049
의 곱셈을 수행하기 위한 다음의 수학식 4와 같다.
Figure 112007048986253-pat00050
수학식 4에서 + 와 - 는
Figure 112007048986253-pat00051
에서 XOR 연산으로 수행한다. 따라서,
Figure 112007048986253-pat00052
방법을 이용할 경우 추가적으로 XOR 연산이 세 번 필요 하지만, 곱셈을 수행하는 AND 연산은 SB 방법의 4번에서 3번으로 한 번 줄게 된다. 유한체의 차수 n이 짝수일 경우, 두 원소
Figure 112007048986253-pat00053
에 대한
Figure 112007048986253-pat00054
방법을 한번 적용하면 다음의 수학식 5와 같다.
Figure 112007048986253-pat00055
Figure 112007048986253-pat00056
Figure 112007048986253-pat00057
,
Figure 112007048986253-pat00058
,
Figure 112007048986253-pat00059
,
Figure 112007048986253-pat00060
은 n/2비트의 수이므로
Figure 112007048986253-pat00061
Figure 112007048986253-pat00062
을 구하기 위하여 n/2비트 덧셈 2번,
Figure 112007048986253-pat00063
,
Figure 112007048986253-pat00064
Figure 112007048986253-pat00065
을 구하기 위하여 n/2비트 곱셈 3번,
Figure 112007048986253-pat00066
을 구하기 위하여 n-1비트 덧셈을 두 번, 그리고
Figure 112007048986253-pat00067
부터
Figure 112007048986253-pat00068
까지 중복되는 부분의 덧셈 2(n/2-1)을 필요로 한다.
Figure 112007048986253-pat00069
방법을 반복적으로 사용할 경우에 대하여 살펴보도록 한다. 유한체
Figure 112007048986253-pat00070
의 차수를
Figure 112007048986253-pat00071
라 하자. Leone이 제안한 최적의 반복 횟수는
Figure 112007048986253-pat00072
를 만족하는
Figure 112007048986253-pat00073
이므로
Figure 112007048986253-pat00074
방법을
Figure 112007048986253-pat00075
번 반복 수행하고, 최하위 곱셈은 4비트 SB 방법 곱셈기를 사용한다.
한편, Chang이 제안한
Figure 112007048986253-pat00076
,
Figure 112007048986253-pat00077
방법은 유한체
Figure 112007048986253-pat00078
에서 낮은 공간 복잡도를 가지는 새로운 다중 분할 카라슈바 방법이다. 다중 분할 방법을 적용하여 유한체 곱셈을 구성하기 위하여 2중분할, 3중분할, 5중분할 등 2보다 큰 양의 정수 k에 대하여 일반화할 수 있는 k-다중 분할(
Figure 112007048986253-pat00079
) 방법 공식을 Ernst가 제안하였다. 그러나 Ernst의 방법을 사용하여
Figure 112007048986253-pat00080
방법을 표현 하면 k가 5 또는 7일 경우 불필요한 패턴을 가지게 된다. 따라서 Chang은 Ernst가 제안한 분할 방법 중
Figure 112007048986253-pat00081
,
Figure 112007048986253-pat00082
방법에서 불필요한 패턴을 제거하여 새로운
Figure 112007048986253-pat00083
,
Figure 112007048986253-pat00084
방법을 제안 하였다. Ernst가 제안한 방법으로
Figure 112007048986253-pat00085
의 두 원소를 5중 분할하여 곱셈을 수행하면 15개의 (n/k)곱셈연산과 40개의 XOR 연산을 필요로 한다. 그러나 Chang이 제 안된 방법은 14개의 (n/k)곱셈연산과 38개의 XOR 연산으로
Figure 112007048986253-pat00086
의 두 원소의 5중 분할하여 곱셈을 수행할 수 있다.
같은 방법으로 Ernst가 제안한 방식으로
Figure 112007048986253-pat00087
방법을 표현할 경우 발생하는 불필요한 패턴을 없애고, 효율적으로 재구성한 Chang이 제안한
Figure 112007048986253-pat00088
방법을 7의 배수 n에 대하여 한번 적용할 수 있다.
하지만 Chang은 분할의 수가 증가할수록 다중 분할 방법은
Figure 112007048986253-pat00089
방법에 비하여 공간 복잡도면에서 효율적으로 곱셈을 구성할 수 있는 차수의 빈도가 드물게 나타나므로 분할 방법을 사용하여 곱셈기를 구성할 때 낮은 공간 복잡도를 가지기 위해서는 혼합(hybrid)방법으로 구성할 것을 권고하였다.
Gathen이 제안한 혼합
Figure 112007048986253-pat00090
방법(2:3 방법)은 SB 방법과
Figure 112007048986253-pat00091
,
Figure 112007048986253-pat00092
방법을 사용하여 혼합 방법을 구성하는 곱셈 방법이다. 2:3 방법은 하위 차수부터 각 차수에 대하여 SB 방법과
Figure 112007048986253-pat00093
,
Figure 112007048986253-pat00094
방법을 각각 적용할 경우 게이트 수를 구하고, 가장 작은 게이트 수를 필요로 하는 분할 방법과 게이트 수를 테이블에 저장하는 방법으로 구성하였다. 즉, n=1일 경우는 단일 AND 연산이므로 테이블에 1을 저장한다. 2보다 큰 n에 대하여 n비트 곱셈을 수행하기 위하여 SB 방법과
Figure 112007048986253-pat00095
,
Figure 112007048986253-pat00096
방법을 각각 적용하여 계산한다. 이때 재귀적으로 호출되는 n보다 작은 차수에 대한 분할 방법과 게이트 수는 이미 계산되어 테이블에 저장된 값을 사용한다. 그리고 각 방법을 적용하여 수행할 경우 필요한 게이트 수를 비교하여 가장 작은 게이트를 필요로 하는 분할 방법과 게이트 수를 테이블에 저장한다. Gathen은 이와 같은 방법으로 하위 차수부터 차수 128까지 각 차수에 대하여 곱셈을 구성할 경우 최적의 분할 방법과 필요한 게이트 수를 테이블을 구성하여 제시하였다.
즉,
Figure 112007048986253-pat00097
방법,
Figure 112007048986253-pat00098
방법을 적용하는 것보다 SB 방법과
Figure 112007048986253-pat00099
,
Figure 112007048986253-pat00100
방법을 혼합하여 적용하여 곱셈을 구성하는 것이 공간 복잡도가 효율적이다.
그러나, 종래의 곱셈 방법은 2중 분할, 3중 분할 방법 이외의 분할 방법과의 혼합을 고려하지 않으므로, 증가하는 확장체 차수의 형태에 따라 곱셈을 수행하기 위한 게이트 수를 줄이는데 한계를 갖는 문제점이 있다.
따라서, 본 발명이 해결하고자 하는 첫 번째 과제는 증가하는 확장체 차수의 형태에 따라 곱셈을 수행하기 위한 게이트 수를 줄일 수 있는 분할 테이블을 이용한 유한체 곱셈 장치를 제공하는 데 있다.
본 발명이 해결하고자 하는 두 번째 과제는 상기의 분할 테이블을 이용한 유한체 곱셈 장치에 적용되는 분할 테이블을 이용한 유한체 곱셈 방법을 제공하는 데 있다.
본 발명이 해결하고자 하는 세 번째 과제는 상기의 분할 테이블을 이용한 유한체 곱셈 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 첫 번째 과제를 해결하기 위하여 본 발명은,
유한체
Figure 112007048986253-pat00101
의 두 원소의 곱셈을 수행하는 분할 테이블을 이용한 유한체 곱셈 장치에 있어서, 임의의 정수
Figure 112007048986253-pat00102
에 대하여, 차수 n이
Figure 112007048986253-pat00103
를 만족하면, 2-다중분할 카라슈바 방법을
Figure 112007048986253-pat00104
번 적용하고, 상기 차수 n이 25이면, 5-다중분할 카라슈바 방법을 적용하도록 분할 테이블을 생성하는 테이블 작성부; 상기 분할 테이블을 이용하여 차수 n에 대한 곱셈기를 구성하는 테이블 적용부; 및 상기 테이블 적용부에서 구성된 곱셈기를 이용하여 상기 두 원소의 곱셈을 수행하는 곱셈 수행부를 포함하는 분할 테이블을 이용한 유한체 곱셈 장치를 제공한다.
한편, 상기 테이블 작성부는 상기 차수 n이 1, 2, 3, 4, 5, 7, 11이면, SB 방법을 적용하도록 상기 분할 테이블을 생성하는 것을 특징으로 한다.
또한, 상기 테이블 작성부는 SB 방법, 2-다중분할 카라슈바 방법 또는 3-다중분할 카라슈바 방법 중
Figure 112007048986253-pat00105
를 만족하는 차수 n에 대하여 가장 작은 게이트 수를 필요로 하는 곱셈방법을 선택하는 것일 수 있다.
아울러, 상기 테이블 작성부는 각 차수마다 필요한 최소의 게이트 수를 저장하고, 상기 테이블 적용부는 상기 최소의 게이트 수를 이용하여 차수 n에 대한 곱셈기를 구성하는 것을 특징으로 한다.
한편, 상기 곱셈 수행부는 5비트 곱셈기, 5비트 XOR 게이트 및 9비트 XOR 게이트를 포함하는 25비트 곱셈기를 포함할 수 있다.
그리고, 상기 곱셈 수행부는 상기 두 원소가 98비트의 입력인 경우, 49비트 곱셈기, 49비트 XOR 게이트 및 97비트 XOR 게이트를 포함하고, 상기 49비트 곱셈기는 상기 25비트 곱셈기, 25비트 XOR 게이트 및 49비트 XOR 게이트를 포함할 수 있다.
또한, 상기의 첫 번째 과제를 해결하기 위하여 본 발명은,
유한체
Figure 112007048986253-pat00106
의 두 원소의 곱셈을 수행하는 분할 테이블을 이용한 유한체 곱셈 장치에 있어서, 하위 차수부터 차수 n까지 진행하면서 SB 방법, 2-다중분할 카라슈바 방법, 3-다중분할 카라슈바 방법 또는 5-다중분할 카라슈바 방법 중 최소의 게이트 수를 필요로 하는 곱셈방법을 선택하고, 상기 곱셈방법 및 상기 최소의 게이트 수를 각 차수마다 저장하는 테이블 작성부; 상기 저장된 곱셈방법 및 상기 최소의 게이트 수를 이용하여 차수 n에 대한 곱셈기를 구성하는 테이블 적용부; 및 상기 구성된 곱셈기를 이용하여 상기 두 원소의 곱셈을 수행하는 곱셈 수행부를 포함하는 분할 테이블을 이용한 유한체 곱셈 장치를 제공한다.
한편, 상기 테이블 작성부는 상기 차수 n이 25이면, 5-다중분할 카라슈바 방법을 곱셈방법으로 선택하는 것일 수 있다.
상기의 두 번째 과제를 해결하기 위하여 본 발명은,
유한체
Figure 112007048986253-pat00107
의 두 원소의 곱셈을 수행하는 분할 테이블을 이용한 유한체 곱셈 방법에 있어서, 테이블 작성부에서 하위 차수부터 차수 n까지 진행하면서 SB 방법, 2-다중분할 카라슈바 방법, 3-다중분할 카라슈바 방법 또는 5-다중분할 카라슈바 방법 중 최소의 게이트 수를 필요로 하는 곱셈방법을 선택하고, 상기 곱셈방법 및 상기 최소의 게이트 수를 각 차수마다 저장하는 단계; 테이블 적용부에서 상기 저장된 곱셈방법 및 상기 최소의 게이트 수를 이용하여 차수 n에 대한 곱셈기를 구성하는 단계; 및 곱셈 수행부에서 상기 구성된 곱셈기를 이용하여 상기 두 원소의 곱셈을 수행하는 단계를 포함하는 분할 테이블을 이용한 유한체 곱셈 방법을 제공한다.
한편, 상기 분할 테이블을 생성하는 단계는 상기 차수 n이 1, 2, 3, 4, 5, 7, 11이면, SB 방법을 적용하도록 상기 분할 테이블을 생성하는 단계를 포함할 수 있다.
그리고, 상기 분할 테이블을 생성하는 단계는 SB 방법, 2-다중분할 카라슈바 방법 또는 3-다중분할 카라슈바 방법 중
Figure 112007048986253-pat00108
를 만족하는 차수 n에 대하여 가장 작은 게이트 수를 필요로 하는 곱셈방법을 선택하는 단계를 포함할 수 있다.
상기 두 번째 과제를 해결하기 위하여 본 발명은,
유한체
Figure 112007048986253-pat00109
의 두 원소의 곱셈을 수행하는 분할 테이블을 이용한 유한체 곱셈 방법에 있어서, 테이블 작성부에서 하위 차수부터 차수 n까지 진행하면서 SB 방법, 2-다중분할 카라슈바 방법, 3-다중분할 카라슈바 방법 또는 5-다중분할 카라슈바 방법 중 최소의 게이트 수를 필요로 하는 곱셈방법을 선택하고, 상기 곱셈방법 및 상기 최소의 게이트 수를 각 차수마다 저장하는 단계; 테이블 적용부에서 상기 저장된 곱셈방법 및 상기 최소의 게이트 수를 이용하여 차수 n에 대한 곱셈기를 구성하는 단계; 및 곱셈 수행부에서 상기 구성된 곱셈기를 이용하여 상기 두 원소의 곱셈을 수행하는 단계를 포함하는 분할 테이블을 이용한 유한체 곱셈 방법을 제공한다.
상기의 세 번째 과제를 해결하기 위하여 본 발명은,
상기의 분할 테이블을 이용한 유한체 곱셈 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명에 의하면, 유한체의 두 원소의 곱셈에 대하여 다양한 차수에 대한 최적의 분할 방법을 제공함으로써, 필요한 게이트 수 및 지연 시간을 감소시키고, 저장 공간의 축약에 효율성을 향상시킬 수 있으며, 스마트 카드, PDA, 모바일 폰과 같이 저장 공간에 제약이 있는 소형장비에 타원 곡선 암호와 같은 암호 시스템을 장착하기 용이한 효과가 있다.
일반적으로 유한체
Figure 112007048986253-pat00110
에서 공간 복잡도는 필요한 XOR 게이트와 AND 게이트 수를 계산하여 측정한다. XOR 게이트와 AND 게이트의 공간 활용 비율은 하드웨어 구현 공정에 따라 다르므로 본 발명에서는 XOR 게이트와 AND 게이트 수의 합을 전체 게이트 수로 정의하고, 전체 게이트 수를 줄이기 위한 방법에 관하여 상술하기로 한다.
먼저, 임의의 확장체
Figure 112007048986253-pat00111
의 차수 n에 대하여 최적의 분할 방법 및 게이트 수에 대한 테이블을 작성하는 방법에 대하여 설명한다. 본 발명에서는 하위 차수부터 차수에 따른 최소 게이트 수를 필요로 하는 분할 방법과 게이트 수를 저장하는 테이블 저장 방식을 사용한다. 차수 n에 따라 SB 방법과 각
Figure 112007048986253-pat00112
방법을 적용할 경우 곱셈을 구성하기 위한 게이트 수를 구한 후, 각
Figure 112007048986253-pat00113
방법에서 필요한 게이트 수를 비교하여 최소값을 가지는 분할 방법과 게이트 수를 저장하는 방식으로 차수에 대한 최적의 분할방법과 필요한 게이트 수 테이블을 구성한다. 차수 n에 대응하는 최소 게이트를 구할 경우, 하위 차수부터 n-1까지 각 차수에 대응하는 최적의 분할 방법과 그에 따른 게이트가 테이블에 저장된다. 따라서 차수 n에 대하여
Figure 112007048986253-pat00114
를 적용할 경우, 분할 방법에 의해 곱셈을 구성하기 위하여 필요한 (n/k)차 곱셈은 테이블에 저장되어 있는 곱셈 방법과 게이트를 사용하여 구성한다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나, 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다.
도 1b는 본 발명의 일 실시예에 따른 분할 테이블을 이용한 유한체 곱셈 장치의 블럭도이다.
테이블 작성부(110)는 하위 차수부터 차수 n까지 진행하면서 SB 방법, 2-다중분할 카라슈바 방법, 3-다중분할 카라슈바 방법 또는 5-다중분할 카라슈바 방법 중 최소의 게이트 수를 필요로 하는 곱셈방법을 선택한다. 테이블 작성부(110)는 선택된 곱셈방법 및 최소의 게이트 수를 각 차수마다 저장하여 분할 테이블을 생성한다. 바람직하게는, 테이블 작성부(110)는 임의의 정수
Figure 112007048986253-pat00115
에 대하여, 차수 n이
Figure 112007048986253-pat00116
를 만족하면, 2-다중분할 카라슈바 방법을
Figure 112007048986253-pat00117
번 적용하고, 차수 n이 25이면, 5-다중분할 카라슈바 방법을 적용하도록 분할 테이블을 생성하도록 구성될 수 있다. 바람직하게는, 테이블 작성부(110)는 차수 n이 1, 2, 3, 4, 5, 7, 11이면, SB 방법을 적용하도록 분할 테이블을 생성할 수 있다.
테이블 적용부(120)는 분할 테이블에 저장된 곱셈방법 및 최소의 게이트 수 를 이용하여 차수 n에 대한 곱셈기를 구성한다.
곱셈 수행부(130)는 테이블 적용부(120)에 의해 구성된 곱셈기를 이용하여 유한체
Figure 112007048986253-pat00118
의 두 원소의 곱셈을 수행한다.
다음으로, 본 발명의 혼합 방법을 적용하여 곱셈을 구성할 경우 2:3 방법 보다 효율적으로 구성할 수 있는 차수에 대하여 알아본다. 2:3 방법과 본 발명에 따른 곱셈 방법을 적용하여 곱셈을 구성할 경우 차수에 따른 최적의 분할 방법과 게이트 수 테이블을 살펴보면, 차수가 49와 50일 경우 최적의 분할 방법은
Figure 112007048986253-pat00119
방법으로 25차 곱셈을 필요로 한다. 그리고 차수가 97과 98, 99와 100일 경우 최적의 분할 방법은
Figure 112007048986253-pat00120
방법으로 차수 49와 50의 곱셈을 필요로 한다.
2:3 방법과 본 발명에 따른 곱셈 방법을 적용하여 곱셈을 구성할 경우 차수가
Figure 112007048986253-pat00121
을 만족하면 차수 n에 대한 최적의 분할 방법은
Figure 112007048986253-pat00122
방법이다.
여기서,
Figure 112007048986253-pat00123
을 만족하는 차수 n에 대하여 맨 처음
Figure 112007048986253-pat00124
방법을 적용하므로 곱셈을 수행하기 위하여 필요한 분할된 곱셈의 차수는
Figure 112007048986253-pat00125
가 된다. 만약
Figure 112007048986253-pat00126
-1>0이면
Figure 112007048986253-pat00127
방법을 반복하여 수행하고
Figure 112007048986253-pat00128
-1=0 이면 25차 곱셈을 수행한다. 따라서 차수 n에 대하여
Figure 112007048986253-pat00129
방법을
Figure 112007048986253-pat00130
번 반복 수행하고 하위 25차 곱셈을 통하여 구성된다.
도 2a는 차수가 98인 경우에 도 1b의 테이블 적용부(120)에 의해 구성된 곱셈기의 예를 도시한 것이다.
도 2a에는 98비트의 두 입력에 대하여 곱셈을 수행하는 5비트 곱셈기(210), 25비트 곱셈기(220), 49비트 곱셈기(230) 및 98비트 곱셈기(240)가 도시된다.
여기서, 25비트 곱셈기(220)는 5비트 곱셈기(210), 5비트 XOR 게이트(211), 9비트 XOR 게이트(212) 및 오버랩 XOR(213)을 포함한다. 또한, 49비트 곱셈기(230)는 25비트 곱셈기(220), 25비트 XOR 게이트(221), 49비트 XOR 게이트(222) 및 오버랩 XOR(223)을 포함한다. 또한, 98비트 곱셈기(240)는 49비트 곱셈기(230), 49비트 XOR 게이트(231), 97비트 XOR 게이트(232) 및 오버랩 XOR(233)을 포함한다. 한편, 위의 XOR 게이트(211, 212, 221, 222, 231, 232) 및 오버랩 XOR(213, 223, 233) 등은 각각의 곱셈기(210, 220, 230, 240)에서 곱셈 수행 과정에 사용되는 덧셈기로 동작한다.
다른 예로, 차수 193에 대한 곱셈 방법은
Figure 112007048986253-pat00131
을 적용하므로, 1 만큼 0을 패딩하여 194=2*97에 대한 곱셈을 수행한다. 이때, 차수 97에 대한 곱셈 방법은
Figure 112007048986253-pat00132
이므로, 1 만큼 0을 패딩하여 98=2*49에 대하 곱셈을 수행한다. 또한, 차수 49에 대한 곱셈 방법은
Figure 112007048986253-pat00133
이므로, 1만큼 0을 패딩하여 50=2*25에 대한 곱셈을 수행한다. 또한, 차수 25에 대한 곱셈 방법은
Figure 112007048986253-pat00134
이므로, 25=5*5에 대한 곱셈을 수행한다. 그리고, 차수 5에 대하여 SB 방법을 수행한다.
이와 같은 방법으로 곱셈을 수행하는 곱셈기는 도 2b에 도시되어 있다.
도 3은 본 발명의 다른 실시예에 따른 분할 테이블을 이용한 유한체 곱셈 방법의 흐름도이다.
이하의 과정은 하위 차수부터 차수 n까지 차수를 1씩 증가시키면서 진행한다.
먼저, 테이블 작성부에서 임의의 정수
Figure 112007048986253-pat00135
에 대하여, 차수 n이
Figure 112007048986253-pat00136
를 만족하는지 판단한다(310 과정).
이때, 위 조건을 만족하면, 2-다중분할 카라슈바 방법을 선택한다(331 과정). 위 조건을 만족하지 않으면, 차수 n이 25인지 판단한다(320 과정). 차수 n이 25이면, 5-다중분할 카라슈바 방법을 선택한다(332 과정).
이때, 차수 n이 25가 아니면, SB 방법 또는 3-다중분할 카라슈바 방법을 선택한다(333 과정).
분할 방법(곱셈 방법)이 선택되면, 선택된 분할 방법에 필요한 최소의 게이트 수를 연산하고, 해당 차수에 대한 분할 방법 및 게이트 수를 저장하면서 분할 테이블을 기록한다.
다음, 분할 테이블이 원하는 차수까지 완성되었는지 판단한다(340 과정). 이때, 원하는 차수란, 곱셈 장치의 두 입력인 유한체
Figure 112007048986253-pat00137
의 두 원소의 차수에 해당한다.
이때, 분할 테이블이 완료되지 않았으면, 차수를 1만큼 증가시키고(341 과정), 위 과정(310-340 과정)을 반복한다.
다음, 테이블 적용부에서 분할 테이블을 이용하여 차수 n에 대한 곱셈기를 구성한다(350 과정).
마지막으로, 곱셈 수행부에서 구성된 곱셈기를 이용하여 두 원소의 곱셈을 수행한다(360 과정).
도 4는 본 발명의 또다른 실시예에 따른 분할 테이블을 이용한 유한체 곱셈 방법의 흐름도이다.
먼저, 테이블 작성부에서 분할 테이블 작성을 위한 변수 n을 1로 초기화한다(410 과정).
다음, 테이블 작성부에서 SB 방법, 2-다중분할 카라슈바 방법, 3-다중분할 카라슈바 방법 또는 5-다중분할 카라슈바 방법 중 최소의 게이트 수를 필요로 하는 곱셈방법을 선택한다(420 과정).
다음, 테이블 작성부에서 곱셈방법 및 최소의 게이트 수를 각 차수마다 저장하여 분할 테이블을 생성한다(430 과정).
다음, 분할 테이블이 원하는 차수까지 완성되었는지 판단한다(440 과정). 이때, 원하는 차수란, 곱셈 장치의 두 입력인 유한체
Figure 112007048986253-pat00138
의 두 원소의 차수에 해당한다.
분할 테이블이 완성되지 않았으면, n을 1만큼 증가시키고(441 과정), 위의 과정(420-440 과정)을 반복한다.
다음, 테이블 적용부에서 저장된 곱셈방법 및 최소의 게이트 수를 이용하여 차수 n에 대한 곱셈기를 구성한다(450 과정). 이때, 구성되는 곱셈기의 예는 도 2a에서 설명된 바 있다.
마지막으로, 곱셈 수행부에서 구성된 곱셈기를 이용하여 유한체
Figure 112007048986253-pat00139
의 두 원소의 곱셈을 수행한다(460 과정).
본 발명에 따른 곱셈 방법을 적용할 경우 테이블을 구성하면 차수가 25일 경우
Figure 112007048986253-pat00140
방법이 최적의 분할 방법이 된다.
SB 방법과
Figure 112007048986253-pat00141
,
Figure 112007048986253-pat00142
,
Figure 112007048986253-pat00143
방법을 혼합하여 사용할 경우 n=25일 때 최적의 분할 방법을 고려하면, 차수 n에 대하여
Figure 112007048986253-pat00144
방법을 적용하기 위하여 n이 k의 배수가 아닐 경우
Figure 112007048986253-pat00145
만큼 0으로 패딩하여 차수를 k의 배수로 만들고
Figure 112007048986253-pat00146
방법을 적용한다.
차수 n=25이므로 차수 n-1=24까지 최적의 분할방법과 필요한 게이트 수가 표 1과 같이 테이블에 저장된다.
degree r #gate degree r #gate degree r #gate degree r #gate degree r #gate
1 C 1 6 2 59 11 C 221 16 2 369 21 3 654
2 C 5 7 C 85 12 2 221 17 2 470 22 2 647
3 C 13 8 2 103 13 2 307 18 2 470 23 2 755
4 C 25 9 3 134 14 2 307 19 2 553 24 2 755
5 C 41 10 2 159 15 3 346 20 2 553 25 5 876
표 1에서
Figure 112007048986253-pat00147
열은 각 차수에 대하여 효율적인 곱셈을 구성하기 위하여
Figure 112007048986253-pat00148
에 대하여 맨 처음 적용하는 방법으로 C는 SB 방법, 2는
Figure 112007048986253-pat00149
방법, 3은
Figure 112007048986253-pat00150
방법, 5는
Figure 112007048986253-pat00151
방법을 의미한다. 차수 n=25에 대하여 각 방법을 적용할 경우 필요한 게이트 수와 시간 지연을 구하면 다음의 수학식 6 내지 9와 같다.
Figure 112007048986253-pat00152
,
Figure 112007048986253-pat00153
,
Figure 112007048986253-pat00154
Figure 112007048986253-pat00155
,
Figure 112007048986253-pat00156
Figure 112007048986253-pat00157
,
Figure 112007048986253-pat00158
Figure 112007048986253-pat00159
.
위 결과에 의하여 2:3 방법에서 최소의 게이트를 필요로 하는 방법은 2만큼 0을 패딩한 27차에 대하여
Figure 112007048986253-pat00160
방법을 맨 처음 적용하는 것으로 992의 게이트 수 와
Figure 112007048986253-pat00161
의 시간 지연을 필요로 한다. 하지만 본 발명에 따른 곱셈 방법을 적용하면 n=25일 경우 테이블에 저장되는 최적의 분할 방법 및 게이트 수는 추가적인 패딩없이 차수 n=25에 대하여
Figure 112007048986253-pat00162
방법을 적용하여 곱셈을 구성하는 것으로 876개의 게이트와
Figure 112007048986253-pat00163
의 시간 지연을 필요로 한다. 따라서 차수 n이 25일 경우에 최적의 분할 방법은
Figure 112007048986253-pat00164
방법이다.
차수가 25일 경우에는
Figure 112007048986253-pat00165
,
Figure 112007048986253-pat00166
방법보다
Figure 112007048986253-pat00167
방법을 적용하여 곱셈을 구성하면 보다 적은 게이트 수를 필요로 하게 된다.
Figure 112007048986253-pat00168
을 만족하는 차수에 대하여 본 발명에 따른 곱셈 방법을 적용하여 곱셈을 구성하면 2:3 방법보다 적은 게이트를 필요로 한다. 즉,
Figure 112007048986253-pat00169
을 만족하는 차수 n에 대하여
Figure 112007048986253-pat00170
방법을
Figure 112007048986253-pat00171
Figure 112007048986253-pat00172
번 반복하여 적용하고 차수 25에 대해서
Figure 112007048986253-pat00173
방법을 수행하는 본 발명에 따른 곱셈 방법이 2:3 방법보다 곱셈을 구성하기 위하여 적은 게이트 수를 필요로 한다.
Figure 112007048986253-pat00174
=4일 경우 2:3 방법과 본 발명에 따른 곱셈 방법을 적용하여 곱셈을 구성할 경우 필요한 게이트 수는 표 2와 같다.
Figure 112007048986253-pat00175
표 2에서와 같이
Figure 112007048986253-pat00176
을 만족하는 차수에 대하여 본 발명에 따른 곱셈 방법이 2:3 방법보다 적은 게이트 수를 필요로 하고 시간 복잡도 또한
Figure 112007048986253-pat00177
만큼 감소한다.
이하에서는 효율성을 분석하면서, 효율적인 차수에서 감소되는 게이트 비율에 대하여 알아본다. 차수가 범위
Figure 112007048986253-pat00178
을 만족하는 n일 경우 2:3 방법과 본 발명에 따른 곱셈 방법을 적용하여 곱셈을 수행하기 위하여 필요한 게이트 수와 시간 지연은 다음과 같다.
차수가
Figure 112007048986253-pat00179
을 만족하는 n에 대하여본 발명에 따른 곱셈 방법을 적용하여 곱셈을 구성하면 2:3 방법 적용한 것 보다 게이트 수는
Figure 112007048986253-pat00180
, 시간 지연은
Figure 112007048986253-pat00181
감소한다.
본 발명에 따른 곱셈 방법과 2:3 방법을 적용하여 곱셈을 구성할 경우 주어진 차수에 대하여
Figure 112007048986253-pat00182
방법을 맨 처음 적용한다. 따라서
Figure 112007048986253-pat00183
방법을 한 번 적용하여 곱셈을 구성할 경우 필요한 게이트 수와 시간 지연은 다음의 수학식 10 및 11과 같다.
Figure 112007048986253-pat00184
,
Figure 112007048986253-pat00185
,
Figure 112007048986253-pat00186
,
Figure 112007048986253-pat00187
,
두 혼합 방법은
Figure 112007048986253-pat00188
방법을
Figure 112007048986253-pat00189
번 반복하고 하위 25차 곱셈을 필요로 한다. 따라서 차수 n에 대하여
Figure 112007048986253-pat00190
방법을
Figure 112007048986253-pat00191
Figure 112007048986253-pat00192
번 반복 적용할 경우 곱셈을 수행하기 위하여 필요한 게이트 수와 시간 지연은 다음의 수학식 12 및 13과 같다.
Figure 112007048986253-pat00193
,
Figure 112007048986253-pat00194
,
Figure 112007048986253-pat00195
,
Figure 112007048986253-pat00196
따라서 2:3 방법을 적용할 경우 필요한 게이트 수에서 본 발명에 따른 곱셈 방법을 적용할 경우 게이트 수의 차이는
Figure 112007048986253-pat00197
가 되고, 시간 지연 차이는
Figure 112007048986253-pat00198
가 된다.
Figure 112007048986253-pat00199
을 만족하는 각 차수 n에 대하여 2:3 방법과 본 발명에 따른 곱셈 방법을 적용하여 곱셈을 구성할 경우 필요한 게이트 수는
Figure 112007048986253-pat00200
만큼 감소한다. 혼합 방법에 따른 게이트 수의 감소량을 비교하기 위하여 2:3 방법을 적용할 경우 가장 많은 게이트를 필요로 하는 차수에 대한 게이트 수를 구하고 그에 따른 감소율을 구하도록 한다. 2:3 방법을 적용하여 곱셈을 구성할 경우 차수가
Figure 112007048986253-pat00201
일 때 가장 많은 게이트 수를 필요로 하고, 이 때 필요한 게이트 수는
Figure 112007048986253-pat00202
이 된다. 차수가
Figure 112007048986253-pat00203
이고,
Figure 112007048986253-pat00204
형태 일 때 차수에 따라 2:3 방법과 본 발명에 따른 곱셈 방법을 적용할 경우 필요한 게이트 수와 지연 시간은 표 3과 같다.
Figure 112007048986253-pat00205
표 3과 같이 정수
Figure 112007048986253-pat00206
Figure 112007048986253-pat00207
을 만족하는 차수에 대하여 본 발명에 따른 곱셈 방법을 적용하여 곱셈을 수행하면 2:3 방법을 적용하여 곱셈을 적용하는 것보다 약 10%의 게이트가 감소하고 시간 지연은
Figure 112007048986253-pat00208
만큼 감소한다.
바람직하게는, 상기의 분할 테이블을 이용한 유한체 곱셈 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 기록매체에 기록할 수 있다.
본 발명은 소프트웨어를 통해 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.
본 발명은 도면에 도시된 일 실시예를 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.
도 1a는 종래의 유한체 곱셈기의 블럭도이다.
도 1b는 본 발명의 일 실시예에 따른 분할 테이블을 이용한 유한체 곱셈 장치의 블럭도이다.
도 2a는 차수가 98인 경우에 도 1b의 테이블 적용부(120)에 의해 구성된 곱셈기의 예를 도시한 것이다.
도 2b는 차수가 193인 경우에 도 1b의 테이블 적용부(120)에 의해 구성된 곱셈기의 예를 도시한 것이다.
도 3은 본 발명의 다른 실시예에 따른 분할 테이블을 이용한 유한체 곱셈 방법의 흐름도이다.
도 4는 본 발명의 또다른 실시예에 따른 분할 테이블을 이용한 유한체 곱셈 방법의 흐름도이다.

Claims (13)

  1. 유한체
    Figure 112009005396578-pat00209
    의 두 원소의 곱셈을 수행하는 분할테이블을 이용한 유한체 곱셈 장치에 있어서,
    임의의 정수
    Figure 112009005396578-pat00210
    에 대하여, 차수 n이
    Figure 112009005396578-pat00211
    를 만족하면 2-다중분할 카라슈바 방법을
    Figure 112009005396578-pat00212
    번 적용하고, 상기 차수 n이 25이면 5-다중분할 카라슈바 방법을 적용하도록 분할 테이블을 생성하는 테이블 작성부;
    상기 분할 테이블을 이용하여 차수 n에 대한 곱셈기를 구성하는 테이블 적용부; 및
    상기 테이블 적용부에서 구성된 곱셈기를 이용하여 상기 두 원소의 곱셈을 수행하는 곱셈 수행부를 포함하는 분할 테이블을 이용한 유한체 곱셈 장치.
  2. 제 1 항에 있어서,
    상기 테이블 작성부는
    상기 차수 n이 1, 2, 3, 4, 5, 7, 11이면, SB 방법을 적용하도록 상기 분할 테이블을 생성하는 것을 특징으로 하는 분할 테이블을 이용한 유한체 곱셈 장치.
  3. 제 1 항에 있어서,
    상기 테이블 작성부는
    SB 방법, 2-다중분할 카라슈바 방법 또는 3-다중분할 카라슈바 방법 중
    Figure 112007048986253-pat00213
    를 만족하는 차수 n에 대하여 가장 작은 게이트 수를 필요로 하는 곱셈방법을 선택하는 것을 특징으로 하는 분할 테이블을 이용한 유한체 곱셈 장치.
  4. 제 1 항에 있어서,
    상기 테이블 작성부는
    각 차수마다 필요한 최소의 게이트 수를 저장하고,
    상기 테이블 적용부는
    상기 최소의 게이트 수를 이용하여 차수 n에 대한 곱셈기를 구성하는 것을 특징으로 하는 분할 테이블을 이용한 유한체 곱셈 장치.
  5. 제 1 항에 있어서,
    상기 곱셈 수행부는
    5비트 곱셈기, 5비트 XOR 게이트 및 9비트 XOR 게이트를 포함하는 25비트 곱셈기를 포함하는 것을 특징으로 하는 분할 테이블을 이용한 유한체 곱셈 장치.
  6. 제 5 항에 있어서,
    상기 곱셈 수행부는
    상기 두 원소가 98비트의 입력인 경우, 49비트 곱셈기, 49비트 XOR 게이트 및 97비트 XOR 게이트를 포함하고,
    상기 49비트 곱셈기는
    상기 25비트 곱셈기, 25비트 XOR 게이트 및 49비트 XOR 게이트를 포함하는 것을 특징으로 하는 분할 테이블을 이용한 유한체 곱셈 장치.
  7. 유한체
    Figure 112009005396578-pat00214
    의 두 원소의 곱셈을 수행하는 분할 테이블을 이용한 유한체 곱셈 장치에 있어서,
    하위 차수부터 차수 n까지 진행하면서 SB 방법, 2-다중분할 카라슈바 방법, 3-다중분할 카라슈바 방법 또는 5-다중분할 카라슈바 방법 중 최소의 게이트 수를 필요로 하는 곱셈방법을 선택하되, 상기 차수 n이 25이면, 5-다중분할 카라슈바 방법을 곱셈방법으로 선택하고, 상기 곱셈방법 및 상기 최소의 게이트 수를 각 차수마다 저장하는 테이블 작성부;
    상기 저장된 곱셈방법 및 상기 최소의 게이트 수를 이용하여 차수 n에 대한 곱셈기를 구성하는 테이블 적용부; 및
    상기 구성된 곱셈기를 이용하여 상기 두 원소의 곱셈을 수행하는 곱셈 수행부를 포함하는 분할 테이블을 이용한 유한체 곱셈 장치.
  8. 삭제
  9. 유한체
    Figure 112009005396578-pat00215
    의 두 원소의 곱셈을 수행하는 분할 테이블을 이용한 유한체 곱셈 방법에 있어서,
    테이블 작성부에서 임의의 정수
    Figure 112009005396578-pat00216
    에 대하여, 차수 n이
    Figure 112009005396578-pat00217
    를 만족하면 2-다중분할 카라슈바 방법을
    Figure 112009005396578-pat00218
    번 적용하고, 상기 차수 n이 25이면 5-다중분할 카라슈바 방법을 적용하도록 분할 테이블을 생성하는 단계;
    테이블 적용부에서 상기 분할 테이블을 이용하여 차수 n에 대한 곱셈기를 구성하는 단계; 및
    곱셈 수행부에서 상기 구성된 곱셈기를 이용하여 상기 두 원소의 곱셈을 수행하는 단계를 포함하는 분할 테이블을 이용한 유한체 곱셈 방법.
  10. 제 9 항에 있어서,
    상기 분할 테이블을 생성하는 단계는
    상기 차수 n이 1, 2, 3, 4, 5, 7, 11이면, SB 방법을 적용하도록 상기 분할 테이블을 생성하는 단계를 포함하는 것을 특징으로 하는 분할 테이블을 이용한 유한체 곱셈 방법.
  11. 제 9 항에 있어서,
    상기 분할 테이블을 생성하는 단계는
    SB 방법, 2-다중분할 카라슈바 방법 또는 3-다중분할 카라슈바 방법 중
    Figure 112007048986253-pat00219
    를 만족하는 차수 n에 대하여 가장 작은 게이트 수를 필요로 하는 곱셈방법을 선택하는 단계를 포함하는 것을 특징으로 하는 분할 테이블을 이용한 유한체 곱셈 방법.
  12. 유한체
    Figure 112009005396578-pat00220
    의 두 원소의 곱셈을 수행하는 분할테이블을 이용한 유한체 곱셈 방법에 있어서,
    테이블 작성부에서 하위 차수부터 차수 n까지 진행하면서 SB 방법, 2-다중분할 카라슈바 방법, 3-다중분할 카라슈바 방법 또는 5-다중분할 카라슈바 방법 중 최소의 게이트 수를 필요로 하는 곱셈방법을 선택하되, 상기 차수 n이 25이면, 5-다중분할 카라슈바 방법을 곱셈방법으로 선택하고, 상기 곱셈방법 및 상기 최소의 게이트 수를 각 차수마다 저장하는 단계;
    테이블 적용부에서 상기 저장된 곱셈방법 및 상기 최소의 게이트 수를 이용하여 차수 n에 대한 곱셈기를 구성하는 단계; 및
    곱셈 수행부에서 상기 구성된 곱셈기를 이용하여 상기 두 원소의 곱셈을 수행하는 단계를 포함하는 분할 테이블을 이용한 유한체 곱셈 방법.
  13. 제 9 항 내지 제 12 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020070067290A 2007-07-04 2007-07-04 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체 KR100902847B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070067290A KR100902847B1 (ko) 2007-07-04 2007-07-04 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070067290A KR100902847B1 (ko) 2007-07-04 2007-07-04 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체

Publications (2)

Publication Number Publication Date
KR20090002899A KR20090002899A (ko) 2009-01-09
KR100902847B1 true KR100902847B1 (ko) 2009-06-16

Family

ID=40485813

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070067290A KR100902847B1 (ko) 2007-07-04 2007-07-04 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체

Country Status (1)

Country Link
KR (1) KR100902847B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200073537A (ko) 2018-12-14 2020-06-24 단국대학교 산학협력단 Ab 곱셈 및 ab^2 곱셈의 멀티 연산 장치 및 방법
KR102132935B1 (ko) 2019-02-14 2020-07-10 단국대학교 산학협력단 유한체 곱셈 방법 및 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311052B2 (en) 2012-11-29 2016-04-12 Electronics And Telecommunications Research Institute Method of performing multiplication operation in binary extension finite field

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Efficient FPGA-Based Karatsuba Multipliers for Polynomials over F2", J.von zur Gathen et al., Selected Areas in Cryptography(SAC 2005), LNCS 3897, pp.359-369(2006)*
"유한체 GF(2n)에서 낮은 공간 복잡도를 가지는 새로운 다중 분할 카라슈바 방법의 병렬 처리 곱셈기", 장남수 외, 전자공학회 논문지 제41권 SC편 제1호, 2004.*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200073537A (ko) 2018-12-14 2020-06-24 단국대학교 산학협력단 Ab 곱셈 및 ab^2 곱셈의 멀티 연산 장치 및 방법
KR102132935B1 (ko) 2019-02-14 2020-07-10 단국대학교 산학협력단 유한체 곱셈 방법 및 장치

Also Published As

Publication number Publication date
KR20090002899A (ko) 2009-01-09

Similar Documents

Publication Publication Date Title
US6049815A (en) Method and apparatus for finite field multiplication
US7486789B2 (en) Device and method for calculation on elliptic curve
CN104184578A (zh) 一种基于fpga的椭圆曲线标量乘法加速电路及其算法
JP4180024B2 (ja) 乗算剰余演算器及び情報処理装置
US6763366B2 (en) Method for calculating arithmetic inverse over finite fields for use in cryptography
KR100902847B1 (ko) 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체
US8225100B2 (en) Hash functions using recurrency and arithmetic
JP4170267B2 (ja) 乗算剰余演算器及び情報処理装置
US20010054053A1 (en) Method and apparatus for finite field multiplication
JP2000010479A (ja) モンゴメリ・リダクション装置及び記録媒体
Adikari et al. A new algorithm for double scalar multiplication over Koblitz curves
KR100670780B1 (ko) 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법
CN113467752B (zh) 用于隐私计算的除法运算装置、数据处理系统及方法
EP1455270B1 (en) Method and apparatus for basis conversion in finite field and a multiplier
US7085791B2 (en) Method and apparatus for generating a pseudo random number
KR102110162B1 (ko) 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법
US8417756B2 (en) Method and apparatus for efficient modulo multiplication
KR100954586B1 (ko) 다항식 기저 기반의 이진체 병렬 곱셈 장치 및 방법과 이를이용한 마이크로프로세서
KR101626743B1 (ko) 유한체상의 몽고메리 알고리즘을 이용한 곱셉기 및 곱셈 방법
US20240039698A1 (en) Encryption processing device and encryption processing method
KR101423947B1 (ko) 확장된 nist 소수를 이용한 모듈러 곱셈 및 모듈러 지수승 방법
JP7331951B2 (ja) 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
KR100606435B1 (ko) 유한체에서의 역원 연산 장치 및 방법
KR100564765B1 (ko) 유한체 다항식 나눗셈 장치 및 그 방법
El Mouaatamid Additive Fast Fourier Polynomial Multiplier For Code Based Algorithms

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120319

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130405

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee