(57)【特許請求の範囲】
【請求項１】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構と、を備えて成る証明システムであって、
前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
前記証明機構が、
αの第一の底における離散対数を格納する秘密情報格納手段と、
乱数を発生させる乱数発生手段と、
前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、
前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明手段と、
前記変数変換手段により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明手段と、
を備え、
前記検証機構が、
前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証手段と、
α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証手段と、
β'とγ'が同じであることを確認する第三の検証手段と、
前記第一の検証手段、前記第二の検証手段、および前記第三の検証手段の結果により、証明を受理するか否かを判定する判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項２】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構を備えて成る証明システムであって、
前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
前記証明機構が、
αの第一の底における離散対数を格納する秘密情報格納手段と、
乱数を発生させる乱数発生手段と、
前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、
前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、
を備え、
前記検証機構が、
前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、
β'とγ'が同じであることを確認する第二の検証手段と、
前記第一の検証手段および前記第二の検証手段の結果により、証明を受理するか否かを判定する判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項３】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が異なることを示す証明機構と、それを確認する検証機構を備えて成る証明方式であって、
前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
前記証明機構が、
αの第一の底における離散対数を格納する秘密情報格納手段と、
乱数を発生させる乱数発生手段と、
前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、
前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明手段と、
前記変数変換手段により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明手段と、
を備え、
前記検証機構が、
前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証手段と、
α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証手段と、
β'とγ'が異なることを確認する第三の検証手段と、
前記第一の検証手段、前記第二の検証手段、および前記第三の検証手段の結果により、証明を受理するか否かを判定する判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項４】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が異なることを示す証明機構と、それを確認する検証機構とを備えて成る証明システムであって、
前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
前記証明機構が、
αの第一の底における離散対数を格納する秘密情報格納手段と、
乱数を発生させる乱数発生手段と、
前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、前記βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、
前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、
を備え、
前記検証機構が、
前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、
β'とγ'が異なることを確認する第二の検証手段と、
前記第一の検証手段および前記第二の検証手段の結果により、証明を受理するか否かを判定する判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項５】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じあるいは異なることを示す証明機構と、それを確認する検証機構とを備えて成る証明システムであって、
前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
前記証明機構が、
αの第一の底における離散対数を格納する秘密情報格納手段と、
乱数を発生させる乱数発生手段と、
前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、
前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明手段と、
前記変数変換手段により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明手段と、
を備え、
前記検証機構が、
前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証手段と、
α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証手段と、
β'とγ'を比較する比較手段と、
前記第一の検証手段、前記第二の検証手段、および前記比較手段の結果により、証明を受理するか否かを判定する判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項６】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じあるいは異なることを示す証明機構と、それを確認する検証機構とを備えて成る証明システムであって、
前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
前記証明機構が、
αの第一の底における離散対数を格納する秘密情報格納手段と、
乱数を発生させる乱数発生手段と、
前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'、βを前記乱数により冪乗させたβ'、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'を出力する変数変換手段と、
前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、
を備え、
前記検証機構が、
前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、
β'とγ'を比較する比較手段と、
前記第一の検証手段及び前記比較手段の結果により、証明を受理するか否かを判定する判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項７】
請求項１、３、５のいずれか一に記載の証明システムにおいて、
前記第一の証明手段が、
第二乱数を発生させる第二の乱数発生手段と、
前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント手段と、
前記第一の検証手段が出力した第一のチャレンジに対して、前記乱数と前記第二乱数を用いて演算する第一のレスポンス手段と、
を備え、
前記第一の検証手段が、
前記第一のコミットメント手段の出力を受信したのち、第一のチャレンジを生成する第一のチャレンジ手段と、
前記第一のレスポンス手段の出力が、前記第一のコミットメント手段の出力及び第一のチャレンジ手段の出力と一貫性があるか否かを確認する第二の判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項８】
請求項１、３、５のいずれか一に記載の証明システムにおいて、
前記第一の証明手段が、
前記第一の検証手段が出力した第一のチャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二の乱数発生手段と、
前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント手段と、
前記第一の検証手段が出力した第一のチャレンジを受信したのち、前記第一のチャレンジ準備の正当性を確認し,前記乱数と前記第二乱数と前記第三乱数を用いて第一のレスポンスを演算する第一のレスポンス手段と、
を備え、
前記第一の検証手段が、
第四乱数を発生させる第三の乱数発生手段と、
前記第三の乱数発生手段で発生させた前記第四乱数を用いて、前記第一のチャレンジ準備を生成する第一のチャレンジ準備手段と、
前記第二の乱数発生手段で発生させた前記第三乱数及び,前記コミットメント手段の出力を受信したのち、第四乱数を用いて第一のチャレンジを生成する第一のチャレンジ手段と、
前記第一のレスポンス手段の出力が、前記第一のコミットメント手段の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二の判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項９】
請求項１、３、５のいずれか一に記載の証明システムにおいて、
前記第一の証明手段が、
第二乱数を発生させる第二の乱数発生手段と、
前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント手段と、
前記第一のコミットメント手段の出力から第一の自動チャレンジを生成する第一の自動チャレンジ手段と、
前記第一の自動チャレンジ手段が出力した第一の自動チャレンジに対して前記乱数と前記第二乱数を用いて第一のレスポンスを演算する第一のレスポンス手段と、
前記第一のコミットメント手段の出力である第一のコミットメントと、前記第一のレスポンス手段の出力である第一のレスポンスを第一の証明文として出力する第一の証明文出力手段と、
を備え、
前記第一の検証手段が、
前記第一の証明文出力手段の出力に含まれる第一のコミットメントから第一の自動チャレンジを生成する第一の自動チャレンジ手段と、
前記第一のレスポンス手段の出力が、前記第一のコミットメント手段の出力、第一の自動チャレンジ手段の出力と一貫性があるか否かを確認する第二の判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項１０】
請求項１、３、５のいずれか一に記載の証明システムにおいて、
前記第一の証明手段が、
第二乱数を発生させる第二の乱数発生手段と、
前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、β変換させる第一のコミットメント手段と、
前記第一のコミットメント手段の出力から第一の自動チャレンジを生成する第一の自動チャレンジ手段と、
前記第一の自動チャレンジ手段が出力した第一の自動チャレンジに対して前記乱数と前記第二乱数を用いて第一のレスポンスを演算する第一のレスポンス手段と、
前記第一の自動チャレンジ手段の出力である第一の自動チャレンジと第一のレスポンス手段の出力である第一のレスポンスを第一の証明文として出力する第一の証明文出力手段と、
を備え、
前記第一の検証手段が、
前記第一の前記証明文出力手段の出力した第一の証明文に含まれる第一の自動チャレンジと第一のレスポンスが一貫性があるか否かを確認する第二の判定手段を備えている、ことを特徴とする証明システム。
【請求項１１】
請求項１、３、５のいずれか一に記載の証明システムにおいて、
前記第二の証明手段が、
第三乱数を発生させる第三の乱数発生手段と、
前記第三の乱数発生手段で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント手段と、
前記第二の検証手段が出力した第二のチャレンジに対して前記乱数と前記第三乱数を用いて演算する第二のレスポンス手段と、
を備え、
前記第二の検証手段が、
前記第二のコミットメント手段の出力を受信したのち、第二のチャレンジを生成する第二のチャレンジ手段と、
前記第二のレスポンス手段の出力が、前記第二のコミットメント手段の出力及び第二のチャレンジ手段の出力と一貫性があるか否かを確認する第三の判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項１２】
請求項１、３、５のいずれか一に記載の証明システムにおいて、
前記第二の証明手段が、
前記第二の検証手段が出力した第二のチャレンジ準備を受信したのち、第五乱数及び第六乱数を発生させる第四の乱数発生手段と、
前記第四の乱数発生手段で発生させた前記第五乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント手段と、
前記第二の検証手段が出力した第二のチャレンジを受信したのち、前記第二のチャレンジ準備の正当性を確認し,前記乱数と前記第五乱数と前記第六乱数を用いて第二のレスポンスを演算する第二のレスポンス手段と、
を備え、
前記第二の検証手段が、
第七乱数を発生させる第五の乱数発生手段と、
前記第五の乱数発生手段で発生させた前記第七の乱数を用いて、前記第二のチャレンジ準備を生成する第二のチャレンジ準備手段と、
前記第四の乱数発生手段で発生させた前記第六乱数及び,前記第二のコミットメント手段の出力を受信したのち、第七乱数を用いて第二のチャレンジを生成する第二のチャレンジ手段と、
前記第二のレスポンス手段の出力が、前記第二のコミットメント手段の出力、第七乱数および第六乱数と一貫性があるか否かを確認する第三の判定手段と、  を備えている、ことを特徴とする証明システム。
【請求項１３】
請求項１、３、５のいずれか一に記載の証明システムにおいて、
前記第二の証明手段が、
第三乱数を発生させる第三の乱数発生手段と、
前記第三の乱数発生手段で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント手段と、
前記第二のコミットメント手段の出力から第二の自動チャレンジを生成する第二の自動チャレンジ手段と、
前記第二の自動チャレンジ手段が出力した第二の自動チャレンジに対して前記乱数と前記第三乱数を用いて第二のレスポンスを演算する第二のレスポンス手段と、
前記第二のコミットメント手段の出力である第二のコミットメントと、前記第二のレスポンス手段の出力である第二のレスポンスを、第二の証明文として出力する第二の証明文出力手段と、
を備え、
前記第二の検証手段が、
前記第二の証明文出力手段の出力に含まれる第二のコミットメントから第二の自動チャレンジを生成する第二の自動チャレンジ手段と、
前記第二のレスポンス手段の出力が、前記第二のコミットメント手段の出力、第二の自動チャレンジ手段の出力と一貫性があるか否かを確認する第三の判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項１４】
請求項１、３、５のいずれか一に記載の証明システムにおいて、
前記第二の証明手段が、
第三乱数を発生させる第三の乱数発生手段と、
前記第三の乱数発生手段で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント手段と、
前記第二のコミットメント手段の出力から第二の自動チャレンジを生成する第二の自動チャレンジ手段と、
前記第二の自動チャレンジ手段が出力した第二の自動チャレンジに対して前記乱数と前記第三乱数を用いて第二のレスポンスを演算する第二のレスポンス手段と、
前記第二の自動チャレンジ手段の出力である第二の自動チャレンジと、前記第二のレスポンス手段の出力である第二のレスポンスを、第二の証明文として出力する第二の証明文出力手段と、
を備え、
前記第二の検証手段が、
前記第二の前記証明文出力手段の出力した第二の証明文に含まれる第二の自動チャレンジと第二のレスポンスが一貫性があるか否かを確認する第三の判定手段を備えている、ことを特徴とする証明システム。
【請求項１５】
請求項２、４、６のいずれか一に記載の証明システムにおいて、
前記証明手段が、
第二乱数を発生させる第二の乱数発生手段と、
前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段と、
前記第一の検証手段が出力したチャレンジに対して前記乱数と前記第二乱数を用いて演算するレスポンス手段と、
を備え、
前記第一の検証手段が、
前記コミットメント手段の出力を受信したのち、チャレンジを生成するチャレンジ手段と、
前記レスポンス手段の出力が、前記コミットメント手段の出力、及び前記チャレンジ手段の出力と一貫性があるか否かを確認する第二の判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項１６】
請求項２、４、６のいずれか一に記載の証明システムにおいて、
前記証明手段が、第一の検証手段が出力したチャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二の乱数発生手段と、
前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段と、
前記第一の検証手段が出力したチャレンジを受信したのち、前記チャレンジ準備の正当性を確認し、前記乱数と前記第二乱数と前記第三乱数とを用いてレスポンスを演算するレスポンス手段と、
を備え、
前記第一の検証手段が、
第四乱数を発生させる第三の乱数発生手段と、
前記第三の乱数発生手段で発生させた前記第四乱数を用いて、前記チャレンジ準備を生成するチャレンジ準備手段と、
前記第二の乱数発生手段で発生させた前記第三乱数、及び、前記コミットメント手段の出力を受信したのち、第四乱数を用いてチャレンジを生成するチャレンジ手段と、
前記レスポンス手段の出力が、前記コミットメント手段の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二の判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項１７】
請求項２、４、６のいずれか一に記載の証明システムにおいて、
前記証明手段が、
第二乱数を発生させる第二の乱数発生手段と、
前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段と、
前記コミットメント手段の出力から自動チャレンジを生成する自動チャレンジ手段と、
前記自動チャレンジ手段が出力した自動チャレンジに対して前記乱数と前記第二乱数を用いてレスポンスを演算するレスポンス手段と、
前記コミットメント手段の出力であるコミットメントとレスポンス手段の出力であるレスポンスを証明文として出力する証明文出力手段と、
を備え、
前記第一の検証手段が、
前記証明文出力手段の出力に含まれるコミットメントから自動チャレンジを生成する自動チャレンジ手段と、
前記レスポンス手段の出力が、前記コミットメント手段の出力、自動チャレンジ手段の出力と一貫性があるか否かを確認する第二の判定手段と、
を備えている、ことを特徴とする証明システム。
【請求項１８】
請求項２、４、６のいずれか一に記載の証明システムにおいて、
前記証明手段が、第二乱数を発生させる第二の乱数発生手段と、
前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段と、
前記コミットメント手段の出力から生成される自動チャレンジを生成する自動チャレンジ手段と、
前記自動チャレンジ手段が出力した自動チャレンジに対して前記乱数と前記第二乱数とを用いてレスポンスを演算するレスポンス手段と、
前記自動チャレンジ手段の出力した自動チャレンジと、前記レスポンス手段のレスポンスを証明文として出力する証明文出力手段と、
を備え、
前記第一の検証手段が、前記証明文出力手段の出力した証明文に含まれる自動チャレンジとレスポンスが一貫性があるか否かを確認する第二の判定手段を備えている、ことを特徴とする証明システム。
【請求項１９】
請求項１乃至１８のいずれか一に記載の前記証明機構を備えた装置。
【請求項２０】
請求項１乃至１８のいずれか一に記載の前記検証機構を備えた装置。
【請求項２１】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出して冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換処理で出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
(d)前記変数変換処理で出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
の各ステップが実行され、
前記検証機構では、
(e)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
(f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
（g）β'とγ'が同じであることを確認する第三の検証処理と、
（h）前記第一の検証処理、前記第二の検証処理、および前記第三の検証処理の結果により、証明を受理するか否かを判定する判定処理、
の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項２２】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
の各ステップが実行され、
前記検証機構では、
(d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
(e)β'とγ'が同じであることを確認する第二の検証処理と、
(f)前記第一の検証処理および前記第二の検証処理の結果により、証明を受理するか否かを判定する判定処理、
の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項２３】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換処理で出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
(d)前記変数変換処理で出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
の各ステップが実行され、
前記検証機構では、
(e)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'を受け取りα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
(f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
(g)β'とγ'が異なることを確認する第三の検証処理と、
(h)前記第一の検証処理、前記第二の検証処理、および前記第三の検証処理の結果により、証明を受理するか否かを判定する判定処理、
の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項２４】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、前記βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換処理により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
の各ステップが実行され、
前記検証機構では、
(d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
(e)β'とγ'が異なることを確認する第二の検証処理と、
(f)前記第一の検証処理および前記第二の検証処理の結果により、証明を受理するか否かを判定する判定処理、
の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項２５】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出して該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換処理により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
(d)前記変数変換処理により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
の各ステップが実行され、
前記検証機構では、
(e)前記証明機構の前記変数変換処理が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
(f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
(g)β'とγ'を比較する比較処理と、
(h)前記第一の検証処理、前記第二の検証処理、および前記比較処理の結果により、証明を受理するか否かを判定する判定処理、
の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項２６】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換処理により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
の各ステップが実行され、
前記検証機構では、
(d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
(e)β'とγ'を比較する比較処理と、
(f)前記第一の検証処理及び前記比較処理の結果により、証明を受理するか否かを判定する判定処理、
の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項２７】
請求項２１、２３、２５のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記第一の証明処理が、
(1)第二乱数を発生させる第二の乱数発生処理と、
(2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント処理と、
(3)前記第一の検証処理が出力した第一のチャレンジに対して、前記乱数と前記第二乱数を用いて演算する第一のレスポンス処理、
の各ステップを有し、
前記第一の検証処理が、
(4)前記第一のコミットメント処理の出力を受信したのち、第一のチャレンジを生成する第一のチャレンジ処理と、
(5)前記第一のレスポンス処理の出力が、前記第一のコミットメント処理の出力及び第一のチャレンジ処理の出力と一貫性があるか否かを確認する第二の判定処理、
の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項２８】
請求項２１、２３、２５のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記第一の証明処理が、
(1)前記第一の検証処理が出力した第一のチャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二の乱数発生処理と、
(2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント処理と、
(3)前記第一の検証処理が出力した第一のチャレンジを受信したのち、前記第一のチャレンジ準備の正当性を確認し,前記乱数と前記第二乱数と前記第三乱数を用いて第一のレスポンスを演算する第一のレスポンス処理、
の各ステップを有し、
前記第一の検証処理が、
(4)第四乱数を発生させる第三の乱数発生処理と、
(5)前記第三の乱数発生処理で発生させた前記第四乱数を用いて、前記第一のチャレンジ準備を生成する第一のチャレンジ準備処理と、
(6)前記第二の乱数発生処理で発生させた前記第三乱数及び,前記コミットメント手段の出力を受信したのち、第四乱数を用いて第一のチャレンジを生成する第一のチャレンジ処理と、
(7)前記第一のレスポンス処理の出力が、前記第一のコミットメント処理の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二の判定処理、の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項２９】
請求項２１、２３、２５のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記第一の証明処理が、
(1)第二乱数を発生させる第二の乱数発生処理と、
(2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント処理と、
(3)前記第一のコミットメント処理の出力から第一の自動チャレンジを生成する第一の自動チャレンジ処理と、
(4)前記第一の自動チャレンジ処理が出力した第一の自動チャレンジに対して前記乱数と前記第二乱数を用いて第一のレスポンスを演算する第一のレスポンス処理と、
(5)前記第一のコミットメント処理の出力である第一のコミットメントと、前記第一のレスポンス処理の出力である第一のレスポンスを第一の証明文として出力する第一の証明文出力処理、
の各ステップを有し、
前記第一の検証処理が、
(6)前記第一の証明文出力処理の出力に含まれる第一のコミットメントから第一の自動チャレンジを生成する第一の自動チャレンジ処理と、
(7)前記第一のレスポンス処理の出力が、前記第一のコミットメント処理の出力、第一の自動チャレンジ処理の出力と一貫性があるか否かを確認する第二の判定処理、
の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項３０】
請求項２１、２３、２５のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記第一の証明処理が、
(1)第二乱数を発生させる第二の乱数発生処理と、
(2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、β変換させる第一のコミットメント処理と、
(3)前記第一のコミットメント処理の出力から第一の自動チャレンジを生成する第一の自動チャレンジ処理と、
(4)前記第一の自動チャレンジ処理が出力した第一の自動チャレンジに対して前記乱数と前記第二乱数を用いて第一のレスポンスを演算する第一のレスポンス処理と、
(5)前記第一の自動チャレンジ処理の出力である第一の自動チャレンジと第一のレスポンス処理の出力である第一のレスポンスを第一の証明文として出力する第一の証明文出力処理、
の各ステップを有し、
前記第一の検証処理が、
(6)前記第一の前記証明文出力処理の出力した第一の証明文に含まれる第一の自動チャレンジと第一のレスポンスが一貫性があるか否かを確認する第二の判定処理ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項３１】
請求項２１、２３、２５のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記第二の証明処理が、
(1)第三乱数を発生させる第三の乱数発生処理と、
(2)前記第三の乱数発生処理で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント処理と、
(3)前記第二の検証処理が出力した第二のチャレンジに対して前記乱数と前記第三乱数を用いて演算する第二のレスポンス処理、
の各ステップを有し、
前記第二の検証処理が、
(4)前記第二のコミットメント処理の出力を受信したのち、第二のチャレンジを生成する第二のチャレンジ処理と、
(5)前記第二のレスポンス処理の出力が、前記第二のコミットメント処理の出力及び第二のチャレンジ処理の出力と一貫性があるか否かを確認する第三の判定処理、
の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項３２】
請求項２１、２３、２５のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記第二の証明処理が、
(1)前記第二の検証処理が出力した第二のチャレンジ準備を受信したのち、第五乱数及び第六乱数を発生させる第四の乱数発生処理と、
(2)前記第四の乱数発生処理で発生させた前記第五乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント処理と、
(3)前記第二の検証処理が出力した第二のチャレンジを受信したのち、前記第二のチャレンジ準備の正当性を確認し,前記乱数と前記第五乱数と前記第六乱数を用いて第二のレスポンスを演算する第二のレスポンス処理、
の各ステップを有し、
前記第二の検証処理が、
(4)第七乱数を発生させる第五の乱数発生処理と、
(5)前記第五の乱数発生処理で発生させた前記第七の乱数を用いて、前記第二のチャレンジ準備を生成する第二のチャレンジ準備処理と、
(6)前記第四の乱数発生処理で発生させた前記第六乱数及び,前記第二のコミットメント処理の出力を受信したのち、第七乱数を用いて第二のチャレンジを生成する第二のチャレンジ処理と、
(7)前記第二のレスポンス処理の出力が、前記第二のコミットメント処理の出力、第七乱数および第六乱数と一貫性があるか否かを確認する第三の判定処理、の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項３３】
請求項２１、２３、２５のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記第二の証明処理が、
(1)第三乱数を発生させる第三の乱数発生処理と、
(2)前記第三の乱数発生処理で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント処理と、
(3)前記第二のコミットメント処理の出力から第二の自動チャレンジを生成する第二の自動チャレンジ処理と、
(4)前記第二の自動チャレンジ処理が出力した第二の自動チャレンジに対して前記乱数と前記第三乱数を用いて第二のレスポンスを演算する第二のレスポンス処理と、
(5)前記第二のコミットメント処理の出力である第二のコミットメントと、前記第二のレスポンス処理の出力である第二のレスポンスを、第二の証明文として出力する第二の証明文出力処理、
の各ステップを有し、
前記第二の検証処理が、
(6)前記第二の証明文出力処理の出力に含まれる第二のコミットメントから第二の自動チャレンジを生成する第二の自動チャレンジ処理と、
(7)前記第二のレスポンス処理の出力が、前記第二のコミットメント処理の出力、第二の自動チャレンジ処理の出力と一貫性があるか否かを確認する第三の判定処理、
の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項３４】
請求項２１、２３、２５のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記第二の証明処理が、
(1)第三乱数を発生させる第三の乱数発生処理と、
(2)前記第三の乱数発生処理で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント処理と、
(3)前記第二のコミットメント処理の出力から第二の自動チャレンジを生成する第二の自動チャレンジ処理と、
(4)前記第二の自動チャレンジ処理が出力した第二の自動チャレンジに対して前記乱数と前記第三乱数を用いて第二のレスポンスを演算する第二のレスポンス処理と、
(5)前記第二の自動チャレンジ処理の出力である第二の自動チャレンジと、前記第二のレスポンス処理の出力である第二のレスポンスを、第二の証明文として出力する第二の証明文出力処理、
の各ステップを有し、
前記第二の検証処理が、
前記第二の前記証明文出力処理の出力した第二の証明文を受信し、前記第二の証明文に含まれる第二の自動チャレンジと、前記第二のレスポンスが一貫性があるか否かを確認する第三の判定処理ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項３５】
請求項２２、２４、２６のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記証明処理が、
(1)第二乱数を発生させる第二の乱数発生処理と、
(2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント処理と、
(3)前記第一の検証処理が出力したチャレンジに対して前記乱数と前記第二乱数を用いて演算するレスポンス処理、
の各ステップを有し、
前記第一の検証処理が、
(4)前記コミットメント処理の出力を受信したのち、チャレンジを生成するチャレンジ処理と、
(5)前記レスポンス処理の出力が、前記コミットメント処理の出力、及び前記チャレンジ処理の出力と一貫性があるか否かを確認する第二の判定処理、
の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項３６】
請求項２２、２４、２６のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記証明処理が、
(1)前記第一の検証処理が出力したチャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二の乱数発生処理と、
(2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント処理と、
(3)前記第一の検証処理が出力したチャレンジを受信したのち、前記チャレンジ準備の正当性を確認し、前記乱数と前記第二乱数と前記第三乱数とを用いてレスポンスを演算するレスポンス処理と、
の各ステップを有し、
前記第一の検証処理が、
(5)第四乱数を発生させる第三の乱数発生処理と、
(6)前記第三の乱数発生処理で発生させた前記第四乱数を用いて、前記チャレンジ準備を生成するチャレンジ準備処理と、
(7)前記第二の乱数発生処理で発生させた前記第三乱数、及び、前記コミットメント処理の出力を受信したのち、第四乱数を用いてチャレンジを生成するチャレンジ処理と、
前記レスポンス処理の出力が、前記コミットメント処理の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二の判定処理と、
の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項３７】
請求項２２、２４、２６のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記証明処理が、
(1)第二乱数を発生させる第二の乱数発生処理と、
(2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント処理と、
(3)前記コミットメント処理の出力から自動チャレンジを生成する自動チャレンジ処理と、
(4)前記自動チャレンジ処理が出力した自動チャレンジに対して前記乱数と前記第二乱数を用いてレスポンスを演算するレスポンス処理と、
(5)前記コミットメント処理の出力であるコミットメントと前記レスポンス処理の出力であるレスポンスを証明文として出力する証明文出力処理と、
の各ステップを有し、
前記第一の検証処理が、
(6)前記証明文出力処理の出力に含まれるコミットメントから自動チャレンジを生成する自動チャレンジ処理と、
(7)前記レスポンス処理の出力が、前記コミットメント処理の出力、自動チャレンジ処理の出力と一貫性があるか否かを確認する第二の判定処理と、
の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項３８】
請求項２２、２４、２６のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
前記証明処理が、
(1)第二乱数を発生させる第二の乱数発生処理と、
(2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント処理と、
(3)前記コミットメント処理の出力から生成される自動チャレンジを生成する自動チャレンジ処理と、
(4)前記自動チャレンジ処理が出力した自動チャレンジに対して前記乱数と前記第二乱数とを用いてレスポンスを演算するレスポンス処理と、
(5)前記自動チャレンジ処理の出力した自動チャレンジと、前記レスポンス処理のレスポンスを証明文として出力する証明文出力処理と、
の各ステップを有し、
前記第一の検証処理が、
(6)前記証明文出力処理の出力した証明文に含まれる自動チャレンジとレスポンスが一貫性があるか否かを確認する第二の判定処理のステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
【請求項３９】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出して冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換処理で出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
(d)前記変数変換処理で出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
の各ステップが実行され、
前記検証機構では、
(e)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
(f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
（g）β'とγ'が同じであることを確認する第三の検証処理と、
（h）前記第一の検証処理、前記第二の検証処理、および前記第三の検証処理の結果により、証明を受理するか否かを判定する判定処理、
の各ステップが実行され、
前記(a)乃至(h)の各ステップを前記コンピュータに実行させるプログラム。
【請求項４０】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
の各ステップが実行され、
前記検証機構では、
(d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
(e)β'とγ'が同じであることを確認する第二の検証処理と、
(f)前記第一の検証処理および前記第二の検証処理の結果により、証明を受理するか否かを判定する判定処理、
の各ステップが実行され、
前記(a)乃至(f)の各ステップを前記コンピュータに実行させるプログラム。
【請求項４１】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換処理で出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
(d)前記変数変換処理で出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
の各ステップが実行され、
前記検証機構では、
(e)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'を受け取りα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
(f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
(g)β'とγ'が異なることを確認する第三の検証処理と、
(h)前記第一の検証処理、前記第二の検証処理、および前記第三の検証処理の結果により、証明を受理するか否かを判定する判定処理、
の各ステップが実行され、
前記(a)乃至(h)の各ステップを前記コンピュータに実行させるプログラム。
【請求項４２】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、前記βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換処理により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
の各ステップが実行され、
前記検証機構では、
(d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
(e)β'とγ'が異なることを確認する第二の検証処理と、
(f)前記第一の検証処理および前記第二の検証処理の結果により、証明を受理するか否かを判定する判定処理、
前記(a)乃至(f)の各ステップを前記コンピュータに実行させるプログラム。
【請求項４３】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出して該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
(d)前記変数変換処理により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
の各ステップが実行され、
前記検証機構では、
(e)前記証明機構の前記変数変換処理が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
(f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
(g)β'とγ'を比較する比較処理と、
(h)前記第一の検証処理、前記第二の検証処理、および前記比較処理の結果により、証明を受理するか否かを判定する判定処理、
の各ステップが実行され、
前記(a)乃至(f)の各ステップを前記コンピュータに実行させるプログラム。
【請求項４４】
指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段（「公開情報格納手段」という）に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
前記証明機構では、
αの第一の底における離散対数が秘密情報として記憶手段（「秘密情報格納手段」という）に格納されており、
(a)乱数を発生させる乱数発生処理と、
(b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
(c)前記変数変換処理により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
の各ステップが実行され、
前記検証機構では、
(d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
(e)β'とγ'を比較する比較処理と、
(f)前記第一の検証処理及び前記比較処理の結果により、証明を受理するか否かを判定する判定処理、
の各ステップが実行され、
前記(a)乃至(f)の各ステップを前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自分が生成していない電子署名に対しては否認できるが、自分が生成した電子署名ならば否認することができないと言う性質を持つ、否認不可証明等で用いて好適とされる、離散対数の一致あるいは不一致をゼロ知識証明する技術に関する。
【０００２】
【従来の技術】
Chaumが提案した否認不可署名方式がある。この方式では、mod p上の位数qの群G(p,qは素数であり、q|(p-1)という関係)の演算体系を利用している。署名者は、群Gの元y=gxと、群Gの生成元gを公開鍵とし、xを秘密鍵とする。メッセージmに対する署名は、秘密鍵xを用いてSIG=mxにより計算する。(m,SIG)に対して、SIG=mx'の底mに対する離散対数x'が公開鍵のy=gxのgに対する離散対数xに等しいことを示すことにより、この署名の正当性を示すことができる。また(m,SIG')に対してSIG'≠mxであれば、この署名が偽造されたものであることが示せる。
【０００３】
このような署名システムでは、指定された演算体系において、入力された数α(上記例では、y)およびβ(上記例では、SIG)が、あらかじめ指定された２つの異なる底g,mを用いて、αの第一の底gにおける離散対数と、βの第二の底mにおける離散対数が等しい、あるいは異なることを示す証明機構と、それを確認する検証機構が必要となる。
【０００４】
[従来の技術(1)]
従来の、SIG'＝mxあるいはSIG'≠mxであることを検証者に証明するプロトコルとして、チャウム(Chaum)による方式が知られている。これは、文献「ゼロノウレッジアンディナイアブルシグネチャーズ、アドバンスインクリプトロジー、プロシーヂングオブユーロクリプト1990、エルエヌシーエス473、シュプリンガーフェアラーグ、458ページから464ページまで、1991年（Zero-knowledge undeniable signatures, Advance in Cryptology, Proceeding of Eurocrypt' 1990, LNCS473, Springer-Verlag, pp. 458-464, 1991）」（文献(1)と呼ぶ）に開示されている。しかしながら、文献(1)に記載されている、この方式は、一致を示す証明方式と不一致を示す証明方式が全く異なるものである。また、不一致を示す証明方式は、検証者が存在して初めて成り立つ証明方式であるので、証明者だけが単独で証明を生成することはできない。
【０００５】
[従来の技術(2)]
また、ミッシェルス(Michels)と(スタッドラー)Stadlerは、同じ方式を用いて、一致する場合も不一致の場合も証明できる証明方式を提案している。これは、文献「エフィシエント コンバーティブル アンディナイアブル シグネチャー スキームズ, プロシーディング オブ フォース アニュアル ワークショップ オン セレクティド エーリアズ イン クリプトグラフィ-, エスエ-シ- 97, 1997年8月(Efficient convertible undeniable signature schemes Proceeding of 4th Annual Workshop on Selected Areas in Cryptography, SAC'97, August, 1997)（文献(2)と呼ぶ）に開示されている。この方式は、証明者だけが単独で証明することもできる。しかしながら、このプロトコルは、計算量的ゼロ知識証明であるという定性的な評価がされたものでありながら、重要な情報を漏らしているという不備がある。具体的には、mxという情報が検証者の知るところとなり、「mに対して署名していない」ということを示した結果、mに対する署名をみすみす渡してしまうという矛盾した状況が生じる。
【０００６】
【発明が解決しようとする課題】
したがって、本発明が解決しようとする課題は、従来の技術(1)とは異なり、同じプロトコルを用いて離散対数の一致あるいは不一致を示すことができ、しかも従来の技術(2)ように、重要な情報を漏らすことなく、証明者だけが単独で証明することのできるプロトコルのシステム及び方法とプログラムを提供することである。
【０００７】
【課題を解決するための手段】
上記課題を解決するための手段を提供する本発明に係るシステムは、その一つのアスペクトにおいて、指定された演算体系において、入力された数αおよびβが、あらかじめ指定された２つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じあるいは異なることを示す証明機構と、それを確認する検証機構を備えた証明システムであって、前記証明機構および検証機構は前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段を保持し、前記証明機構はαの第一の底における離散対数を格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、前記乱数発生手段で発生させた前記乱数を用いて、前記αを前記乱数により冪乗させたα'、前記βを前記乱数により冪乗させたβ'、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'を出力する変数変換手段と、前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、からなり、前記検証機構は前記証明機構の入力値変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段を有し、第一の検証手段によって確認でき、なおかつβ'とγ'が等しければαの第一の底における離散対数とβの第二の底における離散対数が同じであると判定し、第一の検証手段によって確認でき、なおかつβ'とγ'が異なればαの第一の底における離散対数とβの第二の底における離散対数が異なっていると判定し、それ以外の場合は証明を受理しないと判定する判定手段とを備えている。
【０００８】
本発明は、別のアスペクトにおいて、前記証明機構は、αの第一の底における離散対数を秘密情報として格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、を備え、前記検証機構は、前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、β'とγ'が同じであることを確認する第二の検証手段と、前記第一の検証手段および前記第二の検証手段の結果により、証明を受理するか否かを判定する判定手段と、を備えている。
【０００９】
本発明は、別のアスペクトにおいて、前記証明機構は、αの第一の底における離散対数を格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、
前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明手段と、前記変数変換手段により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明手段と、を備え、前記検証機構は、前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証手段と、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証手段と、β'とγ'が異なることを確認する第三の検証手段と、前記第一の検証手段、前記第二の検証手段、および前記第三の検証手段の結果により、証明を受理するか否かを判定する判定手段と、を備えている。
【００１０】
本発明は、さらに別のアスペクトにおいて、前記証明機構は、αの第一の底における離散対数を格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、前記βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、を備え、前記検証機構は、前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、β'とγ'が異なることを確認する第二の検証手段と、前記第一の検証手段および前記第二の検証手段の結果により、証明を受理するか否かを判定する判定手段と、を備えている。
【００１１】
本発明は、さらに別のアスペクトにおいて、前記証明機構は、αの第一の底における離散対数を格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明手段と、前記変数変換手段により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明手段と、を備え、前記検証機構が、前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証手段と、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証手段と、β'とγ'を比較する比較手段と、前記第一の検証手段、前記第二の検証手段、および前記比較手段の結果により、証明を受理するか否かを判定する判定手段と、を備えている。
【００１２】
本発明は、さらに別のアスペクトにおいて、前記証明機構は、αの第一の底における離散対数を格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'、βを前記乱数により冪乗させたβ'、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'を出力する変数変換手段と、前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、を備え、前記検証機構が、前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、β'とγ'を比較する比較手段と、前記第一の検証手段及び前記比較手段の結果により、証明を受理するか否かを判定する判定手段と、を備えている。
【００１３】
【発明の実施の形態】
発明の実施の形態について説明する。この発明の実施の形態では、
p,qは素数であり、
q|(p-1)
という関係がある。また、g,h,α,βは、mod p上の位数qの群の元である。
【００１４】
［実施の形態１］
本発明の第１の実施の形態について、図１を参照しながら説明する。
【００１５】
証明機構100と、検証機構150は、それぞれの公開情報格納手段102、151に、
p,q,g,h,α,β
を格納している。p,qは演算体系を示し、g,hは第一、第二の底、α,βは入力された数である。
【００１６】
証明機構100は、秘密情報格納手段103に、
α=gx mod p
となるような秘密情報ｘ（ｘ=logｇα  ；αの第一の底ｇに対する離散対数）を格納している。
証明機構100は、乱数発生手段101により、
r∈Z/qZ
を無作為に生成する。
【００１７】
証明機構100は、p,q,g,h,α,β,x,rを、変数変換手段104に入力し、変数変換手段104は、乱数発生手段101で発生させた乱数rを用いて、αを乱数rにより冪乗させたα'と、βを乱数rにより冪乗させたβ'と、第二の底hを秘密情報格納手段103に格納された離散対数ｘにより冪乗させ、さらに乱数rにより冪乗させたγ'とを出力する。すなわち、変数変換手段104は、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【００１８】
証明機構100は、α',β',γ'を、検証機構150に送る。
【００１９】
証明機構100の第一証明手段105は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを証明する。
【００２０】
検証機構150の第一検証手段152は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【００２１】
証明機構100の第二証明手段106は、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを証明する。
【００２２】
検証機構150の第二検証手段153は、α'の第一の底gにおける離散対数と、γ'の第二の底hにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【００２３】
検証機構150の第三検証手段154は、β'=γ'を確認すれば、検証受理と判定する。
【００２４】
判定手段155は、第一、第二および第三の検証手段152、153、154により判定された全ての検証結果が検証受理であったならば、αの底gにおける離散対数と、βの底hにおける離散対数が同じと判定し、「OK」（可）を出力する。その他の場合には、「NG」（不可）を出力する。
【００２５】
［実施の形態２］
本発明の第２の実施の形態について、図２を参照しながら説明する。
【００２６】
証明機構200と検証機構250は、それぞれの公開情報格納手段202,251に、p,q,g,h,α,βを格納している。
【００２７】
証明機構200は、秘密情報格納手段203に、
α=gx mod p
となるような秘密情報xを格納している。
【００２８】
証明機構200は、乱数発生手段201により、
r∈Z/qZ
を無作為に生成する。
【００２９】
証明機構200は、p,q,g,h,α,β,x,rを変数変換手段204に入力し、変数変換手段203では、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【００３０】
証明機構200は、α',β',γ'を検証機構250に送る。
【００３１】
証明機構200の証明手段205は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることとを証明する。
【００３２】
検証機構250の第一検証手段252は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【００３３】
検証機構250の第二検証手段254は、β'=γ'を確認すれば、検証受理と判定する。
【００３４】
判定手段255、第一252および第二の検証手段254により判定された全ての検証結果が検証受理であったならば、αの底gにおける離散対数と、βの底hにおける離散対数が同じと判定し、OKを出力する。その他の場合はNGを出力する。
【００３５】
［実施の形態３］
本発明の第３の実施の形態について、図３を参照しながら説明する。
【００３６】
証明機構300と検証機構350は、それぞれの公開情報格納手段302,351に、p,q,g,h,α,βを格納している。
【００３７】
証明機構300は、秘密情報格納手段303に、
α=gx mod p
となるような秘密情報xを格納している。証明機構300は、乱数発生手段301により、乱数
r∈Z/qZ
を無作為に生成する。
【００３８】
証明機構300は、p,q,g,h,α,β,x,rを変数変換手段304に入力し、変数変換手段304では、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【００３９】
証明機構300は、α',β',γ'を検証機構350に送る。
【００４０】
証明機構300の第一証明手段305は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを証明し、検証機構350の第一検証手段352は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【００４１】
証明機構300の第二証明手段306は、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを証明し、検証機構350の第二検証手段353は、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【００４２】
検証機構350の第三検証手段354は、β'≠γ'を確認すれば、検証受理と判定する。
【００４３】
判定手段355は、第一の検証手段352、第二の検証手段353および第三の検証手段354により判定された全ての検証結果が検証受理であったならば、αの底gにおける離散対数と、βの底hにおける離散対数が異るものと判定し、OKを出力する。その他の場合には、NGを出力する.
【００４４】
［実施の形態４］
本発明の第４の実施の形態について、図４を参照しながら説明する。
【００４５】
証明機構400と検証機構450は、それぞれの公開情報格納手段402,451に、p,q,g,h,α,βを格納している。
【００４６】
証明機構400は秘密情報格納手段403に、
α=gx mod p
となるような秘密情報xを格納している。
【００４７】
証明機構400は、乱数発生手段401により、乱数
r∈Z/qZ
を無作為に生成する。
【００４８】
証明機構400は、p,q,g,h,α,β,x,rを変数変換手段404に入力し、変数変換手段404では、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【００４９】
証明機構400は、α',β',γ'を検証機構450に送る。
【００５０】
証明機構400の証明手段405は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることとを証明し、検証機構450の第一の検証手段452は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることとを確認すれば、検証受理と判定する。
【００５１】
検証機構450の第二検証手段454は、β'≠γ'を確認すれば、検証受理と判定する。
【００５２】
判定手段455は、第一の検証手段452および第二の検証手段454により判定された全ての検証結果が検証受理であったならば、αの底gにおける離散対数と、βの底hにおける離散対数が異ると判定し、OKを出力する。その他の場合はNGを出力する。
【００５３】
［実施の形態５］
本発明の第５の実施の形態について、図５を参照しながら説明する。
【００５４】
証明機構500と、検証機構550は、それぞれの公開情報格納手段502,551にp,q,g,h,α,βを格納している。
【００５５】
証明機構500は、秘密情報格納手段503に、
α=gx mod p
となるような秘密情報xを格納している。
【００５６】
証明機構500は、乱数発生手段501により、
r∈Z/qZ
を無作為に生成する。
【００５７】
証明機構500は、p,q,g,h,α,β,x,rを変数変換手段504に入力し、変数変換手段504では、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【００５８】
証明機構500は、α',β',γ'を検証機構550に送る。
【００５９】
証明機構500の第一証明手段505は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを証明し、検証機構550の第一検証手段552は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認すれば、検証受理と判定する。証明機構500の第二証明手段506は、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを証明し、検証機構550の第二検証手段553は、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを確認すれば、検証受理と判定する。検証機構550の比較手段554は、β'とγ'を確認する。
【００６０】
判定手段555は、第一の検証手段552、第二の検証手段553により判定された全ての検証結果が検証受理であり、かつ比較手段554がβ'≠γ'と判定した場合にはαの底gにおける離散対数と、βの底hにおける離散対数が異ると判定し、β'=γ'と判定した場合には、αの底gにおける離散対数と、βの底hにおける離散対数が等しいと判定する。
【００６１】
［実施の形態６］
本発明の第６の実施の形態について、図６を参照しながら説明する。
【００６２】
証明機構600と検証機構650は、それぞれの公開情報格納手段602,651に、p,q,g,h,α,βを格納している。
【００６３】
証明機構600は、秘密情報格納手段603に、
α=gx mod p
となるような秘密情報xを格納している。
【００６４】
証明機構600は、乱数発生手段601により、
r∈Z/qZ
を無作為に生成する。
【００６５】
証明機構600は、p,q,g,h,α,β,x,rを変数変換手段604に入力し、変数変換手段604では、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【００６６】
証明機構600は、α',β',γ'を検証機構650に送る。
【００６７】
証明機構600の証明手段605は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを証明し、検証機構650の第一検証手段652は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【００６８】
検証機構650の比較手段654は、β'とγ'を確認する。
【００６９】
判定手段655は、第一の検証手段652により判定された検証結果が検証受理であり、かつ、比較手段654が、
・β'≠γ'と判定した場合には、αの底gにおける離散対数と、βの底hにおける離散対数が異ると判定し、
・β'=γ'と判定した場合には、αの底gにおける離散対数と、βの底hにおける離散対数が等しいと判定する。
【００７０】
【実施例】
上記した実施の形態についてさらに詳細に説明すべく、本発明の実施例について図面を参照して説明する。
【００７１】
本実施例では、p,qは素数であり、q|(p-1)という関係がある。また、g,h,α,βはmod p上の位数qの群の元である。
【００７２】
［実施例１］
本発明の第１の実施例について説明する。図７は、本発明の第１の実施例の構成を示す図である。図７を参照すると、証明機構700は、乱数発生手段701と、公開情報格納手段702と、秘密情報格納手段703と、変数変換手段704と、第一証明手段705と、第二証明手段709と、を備えている。第一証明手段705は、第二乱数を発生させる第二乱数発生手段706と、第二乱数発生手段で発生させた前記第二乱数を用いて、α、βを変換させる第一コミットメント手段707と、第一検証手段752が出力した第一チャレンジに対して、前記乱数（乱数発生手段701の乱数r）と前記第二乱数を用いて演算する第一レスポンス手段708と、を備えている。第二証明手段709は、第三乱数を発生させる第三乱数発生手段710と、第三乱数発生手段で発生させた前記第三乱数を用いて、α、βを変換させる第二コミットメント手段711と、第二検証手段755が出力した第二チャレンジに対して、前記乱数と前記第三乱数を用いて演算する第二レスポンス手段712と、を備えている。公開情報格納手段702と、秘密情報格納手段703は、記憶装置から構成される。その他の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。
【００７３】
検証機構750は、公開情報格納手段751と、第一検証手段752と、第二検証手段755と、第三検証手段758と、判定手段759を備えている。第一検証手段752は、第一コミットメント手段707の出力を受信したのち、第一チャレンジを生成する第一チャレンジ手段753と、前記第一レスポンス手段708の出力が、第一コミットメント手段707の出力及び第一チャレンジ手段753の出力と一貫性があるか否かを確認する第二判定手段754と、を備えている。第二検証手段755は、第二コミットメント手段711の出力を受信したのち、第二チャレンジを生成する第二チャレンジ手段756と、第二レスポンス手段712の出力が、第二コミットメント手段711の出力及び第二チャレンジ手段756の出力と一貫性があるか否かを確認する第三判定手段757と、を備えている。公開情報格納手段751は記憶装置から構成される。その他の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【００７４】
証明機構700と検証機構750は、それぞれの公開情報格納手段702,751にp,q,g,h,α,βを格納している。
【００７５】
証明機構700は、秘密情報格納手段703に、
α=gx mod p
となるような秘密情報x（αのｇに対する離散対数）を格納している。
【００７６】
なお、公開情報格納手段702,751に格納されているp,q,g,h,α,βは、変数変換手段704、第一証明手段705、第二証明手段709、第一検証手段752、第二検証手段755、および第三検証手段758により参照される。
【００７７】
また、秘密情報格納手段703に格納されているxは、第一証明手段705および第二証明手段709により参照される。
【００７８】
証明機構700は、乱数発生手段701により、乱数
r∈Z/qZ
を無作為に生成する。
【００７９】
証明機構700は、p,q,g,h,α,β,x,rを変数変換手段704に入力し、変数変換手段704では、
α'=αr, β'=βr, γ'=hxr
を計算する。
【００８０】
証明機構700は、α',β',γ'を検証機構750に送る。
【００８１】
α',β',γ'は、第一証明手段705、第二証明手段709、第一検証手段752、第二検証手段755、および第三検証手段758により参照される。
【００８２】
第一証明手段705では、第二乱数発生手段706により、第二乱数
s[1]∈Z/qZ
を発生させる。
【００８３】
第一証明手段705の第一コミットメント手段707において、第二乱数s[1]を用いて、第一コミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p
を計算し、第一コミットメントv[1]、v[2]を、検証機構750の第一検証手段752に送る。
【００８４】
第一検証手段752は、第一コミットメントv[1]、v[2]を受信したのち、第一チャレンジ手段753において、無作為に第一チャレンジ
c[1]∈Z/qZ
を生成し、生成した第一チャレンジc[1]を証明機構700の第一証明手段705に送る。
【００８５】
証明機構700の第一証明手段705は、第一チャレンジc[1]を受信したのち、第一レスポンス手段708において、第一レスポンス
t[1]=s[1]+rc[1] mod q
を計算し、計算した第一レスポンスt[1]を、検証機構750の第一検証手段752に送る。
【００８６】
第一検証手段752では、第一レスポンスを受信したのち、第二判定手段754において
v[1]α'c=αt[1]mod p,
v[2]β'c=βt[1]mod p
を確認すれば、検証受理と判定する。
【００８７】
第二証明手段709は、第三乱数発生手段710により、第三乱数
s[2]∈Z/qZ
を発生させる。
【００８８】
第二証明手段709は、第二コミットメント手段711において、第三乱数s[2]を用いて、第二コミットメント
v[3]=gs[2]mod p,
v[4]=hs[2]mod p
を計算し、第二コミットメントv[3],v[4]を、検証機構750の第二検証手段755に送る。
【００８９】
第二検証手段755は、第二コミットメントv[3]、v[4]を受信したのち、第二チャレンジ手段756において、無作為に、第二チャレンジ
c[2]∈Z/qZ
を生成し、生成した第二チャレンジc[2]を証明機構700の第二証明手段709に送る。
【００９０】
第二証明手段709は、第二チャレンジをc[2]を受信したのち、第二レスポンス手段712において、第二レスポンス
t[2]=s[2] + x r c[2] mod q
を計算し、計算した第二レスポンスt[2]を検証機構750の第二検証手段755に送る。
【００９１】
第二検証手段755は、第二レスポンスを受信したのち、第三判定手段757において
v[3]α'c=gt[2]mod p,
v[4]γ'c=ht[2]mod p
を確認すれば、検証受理と判定する。
【００９２】
検証機構750は、第三検証手段758において、
β'=γ'を確認すれば、検証受理と判定する。
【００９３】
検証機構750は、判定手段759において、三つの検証手段により判定された検証結果が全て検証受理であったならば、OK（可）を出力する。その他の場合はNG（不可）を出力する。
【００９４】
なお、α',β',γ'は、v[1],v[2]と同時に送っても良く、また、v[1],v[2]と、v[3],v[4]を同時に送った後、c[1],c[2]を同時に送り、その後にt[1],t[2]を同時に送っても良い。
【００９５】
本実施例は、離散対数の一致を示すゼロ知識証明方式であるが、検証機構の第三検証手段758において、β'=γ'の代わりに、β’≠γ'を確認することにより検証受理と判定するならば、この場合の実施例は、離散対数の不一致を示すゼロ知識証明方式となる。
【００９６】
本実施例の変形例において、第三検証手段758を、次のような比較手段に置き換えてもよい。図１８は、この変形例の構成を示す図である。図１８を参照して、この実施例の変形例について説明する。
【００９７】
検証機構750の比較手段1858において、β'とγ'を比較し、判定手段1859において、第一検証手段752、第二検証手段755により判定された検証結果が全て検証受理であることを確認したのち、
・比較手段1858が、β'=γ'と判定すれば、判定手段1859は、離散対数が一致と判定し、
・比較手段1858が、β’≠γ'と判定すれば、判定手段1859は、離散対数が不一致と判定する。
【００９８】
図７の第三検証手段758を、比較手段1858に置き換えた本実施例（図１８参照）は、離散対数の一致または不一致を示すゼロ知識証明方式となる。
【００９９】
［実施例２］
次に、本発明の第２の実施例について説明する。本発明の第２の実施例は、図７における第一証明手段705と第一検証手段752を別の構成で実現したものである。図８は、本発明の第２の実施例の構成の要部を示す図である。なお、以下に説明する本発明の第２の実施例において、証明機構800の第一証明手段801と、検証機構850の第一検証手段851以外の構成は、図７に示したものと同様とされる。
【０１００】
図８を参照すると、第一証明手段801は、第一検証手段851が出力した第一チャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二乱数発生手段802と、第二乱数発生手段802で発生させた第二乱数を用いて、α、βを変換させる第一コミットメント手段803と、第一検証手段851が出力した第一チャレンジを受信したのち、第一チャレンジ準備の正当性を確認し、前記乱数（図７の乱数発生手段701で発生させた乱数r）と前記第二乱数と前記第三乱数を用いて第一レスポンスを演算する第一のレスポンス手段804と、を備えている。第一検証手段851は、第四乱数を発生させる第三乱数発生手段852と、第三乱数発生手段852で発生させた前記第四乱数を用いて、前記第一のチャレンジ準備を生成する第一チャレンジ準備手段853と、第二乱数発生手段802で発生させた前記第三乱数、及び、前記コミットメント手段803の出力を受信したのち、第四乱数を用いて第一チャレンジを生成する第一チャレンジ手段854と、第一レスポンス手段804の出力が、第一コミットメント手段803の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二判定手段855と、を備えている。以下に本実施例の動作を説明する。第一証明手段801、第一検証手段851の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。
【０１０１】
検証機構850の第一検証手段851は、第三乱数発生手段852により、第四乱数
a[1],b[1]∈Z/qZ
を生成させる。
【０１０２】
第一検証手段851は、第一チャレンジ準備手段853により、第四乱数を用いて、第一チャレンジ準備
A[1]=ga[1]αb[1]mod p
を計算し、第一チャレンジ準備A[1]を証明機構800の第一証明手段801に送る。
【０１０３】
第一証明手段801は、第二乱数発生手段802により、第二乱数
s[1]∈Z/qZ
と、第三乱数
w[1]∈Z/qZ
を発生させる。
【０１０４】
第一証明手段801は、第一コミットメント手段803により、第一コミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p
を計算する。
【０１０５】
第一証明手段801は、第一チャレンジ準備を受信したのち、第三乱数w[1]と、第一コミットメントv[1],v[2]を、第一検証手段851に送る。
【０１０６】
第一検証手段851は、第三乱数w[1]と、第一コミットメントv[1],v[2]を受信したのち、第一チャレンジ手段854により、第四乱数a[1]、b[1]を、第一チャレンジとして、第一証明手段801に送る。
【０１０７】
第一証明手段801は、第一レスポンス手段804により、
A[1]=gａ[1]αb[1]mod p
が成り立つことを確認する。
【０１０８】
上記等式が成り立たない場合は、証明を終了する。
【０１０９】
第一証明手段801は、第一レスポンス手段804により、第一レスポンス
t[1]=s[1] + r(a[1]+w[1]) mod q
を計算し、計算した第一レスポンスt[1]を第一検証手段851に送る。
【０１１０】
第一検証手段851は、第二判定手段855により、
v[1]α'{a[1]+w[1]}=αt[1]mod p,
v[2]β'{a[1]+w[1]}=βt[1]mod p
を確認すれば、検証受理と判定する。
【０１１１】
［実施例３］
本発明の第３の実施例について説明する。図９は、本発明の第３の実施例の構成を示す図である。本発明の第３の実施例は、図７における第一証明手段705と第一検証手段752を別の構成で実現したものである。なお、以下に説明する本発明の第３の実施例において、第一証明手段901と第一検証手段951以外の構成は、図７に示したものと同様とされる。
【０１１２】
図９を参照すると、第一証明手段901は、第二乱数を発生させる第二乱数発生手段902と、第二乱数発生手段902で発生させた前記第二乱数を用いて、前記α、βを変換させる第一コミットメント手段903と、第一コミットメント手段903の出力から第一の自動チャレンジを生成する第一自動チャレンジ手段904と、第一自動チャレンジ手段904が出力した第一自動チャレンジに対して、前記乱数（図７の乱数発生手段701で発生させた乱数r）と前記第二乱数を用いて第一レスポンスを演算する第一レスポンス手段905と、第一コミットメント手段903の出力である第一コミットメントと、第一レスポンス手段905の出力である第一レスポンスを第一の証明文として出力する第一証明文出力手段906と、を備えている。第一検証手段951は、第一証明文出力手段906の出力に含まれる第一コミットメントから第一の自動チャレンジを生成する第一自動チャレンジ手段952と、第一レスポンス手段905の出力が、第一コミットメント手段903の出力、第一自動チャレンジ手段904の出力と一貫性があるか否かを確認する第二判定手段953と、を備えている。第一証明手段901、第一検証手段951の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【０１１３】
証明機構900の第一証明手段901は、第二乱数発生手段902により、第二乱数
s[1]∈Z/qZ
を発生させる。
【０１１４】
第一証明手段901は、第一コミットメント手段903により、第一コミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p
を計算する。
【０１１５】
第一証明手段901は、第一自動チャレンジ手段904により、
第一自動チャレンジ
c[1](∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[1],v[2])
を計算する。ここで、Hashとは「ハッシュ関数」と呼ばれる一方向性関数のことであり、「SHA-1」等が知られている。
【０１１６】
第一証明手段901は、第一レスポンス手段905により、第一レスポンス
t[1]=s[1]+rc[1] mod q
を計算する。
【０１１７】
第一証明手段901は、第一証明文出力手段906により、上記のように生成された(v[1],v[2],t[1])を証明文とし、検証機構950の第一検証手段951に送る。
【０１１８】
検証機構950の第一検証手段951は、第一自動チャレンジ手段952により、第一自動チャレンジ
c'[1](∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[1],v[2])
を計算する。
【０１１９】
第一検証手段951は、第二判定手段953により、
v[1]α'c'[1]=αt[1]mod p,
v[2]β'c'[1]=βt[1]mod p
を確認すれば、検証受理と判定する。
【０１２０】
［実施例４］
本発明の第４の実施例について説明する。図１０は、本発明の第４の実施例の構成を示す図である。本発明の第４の実施例は、図７における第一証明手段705と第一検証手段752を別の構成で実現したものである。なお、以下に説明する本発明の第４の実施例において、第一証明手段1001と第一検証手段1051以外の構成は、図７に示したものと同様とされる。
【０１２１】
図１０を参照すると、第一証明手段1001が、第二乱数を発生させる第二乱数発生手段1002と、第二乱数発生手段1002で発生させた前記第二乱数を用いて、前記α、β変換させる第一コミットメント手段1003と、第一コミットメント手段1003の出力から第一自動チャレンジを生成する第一自動チャレンジ手段1004と、第一自動チャレンジ手段1004が出力した第一自動チャレンジに対して、前記乱数（図７の乱数発生手段701で発生させた乱数r）と前記第二乱数を用いて第一レスポンスを演算する第一レスポンス手段1005と、第一自動チャレンジ手段1004の出力である第一自動チャレンジと第一レスポンス手段1005の出力である第一レスポンスを第一証明文として出力する第一証明文出力手段1006と、を備えている。第一検証手段1051は、第一証明文出力手段1006の出力した第一証明文に含まれる第一自動チャレンジと第一レスポンスが一貫性があるか否かを確認する第二の判定手段1053を備えている。第一証明手段1001、第一検証手段1051の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【０１２２】
証明機構1000の第一証明手段1001は、第二乱数発生手段1002により、第二乱数
s[1]∈Z/qZ
を発生させる。
【０１２３】
第一証明手段1001は、第一コミットメント手段1003により、第一コミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p
を計算する。
【０１２４】
第一証明手段1001は、第一自動チャレンジ手段1004により、第一自動チャレンジ
c[1](∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[1],v[2])
を計算する。
【０１２５】
第一証明手段1001は、第一レスポンス手段1005により、第一レスポンス
t[1]=s[1]+rc[1] mod q
を計算する。
【０１２６】
第一証明手段1001は、第一証明文出力手段1006により、上記のように生成された(c[1],t[1])を証明文とし、検証機構1050の第一検証手段1051に送る。
【０１２７】
検証機構1050の第一検証手段1051は、第二判定手段1053により、
c[1]=Hash(p,q,g,h,α,β,α',β',γ', αt[1]/α'c mod p, βt[1]/β'c mod p)
を確認すれば、検証受理と判定する。
【０１２８】
[実施例５]
本発明の第５の実施例について説明する。図１１は、本発明の第５の実施例の構成を示す図である。本発明の第５の実施例は、図７における第二証明手段709と第二検証手段755を別の構成で実現したものである。なお、以下に説明する本発明の第５の実施例において、第二証明手段1101と第二検証手段1151以外の構成は、図７に示したものと同様とされる。
【０１２９】
図１１を参照すると、第二証明手段1101は、第二検証手段1151が出力した第二のチャレンジ準備を受信したのち、第五乱数及び第六乱数を発生させる第四乱数発生手段1102と、第四乱数発生手段1102で発生させた前記第五乱数を用いて、前記第一の底,第二の底を変換させる第二コミットメント手段1103と、第二検証手段1151が出力した第二チャレンジを受信したのち、前記第二チャレンジ準備の正当性を確認し,前記乱数（図７の乱数発生手段701で発生させた乱数r）と前記第五乱数と前記第六乱数を用いて第二のレスポンスを演算する第二レスポンス手段1104と、を備えている。第二の検証手段1151は、第七乱数を発生させる第五の乱数発生手段1152と、第五乱数発生手段1152で発生させた前記第七の乱数を用いて、前記第二のチャレンジ準備を生成する第二チャレンジ準備手段1153と、第五乱数発生手段1152で発生させた前記第六乱数及び,前記第二のコミットメント手段の出力を受信したのち、第七乱数を用いて第二のチャレンジを生成する第二チャレンジ手段1154と、第二レスポンス手段1104の出力が、前記第二コミットメント手段1103の出力、第七乱数および第六乱数と一貫性があるか否かを確認する第三の判定手段1155と、を備えている。第二証明手段1101、第二検証手段1151の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【０１３０】
検証機構1150の第二検証手段1151は、第五乱数発生手段1152により、第七乱数
a[2],b[2]∈Z/qZ
を生成させる。
【０１３１】
第二検証手段1151は、第二チャレンジ準備手段1153により、第七乱数を用いて第二チャレンジ準備
A[2]=ga[2]αb[2]mod p
を計算し、第二チャレンジ準備A[2]を証明機構1100の第二証明手段1101に送る。
【０１３２】
第二証明手段1101は、第四乱数発生手段1102により、第五乱数
s[2]∈Z/qZと、
第六乱数
w[2]∈Z/qZ
を発生させる。
【０１３３】
第二証明手段1101は、第二コミットメント手段1103により、第二コミットメント
v[3]=gｓ[2]mod p,
v[4]=hｓ[2]mod p
を計算する。
【０１３４】
第二証明手段1101は、第二チャレンジ準備を受信したのち、第六乱数w[2]と第二コミットメントv[3],v[4]を、第二検証手段1151に送る。
【０１３５】
第二検証手段1151は、第六乱数w[2]と第二コミットメントv[3],v[4]を受信したのち、第二チャレンジ手段1154により、第七乱数a[2],b[2]を、第二チャレンジとして第二証明手段1101に送る。
【０１３６】
第二証明手段1101は、第二レスポンス手段1104により、
A[2]=ga[2]αb[2]mod p
が成り立つことを確認する。
【０１３７】
上記等式が成り立たない場合は、証明を終了する。
【０１３８】
第二証明手段1101は、第二レスポンス手段1104により、第二レスポンス
t[2]=s[2] + x r(a[2]+w[2])mod q
を計算し、第二レスポンスt[2]を第二検証手段1151に送る。
【０１３９】
第二検証手段1151は、第三判定手段1155により、
v[3]α'{a[2]+w[2]}=gt[2]mod p,
v[4]γ'{a[2]+w[2]}=ht[2]mod p
を確認すれば、検証受理と判定する。
【０１４０】
［実施例６］
本発明の第６の実施例について説明する。図１２は、本発明の第６の実施例の構成を示す図である。本発明の第６の実施例は、図７における第二証明手段709と第二検証手段755を別の構成で実現したものである。なお、以下に説明する本発明の第６の実施例において、第二証明手段1201と第二検証手段1251以外の構成は、図７に示したものと同様とされる。
【０１４１】
図１２を参照すると、第二証明手段1201は、第三乱数を発生させる第三乱数発生手段1202と、第三乱数発生手段1202で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二コミットメント手段1203と、第二コミットメント手段1203の出力から第二の自動チャレンジを生成する第二自動チャレンジ手段1204と、第二自動チャレンジ手段1204が出力した第二自動チャレンジに対して前記乱数と前記第三乱数を用いて第二レスポンスを演算する第二レスポンス手段1205と、第二コミットメント手段1203の出力である第二コミットメントと第二レスポンス手段1205の出力である第二のレスポンスを、第二証明文として出力する第二証明文出力手段1206と、を備えている。第二の検証手段1251は、第二証明文出力手段1206の出力に含まれる第二コミットメントから第二自動チャレンジを生成する第二自動チャレンジ手段1252と、第二レスポンス手段1205の出力が、前記第二コミットメント手段1203の出力、第二自動チャレンジ手段1204の出力と一貫性があるか否かを確認する第三の判定手段1253と、を備えている。第二証明手段1201、第二検証手段1251の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【０１４２】
証明機構1200の第二証明手段1201は、第三乱数発生手段1202により、第三乱数
s[2]∈Z/qZ
を発生させる。
【０１４３】
第二証明手段1201は、第二コミットメント手段1203により、第二コミットメント
v[3]=gs[2]mod p,
v[4]=hs[2]mod p
を計算する。
【０１４４】
第二証明手段1201は、第二自動チャレンジ手段1204により、第二自動チャレンジ
c[2](∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[3],v[4])
を計算する。
第二証明手段1201は、第二レスポンス手段1205により、第二レスポンス
t[2]=s[2]+xrc[2]mod q
を計算する。
【０１４５】
第二証明手段は1201、第二証明文出力手段1206により、上記のように生成された(v[3],v[4],t[2])を証明文とし、検証機構1250の第二検証手段1251に送る。
【０１４６】
検証機構1250の第二検証手段1251は、第二自動チャレンジ手段1252により、第二自動チャレンジ
c'[2](∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[3],v[4])
を計算する。
【０１４７】
第二検証手段1251は、第三判定手段1253により、
v[3]α'c'[2]=gt[2]mod p,
v[4]γ'c'[2]=ht[2]mod p
を確認すれば、検証受理と判定する。
【０１４８】
［実施例７］
本発明の第７の実施例について説明する。図１３は、本発明の第７の実施例の構成を示す図である。本発明の第７の実施例は、図７における第二証明手段709と第二検証手段755を別の構成で実現したものである。なお、以下に説明する本発明の第７の実施例において、第二証明手段1301と第二検証手段1351以外の構成は、図７に示したものと同様とされる。
【０１４９】
図１３を参照すると、第二証明手段1301は、第三乱数を発生させる第三乱数発生手段1302と、第三乱数発生手段1302で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二コミットメント手段1303と、前記第二コミットメント手段1303の出力から第二の自動チャレンジを生成する第二自動チャレンジ手段1304と、第二自動チャレンジ手段1304が出力した第二自動チャレンジに対して前記乱数（図７の乱数発生手段701で発生させた乱数ｒ）と前記第三乱数を用いて第二のレスポンスを演算する第二レスポンス手段1305と、第二自動チャレンジ手段1304の出力である第二自動チャレンジと、第二のレスポンス手段1305の出力である第二レスポンスを、第二証明文として出力する第二証明文出力手段1306と、を備えている。第二の検証手段1351は、第二証明文出力手段1306の出力した第二証明文に含まれる第二自動チャレンジと第二レスポンスが一貫性があるか否かを確認する第三判定手段1353を備えている。第二証明手段1301、第二検証手段1351の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【０１５０】
証明機構1300の第二証明手段1301は、第三乱数発生手段1302により、第三乱数
s[2]∈Z/qZ
を発生させる。
【０１５１】
第二証明手段1301は、第二コミットメント手段1303により、第二コミットメント
v[3]=gs[2]mod p,
v[4]=hs[2]mod p
を計算する。
【０１５２】
第二証明手段1301は、第二自動チャレンジ手段1304により、第二自動チャレンジ
c[2](∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[3],v[4])
を計算する。
第二証明手段1301は、第二レスポンス手段1305により、第二レスポンス
t[2]=s[2]+xrc[2]mod q
を計算する。
【０１５３】
第二証明手段1301は、第二証明文出力手段1306により、上記のように生成された(c[2],t[2])を証明文とし、検証機構1350の第二検証手段1351に送る。
【０１５４】
検証機構1350の第二検証手段1351は、第三判定手段1353により、
c[2]=Hash(p,q,g,h,α,β,α',β',γ', gt[2]/α'c[2]mod p, ht[2]/γ'c[2]mod p)
を確認すれば、検証受理と判定する。
【０１５５】
［実施例８］
本発明の第８の実施例について説明する。図１４は、本発明の第８の実施例の構成を示す図である。図１４を参照すると、本発明の第８の実施例において、証明機構1400は、乱数発生手段1401と、公開情報格納手段1402と、秘密情報格納手段1403と、変数変換手段1404と、証明手段1405とを備え、証明手段1405は、第二乱数を発生させる第二乱数発生手段1406と、第二乱数発生手段1406で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段1407と、第一検証手段1452が出力したチャレンジに対して前記乱数と前記第二乱数を用いて演算するレスポンス手段1408と、を備えている。検証機構1450は、公開情報格納手段1451と、第一検証手段1452、第二検証手段1458、判定手段1459を備え、第一検証手段1452は、前記コミットメント手段1407の出力を受信したのち、チャレンジを生成するチャレンジ手段1453と、レスポンス手段1408の出力が、前記コミットメント手段の出力、及び前記チャレンジ手段の出力と一貫性があるか否かを確認する第二判定手段1454とを備えている。公開情報格納手段1402と、秘密情報格納手段1403、公開情報格納手段1451は記憶装置で構成される。これ以外の証明機構、検証機構の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。図１４を参照して、本実施例の動作について説明する。
【０１５６】
証明機構1400と検証機構1450は、それぞれの公開情報格納手段1402、1451に、p,q,g,h,α,βを格納している。
【０１５７】
証明機構1400は秘密情報格納手段1403に、
α=gx mod p
となるような秘密情報xを格納している。
【０１５８】
なお、公開情報格納手段1402,1451に格納されているp,q,g,h,α,βは、変数変換手段1404、証明手段1405、第一検証手段1452および第二検証手段1458により参照される。
【０１５９】
また、秘密情報格納手段1403に格納されているxは、証明手段1405により参照される。
【０１６０】
証明機構1400は、乱数発生手段1401により乱数
r∈Z/qZ
を無作為に生成する。
【０１６１】
証明機構1400は、p,q,g,h,α,β,x,rを変数変換手段1404に入力し、
α'=αr, β'=βr, γ'=hxr
を計算する。
【０１６２】
証明機構1400はα',β',γ'を検証機構1450に送る。
【０１６３】
α',β',γ'は証明手段1405、第一検証手段1452および、第二検証手段1458により参照される。
【０１６４】
証明手段1405は、第二乱数発生手段1406により第二乱数
s[1],s[2]∈Z/qZ
を発生させる。
【０１６５】
証明手段1405は、コミットメント手段1407において、第二乱数s[1],s[2]を用いてコミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p,
v[3]=gs[2]mod p,
v[4]=hs[2]mod p
を計算し、コミットメントv[1],v[2],v[3],v[4]を検証機構1450の第一検証手段1452に送る。
【０１６６】
第一検証手段1452は、コミットメントv[1],v[2],v[3],v[4]を受信したのち、チャレンジ手段1453において、無作為にチャレンジc∈Z/qZを生成し、証明機構1400の証明手段1405に送る。
【０１６７】
証明手段1405は、チャレンジcを受信したのち、レスポンス手段1408において、レスポンス
t[1]=s[1]+rc mod qと、
t[2]=s[2]+xrc mod q
を計算し、計算したレスポンスt[1],t[2]を、検証機構1450の第一検証手段1452に送る。
【０１６８】
第一検証手段1452は、第一レスポンスを受信したのち、第二判定手段1454において
v[1]α'c=αt[1]mod p,
v[2]β'c=βt[1]mod p,
v[3]α'c=gt[2]mod p,
v[4]γ'c=ht[2]mod p
を確認すれば、検証受理と判定する。
【０１６９】
検証機構1450は、第二検証手段1458において、β'=γ'を確認すれば、検証受理と判定する。
【０１７０】
検証機構1450は、判定手段1459において、二つの検証手段により判定された検証結果が全て検証受理であったならば、OKを出力する。その他の場合はNGを出力する。
【０１７１】
なお、α',β',γ'はv[1],v[2],v[3],v[4]と同時に送っても良い。
【０１７２】
本実施例は、離散対数の一致を示すゼロ知識証明方式であるが、検証機構1450の第二検証手段1458において、β'=γ'の代わりに、β’≠γ'を確認することにより検証受理と判定するならば、本実施例は、離散対数の不一致を示すゼロ知識証明方式となる。
【０１７３】
本実施例の変形例について説明する。図１９は、本実施例の変形例を示す図である。図１９を参照すると、この変形例は、本実施例の第二検証手段1458を、次のような比較手段1958に置き換えものである。
【０１７４】
検証機構1450の比較手段1958において、β'とγ'を比較し、判定手段1959において、第一検証手段1452により判定された検証結果が検証受理であることを確認したのち、比較手段1958が、β'=γ'と判定すれば、判定手段1959は離散対数が一致と判定し、比較手段1958が、β’≠γ'と判定すれば、判定手段1959は離散対数が不一致と判定する。
【０１７５】
図１４の第二検証手段1458を比較手段1958に置き換えた本実施例は、離散対数の一致または不一致を示すゼロ知識証明方式となる。
【０１７６】
［実施例９］
次に、本発明の第９の実施例について説明する。図１５は、本発明の第９の実施例の構成を示す図である。本発明の第９の実施例は、図１４における証明手段1405と第一検証手段1452を別の構成としたものである。なお、以下に説明する本発明の第９の実施例において、証明手段1501と第一検証手段1551以外の構成は、図１４に示したものと同様とされる。
【０１７７】
図１５を参照すると、証明手段1501は、第一検証手段1551が出力したチャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二乱数発生手段1502と、第二乱数発生手段1502で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段1503と、第一検証手段1551が出力したチャレンジを受信したのち、前記チャレンジ準備の正当性を確認し、前記乱数（図１４の乱数発生手段1401で発生させた乱数r）と前記第二乱数と前記第三乱数とを用いてレスポンスを演算するレスポンス手段1504と、を備えている。第一検証手段1551は、第四乱数を発生させる第三乱数発生手段1552と、前記第三乱数発生手段1552で発生させた前記第四乱数を用いて、前記チャレンジ準備を生成するチャレンジ準備手段1553と、第二乱数発生手段1502で発生させた前記第三乱数、及び、前記コミットメント手段1503の出力を受信したのち、第四乱数を用いてチャレンジを生成するチャレンジ手段1554と、レスポンス手段1504の出力が、前記コミットメント手段1503の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二判定手段1555と、を備えている。証明手段1501、第一検証手段1551の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【０１７８】
検証機構1550の第一検証手段1551は、第三乱数発生手段1552により、第四乱数
a,b∈Z/qZ
を生成させる。
【０１７９】
第一検証手段1551は、チャレンジ準備手段1553により、第四乱数を用いてチャレンジ準備
A=gaαbmod p
を計算し、証明機構1500の証明手段1501に送る。
【０１８０】
証明手段1501は、第二乱数発生手段1502により第二乱数
s[1],s[2]∈Z/qZ
と、
第三乱数
w∈Z/qZ
を発生させる。
【０１８１】
証明手段1501は、コミットメント手段1503により、コミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p,
v[3]=gs[2]mod p,
v[4]=hs[2]mod p
を計算する。
【０１８２】
証明手段1501は、チャレンジ準備を受信したのち、第三乱数wと、コミットメントv[1],v[2],v[3],v[4]を、第一検証手段1551に送る。
【０１８３】
第一検証手段1551は、第三乱数wと、コミットメントv[1],v[2],v[3],v[4]を受信したのち、チャレンジ手段1554により、第四乱数a,bをチャレンジとして証明手段1501に送る。
【０１８４】
証明手段1501は、レスポンス手段1504により、
A=gaαbmod p
が成り立つことを確認する。
【０１８５】
等式が成り立たない場合は、証明を終了する。
【０１８６】
証明手段1501は、レスポンス手段1504により、レスポンス
t[1]=s[1]+r(a+w)mod q，
t[2]=s[2]+xr(a+w)mod q
を計算し、レスポンスt[1],t[2]を第一検証手段1551に送る。
【０１８７】
第一検証手段1551は、第二判定手段1555により、
v[1]α'{a+w}=αt[1]mod p,
v[2]β'{a+w}=βt[1]mod p,
v[3]α'{a+w}=gt[2]mod p,
v[4]γ'{a+w}=ht[2]mod p
を確認すれば、検証受理と判定する。
【０１８８】
［実施例１０］
次に、本発明の第１０の実施例について説明する。図１６は、本発明の第１０の実施例の構成を示す図である。本発明の第１０の実施例は、図１４における証明手段1405と第一検証手段1452を別の構成としたものである。なお、以下に説明する本発明の第１０の実施例において、証明手段1601と第一検証手段1651以外の構成は、図１４に示したものと同様とされる。
【０１８９】
図１６を参照すると、証明手段1601は、第二乱数を発生させる第二乱数発生手段1602と、第二乱数発生手段1602で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段1603と、前記コミットメント手段1603の出力から自動チャレンジを生成する自動チャレンジ手段1604と、自動チャレンジ手段1604が出力した自動チャレンジに対して前記乱数（図１４の乱数発生手段1401で発生させた乱数r）と前記第二乱数を用いてレスポンスを演算するレスポンス手段1605と、前記コミットメント手段1603の出力であるコミットメントとレスポンス手段1605の出力であるレスポンスを証明文として出力する証明文出力手段1606と、を備えている。第一検証手段1651は、前記証明文出力手段1606の出力に含まれるコミットメントから自動チャレンジを生成する自動チャレンジ手段1652と、レスポンス手段1605の出力が、前記コミットメント手段1603の出力、自動チャレンジ手段1604の出力と一貫性があるか否かを確認する第二判定手段1653と、を備えている。証明手段1601、第一検証手段1651の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【０１９０】
証明機構1600の証明手段1601は、第二乱数発生手段1602により、
第二乱数
s[1],s[2]∈Z/qZ
を発生させる。
【０１９１】
証明手段1601は、コミットメント手段1603により、コミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p,
v[3]=gs[2]mod p,
v[4]=hs[2]mod p
を計算する。
【０１９２】
証明手段1601は、自動チャレンジ手段1604により、自動チャレンジ
c(∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[1],v[2],v[3],v[4])
を計算する。
証明手段1601は、レスポンス手段1605により、レスポンス
t[1]=s[1]+rc mod q
と
t[2]=s[2]+xrc mod q
を計算する。
【０１９３】
証明手段1601は、証明文出力手段1606により、上記のように生成された(v[1],v[2],v[3],v[4],t[1],t[2])を証明文とし、検証機構1650の第一検証手段1651に送る。
【０１９４】
検証機構1650の第一検証手段1651は、自動チャレンジ手段1652により、自動チャレンジ
c'(∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[1],v[2],v[3],v[4])
を計算する。
【０１９５】
第一検証手段1651は、第二判定手段1653により、
v[1]α'c'=αt[1]mod p,
v[2]β'c'=βt[1]mod p,
v[3]α'c'=gt[2]mod p,
v[4]γ'c'=ht[2]mod p
を確認すれば、検証受理と判定する。
【０１９６】
［実施例１１］
次に、本発明の第１１の実施例について説明する。図１７は、本発明の第１１の実施例の構成を示す図である。本発明の第１１の実施例は、図１４における証明手段1405と第一検証手段1452を別の構成で実現したものである。なお、以下に説明する本発明の第１１の実施例において、証明手段1701と第一検証手段1751以外の構成は、図１４に示したものと同様とされる。
【０１９７】
図１７を参照すると、証明手段1701は、第二乱数を発生させる第二乱数発生手段1702と、第二乱数発生手段1702で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段1703と、前記コミットメント手段1703の出力から生成される自動チャレンジを生成する自動チャレンジ手段1704と、自動チャレンジ手段1704が出力した自動チャレンジに対して前記乱数（図１４の乱数発生手段1401で発生させた乱数r）と前記第二乱数とを用いてレスポンスを演算するレスポンス手段1705と、自動チャレンジ手段1704の出力した自動チャレンジと、前記レスポンス手段1705のレスポンスを証明文として出力する証明文出力手段1706と、を備えている。第一検証手段1751は、証明文出力手段1706の出力した証明文に含まれる自動チャレンジとレスポンスが一貫性があるか否かを確認する第二判定手段1753を備えている。証明手段1701、第一検証手段1751の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。図１７を参照して、本実施例の動作について説明する。
【０１９８】
証明機構1700の証明手段1701は、第二乱数発生手段1702により、第二乱数
s[1],s[2]∈Z/qZ
を発生させる。
【０１９９】
証明手段1701は、コミットメント手段1703により、コミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p,
v[3]=gs[2]mod p,
v[4]=hs[2]mod p
を計算する。
【０２００】
証明手段1701は、自動チャレンジ手段1704により、自動チャレンジ
c(∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[1],v[2],v[3],v[4])
を計算する。
証明手段1701は、レスポンス手段1705により、レスポンス
t[1]=s[1]+rc mod q
と
t[2]=s[2]+xrc mod q
を計算する。
【０２０１】
証明手段1701は、証明文出力手段1706により、上記のように生成された(c,t[1],t[2])を証明文とし、検証機構1750の第一検証手段1751に送る。
【０２０２】
第一検証手段1751は、第二判定手段1753により、
c=Hash(p,q,g,h,α,β,α',β',γ', αt[1]/α'c mod p, βt[1]/β'c mod
p, gt[2]/α'c mod p, ht[2]/γ'c mod p)
を確認すれば、検証受理と判定する。
【０２０３】
なお、前記第２〜第４の実施例で示した第一証明手段,第一検証手段の構成と、前記第５〜７の実施例で示した第二証明手段,第二検証手段の構成について、任意の組み合わせも、上記各実施例と同様、本発明の実施例をなすことは勿論である。
【０２０４】
上記した証明機構と検証機構は、有線あるいは無線伝送等で、信号を送受して接続される装置であれば、任意の装置等に実装可能とされる。
【０２０５】
以上本発明を上記実施例に即して説明したが、本発明は、上記実施例の構成にのみ限定されるものでなく、特許請求の範囲の各請求項の発明の範囲で、当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【０２０６】
【発明の効果】
以上説明したように、本発明によれば、mod p上の位数qの群G(p,qは素数であり、q|(p-1)という関係)において、g,h,α(=gx) mod p∈G,β∈Gが与えられたとき、β≠hx mod pあるいはβ=hx mod pであることを、xや,hx mod pを示さずに、上記文献(1)と比較して、証明を効率化することができる、という効果を奏する。
【０２０７】
また、本発明によれば、上記証明を、上記文献(2)とは異り、証明者単独で証明を生成することができる、という効果を奏する。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態の構成を示す図であり、指数の一致を示すゼロ知識証明システムの詳細を示す図である。
【図２】本発明の第２の実施の形態の構成を示す図であり、指数の一致を示すゼロ知識証明方式の詳細を示す図である。
【図３】本発明の第３の実施の形態の構成を示す図であり、指数の不一致を示すゼロ知識証明方式の詳細を示す図である。
【図４】本発明の第４の実施の形態の構成を示す図であり、指数の不一致を示すゼロ知識証明方式の詳細を示す図である。
【図５】本発明の第５の実施の形態の構成を示す図であり、指数の一致または不一致を示すゼロ知識証明方式の詳細を示す図である。
【図６】本発明の第６の実施の形態の構成を示す図であり、指数の一致または不一致を示すゼロ知識証明方式の詳細を示す図である。
【図７】本発明の第１の実施例の構成を示す図であり、指数の一致を示すゼロ知識証明方式の詳細を示す図である。
【図８】本発明の第２の実施例の構成を示す図であり、第一証明手段と第一検証手段の詳細を示す図である。
【図９】本発明の第３の実施例の構成を示す図であり、第一証明手段と第一検証手段の詳細を示す図である。
【図１０】本発明の第４の実施例の構成を示す図であり、第一証明手段と第一検証手段の詳細を示す図である。
【図１１】本発明の第５の実施例の構成を示す図であり、第二証明手段と第二検証手段の詳細を示す図である。
【図１２】本発明の第６の実施例の構成を示す図であり、第二証明手段と第二検証手段の詳細を示す図である。
【図１３】本発明の第７の実施例の構成を示す図であり、第二証明手段と第二検証手段の詳細を示す図である。
【図１４】本発明の第８の実施例の構成を示す図であり、指数の一致を示すゼロ知識証明方式の詳細を示す図である。
【図１５】本発明の第９の実施例の構成を示す図であり、証明手段と第一検証手段の詳細を示す図である。
【図１６】本発明の第１０の実施例の構成を示す図であり、証明手段と第一検証手段の詳細を示す図である。
【図１７】本発明の第１１の実施例の構成を示す図であり、証明手段と第一検証手段の詳細を示す図である。
【図１８】図７における第三検証手段を比較手段とした場合の構成を示す図である。
【図１９】図１４における第二検証手段を比較手段とした場合の構成を示す図である。
【符号の説明】
１００、２００、３００、４００、５００、６００、７００、８００、９００、１０００、１１００、１２００、１３００、１４００、１５００、１６００、１７００  証明機構
１０１、２０１、３０１、４０１、５０１、６０１、７０１、１４０１  乱数発生手段
１０２、１５１、２０２、２５１、３０２、３５１、４０２、４５１、５０２、５５１、６０２、６５１、７０２、７５１、１４０２、１４５１  公開情報格納手段
１０３、２０３、３０３、４０３、５０３、６０３、７０３、１４０３  秘密情報格納手段
１０４、２０４、３０４、４０４、５０４、６０４、７０４、１４０４  変数変換手段
１０５、３０５、５０５、７０５、８０１、９０１、１００１  第一証明手段
１０６、３０６、５０６、７０９、１１０１、１２０１、１３０１  第二証明手段
１５０、２５０、３５０、４５０、５５０、６５０、７５０、８５０、９５０、１０５０、１１５０、１２５０、１３５０、１４５０、１５５０、１６５０  検証機構
１５２、２５２、３５２、４５２、５５２、６５２、７５２、８５１、９５１、１０５１、１４５２、１５５１、１６５１、１７５１  第一検証手段
１５３、２５４、３５３、４５４、５５３、７５５、１１５１、１２５１、１３５１、１４５８  第二検証手段
１５４、３５４、７５８  第三検証手段
１５５、２５５、３５５、４５５、５５５、６５５、７５９、９５４、１０５４、１２５４、１３５４、１４５９、１６５４、１７５４、１８５９、１９５９判定手段
２０５、４０５、６０５、１４０５、１５０１、１６０１、１７０１  証明手段
５５４、６５４、１８５８、１９５８  比較手段
７０６、８０２、９０２、１００２、１４０６、１５０２、１６０２、１７０２  第二乱数発生手段
７０７、８０３、９０３、１００３  第一コミットメント手段
７０８、８０４、９０５、１００５  第一レスポンス手段
７１０、８５２、１２０２、１３０２、１５５２  第三乱数発生手段
７１１、１１０３、１２０３、１３０３  第二コミットメント手段
７１２、１１０４、１２０５、１３０５  第二レスポンス手段
７５３、８５４  第一チャレンジ手段
７５４、８５５、９５３、１０５３、１４５４、１５５５、１６５３、１７５３  第二判定手段
７５６、１１５４  第二チャレンジ手段
７５７、１１５５、１２５３、１３５３  第三判定手段
８５３  第一チャレンジ準備手段
９０４、９５２、１００４  第一自動チャレンジ手段
９０６、１００６  第一証明文出力手段
１１０２  第四乱数発生手段
１１５２  第五乱数発生手段
１１５３  第二チャレンジ準備手段
１２０４、１２５２、１３０４  第二自動チャレンジ手段
１２０６、１３０６  第二証明文出力手段
１４０７、１５０３、１６０３、１７０３  コミットメント手段
１４０８、１５０４、１６０５、１７０５  レスポンス手段
１４５３、１５５４  チャレンジ手段
１５５３  チャレンジ準備手段
１６０４、１６５２、１７０４  自動チャレンジ手段
１６０６、１７０６  証明文出力手段
【図１】
0004774650.tif 000002
【図２】
0004774650.tif 000003
【図３】
0004774650.tif 000004
【図４】
0004774650.tif 000005
【図５】
0004774650.tif 000006
【図６】
0004774650.tif 000007
【図７】
0004774650.tif 000008
【図８】
0004774650.tif 000009
【図９】
0004774650.tif 000010
【図１０】
0004774650.tif 000011
【図１１】
0004774650.tif 000012
【図１２】
0004774650.tif 000013
【図１３】
0004774650.tif 000014
【図１４】
0004774650.tif 000015
【図１５】
0004774650.tif 000016
【図１６】
0004774650.tif 000017
【図１７】
0004774650.tif 000018
【図１８】
0004774650.tif 000019
【図１９】
0004774650.tif 000020