JP2015022167A - ペアリング演算装置、方法およびプログラム - Google Patents

ペアリング演算装置、方法およびプログラム Download PDF

Info

Publication number
JP2015022167A
JP2015022167A JP2013150631A JP2013150631A JP2015022167A JP 2015022167 A JP2015022167 A JP 2015022167A JP 2013150631 A JP2013150631 A JP 2013150631A JP 2013150631 A JP2013150631 A JP 2013150631A JP 2015022167 A JP2015022167 A JP 2015022167A
Authority
JP
Japan
Prior art keywords
pairing
mirror function
calculation
power
order
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.)
Pending
Application number
JP2013150631A
Other languages
English (en)
Inventor
智子 米村
Tomoko Yonemura
智子 米村
林 良太郎
Ryotaro Hayashi
良太郎 林
秋山 浩一郎
Koichiro Akiyama
浩一郎 秋山
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013150631A priority Critical patent/JP2015022167A/ja
Priority to US14/334,007 priority patent/US20150023496A1/en
Publication of JP2015022167A publication Critical patent/JP2015022167A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Error Detection And Correction (AREA)

Abstract

【課題】ミラー関数演算および最終冪乗演算のコストを小さくするペアリング演算装置を提供する。【解決手段】ペアリング演算装置10は、有限体上に定義される所定の楕円曲線上の2点P,Qを入力し、有限体の拡大体の元であるペアリング値を出力する。ペアリング演算装置は、ミラー関数演算部20と、最終冪乗部30とを備える。ミラー関数演算部は、所定のペアリング方式に基づくミラー関数を演算する。最終冪乗部は、拡大体の元に対してミラー関数のループパラメータに基づき定まる値を冪乗する演算を含む。【選択図】図1

Description

