KR100322739B1 - 유한체연산방법및그장치 - Google Patents

유한체연산방법및그장치 Download PDF

Info

Publication number
KR100322739B1
KR100322739B1 KR1019980043710A KR19980043710A KR100322739B1 KR 100322739 B1 KR100322739 B1 KR 100322739B1 KR 1019980043710 A KR1019980043710 A KR 1019980043710A KR 19980043710 A KR19980043710 A KR 19980043710A KR 100322739 B1 KR100322739 B1 KR 100322739B1
Authority
KR
South Korea
Prior art keywords
register
vector
finite field
basis
stored
Prior art date
Application number
KR1019980043710A
Other languages
English (en)
Other versions
KR20000026250A (en
Inventor
이창희
김기호
임종인
Original Assignee
윤종용
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤종용, 삼성전자 주식회사 filed Critical 윤종용
Priority to KR1019980043710A priority Critical patent/KR100322739B1/ko
Publication of KR20000026250A publication Critical patent/KR20000026250A/ko
Application granted granted Critical
Publication of KR100322739B1 publication Critical patent/KR100322739B1/ko

Links

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
    • G06F7/726Inversion; Reciprocal calculation; Division of elements of a finite field

Landscapes

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

Abstract

일반적으로, 유한체 GF(2m)의 원소들은 m비트의 벡터로 표시된다. 쌍립 기저(dual basis)의 특수 형태로부터 유한체 연산 과정을 위한 효율적인 특성을 추출할 수 있다. 본 발명에서는 GF(2m)의 각 원소는 다항식 쌍립 기저의 특수 형태의 표현으로부터 1비트 확장된(여분의 1비트의 지닌) 형태로 표현된다. 이것은 유한체 연산을 위한 다음과 같은 잇점을 지원한다.
첫째로, 지금까지의 쌍립기저 VLSI 설계에 필요한 비용과 거의 같은 비용(칩 영역, 논리 게이트의 수 등)과 단지 1 또는 m의 내적 모듈들을 구비하여, 비트 직렬 또는 비트 병렬 VLSI 설계에 의한 유한체 연산을 실현할 수 있다.
두 번째, 제곱 과정은 정규체제 상의 제곱 과정과 같이 단지 비트 단위 순열(permutation)이다.
그리고, 세 번째, 유한체 역셈은 정규체제에서의 제곱과 같이 제곱하는 유한체 곱의 단순한 모듈을 반복함에 의해 설계될 수 있다.

Description

유한체 연산방법 및 그 장치
본 발명은 유한체(finite field) 연산방법 및 GF(2m)의 두 원소를 곱하고, GF(2m)의 한 원소의 역을 계산하는 장치에 관한 것이다.
유한체 GF(2m)는 2m개의 원소들을 포함하는 수체계(number system)이다. 유한체의 각 원소가 m비트로 표현될 수 있다는 사실에 의해 유한체의 실제적인 응용이 가능하다. 에러 정정 코드 및 타원곡선 암호시스템(Elliptic Curve Cryptosystem:이하 ECC라 한다)의 하드웨어 구현과 같은 실제적인 응용은 GF(2m)에서의 계산을 매우 많이 사용한다. 리드-솔로몬(Reed-Solomon) 코드를 부호화/복호화하는 장치는 GF(2m)에서의 계산을 수행하여야 하며, 타원곡선 암호시스템을 사용하는 ECC 암호/해독 장치는 큰 값의 m의 GF(2m)에서의 계산을 수행하여야 한다. 이에 대한 상세한 내용에 대해서는 the M.I.T. Press, 1972 제2판에 게재된 W. W. Feterson과 E. J. Weldon, Jr.의 "Error-Correcting Codes"와 Cambridge Univ. Press, 1986에 게재된 Alfred J. Menezes의 "Applications of Finite Fields"를 참조할 수 있다.
유한체 GF(2)는 다음과 같은 덧셈, 곱셈 규칙들을 갖고, 그 원소가 오직 이진수 0, 1인 수체계이다.
[수학식 1]
0+0=1+1=0
0+1=1+0=1
0×0=1×0=0×1=0
1×1=1
이와 같은 규칙들은 모듈로-2 연산이라 일컬어진다. 따라서, 논리 표현으로 상술되거나 실제 응용에서의 덧셈기에 의해 이루어지는 모든 덧셈은 모듈로 2에 의해 수행된다. 덧붙여, 곱셈은 수학식 1에 제시된 규칙에 대응하는 논리곱(logical AND) 게이트로 구현된다. 유한체 GF(2m)(여기서 m>1)은 2m개의 원소를 포함하는 수체계인데, 이 수체계에서 덧셈과 곱셈은 GF(2)의 계수를 가지고, 약분할 수 없는 m차 다항식의 산술 모듈로에 대응한다. 비록 관념적인 의미에서는 각 m에 대하여 오직 하나의 유한체 GF(2m)이 존재할 것이나, GF(2m)에서의 연산을 수행하는데 요구되는 논리회로의 복잡성은 유한체 원소들이 표현되는 특정 방식에 밀접하게 의존한다.
GF(2m)에서의 연산을 수행하는 논리회로를 설계하는 첫 번째 종래의 방식은 Information and Control, Vol.6, pp.79-98에 게재된 T. Bartee와 D. Schneider의 논문 "Computation with Finite Fields"에 기술되어 있다. 이와 같은 종래의 방식에서는, GF(2) 상에서 약분할 수 없는 m차의 다항식 P(X)를 먼저 선택한다. 즉, P(X)는 이진 계수를 가지며, 이진 계수를 지니고 각각 m보다 적은 차수인 다항식들의 곱으로 인수분해되지 않는다. P(A)=0가 만족되는 GF(2m)에서의 한 원소 A는 P(X)의 루트로 정의된다. P(X)가 약분되지 않는다는 사실은 GF(2m)의 m개의 원소 A0=1, A, A2, …, Am-1는 GF(2) 상에서 선형적으로 독립이라는 사실을 보장한다. 즉, 이진수 b0, b1, b2, …,bm-1가 모두 0인 경우에만, b0+b1A+b2A2+…+bm-1Am-1이 0으로 된다. 종래의 방법은 원소 1, A, A2, …, Am-1에 대하여 각각 2진 성분을 가진 길이 m의 단위벡터들을 할당하는 것이다.
종래의 방법에 대한 예로서, 다음과 같은 3차의 약분할 수 없는 다항식을 선택한 유한체 GF(23)를 살펴본다.
[수학식 2]
P(X)=X3+X+1
다음 단계에서는 다음 수학식을 만족하는 GF(23)의 원소 A를 정의한다.
[수학식 3]
A3+A+1=0
단위벡터의 할당은 다음과 같이 이루어진다.
[수학식 4]
A0=[0,0,1]
A1=[0,1,0]
A2=[1,0,0]
GF(23)의 임의의 원소 B는 이진벡터 [b2,b1,b0]에 의해 표현되고, 다음과 같은 의미를 갖는다.
[수학식 5]
B=[b2,b1,b0]=b2A2+b1A+b0
C=[c2,c1,c0]를 GF(23)의 두 번째 원소로 두자. 그러면, 수학식 4 및 수학식 5에 의해 다음과 같은 수학식이 성립한다.
[수학식 6]
B+C=[b2+c2, b1+c1, b0+c0]
따라서, 종래의 방법에 의하면, GF(2m)에서의 덧셈은 원소들를 표현한 두 벡터의 모듈로 2 합산을 두 벡터의 성분단위로 수행하는 논리 회로만으로 용이하게 수행된다. 그러나, 곱셈은 구현하기가 상당히 복잡하다.
예를들어 계산하면, 수학식 3으로부터 다음과 같은 수학식이 성립한다.
[수학식 7]
A3=A+1
A4=A2+A
여기에서, GF(2)에서는 (-1=+1)라는 사실이 이용된다. 수학식 4, 수학식 5 및 수학식 7로부터 다음 수학식이 도출된다.
[수학식 8]
B×C=[d2,d1,d0]
여기서,
[수학식 9]
d0=b0c0+b1c2+b2c1
d1=b0c1+b1c0+b1c2+b2c1+b2c2
d2=b0c2+b2c0+b1c1+b2c2
수학식 9를 구현하기 위해서는 복잡한 논리 회로가 필요하다. 수학식 8에서 C=B라고 두면, 수학식 9로부터 다음 수학식이 도출된다.
[수학식 10]
B2=[e2,e1,e0]
여기서,
[수학식 11]
e0=b0
e1=b2
e2=b1+b2
여기서는, GF(2)에서 (b2=b)이고, (b+b=0)이라는 사실이 이용된다. 수학식 11에 의한 제곱 규칙은 수학식 9에 의한 곱셈 규칙보다는 구현하기가 상당히 용이하나, 몇 개의 덧셈(본 예에서는, 1개이지만)이 수행되어야 하고, 제곱 규칙의 형태는 제곱되는 성분에 따라 변화한다는 단점이 여전히 남는다.
요약하면, GF(2m)에서의 연산을 수행하기 위한 논리 회로를 설계하는 종래의 방법은 덧셈에서는 간단하나, 제곱 계산을 위해서는 다소 복잡하고, 곱셈을 위해서는 상당히 복잡하다.
두 번째 종래의 방법에 의하면, 유한체 GF(2m)에 대한 다음과 같은 특별한 특징들이 제시된다. 유한체 GF(2m)에 대한 "정규 기저(normal basis)"가 항상 존재하고, m=2,3,4,5,6,9,10,…,52,58,60,…인 특수한 형태의 유한체 GF(2m)에 대해서는 "최적 정규 기저(optimal normal basis)"가 존재한다.
A0=A, A1=A2, A2=A4, …, Am-1=A2m-1이 GF(2m)에 대한 기저인 유한체 원소 A가 항상 존재한다. 따라서, 모든 유한체 원소 B는 다음과 같이 유일하게 표시될 수 있다.
[수학식 12]
여기에서, b0, b1, …, bm-2, bm-1은 이진수이다, 더욱이, GF(2m)에서의 제곱은 다음과 같은 의미에서 선형 계산이다.
[수학식 13]
(B+C)2=B2+C2
더욱이, GF(2m)의 모든 원소 B에 대하여,
[수학식 14]
B2m=B
먼저, GF(2) 상에서 약분할 수 없고, 선형적으로 독립된 루트들을 가진 m차원의 다항식 P(X)를 선택함에 의해 곱셈과정을 단순화하여야 한다. P(X)가 선형적으로 독립된 루트들을 가져야 한다는 조건은 GF(2m)의 원소로서 P(A)=0인 A를 정의하면,
[수학식 15]
A0=A, A1=A2, A2=A4, …, Am-1=A2m-1
는 GF(2m)에 대한 정규 기저를 형성한다는 것을 보증한다. 유한체에서의 정규 기저에 대한 좀 더 구체적인 내용에 대해서는 Lidl과 Neidereiter에 의한 "Finite Fields"를 참조할 수 있다. B=[bm-1,…,b2,b1,b0]와 C=[cm-1,…,c2,c1,c0]가 상술한 정규 기저 표현에 의한 GF(2m)의 두 원소인 경우, 그 곱
[수학식 16]
D=B×C=[dm-1,…,d2,d1,d0]
은 B와 C를 표현하는 벡터들의 성분 또는 이진수들에 적용되어 dm-1을 산출한 논리 회로에 의해, B와 C를 표현하는 벡터를 연속적인 로테이션한 성분들에 적용되어 곱셈의 나머지 성분인 dm-2,…,d2,d1,d0가 순차적으로 산출되는 성질을 갖는다.
수학식 9의 이진수 d2, d1, d0를 고려할 때 이러한 사실을 알 수 있다. 여기서,
d2=b1c1+b0c1+b1c0+b2c0
d1=b0c0+b2c0+b2c1+b1c2
d0=b2c2+b1c2+b1c0+b0c1
이진수 bi, ci중 같은 이진수를 묶어 그룹된 항을 생성하여 다음과 같은 형태로 재작성할 수 있다.
d2=b0(c1+c2)+c0(b1+b2)+b1c1
d1=b2(c0+c1)+c2(b0+b1)+b0c0
d0=b1(c2+c0)+c1(b2+b0)+b2c2
b0(c1+c2)와 같은 표현은 차후에 그룹된 항으로 참조된다. 따라서, d1에 대한 논리식은 d2에 대한 논리식의 모든 이진수의 첨자를 1만큼 감소시켜 모듈로 3함으로써 유도될 수 있다. 따라서, 각각 쉬프트 레지스터에 벡터들을 로드하고, 동시에 성분 d2의 모든 항을 생성하는 디지털 논리 회로를 구현함으로써 실제적인 구현이 가능하다. 이때, d1을 구하여 위해서는 쉬프트 레지스터의 내용이 1비트 로테이트된다. d0를 구하는 과정도 유사하다. 따라서, 두 쉬프트 레지스터에 있는 벡터 B와 C를 로테이트함으로써, 하나의 논리 회로에 의해 곱벡터 D의 이진수가 생성된다.
두 번째 종래의 방법은 첫 번째 종래의 방법에 비하여 더 효율적이나, 벡터의 이진수를 구성하는 모든 그룹된 항들은 동시에 더해져야 한다는 단점을 갖는다. 이러한 사실은 논리 회로의 구현을 복잡하게 하고, 예들들어, 250보다 큰 m에 대해서는 실용적이지 않다. 두 번째 종래의 방법에서는 m개의 동일한 곱셈 논리 회로에 의해 곱 벡터의 m개의 이진수를 동시 또는 병렬로 생성하는 것을 제안한다. 그러나 이와 같은 단순한 합성은 외부 쉬프트 레지스터의 접속의 증가 및 많은 양의 회로가 요구됨으로써 논리 구현이 어렵다.
미국 특허(특허번호 4745568)은 이러한 형태의 논리 회로에서 상기의 그룹된항들을 재배열하고, 누산 셀들을 사용함으로써 많은 양의 회로를 줄이는 성과를 이루었다. 쉬프트 레지스터에서 비트 벡터 B와 C를 로테이트하고, 누적 셀들의 내용을 로테이트함에 의해 각 이진수 di의 각 그룹된 항은 연속된 셀들에 누적된다. 따라서, 곱 벡터의 모든 이진수들은 비트 벡터 B와 C가 한번 완전히 로테이트한 이후에 누적 셀들에 동시에 생성된다.
그러나, 이 방식도 역시 병렬 처리에 의해 구현될 때, 많은 양의 회로와 레지스터들이 요구된다.
여기에서, 본 발명을 보다 쉽게 설명하기 위하여, 쌍립 기저 곱셈기를 소개한다. 쌍립 기저 곱셈기는 적은 양의 논리 회로이라는 측면에서 지금까지 가장 뛰어난 곱셈기로 알려져 있다. 그러나, 종래의 기술에 의한 쌍립 기저 방법은 아래에서 설명되는 바와 같이 몇가지 단점을 지니고 있다. 쌍립 기저 방법에 대해서는, IEEE Trans. on Comp. Vol. 45, No.3, March 1996에 게재된 Sebastian T.J. Fenn, Mohammed Benaissa 및 David Taylor에 의한 "GF(2m) Multiplication and Division Over the Dual Basis"에 상세히 설명되어 있다.
GF(2m)에서 유한체 성분 x에 대하여, Tr(x)를 다음과 같은 값으로 두자.
[수학식 17]
Tr(x)는 "GF(2) 상의 GF(2m)에 대한 트레이스(trace function)"라고 칭하여진다. 그러면, 트레이스는 Tr(x+y)=Tr(x)+Tr(y)라는 의미에서 선형이다. 수학식 17에서 합계의 모든 항들은 상술한 바와 같이 선형이다.
SB={Sm-1, …, S2, S1, S0}와 DB={Rm-1, …, R2, R1, R0}은 GF(2) 상의 GF(2m)에 대한 두 기저들(GF(2m)의 부집합으로서)로 둔다. 그러면, 이들 두 기저들이 다음 수학식을 만족하는 경우에, 트레이스 Tr(*)에 대한 상호간의 "쌍립 기저"라고 칭하여진다.
[수학식 18]
GF(2m)의 어떠한 기저도 그것의 유일한 쌍립 기저를 갖는다. GF(2m) 상에서 상호 이중인 2개의 기저들 SB와 DB가 주어진 경우, GF(2m)에서의 어떠한 유한체 원소 V도 다음과 같은 표현으로 사용되는 어떤 기저에 관하여 이진수 수열의 2가지 형태로 표현될 수 있다.
SB에 기저된 V=[vm-1, …, v2, v1, v0]=vm-1Sm-1+…+v2S2+v1S1+v0S0,
DB에 기저된 V=[wm-1, …, w2, w1, w0]=wm-1Rm-1+…+w2R2+w1R1+w0R0.
이후에는, GF(2m)의 유한체 원소 V의 i번째 좌표가 각각 SB와 DB에 관하여 표현될 때, Vi와 [V]i로 표기한다. 즉, 상기한 등식에서 vi=Vi이고, wi=[V]i이다. 그러면, 수학식 18의 특성을 주목하여, GF(2m)의 주어진 유한체 원소 V에 대하여, 다음과 같다.
[수학식 19]
[V]i=Tr(V×Si)
이제, P(X)=Xm+pm-1Xm-1+…+p1X+p0는 GF(2) 상에서 약분할 수 없는 m차원의 다항식이고, P(A)=0으로 두자. 그러면, SB={1, A, A2, …, Am-1}은 다항식 기저(이들 "표준 기저"라고 칭한다)이다. 그것의 유일한 기저를 DB={R0, R1, R2, …, Rm-1}라고 두면, 수학식 19를 사용함에 의해 다음과 같은 수학식이 도출된다.
[수학식 20]
i=0,1,2,…,m-2에 대하여,
[수학식 21]
Kluwer Academic Publishers, pp.6, 1993에 기재된 Alfred J. Menezes에 의한 "Applications of Finite Fields"에 설명된 종래의 기술에 의한 유한체 곱셈기와 두 유한체 원소 B와 C의 곱인 D의 쌍립 기저 좌표로서의 이진수를 비트 직렬방식으로 계산하는 곱셈 알고리듬이 설명되어 있다. 이 구조는 이전에 설명된 방법에 의해 요구되는 것보다는 적은 양의 논리 회로가 요구된다. 그러나, 이것도 역시 두가지 단점을 지닌다. 첫째, 이것은 C의 쌍립 기저 표현을 다항식(표준) 기저 표현으로 변환(이것을 기저 변환이라 칭한다)하는 추가적인 작업이 요구된다. 두 번째, 그러한 쌍립 기저 제곱은 정규 기저 제곱에 비하여 다항식 기저의 경우와 같이 다소 복잡하다.
본 발명은 상기의 문제점을 해결하기 위하여 창작된 것으로서, 정규 기저가 사용되는 경우에 유한체 제곱이 비트 단위의 순열의 간단한 형태로 구성되는 특별한 쌍립 기저를 제공하여, 단지 쉬프트 레지스터와 내적 논리 회로를 사용하는 간단한 구조를 갖는 유한체 곱셈기 및 그 방법을 제공함을 제1의 목적으로 한다.
그리고, 상기한 바와 같은 구조를 갖는 유한체 역셈 계산기 및 그 방법을 제공함을 제2의 목적으로 한다.
도 1은 본 발명에 의한 GF(24)에서 순환 쌍립 기저에 의한 순차적 곱셈장치의 구성을 도시한 블록도이다.
도 2는 도 1의 내적 모듈의 구성을 도시한 회로도이다.
도 3은 본 발명에 의한 GF(24)에서 순환 쌍립 기저에 의한 병렬적 곱셈장치의 구성을 도시한 블록도이다.
도 4는 본 발명에 의한 GF(24)에서 순환 쌍립 기저에 의한 제곱을 구현한 비트단위 순열 회로이다.
도 5는 본 발명에 의한 GF(24)에서 순환 쌍립 기저에 의한 순차적 역셈장치의 구성을 도시한 블록도이다.
도 6은 본 발명에 의한 GF(24)에서 순환 쌍립 기저에 의한 병렬적 역셈장치의 구성을 도시한 블록도이다.
상기의 제1의 목적을 달성하기 위하여, 본 발명에 의한 유한체 GF(2m)의 원소 B를 DB로 표현한 벡터B=([B]0, [B]1, …, s[B])와 원소 C를 DB로 표현한 벡터C=([C]0, [C]1, …, s[C])의 곱인 벡터D=([D]0, [D]1, …, s[D])를 순차적으로 계산하는 장치는(여기서 m은 1보다 큰 정수이고, 상기 유한체는 표준 기저 SB={1, A, A2, …, Am-1}가 선형적으로 독립이고 Am+1=1인 원소 A를 갖고, DB={S0, S1, S2, …, Sm-1}는 SB의 순환 쌍립 기저이다) 벡터B를 입력받아 저장하고, 클럭 입력에 의해 상위 비트측으로 로테이트하는 제1레지스터; 벡터B가 제1레지스터에 저장되는 비트 순서의 역순으로 벡터C를 입력받아 저장하는 제2레지스터; 및 클럭 단위로 제1레지스터에 저장된 값과 제2레지스터에 저장된 값의 내적을 계산하여 s[D] 내지 [D]0를 산출하는 내적모듈을 포함함을 특징으로 한다.
상기의 제1의 목적을 달성하기 위하여, 본 발명의 다른 형태인 유한체 GF(2m)의 원소 B를 DB로 표현한 벡터B=([B]0, [B]1, …, s[B])와 원소 C를 DB로 표현한 벡터C=([C]0, [C]1, …, s[C])의 곱인 벡터D=([D]0, [D]1, …, s[D])를 병렬적으로 계산하는 장치는 벡터B를 입력받아 저장하는 제1레지스터; 벡터B가 제1레지스터에 저장되는 비트 순서의 역순으로 벡터C를 입력받아 저장하는 제2레지스터; 및 제2레지스터에 저장된 값과 제1레지스터에 저장된 값을 각각 상위 비트측으로 0내지 m비트 로테이트한 값의 내적들을 계산하여 각각 s[D] 내지 [D]0를 산출하는 (m+1)개의 내적모듈들을 포함함을 특징으로 한다.
상기의 제1의 목적을 달성하기 위하여, 본 발명의 다른 형태인 유한체 GF(2m)의 두 원소 B와 C의 곱 D를 결정하는 방법은 (a) 원소 B를 DB의 이진수 계수들로 구성된 벡터B=([B]0, [B]1, …, s[B])로 표현하는 단계; (b) 원소 C를 DB의 이진수 계수들로 구성된 벡터C=([C]0, [C]1, …, s[C])로 표현하는 단계; (c)의해 벡터D=([D]0, [D]1, …, s[D])를 구하는 단계(여기서, '·'는 숫자와 벡터의 곱이고, '>>r(k)'는 벡터를 우측으로 k비트 만큼 로테이트하는 것을 의미한다); 및 (d) 벡터D를 원소 D로 표현하는 단계를 포함함을 특징으로 한다.
상기의 제1의 목적을 달성하기 위하여, 본 발명의 다른 형태인 유한체 GF(2m)의 두 원소 B와 C의 곱 D를 순차적으로 결정하는 방법은 (a) 원소 B를 DB의 이진수 계수들로 구성된 벡터B=([B]0, [B]1, …, s[B])로 표현하는 단계; (b) 원소 C를 DB의 이진수 계수들로 구성된 벡터C=([C]0, [C]1, …, s[C])로 표현하는 단계; (c) 벡터B를 제1레지스터에 저장하고, 벡터B가 제1레지스터에 저장되는 비트 순서의 역순으로 벡터C를 제2레지스터에 저장하는 단계; (d) 제1레지스터에 저장된 벡터 값과 제2레지스터에 저장된 벡터 값의 내적을 구하고 제1레지스터를 상위 비트측으로 한 비트 로테이트하는 과정을 m+1번 반복하면서, 반복적으로 구한 내적들에 의해 DB의 이진수 계수들인 s[D]내지 [D]0을 결정하는 단계; 및 (e) DB의 이진수 계수들인 [D]0내지 s[D]를 원소 D로 표현하는 단계를 포함함을 특징으로 한다.
상기의 제1의 목적을 달성하기 위하여, 본 발명의 다른 형태인 유한체GF(2m)의 두 원소 B와 C의 곱 D를 병렬적으로 결정하는 방법은 (a) 원소 B를 DB의 이진수 계수들로 구성된 벡터B=([B]0, [B]1, …, s[B])로 표현하는 단계; (b) 원소 C를 DB의 이진수 계수들로 구성된 벡터C=([C]0, [C]1, …, s[C])로 표현하는 단계; (c) 벡터B를 제1레지스터에 저장하고, 벡터B가 제1레지스터에 저장되는 비트 순서의 역순으로 벡터C를 제2레지스터에 저장하는 단계; (d) 제1레지스터에 저장된 값을 상위 비트측으로 각각 0 내지 m비트 로테이트한 값들과 제2레지스터에 저장된 벡터C와의 내적들을 병렬적으로 구하고, 병렬적으로 구한 내적들에 의해 DB의 이진수 계수들인 s[D]내지 [D]0을 결정하는 단계; 및 (e) DB의 이진수 계수들인 [D]0내지 s[D]를 원소 D로 표현하는 단계를 포함함을 특징으로 한다.
상기의 제2의 목적을 달성하기 위하여, 본 발명에 의한 유한체 GF(2m)의 원소 x를 DB로 표현한 벡터X=([x]0, [x]1, …, s[x])의 역인 벡터X -1 =([x-1]0, [x-1]1, …, s[x-1])를 순차적으로 계산하는 장치는 제1제어신호 및 제2제어신호를 생성하는 제어부; 상기 제2제어신호의 제어에 의해 벡터X를 입력받아 저장하는 제1레지스터; 벡터X를 입력받아 저장하는 제2레지스터; 상기 제1제어신호에 의해 제1레지스터에 저장된 값을 v(u(X))에 의해 변환한 값과 현재 저장된 값을 상위비트측으로 한 비트 로테이트한 값 중 하나를 선택하여 저장하는 제3레지스터(여기서, u(X)={[x]0, [x]m/2+1, [x]1, [x]m/2+2, …, [x]m/2}이고, v(X)={s[x], [x]m-1, [x]m-2,…, [x]0}); 및 제3레지스터에 저장된 벡터 값과 제2레지스터에 저장된 벡터 값의 내적을 구하고, 상기 제2제어신호의 제어에 의해 구한 내적들을 차례로 제1레지스터에 저장하고, 상기 제3레지스터가 매 1회 회전한 후에 구한 내적들을 DB의 이진수 계수인 s[x-1] 내지 [x-1]0로 결정하여 출력하는 내적모듈을 포함함을 특징으로 한다.
상기의 제2의 목적을 달성하기 위하여, 본 발명의 다른 형태인 유한체 GF(2m)의 원소 x를 DB로 표현한 벡터X=([x]0, [x]1, …, s[x])의 역인 벡터X -1 =([x-1]0, [x-1]1, …, s[x-1])를 병렬적으로 계산하는 장치는 제어신호를 생성하는 제어부; 상기 제어신호의 제어에 의해 벡터X를 제곱된 형태로 변환하여 저장하는 제1레지스터; 상기 제어신호의 제어에 의해 벡터X를 2번 제곱된 형태로 변환한 값과 현재 저장된 값을 제곱된 형태로 변환한 값 중 하나를 선택하여 저장하는 제2레지스터; 및 제1레지스터에 저장된 값을 역순 형태로 변환한 값과 제2레지스터에 저장된 값을 입력하여 순환 쌍립 기저에 의한 곱을 병렬적으로 생성하여 상기 제어신호의 제어에 의해 제1레지스터에 저장하고, (m+1)번째 곱은 DB의 이진수 계수인 s[x-1] 내지 [x-1]0로서 출력하는 병렬적곱셈장치를 포함함을 특징으로 한다.
상기의 제2의 목적을 달성하기 위하여, 본 발명의 다른 형태인 유한체GF(2m)의 원소 x의 역 x-1을 순차적으로 결정하는 방법은 (a) 원소 x를 DB의 이진수 계수들로 구성된 벡터X=([x]0, [x]1, …, s[x])로 표현하는 단계; (b) 벡터X를 제1레지스터와 제2레지스터에 저장하는 단계; (c) 제1레지스터에 저장된 값을 v(u(X))에 의해 변환하여 제3레지스터에 저장하는 단계(여기서, u(X)=([x]0, [x]m/2+1, [x]1, [x]m/2+2, …, [x]m/2)이고, v(X)=(s[x], [x]m-1, [x]m-2, …, [x]0)); (d) 제3레지스터에 저장된 벡터 값과 제2레지스터에 저장된 벡터 값의 내적을 구하고 제3레지스터를 상위 비트측으로 한 비트 로테이트하는 과정을 m+1번 반복하면서 반복적으로 구한 내적들을 차례로 제1레지스터에 저장하고, 마지막 내적을 DB의 이진수 계수인 s[x-1]로 결정하는 단계; (e) 상기 (c) 단계 내지 상기 (d) 단계를 m번 더 반복하여 DB의 이진수 계수인 [x-1]m-1내지 [x-1]0를 결정하는 단계; 및 (f) DB의 이진수 계수들인 [x-1]0내지 s[x-1]을 원소 x-1로 표현하는 단계를 포함함을 특징으로 한다.
상기의 제2의 목적을 달성하기 위하여, 본 발명의 다른 형태인 유한체 GF(2m)의 원소 x의 역 x-1을 병렬적으로 결정하는 방법은 (a) 원소 x를 DB의 이진수 계수들로 구성된 벡터X=([x]0, [x]1, …, s[x])로 표현하는 단계; (b) 벡터X를 제곱된 형태로 변환하여 제1레지스터에 저장하고, 2번 제곱된 형태로 변환하여 제2레지스터에 저장하는 단계; (c) 제1레지스터에 저장된 값을 역순 형태로 변환하는 단계; (d) 상기 (c) 단계에서 역순 형태로 변환된 값을 상위 비트측으로 각각 0 내지 m비트 로테이트한 값들과 제2레지스터에 저장된 값의 내적들을 병렬적으로 구하는 단계; (e) 상기 (d) 단계에서 구한 내적들을 제1레지스터에 저장하고, 제2레지스터에 저장된 값을 제곱된 형태로 변환하여 다시 제2레지스터에 저장하고, 상기 (c) 내지 상기 (d) 단계를 반복하는 과정을 m번 더 반복하는 단계; (f) 상기 (e) 단계 이후 생성된 내적들에 의해 DB의 이진수 계수인 s[x-1] 내지 [x-1]0를 결정하는 단계; 및 (g) DB의 이진수 계수들인 [x-1]0내지 s[x-1]을 원소 x-1로 표현하는 단계를 포함함을 특징으로 한다.
이하에서 본 발명의 기본 개념을 설명하기 위하여, 다음과 같은 형태의 m차의 약분할 수 없는 다항식을 제시한다.
[수학식 22]
P(X)=Xm+Xm-1+…+X2+X+1
수학식 22에 의한 다항식 P(X)가 약분되지 않는 모든 차원 m(<300)이 표 1에 리스트된다.
[표 1]
P(X)가 GF(2) 상에서 약분되지 않는 차원 m의 리스트
P(A)=0인 A에 대하여, SB={1,A,A2,…,Am-1}를 수학식 22에 의한 약분할 수 없는 다항식 P(X)의 형태에 의해 생성된 표준 기저로 두자. 그 다음, 쌍립 기저 DB를 고려하여, 쌍립 기저의 좌표 [B]i들과 추가 여분의 비트 s[B]에 의해 GF(2m)의 유한체 원소 B를 다음과 같이 표현한다.
[수학식 23]
즉, 본 발명에 의한 유한체 원소의 표현은 종래의 쌍립 기저에 마지막 하나의 비트 좌표([B]m=s[B])로서 나머지 좌표들의 합계를 추가한다. 수학식 23에 의한 표현을 "순환 쌍립 기저" 표현이라 칭한다. 이 표현과 수학식 21을 결합하여, 다음과 같은 규칙을 도출할 수 있다(여기에서, <*>i는 *에 대한 i번째 순환 쌍립 기저 좌표를 의미한다).
[수학식 24]
[수학식 25]
[수학식 26]
Am+1=1, Am=Am-1+…+A2+A+1
수학식 25에서 B×A에 대한 순환 쌍립 기저 표현은 B의 순환 쌍립 기저 표현을 1비트 만큼 좌측 로테이션함에 의해 주어지고, B의 제곱은 단순히 순환 이중 표현을 통한 비트단위 순열(permutation)에 의해 표현된다. 그리고, 표준 기저 SB={1,A,A2,…,Am-1}에 대한 쌍립 기저 DB={R0,R1,…,Rm-1}는 다음과 같은 형태로 표현된다.
[수학식 27]
상기한 표준 기저로부터 쌍립 기저를 계산하는 규칙에 대해서는 Kluwer Academic Publishers, pp.6, 1993에 기재된 Alfred J. Menezes에 의한 "Applications of Finite Fields"를 참조할 수 있다.
순환 쌍립 기저 표현에 따르면, 원소 0는 다음과 같은 좌표를 갖는다.
0=[0,1,1,…,1]
수학식 23 내지 수학식 27과 결합하여, "순환 쌍립 기저 표현"을 통한 다음과 같은 간단한 곱셈 규칙(D=B×C)을 도출할 수 있다.
[수학식 28]
여기서, '·'과 '<<1k'의 표기는 각각 "두 벡터의 내적"과 "벡터의 k비트 좌측 로테이션"을 의미한다.
수학식 28에 의하면, 유한체 곱셈기는 단지 내적 모듈을 사용하여 간단한 논리 회로에 의해 구현된다. 더욱이, 이것은 종래의 쌍립 기저의 경우에서와 같은 기저 변환을 필요로 하지 않는다. 수학식 25에 의한 간단한 제곱 공식을 주목하면, 유한체 역셈 회로는 단지 수학식 28에 의한 간단한 곱셈 모듈을 m번 반복하는 간단한 구성으로 이루어질 수 있다. 이 유한체 곱셈과 역셈은 모두 비트-직렬의 형태와 비트-병렬의 형태로 구현될 수 있다.
비록 GF(2m)에서의 연산(유한체 곱셈 및 유한체 역셈)을 수행함에 있어, 종래의 수단에 대한 본 발명의 우월성은 표 1에 따라 증가하지만, 이해를 돕기 위하여 작은 유한체인 GF(24)에 대하여 본 발명을 설명한다. 첨부된 도면을 참조하기에 앞서, B와 C의 순환 쌍립 기저 표현과 원소 B와 C의 곱인 D의 형태를 다음과 같이 정의한다.
P(X)=X4+X3+X2+X+1을 GF(24) 상에서 약분할 수 없는 다항식으로 두자. P(X)로부터 산출된 순환 쌍립 기저가 이 이후로 사용되고, B, C와 D의 순환 이중 표현을 다음과 같이 둔다.
그러면, 수학식 28로부터
di=B ·(V<<1(m-i)), i=0,1,2,3,4
여기에서, V=<c4, c3, c2, c1, c0>이다. 따라서,
[수학식 29]
각 di는 단지 내적 계산장치에 의해 구현될 수 있다.
이하에서 본 발명을 첨부된 도면을 참조하여 상세히 설명한다.
도 1에 의하면, 본 발명에 의한 GF(24)에서 순환 쌍립 기저에 의한 순차적 곱셈장치는 제1레지스터(10), 제2레지스터(12) 및 내적모듈(14)을 포함하여 구성된다.
벡터 B와 C는 서로 역순으로(물론, 이것은 저장되는 비트 순서가 동일한 레지스터들 중 하나를 대칭적인 회로로 대체함으로써 구현될 수 있다) 제1 및 제2레지스터(10, 12)에 저장된다. 제1레지스터(10)는 벡터 B를 입력받아 저장하고, 클럭 입력에 의해 상위 비트측으로 로테이트한다. 참조번호 11는 클럭 신호에 따른 우측 로테이트 연산을 의미한다.
내적모듈(14)은 클럭 단위로 제1레지스터(10)에 저장된 값과제2레지스터(12)에 저장된 값의 내적을 계산하여 s[D] 내지 [D]0를 산출한다.
도 2에 의하면, 내적모듈(14)은 제1레지스터(10)의 각 비트와 제2레지스터(12)의 대응하는 각 비트에 연결되어 그 저장 비트값들을 논리곱 연산을 하는 (m+1)개(본 실시예에서는 5개)의 논리곱 게이트들(20, 21, 22, 23, 24)과 (m+1)개의 논리곱 게이트들에 연결되어 그 출력값들을 배타논리합하는 배타논리합 게이트(25)로 구성된다. 논리곱(AND) 게이트들(20, 21, 22, 23, 24)은 모듈로 2 곱셈기를 의미하고, 배타논리합(XOR) 게이트(25)는 모듈로 2 덧셈기를 의미한다.
본 발명에 의한 GF(24)에서 순환 쌍립 기저에 의한 순차적 곱셈과정을 설명하면 다음과 같다. 클럭(13)의 최초 클럭 사이클에서 [B]i비트들과 [C]m-i비트들은 각각 모듈로 2 곱셈기에 동시에 입력되고, 그 출력은 모듈로 2 덧셈기로 전달된다. 그리고, 제1레지스터(10)에 저장된 값은 우측으로 1비트만큼 로테이트되고, 모듈로 2 덧셈기의 출력값(15)은 D=B×C의 곱에 대한 d4=s[D]의 비트값이 된다. 그리고, 두 번째 클럭 사이클에서 도 1의 곱셈장치는 상기한 바와 같은 규칙에 의해 D의 다음 비트 d3=[D]3을 출력하고, 이후에도 같다. 4번째 클럭 사이클 이후에, 도 1의 곱셈장치는 D=B×C의 결과를 완전히 계산한다.
도 3에 의하면, 본 발명에 의한 GF(24)에서 순환 쌍립 기저에 의한 병렬적 곱셈장치는 제1레지스터(30), 제2레지스터(32) 및 5(즉, m+1)개의 내적모듈들(34, 35, 36, 37, 38)를 포함하여 구성된다.
벡터 B와 C는 서로 역순으로 제1 및 제2레지스터(30, 32)에 저장된다.
내적모듈들(34, 35, 36, 37, 38)은 도 2에 도시된 내적모듈을 의미하는데, GF(2m)에서 순환 쌍립 기저에 의한 병렬적 곱셈장치에서는 (m+1)개를 구비한다. 제1레지스터(30)에서 벡터값은 i비트(i=0,1,2,3,4) 로테이트된 형태로 각각 내적모듈들(34, 35, 36, 37, 38)에 전달된다. 그 다음, 하나의 클럭 내에 도 3에 의한 병렬적 곱셈기는 D=B×C의 모든 비트들을 다음과 같이 동시에 계산한다.
도 4는 비트 단위 순열 회로에 의해 구현된 본 발명에 의한 제곱 과정을 제시한다.
도 5에 의하면, 본 발명에 의한 GF(24)에서 순환 쌍립 기저에 의한 순차적 역셈장치는 제어부(도시되지 않음), 제1레지스터(50), 제2레지스터(51), 제3레지스터(52) 및 내적모듈(53)을 포함하여 구성된다.
제어부는 도 5에 도시되어 있지 않지만, 제1제어신호(cont.1) 및 제2제어신호(cont.2)를 생성한다.
유한체 GF(2m)의 원소 x를 DB로 표현한 벡터X=([x]0, [x]1, …, s[x])는 제1레지스터(50) 및 제2레지스터(51)에 순차적으로 저장된다. 참조번호 50이 지시하는 블록 내부의 4개의 R과 참조번호 51이 지시하는 블록 내부의 S4, S3, S2, S1, S0는 각각 제1레지스터 및 제2레지스터를 구성하는 1비트 저장수단들이다.
그리고, 제3레지스터(52)는 제1제어신호(cont.1)에 의해 제1레지스터에 저장된 값을 v(u(X))에 의해 변환한 값과 현재 저장된 값을 상위비트측으로 한 비트 로테이트한 값 중 하나를 선택하여 저장한다. 여기서, u(X)={[x]0, [x]m/2+1, [x]1, [x]m/2+2, …, [x]m/2}이고, v(X)={s[x], [x]m-1, [x]m-2, …, [x]0}이다. 참조번호 52이 지시하는 블록 내부의 R4, R3, R2, R1, R0는 모두 제3레지스터를 구성하는 1비트 저장수단들이다. 이 때, 선택과정은 참조번호 52 내부의 M은 제3레지스터를 구성하는 각 비트저장수단의 입력단에 각각 설치된 5(즉, m+1)개의 2:1멀티플렉서들에 의해 이루어진다. 구현예에 따라 5개의 1비트 2:1멀티플렉서는 1개의 5비트 2:1멀티플렉서로 대체될 수 있다. v(u(X))에 의해 변환과정은 비트 단위 순열 회로에 의해 용이하게 구현된다.
내적모듈(53)은 제3레지스터(52)에 저장된 벡터 값과 제2레지스터(51)에 저장된 벡터 값의 내적을 구하고, 상기 제2제어신호(cont.2)의 제어에 의해 구한 내적들을 차례로 제1레지스터(50)에 저장하고, 제3레지스터(52)에 저장된 값이 매 1회 회전한 후에 구한 내적들을 순차적으로 [x-1]0의 1비트씩 결정하여 출력한다. 출력값(55)은 다음과 같은 형태를 지닌다.
R4S0+R3S1+R2S2+R1S3+R0S4
제1레지스터의 입력단에서 입력되는 벡터 X와 내적모듈의 출력으로부터 피드백된 값은 참조번호 54로 표시된 2:1멀티플렉서에 의해 이루어진다.
도 6에 의하면, 본 발명에 의한 GF(24)에서 순환 쌍립 기저에 의한 순차적 역셈장치는 제어부(도시되지 않음), 제1레지스터(60), (m+1)개의 제1멀티플렉서들(65), 제2레지스터(62), (m+1)개의 제2멀티플렉서들(66), 및 병렬적곱셈장치(64)를 포함하여 구성된다.
제어부는 도 6에 도시되어 있지 않으나, 제어신호(cont.)를 생성한다.
(m+1)개의 제1멀티플렉서들(65)은 제어신호(cont.)의 제어에 의해 도 4에 도시된 바와 같은 비트단위 제곱 순열회로(67)에 의해 입력벡터 X가 제곱된 형태로 변환된 값과 병력적곱셈장치(64)의 출력값 중 하나의 값을 선택한다. (m+1)개의 제1멀티플렉서들(65)에 의해 선택된 값은 제1레지스터(60)에 저장한다.
한편, (m+1)개의 제2멀티플렉서들(66)은 제어신호(cont.)의 제어에 의해 비트단위 제곱 순열회로(67)에 의해 입력벡터 X가 제곱된 형태로 변환된 값과 제2레지스터(62)에 저장된 값 중 하나의 값을 선택한다. (m+1)개의 제2멀티플렉서들(66)에 의해 선택된 값은 비트단위 제곱 순열회로(68)에 의해 제곱된 형태로 변환되어 제2레지스터(62)에 저장된다.
병렬적곱셈장치(64)는 도 3에 도시된 곱셈장치로서, 제1레지스터(60)에 저장된 값을 비트단위 역순 순열회로(69)에 의해 역순 형태로 변환한 값과제2레지스터(62)에 저장된 값을 입력하여 순환 쌍립 기저에 의한 곱을 병렬적으로 생성한다.
병렬적곱셈장치(64)는 m클락 후에 정확히 [x-1]의 (m+1)개의 각 비트를 동시에 생성한다.
수학식 28과 수학식 29는 10개의 이진 변수의 간단한 논리 함수(내적)으로서 di를 상술한다. 논리 설계의 기술분야에서 평균적인 지식을 가진 사람이라면, 도 1과 도 2의 곱셈기가 사용하는 방법 및 도 5와 도 6의 역 계산기가 사용하는 방법과 다르나 본 발명의 기능과 모든 특징을 구현한 다른 방법을 인식할 수 있을 것이다. 그러나, 이러한 다른 방법들 또한 본 발명의 영역에 포함된다.
그리고, 본 발명의 응용은 본 발명을 설명하기 위해 사용된 실시예에 제한되지 않는다. 본 발명의 사상 및 영역 내의 모든 변형은 모두 디지털 논리 설계의 기술 분야에서는 본 발명에 의해 용이하게 이루어질 수 있는 것이다.
본 발명에 의하면, 첫째로, 지금까지의 양수체제 VLSI 설계에 필요한 비용과 거의 같은 비용(칩 영역, 논리 게이트의 수 등)과 단지 1 또는 m의 내적모듈들을 구비하여, 비트 직렬 또는 비트 병렬 VLSI 설계에 의한 유한체 연산을 실현할 수 있다.
두 번째, 제곱 과정은 정규체제 상의 제곱 과정과 같이 단지 비트 단위 순열(permutation)이다.
그리고, 세 번째, 유한체 역셈은 정규체제에서의 제곱과 같이 제곱하는 유한체 곱의 단순한 모듈을 반복함에 의해 설계될 수 있다.

Claims (15)

  1. 유한체 GF(2m) 연산장치에서, 상기 유한체 CF(2M)의 두 원소 B와 C의 곱 D를 구하는 곱셈 방법에 있어서,
    (a) 원소 B를 DB의 이진수 계수를 구성된 벡터 B=([B]0, [B]1, …, s[B])로 표현하는 단계;
    (b) 원소 C를 DB의 이진수 계수들로 구성된 벡터 C=([C]0, [C]1, …, s[C])로 표현하는 단계;
    (c)의해 벡터 D=([D]0, [D]1, …, s[D])를 구하는 단계(여기서, '·'는 숫자와 벡터의 곱이고, '>>r(k)'는 벡터를 우측으로 k비트 만큼 로테이트하는 것을 의미한다); 및
    (d) 벡터 D를 원소 D로 표현하는 단계를 포함함을 특징으로 하고,
    상기 m은 1보다 큰 정수이고, 상기 유한체는 표준 기지 SB={1,A,A2,…,Am-1}가 선형적으로 독립이고 Am+1=1인 원소 A를 갖고, DB={S0, S1, S2, …, Sm-1}는 SB의 순환 쌍립 기저인 유한체 GF(2m)연산장치에서 순환 쌍립 기저에 의한 곱셈 방법.
  2. 유한체 GF(2m)연산장치에서,상기 유한체 GF(2m)의 두 원소 B와 C의 곱 D를 구하는 곱셈 방법에 있어서,
    (a)원소 B를 DB의 이진수 계수들로 구성된 벡터 B=([B]0, [B]1, …, s[B])로 표현하는 단계;
    (b) 원소 C를 DB의 이진수 계수들로 구성된 벡터 C=([C]0, [C]1, …, s[C])로 표현하는 단계;
    (c) 벡터 B를 제1레지스터에 저장하고, 벡터 B가 제1레지스터에 저장되는 비트 순서의 역순으로 벡터 C를 제2레지스터에 저장하는 단계;
    (d) 제1레지스터에 저장된 벡터 값과 제2레지스터에 저장된 벡터 값의 내적을 구하고 제1레지스터를 상위 비트측으로 한 비트 로테이트하는 과정을 m+1번 반복하면서, 반복적으로 구한 내적들에 의해 DB의 이진수 계수들인 s[D]내지 [D]0를 결정하는 단계; 및
    (e) DB의 이진수 계수들인 [D]0내지 s[D]을 원소 D로 표현하는 단계를 포함함을 특징으로 하고,
    상기 m은 1보다 큰 정수이고, 상기 유한체는 표준 기저 SB={1, A, A2, …, Am-1}가 선형적으로 독립이고 Am+1=1인 원소 A를 갖고, DB={S0, S1, S2, …, Sm-1}는 SB의 순환 쌍립 기저인 유한체 GF(2m)연산장치에서의 순환 쌍립 기저에 의한 순차적곱셈방법.
  3. 유한체 GF(2m)연산장치에서,상기 유한체 GF(2m)의 두 원소 B와 C의 곱 D를 구하는 곱셈 방법에 있어서,
    (a) 원소 B를 DB의 이진수 계수들로 구성된 벡터 B=([B]0, [B]1, …, s[B])로 표현하는 단계;
    (b) 원소 C를 DB의 이진수 계수들로 구성된 벡터 C=([C]0, [C]1, …, s[C])로 표현하는 단계;
    (c) 벡터 B를 제1레지스터에 저장하고, 벡터 B가 제1레지스터에 저장되는 비트 순서의 역순으로 벡터 C를 제2레지스터에 저장하는 단계;
    (d) 제1레지스터에 저장된 값을 상위 비트측으로 각각 0 내지 m비트 로테이트한 값들과 제2레지스터에 저장된 벡터 C와의 내적들을 병렬적으로 구하고, 병렬적으로 구한 내적들에 의해 DB의 이진수 계수들인 s[D]내지 [D]0을 결정하는 단계; 및
    (e) DB의 이진수 계수들인 [D]0내지 s[D]를 원소 D로 표현하는 단계를 포함함을 특징으로 하고,
    상기 m은 1보다 큰 정수이고, 상기 유한체는 표준 기저 SB={1, A, A2, …,Am-1}가 선형적으로 독립이고 Am+1=1인 원소 A를 갖고, DB={S0, S1, S2, …, Sm-1}는 SB의 순환 쌍립 기저인 유한체GF(2m) 연산장치에서의 순환 쌍립 기저에 의한 병렬적 곱셈 방법.
  4. 유한체 GF(2m)연산장치에서, 상기 유한체 GF(2m)의 원소 x의 역 x-1을 순차적으로 발생하는 역 변환 방법에 있어서
    (a) 원소 x를 DB의 이진수 계수들로 구성된 벡터 X=([x]0, [x]1, …, s[x])로 표현하는 단계;
    (b) 벡터 X를 제1레지스터와 제2레지스터에 저장하는 단계;
    (c) 제1레지스터에 저장된 값을 v(u(X))에 의해 변환하여 제3레지스터에 저장하는 단계(여기서, u(X)=([x]0, [x]m/2+1, [x]1, [x]m/2+2, …, [x]m/2)이고, v(X)=(s[x], [x]m-1, [x]m-2, …, [x]0));
    (d) 제3레지스터에 저장된 벡터 값과 제2레지스터에 저장된 벡터 값의 내적을 구하고 제3레지스터를 상위 비트측으로 한 비트 로테이트하는 과정을 m+1번 반복하면서 반복적으로 구한 내적들을 차례로 제1레지스터에 저장하고, 마지막 내적을 DB의 이진수 계수인 s[x-1]로 결정하는 단계;
    (e) 상기 (c) 단계 내지 상기 (d) 단계를 m번 더 반복하여 DB의 이진수 계수인 [x-1]m-1내지 [x-1]0를 결정하는 단계; 및
    (f) DB의 이진수 계수들인 [x-1]0내지 s[x-1]을 원소 x-1로 표현하는 단계를 포함함을 특징으로 하고,
    상기 md은 1보다 큰 정수이고,상기 유한체는 표준 기저 SB={1, A, A2, …, Am-1}가 선형적으로 독립이고 Am+1=1인 원소 A를 갖고, DB={S0, S1, S2, …, Sm-1}는 SB의 순환 쌍립 기저인 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 직렬 역 변환 방법.
  5. 유한체 GF(2m)연산장치에서 상기 유한체 GF(2m)원소 X 의 역 X-1을 병렬적으로 구하는 역 변환 방법에 있어서,
    (a) 원소 x를 DB의 이진수 계수들로 구성된 벡터X=([x]0, [x]1, …, s[x])로 표현하는 단계;
    (b) 벡터X를 제곱된 형태로 변환하여 제1레지스터에 저장하고, 2번 제곱된 형태로 변환하여 제2레지스터에 저장하는 단계;
    (c) 제1레지스터에 저장된 값을 역순 형태로 변환하는 단계;
    (d) 상기 (c) 단계에서 역순 형태로 변환된 값을 상위 비트측으로 각각 0 내지 m비트 로테이트한 값들과 제2레지스터에 저장된 값의 내적들을 병렬적으로 구하는 단계;
    (e) 상기 (d) 단계에서 구한 내적들을 제1레지스터에 저장하고, 제2레지스터에 저장된 값을 제곱된 형태로 변환하여 다시 제2레지스터에 저장하고, 상기 (c) 내지 상기 (d) 단계를 반복하는 과정을 m번 더 반복하는 단계;
    (f) 상기 (e) 단계 이후 생성된 내적들에 의해 DB의 이진수 계수인 s[x-1] 내지 [x-1]0를 결정하는 단계; 및
    (g) DB의 이진수 계수들인 [x-1]0내지 s[x-1]을 원소 x-1로 표현하는 단계를 포함함을 특징으로 하고,
    상기 m은 1보다 큰 정수이고, 상기 유한체는 표준 기저 B={1, A, A2, …, Am-1}가 선형적으로 독립이고 Am+1=1인 원소 A를 갖고, DB={S0, S1, S2, …, Sm-1}는 SB의 순환 쌍립 기저인 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 병렬적 역 변환방법.
  6. 유한체 GF(2m)연산장치에서,상기 유한체GF(2m)의 원소 B를 DB로 표현한 벡터 B=([B]0, [B]1, …, s[B])와 원소 C를 DB로 표현한 벡터 C=([C]0, [C]1, …, s[C])의곱인 벡터 D=([D]0, [D]1, …, s[D])를 순차적으로 발생하는 직렬 곱셈기에 있어서 (여기서 m은 1보다 큰 정수이고, 상기 유한체는 표준 기저 SB={1, A, A2, …, Am-1}가 선형적으로 독립이고 Am+1=1인 원소 A를 갖고, DB={S0, S1, S2, …, Sm-1}는 SB의 순환 쌍립 기저이다),
    벡터 B를 입력받아 저장하고, 클럭 입력에 의해 상위 비트측으로 로테이트하는 제1레지스터;
    벡터 B가 제1레지스터에 저장되는 비트 순서의 역순으로 벡터 C를 입력받아 저장하는 제2레지스터; 및
    클럭 단위로 제1레지스터에 저장된 값과 제2레지스터에 저장된 값의 내적을 계산하여 s[D] 내지 [D]0를 산출하는 내적모듈을 포함함을 특징으로 하는 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 직렬 곱셈기.
  7. 제6항에서, 상기 내적모듈은
    제1레지스터의 각 비트와 제2레지스터의 대응하는 각 비트에 연결되어 그 저장 비트값들을 논리곱 연산을 하는 (m+1)개의 논리곱 게이트들; 및
    상기 (m+1)개의 논리곱 게이트들에 연결되어 그 출력값들을 배타논리합하는 배타논리합 게이트를 포함함을 특징으로 하는 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 직렬 곱셈기.
  8. 유한체 GF(2m)연산장치에서,상기 유한체 GF(2m)의 원소 B를 DB로 표현한 벡터B=([B]0, [B]1, …, s[B])와 원소 C를 DB로 표현한 벡터C=([C]0, [C]1, …, s[C])의 곱인 벡터D=([D]0, [D]1, …, s[D])를 병렬적으로 발생하는 병렬 곱셈기에 있어서(여기서 m은 1보다 큰 정수이고, 상기 유한체는 표준 기저 SB={1, A, A2, …, Am-1}가 선형적으로 독립이고 Am+1=1인 원소 A를 갖고, DB={S0, S1, S2, …, Sm-1}는 SB의 순환 쌍립 기저이다),
    벡터B를 입력받아 저장하는 제1레지스터;
    벡터B가 제1레지스터에 저장되는 비트 순서의 역순으로 벡터C를 입력받아 저장하는 제2레지스터; 및
    제2레지스터에 저장된 값과 제1레지스터에 저장된 값을 각각 상위 비트측으로 0내지 m비트 로테이트한 값의 내적들을 계산하여 각각 s[D] 내지 [D]0를 산출하는 (m+1)개의 내적모듈들을 포함함을 특징으로 하는 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 병렬 곱셈기.
  9. 유한체 GF(2m)연산장치에서,상기 유한체 GF(2m)의 원소 x를 DB로 표현한 벡터X=([x]0, [x]1, …, s[x])의 역인 벡터X -1 =([x-1]0, [x-1]1, …, s[x-1])를 순차적으로 발생하는 직렬 역 변환기에 있어서(여기서 m은 1보다 큰 정수이고, 상기 유한체는 표준 기저 SB={1, A, A2, …, Am-1}가 선형적으로 독립이고 Am+1=1인 원소 A를 갖고, DB={S0, S1, S2, …, Sm-1}는 SB의 순환 쌍립 기저이다),
    제1제어신호 및 제2제어신호를 생성하는 제어부;
    상기 제2제어신호의 제어에 의해 벡터X를 입력받아 저장하는 제1레지스터;
    벡터X를 입력받아 저장하는 제2레지스터;
    상기 제1제어신호에 의해 제1레지스터에 저장된 값을 v(u(X))에 의해 변환한 값과 현재 저장된 값을 상위비트측으로 한 비트 로테이트한 값 중 하나를 선택하여 저장하는 제3레지스터(여기서, u(X)={[x]0, [x]m/2+1, [x]1, [x]m/2+2, …, [x]m/2}이고, v(X)={s[x], [x]m-1, [x]m-2, …, [x]0}); 및
    제3레지스터에 저장된 벡터 값과 제2레지스터에 저장된 벡터 값의 내적을 구하고, 상기 제2제어신호의 제어에 의해 구한 내적들을 차례로 제1레지스터에 저장하고, 상기 제3레지스터가 매 1회 회전한 후에 구한 내적들을 DB의 이진수 계수인 s[x-1] 내지 [x-1]0로 결정하여 출력하는 내적모듈을 포함함을 특징으로 하는 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 직렬 역 변환기.
  10. 제9항에서,
    제3레지스터를 구성하는 각 비트저장수단의 입력단에 각각 설치되어, 상기 제1제어신호의 제어에 의해 제1레지스터에 저장된 값을 v(u(X))에 의해 변환한 값과 현재 저장한 값을 상위비트측으로 한 비트 로테이트한 값 중 하나를 선택하는 (m+1)개의 제1멀티플렉서들을 더 포함함을 특징으로 하는 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 직렬 역 변환기.
  11. 제10항에서, 상기X를 상기 v(u(X))로의 변환은
    상기 제1레지스터의 각 비트의 출력단과 상기 (m+1)개의 제1멀티플렉서들의 입력단과의 배선에 의해 구성됨을 특징으로 하는 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 직렬 역 변환기.
  12. 제9항에서,
    상기 제2제어신호의 제어에 의해 벡터X와 내적모듈의 출력값 중 하나를 선택하여 상기 제1레지스터에 저장하는 제2멀티플렉서를 더 포함함을 특징으로 하는 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 직렬 역 변환기.
  13. 유한체 GF(2m) 연산장치에서,상기 유한체 GF(2m)의 원소 x를 DB로 표현한 벡터X=([x]0, [x]1, …, s[x])의 역인 벡터X -1 =([x-1]0, [x-1]1, …, s[x-1])를 병렬적으로 발생하는 병렬 역 변환기에 있어서(여기서 m은 1보다 큰 정수이고, 상기 유한체는 표준 기저 SB={1, A, A2, …, Am-1}가 선형적으로 독립이고 Am+1=1인 원소 A를 갖고, DB={S0, S1, S2, …, Sm-1}는 SB의 순환 쌍립 기저이다),
    제어신호를 생성하는 제어부;
    상기 제어신호의 제어에 의해 벡터X를 제곱된 형태로 변환하여 저장하는 제1레지스터;
    상기 제어신호의 제어에 의해 벡터X를 2번 제곱된 형태로 변환한 값과 현재 저장된 값을 제곱된 형태로 변환한 값 중 하나를 선택하여 저장하는 제2레지스터; 및
    제1레지스터에 저장된 값을 역순 형태로 변환한 값과 제2레지스터에 저장된 값을 입력하여 순환 쌍립 기저에 의한 곱을 병렬적으로 생성하여 상기 제어신호의 제어에 의해 제1레지스터에 저장하고, (m+1)번째 곱은 DB의 이진수 계수인 s[x-1] 내지 [x-1]0로서 출력하는 병렬적곱셈장치를 포함함을 특징으로 하는 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 병렬적 역 변환기.
  14. 제13항에서,
    제1레지스터를 구성하는 각 비트저장수단의 입력단에 각각 설치되어, 상기 제어신호의 제어에 의해 벡터X를 제곱된 형태로 변환한 값과 상기 병렬적곱셈장치의 출력값 중 하나를 선택하는 (m+1)개의 제1멀티플렉서들을 더 포함함을 특징으로 하는 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 병렬 역 변환기.
  15. 제13항에서,
    상기 제어신호의 제어에 의해 벡터X를 제곱된 형태로 변환한 값과 제2레지스터의 출력값 중 하나를 선택하는 (m+1)개의 제2멀티플렉서들; 및
    상기 (m+1)개의 제2멀티플렉서들에 의해 선택된 값을 제곱된 형태로 변환하여 제2레지스터에 저장하는 제곱형태변환부를 더 포함함을 특징으로 하는 유한체 GF(2m)에서의 순환 쌍립 기저에 의한 병렬적 역 변환기.
KR1019980043710A 1998-10-19 1998-10-19 유한체연산방법및그장치 KR100322739B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980043710A KR100322739B1 (ko) 1998-10-19 1998-10-19 유한체연산방법및그장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980043710A KR100322739B1 (ko) 1998-10-19 1998-10-19 유한체연산방법및그장치

Publications (2)

Publication Number Publication Date
KR20000026250A KR20000026250A (en) 2000-05-15
KR100322739B1 true KR100322739B1 (ko) 2002-06-22

Family

ID=19554533

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980043710A KR100322739B1 (ko) 1998-10-19 1998-10-19 유한체연산방법및그장치

Country Status (1)

Country Link
KR (1) KR100322739B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11362678B2 (en) 2011-12-30 2022-06-14 Streamscale, Inc. Accelerated erasure coding system and method
US11500723B2 (en) 2011-12-30 2022-11-15 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100586598B1 (ko) * 1999-12-18 2006-06-02 주식회사 케이티 유한 필드상의 모듈러 연산 장치 및 그 방법
KR20020086005A (ko) * 2001-05-10 2002-11-18 학교법인 정석학원 타원곡선 암호 시스템을 위한 역원 연산기
KR100416291B1 (ko) * 2001-06-08 2004-01-31 이광엽 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법
KR100486726B1 (ko) 2002-11-09 2005-05-03 삼성전자주식회사 유한 체에서의 기저 변환 방법 및 기저 변환 장치
KR100552694B1 (ko) 2003-10-16 2006-02-20 삼성전자주식회사 유한 체에서 곱셈 연산 방법 및 장치
KR100859185B1 (ko) * 2006-05-18 2008-09-18 학교법인 영광학원 유한체 GF(2m)상의 곱셈기
KR100950581B1 (ko) * 2007-12-06 2010-04-01 고려대학교 산학협력단 여분 표현을 사용하는 유한체 비트―병렬 곱셈 장치 및방법
KR100976232B1 (ko) * 2009-02-13 2010-08-17 고려대학교 산학협력단 고속 비트-병렬 다항식 곱셈기, 그 곱셈 방법
KR100976229B1 (ko) * 2009-02-13 2010-08-17 고려대학교 산학협력단 저면적 비트-병렬 다항식 곱셈기, 그 곱셈 방법
KR101030514B1 (ko) * 2009-04-03 2011-04-26 대구대학교 산학협력단 합성체상의 효율적인 최적정규기저 곱셈기

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11362678B2 (en) 2011-12-30 2022-06-14 Streamscale, Inc. Accelerated erasure coding system and method
US11500723B2 (en) 2011-12-30 2022-11-15 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US11736125B2 (en) 2011-12-30 2023-08-22 Streamscale, Inc. Accelerated erasure coding system and method

Also Published As

Publication number Publication date
KR20000026250A (en) 2000-05-15

Similar Documents

Publication Publication Date Title
EP0337985B1 (en) Computational method and apparatus for finite field multiplication
Mastrovito VLSI designs for multiplication over finite fields GF (2m)
Okada et al. Implementation of Elliptic Curve Cryptographic Coprocessor over GF (2 m) on an FPGA
US4873688A (en) High-speed real-time Reed-Solomon decoder
US6760742B1 (en) Multi-dimensional galois field multiplier
CN100388630C (zh) 具有矩阵转换技术的循环冗余码计算方法及系统
US20060034452A1 (en) Code calculating device
US4797848A (en) Pipelined bit-serial Galois Field multiplier
ARAKI et al. Fast inverters over finite field based on Euclid's algorithm
KR100322739B1 (ko) 유한체연산방법및그장치
JPH09507110A (ja) 有限体反転
US5272661A (en) Finite field parallel multiplier
CN114063973B (zh) 伽罗华域乘法器及纠删编解码系统
EP0741355A1 (en) Finite field multiple bit multiplier
US6957243B2 (en) Block-serial finite field multipliers
US5964826A (en) Division circuits based on power-sum circuit for finite field GF(2m)
US7539719B2 (en) Method and apparatus for performing multiplication in finite field GF(2n)
US7346641B2 (en) Method and apparatus for basis conversion in finite field
JP3614978B2 (ja) ガロア体の除算方法および除算装置
JP3913921B2 (ja) 有限フィールドでの任意要素の逆数具現回路
US6138134A (en) Computational method and apparatus for finite field multiplication
JP2963018B2 (ja) リード・ソロモン誤り訂正符号復号化回路
JP3812983B2 (ja) エラー評価多項式係数計算装置
Horng et al. Fast inverters and dividers for finite field GF (2/sup m/)
JP4472808B2 (ja) 積和演算装置及びこれを用いた暗号・復号装置

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

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee