亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于Cache的AES算法的安全評(píng)估方法和系統(tǒng)與流程

文檔序號(hào):11475631閱讀:284來源:國(guó)知局
基于Cache的AES算法的安全評(píng)估方法和系統(tǒng)與流程

本發(fā)明涉及計(jì)算機(jī)寄存器技術(shù)領(lǐng)域,尤其是涉及基于cache的aes(advancedencryptionstandard,高級(jí)加密標(biāo)準(zhǔn))算法的安全評(píng)估方法和系統(tǒng)。



背景技術(shù):

移動(dòng)互聯(lián)網(wǎng)的迅猛發(fā)展導(dǎo)致了智能終端的數(shù)量急劇增加,功能也日益增強(qiáng)。伴隨著終端智能化及網(wǎng)絡(luò)寬帶化的趨勢(shì),移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)層出不窮,日益繁榮。但作為業(yè)務(wù)載體的智能終端卻面臨各種安全威脅,如惡意訂購(gòu)、盜取賬戶、監(jiān)聽通話等。與此同時(shí),智能終端越來越多地涉及商業(yè)秘密和個(gè)人隱私等敏感信息,智能終端作為移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)最主要的載體,面臨著嚴(yán)峻的安全挑戰(zhàn)。

智能終端操作系統(tǒng)比較繁多,內(nèi)在的安全機(jī)制差異也很大,其結(jié)果是,不同廠商的智能終端面臨的安全風(fēng)險(xiǎn)截然不同;甚至同樣的操作系統(tǒng),由于不同oem(originalequipmentmanufacturer,原始設(shè)備制造商)對(duì)其安全加固程度不同,也呈現(xiàn)出不同的安全特性。

目前對(duì)智能終端的安全評(píng)估主要集中在操作系統(tǒng)的漏洞分析上,大多是從系統(tǒng)層面分析操作系統(tǒng)的安全性,但對(duì)硬件安全的分析還鮮有提及。cpu(centralprocessingunit,中央處理器)及底層硬件的安全是整個(gè)智能終端系統(tǒng)安全的基礎(chǔ),cpu等硬件上如果出現(xiàn)漏洞,單靠軟件是很難保證安全的。

目前大部分的軟件攻擊方法只適用于對(duì)操作系統(tǒng)等軟件的安全進(jìn)行評(píng)估,因此在硬件攻擊方面存在很大缺陷。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明的目的在于提供基于cache(cachememory,高速緩沖寄存器)的aes算法的安全評(píng)估方法和系統(tǒng),利用cache攻擊的方法評(píng)估cpu在操作數(shù)據(jù)的過程中cache命中或失效導(dǎo)致的硬件信息泄露,從而評(píng)判智能終端是否存在安全漏洞,彌補(bǔ)了硬件攻擊的缺陷。

第一方面,本發(fā)明實(shí)施例提供了基于cache的aes算法的安全評(píng)估方法,包括:

獲取主存地址與cache地址間的空間映射,并確定所述cache中所有緩存組的地址,所述緩存組包括被攻擊緩存組;

利用prime方式訪問所述空間映射,清除并占用所述緩存組和所述地址;

調(diào)用被攻擊程序以使被攻擊數(shù)據(jù)存入所述被攻擊緩存組中;

利用probe方式確定所述被攻擊緩存組,并將所述所有緩存組的訪問信息進(jìn)行間隔儲(chǔ)存,從而得到結(jié)果文件;

根據(jù)所述結(jié)果文件分析輪密鑰,并根據(jù)所述輪密鑰反推高級(jí)加密標(biāo)準(zhǔn)aes密鑰。

結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第一種可能的實(shí)施方式,其中,所述被攻擊程序包括aes加密運(yùn)算程序,所述地址包括被攻擊地址,所述利用probe方式確定所述被攻擊緩存組,并將所述所有緩存組的訪問信息進(jìn)行間隔儲(chǔ)存,從而得到結(jié)果文件包括:

預(yù)設(shè)訪問次數(shù),在所述aes加密運(yùn)算程序執(zhí)行完畢后,調(diào)用攻擊程序訪問所述被攻擊地址并計(jì)時(shí),所述計(jì)時(shí)采用linuxc語言的計(jì)時(shí)函數(shù);

根據(jù)cachemiss效果記錄所述所有緩存組的計(jì)時(shí)差別,得到所述訪問信息;

重復(fù)進(jìn)行所述攻擊程序的調(diào)用直至滿足所述訪問次數(shù),并將所述訪問信息以單位時(shí)間的間隔進(jìn)行存儲(chǔ),得到所述結(jié)果文件。

結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第二種可能的實(shí)施方式,其中,所述輪密鑰包括猜測(cè)密鑰值,所述根據(jù)所述結(jié)果文件分析輪密鑰,并根據(jù)所述輪密鑰反推aes密鑰包括:

利用區(qū)分器對(duì)所述結(jié)果文件進(jìn)行相關(guān)性分析,得到aes使用的緩存大小cachesize,并區(qū)分所述cache的命中操作和失效操作;

對(duì)所述結(jié)果文件進(jìn)行輪運(yùn)算分析得到所述猜測(cè)密鑰值;

利用查表法對(duì)所述猜測(cè)密鑰值進(jìn)行運(yùn)算得到查表中間值;

根據(jù)所述查表中間值和所述cachesize推斷所述猜測(cè)密鑰值是否正確;

如果正確,則得到所述aes密鑰。

結(jié)合第一方面的第二種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第三種可能的實(shí)施方式,其中,所述結(jié)果文件包括參考時(shí)間樣本,所述利用區(qū)分器對(duì)所述結(jié)果文件進(jìn)行相關(guān)性分析,得到aes使用的緩存大小cachesize,并區(qū)分所述cache的命中操作和失效操作包括:

分別計(jì)算所述被攻擊數(shù)據(jù)對(duì)應(yīng)的所述參考時(shí)間樣本和其他時(shí)間樣本的相關(guān)性系數(shù);

設(shè)定比較閾值,判斷所述相關(guān)性系數(shù)和所述比較閾值的大??;

如果所述相關(guān)性系數(shù)大于所述比較閾值,則歸為同一操作組;

如果所述相關(guān)性系數(shù)小于所述比較閾值,則歸為不同操作組;

將所述同一操作組和所述不同操作組對(duì)應(yīng)的元素個(gè)數(shù)進(jìn)行比較得到比值數(shù)據(jù);

根據(jù)所述比值數(shù)據(jù)判斷所述cachesize是否被所述aes使用;

如果所述cachesize被使用,則為所述命中操作。

結(jié)合第一方面的第二種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第四種可能的實(shí)施方式,其中,所述對(duì)所述結(jié)果文件進(jìn)行輪運(yùn)算分析得到所述猜測(cè)密鑰值包括:

選取所述結(jié)果文件中相關(guān)性系數(shù)差別最大的所述被攻擊數(shù)據(jù);

將所述差別最大的被攻擊數(shù)據(jù)反推回的序號(hào)設(shè)定為所述猜測(cè)密鑰值,其中,所述猜測(cè)密鑰值為第十輪輪運(yùn)算的密鑰值。

第二方面,本發(fā)明實(shí)施例提供了基于cache的aes算法的安全評(píng)估系統(tǒng),包括:

獲取單元,用于獲取主存地址與cache地址間的空間映射,并確定所述cache中所有緩存組的地址,所述緩存組包括被攻擊緩存組;

第一攻擊單元,用于利用prime方式訪問所述空間映射,清除并占用所述緩存組和所述地址;

調(diào)用單元,用于調(diào)用被攻擊程序以使被攻擊數(shù)據(jù)存入所述被攻擊緩存組中;

第二攻擊單元,用于利用probe方式確定所述被攻擊緩存組,并將所述所有緩存組的訪問信息進(jìn)行間隔儲(chǔ)存,從而得到結(jié)果文件;

分析單元,用于根據(jù)所述結(jié)果文件分析輪密鑰,并根據(jù)所述輪密鑰反推高級(jí)加密標(biāo)準(zhǔn)aes密鑰。

結(jié)合第二方面,本發(fā)明實(shí)施例提供了第二方面的第一種可能的實(shí)施方式,其中,所述被攻擊程序包括aes加密運(yùn)算程序,所述地址包括被攻擊地址,所述第二攻擊單元包括:

預(yù)設(shè)訪問次數(shù),在所述aes加密運(yùn)算程序執(zhí)行完畢后,調(diào)用攻擊程序訪問所述被攻擊地址并計(jì)時(shí),所述計(jì)時(shí)采用linuxc語言的計(jì)時(shí)函數(shù);

根據(jù)cachemiss效果記錄所述所有緩存組的計(jì)時(shí)差別,得到所述訪問信息;

重復(fù)進(jìn)行所述攻擊程序的調(diào)用直至滿足所述訪問次數(shù),并將所述訪問信息以單位時(shí)間的間隔進(jìn)行存儲(chǔ),得到所述結(jié)果文件。

結(jié)合第二方面,本發(fā)明實(shí)施例提供了第二方面的第二種可能的實(shí)施方式,其中,所述輪密鑰包括猜測(cè)密鑰值,所述分析單元包括:

利用區(qū)分器對(duì)所述結(jié)果文件進(jìn)行相關(guān)性分析,得到aes使用的緩存大小cachesize,并區(qū)分所述cache的命中操作和失效操作;

對(duì)所述結(jié)果文件進(jìn)行輪運(yùn)算分析得到所述猜測(cè)密鑰值;

利用查表法對(duì)所述猜測(cè)密鑰值進(jìn)行運(yùn)算得到查表中間值;

根據(jù)所述查表中間值和所述cachesize推斷所述猜測(cè)密鑰值是否正確;

如果正確,則得到所述aes密鑰。

結(jié)合第二方面的第二種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第二方面的第三種可能的實(shí)施方式,其中,所述結(jié)果文件包括參考時(shí)間樣本,所述分析單元還包括:

分別計(jì)算所述被攻擊數(shù)據(jù)對(duì)應(yīng)的所述參考時(shí)間樣本和其他時(shí)間樣本的相關(guān)性系數(shù);

設(shè)定比較閾值,判斷所述相關(guān)性系數(shù)和所述比較閾值的大??;

如果所述相關(guān)性系數(shù)大于所述比較閾值,則歸為同一操作組;

如果所述相關(guān)性系數(shù)小于所述比較閾值,則歸為不同操作組;

將所述同一操作組和所述不同操作組對(duì)應(yīng)的元素個(gè)數(shù)進(jìn)行比較得到比值數(shù)據(jù);

根據(jù)所述比值數(shù)據(jù)判斷所述cachesize是否被使用;

如果所述cachesize被使用,則為所述命中操作。

結(jié)合第二方面的第二種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第二方面的第四種可能的實(shí)施方式,其中,所述分析單元還包括:

選取所述結(jié)果文件中相關(guān)性系數(shù)差別最大的所述被攻擊數(shù)據(jù);

將所述差別最大的被攻擊數(shù)據(jù)反推回的序號(hào)設(shè)定為所述猜測(cè)密鑰值,其中,所述猜測(cè)密鑰值為第十輪輪運(yùn)算的密鑰值。

本發(fā)明提供了基于cache的aes算法的安全評(píng)估方法和系統(tǒng),包括:獲取主存地址與cache地址間的空間映射,并確定cache中所有緩存組的地址,緩存組包括被攻擊緩存組;利用prime方式訪問空間映射,清除并占用緩存組和地址;調(diào)用被攻擊程序以使被攻擊數(shù)據(jù)存入被攻擊緩存組中;利用probe方式確定被攻擊緩存組,并將所有緩存組的訪問信息進(jìn)行間隔儲(chǔ)存,從而得到結(jié)果文件;根據(jù)結(jié)果文件分析輪密鑰,并根據(jù)輪密鑰反推高級(jí)加密標(biāo)準(zhǔn)aes密鑰。本發(fā)明實(shí)現(xiàn)了利用cache攻擊的方法,評(píng)估cpu在操作數(shù)據(jù)的過程中cache命中或失效導(dǎo)致的硬件信息泄露,從而評(píng)判智能終端是否存在安全漏洞,彌補(bǔ)了硬件攻擊的缺陷。

本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。

為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。

附圖說明

為了更清楚地說明本發(fā)明具體實(shí)施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)具體實(shí)施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施方式,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明實(shí)施例提供的基于cache的aes算法的安全評(píng)估方法流程圖;

圖2為本發(fā)明實(shí)施例提供的步驟s104方法流程圖;

圖3為本發(fā)明實(shí)施例提供的步驟s105方法流程圖;

圖4為本發(fā)明實(shí)施例提供的步驟s301方法流程圖;

圖5為本發(fā)明實(shí)施例提供的基于cache的aes算法的安全評(píng)估系統(tǒng)結(jié)構(gòu)示意圖;

圖6為本發(fā)明實(shí)施例提供的cache結(jié)構(gòu)表;

圖7為本發(fā)明實(shí)施例提供的步驟s102的運(yùn)行示意圖;

圖8為本發(fā)明實(shí)施例提供的步驟s103的運(yùn)行示意圖;

圖9為本發(fā)明實(shí)施例提供的步驟s104的運(yùn)行示意圖;

圖10為本發(fā)明實(shí)施例提供的prime&probe過程示意圖;

圖11為本發(fā)明實(shí)施例提供的aes算法加密過程示意圖;

圖12為本發(fā)明實(shí)施例提供的密鑰擴(kuò)展過程示意圖;

圖13為本發(fā)明實(shí)施例提供的aes攻擊流程圖。

圖標(biāo):

10-獲取單元;20-第一攻擊單元;30-調(diào)用單元;40-第二攻擊單元;50-分析單元。

具體實(shí)施方式

為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

目前,大部分的軟件攻擊方法只適用于對(duì)操作系統(tǒng)等軟件的安全進(jìn)行評(píng)估,因此在硬件攻擊方面存在很大缺陷,基于此,本發(fā)明實(shí)施例提供的基于cache的aes算法的安全評(píng)估方法和系統(tǒng),可利用cache攻擊的方法評(píng)估cpu在操作數(shù)據(jù)的過程中cache命中或失效導(dǎo)致的硬件信息泄露,從而評(píng)判智能終端是否存在安全漏洞,彌補(bǔ)了硬件攻擊的缺陷。

實(shí)施例一:

圖1為本發(fā)明實(shí)施例提供的基于cache的aes算法的安全評(píng)估方法流程圖。

目前針對(duì)智能終端的安全評(píng)估,主要對(duì)象是操作系統(tǒng)及應(yīng)用的安全,對(duì)底層硬件的安全沒有關(guān)注。本發(fā)明通過利用cpu訪問cache時(shí)的信息泄露,來破解密碼算法的密鑰,從而評(píng)估cpu硬件的安全。需要說明的是,下文將對(duì)cache攻擊的原理進(jìn)行闡述?;诂F(xiàn)代的程序運(yùn)行模式,程序在加載到cpu運(yùn)行時(shí)具有局部性,即程序訪問的局部性。在一個(gè)較短的時(shí)間間隔內(nèi),由程序產(chǎn)生的地址往往集中在存儲(chǔ)器邏輯地址空間的很小范圍內(nèi)。指令地址的分布本來就是連續(xù)的,再加上循環(huán)程序段和子程序段要重復(fù)執(zhí)行多次。因此,對(duì)這些地址的訪問就自然地具有時(shí)間上集中分布的傾向。而對(duì)于數(shù)據(jù)的訪問的集中性雖不如指令明顯,但對(duì)數(shù)組的存儲(chǔ)和訪問以及工作單元的選擇都可以使存儲(chǔ)器地址相對(duì)集中。這種對(duì)局部范圍的存儲(chǔ)器地址頻繁訪問,而對(duì)此范圍以外的地址則訪問甚少的現(xiàn)象,就稱為程序訪問的局部性。

根據(jù)程序的局部性原理,可以在主存和cpu通用寄存器之間設(shè)置一個(gè)高速的容量相對(duì)較小的存儲(chǔ)器,把正在執(zhí)行的指令地址附近的一部分指令或數(shù)據(jù)從主存調(diào)入這個(gè)存儲(chǔ)器,供cpu在一段時(shí)間內(nèi)使用。這對(duì)提高程序的運(yùn)行速度有很大的作用。這個(gè)介于主存和cpu之間的高速小容量存儲(chǔ)器稱作高速緩沖存儲(chǔ)器(cache)。系統(tǒng)正是依據(jù)此原理,不斷地將與當(dāng)前指令集相關(guān)聯(lián)的一個(gè)不太大的后繼指令集從內(nèi)存讀到cache,然后再與cpu高速傳送,從而達(dá)到速度匹配。cpu對(duì)存儲(chǔ)器進(jìn)行數(shù)據(jù)請(qǐng)求時(shí),通常先訪問cache。由于局部性原理不能保證所請(qǐng)求的數(shù)據(jù)百分之百地在cache中,這里便存在一個(gè)命中率。即cpu在任一時(shí)刻從cache中可靠獲取數(shù)據(jù)的幾率。命中率越高,正確獲取數(shù)據(jù)的可靠性就越大。

一般來說,cache的存儲(chǔ)容量比主存的容量小得多,但不能太小,太小會(huì)使命中率太低;也沒有必要過大,過大不僅會(huì)增加成本,而且當(dāng)容量超過一定值后,命中率隨容量的增加將不會(huì)有明顯地增長(zhǎng)。只要cache的空間與主存空間在一定范圍內(nèi)保持適當(dāng)比例的映射關(guān)系,cache的命中率還是相當(dāng)高的。常見cpu的l1cache分為dcache(數(shù)據(jù)cache)和icache(指令cache),在進(jìn)行cache攻擊時(shí)主要著眼點(diǎn)在訪問的數(shù)據(jù)層面,即通過某些數(shù)據(jù)是否被訪問來進(jìn)行相關(guān)信息的確定,最終達(dá)到敏感信獲取或者密鑰破解過程。但由于l1cache的訪問速度極快,對(duì)程序設(shè)計(jì)和計(jì)時(shí)要求都非常高,攻擊難度較大,成功率將很難保證。因此本文選擇l2cache進(jìn)行cache訪問信息收集及密鑰破解。cache的大小為基本存儲(chǔ)單元為cache行(cacheline)。存儲(chǔ)系統(tǒng)把cache和主存儲(chǔ)器都劃分為相同大小的行。cache與主存儲(chǔ)器交換數(shù)據(jù)是以行為基本單位進(jìn)行的。每一個(gè)cache行都對(duì)應(yīng)于主存中的一個(gè)存儲(chǔ)塊(memoryblock)。組成結(jié)構(gòu)如圖6所示,每一行是一個(gè)set組,每一個(gè)set組包含16個(gè)line。

cache行的大小通常是2l字節(jié)。通常情況下是16字節(jié)(4個(gè)字)和32字節(jié)(8個(gè)字)。如果cache行的大小為2l字節(jié),那么對(duì)主存的訪問通常是2l字節(jié)對(duì)齊的。所以對(duì)于一個(gè)虛擬地址來說,它的bit[31∶l]位,是cache行的一個(gè)標(biāo)識(shí)。當(dāng)cpu發(fā)出的虛擬地址的bit[31∶l]和cache中的某行bit[31∶l]相同,那么cache中包含cpu要訪問的數(shù)據(jù),即稱為一次cache命中。為了加快cache訪問的速度,又將多個(gè)cache行劃分成一個(gè)cache組(cacheset)。cache組中包含的cache行的個(gè)數(shù)通常也為2的n次方的倍數(shù)。為了方便起見,取n=s。這樣,一個(gè)cache組中就包含2s個(gè)cache行。這時(shí),虛擬地址中的bit[l+s-1∶l]為cache組的標(biāo)識(shí)。虛擬地址中余下的位bit[31∶l+s]成為一個(gè)cache標(biāo)(cache-tag)。它標(biāo)識(shí)了cache行中的內(nèi)容和主存間的對(duì)應(yīng)關(guān)系。

在cache中采用地址映射將主存中的內(nèi)容映射到cache地址空間。具體的說,就是把存放在主存中的程序按照某種規(guī)則裝入到cache中,并建立主存地址到cache地址之間的對(duì)應(yīng)關(guān)系。而地址變換是指當(dāng)程序已經(jīng)裝入到cache后,在實(shí)際運(yùn)行過程中,把主存地址變換成cache地址。地址的映射和變換是密切相關(guān)的。采用什么樣的地址映射方法,就必然有與之對(duì)應(yīng)的地址變換。常用的地址映射和變換方式包括直接映射和變換方式、組相聯(lián)映射和變換方式以及全相聯(lián)和變換方式。目前在使用中最常見的是組相聯(lián)的關(guān)聯(lián)模式。在本次攻擊過程中所使用的手機(jī)的cpul2cache為16路組相聯(lián),共512kb。

根據(jù)cache工作原理,同一條訪問存儲(chǔ)器的指令在目標(biāo)數(shù)據(jù)不在cache中時(shí)就會(huì)發(fā)生cache失效,表現(xiàn)在程序的執(zhí)行結(jié)果上就是較長(zhǎng)運(yùn)行時(shí)間或是較大能量的消耗,就一般的處理器來說命中的時(shí)間大概在幾個(gè)納秒之內(nèi),而失效的時(shí)間因?yàn)橐L問主存,則需要幾十個(gè)納秒。因此如果能夠確定在進(jìn)行某種加密算法時(shí)存在訪問信息泄露的現(xiàn)象,則在滿足下列條件時(shí)即可進(jìn)行加密算法的密鑰破解,如表1所示。

表1cache攻擊條件表

參照?qǐng)D1,基于cache的aes算法的安全評(píng)估方法包括:

步驟s101,獲取主存地址與cache地址間的空間映射,并確定cache中所有緩存組的地址,緩存組包括被攻擊緩存組;

步驟s102,利用prime方式訪問空間映射,清除并占用緩存組和地址;

具體地,本發(fā)明實(shí)施例所涉及的工具主要使用primeprobe1的策略來實(shí)現(xiàn)表1中條件3的準(zhǔn)備和條件4的計(jì)時(shí)操作。在進(jìn)行primeprobe的過程中首先需要通過prime的方式來盡可能的將cache全部占用,進(jìn)行驅(qū)逐,prime的過程圖示如圖7所示,通過攻擊程序的主動(dòng)作用,周期性地訪問超過cache上限的數(shù)據(jù),確保cache中所有的數(shù)據(jù)均為攻擊程序地址空間的數(shù)據(jù)。

這里,首先攻擊程序映射了10m數(shù)據(jù),對(duì)10m數(shù)據(jù)以line為單位查詢所有虛擬地址所對(duì)應(yīng)的物理地址,通過物理地址確定對(duì)應(yīng)的set號(hào),并對(duì)同一set號(hào)的虛擬地址進(jìn)行統(tǒng)計(jì)記錄,直到達(dá)到訪問地址要求。在后續(xù)的primeprobe過程中,通過操作不同set所對(duì)應(yīng)的虛擬地址實(shí)現(xiàn)prime和probe過程。

在實(shí)際操作過程中針對(duì)具體的set進(jìn)行prime,此類設(shè)置經(jīng)實(shí)驗(yàn)表明能夠最為有效地反映出primeprobe的效果。即為訪問具體虛擬地址,并讀出此地址的數(shù)據(jù),實(shí)際上相當(dāng)于執(zhí)行了將本地值的數(shù)據(jù)緩存到cache中的功能。

步驟s103,調(diào)用被攻擊程序以使被攻擊數(shù)據(jù)存入被攻擊緩存組中;

具體地,通過進(jìn)程調(diào)度來使被攻擊程序正常運(yùn)行,因此被攻擊程序在進(jìn)行加解密等敏感操作時(shí)必然會(huì)訪問相關(guān)數(shù)據(jù),此時(shí)會(huì)將不在cache中的數(shù)據(jù)緩存到cache中,運(yùn)行過程如圖8所示.

步驟s104,利用probe方式確定被攻擊緩存組,并將所有緩存組的訪問信息進(jìn)行間隔儲(chǔ)存,從而得到結(jié)果文件;

具體地,如圖9所示,在被攻擊程序敏感操作執(zhí)行完成后,使用攻擊程序訪問所有之前緩存的地址并進(jìn)行操作計(jì)時(shí),如果此地址的數(shù)據(jù)已經(jīng)被被攻擊程序占用,那必然會(huì)產(chǎn)生cachemiss效果因此計(jì)時(shí)會(huì)產(chǎn)生較為明顯的差別,并能進(jìn)行統(tǒng)計(jì)和區(qū)分。

這里,然后執(zhí)行aes加密過程(或其他被測(cè)算法),并在aes結(jié)束后針對(duì)某一set進(jìn)行probe過程,共針對(duì)此set進(jìn)行21次訪問以能夠明顯的表現(xiàn)出probe的miss時(shí)間。

步驟s105,根據(jù)所述結(jié)果文件分析輪密鑰,并根據(jù)輪密鑰反推高級(jí)加密標(biāo)準(zhǔn)aes密鑰。

具體地,在表1中條件1滿足的情況下,就能多次進(jìn)行pbobe統(tǒng)計(jì),并根據(jù)統(tǒng)計(jì)結(jié)果查找是否存在聯(lián)系的規(guī)律。以aes為例,其密鑰將對(duì)查表的位置產(chǎn)生影響,而表數(shù)據(jù)在操作過程中會(huì)緩存在cache中,必然在probe過程中對(duì)訪問時(shí)間產(chǎn)生影響,因此通過統(tǒng)計(jì)分析過程可以在有限的采樣中分析出密鑰的相關(guān)信息。

需要說明的是,在實(shí)際實(shí)驗(yàn)中prime&probe是逐次針對(duì)每一個(gè)set進(jìn)行的,具體流程圖如圖10所示。

根據(jù)本發(fā)明的示例性實(shí)施例,被攻擊程序包括aes加密運(yùn)算程序,地址包括被攻擊地址,利用probe方式確定被攻擊緩存組,并將所有緩存組的訪問信息進(jìn)行間隔儲(chǔ)存,從而得到結(jié)果文件包括:

參照?qǐng)D2,步驟s201,預(yù)設(shè)訪問次數(shù),在aes加密運(yùn)算程序執(zhí)行完畢后,調(diào)用攻擊程序訪問被攻擊地址并計(jì)時(shí),計(jì)時(shí)采用linuxc語言的計(jì)時(shí)函數(shù);

