JP3565494B2 - 拡大体演算装置およびそのプログラム記録媒体 - Google Patents
拡大体演算装置およびそのプログラム記録媒体 Download PDFInfo
- Publication number
- JP3565494B2 JP3565494B2 JP2000079614A JP2000079614A JP3565494B2 JP 3565494 B2 JP3565494 B2 JP 3565494B2 JP 2000079614 A JP2000079614 A JP 2000079614A JP 2000079614 A JP2000079614 A JP 2000079614A JP 3565494 B2 JP3565494 B2 JP 3565494B2
- Authority
- JP
- Japan
- Prior art keywords
- reduction
- matrix
- polynomial
- order
- elements
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
【発明の属する技術分野】
この発明は、例えば楕円曲線暗号/署名などの情報セキュリティ技術を実現するために用いられ、有限体GF(q)上既約なk次多項式f(x)によるGF(q)のk次拡大体GF(qk )=GF(q[x]/f(x))装置に関する。
【0002】
【従来の技術】
楕円曲線暗号を実現する際、楕円曲線の定義体として、有限体GF(q)(但しqは計算機の語長に近い素数または素数のべき(冪))のk次拡大体GF(qk )を用いる場合がある。拡大体GF(qk )上の演算を高速化できれば、拡大体GF(qk )上で定義された楕円曲線暗号の処理速度を高速化できる。今GF(q)のk次拡大体GF(qk )上の元A及びBのGF(qk )上の積C=A×Bの演算を実行する装置を構成したいとする。拡大に用いる既約多項式をGF(q)上のf(x)とし、代数方程式f(x)=0の解の一つをαとすると、一般にGF(qk )上の元Aは、GF(q)上の元を要素に持つk次元ベクトルai (但し0<i<k)を用いて、
A=Σi=0 k−1 ai αi
と一意に書くことが出来る。GF(q)上の元を要素に持つk次元ベクトルai をAの多項式基底による表現と呼ぶ。即ちA及びBの多項式基底による表現ai 及びbi (但し0<i<k)を入力とし、Cの多項式基底による表現ci (但し0<i<k)を出力とする、演算装置を構成する場合、Cを計算する為には、まずA及びBをαに関する多項式と見做し、C=A×Bを多項式演算で計算する。即ち
Σj=0 2k−2djαj=(Σi=0 k−1aiαi)×(Σi=0 k−1biαi) (1)
なるdj (但し0<j<2k−1)を求める。この時GF(q)上の元を要素に持つ2k−1次元ベクトルdj (但し0<j<2k−1)は、GF(q)上の元を要素に持つk次元ベクトルではないので、Cの多項式基底による表現とはなっていない。Cの多項式基底による表現を得る為には
Σi=0 k−1 ci αi =Σj=0 2k−2dj αj (2)
なるci (但し0<i<k)を求めなくてはならない。この目的の為にはf(α)=0が用いられる。f(x)がxのk次多項式であるからf(α)=P0 +P1 α+P2 α2 +…+Pk−1 αk−1 +Pk αk =0の関係から、
αk =Σj=0 k−1 rj αj (3)
とすることができる。従って、式(3)を使ってk次以上のαの多項式をk−1次のαの多項式に変換することが出来る。この操作を還元と呼ぶ。もし拡大に用いる多項式f(x)がGF(q)上既約k次2項多項式xk−rであれば、αk =rであるので、整数mに対してαm=rαm−kである。従って、k−1箇のαk 以上の各項のdj(j=k〜2k−2 )をr倍して次数をk−1以下にすると共に、その下げた次数と対応する次数のdj(j=0〜k−1)と加算して各ci(i=0〜k−1)を求めることができ、つまりk−1回のr倍と加算を用いて還元を実行することが出来る。2項多項式xk−rには上記のような性質があるので、従来、拡大体上の演算を高速に行う為には拡大に用いる多項式を2項多項式xk−rにすることが必要とされてきた(特願平10−255526号参照)。
【0003】
【発明が解決しようとする課題】
上記2項多項式による拡大体演算法では、qやkの値によってはGF(q)上既約2項多項式f(x)=xk −rが存在しなかったり、r倍が必ずしも高速に実行できない場合が数多く存在した。例えばk=13の場合212より大きい素数のうちの最初の200個の中で、−100<r<100なる既約2項多項式が存在する素数はわずか12個に過ぎない。この発明は、どのような場合でも拡大体上演算を高速に実行することを可能とする拡大体演算装置を提供することを目的とする。
【0004】
【課題を解決するための手段】
以下にこの発明の原理を説明する。簡単のためαのm次多項式をf(α)=0を用いてm−1次多項式に変換することを考える(但しk<m<2k)。αのm次多項式を
Σi=0 2k−1diαi=Σi=0 k−1diαi+Σi=0 k−1di+k(αi・αk) (4)
とすることができる。m次多項式をm−1次多項式にする為には、αのすべてのk次以上の冪をf(α)=0の関係から次数を1次下げれば良い。即ち式(3)を使って式(4)を
と変形すれば良い。式(5)の左辺がαのm次式(k<m<2k)なら式(5)の右辺はαのm−1次式である。式(5)の右辺をαの多項式と見做しαi の係数をd′i とおくと式(5)は、
Σi=0 2k−1di αi =Σi=0 2k−1d′i αi (6)
とかける。但しi>mの場合d′i =0である。GF(q)上の元を要素に持つ2k次元ベクトルdi を縦ベクトルで
【0005】
【数2】
と表現するなら、この過程は以下のように行列を用いて
【0006】
【数3】
【0007】
と表現することが出来る(空白は0と見做す、以下も同様)。右辺の2k行2k列の行列内の縦線と横線は便宜上付けたものであり、この縦線、横線で分けられた左上の小行列(単位行列)は式(5)の右辺第1項と対応し、右の上下の小行列は右第2項と対応する。説明の便宜の為、区切られた小行列に名前を付け式(7)を次式
【0008】
【数4】
と表現することにする。Iはk行k列の単位行列であり、Oはk行k列の零行列である。また、
【0009】
【数5】
【0010】
とする。式(8)で行列を縦ベクトルに1回かけることはf(α)=0の関係を使ってαのm次式をm−1次式に変換することに相当している。従ってαの2k−1次式をk−1次式に変換することは式(8)の行列を縦ベクトルにk回かけることに他ならない。即ち還元とは
【0011】
【数6】
に他ならない(但しi>kの時ci =0)。
【0012】
【数7】
を2乗、3乗と順次計算し、k乗まで行うと、
【0013】
【数8】
【0014】
となる。所で
R1 k−I=(R1 −I)(R1 k−1+R1 k−2+…+R1 +I)
であり、R1 は式(10)の行列であるから、これをk乗すると0となる。よって
−I=(R1 −I)(R1 k−1+R1 k−2+…+R1 +I)
両辺に(R1 −I)−1を乗算すると、
−(R1 −I)−1=R1 k−1+R1 k−2+…+R1 +R0
(I−R1 )−1=Σi=0 k−1 R1 i
この関係を式(11)に代入し、またR1 k=0であるから
【0015】
【数9】
となる。R′=R0 (I−R1 )−1とおけば式(10)は
【0016】
【数10】
【0017】
とかける。二つのk−1次多項式の積は2k−2次多項式であるので、GF(q)上既約なk次多項式f(x)によるGF(q)のk次拡大GF(qk )=GF(q)[x]/(f(x))上の2つの元の乗算を考える上ではd2k−1=0である。従ってR′のなかで実際に必要な列は第0列から第k−2列までである。行列R′の第0列から第k−2列までのk行(k−1)列の行列Rを還元行列と呼び、式(13)はRを用い簡単に
【0018】
【数11】
【0019】
と表わせる。式(14)よりGF(q)[x]/(f(x))上の2つの元の乗算が高速に計算できるかどうかは還元行列Rの性質に依存することが判る。一般の拡大体GF(q)[x]/(f(x))上の2つの元の乗算における還元には式(7)、(8)、(14)からk(k−1)回のGF(q)上定数倍とk(k−1)回のGF(q)上加算の演算が必要である。一方、従来高速とされてきた既約2項多項式による拡大体GF(q)[x]/(xk −r)の場合R′=rIになるので還元には(k−1)回のGF(q)上定数倍(r倍)と(k−1)回のGF(q)上加算の演算しか必要ない。ところで、2項式xk −rが既約かそうでないかは定義体qと拡大次数kの値によって決まる。例えばq=65539、k=10の場合、既約2項式は存在しない。そのような場合は従来効率的な乗算装置は構成できないと考えられていた。あるいはq=4201,k=10の場合、既約2項式xk −rはr=±11、±13、±19、…であるが、加算のみでこれらr倍を実現するには少なくとも5回の加算が必要であり、必ずしもr倍が高速であるとは云えない。しかし、このような場合でも以下の手順に従えば効率的な乗算装置を構成できる。
【0020】
Step1:探索し得る全ての既約多項式に対応する還元行列Rを上記手順に従い計算する。
Step2:Rによる還元演算の演算コストに関する性質を調べる。
Step3:探索し得る全ての既約多項式の中で最も演算コストの少ない既約多項式f(x)を見つけ出す。
Step4:f(x)における還元演算装置の構成を行い、乗算装置を構成する。
【0021】
上記手順の、探索し得る既約多項式に、既約2項多項式を含めても手順は全く変わらない。従ってこのようにすれば、既約2項多項式をも含めた、探索し得る全ての既約多項式に関して、最も効率的な乗算装置を構成できる。
つまりこの発明では前述のように決めた既約多項式が用いられ還元演算の演算コストが少ないものであり、つまり還元演算手段に用いられる還元行列Rはその行列の要素数中の半分以上が零要素であり、還元演算において行列Rの零要素の部分のGF(q)上積和演算が省略され、還元演算を高速に行うことができる。
あるいは、一般のk行k−1列の行列を基本変形により標準形
【0022】
【数12】
【0023】
にするために必要な基本変形の最小回数をM回とすると還元行列RはM/2回以下の基本変形で標準形になるようなものであり、行列Rはこのような性質があるため、還元演算におけるある行の部分的な演算結果を他の行の演算に流用するように還元演算手段が多く構成され、それだけ還元を高速に行うことができる。
このような構成とすることにより、既約多項式としては3項よりなる3次以上のもの、あるいは4項よりなる4次以上のものが用いられる。
一般に式(12)の行列Vは
【0024】
【数13】
【0025】
のように分解できる。これは、還元を行う場合に次数の高い項から順にf(α)=0の関係を使って一次ずつ次数を下げてゆくことに対応する。従って、2項多項式でなくとも項数が少なく、ri 倍が高速なら還元を高速に行うことができる。また、項数が多くとも、行列Vを何らかの分解によって要素の絶対値が小さい少数の疎行列の積に分解できれば同様に還元を高速に行うことができる。このような分解が出来ると云うことは、式(14)の計算に於いて、ある行の計算過程に於ける部分的な結果を他の行の計算に流用できることに相当している。例えばq=65539、k=10の場合はf(x)=x10−x9 −1あるいはf(x)=x10−x−1、q=4201、k=10の場合はf(x)=x10+x9 +1あるいはf(x)=x10+x+1等は2項式ではないが還元を高速に行うことができる。
【0026】
【発明の実施の形態】
以下にこの発明の実施例を示す。
図1はこの発明を拡大体GF(qk )の乗算装置に適用した場合である。この乗算装置1AはGF(qk )上の元A及びBを入力し、その積C=A×Bを出力するものであり、GF(qk )上の元A、B、Cは、それぞれGF(q)上の元を要素に持つk次元ベクトルai ,bi ,ci (但し0<i<k)で表されており、GF(q)上k次既約多項式f(x)=0の一つの解をαとすると、それぞれ
A=Σi=0 k−1 ai αi ,B=Σi=0 k−1 bi αi ,C=Σi=0 k−1 ci αi
を意味している。この実施例では簡単のため、k=10の場合を説明するが、一般にf(x)の項数をmとするとm−1以上のkでもこの発明の効果を享受出来る。装置1Aは多項式乗算装置1Bと還元装置1Cとからなる。
【0027】
多項式乗算装置1BはGF(q)上の元を要素に持つk次元ベクトルai ,bi (但し0<i<k)を入力とし、xのGF(q)上係数多項式
Σj=0 2k−2djxj=(Σi=0 k−1aixi)(Σi=0 k−1bixi) (16)
の係数dj (但し0<j<2k−1)を演算して出力する。
還元装置1Cは係数di が入力され、式(14)が演算され、f(α)=0を満たすαについて
Σi=0 k−1 ci αi =Σj=0 2k−2dj αj (17)
なる係数ci (但し0<i<k)を出力する。
【0028】
還元装置1Cは例えば図2に示すように構成される。この例は還元行列Rはその構成要素の半分以上が零要素の場合で具体的にk=10、f(x)=x10−x−1が用いられその還元行列は式(9)、式(12)から次式となる。
【0029】
【数14】
【0030】
つまり行列Rはその要素数10×9=90のうち零要素の数が72、つまり80%もある。この還元行列Rを用いた式(14)の演算は図2に示すように構成することができる。図2中の(+)はGF(q)上加算を表わす。この場合は単位行列Iも還元行列Rも1の要素と零の要素とよりなり、d0 〜d9 が単位行列Iとの演算であり、d10〜d18が還元行列Rとの演算であり、各行ごとに単位行列I、還元行列R中の1の要素との演算がなされるd0 〜d18が加算される。例えば第2行目では単位行列Iとの演算はd1 であり、還元行列Rとの演算はd10とd 11 であり、これらd1 とd10とd 11 が加算されてc1 となる。
【0031】
このように還元装置1Cが構成されているため、この装置1Cでは還元を行う為のコストは加算18回である。一般にk次式f(x)=xk −x−1が既約の場合還元を行う為のコストは加算2(k−1)回であり、2項式の定数倍(r倍)が加算1回より高速に行えない場合この実施例の方が高速になる。
還元装置1Cの他の構成例を図3に示す。この場合は先に述べたように一般のk行k−1列の行列を基本変形により標準形にするために必要な基本変形の回数がM回の場合に、還元行列RがM/2回以下の基本変形で標準形となる還元行列Rが用いられた場合で、この実施例では還元行列Rはk=10,f(x)=x10−x9 −1が用いられ、次式で与えられる。
【0032】
【数15】
【0033】
なおこの行列Rは、例えば第9行の各要素で他の全ての行の対応する要素をそれぞれ引算し、その結果の行列について第8行の各要素で他の全ての行の対応する要素をそれぞれ引算し、その結果の行列について第7行の各要素で他の全ての行の対応する要素をそれぞれ引算し、以下同様のことを行えば9回という少ない回数の基本変形で標準形にすることができるものである。
このような還元行列では、図3に示すように例えばc7 を求めるための演算d17(+)d18(+)d7 中のd17(+)d18の演算結果はc6を求めるための演算d16(+)d17(+)d18(+)d6 中のd17(+)d18の演算に流用され、またc5 を求めるための演算d15(+)d16(+)d17(+)d18(+)d5 中のd16(+)d17(+)d18の演算はc6 を求めるための演算中のd16(+)d17(+)d18の演算結果が流用され、以下同様に、ある行の部分的な演算結果が他の行の演算に流用され、特に図3の例ではその流用演算手段が順次縦続的に行われているため、ここに演算する場合と比較して、全体としての演算回数が少なくなる。この還元装置1Cでは還元を行う為のコストは加算18回である。一般にk次式f(x)=xk −xk−1 −1が既約の場合還元を行う為のコストは加算2(k−1)回であり、2項式の定数倍(r倍)が加算1回より高速に行えない場合この実施例の方が高速になる。
【0034】
この発明の拡大体乗算をコンピュータにプログラムを実行させて行うこともできる。図4にその構成を示す。入出力インターフェース11、記憶部12、CPU(中央演算装置)13、コンピュータを動作させる基本プログラムが記憶されたプログラムメモリ14、各種応用プログラムが記憶されたハードディスク15、RAM16などがバス17に接続されている。ハードディスク15からこの拡大体乗算を行うためのプログラムがRAM16に転送し、そのプログラムを実行することにより、入出力インターフェース11からGF(q)上の元を要素に持つk次元ベクトルで表されるGF(qk )上の元A、Bが入力されると、これらを取込み記憶部12に格納する(S1)(図5参照)。
【0035】
その後、記憶部12から元A、Bを取出して、CPU13は多項式演算処理18を実行して、つまりai 及びbi (0<i<k)から式(16)を満たす係数dj (0<j<2k−1)を求め、これら係数djを記憶部12に格納する(S2)。
次に記憶部12からdj を取出し、還元演算処理19を実行して、式(14)を演算することにより式(17)を満たす係数ci を求め(S3)、この結果であるGF(q)上の元ci のベクトルからなるGF(qk )上の元Cを出力インターフェース11から外部へ出力する(S4)。
【0036】
図2に示した還元装置1Cの演算をコンピュータにより、つまり、図5中の還元演算処理を行わせるには、例えば図6に示す手順で行えばよい。d0 とd10を記憶部12から取出し、これらを加算してc0 として記憶部12に格納し(S1)、
記憶部12からd1 ,d10,d11を取出してこれらを加算してc1 として記憶部12に格納し(S2)、
記憶部12からd2 ,d11,d12を取出してこれらを加算してc2 として記憶部12に格納し(S3)、
記憶部12からd3 ,d12,d13を取出し、これらを加算してc3 として記憶部12に格納し(S4)、
記憶部12からd4 ,d13,d14を取出してこれらを加算してc4 として記憶部12に格納し(S5)、
記憶部12からd5 ,d14,d15を取出して、これらを加算してc5 として記憶部12に格納し(S6)、
記憶部12からd6 ,d15,d16を取出し、これらを加算してc6 として記憶部12に格納し(S7)、
記憶部12からd7 ,d16,d17を取出し、これらを加算してc7 として記憶部12に格納し(S8)、
記憶部12からd8 ,d17,d18を取出し、これらを加算してc8 として記憶部12に格納し(S9)、
記憶部12からd9 ,d18を取出し、これらを加算してc9として記憶部12に格納する(S10)。
【0037】
なおこれらのステップS1〜S10の順番は任意でよい。
図3に示した還元装置をコンピュータにより還元演算処理をさせるには例えば図7に示すようにすればよい。
まず記憶部12からd18を取出し、これをtとしてCPU13内のレジスタに一時格納し(S1)、
記憶部12からd8 とd17を取出し、そのd17とtを加算し、その結果でレジスタ内のtを更新すると共にそのtとd8 を加算してc8 として記憶部12に記憶し(S2)、
記憶部12からd7 とd16を取出し、d16とtを加算し、その結果でレジスタ内のtを更新すると共に、そのtとd7 を加算してc7 として記憶部12に格納し(S3)、
記憶部12からd6 ,d15を取出し、d15とtを加算し、その結果でレジスタ内のtを更新すると共にd6 とtを加算してc6 として記憶部12に格納し(S4)、
記憶部12からd5 ,d14を取出し、d14とtを加算し、その結果でレジスタ内のtを更新すると共にそのtとd5 を加算してc5 として記憶部12に格納し(S5)、
記憶部12からd4 ,d13を取出し、d13とtを加算し、その結果でレジスタ内のtを更新すると共に、そのtとd4 を加算してc4 として記憶部12に格納し(S6)、
記憶部12からd3 ,d12を取出し、d12とtを加算し、その結果でレジスタ内のtを更新すると共にそのtとd3 を加算してc3 として記憶部12に格納し(S7)、
記憶部12からd2 ,d11を取出し、d11とtを加算し、その結果でレジスタ内のtを更新すると共にそのtとd2 を加算してc2 として記憶部12に格納し(S8)、
記憶部12からd1 ,d10を取出し、d10とtを加算し、その結果でレジスタ内のtを更新すると共にそのtとd1 を加算してc1 として記憶部12に格納し(S9)、
記憶部12からd0 ,d9 を取出し、d9 とtを加算し、その結果でレジスタ内のtを更新すると共にそのtとd0 を加算してc0 として記憶部12に格納する(S10)。
【0038】
k次拡大に用いるk次多項式f(x)としてはその最高次数の係数で各項の係数を割算した時に、つまりモニックした時に、各項の係数が±1になるものが好ましい。このようにすると、還元行列Rの構成要素が零要素と1要素とで構成され、定数倍演算をしなくてすみ、高速演算が可能となる。
図4において、駆動部21を介して外部ディスク装置22を駆動し、外部ディスク装置22に記録されたプログラムを実行して前記処理を行うようにしてもよい。また上述ではこの発明を乗算装置に適用したが、一般にGF(q)上既約なk次多項式f(x)によるGF(q)のk次拡大体GF(qk )上の演算において、演算実行中にGF(q)上の元を要素に持つ2k−1次元縦ベクトルdをGF(q)上の元を要素に持つk次元縦ベクトルcに、f(x)=0の関係を用いて還元を行う拡大体演算装置に適用できる。
【0039】
【発明の効果】
従来GF(q)上既約2項式が存在しない場合GF(q)[x]/(f(x))上乗算において還元にk(k−1)回のGF(q)上定数倍とk(k−1)回のGF(q)上加算の演算が必要と考えられていたが、この発明によれば、最も効率の良い時2(k−1)回のGF(q)上加算で還元を実行できる。上記GF(q)上定倍数はGF(q)上加算より十分大きなコストがかかるが、GF(q)上定数倍をGF(q)上加算の5倍と見積もっても、k=10の場合で還元が30倍高速化できる。GF(q)上既約2項式xk −rが存在しても、r倍が必ずしも高速に実行できない場合r倍をGF(q)上加算の5倍と見積もると、最も効率の良い場合、この発明により、還元が3倍高速化できる。
【図面の簡単な説明】
【図1】GF(qk )乗算装置の構成を示す図。
【図2】図1中の還元装置1Cの具体例を示す図。
【図3】図1中の還元装置1Cの他の具体例を示す図。
【図4】この発明装置をコンピュータにより実現する例を示すブロック図。
【図5】GF(qk )乗算の処理の流れを示す図。
【図6】還元演算処理の流れを示す図。
【図7】還元演算処理の他の例の流れを示す図。
Claims (8)
- qを素数または素数の冪とし、有限体GF(q)上既約なk次多項式f(x)によるGF(q)のk次拡大GF(qk )=GF(q)[x]/(f(x))上の元の演算実行中にGF(q)上の元を要素に持つ2k−1次元縦ベクトル[d]をGF(q)上の元を要素に持つk次元縦ベクトル[c]にf(x)=0を用いて還元を行う還元手段を備える演算装置であって、
上記還元手段は上記縦ベクトル[d]を入力して、GF(q)上の元を要素に持つk行k列単位行列I及び上記k次多項式f(x)により定まるGF(q)上の元を要素に持つk行k−1列の行列Rについて、
[c]=[I|R][d]
を演算して、その結果を上記縦ベクトル[c]として出力するものであり、
上記行列Rは探索し得る既約多項式と対応する還元行列中の還元演算コストが最も少ないものであることを特徴とする拡大体演算装置。 - qを素数または素数の冪とし、有限体GF(q)上既約なk次多項式f(x)によるGF(q)のk次拡大GF(qk )=GF(q)[x]/(f(x))上の元の演算実行中にGF(q)上の元を要素に持つ2k−1次元縦ベクトル[d]をGF(q)上の元を要素に持つk次元縦ベクトル[c]にf(x)=0を用いて還元を行う還元手段を備える演算装置であって、
上記還元手段は上記縦ベクトル[d]を入力して、GF(q)上の元を要素に持つk行k列単位行列I及び上記k次多項式f(x)により定まるGF(q)上の元を要素に持つk行k−1列の行列Rについて、
[c]=[I|R][d] (E)
を演算して、その結果を上記縦ベクトル[c]として出力するものであり、
一般のk行k−1列の行列を基本変形により標準形
にする為に必要な基本変形の最小回数をM回とすると、上記行列RはM/2回以下の基本変形で標準形になるものであることを特徴とする拡大体演算装置。 - 請求項2記載の装置において、
上記還元手段は上記式(E)の演算において、ある行の部分的な演算結果を他の行演算に流用する手段を備えることを特徴とする拡大体演算装置。 - 請求項1乃至3の何れかに記載の装置において、
上記多項式f(x)は3項又は4項からなる3次又は4次以上の多項式であることを特徴とする拡大体演算装置。 - 請求項1乃至4の何れかに記載の装置において、
上記多項式f(x)はその最高次の項の係数で他の項の係数を割るとその値が±1となるものであることを特徴とする拡大体演算装置。 - 有限体GF(q)(qは素数又は素数の冪)上の既約なk次多項式f(x)によるGF(q)のk次拡大GF(qk )上の元A及びBの積C=A×Bを、f(x)=0の解の一つαとするとき、GF(q)上の元を要素に持つk次元ベクトル
A=Σi=0 k−1 ai αi 、B=Σi=0 k−1 bi αi (0<i<k)
を用いて演算する装置のコンピュータに、
入力されたA及びBを記憶手段に記憶する処理と、
記憶手段から上記A及びBを取出して多項式乗算を行ってΣi=0 2k−2di αj (0<j<2k−1)を求め、その係数dj を記憶手段に記憶する処理と、
上記djを記憶手段から取出し、GF(q)上の元を要素に持つk行k列単位行列I及び上記k次多項式f(x)により定まるGF(q)上の元を要素に持つk行k−1列の行列Rについて、
[c]=[I R][d]
を演算する還元処理と、
上記演算結果Σi=0 k−1 ci をCとして出力する処理と
を実行させるプログラムを記録した記録媒体。 - 請求項6記載の記録媒体において、
上記行列Rは探索し得る既約多項式と対応する還元行列中の還元演算コストが最も少ないものであることを特徴とする記録媒体。 - 請求項6記載の記録媒体において、
上記還元処理において、ある行の部分的な演算結果を他の行の演算に流用することを少なくとも複数回縦続的に行う処理を含むことを特徴とする記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000079614A JP3565494B2 (ja) | 2000-03-22 | 2000-03-22 | 拡大体演算装置およびそのプログラム記録媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000079614A JP3565494B2 (ja) | 2000-03-22 | 2000-03-22 | 拡大体演算装置およびそのプログラム記録媒体 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2001265571A JP2001265571A (ja) | 2001-09-28 |
| JP3565494B2 true JP3565494B2 (ja) | 2004-09-15 |
Family
ID=18596842
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000079614A Expired - Lifetime JP3565494B2 (ja) | 2000-03-22 | 2000-03-22 | 拡大体演算装置およびそのプログラム記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3565494B2 (ja) |
-
2000
- 2000-03-22 JP JP2000079614A patent/JP3565494B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2001265571A (ja) | 2001-09-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8959134B2 (en) | Montgomery multiplication method | |
| US8793300B2 (en) | Montgomery multiplication circuit | |
| Chionh et al. | Fast computation of the Bezout and Dixon resultant matrices | |
| JPH07271556A (ja) | 電子乗算および加算装置および方法 | |
| KR100950581B1 (ko) | 여분 표현을 사용하는 유한체 비트―병렬 곱셈 장치 및방법 | |
| JP3129392B2 (ja) | 2次元idct回路 | |
| JP3565494B2 (ja) | 拡大体演算装置およびそのプログラム記録媒体 | |
| JP5175983B2 (ja) | 演算装置 | |
| WO2023112211A1 (ja) | 多項式乗算装置、多項式乗算方法、多項式乗算プログラム、多項式乗算ソースコード生成装置、多項式乗算ソースコード生成方法、および多項式乗算ソースコード生成プログラム | |
| JP3660075B2 (ja) | 除算装置 | |
| JP3823107B2 (ja) | 有限体での基底変換方法及び基底変換装置 | |
| Harish et al. | Comparative performance analysis of Karatsuba Vedic multiplier with butterfly unit | |
| TWI802095B (zh) | 模數乘法電路與對應之計算模數乘法之方法 | |
| Porwik | Efficient spectral method of identification of linear Boolean function | |
| KR100976232B1 (ko) | 고속 비트-병렬 다항식 곱셈기, 그 곱셈 방법 | |
| KR100954843B1 (ko) | 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체 | |
| JP3652717B2 (ja) | 離散コサイン高速演算器 | |
| JP3540280B2 (ja) | べき乗剰余演算方法、および、剰余演算方法 | |
| JPH06223097A (ja) | 乗算器、積和演算器の回路記述の発生方法 | |
| JP4405452B2 (ja) | 逆変換回路 | |
| JP4998225B2 (ja) | 有限体演算方法および有限体演算装置 | |
| Shams Solary | Quasi-block Toeplitz matrix in matlab | |
| JP2001084242A (ja) | 可変演算プロセッサ | |
| CN120744994A (zh) | 使用优化后的截断乘法电路执行截断乘法的方法及装置 | |
| JP2004102071A (ja) | 多項式剰余系演算装置、方法及びプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 20040511 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040604 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 3565494 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090618 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090618 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120618 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130618 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140618 Year of fee payment: 10 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| EXPY | Cancellation because of completion of term |