JP4706811B2 - 依頼計算を用いた演算装置、及び記録媒体 - Google Patents
依頼計算を用いた演算装置、及び記録媒体 Download PDFInfo
- Publication number
- JP4706811B2 JP4706811B2 JP2000270367A JP2000270367A JP4706811B2 JP 4706811 B2 JP4706811 B2 JP 4706811B2 JP 2000270367 A JP2000270367 A JP 2000270367A JP 2000270367 A JP2000270367 A JP 2000270367A JP 4706811 B2 JP4706811 B2 JP 4706811B2
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- secret information
- value
- inverse
- request
- 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
Landscapes
- Complex Calculations (AREA)
Description
【発明の属する技術分野】
本発明は、暗号化や復号化、或いはデジタル(電子)署名などを、依頼計算を用いて実現するための演算装置に関する。
【0002】
【従来の技術】
近年、情報のデジタル化によって様々なサービスが提供され、快適な生活環境が整備されつつある。例えば、グローバルな情報インフラストラクチャであるインターネットの普及により、我々はそれに接続された世界中のサーバが提供するサービスの恩恵を受けることができる。携帯電話機の普及は、必要なときに相手とコミュニケーションをとることを可能とし、通話以外の付加サービスの利用や所望の情報へのアクセスも随時、行えるようにしている。クレジットカードやプリペイドカードなどは、現金のやりとりによる煩わしさを解消してくれる。
デジタル化された情報の広域ネットワーク化は、上述したような利便性を我々に提供してくれる反面、不正利用による被害を受けやすくなってしまう。すなわち盗聴によるプライバシーの侵害や個人情報の流出、複写、改竄、なりすまし、などによるシステムの不正利用などがそれである。そのような不正利用を回避する解決策として暗号技術が注目されている。なかでも、有限体や楕円曲線上の演算を利用した暗号技術の研究開発が盛んに行われている。
例えば、個人情報が格納されたICカードを用いた電子決済などが注目されているが、電子決済には電子認証や電子署名といった技術が重要となってくる。一般に、ICカードは高セキュリティな電子認証、電子署名の機能を有しているものの、ICカードは、その大きさや、電源といったものによる制約から搭載可能なCPUの演算能力が非力であり、高セキュリティのための暗号化、復号化、或いは電子署名に関する膨大な演算には非常に時間がかかっていた。そこで、従来から、依頼計算を行うことで演算に要する時間の短縮を図ることが行われている。なお、ここでの依頼計算とは、演算能力の優れた別の装置に演算を依頼し、演算結果を得ることで演算時間の短縮を図るものである。
ここで、ICカードが行う電子署名の一例として、楕円DSAアルゴリズムを用いた場合について説明すると、署名“r”と“t”は次の式(1)、(2)、(3)のように求められる。但し、“k”は署名者が作る乱数、“G”はベースポイント、“(x,y)”は座標、“n”はベースポイントGの位数、“e”は署名をしたいデータのハッシュ値、“s”は署名者の秘密鍵であるとする。
【0003】
(x,y)=[k]G ・・・・・(1)
r=x mod n ・・・・・(2)
t=k-1×(e+s×r) mod n ・・・・・(3)
つまり、上述の式(1)は、楕円曲線上の点の集合のベースポイントGを、署名者が作る乱数kの数だけ加算して求めた点を、座標(x,y)として表す。以下、[k]Gのような計算を整数倍算という。
式(2)は、前記座標のxの値を、ベースポイントGの位数nで除算して剰余rを求める。そして、式(3)は、前記剰余rと署名者の秘密鍵sを乗算したものに、署名をしたいデータのハッシュ値eを加算し、これに署名者が作る乱数kの逆元k-1を乗算した値を、ベースポイントGの位数nで除算して剰余tを求める。このようにして求めた“r”と“t”により、電子署名値“r”“t”を生成するのである。この一連の演算において特に多大な処理時間を要する箇所として、[k-1]を求める有限体上の逆元計算部分と、「[k]G」を求める楕円曲線上の点の整数倍算部分が挙げられる。
【0004】
以下に、逆元計算と整数倍算について説明する。
まず、逆元計算を、有限体の一つであるガロア体GF(p)を例にとって説明する。
ガロア体は周知のものであることから、詳細な説明は省略するが、pを素数とするガロア体GF(p)はp個の元からなる集合であり、通常は0以上p未満の整数を代表とする。そのガロア体GF(p)上では2種類の演算、即ち加算と乗算が定義される。
ガロア体GF(p)上の二つの元a、bのガロア体GF(p)上における乗算は、元a、bを整数上で乗算した後に、素数pで除算して剰余を求めることで実施される。即ちcを乗算結果とすると、
c = a・b mod p
と記述できる。逆元計算とは、ガロア体GF(p)上の元aにおいて、
1 = a・b mod p
となる元bを求める計算で、一般には指数計算法が用いられる。それは
b=a-1 mod p
で表される。
上記ガロア体GF(p)を例にとって説明すると、逆元は
a-1 = ap-2mod p
で求めることができる。しかし、素数pは安全を確保するために非常に大きな数となっているため、多大な処理時間を要することは周知の通りである。
次に、整数倍算を、群の一つである楕円曲線上の有理点群を例にとって説明する。なお、楕円曲線上の有理点群は周知のものであることから詳細な説明は省略するが、演算として加算が定義される。この加算を用いて、減算や整数倍算が実現される。つまり、楕円曲線上の有理点をP,Q,Rとし、kを整数とすれば、加算、減算、整数倍算は次のように表現される。
Q=P+P ・・・・・加算
Q=P+(−R) ・・・・・減算
Q=[k]P ・・・・・整数倍算
但し、P+(−R)=0であり、この場合の0は加法単位元である。
このように、整数倍算は、Q=[k]Pのように表され、それは
Q=P+P+・・・・・+P (k個のPを加算)
を意味している。但し、Q、Pは有限体上に定義された楕円曲線上の有理点であり、kはベースポイントGの位数未満の整数である。
kのビット数をnとすると、kは
k=kn-1・2n-1+・・・+k1・2+k0
と表される。その2進表現は、例えば
k=(10100101・・・0101)
である。このことから、整数倍算の一般的な方法であるバイナリーメソッド(binary method)を用いて、従来、Qは以下のようにして求めていた。図5に示すフローチャートを参照して具体的に説明する。
【0005】
先ず、ステップ501では、Q(変数)に単位元0を代入する。続くステップ502では、変数iに、nから1を引いた値(=n−1)を代入する。その後はステップ503に移行する。
ステップ503では、変数iの値が0より小さいか否か判定する。その値が0より小さい場合、判定はYESとなり、一連の処理を終了してQを返す(Qの値を確定させる)。そうでない場合には、判定はNOとなり、ステップ504に移行する。
ステップ504では、kの変数iの値で指定されるビットであるkiの値が1か否か判定する。そのkiの値が1でなかった場合、判定はNOとなり、ステップ505でQに、それまでの値にその値を加算した値(=Q+Q)を代入し、更にステップ506で変数iの値をデクリメントした後、上記ステップ503に戻る。そうでない場合には、判定はYESとなり、ステップ507でQに、それまでの値にPの値を加算した値(=Q+P)を代入した後、ステップ505に移行する。
このようにして、変数iの値を順次、デクリメントしながら、その変数iの値で指定されるビットkiの値が1であればQの値にPの値を足し込みを行い、Qの値にその値を足し込む操作を最上位ビット(kn-1)から最下位ビット(k0)まで繰り返し行う。それにより、最終的なQの値を求めていた。
しかし、上述したような整数倍算は、演算量が多いため、逆元を求める場合と同様に、多大の処理時間を要することは周知の通りである。
上記整数倍算や逆元計算は、上述の依頼計算を行うことで演算を高速に行うことができる。
【0006】
【発明が解決しようとする課題】
しかしながら、暗号技術において、普通、上記a、kは漏洩を防ぐべき秘密情報である。このため、単に依頼計算を行うと、その秘密情報が漏洩する危険性がある。これは、安全性が低下することを意味し、非常に望ましくない。
本発明は、依頼計算を用いて演算を高速に行う際の安全性を確保した演算装置を提供することを目的とする。
【0007】
【課題を解決するための手段】
本発明の依頼計算を用いた演算装置は、共に、外部装置と通信可能なデータ処理装置に搭載され、該外部装置に計算を依頼し、該依頼した計算結果を用いて演算を行うことを前提とし、以下の手段を具備する。本発明の態様の演算装置は、有限体上の元である秘密情報の逆元を算出する場合に、該秘密情報に対し第三者が該秘密情報を特定できないように操作を施し、該操作を施して得られる算出値の逆元の計算を外部装置に対して依頼する計算依頼手段と、計算依頼手段が依頼することによって外部装置から送信されてくる計算結果に、秘密情報に施した操作に応じた操作を行い、該秘密情報の逆元を抽出することにより、該秘密情報の逆元を算出する逆元算出手段と、を具備する。なお、上記の構成において、計算依頼手段は、有限体上の乱数を生成して秘密情報に乗算する操作を行い、逆元算出手段は、外部装置からの計算結果に乱数を掛ける操作を行うことにより、秘密情報の逆数を算出する、ことが望ましい。また、秘密情報に逆元算出手段が算出した逆元を掛けた値が1になるか否か確認することにより検算を行う、ことが望ましい。
【0008】
上記秘密情報は、暗号化、該暗号化された情報の復号化、或いはデジタル署名に用いられるデータであることが望ましい。本発明の記録媒体は、共に、外部装置と通信可能なデータ処理装置が記録されたプログラムを読み取り可能なものであり、以下のようなプログラムを記録している。第1の態様の記録媒体は、前記データ処理装置において有限体上の元である秘密情報の逆元を算出する場合に、前記データ処理装置において該秘密情報を読み出すステップと、読み出した該秘密情報に対し第三者が該秘密情報を特定できないように操作を施すステップと、該操作を施して得られる算出値の逆元の計算を外部装置に対して依頼するステップと、依頼するステップにより依頼することによって外部装置から送信されてくる計算結果を前記データ処理装置が受信するステップと、前記データ処理装置において前記受信した計算結果に秘密情報に施した操作に応じた操作を行い、該秘密情報の逆元を抽出することにより、該秘密情報の逆元を算出するステップと、を実現させるプログラムを記録している。本発明では、有限体上の元である秘密情報の逆元を算出する場合に、該秘密情報に操作を施し、該操作を施して得られる算出値の逆元の計算を外部装置に対して依頼し、その外部装置から送信されてくる計算結果に、秘密情報に施した操作に応じた操作を行うことにより、該秘密情報の逆元を算出する。秘密情報に操作を行い、その操作を行って得られる算出値の逆元の計算を依頼することにより、外部装置、或いはそれにアクセス可能な装置では、その算出値から秘密情報を特定できなくなる。この結果、依頼計算を用いて演算を高速に行う場合において、安全性を確保することが可能となる。
【0009】
本発明では、秘密情報と所定値との整数倍算を行う場合に、外部装置に対して、該秘密情報の値として取りうる最大値以上の数値のビット数を複数に分割し、該分割したビット数別に、該分割したビット数で表現できる数値毎に該値との整数倍算を依頼し、その外部装置から分割したビット数別に送信されてくる整数倍算結果のなかから、秘密情報の値を基に必要な整数倍算結果を選別し、該選別した整数倍算結果を加算していくことにより、秘密情報と所定値との整数倍算結果を算出する。
本発明では、秘密情報と所定値を整数倍算する演算を行う場合に、外部装置に対して、該秘密情報の値として取りうる最大値以上の数値のビット数で表現できる数値毎に該値との整数倍算を依頼し、その外部装置から送信されてくる計算結果のなかから、秘密情報の値を基に必要な計算結果を選別することにより、秘密情報と所定値を整数倍算した結果を求める。
上述したようにして、望む整数倍算結果が得られる計算を含め、複数の計算結果を求める計算を外部装置に依頼することにより、外部装置、或いはそれにアクセス可能な装置では、計算を依頼した側がどの計算結果を必要としているのか特定できなくなる。この結果、依頼計算を用いて演算を高速に行う場合にあっても安全性を確保することが可能となる。
【0010】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図1は、本実施の形態による依頼計算が行われるシステムの構成を説明する図である。
そのシステム101は、図1に示すように、サーバーとして働くパーソナルコンピュータ(以降、PCと略記する)101と、そのPC101とケーブル103により接続された個人用ボックス102と、から構成されている。
その個人用ボックス102は、1個のデータ処理装置であり、本実施の形態による依頼計算を用いた演算装置(以降、演算装置と略記する)はその個人用ボックス102に搭載されている。その演算装置は、個人用ボックス102に搭載されたCPUが、例えばROMに格納されたプログラムを実行することで実現されている。なお、本実施の形態による演算装置を搭載する対象は、個人用ボックス102に限定されるものではなく、CPUを持つICカードなどのデータ処理装置に搭載しても良い。
個人用ボックス102は、PC101と通信を行うためのインターフェースを備え、CPUはそのインターフェースを介してPC101との通信を行う。他方のPC101も個人用ボックス102と通信を行うためのインターフェースを備え、それに搭載された特には図示しないCPUは、そのインターフェースを介して個人用ボックス102との通信を行う。なお、個人用ボックス102、及びPC101にそれぞれ搭載されたインターフェースは、特別なものである必要はなく、周知のもので良い。
【0011】
以上の構成において、動作を説明する。
先ず、始めに、楕円曲線暗号系で用いられる楕円曲線上の点の加算を例にとって説明する。なお、通常の楕円曲線上の点の加算に関する原理は、IEEE P1363、ANSI Working Draft X9.62−199Xなどに詳細に説明されているため、詳細は省略する。
有限体上の逆元計算は演算量が非常に多く、処理に時間がかかることから、通常、楕円曲線上の点の演算には逆元計算を用いない、projective座標での演算が行われるが、座標点表現が複雑(データ量が多い)であるため、多くのメモリ容量を必要とする。しかし、依頼計算を用いて逆元計算を行う場合にあっては、処理時間は充分高速化され、特に小型化が要求されるICカードなどにおいては、メモリ容量が少なくて済むということもあって、特に適している。
ガロア体GF(2m)上に定義された楕円曲線(y2+x・y=x3+a・x2+b)上の任意の点をP0=(x0,y0)、P1=(x1,y1)とする。Affine座標での点の加算、つまりP2=P0+P1は、本実施の形態では以下のアルゴリズムで算出する。
step1 If P0=(0,0) then P2=P1 andstop
step2 If P1=(0,0) then P2=P0 andstop
step3 If x0≠x1then
step3.1 v=y0+y1
step3.2 w=x0+x1
step3.3 r∈GF(2m) 但し、rは乱数
step3.4 t=w・r
step3.5 tをPC101に渡し、その逆元t-1を計算させて得る
step3.6 w-1=t-1・r
step3.7 l=v・w-1
step3.8 goto step7
step4 If y0≠y1then output P2=(0,0)and stop
step5 If x1=0 then output P2=(0,0)and stop
step6 set
step6.1 r∈GF(2m) 但し、rは乱数
step6.2 t=r・x1
step6.3 tをPC101に渡し、その逆元t-1を計算させて得る
step6.4 x1 -1=t-1・r
step6.5 l=y1・x-1+x1
step6.6 x2=a+l2+l
step7 y2=(x1+x2)・l+x2+y1
step8 P2=(x2,y2)
上記アルゴリズムでは、step3.5、或いは6.3でtの逆元計算に対する依頼計算を行っている。そのtは、秘密情報であるwに乱数rを掛けたものである。それにより、その乱数rを秘密情報wに掛ける操作を行って得られるtをPC101(個人用ボックス102から見て、計算能力は優れているが信頼できない外部装置である)に渡しても、PC101側ではそのtから秘密情報wを特定することができないようにしている。その乱数rは、依頼計算を行う度に生成している。このため、依頼計算を繰り返したとしても、PC101側では、計算が依頼される度に送られてくるtから秘密情報wを特定することはできない。このようにして、秘密情報の漏洩、即ち安全性の低下を回避させている。なお、秘密情報wへの操作は、乱数rを掛ける以外のことで行っても良い。
PC101から送信されたt-1の検算は、それに乱数rを掛けて秘密情報wの逆元w-1(=t-1・r=(w-1・r-1)・r)を求め、それを秘密情報wと掛けた値が1か否か確認することで行うことができる。
【0012】
次に、楕円曲線上の整数倍算の依頼計算を行う場合を例にとって説明する。
楕円曲線暗号や楕円DSA(Digital Signature Algorithm)で行われる演算のうち、整数倍算にかかる演算量の占める割合が非常に大きいことが判っている。よって、この整数倍算に依頼計算を適用することは、個人用ボックス102における演算量削減の観点から非常に有効である。
楕円曲線上の点の整数倍算は、
Q=[r]P
但し、Q、Pは楕円曲線上の点、
rは楕円曲線上の点の部分群のベースポイントの位数未満の整数(秘密情報)
のように表される。本実施の形態では、この楕円曲線上の整数倍算(Q=[r]Pを求める演算)を以下のようにして行っている。図2に示すフローチャートを参照して詳細に説明する。その図2において、rのビット数はn、そのrはr=rn-1・2n-1+・・・+r1・2+r0として扱っている。i(変数)は、整数倍算の依頼計算を分割して行うために用意したものであり、その値は2uである。uは、u・N≧nの関係を満たす整数である(Nは2以上の整数)。
先ず、ステップ201では、Q(変数)に単位元0=(0,0)を代入する。続くステップ202では、変数jに0を代入する。その後は、ステップ203でP、及び変数jをPC(サーバー)101に送信して計算を依頼した後、ステップ205に移行する。
【0013】
他方のPC101では、ステップ221で個人用ボックス102から送信されたP、及び変数j受信し、1から変数iの値より1を引いた値までの各値毎に、2juを掛けた値とPを整数倍算した値を計算し、依頼計算の計算結果tjとして、各計算(乗算)値を個人用ボックス102に送信する。それにより、個人用ボックス102には、tj=([1・2ju]P,[2・2ju]P,[3・2ju]P,・・・,[(i−1)・2ju]P)がPC101から送られることになる。なお、その計算を行ううえで用いるuの値は、個人用ボックス102がPC101にその値を送信することで指定しても良く、或いは共有すべき情報として予め定めておいても良い。
上記uの値が5であれば、変数jの値が0のときには、下位5ビットで表現される各値とPの整数倍算値が計算結果tjとして個人用ボックス102に送信される。変数jの値が1のときには、下位6〜10ビットで表現される各値(0000100000,0001000000,0001100000,・・・・,1111100000)とPの整数倍算値が計算結果tjとして個人用ボックス102に送信される。このようにして、本実施の形態では、下位のほうから5ビットずつ区切って、その5ビットで表現される各値とPの整数倍算をPC101に依頼している。そのように、秘密情報rのビット数をより小さいビット数に分割して依頼計算を行うと、Pと整数倍算する値のビット数を最小限に抑えられることから、5ビットで表現できる数値を160ビットで表現するようなことを回避できる。この結果、PC101から計算結果tjとして送信される整数倍算値のビット数を抑えることができ、PC101と個人用ボックス102間の通信をより迅速に行える、個人用ボックス102では計算結果tjの格納に要するメモリ量が小さくて済む、という利点もある。
【0014】
個人用ボックス102は、PC101から送信された計算結果tjをステップ204で受信する。その後はステップ205に移行して、秘密情報rのなかで変数jの値によって指定される部分のビット数(uの値に等しいビット数)が表現する値を算出して変数dに代入する。その値の算出は、秘密情報rを2進表現する各ビットをrL(Lはビットの位を示す整数(初期値を0にして、最下位のビットから数えて何ビット目にあたるかを示す整数)。最下位のビットは0である)で表すと、d=ruj・2uj+ruj+1・2uj+1+ruj+2・2uj+2+・・・+ruj+u-1・2uj+u-1により行う。その値を算出して変数dに代入した後はステップ206に移行する。
ステップ206では、変数dの値が0より大きいか否か判定する。秘密情報rのなかで変数jの値によって指定される部分のビットの全てが0であった場合、判定はNOとなり、ステップ207で変数jの値をインクリメントした後、ステップ209に移行する。そうでない場合には、判定はYESとなり、ステップ208で計算結果tjのなかから[d]Pを示す値を抽出し、その抽出した値をQに足し込んだ後、即ちそれまでの値に抽出した値を加算した値をQに代入した後、そのステップ207に移行して変数jの値のインクリメントを行う。
ステップ209では、変数jの値がnをuで割った値以下か否か判定する。変数jの値がnをuで割った値より大きい場合、判定はNOとなり、一連の処理を終了する。そうでない場合には、判定はYESとなり、上記ステップ203に戻ってそれ以降の処理を同様に実行する。
【0015】
図2に示すフローチャートは、例えばサブルーチン処理、或いは関数として実行される。このため、その一連の処理を終了すると、Qの値はその実行を指示した(コールした)プログラムに渡される。
上記ステップ203〜209は処理ループを形成しており、ステップ209の判定がNOとなるまでの間、繰り返し実行される。例えばuが5であり、nが156〜160の間であれば、n/uの値は最大で32(=160/5)になることから、変数jの値が33となるまで繰り返し実行される。これは、PC101は、秘密情報rの取りうる値の最大値以上の数のビット数で表現できる各数値とPの整数倍算を行うことを意味する。それにより、個人用ボックス102側では、PC101から送られる依頼計算の計算結果tjを用いてQを求めることができるようになっている。
上述したようにPC101に計算を依頼し、その計算結果tjのなかから必要なものを抽出して求めたい値を求めるようにすると、PC101に秘密情報(ここでは秘密情報r)を提供するようなことはなくなる。また、その秘密情報の特定に使える情報を提供することもない。このため、計算能力は優れているが信用できないPC101に対して依頼計算を行っても、秘密情報の漏洩は回避することができ、安全性を維持することができる。
PC101から送信された計算結果tjにより得たQの検算は、秘密情報rの符号を逆にして、上記と同様の処理を行うことで−Q=[−r]Pを求め、その値とQを加算した値が単位元0=(0,0)か否か確認することで行うことができる。
なお、本実施の形態では、連続する複数のビット毎に分けて依頼計算を行っているが、櫛形テーブルを用いて、離れたビットからなる複数のビット毎に分けて依頼計算を行うようにしても良い。そのようにした場合には、足し算と比較して2倍算はより軽い負荷で行えるために、サーバー(ここではPC101)の依頼計算による負荷を抑えられるようになる。
上述したような依頼計算を用いた逆元計算、或いは整数倍算演算は、暗号化や復号化、或いはデジタル署名などに幅広く適用することができる。以降は、それを適用して行う暗号化された情報の復号化、及びデジタル署名について、図3、及び図4に示す各フローチャートを参照して詳細に説明する。
【0016】
図3は、依頼計算を用いた楕円エルガマル(ElGamal)の復号アルゴリズムを実現する処理を示すフローチャートである。始めに、図3を参照して、その処理について詳細に説明する。
周知のように、楕円エルガマルでは、ベースポイントG、乱数k、復号者の公開鍵Vを用いて、平文Mを暗号化し、暗号文C1、C2を生成する。復号化は、その暗号文C1、C2、復号者の秘密鍵sを用いて行うようになっている。個人用ボックス102は、その暗号文C1、C2をPC101から取得してその復号化を行う。
先ず、ステップ301では、秘密鍵sの値を特定できないように依頼計算を用いて[s]C1を求め、その求めた結果を変数Tに代入(格納)する。これは、図2に示す処理と同様に行われる処理である。
ステップ301に続くステップ302では、暗号文C2から変数Tの値を減算し、その減算結果を平文Mとして復号する。その後に一連の処理を終了して、その結果(平文M)をコールしたプログラムに返す。
図4は、依頼計算を用いた楕円DSAの署名生成アルゴリズムを実現する処理のフローチャートである。次に、図4を参照して、その処理について詳細に説明する。
既に述べたように、楕円DSAでは、ベースポイントG、乱数k、メッセージe、署名者の秘密鍵sを用いて、メッセージeに対する署名r、tを生成する。ベースポイントGの位数はnとする。ここでの秘密情報は、秘密鍵s、及び乱数kである。
先ず、ステップ401では、乱数kの値を特定できないように、図2と同様にして、依頼計算を用いて[k]G を求め、その求めた結果を(x,y)(x、yは変数)に代入する。続くステップ402では、そのxをnで割った余り(=x mod n)を変数rに代入する。その後はステップ403に移行する。
ステップ403では、上述した逆元計算と同様に、依頼計算を用いて乱数kの逆元を求め、その求めた結果を変数tmpに格納(代入)する。その後に移行するステップ404では、秘密鍵sの値に変数rの値を乗算し、その乗算結果にメッセージeの値を加算した値を変数tmpの値に乗算し、その乗算結果をnで割った余りを変数tに代入する。その後、一連の処理を終了して、その結果(変数r、t)をコールしたプログラムに返す。
【0017】
なお、本実施の形態では、個人用ボックス102と比較して計算能力が著しく高いPC101に対して依頼計算を行っているが、そのPC101は、自身で処理するのではなく、それと接続された他のPCやサーバーなどに対して依頼計算を行っても良い。このことから明らかなように、依頼計算の対象は一つの外部装置でなくとも良い。
上述したような個人用ボックス102、或いはその変形例の動作を実現させるようなプログラムは、CD−ROM、フロッピーディスク、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等の伝送媒体を用いて、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザはプログラムを取得してデータ処理装置にロード(インストール)することにより、そのデータ処理装置に本発明を適用させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【0018】
【発明の効果】
以上、説明したように本発明は、有限体上の元である秘密情報の逆元を算出する場合に、該秘密情報に操作を施し、該操作を施して得られる算出値の逆元の計算を外部装置に対して依頼し、その外部装置から送信されてくる計算結果に、秘密情報に施した操作に応じた操作を行うことにより、該秘密情報の逆元を算出する。秘密情報に操作を行い、その操作を行って得られる算出値の逆元の計算を依頼することにより、外部装置、或いはそれにアクセス可能な装置では、その算出値から秘密情報を特定できなくなる。このため、依頼計算を用いて演算を高速に行う場合において、安全性を確保することができる。
【図面の簡単な説明】
【図1】本実施の形態による依頼計算が行われるシステムの構成を示す図である。
【図2】依頼計算を用いてQ=[r]Pを求める処理を示すフローチャートである。
【図3】依頼計算を用いた楕円エルガマルの復号アルゴリズムを実現する処理を示すフローチャートである。
【図4】依頼計算を用いた楕円DSAの署名生成アルゴリズムを実現する処理を示すフローチャートである。
【図5】従来のQ=[k]Pを求める処理を示すフローチャートである。
【符号の説明】
101 パーソナルコンピュータ
102 個人用ボックス
Claims (5)
- 外部装置と通信可能なデータ処理装置に搭載され、該外部装置に計算を依頼し、該依頼した計算結果を用いて演算を行う装置であって、
有限体上の元である秘密情報の逆元を算出する場合に、該秘密情報に対し第三者が該秘密情報を特定できないように操作を施し、該操作を施して得られる算出値の逆元の計算を前記外部装置に対して依頼する計算依頼手段と、
前記計算依頼手段が依頼することによって前記外部装置から送信されてくる計算結果に、前記秘密情報に施した操作に応じた操作を行い、該秘密情報の逆元を抽出することにより、該秘密情報の逆元を算出する逆元算出手段と、
を具備することを特徴とする依頼計算を用いた演算装置。 - 前記計算依頼手段は、前記有限体上の乱数を生成して前記秘密情報に乗算する操作を行い、
前記逆元算出手段は、前記外部装置からの計算結果に前記乱数を掛ける操作を行うことにより、前記秘密情報の逆数を算出する、
ことを特徴とする請求項1記載の依頼計算を用いた演算装置。 - 前記秘密情報に前記逆元算出手段が算出した逆元を掛けた値が1になるか否か確認することにより検算を行う、
ことを特徴とする請求項1、または2記載の依頼計算を用いた演算装置。 - 前記秘密情報は、暗号化、該暗号化された情報の復号化、或いはデジタル署名に用いられるデータである、
ことを特徴とする請求項1〜3の何れか1項に記載の依頼計算を用いた演算装置。 - 外部装置と通信可能なデータ処理装置が記録されたプログラムを読み取り可能な記録媒体であって、前記データ処理装置において有限体上の元である秘密情報の逆元を算出する場合に、
前記データ処理装置において該秘密情報を読み出すステップと、
読み出した該秘密情報に対し第三者が該秘密情報を特定できないように操作を施すステップと、
該操作を施して得られる算出値の逆元の計算を前記外部装置に対して依頼するステップと、
前記依頼するステップにより依頼することによって前記外部装置から送信されてくる計算結果を前記データ処理装置が受信するステップと、
前記データ処理装置において前記受信した計算結果に前記秘密情報に施した操作に応じた操作を行い、該秘密情報の逆元を抽出することにより、該秘密情報の逆元を算出するステップと、
を実現させるプログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000270367A JP4706811B2 (ja) | 2000-09-06 | 2000-09-06 | 依頼計算を用いた演算装置、及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000270367A JP4706811B2 (ja) | 2000-09-06 | 2000-09-06 | 依頼計算を用いた演算装置、及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002082609A JP2002082609A (ja) | 2002-03-22 |
JP4706811B2 true JP4706811B2 (ja) | 2011-06-22 |
Family
ID=18756822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000270367A Expired - Fee Related JP4706811B2 (ja) | 2000-09-06 | 2000-09-06 | 依頼計算を用いた演算装置、及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4706811B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10222212A1 (de) * | 2002-05-16 | 2003-12-04 | Giesecke & Devrient Gmbh | Ausspähungsgeschützte modulare Inversion |
JP5161177B2 (ja) * | 2009-09-04 | 2013-03-13 | 日本電信電話株式会社 | 代理計算依頼装置、代理計算依頼方法、代理計算依頼プログラム、記録媒体 |
CN102687184B (zh) * | 2010-01-12 | 2015-11-25 | 日本电信电话株式会社 | 代理计算系统、方法及代理计算委托装置 |
JP5480763B2 (ja) * | 2010-09-21 | 2014-04-23 | 日本電信電話株式会社 | 復号システム、汎用端末、高信頼端末、鍵生成装置、復号方法、プログラム |
JP5438650B2 (ja) * | 2010-09-30 | 2014-03-12 | 日本電信電話株式会社 | 不正検知方法、秘密計算システム、計算装置、計算プログラム |
US10887291B2 (en) | 2016-12-16 | 2021-01-05 | Amazon Technologies, Inc. | Secure data distribution of sensitive data across content delivery networks |
JP7000925B2 (ja) * | 2018-03-06 | 2022-01-19 | 日本電気株式会社 | データ処理システム、および暗号鍵共有方法 |
US11159498B1 (en) | 2018-03-21 | 2021-10-26 | Amazon Technologies, Inc. | Information security proxy service |
EP3806071B1 (en) * | 2018-05-25 | 2023-03-22 | Nippon Telegraph And Telephone Corporation | Secret collective approximation system, secret calculation device, secret collective approximation method, and program |
US10979403B1 (en) | 2018-06-08 | 2021-04-13 | Amazon Technologies, Inc. | Cryptographic configuration enforcement |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000066585A (ja) * | 1998-08-20 | 2000-03-03 | Toshiba Corp | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
-
2000
- 2000-09-06 JP JP2000270367A patent/JP4706811B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000066585A (ja) * | 1998-08-20 | 2000-03-03 | Toshiba Corp | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
JP2002082609A (ja) | 2002-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2376651C2 (ru) | Использование изогений для разработки криптосистем | |
JP4671571B2 (ja) | 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ | |
Bhatia et al. | Towards a secure incremental proxy re‐encryption for e‐healthcare data sharing in mobile cloud computing | |
US7688973B2 (en) | Encryption apparatus, decryption apparatus, key generation apparatus, program, and method | |
JP4855940B2 (ja) | 暗号用鍵の世代の効率的な管理 | |
US7764785B2 (en) | Method for communicating securely over an insecure communication channel | |
US11323255B2 (en) | Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes | |
JP4782343B2 (ja) | “ミドルマン”詐欺に対する可能性を減少すると同時に匿名のユーザを認証する方法 | |
US7236589B2 (en) | Device for point compression for Jacobians of hyperelliptic curves | |
US20100172493A1 (en) | Method and device for processing data | |
US20060251247A1 (en) | Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor | |
US20080260143A1 (en) | Xz-elliptic curve cryptography with secret key embedding | |
JP2001511912A (ja) | 有限体上の離散対数暗号系の円分多項式構造 | |
US7000110B1 (en) | One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device | |
CN109921905B (zh) | 基于私钥池的抗量子计算密钥协商方法和系统 | |
US20180294951A1 (en) | Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra | |
JP4250429B2 (ja) | 連鎖型署名作成装置、及びその制御方法 | |
Gupta et al. | Session key based novel lightweight image encryption algorithm using a hybrid of Chebyshev chaotic map and crossover | |
CN115865531B (zh) | 一种代理重加密数字资产授权方法 | |
JP4706811B2 (ja) | 依頼計算を用いた演算装置、及び記録媒体 | |
EP1296224A1 (en) | Elliptic scalar multiplication system | |
KR20010024912A (ko) | 컴퓨터용 타원 곡선 암호화 방법 및 장치 | |
Lin et al. | Efficient access control and key management schemes for mobile agents | |
Fanfara et al. | Usage of asymmetric encryption algorithms to enhance the security of sensitive data in secure communication | |
Kumar et al. | Cryptanalysis and performance evaluation of enhanced threshold proxy signature scheme based on RSA for known signers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A625 | Written request for application examination (by other person) |
Free format text: JAPANESE INTERMEDIATE CODE: A625 Effective date: 20070905 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20071221 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101001 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101019 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101217 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101217 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110301 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140325 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140325 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |