(57)【要約】【課題】並行に複数実行することがあるゼロ知識対話証明プロトコルに対して、安全性と効率性の両立を図ることのできる管理装置を提供すること。【解決手段】並行度管理部５３は並行度の上限値を記憶し、ラウンド数管理部は該上限値に等しい並行度の下でのゼロ知識対話証明プロトコルの安全性を確保するに足りるラウンド数以上の値から選択されたラウンド数を記憶する。ＺＫＩＰプロトコル実行管理部５５は、証明側装置又は検証側装置からゼロ知識対話証明プロトコルの開始を要求する開始要求メッセージを受信した場合に、現在の並行度が上限値を下回っているならば、開始を許可するものと判断する。【選択図】    図５
2005026928.tif 000002
【特許請求の範囲】
【請求項１】
証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理装置であって、
並行実行可能とするゼロ知識対話証明プロトコルの数の上限値を記憶する上限値記憶手段と、
現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶する並行度記憶手段と、
前記ゼロ知識対話証明プロトコルの開始を要求する開始要求メッセージを受信する手段と、
前記開始要求メッセージを受信した場合に、前記上限値記憶手段に記憶された上限値及び前記並行度記憶手段に記憶された並行度に基づいて前記開始を許可するか不許可とするかを判断する判断手段とを備えたことを特徴とするゼロ知識対話証明プロトコル管理装置。
【請求項２】
前記判断手段は、前記並行度記憶手段に記憶された並行度が前記上限値記憶手段に記憶された上限値を下回っているならば、前記開始を許可するものと判断することを特徴とする請求項１に記載のゼロ知識対話証明プロトコル管理装置。
【請求項３】
前記判断手段は、前記並行度記憶手段に記憶された並行度が前記上限値記憶手段に記憶された上限値に達しているならば、前記開始を不許可にするものと判断することを特徴とする請求項１に記載のゼロ知識対話証明プロトコル管理装置。
【請求項４】
前記判断手段は、前記並行度記憶手段に記憶された並行度が前記上限値記憶手段に記憶された上限値に達している場合には、現在実行中のゼロ知識対話証明プロトコル及び受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルのうちで、最も優先度の低いものを求め、該最も優先度の低いゼロ知識対話証明プロトコルが現在実行中のゼロ知識対話証明プロトコルのいずれかであるならば、該最も優先度の低いゼロ知識対話証明プロトコルを中断又は一旦停止させた上で、前記開始を許可するものと判断することを特徴とする請求項１に記載のゼロ知識対話証明プロトコル管理装置。
【請求項５】
前記判断手段は、前記最も優先度の低いゼロ知識対話証明プロトコルが受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルであるならば、前記開始を不許可にするものと判断することを特徴とする請求項４に記載のゼロ知識対話証明プロトコル管理装置。
【請求項６】
前記上限値に基づいて定まる、前記ゼロ知識対話証明プロトコルで実施すべきラウンド数を記憶するラウンド数記憶手段と、
前記開始を許可すると判断された場合に、前記並行度記憶手段に記憶された並行度を１増加させる手段と、
前記開始を許可すると判断された場合に、前記開始を許可する旨を示す情報及び前記ラウンド数記憶手段に記憶されたラウンド数を示す情報を通知するメッセージを送信する手段とを更に備えたことを特徴とする請求項１に記載のゼロ知識対話証明プロトコル管理装置。
【請求項７】
前記ラウンド数は、前記上限値記憶手段に記憶された上限値に等しい並行度の下での前記ゼロ知識対話証明プロトコルの安全性を確保するに足りるラウンド数以上の値であることを特徴とする請求項６に記載のゼロ知識対話証明プロトコル管理装置。
【請求項８】
前記開始を許可すると判断された場合に、前記並行度記憶手段に記憶された並行度を１増加させる手段と、
前記開始を許可すると判断された場合に、前記開始を許可する旨を示す情報を通知するメッセージを送信する手段とを更に備えたことを特徴とする請求項１に記載のゼロ知識対話証明プロトコル管理装置。
【請求項９】
証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理装置であって、
現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶する並行度記憶手段と、
現在実行中の前記ゼロ知識対話証明プロトコルごとに、当該ゼロ知識対話証明プロトコルで実施すべきラウンド数を記憶するラウンド数記憶手段と、
前記ゼロ知識対話証明プロトコルの開始を要求する開始要求メッセージを受信する手段と、
前記開始要求メッセージを受信した場合に、前記並行度記憶手段に記憶された並行度及び前記ラウンド数記憶手段に記憶されたラウンド数に基づいて前記開始を許可するか不許可とするかを判断する判断手段とを備えたことを特徴とするゼロ知識対話証明プロトコル管理装置。
【請求項１０】
前記判断手段は、前記ラウンド数記憶手段に記憶されたラウンド数の最小値が、前記並行度記憶手段に記憶された並行度を１増加させた後の並行度の下での前記ゼロ知識対話証明プロトコルの安全性を確保するに足りるラウンド数以上である場合に、前記開始を許可するものと判断することを特徴とする請求項９に記載のゼロ知識対話証明プロトコル管理装置。
【請求項１１】
前記判断手段は、前記ラウンド数記憶手段に記憶されたラウンド数の最小値が、前記並行度記憶手段に記憶された並行度を１増加させた後の並行度の下での前記ゼロ知識対話証明プロトコルの安全性を確保するに足りるラウンド数に満たない場合に、前記開始を不許可にするものと判断することを特徴とする請求項９に記載のゼロ知識対話証明プロトコル管理装置。
【請求項１２】
前記判断手段は、前記ラウンド数記憶手段に記憶されたラウンド数の最小値が、前記並行度記憶手段に記憶された並行度を１増加させた後の並行度の下での前記ゼロ知識対話証明プロトコルの安全性を確保するに足りるラウンド数に満たない場合には、現在実行中のゼロ知識対話証明プロトコル及び受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルのうちで、最も優先度の低いものを求め、該最も優先度の低いゼロ知識対話証明プロトコルが現在実行中のゼロ知識対話証明プロトコルのいずれかであるならば、該最も優先度の低いゼロ知識対話証明プロトコルを中断又は一旦停止させた上で、前記開始を許可するものと判断することを特徴とする請求項１に記載のゼロ知識対話証明プロトコル管理装置。
【請求項１３】
前記判断手段は、前記最も優先度の低いゼロ知識対話証明プロトコルが受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルであるならば、前記開始を不許可にするものと判断することを特徴とする請求項１２記載のゼロ知識対話証明プロトコル管理装置。
【請求項１４】
前記判断手段は、前記ラウンド数記憶手段に記憶されたラウンド数の最小値が、前記並行度記憶手段に記憶された並行度を１増加させた後の並行度の下での前記ゼロ知識対話証明プロトコルの安全性を確保するに足りるラウンド数に満たない場合には、前記ラウンド数記憶手段に記憶されたラウンド数のうちで、前記並行度記憶手段に記憶された並行度を１増加させた後の並行度の下での前記ゼロ知識対話証明プロトコルの安全性を確保するに足りるラウンド数に満たない値を持つゼロ知識対話証明プロトコルの全てにつきラウンド数を増加させた上で、前記開始を許可するものと判断することを特徴とする請求項１に記載のゼロ知識対話証明プロトコル管理装置。
【請求項１５】
前記開始を許可すると判断された場合に、前記並行度記憶手段に記憶された並行度を１増加させるとともに、受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルで実施すべきラウンド数として、当該１増加させた後の並行度の下での当該ゼロ知識対話証明プロトコルの安全性を確保するに足りるラウンド数以上の値を求め、求めたラウンド数を受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルに対応付けて前記ラウンド数記憶手段に記憶する手段と、
前記開始を許可する旨を示す情報及び前記ラウンド数を示す情報を通知するメッセージを送信する手段とを更に備えたことを特徴とする請求項１３に記載のゼロ知識対話証明プロトコル管理装置。
【請求項１６】
前記開始を許可すると判断された場合に、前記並行度記憶手段に記憶された並行度を１増加させるとともに、受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルで実施すべきラウンド数として、当該１増加させた後の並行度の下での当該ゼロ知識対話証明プロトコルの安全性を確保するに足りるラウンド数以上の値を求め、求めたラウンド数を受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルに対応付けて前記ラウンド数記憶手段に記憶する手段と、
前記開始を許可する旨を示す情報及び前記１増加させた後の並行度を示す情報を通知するメッセージを送信する手段とを更に備えたことを特徴とする請求項１３に記載のゼロ知識対話証明プロトコル管理装置。
【請求項１７】
前記ゼロ知識対話証明プロトコルの終了を通知する終了通知メッセージを受信する手段と、
前記終了通知メッセージを受信した場合に、前記並行度記憶手段に記憶された並行度を１減少させる手段とを更に備えたことを特徴とする請求項１または９に記載のゼロ知識対話証明プロトコル管理装置。
【請求項１８】
証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理装置であって、
現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶する並行度記憶手段と、
前記ゼロ知識対話証明プロトコルの開始を示す情報を取得する取得手段と、
前記ゼロ知識対話証明プロトコルの開始を示す情報を取得した場合に、前記並行度記憶手段に記憶された並行度を１増加させるとともに、１増加させた後の並行度に基づいて、受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルで実施すべきラウンド数を求める手段と、
求められた前記ラウンド数を示す情報を通知するメッセージを送信する手段とを備えたことを特徴とするゼロ知識対話証明プロトコル管理装置。
【請求項１９】
証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理装置であって、
現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶する並行度記憶手段と、
前記ゼロ知識対話証明プロトコルの開始を示す情報を取得する取得手段と、
前記ゼロ知識対話証明プロトコルの開始を示す情報を取得した場合に、前記並行度記憶手段に記憶された並行度を１増加させる手段と、
前記１増加させた後の並行度を示す情報を通知するメッセージを送信する手段とを備えたことを特徴とするゼロ知識対話証明プロトコル管理装置。
【請求項２０】
前記取得手段は、前記ゼロ知識対話証明プロトコルの開始を通知するメッセージを受信することによって、前記ゼロ知識対話証明プロトコルの開始を示す情報を取得することを特徴とする請求項１８または１９に記載のゼロ知識対話証明プロトコル管理装置。
【請求項２１】
前記取得手段は、前記証明者装置と前記検証者装置との間のメッセージの授受を監視することによって、前記ゼロ知識対話証明プロトコルの開始を示す情報を取得することを特徴とする請求項１８または１９に記載のゼロ知識対話証明プロトコル管理装置。
【請求項２２】
前記ゼロ知識対話証明プロトコルの終了を示す情報を取得する手段と、
前記ゼロ知識対話証明プロトコルの終了を示す情報を取得した場合に、前記並行度記憶手段に記憶された並行度を１減少させる手段とを更に備えたことを特徴とする請求項１８または１９に記載のゼロ知識対話証明プロトコル管理装置。
【請求項２３】
前記ラウンド数を求める手段は、受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルで実施すべきラウンド数として、前記１増加させた後の並行度の下での当該ゼロ知識対話証明プロトコルの安全性を確保するに足りるラウンド数以上の値を求めることを特徴とする請求項１８に記載のゼロ知識対話証明プロトコル管理装置。
【請求項２４】
前記ゼロ知識対話証明プロトコル管理装置は、前記証明者装置及び前記検証者装置とは独立した装置であることを特徴とする請求項１ないし２３のいずれか１項に記載のゼロ知識対話証明プロトコル管理装置。
【請求項２５】
前記ゼロ知識対話証明プロトコル管理装置は、前記証明者装置又は前記検証者装置に一体化された装置であることを特徴とする請求項１ないし２３のいずれか１項に記載のゼロ知識対話証明プロトコル管理装置。
【請求項２６】
証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理方法であって、
並行実行可能とするゼロ知識対話証明プロトコルの数の上限値を記憶する上限値記憶ステップと、
現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶する並行度記憶ステップと、
前記ゼロ知識対話証明プロトコルの開始を要求する開始要求メッセージを受信するステップと、
前記開始要求メッセージを受信した場合に、前記上限値記憶ステップに記憶された上限値及び前記並行度記憶ステップに記憶された並行度に基づいて前記開始を許可するか不許可とするかを判断する判断ステップとを有することを特徴とするゼロ知識対話証明プロトコル管理方法。
【請求項２７】
証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理方法であって、
現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶するステップと、
現在実行中の前記ゼロ知識対話証明プロトコルごとに、当該ゼロ知識対話証明プロトコルで実施すべきラウンド数を記憶するステップと、
前記ゼロ知識対話証明プロトコルの開始を要求する開始要求メッセージを受信するステップと、
前記開始要求メッセージを受信した場合に、前記並行度及び前記ラウンド数に基づいて前記開始を許可するか不許可とするかを判断するステップとを有することを特徴とするゼロ知識対話証明プロトコル管理方法。
【請求項２８】
証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理方法であって、
現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶するステップと、
前記ゼロ知識対話証明プロトコルの開始を示す情報を取得するステップと、
前記ゼロ知識対話証明プロトコルの開始を示す情報を取得した場合に、前記並行度を１増加させるとともに、１増加させた後の並行度に基づいて、受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルで実施すべきラウンド数を求めるステップと、
求められた前記ラウンド数を示す情報を通知するメッセージを送信するステップとを有することを特徴とするゼロ知識対話証明プロトコル管理方法。
【請求項２９】
証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理装置としてコンピュータを機能させるためのプログラムであって、
並行実行可能とするゼロ知識対話証明プロトコルの数の上限値を記憶する上限値記憶機能と、
現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶する並行度記憶機能と、
前記ゼロ知識対話証明プロトコルの開始を要求する開始要求メッセージを受信する機能と、
前記開始要求メッセージを受信した場合に、前記上限値記憶機能に記憶された上限値及び前記並行度記憶機能に記憶された並行度に基づいて前記開始を許可するか不許可とするかを判断する判断機能とをコンピュータに実現させるためのプログラム。
【請求項３０】
証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理装置としてコンピュータを機能させるためのプログラムであって、
現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶する並行度記憶機能と、
現在実行中の前記ゼロ知識対話証明プロトコルごとに、当該ゼロ知識対話証明プロトコルで実施すべきラウンド数を記憶するラウンド数記憶機能と、
前記ゼロ知識対話証明プロトコルの開始を要求する開始要求メッセージを受信する機能と、
前記開始要求メッセージを受信した場合に、前記並行度記憶機能に記憶された並行度及び前記ラウンド数記憶機能に記憶されたラウンド数に基づいて前記開始を許可するか不許可とするかを判断する判断機能とをコンピュータに実現させるためのプログラム。
【請求項３１】
証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理装置としてコンピュータを機能させるためのプログラムであって、
現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶する並行度記憶機能と、
前記ゼロ知識対話証明プロトコルの開始を示す情報を取得する取得機能と、
前記ゼロ知識対話証明プロトコルの開始を示す情報を取得した場合に、前記並行度記憶機能に記憶された並行度を１増加させるとともに、１増加させた後の並行度に基づいて、受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルで実施すべきラウンド数を求める機能と、
求められた前記ラウンド数を示す情報を通知するメッセージを送信する機能とをコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理装置、ゼロ知識対話証明プロトコル管理方法及びプログラムに関する。
【０００２】
【従来の技術】
秘密情報ｗを知っていることを、秘密情報ｗを明かすことなく証明するプロトコルとして、ゼロ知識対話証明（Ｚｅｒｏ−Ｋｎｏｗｌｅｄｇｅ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｐｒｏｏｆ）プロトコルが知られている（非特許文献１参照）。
【０００３】
ゼロ知識対話証明プロトコルは、完全性（証明者Ｐが正しい証明を行う場合には、検証者Ｖは圧倒的な確率でその証明を受理する）、健全性（証明者Ｐが誤った証明を行う場合には、検証者Ｖは無視できる確率でしかその証明を受理しない）、ゼロ知識性（証明者Ｐとのメッセージのやり取りの後に検証者Ｖが効率的に計算できることはすべて、メッセージのやり取りがなくても検証者Ｖは効率的に計算できる（証明の正しさ以外の情報は一切検証者Ｖに漏れない））の３つの性質を満たすプロトコルとして定式化されている。
【０００４】
ゼロ知識対話証明では、証明者Ｐと検証者Ｖとの間で一定のやり取り（対話）を行って秘密情報ｗを知っていることについての証明・検査を行うラウンドを、複数ラウンド繰り返し行う。すなわち、ゼロ知識対話証明では、１回のラウンドについてみると、証明者Ｐが秘密情報ｗを知らなくても検査を合格させる試み（なりすまし）が、ある確率をもって成功するので、十分証明されたとみなされるに足りる回数以上の数のラウンドを実施するようになっている。
【０００５】
ところで、証明者Ｐが同一の秘密情報ｗについて、ゼロ知識対話証明プロトコルを複数並行にで実行する場合（例えば１つのクライアント装置が同一の秘密情報について複数のサーバ装置との間で同時にゼロ知識対話証明プロトコルを実行する場合）、単独での実行を前提とするラウンド数だけでは、ゼロ知識性が破れる（すなわち、秘密情報が漏れる）ことがあることが知られている。なお、（同一の秘密情報についての）複数プロトコルの並行実行は並行合成とも呼ばれる。
【０００６】
並行合成の場合には、通常、単一実行の場合に比べて、必要なラウンド数が増加する。例えば、ある種のゼロ知識対話証明プロトコルでは、証明者ＰがＮ個のゼロ知識対話証明プロトコルを並行合成する場合に、ゼロ知識性を保つにためは、各ゼロ知識対話証明プロトコルにおけるラウンド数をΩ（ｌｏｇ  Ｎ）以上にする必要があることが示されている（非特許文献２参照）。また、例えば、Ｒｉｃｈａｒｄｓｏｎ−Ｋｉｌｉａｎプロトコルは、Ｎ個の並行合成の場合に、Ｏ（Ｎε）ラウンドならば、ゼロ知識性を保つことが示されている（非特許文献３参照）。他方、例えば、Ｒｉｃｈａｒｄｓｏｎ−Ｋｉｌｉａｎプロトコルでは、Ｎ個の並行合成の場合に、Ｏ（ｇ（Ｎ）・ｌｏｇ２  Ｎ）ラウンドならば、ゼロ知識性を保つことが示されている（非特許文献４参照）。ここで、ｇ（・）は、任意の非定数関数である。
【０００７】
【非特許文献１】
Ｓ．  Ｇｏｌｄｗａｓｓｅｒ，  Ｓ．  Ｍｉｃａｌｉ，  ａｎｄ  Ｃ．  Ｒａｃｋｏｆｆ，  Ｔｈｅ  ｋｎｏｗｌｅｄｇｅ  ｃｏｍｐｌｅｘｉｔｙ  ｏｆ  ｉｎｔｅｒａｃｔｉｖｅ  ｐｒｏｏｆ  ｓｙｓｔｅｍｓ，  ＳＩＡＭ  Ｊ，  Ｃｏｍｐｕｔ．，  Ｖｏｌ．１８，  Ｎｏ．１，  ｐｐ．１８６−２０８，  １９８８
【０００８】
【非特許文献２】
Ｒ．  Ｃａｎｅｔｔｉ，  Ｊ．  Ｋｉｌｉａｎ，  Ｅ．  Ｐｅｔｒａｎｋ，  ａｎｄ  Ａ．  Ｒｏｓｅｎ，  Ｂｌａｃｋ−ｂｏｘ  ｃｏｎｃｕｒｒｅｎｔ  ｚｅｒｏ−ｋｎｏｗｌｅｄｇｅ  ｒｅｑｕｉｒｅｓ  Ω（ｌｏｇ  ｎ）  ｒｏｕｎｄ，  Ｉｎ  ＳＴＯＣ´０１，  ｐｐ．５７０−５７９，  １９８８
【０００９】
【非特許文献３】
Ｒ．  Ｒｉｃｈａｒｄｓｏｎ  ａｎｄ  Ｊ．  Ｋｉｌｉａｎ，  Ｏｎ  ｔｈｅ  Ｃｏｎｃｕｒｒｅｎｔ  Ｃｏｍｐｏｓｉｔｉｏｎ  ｏｆ  Ｚｅｒｏ−Ｋｎｏｗｌｅｄｇｅ  Ｐｒｏｏｆｓ，  Ｉｎ  ＥＵＲＯＣＲＹＰＴ´９９，  ｐｐ．４１５−４３１，  １９９９
【００１０】
【非特許文献４】
Ｊ．  Ｋｉｌｉａｎ  ａｎｄ  Ｅ．  Ｐｅｔｒａｎｋ．  Ｃｏｎｃｕｒｒｅｎｔ  ａｎｄ  Ｒｅｓｅｔｔａｂｌｅ  Ｚｅｒｏ−Ｋｎｏｗｌｅｄｇｅ  ｉｎ  Ｐｏｌｙ−ｌｏｇａｒｉｔｈｍｉｃ  Ｒｏｕｎｄｓ．  Ｉｎ  ＳＴＯＣ´０１，  ｐｐ．５６０−５６９，  ２００１
【００１１】
【発明が解決しようとする課題】
ゼロ知識対話証明プロトコルは、単独実行で安全が確保されるラウンド数と同じラウンド数では、（同一の秘密情報について行う）並列実行が安全とは限らなくなってくる。Ｎ個のプロトコルを並行実行する場合には、ゼロ知識性の破れを回避するために、並行度Ｎに応じてラウンド数を増やすことが必要になるが、従来は、予め多めのラウンド数を設定しておいて並列実行するしかなかったので、プロトコルが効率的でなく、また、設定ラウンド数が不十分であった場合には秘密情報が漏れてしまう危険性があった。
【００１２】
本発明は、上記事情を考慮してなされたもので、並行に複数実行することがあるゼロ知識対話証明プロトコルに対して、安全性と効率性の両立を図ることのできるゼロ知識対話証明プロトコル管理装置、ゼロ知識対話証明プロトコル管理方法及びプログラムを提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明は、証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理装置であって、並行実行可能とするゼロ知識対話証明プロトコルの数の上限値を記憶する上限値記憶手段と、現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶する並行度記憶手段と、前記ゼロ知識対話証明プロトコルの開始を要求する開始要求メッセージを受信する手段と、前記開始要求メッセージを受信した場合に、前記上限値記憶手段に記憶された上限値及び前記並行度記憶手段に記憶された並行度に基づいて前記開始を許可するか不許可とするかを判断する判断手段とを備えたことを特徴とする。
【００１４】
また、本発明は、証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理装置であって、現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶する並行度記憶手段と、現在実行中の前記ゼロ知識対話証明プロトコルごとに、当該ゼロ知識対話証明プロトコルで実施すべきラウンド数を記憶するラウンド数記憶手段と、前記ゼロ知識対話証明プロトコルの開始を要求する開始要求メッセージを受信する手段と、前記開始要求メッセージを受信した場合に、前記並行度記憶手段に記憶された並行度及び前記ラウンド数記憶手段に記憶されたラウンド数に基づいて前記開始を許可するか不許可とするかを判断する判断手段とを備えたことを特徴とする。
【００１５】
また、本発明は、証明者装置の持つ秘密情報について該証明者装置と１又は複数の検証者装置との間で複数並行して行われるゼロ知識対話証明プロトコルを管理するゼロ知識対話証明プロトコル管理装置であって、現在実行中の前記ゼロ知識対話証明プロトコルの数を示す並行度を記憶する並行度記憶手段と、前記ゼロ知識対話証明プロトコルの開始を示す情報を取得する取得手段と、前記ゼロ知識対話証明プロトコルの開始を示す情報を取得した場合に、前記並行度記憶手段に記憶された並行度を１増加させるとともに、１増加させた後の並行度に基づいて、受信した前記開始要求メッセージに係るゼロ知識対話証明プロトコルで実施すべきラウンド数を求める手段と、求められた前記ラウンド数を示す情報を通知するメッセージを送信する手段とを備えたことを特徴とする。
【００１６】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための（あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための）プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【００１７】
本発明によれば、並行に複数実行することがあるゼロ知識対話証明プロトコルに対して、安全性と効率性の両立を図ることができるようになる。
【００１８】
【発明の実施の形態】
まず、本発明の一実施形態に係る通信システムについて説明するのに先立って、本通信システムにおける証明側装置と検証側装置との間で実行されるゼロ知識対話証明について説明する。
【００１９】
まず、１台の証明側装置Ｐ（例えば、インターネット上のクライアント計算機）と１台の検証側装置Ｖ（例えば、インターネット上のサーバ計算機）についてみたときに、検証側装置Ｖは、「証明側装置Ｐがある秘密情報ｗ（例えば、パスワード）を知っていること」を検証したいとし、証明側装置Ｐは、検証側装置Ｖに自分の秘密情報ｗを明かすことなく、「自分が秘密情報ｗを知っていること」を検証側装置Ｖに証明したいとする。
【００２０】
これを実現するプロトコルが、完全性、健全性、ゼロ知識性の３つの性質を満たすゼロ知識対話証明（Ｚｅｒｏ−Ｋｎｏｗｌｅｄｇｅ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｐｒｏｏｆ）プロトコルである（非特許文献１参照）。
【００２１】
既に説明したように、ゼロ知識対話証明では、十分証明されたとみなされるに足りる一定数のラウンドを実施するようになっているが、ゼロ知識対話証明プロトコルの並行合成の場合（例えば、１台の証明側装置Ｐが、同一の秘密情報ｗについて、複数台の検証側装置Ｖとの間で同時にゼロ知識対話証明プロトコルを実行する場合）に、単独実行を想定したラウンド数では、ゼロ知識性が破れる（すなわち、秘密情報が漏れる）ことがあることが知られている。
【００２２】
そこで、並行ゼロ知識のための必要条件が問題になってくる。
【００２３】
例えば、ある種のゼロ知識対Ｒｉｃｈａｒｄｓｏｎ−Ｋｉｌｉａｎプロトコル話証明プロトコルでは、証明者ＰがＮ個のゼロ知識対話証明プロトコルを並行合成する場合に、ゼロ知識性を保つにためは、各ゼロ知識対話証明プロトコルにおけるラウンド数をΩ（ｌｏｇ  Ｎ）以上にする必要があることが示されている（非特許文献２参照）。
【００２４】
また、次に示すＲｉｃｈａｒｄｓｏｎ−Ｋｉｌｉａｎプロトコルは、Ｎ個の並行合成の場合に、Ｏ（Ｎε）ラウンドならば、ゼロ知識性を保つことが示されている（非特許文献３参照）。ここで、証明者Ｐは、検証者Ｖを相手方として、秘密情報Ｔを知っていることを証明しようとしているとする。このとき、次のように変換されたゼロ知識証明プロトコルを考える。
・このプロトコルは、秘密情報Ｔを知っていることを証明する代わりに、情報Ｔ´を知っていることを証明する。ここで、Ｔ´＝Ｔ∨Ｗであり、かつ、Ｗが成立する確率が非常に小さいと仮定すれば、情報Ｔ´を知っていることを証明することは、秘密情報Ｔを知っていることを証明することとみなすことができる。  この考え方は、証拠識別不可能プロトコルをゼロ知識証明プロトコルに変換するために提案された（Ｕ．  Ｆｅｉｇｅ，  Ｄ．  Ｌａｐｉｄｏｔ，  ａｎｄ  Ａ．  Ｓｈａｍｉｒ，  Ｍｕｌｔｉｐｌｅ  ｎｏｎ−ｉｎｔｅｒａｃｔｉｖｅ，  ｚｅｒｏ−ｋｎｏｗｌｅｄｇｅ  ｐｒｏｏｆｓ  ｂａｓｅｄ  ｏｎ  ａ  ｓｉｎｇｌｅ  ｒａｎｄｏｍ  ｓｔｒｉｎｇ，  Ｉｎ  ＦＯＣＳ´９０，  ｐｐ．３０８−３１７，  １９９０参照）。
【００２５】
証明者Ｐと検証者Ｖは、それぞれ、ランダムにｍ個の数ｐ１，ｐ２，…，ｐｍとｖ１，ｖ２，…，ｖｍ∈｛０，１｝ｑを選び、コミットする。その後で、証明者Ｐは、「Ｔが真であること、または、あるｉに対してｐｉ＝ｖｉであることの少なくとも一方は真であること」を証明する（すなわち、証明者Ｐは、Ｔに対する証拠を知っていること、または、ｐｉを開示をしてＲＥＶＥＡＬが現れたとき、検証者Ｖがｐｉ＝ｖｉを受理するという対（ｉ，ＲＥＶＥＡＬ）に対する証拠のいずれかを知っているという統計的ゼロ知識証明を与える）。ただし、証明者Ｐは、いずれの証拠を知っているかは開示しない。
（手順１）Ｖ→Ｐ：Ｃｏｍｍｉｔ  ｔｏ  ｖ１，ｖ２，…，ｖｍ
（手順２）Ｐ→Ｖ：Ｃｏｍｍｉｔ  ｔｏ  ｐ１
（手順３）Ｖ→Ｐ：Ｒｅｖｅａｌ  ｖ１
（手順４）Ｐ→Ｖ：Ｃｏｍｍｉｔ  ｔｏ  ｐ２
：
（手順２ｉ＋１）Ｖ→Ｐ：Ｒｅｖｅａｌ  ｖｉ
（手順２ｉ＋２）Ｐ→Ｖ：Ｃｏｍｍｉｔ  ｔｏ  ｐｉ＋１
：
（手順２ｍ＋１）Ｖ→Ｐ：Ｒｅｖｅａｌ  ｖｍ
（手順２ｍ＋２）Ｐ←→Ｖ：Ｚｅｒｏ−Ｋｎｏｗｌｅｄｇｅ  Ｐｒｏｏｆ  ｔｈａｔ  （∃ｉ  ｖｉ  ＝  ｐｉ）∨（Ｔ  ｉｓ  ｔｒｕｅ）
ここで、非特許文献３では、以下の定理が証明された。
証明者Ｐから検証者Ｖへのコミットメントは、計算量的隠蔽性かつ完全結合性とし、検証者Ｐから証明者Ｖへのコミットメントは、完全隠蔽性かつ計算量的結合性とする。Ｔ∈ＮＰを証明する証明系（あるいは、アーギュメント）に対して、上記のようなプロトコル変換を行う。εを任意の整数、ｍ＝ｋεとする。このとき、変換されたプロトコルは秘密情報Ｔに対するゼロ知識証明のままである。さらに、この証明の高々ｋＯ（１）個のバージョンを使った、いかなる並行攻撃に対しても多項式時間ブラックボックスシミュレーションが存在する。このシミュレーションは、計算量的識別不可能性を実現する。
【００２６】
さらに、非特許文献４では、上記の十分条件は改善され、Ｒａｉｃｈａｒｄｓｏｎ−Ｋｉｌｉａｎプロトコルは、Ｏ（ｇ（Ｎ）・ｌｏｇ２  Ｎ）ラウンドでゼロ知識性を保つことが示された。ここで、ｇ（・）は、任意の非定数関数である。
【００２７】
このように、Ｎ個のプロトコルを並行実行する場合には、ゼロ知識性の破れを回避するために、並行度Ｎに応じてラウンド数を増やすことが必要になるが、前述した通り、従来は、予め多めのラウンド数を設定しておいて並列実行するしかなかったので、プロトコルが効率的でなく、また、設定ラウンド数が不十分であった場合には秘密情報が漏れてしまう危険性があった。
【００２８】
そこで、本実施形態では、並行に複数実行することがあるゼロ知識対話証明プロトコルに対して、安全性と効率性の両立を図ることができるようにする。
【００２９】
以下、本実施形態について詳しく説明する。
【００３０】
図１に、本発明の一実施形態に係る通信システムの構成例を示す。
【００３１】
図１に示されるように、本通信システムは、ゼロ知識対話証明（Ｚｅｒｏ−Ｋｎｏｗｌｅｄｇｅ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｐｒｏｏｆ）プロトコルにおける証明者側となる通信装置（以下、証明者装置）１、ゼロ知識対話証明プロトコルにおける検証者側となる通信装置（以下、検証者装置）３、ゼロ知識対話証明プロトコルに関する管理を行う管理装置５を含む。各装置は、ネットワーク８を介して通信可能とする。ネットワーク８は、有線であってもよいし、無線であってもよいし、広域ネットワークであってもよいし、ＬＡＮであってもよい。
【００３２】
なお、以下では、ゼロ知識対話証明プロトコルをＺＫＩＰプロトコルと呼ぶ。
【００３３】
本通信システムにおいて、管理装置５が１つのみ存在し、当該唯一の管理装置５が全証明者装置１及び検証者装置３を管理対象とするようにしてもよいし、複数存在して、各管理装置５が一部の証明者装置１及び検証者装置３を管理対象とするようにしてもよい。
【００３４】
また、本通信システムにおいて、証明者装置１は、複数存在してもよい（複数存在することを想定している）。また、検証者装置３は、単独であってもよいし、複数存在してもよい。一つの検証者装置が複数のプロトコルを並行して実行する場合もある。なお、通信装置には、証明者装置１のみになるものと、検証者装置３のみになるものの他に、証明者装置１と検証者装置３のいずれにもなれるものが存在して構わない。
【００３５】
本通信システムにおいては、同一の秘密情報についてＺＫＩＰプロトコルが並行合成される場合を管理対象（管理の単位）とする。例えば、図２（ａ）に示すように、同時に６通りの証明者装置と検証者装置とのＺＫＩＰプロトコルが実行される場合であっても、管理装置５は、（１）証明者装置Ｐ１と検証者装置Ｖ１及び検証者装置Ｖ２との間で「証明者装置Ｐ１が秘密情報ｗ１を知っていること」を証明・検証するためにＺＫＩＰプロトコルが並行合成される部分と、（２）証明者装置Ｐ１と検証者装置Ｖ１及び検証者装置Ｖ３との間で「証明者装置Ｐ１が秘密情報ｗ２を知っていること」を証明・検証するためにＺＫＩＰプロトコルが並行合成される部分と、（３）証明者装置Ｐ２と検証者装置Ｖ１及び検証者装置Ｖ２との間で「証明者装置Ｐ２が秘密情報ｗ３を知っていること」を証明・検証するためにＺＫＩＰプロトコルが並行合成される部分とを、別々に管理することになる。例えば、図２（ａ）に示された範囲内では、秘密情報ｗ１に関しては、図２（ｂ）に示すように、証明者装置Ｐ１と検証者装置Ｖ１及び検証者装置Ｖ２を管理対象とすることになる。
【００３６】
以下では、図３に示すように、証明者装置Ｐ１と検証者装置Ｖ１〜Ｖｎ（ｎは１以上の整数）との間で「証明者装置Ｐ１が秘密情報ｗ１を知っていること」を証明・検証するためにＺＫＩＰプロトコルが並行合成されるにあたって、管理装置Ｍがこれを管理する場合を例にとって説明する。ただし、証明者装置Ｐ１と検証者装置Ｖ１〜Ｖｎとの間のＺＫＩＰプロトコルは必ずしも同時に開始され同時に終了されるわけではなく、後から開始されるものや先に終了するものなどが存在し得る。また、並行度ｎはその時々によって変わり得るものであり、ｎが幾つになるかはその時々で変動するものである。
【００３７】
なお、証明者装置Ｐ１と１台の検証者装置Ｖ１との間で、秘密情報ｗ１についてのＺＫＩＰプロトコルが並行合成されることもある（例えば、検証者装置Ｖ１上で動作する複数のＺＫＩＰプロトコル以外の処理が、同時に秘密情報ｗ１についてのＺＫＩＰプロトコルを呼び出すこともある）。したがって、例えば、ＺＫＩＰプロトコルがｎ並行合成される場合に、証明者装置Ｐ１とｎ台の異なる検証者装置Ｖ１〜Ｖｎとの間でＺＫＩＰプロトコルが行われていることがあるのはもちろんであるが、証明者装置Ｐ１とｎ台未満のｍ台の異なる検証者装置Ｖ１〜Ｖｍとの間でＺＫＩＰプロトコルが行われていることもある。
【００３８】
図３に示すように、証明者装置１と検証者装置３との間ではそれぞれＺＫＩＰプロトコルのメッセージの授受が行われる。どのようなメッセージが授受されるかは、当該ＺＫＩＰプロトコルに応じて定まる。
【００３９】
また、証明者装置１及び又は検証者装置３は、ＺＫＩＰプロトコルの開始に先立って又は開始した後に若しくは開始と同時に、管理装置５へ開始要求メッセージを送信する。なお、証明者装置１のみが開始要求メッセージを出す形態、検証者装置３のみが開始要求メッセージを出す形態、証明者装置１と検証者装置３の両方が開始要求メッセージを出す形態などがある。また、証明者装置１と検証者装置３の両方が開始要求メッセージを出す形態の場合に、管理装置５は、いずれか一方から開始要求メッセージを受信すれば、（有効に）開始要求メッセージを受信したものとみなす形態、両方から開始要求メッセージを受信してはじめて、（有効に）開始要求メッセージを受信したものとみなす形態などがある。
【００４０】
なお、開始要求メッセージについては、管理装置５へ開始の許可を求める形態（以下、開始許可タイプと呼ぶ）、管理装置５へ開始の旨を通知する形態（以下、開始通知タイプと呼ぶ）などがある。また、開始許可タイプでは、開始を許可する旨の許可通知メッセージや開始を不許可とする旨の不許可通知メッセージが管理装置５から証明者装置１及び又は検証者装置３へ送信される。
【００４１】
他方、管理装置５から証明者装置１及び又は検証者装置３へは、実施すべきラウンド数（以下、指定ラウンド数）を通知する。なお、管理装置５から証明者装置１のみに指定ラウンド数を通知する場合には、証明者装置１から検証者装置３へ指定ラウンド数を通知し、管理装置５から検証者装置３のみに指定ラウンド数を通知する場合には、検証者装置３から証明者装置１へ指定ラウンド数を通知する。
【００４２】
指定ラウンド数は、静的に設定される構成と、動的に設定される構成とがある。
【００４３】
なお、指定ラウンド数が静的に設定されるケースでは、管理装置５に設定ラウンド数を保持し、これを管理装置５から証明者装置１や検証者装置３へ通知するのではなく、証明者装置１及び又は検証者装置３が指定ラウンド数を保持する形態も可能である。なお、証明者装置１と検証者装置３の一方のみが指定ラウンド数を保持している場合には、証明者装置１と検証者装置３の一方から他方へ指定ラウンド数を通知すればよい。
【００４４】
また、指定ラウンド数が動的に設定されるケースでは、管理装置５が動的に設定ラウンド数を求め、これを管理装置５から証明者装置１や検証者装置３へ通知するのではなく、管理装置５から証明者装置１や検証者装置３へは指定ラウンド数をもとめるもととなる情報を通知し、この情報をもとに証明者装置１及び又は検証者装置３が指定ラウンド数を動的に求める形態も可能である。なお、証明者装置１と検証者装置３の一方のみが指定ラウンド数を動的に求める場合には、証明者装置１と検証者装置３の一方から他方へ指定ラウンド数を通知すればよい。
【００４５】
なお、開始許可タイプで、開始を許可する場合に、管理装置５が、開始を許可する旨の許可通知メッセージを送信した後に、ラウンド数通知メッセージを送信する形態、許可通知メッセージに指定ラウンド数を記述して通知する形態などがある。
【００４６】
また、証明者装置１及び又は検証者装置３は、ＺＫＩＰプロトコルの終了にあたって管理装置５へ終了通知メッセージを送信する。終了通知メッセージについても上記と同様のバリエーションがある。なお、終了通知メッセージについては、管理装置５へ終了の旨を通知する形態のみとする。
【００４７】
なお、管理装置５は、これら開始要求メッセージ及び終了通知メッセージにより、証明者装置１と（１又は複数の）検証者装置３との間で（同一の秘密情報について）並行して行われるＺＫＩＰプロトコルの個数（並行度）を把握する。
【００４８】
また、詳しくは後述するように、管理装置５から証明者装置１及び又は検証者装置３へ、実行中のＺＫＩＰプロトコルを中断する旨を指示する中断指示メッセージを送信する形態（実行中のＺＫＩＰプロトコルを中断した場合、最初からＺＫＩＰプロトコルをやり直すことになるものとする）や、実行中のＺＫＩＰプロトコルを一旦停止する旨を指示する停止指示メッセージ（実行中のＺＫＩＰプロトコルを停止した場合、停止したところから再開できるものとする）、停止中のＺＫＩＰプロトコルを再開する旨を指示する再開指示メッセージなどが送信される形態などもある。
【００４９】
各種メッセージの授受については、上記の他にも種々のバリエーションが可能である。
【００５０】
なお、以下では、説明を簡潔にするために、証明者装置１のみが、ＺＫＩＰプロトコルの開始に先立って、開始要求メッセージを管理装置５へ送信し、ＺＫＩＰプロトコルが終了した後に、終了通知メッセージを管理装置５へ送信し、許可通知メッセージは、管理装置５から証明者装置１のみへ送信され、実施すべきラウンド数（指定ラウンド数）は、管理装置５から証明者装置１のみへ通知される場合を例にとって説明するが、もちろん、適宜修正することによって他の形態も同様に実施可能である。
【００５１】
以下、いくつかの実施形態について順次説明していく。
【００５２】
（第１の実施形態）
図４に、管理装置５の構成例を示す。
【００５３】
図４に示されるように、本管理装置５は、ネットワークを介して他の通信装置と通信するためのインタフェースである通信部５１、受信したメッセージを解釈する受信メッセージ解釈部５２、実行中のＺＫＩＰプロトコルの並行度を管理する並行度管理部５３、実施すべきラウンド数（指定ラウンド数）を管理するラウンド数管理部５４、ＺＫＩＰプロトコルの実行を管理するＺＫＩＰプロトコル実行管理部５５、各部の動作を制御する制御部５６を備えている。
【００５４】
本実施形態では、証明者装置１と（１又は複数の）検証者装置３との間で（同一の秘密情報について）並行して行われるＺＫＩＰプロトコルの個数（並行度）Ｃの上限値Ｃｍａｘを予め定め（上限値Ｃｍａｘは例えばシステム管理者等が決定する）、この上限値Ｃｍａｘに基づいて予め指定ラウンド数ｒを定めておくものである（すなわち、指定ラウンド数ｒは、Ｃｍａｘ個並行合成されたＺＫＩＰプロトコルの実行によってもゼロ知識性が破れないために必要なラウンド数以上であるように設定される）。なお、Ｃ個並行合成されたＺＫＩＰプロトコルの実行によってもゼロ知識性が破れないために必要なラウンド数は、プロトコルに応じて定まるものである（例えば非特許文献２，１０等参照）。例えば、Ｒｉｃｈａｒｄｓｏｎ−Ｋｉｌｉａｎプロトコルにつき、ｒを所定の正定数として、指定ラウンド数Ｒ＝ｒｌｏｇ２Ｃｍａｘで求めてもよい（非特許文献４参照）。一般には、用いているＺＫＩＰプロトコルに応じて、安全性が証明されているラウンド数を指定する。
【００５５】
そして、本実施形態では、開始許可タイプを採用し、並行度Ｃが上限値Ｃｍａｘに達した場合には、それ以降（実行中のＺＫＩＰプロトコルのいずれかに係る終了通知を受信して並行度Ｃが上限値Ｃｍａｘを下回るようになるまでは）、開始要求を不許可とするものである。これによって、秘密情報の安全を確保できるようになる。
【００５６】
なお、ＺＫＩＰプロトコル実行管理部５５が、各管理単位となるＺＫＩＰプロトコル群ごとに、現在実行中のＺＫＩＰプロトコル（開始許可を与えたＺＫＩＰプロトコル）を識別する情報を保持するようにしてもよい。
【００５７】
図５に、証明者装置１の構成例を示す。
【００５８】
図５に示されるように、本証明者装置１は、ネットワークを介して他の通信装置と通信するためのインタフェースである通信部１１、ＺＫＩＰプロトコル以外のプロコトルやその他の処理を行う第１の処理部１２、ＺＫＩＰプロトコルを行う第２の処理部１３、通知された指定ラウンド数ｒ及び実行中の各ＺＫＩＰプロトコルにおける現在のラウンド数を管理するラウンド数管理部１４を備えている。
【００５９】
第１の処理部１２は、所定の処理の実行中にＺＫＩＰプロトコルが必要になると、第２の処理部１３を呼び出して、ＺＫＩＰプロトコルを実行させる。
【００６０】
第１の処理部１２に呼び出された第２の処理部１３は、第１の処理部１２から秘密情報と検証者装置３となる通信装置との指定を受け、管理装置５への開始要求メッセージを送信し、管理装置５からの許可通知メッセージ又は不許可通知メッセージを受信し（指定ラウンド数は許可通知メッセージ内に記述されるものとする）、許可通知メッセージを受けた場合には、通知された指定ラウンド数による該検証者装置３との間での該秘密情報についてのＺＫＩＰプロトコルの実行を行い、証明に成功したか否かを示す情報を第１の処理部３２へ通知するとともに、終了通知メッセージを管理装置５へ送信する。図６に、この様子を示す。
【００６１】
一方、不許可通知メッセージを受けた場合には、ＺＫＩＰプロトコルを開始せずに（ＺＫＩＰプロトコルを先に開始してしまう形態の場合には、不許可通知メッセージを受けた旨を検証者装置３へ通知し、当該ＺＫＩＰプロトコルを取り止め）、第２の処理部１３へエラー通知を行う。なお、不許可通知メッセージを受けた場合に、一定時間経過後にあらためて開始要求を試みることを、許可が得られるまで予め定められた回数だけ行い、それでも許可が得られないときに、エラー通知を行うようにしてもよい）。
【００６２】
ところで、管理装置５は、ある証明者装置１と（１又は複数の）検証者装置３との間で同一の秘密情報について並行して行われるＺＫＩＰプロトコル群を管理単位とするので、受信した開始要求メッセージに係るＺＫＩＰプロトコルがいずれのＺＫＩＰプロトコル群に属するものであるかを区別できる必要がある。そこで、例えば、開始要求メッセージには、当該開始要求メッセージ係るＺＫＩＰプロトコル群を区別可能な情報（あるいは、当該開始要求メッセージ係るＺＫＩＰプロトコルにおいて証明対象とされる秘密情報を区別可能で且つ該秘密情報を特定不能な情報）が付加されており、管理装置１（のＺＫＩＰプロトコル実行管理部５５）が、この情報に依って、当該開始要求メッセージに係るＺＫＩＰプロトコルの属するＺＫＩＰプロトコル群を特定するものとする。
【００６３】
図７に、検証者装置３の構成例を示す。
【００６４】
図７に示されるように、本検証者装置３は、ネットワークを介して他の通信装置と通信するためのインタフェースである通信部３１、ＺＫＩＰプロトコル以外のプロコトルやその他の処理を行う第１の処理部３２、ＺＫＩＰプロトコルを行う第２の処理部３３、通知された指定ラウンド数ｒ及び実行中の各ＺＫＩＰプロトコルにおける現在のラウンド数を管理するラウンド数管理部３４を備えている。
【００６５】
第１の処理部３２は、所定の処理の実行中にＺＫＩＰプロトコルが必要になると、第２の処理部３３を呼び出して、ＺＫＩＰプロトコルを実行させる。
【００６６】
なお、例えば、証明者装置１がインターネット上のクライアント計算機であり、検証者装置３がインターネット上のサーバ計算機であり、証明者装置１の第１の処理部１２がＷｅｂブラウザソフトを実行し、検証者装置３の第１の処理部３２がＷｅｂサーバソフトを実行し、Ｗｅｂブラウザ側が秘密情報であるパスワードＷ１を知っていることをＷｅｂブラウザ側とＷｅｂサーバ側との間で証明・検証するために、ＷｅｂブラウザとＷｅｂサーバの呼び出しによって、証明者装置１の第２の処理部１３と検証者装置３の第２の処理部３２とがＺＫＩＰプロトコルを実行する場合など該当する。
【００６７】
第１の処理部３２に呼び出された第２の処理部３３は、第１の処理部３２から証明者装置１となる通信装置とその秘密情報の検証に必要なデータの指定を受け、該証明者装置１を介して通知された指定ラウンド数による該検証者装置３との間での該秘密情報についてのＺＫＩＰプロトコルの実行を行い、証明に成功したか否かを示す情報を第１の処理部３２へ通知する。図８に、この様子を示す。
【００６８】
なお、管理装置５から開始許可を得る前にＺＫＩＰプロトコルを先に開始してしまう形態の場合で、証明者装置１から不許可通知メッセージを受けた旨の通知を受けた場合には、そのＺＫＩＰプロトコルを取り止め、第２の処理部３３へエラー通知を行う。
【００６９】
図９に、本実施形態の場合の管理装置５の処理手順例を示す。
【００７０】
まず、並行度管理部５３で管理されるＺＫＩＰプロトコルの並行度Ｃを０に設定する（ステップＳ２１）。
【００７１】
開始要求メッセージ又は終了通知メッセージが到着するのを待ち、通信部５１を介して（本例では証明者装置１から）受信したメッセージを受信メッセージ解釈部５２により解析した結果、開始要求メッセージであったならば（ステップＳ２２）、ＺＫＩＰプロトコル実行管理部５５により、開始を許可するか否か判断する。本実施形態では、並行度Ｃが予め定められた上限値Ｃｍａｘに達していないならば、許可すると判断し、並行度Ｃが予め定められた上限値Ｃｍａｘに達しているならば、不許可と判断する。
【００７２】
許可すると判断されたならば（ステップＳ２３）、並行度Ｃを１だけインクリメントし（ステップＳ２４）、許可する旨及びラウンド数管理部５４に予め設定されている指定ラウンド数を含む許可通知メッセージを通信部５１を介して（本例では証明者装置１へ）返送する（ステップＳ２５）。
【００７３】
一方、許可しないと判断されたならば（ステップＳ２３）、許可しない旨の不許可通知メッセージを通信部５１を介して（本例では証明者装置１へ）返送する（ステップＳ２６）。
【００７４】
また、受信したメッセージが終了通知メッセージであったならば（ステップＳ２２）、並行度Ｃを１だけデクリメントする（ステップＳ２７）。
【００７５】
例えば、簡単のためにＣｍａｘ＝３とした場合に、図１０に示すように（図１０においては、矢印の起点から終点までの間が、当該ＺＫＩＰプロトコルの実行中であるとする）、ＺＫＩＰプロトコル（ｐ１）の開始要求は許可され、次いで、ＺＫＩＰプロトコル（ｐ１）の実行中のＺＫＩＰプロトコル（ｐ２）の開始は許可され、次いで、ＺＫＩＰプロトコル（ｐ１）及び（ｐ２）の実行中のＺＫＩＰプロトコル（ｐ３）の開始は許可されるが、ＺＫＩＰプロトコル（ｐ１）〜（ｐ３）の実行中はＺＫＩＰプロトコル（ｐ４）の開始は不許可とされる。そして、ＺＫＩＰプロトコル（ｐ１）が終了してはじめてＺＫＩＰプロトコル（ｐ４）の開始が許可される。
【００７６】
本実施形態によれば、並行に複数実行することがあるゼロ知識対話証明プロトコルに対して、安全性と効率性の両立を図ることができるようになる。
【００７７】
（第２の実施形態）
第１の実施形態では、並行度Ｃが上限値Ｃｍａｘに達している場合には、その後に受信した開始要求を不許可とすることによって、新たなＺＫＩＰプロトコルを開始させないようにするものであったが、第２の実施形態は、並行度Ｃが上限値Ｃｍａｘに達している場合には、実行中のＣｍａｘ個のＺＫＩＰプロトコルと、新たなＺＫＩＰプロトコルのうちで、最も優先度の低いものを選択し、最も優先度の低いものが実行中のＺＫＩＰプロトコルであれば、それを中断させて、該新たなＺＫＩＰプロトコルを開始させ、最も優先度の低いものが該新たなＺＫＩＰプロトコルであれば、その開始要求を不許可とするものである。
【００７８】
ここでは、第１の実施形態と相違する点を中心に説明する。
【００７９】
図１１に、本実施形態の場合の管理装置５の処理手順例を示す。
【００８０】
まず、並行度管理部５３で管理されるＺＫＩＰプロトコルの並行度Ｃを０に設定する（ステップＳ３１）。
【００８１】
開始要求メッセージ又は終了通知メッセージが到着するのを待ち、通信部５１を介して（本例では証明者装置１から）受信したメッセージを受信メッセージ解釈部５２により解析した結果、開始要求メッセージであったならば（ステップＳ３２）、ＺＫＩＰプロトコル実行管理部５５により、許可と中断の判断を行う。
【００８２】
すなわち、本実施形態では、並行度Ｃが予め定められた上限値Ｃｍａｘに達していないならば、許可すると判断する。この場合、ステップＳ３３でＹｅｓ、Ｓ３４でＮｏとなり、並行度Ｃを１だけインクリメントし（ステップＳ３６）、許可する旨及び指定ラウンド数を含む許可通知メッセージを通信部５１を介して（本例では当該証明者装置１へ）返送する（ステップＳ３７）。
【００８３】
他方、並行度Ｃが予め定められた上限値Ｃｍａｘに達しているならば、実行中のＣｍａｘ個のＺＫＩＰプロトコルと、新たなＺＫＩＰプロトコルのうちで、最も優先度の低いものを選択する。この選択基準については、各ＺＫＩＰプロトコルに（証明者装置１若しくは検証者装置３又は管理装置５が）優先度を付与し、この優先度に基づいて判断する方法など、種々のものが考えられる。
【００８４】
そして、最も優先度の低いものが実行中のＺＫＩＰプロトコルである場合には、ステップＳ３３でＹｅｓ、Ｓ３４でＹｅｓとなり、最も優先度の低い実行中のＺＫＩＰプロトコルを中断させるための処理を行い（例えば証明者装置１へ当該実行中のＺＫＩＰプロトコルを中断する旨を指示する中断指示メッセージを送信するとともに、並行度Ｃを１だけデクリメントする）（ステップＳ３５）、その後、並行度Ｃを１だけインクリメントし（ステップＳ３６）、許可する旨及び指定ラウンド数を含む許可通知メッセージを返送する（ステップＳ３７）。
【００８５】
なお、（本具体例では証明者装置１が）中断指示メッセージを受信した場合、中断を指示されたＺＫＩＰプロトコルを中断させる処理を行う。この中断されたＺＫＩＰプロトコルについては、中断するまでに行われた処理は無効となるので、必要に応じてあらためてＺＫＩＰプロトコルの開始要求からやり直せばよい。なお、ＺＫＩＰプロトコルを中断した場合、第２の処理部１３，３３は、直ちに第１の処理部１２，３２にエラー通知を行うようにしてもよいし、一定時間経過後にあらためて開始要求を試みることを、許可が得られるまで予め定められた回数だけ行い、それでも許可が得られないときに、エラー通知を行うようにしてもよい。
【００８６】
また、最も優先度の低いものが該新たなＺＫＩＰプロトコルであれば、ステップＳ３３でＮｏとなり、許可しない旨の不許可通知メッセージを返送する（ステップＳ３８）。
【００８７】
また、受信したメッセージが終了通知メッセージであったならば（ステップＳ３９）、並行度Ｃを１だけデクリメントする（ステップＳ３９）。
【００８８】
例えば、簡単のためにＣｍａｘ＝３とした場合に、図１２に示すように、ＺＫＩＰプロトコル（ｐ１）の開始要求は許可され、次いで、ＺＫＩＰプロトコル（ｐ１）の実行中のＺＫＩＰプロトコル（ｐ２）の開始は許可され、次いで、ＺＫＩＰプロトコル（ｐ１）及び（ｐ２）の実行中のＺＫＩＰプロトコル（ｐ３）の開始は許可される。そして、ＺＫＩＰプロトコル（ｐ１）〜（ｐ３）の実行中に、ＺＫＩＰプロトコル（ｐ４）に係る開始要求があった場合に、例えば、ＺＫＩＰプロトコル（ｐ３）の優先度が最も低ければ、ＺＫＩＰプロトコル（ｐ３）が中断された後、ＺＫＩＰプロトコル（ｐ４）の開始が許可される。そして、ＺＫＩＰプロトコル（ｐ１）が終了した後に、あらためてＺＫＩＰプロトコル（ｐ３）に係る開始要求があれば、開始が許可される。
【００８９】
なお、並行度Ｃが予め定められた上限値Ｃｍａｘを下回った際に、中断させたＺＫＩＰプロトコルで未だＺＫＩＰプロトコルを開始していないものがあれば、これに開始可能である旨あるいは開始を指示する旨のメッセージを通知して、開始要求を促すようにしてもよい。
【００９０】
（第３の実施形態）
第１の実施形態では、並行度Ｃが上限値Ｃｍａｘに達している場合には、その後に受信した開始要求を不許可とすることによって、新たなＺＫＩＰプロトコルを開始させないようにするものであったが、第３の実施形態は、並行度Ｃが上限値Ｃｍａｘに達している場合には、実行中のＣｍａｘ個のＺＫＩＰプロトコルと、新たなＺＫＩＰプロトコルのうちで、最も優先度の低いものを選択し、最も優先度の低いものが実行中のＺＫＩＰプロトコルであれば、それを一旦停止させて、該新たなＺＫＩＰプロトコルを開始させ、最も優先度の低いものが該新たなＺＫＩＰプロトコルであれば、その開始要求を不許可とするものである。また、並行度Ｃが上限値Ｃｍａｘを下回った際には、当該一旦停止させたＺＫＩＰプロトコルを再開させるものである。
【００９１】
ここでは、第１の実施形態と相違する点を中心に説明する。
【００９２】
図１３に、本実施形態の場合の管理装置５の処理手順例を示す。
【００９３】
まず、ＺＫＩＰプロトコルの並行度Ｃを０に設定する（ステップＳ４１）。
【００９４】
開始要求メッセージ又は終了通知メッセージが到着するのを待ち、受信したメッセージが開始要求メッセージであったならば（ステップＳ４２）、許可と中断の判断を行う。
【００９５】
すなわち、本実施形態では、並行度Ｃが予め定められた上限値Ｃｍａｘに達していないならば、許可すると判断する。この場合、ステップＳ４３でＹｅｓ、Ｓ４４でＮｏとなり、並行度Ｃを１だけインクリメントし（ステップＳ４６）、許可する旨及び指定ラウンド数を含む許可通知メッセージを返送する（ステップＳ３７）。
【００９６】
他方、並行度Ｃが予め定められた上限値Ｃｍａｘに達しているならば、実行中のＣｍａｘ個のＺＫＩＰプロトコルと、新たなＺＫＩＰプロトコルのうちで、最も優先度の低いものを選択する。
【００９７】
そして、最も優先度の低いものが実行中のＺＫＩＰプロトコルである場合には、ステップＳ４３でＹｅｓ、Ｓ４４でＹｅｓとなり、最も優先度の低い実行中のＺＫＩＰプロトコルを一旦停止させるための処理を行い（例えば証明者装置１へ当該実行中のＺＫＩＰプロトコルを一旦停止する旨を指示する停止指示メッセージを送信するとともに、並行度Ｃを１だけデクリメントする）（ステップＳ４５）、その後、並行度Ｃを１だけインクリメントし（ステップＳ４６）、許可する旨及び指定ラウンド数を含む許可通知メッセージを返送する（ステップＳ４７）。
【００９８】
なお、（本具体例では証明者装置１が）停止指示メッセージを受信した場合、中断を指示されたＺＫＩＰプロトコルを停止させる処理を行う。この停止されたＺＫＩＰプロトコルについては、停止するまでに行われた処理は有効となり、再開指示メッセージを受信すれば、停止したところから続いてＺＫＩＰプロトコルを実行することができる。
【００９９】
また、最も優先度の低いものが該新たなＺＫＩＰプロトコルであれば、ステップＳ４３でＮｏとなり、許可しない旨の不許可通知メッセージを返送する（ステップＳ４８）。
【０１００】
また、受信したメッセージが終了通知メッセージであったならば（ステップＳ３９）、並行度Ｃを１だけデクリメントし（ステップＳ４９）、次いで、再開の判断を行う。
【０１０１】
すなわち、一旦停止中のＺＫＩＰプロトコルがなければ、再開処理は不要であるので、ステップＳ５０でＮｏとなり、ステップＳ５１の再開処理はスキップする。
【０１０２】
また、一旦停止中のＺＫＩＰプロトコルが１つあれば、当該ＺＫＩＰプロトコルを再開させると決定する。他方、一旦停止中のＺＫＩＰプロトコルが複数あれば、それらのうちから最も優先度の高いものを選択し、該選択したＺＫＩＰプロトコルを再開させると決定する。これらの場合、ステップＳ５０でＹｅｓとなり、当該ＺＫＩＰプロトコルを再開させるための処理を行う（例えば証明者装置１へ当該実行中のＺＫＩＰプロトコルを再開する旨を指示する中断指示メッセージを送信するとともに、並行度Ｃを１だけデクリメントする）（ステップＳ５１）。
【０１０３】
例えば、簡単のためにＣｍａｘ＝３とした場合に、図１４に示すように、ＺＫＩＰプロトコル（ｐ１）の開始要求は許可され、次いで、ＺＫＩＰプロトコル（ｐ１）の実行中のＺＫＩＰプロトコル（ｐ２）の開始は許可され、次いで、ＺＫＩＰプロトコル（ｐ１）及び（ｐ２）の実行中のＺＫＩＰプロトコル（ｐ３）の開始は許可される。そして、ＺＫＩＰプロトコル（ｐ１）〜（ｐ３）の実行中に、ＺＫＩＰプロトコル（ｐ４）に係る開始要求があった場合に、例えば、ＺＫＩＰプロトコル（ｐ１）の優先度が最も低ければ、ＺＫＩＰプロトコル（ｐ１）が停止された後、ＺＫＩＰプロトコル（ｐ４）の開始が許可される。そして、ＺＫＩＰプロトコル（ｐ１）が終了した後に、ＺＫＩＰプロトコル（ｐ１）が再開される。
【０１０４】
（第４の実施形態（第１〜第３の実施形態の変形例））
第１〜第３の実施形態では、一旦設定した並行度の上限値Ｃｍａｘを不変としたが（従って、Ｃｍａｘに基づく指定ラウンド数ｒも不変としたが）、ＺＫＩＰプロトコルの実行中であっても、例えば、予め容易された知識情報や、統計情報等により、Ｃｍａｘを増加又は減少すべきと判断される場合には、新たなＣｍａｘ´を設定し、Ｃｍａｘ´に基づいて新たな指定ラウンド数ｒ´を設定し直し、その後に開始許可するＺＫＩＰプロトコルについては、新たな指定ラウンド数ｒ´を通知するようにしてもよい。その際、実行中のＺＫＩＰプロトコルについては、例えば、第２の実施形態のような中断指示メッセージを出して中断させ、新たな指定ラウンド数ｒ´で開始し直すことができるようにすればよい。
【０１０５】
また、第１〜第３の実施形態や上記の変形例では、管理装置５のラウンド数管理部５４が指定ラウンド数を保持し、管理装置５は、開始要求メッセージに対して開始を許可すると判断した場合に、該指定ラウンド数を、許可を通知するメッセージに記述して又は他のメッセージにより、証明者装置１及び又は検証者装置３へ通知するものであったが、その代わりに、証明者装置１及び又は検証者装置３が指定ラウンド数を保持しており、管理装置５は、開始要求メッセージに対して開始を許可すると判断した場合に、該指定ラウンド数の通知は行わずに、許可を通知するメッセージを通知する構成も可能である。なお、証明者装置１と検証者装置３の一方のみが指定ラウンド数を保持している場合には、証明者装置１と検証者装置３の一方から他方へ指定ラウンド数を通知すればよい。また、管理装置５がラウンド数管理部５４を備えない構成も可能である。
【０１０６】
（第５の実施形態）
さて、第１の実施形態〜第４の実施形態は、指定ラウンド数ｒを静的に設定するものであったが、第５の実施形態は、指定ラウンド数ｒを動的に設定する（指定ラウンド数が適応的に増減するような決定を行う）ようにしたものである。
【０１０７】
また、第１の実施形態〜第４の実施形態は、開始許可タイプを採用したものであったが、第５の実施形態は、開始通知タイプを採用するものである。
【０１０８】
ここでは、第１の実施形態と相違する点を中心に説明する。
【０１０９】
図１５に、本実施形態の場合の管理装置５の処理手順例を示す。
【０１１０】
まず、並行度管理部５３で管理されるＺＫＩＰプロトコルの並行度Ｃを０に設定する（ステップＳ５１）。
【０１１１】
開始要求メッセージ又は終了通知メッセージが到着するのを待ち、通信部５１を介して（本例では証明者装置１から）受信したメッセージを受信メッセージ解釈部５２により解析した結果、開始要求メッセージであったならば（ステップＳ５２）、まず、並行度Ｃを１だけインクリメントする（ステップＳ５３）。
【０１１２】
次いで、指定ラウンド数を求める（ステップＳ５４）。
【０１１３】
本実施形態では、ラウンド数管理部５４は、ある管理単位となるＺＫＩＰプロトコル群につき新たにＺＫＩＰプロトコル（ここでｐ１と呼ぶ）が開始される場合に、該ＺＫＩＰプロトコル（ｐ１）に通知すべき指定ラウンド数を、該ＺＫＩＰプロトコル（ｐ１）が開始したと仮定したときの並行度Ｃに基づいて決定する（すなわち、指定ラウンド数ｒは、Ｃ個並行合成されたＺＫＩＰプロトコルの実行によってもゼロ知識性が破れないために必要なラウンド数以上であるように設定される）。なお、前述と同様に、Ｃ個並行合成されたＺＫＩＰプロトコルの実行によってもゼロ知識性が破れないために必要なラウンド数は、プロトコルに応じて定まるものである。例えば、Ｒｉｃｈａｒｄｓｏｎ−Ｋｉｌｉａｎプロトコルにつき、ｒを所定の正定数として、指定ラウンド数Ｒ＝ｒｌｏｇ２Ｃで求めてもよい。
【０１１４】
なお、指定ラウンド数は、例えば、Ｃをパラメータとする予め規定された計算式によって求めてもよいし、Ｃを入力とする予め用意された変換テーブルによって求めるようにしてもよい。
【０１１５】
そして、求めた指定ラウンド数を含むラウンド数通知メッセージを通信部５１を介して（本例では証明者装置１へ）返送する（ステップＳ５５）。
【０１１６】
一方、受信したメッセージが終了通知メッセージであったならば（ステップＳ５２）、並行度Ｃを１だけデクリメントする（ステップＳ５６）。
【０１１７】
なお、ＺＫＩＰプロトコル実行管理部５５が、各管理単位となるＺＫＩＰプロトコル群ごとに、現在実行中のＺＫＩＰプロトコル（開始許可を与えてから終了通知を受けるまでのＺＫＩＰプロトコル）を識別する情報と、そのＺＫＩＰプロトコルに通知した指定ラウンド数とを対応付けて保持するようにしてもよい。
【０１１８】
（第６の実施形態）
さて、第６の実施形態は、第５の実施形態の手順において、さらに、ある管理単位となるＺＫＩＰプロトコル群につき新たにＺＫＩＰプロトコル（ｐ１）に係る開始要求メッセージを受信した場合に、該ＺＫＩＰプロトコル（ｐ１）を開始すると、現在既に実行されている該ＺＫＩＰプロトコル群に属するＺＫＩＰプロトコルのうち最小の指定ラウンド数を持つものの安全性が保証されなくなるか否か（ゼロ知識性が破れるか保たれるか）を判断し、安全性が保証されなくなると判断される場合には、（その最小の指定ラウンド数を持つＺＫＩＰプロトコルが終了するまで、）ＺＫＩＰプロトコル（ｐ１）の開始を不許可とするようにしたものである（従って、本実施形態は、開始許可タイプになる）。
【０１１９】
ここでは、第５の実施形態と相違する点を中心に説明する。
【０１２０】
本実施形態では、ＺＫＩＰプロトコル実行管理部５５が、各管理単位となるＺＫＩＰプロトコル群ごとに、図１６に示すように、現在実行中のＺＫＩＰプロトコル（開始許可を与えてから終了通知を受けるまでのＺＫＩＰプロトコル）を識別する情報と、そのＺＫＩＰプロトコルに通知した指定ラウンド数とを対応付けた管理テーブル５５５を保持するようにするものとする。
【０１２１】
図１７に、本実施形態の場合の管理装置５の処理手順例を示す。
【０１２２】
まず、並行度管理部５３で管理されるＺＫＩＰプロトコルの並行度Ｃを０に設定する（ステップＳ６１）。
【０１２３】
開始要求メッセージ又は終了通知メッセージが到着するのを待ち、通信部５１を介して（本例では証明者装置１から）受信したメッセージを受信メッセージ解釈部５２により解析した結果、開始要求メッセージであったならば（ステップＳ６２）、ＺＫＩＰプロトコル実行管理部５５により、開始を許可するか否か判断する。
【０１２４】
本実施形態では、前述したように、もし開始を許可したとすると、現在既に実行されているＺＫＩＰプロトコルのうち最小の指定ラウンド数を持つものの安全性が保証されなくなるか否か（当該最小の指定ラウンド数が、新たにＺＫＩＰプロトコルを開始すると、安全性が保証されないようなラウンド数であるか否か）を判断し、安全性が確保されると判断された場合には、許可をするものとし、安全性が保証されなくなると判断される場合には、不許可とするものとする。なお、最小の指定ラウンド数は、ＺＫＩＰプロトコル実行管理部５５が保持する上記の管理テーブルにより知ることができる。
【０１２５】
許可すると判断されたならば（ステップＳ６３）、まず、並行度Ｃを１だけインクリメントする（ステップＳ６４）。
【０１２６】
次いで、第５の実施形態と同様にして、指定ラウンド数を求める（ステップＳ６５）。
【０１２７】
そして、求めた指定ラウンド数を含むラウンド数通知メッセージを通信部５１を介して（本例では証明者装置１へ）返送する（ステップＳ６６）。
【０１２８】
一方、許可しないと判断されたならば（ステップＳ６３）、許可しない旨の不許可通知メッセージを通信部５１を介して（本例では証明者装置１へ）返送する（ステップＳ６７）。
【０１２９】
また、受信したメッセージが終了通知メッセージであったならば（ステップＳ６２）、並行度Ｃを１だけデクリメントする（ステップＳ６８）。
【０１３０】
ところで、このような指定ラウンド数決定の待ち時間を減らすため、安全性にマージンを持たせた指定ラウンド数を回答するようにしてもよい。例えば、並行度Ｃに基づいて指定ラウンド数を求めるにあたって、並行度Ｃに、（並行度Ｃにかかわらない一定の）整数ｃ１を加算して、並行度Ｃ＋ｃ１に基づいて指定ラウンド数を求めるようにしてもよいし、並行度Ｃに、（並行度Ｃに応じて定まる）整数ｃ２（Ｃ）を加算して、並行度Ｃ＋ｃ２（Ｃ）に基づいて指定ラウンド数を求めるようにしてもよい。ｃ２（Ｃ）は、例えば、Ｃがより小さいほどｃ２（Ｃ）が大きくなるような関数、あるいは、ある連続する範囲内のＣの最大値と当該Ｃとの差分を与える関数など、種々のものが使用可能である。また、どのくらいのマージンを持たせるかを動的に判断していくようにしてもよい。
【０１３１】
例えば、図１８に示すように、ＺＫＩＰプロトコル（ｐ１）は、Ｃ＋ｃ２（Ｃ）＝１＋２＝３として求められた指定ラウンド数が与えられ、ＺＫＩＰプロトコル（ｐ２）は、Ｃ＋ｃ２（Ｃ）＝２＋１＝３として求められた指定ラウンド数が与えられ、ＺＫＩＰプロトコル（ｐ３）は、Ｃ＋ｃ２（Ｃ）＝３＋０＝３として求められた指定ラウンド数が与えられ、ＺＫＩＰプロトコル（ｐ１）〜（ｐ３）が実行中であるものとする。このときに、ＺＫＩＰプロトコル（ｐ４）に係る開始要求があったものとする。ここで、ＺＫＩＰプロトコル（ｐ４）を、Ｃ＋ｃ２（Ｃ）＝３＋２＝５として求められた指定ラウンド数を与えて開始させるとものすると、ＺＫＩＰプロトコル（ｐ１）〜（ｐ３）のすべてについて安全性が確保されないことになるので、ここでは、一旦、ＺＫＩＰプロトコル（ｐ４）の開始要求について不許可とする。次に、ＺＫＩＰプロトコル（ｐ１）が終了して、ＺＫＩＰプロトコル（ｐ２）と（ｐ３）の実行中に、あらためてＺＫＩＰプロトコル（ｐ４）に係る開始要求があったものとする。ここでは、（例えば不許可の発生を契機として）より並行度を増加させるために、ＺＫＩＰプロトコル（ｐ４）を、Ｃ＋ｃ２（Ｃ）＝２＋３＝５として求められた指定ラウンド数を与えて開始させるとものすると、ＺＫＩＰプロトコル（ｐ２）と（ｐ３）のいずれも安全性が確保されることになるので、ここでは、ＺＫＩＰプロトコル（ｐ４）の開始要求について許可をする。
【０１３２】
また、上記では、もし開始を許可したとすると、最小の指定ラウンド数を持つＺＫＩＰプロトコルの安全性が保証されなくなる場合には、開始を不許可とするようにしたが、その代わりに、第２の実施形態のようにして、優先度の小さいＺＫＩＰプロトコル（あるいは、当該最小の指定ラウンド数を持つＺＫＩＰプロトコル）を中断させ、最初からやり直させる構成も可能である。あるいは、第３の実施形態のようにして、優先度の小さいＺＫＩＰプロトコル（あるいは、当該最小の指定ラウンド数を持つＺＫＩＰプロトコル）を一旦停止させ、その後に該一旦停止させたＺＫＩＰプロトコルを再開させても、その再開時に最小の指定ラウンド数を持つＺＫＩＰプロトコルの安全性が確保されるような状態に到ったときに該一旦停止させたＺＫＩＰプロトコルを再開させるような構成も可能である。
【０１３３】
（第７の実施形態）
第６の実施形態では、ある指定ラウンド数ｒ１にてＺＫＩＰプロトコルｐ１を開始すると、該ＺＫＩＰプロトコルｐ１についてはその実行中に該指定ラウンド数ｒ１を増減しないことを前提としたものであったが、実行中に指定ラウンド数を増減可能なＺＫＩＰプロトコルに対して、管理装置５が、必要に応じて指定ラウンド数の増減を指示するラウンド数変更指定メッセージを送信する形態も可能である。
【０１３４】
例えば、第６の実施形態において、最小の指定ラウンド数を持つＺＫＩＰプロトコルの安全性が保証されなくなる（ゼロ知識性が破れる）ために、開始要求を不許可にするようにし、あるいは、開始要求を許可するとともに、他のＺＫＩＰプロトコルを中断あるいは停止させるようにしたが、その代わりに、開始要求を許可するとともに、開始要求を許可したことによって安全性が保証されなくなるＺＫＩＰプロトコルについて、指定ラウンド数の増加を指示するラウンド数変更指定メッセージを送信するようにしてもよい（この場合、開始通知タイプになる）。
【０１３５】
また、例えば、開始要求を許可したとすると、最小の指定ラウンド数を持つＺＫＩＰプロトコルの安全性が保証されなくなる場合に、開始要求を不許可にする方法と、開始要求を許可するとともに、他のＺＫＩＰプロトコルを中断させる方法と、開始要求を許可するとともに、他のＺＫＩＰプロトコルを停止させる方法と、開始要求を許可するとともに、開始要求を許可したことによって安全性が保証されなくなるＺＫＩＰプロトコルについて指定ラウンド数を増加させる方法とのいずれを採用するかを適宜選択するような構成も可能である。
【０１３６】
また、例えば、第５、第６の実施形態において、並行して実行されていた多数のＺＫＩＰプロトコルが一斉に終了した場合に、残りの実行中のＺＫＩＰプロトコルに対して、指定ラウンド数の減少を指示するラウンド数変更指定メッセージを送信するような構成も可能である。
【０１３７】
（第８の実施形態（第５〜第７の実施形態の変形例））
また、第５〜第７の実施形態では、管理装置５は、開始要求メッセージに対して開始を許可すると判断した場合に、管理装置５のラウンド数管理部５４が並行度Ｃに基づいて指定ラウンド数を動的に求め、求めた指定ラウンド数を、許可を通知するメッセージに記述して又は他のメッセージにより、証明者装置１及び又は検証者装置３へ通知するものであったが、その代わりに、証明者装置１及び又は検証者装置３が並行度Ｃに基づいて指定ラウンド数を求める機能を保持しており、管理装置５は、開始要求メッセージに対して開始を許可すると判断した場合に、該指定ラウンド数の通知は行わずに、並行度Ｃを、許可を通知するメッセージに記述して又は他のメッセージにより、証明者装置１及び又は検証者装置３へ通知、証明者装置１及び又は検証者装置３は、与えられた並行度Ｃに基づいて指定ラウンド数を動的に求める構成も可能である。なお、証明者装置１と検証者装置３の一方のみが指定ラウンド数を動的に求める場合には、証明者装置１と検証者装置３の一方から他方へ指定ラウンド数を通知すればよい。また、管理装置５がラウンド数管理部５４を備えない構成も可能である。
【０１３８】
（バリエーションについて）
なお、これまでの各実施形態では、証明者装置１及び又は検証者装置３から管理装置５への開始要求や終了通知によって、ＺＫＩＰプロトコルの並行度Ｃや、実行中のＺＫＩＰプロトコルなどの管理をするものであったが、その代わりに、管理装置５が、証明者装置１と検証者装置３との間でやり取りされるメッセージを監視することによって、ＺＫＩＰプロトコルの並行度Ｃや、実行中のＺＫＩＰプロトコルなどの管理をするようにしてもよい。
【０１３９】
また、これまでの各実施形態では、開始要求に応答して、管理装置５が指定ラウンド数を返送するものであったが、その代わりに、管理装置５が、必要に応じて自発的に、並行度に応じたＺＫＩＰプロトコルの指定ラウンド数ｒを決定し、これを開始要求とは関係なく所定の証明者装置１及び又は検証者装置３に与える（あるいは、ネットワーク内に放送する）ようにしてもよい。
【０１４０】
また、これまでの各実施形態では、管理装置５は、証明者装置１及び検証者装置３とは独立した装置であったが、管理装置５を証明者装置１あるいは検証者装置３と一体化した装置として構成することも可能である。
【０１４１】
また、管理対象となるＺＫＩＰプロトコル群のうちに複数の異なる種類のＺＫＩＰプロトコルが混在し得る場合においては、基本的には、ＺＫＩＰプロトコルの種類ごとに指定ラウンド数を求めればよい。その際、指定ラウンド数がＺＫＩＰプロトコルの種類にかかわりなくＺＫＩＰプロトコルの並行度だけで定まるときは、これまでのように並行度から指定ラウンド数を求めればよい。他方、例えば、管理対象となるＺＫＩＰプロトコル群に含まれるＺＫＩＰプロトコルの種類及び各種類のＺＫＩＰプロトコルの個数に応じて指定ラウンド数が変わってくる場合には、管理装置５のＺＫＩＰプロトコル実行管理部５５は、現在実行中のＺＫＩＰプロトコルについて、その種類をも保持しておき、現在実行中のＺＫＩＰプロトコルの種類ごとの個数をパラメータとする予め規定された計算式によって求めてもよいし、現在実行中のＺＫＩＰプロトコルの種類ごとの個数を入力とする予め用意された変換テーブルによって求めるようにすればよい。
【０１４２】
なお、以上の各機能は、ソフトウェアとして記述し適当な機構をもったコンピュータに処理させても実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるためのプログラムとして実施することもできる。加えて該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【０１４３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【０１４４】
【発明の効果】
本発明によれば、並行に複数実行することがあるゼロ知識対話証明プロトコルに対して、安全性と効率性の両立を図ることができるようになる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る通信システムの構成例を示す図
【図２】ＺＩＰプロトコルの管理について説明するための図
【図３】各装置間でやり取りされるメッセージについて説明するための図
【図４】同実施形態に係る管理装置の構成例を示す図
【図５】同実施形態に係る証明者装置の構成例を示す図
【図６】同証明者装置の一動作例について説明するための図
【図７】同実施形態に係る検証者装置の構成例を示す図
【図８】同検証者装置の一動作例について説明するための図
【図９】同実施形態に係る管理装置の処理手順の一例を示すフローチャート
【図１０】具体例について説明するための図
【図１１】同実施形態に係る管理装置の処理手順の他の例を示すフローチャート
【図１２】具体例について説明するための図
【図１３】同実施形態に係る管理装置の処理手順のさらに他の例を示すフローチャート
【図１４】具体例について説明するための図
【図１５】同実施形態に係る管理装置の処理手順のさらに他の例を示すフローチャート
【図１６】同管理装置のＺＫＩＰプロトコル実行管理部の持つ管理テーブルの一例を示す図
【図１７】同実施形態に係る管理装置の処理手順のさらに他の例を示すフローチャート
【図１８】具体例について説明するための図
【符号の説明】
１…証明者装置、３…検証者装置、５…管理装置、８…ネットワーク、１１，３１，５１…通信部、１２，３２…第１の処理部、１３，３３…第２の処理部、１４，３４，５４…ラウンド数管理部、５２…受信メッセージ解釈部、５３…並行度管理部、５５…ＺＫＩＰプロトコル実行管理部、５６…制御部、５５５…管理テーブル
【図１】
2005026928.tif 000003
【図２】
2005026928.tif 000004
【図３】
2005026928.tif 000005
【図４】
2005026928.tif 000006
【図５】
2005026928.tif 000007
【図６】
2005026928.tif 000008
【図７】
2005026928.tif 000009
【図８】
2005026928.tif 000010
【図９】
2005026928.tif 000011
【図１０】
2005026928.tif 000012
【図１１】
2005026928.tif 000013
【図１２】
2005026928.tif 000014
【図１３】
2005026928.tif 000015
【図１４】
2005026928.tif 000016
【図１５】
2005026928.tif 000017
【図１６】
2005026928.tif 000018
【図１７】
2005026928.tif 000019
【図１８】
2005026928.tif 000020