具體地,高精度計(jì)時(shí)是cache分析中的一個(gè)需要解決的關(guān)鍵技術(shù)問題。目前,大部分智能終端的操作系統(tǒng)都是基于linux的,因此本發(fā)明中,高精度的解決方案是采用linuxc語言的計(jì)時(shí)函數(shù)”clock_gettime”,計(jì)時(shí)的精度可以達(dá)到納秒級(jí)別。理論上,cache命中和失效會(huì)有明顯的操作時(shí)間上的差異,但是在實(shí)際中,想要觀察到這種差異還需考慮實(shí)驗(yàn)中的一個(gè)限制條件,由于是多核處理器的多任務(wù)操作系統(tǒng),計(jì)時(shí)難免會(huì)受到操作系統(tǒng)調(diào)度的干擾,導(dǎo)致計(jì)時(shí)誤差增大。要解決這個(gè)問題,一方面要想辦法調(diào)高間諜程序和目標(biāo)程序的優(yōu)先級(jí),盡量使其成為原子操作;另外一方面是要通過大量重復(fù)性的實(shí)驗(yàn)來統(tǒng)計(jì)分析如何選取合適的區(qū)分器來消弱這種誤差的影響。

因?yàn)閏ache訪問速度很快,為了統(tǒng)計(jì)計(jì)算代碼執(zhí)行時(shí)間達(dá)到cpucycle級(jí)別,也需要讀取類似x86的tsc寄存器。在armv8中,有performancemonitorscontrolregister系列寄存器,其中的pmccntr_el0就類似于x86的tsc寄存器,通過此高精度的寄存器讀取能夠較為精確的反應(yīng)實(shí)際的probe運(yùn)行時(shí)間,在使用之前需要針對(duì)此寄存器進(jìn)行初始化。

步驟s202,根據(jù)cachemiss效果記錄所有緩存組的計(jì)時(shí)差別,得到訪問信息;

步驟s203,重復(fù)進(jìn)行攻擊程序的調(diào)用直至滿足訪問次數(shù),并將訪問信息以單位時(shí)間的間隔進(jìn)行存儲(chǔ),得到結(jié)果文件。

根據(jù)本發(fā)明的示例性實(shí)施例,輪密鑰包括猜測(cè)密鑰值,根據(jù)結(jié)果文件分析輪密鑰,并根據(jù)輪密鑰反推aes密鑰包括:

參照?qǐng)D3,步驟s301,利用區(qū)分器對(duì)結(jié)果文件進(jìn)行相關(guān)性分析,得到aes使用的緩存大小cachesize,并區(qū)分cache的命中操作和失效操作;

具體地,要區(qū)分兩種操作的執(zhí)行時(shí)間就需要構(gòu)造區(qū)分器,一般常用的區(qū)分器多以利用樣本分布的期望和方差來構(gòu)造,例如以不同分組的均值來區(qū)分命中或失效。本發(fā)明中使用相關(guān)性分析的方法來區(qū)分不同的操作,通過計(jì)算兩個(gè)分組的分布的相關(guān)性系數(shù),然后設(shè)定一個(gè)相關(guān)性系數(shù)的閾值,大于閾值的認(rèn)為是統(tǒng)一操作,小于閾值的認(rèn)為是不同的操作。這樣可以大大降低由于各種干擾帶來的誤差對(duì)統(tǒng)計(jì)特征的影響。

步驟s302,對(duì)結(jié)果文件進(jìn)行輪運(yùn)算分析得到猜測(cè)密鑰值;

步驟s303,利用查表法對(duì)猜測(cè)密鑰值進(jìn)行運(yùn)算得到查表中間值;

步驟s304,根據(jù)查表中間值和cachesize推斷猜測(cè)密鑰值是否正確;

如果正確,則得到aes密鑰。

具體地,目前的智能終端的操作系統(tǒng)都有著很好的多任務(wù)管理機(jī)制,有著固定規(guī)律的實(shí)驗(yàn)操作行為在重復(fù)執(zhí)行時(shí),可能會(huì)被操作系統(tǒng)識(shí)別出某種模式,從而對(duì)實(shí)驗(yàn)進(jìn)行干預(yù)來優(yōu)化執(zhí)行效率。這樣就會(huì)對(duì)計(jì)時(shí)樣本的統(tǒng)計(jì)特征帶來一定的影響,導(dǎo)致無法滿足樣本的代表性和獨(dú)立性。為了使得實(shí)際情況滿足上述假設(shè),在進(jìn)行實(shí)驗(yàn)時(shí),我們對(duì)實(shí)驗(yàn)數(shù)據(jù)和觀測(cè)變量均進(jìn)行了隨機(jī)化,使得實(shí)驗(yàn)的操作行為無法被預(yù)測(cè),操作系統(tǒng)便無法干預(yù)實(shí)驗(yàn)程序運(yùn)行,以保證統(tǒng)計(jì)的時(shí)間數(shù)據(jù)樣本滿足要求代表性和獨(dú)立性的要求。

根據(jù)本發(fā)明的示例性實(shí)施例,結(jié)果文件包括參考時(shí)間樣本,利用區(qū)分器對(duì)結(jié)果文件進(jìn)行相關(guān)性分析,得到aes使用的緩存大小cachesize,并區(qū)分cache的命中操作和失效操作包括:

參照?qǐng)D4,步驟s401,分別計(jì)算被攻擊數(shù)據(jù)對(duì)應(yīng)的參考時(shí)間樣本和其他時(shí)間樣本的相關(guān)性系數(shù);

步驟s402,設(shè)定比較閾值,判斷相關(guān)性系數(shù)和比較閾值的大??;

步驟s4031,如果相關(guān)性系數(shù)大于比較閾值,則歸為同一操作組;

步驟s4032,如果相關(guān)性系數(shù)小于比較閾值,則歸為不同操作組;

步驟s404,將同一操作組和不同操作組對(duì)應(yīng)的元素個(gè)數(shù)進(jìn)行比較得到比值數(shù)據(jù);

步驟s405,根據(jù)比值數(shù)據(jù)判斷cachesize是否被aes使用;

步驟s406,如果cachesize被使用,則為命中操作。

具體地,為對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行統(tǒng)計(jì)分析以及實(shí)驗(yàn)優(yōu)化,本發(fā)明實(shí)施例提出了以下優(yōu)化措施:

(1)使用大量重復(fù)實(shí)驗(yàn)降低誤差:

理論上,cache命中和失效會(huì)有明顯的操作時(shí)間上的差異,但是在實(shí)際中,想要觀察到這種差異還需考慮實(shí)驗(yàn)中的幾個(gè)限制條件,一是計(jì)時(shí)函數(shù)的精度問題,是否能夠捕捉到這種差異;二是,由于是多核處理器的多任務(wù)操作系統(tǒng),計(jì)時(shí)難免會(huì)受到操作系統(tǒng)調(diào)度的干擾,導(dǎo)致計(jì)時(shí)誤差增大。

使用高精度計(jì)時(shí)函數(shù)可以解決第一個(gè)問題,要解決第二個(gè)問題,一方面要想辦法調(diào)高間諜程序和目標(biāo)程序的優(yōu)先級(jí),盡量使其成為原子操作;另外一方面是要通過大量重復(fù)性的實(shí)驗(yàn)來統(tǒng)計(jì)分析如何選取合適的區(qū)分器來消弱這種誤差的影響。

為了研究第二個(gè)問題帶來的影響,我們分別對(duì)相同和隨機(jī)的數(shù)據(jù)進(jìn)行大量重復(fù)性的實(shí)驗(yàn),記錄統(tǒng)計(jì)的時(shí)間樣本,我們使用直方圖對(duì)樣本的分布進(jìn)行刻畫。直方圖(histogram)是一種統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布的情況。一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。通過直方圖我們可以知道大體的概率密度函數(shù)。在刻畫直方圖時(shí),組距的選擇直接影響著對(duì)概率密度函數(shù)刻畫的準(zhǔn)確度,組距選為計(jì)時(shí)的最小單位精度可以最大限度的提高刻畫精度。

通過直方圖的形狀我們發(fā)現(xiàn),相同數(shù)據(jù)操作時(shí)間的樣本分布接近于正態(tài)分布,而不同數(shù)據(jù)的操作時(shí)間的樣本分布沒有明顯的特征。對(duì)于兩個(gè)不同的數(shù)據(jù)a和b,操作時(shí)間的直方圖形狀都接近于正態(tài)分布,但是中心值(u)存在著明顯的差異。因此通過u的差距,理論上可以區(qū)分出cache的命中和失效。

(2)采樣隨機(jī)數(shù)據(jù)和隨機(jī)探測(cè)來去除干擾:

假設(shè)樣本滿足代表性和獨(dú)立性,代表性即每個(gè)樣本均與總體同分布;獨(dú)立性即為樣本之間獨(dú)立同分布。

目前的智能終端的操作系統(tǒng)都有著很好的多任務(wù)管理機(jī)制,有著固定規(guī)律的實(shí)驗(yàn)操作行為在重復(fù)執(zhí)行時(shí),可能會(huì)被操作系統(tǒng)識(shí)別出某種模式,從而對(duì)實(shí)驗(yàn)進(jìn)行干預(yù)來優(yōu)化執(zhí)行效率。這樣就會(huì)對(duì)計(jì)時(shí)樣本的統(tǒng)計(jì)特征帶來一定的影響,導(dǎo)致無法滿足樣本的代表性和獨(dú)立性。

為了使得實(shí)際情況滿足上述假設(shè),在進(jìn)行實(shí)驗(yàn)時(shí),我們對(duì)實(shí)驗(yàn)數(shù)據(jù)和觀測(cè)變量均進(jìn)行了隨機(jī)化,使得實(shí)驗(yàn)的操作行為無法被預(yù)測(cè),操作系統(tǒng)便無法干預(yù)實(shí)驗(yàn)程序運(yùn)行,以保證統(tǒng)計(jì)的時(shí)間數(shù)據(jù)樣本滿足要求。

根據(jù)本發(fā)明的示例性實(shí)施例,對(duì)結(jié)果文件進(jìn)行輪運(yùn)算分析得到猜測(cè)密鑰值包括:

選取結(jié)果文件中相關(guān)性系數(shù)差別最大的被攻擊數(shù)據(jù);

將差別最大的被攻擊數(shù)據(jù)反推回的序號(hào)設(shè)定為猜測(cè)密鑰值,其中,猜測(cè)密鑰值為第十輪輪運(yùn)算的密鑰值。

具體地,下文對(duì)aes密鑰的破解方法進(jìn)行詳細(xì)敘述。智能終端上的aes算法主要是軟件實(shí)現(xiàn)的,為了提高運(yùn)算的速度,采用了空間換時(shí)間的策略:即aes的輪運(yùn)算(字節(jié)替換、行移位、列變換)使用查表法實(shí)現(xiàn),因?yàn)樽詈笠惠啗]有字節(jié)替換操作,因此aes的加解密運(yùn)算過程中,一共使用了兩組表格,一組是前9輪使用的:te0,te1,te2,te3,一組是用于最后一輪的:te4_1、te4_2、te4_3、te4_4。有兩個(gè)大的表t1和t4,t1表用于標(biāo)準(zhǔn)輪運(yùn)算,t4表用于最后一輪運(yùn)算。每個(gè)表均有256個(gè)元素,每個(gè)元素為4個(gè)字節(jié),故表的大小均為256*4個(gè)字節(jié)。armv8的一個(gè)cachesize的存儲(chǔ)空間為64個(gè)字節(jié),因此每個(gè)表格都需要16個(gè)cachesize,一個(gè)cachesize可以存儲(chǔ)16個(gè)元素,因此當(dāng)8bit數(shù)據(jù)的高4bit相同時(shí),查表即會(huì)落到同一個(gè)cachesize中。

對(duì)同一個(gè)sbox進(jìn)行查表時(shí),對(duì)于同一密鑰,不同的輸入數(shù)據(jù)就會(huì)導(dǎo)致cache的命中或失效,通過查表的中間數(shù)據(jù)與cache命中或失效的聯(lián)系,推斷出密鑰值。

區(qū)分命中或失效兩種操作是攻擊成功的基礎(chǔ),因此需要構(gòu)造合適的區(qū)分器,一般常用的區(qū)分器多以利用樣本分布的期望和方差來構(gòu)造,例如以不同分組的均值來區(qū)分命中或失效。本發(fā)明中使用相關(guān)性分析的方法來區(qū)分不同的操作,通過計(jì)算兩個(gè)分組的分布的相關(guān)性系數(shù),然后設(shè)定一個(gè)相關(guān)性系數(shù)的閾值,大于閾值的認(rèn)為是同一操作,小于閾值的認(rèn)為是不同的操作。這樣可以大大降低由于各種干擾帶來的誤差對(duì)統(tǒng)計(jì)特征的影響。

