新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP的程序加密保護(hù)體制設(shè)計(jì)

基于DSP的程序加密保護(hù)體制設(shè)計(jì)

作者: 時(shí)間:2012-10-30 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://butianyuan.cn/article/148304.htm

3.1 相關(guān)算法[3]

(1)3DES算法

數(shù)據(jù)標(biāo)準(zhǔn)DES(Data Encryption Standard)產(chǎn)生于20世紀(jì)70年代。經(jīng)過20多年的使用,目前仍是一個(gè)世界內(nèi)的標(biāo)準(zhǔn)。這說明它的安全性相當(dāng)高。它是一個(gè)分組算法,以64位分組對(duì)數(shù)據(jù)加密。密鑰K的長(zhǎng)度也是64位,可以是任意數(shù)。DES算法是對(duì)稱的,加密與解密使用相同的算法與密鑰(除了密鑰的編排順序不同)。因而可以說,DES算法的保密性完全依賴于密鑰K。

目前對(duì)DES的破譯,最有效的是窮舉功擊。之所以說DES已經(jīng)不太安全,是因?yàn)槠涿荑€短。以現(xiàn)今的運(yùn)算技術(shù)來說,計(jì)算量已經(jīng)不算很大。不過,如果增加密鑰的長(zhǎng)度,其安全性也可以相應(yīng)地增強(qiáng)。3DES正是這樣的原理。加密時(shí),使用2個(gè)不同的密鑰K1和密鑰K2對(duì)1個(gè)分組進(jìn)行3次加密。也就是說,先用密鑰K1加密,然后用密鑰K2解密,最后用密鑰K1加密;解密時(shí)則先用密鑰K1解密,然后用密鑰K2加密,最后用密鑰K1解密。

計(jì)算式如下:

C=E1(D2(E1(P))) (1)

P=D1(E1(D1(C))) (2)

其中,P為明文,C為密文。Ei()為加密函數(shù),Di()為解密函數(shù)。

(2)Geffe發(fā)生器

Geffe發(fā)生器是一種密鑰序列發(fā)生器,利用線性反饋移位寄存器LFSR(Linear Feedback Shift Register)產(chǎn)生序列密碼。LFSR的輸出就是m序列,是一個(gè)偽隨機(jī)序列。Geffe發(fā)生器使用了3個(gè)LFSR,以非線生方式組合。其中,2個(gè)LFSR作為復(fù)合器的輸入,第3個(gè)LFSR控制復(fù)合器的輸出。使用相關(guān)攻擊,Geffe發(fā)生器的破譯并不難,故而不能直接將它作為3DES算法的密鑰,因此這里對(duì)其作取摘要處理。

(3)MD5算法

MD5(Message Digest)算法是由MIT的密碼專家,RSA算法的發(fā)明人之一Ron Rivest發(fā)明的一種認(rèn)證算法標(biāo)準(zhǔn)。MD5算法完成于1992年,它可以對(duì)任意長(zhǎng)的報(bào)文輸入,得到1個(gè)128位的輸出。該算法可以保證2條不同的報(bào)文產(chǎn)生相同的摘要的可能性很小,并且由給定的摘要反向求其對(duì)應(yīng)的報(bào)文極端困難。因此將摘要作為密鑰既可以保證隨機(jī)性,安全性也能提高了不少。

3.2 密鑰的生成機(jī)制

無論從3DES算法本身,還是從該的加密原理來講,密鑰的生成機(jī)制都至關(guān)重要。因此,必須保證使用的密鑰是安全的。其安全性體現(xiàn)為兩個(gè)方面:一是密鑰本身是隨機(jī)的;一是密鑰的管理機(jī)制。

密鑰的生成過程如下:先由Geffe發(fā)生器得到一隨機(jī)序列,然后通過MD5算法取摘要,得到的128比特?cái)?shù)據(jù)就是密鑰K1和密鑰K2組合。由Geffe發(fā)生器及MD5算法原理可以看出,這樣產(chǎn)生的密鑰是隨機(jī)的。

由該的工作過程可以看出,密鑰的管理是安全的。這是由于在主內(nèi),加密結(jié)束后,隨即將密鑰銷毀,主內(nèi)不保留密鑰;使用密鑰時(shí),通過監(jiān)控從微狗內(nèi)獲取。微狗和是物理分開的,保證了密鑰存放的安全。

4 結(jié)果分析

嚴(yán)格地說,這種方法并不屬于加密,只是一種手段——利用幾個(gè)簡(jiǎn)單的,結(jié)合和單片機(jī)的特點(diǎn),構(gòu)造一種。甚至其效果究竟如何,可以從2個(gè)方面分析。

4.1 安全性分析

既然是一種方法,那么安全性是最重要的指標(biāo)。由這種體制的加密原理及工作過程,可以看出安全性可以保護(hù)。3DES算法,無論從理論上還是實(shí)踐上,都是一種相當(dāng)好的加密算法。雖然利用窮舉攻擊,該算法最終可以破譯,但需要2 112次窮舉,所花費(fèi)的代價(jià)實(shí)在太大,可以說得不償失。因此,只要保證密鑰的安全,可以認(rèn)為這種保護(hù)體制是完全的。而從密鑰的生成過程和管理機(jī)制來講,密鑰是安全的。

4.2 性能分析[4~6]

這種保護(hù)方法的速度很快,因?yàn)?DES算法要是混亂和擴(kuò)散的組合,只使用了標(biāo)準(zhǔn)的算術(shù)和邏輯運(yùn)算。Geffe發(fā)生器和MD5算法用到的也主要是邏輯運(yùn)算,用或者單片機(jī)實(shí)現(xiàn)非常方便。譬如對(duì)于TMS320VC5402來說,Geffe發(fā)生器產(chǎn)生64字的偽隨機(jī)序列需要296 544個(gè)周期,MD5處理64個(gè)字長(zhǎng)的消息需要用3400個(gè)周期,所花費(fèi)的時(shí)間分別為2965ms和0.003ms。

因此,我們只是利用了一些簡(jiǎn)單的算法,結(jié)合DSP和1片微狗,構(gòu)造出1個(gè)DSP程序保護(hù)體制,以小代價(jià)獲得了好的效果,還是很值得的。


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