(57)【要約】【課題】証明システムが零知識証明に属するための制約は厳しく、必ずしも所望の性質を満たす零知識証明を構成できるとは限らないという問題があった。【解決手段】本発明は、電子署名、公開鍵暗号、相手認証、メッセージ認証等の暗号プロトコルの基本技術である零知識証明を拡張したものであり、本発明が注目したのは、零知識証明であれば秘密の漏洩はないが、秘密の漏洩がなくても零知識証明であるとは限らないという事実である。この点に注目して、零知識証明よりも広い範囲の証明システムに対して、知識が漏れないことを保証できることを発見した。この発見を利用すれば、今まで零知識証明に属さなかった証明システムで、知識の漏がないことが保証されるものを利用すれば、今まで不可能であった所望の特徴を満たす証明システムが構成可能である場合が多々ある。このような証明システムが本発明の中心的な要素である。【選択図】      図１
2004179766.tif 000002
【特許請求の範囲】
【請求項１】
互いに通信が可能な生成装置と、証明装置と、検証装置と、からなり、証明装置は生成装置が生成した秘密事項である証拠を保有し、前記証拠を証明装置が保有することを検証装置が証明装置と対話することにより検証装置に証明する証明システムであって、
さらに、生成装置と、検証装置とそれぞれ通信可能な模擬装置と識別装置とを接続して前記証明システムを評価するとき、
前記各装置には、それぞれランダムなデータが記録されたランダムテープが入力され、
生成装置は、関係Ｒと共通入力からでは前記証拠を導出することが困難な数値上の前記関係Ｒを相互に有する前記共通入力と前記証拠とを前記関係Ｒをもとに前記ランダムテープから生成し、証明装置と識別装置には、生成された前記共通入力と前記証拠とを入力し、検証装置と模擬装置には、生成された前記共通入力を入力し、
検証装置は、前記共通入力と自身のランダムテープから入力したデータを使用して証明装置と対話することにより証明装置が前記証拠を有するか否かについての証明受理または証明拒絶を出力し、その結果、検証装置が入力したランダムテープのデータと証明装置との対話による対話データとを含む証明履歴を生成し、
模擬装置は、前記共通入力と自身に入力されるランダムテープを使用して検証装置にランダムテープを入力し検証装置と対話することで証明装置と検証装置による対話を証明装置を使用せずに模擬し、その結果、模擬装置が検証装置に入力したランダムテープのデータと模擬された対話データとを含む模擬証明履歴を生成し、
データの分布の相違を識別する識別装置は、生成装置から同じ前記共通入力を入力して生成された前記証明履歴と前記模擬証明履歴のデータの分布上の相違について、確率的に１に近似される大多数の前記共通入力の場合において、計算量理論的に識別不可能であり、かつ、確率的に無視できる少数の前記共通入力の場合においては、その相違を計算量理論的に識別可能である
と評価することを特徴とする証明システム。
【請求項２】
互いに通信が可能な生成装置と、証明装置と、検証装置と、模擬装置と、識別装置と、からなり、証明装置は、生成装置が生成した秘密事項である証拠を保有し、証明装置が前記証拠を保有することを検証装置が証明装置と対話することにより検証装置に証明する証明システムを模擬装置と識別装置を前記証明システムに接続して評価する評価システムであって、
前記各装置には、それぞれランダムなデータが記録されたランダムテープが入力され、
生成装置は、関係Ｒと共通入力からでは前記証拠を導出することが困難な数値上の前記関係Ｒを相互に有する前記共通入力と前記証拠とを前記関係Ｒをもとに前記ランダムテープから生成し、証明装置と識別装置には、生成された前記共通入力と前記証拠とを入力し、検証装置と模擬装置には、生成された前記共通入力を入力し、
検証装置は、前記共通入力と自身のランダムテープから入力したデータを使用して証明装置と対話することにより証明装置が前記証拠を有するか否かについての証明受理または証明拒絶を出力し、その結果、検証装置が入力したランダムテープのデータと証明装置との対話による対話データとを含む証明履歴を生成し、
模擬装置は、前記共通入力と自身に入力されるランダムテープを使用して検証装置にランダムテープを入力し検証装置と対話することで証明装置と検証装置による対話を証明装置を使用せずに模擬し、その結果、模擬装置が検証装置に入力したランダムテープのデータと模擬された対話データとを含む模擬証明履歴を生成し、
データの分布の相違を識別する識別装置は、同じ前記共通入力を入力して生成された前記証明履歴と前記模擬証明履歴のデータの分布上の相違について、確率的に１に近似される大多数の前記共通入力の場合において計算量理論的に識別不可能であるか否かの評価を行ない、評価と評価の根拠を評価結果として記憶装置に記憶するとともに、前記証明システムの前記評価結果を公開することを特徴とする評価システム。
【請求項３】
互いに通信が可能な生成装置と、証明装置と、検証装置と、からなり、前記生成装置が生成した秘密事項である証拠を前記証明装置は保有し、前記証拠を証明装置が保有することを検証装置が証明装置と対話することにより検証装置に証明する証明システムであって、
さらに、生成装置と、検証装置と通信可能な模擬装置と識別装置とを接続して前記証明システムを評価するとき、
前記各装置には、それぞれランダムなデータが記録されたランダムテープが入力され、
生成装置は、関係Ｒと共通入力からでは前記証拠を導出することが困難な数値上の前記関係Ｒを相互に有する前記共通入力と前記証拠とを前記関係Ｒをもとに前記ランダムテープから生成し、証明装置と識別装置には、生成された前記共通入力と前記証拠とを入力し、検証装置と模擬装置には、生成された前記共通入力を入力し、
証明装置は、証明部とハッシュ部からなり、証明部は、検証装置またはハッシュ部にデータを送信し、ハッシュ部は、証明部から送られるデータのハッシュ値を計算して結果を証明部に返し、証明部とハッシュ部のデータの送受信により証明部とハッシュ部との対話データが生成され、前記対話データのうちハッシュ部から証明部に送られるデータをランダムなデータに変更した場合、ランダムなデータに変更された対話データと証明装置から検証装置に送付されるデータとからなる証明履歴と、
模擬装置は、証明装置と検証装置による対話を、証明装置を使用せず前記共通入力と自身に入力されるランダムテープとから模擬し、その結果、模擬された対話データを含む模擬証明履歴を生成し、
データの分布の相違を識別する識別装置は、生成装置から同じ前記共通入力を入力して生成された前記証明履歴と前記模擬証明履歴のデータの分布上の相違について、確率的に１に近似される大多数の前記共通入力の場合において、計算量理論的に識別不可能であり、かつ、確率的に無視できる少数の前記共通入力の場合においては、その相違を計算量理論的に識別可能である
と評価することを特徴とする証明システム。
【請求項４】
互いに通信が可能な生成装置と、証明装置と、検証装置と、模擬装置と、識別装置と、からなり、証明装置は、生成装置が生成した秘密事項である証拠を保有し、証明装置が前記証拠を保有することを検証装置が証明装置と対話することにより検証装置に証明する証明システムを模擬装置と識別装置を前記証明システムに接続して評価する評価システムであって、
前記各装置には、それぞれランダムなデータが記録されたランダムテープが入力され、
生成装置は、関係Ｒと共通入力からでは前記証拠を導出することが困難な数値上の前記関係Ｒを相互に有する前記共通入力と前記証拠とを前記関係Ｒをもとに前記ランダムテープから生成し、証明装置と識別装置には、生成された前記共通入力と前記証拠とを入力し、検証装置と模擬装置には、生成された前記共通入力を入力し、
証明装置は、証明部とハッシュ部からなり、証明部は、検証装置またはハッシュ部にデータを送信し、ハッシュ部は、証明部から送られるデータのハッシュ値を計算して結果を証明部に返し、証明部とハッシュ部のデータの送受信により証明部とハッシュ部との対話データが生成され、前記対話データのうちハッシュ部から証明部に送られるデータをランダムなデータに変更した場合、ランダムなデータに変更された対話データと証明装置から検証装置に送付されるデータとからなる証明履歴と、
模擬装置は、証明装置と検証装置による対話を、証明装置を使用せず前記共通入力と自身に入力されるランダムテープとから模擬し、その結果、模擬された対話データを含む模擬証明履歴を生成し、
データの分布の相違を識別する識別装置は、同じ前記共通入力を入力して生成された前記証明履歴と前記模擬証明履歴のデータの分布上の相違について、確率的に１に近似される大多数の前記共通入力の場合において計算量理論的に識別不可能であるか否かの評価を行ない、評価と評価の根拠を評価結果として記憶装置に記憶するとともに、前記証明システムの前記評価結果を公開することを特徴とする評価システム。
【請求項５】
請求項１または請求項３において、識別装置をどのような識別装置に置き換えても、置き換えられた識別装置は、生成装置から同じ前記共通入力を入力して生成された前記証明履歴と前記模擬証明履歴のデータの分布上の相違について、確率的に１に近似される大多数の前記共通入力の場合において、計算量理論的に識別不可能であり、かつ、確率的に無視できる少数の前記共通入力の場合においては、その相違を計算量理論的に識別可能である
と評価することを特徴とする証明システム。
【請求項６】
請求項２または請求項４において、識別装置は、
インターネットまたは電話回線を含むネットワークを通じて、前記証明システムの評価結果を送信することを特徴とする評価システム。
【請求項７】
互いに通信が可能な生成装置と、証明装置と、検証装置と、からなり、証明装置は生成装置が生成した秘密事項である証拠を保有し、前記証拠を証明装置が保有することを検証装置が証明装置と対話することにより検証装置に証明するディフィーヘルマン事例でないことの証明システムであって、
生成装置と証明装置と検証装置にそれぞれランダムなデータを記録したランダムテープと群を特定する値が入力され、
生成装置は自身に入力されたランダムなデータから、前記群の要素ｇ、ｈ、ｚ’と整数ｘを入力し、共通入力をｇ、ｈ、ｙ＝ｇｘ、ｚ’、証拠をｘとして生成し、生成装置から証明装置に、前記共通入力と前記証拠を入力し、
生成装置から前記検証装置に、前記共通入力を入力し、
検証装置は、前記共通入力と自身のランダムテープから入力したデータを使用して証明装置と対話することによりその結果として証明装置が前記証拠を有するか否かについての証明受理または証明拒絶を出力するものであって、
対話を開始した以降には、
（１）検証装置は、ランダムテープから前記群の位数より小さい数である整数ｂと、チャレンジｃとを無作為に選び、チャレンジコミットメントａ＝ｇｂｙｃを生成し前記証明装置に送り、
（２）証明装置は、ランダムテープを利用して前記群の位数より小さいある整数ｄ、ｅ、ｆを一様無作為に選び、
ｈ’＝ｈｄ、
ｗ’＝ｚ’ｄ、
ｖ  ＝ｈｘｄ、
ｙ’＝ｇｅ、
ｖ’＝ｈ’ｅ、
ｈ’’＝ｈｆ、
ｗ’’＝ｚ’ｆを計算し、
検証装置にｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’を送信し、
（３）検証装置は前記整数ｂ、ｃを証明装置に送り、
（４）証明装置は、受信した前記整数ｂ、ｃからａ＝ｇｂｙｃを確認し、この式が成り立たなかった場合は、プロトコルを中止し、成り立てば対話を続行し、
（５）証明装置は、前記整数ｄ、ｅ、ｆと前記証拠を用いて、リスポンス
ｒ  ＝ｘｃ＋ｅ  ｍｏｄ  （群の位数）、
ｒ’＝ｄｃ＋ｆ  ｍｏｄ  （群の位数）を計算して検証装置に送り、
（６）検証装置は、証明装置から受け取った前記ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’と、前記ｒ、ｒ’と、前記チャレンジｃ、前記共通入力ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’を用いて４個の等式と１個の不等式
ｇｒ＝ｙｃｙ’、
ｈ’ｒ＝ｖｃｖ’、
ｈｒ’＝ｈ’ｃｈ’’、
ｚ’ｒ’＝ｗ’ｃｗ’’、
ｖ≠ｗ’ｍｏｄ  ｐ
を確認し、全て成り立てば証明受理を、１つでも成り立たなければ証明拒絶を出力する
ことを特徴とする証明システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
複数の装置が互いに通信することで証明及び検証を行うシステムで、そのシステムのある装置がもし規定にしたがって通信するならば、他のある装置に対して秘密の情報を漏らさないことが保証されている通信による証明と検証の方法に関し、特にこのプロトコルが零知識証明クラスに属さない場合の証明システムと評価システムに関する。
【０００２】
【従来の技術】
従来の技術である零知識（ゼロ知識）証明クラスについて説明する。
【０００３】
零知識証明を解説した文献としては、例えば特許文献１と、非特許文献１、非特許文献２がある。
【０００４】
公開鍵暗号、電子署名、相手認証、メッセージ認証、秘匿計算、電子現金等の、暗号技術を用いるプロトコルは、暗号プロトコルと呼ばれる。これらの暗号プロトコルは、通信内容を他人に漏らさない（公開鍵暗号）、本人以外は署名することができない（電子署名）、他人が成り済ますことができない（相手認証）、等の性質を満たすことが必須である。
【０００５】
これらの性質はいずれも、固有な情報を隠蔽する点において共通する特徴を持っている。例えば公開鍵暗号では暗号化のための秘密鍵が、電子署名では署名のための秘密鍵が、相手認証では本人を証明する秘密鍵が隠蔽される。
【０００６】
これらの暗号プロトコルにおいてはプロトコルの実行時に上記様々な秘密鍵が相手に漏れるようなことがあってはならない。そしてこのような秘密鍵が隠蔽されるという性質を暗号プロトコルが持つことを証明する方法に、暗号プロトコルが零知識証明クラスに属することを示すことによる方法がある。
【０００７】
およそ零知識証明クラスとは、秘密鍵等の秘密情報を有する証明者と証明者が秘密情報を有することを検証する検証者とからなる対話的な知識の証明プロトコル（証明者と検証者が互いに通信することで、証明者が検証者に何かを証明するプロトコル）全体の集合で、証明者が検証者に証明したいこと以外にいっさい情報を漏らさないプロトコルの集合である。
【０００８】
これを相手認証の例を用いて説明する。
【０００９】
電子的な通信を通じてＶ（検証者）がＰ（証明者）を秘密情報を有する本人であると認証するには、ＰがＶに、Ｐしか持っていない秘密情報を持っていることを証明することでなし得る。しかし、もしここでＰがその情報をＶに渡すことによって情報の所持を証明したのならば、以降ＶはＰに成り済ますことができる。ところが、もしこの証明する方法（プロトコル）が零知識証明クラスに属するならば、ＰからＶには、Ｐが本人である証となる情報を持っているということ以外には伝わらないので、Ｐは安心してＶに証明してもらうことができる。
【００１０】
ある暗号プロトコルが零知識証明クラスに属することを証明するには、証明者と検証者の間で通信されるデータと「同様のデータ」を検証者自身が一人で生成できることを示せば良い（ここで言う「同様のデータ」の定義については後述）。
【００１１】
もしこのことが可能ならば、証明者との対話通信において検証者が獲得したデータ列は、もともと検証者が一人で生成し得たものであったので、検証者が自身で知り得ることができない証明者の秘密情報を知ろうとした時に、獲得したデータ列は何の役にも立たないことが分かる。それゆえ零知識証明クラスに属する暗号プロトコルは、証明者が検証者に証明したいことが真実どうかという１ビットの情報以外にはいっさい情報を漏らさないことが保証される。
【００１２】
任意の対話的に証明可能な事柄を、零知識証明クラスに属する対話的な知識の証明プロトコルにて証明することは可能であるが、効率的な知識の証明システムを設計できるとは限らない。実際、零知識証明に属する効率的な証明システムを作るのが至難な証明対象は非常に多いことが問題となっている。
【００１３】
一方、零知識証明クラスに属する証明システムは余計な情報を漏らさないが、逆に、余計な情報を漏らさない証明システムは、零知識証明クラスに属するとは限らない。そこで、ある証明システムが、零知識証明クラスに属さなくとも、余計な情報を漏らさないクラスに属することを証明できるようになれば、暗号プロトコルの設計の自由度が増し、効率的な暗号プロトコルを作れる機会が増大すると思われる。
【００１４】
まず、零知識証明クラスをより具体的に説明する。
【００１５】
最初に対話的な知識の証明システムとは何かをより正確に説明する。
【００１６】
対話的証明プロトコルには何らかの方法で互いに通信できる（対話できる）、証明者である証明装置Ｐと検証者である検証装置Ｖが登場する。
【００１７】
あるデータＸとＷ及び、関数Ｒ（）があったとして、Ｒ（Ｘ、Ｗ）＝１としたとき、ＸとＷは関係Ｒを満たすと呼び、（Ｘ、Ｗ）∈Ｒと記述することにする。今ＸとＷ、Ｒ（）が与えられれば、（Ｘ、Ｗ）∈Ｒであることは計算機を用いてすぐに調べることができるが、ＸとＲ（）だけが与えられた場合、これら与えられたＸ、Ｒ（）に対して、（Ｘ、Ｗ）∈ＲなるＷが何かは十分な時間をかけても分からないとする。
【００１８】
この時ＸとＷとＲ（）を知っている証明装置Ｐが、ＸとＲ（）しか知らない検証装置Ｖに、与えられたＸ、Ｒ（）に対して、（Ｘ、Ｗ）∈ＲなるＷを証明装置Ｐが知っていることを互いに通信して納得させる方法を、対話的な知識の証明システムと呼ぶ。つまりＰにＷの知識（情報）があることを対話的に証明するプロトコルである。
【００１９】
ＸからＷを求めることが難しいものの具体的な例として、離散対数問題がある。ｐを大きな素数、ｇをｐについての剰余類群（Ｚ／ｐＺ）＊の元、ｗをｐ−１についての剰余類群Ｚ／（ｐ−１）Ｚの元、ｈ＝ｇｗ  ｍｏｄ  ｐとする。
【００２０】
Ｘ＝｛ｐ、ｇ、ｈ｝、Ｗ＝｛ｗ｝とし、等式ｈ＝ｇｗ  （ｍｏｄ  ｐ）が成り立つならＸ、Ｗは関係Ｒを満たすとする。
【００２１】
この場合ＸからＷを求めることは、離散対数問題を解くことに当り、ｐが大きい場合（例えば１０００ビット以上）一般には不可能とされている。実際単純に、ｗとして１から順番にｈ＝ｇｗ  （ｍｏｄ  ｐ）となるかを試していくと、平均してｐ／２回のｇｗ  ｍｏｄ  ｐを計算する必要がある。これはおよそ、延べｐ／２回のｍｏｄ  ｐ上の掛け算を実行せねばならない。ｐが十分に大きいと、これは大変な事である。
【００２２】
一方、Ｗ（＝ｗ）が与えられた場合、等式ｈ＝ｇｗ  （ｍｏｄ  ｐ）を確認するのは簡単である。この計算は高々２ｌｏｇ２ｐ回のｍｏｄ  ｐ上の掛け算を実行すれば終了する。ｐが１０２４ｂｉｔの時の例で言うと、ＸからＷを求めるには、２１０２３回の乗算が必要で、（Ｘ、Ｗ）∈Ｒを確認するには２０４８（＝２１０）回の乗算で済むことになる。
【００２３】
ＰがＷを知っていることをＶに納得させるもっとも簡単な方法は、ＷをＶに渡すことである。上の例の場合ＰはＶにｗを渡す。
【００２４】
検証装置Ｖは等式ｈ＝ｇｗ  （ｍｏｄ  ｐ）を確認できれば納得するはずである。
【００２５】
しかし、本発明ではＷが検証装置Ｖに知られないような知識の証明方法に注目している。これが零知識証明クラス属する知識の証明システム、すなわち零知識証明である。
【００２６】
上に挙げた（Ｘ、Ｗ）∈Ｒの場合の零知識証明の例を挙げて、零知識証明を説明していく。
【００２７】
まず、証明装置Ｐと検証装置Ｖには、それぞれランダムテープと呼ばれる乱数の列からなるデータが個別に入力されるとする。ＰとＶとには共通の入力としてＸも入力されている。共通の入力Ｘに対応して、Ｘの証拠Ｗが証明装置Ｐに入力されているとする。今の場合Ｘ＝｛ｐ、ｇ、ｈ｝で、Ｗ＝｛ｗ｝である。
（１）検証装置Ｖは、自身の持つランダムテープから
乱数ｂ、ｃ、∈Ｚ／（ｐ−１）Ｚを生成して、Ａ＝ｇｂｈｃ  ｍｏｄ  ｐを計算し、証明装置ＰにＡを送る。
（２）証明装置Ｐは自身の持つランダムテープからｓ∈Ｚ／（ｐ−１）Ｚを生成して、Ｂ＝ｇｓ  ｍｏｄ  ｐを検証装置Ｖに送る。
（３）検証装置Ｖは、Ａの生成に使用したｂ、ｃを証明装置Ｐに送る。
（４）証明装置Ｐは、等式Ａ＝ｇｂｈｃ  （ｍｏｄ  ｐ）が成り立つことを確認する。
【００２８】
もし成り立たなければ、検証装置Ｖが不正を働いたと判断してここで終了する。成り立てばｒ＝ｃｗ＋ｓ  ｍｏｄ  ｐ−１により生成したｒを検証装置Ｖに送る。
（５）検証装置Ｖは等式ｇｒ＝ｈｃＢ  （ｍｏｄ  ｐ）が成り立つことを確認できれば、Ｐはｗを知っていると判断し、受理を出力する。成り立たなければ、不受理を出力する。
【００２９】
上記知識の証明システムは以下の性質を満たす。
（１）証明装置Ｐがｗを知っていてＰとＶが上記手続きを正しく実行すれば、検証装置Ｖは受理を出力する。
（２）証明装置Ｐがｗを知らなければ、ＰがＶをして受理を出力させる事は不可能である。
（３）検証装置Ｖはプロトコルを通じてｗに関する知識を得ることができない。
（１）の性質は、
ｇｒ＝ｇｃｗ＋ｓ  （ｍｏｄ  ｐ）＝ｇｗｃｇｓ＝ｈｃＢ  （ｍｏｄ  ｐ）
より明らかである。
（２）の性質が成り立つことの厳密な証明は省略するが、証明装置Ｐがｃを知ることになるのは、ｇ、ｈ、Ｂが決定してからである。この時、どんなｃを受け取っても等式ｇｒ＝ｈｃＢ  （ｍｏｄ  ｐ）が成り立つようなｒを計算するにはｗの知識が不可欠であることが簡単に分かる。上記（１）、（２）の性質を満たしていれば、この上記プロトコルは零知識の証明システムである。
【００３０】
次に（３）の性質についてであるが、上記プロトコルを通じて検証装置Ｖが得たデータは、検証装置Ｖのランダムテープ、Ａ、Ｂ、ｂ、ｃ、ｒだけである。ｐ、ｇ、ｈは最初から持っていた。もし、この検証装置Ｖの持つランダムテープと、Ａ、Ｂ、ｂ、ｃ、ｒのデータを、証明装置Ｐと通信せずに同様のものを自分で産み出せるならば、検証装置Ｖは証明装置Ｐからプロトコルを通じて得た知識はないと言える。
【００３１】
以下に、証明システムを証明装置Ｐを使用しない形で模擬する模擬装置Ｓが、検証装置Ｖを使ってこのようなデータを作る方法を示す。模擬装置Ｓにはランダムテープが入力されるとする。
（１）まず、模擬装置Ｓのランダムテープで、検証装置Ｖのランダムテープを一様無作為に決め、これを検証装置Ｖに入力する。
（２）すると、検証装置ＶはＡを出力する。
（３）模擬装置ＳはランダムにＢを選んで検証装置Ｖに入力する。
（４）すると、検証装置Ｖはｂ、ｃを出力する。
（５）模擬装置Ｓは、ここで一旦検証装置Ｖの電源を落す等によって、検証装置Ｖを初期状態にリセットする。
（６）模擬装置Ｓは、再度、検証装置Ｖを立ち上げ、先と同じ同じランダムテープからのデータを検証装置Ｖに入力する。
（７）すると、検証装置Ｖは前回と同じＡを出力する。
（８）模擬装置Ｓはランダムにｒを選び、
Ｂ＝ｇｒｈ−ｃ  ｍｏｄ  ｐを計算し、Ｂを検証装置Ｖに入力する。
（９）検証装置Ｖは前回と同じｂ、ｃを出力する。
（１０）そこで、模擬装置Ｓはｒを検証装置Ｖに入力する。
（１１）すると、検証装置Ｖは受理を出力する。
【００３２】
このようにして模擬装置Ｓにより生成されたＶのランダムテープとＡ、Ｂ、ｂ、ｃ、ｒからなる集合の最終的な分布は、検証装置Ｖが証明装置Ｐと通信して得られる集合の分布と全く同じになる。模擬装置Ｓは検証装置Ｖにデータを入力してその出力を得ているだけなので、検証装置Ｖの構造がどうなっているかも解析するさえ必要がない。
【００３３】
模擬装置Ｓが検証装置Ｖを使って生成したデータの分布と証明装置Ｐと検証装置Ｖの通信によって得られるデータの分布が全く同じことを以下に示す。
【００３４】
まず、ランダムテープは全くランダムな分布を持っているものとする。証明装置Ｐと検証装置Ｖの通信によって得られるＢはその生成方法から全くランダムに分布する。（ｓをＺ／（ｐ−１）Ｚから生成して、Ｂ＝ｇｓ  ｍｏｄ  ｐとしているから。）
Ａ、ｂ、ｃは検証装置Ｖによって決定されるので、この分布は検証装置Ｖによる。これらの値が決定したら、自動的にｒの値は決定される。
【００３５】
模擬装置Ｓから得られるｒはその生成方法から全くランダムに分布する。Ａ、ｂ、ｃは検証装置Ｖに生成させたので、証明装置Ｐが検証装置Ｖと通信して生成する場合と全く同じ分布で生成される。これらの値が決定したら、自動的にＢの値は決定される。ｒをランダムに分布させｒによってＢを決定した時のｒ、Ｂの分布と、Ｂをランダムに分布させＢによってｒを決定した時のｒ，Ｂの分布は同じである。よって、両者の分布は同じである。
【００３６】
すなわち、証明装置Ｐと検証装置Ｖによる真のプロトコルから得られるデータ列も、模擬装置Ｓが生成するデータ列も、同じ分布から一様無作為に抽出したデータ列といえる。
【００３７】
これは検証装置Ｖがわざわざ証明装置Ｐと通信せずとも、勝手に自分で同じデータを作れる、すなわち、検証装置Ｖは、元々単独で計算可能な情報しか証明装置Ｐから抽出できないということである。このような議論から性質３が証明できたことになる。
【００３８】
ここで零知識証明をより一般化して記述する。
【００３９】
証明装置Ｐは検証装置Ｖに（Ｘ、Ｗ）∈ＲなるＷの知識を持っていることを証明するとする。ＰとＶとで互いに交換されるデータを通信される順番にｍ１、ｍ’１、ｍ２、ｍ’２、・・・ｍｋ、ｍ’ｋとする。
【００４０】
ｍ１、・・・、ｍｋは、検証装置Ｖから証明装置Ｐへ送られるデータとし、ｍ’１、・・・、ｍ’ｋは、証明装置Ｐから検証装置Ｖへ送られるデータとする。また検証装置Ｖに入力されるランダムテープをランダムテープｒＶ、証明装置Ｐに入力されるランダムテープをランダムテープｒＰとする。
【００４１】
固定されたＸ、Ｗに対して、ｒＰ、ｒＶを決めると、ｍ１、ｍ’１、ｍ２、ｍ’２、・・・、ｍｋ、ｍ’ｋが得られる。ここで固定されたＸ、Ｗと一様無作為に選ばれるｒＰ、ｒＶに対するｍ１、ｍ’１、ｍ２、ｍ’２、・・・、ｍｋ、ｍ’ｋ、ｒＶの分布を考える。（ここでｒＶの分布はＶが自由に決めて良い。）
この分布はＷを知っているＰの助けを借りて生成されるものであるが、この分布が、もしあるランダムテープｓＶの入力される模擬装置Ｓが存在して、検証装置Ｖが証明装置Ｐといっさい通信せずに、模擬装置Ｓの助けを借りて生成するｎ１、ｎ’１、ｎ２、ｎ’２、・・・、ｎｋ、ｎ’ｋ、ｒＶからなる固定されたＸ、Ｗと一様無作為に選ばれるｓＶ、ｒＶに対する分布との見分けがつかないのならば、証明装置Ｐと検証装置Ｖの相互通信によるＷを知っていることの証明は零知識証明クラスに属しているという。
【００４２】
ここで模擬装置ＳにはＷは入力されていない。検証装置Ｖが証明装置Ｐと通信することにより得られるデータ列ｍ１、ｍ’１、ｍ２、ｍ’２、・・・、ｍｋ、ｍ’ｋ、ｒＶは、検証装置Ｖにとって証明装置Ｐと通信せずに生成できるデータ列と同等のものであるから、検証装置Ｖは証明装置Ｐとの通信によって何ら有益な情報を得ることができないと言える。
【００４３】
ここで言う二つの分布が見分けがつかないとはどういうことか説明する。
【００４４】
二つの分布の識別を行う識別装置Ｄは、乱数列からなる識別装置ＤのもつランダムテープｒＤおよびｍ１、ｍ’１、ｍ２、ｍ’２、・・・、ｍｋ、ｍ’ｋ、ｒＶと、数列ｎ１、ｎ’１、ｎ２、ｎ’２、・・・、ｎｋ、ｎ’ｋ、ｒＶが入力されてその識別した真／模擬の結果として１または０を出力するとする。
【００４５】
定められたランダムテープｒＰ、ｒＶ、ｒＤの分布から一様無作為にｒＰ、ｒＶ、ｒＤを選んだときに、数列ｍ１、ｍ’１、ｍ２、ｍ’２、・・・、ｍｋ、ｍ’ｋ、ｒＶが入力された識別装置Ｄが１を出力する確率を、
Ｐｒ＿｛ｒＰ、ｒＶ、ｒＤ｝［Ｄ（ｍ１、・・・、ｍ’ｋ、ｒＶ）＝１］と記す。
【００４６】
定められたランダムテープｒＳ、ｒＤの分布から一様無作為にｒＳ、ｒＤを選んだときに、数列ｎ１、ｎ’１、ｎ２、ｎ’２、・・・、ｎｋ、ｎ’ｋ、ｒＶが入力された識別装置Ｄが１を出力する確率を、
Ｐｒ＿｛ｒＳ、ｒＤ｝［Ｄ（ｎ１、・・・、ｎ’ｋ、ｒＶ）＝１］と記す。
【００４７】
この時どのような識別装置Ｄを用いても、
Ｐｒ＿｛｛ｒＰ、ｒＶ、ｒＤ｝［Ｄ（ｍ１、・・・、ｍ’ｋ、ｒＶ）＝１］と、Ｐｒ＿｛｛ｒＳ、ｒＤ｝［Ｄ（ｎ１、・・・、ｎ’ｋ、ｒＶ）＝１］の差が無視できるほど小さければ、二つの分布は見分けがつかないという。
【００４８】
ある証明システムが零知識証明クラスに属するためには、証明装置Ｐと検証装置Ｖに共通に与えられた共通入力Ｘ及びそれに関係Ｒで対応するＷに対して、模擬装置Ｓが存在して、どのような識別装置Ｄにも、模擬装置Ｓが生成するデータ列と、真のデータ列を区別できない必要があった。
【００４９】
固定されたＸとＷに対して、どのような識別装置Ｄとされているので、識別装置ＤはデータＷを所持しているようなものや、証明装置Ｐすら知らないＸとＷに関わる情報を持つ装置も含むため、この零知識クラスに属するための制約条件は、大変きつい。
【００５０】
実際、証明装置ＰがＸとＷの組を生成するとして、（Ｘ、Ｗ）∈Ｒとなるよう一様無作為にＸ、Ｗを生成しなければ、Ｗを検証装置Ｖに推測される可能性がある。もちろん一様無作為に選んでも、検証装置Ｖが、たまたま試してみたＷが的中する可能性もある。よって、入力されたランダムテープからＸ、Ｗを生成する生成装置Ｇを考えたとき、大多数のランダムテープが選ばれた場合にのみ検証装置ＶはＷを知ることができないのであって、無視できるほど低い確率においては、検証装置ＶはＷを知ることができる。
【００５１】
このように、生成装置Ｇに入力されるランダムテープの大多数の場合に関してＷが漏れるかどうかを考えることが自然であると思われる。
［正直な検証者の零知識証明クラス］
今まで考えてきた零知識証明クラスは、どのような悪質な検証装置Ｖに対しても証明装置ＰからＷに関する知識が漏ないことを前提にしたものであった。しかし、定められた通りに動作する信頼のできる検証装置Ｖを考えることが有用な場合がある。特に検証装置Ｖから証明装置Ｐへ送られるデータが乱数のみの場合は特に有効である。
【００５２】
前述した例で検証装置ＶがＡ＝ｇｂｈｃ  ｍｏｄ  ｐを証明装置Ｐへ送った後に、証明装置ＰがＢを送っているのはｃをＢに依存して検証装置Ｖによって恣意的に選ばれることを防ぐためである。
【００５３】
もし検証装置Ｖが正直にｃを一様無作為に選ぶならば、前述の例は以下のように単純化される。
（１）証明装置Ｐはランダムテープからｓ∈Ｚ／（ｐ−１）Ｚを生成して、
Ｂ＝ｇｓ  ｍｏｄ  ｐを生成して検証装置Ｖに送る。
（２）検証装置Ｖは一様無作為に選んだｃをＰに送る。
（３）証明装置Ｐは、ｒ＝ｃｗ＋ｓ  ｍｏｄ  ｐ−１をＶに送る。
（４）検証装置Ｖは、等式ｇｒ＝ｈｃＢ  ｍｏｄ  ｐが成り立つことが確認できれば、Ｐはｗを知っていると判断し、受理を出力する。成り立たなければ、
不受理を出力する。
【００５４】
模擬装置ＳがＢ、ｃ、ｒと同様のデータ列を作る方法は以下の通りである。
【００５５】
模擬装置Ｓは、一様無作為にｃ、ｒを選んで、Ｂ＝ｇｒｈ−ｃ  ｍｏｄ  ｐとする。
【００５６】
上記の単純化はシステムの簡略化以上の効果がある。ここで、検証装置ＶがＢを入力された｀｀後に’’ランダムにｃを選ぶことが本質なのである。
【００５７】
証明装置Ｐが  検証装置Ｖの代わりに暗号学的なハッシュ関数Ｈａｓｈ（）を用いて、
ｃ＝Ｈａｓｈ（Ｂ、ｐ、ｇ、ｈ）と自らｃを生成しても同様の安全性が得られると考えられる。
【００５８】
証明装置Ｐはｃを選ぶことはほとんど不可能なので、やはりｗを知らないと検証を通過することが出来るｒを生成することができないのである。このハッシュ関数を導入したプロトコルを書き下してみると、
（１）証明装置Ｐはランダムテープからｓ∈Ｚ／（ｐ−１）Ｚを生成して、
Ｂ＝ｇｓ  ｍｏｄ  ｐ、ｃ＝Ｈａｓｈ（ｐ、ｇ、ｈ、Ｂ）、
ｒ＝ｃｗ＋ｓ  ｍｏｄ  ｐ−１とする。
（３）証明装置ＰはＢ、ｒを検証装置Ｖに送る。
（４）検証装置Ｖはｃ’＝Ｈａｓｈ（ｐ、ｇ、ｈ、Ｂ）とし、
等式ｇｒ＝ｈｃ’Ｂ（ｍｏｄ  ｐ）が成り立つことが確認できれば、Ｐはｗを知っていると判断し、受理を出力する。成り立たなければ、不受理を出力する。
【００５９】
この改良システムでは、検証装置Ｖから証明装置Ｐにデータを送信する必要がなくなった。よって証明装置Ｐは、Ｂ、ｒを作成して検証装置に送付してしまえば誰にでも検証可能である。そのため、署名や暗号といったものにも応用することができる。
【００６０】
ハッシュ関数を用いた零知識証明を用いると証明は次のようにして実現できる。
【００６１】
文章Ｍからハッシュ関数を用いて（Ｚ／ｐＺ）＊の元ｇに落す。ここでｇ＝Ｈａｓｈ（Ｍ）であるが、このハッシュ関数の使用は、前述の零知識証明とは直接は関係ない。次にｈ＝ｇｗ  ｍｏｄ  ｐとし、ｗを知っていることの零知識証明をＢ、ｒを生成する。Ｍにｈ、Ｂ、ｒを証明として添付する。署名の検証者はＭからｇを、ｐ、ｈ、ｇ、Ｂからｃを再現し、等式ｇｒ＝ｈｃ’Ｂ  （ｍｏｄ  ｐ）が成り立つことを確認すればよい。
【００６２】
【特許文献１】
特開２００１−２５１２８９（第１２−２９頁、図１）
【非特許文献１】
岡本龍明、山本博資著、産業図書出版「現代暗号」１３１−１５０頁
【非特許文献２】
オデッド・ゴルドライッヒ著、ケンブリッジ出版の「ファウンデーション・オブ・クリプトグラフィー」（ＯｄｅｄＧｏｌｄｒｅｉｃｈ、Ｃａｍｂｒｉｄｇｅ、「ＦｏｕｎｄａｔｉｏｎｏｆＣｒｙｐｔｏｇｒａｐｈｙ」）１８４−３３０頁
【００６３】
【発明が解決しようとする課題】
余計な情報を漏らさないことが保証された証明システムを作成するには、従来は零知識証明クラスに属するよう証明システムを作成する必要があった。ところが、このようにして証明システムの作成を試みた場合、必ずしも効率の良い証明システムを作成できるとは限らなかった。
【００６４】
本発明はこのような状況を鑑みてなされたものである。
【００６５】
本発明では、零知識証明クラスよりも広いクラスに対しても余計な情報を漏らさないことを保証する方法を与える。これにより、余計な情報を漏らさない証明システムの設計の幅を大きくし、今までは作ることのできなかった効率が良くかつ余計な情報を漏らさないことが保証されたプロトコルを、新たに作成する方法を与えることが可能となる。
【００６６】
証明システムが零知識証明クラスに属するためには、与えられた証明装置と検証装置の共通した入力に対して、ある模擬装置が存在していかなる識別装置も証明装置と検証装置との対話による真の証明から得られるデータと、模擬装置から得られるデータが区別できないという条件を満たさねばならなかった。
【００６７】
本発明ではこれを、証明装置と検証装置に対する共通した入力と証明装置への証拠を生成する生成装置のランダムテープの大多数の事例においてのみ、ある模擬装置が存在して、証明装置にのみ入力される証拠を入力されたいかなる識別装置も、証明装置と検証装置との対話による真の証明から得られるデータと、模擬装置から得られるデータとの相違が、区別できなければ良いとして零知識証明クラスの条件を緩和する。
【００６８】
この緩和された証明システムも余計な情報を漏らさないシステムであることが保証される。この緩和されたクラスのことを弱計算量的零知識証明クラスと呼ぶ。
【００６９】
本発明は、この弱計算量的零知識証明クラスに属する証明システムを用いることによって、高速である等従来と異なる特徴を持つとともに、従来どうり余計な情報を漏らさないことを保証して、証明装置が検証装置に秘密の知識の所持を証明する事を可能とする証明システムと評価システムを提供するものである。
【００７０】
【課題を解決するための手段】
本発明の第１の証明システムは、互いに通信が可能な生成装置と、証明装置と、検証装置と、からなり、証明装置は生成装置が生成した秘密事項である証拠を保有し、前記証拠を証明装置が保有することを検証装置が証明装置と対話することにより検証装置に証明する証明システムであって、
さらに、生成装置と、検証装置とそれぞれ通信可能な模擬装置と識別装置とを接続して前記証明システムを評価するとき、
前記各装置には、それぞれランダムなデータが記録されたランダムテープが入力され、
生成装置は、関係Ｒと共通入力からでは前記証拠を導出することが困難な数値上の前記関係Ｒを相互に有する前記共通入力と前記証拠とを前記関係Ｒをもとに前記ランダムテープから生成し、証明装置と識別装置には、生成された前記共通入力と前記証拠とを入力し、検証装置と模擬装置には、生成された前記共通入力を入力し、
検証装置は、前記共通入力と自身のランダムテープから入力したデータを使用して証明装置と対話することにより証明装置が前記証拠を有するか否かについての証明受理または証明拒絶を出力し、その結果、検証装置が入力したランダムテープのデータと証明装置との対話による対話データとを含む証明履歴を生成し、
模擬装置は、前記共通入力と自身に入力されるランダムテープを使用して検証装置にランダムテープを入力し検証装置と対話することで証明装置と検証装置による対話を証明装置を使用せずに模擬し、その結果、模擬装置が検証装置に入力したランダムテープのデータと模擬された対話データとを含む模擬証明履歴を生成し、
データの分布の相違を識別する識別装置は、生成装置から同じ前記共通入力を入力して生成された前記証明履歴と前記模擬証明履歴のデータの分布上の相違について、確率的に１に近似される大多数の前記共通入力の場合において、計算量理論的に識別不可能であり、かつ、確率的に無視できる少数の前記共通入力の場合においては、その相違を計算量理論的に識別可能である
と評価することを備える。
【００７１】
本発明の第２の評価システムは、互いに通信が可能な生成装置と、証明装置と、検証装置と、模擬装置と、識別装置と、からなり、証明装置は、生成装置が生成した秘密事項である証拠を保有し、証明装置が前記証拠を保有することを検証装置が証明装置と対話することにより検証装置に証明する証明システムを模擬装置と識別装置を前記証明システムに接続して評価する評価システムであって、
前記各装置には、それぞれランダムなデータが記録されたランダムテープが入力され、
生成装置は、関係Ｒと共通入力からでは前記証拠を導出することが困難な数値上の前記関係Ｒを相互に有する前記共通入力と前記証拠とを前記関係Ｒをもとに前記ランダムテープから生成し、証明装置と識別装置には、生成された前記共通入力と前記証拠とを入力し、検証装置と模擬装置には、生成された前記共通入力を入力し、
検証装置は、前記共通入力と自身のランダムテープから入力したデータを使用して証明装置と対話することにより証明装置が前記証拠を有するか否かについての証明受理または証明拒絶を出力し、その結果、検証装置が入力したランダムテープのデータと証明装置との対話による対話データとを含む証明履歴を生成し、
模擬装置は、前記共通入力と自身に入力されるランダムテープを使用して検証装置にランダムテープを入力し検証装置と対話することで証明装置と検証装置による対話を証明装置を使用せずに模擬し、その結果、模擬装置が検証装置に入力したランダムテープのデータと模擬された対話データとを含む模擬証明履歴を生成し、
データの分布の相違を識別する識別装置は、同じ前記共通入力を入力して生成された前記証明履歴と前記模擬証明履歴のデータの分布上の相違について、確率的に１に近似される大多数の前記共通入力の場合において計算量理論的に識別不可能であるか否かの評価を行ない、評価と評価の根拠を評価結果として記憶装置に記憶するとともに、前記証明システムの前記評価結果を公開することを備える。
【００７２】
本発明の第３の証明システムは、互いに通信が可能な生成装置と、証明装置と、検証装置と、からなり、前記生成装置が生成した秘密事項である証拠を前記証明装置は保有し、前記証拠を証明装置が保有することを検証装置が証明装置と対話することにより検証装置に証明する証明システムであって、
さらに、生成装置と、検証装置と通信可能な模擬装置と識別装置とを接続して前記証明システムを評価するとき、
前記各装置には、それぞれランダムなデータが記録されたランダムテープが入力され、
生成装置は、関係Ｒと共通入力からでは前記証拠を導出することが困難な数値上の前記関係Ｒを相互に有する前記共通入力と前記証拠とを前記関係Ｒをもとに前記ランダムテープから生成し、証明装置と識別装置には、生成された前記共通入力と前記証拠とを入力し、検証装置と模擬装置には、生成された前記共通入力を入力し、
証明装置は、証明部とハッシュ部からなり、証明部は、検証装置またはハッシュ部にデータを送信し、ハッシュ部は、証明部から送られるデータのハッシュ値を計算して結果を証明部に返し、証明部とハッシュ部のデータの送受信により証明部とハッシュ部との対話データが生成され、前記対話データのうちハッシュ部から証明部に送られるデータをランダムなデータに変更した場合、ランダムなデータに変更された対話データと証明装置から検証装置に送付されるデータとからなる証明履歴と、
模擬装置は、証明装置と検証装置による対話を、証明装置を使用せず前記共通入力と自身に入力されるランダムテープとから模擬し、その結果、模擬された対話データを含む模擬証明履歴を生成し、
データの分布の相違を識別する識別装置は、生成装置から同じ前記共通入力を入力して生成された前記証明履歴と前記模擬証明履歴のデータの分布上の相違について、確率的に１に近似される大多数の前記共通入力の場合において、計算量理論的に識別不可能であり、かつ、確率的に無視できる少数の前記共通入力の場合においては、その相違を計算量理論的に識別可能である
と評価することを備える。
【００７３】
本発明の第４の評価システムは、互いに通信が可能な生成装置と、証明装置と、検証装置と、模擬装置と、識別装置と、からなり、証明装置は、生成装置が生成した秘密事項である証拠を保有し、証明装置が前記証拠を保有することを検証装置が証明装置と対話することにより検証装置に証明する証明システムを模擬装置と識別装置を前記証明システムに接続して評価する評価システムであって、
前記各装置には、それぞれランダムなデータが記録されたランダムテープが入力され、
生成装置は、関係Ｒと共通入力からでは前記証拠を導出することが困難な数値上の前記関係Ｒを相互に有する前記共通入力と前記証拠とを前記関係Ｒをもとに前記ランダムテープから生成し、証明装置と識別装置には、生成された前記共通入力と前記証拠とを入力し、検証装置と模擬装置には、生成された前記共通入力を入力し、
証明装置は、証明部とハッシュ部からなり、証明部は、検証装置またはハッシュ部にデータを送信し、ハッシュ部は、証明部から送られるデータのハッシュ値を計算して結果を証明部に返し、証明部とハッシュ部のデータの送受信により証明部とハッシュ部との対話データが生成され、前記対話データのうちハッシュ部から証明部に送られるデータをランダムなデータに変更した場合、ランダムなデータに変更された対話データと証明装置から検証装置に送付されるデータとからなる証明履歴と、
模擬装置は、証明装置と検証装置による対話を、証明装置を使用せず前記共通入力と自身に入力されるランダムテープとから模擬し、その結果、模擬された対話データを含む模擬証明履歴を生成し、
データの分布の相違を識別する識別装置は、同じ前記共通入力を入力して生成された前記証明履歴と前記模擬証明履歴のデータの分布上の相違について、確率的に１に近似される大多数の前記共通入力の場合において計算量理論的に識別不可能であるか否かの評価を行ない、評価と評価の根拠を評価結果として記憶装置に記憶するとともに、前記証明システムの前記評価結果を公開することを備える。
【００７４】
本発明の第５の証明システムは、第１または第３の発明において、識別装置をどのような識別装置に置き換えても、置き換えられた識別装置は、生成装置から同じ前記共通入力を入力して生成された前記証明履歴と前記模擬証明履歴のデータの分布上の相違について、確率的に１に近似される大多数の前記共通入力の場合において、計算量理論的に識別不可能であり、かつ、確率的に無視できる少数の前記共通入力の場合においては、その相違を計算量理論的に識別可能である
と評価することを備える。
【００７５】
本発明の第６の評価システムは、第２または第４の発明において、識別装置は、
インターネットまたは電話回線を含むネットワークを通じて、前記証明システムの評価結果を送信することを備える。
【００７６】
本発明の第７の証明システムは、互いに通信が可能な生成装置と、証明装置と、検証装置と、からなり、証明装置は生成装置が生成した秘密事項である証拠を保有し、前記証拠を証明装置が保有することを検証装置が証明装置と対話することにより検証装置に証明するディフィーヘルマン事例でないことの証明システムであって、
生成装置と証明装置と検証装置にそれぞれランダムなデータを記録したランダムテープと群を特定する値が入力され、
生成装置は自身に入力されたランダムなデータから、前記群の要素ｇ、ｈ、ｚ’と整数ｘを入力し、共通入力をｇ、ｈ、ｙ＝ｇｘ、ｚ’、証拠をｘとして生成し、生成装置から証明装置に、前記共通入力と前記証拠を入力し、
生成装置から前記検証装置に、前記共通入力を入力し、
検証装置は、前記共通入力と自身のランダムテープから入力したデータを使用して証明装置と対話することによりその結果として証明装置が前記証拠を有するか否かについての証明受理または証明拒絶を出力するものであって、
対話を開始した以降には、
（１）検証装置は、ランダムテープから前記群の位数より小さい数である整数ｂと、チャレンジｃとを無作為に選び、チャレンジコミットメントａ＝ｇｂｙｃを生成し前記証明装置に送り、
（２）証明装置は、ランダムテープを利用して前記群の位数より小さいある整数ｄ、ｅ、ｆを一様無作為に選び、
ｈ’＝ｈｄ、
ｗ’＝ｚ’ｄ、
ｖ  ＝ｈｘｄ、
ｙ’＝ｇｅ、
ｖ’＝ｈ’ｅ、
ｈ’’＝ｈｆ、
ｗ’’＝ｚ’ｆを計算し、
検証装置にｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’を送信し、
（３）検証装置は前記整数ｂ、ｃを証明装置に送り、
（４）証明装置は、受信した前記整数ｂ、ｃからａ＝ｇｂｙｃを確認し、この式が成り立たなかった場合は、プロトコルを中止し、成り立てば対話を続行し、
（５）証明装置は、前記整数ｄ、ｅ、ｆと前記証拠を用いて、リスポンス
ｒ  ＝ｘｃ＋ｅ  ｍｏｄ  （群の位数）、
ｒ’＝ｄｃ＋ｆ  ｍｏｄ  （群の位数）を計算して検証装置に送り、
（６）検証装置は、証明装置から受け取った前記ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’と、前記ｒ、ｒ’と、前記チャレンジｃ、前記共通入力ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’を用いて４個の等式と１個の不等式
ｇｒ＝ｙｃｙ’、
ｈ’ｒ＝ｖｃｖ’、
ｈｒ’＝ｈ’ｃｈ’’、
ｚ’ｒ’＝ｗ’ｃｗ’’、
ｖ≠ｗ’ｍｏｄ  ｐ
を確認し、全て成り立てば証明受理を、１つでも成り立たなければ証明拒絶を出力する
ことを備える。
【００７７】
【発明の実施の形態】
最初に本発明の概要を簡単に説明する。
【００７８】
あるデータＸとＷ及び、関数Ｒ（）があったとして、Ｒ（Ｘ，Ｗ）＝１としたとき、ＸとＷは関係Ｒを満たすと呼び、（Ｘ、Ｗ）∈Ｒと記述することにする。
【００７９】
本発明は、（Ｘ、Ｗ）∈ＲなるＷなる秘密事項を証明装置が知っていることを検証装置によって検証する証明システムに関するものであり、さらに、証明装置の持つＷに関する情報を証明装置以外には何も漏らさないことを保証したまま証明する証明システムに関し、従来の零知識証明システムを発展させた内容を持つものである。これを弱計算量的零知識証明クラスに属する証明システムと呼ぶ。
【００８０】
ある証明システムの属する証明クラスが、本発明の弱計算量的零知識証明クラスに属するものであるかを評価するため、証明装置と検証装置との間の証明プロトコルを模擬する模擬装置を評価の対象とする証明システムに接続して模擬装置による模擬された結果としての模擬データを生成する。
【００８１】
さらに識別装置を接続して、この識別装置が、模擬データと、証明装置と検証装置の証明プロトコルによって生成される真のデータと、を比較することで証明システムが本発明における弱計算量的零知識証明クラスに属するかを判定する内容を持つものである。
【００８２】
本発明の第１の実施の形態について図面を参照して説明する。
【００８３】
本発明の第１の実施の形態の構成は、図１を参照すると、生成装置１００と、Ｗという証拠（秘密事項）を所持する証明装置１０５と、証明装置１０５が証拠を保持することを検証する検証装置１０６と、からなる。
【００８４】
生成装置１００は、複数の乱数を記憶するランダムテープｒＧ１０１と生成装置１００以外の装置によって決定される固定データ１０２とが与えられたら、固定データ１０２をもとに、一様無作為に証拠１０３を選び、次に（Ｘ、Ｗ）∈Ｒとなるような共通入力１０４を一様無作為に生成する。固定データ１０２は、関係Ｒを生成するための前提となる条件を与える。
【００８５】
尚、固定データの一例としては、大きな素数ｐ、ｑがあり、ｑはｐ−１を割りきるような関係を持つものがある。
【００８６】
さらに、Ｘ、Ｗ、Ｒ（）の一例としては、従来の技術に記載したように、離散対数の関係がある。このとき、ｐを大きな素数、ｇをｐについての既約剰余類（Ｚ／ｐＺ）＊の元、ｗをｐ−１についての剰余類Ｚ／（ｐ−１）Ｚの元、
ｈ＝ｇｗ  ｍｏｄ  ｐとする。Ｘ＝｛ｐ、ｇ、ｈ｝、Ｗ＝｛ｗ｝とし、
等式ｈ＝ｇｗ  （ｍｏｄ  ｐ）が成り立つならＸ、Ｗは関係Ｒを満たすとするような例がある。
【００８７】
生成装置１００が固定データ１０２から生成した共通入力１０４は、証明装置１０５と検証装置１０６に入力され、証拠１０３は証明装置１０５にのみ入力される。共通入力１０４を証明装置１０５と検証装置１０６への共通の入力のため共通入力１０４と呼ぶことにする。
【００８８】
生成装置１００と、証明装置１０５と、検証装置１０６と、以降説明する模擬装置１１０と、識別装置１１２とは、それぞれ乱数を記録するランダムテープを含むデータに対する処理を行うＣＰＵや主記憶メモリや、二次記憶装置である磁気ディスク装置、磁気テープ装置等を有するコンピュータであって、以下の実施の形態や実施例で説明される処理内容は、全て当該するコンピュータ上で動作するプログラムによって実行されている。
【００８９】
また、生成装置１００と、証明装置１０５と、検証装置１０６と、模擬装置１１０と、識別装置１１２は、それぞれイーサネット（登録商標）やインターネット等の通信手段によって接続され、相互にデータの送受信が可能であるとする。また、乱数を記憶したランダムテープは、二次記憶装置上のファイルとする。
【００９０】
今、証明装置１０５と検証装置１０６とで互いに交換される対話データ１０７を通信される順番にｍ１、ｍ’１、ｍ２、ｍ’２、・・・、ｍｋ、ｍ’ｋとする。
【００９１】
ｍ１、・・・、ｍｋは検証装置１０６から証明装置１０５へ送られるデータとし、ｍ’１、・・・、ｍ’ｋは証明装置１０５から検証装置１０６へ送られるデータとする。
【００９２】
また、検証装置１０６に入力される複数個の乱数を記録したランダムテープをランダムテープｒＶ１０８、証明装置１０５に入力される複数個の乱数を記録するランダムテープをランダムテープｒＰ１０９とする。
【００９３】
ランダムテープｒＧ１０１、ｒＰ１０９、ｒＶ１０８を決めると対話データ１０７が決まる。
【００９４】
ここで一様無作為に乱数が選ばれる生成装置１００のランダムテープｒＧ１０１と、ｒＰ１０９と、ｒＶ１０８によって決定された対話データ１０７のｍ１、ｍ’１、ｍ２、ｍ’２、・・・、ｍｋ、ｍ’ｋ、と、ランダムテープｒＶ１０８とからなる分布を考える。（ここでランダムテープｒＶの分布は検証装置Ｖ１０６が自由に決めて良い。）
尚、ランダムテープｒＧ１０１による共通入力１０４と対話データ１０７とランダムテープｒＶ１０８とから生成されたデータを併せて証明履歴１１１と呼ぶ。
【００９５】
この分布は、証拠１０３を知っている証明装置１０５の助けを借りて生成されるものである。この証明システムのプロトコルを模擬するある模擬装置１１０が存在するとする。
【００９６】
この分布が、模擬装置１１０が証明装置１０５といっさい通信せずに検証装置１０６の助けを借りて生成する模擬された模擬証明履歴１１５である数値の列ｎ１、ｎ’１、ｎ２、ｎ’２、・・・、ｎｋ、ｎ’ｋ、ｒＶの、生成装置１００、模擬装置１１０のランダムテープｒＶ，ｒＳについての分布と、その分布の相違を識別するどのような識別装置１１２にも識別できないのならば、証明装置１０５と検証装置１０６の相互通信による共通入力１０４に対応する証拠１０３を知っていることの証明は、弱計算量的零知識証明クラスに属していると呼ぶ事にする。
【００９７】
このような弱計算量的零知識証明クラスに属する証明システムを使って知識の証明をすることが、本実施の形態の内容である。
＜検証者単独でのプロトコル再現装置の構成方法＞
証明システムのプロトコルの模擬をする装置を模擬装置１１０とする。模擬装置１１０には乱数からなるランダムテープｒＳ１１４が入力される。模擬装置１１０は、検証装置１０６をリセットして再立ち上げ可能な形で検証装置１０６と接続する。
【００９８】
検証装置１０６に入力されるランダムテープｒＶ１１３は、ランダムテープｒＳ１１４から生成され、模擬装置１１０から検証装置１０６に入力される。
【００９９】
検証装置１０６には証明装置１０５と検証装置１０６の共通入力１０４が入力される。模擬装置１１０はランダムテープｒＶ１１３を検証装置１０６に入力し、それに対して検証装置１０６はｎ１を出力する。
【０１００】
次に、模擬装置１１０はランダムテープｒＳ１１４を用いて、ｎ’１を生成し、検証装置１０６に入力する。このように模擬装置１１０と検証装置１０６とで検証装置１０６が停止するか不受理を出力するまで証明プロトコルを行うことにより、適当な対話数Ｌまでのｎ１、ｎ’１、ｎ２、ｎ’２、・・・、ｎＬを得ることができる。
【０１０１】
検証装置１０６が停止するか不受理を出力するまでのこれらの値から模擬装置１１０は、検証装置１０６が何を出力するかを調べた後、検証装置１０６をリセットする等によって最初から模擬装置１１０と検証装置１０６の証明プロトコルを実行し直す。
【０１０２】
この時、模擬装置１１０は、検証装置１０６に前回と同じランダムテープｒＶ１１３を入力する。模擬装置１１０は、検証装置１０６の今回の出力と前回の出力の相違を、模擬装置１１０から検証装置１０６へ入力する数値列ｎ１、ｎ’１、ｎ２、ｎ’２、・・・、ｎ’Ｌ−１の相違に起因するものだけとする。
【０１０３】
また、前回の検証装置１０６の出力のデータを知ることが出来たため、模擬装置１１０は検証装置１０６へ入力するｎ１、ｎ’１、ｎ２、ｎ’２、・・・、ｎ’Ｌ−１の値を、検証装置１０６が証明プロトコルを受理する可能性が高いものを選ぶようにする。
【０１０４】
このような、証明プロトコルの中断と、同じランダムテープｒＶ１１３による再実行を繰り返すことにより最終的に検証装置１０６が受理するような証明システムを模擬装置１１０と検証装置１０６とで再現することが可能となる。
【０１０５】
最終的に検証装置１０６が受理した数値列をｎ１、ｎ’１、ｎ２、ｎ’２、・・・、ｎｋ、ｎ’ｋとしてこれを識別装置１１２への入力とする。
＜二つの分布の識別不可能性＞
ここで言う弱計算量的零知識証明における二つの分布が見分けがつかないとはどういうことか説明する。
【０１０６】
二つの分布の相違を識別する識別装置１１２は、証拠１０３と、共通入力１０４、識別装置１１２の持つランダムテープｒＤ１１７とが入力され、二つの分布として対話データ１０７であるｍ１、ｍ’１、ｍ２、ｍ’２、・・・、ｍｋ、ｍ’ｋ、ランダムテープｒＶ１０８の入力と、または数列ｎ１、ｎ’１、ｎ２、ｎ’２、・・・、ｎｋ、ｎ’ｋ、ランダムテープｒＶ１１３が入力されると、証明装置１０５と検証装置１０６による分布か模擬装置１１０による分布かを判定し、結果として証明装置１０５と検証装置１０６による真の分布と判断すると１、模擬装置１１０による分布と判断すると０を出力するとする。
【０１０７】
定められたランダムテープｒＧ１０１、ｒＰ１０９、ｒＶ１０９、ｒＤ１１７の分布から一様無作為にそれぞれのランダムテープを選んだときに、対話データ１０７と、ランダムテープｒＶ１０８、証拠１０３が入力された識別装置１１２が１を出力する確率を
Ｐｒ＿｛ｒＧ、ｒＰ、ｒＶ、ｒＤ｝［Ｄ（ｍ１、・・・、ｍ’ｋ、ｒＶ、Ｗ）＝１］と記す。
【０１０８】
定められたランダムテープｒＧ１０１、ｒＳ１１４、ｒＤ１１７の分布から一様無作為にそれぞれのランダムテープを選んだときに、数列ｎ１、ｎ’１、ｎ２、ｎ’２、・・、ｎｋ、ｎ’ｋ、ランダムテープｒＶ１１３、証拠１０３が入力された識別装置１１２が１を出力する確率を
Ｐｒ＿｛ｒＧ、ｒＳ、ｒＤ｝［Ｄ（ｎ１、・・・、ｎ’ｋ、ｒＶ、Ｗ）＝１］
と記す。
【０１０９】
この時、どのような識別装置１１２を用いても、
Ｐｒ＿｛ｒＧ、ｒＰ、ｒＶ、ｒＤ｝［Ｄ（ｍ１、・・・、ｍ’ｋ、ｒＶ、Ｗ）＝１］とＰｒ＿｛ｒＧ、ｒＳ、ｒＤ｝［Ｄ（ｎ１、・・・、ｎ’ｋ、ｒＶ、Ｗ）＝１］の差が無視できるほど小さければ、二つの分布は見分けがつかないという。
［零知識証明クラスと弱計算量的零知識クラスの差異］
零知識証明クラスと弱計算量的零知識証明クラスとの違いは、弱計算量的零知識証明クラスの場合には、識別装置１１２の決定する確率が、生成装置１００のランダムテープｒＧ１０１の共通入力１０４の分布に対してもとられていることと、識別装置１１２に証拠１０３が入力されることである。
【０１１０】
すなわち、零知識証明クラスに属することを証明する場合、「ある特定」の共通入力１０４に対する、模擬装置１１０で再現生成された模擬証明履歴１１５（数値の列）と証明装置１０５による真の証明履歴１１１である対話データ１０７とランダムテープｒＶ１０８等との分布の相違を識別することが「どのような識別装置」も不可能なクラスであった。
【０１１１】
しかし、弱計算量的零知識証明クラスではあらゆる共通の入力（様々な生成装置Ｇ１００のランダムテープｒＧ１０１により生成された共通入力１０４）が与えられたときにも「証明者の知識証拠１０３」を使っても識別できる識別装置１１２がなければ良かった。
【０１１２】
記号を使って書くと、零知識証明クラスではどのような識別装置１１２に対しても、全ての生成装置１００のランダムテープｒＧ１０１に対して、
Ｐｒ＿｛ｒＰ、ｒＶ、ｒＤ｝［Ｄ（ｍ１、・・・、ｍ’ｋ、ｒＶ）＝１］と
Ｐｒ＿｛ｒＳ、ｒＤ｝［Ｄ（ｎ１、・・・、ｎ’ｋ、ｒＶ）＝１］
の差が無視できることが求められたが、
弱計算量的零知識証明クラスではどのような識別装置１１２に対しても、
Ｐｒ＿｛ｒＧ、ｒＰ、ｒＶ、ｒＤ｝［Ｄ（ｍ１、・・・、ｍ’ｋ、ｒＶ、Ｗ）＝１］と
Ｐｒ＿｛ｒＧ、ｒＳ、ｒＤ｝［Ｄ（ｎ１、・・・、ｎ’ｋ、ｒＶ、Ｗ）＝１］
の差が無視できることが求められる。
【０１１３】
ここで、確率の計算にｒＧとＷを使用するか否かに関する違いに注意されたい。
【０１１４】
この確率の取り方の違いを図１１と図１２のフローチャートを参照しながら説明する。
【０１１５】
生成装置１００のランダムテープｒＧ１０１に対する、
Ｐｒ＿｛ｒＰ、ｒＶ、ｒＤ｝［Ｄ（ｍ１、・・・、ｍ’ｋ、ｒＶ）＝１］とは以下の図１１の（ａ）のフローチャートで計算される平均値である。
【０１１６】
生成装置１００のランダムテープｒＧ１０１を入力して（ステップ１１０１）、証明装置１０５のランダムテープｒＰを決定して（ステップ１１０２）、続いて検証装置１０６のランダムテープｒＶを決定して（ステップ１１０３）、次に識別装置１１２のランダムテープｒＤを決定して（ステップ１１０４）、上記決定値から証明履歴１１１を生成し（ステップ１１０５）、識別結果を１か０として出力する（ステップ１１０６）。
【０１１７】
（ステップ１１１３）にて全ての場合を尽くしたかをチェックし、尽くしていない場合は、（ステップ１１０２）まで戻り、組として異なる（ｒＰ、ｒＶ、ｒＤ）を決定して再度識別結果を１か０として出す。
【０１１８】
これを全ての（ｒＰ、ｒＶ、ｒＤ）の可能性について行い（ステップ１１１３）のチェックで全ての場合を尽くしたことが判定されると、識別結果の平均値を出して終了する（ステップ１１１２）。
【０１１９】
生成装置１００のランダムテープｒＧ１０１に対する、
Ｐｒ＿｛ｒＳ、ｒＤ｝［Ｄ（ｎ１、・・・、ｎ’ｋ、ｒＶ）＝１］とは以下の図１１の（ｂ）のフローチャートで計算される平均値である。
【０１２０】
生成装置１００のランダムテープｒＧ１０１を入力して（ステップ１１０７）、模擬装置１１０のランダムテープｒＳを決定して（ステップ１１０８）、続いて識別装置１１２のランダムテープｒＤを決定して（ステップ１１０９）、上記決定値から模擬証明履歴１１５を生成し（ステップ１１１０）、識別結果として１か０を出力する（ステップ１１１１）。この時の識別装置１１２は（ステップ１１０５）のそれと同一である。
【０１２１】
（ステップ１１１４）で全ての場合を尽くしたかをチェックし、尽くしていない場合は（ステップ１１０８）まで戻り、組として異なる（ｒＳ、ｒＤ）を決定して再度識別結果を１か０として出す。これを全ての（ｒＳ、ｒＤ）の可能性について行い、識別結果の平均値を出す（ステップ１１１５）。
Ｐｒ＿｛ｒＧ、ｒＰ、ｒＶ、ｒＤ｝［Ｄ（ｍ１、・・・、ｍ’ｋ、ｒＶ、Ｗ）＝１］とは以下の図１２の（ａ）のフローチャートでで計算される平均値である。
【０１２２】
生成装置１００のランダムテープｒＧを決定して（ステップ１２０１）、証明装置１０５のランダムテープｒＰを決定して（ステップ１２０２）、続いて検証装置１０６のランダムテープｒＶを決定して（ステップ１２０３）、次に識別装置１１２のランダムテープｒＤを決定して（ステップ１２０４）、上記決定値から証明履歴１１１と証拠１０３を生成し（ステップ１２０５）、（ステップ１２０５）で生成した値から識別結果を１か０として出力する（ステップ１２０６）。
【０１２３】
（ステップ１１１３）で全ての場合を尽くしたかをチェックし、尽くしていないと（ステップ１１０１）まで戻り、生成装置１００のランダムテープｒＧ１２０１の決定し、同様にして、組として異なる（ｒＧ、ｒＰ、ｒＶ、ｒＤ）を決定して再度識別結果として１または０を出力する。これを全ての（ｒＧ、ｒＰ、ｒＶ、ｒＤ）の可能性について行い、識別結果の平均値を出す（ステップ１２１３）。
Ｐｒ＿｛ｒＧ、ｒＳ、ｒＤ｝［Ｄ（ｎ１、・・、ｎ’ｋ、ｒＶ、Ｗ）＝１］とは以下の図１２の（ｂ）のフローチャートで計算される平均値である。
【０１２４】
生成装置１００のランダムテープｒＧを決定して（ステップ１２０７）、模擬装置１１０のランダムテープｒＳを決定して（ステップ１２０８）、次に識別装置１１２のランダムテープｒＤを決定して（ステップ１２０９）、上記値から模擬証明履歴１１５と証拠１０３を生成し（ステップ１２１０）、（ステップ１２１０）で生成した値から識別結果として１か０を出力する（ステップ１２１１）。
【０１２５】
この時の識別装置１１２は（ステップ１２０５）のそれと同一である。
【０１２６】
その後、（ステップ１２０７）の生成装置ＧのランダムテープｒＧの決定まで戻り、組として異なる（ｒＧ、ｒＳ、ｒＤ）を決定して再度識別結果を１または０として出す。これを全ての（ｒＧ、ｒＳ、ｒＤ）の可能性について行い、識別結果の平均値を出す（ステップ１２１５）。
【０１２７】
ある特定の共通入力１０４にのみ特化した、証明者さえも知らない事実を使って二つの分布の相違を識別する識別装置１１２があれば、その証明システムは零知識証明クラスに属することができない。しかし、このような識別装置１１２があらゆるそのほかの大部分の共通入力１０４には有効でなかった場合、この証明システムは弱計算量的零知識証明クラスでは有り得る。このように、弱計算量的零知識証明クラスは、零知識証明クラスよりも広いクラスである。
【０１２８】
識別装置１１２は、証明システムが弱計算量的零知識証明クラスに属するかの評価やその評価に使用した二つの分布情報等を含む評価結果を識別装置１１２の磁気ディスク装置等に記憶する。
［弱計算量的零知識クラスの有効性］
もしある証明システムが、弱計算量的零知識クラスに属するならば、このプロトコルが隠したい知識を漏らさないことを保証することは次のようにして証明される。
【０１２９】
もし、証明システムを通じて、証明装置１０５が知っている証拠１０３あるいは証拠１０３の一部を、検証装置１０６が知り得るとする。その時、模擬装置１１０が証明装置１０５の助けを借りずに検証装置１０６の助けにより再現した模擬証明履歴１１５、あるいは、真の証明履歴１１１が与えられた識別装置１１２は、その履歴が真であると仮定してこれから証明装置１０５の漏らしたであろう知識を計算する。
【０１３０】
識別装置１１２は元々証明装置１０５の証拠１０３を知っているので、これと計算した証拠１０３とを比較する。もし履歴が真のものであれば、識別装置１１２は証明装置１０５の知識の引き出しに成功するはずであるから、両者は高い確率で一致するが、履歴が証明装置１０５の助けなくして検証装置１０６の助けのみで作られたものならば両者はほとんど一致しない（もし二つの履歴が一致するならば、検証装置１０６がこの知識を知らなかったという仮定に反する）。
【０１３１】
よって、識別装置１１２は、二つの履歴が一致するかしないかによって、履歴の真偽を識別することができる。  よって、もし証明システムにおいて証明装置１０５が知識を漏らすならば、履歴の真偽を識別できる識別装置１１２が存在するといえる。逆に、いかなる識別装置１１２にも二つの履歴の相違を識別できないことが証明されれば、証明システムにおいて証明装置１０５は知識を漏らさないことが証明される。これは弱計算量的零知識クラスに属する証明システムであった。
【０１３２】
次に本発明の第２の実施の形態について説明する。
【０１３３】
従来の方法の零知識証明クラスに属する証明システムで、従来の技術で説明したように、特別な場合において、ハッシュ関数を使用することによって、検証装置から証明装置にデータを送信する必要がなくなった。このことを弱計算量的零知識証明クラスに属する証明システムでも適用する。
【０１３４】
生成装置５００と証明装置５０５と検証装置５０６とからなる（Ｘ、Ｗ）∈ＲなるＷを知っていることの証明システムで、Ｗに関する情報を何も漏らさないことを保証したまま、証明する方法を図５、図６を参照しながら説明する。
【０１３５】
これをハッシュ関数を用いた弱計算量的零知識証明クラスに属する方法と呼ぶ。
【０１３６】
生成装置５００は、第１の実施の形態で説明したのと同様に、ランダムテープｒＧ５０１と生成装置５００以外によって決定される固定データ５０２が与えられたら、ランダムテープｒＧ５０１を利用して、一様無作為に証拠５０３を選び、次に（Ｘ、Ｗ）∈Ｒとなるような関係を持った共通入力５０４を一様無作為に生成する。
【０１３７】
共通入力５０４は、証明装置５０５と検証装置５０６に入力され、証拠５０３は証明装置５０５にのみ入力される。共通入力５０４を証明装置５０５と検証装置５０６の共通の入力と呼ぶ。
【０１３８】
証明装置５０５は、証明部５０７と、証明部５０７から与えられたデータに対してハッシュを行うハッシュ部５０８とから構成される。
【０１３９】
証明部５０７とハッシュ部５０８とで互いに交換される交換データ５０９を、通信される順番にｍ１、ｍ’１、ｍ２、ｍ’２、・・・、ｍｋ−１、ｍ’ｋ−１、ｍｋとする。
【０１４０】
ｍ１、・・・、ｍｋは、ハッシュ部５０８から証明部５０７へ送られるデータで、証明部５０７から送られてきたデータのハッシュ値である。
【０１４１】
ｍ’１、・・・、ｍ’ｋ−１は、証明部５０７からハッシュ部５０８へ送られるデータとする。
【０１４２】
尚、証明部５０７とハッシュ部５０８の間で交換される交換データ５０９は、前述した証明装置１０５と検証装置１０６間で交換される対話データ１０７と同様な内容を有するものとする。
【０１４３】
交換データ５０９が生成されると、次に、ｍ’１、・・・ｍ’ｋ−１を含むｍ’ｋを証明装置５０５から検証装置５０６へ送る。
【０１４４】
また、証明装置５０５に入力される乱数を記録したランダムテープをランダムテープｒＰ５１５とする。ランダムテープｒＧ５０１、ｒＰ５１５、を決めると交換データ５０９ｍ１、ｍ’１、ｍ２、ｍ’２、・・・、ｍｋ、ｍ’ｋが得られる。
【０１４５】
検証装置５０６は、検証部５１１とハッシュ部５１２とからなる。
【０１４６】
検証部５１１は、証明装置５０５から受信したｍ’ｋからｍ’１、・・・、ｍ’ｋ−１を生成し、これをハッシュ部５１２に送る。ハッシュ部５１２はハッシュ値ｍ１、・・・、ｍｋを生成して検証部５１１に送る。
【０１４７】
検証部５１１は、この結果と共通入力５０４と、ｍ’ｋとが検証のための式を満たすかを確認することにより、ＯＫまたはＮＧを出力する。
【０１４８】
ここでハッシュ部５０８から証明部５０７に送られるハッシュデータを全て乱数６０９に入れ替えた改変証明装置６０５を考える。
【０１４９】
この改変証明装置６０５の、一様無作為に選ばれるランダムテープｒＧ５０１、ｒＰ５１１、乱数６０９に対する交換データ６１８ｍ１、ｍ’１、ｍ２、ｍ’２、・・・、ｍｋ、ｍ’ｋとからなる改変証明履歴６１０の分布を考える。
【０１５０】
この分布は証拠５０３を知っている改変証明装置６０５により生成されるものであるが、この分布と、もしランダムテープｒＳ１１４の入力されるある模擬装置６１２が存在して、模擬装置６１２が改変証明装置６０５といっさい通信せずに生成する数値の列（模擬改変証明履歴６１１）ｎ１、ｎ’１、ｎ２、ｎ’２、・・・、ｎｋ、ｎ’ｋの、ランダムテープｒＧ５０１、ｒＳ１１４に対する分布とを、証拠５０３とランダムテープｒＤ６１７が入力されたいかなる識別装置６１３にも識別できないのならば、証明装置５０５の証拠５０３を知っていることの証明はハッシュ関数を用いた弱計算量的零知識証明クラスに属していると呼ぶ事にする。
【０１５１】
このようなハッシュ関数を用いた弱計算量的零知識証明クラスに属する証明システムを使って知識の証明をすることが、第２の実施の形態の内容である。
＜検証者単独でのプロトコル再現装置の構成方法＞
プロトコルの模擬を行う模擬装置６１２は、改変証明装置６０５のハッシュ部５０８の出力するデータ列を全て乱数６０９に置き換える。模擬装置６１２には証明装置５０５と検証装置Ｖ５０６の共通の入力である共通入力５０４が入力される。
【０１５２】
模擬装置６１２は、改変証明装置６０５から検証装置５０６へ送られるハッシュ値以外のデータ、検証部５０７からハッシュ部５０８へ送られるデータを検証装置５０６の検証に通過するよう生成する。但し検証装置５０６の検証が通過するデータとは、検証装置５０６がハッシュ部５０８から検証部５０７へ送られるデータをハッシュ関数を用いて再生成するのではなく模擬装置６１２から受け取った乱数６０９を用いた場合に検証を通過するデータのことである。
＜二つの分布の識別不可能性＞
ここで言う二つの分布が見分けがつかないとは、第１の実施の形態で述べた事と同じである。但し、確率は検証装置５０６のランダムテープｒＶに関して取るかわりに、乱数６０９に関して取る。
【０１５３】
記号を使って書くと、識別不可能とは、どのような識別装置６１３に対しても、
Ｐｒ＿｛ｒＧ、ｒＰ、乱数６０９、ｒＤ｝［Ｄ（ｍ１、・・・、ｍ’ｋ、Ｗ）＝１］と
Ｐｒ＿｛ｒＧ、ｒＳ、ｒＤ｝［Ｄ（ｎ１、・・・、ｎ’ｋ、Ｗ）＝１］
の差が無視できることである。
【０１５４】
零知識証明の場合では、全ての生成装置５００のランダムテープｒＧ５０１に対して、
Ｐｒ＿｛ｒＰ、乱数６０９、ｒＤ｝［Ｄ（ｍ１、・・・、ｍ’ｋ）＝１］と
Ｐｒ＿｛ｒＳ、ｒＤ｝［Ｄ（ｎ１、・・・、ｎ’ｋ）＝１］
の差が無視できることを要求する。
【０１５５】
この条件より本発明の課す条件の方が緩い。
【０１５６】
識別装置６１３は、評価した対象の証明システムが弱計算量的零知識証明クラスに属するかの評価やその評価に使用した二つの分布情報等を含む評価結果を磁気ディスク装置等に記憶する。
【０１５７】
次に本発明の第３の実施の形態について説明する。
【０１５８】
模擬装置と識別装置を使用する評価者により特定の証明システムが弱計算量的零知識証明クラスに属するとの評価またはその評価の根拠の情報を、提示者が被提示者に提供する方法について、図１０を参照しながら説明する。
【０１５９】
評価者は、パソコン等のコンピュータからなる評価者端末１００１によって、インターネット網や電話回線を含むネットワーク１００４を介して接続された一つあるいは複数の証明システムが、弱計算量的零知識証明クラスまたはハッシュ関数を用いた弱計算量的零知識証明クラスに属する証明システムであるか否かの評価結果を識別装置１１２，６１３から取り出し、その内容を評価者端末１００１の記憶装置１００２に保存する。
【０１６０】
提示者はパソコン等の提示者端末１００３からネットワーク１００４を介して評価者端末１００１から一つまたは複数の証明システムが、弱計算量的零知識証明クラスまたはハッシュ関数を用いた弱計算量的零知識証明クラスに属する証明システムであるかの評価結果または、その評価の根拠を評価者端末１００１の記憶装置１００２から取り寄せ、提示者端末１００３の記憶装置１００５に蓄える。
【０１６１】
提示者は、提示者端末１００３によって、特定の証明システムが安全であるか否か等の評価結果または、その評価の根拠１００９をプリンタ装置やディスプレイ等の表示装置に出力する。
【０１６２】
あるいは、提示者端末１００３は特定の証明システムが、安全であることをその提示を要求する被提示者端末１００７に示すため、提示者の必要に応じて被提示者端末１００７に取り寄せた内容を送信して提示する。
【０１６３】
あるいは、提示者端末１００３は被提示者端末１００７に評価者を直接紹介して評価内容を伝える。
【０１６４】
あるいは、提示者は不特定多数の被提示者端末１００７に対して前述の評価結果または、その評価の根拠をネットワーク１００４を介して送信し提示する。
【０１６５】
次に本発明の第１の実施例について説明する。
［プロトコルの記述］
最初に、余計な知識を漏らさないことが保証された証明システムを、図２を参照しながら説明する。
【０１６６】
記号の前提として、ｐ、ｑを大きな素数とし、ｑはｐ−１を割りきるとする。１からｐ−１までの整数を（Ｚ／ｐＺ）＊とする。
【０１６７】
（Ｚ／ｐＺ）＊の要素でｑ乗してｍｏｄ  ｐをとると１になるもの全体の集合を
Ｇｑとする。
【０１６８】
０からｑ−１までの要素をＺ／ｑＺとする。ｐ、ｑを領域変数２００と呼ぶ。
【０１６９】
領域変数２００ｐ、ｑは第１の実施の形態で言う固定データと同じである。
【０１７０】
ランダムテープｒＧ２０１が入力された生成装置２０２は、ランダムテープｒＧ２０１を利用してＧｑの要素ｇ、ｈ、ｚ’、Ｚ／ｑＺの要素ｘを一様無作為に生成し、ｙ＝ｇｘ  ｍｏｄ  ｐとする。
【０１７１】
この時、Ｇｑの元ｚ’は圧倒的な確率で不等式ｚ’≠ｈｘ  （ｍｏｄ  ｐ）となる。
【０１７２】
対話証明装置２０３には共通入力２０４ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’及び、証拠２０５及びランダムテープｒＰ２０６が入力される。
【０１７３】
対話検証装置２０７には共通入力２０４ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’及びランダムテープｒＶ２０８が入力される。
【０１７４】
対話検証装置２０７は、対話検証装置２０７の持っている情報のみから不等式ｚ’≠ｈｘ  （ｍｏｄ  ｐ）が成り立つことを知ることは現実的には不可能である。
【０１７５】
対話証明装置２０３は、対話検証装置２０７に、
不等式ｚ’≠ｈｘ  （ｍｏｄ  ｐ）が成り立つことを以下の手順で証明する。これは（ｇ、ｈ、ｙ、ｚ’）が、ディフィーヘルマン事例でないことの証明である。
（１）対話検証装置２０７は、ランダムテープｒＶ２０８を利用してＺ／ｑＺの要素である乱数２１２とチャレンジ２１１を一様無作為に選び、チャレンジコミットメント２０９のａ＝ｇｂｙｃ  ｍｏｄ  ｐを生成し、対話証明装置２０３に生成したチャレンジコミットメント２０９を送る。
（２）対話証明装置２０３は、ランダムテープｒＰ２０６を利用してＺ／ｑＺの要素ｄ、ｅ、ｆを一様無作為に選び、
ｈ’＝ｈｄ  ｍｏｄ  ｐ、
ｗ’＝ｚ’ｄ  ｍｏｄ  ｐ、
ｖ＝ｈｘｄ  ｍｏｄ  ｐを計算する。  さらに、
ｙ’＝ｇｅ  ｍｏｄ  ｐ、
ｖ’＝ｈ’ｅ  ｍｏｄ  ｐ、
ｈ’’＝ｈｆ  ｍｏｄ  ｐ、
ｗ’’＝ｚ’ｆ  ｍｏｄ  ｐを計算し、
対話検証装置２０７に計算値２１４ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’を送る。
（３）対話検証装置２０７は、乱数２１２、チャレンジ２１１を対話証明装置２０３に送る。
（４）対話証明装置２０３は、
等式ａ＝ｇｂｙｃ  （ｍｏｄ  ｐ）が成り立つことを確認する。
この式が成り立たなかった場合は、プロトコルを中止する。
（５）対話証明装置２０３は、（２）にて生成したｄ、ｅ、ｆ２１３及び証拠２０５を用いて、リスポンス２１８のｒ、ｒ’を
ｒ  ＝ｘｃ＋ｅ  ｍｏｄ  ｑ、
ｒ’＝ｄｃ＋ｆ  ｍｏｄ  ｑ
として対話検証装置２０７に送る。
（６）対話検証装置２０７は対話証明装置２０３から受け取った計算値２１４ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’と、リスポンス２１８ｒ、ｒ’と、チャレンジ２１１と、共通入力２０４ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’と、を用いて
ｇｒ      ＝ｙｃｙ’（ｍｏｄ  ｐ）、
ｈ’ｒ  ＝ｖｃｖ’（ｍｏｄ  ｐ）、
ｈｒ’    ＝ｈ’ｃｈ’’（ｍｏｄ  ｐ）、
ｚ’ｒ’＝ｗ’ｃｗ’’（ｍｏｄ  ｐ）、
ｖ    ≠ｗ’（ｍｏｄ  ｐ）が成り立てば、
ｙ＝ｇｘ  ｍｏｄ  ｐであるｘに対して
不等式ｚ’≠ｈｘ  （ｍｏｄ  ｐ）であることを受理しＯＫを出力する。
でなければＮＧを出力する。
【０１７６】
対話検証装置２０７の検証者がこのプロトコルから知り得たデータは、対話検証装置２０７の検証者が対話証明装置２０３の証明者と無関係に保持しているデータを含めて、対話検証装置２０７のランダムテープｒＶ、ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’である。これは図１の証明履歴１１１に相当するものである。
［弱計算量的零知識の証明方法］
＜模擬装置が証明装置を使わず検証装置だけ使ってプロトコルを再現する方法＞
証明システムの模擬を行う模擬装置が、検証装置を用いて、証明装置と通信することなく模擬された証明履歴ｒＶ、ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’（図１の模擬証明履歴１１５）を生成する方法について図３を参照しながら説明する。
（１）模擬装置３００には生成装置２０２の出力した領域変数ｐ、ｑ、とランダムテープｒＧ２０１のデータｇ、ｈ、ｙ、ｚ’２０４及び模擬装置３００のランダムテープｒＳ３０１が入力される。
（２）検証装置２０７にはｐ、ｑ、ｇ、ｈ、ｙ、ｚ’が入力される。
（３）模擬装置３００はランダムテープｒＳ３０１を利用して検証装置２０７の入力となるランダムテープｒＶ３０２を生成する。
（４）模擬装置３００は、検証装置２０７に、ランダムテープｒＶ３０２を入力すると、検証装置２０７は、乱数２１２とチャレンジ２１１を選択し、チャレンジコミットメント２０９ａ＝ｇｂｙｃ（ｍｏｄ  ｐ）を計算してａを出力する。
（５）模擬装置３００は、ランダムテープｒＳ３０１を利用して一様無作為に選んだＧｑの要素ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’を検証装置２０７に入力する。
【０１７７】
すると検証装置２０７は、乱数２１２、チャレンジ２１１を出力する。模擬装置３００は、チャレンジコミットメント２０９を用いて、
ａ＝ｇｂｙｃ（ｍｏｄ  ｐ）を確認する。成り立たなければシステムを中断する。
（６）模擬装置３００は、検証装置２０７をリセットする。そして再度同じランダムテープｒＶ３０２を入力する。すると、検証装置２０７は、同じチャレンジコミットメント２０９を再度出力する。
（７）模擬装置３００はランダムテープｒＳ３０１を利用して一様無作為にＧｑの要素からｗ’を、Ｚ／ｑＺの要素からｉ及びｒ、ｒ’３０８を選ぶ。また、（５）で獲得したチャレンジ２１１を用いて、コミットメント
ｈ’  ＝ｇｉ  ｍｏｄ  ｐ
ｖ    ＝ｙｉ  ｍｏｄ  ｐ
ｙ’  ＝ｇｒｙ−ｃ  ｍｏｄ  ｐ、
ｖ’  ＝ｈ’ｒｖ−ｃ  ｍｏｄ  ｐ、
ｈ’’＝ｈｒ’ｈ’−ｃ  ｍｏｄ  ｐ、
ｗ’’＝ｚ’ｒ’ｗ’−ｃ  ｍｏｄ  ｐ、
を計算し、ｗ’と共に検証装置２０７に入力する。
（８）検証装置２０７は最初に出力したものと同じ乱数２１２、チャレンジ２１１を出力する。
（９）模擬装置３００は、ｒ、ｒ’を検証装置２０７に送る。
（１０）検証装置２０７は、証明の受理２１を出力する。
＜検証者が単独で生成した値の列と、証明者と共同で生成した値の列の違い＞
証明装置を使用する証明者が関わる真のプロトコルでは、ｗ’はｌｏｇｈｚ’＝ｌｏｇｈ’ｗ’となるように選ばれる。証明装置の代わりに模擬装置を使用する検証者が単独で再現したプロトコルではｗ’は一様無作為に選ばれ、このような等式は成立しない。その他の値の差異は全てこの違いにより生ずる。
【０１７８】
あるアルゴリズムが存在して、これにｉ及び片方の値の列が入力されたときに、もし一様無作為に選ばれたｘに対して、高い確率で両者の違いを判別することできるならば、このアルゴリズムを使ってディフィーヘルマン判別問題を解くことができる。ディフィーヘルマン判別問題とは４個の数値ａ、ｂ、ｃ、ｄが与えられたときにｌｏｇａｂ＝ｌｏｇｃｄかを判別する問題である。この問題はａ、ｂ、ｃ、ｄが十分に大きな時は解くことは不可能とされている。本例ではｌｏｇｈｚ’＝ｌｏｇｈ’ｗ’かを判別しなければならない。
＜模擬された証明履歴と、真の証明履歴を識別できないことの証明＞
模擬装置が証明装置を利用することなく、検証装置のみを利用して生成した証明履歴と、証明装置が検証装置と共同で生成した真の証明履歴を計算量的に識別できないことの証明を図４を参照しながら説明する。
【０１７９】
ディフィーヘルマン事例生成装置ＧＤＨ４００を次のように構成する。
【０１８０】
ディフィーヘルマン事例生成装置ＧＤＨ４００にはランダムテープｒＧＤＨ４０１と領域変数２００ｐ、ｑが入力される。ディフィーヘルマン事例生成装置ＧＤＨ４００はランダムテープｒＧＤＨ４０１を利用してＧｑの元α、βと、Ｚ／ｑＺの元θを一様無作為に生成する。
【０１８１】
Ｇｑの元γ＝αθ  ｍｏｄ  ｐ、δ＝βθ  ｍｏｄ  ｐを生成する。最後に、事例４０２α、β、γ、δを出力する。
【０１８２】
ランダム事例生成装置ＧＲ４０３を次のように構成する。
【０１８３】
ランダム事例生成装置ＧＲ４０３にはランダムテープｒＧＲと領域変数２００ｐ、ｑが入力される。ランダム事例生成装置ＧＲ４０３は、ランダムテープｒＧＲを利用してＧｑの元の事例４０２α、β、γ、δを一様無作為に生成し、これらを出力する。
【０１８４】
ディフィーヘルマン判別問題とは、ディフィーヘルマン事例生成装置ＧＤＨ４００の出力である事例４０２α、β、γ、δあるいは、ランダム事例生成装置ＧＲ４０３の出力である事例α、β、γ、δのどちらかが一様無作為に選ばれて与えられたときに、事例４０２α、β、γ、δがどちらの生成装置の出力であるかを判別問題生成装置ＧＰＲ４０６によって判定する問題である。これを１／２より有意に高い確率で判定することは計算量理論的に難しいとされている。
【０１８５】
今、Ｇｑの元の列である事例４０２α、β、γ、δ及びランダムテープｒＧＰＲ４０５が入力されたとき、判別問題生成装置ＧＰＲ４０６は、検証装置２０７を利用して以下のように証明履歴ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’４０７を生成する。
（１）判別問題生成装置ＧＰＲ４０６は、ランダムテープｒＧＰＲ４０５を利用してＧｑの元ｇ、Ｚ／ｑＺの元ｘを一様無作為に生成する。
（２）判別問題生成装置ＧＰＲ４０６は、ｈ＝α、ｚ’＝β、ｙ＝ｇｘ  ｍｏｄｐとして、共通入力ｐ、ｑ、ｇ、ｙ、ｈ、ｚ’４０９を検証装置２０７に入力する。
（３）判別問題生成装置ＧＰＲ４０６は、ｒＧＰＲ４０５を利用して検証装置２０７のランダムテープｒＶ４１０を生成する。
（４）判別問題生成装置ＧＰＲ４０６がランダムテープｒＶ４１０を検証装置２０７に入力すると、検証装置２０７はチャレンジコミットメント２０９を出力する。
（５）判別問題生成装置ＧＰＲ４０６は、Ｇｑの元ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’４１１を一様無作為に選んで検証装置２０７に入力すると、検証装置２０７は乱数２１２、チャレンジ２１１を判別問題生成装置ＧＰＲ４０６に出力する。
（６）判別問題生成装置ＧＰＲ４０６は、検証装置２０７をリセットし、（２）と同じｐ、ｑ、ｇ、ｙ、ｈ、ｚ’４０９及び（４）と同じランダムテープｒＶ４０８を検証装置２０７に入力すると、検証装置２０７は同じチャレンジコミットメント２０９を出力する。
（７）判別問題生成装置ＧＰＲ４０６は、一様無作為にＺ／ｑＺの要素から、リスポンス４１３を選ぶ。（５）で受け取ったｃを利用して、
ｈ’  ＝γ、
ｗ’  ＝δ、
ｖ    ＝ｈ’ｘ  ｍｏｄ  ｐ、
ｙ’  ＝ｇｒｙ−ｃ  ｍｏｄ  ｐ、
ｖ’  ＝ｈ’ｒｖ−ｃ  ｍｏｄ  ｐ、
ｈ’’＝ｈｒ’ｈ’−ｃ  ｍｏｄ  ｐ、
ｗ’’＝ｚ’ｒ’ｗ’−ｃ  ｍｏｄ  ｐ、
ａ＝ｇｂｙｃ  ｍｏｄ  ｐ、を生成する。
【０１８６】
判別問題生成装置ＧＰＲ４０６は、最後に証明履歴
ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’４０７及び証拠４１７を出力する。
【０１８７】
検証装置２０７の検証手段２２０は動かさなくて良い。
【０１８８】
もし、判別問題生成装置ＧＰＲ４０６に入力された事例４０２α、β、γ、δが、ディフィーヘルマン事例生成装置ＧＤＨ４００より出力されたものならば、ランダムテープｒＧＤＨ４０１、ｒＧＰＲ４０５をランダムに選んだときの、判別問題生成装置ＧＰＲ４０６の出力する証明履歴及び証拠４０７、ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’、ｘの分布は、真の証明装置と検証装置が互いに通信することによって得られる、ランダムテープｒＧ２０１、ｒＰ２０６、ｒＶ２０８をランダムに選んだときの、証明履歴ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’及びｘ２０５の分布と同一になる。
【０１８９】
もし、判別問題生成装置ＧＰＲ４０６に入力された事例４０２α、β、γ、δが、ランダム事例生成装置ＧＲ４０３より出力されたものならば、ランダムテープｒＧＲ４０４、ｒＧＰＲ４０５をランダムに選んだときの、判別問題生成装置ＧＰＲ４０６の出力する証明履歴及び証拠４０７、ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’、ｘの分布は、模擬装置３００と検証装置２０７が互いに通信することによって得られる、ｒＧ２０１、ｒＳ３０１をランダムに選んだときの、模擬された証明履歴ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’及び生成装置２０２の出力する証拠２０５の分布と同一になる。
【０１９０】
以上より、仮に真の証明装置Ｐ２０３と検証装置２０７が互いに通信することによって得られる、証明履歴ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’と、模擬装置３００と検証装置２０７が互いに通信することによって得られる、模擬された証明履歴ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’を識別することができる、証拠２０５が入力された識別装置１１２が存在するとする。
【０１９１】
ならば、ディフィーヘルマン事例生成装置ＧＤＨ４００またはランダム事例生成装置ＧＲ４０３のどちらの出力であるか分からない事例４０２α、β、γ、δの組が与えられたとき、これを判別問題生成装置ＧＰＲ４０６に入力して、証明履歴及び証拠４０７ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’、ｘを出力させ、これを識別装置１１２に入力し、この値の列が真の列か模擬の列かを判別させることにより、事例４０２α、β、γ、δの組がディフィーヘルマン事例生成装置ＧＤＨ４００またはランダム事例生成装置ＧＲ４０３のどちらの出力かを判定することができる。これはディフィーヘルマン判別問題が難しいことと矛盾する。よって、上記のような識別装置１１２は存在しない。
【０１９２】
上記理由より、二つの数値の列を識別することは不可能なため、本実施例の証明プロトコルは弱計算量的零知識クラスに属することが証明される。
＜零知識証明に属さないことの証明＞
本実施例が零知識証明に属さないことを図１３を参照しながら証明する。
【０１９３】
識別装置’１３０１として、特別な場合に有効な値１３０２としてあるＺ／ｑＺの数ｘ’を準備し、模擬された証明履歴１３０４または真の証明履歴１３０５であるｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ａ、ｂ、ｃ、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｒ、ｒ’、ｘ１３０３が入力されたとき、
等式ｚ’＝ｈｘ’  （ｍｏｄ  ｐ）かつｗ’＝ｈ’ｘ’  （ｍｏｄ  ｐ）であれば、
真の証明システムの出力した履歴であると判断し、
等式ｚ’＝ｈｘ’  （ｍｏｄ  ｐ）かつ不等式ｗ’≠ｈ’ｘ’  （ｍｏｄ  ｐ）であれば、模擬された履歴であると判断するとする。この識別装置は生成装置２０２が、
等式ｘ’＝ｌｏｇｈｚ’’なるｇ、ｙ、ｈ、ｚ’を生成した場合には、全てのランダムテープｒＰ１３０６、ｒＶ１３０７、ｒＳ１３０８、識別装置のランダムテープ１３１０の場合に対して正しく真／模擬の識別を行うことができる。
【０１９４】
ここで、生成装置のランダムテープが特別なものに関してのみ識別でき、その他の場合には識別ができないことに注意する。このように、生成装置のたった一つ出力に対しても正しく識別できる識別装置が存在するものは零知識証明ではない。ただし、大多数のｌｏｇｈｚ’の場合に関して正しく真／模擬を判別する識別装置は存在しないので、弱計算量的零知識証明である。
【０１９５】
次に第２の実施例について説明する。
［プロトコルの記述］
最初に、証明において検証装置から証明装置へのデータの送信が不要なプロトコルで、余計な知識を漏らさないことが保証された証明システムを、図７を参照しながら説明する。
【０１９６】
ｐ、ｑをそれぞれ大きな素数でｑはｐ−１を割りきるとする。１からｐ−１までの整数を（Ｚ／ｐＺ）＊とする。
【０１９７】
（Ｚ／ｐＺ）＊の要素でｑ乗してｍｏｄｐをとると１になるもの全体の集合をＧｑとする。０からｑ−１までの要素をＺ／ｑＺとする。ｐ、ｑを領域変数７００と呼ぶ。
【０１９８】
ランダムテープｒＧ７０１が入力された生成装置７０２は、ランダムテープｒＧ７０１利用してＧｑの要素ｇ、ｈ、ｚ’とＺ／ｑＺの要素ｘを一様無作為に生成し、ｙ＝ｇｘ  ｍｏｄ  ｐとする。この時Ｇｑの元ｚ’は圧倒的な確率で
不等式ｚ’≠ｈｘ  （ｍｏｄ  ｐ）が成り立つ。
【０１９９】
証明装置７０３には共通入力ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’７０４及び証拠７０５及びランダムテープｒＰ７０６が入力される。
【０２００】
検証装置７０７には共通入力ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’７０４が入力される。検証装置７０７は検証装置７０７の持っている情報から
不等式ｚ’≠ｈｘ  （ｍｏｄ  ｐ）であることを知ることは現実的には不可能である。
【０２０１】
証明装置７０３は検証装置７０７に不等式ｚ’≠ｈｘ  （ｍｏｄ  ｐ）であることを以下の手順で証明する。これは（ｇ、ｈ、ｙ、ｚ’）ディフィーヘルマン事例でないことの証明である。
（１）証明装置７０３はランダムテープｒＰ７０６を利用してＺ／ｑＺの要素ｄ、ｅ、ｆを一様無作為に選び、コミットメント
ｈ’  ＝ｈｄ  ｍｏｄ  ｐ、
ｗ’  ＝ｚ’ｄ  ｍｏｄ  ｐ、
ｖ    ＝ｈｘｄ  ｍｏｄ  ｐ、
ｙ’  ＝ｇｅ  ｍｏｄ  ｐ、
ｖ’  ＝ｈ’ｅ  ｍｏｄ  ｐ、
ｈ’’＝ｈｆ  ｍｏｄ  ｐ、
ｗ’’＝ｚ’ｆ  ｍｏｄ  ｐを計算する。
（２）証明装置７０３はハッシュ関数Ｈａｓｈ（）を用いてチャレンジ７１１
ｃ＝Ｈａｓｈ（ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’）を生成する。
（３）証明装置７０３は、リスポンス
ｒ＝ｘｃ＋ｅ  ｍｏｄ  ｑ、
ｒ’＝ｄｃ＋ｆ  ｍｏｄ  ｑ
を生成する。
（４）証明装置７０３は、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’７０９、ｒ、ｒ’７１３を検証装置７０７に送信する。
（５）検証装置７０７は
ｃ’＝Ｈａｓｈ（ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、
ｈ’’、ｗ’’）を生成する。これはチャレンジ７１１と同じ値になる。
検証装置７０７は４個の等式
ｇｒ＝ｙｃ’ｙ’（ｍｏｄ  ｐ）、
ｈ’ｒ＝ｖｃ’ｖ’（ｍｏｄ  ｐ）、
ｈｒ’＝ｈ’ｃ’ｈ’’（ｍｏｄ  ｐ）、
ｚ’ｒ’＝ｗ’ｃ’ｗ’’（ｍｏｄ  ｐ）と
１個の不等式ｖ≠ｗ’（ｍｏｄ  ｐ）が成り立てば、等式ｙ＝ｇｘ  ｍｏｄ  ｐであるｘに対して
不等式ｚ’≠ｈｘ  （ｍｏｄ  ｐ）であることの受理としてＯＫを出力する。でなければＮＧを出力する。
【０２０２】
検証装置７０７がこのプロトコルから知り得たデータは、検証装置７０７が証明装置７０３と無関係に保持しているデータを含めて、ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’である。（但しｃはその他の値から計算できる。）
［弱計算量的零知識の証明方法］
＜模擬装置が証明装置を使わず検証装置だけ使ってプロトコルを再現する方法＞模擬装置８００が証明装置と通信することなく、ｃをハッシュ値でなく乱数に置き換えたｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’を生成する方法を、図８を参照しながら説明する。
（１）模擬装置８００には領域変数７００ｐ、ｑ及び生成装置７０２の生成したｇ、ｈ、ｙ、ｚ’及びである共通入力ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’７０４ランダムテープｒＳ８０１が入力される。
（２）模擬装置８００はランダムテープｒＳ８０１を利用して、一様無作為にＧｑの要素からｗ’を、Ｚ／ｑＺの要素からｉ、チャレンジ８０２、リスポンス８０３を選ぶ。
さらに、コミットメント
ｈ’＝ｇｉ  ｍｏｄ  ｐ
ｖ  ＝ｙｉ  ｍｏｄ  ｐ
ｙ’＝ｇｒｙｃ  ｍｏｄ  ｐ、
ｖ’＝ｈ’ｒｖｃ  ｍｏｄ  ｐ、
ｈ’’＝ｈｒ’ｈ’ｃ  ｍｏｄ  ｐ、
ｗ’’＝ｚｒ’ｗ’ｃ  ｍｏｄ  ｐ、
を計算する。
【０２０３】
共通入力ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’は始めからあるので、これと合わせて模擬された証明履歴８０８ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’として出力する。
＜検証者が単独で生成した値の列と、証明者と共同で生成した値の列の違い＞
証明者が関わる真のプロトコルとでは、ｗ’はｌｏｇｈｚ’＝ｌｏｇｈ’ｗ’となるように選ばれるが、検証者が単独で再現したプロトコルではｗ’は一様無作為に選ばれ、このような等式は成立しない。その他の値の差異は全てこの違いにより生ずる。
【０２０４】
あるアルゴリズムが存在して、これにｉ及び片方の値の列が入力されたときに、もし一様無作為に選ばれたｘに対して、高い確率で両者の違いを判別することできるならば、このアルゴリズムを使ってディフィーヘルマン判別問題を解くことができる。
【０２０５】
ディフィーヘルマン判別問題とは４個の数値ａ、ｂ、ｃ、ｄが与えられたときにｌｏｇａｂ＝ｌｏｇｃｄかを判別する問題である。この問題はａ、ｂ、ｃ、ｄが十分に大きな時は解くことは不可能とされている。本例ではｌｏｇｈｚ’＝ｌｏｇｈ’ｗ’かを判別しなければならない。
＜検証者が単独で生成した値の列と、証明者と共同で生成した値の列を判別できないことの証明＞
模擬装置が証明装置を利用することなく生成した証明履歴と、証明者が生成した真の証明履歴を計算量的に識別できないことの証明を図９を参照しながら説明する。
【０２０６】
ディフィーヘルマン事例生成装置ＧＤＨ９００、ランダム事例生成装置ＧＲ９０１、ランダムテープｒＧＤＲ９０２、ｒＧＲ９０３、α、β、γ、δ９０４の定義は実施例１と同じである
Ｇｑの元の列α、β、γ、δ９０４及びランダムテープｒＧＰＲ９０５が入力されたとき、判別問題生成装置ＧＰＲ９０６は以下のように証明履歴９０７ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’と証拠９０８を生成する。
（１）判別問題生成装置ＧＰＲ９０６は、ランダムテープｒＧＰＲを利用してＧｑの元ｇ、Ｚ／ｑＺの元である証拠９０８、チャレンジ９１０、リスポンス９１１を一様無作為に生成する。
（２）判別問題生成装置ＧＰＲ９０６は、ｈ＝α、ｚ’＝β、ｙ＝ｇｘ  ｍｏｄｐ、と計算して、共通入力をｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、証拠をｘとする。
（３）判別問題生成装置ＧＰＲ９０６は、コミットメント
ｈ’＝γ、
ｗ’＝δ、
ｖ  ＝ｈ’ｘ  ｍｏｄ  ｐ、
ｙ’＝ｇｒｙ−ｃ  ｍｏｄ  ｐ、
ｖ’＝ｈ’ｒｖ−ｃ  ｍｏｄ  ｐ、
ｈ’’＝ｈｒ’ｈ’−ｃ  ｍｏｄ  ｐ、
ｗ’’＝ｚ’ｒ’ｗ’−ｃ  ｍｏｄ  ｐ、
を生成する。
【０２０７】
最後に証明履歴９０７ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’及び証拠９０８を出力する。
【０２０８】
もしＧＰＲ９０６に入力されたα、β、γ、δ９０４が、ディフィーヘルマン事例生成装置ＧＤＨ９００より出力されたものならば、ランダムテープｒＧＤＨ９０２、ｒＧＰＲ９０５、ｃを決定する乱数をランダムに選んだときの、判別問題生成装置ＧＰＲ９０６の出力する証明履歴９０７ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’及びｘの分布は、真の証明装置７０３の出力において、チャレンジ７１１を乱数に置き換えて得られる、ランダムテープｒＧ、ｒＰ及びｃを決定する乱数をランダムに選んだときの、証明履歴ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’７０４、７０９、７１１、７１３及び証拠７０５の分布と同一になる。
【０２０９】
もし判別問題生成装置ＧＰＲ９０６に入力されたα、β、γ、δ９０４が、ランダム事例生成装置ＧＲ９０１より出力されたものならば、ｒＧＲ９０３、ｒＧＰＲ９０５、及びチャレンジ９１０を決定する乱数をランダムに選んだときの、判別問題生成装置ＧＰＲ９０６の出力する証明履歴９０７ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’及び証拠９０８の分布は、模擬装置８００によって得られる、ｒＧ７０１、ｒＳ８０１をランダムに選んだときの、証明履歴８０８ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’及び生成装置７０２の出力する証拠７０５の分布と同一になる。
【０２１０】
以上より、仮に真の証明装置７０３の出力においてチャレンジ７１１を乱数に置き換えて得られる証明履歴ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’と、模擬装置８００によって得られる、証明履歴ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’を識別することができる、証拠７０５が入力された識別装置６１３が存在するとするならば、ディフィーヘルマン事例生成装置ＧＤＨ９００またはランダム事例生成装置ＧＲ９０１のどちらの出力であるか分からないα、β、γ、δ９０４の組が与えられたとき、これを判別問題生成装置ＧＰＲ９０６に入力して、証明履歴９０７ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’及び証拠９０８を出力させ、これを識別装置６１３に入力し、この値の列が真の列か模擬の列かを判別させることにより、α、β、γ、δ９０４の組がディフィーヘルマン事例生成装置ＧＤＨ９００またはランダム事例生成装置ＧＲ９０１のどちらの出力かを判定することができる。これはディフィーヘルマン判別問題が難しいことと矛盾する。
【０２１１】
よって、上記のような識別装置６１３は存在しない。
【０２１２】
上記理由より、二つの数値の列を識別することは不可能なため、本実施例の証明プロトコルはハッシュ関数を用いた弱計算量的零知識クラスに属することが証明される。
【０２１３】
本実施例が零知識証明に属さないことを証明する。
【０２１４】
識別装置’として、あるＺ／ｑＺの数ｘ’を準備し、証明履歴ｐ、ｑ、ｇ、ｈ、ｙ、ｚ’、ｈ’、ｗ’、ｖ、ｙ’、ｖ’、ｈ’’、ｗ’’、ｃ、ｒ、ｒ’、ｘが入力されたとき、
等式ｚ’＝ｈｘ’  （ｍｏｄ  ｐ）かつ等式ｗ’＝ｈ’ｘ’  （ｍｏｄ  ｐ）が成り立てば真の証明システムの出力した履歴であると判断し、
等式ｚ’＝ｈｘ’  （ｍｏｄ  ｐ）かつ不等式ｗ’≠ｈ’ｘ’  （ｍｏｄ  ｐ）が成り立てば模擬された履歴であると判断するとする。
【０２１５】
この識別装置は、生成装置が
等式ｘ’＝ｌｏｇｈｚ’が成り立たないようなｇ、ｙ、ｈ、ｚ’を生成した場合には、全てのランダムテープｒＰ、ｒＶの場合に対して正しく真／模擬の識別を行うことができる。このように、生成装置のたった一つ出力に対しても正しく識別できる識別装置が存在するものは零知識証明ではない。ただし、大多数のｌｏｇｈｚ’の場合に関して正しく真／模擬を識別装置は存在しないので、弱計算量的零知識証明である。
【０２１６】
【発明の効果】
従来の技術では、証明者が検証者に知識を漏らさないことを保証された安全な証明システムを使いたいならば、零知識証明クラスに属する証明システムを使う必要があった。しかし、本発明の弱計算量的零知識証明クラスに属する証明方法を使えば、零知識証明クラスに属さないプロトコルでも、証明者が検証者に知識を漏らさないことを保証して証明できる効果がある。
【０２１７】
特に実施例１及び２のプロトコルでは、ディフィーヘルマン事例でないことを証明する方法であり、かつディフィーヘルマン事例でないことの証拠が漏れないことが保証される方法であったが、従来の零知識証明に属する方法より効率的であるという特徴を備えている。
【図面の簡単な説明】
【図１】本発明実施の形態１の生成装置、証明装置、検証装置、模擬装置、模擬装置と通信する検証装置、識別装置の関係を示したブロック図である。
【図２】本発明実施例１の生成装置、証明装置、検証装置の関係を示したブロック図である。
【図３】本発明実施例１の生成装置、模擬装置、検証装置の関係を示したブロック図である。
【図４】本発明実施例１の二つの事例生成装置、判別問題生成装置、検証装置の関係を示したブロック図である。
【図５】本発明実施例２の生成装置、証明装置、検証装置の関係を示したブロック図である。
【図６】本発明実施例２の生成装置、改変した証明装置、模擬装置、識別装置の関係を示したブロック図である。
【図７】本発明実施例２の生成装置、証明装置、検証装置の関係を示したブロック図である。
【図８】本発明実施例２の生成装置、模擬装置の関係を示したブロック図である。
【図９】本発明実施例２の二つの事例生成装置、判別問題生成装置の関係を示したブロック図である。
【図１０】本発明実施の形態３の評価者、提示者、被提示者の関係を示したブロック図である。
【図１１】本発明実施の形態１の解説で、零知識証明における確率の評価方法を示したフローチャートである。
【図１２】本発明実施の形態１の解説で、本発明である弱零知識証明における確率の評価方法を示したフローチャートである。
【図１３】本発明実施例１のプロトコルが零知識証明でないことの証明を示したブロック
【符号の説明】
１００    生成装置
１０１    ランダムテープｒＧ
１０２    固定データ
１０３    証拠
１０４    共通入力
１０５    証明装置
１０６    検証装置
１０７    対話データ
１０８    ランダムテープｒＶ
１１０    模擬装置
１１１    証明履歴
１１２    識別装置
１１３    ランダムテープｒＶ
１１５    模擬証明履歴
１１７    ランダムテープｒＤ
２００    領域変数
２０２    生成装置
２０１    ランダムテープｒＧ
２０２    生成装置
２０３    対話証明装置
２０４    共通入力
２０５    証拠
２０６    ランダムテープｒＰ
２０７    対話検証装置
２０８    ランダムテープｒＶ
２０９    チャレンジコミットメント
２１１    チャレンジ
２１２    乱数
２１４    計算値
２１８    リスポンス
３００    模擬装置
３０１    ランダムテープｒＳ
３０２    ランダムテープｒＶ
４００    ディフィーヘルマン事例生成装置ＧＤＨ
４０１    ランダムテープｒＧＤＨ
４０２    事例
４０３    ランダム事例生成装置ＧＲ
４０４    ランダムテープｒＧＲ
４０５    ランダムテープｒＧＰＲ
４０６    判別問題生成装置ＧＰＲ
５００    生成装置
５０１    ランダムテープｒＧ
５０２    固定データ
５０３    証拠
５０４    共通入力
５０５    証明装置
５０６    検証装置
５０７    証明部
５０８    ハッシュ部
５０９    交換データ
５１１    検証部
５１２    ハッシュ部
５１５    ランダムテープｒＰ
６０５    改変証明装置
６０９    乱数
６１０    改変証明履歴
６１１    模擬改変証明履歴
６１２    模擬装置
６１３    識別装置
６１８    交換データ
７０２    生成装置
７０５    証拠
８００    模擬装置
８０１    ランダムテープｒＳ
８０２    チャレンジ
８０３    リスポンス
８０８    証明履歴
９００    ディフィーヘルマン事例生成装置ＧＤＨ
９０１    ランダム事例生成装置ＧＲ
９０２    ランダムテープｒＧＤＲ
９０６    判別問題生成装置ＧＰＲ
９０７    証明履歴
９０８    証拠
９１０    チャレンジ
９１１    リスポンス
１００１    評価者端末
１００２    記憶装置
１００３    提示者端末
１００４    ネットワーク
１００５    記憶装置
１００７    被提示者端末
１００９    評価の根拠
【図１】
2004179766.tif 000003
【図２】
2004179766.tif 000004
【図３】
2004179766.tif 000005
【図４】
2004179766.tif 000006
【図５】
2004179766.tif 000007
【図６】
2004179766.tif 000008
【図７】
2004179766.tif 000009
【図８】
2004179766.tif 000010
【図９】
2004179766.tif 000011
【図１０】
2004179766.tif 000012
【図１１】
2004179766.tif 000013
【図１２】
2004179766.tif 000014
【図１３】
2004179766.tif 000015