JP5593850B2 - 認証装置、認証方法、プログラム、及び署名生成装置 - Google Patents

認証装置、認証方法、プログラム、及び署名生成装置 Download PDF

Info

Publication number
JP5593850B2
JP5593850B2 JP2010125021A JP2010125021A JP5593850B2 JP 5593850 B2 JP5593850 B2 JP 5593850B2 JP 2010125021 A JP2010125021 A JP 2010125021A JP 2010125021 A JP2010125021 A JP 2010125021A JP 5593850 B2 JP5593850 B2 JP 5593850B2
Authority
JP
Japan
Prior art keywords
information
verification
algorithm
message
verifier
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 - Fee Related
Application number
JP2010125021A
Other languages
English (en)
Other versions
JP2011254155A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2010125021A priority Critical patent/JP5593850B2/ja
Priority to US13/112,819 priority patent/US8433912B2/en
Priority to CN201110145045.4A priority patent/CN102263639B/zh
Publication of JP2011254155A publication Critical patent/JP2011254155A/ja
Priority to US13/855,427 priority patent/US8826025B2/en
Application granted granted Critical
Publication of JP5593850B2 publication Critical patent/JP5593850B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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
    • H04L9/3221Cryptographic 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 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/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/3247Cryptographic 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 involving digital signatures
    • H04L9/3255Cryptographic 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 involving digital signatures using group based signatures, e.g. ring or threshold signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、認証装置、認証方法、プログラム、及び署名生成装置に関する。
情報処理技術や通信技術の急速な発展に伴い、公文書、私文書を問わず、文書の電子化が急速に進んでいる。これに伴い、多くの個人や企業は、電子文書の安全管理に大きな関心を寄せている。こうした関心の高まりを受け、各方面で電子文書の盗聴や偽造等のタンパリング行為に対する安全性が盛んに議論されるようになってきた。電子文書の盗聴に対する安全性は、例えば、電子文書を暗号化することにより確保される。また、電子文書の偽造に対する安全性は、例えば、電子署名を利用することにより確保される。但し、暗号や電子署名には十分なタンパリング耐性が求められる。
電子署名は、電子文書の作成者を特定するために利用される。そのため、電子署名は、電子文書の作成者しか生成できないようにすべきである。仮に、悪意ある第三者が同じ電子署名を生成できてしまうと、その第三者が電子文書の作成者に成りすますことができてしまう。つまり、悪意ある第三者により電子文書が偽造されてしまう。こうした偽造を防止するため、電子署名の安全性については様々な議論が交わされてきた。現在広く利用されている電子署名方式としては、例えば、RSA署名方式やDSA署名方式を利用する方式が知られている。
RSA署名方式は、「大きな合成数に対する素因数分解の困難性(以下、素因数分解問題)」を安全性の根拠とする。また、DSA署名方式は、「離散対数問題に対する解答の困難性」を安全性の根拠とする。これらの根拠は、古典的なコンピュータを利用して素因数分解問題や離散対数問題を効率的に解くアルゴリズムが存在しないことに起因する。つまり、上記の困難性は、古典的なコンピュータにおける計算量的な困難性を意味する。しかしながら、量子コンピュータを用いると、素因数分解問題や離散対数問題に対する解答が効率的に算出されてしまうと言われている。
現在利用されている電子署名方式や公開鍵認証方式の多くは、RSA署名方式やDSA署名方式と同様、素因数分解問題や離散対数問題の困難性に安全性の根拠をおいている。そのため、こうした電子署名方式や公開鍵認証方式は、量子コンピュータが実用化された場合に、その安全性が確保されないことになる。そこで、素因数分解問題や離散対数問題など、量子コンピュータにより容易に解かれてしまう問題とは異なる問題に安全性の根拠をおく新たな電子署名方式及び公開鍵認証方式が求められている。量子コンピュータにより容易に解くことが難しい問題としては、例えば、代数曲面上の求セクション問題がある。下記の非特許文献1には、代数曲面上の求セクション問題を安全性の根拠とする電子署名方式(以下、ASS−CC方式)が開示されている。
Yuichi Komano, Koichiro Akiyama, Yochikazu Hanatani, and Hideyuki Miyake, ASS−CC: Provably Secure Algebraic Surface Signature Seheme. The 2010 Symposium on Cryptography and Information Security Miyazaki, Japan, Jan. 19−22, 2010.
しかしながら、ASS−CC方式は、本件発明者らによる検証の結果、安全性に欠陥があることが判明した。そのため、ASS−CC方式に基づく電子署名方式、及びこれを応用した公開鍵認証方式は、安全上の問題から実際には利用できない。そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、代数曲面上の求セクション問題を安全性の根拠とし、安全性が確認された公開鍵署名方式を実現することが可能な、新規かつ改良された認証装置、認証方法、プログラム、及び署名生成装置を提供することにある。また、その応用として電子署名方式を実現することも可能である。
上記課題を解決するために、本発明のある観点によれば、多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定部と、検証者に対してメッセージcを送信するメッセージ送信部と、1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信部と、k通りの回答情報の中から、前記検証パターン受信部により受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信部と、を備え、前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uが計算可能となる情報である、認証装置が提供される。
また、上記の認証装置は、前記メッセージ送信部により単数又は複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第2ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第3ステップを実行し、前記検証者により全ての回答情報で検証が成功した場合に認証が成功する、ように構成されていてもよい。
また、上記の認証装置は、前記メッセージ送信部により複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第2ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第3ステップを実行する処理を繰り返し、前記第1〜第3ステップを所定回数実行した結果、前記検証者により毎回全ての回答情報で検証が成功した場合に認証が成功する、ように構成されていてもよい。
また、前記メッセージcがc=(c,…,c)である場合、前記メッセージ送信部は、一方向性関数Hを用いて新たなメッセージc’=H(c)を算出して、前記検証者に対してメッセージc’を送信し、前記回答送信部は、前記回答情報と共に、当該回答情報を利用しても前記検証者が復元することができないメッセージcの要素を送信する、ように構成されていてもよい。
また、上記課題を解決するために、本発明の別の観点によれば、多次多項式u(t)(i=1〜n−1)が秘密鍵に設定され、f(u(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、証明者からメッセージcを受信するメッセージ受信部と、1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から1つの検証パターンを選択する検証パターン選択部と、前記検証パターン選択部により選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信部と、k通りの回答情報の中から、前記検証パターン送信部により送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信部と、前記メッセージ受信部により受信されたメッセージc、及び前記回答受信部により受信された回答情報を用いて前記証明者の正当性を検証する検証部と、を備え、前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uが計算可能となる情報である、認証装置が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定部と、検証者に対してメッセージcを送信するメッセージ送信部と、前記検証者から応答αを受信する応答受信部と、前記応答受信部により受信された応答αを用いて、前記メッセージcに対する検証に利用される多項式f”を生成する多項式生成部と、前記多項式生成部により生成された多項式f”を前記検証者に送信する多項式送信部と、1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信部と、k通りの回答情報の中から、前記検証パターン受信部により受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信部と、を備え、前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uが計算可能となる情報である、認証装置が提供される。
また、上記の認証装置は、前記メッセージ送信部により複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記応答受信部から応答αを受信する第2ステップ、当該第2ステップで受信した応答αを用いて前記多項式生成部によりそれぞれ多項式f”を生成し、前記多項式送信部により当該多項式f”を送信する第3ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第4ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第5ステップを実行し、前記検証者により全ての回答情報で検証が成功した場合に認証が成功する、ように構成されていてもよい。
また、上記の認証装置は、前記メッセージ送信部により単数又は複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記応答受信部から応答αを受信する第2ステップ、当該第2ステップで受信した応答αを用いて前記多項式生成部によりそれぞれ多項式f”を生成し、前記多項式送信部により当該多項式f”を送信する第3ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第4ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第5ステップを実行する処理を繰り返し、前記第1〜第5ステップを所定回数実行した結果、前記検証者により毎回全ての回答情報で検証が成功した場合に認証が成功する、ように構成されていてもよい。
また、上記課題を解決するために、本発明の別の観点によれば、多次多項式u(t)(i=1〜n−1)が秘密鍵に設定され、f(u(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、証明者からメッセージcを受信するメッセージ受信部と、前記証明者に対して応答αを送信する応答送信部と、前記応答送信部により送信された応答αを用いて前記証明者により生成された、前記メッセージcに対する検証に利用される多項式f”を受信する多項式受信部と、1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から1つの検証パターンを選択する検証パターン選択部と、前記検証パターン選択部により選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信部と、k通りの回答情報の中から、前記検証パターン送信部により送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信部と、前記メッセージ受信部により受信されたメッセージc、前記多項式受信部により受信された多項式f”、及び前記回答受信部により受信された回答情報を用いて前記証明者の正当性を検証する検証部と、を備え、前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uが計算可能となる情報である、認証装置が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定ステップと、検証者に対してメッセージcを送信するメッセージ送信ステップと、1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信ステップと、k通りの回答情報の中から、前記検証パターン受信ステップで受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信ステップと、を含み、前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uが計算可能となる情報である、認証方法が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、多次多項式u(t)(i=1〜n−1)が秘密鍵に設定され、f(u(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、証明者からメッセージcを受信するメッセージ受信ステップと、1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から1つの検証パターンを選択する検証パターン選択ステップと、前記検証パターン選択ステップで選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信ステップと、k通りの回答情報の中から、前記検証パターン送信ステップで送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信ステップと、前記メッセージ受信ステップで受信されたメッセージc、及び前記回答受信ステップで受信された回答情報を用いて前記証明者の正当性を検証する検証ステップと、を含み、前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uが計算可能となる情報である、認証方法が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定ステップと、検証者に対してメッセージcを送信するメッセージ送信ステップと、前記検証者から応答αを受信する応答受信ステップと、前記応答受信ステップで受信された応答αを用いて、前記メッセージcに対する検証に利用される多項式f”を生成する多項式生成ステップと、前記多項式生成ステップで生成された多項式f”を前記検証者に送信する多項式送信ステップと、1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信ステップと、k通りの回答情報の中から、前記検証パターン受信ステップで受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信ステップと、を含み、前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uが計算可能となる情報である、認証装置が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、多次多項式u(t)(i=1〜n−1)が秘密鍵に設定され、f(u(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、証明者からメッセージcを受信するメッセージ受信ステップと、前記証明者に対して応答αを送信する応答送信ステップと、前記応答送信ステップで送信された応答αを用いて前記証明者により生成された、前記メッセージcに対する検証に利用される多項式f”を受信する多項式受信ステップと、1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から1つの検証パターンを選択する検証パターン選択ステップと、前記検証パターン選択ステップで選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信ステップと、k通りの回答情報の中から、前記検証パターン送信ステップで送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信ステップと、前記メッセージ受信ステップで受信されたメッセージc、前記多項式受信ステップで受信された多項式f”、及び前記回答受信ステップで受信された回答情報を用いて前記証明者の正当性を検証する検証ステップと、を含み、前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uが計算可能となる情報である、認証装置が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定機能と、検証者に対してメッセージcを送信するメッセージ送信機能と、1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信機能と、k通りの回答情報の中から、前記検証パターン受信機能により受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信機能と、をコンピュータに実現させるためのプログラムであり、前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uが計算可能となる情報である、プログラムが提供される。さらに、上記課題を解決するために、本発明の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定部と、前記多次多項式u(t)に基づいてN個のメッセージcを生成するメッセージ生成部と、文書M及び前記メッセージcを一方向性関数に適用して得られた情報に基づいて、kN通り(k≧3)の検証パターンの中から検証パターンを選択する検証パターン選択部と、前記検証パターン選択部により選択された検証パターンに応じて、前記メッセージc及び前記文書Mを用いた検証を通過するような電子署名σを生成する署名生成部と、を備え、前記電子署名σは、前記(k−1)N+1通りの検証パターンに対応する電子署名σを用いて実施した検証が全て成功した場合に秘密鍵uが計算可能となる情報である、署名生成装置が提供される。
以上説明したように本発明によれば、代数曲面上の求セクション問題を安全性の根拠とし、安全性が確認された公開鍵署名方式を実現することが可能になる。また、その応用として、代数曲面上の求セクション問題を安全性の根拠とし、安全性が確認された電子署名方式を実現することも可能である。
公開鍵認証方式のアルゴリズム構成について説明するための説明図である。 電子署名方式のアルゴリズム構成について説明するための説明図である。 nパスの公開鍵認証方式について説明するための説明図である。 ASS−CC−IP公開鍵認証方式のアルゴリズムについて説明するための説明図である。 ASS−CC−IP公開鍵認証方式のアルゴリズムに対する偽証アルゴリズムについて説明するための説明図である。 本発明の第1実施形態(3パス)に係る公開鍵認証方式のアルゴリズムについて説明するための説明図である。 同実施形態に係る公開鍵認証方式の拡張アルゴリズムについて説明するための説明図である。 同実施形態に係る公開鍵認証方式の並列化アルゴリズムについて説明するための説明図である。 同実施形態に係る公開鍵認証方式の非対話型アルゴリズムについて説明するための説明図である。 同実施形態に係る公開鍵認証方式の具体的なアルゴリズムについて説明するための説明図である。 本発明の第2実施形態(5パス)に係る公開鍵認証方式のアルゴリズムについて説明するための説明図である。 同実施形態に係る公開鍵認証方式の拡張アルゴリズムについて説明するための説明図である。 同実施形態に係る公開鍵認証方式の並列化アルゴリズムについて説明するための説明図である。 同実施形態に係る公開鍵認証方式の拡張アルゴリズムに対する並列化について説明するための説明図である。 同実施形態に係る公開鍵認証方式の非対話型アルゴリズムについて説明するための説明図である。 同実施形態に係る公開鍵認証方式の具体的なアルゴリズムについて説明するための説明図である。 本発明の各実施形態に係るアルゴリズムを実行することが可能な情報処理装置のハードウェア構成例について説明するための説明図である。 本発明の第1及び第2実施形態に係る公開鍵認証方式の効率を比較した図表である。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
[説明の流れについて]
ここで、以下に記載する本発明の実施形態に関する説明の流れについて簡単に述べる。まず、図1を参照しながら、公開鍵認証方式のアルゴリズム構成について説明する。次いで、図2を参照しながら、電子署名方式のアルゴリズム構成について説明する。次いで、図3を参照しながら、nパスの公開鍵認証方式について説明する。次いで、図4を参照しながら、ASS−CC−IP公開鍵認証方式のアルゴリズムについて説明する。また、図5を参照しながら、ASS−CC−IP公開鍵認証方式のアルゴリズムに対する偽証アルゴリズムについて説明する。
次いで、図6を参照しながら、本発明の第1実施形態(3パス)に係る公開鍵認証方式のアルゴリズムについて説明する。次いで、図7を参照しながら、同実施形態に係る公開鍵認証方式の拡張アルゴリズムについて説明する。次いで、図8を参照しながら、同実施形態に係る公開鍵認証方式の並列化アルゴリズムについて説明する。次いで、図9を参照しながら、同実施形態に係る公開鍵認証方式の非対話型アルゴリズムについて説明する。次いで、図10を参照しながら、同実施形態に係る公開鍵認証方式の具体的なアルゴリズムについて説明する。
次いで、図11を参照しながら、本発明の第2実施形態(5パス)に係る公開鍵認証方式のアルゴリズムについて説明する。次いで、図12を参照しながら、同実施形態に係る公開鍵認証方式の拡張アルゴリズムについて説明する。次いで、図13、図14を参照しながら、同実施形態に係る公開鍵認証方式の並列化アルゴリズムについて説明する。次いで、図15を参照しながら、同実施形態に係る公開鍵認証方式の非対話型アルゴリズムについて説明する。次いで、図16を参照しながら、同実施形態に係る公開鍵認証方式の具体的なアルゴリズムについて説明する。
次いで、図17を参照しながら、本発明の第1及び第2実施形態に係る各アルゴリズムを実現することが可能な情報処理装置のハードウェア構成例について説明する。最後に、本実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
(説明項目)
1:はじめに
1−1:公開鍵認証方式のアルゴリズム構成
1−2:電子署名方式のアルゴリズム構成
1−3:nパスの公開鍵認証方式
1−4:ASS−CC−IP公開鍵認証方式
1−4−1:ASS−CC電子署名方式について
1−4−2:ASS−CC−IP公開鍵認証方式について
2:第1実施形態
2−1:公開鍵認証方式のアルゴリズム
2−2:拡張アルゴリズム
2−3:並列化アルゴリズム
2−4:非対話型アルゴリズム
2−5:電子署名方式への変形
2−6:具体例
3:第2実施形態
3−1:公開鍵認証方式のアルゴリズム
3−2:拡張アルゴリズム
3−3:並列化アルゴリズム
3−4:非対話型アルゴリズム
3−5:電子署名方式への変形
3−6:具体例
4:ハードウェア構成例
5:まとめ
<1:はじめに>
はじめに、本発明に係る実施形態について詳細に説明するに先立ち、一般的な公開鍵認証方式のアルゴリズム構成、一般的な電子署名方式のアルゴリズム構成、nパスの公開鍵認証方式、ASS−CC−IP公開鍵認証方式について簡単に説明する。
[1−1:公開鍵認証方式のアルゴリズム構成]
まず、図1を参照しながら、一般的な公開鍵認証方式のアルゴリズム構成について説明する。図1は、一般的な公開鍵認証方式のアルゴリズム構成について説明するための説明図である。
(概要)
公開鍵認証方式とは、ある人(証明者)が、公開鍵pk及び秘密鍵skを利用して、他の人(検証者)に本人であることを納得させるための認証方式である。例えば、証明者Aの公開鍵pkは、検証者に公開される。一方、証明者Aの秘密鍵skは、証明者により秘密に管理される。公開鍵認証方式では、公開鍵pkに対応する秘密鍵skを知る者が証明者A本人であるとみなされる。
証明者Aが検証者Bに対して本人であることを証明しようとする場合、証明者Aは、検証者Bと対話プロトコルを実行して、自身が公開鍵pkに対応する秘密鍵skを知っていることを証明すればよい。そして、対話プロトコルにより証明者Aが秘密鍵skを知っていることが検証者Bにより証明された場合、証明者Aの正当性(本人であること)が証明される。
なお、公開鍵認証方式の安全性を確保するには、次に示す2つの条件が求められる。
1つ目の条件は、対話プロトコルを実行した際に秘密鍵skを持たない偽証者により偽証が成立してしまう確率を限りなく小さくすることである。この1つ目の条件が成り立つことを「健全性」と呼ぶ。つまり、健全性を有する対話プロトコルにおいては、秘密鍵skを持たない偽証者により、無視できない確率で偽証が成立することはないと言い換えられる。2つ目の条件は、対話プロトコルを実行したとしても、証明者Aが有する秘密鍵skの情報が検証者Bに一切漏れることがないようにすることである。この2つ目の条件が成り立つことを「零知識性」と呼ぶ。
上記の健全性と零知識性を有する対話プロトコルを利用することにより、公開鍵認証方式の安全性が確保される。
(モデル)
公開鍵認証方式のモデルには、図1に示すように、証明者と検証者という2つのエンティティが存在する。証明者は、鍵生成アルゴリズムGenを用いて、証明者固有の秘密鍵skと公開鍵pkの組を生成する。次いで、証明者は、鍵生成アルゴリズムGenを用いて生成した秘密鍵skと公開鍵pkの組を利用して検証者と対話プロトコルを実行する。このとき、証明者は、証明者アルゴリズムPを利用して対話プロトコルを実行する。上記の通り、対話プロトコルにおいて、証明者は、証明者アルゴリズムPを利用して、秘密鍵skを保有していることを検証者に証明する。
一方、検証者は、検証者アルゴリズムVを利用して対話プロトコルを実行し、証明者が公開している公開鍵に対応する秘密鍵を、その証明者が保有しているか否かを検証する。つまり、検証者は、証明者が公開鍵に対応する秘密鍵を保有しているか否かを検証するエンティティである。このように、公開鍵認証方式のモデルは、証明者と検証者という2つのエンティティ、及び、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVという3つのアルゴリズムにより構成される。
なお、以下の説明において、「証明者」「検証者」という表現を用いるが、これらの表現はあくまでもエンティティを意味するものである。従って、鍵生成アルゴリズムGen、証明者アルゴリズムPを実行する主体は、「証明者」のエンティティに対応する情報処理装置である。同様に、検証者アルゴリズムVを実行する主体は、情報処理装置である。これら情報処理装置のハードウェア構成は、例えば、図17に示した通りである。つまり、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVは、ROM904、RAM906、記憶部920、リムーバブル記録媒体928などに記録されたプログラムに基づいてCPU902により実行される。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、証明者により利用される。そして、鍵生成アルゴリズムGenは、証明者に固有の秘密鍵skと公開鍵pkの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された公開鍵pkは公開される。そして、公開された公開鍵pkは、検証者により利用される。一方、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者が秘密に管理する。そして、秘密に管理される秘密鍵skは、検証者に対して公開鍵pkに対応する秘密鍵skを保有していることを証明するために利用される。形式的に、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、秘密鍵skと公開鍵pkを出力するアルゴリズムとして、下記の式(1)のように表現される。
Figure 0005593850
(証明者アルゴリズムP)
証明者アルゴリズムPは、証明者により利用される。そして、証明者アルゴリズムPは、公開鍵pkに対応する秘密鍵skを保有していることを証明するアルゴリズムである。証明者アルゴリズムPは、証明者の秘密鍵skと公開鍵pkを入力とし、検証者との対話プロトコルを実行するアルゴリズムとして定義される。
(検証者アルゴリズムV)
検証者アルゴリズムVは、検証者により利用される。そして、検証者アルゴリズムVは、対話プロトコルの中で、公開鍵pkに対応する秘密鍵skを証明者が保有しているか否かを検証するアルゴリズムである。検証者アルゴリズムVは、証明者の公開鍵pkを入力とし、証明者との間で対話プロトコルを実行した後、0又は1(1bit)を出力するアルゴリズムとして定義される。なお、出力0の場合には証明者が不正なものであり、出力1の場合には証明者が正当なものであるとする。形式的に、検証者アルゴリズムVは、下記の式(2)のように表現される。
Figure 0005593850
(補足)
上記の通り、公開鍵認証方式は、安全性を確保するため、健全性と零知識性という2つの条件を満たすことが求められる。しかし、証明者が秘密鍵skを保有していることを証明者に証明させるためには、証明者が秘密鍵skに依存した手続きを実行し、その結果を検証者に通知して、その通知内容に基づく検証を検証者に実行させる必要がある。秘密鍵skに依存した手続きを実行するのは、健全性を担保するために必要である。一方で、この手続きの結果を検証者に通知しても、秘密鍵skの情報が一切検証者に漏れないようにする必要がある。そのため、これらの要件を満たすように、上記の鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVが設計されることが必要になる。
以上、一般的な公開鍵認証方式のアルゴリズム構成について説明した。
[1−2:電子署名方式のアルゴリズム構成]
次に、図2を参照しながら、一般的な電子署名方式のアルゴリズム構成について説明する。図2は、一般的な電子署名方式のアルゴリズム構成について説明するための説明図である。
(概要)
紙文書とは異なり、ある電子化されたデータに対して押印したり署名を記載したりすることはできない。そのため、電子化されたデータの作成者を証明するためには、紙文書に押印したり署名を記載したりするのと同等の効果を奏する電子的な仕組みが必要とされる。このような仕組みが電子署名である。例えば、データの作成者しか知らない署名データをデータに関連付けて受領者に提供し、その署名データを受領者側で検証する仕組みのことを電子署名方式と呼ぶ。
(モデル)
電子署名方式のモデルには、図2に示すように、署名者と検証者という2つのエンティティが存在する。そして、電子署名方式のモデルは、鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerという3つのアルゴリズムにより構成される。
署名者は、鍵生成アルゴリズムGenを利用して署名者固有の署名鍵skと検証鍵pkとの組を生成する。また、署名者は、署名生成アルゴリズムSigを利用して文書Mに対して付与する電子署名σを生成する。つまり、署名者は、文書Mに電子署名を付与するエンティティである。一方、検証者は、署名検証アルゴリズムVerを利用して文書Mに付与された電子署名σを検証する。つまり、検証者は、文書Mの作成者が署名者であるか否かを確認するために、電子署名σを検証するエンティティである。
なお、以下の説明において、「署名者」「検証者」という表現を用いるが、これらの表現はあくまでもエンティティを意味するものである。従って、鍵生成アルゴリズムGen、署名生成アルゴリズムSigを実行する主体は、「署名者」のエンティティに対応する情報処理装置である。同様に、署名検証アルゴリズムVerを実行する主体は、情報処理装置である。これら情報処理装置のハードウェア構成は、例えば、図17に示した通りである。つまり、鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerは、ROM904、RAM906、記憶部920、リムーバブル記録媒体928などに記録されたプログラムに基づいてCPU902により実行される。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、署名者により利用される。そして、鍵生成アルゴリズムGenは、署名者固有の署名鍵skと検証鍵pkの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された検証鍵pkは公開される。一方、鍵生成アルゴリズムGenにより生成された署名鍵skは、署名者により秘密に管理される。そして、署名者により秘密に管理されている署名鍵skは、文書Mに付与される電子署名σの生成に利用される。形式的に、鍵生成アルゴリズムGenは、セキュリティパラメータ1^λ(λは0以上の整数)を入力とし、秘密鍵skと公開鍵pkを出力するアルゴリズムとして、下記の式(3)のように表現される。
Figure 0005593850
(署名生成アルゴリズムSig)
署名生成アルゴリズムSigは、署名者により利用される。そして、署名生成アルゴリズムSigは、文書Mに対して付与される電子署名σを生成するアルゴリズムである。形式的に、署名生成アルゴリズムSigは、署名者の署名鍵skと文書Mを入力とし、下記の式(4)に示すように、電子署名σを出力するアルゴリズムとして表現される。
Figure 0005593850
(署名検証アルゴリズムVer)
署名検証アルゴリズムVerは、検証者により利用される。そして、署名検証アルゴリズムVerは、電子署名σが文書Mに対する正当な電子署名であるか否かを検証するアルゴリズムである。形式的に、署名検証アルゴリズムVerは、下記の式(5)に示すように、署名者の検証鍵pk、文書M、電子署名σを入力とし、0又は1(1bit)を出力するアルゴリズムとして表現される。なお、0を出力する場合(公開鍵pkが文書Mと電子署名σを拒否する場合)、文書Mに対する電子署名σは不当である。1を出力する場合(公開鍵pkが文書Mと電子署名σを受理する場合)、文書Mに対する電子署名σは正当である。
Figure 0005593850
以上、一般的な電子署名方式のアルゴリズム構成について説明した。
[1−3:nパスの公開鍵認証方式]
次に、図3を参照しながら、nパスの公開鍵認証方式について説明する。図3は、nパスの公開鍵認証方式について説明するための説明図である。
上記の通り、公開鍵認証方式は、対話プロトコルの中で、証明者が公開鍵pkに対応する秘密鍵skを保有していることを検証者に証明する証方式である。また、公開鍵認証方式の安全性を担保するため、健全性と零知識性という2つの条件を満たす必要がある。そのため、対話プロトコルの中では、図3に示すように、証明者と検証者の双方がそれぞれ処理を実行しながら、証明者と検証者との間でn回の情報交換が行われる。
nパスの公開鍵認証方式の場合、証明者アルゴリズムPを用いて証明者により処理(Step.1)が実行され、情報Tが検証者に送信される。次いで、検証者アルゴリズムVを用いて検証者により処理(Step.2)が実行され、情報Tが証明者に送信される。同様にして処理(Step.3,…,n)が実行され、情報T,…,Tが送信され、処理(Step.n+1)が実行される。このように、情報がn回送受信される対話プロトコルに基づく公開鍵認証方式のことを「nパス」の公開鍵認証方式と呼ぶ。
以上、nパスの公開鍵認証方式について説明した。
[1−4:ASS−CC−IP公開鍵認証方式]
次に、代数曲面上の求セクション問題を安全性の根拠とする公開鍵認証方式の一例について説明する。代数曲面上の求セクション問題とは、環K上で定義されるn変数の多次多項式f(x,…,x)が与えられたときに、f(s(t),…,sn−1(t),t)=0となる環K上の1変数多次多項式s(t),…,sn−1(t)を求める問題である。
(1−4−1:ASS−CC電子署名方式について)
代数曲面上の求セクション問題に安全性の根拠をおく電子署名方式として、ASS−CC電子署名方式(上記の非特許文献1を参照)が知られている。ASS−CC電子署名方式は公開鍵認証方式ではないが、電子署名方式と公開鍵認証方式との関連性を考慮すると、後述するようにASS−CC電子署名方式から、代数曲面上の求セクション問題に安全性をおく公開鍵認証方式を構築することができる。そこで、まず、ASS−CC電子署名方式について説明する。
ASS−CC電子署名方式は、以下に示す鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerにより構成される。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、下記のStep.1、Step.2を実行し、署名鍵(u(t),u(t),t)及び検証鍵X(x,y,t)を生成する。
Step.1:
鍵生成アルゴリズムGenは、関数u(t),u(t),ci,j(t)(但し、(i,j)∈Λ\{0,0})を生成する。但し、Λは、正整数の添え字の集合である。
Step.2:
鍵生成アルゴリズムGenは、c0,0←Σ(i,j)∈Λ\{0,0}i,j(t)u(t)(t)とする。そして、鍵生成アルゴリズムGenは、署名鍵(u(t),u(t),t)、及び、検証鍵X(x,y,t)=Σ(i,j)∈Λi,j(t)x(t)y(t)を生成する。但し、X(u(t),u(t),t)=Σ(i,j)∈Λ\{0,0}i,j(t)u(t)(t)=0である。
(署名生成アルゴリズムSig)
署名生成アルゴリズムSigは、まず、署名鍵(u(t),u(t),t)と文書Mを入力とし、i=1〜nについて、以下のStep.1〜Step.4を実行する。
Step.1:
署名生成アルゴリズムSigは、S{0,1}λを選択し、X’(x,y,t)←H(S)を計算する。但し、H(…)はハッシュ関数である。ハッシュ関数Hは、あるビット列s∈{0,1}から一定範囲の数値を生成する関数である。また、任意のビット列sをハッシュ関数Hに入力して得られた値をハッシュ値と呼ぶ(以下同様)。
Step.2:
署名生成アルゴリズムSigは、セクション(ri,x(t),ri,y(t))を選択し、X”(x,y,t)←X(x−ri,x(t),y−ri,y(t),t)+X’(x,y,t)を計算する。
Step.3:
署名生成アルゴリズムSigは、(zi,x(t),zi,y(t))←(ui,x(t)+ri,x(t),ui,y(t)+ri,y(t))を計算する。
Step.4:
署名生成アルゴリズムSigは、v(t)←H(X’(zi,x(t),zi,y(t),t),zi,x(t),zi,y(t))を計算する。
Step.5:
i=1〜nについて、上記のStep.1〜Step.4の処理を実行した後、署名生成アルゴリズムSigは、d=(d,…,d)←H(M,X”(x,y,t),v(t),…,X”(x,y,t),v(t))を計算する。
次に、署名生成アルゴリズムSigは、i=1〜nについて、以下のStep.6を実行する。
Step.6:
もしd=0ならば、署名生成アルゴリズムSigは、σ←(S,ri,x(t),ri,y(t))を計算する。一方、d=1ならば、署名生成アルゴリズムSigは、σ←(0,zi,x(t),zi,y(t))を計算する。
Step.7:
そして、署名生成アルゴリズムSigは、電子署名σ=(X”(x,y,t),v(t),…,X”(x,y,t),v(t),σ,…,σ)を出力する。
(署名検証アルゴリズムVer)
署名検証アルゴリズムVerは、電子署名σと文書Mを入力とし、次のStep.1〜Step.3を実行する。
Step.1:
署名検証アルゴリズムVerは、d=(d,…,d)←H(M,X”(x,y,t),…,X”(x,y,t),v(t))を計算する。
次に、署名検証アルゴリズムVerは、i=1〜nについて、以下のStep.2を実行する。
Step.2:
もしd=0ならば、署名検証アルゴリズムVerは、σを(S,ri,x(t),ri,y(t))に分割する。次いで、署名検証アルゴリズムVerは、X’(x,y,t)←H(S)を計算する。次いで、署名検証アルゴリズムVerは、X”(x,y,t)=X(x−ri,x(t),y−ri,y(t),t)+X’(x,y,t)の等式が成立するか否かを検証する。一方、d=1ならば、署名検証アルゴリズムVerは、σを(0,zi,x(t),zi,y(t))に分割する。次いで、署名検証アルゴリズムVerは、v=H(X”(zi,x(t),zi,y(t),t),zi,x(t),zi,y(t))の等式が成立するか否かを検証する。
Step.3:
i=1〜nについて、上記のStep.2の処理を実行した後、署名検証アルゴリズムVerは、Step.2の検証がi=1〜nの全てについて通過したか否かを確認する。そして、署名検証アルゴリズムVerは、i=1〜nの全てについてStep.2の検証が通過した場合に電子署名σを受理(1を出力)し、1つでも通過していない場合に電子署名σを拒否(0を出力)する。
(電子署名の偽証可能性について)
以上説明した鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerによりASS−CC電子署名方式は成り立っている。ASS−CC電子署名方式は、代数曲面上の求セクション問題に安全性の根拠をおくという点において、量子コンピュータを用いたタンパリングに対しても耐性の高い電子署名方式である。しかしながら、本件発明者らにより、上記のASS−CC電子署名方式における電子署名の偽造アルゴリズム(以下、署名偽造アルゴリズム)が発見された。
(ASS−CC電子署名方式に対する電子署名の偽造アルゴリズム)
署名偽造アルゴリズムは、文書Mのみを入力とし、電子署名σを偽造するアルゴリズムである。まず、署名偽造アルゴリズムは、i=1〜nについて、以下のStep.1〜Step.3の処理を実行する。
Step.1:
署名偽造アルゴリズムは、S∈R{0,1}λを選択し、X’(x,y,t)←H(S)を計算する。
Step.2:
署名偽造アルゴリズムは、セクション(ri,x(t),ri,y(t))を選択し、X”(x,y,t)←X(x−ri,x(t),y−ri,y(t),t)+X’(x,y,t)を計算する。
Step.3:
署名偽造アルゴリズムは、セクション(zi,x(t),zi,y(t))を選択し、v←H(X”(zi,x(t),zi,y(t),t),zi,x(t),zi,y(t))を計算する。
Step.4:
i=1〜nについて、上記のStep.1〜3を実行した後、署名偽造アルゴリズムは、d=(d,…,d)←H(M,X”(x,y,t),v(t),…,X”(x,y,t),v(t))を計算する。
次に、署名偽造アルゴリズムは、i=1〜nについて、以下のStep.5を実行する。
Step.5:
もしd=0ならば、署名偽造アルゴリズムは、σ←(S,ri,x(t),ri,y(t))を計算する。一方、d=1ならば、署名偽造アルゴリズムは、σ←(0,zi,x(t),zi,y(t))を計算する。
Step.6:
そして、署名生成アルゴリズムSigは、電子署名σ=(X”(x,y,t),v(t),…,X”(x,y,t),v(t),σ,…,σ)を出力する。
以上が署名偽造アルゴリズムの内容である。署名偽造アルゴリズムとASS−CC電子署名方式における署名生成アルゴリズムSigの1つの違いは、(zi,x(t),zi,y(t))の生成方法にある。署名生成アルゴリズムSigは(zi,x(t),zi,y(t))を署名鍵(u(t),u(t),t)から生成しているのに対し、署名偽造アルゴリズムは、署名鍵(u(t),u(t),t)を利用していない。
また、署名偽造アルゴリズムとASS−CC電子署名方式における署名生成アルゴリズムSigのもう1つの違いは、viの計算方法にある。署名生成アルゴリズムSigはX’(zi,x(t),zi,y(t),t)を用いているが、署名偽造アルゴリズムは、X”(zi,x(t),zi,y(t),t)を用いている。つまり、上記の署名偽造アルゴリズムのようにviを設定すれば、署名鍵(u(t),u(t),t)を利用せずに検証を通過する電子署名σが生成できてしまうのである。
以上、ASS−CC電子署名方式に対する署名偽造アルゴリズムについて説明した。このような署名偽造アルゴリズムが存在することにより、ASS−CC電子署名方式は安全に機能しないと言える。このような安全性に関する問題は、ASS−CC電子署名方式を公開鍵認証方式に変形した場合にも引き継がれる。
(1−4−2:ASS−CC−IP公開鍵認証方式について)
ASS−CC電子署名方式のアルゴリズムは、図4に示すような公開鍵認証方式(以下、ASS−CC−IP公開鍵認証方式)の対話プロトコルに変形することができる。なお、図4に示したASS−CC−IP公開鍵認証方式は、上記の非特許文献1には開示されていないものである。ここで、図4に示したASS−CC−IP公開鍵認証方式の対話プロトコルについて説明する。図4は、ASS−CC−IP公開鍵認証方式の対話プロトコルを説明するための説明図である。
図4に示すように、証明者と検証者の間で公開鍵pk=X(x,y,z)が共有されている。また、証明者は、秘密鍵sk=(u(y),u(y),t)を保有している。なお、秘密鍵sk、公開鍵pkの生成方法は、ASS−CC電子署名方式における署名鍵sk、検証鍵pkの生成方法と同じである。
Step.1:
まず、証明者アルゴリズムPは、(r(t),r(t))∈を計算する。但し、Sは、代数曲面上のセクションを表現する多項式の組全体の集合である。次いで、証明者アルゴリズムPは、z(t)←u(t)+r(t)、z(t)←u(t)+r(t)を計算する。次いで、証明者アルゴリズムPは、S∈{0,1}λを選択し、X’(x,y,t)←H(S)を計算する。
Step.1(続き):
次いで、証明者アルゴリズムPは、X”(x,y,t)←X(x−r(t),y−r(t),t)+X’(x,y,t)を計算する。次いで、証明者アルゴリズムPは、v←H(X’(z(t),z(t),t),z(t),z(t))を計算する。但し、H、Hはハッシュ関数である。そして、証明者アルゴリズムPは、(X”(x,y,t),v)を検証者に送る。
Step.2:
検証者アルゴリズムVは、d∈{0,1}を選択する。そして、検証者アルゴリズムVは、dを証明者に送る。
Step.3:
もしd=0ならば、証明者アルゴリズムPは、電子署名σ=(S,r(t),r(t))を計算する。一方、d=1ならば、証明者アルゴリズムPは、電子署名σ=(ε,z(t),z(t))を計算する。そして、証明者アルゴリズムPは、電子署名σを検証者に送る。なお、σ=(a,b(t),c(t))と表現することにする。つまり、d=0の場合、a=S、b(t)=r(t)、c(t)=r(t)であり、d=1の場合、a=ε、b(t)=z(t)、c(t)=z(t)である。
Step.4:
検証者アルゴリズムVは、d=0の場合、a’(x,y,t)←H(a)を計算する。そして、検証者アルゴリズムVは、X”(x,y,t)=X(x−b(t),y−c(t),t)+a’(x,y,t)の等式が成り立つか否かを検証する。一方、d=1の場合、検証者アルゴリズムVは、v=H(X”(b(t),c(t),t),b(t),c(t))の等式が成り立つか否かを検証する。
Step.5:
検証者アルゴリズムVは、Step.4の検証が成功した場合に認証の成功を示す1を出力し、失敗した場合に認証の失敗を示す0を出力する。
以上説明したように、ASS−CC電子署名方式は、公開鍵認証方式に変形することができる。しかしながら、ASS−CC−IP公開鍵認証方式は、ASS−CC電子署名方式と同じ安全上の問題を内包している。つまり、ASS−CC−IP公開鍵認証方式では、秘密鍵skを保有していない偽証者により偽証される可能性がある。そこで、図5を参照しながら、ASS−CC−IP公開鍵認証方式の偽証方法について説明する。
(ASS−CC−IP公開鍵認証方式における偽証方法)
ASS−CC−IP公開鍵認証方式における偽証方法は、図5のStep.1において下線を付した部分(※1、※2)に特徴がある。ASS−CC−IP公開鍵認証方式において、z(t)、z(t)は、秘密鍵skを用いて生成されていた。しかし、図5に示す偽証方法においては、z(t)、z(t)が任意に選択されている(※1)。また、ASS−CC−IP公開鍵認証方式において、vは、X’(z(t),z(t),y)を利用して生成されていた。しかし、図5に示す偽証方法においては、vがX”(z(t),z(t),y)を利用して生成されている(※2)。
つまり、図5に示した偽証方法を用いれば、u(t)、u(t)を知らない偽証者が容易に偽証することができてしまうのである。すなわち、ASS−CC−IP公開鍵認証方式は健全性を有しない。先に述べた通り、公開鍵認証方式は、健全性と零知識性という2つの条件を両立させなければ、その安全性を保証することができない。上記のASS−CC−IP公開鍵認証方式は、零知識性を有するものの、健全性を有しない。そのため、ASS−CC−IP公開鍵認証方式における安全性は保証されない。
そこで、ASS−CC−IP公開鍵認証方式の健全性を確保するための改良方法について考察する。ASS−CC−IP公開鍵認証方式の健全性を確保する方法として、例えば、検証者に、v=H(X’(z(t),z(t),t),z(t),z(t))を追加で検証させる方法が考えられる。しかし、この方法を実現するには、検証者に対し、X’の情報と(z(t),z(t))の情報を渡す必要がある。
d=0の場合に(z(t),z(t))の情報を検証者に渡すと、既に(r(t),r(t))の情報を得ている検証者は、秘密鍵skを計算できてしまう。一方、d=1の場合にX’の情報を検証者に渡すと、既にX”の情報を得ている検証者は、(r(t),r(t))の情報を計算することができてしまう。その結果、検証者は、計算した(r(t),r(t))の情報と(z(t),z(t))の情報から秘密鍵skを計算することができてしまう。
そのため、v=H(X’(z(t),z(t),t),z(t),z(t))を検証者に追加で検証させる方法を適用すると、健全性は確保されるが、零知識性が失われてしまう。このように、ASS−CC−IP公開鍵認証方式を改良して、健全性と零知識性という2つの条件を共に満たす公開鍵認証方式を構築することは難しい。そこで、本件発明者は、代数曲面上の求セクション問題を安全性の根拠とし、健全性と零知識性という2つの条件を満たす新たな公開鍵認証方式を考案した。以下、詳細に説明する。
<2:第1実施形態>
本発明に係る第1実施形態について説明する。本実施形態は、代数曲面上の求セクション問題に安全性の根拠をおく3パスの公開鍵認証方式(以下、本手法)に関する。なお、ここでは3パスの公開鍵認証方式を例に挙げるが、本実施形態の対話プロトコルを拡張してnパス(n≧4)の公開鍵認証方式に一般化することも可能である。
[2−1:公開鍵認証方式のアルゴリズム]
まず、図6を参照しながら、本手法に係る公開鍵認証方式のアルゴリズムについて説明する。図6は、本手法に係る公開鍵認証方式のアルゴリズムについて説明するための説明図である。なお、本手法は、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f(x,…,x)と、1変数の多次多項式u(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,…,x)=f(x,…,x)−c(x)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,…,un−1)を秘密鍵skに設定する。ここで、f(u(t),…,un−1(t),t)=0を満たすことに注意されたい。
(証明者アルゴリズムP、検証者アルゴリズムV)
次に、図6を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u(t),…,un−1(t),t)を満たす(u,…,un−1)を知っていること」を(u,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明するのである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
Step.1:
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器G1に数wを適用して1変数多項式r(t),…,rn−1(t)と数w’を生成する。つまり、証明者アルゴリズムPは、(r,…,rn−1,w’)←G(w)を計算する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数w’を適用してn変数多項式f’(x,…,x)を生成する。つまり、証明者アルゴリズムPは、f’←G(w’)を計算する。
Step.1(続き):
次いで、証明者アルゴリズムPは、(z(t),…,zn−1(t))←(u(t)−r(t),…,un−1(t)−rn−1(t))を計算する。この計算は、秘密鍵(u,…,un−1)を1変数多項式(r,…,rn−1)によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、f”(x,…,x)←f(x+r(x),…,xn−1+rn−1(x),x)+f’(x,…,x)を計算する。この計算は、x,…,xについての多項式f(x+r(x),…,xn−1+rn−1(x),x)を多項式f’(x,…,x)によりマスクする操作に相当する。
Step.1(続き):
次いで、証明者アルゴリズムPは、f”(z(t),…,zn−1(t),t)とz,…,zn−1のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(f”(z(t),…,zn−1(t),t),z,…,zn−1)を計算する。また、証明者アルゴリズムPは、数w’のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(w’)を計算する。さらに、証明者アルゴリズムPは、多項式f”のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(f”)を計算する。なお、上記のH(…)、H(…)、H(…)は、ハッシュ関数である。また、ハッシュ値(c,c,c)はメッセージである。
Step.1で生成されたメッセージ(c,c,c)は、検証者に送られる。
Step.2:
検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1,2}を証明者に送る。
Step.3:
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。また、d=1の場合、証明者アルゴリズムPは、情報σ=(w’,z,…,zn−1)を生成する。そして、d=2の場合、証明者アルゴリズムPは、情報σ=(f”,z,…,zn−1)を生成する。このようにして生成された情報σは、証明者アルゴリズムPにより検証者に送られる。
Step.4:
検証者アルゴリズムVは、証明者から受け取った情報σを利用して以下の検証処理を実行する。
d=0の場合、検証者アルゴリズムVは、(r’,…,r’n−1,w”)←G(σ)を計算する。さらに、検証者アルゴリズムVは、f'''←G(w”)を計算する。そして、検証者アルゴリズムVは、c=H(w”)の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、c=H(f(x+r’(x),…,xn−1+r’n−1(x),x)+f'''(x,…,x))の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
d=1の場合、検証者アルゴリズムVは、(w”,z’,…,z’n−1)←σを計算する。さらに、検証者アルゴリズムVは、f'''←G(w”)を計算する。そして、検証者アルゴリズムVは、c=H(f'''(z’(t),…,z’n−1(t),t),z’,…,z’n−1))の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、c=H(w”)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
d=2の場合、検証者アルゴリズムVは、(f'''',z’,…,z’n−1)←σを計算する。そして、検証者アルゴリズムVは、c=H(f'''(z’(t),…,z’n−1(t),t),z’,…,z’n−1))の等号が成り立つか否かを検証する。さらに、検証者アルゴリズムVは、c=H(f'''')の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
(補足)
さて、上記Step.1において生成されたメッセージ(c,c,c)を検証者に送った際、秘密鍵skに関する情報、(r,…,rn−1)に関する情報、(z,…,zn−1)に関する情報が検証者に一切漏れていないことに注意されたい。また、上記Step.3において生成された情報σを検証者に送った際、d=0のときにはz,…,zn−1に関する情報が検証者に一切漏れておらず、d=1,2のときにはr,…,rn−1に関する情報が検証者に一切漏れていないことに注意されたい。
(本手法とASS−CC−IP公開鍵認証方式との主な相違点について)
先に説明したように、ASS−CC−IP公開鍵認証方式において、検証者は、2通りの検証パターンしか要求しなかった。一方、本手法の場合、検証者は、3通りの検証パターンを要求する可能性がある。そして、具体的な相違点として、ASS−CC−IP公開鍵認証方式の場合には本手法のd=1に対応するf’(z(t),…,zn−1(t),t)を用いた検証が実行されていなかった点が挙げられる。
本手法の場合、d=1の検証パターンと、d=2の検証パターンにおいて、c=H(f’(z(t),…,zn−1(t),t),z,…,zn−1)の検証と、c=H(f”(z(t),…,zn−1(t),t),z,…,zn−1)の検証が行われており、両方の検証を通過するならばf’(z(t),…,zn−1(t),t)=f”(z(t),…,zn−1(t),t)となることが保証されている。こうした点が、本手法とASS−CC−IP公開鍵認証方式との主な相違点である。
なお、ASS−CC−IP公開鍵認証方式に対し、単純に、本手法のd=1に対応する検証パターンを追加しても、ASS−CC−IP公開鍵認証方式が抱える安全性の問題は解消されない。例えば、ASS−CC−IP公開鍵認証方式において、v=H(X’(z(t),z(t),t),z(t),z(t))の検証を追加しても安全性の問題は解消されない。図4に示したように、ASS−CC−IP公開鍵認証方式の場合、1パス目で既にX”の情報を送信してしまっているため、上記追加の検証を行うためにX’の情報を検証者に与えると、r(t)、r(t)に関する情報が漏れ、零知識性を失ってしまう。
一方、本手法の場合、1パス目ではf’、f”、r,…,rn−1,z,…,zn−1の情報を検証者に送らず、それらのハッシュ値のみを検証者に送っている。そして、3パス目で検証に必要な最低限の情報のみを検証者に対して送るように証明者アルゴリズムPが設計されているため、本手法の対話プロトコルでは零知識性が担保されている。また、本手法では、1パス目でハッシュ値を送ることにより、1パス目で証明者アルゴリズムPが用いた乱数を、3パス目で別の乱数であったかのように偽装できない仕組みを設けている。一方、ASS−CC−IP公開鍵認証方式では、X’に関する情報やハッシュ値を1パス目で送っていないため、3パス目では別のX’を利用したかのように偽装される可能性がある。本手法とASS−CC−IP公開鍵認証方式との間には、このような相違点も存在する。
(本手法における健全性について)
本手法の健全性は、検証者の全ての要求d=0,1,2に対して、証明者がメッセージ(c,c,c)に対する正しい情報σを回答したならば、その回答内容から、下記の式(6)及び式(7)を満たすf''''、f'''、r’,…,r’n−1、z’,…z’n−1が計算できるということから保証されている。なお、このことはASS−CC−IP公開鍵認証方式においては保証されていない。
Figure 0005593850
このようなロジックが保証されることにより、代数曲面上の求セクション問題を解かない限りにおいて2/3より高い確率で偽証することは不可能であることが保証される。つまり、検証者の要求d=0,1,2の全てに正しく回答するためには、偽証者が上記の式(6)及び式(7)を満たすf''''、f'''、r’,…,r’n−1、z’,…z’n−1を計算できる必要がある。言い換えると、偽証者はf(u(t),…,un−1(t),t)=0を満たす(u,…,un−1)を計算できる必要がある。なお、検証者の要求d=0,1,2の高々2つまでに偽証者が正しく回答する可能性はある。そのため、偽証の成功確率は2/3となる。上記の対話プロトコルは十分な回数実行される。そのため、偽証の成功確率は無視できるほど小さくすることができる。
(変形例)
上記の証明者アルゴリズムPは、メッセージcとして、f”(z(t),…,zn−1(t),t)とz,…,zn−1のハッシュ値を用いていた。しかし、f”(z(t),…,zn−1(t),t)=f’(z(t),…,zn−1(t),t)であるため、証明者アルゴリズムPは、メッセージcとして、f’(z(t),…,zn−1(t),t)とz,…,zn−1のハッシュ値を用いてもよい。また、証明者アルゴリズムPは、f”(z(t),…,zn−1(t),t)のハッシュ値と、z,…,zn−1のハッシュ値とを別々に計算し、それぞれをメッセージとして検証者に送るようにしてもよい。
上記の証明者アルゴリズムPは、数wに擬似乱数生成器Gを適用して1変数多項式r(t),…,rn−1(t)と数w’を生成している。また、上記の証明者アルゴリズムPは、数w’を擬似乱数生成器Gに適用してn変数多項式f’(x,…,x)を生成している。しかし、証明者アルゴリズムPは、最初からw=(r(t),…,rn−1(t),w’)を算出し、Gを恒等写像としてもよい。また、この場合には、数wをGに適用する必要はない。なお、Gについても同様である。
上記の方式では、ハッシュ関数H,H,Hを用いてc,c,cを計算しているが、ハッシュ関数の代わりにコミットメント方式COMを用いてもよい。コミットメント関数COMは、文字列Sと乱数ρの2つを引数にとる関数である。コミットメント関数の例としては、Shai HaleviとSilvio Micaliによって国際会議CRYPTO1996で発表された方式などがある。
このコミットメント関数を用いる場合、c,c,cを計算する前に、乱数ρ,ρ,ρを用意し、ハッシュ関数H(・),H(・),H(・)を適用する代わりにコミットメント関数COM(・,ρ),COM(・,ρ),COM(・,ρ)を適用することによりc,c,cを生成する。また、この変形例では、検証部で計算するCを生成するために必要なρを回答情報に含めることになる。なお、この変形手法は、後述の全ての方式について適用可能である。
以上、本手法に係る基本的なアルゴリズム構成について説明した。
[2−2:拡張アルゴリズム]
次に、図7を参照しながら、本手法を拡張した公開鍵認証方式(以下、拡張手法)のアルゴリズムについて説明する。図7は、拡張手法に基づく対話プロトコルの流れを説明するための説明図である。この拡張手法は、1パス目に送信するメッセージ(c,c,c)を1つのハッシュ値cに変換して検証者に送る方式である。また、この拡張手法では、1パス目にハッシュ値cを送るように対話プロトコルを構成するため、3パス目で送る情報σから復元できないメッセージを情報σと共に検証者に送る。このように拡張することで、対話プロトコルの中で検証者に送るハッシュ値の数を減らすことが可能になり、通信するデータサイズを削減することができる。以下、拡張方式における各アルゴリズムの内容について詳細に説明する。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f(x,…,x)と、1変数の多次多項式u(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,…,x)=f(x,…,x)−c(x)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,…,un−1)を秘密鍵skに設定する。ここで、f(u(t),…,un−1(t),t)=0を満たすことに注意されたい。
(証明者アルゴリズムP、検証者アルゴリズムV)
次に、図7を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u(t),…,un−1(t),t)を満たす(u,…,un−1)を知っていること」を(u,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
Step.1:
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r(t),…,rn−1(t)と数w’を生成する。つまり、証明者アルゴリズムPは、(r,…,rn−1,w’)←G(w)を計算する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数w’を適用してn変数多項式f’(x,…,x)を生成する。つまり、証明者アルゴリズムPは、f’←G(w’)を計算する。
Step.1(続き):
次いで、証明者アルゴリズムPは、(z(t),…,zn−1(t))←(u(t)−r(t),…,un−1(t)−rn−1(t))を計算する。この計算は、秘密鍵(u,…,un−1)を1変数多項式(r,…,rn−1)によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、f”(x,…,x)←f(x+r(x),…,xn−1+rn−1(x),x)+f’(x,…,x)を計算する。この計算は、x,…,xについての多項式f(x+r(x),…,xn−1+rn−1(x),x)を多項式f’(x,…,x)によりマスクする操作に相当する。
Step.1(続き):
次いで、証明者アルゴリズムPは、f”(z(t),…,zn−1(t),t)とz,…,zn−1のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(f”(z(t),…,zn−1(t),t),z,…,zn−1)を計算する。また、証明者アルゴリズムPは、数w’のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(w’)を計算する。さらに、証明者アルゴリズムPは、多項式f”のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(f”)を計算する。なお、上記のH(…)、H(…)、H(…)は、ハッシュ関数である。また、ハッシュ値(c、c、c)はメッセージである。
Step.1(続き):
拡張方式の場合、証明者アルゴリズムPは、メッセージ(c,c,c)をハッシュ関数Hに適用してハッシュ値cを生成する。そして、証明者アルゴリズムPは、生成したハッシュ値cを検証者に送る。
Step.2:
検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1,2}を証明者に送る。
Step.3:
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報(σ,c)=(w,c)を生成する。また、d=1の場合、証明者アルゴリズムPは、情報(σ,c)=(w’,z,…,zn−1,c)を生成する。そして、d=2の場合、証明者アルゴリズムPは、情報(σ,c)=(f”,z,…,zn−1,c)を生成する。このようにして生成された情報(σ,c)は、証明者アルゴリズムPにより検証者に送られる。
Step.4:
検証者アルゴリズムVは、証明者から受け取った情報(σ,c)を利用して以下の検証処理を実行する。
d=0の場合、検証者アルゴリズムVは、(r’,…,r’n−1,w”)←G(σ)を計算する。次いで、検証者アルゴリズムVは、f'''←G(w”)を計算する。次いで、検証者アルゴリズムVは、c’=H(w”)を計算する。次いで、検証者アルゴリズムVは、c’=H(f(x+r’(x),…,xn−1+r’n−1(x),x)+f'''(x,…,x))を計算する。その後、検証者アルゴリズムVは、c=H(c,c’,c’)の等号が成り立つか否かを検証する。そして、検証者アルゴリズムVは、検証が成功した場合に認証成功を示す値1を出力し、検証が失敗した場合に認証失敗を示す値0を出力する。
d=1の場合、検証者アルゴリズムVは、(w”,z’,…,z’n−1)←σを計算する。次いで、検証者アルゴリズムVは、f'''←G(w”)を計算する。次いで、検証者アルゴリズムVは、c’=H(f'''(z’(t),…,z’n−1(t),t),z’,…,z’n−1))を計算する。次いで、検証者アルゴリズムVは、c’=H(w”)を計算する。その後、検証者アルゴリズムVは、c=H(c’,c’,c)の等号が成り立つか否かを検証する。そして、検証者アルゴリズムVは、検証が成功した場合に認証成功を示す値1を出力し、検証が失敗した場合に認証失敗を示す値0を出力する。
d=2の場合、検証者アルゴリズムVは、(f'''',z’,…,z’n−1)←σを計算する。次いで、検証者アルゴリズムVは、c’=H(f'''(z’(t),…,z’n−1(t),t),z’,…,z’n−1))を計算する。次いで、検証者アルゴリズムVは、c’=H(f'''')を計算する。その後、検証者アルゴリズムVは、c=H(c’,c,c’)の等号が成り立つか否かを検証する。そして、検証者アルゴリズムVは、検証が成功した場合に認証成功を示す値1を出力し、検証が失敗した場合に認証失敗を示す値0を出力する。
以上、拡張方式の対話プロトコルにおける各アルゴリズムの処理について説明した。このように拡張することで、対話プロトコルの中で検証者に送るハッシュ値の数を減らすことが可能になり、通信するデータサイズを削減することができる。
[2−3:並列化アルゴリズム]
さて、先に述べた通り、本手法又は拡張手法に係る対話プロトコルを適用すれば、偽証が成功する確率を2/3以下に抑制することができる。従って、この対話プロトコルを2回実行すれば、偽証が成功する確率を(2/3)以下に抑制することができる。同様に、この対話プロトコルをN回実行すると、偽証が成功する確率は(2/3)となり、Nを十分に大きい数(例えば、N=140)にすれば、偽証が成功する確率は無視できる程度に小さくなる。例えば、本手法に係る対話プロトコルを並列的にN回実行するアルゴリズムは図8のようになる。以下、図8を参照しながら、並列的に対話プロトコルをN回実行する各アルゴリズムの内容について説明する。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f(x,…,x)と、1変数の多次多項式u(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,…,x)=f(x,…,x)−c(x)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,…,un−1)を秘密鍵skに設定する。ここで、f(u(t),…,un−1(t),t)=0を満たすことに注意されたい。
(証明者アルゴリズムP、検証者アルゴリズムV)
次に、図8を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u(t),…,un−1(t),t)を満たす(u,…,un−1)を知っていること」を(u,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
Step.1:
まず、証明者アルゴリズムPは、i=1〜Nについて、以下の処理(1)〜処理(8)を実行する。(処理1)証明者アルゴリズムPは、任意に数wを選択する。(処理2)証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r1,i(t),…,rn−1,i(t)と数w’を生成する。つまり、証明者アルゴリズムPは、(r1,i,…,rn−1,i,w’)←G(w)を計算する。(処理3)証明者アルゴリズムPは、擬似乱数生成器Gに数w’を適用してn変数多項式f’(x,…,x)を生成する。つまり、証明者アルゴリズムPは、f’←G(w’)を計算する。
Step.1(続き):
(処理4)証明者アルゴリズムPは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。(処理5)証明者アルゴリズムPは、f”(x,…,x)←f(x+r1,i(x),…,xn−1+rn−1,i(x),x)+f’(x,…,x)を計算する。この計算は、x,…,xについての多項式f(x+r1,i(x),…,xn−1+rn−1,i(x),x)を多項式f’(x,…,x)によりマスクする操作に相当する。
Step.1(続き):
(処理6)証明者アルゴリズムPは、f”(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、証明者アルゴリズムPは、c1,i←H(f”(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理7)証明者アルゴリズムPは、数w’のハッシュ値c2,iを生成する。つまり、証明者アルゴリズムPは、c2,i←H(w’)を計算する。(処理8)証明者アルゴリズムPは、多項式f”のハッシュ値c3,iを生成する。つまり、証明者アルゴリズムPは、c3,i←H(f”)を計算する。なお、上記のH(…)、H(…)、H(…)は、ハッシュ関数である。また、ハッシュ値(c1,i、c2,i、c3,i)はメッセージである。
i=1〜Nについて、上記の(処理1)〜(処理8)が実行された後、Step.1で生成されたメッセージ(c1,i、c2,i、c3,i)(i=1〜N)は、検証者に送られる。
Step.2:
検証者アルゴリズムVは、i=1〜Nのそれぞれについて、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1,2}(i=1〜N)を証明者に送る。
Step.3:
証明者アルゴリズムPは、検証者から受けた要求diに応じて検証者に送り返す情報σiを生成する。ここで、証明者アルゴリズムPは、i=1〜Nについて、以下の(処理1)〜(処理3)を実行する。(処理1)d=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。(処理2)d=1の場合、証明者アルゴリズムPは、情報σ=(w’,z1,i,…,zn−1,i)を生成する。(処理3)d=2の場合、証明者アルゴリズムPは、情報σ=(f”,z1,i,…,zn−1,i)を生成する。上記(処理1)〜(処理3)の判定及び処理が実行された後、情報σ(i=1〜N)は、証明者アルゴリズムPにより検証者に送られる。
Step.4:
検証者アルゴリズムVは、証明者から受け取った情報σ(i=1〜N)を利用して以下の検証処理を実行する。なお、以下の処理は、i=1〜Nについて実行される。
=0の場合、検証者アルゴリズムVは、(r’1,i,…,r’n−1,i,w”)←G(σ)を計算する。さらに、検証者アルゴリズムVは、f'''←G(w”)を計算する。そして、検証者アルゴリズムVは、c2,i=H(w”)の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、c3,i=H(f(x+r’1,i(x),…,xn−1+r’n−1,i(x),x)+f'''(x,…,x))の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
=1の場合、検証者アルゴリズムVは、(w”,z’1,i,…,z’n−1,i)←σを計算する。さらに、検証者アルゴリズムVは、f'''←G(w”)を計算する。そして、検証者アルゴリズムVは、c1,i=H(f'''(z’1,i(t),…,z’n−1,i(t),t),z’1,i,…,z’n−1,i))の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、c=H(w”)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
=2の場合、検証者アルゴリズムVは、(f'''',z’1,i,…,z’n−1,i)←σを計算する。そして、検証者アルゴリズムVは、c1,i=H(f'''(z’1,i(t),…,z’n−1,i(t),t),z’1,i,…,z’n−1,i))の等号が成り立つか否かを検証する。さらに、検証者アルゴリズムVは、c3,i=H(f'''')の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
以上、本手法の対話プロトコルを並列的に実行する方法について説明した。上記のように、本手法の対話プロトコルを繰り返し実行することにより、偽証が成功する確率を無視できる程度まで低減させることが可能になる。
[2−4:非対話型アルゴリズム]
これまで3パスの公開鍵認証方式について説明してきた。しかし、本手法においては、2パス目で検証者から証明者に送られる情報が検証パターンを示す要求d(実際には単なる乱数)だけであるため、1パスの公開鍵認証方式(以下、非対話型方式)に変形することができる。なお、非対話型方式に係る各アルゴリズムの内容を図9に示した。以下、図9を参照しながら、非対話型方式に係る各アルゴリズムの内容について説明する。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f(x,…,x)と、1変数の多次多項式u(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,…,x)=f(x,…,x)−c(x)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,…,un−1)を秘密鍵skに設定する。ここで、f(u(t),…,un−1(t),t)=0を満たすことに注意されたい。
(証明者アルゴリズムP、検証者アルゴリズムV)
次に、図9を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u(t),…,un−1(t),t)を満たす(u,…,un−1)を知っていること」を(u,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
Step.1:
まず、証明者アルゴリズムPは、i=1〜Nについて、以下の処理(1)〜処理(8)を実行する。(処理1)証明者アルゴリズムPは、任意に数wを選択する。(処理2)証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r1,i(t),…,rn−1,i(t)と数w’を生成する。つまり、証明者アルゴリズムPは、(r1,i,…,rn−1,i,w’)←G(w)を計算する。(処理3)証明者アルゴリズムPは、擬似乱数生成器Gに数w’を適用してn変数多項式f’(x,…,x)を生成する。つまり、証明者アルゴリズムPは、f’←G(w’)を計算する。
Step.1(続き):
(処理4)証明者アルゴリズムPは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。(処理5)証明者アルゴリズムPは、f”(x,…,x)←f(x+r1,i(x),…,xn−1+rn−1,i(x),x)+f’(x,…,x)を計算する。この計算は、x,…,xについての多項式f(x+r1,i(x),…,xn−1+rn−1,i(x),x)を多項式f’(x,…,x)によりマスクする操作に相当する。
Step.1(続き):
(処理6)証明者アルゴリズムPは、f”(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、証明者アルゴリズムPは、c1,i←H(f”(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理7)証明者アルゴリズムPは、数w’のハッシュ値c2,iを生成する。つまり、証明者アルゴリズムPは、c2,i←H(w’)を計算する。(処理8)証明者アルゴリズムPは、多項式f”のハッシュ値c3,iを生成する。つまり、証明者アルゴリズムPは、c3,i←H(f”)を計算する。なお、上記のH(…)、H(…)、H(…)は、ハッシュ関数である。また、ハッシュ値(c1,i、c2,i、c3,i)はメッセージである。
Step.2:
次に、証明者アルゴリズムPは、乱数Rを選択する。次いで、証明者アルゴリズムPは、i=1〜Nについて、乱数RとStep.1で生成したメッセージ(c1,i、c2,i、c3,i)をハッシュ関数Hに適用してd=(d,…,d)を生成する。
Step.3:
次に、証明者アルゴリズムPは、生成したdに応じて検証者に送り返す情報σを生成する。ここで、証明者アルゴリズムPは、i=1〜Nについて、以下の(処理1)〜(処理3)を実行する。(処理1)d=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。(処理2)d=1の場合、証明者アルゴリズムPは、情報σ=(w’,z1,i,…,zn−1,i)を生成する。(処理3)d=2の場合、証明者アルゴリズムPは、情報σ=(f”,z1,i,…,zn−1,i)を生成する。上記(処理1)〜(処理3)の判定及び処理が実行された後、乱数R、メッセージ(c1,i、c2,i、c3,i)及び情報σ(i=1〜N)は、証明者アルゴリズムPにより検証者に送られる。
Step.4:
検証者アルゴリズムVは、まず、証明者から受け取った乱数R、メッセージ(c1,i、c2,i、c3,i)及び情報σ(i=1〜N)をハッシュ関数Hに適用してd=(d,…,d)を生成する。次いで、検証者アルゴリズムVは、情報σ(i=1〜N)を利用して以下の検証処理を実行する。なお、以下の処理は、i=1〜Nについて実行される。
=0の場合、検証者アルゴリズムVは、(r’1,i,…,r’n−1,i,w”)←G(σ)を計算する。さらに、検証者アルゴリズムVは、f'''←G(w”)を計算する。そして、検証者アルゴリズムVは、c2,i=H(w”)の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、c3,i=H(f(x+r’1,i(x),…,xn−1+r’n−1,i(x),x)+f'''(x,…,x))の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
=1の場合、検証者アルゴリズムVは、(w”,z’1,i,…,z’n−1,i)←σを計算する。さらに、検証者アルゴリズムVは、f'''←G(w”)を計算する。そして、検証者アルゴリズムVは、c1,i=H(f'''(z’1,i(t),…,z’n−1,i(t),t),z’1,i,…,z’n−1,i))の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、c=H(w”)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
=2の場合、検証者アルゴリズムVは、(f'''',z’1,i,…,z’n−1,i)←σを計算する。そして、検証者アルゴリズムVは、c1,i=H(f'''(z’1,i(t),…,z’n−1,i(t),t),z’1,i,…,z’n−1,i))の等号が成り立つか否かを検証する。さらに、検証者アルゴリズムVは、c,i=H(f'''')の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
以上、非対話型方式に係る各アルゴリズムの内容について説明した。上記の通り、非対話型方式は、検証者が検証パターンを選択するために乱数dを証明者に送る代わりに、証明者アルゴリズムPがメッセージ(c1,i、c2,i、c3,i)を利用してdを生成するというものである。理想的なハッシュ関数Hを仮定すれば、ハッシュ値dがランダムに振る舞うため、証明者に都合の良いハッシュ値dが出ることはない。そのため、上記のような変形を行っても、十分な安全性が確保される。なお、このような変形は、拡張方式などに対しても同様に適用することが可能である。
[2−5:電子署名方式への変形]
ここで、本手法を電子署名方式へと変形する方法について説明する。なお、ここでは簡単のために、上記の非対話型方式を電子署名方式に変形する方法について述べる。上記の非対話型方式における証明者と検証者を電子署名方式における署名者と検証者に対応させると、証明者のみが検証者を納得させられるという点において、電子署名方式のモデルと近似していることが分かるであろう。こうした考えをもとに、非対話型方式に基づく電子署名方式のアルゴリズム構成について詳細に説明する。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f(x,…,x)と、1変数の多次多項式u(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,…,x)=f(x,…,x)−c(x)を計算し、fを検証鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,…,un−1)を署名鍵skに設定する。ここで、f(u(t),…,un−1(t),t)=0を満たすことに注意されたい。
(署名生成アルゴリズムSig)
署名生成アルゴリズムSigは、i=1〜Nについて、以下の(処理1)〜(処理15)を実行する。なお、署名生成アルゴリズムSigには、署名鍵sk=(u,…,un−1)と文書Mが入力されているものとする。
(処理1)署名生成アルゴリズムSigは、任意に数wを選択する。(処理2)署名生成アルゴリズムSigは、擬似乱数生成器Gに数wを適用して1変数多項式r1,i(t),…,rn−1,i(t)と数w’を生成する。つまり、署名生成アルゴリズムSigは、(r1,i,…,rn−1,i,w’)←G(w)を計算する。(処理3)署名生成アルゴリズムSigは、擬似乱数生成器Gに数w’を適用してn変数多項式f’(x,…,x)を生成する。つまり、署名生成アルゴリズムSigは、f’←G(w’)を計算する。
(処理4)署名生成アルゴリズムSigは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。(処理5)署名生成アルゴリズムSigは、f”(x,…,x)←f(x+r1,i(x),…,xn−1+rn−1,i(x),x)+f’(x,…,x)を計算する。この計算は、x,…,xについての多項式f(x+r1,i(x),…,xn−1+rn−1,i(x),x)を多項式f’(x,…,x)によりマスクする操作に相当する。
(処理6)署名生成アルゴリズムSigは、f”(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、署名生成アルゴリズムSigは、c1,i←H(f”(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理7)署名生成アルゴリズムSigは、数w’のハッシュ値c2,iを生成する。つまり、署名生成アルゴリズムSigは、c2,i←H(w’)を計算する。(処理8)署名生成アルゴリズムSigは、多項式f”のハッシュ値c3,iを生成する。つまり、署名生成アルゴリズムSigは、c3,i←H(f”)を計算する。なお、上記のH(…)、H(…)、H(…)は、ハッシュ関数である。
(処理9)署名生成アルゴリズムSigは、乱数Rを選択する。(処理10)署名生成アルゴリズムSigは、i=1〜Nについて、文書M、乱数R、及びハッシュ値(c1,i,c2,i,c3,i)をハッシュ関数Hに適用してd=(d,…,d)を生成する。つまり、署名生成アルゴリズムSigは、d=(d,…,d)←H(R,M,c1,1,…,c3,N)を計算する。(処理11)署名生成アルゴリズムSigは、生成したdに応じて情報σを生成する。
ここで、署名生成アルゴリズムSigは、i=1〜Nについて、以下の(処理12)〜(処理14)を実行する。(処理12)d=0の場合、署名生成アルゴリズムSigは、情報σ=wを生成する。(処理13)d=1の場合、署名生成アルゴリズムSigは、情報σ=(w’,z1,i,…,zn−1,i)を生成する。(処理14)d=2の場合、署名生成アルゴリズムSigは、情報σ=(f”,z1,i,…,zn−1,i)を生成する。
(処理15)i=1〜Nについて、上記(処理12)〜(処理14)の判定及び処理が実行された後、署名生成アルゴリズムSigは、乱数R、メッセージ(c1,i、c2,i、c3,i)及び情報σ(i=1〜N)を含む電子署名σ=(R,c1,i、c2,i、c3,i,σ,…,σ)を出力する。
(署名検証アルゴリズムVer)
署名検証アルゴリズムVerは、i=1〜Nについて、以下の全ての検証を通過すれば、電子署名σを受理し、1つでも検証を通過しなかった場合には電子署名σを拒否する。なお、署名検証アルゴリズムVerには、電子署名σと文書Mが入力されているものとする。まず、署名検証アルゴリズムVerは、d=(d,…,d)←H(R,M,c1,1,…,c3,N)を計算する。次いで、署名検証アルゴリズムVerは、i=1〜Nについて、以下の(検証1)〜(検証3)を実行する。
(検証1)d=0の場合、署名検証アルゴリズムVerは、(r’1,i,…,r’n−1,i,w”)←G(σ)を計算する。次いで、署名検証アルゴリズムVerは、f'''←G(w”)を計算する。そして、署名検証アルゴリズムVerは、c2,i=H(w”)の等号が成り立つか否かを検証する。また、署名検証アルゴリズムVerは、c3,i=H(f(x+r’1,i(x),…,xn−1,i+r’n−1,i(x),x)+f'''(x,…,x))の等号が成り立つか否かを検証する。署名検証アルゴリズムVerは、これらの検証が全て成功した場合に電子署名σの受理を示す値1を出力し、検証に失敗があった場合に電子署名σの拒否を示す値0を出力する。
(検証2)d=1の場合、署名検証アルゴリズムVerは、(w”,z’1,i,…,z’n−1,i)←σを計算する。次いで、署名検証アルゴリズムVerは、f'''←G(w”)を計算する。そして、署名検証アルゴリズムVerは、c1,i=H(f'''(z’1,i(t),…,z’n−1,i(t),t),z’1,i,…,z’n−1,i))の等号が成り立つか否かを検証する。また、署名検証アルゴリズムVerは、c=H(w”)の等号が成り立つか否かを検証する。署名検証アルゴリズムVerは、これらの検証が全て成功した場合に電子署名σの受理を示す値1を出力し、検証に失敗があった場合に電子署名σの拒否を示す値0を出力する。
(検証3)d=2の場合、署名検証アルゴリズムVerは、(f'''',z’1,i,…,z’n−1,i)←σを計算する。次いで、署名検証アルゴリズムVerは、c1,i=H(f'''(z’1,i(t),…,z’n−1,i(t),t),z’1,i,…,z’n−1,i))の等号が成り立つか否かを検証する。さらに、署名検証アルゴリズムVerは、c3,i=H(f'''')の等号が成り立つか否かを検証する。署名検証アルゴリズムVerは、これらの検証が全て成功した場合に電子署名σの受理を示す値1を出力し、検証に失敗があった場合に電子署名σの拒否を示す値0を出力する。
以上、本手法に基づく電子署名方式の各アルゴリズム構成について説明した。上記の電子署名方式は、代数曲面上の求セクション問題に安全性の根拠をおくものであるが、ASS−CC電子署名方式のような安全性の問題を内包しない。なお、同様にして、上記の拡張方式に基づく電子署名方式を構築することも可能である。
[2−6:具体例]
次に、図10を参照しながら、本手法を実施する際に想定される具体的なアルゴリズム構成について説明する。図10は、本手法の具体例を説明するための説明図である。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義される3変数のD次多項式f(x,y,t)と、1変数の多次多項式u(t),u(t)を生成する。但し、D次多項式f(x,y,t)は、下記の式(8)により表現される。また、1変数の多次多項式u(t)は、下記の式(9)により表現される。さらに、1変数の多次多項式u(t)は、下記の式(10)により表現される。
Figure 0005593850
次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),u(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,y,t)=f(x,y,t)−c(t)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,u)を秘密鍵skに設定する。なお、鍵生成アルゴリズムGenにより生成されるfは、xの項以外については最大でD次となるが、xの項については最大で(D+D)次になる。
(証明者アルゴリズムP、検証者アルゴリズムV)
次に、図10を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u(t),u(t),t)を満たす(u,u)を知っていること」を(u,u)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
Step.1:
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r(t),r(t)と数w’を生成する。つまり、証明者アルゴリズムPは、(r,r,w’)←G(w)を計算する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数w’を適用して3変数多項式f’(x,y,t)を生成する。つまり、証明者アルゴリズムPは、f’←G(w’)を計算する。なお、多項式f’の次数は多項式fの次数と同じにする。つまり、xの項以外については最大でD次であるが、xの項については最大で(D+D)次になるようにする。
Step.1(続き):
次いで、証明者アルゴリズムPは、(z(t),z(t))←(u(t)−r(t),u(t)−r(t))を計算する。この計算は、秘密鍵(u,u)を1変数多項式(r,r)によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、f”(x,y,t)←f(x+r(t),y+r(t),t)+f’(x,y,t)を計算する。この計算は、x,y,tについての多項式f(x+r(t),y+r(t),t)を多項式f’(x,y,t)によりマスクする操作に相当する。ここで、f(x+r(t),y+r(t),t)の中に現れるr(t),r(t)に関する項は全てf’(x,y,t)でマスクされていることに注意されたい。
Step.1(続き):
次いで、証明者アルゴリズムPは、f”(z(t),z(t),t)とz,zのハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(f”(z(t),z(t),t),z,z)を計算する。また、証明者アルゴリズムPは、数w’のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(w’)を計算する。さらに、証明者アルゴリズムPは、多項式f”のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(f”)を計算する。なお、上記のH(…)、H(…)、H(…)は、ハッシュ関数である。また、ハッシュ値(c、c、c)はメッセージである。
Step.1で生成されたメッセージ(c、c、c)は、検証者に送られる。
Step.2:
検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1,2}を証明者に送る。
Step.3:
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。また、d=1の場合、証明者アルゴリズムPは、情報σ=(w’,z,z)を生成する。そして、d=2の場合、証明者アルゴリズムPは、情報σ=(f”,z,z)を生成する。このようにして生成された情報σは、証明者アルゴリズムPにより検証者に送られる。
Step.4:
検証者アルゴリズムVは、証明者から受け取った情報σを利用して以下の検証処理を実行する。
d=0の場合、検証者アルゴリズムVは、(r’,r’,w”)←G(σ)を計算する。さらに、検証者アルゴリズムVは、f'''←G(w”)を計算する。そして、検証者アルゴリズムVは、c=H(w”)の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、c=H(f(x+r’(t),y+r’(t),t)+f'''(x,y,t))の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
d=1の場合、検証者アルゴリズムVは、(w”,z’,z’)←σを計算する。さらに、検証者アルゴリズムVは、f'''←G(w”)を計算する。そして、検証者アルゴリズムVは、c=H(f'''(z’(t),z’(t),t),z’,z’))の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、c=H(w”)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
d=2の場合、検証者アルゴリズムVは、(f'''',z’,z’)←σを計算する。そして、検証者アルゴリズムVは、c=H(f'''(z’(t),z’(t),t),z’,z’))の等号が成り立つか否かを検証する。さらに、検証者アルゴリズムVは、c=H(f'''')の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
以上、本手法を実施する際に想定される具体的なアルゴリズム構成について説明した。
<3:第2実施形態>
次に、本発明の第2実施形態について説明する。これまで3パスの公開鍵認証方式について説明してきた。本実施形態では、5パスの公開鍵認証方式(以下、本手法)について説明する。本手法は、検証者の検証パターンを2q通りにすることにより、公開鍵認証方式の健全性を確保する方式である。
なお、上記の第1実施形態に係る3パスの公開鍵認証方式は、対話プロトコル1回当たりの偽証確率が2/3であったが、本手法では、後述するように対話プロトコル1回当たりの偽証確率は1/2+1/qとなる。但し、qは、利用する環の位数である。従って、環の位数が十分に大きい場合、図18に示すように、本手法の方が1回当たりの偽証確率を低減することが可能になり、少ない対話プロトコルの実行回数で、偽証確率を十分に小さくすることができる。
5パスの公開鍵認証方式に係る対話プロトコルは、3パスの公開鍵認証方式に係る対話プロトコルよりも効率が低いように思われるかもしれない。しかし、5パスの公開鍵認証方式においては、環の位数を十分に大きくとった場合、対話プロトコル1回当たりの偽証確率が1/2に近くなるため、同じセキュリティレベルを達成するために必要な対話プロトコルの実行回数が少なくて済む。
例えば、偽証確率を1/2以下にしたい場合、3パスの公開鍵認証方式においては、n/(log3−1)=1.701n回以上、対話プロトコルを実行する必要がある。一方、5パスの公開鍵認証方式においては、n/(1−log(1+1/q))回以上、対話プロトコルを実行する必要がある。図18に示すように、例えば、q=2にすれば、同じセキュリティレベルを実現するのに必要な通信量は、3パスの公開鍵認証方式に比べ、5パスの公開鍵認証方式の方が少なくなる。
[3−1:公開鍵認証方式のアルゴリズム]
以下、図11を参照しながら、5パスの公開鍵認証方式(本手法)に係るアルゴリズム構成について説明する。図11は、本手法に係るアルゴリズムの内容について説明するための説明図である。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f(x,…,x)と、1変数の多次多項式u(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,…,x)=f(x,…,x)−c(x)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,…,un−1)を秘密鍵skに設定する。
(証明者アルゴリズムP、検証者アルゴリズムV)
次に、図12を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u(t),…,un−1(t),t)を満たす(u,…,un−1)を知っていること」を(u,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明するものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
Step.1:
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r(t),…,rn−1(t)と、n変数多項式f’(x,…,x)を生成する。つまり、証明者アルゴリズムPは、(r,…,rn−1,f’)←G(w)を計算する。次いで、証明者アルゴリズムPは、(z(t),…,zn−1(t))←(u(t)−r(t),…,un−1(t)−rn−1(t))を計算する。この計算は、秘密鍵(u,…,un−1)を1変数多項式(r,…,rn−1)によりマスクする操作に相当する。
Step.1(続き):
次いで、証明者アルゴリズムPは、f”(z(t),…,zn−1(t),t)とz,…,zn−1のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(f”(z(t),…,zn−1(t),t),z,…,zn−1)を計算する。また、証明者アルゴリズムPは、数wのハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(w)を計算する。なお、上記のH(…)、H(…)は、ハッシュ関数である。また、ハッシュ値(c、c)はメッセージである。
Step.1で生成されたメッセージ(c、c)は、検証者に送られる。
Step.2:
検証者アルゴリズムVは、q通り存在する環Kの元から1つの乱数αを選択する。そして、検証者アルゴリズムVは、選択した乱数αを証明者に送る。
Step.3:
証明者アルゴリズムPは、f”(x,…,x)←αf(x+r(x),…,xn−1+rn−1(x),x)+f’(x,…,x)を計算する。この計算は、x,…,xについての多項式f(x+r(x),…,xn−1+rn−1(x),x)を多項式f’(x,…,x)によりマスクする操作に相当する。
Step.3で生成されたメッセージf”は、検証者に送られる。
Step.4:
検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1}を証明者に送る。
Step.5:
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。また、d=1の場合、証明者アルゴリズムPは、情報σ=(z,…,zn−1)を生成する。このようにして生成された情報σは、証明者アルゴリズムPにより検証者に送られる。
Step.6:
検証者アルゴリズムVは、証明者から受け取った情報σを利用して以下の検証処理を実行する。
d=0の場合、検証者アルゴリズムVは、(r’,…,r’n−1,f''')←G(σ)を計算する。そして、検証者アルゴリズムVは、c=H(σ)の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、f”(x,…,x)=αf(x+r’(x),…,xn−1+r’n−1(x),x)+f'''(x,…,x)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
d=1の場合、検証者アルゴリズムVは、(z’,…,z’n−1)←σを計算する。そして、検証者アルゴリズムVは、c=H(f'''(z’(t),…,z’n−1(t),t),z’,…,z’n−1))の等号が成り立つか否かを検証する。検証者アルゴリズムVは、この検証が成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
(補足)
さて、上記Step.1及びStep.3において生成されたメッセージ(c,c)及びf”を検証者に送った際、秘密鍵skに関する情報、(r,…,rn−1)に関する情報、(z,…,zn−1)に関する情報が検証者に一切漏れていないことに注意されたい。また、上記Step.5において生成された情報σを検証者に送った際、d=0のときにはz,…,zn−1に関する情報が検証者に一切漏れておらず、d=1のときにはr,…,rn−1に関する情報が検証者に一切漏れていないことに注意されたい。
(本手法における健全性について)
本手法の健全性は、証明者アルゴリズムPが1組の(c,c)、及び、検証者アルゴリズムVが選択する2通りの(α,α)について、要求d=0,1に正しく回答した場合に、その回答内容から下記の式(11)〜式(13)を満たすf''''、f''''、f'''、r’,…,r’n−1、z’,…,z’n−1を計算できるということから保証されている。
Figure 0005593850
このようなロジックが保証されることにより、代数曲面上の求セクション問題を解かない限りにおいて1/2+1/qより高い確率で偽証することは不可能であることが保証される。つまり、検証者の要求d=0,1の全てに正しく回答するためには、偽証者が上記の式(11)〜式(13)を満たすf''''、f''''、f'''、r’,…,r’n−1、z’,…z’n−1を計算できる必要がある。言い換えると、偽証者はf(u(t),…,un−1(t),t)=0を満たす(u,…,un−1)を計算できる必要がある。従って、代数曲面上の求セクション問題を解かない限り、偽証者は、1/2+1/qより高い確率で偽証を成功させることができないのである。なお、上記の対話プロトコルを十分に多くの回数実行することにより、偽証の成功確率を無視できるほど小さくすることができる。
(変形例)
上記の証明者アルゴリズムPは、メッセージcとして、f”(z(t),…,zn−1(t),t)とz,…,zn−1のハッシュ値を用いていた。しかし、証明者アルゴリズムPは、f”(z(t),…,zn−1(t),t)のハッシュ値と、z,…,zn−1のハッシュ値とを別々に計算し、それぞれをメッセージとして検証者に送るようにしてもよい。また、上記の証明者アルゴリズムPは、数wに擬似乱数生成器Gを適用して1変数多項式r(t),…,rn−1(t)とn変数多項式f’(x,…,x)を生成している。しかし、証明者アルゴリズムPは、最初からw=(r(t),…,rn−1(t),f’)を算出し、Gを恒等写像としてもよい。また、この場合には、数wをGに適用する必要はない。
以上、本手法に係る基本的なアルゴリズム構成について説明した。
[3−2:拡張アルゴリズム]
次に、図12を参照しながら、本手法を拡張した公開鍵認証方式(以下、拡張手法)のアルゴリズムについて説明する。図12は、拡張手法に基づく対話プロトコルの流れを説明するための説明図である。この拡張手法は、3パス目に送信する多項式f”を1つのハッシュ値cに変換して検証者に送る方式である。このように拡張することで、対話プロトコルの中で表現サイズの大きい多項式f”を検証者に送る確率を半減することが可能になり、通信する平均的なデータサイズを削減することができる。以下、拡張方式における各アルゴリズムの内容について詳細に説明する。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f(x,…,x)と、1変数の多次多項式u(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,…,x)=f(x,…,x)−c(x)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,…,un−1)を秘密鍵skに設定する。
(証明者アルゴリズムP、検証者アルゴリズムV)
次に、図12を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u(t),…,un−1(t),t)を満たす(u,…,un−1)を知っていること」を(u,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
Step.1:
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r(t),…,rn−1(t)と、n変数多項式f’(x,…,x)を生成する。つまり、証明者アルゴリズムPは、(r,…,rn−1,f’)←G(w)を計算する。次いで、証明者アルゴリズムPは、(z(t),…,zn−1(t))←(u(t)−r(t),…,un−1(t)−rn−1(t))を計算する。この計算は、秘密鍵(u,…,un−1)を1変数多項式(r,…,rn−1)によりマスクする操作に相当する。
Step.1(続き):
次いで、証明者アルゴリズムPは、f”(z(t),…,zn−1(t),t)とz,…,zn−1のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(f”(z(t),…,zn−1(t),t),z,…,zn−1)を計算する。また、証明者アルゴリズムPは、数wのハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(w)を計算する。なお、上記のH(…)、H(…)は、ハッシュ関数である。また、ハッシュ値(c、c)はメッセージである。
Step.1で生成されたメッセージ(c、c)は、検証者に送られる。
Step.2:
検証者アルゴリズムVは、q通り存在する環Kの元から1つの乱数αを選択する。そして、検証者アルゴリズムVは、選択した乱数αを証明者に送る。
Step.3:
証明者アルゴリズムPは、f”(x,…,x)←αf(x+r(x),…,xn−1+rn−1(x),x)+f’(x,…,x)を計算する。この計算は、x,…,xについての多項式f(x+r(x),…,xn−1+rn−1(x),x)を多項式f’(x,…,x)によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、多項式f”のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(f”)を計算する。なお、上記のH(…)は、ハッシュ関数である。また、ハッシュ値cはメッセージである。
Step.3で生成されたメッセージcは、検証者に送られる。
Step.4:
検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1}を証明者に送る。
Step.5:
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。また、d=1の場合、証明者アルゴリズムPは、情報σ=(z,…,zn−1,f”)を生成する。このようにして生成された情報σは、証明者アルゴリズムPにより検証者に送られる。
Step.6:
検証者アルゴリズムVは、証明者から受け取った情報σを利用して以下の検証処理を実行する。
d=0の場合、検証者アルゴリズムVは、(r’,…,r’n−1,f''')←G(σ)を計算する。そして、検証者アルゴリズムVは、c=H(σ)の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、c=H(αf(x+r’(x),…,xn−1+r’n−1(x),x)+f'''(x,…,x))の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
d=1の場合、検証者アルゴリズムVは、(z’1,…,z’n−1,f''')←σを計算する。そして、検証者アルゴリズムVは、c=H(f'''(z’(t),…,z’n−1(t),t),z’,…,z’n−1))の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、c=H(f''')の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
以上、拡張方式の対話プロトコルにおける各アルゴリズムの処理について説明した。このように拡張することで、対話プロトコルの中で表現サイズの大きい多項式f”を検証者に送る確率を半減することが可能になり、通信する平均的なデータサイズを削減することができる。
[3−3:並列化アルゴリズム]
さて、先に述べた通り、本手法又は拡張手法に係る対話プロトコルを適用すれば、偽証が成功する確率を(1/2+1/q)以下に抑制することができる。従って、この対話プロトコルを2回実行すれば、偽証が成功する確率を(1/2+1/q)以下に抑制することができる。同様に、この対話プロトコルをN回実行すると、偽証が成功する確率は(1/2+1/q)となり、Nを十分に大きい数(例えば、N=80)にすれば、偽証が成功する確率は無視できる程度に小さくなる。例えば、本手法に係る対話プロトコルを並列的にN回実行するアルゴリズムは図13のようになる。以下、図13を参照しながら、並列的に対話プロトコルをN回実行する各アルゴリズムの内容について説明する。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f(x,…,x)と、1変数の多次多項式u(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,…,x)=f(x,…,x)−c(x)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,…,un−1)を秘密鍵skに設定する。ここで、f(u(t),…,un−1(t),t)=0を満たすことに注意されたい。
(証明者アルゴリズムP、検証者アルゴリズムV)
次に、図13を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u(t),…,un−1(t),t)を満たす(u,…,un−1)を知っていること」を(u,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
Step.1:
まず、証明者アルゴリズムPは、i=1〜Nについて、以下の処理(1)〜処理(5)を実行する。(処理1)証明者アルゴリズムPは、任意に数wを選択する。(処理2)証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r1,i(t),…,rn−1,i(t)と多項式f’(x,…,x)を生成する。つまり、証明者アルゴリズムPは、(r1,i,…,rn−1,i,f’)←G(w)を計算する。(処理3)証明者アルゴリズムPは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。
Step.1(続き):
(処理4)証明者アルゴリズムPは、f”(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、証明者アルゴリズムPは、c1,i←H(f”(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理5)証明者アルゴリズムPは、数w’のハッシュ値c2,iを生成する。つまり、証明者アルゴリズムPは、c2,i←H(w’)を計算する。
i=1〜Nについて、上記の(処理1)〜(処理5)が実行された後、Step.1で生成されたメッセージ(c1,i、c2,i)(i=1〜N)は、検証者に送られる。
Step.2:
検証者アルゴリズムVは、q通り存在する環Kの元からN個の乱数α,…,αを選択する。そして、検証者アルゴリズムVは、選択した乱数α,…,αを証明者に送る。
Step.3:
検証者アルゴリズムVは、i=1〜Nについて、f”(x,…,x)←αf(x+r1,i(x),…,xn−1+rn−1,i(x),x)+f’(x,…,x)を計算する。この計算は、x,…,xについての多項式f(x+r1,i(x),…,xn−1+rn−1,i(x),x)を多項式f’(x,…,x)によりマスクする操作に相当する。そして、検証者アルゴリズムVは、多項式f”,…,f”を検証者に送る。
Step.4:
検証者アルゴリズムVは、i=1〜Nのそれぞれについて、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1}(i=1〜N)を証明者に送る。
Step.5:
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。ここで、証明者アルゴリズムPは、i=1〜Nについて、以下の(処理1)又は(処理2)を実行する。(処理1)d=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。(処理2)d=1の場合、証明者アルゴリズムPは、情報σ=(w’,z1,i,…,zn−1,i)を生成する。上記(処理1)又は(処理2)の判定及び処理が実行された後、情報σ(i=1〜N)は、証明者アルゴリズムPにより検証者に送られる。
Step.6:
検証者アルゴリズムVは、証明者から受け取った情報σ(i=1〜N)を利用して以下の検証処理を実行する。なお、以下の処理は、i=1〜Nについて実行される。
=0の場合、検証者アルゴリズムVは、(r’1,i,…,r’n−1,i,f''')←G(σ)を計算する。そして、検証者アルゴリズムVは、c2,i=H(σ)の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、f”(x,…,x)=f(x+r’1,i(x),…,xn−1,i+r’n−1,i(x),x)+f'''(x,…,x)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
=1の場合、検証者アルゴリズムVは、(z’1,i,…,z’n−1,i)←σを計算する。そして、検証者アルゴリズムVは、c1,i=H(f'''(z’1,i(t),…,z’n−1,i(t),t),z’1,i,…,z’n−1,i))の等号が成り立つか否かを検証する。検証者アルゴリズムVは、この検証が成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
以上、本手法の対話プロトコルを並列的に実行する方法について説明した。上記のように、本手法の対話プロトコルを繰り返し実行することにより、偽証が成功する確率を無視できる程度まで低減させることが可能になる。なお、拡張方式についても同様にして並列化することが可能である。拡張方式について並列化した対話プロトコルのアルゴリズム構成を図14に示した。
(拡張方式に係る並列化アルゴリズムについて)
以下、図14を参照しながら、拡張方式に係る並列化アルゴリズムの内容について説明する。なお、鍵生成アルゴリズムGenの構成については本手法に係る並列化アルゴリズムと同じであるため、詳細な説明を省略する。
Step.1:
まず、証明者アルゴリズムPは、i=1〜Nについて、以下の処理(1)〜処理(5)を実行する。(処理1)証明者アルゴリズムPは、任意に数wを選択する。(処理2)証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r1,i(t),…,rn−1,i(t)と多項式f’(x,…,x)を生成する。つまり、証明者アルゴリズムPは、(r1,i,…,rn−1,i,f’)←G(w)を計算する。(処理3)証明者アルゴリズムPは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。
Step.1(続き):
(処理4)証明者アルゴリズムPは、f”(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、証明者アルゴリズムPは、c1,i←H(f”(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理5)証明者アルゴリズムPは、数w’のハッシュ値c2,iを生成する。つまり、証明者アルゴリズムPは、c2,i←H(w’)を計算する。
i=1〜Nについて、上記の(処理1)〜(処理5)が実行された後、Step.1で生成されたメッセージ(c1,i、c2,i)(i=1〜N)は、検証者に送られる。
Step.2:
検証者アルゴリズムVは、q通り存在する環Kの元からN個の乱数α,…,αを選択する。そして、検証者アルゴリズムVは、選択した乱数α,…,αを証明者に送る。
Step.3:
検証者アルゴリズムVは、i−1〜Nについて、f”(x,…,x)←αf(x+r1,i(x),…,xn−1+rn−1,i(x),x)+f’(x,…,x)を計算する。この計算は、x,…,xについての多項式f(x+r1,i(x),…,xn−1+rn−1,i(x),x)を多項式f’(x,…,x)によりマスクする操作に相当する。次いで、検証者アルゴリズムVは、多項式f”,…,f”のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(f”,…,f”)を計算する。なお、上記のH(…)は、ハッシュ関数である。また、ハッシュ値cはメッセージである。
Step.3で生成されたメッセージcは、検証者に送られる。
Step.4:
検証者アルゴリズムVは、i=1〜Nのそれぞれについて、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1}(i=1〜N)を証明者に送る。
Step.5:
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。ここで、証明者アルゴリズムPは、i=1〜Nについて、以下の(処理1)又は(処理2)を実行する。(処理1)d=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。(処理2)d=1の場合、証明者アルゴリズムPは、情報σ=(w’,z1,i,…,zn−1,i,f”)を生成する。上記(処理1)又は(処理2)の判定及び処理が実行された後、情報σ(i=1〜N)は、証明者アルゴリズムPにより検証者に送られる。
Step.6:
検証者アルゴリズムVは、証明者から受け取った情報σ(i=1〜N)を利用して以下の検証処理を実行する。なお、以下の処理は、i=1〜Nについて実行される。
=0の場合、検証者アルゴリズムVは、(r’1,i,…,r’n−1,i,f''')←G(σ)を計算する。さらに、検証者アルゴリズムVは、f''''←αf(x+r’1,i(x),…,xn−1+r’n−1,i(x),x)+f'''(x,…,x)を計算する。そして、検証者アルゴリズムVは、c2,i=H(σ)の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、c=H(f'''',…,f'''')の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
=1の場合、検証者アルゴリズムVは、(z’1,i,…,z’n−1,i,f'''')←σを計算する。そして、検証者アルゴリズムVは、c1,i=H(f'''(z’1,i(t),…,z’n−1,i(t),t),z’1,i,…,z’n−1,i))の等号が成り立つか否かを検証する。さらに、検証者アルゴリズムVは、c=H(f'''',…,f'''')の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
以上、拡張方式に係る並列化アルゴリズムの内容について説明した。
[3−4:非対話型アルゴリズム]
これまで5パスの公開鍵認証方式について説明してきた。しかし、本手法においては、検証者から証明者に送られる情報が実際には単なる乱数だけであるため、1パスの公開鍵認証方式(以下、非対話型方式)に変形することができる。なお、非対話型方式に係る各アルゴリズムの内容を図15に示した。以下、図15を参照しながら、非対話型方式に係る各アルゴリズムの内容について説明する。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f(x,…,x)と、1変数の多次多項式u(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,…,x)=f(x,…,x)−c(x)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,…,un−1)を秘密鍵skに設定する。ここで、f(u(t),…,un−1(t),t)=0を満たすことに注意されたい。
(証明者アルゴリズムP、検証者アルゴリズムV)
次に、図15を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u(t),…,un−1(t),t)を満たす(u,…,un−1)を知っていること」を(u,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
Step.1:
まず、証明者アルゴリズムPは、i=1〜Nについて、以下の処理(1)〜処理(5)を実行する。(処理1)証明者アルゴリズムPは、任意に数wを選択する。(処理2)証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r1,i(t),…,rn−1,i(t)と多項式f’(x,…,x)を生成する。つまり、証明者アルゴリズムPは、(r1,i,…,rn−1,i,f’)←G(w)を計算する。(処理3)証明者アルゴリズムPは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。
Step.1(続き):
(処理4)証明者アルゴリズムPは、f”(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、証明者アルゴリズムPは、c1,i←H(f”(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理5)証明者アルゴリズムPは、数w’のハッシュ値c2,iを生成する。つまり、証明者アルゴリズムPは、c2,i←H(w’)を計算する。
Step.1(続き):
次に、検証者アルゴリズムVは、乱数R,Rを選択する。そして、検証者アルゴリズムVは、乱数Rと上記の(処理4)及び(処理5)で計算されたハッシュ値c1,i,c2,iをハッシュ関数Hに適用してハッシュ値α,…,αを生成する。つまり、検証者アルゴリズムVは、(α,…,α)←H(R,c1,1,…,c2,N)を計算する。
Step.1(続き):
次に、検証者アルゴリズムVは、i=1〜Nについて、以下の(処理1)及び(処理2)を実行する。(処理1)証明者アルゴリズムPは、f”(x,…,x)←αf(x+r1,i(x),…,xn−1+rn−1,i(x),x)+f’(x,…,x)を計算する。この計算は、x,…,xについての多項式f(x+r1,i(x),…,xn−1+rn−1,i(x),x)を多項式f’(x,…,x)によりマスクする操作に相当する。(処理2)証明者アルゴリズムPは、i=1〜Nについて、乱数R,R、ハッシュ値(c1,i、c2,i)、α,f”をハッシュ関数Hに適用してd=(d,…,d)を生成する。つまり、証明者アルゴリズムPは、(d,…,d)←H(R,R,c1,1,…,c2,N,α,…,α,f”,…,f”)を計算する。
Step.1(続き):
次に、検証者アルゴリズムVは、
次に、証明者アルゴリズムPは、生成したdに応じて検証者に送り返す情報σを生成する。ここで、証明者アルゴリズムPは、i=1〜Nについて、以下の(処理1)又は(処理2)を実行する。(処理1)d=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。(処理2)d=1の場合、証明者アルゴリズムPは、情報σ=(z1,i,…,zn−1,i)を生成する。上記(処理1)又は(処理2)の判定及び処理が実行された後、R、R、α、c1,i、c2,i、σ(i=1〜N)は、証明者アルゴリズムPにより検証者に送られる。
Step.2:
検証者アルゴリズムVは、まず、証明者から受け取ったR、c1,i、c2,iをハッシュ関数Hに適用してαを生成する。つまり、検証者アルゴリズムVは、(α,…,α)←H(R,c1,1,…,c2,N)を計算する。次いで、検証者アルゴリズムVは、d=(d,…,d)←H(R,R,c1,1,…,c2,N,α,…,α,f”,…,f”)を計算する。次いで、検証者アルゴリズムVは、情報σ(i=1〜N)を利用して以下の検証処理を実行する。なお、以下の処理は、i=1〜Nについて実行される。
=0の場合、検証者アルゴリズムVは、(r’1,i,…,r’n−1,i,f''')←G(σ)を計算する。そして、検証者アルゴリズムVは、c2,i=H(σ)の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、f”(x,…,x=αf(x+r’1,i(x),…,xn−1,i+r’n−1,i(x),x)+f'''(x,…,x)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
=1の場合、検証者アルゴリズムVは、(z’1,i,…,z’n−1,i,f''')←σを計算する。そして、検証者アルゴリズムVは、c1,i=H(f'''(z’1,i(t),…,z’n−1,i(t),t),z’1,i,…,z’n−1,i))の等号が成り立つか否かを検証する。検証者アルゴリズムVは、この検証が成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
以上、非対話型方式に係る各アルゴリズムの内容について説明した。なお、理想的なハッシュ関数H、Hを仮定すれば、ハッシュ値α,dがランダムに振る舞うため、証明者に都合の良いハッシュ値α,dが出ることはない。そのため、上記のような変形を行っても、十分な安全性が確保される。なお、このような変形は、拡張方式などに対しても同様に適用することが可能である。
[3−5:電子署名方式への変形]
ここで、本手法を電子署名方式へと変形する方法について説明する。なお、ここでは簡単のために、上記の非対話型方式を電子署名方式に変形する方法について述べる。上記の非対話型方式における証明者と検証者を電子署名方式における署名者と検証者に対応させると、証明者のみが検証者を納得させられるという点において、電子署名方式のモデルと近似していることが分かるであろう。こうした考えをもとに、非対話型方式に基づく電子署名方式のアルゴリズム構成について詳細に説明する。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f(x,…,x)と、1変数の多次多項式u(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,…,x)=f(x,…,x)−c(x)を計算し、fを検証鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,…,un−1)を署名鍵skに設定する。ここで、f(u(t),…,un−1(t),t)=0を満たすことに注意されたい。
(署名生成アルゴリズムSig)
署名生成アルゴリズムSigは、i=1〜Nについて、以下の(処理1)〜(処理11)を実行する。なお、署名生成アルゴリズムSigには、署名鍵sk=(u,…,un−1)と文書Mが入力されているものとする。
(処理1)署名生成アルゴリズムSigは、任意に数wを選択する。(処理2)署名生成アルゴリズムSigは、擬似乱数生成器Gに数wを適用して1変数多項式r1,i(t),…,rn−1,i(t)とn変数多項式f’(x,…,x)を生成する。つまり、署名生成アルゴリズムSigは、(r1,i,…,rn−1,i,f’)←G(w)を計算する。(処理2)署名生成アルゴリズムSigは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。
(処理3)署名生成アルゴリズムSigは、f”(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、署名生成アルゴリズムSigは、c1,i←H(f”(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理4)署名生成アルゴリズムSigは、数w’のハッシュ値c2,iを生成する。つまり、署名生成アルゴリズムSigは、c2,i←H(w’)を計算する。なお、上記のH(…)、H(…)は、ハッシュ関数である。
(処理4)署名生成アルゴリズムSigは、乱数Rを任意に選択する。(処理5)署名生成アルゴリズムSigは、α=(α,…,α)←H(R,M,c1,1,…,c2,N)を計算する。(処理6)署名生成アルゴリズムSigは、i=1〜Nについて、f”(x,…,x)=αf(x+r’1,i(x),…,xn−1,i+r’n−1,i(x),x)+f’(x,…,x)を計算する。(処理7)署名生成アルゴリズムSigは、乱数Rを任意に選択する。(処理8)署名生成アルゴリズムSigは、d=(d,…,d)←H(R,M,c1,1,…,c2,N,α,f”,…,f”)を計算する。
次に、署名生成アルゴリズムSigは、i=1〜Nについて、dに応じた次の(処理9)又は(処理10)を実行する。(処理9)d=0の場合、署名生成アルゴリズムSigは、σ←wを計算する。(処理10)d=1の場合、署名生成アルゴリズムSigは、σ←(z1,i,…,zn−1,i)を計算する。
(処理11)i=1〜Nについて、上記(処理9)又は(処理10)の判定及び処理が実行された後、署名生成アルゴリズムSigは、電子署名σ=(R,R,c1,1,…,c2,N,α,…,α,f”,…,f”)を出力する。
(署名検証アルゴリズムVer)
署名検証アルゴリズムVerは、i=1〜Nについて、以下の全ての検証を通過すれば、電子署名σを受理し、1つでも検証を通過しなかった場合には電子署名σを拒否する。なお、署名検証アルゴリズムVerには、電子署名σと文書Mが入力されているものとする。まず、署名検証アルゴリズムVerは、α=(α,…,α)←H(R,M,c1,1,…,c3,N)を計算する。次いで、署名検証アルゴリズムVerは、d=(d,…,d)←H(R,M,c1,1,…,c3,N,α,f”,…,f”)を計算する。次いで、署名検証アルゴリズムVerは、i=1〜Nについて、以下の(検証1)〜(検証3)を実行する。
(検証1)di=0の場合、署名検証アルゴリズムVerは、(r’1,i,…,r’n−1,i,f”)←G(σ)を計算する。そして、署名検証アルゴリズムVerは、c2,i=H(σ)の等号が成り立つか否かを検証する。また、署名検証アルゴリズムVerは、f”(x,…,x)=αf(x+r’1,i(x),…,xn−1,i+r’n−1,i(x),x)+f’(x,…,x)の等号が成り立つか否かを検証する。署名検証アルゴリズムVerは、これらの検証が全て成功した場合に電子署名σの受理を示す値1を出力し、検証に失敗があった場合に電子署名σの拒否を示す値0を出力する。
(検証2)d=1の場合、署名検証アルゴリズムVerは、(z’1,i,…,z’n−1,i,f''')←σを計算する。そして、署名検証アルゴリズムVerは、c1,i=H(f'''(z’1,i(t),…,z’n−1,i(t),t),z’1,i,…,z’n−1,i))の等号が成り立つか否かを検証する。署名検証アルゴリズムVerは、この検証が成功した場合に電子署名σの受理を示す値1を出力し、検証に失敗があった場合に電子署名σの拒否を示す値0を出力する。
以上、本手法に基づく電子署名方式の各アルゴリズム構成について説明した。上記の電子署名方式は、代数曲面上の求セクション問題に安全性の根拠をおくものであるが、ASS−CC電子署名方式のような安全性の問題を内包しない。なお、同様にして、上記の拡張方式に基づく電子署名方式を構築することも可能である。
[3−6:具体例]
次に、図16を参照しながら、本手法を実施する際に想定される具体的なアルゴリズム構成について説明する。図16は、本手法の具体例を説明するための説明図である。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、環K上で定義される3変数のD次多項式f0(x,y,t)と、1変数の多次多項式ux(t),uy(t)を生成する。但し、D次多項式f0(x,y,t)は、下記の式(14)により表現される。また、1変数の多次多項式ux(t)は、下記の式(15)により表現される。さらに、1変数の多次多項式uy(t)は、下記の式(16)により表現される。
Figure 0005593850
次に、鍵生成アルゴリズムGenは、c(t)←f(u(t),u(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x,y,t)=f(x,y,t)−c(t)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u,u)を秘密鍵skに設定する。なお、鍵生成アルゴリズムGenにより生成されるfは、xの項以外については最大でD次となるが、xの項については最大で(D+D)次になる。
(証明者アルゴリズムP、検証者アルゴリズムV)
次に、図16を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u(t),u(t),t)を満たす(u,u)を知っていること」を(u,u)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
Step.1:
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r(t),r(t)と、3変数多項式f’(x,y,t)を生成する。つまり、証明者アルゴリズムPは、(r,r,f’)←G(w)を計算する。次いで、証明者アルゴリズムPは、(z(t),z(t))←(u(t)−r(t),u(t)−r(t))を計算する。この計算は、秘密鍵(u,u)を1変数多項式(r,r)によりマスクする操作に相当する。
Step.1(続き):
次いで、証明者アルゴリズムPは、f”(z(t),z(t),t)とz,zのハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(f”(z(t),z(t),t),z,z)を計算する。また、証明者アルゴリズムPは、数wのハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(w)を計算する。なお、上記のH(…)、H(…)は、ハッシュ関数である。また、ハッシュ値(c,c)はメッセージである。
Step.1で生成されたメッセージ(c,c)は、検証者に送られる。
Step.2:
検証者アルゴリズムVは、環Kの元から1つの乱数αを選択する。そして、検証者アルゴリズムVは、選択した乱数αを証明者に送る。
Step.3:
証明者アルゴリズムPは、f”(x,y,t)←αf(x+r(t),y+r(t),t)+f’(x,y,t)を計算する。この計算は、x,y,tについての多項式f(x+r(t),…,y+r(t),t)を多項式f’(x,y,t)によりマスクする操作に相当する。
Step.3で生成されたメッセージf”は、検証者に送られる。
Step.4:
検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1}を証明者に送る。
Step.5:
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。また、d=1の場合、証明者アルゴリズムPは、情報σ=(z,z)を生成する。このようにして生成された情報σは、証明者アルゴリズムPにより検証者に送られる。
Step.6:
検証者アルゴリズムVは、証明者から受け取った情報σを利用して以下の検証処理を実行する。
d=0の場合、検証者アルゴリズムVは、(r’,r’,f''')←G(σ)を計算する。そして、検証者アルゴリズムVは、c=H(σ)の等号が成り立つか否かを検証する。また、検証者アルゴリズムVは、f”(x,y,t)=αf(x+r’(t),y+r’(t),t)+f'''(x,y,t)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
d=1の場合、検証者アルゴリズムVは、(z’,z’)←σを計算する。そして、検証者アルゴリズムVは、c1=H1(f'''(z’(t),z’(t),t),z’,z’))の等号が成り立つか否かを検証する。検証者アルゴリズムVは、この検証が成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
以上、本手法を実施する際に想定される具体的なアルゴリズム構成について説明した。
<4:ハードウェア構成例>
上記の各アルゴリズムは、例えば、図17に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図17に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、接触式又は非接触式のICチップ、接触式又は非接触式のICカード、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy−phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
図17に示すように、このハードウェアは、主に、CPU902と、ROM904と、RAM906と、ホストバス908と、ブリッジ910と、を有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926と、を有する。但し、上記のCPUは、Central Processing Unitの略である。また、上記のROMは、Read Only Memoryの略である。そして、上記のRAMは、Random Access Memoryの略である。
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ(以下、リモコン)が用いられることもある。
出力部918としては、例えば、CRT、LCD、PDP、又はELD等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のCRTは、Cathode Ray Tubeの略である。また、上記のLCDは、Liquid Crystal Displayの略である。そして、上記のPDPは、Plasma DisplayPanelの略である。さらに、上記のELDは、Electro−Luminescence Displayの略である。
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、ハードディスクドライブ(HDD)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のHDDは、Hard Disk Driveの略である。
ドライブ922は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928は、例えば、DVDメディア、Blu−rayメディア、HD DVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体928は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。但し、上記のICは、Integrated Circuitの略である。
接続ポート924は、例えば、USBポート、IEEE1394ポート、SCSI、RS−232Cポート、又は光オーディオ端子等のような外部接続機器930を接続するためのポートである。外部接続機器930は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。但し、上記のUSBは、Universal Serial Busの略である。また、上記のSCSIは、Small Computer System Interfaceの略である。
通信部926は、ネットワーク932に接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB用の通信カード、光通信用のルータ、ADSL用のルータ、又は接触又は非接触通信用のデバイス等である。また、通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内LAN、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のLANは、Local Area Networkの略である。また、上記のWUSBは、Wireless USBの略である。そして、上記のADSLは、Asymmetric Digital Subscriber Lineの略である。
<5:まとめ>
最後に、本発明の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、PC、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。
上記の情報処理装置の機能構成は次のように表現することができる。当該情報処理装置は、次に示すような鍵設定部と、メッセージ送信部と、検証パターン受信部と、回答送信部とを有する。上記の鍵設定部は、多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定するものである。f(u(t),…,un−1(t),t)=0を満たす多次多項式u(t)を求める問題は、代数曲面上の求セクション問題に他ならない。つまり、上記の情報処理装置は、代数曲面上の求セクション問題に安全性の根拠をおく認証の仕組みを提供するものである。
また、上記のメッセージ送信部は、検証者に対してメッセージcを送信するものである。さらに、上記の検証パターン受信部は、1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信するものである。そして、上記の回答送信部は、k通りの回答情報の中から、前記検証パターン受信部により受信された検証パターンの情報に対応する回答情報を前記検証者に送信するものである。但し、前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uiが計算可能となる情報である。
上記のメッセージcには、例えば、3つのメッセージc、c、cが含まれている。そして、各検証パターンでは、c、c、cのいずれか2つに対する検証が行われる。また、上記の回答情報は、各検証パターンに応じて、上記いずれか2つのメッセージに対する検証を行うために必要な情報である。但し、上記のメッセージcを検証者に渡しても、秘密鍵の情報が一切漏れないことが1つの条件である。もう1つの条件は、メッセージcと回答情報が揃っても秘密鍵の情報が一切漏れないことである。これらの条件を満たすメッセージcの構成、及び回答情報の構成については、図6などを参照しながら、既に具体的に説明した通りである。
(備考)
上記の鍵生成アルゴリズムGenは、鍵設定部の一例である。上記の証明者アルゴリズムPは、メッセージ送信部、検証パターン受信部、回答送信部、応答受信部、多項式生成部、多項式送信部の一例である。上記の情報σは、回答情報の一例である。上記の検証者アルゴリズムVは、メッセージ受信部、検証パターン選択部、検証パターン送信部、回答受信部、検証部、応答送信部、多項式受信部の一例である。上記の署名生成アルゴリズムSigは、メッセージ生成部、検証パターン選択部、署名生成部の一例である。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
Gen 鍵生成アルゴリズム
P 証明者アルゴリズム
V 検証者アルゴリズム
Sig 署名生成アルゴリズム
Ver 署名検証アルゴリズム

Claims (15)

  1. 多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定部と、
    検証者に対してメッセージcを送信するメッセージ送信部と、
    1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信部と、
    k通りの回答情報の中から、前記検証パターン受信部により受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信部と、
    を備え、
    前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uが計算可能となる情報である、
    認証装置。
  2. 前記メッセージ送信部により単数又は複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第2ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第3ステップを実行し、前記検証者により全ての回答情報で検証が成功した場合に認証が成功する、
    請求項1に記載の認証装置。
  3. 前記メッセージ送信部により単数又は複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第2ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第3ステップを実行する処理を繰り返し、
    前記第1〜第3ステップを所定回数実行した結果、前記検証者により毎回全ての回答情報で検証が成功した場合に認証が成功する、
    請求項2に記載の認証装置。
  4. 前記メッセージcがc=(c,…,c)である場合、
    前記メッセージ送信部は、一方向性関数Hを用いて新たなメッセージc’=H(c)を算出して、前記検証者に対してメッセージc’を送信し、
    前記回答送信部は、前記回答情報と共に、当該回答情報を利用しても前記検証者が復元することができないメッセージcの要素を送信する、
    請求項2又は3に記載の認証装置。
  5. 多次多項式u(t)(i=1〜n−1)が秘密鍵に設定され、f(u(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、
    証明者からメッセージcを受信するメッセージ受信部と、
    1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から1つの検証パターンを選択する検証パターン選択部と、
    前記検証パターン選択部により選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信部と、
    k通りの回答情報の中から、前記検証パターン送信部により送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信部と、
    前記メッセージ受信部により受信されたメッセージc、及び前記回答受信部により受信された回答情報を用いて前記証明者の正当性を検証する検証部と、
    を備え、
    前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uが計算可能となる情報である、
    認証装置。
  6. 多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定部と、
    検証者に対してメッセージcを送信するメッセージ送信部と、
    前記検証者から応答αを受信する応答受信部と、
    前記応答受信部により受信された応答αを用いて、前記メッセージcに対する検証に利用される多項式f”を生成する多項式生成部と、
    前記多項式生成部により生成された多項式f”を前記検証者に送信する多項式送信部と、
    1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信部と、
    k通りの回答情報の中から、前記検証パターン受信部により受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信部と、
    を備え、
    前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uが計算可能となる情報である、
    認証装置。
  7. 前記メッセージ送信部により単数又は複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記応答受信部から応答αを受信する第2ステップ、当該第2ステップで受信した応答αを用いて前記多項式生成部によりそれぞれ多項式f”を生成し、前記多項式送信部により当該多項式f”を送信する第3ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第4ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第5ステップを実行し、前記検証者により全ての回答情報で検証が成功した場合に認証が成功する、
    請求項6に記載の認証装置。
  8. 前記メッセージ送信部により単数又は複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記応答受信部から応答αを受信する第2ステップ、当該第2ステップで受信した応答αを用いて前記多項式生成部によりそれぞれ多項式f”を生成し、前記多項式送信部により当該多項式f”を送信する第3ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第4ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第5ステップを実行する処理を繰り返し、
    前記第1〜第5ステップを所定回数実行した結果、前記検証者により毎回全ての回答情報で検証が成功した場合に認証が成功する、
    請求項7に記載の認証装置。
  9. 多次多項式u(t)(i=1〜n−1)が秘密鍵に設定され、f(u(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、
    証明者からメッセージcを受信するメッセージ受信部と、
    前記証明者に対して応答αを送信する応答送信部と、
    前記応答送信部により送信された応答αを用いて前記証明者により生成された、前記メッセージcに対する検証に利用される多項式f”を受信する多項式受信部と、
    1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から1つの検証パターンを選択する検証パターン選択部と、
    前記検証パターン選択部により選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信部と、
    k通りの回答情報の中から、前記検証パターン送信部により送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信部と、
    前記メッセージ受信部により受信されたメッセージc、前記多項式受信部により受信された多項式f”、及び前記回答受信部により受信された回答情報を用いて前記証明者の正当性を検証する検証部と、
    を備え、
    前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uが計算可能となる情報である、
    認証装置。
  10. 認証装置が、多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定ステップと、
    前記認証装置が、検証者に対してメッセージcを送信するメッセージ送信ステップと、
    前記認証装置が、1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信ステップと、
    前記認証装置が、k通りの回答情報の中から、前記検証パターン受信ステップで受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信ステップと、
    を含み、
    前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uが計算可能となる情報である、
    認証方法。
  11. 多次多項式u(t)(i=1〜n−1)が秘密鍵に設定され、f(u(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、
    認証装置が、証明者からメッセージcを受信するメッセージ受信ステップと、
    前記認証装置が、1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から1つの検証パターンを選択する検証パターン選択ステップと、
    前記認証装置が、前記検証パターン選択ステップで選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信ステップと、
    前記認証装置が、k通りの回答情報の中から、前記検証パターン送信ステップで送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信ステップと、
    前記認証装置が、前記メッセージ受信ステップで受信されたメッセージc、及び前記回答受信ステップで受信された回答情報を用いて前記証明者の正当性を検証する検証ステップと、
    を含み、
    前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uが計算可能となる情報である、
    認証方法。
  12. 認証装置が、多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定ステップと、
    前記認証装置が、検証者に対してメッセージcを送信するメッセージ送信ステップと、
    前記認証装置が、前記検証者から応答αを受信する応答受信ステップと、
    前記認証装置が、前記応答受信ステップで受信された応答αを用いて、前記メッセージcに対する検証に利用される多項式f”を生成する多項式生成ステップと、
    前記認証装置が、前記多項式生成ステップで生成された多項式f”を前記検証者に送信する多項式送信ステップと、
    前記認証装置が、1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信ステップと、
    前記認証装置が、k通りの回答情報の中から、前記検証パターン受信ステップで受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信ステップと、
    を含み、
    前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uが計算可能となる情報である、
    認証方法。
  13. 多次多項式u(t)(i=1〜n−1)が秘密鍵に設定され、f(u(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、
    認証装置が、証明者からメッセージcを受信するメッセージ受信ステップと、
    前記認証装置が、前記証明者に対して応答αを送信する応答送信ステップと、
    前記認証装置が、前記応答送信ステップで送信された応答αを用いて前記証明者により生成された、前記メッセージcに対する検証に利用される多項式f”を受信する多項式受信ステップと、
    前記認証装置が、1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から1つの検証パターンを選択する検証パターン選択ステップと、
    前記認証装置が、前記検証パターン選択ステップで選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信ステップと、
    前記認証装置が、k通りの回答情報の中から、前記検証パターン送信ステップで送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信ステップと、
    前記認証装置が、前記メッセージ受信ステップで受信されたメッセージc、前記多項式受信ステップで受信された多項式f”、及び前記回答受信ステップで受信された回答情報を用いて前記証明者の正当性を検証する検証ステップと、
    を含み、
    前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uが計算可能となる情報である、
    認証方法。
  14. コンピュータが、多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定機能と、
    前記コンピュータが、検証者に対してメッセージcを送信するメッセージ送信機能と、
    前記コンピュータが、1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信機能と、
    前記コンピュータが、k通りの回答情報の中から、前記検証パターン受信機能により受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信機能と、
    前記コンピュータに実現させるためのプログラムであり、
    前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uが計算可能となる情報である、
    プログラム。
  15. 多次多項式u(t)(i=1〜n−1)を秘密鍵に設定し、f(u(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定部と、
    前記多次多項式u(t)に基づいてN個のメッセージcを生成するメッセージ生成部と、
    文書M及び前記メッセージcを一方向性関数に適用して得られた情報に基づいて、kN通り(k≧3)の検証パターンの中から検証パターンを選択する検証パターン選択部と、
    前記検証パターン選択部により選択された検証パターンに応じて、前記メッセージc及び前記文書Mを用いた検証を通過するような電子署名σを生成する署名生成部と、
    を備え、
    前記電子署名σは、前記(k−1)N+1通りの検証パターンに対応する電子署名σを用いて実施した検証が全て成功した場合に秘密鍵uが計算可能となる情報である、
    署名生成装置。

JP2010125021A 2010-05-31 2010-05-31 認証装置、認証方法、プログラム、及び署名生成装置 Expired - Fee Related JP5593850B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010125021A JP5593850B2 (ja) 2010-05-31 2010-05-31 認証装置、認証方法、プログラム、及び署名生成装置
US13/112,819 US8433912B2 (en) 2010-05-31 2011-05-20 Authentication device, authentication method, program, and signature generation device
CN201110145045.4A CN102263639B (zh) 2010-05-31 2011-05-24 认证装置、认证方法和签名生成装置
US13/855,427 US8826025B2 (en) 2010-05-31 2013-04-02 Authentication device, authentication method, program, and signature generation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010125021A JP5593850B2 (ja) 2010-05-31 2010-05-31 認証装置、認証方法、プログラム、及び署名生成装置

Publications (2)

Publication Number Publication Date
JP2011254155A JP2011254155A (ja) 2011-12-15
JP5593850B2 true JP5593850B2 (ja) 2014-09-24

Family

ID=45010113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010125021A Expired - Fee Related JP5593850B2 (ja) 2010-05-31 2010-05-31 認証装置、認証方法、プログラム、及び署名生成装置

Country Status (3)

Country Link
US (2) US8433912B2 (ja)
JP (1) JP5593850B2 (ja)
CN (1) CN102263639B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5790287B2 (ja) 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP5790286B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
JP6069852B2 (ja) * 2011-08-29 2017-02-01 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP2014090372A (ja) 2012-10-31 2014-05-15 Sony Corp 情報処理装置、情報処理システム、情報処理方法及びコンピュータプログラム
US9516007B2 (en) * 2012-12-05 2016-12-06 Sony Corporation Verifier and prover have an authentication protocol with challenge-response with the challenge from prover having identification of the verifier
US9054800B2 (en) 2013-09-11 2015-06-09 Symbol Technologies, Llc Staging a mobile device with visible light communication
CN104009848B (zh) * 2014-05-26 2017-09-29 华南理工大学 一种混合型的多变量数字签名系统及方法
US10021075B1 (en) * 2016-06-23 2018-07-10 EMC IP Holding Company LLC Multiple data center data security
EP3497522B1 (en) * 2016-08-09 2021-04-28 Innogy Innovation GmbH Building automation system
US10623384B2 (en) 2017-06-12 2020-04-14 Daniel Maurice Lerner Combined hidden dynamic random-access devices utilizing selectable keys and key locators for communicating randomized data together with sub-channels and coded encryption keys
CN107566125A (zh) * 2017-09-01 2018-01-09 捷德(中国)信息科技有限公司 一种多算法结合的安全认证方法
CN108282470B (zh) * 2018-01-09 2020-11-10 安庆师范大学 一种网络图形验证方法及验证系统
CN109245897B (zh) * 2018-08-23 2020-06-19 北京邮电大学 一种基于非交互的零知识证明的节点认证方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100380862C (zh) * 1999-10-01 2008-04-09 法国电信公司 验证实体真实性或消息完整性的方法、系统、设备
US7308097B2 (en) * 2001-12-07 2007-12-11 Ntru Cryptosystems, Inc. Digital signature and authentication method and apparatus
US8046832B2 (en) * 2002-06-26 2011-10-25 Microsoft Corporation Spam detector with challenges
FR2865590A1 (fr) * 2004-01-23 2005-07-29 France Telecom Procede pour etablir, a partir d'un jeu de grands nombres premiers, un jeu de cles destine a prouver l'authenticite d'une entite ou l'integrite d'un message
CN1954548B (zh) * 2005-04-18 2010-07-21 松下电器产业株式会社 签名生成装置及签名验证装置
JP4575283B2 (ja) * 2005-11-15 2010-11-04 株式会社東芝 暗号装置、復号装置、プログラム及び方法
FR2899702A1 (fr) * 2006-04-10 2007-10-12 France Telecom Procede et dispositif pour engendrer une suite pseudo-aleatoire
WO2008001322A2 (en) * 2006-06-30 2008-01-03 International Business Machines Corporation Message handling at a mobile device
JP4834650B2 (ja) * 2007-11-22 2011-12-14 パナソニック株式会社 情報処理装置

Also Published As

Publication number Publication date
US20130219185A1 (en) 2013-08-22
US20110296189A1 (en) 2011-12-01
JP2011254155A (ja) 2011-12-15
US8433912B2 (en) 2013-04-30
CN102263639A (zh) 2011-11-30
US8826025B2 (en) 2014-09-02
CN102263639B (zh) 2016-08-24

Similar Documents

Publication Publication Date Title
JP5593850B2 (ja) 認証装置、認証方法、プログラム、及び署名生成装置
JP5736816B2 (ja) 認証装置、認証方法、プログラム、及び署名生成装置
JP5790319B2 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
JP6069852B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP5790318B2 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
JP2013042315A (ja) 情報処理装置、及び情報処理方法
JP2010278482A (ja) 情報処理装置、電子署名生成システム、電子署名用の鍵生成方法、情報処理方法、及びプログラム
US10122531B2 (en) Information processing apparatus, information processing method, and recording medium
JP5594034B2 (ja) 認証装置、認証方法、及びプログラム
JP5790287B2 (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
US10075299B2 (en) Information processing apparatus, signature providing method, signature verifying method, program, and recording medium
WO2013129084A1 (ja) 情報処理装置、情報処理方法、及びプログラム
WO2013129119A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP5790286B2 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
JP5790290B2 (ja) 情報処理装置、情報処理方法、プログラム、及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2013047726A (ja) 情報処理装置、署名生成装置、署名検証装置、情報処理方法、署名生成方法、及び署名検証方法
JP5790288B2 (ja) 情報処理装置、及び情報処理方法
WO2013031413A1 (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
WO2013024628A1 (ja) 情報処理装置、及び情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140530

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: 20140708

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140721

R151 Written notification of patent or utility model registration

Ref document number: 5593850

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees