(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024170751
(43)【公開日】2024-12-11
(54)【発明の名称】疎乗算計算装置、Miller関数計算装置、ペアリング演算装置、暗号処理装置、疎乗算計算方法及び疎乗算計算プログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20241204BHJP
【FI】
G09C1/00 650A
G09C1/00 620A
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2023087445
(22)【出願日】2023-05-29
(71)【出願人】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】林田 大輝
(57)【要約】
【課題】6次ツイストを持つ楕円曲線上のペアリング計算に現れる疎乗算を効率的に計算可能にする。
【解決手段】疎乗算計算装置10は、埋め込み次数kを用いて表される楕円曲線上のペアリング演算におけるMiller関数の計算に用いられる疎乗算を計算する。疎乗算計算装置10は、k次拡大体の疎乗算を計算する。分解部21は、k次拡大体を2次拡大体と3次拡大体とに分解する。疎乗算計算部22は、2次拡大体と3次拡大体とのそれぞれにおける疎乗算を計算することにより、k次拡大体における疎乗算を計算する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
埋め込み次数kを用いて表される楕円曲線上のペアリング演算におけるMiller関数の計算に用いられる疎乗算を計算する疎乗算計算装置であって、k次拡大体の疎乗算を計算する疎乗算計算装置であり、
前記k次拡大体を2次拡大体と3次拡大体とに分解する分解部と、
前記分解部によって分解されて得られた2次拡大体と3次拡大体とのそれぞれにおける疎乗算を計算することにより、前記k次拡大体における疎乗算を計算する疎乗算計算部と
を備える疎乗算計算装置。
【請求項2】
前記疎乗算計算部は、前記3次拡大体における疎乗算の結果を用いて、前記2次拡大体における疎乗算を計算することにより、前記k次拡大体における疎乗算を計算する
請求項1に記載の疎乗算計算装置。
【請求項3】
前記楕円曲線は、6次ツイストを持つ6次ツイスト曲線であり、
k次拡大体である有限体Fpkは、w2-vが多項式環Fpk/2[w]上の既約多項式であり、vをFpk/2に属する元とした場合における多項式環の表現Fpk=Fpk/2[w]/(w2-v)を持ち、有限体Fpk/2は、v3-uが多項式環Fpk/6[v]上の既約多項式であり、uをFpk/6に属する元とした場合における多項式環の表現Fpk/2=Fpk/6[v]/(v3-u)を持ち、
前記分解部は、前記有限体Fpkを、前記2次拡大体である有限体Fpk/2と、前記3次拡大体である有限体Fpk/6とに分解する
請求項2に記載の疎乗算計算装置。
【請求項4】
前記疎乗算計算部は、前記3次拡大体における疎乗算をvで表した多項式の係数を求める線形方程式を立式し、前記線形方程式を解いて前記係数を求めることにより、前記3次拡大体における疎乗算を計算する
請求項2に記載の疎乗算計算装置。
【請求項5】
前記疎乗算計算部は、前記3次拡大体における疎乗算f*gの入力である元fを多項式f(X)とし、元gを多項式g(X)として、Xに0と1と-1と-uとのそれぞれを代入したf(0)とf(1)とf(-1)とf(-u)とg(0)とg(1)とg(-1)とg(-u)とを用いて表された、H0=f(0)・g(0)と、H1=f(1)・g(1)と、H2=f(-1)・g(-1)と、H3=f(-u)・g(-u)とのそれぞれを、前記疎乗算f*gをvで表した多項式の係数と対応付けた4つの多項式により、前記線形方程式を立式する
請求項4に記載の疎乗算計算装置。
【請求項6】
前記埋め込み次数kは、6と12と18と24と30と36と42と48とのいずれかである
請求項1から5までのいずれか1項に記載の疎乗算計算装置。
【請求項7】
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは12であり、前記多項式パラメータは、前記多項式t(x)=6x2+1、前記多項式r(x)=36x4-36x3+18x2-6x+1、前記多項式p(x)=36x4-36x3+24x2-6x+1である
請求項1から5までのいずれか1項に記載の疎乗算計算装置。
【請求項8】
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは12であり、前記多項式パラメータは、前記多項式t(x)=x+1、前記多項式r(x)=Φ12(x)=x4-x2+1、前記多項式p(x)=1/3(x-1)2r(x)+xである
請求項1から5までのいずれか1項に記載の疎乗算計算装置。
【請求項9】
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは12であり、前記多項式パラメータは、前記多項式t(x)=x+1、前記多項式r(x)=Φ12(x)=x4-x2+1、前記多項式p(x)=1/4(x-1)2(x2+1)r(x)+xである
請求項1から5までのいずれか1項に記載の疎乗算計算装置。
【請求項10】
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは24であり、前記多項式パラメータは、前記多項式t(x)=x+1、前記多項式r(x)=Φ24(x)=x8-x4+1、前記多項式p(x)=1/3(x-1)2r(x)+xである
請求項1から5までのいずれか1項に記載の疎乗算計算装置。
【請求項11】
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは42であり、前記多項式パラメータは、前記多項式t(x)=x+1、前記多項式r(x)=Φ42(x)=x12+x11-x9-x8+x6-x4-x3+x+1、前記多項式p(x)=1/3(x-1)2(x2-x+1)r(x)+xである
請求項1から5までのいずれか1項に記載の疎乗算計算装置。
【請求項12】
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは48であり、前記多項式パラメータは、前記多項式t(x)=x+1、前記多項式r(x)=Φ48(x)=x16-x8+1、前記多項式p(x)=1/3(x-1)2r(x)+xである
請求項1から5までのいずれか1項に記載の疎乗算計算装置。
【請求項13】
請求項1に記載の疎乗算計算装置と、
前記疎乗算計算装置によって計算された前記k次拡大体の疎乗算の結果を用いて、前記Miller関数を計算するMiller関数計算部と
を備えるMiller関数計算装置。
【請求項14】
請求項13に記載のMiller関数計算装置と、
前記ペアリング演算における最終べき計算を行う最終べき計算部と
を備えるペアリング演算装置。
【請求項15】
請求項14に記載のペアリング演算装置によって計算された前記ペアリング演算の結果を用いて、暗号処理を行う暗号処理装置。
【請求項16】
埋め込み次数kを用いて表される楕円曲線上のペアリング演算におけるMiller関数の計算に用いられる疎乗算を計算する疎乗算計算方法であって、k次拡大体の疎乗算を計算する疎乗算計算方法であり、
コンピュータが、前記k次拡大体を2次拡大体と3次拡大体とに分解し、
コンピュータが、分解されて得られた2次拡大体と3次拡大体とのそれぞれにおける疎乗算を計算することにより、前記k次拡大体における疎乗算を計算する疎乗算計算方法。
【請求項17】
埋め込み次数kを用いて表される楕円曲線上のペアリング演算におけるMiller関数の計算に用いられる疎乗算を計算する疎乗算計算プログラムであって、k次拡大体の疎乗算を計算する疎乗算計算プログラムであり、
前記k次拡大体を2次拡大体と3次拡大体とに分解する分解処理と、
前記分解処理によって分解されて得られた2次拡大体と3次拡大体とのそれぞれにおける疎乗算を計算することにより、前記k次拡大体における疎乗算を計算する疎乗算計算処理と
を行う疎乗算計算装置としてコンピュータを機能させる疎乗算計算プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ペアリング演算における疎乗算の計算技術に関する。
【背景技術】
【0002】
ペアリング演算は、関数型暗号及び秘匿検索といった暗号方式の内部で処理される楕円曲線を用いた演算である。ペアリング演算の効率的な計算に適した楕円曲線をペアリングフレンドリ曲線という。これまで128ビット安全性相当のペアリングフレンドリ曲線としてBN曲線が知られていた。BNは、Barret-Naehrigの略である。しかし2016年頃から、安全性の見直しが行われ、BLS曲線及びKSS曲線等、様々なペアリングフレンドリ曲線を用いたペアリング演算への関心が高まってきている。BLSは、Barreto-Lynn-Scottの略である。KSSは、Kachisa-Schaefer-Scottの略である。
【0003】
ペアリング演算は、大きく分けてMiller関数の計算と最終べきの計算とに分けられる。Miller関数の計算と最終べきの計算とのどちらも複雑な計算過程を要し、関数型暗号及び秘匿検索といった暗号方式全体の計算量に大きな影響を与えている。
【0004】
最近の研究では、数多くあるペアリングフレンドリ曲線の中でもペアリング演算全体の効率がよいとされているBLS曲線について研究されているものが多い。特に、埋め込み次数kとしてk=12,24,27,42,48のBLS曲線におけるペアリング演算についてよく研究されている。その中でも埋め込み次数に6の倍数を含む、6次ツイストを持つペアリングフレンドリ曲線は特に計算効率がよいとされ、広くその計算効率化に関して研究がなされている。
【0005】
楕円曲線族によってパラメータ付けされる曲線は、多項式r(x)と、多項式p(x)と、多項式t(x)と、埋め込み次数kと、整数uとで決まる楕円曲線である。多項式r(x)と、多項式p(x)と、多項式t(x)とは、埋め込み次数kに応じて異なる形をしている。埋め込み次数kの楕円曲線族によってパラメータ付けされる曲線Eはp=p(x)個の要素からなる有限体Fp上で定義される楕円曲線である。r=r(x)は、楕円曲線Eの部分群E(Fp)の位数を割る最大素数である。t=t(x)は、楕円曲線Eのトレースである。
【0006】
楕円曲線E上のペアリング演算は、楕円曲線E上のある2点P,Qを入力とし、Miller関数と呼ばれる有理関数fを計算した後、(p(x)
k-1)/r(x)乗して計算される。つまり、楕円曲線E上のペアリング演算は、数100により計算される。
【数100】
【0007】
非特許文献1には、Miller関数の計算を効率的に行うため、BN曲線に対して効率的な疎乗算の計算アルゴリズムが記載されている。ここでは6次ツイスト曲線に対応する疎乗算を説明するために、拡大体Fp
12の元f、gを考える。元f、gの形は12次拡大体の基底をどのように取るかによって変化するが、ここでは数101のように拡大体を設定する。
【数101】
このとき、元fは数102のような形をしている。なお、元gも同様である。
【数102】
ここで、各係数f
0,f
1,f
2,f
3,f
4,f
5は中間体Fp
2の元であり、vは拡大体Fp
12/Fp
2の基底である。
【0008】
このとき、元fと元gの疎乗算とは元fと元gとのいずれかが疎である状況をいう。元が疎とは、元の係数のいずれかが0であることを意味する。この場合、通常の乗算に比べて計算効率が良いことが知られている。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】Mori Y, Akagi S, Nogami Y, Shirase M. (2014) Pseudo 8-Sparse Multiplication for Efficient Ate-Based Pairing on Barreto-Naehrig Curve. In: Cao Z, Zhang F. (eds) Pairing-Based Cryptography-Pairing 2013. Lecture Notes in Computer Science, vol 8365 Springer, Cham.
【発明の概要】
【発明が解決しようとする課題】
【0010】
6次ツイストを持つ楕円曲線上のペアリング計算に現れる疎乗算を効率的に計算するには、6次ツイストを持つ楕円曲線に対応した効率的な疎乗算計算アルゴリズムが必要である。非特許文献1で考えられてきたナイーブに構成された疎乗算アルゴリズムはその他の埋め込み次数を持つ曲線には適用できない他、効率化の余地が残っている。
本開示は、6次ツイストを持つ楕円曲線上のペアリング計算に現れる疎乗算を効率的に計算可能にすることを目的とする。
【課題を解決するための手段】
【0011】
本開示に係る疎乗算計算装置は、
埋め込み次数kを用いて表される楕円曲線上のペアリング演算におけるMiller関数の計算に用いられる疎乗算を計算する疎乗算計算装置であって、k次拡大体の疎乗算を計算する疎乗算計算装置であり、
前記k次拡大体を2次拡大体と3次拡大体とに分解する分解部と、
前記分解部によって分解されて得られた2次拡大体と3次拡大体とのそれぞれにおける疎乗算を計算することにより、前記k次拡大体における疎乗算を計算する疎乗算計算部と
を備える。
【発明の効果】
【0012】
本開示では、k次拡大体を2次拡大体と3次拡大体とに分解し、2次拡大体と3次拡大体とのそれぞれにおける疎乗算を計算することにより、k次拡大体における疎乗算を計算する。これにより、6次ツイストを持つ楕円曲線上のペアリング計算に現れる疎乗算を効率的に計算可能になる。
【図面の簡単な説明】
【0013】
【
図1】実施の形態1に係る疎乗算計算装置10の構成図。
【
図2】実施の形態1に係る疎乗算計算装置10の全体的な動作のフローチャート。
【
図3】実施の形態1に係る立式部25による数10の計算処理のフローチャート。
【
図4】実施の形態1に係る立式部25による数11の計算処理のフローチャート。
【
図5】実施の形態1に係る求解部26の計算処理のフローチャート。
【
図6】実施の形態1に係る求解部26の計算処理のフローチャート。
【
図7】変形例1に係る疎乗算計算装置10の構成図。
【
図8】変形例3に係るMiller関数計算装置30の構成図。
【
図9】変形例4に係るペアリング演算装置40の構成図。
【
図10】実施の形態2に係る暗号処理装置50の構成図。
【
図11】実施の形態2に係る暗号処理装置50の動作を示すフローチャート。
【発明を実施するための形態】
【0014】
実施の形態1.
【0015】
***構成の説明***
図1を参照して、実施の形態1に係る疎乗算計算装置10の構成を説明する。
疎乗算計算装置10は、コンピュータである。
疎乗算計算装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0016】
プロセッサ11は、プロセッシングを行うICである。ICはIntegrated Circuitの略である。プロセッサ11は、具体例としては、CPU、DSP、GPUである。CPUは、Central Processing Unitの略である。DSPは、Digital Signal Processorの略である。GPUは、Graphics Processing Unitの略である。
【0017】
メモリ12は、データを一時的に記憶する記憶装置である。メモリ12は、具体例としては、SRAM、DRAMである。SRAMは、Static Random Access Memoryの略である。DRAMは、Dynamic Random Access Memoryの略である。
【0018】
ストレージ13は、データを保管する記憶装置である。ストレージ13は、具体例としては、HDDである。HDDは、Hard Disk Driveの略である。また、ストレージ13は、SD(登録商標)メモリカード、CompactFlash(登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、Blu-ray(登録商標)ディスク、DVDといった可搬記録媒体であってもよい。SDは、Secure Digitalの略である。DVDは、Digital Versatile Diskの略である。
【0019】
通信インタフェース14は、外部の装置と通信するためのインタフェースである。通信インタフェース14は、具体例としては、Ethernet(登録商標)、USB、HDMI(登録商標)のポートである。USBは、Universal Serial Busの略である。HDMIは、High-Definition Multimedia Interfaceの略である。
【0020】
疎乗算計算装置10は、機能構成要素として、分解部21と、疎乗算計算部22とを備える。疎乗算計算部22は、第1計算部23と、第2計算部24とを備える。第2計算部24は、立式部25と、求解部26とを備える。疎乗算計算装置10の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ13には、疎乗算計算装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、疎乗算計算装置10の各機能構成要素の機能が実現される。
【0021】
図1では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。
【0022】
***動作の説明***
図2から
図6を参照して、実施の形態1に係る疎乗算計算装置10の動作を説明する。
実施の形態1に係る疎乗算計算装置10の動作手順は、実施の形態1に係る疎乗算計算方法に相当する。また、実施の形態1に係る疎乗算計算装置10の動作を実現するプログラムは、実施の形態1に係る疎乗算計算プログラムに相当する。
【0023】
実施の形態1では、疎乗算計算装置10は、拡大体Fpk/Fpk/2/Fpk/6における疎乗算を計算する。なお、kは6で割ることのできる自然数である。また、Fqと書けば、要素の個数がq個からなる有限体を表す。また、有限体Fpkは多項式環の表現Fpk=Fpk/2[w]/(w2-v)を持つ。なお、w2-vは多項式環Fpk/2[w]上の既約多項式であり、元vはFpk/2に属する。有限体Fpk/2は多項式環の表現Fpk/2=Fpk/6[v]/(v3-u)を持つ。なお、v3-uは多項式環Fpk/6[v]上の既約多項式であり、元uはFpk/6に属する。
拡大体Fpkにおける疎乗算は、6次ツイストを持つ楕円曲線のペアリング計算を考えたとき、Miller関数の計算に複数回出現する計算である。具体例としては、拡大体Fpkにおける疎乗算は、BN曲線、BLS-12曲線、BLS-24曲線、BLS-48曲線等の上におけるペアリング計算で現れる。
【0024】
図2を参照して、実施の形態1に係る疎乗算計算装置10の全体的な動作を説明する。
まず諸計算を行う前に、ステップS11で分解部21は、拡大体Fp
kの分解を行う。実施の形態1では、分解部21は、2次拡大、3次拡大とk次拡大体である拡大体Fp
kを上から分解する。次にステップS12で第1計算部23は、2次拡大体の部分に対応する疎乗算の計算を行う。次にステップS13で第2計算部24は、3次拡大体の部分に対応する疎乗算の計算を行う。
【0025】
ここで、ステップS12における2次拡大体の部分に対応する疎乗算の計算で使用される要素(後述する乗算f1g1と乗算f0g1)が、ステップS13における3次拡大体の部分に対応する疎乗算の計算により求められる。つまり、疎乗算計算部22は、3次拡大体における疎乗算の結果を用いて、2次拡大体における疎乗算を計算することより、k次拡大体における疎乗算を計算する。
【0026】
次に、疎乗算計算装置10の詳細な動作について説明する。
疎乗算は、有限体Fpkの2つの元f、gを入力とした乗算f*gのことであり、元f又は元gのいずれかが疎であるときをいう。元が疎とは、元の係数のいずれかが0であることを意味する。つまり、元fは、Fpの係数がk個並んでいるが、このうち1つ以上の係数が0である場合に元fは疎であるという。元gについても同様である。
実施の形態1においては元f、gのいずれが疎であっても議論は変わらないため、以下では元gが疎である状況を考える。
【0027】
6次ツイスト曲線のペアリングにおけるミラーループでは数1の形の元が出現する。
【数1】
ここで、d=k/6であり、数1における*は素体Fpの0とは限らないある元を表す。数1の表記は次数の低い基底から並べた際の係数部分のみを抽出した表記である。具体的には、数1はk次拡大体における数2と同値である。
【数2】
ただし、f3,f4はFp
k/6のある元である。f3,f4が数1の*に対応している。このように、元gを6つの係数に分解した際の4項目、5項目以外の部分のほとんどが0埋めされている状況が出現するのが6次ツイスト曲線のペアリングの特徴である。
【0028】
まず、分解部21は、Fp
kをFp
k=Fp
k/2[w]/(w
2-v)と考えることで、数1を2個の要素に分解する(
図2のステップS11に相当)。これにより、元gを数3の形で表すことができる。
【数3】
ここでg
1はFp
k/2の元である。
【0029】
元fとの乗算を考える。元fは数4の形で表すことができる。
【数4】
ここで、f0,f1はFp
k/2の元である。
元f,gの乗算は元gが疎であることから、疎乗算である。元gの第1項が1であるのでKaratsuba法を使う必要はなく、第1計算部23は、元f,gの乗算を数5のように計算できる(
図2のステップS12に相当)。
【数5】
したがって、ここまでの計算量は、2回のFp
k/2乗算と、2回のFp
k/2加算と、1回のv倍算である。2回のFp
k/2乗算とは、乗算f
1g
1と乗算f
0g
1とである。2回のFp
k/2加算とは、加算f
0+f
1g
1vと、加算f
1+f
0g
1とである。ここで、v倍算は係数をシフトする処理であるため、ほとんど計算コストを無視できると考えてよい。
【0030】
上記で登場する2回のFp
k/2乗算は疎乗算である。実際、元g1は数6の形をしている。
【数6】
分解部21は、Fp
k/2をFp
k/2=Fp
k/6[v]/(v
3-u)と考えることで、数6を3個の要素に分解する(
図2のステップS11に相当)。すると、元g1は数7の形をしている。
【数7】
g
10,g
11,g
12は、Fp
k/6の元である。ここで、g
12は0であることに注意されたい。上記で登場する2回のFp
k/2乗算についてはToom-Cook法をベースにした、中間体を用いる乗算アルゴリズムにより効率的に計算することができる。そこで、第1計算部23の計算で発生した2回のFp
k/2乗算である乗算f
1g
1,f
0g
1を第2計算部24で処理する(
図2のステップS13に相当)。
【0031】
第2計算部24が乗算f
1g
1,f
0g
1を計算する処理を説明する。この処理では、記号を簡略化するため、数8の乗算を考える。
【数8】
まず、第2計算部24の立式部25は、それぞれを形式的に多項式f(X),g(X)と考え、数9を得る。
【数9】
さらに、立式部25は、それぞれの多項式f(X),g(X)にX=0、X=1、X=-1、X=-u(中間体の元)、X=∞、を代入することにより、数10及び数11を得る。
【数10】
【数11】
【0032】
図3を参照して、実施の形態1に係る立式部25による数10の計算処理を説明する。
ステップS21で立式部25は、入力のfにおける係数f
0と係数f
2との加算を計算する。ステップS22で立式部25は、ステップS21で計算された結果に係数f
1を加算する。これにより、数10のf(1)が計算される。ステップS23で立式部25は、ステップS21で計算された結果から係数f
1を減算する。これにより、数10のf(-1)が計算される。
ステップS24で立式部25は、入力のfにおける係数f
1のu倍を計算し、f0から減算する。ステップS25で立式部25は、f2のu
2倍を計算しステップS24の計算結果に加算する。これにより、数10のf(-u)が計算される。
なお、数10のf(0)とf(∞)とは、入力のfにおける係数として得られている。
【0033】
図4を参照して、実施の形態1に係る立式部25による数11の計算処理を説明する。
ステップS31で立式部25は、係数g
0に係数g
1を加算する。これにより、数11のg(1)が計算される。ステップS32で立式部25は、係数g
0から係数g
1を減算する。これにより、数11のg(-1)が計算される。
ステップS33では、入力のgにおける係数g
1のu倍を計算し、g0から減算する。これにより、数11のg(-u)が計算される。
なお、数11のg(0)とg(∞)とは、入力のgにおける係数として得られている。
【0034】
次に、立式部25は、4次元の連立線型方程式を立式するために、疎乗算をvで表した多項式の係数を求める線形方程式を立式する。具体的には、立式部25は、数12を計算する。
【数12】
ここで、h
0,h
1,h
2,h
3は数13に表される係数である。
【数13】
このh
0,h
1,h
2,h
3は最終的に第2計算部24で計算する乗算f*gの係数である。したがって、以下ではこのh
0,h
1,h
2,h
3を計算することを目標とする。この結果をもとに、立式部25は、4次元の線型方程式である数14を立式する。
【数14】
数14の行列は正則行列であるので逆行列を持つ。そこで、立式部25は、逆行列を数14の両辺にかけることにより、数15が得られる。
【数15】
立式部25は、数15の4行目をu倍して1行目に足す。この操作は還元操作をしていることと同値である。これにより、数16が得られる。
【数16】
立式部25は、数16の両辺を-2u(u
2-1)倍することで分母を払う。これにより、係数h
0,h
1,h
2について数17の式が得られる。
【数17】
【0035】
求解部26は、数17を用いて係数h
0,h
1,h
2を計算する。
図5及び
図6を参照して、実施の形態1に係る求解部26の計算処理を説明する。
【0036】
求解部26は、
図5に示す処理により、数17の各要素を計算する。
ステップS41で求解部26は、H
0とH
0とを加算して2H
0を計算する。ステップS42で求解部26は、ステップS41で計算された2H
0をu倍して2uH
0を計算する。ステップS43で求解部26は、ステップS42で計算された2uH
0をu倍して2u
2H
0を計算する。ステップS44で求解部26は、ステップS43で計算された2u
2H
0から、ステップS41で計算された2H
0を減算して、2u
2H
0-2H
0を計算する。
ステップS45で求解部26は、H
1をu倍してuH
1を計算する。ステップS46で求解部26は、ステップS45で計算されたuH
1からH
1を減算して、uH
1-H
1を計算する。ステップS47で求解部26は、ステップS46で計算されたuH
1-H
1をu倍して、u(uH
1-H
1)を計算する。ステップS48で求解部26は、ステップS47で計算されたu(uH
1-H
1)をu倍して、u
2(uH
1-H
1)を計算する。
ステップS49で求解部26は、H
2をu倍してuH
2を計算する。ステップS50で求解部26は、ステップS49で計算されたuH
2にH
2を加算して、uH
2+H
2を計算する。ステップS51で求解部26は、ステップS50で計算されたuH
2+H
2をu倍して、u(uH
2+H
2)を計算する。ステップS52で求解部26は、ステップS51で計算されたu(uH
2+H
2)をu倍して、u
2(uH
2+H
2)を計算する。
ステップS53で求解部26は、H
3とH
3とを加算して2H
3を計算する。ステップS54で求解部26は、ステップS53で計算された2H
3をu倍して2uH
3を計算する。
【0037】
求解部26は、
図6に示す処理により、数17を解いて係数h
0,h
1,h
2を計算する。
ステップS61で求解部26は、ステップS48で計算されたu
2(uH
1-H
1)と、ステップS52で計算されたu
2(uH
2+H
2)とを用いて、-u
2(uH
1-H
1)-u
2(uH
2+H
2)を計算する。ステップS62で求解部26は、ステップS61で計算された-u
2(uH
1-H
1)-u
2(uH
2+H
2)に、ステップS54で計算された2uH
3を加算して、-u
2(uH
1-H
1)-u
2(uH
2+H
2)+2uH
3を計算する。これにより、数17の1行目の式が得られる。
ステップS63で求解部26は、ステップS44で計算された2u
2H
0-2H
0と、ステップS48で計算されたu
2(uH
1-H
1)とを用いて、-(2u
2H
0-2H
0)-u
2(uH
1-H
1)を計算する。ステップS64で求解部26は、ステップS63で計算された-(2u
2H
0-2H
0)-u
2(uH
1-H
1)に、ステップS52で計算されたu
2(uH
2+H
2)を加算して、-(2u
2H
0-2H
0)-u
2(uH
1-H
1)+u
2(uH
2+H
2)を計算する。ステップS65で求解部26は、ステップS64で計算された-(2u
2H
0-2H
0)-u
2(uH
1-H
1)+u
2(uH
2+H
2)から、ステップS54で計算された2uH
3を減算して、-(2u
2H
0-2H
0)-u
2(uH
1-H
1)+u
2(uH
2+H
2)-2uH
3を計算する。これにより、数17の2行目の式が得られる。
ステップS66で求解部26は、ステップS42で計算された2uH
0から、ステップS45で計算されたuH
1と、ステップS49で計算されたuH
2とを減算して、u(2H
0-H
1-H
2)を計算する。ステップS67で求解部26は、ステップS66で計算されたu(2H
0-H
1-H
2)をu倍して、u
2(2H
0-H
1-H
2)を計算する。ステップS68で求解部26は、ステップS67で計算されたu
2(2H
0-H
1-H
2)から、(2H
0-H
1-H
2)を減算して、(u
2-1)(2H
0-H
1-H
2)を計算する。ステップS69で求解部26は、ステップS68で計算された(u
2-1)(2H
0-H
1-H
2)をu倍して、u(u
2-1)(2H
0-H
1-H
2)を計算する。これにより、数17の3行目の式が得られる。
【0038】
これにより、係数h0,h1,h2が計算される。これは、乗算f*gが計算されることに相当する。なお、第2計算部24は、乗算f*gとして、2つの乗算f1g1,f0g1を計算する。したがって、第2計算部24は、2つの乗算f1g1,f0g1それぞれについて、係数h0,h1,h2の計算を行うことで、2つの乗算f1g1,f0g1を計算する。
【0039】
***計算コストの評価***
疎乗算計算部22の計算コストを評価する。
まず、第2計算部24の計算過程の計算コストを評価する。
数10については5回の加算と3回のu倍算を行った。数11については3回の加算と1回のu倍算を行った。したがって、数10及び数11の計算は8回の加算と4回のu倍算で完了する。この計算コストを8A
e+4Uと表す。ここで、A
eは有限体Fp
e上の加算を表す。Uは有限体Fp
e上のu倍算を表す。
数12については、4回の乗算を行った。なお、H
4については、入力に関わらず0であり、計算が不要なため乗算の回数にカウントされていない。この計算コストを4M
eと表す。ここで、M
eは有限体Fp
e上の乗算を表す。
数17については、合計で9回の加算と12回のu倍算を行った。したがって、この計算コストは9A
e+12Uである。
ただし、減算に関しては実装の観点からは加算とほぼ同等の計算コストであるから減算も加算としてカウントしている。また、ある元の加法に対する逆数を計算することは実装の観点からはほとんどコストがかからないことから上記評価では無視している。これらのことから、第2計算部24における1回の乗算の計算コストの総計は数18で表される。
【数18】
【0040】
ここで、第2計算部24は、2つの乗算f
1g
1,f
0g
1を行う。また、第1計算部23は、2回のFp
k/2加算を行う。したがって、疎乗算計算部22の計算コストは、数19のようになる。
【数19】
なお、ペアリングフレンドリ曲線を考える場合、一番下の素体における既約多項式の定数αは2又は3等の小定数であることが多い。ここでは、α=2であるとすると、U倍算は素体上の加算1回とほぼ同コストになるため、U=A
1と換算できる。一方、非特許文献1の計算量は数20のようになる。
【数20】
そのため、実施の形態1が有効であるためには、数21が成立することが必要である。
【数21】
この条件は以下で具体的に説明するが、ほとんどの曲線に対して有効であることを示している。
【0041】
***曲線の例***
具体的な曲線の例を説明する。
埋め込み次数kは、具体例としては、6と12と18と24と30と36と42と48とのいずれかである。
【0042】
<例1:埋め込み次数12>
曲線の埋め込み次数が12の場合について説明する。埋め込み次数がk=12の場合、実施の形態1が有効であるためには、数22が成立することが必要である。
【数22】
ここで、M
1についてはKaratsuba法を採用した。
【0043】
<例2:埋め込み次数18>
曲線の埋め込み次数が18の場合について説明する。埋め込み次数がk=18の場合、実施の形態1が有効であるためには、数23が成立することが必要である。
【数23】
ここで、M
3についてはKaratsuba法を採用するかToom-Cook法を採用するかで計算量が異なる。
Karatsuba法の場合、数24である。
【数24】
そのため、実施の形態1が有効であるためには、数25が成立することが必要である。
【数25】
通常、乗算コストの方が計算コストが大きいので、これは素数の大きさに関わらず常に実施の形態1が有効であることを示している。
一方、Toom-Cook法の場合、数26である。
【数26】
そのため、無条件で実施の形態1が有効である。
【0044】
以上のことから、埋め込み次数が18以上の6次ツイストを持つ曲線、例えばBLS24曲線又はBLS48曲線等に対しては、非特許文献1の手法よりも実施の形態1の手法の方が無条件で効率的になることがわかる。
【0045】
<具体的な曲線>
以上の評価を踏まえると、以下のような曲線について実施の形態1が有効である。
なお、楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表される。
【0046】
(具体例1)
埋め込み次数kは12であり、多項式パラメータは、多項式t(x)=6x2+1、多項式r(x)=36x4-36x3+18x2-6x+1、多項式p(x)=36x4-36x3+24x2-6x+1である。
【0047】
(具体例2)
埋め込み次数kは12であり、多項式パラメータは、多項式t(x)=x+1、多項式r(x)=Φ12(x)=x4-x2+1、多項式p(x)=1/3(x-1)2r(x)+xである。
【0048】
(具体例3)
埋め込み次数kは12であり、多項式パラメータは、多項式t(x)=x+1、多項式r(x)=Φ12(x)=x4-x2+1、多項式p(x)=1/4(x-1)2(x2+1)r(x)+xである。
【0049】
(具体例4)
埋め込み次数kは24であり、多項式パラメータは、多項式t(x)=x+1、多項式r(x)=Φ24(x)=x8-x4+1、多項式p(x)=1/3(x-1)2r(x)+xである。
【0050】
(具体例5)
埋め込み次数kは42であり、多項式パラメータは、多項式t(x)=x+1、多項式r(x)=Φ42(x)=x12+x11-x9-x8+x6-x4-x3+x+1、多項式p(x)=1/3(x-1)2(x2-x+1)r(x)+xである。
【0051】
(具体例6)
埋め込み次数kは48であり、多項式パラメータは、多項式t(x)=x+1、多項式r(x)=Φ48(x)=x16-x8+1、多項式p(x)=1/3(x-1)2r(x)+xである。
【0052】
***実施の形態1の効果***
以上のように、実施の形態1に係る疎乗算計算装置10は、6次ツイストを持つ埋め込み次数kの曲線におけるペアリング計算において、k次拡大体を2次拡大体と3次拡大体とに分解する。そして、疎乗算計算装置10は、2次拡大体と3次拡大体とのそれぞれにおける疎乗算を計算することにより、k次拡大体における疎乗算を計算する。これにより、ペアリング計算が効率的に計算可能になる。
【0053】
特に、実施の形態1に係る疎乗算計算装置10は、3次拡大体における疎乗算の計算においてToom-Cook法ベースの疎乗算アルゴリズムを適用する。これにより、加算回数を増加させる代わりに乗算回数を減らすことができる。その結果、埋め込み次数が12の曲線に対しては、M1>4.33A1の場合に非特許文献1の手法よりも効率的であり、埋め込み次数が18以上の曲線に対しては、原則として非特許文献1の手法よりも効率的である。したがって、実施の形態1を用いることによって、ほとんどの曲線に関してペアリング計算をより効率的に計算することができる。
【0054】
***他の構成***
<変形例1>
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例1として、各機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
【0055】
図7を参照して、変形例1に係る疎乗算計算装置10の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、疎乗算計算装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
【0056】
電子回路15としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、FPGAが想定される。GAは、Gate Arrayの略である。ASICは、Application Specific Integrated Circuitの略である。FPGAは、Field-Programmable Gate Arrayの略である。
各機能構成要素を1つの電子回路15で実現してもよいし、各機能構成要素を複数の電子回路15に分散させて実現してもよい。
【0057】
<変形例2>
変形例2として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
【0058】
プロセッサ11とメモリ12とストレージ13と電子回路15とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
【0059】
<変形例3>
実施の形態1では、Miller関数内部の処理で発生するある疎な値gに対する疎乗算計算装置10を説明した。実施の形態1で説明した疎乗算計算装置10に、Miller関数の計算を行う機能を行う機能を加えて、Miller関数を計算するMiller関数計算装置30を構成してもよい。
【0060】
図8を参照して、変形例3に係るMiller関数計算装置30の構成を説明する。
Miller関数計算装置30は、疎乗算計算装置10が備える機能構成要素に加えて、Miller関数計算部31を備える。Miller関数計算部31は、疎乗算計算装置10が備える機能構成要素と同様に、ソフトウェア又はハードウェアによって実現される。
Miller関数計算部31は、疎乗算計算装置10によって計算される疎乗算の計算結果を利用して、Miller関数の計算を行う。
【0061】
<変形例4>
変形例3では、Miller関数を計算するMiller関数計算装置30を説明した。変形例3で説明したMiller関数計算装置に、ペアリング演算における最終べきの計算を行う機能を加えて、ペアリング演算を行うペアリング演算装置40を構成してもよい。
【0062】
図9を参照して、変形例4に係るペアリング演算装置40の構成を説明する。
ペアリング演算装置40は、Miller関数計算装置30が備える機能構成要素に加えて、最終べき計算部41を備える。最終べき計算部41は、Miller関数計算装置30が備える機能構成要素と同様に、ソフトウェア又はハードウェアによって実現される。
最終べき計算部41は、ペアリング演算における最終べき計算を行う。
【0063】
実施の形態2.
実施の形態1では、ペアリング演算のMiller関数の計算における疎乗算の計算方法について説明した。実施の形態2では、実施の形態1で説明した方法に基づき得られたペアリング演算の結果を用いた処理について説明する。実施の形態2では、実施の形態1と異なる点を説明し、同一の点については説明を省略する。
【0064】
***構成の説明***
図10を参照して、実施の形態2に係る暗号処理装置50の構成を説明する。
暗号処理装置50は、変形例4に係るペアリング演算装置40が備える機能構成要素に加え、暗号処理部51を備える。暗号処理部51は、ペアリング演算装置40が備える機能構成要素と同様に、ソフトウェア又はハードウェアによって実現される。
【0065】
***動作の説明***
図11を参照して、実施の形態2に係る暗号処理装置50の動作を説明する。
実施の形態2に係る暗号処理装置50の動作手順は、実施の形態2に係る暗号処理方法に相当する。また、実施の形態2に係る暗号処理装置50の動作を実現するプログラムは、実施の形態2に係る暗号処理プログラムに相当する。
【0066】
(ステップS81:ペアリング演算処理)
変形例4に係るペアリング演算装置40が備える機能構成要素によって、ペアリング演算の結果が計算される。ペアリング演算の結果はメモリ12に書き込まれる。
【0067】
(ステップS82:暗号処理)
暗号処理部51は、ステップS81で得られたペアリング演算の結果を用いて、暗号処理を行う。暗号処理は、暗号化処理と、復号処理と、署名処理と、検証処理といった暗号プリミティブの処理である。
暗号化処理は、データを第三者から秘匿するために、平文状態のデータを暗号文に変換する処理である。復号処理は、暗号化処理により変換された暗号文を平文状態のデータに変換する処理である。署名処理は、データの改ざん検出とデータの出所確認との少なくともいずれかのための署名を生成する処理である。検証処理は、署名処理で生成された署名によりデータの改ざん検出とデータの出所確認との少なくともいずれかをする処理である。
【0068】
例えば、暗号処理部51は、暗号文の要素と復号鍵の要素とを入力とするペアリング演算の結果を用いて、暗号文を復号したメッセージを生成することが考えられる。
【0069】
***実施の形態2の効果***
以上のように、実施の形態2に係る暗号処理装置50は、実施の形態1に係る疎乗算計算装置10の機能構成要素を用いて暗号処理を実現する。実施の形態1に係る疎乗算計算装置10を用いることによりペアリング演算を効率的に計算可能である。そのため、実施の形態2に係る暗号処理装置50は、効率的に暗号処理を実施可能である。
【0070】
以下、本開示の諸態様を付記としてまとめて記載する。
(付記1)
埋め込み次数kを用いて表される楕円曲線上のペアリング演算におけるMiller関数の計算に用いられる疎乗算を計算する疎乗算計算装置であって、k次拡大体の疎乗算を計算する疎乗算計算装置であり、
前記k次拡大体を2次拡大体と3次拡大体とに分解する分解部と、
前記分解部によって分解されて得られた2次拡大体と3次拡大体とのそれぞれにおける疎乗算を計算することにより、前記k次拡大体における疎乗算を計算する疎乗算計算部と
を備える疎乗算計算装置。
(付記2)
前記疎乗算計算部は、前記3次拡大体における疎乗算の結果を用いて、前記2次拡大体における疎乗算を計算することにより、前記k次拡大体における疎乗算を計算する
付記1に記載の疎乗算計算装置。
(付記3)
前記楕円曲線は、6次ツイストを持つ6次ツイスト曲線であり、
k次拡大体である有限体Fpkは、w2-vが多項式環Fpk/2[w]上の既約多項式であり、vをFpk/2に属する元とした場合における多項式環の表現Fpk=Fpk/2[w]/(w2-v)を持ち、有限体Fpk/2は、v3-uが多項式環Fpk/6[v]上の既約多項式であり、uをFpk/6に属する元とした場合における多項式環の表現Fpk/2=Fpk/6[v]/(v3-u)を持ち、
前記分解部は、前記有限体Fpkを、前記2次拡大体である有限体Fpk/2と、前記3次拡大体である有限体Fpk/6とに分解する
付記2に記載の疎乗算計算装置。
(付記4)
前記疎乗算計算部は、前記3次拡大体における疎乗算をvで表した多項式の係数を求める線形方程式を立式し、前記線形方程式を解いて前記係数を求めることにより、前記3次拡大体における疎乗算を計算する
付記2に記載の疎乗算計算装置。
(付記5)
前記疎乗算計算部は、前記3次拡大体における疎乗算f*gの入力である元fを多項式f(X)とし、元gを多項式g(X)として、Xに0と1と-1と-uとのそれぞれを代入したf(0)とf(1)とf(-1)とf(-u)とg(0)とg(1)とg(-1)とg(-u)とを用いて表された、H0=f(0)・g(0)と、H1=f(1)・g(1)と、H2=f(-1)・g(-1)と、H3=f(-u)・g(-u)とのそれぞれを、前記疎乗算f*gをvで表した多項式の係数と対応付けた4つの多項式により、前記線形方程式を立式する
付記4に記載の疎乗算計算装置。
(付記6)
前記埋め込み次数kは、6と12と18と24と30と36と42と48とのいずれかである
付記1から5までのいずれか1項に記載の疎乗算計算装置。
(付記7)
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは12であり、前記多項式パラメータは、前記多項式t(x)=6x2+1、前記多項式r(x)=36x4-36x3+18x2-6x+1、前記多項式p(x)=36x4-36x3+24x2-6x+1である
付記1から5までのいずれか1項に記載の疎乗算計算装置。
(付記8)
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは12であり、前記多項式パラメータは、前記多項式t(x)=x+1、前記多項式r(x)=Φ12(x)=x4-x2+1、前記多項式p(x)=1/3(x-1)2r(x)+xである
付記1から5までのいずれか1項に記載の疎乗算計算装置。
(付記9)
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは12であり、前記多項式パラメータは、前記多項式t(x)=x+1、前記多項式r(x)=Φ12(x)=x4-x2+1、前記多項式p(x)=1/4(x-1)2(x2+1)r(x)+xである
付記1から5までのいずれか1項に記載の疎乗算計算装置。
(付記10)
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは24であり、前記多項式パラメータは、前記多項式t(x)=x+1、前記多項式r(x)=Φ24(x)=x8-x4+1、前記多項式p(x)=1/3(x-1)2r(x)+xである
付記1から5までのいずれか1項に記載の疎乗算計算装置。
(付記11)
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは42であり、前記多項式パラメータは、前記多項式t(x)=x+1、前記多項式r(x)=Φ42(x)=x12+x11-x9-x8+x6-x4-x3+x+1、前記多項式p(x)=1/3(x-1)2(x2-x+1)r(x)+xである
付記1から5までのいずれか1項に記載の疎乗算計算装置。
(付記12)
前記楕円曲線は、次数dの円分多項式Φk(x)と多項式T(x)と多項式h1(x)と多項式h2(x)とを用いて表される多項式r(x)=Φk(T(x))/h2(x)と多項式p(x)=h1(x)r(x)+T(x)と多項式t(x)=T(x)+1との多項式パラメータを用いて表され、
前記埋め込み次数kは48であり、前記多項式パラメータは、前記多項式t(x)=x+1、前記多項式r(x)=Φ48(x)=x16-x8+1、前記多項式p(x)=1/3(x-1)2r(x)+xである
付記1から5までのいずれか1項に記載の疎乗算計算装置。
(付記13)
付記1から12までのいずれか1項に記載の疎乗算計算装置と、
前記疎乗算計算装置によって計算された前記k次拡大体の疎乗算の結果を用いて、前記Miller関数を計算するMiller関数計算部と
を備えるMiller関数計算装置。
(付記14)
付記13に記載のMiller関数計算装置と、
前記ペアリング演算における最終べき計算を行う最終べき計算部と
を備えるペアリング演算装置。
(付記15)
付記14に記載のペアリング演算装置によって計算された前記ペアリング演算の結果を用いて、暗号処理を行う暗号処理装置。
(付記16)
埋め込み次数kを用いて表される楕円曲線上のペアリング演算におけるMiller関数の計算に用いられる疎乗算を計算する疎乗算計算方法であって、k次拡大体の疎乗算を計算する疎乗算計算方法であり、
コンピュータが、前記k次拡大体を2次拡大体と3次拡大体とに分解し、
コンピュータが、分解されて得られた2次拡大体と3次拡大体とのそれぞれにおける疎乗算を計算することにより、前記k次拡大体における疎乗算を計算する疎乗算計算方法。
(付記17)
埋め込み次数kを用いて表される楕円曲線上のペアリング演算におけるMiller関数の計算に用いられる疎乗算を計算する疎乗算計算プログラムであって、k次拡大体の疎乗算を計算する疎乗算計算プログラムであり、
前記k次拡大体を2次拡大体と3次拡大体とに分解する分解処理と、
前記分解処理によって分解されて得られた2次拡大体と3次拡大体とのそれぞれにおける疎乗算を計算することにより、前記k次拡大体における疎乗算を計算する疎乗算計算処理と
を行う疎乗算計算装置としてコンピュータを機能させる疎乗算計算プログラム。
【0071】
なお、以上の説明における「部」を、「回路」、「工程」、「手順」、「処理」又は「処理回路」に読み替えてもよい。
【0072】
以上、本開示の実施の形態及び変形例について説明した。これらの実施の形態及び変形例のうち、いくつかを組み合わせて実施してもよい。また、いずれか1つ又はいくつかを部分的に実施してもよい。なお、本開示は、以上の実施の形態及び変形例に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【0073】
10 疎乗算計算装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、15 電子回路、21 分解部、22 疎乗算計算部、23 第1計算部、24 第2計算部、25 立式部、26 求解部、30 Miller関数計算装置、31 Miller関数計算部、40 ペアリング演算装置、41 最終べき計算部、50 暗号処理装置、51 暗号処理部。