本発明の実施形態は、ペアリング演算装置、方法およびプログラムに関する。
ペアリングベース暗号は、ペアリングと呼ばれる数学的な写像を用いる暗号である。ペアリング演算は処理が重い。従って、ペアリング演算を高速化して、ペアリングベース暗号の適用範囲を拡大することが望まれる。
ペアリング演算は、ミラー関数ステップと、最終冪乗ステップとを含む。最終冪乗ステップでは、固定の冪指数による有限体上の冪乗が演算される。冪指数に応じた加算鎖を予め決めておき、この加算鎖に従って冪乗を演算する方法が知られている。この方法では、楕円曲線を生成するためのパラメータxのハミングウエイトを小さくするほど、最終冪乗ステップの演算コストを小さくすることができる。
M. Scott, N. Benger, M. Charlemagne, L. J. D. Perez and E. J. Kachisa, "On the Final Exponentiation for Calculating Pairings on Ordinary Elliptic Curves", Pairing-Based Cryptography-Pairing 2009, Springer (2009), LNCS 5671, pp. 78-88.
ところで、ペアリングベース暗号の処理の中には、複数のペアリング演算が含まれる。複数のペアリング演算を含む場合、複数の最終冪乗ステップをまとめて演算することができる。しかし、複数のミラー関数ステップをまとめて演算することは困難である。従って、ペアリングベース暗号の処理の中に複数のペアリング演算が含まれる場合、処理の全体の演算コストを小さくするためには、ミラー関数ステップの演算コストを小さくすることが重要となる。
ミラー関数ステップの演算コストは、ミラー関数のループパラメータのハミングウエイトが小さいほど、小さくなる。しかし、ミラー関数のループパラメータのハミングウエイトを小さくすると、パラメータxのハミングウエイトが大きくなり、逆に最終冪乗ステップの演算コストが増大してしまう可能性が高い。このため、ミラー関数ステップの演算コストと最終冪乗ステップの演算コストの両者をともに小さくすることは難しかった。
実施形態のペアリング演算装置は、有限体上に定義される所定の楕円曲線上の2点を入力し、前記有限体の拡大体の元であるペアリング値を出力する。ペアリング演算装置は、ミラー関数演算部と、最終冪乗部とを備える。ミラー関数演算部は、所定のペアリング方式に基づくミラー関数を演算する。最終冪乗部は、前記拡大体の元に対して前記ミラー関数のループパラメータに基づき定まる値を冪乗する演算を含む。
ペアリング演算装置の構成図。 ミラーアルゴリズムを示す図。 ミラー関数のループパラメータを表す多項式を示す図。 最終冪乗部の構成図。 {AΦ(p)/r}の冪乗演算をする第3冪乗部の構成図。 ベクトル性加算鎖を実行するためのアルゴリズムを示す図。 ペアリング演算装置のハードウェア構成図。
(全体構成)
図1は、本実施形態のペアリング演算装置10の構成を示すブロック図である。ペアリング演算装置10は、例えば、ショート署名、三者間鍵共有およびIDベース暗号等のペアリングベース暗号処理に用いられる。
ペアリング演算装置10は、標数pの有限体上に定義される位数rの所定の楕円曲線上の2点P,Qを入力する。そして、ペアリング演算装置10は、有限体のk次拡大体の元であるペアリング値を出力する。より具体的には、ペアリング演算装置10は、下記の式(11)を演算し、演算結果をペアリング値として出力する。
Figure 2015022167
式(11)において、fは、所定のペアリング方式に基づいたミラー関数を含む演算を表す。所定のペアリング方式が例えばTateペアリングの場合には、fは、ミラー関数fr,P(Q)の演算を表す。所定のペアリング方式が例えばAteペアリングの場合には、fは、ミラー関数fp mod r,Q(P)の演算を表す。定のペアリング方式が例えばOptimal ateペアリングの場合には、fは、ミラー関数fc,Q(P)の演算結果に補正項g(P)を掛けた値を表す。また、式(11)において、Aは、1以上の整数を表す。なお、A=1の場合、ペアリング演算装置10が出力するペアリング値は、従来のペアリング演算の演算結果と同一となる。Aの値の詳細については後述する。
ペアリング演算装置10は、ミラー関数演算部20と、最終冪乗部30とを備える。
ミラー関数演算部20は、所定の楕円曲線上の2点P,Qを入力する。そして、ミラー関数演算部20は、所定のペアリング方式に基づくミラー関数を含む演算をして、有限体のk次拡大体の元を演算結果として出力する。本実施形態においては、ミラー関数演算部20は、Optimal ateペアリングに基づくミラー関数fc,Q(P)を演算して、補正項g(P)を掛けて出力する。ミラー関数演算部20は、TateペアリングおよびAteペアリング等の他のペアリング方式に基づくミラー関数を演算してもよい。
最終冪乗部30は、ミラー関数演算部20による演算結果である有限体のk次拡大体の元に対して、A(p−1)/rを冪指数とする冪乗演算をする。ここで、最終冪乗部30は、拡大体の元に対してミラー関数のループパラメータに基づき定まる値を冪乗する演算を含む。ミラー関数のループパラメータに基づき定まる値は、一例として、ミラー関数のループパラメータである。また、ミラー関数のループパラメータに基づき定まる値は、一例として、ミラー関数のループパラメータを、ミラー関数のループパラメータの約数で除算した値である。また、ミラー関数のループパラメータに基づき定まる値は、ミラー関数のループパラメータに対して、2(lは整数)を乗算した値である。また、ミラー関数のループパラメータに基づき定まる値は、ミラー関数のループパラメータに対して、整数を加減算した値である。なお、最終冪乗部30の詳細については後述する。
本実施形態においては、ペアリング演算装置10は、楕円曲線として、BN曲線またはFreeman曲線を用いる。ペアリング演算装置10は、BN曲線およびFreeman曲線以外の楕円曲線を用いてもよい。
本実施形態においてペアリング演算装置10が用いるBN曲線の方程式は、Y=X+bである。また、BN曲線は、拡大次数kが12である。拡大次数は、埋め込み次数ともいう。
また、BN曲線は、有限体である定義体の標数pが、下記の式(12)のxの多項式により定まる。また、BN曲線は、位数rが、下記の式(13)のxの多項式により定まる。なお、xは、p、rをともに素数とするように定められる1以上の整数である。
Figure 2015022167
また、BN曲線は、ρ=ceil(log p)/ceil(log r)=1である。なお、log Xは、底が2のXの対数を表す。また、ceil(X)は、Xの小数点以下の値を切り上げる演算を表す。また、後述のfloor(X)は、Xの小数点以下の値を切り捨てる演算を表す。
従って、ρ=1とは、pを2進数で表現した場合の桁数と、rを2進数で表現した場合の桁数とが同一であることを意味する。
本実施形態においてペアリング演算装置10が用いるFreeman曲線は、拡大次数kが10である。また、Freeman曲線は、有限体である定義体の標数pが、下記の式(14)のxの多項式により定まる。また、Freeman曲線は、位数rが、下記の式(15)のxの多項式により定まる。
Figure 2015022167
また、Freeman曲線は、ρ=ceil(log p)/ceil(log r)=1である。
(ミラー関数演算部20)
図2は、ミラー関数演算部20で実行されるミラーアルゴリズムを示す。ミラー関数演算部20は、図2に示すミラーアルゴリズムを実行して、ミラー関数を演算する。
“Input:”のステップにおいて、ミラー関数演算部20は、群Gに含まれるP、群Gに含まれるQ、および、符号付き2進展開で表されたrを入力する。rは、ミラー関数のループパラメータと呼ばれる。rは、符号付き2進展開で表されたrにおけるi桁目の値を示す。符号付き2進展開については後述する。
“Output:”のステップにおいて、ミラー関数演算部20は、fr,P(Q)を出力する。ミラー関数演算部20は、“1:”〜“10:”のステップの実行が完了した後に、“Output:”のステップを実行する。
“2:”〜“9:”のステップにおいて、最終冪乗部30は、符号付き2進表現で表されたrの最上位桁から最下位桁まで桁毎にループ処理を実行する。なお、iは、処理対象となっている桁数を表す。
“2:”〜“9:”のループ内における“4:”のステップにおいて、ミラー関数演算部20は、rが1の場合には“5:”のステップの処理を行い、rが−1の場合には“7:”のステップの処理を行い、rが0の場合には、“5:”のステップと“7:”のステップの処理を飛ばして次の処理に進むという条件判断を実行している。
そして、“2:”〜“9:”のループ処理が完了すると、“10:”のステップにおいて、ミラー関数演算部20は、fの値を返して処理を終了する。
ここで、ミラー関数のループパラメータc(=r)は、符号付き2進展開をした2進表現におけるハミングウエイト(符号付きハミングウエイト)が最小となる値に予め設定される。即ち、ミラー関数演算部20は、符号付きハミングウエイトが最小となるように予め設定されたミラー関数のループパラメータcを用いて、ミラー関数を演算する。なお、ミラー関数のループパラメータcは、符号付きハミングウエイトが最小に近い値であってもよい。
符号付き2進展開とは、整数aを、下記の式(16)に示すように、2進数の桁の重みに対応する値(2、2、2、2…等の2のi乗)に係数aを乗算した値の総和の式に展開することをいう。
Figure 2015022167
なお、iは、0以上の整数である。2進数の桁の重みに対応する値は、同一値が重複して用いられない。
そして、式(16)において、係数aは、−1、0、1の何れかの値である。
符号付きハイミングウエイトとは、このように符号付き2進展開をした整数における、非0の項の個数(即ち、係数aが−1または1の項の個数)を表す。
ミラー関数演算部20は、整数であるrをこのような符号付き2進展開をした2進数を、ミラーアルゴリズムのループパラメータcとして入力する。このため、ミラー関数演算部20は、ステップ“4:”の条件判断でrが1であると判断される桁数とステップ“6:”の条件判断でrが−1であると判断される桁数の合計を最小または最小に近い値とすることができる。これにより、ミラー関数演算部20は、ステップ“5:”の実行回数とステップ“7:”の実行回数の合計を最小または最小に近い回数することができる。この結果、ミラー関数演算部20は、ミラー関数の演算コストを小さくすることができる。
図3は、Tateペアリング、AteペアリングおよびOptimal ateペアリングのそれぞれのミラー関数のループパラメータをxで表す多項式を示す。
ミラー関数演算部20は、Optimal ateペアリングの他、例えばTateペアリングまたはAteペアリングでミラー関数を演算してもよい。
TateペアリングでBN曲線を用いる場合、ミラー関数のループパラメータc(=r)は、36x+36x+24x+6x+1である。また、TateペアリングでFreeman曲線を用いる場合、ミラー関数のループパラメータc(=r)は、25x+25x+25x+10x+3である。
AteペアリングでBN曲線を用いる場合、ミラー関数のループパラメータc(=p mod r)は、6xである。また、AteペアリングでFreeman曲線を用いる場合、ミラー関数のループパラメータc(=p mod r)は、10x+5x+2である。
そして、Optimal ateペアリングでBN曲線を用いる場合、ミラー関数のループパラメータcは、6x+2である。また、Optimal ateペアリングでFreeman曲線を用いる場合、ミラー関数のループパラメータcは、−5x−1である。
ここで、Optimal ateペアリングでBN曲線を用いる場合、位数rの2進数の桁数を224桁〜287桁とすると、cの符号付きハミングウエイトの最小値は、3となる。位数rの2進数の桁数が224桁〜287桁のそれぞれの場合に、標数pおよび位数rのそれぞれが素数となり、且つ、符号付きハミングウエイトが最小である3となるような、ミラー関数のループパラメータcを探索すると、下記の表1に示す通りとなる。
Figure 2015022167
そこで、ミラー関数演算部20は、Optimal ateペアリングでBN曲線を用いる場合であって、2進数で表現した位数rの桁数が表1のceil(log r)の欄の何れかの値の場合には、ミラー関数のループパラメータを表1のc(=6x+2)の欄の対応する値とする。これにより、ミラー関数演算部20によれば、Optimal ateペアリングでBN曲線を用いる場合に、ミラー関数の演算コストを最小とすることができる。なお、表1の“p mod 4”は、pを4で除算した余りを表す。
また、Optimal ateペアリングでFreeman曲線を用いる場合、位数rの2進数の桁数を224桁〜288桁とすると、rの符号付きハミングウエイトの最小値は、4となる。位数rの2進数の桁数が224桁〜288桁のそれぞれの場合に、標数pおよび位数rのそれぞれが素数となり、且つ、符号付きハミングウエイトが最小である4となるような、ミラー関数のループパラメータcを探索すると、下記の表2に示す通りとなる。
Figure 2015022167
そこで、ミラー関数演算部20は、Optimal ateペアリングでFreeman曲線を用いる場合であって、2進数で表現した位数rの桁数が表2のceil(log r)の欄の何れかの値の場合には、ミラー関数のループパラメータを表2のc(=−5x−1)の欄の対応する値とする。これにより、ミラー関数演算部20によれば、Optimal ateペアリングでFreeman曲線を用いる場合に、ミラー関数の演算コストを最小とすることができる。なお、表2の“p mod 4”は、pを4で除算した余りを表す。
(最終冪乗部30)
図4は、最終冪乗部30の構成を示すブロック図である。最終冪乗部30は、ミラー関数演算部20による演算結果である有限体のk次拡大体の元に対して、A(p−1)/rを冪指数とする冪乗演算をする。
最終冪乗部30は、冪指数A(p−1)/rを、下記の式(21)に示すように、3つの部分に分けて演算する。なお、Φ(p)は、pのk次円分多項式である。

