JP4634046B2 - 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置 - Google Patents

故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置 Download PDF

Info

Publication number
JP4634046B2
JP4634046B2 JP2004015573A JP2004015573A JP4634046B2 JP 4634046 B2 JP4634046 B2 JP 4634046B2 JP 2004015573 A JP2004015573 A JP 2004015573A JP 2004015573 A JP2004015573 A JP 2004015573A JP 4634046 B2 JP4634046 B2 JP 4634046B2
Authority
JP
Japan
Prior art keywords
point
power
elliptic
unit
power multiplication
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.)
Expired - Fee Related
Application number
JP2004015573A
Other languages
English (en)
Other versions
JP2004252433A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2004015573A priority Critical patent/JP4634046B2/ja
Publication of JP2004252433A publication Critical patent/JP2004252433A/ja
Application granted granted Critical
Publication of JP4634046B2 publication Critical patent/JP4634046B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、楕円曲線を用いる演算処理技術に関し、特に、故障利用攻撃に対抗できる技術に関する。
従来より情報の秘匿、認証等を実現する手段として公開鍵暗号方式が知られている。
公開鍵暗号方式では、自分のみが保持する秘密鍵と、前記秘密鍵に対応し公開される公開鍵とのペアが生成され、前記公開鍵を用いて暗号化が行われ、前記秘密鍵を用いて復号が行われる。
公開鍵暗号方式では、処理演算量が多いという欠点はあるものの、秘密鍵を複数の利用者により共有する必要がないので、高セキュリティを必要とする場合によく用いられる。一般に良く知られている公開鍵暗号方式として、RSA暗号と楕円曲線暗号が存在する。
公開鍵暗号方式の安全性の根拠として離散対数問題が用いられる。離散対数問題には、代表的なものとして、有限体上定義されるもの及び楕円曲線上定義されるものがある。ここで、楕円曲線上定義される離散対数問題とは、E(GF(p))を有限体GF(p)上で定義された楕円曲線とし、楕円曲線Eの位数が大きな素数で割り切れる場合に、楕円曲線Eに含まれる元Gをベースポイントとする。このとき、楕円曲線Eに含まれる与えられた元Yに対して、
Y=x*G
となる整数xが存在するならば、xを求めよ、という問題である。
ここで、pは素数、GF(p)はp個の元を持つ有限体である。また、この明細書において、記号「*」は、楕円曲線上の点、つまり元を複数回加算する演算を示し、この演算は、楕円べき倍演算と呼ばれる。
離散対数問題を公開鍵暗号の安全性の根拠とするのは、多くの元を有する有限体GF(p)に対して、上記問題を解くことは極めて難しいからである。
また、公開鍵暗号方式では、秘密鍵をICカードなど外部に漏れない手段を用いて保持するのが一般的である。
以上のような技術を用いることにより、第三者に知られないように、秘密情報を相手に送信することができるものの、特許文献2によると、ICカードなどから外部に出力される様々な情報を解析することにより、不正に秘密情報を得る方法が知られるようになってきている。その一つに故障利用攻撃(DFA攻撃ともいう)が存在する。
故障利用攻撃では、ICカードなどが復号処理を行っている間に、過電流などを用いてICカードに故意に故障を誘発し、故障を起こす時点までに演算された値を出力させる。こうして得られた出力値を多数集め、得られた多数の出力値を解析することにより、秘密情報を知る。
このような故障利用攻撃に対抗するために、特許文献1によると、コプロセッサを搭載し、RSA公開鍵暗号方式のデジタル署名の作成を行う冪乗剰余計算を公開鍵nの素因数を用いて中国人剰余定理により高速で処理するようにした故障利用攻撃対応ICカードが開示されている。このICカードは、中国人剰余定理による計算過程において生成されるデータとともに、該データについてのエラー検出符号を同時に計算して記憶しておき、デジタル署名の作成時に、前記データのエラー検出符号を再度計算し、記憶しておいたエラー検出符号と照合する。
特開平11−8616号公報 特開2002−261751号公報
しかしながら、特許文献1により開示された技術は、RSA公開鍵暗号方式を利用する装置において適用できるものの、楕円曲線暗号を利用する装置には適用できないという問題点がある。
本発明は、上記の問題点を解決するために、楕円曲線演算技術を利用する場合に、故障利用攻撃に対抗することができる楕円べき倍演算装置、楕円べき倍演算方法、楕円べき倍演算用のコンピュータプログラム、及び情報セキュリティ装置を提供することを目的とする。
上記目的を達成するために、本発明は、素数pを法とする剰余体F上で定義された楕円曲線E:y2 =x3 +a×x+bにおいて楕円べき倍演算を行う楕円べき倍演算装置であって、楕円曲線E上の点Q及び素数p未満の正整数であるべき倍係数kを取得する情報取得手段と、楕円曲線Eの一次項の係数aを記憶している第1記憶手段と、前記第1記憶手段に記憶されている前記係数aを用いて、前記べき倍係数k及び前記点Qに楕円べき倍演算を施して、べき倍点k*Qを算出するべき倍演算手段と、算出された前記べき倍点k*Qが楕円曲線E上に存在するか否かを判定する判定手段と、前記判定手段により前記べき倍点k*Qが楕円曲線E上に存在すると判定された場合に、算出された前記べき倍点k*Qを出力する出力手段とを備える。
この構成によると、判定手段により前記べき倍点k*Qが楕円曲線E上に存在すると判定された場合に、算出された前記べき倍点k*Qを出力するので、故障利用攻撃を受けたときに、演算途中の結果を出力することはない。
ここで、前記楕円べき倍演算装置は、さらに、楕円曲線Eの零次項の係数bを記憶している第2記憶手段を含み、前記判定手段は、前記第1記憶手段に記憶されている前記係数a及び前記第2記憶手段に記憶されている前記係数bを用いて、算出された前記べき倍点k*Qが楕円曲線E上に存在するか否かを判定する。
この構成によると、前記第1記憶手段に記憶されている前記係数a及び前記第2記憶手段に記憶されている前記係数bを用いるので、前記べき倍点k*Qが楕円曲線E上に存在するか否かの判定が確実に行える。
ここで、前記楕円べき倍演算装置は、さらに、楕円曲線Eの零次項の係数bを取得し、取得した係数bを前記第2記憶手段に書き込む零次係数取得手段を含む。
この構成によると、楕円曲線Eの零次項の係数bを取得して前記第2記憶手段に書き込むので、零次項の係数bを変化させることにより、楕円曲線を固定することなく、異なる楕円曲線を設定でき、楕円曲線暗号の汎用性が阻害されることなく、多様な楕円曲線を用いることができる。
ここで、前記楕円べき倍演算装置は、さらに、楕円曲線Eの一次項の係数aを取得し、取得した係数aを前記第1記憶手段に書き込む一次係数取得手段を含む。
この構成によると、楕円曲線Eの一次項の係数aを取得して前記第1記憶手段に書き込むので、一次項の係数aを変化させることにより、上記と同様に、楕円曲線を固定することなく、多様な楕円曲線を用いることができる。
ここで、前記楕円べき倍演算装置は、さらに、前記第1記憶手段に記憶されている前記係数a、取得された点Q及び楕円曲線E:y2 =x3 +a×x+bを用いて、前記係数bを算出し、算出した前記係数bを前記第2記憶手段に書き込む零次係数演算手段を含む。
この構成によると、前記係数bを予め記憶していない場合であっても、係数a、点Q及び楕円曲線E:y2 =x3 +a×x+bから前記係数bを算出し、算出した前記係数bを前記判定において用いるので、楕円べき倍演算の前に、係数bが悪意のある第三者により不正に盗まれることはない。
ここで、前記べき倍演算手段は、前記べき倍点k*Qとして、座標値(Qx、Qy)を算出し、前記判定手段は、(Qy)2 を算出し、(Qx)3 +a×Qx+bを算出し、算出した(Qy)2 と算出した(Qx)3 +a×Qx+bとを比較し、一致する場合に、前記べき倍点k*Qが楕円曲線E上に存在すると判定する。
この構成によると、(Qy)2 と(Qx)3 +a×Qx+bとを比較することにより、確実に、前記判定を行える。
ここで、前記楕円べき倍演算装置は、さらに、前記判定手段により前記べき倍点k*Qが楕円曲線E上に存在すると判定されない場合に、エラーを示す旨のメッセージを出力するエラー出力手段を含む。
この構成によると、エラーを示す旨のメッセージを出力するので、外部からエラーの発生を知ることができる。
ここで、前記判定手段は、前記べき倍点k*Qが楕円曲線E上に存在するか否かの判定に代えて、点Qとべき倍点k*Qとが同一の楕円曲線上に存在するか否を判定し、前記出力手段は、前記べき倍点k*Qが楕円曲線E上に存在すると判定された場合に代えて、点Qとべき倍点k*Qとが同一の楕円曲線上に存在すると判定された場合に、前記べき倍点k*Qを出力する。
この構成によると、点Qとべき倍点k*Qとが同一の楕円曲線上に存在するか否を判定し、点Qとべき倍点k*Qとが同一の楕円曲線上に存在すると判定された場合に、前記べき倍点k*Qを出力するので、故障利用攻撃を受けたときに、演算途中の結果を出力することはない。
ここで、前記情報取得手段は、点Qとして座標値(Qx 、Qy )を取得し、前記べき倍演算手段は、前記べき倍点k*Qとして座標値(Qx'、Qy')を算出し、前記判定手段は、(Qy2−Qx3−a×Qx)−(Qy'2−Qx'3−a×Qx')=0が成立するか否かを判断することにより、点Qとべき倍点k*Qとが同一の楕円曲線上に存在するか否を判定する。
この構成によると、(Qy2−Qx3−a×Qx)−(Qy'2−Qx'3−a×Qx')=0が成立するか否かを判断することにより、点Qとべき倍点k*Qとが同一の楕円曲線上に存在するか否かの判定が確実に行える。
また、本発明は、素数pを法とする剰余体F上で定義された楕円曲線E:y2 =x3 +a×x+b上の離散対数問題を解くことが計算量の上で困難であることを根拠として、楕円べき演算k*Qを演算することにより所定の情報を安全かつ確実に扱う情報セキュリティ装置であって、楕円曲線E上の点Q及び素数p未満の正整数であるべき倍係数kを取得する情報取得手段と、楕円曲線Eの一次項の係数aを記憶している第1記憶手段と、前記第1記憶手段に記憶されている前記係数aを用いて、前記べき倍係数k及び前記点Qに楕円べき倍演算を施して、べき倍点k*Qを算出するべき倍演算手段と、算出された前記べき倍点k*Qが楕円曲線E上に存在するか否かを判定する判定手段と、前記判定手段により前記べき倍点k*Qが楕円曲線E上に存在しないと判定された場合に、算出された前記べき倍点k*Qの出力を抑制する抑制手段とを備える。
この構成によると、前記情報セキュリティ装置において、判定手段により前記べき倍点k*Qが楕円曲線E上に存在すると判定された場合に、算出された前記べき倍点k*Qを出力するので、故障利用攻撃を受けたときに、演算途中の結果を出力することはない。
1.実施の形態1
本発明に係る1の実施の形態としてのポイント発行システム10について説明する。
1.1 ポイント発行システム10の構成
ポイント発行システム10は、図1に示すように、ICカード100及びポイント発行装置200から構成されている。
ポイント発行装置200の操作者によりICカード100がポイント発行装置200に装着され、ポイント発行装置200は、ポイントを生成し、生成したポイントに暗号化を施して暗号化ポイントを生成し、生成した暗号化ポイントをICカード100へ送信する。ここで、ポイントは、利用者が商品を購入したりサービスの提供を受けた場合に、販売者やサービス提供者から受け取る特典情報であり、次に利用者が商品を購入したりサービスの提供を受ける際に、販売者やサービス提供者への対価の支払いの一部又は全部として利用される。
ICカード100は、暗号化ポイントを受け取り、受け取った暗号化ポイントに前記暗号化に対応する復号を施して、再生ポイントを生成し、生成した再生ポイントを内部に記憶する。
1.2 ポイント発行装置200の構成
ポイント発行装置200は、図1に示すように、公開鍵記憶部201、暗号処理部202、通信部203、制御部204、情報記憶部205、入力部206及び表示部207から構成されている。
ポイント発行装置200は、ポイントを生成し、生成したポイントを暗号化してICカード100に書き込む装置であるとともに、商品の販売の際に、販売額を計算し、計算した販売額を表示し、レシートを印刷し、生成した前記ポイントを内部に記憶し、利用者から支払われる代金の保管などを行う金銭レジスタ装置でもある。
ポイント発行装置200は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレィユニット、キーボードなどから構成されるコンピュータシステムである。前記RAM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、ポイント発行装置200は、その機能を達成する。
(1)情報記憶部205及び公開鍵記憶部201
情報記憶部205は、素数pを法とする剰余体Fp上で定義された楕円曲線E(Fp)上のベースポイントB、素数及び楕円曲線E(Fp)を記憶している。また、生成されたポイントPmを記憶するための領域を備えている。
公開鍵記憶部201は、後述する秘密鍵ksに対応して生成された公開鍵kpを記憶している。ここで、公開鍵kpは、ICカード100又は鍵管理装置により、以下に示す式により算出されたものである。
公開鍵kp=秘密鍵ks*ベースポイントB
(2)制御部204
制御部204は、前記特典情報としてのポイントPmを生成し、生成したポイントPmを情報記憶部205に書き込む。次に、暗号処理部202に対して、ポイントPmを暗号化してICカード100へ送信することを示す指示を出力する。
(3)暗号処理部202
暗号処理部202は、図2に示すように、暗号制御部211と楕円演算部212とから構成され、楕円演算部212は、べき倍係数入力部221、被演算値入力部222、一次項保持部223、楕円べき倍演算部224及び演算結果出力部225から構成されている。
(暗号制御部211)
暗号制御部211は、制御部204から、ポイントPmを暗号化してICカード100へ送信することを示す指示を受け取る。
前記指示を受け取ると、暗号制御部211は、乱数rを生成し、ベースポイントBを情報記憶部205から読み出し、次に、生成した乱数rをべき倍係数として、べき倍係数入力部221へ出力し、読み出したベースポイントBを被べき倍点として、被演算値入力部222へ出力する。次に、演算結果出力部225から、演算結果としてべき倍点r*Bを受け取り、第1暗号文s1=べき倍点r*Bとする。
次に、暗号制御部211は、公開鍵記憶部201から公開鍵kpを読み出し、次に、生成した乱数rをべき倍係数として、べき倍係数入力部221へ出力し、読み出した公開鍵kpを被べき倍点として、被演算値入力部222へ出力する。次に、演算結果出力部225から、演算結果としてべき倍点r*kpを受け取る。
次に、暗号制御部211は、情報記憶部205からポイントPmを読み出し、読み出したポイントPmと受け取ったべき倍点r*kpのx座標値とに排他的論理和を施して、第2暗号文s2=ポイントPm xor (べき倍点r*kpのx座標値)を生成する。ここで、「xor」は、排他的論理和を示す演算子である。
次に、暗号制御部211は、生成した第1暗号文s1及び第2暗号文s2を通信部203を介して、ICカード100へ送信する。
(べき倍係数入力部221)
べき倍係数入力部221は、暗号制御部211からべき倍係数を受け取り、受け取ったべき倍係数を楕円べき倍演算部224へ出力する。
(被演算値入力部222)
被演算値入力部222は、暗号制御部211から被べき倍点を受け取り、受け取った被べき倍点を楕円べき倍演算部224へ出力する。
(一次項保持部223)
一次項保持部223は、楕円曲線E(Fp):y2=x3+a×x+bの一次項の係数aを保持している。係数aは、一例として、「−3」である。
(楕円べき倍演算部224)
楕円べき倍演算部224は、べき倍係数入力部221からべき倍係数を受け取り、被演算値入力部222から被べき倍点を受け取り、一次項保持部223から係数aを受け取る。
次に、楕円べき倍演算部224は、(べき倍係数)*(被べき倍点)を演算し、演算結果として、べき倍点を演算結果出力部225へ出力する。
なお、べき倍演算については、後述する。
(演算結果出力部225)
演算結果出力部225は、楕円べき倍演算部224からべき倍点を受け取り、受け取ったべき倍点を暗号制御部211へ出力する。
(4)通信部203、入力部206及び表示部207
通信部203は、暗号処理部202又は制御部204の制御の基に、ICカード100との間で、情報の送受信を行う。
入力部206は、ポイント発行装置200の操作者からの情報又は指示の入力部を受け付け、入力を受け付けた情報又は指示を制御部204へ出力する。
表示部207は、制御部204の制御により、各種情報を表示する。
1.3 ICカード100の構成
ICカード100は、図1に示すように、秘密鍵記憶部101、復号処理部102、通信部103、制御部104及び情報記憶部105から構成されている。
ICカード100は、具体的には、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、ICカード100は、その機能を達成する。
(1)情報記憶部105及び秘密鍵記憶部101
情報記憶部105は、素数p、楕円曲線E(Fp)及びベースポイントBを記憶している。また、生成された再生ポイントPm’を記憶するための領域を備えている。
秘密鍵記憶部101は、秘密鍵ksを記憶している。
(2)通信部103
通信部103は、ポイント発行装置200から第1暗号文s1及び第2暗号文s2を受信する。第1暗号文s1及び第2暗号文s2を受信すると、制御部104に対して、受信した旨を制御部104に対して通知する。また、受信した第1暗号文s1及び第2暗号文s2を復号処理部102へ出力する。
(3)制御部104
制御部104は、通信部103から第1暗号文s1及び第2暗号文s2を受信した旨の通知を受け取る。前記通知を受け取ると、復号処理部102に対して、第1暗号文s1及び第2暗号文s2を復号して再生ポイントを生成することを示す指示を出力する。
(4)復号処理部102
復号処理部102は、図3に示すように、復号制御部111と楕円演算部112とから構成され、楕円演算部112は、べき倍係数入力部121、被演算値入力部122、一次項保持部123、楕円べき倍演算部124、演算結果出力部125、零次項保持部126及び演算結果検証部127から構成されている。
(復号制御部111)
復号制御部111は、制御部104から、第1暗号文s1及び第2暗号文s2を復号して再生ポイントを生成することを示す指示を受け取る。また、通信部103から第1暗号文s1及び第2暗号文s2を受け取る。
前記指示を受け取ると、復号制御部111は、秘密鍵記憶部101から秘密鍵ksを読み出し、次に、受け取った第1暗号文s1を被べき倍点として、被演算値入力部122へ出力し、読み出した秘密鍵ksをべき倍係数として、べき倍係数入力部121へ出力する。次に、演算結果出力部125から、エラー発生の有無を示すエラー発生情報を受け取る。受け取ったエラー発生情報がエラーの発生があったことを示す場合には、以降の復号処理を中止する。受け取ったエラー発生情報がエラーの発生が無かったことを示す場合には、さらに、演算結果ks*s1を受け取り、さらに、再生ポイントPm’=第2暗号文s2 xor (演算結果ks*s1のx座標値)を計算する。
ここで、Pm’
=s2 xor (ks*s1のx座標値)
=(Pm xor (r*kpのx座標値))
xor (ks・r*Bのx座標値)
=Pm xor(r・ks*Bのx座標値) xor (r・ks*Bのx座標値)
=Pm
従って、再生ポイントPm’は、ポイントPmに一致することが分かる。
次に、復号制御部111は、生成した再生ポイントPm’を情報記憶部105へ書き込む。
(べき倍係数入力部121)
べき倍係数入力部121は、復号制御部111からべき倍係数kを受け取り、受け取ったべき倍係数kを楕円べき倍演算部124へ出力する。
(被演算値入力部122)
被演算値入力部122は、復号制御部111から被べき倍点Qを受け取り、受け取った被べき倍点Qを楕円べき倍演算部124へ出力する。
(一次項保持部123)
一次項保持部123は、楕円曲線E(Fp):y2=x3+a×x+bの一次項の係数aを保持している。係数aは、一例として、「−3」である。
(楕円べき倍演算部124)
楕円べき倍演算部124は、べき倍係数入力部121からべき倍係数kを受け取り、被演算値入力部122から被べき倍点Qを受け取り、一次項保持部123から係数aを受け取る。
次に、楕円べき倍演算部124は、(べき倍係数k)*(被べき倍点Q)を演算し、演算結果として、べき倍点=(X、Y)を演算結果検証部127へ出力する。
(零次項保持部126)
零次項保持部126は、楕円曲線E(Fp):y2=x3+a×x+bの零次項の係数bを保持している。
(演算結果検証部127)
演算結果検証部127は、楕円べき倍演算部124から(べき倍係数k)*(被べき倍点Q)の演算結果としてべき倍点=(X、Y)を受け取り、一次項保持部123から係数aを受け取り、零次項保持部126から係数bを受け取る。
次に、受け取ったXを用いて、X3+a×X+bを計算し、受け取ったYを用いて、Y2 を計算し、Y2 =X3+a×X+bであるか否かを判断する。
2 =X3+a×X+bであると判断する場合には、エラーの発生がなかったことを示すエラー発生情報と、受け取ったべき倍点とを演算結果出力部125へ出力する。
2 =X3+a×X+bでないと判断する場合には、エラーの発生を示すエラー発生情報を演算結果出力部125へ出力する。
(演算結果出力部125)
演算結果出力部125は、楕円べき倍演算部124からエラー発生情報を受け取り、受け取ったエラー発生情報を復号制御部111へ出力する。また、演算結果出力部125は、楕円べき倍演算部124からべき倍点を受け取り、受け取ったべき倍点を復号制御部111へ出力する。
1.4 ポイント発行システム10の動作
ポイント発行システム10の動作について、図4に示すフローチャートを用いて説明する。
(1)秘密鍵ks及び公開鍵kpの生成の動作
以下に示す動作は、ポイント発行装置200がポイントを発行する前に行われる。
ICカード100の復号処理部102は、秘密鍵ksを生成し、生成した秘密鍵ksを秘密鍵記憶部101へ書き込む(ステップS101)。次に、復号処理部102は、情報記憶部105からベースポイントBを読み出し、生成した前記秘密鍵ksと読み出したべースポイントBに楕円べき倍演算を施して、公開鍵kp=ks*Bを生成する。この際、楕円べき倍演算は、楕円べき倍演算部124により行われる(ステップS102)。次に、復号処理部102は、生成した公開鍵kpを通信部103を介して、ポイント発行装置200へ送信する(ステップS103)。
ポイント発行装置200の暗号処理部202は、ICカード100から通信部203を介して、公開鍵kpを受信し、受信した公開鍵kpを公開鍵記憶部201へ書き込む(ステップS104)。
なお、ここでは、ICカード100が秘密鍵ksを生成し、生成した秘密鍵ksを基にして公開鍵kpを生成し、生成した公開鍵kpをポイント発行装置200へ送信するとしているが、次に示すようにしてもよい。
つまり、ICカード100が秘密鍵ksを生成し、生成した秘密鍵ksを内部に記憶する。次に、鍵管理装置は、ICカード100から秘密鍵ksを取得し、取得した秘密鍵ksから上述したように、公開鍵kpを生成し、生成した公開鍵kpをポイント発行装置200へ送信するとしてもよい。
(2)ポイントの発行の動作
ポイント発行装置200の制御部204は、ポイントPmを生成し、生成したポイントPmを情報記憶部205に書き込み、次に、暗号処理部202に対して、ポイントPmを暗号化してICカード100へ送信することを示す指示を出力する(ステップS111)。
暗号制御部211は、制御部204から、ポイントPmを暗号化してICカード100へ送信することを示す指示を受け取ると、乱数rを生成し(ステップS112)、ベースポイントBを情報記憶部205から読み出し、生成した乱数rをべき倍係数として、べき倍係数入力部221へ出力し、読み出したベースポイントBを被べき倍点として、被演算値入力部222へ出力し、演算結果出力部225から、演算結果としてべき倍点r*Bを受け取り、第1暗号文s1=べき倍点r*Bとする(ステップS113)。
次に、暗号制御部211は、公開鍵記憶部201から公開鍵kpを読み出し、生成した乱数rをべき倍係数として、べき倍係数入力部221へ出力し、読み出した公開鍵kpを被べき倍点として、被演算値入力部222へ出力し、演算結果出力部225から、演算結果としてべき倍点r*kpを受け取り、暗号制御部211は、情報記憶部205からポイントPmを読み出し、読み出したポイントPmと受け取ったべき倍点r*kpとを加算して、第2暗号文s2=ポイントPm xor (べき倍点r*kpのx座標値)を生成する(ステップS114)。
次に、暗号制御部211は、生成した第1暗号文s1及び第2暗号文s2を通信部203を介して、ICカード100へ送信する(ステップS115)。
復号制御部111は、ポイント発行装置200から通信部103を介して、第1暗号文s1及び第2暗号文s2を受け取る(ステップS115)。
次に、復号制御部111は、秘密鍵記憶部101から秘密鍵ksを読み出し、受け取った第1暗号文s1を被べき倍点として、被演算値入力部122へ出力し、読み出した秘密鍵ksをべき倍係数として、べき倍係数入力部121へ出力する。楕円べき倍演算部124により、ks*s1が演算され、演算結果出力部125から、エラー発生情報と演算結果ks*s1を受け取り、再生ポイントPm’=第2暗号文s2 xor (演算結果ks*s1のx座標値)を計算する(ステップS116)。
受け取ったエラー発生情報がエラーの発生を示す場合には(ステップS117)、処理を終了する。受け取ったエラー発生情報がエラーの未発生を示す場合には(ステップS117)、復号制御部111は、計算して得られた再生ポイントPm’を情報記憶部105へ書き込む(ステップS118)。
(3)楕円べき倍演算の動作
ICカード100の楕円演算部112による楕円べき倍演算の動作について、図5に示すフローチャートを用いて説明する。
べき倍係数入力部121は、復号制御部111からべき倍係数kを受け取り、受け取ったべき倍係数kを楕円べき倍演算部124へ出力し(ステップS121)、被演算値入力部122は、復号制御部111から被べき倍点Qを受け取り、受け取った被べき倍点Qを楕円べき倍演算部124へ出力する(ステップS122)。
次に、楕円べき倍演算部124は、べき倍係数入力部121からべき倍係数kを受け取り、被演算値入力部122から被べき倍点Qを受け取り、一次項保持部123から係数aを受け取り、(べき倍係数k)*(被べき倍点Q)を演算し、演算結果として、べき倍点=(X、Y)を演算結果検証部127へ出力する(ステップS123)。
演算結果検証部127は、一次項保持部123から係数aを受け取り、零次項保持部126から係数bを受け取り(ステップS124)、X3+a×X+bを計算し、Y2 を計算し(ステップS125)、Y2 =X3+a×X+bであるか否かを判断する(ステップS126)。
2 =X3+a×X+bであると判断する場合には(ステップS126)、演算結果検証部127は、エラーの発生がなかったことを示すエラー発生情報と、受け取ったべき倍点とを演算結果出力部125へ出力し、演算結果出力部125は、エラー発生情報とべき倍点とを復号制御部111へ出力する(ステップS127)。
2 =X3+a×X+bでないと判断する場合には(ステップS126)、演算結果検証部127は、エラーの発生を示すエラー発生情報を演算結果出力部125へ出力し、演算結果出力部125は、エラー発生情報を復号制御部111へ出力する(ステップS128)。
2.変形例(1)
ポイント発行システム10の変形例としてのポイント発行システム10a(図示していない)について説明する。
2.1 ポイント発行システム10aの構成
ポイント発行システム10aは、ポイント発行システム10と同様の構成を有している。
ポイント発行システム10aは、ICカード100に代えて、ICカード100a(図示していない)を含み、ICカード100aは、復号処理部102に代えて、復号処理部102a(図示していない)を含み、復号処理部102aは、楕円演算部112に代えて、楕円演算部112aを含む。
楕円演算部112aは、図6に示すように、べき倍係数入力部121、被演算値入力部122、一次項保持部123、楕円べき倍演算部124、演算結果出力部125、零次項保持部126、演算結果検証部127及び零次項入力部128から構成されている。
以下において、ポイント発行システム10に含まれている構成要素との相違点を中心として説明する。
(情報記憶部105)
情報記憶部105は、楕円曲線E(Fp):y2=x3+a×x+bの零次項の係数bを予め記憶している。
(復号制御部111)
復号制御部111は、楕円演算部112aによりべき倍演算を行う際に、情報記憶部105から零次項の係数bを読み出し、読み出した係数bを、楕円演算部112aの零次項入力部128へ出力する。
(零次項保持部126)
零次項保持部126は、楕円曲線E(Fp):y2=x3+a×x+bの零次項の係数bを保持するための領域を備えている。
(零次項入力部128)
零次項入力部128は、復号制御部111から係数bを受け取り、受け取った係数bを零次項保持部126へ書き込む。
2.2 ポイント発行システム10aの動作
ポイント発行システム10aの動作は、楕円べき倍演算の動作を除いて、ポイント発行システム10の動作と同一であるので、ここでは、楕円演算部112aによる楕円べき倍の演算の動作について図7に示すフローチャートを用いて説明する。また、楕円演算部112aによる楕円べき倍の演算の動作は、図5に示す楕円演算部112による楕円べき倍の演算の動作と類似しており、図5に示す動作との相違点を中心として説明する。
ステップS123の次において、零次項入力部128は、復号制御部111から係数bを受け取り(ステップS131)、受け取った係数bを零次項保持部126へ書き込む(ステップS132)。その後、ステップS124へ続く。
3.変形例(2)
ポイント発行システム10の別の変形例としてのポイント発行システム10b(図示していない)について説明する。
3.1 ポイント発行システム10bの構成
ポイント発行システム10bは、ポイント発行システム10と同様の構成を有している。
ポイント発行システム10bは、ICカード100に代えて、ICカード100b(図示していない)を含み、ICカード100bは、復号処理部102に代えて、復号処理部102b(図示していない)を含み、復号処理部102bは、楕円演算部112に代えて、楕円演算部112bを含む。
楕円演算部112bは、図8に示すように、べき倍係数入力部121、被演算値入力部122、一次項保持部123、楕円べき倍演算部124、演算結果出力部125、零次項保持部126、演算結果検証部127及び零次項演算部129から構成されている。
以下において、ポイント発行システム10に含まれている構成要素との相違点を中心として説明する。
(被演算値入力部122)
被演算値入力部122は、受け取った被べき倍点Q=(X、Y)を零次項演算部129へ出力する。
(零次項演算部129)
零次項演算部129は、被演算値入力部122から被べき倍点Q=(X、Y)を受け取り、一次項保持部123から係数aを読み出し、
被べき倍点Q=(X、Y)及び係数aを用いて、次式により、係数bを算出する。
係数b=Y2 −X3 −a×X
次に、算出した係数bを零次項保持部126へ書き込む。
(零次項保持部126)
零次項保持部126は、楕円曲線E(Fp):y2=x3+a×x+bの零次項の係数bを保持するための領域を備えている。
3.2 ポイント発行システム10bの動作
ポイント発行システム10bの動作は、楕円べき倍演算の動作を除いて、ポイント発行システム10の動作と同一であるので、ここでは、楕円演算部112bによる楕円べき倍の演算の動作について図9に示すフローチャートを用いて説明する。また、楕円演算部112bによる楕円べき倍の演算の動作は、図5に示す楕円演算部112による楕円べき倍の演算の動作と類似しており、図5に示す動作との相違点を中心として説明する。
ステップS123の次において、ステップS124に代えて、演算結果検証部127は、一次項保持部123から係数aを受け取る(ステップS124b)。
次に、零次項演算部129は、被演算値入力部122から被べき倍点Q=(X、Y)を受け取り、一次項保持部123から係数aを読み出し、被べき倍点Q=(X、Y)及び係数aを用いて、係数b=Y2 −X3 −a×Xを算出し(ステップS141)、次に、算出した係数bを零次項保持部126へ書き込む(ステップS142)。
次に、演算結果検証部127は、零次項保持部126から係数bを受け取る(ステップS143)。その後、ステップS125へ続く。
4.実施の形態2
本発明に係る別の実施の形態としてのデジタル署名システム(図示していない)について説明する。
デジタル署名システムは、ユーザA装置、ユーザB装置及び管理センタ装置から構成されており(それぞれの装置を図示していない)、ユーザA装置、ユーザB装置及び管理センタ装置は、それぞれ、インターネットを介して接続されている。ユーザA装置、ユーザB装置及び管理センタ装置は、それぞれ、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。
ユーザA装置は、デジタル署名データとともにメッセージをユーザB装置へ送信し、ユーザB装置は、デジタル署名データとともにメッセージを受け取り、受け取ったデジタル署名データにより、署名検証を行う。
ユーザA装置、ユーザB装置及び管理センタ装置は、上記に示す楕円演算部112と同じ楕円演算部を有しており、この楕円演算部により、以下に示す楕円べき倍演算を行う。なお、ユーザA装置、ユーザB装置及び管理センタ装置は、上記に示す楕円演算部112aと同じ楕円演算部を有しているとしてもよいし、上記に示す楕円演算部112bと同じ楕円演算部を有しているとしてもよい。
以下において、デジタル署名システムの動作について図10に示すフローチャートを用いて説明する。
(秘密鍵XA及び公開鍵YAの生成)
ユーザA装置は、秘密鍵XAを生成する(ステップS201)。
管理センタ装置は、ユーザA装置から、秘密鍵XAを安全に取得し、取得した秘密鍵XAを用いて、公開鍵YA=XA*Gを算出する(ステップS202)。
ここで、素数pを法とする剰余体Fp上で定義された楕円曲線E(Fp)を想定し、Eの位数をqとする。また、Gは、楕円曲線E(Fp)上のベースポイントである。
次に、管理センタ装置は、素数p、楕円曲線E(Fp)及びベースポイントGを公開し(ステップS203)、インターネットを介して、公開鍵YAをユーザB装置へ送信する(ステップS204)。
ユーザB装置は、素数p、楕円曲線E(Fp)及びベースポイントGを取得し、公開鍵YAを受信し(ステップS204)、受信した公開鍵YAを内部に記憶する(ステップS205)。
ユーザA装置も、素数p、楕円曲線E(Fp)及びベースポイントGを取得する。
(デジタル署名データの生成と署名検証)
ユーザA装置は、乱数Kを生成し(ステップS211)、
第1署名データR1=(rx,ry)=K*Gを生成し(ステップS212)、
S×K=m+rx×XA (mod q) から第2署名データSを計算する(ステップS213)。ここで、mは、ユーザA装置からユーザB装置へ送信するメッセージである。
次に、ユーザA装置は、得られた署名データ(R1、S)とメッセージmとをユーザB装置へ送信する(ステップS214)。
ユーザB装置は、ユーザA装置から署名データ(R1、S)とメッセージmとを受信する(ステップS214)。
次に、ユーザB装置は、S*R1及びm*G+rx*YAを計算し(ステップS215)、エラーの発生を判断し、エラーが発生している場合には(ステップS216)、処理を終了する。エラーが発生していない場合には(ステップS216)、ユーザB装置は、
S*R1=m*G+rx*YA
が成立するかどうか判定し(ステップS217)、成立する場合には(ステップS217)、検証に成功し、ユーザA装置の身元の確認ができたこととなる。成立しない場合には(ステップS217)、検証に失敗し、ユーザA装置の身元が確認できなかったこととなる。
5.実施の形態3
本発明に係るまた別の実施の形態としての鍵共有システム(図示していない)について説明する。
鍵共有システムは、ユーザA装置、ユーザB装置及び管理センタ装置から構成されており(それぞれの装置を図示していない)、ユーザA装置、ユーザB装置及び管理センタ装置は、それぞれ、インターネットを介して接続されている。ユーザA装置、ユーザB装置及び管理センタ装置は、それぞれ、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。
ユーザA装置とユーザB装置とは、第三者に知られることなく、同一の共有鍵を取得する。
ユーザA装置、ユーザB装置及び管理センタ装置は、上記に示す楕円演算部112と同じ楕円演算部を有しており、この楕円演算部により、以下に示す楕円べき倍演算を行う。なお、ユーザA装置、ユーザB装置及び管理センタ装置は、上記に示す楕円演算部112aと同じ楕円演算部を有しているとしてもよいし、上記に示す楕円演算部112bと同じ楕円演算部を有しているとしてもよい。
以下において、鍵共有システムの動作について図11に示すフローチャートを用いて説明する。
管理センタ装置は、楕円曲線E(Fp)及びベースポイントGを選択し(ステップS311)、素数p、楕円曲線E(Fp)及びベースポイントGを公開する(ステップS312)。ここで、素数pを法とする剰余体Fp上で定義された前記楕円曲線E(Fp)を想定し、Gは、楕円曲線E(Fp)上のベースポイントである。
ユーザA装置は、秘密鍵XAを設定し(ステップS301)、
公開鍵YA=XA*Gを算出し(ステップS302)、公開鍵YAをユーザB装置へ送信する(ステップS303)。
一方、ユーザB装置は、秘密鍵XBを設定し(ステップS321)、
公開鍵YB=XB*Gを算出し(ステップS322)、公開鍵YBをユーザA装置へ送信する(ステップS323)。
ユーザA装置は、共有鍵XA*YB=(XA×XB)*Gを算出する(ステップS304)。
一方、ユーザB装置は、共有鍵XB*YA=(XB×XA)*Gを算出する(ステップS324)。
ここで、共有鍵XB*YA=(XB×XA)*G
=(XA×XB)*G
=共有鍵XA*YB
である。
6.楕円曲線上の楕円べき倍演算
楕円曲線上の楕円べき倍演算について、以下に簡単に説明する。
一例として、100*Pを計算する。
100*P=2(2(P+2(2(2(P+2P)))))と表すと、100*Pは、楕円曲線上の点による6回の2倍算と2回の加算により計算される。
このように、楕円べき倍演算は、2倍算及び加算による演算に帰着する。
ここで、楕円曲線の方程式を y2 = x3 +a×x+b とし、
楕円曲線上の任意の点Pの座標を(x1 ,y1 )とし、任意の点Qの座標を(x2 ,y2 )とする。ここで、R=P+Qで定まる点Rの座標を(x3 ,y3 )とする。
P≠Qの場合、R=P+Qは、加算の演算となる。加算の公式を以下に示す。
3 ={(y2 −y1 )/(x2 −x1 )}2 −x1 −x2
3 ={(y2 −y1 )/(x2 −x1 )}(x1 −x3 )−y1
P=Qの場合、R=P+Q=P+P=2×Pとなり、R=P+Qは、2倍算の演算となる。2倍算の公式を以下に示す。
3 ={(3x1 2 +a)/2y12 −2x1
3 ={(3x1 2 +a)/2y1 }(x1 −x3 )−y1
ここで、上記演算は、楕円曲線が定義される有限体上での演算である。
なお、楕円曲線の演算公式については、"Efficient elliptic curve exponentiation"(Miyaji, Ono, and Cohen著、 Advances in cryptology-proceedings of ICICS'97, Lecture notes in computer science, 1997, Springer-verlag, 282-290.)に詳しく説明されている。
7.まとめ
以上説明したように、本発明は、素数pを法とする剰余体Fp上に定義された楕円曲線E(Fp):y2=x3+a×x+bにおいて、楕円曲線上の任意の点Qとp未満の正の整数kから、べき倍点kQを求める楕円べき倍演算装置であって、点Qの座標(Qx,Qy)と、べき倍係数kを入力する第1入力部と、楕円曲線のパラメータである零次項係数bを入力する第2入力部と、楕円曲線のパラメータである一次項係数aを固定値として保持する楕円係数保持部と、前記第1入力部で入力された各値と、前記楕円係数保持部で保持している一次項係数aから、べき倍点kQを求めるべき倍演算部と、前記第2入力部で入力された零次項係数bと、前記楕円係数保持部で保持している一次項係数aを用いて、前記べき倍演算部によって求められたべき倍点kQの座標が楕円曲線上に存在するか否かを判定する判定部と、前記判定部でべき倍点kQの座標が楕円曲線上に存在すると判定された時のみ、前記べき倍演算部で求められたべき倍点kQを出力する出力部とを備える。
ここで、前記楕円べき倍演算装置は、前記第2入力部の代わりに、点Qの座標、一次項係数aから、零次項係数bを求める零次項係数演算部を備え、前記判定部は、前記第2入力部で入力された零次項係数bの代わりに、零次項係数演算部で求められた零次項係数bを用いるとしてもよい。
また、本発明は、楕円曲線暗号を用いて、平文の暗号化、暗号文の復号化、平文に対する署名文の生成、平文と署名文に対する署名文の検証、及び署名文からの平文回復を行う楕円曲線暗号装置であって、前記各処理に用いる楕円べき倍演算処理に、前記楕円べき倍演算装置を用いる。
以上のように本発明によれば、楕円曲線を固定することなく故障利用攻撃に対抗できる楕円べき倍演算を行うことができる。従って、従来の楕円曲線を固定して故障利用攻撃に対応した楕円べき倍演算装置に比べ、汎用性が高くなり、秘密通信、デジタル署名、鍵共有などの様々な用途に同一の装置を用いることができる。
さらに、べき倍係数kと被べき倍点Qの入力のみで、楕円曲線を固定せず故障利用攻撃に対抗できる楕円べき倍演算を行うことができる。従って、従来の楕円べき倍演算装置と入出力方法を変えることなく、汎用性を保ったまま故障利用攻撃に対抗できるようになる。
8.その他の変形例
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の各実施の形態では、べき倍点の検証に失敗した際には、失敗した旨を知らせるエラーメッセージを出力するとしているが、演算結果を出力しないようにしてもよい。
(2)楕円曲線の一次項の係数は「−3」という値を取ると高速な楕円べき倍演算を行うことができることが知られているため、各実施の形態では一次項の係数として「−3」を固定値として保持するようにしているが、一次項の係数を外部から受け取るように構成してもよい。
(3)実施の形態1のポイント発行システム10におけるポイント発行装置200の暗号処理部202において、ICカード100と同様の楕円演算処理を行うとしてもよい。つまり、楕円演算部212は、楕円演算部112と同様の構成を有しているとしてもよいし、楕円演算部112aと同様の構成を有しているとしてもよいし、また、楕円演算部112bと同様の構成を有しているとしてもよい。
(4)実施の形態1のポイント発行システム10では、利用者が商品を購入したりサービスの提供を受けた場合に、販売者やサービス提供者から受け取る特典情報であり、次に利用者が商品を購入したりサービスの提供を受ける際に、販売者やサービス提供者への対価の支払いの一部又は全部として利用されるポイントを秘密通信の対象とし、ポイント発行装置200は、生成したポイントを暗号化し、暗号化ポイントをICカード100へ送信し、ICカード100は、暗号化ポイントを復号して再生ポイントを生成し、生成した再生ポイントを記憶するようにしている。
しかし、秘密通信の対象は、上記のポイントには限定されない。
次に示すような金銭の決済システムに適用することもできる。
例えば、通貨の代わりに用いることができる電子マネーを秘密通信の対象とし、ICカードは、電子マネーを記憶しており、利用者が、商品を購入する際に、ICカードは、商品の購入額に相当する電子マネーを暗号化して送信し、また、内部に記憶している電子マネーから送信した分を減じる。ポイント発行装置200に代えて同様の構成を有するレジスタ装置は、暗号化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを再生し、記憶する。
また、上記のICカードに代えて、美術館や博物館などの各種施設を利用のためのICカードタイプの電子チケットが、上記のように、電子マネーに相当する情報を記憶しているとしてもよい。各種施設の入り口に設けられた入場管理装置は、各種施設の利用料金に相当する額の電子マネーを要求し、前記電子チケットは、要求された額の電子マネーを暗号化して送信し、入場管理装置は、暗号化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを生成し、記憶するとしてもよい。
また、鉄道、バスなどの交通機関を利用する際に用いられるICカードタイプの乗車券が、上記のように、電子マネーに相当する情報を記憶しているとしてもよい。交通機関の駅の入り口に設けられた入場管理装置は、当該駅を識別する識別情報を送信し、乗車券は、前記識別情報を受信し、記憶する。交通機関の駅の出口に設けられた出場管理装置は、前記識別情報を乗車券から受信し、受信した識別情報と当該出場管理装置が設けられた駅とを用いて、料金表により乗車料金を算出し、算出した乗車料金に相当する額の電子マネーを要求し、乗車券は、要求された額の電子マネーを暗号化して送信し、出場管理装置は、暗号化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを生成し、記憶する。
上記における暗号化及び復号化において、楕円曲線上の離散対数問題が安全性の根拠として用いられ、楕円べき倍演算が行われる。この楕円べき倍演算を行う各装置は、楕円演算部112、112a又は112bと同様の演算部を備えている。
(5)上記のような金銭の決済システムにおいて、送信される金銭の額、送信元、送信先などについては、その正当性の証明が要求される場合がある。このような場合において、実施の形態2に示すデジタル署名や署名検証が適用される。
このようなデジタル署名や署名検証において、楕円曲線上の離散対数問題が安全性の根拠として用いれ、楕円べき倍演算が行われる。この楕円べき倍演算を行う各装置は、楕円演算部112、112a又は112bと同様の演算部を備えている。
(6)秘密通信の対象は、上記のようなポイントや電子マネーなどには限定されない。
本発明は、暗号化装置と再生装置とから構成されるコンテンツ配信システムにおいて適用され、例えば、映画、動画像、音楽、小説、データベースなどのデジタル情報を秘密通信の対象としてもよい。これらのコンテンツは、コンテンツ供給者から利用者に対して、これらのコンテンツを記録している記録媒体を販売したり、レンタルすることにより、提供される。また、デジタル放送やインターネットを介して、コンテンツ供給者から利用者に提供される。
コンテンツ供給者の有する暗号化装置は、デジタル著作物である映画を暗号化してDVDに記録する。利用者の有する再生装置は、DVDから暗号化デジタル著作物を読み出し、復号して、映画を生成し、生成した映画を音声及び映像として再生して、表示及び出力する。
上記における暗号化及び復号化において、楕円曲線上の離散対数問題が安全性の根拠として用いられ、楕円べき倍演算が行われる。この楕円べき倍演算を行う各装置は、楕円演算部112、112a又は112bと同様の演算部を備えている。
(7)上記のコンテンツ配信システムにおいて、デジタル著作物を暗号化する際に用いる暗号化技術として、例えば、DES(Data Encryption Standard)を用いるとしてもよい。DESは、いわゆる共通鍵暗号方式(又は秘密鍵暗号方式)と呼ばれる。
上記のコンテンツ配信システムにおいて、このような共通鍵暗号方式を採用する場合に、コンテンツ配信システムを構成する暗号化装置と再生装置との間で、いかにして安全に同一の秘密鍵を共有するかが課題となる。
実施の形態3に示す鍵共有システムは、この課題を解消するための1つの手段である。
実施の形態3に示す鍵共有システムにより、暗号化装置と再生装置との間で、第三者に知られることなく、秘密鍵を共有し、その後は、共有鍵暗号方式による暗号化アルゴリズムを適用し、暗号化装置において、共有している秘密鍵を用いて、デジタル著作物を暗号化し、また、再生装置において、共有している秘密鍵を用いて、暗号化デジタル著作物を復号する。
上記における鍵共有において、楕円曲線上の離散対数問題が安全性の根拠として用いられ、楕円べき倍演算が行われる。この楕円べき倍演算を行う各装置は、楕円演算部112、112a又は112bと同様の演算部を備えている。
(8)演算結果検証部127は、次に示すように判断するとしてもよい。
演算結果検証部127は、前記べき倍点k*Qが楕円曲線E上に存在するか否かの判定に代えて、被べき倍点Qとべき倍点k*Qとが同一の楕円曲線上に存在するか否を判定するとしてもよい。
具体的には、演算結果検証部127は、被べき倍点Qとして、座標値(Qx 、Qy )を取得し、前記べき倍点k*Qとして、座標値(Qx'、Qy')を取得し、
(Qy2−Qx3−a×Qx)−(Qy'2−Qx'3−a×Qx')=0が成立するか否かを判断する。この式が成立する場合に、被べき倍点Qとべき倍点k*Qとが同一の楕円曲線上に存在すると判定し、この式が成立しない場合に、被べき倍点Qとべき倍点k*Qとが同一の楕円曲線上に存在しないと判定する。
演算結果出力部125は、演算結果検証部127により、被べき倍点Qとべき倍点k*Qとが同一の楕円曲線上に存在すると判定された場合にのみ、前記べき倍点k*Qを出力する。
(9)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(10)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
金銭等の決済を行う産業において、送信者から受信者に送信される金銭の額やその他の情報を、第三者に知られないように、秘密送信する際に、本発明は、使用される。また、その際、金銭の額やその他の情報が正当であることを証明する際に、本発明は、使用される。このような金銭等の決済を行う産業とは、銀行、証券、保険などの金融関係に限らず、商品等の販売などの取引が発生するその他一般の産業において使用される。またこのような決済システムを構成する各装置は、電器機器を製造する産業において、生産され、販売される。
また、本発明に係るコンテンツ配信システムを構成する暗号化装置や再生装置は、電器機器を製造する産業において、生産され、販売され、コンテンツ配信システムは、コンテンツ供給者から利用者に対して、音楽、映画、小説などのデジタル化された著作物を販売したり、レンタルしたりして供給する情報提供産業において、経営的、反復的かつ継続的に使用される。
ポイント発行システム10の構成を示すブロック図である。 暗号処理部202の構成を示すブロック図である。 復号処理部102の構成を示すブロック図である。 ポイント発行システム10の動作を示すフローチャートである。 楕円演算部112によるべき倍演算の動作を示すフローチャートである。 楕円演算部112aの構成を示すブロック図である。 楕円演算部112aによるべき倍演算の動作を示すフローチャートである。 楕円演算部112bの構成を示すブロック図である。 楕円演算部112bによるべき倍演算の動作を示すフローチャートである。 楕円曲線暗号技術を利用するデジタル署名における動作を示すフローチャートである。 楕円曲線暗号技術を利用する鍵共有における動作を示すフローチャートである。
符号の説明
10 ポイント発行システム
10a ポイント発行システム
10b ポイント発行システム
100 ICカード
100a ICカード
100b ICカード
101 秘密鍵記憶部
102 復号処理部
102a 復号処理部
102b 復号処理部
103 通信部
104 制御部
105 情報記憶部
111 復号制御部
112 楕円演算部
112a 楕円演算部
112b 楕円演算部
121 べき倍係数入力部
122 被演算値入力部
123 一次項保持部
124 楕円べき倍演算部
125 演算結果出力部
126 零次項保持部
127 演算結果検証部
128 零次項入力部
129 零次項演算部
200 ポイント発行装置
201 公開鍵記憶部
202 暗号処理部
203 通信部
204 制御部
205 情報記憶部
206 入力部
207 表示部
211 暗号制御部
212 楕円演算部
221 べき倍係数入力部
222 被演算値入力部
223 一次項保持部
224 楕円べき倍演算部
225 演算結果出力部

Claims (6)

  1. 素数pを法とする剰余体F上で定義された楕円曲線E:y2 =x3 +a×x+bにおいて楕円べき倍演算を行う楕円べき倍演算装置であって、
    楕円曲線E上の点Q及び素数p未満の正整数であるべき倍係数kを取得する情報取得手段と、
    楕円曲線Eの一次項の係数aを記憶している第1記憶手段と、
    前記第1記憶手段に記憶されている前記係数aを用いて、前記べき倍係数k及び前記点Qに楕円べき倍演算を施して、べき倍点k*Qを算出するべき倍演算手段と、
    前記点Qと、算出された前記べき倍点k*Qとが、同一の楕円曲線上に存在するか否かを判定する判定手段と、
    前記判定手段により、前記点Qと、前記べき倍点k*Qとが、同一の楕円曲線上に存在すると判定された場合に、算出された前記べき倍点k*Qを出力する出力手段と
    を備え
    前記情報取得手段は、点Qとして座標値(Qx 、Qy )を取得し、
    前記べき倍演算手段は、前記べき倍点k*Qとして座標値(Qx'、Qy')を算出し、
    前記判定手段は、(Qy 2 −Qx 3 −a×Qx)−(Qy' 2 −Qx' 3 −a×Qx')=0が成立するか否かを判断することにより、点Qとべき倍点k*Qとが同一の楕円曲線上に存在するか否を判定する
    ことを特徴とする楕円べき倍演算装置。
  2. 素数pを法とする剰余体F上で定義された楕円曲線E:y2 =x3 +a×x+b上の離散対数問題を解くことが計算量の上で困難であることを根拠として、楕円べき演算k*Qを演算することにより所定の情報を安全かつ確実に扱う情報セキュリティ装置であって、
    楕円曲線E上の点Q及び素数p未満の正整数であるべき倍係数kを取得する情報取得手段と、
    楕円曲線Eの一次項の係数aを記憶している第1記憶手段と、
    前記第1記憶手段に記憶されている前記係数aを用いて、前記べき倍係数k及び前記点Qに楕円べき倍演算を施して、べき倍点k*Qを算出するべき倍演算手段と、
    前記点Qと、算出された前記べき倍点k*Qとが、同一の楕円曲線上に存在するか否かを判定する判定手段と、
    前記判定手段により、前記点Qと、前記べき倍点k*Qとが、同一の楕円曲線上に存在すると判定された場合に、算出された前記べき倍点k*Qを出力する出力手段と
    を備え、
    前記情報取得手段は、点Qとして座標値(Qx 、Qy )を取得し、
    前記べき倍演算手段は、前記べき倍点k*Qとして座標値(Qx'、Qy')を算出し、
    前記判定手段は、(Qy 2 −Qx 3 −a×Qx)−(Qy' 2 −Qx' 3 −a×Qx')=0が成立するか否かを判断することにより、点Qとべき倍点k*Qとが同一の楕円曲線上に存在するか否を判定する
    ことを特徴とする情報セキュリティ装置。
  3. 前記情報セキュリティ装置は、楕円べき演算k*Qを演算することにより、平文の暗号化処理、暗号文の復号化処理、平文に対する署名文の生成処理、平文と署名文に対する署名文の検証処理又は第三者に知られることなく二者間で秘密鍵を共有する鍵共有処理を行う
    ことを特徴とする請求項2に記載の情報セキュリティ装置。
  4. 素数pを法とする剰余体F上で定義された楕円曲線E:y2 =x3 +a×x+bにおいて楕円べき倍演算を行い、情報取得手段、楕円曲線Eの一次項の係数aを記憶している第1記憶手段、べき倍演算手段、判定手段及び出力手段を備える楕円べき倍演算装置で用いられる楕円べき倍演算方法であって、
    前記情報取得手段により、楕円曲線E上の点Q及び素数p未満の正整数であるべき倍係数kを取得する情報取得ステップと、
    前記べき倍演算手段により、前記第1記憶手段に記憶されている前記係数aを用いて、前記べき倍係数k及び前記点Qに楕円べき倍演算を施して、べき倍点k*Qを算出するべき倍演算ステップと、
    前記判定手段により、前記点Qと、算出された前記べき倍点k*Qとが、同一の楕円曲線上に存在するか否かを判定する判定ステップと、
    前記出力手段により、前記判定ステップにおいて前記点Qと、前記べき倍点k*Qとが、同一の楕円曲線上に存在すると判定された場合に、算出された前記べき倍点k*Qを出力する出力ステップと
    を含み、
    前記情報取得ステップは、点Qとして座標値(Qx 、Qy )を取得し、
    前記べき倍演算ステップは、前記べき倍点k*Qとして座標値(Qx'、Qy')を算出し、
    前記判定ステップは、(Qy 2 −Qx 3 −a×Qx)−(Qy' 2 −Qx' 3 −a×Qx')=0が成立するか否かを判断することにより、点Qとべき倍点k*Qとが同一の楕円曲線上に存在するか否を判定する
    ことを特徴とする楕円べき倍演算方法。
  5. 素数pを法とする剰余体F上で定義された楕円曲線E:y2 =x3 +a×x+bにおいて楕円べき倍演算を行い、情報取得手段、楕円曲線Eの一次項の係数aを記憶している第1記憶手段、べき倍演算手段、判定手段及び出力手段を備える楕円べき倍演算装置で用いられる楕円べき倍演算用のコンピュータプログラムであって、
    前記情報取得手段により、楕円曲線E上の点Q及び素数p未満の正整数であるべき倍係数kを取得する情報取得ステップと、
    前記べき倍演算手段により、前記第1記憶手段に記憶されている前記係数aを用いて、前記べき倍係数k及び前記点Qに楕円べき倍演算を施して、べき倍点k*Qを算出するべき倍演算ステップと、
    前記判定手段により、前記点Qと、算出された前記べき倍点k*Qとが、同一の楕円曲線上に存在するか否かを判定する判定ステップと、
    前記出力手段により、前記判定ステップにおいて前記点Qと、前記べき倍点k*Qとが、同一の楕円曲線上に存在すると判定された場合に、算出された前記べき倍点k*Qを出力する出力ステップと
    を含み、
    前記情報取得ステップは、点Qとして座標値(Qx 、Qy )を取得し、
    前記べき倍演算ステップは、前記べき倍点k*Qとして座標値(Qx'、Qy')を算出し、
    前記判定ステップは、(Qy 2 −Qx 3 −a×Qx)−(Qy' 2 −Qx' 3 −a×Qx')=0が成立するか否かを判断することにより、点Qとべき倍点k*Qとが同一の楕円曲線上に存在するか否を判定する
    ことを特徴とする楕円べき倍演算用のコンピュータプログラム。
  6. 前記コンピュータプログラムは、
    コンピュータ読み取り可能な記録媒体に記録されている
    ことを特徴とする請求項5に記載の楕円べき倍演算用のコンピュータプログラム。
JP2004015573A 2003-01-28 2004-01-23 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置 Expired - Fee Related JP4634046B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004015573A JP4634046B2 (ja) 2003-01-28 2004-01-23 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003018760 2003-01-28
JP2004015573A JP4634046B2 (ja) 2003-01-28 2004-01-23 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置

Publications (2)

Publication Number Publication Date
JP2004252433A JP2004252433A (ja) 2004-09-09
JP4634046B2 true JP4634046B2 (ja) 2011-02-16

Family

ID=33032123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004015573A Expired - Fee Related JP4634046B2 (ja) 2003-01-28 2004-01-23 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置

Country Status (1)

Country Link
JP (1) JP4634046B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100874909B1 (ko) 2006-01-14 2008-12-19 삼성전자주식회사 Dfa에 대항하는 몽고메리 전력 래더 알고리즘을 사용하는 암호화 방법
JP5272710B2 (ja) * 2008-12-22 2013-08-28 富士通株式会社 楕円曲線演算装置、方法及びプログラム
JP5326715B2 (ja) * 2009-03-24 2013-10-30 富士通株式会社 楕円曲線暗号を用いた認証処理に対する故障利用攻撃を検知する認証用媒体

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284690A (ja) * 1999-01-25 2000-10-13 Matsushita Electric Ind Co Ltd 楕円曲線演算装置、楕円曲線位数計算装置、楕円曲線構成装置、楕円曲線応用装置、楕円曲線演算方法、楕円曲線位数計算方法、楕円曲線構成方法、楕円曲線演算プログラムを記録している記録媒体、楕円曲線位数計算プログラムを記録している記録媒体及び楕円曲線構成プログラムを記録している記録媒体
WO2001018772A1 (fr) * 1999-09-08 2001-03-15 Hitachi, Ltd. Procede et dispositif d'elaboration de courbes elliptiques, systeme elliptique de cryptage et support d'enregistrement
JP2001075476A (ja) * 1999-09-02 2001-03-23 Hitachi Ltd 楕円曲線生成方法及び楕円曲線生成装置
JP2001209316A (ja) * 2000-01-25 2001-08-03 Toshiba Corp 楕円曲線演算装置及び記憶媒体
JP2002504720A (ja) * 1998-02-18 2002-02-12 インフィネオン テクノロジース アクチエンゲゼルシャフト 楕円曲線を用いてコンピュータで暗号処理をするための方法及び装置
JP2002358012A (ja) * 2001-03-28 2002-12-13 Matsushita Electric Ind Co Ltd 情報セキュリティ装置、べき乗演算装置、べき乗剰余演算装置及び楕円べき倍演算装置
JP2003255831A (ja) * 2002-02-28 2003-09-10 Hitachi Ltd 楕円曲線スカラー倍計算方法及び装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06282226A (ja) * 1993-03-29 1994-10-07 Nippon Telegr & Teleph Corp <Ntt> 楕円曲線に基づく公開鍵暗号方式
JPH0713484A (ja) * 1993-06-23 1995-01-17 Nippon Telegr & Teleph Corp <Ntt> 楕円曲線に基づく鍵生成装置、暗号化装置及び復号化装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002504720A (ja) * 1998-02-18 2002-02-12 インフィネオン テクノロジース アクチエンゲゼルシャフト 楕円曲線を用いてコンピュータで暗号処理をするための方法及び装置
JP2000284690A (ja) * 1999-01-25 2000-10-13 Matsushita Electric Ind Co Ltd 楕円曲線演算装置、楕円曲線位数計算装置、楕円曲線構成装置、楕円曲線応用装置、楕円曲線演算方法、楕円曲線位数計算方法、楕円曲線構成方法、楕円曲線演算プログラムを記録している記録媒体、楕円曲線位数計算プログラムを記録している記録媒体及び楕円曲線構成プログラムを記録している記録媒体
JP2001075476A (ja) * 1999-09-02 2001-03-23 Hitachi Ltd 楕円曲線生成方法及び楕円曲線生成装置
WO2001018772A1 (fr) * 1999-09-08 2001-03-15 Hitachi, Ltd. Procede et dispositif d'elaboration de courbes elliptiques, systeme elliptique de cryptage et support d'enregistrement
JP2001209316A (ja) * 2000-01-25 2001-08-03 Toshiba Corp 楕円曲線演算装置及び記憶媒体
JP2002358012A (ja) * 2001-03-28 2002-12-13 Matsushita Electric Ind Co Ltd 情報セキュリティ装置、べき乗演算装置、べき乗剰余演算装置及び楕円べき倍演算装置
JP2003255831A (ja) * 2002-02-28 2003-09-10 Hitachi Ltd 楕円曲線スカラー倍計算方法及び装置

Also Published As

Publication number Publication date
JP2004252433A (ja) 2004-09-09

Similar Documents

Publication Publication Date Title
US11394697B2 (en) Efficient methods for authenticated communication
US7940927B2 (en) Information security device and elliptic curve operating device
US8185476B2 (en) Digital rights management system protecting consumer privacy
US20100153273A1 (en) Systems for performing transactions at a point-of-sale terminal using mutating identifiers
JP2004503969A (ja) 認証媒体の暗号化鍵及びコンピュータハードウェアの固有情報に基づく可変的な暗号化鍵システムを利用する認証方法、並びに、その認証方法を格納し、その有効期間及び権限を示すための認証媒体
US20040165728A1 (en) Limiting service provision to group members
US20050157872A1 (en) RSA public key generation apparatus, RSA decryption apparatus, and RSA signature apparatus
US7388957B2 (en) Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus
CN115242553B (zh) 一种支持安全多方计算的数据交换方法及系统
US20040153652A1 (en) Method, apparatus, system, and program for creating ring signature
CN112800479B (zh) 利用可信第三方的多方联合数据处理方法及装置
KR100817048B1 (ko) 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
JP4634046B2 (ja) 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置
WO2022089518A1 (zh) 地址的生成方法、区块链信息的处理方法以及相关设备
JP3784055B2 (ja) リストマッチング方法、ネットワークシステム、そのサーバ及び情報端末
Pang et al. A secure agent-mediated payment protocol
JP2005165290A (ja) Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置
US20230124498A1 (en) Systems And Methods For Whitebox Device Binding
CN112989386B (zh) 一种基于不经意传输的黑名单共享方法及系统
US20240111842A1 (en) License authentication method and apparatus, electronic device, system, and storage medium
JP2004221800A (ja) 暗号処理システムにおける不正エンティティ追跡方法、暗号処理システム、および不正エンティティ追跡処理装置、並びにコンピュータ・プログラム
JP3617259B2 (ja) 利用資格検証装置
CEBECİ ISTANBUL TECHNICAL UNIVERSITY★ GRADUATE SCHOOL
JPH10222567A (ja) 情報アクセス制御装置および方法
JP2003006363A (ja) 認証システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100608

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4634046

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131126

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees