(57)【要約】【課題】CRS再利用型で、非対話型で、情報廃棄不要型の効率的な汎用結合可能コミットメントにおいて共通参照情報を短くする。【解決手段】共通参照情報生成装置２は、公開鍵pkと秘密鍵skとを生成し、秘密鍵skを廃棄し、公開鍵pkを公開する。コミット生成装置３は、乱数rとサンプル値uとを生成し、平文mを公開鍵pkと乱数rとタグtとサンプル値uとを用いて暗号化して暗号文cを生成し、暗号文cとタグtとサンプル値uとをコミット受信装置４へ送信し、平文mと乱数rとをコミット受信装置４へ送信する。コミット受信装置４は、平文mを公開鍵pkと乱数rとタグtとサンプル値uとを用いて暗号化して暗号文c’を求め、暗号文c’と暗号文cとが等しいことを確認する。【選択図】図１
2014150494.tif 000002
【特許請求の範囲】
【請求項１】
共通参照情報生成装置とコミット生成装置とコミット受信装置とを含むコミットメントシステムであって、
кは正の整数のセキュリティパラメータであり、COINは平文mと公開鍵pkとにより一意に定まる乱数空間であり、Uはあらかじめ定めた集合であり、MSPは公開鍵pkにより一意に定まる平文空間であり、
前記共通参照情報生成装置は、
前記セキュリティパラメータкに基づいて前記公開鍵pkと秘密鍵skとを生成する鍵生成部と、
前記秘密鍵skを廃棄する鍵廃棄部と、
前記公開鍵pkを公開する公開部と、
を有し、
前記コミット生成装置は、
前記乱数空間COINから乱数rを選択し、前記集合Uからサンプル値uを選択する乱数生成部と、
前記平文空間MSP上の平文mを前記公開鍵pkと前記乱数rとкビットのタグtと前記サンプル値uとを用いて暗号化して暗号文cを生成する暗号化部と、
前記暗号文cと前記タグtと前記サンプル値uとを前記コミット受信装置へ送信するコミット部と、
前記平文mと前記乱数rとを前記コミット受信装置へ送信する開示部と、
を有し、
前記コミット受信装置は、
前記タグtがкビットのビット列であり、前記乱数rが前記乱数空間COINの元であり、前記サンプル値uが前記集合Uの元であり、前記平文mが前記平文空間MSPの元であることを確認する確認部と、
前記平文mを前記公開鍵pkと前記乱数rと前記タグtと前記サンプル値uとを用いて暗号化して暗号文c’を求め、前記暗号文c’と前記暗号文cとが等しいか否かを確認する開封部と、
を有するコミットメントシステム。
【請求項２】
請求項１に記載のコミットメントシステムであって、
^はべき乗を表し、p,qは素数であり、n=pqであり、dは1以上の整数であり、Zn^dはndを法とする剰余環であり、Zn^d+1はnd+1を法とする剰余環であり、Zn^d+1×は剰余環Zn^d+1の単数群であり、Πは準同型性をもつ選択平文攻撃に対して識別不可能な暗号方式であり、Eは前記暗号方式Πの暗号化アルゴリズムであり、Sは{0,1}к×(Zn^d+1)4の集合であり、Luは前記集合Uの真部分集合であり、Lは{0,1}к×Luの集合であり、
前記鍵生成部は、前記剰余環Zn^dから乱数k1,k2,ζ1,ζ2,z1,z2,x1,x2,y1,y2,wを選択し、前記剰余環Zn^d+1から乱数Rg,Ru1,Ru2,Re,Rπを選択し、値g=(1+n)Rgn^d mod nd+1を計算し、値g1=E(ζ1)を生成し、値g2=E(ζ2)を生成し、値h=E(ζ1z1+ζ2z2)を生成し、値h1=E(ζ1x1+ζ2x2)を生成し、値h2=E(ζ1y1+ζ2y2)を生成し、値u1=E(w;Ru1)を生成し、値u2=E(w;Ru2)を生成し、値e=E(k1k2;Re)・hwを生成し、値π=E(0;Rπ)・(h1h2t)wを生成し、前記集合Sを生成し、前記集合Luへ値u1,u2,e,π,w,k1,k2を含めて前記集合Lを生成し、公開鍵pk:=(n,d,g,g1,g2,h,h1,h2,(S,L))を生成し、秘密鍵sk:=(pk,k1,k2,ζ1,ζ2,z1,z2,x1,x2,y1,y2)を生成し、
前記乱数生成部は、前記剰余環Zn^dから乱数s,vを選択し、前記単数群Zn^d+1×から乱数RA,Ra,Rb1,Rb2,Rb3を選択し、前記乱数r:=(s,v,RA,Ra,Rb1,Rb2,Rb3)を生成し、前記サンプル値u:=(u1,u2,e,π)を生成し、
前記暗号化部は、前記平文mと前記公開鍵pkと前記乱数rと前記タグtと前記サンプル値uとを入力とし、値K1=E(k1)を生成し、値K2=E(k2)を生成し、値A=K1shvem・E(0;RA)を生成し、値a=gsK2m・E(0;Ra)を生成し、値b1=g1vu1m・E(0;Rb1)を生成し、値b2=g2vu2m・E(0;Rb2)を生成し、値b3=(h1h2t)vπm・E(0;Rb3)を生成し、前記暗号文c:=(A,a,b1,b2,b3)を生成し、
前記開封部は、前記平文mと前記公開鍵pkと前記乱数rと前記タグtと前記サンプル値uと前記暗号文cとを入力とし、値K1=E(k1)を生成し、値K2=E(k2)を生成し、値A’=K1shvem・E(0;RA)を生成し、値a’=gsK2m・E(0;Ra)を生成し、値b’1=g1vu1m・E(0;Rb1)を生成し、値b’2=g2vu2m・E(0;Rb2)を生成し、値b’3=(h1h2t)vπm・E(0;Rb3)を生成し、前記暗号文c’:=(A’,a’,b’1,b’2,b’3)を生成し、前記暗号文c’と前記暗号文cとが等しいか否かを確認する
ことを特徴とするコミットメントシステム。
【請求項３】
кは正の整数のセキュリティパラメータであり、
前記セキュリティパラメータкに基づいて公開鍵pkと秘密鍵skとを生成する鍵生成部と、
前記秘密鍵skを廃棄する鍵廃棄部と、
前記公開鍵pkを公開する公開部と、
を有する共通参照情報生成装置。
【請求項４】
кは正の整数のセキュリティパラメータであり、COINは平文mと公開鍵pkとにより一意に定まる乱数空間であり、Uはあらかじめ定めた集合であり、MSPは公開鍵pkにより一意に定まる平文空間であり、
前記乱数空間COINから乱数rを選択し、前記集合Uからサンプル値uを選択する乱数生成部と、
前記平文空間MSP上の平文mを前記公開鍵pkと前記乱数rとкビットのタグtと前記サンプル値uとを用いて暗号化して暗号文cを生成する暗号化部と、
前記暗号文cと前記タグtと前記サンプル値uとをコミット受信装置へ送信するコミット部と、
前記平文mと前記乱数rとを前記コミット受信装置へ送信する開示部と、
を有するコミット生成装置。
【請求項５】
кは正の整数のセキュリティパラメータであり、COINは平文mと公開鍵pkとにより一意に定まる乱数空間であり、Uはあらかじめ定めた集合であり、MSPは公開鍵pkにより一意に定まる平文空間であり、
タグtがкビットのビット列であり、乱数rが前記乱数空間COINの元であり、サンプル値uが前記集合Uの元であり、平文mが前記平文空間MSPの元であることを確認する確認部と、
前記平文mをセキュリティパラメータкに基づいて生成された公開鍵pkと前記乱数rと前記タグtと前記サンプル値uとを用いて暗号化して暗号文c’を求め、前記暗号文c’とコミット生成装置から受信した暗号文cとが等しいことを確認する開封部と、
を有するコミット受信装置。
【請求項６】
кは正の整数のセキュリティパラメータであり、COINは平文mと公開鍵pkとにより一意に定まる乱数空間であり、Uはあらかじめ定めた集合であり、MSPは公開鍵pkにより一意に定まる平文空間であり、
鍵生成部が、セキュリティパラメータкに基づいて前記公開鍵pkと秘密鍵skとを生成する鍵生成ステップと、
鍵廃棄部が、前記秘密鍵skを廃棄する鍵廃棄ステップと、
公開部が、前記公開鍵pkを公開する公開ステップと、
乱数生成部が、前記乱数空間COINから乱数rを選択し、前記集合Uからサンプル値uを選択する乱数生成ステップと、
暗号化部が、前記平文空間MSP上の平文mを前記公開鍵pkと前記乱数rとкビットのタグtと前記サンプル値uとを用いて暗号化して暗号文cを生成する暗号化ステップと、
コミット部が、前記暗号文cと前記タグtと前記サンプル値uとをコミット受信装置へ送信するコミットステップと、
開示部が、前記平文mと前記乱数rとを前記コミット受信装置へ送信する開示ステップと、
確認部が、前記タグtがкビットのビット列であり、前記乱数rが前記乱数空間COINの元であり、前記サンプル値uが前記集合Uの元であり、前記平文mが前記平文空間MSPの元であることを確認する確認ステップと、
開封部が、前記平文mを前記公開鍵pkと前記乱数rと前記タグtと前記サンプル値uとを用いて暗号化して暗号文c’を求め、前記暗号文c’と前記暗号文cとが等しいことを確認する開封ステップと、
を含むコミットメント方法。
【請求項７】
請求項３に記載の共通参照情報生成装置もしくは請求項４に記載のコミット生成装置もしくは請求項５に記載のコミット受信装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は情報セキュリティ技術に関し、特に、複数の暗号プロトコルに組み込まれ同時に動くような環境であっても高い安全性を保つコミットメント技術に関する。
【背景技術】
【０００２】
暗号におけるコミットメントとは、電子的に行う「封じ手」のことである。コミットメント方式は、コミットする側の送信者（committer）と、コミットメントを受ける側の受信者（receiver）の間で行われるプロトコルのことである。送信者は、コミットフェーズで、受信者に情報を預託（コミット）する。この時、受信者は預託された情報の中身を知ることが出来ない（秘匿性）。次に、送信者は開示フェーズで秘匿した情報を受信者に納得いく形で開示するが、コミットフェーズで預託した情報と違う情報を開示して受信者を満足させることは出来ない（拘束性）。コミットメントは、基本的にこのような秘匿性と拘束性を満たさなければいけない。コミットメントのすぐ思いつく応用例は、電子的なジャンケンやコイン投げ（もちろん、将棋や碁に使う封じ手でもよい）であるが、実際に応用できる範囲はそれより遥かに広い。
【０００３】
コミットメントは、最も基本的な暗号プロトコルであるため、上位の暗号プロトコルの中で頻繁に利用される。近年では、暗号プロトコルをより現実の環境に近づけるため、コミットメントはさらに複雑な組み合わせの中で利用される場合が増えてきた。このような複雑な組み合わせの中では、古典的暗号安全性モデルで作られたコミットメントでは、秘匿性と拘束性を同時に満たすことが出来なくなってしまう。汎用結合可能コミットメントとは、そのような複雑な組み合わせでコミットメントが利用された場合にも、秘匿性と拘束性を満たすよう設計されたコミットメントのことである（汎用結合可能性については非特許文献１，２参照）。
【０００４】
汎用結合可能コミットメントが構成出来るためには、送信者と受信者の双方がアクセスできる第三者の作った共通参照情報（common reference string、以下CRSとも呼ぶ）が必要であることが知られている（非特許文献３参照）。技術的な問題により、このCRSは、コミットごとに使い捨てなければいけない場合（すなわち、コミットの回数だけ新しいCRSが必要となる）と、使い捨てずに同じCRSを再利用できる場合に分かれる。当然ながら、CRSをずっと使える「CRS再利用型」コミットメント方式の方が実用性が高い。従来のCRS再利用型汎用結合可能コミットメントには非特許文献１，３，４，５，６に記載された技術があった。
【０００５】
汎用結合可能コミットメントでは、送信者と受信者が、プロトコルの最中もしくは終了後、途中データを廃棄しないと安全性が担保出来ない方式と、廃棄しなくても安全性を担保できる方式が存在する。当然、後者の「情報廃棄不要型」汎用結合可能コミットメントの方が、安全性が高く望ましい。
【０００６】
さらに、計算量、通信量、交信回数なども、汎用結合コミットメントの良し悪しを判断する指標となる。当然、計算量、通信量、交信回数が少ないほど実用性が高い。特に、送信者から受信者に送るだけでコミットメントが完成する方式を「非対話型」汎用結合可能コミットメントという。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】R. Canetti, “Universally composable security: A new paradigm for cryptographic protocols”, 42nd Annual IEEE Symposium on Foundations of Computer Science (FOCS 2001), pp. 136-145, IEEE Computer Society, 2001.
【非特許文献２】Ran Canetti, “Universally composable security: A new paradigm for cryptograpic protocols”, Technical report, Cryptology ePrint Archive, Report 2000/067, 2005. Preliminary version appeared in FOCS’01.
【非特許文献３】R. Canetti and M. Fischlin, “Universally composable commitments”, CRYPTO 2001, volume 2139 of Lecture Notes in Computer Science, pp. 19-40, 2001.
【非特許文献４】R. Canetti, Y. Lindell, R. Ostrovsky, and A. Sahai, “Universally composable two-party and multiparty secure computation”, STOC 2002, pp. 494-503, 2002.
【非特許文献５】Ivan Damgard and Jesper Buus Nielsen, “Perfect hiding and perfect binding universally composable commitment schemes with constant expansion factor”, CRYPTO 2002, volume 2442 of Lecture Notes in Computer Science, pp. 581-596, 2002.
【非特許文献６】Ivan Damgard and Jens Groth, “Non-interactive and reusable non-malleable commitment schemes”, STOC 2003, pp. 426-437, 2003.
【非特許文献７】Ryo Nishimaki, Eiichiro Fujisaki, and Keisuke Tanaka, “Efficient non-interactive universally composable string-commitment schemes”, ProvSec 2009, volume 5848 of Lecture Notes in Computer Science, pp. 3-18, 2009.
【非特許文献８】Yehuda Lindell, “Highly-efficient universally-composable commitments based on the DDH assumption”, EUROCRYPT 2011, volume 6632 of Lecture Notes in Computer Science, pp. 446-466, 2011.
【非特許文献９】Marc Fischlin, Beno^it Libert, and Mark Manulis, “Non-interactive and re-usable universally composable string commitments with adaptive security”, ASIACRYPT 2011, volume 7073 of Lecture Notes in Computer Science, pp. 468-485, 2011.
【非特許文献１０】Eiichiro Fujisaki, “A framework for efficient fully-equipped UC commitments”, IACR Cryptology ePrint Archive, 2012:379, 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献５，６以外の従来方式は、1ビットの秘密情報をコミットするのにO(к)ビット（кはセキュリティパラメータで、к=2048,160など）の平文空間を持つ選択暗号文攻撃に対して安全な公開鍵暗号が最低二つ必要であった。すなわち、1ビットの秘密情報をコミットするのに、O(к)ビットの情報量が必要であり効率が悪い。
【０００９】
非特許文献５，６の方式では、кビットの秘密情報をコミットするのにO(к)ビットで済むので効率は改善されている。しかし、これらのプロトコルは送信者と受信者間の交信回数を３回必要としている。また、非特許文献５の方式は、CRSのサイズが参加者の数に比例して増える。これは、コミットメント方式をサブプロトコルに使う上位のプロトコルの参加者数が増えると、それに応じてCRSのサイズが伸びることを意味する。一方、非特許文献６の方式は、CRSのサイズは固定だが、途中データを適切な時に廃棄しないと安全性が担保されない可能性がある。いずれにせよ、非特許文献５，６のいずれの方式とも送信者と受信者の間に３交信が必要であるという欠点がある。
【００１０】
近年、非特許文献７，８，９などの効率のよい方式が提案されているが、非特許文献７の方式は非対話型だがCRS再利用型ではない。非特許文献８の方式は通信量が少ないが５交信対話型であり途中データを適切に廃棄できなければいけない。非特許文献９の方式は非対話型だがやはり途中データを廃棄できなければいけない。
【００１１】
このように従来技術では、CRS再利用型で、非対話型で、情報廃棄不要型の効率的な（理想的にはкビットの秘密をコミットするのにO(к)ビットで済む）汎用結合可能コミットメントは存在しなかった。
【００１２】
最近、非特許文献１０の方式が、CRS再利用型で、非対話型で、情報廃棄不要型の効率的な汎用結合可能コミットメントを発明した。しかし、非特許文献１０の方式ではセキュリティパラメータのサイズкに対して、O(к2)のサイズのCRSを必要としていた。
【００１３】
この発明の目的は、CRS再利用型で、非対話型で、情報廃棄不要型の効率的な汎用結合可能コミットメントにおいて、共通参照情報を短くすることである。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、この発明のコミットメントシステムは、共通参照情報生成装置とコミット生成装置とコミット受信装置とを含む。この発明では、кは正の整数のセキュリティパラメータであり、COINは平文mと公開鍵pkとにより一意に定まる乱数空間であり、Uはあらかじめ定めた集合であり、MSPは公開鍵pkにより一意に定まる平文空間である。
【００１５】
共通参照情報生成装置は、セキュリティパラメータкに基づいて公開鍵pkと秘密鍵skとを生成する鍵生成部と、秘密鍵skを廃棄する鍵廃棄部と、公開鍵pkを公開する公開部とを有する。
【００１６】
コミット生成装置は、乱数空間COINから乱数rを選択し、集合Uからサンプル値uを選択する乱数生成部と、平文空間MSP上の平文mを公開鍵pkと乱数rとкビットのタグtとサンプル値uとを用いて暗号化して暗号文cを生成する暗号化部と、暗号文cとタグtとサンプル値uとをコミット受信装置へ送信するコミット部と、平文mと乱数rとをコミット受信装置へ送信する開示部とを有する。
【００１７】
コミット受信装置は、タグtがкビットのビット列であり、乱数rが乱数空間COINの元であり、サンプル値uが集合Uの元であり、平文mが平文空間MSPの元であることを確認する確認部と、平文mを公開鍵pkと乱数rとタグtとサンプル値uとを用いて暗号化して暗号文c’を求め、暗号文c’と暗号文cとが等しいことを確認する開封部とを有する。
【発明の効果】
【００１８】
この発明は、CRS再利用型で、非対話型で、情報廃棄不要型の効率的な汎用結合可能コミットメントにおいて、共通参照情報を短くすることができる。
【図面の簡単な説明】
【００１９】
【図１】コミットメントシステムの機能構成を例示する図。
【図２】共通参照情報生成装置の機能構成を例示する図。
【図３】コミット生成装置の機能構成を例示する図。
【図４】コミット受信装置の機能構成を例示する図。
【図５】共通参照情報生成の処理フローを例示する図。
【図６】コミットおよびデコミットの処理フローを例示する図。
【発明を実施するための形態】
【００２０】
実施形態の説明に先立ち、この明細書で用いる表記方法および用語を定義する。
【００２１】
［表記方法］
・上付き添字はべき乗を表す。例えば、xyはxのy乗である。
・^はべき乗を表す。例えば、x^yはxのy乗である。
・∃は存在記号である。例えば、∃xは「少なくとも1つのxが存在する」ことを表す。
・以下の記号は床関数を表す。すなわちx以下の最大の整数を表す。
【００２２】
【数１】
2014150494.tif 000003
【００２３】
［All-But-Many暗号］
この発明では、All-but-many暗号（以下、ABM暗号と呼ぶ）を利用する。ABM暗号は、(weak) extractable Sigmaプロトコルと、出力値が予測不能な確率的な擬似ランダム関数を組み合わせることで構成することができる。(weak) extractable Sigmaプロトコルについての詳細は、「Eiichiro Fujisaki, “New constructions of efficient simulation-sound commitments using encryption and their applications”, CT-RSA, volume 7178 of Lecture Notes in Computer Science, pp. 136-155, 2012.（参考文献１）」を参照されたい。ABM暗号の構成方法の詳細は非特許文献１０を参照されたい。
【００２４】
以下、ABM暗号の概略を説明する。ABM暗号は、鍵生成アルゴリズム（ABM.gen）、サンプリングアルゴリズム（ABM.spl）、暗号化アルゴリズム（ABM.enc）、復号アルゴリズム（ABM.dec）、コリジョンアルゴリズム（ABM.col）の、５つのアルゴリズムからなる公開鍵暗号方式である。
【００２５】
鍵生成アルゴリズム（ABM.gen）は確率的アルゴリズムである。セキュリティパラメータ1кを入力とし、公開鍵pkと秘密鍵skの鍵ペア(pk,sk)を出力する。公開鍵pkは集合の組(S,L)の記述を含む。ただし、S={0,1}к×U、L={0,1}к×Lu、LuはUの真部分集合、Uはあらかじめ定めた集合である。なお、記述の簡素化のため秘密鍵skは公開鍵pkを含むものとする。
【００２６】
サンプリングアルゴリズム（ABM.spl）は確率的アルゴリズムである。秘密鍵sk、タグt∈{0,1}кを入力とし、サンプル値u(=ABM.splL(sk,t;r))を出力する。ただし、(t,u)∈L（つまりu∈Lu）である。サンプル値uを出力するときに使用する乱数rをサンプルする領域をCOINsplとする。領域COINsplは公開鍵pkによって一意に定まる。
【００２７】
暗号化アルゴリズム（ABM.enc）は確率的アルゴリズムである。公開鍵pk、タグt∈{0,1}кとサンプル値uとの組(t,u)∈S、平文x∈MSPを入力とし、暗号文c(=ABM.enc(t,u)(pk,x;r))を出力する。ただし、rは乱数、MSPは平文空間、COINを乱数空間とする。平文空間MSPは公開鍵pkから一意に定まる。また、乱数空間COINは公開鍵pkと平文x∈MSPとによって一意に定まる。
【００２８】
復号アルゴリズム（ABM.dec）は確定的アルゴリズムである。秘密鍵sk、タグt∈{0,1}кとサンプル値uとの組(t,u)∈S、暗号文cを入力とし、平文x(=ABM.dec(t,u)(sk,c))を出力する。
【００２９】
コリジョンアルゴリズム（ABM.col）は２つの確率的アルゴリズム（ABM.col1、ABM.col2）の組である。第１のコリジョンアルゴリズム（ABM.col1）は、秘密鍵sk、乱数^r∈COINspl、タグt∈{0,1}кを入力とし、暗号文cと値ξの組(c,ξ)(←ABM.col1(sk,^r;t))を出力する。第２のコリジョンアルゴリズム（ABM.col2）は、値ξ、平文x∈MSPを入力とし、u=ABM.spl(sk,t;^r)かつc=ABM.enc(t,u)(pk,x;r)を満たす乱数r∈COINを出力する。
【００３０】
ABM暗号はall-but-many特性およびdual mode特性を有する公開鍵暗号方式である。all-but-many特性は、鍵生成アルゴリズム（ABM.gen）とサンプリングアルゴリズム（ABM.spl）が確率的擬似ランダム関数（probabilistic pseudo random function; PPRF）の性質を有することを言う。確率的擬似ランダム関数（PPRF）はeasy sampling, pseudo randomness, unforgeabilityの各種安全性を満たす関数である。dual mode特性は、復号方式（Decryption mode）と落とし戸方式（Trap-door mode）の両方を有することを言う。復号方式（Decryption mode）では、すべての(t,u)∈S\Lpk, x∈MSPについて、ABM.dec(t,u)(sk,ABM.enc(t,u)(pk,x))=xが成り立つ。落とし戸方式（Trap-door mode）では、すべての(t,u)∈Lpk, v∈COINspl, (c,ξ)←ABM.col1(sk,v,t), x∈MSPについて、c=ABM.enc(t,u)(pk,x;ABM.col2(ξ,x))が成り立つ。各種安全性条件の詳細及び証明は非特許文献１０を参照されたい。
【００３１】
ABM暗号を用いて、CRS再利用型で、非対話型で、情報廃棄不要型の汎用結合可能コミットメントを構成することができる。具体的には、公開鍵pkを共通参照情報とし、暗号文c=ABM.enc(pk,x;r)をコミットメントとする。コミットメントを開示するには、証拠として乱数rを出せばよい。
【００３２】
この発明の汎用結合可能コミットメントでは、ABM暗号の鍵生成アルゴリズム（ABM.gen）と暗号化アルゴリズム（ABM.enc）のみを用いる。サンプリングアルゴリズム（ABM.spl）と復号アルゴリズム（ABM.dec）とコリジョンアルゴリズム（ABM.col）はコミットメントでは用いられることがないが、ABM暗号の安全性証明のために必要となるアルゴリズムである。
【００３３】
［Damgard-Jurik暗号］
Damgard-Jurik暗号（以下、DJ暗号とも呼ぶ）は準同型性をもつ選択平文攻撃に対して識別不可能な暗号方式である。Damgard-Jurik暗号の安全性はDCR(Decision Composite Residuosity)仮定のもと成り立つ。
【００３４】
Damgard-Jurik暗号は、鍵生成アルゴリズム（K）、暗号化アルゴリズム（E）、復号アルゴリズム（D）の、３つのアルゴリズムからなる公開鍵暗号方式である。
【００３５】
鍵生成アルゴリズム（K）は以下の処理を行う。セキュリティパラメータkを入力とし、kビットの素数p,qを選択し、n=pqを計算する。sを1以上の整数、jをnと互いに素な整数として、g=(1+n)jx mod ns+1を計算する。p-1とq-1の最小公倍数λを計算し、d mod n ∈Znかつd=0 mod λを満たす値dを選択する。(n,g)を公開鍵とし、dを秘密鍵とする。
【００３６】
暗号化アルゴリズム（E）は以下の処理を行う。ns+1を法とする剰余環Zn^s+1から乱数rを選択する。平文i∈Zn^sを入力とし、暗号文c=girn^s mod ns+1を計算する。
【００３７】
復号アルゴリズム（D）は以下の処理を行う。cd mod ns+1, gd mod ns+1を計算する。cd=(1+n)jid mod n^s, gd=(1+n)jid mod n^sであることから、jid mod ns, jd mod nsを計算し、平文i=(jid)・(jd)-1 mod ndを計算する。
【００３８】
Damgard-Jurik暗号の各アルゴリズムについての詳細は「I. Damgard and M. Jurik, “A generalisation, a simplification and some applications of Paillier’s probabilistic public-key system”, PKC 2001, volume 1992 of Lecture Notes in Computer Science, pp. 125-140, 2001.（参考文献２）」を参照されたい。DCR仮定についての詳細は「P. Pallier, “Public-Key Cryptosystems based on Composite Degree Residue Classes”, Proceedings of EuroCrypt 99, pp.223-238.（参考文献３）」を参照されたい。
【００３９】
［実施形態］
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００４０】
この発明の第一実施形態は、任意のABM暗号から構成される汎用結合可能コミットメントである。第二実施形態は、Damgard-Jurik暗号を利用してNon-Mult仮定に基づいて構成した汎用結合可能コミットメントである。Non-Mult仮定についての詳細は非特許文献１０に記載されている。
【００４１】
［第一実施形態］
上述の通り、第一実施形態は、任意のABM暗号から構成される汎用結合可能コミットメントである。上記のABM暗号の性質を有する暗号方式であれば適用することができる。
【００４２】
＜構成＞
図１を参照して、この実施形態のコミットメントシステム１の構成例を説明する。コミットメントシステム１は共通参照情報生成装置２とコミット生成装置３とコミット受信装置４を含む。共通参照情報生成装置２とコミット生成装置３とコミット受信装置４とはそれぞれネットワーク５に接続される。ネットワーク５は、接続される各装置が相互に通信可能なように構成されていればよく、例えばインターネットやＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などで構成することができる。なお、各装置は必ずしもネットワークを介してオンラインで通信可能である必要はない。例えば、コミット生成装置３の出力する情報を磁気テープやＵＳＢメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体からコミット受信装置４へオフラインで入力するように構成してもよい。他の装置間の情報伝播においても同様であるので詳細な説明は省略する。
【００４３】
図２を参照して、コミットメントシステム１に含まれる共通参照情報生成装置２の構成例を説明する。共通参照情報生成装置２は、制御部２０１、メモリ２０２、入力部２１、鍵生成部２２、鍵廃棄部２３、公開部２４を有する。共通参照情報生成装置２は、例えば、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）等を有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。共通参照情報生成装置２は制御部２０１の制御のもとで各処理を実行する。共通参照情報生成装置２に入力されたデータや各処理で得られたデータはメモリ２０２に格納され、メモリ２０２に格納されたデータは必要に応じて読み出されて他の処理に利用される。
【００４４】
図３を参照して、コミットメントシステム１に含まれるコミット生成装置３の構成例を説明する。コミット生成装置３は、制御部３０１、メモリ３０２、記憶部３０３、入力部３１、乱数生成部３２、暗号化部３３、コミット部３４、開示部３５、出力部３６を有する。コミット生成装置３は、例えば、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）等を有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。コミット生成装置３は制御部３０１の制御のもとで各処理を実行する。コミット生成装置３に入力されたデータや各処理で得られたデータはメモリ３０２に格納され、メモリ３０２に格納されたデータは必要に応じて読み出されて他の処理に利用される。記憶部３０３は、例えば、ＲＡＭ（Random Access Memory）などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリなどの半導体メモリ素子により構成される補助記憶装置、リレーショナルデータベースやキーバリューストアなどのミドルウェア、などにより構成することができる。
【００４５】
図４を参照して、コミットメントシステム１に含まれるコミット受信装置４の構成例を説明する。コミット受信装置４は、制御部４０１、メモリ４０２、記憶部４０３、入力部４１、確認部４２、開封部４３、出力部４４を有する。コミット受信装置４は、例えば、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）等を有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。コミット受信装置４は制御部４０１の制御のもとで各処理を実行する。コミット受信装置４に入力されたデータや各処理で得られたデータはメモリ４０２に格納され、メモリ４０２に格納されたデータは必要に応じて読み出されて他の処理に利用される。記憶部４０３は、例えば、ＲＡＭ（Random Access Memory）などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリなどの半導体メモリ素子により構成される補助記憶装置、リレーショナルデータベースやキーバリューストアなどのミドルウェア、などにより構成することができる。
【００４６】
＜共通参照情報生成処理＞
図５を参照して、共通参照情報生成装置２の実行する共通参照情報生成処理の動作例を説明する。
【００４７】
共通参照情報生成装置２の有する入力部２１を介して鍵生成部２２へセキュリティパラメータ1кが入力される（ステップＳ２１）。鍵生成部２２は、セキュリティパラメータ1кを入力とし、任意のABM暗号の鍵生成アルゴリズム（ABM.gen）を(pk,sk)←ABM.gen(1к)として実行し、公開鍵pkと秘密鍵skの鍵ペア(pk,sk)を生成する（ステップＳ２２）。
【００４８】
鍵ペア(pk,sk)は鍵廃棄部２３へ入力される。鍵廃棄部２３は鍵ペア(pk,sk)に含まれる秘密鍵skを廃棄する（ステップＳ２３）。
【００４９】
公開鍵pkは公開部２４へ入力される。公開部２４は公開鍵pkを共通参照情報として公開する（ステップＳ２４）。公開の方法はコミット生成装置３とコミット受信装置４とが公開鍵pkを参照できる方法であればどのような方法であってもよい。共通参照情報生成装置２からコミット生成装置３とコミット受信装置４とへ個別の通信経路により公開鍵pkを送信してもよいし、任意の公開鍵基盤（Public Key Infrastructure; PKI）などを用いて公開鍵pkを公開し、コミット生成装置３とコミット受信装置４とが任意のタイミングで参照するように構成してもよい。コミット生成装置３は共通参照情報として公開された公開鍵pkを記憶部３０３へ記憶する。コミット受信装置４は同様に共通参照情報として公開された公開鍵pkを記憶部４０３へ記憶する。
【００５０】
＜コミット（封じ手）フェーズ＞
図６を参照して、コミット生成装置３とコミット受信装置４との間で実行されるコミット（封じ手）フェーズの動作例を手続きの順に従って詳細に説明する。
【００５１】
コミット生成装置３の有する入力部３１へタグt∈{0,1}кと平文m∈MSPが入力される（ステップＳ３１）。ただし、MSPは公開鍵pkにより一意に定まる平文空間である。
【００５２】
乱数生成部３２は乱数r∈COINとサンプル値u∈Uを生成する（ステップＳ３２）。ただし、COINは公開鍵pkと平文mとにより一意に定まる乱数空間、Uはあらかじめ定めた集合である。乱数生成部３２は逐一ランダムに乱数rとサンプル値uを選択してもよいし、事前に生成されメモリ３０２に格納されている複数個の値から所定の規則に従って乱数rとサンプル値uを選択してもよい。
【００５３】
平文mと乱数rとタグtとサンプル値uとは暗号化部３３へ入力される。暗号化部３３は記憶部３０３から公開鍵pkを取得する。次に、暗号化部３３は、平文mを入力とし、公開鍵pkと乱数rとタグtとサンプル値uを用いて、任意のABM暗号の暗号化アルゴリズム（ABM.enc）をc←ABM.enc(t,u)(pk,m;r)として実行し、暗号文cを生成する（ステップＳ３３）。
【００５４】
平文mと乱数rとタグtとサンプル値uと暗号文cとはコミット部３４へ入力される。コミット部３４は出力部３６を介してタグtとサンプル値uと暗号文cとをコミット受信装置４へ出力する（ステップＳ３４）。コミット受信装置４は受信したタグtとサンプル値uと暗号文cとを記憶部４０３へ記憶する（ステップＳ４０３）。同時に、コミット部３４は平文mと乱数rとを記憶部３０３へ記憶する（ステップＳ３０３）。
【００５５】
＜デコミット（開示）フェーズ＞
図６を参照して、コミット生成装置３とコミット受信装置４との間で実行されるデコミット（開示）フェーズの動作例を手続きの順に従って詳細に説明する。
【００５６】
コミット生成装置３の有する開示部３５は記憶部３０３から平文mと乱数rとを取得し、出力部３６を介してコミット受信装置４へ出力する（ステップＳ３５）。
【００５７】
平文mと乱数rとはコミット受信装置４の有する入力部４１を介して確認部４２へ入力される（ステップＳ４１）。確認部４２は記憶部４０３からタグtとサンプル値uとを読み出し、以下の条件を検証する（ステップＳ４２）。以下の条件のいずれかが満たさないことを確認した場合には処理を中断する。
１．記憶部４０３から取得したタグtがкビットのビット列であること（t∈{0,1}к）。
２．記憶部４０３から取得したサンプル値uが集合Uの元であること（u∈U）。
３．入力された平文mが平文空間MSPの元であること（m∈MSP）。
４．入力された乱数rが乱数空間COINの元であること（r∈COIN）。
【００５８】
確認部４２が上記の条件をすべて満たすことを確認した場合には、記憶部４０３から取得したタグtとサンプル値uおよび入力された平文mと乱数rとが開封部４３へ入力される。開封部４３は、平文mを入力とし、公開鍵pkと乱数rとタグtとサンプル値uを用いて、任意のABM暗号の暗号化アルゴリズム（ABM.enc）をc’←ABM.enc(t,u)(pk,m;r)として実行し、暗号文c’を生成する（ステップＳ４３）。
【００５９】
次に、開封部４３は記憶部４０３から暗号文cを取得し、生成した暗号文c’と取得した暗号文cとが等しいことを確認する。暗号文c’と暗号文cとが等しい場合には開封を承認する。暗号文c’と暗号文cとが等しくない場合には開封を拒絶する。
【００６０】
開封を承認するか開封を拒絶するかを示す開封結果は出力部４４を介して出力される（ステップＳ４４）。
【００６１】
［第二実施形態］
上述の通り、第二実施形態は、Damgard-Jurik暗号を利用してNon-Mult仮定に基づいて構成した汎用結合可能コミットメントである。第二実施形態では、кビットの情報をコミットするための情報量がO(к)ビットで済むため効率的であり、セキュリティパラメータкに対して共通参照情報のサイズがO(к)ビットのため従来よりも短くなっている。
【００６２】
なお、この実施形態ではDamgard-Jurik暗号を用いてコミットメントシステムを構成する例を説明するが、準同型性をもつ選択平文攻撃に対して識別不可能な暗号方式であれば、容易に置換することが可能である。
【００６３】
＜定義＞
この実施形態では以下のように記号を定義する。
・p,qは素数であり、n=pqである。
・dは1以上の正の整数である（d≧1）。
・Π=(K,E,D)は、Damgard-Jurik暗号の各アルゴリズムである。Kは鍵生成アルゴリズムである。Eは暗号化アルゴリズムである。Dは復号アルゴリズムである。Damgard-Jurik暗号の各アルゴリズムの詳細は参考文献２を参照されたい。
・Zn^dはndを法とする剰余環である。
・Zn^d+1はnd+1を法とする剰余環である。
・Zn^d+1×は剰余環Zn^d+1の単数群である。すなわち、剰余環Zn^d+1の中でnd+1と互いに素となる要素の集合である。
・Hは(Zn^d+1)3→Zn^dとなるハッシュ関数である。
・SはS={0,1}к×(Zn^d+1)4の集合である。
・LはL={0,1}к×Luの集合である。ここで、Lu={(u1,u2,e,π)|∃(r,k1,k2)}である。ただし、値u1,u2,e,π,r,k1,k2は、r=D(u1)=D(u2), D(e)=k1k2+rD(h), D(π)=rD(h1h2t)の関係を満たさなければならない。
【００６４】
＜Damgard-Jurik暗号を用いて構成したABM暗号＞
第一実施形態では任意のABM暗号を用いてコミットメントシステムを構成したが、第二実施形態ではDamgard-Jurik暗号を用いて構成したABM暗号を用いる。
【００６５】
第二実施形態の鍵生成アルゴリズム（ABM.gen）はセキュリティパラメータкを入力とし公開鍵pkと秘密鍵skの鍵ペア(pk,sk)を出力する。具体的には以下の処理を実行する。кビット長の素数p,qを選択し、n=pqを計算する。ndを法とする剰余環Zn^dから乱数k1,k2,ζ1,ζ2,z1,z2,x1,x2,y1,y2を選択する。nd+1を法とする剰余環Zn^d+1から乱数Rgを選択する。値g=(1+n)Rgn^dmod nd+1を計算する。値g1=E(ζ1)を生成する。値g2=E(ζ2)を生成する。値h=E(ζ1z1+ζ2z2)を生成する。値h1=E(ζ1x1+ζ2x2)を生成する。値h2=E(ζ1y1+ζ2y2)を生成する。上記で定義した集合S,Lを生成する。公開鍵pk:=(n,d,g,g1,g2,h,h1,h2,(S,L))と秘密鍵sk:=(pk,k1,k2,ζ1,ζ2,z1,z2,x1,x2,y1,y2)を生成する。
【００６６】
第二実施形態のサンプリングアルゴリズム（ABM.spl）は秘密鍵sk:=(pk,k1,k2,ζ1,ζ2,z1,z2,x1,x2,y1,y2)とタグt∈{0,1}кとを入力としサンプル値uを出力する。具体的には以下の処理を実行する。ndを法とする剰余環Zn^dから乱数wを選択する。nd+1を法とする剰余環Zn^d+1から乱数Ru1,Ru2,Re,Rπを選択する。乱数γ:=(w,Ru1,Ru2,Re,Rπ)を生成する。値u1=E(w;Ru1)を生成する。値u2=E(w;Ru2)を生成する。値e=E(k1k2;Re)・hwを生成する。値π=E(0;Rπ)・(h1h2t)wを生成する。サンプル値u:=(u1,u2,e,π)を生成する。
【００６７】
第二実施形態の暗号化アルゴリズム（ABM.enc）は公開鍵pk:=(n,d,g,g1,g2,h,h1,h2,(S,L))、タグt∈{0,1}кとサンプル値u:=(u1,u2,e,π)の組(t,u)∈S、平文m∈Zn^dを入力とし暗号文cを出力する。具体的には以下の処理を実行する。ndを法とする剰余環Zn^dから乱数s,vを選択する。nd+1を法とする剰余環Zn^d+1の単数群Zn^d+1×から乱数RA,Ra,Rb1,Rb2,Rb3を選択する。値A=K1shvem・E(0;RA)を生成する。値a=gsK2m・E(0;Ra)を生成する。値b1=g1vu1m・E(0;Rb1)を生成する。値b2=g2vu2m・E(0;Rb2)を生成する。値b3=(h1h2t)vπm・E(0;Rb3)を生成する。暗号文c:=(A,a,b1,b2,b3)を生成する。
【００６８】
第二実施形態の復号アルゴリズム（ABM.dec）は秘密鍵sk:=(pk,k1,k2,ζ1,ζ2,z1,z2,x1,x2,y1,y2)、タグtとサンプル値uの組(t,u)∈S、暗号文c:=(A,a,b1,b2,b3)を入力とし平文m∈Zn^dを出力する。具体的には以下の処理を実行する。まず、以下の式(1)が成立するか否かを確認する。
【００６９】
【数２】
2014150494.tif 000004
【００７０】
式(1)が成立しない場合には、以下の式(2)により平文mを生成する。
【００７１】
【数３】
2014150494.tif 000005
【００７２】
式(1)が成立する場合には、以下の式(3)により平文mを生成する。
【００７３】
【数４】
2014150494.tif 000006
【００７４】
第二実施形態の第１のコリジョンアルゴリズム（ABM.col1）は秘密鍵sk:=(pk,k1,k2,ζ1,ζ2,z1,z2,x1,x2,y1,y2)、乱数γ:=(w,Ru1,Ru2,Re,Rπ)、タグt∈{0,1}кを入力とし暗号文cと値ξの組(c,ξ)を出力する。具体的には以下の処理を実行する。ndを法とする剰余環Zn^dから乱数ω,ηを選択する。nd+1を法とする剰余環Zn^d+1の単数群Zn^d+1×から乱数R’A,R’a,R’b1,R’b2,R’b3を選択する。値A=K1ωhη・E(0;R’A)を生成する。値a=gω・E(0;R’a)を生成する。値b1=g1η・E(0;R’b1)を生成する。値b2=g2η・E(0;R’b2)を生成する。値b3=(h1h2t)ηπm・E(0;R’b3)を生成する。暗号文c:=(A,a,b1,b2,b3)と値ξ:=(sk,γ,ω,η,R’A,R’a,R’b1,R’b2,R’b3)を生成する。
【００７５】
第二実施形態の第２のコリジョンアルゴリズム（ABM.col2）は値ξ:=(sk,γ,ω,η,R’A,R’a,R’b1,R’b2,R’b3)、平文x∈MSPを入力とし(s,v,RA,Ra,Rb1,Rb2,Rb3)を出力する。具体的には以下の処理を実行する。値s=ω-mk2 mod ndを生成する。値v=η-mr mod ndを生成する。値αを下記の式(4)により生成する。値βを下記の式(5)により生成する。
【００７６】
【数５】
2014150494.tif 000007
【００７７】
また、値RA=R’AK1-αh-βRe-mを生成する。値Ra=R’ag-αRk1-mを生成する。値Rb1=R’b1g1-βRu1-mを生成する。値Rb2=R’b2g2-βRu2-mを生成する。値Rb3=R’b3(h1h2t)-βRu3-mを生成する。そして、(s,v,RA,Ra,Rb1,Rb2,Rb3)を生成する。このとき、A=g1shvem・E(0;RA), a=gsK2m・E(0;Ra), b1=g1vu1m・E(0;Rb1), b2=g2vu2m・E(0;Rb2), b3=(h1h2t)vπm・E(0;Rb3)が常に成り立つ。
【００７８】
＜共通参照情報生成処理＞
第二実施形態の共通参照情報生成処理の動作例を手続きの順に従って詳細に説明する。ただし、第一実施形態と同様のステップは説明を省略する。
【００７９】
共通参照情報生成装置２の有する鍵生成部２２はセキュリティパラメータ1кを入力として、公開鍵pkと秘密鍵skの鍵ペア(pk,sk)を生成する（ステップＳ２２）。具体的には以下の処理を実行する。
【００８０】
まず、ndを法とする剰余環Zn^dから乱数k1,k2,ζ1,ζ2,z1,z2,x1,x2,y1,y2を選択する。nd+1を法とする剰余環Zn^d+1から乱数Rgを選択する。値g=(1+n)Rgn^d mod nd+1を計算する。値g1=E(ζ1)を生成する。値g2=E(ζ2)を生成する。値h=E(ζ1z1+ζ2z2)を生成する。値h1=E(ζ1x1+ζ2x2)を生成する。値h2=E(ζ1y1+ζ2y2)を生成する。
【００８１】
また、ndを法とする剰余環Zn^dから乱数wを選択する。nd+1を法とする剰余環Zn^d+1から乱数Ru1,Ru2,Re,Rπを選択する。値u1=E(w;Ru1)を生成する。値u2=E(w;Ru2)を生成する。値e=E(k1k2;Re)・hwを生成する。値π=E(0;Rπ)・(h1h2t)wを生成する。集合Lu:={(u1,u2,e,π)|∃w,k1,k2}を生成する。集合S={0,1}к×(Zn^d+1)4を生成する。集合L={0,1}к×Luを生成する。
【００８２】
そして、公開鍵pk:=(n,d,g,g1,g2,h,h1,h2,(S,L))を生成する。秘密鍵sk:=(pk,k1,k2,ζ1,ζ2,z1,z2,x1,x2,y1,y2)を生成する。
【００８３】
＜コミット（封じ手）フェーズ＞
第二実施形態のコミット（封じ手）フェーズの動作例を手続きの順に従って詳細に説明する。ただし、第一実施形態と同様のステップは説明を省略する。
【００８４】
コミット生成装置３の有する乱数生成部３２は乱数rとサンプル値uとを生成する（ステップＳ３２）。具体的には以下の処理を実行する。ndを法とする剰余環Zn^dから乱数s,vを選択する。nd+1を法とする剰余環Zn^d+1の単数群Zn^d+1×から乱数RA,Ra,Rb1,Rb2,Rb3を選択する。乱数r:=(s,v,RA,Ra,Rb1,Rb2,Rb3)を生成する。サンプル値u:=(u1,u2,e,π)を生成する。
【００８５】
コミット生成装置３の有する暗号化部３３は、平文m∈Zn^dを公開鍵pk:=(n,d,g,g1,g2,h,h1,h2,(S,L))と乱数r:=(s,v,RA,Ra,Rb1,Rb2,Rb3)とタグt∈{0,1}кとサンプル値u:=(u1,u2,e,π)とを用いて、Damgard-Jurik暗号の暗号化アルゴリズムEにより暗号化して暗号文cを生成する（ステップＳ３３）。具体的には以下の処理を実行する。値K1=E(k1)を生成する。値K2=E(k2)を生成する。値A=K1shvem・E(0;RA)を生成する。値a=gsK2m・E(0;Ra)を生成する。値b1=g1vu1m・E(0;Rb1)を生成する。値b2=g2vu2m・E(0;Rb2)を生成する。値b3=(h1h2t)vπm・E(0;Rb3)を生成する。暗号文c:=(A,a,b1,b2,b3)を生成する。
【００８６】
＜デコミット（開示）フェーズ＞
第二実施形態のデコミット（開示）フェーズの動作例を手続きの順に従って詳細に説明する。ただし、第一実施形態と同様のステップは説明を省略する。
【００８７】
コミット受信装置４の有する開封部４３は、平文m∈Zn^dを公開鍵pk:=(n,d,g,g1,g2,h,h1,h2,(S,L))と乱数r:=(s,v,RA,Ra,Rb1,Rb2,Rb3)とタグt∈{0,1}кとサンプル値u:=(u1,u2,e,π)とを用いて、Damgard-Jurik暗号の暗号化アルゴリズムEにより暗号化して暗号文c’を生成する（ステップＳ４３）。具体的には以下の処理を実行する。値K1=E(k1)を生成する。値K2=E(k2)を生成する。値A’=K1shvem・E(0;RA)を生成する。値a’=gsK2m・E(0;Ra)を生成する。値b’1=g1vu1m・E(0;Rb1)を生成する。値b’2=g2vu2m・E(0;Rb2)を生成する。値b’3=(h1h2t)vπm・E(0;Rb3)を生成する。暗号文c’:=(A’,a’,b’1,b’2,b’3)を生成する。
【００８８】
次に、開封部４３は、暗号文cと暗号文c’とが等しいことを確認する。暗号文cの各要素と暗号文c’の各要素がすべて等しい場合には暗号文cと暗号文c’とが等しいとする。すなわち、A=A’, a=a’, b1=b’1, b2=b’2, b3=b’3をすべて満たす場合には暗号文cと暗号文c’とが等しいものとする。いずれかの条件を満たさない場合には暗号文cと暗号文c’とが等しくないものとする。
【００８９】
［プログラム、記録媒体］
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施例において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００９０】
また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００９１】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００９２】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００９３】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００９４】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００９５】
１  コミットメントシステム
２  共通参照情報生成装置
３  コミット生成装置
４  コミット受信装置
５  ネットワーク
２１  入力部
２２  鍵生成部
２３  鍵廃棄部
２４  公開部
３１  入力部
３２  乱数生成部
３３  暗号化部
３４  コミット部
３５  開示部
３６  出力部
４１  入力部
４２  確認部
４３  開封部
４４  出力部
２０１  制御部
２０２  メモリ
２０３  記憶部
３０１  制御部
３０２  メモリ
３０３  記憶部
４０１  制御部
４０２  メモリ
４０３  記憶部
【図１】
2014150494.tif 000008
【図２】
2014150494.tif 000009
【図３】
2014150494.tif 000010
【図４】
2014150494.tif 000011
【図５】
2014150494.tif 000012
【図６】
2014150494.tif 000013