Figure 2015022167
具体的には、最終冪乗部30は、第1冪乗部31と、第2冪乗部32と、第3冪乗部33とを有する。第1冪乗部31は、(pk/2−1)を冪指数とした冪乗演算をする。第2冪乗部32は、{(pk/2+1)/Φ(p)}を冪指数とした冪乗演算をする。第3冪乗部33は、{AΦ(p)/r}を冪指数とした冪乗演算とする。
第1冪乗部31、第2冪乗部32および第3冪乗部33は、直列に接続される。第1冪乗部31、第2冪乗部32および第3冪乗部33は、どのような順で接続されてもよい。
第1冪乗部31、第2冪乗部32および第3冪乗部33のうち先頭の冪乗部は、ミラー関数演算部20による演算結果を入力する。また、2番目および最後の冪乗部は、前段の演算結果に対して冪乗演算をする。そして、最後の冪乗部は、最終的な冪乗演算の結果を出力する。
図5は、{AΦ(p)/r}の冪乗演算をする第3冪乗部33の構成を示すブロック図である。
第3冪乗部33は、記憶部41と、基数算出部42と、ベクトル性加算鎖演算部43とを含む。記憶部41は、ミラー関数のループパラメータcを予め記憶する。
基数算出部42は、前段から入力したk次拡大体の元fに対して、所定の式を演算して、複数個の基数y、y、…、y(jは1以上の整数)を出力する。所定の式には、記憶部41に記憶されたミラー関数のループパラメータcを冪指数として、入力したk次拡大体の元fに対して冪乗をする演算を含む。なお、基数算出部42が演算する式については詳細を後述する。
ベクトル性加算鎖演算部43は、基数算出部42から複数の基数y、y、…、yを入力する。ベクトル性加算鎖演算部43は、入力した複数の基数y、y、…、yのそれぞれに1以上の整数を冪乗した結果を全て乗算する式を、ベクトル性加算鎖を用いて演算する。具体的には、ベクトル性加算鎖演算部43は、下記の式(22)をベクトル性加算鎖を用いて演算する。
Figure 2015022167
、B、…、Bは、1以上の予め定められた整数である。そして、ベクトル性加算鎖演算部43は、ベクトル性加算鎖の実行結果を、元fに対する、{AΦ(p)/r}の冪乗演算の結果として出力する。なお、ベクトル性加算鎖演算部43が演算する式については詳細を後述する。
(BN曲線)
つぎに、具体的にOptimal ateペアリングでBN曲線を用いる場合の基数算出部42およびベクトル性加算鎖演算部43が演算する式について説明する。
BN曲線の埋め込み次数kは12であるので、k次円分多項式Φ(p)は、下記の式(23)となる。
Figure 2015022167
式(23)をrで除算すると、下記の式(24)となる。
Figure 2015022167
BN曲線のpおよびrは、式(12)および式(13)に示したように、xの多項式で表される。式(24)に対して式(12)および式(13)を代入して整理すると、下記の式(25)に変形される。
Figure 2015022167
式(25)のλ、λ、λ、λは、下記の式(26)の通りである。
Figure 2015022167
ここで、Optimal ateペアリングでBN曲線を用いる場合、c=6x+2である。そこで、式(26)のλ、λ、λ、λを、ミラー関数のループパラメータcを変数とした式に変換すると、下記の式(27)となる。
Figure 2015022167
冪指数を整数とするために、式(27)のλ、λ、λ、λを6倍する。そして、6倍したλ、λ、λ、λを用いた演算式で、拡大体の元fを冪乗した式は、下記の式(28)となる。
Figure 2015022167
式(28)のy、y、y、y、y、y、yは、下記の式(29)に示す通りである。
Figure 2015022167
以上のように、Optimal ateペアリングでBN曲線を用いる場合、基数y、y、y、y、y、y、yは、式(29)に示す値となる。すなわち、Optimal ateペアリングでBN曲線を用いる場合、基数算出部42は、式(29)を演算して、基数y、y、y、y、y、y、yを出力する。
なお、式(29)には、元fに対してミラー関数のループパラメータcを冪乗する冪乗演算fが含まれる。
また、Optimal ateペアリングでBN曲線を用いる場合、ベクトル性加算鎖演算部43は、式(28)をベクトル性加算鎖を用いて演算する。例えば、ベクトル性加算鎖演算部43は、図6に示すアルゴリズムを実行することにより、式(28)を演算することができる。
なお、ベクトル性加算鎖のアルゴリズムは、複数の基数のそれぞれの冪指数の加算鎖に基づき定まる。ベクトル性加算鎖のアルゴリズムの生成方法については、例えば、非特許文献(Roberto M. Avanzi, etc. , “Handbook of Elliptic and Hyperelliptic Curve Cryptography”,Chapman & Hall/CRC Taylor & Francis Group,2006, PP.157-159)に記載されている。
つぎに、式(28)および式(29)を演算した場合のコストを算出する。12次拡大体の元の平方算のコストをSとする。また、12次拡大体の元の乗算コストをM12とする。また、この場合、12次拡大体の元に対するcの冪乗コストは、floor(log c)×S+{HW(c)−1}×M12と表せる。HW(c)は、cの符号付きハミングウエイトである。なお、逆元の演算コストは0とする。
式(28)をベクトル性加算鎖で演算した場合、5回の平方算と、9回の乗算とが発生する。また、式(29)を演算した場合、3回のcの冪乗と、5回の乗算とが発生する。従って、Optimal ateペアリングでBN曲線を用いる場合の{AΦ(p)/r}の冪乗の演算コストは、下記の式(30)となる。
Figure 2015022167
式(30)から、{AΦ(p)/r}の演算コストは、ミラー関数のループパラメータcの符号付きハミングウエイトが小さいほど、小さくなることがわかる。ミラー関数のループパラメータcの符号付きハミングウエイトは、ミラー関数演算部20で最小または最小に近い値に設定されている。従って、Optimal ateペアリングでBN曲線を用いる場合、{AΦ(p)/r}の演算コストは、小さいといえる。
このように、最終冪乗部30は、k次拡大体の元に対してミラー関数のループパラメータcを冪乗する演算(f)を含んだ式を演算する。従って、最終冪乗部30は、{AΦ(p)/r}の冪乗を小さいコストで演算することができる。
なお、式(28)では、冪指数が、通常のペアリング演算で用いる冪指数Φ(p)/rに対して6倍となっている。この6倍は、第3冪乗部33の冪指数の“AΦ(p)/r”におけるAに該当する。このように、ペアリング演算装置10は、最終冪乗部30での冪指数が、通常のペアリング演算と比較してA倍(例えば2以上の整数)となる。しかし、冪指数がA倍となったペアリング演算結果も、双線形性および非退化性等のペアリングの性質を満たす。従って、ペアリング演算装置10は、ペアリングベース暗号の処理に用いられることができる。
(Freeman曲線)
つぎに、具体的にOptimal ateペアリングでFreeman曲線を用いる場合の基数算出部42およびベクトル性加算鎖演算部43が演算する式について説明する。
Freeman曲線の埋め込み次数kは10であるので、k次円分多項式Φ(p)は、下記の式(31)となる。
Figure 2015022167
式(31)をrで除算すると、下記の式(32)となる。
Figure 2015022167
Freeman曲線のpおよびrは、式(14)および式(15)に示したように、xの多項式で表される。式(32)に対して式(14)および式(15)を代入して整理すると、下記の式(33)に変形される。
Figure 2015022167
式(33)のλ、λ、λ、λは、下記の式(34)の通りである。
Figure 2015022167
ここで、Optimal ateペアリングでFreeman曲線を用いる場合、c=−5x−1である。そこで、式(34)のλ、λ、λ、λを、ミラー関数のループパラメータcを変数とした式に変換すると、下記の式(35)となる。
Figure 2015022167
冪指数を整数とするために、式(35)のλ、λ、λ、λを5倍する。そして、5倍したλ、λ、λ、λを用いた演算式で、拡大体の元fを冪乗した式は、下記の式(36)となる。
Figure 2015022167
式(36)のy、y、y、y、y、y、yは、下記の式(37)に示す通りである。
Figure 2015022167
以上のように、Optimal ateペアリングでFreeman曲線を用いる場合、基数y、y、y、y、y、y、yは、式(37)に示す値となる。すなわち、Optimal ateペアリングでFreeman曲線を用いる場合、基数算出部42は、式(37)を演算して、基数y、y、y、y、y、y、yを出力する。なお、式(37)には、元fに対するミラー関数のループパラメータcの冪乗演算が含まれる。
また、Optimal ateペアリングでFreeman曲線を用いる場合、ベクトル性加算鎖演算部43は、式(36)をベクトル性加算鎖を用いて演算する。
つぎに、式(36)および式(37)を演算した場合のコストを算出する。10次拡大体の元の平方算のコストをS10とする。また、10次拡大体の元の乗算コストをM10とする。また、この場合、10次拡大体の元に対するcの冪乗コストは、floor(log c)×S10+{HW(c)−1}×M10と表せる。なお、逆元の演算コストは0とする。
式(36)をベクトル性加算鎖で演算した場合、3回の平方算と、10回の乗算とが発生する。また、式(37)を演算した場合、3回のcの冪乗と、3回の乗算とが発生する。従って、Optimal ateペアリングでFreeman曲線を用いる場合の{AΦ(p)/r}の冪乗の演算コストは、下記の式(38)となる。
Figure 2015022167
式(38)から、{AΦ(p)/r}の演算コストは、ミラー関数のループパラメータcの符号付きハミングウエイトが小さいほど、小さくなることがわかる。ミラー関数のループパラメータcの符号付きハミングウエイトは、ミラー関数演算部20で最小または最小に近い値に設定されている。従って、Optimal ateペアリングでFreeman曲線を用いる場合、{AΦ(p)/r}の演算コストは、小さいといえる。このように、最終冪乗部30は、Optimal ateペアリングでFreeman曲線を用いる場合にも、{AΦ(p)/r}の冪乗を小さいコストで演算することができる。
なお、式(36)では、冪指数が、通常のペアリング演算で用いる冪指数Φ(p)/rに対して5倍となっている。この5倍は、第3冪乗部33の冪指数の“AΦ(p)/r”におけるAに該当する。
(変形例1)
式(27)および式(35)では、λ、λ、λ、λの変数を、xから“c”に置き換える変数変換をしていた。これに代えて、λ、λ、λ、λの変数を、xからhに置き換える変数変換をしてもよい。
ここで、hは、ミラー関数のループパラメータcを変数とした式h(c)に基づき定まる値であり、例えばcに対して整数を加算、減算、乗算または除算した値である。
例えば、hは、ミラー関数のループパラメータcを、ミラー関数のループパラメータcの約数で除算した値である。また、hは、ミラー関数のループパラメータcに対して、2(lは整数)を乗算した値である。また、hは、ミラー関数のループパラメータcに対して、整数を加減算した値である。
BN曲線の場合に、hが、cを2で除算した値である例について説明する。この場合、hは、下記の式(41)となる。
Figure 2015022167
式(26)のλ、λ、λ、λをhを変数とした式に変換すると、下記の式(42)となる。
Figure 2015022167
冪指数を整数とするために、式(42)のλ、λ、λ、λを3倍する。そして、3倍したλ、λ、λ、λを用いた演算式で、拡大体の元fを冪乗した式は、下記の式(43)となる。
Figure 2015022167
式(43)のy、y、y、y、y、y、y、yは、下記の式(44)に示す通りである。
Figure 2015022167
すなわち、Optimal ateペアリングでBN曲線を用いる場合、基数算出部42は、ミラー関数のループパラメータcに基づく値hの冪乗演算を含む式(44)を演算して、基数y、y、y、y、y、y、y、yを出力してもよい。そして、この場合、ベクトル性加算鎖演算部43は、式(43)をベクトル性加算鎖を用いて演算する。
式(43)および式(44)を演算した場合のコストを算出する。式(43)をベクトル性加算鎖で演算した場合、5回の平方算と、10回の乗算とが発生する。また、式(44)を演算した場合、3回のhの冪乗と、4回の乗算とが発生する。従って、{3Φ(p)/r}の冪乗の演算コストは、下記の式(45)となる。
Figure 2015022167
ここで、式(30)で示したCost_1と、式(45)で示したCost_3とを比較する。c=6x+2、h=3x+1の場合、floor(log c)={floor(log h)}+1、および、HW(c)=HW(h)となる。
従って、Cost_1−Cost_3=3Sとなる。すなわち、h=3x+1の場合の方が、h=6x+2の場合よりも、最終冪乗部30は{AΦ(p)/r}の冪乗を小さいコストで演算することができる。
(変形例2)
つぎに、BN曲線の場合に、hが、cを2で除算した値(即ち、cに2−lを乗算した値)である例について説明する。なお、lは、1以上の整数である。この場合、hは、下記の式(51)となる。
Figure 2015022167
式(26)のλ、λ、λ、λをhを変数とした式に変換すると、下記の式(52)となる。
Figure 2015022167
冪指数を整数とするために、式(52)のλ、λ、λ、λを3倍する。そして、3倍したλ、λ、λ、λを用いた演算式で、拡大体の元fを冪乗した式は、下記の式(53)となる。
Figure 2015022167
式(53)のy、y、y、y、y、y、y、y、y、yは、下記の式(54)に示す通りである。
Figure 2015022167
すなわち、Optimal ateペアリングでBN曲線を用いる場合、基数算出部42は、ミラー関数のループパラメータcに基づく値hの冪乗演算を含む式(54)を演算して、基数y、y、y、y、y、y、y、y、y、yを出力してもよい。そして、この場合、ベクトル性加算鎖演算部43は、式(53)をベクトル性加算鎖を用いて演算する。
l=10の場合に、式(53)および式(54)を演算した場合のコストを算出する。式(53)をベクトル性加算鎖で演算した場合、28回の平方算と、17回の乗算とが発生する。また、式(54)を演算した場合、3回のhの冪乗と、2回の乗算とが発生する。従って、{3Φ(p)/r}の冪乗の演算コストは、下記の式(55)となる。
Figure 2015022167
ここで、式(30)で示したCost_1と、式(55)で示したCost_4とを比較する。c=6x+2、h=(6x+2)/210の場合、floor(log c)={floor(log h)}+10、および、HW(c)=HW(h)となる。
従って、Cost_1−Cost_4=7S−5M12となる。従って、h=(6x+2)/210の場合の方が、h=6x+2の場合よりも、最終冪乗部30は{AΦ(p)/r}の冪乗を小さいコストで演算することができる場合がある。
(変形例3)
BN曲線の場合に、hが、cから1を減算した値である例について説明する。この場合、hは、下記の式(61)となる。
Figure 2015022167
式(26)のλ、λ、λ、λをhを変数とした式に変換すると、下記の式(62)となる。
Figure 2015022167
冪指数を整数とするために、式(62)のλ、λ、λ、λを6倍する。そして、6倍したλ、λ、λ、λを用いた演算式で、拡大体の元fを冪乗した式は、下記の式(63)となる。
Figure 2015022167
式(63)のy、y、y、y、y、y、yは、下記の式(64)に示す通りである。
Figure 2015022167
すなわち、Optimal ateペアリングでBN曲線を用いる場合、基数算出部42は、ミラー関数のループパラメータcに基づく値hの冪乗演算を含む式(64)を演算して、基数y、y、y、y、y、y、yを出力してもよい。そして、この場合、ベクトル性加算鎖演算部43は、式(63)をベクトル性加算鎖を用いて演算する。
式(63)および式(64)を演算した場合のコストを算出する。式(63)をベクトル性加算鎖で演算した場合、2回の平方算と、11回の乗算とが発生する。また、式(64)を演算した場合、3回のhの冪乗と、4回の乗算とが発生する。従って、{6Φ(p)/r}の冪乗の演算コストは、下記の式(65)となる。
Figure 2015022167
ここで、式(30)で示したCost_1と、式(65)で示したCost_5とを比較する。c=6x+2、h=6x+1の場合、floor(log c)=floor(log h)、および、HW(c)=HW(h)−1となる。
従って、Cost_1−Cost_5=3S−4M12となる。すなわち、h=6x+1の場合は、h=6x+2の場合よりも、最終冪乗部30は、{AΦ(p)/r}の冪乗にかかるコストが大きいものの、従来手法と比べると小さいコストで演算することができる。
以上のように、本実施形態に係るペアリング演算装置10によれば、最終冪乗部30が、k次拡大体の元に対してミラー関数のループパラメータcに基づき定まる値hを冪乗する演算(f)を含んだ式を演算する。これにより、ペアリング演算装置10によれば、ミラー関数のループパラメータcの符号付きハミングウエイトを小さくすることにより、ミラー関数演算のコストを小さくするとともに、最終冪乗の演算コストを小さくすることができる。
(ハードウェア構成)
図7は、実施形態に係るペアリング演算装置10のハードウェア構成の一例を示す図である。実施形態に係るペアリング演算装置10は、CPU101などの制御装置と、ROM(Read Only Memory)102やRAM(Random Access Memory)103などの記憶装置と、ネットワークに接続して通信を行う通信I/F104と、各部を接続するバスを備えている。
実施形態に係るペアリング演算装置10で実行されるプログラムは、ROM102等に予め組み込まれて提供される。
実施形態に係るペアリング演算装置10で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、実施形態に係るペアリング演算装置10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態に係るペアリング演算装置10で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
実施形態に係るペアリング演算装置10で実行されるプログラムは、コンピュータを上述したペアリング演算装置10の各部(ミラー関数演算部20および最終冪乗部30)として機能させうる。なお、これらの各部は、一部または全部がハードウェアにより構成されていてもよい。このコンピュータは、CPU101がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 ペアリング演算装置
20 ミラー関数演算部
30 最終冪乗部
31 第1冪乗部
32 第2冪乗部
33 第3冪乗部
41 記憶部
42 基数算出部
43 ベクトル性加算鎖演算部

Claims (23)

  1. 有限体上に定義される所定の楕円曲線上の2点を入力し、前記有限体の拡大体の元であるペアリング値を出力するペアリング演算装置であって、
    所定のペアリング方式に基づくミラー関数を演算するミラー関数演算部と、
    前記拡大体の元に対して前記ミラー関数のループパラメータに基づき定まる値を冪乗する演算を含む最終冪乗部と、
    を備えるペアリング演算装置。
  2. 前記ミラー関数のループパラメータに基づき定まる値は、前記ミラー関数のループパラメータである
    請求項1に記載のペアリング演算装置。
  3. 前記ミラー関数のループパラメータに基づき定まる値は、前記ミラー関数のループパラメータを、前記ミラー関数のループパラメータの約数で除算した値である
    請求項1に記載のペアリング演算装置。
  4. 前記ミラー関数のループパラメータに基づき定まる値は、前記ミラー関数のループパラメータに対して、2(lは整数)を乗算した値である
    請求項1に記載のペアリング演算装置。
  5. 前記ミラー関数のループパラメータに基づき定まる値は、前記ミラー関数のループパラメータに対して、整数を加減算した値である
    請求項1に記載のペアリング演算装置。
  6. 前記ミラー関数のループパラメータは、符号付き2進展開をした2進表現におけるハミングウエイトが最小となる値である
    請求項1に記載のペアリング演算装置。
  7. 前記ペアリング演算装置は、標数pの有限体上に定義される位数rの所定の楕円曲線上の2点P,Qを入力し、前記有限体のk次拡大体の元であるペアリング値を出力するものであって、
    Φ(p)をk次円分多項式とし、Aを2以上の整数とした場合、前記最終冪乗部は、前記ミラー関数演算部による演算結果に対して、(pk/2−1)・{(pk/2+1)/Φ(p)}・{AΦ(p)/r}を冪乗する
    請求項1に記載のペアリング演算装置。
  8. 前記最終冪乗部は、前記{AΦ(p)/r}を冪指数とした冪乗演算をする冪乗部を有し、
    前記冪乗部は、
    前記ミラー関数のループパラメータを冪指数とした冪乗演算を含む所定の式により複数の基数を算出する基数算出部と、
    前記複数の基数のそれぞれに1以上の整数を冪乗した結果を全て乗算する式を、ベクトル性加算鎖を用いて演算するベクトル性加算鎖演算部と、
    を含む請求項7に記載のペアリング演算装置。
  9. 前記ミラー関数演算部は、Optimal ateペアリングに基づくミラー関数を演算する
    請求項1に記載のペアリング演算装置。
  10. 前記所定の楕円曲線は、BN曲線である
    請求項1に記載のペアリング演算装置。
  11. 前記ミラー関数演算部は、Optimal ateペアリングに基づくミラー関数を演算し、
    前記所定の楕円曲線は、BN曲線であり、
    前記BN曲線は、前記k次拡大体の埋め込み次数kが12であり、前記標数pが36x+36x+24x+6x+1であり、前記位数rが36x+36x+18x+6x+1であり、
    前記ミラー関数のループパラメータcは、6x+2である
    請求項8に記載のペアリング演算装置。
  12. 前記ミラー関数演算部は、2進数で表現した位数rの桁数が下記表のceil(log r)の欄の何れかの値の場合、前記ミラー関数のループパラメータを下記表のcの欄の対応する値とする
    請求項11に記載のペアリング演算装置。
    Figure 2015022167
  13. 前記所定の楕円曲線は、Freeman曲線である
    請求項1に記載のペアリング演算装置。
  14. 前記ミラー関数演算部は、Optimal ateペアリングに基づくミラー関数を演算し、
    前記所定の楕円曲線は、Freeman曲線であり、
    前記Freeman曲線は、前記k次拡大体の埋め込み次数kが10であり、前記標数pが25x+25x+25x+10x+3であり、前記位数rが25x+25x+15x+5x+1であり、
    前記ミラー関数のループパラメータcは、−5x−1である
    請求項8に記載のペアリング演算装置。
  15. 前記ミラー関数演算部は、2進数で表現した位数rの桁数が下記表のceil(log r)の欄の何れかの値の場合、前記ミラー関数のループパラメータを下記表のcの欄の対応する値とする
    請求項14に記載のペアリング演算装置。
    Figure 2015022167
  16. 有限体上に定義される所定の楕円曲線上の2点を入力し、前記有限体の拡大体の元であるペアリング値を出力するペアリング演算方法であって、
    所定のペアリング方式に基づくミラー関数を演算するミラー関数演算ステップと、
    前記拡大体の元に対して前記ミラー関数のループパラメータに基づき定まる値を冪乗する演算を含む最終冪乗ステップと、
    を含むペアリング演算方法。
  17. コンピュータに、有限体上に定義される所定の楕円曲線上の2点を入力し、前記有限体の拡大体の元であるペアリング値を出力するペアリング演算を実行させるプログラムであって、
    前記コンピュータに、
    所定のペアリング方式に基づくミラー関数を演算するミラー関数演算ステップと、
    前記拡大体の元に対して前記ミラー関数のループパラメータに基づき定まる値を冪乗する演算を含む最終冪乗ステップと、
    を実行させるプログラム。
  18. 標数pの有限体上に定義される位数rの所定の楕円曲線上の2点を入力し、前記有限体のk次拡大体の元であるペアリング値を出力するペアリング演算装置であって、
    所定のペアリング方式に基づくミラー関数を演算するミラー関数演算部と、
    前記ミラー関数演算部の演算結果に対して、{A(p−1)/r}乗(Aは2以上の整数)を演算する最終冪乗部と、
    を備えるペアリング演算装置。
  19. 前記所定のペアリング方式は、Optimal ateペアリングである
    請求項18に記載のペアリング演算装置。
  20. 標数pの有限体上に定義される位数rの所定の楕円曲線上の2点を入力し、前記有限体のk次拡大体の元であるペアリング値を出力するペアリング演算方法であって、
    所定のペアリング方式に基づくミラー関数を演算するミラー関数演算ステップと、
    前記ミラー関数演算ステップの演算結果に対して、{A(p−1)/r}乗(Aは2以上の整数)を演算する冪乗演算ステップと、
    を含むペアリング演算方法。
  21. コンピュータに、標数pの有限体上に定義される位数rの所定の楕円曲線上の2点を入力し、前記有限体のk次拡大体の元であるペアリング値を出力するペアリング演算を実行させるプログラムであって、
    前記コンピュータに、
    所定のペアリング方式に基づくミラー関数を演算するミラー関数演算ステップと、
    前記ミラー関数演算ステップの演算結果に対して、{A(p−1)/r}乗(Aは2以上の整数)を演算する冪乗演算ステップと、
    を実行させるプログラム。
  22. 標数pの有限体上に定義される位数rのBN曲線上の2点を入力し、前記有限体のk次拡大体の元であるペアリング値を出力するペアリング演算装置であって、
    Optimal ateペアリングに基づくミラー関数を演算するミラー関数演算部と、
    前記ミラー関数演算部による演算結果を冪乗する最終冪乗部と、
    を備え、
    前記BN曲線は、前記k次拡大体の埋め込み次数kが12であり、前記標数pが36x+36x+24x+6x+1であり、前記位数rが36x+36x+18x+6x+1であり、
    前記ミラー関数演算部は、2進数で表現した位数rの桁数が下記表のceil(log r)の欄の何れかの値の場合、前記ミラー関数のループパラメータを下記表のcの欄の対応する値とする
    ペアリング演算装置。
    Figure 2015022167
  23. 標数pの有限体上に定義される位数rのFreeman曲線上の2点を入力し、前記有限体のk次拡大体の元であるペアリング値を出力するペアリング演算装置であって、
    Optimal ateペアリングに基づくミラー関数を演算するミラー関数演算部と、
    前記ミラー関数演算部による演算結果を冪乗する最終冪乗部と、
    を備え、
    前記Freeman曲線は、前記k次拡大体の埋め込み次数kが10であり、前記標数pが25x+25x+25x+10x+3であり、前記位数rが25x+25x+15x+5x+1であり、
    前記ミラー関数演算部は、2進数で表現した位数rの桁数が下記表のceil(log r)の欄の何れかの値の場合、前記ミラー関数のループパラメータを下記表のcの欄の対応する値とする
    ペアリング演算装置。
    Figure 2015022167
