JP4774650B2 - 離散対数の一致または不一致を示すゼロ知識証明システム及び方法 - Google Patents

離散対数の一致または不一致を示すゼロ知識証明システム及び方法 Download PDF

Info

Publication number
JP4774650B2
JP4774650B2 JP2001239615A JP2001239615A JP4774650B2 JP 4774650 B2 JP4774650 B2 JP 4774650B2 JP 2001239615 A JP2001239615 A JP 2001239615A JP 2001239615 A JP2001239615 A JP 2001239615A JP 4774650 B2 JP4774650 B2 JP 4774650B2
Authority
JP
Japan
Prior art keywords
random number
base
proof
verification
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2001239615A
Other languages
English (en)
Other versions
JP2003050544A (ja
Inventor
潤 古川
和恵 佐古
賢 尾花
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2001239615A priority Critical patent/JP4774650B2/ja
Priority to US10/212,172 priority patent/US7003541B2/en
Priority to DE60220600T priority patent/DE60220600T2/de
Priority to SG200204765-2A priority patent/SG135913A1/en
Priority to EP02017697A priority patent/EP1283616B1/en
Publication of JP2003050544A publication Critical patent/JP2003050544A/ja
Application granted granted Critical
Publication of JP4774650B2 publication Critical patent/JP4774650B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)
  • Hardware Redundancy (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、自分が生成していない電子署名に対しては否認できるが、自分が生成した電子署名ならば否認することができないと言う性質を持つ、否認不可証明等で用いて好適とされる、離散対数の一致あるいは不一致をゼロ知識証明する技術に関する。
【0002】
【従来の技術】
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であれば、この署名が偽造されたものであることが示せる。
【0003】
このような署名システムでは、指定された演算体系において、入力された数α(上記例では、y)およびβ(上記例では、SIG)が、あらかじめ指定された2つの異なる底g,mを用いて、αの第一の底gにおける離散対数と、βの第二の底mにおける離散対数が等しい、あるいは異なることを示す証明機構と、それを確認する検証機構が必要となる。
【0004】
[従来の技術(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)に記載されている、この方式は、一致を示す証明方式と不一致を示す証明方式が全く異なるものである。また、不一致を示す証明方式は、検証者が存在して初めて成り立つ証明方式であるので、証明者だけが単独で証明を生成することはできない。
【0005】
[従来の技術(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に対する署名をみすみす渡してしまうという矛盾した状況が生じる。
【0006】
【発明が解決しようとする課題】
したがって、本発明が解決しようとする課題は、従来の技術(1)とは異なり、同じプロトコルを用いて離散対数の一致あるいは不一致を示すことができ、しかも従来の技術(2)ように、重要な情報を漏らすことなく、証明者だけが単独で証明することのできるプロトコルのシステム及び方法とプログラムを提供することである。
【0007】
【課題を解決するための手段】
上記課題を解決するための手段を提供する本発明に係るシステムは、その一つのアスペクトにおいて、指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じあるいは異なることを示す証明機構と、それを確認する検証機構を備えた証明システムであって、前記証明機構および検証機構は前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段を保持し、前記証明機構はαの第一の底における離散対数を格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、前記乱数発生手段で発生させた前記乱数を用いて、前記αを前記乱数により冪乗させたα'、前記βを前記乱数により冪乗させたβ'、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'を出力する変数変換手段と、前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、からなり、前記検証機構は前記証明機構の入力値変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段を有し、第一の検証手段によって確認でき、なおかつβ'とγ'が等しければαの第一の底における離散対数とβの第二の底における離散対数が同じであると判定し、第一の検証手段によって確認でき、なおかつβ'とγ'が異なればαの第一の底における離散対数とβの第二の底における離散対数が異なっていると判定し、それ以外の場合は証明を受理しないと判定する判定手段とを備えている。
【0008】
本発明は、別のアスペクトにおいて、前記証明機構は、αの第一の底における離散対数を秘密情報として格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、を備え、前記検証機構は、前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、β'とγ'が同じであることを確認する第二の検証手段と、前記第一の検証手段および前記第二の検証手段の結果により、証明を受理するか否かを判定する判定手段と、を備えている。
【0009】
本発明は、別のアスペクトにおいて、前記証明機構は、αの第一の底における離散対数を格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、
前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明手段と、前記変数変換手段により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明手段と、を備え、前記検証機構は、前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証手段と、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証手段と、β'とγ'が異なることを確認する第三の検証手段と、前記第一の検証手段、前記第二の検証手段、および前記第三の検証手段の結果により、証明を受理するか否かを判定する判定手段と、を備えている。
【0010】
本発明は、さらに別のアスペクトにおいて、前記証明機構は、αの第一の底における離散対数を格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、前記βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、を備え、前記検証機構は、前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、β'とγ'が異なることを確認する第二の検証手段と、前記第一の検証手段および前記第二の検証手段の結果により、証明を受理するか否かを判定する判定手段と、を備えている。
【0011】
本発明は、さらに別のアスペクトにおいて、前記証明機構は、αの第一の底における離散対数を格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明手段と、前記変数変換手段により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明手段と、を備え、前記検証機構が、前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証手段と、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証手段と、β'とγ'を比較する比較手段と、前記第一の検証手段、前記第二の検証手段、および前記比較手段の結果により、証明を受理するか否かを判定する判定手段と、を備えている。
【0012】
本発明は、さらに別のアスペクトにおいて、前記証明機構は、αの第一の底における離散対数を格納する秘密情報格納手段と、乱数を発生させる乱数発生手段と、前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'、βを前記乱数により冪乗させたβ'、前記第二の底を前記秘密情報格納手段に格納された秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'を出力する変数変換手段と、前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、を備え、前記検証機構が、前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、β'とγ'を比較する比較手段と、前記第一の検証手段及び前記比較手段の結果により、証明を受理するか否かを判定する判定手段と、を備えている。
【0013】
【発明の実施の形態】
発明の実施の形態について説明する。この発明の実施の形態では、
p,qは素数であり、
q|(p-1)
という関係がある。また、g,h,α,βは、mod p上の位数qの群の元である。
【0014】
[実施の形態1]
本発明の第1の実施の形態について、図1を参照しながら説明する。
【0015】
証明機構100と、検証機構150は、それぞれの公開情報格納手段102、151に、
p,q,g,h,α,β
を格納している。p,qは演算体系を示し、g,hは第一、第二の底、α,βは入力された数である。
【0016】
証明機構100は、秘密情報格納手段103に、
α=gx mod p
となるような秘密情報x(x=logα ;αの第一の底gに対する離散対数)を格納している。
証明機構100は、乱数発生手段101により、
r∈Z/qZ
を無作為に生成する。
【0017】
証明機構100は、p,q,g,h,α,β,x,rを、変数変換手段104に入力し、変数変換手段104は、乱数発生手段101で発生させた乱数rを用いて、αを乱数rにより冪乗させたα'と、βを乱数rにより冪乗させたβ'と、第二の底hを秘密情報格納手段103に格納された離散対数xにより冪乗させ、さらに乱数rにより冪乗させたγ'とを出力する。すなわち、変数変換手段104は、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【0018】
証明機構100は、α',β',γ'を、検証機構150に送る。
【0019】
証明機構100の第一証明手段105は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを証明する。
【0020】
検証機構150の第一検証手段152は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【0021】
証明機構100の第二証明手段106は、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを証明する。
【0022】
検証機構150の第二検証手段153は、α'の第一の底gにおける離散対数と、γ'の第二の底hにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【0023】
検証機構150の第三検証手段154は、β'=γ'を確認すれば、検証受理と判定する。
【0024】
判定手段155は、第一、第二および第三の検証手段152、153、154により判定された全ての検証結果が検証受理であったならば、αの底gにおける離散対数と、βの底hにおける離散対数が同じと判定し、「OK」(可)を出力する。その他の場合には、「NG」(不可)を出力する。
【0025】
[実施の形態2]
本発明の第2の実施の形態について、図2を参照しながら説明する。
【0026】
証明機構200と検証機構250は、それぞれの公開情報格納手段202,251に、p,q,g,h,α,βを格納している。
【0027】
証明機構200は、秘密情報格納手段203に、
α=gx mod p
となるような秘密情報xを格納している。
【0028】
証明機構200は、乱数発生手段201により、
r∈Z/qZ
を無作為に生成する。
【0029】
証明機構200は、p,q,g,h,α,β,x,rを変数変換手段204に入力し、変数変換手段203では、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【0030】
証明機構200は、α',β',γ'を検証機構250に送る。
【0031】
証明機構200の証明手段205は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることとを証明する。
【0032】
検証機構250の第一検証手段252は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【0033】
検証機構250の第二検証手段254は、β'=γ'を確認すれば、検証受理と判定する。
【0034】
判定手段255、第一252および第二の検証手段254により判定された全ての検証結果が検証受理であったならば、αの底gにおける離散対数と、βの底hにおける離散対数が同じと判定し、OKを出力する。その他の場合はNGを出力する。
【0035】
[実施の形態3]
本発明の第3の実施の形態について、図3を参照しながら説明する。
【0036】
証明機構300と検証機構350は、それぞれの公開情報格納手段302,351に、p,q,g,h,α,βを格納している。
【0037】
証明機構300は、秘密情報格納手段303に、
α=gx mod p
となるような秘密情報xを格納している。証明機構300は、乱数発生手段301により、乱数
r∈Z/qZ
を無作為に生成する。
【0038】
証明機構300は、p,q,g,h,α,β,x,rを変数変換手段304に入力し、変数変換手段304では、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【0039】
証明機構300は、α',β',γ'を検証機構350に送る。
【0040】
証明機構300の第一証明手段305は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを証明し、検証機構350の第一検証手段352は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【0041】
証明機構300の第二証明手段306は、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを証明し、検証機構350の第二検証手段353は、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【0042】
検証機構350の第三検証手段354は、β'≠γ'を確認すれば、検証受理と判定する。
【0043】
判定手段355は、第一の検証手段352、第二の検証手段353および第三の検証手段354により判定された全ての検証結果が検証受理であったならば、αの底gにおける離散対数と、βの底hにおける離散対数が異るものと判定し、OKを出力する。その他の場合には、NGを出力する.
【0044】
[実施の形態4]
本発明の第4の実施の形態について、図4を参照しながら説明する。
【0045】
証明機構400と検証機構450は、それぞれの公開情報格納手段402,451に、p,q,g,h,α,βを格納している。
【0046】
証明機構400は秘密情報格納手段403に、
α=gx mod p
となるような秘密情報xを格納している。
【0047】
証明機構400は、乱数発生手段401により、乱数
r∈Z/qZ
を無作為に生成する。
【0048】
証明機構400は、p,q,g,h,α,β,x,rを変数変換手段404に入力し、変数変換手段404では、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【0049】
証明機構400は、α',β',γ'を検証機構450に送る。
【0050】
証明機構400の証明手段405は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることとを証明し、検証機構450の第一の検証手段452は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることとを確認すれば、検証受理と判定する。
【0051】
検証機構450の第二検証手段454は、β'≠γ'を確認すれば、検証受理と判定する。
【0052】
判定手段455は、第一の検証手段452および第二の検証手段454により判定された全ての検証結果が検証受理であったならば、αの底gにおける離散対数と、βの底hにおける離散対数が異ると判定し、OKを出力する。その他の場合はNGを出力する。
【0053】
[実施の形態5]
本発明の第5の実施の形態について、図5を参照しながら説明する。
【0054】
証明機構500と、検証機構550は、それぞれの公開情報格納手段502,551にp,q,g,h,α,βを格納している。
【0055】
証明機構500は、秘密情報格納手段503に、
α=gx mod p
となるような秘密情報xを格納している。
【0056】
証明機構500は、乱数発生手段501により、
r∈Z/qZ
を無作為に生成する。
【0057】
証明機構500は、p,q,g,h,α,β,x,rを変数変換手段504に入力し、変数変換手段504では、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【0058】
証明機構500は、α',β',γ'を検証機構550に送る。
【0059】
証明機構500の第一証明手段505は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを証明し、検証機構550の第一検証手段552は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認すれば、検証受理と判定する。証明機構500の第二証明手段506は、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを証明し、検証機構550の第二検証手段553は、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを確認すれば、検証受理と判定する。検証機構550の比較手段554は、β'とγ'を確認する。
【0060】
判定手段555は、第一の検証手段552、第二の検証手段553により判定された全ての検証結果が検証受理であり、かつ比較手段554がβ'≠γ'と判定した場合にはαの底gにおける離散対数と、βの底hにおける離散対数が異ると判定し、β'=γ'と判定した場合には、αの底gにおける離散対数と、βの底hにおける離散対数が等しいと判定する。
【0061】
[実施の形態6]
本発明の第6の実施の形態について、図6を参照しながら説明する。
【0062】
証明機構600と検証機構650は、それぞれの公開情報格納手段602,651に、p,q,g,h,α,βを格納している。
【0063】
証明機構600は、秘密情報格納手段603に、
α=gx mod p
となるような秘密情報xを格納している。
【0064】
証明機構600は、乱数発生手段601により、
r∈Z/qZ
を無作為に生成する。
【0065】
証明機構600は、p,q,g,h,α,β,x,rを変数変換手段604に入力し、変数変換手段604では、
α'=αr mod p,
β'=βr mod p,
γ'=hxr mod p
を計算して出力する。
【0066】
証明機構600は、α',β',γ'を検証機構650に送る。
【0067】
証明機構600の証明手段605は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを証明し、検証機構650の第一検証手段652は、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の底gにおける離散対数と、γ'の底hにおける離散対数が同じであることを確認すれば、検証受理と判定する。
【0068】
検証機構650の比較手段654は、β'とγ'を確認する。
【0069】
判定手段655は、第一の検証手段652により判定された検証結果が検証受理であり、かつ、比較手段654が、
・β'≠γ'と判定した場合には、αの底gにおける離散対数と、βの底hにおける離散対数が異ると判定し、
・β'=γ'と判定した場合には、αの底gにおける離散対数と、βの底hにおける離散対数が等しいと判定する。
【0070】
【実施例】
上記した実施の形態についてさらに詳細に説明すべく、本発明の実施例について図面を参照して説明する。
【0071】
本実施例では、p,qは素数であり、q|(p-1)という関係がある。また、g,h,α,βはmod p上の位数qの群の元である。
【0072】
[実施例1]
本発明の第1の実施例について説明する。図7は、本発明の第1の実施例の構成を示す図である。図7を参照すると、証明機構700は、乱数発生手段701と、公開情報格納手段702と、秘密情報格納手段703と、変数変換手段704と、第一証明手段705と、第二証明手段709と、を備えている。第一証明手段705は、第二乱数を発生させる第二乱数発生手段706と、第二乱数発生手段で発生させた前記第二乱数を用いて、α、βを変換させる第一コミットメント手段707と、第一検証手段752が出力した第一チャレンジに対して、前記乱数(乱数発生手段701の乱数r)と前記第二乱数を用いて演算する第一レスポンス手段708と、を備えている。第二証明手段709は、第三乱数を発生させる第三乱数発生手段710と、第三乱数発生手段で発生させた前記第三乱数を用いて、α、βを変換させる第二コミットメント手段711と、第二検証手段755が出力した第二チャレンジに対して、前記乱数と前記第三乱数を用いて演算する第二レスポンス手段712と、を備えている。公開情報格納手段702と、秘密情報格納手段703は、記憶装置から構成される。その他の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。
【0073】
検証機構750は、公開情報格納手段751と、第一検証手段752と、第二検証手段755と、第三検証手段758と、判定手段759を備えている。第一検証手段752は、第一コミットメント手段707の出力を受信したのち、第一チャレンジを生成する第一チャレンジ手段753と、前記第一レスポンス手段708の出力が、第一コミットメント手段707の出力及び第一チャレンジ手段753の出力と一貫性があるか否かを確認する第二判定手段754と、を備えている。第二検証手段755は、第二コミットメント手段711の出力を受信したのち、第二チャレンジを生成する第二チャレンジ手段756と、第二レスポンス手段712の出力が、第二コミットメント手段711の出力及び第二チャレンジ手段756の出力と一貫性があるか否かを確認する第三判定手段757と、を備えている。公開情報格納手段751は記憶装置から構成される。その他の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【0074】
証明機構700と検証機構750は、それぞれの公開情報格納手段702,751にp,q,g,h,α,βを格納している。
【0075】
証明機構700は、秘密情報格納手段703に、
α=gx mod p
となるような秘密情報x(αのgに対する離散対数)を格納している。
【0076】
なお、公開情報格納手段702,751に格納されているp,q,g,h,α,βは、変数変換手段704、第一証明手段705、第二証明手段709、第一検証手段752、第二検証手段755、および第三検証手段758により参照される。
【0077】
また、秘密情報格納手段703に格納されているxは、第一証明手段705および第二証明手段709により参照される。
【0078】
証明機構700は、乱数発生手段701により、乱数
r∈Z/qZ
を無作為に生成する。
【0079】
証明機構700は、p,q,g,h,α,β,x,rを変数変換手段704に入力し、変数変換手段704では、
α'=αr, β'=βr, γ'=hxr
を計算する。
【0080】
証明機構700は、α',β',γ'を検証機構750に送る。
【0081】
α',β',γ'は、第一証明手段705、第二証明手段709、第一検証手段752、第二検証手段755、および第三検証手段758により参照される。
【0082】
第一証明手段705では、第二乱数発生手段706により、第二乱数
s[1]∈Z/qZ
を発生させる。
【0083】
第一証明手段705の第一コミットメント手段707において、第二乱数s[1]を用いて、第一コミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p
を計算し、第一コミットメントv[1]、v[2]を、検証機構750の第一検証手段752に送る。
【0084】
第一検証手段752は、第一コミットメントv[1]、v[2]を受信したのち、第一チャレンジ手段753において、無作為に第一チャレンジ
c[1]∈Z/qZ
を生成し、生成した第一チャレンジc[1]を証明機構700の第一証明手段705に送る。
【0085】
証明機構700の第一証明手段705は、第一チャレンジc[1]を受信したのち、第一レスポンス手段708において、第一レスポンス
t[1]=s[1]+rc[1] mod q
を計算し、計算した第一レスポンスt[1]を、検証機構750の第一検証手段752に送る。
【0086】
第一検証手段752では、第一レスポンスを受信したのち、第二判定手段754において
v[1]α'ct[1]mod p,
v[2]β'ct[1]mod p
を確認すれば、検証受理と判定する。
【0087】
第二証明手段709は、第三乱数発生手段710により、第三乱数
s[2]∈Z/qZ
を発生させる。
【0088】
第二証明手段709は、第二コミットメント手段711において、第三乱数s[2]を用いて、第二コミットメント
v[3]=gs[2]mod p,
v[4]=hs[2]mod p
を計算し、第二コミットメントv[3],v[4]を、検証機構750の第二検証手段755に送る。
【0089】
第二検証手段755は、第二コミットメントv[3]、v[4]を受信したのち、第二チャレンジ手段756において、無作為に、第二チャレンジ
c[2]∈Z/qZ
を生成し、生成した第二チャレンジc[2]を証明機構700の第二証明手段709に送る。
【0090】
第二証明手段709は、第二チャレンジをc[2]を受信したのち、第二レスポンス手段712において、第二レスポンス
t[2]=s[2] + x r c[2] mod q
を計算し、計算した第二レスポンスt[2]を検証機構750の第二検証手段755に送る。
【0091】
第二検証手段755は、第二レスポンスを受信したのち、第三判定手段757において
v[3]α'c=gt[2]mod p,
v[4]γ'c=ht[2]mod p
を確認すれば、検証受理と判定する。
【0092】
検証機構750は、第三検証手段758において、
β'=γ'を確認すれば、検証受理と判定する。
【0093】
検証機構750は、判定手段759において、三つの検証手段により判定された検証結果が全て検証受理であったならば、OK(可)を出力する。その他の場合はNG(不可)を出力する。
【0094】
なお、α',β',γ'は、v[1],v[2]と同時に送っても良く、また、v[1],v[2]と、v[3],v[4]を同時に送った後、c[1],c[2]を同時に送り、その後にt[1],t[2]を同時に送っても良い。
【0095】
本実施例は、離散対数の一致を示すゼロ知識証明方式であるが、検証機構の第三検証手段758において、β'=γ'の代わりに、β’≠γ'を確認することにより検証受理と判定するならば、この場合の実施例は、離散対数の不一致を示すゼロ知識証明方式となる。
【0096】
本実施例の変形例において、第三検証手段758を、次のような比較手段に置き換えてもよい。図18は、この変形例の構成を示す図である。図18を参照して、この実施例の変形例について説明する。
【0097】
検証機構750の比較手段1858において、β'とγ'を比較し、判定手段1859において、第一検証手段752、第二検証手段755により判定された検証結果が全て検証受理であることを確認したのち、
・比較手段1858が、β'=γ'と判定すれば、判定手段1859は、離散対数が一致と判定し、
・比較手段1858が、β’≠γ'と判定すれば、判定手段1859は、離散対数が不一致と判定する。
【0098】
図7の第三検証手段758を、比較手段1858に置き換えた本実施例(図18参照)は、離散対数の一致または不一致を示すゼロ知識証明方式となる。
【0099】
[実施例2]
次に、本発明の第2の実施例について説明する。本発明の第2の実施例は、図7における第一証明手段705と第一検証手段752を別の構成で実現したものである。図8は、本発明の第2の実施例の構成の要部を示す図である。なお、以下に説明する本発明の第2の実施例において、証明機構800の第一証明手段801と、検証機構850の第一検証手段851以外の構成は、図7に示したものと同様とされる。
【0100】
図8を参照すると、第一証明手段801は、第一検証手段851が出力した第一チャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二乱数発生手段802と、第二乱数発生手段802で発生させた第二乱数を用いて、α、βを変換させる第一コミットメント手段803と、第一検証手段851が出力した第一チャレンジを受信したのち、第一チャレンジ準備の正当性を確認し、前記乱数(図7の乱数発生手段701で発生させた乱数r)と前記第二乱数と前記第三乱数を用いて第一レスポンスを演算する第一のレスポンス手段804と、を備えている。第一検証手段851は、第四乱数を発生させる第三乱数発生手段852と、第三乱数発生手段852で発生させた前記第四乱数を用いて、前記第一のチャレンジ準備を生成する第一チャレンジ準備手段853と、第二乱数発生手段802で発生させた前記第三乱数、及び、前記コミットメント手段803の出力を受信したのち、第四乱数を用いて第一チャレンジを生成する第一チャレンジ手段854と、第一レスポンス手段804の出力が、第一コミットメント手段803の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二判定手段855と、を備えている。以下に本実施例の動作を説明する。第一証明手段801、第一検証手段851の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。
【0101】
検証機構850の第一検証手段851は、第三乱数発生手段852により、第四乱数
a[1],b[1]∈Z/qZ
を生成させる。
【0102】
第一検証手段851は、第一チャレンジ準備手段853により、第四乱数を用いて、第一チャレンジ準備
A[1]=ga[1]αb[1]mod p
を計算し、第一チャレンジ準備A[1]を証明機構800の第一証明手段801に送る。
【0103】
第一証明手段801は、第二乱数発生手段802により、第二乱数
s[1]∈Z/qZ
と、第三乱数
w[1]∈Z/qZ
を発生させる。
【0104】
第一証明手段801は、第一コミットメント手段803により、第一コミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p
を計算する。
【0105】
第一証明手段801は、第一チャレンジ準備を受信したのち、第三乱数w[1]と、第一コミットメントv[1],v[2]を、第一検証手段851に送る。
【0106】
第一検証手段851は、第三乱数w[1]と、第一コミットメントv[1],v[2]を受信したのち、第一チャレンジ手段854により、第四乱数a[1]、b[1]を、第一チャレンジとして、第一証明手段801に送る。
【0107】
第一証明手段801は、第一レスポンス手段804により、
A[1]=g [1]αb[1]mod p
が成り立つことを確認する。
【0108】
上記等式が成り立たない場合は、証明を終了する。
【0109】
第一証明手段801は、第一レスポンス手段804により、第一レスポンス
t[1]=s[1] + r(a[1]+w[1]) mod q
を計算し、計算した第一レスポンスt[1]を第一検証手段851に送る。
【0110】
第一検証手段851は、第二判定手段855により、
v[1]α'{a[1]+w[1]}t[1]mod p,
v[2]β'{a[1]+w[1]}t[1]mod p
を確認すれば、検証受理と判定する。
【0111】
[実施例3]
本発明の第3の実施例について説明する。図9は、本発明の第3の実施例の構成を示す図である。本発明の第3の実施例は、図7における第一証明手段705と第一検証手段752を別の構成で実現したものである。なお、以下に説明する本発明の第3の実施例において、第一証明手段901と第一検証手段951以外の構成は、図7に示したものと同様とされる。
【0112】
図9を参照すると、第一証明手段901は、第二乱数を発生させる第二乱数発生手段902と、第二乱数発生手段902で発生させた前記第二乱数を用いて、前記α、βを変換させる第一コミットメント手段903と、第一コミットメント手段903の出力から第一の自動チャレンジを生成する第一自動チャレンジ手段904と、第一自動チャレンジ手段904が出力した第一自動チャレンジに対して、前記乱数(図7の乱数発生手段701で発生させた乱数r)と前記第二乱数を用いて第一レスポンスを演算する第一レスポンス手段905と、第一コミットメント手段903の出力である第一コミットメントと、第一レスポンス手段905の出力である第一レスポンスを第一の証明文として出力する第一証明文出力手段906と、を備えている。第一検証手段951は、第一証明文出力手段906の出力に含まれる第一コミットメントから第一の自動チャレンジを生成する第一自動チャレンジ手段952と、第一レスポンス手段905の出力が、第一コミットメント手段903の出力、第一自動チャレンジ手段904の出力と一貫性があるか否かを確認する第二判定手段953と、を備えている。第一証明手段901、第一検証手段951の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【0113】
証明機構900の第一証明手段901は、第二乱数発生手段902により、第二乱数
s[1]∈Z/qZ
を発生させる。
【0114】
第一証明手段901は、第一コミットメント手段903により、第一コミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p
を計算する。
【0115】
第一証明手段901は、第一自動チャレンジ手段904により、
第一自動チャレンジ
c[1](∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[1],v[2])
を計算する。ここで、Hashとは「ハッシュ関数」と呼ばれる一方向性関数のことであり、「SHA-1」等が知られている。
【0116】
第一証明手段901は、第一レスポンス手段905により、第一レスポンス
t[1]=s[1]+rc[1] mod q
を計算する。
【0117】
第一証明手段901は、第一証明文出力手段906により、上記のように生成された(v[1],v[2],t[1])を証明文とし、検証機構950の第一検証手段951に送る。
【0118】
検証機構950の第一検証手段951は、第一自動チャレンジ手段952により、第一自動チャレンジ
c'[1](∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[1],v[2])
を計算する。
【0119】
第一検証手段951は、第二判定手段953により、
v[1]α'c'[1]t[1]mod p,
v[2]β'c'[1]t[1]mod p
を確認すれば、検証受理と判定する。
【0120】
[実施例4]
本発明の第4の実施例について説明する。図10は、本発明の第4の実施例の構成を示す図である。本発明の第4の実施例は、図7における第一証明手段705と第一検証手段752を別の構成で実現したものである。なお、以下に説明する本発明の第4の実施例において、第一証明手段1001と第一検証手段1051以外の構成は、図7に示したものと同様とされる。
【0121】
図10を参照すると、第一証明手段1001が、第二乱数を発生させる第二乱数発生手段1002と、第二乱数発生手段1002で発生させた前記第二乱数を用いて、前記α、β変換させる第一コミットメント手段1003と、第一コミットメント手段1003の出力から第一自動チャレンジを生成する第一自動チャレンジ手段1004と、第一自動チャレンジ手段1004が出力した第一自動チャレンジに対して、前記乱数(図7の乱数発生手段701で発生させた乱数r)と前記第二乱数を用いて第一レスポンスを演算する第一レスポンス手段1005と、第一自動チャレンジ手段1004の出力である第一自動チャレンジと第一レスポンス手段1005の出力である第一レスポンスを第一証明文として出力する第一証明文出力手段1006と、を備えている。第一検証手段1051は、第一証明文出力手段1006の出力した第一証明文に含まれる第一自動チャレンジと第一レスポンスが一貫性があるか否かを確認する第二の判定手段1053を備えている。第一証明手段1001、第一検証手段1051の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【0122】
証明機構1000の第一証明手段1001は、第二乱数発生手段1002により、第二乱数
s[1]∈Z/qZ
を発生させる。
【0123】
第一証明手段1001は、第一コミットメント手段1003により、第一コミットメント
v[1]=αs[1]mod p,
v[2]=βs[1]mod p
を計算する。
【0124】
第一証明手段1001は、第一自動チャレンジ手段1004により、第一自動チャレンジ
c[1](∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[1],v[2])
を計算する。
【0125】
第一証明手段1001は、第一レスポンス手段1005により、第一レスポンス
t[1]=s[1]+rc[1] mod q
を計算する。
【0126】
第一証明手段1001は、第一証明文出力手段1006により、上記のように生成された(c[1],t[1])を証明文とし、検証機構1050の第一検証手段1051に送る。
【0127】
検証機構1050の第一検証手段1051は、第二判定手段1053により、
c[1]=Hash(p,q,g,h,α,β,α',β',γ', αt[1]/α'c mod p, βt[1]/β'c mod p)
を確認すれば、検証受理と判定する。
【0128】
[実施例5]
本発明の第5の実施例について説明する。図11は、本発明の第5の実施例の構成を示す図である。本発明の第5の実施例は、図7における第二証明手段709と第二検証手段755を別の構成で実現したものである。なお、以下に説明する本発明の第5の実施例において、第二証明手段1101と第二検証手段1151以外の構成は、図7に示したものと同様とされる。
【0129】
図11を参照すると、第二証明手段1101は、第二検証手段1151が出力した第二のチャレンジ準備を受信したのち、第五乱数及び第六乱数を発生させる第四乱数発生手段1102と、第四乱数発生手段1102で発生させた前記第五乱数を用いて、前記第一の底,第二の底を変換させる第二コミットメント手段1103と、第二検証手段1151が出力した第二チャレンジを受信したのち、前記第二チャレンジ準備の正当性を確認し,前記乱数(図7の乱数発生手段701で発生させた乱数r)と前記第五乱数と前記第六乱数を用いて第二のレスポンスを演算する第二レスポンス手段1104と、を備えている。第二の検証手段1151は、第七乱数を発生させる第五の乱数発生手段1152と、第五乱数発生手段1152で発生させた前記第七の乱数を用いて、前記第二のチャレンジ準備を生成する第二チャレンジ準備手段1153と、第五乱数発生手段1152で発生させた前記第六乱数及び,前記第二のコミットメント手段の出力を受信したのち、第七乱数を用いて第二のチャレンジを生成する第二チャレンジ手段1154と、第二レスポンス手段1104の出力が、前記第二コミットメント手段1103の出力、第七乱数および第六乱数と一貫性があるか否かを確認する第三の判定手段1155と、を備えている。第二証明手段1101、第二検証手段1151の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【0130】
検証機構1150の第二検証手段1151は、第五乱数発生手段1152により、第七乱数
a[2],b[2]∈Z/qZ
を生成させる。
【0131】
第二検証手段1151は、第二チャレンジ準備手段1153により、第七乱数を用いて第二チャレンジ準備
A[2]=ga[2]αb[2]mod p
を計算し、第二チャレンジ準備A[2]を証明機構1100の第二証明手段1101に送る。
【0132】
第二証明手段1101は、第四乱数発生手段1102により、第五乱数
s[2]∈Z/qZと、
第六乱数
w[2]∈Z/qZ
を発生させる。
【0133】
第二証明手段1101は、第二コミットメント手段1103により、第二コミットメント
v[3]=g [2]mod p,
v[4]=h [2]mod p
を計算する。
【0134】
第二証明手段1101は、第二チャレンジ準備を受信したのち、第六乱数w[2]と第二コミットメントv[3],v[4]を、第二検証手段1151に送る。
【0135】
第二検証手段1151は、第六乱数w[2]と第二コミットメントv[3],v[4]を受信したのち、第二チャレンジ手段1154により、第七乱数a[2],b[2]を、第二チャレンジとして第二証明手段1101に送る。
【0136】
第二証明手段1101は、第二レスポンス手段1104により、
A[2]=ga[2]αb[2]mod p
が成り立つことを確認する。
【0137】
上記等式が成り立たない場合は、証明を終了する。
【0138】
第二証明手段1101は、第二レスポンス手段1104により、第二レスポンス
t[2]=s[2] + x r(a[2]+w[2])mod q
を計算し、第二レスポンスt[2]を第二検証手段1151に送る。
【0139】
第二検証手段1151は、第三判定手段1155により、
v[3]α'{a[2]+w[2]}=gt[2]mod p,
v[4]γ'{a[2]+w[2]}=ht[2]mod p
を確認すれば、検証受理と判定する。
【0140】
[実施例6]
本発明の第6の実施例について説明する。図12は、本発明の第6の実施例の構成を示す図である。本発明の第6の実施例は、図7における第二証明手段709と第二検証手段755を別の構成で実現したものである。なお、以下に説明する本発明の第6の実施例において、第二証明手段1201と第二検証手段1251以外の構成は、図7に示したものと同様とされる。
【0141】
図12を参照すると、第二証明手段1201は、第三乱数を発生させる第三乱数発生手段1202と、第三乱数発生手段1202で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二コミットメント手段1203と、第二コミットメント手段1203の出力から第二の自動チャレンジを生成する第二自動チャレンジ手段1204と、第二自動チャレンジ手段1204が出力した第二自動チャレンジに対して前記乱数と前記第三乱数を用いて第二レスポンスを演算する第二レスポンス手段1205と、第二コミットメント手段1203の出力である第二コミットメントと第二レスポンス手段1205の出力である第二のレスポンスを、第二証明文として出力する第二証明文出力手段1206と、を備えている。第二の検証手段1251は、第二証明文出力手段1206の出力に含まれる第二コミットメントから第二自動チャレンジを生成する第二自動チャレンジ手段1252と、第二レスポンス手段1205の出力が、前記第二コミットメント手段1203の出力、第二自動チャレンジ手段1204の出力と一貫性があるか否かを確認する第三の判定手段1253と、を備えている。第二証明手段1201、第二検証手段1251の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【0142】
証明機構1200の第二証明手段1201は、第三乱数発生手段1202により、第三乱数
s[2]∈Z/qZ
を発生させる。
【0143】
第二証明手段1201は、第二コミットメント手段1203により、第二コミットメント
v[3]=gs[2]mod p,
v[4]=hs[2]mod p
を計算する。
【0144】
第二証明手段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
を計算する。
【0145】
第二証明手段は1201、第二証明文出力手段1206により、上記のように生成された(v[3],v[4],t[2])を証明文とし、検証機構1250の第二検証手段1251に送る。
【0146】
検証機構1250の第二検証手段1251は、第二自動チャレンジ手段1252により、第二自動チャレンジ
c'[2](∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[3],v[4])
を計算する。
【0147】
第二検証手段1251は、第三判定手段1253により、
v[3]α'c'[2]=gt[2]mod p,
v[4]γ'c'[2]=ht[2]mod p
を確認すれば、検証受理と判定する。
【0148】
[実施例7]
本発明の第7の実施例について説明する。図13は、本発明の第7の実施例の構成を示す図である。本発明の第7の実施例は、図7における第二証明手段709と第二検証手段755を別の構成で実現したものである。なお、以下に説明する本発明の第7の実施例において、第二証明手段1301と第二検証手段1351以外の構成は、図7に示したものと同様とされる。
【0149】
図13を参照すると、第二証明手段1301は、第三乱数を発生させる第三乱数発生手段1302と、第三乱数発生手段1302で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二コミットメント手段1303と、前記第二コミットメント手段1303の出力から第二の自動チャレンジを生成する第二自動チャレンジ手段1304と、第二自動チャレンジ手段1304が出力した第二自動チャレンジに対して前記乱数(図7の乱数発生手段701で発生させた乱数r)と前記第三乱数を用いて第二のレスポンスを演算する第二レスポンス手段1305と、第二自動チャレンジ手段1304の出力である第二自動チャレンジと、第二のレスポンス手段1305の出力である第二レスポンスを、第二証明文として出力する第二証明文出力手段1306と、を備えている。第二の検証手段1351は、第二証明文出力手段1306の出力した第二証明文に含まれる第二自動チャレンジと第二レスポンスが一貫性があるか否かを確認する第三判定手段1353を備えている。第二証明手段1301、第二検証手段1351の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【0150】
証明機構1300の第二証明手段1301は、第三乱数発生手段1302により、第三乱数
s[2]∈Z/qZ
を発生させる。
【0151】
第二証明手段1301は、第二コミットメント手段1303により、第二コミットメント
v[3]=gs[2]mod p,
v[4]=hs[2]mod p
を計算する。
【0152】
第二証明手段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
を計算する。
【0153】
第二証明手段1301は、第二証明文出力手段1306により、上記のように生成された(c[2],t[2])を証明文とし、検証機構1350の第二検証手段1351に送る。
【0154】
検証機構1350の第二検証手段1351は、第三判定手段1353により、
c[2]=Hash(p,q,g,h,α,β,α',β',γ', gt[2]/α'c[2]mod p, ht[2]/γ'c[2]mod p)
を確認すれば、検証受理と判定する。
【0155】
[実施例8]
本発明の第8の実施例について説明する。図14は、本発明の第8の実施例の構成を示す図である。図14を参照すると、本発明の第8の実施例において、証明機構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は記憶装置で構成される。これ以外の証明機構、検証機構の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。図14を参照して、本実施例の動作について説明する。
【0156】
証明機構1400と検証機構1450は、それぞれの公開情報格納手段1402、1451に、p,q,g,h,α,βを格納している。
【0157】
証明機構1400は秘密情報格納手段1403に、
α=gx mod p
となるような秘密情報xを格納している。
【0158】
なお、公開情報格納手段1402,1451に格納されているp,q,g,h,α,βは、変数変換手段1404、証明手段1405、第一検証手段1452および第二検証手段1458により参照される。
【0159】
また、秘密情報格納手段1403に格納されているxは、証明手段1405により参照される。
【0160】
証明機構1400は、乱数発生手段1401により乱数
r∈Z/qZ
を無作為に生成する。
【0161】
証明機構1400は、p,q,g,h,α,β,x,rを変数変換手段1404に入力し、
α'=αr, β'=βr, γ'=hxr
を計算する。
【0162】
証明機構1400はα',β',γ'を検証機構1450に送る。
【0163】
α',β',γ'は証明手段1405、第一検証手段1452および、第二検証手段1458により参照される。
【0164】
証明手段1405は、第二乱数発生手段1406により第二乱数
s[1],s[2]∈Z/qZ
を発生させる。
【0165】
証明手段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に送る。
【0166】
第一検証手段1452は、コミットメントv[1],v[2],v[3],v[4]を受信したのち、チャレンジ手段1453において、無作為にチャレンジc∈Z/qZを生成し、証明機構1400の証明手段1405に送る。
【0167】
証明手段1405は、チャレンジcを受信したのち、レスポンス手段1408において、レスポンス
t[1]=s[1]+rc mod qと、
t[2]=s[2]+xrc mod q
を計算し、計算したレスポンスt[1],t[2]を、検証機構1450の第一検証手段1452に送る。
【0168】
第一検証手段1452は、第一レスポンスを受信したのち、第二判定手段1454において
v[1]α'ct[1]mod p,
v[2]β'ct[1]mod p,
v[3]α'c=gt[2]mod p,
v[4]γ'c=ht[2]mod p
を確認すれば、検証受理と判定する。
【0169】
検証機構1450は、第二検証手段1458において、β'=γ'を確認すれば、検証受理と判定する。
【0170】
検証機構1450は、判定手段1459において、二つの検証手段により判定された検証結果が全て検証受理であったならば、OKを出力する。その他の場合はNGを出力する。
【0171】
なお、α',β',γ'はv[1],v[2],v[3],v[4]と同時に送っても良い。
【0172】
本実施例は、離散対数の一致を示すゼロ知識証明方式であるが、検証機構1450の第二検証手段1458において、β'=γ'の代わりに、β’≠γ'を確認することにより検証受理と判定するならば、本実施例は、離散対数の不一致を示すゼロ知識証明方式となる。
【0173】
本実施例の変形例について説明する。図19は、本実施例の変形例を示す図である。図19を参照すると、この変形例は、本実施例の第二検証手段1458を、次のような比較手段1958に置き換えものである。
【0174】
検証機構1450の比較手段1958において、β'とγ'を比較し、判定手段1959において、第一検証手段1452により判定された検証結果が検証受理であることを確認したのち、比較手段1958が、β'=γ'と判定すれば、判定手段1959は離散対数が一致と判定し、比較手段1958が、β’≠γ'と判定すれば、判定手段1959は離散対数が不一致と判定する。
【0175】
図14の第二検証手段1458を比較手段1958に置き換えた本実施例は、離散対数の一致または不一致を示すゼロ知識証明方式となる。
【0176】
[実施例9]
次に、本発明の第9の実施例について説明する。図15は、本発明の第9の実施例の構成を示す図である。本発明の第9の実施例は、図14における証明手段1405と第一検証手段1452を別の構成としたものである。なお、以下に説明する本発明の第9の実施例において、証明手段1501と第一検証手段1551以外の構成は、図14に示したものと同様とされる。
【0177】
図15を参照すると、証明手段1501は、第一検証手段1551が出力したチャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二乱数発生手段1502と、第二乱数発生手段1502で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段1503と、第一検証手段1551が出力したチャレンジを受信したのち、前記チャレンジ準備の正当性を確認し、前記乱数(図14の乱数発生手段1401で発生させた乱数r)と前記第二乱数と前記第三乱数とを用いてレスポンスを演算するレスポンス手段1504と、を備えている。第一検証手段1551は、第四乱数を発生させる第三乱数発生手段1552と、前記第三乱数発生手段1552で発生させた前記第四乱数を用いて、前記チャレンジ準備を生成するチャレンジ準備手段1553と、第二乱数発生手段1502で発生させた前記第三乱数、及び、前記コミットメント手段1503の出力を受信したのち、第四乱数を用いてチャレンジを生成するチャレンジ手段1554と、レスポンス手段1504の出力が、前記コミットメント手段1503の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二判定手段1555と、を備えている。証明手段1501、第一検証手段1551の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【0178】
検証機構1550の第一検証手段1551は、第三乱数発生手段1552により、第四乱数
a,b∈Z/qZ
を生成させる。
【0179】
第一検証手段1551は、チャレンジ準備手段1553により、第四乱数を用いてチャレンジ準備
A=gaαbmod p
を計算し、証明機構1500の証明手段1501に送る。
【0180】
証明手段1501は、第二乱数発生手段1502により第二乱数
s[1],s[2]∈Z/qZ
と、
第三乱数
w∈Z/qZ
を発生させる。
【0181】
証明手段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
を計算する。
【0182】
証明手段1501は、チャレンジ準備を受信したのち、第三乱数wと、コミットメントv[1],v[2],v[3],v[4]を、第一検証手段1551に送る。
【0183】
第一検証手段1551は、第三乱数wと、コミットメントv[1],v[2],v[3],v[4]を受信したのち、チャレンジ手段1554により、第四乱数a,bをチャレンジとして証明手段1501に送る。
【0184】
証明手段1501は、レスポンス手段1504により、
A=gaαbmod p
が成り立つことを確認する。
【0185】
等式が成り立たない場合は、証明を終了する。
【0186】
証明手段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に送る。
【0187】
第一検証手段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
を確認すれば、検証受理と判定する。
【0188】
[実施例10]
次に、本発明の第10の実施例について説明する。図16は、本発明の第10の実施例の構成を示す図である。本発明の第10の実施例は、図14における証明手段1405と第一検証手段1452を別の構成としたものである。なお、以下に説明する本発明の第10の実施例において、証明手段1601と第一検証手段1651以外の構成は、図14に示したものと同様とされる。
【0189】
図16を参照すると、証明手段1601は、第二乱数を発生させる第二乱数発生手段1602と、第二乱数発生手段1602で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段1603と、前記コミットメント手段1603の出力から自動チャレンジを生成する自動チャレンジ手段1604と、自動チャレンジ手段1604が出力した自動チャレンジに対して前記乱数(図14の乱数発生手段1401で発生させた乱数r)と前記第二乱数を用いてレスポンスを演算するレスポンス手段1605と、前記コミットメント手段1603の出力であるコミットメントとレスポンス手段1605の出力であるレスポンスを証明文として出力する証明文出力手段1606と、を備えている。第一検証手段1651は、前記証明文出力手段1606の出力に含まれるコミットメントから自動チャレンジを生成する自動チャレンジ手段1652と、レスポンス手段1605の出力が、前記コミットメント手段1603の出力、自動チャレンジ手段1604の出力と一貫性があるか否かを確認する第二判定手段1653と、を備えている。証明手段1601、第一検証手段1651の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。本実施例の動作について説明する。
【0190】
証明機構1600の証明手段1601は、第二乱数発生手段1602により、
第二乱数
s[1],s[2]∈Z/qZ
を発生させる。
【0191】
証明手段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
を計算する。
【0192】
証明手段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
を計算する。
【0193】
証明手段1601は、証明文出力手段1606により、上記のように生成された(v[1],v[2],v[3],v[4],t[1],t[2])を証明文とし、検証機構1650の第一検証手段1651に送る。
【0194】
検証機構1650の第一検証手段1651は、自動チャレンジ手段1652により、自動チャレンジ
c'(∈Z/qZ)=Hash(p,q,g,h,α,β,α',β',γ',v[1],v[2],v[3],v[4])
を計算する。
【0195】
第一検証手段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
を確認すれば、検証受理と判定する。
【0196】
[実施例11]
次に、本発明の第11の実施例について説明する。図17は、本発明の第11の実施例の構成を示す図である。本発明の第11の実施例は、図14における証明手段1405と第一検証手段1452を別の構成で実現したものである。なお、以下に説明する本発明の第11の実施例において、証明手段1701と第一検証手段1751以外の構成は、図14に示したものと同様とされる。
【0197】
図17を参照すると、証明手段1701は、第二乱数を発生させる第二乱数発生手段1702と、第二乱数発生手段1702で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段1703と、前記コミットメント手段1703の出力から生成される自動チャレンジを生成する自動チャレンジ手段1704と、自動チャレンジ手段1704が出力した自動チャレンジに対して前記乱数(図14の乱数発生手段1401で発生させた乱数r)と前記第二乱数とを用いてレスポンスを演算するレスポンス手段1705と、自動チャレンジ手段1704の出力した自動チャレンジと、前記レスポンス手段1705のレスポンスを証明文として出力する証明文出力手段1706と、を備えている。第一検証手段1751は、証明文出力手段1706の出力した証明文に含まれる自動チャレンジとレスポンスが一貫性があるか否かを確認する第二判定手段1753を備えている。証明手段1701、第一検証手段1751の各手段は、例えばコンピュータ上で実行されるプログラムによりその処理・機能を実現することができる。図17を参照して、本実施例の動作について説明する。
【0198】
証明機構1700の証明手段1701は、第二乱数発生手段1702により、第二乱数
s[1],s[2]∈Z/qZ
を発生させる。
【0199】
証明手段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
を計算する。
【0200】
証明手段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
を計算する。
【0201】
証明手段1701は、証明文出力手段1706により、上記のように生成された(c,t[1],t[2])を証明文とし、検証機構1750の第一検証手段1751に送る。
【0202】
第一検証手段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)
を確認すれば、検証受理と判定する。
【0203】
なお、前記第2〜第4の実施例で示した第一証明手段,第一検証手段の構成と、前記第5〜7の実施例で示した第二証明手段,第二検証手段の構成について、任意の組み合わせも、上記各実施例と同様、本発明の実施例をなすことは勿論である。
【0204】
上記した証明機構と検証機構は、有線あるいは無線伝送等で、信号を送受して接続される装置であれば、任意の装置等に実装可能とされる。
【0205】
以上本発明を上記実施例に即して説明したが、本発明は、上記実施例の構成にのみ限定されるものでなく、特許請求の範囲の各請求項の発明の範囲で、当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【0206】
【発明の効果】
以上説明したように、本発明によれば、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)と比較して、証明を効率化することができる、という効果を奏する。
【0207】
また、本発明によれば、上記証明を、上記文献(2)とは異り、証明者単独で証明を生成することができる、という効果を奏する。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の構成を示す図であり、指数の一致を示すゼロ知識証明システムの詳細を示す図である。
【図2】本発明の第2の実施の形態の構成を示す図であり、指数の一致を示すゼロ知識証明方式の詳細を示す図である。
【図3】本発明の第3の実施の形態の構成を示す図であり、指数の不一致を示すゼロ知識証明方式の詳細を示す図である。
【図4】本発明の第4の実施の形態の構成を示す図であり、指数の不一致を示すゼロ知識証明方式の詳細を示す図である。
【図5】本発明の第5の実施の形態の構成を示す図であり、指数の一致または不一致を示すゼロ知識証明方式の詳細を示す図である。
【図6】本発明の第6の実施の形態の構成を示す図であり、指数の一致または不一致を示すゼロ知識証明方式の詳細を示す図である。
【図7】本発明の第1の実施例の構成を示す図であり、指数の一致を示すゼロ知識証明方式の詳細を示す図である。
【図8】本発明の第2の実施例の構成を示す図であり、第一証明手段と第一検証手段の詳細を示す図である。
【図9】本発明の第3の実施例の構成を示す図であり、第一証明手段と第一検証手段の詳細を示す図である。
【図10】本発明の第4の実施例の構成を示す図であり、第一証明手段と第一検証手段の詳細を示す図である。
【図11】本発明の第5の実施例の構成を示す図であり、第二証明手段と第二検証手段の詳細を示す図である。
【図12】本発明の第6の実施例の構成を示す図であり、第二証明手段と第二検証手段の詳細を示す図である。
【図13】本発明の第7の実施例の構成を示す図であり、第二証明手段と第二検証手段の詳細を示す図である。
【図14】本発明の第8の実施例の構成を示す図であり、指数の一致を示すゼロ知識証明方式の詳細を示す図である。
【図15】本発明の第9の実施例の構成を示す図であり、証明手段と第一検証手段の詳細を示す図である。
【図16】本発明の第10の実施例の構成を示す図であり、証明手段と第一検証手段の詳細を示す図である。
【図17】本発明の第11の実施例の構成を示す図であり、証明手段と第一検証手段の詳細を示す図である。
【図18】図7における第三検証手段を比較手段とした場合の構成を示す図である。
【図19】図14における第二検証手段を比較手段とした場合の構成を示す図である。
【符号の説明】
100、200、300、400、500、600、700、800、900、1000、1100、1200、1300、1400、1500、1600、1700 証明機構
101、201、301、401、501、601、701、1401 乱数発生手段
102、151、202、251、302、351、402、451、502、551、602、651、702、751、1402、1451 公開情報格納手段
103、203、303、403、503、603、703、1403 秘密情報格納手段
104、204、304、404、504、604、704、1404 変数変換手段
105、305、505、705、801、901、1001 第一証明手段
106、306、506、709、1101、1201、1301 第二証明手段
150、250、350、450、550、650、750、850、950、1050、1150、1250、1350、1450、1550、1650 検証機構
152、252、352、452、552、652、752、851、951、1051、1452、1551、1651、1751 第一検証手段
153、254、353、454、553、755、1151、1251、1351、1458 第二検証手段
154、354、758 第三検証手段
155、255、355、455、555、655、759、954、1054、1254、1354、1459、1654、1754、1859、1959判定手段
205、405、605、1405、1501、1601、1701 証明手段
554、654、1858、1958 比較手段
706、802、902、1002、1406、1502、1602、1702 第二乱数発生手段
707、803、903、1003 第一コミットメント手段
708、804、905、1005 第一レスポンス手段
710、852、1202、1302、1552 第三乱数発生手段
711、1103、1203、1303 第二コミットメント手段
712、1104、1205、1305 第二レスポンス手段
753、854 第一チャレンジ手段
754、855、953、1053、1454、1555、1653、1753 第二判定手段
756、1154 第二チャレンジ手段
757、1155、1253、1353 第三判定手段
853 第一チャレンジ準備手段
904、952、1004 第一自動チャレンジ手段
906、1006 第一証明文出力手段
1102 第四乱数発生手段
1152 第五乱数発生手段
1153 第二チャレンジ準備手段
1204、1252、1304 第二自動チャレンジ手段
1206、1306 第二証明文出力手段
1407、1503、1603、1703 コミットメント手段
1408、1504、1605、1705 レスポンス手段
1453、1554 チャレンジ手段
1553 チャレンジ準備手段
1604、1652、1704 自動チャレンジ手段
1606、1706 証明文出力手段

Claims (44)

  1. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構と、を備えて成る証明システムであって、
    前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
    前記証明機構が、
    αの第一の底における離散対数を格納する秘密情報格納手段と、
    乱数を発生させる乱数発生手段と、
    前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、
    前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明手段と、
    前記変数変換手段により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明手段と、
    を備え、
    前記検証機構が、
    前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証手段と、
    α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証手段と、
    β'とγ'が同じであることを確認する第三の検証手段と、
    前記第一の検証手段、前記第二の検証手段、および前記第三の検証手段の結果により、証明を受理するか否かを判定する判定手段と、
    を備えている、ことを特徴とする証明システム。
  2. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構を備えて成る証明システムであって、
    前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
    前記証明機構が、
    αの第一の底における離散対数を格納する秘密情報格納手段と、
    乱数を発生させる乱数発生手段と、
    前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、
    前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、
    を備え、
    前記検証機構が、
    前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、
    β'とγ'が同じであることを確認する第二の検証手段と、
    前記第一の検証手段および前記第二の検証手段の結果により、証明を受理するか否かを判定する判定手段と、
    を備えている、ことを特徴とする証明システム。
  3. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が異なることを示す証明機構と、それを確認する検証機構を備えて成る証明方式であって、
    前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
    前記証明機構が、
    αの第一の底における離散対数を格納する秘密情報格納手段と、
    乱数を発生させる乱数発生手段と、
    前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、
    前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明手段と、
    前記変数変換手段により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明手段と、
    を備え、
    前記検証機構が、
    前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証手段と、
    α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証手段と、
    β'とγ'が異なることを確認する第三の検証手段と、
    前記第一の検証手段、前記第二の検証手段、および前記第三の検証手段の結果により、証明を受理するか否かを判定する判定手段と、
    を備えている、ことを特徴とする証明システム。
  4. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が異なることを示す証明機構と、それを確認する検証機構とを備えて成る証明システムであって、
    前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
    前記証明機構が、
    αの第一の底における離散対数を格納する秘密情報格納手段と、
    乱数を発生させる乱数発生手段と、
    前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、前記βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、
    前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、
    を備え、
    前記検証機構が、
    前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、
    β'とγ'が異なることを確認する第二の検証手段と、
    前記第一の検証手段および前記第二の検証手段の結果により、証明を受理するか否かを判定する判定手段と、
    を備えている、ことを特徴とする証明システム。
  5. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じあるいは異なることを示す証明機構と、それを確認する検証機構とを備えて成る証明システムであって、
    前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
    前記証明機構が、
    αの第一の底における離散対数を格納する秘密情報格納手段と、
    乱数を発生させる乱数発生手段と、
    前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換手段と、
    前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明手段と、
    前記変数変換手段により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明手段と、
    を備え、
    前記検証機構が、
    前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証手段と、
    α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証手段と、
    β'とγ'を比較する比較手段と、
    前記第一の検証手段、前記第二の検証手段、および前記比較手段の結果により、証明を受理するか否かを判定する判定手段と、
    を備えている、ことを特徴とする証明システム。
  6. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じあるいは異なることを示す証明機構と、それを確認する検証機構とを備えて成る証明システムであって、
    前記証明機構および前記検証機構は、前記演算体系、α、β、第一の底、第二の底を格納する公開情報格納手段をそれぞれ備え、
    前記証明機構が、
    αの第一の底における離散対数を格納する秘密情報格納手段と、
    乱数を発生させる乱数発生手段と、
    前記乱数発生手段で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'、βを前記乱数により冪乗させたβ'、前記第二の底を前記秘密情報格納手段に格納された離散対数により冪乗させ、さらに前記乱数により冪乗させたγ'を出力する変数変換手段と、
    前記変数変換手段により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明手段と、
    を備え、
    前記検証機構が、
    前記証明機構の前記変数変換手段が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証手段と、
    β'とγ'を比較する比較手段と、
    前記第一の検証手段及び前記比較手段の結果により、証明を受理するか否かを判定する判定手段と、
    を備えている、ことを特徴とする証明システム。
  7. 請求項1、3、5のいずれか一に記載の証明システムにおいて、
    前記第一の証明手段が、
    第二乱数を発生させる第二の乱数発生手段と、
    前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント手段と、
    前記第一の検証手段が出力した第一のチャレンジに対して、前記乱数と前記第二乱数を用いて演算する第一のレスポンス手段と、
    を備え、
    前記第一の検証手段が、
    前記第一のコミットメント手段の出力を受信したのち、第一のチャレンジを生成する第一のチャレンジ手段と、
    前記第一のレスポンス手段の出力が、前記第一のコミットメント手段の出力及び第一のチャレンジ手段の出力と一貫性があるか否かを確認する第二の判定手段と、
    を備えている、ことを特徴とする証明システム。
  8. 請求項1、3、5のいずれか一に記載の証明システムにおいて、
    前記第一の証明手段が、
    前記第一の検証手段が出力した第一のチャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二の乱数発生手段と、
    前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント手段と、
    前記第一の検証手段が出力した第一のチャレンジを受信したのち、前記第一のチャレンジ準備の正当性を確認し,前記乱数と前記第二乱数と前記第三乱数を用いて第一のレスポンスを演算する第一のレスポンス手段と、
    を備え、
    前記第一の検証手段が、
    第四乱数を発生させる第三の乱数発生手段と、
    前記第三の乱数発生手段で発生させた前記第四乱数を用いて、前記第一のチャレンジ準備を生成する第一のチャレンジ準備手段と、
    前記第二の乱数発生手段で発生させた前記第三乱数及び,前記コミットメント手段の出力を受信したのち、第四乱数を用いて第一のチャレンジを生成する第一のチャレンジ手段と、
    前記第一のレスポンス手段の出力が、前記第一のコミットメント手段の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二の判定手段と、
    を備えている、ことを特徴とする証明システム。
  9. 請求項1、3、5のいずれか一に記載の証明システムにおいて、
    前記第一の証明手段が、
    第二乱数を発生させる第二の乱数発生手段と、
    前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント手段と、
    前記第一のコミットメント手段の出力から第一の自動チャレンジを生成する第一の自動チャレンジ手段と、
    前記第一の自動チャレンジ手段が出力した第一の自動チャレンジに対して前記乱数と前記第二乱数を用いて第一のレスポンスを演算する第一のレスポンス手段と、
    前記第一のコミットメント手段の出力である第一のコミットメントと、前記第一のレスポンス手段の出力である第一のレスポンスを第一の証明文として出力する第一の証明文出力手段と、
    を備え、
    前記第一の検証手段が、
    前記第一の証明文出力手段の出力に含まれる第一のコミットメントから第一の自動チャレンジを生成する第一の自動チャレンジ手段と、
    前記第一のレスポンス手段の出力が、前記第一のコミットメント手段の出力、第一の自動チャレンジ手段の出力と一貫性があるか否かを確認する第二の判定手段と、
    を備えている、ことを特徴とする証明システム。
  10. 請求項1、3、5のいずれか一に記載の証明システムにおいて、
    前記第一の証明手段が、
    第二乱数を発生させる第二の乱数発生手段と、
    前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、β変換させる第一のコミットメント手段と、
    前記第一のコミットメント手段の出力から第一の自動チャレンジを生成する第一の自動チャレンジ手段と、
    前記第一の自動チャレンジ手段が出力した第一の自動チャレンジに対して前記乱数と前記第二乱数を用いて第一のレスポンスを演算する第一のレスポンス手段と、
    前記第一の自動チャレンジ手段の出力である第一の自動チャレンジと第一のレスポンス手段の出力である第一のレスポンスを第一の証明文として出力する第一の証明文出力手段と、
    を備え、
    前記第一の検証手段が、
    前記第一の前記証明文出力手段の出力した第一の証明文に含まれる第一の自動チャレンジと第一のレスポンスが一貫性があるか否かを確認する第二の判定手段を備えている、ことを特徴とする証明システム。
  11. 請求項1、3、5のいずれか一に記載の証明システムにおいて、
    前記第二の証明手段が、
    第三乱数を発生させる第三の乱数発生手段と、
    前記第三の乱数発生手段で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント手段と、
    前記第二の検証手段が出力した第二のチャレンジに対して前記乱数と前記第三乱数を用いて演算する第二のレスポンス手段と、
    を備え、
    前記第二の検証手段が、
    前記第二のコミットメント手段の出力を受信したのち、第二のチャレンジを生成する第二のチャレンジ手段と、
    前記第二のレスポンス手段の出力が、前記第二のコミットメント手段の出力及び第二のチャレンジ手段の出力と一貫性があるか否かを確認する第三の判定手段と、
    を備えている、ことを特徴とする証明システム。
  12. 請求項1、3、5のいずれか一に記載の証明システムにおいて、
    前記第二の証明手段が、
    前記第二の検証手段が出力した第二のチャレンジ準備を受信したのち、第五乱数及び第六乱数を発生させる第四の乱数発生手段と、
    前記第四の乱数発生手段で発生させた前記第五乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント手段と、
    前記第二の検証手段が出力した第二のチャレンジを受信したのち、前記第二のチャレンジ準備の正当性を確認し,前記乱数と前記第五乱数と前記第六乱数を用いて第二のレスポンスを演算する第二のレスポンス手段と、
    を備え、
    前記第二の検証手段が、
    第七乱数を発生させる第五の乱数発生手段と、
    前記第五の乱数発生手段で発生させた前記第七の乱数を用いて、前記第二のチャレンジ準備を生成する第二のチャレンジ準備手段と、
    前記第四の乱数発生手段で発生させた前記第六乱数及び,前記第二のコミットメント手段の出力を受信したのち、第七乱数を用いて第二のチャレンジを生成する第二のチャレンジ手段と、
    前記第二のレスポンス手段の出力が、前記第二のコミットメント手段の出力、第七乱数および第六乱数と一貫性があるか否かを確認する第三の判定手段と、 を備えている、ことを特徴とする証明システム。
  13. 請求項1、3、5のいずれか一に記載の証明システムにおいて、
    前記第二の証明手段が、
    第三乱数を発生させる第三の乱数発生手段と、
    前記第三の乱数発生手段で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント手段と、
    前記第二のコミットメント手段の出力から第二の自動チャレンジを生成する第二の自動チャレンジ手段と、
    前記第二の自動チャレンジ手段が出力した第二の自動チャレンジに対して前記乱数と前記第三乱数を用いて第二のレスポンスを演算する第二のレスポンス手段と、
    前記第二のコミットメント手段の出力である第二のコミットメントと、前記第二のレスポンス手段の出力である第二のレスポンスを、第二の証明文として出力する第二の証明文出力手段と、
    を備え、
    前記第二の検証手段が、
    前記第二の証明文出力手段の出力に含まれる第二のコミットメントから第二の自動チャレンジを生成する第二の自動チャレンジ手段と、
    前記第二のレスポンス手段の出力が、前記第二のコミットメント手段の出力、第二の自動チャレンジ手段の出力と一貫性があるか否かを確認する第三の判定手段と、
    を備えている、ことを特徴とする証明システム。
  14. 請求項1、3、5のいずれか一に記載の証明システムにおいて、
    前記第二の証明手段が、
    第三乱数を発生させる第三の乱数発生手段と、
    前記第三の乱数発生手段で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント手段と、
    前記第二のコミットメント手段の出力から第二の自動チャレンジを生成する第二の自動チャレンジ手段と、
    前記第二の自動チャレンジ手段が出力した第二の自動チャレンジに対して前記乱数と前記第三乱数を用いて第二のレスポンスを演算する第二のレスポンス手段と、
    前記第二の自動チャレンジ手段の出力である第二の自動チャレンジと、前記第二のレスポンス手段の出力である第二のレスポンスを、第二の証明文として出力する第二の証明文出力手段と、
    を備え、
    前記第二の検証手段が、
    前記第二の前記証明文出力手段の出力した第二の証明文に含まれる第二の自動チャレンジと第二のレスポンスが一貫性があるか否かを確認する第三の判定手段を備えている、ことを特徴とする証明システム。
  15. 請求項2、4、6のいずれか一に記載の証明システムにおいて、
    前記証明手段が、
    第二乱数を発生させる第二の乱数発生手段と、
    前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段と、
    前記第一の検証手段が出力したチャレンジに対して前記乱数と前記第二乱数を用いて演算するレスポンス手段と、
    を備え、
    前記第一の検証手段が、
    前記コミットメント手段の出力を受信したのち、チャレンジを生成するチャレンジ手段と、
    前記レスポンス手段の出力が、前記コミットメント手段の出力、及び前記チャレンジ手段の出力と一貫性があるか否かを確認する第二の判定手段と、
    を備えている、ことを特徴とする証明システム。
  16. 請求項2、4、6のいずれか一に記載の証明システムにおいて、
    前記証明手段が、第一の検証手段が出力したチャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二の乱数発生手段と、
    前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段と、
    前記第一の検証手段が出力したチャレンジを受信したのち、前記チャレンジ準備の正当性を確認し、前記乱数と前記第二乱数と前記第三乱数とを用いてレスポンスを演算するレスポンス手段と、
    を備え、
    前記第一の検証手段が、
    第四乱数を発生させる第三の乱数発生手段と、
    前記第三の乱数発生手段で発生させた前記第四乱数を用いて、前記チャレンジ準備を生成するチャレンジ準備手段と、
    前記第二の乱数発生手段で発生させた前記第三乱数、及び、前記コミットメント手段の出力を受信したのち、第四乱数を用いてチャレンジを生成するチャレンジ手段と、
    前記レスポンス手段の出力が、前記コミットメント手段の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二の判定手段と、
    を備えている、ことを特徴とする証明システム。
  17. 請求項2、4、6のいずれか一に記載の証明システムにおいて、
    前記証明手段が、
    第二乱数を発生させる第二の乱数発生手段と、
    前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段と、
    前記コミットメント手段の出力から自動チャレンジを生成する自動チャレンジ手段と、
    前記自動チャレンジ手段が出力した自動チャレンジに対して前記乱数と前記第二乱数を用いてレスポンスを演算するレスポンス手段と、
    前記コミットメント手段の出力であるコミットメントとレスポンス手段の出力であるレスポンスを証明文として出力する証明文出力手段と、
    を備え、
    前記第一の検証手段が、
    前記証明文出力手段の出力に含まれるコミットメントから自動チャレンジを生成する自動チャレンジ手段と、
    前記レスポンス手段の出力が、前記コミットメント手段の出力、自動チャレンジ手段の出力と一貫性があるか否かを確認する第二の判定手段と、
    を備えている、ことを特徴とする証明システム。
  18. 請求項2、4、6のいずれか一に記載の証明システムにおいて、
    前記証明手段が、第二乱数を発生させる第二の乱数発生手段と、
    前記第二の乱数発生手段で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント手段と、
    前記コミットメント手段の出力から生成される自動チャレンジを生成する自動チャレンジ手段と、
    前記自動チャレンジ手段が出力した自動チャレンジに対して前記乱数と前記第二乱数とを用いてレスポンスを演算するレスポンス手段と、
    前記自動チャレンジ手段の出力した自動チャレンジと、前記レスポンス手段のレスポンスを証明文として出力する証明文出力手段と、
    を備え、
    前記第一の検証手段が、前記証明文出力手段の出力した証明文に含まれる自動チャレンジとレスポンスが一貫性があるか否かを確認する第二の判定手段を備えている、ことを特徴とする証明システム。
  19. 請求項1乃至18のいずれか一に記載の前記証明機構を備えた装置。
  20. 請求項1乃至18のいずれか一に記載の前記検証機構を備えた装置。
  21. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出して冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換処理で出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
    (d)前記変数変換処理で出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (e)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
    (f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
    (g)β'とγ'が同じであることを確認する第三の検証処理と、
    (h)前記第一の検証処理、前記第二の検証処理、および前記第三の検証処理の結果により、証明を受理するか否かを判定する判定処理、
    の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  22. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
    (e)β'とγ'が同じであることを確認する第二の検証処理と、
    (f)前記第一の検証処理および前記第二の検証処理の結果により、証明を受理するか否かを判定する判定処理、
    の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  23. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換処理で出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
    (d)前記変数変換処理で出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (e)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'を受け取りα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
    (f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
    (g)β'とγ'が異なることを確認する第三の検証処理と、
    (h)前記第一の検証処理、前記第二の検証処理、および前記第三の検証処理の結果により、証明を受理するか否かを判定する判定処理、
    の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  24. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、前記βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換処理により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
    (e)β'とγ'が異なることを確認する第二の検証処理と、
    (f)前記第一の検証処理および前記第二の検証処理の結果により、証明を受理するか否かを判定する判定処理、
    の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  25. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出して該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換処理により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
    (d)前記変数変換処理により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (e)前記証明機構の前記変数変換処理が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
    (f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
    (g)β'とγ'を比較する比較処理と、
    (h)前記第一の検証処理、前記第二の検証処理、および前記比較処理の結果により、証明を受理するか否かを判定する判定処理、
    の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  26. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、前記証明機構と情報の授受を行う検証機構とによる証明方法であって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換処理により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
    (e)β'とγ'を比較する比較処理と、
    (f)前記第一の検証処理及び前記比較処理の結果により、証明を受理するか否かを判定する判定処理、
    の各ステップが実行される、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  27. 請求項21、23、25のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記第一の証明処理が、
    (1)第二乱数を発生させる第二の乱数発生処理と、
    (2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント処理と、
    (3)前記第一の検証処理が出力した第一のチャレンジに対して、前記乱数と前記第二乱数を用いて演算する第一のレスポンス処理、
    の各ステップを有し、
    前記第一の検証処理が、
    (4)前記第一のコミットメント処理の出力を受信したのち、第一のチャレンジを生成する第一のチャレンジ処理と、
    (5)前記第一のレスポンス処理の出力が、前記第一のコミットメント処理の出力及び第一のチャレンジ処理の出力と一貫性があるか否かを確認する第二の判定処理、
    の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  28. 請求項21、23、25のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記第一の証明処理が、
    (1)前記第一の検証処理が出力した第一のチャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二の乱数発生処理と、
    (2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント処理と、
    (3)前記第一の検証処理が出力した第一のチャレンジを受信したのち、前記第一のチャレンジ準備の正当性を確認し,前記乱数と前記第二乱数と前記第三乱数を用いて第一のレスポンスを演算する第一のレスポンス処理、
    の各ステップを有し、
    前記第一の検証処理が、
    (4)第四乱数を発生させる第三の乱数発生処理と、
    (5)前記第三の乱数発生処理で発生させた前記第四乱数を用いて、前記第一のチャレンジ準備を生成する第一のチャレンジ準備処理と、
    (6)前記第二の乱数発生処理で発生させた前記第三乱数及び,前記コミットメント手段の出力を受信したのち、第四乱数を用いて第一のチャレンジを生成する第一のチャレンジ処理と、
    (7)前記第一のレスポンス処理の出力が、前記第一のコミットメント処理の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二の判定処理、の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  29. 請求項21、23、25のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記第一の証明処理が、
    (1)第二乱数を発生させる第二の乱数発生処理と、
    (2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、βを変換させる第一のコミットメント処理と、
    (3)前記第一のコミットメント処理の出力から第一の自動チャレンジを生成する第一の自動チャレンジ処理と、
    (4)前記第一の自動チャレンジ処理が出力した第一の自動チャレンジに対して前記乱数と前記第二乱数を用いて第一のレスポンスを演算する第一のレスポンス処理と、
    (5)前記第一のコミットメント処理の出力である第一のコミットメントと、前記第一のレスポンス処理の出力である第一のレスポンスを第一の証明文として出力する第一の証明文出力処理、
    の各ステップを有し、
    前記第一の検証処理が、
    (6)前記第一の証明文出力処理の出力に含まれる第一のコミットメントから第一の自動チャレンジを生成する第一の自動チャレンジ処理と、
    (7)前記第一のレスポンス処理の出力が、前記第一のコミットメント処理の出力、第一の自動チャレンジ処理の出力と一貫性があるか否かを確認する第二の判定処理、
    の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  30. 請求項21、23、25のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記第一の証明処理が、
    (1)第二乱数を発生させる第二の乱数発生処理と、
    (2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、β変換させる第一のコミットメント処理と、
    (3)前記第一のコミットメント処理の出力から第一の自動チャレンジを生成する第一の自動チャレンジ処理と、
    (4)前記第一の自動チャレンジ処理が出力した第一の自動チャレンジに対して前記乱数と前記第二乱数を用いて第一のレスポンスを演算する第一のレスポンス処理と、
    (5)前記第一の自動チャレンジ処理の出力である第一の自動チャレンジと第一のレスポンス処理の出力である第一のレスポンスを第一の証明文として出力する第一の証明文出力処理、
    の各ステップを有し、
    前記第一の検証処理が、
    (6)前記第一の前記証明文出力処理の出力した第一の証明文に含まれる第一の自動チャレンジと第一のレスポンスが一貫性があるか否かを確認する第二の判定処理ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  31. 請求項21、23、25のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記第二の証明処理が、
    (1)第三乱数を発生させる第三の乱数発生処理と、
    (2)前記第三の乱数発生処理で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント処理と、
    (3)前記第二の検証処理が出力した第二のチャレンジに対して前記乱数と前記第三乱数を用いて演算する第二のレスポンス処理、
    の各ステップを有し、
    前記第二の検証処理が、
    (4)前記第二のコミットメント処理の出力を受信したのち、第二のチャレンジを生成する第二のチャレンジ処理と、
    (5)前記第二のレスポンス処理の出力が、前記第二のコミットメント処理の出力及び第二のチャレンジ処理の出力と一貫性があるか否かを確認する第三の判定処理、
    の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  32. 請求項21、23、25のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記第二の証明処理が、
    (1)前記第二の検証処理が出力した第二のチャレンジ準備を受信したのち、第五乱数及び第六乱数を発生させる第四の乱数発生処理と、
    (2)前記第四の乱数発生処理で発生させた前記第五乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント処理と、
    (3)前記第二の検証処理が出力した第二のチャレンジを受信したのち、前記第二のチャレンジ準備の正当性を確認し,前記乱数と前記第五乱数と前記第六乱数を用いて第二のレスポンスを演算する第二のレスポンス処理、
    の各ステップを有し、
    前記第二の検証処理が、
    (4)第七乱数を発生させる第五の乱数発生処理と、
    (5)前記第五の乱数発生処理で発生させた前記第七の乱数を用いて、前記第二のチャレンジ準備を生成する第二のチャレンジ準備処理と、
    (6)前記第四の乱数発生処理で発生させた前記第六乱数及び,前記第二のコミットメント処理の出力を受信したのち、第七乱数を用いて第二のチャレンジを生成する第二のチャレンジ処理と、
    (7)前記第二のレスポンス処理の出力が、前記第二のコミットメント処理の出力、第七乱数および第六乱数と一貫性があるか否かを確認する第三の判定処理、の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  33. 請求項21、23、25のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記第二の証明処理が、
    (1)第三乱数を発生させる第三の乱数発生処理と、
    (2)前記第三の乱数発生処理で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント処理と、
    (3)前記第二のコミットメント処理の出力から第二の自動チャレンジを生成する第二の自動チャレンジ処理と、
    (4)前記第二の自動チャレンジ処理が出力した第二の自動チャレンジに対して前記乱数と前記第三乱数を用いて第二のレスポンスを演算する第二のレスポンス処理と、
    (5)前記第二のコミットメント処理の出力である第二のコミットメントと、前記第二のレスポンス処理の出力である第二のレスポンスを、第二の証明文として出力する第二の証明文出力処理、
    の各ステップを有し、
    前記第二の検証処理が、
    (6)前記第二の証明文出力処理の出力に含まれる第二のコミットメントから第二の自動チャレンジを生成する第二の自動チャレンジ処理と、
    (7)前記第二のレスポンス処理の出力が、前記第二のコミットメント処理の出力、第二の自動チャレンジ処理の出力と一貫性があるか否かを確認する第三の判定処理、
    の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  34. 請求項21、23、25のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記第二の証明処理が、
    (1)第三乱数を発生させる第三の乱数発生処理と、
    (2)前記第三の乱数発生処理で発生させた前記第三乱数を用いて、前記第一の底,第二の底を変換させる第二のコミットメント処理と、
    (3)前記第二のコミットメント処理の出力から第二の自動チャレンジを生成する第二の自動チャレンジ処理と、
    (4)前記第二の自動チャレンジ処理が出力した第二の自動チャレンジに対して前記乱数と前記第三乱数を用いて第二のレスポンスを演算する第二のレスポンス処理と、
    (5)前記第二の自動チャレンジ処理の出力である第二の自動チャレンジと、前記第二のレスポンス処理の出力である第二のレスポンスを、第二の証明文として出力する第二の証明文出力処理、
    の各ステップを有し、
    前記第二の検証処理が、
    前記第二の前記証明文出力処理の出力した第二の証明文を受信し、前記第二の証明文に含まれる第二の自動チャレンジと、前記第二のレスポンスが一貫性があるか否かを確認する第三の判定処理ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  35. 請求項22、24、26のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記証明処理が、
    (1)第二乱数を発生させる第二の乱数発生処理と、
    (2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント処理と、
    (3)前記第一の検証処理が出力したチャレンジに対して前記乱数と前記第二乱数を用いて演算するレスポンス処理、
    の各ステップを有し、
    前記第一の検証処理が、
    (4)前記コミットメント処理の出力を受信したのち、チャレンジを生成するチャレンジ処理と、
    (5)前記レスポンス処理の出力が、前記コミットメント処理の出力、及び前記チャレンジ処理の出力と一貫性があるか否かを確認する第二の判定処理、
    の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  36. 請求項22、24、26のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記証明処理が、
    (1)前記第一の検証処理が出力したチャレンジ準備を受信したのち、第二乱数及び第三乱数を発生させる第二の乱数発生処理と、
    (2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント処理と、
    (3)前記第一の検証処理が出力したチャレンジを受信したのち、前記チャレンジ準備の正当性を確認し、前記乱数と前記第二乱数と前記第三乱数とを用いてレスポンスを演算するレスポンス処理と、
    の各ステップを有し、
    前記第一の検証処理が、
    (5)第四乱数を発生させる第三の乱数発生処理と、
    (6)前記第三の乱数発生処理で発生させた前記第四乱数を用いて、前記チャレンジ準備を生成するチャレンジ準備処理と、
    (7)前記第二の乱数発生処理で発生させた前記第三乱数、及び、前記コミットメント処理の出力を受信したのち、第四乱数を用いてチャレンジを生成するチャレンジ処理と、
    前記レスポンス処理の出力が、前記コミットメント処理の出力、第四乱数および第三乱数と一貫性があるか否かを確認する第二の判定処理と、
    の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  37. 請求項22、24、26のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記証明処理が、
    (1)第二乱数を発生させる第二の乱数発生処理と、
    (2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント処理と、
    (3)前記コミットメント処理の出力から自動チャレンジを生成する自動チャレンジ処理と、
    (4)前記自動チャレンジ処理が出力した自動チャレンジに対して前記乱数と前記第二乱数を用いてレスポンスを演算するレスポンス処理と、
    (5)前記コミットメント処理の出力であるコミットメントと前記レスポンス処理の出力であるレスポンスを証明文として出力する証明文出力処理と、
    の各ステップを有し、
    前記第一の検証処理が、
    (6)前記証明文出力処理の出力に含まれるコミットメントから自動チャレンジを生成する自動チャレンジ処理と、
    (7)前記レスポンス処理の出力が、前記コミットメント処理の出力、自動チャレンジ処理の出力と一貫性があるか否かを確認する第二の判定処理と、
    の各ステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  38. 請求項22、24、26のいずれか一に記載のコンピュータによるゼロ知識証明方法において、
    前記証明処理が、
    (1)第二乱数を発生させる第二の乱数発生処理と、
    (2)前記第二の乱数発生処理で発生させた前記第二乱数を用いて、前記α、β、第一の底,第二の底を変換させるコミットメント処理と、
    (3)前記コミットメント処理の出力から生成される自動チャレンジを生成する自動チャレンジ処理と、
    (4)前記自動チャレンジ処理が出力した自動チャレンジに対して前記乱数と前記第二乱数とを用いてレスポンスを演算するレスポンス処理と、
    (5)前記自動チャレンジ処理の出力した自動チャレンジと、前記レスポンス処理のレスポンスを証明文として出力する証明文出力処理と、
    の各ステップを有し、
    前記第一の検証処理が、
    (6)前記証明文出力処理の出力した証明文に含まれる自動チャレンジとレスポンスが一貫性があるか否かを確認する第二の判定処理のステップを有する、ことを特徴とする、コンピュータによるゼロ知識証明方法。
  39. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出して冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換処理で出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
    (d)前記変数変換処理で出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (e)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
    (f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
    (g)β'とγ'が同じであることを確認する第三の検証処理と、
    (h)前記第一の検証処理、前記第二の検証処理、および前記第三の検証処理の結果により、証明を受理するか否かを判定する判定処理、
    の各ステップが実行され、
    前記(a)乃至(h)の各ステップを前記コンピュータに実行させるプログラム。
  40. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
    (e)β'とγ'が同じであることを確認する第二の検証処理と、
    (f)前記第一の検証処理および前記第二の検証処理の結果により、証明を受理するか否かを判定する判定処理、
    の各ステップが実行され、
    前記(a)乃至(f)の各ステップを前記コンピュータに実行させるプログラム。
  41. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換処理で出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
    (d)前記変数変換処理で出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (e)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'を受け取りα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
    (f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
    (g)β'とγ'が異なることを確認する第三の検証処理と、
    (h)前記第一の検証処理、前記第二の検証処理、および前記第三の検証処理の結果により、証明を受理するか否かを判定する判定処理、
    の各ステップが実行され、
    前記(a)乃至(h)の各ステップを前記コンピュータに実行させるプログラム。
  42. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、前記βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換処理により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
    (e)β'とγ'が異なることを確認する第二の検証処理と、
    (f)前記第一の検証処理および前記第二の検証処理の結果により、証明を受理するか否かを判定する判定処理、
    前記(a)乃至(f)の各ステップを前記コンピュータに実行させるプログラム。
  43. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出して該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換手段により出力されたα'、β'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを示す第一の証明処理と、
    (d)前記変数変換処理により出力されたα'、γ'に対して、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す第二の証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (e)前記証明機構の前記変数変換処理が出力したα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることを確認する第一の検証処理と、
    (f)α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第二の検証処理と、
    (g)β'とγ'を比較する比較処理と、
    (h)前記第一の検証処理、前記第二の検証処理、および前記比較処理の結果により、証明を受理するか否かを判定する判定処理、
    の各ステップが実行され、
    前記(a)乃至(f)の各ステップを前記コンピュータに実行させるプログラム。
  44. 指定された演算体系において、入力された数αおよびβが、あらかじめ指定された2つの異なる底を用いて、αの第一の底における離散対数と、βの第二の底における離散対数が同じであることを示す証明機構と、それを確認する検証機構とをコンピュータ制御により実現するプログラムであって、
    前記証明機構および前記検証機構を構成するコンピュータのそれぞれの記憶手段(「公開情報格納手段」という)に、前記演算体系、α、β、第一の底、第二の底を記憶格納し、
    前記証明機構では、
    αの第一の底における離散対数が秘密情報として記憶手段(「秘密情報格納手段」という)に格納されており、
    (a)乱数を発生させる乱数発生処理と、
    (b)前記乱数発生処理で発生させた前記乱数を用いて、αを前記乱数により冪乗させたα'と、βを前記乱数により冪乗させたβ'と、前記第二の底を前記秘密情報格納手段に格納された秘密情報を読み出し該秘密情報により冪乗させ、さらに前記乱数により冪乗させたγ'とを出力する変数変換処理と、
    (c)前記変数変換処理により出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることと、α'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを示す証明処理、
    の各ステップが実行され、
    前記検証機構では、
    (d)前記証明機構の前記変数変換処理で出力されたα'、β'、γ'に対して、α'の底αにおける離散対数と、β'の底βにおける離散対数が同じであることとα'の第一の底における離散対数と、γ'の第二の底における離散対数が同じであることを確認する第一の検証処理と、
    (e)β'とγ'を比較する比較処理と、
    (f)前記第一の検証処理及び前記比較処理の結果により、証明を受理するか否かを判定する判定処理、
    の各ステップが実行され、
    前記(a)乃至(f)の各ステップを前記コンピュータに実行させるプログラム。
JP2001239615A 2001-08-07 2001-08-07 離散対数の一致または不一致を示すゼロ知識証明システム及び方法 Expired - Lifetime JP4774650B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2001239615A JP4774650B2 (ja) 2001-08-07 2001-08-07 離散対数の一致または不一致を示すゼロ知識証明システム及び方法
US10/212,172 US7003541B2 (en) 2001-08-07 2002-08-06 Zero-knowledge proving system and method
DE60220600T DE60220600T2 (de) 2001-08-07 2002-08-07 Zero-Knowledge-Beweissystem und -verfahren
SG200204765-2A SG135913A1 (en) 2001-08-07 2002-08-07 Zero-knowledge proving system and method
EP02017697A EP1283616B1 (en) 2001-08-07 2002-08-07 Zero-knowledge proving system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001239615A JP4774650B2 (ja) 2001-08-07 2001-08-07 離散対数の一致または不一致を示すゼロ知識証明システム及び方法

Publications (2)

Publication Number Publication Date
JP2003050544A JP2003050544A (ja) 2003-02-21
JP4774650B2 true JP4774650B2 (ja) 2011-09-14

Family

ID=19070338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001239615A Expired - Lifetime JP4774650B2 (ja) 2001-08-07 2001-08-07 離散対数の一致または不一致を示すゼロ知識証明システム及び方法

Country Status (5)

Country Link
US (1) US7003541B2 (ja)
EP (1) EP1283616B1 (ja)
JP (1) JP4774650B2 (ja)
DE (1) DE60220600T2 (ja)
SG (1) SG135913A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239917B2 (en) * 2002-10-16 2012-08-07 Enterprise Information Management, Inc. Systems and methods for enterprise security with collaborative peer to peer architecture
US7840806B2 (en) * 2002-10-16 2010-11-23 Enterprise Information Management, Inc. System and method of non-centralized zero knowledge authentication for a computer network
JP4457651B2 (ja) * 2003-11-27 2010-04-28 日本電気株式会社 証明装置及び証明方法並びにプログラム
US7730319B2 (en) * 2004-08-27 2010-06-01 Ntt Docomo, Inc. Provisional signature schemes
JP4771053B2 (ja) * 2005-05-27 2011-09-14 日本電気株式会社 統合シャッフル正当性証明装置、証明統合装置、統合シャッフル正当性検証装置及びミックスネットシステム
JP4940592B2 (ja) * 2005-08-11 2012-05-30 日本電気株式会社 否認可能零知識対話証明に適用される証明装置及び検証装置
US20090327141A1 (en) * 2007-04-18 2009-12-31 Rabin Michael O Highly efficient secrecy-preserving proofs of correctness of computation
US20120296829A1 (en) * 2010-01-22 2012-11-22 International Business Machines Corporation Unlinkable Priced Oblivious Transfer with Rechargeable Wallets
KR20120072032A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 모바일 단말의 상호인증 시스템 및 상호인증 방법
DE102014010455A1 (de) * 2014-07-14 2016-01-14 Giesecke & Devrient Gmbh Datensparsame Authentisierung
US9569176B2 (en) 2014-10-30 2017-02-14 Seagate Technology Llc Deriving entropy from multiple sources having different trust levels
US10536266B2 (en) 2017-05-02 2020-01-14 Seagate Technology Llc Cryptographically securing entropy for later use
US11122033B2 (en) * 2017-12-19 2021-09-14 International Business Machines Corporation Multi factor authentication
US11012435B2 (en) 2017-12-19 2021-05-18 International Business Machines Corporation Multi factor authentication
CN111090842B (zh) * 2019-12-23 2022-04-26 上海源庐加佳信息科技有限公司 一种基于零知识证明的供应链金融客户贷款信息保护方法
US11272363B2 (en) * 2020-03-25 2022-03-08 Nxp B.V. Authentication method in a communication system
CN111738857B (zh) * 2020-06-28 2021-07-06 深圳前海微众银行股份有限公司 应用于区块链的隐匿支付证明的生成与验证方法及装置
JP7116385B1 (ja) 2021-12-22 2022-08-10 三菱地所Itソリューションズ株式会社 情報処理装置、情報処理方法、プログラム、マンション管理組合端末、及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0804003A3 (en) * 1996-04-26 2000-11-15 Canon Kabushiki Kaisha Digital signature method and communication system
US6282295B1 (en) * 1997-10-28 2001-08-28 Adam Lucas Young Auto-recoverable and auto-certifiable cryptostem using zero-knowledge proofs for key escrow in general exponential ciphers
JP3562262B2 (ja) * 1997-10-17 2004-09-08 富士ゼロックス株式会社 認証方法および装置
US6411715B1 (en) * 1997-11-10 2002-06-25 Rsa Security, Inc. Methods and apparatus for verifying the cryptographic security of a selected private and public key pair without knowing the private key
GB9902687D0 (en) * 1999-02-08 1999-03-31 Hewlett Packard Co Cryptographic protocol
WO2001022200A2 (en) * 1999-03-25 2001-03-29 Votehere, Inc. Electronic voting scheme employing permanent ballot storage
JP4181724B2 (ja) * 2000-03-03 2008-11-19 日本電気株式会社 証明付再暗号シャッフル方法と装置、再暗号シャッフル検証方法と装置、入力文列生成方法と装置及び記録媒体

Also Published As

Publication number Publication date
DE60220600D1 (de) 2007-07-26
DE60220600T2 (de) 2008-02-21
SG135913A1 (en) 2007-10-29
EP1283616A3 (en) 2004-05-12
EP1283616B1 (en) 2007-06-13
JP2003050544A (ja) 2003-02-21
US20030065692A1 (en) 2003-04-03
US7003541B2 (en) 2006-02-21
EP1283616A2 (en) 2003-02-12

Similar Documents

Publication Publication Date Title
JP4774650B2 (ja) 離散対数の一致または不一致を示すゼロ知識証明システム及び方法
JP5468157B2 (ja) 公開鍵を検証可能に生成する方法及び装置
Ateniese et al. A practical and provably secure coalition-resistant group signature scheme
US8856524B2 (en) Cryptographic methods, host system, trusted platform module, computer arrangement, computer program product and computer program
US5493614A (en) Private signature and proof systems
Gennaro et al. RSA-based undeniable signatures
Susilo et al. Perfect concurrent signature schemes
JP4692284B2 (ja) グループ署名システム、方法、装置、およびプログラム
JP4932168B2 (ja) 新しいフェア・ブラインド署名プロセス
JP4615708B2 (ja) 鍵認証方式
Au et al. Compact e-cash from bounded accumulator
JP4809310B2 (ja) エンティティの真正性又はメッセージの完全性を証明するための方法、システム、デバイス
US6959085B1 (en) Secure user identification based on ring homomorphisms
JP4457651B2 (ja) 証明装置及び証明方法並びにプログラム
Susilo et al. On the security of nominative signatures
CN113112268A (zh) 匿名多重签名方法、计算机设备和存储介质
JP4679163B2 (ja) デジタル署名情報生成装置、デジタル署名情報生成方法及びプログラム
Lyuu et al. Convertible group undeniable signatures
JPH11234263A (ja) 相互認証方法および装置
Wang et al. Security remarks on a convertible nominative signature scheme
Huang et al. New constructions of convertible undeniable signature schemes without random oracles
Bichsel et al. Cryptographic protocols underlying privacy-abcs
JP2002328602A (ja) ブラインド署名方法、その装置、そのプログラム及びその記録媒体
JP2004312512A (ja) 匿名署名装置、署名検証装置、匿名署名方法、匿名署名プログラム及び署名検証プログラム
JPH1185016A (ja) 認証システム及びディジタル署名システムの設計方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080711

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110531

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110613

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4774650

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

EXPY Cancellation because of completion of term