夏淑華
XIA Shu-hua
(湖南司法警官職業(yè)學(xué)院,長(zhǎng)沙 410131)
1.1 DES計(jì)算方法
這個(gè)DES即也就是一種標(biāo)準(zhǔn)的加密方式,計(jì)算的方式可以看做是分組加密,其核心的方法是按64bit分組,將數(shù)據(jù)分成若干組進(jìn)行加密,使用的是8bit的奇數(shù)偶數(shù)檢驗(yàn),按照長(zhǎng)度為56bit字節(jié)為密鑰的有效長(zhǎng)度。計(jì)算過程為64bit的明文從輸入端進(jìn)入,從另一端輸出的即為64位的密文。DES加密的算法在對(duì)數(shù)據(jù)加密和解密是使用一種計(jì)算方法,安全的保證完全依靠密鑰。執(zhí)行過程中,DES對(duì)64bit的明文進(jìn)行分組,實(shí)現(xiàn)加密,通過轉(zhuǎn)換器實(shí)現(xiàn)這個(gè)過程,即明文進(jìn)行左右兩組,其長(zhǎng)度相等為32bit。在相同的16輪次計(jì)算過程中,完成加密的實(shí)現(xiàn),預(yù)算的整個(gè)過程被命名為f,運(yùn)算的目的就是讓數(shù)據(jù)和密鑰進(jìn)行結(jié)合。經(jīng)過16輪次的計(jì)算,輪次計(jì)算,左右兩邊的兩組數(shù)據(jù)就會(huì)在此組合,在完成后輸出經(jīng)由另一個(gè)轉(zhuǎn)換器,在這里的計(jì)算和前面的過程正好是相反的,也就完成了算法的進(jìn)行。在每個(gè)輪次的處理中,密鑰就會(huì)產(chǎn)生固定的位移,過程為在56位中選取48位,并通過擴(kuò)展器的作用讓右邊的數(shù)據(jù)形成一個(gè)48位的信息,并在這里完成與48位的密鑰相結(jié)合的目的,通過裝置內(nèi)的8個(gè)s盒的轉(zhuǎn)化,這樣就得到了32位新的數(shù)據(jù),這樣就完成了加密的運(yùn)算過程。同樣的操作在數(shù)的左半邊同時(shí)進(jìn)行,利用異或運(yùn)算,函數(shù)f和左半邊數(shù)據(jù)結(jié)合,形成了新的右半邊部分,原來的右半邊數(shù)據(jù)形成了新的左邊數(shù)據(jù)。這個(gè)操作在重復(fù)了16次后,就實(shí)現(xiàn)了DES的16論計(jì)算。
1.2 RSA計(jì)算方法
這個(gè)計(jì)算方法與DES不同的是,RSA在加密的過程中有兩個(gè)密鑰,其中一個(gè)為公共密鑰,相對(duì)的就是私有的密鑰。在加密的過程中,使用其中的一個(gè)加密,則另一個(gè)為解密。在RSA的算法中密鑰為40-2048字節(jié),加密的時(shí)候?qū)⒚魑姆纸獬伞靶K”,其大小是可以變化的,但是,無論這樣的設(shè)置都不能超過密鑰,RSA算法核心的思路就是將明文分解成小塊,其長(zhǎng)度和密鑰相一致。顯而易見的是密鑰長(zhǎng)則加密效果好。但是,隨之產(chǎn)生的加密和解密的消耗也就越大,因此要在安全性和應(yīng)用性之間進(jìn)行權(quán)衡,一般采用的都是64位。RSA算法的實(shí)現(xiàn),首先是對(duì)安全大素?cái)?shù)的選取,其分別為P和Q。為了達(dá)到最佳的安全效果,這兩個(gè)素?cái)?shù)的長(zhǎng)度是相等的。計(jì)算n=p×q,而n>512bit,這時(shí)為了保證安全性,因?yàn)檫@個(gè)算法的安全性是建立在因子分解大數(shù)上的;其次,計(jì)算出n的歐拉函數(shù)?(n)=(p-1)(q-1),其中?(n)的是不應(yīng)超過n,而且和n的互素?cái)?shù);第三,[0,?(n)-1]的數(shù)列當(dāng)中隨機(jī)選取出加密的密鑰e,同時(shí)讓e和?(n);第四,計(jì)算利用Euclid方法,得出密鑰解密的d,并且且de=1(mod ?(n))。其中的n與d為互質(zhì)。數(shù)e和n即公共密鑰,d為私有密鑰。算法加密和解除:如加密的信息為m,則將m視為一長(zhǎng)度整數(shù):若m大于n則將m分成等長(zhǎng)度的數(shù)據(jù)塊,即m1……mi,其長(zhǎng)度為s位,滿足2^s<=n的條件,且s盡量大。
結(jié)束前面的過程后,將對(duì)數(shù)據(jù)塊進(jìn)行加密。分組加密的過程中,mi所產(chǎn)生的密文是ci=mi^e(mod n);分塊進(jìn)行解密為,ci與之配合的是明文為:mi=ci^d(mod n)。
RSA的計(jì)算主要的計(jì)算方式遵循以下原則,即在對(duì)N位密鑰、N位資料處理時(shí),加減法所消耗的時(shí)間為O(N),而乘除法所消耗的時(shí)間為O(n^2),在計(jì)算a^b mod c需要消耗的時(shí)間就為O(N^3)。由此可以推算出,對(duì)N位數(shù)據(jù)信息進(jìn)行計(jì)算所消耗的時(shí)間為O(N^3)。一般采用的加密,資料N的長(zhǎng)度為512-1024之間,主要是考慮到安全長(zhǎng)度保證,因此計(jì)算N^3的計(jì)算量將相當(dāng)?shù)木薮?。這樣利用RSA來進(jìn)行數(shù)據(jù)的加密和解密降消耗大量的時(shí)間,如果需要加密的數(shù)據(jù)過大,就將消耗更長(zhǎng)的時(shí)間,這個(gè)時(shí)間將是DES的N多倍。
另外,所產(chǎn)生RSA密鑰所耗費(fèi)的時(shí)間也相當(dāng)巨大,以N列為密鑰的話,兩個(gè)相鄰質(zhì)數(shù)平均間隔為O(N)。2、RSA與DES的結(jié)合方式假設(shè)發(fā)送的信息為A,加密密鑰為kea,解密密鑰為kda,接收方為B,加密密鑰為keb,解密密鑰為kdb,其結(jié)合方式為:1)在數(shù)據(jù)的傳輸中,發(fā)送者先生成DES的密鑰K;2)發(fā)送者對(duì)數(shù)據(jù)的加密采用的是接收者上傳至服務(wù)器上的RSA計(jì)算的公共密鑰keb,并利用這個(gè)密鑰將DES的密鑰K進(jìn)行加密處理,3)發(fā)送者將編制好的信息利用kda和keb進(jìn)行簽名,以方便在解密的時(shí)候進(jìn)行識(shí)別;4)發(fā)送者將加密數(shù)據(jù)利用K進(jìn)行加密,并形成簽名文件,再將其和CK結(jié)合形成完整的加密數(shù)據(jù)發(fā)送給接收方。5)接收的一端受到C后,首先利用自己的解密密鑰kdb解密出C中的DES密鑰,即K,在利用K解密出明文以及簽名信息;6)接收端用發(fā)送方的公開密鑰kea和自己的解密密鑰kdb對(duì)簽名的信息進(jìn)行認(rèn)證,然后再進(jìn)行適當(dāng)?shù)奶幚?,在形成自己的?shù)字簽名信息發(fā)往對(duì)方;7)發(fā)送和接收雙方在接收和處理完成后刪除DES密鑰K。
3.1 DES和RSA實(shí)現(xiàn)過程
1)對(duì)稱加密的算法
在對(duì)稱的數(shù)據(jù)加密過程中,利用DES算法來實(shí)現(xiàn),從根本上看是一種傳統(tǒng)的分組加密模式。在其進(jìn)行加密的實(shí)現(xiàn)過程中,采用的是DES的64位加密分組的方式,密鑰的長(zhǎng)度和前面說闡述的一樣,為56位,而且在加密數(shù)據(jù)的時(shí)候進(jìn)行16輪次的計(jì)算和編制。可以看到每個(gè)計(jì)算輪次都會(huì)產(chǎn)生48位的子密鑰,其產(chǎn)生的來源是在56位的基礎(chǔ)上進(jìn)行移位計(jì)算而得來的。為了在數(shù)據(jù)傳輸中提高安全性,在數(shù)據(jù)處理時(shí),增加了DES的算法改進(jìn)技術(shù),也就是利用三個(gè)密鑰來實(shí)現(xiàn)逐層加密,在這里假定密鑰為K1、K2、K3,而P為明文,C為密文,則C=EK3[DK2[EK1[P]]]可見需要三倍的時(shí)間來處理,但是三重加密編制的168位密鑰無疑可以增強(qiáng)加密的安全度。按照三個(gè)步驟就產(chǎn)生了密鑰生成、計(jì)算加密、解讀解密為基礎(chǔ)的DES算法。在使用的過程中還考慮到了平臺(tái)多元適應(yīng)性,因此多采用C語言的作為算法設(shè)計(jì)的基本語言,把加密的三個(gè)關(guān)鍵分組打包成三個(gè)函數(shù),并可以在主流的操作系統(tǒng)上進(jìn)行驗(yàn)證。這種軟件加密的形式,速度雖然比電子硬件形式要慢,但是成本、操作、應(yīng)用范圍都具備了優(yōu)勢(shì)。
2)非對(duì)稱數(shù)據(jù)加密
對(duì)非對(duì)稱數(shù)據(jù)進(jìn)行處理的時(shí)候,采用RSA方法實(shí)現(xiàn)有其明顯的實(shí)用性。即可以是相對(duì)數(shù)據(jù)本身的加密也可以對(duì)數(shù)字簽名進(jìn)行安全維護(hù),如利用RSA的特殊功能,來實(shí)現(xiàn)對(duì)DES密鑰的加密就是一個(gè)明顯的優(yōu)勢(shì),并通過網(wǎng)絡(luò)將這些二次加密的文件進(jìn)行傳輸,就大大提高了數(shù)據(jù)的安全性傳輸。這就是兩種算法提高數(shù)據(jù)傳輸?shù)陌踩缘母驹?。和前面的?duì)稱加密相似,在設(shè)計(jì)中也應(yīng)當(dāng)考慮到廣泛應(yīng)用的問題。
3.2 數(shù)據(jù)安全傳輸?shù)膶?shí)現(xiàn)
1)數(shù)據(jù)傳輸?shù)闹饕K
在系統(tǒng)中,數(shù)據(jù)傳輸模塊是所有加密過程的中間環(huán)節(jié),是各個(gè)模塊的橋梁。首先傳輸模塊與中央控制器形成關(guān)聯(lián),在功能實(shí)現(xiàn)時(shí)創(chuàng)建一個(gè)檢視窗口,讓所有的組件和中央控制器進(jìn)行數(shù)據(jù)傳輸;反過來中央處理器也通過它將指令傳遞給其他控制組件。要達(dá)成這個(gè)功能就需要數(shù)據(jù)傳輸模塊具備接受和發(fā)送功能。
2)安全傳輸中的加密算法實(shí)現(xiàn)
DES的計(jì)算設(shè)計(jì)讓其形成了主要的三個(gè)功能參數(shù),即Key、Data、Mode。其中Key有8個(gè)字節(jié),共計(jì)64位大小,是計(jì)算中的工作性密鑰;Data有8個(gè)字節(jié),其大小也是64位,它是DES計(jì)算處理的對(duì)象;Mode解讀的是算法的共工作形式。
該算法對(duì)數(shù)據(jù)的處理為:當(dāng)Mode指令加密時(shí),系統(tǒng)利用Key將對(duì)象Data做相應(yīng)的密鑰結(jié)合,即對(duì)數(shù)據(jù)進(jìn)行加密,而其生成的數(shù)據(jù)就是系統(tǒng)的輸出結(jié)果;如Mode指令為解密,則系統(tǒng)就利用Key數(shù)據(jù)解讀,將數(shù)據(jù)還原,結(jié)果輸出。在數(shù)據(jù)傳輸?shù)陌l(fā)送和接收中,雙方應(yīng)約定好Key,并在數(shù)據(jù)傳輸?shù)陌l(fā)起方,用該密鑰對(duì)核心的秘密數(shù)據(jù)進(jìn)行處理,然后再以加密文件的形式在網(wǎng)絡(luò)中實(shí)現(xiàn)傳遞,數(shù)據(jù)達(dá)到目標(biāo)地后,接收方利用密鑰對(duì)密碼數(shù)據(jù)進(jìn)行解密,這樣就可得到明文形式的數(shù)據(jù)。這樣保證了核心數(shù)據(jù)的傳輸安全性。DES算法設(shè)計(jì)在利用DES的過程中,設(shè)計(jì)的算法主要有三個(gè)步驟,即密鑰生成、加密函數(shù)、解密函數(shù)。為了更好的實(shí)現(xiàn)平臺(tái)跨越性,統(tǒng)一選擇了C語言作為實(shí)現(xiàn)加密的語言。其語言構(gòu)成為:struct deskeytype{int keylen;//密鑰長(zhǎng)度char key[20];//密鑰};
DES在數(shù)據(jù)安全傳輸中的功能實(shí)現(xiàn),在整個(gè)數(shù)據(jù)傳輸過程中,負(fù)責(zé)發(fā)送的模塊可以將加密模塊所生成的加密數(shù)據(jù)作為輸入信息,然后按照約定好的協(xié)議進(jìn)行數(shù)據(jù)傳輸前的處理,隨后利用網(wǎng)絡(luò)協(xié)議將整個(gè)文件傳輸?shù)浇邮辗健_@時(shí)接收的模塊就把這個(gè)完整的數(shù)據(jù)存儲(chǔ)下來,并按照協(xié)議進(jìn)行分解和解讀,也就是將數(shù)據(jù)向下一級(jí)模塊進(jìn)行處理。在完成解密后將輸出數(shù)據(jù)傳遞給其他應(yīng)用程序。這個(gè)過程中,為了保證數(shù)據(jù)傳輸?shù)陌踩?,在發(fā)送和接收的模塊中利用TCP協(xié)議作為低層次的傳輸協(xié)議,并且為了生成的代碼可以跨平臺(tái)使用,應(yīng)當(dāng)使用標(biāo)準(zhǔn)C的套接自編程,在經(jīng)過測(cè)試。
如果采用的是VC6.0系統(tǒng)構(gòu)建,就需要考慮到集成性。也就是將某個(gè)處理的方式匯集到一個(gè)特定的模塊上,并使之能夠完成功能的實(shí)現(xiàn)。這樣就可以將整個(gè)加密和解密的系統(tǒng)人為的分解成簡(jiǎn)單的模塊化處理區(qū)域。這樣可以讓系統(tǒng)更加的簡(jiǎn)單化清晰化。簡(jiǎn)化的系統(tǒng)設(shè)計(jì)就是對(duì)加密和解密功能的優(yōu)化,這種優(yōu)化就是將系統(tǒng)分解成為四個(gè)模塊,控制、加密、簽字、傳輸模塊,在這些模塊中控制模塊是負(fù)責(zé)對(duì)其他模塊的控制和調(diào)節(jié),整個(gè)加密的功能實(shí)現(xiàn)依靠的是控制模塊的指揮。與此同時(shí),系統(tǒng)還會(huì)附加某些功能,如對(duì)話功能的實(shí)現(xiàn),主要是幫助接收和傳送雙方實(shí)現(xiàn)實(shí)時(shí)的對(duì)話,并保證傳輸?shù)臅r(shí)間一致。采用明文的傳輸模式,這主要是傳輸一些正規(guī)的文件,只有文件不含有亂碼就可在這種方式的幫助下進(jìn)行傳輸;傳送含有不規(guī)則符號(hào)的文件,它是專門為傳送一些特殊文件設(shè)計(jì),一般不使用。
[1]陳明舉,陳善學(xué).基于DES算法和RSA算法的數(shù)據(jù)加密方案[J].南昌工程學(xué)院學(xué)報(bào),2006,(01).
[2]吳昊.基于DES算法和RSA算法的數(shù)據(jù)加密方案[J].焦作工學(xué)院學(xué)報(bào):自然科學(xué)版,2002,(05).
[3]程一飛.RSA算法及其應(yīng)用[J].安慶師范學(xué)院學(xué)報(bào),2004,10(02).
[4]程明慧.基于DES和RSA算法的數(shù)據(jù)加密方案及實(shí)現(xiàn)[J].河南教育學(xué)院學(xué)報(bào),2009,(02).
[5]楊波.現(xiàn)代密碼學(xué)[M].北京:清華大學(xué)出版社,2003.
[6]章照止.現(xiàn)代密碼學(xué)基礎(chǔ)[M].北京:郵電大學(xué)出版社,2004:57-59.
[7]徐向文.藍(lán)牙技術(shù)中的一種基于DES加密的安全策略[J].通信技術(shù),2008,(11).
[8]李海斌,周玉潔.一種抗DPA攻擊的DES設(shè)計(jì)[J].通信技術(shù),2007,(11).