JP2013150631A 2013-07-19 2013-07-19 ペアリング演算装置、方法およびプログラム Pending JP2015022167A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013150631A JP2015022167A (ja) 2013-07-19 2013-07-19 ペアリング演算装置、方法およびプログラム
US14/334,007 US20150023496A1 (en) 2013-07-19 2014-07-17 Pairing computation apparatus, pairing computation method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013150631A JP2015022167A (ja) 2013-07-19 2013-07-19 ペアリング演算装置、方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2015022167A true JP2015022167A (ja) 2015-02-02

Family

ID=52343583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013150631A Pending JP2015022167A (ja) 2013-07-19 2013-07-19 ペアリング演算装置、方法およびプログラム

Country Status (2)

Country Link
US (1) US20150023496A1 (ja)
JP (1) JP2015022167A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11811752B1 (en) * 2022-08-03 2023-11-07 1080 Network, Inc. Systems, methods, and computing platforms for executing credential-less network-based communication exchanges

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4189828B1 (ja) * 2007-10-30 2008-12-03 国立大学法人 岡山大学 ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム

Also Published As

Publication number Publication date
US20150023496A1 (en) 2015-01-22

Similar Documents

Publication Publication Date Title
KR101992270B1 (ko) 디지털 서명 생성 방법 및 장치
US8345864B1 (en) Elliptic curve cryptography scalar multiplication with on demand acceleration table generation
US20170091148A1 (en) Method for calculating elliptic curve scalar multiplication
JP2012014203A5 (ja)
US9811318B2 (en) Montgomery multiplication method for performing final modular reduction without comparison operation and montgomery multiplier
US20090136025A1 (en) Method for scalarly multiplying points on an elliptic curve
Cenk et al. Improved three-way split formulas for binary polynomial and Toeplitz matrix vector products
US8856200B2 (en) Exponentiation calculation apparatus and exponentiation calculation method
CN102393812A (zh) 椭圆曲线密码体制中的快速点乘算法的实现方法
JP3542278B2 (ja) モンゴメリ・リダクション装置及び記録媒体
Dumas On newton–raphson iteration for multiplicative inverses modulo prime powers
JP5403630B2 (ja) スカラ倍算器及びスカラ倍算プログラム
İlter et al. Efficient big integer multiplication in cryptography
JP2015022167A (ja) ペアリング演算装置、方法およびプログラム
Ding et al. A reconfigurable high-speed ECC processor over NIST primes
Vollala et al. Efficient modular exponential algorithms compatible with hardware implementation of public‐key cryptography
US11368303B2 (en) System and method for calculating faster ECC scalar multiplication on FPGA
CN117254902A (zh) 数据处理方法、装置、设备及存储介质
JP6387466B2 (ja) 電子計算装置
Hassan et al. Computing in Cryptography
de Oliveira et al. An efficient software implementation of the hash-based signature scheme MSS and its variants
Ikesaka et al. Improvement of Final Exponentiation for a Pairing on FK12 Curve and its Implementation
KR101777400B1 (ko) 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법
Brar et al. Design and implementation of block method for computing NAF
CN117134917B (zh) 一种用于椭圆曲线加密的快速模运算方法和装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20151102