JP2004166274A - 有限体での基底変換方法及び基底変換装置 - Google Patents

有限体での基底変換方法及び基底変換装置 Download PDF

Info

Publication number
JP2004166274A
JP2004166274A JP2003379095A JP2003379095A JP2004166274A JP 2004166274 A JP2004166274 A JP 2004166274A JP 2003379095 A JP2003379095 A JP 2003379095A JP 2003379095 A JP2003379095 A JP 2003379095A JP 2004166274 A JP2004166274 A JP 2004166274A
Authority
JP
Japan
Prior art keywords
basis
register
expression
vector
dual
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2003379095A
Other languages
English (en)
Other versions
JP3823107B2 (ja
Inventor
Weon-Il Jin
元 鎰 秦
Mi-Suk Huh
美 淑 許
Chang-Woo Seo
昌 佑 徐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2004166274A publication Critical patent/JP2004166274A/ja
Application granted granted Critical
Publication of JP3823107B2 publication Critical patent/JP3823107B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

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)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】 有限体での基底変換方法及び基底変換装置を提供する。
【解決手段】 定義多項式が五項式Xn+Xk(3)+Xk(2)+Xk(1)+1であり、指数n,k(3),k(2),k(1)が条件n−k(3)>k(3)−k(1)を満たす基底変換行列を用いて、効率的な基底変換行列Dsd、Dds及び基底変換方法が提供されている。さらに前記基底変換を行うための基底変換装置が提供されている。定義多項式として用いられる五項式が、任意の次元で一般的な形態を有しているので、標準表現と双対表現との間の変換が効率的に行われる。したがって、双対基底乗算器が効率的に実現される。
【選択図】 図2

Description

