説明

コミットメントシステム、コミットメント生成装置、コミットメント取得装置、コミットメント生成方法、コミットメント取得方法、及びプログラム

【課題】計算量や通信量が少なく、一つの共通情報を繰り返し使用できる汎用結合可能なコミットメント方式を提供する。
【解決手段】コミットメント生成装置Piが、共通参照データcrsと秘密情報sの入力を受け、X∈Gc,a(1), a(2)∈Z/qZ, ra∈Gr, A=g(i,1)a(1)・g(i,2)a(2)・εpk(1m, ra)∈Gcを生成し、A, Xをコミットメント取得装置 Pjに出力する。Pjはcrsの入力を受け付け、b∈Z/qZを生成してPiに出力する。Piは、B=εpk((gm)b, 1r)∈Gcを生成し、C=(g(0)(a(1)+a(2))・B・X)s・εpk(1m, rc)∈Gcを生成し、a(1), a(2), ra, CをPjに出力し、履歴情報sidと秘密情報sと元 rcとを格納する。Pjは履歴情報sid'を格納する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報セキュリティ技術の基礎技術に関するものであり、特に、コミットメントに関する。
【背景技術】
【0002】
暗号におけるコミットメントとは、電子的に行う「封じ手」のことである。コミットメントは、コミットする側 (committer) と、その受け手 (receiver) とによって行われる。コミットする側は、受け手に情報を秘匿しながらも、後に情報を開示する際、変更できない形で情報を預託する。コミットメントは、基本的にこの二つの性質(秘匿性と拘束性)を満たす。
【0003】
コミットメントのすぐ思いつく応用例は、電子的なジャンケンやコイン投げ(もちろん、将棋や碁でも良い)であるが、実際に応用できる範囲はそれより遥かに広い。コミットメントは、最も基本的な暗号プリミティブであるため、上位の暗号プロトコルの中で、頻繁に利用される。近年では、暗号プロトコルをより現実の環境に近づけるため、コミットメントはさらに複雑な組み合わせの中で利用される場合が増えてきた。このような複雑な組み合わせの中では、古典的暗号安全性モデルで作られたコミットメントでは、秘匿性と拘束性を満たすことが出来なくなってしまう。汎用結合可能コミットメントとは、そのような複雑な組み合わせでコミットメントが利用された場合にも、秘匿性と拘束性を満たすよう設計されたコミットメントのことである(汎用結合可能性については、例えば、非特許文献1,4参照)。
【0004】
汎用結合可能コミットメントを構成するためには、committerとreceiverの双方がアクセス出来る共通情報 (crs) が必ず必要であることが知られている(例えば、非特許文献2参照)。コミットメント方式は、技術的な問題により、この共通情報をコミットメントごとに使い捨てなければならない(すなわち、コミットメントの回数だけ新しい共通情報が必要となる)方式と、使い捨てずに同じ共通情報をずっと使い続けることができる方式とに分けられる。当然ながら、共通情報をずっと使い続けることができるコミットメント方式の方が実用性が高い。
【0005】
次に汎用結合可能コミットメントの計算量、通信量の点からの評価がある。当然、計算量、通信量が少ないほど実用性が高い。
【0006】
一つの共通情報を繰り返し使える汎用結合可能コミットメント方式には、従来、非特許文献1,2,3,5の方式があった。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】R. Canetti, "Universally composable security: A new paradigm for cryptographic protocols", In Proceedings of the 42th IEEE Annual Symposium on Foundations of Computer Science (FOCS'01), pages 136-145, Oct 2001.
【非特許文献2】R. Canetti and M. Fischlin, "Universally composable commitments", In J. Kilian, editor, Advances in Cryptology | CRYPTO 2001, volume 2139 of Lecture Notes in Computer Science, pages 19-40, Springer-Verlag, 2001.
【非特許文献3】R. Canetti, Y. Lindell, R. Ostrovsky, and A. Sahai, "Universally composable two-party and multi-party secure computation", In Proceedings of the 34th annual ACM Symposium on Theory of Com-puting (STOC'02), pages 494-503, 2002.
【非特許文献4】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.
【非特許文献5】I. Damg_ard and J. Nielsen, "Perfect hiding and perfect binding universally composable commitment schemes with constant expansion factor", In Advances in Cryptology | CRYPTO2002, pages 581-596, 2002.
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献5を除いた従来方式は、1ビットの秘密情報をコミットするためにO(k)ビット(kはセキュリティパラメータで、k=2048,160など)の平文空間を持ち、選択暗号文攻撃に対して安全な公開鍵暗号が最低二つ必要であった。すなわち、特許文献5を除いた従来方式は、1ビットの秘密情報をコミットするのに、O(k)ビットの情報量が必要であり効率が悪い。一方、非特許文献5の方式では、kビットの秘密情報をコミットするためにO(k)ビットで済むので効率は改善されている。しかしながら、非特許文献5の方式は、実質、合成数N(大きな二つの奇素数の積)を法とするRSA公開鍵暗号方式上でしか構成できず、セキュリティパラメータも大きなk=2048に限定されるという問題がある。
【0009】
本発明はこのような点に鑑みてなされたものであり、計算量や通信量が少なく、一つの共通情報を繰り返し使用できる汎用結合可能なコミットメント方式を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明の第1態様のコミットメントでは、n(n≧1)個のコミットメント生成装置P(i) (i∈{1,...,n})とコミットメント取得装置Pj (j≠i)とによって以下の処理を行う。まず、コミットメント生成装置 Piが、準同型公開鍵暗号方式の公開鍵 pkと有限可換群 Gcの元 g(0), g(1,1), g(1,2) ,..., g(n,1), g(n,2)∈Gcとを含む共通参照データ crsと、秘密情報s∈{0,1,...,L}(L, qは0<L≦qを満たす整数)の入力を受け付ける。コミットメント生成装置 Piは、有限可換群 Gcの任意の元 X∈Gcを生成し、正整数qを法とする剰余環 Z/qZの任意の元 a(1), a(2)∈Z/qZを生成し、有限可換群 Grの任意の元 ra∈Grを生成し、Gmを位数qの巡回群である有限可換群とし、有限可換群Gmの生成元をgmとし、有限可換群Gmの単位元を1mとし、準同型公開鍵暗号方式の暗号化関数を公開鍵 pkと平文M∈Gmと元 r∈Grに対してεpk(M, r)∈Gcを出力する準同型関数とした場合における、有限可換群 Gcの元 A=g(i,1)a(1)・g(i,2)a(2)・εpk(1m, ra)∈Gcを生成し、元 A, Xをコミットメント取得装置 Pjに対して出力する。コミットメント取得装置 Pjは、共通参照データ crsの入力を受け付け、剰余環 Z/qZの任意の元 b∈Z/qZを生成し、元 bをコミットメント生成装置 Piに対して出力する。コミットメント生成装置 Piは、有限可換群 Grの単位元を1rとした場合における、B=εpk((gm)b, 1r)∈Gcを生成し、有限可換群 Grの任意の元 rc∈Grを生成し、秘密情報s∈{0,1,...,L}をコミット対象として、有限可換群 Gcの元 C=(g(0)(a(1)+a(2))・B・X)s・εpk(1m, rc)∈Gcを生成し、元a(1), a(2), ra, Cをコミットメント取得装置 Pjに対して出力し、元 A, X, a(1), a(2), ra, b, Cを含む第1履歴情報sidと秘密情報sと元 rcとを格納する。コミットメント取得装置 Pjは、元 A, X, a(1), a(2), ra, b, Cを含む第2履歴情報sid'を格納する。
【0011】
本発明の第1態様のデコミットメントでは、コミットメント生成装置 Piが、第1履歴情報sidと秘密情報 sと元 rcとをコミットメント取得装置 Pjに対して出力し、コミットメント取得装置 Pjが、第1履歴情報sidと第2履歴情報sid'とが一致し、なおかつ、秘密情報 sと元 rcとがC=(g(0)(a(1)+a(2))・B・X)s・εpk(1m, rc)∈Gc, B=εpk((gm)b, 1r)∈Gcを満たす場合に、秘密情報 sを承認する。
【0012】
ここで、本発明の第1態様では、有限可換群 Gcの元 C=(g(0)(a(1)+a(2))・B・X)s・εpk(1m, rc)∈Gcによってコミット対象の秘密情報sが秘匿されるが、秘密情報sがkビットである場合、Cのビット長はO(k)で表現できる。また、暗号化関数εpk(M, r)としてどのような準同型公開鍵暗号方式のものを使用するかに制限はない。さらに、共通参照データ crsは、n(n≧1)個のコミットメント生成装置 P(i) (i∈{1,...,n})に対してそれぞれ使用可能である。
【0013】
また、本発明の第2態様のコミットメントでは、まず、コミットメント生成装置 Piが、準同型公開鍵暗号方式の公開鍵 pkと、それぞれがk個(kは正整数)の有限可換群 Gcの元を要素とするベクトルvg(0)=(g(0,1) ,..., g(0,k)), vg(1,1)=(g(1,1,1) ,..., g(1,1,k)), vg(1,2)=(g(1,2,1) ,..., g(1,2,k)), ..., vg(n,1)=(g(n,1,1) ,..., g(n,1,k)), vg(n,2)=(g(n,2,1) ,..., g(n,2,k))とを含む共通参照データ crsと、正整数qw (w=1,...,k)を法とする剰余環 Z/qwZの元vs(w)∈Z/qwZを各要素とする秘密情報ベクトルvs=(vs(1),...,vs(k))∈Πw=1k Z/qwZとの入力を受け付ける。コミットメント生成装置 Piは、有限可換群 Gcの任意の元 X∈Gcを生成し、剰余環 Z/qwZの任意の元a(1,w)∈Z/qwZを各要素とするベクトルva(1)=(a(1,1) ,..., a(1,k))∈Πw=1k Z/qwZと、剰余環 Z/qwZの任意の元a(2,w)∈Z/qwZを各要素とするベクトルva(2)=(a(2,1) ,..., a(2,k))∈Πw=1k Z/qwZとを生成し、有限可換群 Grの任意の元 ra∈Grを生成し、Gmを位数qwの巡回群Gm,wの直積Gm=Gm,1×...×Gm,kからなる有限可換群とし、巡回群Gm,wの生成元をgm,wとし、有限可換群Gmの単位元を1mとし、準同型公開鍵暗号方式の暗号化関数を公開鍵 pkと平文M∈Gmと元 r∈Grに対してεpk(M, r)∈Gcを出力する準同型関数とし、vg(i,t)va(t)=(g(i,t,1)a(t,1) ,..., g(i,t,k)a(t,k)) (t∈{1,2})とした場合における、有限可換群 Gcの元A=vg(i,1)va(1)・vg(i,2)va(2)・εpk(1m, ra)∈Gcを生成し、元 A, Xをコミットメント取得装置 Pjに対して出力する。コミットメント取得装置 Pjは、共通参照データ crsの入力を受け付け、剰余環 Z/qwZの任意の元b(1,w)∈Z/qwZを各要素とするベクトルvb=(b(1) ,..., b(k))∈Πw=1k Z/qwZを生成し、ベクトルvbをコミットメント生成装置 Piに対して出力する。コミットメント生成装置 Piは、有限可換群 Grの単位元を1rとした場合における、B=εpkw=1k(gm,w)b(w), 1r)∈Gcを生成し、有限可換群 Grの任意の元 rc∈Grを生成し、秘密情報ベクトルvsをコミット対象として、有限可換群 Gcの元 C=(vg(0)(va(1)+va(2))・B・X)vs・εpk(1m, rc)∈Gcを生成し、va(1), va(2), ra, Cをコミットメント取得装置 Pjに対して出力し、A, X, va(1), va(2), ra, vb, Cを含む第1履歴情報sidと秘密情報ベクトルvsと元 rcとを格納する。コミットメント取得装置 Pjは、A, X, va(1), va(2), ra, vb, Cを含む第2履歴情報sid'を格納する。
【0014】
本発明の第2態様のデコミットメントでは、コミットメント生成装置 Piが、第1履歴情報sidと秘密情報ベクトルvsと元 rcとをコミットメント取得装置 Pjに対して出力し、コミットメント取得装置 Pjが、第1履歴情報sidと第2履歴情報sid'とが一致し、なおかつ、秘密情報ベクトルvsと元 rcとがC=(vg(0)(va(1)+va(2))・B・X)vs・εpk(1m, rc)∈Gc, B=εpkw=1k(gm,w)b(w), 1r)∈Gcを満たす場合に、秘密情報ベクトルvsを承認する。
【0015】
ここで、本発明の第2態様では、有限可換群 Gcの元 C=(vg(0)(va(1)+va(2))・B・X)vs・εpk(1m, rc)∈Gcによってコミット対象の秘密情報ベクトルvs=(vs(1),...,vs(k))∈Πw=1k Z/qwZが秘匿されるが、秘密情報ベクトルvsの各要素がkビットである場合、Cのビット長はO(k)で表現できる。また、暗号化関数εpk(M, r)∈Gcとしてどのような準同型公開鍵暗号方式のものを使用するかに制限はない。さらに、共通参照データ crsは、n(n≧1)個のコミットメント生成装置 P(i) (i∈{1,...,n})に対してそれぞれ使用可能である。
【発明の効果】
【0016】
本発明では、計算量や通信量が少なく、一つの共通情報を繰り返し使用できる汎用結合可能なコミットメント方式を実現できる。
【図面の簡単な説明】
【0017】
【図1】図1は、実施形態のコミットメントシステムの全体構成を説明するための図である。
【図2】図2は、第1実施形態のコミットメント生成装置の機能構成を説明するための図である。
【図3】図3は、第1実施形態のコミットメント取得装置の機能構成を説明するための図である。
【図4】図4は、第1実施形態の共通参照データ生成装置の機能構成を説明するための図である。
【図5】図5は、第1実施形態のコミットメント(封じ手)処理を説明するための図である。
【図6】図6Aは、第1実施形態のデコミットメント(開封)処理を説明するための図である。図6Bは、第1実施形態の共通参照データの生成処理を説明するための図である。
【図7】図7は、第2実施形態のコミットメント生成装置の機能構成を説明するための図である。
【図8】図8は、第2実施形態のコミットメント取得装置の機能構成を説明するための図である。
【図9】図9は、第2実施形態の共通参照データ生成装置の機能構成を説明するための図である。
【図10】図10は、第2実施形態のコミットメント(封じ手)処理を説明するための図である。
【図11】図11Aは、第2実施形態のデコミットメント(開封)処理を説明するための図である。図11Bは、第2実施形態の共通参照データの生成処理を説明するための図である。
【発明を実施するための形態】
【0018】
以下、図面を参照して本発明の実施形態を説明する。
【0019】
〔第1実施形態〕
まず、本発明の第1実施形態を説明する。
【0020】
<定義>
Gm, Gr, Gcは、それぞれ有限可換(有限アーベル)群を表す。本形態のGmはgm∈Gmを生成元とする位数q(qは正整数)の巡回群である。すなわち、Gm=<gm>かつq=#Gmである。また、有限可換群Gmの単位元を1mと表し、有限可換群Grの単位元を1rと表す。有限可換群Gm, Gr, Gcの具体例は、例えば、楕円曲線上の有理点のなす群や有限体の乗法群などである。Gm, Gr, Gcは互いにすべて同一であってもよいし、Gm, Gr, Gcの一部が互いに異なっていてもよく、Gm, Gr, Gcが互いにすべて異なっていても良い。本形態では、有限可換群Gm, Gr, Gc上で定義された演算を乗法的に表現する。例えば、正整数qを法とする剰余環 Z/qZの元χ∈Zq/Z及び有限可換群Gcの元Ω∈Gcに対するΩχ∈Gcは、Ω∈Gcに対して有限可換群Gcで定義された演算をχ回施すことを意味し、Ω12∈Gcに対するΩ1・Ω2∈Gcは、Ω1∈GcとΩ2∈Gcとを被演算子として有限可換群Gcで定義された演算を行うことを意味する。なお、楕円曲線上の有理点のなす群や有限体の乗法群をコンピュータ上で実現するための具体的方法には様々なものが存在し、実際、このような群を用いたコンピュータ実装可能な暗号方式が数多く存在する。
【0021】
Π=(Gen, Enc, Dec)は準同型公開鍵暗号方式を表す。具体的には、Πは3つのアルゴリズムGen, Enc, Decの組であり、各アルゴリズムは次の性質を満たす。
【0022】
Genは鍵生成アルゴリズムであり、セキュリティパラメータk(kは正整数)が入力され、それに対応する公開鍵・秘密鍵の組(pk, sk)を生成して出力する確率的アルゴリズムである。Encは暗号化アルゴリズムであり、公開鍵pkと平文M∈Gmを入力とし、乱数r∈Grを内部発生させ、それらを準同型関数εpk(M, r)∈Gcに代入して得られる暗号文cを計算して出力する確率的アルゴリズムである。Decは復号アルゴリズムであり、秘密鍵skと暗号文cを入力とし、平文M=Decsk(c)を計算して出力するアルゴリズムである。なお、εpk: Gm×Gr→Gcを関数としてみたとき、Gm, Gr, Gcが有限可換(有限アーベル)群であり、εpkが準同型関数であるとき(すなわち、任意のx,y∈Gm, y,z∈Grに対して、εpk(x, y)・εpk(y, z)=εpk(x・y, y・z)を満たす)、εpkを暗号化関数として用いる公開鍵暗号方式を準同型公開鍵暗号方式と呼ぶ。また、εpkが準同型関数であるとき、z∈Z(Zは整数集合を表す)に対してεpk(x, y)Zpk(xZ, yZ)を満たす。
【0023】
準同型公開鍵暗号方式の具体例には、例えば、El Gamal暗号(参考文献1「T. El Gamal, "A public key cryptosystem and a signature scheme based on discrete logarithms", In IEEE Transactions on Information Theory, IT-31, pages 469-472, 1985.」)や、Damgard-Juric暗号(参考文献2「I. Damg_ard and M. Jurik, "A generalisation, a simpli_cation and some applications of Paillier's probabilistic public-key system", In K. Kim, editor, 4th International Workshop on Practice and Theory in Public Key Cryptography-PKC'01, volume 1992 of Lecture Notes in Computer Science, pages 125-140, february 2001.」)などが存在する。本形態では、どのような準同型公開鍵暗号方式を用いてもかまわない。
【0024】
<構成>
第1実施形態のコミットメントシステム1(図1)は、n(n≧1)個のコミットメント生成装置110−i(P(i): i∈{1,...,n})と、コミットメント取得装置120−j( Pj:(j≠i))と、共通参照データ生成装置130とを有する。コミットメント生成装置110−i、コミットメント取得装置120−j及び共通参照データ生成装置130は、ネットワークや可搬型記録媒体等(以下「ネットワーク等」という)を経由した情報のやり取りが可能とされている。なお、図1では、表記便宜上から、コミットメント生成装置110−iやコミットメント取得装置120−jが1つずつ表記されているが、これらが複数存在していてもかまわない。また、共通参照データ生成装置130が複数存在する構成でもかまわない。
【0025】
<コミットメント生成装置110−iの構成>
本形態のコミットメント生成装置110−i(図2)は、記憶部111と、入力部112a,112bと、出力部113と、任意元生成部114a,114b,114c,114fと、演算部114d,114e,114gと、制御部115とを有する。
【0026】
コミットメント生成装置110−iは、例えば、CPU(central processing unit)、RAM(random-access memory)、ROM(read-only memory)などを含む公知又は専用のコンピュータと特別なプログラムとによって構成される特別な装置である。すなわち、記憶部111は、例えば、RAM、キャッシュメモリ、レジスタ、ハードディスクやそれらの少なくとも一部を結合した記憶領域であり、入力部112a,112bや出力部113は、通信装置や入出力インタフェースや入出力ポートなどであり、任意元生成部114a,114b,114c,114fと演算部114d,114e,114gと制御部115とは、読み込まれた特別なプログラムを実行するCPUなどである。また、任意元生成部114a,114b,114c,114fと演算部114d,114e,114gと制御部115の少なくとも一部が集積回路によって構成されていてもよい。コミットメント生成装置110−iは、制御部115の制御のもと各処理を実行し、各処理で得られたデータは記憶部111に格納され、格納されたデータは必要に応じて読み出されて各処理に利用される。
【0027】
<コミットメント取得装置120−jの構成>
本形態のコミットメント取得装置120−j(図3)は、記憶部121と、入力部122と、出力部123と、任意元生成部124aと、演算部124b,124dと、判定部124b,124c,124eと、制御部125とを有する。
【0028】
コミットメント取得装置120−jは、例えば、CPU、RAM、ROMなどを含む公知又は専用のコンピュータと特別なプログラムとによって構成される特別な装置である。すなわち、記憶部121は、例えば、RAM、キャッシュメモリ、レジスタ、ハードディスクやそれらの少なくとも一部を結合した記憶領域であり、入力部122や出力部123は、通信装置や入出力インタフェースや入出力ポートなどであり、任意元生成部124aと演算部124b,124dと判定部124b,124c,124eと制御部125とは、読み込まれた特別なプログラムを実行するCPUなどである。また、任意元生成部124aと演算部124b,124dと判定部124b,124c,124eと制御部125との少なくとも一部が集積回路によって構成されていてもよい。コミットメント取得装置120−jは、制御部125の制御のもと各処理を実行し、各処理で得られたデータは記憶部121に格納され、格納されたデータは必要に応じて読み出されて各処理に利用される。
【0029】
<共通参照データ生成装置130>
本形態の共通参照データ生成装置130(図4)は、記憶部131と、入力部132と、出力部133と、鍵生成部134aと、任意元生成部134bと、演算部134cと、制御部135とを有する。
【0030】
共通参照データ生成装置130は、例えば、CPU、RAM、ROMなどを含む公知又は専用のコンピュータと特別なプログラムとによって構成される特別な装置である。すなわち、記憶部131は、例えば、RAM、キャッシュメモリ、レジスタ、ハードディスクやそれらの少なくとも一部を結合した記憶領域であり、入力部132や出力部133は、通信装置や入出力インタフェースや入出力ポートなどであり、鍵生成部134aと任意元生成部134bと演算部134cと制御部135とは、読み込まれた特別なプログラムを実行するCPUなどである。また、鍵生成部134aと任意元生成部134bと演算部134cと制御部135との少なくとも一部が集積回路によって構成されていてもよい。共通参照データ生成装置130は、制御部135の制御のもと各処理を実行し、各処理で得られたデータは記憶部131に格納され、格納されたデータは必要に応じて読み出されて各処理に利用される。
【0031】
<共通参照データ生成処理>
図6Bを用いて本形態の共通参照データ生成処理を説明する。
【0032】
まず、共通参照データ生成装置130(図4)の入力部132に、セキュリティパラメータkと整数L(Lは、0<L≦qなる正整数である)が入力される(ステップS1301)。セキュリティパラメータkと整数Lとは鍵生成部134aに入力される。鍵生成部134aは、上述した鍵生成アルゴリズムGenを作動させ、セキュリティパラメータkに対応する公開鍵・秘密鍵の組(pk, sk)を生成し、公開鍵pkと整数Lとを演算部134cに出力し、秘密鍵skを破棄する(ステップS1302)。次に、任意元生成部134bが、ランダムに有限可換群Gcの元 g(0), g(1,1), g(1,2) ,..., g(n,1), g(n,2)∈Gc (言い換えるとg(0), g(i,t)∈Gc (i=1,...,n, t=1,2))を選択して演算部134cに出力する(ステップS1303)。次に、演算部134cが、共通参照データ
crs=(Π, pk, L, gm, g(0), g(1,1), g(1,2) ,..., g(n,1), g(n,2)) …(1)
を生成して出力部133に出力する(ステップS1304)。出力部133は、共通参照データcrsを各コミットメント生成装置110−i及びコミットメント取得装置120−jに対して出力し、ネットワーク等経由で各コミットメント生成装置110−i及びコミットメント取得装置120−jに送る(ステップS1305)。
【0033】
<コミットメント(封じ手)処理>
図5を用いて本形態のコミットメント処理を説明する。
【0034】
コミットメント生成装置110−i(図2)の入力部112aに共通参照データcrsが入力され、記憶部111に格納される(ステップS1101)。また、コミットメント取得装置120−j(図3)の入力部122に共通参照データcrsが入力され、記憶部121に格納される(ステップS1201)。なお、ステップS1101,S1201はコミットメント処理の前に実行されていてもよく、また、既に共通参照データcrsが記憶部111,121に格納されている場合には、ステップS1101,S1201は省略可能である。また、コミットメント生成装置110−iを表すPiとコミットメント取得装置120−jを表すPjとが、コミットメント生成装置110−i(図2)の記憶部111とコミットメント取得装置120−j(図3)の記憶部121とに格納される。
【0035】
次に、コミットメント生成装置110−i(図2)の入力部112bに、コミットする秘密情報s∈{0,1,...,L}(L, qは0<L≦qを満たす整数)が入力され、記憶部111に格納される(ステップS1102)。
【0036】
次に、任意元生成部114cが、有限可換群 Gcの任意の元 X∈Gcをランダムに生成して記憶部111に格納し(ステップS1103)、任意元生成部114aが、正整数qを法とする剰余環 Z/qZの任意の元a(1), a(2)∈Z/qZをランダムに生成して記憶部111に格納し(ステップS1104)、任意元生成部114bが、有限可換群 Grの任意の元 ra∈Grをランダムに生成して記憶部111に格納する(ステップS1105)。演算部114dは、記憶部111からa(1), a(2), ra, crsのg(i,1), g(i,2)を読み出し、有限可換群 Gcの元
A=g(i,1)a(1)・g(i,2)a(2)・εpk(1m, ra)∈Gc …(2)
を計算して記憶部111に格納する(ステップS1106)。
【0037】
記憶部111に格納されたA, Xは出力部113に送られ、出力部113はA, Xをコミットメント取得装置120−jに対して出力する(ステップS1107)。A, Xは、ネットワーク等を経由してコミットメント取得装置120−j(図3)の入力部122に入力され、記憶部121に格納される(ステップS1202)。
【0038】
次に、コミットメント取得装置120−jの任意元生成部124aが、剰余環 Z/qZの任意の元 b∈Z/qZをランダムに生成して記憶部121に格納する(ステップS1203)。記憶部121に格納されたbは出力部123に入力され、出力部123がコミットメント生成装置110−iに対してbを出力する(ステップS1204)。bはネットワーク等を経由してコミットメント生成装置110−i(図2)の入力部112aに入力され、記憶部111に格納される(ステップS1108)。
【0039】
次に、演算部114eが、記憶部111からbとcrsのgmとを読み出し、
B=εpk((gm)b, 1r)∈Gc …(3)
を生成して記憶部111に格納する(ステップS1109)。
【0040】
次に、任意元生成部114fが、有限可換群 Grの任意の元 rc∈Grを生成して記憶部111に格納する(ステップS1110)。さらに、演算部114gが、記憶部111からa(1), a(2), B, X, s, crsのg(0)を読み出し、秘密情報sをコミット対象として、有限可換群 Gcの元
C=(g(0)(a(1)+a(2))・B・X)s・εpk(1m, rc)∈Gc …(4)
を生成して記憶部111に格納する(ステップS1111)。
【0041】
次に、記憶部111に格納されたa(1), a(2), ra, Cが出力部113に入力され、出力部113は、(a(1), a(2), ra), Cをコミットメント取得装置120−jに対して出力する(ステップS1112)。なお、コミットメント生成装置110−iの記憶部111には、A, X, a(1), a(2), ra, b, C, Pi, Pj,を含む履歴情報
sid=(Pi, Pj, A, X, a(1), a(2), ra, b, C) …(5)
と(s, rc)が保管される。
【0042】
出力部113から出力された(a(1), a(2), ra), Cは、ネットワーク等を経由して、コミットメント取得装置120−j(図3)の入力部122に入力され、記憶部121に格納される(ステップS1205)。次に、判定部124bが、記憶部121から、A, a(1), a(2), crsのg(i,1)及びg(i,2)を読み出し、
A=g(i,1)a(1)・g(i,2)a(2)・εpk(1m, ra) …(6)
を満たすか否かを判定する(ステップS1206)。ここで、式(6)を満たすと判定されたならば、記憶部121に格納された履歴情報
sid'=(Pi, Pj, A, X, a(1), a(2), ra, b, C) …(7)
を保管してコミットメント処理を正常終了する(ステップS1207)。一方、式(6)を満たさないと判定されたならば、記憶部121に格納された履歴情報を破棄してコミットメント処理をエラー終了する(ステップS1208)。
【0043】
<デコミットメント(開封)処理>
図6Aを用いて本形態のデコミットメント処理を説明する。
【0044】
まず、コミットメント生成装置110−i(図2)の記憶部111から出力部113に履歴情報sidと(s, rc)とが入力され、出力部113が履歴情報sid'と(s, rc)とをコミットメント取得装置120−jに対して出力する(ステップS1121)。履歴情報sidと(s, rc)とは、ネットワーク等を経由してコミットメント取得装置120−j(図3)の入力部122に入力され、記憶部121に格納される(ステップS1211)。
【0045】
次に、判定部124cが、記憶部121から履歴情報sidとsid'とを読み出し、
sid=sid' …(8)
を満たすか否かを判定する(ステップS1212)。ここで、式(8)を満たさないと判定された場合、コミットメント生成装置110−iによるデコミットメントを拒絶して処理をエラー終了する(ステップS1215)。一方、式(8)を満たすと判定された場合、次に、演算部124dが、記憶部121からb, crsのgmを読み出して
B=εpk((gm)b, 1r)∈Gc …(9)
を生成して判定部124eに入力する(ステップS1213)。判定部124eは、さらに記憶部121からa(1), a(2), X, s, crsのg(0)を読み出し、秘密情報 sと元 rcとが
C=(g(0)(a(1)+a(2))・B・X)s・εpk(1m, rc)∈Gc …(10)
を満たすか否かを判定する(ステップS1214)。ここで、式(10)を満たさないと判定された場合、コミットメント生成装置110−iによるデコミットメントを拒絶して処理をエラー終了する(ステップS1215)。一方、式(10)を満たすと判定された場合、コミットメント生成装置110−iによるデコミットメントを承認することで秘密情報 sを承認し、その旨の判定結果を出力して処理を正常終了する(ステップS1216)。
【0046】
〔第2実施形態〕
次に、本発明の第2実施形態を説明する。第2実施形態は、第1実施形態の公開鍵暗号方式の平文空間をベクトル空間に変更したものである。以下では、第1実施形態との相違点を中心に説明する。
【0047】
<定義>
本形態でもGm, Gr, Gcは、それぞれ有限可換(有限アーベル)群を表す。ただし、本形態のGmは、位数qw(w=1,...,k)の巡回群Gm,wの直積Gm=Gm,1×...×Gm,kからなる有限可換群である(任意の有限アーベル群はこの形で一般化できる)。すなわち、巡回群Gm,wの生成元をgm,wとし、Gm=<gm,1>×...×<gm,k>とする。また、巡回群Gm,wの位数をqwとおくと、#Gmw=1k qwである。また、有限可換群Gmの生成元vgmをvgm=(gm,1,...,gm,k)と定義する。また、有限可換群Gmの単位元を1mと表し、有限可換群Grの単位元を1rと表す。Gm,w, Gr, Gcの具体例は、例えば、楕円曲線上の有理点のなす群や有限体の乗法群などである。Gm,w, Gr, Gcは互いにすべて同一であってもよいし、Gm,w, Gr, Gcの一部が互いに異なっていてもよく、Gm,w, Gr, Gcが互いにすべて異なっていても良い。本形態でも、有限可換群Gm, Gr, Gc上で定義された演算を乗法的に表現する。
【0048】
Π=(Gen, Enc, Dec)は準同型公開鍵暗号方式を表す。Gen, Enc, Decの定義は第1実施形態と同様である。また、本形態で利用する準同型公開鍵暗号方式の具体例は、El Gamal暗号やDamgard-Juric暗号など第1実施形態と同様である。本形態でも、どのような準同型公開鍵暗号方式を用いてもかまわない。
【0049】
<構成>
第2実施形態のコミットメントシステム2(図1)は、n(n≧1)個のコミットメント生成装置210−i(P(i): i∈{1,...,n})と、コミットメント取得装置220−j( Pj:(j≠i))と、共通参照データ生成装置230とを有する。コミットメント生成装置210−i、コミットメント取得装置220−j及び共通参照データ生成装置230は、ネットワーク等を経由した情報のやり取りが可能とされている。なお、図1では、表記便宜上から、コミットメント生成装置210−iやコミットメント取得装置220−jが1つずつ表記されているが、これらが複数存在していてもかまわない。また、共通参照データ生成装置230が複数存在する構成でもかまわない。
【0050】
<コミットメント生成装置210−iの構成>
本形態のコミットメント生成装置210−i(図7)は、記憶部211と、入力部212a,212bと、出力部213と、任意元生成部214a,114b,114c,114fと、演算部214d,214e,214gと、制御部115とを有する。
【0051】
コミットメント生成装置210−iは、例えば、CPU、RAM、ROMなどを含む公知又は専用のコンピュータと特別なプログラムとによって構成される特別な装置である。すなわち、記憶部211は、例えば、RAM、キャッシュメモリ、レジスタ、ハードディスクやそれらの少なくとも一部を結合した記憶領域であり、入力部212a,212bや出力部213は、通信装置や入出力インタフェースや入出力ポートなどであり、任意元生成部214a,114b,114c,114fと演算部214d,214e,214gと制御部115とは、読み込まれた特別なプログラムを実行するCPUなどである。また、任意元生成部214a,114b,114c,114fと演算部214d,214e,214gと制御部115の少なくとも一部が集積回路によって構成されていてもよい。コミットメント生成装置210−iは、制御部115の制御のもと各処理を実行し、各処理で得られたデータは記憶部211に格納され、格納されたデータは必要に応じて読み出されて各処理に利用される。
【0052】
<コミットメント取得装置220−jの構成>
本形態のコミットメント取得装置220−j(図8)は、記憶部221と、入力部222と、出力部223と、任意元生成部224aと、演算部224b,224dと、判定部224b,224c,224eと、制御部125とを有する。
【0053】
コミットメント取得装置220−jは、例えば、CPU、RAM、ROMなどを含む公知又は専用のコンピュータと特別なプログラムとによって構成される特別な装置である。すなわち、記憶部221は、例えば、RAM、キャッシュメモリ、レジスタ、ハードディスクやそれらの少なくとも一部を結合した記憶領域であり、入力部222や出力部223は、通信装置や入出力インタフェースや入出力ポートなどであり、任意元生成部224aと演算部224b,224dと判定部224b,224c,224eと制御部125とは、読み込まれた特別なプログラムを実行するCPUなどである。また、任意元生成部224aと演算部224b,224dと判定部224b,224c,224eと制御部125との少なくとも一部が集積回路によって構成されていてもよい。コミットメント取得装置220−jは、制御部125の制御のもと各処理を実行し、各処理で得られたデータは記憶部221に格納され、格納されたデータは必要に応じて読み出されて各処理に利用される。
【0054】
<共通参照データ生成装置230>
本形態の共通参照データ生成装置230(図9)は、記憶部231と、入力部232と、出力部233と、鍵生成部134aと、任意元生成部234bと、演算部234cと、制御部135とを有する。
【0055】
共通参照データ生成装置230は、例えば、CPU、RAM、ROMなどを含む公知又は専用のコンピュータと特別なプログラムとによって構成される特別な装置である。すなわち、記憶部231は、例えば、RAM、キャッシュメモリ、レジスタ、ハードディスクやそれらの少なくとも一部を結合した記憶領域であり、入力部232や出力部233は、通信装置や入出力インタフェースや入出力ポートなどであり、鍵生成部134aと任意元生成部234bと演算部234cと制御部135とは、読み込まれた特別なプログラムを実行するCPUなどである。また、鍵生成部134aと任意元生成部234bと演算部234cと制御部135との少なくとも一部が集積回路によって構成されていてもよい。共通参照データ生成装置230は、制御部135の制御のもと各処理を実行し、各処理で得られたデータは記憶部231に格納され、格納されたデータは必要に応じて読み出されて各処理に利用される。
【0056】
<共通参照データ生成処理>
図11Bを用いて本形態の共通参照データ生成処理を説明する。
【0057】
まず、共通参照データ生成装置230(図9)の入力部232に、セキュリティパラメータkが入力される(ステップS2301)。セキュリティパラメータkは鍵生成部134aに入力される。鍵生成部134aは、上述した鍵生成アルゴリズムGenを作動させ、セキュリティパラメータkに対応する公開鍵・秘密鍵の組(pk, sk)を生成し、公開鍵pkを演算部234cと任意元生成部234bとに出力し、秘密鍵skを破棄する(ステップS2302)。次に、任意元生成部234bが、Encpkに生成元gm=(gm,1,...,gm,k)を入力してベクトル
vg(0)=(g(0,1) ,..., g(0,k)) …(11)
を生成して演算部234cに出力する。つまり、任意元生成部234bは、乱数rw∈Gr(w=1,...,k)を生成し、
g(0,w)=εpk(gm,w, rw)∈Gc …(12)
によって有限可換群 Gcの元g(0,w)(w=1,...,k)を求め、ベクトルvg(0)の各要素とする。なお、Encpkに生成元gm=(gm,1,...,gm,k)を入力してベクトルvg(0)を求めるのではなく、有限可換群 Gcの任意の元g(0,w)(w=1,...,k)をランダムに定めてベクトルvg(0)を求めてもよい。また、任意元生成部234bは、有限可換群 Gcの任意の元g(i,w)(i=1,...,n, w=1,...,k)をランダムに定め、vg(i,t)=(g(i,t,1),...,g(i,t,k))∈Gck (t=1,2)として、vg(1,1), vg(1,2),...,vg(n,1), vg(n,2)を生成して演算部234cに出力する。つまり、任意元生成部234bは、それぞれがk個の有限可換群 Gcの元を要素とするベクトルvg(0)=(g(0,1) ,..., g(0,k)), vg(1,1)=(g(1,1,1) ,..., g(1,1,k)), vg(1,2)=(g(1,2,1) ,..., g(1,2,k)), ..., vg(n,1)=(g(n,1,1) ,..., g(n,1,k)), vg(n,2)=(g(n,2,1) ,..., g(n,2,k))を選択して演算部234cに出力する(ステップS2303)。
【0058】
次に、演算部234cが、共通参照データ
crs=(Π, pk, L, vgm, vg(0), vg(1,1), vg(1,2) ,..., vg(n,1), vg(n,2)) …(13)
を生成して出力部233に出力する(ステップS2304)。出力部233は、共通参照データcrsを各コミットメント生成装置210−i及びコミットメント取得装置220−jに対して出力し、ネットワーク等経由で各コミットメント生成装置210−i及びコミットメント取得装置220−jに送る(ステップS2305)。
【0059】
<コミットメント(封じ手)処理>
図10を用いて本形態のコミットメント処理を説明する。
【0060】
コミットメント生成装置210−i(図7)の入力部212aに共通参照データcrsが入力され、記憶部211に格納される(ステップS2101)。また、コミットメント取得装置220−j(図8)の入力部222に共通参照データcrsが入力され、記憶部221に格納される(ステップS2201)。なお、ステップS2101,S2201はコミットメント処理の前に実行されていてもよく、また、既に共通参照データcrsが記憶部212に格納されている場合には、ステップS2101,S2201は省略可能である。また、コミットメント生成装置210−iを表すPiとコミットメント取得装置220−jを表すPjとが、コミットメント生成装置210−i(図7)の記憶部211とコミットメント取得装置220−j(図8)の記憶部221とに格納される。
【0061】
次に、コミットメント生成装置210−i(図7)の入力部212bに、正整数qw(w=1,...,k)を法とする剰余環 Z/qwZの元vs(w)∈Z/qwZを各要素とする秘密情報ベクトルvs=(vs(1),...,vs(k))∈Πw=1k Z/qwZが入力され、記憶部211に格納される(ステップS2102)。本形態では、秘密情報ベクトルvs=(vs(1),...,vs(k))∈Πw=1k Z/qwZがコミット対象である。
【0062】
次に、任意元生成部114cが、有限可換群 Gcの任意の元 X∈Gcをランダムに生成して記憶部211に格納する(ステップS2103)。また、任意元生成部214aが、剰余環 Z/qwZの任意の元a(1,w)∈Z/qwZを各要素とするベクトルva(1)=(a(1,1) ,..., a(1,k))∈Πw=1k Z/qwZと、剰余環 Z/qwZの任意の元a(2,w)∈Z/qwZを各要素とするベクトルva(2)=(a(2,1) ,..., a(2,k))∈Πw=1k Z/qwZとを生成して記憶部211に格納する(ステップS2104)。さらに、任意元生成部114bが、有限可換群 Grの任意の元 ra∈Grをランダムに生成して記憶部211に格納する(ステップS1105)。演算部214dは、記憶部211からva(1), va(2), ra, crsのvg(i,1), vg(i,2)を読み出し、有限可換群 Gcの元
A=vg(i,1)va(1)・vg(i,2)va(2)・εpk(1m, ra)∈Gc …(14)
を計算して記憶部211に格納する(ステップS2106)。ただし、va(t)=(a(t,1) ,..., a(t,k))に対してvg(i,t)va(t)=(g(i,t,1)a(t,1),..., g(i,t,k)a(t,k)) (t∈{1,2})である。
【0063】
記憶部211に格納されたA, Xは出力部213に送られ、出力部213はA, Xをコミットメント取得装置220−jに対して出力する(ステップS1107)。A, Xは、ネットワーク等を経由してコミットメント取得装置220−j(図8)の入力部222に入力され、記憶部221に格納される(ステップS1202)。
【0064】
次に、コミットメント取得装置220−jの任意元生成部224aが、剰余環 Z/qwZの任意の元b(1,w)∈Z/qwZを各要素とするベクトルvb=(b(1) ,..., b(k))∈Πw=1k Z/qwZを生成生成して記憶部221に格納する(ステップS2203)。記憶部221に格納されたvbは出力部223に入力され、出力部223がコミットメント生成装置210−iに対してvbを出力する(ステップS2204)。vbはネットワーク等を経由してコミットメント生成装置210−i(図7)の入力部212aに入力され、記憶部211に格納される(ステップS2108)。
【0065】
次に、演算部214eが、記憶部211からvbとcrsのvgm=(gm,1,...,gm,k)とを読み出し、
B=εpkw=1k(gm,w)b(w), 1r)∈Gc …(15)
を生成して記憶部211に格納する(ステップS2109)。
【0066】
次に、任意元生成部114fが、有限可換群 Grの任意の元 rc∈Grを生成して記憶部211に格納する(ステップS1210)。さらに、演算部214gが、記憶部211からva(1), va(2), B, X, vs, crsのvg(0)を読み出し、秘密情報ベクトルvsをコミット対象として、有限可換群 Gcの元
C=(vg(0)(va(1)+va(2))・B・X)vs・εpk(1m, rc)∈Gc …(16)
を生成して記憶部211に格納する(ステップS2111)。ただし、ベクトルα=(α(1) ,..., a(k))とベクトルβ=(β(1) ,...,β(k))とに対して、αβ=(α(1)β(1),..., a(k)β(k))である。
【0067】
次に、記憶部211に格納されたva(1), va(2), ra, Cが出力部213に入力され、出力部213は、(va(1), va(2), ra), Cをコミットメント取得装置220−jに対して出力する(ステップS2112)。なお、コミットメント生成装置210−iの記憶部211には、A, X, va(1), va(2), ra, vb, C, Pi, Pj,を含む履歴情報
sid=(Pi, Pj, A, X, va(1), va(2), ra, vb, C) …(17)
と(vs, rc)が保管される。
【0068】
出力部213から出力された(va(1), va(2), ra), Cは、ネットワーク等を経由して、コミットメント取得装置220−j(図8)の入力部222に入力され、記憶部221に格納される(ステップS2205)。次に、判定部224bが、記憶部221から、A, va(1), va(2), crsのvg(i,1)及びvg(i,2)を読み出し、
A=vg(i,1)va(1)・vg(i,2)va(2)・εpk(1m, ra)∈Gc …(18)
を満たすか否かを判定する(ステップS2206)。ここで、式(18)を満たすと判定されたならば、記憶部221に格納された履歴情報
sid'=(Pi, Pj, A, X, va(1), va(2), ra, vb, C) …(19)
を保管してコミットメント処理を正常終了する(ステップS2207)。一方、式(18)を満たさないと判定されたならば、記憶部221に格納された履歴情報を破棄してコミットメント処理をエラー終了する(ステップS2208)。
【0069】
<デコミットメント(開封)処理>
図11Aを用いて本形態のデコミットメント処理を説明する。
【0070】
まず、コミットメント生成装置210−i(図7)の記憶部211から出力部213に履歴情報sidと(vs, rc)とが入力され、出力部213が履歴情報sid'と(vs, rc)とをコミットメント取得装置220−jに対して出力する(ステップS2121)。履歴情報sidと(vs, rc)とは、ネットワーク等を経由してコミットメント取得装置220−j(図8)の入力部222に入力され、記憶部221に格納される(ステップS2211)。
【0071】
次に、判定部224cが、記憶部221から履歴情報sidとsid'とを読み出し、式(8)
sid=sid' …(20)
を満たすか否かを判定する(ステップS1212)。ここで、式(20)を満たさないと判定された場合、コミットメント生成装置210−iによるデコミットメントを拒絶して処理をエラー終了する(ステップS2215)。一方、式(20)を満たすと判定された場合、次に、演算部224dが、記憶部221からvb, crsのvgm=(gm,1,...,gm,k)を読み出して、
B=εpkw=1k(gm,w)b(w), 1r)∈Gc …(21)
を生成して判定部224eに入力する(ステップS2213)。判定部224eは、さらに記憶部221からva(1), va(2), X, vs, crsのvg(0)を読み出し、秘密情報 vsと元 rcとが
C=(vg(0)(va(1)+va(2))・B・X)vs・εpk(1m, rc)∈Gc …(22)
を満たすか否かを判定する(ステップS2214)。ここで、式(22)を満たさないと判定された場合、コミットメント生成装置210−iによるデコミットメントを拒絶して処理をエラー終了する(ステップS2215)。一方、式(22)を満たすと判定された場合、コミットメント生成装置210−iによるデコミットメントを承認することで秘密情報ベクトル vsを承認し、その旨の判定結果を出力して処理を正常終了する(ステップS2216)。
【0072】
〔変形例等〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、第1実施形態では、共通参照データ crsの例として式(1)のものを例示したが、pk, g(0), g(1,1), g(1,2) ,..., g(n,1), g(n,2)を含む他のデータを共通参照データ crsとしてもよい。例えば、pk, g(0), g(1,1), g(1,2) ,..., g(n,1), g(n,2)を含むのであれば、共通参照データ crsが式(1)の少なくとも一部の要素を含まなくてもよいし、式(1)以外の要素を含んでいてもよい。同様に、第2実施形態では、共通参照データ crsの例として式(13)のものを例示したが、pk, vg(0), vg(1,1), vg(1,2) ,..., vg(n,1), vg(n,2)を含む他のデータを共通参照データ crsとしてもよい。例えば、pk, vg(0), vg(1,1), vg(1,2) ,..., vg(n,1), vg(n,2)を含むのであれば、共通参照データ crsが式(13)の少なくとも一部の要素を含まなくてもよいし、式(13)以外の要素を含んでいてもよい。
【0073】
また、第1実施形態では、式(5)のようにA, X, a(1), a(2), ra, b, C, Pi, Pj,を含む履歴情報を例示したが、A, X, a(1), a(2), ra, b, Cを含むその他の情報を履歴情報としてもよい。同様に、第2実施形態では、式(17)のようにA, X, va(1), va(2), ra, vb, C, Pi, Pj,を含む履歴情報を例示したが、A, X, va(1), va(2), ra, vb, Cを含むその他の情報を履歴情報としてもよい。
【0074】
また、上記の各実施形態においてランダムに生成される情報が、予め定められた順序(選択順序は非公開)で選択される情報であってもよい。
【0075】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0076】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0077】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0078】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0079】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0080】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【0081】
1,2 コミットメントシステム
110−i,210−i コミットメント生成装置
120−i,220−i コミットメント取得装置
130,230 共通参照データ生成装置

【特許請求の範囲】
【請求項1】
n(n≧1)個のコミットメント生成装置 P(i) (i∈{1,...,n})とコミットメント取得装置 Pj (j≠i)とを有し、
前記コミットメント生成装置 Piは、
準同型公開鍵暗号方式の公開鍵 pkと有限可換群 Gcの元 g(0), g(1,1), g(1,2) ,..., g(n,1), g(n,2)∈Gcとを含む共通参照データ crsの入力を受け付ける第1入力部と、
秘密情報s∈{0,1,...,L}(L, qは0<L≦qを満たす整数)の入力を受け付ける第2入力部と、
有限可換群 Gcの任意の元 X∈Gcを生成する第1任意元生成部と、
正整数qを法とする剰余環 Z/qZの任意の元 a(1), a(2)∈Z/qZを生成する第2任意元生成部と、
有限可換群 Grの任意の元 ra∈Grを生成する第3任意元生成部と、
Gmを位数qの巡回群である有限可換群とし、前記有限可換群Gmの生成元をgmとし、前記有限可換群Gmの単位元を1mとし、前記準同型公開鍵暗号方式の暗号化関数を前記公開鍵 pkと平文M∈Gmと元 r∈Grに対してεpk(M, r)∈Gcを出力する準同型関数とした場合における、前記有限可換群 Gcの元 A=g(i,1)a(1)・g(i,2)a(2)・εpk(1m, ra)∈Gcを生成する第1演算部と、
前記元 A, Xを前記コミットメント取得装置 Pjに対して出力する第1出力部と、を有し、
前記コミットメント取得装置 Pjは、
前記共通参照データ crsの入力を受け付ける第3入力部と、
前記剰余環Z/qZの任意の元 b∈Z/qZを生成する第4任意元生成部と、
前記元 bを前記コミットメント生成装置 Piに対して出力する第2出力部と、を有し、
前記コミットメント生成装置 Piは、
前記有限可換群Grの単位元を1rとした場合における、B=εpk((gm)b, 1r)∈Gcを生成する第2演算部と、
前記有限可換群Grの任意の元 rc∈Grを生成する第5任意元生成部と、
前記秘密情報s∈{0,1,...,L}をコミット対象として、前記有限可換群 Gcの元 C=(g(0)(a(1)+a(2))・B・X)s・εpk(1m, rc)∈Gcを生成する第3演算部と、
前記元a(1), a(2), ra, Cを前記コミットメント取得装置 Pjに対して出力する第3出力部と、
前記元 A, X, a(1), a(2), ra, b, Cを含む第1履歴情報sidと前記秘密情報sと前記元 rcとを格納する第1記憶部と、をさらに有し、
前記コミットメント取得装置 Pjは、
前記元 A, X, a(1), a(2), ra, b, Cを含む第2履歴情報sid'を格納する第2記憶部をさらに有する、
ことを特徴とするコミットメントシステム。
【請求項2】
請求項1のコミットメントシステムであって、
前記コミットメント生成装置 Piは、
前記第1履歴情報sidと前記秘密情報 sと前記元 rcとを前記コミットメント取得装置 Pjに対して出力する第4出力部をさらに有し、
前記コミットメント取得装置 Pjは、
前記第1履歴情報sidと前記第2履歴情報sid'とが一致し、なおかつ、前記秘密情報 sと前記元 rcとがC=(g(0)(a(1)+a(2))・B・X)s・εpk(1m, rc)∈Gc, B=εpk((gm)b, 1r)∈Gcを満たす場合に、前記秘密情報 sを承認する判定部と、をさらに有する、
ことを特徴とするコミットメントシステム。
【請求項3】
n(n≧1)個のコミットメント生成装置 Pi (i∈{1,...,n})とコミットメント取得装置 Pj (j≠i)とを有し、
前記コミットメント生成装置 Piは、
準同型公開鍵暗号方式の公開鍵 pkと、それぞれがk個(kは正整数)の有限可換群 Gcの元を要素とするベクトルvg(0)=(g(0,1) ,..., g(0,k)), vg(1,1)=(g(1,1,1) ,..., g(1,1,k)), vg(1,2)=(g(1,2,1) ,..., g(1,2,k)), ..., vg(n,1)=(g(n,1,1) ,..., g(n,1,k)), vg(n,2)=(g(n,2,1) ,..., g(n,2,k))とを含む共通参照データ crsの入力を受け付ける第1入力部と、
正整数qw(w=1,...,k)を法とする剰余環 Z/qwZの元vs(w)∈Z/qwZを各要素とする秘密情報ベクトルvs=(vs(1),...,vs(k))∈Πw=1k Z/qwZの入力を受け付ける第2入力部と、
有限可換群 Gcの任意の元 X∈Gcを生成する第1任意元生成部と、
前記剰余環Z/qwZの任意の元a(1,w)∈Z/qwZを各要素とするベクトルva(1)=(a(1,1) ,..., a(1,k))∈Πw=1k Z/qwZと、前記剰余環 Z/qwZの任意の元a(2,w)∈Z/qwZを各要素とするベクトルva(2)=(a(2,1) ,..., a(2,k))∈Πw=1k Z/qwZとを生成する第2任意元生成部と、
有限可換群 Grの任意の元 ra∈Grを生成する第3任意元生成部と、
Gmを位数qwの巡回群Gm,wの直積Gm=Gm,1×...×Gm,kからなる有限可換群とし、前記巡回群Gm,wの生成元をgm,wとし、前記有限可換群Gmの単位元を1mとし、前記準同型公開鍵暗号方式の暗号化関数を前記公開鍵 pkと平文M∈Gmと元 r∈Grに対してεpk(M, r)∈Gcを出力する準同型関数とし、vg(i,t)va(t)=(g(i,t,1)a(t,1) ,..., g(i,t,k)a(t,k)) (t∈{1,2})とした場合における、前記有限可換群 Gcの元A=vg(i,1)va(1)・vg(i,2)va(2)・εpk(1m, ra)∈Gcを生成する第1演算部と、
前記元 A, Xを前記コミットメント取得装置 Pjに対して出力する第1出力部と、を有し、
前記コミットメント取得装置 Pjは、
前記共通参照データ crsの入力を受け付ける第3入力部と、
前記剰余環Z/qwZの任意の元b(1,w)∈Z/qwZを各要素とするベクトルvb=(b(1) ,..., b(k))∈Πw=1k Z/qwZを生成する第4任意元生成部と、
前記ベクトルvbを前記コミットメント生成装置 Piに対して出力する第2出力部と、を有し、
前記コミットメント生成装置 Piは、
前記有限可換群Grの単位元を1rとした場合における、B=εpkw=1k(gm,w)b(w), 1r)∈Gcを生成する第2演算部と、
前記有限可換群Grの任意の元 rc∈Grを生成する第5任意元生成部と、
前記秘密情報ベクトルvsをコミット対象として、前記有限可換群 Gcの元 C=(vg(0)(va(1)+va(2))・B・X)vs・εpk(1m, rc)∈Gcを生成する第3演算部と、
前記va(1), va(2), ra, Cを前記コミットメント取得装置 Pjに対して出力する第3出力部と、
前記A, X, va(1), va(2), ra, vb, Cを含む第1履歴情報sidと前記秘密情報ベクトルvsと前記元 rcとを格納する第1記憶部と、をさらに有し、
前記コミットメント取得装置 Pjは、
前記A, X, va(1), va(2), ra, vb, Cを含む第2履歴情報sid'を格納する第2記憶部をさらに有する、
ことを特徴とするコミットメントシステム。
【請求項4】
請求項3のコミットメントシステムであって、
前記コミットメント生成装置 Piは、
前記第1履歴情報sidと前記秘密情報ベクトルvsと前記元rcとを前記コミットメント取得装置 Pjに対して出力する第4出力部をさらに有し、
前記コミットメント取得装置 Pjは、
前記第1履歴情報sidと前記第2履歴情報sid'とが一致し、なおかつ、前記秘密情報ベクトルvsと前記元 rcとがC=(vg(0)(va(1)+va(2))・B・X)vs・εpk(1m, rc)∈Gc, B=εpkw=1k(gm,w)b(w), 1r)∈Gcを満たす場合に、前記秘密情報ベクトルvsを承認する判定部と、をさらに有する、
ことを特徴とするコミットメントシステム。
【請求項5】
準同型公開鍵暗号方式の公開鍵 pkと有限可換群 Gcの元 g(0), g(1,1), g(1,2) ,..., g(n,1), g(n,2)∈Gcとを含む共通参照データ crsの入力を受け付ける第1入力部と、
秘密情報s∈{0,1,...,L}(L, qは0<L≦qを満たす正整数)の入力を受け付ける第2入力部と、
有限可換群 Gcの任意の元 X∈Gcを生成する第1任意元生成部と、
前記正整数qを法とする剰余環 Z/qZの任意の元 a(1), a(2)∈Z/qZを生成する第2任意元生成部と、
有限可換群 Grの任意の元 ra∈Grを生成する第3任意元生成部と、
Gmを位数qの巡回群である有限可換群とし、前記有限可換群Gmの生成元をgmとし、前記有限可換群Gmの単位元を1mとし、前記準同型公開鍵暗号方式の暗号化関数を前記公開鍵 pkと平文M∈Gmと元 r∈Grに対してεpk(M, r)∈Gcを出力する準同型関数とした場合における、前記有限可換群 Gcの元 A=g(i,1)a(1)・g(i,2)a(2)・εpk(1m, ra)∈Gc(i∈{1,...,n}, n≧1)を生成する第1演算部と、
前記元 A, Xをコミットメント取得装置 Pjに対して出力する第1出力部と、
前記剰余環Z/qZの元b∈Z/qZの入力を受け付ける第3入力部と、
前記有限可換群Grの単位元を1rとした場合における、B=εpk((gm)b, 1r)∈Gcを生成する第2演算部と、
前記有限可換群Grの任意の元 rc∈Grを生成する第4任意元生成部と、
前記秘密情報s∈{0,1,...,L}をコミット対象として、前記有限可換群 Gcの元 C=(g(0)(a(1)+a(2))・B・X)s・εpk(1m, rc)∈Gcを生成する第3演算部と、
前記元a(1), a(2), ra, Cを前記コミットメント取得装置 Pjに対して出力する第2出力部と、
前記元 A, X, a(1), a(2), ra, b, Cを含む第1履歴情報sidと前記秘密情報sと前記元 rcとを格納する記憶部と、
を有するコミットメント生成装置。
【請求項6】
請求項5のコミットメント生成装置であって、
前記第1履歴情報 sidと前記秘密情報 sと前記元 rcとを前記コミットメント取得装置 Pjに対して出力する第3出力部をさらに有する、
ことを特徴とするコミットメントシステム。
【請求項7】
準同型公開鍵暗号方式の公開鍵 pkと有限可換群 Gcの元 g(0), g(1,1), g(1,2) ,..., g(n,1), g(n,2)∈Gcとを含む共通参照データ crsの入力を受け付ける第1入力部と、
前記有限可換群Gcの元 A, X∈Gcの入力を受け付ける第2入力部と、
正整数qを法とする剰余環 Z/qZの任意の元 b∈Z/qZを生成する第1任意元生成部と、
前記元 bを前記コミットメント生成装置 Piに対して出力する出力部と、
前記剰余環Z/qZの任意の元 a(1), a(2)∈Z/qZと、有限可換群 Grの元 ra∈Grと、前記有限可換群 Gcの元 C∈Gcとの入力を受け付ける第3入力部と、
前記元 A, X, a(1), a(2), ra, b, Cを含む第2履歴情報sid'を格納する記憶部と、
を有するコミットメント取得装置。
【請求項8】
請求項7のコミットメント取得装置であって、
第1履歴情報sidと、秘密情報 s∈{0,1,...,L}(L, qは0<L≦qを満たす整数)と、有限可換群 Grの元 rc∈Gとの入力を受け付ける第4入力部と、
前記第1履歴情報sidと前記第2履歴情報sid'とが一致し、なおかつ、前記秘密情報 sと前記元 rcとがC=(g(0)(a(1)+a(2))・B・X)s・εpk(1m, rc)∈Gc, B=εpk((gm)b, 1r)∈Gcを満たす場合に、前記秘密情報 sを承認する判定部と、
を有するコミットメント取得装置
【請求項9】
準同型公開鍵暗号方式の公開鍵 pkと、それぞれがk個(kは正整数)の有限可換群 Gcの元を要素とするベクトルvg(0)=(g(0,1) ,..., g(0,k)), vg(1,1)=(g(1,1,1) ,..., g(1,1,k)), vg(1,2)=(g(1,2,1) ,..., g(1,2,k)), ..., vg(n,1)=(g(n,1,1) ,..., g(n,1,k)), vg(n,2)=(g(n,2,1) ,..., g(n,2,k))とを含む共通参照データ crsの入力を受け付ける第1入力部と、
正整数qw(w=1,...,k)を法とする剰余環 Z/qwZの元vs(w)∈Z/qwZを各要素とする秘密情報ベクトルvs=(vs(1),...,vs(k))∈Πw=1k Z/qwZの入力を受け付ける第2入力部と、
有限可換群 Gcの任意の元 X∈Gcを生成する第1任意元生成部と、
前記剰余環Z/qwZの任意の元a(1,w)∈Z/qwZを各要素とするベクトルva(1)=(a(1,1) ,..., a(1,k))∈Πw=1k Z/qwZと、前記剰余環 Z/qwZの任意の元a(2,w)∈Z/qwZを各要素とするベクトルva(2)=(a(2,1) ,..., a(2,k))∈Πw=1k Z/qwZとを生成する第2任意元生成部と、
有限可換群 Grの任意の元 ra∈Grを生成する第3任意元生成部と、
Gmを位数qwの巡回群Gm,wの直積Gm=Gm,1×...×Gm,kからなる有限可換群とし、前記巡回群Gm,wの生成元をgm,wとし、前記有限可換群Gmの単位元を1mとし、前記準同型公開鍵暗号方式の暗号化関数を前記公開鍵 pkと平文M∈Gmと元 r∈Grに対してεpk(M, r)∈Gcを出力する準同型関数とし、vg(i,t)va(t)=(g(i,t,1)a(t,1) ,..., g(i,t,k)a(t,k)) (t∈{1,2}, i∈{1,...,n}, n≧1)とした場合における、前記有限可換群 Gcの元A=vg(i,1)va(1)・vg(i,2)va(2)・εpk(1m, ra)∈Gcを生成する第1演算部と、
前記元 A, Xを前記コミットメント取得装置 Pjに対して出力する第1出力部と、
前記剰余環Z/qwZの任意の元b(1,w)∈Z/qwZを各要素とするベクトルvb=(b(1) ,..., b(k))∈Πw=1k Z/qwZの入力を受け付ける第3入力部と、
前記有限可換群Grの単位元を1rとした場合における、B=εpkw=1k(gm,w)b(w), 1r)∈Gcを生成する第2演算部と、
前記有限可換群Grの任意の元 rc∈Grを生成する第4任意元生成部と、
前記秘密情報ベクトルvsをコミット対象として、前記有限可換群 Gcの元 C=(vg(0)(va(1)+va(2))・B・X)vs・εpk(1m, rc)∈Gcを生成する第3演算部と、
前記va(1), va(2), ra, Cを前記コミットメント取得装置 Pjに対して出力する第2出力部と、
前記A, X, va(1), va(2), ra, vb, Cを含む第1履歴情報sidと前記秘密情報ベクトルvsと前記元 rcとを格納する記憶部と、
を有するコミットメント生成装置。
【請求項10】
請求項9のコミットメント生成装置であって、
前記第1履歴情報sidと前記秘密情報ベクトルvsと前記元rcとを前記コミットメント取得装置 Pjに対して出力する第3出力部をさらに有する、
ことを特徴とするコミットメント生成装置。
【請求項11】
準同型公開鍵暗号方式の公開鍵 pkと、それぞれがk個(kは正整数)の有限可換群 Gcの元を要素とするベクトルvg(0)=(g(0,1) ,..., g(0,k)), vg(1,1)=(g(1,1,1) ,..., g(1,1,k)), vg(1,2)=(g(1,2,1) ,..., g(1,2,k)), ..., vg(n,1)=(g(n,1,1) ,..., g(n,1,k)), vg(n,2)=(g(n,2,1) ,..., g(n,2,k))とを含む共通参照データ crsの入力を受け付ける第1入力部と、
前記有限可換群Gcの元A, X∈Gcの入力を受け付ける第2入力部と、
正整数qw(w=1,...,k)を法とする剰余環 Z/qwZの任意の元b(1,w)∈Z/qwZを各要素とするベクトルvb=(b(1) ,..., b(k))∈Πw=1k Z/qwZを生成する任意元生成部と、
前記ベクトルvbをコミットメント生成装置 Piに対して出力する第1出力部と、
前記剰余環Z/qwZの元a(1,w)∈Z/qwZを各要素とするベクトルva(1), va(2)∈Πw=1k Z/qwZと、有限可換群 Grの元 ra∈Grと、前記有限可換群 Gcの元 Cとの入力を受け付ける第3入力部と、
前記A, X, va(1), va(2), ra, vb, Cを含む第2履歴情報sid'を格納する記憶部と、
を有するコミットメント取得装置。
【請求項12】
請求項11のコミットメント取得装置であって、
第1履歴情報sidと、正整数qw (w=1,...,k)を法とする剰余環 Z/qwZの元vs(w)∈Z/qwZを各要素とする秘密情報ベクトルvs=(vs(1),...,vs(k))∈Πw=1k Z/qwZと、有限可換群 Grの任意の元 rc∈Grとの入力を受け付ける第4入力部と、
前記第1履歴情報sidと前記第2履歴情報sid'とが一致し、なおかつ、前記秘密情報ベクトルvsと前記元 rcとがC=(vg(0)(va(1)+va(2))・B・X)vs・εpk(1m, rc)∈Gc, B=εpkw=1k(gm,w)b(w), 1r)∈Gcを満たす場合に、前記秘密情報ベクトルvsを承認する判定部と、
を有するコミットメント取得装置。
【請求項13】
請求項5、6、9又は10の何れかに記載のコミットメント生成装置としての処理を実行するコミットメント生成方法。
【請求項14】
請求項7、8、11又は12の何れかに記載のコミットメント取得装置としての処理を実行するコミットメント取得方法。
【請求項15】
請求項5、6、9又は10の何れかに記載のコミットメント生成装置としてコンピュータを機能させるためのプログラム。
【請求項16】
請求項7、8、11又は12の何れかに記載のコミットメント取得装置としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−253148(P2011−253148A)
【公開日】平成23年12月15日(2011.12.15)
【国際特許分類】
【出願番号】特願2010−128692(P2010−128692)
【出願日】平成22年6月4日(2010.6.4)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】