JP4634046B2 - 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置 - Google Patents
故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置 Download PDFInfo
- 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
Links
Images
Description
公開鍵暗号方式では、自分のみが保持する秘密鍵と、前記秘密鍵に対応し公開される公開鍵とのペアが生成され、前記公開鍵を用いて暗号化が行われ、前記秘密鍵を用いて復号が行われる。
公開鍵暗号方式では、処理演算量が多いという欠点はあるものの、秘密鍵を複数の利用者により共有する必要がないので、高セキュリティを必要とする場合によく用いられる。一般に良く知られている公開鍵暗号方式として、RSA暗号と楕円曲線暗号が存在する。
Y=x*G
となる整数xが存在するならば、xを求めよ、という問題である。
離散対数問題を公開鍵暗号の安全性の根拠とするのは、多くの元を有する有限体GF(p)に対して、上記問題を解くことは極めて難しいからである。
以上のような技術を用いることにより、第三者に知られないように、秘密情報を相手に送信することができるものの、特許文献2によると、ICカードなどから外部に出力される様々な情報を解析することにより、不正に秘密情報を得る方法が知られるようになってきている。その一つに故障利用攻撃(DFA攻撃ともいう)が存在する。
このような故障利用攻撃に対抗するために、特許文献1によると、コプロセッサを搭載し、RSA公開鍵暗号方式のデジタル署名の作成を行う冪乗剰余計算を公開鍵nの素因数を用いて中国人剰余定理により高速で処理するようにした故障利用攻撃対応ICカードが開示されている。このICカードは、中国人剰余定理による計算過程において生成されるデータとともに、該データについてのエラー検出符号を同時に計算して記憶しておき、デジタル署名の作成時に、前記データのエラー検出符号を再度計算し、記憶しておいたエラー検出符号と照合する。
本発明は、上記の問題点を解決するために、楕円曲線演算技術を利用する場合に、故障利用攻撃に対抗することができる楕円べき倍演算装置、楕円べき倍演算方法、楕円べき倍演算用のコンピュータプログラム、及び情報セキュリティ装置を提供することを目的とする。
ここで、前記楕円べき倍演算装置は、さらに、楕円曲線Eの零次項の係数bを記憶している第2記憶手段を含み、前記判定手段は、前記第1記憶手段に記憶されている前記係数a及び前記第2記憶手段に記憶されている前記係数bを用いて、算出された前記べき倍点k*Qが楕円曲線E上に存在するか否かを判定する。
ここで、前記楕円べき倍演算装置は、さらに、楕円曲線Eの零次項の係数bを取得し、取得した係数bを前記第2記憶手段に書き込む零次係数取得手段を含む。
ここで、前記楕円べき倍演算装置は、さらに、楕円曲線Eの一次項の係数aを取得し、取得した係数aを前記第1記憶手段に書き込む一次係数取得手段を含む。
ここで、前記楕円べき倍演算装置は、さらに、前記第1記憶手段に記憶されている前記係数a、取得された点Q及び楕円曲線E:y2 =x3 +a×x+bを用いて、前記係数bを算出し、算出した前記係数bを前記第2記憶手段に書き込む零次係数演算手段を含む。
ここで、前記べき倍演算手段は、前記べき倍点k*Qとして、座標値(Qx、Qy)を算出し、前記判定手段は、(Qy)2 を算出し、(Qx)3 +a×Qx+bを算出し、算出した(Qy)2 と算出した(Qx)3 +a×Qx+bとを比較し、一致する場合に、前記べき倍点k*Qが楕円曲線E上に存在すると判定する。
ここで、前記楕円べき倍演算装置は、さらに、前記判定手段により前記べき倍点k*Qが楕円曲線E上に存在すると判定されない場合に、エラーを示す旨のメッセージを出力するエラー出力手段を含む。
ここで、前記判定手段は、前記べき倍点k*Qが楕円曲線E上に存在するか否かの判定に代えて、点Qとべき倍点k*Qとが同一の楕円曲線上に存在するか否を判定し、前記出力手段は、前記べき倍点k*Qが楕円曲線E上に存在すると判定された場合に代えて、点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とが同一の楕円曲線上に存在するか否を判定する。
また、本発明は、素数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の出力を抑制する抑制手段とを備える。
本発明に係る1の実施の形態としてのポイント発行システム10について説明する。
1.1 ポイント発行システム10の構成
ポイント発行システム10は、図1に示すように、ICカード100及びポイント発行装置200から構成されている。
1.2 ポイント発行装置200の構成
ポイント発行装置200は、図1に示すように、公開鍵記憶部201、暗号処理部202、通信部203、制御部204、情報記憶部205、入力部206及び表示部207から構成されている。
ポイント発行装置200は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレィユニット、キーボードなどから構成されるコンピュータシステムである。前記RAM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、ポイント発行装置200は、その機能を達成する。
情報記憶部205は、素数pを法とする剰余体Fp上で定義された楕円曲線E(Fp)上のベースポイントB、素数及び楕円曲線E(Fp)を記憶している。また、生成されたポイントPmを記憶するための領域を備えている。
公開鍵記憶部201は、後述する秘密鍵ksに対応して生成された公開鍵kpを記憶している。ここで、公開鍵kpは、ICカード100又は鍵管理装置により、以下に示す式により算出されたものである。
(2)制御部204
制御部204は、前記特典情報としてのポイントPmを生成し、生成したポイントPmを情報記憶部205に書き込む。次に、暗号処理部202に対して、ポイントPmを暗号化してICカード100へ送信することを示す指示を出力する。
暗号処理部202は、図2に示すように、暗号制御部211と楕円演算部212とから構成され、楕円演算部212は、べき倍係数入力部221、被演算値入力部222、一次項保持部223、楕円べき倍演算部224及び演算結果出力部225から構成されている。
暗号制御部211は、制御部204から、ポイントPmを暗号化してICカード100へ送信することを示す指示を受け取る。
前記指示を受け取ると、暗号制御部211は、乱数rを生成し、ベースポイントBを情報記憶部205から読み出し、次に、生成した乱数rをべき倍係数として、べき倍係数入力部221へ出力し、読み出したベースポイントBを被べき倍点として、被演算値入力部222へ出力する。次に、演算結果出力部225から、演算結果としてべき倍点r*Bを受け取り、第1暗号文s1=べき倍点r*Bとする。
次に、暗号制御部211は、情報記憶部205からポイントPmを読み出し、読み出したポイントPmと受け取ったべき倍点r*kpのx座標値とに排他的論理和を施して、第2暗号文s2=ポイントPm xor (べき倍点r*kpのx座標値)を生成する。ここで、「xor」は、排他的論理和を示す演算子である。
(べき倍係数入力部221)
べき倍係数入力部221は、暗号制御部211からべき倍係数を受け取り、受け取ったべき倍係数を楕円べき倍演算部224へ出力する。
被演算値入力部222は、暗号制御部211から被べき倍点を受け取り、受け取った被べき倍点を楕円べき倍演算部224へ出力する。
(一次項保持部223)
一次項保持部223は、楕円曲線E(Fp):y2=x3+a×x+bの一次項の係数aを保持している。係数aは、一例として、「−3」である。
楕円べき倍演算部224は、べき倍係数入力部221からべき倍係数を受け取り、被演算値入力部222から被べき倍点を受け取り、一次項保持部223から係数aを受け取る。
次に、楕円べき倍演算部224は、(べき倍係数)*(被べき倍点)を演算し、演算結果として、べき倍点を演算結果出力部225へ出力する。
(演算結果出力部225)
演算結果出力部225は、楕円べき倍演算部224からべき倍点を受け取り、受け取ったべき倍点を暗号制御部211へ出力する。
(4)通信部203、入力部206及び表示部207
通信部203は、暗号処理部202又は制御部204の制御の基に、ICカード100との間で、情報の送受信を行う。
表示部207は、制御部204の制御により、各種情報を表示する。
1.3 ICカード100の構成
ICカード100は、図1に示すように、秘密鍵記憶部101、復号処理部102、通信部103、制御部104及び情報記憶部105から構成されている。
(1)情報記憶部105及び秘密鍵記憶部101
情報記憶部105は、素数p、楕円曲線E(Fp)及びベースポイントBを記憶している。また、生成された再生ポイントPm’を記憶するための領域を備えている。
(2)通信部103
通信部103は、ポイント発行装置200から第1暗号文s1及び第2暗号文s2を受信する。第1暗号文s1及び第2暗号文s2を受信すると、制御部104に対して、受信した旨を制御部104に対して通知する。また、受信した第1暗号文s1及び第2暗号文s2を復号処理部102へ出力する。
制御部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は、制御部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座標値)を計算する。
=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に一致することが分かる。
(べき倍係数入力部121)
べき倍係数入力部121は、復号制御部111からべき倍係数kを受け取り、受け取ったべき倍係数kを楕円べき倍演算部124へ出力する。
被演算値入力部122は、復号制御部111から被べき倍点Qを受け取り、受け取った被べき倍点Qを楕円べき倍演算部124へ出力する。
(一次項保持部123)
一次項保持部123は、楕円曲線E(Fp):y2=x3+a×x+bの一次項の係数aを保持している。係数aは、一例として、「−3」である。
楕円べき倍演算部124は、べき倍係数入力部121からべき倍係数kを受け取り、被演算値入力部122から被べき倍点Qを受け取り、一次項保持部123から係数aを受け取る。
次に、楕円べき倍演算部124は、(べき倍係数k)*(被べき倍点Q)を演算し、演算結果として、べき倍点=(X、Y)を演算結果検証部127へ出力する。
零次項保持部126は、楕円曲線E(Fp):y2=x3+a×x+bの零次項の係数bを保持している。
(演算結果検証部127)
演算結果検証部127は、楕円べき倍演算部124から(べき倍係数k)*(被べき倍点Q)の演算結果としてべき倍点=(X、Y)を受け取り、一次項保持部123から係数aを受け取り、零次項保持部126から係数bを受け取る。
Y2 =X3+a×X+bであると判断する場合には、エラーの発生がなかったことを示すエラー発生情報と、受け取ったべき倍点とを演算結果出力部125へ出力する。
Y2 =X3+a×X+bでないと判断する場合には、エラーの発生を示すエラー発生情報を演算結果出力部125へ出力する。
演算結果出力部125は、楕円べき倍演算部124からエラー発生情報を受け取り、受け取ったエラー発生情報を復号制御部111へ出力する。また、演算結果出力部125は、楕円べき倍演算部124からべき倍点を受け取り、受け取ったべき倍点を復号制御部111へ出力する。
ポイント発行システム10の動作について、図4に示すフローチャートを用いて説明する。
(1)秘密鍵ks及び公開鍵kpの生成の動作
以下に示す動作は、ポイント発行装置200がポイントを発行する前に行われる。
なお、ここでは、ICカード100が秘密鍵ksを生成し、生成した秘密鍵ksを基にして公開鍵kpを生成し、生成した公開鍵kpをポイント発行装置200へ送信するとしているが、次に示すようにしてもよい。
(2)ポイントの発行の動作
ポイント発行装置200の制御部204は、ポイントPmを生成し、生成したポイントPmを情報記憶部205に書き込み、次に、暗号処理部202に対して、ポイントPmを暗号化してICカード100へ送信することを示す指示を出力する(ステップS111)。
復号制御部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)。
(3)楕円べき倍演算の動作
ICカード100の楕円演算部112による楕円べき倍演算の動作について、図5に示すフローチャートを用いて説明する。
次に、楕円べき倍演算部124は、べき倍係数入力部121からべき倍係数kを受け取り、被演算値入力部122から被べき倍点Qを受け取り、一次項保持部123から係数aを受け取り、(べき倍係数k)*(被べき倍点Q)を演算し、演算結果として、べき倍点=(X、Y)を演算結果検証部127へ出力する(ステップS123)。
Y2 =X3+a×X+bであると判断する場合には(ステップS126)、演算結果検証部127は、エラーの発生がなかったことを示すエラー発生情報と、受け取ったべき倍点とを演算結果出力部125へ出力し、演算結果出力部125は、エラー発生情報とべき倍点とを復号制御部111へ出力する(ステップS127)。
2.変形例(1)
ポイント発行システム10の変形例としてのポイント発行システム10a(図示していない)について説明する。
ポイント発行システム10aは、ポイント発行システム10と同様の構成を有している。
ポイント発行システム10aは、ICカード100に代えて、ICカード100a(図示していない)を含み、ICカード100aは、復号処理部102に代えて、復号処理部102a(図示していない)を含み、復号処理部102aは、楕円演算部112に代えて、楕円演算部112aを含む。
以下において、ポイント発行システム10に含まれている構成要素との相違点を中心として説明する。
情報記憶部105は、楕円曲線E(Fp):y2=x3+a×x+bの零次項の係数bを予め記憶している。
(復号制御部111)
復号制御部111は、楕円演算部112aによりべき倍演算を行う際に、情報記憶部105から零次項の係数bを読み出し、読み出した係数bを、楕円演算部112aの零次項入力部128へ出力する。
零次項保持部126は、楕円曲線E(Fp):y2=x3+a×x+bの零次項の係数bを保持するための領域を備えている。
(零次項入力部128)
零次項入力部128は、復号制御部111から係数bを受け取り、受け取った係数bを零次項保持部126へ書き込む。
ポイント発行システム10aの動作は、楕円べき倍演算の動作を除いて、ポイント発行システム10の動作と同一であるので、ここでは、楕円演算部112aによる楕円べき倍の演算の動作について図7に示すフローチャートを用いて説明する。また、楕円演算部112aによる楕円べき倍の演算の動作は、図5に示す楕円演算部112による楕円べき倍の演算の動作と類似しており、図5に示す動作との相違点を中心として説明する。
3.変形例(2)
ポイント発行システム10の別の変形例としてのポイント発行システム10b(図示していない)について説明する。
ポイント発行システム10bは、ポイント発行システム10と同様の構成を有している。
ポイント発行システム10bは、ICカード100に代えて、ICカード100b(図示していない)を含み、ICカード100bは、復号処理部102に代えて、復号処理部102b(図示していない)を含み、復号処理部102bは、楕円演算部112に代えて、楕円演算部112bを含む。
以下において、ポイント発行システム10に含まれている構成要素との相違点を中心として説明する。
被演算値入力部122は、受け取った被べき倍点Q=(X、Y)を零次項演算部129へ出力する。
(零次項演算部129)
零次項演算部129は、被演算値入力部122から被べき倍点Q=(X、Y)を受け取り、一次項保持部123から係数aを読み出し、
被べき倍点Q=(X、Y)及び係数aを用いて、次式により、係数bを算出する。
次に、算出した係数bを零次項保持部126へ書き込む。
(零次項保持部126)
零次項保持部126は、楕円曲線E(Fp):y2=x3+a×x+bの零次項の係数bを保持するための領域を備えている。
ポイント発行システム10bの動作は、楕円べき倍演算の動作を除いて、ポイント発行システム10の動作と同一であるので、ここでは、楕円演算部112bによる楕円べき倍の演算の動作について図9に示すフローチャートを用いて説明する。また、楕円演算部112bによる楕円べき倍の演算の動作は、図5に示す楕円演算部112による楕円べき倍の演算の動作と類似しており、図5に示す動作との相違点を中心として説明する。
次に、零次項演算部129は、被演算値入力部122から被べき倍点Q=(X、Y)を受け取り、一次項保持部123から係数aを読み出し、被べき倍点Q=(X、Y)及び係数aを用いて、係数b=Y2 −X3 −a×Xを算出し(ステップS141)、次に、算出した係数bを零次項保持部126へ書き込む(ステップS142)。
4.実施の形態2
本発明に係る別の実施の形態としてのデジタル署名システム(図示していない)について説明する。
ユーザA装置、ユーザB装置及び管理センタ装置は、上記に示す楕円演算部112と同じ楕円演算部を有しており、この楕円演算部により、以下に示す楕円べき倍演算を行う。なお、ユーザA装置、ユーザB装置及び管理センタ装置は、上記に示す楕円演算部112aと同じ楕円演算部を有しているとしてもよいし、上記に示す楕円演算部112bと同じ楕円演算部を有しているとしてもよい。
(秘密鍵XA及び公開鍵YAの生成)
ユーザA装置は、秘密鍵XAを生成する(ステップS201)。
管理センタ装置は、ユーザA装置から、秘密鍵XAを安全に取得し、取得した秘密鍵XAを用いて、公開鍵YA=XA*Gを算出する(ステップS202)。
次に、管理センタ装置は、素数p、楕円曲線E(Fp)及びベースポイントGを公開し(ステップS203)、インターネットを介して、公開鍵YAをユーザB装置へ送信する(ステップS204)。
ユーザ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装置へ送信するメッセージである。
ユーザ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装置の身元が確認できなかったこととなる。
本発明に係るまた別の実施の形態としての鍵共有システム(図示していない)について説明する。
鍵共有システムは、ユーザA装置、ユーザB装置及び管理センタ装置から構成されており(それぞれの装置を図示していない)、ユーザA装置、ユーザB装置及び管理センタ装置は、それぞれ、インターネットを介して接続されている。ユーザA装置、ユーザB装置及び管理センタ装置は、それぞれ、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。
ユーザA装置、ユーザB装置及び管理センタ装置は、上記に示す楕円演算部112と同じ楕円演算部を有しており、この楕円演算部により、以下に示す楕円べき倍演算を行う。なお、ユーザA装置、ユーザB装置及び管理センタ装置は、上記に示す楕円演算部112aと同じ楕円演算部を有しているとしてもよいし、上記に示す楕円演算部112bと同じ楕円演算部を有しているとしてもよい。
管理センタ装置は、楕円曲線E(Fp)及びベースポイントGを選択し(ステップS311)、素数p、楕円曲線E(Fp)及びベースポイントGを公開する(ステップS312)。ここで、素数pを法とする剰余体Fp上で定義された前記楕円曲線E(Fp)を想定し、Gは、楕円曲線E(Fp)上のベースポイントである。
公開鍵YA=XA*Gを算出し(ステップS302)、公開鍵YAをユーザB装置へ送信する(ステップS303)。
一方、ユーザB装置は、秘密鍵XBを設定し(ステップS321)、
公開鍵YB=XB*Gを算出し(ステップS322)、公開鍵YBをユーザA装置へ送信する(ステップS323)。
一方、ユーザB装置は、共有鍵XB*YA=(XB×XA)*Gを算出する(ステップS324)。
ここで、共有鍵XB*YA=(XB×XA)*G
=(XA×XB)*G
=共有鍵XA*YB
である。
楕円曲線上の楕円べき倍演算について、以下に簡単に説明する。
一例として、100*Pを計算する。
100*P=2(2(P+2(2(2(P+2P)))))と表すと、100*Pは、楕円曲線上の点による6回の2倍算と2回の加算により計算される。
ここで、楕円曲線の方程式を y2 = x3 +a×x+b とし、
楕円曲線上の任意の点Pの座標を(x1 ,y1 )とし、任意の点Qの座標を(x2 ,y2 )とする。ここで、R=P+Qで定まる点Rの座標を(x3 ,y3 )とする。
P≠Qの場合、R=P+Qは、加算の演算となる。加算の公式を以下に示す。
y3 ={(y2 −y1 )/(x2 −x1 )}(x1 −x3 )−y1
P=Qの場合、R=P+Q=P+P=2×Pとなり、R=P+Qは、2倍算の演算となる。2倍算の公式を以下に示す。
x3 ={(3x1 2 +a)/2y1 }2 −2x1
y3 ={(3x1 2 +a)/2y1 }(x1 −x3 )−y1
ここで、上記演算は、楕円曲線が定義される有限体上での演算である。
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を出力する出力部とを備える。
また、本発明は、楕円曲線暗号を用いて、平文の暗号化、暗号文の復号化、平文に対する署名文の生成、平文と署名文に対する署名文の検証、及び署名文からの平文回復を行う楕円曲線暗号装置であって、前記各処理に用いる楕円べき倍演算処理に、前記楕円べき倍演算装置を用いる。
さらに、べき倍係数kと被べき倍点Qの入力のみで、楕円曲線を固定せず故障利用攻撃に対抗できる楕円べき倍演算を行うことができる。従って、従来の楕円べき倍演算装置と入出力方法を変えることなく、汎用性を保ったまま故障利用攻撃に対抗できるようになる。
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の各実施の形態では、べき倍点の検証に失敗した際には、失敗した旨を知らせるエラーメッセージを出力するとしているが、演算結果を出力しないようにしてもよい。
(3)実施の形態1のポイント発行システム10におけるポイント発行装置200の暗号処理部202において、ICカード100と同様の楕円演算処理を行うとしてもよい。つまり、楕円演算部212は、楕円演算部112と同様の構成を有しているとしてもよいし、楕円演算部112aと同様の構成を有しているとしてもよいし、また、楕円演算部112bと同様の構成を有しているとしてもよい。
次に示すような金銭の決済システムに適用することもできる。
例えば、通貨の代わりに用いることができる電子マネーを秘密通信の対象とし、ICカードは、電子マネーを記憶しており、利用者が、商品を購入する際に、ICカードは、商品の購入額に相当する電子マネーを暗号化して送信し、また、内部に記憶している電子マネーから送信した分を減じる。ポイント発行装置200に代えて同様の構成を有するレジスタ装置は、暗号化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを再生し、記憶する。
(5)上記のような金銭の決済システムにおいて、送信される金銭の額、送信元、送信先などについては、その正当性の証明が要求される場合がある。このような場合において、実施の形態2に示すデジタル署名や署名検証が適用される。
(6)秘密通信の対象は、上記のようなポイントや電子マネーなどには限定されない。
本発明は、暗号化装置と再生装置とから構成されるコンテンツ配信システムにおいて適用され、例えば、映画、動画像、音楽、小説、データベースなどのデジタル情報を秘密通信の対象としてもよい。これらのコンテンツは、コンテンツ供給者から利用者に対して、これらのコンテンツを記録している記録媒体を販売したり、レンタルすることにより、提供される。また、デジタル放送やインターネットを介して、コンテンツ供給者から利用者に提供される。
上記における暗号化及び復号化において、楕円曲線上の離散対数問題が安全性の根拠として用いられ、楕円べき倍演算が行われる。この楕円べき倍演算を行う各装置は、楕円演算部112、112a又は112bと同様の演算部を備えている。
上記のコンテンツ配信システムにおいて、このような共通鍵暗号方式を採用する場合に、コンテンツ配信システムを構成する暗号化装置と再生装置との間で、いかにして安全に同一の秘密鍵を共有するかが課題となる。
実施の形態3に示す鍵共有システムにより、暗号化装置と再生装置との間で、第三者に知られることなく、秘密鍵を共有し、その後は、共有鍵暗号方式による暗号化アルゴリズムを適用し、暗号化装置において、共有している秘密鍵を用いて、デジタル著作物を暗号化し、また、再生装置において、共有している秘密鍵を用いて、暗号化デジタル著作物を復号する。
(8)演算結果検証部127は、次に示すように判断するとしてもよい。
演算結果検証部127は、前記べき倍点k*Qが楕円曲線E上に存在するか否かの判定に代えて、被べき倍点Qとべき倍点k*Qとが同一の楕円曲線上に存在するか否を判定するとしてもよい。
(Qy2−Qx3−a×Qx)−(Qy'2−Qx'3−a×Qx')=0が成立するか否かを判断する。この式が成立する場合に、被べき倍点Qとべき倍点k*Qとが同一の楕円曲線上に存在すると判定し、この式が成立しない場合に、被べき倍点Qとべき倍点k*Qとが同一の楕円曲線上に存在しないと判定する。
(9)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
(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)
- 素数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とが同一の楕円曲線上に存在するか否を判定する
ことを特徴とする楕円べき倍演算装置。 - 素数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とが同一の楕円曲線上に存在するか否を判定する
ことを特徴とする情報セキュリティ装置。 - 前記情報セキュリティ装置は、楕円べき演算k*Qを演算することにより、平文の暗号化処理、暗号文の復号化処理、平文に対する署名文の生成処理、平文と署名文に対する署名文の検証処理又は第三者に知られることなく二者間で秘密鍵を共有する鍵共有処理を行う
ことを特徴とする請求項2に記載の情報セキュリティ装置。 - 素数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とが同一の楕円曲線上に存在するか否を判定する
ことを特徴とする楕円べき倍演算方法。 - 素数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に記載の楕円べき倍演算用のコンピュータプログラム。
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)
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)
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)
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> | 楕円曲線に基づく鍵生成装置、暗号化装置及び復号化装置 |
-
2004
- 2004-01-23 JP JP2004015573A patent/JP4634046B2/ja not_active Expired - Fee Related
Patent Citations (7)
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 |
---|---|---|
US12021850B2 (en) | Efficient methods for authenticated communication | |
US7940927B2 (en) | Information security device and elliptic curve operating device | |
US20100153273A1 (en) | Systems for performing transactions at a point-of-sale terminal using mutating identifiers | |
US20090175442A1 (en) | Digital Rights Management System Protecting Consumer Privacy | |
JP2004503969A (ja) | 認証媒体の暗号化鍵及びコンピュータハードウェアの固有情報に基づく可変的な暗号化鍵システムを利用する認証方法、並びに、その認証方法を格納し、その有効期間及び権限を示すための認証媒体 | |
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 | |
CN112800479B (zh) | 利用可信第三方的多方联合数据处理方法及装置 | |
CN115242553B (zh) | 一种支持安全多方计算的数据交换方法及系统 | |
CN108805574B (zh) | 基于隐私保护的交易方法和系统 | |
US20040153652A1 (en) | Method, apparatus, system, and program for creating ring signature | |
KR100817048B1 (ko) | 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치 | |
JP4634046B2 (ja) | 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置 | |
WO2022089518A1 (zh) | 地址的生成方法、区块链信息的处理方法以及相关设备 | |
US20230124498A1 (en) | Systems And Methods For Whitebox Device Binding | |
JP3784055B2 (ja) | リストマッチング方法、ネットワークシステム、そのサーバ及び情報端末 | |
Pang et al. | A secure agent-mediated payment protocol | |
JP2005165290A (ja) | Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置 | |
JP2004221800A (ja) | 暗号処理システムにおける不正エンティティ追跡方法、暗号処理システム、および不正エンティティ追跡処理装置、並びにコンピュータ・プログラム | |
CN112989386B (zh) | 一种基于不经意传输的黑名单共享方法及系统 | |
US20240111842A1 (en) | License authentication method and apparatus, electronic device, system, and storage medium | |
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 |