本發(fā)明涉及信息安全,特別涉及一種對(duì)后量子密碼中公鑰密碼的側(cè)信道攻擊方法。
背景技術(shù):
1、傳統(tǒng)的公鑰密碼學(xué)rsa(rivest-shamir-adleman)算法和橢圓曲線密碼學(xué)ecc分別依賴于整數(shù)分解和離散對(duì)數(shù)問題的計(jì)算難解性。然而,隨著量子計(jì)算的出現(xiàn),人們提出了擔(dān)憂,因?yàn)樗鼈兛梢栽诙囗?xiàng)式時(shí)間內(nèi)被shor算法破解,從而揭示了現(xiàn)有密碼算法的安全性不足。crystals-kyber是一種基于帶誤差模塊學(xué)習(xí)問題構(gòu)造的基于格的后量子密碼算法。即使在量子計(jì)算中,帶誤差學(xué)習(xí)問題也被認(rèn)為是安全的。值得注意的是,kyber的數(shù)學(xué)安全性已經(jīng)得到密碼學(xué)界的廣泛認(rèn)可。然而,對(duì)于即將到來的部署階段,迫切需要強(qiáng)調(diào)其物理安全性。
2、側(cè)信道安全是物理安全中非常重要的一部分,首次引入側(cè)信道攻擊(sca)是利用了數(shù)據(jù)對(duì)加密設(shè)備功耗的依賴破解了設(shè)備中的秘密密鑰。相關(guān)功耗分析(cpa)攻擊是sca非侵入式攻擊中非常流行的一種攻擊手段,在不破壞密碼設(shè)備運(yùn)行的情況下,這種攻擊使用大量的能量跡分析固定時(shí)刻的能量消耗,并將能量消耗視作被處理數(shù)據(jù)的函數(shù),最終通過數(shù)據(jù)處理提取出設(shè)備中的密鑰。圖7給出了kyber的解密過程,接收方利用接收到的密文與自身的密鑰進(jìn)行一些相應(yīng)的操作恢復(fù)信息。目前已經(jīng)通過測(cè)試向量泄漏評(píng)估方法已經(jīng)評(píng)估到該過程存在包括系數(shù)乘、模約簡(jiǎn)等很嚴(yán)重的側(cè)信道泄露點(diǎn)。cpa就是把系數(shù)乘、模約簡(jiǎn)等的結(jié)果作為中間值,通過對(duì)采集到的數(shù)據(jù)進(jìn)行一些處理從而獲得其中參與運(yùn)算的密鑰信息。
3、然而傳統(tǒng)cpa攻擊kyber算法往往需要很多條能量跡進(jìn)行分析以得到秘密密鑰,這個(gè)過程的成本非常高并且失敗的幾率也很大。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種對(duì)后量子密碼中公鑰密碼的側(cè)信道攻擊方法,以解決現(xiàn)有cpa攻擊計(jì)算量大且攻擊失敗概率大的問題。
2、所述方法包括:
3、獲取待解密密鑰,對(duì)所述待解密密鑰進(jìn)行cpa攻擊,所述cpa攻擊包括根據(jù)所述待解密密鑰進(jìn)行相關(guān)性計(jì)算,得到皮爾森相關(guān)性矩陣,并將所述皮爾森相關(guān)性矩陣導(dǎo)入修正漢明重量模型中進(jìn)行篩選,得到若干個(gè)正確密鑰系數(shù);所述修正漢明重量模型用于計(jì)算對(duì)應(yīng)所述待解密密鑰中間值的補(bǔ)碼,所述中間值的補(bǔ)碼為所述cpa的攻擊位置;
4、對(duì)所述正確密鑰系數(shù)進(jìn)行試錯(cuò)格攻擊,得到完整解密密鑰,所述完整解密密鑰用于解密已知密文。
5、優(yōu)選的,所述cpa攻擊還包括:
6、獲取在解密所述已知密文時(shí)的能量跡矩陣,所述已知密文由所述待解密密鑰加密,解密過程中的所述點(diǎn)乘位置為所述中間值;
7、根據(jù)所述已知密文計(jì)算得到假設(shè)中間值矩陣,所述中間值矩陣根據(jù)所述中間值計(jì)算得到;
8、根據(jù)所述能量跡矩陣和所述假設(shè)中間值矩陣進(jìn)行相關(guān)性計(jì)算,得到所述皮爾森相關(guān)性矩陣,所述皮爾森相關(guān)性矩陣包括若干個(gè)預(yù)測(cè)系數(shù),每個(gè)所述預(yù)測(cè)系數(shù)的相關(guān)性不同。
9、優(yōu)選的,所述cpa攻擊還包括:
10、根據(jù)所述皮爾森相關(guān)性矩陣進(jìn)行篩選,并篩選出相關(guān)性最大的若干個(gè)第一系數(shù);
11、將所述皮爾森相關(guān)性矩陣導(dǎo)入修正漢明重量模型中進(jìn)行映射并再次篩選,并篩選出正相關(guān)性最大的第二系數(shù),當(dāng)所述第二系數(shù)和所述第一系數(shù)重合時(shí),將所述第二系數(shù)標(biāo)記為所述待解密密鑰的一個(gè)正確密鑰系數(shù)。
12、優(yōu)選的,所述cpa攻擊還包括:
13、當(dāng)所述第一系數(shù)和所述第二系數(shù)均有若干個(gè)相關(guān)性強(qiáng)且相關(guān)性差異不大的系數(shù)時(shí),根據(jù)所述第一系數(shù)或所述第二系數(shù)計(jì)算肯德爾計(jì)算,得到肯德爾系數(shù)矩陣,并根據(jù)所述肯德爾系數(shù)矩陣?yán)L制曲線圖;
14、從曲線圖中篩選出最穩(wěn)定的第三系數(shù),并將所述第三系數(shù)標(biāo)記為所述待解密密鑰的一個(gè)所述正確密鑰系數(shù)。
15、優(yōu)選的,所述cpa攻擊還包括:
16、利用cpa攻擊對(duì)第一預(yù)設(shè)數(shù)量的所有所述密鑰系數(shù)進(jìn)行計(jì)算,得到所述第一預(yù)設(shè)數(shù)量的所述正確密鑰系數(shù);
17、所有所述正確密鑰系數(shù)包括初始密鑰系數(shù)、其他密鑰系數(shù)、初始相關(guān)性和其他相關(guān)性,所述初始密鑰系數(shù)的數(shù)量至少為第二預(yù)設(shè)數(shù)量,所述初始相關(guān)性對(duì)應(yīng)所述初始密鑰系數(shù),所述其他相關(guān)性對(duì)應(yīng)所述其他密鑰系數(shù);
18、所述試錯(cuò)格攻擊包括:
19、根據(jù)所述正確密鑰系數(shù)進(jìn)行密鑰擴(kuò)充,得到所述完整解密密鑰。
20、優(yōu)選的,所述試錯(cuò)格攻擊還包括:
21、根據(jù)所述正確密鑰系數(shù)和所述待解密密鑰進(jìn)行計(jì)算,得到初始索引和其他索引,所述初始索引對(duì)應(yīng)所述初始密鑰系數(shù),所述其他索引對(duì)應(yīng)所述其他密鑰系數(shù);
22、依次對(duì)所述正確密鑰系數(shù)進(jìn)行第一函數(shù)、第二函數(shù)、第三函數(shù)、第四函數(shù)和第五函數(shù)的處理,并在完成所述第五函數(shù)后重新依次進(jìn)行所述第一函數(shù)、所述第二函數(shù)和所述第三函數(shù)的處理,得到所述完整解密密鑰;所述第一函數(shù)為kanan嵌入算法,通過所述第一函數(shù)得到有界距離解碼的最短向量。
23、優(yōu)選的,所述試錯(cuò)格攻擊還包括:
24、根據(jù)所述正確密鑰系數(shù)進(jìn)行計(jì)算,得到所述最短向量;
25、將所述正確密鑰系數(shù)整數(shù)域上的向量轉(zhuǎn)化到ntt域上,得到數(shù)量為所述第二預(yù)設(shè)數(shù)量的第一密鑰系數(shù),并在所述第一密鑰系數(shù)中進(jìn)行提取,得到第二密鑰系數(shù);
26、利用所述初始相關(guān)性和所述其他相關(guān)性對(duì)所述初始索引和所述其他索引進(jìn)行更新;
27、利用所述其他密鑰系數(shù)、初始相關(guān)性和其他相關(guān)性對(duì)所述初始密鑰系數(shù)進(jìn)行更新,直至所述初始密鑰系數(shù)的數(shù)量為所述第二預(yù)設(shè)數(shù)量。
28、優(yōu)選的,所述將所述正確密鑰系數(shù)整數(shù)域上的向量轉(zhuǎn)化到ntt域上的步驟包括:
29、將線性變換矩陣和所述最短向量輸入到所述第二函數(shù)中進(jìn)行計(jì)算,得到所述第一密鑰系數(shù);
30、所述在所述第一密鑰系數(shù)中進(jìn)行提取的步驟包括:
31、將所述第一密鑰系數(shù)和所述初始索引輸入到所述第三函數(shù)中進(jìn)行計(jì)算,得到所述第二密鑰系數(shù),所述第二密鑰系數(shù)為根據(jù)所述初始索引提取的數(shù)量至少為第一預(yù)設(shè)數(shù)量的數(shù)組。
32、優(yōu)選的,所述利用所述初始相關(guān)性和所述其他相關(guān)性對(duì)所述初始索引和所述其他索引進(jìn)行更新的步驟包括:
33、將所述初始索引、所述其他索引、所述初始系數(shù)和所述其他系數(shù)輸入所述第四函數(shù)中進(jìn)行計(jì)算,得到更新索引;
34、所述利用所述其他密鑰系數(shù)、初始相關(guān)性和其他相關(guān)性對(duì)所述初始密鑰系數(shù)進(jìn)行更新的步驟包括:
35、將所述其他密鑰系數(shù)、初始密鑰系數(shù)、初始相關(guān)性和其他相關(guān)性輸入所述第五函數(shù)中進(jìn)行計(jì)算,得到更新密鑰系數(shù)。
36、優(yōu)選的,所述試錯(cuò)格攻擊還包括:
37、將所述更新密鑰系數(shù)、所述更新索引輸入依次輸入所述第一函數(shù)、第二函數(shù)和第三函數(shù),并在所述初始密鑰系數(shù)的數(shù)量為所述第二預(yù)設(shè)數(shù)量時(shí),將所述初始密鑰系數(shù)輸出為所述完整解密密鑰。
38、由上述內(nèi)容可知,本技術(shù)提供一種對(duì)后量子密碼中公鑰密碼的側(cè)信道攻擊方法,所述方法包括獲取待解密密鑰,對(duì)所述待解密密鑰進(jìn)行cpa攻擊,所述cpa攻擊包括根據(jù)所述待解密密鑰進(jìn)行相關(guān)性計(jì)算,得到皮爾森相關(guān)性矩陣,并將所述皮爾森相關(guān)性矩陣導(dǎo)入修正漢明重量模型中進(jìn)行篩選,得到若干個(gè)正確密鑰系數(shù);所述修正漢明重量模型用于計(jì)算對(duì)應(yīng)所述待解密密鑰中間值的補(bǔ)碼,所述中間值的補(bǔ)碼為所述cpa的攻擊位置;對(duì)所述正確密鑰系數(shù)進(jìn)行試錯(cuò)格攻擊,得到完整解密密鑰,所述完整解密密鑰用于解密已知密文。本技術(shù)通過上述方法解決了現(xiàn)有cpa攻擊計(jì)算量大且攻擊失敗概率大的問題。