JP2013195453A - 演算装置 - Google Patents
演算装置 Download PDFInfo
- Publication number
- JP2013195453A JP2013195453A JP2012059235A JP2012059235A JP2013195453A JP 2013195453 A JP2013195453 A JP 2013195453A JP 2012059235 A JP2012059235 A JP 2012059235A JP 2012059235 A JP2012059235 A JP 2012059235A JP 2013195453 A JP2013195453 A JP 2013195453A
- Authority
- JP
- Japan
- Prior art keywords
- additional data
- equation
- coefficient
- value
- solution
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Operations Research (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
【課題】演算処理の計算量を削減する。
【解決手段】演算装置は、受付部と係数算出部と求解部と決定部と出力制御部とを備える。受付部は、有限体の乗法群の部分群の要素をトレース表現で表した複数の入力データと、入力データそれぞれの共役元を区別するための複数の第1付加データとを受付ける。係数算出部は、入力データに対する演算処理の演算結果の取りうる値を解とする方程式の係数を、入力データに基づいて算出する。求解部は、算出された係数を有する方程式の複数の解を求める。選択部は、第1付加データに基づいて複数の解から1の解を演算結果として選択する。決定部は、第1付加データに基づいて、選択された演算結果の共役元を区別するための第2付加データを決定する。出力制御部は、選択された演算結果と第2付加データとを出力する。
【選択図】図1
【解決手段】演算装置は、受付部と係数算出部と求解部と決定部と出力制御部とを備える。受付部は、有限体の乗法群の部分群の要素をトレース表現で表した複数の入力データと、入力データそれぞれの共役元を区別するための複数の第1付加データとを受付ける。係数算出部は、入力データに対する演算処理の演算結果の取りうる値を解とする方程式の係数を、入力データに基づいて算出する。求解部は、算出された係数を有する方程式の複数の解を求める。選択部は、第1付加データに基づいて複数の解から1の解を演算結果として選択する。決定部は、第1付加データに基づいて、選択された演算結果の共役元を区別するための第2付加データを決定する。出力制御部は、選択された演算結果と第2付加データとを出力する。
【選択図】図1
Description
本発明の実施形態は、演算装置に関する。
事前の鍵共有なしに安全な通信を実現する公開鍵暗号技術では、暗号系サイズの増大が問題になっている。このような背景から、代数的トーラスを用いて公開鍵暗号における暗号系サイズを圧縮する方法が提案されている。代数的トーラスの元(げん)を表現する方法には、トレース表現、射影表現および拡大体表現がある。トレース表現ではベキ乗アルゴリズムは知られているが、乗算はできないと考えられていた。そこで、代数的トーラスを用いる公開鍵暗号において、鍵生成、暗号化および復号の各ステップで、入出力にはトレース表現が用いられ、演算には射影表現または拡大体表現が用いられていた。このため、演算の前または後に、各表現間の変換を行う(表現変換)必要があった。
Koray Karabina, "Factor-4 and 6 Compression of Cyclotomic Subgroups",J. of Mathematical Cryptology, Vol. 4, No.1, pp.1-42, 2010.
米村智子, 村谷博文 and 花谷嘉一, "代数的トーラス上の暗号系〜トレース表現に関する新しい伸長写像〜", SCIS2012, 2012.
しかしながら、従来技術では、変換前の表現および変換後の表現の組み合わせによっては、表現変換の計算量が多くなり、表現変換および演算を含む全体の計算量が多大になる恐れがあった。
実施形態の演算装置は、受付部と係数算出部と求解部と決定部と出力制御部とを備える。受付部は、有限体の乗法群の部分群の要素をトレース表現で表した複数の入力データと、入力データそれぞれの共役元を区別するための複数の第1付加データとを受付ける。係数算出部は、入力データに対する演算処理の演算結果の取りうる値を解とする方程式の係数を、入力データに基づいて算出する。求解部は、算出された係数を有する方程式の複数の解を求める。選択部は、第1付加データに基づいて複数の解から1の解を演算結果として選択する。決定部は、第1付加データに基づいて、選択された演算結果の共役元を区別するための第2付加データを決定する。出力制御部は、選択された演算結果と第2付加データとを出力する。
以下に添付図面を参照して、この発明にかかる演算装置の好適な実施形態を詳細に説明する。
(第1の実施形態)
図1は、第1の実施形態にかかる演算装置100の構成の一例を示すブロック図である。図1に示すように、演算装置100は、受付部101と、係数算出部102と、求解部103と、選択部104と、決定部105と、出力制御部106と、を備えている。
図1は、第1の実施形態にかかる演算装置100の構成の一例を示すブロック図である。図1に示すように、演算装置100は、受付部101と、係数算出部102と、求解部103と、選択部104と、決定部105と、出力制御部106と、を備えている。
受付部101は、演算に用いるデータの入力を受付ける。例えば、受付部101は、演算の対象となる複数の入力データと、入力データそれぞれの付加データ(第1付加データ)とを受付ける。入力データは、有限体の乗法群(有限体表現の代数的トーラス)の部分群の要素をトレース表現で表したデータである。以下では、代数的トーラスの元gのトレース表現をトレース値Tr(g)と表記する。付加データは、対応する入力データそれぞれの共役元を区別するためのデータである。
係数算出部102は、複数の入力データに対する予め定められた演算処理の演算結果の取りうる値を解とする方程式(多項式)の係数を算出する。以下では、予め定められた演算処理として、複数の入力データの乗算処理を例に説明するが、これに限られるものではない。例えば、複数の入力データのうち一方のフロベニウス写像と他方との乗算処理、および、複数の入力データのフロベニウス写像の乗算処理に対しても同様の手法を適用できる。
求解部103は、算出された係数を有する上記多項式の複数の解を求める。求解部103は、従来から用いられているあらゆるアルゴリズムにより多項式の求解(求根)を実行できる。例えば、2次方程式の解の公式、3次方程式の解の公式、有限体上の求解を行うBerlekampのアルゴリズムなどがある。複数の解は、複数の入力データに対する演算処理(例えば乗算処理)の実際の演算結果を表す解とともに、それ以外の解も含む。
選択部104は、受付けられた付加データに基づいて、複数の解から1の解を演算結果として選択する。
決定部105は、複数の入力データそれぞれに対する複数の付加データを用いて、演算結果として選択された解の共役元を区別するための付加データ(第2付加データ)を決定する。
出力制御部106は、選択された解(演算結果)と、この解の付加データとを出力する。
次に、このように構成された第1の実施形態にかかる演算装置100による演算処理について図2を用いて説明する。図2は、第1の実施形態における演算処理の全体の流れを示すフローチャートである。
受付部101は、乗算する複数の入力データ(トレース値ともいう)、および、トレース値ごとの付加データの入力を受付ける(ステップS101)。係数算出部102は、複数のトレース値の乗算結果(乗算値ともいう)の取りうる値を解(根)として持つ多項式の係数を算出する(ステップS102)。求解部103は、算出された係数を有する多項式の解を求める(ステップS103)。
選択部104は、受付けられた付加データを用いて、求められた複数の解から、複数のトレース値の乗算結果(乗算値ともいう)として出力する解を選択する(ステップS104)。
一方、決定部105は、受付けられた付加データを用いて、選択された解(乗算値)の付加データを決定する(ステップS105)。なお、ステップS102〜ステップS104と、ステップS105とは、図2の順序で実行する必要はない。逆の順序で実行してもよいし、並行して実行してもよい。
出力制御部106は、選択された乗算値と、乗算値に対して決定された付加データとを出力し(ステップS106)、演算処理を終了する。
以下、演算処理の詳細についてさらに説明する。まず、本実施形態にかかる代数的トーラスにおける演算の数学的準備について説明する。代数的トーラスTnが定義される有限体をFp^mとする。ここで、pは素数、nとmは正整数とする。記号「^」はべき乗を表す。例えば、p^mはpのm乗を表す。Fp^mは、要素数がp^mの有限体を表す。代数的トーラスTn(Fp^m)は要素数がΦn(p^m)の群である。ここで、Φn(X)は第n円分多項式(円周n等分多項式)である。代数的トーラスTn(Fp^m)のトレース表現は、φ(n)個のFp^mの元の組で表される。ここで、φ(x)はオイラー関数である。また、代数的トーラスの部分群G±のトレース表現はφ(n)/2個のFp^mの元の組で表される。
以下にn=4とn=6の場合の部分群G±の例を示す。
ここで、フロベニウス写像πは、π:x→x^(p^m)、i=0,1,・・・,n−1であり、Tr(g)はFp^mの元となる。元gと元gフロベニウス共役を根として持つ以下の数2で表される多項式を特性多項式と呼ぶ。
ここで、Tr(g)^2=2Tr(g^{p^m+1})+Tr(g^2)+2Tr(g)+6である。Xの2次の係数はXの4次の係数に等しく、Xの1次の係数はXの5次の係数に等しい。従って、特性多項式の係数は、トレース値Tr(g)とTr(g^{p^m+1})で決まる。そして、特性多項式の求根を行うことで拡大体表現の元gと元g共役元を得ることができる。
次に部分群G±について説明する。部分群G±は、要素数がp^m±√p^{m+1}+1の群である。部分群G±は、mが奇数であり、n=4かつp=2の場合に、または、n=6かつp=3の場合に、代数的トーラスTn(Fp^m)の部分群となっている。
部分群G±の元gのトレース表現は、トレース値Tr(g)で表わされる。部分群G±の元gについて、Tr(g^{p^m+1})=Tr(g)^{√p^{m+1}}と計算されるため、特性多項式の係数はトレース値Tr(g)のみで決まるからである。
ここでトレース写像と、標数pのベキ乗を指数とするベキ乗と、が交換することに注意する。
トレース表現に、元gと、元gの共役元を区別する付加データとを組み合わせると、トレース値Tr(g)を用いて特性多項式の求根を行うことにより、トレース値Tr(g)を、拡大体表現の元gへ一意に表現変換できる。
n個の共役元を区別するので、n=4のとき2ビット、n=6のときlog2(6)ビット、一般にlog2(n)ビットの付加データが用いられる。
次に、トレース表現における乗算方法を示す。トレース表現における乗算とは、トレース値Tr(g)とTr(g)の付加データ、および、トレース値Tr(h)とTr(h)の付加データから、拡大体表現gとhに変換せずに、乗算値Tr(gh)とTr(gh)の付加データを計算することである。
ここで、特性多項式の係数がTr(g)のみで決まっているとする。代数的トーラスTn(Fp^m)の部分群の場合、乗算値の取りうる値はTr(π^i(g)h)のn通り存在する。従って、選択部104は、入力された付加データを用いてn通りから適当な乗算値を選択すればよい。
そこで、まず係数算出部102が、乗算値の取りうる値を根として持つ多項式の係数をTr(g)とTr(h)から計算する。そして、求解部103が多項式の求根を行い、選択部104が求めた根から乗算値を選択する。これによりTr(g)とTr(h)の乗算が構成される。
多項式は、Fp^m係数のn次式であり、求根の際もFp^mで解けばよい。一方、特性多項式もFp^m係数のn次式であるが、代数的トーラスTn(Fp^m)の元gについて求根の際は大きな拡大体F(p^m)^nで解かなければならない。方程式の解の空間が狭い分、トレース表現における乗算は、拡大体表現への変換後に乗算を行う場合に比べ高速である。
n=2のとき代数的トーラスTn(Fp^m)の元gおよび元hについて乗算値の取りうる値を根として持つ多項式は以下のようになる。
{Y−Tr(gh)}{Y−Tr(π(g)h)}
=Y2−Tr(g)Tr(h)Y+{Tr(g)2+Tr(h)2−4}
{Y−Tr(gh)}{Y−Tr(π(g)h)}
=Y2−Tr(g)Tr(h)Y+{Tr(g)2+Tr(h)2−4}
Yの(n−1)次の係数について、nに依らずTr(gh)+Tr(π(g)h)+・・・+Tr(π^{n−1}(g)h)=Tr(g)Tr(h)である。定数項について、g^{p^m+1}=1、h^{p^m+1}=1を用いると、Tr(gh)Tr(π(g)h)=Tr(g^2)+Tr(h^2)となる。特性多項式から得られるトレース値の漸化式によりTr(g^2)=Tr(g)^2−2、Tr(h^2)=Tr(h)^2−2となる。以上から上記多項式が得られる。
従って、乗算値の取りうる値を根として持つ多項式の係数はトレース値Tr(g)とTr(h)のみで決まる。そして、多項式の求根を行うことで乗算値の取りうる値を得ることができる。
ここで、漸化式の一例について説明する。n=2のときの特性多項式であるX^2−Tr(g)X+1=0で、Xにgを代入すると、g^2−Tr(g)g+1=0となる。この式のトレース表現は、Tr(g^2)−Tr(g)^2+2=0となる。ここで、Tr(1)=2を用いている。従って、Tr(g^2)=Tr(g)^2−2の漸化式が得られる。同様にして、一般に漸化式はTr(g^i+1)=Tr(g^i)Tr(g)−Tr(g^i−1)で表される。
ここで、特性多項式から得られるトレース値の漸化式によりTr(g^3)=Tr(g^2)Tr(g)+Tr(g^{p^m+1})Tr(g)+Tr(g)となる。Tr(g^2)=Tr(g)^2、Tr(g^{p^m+1})=Tr(g)^{√p^{m+1}}よりTr(g^3)はトレース値Tr(g)のみから計算される。Tr(h^3)も同様である。Tr(g^{p^m+2})とTr(g^{2p^m+1})との和および積は以下の数6のようになる。
Tr(g^{p^m+2})とTr(g^{2p^m+1})は、トレース値Tr(g)のみから計算される。Tr(h^{p^m+2})とTr(h^{2p^m+1})も同様である。
従って、乗算値の取りうる値を根として持つ多項式の係数は、トレース値Tr(g)とTr(h)のみで決まる。そして、多項式の求根を行うことで乗算値の取りうる値を得ることができる。
ここで、Tr(g^2)=Tr(g)^2+Tr(g^{p^m+1})+Tr(g)、Tr(g^{p^m+1})=Tr(g)^{√p^{m+1}}である。従って、Tr(g^2)はトレース値Tr(g)のみから計算される。Tr(h^2)も同様である。
Tr(g^{p^m+2})とTr(g^{2p^m+1})は、トレース値Tr(g)のみから計算される。特性多項式から得られるトレース値の漸化式により、Tr(g^5)=Tr(g)Tr(g^4)−{Tr(g^{p^m+1})+Tr(g)}{Tr(g)^3+Tr(g)}+{Tr(g^2)Tr(g)−1}Tr(g^2)となるためである。Tr(h^{p^m+2})とTr(h^{2p^m+1})も同様である。
Tr(g^{p^m+3})とTr(g^{3p^m+1})は、トレース値Tr(g)のみから計算される。特性多項式から得られるトレース値の漸化式により、Tr(g^7)=Tr(g){Tr(g^6)+Tr(g^2)}−{Tr(g^{p^m+1})+Tr(g)}{Tr(g^5)+Tr(g)^3}+{Tr(g^2)Tr(g)−1}Tr(g^4)Tr(g)となるためである。Tr(h^{p^m+3})とTr(h^{3p^m+1})も同様である。
Tr(g^{p^m+4})とTr(g^{4p^m+1})、Tr(g^{2p^m+3})とTr(g^{3p^m+2})は、トレース値Tr(g)のみから計算される。Tr(h^{p^m+4})とTr(h^{4p^m+1})、Tr(h^{2p^m+3})とTr(h^{3p^m+2})も同様である。
Tr(g^{p^m+5})とTr(g^{5p^m+1})は、トレース値Tr(g)のみから計算される。特性多項式から得られるトレース値の漸化式により、Tr(g^{11})=Tr(g){Tr(g^{10})+Tr(g^2)^3}−{Tr(g^{p^m+1})+Tr(g)}{Tr(g)^9+Tr(g^7)}+{Tr(g^2)Tr(g)−1}Tr(g^8)Tr(g^5)となるためである。Tr(h^{p^m+5})とTr(h^{5p^m+1})も同様である。
以上によりトレース乗算が可能であることが示された。以下に上記手順をまとめる。
受付部101が、入力としてトレース値Tr(g)と付加データ、トレース値Tr(h)と付加データを受け付ける。係数算出部102が、トレース値Tr(g)とTr(h)から、乗算値の取りうる値を根として持つ多項式の係数d1(g,h)=Tr(g)Tr(h),d2(g,h),・・・,dn(g,h)を計算する。求解部103が、上記多項式の求根を行う。選択部104が、得られたn個の根からトレース値Tr(g)の付加データとトレース値Tr(h)の付加データとを用いて乗算値を1つ選択する。決定部105が、トレース値Tr(g)の付加データとトレース値Tr(h)の付加データとを用いて乗算値の付加データを決定する。
なお、付加データの決め方としては、様々な方法を用いることができる。最も単純な例は、拡大体表現または射影表現における共役元の大小関係により、小さい順または大きい順に0,1,2,・・・,n−1のように付加データの値を割り振る方法である。
拡大体表現または射影表現における共役元のうち、最も小さい元を基準として、この基準の元の{p^m}^i乗を付加データの値としてもよい。他に、標数p=2,3の場合、正規基底におけるいずれかの要素の{0,1}または{0,1,2}の値で付加データの値を決めてもよい。それぞれ2次方程式と3次方程式が正規基底においていずれかの要素の代入のみで解けるからである。
4次方程式は2次式と2次式の積とすると2次方程式を2回解くことで解が得られる。6次方程式は3次式と3次式の積または2次式と2次式と2次式の積とすると、いずれの場合も2次方程式を1回と3次方程式を1回解くことで解が得られる。
次に、選択部104による乗算値の選択と、決定部105による乗算値の付加データの決定について例を示す。まず、n=2の場合について説明する。
n=2のとき代数的トーラスTn(Fp^m)の元gについて特性多項式は以下のようになる。
X2−Tr(g)X+1
X2−Tr(g)X+1
従って、選択部104は、トレース値Tr(g)の付加データとトレース値Tr(h)の付加データの符号が揃っていれば「+」の乗算値を選択し、異なっていれば「−」の乗算値を選択すればよい。
決定部105は、トレース値Tr(g)の付加データとトレース値Tr(h)の付加データとが、共に「+」ならば、Tr(gh)の付加データは「+」に決定し、共に「−」ならば「−」に決定すればよい。また、他方の乗算値についても次の数25のように表わされる。
トレース値Tr(g)の付加データとトレース値Tr(h)の付加データとは互いに異なるので、決定部105は、Tr(gh)の付加データはトレース値Tr(h)の付加データに決定すればよい。
以上の議論の中で、2つの平方根の決め方が明示されることが重要である。例えば、ある数5に対して√5^2=5とするならば、√(−5)^2=5とすべきであり、√(−5)^2=−5としてはならない。有限体の元においては√α^2を決定する際に、例えばαと−αの小さい方を選択する。
次に、n=4の場合について説明する。n=4のとき特性多項式=0をXについて解くと、トレース値と付加データで元gと元gのフロベニウス共役元の拡大体表現を導出できる。4次の特性多項式を2つの2次式に分解して2次方程式を2回解く。標数p=2より解の公式は利用できないことに注意する。
上記の第1項についてX=Tr4/2(g)X’として変数変換を行って得られる次の数27の方程式は、正規基底において計算コストなしで解が得られる。また、その2つの解は互いにビット反転になっており、1ビットで区別できる。
上記の方程式についてZ=Tr(g)Z’として変数変換を行って得られる次の数29の方程式も、正規基底において計算コストなしで解が得られる。また、その2つの解は互いにビット反転になっており、1ビットで区別できる。
ここで第一成分がi1である右側のベクトルが、Z’に関する上記の方程式の解を表し、Fp^{2m}の元である。第一成分がi2である左側のベクトルが、X’に関する上記の方程式の解を表し、Fp^{4m}の元である。i1とi2は、それぞれ0または1を取る。(i1,i2)∈{0,1}×{0,1}をTr(g)の付加データとする。元hと元hのフロベニウス共役元の拡大体表現についても同様である。
乗算値の取りうる値を根として持つ多項式=0をYについて解くと、乗算値の取りうる値を得ることができる。4次の上記多項式を2つの2次式に分解して2次方程式を2回解く。標数p=2より解の公式は利用できないことに注意する。上記多項式を以下の数32のように分解する。
上記の多項式の根を求めるためには、先にTr4/2(g)Tr4/2(h)+Tr4/2(g)^{p^m}Tr4/2(h)^{p^m}と、Tr4/2(g)Tr4/2(h)^{p^m}+Tr4/2(g)^{p^m}Tr4/2(h)を求めなければならない。これらを解とする方程式は次の数33のようになる。
上記の方程式についてW=Tr(g)Tr(h)W’として変数変換を行って得られる次の数34の方程式も、正規基底において計算コストなしで解が得られる。また、その2つの解は互いにビット反転になっており、1ビットで区別できる。
Yに関する上記多項式の第1項についてY=(Tr4/2(g)Tr4/2(h)+Tr4/2(g)^{p^m}Tr4/2(h)^{p^m})Y’として変数変換を行って得られる次の数35の方程式も、正規基底において計算コストなしで解が得られる。また、その2つの解は互いにビット反転になっており、1ビットで区別できる。
ここでl1で代表される右側のベクトルがW’に関する上記の方程式の解を表しFp^mの元である。l2で代表される左側のベクトルがY’に関する上記の方程式の解を表しFp^mの元である。l1とl2は、それぞれ0または1を取る。ある(l1,l2)が乗算値Tr(gh)を表すとすると、乗算値と付加データで乗算値の拡大体表現を次の数37のように表すことができる。
ここでk2で代表されるベクトルはZ’に関する方程式の解を表しFp^{2m}の元である。k2で代表されるベクトルはX’に関する方程式の解を表しFp^{4m}の元である。k1とk2は、それぞれ0または1を取る。(k1,k2)∈{0,1}×{0,1}は、Tr(gh)の付加データとなる。入力である(i1,i2,j1,j2)と、出力とする(k1,k2,l1,l2)の関係は次の数38のようになる。
次に、n=6の場合について説明する。n=6のとき特性多項式=0をXについて解くと、トレース値と付加データで元gと元gのフロベニウス共役元の拡大体表現を導出できる。6次の特性多項式を3つの2次式に分解して2次方程式を1回と3次方程式を1回解く。標数p=3より3次の解の公式は利用できないことに注意する。特性多項式を以下の数43のように分解する。
上記の方程式についてZ=−√{Tr(g)^5−Tr(g)^{2√3p^m+2}−Tr(g)^{3+√3p^m}}+Tr(g)^{3√3p^m}}/{Tr(g)^2Z’}−{Tr(g)^{√3p^m}+Tr(g)}/Tr(g)として変数変換を行って得られる次の数46の方程式も、正規基底において計算コストなしで解が得られる。また、その3つの解は互いに0を1に、1を2に、2を0に置き換えた形になっており、{0,1,2}で区別できる。
Xに関する上記の方程式の解はFp^{6m}の元であり、±で区別される。i1は0または1または2を取る。(i1,i2)∈{0,1,2}×{+,−}をTr(g)の付加データとする。元hと元hのフロベニウス共役元の拡大体表現についても同様である。
乗算値の取りうる値を根として持つ多項式=0をYについて解くと、乗算値の取りうる値を得ることができる。6次の上記多項式を3つの2次式に分解して2次方程式を1回と3次方程式を1回解く。標数p=3より3次の解の公式は利用できないことに注意する。上記多項式を次の数51〜数53のように分解する。
すなわち、乗算値の取りうる値を根として持つ多項式を3つの2次式に分解する場合、根を求めるためには、先にTr3/1[Tr6/3(g)Tr6/3(h)]とTr3/1[Tr6/3(g)Tr6/3(h)^{p^m}]とTr3/1[Tr6/3(g)Tr6/3(h)^{p^{2m}}]を求めなければならない。これらを解とする方程式は次の数55および数56のようになる。
Tr(h^{p^m+2})とTr(h^{2p^m+1})についても同様である。Wに関する3次方程式について変数変換を行って正規基底において計算コストなしで解が得られる形にする。Wの1次の係数をbと置いて、W=−√●/{Tr(g)^2Tr(h)^2W’}−b/{Tr(g)Tr(h)}と変換すると次の数58の方程式が得られる。また、その3つの解は互いに0を1に、1を2に、2を0に置き換えた形になっており、{0,1,2}で区別できる。
Tr3/1[Tr6/3(g)Tr6/3(h)]とTr3/1[Tr6/3(g)Tr6/3(h)^{p^m}]とTr3/1[Tr6/3(g)Tr6/3(h)^{p^{2m}}]の拡大体表現は次の数59のようになる。
従って上記の出力の式と、入力から計算される乗算の式と、を互いに等しいとして、入力である(i1,i2,j1,j2)から出力とする(k1,k2,l1,l2)を計算する。
このように、第1の実施形態にかかる演算装置では、例えば射影表現または拡大体表現への表現変換を行うことなく、トレース表現での演算を行うことができる。これにより、全体の計算量を削減可能となる。
(第2の実施形態)
第2の実施形態では、特性多項式の係数が全て決定している場合における乗算方法を示す。
第2の実施形態では、特性多項式の係数が全て決定している場合における乗算方法を示す。
図3は、第2の実施形態にかかる演算装置100−2の構成の一例を示すブロック図である。図3に示すように、演算装置100−2は、受付部101と、係数算出部102−2と、求解部103と、選択部104と、決定部105と、出力制御部106と、を備えている。
第2の実施形態では、係数算出部102−2の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる演算装置100のブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
係数算出部102−2は、予め求められた特性多項式の係数を用いて、乗算値の取りうる値を根として持つ多項式の係数を算出する点が、第1の実施形態の係数算出部102と異なっている。以下に本実施形態での係数の算出方法について説明する。
d2(g,h)は、例えばn=2のときd2(g,h)=a2(g)Tr(h^2)+Tr(g^2)a2(h)となる。n=3のときd2(g,h)=a2(g)Tr(h^2)+Tr(g^2)a2(h)+a2(g)a2(h)、n=4のときd2(g,h)=a2(g)Tr(h^2)+Tr(g^2)a2(h)+a2(g)a2(h)+2a2(g)+2a2(h)−12となる。ここでai(g)とdi(g,h)は以下の数66のように表わされている。di(h)も同様である。
従って、係数算出部102−2は、特性多項式の係数と特性多項式から得られるトレース値の漸化式を用いて、di(g,h)を、di(g)、di(h)、Tr(g^i)および、Tr(h^i)から計算することで、乗算値の取りうる値を根として持つ多項式の係数を計算する。
求解部103は、上記多項式の求根を行う。選択部104は、得られたn個の根から、元gに関する特性多項式の係数に対する付加データと元hに関する特性多項式の係数に対する付加データとを用いて乗算値を1つ選択する。また、決定部105が、元gに関する特性多項式の係数に対する付加データと元hに関する特性多項式の係数に対する付加データとを用いて、乗算値の付加データを決定する。
以上説明したとおり、第1から第2の実施形態によれば、表現変換をせずにトレース表現での演算を行うことができ、全体の計算量を削減することができる。
次に、第1または第2の実施形態にかかる演算装置のハードウェア構成について図4を用いて説明する。図4は、第1または第2の実施形態にかかる演算装置のハードウェア構成を示す説明図である。
第1または第2の実施形態にかかる演算装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
第1または第2の実施形態にかかる演算装置で実行される演算プログラムは、ROM52等に予め組み込まれて提供される。
第1または第2の実施形態にかかる演算装置で実行される演算プログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、第1または第2の実施形態にかかる演算装置で実行される演算プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1または第2の実施形態にかかる演算装置で実行される演算プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
第1または第2の実施形態にかかる演算装置で実行される演算プログラムは、コンピュータを上述した演算装置の各部(受付部、係数算出部、求解部、選択部、決定部、出力制御部)として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体から演算プログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100、100−2 演算装置
101 受付部
102、102−2 係数算出部
103 求解部
104 選択部
105 決定部
106 出力制御部
101 受付部
102、102−2 係数算出部
103 求解部
104 選択部
105 決定部
106 出力制御部
Claims (3)
- 有限体の乗法群の部分群の要素をトレース表現で表した複数の入力データと、前記入力データそれぞれの共役元を区別するための複数の第1付加データとを受付ける受付部と、
複数の前記入力データに対する予め定められた演算処理の演算結果の取りうる値を解とする方程式の係数を、複数の前記入力データに基づいて算出する係数算出部と、
算出された前記係数を有する方程式の複数の解を求める求解部と、
前記第1付加データに基づいて、複数の前記解から1の解を前記演算結果として選択する選択部と、
前記第1付加データに基づいて、選択された前記演算結果の共役元を区別するための第2付加データを決定する決定部と、
選択された前記演算結果と、前記第2付加データと、を出力する出力制御部と、
を備える演算装置。 - 前記係数算出部は、複数の前記入力データに対する特性多項式の係数と、複数の前記入力データとを用いて、前記方程式の係数を算出する、
請求項1に記載の演算装置。 - 前記第1付加データは、前記入力データと前記共役元との間の大きさの順序を表し、
前記選択部は、複数の前記解から、複数の前記第1付加データが表す順序の組み合わせに応じて定まる1の解を前記演算結果として選択する、
請求項1に記載の演算装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012059235A JP5554357B2 (ja) | 2012-03-15 | 2012-03-15 | 演算装置 |
US13/727,070 US9280518B2 (en) | 2012-03-15 | 2012-12-26 | Public key cryptography computing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012059235A JP5554357B2 (ja) | 2012-03-15 | 2012-03-15 | 演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013195453A true JP2013195453A (ja) | 2013-09-30 |
JP5554357B2 JP5554357B2 (ja) | 2014-07-23 |
Family
ID=49158682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012059235A Expired - Fee Related JP5554357B2 (ja) | 2012-03-15 | 2012-03-15 | 演算装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9280518B2 (ja) |
JP (1) | JP5554357B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5178810B2 (ja) * | 2010-12-09 | 2013-04-10 | 株式会社東芝 | 伸長装置および圧縮装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010049216A (ja) * | 2008-08-25 | 2010-03-04 | Toshiba Corp | 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム |
WO2011010383A1 (ja) * | 2009-07-23 | 2011-01-27 | 株式会社東芝 | 演算装置 |
WO2011030468A1 (ja) * | 2009-09-14 | 2011-03-17 | 株式会社東芝 | 演算装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995012845A1 (en) * | 1993-11-04 | 1995-05-11 | Cirrus Logic, Inc. | Finite field inversion |
US6389442B1 (en) * | 1997-12-30 | 2002-05-14 | Rsa Security Inc. | Efficient finite field multiplication in normal basis |
US5964826A (en) * | 1998-01-13 | 1999-10-12 | National Science Council | Division circuits based on power-sum circuit for finite field GF(2m) |
US7133889B2 (en) * | 2001-09-20 | 2006-11-07 | Stmicroelectronics, Inc. | Flexible galois field multiplier |
TWI406138B (zh) * | 2010-04-01 | 2013-08-21 | Ind Tech Res Inst | 循序運算的伽羅瓦乘法架構與方法 |
JP5178810B2 (ja) | 2010-12-09 | 2013-04-10 | 株式会社東芝 | 伸長装置および圧縮装置 |
-
2012
- 2012-03-15 JP JP2012059235A patent/JP5554357B2/ja not_active Expired - Fee Related
- 2012-12-26 US US13/727,070 patent/US9280518B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010049216A (ja) * | 2008-08-25 | 2010-03-04 | Toshiba Corp | 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム |
WO2011010383A1 (ja) * | 2009-07-23 | 2011-01-27 | 株式会社東芝 | 演算装置 |
WO2011030468A1 (ja) * | 2009-09-14 | 2011-03-17 | 株式会社東芝 | 演算装置 |
Non-Patent Citations (6)
Title |
---|
CSNG200500063010; 篠永 茂,藤井 吉弘,野上 保之,森川 良孝: '"XTRへの応用を目的とした拡大体F<SB>p6m</SB>の高速実装"' 電子情報通信学会技術研究報告 Vol.103,No.315, 20030912, p.81-88, 社団法人電子情報通信学会 * |
CSNJ201110015226; 米村 智子,磯谷 泰知,村谷 博文,花谷 嘉一: '"代数的トーラス上の暗号系〜圧縮率4および6を達成する圧縮伸長写像〜"' 2011年 暗号と情報セキュリティシンポジウム SCIS2011 [CD-ROM] 3C3 数論応用(1),3C3-1, 20110128, p.1-4, 電子情報通信学会情報セキュリティ研究専門委員会 * |
JPN6014017256; 米村 智子,磯谷 泰知,村谷 博文,花谷 嘉一: '"代数的トーラス上の暗号系〜圧縮率4および6を達成する圧縮伸長写像〜"' 2011年 暗号と情報セキュリティシンポジウム SCIS2011 [CD-ROM] 3C3 数論応用(1),3C3-1, 20110128, p.1-4, 電子情報通信学会情報セキュリティ研究専門委員会 * |
JPN6014017259; KORAY KARABINA: '"TORUS-BASED COMPRESSION BY FACTOR 4 AND 6"' Cryptology ePrint Archive: Report 2010/525 Version: 20101020:144304, 20101020, p.1-20, [online] * |
JPN6014017262; Tomoko Yonemura, Taichi Isogai, Hirofumi Muratani, and Yoshikazu Hanatani: '"Factor-4 and 6 (De)compression for Values of Pairings using Trace Maps"' Cryptology ePrint Archive: Report 2012/593 Version: 20121025:123940, 20121025, p.1-19, [online] * |
JPN6014017265; 篠永 茂,藤井 吉弘,野上 保之,森川 良孝: '"XTRへの応用を目的とした拡大体F<SB>p6m</SB>の高速実装"' 電子情報通信学会技術研究報告 Vol.103,No.315, 20030912, p.81-88, 社団法人電子情報通信学会 * |
Also Published As
Publication number | Publication date |
---|---|
US20130246489A1 (en) | 2013-09-19 |
JP5554357B2 (ja) | 2014-07-23 |
US9280518B2 (en) | 2016-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10003460B2 (en) | Secret quotient transfer device, secret bit decomposition device, secret modulus conversion device, secret quotient transfer method, secret bit decomposition method, secret modulus conversion method, and programs therefor | |
EP3296981A1 (en) | Secret sharing method, secret sharing system, sharing device, and program | |
EP3096309B1 (en) | Secret calculation method, secret calculation system, sorting device, and program | |
JP6629466B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム | |
CN108923907B (zh) | 一种基于模容错学习问题的同态内积方法 | |
JP6044738B2 (ja) | 情報処理装置、プログラム及び記憶媒体 | |
JP5852518B2 (ja) | 認証暗号化装置、認証復号装置、およびプログラム | |
Yao et al. | Novel RNS parameter selection for fast modular multiplication | |
JPWO2006030496A1 (ja) | 楕円曲線暗号演算装置、楕円曲線を用いた演算装置の演算方法および楕円曲線上の点のスカラー倍演算をコンピュータに実行させるプログラム | |
EP3297171A1 (en) | Decoding device, decoding method, and program | |
JP5554357B2 (ja) | 演算装置 | |
JP2009169171A (ja) | 楕円曲線の点圧縮装置、楕円曲線の点展開装置、それらの方法及びプログラム | |
US10505710B2 (en) | Electronic calculating device | |
JP5289571B2 (ja) | 演算装置 | |
JP5858938B2 (ja) | 計算装置、計算システム、計算方法 | |
KR100954843B1 (ko) | 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체 | |
WO2011030468A1 (ja) | 演算装置 | |
JP3959076B2 (ja) | 有限体の二乗演算方法及び二乗演算装置 | |
CN109952558B (zh) | 用于将余数系统表示转换为基数表示的电子计算装置 | |
JP4629972B2 (ja) | ベクトル演算装置及び分割値演算装置及び楕円曲線スカラー倍演算装置及び楕円暗号演算装置及びベクトル演算方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
US20140337403A1 (en) | Computing device, computing method, and computer program product | |
JP3768888B2 (ja) | 離散対数検証方法、この方法を実施する装置、プログラムおよびプログラムを記憶した記憶媒体 | |
US8363825B1 (en) | Device for and method of collision-free hashing for near-match inputs | |
Repka | Note on Modular Reduction in Extended Finite Fields and Polynomial Rings for Simple Hardware | |
JP2009058712A (ja) | 楕円曲線暗号演算装置、方法、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140421 |
|
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: 20140430 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140528 |
|
LAPS | Cancellation because of no payment of annual fees |