以某一個(gè)cachesize為例,分別計(jì)算數(shù)據(jù)00到ff對(duì)應(yīng)的probe獲得樣本的分布,然后以00數(shù)據(jù)的分布為參考分布,計(jì)算其它數(shù)據(jù)對(duì)應(yīng)的分布與參考分布之間的相關(guān)性系數(shù)。取一個(gè)相關(guān)性閾值的經(jīng)驗(yàn)值rf,將相關(guān)性系數(shù)大于等于rf的分為一組,小于rf的分組為一組。計(jì)算兩組元素個(gè)數(shù)的比值d,當(dāng)d約等于16/240時(shí),判斷該cachesize被使用。

理想情況下,大量隨機(jī)數(shù)的prime+aes+probe的實(shí)驗(yàn)后,通過區(qū)分器處理可以發(fā)現(xiàn):使用的cachesize數(shù)量為16個(gè),并且size號(hào)是連續(xù)的。但是由于在aes的運(yùn)算過程中,cache中除了需要存儲(chǔ)te4表外,可能還需要存儲(chǔ)其它的中間變量,因此在實(shí)際評(píng)估實(shí)驗(yàn)中通過區(qū)分器識(shí)別出來被占用的cachesize可能約小于16個(gè)。

通過區(qū)分器,可以判斷出aes使用了哪些cachesize,然后通過猜測(cè)密鑰值,與數(shù)據(jù)進(jìn)行運(yùn)算得到查表的中間值,對(duì)于使用了同一個(gè)cachesize的不同數(shù)據(jù),查表的中間值的高4bite數(shù)據(jù)理論上相同,因此通過查表中間值的高位是否相同即可判斷是否是正確的密鑰猜測(cè)。

通過區(qū)別器識(shí)別出的多個(gè)被使用的cachesize,每一個(gè)均可用于判斷正確的密鑰值,多個(gè)可以相互檢驗(yàn),以增加結(jié)果的穩(wěn)定性。

這里,為更好地展示aes攻擊流程,以下對(duì)aes算法加密過程進(jìn)行介紹。如圖11所示,以128-bit密鑰的aes/rijndael算法為例。為優(yōu)化軟件執(zhí)行性能,aes加密程序會(huì)預(yù)計(jì)算并存儲(chǔ)4個(gè)大的查找表t0~t3。在完成前9輪針對(duì)t0~t3的4次查找后,還在最后的第10輪,對(duì)一個(gè)簡(jiǎn)化的表t4進(jìn)行16次查找。為了進(jìn)行整個(gè)10輪加密過程,還需要將128-bit的原始密鑰擴(kuò)展為176-byte;即11個(gè)被單獨(dú)運(yùn)用的16-byte密鑰。為成功推出密鑰擴(kuò)展過程如圖12所示。在密鑰擴(kuò)展過程中,輪密鑰是由種子密鑰擴(kuò)展而成,因此,知道了種子密鑰就知道了輪密鑰。而知道某輪(假設(shè)第i輪)的輪密鑰w[4i],w[4i+1],…,w[4i+nb-1]。由密鑰擴(kuò)展方案的數(shù)學(xué)模型,不僅可以推導(dǎo)種子密鑰,而且所有輪密鑰都可以推出。

以本發(fā)明實(shí)施例的實(shí)驗(yàn)環(huán)境下nb=4,nk=4為例說明:

可以看到在獲取到最后一輪密鑰后能夠倒推出aes算法的原始密鑰,因此結(jié)合aes的加密方式和密鑰擴(kuò)展規(guī)律,本cache攻擊系統(tǒng)采用的攻擊模式為針對(duì)最后一輪密鑰的攻擊。

實(shí)施例二:

攻擊流程可參照?qǐng)D13,整個(gè)攻擊過程分為兩個(gè)部分,第一部分需要在手機(jī)端運(yùn)行,通過上文所描述的prime和probe的方式來獲取一定數(shù)量的信息,簡(jiǎn)單可理解為信息采集過程。整個(gè)流程介紹如下:

(1)初始化階段。申請(qǐng)空間映射并確定所有set的虛擬地址,為prime和probe過程做好準(zhǔn)備。

(2)prime階段。本階段通過訪問實(shí)際映射,將l2cache中緩存的的所有數(shù)據(jù)清除并占用。確保后續(xù)的加密操作對(duì)cache的訪問過程能夠保留在cache中以備后續(xù)使用。

(3)調(diào)用加密程序,在已知明文和密文的情況下進(jìn)行aes加密運(yùn)算。

(4)probe過程。在加密完成后通過probe過程來確定影響的set,并將所有set的訪問信息以單位時(shí)間的間隔保存。在實(shí)際操作過程中,共分為16個(gè)區(qū)間進(jìn)行保存。

(5)在執(zhí)行本操作之前,可以設(shè)定針對(duì)某一set共進(jìn)行多少次訪問,當(dāng)達(dá)到總體次數(shù)后整個(gè)循環(huán)停止。

(6)將所有數(shù)據(jù)進(jìn)行整理并存儲(chǔ)為結(jié)果文件。

攻擊的第二個(gè)部分主要為分析過程,此過程可以在手機(jī)或者pc電腦上執(zhí)行。攻擊的模式是根據(jù)采集的數(shù)據(jù)分析第十輪的輪密鑰,通過此密鑰再反推出整個(gè)aes密鑰。分析過程如下:

(1)在分析時(shí)需要一個(gè)字節(jié)一個(gè)字節(jié)分析,需要按照密文反推回第10輪的輸入字節(jié)排序結(jié)果文件。

(2)然后根據(jù)所有的數(shù)據(jù)計(jì)算相關(guān)性。

(3)針對(duì)所有的數(shù)據(jù)的相關(guān)性進(jìn)行分組。

(4)比較最終的結(jié)果,選取相關(guān)性差別最大一組數(shù)據(jù),其反推回的序號(hào)值即為第10輪的密鑰值。

本發(fā)明提供了基于cache的aes算法的安全評(píng)估方法和系統(tǒng),包括:獲取主存地址與cache地址間的空間映射,并確定cache中所有緩存組的地址,緩存組包括被攻擊緩存組;利用prime方式訪問空間映射,清除并占用緩存組和地址;調(diào)用被攻擊程序以使被攻擊數(shù)據(jù)存入被攻擊緩存組中;利用probe方式確定被攻擊緩存組,并將所有緩存組的訪問信息進(jìn)行間隔儲(chǔ)存,從而得到結(jié)果文件;根據(jù)結(jié)果文件分析輪密鑰,并根據(jù)輪密鑰反推高級(jí)加密標(biāo)準(zhǔn)aes密鑰。本發(fā)明實(shí)現(xiàn)了通過軟件攻擊的方法(cache攻擊)評(píng)估智能終端上運(yùn)行的密碼算法是否存在硬件的泄露,與傳統(tǒng)的硬件安全評(píng)估方法相比,成本低,速度快,普適性強(qiáng)。因此,使用本發(fā)明可以快速檢測(cè)出智能終端的密碼算法是否存在安全漏洞,使用較小的代價(jià)阻止存在安全漏洞的終端流入市場(chǎng)。

實(shí)施例三:

圖5為本發(fā)明實(shí)施例提供的基于cache的aes算法的安全評(píng)估系統(tǒng)結(jié)構(gòu)示意圖。

參照?qǐng)D5,基于cache的aes算法的安全評(píng)估系統(tǒng),包括:

獲取單元10,用于獲取主存地址與cache地址間的空間映射,并確定cache中所有緩存組的地址,緩存組包括被攻擊緩存組;

第一攻擊單元20,用于利用prime方式訪問空間映射,清除并占用緩存組和地址;

調(diào)用單元30,用于調(diào)用被攻擊程序以使被攻擊數(shù)據(jù)存入被攻擊緩存組中;

第二攻擊單元40,用于利用probe方式確定被攻擊緩存組,并將所有緩存組的訪問信息進(jìn)行間隔儲(chǔ)存,從而得到結(jié)果文件;

分析單元50,用于根據(jù)結(jié)果文件分析輪密鑰,并根據(jù)輪密鑰反推高級(jí)加密標(biāo)準(zhǔn)aes密鑰。

根據(jù)本發(fā)明的示例性實(shí)施例,被攻擊程序包括aes加密運(yùn)算程序,地址包括被攻擊地址,第二攻擊單元包括:

預(yù)設(shè)訪問次數(shù),在aes加密運(yùn)算程序執(zhí)行完畢后,調(diào)用攻擊程序訪問被攻擊地址并計(jì)時(shí),計(jì)時(shí)采用linuxc語言的計(jì)時(shí)函數(shù);

根據(jù)cachemiss效果記錄所有緩存組的計(jì)時(shí)差別,得到訪問信息;

重復(fù)進(jìn)行攻擊程序的調(diào)用直至滿足訪問次數(shù),并將訪問信息以單位時(shí)間的間隔進(jìn)行存儲(chǔ),得到結(jié)果文件。

根據(jù)本發(fā)明的示例性實(shí)施例,輪密鑰包括猜測(cè)密鑰值,分析單元包括:

利用區(qū)分器對(duì)結(jié)果文件進(jìn)行相關(guān)性分析,得到aes使用的緩存大小cachesize,并區(qū)分cache的命中操作和失效操作;

對(duì)結(jié)果文件進(jìn)行輪運(yùn)算分析得到猜測(cè)密鑰值;

利用查表法對(duì)猜測(cè)密鑰值進(jìn)行運(yùn)算得到查表中間值;

根據(jù)查表中間值和cachesize推斷猜測(cè)密鑰值是否正確;

如果正確,則得到aes密鑰。

根據(jù)本發(fā)明的示例性實(shí)施例,結(jié)果文件包括參考時(shí)間樣本,分析單元還包括:

分別計(jì)算被攻擊數(shù)據(jù)對(duì)應(yīng)的參考時(shí)間樣本和其他時(shí)間樣本的相關(guān)性系數(shù);

設(shè)定比較閾值,判斷相關(guān)性系數(shù)和比較閾值的大小;

如果相關(guān)性系數(shù)大于比較閾值,則歸為同一操作組;

如果相關(guān)性系數(shù)小于比較閾值,則歸為不同操作組;

將同一操作組和不同操作組對(duì)應(yīng)的元素個(gè)數(shù)進(jìn)行比較得到比值數(shù)據(jù);

根據(jù)比值數(shù)據(jù)判斷cachesize是否被使用;

如果cachesize被使用,則為命中操作。

根據(jù)本發(fā)明的示例性實(shí)施例,分析單元還包括:

選取結(jié)果文件中相關(guān)性系數(shù)差別最大的被攻擊數(shù)據(jù);

將差別最大的被攻擊數(shù)據(jù)反推回的序號(hào)設(shè)定為猜測(cè)密鑰值,其中,猜測(cè)密鑰值為第十輪輪運(yùn)算的密鑰值。

本發(fā)明實(shí)施例提供的基于cache的aes算法的安全評(píng)估系統(tǒng),與上述實(shí)施例提供的基于cache的aes算法的安全評(píng)估方法具有相同的技術(shù)特征,所以也能解決相同的技術(shù)問題,達(dá)到相同的技術(shù)效果。首先,本發(fā)明實(shí)施例通過利用cpu訪問cache時(shí)的信息泄露,來破解密碼算法的密鑰,從而實(shí)現(xiàn)了評(píng)估cpu硬件的安全;其次,關(guān)于高精度的解決方案本發(fā)明實(shí)施例采用linuxc語言的計(jì)時(shí)函數(shù)”clock_gettime”,計(jì)時(shí)的精度可以達(dá)到納秒級(jí)別;并且,本發(fā)明實(shí)施例一方面調(diào)高間諜程序和目標(biāo)程序的優(yōu)先級(jí),盡量使其成為原子操作,另一方面通過大量重復(fù)性的實(shí)驗(yàn)來統(tǒng)計(jì)分析如何選取合適的區(qū)分器來消弱操作系統(tǒng)干擾的影響,結(jié)果可靠;另外,本發(fā)明實(shí)施例對(duì)實(shí)驗(yàn)數(shù)據(jù)和觀測(cè)變量均進(jìn)行了隨機(jī)化,使得實(shí)驗(yàn)的操作行為無法被預(yù)測(cè),操作系統(tǒng)便無法干預(yù)實(shí)驗(yàn)程序運(yùn)行,以保證統(tǒng)計(jì)的時(shí)間數(shù)據(jù)樣本滿足要求代表性和獨(dú)立性的要求;最后,本發(fā)明實(shí)施例通過計(jì)算樣本概率分布之間的相關(guān)性系數(shù)來區(qū)分不同的操作,并且利用多組獨(dú)立的密鑰猜測(cè)結(jié)果進(jìn)行相互校驗(yàn)以保證結(jié)果的正確性。

本發(fā)明實(shí)施例所提供的基于cache的aes算法的安全評(píng)估方法和系統(tǒng)以及系統(tǒng)的計(jì)算機(jī)程序產(chǎn)品,包括存儲(chǔ)了程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實(shí)施例中所述的方法,具體實(shí)現(xiàn)可參見方法實(shí)施例,在此不再贅述。

所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)和裝置的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。

所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

最后應(yīng)說明的是:以上所述實(shí)施例,僅為本發(fā)明的具體實(shí)施方式,用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制,本發(fā)明的保護(hù)范圍并不局限于此,盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),其依然可以對(duì)前述實(shí)施例所記載的技術(shù)方案進(jìn)行修改或可輕易想到變化,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改、變化或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例技術(shù)方案的精神和范圍,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1