(57)【特許請求の範囲】
【請求項１】
補正後の複数の暗号文と、公開鍵と、復号の秘密鍵と、乱数と、が入力され、前記複数の暗号文を前記公開鍵によりそれぞれ暗号化し、それらの順番を入れ替え、前記秘密鍵によりそれぞれ復号した結果である複数の復号文を生成し、前記暗号化と順番の入れ替えと復号とに対する正当性をシャッフル復号検証装置に対して証明するシャッフル復号正当性証明装置において、
前記シャッフル復号検証装置と通信するデータに、前記複数の暗号文を前記公開鍵により暗号化し、その順番を入れ替えた暗号文である生成には乱数が使用されるシャッフル済み暗号文のコミットメントを含めることを特徴とするシャッフル復号正当性証明装置。
【請求項２】
複数の暗号文と、複数の復号文と、公開鍵と、乱数とが入力され、前記複数の復号文が、前記暗号文を暗号化し、さらに順番を入れ替えた後に前記公開鍵に対応する秘密鍵により復号されたデータであることのシャッフル復号正当性証明装置による証明の正当性を検証するシャッフル復号検証装置において、
前記シャッフル復号正当性証明装置と通信するデータに、前記複数の暗号文を前記公開鍵により暗号化し、その順番を入れ替えた暗号文である生成には乱数が使用されるシャッフル済み暗号文のコミットメントを含めることを特徴とするシャッフル復号検証装置。
【請求項３】
請求項１に記載のシャッフル復号正当性証明装置において、
前記複数の暗号文と前記公開鍵と乱数とが入力され、前記複数の暗号文を前記公開鍵によりそれぞれ暗号化し、その結果である複数の暗号文の順番を入れ替える処理を行い、その結果である複数のシャッフル済み暗号文を出力するシャッフル装置と、
前記複数のシャッフル済み暗号文と前記秘密鍵とが入力され、前記複数のシャッフル済み暗号文を前記秘密鍵によりそれぞれ復号し、その結果である複数の復号文を出力する復号装置と、
前記複数のシャッフル済み暗号文と乱数とが入力され、前記複数のシャッフル済み暗号文のコミットメントを生成し、その結果である生成には乱数が使用されるシャッフル済み暗号文コミットメントを出力するシャッフル済み暗号文コミットメント装置と、
を含むことを特徴とするシャッフル復号正当性証明装置。
【請求項４】
請求項３に記載のシャッフル復号正当性証明装置において、
前記乱数が入力され、暗号文の順番の入れ替え前後の対応関係である置換と暗号化の乱数とのコミットメントであるシャッフルコミットメントを生成し、前記シャッフルコミットメント及びこれらコミットされた前記置換と前記暗号化の乱数との知識の証明のコミットメントとからなる置換証明コミットメントを生成し、前記置換証明コミットメントを出力する置換証明コミットメント装置と、
前記複数の暗号文と前記公開鍵と前記複数のシャッフル済み暗号文のコミットメントと乱数とが入力され、前記コミットされた複数のシャッフル済み暗号文が前記シャッフルコミットメントにコミットされた置換と暗号化の乱数とを用いて前記複数の暗号文をシャッフルして生成されていることの証明のコミットメントである同一変換証明コミットメントを生成し出力する同一変換証明コミットメント装置と、
前記の複数のシャッフル済み暗号文のコミットメントと前記複数の復号文と前記秘密鍵と乱数とが入力され、前記コミットされた複数のシャッフル済み暗号文を前記秘密鍵を用いて復号した結果が，前記複数の復号文となることの証明のコミットメントである復号証明コミットメントを生成する復号証明コミットメント装置と、
前記シャッフル復号検証装置に対して、前記複数のシャッフル済み暗号文のコミットメントと、前記シャッフルコミットメントと、前記置換証明コミットメントと、前記同一変換証明コミットメントと、前記復号証明コミットメントと、からなるシャッフル復号証明コミットメントを送付し、前記シャッフル復号検証装置から乱数の列である挑戦値が送られてくるのを待ってこれを受信する挑戦値獲得装置と、
前記挑戦値と乱数と前記秘密鍵とを含むデータの演算から計算できるデータであるレスポンスを生成し、前記シャッフル復号検証装置に送るレスポンス生成装置と、
を含むことを特徴とするシャッフル復号正当性証明装置。
【請求項５】
請求項２に記載のシャッフル復号検証装置において、
前記シャッフル復号証明装置より、複数のシャッフル済み暗号文のコミットメントと、シャッフルコミットメントを含む置換証明コミットメントと、同一変換証明コミットメントと、復号証明コミットメントと、からなるシャッフル復号証明コミットメントが送付されるのを待ち、これらを受信すると、一定の長さの乱数を挑戦値として選び、前記シャッフル復号証明装置に送付する挑戦値生成装置と、
前記シャッフルコミットメントと前記置換証明コミットメントと前記レスポンスと挑戦値とが入力され、前記シャッフルコミットメントが置換と暗号化の乱数のコミットメントであるかどうかに応じて「正当」または「不当」の検証結果を生成する置換検証装置と、
前記同一変換証明コミットメントと前記暗号文と前記複数のシャッフル済み暗号文のコミットメントと前記公開鍵と前記レスポンスと挑戦値とが入力され、前記コミットされた複数のシャッフル済み暗号文が前記置換証明装置にてコミットされた置換と暗号化の乱数とを用いてシャッフルされたかに応じて「正当」または「不当」の検証結果を生成する同一変換検証装置と、
前記復号証明文と前記複数のシャッフル済暗号文のコミットメントと前記復号文と前記公開鍵と前記レスポンスと挑戦値とが入力され、前記コミットされた複数のシャッフル済み暗号文を復号した結果が前記複数の復号文となるかに応じて「正当」または「不当」の検証結果を生成する復号検証装置と、
を含み、
前記置換検証装置と同一変換検証装置と復号検証装置の検証結果の全てが「正当」であれば、前記シャッフル復号文が入力された前記暗号文を正しくシャッフル復号した結果であることの検証結果として「正当」を、一つでも「不当」を出力することを特徴とするシャッフル復号検証装置。
【請求項６】
複数の暗号文と、公開鍵と、復号の秘密鍵と、乱数と、が入力され、前記複数の暗号文を前記公開鍵によりそれぞれ暗号化し、それらの順番を入れ替え、前記秘密鍵によりそれぞれ復号した結果である複数の復号文を生成し、前記暗号化と順番の入れ替えと復号とに対する正当性をシャッフル復号検証装置に対して証明するシャッフル復号正当性証明方法において、
前記シャッフル復号検証装置と通信するデータに、前記複数の暗号文を前記公開鍵により暗号化し、その順番を入れ替えた暗号文である生成には乱数が使用されるシャッフル済み暗号文のコミットメントを含めることを特徴とするシャッフル復号正当性証明方法。
【請求項７】
複数の暗号文と、複数の復号文と、公開鍵と、乱数とが入力され、前記複数の復号文が、前記暗号文を暗号化し、さらに順番を入れ替えた後に前記公開鍵に対応する秘密鍵により復号されたデータであることのシャッフル復号正当性証明装置による証明の正当性を検証するシャッフル復号検証方法において、
前記シャッフル復号正当性証明装置と通信するデータに、前記複数の暗号文を前記公開鍵により暗号化し、その順番を入れ替えた暗号文である生成には乱数が使用されるシャッフル済み暗号文のコミットメントを含めることを特徴とするシャッフル復号検証方法。
【請求項８】
請求項６に記載のシャッフル復号正当性証明方法において、
前記複数の暗号文と前記公開鍵と乱数とが入力され、前記複数の暗号文を前記公開鍵によりそれぞれ暗号化し、その結果である複数の暗号文の順番を入れ替える処理を行い、その結果である複数のシャッフル済み暗号文を出力するステップと、
前記複数のシャッフル済み暗号文と前記秘密鍵とが入力され、前記複数のシャッフル済み暗号文を前記秘密鍵によりそれぞれ復号し、その結果である複数の復号文を出力するステップと、
前記複数のシャッフル済み暗号文と乱数とが入力され、前記複数のシャッフル済み暗号文のコミットメントを生成し、その結果である生成には乱数が使用されるシャッフル済み暗号文コミットメントを出力するステップと、
を含むことを特徴とするシャッフル復号正当性証明方法。
【請求項９】
請求項８に記載のシャッフル復号正当性証明方法において、
前記乱数が入力され、暗号文の順番の入れ替え前後の対応関係である置換と暗号化の乱数とのコミットメントであるシャッフルコミットメントを生成し、前記シャッフルコミットメント及びこれらコミットされた前記置換と前記暗号化の乱数との知識の証明のコミットメントとからなる置換証明コミットメントを生成し、前記置換証明コミットメントを出力するステップと、
前記複数の暗号文と前記公開鍵と前記複数のシャッフル済み暗号文のコミットメントと乱数とが入力され、前記コミットされた複数のシャッフル済み暗号文が前記シャッフルコミットメントにコミットされた置換と暗号化の乱数とを用いて前記複数の暗号文をシャッフルして生成されていることの証明のコミットメントである同一変換証明コミットメントを生成し出力するステップと、
前記の複数のシャッフル済み暗号文のコミットメントと前記複数の復号文と前記秘密鍵と乱数とが入力され、前記コミットされた複数のシャッフル済み暗号文を前記秘密鍵を用いて復号した結果が，前記複数の復号文となることの証明のコミットメントである復号証明コミットメントを生成するステップと、
前記シャッフル復号検証装置に対して、前記複数のシャッフル済み暗号文のコミットメントと、前記シャッフルコミットメントと、前記置換証明コミットメントと、前記同一変換証明コミットメントと、前記復号証明コミットメントと、からなるシャッフル復号証明コミットメントを送付し、前記シャッフル復号検証装置から乱数の列である挑戦値が送られてくるのを待ってこれを受信するステップと、
前記挑戦値と乱数と前記秘密鍵とを含むデータの演算から計算できるデータであるレスポンスを生成し、前記シャッフル復号検証装置に送るステップと、
を含むことを特徴とするシャッフル復号正当性証明方法。
【請求項１０】
請求項７に記載のシャッフル復号検証方法において、
前記シャッフル復号証明装置より、複数のシャッフル済み暗号文のコミットメントと、シャッフルコミットメントを含む置換証明コミットメントと、同一変換証明コミットメントと、復号証明コミットメントと、からなるシャッフル復号証明コミットメントが送付されるのを待ち、これらを受信すると、一定の長さの乱数を挑戦値として選び、前記シャッフル復号証明装置に送付するステップと、
前記シャッフルコミットメントと前記置換証明コミットメントと前記レスポンスと挑戦値とが入力され、前記シャッフルコミットメントが置換と暗号化の乱数のコミットメントであるかどうかに応じて「正当」または「不当」の検証結果を生成する置換検証ステップと、
前記同一変換証明コミットメントと前記暗号文と前記複数のシャッフル済み暗号文のコミットメントと前記公開鍵と前記レスポンスと挑戦値とが入力され、前記コミットされた複数のシャッフル済み暗号文が前記置換証明装置にてコミットされた置換と暗号化の乱数とを用いてシャッフルされたかに応じて「正当」または「不当」の検証結果を生成する同一変換検証ステップと、
前記復号証明文と前記複数のシャッフル済暗号文のコミットメントと前記復号文と前記公開鍵と前記レスポンスと挑戦値とが入力され、前記コミットされた複数のシャッフル済み暗号文を復号した結果が前記複数の復号文となるかに応じて「正当」または「不当」の検証結果を生成する復号検証ステップと、
前記置換検証ステップと同一変換検証ステップと復号検証ステップの検証結果の全てが「正当」であれば、前記シャッフル復号文が入力された前記暗号文を正しくシャッフル復号した結果であることの検証結果として「正当」を、一つでも「不当」を出力するステップを含むことを特徴とするシャッフル復号検証方法。
【請求項１１】
請求項６ないし請求項１０記載の方法における各ステップをコンピュータに実行させるためのプログラム。
【請求項１２】
請求項１１記載のプログラムを格納した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、匿名通信路の構成などに使われる、証明付シャッフル技術及び証明付復号技術に関する。
【背景技術】
【０００２】
［従来の技術（１）］
従来の証明付シャッフルの技術について、例えば、特開２００１−２５１２８９号公報に開示される発明がある。図１に、上記公報に記載される構成を示す。なお、本願添付図面中で、合流する矢印は、矢印の元の情報が、全て集まって矢印の先へ送られることを意味し、分岐する矢印は矢印の元の情報全てまたは一部が、それぞれの矢印の先へ送られることを意味する。また、上記公報の言う再暗号シャッフルは、本明細書中ではシャッフルと言っている。【０００３】
図１において、暗号文と公開鍵１００がシャッフルステップ１０１に入力されてシャッフルされる。この時入力された暗号文と公開鍵１００とシャッフルを特定する情報であるシャッフル情報１０２が同一変換証明ステップ１０３に送られ、また、シャッフル情報１０２が置換証明ステップ１０４に送られる。同一変換証明ステップ１０３は同一変換証明文１０５を生成して出力すると同時に、同一変換証明文１０５の生成に使用した乱数１０６を置換証明ステップ１０４に送る。置換証明ステップ１０４は置換証明文１０７を出力する。リスポンス生成ステップ１０８は同一変換証明文１０５と置換証明文１０７と暗号文と公開鍵１００とシャッフル済み暗号文１０９とを入力し、同一変換証明文１０５と置換証明文１０７と暗号文とにリスポンスを加えてシャッフル証明文１１０を生成し出力する。【０００４】
同一変換証明文１０５は、リスポンスと合わさって、入力文の順番の入れ替えや暗号化である暗号文の変換内容の知識を持っていることの証明であると同時に、入力される暗号文が複数の整数の要素となる場合はそれぞれの要素が同じ順番の入れ替えと対応する暗号化の処理とを受けたことの証明でもある。置換証明文１０７は、リスポンスと合わさって、入力される暗号文に対しての、順番の入れ替えが正しくなされたことの証明である。【０００５】
図１に示されるシャッフルとは、入力された暗号文をの順序を入れ替えて再び暗号化することである。この処理が正当であることを証明するために、同文献では同一変換証明ステップと置換証明ステップの二つの証明ステップを用いている。この証明対象の分割により同文献ではシャッフル証明文生成の効率化を達成している。【０００６】
［従来の技術（２）］
従来の証明付復号の技術について、例えば、特開平０８−２６３５７５号公報の記載が参照される。図２は上記公報に記載される構成を示す図である。【０００７】
図２において、シャッフル済み暗号文２００と秘密鍵２０１が復号ステップ２０３に入力されて復号される。この時入力されたシャッフル済み暗号文２００と秘密鍵２０１と、これらにより復号された復号文２０４が復号証明ステップ２０５に送られる。これらの情報より復号証明ステップ２０５は復号証明文２０６を出力する。【０００８】
ここで、復号とは、暗号文を分散所持されている秘密鍵の一部を使って、部分的に暗号文を復号することであり、秘密鍵の一部を全て用いて復号を繰り返すと完全な復号がなされる。【０００９】
［従来の技術（３）］（従来の技術による証明付シャッフル復号方法）
従来の技術１と従来の技術２とを合わせることにより証明付シャッフル復号方法が構成できる。【００１０】
図３は従来の技術による証明付シャッフル復号方法を示す図である。これは、従来の技術１と従来の技術２を単純につなげることにより構成された証明付シャッフル復号方法である。【００１１】
図３における暗号文と公開鍵３０１、シャッフルステップ３０２、シャッフル情報３０３、シャッフル済み暗号文３０４、同一変換証明ステップ３０７、乱数３０８、同一変換証明文３０９、置換証明ステップ３１０、置換証明文３１１、リスポンステップ生成ステップ３１２、シャッフル証明文３１３のそれぞれは、図１における暗号文と公開鍵１００、シャッフルステップ１０１、シャッフル情報１０２、シャッフル済み暗号文１０９、同一変換証明ステップ１０３、乱数１０６、同一変換証明文１０５、置換証明ステップ１０４、置換証明文１０７、リスポンステップ生成ステップ１０８、シャッフル証明文１１０と同じものであり、図３における秘密鍵３００、シャッフル済み暗号文３０４、復号ステップ３０５、復号文３０６、復号証明ステップ３１４、復号証明文３１５のそれぞれは、図２における秘密鍵２０１、シャッフル済み暗号文２００、復号ステップ２０３、復号文２０４、復号証明ステップ２０５、復号証明文２０６と同じものである。【００１２】
図３に示される方法は、シャッフル済み暗号文３０４がシャッフル復号証明文３１６に含まれていることと、シャッフル済み暗号文３０４が復号証明ステップ３１４に入力されることと、リスポンス生成ステップ３１２への入力がないこととが特徴である。【００１３】
［従来の技術（４）］
従来の証明付シャッフル復号の技術について、例えば、特開２００２−３４４４４５号公報の記載が参照される。【００１４】
上記公報において、シャッフル済暗号文をシャッフル復号文に加えないが、上記公報に記載の発明では、シャッフル済暗号文の不完全なコミットメントをシャッフル済復号文に加えている。従来の技術１と２に変更を加えて改良することで、シャッフル済暗号文がなくとも、シャッフル済暗号文の不完全なコミットメントがあればシャッフルと復号の正当性を可能にしている。ここで言う、不完全なコミットメントとは、シャッフル済暗号文であるコミットされる対象の情報が一部漏れてしまう様なコミットメントのことである。そのため、漏れたデータを使って暗号システムを攻撃することが可能な場合がある。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、上記した従来の技術は下記記載の問題点を有している。【００１６】
入力された暗号文をシャッフルし、さらに、その結果に対してを復号を施して復号文を出力し、上記処理の正当性証明文を生成して出力する通信路を考える。これは従来技術１と従来技術２を連続して使用して構成することができるが（従来技術３）、この手法では不要な情報であるシャッフル済み暗号文を出力しなければ正当性の証明ができない。このシャッフル済暗号文は、復号に用いた秘密鍵の知識を一部漏らしている。このような通信路を暗号システムの一部として使った場合、漏れた知識によりシステムの安全性を保てない可能性がある。【００１７】
従来技術４では、シャッフル済暗号文を証明文の中に加えることなく、その不完全なコミットメントを加えることで、より漏らされる知識の量を少なくすることに成功している。しかし、依然として一部の知識を漏らしており、完全な置換と復号の隠蔽にはなっていない。【００１８】
本発明は、上記問題点に鑑みてなされたものであって、その目的は、シャッフルと復号の正当性を証明するにあたり、一切の秘密情報に関する知識を漏らさないことで、より強い安全性を持ったシャッフル復号証明方法、これによる装置を提案することである。本提案方法を使えば、より匿名性の高い匿名通信路が構成可能になる。
【課題を解決するための手段】
【００１９】
本発明によるシャッフル復号正当性証明装置は、複数の暗号文と、公開鍵と、復号の秘密鍵と、乱数と、が入力され、前記複数の暗号文を前記公開鍵によりそれぞれ暗号化し、それらの順番を入れ替え、前記秘密鍵によりそれぞれ復号した結果である複数の復号文を生成し、前記暗号化と順番の入れ替えと復号とに対する正当性をシャッフル復号検証装置に対して証明するシャッフル復号正当性証明装置において、
前記シャッフル復号検証装置と通信するデータに、前記複数の暗号文を前記公開鍵により暗号化し、その順番を入れ替えた暗号文であるシャッフル済み暗号文のコミットメントを含めることを特徴とする。【００２０】
本発明によるシャッフル復号検証装置は、複数の暗号文と、複数の復号文と、公開鍵と、乱数とが入力され、前記複数の復号文が、前記暗号文を暗号化し、さらに順番を入れ替えた後に前記公開鍵に対応する秘密鍵により復号されたデータであることのシャッフル復号正当性証明装置による証明の正当性を検証するシャッフル復号検証装置において、
前記シャッフル復号正当性証明装置と通信するデータに、前記複数の暗号文を前記公開鍵により暗号化し、その順番を入れ替えた暗号文であるシャッフル済み暗号文のコミットメントを含めることを特徴とする。【００２１】
上記のシャッフル復号正当性証明装置において、
前記複数の暗号文と前記公開鍵と乱数とが入力され、前記複数の暗号文を前記公開鍵によりそれぞれ暗号化し、その結果である複数の暗号文の順番を入れ替える処理を行い、その結果である複数のシャッフル済み暗号文を出力するシャッフル装置と、
前記複数のシャッフル済み暗号文と前記秘密鍵とが入力され、前記複数のシャッフル済み暗号文を前記秘密鍵によりそれぞれ復号し、その結果である複数の復号文を出力する復号装置と、
前記複数のシャッフル済み暗号文と乱数とが入力され、前記複数のシャッフル済み暗号文のコミットメントを生成し、その結果であるシャッフル済み暗号文コミットメントを出力するシャッフル済み暗号文コミットメント装置と、
を含むこととしてもよい。【００２２】
また、前記乱数が入力され、暗号文の順番の入れ替え前後の対応関係である置換と暗号化の乱数とのコミットメントであるシャッフルコミットメントを生成し、前記シャッフルコミットメント及びこれらコミットされた前記置換と前記暗号化の乱数との知識の証明のコミットメントとからなる置換証明コミットメントを生成し、前記置換証明コミットメントを出力する置換証明コミットメント装置と、
前記複数の暗号文と前記公開鍵と前記複数のシャッフル済み暗号文のコミットメントと乱数とが入力され、前記コミットされた複数のシャッフル済み暗号文が前記シャッフルコミットメントにコミットされた置換と暗号化の乱数とを用いて前記複数の暗号文をシャッフルして生成されていることの証明のコミットメントである同一変換証明コミットメントを生成し出力する同一変換証明コミットメント装置と、
前記の複数のシャッフル済み暗号文のコミットメントと前記複数の復号文と前記秘密鍵と乱数とが入力され、前記コミットされた複数のシャッフル済み暗号文を前記秘密鍵を用いて復号した結果が，前記複数の復号文となることの証明のコミットメントである復号証明コミットメントを生成する復号証明コミットメント装置と、
前記シャッフル復号検証装置に対して、前記複数のシャッフル済み暗号文のコミットメントと、前記シャッフルコミットメントと、前記置換証明コミットメントと、前記同一変換証明コミットメントと、前記復号証明コミットメントと、からなるシャッフル復号証明コミットメントを送付し、前記シャッフル復号検証装置から乱数の列である挑戦値が送られてくるのを待ってこれを受信する挑戦値獲得装置と、
前記挑戦値と乱数と前記秘密鍵とを含むデータの演算から計算できるデータであるレスポンスを生成し、前記シャッフル復号検証装置に送るレスポンス生成装置と、を含むこととしてもよい。【００２３】
また、上記のシャッフル復号検証装置において、
前記シャッフル復号証明装置より、複数のシャッフル済み暗号文のコミットメントと、シャッフルコミットメントを含む置換証明コミットメントと、同一変換証明コミットメントと、復号証明コミットメントと、からなるシャッフル復号証明コミットメントが送付されるのを待ち、これらを受信すると、一定の長さの乱数を挑戦値として選び、前記シャッフル復号証明装置に送付する挑戦値生成装置と、
前記シャッフルコミットメントと前記置換証明コミットメントと前記レスポンスと挑戦値とが入力され、前記シャッフルコミットメントが置換と暗号化の乱数のコミットメントであるかどうかに応じて「正当」または「不当」の検証結果を生成する置換検証装置と、
前記同一変換証明コミットメントと前記暗号文と前記複数のシャッフル済み暗号文のコミットメントと前記公開鍵と前記レスポンスと挑戦値とが入力され、前記コミットされた複数のシャッフル済み暗号文が前記置換証明装置にてコミットされた置換と暗号化の乱数とを用いてシャッフルされたかに応じて「正当」または「不当」の検証結果を生成する同一変換検証装置と、
前記復号証明文と前記複数のシャッフル済暗号文のコミットメントと前記復号文と前記公開鍵と前記レスポンスと挑戦値とが入力され、前記コミットされた複数のシャッフル済み暗号文を復号した結果が前記複数の復号文となるかに応じて「正当」または「不当」の検証結果を生成する復号検証装置と、
を含み、
前記置換検証装置と同一変換検証装置と復号検証装置の検証結果の全てが「正当」であれば、前記シャッフル復号文が入力された前記暗号文を正しくシャッフル復号した結果であることの検証結果として「正当」を、一つでも「不当」を出力することとしてもよい。【００２４】
本発明によるプログラムは上記の方法における各ステップをコンピュータに実行させるものであり、本発明による記録媒体にはこのプログラムを格納している。
【発明の効果】
【００２５】
上記のように構成される本発明によれば、シャッフルと復号を行ったことを証明するにあたり、より強い秘密情報の隠蔽を行うことができる、という効果を奏する。
【図面の簡単な説明】
【００２６】
【図１】従来の技術１の構成を示す図である。
【図２】従来の技術２の構成を示す図である。
【図３】従来の技術３の構成を示す図である。
【図４】本発明の実施例におけるシャッフル復号正当性証明装置の構成を示す図である。
【図５】本発明の実施例におけるシャッフル復号検証装置の構成を示す図である。
【符号の説明】
【００２７】
４０１    複数の暗号文
４０２    公開鍵
４０３    乱数
４０４    シャッフル済み暗号文
４０５    シャッフル装置
４０６    復号装置
４０７    秘密鍵
４０９    シャッフル済み暗号文コミットメント装置
４１０    シャッフル済み暗号文コミットメント
４１１    置換証明コミットメント装置
４１２    置換証明コミットメント
４１３    共通参照基底
４１４    同一変換証明コミットメント装置
４１５    同一変換証明コミットメント
４１６    復号証明コミットメント装置
４１７    復号証明コミットメント
４１９    挑戦値
４２１    レスポンス生成装置
４２２    レスポンス
５００    シャッフル復号検証装置
５０１    挑戦値生成装置
５０２    乱数
５０３    置換検証装置
５０５    同一変換検証装置
５０７    復号検証装置
【発明を実施するための最良の形態】
【００２８】
本発明の実施例について図面を参照して説明する。以下の実施例では、楕円Elgamal暗号を使った例に即して説明する。以下では、本発明にて前提となる事項から順に説明していく。【００２９】
［楕円Elgamal公開鍵暗号方式］
楕円ElGamal暗号方式は、公開鍵暗号系に属する暗号方式である。最初にｑを関係ｑｍｏｄ３＝２となる素数、Ｅを位数がｑの楕円曲線、Ｇ0をＥの生成元、ＯをＥの単位元とする。すなわち、任意のＥ上の点Ｐは［ｑ］Ｐ＝Ｏを満たす。ここで、［ｘ］Ｇ0は、Ｇ0のｘ倍点を表す。【００３０】
楕円Elgamal公開鍵暗号方式は次の三つのアルゴリズムからなる。【００３１】
［鍵生成アルゴリズム］
乱数が入力され、秘密鍵ｘをＺqの要素ランダムに選び、公開鍵Ｍ0＝［ｘ］Ｇ0を計算し、秘密鍵ｘと公開鍵Ｍ0を出力する。【００３２】
［暗号化アルゴリズム］
平文Ｍ∈Ｅと公開鍵Ｍ0と乱数とが入力され、ｓをＺqの要素ランダムに選び、暗号文をＣ＝（Ｇ1，Ｍ1）＝（［ｓ］Ｇ0，Ｍ＋［ｓ］Ｍ0）と計算し、これを出力する。【００３３】
［復号アルゴリズム］
暗号文Ｃと秘密鍵ｘが入力され、復号文Ｍ’＝Ｍ1−［ｘ］Ｇ1を出力する。復号アルゴリズムの出力Ｍ’が暗号化された平文Ｍに一致することは、Ｍ’＝Ｍ1−［ｘ］Ｇ1＝Ｍ＋［ｓ］Ｍ0−［ｘ］［ｓ］Ｇ0＝Ｍ＋［ｓ］Ｍ0−［ｓ］Ｍｃｌ０＝Ｍから明らか。【００３４】
秘密鍵ｘが分散所持されているとする。すなわち、ｘ＝Σj=1mｘjｍｏｄｑが成り立ち、各ｘiがそれぞれが別個に所持されている。本実施例ではこのｘjを復号用の秘密鍵と呼ぶ。【００３５】
この時暗号文を完全に復号するには、Ｍ1を各復号用の秘密鍵を用いて計算した値から［ｘj］Ｇ1を順に引いていく操作を、全てのｊに関して行う。本実施例では一つの復号用の秘密鍵ｘmしか扱わないため、これをｘ’で表す。また公開鍵にはＭ0とＹが含まれ、Ｍ0＝［ｘ］Ｇ0，Ｙ＝［ｘ’］Ｇ0とする。【００３６】
［暗号文］
本発明方式入力されるｎ個の暗号文を（Ｇi，Ｍi）ｉ＝１，・・・，ｎとする。それぞれの暗号文の各要素はＥの元である。【００３７】
［復号文］
本発明方式で出力されるｎ個の復号文を（Ｇ’i，Ｍi）（ｉ＝１，・・・，ｎ）とする。それぞれの復号文の各要素はＥの元である。【００３８】
これらはｎ個の暗号文（Ｇi，Ｍi）ｉ＝１，・・・，ｎを公開鍵Ｍ0で（［ｓi］Ｇ0＋Ｇi，［ｓi］Ｍ0＋Ｍi）（ｉ＝１，・・・，ｎ）と暗号化し、さらにそれらの順番を入れ替えた後に、を復号用の秘密鍵で復号したものである。【００３９】
［置換行列］
置換行列について説明する。「置換行列」を、各行各列に０でない成分が唯一存在し、その値がＺq上の１であるｎ行ｎ列の正方行列とする。例として、
０，１，０，０
０，０，０，１
０，０，１，０
１，０，０，０
があげられる。
【実施例】
【００４０】
［実施例（１）］
本発明の一実施例をなすシャッフル復号正当性証明装置４００について、その構成を示す図４を参照して説明する。【００４１】
図４に示されるシャッフル復号正当性証明装置４００は、複数の暗号文４０１、公開鍵４０２、乱数４０３、秘密鍵４０７および共通参照基底４１３を入力し、復号文４０８、シャッフル復号証明コミットメントおよびレスポンス４２２を出力するもので、シャッフル装置４０５、復号装置４０６、シャッフル済み暗号文コミットメント装置４０９、置換証明コミットメント装置４１１、同一変換証明コミットメント装置４１４、復号証明コミットメント装置４１６、挑戦値獲得装置４１８、レスポンス装置４２１から構成されている。【００４２】
ｎ個の暗号文をシャッフルして復号するとする。Ｅ上からランダムに選ばれた点である共通参照基底、Ｆμ（μ＝−４，１，・・・，ｎ）とＭ-1が本発明装置に入力される。全てのステップから利用できるとする。（以下ではステップへの入力としては明示的に書かない）
なお、シャッフル復号正当性証明装置４００は、入力装置、出力装置、記憶装置および制御装置からなる一般的なコンピュータシステムにより構成されるもので、シャッフル装置４０５、復号装置４０６、シャッフル済み暗号文コミットメント装置４０９、置換証明コミットメント装置４１１、同一変換証明コミットメント装置４１４、復号証明コミットメント装置４１６、挑戦値獲得装置４１８、レスポンス装置４２１はコンピュータシステム内に仮想的に構成される。以下に、各構成要素について詳細に説明する。【００４３】
［シャッフル装置４０５］
ｎ個の暗号文４０１（Ｇi，Ｍi）（ｉ＝１，・・・，ｎ）と公開鍵４０２（Ｇ0，Ｍ0）と乱数４０３が入力される。【００４４】
次に、ランダムなｎ×ｎ置換行列（πji）（ｉ，ｊ＝１，・・・，ｎ）と乱数π0i（ｉ＝１，・・・，ｎ）∈Ｚqを、入力された乱数４０３より生成する。【００４５】
これらの置換と乱数は、入力された乱数４０３より一意的に作られるため、入力された乱数にあらかじめ含まれていたと考える。すなわち、以下の装置において、乱数４０３が入力されたならば前記（πji）（ｉ，ｊ＝１，・・・，ｎ）、および、π0i（ｉ＝１，・・・，ｎ）∈Ｚqの様に乱数から作られたデータを再度生成することができる。【００４６】
次に、シャッフル済み暗号文４０４（Ｇ’i，Ｍ’’i）（ｉ＝１，・・・，ｎ）を、（Ｇ’i，Ｍ’’i）＝（Σμ=0n［πμi］Ｇμ，Σμ=0n［πμi］Ｍμ）と計算する。これが前に述べたようなシャッフル、すなわち、暗号化した後に順番を入れ替えたものであることは次の様に分かる。【００４７】
πji＝１となるｊとｉの間の関係をπ（ｉ）＝ｊと書くと、（Σμ=0n［πμi］Ｇμ，Σμ=0n［πμi］Ｍμ）＝（Ｇπ(i)，Ｍπ(i)）
シャッフル装置４０５は、シャッフル済み暗号文４０４を出力する。【００４８】
［復号装置４０６］
シャッフル済み暗号文４０４と復号用の秘密鍵４０７とが入力される。次に、復号文４０８を（Ｇ’i，Ｍ’i）＝（Ｇ’i，［−ｘ’］Ｇ’i＋Ｍ’’i）と、計算して出力する。【００４９】
［シャッフル復号証明装置始まり］
［シャッフル済暗号文完全隠蔽コミットメント装置４０９］
次に、シャッフル済み暗号文４０４（Ｇ’i，Ｍ’’i）（ｉ＝１，・・・，ｎ）と乱数４０３が入力される。入力された乱数４０３より、ランダムなπ-1i∈Ｚq（ｉ＝１，・・・，ｎ）を選ぶ。【００５０】
シャッフル済暗号文のコミットメント４１０：Ｎi（ｉ＝１，・・・，ｎ）をＮi＝［π-1i］Ｍ-1＋Ｍ’’i（ｉ＝１，・・・，ｎ）と計算し、これを出力する。【００５１】
［置換証明コミットメント装置４１１］
シャッフル装置で用いられた順番の入れ替えを表す置換行列πjiｉ（ｊ＝１，・・・，ｎ）と、暗号化に用いられた乱数π0iｉ＝１，・・・，ｎと、乱数４０３が入力される（πjiｉ（ｊ＝１，・・・，ｎ）とπ0i(ｉ＝１，・・・，ｎ）は乱数４０３に含まれている）。【００５２】
共通基底４１３が入力される。入力された乱数４０３より、ランダムなπμ0∈Ｚq（μ＝−４，・・・，ｎ）、π’μ∈Ｚq（μ＝−４，・・・，ｎ）、π-2i∈Ｚq（ｉ＝１，・・・，ｎ）を選ぶ。これらの値も以下では乱数４０３に含まれていると考える。【００５３】
次に、π-3i＝Σj=1n３πj02πjiｍｏｄｑ（ｉ＝１，・・・，ｎ）
π-4i＝Σj=1n３πj0πjiｍｏｄｑ（ｉ＝１，・・・，ｎ）
Ｆ’μ＝Σν=-4n［πνμ］Ｆν（μ＝０，・・・，ｎ）
Ｆ’’0＝Σν=-4n［π’ν］Ｆν
ｗ＝Σj=-1nπj03−π-30−π’-4ｍｏｄｑ
を計算する。
ここでＦ’i（ｉ＝０，．．．，ｎ）をシャッフルコミットメントとする。【００５４】
最後に、シャッフルコミットメントＦ’i（ｉ＝０，．．．，ｎ）及びＦ’0，Ｆ’’0，ｗを置換証明コミットメント４１２として出力する。【００５５】
［同一変換証明コミットメント装置４１４］
シャッフル装置で用いられた順番の入れ替えを表す置換行列πji（ｉ，ｊ＝１，・・・，ｎ）と、暗号化に用いられた乱数π0i（ｉ＝１，・・・，ｎ）と、乱数πj0（ｊ＝１，．．，ｎ）と、乱数π-10（ｊ＝１，．．，ｎ）（これら上記値は乱数４０３に含まれる）と、ｎ個の暗号文４０１（Ｇi，Ｍi）（ｉ＝１，・・・，ｎ）と公開鍵４０２（Ｇ0，Ｍ0）と乱数４０３が入力される。【００５６】
次に、Ｇ’0＝Σν=0n［πν0］Ｇν、Ｎ0＝Σν=-1n［πν0］Ｍνを計算する。【００５７】
最後に、Ｇ’0，Ｎ0を同一変換証明コミットメント４１５として出力する。【００５８】
［復号証明コミットメント装置４１６］
ｎ個の復号文４０８の一部Ｇ’i（ｉ＝１，・・・，ｎ）と公開鍵４０２（Ｇ0，Ｍ0）と、乱数π-10と乱数４０３が入力される。【００５９】
入力された乱数より、ランダムなｔi∈Ｚq（ｉ＝１，・・・，ｎ）を選ぶ。【００６０】
次に、Ｙ’i＝［ｔi］Ｇ0（ｉ＝１，・・・，ｎ）、Ｎ’＝［π-10］Ｍ-1＋Σi=1n［ｔi］Ｇ’iを計算する。【００６１】
最後に，Ｙ’i（ｉ＝１，・・・，ｎ），Ｎ’を復号証明コミットメント４１７として出力する。【００６２】
［挑戦値獲得装置４１８］
シャッフル済暗号文のコミットメント４１０Ｎi（ｉ＝１，・・・，ｎ）、シャッフルコミットメントＦ’i（ｉ＝０，・・・，ｎ）とＦ’0，Ｆ’’0，ｗからなる置換証明のコミットメント４１２、同一変換証明のコミットメント４１５：Ｇ’0，Ｎ0、復号証明のコミットメント４１７：Ｙ’i（ｉ＝１，・・・，ｎ）、Ｎ’の全てをシャッフル復号証明のコミットメント４２０としてシャッフル復号検証装置５００に送付し、挑戦値４１９が送られるのを待つ。【００６３】
挑戦値４１９：ｃi∈Ｚq（ｉ＝１，・・・，ｎ）を受け取る。【００６４】
［レスポンス生成装置４２１］
シャッフル装置で用いられた順番の入れ替えを表す置換行列πji（ｉ，ｊ＝１，・・・，ｎ）と、暗号化に用いられた乱数π0i（ｉ＝１，・・・，ｎ）と、乱数πν0（ν＝−４，．．，ｎ）と、乱数π’ν（ν＝−４，．．，ｎ）と、乱数π-1i（ｉ＝１，．．，ｎ）と、乱数π-2i（ｉ＝１，．．，ｎ）と、乱数ｔi（ｉ＝１，．．，ｎ）と、計算された数：π-3i（ｉ＝１，．．，ｎ）と、計算された数：π-4i（ｉ＝１，．．，ｎ）が入力される。これらは全て入力された乱数４０３に含まれて入力される。【００６５】
挑戦値４１９：ｃi（ｉ＝１，．．，ｎ）と、秘密鍵４０９：ｘ’とが入力される。以下、ｃ0＝１とする。【００６６】
レスポンス４２２：ｒν（ν＝−４，．．，ｎ）、ｒ’ν（ν＝−４，．．，ｎ）、ｒ’’i（ｉ＝１，．．，ｎ）を、ｒν＝Σμ=0nπνμｃμｍｏｄｑ（ν＝−４，．．，ｎ）
ｒ’ν＝Σi=1nπνiｃi2＋π’νｍｏｄｑ（ν＝−４，．．，ｎ）
ｒ’’i＝ｘ’ｃi＋ｔiｍｏｄｑ（ｉ＝１，．．，ｎ）
を計算する。【００６７】
最後に、ｒν（ν＝−４，．．，ｎ）、ｒ’ν（ν＝−４，．．，ｎ）、ｒ’’i（ｉ＝１，．．，ｎ）をシャッフル復号証明のレスポンス４２２としてシャッフル復号検証装置５００に送付して動作を修了する。【００６８】
［シャッフル復号正当性証明装置４００ここまで］
［実施例（２）］
本発明の一実施例をなすシャッフル復号検証装置５００について、図５を参照して説明する。【００６９】
図５に示されるシャッフル復号検証装置５００は、複数の暗号文４０１、公開鍵４０２、復号文４０８、乱数５０２、共通参照基底４１３、シャッフル済み暗号文コミットメント４１０、置換証明コミットメント４１２、同一変換証明コミットメント４１５、復号証明コミットメント４１７およびレスポンス４２２を入力し、挑戦値４１９および結果５０９を出力するもので、挑戦値生成装置５０１、置換検証装置５０３、同一変換検証装置５０５および復号検証装置５０８から構成されている。【００７０】
なお、シャッフル復号検証装置５００は、入力装置、出力装置、記憶装置および制御装置からなる一般的なコンピュータシステムにより構成されるもので、挑戦値生成装置５０１、置換検証装置５０３、同一変換検証装置５０５および復号検証装置５０８はコンピュータシステム内に仮想的に構成される。以下に、各構成要素について詳細に説明する。【００７１】
［挑戦値生成装置５０１］
公開鍵４０２：（Ｇ0，Ｍ0，Ｙ）、暗号文４０１：（Ｇi，Ｍi）（ｉ＝１，・・・，ｎ）、復号文４０８：（Ｇ’i，Ｍ’i）（ｉ＝１，・・・，ｎ）が入力される。乱数５０２が入力される。【００７２】
シャッフル復号証明装置４００より、シャッフル復号証明のコミットメント４２０が送られてくるのを待つ。これを受け取り次第、乱数５０２より生成された挑戦値４１９：ｃ＿ｉ∈Ｚq（ｉ＝１，・・・，ｎ）をシャッフル復号証明装置４００に送付する。【００７３】
シャッフル復号証明装置４００より、シャッフル復号証明のレスポンス４２２が送られてくるのを待つ。これが送られてきたら、以下の三つの検証装置を動作させる。【００７４】
［置換検証装置５０３］
入力された乱数５０２より、ｄ∈Ｚqをランダムに選び、次の式が成り立つことを確認する。【００７５】
Σν=-4n［ｒν＋ｄｒ’ν］Ｆν＝Ｆ’0＋［ｄ］Ｆ’’0＋Σi=1n［ｃi＋ｄｃi2］Ｆ’i
Σj=1n（ｒj3−ｃj3）＝ｒ-3＋ｒ’-4＋ｗｍｏｄｑ
これらが全てが成り立てば「正当」を、成り立たなければ「不当」を出力５０４として出力する。【００７６】
［同一変換検証装置５０５］
次の式が成り立つことを確認する。【００７７】
Σν=0n［ｒν］Ｇν＝Σμ=0n［ｃμ］Ｇ’μ
Σν=-1n［ｒν］Ｍν＝Σμ=0n［ｃμ］Ｎμ
これらが成り立てば「正当」を、成り立たなければ「不当」を出力５０６として出力する。【００７８】
［復号検証装置５０７］
次の式が成り立つことを確認する。【００７９】
［ｒ-1］Ｍ-1＋Σi=1n［ｒ’’i］Ｇ’i＝Ｎ’＋Σi=1n［ｃi］（Ｎi−Ｍ’i）
［ｒ’’i］Ｇ0＝［ｃi］Ｙ＋Ｙ’i
これらが成り立てば「正当」を、成り立たなければ「不当」を出力５０８として出力する。【００８０】
以上三つ置換検証装置と同一変換検証装置と復号検証装置との、全ての出力が正当であれば「正当」を、一つでも「不当」があれば「不当」を、シャッフル復号検証装置の出力５０９とする。【００８１】
なお、上述したように、シャッフル復号正当性証明装置４００、シャッフル復号検証装置５００のいずれも一般的なコンピュータシステムにより構成されるもので、本発明には、シャッフル装置４０５、復号装置４０６、シャッフル済み暗号文コミットメント装置４０９、置換証明コミットメント装置４１１、同一変換証明コミットメント装置４１４、復号証明コミットメント装置４１６、挑戦値獲得装置４１８、レスポンス装置４２１をコンピュータシステム内に仮想的に構成する、または、挑戦値生成装置５０１、置換検証装置５０３、同一変換検証装置５０５および復号検証装置５０８はコンピュータシステム内に仮想的に構成するためのプログラムや、該プログラムを格納した記録媒体が含まれる。
【図１】
0004867916.tif 000002
【図２】
0004867916.tif 000003
【図３】
0004867916.tif 000004
【図４】
0004867916.tif 000005
【図５】
0004867916.tif 000006