TWI455555B - Authentication device, authentication method, and program - Google Patents

Authentication device, authentication method, and program Download PDF

Info

Publication number
TWI455555B
TWI455555B TW100124969A TW100124969A TWI455555B TW I455555 B TWI455555 B TW I455555B TW 100124969 A TW100124969 A TW 100124969A TW 100124969 A TW100124969 A TW 100124969A TW I455555 B TWI455555 B TW I455555B
Authority
TW
Taiwan
Prior art keywords
verifier
information
message
algorithm
recorded
Prior art date
Application number
TW100124969A
Other languages
English (en)
Other versions
TW201215069A (en
Inventor
Koichi Sakumoto
Taizo Shirai
Harunaga Hiwatari
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 TW201215069A publication Critical patent/TW201215069A/zh
Application granted granted Critical
Publication of TWI455555B publication Critical patent/TWI455555B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • 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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3239Cryptographic 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 cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

認證裝置、認證方法、及程式
本揭露係有關於認證裝置、認證方法、及程式。
伴隨資訊處理技術或通訊技術的急速發展,無論公文書、私文書都急速朝著文書的電子化邁進。伴隨於此,許多個人或企業,對電子文書的安全管理寄與莫大的關心。受到如此高的關心,在各方面關於電子文書對竊聽或偽造等之破壞行為的安全性正被熱烈討論著。電子文書對竊聽的安全性,係例如藉由電子文書的加密而被確保。又,電子文書對偽造的安全性,係藉由利用電子簽章而被確保。但是,加密或電子簽章係被要求要有足夠的破壞耐性。
電子簽章,係被利用來特定電子文書的作成者。因此,電子簽章應該是只有電子文書的作成者才能夠生成。假設惡意第三者可生成相同的電子簽章,則該第三者就可假冒成電子文書的作成者。亦即,電子文書就被惡意第三者所偽造。為了防止此種偽造,關於電子簽章的安全性,有各種議論正在交流著。目前廣為利用的電子簽章方式,為人熟知的有例如利用RSA簽章方式或DSA簽章方式的方式。
RSA簽章方式係以「對很大之合成數的質因數分解之困難性(以下稱作質因數分解問題)」為安全性之依據。又,DSA簽章方式係以「對離散對數問題之解的導出困難性」為安全性之依據。這些依據是起因於,利用古典電腦而能有效率地解出質因數分解問題或離散對數問題的演算法,是不存在的。亦即,上記的困難性是意味著,古典電腦中的計算量之困難性。然而,一般認為,若使用量子電腦,則對質因數分解問題或離散對數問題之解答,是可以有效率地算出。
目前利用的電子簽章方式或公開金鑰認證方式中,有許多都是和RSA簽章方式或DSA簽章方式同樣地,以質因數分解問題或離散對數問題之困難性為安全性之依據。因此,如此的電子簽章方式或公開金鑰認證方式,係在量子電腦被實用化的情況下,就無法確保其安全性。於是,以與質因數分解問題或離散對數問題等能被夠量子電腦容易解開之問題不同之問題來作為安全性之依據的新的電子簽章方式及公開金鑰認證方式,是被人們所需求。作為可被量子電腦容易解開的困難問題,例如有對多變數多項式之解答的困難性(以下稱作多變數多項式問題)。
其他還有,作為難以被量子電腦所解開的問題有,Syndrome Decoding問題、Constrained Linear Equation問題、Permuted Kernel問題、Permuted Perception問題、代數曲面上的求區間問題等。
在這些問題當中,代數曲面上的求區間問題以外之問題係為NP困難,這是人們所熟知的。作為其應用例,例如下記的非專利文獻1、2所揭露,基於Syndrome Decoding問題的公開金鑰認證方式。又,下記的非專利文獻3係揭露了,基於Permuted Kernel問題的公開金鑰認證方式。除此以外,還有基於Constrained Linear Equations問題的公開金鑰認證方式或基於Permuted Perceptions問題的公開金鑰認證方式等,已被提出。
[先前技術文獻] [非專利文獻]
[非專利文獻1]Jacques Stern,A New Identification Scheme Based on Syndrome Decoding,CRYPTO 1993,p13-21.
[非專利文獻2]Jacques Stern,A New Paradigm for Public Key Identification,IEEE Transactions on Information Theory,1996,p13-21.
[非專利文獻3]Adi Shamir,An Efficient Identification Scheme Based on Permuted Kernels(Extended Abstract),CRYPTO 1989,p606-609.
此處,先來探討公開金鑰認證方式的安全性等級。公開金鑰認證方式的安全性等級,係存在有2個安全性等級。其1個係為,對於被動性攻撃(passive attack)的安全性等級。另1個係為,對於主動性攻撃(active attack)的安全性等級。對被動性攻撃的安全性等級,係為想定了攻撃者只能竊聽依照正當協定之證明者與驗證者之對話的安全性等級。另一方面,對主動性攻撃的安全性等級,係為想定了攻撃者能夠直接與證明者執行對話協定之狀況的安全性等級。亦即,對主動性攻撃的安全性等級,係想定了攻撃者可任意與證明者進行對話協定。
上記非專利文獻1~3所記載之先前的公開金鑰認證方式,係保證了對被動性攻撃的安全性等級。可是,這些先前的公開金鑰認證方式,在進行了並列式反覆構成的情況下,是否能夠確實保證對主動性攻撃的安全性等級,則無從得知。這是因為,在進行了並列式反覆構成的情況下,零知識性係不被保存,這是一般所熟知的。因此,為了在並列式反覆構成下確實保證主動性攻撃的安全性等級,還必須要保證更多其他的性質。
先前的公開金鑰認證方式,係使用1組金鑰配對(公開金鑰y、祕密金鑰s)而將「針對y可知y=F(s)的s」,當作證明者對驗證者進行證明的方式。因此,在進行被驗證所受理之對話時,「進行對話之證明者是使用了s」此一資訊,是無法避免不被驗證者所知道。又,此形式的公開金鑰認證方式的並列式反覆構成中,若F沒有保證碰撞困難性,則是否能夠確實保證對主動性攻撃的安全性等級,是無從得知。實際上,在前述的公開金鑰認證方式中所使用的函數F,並沒有保證碰撞困難性。
於是,本揭露係有鑑於上述問題而研發,本揭露的目的在於提供一種,即使函數F沒有被保證碰撞困難性,即使將對話協定予以並列式反覆執行,仍可保證對主動性攻撃的安全性等級的新穎且改良過的認證裝置、認證方法、及程式。
為了解決上述課題,若依據本揭露之某一觀點,則可提供一種認證裝置,其係具備:金鑰保持部,係針對L個(L≧2)祕密金鑰si (i=1~L)、及n次多變數多項式之組合F(n≧2),將滿足yi =F(si )的L個公開金鑰yi 加以保持;和對話協定執行部,係與驗證者之間執行對話協定,用來證明已知(L-1)個滿足yi =F(si )之祕密金鑰si ;前記對話協定執行部,係在與前記驗證者之間執行前記對話協定之際,不讓該當驗證者獲知是使用了哪個祕密金鑰si
又,前記對話協定執行部係亦可含有:挑戰收訊部,係從前記驗證者,接收L個挑戰Chi ;和挑戰選擇部,係從已被前記挑戰收訊部所接收的L個挑戰Chi 之中,任意選擇出(L-1)個挑戰Chi ;和回答生成部,係使用前記祕密金鑰si ,生成對於已被前記挑戰選擇部所選擇之(L-1)個挑戰Chi 之各者的(L-1)個回答Rspi ;和回答送訊部,係將已被前記回答生成部所生成的(L-1)個回答Rspi ,發送至前記驗證者。
又,前記對話協定執行部係亦可含有:訊息送訊部,係對前記驗證者,發送L個前記祕密金鑰si 所分別對應之訊息Cmti 。此時,前記挑戰收訊部,係將隨應於已被前記訊息送訊部所發送之各訊息Cmti ,而被前記驗證者從k種(k≧2)驗證模態之中所選擇出來的驗證模態加以表示的挑戰Chi ,予以接收。
又,亦可構成為,若前記訊息Cmti 為Cmti =(ci,1 ,…,ci,N ),則前記訊息送訊部係使用單向性函數H而算出新的訊息Cmt’=H(Cmt1 ,…,CmtL ),然後將該當訊息Cmt’發送至前記驗證者;前記回答送訊部,係將前記回答Rspi ,連同即使前記驗證者利用該當回答Rspi 也無法復原之前記訊息Cmti 的要素,予以發送。
又,亦可為,前記金鑰保持部,係在前記L個祕密金鑰si 當中,不保存其中1把祕密金鑰si0 (1≦i0 ≦L)。此時,前記對話協定執行部,係基於偽證演算法,而執行在前記對話協定之中所被執行的關於前記祕密金鑰si0 的處理。
又,為了解決上述課題,若依據本揭露之另一觀點,則可提供一種認證裝置,其係具備:金鑰保持部,係針對L個祕密金鑰si (i=1~L)、n次多變數多項式之組合F(n≧2),將滿足yi =F(si )的L個公開金鑰yi 加以保持;和挑戰收訊部,係從驗證者,接收Q組(Q≧2)之L個挑戰Chi (j) (j=1~Q);和挑戰選擇部,係從已被前記挑戰收訊部所接收的Q組之L個挑戰Chi (j) 之中,任意選擇出1組之L個挑戰Chi (j) ;和回答生成部,係使用前記祕密金鑰si ,生成對於已被前記挑戰選擇部所選擇之L個挑戰Chi (j) 之各者的L個回答Rspi ;和回答送訊部,係將已被前記回答生成部所生成的L個回答Rspi ,發送至前記驗證者。
又,前記對話協定執行部係亦可含有:訊息送訊部,係對前記驗證者,發送L個前記祕密金鑰si 所分別對應之訊息Cmti 。此時,前記挑戰收訊部,係將隨應於已被前記訊息送訊部所發送之各訊息Cmti ,而被前記驗證者從k種(k≧2)驗證模態之中所選擇出來的驗證模態加以表示的挑戰Chi (j) ,予以接收。
又,亦可構成為,若前記訊息Cmti 為Cmti =(ci,1 ,…,ci,N ),則前記訊息送訊部係使用單向性函數H而算出新的訊息Cmt’=H(Cmt1 ,…,CmtL ),然後將該當訊息Cmt’發送至前記驗證者;前記回答送訊部,係將前記回答Rspi ,連同即使前記驗證者利用該當回答Rspi 也無法復原之前記訊息Cmti 的要素,予以發送。又,為了解決上述課題,若依據本揭露之另一觀點,則可提供一種認證方法,其係含有:金鑰生成步驟,係針對L個(L≧2)祕密金鑰si (i=1~L)、及n次多變數多項式之組合F(n≧2),生成滿足yi =F(si )的L個公開金鑰yi ;和對話協定執行步驟,係與驗證者之間執行對話協定,用來證明已知(L-1)個滿足yi =F(si )之祕密金鑰si ;在前記對話協定執行步驟中,係在與前記驗證者之間執行前記對話協定之際,不讓該當驗證者獲知是使用了哪個祕密金鑰si
又,為了解決上述課題,若依據本揭露之另一觀點,則可提供一種程式,其係用來使金鑰保持機能,係針對L個(L≧2)祕密金鑰si (i=1~L)、及n次多變數多項式之組合F(n≧2),將滿足yi =F(si )的L個公開金鑰yi 加以保持;和對話協定執行機能,係與驗證者之間執行對話協定,用來證明已知(L-1)個滿足yi =F(si )之祕密金鑰si ;被電腦實現所需的程式,其中,前記對話協定執行機能,係在與前記驗證者之間執行前記對話協定之際,不讓該當驗證者獲知是使用了哪個祕密金鑰si
又,為了解決上述課題,若依據本揭露之另一觀點,則可提供一種認證方法,其係含有:金鑰生成步驟,係針對L個祕密金鑰si (i=1~L)、n次多變數多項式之組合F(n≧2),生成滿足yi =F(si )的L個公開金鑰yi ;和挑戰收訊步驟,係從驗證者,接收Q組(Q≧2)之L個挑戰Chi (j) (j=1~Q);和挑戰選擇步驟,係從已被前記挑戰收訊步驟所接收的Q組之L個挑戰Chi (j) 之中,任意選擇出1組之L個挑戰Chi (j) ;和回答生成步驟,係使用前記祕密金鑰si ,生成對於已被前記挑戰選擇步驟所選擇之L個挑戰Chi (j) 之各者的L個回答Rspi ;和回答送訊步驟,係將已被前記回答生成步驟所生成的L個回答Rspi ,發送至前記驗證者。
又,為了解決上述課題,若依據本揭露之另一觀點,則可提供一種程式,其係用來使電腦發揮機能而成為:金鑰保持機能,係針對L個祕密金鑰si (i=1~L)、n次多變數多項式之組合F(n≧2),將滿足yi =F(si )的L個公開金鑰yi 加以保持;和挑戰收訊機能,係從驗證者,接收Q組(Q≧2)之L個挑戰Chi (j) (j=1~Q);和挑戰選擇機能,係從已被前記挑戰收訊機能所接收的Q組之L個挑戰Chi (j) 之中,任意選擇出1組之L個挑戰Chi (j) ;和回答生成機能,係使用前記祕密金鑰si ,生成對於已被前記挑戰選擇機能所選擇之L個挑戰Chi (j) 之各者的L個回答Rspi ;和回答送訊機能,係將已被前記回答生成機能所生成的L個回答Rspi ,發送至前記驗證者。又,為了解決上述課題,若依據本揭露之另一觀點,則可提供一種記錄著上記程式的電腦可讀取之記錄媒體。
如以上之說明,若依據本揭露,則即使將對話協定予以並列式反覆執行,仍可保證對主動性攻撃的安全性等級。
以下,一邊參照添附圖面,一邊詳細說明本揭露的理想實施形態。此外,於本說明書及圖面中,對於實質上具有相同機能構成的構成要素,係標示同一符號以省略重複說明。
[關於說明的流程]此處,簡單說明以下所記載之關於本揭露之實施形態的說明流程。首先,一面參照圖1,一面說明公開金鑰認證方式的演算法構成。接下來,一面參照圖2,一面說明n回合之公開金鑰認證方式。接下來,一面參照圖3,一面說明SSH10a公開金鑰認證方式的對話協定。接下來,一面參照圖4,一面說明SSH10b公開金鑰認證方式的對話協定。接下來,一面參照圖5、圖6,一面說明對話協定的反覆構成。在此之中,簡單說明對主動性攻撃的安全性等級。
接下來,一面參照圖7,一面說明針對SSH10a公開金鑰認證方式之對話協定的偽證演算法。接下來,一面參照圖8,一面說明針對SSH10b公開金鑰認證方式之對話協定的偽證演算法。接下來,一面參照圖9~圖12,一面說明將本揭露之第1實施形態所述之手法(本手法#1),適用於SSH10a公開金鑰認證方式之對話協定的方法。接下來,一面參照圖13、圖14,一面說明將本手法#1適用於SSH10b公開金鑰認證方式之對話協定的方法。
接下來,一面參照圖15、圖16,一面說明將本揭露之第2實施形態所述之手法(本手法#2),適用於SSH10a公開金鑰認證方式之對話協定的方法。接下來,一面參照圖17、圖18,一面說明將本手法#2適用於SSH10b公開金鑰認證方式之對話協定的方法。接下來,一面參照圖19、圖20,一面說明本實施形態所述之對話協定中的通訊量之削減方法。接下來,一面參照圖21,一面說明可實現本實施形態所述之對話協定的資訊處理裝置的硬體構成例。最後,將同實施形態的技術思想作一總結,簡單說明可由該當技術思想所獲得之作用效果。
(說明項目)
1:導論
1-1:公開金鑰認證方式的演算法構成
1-2:關於n回合之公開金鑰認證方式
1-3:SSH10a公開金鑰認證方式的對話協定
1-4:SSH10b公開金鑰認證方式的對話協定
1-5:對話協定的反覆構成
1-6:針對SSH10a公開金鑰認證方式的偽證演算法
1-7:針對SSH10b公開金鑰認證方式的偽證演算法
2:第1實施形態(本手法#1)
2-1:概要
2-2:對SSH10a公開金鑰認證方式之適用
2-3:對SSH10a公開金鑰認證方式之適用(變形例1)
2-4:對SSH10a公開金鑰認證方式之適用(變形例2)
2-5:對SSH10a公開金鑰認證方式之適用(變形例3)
2-6:對SSH10b公開金鑰認證方式之適用
2-7:對SSH10b公開金鑰認證方式之適用(變形例)
3:第2實施形態(本手法#2)
3-1:概要
3-2:對SSH10a公開金鑰認證方式之適用
3-3:對SSH10a公開金鑰認證方式之適用(變形例)
3-4:對SSH10b公開金鑰認證方式之適用
3-5:對SSH10b公開金鑰認證方式之適用(變形例)
4:補充
4-1:關於方式的擴充
4-2:關於非對話型之公開金鑰認證方式
4-3:關於通訊量之削減方法
5:硬體構成
6:總結
<1:導論>
首先,在詳細說明本揭露所述之實施形態以前,先來簡單說明一般的公開金鑰認證方式的演算法構成、及n回合之公開金鑰認證方式。
[1-1:公開金鑰認證方式的演算法構成]首先,一面參照圖1,一面說明公開金鑰認證方式的演算法構成。圖1係用來說明公開金鑰認證方式之演算法構成的說明圖。
(概要)所謂公開金鑰認證方式,係為某人(證明者)利用公開金鑰pk及祕密金鑰sk,讓他人(驗證者)相信這是本人所需的認證方式。例如,證明者A的公開金鑰pkA ,係被公開給驗證者。另一方面,證明者A的祕密金鑰skA ,係被證明者祕密地管理。在公開金鑰認證方式中,知道公開金鑰pkA 所對應之祕密金鑰skA 的人,是只有證明者A本人。
當證明者A想要對驗證者B證明這是本人的時候,證明者A係只要與驗證者B執行對話協定,證明自己知道公開金鑰pkA 所對應之祕密金鑰skA 即可。然後,當藉由對話協定,證明者A知道祕密金鑰skA 這件事情是被驗證者B所證明時,就證明了證明者A的正當性(其係本人)。此外,要確保公開金鑰認證方式的安全性,需要以下所示的2個條件。第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的主體,係為資訊處理裝置。這些資訊處理裝置的硬體構成,係例如圖21所示。亦即,金鑰生成演算法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)。
[數1]
(sk ,pk )←Gen (1 λ )…(1)
(證明者演算法P)證明者演算法P,係被證明者所利用。然後,證明者演算法P係為,用來證明保有對應於公開金鑰pk之祕密金鑰sk此事的演算法。證明者演算法P係被定義成,將證明者的祕密金鑰sk與公開金鑰pk予以輸入,執行與驗證者之對話協定的演算法。
(驗證者演算法V)驗證者演算法V,係被驗證者所利用。然後,驗證者演算法V係為,在對話協定之中,驗證證明者是否保有對應於公開金鑰pk之祕密金鑰sk的演算法。驗證者演算法V係被定義成,將證明者的公開金鑰pk予以輸入,與證明者之間執行對話協定之後,輸出0或1(1bit)的演算法。此外,輸出0時係視為證明者為不當,輸出1時係視為證明者為正當。
(補充)如上記,公開金鑰認證方式,係為了確保安全性,而要求必須滿足健全性與零知識性這2個條件。可是,為了讓證明者證明自己保有祕密金鑰sk,必須由證明者執行依存於祕密金鑰sk的程序,將其結果通知給驗證者,讓驗證者基於該通知內容而執行驗證。依存於祕密金鑰sk的程序之執行,係在擔保健全性上為必須。另一方面,即使將該程序之結果通知給驗證者,也必須要使祕密金鑰sk的資訊完全不會洩漏給驗證者。因此,上記的金鑰生成演算法Gen、證明者演算法P、驗證者演算法V係被設計成滿足這些要件。以上說明了公開金鑰認證方式的演算法構成。
[1-2:關於n回合之公開金鑰認證方式]接著,一面參照圖2,一面說明n回合之公開金鑰認證方式。圖2係用來說明n回合之公開金鑰認證方式的說明圖。
如上記,公開金鑰認證方式,係在對話協定之中,向驗證者證明證明者保有對應於公開金鑰pk之祕密金鑰sk之事實的驗證方式。又,為了擔保公開金鑰認證方式的安全性,必須要滿足滿足健全性與零知識性這2個條件。因此,在對話協定之中,如圖2所示,證明者與驗證者雙方分別執行處理,同時在證明者與驗證者之間進行n次的資訊交換。在n回合之公開金鑰認證方式的情況下,使用證明者演算法P而由證明者執行處理(Step.1),資訊T1 就被發送至驗證者。接下來,使用驗證者演算法V而由驗證者執行處理(Step.2),資訊T2 就被發送至證明者。同樣地執行處理(Step.3)~(Step.n),資訊T3 ,…,Tn 就被發送,而執行處理(Step.n+1)。如此,基於資訊是被收送n次之對話協定的公開金鑰認證方式,稱作「n回合」的公開金鑰認證方式。
以上說明了n回合之公開金鑰認證方式。
[1-3:SSH10a公開金鑰認證方式的對話協定]接著,一面參照圖3,一面說明SSH10a公開金鑰認證方式的對話協定。圖3係用來說明SSH10a公開金鑰認證方式之對話協定的說明圖。此外,所謂SSH10a公開金鑰認證方式,係為基於本案發明者(作本、白井、樋渡)所想出的多次多變數聯立方程式的求解問題的公開金鑰認證方式之一。又,該SSH10a公開金鑰認證方式,係為3回合之公開金鑰認證方式之一例。
此外,所謂多次多變數聯立方程式的求解問題,係指當給定了環K上的m道之n變數多項式f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和向量yKm 時,求出滿足(f1 (s1 ,…,sn ),…,fm (s1 ,…,sn ))=y的向量(s1 ,…,sn )Kn 之問題。2次以上的多變數聯立方程式的求解問題,係被稱作NP困難問題,是屬於非常難以解開的問題之分類。然後,SSH10a公開金鑰認證方式的對話協定,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。以下說明各演算法之內容。
(金鑰生成演算法Gen)首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項式f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和向量s=(s1 ,…,sn )Kn 。接著,金鑰生成演算法Gen係計算y=(y1 ,…,ym )←(f1 (s),…,fm (s))。然後,金鑰生成演算法Gen係將(f1 ,…,fm ,y)設定成公開金鑰pk,將s'設定成祕密金鑰。此外,以下是將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。
(證明者演算法P、驗證者演算法V)接著,一面參照圖3,一面說明證明者演算法P、驗證者演算法V之構成。SSH10a公開金鑰認證方式的對話協定,係使「證明者知道滿足y=F(s)的s」這件事,在完全不對驗證者洩漏s之資訊的情況下,讓驗證者證明之。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。此處,先來說明2次多項式的性質。
m道之n變數2次多項式的組(f1 (x),…,fm (x)),係可表現如下記式(2)。其中,x=(x1 ,…,xn )係為表示n個變數的向量。又,A1 ,…,Am 係為n×n矩陣。再者,b1 ,…,bm 係為n×1向量。然後,c係為m×1向量。
[數2]
若使用該表現,則多項式的組F,係可表現如下記式(3)及式(4)。此表現的成立,係可從下記式(5)而容易理解。
[數3]
F (x 1 +x 2 )=F (x 1 )+F (x 2 )+F b (x 1 ,x 2 )-c …(3)
如此,將F(x1 +x2 )分成依存於x1 之部分、依存於x2 之部分、依存於x1 ,x2 雙方之部分的3者時,依存於x1 與x2 雙方之部分Fb (x1 ,x2 ),係對x1 ,x2 而呈雙線性映射。此外,以下說明的SSH10a公開金鑰認證方式,係利用如上記的2次多項式之性質。
再次回到SSH10a公開金鑰認證方式之對話協定(參照圖3)中的證明者演算法P、驗證者演算法V之說明。
Step.1:首先,證明者演算法P,係任意選擇一數w。接著,證明者演算法P係對擬似亂數產生器G1 適用數w而生成向量rKn 與數w’。亦即,證明者演算法P係計算(r,w’)←G1 (w)。接著,證明者演算法P係對擬似亂數產生器G2 適用數w’而生成2個向量tKn 、eKm 。亦即,證明者演算法P係計算(t,e)←G2 (w’)。接著,證明者演算法P係計算z←s-r。該計算係相當於將祕密金鑰s以向量r進行遮蔽的操作。然後,證明者演算法P係計算t,←r+t。接著,證明者演算法P係計算e’←F(r)-c+e。接著,證明者演算法P係基於上記式(3)及(4)所示之函數Fb 之定義而算出Fb (z,t),生成Fb (z,t)+e與z的雜湊值c1 。亦即,證明者演算法P係計算c1 ←H1 (Fb (z,t)+e,z)。又,證明者演算法P係生成數w’的雜湊值c2 。亦即,證明者演算法P係計算c2 ←H2 (w’)。然後,證明者演算法P係生成2個向量t’與e’的雜湊值c3 。亦即,證明者演算法P係計算c3 ←H3 (t’,e’)。接著,證明者演算法P係設定St←(F,y,s,r,t,e,z,t’,e’)及Cmt←(c1 ,c2 ,c3 )。然後,Step.1所生成的Cmt,係被送往驗證者(驗證者演算法V)。此外,上記的H1 (…)、H2 (…)、H3 (…),係為雜湊函數。又,將Step.1中的上記操作,表現成(Cmt;St)←Pa,1 (F,y,s;r,t,e)。
Step.2:收到Cmt的驗證者演算法V,係在3個驗證模態之中,選擇要利用哪個驗證模態。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰Ch R {0,1,2},送往證明者(證明者演算法P)。
Step.3:收到Ch的證明者演算法P,係隨著從驗證者演算法V所收到的挑戰Ch而生成要回送給驗證者演算法V的回答Rsp。若是Ch=0,則證明者演算法P係生成回答Rsp←(r,t,e)。又,若是Ch=1,則證明者演算法P係生成回答Rsp=(z,t,e)。然後,若是Ch=2,則證明者演算法P係生成回答Rsp=(z,t’,e’)。此外,將Step.3中的上記操作,表現成Rsp←Pa,2 (Ch;St)。又,Step.3所生成的Rsp,係被送往驗證者(驗證者演算法V)。
Step.4:收到Rsp的驗證者演算法V,係對所收到的Rsp,執行以下任一驗證。若Ch=0,則驗證者演算法V係執行(r”,t”,e”)←Rsp。接著,驗證者演算法V係驗證c2 =H2 (t”,e”)及c3 =H3 (r”+t”,F(r”)-c+e”)是否成立。若Ch=1,則驗證者演算法V係執行(z”,t”,e”)←Rsp。接著,驗證者演算法V係驗證c1 =H1 (Fb (z”,t”)+e”,z”)及c2 =H2 (t”,e”)是否成立。若Ch=2,則驗證者演算法V係執行(z”,t''',e''')←Rsp。接著,驗證者演算法V係驗證c1 =H1 (F(z”)+Fb (z”,t''')+e'''-y,z”)及c3 =H3 (t''',e''')是否成立。此外,將Step.4中的驗證操作,表現成0/1←Deca (F,y;Cmt,Ch,Rsp)。於該操作中,輸出1係表示驗證成功,輸出0係表示驗證失敗。
以上說明了SSH10a公開金鑰認證方式中的證明者演算法P及驗證者演算法V的處理內容。此外,在上記方式中,雖然是使用雜湊函數H1 ,H2 ,H3 來計算c1 ,c2 ,c3 ,但亦可取代雜湊函數H1 ,H2 ,H3 改用承諾函數COM。又,如本案所有利用雜湊函數的地方,都亦可置換成承諾函數COM。承諾函數COM,係將字串S與亂數ρ之2者作為引數的函數。作為承諾函數之例子,係有由Shai Halevi與Silvio Micali在國際會議CRYPTO1996所發表的方式。在使用承諾函數的時候,在計算c1 ,c2 ,c3 之前準備亂數ρ123 ,取代雜湊函數H1 (‧),H2 (‧),H3 (‧)之適用,改為適用承諾函數COM(‧,ρ1 ),COM(‧,ρ2 ),COM(‧,ρ3)而生成c1 ,c2 ,c3 。又,ρi 係被含在回答中而從證明者演算法P送往驗證者演算法V。
[1-4:SSH10b公開金鑰認證方式的對話協定]接著,一面參照圖4,一面說明SSH10b公開金鑰認證方式的對話協定。圖4係用來說明SSH10b公開金鑰認證方式之對話協定的說明圖。此外,所謂SSH10b公開金鑰認證方式,係為基於本案發明者(作本、白井、樋渡)所想出的多次多變數聯立方程式的求解問題的公開金鑰認證方式之一。又,該SSH10b公開金鑰認證方式,係為5回合之公開金鑰認證方式之一例。SSH10b公開金鑰認證方式的對話協定,係和SSH10a公開金鑰認證方式的對話協定同樣地,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。以下說明各演算法之內容。
(金鑰生成演算法Gen)首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項式f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和向量s=(s1 ,…,sn )Kn 。接著,金鑰生成演算法Gen係計算y=(y1 ,…,ym )←(f1 (s),…,fm (s))。然後,金鑰生成演算法Gen係將(f1 ,…,fm ,y)設定成公開金鑰pk,將s設定成祕密金鑰。此外,以下是將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。
(證明者演算法P、驗證者演算法V)接著,一面參照圖4,一面說明證明者演算法P、驗證者演算法V之構成。SSH10b公開金鑰認證方式的對話協定,係使「證明者知道滿足y=F(s)的s」這件事,在完全不對驗證者洩漏s之資訊的情況下,對驗證者做證明。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。SSH10b公開金鑰認證方式的對話協定,係由圖4所示的Step.1~Step.6之處理步驟所構成。以下,說明各步驟之處理。
Step.1:首先,證明者演算法P,係任意選擇一數w。接著,證明者演算法P係對擬似亂數產生器G適用數w而生成向量rKn 、tKn 、eKm 。亦即,證明者演算法P係計算(r,t,e)←G(w)。接著,證明者演算法P係計算z←s-r。該計算係相當於將祕密金鑰s以向量r進行遮蔽的操作。接著,證明者演算法P係生成Fb (z,t)+e與z的雜湊值c1 。亦即,證明者演算法P係計算c1 ←H1 (Fb (z,t)+e ,z)。又,證明者演算法P係生成向量r、t、e的雜湊值c2 。亦即,證明者演算法P係計算c2 ←H2 (r,t,e)。此外,上記的H1 (…)、H2 (…),係為雜湊函數。
接著,證明者演算法P係設定StA ←(F,y,s,r,t,e,z)及CmtA ←(c1 ,c2 )。然後,Step.1所生成的CmtA ,係被送往驗證者(驗證者演算法V)。此外,上記的H1 (…)、H2 (…),係為雜湊函數。又,將Step.1中的上記操作,表現成(CmtA ;StA )←Pb,1 (F,y,s;r,t,e)。
Step.2:收到CmtA 的驗證者演算法V,係根據存在q種的環K而選擇出1個亂數α。然後,驗證者演算法V係將挑戰ChA =α,送往證明者(證明者演算法P)。Step.3:收到ChA 的證明者演算法P,係計算t’←αr+t。然後,證明者演算法P係計算e’←α(F(r)-c)+e。然後,證明者演算法P係設定StB ←(StA ,ChA ,t’,e’)及CmtB ←(t’,e’)。又,證明者演算法P係將CmtB 送往驗證者(驗證者演算法V)。此外,將Step.3中的上記操作,表現成(CmtB ;StB )←Pb,2 (ChA ;StA )。
Step.4:收到CmtB 的驗證者演算法V,係在2個驗證模態之中,選擇要利用哪個驗證模態。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰ChB R {0,1},送往證明者(證明者演算法P)。
Step.5:收到ChB 的證明者演算法P,係隨著從驗證者演算法V所收到的挑戰ChB ,而將要回送給驗證者(驗證者演算法V)的回答Rsp,生成如下。若ChB =0,則證明者演算法P係設定成Rsp←r。若ChB =1,則證明者演算法P係設定成Rsp←z。然後,證明者演算法P係將回答Rsp送往驗證者(驗證者演算法V)。此外,將Step.5中的上記操作,表現成Rsp←Pb,3 (ChB ;StB )。Step.6:收到回答Rsp的驗證者演算法V,係利用從證明者(證明者演算法P)所收到的回答Rsp,執行以下的驗證處理。
若ChB =0,則驗證者演算法V係以r”←Rsp的方式,驗證c2 =H2 (r”,t’-αr”,e’-α(F(r”)-c))是否成立。若ChB =1,則驗證者演算法V係以z”←Rsp的方式,驗證c1 =H1 (α(F(z”)-y)+Fb (z”,t’)+e’,z”)是否成立。
此外,將Step.6中的驗證操作,表現成0/1←Decb (F,y;CmtA ,ChA ,CmtB ,ChB ,Rsp)。於該操作中,輸出1係表示驗證成功,輸出0係表示驗證失敗。以上說明了SSH10b公開金鑰認證方式中的證明者演算法P及驗證者演算法V的處理內容。此外,在上記方式中,雖然是使用雜湊函數H1 ,H2 來計算c1 ,c2 ,但亦可取代雜湊函數H1 ,H2 改用承諾函數COM。
[1-5:對話協定的反覆構成]再來,若適用上記的SSH10a公開金鑰認證方式的對話協定,則可將偽證成功之機率抑制成2/3以下。因此,若將該對話協定執行2次,則可將偽證成功之機率抑制成(2/3)2 以下。同樣地,若該對話協定執行N次,則偽證成功之機率係為(2/3)N ,若N是非常大的數(例如N=140),則偽證成功之機率係小到可以忽視之程度。同樣地,若適用上記的SSH10b公開金鑰認證方式的對話協定,則可將偽證成功之機率抑制成(1/2+1/2q)以下。因此,若將該對話協定執行2次,則可將偽證成功之機率抑制成(1/2+1/2q)2 以下。同樣地,若該對話協定執行N次,則偽證成功之機率係為(1/2+1/2q)N ,若N是非常大的數(例如N=80),則偽證成功之機率係小到可以忽視之程度。
此外,不限於SSH10a公開金鑰認證方式、SSH10b公開金鑰認證方式,上記非專利文獻1~3等所揭露之公開金鑰認證方式中也是同樣地,若對話協定執行1次時的偽證成功機率並非足夠小的情況下,則必須要反覆執行對話協定以降低偽證成功機率。反覆執行對話協定的方法,係有圖5所示的直列式反覆構成、和圖6所示的並列式反覆構成。
直列式反覆構成,係如圖5所示,將對話協定執行1次,第1次結束後執行第2次、第2次結束後執行第3次的這種方式,逐次執行對話協定的方法。另一方面,並列式反覆構成,係如圖6所示,是將N次份的第1回合之訊息m1,1 ,…,mN,1 予以同時發送,接著將N次份的第2回合之訊息m1,2 ,…,mN,2 予以同時發送,接著將N次份的第3回合之訊息m1,3 ,…,mN,3 予以同時發送的方式,在各回合中將N次份的訊息予以同時發送的方法。再者,上記非專利文獻1~3所揭露之公開金鑰認證方式、SSH10a公開金鑰認證方式、及SSH10b公開金鑰認證方式,係保證了對被動性攻撃的安全性等級。可是,這些公開金鑰認證方式,在進行了並列式反覆構成的情況下,是否能夠確實保證對主動性攻撃的安全性等級,則無從得知。這些公開金鑰認證方式,係使用1組金鑰配對(公開金鑰y、祕密金鑰s)而將「針對y可知y=F(s)的s」,當作證明者對驗證者進行證明的方式。
因此,在進行被驗證所受理之對話時,「進行對話之證明者是使用了s」此一資訊,是無法避免不被驗證者所知道。又,這些方式中所用的F,係未保證碰撞困難性。其結果為,這些公開金鑰認證方式,在進行了並列式反覆構成的情況下,是否能夠確實保證對主動性攻撃的安全性等級,則無從得知。尤其是,將這些公開金鑰認證方式以上記的並列式反覆構成來實施時,用來保證對主動性攻撃的安全性等級所需的手法,係沒有人知道。
於是,本案發明人係想出了,在將這些公開金鑰認證方式以上記的並列式反覆構成來實施之際,能夠保證對主動性攻撃的安全性等級的機制。關於此機制(本手法#1、#2),在後段中,舉出SSH10a公開金鑰認證方式、SSH10b公開金鑰認證方式為例來詳細說明。
[1-6:針對SSH10a公開金鑰認證方式的偽證演算法]此處,一面參照圖7,一面試圖考慮在SSH10a公開金鑰認證方式(1次的對話協定)中以2/3之機率成功的偽證演算法。圖7係用來說明在SSH10a公開金鑰認證方式(1次的對話協定)中以2/3之機率成功的偽證演算法的說明圖。此偽證演算法,係偽證者對驗證者「假裝知道滿足y=F(s)之s」的演算法。但是,即使適用該偽證演算法,偽證仍會以1/3之機率失敗。
Step.1:首先,偽證者(偽證演算法)係生成向量s,r,tKn 、eKm 。接著,偽證演算法係任意地選擇Ch*{0,1,2}。該Ch*,係對應於偽證演算法所無法回答的驗證模態。此外,此處所用的s並非正當的祕密金鑰。可是,證明者(證明者演算法P),係若為Ch*以外的驗證模態,則可不利用正當的祕密金鑰就能正當地回答。接著,偽證演算法係計算z←s-r、t’←r+t。又,偽證演算法係為,若Ch*=0,則計算e’←y-F(s)+F(r)-c+e。另一方面,若Ch*=1,2,則偽證演算法係計算e’←F(r)-c+e。接著,偽證演算法係為,若Ch*=0,2,則計算c1 ←H1 (Fb (z,t)+e,z)。另一方面,若Ch*=1,則偽證演算法係計算c1 ←H1 (F(z)+Fb (z,t’)+e’-y,z)。接著,偽證演算法係計算c2 ←H2 (t,e)、c3 ←H3 (t’,e’)。然後,偽證演算法係設定St←(Ch*,F,y,s,r,t,e,z,t’,e’)及Cmt←(c1 ,c2 ,c3 )。接著,偽證演算法係將Cmt送往驗證者(驗證者演算法V)。此外,將Step.1中的上記操作,表現成(Cmt;St)←Ma,1 (F,y;Ch*,s,r,t,e)。
Step.2:收到Cmt的驗證者演算法V,係在3個驗證模態之中,選擇要利用哪個驗證模態。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰Ch{0,1,2},送往偽證者(偽證演算法)。
Step.3:收到Ch的偽證演算法,係隨著從驗證者演算法V所收到的挑戰Ch而生成要回送給驗證者演算法V的回答Rsp。此外,若Ch=Ch*,則偽證演算法係輸出錯誤然後結束對話協定。若Ch≠Ch*且Ch=0,則偽證演算法係生成回答Rsp←(r,t,e)。又,若是Ch=1,則偽證演算法係生成回答Rsp=(z,t,e)。然後,若是Ch=2,則偽證演算法係生成回答Rsp=(z,t’,e’)。此外,將Step.3中的上記操作,表現成Rsp←Ma,2 (Ch;St)。又,Step.3所生成的Rsp,係被送往驗證者(驗證者演算法V)。
Step.4:若Ch≠Ch*,則回答Rsp係被送至驗證者演算法V,藉由驗證者演算法V而實施驗證處理0/1←Deca (F,y;Cmt,Ch,Rsp)。以上說明了針對SSH10a公開金鑰認證方式的偽證演算法。如此,即使任意選擇s,仍可將2/3機率(Ch≠Ch*的機率)通過驗證的Rsp,回送給驗證者。因此,在1次的對話協定中,偽證會有2/3機率成功。於是,適用之前所說明的反覆構成。
[1-7:針對SSH10b公開金鑰認證方式的偽證演算法]接著,一面參照圖8,一面試圖考慮在SSH10b公開金鑰認證方式(1次的對話協定)中以1/2之機率成功的偽證演算法。圖8係用來說明在SSH10b公開金鑰認證方式(1次的對話協定)中以1/2之機率成功的偽證演算法的說明圖。此偽證演算法,係偽證者對驗證者「假裝知道滿足y=F(s)之s」的演算法。但是,即使適用該偽證演算法,偽證仍會以1/2之機率失敗。
Step.1:首先,偽證演算法係生成向量s,r,tKn 、eKm 。接著,偽證演算法係選擇Ch*B {0,1}。該Ch*B 係對應於,針對i0 之數列而無法由偽證者(偽證演算法)所回答的驗證模態。此外,此處所用的si0 雖然不是正當的祕密金鑰,但偽證演算法係對Ch*B 以外的驗證模態,可以不利用正當的祕密金鑰就能正確回答。接著,偽證演算法係計算z←s-r。接著,偽證演算法係計算c1 ←H1 (Fb (z,t)+e,z)及c2 ←H2 (r,t,e)。接著,偽證演算法係設定StA ←(F,y,Ch*B ,s,r,t,e,z)及CmtA ←(c1 ,c2 )。然後,Step.1所生成的CmtA ,係被送往驗證者(驗證者演算法V)。此外,上記的H1 (…)、H2 (…),係為雜湊函數。又,將Step.1中的上記操作,表現成(CmtA ;StA)←Mb,1 (F,y;Ch*B ,s,r,t,e)。
Step.2:收到CmtA 的驗證者演算法V,係根據存在q種的環K而選擇出1個亂數α。然後,驗證者演算法V係將挑戰ChA =α,送往偽證者(偽證演算法)。
Step.3:收到ChA 的偽證演算法,係計算t’←αr+t。然後,偽證演算法係為,若Ch*B =1,則計算e’←α(F(r)-c)+e。另一方面,若Ch*B =0,則偽證演算法係計算e’←α(y-F(s)+F(r)-c)+e。然後,偽證演算法係設定StB ←(StA ,ChA ,t’,e’)及CmtB ←(t’,e’)。又,偽證演算法係將CmtB 送往驗證者(驗證者演算法V)。此外,將Step.3中的上記操作,表現成(C mtB ;StB )←Mb,2 (ChA ;StA )。Step.4:收到CmtB 的驗證者演算法V,係在2個驗證模態之中,選擇要利用哪個驗證模態。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰ChB R {0,1},送往偽證者(偽證演算法)。
Step.5:收到ChB 的偽證演算法,係若ChB =Ch* B ,則偽證演算法係輸出錯誤然後結束對話協定。若ChB ≠Ch* B ,則偽證演算法係隨著從驗證者演算法V所收到的挑戰ChB ,而將要回送給驗證者(驗證者演算法V)的回答Rsp,生成如下。若ChB =0,則偽證演算法係設定成Rsp←r。若ChB =1,則偽證演算法係設定成Rsp←z。然後,偽證演算法係將回答Rsp送往驗證者(驗證者演算法V)。此外,將Step.5中的上記操作,表現成Rsp←Mb,3 (ChB ;StB )。
Step.6:若ChB ≠Ch* B ,則回答Rsp係被送至驗證者演算法V,藉由驗證者演算法V而實施驗證處理0/1←Decb (F,y;CmtA ,ChA ,CmtB ,ChB ,Rsp)。以上說明了針對SSH10b公開金鑰認證方式的偽證演算法。如此,即使任意選擇s,仍可將1/2機率(ChB ≠Ch*B 的機率)通過驗證的Rsp,回送給驗證者。因此,在1次的對話協定中,偽證會有1/2機率成功。於是,適用之前所說明的反覆構成。
(補充)目前為止係說明了SSH10a公開金鑰認證方式、SSH10b公開金鑰認證方式、其偽證演算法、及對話協定的反覆構成。這些公開金鑰認證方式,係使用1組金鑰配對(公開金鑰y、祕密金鑰s)而將「針對y可知y=F(s)的s」,當作證明者對驗證者進行證明的方式。因此,在進行被驗證所受理之對話時,「進行驗證之證明者是使用了s」此一資訊,是無法避免不被驗證者所知道。又,這些方式中所用的F,係沒有保證碰撞困難性。其結果為,這些公開金鑰認證方式,在進行了並列式反覆構成的情況下,是否能夠確實保證對主動性攻撃的安全性等級,則無從得知。
於是,本案發明人係想出了,在將這些公開金鑰認證方式以上記的並列式反覆構成來實施之際,能夠保證對主動性攻撃的安全性等級的機制。以下,關於此機制,舉出具體例來詳細說明。
<2:第1實施形態(本手法#1)>首先說明本揭露的第1實施形態(以下稱作本手法#1)。
[2-1:概要]本手法#1係適用了,即使對SSH10a公開金鑰認證方式、SSH10b公開金鑰認證方式,進行了並列式反覆構成的情況下,仍可保證對主動性攻撃的安全性等級的機制。雖然反覆,但無從得知對主動性攻撃的安全性等級是否受到保證的理由是,只要所利用的函數F的碰撞困難性沒受到保證,就無法避免「進行驗證的證明者曾用過s」此一資訊被驗證者所獲知。因此,在對話協定之中,若「進行驗證的證明者曾用過s」此一資訊不讓驗證者知道,則可保證對主動性攻撃的安全性等級。於是,本案發明人係想出了將祕密金鑰s、公開金鑰y予以多重化的方式。此方式係把L個(L≧2)的s1 ,…,sL Kn 當作祕密金鑰,把對於m道之n變數多次多項式F(x)=(f1 (x),…,fm (x))而滿足(y1 ,…,yL )=(F(s1 ),…,F(sL ))的y1 ,…,yL Km ,當作公開金鑰。再者,此方式係為,將「i=1,…,L當中,針對L-1個的i知道使yi =F(si )成立的si 」這件事,是不知道將哪個si 使用於對話協定之中,就加以證明的方式。若適用此方是,則在對話協定之中關於「曾利用哪個si 」之資訊係沒有洩漏,因此可保證對主動性攻撃的安全性等級。
本手法#1之方式,係驗證者針對i=1,…,L而將挑戰Ch1 ,…,ChL (驗證模態)對證明者發送,收到挑戰Ch1 ,…,ChL 的證明者係選擇L-1個挑戰Chi 而進行回答。若採用此方式,則知道s1 ,…,sL 的證明者係可針對L個所有的挑戰Chi 進行回答,但是不知道s1 ,…,sL 的偽證者就會以某種程度的機率導致偽證失敗。又,由於證明者係只要對L-1個挑戰Chi 進行回答即可,因此針對某1個挑戰Chi 係可不使用si 就可使認證成立。亦即,在對話協定之中,驗證者係不知道某個si 是否有被使用。
[2-2:對SSH10a公開金鑰認證方式之適用]首先,一面參照圖9,一面說明將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定。圖9係用來說明,將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定的說明圖。此對話協定,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。以下說明各演算法之內容。
(金鑰生成演算法Gen)首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和L個向量s1 ,…,sL Kn 。此外,將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。接著,金鑰生成演算法Gen係計算y1 =F(s1 ),…,yL =F(sL )。然後,金鑰生成演算法Gen係將(F,y1 ,…,yL )設定成公開金鑰pk,將(s1 ,…,sL )設定成祕密金鑰。
(證明者演算法P、驗證者演算法V)接著,一面參照圖9,一面說明證明者演算法P、驗證者演算法V之構成。本手法#1的對話協定,係使「證明者知道L-1個滿足yi =F(si )的si 」這件事,在完全不對驗證者洩漏「哪個si 是否曾經被使用過」此一資訊的情況下,對驗證者做證明。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。本手法#1的對話協定,係由圖9所示的Step.1~Step.4之處理步驟所構成。以下,說明各步驟之處理。
Step.1:首先,證明者演算法P係針對i=1,…,L,生成向量ri ,ti Kn 、和向量ei Km 。接著,證明者演算法P係計算(Cmti ;Sti )←Pa,1 (F,yi ,si ;ri ,ti ,ei )。然後,證明者演算法P係將Cmt1 ,…,CmtL 送往驗證者(驗證者演算法V)。
Step.2:收到Cmt1 ,…,CmtL 的驗證者演算法V,係在3個驗證模態之中,選擇要利用哪個驗證模態。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰Ch1 ,…,ChL R {0,1,2},送往證明者(證明者演算法P)。
Step.3:收到Ch1 ,…,ChL 的證明者演算法P,係從i=1,…,L中隨機地選擇出1個不回答的挑戰Chi 的索引i(以下稱作i*)。接著,證明者演算法P係針對i{1,…,L}\{i*},計算Rspi ←Pa,2 (Chi ;Sti )。然後,證明者演算法P係將(Rsp1 ,…,Rspi*-1 ,Rspi*+1 ,…,RspL ,i*)送往驗證者(驗證者演算法V)。Step.4:收到(Rsp1 ,…,Rspi*-1 ,Rspi*+1 ,…,RspL ,i*)的驗證者演算法V,係針對i{1,…,L}\{i*},執行0/1←Deca (F,yi ;Cmti ,Chi ,Rspi )。然後,驗證者演算法V係針對i{1,…,L}\{i*},若全部都被受理(輸出1),則視為驗證成功。
以上說明了,將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定。該對話協定,係藉由SSH10a公開金鑰認證方式的安全性,而保證了未持有si 的偽證者針對i=1,…,L,分別只有2/3以下的機率,可以對從驗證者所送來之挑戰Chi 做正確回答。又,藉由適用本手法#1,由於需要針對L-1個以上的i而針對從驗證者所送來之挑戰Chi 做正確回答,因此偽證成功之機率係為(2/3)L +L(1/3)(2/3)L-1 =(2+L)2L-1 /3L 。又,於上記的對話協定中,雖然使用了s1 ,…,sL 之全部,但若L≦3的情況下,即使針對i=1,…,L之1個不使用si ,仍可完全不讓驗證者知道哪個si 未被使用,就可進行和證明者完全同樣的舉動。於是,說明不使用1個si,就可和上記對話協定同樣地實現認證的對話協定(變形例1~3)。
[2-3:對SSH10a公開金鑰認證方式之適用(變形例1)]首先,一面參照圖10,一面說明將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例1)。圖10係用來說明,將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例1)的說明圖。此對話協定,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。但是,於驗證者演算法V中,是利用了之前所說明過的偽證演算法之構成。又,說明L=3之情形。再者,假設未使用的si 的索引係為i0 。以下說明各演算法之內容。
(金鑰生成演算法Gen)首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項f1 (x1 ,…,xn ),…,fm (x1 ,…,xn)、和L個向量s1 ,…,sL Kn 。但是,si0 係使用適當選擇的向量。此外,將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。接著,金鑰生成演算法Gen係計算y1 =F(s1 ),…,yL =F(sL )。只不過,亦可不保證會滿足yi0 =F(si0 )。然後,金鑰生成演算法Gen係將(F,y1 ,…,yL )設定成公開金鑰pk,將(s1 ,…,sL )設定成祕密金鑰。
(證明者演算法P、驗證者演算法V)接著,一面參照圖10,一面說明證明者演算法P、驗證者演算法V之構成。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。本手法#1的對話協定,係由圖10所示的Step.1~Step.4之處理步驟所構成。以下,說明各步驟之處理。
Step.1:首先,證明者演算法P係針對i=1,2,3,生成向量ri ,ti Kn 、和向量ei Km 。接著,證明者演算法P係將Ch*{0,1,2}選擇1個。該Ch*係對應於,針對i0 之數列而無法由證明者所回答的驗證模態。接著,證明者演算法P係為,若i≠i0 ,則計算(Cmti ;Sti )←Pa,1 (F,yi ,si ;ri ,ti ,ei )。另一方面,若i=i0 ,則證明者演算法P係計算(Cmti ;Sti )←Ma,1 (F,yi ;Ch*,si ,ri ,ti ,ei )。然後,證明者演算法P係將Cmt1 ,Cmt2 ,Cmt3 送往驗證者(驗證者演算法V)。
Step.2:收到Cmt1 ,Cmt2 ,Cmt3 的驗證者演算法V,係在3個驗證模態之中,選擇要利用哪個驗證模態。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰Ch1 ,Ch2 ,Ch3 R {0,1,2},送往證明者(證明者演算法P)。Step.3:收到Ch1 ,Ch2 ,Ch3 的證明者演算法P,係如下所示般地從i=1,…,L中選擇出1個不回答的挑戰Chi 的索引i(以下稱作i*)。若Chi0 =Ch*,則驗證者演算法V係設定i*←i0 。另一方面,若Chi0 ≠Ch*,則驗證者演算法V係從i*{1,2,3}\{i0 }中隨機選擇i*。若使用該的i*之設定方法,則無論驗證者來要求哪種驗證模態,i*係分別以1/3之機率而取1,2,3之值。亦即,i0 到底是1,2,3的哪一值,此一資訊是被完全隱匿。
接著,證明者演算法P係針對i{1,2,3}\{i*},計算Rspi 如下。若i≠i0 ,則證明者演算法P係計算Rspi ←Pa,2 (Chi ;Sti )。若i=i0 ,則證明者演算法P係計算Rspi ←Ma,2 (Chi ;Sti )。然後,證明者演算法P係將(Rsp1 ,…,Rspi*-1,Rspi*+1,…,RspL ,i*)送往驗證者(驗證者演算法V)。Step.4:收到(Rsp1 ,…,Rspi*-1 ,Rspi*+1 ,…,RspL ,i*)的驗證者演算法V,係針對i{1,2,3}\{i*},執行0/1←Deca (F,yi;Cmti ,Chi ,Rspi )。然後,驗證者演算法V係針對i{1,2,3}\{i*},若全部都被受理(輸出1),則視為驗證成功。
以上說明了,將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例)。此處雖然針對L=3的情形做說明,但針對L=2的情形也是同樣如此。例如,如以下所示,從i=1,2中設定1個不利用的i(i*)。若Chi0 =Ch*則設定成i*=i0 。另一方面,若Chi0 ≠Ch*則以1/4之機率設定成i*=i0 ,以3/4之機率設定成i*≠i0 。若如此設定,則無論驗證者來要求哪種驗證模態,i*係分別以1/2之機率而取1,2之值。因此,i0 到底是1,2的哪一值,此一資訊是被完全隱匿。
[2-4:對SSH10a公開金鑰認證方式之適用(變形例2)]接著,一面參照圖11,一面說明將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例2)。此外,變形例2係為圖9所示之對話協定的一變形例。圖11係用來說明,將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例2)的說明圖。此對話協定,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。以下說明各演算法之內容。
(金鑰生成演算法Gen)首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和2個向量s1 ,s2 Kn 。此外,將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。接著,金鑰生成演算法Gen係計算y1 =F(s1 ),y2 =F(s2 )。然後,金鑰生成演算法Gen係將(F,y1 ,y2 )設定成公開金鑰pk,將(s1 ,s2 )設定成祕密金鑰。
(證明者演算法P、驗證者演算法V)接著,一面參照圖11,一面說明證明者演算法P、驗證者演算法V之構成。本手法#1的對話協定,係使「證明者知道1個滿足yi =F(si )的si 」這件事,在完全不對驗證者洩漏「哪個si 是否曾經被使用過」此一資訊的情況下,對驗證者做證明。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。本手法#1的對話協定,係由圖11所示的Step.1~Step.4之處理步驟所構成。以下,說明各步驟之處理。
Step.1:首先,證明者演算法P係生成向量r1 ,t1 Kn 、和向量e1 Km 。接著,證明者演算法P係計算(Cmt1 ;St1 )←Pa,1 (F,y1 ,s1 ;r1 ,t1 ,e1 )、(Cmt2 ;St2 )←Pa,1 (F,y2 ,s2 ;r1 ,t1 ,e1 )。其中,Cmt1 =(c11 ,c12 ,c13 )、Cmt2 =(c21 ,c12 ,c13 )。接著,證明者演算法P係將c11 ,c12 ,c13 ,c21 送往驗證者(驗證者演算法V)。
Step.2:收到c11 ,c12 ,c13 ,c21 的驗證者演算法V,係選擇要利用哪個驗證模態。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰之組合(Ch1 ,Ch2 ){0,1,2}×{0,1,2},送往證明者(證明者演算法P)。Step.3:收到Ch1 ,Ch2 的證明者演算法P,係隨機地選擇出要回答的挑戰Chi 的索引i。接著,證明者演算法P係針對已選擇的i,計算Rspi ←Pa,2 (Chi ;Sti ,r1 ,t1 ,e1 )。然後,證明者演算法P係將(Rspi ,i)送往驗證者(驗證者演算法V)。
Step.4:收到Rspi ,i的驗證者演算法V,係執行0/1←Deca (F,yi ;(ci1 ,c12 ,c13 ,),Chi ,Rspi )。然後,驗證者演算法V係當輸出為1時(已被受理時)則視為認證成立。以上說明了,將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例2)。本變形例係將生成Cmt1 、St1 、Cmt2 、St2 之際所使用的亂數的組(r1 、t1 、e1 )與(r2 、t2 、e2 )予以共通化,為其特徵。藉由將這些亂數共通化,在Cmt1 =(c11 ,c12 ,c13 )、Cmt2 =(c21 ,c22 ,c23 )的構成要素當中,(c12 ,c13 )與(c22 ,c23 )就會成為共通的值。因此,從證明者往驗證者發送Cmt1 與Cmt2 之際,僅需送出4個值(c11 ,c12 ,c13 ,c21 )即可,因此可降低通訊量。此外,在本變形例的情況下,於第3回合中僅公開了關於一方之數列的資訊,因此即使如上記般地將亂數之一部分予以共通化,也無損及零知識性。
[2-5:對SSH10a公開金鑰認證方式之適用(變形例3)]接著,一面參照圖12,一面說明將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例3)。此外,變形例3係為圖11所示之對話協定(變形例2)的一變形例。圖12係用來說明,將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例3)的說明圖。此對話協定,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。以下說明各演算法之內容。
(金鑰生成演算法Gen)首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和2個向量s1 ,s2 Kn 。此外,將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。接著,金鑰生成演算法Gen係計算y1 =F(s1 ),y2 =F(s2 )。然後,金鑰生成演算法Gen係將(F,y1 ,y2 )設定成公開金鑰pk,將(s1 ,s2 )設定成祕密金鑰。
(證明者演算法P、驗證者演算法V)接著,一面參照圖12,一面說明證明者演算法P、驗證者演算法V之構成。本手法#1的對話協定,係使「證明者知道1個滿足yi =F(si )的si 」這件事,在完全不對驗證者洩漏「哪個si 是否曾經被使用過」此一資訊的情況下,對驗證者做證明。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。本手法#1的對話協定,係由圖12所示的Step.1~Step.4之處理步驟所構成。以下,說明各步驟之處理。
Step.1:首先,證明者演算法P係生成向量r1 ,t1 Kn 、和向量e1 Km 。接著,證明者演算法P係計算(Cmt1 ;St1 )←Pa,1 (F,y1 ,s1 ;r1 ,t1 ,e1 )、(Cmt2 ;St2 )←Pa,1 (F,y2 ,s2 ;r1 ,t1 ,e1 )。其中,Cmt1 =(c11 ,c12 ,c13 )、Cmt2 =(c21 ,c12 ,c13 )。接著,證明者演算法P係將c11 ,c12 ,c13 ,c21 送往驗證者(驗證者演算法V)。Step.2:收到c11 ,c12 ,c13 ,c21 的驗證者演算法V,係選擇要利用哪個驗證模態。此時,驗證者演算法V係將驗證模態(挑戰之組合(Ch1 ,Ch2 )),從(Ch1 ,Ch2 ){(0,0),(1,1),(1,2),(2,1),(2,2)}之中加以選擇。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰之組合(Ch1 ,Ch2 ),送往證明者(證明者演算法P)。
Step.3:收到Ch1 ,Ch2 的證明者演算法P,係隨機地選擇出要回答的挑戰Chi 的索引i。接著,證明者演算法P係針對已選擇的i,計算Rspi ←Pa,2 (Chi ;Sti ,r1 ,t1 ,e1 )。然後,證明者演算法P係將(Rspi ,i)送往驗證者(驗證者演算法V)。
Step.4:收到(Rspi ,i)的驗證者演算法V,係執行0/1←Deca (F,yi ;(ci1 ,c12 ,c13 ,),Chi ,Rspi )。然後,驗證者演算法V係當輸出為1時(已被受理時)則視為認證成立。以上說明了,將本手法#1之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例3)。本變形例係為,將可利用之驗證模態,限定成(Ch1 ,Ch2 ){(0,0),(1,1),(1,2),(2,1),(2,2)}這5種模態,為其特徵。如上記,當Cmt1 之要素(c12 ,c13 )與Cmt2 之要素(c22 ,c23 )是被共通化的情況下,對Ch1 =0之回答(對c12 ,c13 之回答)與對Ch2 =0之回答(對c22 ,c23 之回答)係為共通。因此,「可對(Ch1 ,Ch2 )=(0,0)做回答」係意味著「可對Ch1 =0與Ch2 =0雙方做回答」。亦即,可對(Ch1 ,Ch2 )=(0,0)做回答的證明者,係對(Ch1 ,Ch2 )=(0,1),(0,2),(1,0),(2,0)之任一者均可做回答。因此,驗證者係只要針對(Ch1 ,Ch2 )=(0,0),(1,1),(1,2),(2,1),(2,2)這5種模態進行驗證,即已足夠。
根據如此理由,只要不知道祕密金鑰sk,就無法保證對上記5種模態全部都能回答。亦即,不知道祕密金鑰sk者最多只能回答4個模態,因此偽證機率最大為4/5。在圖9所示的對話協定的情況下,L=2時的偽證機率係為8/9。因此,藉由適用變形例3之構成,偽證機率會降低。
[2-6:對SSH10b公開金鑰認證方式之適用]接著,一面參照圖13,一面說明將本手法#1之方式適用於SSH10b公開金鑰認證方式時的對話協定。圖13係用來說明,將本手法#1之方式適用於SSH10b公開金鑰認證方式時的對話協定的說明圖。此對話協定,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。以下說明各演算法之內容。
(金鑰生成演算法Gen)首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和L個向量s1 ,…,sL Kn 。此外,將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。接著,金鑰生成演算法Gen係計算y1 =F(s1 ),…,yL =F(sL )。然後,金鑰生成演算法Gen係將(F,y1 ,…,yL )設定成公開金鑰pk,將(s1 ,…,sL )設定成祕密金鑰。
(證明者演算法P、驗證者演算法V)接著,一面參照圖13,一面說明證明者演算法P、驗證者演算法V之構成。本手法#1的對話協定,係使「證明者知道L-1個滿足yi =F(si )的si 」這件事,在完全不對驗證者洩漏「哪個si 是否曾經被使用過」此一資訊的情況下,對驗證者做證明。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。
本手法#1的對話協定,係由圖13所示的Step.1~Step.6之處理步驟所構成。以下,說明各步驟之處理。Step.1:首先,證明者演算法P係針對i=1,…,L,生成向量ri ,ti Kn 、和向量ei Km 。接著,證明者演算法P係計算(CmtA,i ;StA,i )←Pa,1 (F,yi ,si ;ri ,ti ,ei )。然後,證明者演算法P係將(CmtA,1 ,…,CmtA,L )送往驗證者(驗證者演算法V)。
Step.2:收到(CmtA,1 ,…,CmtA,L )的驗證者演算法V,係根據存在q種的環K而選擇出L個亂數之組合(α1 ,…,αL )。然後,驗證者演算法V係將挑戰(ChA,1 ,…,ChA,L )=(α1 ,…,αL ),送往證明者(證明者演算法P)。Step.3:收到(ChA,1 ,…,ChA,L )的驗證者演算法P,係針對i=1,…,L,計算(CmtB,i ;StB,i )←Pb,2 (ChA,i ;StA,i )。然後,證明者演算法P係將(CmtB,1 ,…,CmtB,L )送往驗證者(驗證者演算法V)。
Step.4:收到(CmtB,1 ,…,CmtB,L )的驗證者演算法V,係在2個驗證模態之中,針對i=1,…,L之各者,選擇要利用哪個驗證模態。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰ChB,1 ,…,ChB,L R {0,1},送往證明者(證明者演算法P)。Step.5:收到ChB,1 ,…,ChB,L 的證明者演算法P,係從i=1,…,L中隨機地選擇出1個不回答的i(以下稱作i* )。然後,證明者演算法P係計算Rspi ←Pb,3 (ChB,i ;StB,i )。然後,證明者演算法P係將(Rsp1 ,…,Rspi*-1 ,Rspi*+1 ,…,RspL ,i* )送往驗證者(驗證者演算法V)。
Step.6:收到(Rsp1 ,…,Rspi*-1 ,Rspi*+1 ,…,RspL ,i* )的驗證者演算法V,係針對i{1,…,L}\{i* },執行0/1←Decb(F,yi ;CmtA,i ,ChA,i ,CmtB,i ,ChB,i ,Rspi )。然後,驗證者演算法V係針對i{1,…,L}\{i* },若全部都被受理(輸出1),則視為驗證成功。以上說明了,將本手法#1之方式適用於SSH10b公開金鑰認證方式時的對話協定。該對話協定,係藉由SSH10b公開金鑰認證方式的安全性,而保證了未持有si 的偽證者針對i=1,…,L,分別只有1/2+1/2q以下的機率,可以對從驗證者所送來之挑戰Chi 做正確回答。又,藉由適用本手法#1,由於需要針對L-1個以上的i而針對從驗證者所送來之挑戰Chi 做正確回答,因此偽證成功之機率係為(1/2+1/2q)L +L(1/2-1/2q)(1/2+1/2q)L-1 。又,於上記的對話協定中,雖然使用了s1 ,…,sL 之全部,但若L=2的情況下,即使針對i=1,…,L之1個不使用si ,仍可完全不讓驗證者知道哪個si 未被使用,就可進行和證明者完全同樣的舉動。於是,說明不使用1個si,就可和上記對話協定同樣地實現認證的對話協定(變形例)。
[2-7:對SSH10b公開金鑰認證方式之適用(變形例)]以下,一面參照圖14,一面說明將本手法#1之方式適用於SSH10b公開金鑰認證方式時的對話協定(變形例)。圖14係用來說明,將本手法#1之方式適用於SSH10b公開金鑰認證方式時的對話協定(變形例)的說明圖。此對話協定,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。但是,於驗證者演算法V中,是利用了之前所說明過的偽證演算法之構成。又,說明L=2之情形。再者,假設未使用的si 的索引係為i0 。以下說明各演算法之內容。
(金鑰生成演算法Gen)首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和L個向量s1 ,…,sL Kn 。但是,si0 係使用適當選擇的向量。此外,將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。接著,金鑰生成演算法Gen係計算y1 =F(s1 ),…,yL =F(sL )。只不過,亦可不保證會滿足yi0 =F(si0 )。然後,金鑰生成演算法Gen係將(F,y1 ,…,yL )設定成公開金鑰pk,將(s1 ,…,sL )設定成祕密金鑰。
(證明者演算法P、驗證者演算法V)接著,一面參照圖14,一面說明證明者演算法P、驗證者演算法V之構成。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。本手法#1的對話協定,係由圖14所示的Step.1~Step.6之處理步驟所構成。以下,說明各步驟之處理。
Step.1:首先,證明者演算法P係針對i=1,2,生成向量ri ,ti Kn 、和向量ei Km 。接著,證明者演算法P係將ChB *{0,1}選擇1個。該ChB *係對應於,針對i0 之數列而無法由證明者所回答的驗證模態。接著,證明者演算法P係針對i≠i0 的情況,計算(CmtA,i ;StA,i )←Pb,1 (F,yi ,si ;ri ,ti ,ei )。又,針對i=i0 的情況,證明者演算法P係計算(CmtA,i ;StA,i )←Mb,1 (F,yi ;ChB *,si ,ri ,ti ,ei )。然後,證明者演算法P係將(CmtA,1 ,CmtA,2 )送往驗證者(驗證者演算法V)。Step.2:收到(CmtA,1 ,CmtA,2 )的驗證者演算法V,係根據存在q種的環K而選擇出2個亂數之組合(α12 )。然後,驗證者演算法V係將挑戰(ChA,1 ,ChA,2 )=(α12 ),送往證明者(證明者演算法P)。
Step.3:收到(ChA,1 ,ChA,2 )的證明者演算法P,係針對i=1,2,計算CmtB,i 如下。若i≠i0 ,則證明者演算法P係計算(CmtB,i ;StB,i )←Pb,2 (ChA,i ;StA,i )。另一方面,若i=i0 ,則證明者演算法P係計算(CmtB,i ;StB,i )←Mb,2 (ChA,i ;StA,i )。然後,證明者演算法P係將(CmtB,1 ,CmtB,2 )送往驗證者(驗證者演算法V)。Step.4:收到(CmtB,1 ,CmtB,2 )的驗證者演算法V,係在2個驗證模態之中,選擇要利用哪個驗證模態。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰(ChB,1 ,ChB,2 ) R {0,1},送往證明者(證明者演算法P)。
Step.5:收到(ChB,1 ,ChB,2 )的證明者演算法P,係從i=1,2中,如下選擇出1個不回答的i(以下稱作i*)。若Chi0 =Ch*,則證明者演算法P係設定成Chi0 ≠Ch*。另一方面,若i≠i0 ,則證明者演算法P係隨機設定成i*≠i0 。若使用該的i*之設定方法,則無論驗證者來要求哪種驗證模態,i*係分別以1/2之機率而取1,2之值。亦即,i0 到底是1,2的哪一值,此一資訊是被完全隱匿。接著,證明者演算法P係針對i{1,2}\{i*},計算Rspi 如下。若i≠i0 ,則證明者演算法P係計算Rspi ←Pb,3 (Chi ;Sti )。若i=i0 ,則證明者演算法P係計算Rspi ←Mb,3 (Chi ;Sti )。然後,證明者演算法P係將(Rsp1 ,Rsp2 ,i*)送往驗證者(驗證者演算法V)。
Step.6:收到(Rsp1 ,Rsp2 ,i*)的驗證者演算法V,係針對i{1,2}\{i*},執行0/1←Decb (F,yi ;CmtA,i ,ChA,i ,CmtB,i ,ChB,i ,Rspi )。然後,驗證者演算法V係針對i{1,2}\{i*},若全部都被受理(輸出1),則視為驗證成功。以上說明了,將本手法#1之方式適用於SSH10b公開金鑰認證方式時的對話協定(變形例)。此處雖然針對L=2的情形做說明,但針對L≧3的情形也是可實現同樣的機制。
以上說明了本揭露的第1實施形態。在上記說明中,雖然舉出SSH10a公開金鑰認證方式、SSH10b公開金鑰認證方式為例來描述,但本手法#1的適用範圍係不限定於此。即使對SSH10a公開金鑰認證方式或SSH10b公開金鑰認證方式的變形例、及其他公開金鑰認證方式,仍可適用。例如,雖然在上記例子中是將公開金鑰設定成(F,y),但由於F是不隨祕密金鑰而變化的參數,因此亦可不將該F對每位證明者做設定,而是設計成系統全體皆共通的參數。此情況下,應個別公開的公開金鑰係只有y,可縮小公開金鑰的大小。又,在上記的對話協定中,雖然針對i=1,…,L個別地選擇亂數α1 ,…,αL ,但這些亂數係亦可共通化成1個。此情況下,可削減在發送挑戰ChA,i 時的通訊成本。
<3:第2實施形態(本手法#2)>接著,說明本揭露的第2實施形態(本手法#2)。
[3-1:概要]本手法#2係適用了,對SSH10a公開金鑰認證方式、SSH10b公開金鑰認證方式,可保證對主動性攻撃的安全性等級的機制。雖然反覆,但無從得知對主動性攻撃的安全性等級是否受到保證的理由是,只要所利用的函數F的碰撞困難性沒受到保證,就無法避免「進行驗證的證明者曾用過s」此一資訊被驗證者所獲知。因此,在對話協定之中,若「進行驗證的證明者曾用過s」此一資訊不讓驗證者知道,則可保證對主動性攻撃的安全性等級。於是,本案發明人係想出了將祕密金鑰s、公開金鑰y予以多重化的方式。此方式係把L個(L≧2)的s1 ,…,sL Kn 當作祕密金鑰,把對於m道之n變數多次多項式F(x)=(f1 (x),…,fm (x))而滿足(y1 ,…,yL )=(F(s1 ),…,F(sL ))的y1 ,…,yL Km ,當作公開金鑰。甚至,此方式係為,讓人不知道曾在對話協定之中使用過哪個si 而進行證明的方式。若適用此方式,則在對話協定之中關於「曾利用哪個si 」之資訊係沒有洩漏,因此可保證對主動性攻撃的安全性等級。
本手法#2之方式,係驗證者針對i=1,…,L而將挑戰之組合(Ch1 (0) ,:,ChL (0) )及(Ch1 (1) ,…,ChL (1) )送往證明者,證明者係選擇其中一種挑戰之組合而進行回答。此手法係為,一般是將Q(Q≧2)組的挑戰之組合送往證明者,證明者選擇1個挑戰之組合而進行回答,但此處針對Q=2的情形加以說明。知道s1 ,…,sL 的證明者係可對雙方之挑戰之組合做回答,但不知道s1 ,:,sL 的偽證者只能以某種程度之機率對任一挑戰做回答而導致認證失敗。此外,證明者係針對1個i係即使不利用si 仍可對其中一個挑戰之組合進行回答,因此即使執行了驗證被受理之對話協定,在該對話協定之中,驗證者仍不會得知曾經利用哪個si
[3-2:對SSH10a公開金鑰認證方式之適用]首先,一面參照圖15,一面說明將本手法#2之方式適用於SSH10a公開金鑰認證方式時的對話協定。圖15係用來說明,將本手法#2之方式適用於SSH10a公開金鑰認證方式時的對話協定的說明圖。此對話協定,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。以下說明各演算法之內容。
(金鑰生成演算法Gen)首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和L個向量s1 ,…,sL Kn 。此外,將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。接著,金鑰生成演算法Gen係計算y1 =F(s1 ),…,yL =F(sL )。然後,金鑰生成演算法Gen係將(F,y1 ,…,yL)設定成公開金鑰pk,將(s1 ,…,sL )設定成祕密金鑰。接著,一面參照圖15,一面說明證明者演算法P、驗證者演算法V之構成。本手法#1的對話協定,係使「證明者知道L-1個滿足yi =F(si )的si 」這件事,在完全不對驗證者洩漏「哪個si 是否曾經被使用過」此一資訊的情況下,對驗證者做證明。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。本手法#2的對話協定,係由圖15所示的Step.1~Step.4之處理步驟所構成。以下,說明各步驟之處理。
Step.1:首先,證明者演算法P係針對i=1,…,L,生成向量ri ,ti Kn 、和向量ei Km 。接著,證明者演算法P係計算(Cmti ;Sti )←Pa,1 (F,yi ,si ;ri ,ti ,ei )。然後,證明者演算法P係將Cmt1 ,…,CmtL 送往驗證者(驗證者演算法V)。
Step.2:收到Cmt1 ,…,CmtL 的驗證者演算法V,係在3個驗證模態之中,選擇要利用哪個驗證模態。此時,驗證者演算法V係選擇2組驗證模態之組合。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰之組合(Ch1 (0) ,…,ChL (0) ),(Ch1 (1) ,…,ChL (1) ){0,1,2},送往證明者(證明者演算法P)。其中,Chi (0) ≠Chi (1)
Step.3:收到(Ch1 (0) ,…,ChL (0) ),(Ch1 (1) ,…,ChL (1) )的證明者演算法P,係隨機地選擇要對哪一挑戰之組合進行回答。此外,將該選擇結果表現成d{0,1}。然後,證明者演算法P係針對i{1,…,L},計算Rspi ←Pa,2 (Ch(d) i ;Sti )。其後,證明者演算法P係將(Rspi ,…,RspL ,d)送往驗證者(驗證者演算法V)。
Step.4:收到(Rsp1 ,…,RspL ,d)的驗證者演算法V,係針對i{1,…,L},執行0/1←Deca (F,yi ;Cmti ,Ch(d) i ,Rspi )。然後,驗證者演算法V係針對i{1,…,L},若全部都被受理(輸出1),則視為驗證成功。以上說明了,將本手法#2之方式適用於SSH10a公開金鑰認證方式時的對話協定。該對話協定,係藉由SSH10a公開金鑰認證方式的安全性,而保證了未持有si 的偽證者針對i=1,…,L,分別只有2/3以下的機率,可以對從驗證者所送來之挑戰Chi 做正確回答。又,藉由適用本手法#2,針對2個挑戰之組合的其中一方,由於需要針對L個的i而對從驗證者所送來之挑戰Chi 做正確回答,因此偽證成功之機率係為(2/3)L +(2/3)L -(1/3)L =(2L +1 -1)/3L 。又,於上記的對話協定中,雖然使用了s1 ,…,sL 之全部,但若L≦3的情況下,即使針對i=1,…,L之1個不使用si ,仍可完全不讓驗證者知道哪個si 未被使用,就可進行和證明者完全同樣的舉動。於是,說明不使用1個si,就可和上記對話協定同樣地實現認證的對話協定(變形例)。
[3-3:對SSH10a公開金鑰認證方式之適用(變形例)]以下,一面參照圖16,一面說明將本手法#2之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例)。圖16係用來說明,將本手法#2之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例)的說明圖。此對話協定,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。但是,於驗證者演算法V中,是利用了之前所說明過的偽證演算法之構成。又,假設未使用的si 的索引係為i0 。以下說明各演算法之內容。
(金鑰生成演算法Gen)
首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和L個向量s1 ,…,sL Kn 。但是,si0 係使用適當選擇的向量。此外,將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。接著,金鑰生成演算法Gen係計算y1 =F(s1 ),…,yL =F(sL )。只不過,亦可不保證會滿足yi0 =F(si0 )。然後,金鑰生成演算法Gen係將(F,y1 ,…,yL )設定成公開金鑰pk,將(s1 ,…,sL )設定成祕密金鑰。
(證明者演算法P、驗證者演算法V)
接著,一面參照圖16,一面說明證明者演算法P、驗證者演算法V之構成。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。
本手法#2的對話協定,係由圖16所示的Step.1~Step.4之處理步驟所構成。以下,說明各步驟之處理。
Step.1:
首先,證明者演算法P係針對i=1,…,L,生成向量ri ,ti Kn 、和向量ei Km 。接著,證明者演算法P係將Ch*{0,1,2}選擇1個。該Ch*係對應於,針對i0 之數列而無法由證明者所回答的驗證模態。接著,證明者演算法P係為,若i≠i0 ,則計算(Cmti ;Sti )←Pa,1 (F,yi ,si ;ri ,ti ,ei )。另一方面,若i=i0 ,則證明者演算法P係計算(Cmti ;Sti )←Ma,1 (F,yi ;Ch*,si ,ri ,ti ,ei )。然後,證明者演算法P係將Cmt1 ,…,CmtL 送往驗證者(驗證者演算法V)。
Step.2:
收到Cmt1 ,…,CmtL 的驗證者演算法V,係在3個驗證模態之中,選擇要利用哪個驗證模態。此時,驗證者演算法V係選擇2組驗證模態之組合。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰之組合(Ch1 (0) ,…,ChL (0) ),(Ch1 (1) ,…,ChL (1) ){0,1,2},送往證明者(證明者演算法P)。其中,Chi (0) ≠Chi (1)
Step.3:
收到(Ch1 (0) ,…,ChL (0) ),(Ch1 (1) ,…,ChL (1) )的證明者演算法P,係選擇要對哪一挑戰之組合進行回答如下。此外,將該選擇結果表現成d{0,1}。若Chi0 (0) =Ch*(條件1),則證明者演算法P係設定成d←1。另一方面,若Chi0 (1) =Ch*(條件2),則證明者演算法P係設定成d←0。條件1、2以外的情況,證明者演算法P係隨機地設定d{0,1}。若採取此種設定方法,則無論驗證者要求了哪種驗證模態,d係以1/2之機率而為0,1之值,因此i0 到底是1,...,L的哪一值,此一資訊是被完全隱匿。
在設定了d之後,證明者演算法P係針對i{1,…,L},計算Rspi 如下。若i≠i0 ,則證明者演算法P係計算Rspi ←Pa,2 (Ch(d) i ;Sti )。另一方面,若i=i0 ,則證明者演算法P係計算Rspi ←Ma,2 (Ch(d) i ;Sti )。其後,證明者演算法P係將(Rsp1 ,…,RspL ,d)送往驗證者(驗證者演算法V)。
Step.4:
收到(Rsp1 ,…,RspL ,d)的驗證者演算法V,係針對i{1,…,L},執行0/1←Deca (F,yi ;Cmti ,Ch(d) i ,Rspi )。然後,驗證者演算法V係針對i{1,…,L},若全部都被受理(輸出1),則視為驗證成功。
以上說明了,將本手法#2之方式適用於SSH10a公開金鑰認證方式時的對話協定(變形例)。此外,於上記說明中,雖然是將2個挑戰之組合從驗證者送往證明者,但例如亦可預先決定第2個挑戰係為Chi (1) =Chi (0) +1 mod 3。此情況下,由於其中一方之挑戰之組合不必送出,因此可削減通訊量。
[3-4:對SSH10b公開金鑰認證方式之適用]
接著,一面參照圖17,一面說明將本手法#2之方式適用於SSH10b公開金鑰認證方式時的對話協定。圖17係用來說明,將本手法#2之方式適用於SSH10b公開金鑰認證方式時的對話協定的說明圖。此對話協定,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。以下說明各演算法之內容。
(金鑰生成演算法Gen)
首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和L個向量s1 ,…,sL Kn 。此外,將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。接著,金鑰生成演算法Gen係計算y1 =F(s1 ),…,yL =F(sL )。然後,金鑰生成演算法Gen係將(F,y1 ,…,yL )設定成公開金鑰pk,將(s1 ,…,sL )設定成祕密金鑰。
(證明者演算法P、驗證者演算法V)
接著,一面參照圖135,一面說明證明者演算法P、驗證者演算法V之構成。本手法#2的對話協定,係使「證明者知道L-1個滿足yi =F(si )的si 」這件事,在完全不對驗證者洩漏「哪個si 是否曾經被使用過」此一資訊的情況下,對驗證者做證明。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。
本手法#2的對話協定,係由圖17所示的Step.1~Step.6之處理步驟所構成。以下,說明各步驟之處理。
Step.1:
首先,證明者演算法P係針對i=1,…,L,生成向量ri ,ti Kn 、和向量ei Km 。接著,證明者演算法P係計算(CmtA,i ;StA,i )←Pa,1 (F,yi ,si ;ri ,ti ,ei )。然後,證明者演算法P係將(CmtA,1 ,…,CmtA,L )送往驗證者(驗證者演算法V)。
Step.2:
收到(CmtA,1 ,…,CmtA,L )的驗證者演算法V,係根據存在q種的環K而選擇出L個亂數之組合(α1 ,…,αL )。然後,驗證者演算法V係將挑戰(ChA,1 ,…,ChA,L )=(α1 ,…,αL ),送往證明者(證明者演算法P)。
Step.3:
收到(ChA,1 ,…,ChA,L )的驗證者演算法P,係針對i=1,…,L,計算(CmtB,i ;StB,i )←Pb,2 (ChA,i ;StA,i )。然後,證明者演算法P係將(CmtB,1 ,…,CmtB,L )送往驗證者(驗證者演算法V)。
Step.4:
收到(CmtB,1 ,…,CmtB,L )的驗證者演算法V,係在3個驗證模態之中,選擇要利用哪個驗證模態。此時,驗證者演算法V係選擇2組驗證模態之組合。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰之組合(ChB,1 (0) ,…,ChB,L (0) ),(ChB,1 (1) ,…,ChB,L (1) ){0,1}L ,送往證明者(證明者演算法P)。其中,ChB,i (0) ≠ChB,i (1)
Step.5:
收到(ChB,1 (0) ,…,ChB,L (0) ),(ChB,1 (1) ,…,ChB,L (1) )的證明者演算法P,係隨機地選擇要對哪一挑戰之組合進行回答。此外,將該選擇結果表現成d{0,1}。然後,證明者演算法P係針對i{1,…,L},計算Rspi ←Pb,2 (ChB,i (d) ;StB,i )。其後,證明者演算法P係將(Rsp1 ,…,RspL ,d)送往驗證者(驗證者演算法V)。
Step.6:
收到(Rsp1 ,…,RspL ,d)的驗證者演算法V,係針對i{1,…,L},執行0/1←Decb (F,yi ;CmtA,i ,ChA,i ,CmtB,i ,ChB,i (d) ,Rspi )。然後,驗證者演算法V係針對i{1,…,L},若全部都被受理(輸出1),則視為驗證成功。
以上說明了,將本手法#2之方式適用於SSH10b公開金鑰認證方式時的對話協定。該對話協定,係藉由SSH10b公開金鑰認證方式的安全性,而保證了未持有si 的偽證者針對i=1,…,L,分別只有1/2+1/2q以下的機率,可以對從驗證者所送來之挑戰做正確回答。又,藉由適用本手法#2,由於對2個挑戰之組合之一方,需要針對L個的i而對從驗證者所送來之挑戰做正確回答,因此偽證成功之機率係為(1/2+1/2q)L +(1/2+1/2q)L =2(1/2+1/2q)L
又,於上記的對話協定中,雖然使用了s1 ,…,sL 之全部,但即使針對i=1,…,L之1個不使用si ,仍可完全不讓驗證者知道哪個si 未被使用,就可進行和證明者完全同樣的舉動。於是,說明不使用1個si,就可和上記對話協定同樣地實現認證的對話協定(變形例)。
[3-5:對SSH10b公開金鑰認證方式之適用(變形例)]
以下,一面參照圖18,一面說明將本手法#2之方式適用於SSH10b公開金鑰認證方式時的對話協定(變形例)。圖18係用來說明,將本手法#2之方式適用於SSH10b公開金鑰認證方式時的對話協定(變形例)的說明圖。此對話協定,係由金鑰生成演算法Gen、證明者演算法P、驗證者演算法V所構成。但是,於驗證者演算法V中,是利用了之前所說明過的偽證演算法之構成。又,假設未使用的si 的索引係為i0 。以下說明各演算法之內容。
(金鑰生成演算法Gen)
首先說明金鑰生成演算法Gen的構成。金鑰生成演算法Gen,係生成在環K上所被定義的m道之n變數2次多項f1 (x1 ,…,xn ),…,fm (x1 ,…,xn )、和L個向量s1 ,…,sL Kn 。但是,si0 係使用適當選擇的向量。此外,將n變數的向量(x1 ,…,xn )表示成x,將m道之n變數2次多項式(f1 (x),…,fm (x))表示成F(x)。接著,金鑰生成演算法Gen係計算y1 =F(s1 ),…,yL =F(sL )。只不過,亦可不保證會滿足yi0 =F(si0 )。然後,金鑰生成演算法Gen係將(F,y1 ,…,yL )設定成公開金鑰pk,將(s1 ,…,sL )設定成祕密金鑰。
(證明者演算法P、驗證者演算法V)
接著,一面參照圖18,一面說明證明者演算法P、驗證者演算法V之構成。此外,已被金鑰生成演算法Gen所生成的公開金鑰pk,係在證明者與驗證者之間被共有。又,已被金鑰生成演算法Gen所生成的祕密金鑰sk,係由證明者祕密地管理。
本手法#2的對話協定,係由圖18所示的Step.1~Step.6之處理步驟所構成。以下,說明各步驟之處理。
Step.1:
首先,證明者演算法P係針對i=1,…,L,生成向量ri ,ti Kn 、和向量ei Km 。接著,證明者演算法P係將ChB *{0,1}選擇1個。該Ch*係對應於,針對i0 之數列而無法由證明者所回答的驗證模態。接著,證明者演算法P係針對i≠i0 的情況,計算(CmtA,i ;StA,i )←Pb,1 (F,yi ,si ;ri ,ti ,ei )。又,針對i=i0 的情況,證明者演算法P係計算(CmtA,i ;StA,i )←Mb,1 (F,yi ;ChB *,si ,ri ,ti ,ei )。然後,證明者演算法P係將(CmtA,1 ,…,CmtA,L )送往驗證者(驗證者演算法V)。
Step.2:
收到(CmtA,1 ,…,CmtA,L )的驗證者演算法V,係根據存在q種的環K而選擇出L個亂數之組合(α1 ,…,αL )。然後,驗證者演算法V係將挑戰(ChA,1 ,…,ChA,L )=(α1 ,…,αL ),送往證明者(證明者演算法P)。
Step.3:
收到(ChA,1 ,…,ChA,L )的證明者演算法P,係針對i=1,…,L,計算CmtB,i 如下。首先,針對i≠i0 之情形,則證明者演算法P係計算(CmtB,i ;StB,i )←Pb,2 (ChA,i ;StA,i )。另一方面,針對i=i0 之情形,則證明者演算法P係計算(CmtB,i ;StB,i )←Mb,2 (ChA,i ;StA,i )。然後,證明者演算法P係將(CmtB,1 ,…,CmtB,L )送往驗證者(驗證者演算法V)。
Step.4:
收到(CmtB,1 ,…,CmtB,L )的驗證者演算法V,係在3個驗證模態之中,選擇要利用哪個驗證模態。此時,驗證者演算法V係選擇2組驗證模態之組合。然後,驗證者演算法V係將表示已選擇之驗證模態的挑戰之組合(ChB,1 (0) ,…,ChB,L (0) ),(ChB,1 (1) ,…,ChB,L (1) ){0,1}L ,送往證明者(證明者演算法P)。其中,ChB,i (0) ≠ChB,i (1)
Step.5:
收到(ChB,1 (0) ,…,ChB,L (0) ),(ChB,1 (1) ,…,ChB,L (1) )的證明者演算法P,係如下般地選擇要對哪一挑戰之組合進行回答。此外,將該選擇結果表現成d{0,1}。若ChB,i0 (0) =ChB *,則證明者演算法P係設定成d←1。另一方面,若ChB,i0 (1) =ChB *,則證明者演算法P係設定成d←0。若使用該設定方法,則無論驗證者來要求哪種驗證模態,d係分別以1/2之機率而取0,1之值。亦即,d到底是0,1的哪一值,此一資訊是被完全隱匿。
接著,證明者演算法P係針對i=1,…,L,計算Rspi 如下。針對i≠i0 之情形,則證明者演算法P係計算Rspi ←Pb,3 (ChB,i (d) ;StB,i )。又,針對i=i0 之情形,則證明者演算法P係計算Rspi ←Mb,3 (ChB,i (d) ;StB,i )。其後,證明者演算法P係將(Rsp1 ,…,RspL ,d)送往驗證者(驗證者演算法V)。
Step.6:
收到(Rsp1 ,…,RspL ,d)的驗證者演算法V,係針對i=1,…,L,執行0/1←Decb (F,yi ;CmtA,i ,ChA,i ,CmtB,i ,ChB,i (d) ,Rspi )。然後,驗證者演算法V係針對i=1,…,L,若全部都被受理(輸出1),則視為驗證成功。
以上說明了,將本手法#2之方式適用於SSH10b公開金鑰認證方式時的對話協定(變形例)。此外,於上記說明中,雖然是將2個挑戰之組合從驗證者送往證明者,但例如亦可預先決定第2個挑戰係為Chi (1) =Chi (0) +1 mod 2。此情況下,由於其中一方之挑戰之組合不必送出,因此可削減通訊量。
以上說明了本揭露的第2實施形態。在上記說明中,雖然舉出SSH10a公開金鑰認證方式、SSH10b公開金鑰認證方式為例來描述,但本手法#2的適用範圍係不限定於此。即使對SSH10a公開金鑰認證方式或SSH10b公開金鑰認證方式的變形例、及其他公開金鑰認證方式,仍可適用。例如,雖然在上記例子中是將公開金鑰設定成(F,y),但由於F是不隨祕密金鑰而變化的參數,因此亦可不將該F對每位證明者做設定,而是設計成系統全體皆共通的參數。此情況下,應個別公開的公開金鑰係只有y,可縮小公開金鑰的大小。又,在上記的對話協定中,雖然針對i=1,…,L個別地選擇亂數α1 ,…,αL ,但這些亂數係亦可共通化成1個。此情況下,可削減在發送挑戰ChA,i 時的通訊成本。
<4:補充>
此處,補充說明本手法#1、#2。
[4-1:關於方式的擴充]
目前為止是針對以多次多變數聯立方程式的求解問題為基礎的公開金鑰認證方式來進行說明。可是,本手法#1、#2的思考方式,係即使對其他公開金鑰認證方式,仍可同樣適用。於是,作為一例,介紹對基於Syndrome Decoding問題之公開金鑰認證方式的適用方法、對基於Constrained Linear Equations問題之公開金鑰認證方式的適用方法、對基於Permuted Kernel問題之公開金鑰認證方式的適用方法、對基於代數曲面上的求區間問題之公開金鑰認證方式的適用方法、對基於Permuted Perceptrons問題之公開金鑰認證方式的適用方法。
(對Syndrome Decoding問題之適用)
基於Syndrome Decoding問題的公開金鑰認證方式,係被記載於例如「Jacques Stern,A New Identification Scheme Based on Syndrome Decoding,CRYPTO 1993,p13-21.」或「Jacques Stern,A New Paradigm for Public Key Identification,IEEE Transactions on Information Theory,1996,p13-21.」。據此,該公開金鑰認證方式係有3回合方式和5回合方式。
3回合方式,係和SSH10a公開金鑰認證方式同樣地,驗證模態係為3模態,存在有可對應至其中2模態為止的偽證演算法。又,5回合方式也是,和SSH10b公開金鑰認證方式同樣地,驗證模態係為2模態,存在有可對應至其中1模態為止的偽證演算法。因此,對3回合方式係可適用之前針對SSH10a公開金鑰認證方式所說明的方法,對5回合方式係可適用之前針對SSH10b公開金鑰認證方式所說明的方法。
(對Constrained Linear Equations問題之適用)
基於Constrained Linear Equations問題的公開金鑰認證方式,係記載於例如「Jacques Stern,Designing Identification Schemes with Keys of Short Size,CRYPTO 1994,p164-173.」。據此,該公開金鑰認證方式係亦有3回合方式和5回合方式。
3回合方式,係和SSH10a公開金鑰認證方式同樣地,驗證模態係為3模態,存在有可對應至其中2模態為止的偽證演算法。又,5回合方式也是,和SSH10b公開金鑰認證方式同樣地,驗證模態係為2模態,存在有可對應至其中1模態為止的偽證演算法。因此,對3回合方式係可適用之前針對SSH10a公開金鑰認證方式所說明的方法,對5回合方式係可適用之前針對SSH10b公開金鑰認證方式所說明的方法。
(對Permuted Kernel問題之適用)
基於Permuted Kernel問題的公開金鑰認證方式,係記載於例如「Adi Shamir,An Efficient Identification Scheme Based on Permuted Kernels(Extended Abstract),CRYPTO 1989,p606-609.」。據此,該公開金鑰認證方式係為驗證模態是2模態,存在有可對應至其中1模態為止的偽證演算法。因此,對該公開金鑰認證方式係可適用之前針對SSH10b公開金鑰認證方式所說明的方法。
(對代數曲面上的求區間問題之適用)
基於代數曲面上的求區間問題的公開金鑰認證方式中,係有3回合與5回合方式(例如參照日本特願2010-125026號等)。3回合方式,係和SSH10a公開金鑰認證方式同樣地,驗證模態係為3模態,存在有可對應至其中2模態為止的偽證演算法。又,5回合方式也是,和SSH10b公開金鑰認證方式同樣地,驗證模態係為2模態,存在有可對應至其中1模態為止的偽證演算法。因此,對3回合方式係可適用之前針對SSH10a公開金鑰認證方式所說明的方法,對5回合方式係可適用之前針對SSH10b公開金鑰認證方式所說明的方法。
(對Permuted Perceptrons問題之適用)
基於Permuted Perceptrons問題的公開金鑰認證方式,係被記載於例如「David Pointcheval,A New Identification Scheme Based on the Perceptrons Problem,EUROCRYPT 1995,p319-328.」或「David Pointcheval and Guillaume Poupard,A New NP-Complete Problem and Public-Key Identification,Des. Codes Cryptography,2003,p5-31.」。據此,該公開金鑰認證方式係有3回合方式和5回合方式。
3回合方式係為驗證模態是4模態,存在有可對應至其中3模態為止的偽證演算法。另一方面,5回合方式係為驗證模態是3模態,存在有可對應至其中2模態為止的偽證演算法。因此,和SSH10a公開金鑰認證方式或SSH10b公開金鑰認證方式同樣地,對此公開金鑰認證方式也是可適用本手法#1、#2之技術。只不過,對該公開金鑰認證方式適用本手法#1之際,需要以下的變更。
對驗證模態為k模態之方式,將祕密金鑰多重化成L=k個而適用本手法#1的情況下,必須要從i=1,…,L中,如下所示般地選擇出1個不回答的i(以下稱作i*)。亦即,i*的選擇方法係為,若Chi0 =Ch*則選擇i*←i0 ,若Chi0 ≠Ch*則從i*{1,…,L}\{i0 }中隨機選擇i*。
又,對驗證模態為k模態之方式,將祕密金鑰多重化成L(L<k)個而適用本手法#1的情況下,必須要從i=1,…,L中,如下所示般地選擇出1個不回答的i(以下稱作i*)。亦即,i*的選擇方法係為,若Chi0 =Ch*則選擇i*←i0 ,若Chi0 ≠Ch*則以機率(1-1/k)-1 (1/L-1/k)選擇i*←i0 ,且以機率1-(1-1/k)-1 (1/L-1/k)從i*{1,…,L}\{i0 }中隨機選擇i*。
若依據上記方法,則無論驗證者要求了哪種驗證模態,i*係以1/L之機率而取1,…,L之值,因此i0 到底是1,…,L的哪一值,此一資訊是被完全隱匿。
如以上所說明,本手法#1、#2係不限於SSH10a公開金鑰認證方式、SSH10b公開金鑰認證方式,可適用於各種公開金鑰認證方式。
[4-2:關於非對話型之公開金鑰認證方式]
適用了上記的本手法#1、#2的公開金鑰認證方式,係為驗證者只會發送亂數的方式,因此可變形成為1回合(非對話型)的公開金鑰認證方式。例如,只要將在N次的並列式反覆構成中與驗證者之間交換的內容裡適用了雜湊函數者,當作從驗證者所發送之亂數的替代來使用即可。又,亦可對雜湊函數的引數,加入證明者所選擇的亂數。如此,藉由取代由驗證者選擇亂數而改為證明者本身利用雜湊函數,就可實現和由驗證者選擇亂數之情形同樣的舉動。只不過,利用理想的雜湊函數為較佳。又,為了使偽證變成不可能,將反覆的次數N增加至非常大,較為理想。藉由這些設計,就可變形成非對話型的公開金鑰認證方式。
[4-3:關於通訊量之削減方法]
此處,一面參照圖19、圖20,一面簡單補充說明對話協定中的通訊量之削減方法。
如已經說明過的,在SSH10a公開金鑰認證方式的第1回合中,從證明者向驗證者會發送訊息之組合(c1 ,c2 ,c3 )。但是,於上記說明中是使用Cmt這種表現。在N次的並列式反覆構成時,該訊息之組合,係如圖19所示,會變成(c1,1 ,c1,2 ,c1,3 ,…,cN,1 ,cN,2 ,cN,3 ),通訊量會變得非常大。於是,本案發明人係想出了將這些訊息總結成1個雜湊值而發送的構成。
如圖19所示,若適用此構成,則第1回合所送出的訊息係變成只有1個雜湊值,可大幅削減通訊量。但是,關於該雜湊值、及從對證明者所送來之挑戰的回答而無法復原之雜湊值,係要連同回答而一起從證明者送來。若採取此構成,則在N次之並列式反覆構成的情況下,所應發送之資訊的數量,可削減2N-1個。如圖20所示,即使對SSH10b公開金鑰認證方式也可適用同樣的構成。此情況下,應發送之資訊的數量可削減N-1個。
以上補充說明了本手法#1、#2。
<5:硬體構成>
上記各演算法,係例如可使用圖21所示之資訊處理裝置的硬體構成來執行。亦即,該當各演算法之處理,係使用電腦程式來控制圖21所示之硬體,而加以實現。此外,該硬體的形態係為任意,例如,個人電腦、行動電話、PHS、PDA等之行動資訊終端、遊戲機、接觸式或非接觸式的IC晶片、接觸式或非接觸式的IC卡、或各種資訊家電,係可包含於其中。其中,上記的PHS係為Personal Handy-phone System之簡稱。又,上記的PDA係為Personal Digital Assistant之簡稱。
如圖21所示,該硬體係主要具有: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之簡稱。
<6:總結>
最後,簡單總結本揭露的實施形態所述之技術內容。此處所述之技術內容,例如可對PC、行動電話、攜帶型遊戲機、攜帶型資訊終端、資訊家電、行車導航系統等各種資訊處理技術做適用。
上記資訊處理裝置的機能構成係可表現如下。該當資訊處理裝置,係具有如下的金鑰保持部、和對話協定執行部。該當金鑰保持部,係針對L個(L≧2)祕密金鑰si (i=1~L)、及n次多變數多項式之組合F(n≧2),將滿足yi =F(si )的L個公開金鑰yi 加以保持。又,上記的對話協定執行部,係與驗證者之間,執行用來證明已知(L-1)個滿足yi =F(si )之祕密金鑰si 所需之對話協定。又,前記對話協定執行部,係與前記驗證者之間執行前記對話協定之際,不讓該當驗證者獲知是使用了哪個祕密金鑰si
如上記,將祕密金鑰si 多重化,執行對話協定之際,利用其中一部分祕密金鑰,然後在對話協定之中不讓人知道哪個祕密金鑰si 有被利用,藉此,即使在並列式反覆構成的情況下,仍可保證對主動性攻撃的安全性等級。亦即,即使偽證者假扮驗證者而試圖取得認證時所利用的祕密金鑰si ,在對話協定之中,驗證者仍無法得知哪個祕密金鑰si 是被利用。亦即,即使是可執行任意次數的對話協定的狀況下,由於祕密金鑰si 之資訊不會從證明者洩漏,因此可保證對主動性攻撃的安全性等級。
(備註)
上記的資訊處理裝置,係為證明者側及驗證者側的認證裝置之一例。又,上記的ROM904、RAM906、記憶部920、可移除式記錄媒體928,係為金鑰保持部之一例。此外,該金鑰保持部中所保持的祕密金鑰si、公開金鑰yi,係由金鑰生成演算法Gen所產生。又,證明者演算法P、驗證者演算法V,係為對話協定執行部之一例。此外,實際上,證明者演算法P、驗證者演算法V是藉由CPU902的機能而被執行,以實現對話協定執行部的機能。又,藉由證明者演算法P所實現的機能,而實現了挑戰收訊部、挑戰選擇部、回答生成部、回答送訊部、訊息送訊部之機能。此外,在資訊的收送訊中,是利用了通訊部926的機能。
以上雖然一面參照添附圖面一面說明了本揭露的理想實施形態,但本揭露當然不限定於所述例子。只要是當業者,在申請專利範圍所記載之範疇內,自然可以想到各種變更例或修正例,而這些當然也都屬於本揭露的技術範圍,這點必須了解。
902...CPU
904...ROM
906...RAM
908...主匯流排
910...橋接器
912...外部匯流排
914...介面
916...輸入部
918...輸出部
920...記憶部
922...驅動機
924...連接埠
926...通訊部
928...可移除式記錄媒體
930...外部連接機器
932...網路
Gen...金鑰生成演算法
P...證明者演算法
V...驗證者演算法
[圖1]用來說明公開金鑰認證方式之演算法構成的說明圖。
[圖2]用來說明n回合之公開金鑰認證方式的說明圖。
[圖3]用來說明SSH10a公開金鑰認證方式之對話協定的說明圖。
[圖4]用來說明SSH10b公開金鑰認證方式之對話協定的說明圖。
[圖5]用來說明對話協定之直列式反覆構成的說明圖。
[圖6]用來說明對話協定之並列式反覆構成的說明圖。
[圖7]用來說明針對SSH10a公開金鑰認證方式之對話協定的偽證演算法的說明圖。
[圖8]用來說明針對SSH10b公開金鑰認證方式之對話協定的偽證演算法的說明圖。
[圖9]用來說明針對SSH10a公開金鑰認證方式之對話協定的本手法#1之適用方法的說明圖。
[圖10]用來說明針對SSH10a公開金鑰認證方式之對話協定的本手法#1之適用方法(變形例1)的說明圖。
[圖11]用來說明針對SSH10a公開金鑰認證方式之對話協定的本手法#1之適用方法(變形例2)的說明圖。
[圖12]用來說明針對SSH10a公開金鑰認證方式之對話協定的本手法#1之適用方法(變形例3)的說明圖。
[圖13]用來說明針對SSH10b公開金鑰認證方式之對話協定的本手法#1之適用方法的說明圖。
[圖14]用來說明針對SSH10b公開金鑰認證方式之對話協定的本手法#1之適用方法(變形例)的說明圖。
[圖15]用來說明針對SSH10a公開金鑰認證方式之對話協定的本手法#2之適用方法的說明圖。
[圖16]用來說明針對SSH10a公開金鑰認證方式之對話協定的本手法#2之適用方法(變形例)的說明圖。
[圖17]用來說明針對SSH10b公開金鑰認證方式之對話協定的本手法#2之適用方法的說明圖。
[圖18]用來說明針對SSH10b公開金鑰認證方式之對話協定的本手法#2之適用方法(變形例)的說明圖。
[圖19]用來說明SSH10a公開金鑰認證方式之對話協定中的通訊量之削減方法的說明圖。
[圖20]用來說明SSH10b公開金鑰認證方式之對話協定中的通訊量之削減方法的說明圖。
[圖21]用來說明可實現本實施形態所述之對話協定的資訊處理裝置的硬體構成例的說明圖。

Claims (27)

  1. 一種認證裝置,其特徵為,具備:金鑰保持部,係針對L個(L≧2)祕密金鑰si (i=1~L)、及n次多變數多項式之組合F(n≧2),將滿足yi =F(si )的L個公開金鑰yi 加以保持;和對話協定執行部,係與驗證者之間執行對話協定,用來證明已知(L-1)個滿足yi =F(si )之祕密金鑰si ;前記對話協定執行部係含有:挑戰收訊部,係從前記驗證者,接收L個挑戰Chi ;和挑戰選擇部,係從已被前記挑戰收訊部所接收的L個挑戰Chi 之中,任意選擇出(L-1)個挑戰Chi ;和回答生成部,係使用前記祕密金鑰si ,生成對於已被前記挑戰選擇部所選擇之(L-1)個挑戰Chi 之各者的(L-1)個回答Rspi ;和回答送訊部,係將已被前記回答生成部所生成的(L-1)個回答Rspi ,發送至前記驗證者。
  2. 如請求項1所記載之認證裝置,其中,前記對話協定執行部係還含有:訊息送訊部,係對前記驗證者,發送L個前記祕密金鑰si 所分別對應之訊息Cmti ;前記挑戰收訊部,係將隨應於已被前記訊息送訊部所發送之各訊息Cmti ,而被前記驗證者從k種(k≧2)驗證模 態之中所選擇出來的驗證模態加以表示的挑戰Chi ,予以接收。
  3. 如請求項2所記載之認證裝置,其中,若前記訊息Cmti 為Cmti =(ci,1 ,…,ci,N ),則前記訊息送訊部係使用單向性函數H而算出新的訊息Cmt’=H(Cmt1 ,…,CmtL ),然後將該當訊息Cmt’發送至前記驗證者;前記回答送訊部,係將前記回答Rspi ,連同即使前記驗證者利用該當回答Rspi 也無法復原之前記訊息Cmti 的要素,予以發送。
  4. 如請求項2所記載之認證裝置,其中,前記金鑰保持部,係在前記L個祕密金鑰si 當中,不保存其中1把祕密金鑰si0 (1≦i0 ≦L);前記對話協定執行部,係基於偽證演算法,而執行在前記對話協定之中所被執行的關於前記祕密金鑰si0 的處理。
  5. 一種認證裝置,其特徵為,具備:金鑰保持部,係針對L個祕密金鑰si (i=1~L)、n次多變數多項式之組合F(n≧2),將滿足yi =F(si )的L個公開金鑰yi 加以保持;和挑戰收訊部,係從驗證者,接收Q組(Q≧2)之L個挑戰Chi (j) (j=1~Q);和挑戰選擇部,係從已被前記挑戰收訊部所接收的Q組 之L個挑戰Chi (j) 之中,任意選擇出1組之L個挑戰Chi (j) ;和回答生成部,係使用前記祕密金鑰si ,生成對於已被前記挑戰選擇部所選擇之L個挑戰Chi (j) 之各者的L個回答Rspi ;和回答送訊部,係將已被前記回答生成部所生成的L個回答Rspi ,發送至前記驗證者。
  6. 如請求項5所記載之認證裝置,其中,前記對話協定執行部係還含有:訊息送訊部,係對前記驗證者,發送L個前記祕密金鑰si 所分別對應之訊息Cmti ;前記挑戰收訊部,係將隨應於已被前記訊息送訊部所發送之各訊息Cmti ,而被前記驗證者從k種(k≧2)驗證模態之中所選擇出來的驗證模態加以表示的挑戰Chi (j) ,予以接收。
  7. 如請求項6所記載之認證裝置,其中,若前記訊息Cmti 為Cmti =(ci,1 ,…,ci,N ),則前記訊息送訊部係使用單向性函數H而算出新的訊息Cmt’=H(Cmt1 ,…,CmtL ),然後將該當訊息Cmt’發送至前記驗證者;前記回答送訊部,係將前記回答Rspi ,連同即使前記驗證者利用該當回答Rspi 也無法復原之前記訊息Cmti 的要素,予以發送。
  8. 一種認證方法,其特徵為, 包含有:針對L個(L≧2)祕密金鑰si (i=1~L)、及n次多變數多項式之組合F(n≧2),將滿足yi =F(si )的L個公開金鑰yi 加以生成;和與驗證者之間執行對話協定,用來證明已知(L-1)個滿足yi =F(si )之祕密金鑰si ;前記執行係包含有:從前記驗證者,接收L個挑戰Chi ;和從已被接收的L個挑戰Chi 之中,任意選擇出(L-1)個挑戰Chi ;和使用前記祕密金鑰si ,生成對於已被選擇之(L-1)個挑戰Chi 之各者的(L-1)個回答Rspi ;和將已被生成的(L-1)個回答Rspi ,發送至前記驗證者。
  9. 一種認證程式,其特徵為,係用來使電腦實現:金鑰保持機能,係針對L個(L≧2)祕密金鑰si (i=1~L)、及n次多變數多項式之組合F(n≧2),將滿足yi =F(si )的L個公開金鑰yi 加以保持;和對話協定執行機能,係與驗證者之間執行對話協定,用來證明已知(L-1)個滿足yi =F(si )之祕密金鑰si ;其中,前記對話協定執行機能係含有:挑戰收訊機能,係從前記驗證者,接收L個挑戰 Chi ;和挑戰選擇機能,係從已被前記挑戰收訊機能所接收的L個挑戰Chi 之中,任意選擇出(L-1)個挑戰Chi ;和回答生成機能,係使用前記祕密金鑰si ,生成對於已被前記挑戰選擇機能所選擇之(L-1)個挑戰Chi 之各者的(L-1)個回答Rspi ;和回答送訊機能,係將已被前記回答生成機能所生成的(L-1)個回答Rspi ,發送至前記驗證者。
  10. 一種認證方法,其特徵為,包含有:針對L個祕密金鑰si (i=1~L)、n次多變數多項式之組合F(n≧2),生成滿足yi =F(si )的L個公開金鑰yi ;和從驗證者,接收Q組(Q≧2)之L個挑戰Chi (j) (j=1~Q);和從已被接收的Q組之L個挑戰Chi (j) 之中,任意選擇出1組之L個挑戰Chi (j) ;和使用前記祕密金鑰si ,生成對於已被選擇之L個挑戰Chi (j) 之各者的L個回答Rspi ;和將已被生成的L個回答Rspi ,發送至前記驗證者。
  11. 一種認證程式,其特徵為,係用來使電腦實現:金鑰保持機能,係針對L個祕密金鑰si (i=1~L)、n次多變數多項式F(n≧2),將滿足yi =F(si )的L個公開金鑰yi 加以保持;和挑戰收訊機能,係從驗證者,接收Q組(Q≧2)之L個 挑戰Chi (j) (j=1~Q);和挑戰選擇機能,係從已被前記挑戰收訊機能所接收的Q組之L個挑戰Chi (j) 之中,任意選擇出1組之L個挑戰Chi (j) ;和回答生成機能,係使用前記祕密金鑰si ,生成對於已被前記挑戰選擇機能所選擇之L個挑戰Chi (j) 之各者的L個回答Rspi ;和回答送訊機能,係將已被前記回答生成機能所生成的L個回答Rspi ,發送至前記驗證者。
  12. 一種認證裝置,其特徵為,具備:金鑰設定部,係將sKn 設定成祕密金鑰,將環K上的多次多項式fi (x1 ,…,xn )(i=1~m)及yi =fi (s)設定成公開金鑰,或者,將前記環K上的多次多項式fi (x1 ,…,xn )(i=1~m)當成系統全體共通之參數,將前記yi =fi (s)設定成前記公開金鑰;和訊息送訊部,係對驗證者發送訊息c;和驗證模態收訊部,係將針對1個前記訊息c的k種(k≧3)之驗證模態之中已被前記驗證者所選擇之1個驗證模態之資訊,予以接收;和回答送訊部,係從k種之回答資訊之中,將已被前記驗證模態收訊部所接收到之驗證模態之資訊所對應的回答資訊,發送至前記驗證者;前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以關於x之多次多項式fi (x+r)與多項式fi ’(x)為基礎的多項式fi ”(x),而被計算出來的資訊。
  13. 如請求項12所記載之認證裝置,其中,前記多次多項式fi (x1 ,…,xn )(i=1~m)係為2次多項式;前記多項式fi ’(x)係為1次多項式。
  14. 如請求項13所記載之認證裝置,其中,前記1次多項式fi ’(x)係為,關於x的1次多項式fi (x+t)-fi (x)-fi (t)+ei (ei K)。
  15. 一種認證裝置,其特徵為,具備:金鑰設定部,係將sKn 設定成祕密金鑰,將環K上的2次多項式fi (x1 ,…,xn )(i=1~m)及yi =fi (s)設定成公開金鑰,或者,將前記環K上的2次多項式fi (x1 ,…,xn )(i=1~m)當成系統全體共通之參數,將前記yi =fi (s)設定成前記公開金鑰;和訊息送訊部,係對驗證者發送訊息c;和驗證模態收訊部,係將針對1個前記訊息c的k種(k≧3)之驗證模態之中已被前記驗證者所選擇之1個驗證模態之資訊,予以接收;和回答送訊部,係從k種之回答資訊之中,將已被前記驗證模態收訊部所接收到之驗證模態之資訊所對應的回答資訊,發送至前記驗證者; 前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以對前記2次多項式fi 代入前記r而成之fi (r)與ei K為基礎的eiK,而被計算出來的資訊。
  16. 一種認證方法,其特徵為,含有:將sKn 設定成祕密金鑰,將環K上的多次多項式fi (x1 ,…,xn )(i=1~m)及yi =fi (s)設定成公開金鑰,或者,將前記環K上的多次多項式fi (x1 ,…,xn )(i=1~m)當成系統全體共通之參數,將前記yi =fi (s)設定成前記公開金鑰;和對驗證者發送訊息c;和將針對1個前記訊息c的k種(k≧3)之驗證模態之中已被前記驗證者所選擇之1個驗證模態之資訊,予以接收;和從k種之回答資訊之中,將針對已被接收之驗證模態之資訊所對應的回答資訊,發送至前記驗證者;前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以關於x之多次多項式fi (x+r)與多項式fi ’(x)為基礎的多項式fi ”(x),而被計算出來的資訊。
  17. 一種認證程式,其特徵為,令電腦實現:將sKn 設定成祕密金鑰,將環K上的多次多項式 fi (x1 ,…,xn )(i=1~m)及yi =fi (s)設定成公開金鑰,或者,將前記環K上的多次多項式fi (x1 ,…,xn )(i=1~m)當成系統全體共通之參數,將前記yi =fi (s)設定成前記公開金鑰之機能;和對驗證者發送訊息c之機能;和將針對1個前記訊息c的k種(k≧3)之驗證模態之中已被前記驗證者所選擇之1個驗證模態之資訊予以接收之機能;和從k種之回答資訊之中,將針對已被接收之驗證模態之資訊所對應的回答資訊,發送至前記驗證者之機能;前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以關於x之多次多項式fi (x+r)與多項式fi ’(x)為基礎的多項式fi ”(x),而被計算出來的資訊。
  18. 一種認證方法,其特徵為,含有:將sKn 設定成祕密金鑰,將環K上的2次多項式fi (x1 ,…,xn )(i=1~m)及yi =fi (s)設定成公開金鑰,或者,將前記環K上的2次多項式fi (x1 ,…,xn )(i=1~m)當成系統全體共通之參數,將前記yi =fi (s)設定成前記公開金鑰;和對驗證者發送訊息c;和將針對1個前記訊息c的k種(k≧3)之驗證模態之中已被前記驗證者所選擇之1個驗證模態之資訊,予以接 收;和從k種之回答資訊之中,將針對已被接收之驗證模態之資訊所對應的回答資訊,發送至前記驗證者;前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以對前記2次多項式fi 代入前記r而成之fi (r)與ei K為基礎的eiK,而被計算出來的資訊。
  19. 一種認證程式,其特徵為,令電腦實現:將sKn 設定成祕密金鑰,將環K上的2次多項式fi (x1 ,…,xn )(i=1~m)及yi =fi (s)設定成公開金鑰,或者,將前記環K上的2次多項式fi (x1 ,…,xn )(i=1~m)當成系統全體共通之參數,將前記yi =fi (s)設定成前記公開金鑰之機能;和對驗證者發送訊息c之機能;和將針對1個前記訊息c的k種(k≧3)之驗證模態之中已被前記驗證者所選擇之1個驗證模態之資訊予以接收之機能;和從k種之回答資訊之中,將針對已被接收之驗證模態之資訊所對應的回答資訊,發送至前記驗證者之機能;前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以對前記2次多項式fi 代入前記r而成之fi (r)與ei K為基礎的eiK,而被計算出來的資訊。
  20. 一種認證裝置,其特徵為,sKn 是被設定成祕密金鑰,環K上的多次多項式fi (x1 ,…,xn )(i=1~m)及yi =fi (s)是被設定成公開金鑰,或者,前記環K上的多次多項式fi (x1 ,…,xn )(i=1~m)是被當成系統全體共通之參數,前記yi =fi (s)是被設定成前記公開金鑰;具備:訊息收訊部,係從證明者接收訊息c;和驗證模態選擇部,係從針對1個前記訊息c的k種(k≧3)之驗證模態之中,選擇出1個驗證模態之資訊;和驗證模態送訊部,係將已被前記驗證模態選擇部所選擇的驗證模態之資訊,對前記證明者進行發送;和回答收訊部,係從k種之回答資訊之中,將已被前記驗證模態送訊部所發送之驗證模態之資訊所對應的回答資訊,從前記證明者予以接收;和驗證部,係使用已被前記訊息收訊部所接收到的訊息c、及已被前記回答收訊部所接收到的回答資訊,來驗證前記證明者的正當性;前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以關於x之多次多項式fi (x+r)與多項式fi ’(x)為基礎的多項式fi ”(x),而被計算出來的資訊。
  21. 如請求項20所記載之認證裝置,其中,前記多次多項式fi (x1 ,…,xn )(i=1~m)係為2次多 項式;前記多項式fi ’(x)係為1次多項式。
  22. 如請求項21所記載之認證裝置,其中,前記1次多項式fi ’(x)係為,關於x的1次多項式fi (x+t)-fi (x)-fi (t)+ei (ei K)。
  23. 一種認證裝置,其特徵為,sKn 是被設定成祕密金鑰,環K上的2次多項式fi (x1 ,…,xn )(i=1~m)及yi =fi (s)是被設定成公開金鑰,或者,前記環K上的2次多項式fi (x1 ,…,xn )(i=1~m)是被當成系統全體共通之參數,前記yi =fi (s)是被設定成前記公開金鑰;具備:訊息收訊部,係從證明者接收訊息c;和驗證模態選擇部,係從針對1個前記訊息c的k種(k≧3)之驗證模態之中,選擇出1個驗證模態之資訊;和驗證模態送訊部,係將已被前記驗證模態選擇部所選擇的驗證模態之資訊,對前記證明者進行發送;和回答收訊部,係從k種之回答資訊之中,將已被前記驗證模態送訊部所發送之驗證模態之資訊所對應的回答資訊,從前記證明者予以接收;和驗證部,係使用已被前記訊息收訊部所接收到的訊息c、及已被前記回答收訊部所接收到的回答資訊,來驗證前記證明者的正當性;前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以對前記2次多項式fi 代入前記r而成之fi (r)與ei K為基礎的eiK,而被計算出來的資訊。
  24. 一種認證方法,其特徵為,sKn 是被設定成祕密金鑰,環K上的多次多項式fi (x1 ,…,xn )(i=1~m)及yi =fi (s)是被設定成公開金鑰,或者,前記環K上的多次多項式fi (x1 ,…,xn )(i=1~m)是被當成系統全體共通之參數,前記yi =fi (s)是被設定成前記公開金鑰;含有:訊息收訊步驟,係從證明者接收訊息c;和驗證模態選擇步驟,係從針對1個前記訊息c的k種(k≧3)之驗證模態之中,選擇出1個驗證模態之資訊;和驗證模態送訊步驟,係將前記驗證模態選擇步驟中所選擇的驗證模態之資訊,對前記證明者進行發送;和回答收訊步驟,係從k種之回答資訊之中,將前記驗證模態送訊步驟中所發送之驗證模態之資訊所對應的回答資訊,從前記證明者予以接收;和驗證步驟,係使用前記訊息收訊步驟中所接收到的訊息c、及前記回答收訊步驟中所接收到的回答資訊,來驗證前記證明者的正當性;前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以關於x之多次多項式fi (x+r)與多項式fi ’ (x)為基礎的多項式fi ”(x),而被計算出來的資訊。
  25. 一種認證程式,其特徵為,sKn 是被設定成祕密金鑰,環K上的多次多項式fi (x1 ,…,xn )(i=1~m)及yi =fi (s)是被設定成公開金鑰,或者,前記環K上的多次多項式fi (x1 ,…,xn )(i=1~m)是被當成系統全體共通之參數,前記yi =fi (s)是被設定成前記公開金鑰;該程式係令電腦實現:訊息收訊機能,係從證明者接收訊息c;和驗證模態選擇機能,係從針對1個前記訊息c的k種(k≧3)之驗證模態之中,選擇出1個驗證模態之資訊;和驗證模態送訊機能,係將已被前記驗證模態選擇機能所選擇的驗證模態之資訊,對前記證明者進行發送;和回答收訊機能,係從k種之回答資訊之中,將已被前記驗證模態送訊機能所發送之驗證模態之資訊所對應的回答資訊,從前記證明者予以接收;和驗證機能,係使用已被前記訊息收訊機能所接收到的訊息c、及已被前記回答收訊機能所接收到的回答資訊,來驗證前記證明者的正當性;前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以關於x之多次多項式fi (x+r)與多項式fi ’(x)為基礎的多項式fi ”(x),而被計算出來的資訊。
  26. 一種認證方法,其特徵為, sKn 是被設定成祕密金鑰,環K上的2次多項式fi (x1 ,…,xn )(i=1~m)及yi =fi (s)是被設定成公開金鑰,或者,前記環K上的2次多項式fi (x1 ,…,xn )(i=1~m)是被當成系統全體共通之參數,前記yi =fi (s)是被設定成前記公開金鑰;含有:訊息收訊步驟,係從證明者接收訊息c;和驗證模態選擇步驟,係從針對1個前記訊息c的k種(k≧3)之驗證模態之中,選擇出1個驗證模態之資訊;和驗證模態送訊步驟,係將前記驗證模態選擇步驟中所選擇的驗證模態之資訊,對前記證明者進行發送;和回答收訊步驟,係從k種之回答資訊之中,將前記驗證模態送訊步驟中所發送之驗證模態之資訊所對應的回答資訊,從前記證明者予以接收;和驗證步驟,係使用前記訊息收訊步驟中所接收到的訊息c、及前記回答收訊步驟中所接收到的回答資訊,來驗證前記證明者的正當性;前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以對前記2次多項式fi 代入前記r而成之fi (r)與ei K為基礎的eiK,而被計算出來的資訊。
  27. 一種認證程式,其特徵為,sKn 是被設定成祕密金鑰,環K上的2次多項式fi (x1 ,…,xn )(i=1~m)及yi =fi (s)是被設定成公開金 鑰,或者,前記環K上的2次多項式fi (x1 ,…,xn )(i=1~m)是被當成系統全體共通之參數,前記yi =fi (s)是被設定成前記公開金鑰;該程式係令電腦實現:訊息收訊機能,係從證明者接收訊息c;和驗證模態選擇機能,係從針對1個前記訊息c的k種(k≧3)之驗證模態之中,選擇出1個驗證模態之資訊;和驗證模態送訊機能,係將已被前記驗證模態選擇機能所選擇的驗證模態之資訊,對前記證明者進行發送;和回答收訊機能,係從k種之回答資訊之中,將已被前記驗證模態送訊機能所發送之驗證模態之資訊所對應的回答資訊,從前記證明者予以接收;和驗證機能,係使用已被前記訊息收訊機能所接收到的訊息c、及已被前記回答收訊機能所接收到的回答資訊,來驗證前記證明者的正當性;前記回答資訊係為,使用:以前記祕密金鑰s與rKn 為基礎的資訊zKn 、和以前記r與tKn 為基礎的t’Kn 、和以對前記2次多項式fi 代入前記r而成之fi (r)與ei K為基礎的eiK,而被計算出來的資訊。
TW100124969A 2010-07-30 2011-07-14 Authentication device, authentication method, and program TWI455555B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010171940 2010-07-30
JP2010224752A JP5594034B2 (ja) 2010-07-30 2010-10-04 認証装置、認証方法、及びプログラム

Publications (2)

Publication Number Publication Date
TW201215069A TW201215069A (en) 2012-04-01
TWI455555B true TWI455555B (zh) 2014-10-01

Family

ID=45529885

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100124969A TWI455555B (zh) 2010-07-30 2011-07-14 Authentication device, authentication method, and program

Country Status (13)

Country Link
US (2) US9076000B2 (zh)
EP (1) EP2600563A4 (zh)
JP (1) JP5594034B2 (zh)
KR (1) KR101808363B1 (zh)
CN (1) CN103155480B (zh)
AU (1) AU2011283888B2 (zh)
BR (1) BR112013001733A2 (zh)
CA (2) CA2804394C (zh)
MY (1) MY181936A (zh)
RU (1) RU2573772C2 (zh)
SG (1) SG187039A1 (zh)
TW (1) TWI455555B (zh)
WO (1) WO2012014669A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5790289B2 (ja) 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP5790287B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び記録媒体
TW201351195A (zh) * 2012-03-02 2013-12-16 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
US10447475B1 (en) * 2018-11-08 2019-10-15 Bar Ilan University System and method for managing backup of cryptographic keys
CN110650160B (zh) * 2019-10-29 2022-01-04 北京天威诚信电子商务服务有限公司 一种身份认证方法及系统
JP7273742B2 (ja) * 2020-02-07 2023-05-15 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6411715B1 (en) * 1997-11-10 2002-06-25 Rsa Security, Inc. Methods and apparatus for verifying the cryptographic security of a selected private and public key pair without knowing the private key
US20020080958A1 (en) * 1997-09-16 2002-06-27 Safenet, Inc. Cryptographic key management scheme
US20050117751A1 (en) * 2003-11-27 2005-06-02 Nec Corporation Cryptographic communication system
TWI280026B (en) * 2004-07-02 2007-04-21 Univ Chang Gung RSA with personalized secret
US20070121936A1 (en) * 2004-01-23 2007-05-31 Louis Guillou Zero-knowledge proof cryptography methods and devices
US20070226798A1 (en) * 1999-07-29 2007-09-27 Intertrust Technologies Corporation Systems and methods for using cryptography to protect secure and insecure computing environments
TWI326182B (en) * 2005-11-30 2010-06-11 Univ Chang Gung Asymmetric cryptography with discretionary private key

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375170A (en) * 1992-11-13 1994-12-20 Yeda Research & Development Co., Ltd. Efficient signature scheme based on birational permutations
FR2737370B1 (fr) 1995-07-27 1997-08-22 Bull Cp8 Procede de communication cryptographique
US5710814A (en) * 1996-07-23 1998-01-20 Cheyenne Property Trust Cryptographic unit touch point logic
JPH1165439A (ja) * 1996-08-09 1999-03-05 Nippon Telegr & Teleph Corp <Ntt> N進表現暗号による通信および認証方法、ならびにそれらの装置、およびn進表現暗号による通信および認証プログラムを格納した記憶媒体
US6076163A (en) * 1997-10-20 2000-06-13 Rsa Security Inc. Secure user identification based on constrained polynomials
US6959085B1 (en) * 1999-05-03 2005-10-25 Ntru Cryptosystems, Inc. Secure user identification based on ring homomorphisms
ATE518327T1 (de) * 1999-10-01 2011-08-15 Phentam Dire Nv Llc Verfahren, system und vorrichtung zum beweis der authentizität einer einheit oder der integrität einer nachricht
US20020136401A1 (en) * 2000-07-25 2002-09-26 Jeffrey Hoffstein Digital signature and authentication method and apparatus
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7114178B2 (en) * 2001-05-22 2006-09-26 Ericsson Inc. Security system
US7308097B2 (en) * 2001-12-07 2007-12-11 Ntru Cryptosystems, Inc. Digital signature and authentication method and apparatus
AU2003252817A1 (en) * 2002-03-13 2003-09-22 Koninklijke Philips Electronics N.V. Polynomial-based multi-user key generation and authentication method and system
US8046832B2 (en) * 2002-06-26 2011-10-25 Microsoft Corporation Spam detector with challenges
JP4282546B2 (ja) * 2004-05-19 2009-06-24 株式会社東芝 暗号装置、復号装置、鍵生成装置、プログラム及び方法
EP1797668B1 (en) 2004-09-30 2016-08-03 Koninklijke Philips N.V. Method of authentication based on polynomials
US20060245587A1 (en) * 2005-04-28 2006-11-02 Binyamin Pinkas System and method for private information matching
US7958362B2 (en) * 2005-10-11 2011-06-07 Chang Gung University User authentication based on asymmetric cryptography utilizing RSA with personalized secret
JP5035810B2 (ja) * 2006-06-30 2012-09-26 インターナショナル・ビジネス・マシーンズ・コーポレーション モバイル・デバイスにおけるメッセージ処理
JP4197710B2 (ja) * 2006-07-19 2008-12-17 株式会社東芝 暗号装置、復号装置、プログラム及び方法
US8006300B2 (en) * 2006-10-24 2011-08-23 Authernative, Inc. Two-channel challenge-response authentication method in random partial shared secret recognition system
US8411854B2 (en) * 2008-01-02 2013-04-02 National University Of Ireland, Galway Method and apparatus for authenticating a user
US8713655B2 (en) * 2008-04-21 2014-04-29 Indian Institute Of Technology Method and system for using personal devices for authentication and service access at service outlets
JP2010049215A (ja) * 2008-08-25 2010-03-04 Toshiba Corp パラメータ生成装置、暗号処理システム、方法およびプログラム
JP4756067B2 (ja) 2008-11-27 2011-08-24 株式会社サンセイアールアンドディ 遊技機

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020080958A1 (en) * 1997-09-16 2002-06-27 Safenet, Inc. Cryptographic key management scheme
US6411715B1 (en) * 1997-11-10 2002-06-25 Rsa Security, Inc. Methods and apparatus for verifying the cryptographic security of a selected private and public key pair without knowing the private key
US20070226798A1 (en) * 1999-07-29 2007-09-27 Intertrust Technologies Corporation Systems and methods for using cryptography to protect secure and insecure computing environments
US20050117751A1 (en) * 2003-11-27 2005-06-02 Nec Corporation Cryptographic communication system
US20070121936A1 (en) * 2004-01-23 2007-05-31 Louis Guillou Zero-knowledge proof cryptography methods and devices
TWI280026B (en) * 2004-07-02 2007-04-21 Univ Chang Gung RSA with personalized secret
TWI326182B (en) * 2005-11-30 2010-06-11 Univ Chang Gung Asymmetric cryptography with discretionary private key

Also Published As

Publication number Publication date
JP5594034B2 (ja) 2014-09-24
CN103155480B (zh) 2015-11-25
KR101808363B1 (ko) 2017-12-12
EP2600563A4 (en) 2016-10-19
RU2573772C2 (ru) 2016-01-27
KR20130100959A (ko) 2013-09-12
US20150256342A1 (en) 2015-09-10
US9602285B2 (en) 2017-03-21
MY181936A (en) 2021-01-14
CN103155480A (zh) 2013-06-12
AU2011283888B2 (en) 2015-10-29
RU2013103035A (ru) 2014-07-27
WO2012014669A1 (ja) 2012-02-02
CA2804394A1 (en) 2012-02-02
EP2600563A1 (en) 2013-06-05
AU2011283888A1 (en) 2012-12-13
US20130089201A1 (en) 2013-04-11
SG187039A1 (en) 2013-02-28
CA2804394C (en) 2018-05-22
JP2012050053A (ja) 2012-03-08
US9076000B2 (en) 2015-07-07
TW201215069A (en) 2012-04-01
BR112013001733A2 (pt) 2016-05-31
CA3000137A1 (en) 2012-02-02

Similar Documents

Publication Publication Date Title
US8959355B2 (en) Authentication device, authentication method, program, and signature generation device
Katz et al. Introduction to modern cryptography: principles and protocols
CN101238677B (zh) 使用以非一次一密加密进行加密的签名密钥的加密认证和/或共享加密密钥的建立、包括(但不限于)对可延展攻击具有改进安全性的技术
TWI455555B (zh) Authentication device, authentication method, and program
CN109450640B (zh) 基于sm2的两方签名方法及系统
CN107248909A (zh) 一种基于sm2算法的无证书安全签名方法
WO2016049406A1 (en) Method and apparatus for secure non-interactive threshold signatures
CN111049647B (zh) 一种基于属性门限的非对称群组密钥协商方法
US9088419B2 (en) Keyed PV signatures
KR101986392B1 (ko) 정보 처리 장치, 정보 처리 방법, 및 기록 매체
CN113132104A (zh) 一种主动安全的ecdsa数字签名两方生成方法
Karati et al. Provably secure and authenticated data sharing protocol for IoT‐based crowdsensing network
Zhang et al. Robust and efficient password authenticated key agreement with user anonymity for session initiation protocol‐based communications
CN111669275B (zh) 一种无线网络环境下可选择从节点的主从协作签名方法
US20140189361A1 (en) Nformation processing apparatus, signature generation apparatus, information processing method, signature generation method, and program
KR20200055672A (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법
Tseng et al. Enhancement on strongly secure group key agreement
CN114189329B (zh) 一种公钥认证可否认加密方法及系统
US20140205088A1 (en) Information processing apparatus and information processing method
Flores On Provable Security of Entity Authentication Schemes
TW201310957A (zh) 資訊處理裝置、資訊處理方法、程式及記錄媒體
Kou et al. Security fundamentals
Chaturvedi et al. A secure key agreement protocol using braid groups
Palacio On* identification, zero-knowledge, and plaintext-aware-encryption

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees