JP2007041461A - 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 - Google Patents

楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 Download PDF

Info

Publication number
JP2007041461A
JP2007041461A JP2005227926A JP2005227926A JP2007041461A JP 2007041461 A JP2007041461 A JP 2007041461A JP 2005227926 A JP2005227926 A JP 2005227926A JP 2005227926 A JP2005227926 A JP 2005227926A JP 2007041461 A JP2007041461 A JP 2007041461A
Authority
JP
Japan
Prior art keywords
scalar
elliptic curve
unit
multiplication
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005227926A
Other languages
English (en)
Other versions
JP4690819B2 (ja
Inventor
Keisuke Hakuta
恵輔 伯田
Hisanobu Sato
尚宜 佐藤
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005227926A priority Critical patent/JP4690819B2/ja
Publication of JP2007041461A publication Critical patent/JP2007041461A/ja
Application granted granted Critical
Publication of JP4690819B2 publication Critical patent/JP4690819B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 楕円曲線上の整数倍算とは異なる自己準同型写像Φを実行することができる楕円曲線を用いたスカラー倍計算装置において、高速性に優れた楕円曲線スカラー倍計算方法、及び、装置を提供する。
【解決手段】 特性多項式Φ2-Φ+q(qは奇素数のべき)を持つ、定義体Fq上定義された楕円曲線上の整数倍算とは異なる自己準同型写像Φを実行することができる楕円曲線上の点とスカラー値からスカラー倍点を計算するスカラー倍計算装置において、スカラー値から第一の数値列であるΦ進展開を計算し、上記スカラー値のΦ進展開における隣り合う2桁を見て、あらかじめ定められた条件を満たさない場合にのみ、前記2桁、及び、前記2桁と隣り合う1桁、または2桁のそれぞれに対して演算を行うことによって、スカラー値から第二の数値列を計算し、前記第二の数値列、及び、前記楕円曲線上の点とからスカラー倍計算を実行することによって、高速演算を可能にする。
【選択図】図1

Description

本発明は、セキュリティ技術に係り、特に楕円曲線演算を用いたメッセージ処理技術に関する。
楕円曲線暗号はN. Koblitz、V. S. Millerにより提案された公開鍵暗号の一種である。公開鍵暗号には、公開鍵(Public Key)と呼ばれる一般に公開してよい情報と、秘密鍵(Private Key)と呼ばれる秘匿しなければならない秘密情報がある。与えられたメッセージの暗号化や署名の検証には公開鍵を用い、与えられたメッセージの復号化や署名の生成には秘密鍵を用いる。
楕円曲線暗号における秘密鍵は、スカラー値が担っている。また、楕円曲線暗号の安全性は楕円曲線上の離散対数問題の求解が困難であることに由来している。楕円曲線上の離散対数問題とは、楕円曲線上のある点Pとそのスカラー倍の点dPが与えられた時、スカラー値dを求める問題である。楕円曲線上の点とは、楕円曲線の定義方程式を満たす数の組をいい、楕円曲線上の点全体には、無限遠点という仮想的な点を単位元とした演算、すなわち楕円曲線上の加法(乃至は加算)が定義される。そして、同じ点同士による楕円曲線上の加法のことを、特に楕円曲線上の2倍算という。
楕円曲線上の2点の加法は次のようにして計算される。2点を通る直線を引くとその直線は楕円曲線と他の点において交わる。その交わった点とx軸に関して対称な点を、加法を行った結果の点とする。
例えば、ワイエルシュトラス型楕円曲線(以後、楕円曲線Eと呼ぶ。)の場合には、点(x1,y1)と点(x2,y2)とを加算した結果の点(x3,y3)((x3,y3)=(x1,y1)+(x2,y2))は、
x32-x1-x2 (式1)
y3=(x1-x3)λ-y1 (式2)
λ=(y2y1)/(x2x1) (式3)
を計算することにより得られる。
ここで、楕円曲線Eの定義方程式は、
y2=x3+ax+b,(a,bはともに有限体Fqの元) (式4)
で与えられる。なお、点(x1,y1)と点(x2,y2)と点(x3,y3)はいずれも楕円曲線E上にある。すなわち、(式4)のx,yに各々xi,yi(i=1,2,3)を代入しても、(式4)の等式は成り立つ。
また、有限体Fqは(式4)で与えられる楕円曲線Eの定義体と呼ばれる。ここで、qは正の整数である。
以後、正の整数qは、ある自然数rを用いて、
q=pr (式5)
と表されるものとする。ここで、pは3以上の素数である。
また、以後、楕円曲線暗号に用いる可換群としてE(Fq m)を考える。ただし、E(Fq m)は、(式4)の定義方程式で与えられる楕円曲線であり、楕円曲線上の各点P=(x,y)に対して、x,yがともにFq mの元であることを意味し、mは拡大次数と呼ばれる自然数である。
楕円曲線上の点の2倍算は次のようにして計算される。楕円曲線上の点における接線をひくと、その接線は楕円曲線上の他の一点において交わる。その交わった点とx座標に関して対称な点を、2倍算を行った結果の点とする。例えば、楕円曲線Eの場合には、点(x1,y1)の2倍算を行った結果の点(x3,y3)((x3,y3)=2(x1,y1)=(x1,y1)+(x1,y1))は、(式1)、(式2)及び
λ=(3x1 2+a)/2y1 (式6)
を計算することにより得られる。
また、楕円曲線E上の点に対して、フロベニウス写像Φと呼ばれる自己準同型写像を施すことが可能である。点(x1,y1)に対してフロベニウス写像Φを施すとは、
Φ(x1,y1)=(x1 q,y1 q) (式7)
を計算することである。また、
(x2q,x2q)+q(x,y)=t(xq,yq) (式8)
が成り立つことが知られており、(式8)の性質によりΦを、
Φ2+q=tΦ (式9)
を満たす複素数と考えることができる。ここで、tは(式4)で与えられる楕円曲線Eのトレースと呼ばれる整数である。以下、トレースtは1とする。
ある点に対し、特定の回数だけ加法を行うことをスカラー倍といい、その結果の点をスカラー倍点、その回数のことをスカラー値という。
楕円曲線暗号においては、与えられたメッセージの暗号化、復号化、署名の生成、及び、その検証は、楕円曲線演算を用いて行う。その中で楕円曲線上のスカラー倍の計算は、上記の暗号化、復号化等の各処理において最も計算時間を要する計算である。そのため、楕円曲線暗号を高速に実行するためには、楕円曲線上のスカラー倍計算を高速に行う必要がある。
一般に楕円曲線上のスカラー倍計算では、エンコードされたスカラー値の各桁を見て、零でない(非零)場合に楕円曲線上の加算を行い、桁をずらすために楕円曲線上の2倍算を行う。ここで、スカラー値のエンコードとは、スカラー値の表現を小さな数値列に変換すること(以後、Φ進展開と呼ぶ。)である。ところが、楕円曲線上の2倍算は、楕円曲線上の加算、整数倍算とは異なる自己準同型写像と比べて処理が重い。
これに対し、整数倍算とは異なる自己準同型写像を実行することができる楕円曲線上のスカラー倍計算では、桁をずらすために楕円曲線上の2倍算を行う代わりに整数倍算とは異なる自己準同型写像を用いることができることが知られている。整数倍算とは異なる自己準同型写像は、楕円曲線暗号実装の際に、楕円曲線上の点を正規基底を用いて実装した場合、シフト演算のみを用いて計算でき、2倍算に比べて処理が高速である。
従って、楕円曲線暗号実装の際に楕円曲線として、整数倍算とは異なる自己準同型写像を持つ楕円曲線を採用すれば、スカラー倍計算の高速化が可能となる。
この性質を利用して、楕円曲線上のスカラー倍計算を高速に行う手法の一つとして、楕円曲線暗号におけるスカラー値のΦ進展開表現の最適化を図る方法がある(例えば、非特許文献1、2、3参照。)。多項式基底、及び、正規基底については、例えば、非特許文献2に記載されている。
また、2倍算を減らすだけでなく、スカラー倍計算の際に必要な楕円曲線上の加算回数自体を低減することにより、スカラー倍計算は高速化できる。楕円曲線上のスカラー倍計算では、上述のように、非零の場合に加算が行われるため、非零濃度を最小とすることにより、高速化する方法がある。ここで、非零濃度とは、(非零桁の個数)/(桁長)の漸近的な値を指す。一般に、与えられたスカラー値に対して、ある展開における非零濃度が最小のとき、その展開を用いたスカラー倍計算は、スカラー倍計算に関して高速化されることは、上述のように知られている。
この性質を利用して楕円曲線上のスカラー倍計算を高速に行う手法の一つとして、与えられたスカラー値に対して、予め定められた整数を用いてエンコードした場合のスカラー値の非零濃度が最小となる展開(GNAF及びrNAF)を行うことにより、楕円曲線上のスカラー倍計算を高速化を図る方法がある(例えば、非特許文献4、5参照。)。
N. P. Smart, "Elliptic curve cryptosystems over small fields of odd characteristic", Journal of Cryptology 12, pp. 141 - 151, 1999. J. A. Solinas, "Efficient Arithmetic on Koblitz Curves", Designs, Codes and Cryptography, 19, Kluwer Academic Publishers, pp. 195 - 249, 2000. N. Koblitz, "An elliptic curve implementation of the finite field digital signature algorithm", Advances in Cryptology Crypto' 98, LNCS 1462, Springer - Verlag, pp. 327 - 337, 1998. W. E. Clark and J. J. Liang, "On arithmetic weight for a general radix representation of integers", IEEE Transactions on Information Theory, IT - 19, pp. 823 - 826, 1973. S. M. Yen, T. Takagi and B. C. Wu, "Radix -r Non - adjacent Form", ISC2004, LNCS 3225, pp. 99 - 110, 2004.
情報通信ネットワークの進展と共に電子情報に対する秘匿や認証の為に暗号技術は不可欠な要素となってきている。暗号技術に課せられる要件としては、安全性以外にも、処理速度やメモリ使用量などがある。しかし、一般に安全性、処理速度、メモリ使用量の間にはトレードオフの関係があり、全ての要件を満たすことは難しい。
一般に、暗号に用いられる鍵の長さ(鍵長)は安全性の指標とされ、長いほど安全性が高くなることが知られている。しかしながら、鍵長が長いほど処理に時間はかかる。
楕円曲線上の離散対数問題の求解の困難性は素因数分解の困難性に比べて高いため、素因数分解の困難性を安全性の根拠にしている暗号と比べて、楕円曲線暗号は鍵長を比較的短くすることができる。従って、楕円曲線暗号によれば、計算能力、メモリ容量などのリソースが比較的少なくても、素因数分解の困難性を利用する暗号処理と同等の安全性を有する暗号処理を短時間の処理、すなわち、リソースへの負担が少ない処理で実現することが可能である。
最近では、スマートカード(ICカードともいう)等、利用可能なリソースがかなり限られている環境においても、安全性の高い暗号処理の必要性が高まっている。スマートカードのようなリソースの少ない環境では、限られたリソース内で暗号処理の最適化を図る必要がり、安全性を高めるために鍵長を長くすると処理負担の増大が大きいため、さらにリソースへの負担の少ない高速な処理が求められている。
上記非特許文献1には、整数倍算とは異なる自己準同型写像を実行することができる全ての楕円曲線に対する、整数倍算とは異なる自己準同型写像を用いた楕円曲線スカラー倍計算方法が記載されている。しかし、スカラー倍計算の際に必要な楕円曲線上の加算回数の低減については考慮されていないため、本計算方法では、充分な速度は得られない。
上記非特許文献2、及び、上記非特許文献3では、整数倍算とは異なる自己準同型写像を実行することができる楕円曲線の中で、特殊な定義方程式を持つ楕円曲線に関してのみ、スカラー倍計算の際の加算回数の低減について考察されている。しかし、一般的な定義方程式を持つ楕円曲線については考察がなされていないため、適用できる楕円曲線が限られる。
また、上記非特許文献4、及び、上記非特許文献5の技術は、与えられたスカラー値に対して、予め定められた整数を用いて非零濃度が最小となる展開(GNAF及びrNAF)について考察されている。しかし、整数以外の、例えば複素数を用いた展開に関するGNAFやrNAFまでは考察されていない。
すなわち、従来の楕円曲線上でのスカラー倍計算においては、その速度を高速化するために知られている複数の手法を同時に実現することにより、さらなる高速化を図ることが可能なものはない。
本発明は、上記課題に鑑みてなされたもので、リソースが限られた環境で、安全性を低下させることなく、従来の楕円曲線上のスカラー倍計算よりさらに高速に処理可能な楕円曲線演算技術を実現することを目的とする。
本発明は、楕円曲線暗号におけるスカラー倍計算を高速化する。すなわち、スカラー値のエンコード処理を、通常のΦ進展開の桁集合より、桁集合を広げた際のΦ進展開表現が最小非零濃度を持つように行うことにより、高速計算可能な楕円曲線演算装置を提供する。
本発明はさらに、上記楕円曲線演算装置を用いた暗号化処理装置、復号化処理装置、署名生成装置、署名検証装置、及び、データ共有装置を提供する。
具体的には、特性多項式Φ2-Φ+q(qは奇素数のべき)を持つ、定義体Fq上定義された楕円曲線上の整数倍算とは異なる自己準同型写像Φを実行することができる楕円曲線を用いて、スカラー値、及び、前記楕円曲線上の点とからスカラー倍点を計算する楕円曲線暗号におけるスカラー倍計算方法であって、前記楕円曲線の定義体はFqであり、前記スカラー値を、第一の数値列(bn-1,bn-2,…,b0)(nは前記スカラー値を第一の数値列にエンコードした際の桁長)にエンコードする第一のステップと、前記第一の数値列を、前記第一の数値列とは異なる第二の数値列にエンコードする第二のステップと、前記楕円曲線上の点から事前計算テーブルを作成する第三のステップと、前記第二の数値列、及び、前記事前計算テーブルから、前記スカラー倍点を計算する第四のステップと、を備えることを特徴とするスカラー倍計算方法を提供する。
本発明によれば、リソースが限られた環境で、安全性を低下させることなく、従来の楕円曲線演算よりさらに高速に処理可能な楕円曲線演算技術を実現することができる。
<<第一の実施形態>>
以下、本発明を適用した第一の実施形態を図面により説明する。
図1は、本実施形態の暗号通信システムのシステム構成図である。本図に示すように、本実施形態の暗号通信システムは、ネットワーク142により接続されたコンピュータA101、コンピュータB121とを備える。
本実施形態の暗号通信システムにおいては、コンピュータA101でメッセージPmの暗号化を行い、コンピュータB121で暗号文の復号を行う。
kは乱数、dは秘密鍵を示す定数、Qは定点、dQは公開鍵を示す点とすると、コンピュータA101において、Pm+k(dQ)及びkQを計算して出力する。そして、コンピュータB121において、秘密鍵d、及び、kQより-d(kQ)を計算し、
(Pm+k(dQ))d(kQ) (式10)
を計算して出力する。
ここで、メッセージPmを復元するためには、kdQ、すなわちkQのd倍を計算する必要がある。ところが、暗号通信システムでは、ネットワーク142には、Pm+k(dQ)、kQのみ送信され、秘密鍵dは送信されないため、秘密鍵dを保持しているものだけが、Pmを復元できることになる。
図1において、コンピュータA101は、CPU113やコプロセッサ114などの演算装置、RAM103、ROM106や外部記憶装置107などの記憶装置、コンピュータ外部とのデータ入出力を行う入出力インタフェース110を装備し、外部にはコンピュータA101をユーザが操作するためのディスプレイ108、キーボード109、着脱可能な可搬型記憶媒体の読み書き装置などが接続されている。
更にコンピュータA101は、RAM103、ROM106や外部記憶装置107などの記憶装置によって、記憶部102を実現し、CPU113やコプロセッサ114などの演算装置が、記憶部102に格納されたプログラムを実行することにより、データ処理部112、スカラー倍計算部115とそれらに含まれる各処理部を実現する。
データ処理部112は、本実施形態においては、暗号化処理部として機能し、入力されたメッセージの暗号化を行う。
スカラー倍計算部115は、データ処理部(暗号化処理部)112で暗号化を行うのに必要なパラメタを計算する。記憶部102は、定数104(例えば、楕円曲線の定義式や楕円曲線上の定点)、秘密情報105(例えば、秘密鍵)などを記憶している。
コンピュータB121は、コンピュータAと同様のハードウェア構成を備え、CPU133やコプロセッサ134などの演算装置、RAM123、ROM126や外部記憶装置127などの記憶装置、コンピュータ外部とのデータ入出力を行う入出力インタフェース130を装備し、外部にはコンピュータB101をユーザが操作するためのディスプレイ128、キーボード129、着脱可能な可搬型記憶媒体の読み書き装置などが接続されている。
更にコンピュータB121は、RAM123、ROM126や外部記憶装置127などの記憶装置によって、記憶部122を実現し、CPU133やコプロセッサ134などの演算装置が、記憶部122に格納されたプログラムを実行することにより、データ処理部132、スカラー倍計算部135とそれらに含まれる各処理部を実現する。
データ処理部132は、本実施形態においては、復号化処理部として機能し、暗号化されたメッセージである暗号文141の復号を行う。
スカラー倍計算部135は、データ処理部(復号化処理部)132で復号化を行うのに必要なパラメタを計算する。記憶部122は、定数124(例えば、使用する楕円曲線の定義式や楕円曲線上の定点)、秘密情報125(例えば、秘密鍵)などを記憶している。
なお、上記プログラムは、予め上記コンピュータ内の記憶部102、122に格納されていてもよいし、必要な時に、入出力インタフェース110、130および上記コンピュータが利用可能な媒体を介して、他の装置から上記記憶部102、122に導入されてもよい。媒体とは、例えば、入出力インタフェースに着脱可能な記憶媒体、または通信媒体(すなわち、ネットワークまたはネットワークを伝搬する搬送波)を指す。
次に、メッセージの暗号化処理および復号化処理を行う場合の、それぞれ、コンピュータA101およびコンピュータB121内の各処理部間での情報の送受信について説明する。図2は、コンピュータA101、コンピュータB121の各処理部が行う情報の受け渡しを説明するための図である。
まず、コンピュータA101が、入力されたメッセージを暗号化する場合の動作について説明する。メッセージはディジタル化されたデータであればよく、テキスト、画像、映像、音などの種類は問わない。
データ処理部(暗号化処理部)112は、入出力インタフェース110を介して、平文メッセージ(入力メッセージ)を受け取ると(ステップ204)、入力された平文メッセージのビット長があらかじめ定めたビット長か否かを判断する。予め定めたビット長よりも長い場合には、予め定めたビット長となるように平文メッセージを区切る。以下、メッセージは、所定のビット長に区切られている部分メッセージ(単にメッセージと呼ぶ。)であるものとして説明する。
次に、データ処理部(暗号化処理部)112は、メッセージのビット列によって表される数値をx座標(x1)に持つ楕円曲線上の点Pmのy座標(y1)の値を計算する。
例えば、使用する楕円曲線をワイエルシュトラス型楕円曲線とすると、ワイエルシュトラス型楕円曲線は、a,bを定数とするとき、
y1 2=x1 3+ax1+b (式11)
で表されるので、本式によりy座標の値を求めることができる。
次に、データ処理部(暗号化処理部)112は、乱数kを生成する。そして記憶部102に格納されている定数104から公開鍵dQとQのx座標とを読み出す(ステップ205)。そして、読み出した公開鍵dQとQのx座標と、求めたy座標の値と、乱数kとをスカラー倍計算部115へ送る(ステップ206)。
スカラー倍計算部115は、Qのx座標、y座標の値、乱数kによるスカラー倍点(xd1,yd1)=kQと、公開鍵dQのx座標、y座標の値、乱数によるスカラー倍点(xd2,yd2)=k(dQ)とを計算し、計算したスカラー倍点をデータ処理部(暗号化処理部)112へ送る(ステップ207)。
データ処理部(暗号化処理部)112は、受け取ったスカラー倍点を用いて、暗号化処理を行う。例えば、ワイエルシュトラス型楕円曲線の場合、Pm+k(dQ)とkQを計算する。すなわち、
xe1=((yd1-y1)/(xd1-x1))2-x1-xd1 (式12)
xe2=xd2 (式13)
を計算し、暗号化されたメッセージxe1,xe2を得る。
コンピュータA101はデータ処理部(暗号化処理部)112で暗号化された1つ以上の部分メッセージから暗号化された出力メッセージを組み立て、データ141として入出力インタフェース110より出力する(ステップ208)。データ141は、ネットワーク142を介してコンピュータB121へ転送される。
なお、図2において記憶部102からの情報の読み出し(ステップ205)は、スカラー倍計算部115へ当該情報を送る前であればよい。例えば、入力メッセージを受け付ける(ステップ204)前であってもよい。
次に、コンピュータB121が、暗号化されたメッセージであるデータ141を復号化する場合の動作について、同じく図2を用いて説明する。
データ処理部(復号化処理部)132は、入出力インタフェース110を介して、暗号化されたデータ141が入力メッセージとして入力されると(ステップ204)、データ141のビット長が予め定めたビット長か否かを判断する。予め定めたビット長よりも長い場合は、予め定めたビット長となるように暗号化されたデータを区切る。以下、メッセージは、所定のビット長に区切られている部分データ(単にデータともいう)であるものとして説明する。
データ処理部(復号化処理部)132は、データ141のビット列によって表される数値をx座標にもつ楕円曲線上のy座標の値を計算する。
暗号化されたメッセージがxe1,xe2のビット列であり、ワイエルシュトラス型楕円曲線の場合、y座標の値(ye1)は、
ye1 2=xe1 3+axe1+b (式14)
(ただし、a,bはそれぞれ(式11)と同じ定数である。)から得ることができる。
データ処理部(復号化処理部)132は、記憶部122に格納されている秘密情報125から秘密鍵dを読み出す(ステップ205)。そして、読み出した秘密鍵dと、x座標、y座標の値(xe2,ye2)を、スカラー倍計算部135へ送る(ステップ206)。
スカラー倍計算部135は、x座標、y座標の値、秘密情報125(秘密鍵d)を用いてスカラー倍点(xd3,yd3)=d(xe2,ye2)を計算する。スカラー倍計算部135は、計算されたスカラー倍点をデータ処理部(復号化処理部)132へ送る(ステップ207)。データ処理部(復号化処理部)132は、送られたスカラー倍点を用いて、復号化処理を行う。
例えば、暗号化されたメッセージが、xe1,xe2のビット列であり、ワイエルシュトラス型楕円曲線の場合は、
(Pm+k(dQ))d(kQ)=(xe1,ye1)-(xd3,yd3) (式15)
を計算することにより達成できる。すなわち、
xf1=((ye1+yd3)/(xe1-xd3))2-xe1-xd3 (式16)
を計算し、暗号化される前の部分メッセージx1に相当するxf1を得る。
コンピュータB121は、データ処理部(復号化処理部)132で復号された部分メッセージから平文メッセージを組み立て、入出力インタフェース110を介して、ディスプレイ108などから出力する(ステップ208)。
次に、本実施形態において、コンピュータA101が、暗号化処理を行う場合の、スカラー倍計算部115の処理を詳細に説明する。なお、コンピュータB101が復号化処理を行う場合のスカラー倍計算部135の処理も基本的に同様である。このため、以下においては、スカラー倍計算部115の処理を代表して説明する。
本実施形態のスカラー倍計算部115の機能ブロックを図3に示す。本図に示すように、本実施形態のスカラー倍計算部115は、エンコード部302と、事前計算部303と、実計算部304とを備える。
また、エンコード部302は、Φ進展開部321、δ剰余取得部322、ビット対判定部323、ビット対変換部324、桁上がり計算部325、繰り返し判定部326を備える。事前計算部303は、加算部331、2倍算部332、繰り返し判定部333を備える。実計算部304は、ビット値判定部341、加算部342、Φ倍算部343、繰り返し判定部344を備える。
スカラー倍計算部115が、これらの機能を用いて、スカラー値dと整数倍算とは異なる自己準同型写像Φを持つ楕円曲線上の点Pとから、楕円曲線におけるスカラー倍点dPを計算する第1の計算方法を説明する。
以下、本実施形態においては、自己準同型写像Φとして、例えば、フロベニウス写像を用いることができる。すなわち、本計算方法は、スカラー値のフロベニウス展開に整数展開GNAFを適用したエンコード方法であり、以下、本エンコード方法をFGNAF(Frobenius - adic Generalized Non - Adjacent Form)と呼ぶ。
スカラー値のフロベニウス展開にGNAFを適用するために、本実施形態では、特性多項式Φ2-Φ+q(qは奇素数のべき)を持つ、定義体Fq上定義された楕円曲線上の、整数倍算とは異なる自己準同型写像Φを実行することができる楕円曲線を選択する。
また、本楕円曲線上の点とスカラー値とからスカラー倍点を計算するにあたり、スカラー値を第一の数値列にエンコードした後、さらに、第一の数値列とは異なる第二の数値列にエンコードし、第二の数値列を用いてスカラー倍点を計算する。このとき、第一の数値列は、スカラー値をΦ進展開することにより得、第二の数値列は、前記第一の数値列の隣り合う2桁が予め定められた条件をすか否かに応じて変換を行う。すなわち、満たさない場合、その2桁と、当該2桁と隣り合う1桁、または2桁のそれぞれに対し演算を行い、変換後の数値列を第一の数値列とし、本処理を繰り返す。
この第二の数値列とこの楕円曲線上の点とを用いてスカラー倍計算を実行することにより、高速化を実現する。以下、上記計算方法を具体的に説明する。
まず、本実施形態のスカラー倍計算処理全体の概要を説明する。
スカラー倍計算部115がデータ処理部(暗号化処理部)112からスカラー値dと楕円曲線上の点Pとを受け取ると、エンコード部302は、入力されたスカラー値dを数値列eiにエンコードする。すなわち、
d=e0+e1Φ+e2Φ2+…+en+1Φn+1 (式17)
-(q-1)≦ei≦(q-1) (式18)
を満たすeiに、スカラー値dを変換する。
このとき、本実施形態では、各iについて、隣り合う数値の対(ei+1,ei)は以下の3つの条件のうち1つを必ず満たす。
ei+1ei=0 (式19)
|ei+1+ei|≦q-1(ei+1ei>0のとき) (式20)
|ei+1|>|ei|(ei+1ei<0のとき) (式21)
ここで、nは、以下の式を満たす整数である。
n≦[2logq2√|d'|]+4 (式22)
また、d'は
δ=Φn-1 (式23)
を満たす複素数δに対して、
d=δQ+d' (式24)
を満たす整数であり、Qは複素数である。
なお、対(ei+1,ei)が、上記式19、式20、式21の何れか一つを満たすとき、
対(ei+1,ei)はadmissible対であるという。
事前計算部303は、事前計算テーブルを作成する。事前計算テーブルは、
iP(i=1,…,q-1) (式25)
を保持する。
実計算部304は、エンコードされたスカラー値d=(en+1,en,…,e1,e0)と事前計算テーブルに保持されているデータとを用いてスカラー倍点dPを計算する。
次に、上記スカラー倍計算処理時のエンコード部302、事前計算部303、実計算部304の行う各処理について詳細に説明する。
まず、図4を用いて、エンコード部302の行う処理を説明する。ここでは、スカラー値を第一の数値列にエンコードし、さらに、第一の数値列を第二の数値列にエンコードする処理を行う。図4は、エンコード部302の処理を説明するためのフローチャートである。
エンコード部302は、スカラー値dの入力を受ける(ステップ401)。
δ剰余取得部322は、受け取ったスカラー値dに対して、(式24)を満たす整数d'を計算する。そして、Φ進展開部321は、整数d'を、
d'=c0+c1Φ+…+cn-1Φn-1 (式26)
|ci|≦(q-1)/2 (式27)
に変換する(ステップ402)。
スカラー値dから整数d'を計算する方法、及び、整数d'を(式26)、(式27)を満たすように展開する方法は、非特許文献1に記載されている。すなわち、以下の処理i)、ii)を繰り返すことにより得られる。
i)スカラー値dをδで割り、その余りをd'とする。
ii)整数d'をΦで割り、その余りをciとする。
次に、第一の数値列(c0,c1,c2,…cn-1)から(b0,b1,b2,…bn-1,bn,bn+1)を経て、第二の数値列(e0,e1,…en,en+1)を生成する。
まず、ビット対変換部324は、b0にc0を、b1にc1を、bnに0を、bn+1に0を、それぞれ代入する(ステップ403)。
繰り返し判定部326は、iに0を代入する(ステップ404)。
繰り返し判定部326は、i≦n+1であるかどうかを判定する(ステップ405)。i≦n+1が成立する場合、ステップ406へ行く。i≦n+1が成立しない場合、ステップ412へ行く。
ビット対判定部323は、対(bi+1,bi)がadmissible対であるかどうかを判定する(ステップ406)。対(bi+1,bi)がadmissible対である場合、ステップ407へ行く。対(bi+1,bi)がadmissible対でない場合、ステップ408へ行く。
桁上がり計算部325は、bi+2にci+2を代入し、格納部327は、eiにbiを代入し、ステップ411へ行く(ステップ407)。
ビット値判定部323は、bi>0であるかどうかを判定する(ステップ408)。bi>0である場合、ステップ409へ行く。bi>0でない場合、ステップ410へ行く。
桁上がり計算部325は、bi+2にci+2-1を代入し、ビット対変換部324は、bi+1にbi+1+1を代入し、格納部327は、eiにbi-qを代入し、ステップ411へ行く(ステップ409)。
桁上がり計算部325は、bi+2にci+2+1を代入し、ビット対変換部324は、bi+1にbi+1-1を代入し、格納部327は、eiにbi+qを代入し、ステップ411へ行く(ステップ410)。
繰り返し判定部326は、iにi+1を代入し、ステップ405へ行く(ステップ411)。
エンコード部302は、(en+1,en,…,e1,e0)を出力する(ステップ412)。
なお、q≦5の場合、以下のステップを追加する。
ステップ406で対(bi+1 ,bi)がadmissible対であるかどうかを判定する前に、biがqで割り切れるかどうかを判定する。そして、biがqで割り切れる場合、bi+1にbi+1-bi/qを、bi+2にci+ 2+bi/qを、eiに0をそれぞれ代入する。
次に図5を用いて事前計算部303の行う処理について説明する。図5は、事前計算部303の処理を説明するためのフローチャートである。ここでは、事前計算テーブルに保持するデータを生成する。事前計算テーブルに保持するデータは、上述のように、楕円曲線上の点Pの値、点Pのスカラー倍点の値である2P、3P、…、(q-1)Pである。
事前計算部303は、Q1にPを代入する。そして、2倍算部332は、点Pの2倍点2Pを計算し、事前計算部303は、Q2に2Pを代入する(ステップ501)。
繰り返し判定部333は、iに2を代入する(ステップ502)。
繰り返し判定部333は、i≦q-1であるかどうかを判定する(ステップ503)。i≦q-1である場合、ステップ504へ行く。i≦q-1でない場合、ステップ506へ行く。
加算部331は、Qi+Pを計算し、事前計算部303は、その結果をQi+1を代入する(ステップ504)。
繰り返し判定部333は、iにi+1を代入し、ステップ503へ行く(ステップ505)。
事前計算部303は、点Q1,…,Qq-1を事前計算テーブルに格納する(ステップ506)。
最後に、図6を用いて実計算部304の行う処理について説明する。ここでは、エンコード部302により得られたエンコードされたスカラー値と、事前計算部303で得られたデータとから、スカラー倍点dPを計算する。図6は、実計算部304の処理を説明するためのフローチャートである。
繰り返し判定部344は、iにn+1を代入する(ステップ601)。
ビット値判定部341は、ei≠0であるかどうかを判定する(ステップ602)。ei≠0である場合、ステップ603へ行く。ei≠0でない場合、ステップ604へ行く。
繰り返し判定部344は、iにi-1を代入する(ステップ603)。
加算部342は、QにeiPを代入する(ステップ604)。
繰り返し判定部344は、iにi-1を代入する(ステップ605)。
繰り返し判定部344は、i≧0であるかどうかを判定する(ステップ606)。i≧0である場合、ステップ607へ行く。i≧0でない場合、ステップ611へ行く(606)。
Φ倍算部343は、Φ(Q)を計算し、Qに代入する(ステップ607)。
ビット値判定部341は、ei≠0であるかどうかを判定する(ステップ608)。ei≠0である場合、ステップ609へ行く。ei≠0でない場合、ステップ610へ行く。(608)
加算部342は、Q+eiPを計算し、Qに代入する(ステップ609)。
繰り返し判定部344は、iにi-1を代入し、ステップ606へ行く(ステップ610)。
実計算部304は、Qを出力する(ステップ611)。
以上説明したように、エンコード部302から出力されるeiは、(式18)を満たし、対(ei+1,ei)は、(式19)、(式20)、(式21)の何れか一つを必ず満たす。この理由は次の通りである。
ステップ406の直前で、bi+1,biはそれぞれ、|bi+1|≦(q-1)/2,|bi|≦(q+1)/2を満たす。そして、対(bi+1,bi)がadmissible、すなわち、(式19)、(式20)、(式21)の何れか一つを満たす場合は、ステップ407へ行く。
(式19)、(式20)、(式21)の何れか一つを満たさない場合、すなわち、対(bi+1,bi)がadmissibleでない場合を考える。このとき、ステップ408でbi>0である場合、ステップ409へ行き、bi>0でない場合、ステップ410へ行く。どちらの場合も、ステップ409、または、ステップ410の処理を終えることにより対(ei+1,ei)は、(式19)、(式20)、(式21)の何れか一つを必ず満たすこととなる。従って、eiは(式18)を満たす。
また、エンコード部302が行う処理により、整数d'のΦ進展開の長さは(式22)を満たす。この理由は次の通りである。
ステップ406の直前で、i=n-3のとき、整数d'は、
d'=c0+c1Φ+…+bn-3Φn-3+bn-2Φn-2+cn-1Φn-1 (式28)
を満たす。(式28)の表現において、対(bn-2,bn-3)、対(cn-1,bn-2)が共にadmissibleであれば、
n=[2logq2√|d'|]+2 (式29)
を満たす。対(bn-2,bn-3)、対(cn-1,bn-2)が共にadmissibleでなければ、ステップ405からステップ411のループを繰り返すと、nが(式22)を満たすとき、全てのiに対して対(ei+1,ei)はadmissibleとなることがわかる。
実計算部304が出力する点Qはスカラー倍点dPに等しい。この理由は次の通りである。実計算部304が出力する点Qは、
Q=d'P (式30)
を満たし、d'は(式24)を満たす。
また、楕円曲線上では、δPは無限遠点となることが知られている。従って実計算部304が出力する点Qは点dPに等しい。
整数d'のFGNAF表現は一意的である。この理由は通常のGNAF表現の一意性と同様である。
FGNAF表現の非零濃度の漸近的な値は(q1)/(q+1)となる。この理由は以下の通りである。
anを長さnのFGNAF表現を持つd∈Z[Φ]の個数、Snを長さnのFGNAF表現のうち、0の桁数、rnを長さnのFGNAF表現のうち、どの桁も0でないものの個数とする。このとき、上記各数列を計算すると、
rn=2(q-1)(q-2)n-1、an=2(q-1)(qn(-1)n)/(q+1)、Sn=(2(q-1)/(q+1))*((qn-1-1)/(q-1)+((-1)n1-1)/2)+(4(q-1)2/(q+1)2)*(n-1)((qn/(q-1))((-1)n/2))-(4(q-1)2/(q+1)2)*((q(qn1)/(q-1)2)+(((-1)n1-1)/4))+(((q)n1-(-1)n1)/(q+1)2)+(((-1)n(q-1)(1-(-q)n1)+2((-1)n1-qn1))/(q+1)3)である。
従って、FGNAFの非零濃度の漸近的な値は、
1-limn→∞(Sn/n*an)=(q-1)/(q+1)
となる。これよりFGNAFの非零濃度は、整数qに対する通常のGNAFの非零濃度と等しいといえる。
FGNAF表現は、その各桁eiが(式18)を満たすΦ進展開のうち、非零濃度が最小である。この理由は以下の通りである。
ある数d∈Z[Φ]で、そのFGNAF表現d=e0+e1Φ+…+en-3Φn-3+en-2Φn-2+en-1Φn-1が最小の非零濃度でない場合が存在すると仮定すると、以下のとおり、矛盾が生じる。
上記のように仮定すると、eiΦi=c0+c1Φ+…+ckΦkを満たすi,k,cj(j=0,1,…,k)が存在し、ei≠0であり、eiΦi≡0 mod Φiである。
ここで、c0+c1Φ+…+ckΦk≡0 mod Φiでないことを示す。
もし、c0+c1Φ+…+ckΦk≡0 mod Φであれば、c0+c1Φ+…+ckΦk=cΦiを満たすc∈Z[Φ]が存在する。一般に、数α=a+bΦ∈Z[Φ](a,bは整数)がΦで割り切れることと、aがqで割り切れることとは同値であることが知られている。これよりc0はqで割り切ることができ、(式18)を満たす。従って、c0=0でなければならず、eiΦi=c1Φ+…+ckΦkを満たす。同様に考えていくと、eiΦi=ci+1Φi+1+…+ckΦkであり、eiΦi-ci+1Φi+1-…-ckΦki(ei-ci+1Φ1-…-ckΦk-i)=0となる。
以上より、eiはqで割り切ることができ、(式18)を満たす。従って、ei=0となり、ei≠0に矛盾する。
以上よりFGNAF表現は、その各桁が(式18)を満たすΦ進展開のうち、非零濃度が最小であるといえる。
以上のように、本実施形態のスカラー倍計算方法によれば、桁ずらしのために整数倍算とは異なる自己準同型写像Φを用い、加算回数を低減させることによって、高速計算可能が可能となる。すなわち、本実施形態のスカラー倍計算方法によれば、自己準同型写像Φを持つ楕円曲線を用い、非零濃度を最小にすることができ、処理を高速化することができる。また、楕円曲線の制限は、整数倍算とは異なる自己準同型写像Φを持つこと、及び、上記楕円曲線のトレースが1であることのみであるため、幅広い楕円曲線を選択可能である。このため、より高い安全性が期待できる。
本実施形態によれば、楕円曲線暗号が持つ高い安全性とリソース利用効率の良さを保ちつつ、高速性に優れたメッセージ処理が可能になる。
<<第二の実施形態>>
次に、本発明を適用した第二の実施形態について説明する。本実施形態の暗号通信システムの構成は、第一の実施形態の図1に示すものと同様である。また、本実施形態の各コンピュータA101およびB101内での情報の送受信についても、第一の実施形態の図2に示すものと同様である。さらに、本実施形態のスカラー倍計算部115、135の機能構成も第一の実施形態の図3に示すものと同様である。
本実施形態として、スカラー倍計算部115、135が、これらの機能を用いて、スカラー値dと整数倍算とは異なる自己準同型写像Φを持つ楕円曲線上の点Pとから、楕円曲線におけるスカラー倍点dPを計算する第2の計算方法を説明する。本実施形態においても、第一の実施形態同様、スカラー倍計算部115を代表して説明する。
以下、本実施形態においては、自己準同型写像Φとして、例えば、フロベニウス写像を用いることができる。すなわち、本実施形態の計算方法は、スカラー値のフロベニウス展開に整数展開rNAFを適用したエンコード方法(以下、上記表現をFrNAF(Frobenius - adic radix - rNon - Adjacent Form)と呼ぶ)である。
本実施形態の計算方法も第一の実施形態同様、特性多項式Φ2-Φ+q(qは奇素数のべき)を持つ、定義体Fq上定義された楕円曲線上の、整数倍算とは異なる自己準同型写像Φを実行することができる楕円曲線を選択する。
また、本楕円曲線上の点とスカラー値とからスカラー倍点を計算するにあたり、スカラー値を第一の数値列にエンコードした後、さらに、第一の数値列とは異なる第二の数値列にエンコードし、第二の数値列を用いてスカラー倍点を計算する。このとき、第一の数値列は、スカラー値をΦ進展開することにより得、第二の数値列は、前記第一の数値列の隣り合う2桁が予め定められた条件を満たすか否かに応じて変換を行う。すなわち、満たさない場合、その2桁と、当該2桁と隣り合う1桁、または2桁のそれぞれに対し演算を行い、変換後の数値列を第一の数値列とし、本処理を繰り返す。
この第二の数値列とこの楕円曲線上の点とを用いてスカラー倍計算を実行することにより、高速化を実現する。以下、上記計算方法を具体的に説明する。
まず、本実施形態のスカラー倍計算処理全体の概要を説明する。
スカラー倍計算部115が暗号化処理部112からスカラー値dと楕円曲線上の点Pを受け取ると、エンコード部302は、入力されたスカラー値dを数値列eiにエンコードする。すなわち、
d=e0+e1Φ+e2Φ2+…+en+3Φn+3 (式31)
-(q2-1)/2≦ei≦(q2-1)/2 (式32)
ei mod q≠0(ei≠0のとき) (式33)
を満たすeiに、スカラー値dを変換する。ただし、各iについて、隣り合う数値の対(ei+1,ei)は以下の条件
ei+1ei=0 (式34)
を満たし、kは
k≦[2logq2√|d'|]+4 (式35)
を満たす整数である。ここで、d'は第一の実施形態の(式23)を満たす複素数δに対して第一の実施形態の(式24)を満たす整数であり、Qは複素数である。
なお、対(ei+1,ei)が、上記(式34)を満たすとき、対(ei+1,ei)は非隣接対であるという。
事前計算部303は、事前計算テーブルを作成する。事前計算テーブルは、
iP(i=1,…,(q2-1)/2) (式36)
を保持する。ただし、iは
i mod q≠0 (式37)
を満たす。
実計算部304は、エンコードされたスカラー値d=(en+3,en+2,…,e1,e0)と事前計算テーブルに保持されているデータとを用いてスカラー倍点dPを計算する。
次に、上記スカラー倍計算処理時のエンコード部302、事前計算部303、実計算部304の行う各処理について詳細に説明する。
まず、図7を用いて本実施形態のエンコード部302の行う処理について説明する。ここでは、スカラー値を第一の数値列にエンコードし、さらに、第一の数値列を第二の数値列にエンコードする処理を行う。図7は、本実施形態のエンコード部302の処理を説明するためのフローチャートである。
エンコード部302は、スカラー値dの入力を受ける(ステップ701)。
δ剰余取得部322は、受け取ったスカラー値dに対して、第一の実施形態の(式24)を満たす整数d'を計算する。そして、Φ進展開部321は、整数d'を、
d'=c0+c1Φ+…+cn-1Φn-1 (式38)
|ci|≦(q-1)/2 (式39)
に変換する(ステップ702)。
なお、上記(式38)および(式39)は、第一の実施形態の(式26)と(式27)と同じものである。スカラー値dから整数d'を計算する方法、及び、整数d'を、(式38)、(式39)を満たすように展開する方法については、第一の実施形態と同様である。
次に、第一の数値列(c0,c1,c2,…cn-1)から(b0,b1,b2,…bn-1,bn,bn+1,bn+2,bn+3)を経て、第二の数値列(e0,e1,…en,en+1,en+2,en+3)を生成する。
まず、ビット対変換部324は、b0にc0を、b1にc1を、bnに0を、bn+1に0を、bn+2に0を、bn+3に0をそれぞれ代入する(ステップ703)。
繰り返し判定部326は、iに0を代入する(ステップ704)。
繰り返し判定部326は、i≦n+2であるかどうかを判定する(ステップ705)。i≦n+2が成立する場合、ステップ706へ行く。i≦n+2が成立しない場合、ステップ713へ行く。
ビット対判定部323は、bi=0であるかどうかを判定する(ステップ706)。bi=0である場合、ステップ707へ行く。bi=0でない場合、ステップ708へ行く。
桁上がり計算部325は、bi+2にci+2を代入し、格納部327は、eiに0を代入し、iにi+1を代入し、ステップ705へ行く(ステップ707)。
ビット対判定部323は、|bi+1q+bi|≦(q2-1)/2であるかどうかを判定する(ステップ708)。|bi+1q+bi|≦(q2-1)/2である場合、ステップ709へ行く。|bi+1q+bi|≦(q2-1)/2でない場合、ステップ710へ行く。
桁上がり計算部325は、bi+3にci+3を、bi+2にci+2+bi+1をそれぞれ代入し、格納部327は、ei+1に0を、eiにbi+1q+biを代入し、iにi+2を代入し、ステップ705へ行く(ステップ709)。
ビット対判定部323は、bi+1q+bi<-(q2-1)/2であるかどうかを判定する(ステップ710)。bi+1q+bi<-(q2-1)/2である場合、ステップ711へ行く。bi+1q+bi<-(q2-1)/2でない場合、ステップ712へ行く。
桁上がり計算部325は、bi+3にci+3+1を、bi+2にci+2+bi+1+(q-1)をそれぞれ代入し、格納部327は、ei+1に0を、eiにbi+1q+bi+q2を代入し、iにi+2を代入し、ステップ705へ行く(ステップ711)。
桁上がり計算部325は、bi+3にci+3-1を、bi+2にci+2+bi+1-(q-1)をそれぞれ代入し、格納部327は、ei+1に0を、eiにbi+1q+bi-q2を代入し、iにi+2を代入し、ステップ705へ行く(ステップ712)。
エンコード部302は、(en+3,en+2,…,e1,e0)を出力する(ステップ713)。
なお、q≦5の場合、以下のステップを追加する。
ステップ706でbi=0であるかどうかを判定する前に、biがqで割り切れるかどうかを判定する。biがqで割り切れる場合、bi+1にbi+1-bi/qを、bi+ 2にci+2+bi/qを、それぞれ代入し、iにi+1を代入する。
次に図8を用いて本実施形態の事前計算部303の行う処理について説明する。図8は、本実施形態の事前計算部303の処理を説明するためのフローチャートである。ここでは、事前計算テーブルに保持するデータを生成する。事前計算テーブルに保持するデータは、上述のとおり、楕円曲線上の点Pの値、点Pのスカラー倍点の値2P、3P、…、((q2 - 1)/2)P(ただし、点iP(i = q, 2q ,…,((q - 1)/2)P)は含まれない。)である。
事前計算部303は、Q1にPを代入し、2倍算部332は、点Pの2倍点2Pを計算し、事前計算部303は、Q2に2Pを代入する(ステップ801)。
繰り返し判定部333は、iに2を代入する(ステップ802)。
繰り返し判定部333は、i≦(q2-1)/2であるかどうかを判定する(ステップ803)。i≦(q2-1)/2である場合、ステップ804へ行く。i≦(q2-1)/2でない場合、ステップ808へ行く。
剰余判定部334は、i mod q≡0であるかどうかを判定する(ステップ804)。i mod q≡0である場合、ステップ805へ行く。i mod q≡0でない場合、ステップ806へ行く。
加算部331は、Qi+Pを計算し、事前計算部303は、その結果をQi+1を代入する(ステップ805)。
加算部331は、Qi+Pを計算し、事前計算部303は、その結果をQi+2を代入する(ステップ806)。
繰り返し判定部333は、iにi+1を代入し、ステップ803へ行く(ステップ807)。
事前計算部303は、点Q1,…,Q(q21)/2を事前計算テーブルに格納する(ステップ808)。ただし、上記Qiで、iはqの倍数ではない。
最後に、図9を用いて実計算部304の行う処理について説明する。ここでは、エンコード部302により得られたエンコードされたスカラー値と、事前計算部303で得られたデータとから、スカラー倍点dPを計算する。図9は、本実施形態の実計算部304の処理を説明するためのフローチャートである。
繰り返し判定部344は、iにn+3を代入する(ステップ901)。
ビット値判定部341は、ei≠0であるかどうかを判定する(ステップ902)。ei≠0である場合、ステップ903へ行く。ei≠0でない場合、ステップ904へ行く。
繰り返し判定部344は、iにi-1を代入する(ステップ903)。
加算部342は、QにeiPを代入する(ステップ904)。
繰り返し判定部344は、iにi-1を代入する(ステップ905)。
繰り返し判定部344は、i≧0であるかどうかを判定する(ステップ906)。i≧0である場合、ステップ907へ行く。i≧0でない場合、ステップ911へ行く。
Φ倍算部343は、Φ(Q)を計算し、Qに代入する(ステップ907)。
ビット値判定部341は、ei≠0であるかどうかを判定する。ei≠0である場合、ステップ909へ行く。ei≠0でない場合、ステップ910へ行く。(ステップ908)
加算部342は、Q+eiPを計算し、Qに代入する(ステップ909)。
繰り返し判定部344は、iにi-1を代入し、ステップ906へ行く(ステップ910)。
実計算部304は、Qを出力する(ステップ911)。
以上の処理により、エンコード部302から出力されるeiは、(式32)を満たし、対(ei+1,ei)は、(式34)を満たす。この理由は次の通りである。
ステップ706の直前で、bi+1,biはそれぞれ、|bi+1|≦(q-1)/2,|bi|≦q-1、または、|bi+1|≦(q+1)/2,|bi|≦2q1(bi≠±q)を満たす。対(bi+1,bi)が隣接対のときは、ステップ707へ行く。対(bi+1,bi)が非隣接対の場合を考える。このとき、ステップ709、ステップ711、ステップ712の何れの場合も、ei+1=0となって(式34)を満たし、eiは(式32)を満たす。
また、エンコード部302が行う処理により、整数d'のΦ進展開の長さは(式35)を満たす。これは、ステップ706からステップ712の処理ループにおいて、すべてのiに対して(式34)を満たすように整数d'を変換するため、整数d'のΦ展開の長さは(式35)を満たすことがわかる。
実計算部304が出力する点Qはスカラー倍点dPに等しい。この理由は、第一の実施形態と同様である。
整数d'のFrNAF表現は一意的である。この理由は以下の通りである。
ステップ704からステップ712の変換は、ei,ei-1の値により、取り得る状態が2つある。すなわち、(0)と(0*)とである。ただし、*は非零であることを表わす。これらの間の遷移確率は、
(0)→(0):1/q、
(0)→(0*):(q-1)/q、
(0*)→(0):1/q、
(0*)→(0*):(q-1)/q、
となる。この遷移確率から定まる定常状態を計算すると、
(0):1/q、(0*):(q-1)/q、
となる。
従って、FrNAFの非零濃度の漸近的な値(q-1)/(2(q-1)+1)は、(q-1)/(2q-1)となる((q-1)/(2(q-1)+1)=(q-1)/(2q-1))。これよりFrNAFの非零濃度は、整数qに対する通常のrNAFの非零濃度と等しいといえる。
FrNAF表現は、その各桁eiが(式32)、(式33)を満たすΦ進展開のうち、非零濃度が最小である。この理由は、第一の実施形態のFGNAF表現の非零濃度が最小であることと同様である。
以上の通り、本実施形態のスカラー倍計算方法によれば、第一の実施形態同様、整数倍算とは異なる自己準同型写像Φを持つ楕円曲線を用い、非零濃度を最小にすることができ、スカラー倍計算処理を高速化することができる。また、楕円曲線の制限は、整数倍算とは異なる自己準同型写像Φを持つこと、及び、上記楕円曲線のトレースが1であることのみであるため、幅広い楕円曲線を選択可能である。このため、より高い安全性が期待できる。
すなわち、本実施形態によれば、楕円曲線暗号が持つ高い安全性とリソース利用効率の良さを保ちつつ、高速性に優れたメッセージ処理が可能になる。
<<第三の実施形態>>
次に、本発明を適用した署名検証システムを第三の実施形態として説明する。
図10は、本実施形態の署名検証システムのシステム構成図である。本図に示すように、本実施形態の署名検証システムは、スマートカード1001と署名検証処理を行うコンピュータ1021とを備える。
スマートカード1001は、第一の実施形態および第二の実施形態の図1のコンピュータA101と類似の構成を備える。すなわち、コンピュータA101の同名の構成は基本的に同じ機能を有する。ただし、スマートカード1001は、CPU1013、コプロセッサ1014などの演算装置が記憶部1002に格納されているプログラムを実行することにより、データ処理部111とスカラー倍計算部115の代わりに、署名生成処理部1012とスカラー倍計算部1015とを実現する。なお、図1に示す外部記憶装置107、ディスプレイ108、キーボード109を備えなくてもよい。
一方、コンピュータ1021は、コンピュータA101と同様の構成を備える。すなわち、図1に示すコンピュータA101と同名の構成は、同様の機能を有する。ただし、CPU1033、コプロセッサ1034などの演算装置が記憶部1022に格納されているプログラムを実行することにより、データ処理部111とスカラー倍計算部115の代わりに、署名検証処理部1032とスカラー倍計算部1035とを実現する。
なお、スカラー倍計算部1015と1035は、図1に示すスカラー倍計算部115または135と同様の機能を備える。
本実施形態においても、第一、第二の実施形態同様、コンピュータ1021内の各プログラムは、予め、コンピュータ1021内の記憶部1022に格納されていても良いし、必要なときに、コンピュータ1021が利用可能な媒体を介して、他の装置から記憶部1022に導入されてもよい。
さらに、スマートカード1001内の各プログラムは、予め、スマートカード1001内の記憶部1002に格納されていても良いし、必要なときに、入出力インタフェース1010を介して接続するコンピュータ、または当該コンピュータが利用可能な媒体を介して、記憶部1002に導入されてもよい。媒体とは、たとえば当該コンピュータに着脱可能な記憶媒体、または通信媒体(すなわちネットワークまたはネットワークを伝搬する搬送波)を指す。
次に、本実施形態の署名検証システムにおける署名生成と署名検証動作を、図2を参照して説明する。なお、本実施形態においては、図2のデータ処理部112、132は、署名生成処理部1012、署名検証処理部1032、スカラー倍計算部115、135は、スカラー倍計算部1015、1035、記憶部122、102は、記憶部1002、1022として以下、説明する。
離散対数問題に基づくディジタル署名方法を楕円曲線上の離散対数問題に基づく方法に対応させて構成する楕円曲線ディジタル署名アルゴリズム(ECDSA)という署名方法がある。ECDSA署名については、例えば、
D. Johnson, A. Menezes, "The Elliptic Curve Digital Signature Algorithm (ECDSA)", Technial Report CORR 99 - 34, Dept. of C&O, University of Waterloo, Canada.
<URL> http://www.cacr.math.uwaterloo.ca/techreports/1999/corr99-34.pdf
に記載されている。
コンピュータ1021は、ランダムに選んだ数値をチャレンジコード1042として、インタフェースを介してスマートカード1001に転送する。
署名生成処理部1012は、チャレンジコード1042を入力メッセージとして受け付け(ステップ204)、チャレンジコード1042のハッシュ値をとり、所定のビット長の数値fに変換する。
署名生成処理部1012は、乱数uを生成し、記憶部1002に格納されている定数1004から楕円曲線上の定点Qを読み出す(ステップ205)。生成した乱数uを読み出した楕円曲線上の定点Qとともにスカラー倍計算部1015へ送る(ステップ206)。
スカラー倍計算部1015は、定点Q、乱数uを用いてスカラー倍点uQ=(xu,yu)を計算し、計算されたスカラー倍点を署名生成処理部1012へ送る(ステップ207)。
署名生成処理部1012は、送られたスカラー倍点を用いて署名の生成を行う。例えば、上述のECDSA署名であれば、
s=xu mod q (式40)
t=u-1(f+ds) mod q (式41)
を計算することにより、チャレンジコード1042に対応する署名(s,t)1041を得る。
ここで、qは定点Qの位数、すなわち、定点Qのq倍点qQが無限遠点になり、qより小さな数値mに対する定点Qのm倍点mQは無限遠点にはならない、という数値のことである。
スマートカード1001は、署名生成処理部1012で生成した署名1041を入出力インタフェース1010より出力し(ステップ208)、インタフェースを介してコンピュータ1021へ転送する。
コンピュータ1021の署名検証処理部1032は、署名1041が入力されると(ステップ204)、署名1041の数値s,tが適切な範囲内すなわち1≦s,t<qであるかを調べる。
数値s,tが上記範囲内になければチャレンジコード1042に対する署名の検証結果として「無効」を出力し、スマートカード1001を拒絶する(ステップ208)。
一方、数値s,tが上記範囲内にあれば、署名検証処理部1032は、
h=t-1 mod q (式42)
h1=fh mod q (式43)
h2=sh mod q (式44)
を計算する。
署名検証処理部1032は、記憶部1022に格納されている定数1024から公開鍵dQ及び定点Qを読み出す(ステップ205)。そして、読み出した公開鍵dQ及び定点Qと、計算したh1,h2とを、スカラー倍計算部1035へ送る(ステップ206)。
スカラー倍計算部1035は、定点Qとh1とによるスカラー倍点h1Qと、公開鍵dQとh2とによるスカラー倍点h2dQとを計算し、計算されたスカラー倍点を署名検証処理部1032へ送る(ステップ207)。
署名検証処理部1032は、送られたスカラー倍点を用いて、署名検証処理を行う。例えば、ECDSAの署名検証であれば、点Rを以下の式により計算し、
R=h1Q+h2dQ (式45)
そのx座標をxRとしたとき、
s'=xR mod q (式46)
を計算し、s'=sであればチャレンジコード1042に対する署名の検証結果として「有効」を出力し(ステップ208)、スマートカード1001を認証し、受け入れる。
一方、s'=sでなければ「無効」を出力し(ステップ208)、スマートカード1001を拒絶する。
上述のように、署名の生成および検証の処理において、スカラー倍点を計算する。従って、署名生成、及び、署名検証を行う際に、第一の実施形態または第二の実施形態のスカラー倍計算方法を用いることが可能である。これらの実施形態のスカラー倍計算方法を用いることにより、スマートカードといったリソースが限られた環境においても、高い安全性と高速な処理とを実現することができる。
<<第四の実施形態>>
次に、本発明を楕円Diffie-Hellman鍵共有スキーム適用して実現する鍵交換システムを第四の実施形態として説明する。本実施形態の鍵交換システムのシステム構成は、図1と同様である。ただし、図1のデータ処理部112、132は、本実施形態においては、それぞれ鍵交換処理部112、132として機能する。
以下、本実施形態の鍵交換システムのコンピュータA101が、入力されたデータ143から共有情報の導出を行う場合の動作について図1、図2を参照して説明する。図2においても、データ処理部112、132は、鍵交換処理部112、132として説明する。
コンピュータB121の鍵交換処理部132は、記憶部122の秘密情報125から秘密鍵bを読み出し、コンピュータB121の公開鍵bQを計算する。そして、鍵交換処理部132は、ネットワーク142を介して、公開鍵bQをデータ143としてコンピュータA101に転送する(ステップ208)。
コンピュータA101の鍵交換処理部112は、コンピュータB121の公開鍵bQのデータ143を入力メッセージとして受け付ける(ステップ204)。
鍵交換処理部112は、記憶部102から秘密情報105であるコンピュータA101の秘密鍵dを読み出し(ステップ205)、秘密鍵dとコンピュータB121の公開鍵bQとをスカラー倍計算部115へ送る(ステップ206)。
スカラー倍計算部115は、公開鍵bQによるスカラー倍点dbQを計算し、計算したスカラー倍点と秘密鍵dとを鍵交換処理部112へ送る(ステップ207)。
鍵交換処理部112は、送られたスカラー倍点を用いて共有情報の導出を行い、記憶部102に秘密情報105として格納する。例えば、スカラー倍点dbQのx座標を、共有情報とする。
次に、コンピュータB121が、入力されたデータ141から共有情報の導出を行う場合の動作について説明する。
コンピュータA101の鍵交換処理部112は、記憶部102の秘密情報105から秘密鍵dを読み出しコンピュータA101の公開鍵dQを計算する。そして、ネットワーク142を介して、公開鍵dQをデータ141としてコンピュータB121に転送する(ステップ208)。
コンピュータB121の鍵交換処理部132は、コンピュータA101の公開鍵dQであるデータ141を、入力メッセージ204として受け付ける(ステップ204)。
鍵交換処理部132は、記憶部122の定数125から秘密情報125であるコンピュータB121の秘密鍵bを読み出し(ステップ205)、読み出した秘密鍵bとコンピュータA101の公開鍵dQとをスカラー倍計算部135へ送る(ステップ206)。
スカラー倍計算部135は、公開鍵dQによるスカラー倍点bdQを計算し、計算されたスカラー倍点と秘密鍵bとを鍵交換処理部132へ送る(図2の207)。
鍵交換処理部132は、送られたスカラー倍点を用いて共有情報の導出を行い、記憶部122に秘密情報125として格納する。例えば、スカラー倍点bdQのx座標を、共有情報とする。ここで、数dbと数bdとは数値として同じなので、点dbQと点bdQとは同じ点となり、同じ情報が導出されたことになる。
ネットワーク142には、点dQと点bQが送信される。しかし、点dbQ(もしくは点bdQ)を計算するためには、秘密鍵dもしくは秘密鍵bが必要である。すなわち、秘密鍵dもしくは秘密鍵bを知らなければ、共有情報を得ることはできない。従って、上記の方法で得られた共有情報は、共通鍵暗号の秘密鍵として利用できる。
本実施形態の鍵交換システムでは、受け取った点のスカラー倍点を計算する。従って、鍵交換を行う際に、第一または第二の実施形態のスカラー倍計算方法を用いることが可能である。これらの実施形態のスカラー倍計算方法を用いることにより、高い安全性と高速な処理とを実現することができる。
なお、上記各実施形態では、暗号化処理部、復号化処理部、署名生成処理部、署名検証処理部、鍵交換処理部を、ソフトウェアで実現するものとして説明したが、専用のハードウェアを用いて実現してもよい。また、スカラー倍計算部をコプロセッサまたはそれ以外の専用ハードウェアで実現しても良い。また、データ処理部は、上記暗号化処理、復号化処理、署名生成処理、署名検証処理、鍵交換処理のうち、任意の一つ以上の処理を行うことができるよう構成してもよい。
図1は、第一の実施形態の暗号通信システムのシステム構成図である。 図2は、第一の実施形態のコンピュータ内の各処理部間の情報の受け渡しを説明するための図である。 図3は、第一の実施形態のスカラー倍計算部の機能ブロックである。 図4は、第一の実施形態のエンコード部の処理を説明するためのフローチャートである。 図5は、第一の実施形態の事前計算部の処理を説明するためのフローチャートである。 図6は、第一の実施形態の実計算部の処理を説明するためのフローチャートである。 図7は、第二の実施形態のエンコード部の処理を説明するためのフローチャートである。 図8は、第二の実施形態の事前計算部の処理を説明するためのフローチャートである。 図9は、第二の実施形態の実計算部の処理を説明するためのフローチャートである。 図10は、第三の実施形態の署名検証システムのシステム構成図である。
符号の説明
101:コンピュータA、102:記憶部、103:RAM、104:定数、105:秘密情報、106:ROM、107:外部記憶装置、108:ディスプレイ、109:キーボード、110:入出力インタフェース、111:処理部、112:データ処理部、113:CPU、114:コプロセッサ、115:スカラー倍計算部、121:コンピュータB、122:記憶部、123:RAM、124:定数、125:秘密情報、126:ROM、127:外部記憶装置、128:ディスプレイ、129:キーボード、130:入出力インタフェース、131:処理部、132:データ処理部、133:CPU、134:コプロセッサ、135:スカラー倍計算部、141:データ、142:ネットワーク、143:データ、302:エンコード部、303:事前計算部、304:実計算部、321:Φ進展開部、322:δ剰余取得部、323:ビット対判定部、324:ビット対変換部、325:桁上がり計算部、326:繰り返し判定部、327:格納部、331:加算部、332:2倍算部、333:繰り返し判定部、341:ビット値判定部、342:加算部、343:Φ倍算部、344:繰り返し判定部、1001:スマートカード、1002:記憶部、1003:RAM、1004:定数、1005:秘密情報、1006:ROM、1010:入出力インタフェース、1011:処理部、1012:署名生成処理部、1013:CPU、1014:コプロセッサ、1015:スカラー倍計算部、11021:コンピュータ、1022:記憶部、1023:RAM、1024:定数、1025:秘密情報、1026:ROM、1027:外部記憶装置、1028:ディスプレイ、1029:キーボード、1030:入出力インタフェース、1031:処理部、1032:署名検証処理部、1033:CPU、1034:コプロセッサ、1035:スカラー倍計算部、1041:署名、1042:チャレンジコード。

Claims (12)

  1. 特性多項式Φ2-Φ+q(qは奇素数のべき)を持つ、定義体Fq上定義された楕円曲線上の整数倍算とは異なる自己準同型写像Φを実行することができる楕円曲線を用いて、スカラー値、及び、前記楕円曲線上の点とからスカラー倍点を計算する楕円曲線暗号におけるスカラー倍計算方法であって、
    前記スカラー値を、第一の数値列(bn-1,bn-2,…,b0)(nは前記スカラー値を第一の数値列にエンコードした際の桁長)にエンコードする第一のステップと、
    前記第一の数値列を、前記第一の数値列とは異なる第二の数値列にエンコードする第二のステップと、
    前記楕円曲線上の点から事前計算テーブルを作成する第三のステップと、
    前記第二の数値列、及び、前記事前計算テーブルから、前記スカラー倍点を計算する第四のステップと、を備えること
    を特徴とするスカラー倍計算方法。
  2. 請求項1記載のスカラー倍計算方法であって、
    前記第一のステップは、前記スカラー値に対するΦ進展開を計算し、
    前記第二のステップは、
    bnとbn+1とを生成してそれぞれ0とするステップと(nは前記スカラー値に対するΦ進展開の桁長)、
    iが0からnまでの間、
    前記第一の数値列の隣り合う2桁(bi+1,bi)が、
    a)bi+1bi>0のとき|bi+1+bi|≦q-1、
    b)bi+1bi=0、
    c)bi+1bi<0のとき|bi+1|>|bi|、
    で示されるa)、b)、c)の3つの条件を満たすか否か判断し、
    前記3つの条件の何れか一つを満たすとき、(bi+1,bi)を(bi+1,bi)とする変換を行い、
    前記3つの条件を満たさないとき、
    bi>0ならばbi→bi-q,bi+1→bi+1+1,bi+2→bi+2-1とする変換を行い、
    bi<0ならばbi→bi+q,bi+1→bi+1-1,bi+2→bi+2+1とする変換を行い、
    iを1増加させる処理を繰り返す変換ステップと、を備えること
    を特徴とするスカラー倍計算方法。
  3. 請求項1記載のスカラー倍計算方法であって、
    前記第一のステップは、前記スカラー値に対するΦ進展開を計算し、
    前記第二のステップは、
    bnとbn+1とbn+2とbn+3とを生成してそれぞれ0とするステップと(nは前記スカラー値に対するΦ進展開の桁長)、
    iが0からnまでの間、
    bi=0を満たすとき、biをbiとする変換を行った後iを1増加させ、
    bi≠0、かつ、|qbi+1+bi|≦(q2-1)/2を満たすとき、bi→qbi+1+bi,bi+1→0,bi+2→bi+1+bi+2とする変換を行った後iを2増加させ、
    bi≠0、かつ、qbi+1+bi>(q2-1)/2を満たすとき、bi→bi-q2,bi+2→bi+2-(q-1),bi+3→bi+3-1とする変換を行った後iを2増加させ、
    bi≠0、かつ、qbi+1+bi<-(q2-1)/2を満たすとき、bi→bi+q2,bi+2→bi+2+(q-1),bi+3→bi+3+1とする変換を行った後iを2増加させる処理を繰り返す変換ステップと、を備えること
    を特徴とするスカラー倍計算方法。
  4. 特性多項式Φ2-Φ+q(qは奇素数のべき)を持つ、定義体Fq上定義された楕円曲線上の整数倍算とは異なる自己準同型写像Φを実行することができる楕円曲線を用いて、スカラー値、及び、前記楕円曲線上の点とからスカラー倍点を計算する楕円曲線暗号におけるスカラー倍計算装置であって、
    前記スカラー値を、第一の数値列にエンコードする第一のエンコード手段と、
    前記第一の数値列を、前記第一の数値列とは異なる第二の数値列にエンコードする第二のエンコード手段と、
    前記楕円曲線上の点から事前計算テーブルを作成する事前計算手段と、
    前記第二の数値列、及び、前記事前計算テーブルから、前記スカラー倍点を計算する実計算手段と、を備えること
    を特徴とするスカラー倍計算装置。
  5. 請求項4記載のスカラー倍計算装置であって、
    前記第一のエンコード手段では、前記スカラー値に対するΦ進展開を計算することにより前記第一の数値列にエンコードし、
    前記第二のエンコード手段では、
    bnとbn+1(nは、前記スカラー値を第一の数値列にエンコードした際の桁長)とを生成してそれぞれ0とし、
    iが0からnまでの間、
    前記第一の数値列の隣り合う2桁(bi+1,bi)が、
    a)bi+1bi>0のとき|bi+1+bi|≦q-1、
    b)bi+1bi=0、
    c)bi+1bi<0のとき|bi+1|>|bi|
    で示されるa)、b)、c)の3つの条件を満たすか否か判断し、
    前記3つの条件の何れか一つを満たすとき、(bi+1,bi)を(bi+1,bi)とする変換を行い、
    前記3つの条件を満たさないとき、
    bi>0ならばbi→bi-q,bi+1→bi+1+1,bi+2→bi+2-1とする変換を行い、
    bi<0ならばbi→bi+q,bi+1→bi+1-1,bi+2→bi+2+1とする変換を行い、
    前記変換後、iを1増加させる処理を繰り返すことにより、前記第一の数値列を前記第二の数値列にエンコードすること
    を特徴とするスカラー倍計算装置。
  6. 請求項4記載のスカラー倍計算装置であって、
    前記第一のエンコード手段では、前記スカラー値に対するΦ進展開を計算することにより前記第一の数値列にエンコードし、
    前記第二のエンコード手段では、
    bnとbn+1とbn+2とbn+3とを生成してそれぞれ0とし、
    iが0からnまでの間、
    bi=0を満たすとき、biをbiとする変換を行った後iを1増加させ、
    bi≠0、かつ、|qbi+1+bi|≦(q2-1)/2を満たすとき、bi→qbi+1+bi,bi+1→0,bi+2→bi+1+bi+2とする変換を行った後iを2増加させ、
    bi≠0、かつ、qbi+1+bi>(q2-1)/2を満たすとき、bi→bi-q2,bi+2→bi+2-(q-1),bi+3→bi+3-1とする変換を行った後iを2増加させ、
    bi≠0、かつ、qbi+1+bi<-(q2-1)/2を満たすとき、bi→bi+q2,bi+2→bi+2+(q-1),bi+3→bi+3+1とする変換を行った後iを2増加させる処理を繰り返すことにより、前記第一の数値列を前記第二の数値列にエンコードすること
    を特徴とするスカラー倍計算装置。
  7. 請求項4から6いずれか1項記載のスカラー倍計算装置であって、
    前記自己準同型写像はフロベニウス写像であること
    を特徴とするスカラー倍計算装置。
  8. データから署名データを生成する署名生成処理部と、前記署名データを作成するために必要なスカラー倍点を計算するスカラー倍計算部と、を有する署名生成装置であって、
    前記スカラー倍計算部は、請求項4から7いずれか1項記載のスカラー倍計算装置を用いてスカラー倍点を計算する手段を備えること
    を特徴とする署名生成装置。
  9. データから署名データを検証する署名部と、前記署名データを作成するために必要なスカラー倍点を計算するスカラー倍計算部と、を有する署名検証装置であって、
    前記スカラー倍計算部は、請求項4から7いずれか1項記載のスカラー倍計算装置を用いてスカラー倍点を計算する手段を備えること
    を特徴とする署名生成装置。
  10. データから暗号化データを生成する暗号部と、前記暗号化データを作成するために必要なスカラー倍点を計算するスカラー倍計算部と、を有する暗号化装置であって、
    前記スカラー倍計算部は、請求項4から7いずれか1項記載のスカラー倍計算装置を用いてスカラー倍点を計算する手段を備えること
    を特徴とする暗号化装置。
  11. 暗号化データから復号化データを生成する復号部と、前記復号化データを作成するために必要なスカラー倍点を計算するスカラー倍計算部と、を有する復号化装置であって、
    前記スカラー倍計算部は、請求項4から7いずれか1項記載のスカラー倍計算装置を用いてスカラー倍点を計算する手段を備えること
    を特徴とする復号化装置。
  12. 楕円Diffie-Hellman鍵共有スキームにおいて、秘密鍵から公開鍵を生成する生成部と、前記公開鍵を生成するために必要なスカラー倍点を計算するスカラー倍計算部と、を有する鍵生成装置であって、
    前記スカラー倍計算部は、請求項4から7いずれか1項記載のスカラー倍計算装置を用いてスカラー倍点を計算する手段を備えること
    を特徴とする鍵生成装置。
JP2005227926A 2005-08-05 2005-08-05 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 Expired - Fee Related JP4690819B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005227926A JP4690819B2 (ja) 2005-08-05 2005-08-05 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005227926A JP4690819B2 (ja) 2005-08-05 2005-08-05 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置

Publications (2)

Publication Number Publication Date
JP2007041461A true JP2007041461A (ja) 2007-02-15
JP4690819B2 JP4690819B2 (ja) 2011-06-01

Family

ID=37799477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005227926A Expired - Fee Related JP4690819B2 (ja) 2005-08-05 2005-08-05 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置

Country Status (1)

Country Link
JP (1) JP4690819B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009107650A2 (ja) 2008-02-25 2009-09-03 国立大学法人 岡山大学 スカラー倍算の演算方法、べき乗算の演算方法、スカラー倍算の演算プログラムを記録した記録媒体及びべき乗算の演算プログラムを記録した記録媒体
JP2009301070A (ja) * 2009-09-30 2009-12-24 Okayama Univ スカラー倍算の演算装置及びべき乗算の演算装置
JP2009301071A (ja) * 2009-09-30 2009-12-24 Okayama Univ スカラー倍算の演算プログラム及びべき乗算の演算プログラム
WO2010061951A1 (ja) 2008-11-28 2010-06-03 国立大学法人岡山大学 スカラ倍算器及びスカラ倍算プログラム
WO2011152084A1 (ja) * 2010-05-31 2011-12-08 株式会社日立製作所 効率的相互認証方法、プログラム、及び装置
JP2012032650A (ja) * 2010-07-30 2012-02-16 Fujitsu Ltd リスト生成装置、リスト生成方法およびリスト生成プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003228285A (ja) * 2002-02-06 2003-08-15 Hitachi Ltd 楕円曲線スカラ倍演算装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003228285A (ja) * 2002-02-06 2003-08-15 Hitachi Ltd 楕円曲線スカラ倍演算装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009107650A2 (ja) 2008-02-25 2009-09-03 国立大学法人 岡山大学 スカラー倍算の演算方法、べき乗算の演算方法、スカラー倍算の演算プログラムを記録した記録媒体及びべき乗算の演算プログラムを記録した記録媒体
WO2010061951A1 (ja) 2008-11-28 2010-06-03 国立大学法人岡山大学 スカラ倍算器及びスカラ倍算プログラム
KR101154845B1 (ko) 2008-11-28 2012-06-18 고꾸리츠 다이가꾸 호우징 오까야마 다이가꾸 스칼라 배산기 및 스칼라 배산프로그램
US8374342B2 (en) 2008-11-28 2013-02-12 National University Corporation Okayama University Scalar multiplier and scalar multiplication program
JP5403630B2 (ja) * 2008-11-28 2014-01-29 国立大学法人 岡山大学 スカラ倍算器及びスカラ倍算プログラム
JP2009301070A (ja) * 2009-09-30 2009-12-24 Okayama Univ スカラー倍算の演算装置及びべき乗算の演算装置
JP2009301071A (ja) * 2009-09-30 2009-12-24 Okayama Univ スカラー倍算の演算プログラム及びべき乗算の演算プログラム
WO2011152084A1 (ja) * 2010-05-31 2011-12-08 株式会社日立製作所 効率的相互認証方法、プログラム、及び装置
JP2012032650A (ja) * 2010-07-30 2012-02-16 Fujitsu Ltd リスト生成装置、リスト生成方法およびリスト生成プログラム

Also Published As

Publication number Publication date
JP4690819B2 (ja) 2011-06-01

Similar Documents

Publication Publication Date Title
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
Galbraith Elliptic curve Paillier schemes
US8111826B2 (en) 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
US7961873B2 (en) Password protocols using XZ-elliptic curve cryptography
Paar et al. Introduction to public-key cryptography
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
Boruah et al. Implementation of ElGamal Elliptic Curve Cryptography over prime field using C
US6480606B1 (en) Elliptic curve encryption method and system
WO2016034912A1 (en) Method and apparatus for scalar multiplication secure against differential power attacks
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
Ismail et al. Bezier coefficients matrix for elgamal elliptic curve cryptosystem
Gligoroski Stream cipher based on quasigroup string transformations in $ Z_p^* $
Manajaih Modular arithmetic in RSA cryptography
JP4692022B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム
JP4783061B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置
KR100341507B1 (ko) 빠른 유한체 연산을 이용한 타원곡선 암호화 방법 및 전자서명 방법
JP2011075587A (ja) 楕円曲線暗号におけるスカラー倍算計算方法、プログラム、及び装置
JP4502817B2 (ja) 楕円曲線スカラー倍計算方法および装置
JPH0798563A (ja) 楕円曲線による署名、認証及び秘密通信方式
Ray et al. An Innovative Way to Increase the Speed and Efficiency of Reverse Mapping of Elliptic Curve Points
Ahlqvist Elliptic Curves and Cryptography
JP2006309201A (ja) 楕円曲線暗号における多重スカラー倍計算装置、署名検証装置、及び、それらのプログラム。
Shankar et al. Cryptography with fast point multiplication by using ASCII codes and its implementation
JP2005316038A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびプログラム
Zitouni et al. Identity-Based Encryption from the Tate pairing on genus two curves

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110111

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110218

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees