(57)【特許請求の範囲】
【請求項１】
複数の暗号文をシャッフル復号してシャッフル復号文を生成し、かつ前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を生成する証明付シャッフル復号装置において、
前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を生成するシャッフル部と、
前記シャッフル部で生成した前記暗号化したシャッフル済み暗号文を前記秘密鍵により復号して前記シャッフル復号文を生成する復号部と、
前記暗号文の順番の入れ替え方法を表す数値と、前記暗号化の方法を表す数値と、前記暗号化に使用された乱数とを用いて、前記シャッフルの正当性を証明する証明文を生成し、前記各数値及び乱数に加え、入力されたチャレンジを用いて、前記証明において参照するリスポンスを生成し、前記リスポンスに基づいて、前記シャッフル復号文を生成するための前記順番の入れ替えと前記暗号化と前記復号とにおけるそれぞれの正当性を証明する証明文を生成し、前記生成された各証明文と前記リスポンスとを、前記シャッフル復号証明文として出力する証明部とを備えることを特徴とする証明付シャッフル復号装置。
【請求項２】
前記シャッフル部は、前記複数の暗号文と前記公開鍵との入力を受けて、前記複数の暗号文の順番を入れ替えて前記公開鍵により暗号化することにより、前記複数のシャッフル済み暗号文を生成し、
前記復号部は、前記複数のシャッフル済み暗号文と前記秘密鍵との入力を受けて、前記シャッフル済み暗号文を前記秘密鍵により復号した前記複数のシャッフル復号文を生成し、
前記証明部は、前記複数の暗号文と前記公開鍵と前記秘密鍵との入力を受けて、前記シャッフル復号証明文を生成することを特徴とする請求項１に記載の証明付シャッフル復号装置。
【請求項３】
前記証明部は、
前記順番の入れ替えにおける前後の対応関係と前記暗号化に使った乱数とを知っていることを証明する証明文を生成し、かつ、前記入力される暗号文が複数の整数の要素から成る場合には、更にそれぞれの要素が同じ順番の入れ替えをされ同じ乱数で処理されたことを証明する証明文を生成する同一変換証明部と、
前記入力される暗号文に対しての、順番の入れ替えが正しくなされたことを証明する証明文を生成する置換証明部と、
前記同一変換証明部及び前記置換証明部からなるシャッフルの正当性を証明し、前記シャッフルの正当性を証明するために用いたデータと、入力された前記チャレンジとを用いて、前記同一変換証明部と前記置換証明部に対する前記リスポンスを生成するリスポンス生成部と、
前記シャッフル済み暗号文が前記秘密鍵を用いて正しく復号されて前記シャッフル復号文が生成されたことを証明する、前記リスポンスに基づく証明文を生成する復号証明部を備え、
前記同一変換証明部と、前記置換証明部と、前記リスポンス生成部と、前記復号証明部により生成された各前記証明文と前記リスポンスの全てを、前記シャッフル復号証明文として出力することを特徴とする請求項２に記載の証明付シャッフル復号装置。
【請求項４】
複数の暗号文をシャッフル復号して生成されたシャッフル復号文を、当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証装置において、
入力された当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証する検証部を備え、
前記シャッフル復号証明文は、
証明において参照するリスポンスと、
前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を前記秘密鍵により復号する処理である前記シャッフル復号文を生成する処理の、正当性を証明するための前記リスポンスに基づいて生成された証明文とを含み、
前記検証部は、
前記シャッフル復号証明文と前記暗号文と前記公開鍵と前記シャッフル復号文との入力を受けて、前記順番の入れ替え及び前記暗号化における当該暗号文の変換内容の情報を証明文の作成側が持っていることを検証し、チャレンジを生成し、更に、前記入力される暗号文が複数の整数の要素である場合には、それぞれの要素が同じ順番の入れ替えと暗号化の処理とを受けていることを検証する同一変換検証部と、
前記リスポンスと前記シャッフル復号証明文の入力と前記同一変換検証部で生成されたチャレンジの入力とを受けて、前記暗号文に対して順番の入れ替えが正しくなされたことを検証する置換検証部と、
前記リスポンスと前記シャッフル復号証明文と前記同一変換検証部で生成されたチャレンジとの入力を受けて、前記シャッフル復号文が、前記シャッフル済み暗号文を前記秘密鍵を用いて正しく復号して生成されたことを検証する復号検証部とを備え、
前記同一変換検証部と、前記置換検証部と、前記復号検証部のそれぞれにおいて、全て正当と検証された場合に限り、前記シャッフル復号文が入力された前記暗号文を正しくシャッフル復号したと判定することを特徴とするシャッフル復号検証装置であって、
その入力に、入力された前記暗号文をシャッフルしたデータであるシャッフル済み暗号文を必要としないことを特徴とするシャッフル復号検証装置。
【請求項５】
複数の暗号文をシャッフル復号してシャッフル復号文を生成し、かつ前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を生成する証明付シャッフル復号方法であって、
前記シャッフル復号証明文を生成する証明付シャッフル復号装置のシャッフル部において、前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を生成するシャッフルステップと、
前記証明付シャッフル復号装置の復号部において、前記シャッフルステップで生成された前記暗号化したシャッフル済み暗号文を前記秘密鍵により復号して前記シャッフル復号文を生成する復号ステップと、
前記証明付シャッフル復号装置の証明部において、前記暗号文の順番の入れ替え方法を表す数値と、前記暗号化の方法を表す数値と、前記暗号化に使用された乱数とを用いて、前記シャッフルの正当性を証明する証明文を生成し、前記各数値と乱数に加えて、入力されたチャレンジとを用いて、前記証明において参照するリスポンスを生成し、前記リスポンスに基づいて、前記シャッフル復号文を生成するための前記順番の入れ替えと前記暗号化と前記復号とにおけるそれぞれの正当性を証明する証明文を生成し、前記生成された各証明文と前記リスポンスとを、前記シャッフル復号証明文として出力する証明ステップとを有することを特徴とする証明付シャッフル復号方法。
【請求項６】
前記シャッフルステップにおいて、前記複数の暗号文と前記公開鍵との入力を受けて、前記複数の暗号文の順番を入れ替えて前記公開鍵により暗号化することにより、前記複数のシャッフル済み暗号文を生成し、
前記復号ステップにおいて、前記複数のシャッフル済み暗号文と前記秘密鍵との入力を受けて、前記シャッフル済み暗号文を前記秘密鍵により復号した前記複数のシャッフル復号文を生成し、
前記証明ステップにおいて、前記複数の暗号文と前記公開鍵と前記秘密鍵との入力を受けて、前記シャッフル復号証明文を生成することを特徴とする請求項５に記載の証明付シャッフル復号方法。
【請求項７】
前記証明ステップにおいて、
前記順番の入れ替えにおける前後の対応関係と前記暗号化に使った乱数とを知っていることを証明する証明文を生成し、かつ、前記入力される暗号文が複数の整数の要素から成る場合には、更にそれぞれの要素が同じ順番の入れ替えをされ同じ乱数で処理されたことを証明する証明文を前記証明部の同一変換証明部によって生成する同一変換証明ステップと、
前記入力される暗号文に対しての、順番の入れ替えが正しくなされたことを証明する証明文を前記証明部の置換証明部によって生成する置換証明ステップと、
前記同一変換証明ステップ及び前記置換証明ステップからなるシャッフルの正当性を証明し、前記シャッフルの正当性を証明するために用いたデータと、入力された前記チャレンジとを用いて、前記同一変換証明ステップと置換証明ステップに対する前記リスポンスを前記証明部のリスポンス生成部によって生成するリスポンス生成ステップと、
前記シャッフル済み暗号文が前記秘密鍵を用いて正しく復号されて前記シャッフル復号文が生成されたことを証明する、前記リスポンスに基づく証明文を前記証明部の復号証明部によって生成する復号証明ステップを備え、
前記同一変換証明ステップと、前記置換証明ステップと、前記リスポンス生成ステップと、前記復号証明ステップにおいて生成された各前記証明文と前記リスポンスの全てを、前記シャッフル復号証明文として出力することを特徴とする請求項６に記載の証明付シャッフル復号方法。
【請求項８】
複数の暗号文をシャッフル復号して生成されたシャッフル復号文を、当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証方法であって、
前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証装置の検証部において、入力された当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証する検証ステップを備え、
前記シャッフル復号証明文は、
証明において参照するリスポンスと、
前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を前記秘密鍵により復号する処理である前記シャッフル復号文を生成する処理の、正当性を証明するための前記リスポンスに基づいて生成された証明文とを含み、
前記検証ステップにおいて、
前記シャッフル復号証明文と前記暗号文と前記公開鍵と前記シャッフル復号文との入力を受けて、前記順番の入れ替え及び前記暗号化における当該暗号文の変換内容の情報を証明文の作成側が持っていることを検証し、チャレンジを生成し、更に、前記入力される暗号文が複数の整数の要素である場合には、それぞれの要素が同じ順番の入れ替えと暗号化の処理とを受けていることを前記検証部の同一変換検証部によって検証する同一変換検証ステップと、
前記リスポンスと前記シャッフル復号証明文の入力と前記同一変換検証ステップで生成されたチャレンジの入力とを受けて、前記暗号文に対して順番の入れ替えが正しくなされたことを前記検証部の置換検証部によって検証する置換検証ステップと、
前記リスポンスと前記シャッフル復号証明文と前記同一変換検証ステップで生成されたチャレンジとの入力を受けて、前記シャッフル復号文が、前記シャッフル済み暗号文を前記秘密鍵を用いて正しく復号して生成されたことを前記検証部の復号検証部によって検証する復号検証ステップとを備え、
前記同一変換検証ステップと、前記置換検証ステップと、前記復号検証ステップのそれぞれにおいて、全て正当と検証された場合に限り、前記シャッフル復号文が入力された前記暗号文を正しくシャッフル復号したと判定することを特徴とするシャッフル復号検証方法であって、
その入力に、入力された前記暗号文をシャッフルしたデータであるシャッフル済み暗号文を必要としないことを特徴とするシャッフル復号検証方法。
【請求項９】
複数の暗号文をシャッフル復号して生成したシャッフル復号文の、前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を生成し、前記シャッフル復号証明文に基づいて前記シャッフル復号の処理が正しく行われたことを検証する証明付シャッフル復号システムにおいて、
前記複数の暗号文をシャッフル復号してシャッフル復号文を生成し、かつ前記シャッフル復号証明文を生成する証明付シャッフル復号装置と、
生成された前記シャッフル復号文と、当該シャッフル復号文の前記シャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証装置を備え、
前記証明付シャッフル復号装置は、
前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を生成するシャッフル部と、
前記シャッフル部で生成した前記暗号化したシャッフル済み暗号文を前記秘密鍵により復号して前記シャッフル復号文を生成する復号部と、
前記暗号文の順番の入れ替え方法を表す数値と、前記暗号化の方法を表す数値と前記暗号化に使用された乱数とを用いて、前記シャッフルの正当性を証明する証明文を生成し、前記各数値と乱数に加えて、入力されたチャレンジとを用いて、前記証明において参照するリスポンスを生成し、前記リスポンスに基づいて、前記シャッフル復号文を生成するための前記順番の入れ替えと前記暗号化と前記復号とにおけるそれぞれの正当性を証明する証明文を生成し、前記生成された各証明文と前記リスポンスとを、前記シャッフル復号証明文として出力する証明部とを備えることを特徴とする証明付シャッフル復号システム。
【請求項１０】
前記シャッフル部は、前記複数の暗号文と前記公開鍵との入力を受けて、前記複数の暗号文の順番を入れ替えて前記公開鍵により暗号化することにより、前記複数のシャッフル済み暗号文を生成し、
前記復号部は、前記複数のシャッフル済み暗号文と前記秘密鍵との入力を受けて、前記シャッフル済み暗号文を前記秘密鍵により復号した前記複数のシャッフル復号文を生成し、
前記証明部は、前記複数の暗号文と前記公開鍵と前記秘密鍵との入力を受けて、前記シャッフル復号証明文を生成することを特徴とする請求項９に記載の証明付シャッフル復号システム。
【請求項１１】
前記証明付シャッフル復号装置の前記証明部は、
前記順番の入れ替えにおける前後の対応関係と前記暗号化に使った乱数とを知っていることを証明する証明文を生成し、かつ、前記入力される暗号文が複数の整数の要素から成る場合には、更にそれぞれの要素が同じ順番の入れ替えをされ同じ乱数で処理されたことを証明する証明文を生成する同一変換証明部と、
前記入力される暗号文に対しての、順番の入れ替えが正しくなされたことを証明する証明文を生成する置換証明部と、
前記同一変換証明部及び前記置換証明部からなるシャッフルの正当性を証明し、前記シャッフルの正当性を証明するために用いたデータと、入力された前記チャレンジとを用いて、前記同一変換証明部と置換証明部に対する前記リスポンスを生成するリスポンス生成部と、
前記シャッフル済み暗号文が前記秘密鍵を用いて正しく復号されて前記シャッフル復号文が生成されたことを証明する、前記リスポンスに基づく証明文を生成する復号証明部を備え、
前記同一変換証明部と、前記置換証明部と、前記リスポンス生成部と、前記復号証明部により生成された各前記証明文と前記リスポンスの全てを、前記シャッフル復号証明文として出力することを特徴とする請求項１０に記載の証明付シャッフル復号システム。
【請求項１２】
前記シャッフル復号検証装置は、
前記リスポンスと前記シャッフル復号証明文と前記暗号文と前記公開鍵と前記シャッフル復号文との入力を受けて、前記順番の入れ替え及び前記暗号化における当該暗号文の変換内容の情報を証明文の作成側が持っていることを検証し、チャレンジを生成し、更に、前記入力される暗号文が複数の整数の要素である場合には、それぞれの要素が同じ順番の入れ替えと暗号化の処理とを受けていることを検証する同一変換検証部と、
前記リスポンスと前記シャッフル復号証明文の入力と前記同一変換検証部で生成されたチャレンジの入力とを受けて、前記暗号文に対して順番の入れ替えが正しくなされたことを検証する置換検証部と、
前記シャッフル復号証明文と前記同一変換検証部で生成されたチャレンジとの入力を受けて、前記シャッフル復号文が、前記シャッフル済み暗号文を前記秘密鍵を用いて正しく復号して生成されたことを検証する復号検証部とを備え、
前記同一変換検証部と、前記置換検証部と、前記復号検証部のそれぞれにおいて、全て正当と検証された場合に限り、前記シャッフル復号文が入力された前記暗号文を正しくシャッフル復号したと判定することを特徴とする請求項９から請求項１１のいずれか一つに記載の証明付シャッフル復号システム。
【請求項１３】
コンピュータを制御することにより、複数の暗号文をシャッフル復号してシャッフル復号文を生成し、かつ前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を生成する証明付シャッフル復号プログラムであって、
前記シャッフル復号証明文を生成する証明付シャッフル復号装置のシャッフル部において実行される、前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を生成するシャッフル処理と、
前記証明付シャッフル復号装置の復号部において実行される、前記シャッフル処理で生成した前記暗号化したシャッフル済み暗号文を前記秘密鍵により復号して前記シャッフル復号文を生成生成する復号処理と、
前記証明付シャッフル復号装置の証明部において実行される、前記暗号文の順番の入れ替え方法を表す数値と、前記暗号化の方法を表す数値と前記暗号化に使用された乱数とを用いて、前記シャッフルの正当性を証明する証明文を生成し、前記各数値と乱数に加えて、入力されたチャレンジとを用いて、前記証明において参照するリスポンスを生成し、前記リスポンスに基づいて、前記シャッフル復号文を生成するための前記順番の入れ替えと前記暗号化と前記復号とにおけるそれぞれの正当性を証明する証明文を生成し、前記生成された各証明文と前記リスポンスとを、前記シャッフル復号証明文として出力する証明処理とを有することを特徴とする証明付シャッフル復号プログラム。
【請求項１４】
前記シャッフル処理において、前記複数の暗号文と前記公開鍵との入力を受けて、前記複数の暗号文の順番を入れ替えて前記公開鍵により暗号化することにより、前記複数のシャッフル済み暗号文を生成し、
前記復号処理において、前記複数のシャッフル済み暗号文と前記秘密鍵との入力を受けて、前記シャッフル済み暗号文を前記秘密鍵により復号した前記複数のシャッフル復号文を生成し、
前記証明処理において、前記複数の暗号文と前記公開鍵と前記秘密鍵との入力を受けて、前記シャッフル復号証明文を生成することを特徴とする請求項１３に記載の証明付シャッフル復号プログラム。
【請求項１５】
前記証明処理は、
前記証明部の同一変換証明部において実行される、前記順番の入れ替えにおける前後の対応関係と前記暗号化に使った乱数とを知っていることを証明する証明文を生成し、かつ、前記入力される暗号文が複数の整数の要素から成る場合には、更にそれぞれの要素が同じ順番の入れ替えをされ同じ乱数で処理されたことを証明する証明文を生成する同一変換証明処理と、
前記証明部の置換証明部において実行される、前記入力される暗号文に対しての、順番の入れ替えが正しくなされたことを証明する証明文を生成する置換証明処理と、
前記証明部のリスポンス生成部において実行される、前記同一変換証明処理及び前記置換証明処理からなるシャッフルの正当性を証明し、前記シャッフルの正当性を証明するために用いたデータと、入力された前記チャレンジとを用いて、前記同一変換証明処理と置換証明処理に対する前記リスポンスを生成するリスポンス生成処理と、
前記証明部の復号証明部において実行される、前記シャッフル済み暗号文が前記秘密鍵を用いて正しく復号されて前記シャッフル復号文が生成されたことを証明する、前記リスポンスに基づく証明文を生成する復号証明処理とを備え、
前記同一変換証明処理と、前記置換証明処理と、前記リスポンス生成処理と、前記復号証明処理において生成された各前記証明文と前記リスポンスの全てを、前記シャッフル復号証明文として出力する処理を実行させることを特徴とする請求項１４に記載の証明付シャッフル復号プログラム。
【請求項１６】
コンピュータを制御することにより、複数の暗号文をシャッフル復号して生成されたシャッフル復号文を、当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証プログラムであって、
前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証装置の検証部において実行される、入力された当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証する検証処理を備え、
前記シャッフル復号証明文は、
証明において参照するリスポンスと、
前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を前記秘密鍵により復号する処理である前記シャッフル復号文を生成する処理の、正当性を証明するための前記リスポンスに基づいて生成された証明文とを含み、
前記検証処理において、
前記検証部の同一変換検証部に、前記リスポンスと前記シャッフル復号証明文と前記暗号文と前記公開鍵と前記シャッフル復号文との入力を受けて、前記順番の入れ替え及び前記暗号化における当該暗号文の変換内容の情報を証明文の作成側が持っていることを検証し、チャレンジを生成し、更に、前記入力される暗号文が複数の整数の要素である場合には、それぞれの要素が同じ順番の入れ替えと暗号化の処理とを受けていることを検証する同一変換検証処理を実行させ、
前記検証部の置換検証部に、前記リスポンスと前記シャッフル復号証明文の入力と前記同一変換検証処理で生成されたチャレンジの入力とを受けて、前記暗号文に対して順番の入れ替えが正しくなされたことを検証する置換検証処理を実行させ、
前記検証部の復号検証部に、前記シャッフル復号証明文と前記同一変換検証処理で生成されたチャレンジとの入力を受けて、前記シャッフル復号文が、前記シャッフル済み暗号文を前記秘密鍵を用いて正しく復号して生成されたことを検証する復号検証処理を実行させ、
前記同一変換検証処理と、前記置換検証処理と、前記復号検証処理のそれぞれにおいて、全て正当と検証された場合に限り、前記シャッフル復号文が入力された前記暗号文を正しくシャッフル復号したと判定することを特徴とするシャッフル復号検証プログラムであって、
その入力に、入力された前記暗号文をシャッフルしたデータであるシャッフル済み暗号文を必要としないことを特徴とするシャッフル復号検証プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、匿名通信路の構成等において使われる、証明付シャッフル及び証明付復号を処理する証明付シャッフル復号システムと証明付シャッフル復号方法、シャッフル復号検証方法に関する。
【０００２】
【従来の技術】
［従来の証明付シャッフル］
従来の証明付シャッフルの技術には、例えば、特願２０００−０５９０９１号（以下、文献１）に記載された従来技術がある。
【０００３】
図６は、文献１に記載された従来技術の構成を示す図である。なお、以下各図面中においては、合流する矢印は、矢印の元の側における情報が全て集まって矢印の先へ送られることを意味し、分岐する矢印は、矢印の元の側の情報の全て又は一部がそれぞれの矢印の先へ送られることを意味する。
【０００４】
また、本明細書におけるシャッフルは、文献１においては再暗号シャッフルと呼んでいる。ここで、シャッフルとは、入力された暗号文をその順序を入れ替えて再び暗号化することである。
【０００５】
図６においては、まず、暗号文と公開鍵１００がシャッフルステップ１０１に入力されてシャッフルされる。この時入力された暗号文１００とシャッフルを特定する情報であるシャッフル情報１０２が同一変換証明ステップ１０３に送られ、シャッフル情報１０２が置換証明ステップ１０４に送られる。同一変換証明ステップ１０３は、同一変換証明文１０５を生成し出力すると同時に、証明文生成に使用した乱数１０６を置換証明ステップ１０４に送る。置換証明ステップ１０４は置換証明文１０７を出力する。リスポンス生成ステップ１０８には、同一変換証明文１０５と置換証明文１０４と暗号文と公開鍵１００とシャッフル済み暗号文１０９とを入力し、同一変換証明文１０５と置換証明文１０４と暗号文とにリスポンスを加えてシャッフル証明文１１０を生成し出力する。
【０００６】
同一変換証明文１０５は、リスポンスと合さって、入力文の順番の入れ替えや暗号化である暗号文の変換内容の知識を持っていることの証明であると同時に、入力される暗号文が複数の整数の要素となる場合はそれぞれの要素が同じ順番の入れ替えと対応する暗号化の処理とを受けたことの証明でもある。置換証明文１０７は、リスポンスと合さって、入力される暗号文に対しての、順番の入れ替えが正しくなされたことの証明である。
【０００７】
このシャッフルの処理が正当であることを証明するために、文献１では同一変換証明ステップと置換証明ステップの二つの証明ステップを用いている。この証明対象の分割により文献１ではシャッフル証明文生成の効率化を達成している。
【０００８】
［従来の証明付復号］
従来の証明付復号の技術には、例えば、特開平０８−２６３５７５号公報（以下、文献２）に開示された従来技術がある。
【０００９】
図７は、文献２に開示された従来技術の構成を示す図である。図７を参照すると、まず、シャッフル済み暗号文２００と秘密鍵２０１とが、復号ステップ２０３に入力されて復号される。この時入力されたシャッフル済み暗号文２００と秘密鍵２０１と、複合されて得られた復号文２０４とが、復号証明ステップ２０５に送られる。復号証明ステップ２０５は、これらの情報より復号証明文２０６を出力する。
【００１０】
ここで、復号とは、暗号文を分散所持されている秘密鍵の一部を使って、部分的に暗号文を復号することであり、秘密鍵の一部を全て用いて復号を繰り返すと完全な復号がなされる。
【００１１】
［従来の技術による、証明付シャッフル復号方法］
文献１の証明付シャッフルの技術と、文献２の証明付復号の技術とを合わせることにより、証明付シャッフル復号方法を構成することができる。
【００１２】
図８は、文献１と文献２の従来技術を単純につなげることにより構成された証明付シャッフル復号方法を示す図である。この方法では、シャッフル済み暗号文３０４がシャッフル復号証明文３１６に含まれていることと、シャッフル済み暗号文３０４が復号証明ステップに入力されることと、リスポンス生成ステップからの入力がないこととが特徴である。
【００１３】
【発明が解決しようとする課題】
上述したように従来の技術では、以下に述べるような問題点があった。
【００１４】
入力された暗号文をシャッフルし、かつそのシャッフルされた結果に復号を施して復号文を出力し、更にその処理の正当性証明文を生成して出力する方式を考える。これは、前述のように、文献１と文献２の従来技術を組み合わせることにより匿名通信路を構成することができるが、この手法では、不要な情報であるシャッフル済み暗号文が正当性の証明のために必要となり、これを出力する必要がある。暗号文の数が多い場合等、このように不要なシャッフル済み暗号文を出力することは、証明文量を増大させ通信の効率を悪くする。
【００１５】
また、文献２の従来技術では、証明文生成のために計算量の大きい冪乗剰余演算を暗号文数に比例して行わなければならない。そのためにシャッフル復号の効率を悪くしている。
【００１６】
本発明の第１の目的は、上記従来技術の欠点を解決し、文献１と文献２を組み合わせた方式であって、シャッフル済み暗号文を出力する必要がなく、かつ計算量と証明文量を共に少なく抑え効率の良い証明付シャッフル復号システムと証明付シャッフル復号方法、シャッフル復号検証方法を提供することである。
【００１７】
本発明の第２の目的は、上記従来技術の欠点を解決し、冪乗剰余演算の回数及び計算量を大きく削減し、更なる高速化を実現する証明付シャッフル復号システムと証明付シャッフル復号方法、シャッフル復号検証方法を提供することである。
【００１８】
【課題を解決するための手段】
上記目的を達成するため本発明の証明付シャッフル復号装置は、複数の暗号文をシャッフル復号してシャッフル復号文を生成し、かつ前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を生成する証明付シャッフル復号装置において、前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を生成するシャッフル部と、前記シャッフル部で生成した前記暗号化したシャッフル済み暗号文を前記秘密鍵により復号して前記シャッフル復号文を生成する復号部と、前記暗号文の順番の入れ替え方法を表す数値と、前記暗号化の方法を表す数値と、前記暗号化に使用された乱数とを用いて、前記シャッフルの正当性を証明する証明文を生成し、前記各数値及び乱数に加え、入力されたチャレンジを用いて、前記証明において参照するリスポンスを生成し、前記リスポンスに基づいて、前記シャッフル復号文を生成するための前記順番の入れ替えと前記暗号化と前記復号とにおけるそれぞれの正当性を証明する証明文を生成し、前記生成された各証明文と前記リスポンスとを、前記シャッフル復号証明文として出力する証明部とを備えることを特徴とする。
【００１９】
請求項２の本発明の証明付シャッフル復号装置は、前記シャッフル部は、前記複数の暗号文と前記公開鍵との入力を受けて、前記複数の暗号文の順番を入れ替えて前記公開鍵により暗号化することにより、前記複数のシャッフル済み暗号文を生成し、前記復号部は、前記複数のシャッフル済み暗号文と前記秘密鍵との入力を受けて、前記シャッフル済み暗号文を前記秘密鍵により復号した前記複数のシャッフル復号文を生成し、前記証明部は、前記複数の暗号文と前記公開鍵と前記秘密鍵との入力を受けて、前記シャッフル復号証明文を生成することを特徴とする。
【００２０】
請求項３の本発明の証明付シャッフル復号装置は、前記証明部は、前記順番の入れ替えにおける前後の対応関係と前記暗号化に使った乱数とを知っていることを証明する証明文を生成し、かつ、前記入力される暗号文が複数の整数の要素から成る場合には、更にそれぞれの要素が同じ順番の入れ替えをされ同じ乱数で処理されたことを証明する証明文を生成する同一変換証明部と、前記入力される暗号文に対しての、順番の入れ替えが正しくなされたことを証明する証明文を生成する置換証明部と、前記同一変換証明部及び前記置換証明部からなるシャッフルの正当性を証明し、前記シャッフルの正当性を証明するために用いたデータと、入力された前記チャレンジとを用いて、前記同一変換証明部と前記置換証明部に対する前記リスポンスを生成するリスポンス生成部と、前記シャッフル済み暗号文が前記秘密鍵を用いて正しく復号されて前記シャッフル復号文が生成されたことを証明する、前記リスポンスに基づく証明文を生成する復号証明部を備え、前記同一変換証明部と、前記置換証明部と、前記リスポンス生成部と、前記復号証明部により生成された各前記証明文と前記リスポンスの全てを、前記シャッフル復号証明文として出力することを特徴とする。
【００２１】
請求項４の本発明のシャッフル復号検証装置は、複数の暗号文をシャッフル復号して生成されたシャッフル復号文を、当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証装置において、入力された当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証する検証部を備え、前記シャッフル復号証明文は、証明において参照するリスポンスと、前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を前記秘密鍵により復号する処理である前記シャッフル復号文を生成する処理の、正当性を証明するための前記リスポンスに基づいて生成された証明文とを含み、前記検証部は、前記シャッフル復号証明文と前記暗号文と前記公開鍵と前記シャッフル復号文との入力を受けて、前記順番の入れ替え及び前記暗号化における当該暗号文の変換内容の情報を証明文の作成側が持っていることを検証し、チャレンジを生成し、更に、前記入力される暗号文が複数の整数の要素である場合には、それぞれの要素が同じ順番の入れ替えと暗号化の処理とを受けていることを検証する同一変換検証部と、前記リスポンスと前記シャッフル復号証明文の入力と前記同一変換検証部で生成されたチャレンジの入力とを受けて、前記暗号文に対して順番の入れ替えが正しくなされたことを検証する置換検証部と、前記リスポンスと前記シャッフル復号証明文と前記同一変換検証部で生成されたチャレンジとの入力を受けて、前記シャッフル復号文が、前記シャッフル済み暗号文を前記秘密鍵を用いて正しく復号して生成されたことを検証する復号検証部とを備え、前記同一変換検証部と、前記置換検証部と、前記復号検証部のそれぞれにおいて、全て正当と検証された場合に限り、前記シャッフル復号文が入力された前記暗号文を正しくシャッフル復号したと判定することを特徴とするシャッフル復号検証装置であって、その入力に、入力された前記暗号文をシャッフルしたデータであるシャッフル済み暗号文を必要としないことを特徴とする。
【００２２】
請求項５の本発明の証明付シャッフル復号方法は、複数の暗号文をシャッフル復号してシャッフル復号文を生成し、かつ前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を生成する証明付シャッフル復号方法であって、前記シャッフル復号証明文を生成する証明付シャッフル復号装置のシャッフル部において、前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を生成するシャッフルステップと、前記証明付シャッフル復号装置の復号部において、前記シャッフルステップで生成された前記暗号化したシャッフル済み暗号文を前記秘密鍵により復号して前記シャッフル復号文を生成する復号ステップと、前記証明付シャッフル復号装置の証明部において、前記暗号文の順番の入れ替え方法を表す数値と、前記暗号化の方法を表す数値と、前記暗号化に使用された乱数とを用いて、前記シャッフルの正当性を証明する証明文を生成し、前記各数値と乱数に加えて、入力されたチャレンジとを用いて、前記証明において参照するリスポンスを生成し、前記リスポンスに基づいて、前記シャッフル復号文を生成するための前記順番の入れ替えと前記暗号化と前記復号とにおけるそれぞれの正当性を証明する証明文を生成し、前記生成された各証明文と前記リスポンスとを、前記シャッフル復号証明文として出力する証明ステップとを有することを特徴とする。
【００２３】
請求項６の本発明の証明付シャッフル復号方法は、前記シャッフルステップにおいて、前記複数の暗号文と前記公開鍵との入力を受けて、前記複数の暗号文の順番を入れ替えて前記公開鍵により暗号化することにより、前記複数のシャッフル済み暗号文を生成し、前記復号ステップにおいて、前記複数のシャッフル済み暗号文と前記秘密鍵との入力を受けて、前記シャッフル済み暗号文を前記秘密鍵により復号した前記複数のシャッフル復号文を生成し、前記証明ステップにおいて、前記複数の暗号文と前記公開鍵と前記秘密鍵との入力を受けて、前記シャッフル復号証明文を生成することを特徴とする。
【００２４】
請求項７の本発明の証明付シャッフル復号方法は、前記証明ステップにおいて、
前記順番の入れ替えにおける前後の対応関係と前記暗号化に使った乱数とを知っていることを証明する証明文を生成し、かつ、前記入力される暗号文が複数の整数の要素から成る場合には、更にそれぞれの要素が同じ順番の入れ替えをされ同じ乱数で処理されたことを証明する証明文を前記証明部の同一変換証明部によって生成する同一変換証明ステップと、前記入力される暗号文に対しての、順番の入れ替えが正しくなされたことを証明する証明文を前記証明部の置換証明部によって生成する置換証明ステップと、前記同一変換証明ステップ及び前記置換証明ステップからなるシャッフルの正当性を証明し、前記シャッフルの正当性を証明するために用いたデータと、入力された前記チャレンジとを用いて、前記同一変換証明ステップと置換証明ステップに対する前記リスポンスを前記証明部のリスポンス生成部によって生成するリスポンス生成ステップと、前記シャッフル済み暗号文が前記秘密鍵を用いて正しく復号されて前記シャッフル復号文が生成されたことを証明する、前記リスポンスに基づく証明文を前記証明部の復号証明部によって生成する復号証明ステップを備え、前記同一変換証明ステップと、前記置換証明ステップと、前記リスポンス生成ステップと、前記復号証明ステップにおいて生成された各前記証明文と前記リスポンスの全てを、前記シャッフル復号証明文として出力することを特徴とする。
【００２５】
請求項８の本発明のシャッフル復号検証方法は、複数の暗号文をシャッフル復号して生成されたシャッフル復号文を、当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証方法であって、前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証装置の検証部において、入力された当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証する検証ステップを備え、前記シャッフル復号証明文は、証明において参照するリスポンスと、前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を前記秘密鍵により復号する処理である前記シャッフル復号文を生成する処理の、正当性を証明するための前記リスポンスに基づいて生成された証明文とを含み、前記検証ステップにおいて、前記シャッフル復号証明文と前記暗号文と前記公開鍵と前記シャッフル復号文との入力を受けて、前記順番の入れ替え及び前記暗号化における当該暗号文の変換内容の情報を証明文の作成側が持っていることを検証し、チャレンジを生成し、更に、前記入力される暗号文が複数の整数の要素である場合には、それぞれの要素が同じ順番の入れ替えと暗号化の処理とを受けていることを前記検証部の同一変換検証部によって検証する同一変換検証ステップと、前記リスポンスと前記シャッフル復号証明文の入力と前記同一変換検証ステップで生成されたチャレンジの入力とを受けて、前記暗号文に対して順番の入れ替えが正しくなされたことを前記検証部の置換検証部によって検証する置換検証ステップと、前記リスポンスと前記シャッフル復号証明文と前記同一変換検証ステップで生成されたチャレンジとの入力を受けて、前記シャッフル復号文が、前記シャッフル済み暗号文を前記秘密鍵を用いて正しく復号して生成されたことを前記検証部の復号検証部によって検証する復号検証ステップとを備え、前記同一変換検証ステップと、前記置換検証ステップと、前記復号検証ステップのそれぞれにおいて、全て正当と検証された場合に限り、前記シャッフル復号文が入力された前記暗号文を正しくシャッフル復号したと判定することを特徴とするシャッフル復号検証方法であって、その入力に、入力された前記暗号文をシャッフルしたデータであるシャッフル済み暗号文を必要としないことを特徴とする。
【００２６】
請求項９の本発明の証明付シャッフル復号システムは、複数の暗号文をシャッフル復号して生成したシャッフル復号文の、前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を生成し、前記シャッフル復号証明文に基づいて前記シャッフル復号の処理が正しく行われたことを検証する証明付シャッフル復号システムにおいて、前記複数の暗号文をシャッフル復号してシャッフル復号文を生成し、かつ前記シャッフル復号証明文を生成する証明付シャッフル復号装置と、生成された前記シャッフル復号文と、当該シャッフル復号文の前記シャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証装置を備え、前記証明付シャッフル復号装置は、前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を生成するシャッフル部と、前記シャッフル部で生成した前記暗号化したシャッフル済み暗号文を前記秘密鍵により復号して前記シャッフル復号文を生成する復号部と、前記暗号文の順番の入れ替え方法を表す数値と、前記暗号化の方法を表す数値と前記暗号化に使用された乱数とを用いて、前記シャッフルの正当性を証明する証明文を生成し、前記各数値と乱数に加えて、入力されたチャレンジとを用いて、前記証明において参照するリスポンスを生成し、前記リスポンスに基づいて、前記シャッフル復号文を生成するための前記順番の入れ替えと前記暗号化と前記復号とにおけるそれぞれの正当性を証明する証明文を生成し、前記生成された各証明文と前記リスポンスとを、前記シャッフル復号証明文として出力する証明部とを備えることを特徴とする。
【００２７】
請求項１０の本発明の証明付シャッフル復号システムは、前記シャッフル部は、前記複数の暗号文と前記公開鍵との入力を受けて、前記複数の暗号文の順番を入れ替えて前記公開鍵により暗号化することにより、前記複数のシャッフル済み暗号文を生成し、前記復号部は、前記複数のシャッフル済み暗号文と前記秘密鍵との入力を受けて、前記シャッフル済み暗号文を前記秘密鍵により復号した前記複数のシャッフル復号文を生成し、前記証明部は、前記複数の暗号文と前記公開鍵と前記秘密鍵との入力を受けて、前記シャッフル復号証明文を生成することを特徴とする。
【００２８】
請求項１１の本発明の証明付シャッフル復号システムは、前記証明付シャッフル復号装置の前記証明部は、前記順番の入れ替えにおける前後の対応関係と前記暗号化に使った乱数とを知っていることを証明する証明文を生成し、かつ、前記入力される暗号文が複数の整数の要素から成る場合には、更にそれぞれの要素が同じ順番の入れ替えをされ同じ乱数で処理されたことを証明する証明文を生成する同一変換証明部と、前記入力される暗号文に対しての、順番の入れ替えが正しくなされたことを証明する証明文を生成する置換証明部と、前記同一変換証明部及び前記置換証明部からなるシャッフルの正当性を証明し、前記シャッフルの正当性を証明するために用いたデータと、入力された前記チャレンジとを用いて、前記同一変換証明部と置換証明部に対する前記リスポンスを生成するリスポンス生成部と、前記シャッフル済み暗号文が前記秘密鍵を用いて正しく復号されて前記シャッフル復号文が生成されたことを証明する、前記リスポンスに基づく証明文を生成する復号証明部を備え、前記同一変換証明部と、前記置換証明部と、前記リスポンス生成部と、前記復号証明部により生成された各前記証明文と前記リスポンスの全てを、前記シャッフル復号証明文として出力することを特徴とする。
【００２９】
請求項１２の本発明の証明付シャッフル復号システムは、前記シャッフル復号検証装置は、前記リスポンスと前記シャッフル復号証明文と前記暗号文と前記公開鍵と前記シャッフル復号文との入力を受けて、前記順番の入れ替え及び前記暗号化における当該暗号文の変換内容の情報を証明文の作成側が持っていることを検証し、チャレンジを生成し、更に、前記入力される暗号文が複数の整数の要素である場合には、それぞれの要素が同じ順番の入れ替えと暗号化の処理とを受けていることを検証する同一変換検証部と、前記リスポンスと前記シャッフル復号証明文の入力と前記同一変換検証部で生成されたチャレンジの入力とを受けて、前記暗号文に対して順番の入れ替えが正しくなされたことを検証する置換検証部と、前記シャッフル復号証明文と前記同一変換検証部で生成されたチャレンジとの入力を受けて、前記シャッフル復号文が、前記シャッフル済み暗号文を前記秘密鍵を用いて正しく復号して生成されたことを検証する復号検証部とを備え、前記同一変換検証部と、前記置換検証部と、前記復号検証部のそれぞれにおいて、全て正当と検証された場合に限り、前記シャッフル復号文が入力された前記暗号文を正しくシャッフル復号したと判定することを特徴とする。
【００３０】
請求項１３の本発明の証明付シャッフル復号プログラムは、コンピュータを制御することにより、複数の暗号文をシャッフル復号してシャッフル復号文を生成し、かつ前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を生成する証明付シャッフル復号プログラムであって、前記シャッフル復号証明文を生成する証明付シャッフル復号装置のシャッフル部において実行される、前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を生成するシャッフル処理と、前記証明付シャッフル復号装置の復号部において実行される、前記シャッフル処理で生成した前記暗号化したシャッフル済み暗号文を前記秘密鍵により復号して前記シャッフル復号文を生成生成する復号処理と、前記証明付シャッフル復号装置の証明部において実行される、前記暗号文の順番の入れ替え方法を表す数値と、前記暗号化の方法を表す数値と前記暗号化に使用された乱数とを用いて、前記シャッフルの正当性を証明する証明文を生成し、前記各数値と乱数に加えて、入力されたチャレンジとを用いて、前記証明において参照するリスポンスを生成し、前記リスポンスに基づいて、前記シャッフル復号文を生成するための前記順番の入れ替えと前記暗号化と前記復号とにおけるそれぞれの正当性を証明する証明文を生成し、前記生成された各証明文と前記リスポンスとを、前記シャッフル復号証明文として出力する証明処理とを有することを特徴とする。
【００３１】
請求項１４の本発明の証明付シャッフル復号プログラムは、前記シャッフル処理において、前記複数の暗号文と前記公開鍵との入力を受けて、前記複数の暗号文の順番を入れ替えて前記公開鍵により暗号化することにより、前記複数のシャッフル済み暗号文を生成し、前記復号処理において、前記複数のシャッフル済み暗号文と前記秘密鍵との入力を受けて、前記シャッフル済み暗号文を前記秘密鍵により復号した前記複数のシャッフル復号文を生成し、前記証明処理において、前記複数の暗号文と前記公開鍵と前記秘密鍵との入力を受けて、前記シャッフル復号証明文を生成することを特徴とする。
【００３２】
請求項１５の本発明の証明付シャッフル復号プログラムは、前記証明処理は、前記証明部の同一変換証明部において実行される、前記順番の入れ替えにおける前後の対応関係と前記暗号化に使った乱数とを知っていることを証明する証明文を生成し、かつ、前記入力される暗号文が複数の整数の要素から成る場合には、更にそれぞれの要素が同じ順番の入れ替えをされ同じ乱数で処理されたことを証明する証明文を生成する同一変換証明処理と、前記証明部の置換証明部において実行される、前記入力される暗号文に対しての、順番の入れ替えが正しくなされたことを証明する証明文を生成する置換証明処理と、前記証明部のリスポンス生成部において実行される、前記同一変換証明処理及び前記置換証明処理からなるシャッフルの正当性を証明し、前記シャッフルの正当性を証明するために用いたデータと、入力された前記チャレンジとを用いて、前記同一変換証明処理と置換証明処理に対する前記リスポンスを生成するリスポンス生成処理と、前記証明部の復号証明部において実行される、前記シャッフル済み暗号文が前記秘密鍵を用いて正しく復号されて前記シャッフル復号文が生成されたことを証明する、前記リスポンスに基づく証明文を生成する復号証明処理とを備え、前記同一変換証明処理と、前記置換証明処理と、前記リスポンス生成処理と、前記復号証明処理において生成された各前記証明文と前記リスポンスの全てを、前記シャッフル復号証明文として出力する処理を実行させることを特徴とする。
【００３３】
請求項１６の本発明のシャッフル復号検証プログラムは、コンピュータを制御することにより、複数の暗号文をシャッフル復号して生成されたシャッフル復号文を、当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証プログラムであって、
前記シャッフル復号の処理が正しく行われたことを検証するシャッフル復号検証装置の検証部において実行される、入力された当該シャッフル復号文の前記シャッフル復号の処理が正しく行われたことを証明する証明文であるシャッフル復号証明文を参照し、前記シャッフル復号の処理が正しく行われたことを検証する検証処理を備え、前記シャッフル復号証明文は、証明において参照するリスポンスと、前記暗号文の順番を入れ替えて前記公開鍵により暗号化したシャッフル済み暗号文を前記秘密鍵により復号する処理である前記シャッフル復号文を生成する処理の、正当性を証明するための前記リスポンスに基づいて生成された証明文とを含み、前記検証処理において、前記検証部の同一変換検証部に、前記リスポンスと前記シャッフル復号証明文と前記暗号文と前記公開鍵と前記シャッフル復号文との入力を受けて、前記順番の入れ替え及び前記暗号化における当該暗号文の変換内容の情報を証明文の作成側が持っていることを検証し、チャレンジを生成し、更に、前記入力される暗号文が複数の整数の要素である場合には、それぞれの要素が同じ順番の入れ替えと暗号化の処理とを受けていることを検証する同一変換検証処理を実行させ、前記検証部の置換検証部に、前記リスポンスと前記シャッフル復号証明文の入力と前記同一変換検証処理で生成されたチャレンジの入力とを受けて、前記暗号文に対して順番の入れ替えが正しくなされたことを検証する置換検証処理を実行させ、前記検証部の復号検証部に、前記シャッフル復号証明文と前記同一変換検証処理で生成されたチャレンジとの入力を受けて、前記シャッフル復号文が、前記シャッフル済み暗号文を前記秘密鍵を用いて正しく復号して生成されたことを検証する復号検証処理を実行させ、前記同一変換検証処理と、前記置換検証処理と、前記復号検証処理のそれぞれにおいて、全て正当と検証された場合に限り、前記シャッフル復号文が入力された前記暗号文を正しくシャッフル復号したと判定することを特徴とするシャッフル復号検証プログラムであって、その入力に、入力された前記暗号文をシャッフルしたデータであるシャッフル済み暗号文を必要としないことを特徴とする。
【００３４】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００３５】
［証明付シャッフル復号方法］
本発明の証明付シャッフル復号においては、まず、暗号文と公開鍵と秘密鍵とを入力して、その暗号文と公開鍵からシャッフル済み暗号文を生成し、そのシャッフル済み暗号文を秘密鍵により復号して復号文を生成する。
【００３６】
次に、証明付シャッフル方法（証明付暗号シャッフル方法）を用いて、シャッフル済み暗号文とシャッフル証明文を生成する。この証明付シャッフルの処理は、例えば、文献１に記載された従来の技術を持ちいることができる。但し、本発明においては、証明文生成時のチャレンジ（文献１では挑戦値と記述）を生成する時に、シャッフル済み暗号文の代わりに復号文を用いる。
【００３７】
次に、検証仮定にてシャッフル済み暗号文の代わりに復号文を用いた場合に生じることによる検証式の差分を生成し、これをシャッフル証明文に加える。
【００３８】
次に、前記差分が正当に作成されたことの証明文を、復号証明文として生成する。前記シャッフル証明文と復号証明文を合わせてシャッフル復号証明文とし、この復号文とシャッフル復号証明文とを出力する。
【００３９】
［シャッフル復号検証方法］
本発明のシャッフル復号検証においては、まず、暗号文と公開鍵と復号文とシャッフル復号証明文とを入力する。ここで本発明では、文献１のシャッフル検証におけるシャッフル済み暗号文の代わりに、復号文を入力して検証を行う。但し、シャッフル復号証明文に含まれる「検証仮定において、シャッフル済み暗号文の代わりに復号文を用いたために生じる検証式の差分」を利用して、検証式を修正して用いる。次に、前記差分の正当性を検証する。二つの検証（復号文を用いたシャッフル検証と、検証式の差分の正当性の検証）の結果が共に「正当」であれば、シャッフル復号の検証結果として「正当」を、そうでなければ「不当」を出力する。
【００４０】
図１は、本発明の一実施の形態による証明付シャッフル復号システムの構成を示すブロック図である。図１を参照すると、本実施の形態の証明付シャッフル復号システムは、証明文を生成する側の装置である証明付シャッフル復号装置１０と、証明文を基に検証を行う側の装置であるシャッフル復号検証装置２０を備えている。
【００４１】
証明付シャッフル復号装置１０は、シャッフル部１１、復号部１２、証明部１３を備えている。
【００４２】
シャッフル部１１は、複数の暗号文と公開鍵との入力を受けて、入力された複数の暗号文の順番を入れ替えて、その結果を公開鍵により暗号化した複数のシャッフル済み暗号文を生成する。
【００４３】
復号部１２は、シャッフル部１１により生成された複数のシャッフル済み暗号文と、秘密鍵の入力を受けて、シャッフル済み暗号文を秘密鍵により復号した複数の復号文を生成し出力する。
【００４４】
証明部１３は、複数の暗号文と公開鍵と秘密鍵とに基づいて証明文を生成する。証明部１３は、更に同一変換証明部１３−１、置換証明部１３−２、リスポンス生成部１３−３、復号証明部１３−４を備えている。
【００４５】
同一変換証明部１３−１は、シャッフル部１１による順番の入れ替えの前後の対応関係と、暗号化に使った乱数とを知っていることを証明する（ゼロ知識証明を行う）証明文を生成する。また、同一変換証明部１３−１は、入力される暗号文が複数の整数の要素からなる場合には、それぞれの要素が同じ順番の入れ替えをされ同じ乱数で処理されたことを証明するための証明文も生成する。
【００４６】
置換証明部１３−２は、入力される暗号文に対しての、順番の入れ替えが正しくなされたことを証明する証明文を生成する。リスポンス生成部１３−３は、同一変換証明部１３−１と置換証明部１３−２に対するリスポンスを生成する。復号証明部１３−４は、シャッフル済み暗号文が、秘密鍵を用いて正しく復号されて復号文が生成されたことを証明する証明文を生成する。
【００４７】
そして、証明付シャッフル復号装置１０は、同一変換証明部１３−１、置換証明部１３−２、リスポンス生成部１３−３、復号証明部１３−４により生成された証明文とリスポンスの全てを、シャッフル復号の証明文として出力する。
【００４８】
シャッフル復号検証装置２０は、同一変換検証部２１、置換検証部２２、復号検証部２３を備えている。
【００４９】
同一変換検証部２１は、シャッフル復号証明文と暗号文と公開鍵と復号文の入力を受けて、順番の入れ替え及び暗号化である暗号文の変換内容の知識を持っていることを検証する。また、同一変換検証部２１は、入力される暗号文が複数の整数の要素となる場合は、それぞれの要素が同じ順番の入れ替えと暗号化の処理とを受けたことを検証する。そして、同一変換検証部２１は、検証結果を「正当」又は「不当」として出力し、またチャレンジ（挑戦値）を生成し出力する。
【００５０】
置換検証部２２は、シャッフル復号証明文と同一変換検証部２１により生成されたチャレンジの入力を受けて、入力される暗号文に対しての順番の入れ替えが正しくなされたことを検証し、その検証結果を「正当」又は「不当」として出力する。
【００５１】
復号検証部２３は、シャッフル復号証明文と同一変換検証部２１により生成されたチャレンジの入力を受けて、シャッフル済み暗号文が秘密鍵を用いて正しく復号されて復号文が生成されたことを検証し、その検証結果を「正当」又は「不当」として出力する。
【００５２】
シャッフル復号検証装置２０は、この同一変換検証部２１、置換検証部２２、復号検証部２３のそれぞれの検証結果の全てが「正当」でる場合には、シャッフル復号文が入力された暗号文を正しくシャッフル復号した結果であると判定し、その判定結果を「正当」と出力する。また、この検証結果の内の一つでも「不当」である場合には、その判定結果を「不当」と出力する。
【００５３】
以下、本実施の形態においては、Ｅｌｇａｍａｌ暗号を用いる実施例を用いて本発明を説明する。以下では、本発明にて前提となる事項から順に説明していく。
【００５４】
［Ｅｌｇａｍａｌ暗号方式］
Ｅｌｇａｍａｌ暗号方式は、公開鍵暗号系に属する暗号方式である。最初に関係
ｐ＝ｋｑ＋１
を満たしている二つの素数ｐ、ｑを定める。これらの素数はＥｌＧａｍａｌドメインパラメタと呼ばれる。秘密鍵
ｘ∈ＲＺｑ
をＺｑの要素から選ぶ。次に公開鍵
（ｇ０、ｍ０）
を位数ｑのＺ＊ｐの要素で、
ｍ０＝ｇ０ｘｍｏｄ  ｐ
この式を満たすものとして選ぶ。
【００５５】
Ｚ＊ｐの要素である平文
Ｐ∈Ｚ＊ｐ
を暗号化するには、秘密に乱数
ｓ∈ＲＺｑ
を生成して暗号文を
（Ｇ、Ｍ）＝（ｇ０ｓ、ｍ０ｓＰ）ｍｏｄ  ｐ
と計算する。この暗号文を復号するには秘密鍵
ｘ∈ＲＺｑ
を用いて、
Ｐ’＝Ｍ／Ｇｘｍｏｄ  ｐ
と計算する。復号文Ｐ’は、平文Ｐに一致する。
【００５６】
ここで、秘密鍵
ｘ∈ＲＺｑ
が分散所持されている場合を考える。すなわち、ｘがｎ個のｘｊ（ｊ＝１、・・・、ｎ）により別個に分散所持され、
ｘ＝（ｘ１＋・・・＋ｘｎ）ｍｏｄ  ｑ
が成り立つ場合である。本明細書では、このｘｊ（ｊ＝１、・・・、ｎ）を復号用の秘密鍵と呼ぶこととする。
【００５７】
この時暗号文を完全に復号するには、数１の式により、Ｍを各復号用の秘密鍵を用いて計算した値で順に割っていく復号操作を、全てのｘｊ（ｊ＝１、・・・、ｎ）に関して行う。ただし、本実施例では１つの復号用の秘密鍵しか扱わないため、これをｘ’と表す。
【数１】
0003901471.tif 000002
【００５８】
［暗号文］
入力されるｎ個の暗号文を、数２により示されるものとする。それぞれの暗号文の各要素は位数ｑのＺ＊ｐの元である。
【数２】
0003901471.tif 000003
【００５９】
［復号文］
出力されるｎ個の復号文を、、数２により示されるものとする。それぞれの復号文の各要素は位数ｑのＺ＊ｐの元である。
【数３】
0003901471.tif 000004
【００６０】
これらは、数４に示されるｎ個の暗号文の順番を入れ替えた後に、復号用の秘密鍵で復号したものである。
【数４】
0003901471.tif 000005
【００６１】
［挑戦値生成関数］
挑戦値生成関数について説明する。図５のフローチャートに示される、次のような４ステップからなる対話的証明プロトコルを考える。
【００６２】
まず、証明者が検証者に証明したいことに関するコミットメントを送る（ステップＡ１）。そして、検証者が挑戦値を証明者に送る（ステップＡ２）。そして、証明者は挑戦値に対して、応答を送る（ステップＡ３）。そして、検証者はこれらコミットメント、挑戦値、応答内容から証明の真偽を確認する（ステップＡ４）。
【００６３】
このような対話的証明プロトコルでは、証明者がどのような挑戦値に対しても適切な応答を送り返すことができることが、証明となる。ステップＡ２において、検証者の代わりに挑戦値を生成する関数を用いることで、上記対話的証明プロトコルを非対話的プロトコルに変換することができる。
【００６４】
すなわち、図２のフローチャートに示されるように、まず証明者が、検証者に証明したいことに関するコミットメントを生成する（ステップＢ１）。そして、コミットメントと証明したい内容を関数に入力して、関数の出力を挑戦値とする（ステップＢ２）。そして、証明者は、挑戦値に対して応答を生成し、以上の生成された各データを検証者に送る（ステップＢ３）。そして、検証者は、証明者から送られたこれらコミットメント、挑戦値、応答内容から証明の真偽を確認する（ステップＢ４）。
【００６５】
以上のように本発明の証明プロトコルでは、ステップＢ１からステップＢ３までの間、証明者は検証者と対話することなく証明を生成している。
【００６６】
上記挑戦値を生成する関数を挑戦値生成関数と呼び、これを数５により示す。
【００６７】
【数５】
0003901471.tif 000006
挑戦値生成関数の出力は、ｎ＋１個の“１”、“０”でないｑ以下の整数である。また、この関数は入出力間や出力の異なる成分間の関係を、計算量的に意図して引数を決定できない関数とする。
【００６８】
挑戦値生成関数の具体的な構成方法の例としては、数６の式があげられる。
【数６】
0003901471.tif 000007
【００６９】
［置換行列］
置換行列について説明する。ここで「置換行列」を、各行各列に“０”でない成分が唯一存在し、その“０”である値をＺｑ上の“１”とするｎ行×ｎ列の正方行列と定義する。例として、数７の行列があげられる。
【数７】
0003901471.tif 000008
【００７０】
［シャッフル行列］
シャッフル行列を定義する。「シャッフル行列」を、ｎ＋１行×ｎ＋１列の行列
｛Ａμ、ν｝（μ、ν＝０、・・・、ｎ）
であって、その成分が、
｛Ａｉ、ｊ｝（ｉ、ｊ＝１、・・・、ｎ）：ｎ行×ｎ列の置換行列
Ａ０、ｊ、Ａｉ、０、Ａ０、０∈ＲＺｑ（ｉ、ｊ＝１、・・・、ｎ）
を成すものと定義する。
【００７１】
［証明付シャッフル復号］
本発明の一実施例を成す証明付シャッフル復号方法について、図３を参照して説明する。
【００７２】
［シャッフルステップ４０２］
暗号文と公開鍵４０１
（ｇｉ、ｍｉ）、（ｇ０、ｍ０）：（ｉ＝１、・・・、ｎ）
が入力される。
【００７３】
次に、シャッフルステップ４０２にて任意のシャッフル情報４０３
Ａ０、ｊ∈ＲＺｑ（ｊ＝１、・・・、ｎ）
Ａｉ、ｊ：置換行列（ｉ、ｊ＝１、・・・、ｎ）
を準備する。
【００７４】
次に、シャッフル済み暗号文４０４である数８の各変数の値を、数９の式により計算する。そして、シャッフルステップ４０２は、シャッフル情報４０３とシャッフル済み暗号文４０４とを出力する。
【数８】
0003901471.tif 000009
【数９】
0003901471.tif 000010
【００７５】
［復号ステップ４０５］
シャッフル済み暗号文４０４と復号用の秘密鍵４００とが入力される。次に、復号文４０６を数１０の式により計算して出力する。
【数１０】
0003901471.tif 000011
【００７６】
［同一変換証明ステップ４０７］
シャッフル情報４０３と暗号文４０１と公開鍵４０１が入力される。次に、任意の乱数４０８
Ａμ、０∈ＲＺｑ（μ＝０、・・・、ｎ）
を準備して、コミットメンとの一部である数１１の各変数の値を、数１２の式により計算して、同一変換証明文４０９として出力する。
【数１１】
0003901471.tif 000012
【数１２】
0003901471.tif 000013
【００７７】
［置換証明ステップ４１０］
シャッフルステップ４０２で生成されたシャッフル情報４０３と同一変換証明ステップ４０７で生成された乱数４０８とからなるシャッフル行列
Ａμ、νｍｏｄ  ｑ  （μ、ν＝０、・・・、ｎ）
が入力される。
【００７８】
次に、（０、１ではない）任意の乱数
σ、ρ、ρ’、λμ∈ＲＺｑ（μ＝０、・・・、ｎ）
ｇ＝ｇ０
を準備して、数１３を計算する。
【数１３】
0003901471.tif 000014
【００７９】
ここで数１４の各変数の値を、置換証明文４１１として出力する。
【数１４】
0003901471.tif 000015
【００８０】
［リスポンス生成ステップ４１２］
暗号文と公開鍵４０１と同一変換証明文４０９と置換証明文４１１と復号文４０６とが入力され、チャレンジを数１５の式により計算する。
【数１５】
0003901471.tif 000016
【００８１】
次にリスポンスを、数１６の式により計算する。
【数１６】
0003901471.tif 000017
【００８２】
最後に、同一変換証明文と置換証明文とリスポンスとをシャッフル証明文４１３として出力する。
【００８３】
［復号証明ステップ４１７］
復号文４０６と復号用の秘密鍵４００とリスポンス生成ステップで生成されたチャレンジ４１４とが入力される。任意の
β∈Ｒｍｏｄ  ｑ
を選び、次に、数１７の式を計算する。
【数１７】
0003901471.tif 000018
【００８４】
次に、復号証明のチャレンジを、数１８の式により計算する。
【数１８】
0003901471.tif 000019
【００８５】
次に、復号証明のリスポンスを
ｒ’＝ｃ’ｘ’＋β  ｍｏｄ  ｑ
と計算する。最後に復号の証明文４１５として、
η、η’、ｍ０”、ｒ’
を出力する。
【００８６】
［証明文］
同一変換証明文と置換証明文とリスポンスと復号証明文を、シャッフル復号の証明文４１６として出力する。
【００８７】
［シャッフル復号検証］
本実施の形態のシャッフル復号検証方法について、図４を参照して説明する。
【００８８】
［同一変換検証ステップ］
シャッフル復号証明文４１６と暗号文と公開鍵４０１と復号文が入力される。チャレンジ５００を、数１９の式により計算する。
【数１９】
0003901471.tif 000020
【００８９】
次に、数２０の式が成り立てば「正当」を、成り立たなければ「不当」を出力５０１する。
【数２０】
0003901471.tif 000021
【００９０】
［置換検証ステップ］
シャッフル復号証明文と同一変換検証ステップで求められたチャレンジ５００が入力される。次に、数２１の式が成り立てば「正当」を、成り立たなければ「不当」を出力５０２する。
【数２１】
0003901471.tif 000022
【００９１】
［復号検証ステップ］
シャッフル復号証明文と同一変換検証ステップで求められたチャレンジ５００が入力される。次に、補助のチャレンジを次の数２２の式により計算する。
【数２２】
0003901471.tif 000023
【００９２】
次に、数２３の式が成り立てば「正当」を、成り立たなければ「不当」を出力５０３する。
【数２３】
0003901471.tif 000024
【００９３】
同一変換検証ステップと置換検証ステップと復号検証ステップとの、全ての出力が正当であれば「正当」を、一つでも「不当」があれば「不当」を、シャッフル復号検証の出力５０４とする。
【００９４】
なお、本実施の形態の証明付シャッフル復号システムは、証明付シャッフル復号装置１０のシャッフル部１１、復号部１２、証明部１３、同一変換証明部１３−１、置換証明部１３−２、リスポンス生成部１３−３、復号証明部１３−４の機能や、シャッフル復号検証装置２０の同一変換検証部２１、置換検証部２２、復号検証部２３の機能や、その他の機能をハードウェア的に実現することは勿論として、各機能を備えるコンピュータプログラムである証明付シャッフル復号プログラム及びシャッフル復号検証プログラムを、コンピュータ処理装置のメモリにロードされることで実現することができる。この証明付シャッフル復号プログラム及びシャッフル復号検証プログラムは、磁気ディスク、半導体メモリその他の記録媒体８０、９０に格納される。そして、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。
【００９５】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【００９６】
【発明の効果】
以上説明したように本発明によれば、証明付シャッフルに証明付復号を追加した場合の計算量を、従来の技術と比べて大きく削減することができる。
【００９７】
例えば、入力暗号文の数をｎとした時、文献２の従来技術を用いて証明付シャッフルに証明付復号を追加した場合には、乗剰余演算が３ｎ回必要とされていたのに対して、本発明によれば冪乗剰余演算はｎ＋３回で済み、従来の技術よりも大幅に冪乗剰余演算の回数を削減することができる。
【００９８】
更に、本発明において行う冪乗剰余は、従来の技術における個別の冪乗剰余演算ではなく、冪乗剰余演算の積の計算であることから、個別の冪乗剰余演算よりも遥かに少ない計算量で計算することができ、更なる高速化を実現することができる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態による証明付シャッフル復号システムの構成を示すブロック図である。
【図２】  本発明の一実施の形態による証明付シャッフル復号システムの処理を説明するためのフローチャートである。
【図３】  本発明の一実施の形態による証明付シャッフル復号を説明するための図である。
【図４】  本発明の一実施の形態によるシャッフル復号検証を説明するための図である。
【図５】  従来の技術における処理を説明するためのフローチャートである。
【図６】  従来の証明付シャッフルの処理を説明するための図である。
【図７】  従来の証明付復号の処理を説明するための図である。
【図８】  図６と図７の従来の技術を組み合わせた構成を示す図である。
【符号の説明】
１０  証明付シャッフル復号装置
１１  シャッフル部
１２  復号部
１３  証明部
１３−１  同一変換証明部
１３−２  置換証明部
１３−３  リスポンス生成部
１３−４  復号証明部
２０  シャッフル復号検証装置
２１  同一変換検証部
２２  置換検証部
２３  復号検証部
８０、９０  記録媒体
【図１】
0003901471.tif 000025
【図２】
0003901471.tif 000026
【図３】
0003901471.tif 000027
【図４】
0003901471.tif 000028
【図５】
0003901471.tif 000029
【図６】
0003901471.tif 000030
【図７】
0003901471.tif 000031
【図８】
0003901471.tif 000032