本發(fā)明屬于網(wǎng)絡(luò)安全相關(guān),尤其涉及一種加密算法循環(huán)體識(shí)別方法、系統(tǒng)、設(shè)備及介質(zhì)。
背景技術(shù):
1、本部分的陳述僅僅是提供了與本發(fā)明相關(guān)的背景技術(shù)信息,不必然構(gòu)成在先技術(shù)。
2、加密算法循環(huán)體的分析技術(shù)是一項(xiàng)重要的研究領(lǐng)域,通常用于對(duì)加密算法的安全性評(píng)估。伴隨著勒索病毒的興起,其通過(guò)加密算法對(duì)文件的上鎖來(lái)勒索錢(qián)財(cái),因此對(duì)程序中是否包含加密算法分析是一種有效識(shí)別勒索病毒的方法。
3、現(xiàn)如今在對(duì)加密算法循環(huán)體的分析技術(shù)中,主要包含差分分析、線性分析、高階差分密碼分析以及測(cè)信道分析的方式。以上的分析技術(shù),有的是通過(guò)研究明文對(duì)的差分即兩個(gè)明文的異或值如何在加密算法的多個(gè)循環(huán)中傳播,從而推測(cè)出密鑰的部分或全部,如差分分析?;蚴侨鐪y(cè)信道分析通過(guò)觀察加密算法執(zhí)行中泄露的非直接信息進(jìn)而推測(cè)算法的內(nèi)部狀態(tài)及密鑰。現(xiàn)有的分析技術(shù)致力于在復(fù)雜的加密結(jié)構(gòu)中找到密鑰信息的突破口,并不會(huì)去細(xì)致地觀察加密算法內(nèi)部數(shù)據(jù)是如何流向變化的,也不會(huì)分析算法中存在的混淆行為。
4、因此,如何對(duì)加密算法進(jìn)行分析,以達(dá)到識(shí)別加密算法及其混淆是目前需要解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、為克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種加密算法循環(huán)體識(shí)別方法、系統(tǒng)、設(shè)備及介質(zhì),能夠確認(rèn)程序中存在的加密算法及其算法中存在的混淆性。
2、為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
3、第一方面,本發(fā)明提供一種加密算法循環(huán)體識(shí)別方法,包括:
4、對(duì)程序執(zhí)行后的匯編指令流中疑似循環(huán)體的片段進(jìn)行動(dòng)態(tài)符號(hào)執(zhí)行,結(jié)合密碼學(xué)知識(shí),構(gòu)建不同的組件對(duì)疑似循環(huán)體的匯編指令流進(jìn)行分析,得到相應(yīng)操作行為及輸入輸出位置;
5、根據(jù)所得到的操作行為及輸入輸出位置對(duì)依次構(gòu)建輸入通過(guò)進(jìn)行動(dòng)態(tài)執(zhí)行,將動(dòng)態(tài)執(zhí)行的結(jié)果與密碼算法分析庫(kù)分別進(jìn)行對(duì)比,識(shí)別得循環(huán)體對(duì)應(yīng)的加密算法及混淆情況;其中,基于不同密碼算法分別采用輸入輸出比特分析方式,得到用于構(gòu)建所述密碼算法分析庫(kù)的輸出結(jié)果。
6、第二方面,本發(fā)明提供一種加密算法循環(huán)體識(shí)別系統(tǒng),包括:
7、分析模塊,其被配置為:對(duì)程序執(zhí)行后的匯編指令流中疑似循環(huán)體的片段進(jìn)行動(dòng)態(tài)符號(hào)執(zhí)行,結(jié)合密碼學(xué)知識(shí),構(gòu)建不同的組件對(duì)疑似循環(huán)體的匯編指令流進(jìn)行分析,得到相應(yīng)操作行為及輸入輸出位置;
8、分析確認(rèn)模塊,其被配置為:根據(jù)所得到的操作行為及輸入輸出位置對(duì)循環(huán)構(gòu)建的輸入進(jìn)行動(dòng)態(tài)執(zhí)行,將每次動(dòng)態(tài)執(zhí)行的結(jié)果與密碼算法分析庫(kù)進(jìn)行對(duì)比,識(shí)別得循環(huán)體對(duì)應(yīng)的加密算法及混淆情況;其中,基于不同密碼算法分別采用輸入輸出比特分析方式,得到用于構(gòu)建所述密碼算法分析庫(kù)的輸出結(jié)果。
9、第三方面,本發(fā)明提供一種電子設(shè)備,包括存儲(chǔ)器和處理器以及存儲(chǔ)在存儲(chǔ)器上并在處理器上運(yùn)行的計(jì)算機(jī)指令,所述計(jì)算機(jī)指令被處理器運(yùn)行時(shí),完成第一方面所述的方法。
10、第四方面,本發(fā)明提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于存儲(chǔ)計(jì)算機(jī)指令,所述計(jì)算機(jī)指令被處理器執(zhí)行時(shí),完成第一方面所述的方法。
11、以上一個(gè)或多個(gè)技術(shù)方案存在以下有益效果:
12、在本發(fā)明中,對(duì)程序執(zhí)行后的匯編指令流中疑似循環(huán)體的片段進(jìn)行動(dòng)態(tài)符號(hào)執(zhí)行確認(rèn)循環(huán)體,結(jié)合密碼學(xué)知識(shí)進(jìn)行必要數(shù)據(jù)的識(shí)別,通過(guò)構(gòu)建的密碼算法分析庫(kù),對(duì)循環(huán)體進(jìn)行更加細(xì)粒度的分析,從而確認(rèn)循環(huán)體結(jié)構(gòu)及數(shù)據(jù)混淆、控制混淆,本發(fā)明方案能夠確認(rèn)程序中存在的加密算法及其算法中存在的混淆性。
13、本發(fā)明附加方面的優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
1.一種加密算法循環(huán)體識(shí)別方法,其特征在于,包括:
2.?如權(quán)利要求1所述的一種加密算法循環(huán)體識(shí)別方法,其特征在于,通過(guò)intel?pin工具對(duì)匯編指令流進(jìn)行動(dòng)態(tài)插樁,生成可執(zhí)行文件的匯編語(yǔ)言trace流,通過(guò)對(duì)不同的操作指令、寄存器以及數(shù)據(jù)大小,構(gòu)建不同的匯編轉(zhuǎn)譯程序,利用構(gòu)建的匯編轉(zhuǎn)譯程序?qū)R編語(yǔ)言trace流進(jìn)行分析。
3.如權(quán)利要求1所述的一種加密算法循環(huán)體識(shí)別方法,其特征在于,構(gòu)建不同的組件對(duì)疑似循環(huán)體的匯編指令流中明文、密鑰、線性操作、非線性操作及密文位置進(jìn)行識(shí)別。
4.如權(quán)利要求3所述的一種加密算法循環(huán)體識(shí)別方法,其特征在于,構(gòu)建不同的組件對(duì)疑似循環(huán)體的匯編指令流中明文、密鑰、線性操作、非線性操作及密文位置進(jìn)行識(shí)別,具體為:
5.如權(quán)利要求1所述的一種加密算法循環(huán)體識(shí)別方法,其特征在于,根據(jù)所得到的操作行為及輸入輸出位置通過(guò)循環(huán)方式構(gòu)建不同的輸入,將所構(gòu)建的不同輸入依次動(dòng)態(tài)執(zhí)行后與密碼算法分析庫(kù)進(jìn)行對(duì)比,識(shí)別得循環(huán)體的混淆情況,具體為:
6.如權(quán)利要求5所述的一種加密算法循環(huán)體識(shí)別方法,其特征在于,除明文輸入的構(gòu)建外,其他輸入的構(gòu)建分別基于上一次動(dòng)態(tài)執(zhí)行的結(jié)果所構(gòu)建的。
7.一種加密算法循環(huán)體識(shí)別系統(tǒng),其特征在于,包括:
8.如權(quán)利要求7所述的一種加密算法循環(huán)體識(shí)別系統(tǒng),其特征在于,在所述分析確認(rèn)模塊,具體包括:
9.一種電子設(shè)備,其特征在于,包括存儲(chǔ)器和處理器以及存儲(chǔ)在存儲(chǔ)器上并在處理器上運(yùn)行的計(jì)算機(jī)指令,所述計(jì)算機(jī)指令被處理器運(yùn)行時(shí),完成權(quán)利要求1-6任一項(xiàng)所述的方法。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,用于存儲(chǔ)計(jì)算機(jī)指令,所述計(jì)算機(jī)指令被處理器執(zhí)行時(shí),完成權(quán)利要求1-6任一項(xiàng)所述的方法。