JP2005241898A - 楕円曲線ペアリング高速演算方法及び装置 - Google Patents
楕円曲線ペアリング高速演算方法及び装置 Download PDFInfo
- Publication number
- JP2005241898A JP2005241898A JP2004050737A JP2004050737A JP2005241898A JP 2005241898 A JP2005241898 A JP 2005241898A JP 2004050737 A JP2004050737 A JP 2004050737A JP 2004050737 A JP2004050737 A JP 2004050737A JP 2005241898 A JP2005241898 A JP 2005241898A
- Authority
- JP
- Japan
- Prior art keywords
- elliptic curve
- calculation
- unit
- pairing
- signature
- 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
Links
Images
Classifications
-
- 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/3066—Public 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/3073—Public 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
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
Abstract
【課題】
高速なデジタル署名方法における楕円曲線のペアリング演算装置を提供する。
【解決手段】
標数3の楕円曲線上で定義されるTateペアリングを計算する際に、(1) 3倍算に付随する直線を計算する際に必要となる逆元計算を直線を変形することにより削減する。(2) 中間データf1を計算するとき従来例ではf1を更新するたびに逆元計算を行う必要があったが、本発明ではf1=a/bとみなしaとbを独立に計算し最後にaをbで割ることによりf1を計算する際の複数の逆元計算を1回に削減する。これら2つの改良を行うことにより3倍算に付随して直線を計算する際の定義体上の逆元計算回数を0回および中間データf1を計算する際の逆元計算を1回に削減し、Tate ペアリングの計算速度に影響する逆元計算回数を大幅に削減する。
【選択図】図3
高速なデジタル署名方法における楕円曲線のペアリング演算装置を提供する。
【解決手段】
標数3の楕円曲線上で定義されるTateペアリングを計算する際に、(1) 3倍算に付随する直線を計算する際に必要となる逆元計算を直線を変形することにより削減する。(2) 中間データf1を計算するとき従来例ではf1を更新するたびに逆元計算を行う必要があったが、本発明ではf1=a/bとみなしaとbを独立に計算し最後にaをbで割ることによりf1を計算する際の複数の逆元計算を1回に削減する。これら2つの改良を行うことにより3倍算に付随して直線を計算する際の定義体上の逆元計算回数を0回および中間データf1を計算する際の逆元計算を1回に削減し、Tate ペアリングの計算速度に影響する逆元計算回数を大幅に削減する。
【選択図】図3
Description
本発明は、情報セキュリティ技術としての暗号技術に関するものであり、特に、有限体上の楕円曲線を用いて定義されるTate ペアリングを用いて実現する暗号及びデジタル署名技術において必要な楕円曲線ペアリング高速演算装置に関する。
より高い安全性が期待できるデジタル署名方法として、以下のような、楕円曲線上で定義されるペアリングの性質を用いた方法が提案されている(たとえば、非特許文献1参照)。
有限体Fq上の楕円曲線をE(Fq)、nねじれ群E[n]をE(Fq')の点の内、位数がnで割り切れる点の集合とする。ただしq'は正整数kを用いてq'=qkと表されかつ以下の2つの条件を満たすものとする。
1. nはq'-1を割り切る。
2. nはα=1,2,...,k-1に対してqα-1を割り切らない。
1. nはq'-1を割り切る。
2. nはα=1,2,...,k-1に対してqα-1を割り切らない。
このとき、E[n]はZn×Znと同型となることが知られている。Tate ペアリングeはE[n]× E(Fq')/n E(Fq')からFq' */( Fq' *)n.への写像で、以下の条件を満たす。
3. 任意のR1,∈E[n], R2∈n E(Fq')及びa,b∈Zに対してe(aR1,bR2)=e(R1,R2)ab.
4. R∈E[n]に対してe(R,R')≠1を満たすR'∈E(Fq')が存在する。
5. 任意のR1∈E[n],R2∈En (Fq')に対して、e(R1,R2)は多項式時間で計算できる。
3. 任意のR1,∈E[n], R2∈n E(Fq')及びa,b∈Zに対してe(aR1,bR2)=e(R1,R2)ab.
4. R∈E[n]に対してe(R,R')≠1を満たすR'∈E(Fq')が存在する。
5. 任意のR1∈E[n],R2∈En (Fq')に対して、e(R1,R2)は多項式時間で計算できる。
次に上記楕円曲線のペアリングを用いたデジタル署名方法をまず述べる。
Fq上定義された楕円曲線をE(Fq)とし、そのnねじれ群の部分群をG1=E[n]∩E(Fq),G2=E(Fq')/nE(Fq'),署名対象データ{0,1}*からG1への写像をMTGとする。MTGはハッシュ関数を用いて構成される。
(1)鍵生成
G2の点をGとする。
ステップ1:ランダムに1<d<nを満たすdを選択し秘密鍵とする。
ステップ2:Q=dGを計算し公開鍵とする。
G2の点をGとする。
ステップ1:ランダムに1<d<nを満たすdを選択し秘密鍵とする。
ステップ2:Q=dGを計算し公開鍵とする。
(2)署名生成
秘密鍵d、署名対象データM∈{0,1}*に対して以下の処理を行う。
ステップ1:R=MTG(M)∈G1を計算する。
ステップ2:σ=dRを計算する。
ステップ3:σのx座標s∈FqをMに対する署名とする。
秘密鍵d、署名対象データM∈{0,1}*に対して以下の処理を行う。
ステップ1:R=MTG(M)∈G1を計算する。
ステップ2:σ=dRを計算する。
ステップ3:σのx座標s∈FqをMに対する署名とする。
(3)署名検証
公開鍵Q、メッセージM∈{0,1}*、デジタル署名sに対して以下の処理を行う
ステップ1:σ=(s,y)がE(Fq)上で位数nとなるようなy∈Fqを見つける。もしそのようなyが無ければ「無効」を出力し終了する。
ステップ2:R=MTG(M)∈G1を計算する。
ステップ3:e(σ,G)=e(R,Q)またはe-1(σ,G)=e(R,Q)が成立するか検証し、成立する場合「有効」を出力、成立しない場合「無効」を出力する。
公開鍵Q、メッセージM∈{0,1}*、デジタル署名sに対して以下の処理を行う
ステップ1:σ=(s,y)がE(Fq)上で位数nとなるようなy∈Fqを見つける。もしそのようなyが無ければ「無効」を出力し終了する。
ステップ2:R=MTG(M)∈G1を計算する。
ステップ3:e(σ,G)=e(R,Q)またはe-1(σ,G)=e(R,Q)が成立するか検証し、成立する場合「有効」を出力、成立しない場合「無効」を出力する。
上述のように、楕円曲線を用いたデジタル署名方法では、署名検証時においてペアリングの計算が必要となる。
標数3の定義体Fq(q=3m)上に定義された楕円曲線y2=x3-x+bを用いた場合のTate ペアリングの計算方法が非特許文献2に示されている。
この場合、楕円曲線上の点をP=(x1,y1)とすると、Pにおいて楕円曲線と接する直線はλ2=1/y1を用いて
l1:y-λ2x+(λ2x1-y1)=0と表せる。
Pの2倍点2P=(x2,y2)はx2=λ2 2+x1,y2=-λ2 3-y1と表すことができる。
また2Pを通る垂線はl2:x-x2=0で表される。
Pと2Pを通る直線は
l'1:y+(λ2-y1 3)x+(y1 3x1-λ2x1-y1)=0と表せる。
Pの3倍点3P=(x3,y3)は
x3=x1+y1 2+y1 6、y3=-y1 9と表すことができ、3倍点の計算に逆元計算を必要しないという特徴がある。
また3Pを通る垂線はl'2:x-x3=0で表される。
l1:y-λ2x+(λ2x1-y1)=0と表せる。
Pの2倍点2P=(x2,y2)はx2=λ2 2+x1,y2=-λ2 3-y1と表すことができる。
また2Pを通る垂線はl2:x-x2=0で表される。
Pと2Pを通る直線は
l'1:y+(λ2-y1 3)x+(y1 3x1-λ2x1-y1)=0と表せる。
Pの3倍点3P=(x3,y3)は
x3=x1+y1 2+y1 6、y3=-y1 9と表すことができ、3倍点の計算に逆元計算を必要しないという特徴がある。
また3Pを通る垂線はl'2:x-x3=0で表される。
非特許文献2に示す計算方法を以下に説明する。
入力: 標数3の楕円曲線y2=x3-x+b、n、部分群G1,G2、2点P∈G1,Q∈G2.
出力: Tate ペアリングe(P,Q).
ステップ1: S∈E(Fq)をランダムに選択しQ'=Q+Sを計算する。
出力: Tate ペアリングe(P,Q).
ステップ1: S∈E(Fq)をランダムに選択しQ'=Q+Sを計算する。
ステップ2: P2=2Pおよび2((P)-(OE))=(P2)-(OE)+(f)を満たす有理関数fに対してf2=f((Q')-(S))を計算する。
ステップ3: nの3進展開を行いn=n0+n13+…+nr3r,nj∈{-1,0,1} (0≦j≦r-1),nr≠0とおく。
ステップ4: nr=1であればT1=P,f1=1,l nr=-1であればT1= P2,f1=f2とおく。
ステップ5: i=r-1とおく。
ステップ6: iが1以上の間、以下の処理を繰り返す。
ステップ6.1:
(1) 直線l1,l2,l'1,l'2を求める。
(2) T1=3T1を計算する。
(3) f1=f1 3(l1/l2・l'1/l'2)((Q')-(S))を計算する。
(4) l=1であればステップ6.2、l=-1であればステップ6.3、
l=0であればステップ6.4に進む。
(1) 直線l1,l2,l'1,l'2を求める。
(2) T1=3T1を計算する。
(3) f1=f1 3(l1/l2・l'1/l'2)((Q')-(S))を計算する。
(4) l=1であればステップ6.2、l=-1であればステップ6.3、
l=0であればステップ6.4に進む。
ステップ6.2:
(1) T1とPを通る直線l3、T1+Pを通る垂線l4を求める。
(2) T1=T1+P計算する。
(3) f1=f1(l3/l4)((Q')-(S))を計算する。
(4) ステップ6.4に進む。
(1) T1とPを通る直線l3、T1+Pを通る垂線l4を求める。
(2) T1=T1+P計算する。
(3) f1=f1(l3/l4)((Q')-(S))を計算する。
(4) ステップ6.4に進む。
ステップ6.3:
(1) T1と-Pを通る直線l3、T1-Pを通る垂線l4を求める。
(2) T1=T1-P計算する。
(3) f1=f1=(l3/l4)((Q')-(S))を計算する。
(4) ステップ6.4に進む。
(1) T1と-Pを通る直線l3、T1-Pを通る垂線l4を求める。
(2) T1=T1-P計算する。
(3) f1=f1=(l3/l4)((Q')-(S))を計算する。
(4) ステップ6.4に進む。
ステップ6.4:i=i-1を計算する。
ステップ7: e=f1 (q'-1)/nを計算する。
ステップ8: eを出力する。
D.Boneh, B.Lynn, H.Shacha著 「Short Signatures from the Weil Pairing」Springer-Verlag,2001年, Proceedings Asiacrypt 2001, Lecture Notes in Computer Science 2248,p-514-532
S.Galbraith, K.Harrison, D.Soldera著 「Implemeting the Tate Pairing」Springer-Verlag,2002年, Proceedings of ANTS V, Lecture Notes in Computer Science 2369,p-324-337
楕円曲線上で定義されるペアリングを用いたデジタル署名方法では、ペアリング演算が必須である。署名検証の際のペアリング演算は、署名検証処理において負荷が大きいため、これを高速に行う必要がある。
ペアリング演算は、大きく分けて楕円曲線上の点同士の演算と、楕円曲線上の2点を通る直線および楕円曲線と1点で接する接線の計算と中間データの更新と、に分かれる。
標数3とした場合の楕円曲線上Tateペアリングの点の3倍算は、定義体上の乗算に比べて負荷の大きい逆元計算を行わなくても良いという特徴がある。しかし、上述の方法では、3倍算に付随した直線l1,l2,l'1,l'2を求める際に演算速度の面で不利な逆元を計算する必要が生じる。また、楕円曲線上の加算、減算、3倍算を行うと同時に中間データf1の値を更新していく必要があるが、この際必ず負担の大きい逆元計算を必ず行う必要がある。
本発明は上述の問題点を踏まえて行われたもので、標数3の楕円曲線上で定義されるTate ペアリングの計算速度に影響する逆元計算を大幅に削減する。
具体的には、
(1)3倍算に付随する直線を計算する際に必要となる逆元計算を行う必要を無くすために直線の式を変形する。
(1)3倍算に付随する直線を計算する際に必要となる逆元計算を行う必要を無くすために直線の式を変形する。
(2)f1を計算するとき、f1=a/bとみなしaとbを独立に計算し最後にaをbで割る。
の2つの改良を行うことにより、3倍算に付随する定義体上の逆元計算を無くし、中間データf1を計算する際の逆元計算を1回に削減する。
これらの改良により高速な暗号装置および署名装置を提供することが可能になる。
本発明により、高速なデジタル署名方法を可能にする楕円曲線デジタル署名装置を提供できるため、その実用的価値は大きい。
図面を本発明の実施形態を説明する。
図1は本実施形態を実現する楕円曲線スカラー倍演算装置(以下、演算装置という)101の機能構成図である。演算装置101は、制御演算部102およびデータ保持部103から構成される。
制御演算部102は、楕円曲線のパラメータ、定義体情報、部分群情報、演算対象データを入力し、演算結果としてTate ペアリングe(P,Q)を出力する入出力部104、楕円曲線ペアリング演算装置101全体を制御する制御部105、ペアリング演算を行うペアリング演算部106から構成される。
データ保持部103は入出力部104により入力された演算対象データである楕円曲線の部分群G1,G2情報及び部分群の点P,Qを保持する演算対象データ保持部107、楕円曲線のパラメータ、定義体情報を保持する楕円曲線情報保持部108、ペアリング演算部106で用いられる中間データを保持する中間データ保持部109、制御演算部102で計算された演算結果を保持する演算結果保持部110から構成される。
次に各々の動作は制御部105により制御されているものとして動作の流れを説明する。
入出力手段104により入力された演算対象データは演算対象データ保持部107に保持される。入出力手段104により入力された楕円曲線パラメータ、定義体情報は楕円曲線情報保持部108に保持される。次にペアリング演算部106において演算対象データ保持部107、楕円曲線情報保持部108で保持されている情報を用いてペアリングを計算する。ペアリング演算における中間演算結果は必要に応じて中間データ保持部109において保持される。ペアリング演算は図2に示すフローチャートに従って行われるものとする。最後に楕円曲線ペアリング演算装置101は入出力装置104により演算結果を出力する。
入出力手段104により入力された演算対象データは演算対象データ保持部107に保持される。入出力手段104により入力された楕円曲線パラメータ、定義体情報は楕円曲線情報保持部108に保持される。次にペアリング演算部106において演算対象データ保持部107、楕円曲線情報保持部108で保持されている情報を用いてペアリングを計算する。ペアリング演算における中間演算結果は必要に応じて中間データ保持部109において保持される。ペアリング演算は図2に示すフローチャートに従って行われるものとする。最後に楕円曲線ペアリング演算装置101は入出力装置104により演算結果を出力する。
上記の演算装置101は、CPUとメモリと、ハードディスク装置やその他の外部記憶装置と、キーボードなどの入力装置と、ディスプレイなどの出力装置と、外部記憶装置や入出力装置とのインターフェースを備えた、一般的な構成を有する情報処理装置上に構築することができる。
演算部102の各処理部104〜106は、CPUがメモリにロードされたプログラム(コード、モジュールともいう)を実行することで、情報処理装置上に具現化されるプロセスとして実現される。また、メモリや外部記憶装置がデータ保持部103の各保持部107〜110として使用される。
上述した各プログラムは、予め外部記憶装置に記憶され、必要に応じてメモリ上にロードされ、CPUにより実行される。上記プログラムは、可搬性の記憶媒体、例えばCD-ROMを扱う外部記憶装置を介して、必要に応じて、可搬性の記憶媒体からメモリにロードされても良いし、一旦、外部記憶装置を介して、可搬性の記憶媒体から外部記憶装置から外部記憶装置にインストールされた後、必要に応じて、外部記憶装置からメモリにロードされても良いし、さらには、図示していないネットワーク接続装置を介して、ネットワーク上の情報処理装置が読み取り可能な媒体の一種である伝送信号により、一旦外部記憶装置にダウンロードされてからメモリにロードされても良いし、あるいは、直接、ネットワーク経由でメモリにロードされても良い。
次に図2〜3を用いて本実施形態の動作を詳細に説明する。
図2は図1において行われている処理を説明するフローチャートである。
<ステップ201>
楕円曲線の情報として標数3の定義体Fq(q=3m)、楕円曲線E:y2=x3-x+b、以下の条件を満たすq',k,nを入力する。
1. q'は正整数kを用いてqkと表される。
2. nはq'-1を割り切る。
3. nはα=1,2,...,k-1に対してqα-1を割り切らない。
楕円曲線の情報として標数3の定義体Fq(q=3m)、楕円曲線E:y2=x3-x+b、以下の条件を満たすq',k,nを入力する。
1. q'は正整数kを用いてqkと表される。
2. nはq'-1を割り切る。
3. nはα=1,2,...,k-1に対してqα-1を割り切らない。
<ステップ202>
演算対象データとして楕円曲線の部分群G1,G2の情報、2点P∈G1,Q∈G2を入力する。
演算対象データとして楕円曲線の部分群G1,G2の情報、2点P∈G1,Q∈G2を入力する。
<ステップ203>
Tateペアリングe(P,Q)を計算する。
Tateペアリングe(P,Q)を計算する。
<ステップ204>
演算結果e(P,Q)を出力する。
演算結果e(P,Q)を出力する。
上記ステップ203を、図3に示すペアリング演算部106の動作説明フローチャートを用いて詳細に説明を行う。
<ステップ301>
S∈E(Fq')をランダムに選択しQ'=Q+Sを計算する。
S∈E(Fq')をランダムに選択しQ'=Q+Sを計算する。
<ステップ302>
nの3進展開を行いn=n0+n13+…+nr3r,nj∈{-1,0,1} (0≦j≦r-1),nr≠0とおきnr=1であればステップ303に進み、nr=-1であればステップ304に進む。
nの3進展開を行いn=n0+n13+…+nr3r,nj∈{-1,0,1} (0≦j≦r-1),nr≠0とおきnr=1であればステップ303に進み、nr=-1であればステップ304に進む。
<ステップ303>
T1=P,a=1,b=1とおきステップ305に進む。
T1=P,a=1,b=1とおきステップ305に進む。
<ステップ304>
T1=2P,2((P)-(OE))=(2P)-(OE)+(f)を満たす有理関数fに対してf((Q')-(S))を計算し分子をa,分母をbとおきステップ305に進む。
T1=2P,2((P)-(OE))=(2P)-(OE)+(f)を満たす有理関数fに対してf((Q')-(S))を計算し分子をa,分母をbとおきステップ305に進む。
<ステップ305>
i=r-1とおく。
i=r-1とおく。
<ステップ306>
T1=(x1,y1)とし、非特許文献2が示すλ2=1/y1を用いずに直線を定義する。具体的には、
l1(x,y)=y1y-x+(x1-y1 2)、l2(x,y)=y1 2(x-x1)-1、
l'1(x,y)=y1y+(1-y1 4)x+(y1 4x1-x1-y1 2)とl'2(x,y)=x-(x1+y1 2+y1 6)とそれぞれおく。
T1=(x1,y1)とし、非特許文献2が示すλ2=1/y1を用いずに直線を定義する。具体的には、
l1(x,y)=y1y-x+(x1-y1 2)、l2(x,y)=y1 2(x-x1)-1、
l'1(x,y)=y1y+(1-y1 4)x+(y1 4x1-x1-y1 2)とl'2(x,y)=x-(x1+y1 2+y1 6)とそれぞれおく。
<ステップ307>
T1=3T1=(x1+y1 2+y1 6,-y1 9)を計算する。
T1=3T1=(x1+y1 2+y1 6,-y1 9)を計算する。
<ステップ308>
a=a3(l1・l'1)((Q')-(S))およびb=b3(l2・l'2)((Q')-(S))を計算し、ni=0であればステップ313に進み、ni=1であればステップ309に進み、ni=-1であればステップ311に進む。
a=a3(l1・l'1)((Q')-(S))およびb=b3(l2・l'2)((Q')-(S))を計算し、ni=0であればステップ313に進み、ni=1であればステップ309に進み、ni=-1であればステップ311に進む。
<ステップ309>
T1=(x1,y1),P=(xP,yP), T1=(x2,y2)=T1+P,としl3(x,y)=(xP-x1)(y-yP)-(yP-y1)(x-xP),l4(x,y)=x-x2求める。
T1=(x1,y1),P=(xP,yP), T1=(x2,y2)=T1+P,としl3(x,y)=(xP-x1)(y-yP)-(yP-y1)(x-xP),l4(x,y)=x-x2求める。
<ステップ310>
a=al3((Q')-(S))およびb=bl4((Q')-(S))を計算しステップ313に進む。
a=al3((Q')-(S))およびb=bl4((Q')-(S))を計算しステップ313に進む。
<ステップ311>
T1=(x1,y1),P=(xP,yP),T1=(x2,y2)=T1-P,としl3(x,y)=(xP-x1)(y+yP)+(yP+y1)(x-xP),l4(x,y)=x-x2をそれぞれ求める。
T1=(x1,y1),P=(xP,yP),T1=(x2,y2)=T1-P,としl3(x,y)=(xP-x1)(y+yP)+(yP+y1)(x-xP),l4(x,y)=x-x2をそれぞれ求める。
<ステップ312>
a=al3((Q')-(S))及びb=bl4((Q')-(S))を計算しステップ313に進む。
a=al3((Q')-(S))及びb=bl4((Q')-(S))を計算しステップ313に進む。
<ステップ313>
i=i-1を計算しi≧1であればステップ306に進み、そうでなければステップ314に進む。
i=i-1を計算しi≧1であればステップ306に進み、そうでなければステップ314に進む。
<ステップ314>
f1=a/bを計算する。
f1=a/bを計算する。
<ステップ315>
e(P,Q)=f1 (q'-1)/nを計算する。
e(P,Q)=f1 (q'-1)/nを計算する。
<ステップ316>
e(P,Q)を出力する。
e(P,Q)を出力する。
以上述べたように、本実施形態によれば、3倍算(ステップ306〜308)に付随する直線を計算する際に、定義体上の逆元計算を無くし、中間データf1を計算する際(ステップ308,310,312,314)の逆元計算を1回に削減することが可能となる。
次に本実施形態を用いたデジタル署名を行う際必要となる鍵生成装置について、図4を用いて説明する。
鍵生成装置401は、制御演算部402およびデータ保持部403から構成される。制御演算部402は、楕円曲線、G2の元G及びn、定義体情報を入力し、生成された鍵情報を出力する入出力部404、鍵生成装置401全体を制御する制御部405、乱数を生成する乱数生成部406、点Gの整数倍を計算する楕円曲線スカラー倍演算部407から構成される。
データ保持部403は入出力部により入力された楕円曲線のパラメータ、ベースポイント及びその位数、定義体情報を保持する楕円曲線情報保持部408、制御演算部で生成された鍵情報及び楕円曲線の情報を保持する鍵情報保持部409から構成される。
次に各々の動作は制御部405により制御されているものとして動作の流れを説明する。入出力手段404により入力された楕円曲線パラメータ、点G、定義体情報は、楕円曲線情報保持部408と鍵情報保持部409に保持される。次に乱数生成部406は、0<d<nを満たす乱数dを生成し、これを秘密鍵として鍵情報保持部409で保持する。次に楕円曲線スカラー倍演算部407は、Gのd倍Q=dGを計算し、公開鍵として鍵情報保持部409で保持する。最後に鍵生成装置401は、入出力部404により楕円曲線情報、点G、定義体情報、秘密鍵d及び公開鍵Qを出力する。
次に本実施形態を用いた署名生成装置について、図5を用いて説明する。
署名生成装置501は、制御演算部502およびデータ保持部503から構成される。制御演算部502は、楕円曲線情報を入力し、生成されたデジタル署名を出力する入出力部504、署名生成装置501全体を制御する制御部505、デジタル署名生成処理を行う署名生成部506、また署名生成部は署名対象データより楕円曲線上の点を生成する楕円曲線点生成部507、楕円曲線上の点の整数倍を計算する楕円曲線スカラー倍演算部508から構成される。
データ保持部503は入出力部504により入力された署名生成データを保持する署名対象データ保持部509、同様に入出力部により入力された楕円曲線、部分群G1,G2、定義体情報を保持する楕円曲線情報保持部510、署名生成に用いる秘密鍵を保持する秘密鍵情報保持部511、制御演算部で生成されたデジタル署名を保持する署名保持部512から構成される。
次に各々の動作は制御部505により制御されているものとして動作の流れを説明する。入出力手段504により入力された署名対象データは、署名対象データ保持部509に保持される。入出力手段504により入力された楕円曲線、部分群G1,G2、定義体情報は、楕円曲線情報保持部510に保持される。入出力手段504により入力された秘密鍵情報は、秘密鍵情報保持部511に保持される。次に署名生成部506は、署名対象データ保持部509、楕円曲線情報保持部510、秘密鍵情報保持部511で保持されている情報を用いてデジタル署名生成処理を行い署名を作成する。上記デジタル署名生成処理は、図6に示すフローチャートに従って行われるものとする。署名生成装置501は、最後に署名生成部506で作成されたデジタル署名を、署名情報保持部512に保持するとともに入出力部504より出力する。
図5の署名生成部506で行われるデジタル署名生成処理のフローチャートを図6に示す。以下秘密鍵d、署名対象データM∈{0,1}*として説明を行う。
<ステップ601>
R=MTG(M)∈G1を計算する。
R=MTG(M)∈G1を計算する。
<ステップ602>
σ=dRを計算する。
σ=dRを計算する。
<ステップ603>
σのx座標s∈FqをMに対する署名とする。
σのx座標s∈FqをMに対する署名とする。
次に本実施形態を用いた署名検証装置について、図7を用いて説明する。
署名検証装置701は、制御演算部702およびデータ保持部703から構成される。制御演算部702は、楕円曲線情報、署名検証対象データ及びデジタル署名を入力し、検証結果を出力する入出力部704、署名検証装置701全体を制御する制御部705、署名検証を行う署名検証部706からなる。
署名検証部706は、与えられたデジタル署名に対応する楕円曲線上の点が存在するかどうかを検証する楕円曲線検証部707、署名検証対象データより楕円曲線上の点を生成する楕円曲線点生成部708、及び楕円曲線上のペアリングを計算するペアリング演算部709(図1のペアリング演算部106に相当)から構成される。
データ保持部703は入出力部704により入力された署名検証の対象である署名検証対象データを保持する署名検証対象データ保持部710、入出力部704により入力されたデジタル署名を保持する署名データ保持部711、入出力部704により入力された楕円曲線、部分群G1,G2、定義体情報を保持する楕円曲線情報保持部712(図1の楕円曲線情報保持部108に相当)、入出力部704により入力された署名検証に用いる公開鍵を保持する公開鍵情報保持部713、署名検証部706における署名検証結果を保持する署名検証結果保持部714から構成される。
次に各々の動作は制御部705により制御されているものとして動作の流れを説明する。入出力手段704により入力された署名検証対象データは署名検証対象データ保持部710に保持される。入出力手段704により入力されたデジタル署名は署名データ保持部711に保持される。入出力手段704により入力された楕円曲線パラメータ、部分群G1,G2、点G、定義体情報は楕円曲線情報保持部712に保持される。入出力手段704により入力された公開鍵情報は公開鍵情報保持部713に保持される。次に署名検証部706は、署名検証対象データ保持部710、署名データ保持部711、楕円曲線情報保持部712、公開鍵情報保持部713で保持されている情報を用いて署名検証処理を行い署名検証結果を生成する。署名検証処理は、図8に示すフローチャートに従って行われるものとする。最後に署名検証装置701は、署名検証部706における署名検証結果を、署名検証結果保持部714に保持するとともに入出力部704より出力する。
図8は図7の署名検証部706で行われる署名検証処理のフローチャートを示す。以下公開鍵Q、メッセージM∈{0,1}*、デジタル署名sとして説明を行う。
<ステップ801>
σ=(s,y)がE(Fq)上で位数nの点となるようなy∈Fqを見つける。存在すればステップ802に進み、存在しなければステップ805に進む。
σ=(s,y)がE(Fq)上で位数nの点となるようなy∈Fqを見つける。存在すればステップ802に進み、存在しなければステップ805に進む。
<ステップ802>
R=MTG(M)∈G1を計算する。
R=MTG(M)∈G1を計算する。
<ステップ803>
e(σ,G)、e(R,Q)を図2、3に示す方法によって計算し、
e(σ,G)=e(R,Q)またはe-1(σ,G)=e(R,Q)が成立するか検証する。
e(σ,G)、e(R,Q)を図2、3に示す方法によって計算し、
e(σ,G)=e(R,Q)またはe-1(σ,G)=e(R,Q)が成立するか検証する。
成立する場合ステップ804に進み、成立しない場合ステップ805に進む。
<ステップ804>
「有効」を出力する。
「有効」を出力する。
<ステップ805>
「無効」を出力する。
「無効」を出力する。
101:楕円曲線ペアリング高速演算装置、102:制御演算部、103:データ保持部、104:入出力部、105:制御部、106:ペアリング演算部、107:演算対象データ保持部、108:楕円曲線情報保持部、109:中間データ保持部、110:演算結果保持部、401:鍵生成装置、402:制御演算部、403:データ保持部、404:入出力部、405:制御部、406:乱数生成部、407:楕円曲線スカラー倍演算部、408:楕円曲線情報保持部、409:鍵情報保持部、501:署名生成装置、502:制御演算部、503:データ保持部、504:入出力部、505:制御部、506:署名生成部、507:楕円曲線点生成部、508:楕円曲線スカラー倍演算部、509:署名対象データ保持部、510:楕円曲線情報保持部、512:秘密鍵情報保持部、513:署名情報保持部、701:署名検証装置、702:制御演算部、703:データ保持部、704:入出力部、705:制御部、706:署名検証部、707:楕円曲線検証部、708:楕円曲線点生成部、709:ペアリング演算部、710:署名検証対象データ保持部、711:署名データ保持部、712:楕円曲線情報保持部、713:公開鍵情報保持部、714:署名検証結果保持部。
Claims (5)
- 楕円曲線演算装置であって、
演算対象となる楕円曲線および演算対象データを入力する入力部と、
楕円曲線の情報を保持する楕円曲線情報保持部と、
演算対象データを保持する演算対象データ保持部と、
Tateペアリング演算を行うペアリング演算部と、
演算結果を保持する演算結果保持部と、
演算結果を出力する出力部と、を備え、
前記ペアリング演算部は、
前記ペアリング演算における3倍算に付随する直線を計算する際に定義体上の逆元計算を行わず、
中間データf1の計算を1回の逆元計算にて実行する
楕円曲線演算装置。 - 請求項1記載の楕円曲線演算装置において、
前記楕円曲線は、標数3の有限体上の楕円曲線であって、
前記楕円曲線上のTateペアリングの点T1=(x1,y1)の3倍算において、計算する直線をλ2=1/y1を用いずに定義する
ことを特徴とする楕円曲線演算装置。 - 請求項2記載の楕円曲線演算装置において、
前記3倍算に付随する前記直線は
l1(x,y)=y1y-x+(x1-y1 2)、
l2(x,y)=y1 2(x- x1)-1、
l'1(x,y)=y1y+(1-y1 4)x+(y1 4x1-x1-y1 2)、
l'2(x,y)=x-(x1+y1 2+y1 6)
である
ことを特徴とする楕円曲線演算装置。 - 請求項1記載の楕円曲線演算装置において、
前記楕円曲線は、
標数3の定義体Fq(q=3m)上に定義された楕円曲線E:y2=x3-x+bである
ことを特徴とする請求項1記載の楕円曲線演算装置。 - 請求項1記載の楕円曲線演算装置において、
前記楕円曲線上のTateペアリングのT1=(x1,y1)の3倍算における繰り返し計算において、
中間データf1をf1=a/bとみなし、
前記aとbを独立して計算し、
前記繰り返し計算後に、f1=a/bを計算する
ことを特徴とする楕円曲線演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004050737A JP2005241898A (ja) | 2004-02-26 | 2004-02-26 | 楕円曲線ペアリング高速演算方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004050737A JP2005241898A (ja) | 2004-02-26 | 2004-02-26 | 楕円曲線ペアリング高速演算方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005241898A true JP2005241898A (ja) | 2005-09-08 |
Family
ID=35023705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004050737A Pending JP2005241898A (ja) | 2004-02-26 | 2004-02-26 | 楕円曲線ペアリング高速演算方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005241898A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007080633A1 (ja) * | 2006-01-11 | 2007-07-19 | Mitsubishi Denki Kabushiki Kaisha | 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム |
-
2004
- 2004-02-26 JP JP2004050737A patent/JP2005241898A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007080633A1 (ja) * | 2006-01-11 | 2007-07-19 | Mitsubishi Denki Kabushiki Kaisha | 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム |
JPWO2007080633A1 (ja) * | 2006-01-11 | 2009-06-11 | 三菱電機株式会社 | 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム |
JP4688886B2 (ja) * | 2006-01-11 | 2011-05-25 | 三菱電機株式会社 | 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号システム及び楕円曲線暗号パラメータ生成プログラム |
US8111826B2 (en) | 2006-01-11 | 2012-02-07 | Mitsubishi Electric Corporation | Apparatus for generating elliptic curve cryptographic parameter, apparatus for processing elliptic curve cryptograph, program for generating elliptic curve cryptographic parameter, and program for processing elliptic cyptograph |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016046949A1 (ja) | 楕円曲線スカラー倍演算方法 | |
KR102550812B1 (ko) | 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치 | |
JP4682852B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
US11190340B2 (en) | Efficient unified hardware implementation of multiple ciphers | |
US20090136025A1 (en) | Method for scalarly multiplying points on an elliptic curve | |
CN101371285B (zh) | 加密处理装置、加密处理方法 | |
Oliveira et al. | Fast point multiplication algorithms for binary elliptic curves with and without precomputation | |
JP3794266B2 (ja) | 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体 | |
WO2020240654A1 (ja) | 匿名署名システム、署名生成装置、匿名署名生成装置、検証装置、匿名署名方法及びプログラム | |
JP2002323852A (ja) | 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム | |
Roman’kov et al. | Algebraic and quantum attacks on two digital signature schemes | |
JP2004163687A (ja) | 楕円曲線暗号装置、楕円曲線暗号プログラム | |
JP2005241898A (ja) | 楕円曲線ペアリング高速演算方法及び装置 | |
CN117254902A (zh) | 数据处理方法、装置、设备及存储介质 | |
JP2005316267A (ja) | 楕円曲線ペアリング演算装置 | |
JP4692022B2 (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
Yanlong | Cryptanalysis of the cryptosystems based on the generalized hidden discrete logarithm problem | |
Realpe-Muñoz et al. | High-performance elliptic curve cryptoprocessors over GF (2^ m) GF (2 m) on Koblitz curves | |
JP2006178125A (ja) | 楕円曲線テートペアリング演算方法及び装置 | |
Wu et al. | An efficient montgomery exponentiation algorithm for cryptographic applications | |
JP2003218858A (ja) | 署名生成方法及び署名検証方法及び署名生成装置及び署名検証装置及び署名生成プログラム及び署名検証プログラム及び署名生成プログラムを格納した記憶媒体及び署名検証プログラムを格納した記憶媒体 | |
JP4193176B2 (ja) | 楕円曲線整数倍演算装置、ならびにその装置を利用可能な鍵生成装置、暗号化装置および復号装置 | |
JP4802228B2 (ja) | 鍵生成装置及びプログラム | |
Lou et al. | An efficient Montgomery exponentiation algorithm by using signed-digit-recoding and folding techniques | |
JP2004102071A (ja) | 多項式剰余系演算装置、方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Effective date: 20060424 Free format text: JAPANESE INTERMEDIATE CODE: A7424 |