本発明は有限体GF(2n)での基底変換に関し、特に標準基底による標準表現と双対基底による双対表現相互間の基底変換方法及び基底変換装置に関する。
有限体GF(2n)は、2n個の元(elements)を含む数体系(number system)である。有限体の各元がnビットで表現可能である事実に基づき、有限体を有用に利用することが可能である。エラー訂正コード(error correction codes)や、ハードウエアにおける楕円曲線暗号システム(elliptic curve cryptosystem)の実装等、有用な利用法はGF(2n)に関する計算を多く使用している。リードソロモンコード(Reed-Solomon codes)を暗号化/復号化する装置は、GF(2n)に関する計算を行う必要があり、楕円曲線暗号システムの暗号/解読装置は、「n」が大きい値であるGF(2n)に関する計算を行う必要がある。
有限体GF(2)は、式(1)によって定義される加算則及び乗算則を有しており、その元として二つの数0,1のみを有する数体系である。
Figure 2004166274
すなわち、加算はビット排他的論理和演算(eXclusive OR operation)であり、乗算はビット論理積演算(AND operation)である。
有限体GF(2n)(n>1)は、2n個の元を含む数体系である。この数体系において加算及び乗算は、GF(2)の係数(coefficient)を有する既約n次多項式(irreducible n-degree polynomial)に関する算術モジュロ(arithmetic modulo)に対応している。この既約n次多項式は、定義多項式(defining polynomial)とよばれている。この定義多項式の根をαとするとき、有限体の元は式(2)によって定義される標準表現(standard representation)を有している。
Figure 2004166274
GF(2n)の二つの元の乗算は、αに関する多項式乗算(polynomial multiplication)に続く、定義多項式によるモジュロ演算(modulo operation)によって行われる。GF(2n)の二つの元の加算は、αに関する多項式加算(polynomial addition)によって行われる。
有限体GF(2n)の元を表すのには、代表的な三つの方法がある。これらの方法は、それぞれ異なる基底によって定義されている。標準表現では、有限体GF(2n)の元は標準基底(standard basis)(polynomial basisともいう){1,α,α2,α3,…,αn-1}を用いて表される。さらに、双対基底(dual basis)及び正規基底(normal basis)がある。
式(3)は、互いに双対性を有する二つの基底{βi}及び{γj}を定義している。
Figure 2004166274
言い換えれば、式(3)を満たす二つの基底{β0,β1,β2,…,βn-1}及び{γ0,γ1,γ2,…,γn-1}それぞれが、Tr(δ)の双対基底である。
また、次に示されるGF(2n)の部分集合が基底であるとき、この基底は正規基底とよばれる。
Figure 2004166274
GF(2n)での演算を行うのに必要な論理回路の複雑性は、有限体の元によって表される特定の方法に密接に依存している。代表的な有限体乗算器には、「双対基底乗算器(dual basis multiplier)」(例えば、非特許文献1参照。)と、「正規基底乗算器(normal basis multiplier)」(例えば、非特許文献2参照。)と、「標準基底乗算器(standard basis multiplier)」(例えば、非特許文献3参照。)と、がある。双対基底乗算器は線形帰還シフトレジスタ(linear feedback shift register)を利用して実現可能であり、基底変換を含まない場合には最も少ないチップ領域を必要とするものとして知られている。正規基底を用いた有限体演算は除算、自乗及びべき乗計算を行うのに非常に効率的であるが、高い次元でのチップ領域の減少(reduction)が要求される。また、一般的に標準基底乗算器は基底変換を要求せず、高い次元の有限体への拡張及びデザインが双対/正規基底乗算器に比べて容易である(例えば、非特許文献4参照。)。
双対基底乗算器において高い次元の有限体への拡張が標準基底乗算器よりも難しいのは、基底変換行列の複雑性のためである。それに対して本発明は、双対基底乗算器に用いられる基底変換行列及び基底変換方法を提供するものである。
以下、双対基底乗算器によって行われるアルゴリズムについて説明する。
多項式xn+xk(s)+xk(s-1)+…+xk(1)+1はGF(2n)の定義多項式、A及びBはGF(2n)の元、基底{β0,β1,β2,…,βn-1}は標準基底{1,α,α2,…,αn-1}の双対基底である、と仮定する。行列Dsdは標準表現(standard representation)を双対表現(dual representation)に変換する行列であり、行列Ddsは双対表現を標準表現に変換する行列である。乗算演算C=ABを計算するために、入出力がいずれも双対表現である場合と、いずれも標準表現である場合とに分けて説明する。
まず式(4)に示すように、入出力がいずれも双対表現である場合について説明する。
Figure 2004166274
双対基底乗算器のアルゴリズムに従い、入力が双対表現である場合であっても、基底変換が行われる。入力された元Bに対する基底変換を行ってDdsBを求めた後、行列演算C=MDdsBが行われる。ここで、行列Mは式(5)によって定義されている。
Figure 2004166274
ここで、an+i=ai+ai+k(1)+ai+k(2)+ai+k(3)+…+ai+k(s)(i>=0)である。
次に式(6)に示すように、入出力がいずれも標準表現である場合について説明する。
Figure 2004166274
この場合には、計算がさらに複雑になる。双対基底乗算器において、標準表現が双対表現に変換される。すなわち、基底変換行列Dsdを用いた基底変換によって、式(7)に示すDsdAが求められる。
Figure 2004166274
次にDsdAに基づき、式(8)に表される行列Mが求められる。
Figure 2004166274
ここで、a’n+i=a’i+a’i+k(1)+a’i+k(2)+a’i+k(3)+…+a’i+k(s)(i≧0)である。
次に行列演算を用いて、双対表現MBが得られる。乗算結果である出力Cは再び双対表現にならなければいけないので、基底変換行列Ddsを用いてC=DdsMBが求められる。
基底変換は、基底変換行列DsdまたはDdsとベクトル(有限体の元)との乗算によって行われる。双対基底乗算器での基底変換は、特別な場合を除き、行列の複雑度が非常に高く、高い次元の有限体への拡張及びデザインが非常に難しい。
この基底変換に関しては、三つの従来技術がある。
特許文献1には、特定次元における効率的な基底変換行列と、双対基底変換器の入出力がいずれも双対表現である場合に演算MDdsを効率的に行う方法とが開示されている(以下、第一の従来技術と記載する。)。
また非特許文献5には、特定の定義多項式における効率的な基底変換行列が開示されている(以下、第二の従来技術と記載する。)。
また非特許文献6には、基底変換行列を計算する方法が開示されている(以下、第三の従来技術と記載する。)。
本発明を明らかにするため、まずは前記従来技術の特徴について簡単に説明する。
特定次元における効率的な基底変換行列に関する第一の先行技術は、特定次元nの双対表現を標準表現に変換するために、式(9)によって定義される行列を提供している。
Figure 2004166274
ここでDdsは、いずれも2n個の「1」からなる基底変換行列である。行列の大きさ(size)がn+1であるので、C=MDdsBの演算における行列C,M,Bの大きさは、いずれもn+1にあわせなければならない。行列Cは(c0,c1,c2,…,cn-1,c)の形態(form)を有しており、その最終出力は(c0,c1,c2,…,cn-1)である。また行列Bは(b0,b1,b2,…,bn-1,s[B])の形態であり、行列Mは式(10)によって表される。
Figure 2004166274
ここで、
s[A]=a0+a1+a2+…+an-1
s[B]=b0+b1+b2+…+bn-1
である。
第一の従来技術において、特定次元nは式(11)に示すものが用いられる。
Figure 2004166274
特定のn次元の定義多項式は、式(12)によって表される。
Figure 2004166274
C=MDdsB=BM’において式(13)によって表される行列M’を提供することによって、第一の従来技術は効率的な双対基底乗算器を提供し、基底変換を省略する。
Figure 2004166274
しかし式(11)に示すように、第一の従来技術は特定次元に限定されており、一般的な形態の代わりに、式(12)によって表される特定形態を有する定義多項式を用いている。それに対して本発明は、特定次元に制限されず、一般的な形態を有する定義多項式、すなわち五項式(pentanomial)に適用される方法を提供するものである。
特定の定義多項式における効率的な基底変換行列に関する第二の従来技術は、特定形態を有する定義多項式を用いた有限体GF(2n)での、単純でかつ拡張が容易な基底変換行列を提供している。また第二の従来技術は、定義多項式が式(14)によって表される三項式である場合及び式(15)によって表される五項式である場合における基底変換行列を提供している。
Figure 2004166274
Figure 2004166274
定義多項式が式(14)によって表される特定形態を有する三項式(trinomial)であるときには、基底変換行列Dds及びDsdは式(16)によって表される。
Figure 2004166274
すなわち、基底変換行列Dds,Dsdはそれぞれn×n行列であり、n個の「1」からなる。
定義多項式が式(15)によって表される特定形態を有する五項式であるときには、基底変換行列Dds及びDsdはそれぞれ、式(17)及び式(18)によって表される。
Figure 2004166274
Figure 2004166274
すなわち、基底変換行列Dds,Dsdはそれぞれn×n行列であり、n+2個の「1」からなる。
実際のアプリケーションに用いられる有限体において、大抵の場合、三項式または五項式が定義多項式として用いられるので、第二の従来技術によって提供される基底変換行列は非常に有用である。しかし、これら基底変換行列は式(14)及び式(15)によって表される特定形態をそれぞれ有する三項式または五項式に使用可能であるが、一般的な形態を有する五項式には使用不可能である。それに対して本発明は、一般的な形態の五項式のための基底変換行列及び基底変換方法を提供するものである。
基底変換行列を計算する方法に関する第三の従来技術は、任意の有限体GF(2n)での基底変換行列を計算する方法を提供している。ここで、{1,α,α2,…,αn-1}はGF(2n)の標準基底であり、定義多項式は式(19)によって表される。
Figure 2004166274
まず、式(20)に示されるようにβを求めた後、式(21)を用いて、双対表現を標準表現に変換する基底変換行列Ddsが求められる。
Figure 2004166274
Figure 2004166274
しかし、βはk(i)に対して非線形的な方法で生成されるので、基底変換行列Ddsはk(i)に関して容易に表すことができない。さらに基底変換行列Ddsは、その逆行列Dsdの複雑性を考慮せずに作られているために、場合によっては逆行列Dsdが非常に複雑になる。それに対して本発明は、k(i)に対して線形的な方法で選択された基底変換行列Dsdを提供し、定義多項式が五項式である場合にk(i)によって容易に定義される基底変換行列Dds及びDsdを提供するものである。
韓国特許出願公開第2000−26250号明細書 E.R.Berlekamp,"Bit−Serial Reed−Solomon Encoders",IEEE Trans.Inform.Theory,Nov.1982,vol.IT−28,pp.869−874 C.C.Wang,T.K.Truong,H.M.Shao,L.J.Deutsch,J.K.Omura and I.S.Reed,"VLSI Architecture for Computing Multiplications and Inverses in GF(2m)",IEEE Trans.Comput.,Aug.1985,vol.C−34 P.A.Scott,S.E.Travares and L.E.Peppard,"A Fast Multiplier for GF(2m)",IEEE J.Select.Areas Commun.,Jan.1986,vol.SAC−4 I.S.Hsu,T.K.Truong,L.J.Deutsch and I.S.Reed,"A Comparison of VLSI Architecture of Finite Field Multipliers Using Dual,Normal,or Standard Bases",IEEE Trans.on Computers,June 1988,vol.37,no.6,p.735−739 M.Mori,M.Kasahara and D.L.Whiting,"Efficient Bit−Serial Multiplication and the Discrete Time Wiener−Hopft Equation over Finite Fields",IEEE Trans.Inform.Theory,Nov.1989,vol.35,pp.1177−1183 D.R.Stinson,"On Bit−Serial Multiplication and Dual Bases in GF(2m)",IEEE Trans.on Inform.Theory,Nov.1991,vol.37,no.6,pp.1733−1736
したがって本発明は、任意の次元で、定義多項式として特定形態ではない一般的な形態の五項式に適用される基底変換行列及び基底変換方法を提供することを課題とする。
さらに本発明は、前記基底変換方法を行う基底変換装置を提供することを課題とする。
前記課題を解決するために本発明は、nビットからなり、基底変換行列の各行ベクトルを格納するトークンレジスタと、nビットからなり、基底変換されるベクトルを格納するデータレジスタと、前記トークンレジスタの出力と前記データレジスタの出力との間のビット乗算を行うn個のビット乗算器と、前記ビット乗算器の出力端に連結され、前記ビット乗算の結果を加算する加算器とを備えた基底変換装置によって行われ、定義多項式Xn+Xk(3)+Xk(2)+Xk(1)+1を用いて、有限体GF(2n)の元Bの標準基底表現係数ベクトルB=(b0,b1,b2,…,bn-1)が双対基底表現係数ベクトルB’=(b’0,b’1,b’2,…,b’n-1)に変換される、有限体GF(2n)での標準基底を双対基底に変換する基底変換方法であって、前記定義多項式Xn+Xk(3)+Xk(2)+Xk(1)+1の指数n,k(3),k(2),k(1)を入力するステップと、変換される前記標準基底表現係数ベクトルB=(b0,b1,b2,…,bn-1)を前記データレジスタに格納するステップと、ベクトル式(b’0,b’1,b’2,…,b’k(1))=(b0+bk(1),bk(1)-1,bk(1)-2,…,b0)を用いて、前記双対基底表現係数ベクトルB’の0番目ないしk(1)番目の成分を求めるステップと、ベクトル式(b’k(1)+1,b’k(1)+2,…,b’k(1)+n-k(3))=(bn-1,bn-2,…,bk(3))を用いて、前記双対基底表現係数ベクトルB’の(k(1)+1)番目ないし(k(1)+n−k(3))番目の成分を求めるステップと、ベクトル式(b’k(1)+1+n-k(3),b’k(1)+2+n-k(3),…,b’k(1)+n-k(2))=(bk(3)-1+bn-1,bk(3)-2+bn-2,…,bk(2)+bn-k(3)+k(2))を用いて、前記双対基底表現係数ベクトルB’の(k(1)+1+n−k(3))番目ないし(k(1)+n−k(2))番目の成分を求めるステップと、ベクトル式(b’k(1)+1+n-k(2),b’k(1)+2+n-k(2),…,b’n-1)=(bk(2)-1+bn-1-k(3)+k(2)+bn-1,bk(2)-2+bn-2-k(3)+k(2)+bn-2,…,bk(1)+1+bn+1-k(3)+k(1)+bn+1-k(2)+k(1))を用いて、前記双対基底表現係数ベクトルB’の(k(1)+1+n−k(2))番目ないし(n−1)番目の成分を求めるステップと、を含むことを特徴とする。
また、本発明の別の態様は、nビットからなり、基底変換行列の各行ベクトルを格納するトークンレジスタと、nビットからなり、基底変換されるベクトルを格納するデータレジスタと、前記トークンレジスタの出力と前記データレジスタの出力との間のビット乗算を行うn個のビット乗算器と、前記ビット乗算器の出力端に連結され、前記ビット乗算の結果を加算する加算器とを備えた基底変換装置によって行われ、定義多項式Xn+Xk(3)+Xk(2)+Xk(1)+1を用いて、有限体GF(2n)の元Bの標準基底表現係数ベクトルB=(b0,b1,b2,…,bn-1)が双対基底表現係数ベクトルB’=(b’0,b’1,b’2,…,b’n-1)に変換される、有限体GF(2n)での標準基底を双対基底に変換する基底変換方法であって、前記定義多項式の指数n,k(3),k(2),k(1)を入力するステップと、変換される前記双対基底表現係数ベクトルB’=(b’0,b’1,b’2,…,b’n-1)を前記データレジスタに格納するステップと、ベクトル式(b0,b1,…,bk(1)-1,bk(1))=(b’k(1),b’k(1)-1,…,b’1,b’0+b’k(1))を用いて、前記標準基底表現係数ベクトルBの0番目ないしk(1)番目の成分を求めるステップと、ベクトル式(bk(1)+1,bk(1)+2,…,bk(2)-1)=(b’k(2)-1+b’k(3)-1+b’n-1,b’k(2)-2+b’k(3)-2+b’n-2,…,b’k(1)+1+b’k(1)+1+k(3)-k(2)+b’n+1+k(1)-k(2))を用いて、前記標準基底表現係数ベクトルBの(k(1)+1)番目ないし(k(2)−1)番目の成分を求めるステップと、ベクトル式(bk(2),bk(2)+1,…,bk(3)-1)=(b’k(1)+k(3)-k(2)+b’n+k(1)-k(2),b’k(1)+k(3)-k(2)-1+b’n+k(1)-k(2)-1,…,b’k(1)+1+b’n+1+k(1)-k(3))を用いて、前記標準基底表現係数ベクトルBのk(2)番目ないし(k(3)−1)番目の成分を求めるステップと、ベクトル式(bk(3),bk(3)+1,…,bn-1)=(b’n+k(1)-k(3),b’n+k(1)-k(3)-1,…,b’k(1)+1)を用いて、前記標準基底表現係数ベクトルBのk(3)番目ないし(n−1)番目の成分を求めるステップと、を含むことを特徴とする。
また、本発明のさらに別の態様は、定義多項式Xn+Xk(3)+Xk(2)+Xk(1)+1にしたがう基底変換行列を用いて、有限体GF(2n)の元Bの標準基底表現係数ベクトルB=(b0,b1,b2,…,bn-1)と双対基底表現係数ベクトルB’=(a’0,a’1,a’2,…,a’n-1)との間の変換が行われる、有限体GF(2n)での標準基底と双対基底との間の基底変換を行う基底変換装置であって、(k(1)+1)ビットの上位トークンレジスタ及び(n−k(1)−1)ビットの下位トークンレジスタに分類されるn個のシフトレジスタからなり、前記シフトレジスタはそれぞれ、イネーブル信号及びクロックに応答してクロック毎に入力データを1ビットずつ左側にシフトし、前記シフトレジスタの出力は、それぞれ前記基底変換行列の各行の成分に対応しているトークンレジスタと、前記定義多項式の成分n,k(3),k(2),k(1)が入力されて、(n−1)ビットの選択線の制御信号、前記トークンレジスタのシフト動作を起動させるイネーブル信号、前記トークンレジスタのクロック、前記上位トークンレジスタ及び前記下位トークンレジスタの初期値、前記トークンレジスタのk(1)番目レジスタのデータ入力信号及び前記トークンレジスタの(n−1)番目レジスタのデータ入力信号を出力するトークン制御部と、前記選択線の制御信号に応答して前記k(1)値にしたがい上位トークンレジスタと下位トークンレジスタとを分離し、前記トークンレジスタのデータ入力経路を選択するマルチプレクサと、変換される係数ベクトルを格納するデータレジスタと、前記トークンレジスタの出力と前記データレジスタの出力との間のビット間乗算を行うANDゲート部と、前記ANDゲート部の全ての出力を加算するXORゲートと、前記XORゲートに連結され、前記XORゲートの出力をクロックに同期させる出力レジスタと、を備えたことを特徴とする。
本発明に係る有限体GF(2n)での基底変換方法及び基底変換装置によれば、特定次元に制限されない任意の次元で特定形態ではない一般的な形態の五項式である定義多項式によって、標準表現と双対表現間の基底変換が効率的に行われる。したがって、双対基底乗算器が効率的に実現可能である。
以下の説明では、n×n正方行列において、0番目行から(n−1)番目行が次のように順次配列されているものとする。
Figure 2004166274
有限体GF(2n)の任意の二つの元(element)同士の乗算を行うために、まず各元が、ある基底に関して表されている必要がある。それには様々な表現方法があるが、代表的な方法は前記したとおりである。αが有限体GF(2n)の元であるとき、標準基底(standard basis)SBは式(22)によって表される。DBは、標準基底SBのトレース関数(trace function)f(=Tr(δ))に関する双対基底(dual basis)であり、式(23)によって表される。
Figure 2004166274
Figure 2004166274
有限体GF(2n)の標準基底SBに関する元A及び元Bの係数ベクトルA=(a0,a1,a2,…,an-1)及びB=(b0,b1,b2,…,bn-1)と、有限体GF(2n)の双対基底DBに関する元A及び元Bの係数ベクトルA’=(a’0,a’1,a’2,…,a’n)及びB’=(b’0,b’1,b’2,…,b’n)との間の基底変換において、元A及び元Bは式(24)によって表される。
Figure 2004166274
式(24)に基づいて有限体の二つの元A及び元Bの乗算を行うとき、双対表現におけるC=ABのi番目の係数は、式(25)によって表される。
Figure 2004166274
すなわち、双対表現におけるC=ABのi番目の係数は、元Bの標準基底SBの係数とαjAの双対基底DBの係数との積の和として表される。したがって、双対表現におけるC=ABは、式(26)によって表される。
Figure 2004166274
前記したように、二つの元A及び元Bの乗算に関し、標準基底SBにおける元Bの係数と、双対基底DBにおける元Aの係数が必要である。そして、その結果が双対基底DBの係数となる。したがって、入力値及び出力値が標準表現であるか双対表現であるかに関わらず、基底変換が必要である。この基底変換は行列の乗算(multiplication)によって行われる。ここで、双対表現を標準表現に変換する行列と標準表現を双対表現に変換する行列とは、互いに逆行列となる関係である。元Aが1であるとき、元Bの標準表現が双対表現に変換される。言い換えれば、「f」に関する元Bの双対表現B’は、式(27)に示されるように行列の乗算によって求められる。
Figure 2004166274
本発明は、「標準基底SB={αi|i=0,1,…,n−1}と任意のベクトルv∈{0,1}nとが与えられたとき、v=(f(1),f(α),…,f(αn-1))を満たす一次関数(linear function)fが存在する」という補助定理(lemma)に基づいた効率的な基底変換行列を提供するものである。
基底変換行列は、式(27)の第1列ベクトルによって決定される。したがって「1」の数が少ない行列を得るために、第1列ベクトルは前記補助定理に基づき適当に選択可能である。式(28)によって表される定義多項式を備えた有限体GF(2n)において、基底変換行列の第1列ベクトルは式(29)として示される。
Figure 2004166274
Figure 2004166274
ベクトルvの成分が式(29)にしたがい選択されるとき、標準表現を双対表現に変換する基底変換行列Dsdは式(30)によって表される。
Figure 2004166274
また双対表現を標準表現に変換する、行列Dsdの逆行列Ddsも式(30)によって表される。
図1は、本発明に係る標準表現を双対表現に変換する基底変換方法の一実施形態を示すフローチャートである。ステップS10では、定義多項式の指数n、k(3),k(2),k(1)が入力される。ステップS12では、基底変換される係数ベクトルBが格納される。ステップS14〜S20では、係数ベクトルBが双対基底表現係数ベクトルB’に変換される。
本発明は、定義多項式が式(31)によって定義される五項式であり、式(32)に示される条件を満たす場合における基底変換行列Dsd,Dds及び基底変換方法を提供する。
Figure 2004166274
Figure 2004166274
より詳細には、まずステップS10では、式(31)によって定義される定義多項式の指数n,k(3),k(2),k(1)が入力される。
実際に用いられる有限体GF(2n)のほとんどにおいて、三項式または五項式が定義多項式として用いられる。さらに大抵の場合、k(1),k(2),k(3)はnの値よりも小さいので、式(32)に示されるk(i)に関する条件は、本発明の実用性にほとんど影響しない。
式(30)に示される基底変換行列Dsdは、式(33)によって簡略に書き直し可能である。
Figure 2004166274
式(31)及び式(32)にしたがい有限体GF(2n)の定義多項式が決定されるとき、式(29)に基づき[DsdU及び[DsdLはそれぞれ、式(34)及び式(35)によって定義される。
Figure 2004166274
Figure 2004166274
[DsdLの全ての元のうち、式(35)に示す「1」以外は、いずれも「0」である。[DsdLには、(n−k(1)−1)個の「1」が最も長い反対角線(longest anti-diagonal)に存在し、(k(3)−k(1)−1)個の「1」及び(k(2)−k(1)−1)個の「1」が、残る二つの反対角線(remaining two anti-diagonals)に各々存在している。したがって基底変換行列Dsdは、式(34)及び式(35)に示される前記正方行列の「1」の数を合わせて、合計(n+k(3)−k(1)+k(2)−k(1)−1)個の「1」を有している。また[DsdLの反対角線は、基底変換行列Dsdの(k(1)+1)番目行、(k(1)+1+n−k(3))番目行、(k(1)+1+n−k(2))番目行から始まっている。もしk(2)−k(1)=1であれば、(k(2)−k(1)−1)個の「1」を有する最も短い三番目の反対角線は現れない。前記したように、基底変換行列Dsdはk(i)及びnに関する一次式として容易に表される。これは基底変換行列が格納される必要がないことを意味している。
したがってステップS10では、五項式である定義多項式の指数n,k(3),k(2),k(1)を入力することによって、前記理論に基づき基底変換行列Dsdが決定される。
ステップS12では、有限体の元Bの、標準基底表現係数ベクトルB=(b0,b1,b2,…,bn-1)がレジスタに格納される。
続くステップS14〜S20は、双対規定表現係数ベクトルの成分を得るための変換に関するステップである。ステップS14〜S20で用いられる変換式は、ステップS10で決定された基底変換行列Dsdに基づき決定される。
標準基底表現係数ベクトルを双対基底表現係数ベクトルに変換する演算について以下に示す。式(36)は、有限体GF(2n)の標準基底表現係数ベクトルB=(b0,b1,b2,…,bn-1)と双対基底表現係数ベクトルB’=(b’0,b’1,b’2,…,b’k(1))との関係を示している。
Figure 2004166274
基底変換行列Dsdの行は、0番目ないしk(1)番目行からなり、サイズが(k(1)+1)×(k(1)+1)の正方行列[DsdUと、(k(1)+1)番目ないし(n−1)番目行からなり、サイズが(n−k(1)−1)×(n−k(1)−1)の正方行列[DsdLとに分けられる。
ステップS14では、式(37)を用いて、双対基底表現係数ベクトルB’の0番目ないしk(1)番目成分[b’0,b’1,…,b’k(1)Tが求められる。ここで[DsdUは、式(34)に示されるものと同一である。
Figure 2004166274
ステップS14が行われた結果、式(37)の演算結果が式(38)によって表される。
Figure 2004166274
ステップS16〜S20では、式(39)を用いて、双対基底表現係数ベクトルB’の(k(1)+1)番目ないし(n−1)番目の成分が求められる。ここで[DsdLは、式(35)に示されるものと同一である。
Figure 2004166274
式(35)に示されるように、[DsdLの行は、「1」が1個の行と、「1」が2個の行と、「1」が3個の行とに分類可能である。したがって、変換式(39)の右辺を実行するためのステップは、項が1個であるステップS16と、項が2個であるステップS18と、項が3個であるステップS20とに分類可能である。言い換えると、ステップS14では双対表現係数ベクトルB’の0番目ないしk(1)番目の成分が求められ、ステップS16では双対表現係数ベクトルB’の(k(1)+1)番目ないし(k(1)+n−k(3))番目の成分が求められ、ステップS18では双対表現係数ベクトルB’の(k(1)+1+n−k(3))番目ないし(k(1)+n−k(2))番目の成分が得られ、ステップS20では双対表現係数ベクトルB’の(k(1)+1+n−k(2))番目ないし(n−1)番目の成分が求められる。したがって、ステップS14ないしS20を行うことによって求められる基底変換の結果は式(40)によって表される。
Figure 2004166274
本発明に係る基底変換方法が、式(41)によって表される定義多項式を備えた有限体GF(213)の係数ベクトルB=(b0,b1,…,b12)にどのようにして適用されるか、について以下に示す。
Figure 2004166274
ここで標準表現を双対表現に変換する基底変換行列Dsdは、式(42)によって表される、13×13の正方行列である。
Figure 2004166274
ここで、2×2行列の[DsdUと11×11行列の[DsdLとが、式(43)及び式(44)に示される行列演算にしたがい分けられる。式(44)において、行列[DsdL内に示されていない成分(element)は、いずれも0である。
Figure 2004166274
Figure 2004166274
図2は、本発明に係る、図1の基底変換方法を行う基底変換装置の一実施形態を示す図である。基底変換装置は、nビットからなり、基底変換行列の各行の成分を出力するトークンレジスタ20と、トークンレジスタ20を制御する制御信号SEL<0:n−2>,ENu,ENl及びトークンレジスタ20に入力されるデータD<0:n−1>を出力するトークン制御部10と、nビットからなり、変換されるベクトルの成分を格納するデータレジスタ30と、トークンレジスタ20のnビット出力とデータレジスタ30のnビットの出力とのビット乗算を行うn個のANDゲート(AND gate)からなるANDゲート部40と、ANDゲート部40に連結され、ANDゲート部40のn個の出力のビット加算(bit addition)を行うXORゲート(eXclusive OR gate)50と、選択的に設けられ、基底変換の結果をクロック信号(clock signal)に同期化して出力する出力レジスタ60とを備えている。
ANDゲート部40、XORゲート50及び出力レジスタ60は、図4に詳細に図示されている。
図3は、図2のトークンレジスタ20の内部構造の一実施形態を示す図である。トークンレジスタ20は、(k(1)+1)ビットからなる上位トークンレジスタ(upper token register)20aと、(n−k(1)−1)ビットからなる下位トークレジスタ20b(lower token register)と、トークンレジスタ20を上位トークンレジスタ20aと下位トークンレジスタ20bとに分け、トークンレジスタ20のデータ入力経路を選択する(n−1)個のマルチプレクサ(multiplexer)21とを備えている。
図2及び図3によると、トークンレジスタ20はn個のシフトレジスタからなり、上位トークンレジスタ20aと下位トークンレジスタ20bとに分類される。トークンレジスタ20では、トークン制御部10からのイネーブル信号(enable signals)ENu,ENl及びシフトクロックCKに応答し、シフトクロックCK毎に1ビットずつ左側にデータがシフトされて出力される。シフトクロックCK毎のn個のシフトレジスタの出力T<0:n−1>は、基底変換行列DsdまたはDdsの各行の成分の値である。
マルチプレクサ21は、選択線SEL<0:n−2>に応答してk(1)の値にしたがい、トークンレジスタ20を上位トークンレジスタ20aと下位トークンレジスタ20bとに分ける。
トークン制御部10は、五項式である定義多項式の指数n,k(3),k(2),k(1)値が入力され、(n−1)ビットのマルチプレクサ21の選択線SEL<0:n−2>と、トークンレジスタ20のシフト動作(shift operation)を起動させるイネーブル信号ENu,ENlと、トークンレジスタ20のシフトクロックCKと、上位トークンレジスタ20a及び下位トークンレジスタ20bにシフトクロックCK毎に格納されるデータD<0:n−1>とを出力する。
データレジスタ30は、変換される元の係数ベクトルB=(b0,b1,b2,…,bn-1)を格納する。
基底変換行列と係数ベクトルとの間の乗算は、ANDゲート部40及びXORゲート50によって行われる。ANDゲート部40は、T<0:n−1>及びD<0:n−1>のビット乗算を行う。XORゲート50は、ANDゲート部40によって行われたビット乗算の結果を加算する。
出力レジスタ60は、出力同期を合わせるために選択的に備えられる構成要素である。例えば、各行の成分が第0ないし第12クロックによって決定されるときには、出力レジスタ60は、これら成分を入力され、第1ないし第13クロックによってベクトル成分を出力する。
本発明に係る、前記構成要素を有する基底変換装置によって行われる、標準表現から双対表現への変換について、以下に示す。
入力されたk(1)の値にしたがい、0番目ないしk(1)番目のレジスタが上位トークンレジスタ20aに分類され、(k(1)+1)番目ないし(n−1)番目のレジスタが下位トークンレジスタ20bに分類される。したがって、上位トークンレジスタ20a及び下位トークンレジスタ20bは分けて制御される。ここでビットk(1)は、上位トークンレジスタの最上位ビット(Most Significant Bit、以下MSBと記載する。)である。言い換えると、k(1)番目マルチプレクサ21の選択線SEL<k(1)>は、基底変換の間に外部経路を通じてk(1)番目のレジスタの入力値が決定されるように制御される。さらに下位トークンレジスタ20bのMSBに対応する(n−1)番目のレジスタは、マルチプレクサ21に連結されず、常に外部データが入力される。n=13かつk(1)=1であるときには、上位トークンレジスタ20aは2個のシフトレジスタからなり、下位トークンレジスタ20bは11個のシフトレジスタからなり、そして下位トークンレジスタ20bのMSBを除き、12個のマルチプレクサ21が設けられる。
第0クロックでは、マルチプレクサ21の選択線SEL<0:k(1)>には全部1が入力され、上位トークンレジスタ20aは外部から入力される。また第1クロックないし第k(1)クロックでは、第k(1)マルチプレクサ21の選択線SEL<k(1)>にのみ1が入力され、k(1)番目レジスタは連続的に外部の値を入力され、SEL<0:k(1)−1>には全部0が入力され、第0レジスタないし第(k(1)−1)レジスタは各々次のレジスタからの1ビット出力をシフトする。例えばk(1)=1であるときには、第0クロックで(1 1)がマルチプレクサ21の選択線SEL<0:1>に入力され、第1クロックで(0 1)がマルチプレクサ21の選択線SEL<0:1>に入力される。第(k(1)+1)クロック以降、上位トークンレジスタ20aの出力はイネーブル制御(enable control)によって維持されるので、上位トークンレジスタ20aのマルチプレクサ21の選択線SEL<0:k(1)>は、第(k(1)+2)クロックからの「don't care」である。
また、下位トークンレジスタ20bの(n−1)番目ビットを除く全てのビットに設けられるマルチプレクサ21の選択線SEL<k(1)+1:n−2>は、第(k(1)+1)クロックでは、例えば全部「1」であり、下位トークンレジスタ20bは第(k(1)+1)クロックでは外部入力D<k(1)+1:n−1>に接続される。第(k(1)+2)クロック以降には、全てのマルチプレクサ21の選択線SEL<k(1)+1:n−2>には、「0」が入力されて、下位トークンレジスタ20bの各レジスタは次のレジスタから出力された値をシフトする。
上位トークンレジスタ20a及び下位トークンレジスタ20bの出力は、イネーブル信号(enable signal)ENu,ENlによって制御される。クロックCKに応答して所望の値が出力されている間、イネーブル信号ENu,ENlは、トークンレジスタ20をイネーブル可能となるように制御されている。トークンレジスタ20のイネーブル制御の例を以下に示す。
上位トークンレジスタ20aのイネーブル制御において、上位トークンレジスタ20aはイネーブル信号ENuに応答して第0クロックでイネーブルされ、第(k(1)+1)クロックまでイネーブルされた状態を維持し、第(k(1)+1)クロックでの上位トークンレジスタ20aのシフト出力の後にディセーブル(disable)される。例えばk(1)=1のときには、上位トークンレジスタ20aは第0クロックでイネーブルされ、外部入力に応答して(1 1)を出力する。第1クロックでは、上位トークンレジスタ20aは0番目ビットとしてシフトされた出力「1」を出力し、k(1)番目すなわち外部入力に応答する1番目のビットとして「0」を出力する。したがって、上位トークンレジスタ20aは(1 0)を出力する。第2クロックでは、シフトされた出力「0」が0番目ビットとして出力され、「0」が外部入力に応答する1番目ビットとして出力され、上位トークンレジスタ20aは(0 0)を出力する。第3クロック以降、上位トークンレジスタ20aはディセーブルされ、出力(0 0)が維持される。[DsdUの成分は、それぞれ上位トークンレジスタ20aから出力されたビットに対応している。
下位トークンレジスタ20bのイネーブル制御において、下位トークンレジスタ20bの全ての出力は、第0クロックないし第k(1)クロックで0である。下位トークンレジスタ20bは、第(k(1)+1)クロックでイネーブルされるように設計されている。装置内のレジスタが動作を開始するときには、例えば下位トークンレジスタ20bの全ての出力はグローバルリセット(global reset)によって0である。第(k(1)+1)クロックで、下位トークンレジスタ20bがイネーブルされ、シフト動作を開始する。例えば定義多項式が五項式x13+x6+x4+x+1,n=13,k(3)=6,k(2)=4,k(1)=1であるときには、下位トークンレジスタ20bは第0クロック及び第1クロックで0を出力し、第2クロックで外部入力に応答する(0 0…0 1)を出力するためにイネーブルされる。イネーブル状態(enabled state)は、基底変換が第12クロックで完了されるまで維持される。第3クロックで、下位トークンレジスタ20bは、左側への1ビットシフトを行うことによって(0 0…1 0)を出力する。左側への1ビットシフトは、各クロックで行われる。第(k(1)+1+n−k(3)=9)クロック及び第(k(1)+1+n−k(2)=11)クロックで、1が下位トークンレジスタ20bの第(n−1)番目のレジスタに入力され、他のクロックでは0が入力される。それによって、シフトクロックが進行するにつれて上位トークンレジスタ20a及び下位トークンレジスタ20bは次のような値を有する。ここで、前の括弧内の2ビットは上位トークンレジスタ20aの出力であり、後の括弧内の11ビットは下位トークンレジスタ20bの出力である。
Figure 2004166274
一方で、基底変換行列演算は、トークンレジスタ20の出力及びデータレジスタ30の出力間の各ビット乗算(bit-by-bit multiplication)と、各ビット乗算結果のあらゆるビットの加算とによって行われる。基底変換行列Dsdの各行の成分T<0:n−1>は、シフトクロックに応答してトークンレジスタ20から出力され、ANDゲート部40に備えられたn個のANDゲートによってデータレジスタ30から出力される値b<0:n−1>とそれぞれ乗算される。ANDゲート部40の出力は、XORゲート50によって加算される。XORゲート50の出力は、出力レジスタ60によってクロックCKに同期されている。
図5は、本発明に係る双対表現を標準表現に変換する基底変換方法の一実施形態を示すフローチャートである。ステップS30では、定義多項式の指数n,k(3),k(2),k(1)が入力される。ステップS32では、基底変換される係数ベクトルB’が格納される。ステップS34〜S40では、係数ベクトルB’が標準基底表現係数ベクトルBに変換される。図5に示される基底変換は、図1に示されたものに類似しているが、異なる基底変換行列が用いられている。
双対表現を標準表現に変換する基底変換行列Ddsは基底変換行列Dsdの逆行列であり、式(45)ないし式(47)によって表される。
Figure 2004166274
Figure 2004166274
Figure 2004166274
式(47)に示される[DdsLにおいて、各反対角線の「1」の数及び隣接する反対角線間の間隔は、基底変換行列Dsdの場合と同じである。基底変換行列Ddsの(k(1)+1)番目行で、反対角線はそれぞれ、(k(2)−1)番目列、(k(3)−1)番目列、(n−1)番目列から始まっている。もしk(2)−k(1)=1であれば、最も短い反対角線は現れない。
標準表現から双対表現への基底変換と同様、双対表現から標準表現への基底変換は、式(48)ないし式(52)によって示される逐次計算によって行われる。
Figure 2004166274
Figure 2004166274
式(46)が式(49)に適用されるとき、式(50)が求められる。
Figure 2004166274
ステップS36〜S40では、式(51)を用いて標準基底表現係数ベクトルBの(k(1)+1)番目ないし(n−1)番目の成分が得られる。ここで[DdsLは、式(47)に示されるものと同一である。
Figure 2004166274
式(47)に示されるように、[DdsLの行は、「1」が3個の行と、「1」が2個の行と、「1」が1個の行とに分類可能である。したがって、変換式(50)の右辺を実行するステップは、項が3個であるステップS36と、項が2個であるステップS38と、項が1個であるステップS40とに分類可能である。言い換えると、ステップS34では標準基底表現係数ベクトルBの0番目ないしk(1)番目の成分が得られ、ステップS36では標準基底表現係数ベクトルBの(k(1)+1)番目ないし(k(1)+n−k(3))番目の成分が得られ、ステップS38では標準基底表現係数ベクトルBの(k(1)+1+n−k(3))番目ないし(k(1)+n−k(2))番目の成分が得られ、ステップS40では標準基底表現係数ベクトルBの(k(1)+1+n−k(2))番目ないし(n−1)番目の成分が得られる。したがって、ステップS36〜S40を行うことによって得られる基底変換の結果は式(52)によって表される。
Figure 2004166274
有限体GF(213)の定義多項式が式(53)によって表されるとき、基底変換行列は式(54)及び式(55)によって与えられ、変換式及び変換結果は式(56)及び式(57)によって表される。
Figure 2004166274
Figure 2004166274
Figure 2004166274
Figure 2004166274
Figure 2004166274
双対表現を標準表現に変換する基底変換装置は、基本的に図2に示される装置を備えている。そして、図2に示される装置と同様の制御及び演算を行うが、トークン制御部10から出力され、上位トークンレジスタ20a及び下位トークンレジスタ20bに格納されるデータ信号D<0:n−1>は、図2に示される装置で用いられているものと異なっている。
定義多項式がx13+x6+x4+x+1であるとき、[DdsUの成分値に対応する上位トークンレジスタ20aには、第0クロックで初期値がセットされた後、各クロックでk(1)番目ビットとして0が入力される。上位トークンレジスタ20aは、各クロックで左側に1ビットずつシフトするように設計されている。第k(1)クロックで、上位トークンレジスタ20aのk(1)番目ビットに1が入力される。例えばk(1)=1であるとき、上位トークンレジスタ20aは第0クロックで(0 1)を出力し、第1クロックで(1 1)を出力する。
[DdsLの成分に対応する下位トークンレジスタ20bには、第(k(1)+1)クロックで初期値がセットされた後、第(k(1)+2)クロック以降の各クロックで第(n−1)レジスタに0が入力される。下位トークンレジスタ20bは、各クロックで左側に1ビットずつシフトするように設計されている。n=13、k(3)=6、k(2)=4、k(1)=1であるとき、下位トークンレジスタ20bは(n−k(1)−1=11)個のシフトレジスタからなり、11個のシフトレジスタの初期値は(0 1 0 1 0 0 0 0 0 0 1)である。格納された初期値は、各クロックで左側に1ビットずつシフトされる。初期値がシフトされた後、各クロックで第12レジスタに0が入力される。それゆえ、シフトクロックが進行するにつれて上位トークンレジスタ20a及び下位トークンレジスタ20bは次のような値を有している。
Figure 2004166274
一方で、基底変換行列の計算は、トークンレジスタ20の出力及びデータレジスタ30の出力間のビット乗算と、ビット乗算の結果の全てのビットの加算とによって行われる。基底変換行列Dsdの各行の成分T<0:n−1>は、シフトクロックに応答するトークンレジスタ20からの出力であり、ANDゲート部40に備えられたn個のANDゲートによってそれぞれデータレジスタ30からの出力b<0:n−1>と乗算される。ANDゲート部40の出力は、XORゲート50によって加算される。XORゲート50の出力は、出力レジスタ60によってクロックCKに同期されて出力される。
本発明は前記実施形態に限定されず、特許請求の範囲によって定義された発明の要旨を
逸脱しない範囲でより多くの変形及び変用例が可能であることはもちろんである。
本発明で提案した双対基底と標準基底との間の基底変換は、実際次のように使用できる。スマートカードのようにリソースの少ない携帯用端末機内で、電子署名などの機能を具現するためには、できるだけリソースの使用が少ないアルゴリズムが必要である。ゆえに、キー長の短いECC(楕円曲線暗号システム)が有用である。電子署名時間、具現されたアルゴリズムの領域などECCの性能を左右するもののひとつが有限体乗算である。双対基底を使用して有限体積算を具現すれば、アルゴリズムの領域側面では有利であると知られている。しかし、ほとんどの通信プロトコルの場合において、標準基底が用いられている。したがって、双対基底を用いた積算装置と標準基底を用いたプロトコルとの互換のためには、基底変換が必要である。本発明は、このときに使用される効率的な基底変換方法を提案するものである。
本発明に係る標準表現を双対表現に変換する基底変換方法の一実施形態を示すフローチャートである。 本発明に係る、図1の基底変換方法を行う基底変換装置の一実施形態を示す図である。 図3は、図2のトークンレジスタ20の内部構造の一実施形態を示す図である。 図2のANDゲート、XORゲート及び出力レジスタの構造の一実施形態を示す図である。 図5は、本発明に係る双対表現を標準表現に変換する基底変換方法の一実施形態を示すフローチャートである。
符号の説明
10 トークン制御部
20 トークンレジスタ
20a 上位トークンレジスタ
20b 下位トークンレジスタ
21 マルチプレクサ
30 データレジスタ
40 ANDゲート部
60 出力レジスタ
50 XORゲート
SEL<0:n−2> マルチプレクサ21の選択線
ENu,ENl トークンレジスタ10のシフト動作を起動させるイネーブル信号
D<0:n−1> トークンレジスタ20に入力されるデータ
CK レジスタのクロック

Claims (3)

  1. nビットからなり、基底変換行列の各行ベクトルを格納するトークンレジスタと、
    nビットからなり、基底変換されるベクトルを格納するデータレジスタと、
    前記トークンレジスタの出力と前記データレジスタの出力との間のビット乗算を行うn個のビット乗算器と、
    前記ビット乗算器の出力端に連結され、前記ビット乗算の結果を加算する加算器とを備えた基底変換装置によって行われ、
    定義多項式Xn+Xk(3)+Xk(2)+Xk(1)+1を用いて、有限体GF(2n)の元Bの標準基底表現係数ベクトルB=(b0,b1,b2,…,bn-1)が双対基底表現係数ベクトルB’=(b’0,b’1,b’2,…,b’n-1)に変換される、有限体GF(2n)での標準基底を双対基底に変換する基底変換方法であって、
    前記定義多項式Xn+Xk(3)+Xk(2)+Xk(1)+1の指数n,k(3),k(2),k(1)を入力するステップと、
    変換される前記標準基底表現係数ベクトルB=(b0,b1,b2,…,bn-1)を前記データレジスタに格納するステップと、
    ベクトル式
    (b’0,b’1,b’2,…,b’k(1))=(b0+bk(1),bk(1)-1,bk(1)-2,…,b0
    を用いて、前記双対基底表現係数ベクトルB’の0番目ないしk(1)番目の成分を求めるステップと、
    ベクトル式
    (b’k(1)+1,b’k(1)+2,…,b’k(1)+n-k(3))=(bn-1,bn-2,…,bk(3)
    を用いて、前記双対基底表現係数ベクトルB’の(k(1)+1)番目ないし(k(1)+n−k(3))番目の成分を求めるステップと、
    ベクトル式
    (b’k(1)+1+n-k(3),b’k(1)+2+n-k(3),…,b’k(1)+n-k(2))=(bk(3)-1+bn-1,bk(3)-2+bn-2,…,bk(2)+bn-k(3)+k(2)
    を用いて、前記双対基底表現係数ベクトルB’の(k(1)+1+n−k(3))番目ないし(k(1)+n−k(2))番目の成分を求めるステップと、
    ベクトル式
    (b’k(1)+1+n-k(2),b’k(1)+2+n-k(2),…,b’n-1)=(bk(2)-1+bn-1-k(3)+k(2)+bn-1,bk(2)-2+bn-2-k(3)+k(2)+bn-2,…,bk(1)+1+bn+1-k(3)+k(1)+bn+1-k(2)+k(1)
    を用いて、前記双対基底表現係数ベクトルB’の(k(1)+1+n−k(2))番目ないし(n−1)番目の成分を求めるステップと、
    を含むことを特徴とする有限体GF(2n)での標準表現を双対表現に変換する基底変換方法。
  2. nビットからなり、基底変換行列の各行ベクトルを格納するトークンレジスタと、
    nビットからなり、基底変換されるベクトルを格納するデータレジスタと、
    前記トークンレジスタの出力と前記データレジスタの出力との間のビット乗算を行うn個のビット乗算器と、
    前記ビット乗算器の出力端に連結され、前記ビット乗算の結果を加算する加算器とを備えた基底変換装置によって行われ、
    定義多項式Xn+Xk(3)+Xk(2)+Xk(1)+1を用いて、有限体GF(2n)の元Bの標準基底表現係数ベクトルB=(b0,b1,b2,…,bn-1)が双対基底表現係数ベクトルB’=(b’0,b’1,b’2,…,b’n-1)に変換される、有限体GF(2n)での標準基底を双対基底に変換する基底変換方法であって、
    前記定義多項式の指数n,k(3),k(2),k(1)を入力するステップと、
    変換される前記双対基底表現係数ベクトルB’=(b’0,b’1,b’2,…,b’n-1)を前記データレジスタに格納するステップと、
    ベクトル式
    (b0,b1,…,bk(1)-1,bk(1))=(b’k(1),b’k(1)-1,…,b’1,b’0+b’k(1)
    を用いて、前記標準基底表現係数ベクトルBの0番目ないしk(1)番目の成分を求めるステップと、
    ベクトル式
    (bk(1)+1,bk(1)+2,…,bk(2)-1)=(b’k(2)-1+b’k(3)-1+b’n-1,b’k(2)-2+b’k(3)-2+b’n-2,…,b’k(1)+1+b’k(1)+1+k(3)-k(2)+b’n+1+k(1)-k(2)
    を用いて、前記標準基底表現係数ベクトルBの(k(1)+1)番目ないし(k(2)−1)番目の成分を求めるステップと、
    ベクトル式
    (bk(2),bk(2)+1,…,bk(3)-1)=(b’k(1)+k(3)-k(2)+b’n+k(1)-k(2),b’k(1)+k(3)-k(2)-1+b’n+k(1)-k(2)-1,…,b’k(1)+1+b’n+1+k(1)-k(3)
    を用いて、前記標準基底表現係数ベクトルBのk(2)番目ないし(k(3)−1)番目の成分を求めるステップと、
    ベクトル式
    (bk(3),bk(3)+1,…,bn-1)=(b’n+k(1)-k(3),b’n+k(1)-k(3)-1,…,b’k(1)+1
    を用いて、前記標準基底表現係数ベクトルBのk(3)番目ないし(n−1)番目の成分を求めるステップと、
    を含むことを特徴とする有限体GF(2n)での双対表現を標準表現に変換する基底変換方法。
  3. 定義多項式Xn+Xk(3)+Xk(2)+Xk(1)+1にしたがう基底変換行列を用いて、有限体GF(2n)の元Bの標準基底表現係数ベクトルB=(b0,b1,b2,…,bn-1)と双対基底表現係数ベクトルB’=(a’0,a’1,a’2,…,a’n-1)との間の変換が行われる、有限体GF(2n)での標準基底と双対基底との間の基底変換を行う基底変換装置であって、
    (k(1)+1)ビットの上位トークンレジスタ及び(n−k(1)−1)ビットの下位トークンレジスタに分類されるn個のシフトレジスタからなり、前記シフトレジスタはそれぞれ、イネーブル信号及びクロックに応答してクロック毎に入力データを1ビットずつ左側にシフトし、前記シフトレジスタの出力は、それぞれ前記基底変換行列の各行の成分に対応しているトークンレジスタと、
    前記定義多項式の成分n,k(3),k(2),k(1)が入力されて、(n−1)ビットの選択線の制御信号、前記トークンレジスタのシフト動作を起動させるイネーブル信号、前記トークンレジスタのクロック、前記上位トークンレジスタ及び前記下位トークンレジスタの初期値、前記トークンレジスタのk(1)番目レジスタのデータ入力信号及び前記トークンレジスタの(n−1)番目レジスタのデータ入力信号を出力するトークン制御部と、
    前記選択線の制御信号に応答して前記k(1)値にしたがい上位トークンレジスタと下位トークンレジスタとを分離し、前記トークンレジスタのデータ入力経路を選択するマルチプレクサと、
    変換される係数ベクトルを格納するデータレジスタと、
    前記トークンレジスタの出力と前記データレジスタの出力との間のビット間乗算を行うANDゲート部と、
    前記ANDゲート部の全ての出力を加算するXORゲートと、
    前記XORゲートに連結され、前記XORゲートの出力をクロックに同期させる出力レジスタと、
    を備えたことを特徴とする有限体GF(2n)での基底変換装置。
JP2003379095A 2002-11-09 2003-11-07 有限体での基底変換方法及び基底変換装置 Expired - Fee Related JP3823107B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0069460A KR100486726B1 (ko) 2002-11-09 2002-11-09 유한 체에서의 기저 변환 방법 및 기저 변환 장치

Publications (2)

Publication Number Publication Date
JP2004166274A true JP2004166274A (ja) 2004-06-10
JP3823107B2 JP3823107B2 (ja) 2006-09-20

Family

ID=32291720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003379095A Expired - Fee Related JP3823107B2 (ja) 2002-11-09 2003-11-07 有限体での基底変換方法及び基底変換装置

Country Status (6)

Country Link
US (1) US7346641B2 (ja)
EP (1) EP1455270B1 (ja)
JP (1) JP3823107B2 (ja)
KR (1) KR100486726B1 (ja)
CN (1) CN1313918C (ja)
DE (1) DE60312810T2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100871221B1 (ko) * 2005-11-11 2008-12-01 삼성전자주식회사 선형 궤환 시프트 레지스터를 이용하는 통신 시스템에서부호 생성 방법 및 장치
CN101008937B (zh) * 2007-02-06 2010-05-19 中国科学院研究生院 提高有限域上乘法以及大矩阵消元的计算速度的方法
US8380777B2 (en) * 2007-06-30 2013-02-19 Intel Corporation Normal-basis to canonical-basis transformation for binary galois-fields GF(2m)
US8380767B2 (en) * 2007-06-30 2013-02-19 Intel Corporation Polynomial-basis to normal-basis transformation for binary Galois-Fields GF(2m)
US8176395B2 (en) * 2007-11-27 2012-05-08 Macronix International Co., Ltd. Memory module and writing and reading method thereof
CN102929574A (zh) * 2012-10-18 2013-02-13 复旦大学 Gf(2163)域上的脉动乘法器设计方法
CN103441813B (zh) * 2013-08-27 2015-11-11 湖北大学 一种用于cdma系统的低相关二元序列集生成方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4994995A (en) 1990-03-14 1991-02-19 International Business Machines Corporation Bit-serial division method and apparatus
KR940001147B1 (ko) * 1991-03-20 1994-02-14 삼성전자 주식회사 부분체 GF(2^m/2)을 이용한 GF(2^m)상의 연산방법 및 장치
US5854759A (en) * 1997-05-05 1998-12-29 Rsa Data Security, Inc. Methods and apparatus for efficient finite field basis conversion
US6286022B1 (en) 1997-11-18 2001-09-04 Rsa Security Inc. Efficient finite field basis conversion involving a dual basis
US6389442B1 (en) * 1997-12-30 2002-05-14 Rsa Security Inc. Efficient finite field multiplication in normal basis
KR100322739B1 (ko) * 1998-10-19 2002-06-22 윤종용 유한체연산방법및그장치
US6343305B1 (en) * 1999-09-14 2002-01-29 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Methods and apparatus for multiplication in a galois field GF (2m), encoders and decoders using same
US7724898B2 (en) * 2002-10-17 2010-05-25 Telefonaktiebolaget L M Ericsson (Publ) Cryptography using finite fields of odd characteristic on binary hardware
US7197527B2 (en) * 2002-10-17 2007-03-27 Telefonaktiebolaget Lm Ericsson (Publ) Efficient arithmetic in finite fields of odd characteristic on binary hardware

Also Published As

Publication number Publication date
EP1455270A3 (en) 2006-06-28
JP3823107B2 (ja) 2006-09-20
DE60312810D1 (de) 2007-05-10
US20040098437A1 (en) 2004-05-20
KR100486726B1 (ko) 2005-05-03
CN1313918C (zh) 2007-05-02
KR20040041282A (ko) 2004-05-17
US7346641B2 (en) 2008-03-18
EP1455270B1 (en) 2007-03-28
DE60312810T2 (de) 2007-12-06
EP1455270A2 (en) 2004-09-08
CN1499358A (zh) 2004-05-26

Similar Documents

Publication Publication Date Title
US8504602B2 (en) Modular multiplication processing apparatus
Erdem et al. A general digit-serial architecture for montgomery modular multiplication
JP2004534266A (ja) ハードウェアにおいて算術演算を効率的に行う方法および装置
JP2004326112A (ja) マルチプルモジュラス選択器、累算器、モンゴメリー掛け算器、マルチプルモジュラス発生方法、部分掛け発生方法、累算方法、掛け算方法、モジュラス選択器、およびブースレコーダ
JP4180024B2 (ja) 乗算剰余演算器及び情報処理装置
KR100744216B1 (ko) 계산 장치 및 방법과 컴퓨터 프로그램 저장 매체
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
Shieh et al. A new algorithm for high-speed modular multiplication design
US7046800B1 (en) Scalable methods and apparatus for Montgomery multiplication
JP3823107B2 (ja) 有限体での基底変換方法及び基底変換装置
JP4170267B2 (ja) 乗算剰余演算器及び情報処理装置
JP2000010479A (ja) モンゴメリ・リダクション装置及び記録媒体
JP2004258141A (ja) モンゴメリ乗算剰余の多倍長演算のための演算装置
JP2004227344A (ja) 乗算器及び暗号回路
JP5175983B2 (ja) 演算装置
KR100670780B1 (ko) 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법
KR100946256B1 (ko) 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기
JP2002007112A (ja) 剰余演算計算方法および剰余演算計算装置
WO2003096182A1 (en) “emod” a fast modulus calculation for computer systems
Sandoval et al. Novel algorithms and hardware architectures for montgomery multiplication over gf (p)
US7471789B2 (en) Encryption circuit achieving higher operation speed
US7472154B2 (en) Multiplication remainder calculator
JP3210420B2 (ja) 整数上の乗算回路
JP2009301265A (ja) 倍数判定方法、倍数判定装置および倍数判定プログラム
KR100395511B1 (ko) 유한체 상에서의 병렬 입출력 승산기의 설계 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060626

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees