説明

ビットコミットメント検証システム、ビットコミットメント装置、検証装置、ビットコミットメント検証方法、ビットコミットメント方法、検証方法、ビットコミットメントプログラム、検証プログラム

【課題】本発明は、開封情報をGの元とし、他の暗号プロトコル中において、効率的に利用可能なビットコメント方法及びその装置を提供することを目的とする。
【解決手段】本発明のビットコミットメント検証システムは登録装置と、ビットコミットメント装置と、検証装置からなる。ビットコメント装置は、二つの群の生成元を用いて、コミットメント鍵ckを生成する。g,h及びrとコミットする情報mからC=Πi=1miriを計算し、これをコミットメントとして出力する。開封情報H=Πi=1riを算出する。検証装置は、等式e(C/Πi=1mi,h)=e(h,H)が成立するか否かを判定し、成立する場合には合格とし、成立しない場合には不合格とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電気通信システムである情報をコミット(確約)し、検証するビットコミットメント検証システム、ビットコミットメント装置、検証装置、及びその方法に関する。
【背景技術】
【0002】
ビットコミットメントは、ある時点で送信者がメッセージmを保持していたことを、後々、受信者に納得させる方法である。例えば、A,Bの二者が後出しを許さない公平なじゃんけんを行う方法を考える。Aはまず紙に書いた自分の選択(「グー」、「チョキ」または「パー」)を金庫に入れて、鍵をかけ、金庫のみをBに渡す。次に、Bは自分の選択をAに告げる。AはBの選択を確認した後に、鍵をBに渡す。Bは受け取った鍵で金庫を開け、Aの選択を確認し、じゃんけんの勝敗を確認する。この「金庫」や「鍵」に相当する機能を電子的に提供する方法がビットコミットメントである。
【0003】
非特許文献1記載のビットコミットメント方法(いわゆる「Pedersenのコミットメント」)について説明する。
【0004】
qを大きな素数とし、Gを位数qの(乗法)群であって、離散対数問題が困難である群とする。
【0005】
コミットメントする者Aは、Gの異なる2つの生成元g、hを無作為に選び、(G,q,g,h)をコミットメント鍵とする。以下、Zを0以上q−1以下の整数の集合とし、ZをZから0を除いた集合とする。コミットする情報をm∈Zとする。
【0006】
コミットメントする者は、Zからrを無作為に選択し、開封情報とする。
C=g∈G (1)
を計算し、Cをコミットメントとして検証者Bへ送る。また、情報mと開封情報rを秘密に保存する。
【0007】
その後、Aは、情報m及び開封情報rを公開する。
Bは、コミットメント鍵(G,q,g,h)と情報mと開封情報rから
=C (2)
式(2)が成り立つか否か検証する。成り立つ場合には、Cを検証者Bへ送った時点から情報mに変更が加えられていないことが確認できる。成り立たない場合には、改竄等の可能性が考えられる。
【0008】
コミットメントC=gから情報mを知ることは情報理論的に不可能である。つまり、検証者Bは、コミットメントCを受け取った時点では、情報mを知ることはできない。一方、コミットメントCを二通りの(m,r)と(m’,r’)により生成することは離散対数logh∈Zを求めることと等価であり、離散対数問題の困難性を仮定すれば、一旦コミットされたCは1通りの情報m及び開封情報rを持ってのみ開封することができる。よって、Aは、コミットメントCを検証者Bへ送った後に、情報mを改竄することはできない。
【0009】
ビットコミットメントは暗号プロトコルと密接な関係を持っている。例えば、ゼロ知識証明、マルチパーティ計算、電子マネー、電子投票、グループ署名等に用いられている。
【非特許文献1】Torben P. Pedersen, "Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing", Advances in Cryptology - CRYPTO ’91, Springer Berlin / Heidelberg, 1992, Volume 576/1992, p.129-140
【発明の開示】
【発明が解決しようとする課題】
【0010】
暗号プロトコル中でビットコミットメントが使われる場合、コミットメント作成者が、開封情報rを実際に公開することなく、正しい開封情報を保持している事実のみを証明する必要が生じることがある。例えば、コミットされたメッセージ間の様々な関係を示す非対話ゼロ知識証明を用いると、開封情報rを秘匿したまま、rを保持している、つまり、コミットメントCを開封できるという事実を第三者に納得させることができる。例えば、Jens Groth, Amit Sahai, "Efficient Non-interactive Proof Systems for Bilinear Groups", Advances in Cryptology - EUROCRYPT 2008, Springer Berlin / Heidelberg, June 3,2008, Volume 4965/2008, p415-432(以下「参考文献1」という)には、開封情報rがGの元であれば、ペアリングを利用して効率的な非対話ゼロ知識証明が構成できることが記載されている。参考文献1のように、開封情報rがZの元である場合についての非対話ゼロ知識証明は理想的なランダムオラクルモデルにおいては効率的な構成が知られているが、理想化された関数を仮定しないモデルにおいては、非効率的な構成しか知られていない。非特許文献1記載のビットコメント方法は、開封情報(m,r)がGの元となっていないため、Gの元を利用して効率的にゼロ知識証明や、グループ署名等を構成することができない。
【0011】
本発明は、開封情報をGの元とし、他の暗号プロトコル中において、効率的に利用可能なビットコメント方法及びその装置を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明のビットコミットメント検証システムは登録装置と、ビットコミットメント装置と、検証装置からなる。qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→Gとし、公開パラメータv=(q,G,G,G,e)とする。ビットコメント装置は、Gから生成元g及びhを、Gから生成元hを、無作為に選択し、これらの生成元を用いてコミットメント鍵ckを生成する。Zに属する乱数r(但し、1≦i≦nであり、nは、情報mの個数を表す)を生成する。公開パラメータv及び乱数rを記憶し、特に乱数rは秘密に記憶する。g,h及びrとコミットする情報mからC=Πi=1miriを計算し、これをコミットメントとして出力する。開封情報H=Πi=1riを算出する。検証装置は、コミットメント鍵ck、情報M、開封情報H及びCを記憶する。等式e(C/Πi=1mi,h)=e(h,H)が成立するか否かを判定し、成立する場合には合格とし、成立しない場合には不合格とする。登録装置は、公開パラメータv及びコミットメント鍵ckを記憶する記憶部を有する。ビットコミットメント装置は、登録装置から公開パラメータvを受け取り、コミットメント鍵ckを登録装置へ、コミットメントCを検証装置へ、送り、コミットメントCを送ると同時または送った後に、情報mを含む情報M及び開封情報Hを検証装置へ送る。検証装置は、登録装置からコミットメント鍵ckを、ビットコミットメント装置からコミットメントC、情報M及び開封情報Hを、受け取る。
【発明の効果】
【0013】
本発明のビットコミットメント検証方法及び装置によれば、ビットコミットメント方法を、効率的に様々な他の暗号プロトコルの構成要素として利用できる。
【0014】
例えば、本発明のビットコミットメント方法を用いた場合、開封情報がGの元であるため、ペアリングを利用した効率的な非対話ゼロ知識証明を構成することができる。
【発明を実施するための最良の形態】
【0015】
ここで、本発明の実施例について説明する。
【実施例1】
【0016】
[ビットコミットメント検証システム1]
図1は、ビットコミットメント検証システム1の構成例を示す図である。図2は、ビットコミットメント検証システム1のシーケンス図の一例を示す図である。ビットコミットメント検証システム1は、登録装置300と、ビットコミットメント装置100と、検証装置200からなる。
【0017】
qを大きな素数とし、G,G,Gを位数qの群とし、eを効率的に計算可能なバイリニアマップe:G×G→Gとし、v=(q,G,G,G,e)を公開パラメータとする。ここで、G,Gは、任意のhからhを計算できるのはrを知っている場合に限られるという性質を有する群である。なお、gとは、g∈Gに対し、群Gで定義される演算をa回行うことを意味する。バイリニアマップとしては、例えば、WeilペアリングやTateペアリング等が考えられる。
【0018】
ビットコミットメント装置100は、コミットメントCを生成するために、登録装置300に対して、公開パラメータvを要求する(s10)。登録装置300は、vをビットコミットメント装置100へ送る(s12)。ビットコミットメント装置100は、公開パラメータvからコミットメント鍵ckを生成し、登録装置300へ送る(s14)。登録装置300は、コミットメント鍵ckを登録及び公開する(s16)。なお、送るたびに公開パラメータを要求しなくとも、記憶している公開パラメータを利用してコミットメント鍵を生成してもよい。さらに、情報m、コミットメント鍵ck及び乱数rを用いて、コミットメントCを生成する。ビットコミットメント装置100は、コミットメントCを検証装置へ送る(s18)。送ると同時または送った後に、乱数rを用いて算出した開封情報Hと、情報mを含む情報Mを前記検証装置へ送る(s19)。
【0019】
検証装置200は、コミットメントCに対応するコミットメント鍵ckを登録装置300へ要求する(s20)。登録装置300は、コミットメント鍵ckを検証装置200へ送る(s22)。検証装置200は、コミットメントC、情報m、コミットメント鍵ckを用いて、改竄及び成りすまし等が行われていないか検証し(s24)、確かにコミットメントCが送られてきた時点から情報mが改竄等されていないことを確認する。以下、各装置及び各処理について詳細を説明する。
【0020】
[登録装置300]
登録装置300は、公開パラメータvを登録及び公開している。例えば、登録装置300は、信頼できる第三者等が管理し、通信部301と、記憶部303と、制御部305を有する。登録装置300は、通信部301を介して、ビットコミットメント装置及び検証装置と通信する。以下、特に記述しなくとも、ビットコメント装置100及び検証装置200と通信する際には、通信部301を介して行われるものとする。通信部301は、例えば、LANアダプタ等により構成され、LANやインターネット等からなる通信回線と接続される。但し、必ずしも通信部を有さずともよく、例えば、キーボード等の入力装置から公開パラメータを入力してもよいし、また、USBメモリ等の可搬媒体に公開パラメータを記憶し、それを入力してもよい。以下、同様に各装置(ビットコメント装置及び検証装置)は送信部101、201を有さずともよく、装置間のデータの入出力は、通信以外の方法であってもよい。記憶部303は、公開パラメータ、コミットメント鍵等を記憶する。なお、上記「登録」とは、記憶部303に記憶することを意味してもよい。また、「公開」とは、利用者の求めに応じて、情報(例えば、公開パラメータ)を閲覧可能、または、取得可能とすることを意味する。制御部305は、各処理を制御する。
【0021】
[ビットコミットメント装置100]
図3は、ビットコミットメント装置100の構成例を示す図である。図4は、ビットコミットメント装置100の処理フローの一例を示す図である。ビットコミットメント装置100は、通信部101と、記憶部103と、制御部105と、コミットメント鍵生成部120と、乱数生成部130と、開封情報生成部140と、コミットメント生成部150を有する。
【0022】
<制御部105、通信部101及び記憶部103>
本実施例のビットコミットメント装置100は、制御部105の制御のもと各処理を実行する。ビットコミットメント装置100は、登録装置300から公開パラメータvを受け取る。例えば、通信部101は、登録装置300及び検証装置200と通信を行い、登録装置300から公開パラメータvを受信する(s101)。以下、特に記述しなくとも、登録装置300及び検証装置200と通信する際には、通信部101を介して行われるものとする。
【0023】
受信した公開パラメータvを記憶部103に記憶する(s103)。また、特に示さない限り、入出力される各データや演算過程の各データは、逐一、記憶部103に格納・読み出され、各演算処理が進められる。但し、必ずしも記憶部103に記憶しなければならないわけではなく、各部間で直接データを受け渡してもよい。
【0024】
<コミットメント鍵生成部120>
コミットメント鍵生成部120は、Gから生成元g及びhを、Gから生成元hを、無作為に選択し、これらの生成元を用いてコミットメント鍵ckを生成する(s120)。例えば、コミットメント鍵ck=(v,g,h,h)として生成する。コミットメント鍵生成部120は、通信部101を介して、または、通信部101及び記憶部103を介して公開パラメータvが入力され、生成元hを開封情報算出部140へ、生成元g及びhをコミットメント生成部150へ出力する。また、通信部101を介して、コミットメント鍵ckを登録装置300へ送る。なお、コミットメント鍵ckには、利用した公開パラメータを表示する情報i等を含めpk=(i,g,h,h)としてもよい。この場合には、以下で説明する検証装置200は、情報iに基づいて、登録装置300に対応する公開パラメータvを要求する。また、登録装置300の記憶している公開パラメータの中から対応する公開パラメータを特定することができる場合には、コミットメント鍵ckに公開パラメータvや、公開パラメータを表示する情報i等を含まなくともよく、検証装置200は、情報M及び開封情報Hを受け付けた際に、登録装置300に公開パラメータvを要求する。
【0025】
<乱数生成部130及び開封情報算出部140>
乱数生成部130は、Zに属する乱数rを生成する(s130)。乱数rを開封情報算出部140及びコミットメント生成部150へ出力する。記憶部103は、乱数rが秘密に記憶される(s135)。開封情報算出部140は、開封情報H=hを算出する(s140)。これにより開封情報Hが離散対数問題が困難な元となる。開放情報算出部140は、Gの生成元h及び乱数rが入力され、開封情報H=hを出力する。
【0026】
<コミットメント生成部150>
コミットメント生成部150は、g,h及びrとコミットする情報mからC=gを計算し、これをコミットメントとして出力する(s150)。コミットメント生成部150は、乱数生成部130から乱数rを、コミットメント鍵生成部120からGの生成元g、hを、さらに情報mを入力され、コミットメントCを出力する。なお、情報m∈Zであり、補助記憶装置やメモリ上のデータ等、もしくは、入力インターフェース、キーボード、マウス等から入力されるデータである。
【0027】
ビットコミットメント装置100は、コミットメント鍵ckを登録装置300へ、コミットメントCを検証装置200へ、送る(s153)。送ると同時または送った後に、情報mを含む情報M及び開封情報Hを検証装置200へ送る(s155)。なお、情報mを含む情報Mとは、例えば、情報m自体(つまり、M=m)であってもよいし、gであってもよい(つまり、M=g)。情報M=gとする場合には、図示しない情報変更部を設け、情報変更部は生成元g及び情報mを入力され、M=gを算出し、Mを出力する構成としてもよい。なお、M=gの場合には、離散対数問題の困難性により、検証装置200は、Mを受け取った場合にも、mについて知ることはできない。このとき、ビットコメント装置100は、情報mを秘匿したまま、コミットメントを開封できることを検証装置200に納得させることができる。非特許文献1同様、一旦コミットされたCは1通りの情報M及び開封情報Hを持ってのみ開封することができる。よって、ビットコミットメント装置100は、コミットメントCを検証装置200へ送ってから(s153)、情報M及び開封情報Hを検証装置200へ送る(s155)までの間に、情報Mを改竄することはできない。なお、開封情報の算出(s140)とコミットメントの生成(s150)は、どちらが先に行われてもよいが、コミットメントCを先に送らなければ、ある時点で送信者がメッセージmを保持していたことを、後々、受信者に納得させるという効果を得ることはできない。
【0028】
[検証装置200]
図5は、検証装置200の構成例を示す。図6は、検証装置100の処理フローの一例を示す図である。検証装置200は、通信部201と、記憶部203と、制御部205と、判定部220を有する。
【0029】
<制御部205、通信部201及び記憶部203>
本実施例の検証装置200は、制御部205の制御のもと各処理を実行する。検証装置200は、登録装置300からコミットメント鍵ckを、ビットコミットメント装置からコミットメントC、情報M及び開封情報Hを、受け取る。例えば、通信部201は、登録装置300及び検証装置100と通信を行う。登録装置300からコミットメント鍵ckを受信する(s201)。ビットコミットメント装置100からコミットメントCを受信し(s202a)、それと同時またはその後、ビットコミットメント装置100から情報M及び開封情報Hを受信する(s202b)。記憶部203は、コミットメントC、コミットメント鍵ck、情報M及び開封情報Hが記憶される(s203)。
【0030】
<判定部220>
判定部220は、以下の等式(11)が成立するか否かを判定する(s220)。
e(C/g,h)=e(h,H) (11)
成立する場合には合格とし(s223)、成立しない場合には不合格とする(s225)。判定部220は、通信部201を介して、または、通信部201及び記憶部203を介して、コミットメント鍵ck、コミットメントC、開封情報H及び情報M(mまたはg)が入力される。
【0031】
以下、検証方法を説明する。式(11)は、C=g、H=hより、
e(g/g,h)=e(h,h) (11)’
と表すことができる。ペアリングの性質により、m及びrが正しいときのみ、等式が成り立ち、従来技術同様、検証装置200は、コミットメントCを受け取った時点では、情報mを知ることはできない。一方、ビットコミットメント装置100は、コミットメントCを検証装置200へ送った後に、情報mを改竄することはできない。また、情報Mをgとした場合には、乱数rだけではなく、情報mを秘匿したまま、コミットメントCを開封できることを第三者に納得させることできる。
【0032】
このような構成とすることによって、ビットコミットメント方法を、効率的に様々な他の暗号プロトコルの構成要素として利用できる。例えば、本発明のビットコミットメント方法を用いた場合、開封情報H=hが、離散対数問題が困難な群Gの元であるため、ペアリングを利用した効率的な非対話ゼロ知識証明を構成することができる。なお、群Gとして、例えば、楕円曲線が作る群等を用いることができる。
【0033】
<ハードウェア構成>
図7は、本実施例におけるビットコミットメント装置100のハードウェア構成を例示したブロック図である。検証装置200及び登録装置300も同様の構成を有する。
【0034】
図7に例示するように、この例のビットコミットメント装置100、検証装置200、登録装置300は、それぞれCPU(Central Processing Unit)11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16及びバス17を有している。
【0035】
この例のCPU11は、制御部11a、演算部11b及びレジスタ11cを有し、レジスタ11cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部12は、データが入力される入力インターフェース、キーボード、マウス等であり、出力部13は、データが出力される出力インターフェース等である。補助記憶装置14は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、ビットコミットメント装置100、検証装置200及び登録装置300としてコンピュータを機能させるためのプログラムが格納されるプログラム領域14a及び各種データが格納されるデータ領域14bを有している。また、RAM16は、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、上記のプログラムが格納されるプログラム領域16a及び各種データが格納されるデータ領域16bを有している。また、バス17は、CPU11、入力部12、出力部13、補助記憶装置14、ROM15及びRAM16を通信可能に接続する。
【0036】
なお、このようなハードウェアの具体例としては、例えば、パーソナルコンピュータの他、サーバ装置やワークステーション等を例示できる。
【0037】
<プログラム構成>
上述のように、プログラム領域14a,16aには、本実施例のビットコミットメント装置100、検証装置200、登録装置300の各処理を実行するための各プログラムが格納される。ビットコミットメントプログラム、検証プログラム及び登録プログラムを構成する各プログラムは、単一のプログラム列として記載されていてもよく、また、少なくとも一部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。また、各プログラムが単体でそれぞれの機能を実現してもよいし、各プログラムがさらに他のライブラリを読み出して各機能を実現するものでもよい。
【0038】
<ハードウェアとプログラムとの協働>
CPU11(図7)は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置14のプログラム領域14aに格納されている上述のプログラムをRAM16のプログラム領域16aに書き込む。同様にCPU11は、補助記憶装置14のデータ領域14bに格納されている各種データを、RAM16のデータ領域16bに書き込む。そして、このプログラムやデータが書き込まれたRAM16上のアドレスがCPU11のレジスタ11cに格納される。CPU11の制御部11aは、レジスタ11cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM16上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部11bに順次実行させ、その演算結果をレジスタ11cに格納していく。
【0039】
図3、5は、このようにCPU11に上述のプログラムが読み込まれて実行されることにより構成されるビットコミットメント装置100、検証装置200の機能構成を例示したブロック図である。
【0040】
ここで、記憶部103及び203は、補助記憶装置14、RAM16、レジスタ11c、その他のバッファメモリやキャッシュメモリ等の何れか、あるいはこれらを併用した記憶領域に相当する。また、通信部101と、記憶部103と、制御部105と、コミットメント鍵生成部120と、乱数生成部130と、開封情報生成部140と、コミットメント生成部150は、CPU11にビットコミットメントプログラムを実行させることにより構成されるものである。また、通信部201と、記憶部203と、制御部205と、判定部220は、CPU11に検証プログラムを実行させることにより構成されるものである。
【0041】
また、本形態のビットコミットメント装置100、検証装置200及び登録装置300は、各制御部105、205及び305の制御のもと各処理を実行する。
【実施例2】
【0042】
実施例1と異なる部分についてのみ説明する。実施例2記載のビットコミットメント検証システム1000は、実施例1で示した構成を複数並列に処理し、等式の両辺を乗算にてまとめることにより、複数の情報m(但し、1≦i≦nであり、nは情報の個数を表す)に対するビットコミットメントCにも対応することができる。また、各情報m,m,…,mのビット長は同一であっても、異なってもよい。
【0043】
[ビットコミットメント検証システム1000]
ビットコミットメント検証システム1000は、登録装置300と、ビットコミットメント装置1100と、検証装置1200からなる。
【0044】
ビットコミットメント装置1100は、複数の情報mに対するコミットメントCを生成するために、登録装置300に対して、公開パラメータvを要求する。登録装置300は、vをビットコミットメント装置1100へ送る。ビットコミットメント装置1100は、公開パラメータvからコミットメント鍵ckを生成し、登録装置300へ送る。登録装置300は、コミットメント鍵ckを登録及び公開する。さらに、複数の情報m、コミットメント鍵ck及び複数の乱数rを用いて、コミットメントCを生成する。ビットコミットメント装置1100は、コミットメントCを検証装置1200へ送る。送ると同時または送った後に、乱数rを用いて、開封情報Hを生成し、情報mを含む情報M及び開封情報Hを検証装置1200へ送る。
【0045】
検証装置1200は、コミットメントCに対応するコミットメント鍵ckを登録装置300へ要求する。登録装置300は、コミットメント鍵ckを検証装置1200へ送る。検証装置1200は、コミットメントC、情報M、コミットメント鍵ckを用いて、改竄及び成りすまし等が行われていないか検証し、確かにコミットメントCが送られてきた時点から情報mが改竄等されていないことを確認する。以下、各装置及び各処理について詳細を説明する。
【0046】
[ビットコミットメント装置1100]
ビットコミットメント装置1100は、通信部101と、記憶部1103と、制御部105と、コミットメント鍵生成部120と、乱数生成部1130と、開封情報生成部1140と、コミットメント生成部1150を有する。
【0047】
<乱数生成部1130、記憶部1103及び開封情報算出部1140>
乱数生成部1130は、Zに属する複数の乱数rを生成する。乱数rは、開封情報算出部1140及びコミットメント生成部1150へ出力される。記憶部1103は、乱数rは秘密に記憶される。開封情報算出部1140は、開封情報H=Πi=1riを算出する(但し、riとは、上記乱数rのことを意味する)。開封情報算出部1140は、コミットメント鍵生成部120から生成元hを、乱数生成部130から乱数rを入力され、開封情報H=Πi=1riを出力する。
【0048】
<コミットメント生成部1150>
コミットメント生成部1150は、g,h及びrとコミットする情報mからC=Πi=1miriを計算し、これをコミットメントとして出力する(s150)。コミットメント生成部1150は、コミットメント鍵生成部120からGの生成元g、hを、乱数生成部130から乱数rを、及び情報mを入力され、コミットメントCを出力する。なお、情報m∈Zである。
【0049】
ビットコミットメント装置1000は、コミットメント鍵ckを登録装置300へ、コミットメントCを検証装置1200へ、送る。送ると同時または送った後に、情報mを含む情報M及び開封情報Hを検証装置1200へ送る。なお、情報mを含む情報Mとは、例えば、情報m自体(つまり、M=(m,m,…,m)であってもよいし、gmiであってもよい(つまり、M=(gm1,gm2,…,gmn)。また、gmiの総積であってもよい(つまり、M=Πi=1mi)。
【0050】
このような構成とすることによって、実施例1と同様の効果を得ることができる。さらに、複数の情報m(1≦i≦n)に対してビットコミットメントCを生成することができるため、実施例1の方法により複数の情報に対し、複数のビットコミットメントを作成するのに比べ、処理を軽減することができる。また、ビットコミットメントの情報量、通信量を小さくすることができる。
【0051】
[検証装置1200]
検証装置1200は、通信部201と、記憶部203と、制御部205と、判定部220を有する。
【0052】
<判定部220>
判定部220は、以下の等式(21)が成立するか否かを判定する(s220)。
e(C/Πi=1mi,h)=e(h,H) (21)
成立する場合には合格とし(s223)、成立しない場合には不合格とする(s225)。
【0053】
以下、検証方法を説明する。式(11)は、C=Πgmiri、H=Πi=1riより、
e(Πi=1miri/Πi=1mi,h)=e(h,Πi=1ri) (21)'
と表すことができる。ペアリングの性質により、m及びrの全てが正しいときのみ、等式が成り立ち、実施例1と同様の効果をえることができる。さらに、等式の両辺を乗算にてまとめることにより、実施例1の方法により複数のコミットメントを検証するのに比べ、処理を軽減することができる。
【図面の簡単な説明】
【0054】
【図1】ビットコミットメント検証システム1の構成例を示す図。
【図2】ビットコミットメント検証システム1のシーケンス図の一例を示す図。
【図3】ビットコミットメント装置100の構成例を示す図。
【図4】ビットコミットメント装置100の処理フローの一例を示す図。
【図5】検証装置200の構成例を示す図。
【図6】検証装置200の処理フローの一例を示す図。
【図7】実施例1におけるビットコミットメント装置100のハードウェア構成を例示したブロック図。
【符号の説明】
【0055】
1 ビットコミットメント検証システム
100 ビットコミットメント装置 200 検証装置
300 登録装置
101、201 通信部 103、203 記憶部
105、205 制御部 120 コミットメント鍵生成部
130 乱数生成部 140 開封情報算出部
150 ビットコミットメント生成部 220 判定部

【特許請求の範囲】
【請求項1】
登録装置と、ビットコミットメント装置と、検証装置からなるビットコミットメント検証システムであって、
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→Gとし、公開パラメータv=(q,G,G,G,e)とし、
前記ビットコメント装置は、Gから生成元g及びhを、Gから生成元hを、無作為に選択し、これらの生成元を用いてコミットメント鍵ckを生成するコミットメント鍵生成部と、
に属する乱数r(但し、1≦i≦nであり、nは、情報mの個数を表す)を生成する乱数生成部と、
前記公開パラメータv及び乱数rが記憶され、特に乱数rは秘密に記憶される記憶部と、
前記g,h及びrとコミットする情報mからC=Πi=1miriを計算し、これをコミットメントとして出力するコミットメント生成部と、
開封情報H=Πi=1riを算出する開封情報算出部と、を有し、
前記検証装置は、前記コミットメント鍵ck、前記情報mを含む情報M、前記開封情報H及びコミットメントCが記憶される記憶部と、
等式e(C/Πi=1mi,h)=e(h,H)が成立するか否かを判定し、成立する場合には合格とし、成立しない場合には不合格とする判定部を有し、
前記登録装置は、前記公開パラメータv及び前記コミットメント鍵ckを記憶する記憶部を有し、
前記ビットコミットメント装置は、前記登録装置から前記公開パラメータvを受け取り、前記コミットメント鍵ckを前記登録装置へ、前記コミットメントCを検証装置へ、送り、コミットメントCを送ると同時または送った後に、前記情報M及び開封情報Hを前記検証装置へ送り、
前記検証装置は、前記登録装置から前記コミットメント鍵ckを、前記ビットコミットメント装置から前記コミットメントC、前記情報M及び開封情報Hを、受け取る、
ことを特徴とするビットコミットメント検証システム。
【請求項2】
請求項1記載のビットコミットメント検証システムであって、
n=1であること、
を特徴とするビットコミットメント検証システム。
【請求項3】
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→Gとし、公開パラメータv=(q,G,G,G,e)とし、
から生成元g及びhを、Gから生成元hを、無作為に選択し、これらの生成元を用いてコミットメント鍵ckを生成するコミットメント鍵生成部と、
に属する乱数r(但し、1≦i≦nであり、nは、情報mの個数を表す)を生成する乱数生成部と、
前記公開パラメータv及び乱数rが記憶され、特に乱数rは秘密に記憶される記憶部と、
前記g,h及びrとコミットする情報mからC=Πi=1miriを計算し、これをコミットメントとして出力するコミットメント生成部と、
開封情報H=Πi=1riを算出する開封情報算出部と、を有し、
登録装置から前記公開パラメータvを受け取り、前記コミットメント鍵ckを登録装置へ、前記コミットメントCを検証装置へ、送り、コミットメントCを送ると同時または送った後に、前記情報mを含む情報M及び開封情報Hを前記検証装置へ送る、
ことを特徴とするビットコミットメント装置。
【請求項4】
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→Gとし、
コミットメント鍵ck、情報mを含む情報M、開封情報H及びコミットメントCが記憶される記憶部と、
等式e(C/Πi=1mi,h)=e(h,H)が成立するか否かを判定し、成立する場合には合格とし、成立しない場合には不合格とする判定部を有し、
登録装置から前記コミットメント鍵ckを、ビットコミットメント装置から前記コミットメントC、前記情報M及び開封情報Hを、受け取る、
ことを特徴とする検証装置。
【請求項5】
登録装置と、ビットコミットメント装置と、検証装置を用いるビットコミットメント検証方法であって、
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→Gとし、公開パラメータv=(q,G,G,G,e)とし、
前記ビットコミットメント装置が、前記登録装置から前記公開パラメータvを受け取るステップと、
前記ビットコメント装置が、Gから生成元g及びhを、Gから生成元hを、無作為に選択し、これらの生成元を用いてコミットメント鍵ckを生成するコミットメント鍵生成ステップと、
前記ビットコメント装置が、前記コミットメント鍵ckを前記登録装置へ送るステップと、
前記登録装置が、前記コミットメント鍵ckを登録及び公開するステップと、
前記ビットコメント装置が、Zに属する乱数r(但し、1≦i≦nであり、nは、情報mの個数を表す)を生成する乱数生成ステップと、
前記ビットコメント装置が、前記公開パラメータv及び乱数rを記憶し、特に乱数rは秘密に記憶する記憶ステップと、
前記ビットコメント装置が、前記g,h及びrとコミットする情報mからC=Πi=1miriを計算し、これをコミットメントとして出力するコミットメント生成ステップと、
前記ビットコメント装置が、前記コミットメントCを検証装置へ送るステップと、
前記ビットコメント装置が、開封情報H=Πi=1riを算出する開封情報算出ステップと、
前記ビットコメント装置が、前記コミットメントCを送ると同時または送った後に、前記情報mを含む情報M及び開封情報Hを前記検証装置へ送るステップと、
前記検証装置が、前記ビットコミットメント装置から前記コミットメントCを受け取るステップと、
前記検証装置が、前記登録装置から前記コミットメント鍵ckを受け取るステップと、
前記検証装置が、前記ビットコミットメント装置から前記情報M及び開封情報Hを、受け取るステップと、
前記検証装置が、前記コミットメント鍵ck、前記情報M、前記開封情報H及びコミットメントCを記憶する記憶ステップと、
前記検証装置が、等式e(C/Πi=1mi,h)=e(h,H)が成立するか否かを判定し、成立する場合には合格とし、成立しない場合には不合格とする判定ステップとを有する、
ことを特徴とするビットコミットメント検証方法。
【請求項6】
請求項5記載のビットコミットメント検証方法であって、
n=1であること、
を特徴とするビットコミットメント検証方法。
【請求項7】
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→Gとし、公開パラメータv=(q,G,G,G,e)とし、
ビットコミットメント装置が、登録装置から前記公開パラメータvを受け取るステップと、
前記ビットコメント装置が、Gから生成元g及びhを、Gから生成元hを、無作為に選択し、これらの生成元を用いてコミットメント鍵ckを生成するコミットメント鍵生成ステップと、
前記ビットコメント装置が、前記コミットメント鍵ckを前記登録装置へ送るステップと、
前記ビットコメント装置が、Zに属する乱数r(但し、1≦i≦nであり、nは、情報mの個数を表す)を生成する乱数生成ステップと、
前記ビットコメント装置が、前記公開パラメータv及び乱数rを記憶し、特に乱数rは秘密に記憶する記憶ステップと、
前記ビットコメント装置が、前記g,h及びrとコミットする情報mからC=Πi=1miriを計算し、これをコミットメントとして出力するコミットメント生成ステップと、
前記ビットコメント装置が、前記コミットメントCを検証装置へ送るステップと、
前記ビットコメント装置が、開封情報H=Πi=1riを算出する開封情報算出ステップと、
前記ビットコメント装置が、前記コミットメントCを送ると同時または送った後に、前記情報mを含む情報M及び開封情報Hを前記検証装置へ送るステップと、
を有する、
ことを特徴とするビットコミットメント方法。
【請求項8】
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→Gとし、公開パラメータv=(q,G,G,G,e)とし、
検証装置が、ビットコミットメント装置からコミットメントCを受け取るステップと、
前記検証装置が、登録装置からコミットメント鍵ckを受け取るステップと、
前記検証装置が、前記ビットコミットメント装置から情報M及び開封情報Hを、受け取るステップと、
前記検証装置が、前記コミットメント鍵ck、前記情報M、前記開封情報H及びコミットメントCを記憶する記憶ステップと、
前記検証装置が、等式e(C/Πi=1mi,h)=e(h,H)が成立するか否かを判定し、成立する場合には合格とし、成立しない場合には不合格とする判定ステップとを有する、
ことを特徴とする検証方法。
【請求項9】
請求項3記載のビットコミットメント装置としてコンピュータを機能させるためのビットコミットメントプログラム。
【請求項10】
請求項4記載の検証装置としてコンピュータを機能させるための検証プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−135928(P2010−135928A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2008−307902(P2008−307902)
【出願日】平成20年12月2日(2008.12.2)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】