信息處理設(shè)備、簽名提供方法、簽名驗(yàn)證方法、程序和記錄介質(zhì)的制作方法
【專利摘要】實(shí)現(xiàn)高度安全和高效的電子簽名方案。本發(fā)明提供了一種信息處理設(shè)備:基于在環(huán)(K)上定義的多元多項(xiàng)式組(F=(f1,…,fm))和向量s(s∈Kn)生成N個(gè)消息;將文檔M和N組消息輸入到單向函數(shù);選擇N個(gè)第一信息;生成分別對(duì)應(yīng)于N個(gè)第一信息的N個(gè)第二信息;以及向驗(yàn)證者提供包括N個(gè)第一信息和N個(gè)第二信息的數(shù)字簽名,其中,所述驗(yàn)證者知道上述多元多項(xiàng)式組(F)和向量y(y=(y1,…,ym)=(f1(s),…,fm(s)))。向量s構(gòu)成簽名密鑰,多元多項(xiàng)式組(F)和向量y構(gòu)成公開密鑰,并且每個(gè)消息包括通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于所使用的第二信息的第一信息的類型而選擇的特定運(yùn)算而獲得的信息。
【專利說明】信息處理設(shè)備、簽名提供方法、簽名驗(yàn)證方法、程序和記錄介質(zhì)
【技術(shù)領(lǐng)域】
[0001]本技術(shù)涉及信息處理設(shè)備、簽名提供方法、簽名驗(yàn)證方法、程序和記錄介質(zhì)。
【背景技術(shù)】
[0002]隨著信息處理技術(shù)和通信技術(shù)的快速發(fā)展,文檔被快速數(shù)字化,無論該文檔是公開的還是私人的。隨著這些文檔的數(shù)字化,許多個(gè)人和公司對(duì)電子文檔的安全性管理具有相當(dāng)大的關(guān)注。響應(yīng)于該關(guān)注的增加,在各個(gè)領(lǐng)域中已經(jīng)積極研究了針對(duì)諸如竊取或偽造電子文檔的篡改行為的措施。關(guān)于對(duì)電子文件的竊取,例如通過加密電子文檔來確保安全性。另外,關(guān)于對(duì)電子文件的偽造,例如通過使用數(shù)字簽名來確保安全性。然而,當(dāng)要使用的加密或數(shù)字簽名不具有高防篡改性時(shí),不能確保足夠的安全性。
[0003]數(shù)字簽名用于指定電子文檔的作者。因此,數(shù)字簽名應(yīng)僅能夠由電子文檔的作者生成。如果惡意第三方能夠生成相同的數(shù)字簽名,則這樣的第三方可以模仿電子文檔的作者。即,電子文檔被惡意第三方偽造。關(guān)于防止這樣的偽造的數(shù)字簽名的安全性,已經(jīng)表達(dá)了各種觀點(diǎn)。作為目前廣泛使用的數(shù)字簽名方案,例如已知RSA簽名方案和DSA簽名方案。
[0004]RSA簽名方案采用“大合數(shù)的質(zhì)因數(shù)分解(下文中為質(zhì)因數(shù)分解問題)的難度”作為安全性基礎(chǔ)。另外,DSA簽名方案采用“求解離散對(duì)數(shù)問題的難度”作為安全性的基礎(chǔ)。這些基礎(chǔ)基于不存在通過使用傳統(tǒng)計(jì)算機(jī)高效地求解質(zhì)因數(shù)分解問題和離散對(duì)數(shù)問題的算法。即,上述難度提出了傳統(tǒng)計(jì)算機(jī)的計(jì)算難度。然而,據(jù)說當(dāng)使用量子計(jì)算機(jī)時(shí),可以高效地計(jì)算質(zhì)因數(shù)分解問題和離散對(duì)數(shù)問題的解。
[0005]類似于RSA簽名方案和DSA簽名方案,目前采用的數(shù)字簽名方案和公開密鑰認(rèn)證方案中的多種方案也采用質(zhì)因數(shù)分解問題或離散對(duì)數(shù)問題的難度作為安全性基礎(chǔ)。因此,如果量子計(jì)算機(jī)投入實(shí)際使用,則這樣的數(shù)字簽名方案和公開密鑰認(rèn)證方案的安全性將不能確保。從而,期望實(shí)現(xiàn)新的數(shù)字簽名方案和公開密鑰認(rèn)證方案,其采用與可通過量子計(jì)算機(jī)容易求解的諸如質(zhì)因數(shù)分解問題和離散對(duì)數(shù)問題的問題不同的問題作為安全性的基礎(chǔ)。作為不能通過量子計(jì)算機(jī)容易求解的問題,例如存在關(guān)于多元多項(xiàng)式的問題。
[0006]例如,作為采用多元多項(xiàng)式問題作為安全性基礎(chǔ)的數(shù)字簽名方案,已知基于Matsumoto-1mai (MI)密碼、隱藏域方程(HFE)密碼、油醋(Oil-Vinegar,0V)簽名方案、以及溫順變換方法(TamedTransformation Method,TTM)密碼的數(shù)字簽名方案。例如,在下面的非專利文獻(xiàn)I和2中公開了基于HFE的數(shù)字簽名方案。
[0007]引用列表
[0008]非專利文獻(xiàn)
[0009]非專利文獻(xiàn) 1:Jacques Patarin, Asymmetric Cryptography with a HiddenMonomial, CRYPT01996, pp.45-60。
[0010]非專利文獻(xiàn)2:Patarin, J., Courtois, N., and Goubin, L., QUARTZ, 128-Bit LongDigital Signatures,In Naccache, D.,EcL Topics in Cryptology-CT-RSA2001 (SanFrancisco, CA, USA, April 2001), vol.2020of Lecture Notes in Computer Science, Springer-Verlag., pp.282-297。
【發(fā)明內(nèi)容】
[0011]技術(shù)問題 [0012]如上所述,多元多項(xiàng)式問題是即使在使用量子計(jì)算機(jī)時(shí)也難以求解的被稱為NP困難問題的問題的示例。通常,使用以HFE等為代表的多元多項(xiàng)式問題的公開密鑰認(rèn)證方案使用具有特定陷門的多階多元聯(lián)立方程。例如,提供關(guān)于Xl,-,xn的多階多元聯(lián)立方程F (X1,…,xn) =y和線性轉(zhuǎn)換A和B,并秘密地管理線性轉(zhuǎn)換A和B。在該情況下,多階多元聯(lián)立方程F和線性轉(zhuǎn)換A和B為陷門。
[0013]知道陷門F、A和B的實(shí)體可以求解關(guān)于X1,…,Xn的方程B (F (A (X1,…,xn))) =y ’。另一方面,不知道陷門F、A和B的實(shí)體不能求解關(guān)于X1,…,Xn的方程B (F (AU1,…,xn)))=y’。通過使用該機(jī)制,可以實(shí)現(xiàn)采用求解多階多元聯(lián)立方程的難度作為安全性基礎(chǔ)的公開密鑰認(rèn)證方案和數(shù)字簽名方案。
[0014]如上所述,為了實(shí)現(xiàn)公開密鑰認(rèn)證方案或數(shù)字簽名方案,需要準(zhǔn)備滿足B(F(A(Xl,一,Xn)))=y的特定多階多元聯(lián)立方程。另外,在簽名生成時(shí),需要求解多階多元聯(lián)立方程F。為此,可用的多階多元聯(lián)立方程F已經(jīng)限于相對(duì)容易可解的方程。即,在過去的方案中,僅僅使用了可以相對(duì)容易求解的三個(gè)函數(shù)(陷門)B、F和A的組合形式的多階多元聯(lián)立方程B(F(A(X1,…,xn))) =y,因此難以確保足夠的安全性。
[0015]期望提供一種新穎的和改善的信息處理設(shè)備、簽名提供方法、簽名驗(yàn)證方法、程序和記錄介質(zhì),并且能夠使用高效求解方法(陷門)未知的多階多元聯(lián)立方程實(shí)現(xiàn)具有高安全性的高效數(shù)字簽名方案。
[0016]解決問題的技術(shù)方案
[0017]根據(jù)本技術(shù)的一個(gè)方面,提供了一種信息處理設(shè)備,包括:消息生成單兀,基于在環(huán)K上定義的多階多元多項(xiàng)式組F=(f\,…,fm)和作為集合Kn的元素的向量s生成N組消息;第一信息選擇單元,將文檔M和N組消息輸入到單向函數(shù),并且選擇N個(gè)第一信息,其中,所述單向函數(shù)針對(duì)一組輸入信息從k個(gè)第一信息(其中k ^ 3)中選擇一個(gè)第一信息;第二信息生成單元,生成對(duì)應(yīng)于相應(yīng)的N個(gè)第一信息的N個(gè)第二信息;以及簽名提供單元,向驗(yàn)證者提供N個(gè)第一信息和N個(gè)第二信息作為數(shù)字簽名,其中,所述驗(yàn)證者保持多階多元多項(xiàng)式組F=(f\,…,fm)和向量y=(y1; *.., ym) = (f!(s),…,fm(s))。所述向量s為簽名密鑰。所述多階多元多項(xiàng)式組F和向量y為公開密鑰。所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型而選擇的特定運(yùn)算而獲得的信息。
[0018]根據(jù)本技術(shù)的另一方面,提供了一種信息處理設(shè)備,包括:信息保持單元,保持在環(huán)K上定義的多階多元多項(xiàng)式組F=^1,…,fm)和向量y=(y1;..., ym) = (f! (s),…,fm(s));消息獲取單元,獲取N組消息,其中,N組消息是基于多階多元多項(xiàng)式組F和作為集合Kn的元素的向量s生成的;簽名獲取單元,獲取數(shù)字簽名,所述數(shù)字簽名包括N個(gè)第一信息和N個(gè)第二信息,其中,N個(gè)第一信息是通過將文檔M和N組消息輸入到單向函數(shù)而選擇的,N個(gè)第二信息對(duì)應(yīng)于相應(yīng)的N個(gè)第一信息,其中,單向函數(shù)針對(duì)一組輸入信息從k個(gè)第一信息(其中k≥3)中選擇一個(gè)第一信息;以及簽名驗(yàn)證單元,基于消息、多階多元多項(xiàng)式組F、向量y和數(shù)字簽名驗(yàn)證文檔M的有效性。所述向量s為簽名密鑰。所述多階多元多項(xiàng)式組F和向量y為公開密鑰。所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型而選擇的特定運(yùn)算而獲得的信息。
[0019]根據(jù)本技術(shù)的另一方面,提供了一種簽名提供方法,包括:基于在環(huán)K上定義的多階多元多項(xiàng)式組F=(f1,…,fm)和作為集合Kn的元素的向量s生成N組消息的步驟;將文檔M和N組消息輸入到單向函數(shù),并且選擇N個(gè)第一信息的步驟,其中,所述單向函數(shù)針對(duì)一組輸入信息從k個(gè)第一信息(其中k > 3)中選擇一個(gè)第一信息;生成對(duì)應(yīng)于相應(yīng)的N個(gè)第一信息的N個(gè)第二信息的步驟;以及向驗(yàn)證者提供N個(gè)第一信息和N個(gè)第二信息作為數(shù)字簽名的步驟,其中,所述驗(yàn)證者保持多階多元多項(xiàng)式組F=(f1,…,fm)和向量y=(yp…,ym) = (fi(s),…,fm(s))。所述向量S為簽名密鑰。所述多階多元多項(xiàng)式組F和向量y為公開密鑰。所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型而選擇的特定運(yùn)算而獲得的信息。
[0020]根據(jù)本技術(shù)的另一方面,提供了一種簽名驗(yàn)證方法,包括:保持在環(huán)K上定義的多階多元多項(xiàng)式組F=(f1,...,fm)和向量y=(y”...,ym) = (f! (s),...,fm(s))的步驟;獲取N組消息的步驟,其中,N組消息是基于多階多元多項(xiàng)式組F和作為集合Kn的元素的向量s生成的;獲取數(shù)字簽名的步驟,所述數(shù)字簽名包括N個(gè)第一信息和N個(gè)第二信息,其中,N個(gè)第一信息是通過將文檔M和N組消息輸入到單向函數(shù)而選擇的,N個(gè)第二信息對(duì)應(yīng)于相應(yīng)的N個(gè)第一信息,其中,單向函數(shù)針對(duì)一組輸入信息從k個(gè)第一信息(其中k ^ 3)中選擇一個(gè)第一信息;以及基于消息、多階多元多項(xiàng)式組F、向量y和數(shù)字簽名驗(yàn)證文檔M的有效性的步驟。所述向量s為簽名密鑰。所述多階多元多項(xiàng)式組F和向量y為公開密鑰。所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型而選擇的特定運(yùn)算而獲得的?目息。
[0021]根據(jù)本技術(shù)的另一方面,提供了一種程序,使得計(jì)算機(jī)執(zhí)行:消息生成功能,基于在環(huán)K上定義的多階多元多項(xiàng)式組F= (f1;…,fm)和作為集合Kn的元素的向量S生成N組消息;第一信息選擇功能,將文檔M和N組消息輸入到單向函數(shù),并且選擇N個(gè)第一信息,其中,所述單向函數(shù)針對(duì)一組輸入信息從k個(gè)第一信息(其中k ^ 3)中選擇一個(gè)第一信息;第二信息生成功能,生成對(duì)應(yīng)于相應(yīng)的N個(gè)第一信息的N個(gè)第二信息;以及簽名提供功能,向驗(yàn)證者提供N個(gè)第一信息和N個(gè)第二信息作為數(shù)字簽名,其中,所述驗(yàn)證者保持多階多元多項(xiàng)式組F= (f1,…,fm)和向量y= (y1…,ym) = (fm (s),…,fm(s))。所述向量s為簽名密鑰。所述多階多元多項(xiàng)式組F和向量y為公開密鑰。所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型而選擇的特定運(yùn)算而獲得的信息。
[0022]根據(jù)本技術(shù)的另一方面,提供了一種程序,使得計(jì)算機(jī)執(zhí)行:信息保持功能,保持在環(huán)K上定義的多階多元多項(xiàng)式組F=(f1,…,fm)和向量y= (y1;…,ym) = K1 (S),…,fm(s));消息獲取功能,獲取N組消息,其中,N組消息是基于多階多元多項(xiàng)式組F和作為集合Kn的元素的向量s生成的;簽名獲取功能,獲取數(shù)字簽名,所述數(shù)字簽名包括N個(gè)第一信息和N個(gè)第二信息,其中,N個(gè)第一信息是通過將文檔M和N組消息輸入到單向函數(shù)而選擇的,N個(gè)第二信息對(duì)應(yīng)于相應(yīng)的N個(gè)第一信息,其中,單向函數(shù)針對(duì)一組輸入信息從k個(gè)第一信息(其中k≥3)中選擇一個(gè)第一信息;以及簽名驗(yàn)證功能,基于消息、多階多元多項(xiàng)式組F、向量y和數(shù)字簽名驗(yàn)證文檔M的有效性。所述向量s為簽名密鑰。所述多階多元多項(xiàng)式組F和向量y為公開密鑰。所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型而選擇的特定運(yùn)算而獲得的信息。
[0023]根據(jù)本技術(shù)的另一方面,提供了一種計(jì)算機(jī)可讀記錄介質(zhì),所述計(jì)算機(jī)可讀記錄介質(zhì)上記錄有程序,所述程序使得計(jì)算機(jī)執(zhí)行:消息生成功能,基于在環(huán)K上定義的多階多元多項(xiàng)式組F=(f\,…,fm)和作為集合Kn的元素的向量s生成N組消息;第一信息選擇功能,將文檔M和N組消息輸入到單向函數(shù),并且選擇N個(gè)第一信息,其中,所述單向函數(shù)針對(duì)一組輸入信息從k個(gè)第一信息(其中k ^ 3)中選擇一個(gè)第一信息;第二信息生成功能,生成對(duì)應(yīng)于相應(yīng)的N個(gè)第一信息的N個(gè)第二信息;以及簽名提供功能,向驗(yàn)證者提供N個(gè)第一信息和N個(gè)第二信息作為數(shù)字簽名,其中,所述驗(yàn)證者保持多階多元多項(xiàng)式組F=(f\,…,fm)和向量y=(y1;…,yJMKs),…,fm(s))。所述向量s為簽名密鑰。所述多階多元多項(xiàng)式組F和向量y為公開密鑰。所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型而選擇的特定運(yùn)算而獲得的信息。
[0024]根據(jù)本技術(shù)的另一方面,提供了一種計(jì)算機(jī)可讀記錄介質(zhì),所述計(jì)算機(jī)可讀記錄介質(zhì)上記錄有程序,所述程序使得計(jì)算機(jī)執(zhí)行:信息保持功能,保持在環(huán)K上定義的多階多元多項(xiàng)式組FMf1,…,fm)和向量y=(y1;…,ym) = (fi (s),…,fm(s));消息獲取功能,獲取N組消息,其中,N組消息是基于多階多元多項(xiàng)式組F和作為集合Kn的元素的向量s生成的;簽名獲取功能,獲取數(shù)字簽名,所述數(shù)字簽名包括N個(gè)第一信息和N個(gè)第二信息,其中,N個(gè)第一信息是通過將文檔M和N組消息輸入到單向函數(shù)而選擇的,N個(gè)第二信息對(duì)應(yīng)于相應(yīng)的N個(gè)第一信息,其中,單向函數(shù)針對(duì)一組輸入信息從k個(gè)第一信息(其中k ^ 3)中選擇一個(gè)第一信息;以及簽名驗(yàn)證功能,基于消息、多階多元多項(xiàng)式組F、向量y和數(shù)字簽名驗(yàn)證文檔M的有效性。所述向量s為簽名密鑰。所述多階多元多項(xiàng)式組F和向量y為公開密鑰。所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型而選擇的特定運(yùn)算而獲得的信息。
[0025]發(fā)明的有益效果
[0026]根據(jù)上述本技術(shù),可以利用高效求解方法(陷門)未知的多階多元聯(lián)立方程實(shí)現(xiàn)高安全性的公開密鑰認(rèn)證方案和高效數(shù)字簽名方案。
【專利附圖】
【附圖說明】
[0027]圖1為用于描述公開密鑰認(rèn)證方案的算法結(jié)構(gòu)的說明圖;
[0028]圖2為用于描述數(shù)字簽名方案的算法結(jié)構(gòu)的說明圖;
[0029]圖3為用于描述η通公開密鑰認(rèn)證方案的算法結(jié)構(gòu)的說明圖;
[0030]圖4為用于描述根據(jù)本技術(shù)第一實(shí)施例(3通)的公開密鑰認(rèn)證方案的算法的說明圖;
[0031]圖5為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的擴(kuò)展算法的說明圖;
[0032]圖6為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的并行算法的說明圖;
[0033]圖7為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的特定算法的說明圖;
[0034]圖8為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的說明圖;
[0035]圖9為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的說明圖;
[0036]圖10為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的說明圖;[0037]圖11為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的并行化的說明圖;
[0038]圖12為用于描述將根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法轉(zhuǎn)換為數(shù)字簽名方案的算法的方法的說明圖;
[0039]圖13為用于描述將根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法轉(zhuǎn)換為高效數(shù)字簽名方案的算法的方法的說明圖;
[0040]圖14為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的并行串行結(jié)構(gòu)的說明圖;
[0041]圖15為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的串行并行結(jié)構(gòu)的說明圖;
[0042]圖16為用于描述根據(jù)本技術(shù)第二實(shí)施例(5通)的公開密鑰認(rèn)證方案的算法的說明圖;
[0043]圖17為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的擴(kuò)展算法的說明圖;
[0044]圖18為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的并行算法的說明圖;
[0045]圖19為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的擴(kuò)展算法的并行化的說明圖;
[0046]圖20為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的特定算法的說明圖;
[0047]圖21為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的說明圖;
[0048]圖22為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的說明圖;
[0049]圖23為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的說明圖;
[0050]圖24為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的說明圖;
[0051]圖25為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的說明圖;
[0052]圖26為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的說明圖;
[0053]圖27為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的說明圖;
[0054]圖28為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的并行化的說明圖;
[0055]圖29為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的并行化的說明圖;
[0056]圖30為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的進(jìn)一步高效化的說明圖;
[0057]圖31為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的進(jìn)一步高效化的說明圖;
[0058]圖32為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的并行串行結(jié)構(gòu)的說明圖;
[0059]圖33為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的并行串行結(jié)構(gòu)的說明圖;
[0060]圖34為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的串行并行結(jié)構(gòu)的說明圖;
[0061]圖35為用于描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的高效算法的串行并行結(jié)構(gòu)的說明圖;[0062]圖36為用于描述提高根據(jù)第一和第二實(shí)施例的交互協(xié)議的魯棒性的技術(shù)的說明圖;
[0063]圖37為用于描述提高根據(jù)第一和第二實(shí)施例的交互協(xié)議的魯棒性的技術(shù)的說明圖;
[0064]圖38為用于描述能夠執(zhí)行根據(jù)本技術(shù)的每個(gè)實(shí)施例的算法的信息處理設(shè)備的硬件配置示例的說明圖;
[0065]圖39為示出根據(jù)本技術(shù)的第一和第二實(shí)施例的公開密鑰認(rèn)證方案的效率的比較的圖表;以及
[0066]圖40為用于描述對(duì)在根據(jù)本技術(shù)的第一和第二實(shí)施例的公開密鑰認(rèn)證方案中使用的參數(shù)進(jìn)行設(shè)置的非常合適的方法和有益效果的說明圖。
【具體實(shí)施方式】
[0067]下文中,將參照附圖詳細(xì)描述本發(fā)明的優(yōu)選實(shí)施例。注意,在該說明書和附圖中,用相同的附圖標(biāo)記表示具有基本相同的功能和結(jié)構(gòu)的元件,并省略重復(fù)的說明。
[0068][說明的流程]
[0069]這里,將簡(jiǎn)單描述要在以下說明本技術(shù)的實(shí)施例的流程。首先,將參考圖1描述公開密鑰認(rèn)證方案的算法結(jié)構(gòu)。接下來,將參考圖2描述數(shù)字簽名方案的算法結(jié)構(gòu)。接下來,將參考圖3描述η通公開密鑰認(rèn)證方案。
[0070]然后,將參考圖4描述根據(jù)本技術(shù)第一實(shí)施例(3通)的公開密鑰認(rèn)證方案的算法。然后,將參考圖5描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的擴(kuò)展算法。然后,將參考圖6描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的并行算法。然后,將參考圖7描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的特定算法。然后,將參考圖8至圖15描述根據(jù)相同實(shí)施例及其變型示例的公開密鑰認(rèn)證方案的高效算法。
[0071]然后,將參考圖16描述根據(jù)本技術(shù)第二實(shí)施例(5通)的公開密鑰認(rèn)證方案的算法。然后,將參考圖17描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的擴(kuò)展算法。然后,將參考圖18和圖19描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的并行算法。然后,將參考圖20描述根據(jù)相同實(shí)施例的公開密鑰認(rèn)證方案的特定算法。然后,將參考圖21至圖35描述根據(jù)相同實(shí)施例及其變型示例的公開密鑰認(rèn)證方案的高效算法。
[0072]然后,將描述用于將根據(jù)本技術(shù)第一和第二實(shí)施例的高效算法應(yīng)用到二階或更高階多元多項(xiàng)式的擴(kuò)展技術(shù)。然后,將描述增加根據(jù)本技術(shù)第一和第二實(shí)施例的交互協(xié)議的魯棒性的機(jī)制。另外,將參考圖36和圖37描述防止由不規(guī)則挑戰(zhàn)導(dǎo)致的秘密密鑰泄露的機(jī)制和消除偽造風(fēng)險(xiǎn)的機(jī)制。然后,將參考圖38描述能夠?qū)崿F(xiàn)根據(jù)本技術(shù)第一和第二實(shí)施例的算法的信息處理設(shè)備的硬件配置示例。
[0073]最后,將簡(jiǎn)要描述本實(shí)施例的技術(shù)精神的概要和根據(jù)該技術(shù)精神獲得的有益操作效果。
[0074](具體章節(jié))
[0075]1:引言
[0076]1-1:公開密鑰認(rèn)證方案的算法
[0077]1-2:數(shù)字簽名方案的算法[0078]1-3:N通公開密鑰認(rèn)證方案
[0079]2:第一實(shí)施例
[0080]2-1:公開密鑰認(rèn)證方案的算法
[0081]2-2:擴(kuò)展算法
[0082]2-3:并行算法
[0083]2-4:具體示例(當(dāng)使用二階多項(xiàng)式時(shí))
[0084]2-5:高效算法
[0085]2-6:對(duì)數(shù)字簽名方案的修改
[0086]2-6-1:變換方法
[0087]2-6-2:數(shù)字簽名算法的高效化
[0088]2-7:多階多元聯(lián)立方程的形式
[0089]2-7-1:關(guān)于公用密鑰塊密碼的形式
[0090]2-7-2:關(guān)于哈希函數(shù)的形式
[0091]2-7-3:關(guān)于流密碼的形式
[0092]2-8:串行并行混合算法
[0093]3:第二實(shí)施例
[0094]3-1:公開密鑰認(rèn)證方案的算法
[0095]3-2:擴(kuò)展算法
[0096]3-3:并行算法
[0097]3-4:具體示例(當(dāng)使用二階多項(xiàng)式時(shí))
[0098]3-5:高效算法
[0099]3-6:串行并行混合算法
[0100]4:高效算法的擴(kuò)展
[0101]4-1:多元高階多項(xiàng)式
[0102]4-2:擴(kuò)展方案(增加高階項(xiàng))
[0103]5:增強(qiáng)魯棒性的機(jī)制
[0104]5-1:設(shè)置系統(tǒng)參數(shù)的方法
[0105]5-2:響應(yīng)不規(guī)則挑戰(zhàn)的方法
[0106]5-2-1:證明者的響應(yīng)方法
[0107]5-2-2:驗(yàn)證者的響應(yīng)方法
[0108]6:硬件配置
[0109]7:結(jié)論
[0110]〈1:引言〉
[0111]首先,在詳細(xì)描述本技術(shù)的實(shí)施例前,將簡(jiǎn)要描述公開密鑰認(rèn)證方案的算法、數(shù)字簽名方案的算法和η通公開密鑰認(rèn)證方案的概要。
[0112][1-1:公開密鑰認(rèn)證方案的算法]
[0113]首先,將參考圖1描述公開密鑰認(rèn)證方案的算法的概要。圖1為用于描述公開密鑰認(rèn)證方案的算法結(jié)構(gòu)的說明圖。
[0114]當(dāng)人(證明者)通過使用公開密鑰pk和秘密密鑰Sk使另一個(gè)人(驗(yàn)證者)相信她是證明者本人時(shí)使用公開密鑰認(rèn)證。例如,使得驗(yàn)證者B知道證明者A的公開密鑰pkA。另一方面,由證明者A秘密管理證明者A的秘密密鑰skA。根據(jù)公開密鑰認(rèn)證方案,知道對(duì)應(yīng)于公開密鑰pkA的秘密密鑰skA的人被認(rèn)為是證明者本人。
[0115]為了使得證明者A利用公開密鑰認(rèn)證設(shè)置向驗(yàn)證者B證明她是證明者A本人,證明者A經(jīng)由交互協(xié)議向驗(yàn)證者B呈現(xiàn)指示她知道對(duì)應(yīng)于公開密鑰pkA的秘密密鑰skA的證據(jù)。然后向驗(yàn)證者B呈現(xiàn)指示證明者A知道秘密密鑰skA的證據(jù),并且在驗(yàn)證者B能夠確認(rèn)證據(jù)的情況下,證明者A的有效性(證明者A是她本人的事實(shí))被證明。
[0116]然而,公開密鑰認(rèn)證設(shè)置要求以下條件以確保安全性。
[0117]第一條件為,“盡可能降低由沒有秘密密鑰Sk的偽造者在執(zhí)行交互協(xié)議時(shí)建立偽造的可能性”。將滿足該第一條件稱為“魯棒性”。換句話說,魯棒性表示,“由不具有秘密密鑰sk的偽造者在執(zhí)行交互協(xié)議期間以不可忽略的可能性未建立偽造”。第二條件為,“即使執(zhí)行交互協(xié)議,關(guān)于證明者A的秘密密鑰skA的信息完全未泄漏給驗(yàn)證者B”。將滿足該第二條件稱為“零知識(shí)”。
[0118]安全地進(jìn)行公開密鑰認(rèn)證包括使用表現(xiàn)穩(wěn)健性和零知識(shí)兩者的交互協(xié)議。如果假設(shè)利用缺乏穩(wěn)健性和零知識(shí)的交互協(xié)議進(jìn)行認(rèn)證處理,則將存在錯(cuò)誤驗(yàn)證的明確幾率和泄漏秘密密鑰信息的明確幾率,從而即使處理自身成功完成,仍不能證明證明者的有效性。從而,如何確保會(huì)話協(xié)議的穩(wěn)健性和零知識(shí)的問題很重要。
[0119](模型)
[0120]如圖1所示,在公開密鑰認(rèn)證方案的模型中,存在兩個(gè)實(shí)體,即證明者和驗(yàn)證者。證明者通過使用密鑰生成算法Gen生成對(duì)于證明者唯一的一對(duì)公開密鑰pk和秘密密鑰sk。然后,證明者通過使用利用密鑰生成算法Gen生成的一對(duì)秘密密鑰sk和公開密鑰pk執(zhí)行與驗(yàn)證者的交互協(xié)議。此時(shí),證明者通過使用證明者算法P執(zhí)行交互協(xié)議。如上所述,在交互協(xié)議中,證明者通過使用證明者算法P向驗(yàn)證者證明她具有秘密密鑰sk。
[0121]另一方面,驗(yàn)證者通過使用驗(yàn)證者算法V執(zhí)行交互協(xié)議,并驗(yàn)證證明者是否具有與證明者已經(jīng)公布的公開密鑰對(duì)應(yīng)的秘密密鑰。即,驗(yàn)證者是驗(yàn)證證明者是否具有與公開密鑰對(duì)應(yīng)的秘密密鑰的實(shí)體。如上所述,公開密鑰認(rèn)證方案的模型由兩個(gè)實(shí)體,即證明者和驗(yàn)證者,以及三個(gè)算法,即密鑰生成算法Gen、證明者算法P和驗(yàn)證者算法V構(gòu)成。
[0122]另外,在下面的描述中使用“證明者”和“驗(yàn)證者”的表述,但是這些表述嚴(yán)格地表示實(shí)體。因此,執(zhí)行密鑰生成算法Gen和證明者算法P的主體是對(duì)應(yīng)于實(shí)體“證明者”的信息處理設(shè)備。類似地,執(zhí)行驗(yàn)證者算法V的主體是信息處理設(shè)備。例如,這些信息處理設(shè)備的硬件配置如圖38所示。S卩,通過CPU902基于記錄在R0M904、RAM906、存儲(chǔ)單元920、可移除記錄介質(zhì)928等上的程序執(zhí)行密鑰生成算法Gen、證明者算法P和驗(yàn)證者算法V。
[0123](密鑰生成算法Gen)
[0124]由證明者使用密鑰生成算法Gen。密鑰生成算法Gen是用于生成對(duì)于證明者唯一的一對(duì)公開密鑰pk和秘密密鑰Sk的算法。通過密鑰生成算法Gen生成的公開密鑰Pk被公布。另外,由驗(yàn)證者使用公布的公開密鑰pk。另一方面,由證明者秘密地管理通過密鑰生成算法Gen生成的秘密密鑰sk。由證明者秘密管理的秘密密鑰sk用于向驗(yàn)證者證明證明者擁有對(duì)應(yīng)于公開密鑰Pk的秘密密鑰sk。形式上,將密鑰生成算法Gen表示為下面的公式Cl),以作為采用安全性參數(shù)1λ ( λ為O以上的整數(shù))作為輸入、并且輸出秘密密鑰sk和公開密鑰Pk的算法。
[0125][數(shù)學(xué)式I]
[0126](sk, pk) — Gen (Ia)
[0127]...(I)
[0128](證明者算 法P)
[0129]由證明者使用證明者算法P。證明者算法P是用于向驗(yàn)證者證明證明者擁有對(duì)應(yīng)于公開密鑰Pk的秘密密鑰Sk的算法。換句話說,證明者算法P是采用公開密鑰Pk和秘密密鑰sk作為輸入并且執(zhí)行交互協(xié)議的算法。
[0130](驗(yàn)證者算法V)
[0131]由驗(yàn)證者使用驗(yàn)證者算法V。驗(yàn)證者算法V是在會(huì)話協(xié)議期間驗(yàn)證證明者是否擁有對(duì)應(yīng)于公開密鑰pk的秘密密鑰Sk的算法。驗(yàn)證者算法V是接收公開密鑰Pk作為輸入并且根據(jù)會(huì)話協(xié)議的執(zhí)行結(jié)果輸出O或I (I比特)的算法。此時(shí),驗(yàn)證者在驗(yàn)證者算法V輸出O的情況下判定證明者無效,并且在驗(yàn)證者算法V輸出I的情況下判定證明者有效。形式上,將驗(yàn)證者算法V表示為下面的公式(2)。
[0132][數(shù)學(xué)式2]
[0133]0/1—V(pk)
[0134]…(2)
[0135]如上所述,實(shí)現(xiàn)有效的公開密鑰認(rèn)證包括使得交互協(xié)議滿足穩(wěn)健性和零知識(shí)兩個(gè)條件。然而,證明證明者擁有秘密密鑰sk包括:證明者執(zhí)行依賴于秘密密鑰sk的過程,并且在通知驗(yàn)證者結(jié)果之后,使得驗(yàn)證者基于通知的內(nèi)容執(zhí)行驗(yàn)證。執(zhí)行依賴于秘密密鑰sk的過程以確保穩(wěn)健性。同時(shí),不應(yīng)向驗(yàn)證者泄漏任何關(guān)于秘密密鑰sk的信息。為此,巧妙地設(shè)計(jì)上述密鑰生成算法Gen、證明者算法P和驗(yàn)證者算法V以滿足這些要求。
[0136]因此,前文總結(jié)了公開密鑰認(rèn)證方案中的算法。
[0137][1-2:數(shù)字簽名方案的算法]
[0138]下面,將參考圖2概述數(shù)字簽名方案的算法。圖2為概述數(shù)字簽名方案的算法的說明圖。
[0139]與紙質(zhì)文檔不同,不可能對(duì)數(shù)字化數(shù)據(jù)物理地簽名或粘貼封印。為此,證明數(shù)字化數(shù)據(jù)的創(chuàng)建者包括產(chǎn)生類似于對(duì)紙質(zhì)文檔物理簽名或粘貼封印的效果的電子設(shè)置。該設(shè)置為數(shù)字簽名。數(shù)字簽名指的是將給定數(shù)據(jù)與僅數(shù)據(jù)創(chuàng)建者知道的簽名數(shù)據(jù)關(guān)聯(lián)、將簽名數(shù)據(jù)提供給接收者、并且在接收者端驗(yàn)證簽名數(shù)據(jù)的設(shè)置。
[0140](模型)
[0141]如圖2所示,在數(shù)字簽名方案的模型中存在簽名者和驗(yàn)證者兩個(gè)身份。另外,數(shù)字簽名方案的模型由三個(gè)算法構(gòu)成:密鑰生成算法Gen、簽名生成算法Sig、和簽名驗(yàn)證算法Ver0
[0142]簽名者使用密鑰生成算法Gen生成對(duì)于簽名者唯一的成對(duì)的簽名密鑰sk和驗(yàn)證密鑰pk。簽名者還使用簽名生成算法Sig生成附加到消息M的數(shù)字簽名q。換句話說,簽名者是將數(shù)字簽名附加到消息M的實(shí)體。同時(shí),驗(yàn)證者使用簽名驗(yàn)證算法Ver驗(yàn)證附加到消息M的數(shù)字簽名q。換句話說,驗(yàn)證者是驗(yàn)證數(shù)字簽名q以確認(rèn)消息M的創(chuàng)建者是否是簽名者的實(shí)體。[0143]注意,盡管在下文中使用術(shù)語“簽名者”和“驗(yàn)證者”,但是這些術(shù)語最終表示實(shí)體。因此,執(zhí)行密鑰生成算法Gen和簽名生成算法Sig的主體是對(duì)應(yīng)于“簽名者”實(shí)體的信息處理設(shè)備。類似地,執(zhí)行簽名驗(yàn)證算法Ver的主體是信息處理設(shè)備。例如,這些信息處理設(shè)備的硬件配置如圖38所示。換句話說,通過諸如CPU902的裝置基于記錄在諸如R0M904、RAM906、存儲(chǔ)單元920或可移除記錄介質(zhì)928的裝置上的程序執(zhí)行密鑰生成算法Gen、簽名生成算法Sig和簽名驗(yàn)證算法Ver。
[0144](密鑰生成算法Gen)
[0145]由簽名者使用密鑰生成算法Gen。密鑰生成算法Gen是用于生成對(duì)于簽名者唯一的成對(duì)的簽名密鑰sk和驗(yàn)證密鑰pk的算法。通過密鑰生成算法Gen生成的驗(yàn)證密鑰pk被公布。同時(shí),簽名者將通過密鑰生成算法Gen生成的簽名密鑰sk保密。然后使用簽名密鑰sk生成附加到消息M的數(shù)字簽名q。例如,密鑰生成算法Gen接受安全性參數(shù)Ip
[0146](其中P為大于或等于O的整數(shù))作為輸入,并且輸出簽名密鑰sk和驗(yàn)證密鑰pk。在該情況下,密鑰生成算法Gen在形式上可被表示為下面的公式(3)。
[0147][數(shù)學(xué)式3]
[0148](sk, pk) — Gen (Ia)
[0149]...(3)
[0150](簽名生成算法Sig)
[0151]由簽名者使用簽名生成算法Sig。簽名生成算法Sig是生成要被附加到消息M的數(shù)字簽名q的算法。簽名生成算法Sig是接受簽名密鑰sk和消息M為輸入并且輸出數(shù)字簽名q的算法。簽名生成算法Sig在形式上可被表示以下面的公式(4)。
[0152][數(shù)學(xué)式4]
[0153]σ — Sig(sk, M)
[0154]...(4)
[0155](簽名驗(yàn)證算法Ver)
[0156]由驗(yàn)證者使用簽名驗(yàn)證算法Ver。簽名驗(yàn)證算法Ver是驗(yàn)證數(shù)字簽名q對(duì)于消息M是否是有效數(shù)字簽名的算法。簽名驗(yàn)證算法Ver是接受簽名者的驗(yàn)證密鑰pk、消息M和數(shù)字簽名q作為輸入并且輸出O或I (I比特)的算法。簽名驗(yàn)證算法Ver在形式上可被表示為下面的公式(5)。此時(shí),驗(yàn)證者在簽名驗(yàn)證算法Ver輸出O的情況下(驗(yàn)證密鑰pk拒絕消息M和數(shù)字簽名q的情況)判定數(shù)字簽名q無效,而在簽名驗(yàn)證算法Ver輸出I的情況下(驗(yàn)證密鑰Pk接收消息M和數(shù)字簽名q的情況)確定數(shù)字簽名q有效。
[0157][數(shù)學(xué)式5]
[0158]0/1 — Ver (pk, Μ, σ )
[0159]...(5)
[0160]因此,前文概述了數(shù)字簽名方案中的算法。
[0161][1-3:Ν通公開密鑰認(rèn)證方案]
[0162]接下來,將參考圖3描述η通公開密鑰認(rèn)證方案。圖3為示出η通公開密鑰認(rèn)證方案的說明圖。
[0163]如上所述,公開密鑰認(rèn)證方案是在交互協(xié)議期間向驗(yàn)證者證明證明者擁有對(duì)應(yīng)于公開密鑰Pk的秘密密鑰sk的認(rèn)證方案。另外,交互協(xié)議必須滿足穩(wěn)健性和零知識(shí)兩個(gè)條件。為此,如圖3所示,在交互協(xié)議期間,證明者和驗(yàn)證者兩者都η次交換信息,同時(shí)執(zhí)行各自的處理。
[0164]在η通公開密鑰認(rèn)證方案的情況下,證明者執(zhí)行利用證明者算法P的處理(運(yùn)算
#1),并將信息T1發(fā)送給驗(yàn)證者。隨后,驗(yàn)證者執(zhí)行利用驗(yàn)證者算法V的處理(運(yùn)算# 2),并將信息T2發(fā)送給證明者。對(duì)于k=3至η (運(yùn)算# k)連續(xù)進(jìn)行該執(zhí)行和處理以及信息Tk的發(fā)送,并且最后,執(zhí)行處理(# n+1)。因此,以此方式η次發(fā)送和接收信息被稱為“η通”公開密鑰認(rèn)證方案。
[0165]因此,前文描述了 η通公開密鑰認(rèn)證方案。
[0166]〈2:第一實(shí)施例>
[0167]下文將描述本技術(shù)的第一實(shí)施例。本文中的實(shí)施例涉及安全性基于求解多階多元聯(lián)立方程的難度的公開密鑰認(rèn)證方案和數(shù)字簽名方案。然而,本文中的實(shí)施例不同于諸如HFE數(shù)字簽名方案的現(xiàn)有技術(shù)的技術(shù),并且涉及使用缺乏高效求解方法(陷門)的多階多元聯(lián)立方程的公開密鑰認(rèn)證方案和數(shù)字簽名方案。
[0168][2-1:公開密鑰認(rèn)證方案的算法]
[0169]首先,將參考圖4描述根據(jù)本實(shí)施例的公開密鑰認(rèn)證方案(下文中為本技術(shù))的算法。圖4為用于描述根據(jù)本技術(shù)的算法的說明圖。
[0170]本技術(shù)由密 鑰生成算法Gen、證明者算法P和驗(yàn)證者算法V構(gòu)成。下面將描述各個(gè)算法的結(jié)構(gòu)。
[0171](密鑰生成算法Gen)
[0172]密鑰生成算法Gen生成在環(huán)k中定義的m個(gè)多元多項(xiàng)式fi (Xi,...,Xn),...,^(X1,...,Xn)和作為集合 Kn 的元素的向量 S=G1,...,Sn)。接下來,生成算法 Gen 計(jì)算 y=(y!,...,ym) <- (f! (s),...,fm(s))。另外,生成算法 Gen 將(?\ (X1,...,xn),..., fm(Xl,...,xn),y)設(shè)置為公開密鑰pk,并且將s設(shè)置為秘密密鑰。下文中,將向量(X1,..., Xn)表示為X,并且將一對(duì)多元多項(xiàng)式(fjx),..., fm (x))表示為F (X)。
[0173](證明者算法P、驗(yàn)證者算法V)
[0174]接下來,將參考圖4描述在交互協(xié)議期間通過證明者算法P執(zhí)行的處理和通過驗(yàn)證者算法V執(zhí)行的處理。
[0175]在前述交互協(xié)議期間,證明者一點(diǎn)也不將關(guān)于秘密密鑰sk的信息泄漏給驗(yàn)證者,并對(duì)驗(yàn)證者表示“她本人知道s滿足y=F(s) ”。另一方面,驗(yàn)證者驗(yàn)證證明者是否知道s滿足y=F(s)。假設(shè)使得驗(yàn)證者知道公開密鑰pk。另外,假設(shè)由證明者秘密地管理秘密密鑰S。下文中,將參考圖4所示的流程圖進(jìn)行描述。
[0176]運(yùn)算# 1:
[0177]首先,證明者算法P選擇任意數(shù)W。然后,證明者算法P通過將數(shù)w應(yīng)用于偽隨機(jī)數(shù)生成器Gl生成作為集合Kn的元素的向量r和數(shù)wA。即,證明者算法P計(jì)算(r,wA) -G1(W)0隨后,證明者算法P通過將數(shù)wA應(yīng)用于偽隨機(jī)數(shù)生成器G2生成多元多項(xiàng)式 Fa (X) = (f' (X),...,fAm (x))。即,證明者算法 P 計(jì)算 Fa 一 G2 (wA)。
[0178]運(yùn)算#1(繼續(xù)):
[0179]隨后,證明者算法P計(jì)算z —s-r。該計(jì)算等同于利用向量r掩蔽秘密密鑰S。另外,證明者算法P計(jì)算Fb (X) — F(x+r)+Fa(X)。該計(jì)算等同于利用多元多項(xiàng)式Fa(X)掩蔽關(guān)于X的多元多項(xiàng)式F (x+r)。
[0180]運(yùn)算#1(繼續(xù)):
[0181]隨后,證明者算法P生成Fa(Z)和z的哈希值Cl。即,證明者算法P計(jì)算Cl —HjFYzhz)。另外,證明者算法P生成數(shù)wA的哈希值c2。即,證明者算法P計(jì)算C2-H2(Wa)0另外,證明者算法P生成多元多項(xiàng)式Fb的哈希值c3。即,證明者算法P計(jì)算c3 —H3 (Fb(X))。注意,上述 H1U1H2 (...),H3C..)為哈希函數(shù)。哈希值(C1, c2,C3)作為消息被發(fā)送給驗(yàn)證者算法V。此時(shí),應(yīng)注意,關(guān)于s的信息、關(guān)于r的信息、和關(guān)于z的信息完全未被泄漏給驗(yàn)證者。
[0182]運(yùn)算# 2:
[0183]在接收到消息(Cl,c2,C3)時(shí),驗(yàn)證者算法V從三個(gè)驗(yàn)證模式中選擇要使用的驗(yàn)證模式。例如,驗(yàn)證者算法V可以從表示驗(yàn)證模式的三個(gè)數(shù)值{0,1,2}中選擇數(shù)值,并將選擇的數(shù)值設(shè)置在挑戰(zhàn)d中。該挑戰(zhàn)d被發(fā)送給證明者算法P。
[0184]運(yùn)算# 3:
[0185]在接收到挑戰(zhàn)d時(shí),證明者算法P響應(yīng)于接收到的挑戰(zhàn)d生成要發(fā)送給驗(yàn)證者算法V的響應(yīng)Rsp。在d=0的情況下,證明者算法P生成響應(yīng)σ =w。在d=l的情況下,證明者算法P生成響應(yīng)o=(wA,z)。在d=2的情況下,證明者算法P生成響應(yīng)O =(FB(Z), z)。在運(yùn)算# 3中生成的響應(yīng)σ被發(fā)送給驗(yàn)證者算法V。此時(shí),應(yīng)注意,在d=0的情況下,關(guān)于z的信息完全未被泄漏給驗(yàn)證者,并且在d=l或2的情況下,關(guān)于r的信息完全未被泄漏給驗(yàn)證者。
[0186]運(yùn)算#4:
[0187]已接收到響應(yīng)σ的驗(yàn)證者算法V利用接收到的響應(yīng)σ執(zhí)行下面的驗(yàn)證處理。
[0188]在d=0的情況下,驗(yàn)證者算法V計(jì)算(rA,wB) — G1 ( σ )。另外,驗(yàn)證者算法V計(jì)算Fc-G2(Wb)0然后,驗(yàn)證者算法V驗(yàn)證等Sc2=H2 (Wb)是否成立。另外,驗(yàn)證者算法V驗(yàn)證等式C3=H3 (F (x+rA)+Fe(X))是否成立。驗(yàn)證者算法V在這些驗(yàn)證都成功的情況下輸出指示認(rèn)證成功的值1,而在任一驗(yàn)證失敗的情況下輸出指示認(rèn)證失敗的值O。
[0189]在d=l的情況下,驗(yàn)證者算法V設(shè)置(wB,zA)—。。另外,驗(yàn)證者算法V計(jì)算Fc-G2(Wb)0然后,驗(yàn)證者算法V驗(yàn)證等Sci=H1^(Za), za)是否成立。另外,驗(yàn)證者算法V驗(yàn)證等Sc2=H2(Wb)是否成立。驗(yàn)證者算法V在這些驗(yàn)證都成功的情況下輸出指示認(rèn)證成功的值1,而在驗(yàn)證失敗的情況下輸出指示認(rèn)證失敗的值O。
[0190]在d=2的情況下,驗(yàn)證者算法V設(shè)置(FD,zA)—。。然后,驗(yàn)證者算法V驗(yàn)證等式C1=H1(Fd(Za)Ua)是否成立。另外,驗(yàn)證者算法V驗(yàn)證等Sc3=H3 (Fd)是否成立。驗(yàn)證者算法V在這些驗(yàn)證都成功的情況下輸出指示認(rèn)證成功的值1,而在驗(yàn)證失敗的情況下輸出指示認(rèn)證失敗的值O。
[0191]以上描述了涉及本技術(shù)的每個(gè)算法結(jié)構(gòu)的示`例。
[0192](本技術(shù)的穩(wěn)健性)
[0193]這里,將補(bǔ)充描述本技術(shù)的穩(wěn)健性。基于如下的邏輯確保本技術(shù)的穩(wěn)健性:當(dāng)證明者算法P針對(duì)可由驗(yàn)證者算法V選擇的全部挑戰(zhàn)d=0、l和2返回適當(dāng)?shù)捻憫?yīng)O時(shí),可以計(jì)算滿足下面的公式(6)和公式(7)的穴^、八上
[0194][數(shù)學(xué)式6][0195]Fd (X) = F (x+rA) +Fc (x)
[0196]...(6)
[0197]Fd (zA)-y = Fc (zA)
[0198]...(7)
[0199]通過確保上述穩(wěn)健性,只要求解多階多元聯(lián)立方程的問題未被解出,就確保了不可能以高于2/3的概率成功偽造的事實(shí)。即,為了適當(dāng)?shù)貙?duì)驗(yàn)證者的全部挑戰(zhàn)d=0、l和2做出響應(yīng),偽造者必須計(jì)算滿足前述公式(6)和公式(7)的0、戶、1^和zA。換句話說,偽造者必須計(jì)算滿足F(s) =y的S。然而,存在偽造者對(duì)驗(yàn)證者的挑戰(zhàn)d=0、l、2中的兩個(gè)較高挑戰(zhàn)做出適當(dāng)響應(yīng)的可能性。因此,錯(cuò)誤驗(yàn)證的成功概率變?yōu)?/3。另外,通過以足夠大的次數(shù)重復(fù)執(zhí)行上述交互協(xié)議,成功偽造的概率變得可忽略地小。
[0200]以上描述了本技術(shù)的穩(wěn)健性。
[0201](變型示例)
[0202]這里,將介紹上述算法的變型示例。密鑰生成算法Gen計(jì)算y —F (S),并將(F,y)設(shè)置為公開密鑰。然而,在本變型示例中,密鑰生成算法Gen計(jì)算(yi,…,ym) —F(s)和(dO)) — (f\ (X) IfJm(X) _ym),并將(f:,…,f:)設(shè)置為公開密鑰。在該變型的情況下,可以在y=0處執(zhí)行交互協(xié)議。
[0203]另外,證明者算法P基于Fb(Z)和z生成消息Cl。然而,由于關(guān)系式Fb(z)=Fa(z),即使在進(jìn)行修改使得基于Fa(Z)和Z生成消息C1時(shí),也實(shí)現(xiàn)了類似的交互協(xié)議。另外,可以修改證明者算法P的結(jié)構(gòu),使得分別計(jì)算Fb (Z)的哈希值和z的哈希值,然后作為消息發(fā)送給驗(yàn)證者算法V。
[0204]另外,證明者算法P通過將數(shù)w應(yīng)用于偽隨機(jī)數(shù)生成器G1生成矢量r和數(shù)wA。另外,證明者算法P通過將數(shù)wA應(yīng)用于偽隨機(jī)數(shù)生成器G2生成多元多項(xiàng)式Fa(X)。然而,可以修改證明者算法P的結(jié)構(gòu),使得使用身份映射作為G1從開始計(jì)算w=(r,F(xiàn)a)。在該情況下,不需要將數(shù)w應(yīng)用于匕。這對(duì)于G2是同樣的。
[0205]另外,在交互協(xié)議中,使用(F,y)作為公開密鑰。公開密鑰中包括的多元多項(xiàng)式F是不依賴于秘密密鑰sk的參數(shù)。為此,可以在整個(gè)系統(tǒng)中使用公用多元多項(xiàng)式F,而不對(duì)每個(gè)證明者設(shè)置多元多項(xiàng)式F。在該情況下,y足以作為對(duì)每個(gè)證明者設(shè)置的公開密鑰,從而可用減小公開密鑰的大小。然而,考慮到安全性,期望對(duì)每個(gè)證明者設(shè)置多元多項(xiàng)式F。下文將詳細(xì)描述在該情況下設(shè)置多元多項(xiàng)式F的方法。
[0206]另外,在交互協(xié)議中,使用(f\,- ,fm, y)作為公開密鑰,并且F=(f\,- ,fm)是可以適當(dāng)選擇的參數(shù)。為此,例如,證明者和驗(yàn)證者可以準(zhǔn)備隨機(jī)數(shù)的種子Wpk,并利用偽隨機(jī)數(shù)生成器G*計(jì)算F — G*(wpk)。在該情況下,即使公開密鑰是(wpk,y)并且將(F,y)作為公開密鑰公布,也可以減小公開密鑰的大小。
[0207]在算法中,利用哈希函數(shù)氏、H2和H3計(jì)算Cl、C2和C3,但是可以使用承諾函數(shù)COM代替哈希函數(shù)。承諾函數(shù)COM是以字符串S和隨機(jī)數(shù)P為因子的函數(shù)。承諾函數(shù)的示例包括由Shai Halevi和Silvio Micali在國際會(huì)議CRYPT01996上公開的方案。
[0208]當(dāng)使用承諾函數(shù)時(shí),在計(jì)算Cp C2和C3前準(zhǔn)備隨機(jī)數(shù)P。P 2和P3,并通過應(yīng)用承諾函數(shù)C0M(.,P C0M(.,P2)和C0M(.,P 3)代替應(yīng)用哈希函數(shù)氏(.)、H2(.)和H3(.)來生成Cp C2和c3。這里,將驗(yàn)證者生成Ci所需的P i設(shè)置為包括在響應(yīng)σ中并發(fā)送??梢詫⒃撟冃蛻?yīng)用于將在下文描述的整個(gè)算法中。
[0209]以上描述了本技術(shù)的變型示例。
[0210][2_2:擴(kuò)展算法]
[0211]接下來,將參考圖5描述從本技術(shù)擴(kuò)展的公開密鑰認(rèn)證方案的算法(下文中被稱為“擴(kuò)展技術(shù)”)。圖5為用于描述基于擴(kuò)展技術(shù)的交互協(xié)議的流程的說明圖。
[0212]在本文所述的擴(kuò)展技術(shù)中,在第一通中發(fā)送的消息(C1, C2, C3)被轉(zhuǎn)換為一個(gè)哈希值c并被發(fā)送給驗(yàn)證者。這里,利用在第三通發(fā)送的響應(yīng)σ?guī)缀醪荒芑謴?fù)的消息與響應(yīng)σ一起被發(fā)送給驗(yàn)證者。通過應(yīng)用擴(kuò)展技術(shù),可以減少在交互協(xié)議期間發(fā)送給驗(yàn)證者的信息量。下面將詳細(xì)描述與擴(kuò)展技術(shù)相關(guān)的每個(gè)算法的結(jié)構(gòu)。
[0213](密鑰生成算法Gen)
[0214]密鑰生成算法Gen生成在環(huán)k上定義的m個(gè)多元多項(xiàng)式fi (Xi,...,Xn),...,^(X1,...,Xn)和作為集合 Kn 的元素的向量 S=G1,...,Sn)。接下來,生成算法 Gen 計(jì)算 y=(y1;...,ym) — (?\ (s),...,fm(s))。另外,生成算法 Gen 將(?\ (X1,...,Xn),..., fm(Xl,...,xn),y)設(shè)置為公開密鑰pk,并將s設(shè)置為秘密密鑰。下文中,將向量(X1,...,Xn)表示為X,并將一對(duì)多元多項(xiàng)式(A(X),...,fm(x))表示為F (X)。
[0215](證明者算法P,驗(yàn)證者算法V)
[0216]接下來,將參考圖5描述在交互協(xié)議期間通過證明者算法P執(zhí)行的處理和通過驗(yàn)證者算法V執(zhí)行的處理。
[0217]在前述交互協(xié)議期間,證明者一點(diǎn)也不將關(guān)于秘密密鑰Sk的信息泄漏給驗(yàn)證者,并對(duì)驗(yàn)證者表示“她本人知道s滿足y=F(s) ”。另一方面,驗(yàn)證者驗(yàn)證證明者是否知道s滿足y=F(s)。假設(shè)使得驗(yàn)證者知道公開密鑰pk。另外,假設(shè)由證明者秘密地管理秘密密鑰S。下文中,將參考圖5所示的流程圖進(jìn)行描述。
[0218]運(yùn)算# 1:
[0219]首先,證明者算法P選擇任意數(shù)W。然后,證明者算法P通過將數(shù)w應(yīng)用于偽隨機(jī)數(shù)生成器&生成作為集合Kn的元素的向量r和數(shù)wA。即,證明者算法P計(jì)算(r,wA) -G1(W)0隨后,證明者算法P通過將數(shù)wA應(yīng)用于偽隨機(jī)數(shù)生成器G2生成多元多項(xiàng)式 Fa (X) = (f' (X),...,fAm (x))。即,證明者算法 P 計(jì)算 Fa 一 G2 (wA)。
[0220]運(yùn)算#1(繼續(xù)):
[0221]隨后,證明者算法P計(jì)算z —s-r。該計(jì)算等同于利用向量r掩蔽秘密密鑰S。另外,證明者算法P計(jì)算Fb (X) — F (x+r)+Fa (X)。該計(jì)算等同于利用多項(xiàng)式組Fa(X)掩蔽關(guān)于X的多項(xiàng)式組F (x+r)。
[0222]運(yùn)算#1(繼續(xù)):
[0223]接下來,證明者算法P生成Fb (Z)和z的哈希值Cl。換句話說,證明者算法P計(jì)算Cl—氏(戶(2),2)。另外,證明者算法P生成數(shù)Wa的哈希值c2。換句話說,證明者算法P計(jì)算(32—H2(wa)。另外,證明者算法P生成多項(xiàng)式組Fb的哈希值c3。換句話說,證明者算法P計(jì)算c3 —H3(wb)。H1 (…)、H2(...)和比(...)是哈希函數(shù)。在擴(kuò)展方案的情況下,證明者算法P將一組哈希值(CpCyC3)應(yīng)用于哈希函數(shù)H以生成哈希值c,并將哈希值c發(fā)送給驗(yàn)證者算法V。
[0224]運(yùn)算# 2:[0225]在接收到哈希值c時(shí),驗(yàn)證者算法V從三個(gè)驗(yàn)證模式中選擇要使用的驗(yàn)證模式。例如,驗(yàn)證者算法V可以從表示驗(yàn)證模式的三個(gè)數(shù)值{0,1,2}中選擇數(shù)值,并將選擇的數(shù)值設(shè)置在挑戰(zhàn)d中。該挑戰(zhàn)d被發(fā)送給證明者算法P。
[0226]運(yùn)算# 3:
[0227]在接收到挑戰(zhàn)d時(shí),證明者算法P響應(yīng)于接收到的挑戰(zhàn)d生成要發(fā)送給驗(yàn)證者算法V的響應(yīng)σ。在d=0的情況下,證明者算法P生成響應(yīng)(σ,c*) = (w,C1)。在d=l的情況下,證明者算法P生成響應(yīng)(σ,c*) = ((wA, z),c3)。在d=2的情況下,證明者算法P生成響應(yīng)(0,c*) = ((Fb,Z),c2)。在運(yùn)算# 3中生成的響應(yīng)(o,c*)被發(fā)送給驗(yàn)證者算法V。
[0228]運(yùn)算#4:
[0229]在接收到響應(yīng)σ時(shí),驗(yàn)證者算法V利用接收到的響應(yīng)(σ,c*)執(zhí)行下面的驗(yàn)證處理。
[0230]當(dāng)d=0時(shí),驗(yàn)證者算法V計(jì)算(rA, wB) — G1 ( σ )。接下來,驗(yàn)證者算法V計(jì)算Fe — G2 (wB)。接下來,驗(yàn)證者算法V計(jì)算c2a=H2 (wb)。接下來,驗(yàn)證者算法V計(jì)算c3A=H3(F(x+rA)+Fc(x))0之后,驗(yàn)證者算法V驗(yàn)證等式c=H(c'c2A,c3A)是否成立。然后,驗(yàn)證者算法V在驗(yàn)證成功時(shí)輸出表示認(rèn)證成功的值1,而在驗(yàn)證失敗時(shí)輸出表示認(rèn)證失敗的值O。 [0231]當(dāng)d=l時(shí),驗(yàn)證者算法V設(shè)置(wB,zA) — σ。接下來,驗(yàn)證者算法V計(jì)算戶一 G2 (Wb)。接下來,驗(yàn)證者算法V計(jì)算C1A=H1 (Fe (Za),Za)。接下來,驗(yàn)證者算法V計(jì)算C2A=H2 (wB)。之后,驗(yàn)證者算法V驗(yàn)證等式C=H(ClA,C2aO是否成立。然后,驗(yàn)證者算法V在驗(yàn)證成功時(shí)輸出表示認(rèn)證成功的值1,而在驗(yàn)證失敗時(shí)輸出表示認(rèn)證失敗的值O。
[0232]當(dāng)d=2時(shí),驗(yàn)證者算法V設(shè)置(FD,zA) — ?。接下來,驗(yàn)證者算法V計(jì)算C1A=H1 (Fd (za) -y, Za)。接下來,驗(yàn)證者算法V計(jì)算C3A=H3 (Fd)。之后,驗(yàn)證者算法V驗(yàn)證等式c=H(ClA, c*, c3a)是否成立。然后,驗(yàn)證者算法V在驗(yàn)證成功時(shí)輸出表示認(rèn)證成功的值1,而在驗(yàn)證失敗時(shí)輸出表示認(rèn)證失敗的值O。
[0233]以上描述了涉及擴(kuò)展技術(shù)的每個(gè)算法的結(jié)構(gòu)。通過應(yīng)用擴(kuò)展技術(shù),可以減少在交互協(xié)議期間發(fā)送和接收的信息量。
[0234][2-3:并行算法]
[0235]如上所述,應(yīng)用根據(jù)本技術(shù)和擴(kuò)展技術(shù)的會(huì)話協(xié)議使得可以將成功偽造的概率保持在2/3以下。因此,兩次執(zhí)行會(huì)話協(xié)議使得可以將成功偽造的概率保持在(2/3)2以下。另外,如果N次執(zhí)行會(huì)話協(xié)議,則成功偽造的概率變?yōu)?2/3)N,并且,如果將N設(shè)置為足夠大的數(shù)(例如,N=140),則成功偽造的概率變得可忽略地小。
[0236]例如,多次執(zhí)行交互協(xié)議的可想到的方法包括:串行方法,其中多次順序重復(fù)消息、挑戰(zhàn)和響應(yīng)的交換;以及并行方法,其中在單個(gè)交換中交換多個(gè)消息、挑戰(zhàn)和響應(yīng)。這里,將描述把根據(jù)本技術(shù)的交互協(xié)議擴(kuò)展到關(guān)于并行方法的交互協(xié)議(下文中被稱為“并行算法”)的方法。例如,圖6示出并行算法。接下來,將參考圖6描述并行算法的細(xì)節(jié)。
[0237](密鑰生成算法Gen)
[0238]密鑰生成算法Gen生成在環(huán)k上定義的m個(gè)多元多項(xiàng)式fi (Xi,...,Xn),...,^(X1,...,Xn)和作為集合 Kn 的元素的向量 S=G1,...,Sn)。接下來,生成算法 Gen 計(jì)算 y=(y1;...,ym) — (?\ (s),...,fm(s))。另外,生成算法 Gen 將(?\ (X1,...,Xn),..., fm(Xl,...,xn),y)設(shè)置為公開密鑰pk,并將S設(shè)置為秘密密鑰。下文中,將向量(X1,...,Xn)表示為X,并將一對(duì)多元多項(xiàng)式(A(X),...,fm(x))表示為F (X)。
[0239](證明者算法P,驗(yàn)證者算法V)
[0240]接下來,將參考圖6描述在交互協(xié)議期間通過證明者算法P執(zhí)行的處理和通過驗(yàn)證者算法V執(zhí)行的處理。
[0241]在前述交互協(xié)議期間,證明者一點(diǎn)也不將關(guān)于秘密密鑰s的信息泄漏給驗(yàn)證者,并對(duì)驗(yàn)證者表示“她本人知道s滿足y=F(s) ”。另一方面,驗(yàn)證者驗(yàn)證證明者是否知道s滿足y=F(s)。假設(shè)使得驗(yàn)證者知道公開密鑰pk。另外,假設(shè)由證明者秘密地管理秘密密鑰S。下文中,將參考圖6所示的流程圖進(jìn)行描述。
[0242]運(yùn)算# 1:
[0243]首先,證明者算法P針對(duì)i=l至N執(zhí)行下面的處理(I)至(8)。
[0244]處理(I):證明者算法P任意選擇數(shù)Wi。
[0245]處理(2):證明者算法P將數(shù)Wi應(yīng)用于偽隨機(jī)數(shù)生成器G1,并生成作為集合Kn的元素的向量A和數(shù)WiA。換句話說,證明者算法P計(jì)算(ri,WiA) ^G1 (Wi)。
[0246]處理(3):證明者算法P將數(shù)Ka應(yīng)用于偽隨機(jī)數(shù)生成器G2并生成多元多項(xiàng)式組FiA (X)。換句話說,證明者算法P計(jì)算FiA — G2 (WiA)。
[0247]處理(4):證明者算法P計(jì)算Zi — SiTiO該計(jì)算對(duì)應(yīng)于利用向量A掩蔽秘密密鑰Si的操作。
[0248]處理(5):證明者算法P計(jì)算FiB(X) — FO^riHFiA(X)。該計(jì)算對(duì)應(yīng)于利用多項(xiàng)式組FiA(X)掩蔽關(guān)于X的多項(xiàng)式組F(X`+ri)的操作。
[0249]處理(6):證明者算法P生成Zi和FiB(Zi)的哈希值Cy。換句話說,證明者算法P計(jì)算 c1; i — H1 (FiB(Zi), Zi) O
[0250]處理(7):證明者算法P生成數(shù)WiA的哈希值^"。換句話說,證明者算法P計(jì)算C2,1 — H2 (WiA)。
[0251]處理(8):證明者算法P生成多項(xiàng)式組FiB的哈希值C。。換句話說,證明者算法P計(jì)算 c3,i—H3(FiB)。
[0252]H^...) >H2(...)和 H3(...)是哈希函數(shù)。另外,哈希值(C1^, c2,i, c3,J 是消息。
[0253]針對(duì)i=l至N,在執(zhí)行處理(I)至(8)之后,將在運(yùn)算# I中生成的消息(c1;i, c2; i, c3; i) (i=l至N)發(fā)送給驗(yàn)證者算法V。
[0254]運(yùn)算# 2:
[0255]在接收到消息(Cm, c2,i, C3J (i=l至N)時(shí),驗(yàn)證者算法V針對(duì)i=l至N中的每個(gè)從三個(gè)驗(yàn)證模式中選擇要使用的驗(yàn)證模式。例如,針對(duì)i=l至N中的每個(gè),驗(yàn)證者算法V可以從表示驗(yàn)證模式的三個(gè)數(shù)值{0,1,2}中選擇數(shù)值,并將選擇的數(shù)值設(shè)置在挑戰(zhàn)屯中。挑戰(zhàn)屯被發(fā)送給證明者算法P。
[0256]運(yùn)算# 3:
[0257]已經(jīng)接收到挑戰(zhàn)Cli (i=l至N)的證明者算法P響應(yīng)于挑戰(zhàn)Cli生成要被發(fā)送給驗(yàn)證者算法V的響應(yīng)oi0此時(shí),證明者算法P針對(duì)i=l至N執(zhí)行下面的處理(I)至(3)。
[0258]處理(I):當(dāng)Cli為O時(shí),證明者算法P生成響應(yīng)Oi=Wp
[0259]處理(2):當(dāng)Cli為I時(shí),證明者算法P生成響應(yīng)σ i=(WiA, Zi)。[0260]處理(3):當(dāng)Cli為2時(shí),證明者算法P生成響應(yīng)σ尸坑' Zi)。
[0261]在執(zhí)行處理(I)至(3)后,將響應(yīng)0i(i=l至N)發(fā)送給驗(yàn)證者算法V。
[0262]運(yùn)算#4:
[0263]已經(jīng)接收到響應(yīng)σ Ji=I至N)的驗(yàn)證者算法V利用接收到的響應(yīng)σ Ji=I至N)執(zhí)行下面的驗(yàn)證處理。針對(duì)i=l至N執(zhí)行下面的處理。
[0264]在Cli=O的情況下,驗(yàn)證者算法V計(jì)算(rA WiB) — G1 ( σ J。另外,驗(yàn)證者算法V計(jì)算# — 62(κβ)。然后,驗(yàn)證者算法V驗(yàn)證等式C2ii=H2(WiB)是否成立。另外,驗(yàn)證者算法V驗(yàn)證等式c3,F(xiàn)H3(FO^riA)+FiG(X))是否成立。驗(yàn)證者算法V在這些驗(yàn)證都成功的情況下輸出指示認(rèn)證成功的值1,而在驗(yàn)證失敗的情況下輸出指示認(rèn)證失敗的值O。
[0265]在Cli=I的情況下,驗(yàn)證者算法V設(shè)置(WiB,ZiA) — oi0另外,驗(yàn)證者算法V計(jì)算Fie — G2(WiB)。然后,驗(yàn)證者算法V驗(yàn)證等式Cm=H1 (#(Ζ’,Ζ’是否成立。另外,驗(yàn)證者算法V驗(yàn)證等式C2=H2 (WiB)是否成立。驗(yàn)證者算法V在這些驗(yàn)證都成功的情況下輸出指示認(rèn)證成功的值1,而在驗(yàn)證失敗的情況中輸出指示認(rèn)證失敗的值O。
[0266]在φ=2的情況下,驗(yàn)證者算法V設(shè)置(Fi11, ZiA) - oi0然后,驗(yàn)證者算法V驗(yàn)證等式Clii=H1 (F ^(ζ^-y,ζ^)是否成立。另外,驗(yàn)證者算法V驗(yàn)證等式C3,FH3(Fi11OO)是否成立。驗(yàn)證者算法V在這些驗(yàn)證都成功的情況下輸出指示認(rèn)證成功的值1,而在驗(yàn)證失敗的情況下輸出指示認(rèn)證失敗的值O。
[0267]以上描述了并行執(zhí)行本技術(shù)的交互協(xié)議的方法。如上所述,由于重復(fù)執(zhí)行本技術(shù)的交互協(xié)議,成功偽造的概率變得可忽略地小。
[0268]另外,可以進(jìn)行修改,使得可以在運(yùn)算# I之后向驗(yàn)證者發(fā)送哈希值
C-H (C1J, Clj 2, Clj 3,…,Cn, I,cN, 2) CN,3)而不疋發(fā)送(。 I, U cI, 2? cI, 3? *** ? cN, U cN, 2? CN, 3)。這里,考慮
到存在幾乎不能從響應(yīng)恢復(fù)的消息,需要修改交互協(xié)議,使得將消息與響應(yīng)一起從證明者發(fā)送給驗(yàn)證者。當(dāng)應(yīng)用該修改時(shí),在第一通發(fā)送的消息是單個(gè)哈希值C,從而顯著減少了通信量。例如,在N次并行重復(fù)結(jié)構(gòu)的情況下,要發(fā)送的信息條數(shù)可以減少2N-1。
[0269](合適的參數(shù)設(shè)置方法)
[0270]根據(jù)本實(shí)施例的交互協(xié)議確保針對(duì)被動(dòng)攻擊的安全性。然而,當(dāng)應(yīng)用上述并行重復(fù)執(zhí)行交互協(xié)議的方法時(shí),需要下述條件以保證可靠地保障針對(duì)主動(dòng)攻擊的安全性。
[0271]上述交互協(xié)議是用于通過使用一對(duì)密鑰(公開密鑰y和秘密密鑰s)向驗(yàn)證者驗(yàn)證“證明者針對(duì)I知道滿足y=F(s)的s”的算法。為此,當(dāng)執(zhí)行在驗(yàn)證中接受的交互時(shí),指示驗(yàn)證者知道“證明者在交互時(shí)使用s”的信息的概率是不可否認(rèn)的。另外,對(duì)于多元多項(xiàng)式F不能確??箾_突性。為此,當(dāng)并行重復(fù)執(zhí)行上述交互協(xié)議時(shí),難以無條件地保證可靠地確保針對(duì)主動(dòng)攻擊的安全性。
[0272]因此,本技術(shù)的發(fā)明人檢查了即使當(dāng)執(zhí)行在驗(yàn)證中接受的交互時(shí)也使得指示“證明者在交互時(shí)使用s”的信息對(duì)于驗(yàn)證者未知的方法。另外,本技術(shù)的發(fā)明人提出了一種即使在并行重復(fù)執(zhí)行上述交互協(xié)議時(shí)也使得能夠確保針對(duì)主動(dòng)攻擊的安全性的方法。該方法是將用作公開密鑰的多元多項(xiàng)式f\,...,fm的個(gè)數(shù)m設(shè)置為足夠小于變量的個(gè)數(shù)η的值的方法。例如,將m和η設(shè)置為使得2m_n〈〈l (例如,當(dāng)n=160且m=80時(shí),2_8°〈〈1)。
[0273]在安全性基于求解多階多元聯(lián)立方程的難度的方案中,即使在給定秘密密鑰S1和對(duì)應(yīng)于秘密密鑰S1的公開密鑰pk時(shí),也難以生成對(duì)應(yīng)于公開密鑰Pk的另一個(gè)秘密密鑰s2。為此,當(dāng)確保對(duì)于公開密鑰Pk存在兩個(gè)或更多個(gè)秘密密鑰s時(shí),即使在執(zhí)行在驗(yàn)證中接受的交互時(shí),也可以使得指示“證明者在交互時(shí)使用s”的信息對(duì)于驗(yàn)證者未知。即,當(dāng)建立該確保時(shí),即使在并行重復(fù)執(zhí)行交互協(xié)議時(shí),也可以確保針對(duì)主動(dòng)攻擊的安全性。
[0274]當(dāng)參考圖40考慮包括m個(gè)具有η個(gè)變量的多階多項(xiàng)式(其中n>m)的函數(shù)F:Kn—Km時(shí),不具有第二預(yù)圖像的定義域的元素的個(gè)數(shù)最多為|κ|π-1。為此,當(dāng)將|κ|π_η設(shè)置為足夠小時(shí),可以使得不具有第二預(yù)圖像的定義域的元素的選擇概率可忽略地小。即,當(dāng)將具有η個(gè)變量的多階多項(xiàng)式f\,...,fm的個(gè)數(shù)m設(shè)置為足夠小于變量的個(gè)數(shù)η的值時(shí),可以確保對(duì)于公開密鑰Pk存在兩個(gè)或更多個(gè)秘密密鑰S。因此,即使在執(zhí)行在驗(yàn)證中接受的交互時(shí),也可以使得指示“證明者在交互時(shí)使用s”的信息對(duì)于驗(yàn)證者未知。因此,即使在并行重復(fù)執(zhí)行交互協(xié)議時(shí),也確保了針對(duì)主動(dòng)攻擊的安全性。
[0275]如上所述,通過施加將具有η個(gè)變量的多階多項(xiàng)式f\,...,fm的個(gè)數(shù)m設(shè)置為足夠小于變量的個(gè)數(shù)η的值的設(shè)置條件(其中n>m,優(yōu)選2m_n〈〈l),可以在并行重復(fù)執(zhí)行交互協(xié)議時(shí)確保安全性。
[0276][2-4:具體示例(當(dāng)使用二階多項(xiàng)式時(shí))]
[0277]接下來,將參考圖7描述將具有η個(gè)變量的二階多項(xiàng)式用作多元多項(xiàng)式F的示例。圖7為用于描述本技術(shù)的具體示例的說明圖。
[0278](密鑰生成算法Gen )
[0279]密鑰生成算法Gen生成在環(huán)k上定義的m個(gè)多元多項(xiàng)式fi (Xi,...,Xn),...,^(X1,...,Xn)和作為集合 Kn 的元素的向量 S=G1,...,Sn)。接下來,生成算法 Gen 計(jì)算 y=(y1;..., ym) — (fjs),...,fm (s))。另外,生成算法 Gen 將(f” …,fm, y)設(shè)置為公開密鑰pk,并將s設(shè)置為秘密密鑰。下文中,將向量(Xl,...,Xn)表示為X,并將多元多項(xiàng)式組(4 00,...,乙00)表示為F (x)0這里,二階多項(xiàng)式fi(x)被表示為下面的公式(8)。
[0280][數(shù)學(xué)式7]
[0281]
【權(quán)利要求】
1.一種信息處理設(shè)備,包括: 消息生成單元,基于在環(huán)K上定義的多階多元多項(xiàng)式組F= (f1;…,fm)和作為集合Kn的元素的向量s生成N組消息; 第一信息選擇單元,將文檔M和所述N組消息輸入到單向函數(shù),并且選擇N個(gè)第一信息,其中,所述單向函數(shù)針對(duì)一組輸入信息從k (其中k ^ 3)個(gè)第一信息中選擇一個(gè)第一信息; 第二信息生成單元,生成與N個(gè)第一信息分別對(duì)應(yīng)的N個(gè)第二信息;以及 簽名提供單元,向驗(yàn)證者提供所述N個(gè)第一信息和N個(gè)第二信息作為數(shù)字簽名,其中,所述驗(yàn)證者保持所述多階多元多項(xiàng)式組F和向量y=(yp *.., ym) = (f!(s),…,fm(s)), 其中,所述向量s為簽名密鑰, 其中,所述多階多元多項(xiàng)式組F和向量y為公開密鑰,以及 其中,所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型選擇的規(guī)定運(yùn)算而獲得的信息。
2.根據(jù)權(quán)利要求1所述的信息處理設(shè)備, 其中,所述多階多元多項(xiàng)式組F以被定義為Fb (X,y) =F (x+y) -F (x) -F (y)的Fb (x, y)關(guān)于X和y是雙線性的方式被設(shè)置。
3.根據(jù)權(quán)利要求1所述的信息處理設(shè)備, 其中,所述多階多元多項(xiàng)式組F是利用根據(jù)生成公開密鑰的每個(gè)用戶而不同的信息生成的。
4.根據(jù)權(quán)利要求1所述的信息處理設(shè)備, 其中,所述多階多元多項(xiàng)式組F由二階多項(xiàng)式Fa與三階或更高階項(xiàng)之和來表示,其中,在二階多項(xiàng)式Fa中,被定義為Fb (X,y) =Fa (x+y) -Fa (x) -Fa (y)的Fb (x, y)關(guān)于x和y是雙線性的。
5.—種信息處理設(shè)備,包括: 信息保持單元,保持在環(huán)K上定義的多階多元多項(xiàng)式組F=^1,..., fm)和向量y= G1,…,ym) = (fi(s),…,fm(s)); 消息獲取單元,獲取N組消息,其中,所述N組消息是基于多階多元多項(xiàng)式組F和作為集合Kn的元素的向量s生成的; 簽名獲取單元,獲取數(shù)字簽名,所述數(shù)字簽名包括N個(gè)第一信息和N個(gè)第二信息,其中,N個(gè)第一信息是通過將文檔M和N組消息輸入到單向函數(shù)而選擇的,N個(gè)第二信息分別對(duì)應(yīng)于N個(gè)第一信息,其中,單向函數(shù)針對(duì)一組輸入信息從k (其中k ^ 3)個(gè)第一信息中選擇一個(gè)第一信息;以及 簽名驗(yàn)證單元,基于消息、多階多元多項(xiàng)式組F、向量y和數(shù)字簽名驗(yàn)證文檔M的有效性, 其中,所述向量s為簽名密鑰, 其中,所述多階多元多項(xiàng)式組F和向量y為公開密鑰,以及 其中,所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型選擇的規(guī)定運(yùn)算而獲得的信息。
6.根據(jù)權(quán)利要求5所述的信息處理設(shè)備,其中,所述多階多元多項(xiàng)式組F以被定義為Fb (X,y) =F(x+y)-F(X)-F(y)的Fb(x,y)關(guān)于X和y是雙線性的方式被設(shè)置。
7.根據(jù)權(quán)利要求5所述的信息處理設(shè)備, 其中,所述多階多元多項(xiàng)式組F是利用根據(jù)生成公開密鑰的每個(gè)用戶而不同的信息生成的。
8.根據(jù)權(quán)利要求5所述的信息處理設(shè)備, 其中,所述多階多元多項(xiàng)式組F由二階多項(xiàng)式Fa與三階或更高階項(xiàng)之和來表示,其中,在二階多項(xiàng)式Fa中,被定義為Fb (X,y) =Fa (x+y) -Fa (x) -Fa (y)的Fb (x, y)關(guān)于x和y是雙線性的。
9.一種簽名提供方法,包括: 基于在環(huán)K上定義的多階多元多項(xiàng)式組F=(G-^fm)和作為集合Kn的元素的向量s生成N組消息的步驟; 將文檔M和所述N組消息輸入到單向函數(shù),并且選擇N個(gè)第一信息的步驟,其中,所述單向函數(shù)針對(duì)一組輸入信息從k (其中k > 3)個(gè)第一信息中選擇一個(gè)第一信息; 生成分別對(duì)應(yīng)于N個(gè)第一信息的N個(gè)第二信息的步驟;以及 向驗(yàn)證者提供所述N個(gè)第一信息和N個(gè)第二信息作為數(shù)字簽名的步驟,其中,所述驗(yàn)證者保持多階多元多項(xiàng)式組F和向量y=(yi,*.., ym) = (f! (s),…,fm(s)), 其中,所述向量s為簽名密鑰, 其中,所述多階多元多項(xiàng)式組F和向量y為公開密鑰,以及 其中,所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型選擇的規(guī)定運(yùn)算而獲得的信息。
10.一種簽名驗(yàn)證方法,包括: 保持在環(huán)K上定義的多階多元多項(xiàng)式組F=^1,…,fm)和向量y= (Y1,…,ym) = (f1(s),…,fm(s))的步驟; 獲取N組消息的步驟,其中,所述N組消息是基于所述多階多元多項(xiàng)式組F和作為集合Kn的元素的向量s生成的; 獲取數(shù)字簽名的步驟,所述數(shù)字簽名包括N個(gè)第一信息和N個(gè)第二信息,其中,所述N個(gè)第一信息是通過將文檔M和所述N組消息輸入到單向函數(shù)而選擇的,所述N個(gè)第二信息分別對(duì)應(yīng)于N個(gè)第一信息,其中,單向函數(shù)針對(duì)一組輸入信息從k (其中k ^ 3)個(gè)第一信息中選擇一個(gè)第一信息;以及 基于消息、多階多元多項(xiàng)式組F、向量y和數(shù)字簽名驗(yàn)證文檔M的有效性的步驟, 其中,所述向量s為簽名密鑰, 其中,所述多階多元多項(xiàng)式組F和向量y為公開密鑰,以及 其中,所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型選擇的規(guī)定運(yùn)算而獲得的信息。
11.一種程序,使得計(jì)算機(jī)執(zhí)行: 消息生成功能,基于在環(huán)K上定義的多階多元多項(xiàng)式組F= (f\,…,fm)和作為集合Kn的元素的向量s生成N組消息; 第一信息選擇功能,將文檔M和所述N組消息輸入到單向函數(shù),并且選擇N個(gè)第一信息,其中,所述單向函數(shù)針對(duì)一組輸入信息從k (其中k ^ 3)個(gè)第一信息中選擇一個(gè)第一信息; 第二信息生成功能,生成分別對(duì)應(yīng)于N個(gè)第一信息的N個(gè)第二信息;以及簽名提供功能,向驗(yàn)證者提供所述N個(gè)第一信息和N個(gè)第二信息作為數(shù)字簽名,其中,所述驗(yàn)證者保持多階多元多項(xiàng)式組F和向量y=(yp…,ym) = (f! (s),…,fm(s)), 其中,所述向量s為簽名密鑰, 其中,所述多階多元多項(xiàng)式組F和向量y為公開密鑰,以及 其中,所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型選擇的規(guī)定運(yùn)算而獲得的信息。
12.—種程序,使得計(jì)算機(jī)執(zhí)行: 信息保持功能,保持在環(huán)K上定義的多階多元多項(xiàng)式組F=^1,…,fm)和向量y=(yp…,ym) = (fi(s),…,fm(s)); 消息獲取功能,獲取N組消息,其中,所述N組消息是基于多階多元多項(xiàng)式組F和作為集合Kn的元素的向量s生成的; 簽名獲取功能,獲取數(shù)字簽名,所述數(shù)字簽名包括N個(gè)第一信息和N個(gè)第二信息,其中,N個(gè)第一信息是通過將文檔M和所述N組消息輸入到單向函數(shù)而選擇的,N個(gè)第二信息分別對(duì)應(yīng)于N個(gè)第一信息,其中,所述單向函數(shù)針對(duì)一組輸入信息從k (其中k ^ 3)個(gè)第一信息中選擇一個(gè)第一信息;以及 簽名驗(yàn)證功能,基于消息、多階多元多項(xiàng)式組F、向量y和數(shù)字簽名驗(yàn)證文檔M的有效 性, 其中,所述向量s為簽名密鑰, 其中,所述多階多元多項(xiàng)式組F和向量y為公開密鑰,以及 其中,所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型選擇的規(guī)定運(yùn)算而獲得的信息。
13.—種計(jì)算機(jī)可讀記錄介質(zhì),所述計(jì)算機(jī)可讀記錄介質(zhì)上記錄有程序,所述程序使得計(jì)算機(jī)執(zhí)行: 消息生成功能,基于在環(huán)K上定義的多階多元多項(xiàng)式組F= (f\,…,fm)和作為集合Kn的元素的向量s生成N組消息; 第一信息選擇功能,將文檔M和所述N組消息輸入到單向函數(shù),并且選擇N個(gè)第一信息,其中,所述單向函數(shù)針對(duì)一組輸入信息從k (其中k ^ 3)個(gè)第一信息中選擇一個(gè)第一信息; 第二信息生成功能,生成分別對(duì)應(yīng)于N個(gè)第一信息的N個(gè)第二信息;以及簽名提供功能,向驗(yàn)證者提供所述N個(gè)第一信息和N個(gè)第二信息作為數(shù)字簽名,其中,所述驗(yàn)證者保持多階多元多項(xiàng)式組F和向量y=(yp…,ym) = (f! (s),…,fm(s)), 其中,所述向量s為簽名密鑰, 其中,所述多階多元多項(xiàng)式組F和向量y為公開密鑰,以及 其中,所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型選擇的規(guī)定運(yùn)算而獲得的信息。
14.一種計(jì)算機(jī)可讀記錄介質(zhì) ,所述計(jì)算機(jī)可讀記錄介質(zhì)上記錄有程序,所述程序使得計(jì)算機(jī)執(zhí)行: 信息保持功能,保持在環(huán)K上定義的多階多元多項(xiàng)式組F=^1,..., fm)和向量y= (Y1,…,ym) = (fi(s),…,fm(s)); 消息獲取功能,獲取N組消息,其中,所述N組消息是基于多階多元多項(xiàng)式組F和作為集合Kn的元素的向量s生成的; 簽名獲取功能,獲取數(shù)字簽名,所述數(shù)字簽名包括N個(gè)第一信息和N個(gè)第二信息,其中,所述N個(gè)第一信息是通過將文檔M和所述N組消息輸入到單向函數(shù)而選擇的,所述N個(gè)第二信息分別對(duì)應(yīng)于N個(gè)第一信息,其中,單向函數(shù)針對(duì)一組輸入信息從k (其中k ^ 3)個(gè)第一信息中選擇一個(gè)第一信息;以及 簽名驗(yàn)證功能,基于消息、多階多元多項(xiàng)式組F、向量y和數(shù)字簽名驗(yàn)證文檔M的有效性, 其中,所述向量s為簽名密鑰, 其中,所述多階多元多項(xiàng)式組F和向量y為公開密鑰,以及 其中,所述消息為通過利用公開密鑰和第二信息執(zhí)行根據(jù)對(duì)應(yīng)于第二信息的第一信息的類型選擇的規(guī)定運(yùn)算 而獲得的信息。
【文檔編號(hào)】G09C1/00GK103748830SQ201280037656
【公開日】2014年4月23日 申請(qǐng)日期:2012年7月31日 優(yōu)先權(quán)日:2011年8月12日
【發(fā)明者】作本紘一 申請(qǐng)人:索尼公司