JP6614979B2 - 暗号装置、暗号方法及び暗号プログラム - Google Patents

暗号装置、暗号方法及び暗号プログラム Download PDF

Info

Publication number
JP6614979B2
JP6614979B2 JP2016006317A JP2016006317A JP6614979B2 JP 6614979 B2 JP6614979 B2 JP 6614979B2 JP 2016006317 A JP2016006317 A JP 2016006317A JP 2016006317 A JP2016006317 A JP 2016006317A JP 6614979 B2 JP6614979 B2 JP 6614979B2
Authority
JP
Japan
Prior art keywords
curve
coordinate
vertex
calculation unit
output value
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.)
Active
Application number
JP2016006317A
Other languages
English (en)
Other versions
JP2017126024A (ja
Inventor
克幸 高島
剛 ▲高▼木
ひかり 立花
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.)
Kyushu University NUC
Mitsubishi Electric Corp
Original Assignee
Kyushu University NUC
Mitsubishi Electric Corp
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 Kyushu University NUC, Mitsubishi Electric Corp filed Critical Kyushu University NUC
Priority to JP2016006317A priority Critical patent/JP6614979B2/ja
Publication of JP2017126024A publication Critical patent/JP2017126024A/ja
Application granted granted Critical
Publication of JP6614979B2 publication Critical patent/JP6614979B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、耐量子計算機暗号に関する。
耐量子計算機暗号の1つとして、楕円曲線上の同種写像を利用した暗号がJaoらにより提案された(非特許文献1〜3)。同種写像には、パラメータLがあり、これまでYoshidaらによって、L=2の場合の高速化手法が提案されていた(非特許文献4)。
L.De Feo, D. Jao and J. Plut, "Towards quantum−resistant cryptosystems from supersingular elliptic curve isogenies", J. Math. Cryptology, 8(1), pp.1-29, 2014 D.Jao and R.Venkatesan, "Use of isogenies for design of cryptosystems", US Patent, 7499544, March 3, 2009 D.Jao, P.L. Montgomery, R.Venkatesan and V.Boyko, "Systems and methods for generation and validation of isogeny−based signatures", US Patent, 7617397, November 10, 2009 R. Yoshida and K. Takashima, "Computing a sequence of 2−isogenies on supersingular elliptic curves", IEICE Transactions on Fundamentals, 96−A(1): pp.158−165, 2013 D.X.Charles, E.Z. Goren and K.E. Lauter, "Cryptographic hash functions from expander graphs", J. Cryptology, vol.22, No.1 pp.93−113. J. Velu,"Isogenies entre courbes elliptiques",C.R. Acad. Sc. Paris, Series A, vol. 273, pp.238−241,1971.
Jaoらの暗号では、L=3の場合の演算も使っているが、この演算は遅かった。
この発明は、L≧3の場合における同種写像の計算効率を向上させ、L≧3の同種写像を利用した暗号の計算効率を向上させることを目的とする。
この発明に係る暗号装置は、
超特異楕円曲線の同型類を頂点集合とし、前記楕円曲線間のL≧3であるL−同種写像を辺の集合とするグラフにおいて、後戻りすることなく頂点間を移動させて出力値を計算する暗号装置であり、
移動元の頂点Eのx座標α を入力として、移動先の頂点Ei+1に対する後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して前記後戻り点のx座標β i+1を計算した上で、3次方程式を解いて移動先の頂点Ei+1のx座標α i+1を計算することにより、前記移動先の頂点Ei+1である楕円曲線の曲線情報を計算する曲線計算部と、
前記曲線計算部によって計算された前記曲線情報を用いて前記出力値を計算する出力値計算部と
を備える。
この発明では、後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して後戻り点のx座標β i+1を計算した上で、3次方程式を解く。これにより、後戻り点のx座標β i+1を少ない計算量で計算でき、同種写像の計算効率を向上させることができる。
実施の形態1に係る暗号装置10の構成図。 実施の形態1に係るグラフG及びウォークの説明図。 実施の形態1に係る3−同種写像列計算処理のフローチャート。 実施の形態1に係るIsogSeqアルゴリズムを示す図。 実施の形態1に係る3−同種写像計算処理のフローチャート。 実施の形態1に係るIsogアルゴリズムを示す図。 変形例に係る暗号装置10の構成図。
実施の形態1.
***前提***
実施の形態1における暗号には、情報を第三者から秘匿する狭義の暗号だけでなく、情報の送信元のなりすまし、情報の改ざんの防止に用いられる署名も含む。また、実施の形態1における暗号には、狭義の暗号及び署名といった処理で用いられるハッシュ値を計算することも含む。
実施の形態1では、暗号の処理の具体例として、ハッシュ値を計算する処理を説明する。しかし、実施の形態1で説明した処理を応用して、非特許文献1〜3といった文献に記載された鍵共有、狭義の暗号、署名を実現することも可能である。
***構成の説明***
図1を参照して、実施の形態1に係る暗号装置10の構成を説明する。
暗号装置10は、暗号処理を実行するコンピュータである。
暗号装置10は、プロセッサ11と、記憶装置12と、インタフェース13とを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
プロセッサ11は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11は、具体的には、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
記憶装置12は、メモリ121と、ストレージ122とを備える。メモリ121は、具体的には、RAM(Random Access Memory)である。ストレージ122は、具体的には、HDD(Hard Disk Drive)である。また、ストレージ122は、SD(Secure Digital)メモリカード、CF(CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。
インタフェース13は、暗号装置10の外部からデータの入力を受け付け、外部へデータを出力するためのインタフェースである。インタフェース13は、具体的には、キーボードといった入力装置と、ディスプレイといった出力装置とを接続するUSB(Universal Serial Bus)、PS/2、HDIM(High−Definition Multimedia Interface)といったコネクタである。また、インタフェース13は、具体的には、外部からネットワークを介して送信されたデータを送受信するNIC(Network Interface Card)であってもよい。
暗号装置10は、機能構成要素として、受付部21と、曲線計算部22と、出力値計算部23とを備える。受付部21と、曲線計算部22と、出力値計算部23との各部の機能はソフトウェアにより実現される。
記憶装置12のストレージ122には、暗号装置10の各部の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ11によりメモリ121に読み込まれ、プロセッサ11によって実行される。これにより、暗号装置10の各部の機能が実現される。
プロセッサ11によって実現される各部の機能の処理の結果を示す情報とデータと信号値と変数値は、メモリ121、又は、プロセッサ11内のレジスタ又はキャッシュメモリに記憶される。以下の説明では、プロセッサ11によって実現される各部の機能の処理の結果を示す情報とデータと信号値と変数値は、メモリ121に記憶されるものとして説明する。
プロセッサ11によって実現される各機能を実現するプログラムは、記憶装置12に記憶されているとした。しかし、このプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体に記憶されてもよい。
図1では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。
***動作の説明***
図2から図6を参照して、実施の形態1に係る暗号装置10の動作を説明する。
実施の形態1に係る暗号装置10の動作は、実施の形態1に係る暗号方法に相当する。また、実施の形態1に係る暗号装置10の動作は、実施の形態1に係る暗号プログラムの処理に相当する。
ここでは、(1)Pizerグラフとハッシュ関数と、(2)楕円曲線上の同種写像とを説明した上で、(3)暗号装置10の動作を説明する。
**(1)Pizerグラフとハッシュ関数**
ここでは、(1−1)エクスパンダーグラフと、(1−2)Pizerグラフと、(1−3)後戻りしないウォークと、(1−4)ハッシュ関数の安全性とについて説明する。
*(1−1)エクスパンダーグラフ*
G=(V,ε)を頂点集合Vと辺集合εとをもつグラフとする。#U≧#V/2を満たす任意の部分集合U⊂Vに対し、Uの境界集合Γ(U)が#Γ(U)≧c#Uをみたすとき、グラフGは拡張率c>0のエクスパンダーグラフと言われる。ここで、Γ(U):={v∈V|∃u∈U,{u,v}∈ε}である。また、#Uは、Uの個数である。同様に、#V及び#Γは、それぞれVの個数及びΓの個数である。
任意のエクスパンダーグラフは、完全グラフである。エクスパンダーグラフ上のランダムウォークは、急撹拌性を持つ。O(log#V)ステップのランダムウォークをした後の終点の分布は、グラフ上の一様分布に近似する。
*(1−2)Pizerグラフ*
PizerグラフG=(V,ε)は、体Fp2上の超特異楕円曲線の同型類を頂点集合Vに持つ。p2は、pのことであり、pは素数位数である。各頂点は、j−不変量又は代表元Eで表される。また、辺集合εは、頂点間のL−同種写像の集合である。このグラフは、各頂点がL+1個の辺を持つ。頂点を楕円曲線Eで表すとき、頂点である楕円曲線Eから出る辺は、頂点である楕円曲線EのL+1個のL等分点と対応している。頂点である楕円曲線Eから出るL+1個の各辺の端点について、頂点である楕円曲線Eと異なる点は位数Lの部分群C⊂E[L]を用いてE/Cで表される。
グラフGは、急撹拌性を持つことが知られている。特に、これはエクスパンダーグラフの特別な種類であるラマヌジャングラフと呼ばれる。詳細は、非特許文献5等に記載されている。
*(1−3)後戻りしないウォーク*
ハッシュ関数への入力値は、グラフGを後戻りせずにウォークする道順として使用される。そして、そのウォークの終点がハッシュ関数の出力値とされる。グラフGは(L+1)−正則グラフなので、各頂点に接続している辺の数はL+1である。したがって、始点を除いた各点では、次に進む頂点の候補が後戻りとなる頂点を除いたL個存在する。
*(1−4)ハッシュ関数の安全性*
エクスパンダーグラフを用いたハッシュ関数には、Cayleyグラフを用いる場合とPizerグラフを用いる場合との2種類がある。Cayleyグラフを用いたハッシュ関数には、Zemorハッシュ関数とLPSハッシュ関数と等があるが、そのほとんどはすでに攻撃法が見つかっており安全ではない。しかし、Pizerグラフを用いたハッシュ関数には、まだ攻撃法が見つかっていない。
ハッシュ関数の安全性は、衝突困難性と原像計算困難性という2つの性質によって保障される。衝突困難性とは、同じハッシュ値をもつ2つの異なる入力を探すことが困難なことである。原像計算困難性とは与えられたハッシュ値を持つような入力を探すことが困難なことである。
Pizerグラフにおけるハッシュ関数の安全性は次の3つの問題の困難性により保障される。
問題1.体Fp2上の超特異楕円曲線E1,E2と、その間の次数Lの異なる同種写像f1:E1→E2,f2:E1→E2を構成する。
問題2.体Fp2上の超特異楕円曲線Eが与えられたとき、次数L2nの自己準同型写像f:E→E(fはL倍写像でない)を構成する。
問題3.体Fp2上の超特異楕円曲線E1,E2が与えられたとき、次数Lの同種写像f:E1→E2を構成する。
ハッシュ関数の衝突を計算できれば問題1,問題2は解かれる。また、ハッシュ関数の原像計算ができれば問題3は解かれる。
同種写像問題は、楕円曲線間の同種写像問題、超特異楕円曲線間の同種写像問題に分類される。現在知られている最も効率的な攻撃の計算量は、古典計算機を用いた場合は、それぞれO(√p)、O(√p)であり、量子計算機を用いた場合は、それぞれL[1/2,(√3)/2]、O(√p)である。
**(2)楕円曲線上の同種写像**
ここでは、(2−1)楕円曲線と、(2−2)Veluの公式とについて説明する。
*(2−1)楕円曲線*
pを3より大きい素数とする。体Fp2上の楕円曲線Eは、Weierstrass標準形としてy=x+Ax+B,A,B∈Fp2,4A+27B≠0で与えられる。楕円曲線Eのj−不変量j(E)は、数11で計算される。
Figure 0006614979
j−不変量j(E)=j∈F (j≠0,1728)となる楕円曲線Eは、数12となる
Figure 0006614979
2つの楕円曲線が同じj−不変量をもつことは、それらが同型であることの必要十分条件である。楕円曲線EのF 有理点群をE(F )={(x,y)∈F |y=x+Ax+B}∪{O}とする。ここで、Oは、楕円曲線Eの無限遠点を表す。整数nに対し、楕円曲線Eのn等分点の集合はE[n]={P∈E(F )|[n]P=O}である。F 上の2つの楕円曲線E1,E2に対し、準同型φ:E1→E2はOE1をOE2へ移す代数曲線の射である。非零な準同型は同種写像と呼ばれ、核の濃度がLとなるseparableな同種写像はL−同種写像と呼ばれる。E(F )上に位数pの点が存在しないようなF 上の楕円曲線を超特異であるという。超特異楕円曲線のj−不変量は常にFp2に含まれる。
*(2−2)Veluの公式*
2−同種写像と3−同種写像とのVeluの公式(非特許文献6)を用いた計算について説明する。Veluの公式とは、楕円曲線EとC=kerφが与えられたとき、同種写像φ:E→E’とE’との定義式を明示的に計算する公式である。この公式は任意の次数Lについて成立する。
ここでは、Lが2又は3のときを説明する。Cを楕円曲線E上の位数2又は3の部分群とする。このとき、C=kerφとなる同種写像φ:E→E’が一意に存在する。E’=E/Cと表す。
L=2の場合、C=<(α,0)>⊂E[2]を楕円曲線E上の位数2の部分群とすると、楕円曲線E/Cは数13で与えられる。
Figure 0006614979
さらに、同種写像φ:E→E/Cは、数14で与えられる。ここで、φ(O)=OE/C,φ((α,0))=OE/Cである。
Figure 0006614979
L=3の場合、C=<(α,α)>⊂E[3]を楕円曲線E上の位数3の部分群とすると、楕円曲線E/Cは数15で与えられる。
Figure 0006614979
さらに、同種写像φ:E∋(x,y)→(X,Y)∈E/Cは、数16で与えられる。ここで、φ(O)=OE/C,φ((α,α))=OE/Cである。
Figure 0006614979
L=2,3の両方において、楕円曲線Eが超特異であればE/CもまたFp2上定義される。また、明らかに超特異楕円曲線Eに対し同種写像φもFp2上で定義される。
**(3)暗号装置10の動作**
暗号装置10は、ハッシュ関数への入力値を、グラフGを後戻りせずにウォークする道順として使用し、そのウォークの終点をハッシュ関数の出力値とする。実施の形態1では、L=3の場合について説明する。つまり、実施の形態1では、グラフGにおいて、頂点である楕円曲線Eから出る辺が、頂点である楕円曲線Eの4個の3等分点と対応している場合について説明する。
なお、以下の説明で、グラフGとは、(1−2)で説明した、体Fp2上の超特異楕円曲線の同型類を頂点集合Vとし、頂点間のL−同種写像を辺集合εとしたPizerのラマヌジャングラフである。
ここでは、(3−1)入力値に従いグラフGをウォークする際に使用するセレクター関数を定義し、(3−2)3等分点に関する記法と、(3−3)3等分点について成り立つ性質とを説明する。そして、(3−1)から(3−3)を踏まえた上で、(3−4)3−同種写像列の計算法を説明する。
実施の形態1に係る暗号装置10は、3−同種写像列を計算することにより、入力値に対応するハッシュ値を計算する。
*(3−1)セレクター関数*
上述した通り、グラフGは(L+1)−正則グラフなので、各頂点に接続している辺の数はL+1である。そのため、図2に示すように、L=3の場合、グラフGは4−正則グラフなので、各頂点に接続している辺の数は4本である。したがって、始点Eを除いた各点E(i=1,...,n−1)では、次に進む頂点の候補が後戻りとなる後戻り点を除いた3個存在する。
暗号装置10は、i=1,...,n−1の各整数についての頂点Eから次に進む候補となる3つの頂点と接続された3つの辺に対して、値b∈{0,1,2}を割り当てる。そして、暗号装置10は、次に進む候補となる3つの頂点λ,λ,λ∈Fp2と、値b∈{0,1,2}に対して、Fp2の順序を用いて、数17のようにセレクター関数select(3)を定義し、ウォークデータω=b...bn−1∈{0,1,2}及びセレクター関数select(3)により次に進む移動先の頂点Ei+1を決定する。ここで、Fp2の順序としては、Fp2=F[τ]=Fτ+F=〜(Fとなる生成元τを固定し、(Fでの自然な辞書式順列を用いる。
Figure 0006614979
始点Eでは、3等分点を任意に選ぶことができる。そのため、暗号装置10は、数18に示すセレクター関数select (3)を用いて、始点Eのx座標α と、始点Eの後戻り点のx座標β とを決定する。なお、ψ(x)=3x+6A+12Bx−A =0の4つの根をλ,λ,λ,λ∈Fp2(λ≦λ≦λ≦λ)とする。
Figure 0006614979
*(3−2)3等分点に関する記法*
ウォークデータω=b...bn−1∈{0,1,2}に対応して、頂点E上の4つの3等分点の表記を次のように固定する。
(α ,α )は、i番目の同種写像φに関係のある点である。(β ,β )は、i番目の後戻り点である。(γ ,γ )及び(δ ,δ )は、残りの2点である。
*(3−3)3等分点について成り立つ性質*
(性質1)
(α ,α ),(β ,β ),(γ ,γ ),(δ ,δ )を楕円曲線Eの3等分点とし、φ:E→E/CをC=<(α ,α )>としたときの3−同種写像とする。このとき、φ(β ,β ),φ(γ ,γ ),φ(δ ,δ )は、Ei+1の後戻り点である。
(性質2)
i+1上の後戻り点のx座標β i+1は、β i+1=−3α により与えられる。
*(3−4)3−同種写像列計算処理*
図3及び図4を参照して、3−同種写像列計算処理を説明する。
図4に示すIsogSeqアルゴリズムによって3−同種写像列が計算される。
ステップS1の入力値受付処理(図4のInput参照)では、受付部21は、入力値及び始点Eのj不変量jを受け付ける。受付部21は、受け付けられた入力値を、ウォークデータω=b...bn−1(b∈{0,1,2},i=0,...,n−1)に変換する。
具体的には、受付部21は、インタフェース13を介して、外部から入力値を受け付ける。具体例としては、ユーザにより入力装置が操作されて入力された入力値を、受付部21がインタフェース13を介して受け付ける、あるいは、通信装置を介して送信された入力値を受付部21がインタフェース13を介して受け付ける。また、受付部21は、初期の楕円曲線Eのj不変量jをメモリ121から読み出す。なお、始点Eのj不変量jは、入力値とともに外部から受け付けられるとしてもよい。
そして、受付部21は、入力値を3進数で表すことにより、入力値をウォークデータωに変換する。受付部21は、3進数で表された入力値の桁数をnとして、3進数で表された入力値の上位の桁から、その桁の値を値b,値b,...,値bn−1と順に割り当てる。受付部21は、入力値が基準値以上の値になるように、入力値を表すビット列に固定のビット列を追加した上で、3進数に変換してもよい。
ステップS2の初期処理(図4の(1)参照)では、曲線計算部22は、ステップS1で受け付けられた始点Eのj不変量jを入力として、始点Eである楕円曲線y=x+Ax+Bにおける曲線情報A及びBを、数12に基づき計算する。曲線情報A及びBを計算するということは、楕円曲線Eを計算するということに相当する。
また、曲線計算部22は、計算された曲線情報A及びBと、ステップS1で入力値から変換されたウォークデータωに含まれる値bとを入力として、数18に示すセレクター関数select (3)により、始点Eのx座標α と、始点Eの後戻り点のx座標β とを決定する。
曲線計算部22は、計算されたA及びBと、始点Eのx座標α と、始点Eの後戻り点のx座標β とをメモリ121に書き込む。
ステップS3の3−同種写像計算処理(図4の(2)〜(4)参照)では、曲線計算部22は、i=0,...,n−2の整数iについて昇順に、移動先の頂点Ei+1である楕円曲線y=x+Ai+1x+Bi+1における曲線情報Ai+1及びBi+1を計算するとともに、移動先の頂点Ei+1のx座標α i+1を決定する。
図5及び図6を参照して、ステップS3の3−同種写像計算処理について説明する。
ステップS3では、i=0,...,n−2の整数iについて昇順に、A及びBと、移動元の頂点Eのx座標α と、値bi+1とを入力として、図6に示すIsogアルゴリズムが呼び出され、Ai+1及びBi+1と、移動先の頂点Ei+1のx座標α i+1とが計算される。
ステップS31の曲線計算処理(図6の(1)参照)では、曲線計算部22は、移動元の頂点Eである楕円曲線の曲線情報A及びBと、移動元の頂点Eのx座標α とから、数15に基づき、移動先の頂点Ei+1である楕円曲線の曲線情報Ai+1及びBi+1を計算する。
具体的には、曲線計算部22は、曲線情報A及びBと、移動元の頂点Eのx座標α とをメモリ121から読み出す。そして、曲線計算部22は、読み出された曲線情報A及びBと、移動元の頂点Eのx座標α とを入力として、数15から得られる数19により、曲線情報Ai+1及びBi+1を計算する。曲線計算部22は、計算された曲線情報Ai+1及びBi+1をメモリ121に書き込む。
Figure 0006614979
ステップS32の3次方程式計算処理(図6の(2)参照)では、曲線計算部22は、移動先の頂点Ei+1のx座標α i+1の候補となる3次方程式の解λ,λ,λを計算する。
具体的には、曲線計算部22は、A及びBと、移動元の頂点Eのx座標α とをメモリ121から読み出す。
そして、まず、曲線計算部22は、読み出されたx座標α を入力として、(3−3)3等分点について成り立つ性質で説明した性質1,2に従い、移動先の頂点Ei+1上の後戻り点のx座標β i+1を、β i+1=−3α により計算する。
次に、曲線計算部22は、3次方程式x+ux+vx+w=0を解いて、(β i+1,β i+1)以外の3等分点のx座標を計算する。ここで、u=β i+1であり、v=2Ai+1+(β i+1であり、ω=4Bi+1+2Ai+1β i+1+(β i+1である。
この際、曲線計算部22は、カルダノの公式を用いて3次方程式を解く。つまり、x+x+1=0の解を、ωとする。そして、数20に示すt,t,tに対して数20に示すu,vとすると、求める解は、数21になる。
Figure 0006614979
Figure 0006614979
これに対して、曲線計算部22は、数15と、β i+1=−3α とを代入する。そして、曲線計算部22は、ζを1の3乗根とした場合に、3次方程式の2つの3乗根u,vがv=−ζ/uとなることを利用して、3次方程式を解く。数22に示すζ,ζ,ζに対して数22に示すu,vとすると、解λ,λ,λは数23になる。
Figure 0006614979
Figure 0006614979
ステップS33の座標決定処理(図6の(3)参照)では、曲線計算部22は、計算された解λ,λ,λと、ステップS1で入力値から変換されたウォークデータωに含まれる値bi+1とを入力として、数17に示すセレクター関数select(3)により、移動先の頂点Ei+1のx座標α i+1を決定する。曲線計算部22は、決定されたx座標α i+1をメモリ121に書き込む。
ステップS4の終了処理(図4の(5)参照)では、曲線計算部22は、ステップS3で決定された頂点En−1のx座標α n−1から、移動先の頂点Eである楕円曲線y=x+Ax+Bにおける曲線情報A及びBを、数15に基づき計算する。
具体的には、曲線計算部22は、曲線情報An−1及びBn−1と、移動元の頂点En−1のx座標α n−1とをメモリ121から読み出す。そして、曲線計算部22は、読み出された曲線情報An−1及びBn−1と、移動元の頂点En−1のx座標α n−1とを入力として、数15から得られる数24により、曲線情報A及びBを計算する。曲線計算部22は、計算された曲線情報A及びBをメモリ121に書き込む。
Figure 0006614979
ステップS5の出力値計算処理(図4のOutput参照)では、出力値計算部23は、ステップS4で計算された曲線情報A及びBをメモリ121から読み出す。そして、出力値計算部23は、頂点Eである楕円曲線のj不変量jを数11に基づき計算する。出力値計算部23は、計算されたj不変量jを、ステップS1で受け付けられた入力値に対するハッシュ値として出力する。
***実施の形態1の効果***
以上のように、実施の形態1に係る暗号装置10は、3−同種写像列を計算することにより、入力値に対するハッシュ値を計算した。3−同種写像列を計算する際、暗号装置10は、移動先の頂点Ei+1に対する後戻り点のx座標β i+1が、移動元の頂点Eのx座標α のみを変数として表したβ i+1=−3α を用いて、後戻り点のx座標β i+1を計算した。これにより、後戻り点のx座標β i+1の計算量を少なくできる。その結果、同種写像の計算効率を向上させることができる。
また、実施の形態1に係る暗号装置10は、3−同種写像列を計算する際、一般の多項式解法アルゴリズムではなく、カルダノの公式を用いて3次方程式を解いた。これにより、3次方程式の計算量を少なくできる。その結果、同種写像の計算効率を向上させることができる。
また、実施の形態1に係る暗号装置10は、3−同種写像列を計算する際、ζを1の3乗根とした場合に、3次方程式の2つの3乗根u,vがv=−ζ/uとなることを利用して、3次方程式を解いた。これにより、3乗根の計算を1回減らすことができ、3次方程式の計算量を少なくできる。その結果、同種写像の計算効率を向上させることができる。
***他の構成***
実施の形態1では、暗号処理の具体例として、ハッシュ値を計算する処理を説明した。そのため、出力値計算部23は、出力値として、ハッシュ値を計算した。
しかし、実施の形態1で説明した処理を応用して、非特許文献1〜3といった文献に記載された鍵共有、狭義の暗号、署名を実現することも可能である。鍵共有及び狭義の暗号を実現する場合、出力値計算部23は、出力値として、暗号文を計算する。また、署名を実現する場合、出力値計算部23は、出力値として、電子署名を計算する。
つまり、出力値計算部23は、出力値として、ハッシュ値と、暗号文と、署名との少なくともいずれかを計算する。
また、実施の形態1では、L=3の場合について説明した。しかし、L>3の場合についても、同様に、移動先の頂点Ei+1に対する後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して後戻り点のx座標β i+1を計算することにより、後戻り点のx座標β i+1の計算量を少なくできる。その結果、同種写像の計算効率を向上させることができる。
実施の形態1では、暗号装置10の各部の機能がソフトウェアで実現された。しかし、変形例として、暗号装置10の各部の機能はハードウェアで実現されてもよい。この変形例について、実施の形態1と異なる点を説明する。
図7を参照して、変形例に係る暗号装置10の構成を説明する。
各部の機能がハードウェアで実現される場合、暗号装置10は、プロセッサ11と記憶装置12とに代えて、処理回路14を備える。処理回路14は、暗号装置10の各部の機能及び記憶装置12の機能を実現する専用の電子回路である。
処理回路14は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
各部の機能を1つの処理回路14で実現してもよいし、各部の機能を複数の処理回路14に分散させて実現してもよい。
また、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、暗号装置10の各部のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
プロセッサ11と記憶装置12と処理回路14とを、総称して「プロセッシングサーキットリー」という。つまり、各部の機能は、プロセッシングサーキットリーにより実現される。
10 暗号装置、11 プロセッサ、12 記憶装置、121 メモリ、122 ストレージ、13 インタフェース、14 処理回路、21 受付部、22 曲線計算部、23 出力値計算部。

Claims (12)

  1. 楕円曲線の同型類を頂点集合とし、前記楕円曲線間のL≧3であるL−同種写像を辺集合とするグラフにおいて、入力値に基づき後戻りすることなく頂点間を移動させて出力値を計算する暗号装置であり、
    移動元の頂点Eのx座標α を入力として、移動先の頂点Ei+1に対する後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して前記後戻り点のx座標β i+1を計算した上で、3次方程式を解いて移動先の頂点Ei+1のx座標α i+1を計算することにより、前記移動先の頂点Ei+1である楕円曲線の曲線情報を計算する曲線計算部と、
    前記曲線計算部によって計算された前記曲線情報を用いて前記入力値に対する前記出力値を計算する出力値計算部と
    を備える暗号装置。
  2. 前記グラフは、楕円曲線間の3−同種写像を辺集合とし、
    前記曲線計算部は、前記x座標β i+1が前記x座標α の−3倍であることを利用して後戻り点のx座標β i+1を計算する
    請求項1に記載の暗号装置。
  3. 前記曲線計算部は、カルダノの公式を用いて前記3次方程式を解く
    請求項2に記載の暗号装置。
  4. 前記曲線計算部は、ζを1の3乗根とした場合に、3次方程式の2つの3乗根u,vがv=−ζ/uとなることを利用して前記3次方程式を解く
    請求項3に記載の暗号装置。
  5. 前記曲線計算部は、前記移動元の頂点Eである楕円曲線y=x+Ax+BのA及びBと、前記移動元の頂点Eのx座標α とを入力として、前記3次方程式を数1に示すように解いて、解λ,λ,λを計算し、前記解λ,λ,λから1つの解を選択して、選択された前記解を前記移動先の頂点Ei+1のx座標α i+1として決定する
    請求項4に記載の暗号装置。
    Figure 0006614979
  6. 前記曲線計算部は、前記移動元の頂点Eである楕円曲線y=x+Ax+BのA及びBと、前記x座標α とを入力として、前記移動先の頂点Ei+1である楕円曲線y=x+Ai+1x+Bi+1における曲線情報Ai+1及びBi+1を数2に示すように計算する
    請求項5に記載の暗号装置。
    Figure 0006614979
  7. 前記曲線計算部は、始点Eである楕円曲線y=x+Ax+Bにおける曲線情報A及びBと、始点Eのx座標α と、ウォークデータω=b...bn−1とを入力として、k=0,...,n−2の整数kについて昇順に、前記移動先の頂点Ek+1である楕円曲線y=x+Ak+1x+Bk+1における曲線情報Ak+1及びBk+1を計算するとともに、前記移動先の頂点Ek+1のx座標α k+1を決定し、決定されたx座標α n−1から前記移動先の頂点Eである楕円曲線y=x+Ax+Bにおける曲線情報A及びBを計算し、
    前記出力値計算部は、前記曲線計算部によって計算された前記曲線情報A及びBから、前記移動先の頂点Eである楕円曲線のj不変量jを前記出力値として計算する
    請求項6に記載の暗号装置。
  8. 前記出力値計算部は、前記j不変量jを前記ウォークデータωに対するハッシュ値として計算する
    請求項7に記載の暗号装置。
  9. 前記グラフは、複数の整数LについてのL−同種写像を辺集合とし、
    前記曲線計算部は、3−同種写像の辺の移動を計算する場合に、前記x座標β i+1が前記x座標α の−3倍であることを利用して、3次方程式を解く
    請求項1に記載の暗号装置。
  10. 前記出力値計算部は、前記出力値として、ハッシュ値と、暗号文と、署名との少なくともいずれかを計算する
    請求項1から9までのいずれか1項に記載の暗号装置。
  11. 楕円曲線の同型類を頂点集合とし、前記楕円曲線間のL≧3であるL−同種写像を辺集合とするグラフにおいて、入力値に基づき後戻りすることなく頂点間を移動させて出力値を計算する暗号方法であり、
    暗号装置における曲線計算部が、移動元の頂点Eのx座標α を入力として、移動先の頂点Ei+1に対する後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して前記後戻り点のx座標β i+1を計算した上で、3次方程式を解いて移動先の頂点Ei+1のx座標α i+1を計算することにより、前記移動先の頂点Ei+1である楕円曲線の曲線情報を計算し、
    前記暗号装置における出力値計算部が、計算された前記曲線情報を用いて前記入力値に対する前記出力値を計算する暗号方法。
  12. 楕円曲線の同型類を頂点集合とし、前記楕円曲線間のL≧3であるL−同種写像を辺集合とするグラフにおいて、入力値に基づき後戻りすることなく頂点間を移動させて出力値を計算する暗号プログラムであり、
    曲線計算部が、移動元の頂点Eのx座標α を入力として、移動先の頂点Ei+1に対する後戻り点のx座標β i+1を移動元の頂点Eのx座標で表した式を利用して前記後戻り点のx座標β i+1を計算した上で、3次方程式を解いて移動先の頂点Ei+1のx座標α i+1を計算することにより、前記移動先の頂点Ei+1である楕円曲線の曲線情報を計算する曲線計算処理と、
    出力値計算部が、前記曲線計算処理によって計算された前記曲線情報を用いて前記入力値に対する前記出力値を計算する出力値計算処理と
    行う暗号装置としてコンピュータを機能させる暗号プログラム。
JP2016006317A 2016-01-15 2016-01-15 暗号装置、暗号方法及び暗号プログラム Active JP6614979B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016006317A JP6614979B2 (ja) 2016-01-15 2016-01-15 暗号装置、暗号方法及び暗号プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016006317A JP6614979B2 (ja) 2016-01-15 2016-01-15 暗号装置、暗号方法及び暗号プログラム

Publications (2)

Publication Number Publication Date
JP2017126024A JP2017126024A (ja) 2017-07-20
JP6614979B2 true JP6614979B2 (ja) 2019-12-04

Family

ID=59365590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016006317A Active JP6614979B2 (ja) 2016-01-15 2016-01-15 暗号装置、暗号方法及び暗号プログラム

Country Status (1)

Country Link
JP (1) JP6614979B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2821849B2 (ja) * 1993-12-29 1998-11-05 シャープ株式会社 高次方程式の求根装置
JP4225764B2 (ja) * 2001-10-25 2009-02-18 パナソニック株式会社 楕円曲線変換装置、楕円曲線変換方法、楕円曲線利用装置及び楕円曲線生成装置
JP4316246B2 (ja) * 2003-01-23 2009-08-19 三菱電機株式会社 楕円暗号安全性強度評価方法及び楕円暗号安全性強度評価装置及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US7499544B2 (en) * 2003-11-03 2009-03-03 Microsoft Corporation Use of isogenies for design of cryptosystems
US7382876B2 (en) * 2005-11-01 2008-06-03 Microsoft Corporation Hash function constructions from expander graphs

Also Published As

Publication number Publication date
JP2017126024A (ja) 2017-07-20

Similar Documents

Publication Publication Date Title
Bernstein et al. Kummer strikes back: new DH speed records
CN112148437B (zh) 用于联邦学习的计算任务加速处理方法、装置及设备
EP3096309A1 (en) Secure computation method, secure computation system, sorting device, and program
Brumnik et al. Techniques for performance improvement of integer multiplication in cryptographic applications
US11424907B2 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
Mahajan et al. Analysis of RSA algorithm using GPU programming
Dong et al. Utilizing the Double‐Precision Floating‐Point Computing Power of GPUs for RSA Acceleration
Dong et al. sDPF-RSA: Utilizing floating-point computing power of GPUs for massive digital signature computations
CN101971138A (zh) 用于计算椭圆曲线上的点的倍数的设备和方法
US9025766B2 (en) Efficient hardware architecture for a S1 S-box in a ZUC cipher
US10333697B2 (en) Nondecreasing sequence determining device, method and program
JP6614979B2 (ja) 暗号装置、暗号方法及び暗号プログラム
Lin et al. Efficient parallel RSA decryption algorithm for manycore GPUs with CUDA
JP4692022B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム
JP5858938B2 (ja) 計算装置、計算システム、計算方法
Raman Parallel processing of chaos-based image encryption algorithms
CN112861189A (zh) 签名的生成方法和验证方法、装置、设备和介质
CN114868175A (zh) 最终幂计算装置、配对运算装置、加密处理装置、最终幂计算方法和最终幂计算程序
Judge et al. A Hardware‐Accelerated ECDLP with High‐Performance Modular Multiplication
JP4502817B2 (ja) 楕円曲線スカラー倍計算方法および装置
JP2015135452A (ja) ペアリング演算装置、マルチペアリング演算装置、プログラム
Zaman et al. Implementation aspects of supersingular isogeny-based cryptographic hash function
Miller Quantum resource counts for operations constructed from an addition circuit
JP5355263B2 (ja) 鍵共有装置、鍵共有方法及びプログラム
Chauvet et al. Cryptography from the tropical Hessian pencil

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190918

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191105

R150 Certificate of patent or registration of utility model

Ref document number: 6614979

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250