TW201325180A - 資訊處理裝置、署名生成裝置、署名驗證裝置、資訊處理方法、署名生成方法及署名驗證方法 - Google Patents

資訊處理裝置、署名生成裝置、署名驗證裝置、資訊處理方法、署名生成方法及署名驗證方法 Download PDF

Info

Publication number
TW201325180A
TW201325180A TW101128305A TW101128305A TW201325180A TW 201325180 A TW201325180 A TW 201325180A TW 101128305 A TW101128305 A TW 101128305A TW 101128305 A TW101128305 A TW 101128305A TW 201325180 A TW201325180 A TW 201325180A
Authority
TW
Taiwan
Prior art keywords
information
message
verification
vector
verifier
Prior art date
Application number
TW101128305A
Other languages
English (en)
Inventor
Harunaga Hiwatari
Koichi Sakumoto
Taizo Shirai
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
Publication of TW201325180A publication Critical patent/TW201325180A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/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

Landscapes

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

Abstract

本發明提供一種署名生成裝置,其包括:署名生成部,其使用定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及署名金鑰s□Kn而生成相對於文件M之電子署名;及署名提供部,其向保持上述2次多元多項式之組F及向量y=(f1(s),...,fm(s))之驗證者提供上述電子署名;且上述署名生成部根據式g1(x1,x2)=x1TA1x2+x2TA1x1(l=1~m;A1為n×n之係數矩陣)而執行在生成上述電子署名之過程中所執行之以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。

Description

資訊處理裝置、署名生成裝置、署名驗證裝置、資訊處理方法、署名生成方法及署名驗證方法
本技術係關於一種資訊處理裝置、署名生成裝置、署名驗證裝置、資訊處理方法、署名生成方法及署名驗證方法。
隨著資訊處理技術及通訊技術之急速發展,無論是公務文件還是私人文件,文件之電子化均在急速地發展。隨之,大量個人及企業開始對電子文件之安全管理寄予極大之關心。受到此種關心之高漲,人們開始於各方面積極地研究針對電子文件之竊聽或偽造等纂改行為的對抗策略。對於電子文件之竊聽,例如,藉由將電子文件暗號化而確保安全性。又,對於電子文件之偽造,例如,藉由利用電子署名而確保安全性。但是,若所利用之暗號或電子署名不具較高之纂改耐性,則無法保證充分之安全性。
電子署名用以特定電子文件之製作者。因此,電子署名應僅可由電子文件之製作者生成。假設,若帶有惡意之第三者可生成相同之電子署名,則該第三者便可完全成為電子文件之製作者。即,會由帶有惡意之第三者偽造電子文件。為防止此種偽造,關於電子署名之安全性始終交織著各種議論。作為目前廣泛利用之電子署名方式,已知有例如RSA(以Ron Rivest、Adi Shamirh、LenAdleman三位開發者之名字命名,公鑰密碼體制)署名方式及DSA(Digital Signature Algorithm,數位簽章演算法)署名方式等。
RSA署名方式係將「對於較大合成數之素因數分解之困難性(以下,稱為素因數分解問題)」作為安全性之依據。又,DSA署名方式係將「對於離散對數問題之解的導出之困難性」作為安全性之依據。該等依據起因於不存在利用古典電腦而高效地解決素因數分解問題或離散對數問題之演算法。即,上述困難性係指古典電腦中之計算量上之困難性。然而,人們認為:若使用量子電腦,則會高效地算出對於素因數分解問題或離散對數問題之解答。
目前正在利用之電子署名方式或公鑰認證方式之多數係與RSA署名方式或DSA署名方式同樣地,將安全性之依據置於素因數分解問題或離散對數問題之困難性中。故而,此種電子署名方式或公鑰認證方式於量子電腦實用化之情形時,無法確保其安全性。因此,始終追求一種將安全性之依據置於與素因數分解問題或離散對數問題等可藉由量子電腦容易地解決之問題不同之問題中之新的電子署名方式及公鑰認證方式之實現。作為難以藉由量子電腦容易地解決之問題,例如有多元多項式問題。
作為將安全性之依據置於多元多項式問題中之電子署名方式,已知有基於例如MI(Matsumoto-Imai cryptography,松本今井密碼法)、HFE(Hidden Field Equation cryptography,隱藏欄方程式密碼法)、OV(Oil-Vinegar signature scheme)、TTM(Tamed Transformation Method cryptography)之方式。例如,於下述非專利文獻1、2中,揭示有基於HFE之電子署名方式。
[先行技術文獻] [非專利文獻]
[非專利文獻1] Jacques Patarin Asymmetric Cryptography with a Hidden Monomial. CRYPTO 1996, pp. 45-60.
[非專利文獻2] Patarin, J., Courtois, N., and Goubin, L. QUARTZ, 128-Bit Long Digital Signatures. In Naccache, D., Ed. Topics in Cryptology-CT-RSA 2001 (San Francisco, CA, USA, April 2001), vol. 2020 of Lecture Notes in Computer Science, Springer-Verlag., pp. 282-297.
如上所述,多元多項式問題係即便使用量子電腦亦難以解決之被稱為NP困難問題之問題之一例。通常,HFE等所代表之利用多元多項式問題之公鑰認證方式利用編入有特殊之暗門之多次多元聯立方程式。例如,準備關於x1,...,xn之多次多元聯立方程式F(x1,...,xn)=y與線性轉換A及B,並秘密地管理線性轉換A及B。於該情形時,多次多元聯立方程式F、線性轉換A及B成為暗門。
知曉暗門F、A、B之實體可解開關於x1,...,xn之方程式B(F(A(x1,...,xn)))=y'。另一方面,暗門F、A、B之實體未知無法解開關於x1,...,xn之方程式B(F(A(x1,...,xn)))=y'。藉由利用該結構,而實現以多次多元聯立方程式之解答困難性作為安全性之依據之公鑰認證方式或電子署名方式。
如上所述,為實現此種公鑰認證方式或電子署名方式,必需準備諸如滿足B(F(A(x1,...,xn)))=y之類的特殊之多次多元聯立方程式。又,於署名生成時必需解開多次多元聯立方程式F。因此,可利用之多次多元聯立方程式F僅限於可比較容易地解開者。即,於此種程度之方式中,僅可使用將比較容易解開之3個函數(暗門)B、F、A合成而成之形式的多次多元聯立方程式B(F(A(x1,...,xn)))=y,因而難以確保充分之安全性。
本技術係鑒於上述情況,意圖提供一種可使用高效地解開之方法(暗門)未知之多次多元聯立方程式而實現具有較高安全性之高效之公鑰認證方法或電子署名方式的新型且經過改良之資訊處理裝置、署名生成裝置、署名驗證裝置、資訊處理方法、署名生成方法及署名驗證方法而發明。
根據本技術之某觀點,提供一種資訊處理裝置,其包括:訊息生成部,其根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;訊息提供部,其向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊息;以及回答提供部,其向上述驗證者提供與上述驗證者自k個(k≧3)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰及上述回答資 訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;上述訊息生成部於生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種資訊處理裝置,其包括:資訊保持部,其保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s));訊息取得部,其取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;圖案資訊提供部,其向提供上述訊息之證明者,提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;回答取得部,其自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及驗證部,其根據上述訊息、上述2次多元多項式之組F、上述向量y、及上述回答資訊而驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;上述驗證部於再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種資訊處理裝置, 其包括:訊息生成部,其根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;訊息提供部,其向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊息;中間資訊生成部,其使用上述驗證者隨機地選擇之第1資訊及生成上述訊息時所得之第2資訊而生成第3資訊;中間資訊提供部,其向上述驗證者提供上述第3資訊;以及回答提供部,其向上述驗證者提供與上述驗證者自k個(k≧2)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰、上述第1資訊、上述第3資訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;上述訊息生成部於生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種資訊處理裝置,其包括:資訊保持部,其保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s));訊息取得部,其取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;資訊提供部,其向提供上述訊息之證明者,提供隨機地選擇之第1資訊;中間資訊取得部,其取得上述證明者使用上述第1 資訊及生成上述訊息時獲得之第2資訊而生成之第3資訊;圖案資訊提供部,其向上述證明者提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;回答取得部,其自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及驗證部,其根據上述訊息、上述第1資訊、上述第3資訊、上述2次多元多項式之組F、及上述回答資訊而驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰、上述第1資訊、上述第3資訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;上述訊息為利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算,藉此獲得之資訊;上述驗證部於再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種署名生成裝置,其包括:署名生成部,其使用定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及署名金鑰sKn而生成相對於文件M之電子署名;及署名提供部,其向保持上述2次多元多項式之組F及向量y=(f1(s),...,fm(s))之驗證者提供上述電子署名;且上述署名生成部根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行在生成上述電子署名之過程中所執行之以G(x1, x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種署名驗證裝置,其包括:資訊保持部,其保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(f1(s),...,fm(s));及署名驗證部,其針對文件M,根據使用上述2次多元多項式之組F及署名金鑰sKn而生成之電子署名驗證上述文件M之正當性;且上述署名驗證部根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行在驗證上述電子署名之過程中所執行之以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種資訊處理方法,其包括如下步驟:根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊息;以及向上述驗證者提供與上述驗證者自k個(k≧3)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;於上述生成步驟中,生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)= F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種資訊處理方法,其包括由保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s))之資訊處理裝置執行之如下步驟:取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;向提供上述訊息之證明者,提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及根據上述訊息、上述2次多元多項式之組F、上述向量y、及上述回答資訊而驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;於上述驗證步驟中,再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種資訊處理方法,其包括如下步驟:根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊息;使用上述 驗證者隨機地選擇之第1資訊及生成上述訊息時所得之第2資訊而生成第3資訊;向上述驗證者提供上述第3資訊;及向上述驗證者提供與上述驗證者自k個(k≧2)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰、上述第1資訊、上述第3資訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;於生成上述訊息之步驟中,生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種資訊處理方法,其包括由保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s))之資訊處理裝置執行之如下步驟:取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;向提供上述訊息之證明者提供隨機地選擇之第1資訊;取得上述證明者使用上述第1資訊及生成上述訊息時所得之第2資訊而生成之第3資訊;向上述證明者提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及根據上述訊息、上述第1資訊、上述第3資訊、上述2次多元多項式之組F、及上述回答資訊驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰;上述2次多元多 項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰、上述第1資訊、上述第3資訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;於上述驗證步驟中,再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種署名生成方法,其包括如下步驟:使用定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及署名金鑰sKn而生成相對於文件M之電子署名;及向保持上述2次多元多項式之組F及向量y=(f1(s),...,fm(s))之驗證者提供上述電子署名;且於上述生成步驟中,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)執行於生成上述電子署名之過程中所執行的藉由G(x1,x2)=F(x1+x2)-F(x1)-F(x2)而定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種署名驗證方法,其包括由保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(f1(s),...,fm(s))之資訊處理裝置執行之如下步驟:針對文件M,根據使用上述2次多元多項式之組F及署名金鑰sKn而生成之電子署名,驗證上述文件M之正當性;且於上述驗證步驟中,根據式 g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行在驗證上述電子署名之過程中所執行之以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
又,根據本技術之另一觀點,提供一種用以使電腦實現上述資訊處理裝置、署名生成裝置、署名驗證裝置所具有之各部之功能之程式。又,根據本技術之另一觀點,提供一種記錄有該程式且可藉由電腦進行讀取之記錄媒體。
又,根據本技術之另一觀點,提供一種記錄有該程式且可藉由電腦進行讀取之記錄媒體。
如以上所說明根據本技術,可使用高效地解開之方法(暗門)未知之多次多元聯立方程式,而實現具有較高安全性之高效之公鑰認證方式或電子署名方式。
以下一面參照附圖,一面對本技術之較佳實施形態詳細地進行說明。再者,於本說明書及圖式中,對於具有實質上相同之功能構成之構成要素標註相同之符號,藉此省略重複說明。
[關於說明之順序]
此處,對有關於以下所記載之本技術之實施形態之說明的順序簡單地進行敍述。首先,一面參照圖1,一面對公鑰認證方式之演算法構成進行說明。接著,一面參照圖2,一面對電子署名方式之演算法構成進行說明。接著, 一面參照圖3,一面對n次動作之公鑰認證方式進行說明。
其次,一面參照圖4及圖5,一面對3次動作之公鑰認證方式之演算法之構成例進行說明。然後,一面參照圖6及圖7,一面對5次動作之公鑰認證方式之演算法之構成例進行說明。接著,一面參照圖8及圖9,一面對將3次動作及5次動作之公鑰認證方式之高效之演算法變形成電子署名方式之演算法之方法進行說明。
繼而,一面參照圖10,一面對可實現本技術之第1及第2實施形態之各演算法的資訊處理裝置之硬體構成例進行說明。最後,對本實施形態之技術性思想進行總結,並對自該技術性思想中獲得之作用效果簡單地進行說明。
(說明項目)
1:序言
1-1:公鑰認證方式之演算法
1-2:電子署名方式之演算法
1-3:n次動作之公鑰認證方式
2:3次動作之公鑰認證方式之演算法之構成
2-1:具體之演算法之構成例
2-2:並行化演算法之構成例
3:5次動作之公鑰認證方式之演算法之構成
3-1:具體之演算法之構成例
3-2:並行化演算法之構成例
4:向電子署名方式之變形
4-1:自3次動作之公鑰認證方式向電子署名方式之 變形
4-2:自5次動作之公鑰認證方式向電子署名方式之變形
5:雙線性項G之高效之計算方法
5-1:原理說明
5-2:應用例#1(面向3次動作方式之應用)
5-3:應用例#2(面向5次動作方式之應用)
5-4:應用例#3(面向電子署名方式之應用)
6:硬體構成例
7:總結
<1:序言>
本實施形態係關於一種將安全性之依據置於對於多次多元聯立方程式之求解問題之困難性中的公鑰認證方式及電子署名方式。其中,本實施形態與HFE電子署名方式等先前方法不同,係關於一種利用並不具備高效地解開之方法(暗門)之多次多元聯立方程式的公鑰認證方式及電子署名方式。首先,對公鑰認證方式之演算法、電子署名方式之演算法、及n次動作之公鑰認證方式之概要簡單地進行說明。
[1-1:公鑰認證方式之演算法]
首先,一面參照圖1,一面對公鑰認證方式之演算法之概要進行說明。圖1係用以說明公鑰認證方式之演算法之概要之說明圖。
公鑰認證係用以使某人(證明者)可利用公鑰pk及密鑰sk 而讓他人(驗證者)認同其為本人。例如,證明者A之公鑰pkA向驗證者B公開。另一方面,證明者A之密鑰skA由證明者A秘密地管理。於公鑰認證之結構中,知曉與公鑰pkA對應之密鑰skA者被認為係證明者A本人。
為利用公鑰認證之結構向驗證者B證明證明者A係證明者A本人,只要經由對話協定,向驗證者B出示證明者A知曉與公鑰pkA對應之密鑰skA之證據即可。而且,於向驗證者B出示證明者A知曉密鑰skA之證據,且驗證者B確認完該證據之情形時,證明者A之正當性(其係本人)得到證明。
其中,對於公鑰認證之結構,為保證安全性而要求以下條件。
第1個條件為「令於執行對話協定時由不持有密鑰sk之偽證者使偽證成立之概率無限小」。將該第1個條件成立稱為「健全性」。即,所謂健全性,換而言之係「不會由不持有密鑰sk之偽證者,於對話協定之執行中使偽證以無法無視之概率成立之情況」。第2個條件為「即便已執行對話協定,證明者A所擁有之密鑰skA之資訊亦絲毫不會向驗證者B洩漏」。將該第2個條件成立稱為「零知識性」。
為安全地進行公鑰認證,必需利用具有健全性及零知識性之對話協定。假設,當使用不具健全性及零知識之對話協定進行認證處理之情形時,無可否認存在被偽證之可能性及密鑰之資訊被洩露之可能性,故而即便處理本身成功地完成亦無法證明證明者之正當性。因此,如何保證對話 協定之健全性及零知識性變得尤為重要。
(模型)
如圖1所示,於公鑰認證方式之模型中,存在證明者與驗證者2個實體。證明者使用密鑰生成演算法Gen,生成證明者固有之密鑰sk與公鑰pk之組。接著,證明者利用使用密鑰生成演算法Gen而生成之密鑰sk與公鑰pk之組與驗證者執行對話協定。此時,證明者利用證明者演算法P執行對話協定。如上所述,證明者利用證明者演算法P,向驗證者出示於對話協定之中正保有密鑰sk之證據。
另一方面,驗證者利用驗證者演算法V執行對話協定,驗證該證明者是否正保有與證明者始終公開之公鑰對應之密鑰。即,驗證者係驗證證明者是否正保有與公鑰對應之密鑰之實體。如此,公鑰認證方式之模型係由證明者與驗證者2個實體、及密鑰生成演算法Gen、證明者演算法P、驗證者演算法V之3個演算法所構成。
再者,於以下說明中,使用「證明者」「驗證者」之表現,但該等表現歸根到底係指實體。因而,執行密鑰生成演算法Gen、證明者演算法P之主體係與「證明者」之實體對應之資訊處理裝置。同樣地,執行驗證者演算法V之主體係資訊處理裝置。該等資訊處理裝置之硬體構成例如如圖10所示。即,密鑰生成演算法Gen、證明者演算法P、驗證者演算法V係根據記錄於ROM(Read Only Memory,唯讀記憶體)904、RAM(Random Access Memory,隨機存取記憶體)906、記憶部920、可移除式記錄媒體928等中之程式 藉由CPU(Central Processing Unit,中央處理單元)902等而執行。
(密鑰生成演算法Gen)
密鑰生成演算法Gen由證明者利用。密鑰生成演算法Gen係生成證明者所固有之密鑰sk與公鑰pk之組之演算法。藉由密鑰生成演算法Gen而生成之公鑰pk公開。而且,被公開之公鑰pk由驗證者利用。另一方面,藉由密鑰生成演算法Gen而生成之密鑰sk由證明者秘密地管理。而且,由證明者秘密地管理之密鑰sk係用以向驗證者證明證明者正保有與公鑰pk對應之密鑰sk。形式上,密鑰生成演算法Gen作為輸入安全參數1λ(λ為0以上之整數)且輸出密鑰sk與公鑰pk之演算法,如下式(1)所表現。
[數1](sk,pk) ← Gen(1 λ )………(1)
(證明者演算法P)
證明者演算法P由證明者利用。證明者演算法P係用以向驗證者證明證明者正保有與公鑰pk對應之密鑰sk之演算法。即,證明者演算法P係輸入密鑰sk與公鑰pk,執行對話協定之演算法。
(驗證者演算法V)
驗證者演算法V由驗證者利用。驗證者演算法V係於對話協定之中,驗證證明者是否正保有與公鑰pk對應之密鑰sk之演算法。驗證者演算法V係輸入公鑰pk,根據對話協 定之執行結果輸出0或1(1位元)之演算法。再者,驗證者於驗證者演算法V輸出0之情形時判斷證明者為不當者,於輸出1之情形時判斷證明者為正當者。形式上,驗證者演算法V如下式(2)所表現。
[數2]0/1 ← V(pk)………(2)
如上所述,為實現有意義之公鑰認證,必需使對話協定滿足健全性及零知識性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之主體係資訊處理裝置。該等資訊處理裝置之硬體構成例如如圖10所示。即,密鑰生成演算法Gen、署名生成演算法Sig、署名驗證演算法Ver係根據記錄於ROM904、RAM906、記憶部920、可移除式記錄媒體928等中之程式藉由CPU902等而執行。
(密鑰生成演算法Gen)
密鑰生成演算法Gen由署名者利用。密鑰生成演算法Gen係生成署名者固有之署名金鑰sk與驗證密鑰pk之組之演算法。藉由密鑰生成演算法Gen而生成之驗證密鑰pk公開。另一方面,藉由密鑰生成演算法Gen而生成之署名金鑰sk由署名者秘密地管理。而且,署名金鑰sk係用於賦予於文件M之電子署名σ之生成。例如,密鑰生成演算法Gen輸入安全參數1λ(λ為0以上之整數),輸出署名金鑰sk及公鑰pk。於該情形時,密鑰生成演算法Gen形式上可如下式(3)所表現。
[數3](sk,pk) ← Gen(1 λ )………(3)
(署名生成演算法Sig)
署名生成演算法Sig由署名者利用。署名生成演算法Sig係生成賦予於文件M之電子署名σ之演算法。署名生成演算法Sig係輸入署名金鑰sk與文件M且輸出電子署名σ之演算法。該署名生成演算法Sig形式上可如下式(4)所表現。
[數4]σSig(sk,M)………(4)
(署名驗證演算法Ver)
署名驗證演算法Ver由驗證者利用。署名驗證演算法Ver係驗證電子署名σ是否為相對於文件M之正當之電子署名之演算法。署名驗證演算法Ver係輸入署名者之驗證密鑰 pk、文件M、電子署名σ且輸出0或1(1位元)之演算法。該署名驗證演算法Ver形式上可如下式(5)所表現。再者,驗證者於署名驗證演算法Ver輸出0之情形時(公鑰pk拒絕文件M與電子署名σ之情形時)判斷電子署名σ不當,於輸出1之情形時(公鑰pk受理文件M與電子署名σ之情形時)判斷電子署名σ正當。
[數5]0/1←Ver(pk,M,σ)………(5)
以上,對電子署名方式之演算法之概要進行了說明。
[1-3:n次動作之公鑰認證方式]
其次,一面參照圖3,一面對n次動作之公鑰認證方式進行說明。圖3係用以說明n次動作之公鑰認證方式之說明圖。
如上所述,公鑰認證方式係於對話協定之中,向驗證者證明證明者正保有與公鑰pk對應之密鑰sk之認證方式。又,對話協定必需滿足健全性及零知識性2個條件。因此,如圖3所示,於對話協定之中,證明者及驗證者雙方一面分別執行處理一面進行n次資訊交換。
於n次動作之公鑰認證方式之情形時,由證明者使用證明者演算法P執行處理(步驟#1),且資訊T1發送至驗證者。接著,由驗證者使用驗證者演算法V執行處理(步驟#2),且資訊T2發送至證明者。進而,相對於k=3~n依序進行處理之執行及資訊Tk之發送,最後執行處理(步驟#n+1)。從 而,將發送接收N次資訊之方式稱為「n次動作」之公鑰認證方式。
以上,對n次動作之公鑰認證方式進行了說明。
<2:3次動作之公鑰認證方式之演算法之構成>
以下,對3次動作之公鑰認證方式之演算法進行說明。再者,於以下說明中,有時將3次動作之公鑰認證方式稱為「3次動作方式」。
[2-1:具體之演算法之構成例(圖4)]
首先,一面參照圖4,一面對3次動作方式之具體之演算法之構成例進行介紹。圖4係用以說明3次動作方式之具體之演算法之構成的說明圖。此處,對利用2次多項式之組(f1(x),...,fm(x))作為公鑰pk之一部分之情形進行研究。其中,2次多項式fi(x)設為如下式(6)所表現者。又,將向量(x1,...,xn)記作x,將2次多項式之組(f1(x),...,fm(x))記作多元多項式F(x)。
又,2次多項式之組(f1(x),...,fm(x))可如下式(7)所表現。又,A1,...,Am為n×n矩陣。進而,b1,...,bm分別為n×1向量。
若使用該表現,則多元多項式F可如下式(8)及式(9)所表現。該表現成立可自下式(10)容易地得到確認。
當以此方式將F(x+y)分成取決於x之第1部分、取決於y之第2部分、取決於x及y兩者之第3部分時,與第3部分對應之項G(x,y)相對於x及y成雙線性。以下,有時將項G(x,y)稱為雙線性項。若利用該性質,則可構建高效之演算法。
例如,使用向量t0 Kn、e0 Km,將用於多元多項式F(x+r)之遮蔽之多元多項式F1(x)表現為F1(x)=G(x,t0)+e0。於該情形時,多元多項式F(x+r0)與G(x)之和如下式(11)所表現。此處,若設定t1=r0+t0、e1=F(r0)+e0,則多元多項式F2(x)=F(x+r0)+F1(x)可藉由向量t1 Kn、e1 Km表現。因此,若設定為F1(x)=G(x,t0)+e0,則使用Kn上之向量及Km上之向量可表現F1及F2,從而可實現通訊所需之資 料大小較小之高效之演算法。
[數9]F(x+r 0)+F 1(x)=F(x)+F(r 0)+G(x,r 0)+G(x,t 0)+e 0=F(x)+G(x,r 0+t 0)+F(r 0)+e 0………(11)
再者,不會自F2(或F1)洩漏絲毫關於r0之資訊。例如,即便提供e1及t1(或e0及t0),只要e0及t0(或e1及t1)未知,便絲毫無法知曉r0之資訊。從而,保證零知識性。以下,對根據上述邏輯而構建之3次動作方式之演算法進行說明。此處所說明之3次動作方式之演算法係由如下之密鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。
(密鑰生成演算法Gen)
密鑰生成演算法Gen生成定義於環K上之m個多元多項式f1(x1,...,xn),...,fm(x1,...,xn)、及向量s=(s1,...,sn)Kn。其次,密鑰生成演算法Gen計算y=(y1,...,ym)←(f1(s),...,fm(s))。然後,密鑰生成演算法Gen將(f1(x1,...,xn),...,fm(x1,...,xn),y)設定為公鑰pk,將s設定為密鑰。
(證明者演算法P、驗證者演算法V)
以下,一面參照圖4,一面對於對話協定之中證明者演算法P所執行之處理及驗證者演算法V所執行之處理進行說明。於該對話協定之中,證明者絲毫未將密鑰s之資訊向驗證者洩漏,而將「自身知曉滿足y=F(s)之s之情況」向驗證者出示。另一方面,驗證者驗證證明者是否知曉滿足 y=F(s)之s。再者,公鑰pk設定為向驗證者公開者。又,密鑰s設定為由證明者秘密地管理者。以下,沿著圖4所示之流程圖展開說明。
步驟#1:如圖4所示,首先,證明者演算法P隨機地生成向量r0,t0 Kn及e0 Km。接著,證明者演算法P計算r1←s-r0。該計算相當於藉由向量r0遮蔽密鑰s之操作。進而,證明者演算法P計算t1←r0-t0。接著,證明者演算法P計算e1←F(r0)-e0
步驟#1(繼續):其次,證明者演算法P計算c0←H(r1,G(t0,r1)+e0)。接著,證明者演算法P計算c1←H(t0,e0)。繼而,證明者演算法P計算c2←H(t1,e1)。於步驟#1中生成之訊息(c0,c1,c2)傳送至驗證者演算法V。
步驟#2:收到訊息(c0,c1,c2)之驗證者演算法V對利用3個驗證圖案之中之哪個驗證圖案進行選擇。例如,驗證者演算法V自表示驗證圖案之種類之3個數值{0,1,2}之中選擇1個數值,並將所選擇之數值設定為要求Ch。該要求Ch傳送至證明者演算法P。
步驟#3:收到要求Ch之證明者演算法P根據所收到之要求Ch生成送向驗證者演算法V之回答Rsp。於Ch=0之情形時,證明者演算法P生成回答Rsp=(r0,t1,e1)。於Ch=1之情形時, 證明者演算法P生成回答Rsp=(r1,t0,e0)。於Ch=2之情形時,證明者演算法P生成回答Rsp=(r1,t1,e1)。於步驟#3中生成之回答Rsp傳送至驗證者演算法V。
步驟#4:收到回答Rsp之驗證者演算法V利用所收到之回答Rsp執行以下驗證處理。
於Ch=0之情形時,驗證者演算法V驗證c1=H(r0-t1,F(r0)-e1)之等號是否成立。進而,驗證者演算法V驗證c2=H(t1,e1)之等號是否成立。驗證者演算法V於該等驗證全部成功之情形時輸出表示認證成功之值1,於驗證中存在失敗之情形時輸出表示認證失敗之值0。
於Ch=1之情形時,驗證者演算法V驗證c0=H(r1,G(t0,r1)+e0)之等號是否成立。進而,驗證者演算法V驗證c1=H(t0,e0)之等號是否成立。驗證者演算法V於該等驗證全部成功之情形時輸出表示認證成功之值1,於驗證中存在失敗之情形時輸出表示認證失敗之值0。
於Ch=2之情形時,驗證者演算法V驗證c0=H(r1,y-F(r1)-G(t1,r1)-e1)之等號是否成立。進而,驗證者演算法V驗證c2=H(t1,e1)之等號是否成立。驗證者演算法V於該等驗證全部成功之情形時輸出表示認證成功之值1,於驗證中存在失敗之情形時輸出表示認證失敗之值0。
以上,對3次動作方式之高效之演算法之構成例進行了說明。
[2-2:並行化演算法之構成例(圖5)]
其次,一面參照圖5,一面對將圖4所示之3次動作方式之演算法並行化之方法進行說明。再者,關於密鑰生成演算法Gen之構成省略說明。
另外,若應用上述對話協定,則可將偽證成功之概率抑制為2/3以下。從而,若執行2次該對話協定,則可將偽證成功之概率抑制為(2/3)2以下。進而,若執行N次該對話協定,則偽證成功之概率成為(2/3)N,只要使N為充分大之數(例如,N=140),偽證成功之概率便會縮小為可無視之程度。
作為執行複數次對話協定之方法,可考慮例如:逐次地重複複數次訊息、要求、回答之交換之串列之方法、及於1次交換中進行複數次之訊息、要求、回答之交換之並行之方法。進而,亦可考慮將串列之方法與並行之方法組合而成之混合型方法。此處,一面參照圖5,一面對3次動作方式之並行地執行上述對話協定之演算法(以下,稱為並行化演算法)進行說明。
步驟#1:如圖5所示,首先,證明者演算法P相對於i=1~N執行以下處理(1)~處理(6)。
處理(1):證明者演算法P隨機地生成向量r0i,t0i Kn及e0i Km
處理(2):證明者演算法P計算r1i←s-r0i。該計算相當於藉由向量r0i遮蔽密鑰s之操作。進而,證明者演算法P計算t1i←r0i+t0i
處理(3):證明者演算法P計算e1i←F(r0i)-e0i
處理(4):證明者演算法P計算c0i←H(r1i,G(r1i,t0i)+e0i)。
處理(5):證明者演算法P計算c1i←H(t0i,e0i)。
處理(6):證明者演算法P計算c2i←H(t1i,e1i)。
步驟#1(繼續)
於相對於i=1~N執行上述處理(1)~處理(6)之後,證明者演算法P計算Cmt←H(c01,c11,c21,...,c0N,c1N,c2N)。於步驟#1中生成之散列值Cmt傳送至驗證者演算法V。從而,於將訊息(c01,c11,c21,...,c0N,c1N,c2N)轉換成散列值之後傳送至驗證者演算法V,藉此可削減通訊量。
步驟#2:收到散列值Cmt之驗證者演算法V相對於i=1~N各者,對利用3個驗證圖案之中之哪個驗證圖案進行選擇。例如,驗證者演算法V相對於i=1~N各者,自表示驗證圖案之種類之3個數值{0,1,2}之中選擇1個數值,並將所選擇之數值設定為要求Chi。要求Ch1,...,ChN傳送至證明者演算法P。
步驟#3:收到要求Ch1,...,ChN之證明者演算法P根據所收到之要求Ch1,...,ChN各者而生成送向驗證者演算法V之回答Rsp1,...,RspN。於Chi=0之情形時,證明者演算法P生成Rspi=(r0i,t1i,e1i,c0i)。於Chi=1之情形時,證明者演算法P生成Rspi=(r1i,t0i,e0i,c2i)。於Chi=2之情形時,證明 者演算法P生成Rspi=(r1i,t1i,e1i,c1i)。
於步驟#3中生成之回答Rsp1,...,RspN傳送至驗證者演算法V。
步驟#4:收到回答Rsp1,...,RspN之驗證者演算法V利用所收到之回答Rsp1,...,RspN相對於i=1~N而執行以下處理(1)~處理(3)。其中,驗證者演算法V於Chi=0之情形時執行處理(1),於Chi=1之情形時執行處理(2),於Chi=2之情形時執行處理(3)。
處理(1):於Chi=0之情形時,驗證者演算法V自Rspi中取出(r0i,t1i,e1i,c0i)。接著,驗證者演算法V計算c1i=H(r0i-t1i,F(r0i)-e1i)。進而,驗證者演算法V計算c2i=H(t1i,e1i)。然後,驗證者演算法V保持(c0i,c1i,c2i)。
處理(2):於Chi=1之情形時,驗證者演算法V自Rspi中取出(r1i,t0i,e0i,c2i)。接著,驗證者演算法V計算c0i=H(r1i,G(t0i,r1i)+e0i)。進而,驗證者演算法V計算c1i=H(t0i,e0i)。然後,驗證者演算法V保持(c0i,c1i,c2i)。
處理(3):於Chi=2之情形時,驗證者演算法V自Rspi中取出(r1i,t1i,e1i,c1i)。接著,驗證者演算法V計算c0i=H(r1i,y-F(r1i)-G(t1i,r1i)-e1i)。進而,驗證者演算法V計算c2i=H(t1i,e1i)。然後,驗證者演算法V保持(c0i,c1i,c2i)。
於針對i=1~N執行處理(1)~處理(3)之後,驗證者演算法V驗證Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)之等號是否成立。驗證者演算法V於該驗證成功之情形時輸出表示認證成功之值1,於驗證失敗之情形時輸出表示認證失敗之值0。
以上,對3次動作方式之高效之並行化演算法之構成例進行了說明。
<3:5次動作之公鑰認證方式之演算法之構成>
其次,對5次動作之公鑰認證方式之演算法進行說明。再者,於以下說明中,有時將5次動作之公鑰認證方式稱為「5次動作方式」。
於3次動作方式之情形時每1次對話協定之偽證概率為2/3,但於5次動作方式之情形時每1次對話協定之偽證概率為1/2+1/q。其中,q係所利用之環之位數。從而,於環之位數充分大之情形時,5次動作方式可降低每1次之偽證概率,由此可以較少之對話協定之執行次數,使偽證概率充分減小。
例如,當欲使偽證概率為1/2n以下之情形時,於3次動作方式中,必需執行n/(log3-1)=1.701n次以上之對話協定。另一方面,當欲使偽證概率為1/2n以下之情形時,於5次動作方式中,必需執行n/(1-log(1+1/q))次以上對話協定。從而,若設q=24,則就實現相同安全等級所需之通訊量而言,與3次動作方式相比,5次動作方式執行之次數較少。
[3-1:具體之演算法之構成例(圖6)]
首先,一面參照圖6,一面對5次動作方式之具體之演算法之構成例進行介紹。圖6係用以說明5次動作方式之具體之演算法之構成的說明圖。此處,對利用2次多項式之組(f1(x),...,fm(x))作為公鑰pk之一部分之情形進行研究。其中,2次多項式fi(x)設為如上式(6)所表現者。又,將向量(x1,...,xn)記作x,將2次多項式之組(f1(x),...,fm(x))記作多元多項式F(x)。
與3次動作方式之演算法同樣地,使用2個向量t0 Kn、e0 Km,以F1(x)=G(x、t0)+e0之方式表現用以遮蔽多元多項式F(x+r0)之多元多項式F1(x)。若使用該表現,則關於多元多項式F(x+r0),可獲得下式(12)中所表現之關係。
[數10]Ch A .F(x+r 0)+F 1(x)=Ch A .F(x)+Ch A .F(r 0)+Ch A .G(x,r 0)+G(x,t 0)+e 0=Ch A .F(x)+G(x,Ch A .r 0+t 0)+Ch A .F(r 0)+e 0………(12)
因此,若設t1=ChA.r0+t0,e1=ChA.F(r0)+e0,則遮蔽後之多元多項式F2(x)=ChA.F(x+r0)+F1(x)亦可藉由2個向量t1 Kn、e1 Km表現。自該等理由,若設定為F1(x)=G(x,t0)+e0,則使用Kn上之向量及Km上之向量可表現F1及F2,從而可實現通訊所需之資料大小較小之高效之演算法。
再者,不會自F2(或F1)洩漏絲毫關於r0之資訊。例如,即便提供e1及t1(或e0及t0),只要e0及t0(或e1及t1)未知,便絲毫無法知曉r0之資訊。從而,保證零知識性。以下,對根據上述邏輯而構建之5次動作方式之演算法進行說明。 此處所說明之5次動作方式之演算法係由如下之密鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。
(密鑰生成演算法Gen)
密鑰生成演算法Gen生成定義於環K上之多元多項式f1(x1,...,xn),...,fm(x1,...,xn)、及向量s=(s1,...,sn)Kn。其次,密鑰生成演算法Gen計算y=(y1,...,ym)←(f1(s),...,fm(s))。然後,密鑰生成演算法Gen將(f1,...,fm,y)設定為公鑰pk,將s設定為密鑰。再者,以下,將向量(x1,...,xn)記作x,將多元多項式之組(f1(x),...,fm(x))記作F(x)。
(證明者演算法P、驗證者演算法V)
以下,一面參照圖6,一面對於對話協定之中由證明者演算法P及驗證者演算法V執行之處理進行說明。於該對話協定之中,證明者絲毫未將密鑰s之資訊向驗證者洩漏,而將「自身知曉滿足y=F(s)之s之情況」向驗證者出示。另一方面,驗證者驗證證明者是否知曉滿足y=F(s)之s。再者,公鑰pk設定為向驗證者公開者。又,密鑰s設定為由證明者秘密地管理者。以下,沿著圖6所示之流程圖展開說明。
步驟#1:如圖6所示,首先,證明者演算法P隨機地生成向量r0 Kn、t0 Kn、e0 Km。接著,證明者演算法P計算r1←s-r0。該計算相當於藉由向量r0遮蔽密鑰s之操作。繼而,證明者演算法P生成向量r0,t0,e0之散列值c0。即,證明者 演算法P計算c0←H(r0,t0,e0)。然後,證明者演算法P生成G(t0,r1)+e0及r1之散列值c1。即,證明者演算法P計算c0←H(r1,G(t0,r1)+e0)。於步驟#1中生成之訊息(c0,c1)傳送至驗證者演算法V。
步驟#2:收到訊息(c0,c1)之驗證者演算法V自q位所存在之環K之源中隨機地選擇1個數ChA,並將所選擇之數ChA傳送至證明者演算法P。
步驟#3:收到數ChA之證明者演算法P計算t1←ChA.r0-t0。進而,證明者演算法P計算e1←ChA.F(r0)-e0。然後,證明者演算法P將t1及e1傳送至驗證者演算法V。
步驟#4:收到t1及e1之驗證者演算法V對利用2個驗證圖案之中之哪個驗證圖案進行選擇。例如,驗證者演算法V自表示驗證圖案之種類之2個數值{0,1}之中選擇1個數值,並將所選擇之數值設定為要求ChB。該要求ChB傳送至證明者演算法P。
步驟#5:收到要求ChB之證明者演算法P根據所收到之要求ChB生成返送向驗證者演算法V之回答Rsp。於ChB=0之情形時,證明者演算法P生成回答Rsp=r0。於ChB=1之情形時,證明者演算法P生成回答Rsp=r1。於步驟#5中生成之回答Rsp傳送至驗證者演算法V。
步驟#6:收到回答Rsp之驗證者演算法V利用所收到之回答Rsp執行以下驗證處理。
於ChB=0之情形時,驗證者演算法V執行r0←Rsp。然後,驗證者演算法V驗證c0=H(r0,ChA.r0-t1,ChA.F(r0)-e1)之等號是否成立。驗證者演算法V於該驗證成功之情形時輸出表示認證成功之值1,於驗證中存在失敗之情形時輸出表示認證失敗之值0。
於ChB=1之情形時,驗證者演算法V執行r1←Rsp。然後,驗證者演算法V驗證c1=H1(r1,ChA.(y-F(r1))-G(t1,r1)-e1)之等號是否成立。驗證者演算法V於該驗證成功之情形時輸出表示認證成功之值1,於驗證中存在失敗之情形時輸出表示認證失敗之值0。
以上,對5次動作方式之高效之演算法之構成例進行了說明。
[3-2:並行化演算法之構成例(圖7)]
其次,一面參照圖7,一面對將圖6所示之5次動作方式之演算法並行化之方法進行說明。再者,關於密鑰生成演算法Gen之構成省略說明。
如上文所述,若應用5次動作方式之對話協定,則可將偽證成功之概率抑制為(1/2+1/q)以下。從而,若執行2次該對話協定,則可將偽證成功之概率抑制為(1/2+1/q)2以下。進而,若執行N次該對話協定,則偽證成功之概率為(1/2+1/q)N,只要使N為充分大之數(例如,N=80),偽證成 功之概率便會縮小為可無視之程度。
作為執行複數次對話協定之方法,可考慮例如:逐次地重複複數次訊息、要求、回答之交換之串列之方法、及於1次交換中進行複數次之訊息、要求、回答之交換之並行方法。進而,亦可考慮將串列方法與並行方法組合而成之複合型方法。此處,對5次動作方式之並行地執行上述對話協定之演算法(以下,稱為並行化演算法)進行說明。
步驟#1:如圖7所示,首先,證明者演算法P相對於i=1~N執行處理(1)~處理(4)。
處理(1):證明者演算法P隨機地生成向量r0i,t0i Kn及e0i Km
處理(2):證明者演算法P計算r1i←s-r0i。該計算相當於藉由向量r0i遮蔽密鑰s之操作。
處理(3):證明者演算法P計算c0i←H(r0i,t0i,e0i)。
處理(4):證明者演算法P計算c1i←H(r1i,G(t0i,r1i)+e0i)。
於相對於i=1~N執行處理(1)~處理(4)之後,證明者演算法P執行散列值Cmt←H(c01,c11,...,c0N,c1N)。然而,於步驟#1中生成之散列值Cmt傳送至驗證者演算法V。
步驟#2:收到散列值Cmt之驗證者演算法V相對於i=1~N各者,自q位所存在之環K之源中隨機地選擇1個數ChAi,並將所選擇之數ChAi(i=1~N)傳送至證明者演算法P。
步驟#3:收到數ChAi(i=1~N)之證明者演算法P相對於i=1~N各者,計算t1i←ChAi.r0i-t0i。進而,證明者演算法P相對於i=1~N各者,計算e1i←ChAi.F(r0i)-e0i。然後,證明者演算法P將t11,...,t1N及e11,...,e1N傳送至驗證者演算法V。
步驟#4:收到t11,...,t1N及e11,...,e1N之驗證者演算法V相對於i=1~N各者,對利用2個驗證圖案之中之哪個驗證圖案進行選擇。例如,驗證者演算法V自表示驗證圖案之種類之2個數值{0,1}之中選擇1個數值,並將所選擇之數值設定為要求ChBi。要求ChBi(i=1~N)傳送至證明者演算法P。
步驟#5:收到要求ChBi(i=1~N)之證明者演算法P相對於i=1~N,根據所收到之要求ChBi生成返送向驗證者演算法V之回答Rspi。於ChBi=0之情形時,證明者演算法P生成回答Rspi=(r0i,c1i)。於ChBi=1之情形時,證明者演算法P生成回答Rspi=(r1i,c0i)。於步驟#5中生成之回答Rspi(i=1~N)傳送至驗證者演算法V。
步驟#6:收到回答Rspi(i=1~N)之驗證者演算法V利用所收到之回答Rspi(i=1~N)執行以下處理(1)及處理(2)。
處理(1):於ChBi=0之情形時,驗證者演算法V執行(r0i,c1i)←Rspi。然後,驗證者演算法V計算c0i=H(r0i,ChAi.r0i-t1i,ChAi.F(r0i)-e1i)。然後,驗證者演算法V保持(c0i, c1i)。
處理(2):於ChBi=1之情形時,驗證者演算法V執行(r1i,c0i)←Rspi。然後,驗證者演算法V計算c1i=H(r1i,ChAi.(y-F(r1i))-G(t1i,r1i)-e1i)。然後,驗證者演算法V保持(c0i,c1i)。
於相對於i=1~N執行處理(1)及處理(2)之後,驗證者演算法V驗證Cmt=H(c01,c11,...,c0N,c1N)之等號是否成立。驗證者演算法V於該驗證成功之情形時輸出表示認證成功之值1,於驗證中存在失敗之情形時輸出表示認證失敗之值0。
以上,對5次動作方式之高效之並行化演算法之構成例進行了說明。
<4:向電子署名方式之變形>
其次,對使上述公鑰認證方式向電子署名方式變形之方法進行介紹。
容易理解:若使公鑰認證方式之模型中之證明者與電子署名方式中之署名者對應,則於僅證明者認同驗證者之方面與電子署名方式之模型近似。基於此種想法,對使上述公鑰認證方式向電子署名方式變形之方法進行說明。
[4-1:自3次動作之公鑰認證方式向電子署名方式之變形(圖8)]
首先,對自3次動作之公鑰認證方式向電子署名方式之變形進行說明。
如圖8所示,3次動作方式之高效之演算法(例如,參照 圖5)係藉由3次對話及4個步驟#1~步驟#4而表現。
步驟#1包括:處理(1),其相對於i=1~N,生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i,c2i);及處理(2),其計算Cmt←H(c01,c11,c21,...,c0N,c1N,c2N)。於步驟#1中藉由證明者演算法P而生成之Cmt向驗證者演算法V傳送。
步驟#2包括選擇Ch1,...,ChN之處理。於步驟#2中藉由驗證者演算法V而選擇之Ch1,...,ChN向證明者演算法P傳送。
步驟#3包括使用Ch1,...,ChN及a1,...,aN生成Rsp1,...,RspN之處理。將該處理表現為Rspi←Select(Chi,ai)。於步驟#3中藉由證明者演算法P而生成之Rsp1,...,RspN向驗證者演算法V傳送。
步驟#4包括:處理(1),其使用Ch1,...,ChN及Rsp1,...,RspN,再生c01,c11,c21,...,c0N,c1N,c2N;及處理(2),其使用再生之c01,c11,c21,...,c0N,c1N,c2N驗證Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)。
藉由上述步驟#1~步驟#4而表現之公鑰認證方式之演算法變形成如圖8所示之署名生成演算法Sig及署名驗證演算法Ver。
(署名生成演算法Sig)
首先,對署名生成演算法Sig之構成進行敍述。署名生成演算法Sig包括以下處理(1)~處理(5)。
處理(1):署名生成演算法Sig生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i,c2i)。
處理(2):署名生成演算法Sig計算Cmt←H(c01,c11,c21,...,c0N,c1N,c2N)。
處理(3):署名生成演算法Sig計算(Ch1,...,ChN)←H(M,Cmt)。該M係賦予署名之文件。
處理(4):署名生成演算法Sig計算Rspi←Select(Chi,ai)。
處理(5):署名生成演算法Sig將(Cmt,Rsp1,...,RspN)設定為署名。
(署名驗證演算法Ver)
其次,對署名驗證演算法Ver之構成進行敍述。署名驗證演算法Ver包括以下處理(1)~處理(3)。
處理(1):署名驗證演算法Ver計算(Ch1,...,ChN)←H(M,Cmt)。
處理(2):署名驗證演算法Ver使用Ch1,...,ChN及Rsp1,...,RspN生成c01,c11,c21,...,c0N,c1N,c2N
處理(3):署名驗證演算法Ver使用再生之c01,c11,c21,...,c0N,c1N,c2N驗證Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)。
如以上所說明,使公鑰認證方式之模型中之證明者與電子署名方式中之署名者對應,藉此可使公鑰認證方式之演算法向電子署名方式之演算法變形。
[4-2:自5次動作之公鑰認證方式向電子署名方式之變形(圖9)]
其次,對自5次動作之公鑰認證方式向電子署名方式之 變形進行說明。
如圖9所示,5次動作方式之高效之演算法(例如,參照圖7)係藉由5次對話及6個步驟#1~步驟#6而表現。
步驟#1包括:處理(1),其相對於i=1~N,生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i);及處理(2),其計算Cmt←H(c01,c11,...,c0N,c1N)。於步驟#1中藉由證明者演算法P而生成之Cmt向驗證者演算法V傳送。
步驟#2包括選擇ChA1,...,ChAN之處理。於步驟#2中藉由驗證者演算法V而選擇之ChA1,...,ChAN向證明者演算法P傳送。
步驟#3包括相對於i=1~N生成bi=(t1i,e1i)之處理。於步驟#3中藉由證明者演算法P而生成之b1,...,bN向驗證者演算法V傳送。
步驟#4包括選擇ChB1,...,ChBN之處理。於步驟#4中藉由驗證者演算法V而選擇之ChB1,...,ChBN向證明者演算法P傳送。
步驟#5包括使用ChB1,...,ChBN,a1,...,aN,b1,...,bN生成Rsp1,...,RspN之處理。將該處理表現為Rspi←Select(ChBi,ai,bi)。於步驟#5中藉由證明者演算法P而生成之Rsp1,...,RspN向驗證者演算法V傳送。
步驟#6包括:處理(1),其使用ChA1,...,ChAN,ChB1,...,ChBN,Rsp1,...,RspN再生c01,c11,...,c0N,c1N;及處理(2),其使用再生之c01,c11,...,c0N,c1N驗證Cmt=H(c01,c11,...,c0N,c1N)。
藉由上述步驟#1~步驟#6而表現之公鑰認證方式之演算法變形成如圖9所示之署名生成演算法Sig及署名驗證演算法Ver。
(署名生成演算法Sig)
首先,對署名生成演算法Sig之構成進行敍述。署名生成演算法Sig包括以下處理(1)~處理(7)。
處理(1):署名生成演算法Sig生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i)。
處理(2):署名生成演算法Sig計算Cmt←H(c01,c11,...,c0N,c1N)。
處理(3):署名生成演算法Sig計算(ChA1,...,ChAN)←H(M,Cmt)。該M係賦予署名之文件。
處理(4):署名生成演算法Sig相對於i=1~N,生成bi=(t1i,e1i)。
處理(5):署名生成演算法Sig計算(ChB1,...,ChBN)←H(M,Cmt,ChA1,...,ChAN,b1,...,bN)。再者,亦可(ChB1,...,ChBN)←H(ChA1,...,ChAN,b1,...,bN)地變形。
處理(6):署名生成演算法Sig計算Rspi←Se1ect(ChBi,ai,bi)。
處理(7):署名生成演算法Sig將(Cmt,b1,...,bN,Rsp1,...,RspN)設定為電子署名。
(署名驗證演算法Ver)
其次,對署名驗證演算法Ver之構成進行敍述。署名驗 證演算法Ver包括以下處理(1)~處理(4)。
處理(1):署名驗證演算法Ver計算(ChA1,...,ChAN)←H(M,Cmt)。
處理(2):署名驗證演算法Ver計算(ChB1,...,ChBN)←H(M,Cmt,ChA1,...,ChAN,b1,...,bN)。再者,於署名驗證演算法Ver所執行之處理(5)中,當(ChB1,...,ChBN)←H(ChA1,...,ChAN,b1,...,bN)地變形之情形時,署名驗證演算法Ver計算(ChB1,...,ChBN)←H(ChA1,...,ChAN,b1,...,bN)。
處理(3):署名驗證演算法Ver使用ChA1,...,ChAN,ChB1,...,ChBN,Rsp1,...,RspN生成c01,c11,...,c0N,c1N
處理(4):署名驗證演算法Ver使用再生之c01,c11,...,c0N,c1N驗證Cmt=H(c01,c11,...,c0N,c1N)。
如以上所說明,使公鑰認證方式之模型中之證明者與電子署名方式中之署名者對應,藉此可使公鑰認證方式之演算法向電子署名方式之演算法變形。
<5:雙線性項G之高效之計算方法>
但是,於上述公鑰認證方式及電子署名方式之演算法中,包含藉由下式(13)而定義之雙線性項G之運算。例如,於3次動作方式之演算法(參照圖4及圖5)中,在步驟#1及步驟#4之中包含雙線性項G之運算。又,於5次動作方式之演算法(參照圖6及圖7)中,在步驟#1及步驟#6之中包含雙線性項G之運算。進而,於使該等公鑰認證方式之演算 法變形而獲得之電子署名方式之演算法中,同樣地亦包含雙線性項G之運算。
[數11]G(x,y)=F(x+y)-F(x)-F(y)………(13)
如自上式(13)所知,為獲得雙線性項G之值,必需執行3次多元多項式F之運算。又,多元多項式F包括m個2次多項式f1(l=1,...,m),故而為獲得多元多項式F之值,必需執行2次多項式f1所需之運算量之m倍運算量(以下,稱為運算量Z)。即,獲得雙線性項G之值所需之運算量為3×Z以上。此處,對使獲得雙線性項G之值所需之運算量小於3×Z之方法進行說明。
[5-1:原理說明]
2次多項式f1(x+y)可如下式(14)所示展開。從而,雙線性項G=(g1,...,gm)之要素g1(x,y)如下式(15)般。如自下式(15)所知,要素g1(x,y)包括2個2次多項式。因此,藉由根據下式(15)所示之展開式而運算雙線性項G,可將雙線性項G之運算量抑制為2×Z左右。
又,若以省略上式(6)之右邊第2項(關於xj之1次項)所成之形式(參照下式(16))定義2次多項式f1,則f1及g1可使用下式(17)之表現,以下式(18)及式(19)之方式表現。若使用該表現,則可準備計算函數w1(x,y)之運算模組,重複利用該運算模組計算雙線性項G或多元多項式F。例如,可利用硬體或軟件安裝該運算模組,利用所安裝之運算模組執行演算法。
以上,對雙線性項G之高效之計算方法之原理進行了說明。再者,此處對以上式(16)之方式定義2次多項式f1之方法進行了說明,但本實施形態之技術之應用範圍並不限定於此,亦可直接使用上式(6)所示之定義。於該情形時,上式(19)中出現關於xj之1次項。其中,於以下說明中,將以上式(16)之方式定義2次多項式f1作為前提而展開說明。
[5-2:應用例#1(面向3次動作方式之應用)]
首先,對相對於3次動作方式之演算法之具體之應用方法進行說明。
(單純之應用例)
若參照圖4,則於步驟#1中,當算出訊息c0時,出現雙 線性項G(t0,r1)之運算。因此,證明者演算法P使用g1(t0,r1)=w1(t0,r1)+w1(r1,t0)計算雙線性項G(t0,r1)。又,於步驟#4中,當Ch=1之情形時出現雙線性項G(t0,r1)之運算,當Ch=2之情形時出現雙線性項G(t1,r1)之運算。因此,驗證者演算法V於Ch=1之情形時使用g1(t0,r1)=w1(t0,r1)+w1(r1,t0)計算雙線性項G(t0,r1),於Ch=2之情形時使用g1(t1,r1)=w1(t1,r1)+w1(r1,t1)計算雙線性項G(t1,r1)。若應用該方法,則雙線性項G之計算所需之運算量抑制為2×Z左右。
(高效之應用例)
藉由使用上述方法,可高效地執行雙線性項G之運算。其中,若於步驟#4中,關注於當Ch=2之情形時應計算之項(y-F(r1)-G(t1,r1)-e1),則會發現更高效地執行運算之方法。若遵循上式(13)之定義,則F(r1)+G(t1,r1)=F(t1+r1)-F(t1)。從而,若單純地計算左邊,則為1×Z+3×Z=4×Z左右之運算量,但若參照右邊則如所知:藉由該變形可削減至2×Z左右之運算量。
再者,關於運算模組w1(x,y)之具體之應用方法,可如下式(20)所示考慮到若干種方法。無論使用哪種方法,均可使F(r1)+G(t1,r1)之計算所需之運算量為2×Z左右。
[數14]f 1 (y)+g 1 (x,y)=y T A 1 y+x T A 1 y+y T A 1 x=y T A 1 (x+y)+x T A 1 y=w 1 (y,x+y)+w 1 (x,y)=(x T +y T )A 1 y+y T A 1 x=w 1 (x+y,y)+w 1 (y,x)=(x T +y T )A 1 (x+y)-x T A 1 x=w 1 (x+y,x+y)+w 1 (x,x)………(20)
以上,對相對於3次動作方式之演算法之具體之應用方法進行了說明。再者,此處,以圖4所示之演算法作為參考進行了說明,但對於圖5所示之並行化演算法或將該等演算法變形而成之演算法亦可同樣地應用。
[5-3:應用例#2(面向5次動作方式之應用)]
其次,對相對於5次動作方式之演算法之具體之應用方法進行說明。
若參照圖6,則於步驟#1中,在算出訊息c1時,出現雙線性項G(t0,r1)之運算。因此,證明者演算法P使用g1(t0,r1)=w1(t0,r1)+w1(r1,t0)計算雙線性項G(t0,r1)。又,於步驟#6中,當ChB=1之情形時出現雙線性項G(t1,r1)之運算。因此,驗證者演算法V於ChB=1之情形時使用g1(t1,r1)=w1(t1,r1)+w1(r1,t1)計算雙線性項G(t1,r1)。若應用該方法,則可將雙線性項G之計算所需之運算量抑制為2×Z左右。
以上,對相對於5次動作方式之演算法之具體之應用方法進行了說明。再者,此處,以圖6所示之演算法作為參考進行了說明,但對於圖7所示之並行化演算法或將該等演算法變形而成之演算法亦可同樣地應用。
[5-4:應用例#3(面向電子署名方式之應用)]
其次,對相對於電子署名方式之演算法之具體之應用方法進行說明。
(面向基於3次動作方式之電子署名方式之應用)
圖8所示之電子署名方式之演算法係基於圖5所示之3次 動作方式之並行化演算法之演算法。從而,於署名生成演算法Sig算出訊息c0i時,出現雙線性項G(t0i,r1i)之運算。因此,署名生成演算法Sig使用g1(t0i,r1i)=w1(t0i,r1i)+w1(r1i,t0i)計算雙線性項G(t0i,r1i)。
又,於署名驗證演算法Ver算出訊息c0i時,出現雙線性項G(t0i,r1i)或雙線性項G(t1i,r1i)之運算。因此,署名驗證演算法Ver使用g1(t0i,r1i)=w1(t0i,r1i)+w1(r1i,t0i)計算雙線性項G(t0i,r1i),使用g1(t1i,r1i)=w1(t1i,r1i)+w1(r1i,t1i)計算雙線性項G(t1i,r1i)。若應用該方法,則雙線性項G之計算所需之運算量抑制為2×Z左右。
又,關注於署名驗證演算法Ver算出訊息c0i時所執行之F(r1i)+G(t1i,r1i)之運算,並根據上式(20)執行運算,藉此可進而削減運算量。
(面向基於5次動作方式之電子署名方式之應用)
圖9所示之電子署名方式之演算法係基於圖7所示之5次動作方式之並行化演算法之演算法。從而,於署名生成演算法Sig算出訊息c1i時,出現雙線性項G(t0i,r1i)之運算。因此,署名生成演算法Sig使用g1(t0i,r1i)=w1(t0i,r1i)+w1(r1i,t0i)計算雙線性項G(t0i,r1i)。又,於署名驗證演算法Ver再生訊息c1i時,出現雙線性項G(t1i,r1i)之運算。因此,署名驗證演算法Ver使用g1(t1,r1)=w1(t1,r1)+w1(r1,t1)計算雙線性項G(t1,r1)。若應用該方法,則雙線性項G之計算所需之運算量抑制為2×Z左右。
以上,對相對於電子署名方式之演算法之具體之應用方 法進行了說明。再者,此處,以圖8及圖9所示之演算法作為參考進行了說明,但對於將該等演算法變形而成之演算法亦可同樣地應用。
以上,對雙線性項G之高效之計算方法進行了說明。
<6:硬體構成例>
上述各演算法例如可使用圖10所示之資訊處理裝置之硬體構成而執行。即,該各演算法之處理係藉由使用電腦程式控制圖10所示之硬體而實現。再者,該硬體之形態任意,例如,個人電腦、行動電話、PHS、PDA等行動資訊終端、遊戲機、接觸式或非接觸式之IC(Integrated Circuit,積體電路)晶片、接觸式或非接觸式之IC卡、或者各種資訊家電均包含於其中。其中,上述PHS係Personal Handy-phoneSystem(個人手持式電話系統)之縮寫。又,上述PDA係Personal Digital Assistant(個人數位助理)之縮寫。
如圖10所示,該硬體主要包含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 Display Panel(電漿顯示面板)之縮寫。進而,上述ELD係Electro-Luminescence Display(電致發光顯示器)之縮寫。
記憶部920係用以儲存各種資料之裝置。作為記憶部920,使用例如:硬碟驅動器(HDD)等磁記憶器件、半導體記憶器件、光記憶器件、或光磁記憶器件等。其中,上 述HDD係Hard Disk Drive(硬碟驅動器)之縮寫。
驅動器922係將記錄於例如磁碟、光碟、光磁碟、或半導體記憶體等可移除式記錄媒體928中之資訊讀出或者將資訊寫入可移除式記錄媒體928中之裝置。可移除式記錄媒體928例如為DVD(Digital Versatile Disc,數位多功能光碟)媒體、Blu-ray媒體、HD DVD(High Definition Digital Versatile Disc,高清晰度數位多功能光碟)媒體、各種半導體記憶媒體等。當然,可移除式記錄媒體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(非對稱數位用戶線路)之縮寫。
<7:總結>
最後,對本技術之實施形態之技術內容簡單地進行總結。此處所述之技術內容可相對於例如PC(Personal Computer,個人電腦)、行動電話、遊戲機、資訊終端、資訊家電、汽車導航系統等各種資訊處理裝置而應用。再者,以下所述之資訊處理裝置之功能既可利用1台資訊處理裝置而實現,亦可利用複數台資訊處理裝置而實現。又,以下所述之資訊處理裝置執行處理時所使用之資料記憶機構及運算處理機構既可設置於該資訊處理裝置上,亦可設置於經由網路而連接之機器上。
上述資訊處理裝置之功能構成係以如下方式表現。例如,下述(1)所記載之資訊處理裝置具有執行將安全性之依據置於多次多元聯立方程式之求解困難性中之高效之公鑰認證方式或電子署名方式之演算法的功能。
(1)
一種資訊處理裝置,其包括:訊息生成部,其根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;訊息提供部,其向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊 息;以及回答提供部,其向上述驗證者提供與上述驗證者自k個(k≧3)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;上述訊息生成部於生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
(2)
如上述(1)之資訊處理裝置,其中上述訊息生成部生成N次(N≧2)之訊息,上述訊息提供部於1次對話中向上述驗證者提供N次之上述訊息,上述回答提供部針對N次之上述訊息各者於1次對話中向上述驗證者提供與上述驗證者所選擇之驗證圖案對應之N次之上述回答資訊。
(3)
一種資訊處理裝置,其包括:資訊保持部,其保持定義於環K上且以2次形式表現之2 次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s));訊息取得部,其取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;圖案資訊提供部,其向提供上述訊息之證明者,提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;回答取得部,其自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及驗證部,其根據上述訊息、上述2次多元多項式之組F、上述向量y、及上述回答資訊而驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;上述驗證部於再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
(4)
如上述(3)之資訊處理裝置,其中上述訊息取得部於1次對話中取得N次(N≧2)之上述訊息, 上述圖案資訊提供部相對於N次之上述訊息各者選擇驗證圖案,並於1次對話中向上述證明者提供所選擇之N次之驗證圖案之資訊,上述回答取得部於1次對話中自上述證明者取得與上述所選擇之N次之驗證圖案對應之N次之上述回答資訊,上述驗證部於針對N次之上述訊息之全部之驗證成功之情形時,判定上述證明者保持有上述向量s。
(5)
一種資訊處理裝置,其包括:訊息生成部,其根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;訊息提供部,其向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊息;中間資訊生成部,其使用上述驗證者隨機地選擇之第1資訊及生成上述訊息時所得之第2資訊而生成第3資訊;中間資訊提供部,其向上述驗證者提供上述第3資訊;以及回答提供部,其向上述驗證者提供與上述驗證者自k個(k≧2)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰、上述第1資訊、上述第3資 訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;上述訊息生成部於生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
(6)
如上述(5)之資訊處理裝置,其中上述訊息生成部生成N次(N≧2)之訊息,上述訊息提供部於1次對話中向上述驗證者提供N次之上述訊息,上述中間資訊生成部針對N次之上述訊息各者,使用上述驗證者所選擇之上述第1資訊及生成上述訊息時獲得之N次之上述第2資訊而生成N次之上述第3資訊,上述中間資訊提供部於1次對話中向驗證者提供N次之上述第3資訊,上述回答提供部針對N次之上述訊息各者,於1次對話中向上述驗證者提供與上述驗證者所選擇之驗證圖案對應之N次之上述回答資訊。
(7)
一種資訊處理裝置,其包括:資訊保持部,其保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s)); 訊息取得部,其取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;資訊提供部,其向提供上述訊息之證明者,提供隨機地選擇之第1資訊;中間資訊取得部,其取得上述證明者使用上述第1資訊及生成上述訊息時獲得之第2資訊而生成之第3資訊;圖案資訊提供部,其向上述證明者提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;回答取得部,其自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及驗證部,其根據上述訊息、上述第1資訊、上述第3資訊、上述2次多元多項式之組F、及上述回答資訊而驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰、上述第1資訊、上述第3資訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;上述驗證部於再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G= (g1,...,gm)之計算。
(8)
如上述(7)之資訊處理裝置,其中上述訊息取得部於1次對話中取得N次(N≧2)之上述訊息,上述資訊提供部針對N次之上述訊息各者隨機地選擇上述第1資訊,並於1次對話中向上述證明者提供所選擇之N次之上述第1資訊,上述中間資訊取得部取得上述證明者使用N次之上述第1資訊及生成N次之上述訊息時所得之N次之上述第2資訊而生成之N次之上述第3資訊,上述圖案資訊提供部針對N次之上述訊息各者選擇驗證圖案,並於1次對話中向上述證明者提供所選擇之N次之驗證圖案之資訊,上述回答取得部於1次對話中自上述證明者取得與上述所選擇之N次之驗證圖案對應之N次之上述回答資訊,上述驗證部於針對N次之上述訊息之全部之驗證成功之情形時,判定上述證明者保持有上述向量s。
(9)
一種署名生成裝置,其包括:署名生成部,其使用定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及署名金鑰sKn而生成相對於文件M之電子署名;以及署名提供部,其向保持上述2次多元多項式之組F及向量y=(f1(s),...,fm(s))之驗證者提供上述電子署名;且 上述署名生成部根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行在生成上述電子署名之過程中所執行之以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
(10)
一種署名驗證裝置,其包括:資訊保持部,其保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(f1(s),...,fm(s));以及署名驗證部,其針對文件M,根據使用上述2次多元多項式之組F及署名金鑰sKn而生成之電子署名驗證上述文件M之正當性;且上述署名驗證部根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行在驗證上述電子署名之過程中所執行之以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
(11)
一種資訊處理方法,其包括如下步驟:根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊息;以及向上述驗證者提供與上述驗證者自k個(k≧3)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且 上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;於上述生成步驟中,生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
(12)
一種資訊處理方法,其包括由保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s))之資訊處理裝置執行之如下步驟:取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;向提供上述訊息之證明者,提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及根據上述訊息、上述2次多元多項式之組F、上述向量y、及上述回答資訊而驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰; 上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊,於上述驗證步驟中,再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
(13)
一種資訊處理方法,其包括如下步驟:根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊息;使用上述驗證者隨機地選擇之第1資訊及生成上述訊息時所得之第2資訊而生成第3資訊;向上述驗證者提供上述第3資訊;及向上述驗證者提供與上述驗證者自k個(k≧2)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰、上述第1資訊、上述第3資訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊; 於生成上述訊息之步驟中,生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
(14)
一種資訊處理方法,其包括由保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s))之資訊處理裝置執行之如下步驟:取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;向提供上述訊息之證明者提供隨機地選擇之第1資訊;取得上述證明者使用上述第1資訊及生成上述訊息時所得之第2資訊而生成之第3資訊;向上述證明者提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及根據上述訊息、上述第1資訊、上述第3資訊、上述2次多元多項式之組F、及上述回答資訊,驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰;上述2次多元多項式之組F及上述向量y為公鑰;上述訊息係利用上述公鑰、上述第1資訊、上述第3資 訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊;於上述驗證步驟中,再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
(15)
一種署名生成方法,其包括如下步驟:使用定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及署名金鑰sKn而生成相對於文件M之電子署名;及向保持上述2次多元多項式之組F及向量y=(f1(s),...,fm(s))之驗證者提供上述電子署名;且於上述生成步驟中,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)執行於生成上述電子署名之過程中所執行的藉由G(x1,x2)=F(x1+x2)-F(x1)-F(x2)而定義之函數G=(g1,...,gm)之計算。
(16)
一種署名驗證方法,其包括由保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(f1(s),...,fm(s))之資訊處理裝置執行之如下步驟: 針對文件M,根據使用上述2次多元多項式之組F及署名金鑰sKn而生成之電子署名,驗證上述文件M之正當性;且於上述驗證步驟中,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行在驗證上述電子署名之過程中所執行之以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
(17)
一種程式,其用以使電腦實現如上述(1)~(8)中任1項之資訊處理裝置所包含之各部之功能。
(18)
一種程式,其用以使電腦實現如上述(9)之署名生成裝置所包含之各部之功能。
(19)
一種程式,其用以使電腦實現如上述(10)之署名驗證裝置所包含之各部之功能。
(20)
一種記錄媒體,其記錄有如上述(17)~(19)中任1項之程式,且可藉由電腦進行讀取。
(備註)
上述證明者演算法P係訊息生成部、訊息提供部、回答提供部、中間資訊生成部、中間資訊提供部之一例。又,上述驗證者演算法V係資訊保持部、訊息取得部、圖案資訊提供部、回答取得部、驗證部、中間資訊取得部之一 例。又,上述署名生成演算法Sig係署名生成部、署名提供部之一例。又,上述署名驗證演算法Ver係資訊保持部、署名驗證部之一例。
以上,一面參照附圖一面對本技術之較佳實施形態進行了說明,當然本技術並不限定於該例。若為業者,則瞭解:於專利申請範圍所記載之範疇內,毫無疑問可想出各種變更例或修正例,對於該等當然亦屬於本技術之技術性範圍內。
於上述說明中,對使用散列函數H之演算法進行了介紹,但亦可使用授權函數COM(commission)取代散列函數H。授權函數COM係採用字串S及隨機數ρ作為引數之函數。作為授權函數之例,存在由Shai Halevi與Silvio Micali於國際會議CRYPTO 1996上發表之方式等。
Gen‧‧‧密鑰生成演算法
P‧‧‧證明者演算法
Sig‧‧‧署名生成演算法
V‧‧‧驗證者演算法
Ver‧‧‧署名驗證演算法
圖1係用以說明公鑰認證方式之演算法之構成之說明圖。
圖2係用以說明電子署名方式之演算法之構成之說明圖。
圖3係用以說明n次動作之公鑰認證方式之演算法之構成之說明圖。
圖4係用以說明3次動作之公鑰認證方式之高效之演算法之說明圖。
圖5係用以說明3次動作之公鑰認證方式之高效之演算法之並行化之說明圖。
圖6係用以說明5次動作之公鑰認證方式之高效之演算法之構成例之說明圖。
圖7係用以說明5次動作之公鑰認證方式之高效之演算法之並行化之說明圖。
圖8係用以說明將3次動作之公鑰認證方式之高效之演算法變形成電子署名方式之演算法之方法的說明圖。
圖9係用以說明將5次動作之公鑰認證方式之高效之演算法變形成電子署名方式之演算法之方法的說明圖。
圖10係用以說明可執行本技術之各實施形態之演算法的資訊處理裝置之硬體構成例之說明圖。

Claims (16)

  1. 一種資訊處理裝置,其包括:訊息生成部,其根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;訊息提供部,其向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊息;以及回答提供部,其向上述驗證者提供與上述驗證者自k個(k≧3)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且上述向量s為密鑰,上述2次多元多項式之組F及上述向量y為公鑰,上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊,上述訊息生成部於生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
  2. 如請求項1之資訊處理裝置,其中上述訊息生成部生成N次(N≧2)之訊息,上述訊息提供部於1次對話中向上述驗證者提供N次之上述訊息, 上述回答提供部針對N次之上述訊息各者於1次對話中向上述驗證者提供與上述驗證者所選擇之驗證圖案對應之N次之上述回答資訊。
  3. 一種資訊處理裝置,其包括:資訊保持部,其保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s));訊息取得部,其取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;圖案資訊提供部,其向提供上述訊息之證明者,提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;回答取得部,其自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及驗證部,其根據上述訊息、上述2次多元多項式之組F、上述向量y、及上述回答資訊而驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰,上述2次多元多項式之組F及上述向量y為公鑰,上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊,上述驗證部於再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣) 而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
  4. 如請求項3之資訊處理裝置,其中上述訊息取得部於1次對話中取得N次(N≧2)之上述訊息,上述圖案資訊提供部針對N次之上述訊息各者選擇驗證圖案,並於1次對話中向上述證明者提供所選擇之N次之驗證圖案之資訊,上述回答取得部於1次對話中自上述證明者取得與上述所選擇之N次之驗證圖案對應之N次之上述回答資訊,上述驗證部於針對N次之上述訊息之全部驗證成功之情形時,判定上述證明者保持有上述向量s。
  5. 一種資訊處理裝置,其包括:訊息生成部,其根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;訊息提供部,其向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊息;中間資訊生成部,其使用上述驗證者隨機地選擇之第1資訊及生成上述訊息時所得之第2資訊而生成第3資訊;中間資訊提供部,其向上述驗證者提供上述第3資訊;以及回答提供部,其向上述驗證者提供與上述驗證者自k 個(k≧2)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且上述向量s為密鑰,上述2次多元多項式之組F及上述向量y為公鑰,上述訊息係利用上述公鑰、上述第1資訊、上述第3資訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊,上述訊息生成部於生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
  6. 如請求項5之資訊處理裝置,其中上述訊息生成部生成N次(N≧2)之訊息,上述訊息提供部於1次對話中向上述驗證者提供N次之上述訊息,上述中間資訊生成部針對N次之上述訊息各者,使用上述驗證者所選擇之上述第1資訊及生成上述訊息時獲得之N次之上述第2資訊而生成N次之上述第3資訊,上述中間資訊提供部於1次對話中向驗證者提供N次之上述第3資訊,上述回答提供部針對N次之上述訊息各者,於1次對話中向上述驗證者提供與上述驗證者所選擇之驗證圖案對應之N次之上述回答資訊。
  7. 一種資訊處理裝置,其包括: 資訊保持部,其保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s));訊息取得部,其取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;資訊提供部,其向提供上述訊息之證明者提供隨機地選擇之第1資訊;中間資訊取得部,其取得上述證明者使用上述第1資訊及生成上述訊息時獲得之第2資訊而生成之第3資訊;圖案資訊提供部,其向上述證明者提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;回答取得部,其自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及驗證部,其根據上述訊息、上述第1資訊、上述第3資訊、上述2次多元多項式之組F、及上述回答資訊而驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰,上述2次多元多項式之組F及上述向量y為公鑰,上述訊息係利用上述公鑰、上述第1資訊、上述第3資訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊,上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊, 上述驗證部於再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
  8. 如請求項7之資訊處理裝置,其中上述訊息取得部於1次對話中取得N次(N≧2)之上述訊息,上述資訊提供部針對N次之上述訊息各者隨機地選擇上述第1資訊,並於1次對話中向上述證明者提供所選擇之N次之上述第1資訊,上述中間資訊取得部取得上述證明者使用N次之上述第1資訊及生成N次之上述訊息時所得之N次之上述第2資訊而生成之N次之上述第3資訊,上述圖案資訊提供部針對N次之上述訊息各者選擇驗證圖案,並於1次對話中向上述證明者提供所選擇之N次之驗證圖案之資訊,上述回答取得部於1次對話中自上述證明者取得與上述所選擇之N次之驗證圖案對應之N次之上述回答資訊,上述驗證部於針對N次之上述訊息之全部驗證成功之情形時,判定上述證明者保持有上述向量s。
  9. 一種署名生成裝置,其包括:署名生成部,其使用定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及署名金鑰sKn而生成相對於文件M之電子署名;以及署名提供部,其向保持上述2次多元多項式之組F及向 量y=(f1(s),...,fm(s))之驗證者提供上述電子署名;且上述署名生成部根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行在生成上述電子署名之過程中所執行之以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
  10. 一種署名驗證裝置,其包括:資訊保持部,其保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(f1(s),...,fm(s));以及署名驗證部,其針對文件M,根據使用上述2次多元多項式之組F及署名金鑰sKn而生成之電子署名,驗證上述文件M之正當性;且上述署名驗證部根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行在驗證上述電子署名之過程中所執行之以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
  11. 一種資訊處理方法,其包括如下步驟:根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊息;以及向上述驗證者提供與上述驗證者自k個(k≧3)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且上述向量s為密鑰, 上述2次多元多項式之組F及上述向量y為公鑰,上述訊息係利用上述公鑰及上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊,於上述生成步驟中,生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
  12. 一種資訊處理方法,其包括由保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s))之資訊處理裝置執行之如下步驟:取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;向提供上述訊息之證明者,提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及根據上述訊息、上述2次多元多項式之組F、上述向量y、及上述回答資訊而驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰,上述2次多元多項式之組F及上述向量y為公鑰,上述訊息係利用上述公鑰及上述回答資訊,執行為與 該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊,於上述驗證步驟中,再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
  13. 一種資訊處理方法,其包括如下步驟:根據定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量sKn而生成訊息;向保持上述2次多元多項式之組F及向量y=(y1,...,ym)=(f1(s),...,fm(s))之驗證者提供上述訊息;使用上述驗證者隨機地選擇之第1資訊及生成上述訊息時所得之第2資訊而生成第3資訊;向上述驗證者提供上述第3資訊;及向上述驗證者提供與上述驗證者自k個(k≧2)驗證圖案之中所選擇之驗證圖案對應之回答資訊;且上述向量s為密鑰,上述2次多元多項式之組F及上述向量y為公鑰,上述訊息係利用上述公鑰、上述第1資訊、上述第3資訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊,於生成上述訊息之步驟中,當生成上述訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數 G=(g1,...,gm)之計算。
  14. 一種資訊處理方法,其包括由保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(y1,...,ym)=(f1(s),...,fm(s))之資訊處理裝置執行之如下步驟:取得根據上述2次多元多項式之組F及向量sKn而生成之訊息;向提供上述訊息之證明者提供隨機地選擇之第1資訊;取得上述證明者使用上述第1資訊及生成上述訊息時所得之第2資訊而生成之第3資訊;向上述證明者提供自k個(k≧3)驗證圖案之中隨機地選擇之1個驗證圖案之資訊;自上述證明者取得與上述所選擇之驗證圖案對應之回答資訊;以及根據上述訊息、上述第1資訊、上述第3資訊、上述2次多元多項式之組F、及上述回答資訊,驗證上述證明者是否保持有上述向量s;且上述向量s為密鑰,上述2次多元多項式之組F及上述向量y為公鑰,上述訊息係利用上述公鑰、上述第1資訊、上述第3資訊、上述回答資訊,執行為與該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊,上述訊息係利用上述公鑰及上述回答資訊,執行為與 該回答資訊對應之驗證圖案而預先準備之運算而獲得之資訊,於上述驗證步驟中,再生用於上述驗證之訊息時,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
  15. 一種署名生成方法,其包括如下步驟:使用定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及署名金鑰sKn而生成相對於文件M之電子署名;及向保持上述2次多元多項式之組F及向量y=(f1(s),...,fm(s))之驗證者提供上述電子署名;且於上述生成步驟中,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)執行於生成上述電子署名之過程中所執行的藉由G(x1,x2)=F(x1+x2)-F(x1)-F(x2)而定義之函數G=(g1,...,gm)之計算。
  16. 一種署名驗證方法,其包括由保持定義於環K上且以2次形式表現之2次多元多項式之組F=(f1,...,fm)及向量y=(f1(s),...,fm(s))之資訊處理裝置執行之如下步驟:針對文件M,根據使用上述2次多元多項式之組F及署名金鑰sKn而生成之電子署名,驗證上述文件M之正當性;且於上述驗證步驟中,根據式g1(x1,x2)=x1 TA1x2+x2 TA1x1(l=1~m;A1為n×n之係數矩陣)而執行在驗證上述電子署 名之過程中所執行之以G(x1,x2)=F(x1+x2)-F(x1)-F(x2)定義之函數G=(g1,...,gm)之計算。
TW101128305A 2011-08-29 2012-08-06 資訊處理裝置、署名生成裝置、署名驗證裝置、資訊處理方法、署名生成方法及署名驗證方法 TW201325180A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011185943A JP2013047726A (ja) 2011-08-29 2011-08-29 情報処理装置、署名生成装置、署名検証装置、情報処理方法、署名生成方法、及び署名検証方法

Publications (1)

Publication Number Publication Date
TW201325180A true TW201325180A (zh) 2013-06-16

Family

ID=47755928

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101128305A TW201325180A (zh) 2011-08-29 2012-08-06 資訊處理裝置、署名生成裝置、署名驗證裝置、資訊處理方法、署名生成方法及署名驗證方法

Country Status (8)

Country Link
US (1) US20140208110A1 (zh)
EP (1) EP2752836A1 (zh)
JP (1) JP2013047726A (zh)
CN (1) CN103782331A (zh)
BR (1) BR112014004060A2 (zh)
RU (1) RU2014106493A (zh)
TW (1) TW201325180A (zh)
WO (1) WO2013031420A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103490897B (zh) * 2013-09-17 2017-04-05 华南理工大学 一种多变量公钥签名/验证系统及签名/验证方法
US9948460B2 (en) * 2015-08-28 2018-04-17 City University Of Hong Kong Multivariate cryptography based on clipped hopfield neural network

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2805493B2 (ja) * 1989-04-05 1998-09-30 日本電信電話株式会社 認証方法及びそれに用いる装置

Also Published As

Publication number Publication date
WO2013031420A1 (ja) 2013-03-07
EP2752836A1 (en) 2014-07-09
CN103782331A (zh) 2014-05-07
RU2014106493A (ru) 2015-08-27
US20140208110A1 (en) 2014-07-24
JP2013047726A (ja) 2013-03-07
BR112014004060A2 (pt) 2017-03-07

Similar Documents

Publication Publication Date Title
JP5790319B2 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
JP6069852B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP5790318B2 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
CN111159745A (zh) 一种适用于区块链的验证方法及装置
TWI511517B (zh) Information processing apparatus, information processing method, program and recording medium
RU2600103C2 (ru) Устройство обработки информации, способ обработки информации, программа и носитель записи
WO2013129084A1 (ja) 情報処理装置、情報処理方法、及びプログラム
WO2013024697A1 (ja) 情報処理装置、署名提供方法、署名検証方法、プログラム、及び記録媒体
WO2013129119A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP5790286B2 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
TW201325180A (zh) 資訊處理裝置、署名生成裝置、署名驗證裝置、資訊處理方法、署名生成方法及署名驗證方法
US9184914B2 (en) Information processing apparatus and information processing method
WO2013031413A1 (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
WO2013024630A1 (ja) 情報処理装置、及び情報処理方法