本發(fā)明屬于密碼領(lǐng)域,涉及抗量子密碼遷移,尤其涉及一種從帶錯誤的公鑰加密算法(pke)構(gòu)造認證密鑰交換協(xié)議(ake)的方法與系統(tǒng)。
背景技術(shù):
1、認證密鑰交換協(xié)議(ake)是一種重要且廣泛用于現(xiàn)實的密碼協(xié)議,如tls協(xié)議的握手階段,本質(zhì)上就是一種滿足前向安全性的ake協(xié)議。ake協(xié)議的基本功能要求,簡而言之分為兩部分:其一,要求雙方均能確認交互對象的身份是否與自己認知的一致(稱為“認證性”);其二,要求互相確認身份無誤的雙方,能夠“安全地”共享一段秘密值(稱為“機密性”)。此外,為了現(xiàn)實的應(yīng)用,“前向安全性”通常也是ake協(xié)議設(shè)計必須考慮的安全目標(biāo)。前向安全性指的是,即便是在某次協(xié)議執(zhí)行時某惡意敵手獲得了其中一方的長期私鑰(用于提供身份證明),它仍然無法得知在該次通信之前已執(zhí)行完畢的協(xié)議流程所生成的共享秘密。
2、為了提供兩種基本功能要求與一個額外的安全性需求,ake協(xié)議的構(gòu)造往往采用兩種密碼原語作為組成部件,如圖1所示。一種原語作為長期秘密與參與方身份綁定,用于提供認證性;另一種原語生成臨時的秘密,并實現(xiàn)機密的共享秘密導(dǎo)出,且同時保證前向安全性。前者既可以以對稱密碼方式實現(xiàn),如預(yù)共享對稱密鑰并結(jié)合消息鑒別碼實現(xiàn),也可以以公鑰密碼方式實現(xiàn),如pki加數(shù)字簽名算法。但注意,本發(fā)明涉及的內(nèi)容主要在于第二部分原語,該部分功能在可以用密鑰封裝(kem)原語實現(xiàn)(在經(jīng)典中稱為密鑰交換kex,二者有細微差異,具體而言,kex相比kem是更小的一個概念,即也可以稱kex是一種kem;由于就大多應(yīng)用場景而言,kem與kex能夠?qū)崿F(xiàn)相同的功能,因此就本文陳述目的而言下文將不做區(qū)分)。
3、本發(fā)明的研究背景是對抗量子密碼遷移的研究。密碼學(xué)的研究,包括各類算法的安全性分析均基于一系列對計算能力的假設(shè)。例如,在經(jīng)典密碼學(xué)研究中對敵手能力的假設(shè)基于經(jīng)典計算機模型,即,具有強大的經(jīng)典計算機算力的敵手在足夠長的時間內(nèi)無法攻破相應(yīng)安全性目標(biāo)的密碼方案就被稱作經(jīng)典意義下安全的密碼方案。然而,隨著物理學(xué)家對量子力學(xué)研究的深入,自上世紀(jì)80年代量子計算的概念提出以來,利用量子效應(yīng)設(shè)計并建造具有相比經(jīng)典計算機具有更強運算能力的量子計算機,似乎已成為不再遙不可及的現(xiàn)實。量子計算機的數(shù)據(jù)存儲與運算方式與經(jīng)典計算機有很大的不同,因此經(jīng)典的計算模型不再能涵蓋對于量子計算機算力的描述。這也意味著,一旦量子計算機被制造成功,而又有一些巧妙利用了量子計算特殊的存儲運算特性的“量子算法”能夠比經(jīng)典算法更高效地解決一些“數(shù)學(xué)困難問題”時,在經(jīng)典設(shè)定下曾被認為是“困難”的問題將不再困難,于是基于這類問題設(shè)計的密碼算法在量子設(shè)定下也將不再安全。
4、具體而言例如,在經(jīng)典ake協(xié)議中所使用的各種密鑰交換算法,都基于(不同形式的)離散對數(shù)問題的困難性,如diffie-hellman或ecdh等。而量子算法“shor算法”的提出,宣告了離散對數(shù)問題對于(有足夠規(guī)模的)量子計算機而言將不再困難,即量子計算機能夠破解一切經(jīng)典ake協(xié)議中的密鑰交換。這意味著敵手可以現(xiàn)在就開始監(jiān)聽并存儲其攻擊對象之間的協(xié)議執(zhí)行和通信數(shù)據(jù),雖然以目前的經(jīng)典計算機難以從中獲得任何有益的信息,但一旦量子計算機投入實用,該敵手便可以利用量子計算機從其密鑰交換階段的密文中破解出共享秘密,并進一步將當(dāng)時通信的密文數(shù)據(jù)解密成明文,即“先存儲后解密”(harvestnow,decrypt?later)攻擊。
5、為抵抗此類攻擊,將ake協(xié)議中的密鑰交換算法,替換為基于量子算法無法高效解決的數(shù)學(xué)困難問題設(shè)計的,即“抗量子的”密鑰封裝算法成為一個迫在眉睫的安全性升級措施。在基于目前被認為有望抗量子的數(shù)學(xué)困難問題設(shè)計密碼方案的路線中,基于格的密碼學(xué)是目前最具前景的候選之一。但包括“基于格的”技術(shù)路線在內(nèi),有幾條新技術(shù)路線的抗量子算法因其所基于的數(shù)學(xué)困難問題的形式,出現(xiàn)了一個經(jīng)典算法中未曾出現(xiàn)的問題,即“解密錯誤”。這類算法天然具有解密錯誤,因此如果不修改經(jīng)典協(xié)議的設(shè)計(即不容忍錯誤),則只能通過對參數(shù)選擇施加額外的限制以保證這種錯誤出現(xiàn)的概率是極小的,而在本發(fā)明之前的工作也都是這樣做的,如圖2所示。缺點是:使得參數(shù)選擇只能使用較大且性能尺寸表現(xiàn)較差的參數(shù),即算法性能較低,用于構(gòu)造ake協(xié)議也將拉低ake的性能尺寸表現(xiàn),即圖2所示方式會導(dǎo)致中間方框中公鑰加密(pke)性能尺寸表現(xiàn)較差,從而導(dǎo)致右側(cè)方框中ake的性能尺寸表現(xiàn)較差。
6、應(yīng)當(dāng)注意,圖1所示的ake組成結(jié)構(gòu)中并未包含pke,而是包含kem。本領(lǐng)域技術(shù)人員能夠理解pke和kem之間直接的轉(zhuǎn)換關(guān)系,如圖3所示。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于提供一種能將被動安全但帶有解密錯誤的pke算法,用于構(gòu)造安全的ake協(xié)議的方法。該方法是通用的方法,其特征在于包含兩部分變換:第一部分變換作用于pke算法,將選擇明文單向安全(ow-cpa)但帶有解密錯誤的pke,轉(zhuǎn)化成可泄露錯誤的選擇明文不可區(qū)分安全(ind-cpawf,仍帶有解密錯誤,但解密錯誤不泄露敏感信息)的kem算法;第二部分變換作用于ake協(xié)議,在常規(guī)的ake協(xié)議步驟中額外引入密鑰一致性確認的步驟,僅在確認無解密錯誤發(fā)生時才接受導(dǎo)出密鑰,否則中止協(xié)議或等待重新執(zhí)行,如圖4所示。
2、本發(fā)明提出了一種以容忍錯誤的方式構(gòu)造安全的ake協(xié)議的方法,從而給pke的算法設(shè)計者提供了更大的參數(shù)選擇靈活度。同時,由于更大的參數(shù)選擇范圍意味著算法本身可以通過優(yōu)選(原本受“要求解密錯誤極小”這一限制而被舍棄的)參數(shù),因此算法設(shè)計者可實現(xiàn)具有更優(yōu)性能和尺寸表現(xiàn)的算法。另外,本方法為去除解密錯誤限制對pke算法執(zhí)行的變換,以及在ake協(xié)議設(shè)計中引入的額外步驟的代價,與原有的因解密錯誤限制而對算法性能尺寸施加的代價相比,往往是更小的,即是說:在pke算法設(shè)計中通過允許更大的解密錯誤而放松、優(yōu)選參數(shù)帶來的性能尺寸提升,在遵循本方法引入少量開銷后,仍能明顯反映到最終ake協(xié)議的性能與尺寸表現(xiàn)的提升中。
3、符號定義。下文中用h(·)表示滿足安全強度的哈希函數(shù),prf(·,·)表示滿足安全強度且單射的偽隨機函數(shù)。
4、本發(fā)明采用的技術(shù)方案如下:
5、一種從帶錯誤的pke算法構(gòu)造ake協(xié)議的方法,其步驟包括:
6、1)將選擇明文單向安全ow-cpa但帶有解密錯誤的pke轉(zhuǎn)化為可泄露錯誤的選擇明文不可區(qū)分安全的kem,記為ind-cpawf的kem;
7、2)將不能使用有錯誤kem的ake轉(zhuǎn)化為能使用有錯誤kem的ake協(xié)議。
8、進一步的,所述ind-cpawf的kem包括kem的密鑰生成算法、kem的封裝算法和kem的解封裝算法;其中,
9、kem的密鑰生成算法為:輸入為空,輸出公鑰和私鑰。利用pke的密鑰生成算法生成密鑰封裝kem的公鑰和私鑰;
10、kem的封裝算法為:輸入為公鑰,輸出為兩個值c和k。在pke的明文空間中隨機生成封裝消息m;使用pke的加密算法,以密鑰封裝kem的公鑰加密封裝消息m,得到的密文記為密文值c;將封裝消息m輸入哈希函數(shù)h(·),以導(dǎo)出封裝密鑰k=h(m);
11、kem的解封裝算法為:輸入為私鑰和c,輸出為k’(正確情況下k’=k)。使用pke的解密算法以密鑰封裝kem的私鑰解密密文值c,得到封裝消息m′;解密得到的封裝消息m′輸入哈希函數(shù)h(·),以導(dǎo)出封裝密鑰k′=h(m′)。
12、進一步的,所述能使用有錯誤kem的ake協(xié)議為基于預(yù)共享對稱密鑰的ake;其中,執(zhí)行kem的封裝算法的一方使用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k與tag1導(dǎo)出一段密鑰確認數(shù)據(jù)chk=prf(k,tag1),并將其包含在計算消息認證碼mac的輸入數(shù)據(jù)中,以及使用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k與tag2導(dǎo)出會話密鑰ssk=prf(k,tag2);執(zhí)行kem的解封裝算法的一方使用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k′與tag1重新計算密鑰確認數(shù)據(jù)chk′=prf(k′,tag1),并與收到的密鑰確認數(shù)據(jù)比對chk′=?chk,當(dāng)且僅當(dāng)比對一致時導(dǎo)出會話密鑰ssk=prf(k′,tag2),否則中止協(xié)議的執(zhí)行;其中,tag1、tag2為約定的任意不相等的字符串。
13、進一步的,所述能使用有錯誤kem的ake協(xié)議為基于數(shù)字簽名的ake;其中,執(zhí)行kem的封裝算法的一方使用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k與tag1導(dǎo)出一段密鑰確認數(shù)據(jù)chk=prf(k,tag1),并將其包含在計算數(shù)字簽名的輸入數(shù)據(jù)中,以及使用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k與tag2導(dǎo)出會話密鑰ssk=prf(k,tag2);執(zhí)行kem的解封裝算法的一方使用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k′與tag1重新計算密鑰確認數(shù)據(jù)chk′=prf(k′,tag1),并與收到的密鑰確認數(shù)據(jù)比對chk′=?chk,當(dāng)且僅當(dāng)比對一致時導(dǎo)出會話密鑰ssk′=prf(k′,tag2),否則中止協(xié)議的執(zhí)行;其中,tag1、tag2為約定的任意不相等的字符串。
14、一種基于預(yù)共享密鑰的ake協(xié)議的安全信道建立方法,其步驟包括:
15、1)參與通信的參與方a、b確定預(yù)共享密鑰psk;
16、2)參與方a調(diào)用kem的密鑰生成算法kgen生成參與方a的一次性公私鑰對(epk,esk)
17、←kgen,并令發(fā)送數(shù)據(jù)x=epk;其中,epk為參與方a的kem公鑰,esk為參與方a的kem私鑰;
18、3)參與方a使用預(yù)共享密鑰psk計算得到數(shù)據(jù)x的mac值[x];將(x,[x])發(fā)送給參與方b;
19、4)參與方b使用預(yù)共享密鑰psk計算接收數(shù)據(jù)x的mac值,并驗證自己計算的mac值mac(psk,x)與收到的[x]是否一致;若驗證通過,則根據(jù)接收數(shù)據(jù)x=epk調(diào)用kem的密鑰封裝算法encap生成密文c及封裝密鑰k;然后利用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k與tag1導(dǎo)出一段密鑰確認數(shù)據(jù)chk=prf(k,tag1),將密文c與chk進行拼接得到y(tǒng)=(c,chk)并使用預(yù)共享密鑰psk計算得到(x,[x],y)的mac值[x,
20、[x],y];以及使用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k與tag2導(dǎo)出會話密鑰ssk=prf(k,tag2);然后將(y,[x,[x],y])給參與方a;
21、5)參與方a利用預(yù)共享密鑰psk計算(y,[x,[x],y])的mac值,并驗證自己計算的mac值mac(psk,(x,[x],y))?=[x,[x],y];若驗證通過,則以密文c和esk為輸入調(diào)用kem的解封裝算法decap解封裝出封裝密鑰k’;然后使用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k′與tag1重新計算密鑰確認數(shù)據(jù)chk′=prf(k′,tag1),并與收到的密鑰確認數(shù)據(jù)比對chk′=?chk,當(dāng)且僅當(dāng)比對一致時導(dǎo)出會話密鑰ssk=prf(k′,tag2),否則中止協(xié)議的執(zhí)行;其中,tag1、tag2為約定的任意不相等的字符串。
22、一種基于數(shù)字簽名的ake協(xié)議的安全信道建立方法,其步驟包括:
23、1)參與方a調(diào)用kem的密鑰生成算法kgen生成參與方a的一次性公私鑰對(epk,esk)
24、←kgen,并令發(fā)送數(shù)據(jù)x=epk;其中,epk為參與方a的kem公鑰,esk為參與方a的kem私鑰;
25、2)參與方a使用自己的簽名私鑰ska計算發(fā)送數(shù)據(jù)x的簽名值{x};然后將(x,{x})
26、發(fā)送給參與方b;
27、3)參與方b使用參與方a的驗簽公鑰vka驗證簽名值{x},若驗證通過則將接收數(shù)據(jù)x
28、=epk作為輸入調(diào)用kem的密鑰封裝算法encap生成密文c及封裝密鑰k;利用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k與tag1導(dǎo)出一段密鑰確認數(shù)據(jù)chk=
29、prf(k,tag1),將密文c與chk進行拼接得到y(tǒng)=(c,chk)并利用自己的簽名私鑰skb對(x,{x},y)進行簽名,得到簽名值{x,{x},y};以及使用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k與tag2導(dǎo)出會話密鑰ssk=prf(k,tag2);然后將(y,{x,{x},y})給參與方a;
30、4)參與方a利用參與方b的驗簽公鑰vkb驗證簽名值{x,{x},y},若驗證通過則以密文c和esk為輸入調(diào)用kem的解封裝算法decap解封裝出封裝密鑰k’;然后使用偽隨機函數(shù)prf(·,·)根據(jù)封裝密鑰k′與tag1重新計算密鑰確認數(shù)據(jù)chk′=prf(k′,tag1),并與收到的密鑰確認數(shù)據(jù)比對chk′=?chk,當(dāng)且僅當(dāng)比對一致時導(dǎo)出會話密鑰ssk=prf(k′,tag2),否則中止協(xié)議的執(zhí)行;其中,tag1、tag2為約定的任意不相等的字符串。
31、一種從帶錯誤的pke算法構(gòu)造ake協(xié)議的系統(tǒng),其特征在于,包括pke變換模塊和ake變換模塊;其中,
32、所述pke變換模塊,用于將選擇明文單向安全ow-cpa但帶有解密錯誤的pke轉(zhuǎn)化為可泄露錯誤的選擇明文不可區(qū)分安全的kem,記為ind-cpawf的kem;
33、所述ake變換模塊,用于將不能使用有錯誤kem的ake轉(zhuǎn)化為能使用有錯誤kem的ake協(xié)議。
34、為了能夠使用圖4所示的框架,通過允許實際出現(xiàn)解密錯誤的方式安全地構(gòu)造更加高效的ake協(xié)議,有兩方面要求:第一,要求ake從不處理解密錯誤,變?yōu)槟軌蛱幚斫饷苠e誤;第二,使帶錯誤的pke由滿足ow-cpa安全性加強為滿足ind-cpawf安全性(但仍帶錯誤)的kem。通過兩個步驟的結(jié)合,可以將帶有錯誤且滿足ind-cpawf安全性的kem用在能夠處理解密錯誤的ake協(xié)議中,得到安全且更加高效的ake協(xié)議。
35、因此,一種從帶錯誤的pke算法構(gòu)造ake協(xié)議的方法,其組成部分包括:
36、1.pke變換。將ow-cpa但帶有解密錯誤的pke轉(zhuǎn)化為ind-cpawf的kem。
37、2.ake變換。將不能使用有錯誤kem的ake轉(zhuǎn)化為能使用有錯誤kem的ake。
38、其中,第二部分ake變換又分為兩種類型:
39、2.1基于預(yù)共享對稱密鑰的ake。
40、2.2基于數(shù)字簽名的ake。
41、具體而言,上述pke變換如下:
42、kem的密鑰生成算法:與pke的密鑰生成算法相同,即利用pke的密鑰生成算法生成密鑰封裝kem的公鑰和私鑰。
43、kem的封裝算法:
44、(1)在pke的明文空間中隨機生成封裝消息m;
45、(2)使用pke的加密算法,以公鑰加密封裝消息m,得到的密文記為密文值c;
46、(3)將封裝消息m輸入哈希函數(shù)h(·),以導(dǎo)出封裝密鑰k=h(m)。
47、kem的解封裝算法:
48、(1)使用pke的解密算法,以私鑰解密密文值c,得到封裝消息m′(可能出現(xiàn)解密錯誤而導(dǎo)致m′≠m);
49、(2)將解密得到的封裝消息m′輸入哈希函數(shù)h(·),以導(dǎo)出封裝密鑰k′=h(m′)。
50、其中,本發(fā)明的創(chuàng)新性在于封裝算法的步驟(3)與解封裝算法的步驟(2)中哈希函數(shù)h(·)的使用。此前將被動安全的pke轉(zhuǎn)化為被動安全的kem的變換,并不要求有這一步驟。
51、接著,上述兩種ake變換分別如下:
52、1.基于預(yù)共享對稱密鑰的ake:
53、該類ake,身份認證以使用對稱密鑰的消息認證碼(mac)實現(xiàn)。
54、封裝kem密文的一方(即執(zhí)行上述kem的封裝算法encap的一方),額外使用偽隨機函數(shù)prf(·,·)輸入封裝密鑰k與tag1導(dǎo)出一段密鑰確認數(shù)據(jù)chk=prf(k,tag1),并將其包含在計算消息認證碼的輸入數(shù)據(jù)中,同時使用偽隨機函數(shù)prf(·,·)輸入封裝密鑰k與tag2導(dǎo)出會話密鑰ssk=prf(k,tag2)。
55、解封裝kem密文的一方(即執(zhí)行上述kem的解封裝算法decap的一方),在解封裝得到封裝密鑰k′后執(zhí)行一步額外的確認操作,即:使用偽隨機函數(shù)prf(·,·)輸入封裝密鑰k′與tag1重新計算密鑰確認數(shù)據(jù)chk′=prf(k′,tag1),并與收到的密鑰確認數(shù)據(jù)比對chk′=?chk,當(dāng)且僅當(dāng)比對一致時繼續(xù)執(zhí)行協(xié)議并以相同方式導(dǎo)出會話密鑰ssk=prf(k′,tag2),否則中止協(xié)議的執(zhí)行。
56、其中,tag1≠tag2可以是協(xié)議約定的任意不相等的固定字符串,用于差別化prf的使用。
57、2.基于數(shù)字簽名的ake:
58、該類ake,身份認證以使用非對稱密鑰的數(shù)字簽名(digital?signature)實現(xiàn)。
59、封裝kem密文的一方,額外使用偽隨機函數(shù)prf(·,·)輸入封裝密鑰k與tag1導(dǎo)出一段密鑰確認數(shù)據(jù)chk=prf(k,tag1),并將其包含在計算數(shù)字簽名的輸入數(shù)據(jù)中,同時使用偽隨機函數(shù)prf(·,·)輸入封裝密鑰k與tag2導(dǎo)出會話密鑰ssk=prf(k,tag2)。
60、解封裝kem密文的一方,在解封裝得到封裝密鑰k′后執(zhí)行一步額外的確認操作,即:使用偽隨機函數(shù)prf(·,·)輸入封裝密鑰k′與tag1重新計算密鑰確認數(shù)據(jù)chk′=prf(k′,tag1),并與收到的密鑰確認數(shù)據(jù)比對chk′=?chk,當(dāng)且僅當(dāng)比對一致時繼續(xù)執(zhí)行協(xié)議并以相同方式導(dǎo)出會話密鑰ssk′=prf(k′,tag2),否則中止協(xié)議的執(zhí)行。
61、其中,tag1≠tag2可以是協(xié)議約定的任意不相等的固定字符串,用于差別化prf的使用。
62、應(yīng)當(dāng)注意,以上任意一種方法中由于加解封裝過程有不可忽略的概率出現(xiàn)解密錯誤,從而可能出現(xiàn)解封裝密鑰與封裝前不一致(k′≠k)的情況,但此時經(jīng)過上述方法增加的密鑰確認數(shù)據(jù)chk′與chk的比對步驟,將要求協(xié)議在此情形下中止運行;進一步地,若chk′與chk比對一致,則意味著k′=k,從而協(xié)議繼續(xù)執(zhí)行將導(dǎo)出一致的會話密鑰ssk′=ssk。
63、其中,本發(fā)明的創(chuàng)新性在于由偽隨機函數(shù)prf(·,·)計算比對chk的步驟,即一致性確認與錯誤中止步驟的引入。這一步驟使得解封裝一方得以知曉解密錯誤是否發(fā)生,并在錯誤發(fā)生時避免使用該“不安全的會話密鑰”做后續(xù)密碼操作而是直接丟棄中止,從而避免了數(shù)據(jù)安全問題的出現(xiàn)。
64、同時,本發(fā)明的兩種變換是相關(guān)的。具體而言,單純?yōu)榱耸褂靡粋€具有較大解密錯誤的kem而僅執(zhí)行ake變換,并不能確保使用該kem的協(xié)議是安全的。這是因為具有較大解密錯誤的kem首先需要滿足ind-cpawf安全性(這并不總是成立的),然后結(jié)合本發(fā)明提供的ake變換才能保證安全。因此,第一種變換從具有較大解密錯誤的pke出發(fā),首先構(gòu)造出具有較大解密錯誤且ind-cpawf安全的kem,然后就可以將此kem用于變換后的ake協(xié)議。換言之,本發(fā)明提供的pke變換與ake變換二者之間具有先后順序與較強的聯(lián)系。
65、與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為:
66、本發(fā)明能夠?qū)⒈粍影踩珟в薪饷苠e誤的pke,用于構(gòu)造安全的ake的方法與系統(tǒng)。具體而言,該方法首先以一種簡單的變換,將ow-cpa但帶有解密錯誤的pke,轉(zhuǎn)化成ind-cpa且錯誤信息不影響其不可區(qū)分安全性(本文稱為ind-cpawf)的kem;其次,再在常規(guī)的認證密鑰交換協(xié)議設(shè)計中引入額外的確認步驟,僅在確認無解密錯誤發(fā)生時才接受導(dǎo)出密鑰,否則中止協(xié)議或等待重新執(zhí)行。
67、該方法可用于放松某類pke算法在設(shè)計時的參數(shù)選擇,這類算法天然具有解密錯誤(由底層數(shù)學(xué)困難問題決定)因此若想用于不容忍錯誤的協(xié)議中,只能通過對參數(shù)選擇施加額外的限制以保證這種錯誤出現(xiàn)的概率是極小的;而本發(fā)明提出了一種以容忍錯誤的方式構(gòu)造安全的ake協(xié)議的方法,從而給pke的算法設(shè)計者提供了更大的參數(shù)選擇靈活度。同時,由于更大的參數(shù)選擇范圍意味著算法本身可以通過優(yōu)選(原本受“要求解密錯誤極小”這一限制而被舍棄的)參數(shù),因此算法設(shè)計者可實現(xiàn)具有更優(yōu)性能和尺寸表現(xiàn)的算法。另外,本方法為去除解密錯誤限制對pke算法所執(zhí)行的變換,以及在ake協(xié)議設(shè)計中引入額外步驟的代價,與原有的因解密錯誤限制而對算法性能尺寸施加的代價相比,往往是更小的,即是說:在pke算法設(shè)計中通過允許更大的解密錯誤而放松、優(yōu)選參數(shù)帶來的性能尺寸提升,在遵循本方法引入少量開銷后,仍能明顯反映到最終ake協(xié)議的性能與尺寸表現(xiàn)的提升中。