KR100552694B1 - 유한 체에서 곱셈 연산 방법 및 장치 - Google Patents

유한 체에서 곱셈 연산 방법 및 장치 Download PDF

Info

Publication number
KR100552694B1
KR100552694B1 KR1020030072140A KR20030072140A KR100552694B1 KR 100552694 B1 KR100552694 B1 KR 100552694B1 KR 1020030072140 A KR1020030072140 A KR 1020030072140A KR 20030072140 A KR20030072140 A KR 20030072140A KR 100552694 B1 KR100552694 B1 KR 100552694B1
Authority
KR
South Korea
Prior art keywords
multiplier
components
expressed
storage unit
multiplication
Prior art date
Application number
KR1020030072140A
Other languages
English (en)
Other versions
KR20050036451A (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 KR1020030072140A priority Critical patent/KR100552694B1/ko
Priority to US10/965,907 priority patent/US7539719B2/en
Publication of KR20050036451A publication Critical patent/KR20050036451A/ko
Application granted granted Critical
Publication of KR100552694B1 publication Critical patent/KR100552694B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing

Landscapes

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

Abstract

유한 체에서 곱셈 연산 방법 및 장치가 개시된다. 본 발명에 따른 유한 체에서 곱셈 연산 방법은 유한 체 GF(2n)의 n차 결정 다항식 f(x)가
Figure 112003038556543-pat00001
으로 표현되고, 2이상의 자연수 d에 대해
Figure 112003038556543-pat00002
이며, 유한 체의 두 원소 A,B가 A=(a0, …, an-1), B=(b0, …, bn-1)으로 표현되면, A,B의 곱 C=(c0, …, cn-1)를 구하는 방법에 있어서, (a) 승수 A의 최종 d개의 성분들 (an-1,…, an-d)을 각각 소정 변수들 (s n-1,…, sn-d) 로 치환하는 단계; (b) 소정 변수 i,j에 대해, 피승수 B의 (i+j)번째 성분에 대해
Figure 112003038556543-pat00003
의 연산을 수행하여 C의 각 성분을 갱신하고, A에 대해
Figure 112003038556543-pat00004
의 연산을 수행하여 A의 성분들을 갱신하는 과정을 j를 0부터 1씩 (d-1)까지 증가시키면서 수행하는 단계; 및 (d) i를 0부터 (n-1)까지 d씩 증가시키면서 (a) 내지 (c)의 연산을 반복하여 수행하는 단계를 포함한다.

Description

유한 체에서 곱셈 연산 방법 및 장치{Method and apparatus for multiplication operation in finite field}
도 1은 본 발명에 따른 표준기저를 사용한 곱셈 방법에 의한 곱셈 연산 장치의 구성도이다.
도 2는 본 발명에 따른 쌍립기저를 이용한 곱셈연산 장치에 대한 구성도이다.
도 3 및 도 4는 쌍립기저를 이용한 곱셈 연산에서 기저변환을 수행하는 수단에 대한 실시예들을 각각 도시한 것이다.
본 발명은 유한 체에서 곱셈 연산 방법 및 장치에 관한 것이다.
유한 체(finite field) GF(2n)는 2n개의 원소들을 포함하는 수 체계(number system)이다. 유한 체의 각 원소가 n비트로 표현될 수 있다는 사실에 의해 유한 체의 실제적인 응용이 가능하다. 에러 정정 코드 및 타원곡선 암호 시스템(Elliptic Curve Cryptosystem)의 하드웨어 구현과 같은 실제적인 응용은 GF(2n)에서의 계산을 많이 사용한다. 리드-솔로몬(Reed-Solomon) 코드를 부호화/복호화하는 장치는 GF(2n)에서의 계산을 수행하여야 하며, 타원곡선 암호 시스템의 암호/해독 장치는 큰 값의 n의 GF(2n)에서의 계산을 수행하여야 한다.
유한 체 GF(2)는 다음 수학식과 같은 덧셈, 곱셈 규칙들을 갖고, 그 원소가 오직 이진수 0, 1인 수 체계이다.
0 + 0 = 1 + 1 = 0
0 + 1 = 1 + 0 = 1
0 × 0 = 1 × 0 = 0 × 1 = 0
1 × 1 = 1
즉, 덧셈은 비트 배타적 논리합(이하 "XOR") 연산이고, 곱셈은 비트 논리곱(이하 "AND") 연산이다.
유한 체 GF(2n) (n>1)은 2n개의 원소를 포함하는 수 체계인데, 이 수 체계에서 덧셈과 곱셈은 GF(2)의 계수를 가지고, n차 기약 다항식(binary irreducible polynomial of degree of n)의 산술 모듈로(modulo)에 대응한다. 이 다항식을 유한 체 결정 다항식(defining polynomial)이라 하며, 이 다항식의 한 근을 α라 할 때 유한 체의 한 원소는 다음 수학식 2와 같은 표준 표현(standard representation)을 갖는다.
Figure 112003038556543-pat00005
GF(2n)의 두 원소의 곱은 α에 관한 다항식 곱셈 후 결정 다항식에 의한 모듈로 연산으로 결정되며, 합은 α에 관한 다항식 덧셈으로 결정된다.
유한 체에서의 곱셈은 크게 직렬 곱셈기, 병렬 곱셈기, 시스톨릭(systolic) 곱셈기 등이 있다. 직렬 곱셈기는 작은 면적 복잡도로 구성되며, 병렬 곱셈기는 레이턴시(latency)없이 게이트 지연(gate delay)만으로 곱셈을 수행한다. 따라서 병렬 곱셈기는 직렬 곱셈기에 비해 높은 면적도가 필요하지만, 시간 복잡도를 크게 줄일 수 있다. 시스톨릭 곱셈기는 처리량(throughput)을 높이도록 설계되므로, 면적/시간 복잡도가 상대적으로 높아진다.
이들 곱셈기들중 직렬 곱셈기에 대해 연산속도를 향상시키면서도 면적 복잡도의 증가를 최소로하는 곱셈 연산 방법 및 그 장치가 필요하다.
본 발명이 이루고자하는 기술적 과제는 결정 다항식의 최종 d개 항의 계수가 '0'이라 가정하고, 그에 따라 d 비트 단위로 병렬처리하여 곱셈 연산을 수행하는 유한 체에서 곱셈 연산 방법 및 장치를 제공하는데 있다.
상기 기술적 과제를 이루기위한, 본 발명은 유한 체 GF(2n)의 n차 결정 다항 식 f(x)가
Figure 112003038556543-pat00006
으로 표현되고, 2이상의 자연수 d에 대해
Figure 112003038556543-pat00007
이며, α가 상기 결정 다항식의 근일 때, 상기 유한 체의 두 원소 A,B가 상기 α에 대해
Figure 112003038556543-pat00008
으로 표현되면,
Figure 112003038556543-pat00009
로 표현되는 상기 A,B의 곱 C=(c0, …, cn-1)를 구하는 방법에 있어서, (a) 승수 A의 최종 d개의 성분들 (an-1,…, an-d )을 각각 소정 변수들 (sn-1,…, sn-d) 로 치환하는 단계; (b) 소정 변수 i,j에 대해, 피승수 B의 (i+j)번째 성분에 대해
Figure 112003038556543-pat00010
의 연산을 수행하여 상기 C의 각 성분을 갱신하고, 상기 A에 대해
Figure 112003038556543-pat00011
여기서
Figure 112003038556543-pat00012
는 배타적 논리 합 연산,
Figure 112003038556543-pat00013
는 논리 곱 연산임
의 연산을 수행하여 A의 성분들을 갱신하는 과정을 상기 j를 0부터 1씩 (d-1)까지 증가시키면서 수행하는 단계; 및 (d) 상기 i를 0부터 (n-1)까지 d씩 증가시키면서 상기 (a) 내지 (c)의 연산을 반복하여 수행하는 단계를 포함함을 특징으로한다.
상기 기술적 과제를 이루기위한, 본 발명은 유한 체 GF(2n)의 n차 결정 다항식 f(x)가
Figure 112003038556543-pat00014
으로 표현되고, 2이상의 자연수 d에 대해
Figure 112003038556543-pat00015
이며, α가 상기 결정 다항식의 근일 때, 상기 유한 체의 두 원소 A,B가 상기 α에 대해 다음 식
Figure 112003038556543-pat00016
으로 표현되면,
Figure 112003038556543-pat00017
로 표현되는 상기 A,B의 곱 C=(c0, …, cn-1)를 구하는 장치에 있어서, 승수 A의 성분들을 저장하는 승수 저장부; 피승수 B의 성분들을 저장하는 피승수 저장부; 상기 A 및 B의 곱셈 연산 결과 C를 저장하는 곱셈 결과 저장부; 소정 변수 i,j가 있을 때 상기 B의 (i+j)번째 성분에 대해
Figure 112003038556543-pat00018
의 연산을 상기 j를 0부터 (d-1)까지 1씩 증가시키면서 수행하고, 다시 상기 i를 0부터 (n-1)까지 d씩 증가시면서 반복 수행하여 최종 C를 구하고, 상기 최종 C를 상기 곱셈 결과 저장부에 출력하는 곱셈 연산부; 및 상기 i,j에 대해
Figure 112003038556543-pat00019
의 연산을 수행하여 상기 A의 성분들을 갱신하고, 갱신된 A를 상기 승수 저장부에 출력하는 승수 계수 갱신부를 포함함을 특징으로한다.
상기 기술적 과제를 이루기위한 본 발명은 유한 체 GF(2n)의 n차 결정 다항식 f(x)가
Figure 112003038556543-pat00020
으로 표현되고, 2이상의 자연수 d에 대해
Figure 112003038556543-pat00021
이며, α가 상기 결정 다항식의 근일 때, 상기 유한 체의 두 원소 A,B를 상기 α에 대해 다음 식
Figure 112003038556543-pat00022
과같이 표준표현으로 나타낼 때, 상기 A의 쌍립 표현이
Figure 112003038556543-pat00023
이면,
Figure 112003038556543-pat00024
로 표현되는 상기 A,B의 곱 C=(c0, …, cn-1)를 구하는 방법에 있어서, (a) 상기 A를 A'으로 변환하는 단계; (b) 소정 변수 i,j에 대해, 상기 A'로부터
Figure 112003038556543-pat00025
여기서, ci+j'은 ci+j의 쌍립 표현
의 연산을, 상기 j를 0부터 1씩 증가시키면서 (d-1)이 될 때까지 수행하여 상기 C의 쌍립표현인 C'의 각 성분을 갱신하는 단계; (c) 상기 A'을 왼쪽으로 d번 쉬프트하여 갱신하는 단계; (d) 상기 sj를 각각 상기 A'의 최종 d개의 성분을 갱신 하는 단계; (e) 상기 i를 0부터 d씩 증가시키면서 (n-1)이 될 때까지 상기 (b) 내지 (d)단계를 반복수행하여 최종 C'을 구하는 단계; 및 (f) 최종 C'을 기저 변환하는 단계를 포함한다.
상기 기술적 과제를 이루기위한 본 발명은 유한 체 GF(2n)의 n차 결정 다항식 f(x)가
Figure 112003038556543-pat00026
으로 표현되고, 2이상의 자연수 d에 대해
Figure 112003038556543-pat00027
이며, α가 상기 결정 다항식의 근일 때, 상기 유한 체의 두 원소 A,B를 상기 α에 대해 다음 식
Figure 112003038556543-pat00028
과같이 표준표현으로 나타낼 때, 상기 A의 쌍립 표현이
Figure 112003038556543-pat00029
이면,
Figure 112003038556543-pat00030
로 표현되는 상기 A,B의 곱 C=(c0, …, cn-1)를 구하는 장치에 있어서, 상기 표준 표현을 쌍립표현으로 또는 그 역으로 변환하는 기저 변환부; 피승수 B의 성분들을 저장하는 피승수 저장부;
승수 A에 대해 상기 기저 변환부에 의해 변환된 A'의 성분들을 저장하는 승수 저장부; 소정 수학식에 따라 상기 A'의 성분들을 갱신하여 상기 승수 저장부로 출력하는 승수 갱신부; 및 소정 변수 j가 0부터 (d-1)까지의 값일 때, 상기 피승수 저장부의 m번째 성분과 상기 승수 저장부의 (m+j)번째 성분들을 각각 곱하고, 상기 피승수 저장부의 최종 j개의 성분들을 상기 승수 갱신부에 출력되는 일부 값들과 곱하는 복수의 곱셈기 및 상기 곱셈기의 출력들중 상기 (m+j)번째 성분이 포함된 출력들만을 각각 배타적 논리 합 연산하여 최종 d개의 ci'를 출력하는 복수의 논리 연산 수단을 구비하는 연산부를 포함함을 특징으로하고, 상기 연산부에 의해 최종 C'이 구해지면 상기 기저 변환부를 통해 상기 C'을 C로 기저변환하여 최종 곱셈 결과를 얻는다.
이하에서 첨부된 도면을 참조하여 본 발명을 보다 상세히 설명하기로한다.
유한 체 GF(2n)의 결정 다항식을 다음 식으로 표현하기로 한다.
Figure 112003038556543-pat00031
α를 결정 다항식의 근이라 하면 h(α)는 다음 식과 같이 쓸 수 있다.
Figure 112003038556543-pat00032
이하에서
Figure 112003038556543-pat00033
는 비트와이즈(bitwise) 논리 합(XOR) 연산,
Figure 112003038556543-pat00034
는 비트와이즈 논리 곱(AND) 연산을 나타낸다고 하자. 비트와 벡터의
Figure 112003038556543-pat00035
의 연산은 다음 식과 같이 정의된다.
Figure 112003038556543-pat00036
쉬프트(shift) 연산으로 사용할 >>와 <<는 다음과 같이 정의한다.
Figure 112003038556543-pat00037
은 다음의 코드에 나타난 바와 같이 각 계수를 오른쪽으로 한 번 쉬프트하는 것을 의미한다.
Figure 112003038556543-pat00038
마찬가지로
Figure 112003038556543-pat00039
은 다음의 코드에 나타난 바와 같이 각 계수를 왼쪽으로 한 번 쉬프트하는 것을 의미한다.
Figure 112003038556543-pat00040
본 발명의 유한 체의 두 원소의 곱셈에서는 표준기저(standard basis)와 쌍립기저(dual basis)의 두 기저를 각각 사용한다.
먼저, 표준기저를 사용하는 경우를 설명하기로한다.
표준기저를 사용하는 경우, GF(2n)의 두 원소 A,B는 다음 식과 같이 나타낼 수 있다.
Figure 112003038556543-pat00041
이에 따른 A,B의 곱은 다음 식과 같이 정의된다.
Figure 112003038556543-pat00042
여기서, ×는 다항식의 곱셈을 나타낸다.
수학식 9에 대한 전개는 다음의 코드 식과 같이 이루어진다.
Figure 112003038556543-pat00043
수학식 10에 따른 곱셈 방법을 설명하면 다음과 같다. 피승수(multiplicand) B의 i번째 계수를 승수(multiplier) A의 계수 전체에 각각 곱하고, 그 결과를 C의 이전 계수들과 배타적 논리 합 연산하여 C의 각 계수를 갱신한다. A의 최고차 항 계수를 유한 체의 결정 다항식에서 최고차 항을 제외한 나머지 항들의 계수들과 각각 곱하고, 그 결과를 승수 A의 각 계수를 오른쪽으로 한 번 쉬프트한 결과와 배타적 논리 합 연산하여 A의 각 계수를 갱신한다. 이 과정을 n번 수행하여 최종 C를 구하게된다.
수학식 10의 곱셈 알고리즘의 for 루프안에서의 A의 변화를 생각한다. i=k일 때, C에 배타적 논리 합의 연산이 이루어지는
Figure 112003038556543-pat00044
에서
Figure 112003038556543-pat00045
이라 가정하고,
Figure 112003038556543-pat00046
이라 하면, i=k+1일 때 A는 수학식 10에 따라 다음 식과 같이 표현될 수 있다.
Figure 112003038556543-pat00047
i=k+2인 경우 A는 마찬가지로 수학식 10에 따라 다음 식과 같이 표현될 수 있다.
Figure 112003038556543-pat00048
동일한 방법으로 i=k+d일 때, A는 수학식 10에 따라 다음 식과 같이 표현될 수 있다.
Figure 112003038556543-pat00049
따라서 i=k+d일 때, A는 가정에 의해서 d비트의 병렬처리가 가능한 형태이다. 또한 d가 충분히 작으면 대부분의 실용적인 경우, 즉, 표준 SEC, ANSI X9.62의 타원곡선 암호 시스템의 파라미터를 만족하므로 실용성에 위배되지않는다.
이와같이 d비트의 병렬처리가 가능한 표준기저의 곱셈 방법을 코드식으로 정 리하면,
Figure 112003038556543-pat00050
에 대해, A,B의 곱셈 C는 다음 식과 같이 나타낼 수 있다.
Figure 112003038556543-pat00051
수학식 14에 따른 곱셈 방법은 수학식 10에서 설명된 과정을 d비트 단위로 수행하게되어, 시간 복잡도를 d배 향상시키면서 면적 복잡도의 증가를 최소로 할 수 있다.
도 1은 수학식 14에 따른 표준기저를 사용한 곱셈 방법에 의한 곱셈 연산 장치의 구성도이다. 도시된 곱셈 연산 장치는 n=5,
Figure 112003038556543-pat00052
, d=2인 경우에 대한 곱셈 연산 장치이다. 도시된 곱셈 연산 장치는 승수 A의 계수들을 각각 저장하는 승수 저장부(1), 피승수 B의 계수들을 각각 저장하는 피승수 저장부(21, 22), 곱셈 결과의 계수들을 저장하는 곱셈 결과 저장부(3), 곱셈 연산부(4) 및 승수 계수 갱신부(5)를 포함한다.
여기서, 피승수 저장부(21, 22)는 피승수의 k번째 항에 대해 k를 d로 모듈로 연산했을 때, 동일한 모듈로 연산 결과를 갖는 항들에 해당하는 계수들만 모아서 저장하는 d개의 부분 저장부로 구성된다. 도시된 피승수 저장부(21, 22)는 d=2인 경우이므로, 홀수 번째 항의 계수들만 저장하는 제1부분 저장부(21)와 짝수 번째 항의 계수들만 저장하는 제2부분 저장부(22)로 구성된다.
곱셈 연산부(4)는 복수의 곱셈기와 배타적 논리 합 연산기들로 구성된다. 곱셈기들은 각 부분 저장부(21, 22)에 저장된 피승수 계수들 각각에 대응하여 d세트로 구비되고, 각 곱셈기 세트의 m번째 곱셈기는 대응하는 부분 저장부의 m번째 피승수 계수와 승수 저장부(1)에서 출력되는 m번째 승수 계수를 곱한다.
곱한 결과들은 m번째 배타적 논리 합 연산기에 의해 배타적 논리 합 연산되어 곱셈 결과 저장부(3)의 해당 계수와 합산된다. 즉, 수학식 14의
Figure 112003038556543-pat00053
에 따라 d비트 단위로 곱셈 및 배타적 논리 합 연산을 수행하여 곱셈 결과 저장부(3)에 각각 저장한다. 승수 계수 갱신부(5)는 수학식 14의
Figure 112003038556543-pat00054
에 따라 승수 계수들을 갱신하여 승수 저장부(1)에 각각 저장한다.
1사이클(cycle) 후에 A는 수학식 14에 따라
Figure 112003038556543-pat00055
가 됨을 알 수 있다.
상기한 바와 같은 표준기저를 사용하는 곱셈 연산외에 본 발명에 따른 쌍립 기저를 사용하는 곱셈 연산에 대해 설명하면 다음과 같다.
쌍립기저를 사용하는 곱셈 연산은 쌍립기저의 승수와 표준기저의 피승수의 곱셈으로 이루어지고, 쌍립 기저의 곱셈결과를 얻게된다.
표준기저에 따라 다음 식으로 각각 표현되는 GF(2n)의 두 원소 A, B를 고려하기로한다.
Figure 112003038556543-pat00056
A의 쌍립표현(dual representation)을
Figure 112003038556543-pat00057
이라 하고, A,B의 곱셈 결과를
Figure 112003038556543-pat00058
라 하며, C의 쌍립표현을
Figure 112003038556543-pat00059
라 하면 곱셈은 다음 식과 같은 코드로 표현된다.
Figure 112003038556543-pat00060
수학식 16에 따른 곱셈 방법을 설명하면 다음과 같다. 먼저, 승수 A를 표준 기저에서 쌍립기저로 기저변환한다. 쌍립 기저에서의 i번째 곱셈 결과인 ci'는 쌍립기저의 A'의 계수들과 피승수 B의 계수들을 각각 곱하고, 곱한 결과들을 배타적 논리합 연산함으로써 얻어진다. 유한 체의 결정 다항식의 최고차 항을 제외한 나머지 항들의 계수들과 A'의 계수들을 각각 곱하고, 곱한 결과들을 배타적 논리합 연산하여 k로 한다. A'을 계수들을 왼쪽으로 한 번 쉬프트하여 갱신한 다음, A'의 최고차 항의 계수를 k로 갱신한다. 이러한 과정을 n번 수행한 후 최종 곱셈 결과인 C'을 표준 기저로 변환한다.
수학식 16의 for 루프 안에서 A'의 변화를 살펴보기로 한다. i=k일 때 A'이
Figure 112003038556543-pat00061
로 표현되면,
Figure 112003038556543-pat00062
에 대해 i=k+1일 때의 A'은 다음 식과 같이 나타낼 수 있다.
Figure 112003038556543-pat00063
i=k+d일 때의 A'은 다음 식과 같이 나타낼 수 있다.
Figure 112003038556543-pat00064
i=k+d일 때의 A'은 가정에 의해 d비트의 병렬처리가 가능한 형태이다. 또한 d가 충분히 작으면 대부분의 실용적인 경우, 즉, 표준 SEC, ANSI X9.62의 타원곡선 암호시스템의 파라미터를 만족하므로 실용성에 위배되지않는다.
이와같이 d비트의 병렬처리가 가능한 쌍립기저를 사용한 곱셈 방법을 코드식으로 정리하면,
Figure 112003038556543-pat00065
에 대해, A,B의 곱셈 C는 다음 식과 같이 나타낼 수 있다.
Figure 112003038556543-pat00066
수학식 19에 따른 곱셈 방법은 수학식 16에서 설명된 과정을 d비트 단위로 수행하게되어, 시간 복잡도를 d배 향상시키면서 면적 복잡도의 증가를 최소로 할 수 있다.
도 2는 쌍립기저를 이용한 곱셈연산 장치에 대한 구성도이다. 도시된 곱셈 연산 장치는 n=5,
Figure 112005055161849-pat00067
, d=2인 경우에 대한 곱셈 연산 장치이다. 도시된 곱셈연산 장치는 승수의 계수를 각각 저장하고 갱신값들을 계산하는 승수 저장 및 갱신부(31), 피승수 저장부(32), 연산부(33)를 포함한다. 여기서, ai를 ai'으로 또는 ci'을 ci로 변환하는 기저변환부는 도시되지않았다.
피승수 저장 및 갱신부(31)는 수학식 19중에서 다음 식에 따라 연산을 수행하여 쌍립기저의 계수를 구한다.
Figure 112003038556543-pat00068
연산부(33)는 승수 저장 및 계산부(31)에서 출력되는 승수 a'=(a'0,…,a'n)과 비승수 저장부(32)에서 출력되는 피승수 b=(b0,…,bn)로부터 피승수의 m번째 성분과 승수의 (m+j)번째 성분을 곱하고, 곱한 결과를 모두 배타적 논리합 연산함으로써 수학식 19에서
Figure 112005055161849-pat00069
에 해당하는 계산을 수행한다. 최종 j개의 피승수 성분은
Figure 112005055161849-pat00070
에 의해서 생성되는 s0, …, sj-1의 성분과 곱해지며, s0, …, sj-1은 수학식 20에 의해 갱신된 a'에 의해서 결정된다.
이에 따라 1사이클 후에 A'은
Figure 112003038556543-pat00071
가 됨을 알 수 있 다. 또한 ci'은
Figure 112003038556543-pat00072
가 되고, ci+1'은
Figure 112003038556543-pat00073
가 됨을 알 수 있다.
도 3 및 도 4는 쌍립기저를 이용한 곱셈 연산에서 기저변환을 수행하는 수단에 대한 실시예들을 각각 도시한 것이다. 도 3 및 도 4에 도시된 기저변환 수단은 본 발명의 출원인과 동일한 출원인에 의해 출원된 특허출원번호 2002-0069460호에 개시된 바와 같다. 도시된 바에 따르면, 기저변환은 단순히 각 다항식 계수의 순서를 바꾸거나 배타적 논리 합 연산에 의한 비교적 간단한 연산을 통해 구현될 수 있다.
다음 표는 표준기저를 이용한 곱셈 연산 장치에 대한 성능을 나타낸 것이다.
Figure 112003038556543-pat00074
여기서, A는 두 입력 논리 곱 게이트, X는 두 입력 배타적 논리 합 게이트, R은 레지스터, TA는 논리 곱 게이트 딜레이, TX는 배타적 논리 합 게이트 딜레이, n은 차원, d는 병렬처리 비트수를 나타낸다.
다음 표는 쌍립기저를 이용한 곱셈 연산 장치에 대한 성능을 나타낸 것이다.
Figure 112003038556543-pat00075
단, 기저변환 수단에 포함되는 성능값들은 제외되었다.
여기서, A는 두 입력 논리 곱 게이트, X는 두 입력 배타적 논리 합 게이트, R은 레지스터, TA는 논리 곱 게이트 딜레이, TX는 배타적 논리 합 게이트 딜레이, n은 차원, d는 병렬처리 비트 수를 나타낸다.
다음 표는 상기한 바와 같은 성능값에 따라 삼성전자(주)의 0.18μm 공정을 기준으로 본원 발명에 따른 곱셈 연산 장치의 성능값을 계산한 것이다.
Figure 112003038556543-pat00076
여기서, 쌍립기저를 이용한 곱셈연산 장치의 경우 기저변환 수단을 포함한다.
표 3에 따르면, 연산속도가 두배로 빨라지는 동안 면적 복잡도는 약 1.43~1.61배 정도 증가하므로, 면적 복잡도의 증가가 완화됨을 알 수 있다.
본 발명에 따르면, d비트의 병렬처리가 가능한 직렬 곱셈 연산이 수행함에 따라 기존의 직렬 곱셈 연산 장치보다 수행속도가 빠르고, 면적복잡도의 증가가 최소화될 수 있다. 또한 예상되는 딜레이는 클럭 스피드 100MHz정도까지 한 클럭안에 들어오므로, 스마트 카드와 같이 클럭 스피드가 낮은 단말기에서 실용성이 높다.

Claims (8)

  1. 유한 체 GF(2n)의 n차 결정 다항식 f(x)가 다음 식
    Figure 112005055161849-pat00077
    으로 표현되고, 2이상의 자연수 d에 대해
    Figure 112005055161849-pat00078
    이며, α가 상기 결정 다항식의 근일 때, 상기 유한 체의 두 원소 A,B가 상기 α에 대해 다음 식
    Figure 112005055161849-pat00079
    으로 표현되면,
    Figure 112005055161849-pat00080
    로 표현되는 상기 A,B의 곱 C=(c0, …, cn-1)를 구하는 방법에 있어서,
    (a) 승수 A의 최종 d개의 성분들 (an-1,…, an-d)을 각각 소정 변수들 (sn-1,…, sn-d) 로 치환하는 단계;
    (b)
    Figure 112005055161849-pat00113
    는 배타적 논리 합 연산,
    Figure 112005055161849-pat00114
    는 논리 곱 연산이라 할때, 소정 변수 i,j에 대해, 피승수 B의 (i+j)번째 성분에 대해 다음 식
    Figure 112005055161849-pat00081
    의 연산을 수행하여 상기 C의 각 성분을 갱신하고, 상기 A에 대해 다음 식
    Figure 112005055161849-pat00082
    의 연산을 수행하여 A의 성분들을 갱신하는 과정을 상기 j를 0부터 1씩 (d-1)까지 증가시키면서 수행하는 단계; 및
    (d) 상기 i를 0부터 (n-1)까지 d씩 증가시키면서 상기 (a) 내지 (c) 단계의 연산을 반복하여 수행하는 단계;를 포함하는 것을 특징으로 하는 유한 체에서 곱셈 연산 방법.
  2. 유한 체 GF(2n)의 n차 결정 다항식 f(x)가 다음 식
    Figure 112005055161849-pat00085
    으로 표현되고, 2이상의 자연수 d에 대해
    Figure 112005055161849-pat00086
    이며, α가 상기 결정 다항식의 근일 때, 상기 유한 체의 두 원소 A,B가 상기 α에 대해 다음 식
    Figure 112005055161849-pat00087
    으로 표현되면,
    Figure 112005055161849-pat00088
    로 표현되는 상기 A,B의 곱 C=(c0, …, cn-1)를 구하는 장치에 있어서,
    승수 A의 성분들을 저장하는 승수 저장부;
    피승수 B의 성분들을 저장하는 피승수 저장부;
    상기 A 및 B의 곱셈 연산 결과 C를 저장하는 곱셈 결과 저장부;
    Figure 112005055161849-pat00115
    는 배타적 논리 합 연산,
    Figure 112005055161849-pat00116
    는 논리 곱 연산이라 하고, 소정 변수 i,j가 있을 때 상기 B의 (i+j)번째 성분에 대해 다음 식
    Figure 112005055161849-pat00089
    의 연산을 상기 j를 0부터 (d-1)까지 1씩 증가시키면서 수행하고, 다시 상기 i를 0부터 (n-1)까지 d씩 증가시면서 반복 수행하여 최종 C를 구하고, 상기 최종 C를 상기 곱셈 결과 저장부에 출력하는 곱셈 연산부; 및
    상기 i,j에 대해 다음 식
    Figure 112005055161849-pat00092
    여기서
    Figure 112005055161849-pat00093
    는 배타적 논리 합 연산,
    Figure 112005055161849-pat00094
    는 논리 곱 연산임
    의 연산을 수행하여 상기 A의 성분들을 갱신하고, 갱신된 A를 상기 승수 저장부에 출력하는 승수 계수 갱신부;를 포함하는 것을 특징으로 하는 유한 체에서 곱셈 연산 장치.
  3. 제2항에 있어서, 상기 피승수 저장부는
    상기 피승수의 k번째 성분에 대해 상기 k를 상기 d로 모듈로 연산했을 때, 동일한 모듈로 연산 결과를 갖는 성분들만을 구분하여 각각 저장하는 d개의 부분 저장부를 구비함을 특징으로하는 유한 체에서 곱셈 연산 장치.
  4. 제3항에 있어서, 상기 곱셈 연산부는
    상기 부분 저장부들별로 각각 대응되도록 d세트가 구비되어, 상기 각 부분 저장부로부터 출력되는 피승수 성분들을 상기 승수 저장부에서 출력되는 승수 성분들과 각각 곱하는 복수의 곱셈기; 및
    상기 각 곱셈기 세트중 각 m번째 곱셈기로부터 출력되는 값을 배타적 논리 합 연산하고, 그 결과를 상기 곱셈 결과 저장부의 m번째 위치에 저장된 값과 다시 배타적 논리 합 연산하여 상기 곱셈 결과 저장부로 출력하는 복수의 논리 연산 수단;을 포함하는 것을 특징으로 하는 유한 체에서 곱셈 연산 장치.
  5. 유한 체 GF(2n)의 n차 결정 다항식 f(x)가 다음 식
    Figure 112003038556543-pat00095
    으로 표현되고, 2이상의 자연수 d에 대해
    Figure 112003038556543-pat00096
    이며, α가 상 기 결정 다항식의 근일 때, 상기 유한 체의 두 원소 A,B를 상기 α에 대해 다음 식
    Figure 112003038556543-pat00097
    과같이 표준표현으로 나타낼 때, 상기 A의 쌍립 표현이
    Figure 112003038556543-pat00098
    이면,
    Figure 112003038556543-pat00099
    로 표현되는 상기 A,B의 곱 C=(c0, …, cn-1)를 구하는 방법에 있어서,
    (a) 상기 A를 A'으로 변환하는 단계;
    (b) 소정 변수 i,j에 대해, 상기 A'로부터 다음 식
    Figure 112003038556543-pat00100
    여기서, ci+j'은 ci+j의 쌍립 표현
    의 연산을, 상기 j를 0부터 1씩 증가시키면서 (d-1)이 될 때까지 수행하여 상기 C의 쌍립표현인 C'의 각 성분을 갱신하는 단계;
    (c) 상기 A'을 왼쪽으로 d번 쉬프트하여 갱신하는 단계;
    (d) 상기 sj를 각각 상기 A'의 최종 d개의 성분을 갱신하는 단계;
    (e) 상기 i를 0부터 d씩 증가시키면서 (n-1)이 될 때까지 상기 (b) 내지 (d)단계를 반복수행하여 최종 C'을 구하는 단계; 및
    (f) 최종 C'을 기저 변환하는 단계를 포함함을 특징으로하는 유한 체에서 곱셈 연산 방법.
  6. 유한 체 GF(2n)의 n차 결정 다항식 f(x)가 다음 식
    Figure 112003038556543-pat00101
    으로 표현되고, 2이상의 자연수 d에 대해
    Figure 112003038556543-pat00102
    이며, α가 상기 결정 다항식의 근일 때, 상기 유한 체의 두 원소 A,B를 상기 α에 대해 다음 식
    Figure 112003038556543-pat00103
    과같이 표준표현으로 나타낼 때, 상기 A의 쌍립 표현이
    Figure 112003038556543-pat00104
    이면,
    Figure 112003038556543-pat00105
    로 표현되는 상기 A,B의 곱 C=(c0, …, cn-1)를 구하는 장치에 있어서,
    상기 표준 표현을 쌍립표현으로 또는 그 역으로 변환하는 기저 변환부;
    피승수 B의 성분들을 저장하는 피승수 저장부;
    승수 A에 대해 상기 기저 변환부에 의해 변환된 A'의 성분들을 저장하는 승수 저장부;
    소정 수학식에 따라 상기 A'의 성분들을 갱신하여 상기 승수 저장부로 출력하는 승수 갱신부; 및
    소정 변수 j가 0부터 (d-1)까지의 값일 때, 상기 피승수 저장부의 m번째 성분과 상기 승수 저장부의 (m+j)번째 성분들을 각각 곱하고, 상기 피승수 저장부의 최종 j개의 성분들을 상기 승수 갱신부에 출력되는 일부 값들과 곱하는 복수의 곱셈기 및 상기 곱셈기의 출력들중 상기 (m+j)번째 성분이 포함된 출력들만을 각각 배타적 논리 합 연산하여 최종 d개의 ci'를 출력하는 복수의 논리 연산 수단을 구비하는 연산부를 포함함을 특징으로하고,
    상기 연산부에 의해 최종 C'이 구해지면 상기 기저 변환부를 통해 상기 C'을 C로 기저변환하여 최종 곱셈 결과를 얻는, 유한 체에서 곱셈 연산 장치.
  7. 제6항에 있어서, 상기 연산부는
    상기 복수의 곱셈기 및 논리 연산 수단을 이용하여
    소정 변수 i,j에 대해, 상기 A'로부터 다음 식
    Figure 112003038556543-pat00106
    여기서, ci+j'은 ci+j의 쌍립 표현
    의 연산을, 상기 j를 0부터 1씩 증가시키면서 (d-1)이 될 때까지 수행하여 상기 C의 쌍립표현인 C'의 d개 성분을 출력하고, 상기 i를 0부터 d씩 증가시키면서 (n-1)까지 상기 C의 (i+j)번째 성분에 대한 쌍립표현인 ci+j'을 구하는 것을 특징으 로하는 유한 체 곱셈 연산 장치.
  8. 제6항에 있어서, 상기 승수 갱신부는
    상기 승수 저장부에 저장된 A'을 왼쪽으로 d번 쉬프트하여 갱신하고,
    소정 변수 j에 대해, 다음 식
    Figure 112005055161849-pat00107
    Figure 112005055161849-pat00108
    의 연산을 상기 j를 0부터 1씩 증가시키면서 (d-1)이 될 때까지 수행하여 최종 d개의 성분들을 갱신하여, 상기 승수 저장부에 저장된 성분들을 갱신하는 것을 특징으로 하는 유한 체에서 곱셈 연산 장치.
KR1020030072140A 2003-10-16 2003-10-16 유한 체에서 곱셈 연산 방법 및 장치 KR100552694B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020030072140A KR100552694B1 (ko) 2003-10-16 2003-10-16 유한 체에서 곱셈 연산 방법 및 장치
US10/965,907 US7539719B2 (en) 2003-10-16 2004-10-18 Method and apparatus for performing multiplication in finite field GF(2n)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030072140A KR100552694B1 (ko) 2003-10-16 2003-10-16 유한 체에서 곱셈 연산 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20050036451A KR20050036451A (ko) 2005-04-20
KR100552694B1 true KR100552694B1 (ko) 2006-02-20

Family

ID=34510895

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030072140A KR100552694B1 (ko) 2003-10-16 2003-10-16 유한 체에서 곱셈 연산 방법 및 장치

Country Status (2)

Country Link
US (1) US7539719B2 (ko)
KR (1) KR100552694B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765252B1 (en) 2004-03-19 2010-07-27 Microsoft Corporation Five-term karatsuba-variant calculator
US7363336B1 (en) 2004-03-19 2008-04-22 Microsoft Corporation Six-term Karatsuba-variant calculator
CN103268217A (zh) * 2013-04-19 2013-08-28 荣成市鼎通电子信息科技有限公司 基于循环左移的准循环矩阵串行乘法器
KR101418686B1 (ko) * 2013-08-02 2014-07-10 공주대학교 산학협력단 유한체에서 타입 4 가우시안 정규기저를 이용한 이차 미만의 공간 복잡도를 갖는 병렬 곱셈 연산방법 및 그 연산장치
KR101533929B1 (ko) * 2014-06-27 2015-07-09 공주대학교 산학협력단 유한체 GF(3ⁿ)상에서 쉬프트 된 다항식 기저를 이용한 이차 미만의 공간복잡도를 갖는 병렬 곱셈기, 그 방법 및 이를 기록한 기록매체
KR102110162B1 (ko) * 2017-12-28 2020-05-14 공주대학교 산학협력단 다항식 곱셈 연산 방법에 기반한 유한체의 병렬 곱셈 연산 방법
CN110457008B (zh) * 2018-05-08 2021-08-03 北京小米松果电子有限公司 m序列生成方法、装置及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940001147B1 (ko) * 1991-03-20 1994-02-14 삼성전자 주식회사 부분체 GF(2^m/2)을 이용한 GF(2^m)상의 연산방법 및 장치
US5272661A (en) * 1992-12-15 1993-12-21 Comstream Corporation Finite field parallel multiplier
GB9627069D0 (en) * 1996-12-30 1997-02-19 Certicom Corp A method and apparatus for finite field multiplication
US6389442B1 (en) * 1997-12-30 2002-05-14 Rsa Security Inc. Efficient finite field multiplication in normal basis
US6141786A (en) * 1998-06-04 2000-10-31 Intenational Business Machines Corporation Method and apparatus for performing arithmetic operations on Galois fields and their extensions
KR100322739B1 (ko) 1998-10-19 2002-06-22 윤종용 유한체연산방법및그장치
KR20020094440A (ko) 2001-06-11 2002-12-18 주식회사 시큐리티테크놀로지스 유한체 곱셈장치

Also Published As

Publication number Publication date
KR20050036451A (ko) 2005-04-20
US7539719B2 (en) 2009-05-26
US20050086278A1 (en) 2005-04-21

Similar Documents

Publication Publication Date Title
US9146708B2 (en) Implementation of arbitrary galois field arithmetic on a programmable processor
US20110246548A1 (en) Sequential galois field multiplication architecture and method
JP2004326112A (ja) マルチプルモジュラス選択器、累算器、モンゴメリー掛け算器、マルチプルモジュラス発生方法、部分掛け発生方法、累算方法、掛け算方法、モジュラス選択器、およびブースレコーダ
KR100552694B1 (ko) 유한 체에서 곱셈 연산 방법 및 장치
CN114063973B (zh) 伽罗华域乘法器及纠删编解码系统
US6957243B2 (en) Block-serial finite field multipliers
KR100322739B1 (ko) 유한체연산방법및그장치
US6763366B2 (en) Method for calculating arithmetic inverse over finite fields for use in cryptography
JP2004258141A (ja) モンゴメリ乗算剰余の多倍長演算のための演算装置
WO1999004332A1 (en) Composite field multiplicative inverse calculation for elliptic curve cryptography
US6662201B1 (en) Modular arithmetic apparatus and method having high-speed base conversion function
US6912558B2 (en) Multiplication module, multiplicative inverse arithmetic circuit, multiplicative inverse arithmetic control method, apparatus employing multiplicative inverse arithmetic circuit, and cryptographic apparatus and error correction decoder therefor
KR100670780B1 (ko) 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법
US7346641B2 (en) Method and apparatus for basis conversion in finite field
JP4177125B2 (ja) 演算装置及び演算装置の演算方法
US6138134A (en) Computational method and apparatus for finite field multiplication
KR100946256B1 (ko) 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기
JP4472808B2 (ja) 積和演算装置及びこれを用いた暗号・復号装置
US7287207B2 (en) Method and apparatus for computing parity characters for a codeword of a cyclic code
KR20080056036A (ko) 유한체 상의 고속 직렬 곱셈기 구조
KR100519775B1 (ko) 유한 체에서의 제곱 연산 방법 및 장치
TW201616340A (zh) 可重組架構的有限場乘法裝置
JPH11110241A (ja) ガロア体上の乗算方法及び乗算回路
JPS635928B2 (ko)
Hariri Arithmetic units for the elliptic curve cryptography with concurrent error detection capability

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: 20130115

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140124

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150116

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160118

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee