JPWO2004070681A1 - 楕円曲線スカラー倍計算方法および装置 - Google Patents

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

Info

Publication number
JPWO2004070681A1
JPWO2004070681A1 JP2004567900A JP2004567900A JPWO2004070681A1 JP WO2004070681 A1 JPWO2004070681 A1 JP WO2004070681A1 JP 2004567900 A JP2004567900 A JP 2004567900A JP 2004567900 A JP2004567900 A JP 2004567900A JP WO2004070681 A1 JPWO2004070681 A1 JP WO2004070681A1
Authority
JP
Japan
Prior art keywords
scalar
elliptic curve
scalar multiplication
calculation
unit
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
JP2004567900A
Other languages
English (en)
Other versions
JP4502817B2 (ja
Inventor
勝幸 桶屋
勝幸 桶屋
高木 剛
剛 高木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Publication of JPWO2004070681A1 publication Critical patent/JPWO2004070681A1/ja
Application granted granted Critical
Publication of JP4502817B2 publication Critical patent/JP4502817B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Storage Device Security (AREA)

Abstract

要約なし

Description

本発明はセキュリティ技術に係り、特に楕円曲線演算を用いたメッセージ処理方法に関する。
楕円曲線暗号はN.Koblitz,V.S.Millerにより提案された公開鍵暗号の一種である。公開鍵暗号には、公開鍵と呼ばれる一般に公開してよい情報と、秘密鍵と呼ばれる秘匿しなければならない秘密情報がある。与えられたメッセージの暗号化や署名の検証には公開鍵を用い、与えられたメッセージの復号化や署名の作成には秘密鍵を用いる。
楕円曲線暗号における秘密鍵は、スカラー値が担っている。また、楕円曲線暗号の安全性は楕円曲線上の離散対数問題の求解が困難であることに由来している。楕円曲線上の離散対数問題とは、楕円曲線上のある点Pとそのスカラー倍の点dPが与えられた時、スカラー値dを求める問題である。
楕円曲線上の点とは、楕円曲線の定義方程式をみたす数の組をいい、楕円曲線上の点全体には、無限遠点という仮想的な点を単位元とした演算、すなわち楕円曲線上の加法(乃至は加算)が定義される。そして、同じ点同士による楕円曲線上の加法のことを、特に楕円曲線上の2倍算という。
楕円曲線上の2点の加法は次のようにして計算される。2点を通る直線を引くとその直線は楕円曲線と他の点において交わる。その交わった点とx軸に関して対称な点を、加法を行った結果の点とする。例えば、ワイエルシュトラス型楕円曲線の場合には、点(x,y)と点(x,y)の加算
(x,y)=(x,y)+(x,y)は
Figure 2004070681
を計算することにより得られる。ここで、ワイエルシュトラス型楕円曲線の定義式は
Figure 2004070681
で与えられる。すなわち、式3のx,yに各々x,y(i=1,2,3)を代入した場合に、式3の等式が成り立つ。
楕円曲線上の点の2倍算は次のようにして計算される。楕円曲線上の点における接線をひくと、その接線は楕円曲線上の他の点において交わる。その交わった点とx座標に関して対称な点を、2倍算を行った結果の点とする。例えば、ワイエルシュトラス型楕円曲線の場合には、点(x,y)の2倍算
(x,y)=2(x,y)=(x,y)+(x,y)は
Figure 2004070681
を計算することにより得られる。
ある点に対し、特定の回数だけ加法を行うことをスカラー倍といい、その結果をスカラー倍点、その回数のことをスカラー値という。
楕円曲線上の離散対数問題の求解の困難性が理論的に確立されてきている一方で、実際の実装においては秘密鍵等の秘密情報に関連する情報(計算時間や電力消費量など)が暗号処理において漏洩する場合があり、その漏洩情報をもとに秘密情報を復元するといった、サイドチャネル攻撃という攻撃法が提案されている。
楕円曲線暗号に対するサイドチャネル攻撃が、J.Coron,Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems,Cryptographic Hardware and Embedded Systems: Proceedings of CHES’99,LNCS 1717,Springer−Verlag,(1999)pp.292−302.(文献1)に記載されている。
楕円曲線暗号においては、与えられたメッセージの暗号化、復号化、署名の作成またはその検証は、楕円曲線演算を用いて行う必要がある。特に楕円曲線上のスカラー倍の計算は、秘密情報であるスカラー値を用いた暗号処理において用いられる。
楕円曲線暗号に対するサイドチャネル攻撃の防御法が、B.Moeller,Securing Elliptic Curve Point Multiplication against Side−Channel Attacks,Information Security(ISC2001),LNCS 2200,Springer−Verlag,(2001),pp.324−334.(文献2)に記載されている。
情報通信ネットワークの進展と共に電子情報に対する秘匿や認証の為に暗号技術は不可欠な要素となってきている。そこでは暗号技術の安全性とともにメモリ等の使用リソースの削減が望まれている。楕円曲線上の離散対数問題が非常に困難である為に、素因数分解の困難性を安全性の根拠にしている暗号と比べて、楕円曲線暗号は鍵長を比較的短くすることができる。そのため比較的少ないリソースで暗号処理を行うことが可能である。しかしながら、備えているメモリ量が少ないスマートカード(ICカードともいう)等においては、必ずしも満足できるとは限らない。それゆえに少ないメモリで実行できる暗号処理が必要となる。
上記技術は、サイドチャネル攻撃を防ぐ方法としては有効であるが、メモリ使用量の削減という点は考慮されていない。
本発明は、サイドチャネル攻撃を防ぐことができる、かつメモリ使用量の少ない、楕円曲線演算方法を提供する。
本発明は更に、上記楕円曲線演算方法を用いた、暗号化処理方法、復号化処理方法、署名作成方法、署名検証方法、データ共有方法を提供する。
本発明は、楕円曲線演算において、スカラー値と楕円曲線上の点からスカラー倍点を計算するスカラー倍計算方法であって、上記スカラー値を数値列にエンコードするステップと、上記楕円曲線上の点から前計算テーブルを作成するステップと、上記エンコードした数値列及び上記前計算テーブルからスカラー倍点を計算するステップとを有する。
本発明は、また、上記エンコードするステップの出力する数値列を0と奇数からなるように構成してもよい。
本発明は、また、上記スカラー倍点を計算するステップは、第1の演算を予め定められた回数を実行するステップと、第1の演算とは異なる第2の演算を実行するステップとを含むように構成してもよい。
本発明は、また、楕円曲線演算において、スカラー値と楕円曲線上の点の奇数倍点を格納した前計算テーブルからスカラー倍点を計算するスカラー倍計算方法であって、上記スカラー値を数値列にエンコードするステップと、上記エンコードした数値列と上記前計算テーブルからスカラー倍点を計算するステップとを有し、上記エンコードするステップの出力する数値列は0と奇数からなるように構成してもよい。
以上のように本発明のスカラー倍計算方法によれば、奇数倍の点のみを前計算テーブルに格納し、スカラー値を奇数倍の点のみを用いるようにエンコードすることにより、サイドチャネル攻撃を防ぐことができ、メモリ使用量が少ないスカラー倍計算方法が利用可能になる。
図1は、実施形態におけるシステム構成図である。
図2は、各実施形態における情報の受け渡しを示すシーケンス図である。
図3は、実施形態におけるスカラー倍計算部の構成図である。
図4は、エンコード部の行うエンコード方法を示すフローチャート図である。
図5は、前計算部の行う前計算方法を示すフローチャート図である。
図6は、実計算部の行う実計算方法を示すフローチャート図である。
図7は、実施形態における署名検証システム構成図である。
以下、本発明の実施例を図面により説明する。
図1はネットワーク142によって接続された本発明による楕円曲線演算方法を適用したコンピュータA101、コンピュータB121がネットワーク142により接続されたシステム構成を示すものである。
図1の暗号通信システムにおけるコンピュータA101でメッセージの暗号化を行うには、P+k(aQ)及びkQを計算して出力し、コンピュータB121で暗号文の復号化を行うには、秘密鍵a及びkQより−a(kQ)を計算し、
Figure 2004070681
を計算して出力すればよい。ここでPはメッセージ、kは乱数、aは秘密鍵を示す定数、Qは定点、aQは公開鍵を示す点である。
ネットワーク142には、P+k(aQ),kQのみ送信され、メッセージPを復元するためには、kaQ、すなわちkQのa倍を計算する必要がある。ところが、秘密鍵aはネットワーク142には送信されないため、秘密鍵aを保持しているものだけが、Pを復元できることになる。
図1において、コンピュータA101は、CPU113やコプロセッサ114などの演算装置、RAM103、ROM106や外部記憶装置107などの記憶装置、コンピュータ外部とのデータ入出力を行う入出力インタフェース110を装備しており、外部にはコンピュータA101をユーザが操作するためのディスプレイ108、キーボード109、着脱可能な可搬型記憶媒体の読み書き装置などが接続されている。
更にコンピュータA101は、RAM103、ROM106や外部記憶装置107などの記憶装置によって、記憶部102を実現し、CPU113やコプロセッサ114などの演算装置が、記憶部102に格納されたプログラムを実行することにより、データ処理部112、スカラー倍計算部115を実現する。
データ処理部112は、本実施形態においては、暗号化処理部112として機能し、入力されたメッセージの暗号化を行う。
スカラー倍計算部115は、暗号処理部112で暗号化を行うのに必要なパラメタを計算する。記憶部102は、定数104(例えば、楕円曲線の定義式や楕円曲線上の定点である。)、秘密情報105(例えば、秘密鍵である。)などを記憶している。
コンピュータB121は、コンピュータA101と同様のハードウェア構成を備える。
更にコンピュータB121は、RAM123、ROM126や外部記憶装置107などの記憶装置によって、記憶部122を実現し、CPU133やコプロセッサ134などの演算装置が、記憶部122に格納されたプログラムを実行することにより、データ処理部132、スカラー倍計算部135を実現する。
データ処理部132は、本実施形態においては、復号化処理部132として機能し、暗号化されたメッセージである暗号文141の復号化を行う。
スカラー倍計算部135は、復号化処理部132で復号化を行うのに必要なパラメタを計算する。記憶部122は、定数124(例えば、楕円曲線の定義式や楕円曲線上の定点である。)、秘密情報125(例えば、秘密鍵である。)などを記憶している。
なお、上記各プログラムは、あらかじめ、上記コンピュータ内の記憶部に格納されていても良いし、必要なときに、入出力インタフェース110と上記コンピュータ721が利用可能な媒体を介して、他の装置から上記記憶部に導入されてもよい。媒体とは、たとえば、入出力インタフェース110に着脱可能な記憶媒体、または通信媒体(すなわちネットワークまたはネットワークを伝搬する搬送波)を指す。
図2は、コンピュータA101、コンピュータB121の各処理部が行う情報の受け渡しの様子を示したものである。
次に、図1のコンピュータA101が、入力されたメッセージを暗号化する場合の動作について説明する。メッセージはディジタル化されたデータであれば良く、テキスト、画像、映像、音などの種類は問わない。
暗号化処理部112は、入出力インタフェース110を介して、平文メッセージ(図2の入力メッセージ204)を受け取ると、入力された平文メッセージのビット長が予め定めたビット長か否かを判断する。予め定めたビット長より長い場合には、予め定めたビット長となるように平文メッセージを区切る。以下、所定のビット長に区切られている部分メッセージ(単にメッセージともいう)について説明する。
次に、暗号化処理部112は、メッセージのビット列によって表される数値をx座標(x)にもつ楕円曲線上の点Pのy座標の値(y)を計算する。
例えば、ワイエルシュトラス型楕円曲線は、A,Bをそれぞれ定数とするとき、
Figure 2004070681
で表されるので、これよりy座標の値を求めることができる。
次に、暗号化処理部112は、乱数kを生成する。そして、記憶部102に格納されている定数104から読み出した(図2の205)公開鍵aQとQのx座標と、求めたy座標の値と乱数kとをスカラー倍計算部115へ送る(図2の206)。
スカラー倍計算部115は、Qのx座標、y座標の値、乱数kによるスカラー倍点(xd1,yd1)=kQと、公開鍵aQのx座標、y座標の値、乱数によるスカラー倍点(xd2,yd2)=k(aQ)とを計算し、計算されたスカラー倍点を暗号化処理部112へ送る(図2の207)。
暗号化処理部112は、送られたスカラー倍点を用いて、暗号化処理を行う。例えば、ワイエルシュトラス型の楕円曲線については、P+k(aQ)とkQを計算する。すなわち、
Figure 2004070681
を計算し、暗号化されたメッセージxe1,xe2を得る。
コンピュータA101は暗号化処理部112で暗号化された1つ以上の部分メッセージから暗号化された出力メッセージを組み立てる(図2の208)。
コンピュータA101は、暗号化された出力メッセージをデータ141として入出力インタフェース110より出力し、ネットワーク142を介してコンピュータB121へ転送する。
なお、図2の記憶部102からの情報読み出しは、スカラー計算部115へ当該情報を送る前で有れば、入力メッセージを受け付ける前であっても良い。
次に、コンピュータB121が、暗号化されたメッセージ141を復号化する場合の動作について、図2を参照しつつ説明する。
復号化処理部132(図2のデータ処理部112)は、入出力インタフェース110を介して、暗号化されたデータ141(図2の入力メッセージ204)が入力されると、入力された暗号化されたデータ141のビット長が予め定めたビット長か否かを判断する。予め定めたビット長より長い場合には、予め定めたビット長となるように暗号化されたデータを区切る。以下、所定のビット長に区切られている部分データ(単にデータともいう)について説明する。
データ141のビット列によって表される数値をx座標にもつ楕円曲線上のy座標の値を計算する。
暗号化されたメッセージがxe1,xe2のビット列であり、ワイエルシュトラス型楕円曲線の場合、y座標の値(ye1)は
Figure 2004070681
(ただし、A,Bはそれぞれ定数である)
から得ることができる。
復号化処理部132は、記憶部122(図2の102)に格納されている秘密情報125から読み出した(図2の205)秘密鍵aと、x座標、y座標の値(xe1,ye1)を、スカラー倍計算部135(図2の115)へ送る(図2の206)。
スカラー倍計算部135は、x座標、y座標の値、秘密情報a125からスカラー倍点(xd3,yd3)=a(xe2,ye2)を計算する。スカラー倍計算部135は、計算されたスカラー倍点を復号化処理部132へ送る(図2の207)。復号化処理部132は、送られたスカラー倍点を用いて、復号化処理を行う。
例えば、暗号化されたメッセージが、xe1,xe2のビット列であり、ワイエルシュトラス型の楕円曲線の場合は、
(P+k(aQ))−a(kQ)=(xe1,ye1)−(xd3,yd3
を計算することにより達成する。すなわち、
Figure 2004070681
を計算し、暗号化される前の部分メッセージxに相当するxf1を得る。
コンピュータB121は、復号化処理部132で復号化された部分メッセージから平文メッセージを組み立て(図2の208)、入出力インタフェース110を介して、ディスプレイ108などから出力する。
次に、コンピュータB121が、復号化処理を行う場合の、スカラー倍計算部135の処理を詳細に説明する。
図3は、各実施例で用いるスカラー倍計算部の機能ブロックを示したものである。スカラー倍計算部115(図1の135)は、エンコード部302、前計算部303、実計算部304からなる。エンコード部302は、剰余取得部321、剰余変換判定部322、剰余変換部323、繰り返し判定部324、格納部325からなる。前計算部303は、加算部331、2倍算部332、繰り返し判定部333からなる。実計算部304は、ビット値判定部341、加算部342、2倍算部343、繰り返し判定部344からなる。
スカラー倍計算部115がスカラー値d及び楕円曲線上の点Pから、楕円曲線におけるスカラー倍点dPを計算する方法を説明する。
スカラー倍計算部115が復号化処理部132からスカラー値dと楕円曲線上の点Pを受け取ると、エンコード部302は、入力されたスカラー値dを数値列d[j]にエンコードする。すなわち、
Figure 2004070681
をみたすd[j]に、スカラー値dを変換する。ここで、wはあらかじめ定めた小さな正整数で、ウィンドウ幅と呼ばれる。計算時間を優先する場合はwを大きな値とする。メモリ使用量を小さくする場合はwを小さな値にする。前計算部303は、入力された楕円曲線上の点Pから前計算テーブルを作成する。前計算テーブルはP,3P,...,(2−1)Pにより構成される。実計算部304は、エンコードされたスカラー値と前計算テーブルを用いてスカラー倍点dPを計算する。
なお、エンコード部302の行うエンコード処理は、スカラー値dを受け取った後、および実計算部304がスカラー倍点を計算する前であればよい。すなわち、前計算部303が前計算テーブルを作成する前に行っても、後に行なってもよい。
また、点Pが固定点である場合、前計算部303の行う前計算テーブルの作成処理は、ただ一度行えばよい。すなわち、一旦前計算テーブルを作成すれば、それ以降のスカラー倍計算では前計算テーブルを再作成する必要はない。
次にエンコード部302、前計算部303、実計算部304の行なう各処理について詳細に説明する。
まず、図4を用いて、エンコード部302がスカラー値dをエンコードする方法を説明する。
変数iに初期値0を、変数d’にスカラー値dをそれぞれ代入する(401)。
剰余取得部321は、スカラー値d’の2による剰余をu[i]に格納する(402)。
剰余取得部321は、(d’−u[i])/2を計算し、それを新たなd’とする(411)。
変数iを1増加させる(412)。
繰り返し判定部324は、変数iとkが一致するかどうかを判定する。
一致すればステップ421へ行く。一致しなければステップ414へ行く(413)。
剰余取得部321は、d’の2による剰余をu[i]に格納する(414)。
剰余変換判定部322は、u[i]が偶数か奇数かを判定する。
u[i]が偶数の場合はステップ416へ行く。奇数の場合はステップ417へ行く(415)。
剰余変換部323は、u[i]が奇数となるように、
u[i],u[i−1]を変換する(416)。これは、
Figure 2004070681
の操作を行なうことにより達成される。ここで、sign(u)はuの符号を取り出す関数であり、uが正の時は1、uが負の時は−1となる。
格納部325は、
[(i−1)w],d[(i−1)w+1],...,d[(i−1)+w−1]にそれぞれ、u[i−1],0,…,0を格納し、ステップ411へ戻る(417)。
ステップ413で変数iとkが一致した場合、格納部325はd[kw],d[kw+1],...,d[kw+w−1]にそれぞれ、u[k],0,…,0を格納する(421)。
エンコード部302は、d[n],d[n−1],...,d[0]を実計算部304へ出力する(422)。
次に、図5を用いて、前計算部303が楕円曲線上の点から、前計算テーブルを作成する方法を説明する。
点PをECDBLにより2倍し、その結果を点2Pに格納する(501)。
変数jに初期値1を代入する(502)。
jが2w−1より小さいかどうかを判定する。jが2w−1より小さい場合はステップ504へ行く。2w−1以上の場合はステップ511へ行く(503)。
ステップ503でjが2w−1より小さい場合、点2Pと点(2j−1)PをECADDにより加算し、その結果を点(2j+1)Pに格納する(504)。
変数jを1増加させ、ステップ503へ戻る(505)。
ステップ503でjが2w−1以上の場合、P,3P,...,(2−1)Pを前計算テーブルとして出力する(511)。
ただし、ECADD,ECDBLはそれぞれ楕円曲線における加算、2倍算を表す。加算は式1,2を用いて、2倍算は式4,5を用いてそれぞれ計算される。なお、加算、2倍算の計算には式1,2、および式4,5を用いる以外にも、射影座標やヤコビアン座標における計算公式があり、Cohen,H.,Miyaji,A.,Ono,T.,Efficient Elliptic Curve Exponentiation Using Mixed Coordinates,Advances in Cryptology−ASIACRYPT 1998,LNCS 1514,Springer−Verlag,(1998),pp.51−65.(文献3)に記載されている。
また、楕円曲線上の点Q=(x,y)に対して、楕円曲線加算に関する逆元の点−Qは、−Q=(x,−y)と表されるため、点Qの座標が与えられていれば容易に計算できる。そのため、点P,3P,…,(2−1)Pのみを前計算テーブルとして格納する。その後の実計算部304が行う計算で必要となる点−P,−3P,…,−(2−1)Pは、それらから導出すればよく、前計算テーブルには格納する必要はない。
なお、前計算部303の行う前計算テーブルの作成処理は、点P,3P,…,(2−1)Pが計算されればよい。そのため、モンゴメリトリックを用いて、楕円曲線演算で必要となる逆元演算の計算の共通化を行うことにより、高速化をはかってもよい。
モンゴメリトリックによる逆元演算共通化方法がCohen,H.,A course in computational algebraic number theory,GTM138,Springer−Verlag,(1993).(文献4)の481ページに記載されている。
最後に、図6を用いて、実計算部304がエンコードされたスカラー値と楕円曲線上の点から、楕円曲線におけるスカラー倍点を計算する方法を説明する。
変数cに初期値nを代入する(601)。
[c]が0か0でないかを判定する。
[c]が0の場合はステップ603へ行く。0でなければステップ611へ行く(602)。
変数cを1減少させ、ステップ602へ戻る(603)。
ステップ602でd[c]が0でない場合、点Qにd[c]Pを代入する(611)。
変数jに初期値c−1を代入する(612)。
jが0より小さいかどうかを判定する。jが0より小さい場合はステップ621へ行く。0以上の場合はステップ614へ行く(613)。
点QをECDBLにより2倍し、点Qに再び格納する(614)。
[j]が0か0でないかを判定する。
[j]が0の場合はステップ617へ行く。0でなければステップ616へ行く(615)。
ステップ615でd[j]が0でない場合、点Qとd[j]PとをECADDにより加算する。ただし、d[j]が負の場合は(−d[j])Pのy座標を反転したものを用いて加算を行う。その結果を点Qに格納し、ステップ617へ行く(616)。なお、d[j]が0でない場合は、d[j]は奇数である。そのため、d[j]Pもしくは(−d[j])Pのいずれかが、前計算テーブルに必ず存在する。
変数jを1減少させ、ステップ613へと戻る(617)。
ステップ613でjが0より小さい場合、点Qを出力する(621)。
エンコード部302が行う処理により出力されるd[j]は、式12,式13をみたす。この理由は次の通りである。
[j]はjがwで割り切れる時はu[j/w]に等しく、割り切れない場合は0に等しい。そのため、式12の右辺は、
Figure 2004070681
と等しい。ただし、k=n/wである。一方、ステップ416の変換では、
Figure 2004070681
の値は不変である。したがって、ステップ416の変換で、式17の値は不変である。他方、スカラー値dを2−進展開したものがu[i]の初期状態であるので、式17はdに等しい。ゆえに式12がみたされる。また、ステップ416の変換では、
Figure 2004070681
をみたすu[i]は、変換後も式19をみたす。したがって、式13がみたされる。
エンコード部302が行う処理で計算されるu[i]はi=0を除き全て奇数となる。この理由は次の通りである。ステップ415でu[i]が奇数であれば、u[i]の値はそのまま保持されるので、u[i]は奇数である。ステップ415でu[i]が偶数であれば、ステップ416でu[i],u[i−1]は式15,16により変換される。式14によりbの値が計算されるため、bは1もしくは−1である。そのため、式15の変換で、u[i]は奇数に変換される。また、式16の変換では、u[i−1]の偶奇性は変化しない。ステップ415に初めて来る時のiは1である。そのため、u[0]は奇数とは限らない。結果として、i=0を除き、u[i]は全て奇数である。
なお、u[0]も奇数とするためには、スカラー値dが奇数であればよい。そのためには、入力されたすカラー値dが偶数の時は、d+1を改めてスカラー値d’としてエンコードする。すなわち、dを奇数に変換する。そして、スカラー倍点d’Pを計算する。
Figure 2004070681
であるので、d’Pから点Pを引き、その値をスカラー倍点dPとして出力すればよい。
実計算部304が出力する点Qはスカラー倍点dPに等しい。この理由は次の通りである。
ステップ613において点Qが
Figure 2004070681
と表されるとする。このとき、次にステップ613に来る時も点Qは式21をみたすことを示す。
点Qはステップ614で2倍され、d[j]が0でなければステップ616でd[j]Pが加えられる。そのためステップ616の直後では、点Qの値は
Figure 2004070681
となる。したがってd[j]=0の時も含めて、ステップ617の直前で、点Qは式22をみたす。ステップ617でjが1減少するので、式22のjにj+1を代入すると式21になる。すなわち、次にステップ613に来る時も点Qは式21をみたす。
j>cに対するd[j]の値は0であるので、ステップ621で出力される点Qの値は
Figure 2004070681
に等しい。実計算部304に入力されるスカラー値は、エンコード部302によりエンコードされたd[j]であるので、そのd[j]は式12をみたす。したがって、Q=dPである。
上記スカラー倍におけるメモリ使用量は、前計算部303の前計算テーブルの大きさにより定まる。上記スカラー倍計算方法では、前計算テーブルはP,3P,…,(2−1)Pのみ、すなわち奇数倍の点のみを格納すればよいので、その点の数は2w−1個である。文献2の方法では、ウィンドウ幅wに対して、2個の点を格納する必要がある。そのため、上記スカラー倍計算方法は、文献2の方法と比べて格納する点の数が少なく、メモリ使用量が小さくてすむ。
さらに、いかなる方法をもってしても、前計算テーブルに格納する点の数をこれ以上削減することができないという意味で、メモリ使用量は最小である。この理由は次の通りである。
m個の点からなる前計算テーブルを用いた場合、k+1個のu[i]を用いて、エンコードされたスカラー値として表すことのできる数は(2m)k+1個である。他方、nビット以下のスカラー値は全部で2個あり、各々のスカラー値はそれぞれ異なる数値列にエンコードされなければならない。そのため、(2m)k+1≧2が成り立つ。k+1=n/wであるので、m≧2w−1となる。実際、上記スカラー倍計算方法における前計算テーブルの点の個数は2w−1であり、最小である。
また、上記スカラー倍方法は、サイドチャネル攻撃に対する防御法に関しても有効である。この理由は次の通りである。
エンコード部302によりスカラー値dは数値列d[j]にエンコードされる。この数値列d[j]は固定されたパターン
Figure 2004070681
をもつ。ここで各xは各々非0の値であり、それぞれd[iw]に対応する。そのため、実計算部304がスカラー倍点を計算する際に、ステップ613−617の繰り返し処理において、|0…0x|のブロックに対応する楕円曲線演算は、|D…DA|、すなわちw回のDの後にAとなる。ただし、DはECDBLを、AはECADDをそれぞれ表す。したがって、全てのスカラー値に対して、実行する楕円曲線演算は、
Figure 2004070681
となり、必ず楕円加算が実行されるので、スカラー値との依存関係がない。
なお、文献1のランダム化射影座標を併用してスカラー倍計算を行ってもよい。そうすると、同じ点Pを入力しても実行毎に異なる値に変換してスカラー倍計算を行うので、攻撃者が中間値の値を予測できなくなる。
また、前計算テーブルに格納されている点が読み出されるたびに、再びランダム化して、前計算テーブルに書き込んでもよい。そうすると、同じデータの再使用がなくなるため、より一層、サイドチャネル攻撃への耐性が増す。
以上の通り、上記計算方法は、サイドチャネル攻撃に有用な情報を与えないので、サイドチャネル攻撃に対して耐性がある。また、奇数倍の点のみを前計算テーブルとして格納するため、メモリ使用量が小さくてすむという特徴がある。
なお、上記計算方法では楕円曲線としてワイエルシュトラス型楕円曲線を用いたが、標数2の有限体上で定義された楕円曲線や、OEF(Optimal Extension Field)上で定義された楕円曲線、もしくはモンゴメリ型楕円曲線を用いてもよい。OEFについては、D.V.Bailey,C.Paar,Optimal Extension Fields for Fast Arithmetic in Public−Key Algorithms,Advances in Cryptology Crypto ’98,LNCS 1462,(1998),472−485.(文献5)に記載されている。
以上、コンピュータB121が、暗号化されたデータ141を復号化する場合のスカラー倍計算部135の動作を説明したが、コンピュータA101が入力メッセージを暗号化する場合も同様である。
その場合には、コンピュータA101のスカラー倍計算部115は、既に説明した楕円曲線上の点Q、乱数kによるスカラー倍点kQと、公開鍵aQと乱数kによるスカラー倍点k(aQ)を出力する。このとき、上記計算方法で説明したスカラー値dを乱数k、楕円曲線上の点Pを楕円曲線上の点Q、公開鍵aQとして同様の処理を行うことにより、それぞれのスカラー倍点を求めることができる。
次に本発明を署名検証システムに適用する実施例を、図7と図2を用いて説明する。
図7の署名検証システムは、スマートカード701と署名検証処理を行うコンピュータ721とから成る。
スマートカード701は、機能としてはコンピュータA101と類似の構成を備えるが、CPU113やコプロセッサ114などの演算装置とが記憶部102に格納されているプログラムを実行することにより、データ処理部112ではなく、署名生成処理部712を実現する。ただし、外部記憶装置、ディスプレイ、キーボードを備えない。
コンピュータ721は、コンピュータA101と同様の構成を備えるが、CPU113がプログラムを実行することによりデータ処理部112ではなく、署名検証処理部732を実現する。
スカラー倍計算部715と735は、図1に示すスカラー倍計算部115または135と同様の機能を備える。
なお、本実施例において、コンピュータ721内の各プログラムは、あらかじめ、上記コンピュータ内の記憶部に格納されていても良いし、必要なときに、コンピュータ721が利用可能な媒体を介して他の装置から上記記憶部に導入されてもよい。
さらに、スマートカード内の各プログラムは、あらかじめ、上記スマートカード内の記憶部に格納されていても良いし、必要なときに、入出力インタフェースを介して接続するコンピュータ、または当該コンピュータが利用可能な媒体を介して上記記憶部に導入されてもよい。
媒体とは、たとえば当該コンピュータに着脱可能な記憶媒体、または通信媒体(すなわちネットワークまたはネットワークを伝搬する搬送波)を指す。
図7の署名検証システムにおける署名作成と署名検証動作を、図2を参照して説明する。
コンピュータ721は、ランダムに選んだ数値をチャレンジコード743として、インタフェース742を介してスマートカード701に転送する。
署名生成処理部712(図2の112)は、チャレンジコード743を受け付け、チャレンジコード743のハッシュ値をとり、所定のビット長の数値fに変換する。
署名生成処理部712は、乱数uを生成し、記憶部702(図2の102)に格納されている定数704から読み出した(図2の205)楕円曲線上の定点Qとともにスカラー倍計算部715(図2の115)へ送る(図2の206)。
スカラー倍計算部715は、定点Q、乱数uによるスカラー倍点(x,y)を計算し、計算されたスカラー倍点を署名生成処理部712へ送る(図2の207)。
署名生成処理部712は、送られたスカラー倍点を用いて署名の生成を行う。例えば、ECDSA署名であれば、
Figure 2004070681
を計算することによりチャレンジコード743に対応する署名(s,t)を得る(図2の208)。
ここで、qは定点Qの位数、すなわち定点Qのq倍点qQが無限遠点になり、qより小さな数値mに対する定点Qのm倍点mQは無限遠点にはならない、というような数値のことである。
ECDSA署名については、ANSI X9.62 Public Key Cryptography for the Financial Services Industry,The Elliptic Curve Digital Signature Algorithm(ECDSA),(1999)(文献6)に記載されている。
スマートカード701は、署名生成処理部712で作成した署名741を入出力インタフェース710より出力し、インタフェース742を介してコンピュータ721へ転送する。
コンピュータ721の署名検証処理部732(図2の112)は、署名741が入力される(図2の204)と、署名741の数値s,tが適切な範囲内すなわち1≦s,t<qであるかを調べる。
数値s,tが上記範囲内になければチャレンジコード743に対する署名の検証結果として「無効」を出力し、スマートカード701を拒絶する。数値s,tが上記範囲内にあれば、署名検証処理部732は、
Figure 2004070681
を計算する。そして、記憶部722(図2の102)に格納されている定数724から読み出した(図2の205)公開鍵aQ及び定点Qと計算したh,hをスカラー倍計算部735(図2の115)へ送る(図2の206)。
スカラー倍計算部735は、定点Qとhによるスカラー倍点hQと、公開鍵aQとhによるスカラー倍点haQとを計算し、計算されたスカラー倍点を署名検証処理部732へ送る(図2の207)。
署名検証処理部732は、送られたスカラー倍点を用いて、署名検証処理を行う。例えば、ECDSAの署名検証であれば、点R
Figure 2004070681
を計算し、そのx座標をxとしたとき、
Figure 2004070681
を計算し、s’=sであればチャレンジコード743に対する署名の検証結果として「有効」を出力し、スマートカード701を認証し、受け入れる(図2の208)。
s’=sでなければ「無効」を出力し、スマートカードを拒絶する(図2の208)。
上記実施形態のスカラー倍計算部715、735は、図1のスカラー倍計算部115または135と同様の機能を備えるので、サイドチャネル攻撃を防ぎ且つメモリ使用量の少ないスカラー倍計算を実行できる。
そのためスマートカード701は署名作成処理を行う際に、コンピュータ721は署名検証処理を行う際に、サイドチャネル攻撃を防ぎ、その上少ないメモリ使用量で実行できる。
次に本発明を鍵交換システムに適用する例を説明する。本実施形態においては、図1のシステム構成が応用できる。
図1のデータ処理部112、132は、本実施形態においては、それぞれ鍵交換処理部112、132として機能する。
鍵交換システムのコンピュータA101が、入力されたデータ143から共有情報の導出を行う場合の動作について図1、図2を参照して説明する。
コンピュータB121のデータ処理部132(図2の112)は、記憶部122(図2の102)の定数125から秘密鍵bを読み出しコンピュータB121の公開鍵bQを計算する。そして、ネットワーク142を介して、公開鍵bQをデータ143としてコンピュータA101に転送する。
コンピュータA101の鍵交換処理部112(図2の112)はコンピュータB121の公開鍵bQの入力を受け付ける(図2の204)と、鍵交換処理部112は、記憶部102から読み出した(図2の205)秘密情報105であるコンピュータA101の秘密鍵aと、コンピュータB121の公開鍵bQとをスカラー倍計算部115へ送る(図2の206)。
スカラー倍計算部115は、秘密鍵aと、公開鍵bQによるスカラー倍点abQを計算し、計算されたスカラー倍点を鍵交換処理部112へ送る(図2の207)。
鍵交換処理部112は、送られたスカラー倍点を用いて共有情報の導出を行い、記憶部102に秘密情報105として格納する。例えば、スカラー倍点abQのx座標を、共有情報とする。
次に、コンピュータ121が、入力されたデータ141から共有情報の導出を行う場合の動作について説明する。
コンピュータA101のデータ処理部112は、記憶部102の定数105から秘密鍵aを読み出しコンピュータA101の公開鍵aQを計算する。そして、ネットワーク142を介して、公開鍵aQをデータ141としてコンピュータB121に転送する。
コンピュータB121の鍵交換処理部132(図2の112)はコンピュータA101の公開鍵aQの入力を受け付ける(図2の204)と、鍵交換処理部132は、記憶部122(図2の102)の定数125から読み出した(図2の205)秘密情報125であるコンピュータB121の秘密鍵bと、コンピュータA101の公開鍵aQとをスカラー倍計算部135(図2の115)へ送る(図2の206)。
スカラー倍計算部135は、秘密鍵bと、公開鍵aQによるスカラー倍点baQを計算し、計算されたスカラー倍点を鍵交換処理部132へ送る(図2の207)。
鍵交換処理部132は、送られたスカラー倍点を用いて共有情報の導出を行い、記憶部122に秘密情報125として格納する。例えば、スカラー倍点baQのx座標を、共有情報とする。
ここで、数abと数baは数値として同じなので、点abQと点baQは同じ点となり、同じ情報が導出されたことになる。
ネットワーク142には、点aQと点bQが送信されるが、点abQ(もしくは点baQ)を計算するには秘密鍵aもしくは秘密鍵bを用いなければならない。すなわち、秘密鍵aもしくは秘密鍵bを知らなければ、共有情報を得ることができない。このようにして得られた共有情報は、共通鍵暗号の秘密鍵として利用できる。
本実施形態においても、スカラー倍計算部115、135は、上述の特徴を備えるので、サイドチャネル攻撃を防ぎ、そのうえ少ないメモリ使用量で鍵交換処理が可能になる。
また、上記各実施形態における暗号化処理部、復号化処理部、署名作成部、署名検証部、鍵交換処理部は、専用のハードウェアを用いて行ってもよい。また、スカラー倍計算部をコプロセッサまたはそれ以外の専用ハードウェアで実現しても良い。
また、データ処理部は、上記暗号化処理、復号化処理、署名作成処理、署名検証処理、鍵交換処理のうち、任意の一つ以上の処理を行えるように構成してもよい。
本発明によれば、サイドチャネル攻撃に対して安全で、かつメモリ使用量の少ない、楕円曲線演算を用いたメッセージ処理が可能になる。

Claims (18)

  1. 楕円曲線暗号における楕円曲線において、スカラー値及び楕円曲線上の点からスカラー倍点を計算するスカラー倍計算方法であって、
    前記スカラー値を数値列にエンコードするステップと、
    前記楕円曲線上の点から前計算テーブルを作成するステップと、
    前記エンコードした数値列及び前記前計算テーブルからスカラー倍点を計算するステップと、を有するスカラー倍計算方法。
  2. 請求項1記載のスカラー倍計算方法であって、
    前記エンコードするステップが出力する数値列は0と奇数からなるスカラー倍計算方法。
  3. 請求項2記載のスカラー倍計算方法であって、
    前記スカラー倍点を計算するステップは、
    第1の演算を予め定められた回数を実行するステップと、
    第1の演算とは異なる第2の演算を実行するステップとを含むスカラー倍計算方法。
  4. 楕円曲線暗号における楕円曲線において、スカラー値及び楕円曲線上の点の奇数倍点を格納した前計算テーブルからスカラー倍点を計算するスカラー倍計算方法であって、
    前記スカラー値を数値列にエンコードするステップと、
    前記エンコードした数値列及び前記前計算テーブルからスカラー倍点を計算するステップとを有し、
    前記エンコードするステップが出力する数値列は0と奇数からなるスカラー倍計算方法。
  5. 請求項3記載のスカラー倍計算方法であって、
    楕円曲線としてワイエルシュトラス型楕円曲線を用いるスカラー倍計算方法。
  6. 請求項3記載のスカラー倍計算方法であって、
    楕円曲線としてモンゴメリ型楕円曲線を用いるスカラー倍計算方法。
  7. 請求項3記載のスカラー倍計算方法であって、
    楕円曲線として標数2の有限体上で定義された楕円曲線を用いるスカラー倍計算方法。
  8. 請求項3記載のスカラー倍計算方法であって、
    楕円曲線としてOEF上で定義された楕円曲線を用いるスカラー倍計算方法。
  9. 第1のデータから第2のデータを生成するデータ生成方法であって、
    請求項3に記載のスカラー倍計算方法を用いてスカラー倍を計算するステップを有するデータ生成方法。
  10. データから署名データを生成する署名作成方法であって、
    請求項3に記載のスカラー倍計算方法を用いてスカラー倍を計算するステップを有する署名作成方法。
  11. 暗号化されたデータから復号化されたデータを生成する復号化方法であって、
    請求項3に記載のスカラー倍計算方法を用いてスカラー倍を計算するステップを有する復号化方法。
  12. 楕円曲線暗号における楕円曲線において、スカラー値及び楕円曲線上の点からスカラー倍点を計算するスカラー倍計算装置であって、
    前記スカラー値を数値列にエンコードするエンコード部と、
    前記楕円曲線上の点から前計算テーブルを作成する前計算部と、
    前記エンコードした数値列及び前記前計算テーブルからスカラー倍点を計算する実計算部とを有するスカラー倍計算装置。
  13. 第1のデータから第2のデータを生成するデータ変換部と、前記データ変換部より依頼されてスカラー倍を計算するスカラー倍計算部とを有するデータ生成装置であって、
    前記スカラー倍計算部は、請求項3に記載のスカラー倍計算方法を用いてスカラー倍を計算するデータ生成装置。
  14. データから署名データを生成する署名部と、前記署名部より依頼されてスカラー倍を計算するスカラー倍計算部とを有する署名作成装置であって、
    前記スカラー倍計算部は、請求項3に記載のスカラー倍計算方法を用いてスカラー倍を計算する署名作成装置。
  15. 暗号化されたデータから復号化されたデータを生成する復号部と、前記復号部より依頼されてスカラー倍を計算するスカラー倍計算部とを有する復号化装置であって、
    前記スカラー倍計算部は、請求項3に記載のスカラー倍計算方法を用いてスカラー倍を計算する復号化装置。
  16. 請求項3に記載のスカラー倍計算方法を計算機に実行させるプログラム。
  17. 請求項10記載の署名作成方法を計算機に実行させるプログラム。
  18. 請求項11記載の復号化方法を計算機に実行させるプログラム。
JP2004567900A 2003-02-06 2003-11-28 楕円曲線スカラー倍計算方法および装置 Expired - Fee Related JP4502817B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003028996 2003-02-06
JP2003028996 2003-02-06
PCT/JP2003/015253 WO2004070681A2 (ja) 2003-02-06 2003-11-28 楕円曲線スカラー倍計算方法および装置

Publications (2)

Publication Number Publication Date
JPWO2004070681A1 true JPWO2004070681A1 (ja) 2006-05-25
JP4502817B2 JP4502817B2 (ja) 2010-07-14

Family

ID=32844222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004567900A Expired - Fee Related JP4502817B2 (ja) 2003-02-06 2003-11-28 楕円曲線スカラー倍計算方法および装置

Country Status (3)

Country Link
JP (1) JP4502817B2 (ja)
AU (1) AU2003284481A1 (ja)
WO (1) WO2004070681A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2403308B (en) * 2003-06-26 2006-06-21 Sharp Kk Side channel attack prevention in data processing apparatus
JP4783061B2 (ja) * 2005-02-04 2011-09-28 ルネサスエレクトロニクス株式会社 楕円曲線暗号におけるスカラー倍計算装置
KR101223498B1 (ko) 2006-12-15 2013-01-18 삼성전자주식회사 타원 곡선 암호 방식에서 공개키를 생성하는 방법 및 상기방법을 수행하는 시스템
US9531531B2 (en) * 2015-05-06 2016-12-27 Qualcomm Incorporated Methods and devices for fixed execution flow multiplier recoding and scalar multiplication

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132096A (ja) * 1998-10-27 2000-05-12 Fujitsu Ltd スカラー倍算方法およびその装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132096A (ja) * 1998-10-27 2000-05-12 Fujitsu Ltd スカラー倍算方法およびその装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6010000927, B. Moller, "Securing Elliptic Curve Point Multiplication against Side−Channel Attacks", The Internet, 20011221 *
JPN6010000929, イアン・F・ブラケ他, 楕円曲線暗号, 20011220, p.71−75, 株式会社ピアソン・エデュケーション *
JPN7010000056, SOLINAS, J. A., "Efficient Arithmetic on Koblitz Curves, Designs", Codes and Cryptography, 2000, 19, p.195−249 *

Also Published As

Publication number Publication date
JP4502817B2 (ja) 2010-07-14
AU2003284481A1 (en) 2004-08-30
WO2004070681A2 (ja) 2004-08-19

Similar Documents

Publication Publication Date Title
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US7603560B2 (en) Method and apparatus for digital signature authentication
US7308096B2 (en) Elliptic scalar multiplication system
US7904498B2 (en) Modular multiplication processing apparatus
US7379546B2 (en) Method for XZ-elliptic curve cryptography
JP4668931B2 (ja) 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置
US20080165955A1 (en) Password protocols using xz-elliptic curve cryptography
EP1014617A2 (en) Method and apparatus for elliptic curve cryptography and recording medium therefor
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
EP0952697B1 (en) Elliptic curve encryption method and system
JP2003098962A (ja) 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
CN101296076A (zh) 一种基于ecc的数字签名方案
US6772184B2 (en) Method for efficient modular division over prime integer fields
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
CN112350827A (zh) 一种基于Koblitz曲线的加速标量乘计算的椭圆曲线加解密方法和系统
JP4502817B2 (ja) 楕円曲線スカラー倍計算方法および装置
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
Sasikaladevi et al. SNAP-compressive lossless sensitive image authentication and protection scheme based on Genus-2 hyper elliptic curve
JP4692022B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム
KR100341507B1 (ko) 빠른 유한체 연산을 이용한 타원곡선 암호화 방법 및 전자서명 방법
JP2005316038A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびプログラム
Abebe et al. Lightweight integrated cryptosystem based on reconfigurable hardware for IoT security
JP2006309201A (ja) 楕円曲線暗号における多重スカラー倍計算装置、署名検証装置、及び、それらのプログラム。
JP2004053814A (ja) 楕円曲線暗号装置及び楕円曲線暗号演算方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060823

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060823

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100323

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

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

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

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140430

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees