(57)【要約】【課題】効率がよく、弱い仮定に基づいて安全性を証明でき、CCA安全性を満たすコミットメント技術を提供する。【解決手段】第一コミット送信部２２はコミットメント方式CCACom1:1により第一コミットメントを生成する。秘密分散部１３は値νを秘密分散してシェアを生成する。第二コミット送信部１４はcj:=Com(sj,dj)を計算して第二コミットメントを生成する。第三コミット送信部１５はコミットメント方式CEComにより第三コミットメントを生成する。第一オープン送信部２５は第一コミットメントをオープンする。第三オープン送信部１７は第三コミットメントをすべてオープンする。コミット検証部２７はcj=Com(sj,dj)が成り立つことを確認する。値開示部３１は値νを受信者装置２へ送信する。第二オープン送信部３２は第二コミットメントをオープンする。シェア設定部４２はシェアを生成する。値検証部４３は値νのオープンを受理するか否かを判定する。【選択図】図１
2016006921.tif 000002
【特許請求の範囲】
【請求項１】
nを正の整数とし、rccaを1-1 CCA安全性を満たすコミットメント方式CCACom1:1のラウンド数とし、rceをover-extractionが起きない並行抜き出し可能コミットメント方式CEComのラウンド数とし、ηを2*rcca+rce+1以上の整数とし、
受信者装置が、サイズnの乱数集合Γ⊂{1,…,10n}を選択し、上記コミットメント方式CCACom1:1により、上記集合Γにコミットして第一コミットメントを生成する第一コミット送信ステップと、
送信者装置が、値ν∈{0,1}nに関する(n+1)-out-of-10n秘密分散を計算してシェアs=(s1,…,s10n)を生成する秘密分散ステップと、
上記送信者装置が、各j∈{1,…,10n}について、乱数djを選び、統計的束縛性を満たす２ラウンドコミットメント方式Comを用いてcj:=Com(sj,dj)を計算して、第二コミットメント(c1,…,c10n)を生成する第二コミット送信ステップと、
上記送信者装置が、各i∈[η]について順番に、各j∈{1,…,10n}について並列に、上記コミットメント方式CEComにより(sj,dj)にコミットして、η行10n列の第三コミットメントを生成する第三コミット送信ステップと、
上記受信者装置が、上記第一コミットメントをオープンする第一オープン送信ステップと、
上記送信者装置が、各j∈Γについて、j番目の列におけるη行の第三コミットメントをすべてオープンする第三オープン送信ステップと、
上記受信者装置が、各j∈Γについて、cj=Com(sj,dj)が成り立つことを確認するコミット検証ステップと、
上記送信者装置が、上記値νを上記受信者装置へ送信する値開示ステップと、
上記送信者装置が、上記第二コミットメント(c1,…,c10n)をオープンする第二オープン送信ステップと、
上記受信者装置が、各j∈{1,…,10n}について、cj=Com(sj,dj)が成り立つときのみs’jをsjに設定することで、シェアs’=(s’1,…,s’10n)を生成するシェア設定ステップと、
上記受信者装置が、上記シェアs’=(s’1,…,s’10n)から符号語w=(w1,…,w10n)を計算し、上記シェアs’と上記符号語wを用いて上記値νのオープンを受理するか否かを判定する値検証ステップと、
を含むコミットメント方法。
【請求項２】
送信者装置と受信者装置とを含むコミットメントシステムであって、
nを正の整数とし、rccaを1-1 CCA安全性を満たすコミットメント方式CCACom1:1のラウンド数とし、rceをover-extractionが起きない並行抜き出し可能コミットメント方式CEComのラウンド数とし、ηを2*rcca+rce+1以上の整数とし、
上記送信者装置は、
値ν∈{0,1}nに関する(n+1)-out-of-10n秘密分散を計算してシェアs=(s1,…,s10n)を生成する秘密分散部と、
各j∈{1,…,10n}について、乱数djを選び、統計的束縛性を満たす２ラウンドコミットメント方式Comを用いてcj:=Com(sj,dj)を計算して、第二コミットメント(c1,…,c10n)を生成する第二コミット送信部と、
各i∈[η]について順番に、各j∈{1,…,10n}について並列に、上記コミットメント方式CEComにより(sj,dj)にコミットして、η行10n列の第三コミットメントを生成する第三コミット送信部と、
Γを{1,…,10n}から選択したサイズnの乱数集合とし、各j∈Γについて、j番目の列におけるη行の第三コミットメントをすべてオープンする第三オープン送信部と、
上記値νを上記受信者装置へ送信する値開示部と、
上記第二コミットメント(c1,…,c10n)をオープンする第二オープン送信部と、
を含み、
上記受信者装置は、
上記乱数集合Γを選択し、上記コミットメント方式CCACom1:1により、上記集合Γにコミットして第一コミットメントを生成する第一コミット送信部と、
上記第一コミットメントをオープンする第一オープン送信部と、
各j∈Γについて、cj=Com(sj,dj)が成り立つことを確認するコミット検証部と、
各j∈{1,…,10n}について、cj=Com(sj,dj)が成り立つときのみs’jをsjに設定することで、シェアs’=(s’1,…,s’10n)を生成するシェア設定部と、
上記シェアs’=(s’1,…,s’10n)から符号語w=(w1,…,w10n)を計算し、上記シェアs’と上記符号語wを用いて上記値νのオープンを受理するか否かを判定する値検証部と、
を含むコミットメントシステム。
【請求項３】
nを正の整数とし、rccaを1-1 CCA安全性を満たすコミットメント方式CCACom1:1のラウンド数とし、rceをover-extractionが起きない並行抜き出し可能コミットメント方式CEComのラウンド数とし、ηを2*rcca+rce+1以上の整数とし、
値ν∈{0,1}nに関する(n+1)-out-of-10n秘密分散を計算してシェアs=(s1,…,s10n)を生成する秘密分散部と、
各j∈{1,…,10n}について、乱数djを選び、統計的束縛性を満たす２ラウンドコミットメント方式Comを用いてcj:=Com(sj,dj)を計算して、第二コミットメント(c1,…,c10n)を生成する第二コミット送信部と、
各i∈[η]について順番に、各j∈{1,…,10n}について並列に、上記コミットメント方式CEComにより(sj,dj)にコミットして、η行10n列の第三コミットメントを生成する第三コミット送信部と、
Γを{1,…,10n}から選択したサイズnの乱数集合とし、各j∈Γについて、j番目の列におけるη行の第三コミットメントをすべてオープンする第三オープン送信部と、
上記値νを受信者装置へ送信する値開示部と、
上記第二コミットメント(c1,…,c10n)をオープンする第二オープン送信部と、
を含む送信者装置。
【請求項４】
nを正の整数とし、s=(s1,…,s10n)を値ν∈{0,1}nに関する(n+1)-out-of-10n秘密分散のシェアとし、(d1,…,d10n)を乱数列とし、(c1,…,c10n)を統計的束縛性を満たす２ラウンドコミットメント方式Comを用いてcj:=Com(sj,dj)を計算して得た第二コミットメントとし、
サイズnの乱数集合Γ⊂{1,…,10n}を選択し、1-1 CCA安全性を満たすコミットメント方式CCACom1:1により、上記集合Γにコミットして第一コミットメントを生成する第一コミット送信部と、
上記第一コミットメントをオープンする第一オープン送信部と、
各j∈Γについて、cj=Com(sj,dj)が成り立つことを確認するコミット検証部と、
各j∈{1,…,10n}について、cj=Com(sj,dj)が成り立つときのみs’jをsjに設定することで、シェアs’=(s’1,…,s’10n)を生成するシェア設定部と、
上記シェアs’=(s’1,…,s’10n)から符号語w=(w1,…,w10n)を計算し、上記シェアs’と上記符号語wを用いて上記値νのオープンを受理するか否かを判定する値検証部と、
を含む受信者装置。
【請求項５】
請求項３に記載の送信者装置もしくは請求項４に記載の受信者装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の参加者が相互に通信することでタスク実行を行う暗号技術に関し、特に、選択コミットメント攻撃に対する安全性を満たすコミットメント技術に関する。
【背景技術】
【０００２】
コミットメント方式の選択コミットメント攻撃（CCA: Chosen Commitment Attack）に対する安全性（CCA安全性）は以下のように定義される。
【０００３】
送信者と受信者が共通入力としてタグと呼ばれる文字列をもつコミットメント方式Πに対する以下のような選択コミットメント攻撃を考える。
・攻撃者はタグとしてtagを選び、タグがtagであるコミットメントを受け取る。
・攻撃者は同時に、タグがtag以外であるコミットメントの秘匿性を破るオラクルにアクセスする。
【０００４】
この選択コミットメント攻撃において、タグがtagであるコミットメントの秘匿性を攻撃者が破ることができないならば、コミットメント方式ΠはCCA安全性を満たす、という。
【０００５】
コミットメント方式のブラックボックス構成とは、構成要素をブラックボックスとしてしか用いないコミットメント方式のことである。非ブラックボックス構成と比べると、ブラックボックス構成はゼロ知識証明を用いないため効率が良いという特徴を持つ。
【０００６】
CCA安全性を満たすコミットメント方式のブラックボックス構成に関する従来方式は、非特許文献１又は非特許文献２で示されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Susumu Kiyoshima, Yoshifumi Manabe, and Tatsuaki Okamato, “Constant-round black-box construction of composable multi-party computation protocol”, TCC 2014, pp. 343-367, 2014.
【非特許文献２】Huijia Lin and Rafael Pass, “Black-box constructions of composable protocols without set-up”, CRYPTO 2012, pp. 461-478, 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、非特許文献２の方式はラウンド数がO(nε)（εは任意の定数、nはセキュリティパラメータ）であるため効率が悪い。また、非特許文献１の方式は安全性証明において準指数時間の計算量仮定という強い仮定を用いているため、仮定が成り立たず安全性が保証されない可能性がある。
【０００９】
この発明の目的は、効率がよく、弱い仮定に基づいて安全性を証明でき、CCA安全性を満たすコミットメント技術を提供することである。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、この発明のコミットメント方法は、nを正の整数とし、rccaを1-1 CCA安全性を満たすコミットメント方式CCACom1:1のラウンド数とし、rceをover-extractionが起きない並行抜き出し可能コミットメント方式CEComのラウンド数とし、ηを2*rcca+rce+1以上の整数とし、受信者装置が、サイズnの乱数集合Γ⊂{1,…,10n}を選択し、コミットメント方式CCACom1:1により、集合Γにコミットして第一コミットメントを生成する第一コミットステップと、送信者装置が、値ν∈{0,1}nに関する(n+1)-out-of-10n秘密分散を計算してシェアs=(s1,…,s10n)を生成する秘密分散ステップと、送信者装置が、各j∈{1,…,10n}について、乱数djを選び、統計的束縛性を満たす２ラウンドコミットメント方式Comを用いてcj:=Com(sj,dj)を計算して、第二コミットメント(c1,…,c10n)を生成する第二コミットステップと、送信者装置が、各i∈[η]について順番に、各j∈{1,…,10n}について並列に、コミットメント方式CEComにより(sj,dj)にコミットして、η行10n列の第三コミットメントを生成する第三コミットステップと、受信者装置が、第一コミットメントをオープンする第一オープンステップと、送信者装置が、各j∈Γについて、j番目の列におけるη行の第三コミットメントをすべてオープンする第三オープンステップと、受信者装置が、各j∈Γについて、cj=Com(sj,dj)が成り立つことを確認するコミット検証ステップと、送信者装置が、値νを受信者装置へ送信する値開示ステップと、送信者装置が、第二コミットメント(c1,…,c10n)をオープンする第二オープンステップと、受信者装置が、各j∈{1,…,10n}について、cj=Com(sj,dj)が成り立つときのみs’jをsjに設定することで、シェアs’=(s’1,…,s’10n)を生成するシェア設定ステップと、受信者装置が、シェアs’=(s’1,…,s’10n)から符号語w=(w1,…,w10n)を計算し、シェアs’と符号語wを用いて値νのオープンを受理するか否かを判定する値検証ステップと、を含む。
【発明の効果】
【００１１】
この発明のコミットメント技術は、多項式時間仮定に基づき安全性証明を行えるため、従来は仮定が成り立たず安全性が証明できなかった場合であっても安全性を証明できる可能性が高い。また、ラウンド数がO(nε)からO~(log2n)に削減されており効率が良い。
【図面の簡単な説明】
【００１２】
【図１】図１は、コミットメントシステムの機能構成を例示する図である。
【図２】図２は、コミットフェーズの処理フローを例示する図である。
【図３】図３は、オープンフェーズの処理フローを例示する図である。
【発明を実施するための形態】
【００１３】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
［用語の説明］
以下、この発明で用いる用語を説明する。
【００１４】
＜秘密分散法＞
この発明では、特に、Shamirによる秘密分散法を用いる。Shamirの秘密分散についての詳細は「A. Shamir, “How to share a secret”, Communications of the ACM, vol. 22(11), pp. 612-613, 1979.（参考文献１）」を参照されたい。
Shamirの秘密分散では、シェアs=(s1,…,s10n)がリード・ソロモン符号の符号語となっているため、一部が誤っているシェアs’=(s’1,…,s’10n)が正しい符号語w=(w1,…,w10n)と0.55-closeならば（つまり、|{i:s’i=wi}|≧0.55*10nならば）、シェアs’から符号語wを計算することができる。この性質は、この発明の安全性証明で必要となる。
【００１５】
＜統計的束縛性を満たす２ラウンドのコミットメント方式＞
この発明では、統計的束縛性を満たす２ラウンドのコミットメント方式として、例えば、Naorによるコミットメント方式を用いる。Naorによるコミットメント方式についての詳細は、「Moni Naor, “Bit commitment using pseudorandomness”, Journal of Cryptology, vol. 4(2), pp. 151-158, 1991.（参考文献２）」を参照されたい。
以下の説明では、参考文献２に記載された統計的束縛性を満たす２ラウンドのコミットメント方式をComと表記する。ただし、コミットメント方式Comは、必ずしも参考文献２に記載の方式に限定されず、統計的束縛性を満たす２ラウンドのコミットメント方式であれば他の方式を用いて構成してもよい。
【００１６】
＜並行抜き出し可能コミットメント方式＞
この発明では、並行抜き出し可能コミットメント方式として、例えば、「清島奨、“On concurrently extractable commitment schemes”、暗号と情報セキュリティシンポジウム（SCIS2014）、2014年（参考文献３）」に記載のコミットメント方式を用いる。参考文献３の方式は、over-extractionという現象が起きないという性質を持っている。この性質は、この発明の安全性証明で必要となる。
以下の説明では、参考文献３に記載されたover-extractionが起きない並行抜き出し可能コミットメント方式をCEComと表記する。
【００１７】
＜1-1 CCA安全性を満たすコミットメント方式＞
この発明では、非特許文献２に記載のCCA安全性を満たすコミットメント方式のパラメータを変更し、1-1 CCA安全性を満たすようにしたものを用いる。1-1 CCA安全性とは、上述したような選択コミットメント攻撃において、オラクルがコミットメントの秘匿性を一度しか破らないように制限した場合にCCA安全性を満たすことをいう。具体的には、非特許文献２のFig.2に記載された“The robust CCA-secure protocol”において、η(n)=nεとすべきところ、η(n)=1に設定する。1-1 CCA安全性を満たすコミットメント方式においても送信者と受信者は共通入力としてタグを持つ。
以下の説明では、1-1 CCA安全性を満たすコミットメント方式をCCACom1:1と表記する。ただし、コミットメント方式CCACom1:1は、必ずしも非特許文献２の方式を上記のように変更した方式に限定されず、1-1 CCA安全性を満たすコミットメント方式であれば他の方式を用いて構成してもよい。
【００１８】
［発明のポイント］
この発明では、非特許文献１に記載のCCA安全性を満たすコミットメント方式において使われていた並行抜き出し可能コミットメント方式を、over-extractionが起きない並行抜き出し可能コミットメント方式に置き換えた上で、並行抜き出し可能コミットメントの行数を増やすことで多項式時間仮定に基づき安全性証明を行えるように構成する。
【００１９】
非特許文献１の方式において使われていた並行抜き出し可能コミットメント方式ではover-extractionが起きるため、安全性証明では並行抜き出し可能コミットメント方式でコミットされた値を総当り計算で抜き出す必要があり、そのため準指数時間の計算量仮定が必要となっていた。この発明の方式ではover-extractionが起きない並行抜き出し可能コミットメント方式を用いているため、総当り計算でコミットされた値を抜き出す必要はなくなっている。並行抜き出し可能コミットメント方式の行数を増やすのも同様の総当り計算を避けるためである。この２つの変更により多項式時間仮定で安全性証明を行うことが可能になっている。
【００２０】
［実施形態］
実施形態のコミットメントシステムは、図１に示すように、送信者装置１と受信者装置２を含む。送信者装置１と受信者装置２は図示しない通信網などにより相互に通信可能なように構成される。通信網は、例えばインターネット、WAN（Wide Area Network）、LAN（Local Area Network）、公衆交換電話網、専用データ回線などで構成することができる。送信者装置１と受信者装置２との通信は暗号化等により安全性が確保された通信路であることが望ましい。
【００２１】
送信者装置１は、図１に示すように、入力部１１、第一コミット受信部１２、秘密分散部１３、第二コミット送信部１４、第三コミット送信部１５、第一オープン受信部１６、第三オープン送信部１７、値開示部３１及び第二オープン送信部３２を例えば含む。
【００２２】
送信者装置１は、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。送信者装置１は、例えば、中央演算処理装置の制御のもとで各処理を実行する。送信者装置１に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。また、送信者装置１の各処理部の少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
【００２３】
受信者装置２は、図１に示すように、入力部２１、第一コミット送信部２２、第二コミット受信部２３、第三コミット受信部２４、第一オープン送信部２５、第三オープン受信部２６、コミット検証部２７、第二オープン受信部４１、シェア設定部４２及び値検証部４３を例えば含む。
【００２４】
受信者装置２は、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。受信者装置２は、例えば、中央演算処理装置の制御のもとで各処理を実行する。受信者装置２に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて読み出されて他の処理に利用される。また、受信者装置２の各処理部の少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
【００２５】
図２を参照して、実施形態のコミットメント方法におけるコミットフェーズの処理フローを説明する。
【００２６】
ステップＳ１１において、送信者装置１の入力部１１へ、共通入力としてセキュリティパラメータ1nとタグtag∈{0,1}nが入力され、秘密入力としてコミットする値ν∈{0,1}nが入力される。値νは、秘密分散部１３へ送られる。
【００２７】
ステップＳ２１において、受信者装置２の入力部２１へ、共通入力としてセキュリティパラメータ1nとタグtag∈{0,1}nが入力される。
【００２８】
ステップＳ２２において、受信者装置２の第一コミット送信部２２は、送信者装置１の第一コミット受信部１２と連携して、サイズnのランダムな集合Γ⊂{1,…,10n}を選択し、1-1 CCA安全コミットメント方式CCACom1:1により、タグtagを用いて、集合Γにコミットする。以降の説明では、CCACom1:1の生成するコミットメントを第一コミットメントと呼ぶ。第一コミットメントは、送信者装置１へ送信される。
【００２９】
ステップＳ１３において、送信者装置１の秘密分散部１３は、値νに関する(n+1)-out-of-10n秘密分散を計算し、シェアs=(s1,…,s10n)を生成する。(n+1)-out-of-10n秘密分散とは、10n個のシェアのうち(n+1)個以上のシェアがあれば元の値が復元可能であり、(n+1)個未満のシェアからは元の値の情報が一切得られないような秘密分散方式である。シェアs=(s1,…,s10n)は、第二コミット送信部１４及び第三コミット送信部１５へ送られる。
【００３０】
ステップＳ１４において、送信者装置１の第二コミット送信部１４は、受信者装置２の第二コミット受信部２３と連携して、各j∈{1,…,10n}について、ランダムな値dj∈{0,1}poly(n)を選び、乱数djを用いて統計的束縛性を満たす２ラウンドコミットメント方式Comによりシェアsjにコミットする。具体的には、cj:=Com(sj,dj)を計算する。ここで、poly(n)とは統計的束縛性を満たす２ラウンドのコミットメント方式Comにおいて用いられる乱数のサイズを求める関数である。以降の説明では、Comの生成するコミットメント(c1,…,c10n)を第二コミットメントと呼ぶ。第二コミットメント(c1,…,c10n)は、受信者装置２へ送信される。乱数(d1,…,d10n)は、第三コミット送信部１５へ送られる。
【００３１】
ステップＳ１５において、送信者装置１の第三コミット送信部１５は、受信者装置２の第三コミット受信部２４と連携して、rccaをCCACom1:1のラウンド数とし、rceをCEComのラウンド数とし、η:=2*rcca+rce+1として、各i∈[η]について順番に、各j∈{1,…,10n}について並列に、並行抜き出し可能コミットメント方式CEComにより(sj,dj)にコミットする。ここで、i番目の並行抜き出し可能コミットメントをi番目の行と呼び、(sj,dj)へのコミットメントすべてをj番目の列と呼ぶ。以降の説明では、CEComの生成するη行×10n列のコミットメントを第三コミットメントと呼ぶ。第三コミットメントは、受信者装置２へ送信される。
【００３２】
ステップＳ２５において、受信者装置２の第一オープン送信部２５は、送信者装置１の第一オープン受信部１６と連携して、第一コミットメントを集合Γへとオープンする。これにより、送信者装置１は集合Γを利用可能となる。
【００３３】
ステップＳ１７において、送信者装置１の第三オープン送信部１７は、受信者装置２の第三オープン受信部２６と連携して、各j∈Γについて、j番目の列におけるすべての第三コミットメントを(sj,dj)へとオープンする。これにより、受信者装置２はη行×n列の(sj,dj)（j∈Γ）を利用可能となる。
【００３４】
ステップＳ２７において、受信者装置２のコミット検証部２７は、各j∈Γについて、j番目の列におけるη行の(sj,dj)がすべて等しいことを検証し、cj=Com(sj,dj)が成り立つことを確認する。
【００３５】
図３を参照して、実施形態のコミットメント方法におけるオープンフェーズの処理フローを説明する。
【００３６】
ステップＳ３１において、送信者装置１の値開示部３１は、コミットフェーズでコミットした値ν∈{0,1}nを受信者装置２へ送信する。受信者装置２が受信した値νは、値検証部２４へ送られる。
【００３７】
ステップＳ３２において、送信者装置１の第二オープン送信部３２は、受信者装置２の第二オープン受信部４１と連携して、第二コミットメント(c1,…,c10n)をシェアs=(s1,…,s10n)へとオープンする。これにより、受信者装置２は10n個のシェアs=(s1,…,s10n)を利用可能となる。シェアs=(s1,…,s10n)は、シェア設定部４２へ送られる。
【００３８】
ステップＳ４２において、受信者装置２のシェア設定部４２は、各j∈{1,…,10n}について、cj=Com(sj,dj)が成り立つか否かを検証する。cj=Com(sj,dj)が成り立つときは、s’j:=sjに設定し、そうでなければs’j:=⊥に設定する。これにより、シェアs’=(s’1,…,s’10n)を設定する。シェアs’=(s’1,…,s’10n)は、値検証部４３へ送られる。
【００３９】
ステップＳ４３において、受信者装置２の値検証部４３は、シェアs’=(s’1,…,s’10n)から符号語w=(w1,…,w10n)を計算し、シェアs’と符号語wを用いてV(s’)=νが成り立つか否かを検証し、成り立つ場合には値νのオープンを受理する。ここで、任意の値t=(t1,…,t10n)に対し、V(t)は以下のように定義される。ある正しい符号語w=(w1,…,w10n)にt=(t1,…,t10n)が0.9-close（つまり、|{i:ti=wi}|≧0.9*10n）であり、かつすべてのj∈Γで符号語wjが値tjと一致するならばV(t)は符号語wから復号された値とし、そうでなければV(t)=⊥とする。
【００４０】
［ラウンド数］
実施形態のコミットメント技術におけるラウンド数について説明する。参考文献２に記載された統計的束縛性を満たす２ラウンドのコミットメント方式Comのラウンド数は、O(1)である。参考文献３に記載されたover-extractionが起きない並行抜き出し可能コミットメント方式CEComのラウンド数は、O~(log n)である。上述のように構成した1-1 CCA安全コミットメント方式CCACom1:1のラウンド数は、O(log n)である。したがって、ステップＳ１３、Ｓ２４は、O(1)ラウンドであり、ステップＳ２２は、O(log n)ラウンドであり、ステップＳ１４は、η・O~(log n)=O~(log2n)ラウンドであるから、全体のラウンド数は、O~(log2n)ラウンドである。
【００４１】
［効果］
このように、この発明のコミットメント技術は、準指数時間の計算量仮定よりも弱い多項式時間の計算量仮定に基づき安全性証明を行えるため、従来は仮定が成り立たず安全性が証明できなかった場合であっても安全性を証明できる可能性が高い。また、ラウンド数が従来のO(nε)からO~(log2n)に削減されており、効率が良い。
【００４２】
また、複数の参加者が持つ秘密情報に関して計算を行うマルチパーティ計算方式において、CCA安全性を満たすコミットメント方式を構成要素として用いることができるため、この発明のコミットメント技術を用いることで、マルチパーティ計算方式の効率改善・仮定削減を行うことができる。
【００４３】
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００４４】
［プログラム、記録媒体］
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００４５】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００４６】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００４７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００４８】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００４９】
１  送信者装置
２  受信者装置
１１  入力部
１２  第一コミット受信部
１３  秘密分散部
１４  第二コミット送信部
１５  第三コミット送信部
１６  第一オープン受信部
１７  第三オープン送信部
２１  入力部
２２  第一コミット送信部
２３  第二コミット受信部
２４  第三コミット受信部
２５  第一オープン送信部
２６  第三オープン受信部
２７  コミット検証部
３１  値開示部
３２  第二オープン送信部
４１  第二オープン受信部
４２  シェア設定部
４３  値検証部
【図１】
2016006921.tif 000003
【図２】
2016006921.tif 000004
【図３】
2016006921.tif 000005