(57)【特許請求の範囲】
【請求項１】
有限体ＧＦ（２ｍ）上の任意の元ａ＝（ａ０，ａ１，・・・，ａｍ−１）に対し２次多項式ｚ２＋ｚ＋ａのＧＦ（２ｍ）上の根を求める回路であって、ｍはＧＦ（２）上の多項式ｆ＝ｘｍ＋ｘｍ−１＋・・・ｘ＋１が既約となるように定めた拡大次数であり、前記多項式ｆをＧＦ（２ｍ）の生成多項式として用いた場合において、前記元ａの対応するビットを一方の入力とし、前段素子の出力若しくはＸ（１，０）においては前段素子の出力の代わりにａｍ−１を他方の入力とする従属接続されたｍ−３個の排他論理和素子Ｘ（１，０）〜Ｘ（１，ｍ−４）と、ａｍ−１及びＸ（１，１），Ｘ（１，３），・・・，Ｘ（１，ｍ−５）の出力を各々一方の入力とし、ａ０を他方の入力とするｍ／２−１個の排他論理和素子Ｘ（２，０）〜Ｘ（２，ｍ／２−２）とから構成され、前記素子Ｘ（２，０）〜Ｘ（２，ｍ／２−２）の出力、前記素子Ｘ（１，０），Ｘ（１，２），・・・，Ｘ（１，ｍ−４）の出力及び前記ａ０をｚ２＋ｚ＋ａの根ｚ＝（ｚ０，ｚ１，・・・，ｚｍ−１）として出力することを特徴とする有限体上の２次多項式の求根回路。
【請求項２】
前記元ａの対応するビットとＸ（１，ｍ−４）の出力とを入力とする排他論理和素子Ｘ（１，ｍ−３）を有し、該素子Ｘ（１，ｍ−３）の出力を前記他の各素子と共に出力とすることを特徴とする請求項１記載の有限体上の２次多項式の求根回路。
【請求項３】
有限体ＧＦ（２ｍ）上の任意の元ａ＝（ａ０，ａ１，・・・，ａｍ−１）に対し２次多項式ｚ２＋ｚ＋ａのＧＦ（２ｍ）の上の根を求める回路であって、ｍはＧＦ（２）上の多項式ｆ＝ｘｍ＋ｘｍ−１＋・・・ｘ＋１が既約となるように定めた拡大次数であり、前記多項式ｆをＧＦ（２ｍ）の生成多項式として用いた場合において、前記元ａの対応するビットを一方の入力とし、前段素子の出力若しくはＸ（１，０）においては前段素子の出力の代わりにａｍ／２を他方の入力とする従属接続されたｍ−３個の排他論理和素子Ｘ（１，０）〜Ｘ（１，ｍ−４）と、前記素子Ｘ（１，０），Ｘ（１，２），・・・，Ｘ（１，ｍ−４）の出力を各々一方の入力とし、ａ０を他方の入力とするｍ／２−１個の排他論理和素子Ｘ（２，０）〜Ｘ（２，ｍ／２−２）とから構成され、Ｘ（２，０）〜Ｘ（２，ｍ／２−２）の出力、Ｘ（１，１），Ｘ（１，３），・・・，Ｘ（１，ｍ−５）の出力、ａｍ／２及びａ０をｚ２＋ｚ＋ａの根ｚ＝（ｚ０，ｚ１，・・・，ｚｍ−１）として出力することを特徴とする有限体上の２次多項式の求根回路。
【請求項４】
前記元ａの対応するビットとＸ（１，ｍ−４）の出力とを入力とする排他論理和素子Ｘ（１，ｍ−３）を有し、該素子Ｘ（１，ｍ−３）の出力を前記他の各素子と共に出力とすることを特徴とする請求項３記載の有限体上の２次多項式の求根回路。
【請求項５】
請求項１記載の回路のうち初段から所定の段数までの素子によりｎ個（ｎ＜ｍ−１）の出力ｚを求める第１の回路と、請求項３記載の回路のうち初段から所定の段数までの素子により前記第１の回路の出力ｚと重複しないｍ−１−ｎ個の出力ｚを求める第２の回路とを互いに接続した構成からなり、前記ｚ２＋ｚ＋ａの根ｚ＝（ｚ０，ｚ１，・・・，ｚｍ−１）を求めることを特徴とする有限体上の２次多項式の求根回路。
【請求項６】
前記互いに接続された回路のうち、前記第１の回路における従属接続された排他論理和素子の最終段の出力を一方の入力とし、前記第２の回路における従属接続された排他論理和素子の最終段の出力を他方の入力とする排他論理和素子を有し、該素子の出力を前記他の各素子と共に出力とすることを特徴とする請求項５記載の有限体上の２次多項式の求根回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楕円暗号等に用いる有限体上の１元２次多項式の求根方法及び求根回路に関する。
【０００２】
【従来の技術】
従来の技術を説明するに先立って、まず有限体の演算について説明する。
【０００３】
（有限体の演算）
有限体GF(2m)は2m個の元からなる集合であり、各々の元はベクトル表現で表現される。GF(2m)において位数2m−1である元を原始元と呼ぶ。ベクトル表現は、GF(2m)をGF(2)のｍ次元ベクトル空間とみなし、任意の元ａをｍ次元数ベクトル(a0,a1,・・・,am-1)と表現するものである。ここで、ベクトルの各要素a1はGF(2)の元、即ち０または１である。ベクトル表現において、ベクトル空間の基底は一通りには決まらず、元の表現は用いる基底によって異なる。
【０００４】
基底には、正規基底と多項式基底がある。正規基底は、
【数１】
0004374504.tif 000002
が一次独立である原始元を用いて
【数２】
0004374504.tif 000003
を基底とするものである。多項式基底は、GF(2)上ｍ次モニック既約多項式fを生成多項式とし、fの根である元zを用いて、(1,z,z2,・・・,zm-1)を基底とする。また、このときxを変数として、a=(a0,a1,・・・,am-1)をGF(2)［x］の元とみなし、a=am-1xm-1+・・・＋a1x＋a0 と表現する。この表現を多項式表現という。
【０００５】
GF(2m)上の２元a,bの加算は、a+b= (a0+ b0,a1+ b1,・・・,am-1＋bm-1)であり、即ち２元を要素毎にGF(2)上で加算すればよい。GF(2)上の加算は排他論理和で実現される。GF(2m)上の２元a,bの乗算は、正規基底を用いる方法では、U.S. patent #4,587,627 "Computational Method and Apparatus for Finite Field Arithmetic"、#4,745,568 "Computational Method and Apparatus for Finite Field Multiplication"があるが、何れも実現時の回路が複雑であり、mが大きいとき回路規模は非常に大きくなるという欠点を有する。なお正規基底を用いた乗算についてはKluwer Academic Pub.出版A.J.Menezes,Ed. "Applications of Finite Fields"に詳しい記述がある。一方、多項式基底を用いる方法では、W.W.Wesley, E.J. Weldolon, Jr.の著書"Error-Correcting Codes"  MIT Pressに詳しい記述があり、正規基底を用いた乗算と比較して回路がシンプルでmが大きいときもそれほど回路規模が大きくならず、また、高クロックで高速動作できる利点が有る。
【０００６】
（楕円暗号）
楕円暗号はGF(2m)上の楕円曲線
【数３】
0004374504.tif 000004
のGF(2m)有理点の加算を用いた暗号方式である。すなわち、暗号化の際にメッセージを楕円曲線E上の有理点に写像してこれを暗号文とし、また復号化の際は暗号文を楕円曲線Ｅ上の有理点に写像してこれを元のメッセージに復元する暗号方式である。
【０００７】
この楕円暗号では、暗号文が楕円曲線Ｅ上の有理点（xc,yc）であることから、mビットのメッセージは暗号化されたとき2mビットとなり、有限体上の乗法群を用いた他の暗号方式と比較して暗号文の大きさが2倍になるという欠点が有る。そこでこの欠点を解決するためには、暗号文を有限体上の乗法群暗号を用いたときの大きさ＋１ビットにする方法があり、これを実現するためにGF(2m)上の2次多項式の根を求める必要が有る。
【０００８】
（メッセージから有理点への写像）
ところで、メッセージを有理点に写像するためには、通常メッセージを２進展開しm'ビット毎にブロック化する。ここで、m'<mである。このメッセージをベクトル表現されたGF(2m)の元Ｍの上位m'ビットの要素とし、下位m-m'ビットの要素を乱数で埋める。この元Mを楕円曲線Ｅのｘ座標に対応付け、x座標が元Mとなる有理点を計算する。即ち、
【０００９】
【数４】
0004374504.tif 000005
なるｙを求める。ｙが存在しない場合、元Ｍの下位m-m'ビットを別の乱数で埋めて、再びｙを求める。ｙの値が存在し、Ｙと定まったならば、メッセージの有理点への写像を(M,Y)とする。
このとき、楕円曲線Ｅをz=y/xと変数変換すれば、
【数５】
0004374504.tif 000006
として、
【数６】
0004374504.tif 000007
なるｚを求め、このzからY=Mzとすることで、メッセージから点への写像が行える。（暗号文の削減）
上述のように楕円曲線Ｅは２次多項式で表すことができるから、GF(2m)の元Xをx座標の値とする楕円曲線E上の有理点は2個しかない。従って、暗号文(X,Y)はXと1bitの情報で表現することができる。このためz=Y/Xを求め、その最下位ビットzo をXと共に暗号文とすれば、暗号文はm-1ビット削減される。この方法を用いた場合、復号時に
【数７】
0004374504.tif 000008
【数８】
0004374504.tif 000009
をzの最下位ビットをzo として解き、Y=XzとすることでXに対応するYを求めることができ、暗号文(X,Y)を再構成できる。なお楕円暗号の構成についてはKluwer Academic Pub.出版A.J.Menezes,"Elliptic Curve Public Key Cryptosystems"に詳しい記述がある。
【００１０】
【発明が解決しようとする課題】
ところで、2次多項式の求根方法については、正規基底を用いた場合の方法が一般に知られているが、上述したように、多項式基底を用いた場合の方法及び回路は知られていないという問題があった。
【００１１】
本発明は上記問題を解決する為になされたものであって、高速且つ実現時の回路規模を小さくすることができる、多項式基底を用いた有限体上の2次多項式の求根方法及び求根回路を提供することを目的とする。
【００１２】
【発明を解決しようとする手段】
上述した目的を達成するため本発明の請求項１に係る2次多項式の求根回路においては、ｍはGF(2)上の多項式f=xm+xm-1+・・・x+1が既約となるように定めた拡大次数であり、前記多項式ｆをGF(2m)の生成多項式として用いた場合において、前記元aの対応するビットを一方の入力とし、前段素子の出力若しくはX(1,0)においては前段素子の出力の代わりにam-1を他方の入力とする従属接続されたm-3個の排他論理和素子X(1,0)〜X(1, m-4)と、am-1及びX(1,1), X(1,3),・・・, X(1, m-5)の出力を各々一方の入力とし、a0 を他方の入力とするｍ/2-1個の排他論理和素子X(2,0)〜X(2,m/2-2)から構成され、前記素子X(2,0)〜X(2,m/2-2)の出力、前記素子X(1,0), X(1,2),・・・, X(1, m-4)の出力及び前記a0をz2+z+aの根z=(z0,z1,・・・,zm-1)として出力することを特徴としている。
【００１３】
また本発明の請求項２に係る２次多項式の求根回路においては、前記元aの対応するビットとX(1, m-4)の出力とを入力とする排他論理和素子X(1, m-3)を有し、該素子X(1, m-3)の出力を前記他の各素子と共に出力とすることを特徴としている。
【００１４】
また本発明の請求項３に係る２次多項式の求根回路においては、前記元aの対応するビットを一方の入力とし、前段素子の出力若しくはX(1,0)においては前段素子の出力の代わりにam/2を他方の入力とする従属接続されたm-3個の排他論理和素子X(1,0)〜X(1, m-4)と、前記素子X(1,0), X(1,2),・・・, X(1, m-4)の出力を各々一方の入力とし、a0を他方の入力とするｍ/2-1個の排他論理和素子X(2,0)〜X(2,m/2-2)から構成され、X(2,0)〜X(2,m/2-2)の出力、X(1,1), X(1,3),・・・, X(1, m-5)の出力、am/2及びa0をz2+z+aの根z=(z0,z1,・・・,zm-1)として出力することを特徴としている。
【００１５】
また本発明の請求項４に係る２次多項式の求根回路においては、前記元aの対応するビットとX(1, m-4)の出力とを入力とする排他論理和素子X(1, m-3)を有し、該素子X(1, m-3)の出力を前記他の各素子と共に出力とすることを特徴としている。
【００１６】
また本発明の請求項５に係る２次多項式の求根回路においては、請求項１記載の回路のうち初段から所定の段数までの素子によりn個（n< m-1）の出力zを求める第１の回路と、請求項３記載の回路のうち初段から所定の段数までの素子により前記第１の回路の出力zと重複しないm-1-n個の出力zを求める第２の回路とを互いに接続した構成からなり、前記z2+z+aの根z=(z,z)=(z0,z1,・・・,zm-1)を求めることを特徴としている。
【００１７】
また本発明の請求項６に係る２次多項式の求根回路においては、前記互いに接続された回路のうち、前記第１の回路における従属接続された排他論理和素子の最終段の出力を一方の入力とし、前記第２の回路における従属接続された排他論理和素子の最終段の出力を他方の入力とする排他論理和素子を有し、該素子の出力を前記他の各素子と共に出力とすることを特徴としている。
【００１９】
【発明の実施の形態】
以下、本発明の原理について詳細に説明する。
GF(2m)の生成多項式をf=xm+xm-1+・・・x+1であるとし、aの多項式基底を用いたベクトル表現が上述したように与えられているとする。ここで、z2+z=aを解く。このとき
z=(z0,z1,・・・,zm-1)，z2=s=(s0,s1,・・・,sm-1)と表し、z0〜zm-1を求める。生成多項式fが上述の形であるとき、
【数９】
0004374504.tif 000010
・・・（１）
となることが知られている。(Itoh, Tsujii: "Structure of Paralel Multipliers for a Class of Fields GF(2m)", Information and Computation, Vol.83, No.1,(1989),Hasan, Wang, Bhargava: "Modular Construction of Low Complexity Parallel Multipliers for a Class of Finite Fields GF(2m)",IEEE Trans. on Comp.,Vol.41,No.8,(1992)参照)
なおabはaとbの排他論理和をとる演算を表す。
【００２０】
ここで、
z2+z=b=(b0,b1,・・・,bm-1)
と表すと、式（１）から
【００２１】
【数１０】
0004374504.tif 000011
【数１１】
0004374504.tif 000012
・・・（２）
を得る。式（２）をｚについて解いて、
【００２２】
【数１２】
0004374504.tif 000013
【数１３】
0004374504.tif 000014
・・・（３）
を得る。
式（３）においてb=aとすれば、zの解を得る。また、直ちにzm/2=a0を得る。
【００２３】
ここで式（３）を更に変形し、
【数１４】
0004374504.tif 000015
・・・（４）
を得る。
【００２４】
式（４）からz1がzm-1 から逐次的に求まる。即ち、
【数１５】
0004374504.tif 000016
・・・（５）
を得る。
【００２５】
上述のシーケンス（５）で逐次的にz1 を求めると、最終的にm/2が偶数のときはzm/4、奇数のときはz(3m+2)/4 が得られる。これらが各々am/2と等しいとき、z2+z+aはGF(2m)上に根を持ち、そうでないときは根を持たないとする。またz0は用途に応じて0若しくは1としてよい。例えば、楕円暗号の有理点への写像に用いるときには0,1のどちらにしてもよいし、また削減された暗号文から有理点の再構成に用いる場合には、与えられた値とする。
【００２６】
もちろんシーケンス(5)を逆にたどって、m/2が偶数ならばzm/4、奇数ならばz(3m+2)/4 からシーケンスを作ることも可能である。その場合、zm-1の値で根の存在をチェックできる。更に、シーケンス(5)とその逆シーケンスとを共に用いる構成も可能である。
【００２７】
以下、本発明の実施例を図面と計算例に基づいて詳細に説明する。
ここではGF(210)、即ちm=10として説明する。また生成多項式fは、f=x10+x9+ x8+x7 +x6+x5+x4+x3+ x2+x+1とする。
【００２８】
このときシーケンス(5)は以下のようになる。
【数１６】
0004374504.tif 000017
・・・(S1)
【００２９】
このシーケンスを逐次的に解き、z8=a5をチェックすることでzを得られる。また、逆のシーケンスは以下のようになる。
【数１７】
0004374504.tif 000018
・・・(S2)
このシーケンスを逐次的に解き、
【数１８】
0004374504.tif 000019
をチェックすることでzを得られる。
【００３０】
更に、シーケンス(S1)(S2)の両方を任意のz1まで求め、両シーケンスのz1の一致をチェックすることでzを得ることができる。例えば、以下のシーケンスでzを求め、(S1)(S2)のz6の一致で根の存在をチェックする構成をとることができる。
【数１９】
0004374504.tif 000020
・・・(S3)
【００３１】
ここで例えば、削減された暗号文から有理点を再構成する場合等、GF(2m)上に必ず根が存在すると分かっている場合には、根の存在のチェックが必要ないことはいうまでもない。
【００３２】
次に、上述の求根を実現する回路について説明する。
図１は本発明に係る求根回路の第１の実施例を示すブロック図である。当該回路は、シーケンス(S1)を実現したものであり、根の存在チェックは行わない。図中a0〜a9は入力であり、z2+z+aの根の計算を行う際のａを表現する各ビットa=(a0,a1,・・・,am-1)である。また、z1〜z9は出力であり、z2+z+a=0となる際のｚを表現する各ビットz=(z0,z1,・・・,zm-1)である。また+は排他論理和素子を表す。当該回路にaを入力すると、排他論理和素子の動作時間をTと表したとき7Tでzを出力する。当該回路は、シーケンス(S1)と
【数２０】
0004374504.tif 000021
から直ちに正しいzを出力する回路であることが示される。
【００３３】
次に上述の第１実施例の一変形例を図２に示す。当該回路は、図１の回路に根の存在チェックを加えたものである。図中Chkは出力であり、根が存在するか否かにより各々0若しくは1を出力する。当該回路にaを入力すると8Tでz及び根の存在を出力する。
【００３４】
図３は本発明に係る求根回路の第２の実施例を示すブロック図である。当該回路は、シーケンス(S2)を実現したものであり、根の存在チェックは行わない。なお図中の記号は図１に倣う。当該回路にaを入力すると8Tでｚを出力する。当該回路は、シーケンス(S2)と
【数２０】
0004374504.tif 000022
から直ちに正しいzを出力する回路であることが示される。
【００３５】
次に上述の第２実施例の一変形例を図４に示す。当該回路は、図３の回路に根の存在チェックを加えたものである。なお図中の記号は図２に倣う。当該回路にaを入力すると8Tでz及び根の存在を出力する。当該回路の根の存在チェックは
【００３６】
【数２１】
0004374504.tif 000023
より正しい結果を出力することが示される。
【００３７】
図５は本発明に係る求根回路の第３の実施例を示すブロック図である。当該回路は、シーケンス(S3)を実現したものであり、根の存在チェックは行わない。なお図中の記号は図１に倣う。当該回路にaを入力すると4Tでzを出力する。
【００３８】
次に上述の第３実施例の一変形例を図６に示す。当該回路は、図５の回路に根の存在チェックを加えたものであり、z6の一致で根の存在をチェックする。図中の記号は図２に倣う。当該回路にaを入力すると5Tでz及び根の存在を出力する。
【００３９】
なお上記第３の実施例およびその変形例では、z6を境とし、シーケンス(S1)により(z5,z9,z7,z3,z6)=zを求める回路と、その逆のシーケンス(S2)により(z8,z4,z2,z1,) =zを求める回路とを共に用いる構成としているが、本発明はこれに限らず、どのzを境にしてもよい。
【００４０】
即ちシーケンス(S1)による回路のうち初段から所定の段数までの素子によりn個（n<m-1）の出力zを求める回路と、シーケンス(S2)に回路のうち初段から所定の段数までの素子により前記シーケンス(S1)による回路の出力zと重複しないm-1-n個の出力zを求める回路とを互いに接続することにより、前記z2+z+aの根z=(z0,z1,・・・,zm-1)を全て求める構成あればよい。
【００４１】
以上、本発明を拡大次数m=10に適用したものを例として説明したが、本発明はこれのみに限定されるものではなく、fが既約である任意の拡大次数mに対して適用されるものである。
また上述の各実施例では、論理素子のみを用いて構成しているが、順序回路を用いて構成することも可能である。
【００４２】
【発明の効果】
本発明は以上説明した如く構成するものであるから、高速且つ実現時の回路規模が小さい有限体上の2次多項式の求根方法及び求根回路を提供することができ、楕円暗号方式による暗号分のビット数を削減する上で著しい効果を発揮する。
【図面の簡単な説明】
【図１】本発明の第１の実施例を示す回路の構成図
【図２】本発明の第１の実施例の変形例を示す回路の構成図
【図３】本発明の第２の実施例を示す回路の構成図
【図４】本発明の第２の実施例の変形例を示す回路の構成図
【図５】本発明の第３の実施例を示す回路の構成図
【図６】本発明の第３の実施例の変形例を示す回路の構成図
【図１】
0004374504.tif 000024
【図２】
0004374504.tif 000025
【図３】
0004374504.tif 000026
【図４】
0004374504.tif 000027
【図５】
0004374504.tif 000028
【図６】
0004374504.tif 000029