資源描述:
《des加密算法地實現(xiàn)及應(yīng)用》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、實用標(biāo)準(zhǔn)文檔DES加密算法的實現(xiàn)及應(yīng)用學(xué)生姓名:梁帥指導(dǎo)老師:熊兵摘要隨著信息與通信技術(shù)的迅猛發(fā)展和廣泛應(yīng)用,人們通過互聯(lián)網(wǎng)進(jìn)行信息交流,難免涉及到密碼保護(hù)問題,這就需要使用DES加密技術(shù)來對數(shù)據(jù)進(jìn)行加密保護(hù)。本課程設(shè)計介紹了DES加密的基本原理以及簡單的實現(xiàn)方法。本課程設(shè)計基于C語言,采用DES算法技術(shù),設(shè)計了DES加密程序,實現(xiàn)了DES加密解密功能。經(jīng)測試,程序能正常運行,實現(xiàn)了設(shè)計目標(biāo)。關(guān)鍵詞DES加密,C語言,信息交流文案大全實用標(biāo)準(zhǔn)文檔1引言1.1本文主要內(nèi)容DES是一個分組密碼算法,使用64位密鑰(除去8位奇偶校驗,實際密鑰長度為56位
2、)對64比特的數(shù)據(jù)分組(二進(jìn)制數(shù)據(jù))加密,產(chǎn)生64位密文數(shù)據(jù)。DES是一個對稱密碼體制,加密和解密使用同意密鑰,解密和加密使用同一算法(這樣,在硬件與軟件設(shè)計時有利于加密單元的重用)。DES的所有的保密性均依賴于密鑰。DES算法的入口參數(shù)有三個:Key、Data、Mode。其中Key為8個字節(jié)共64位,是DES算法的工作密鑰;Data也為8個字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式,有兩種:加密或解密。??DES算法是這樣工作的:如Mode為加密,則用Key?去把數(shù)據(jù)Data進(jìn)行加密,?生成Data的密碼形式(64位)作為D
3、ES的輸出結(jié)果;如Mode為解密,則用Key去把密碼形式的數(shù)據(jù)Data解密,還原為Data的明碼形式(64位)作為DES的輸出結(jié)果。在通信網(wǎng)絡(luò)的兩端,雙方約定一致的Key,在通信的源點用Key對核心數(shù)據(jù)進(jìn)行DES加密,然后以密碼形式在公共通信網(wǎng)(如電話網(wǎng))中傳輸?shù)酵ㄐ啪W(wǎng)絡(luò)的終點,數(shù)據(jù)到達(dá)目的地后,用同樣的Key對密碼數(shù)據(jù)進(jìn)行解密,便再現(xiàn)了明碼形式的核心數(shù)據(jù)。這樣,便保證了核心數(shù)據(jù)(如PIN、MAC等)在公共通信網(wǎng)中傳輸?shù)陌踩院涂煽啃訢ES的加密過程:?文案大全實用標(biāo)準(zhǔn)文檔第一階段:初始置換IP。在第一輪迭代之前,需要加密的64位明文首先通過初始置
4、換IP?的作用,對輸入分組實施置換。最后,按照置換順序,DES將64位的置換結(jié)果分為左右兩部分,第1位到第32位記為L0,第33位到第64位記為R0。?第二階段:16次迭代變換。DES采用了典型的Feistel結(jié)構(gòu),是一個乘積結(jié)構(gòu)的迭代密碼算法。其算法的核心是算法所規(guī)定的16次迭代變換。DES算法的16才迭代變換具有相同的結(jié)構(gòu),每一次迭代變換都以前一次迭代變換的結(jié)果和用戶密鑰擴展得到的子密鑰Ki作為輸入;每一次迭代變換只變換了一半數(shù)據(jù),它們將輸入數(shù)據(jù)的右半部分經(jīng)過函數(shù)f后將其輸出,與輸入數(shù)據(jù)的左半部分進(jìn)行異或運算,并將得到的結(jié)果作為新的有半部分,原
5、來的有半部分變成了新的左半部分。用下面的規(guī)則來表示這一過程(假設(shè)第i次迭代所得到的結(jié)果為LiRi):?Li?=?Ri-1;?Ri?=?Li-1⊕f(Ri-1,Ki);在最后一輪左與右半部分并未變換,而是直接將R16?L16并在一起作為未置換的輸入。?第三階段:逆(初始)置換。?他是初始置換IP的逆置換,記為IP-1。在對16次迭代的結(jié)果(R16?L16)再使用逆置換IP-1后得到的結(jié)果即可作為DES加密的密文Y輸出,即Y?=?IP-1?(R16?L16)。?DES解密過程:?DES的解密算法與其加密算法使用的算法過程相同。兩者的不同之處在于解密時子
6、密鑰Ki的使用順序與加密時相反,如果子密鑰為K1K2…K16,那么解密時子密鑰的使用順序為K16K15…K1,即使用DES解密算法進(jìn)行解密時,將以64位密文作為輸入,第1次迭代運算使用子密鑰K16,第2次迭代運算使用子密鑰K15,……,第16?次迭代使用子密鑰K1,其它的運算與加密算法相同。這樣,最后輸出的是64位明文。對數(shù)據(jù)進(jìn)行加密傳輸能有效地保證數(shù)據(jù)的機密性,DES是一個保證數(shù)據(jù)機密性的經(jīng)典算法,本次課程設(shè)計將基于C語言簡單實現(xiàn)DES加密解密算法本文第二節(jié)介紹了DES算法的實現(xiàn)原理,第三節(jié)詳細(xì)描述了DES加密算法的設(shè)計步驟,第四節(jié)為結(jié)束語。文案
7、大全實用標(biāo)準(zhǔn)文檔1.2設(shè)計平臺筆記本,windows764bit操作系統(tǒng),MicrosoftVisualC++6.0,C語言。2設(shè)計原理2.1對稱密碼算法簡介?對稱加密(也叫私鑰加密)指加密和解密使用相同密鑰的加密算法。有時又叫傳統(tǒng)密碼算法,就是加密密鑰能夠從解密密鑰中推算出來,同時解密密鑰也可以從加密密鑰中推算出來。而在大多數(shù)的對稱算法中,加密密鑰和解密密鑰是相同的,所以也稱這種加密算法為秘密密鑰算法或單密鑰算法。它要求發(fā)送方和接收方在安全通信之前,商定一個密鑰。對稱算法的安全性依賴于密鑰,泄漏密鑰就意味著任何人都可以對他們發(fā)送或接收的消息解密,
8、所以密鑰的保密性對通信性至關(guān)重要.對稱加密算法的特點是算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使