資源描述:
《des加密解密算法的c實(shí)現(xiàn)--實(shí)驗(yàn)報告》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、分組密碼實(shí)驗(yàn)報告一、DES算法的實(shí)現(xiàn)1.DES簡介本世紀(jì)五十年代以來,密碼學(xué)研究領(lǐng)域出現(xiàn)了最具代表性的兩大成就。其中之一就是1971年美國學(xué)者塔奇曼(Tuchman)和麥耶(Meyer)根據(jù)信息論創(chuàng)始人香農(nóng)(Shannon)提出的“多重加密有效性理論”創(chuàng)立的,后于1977年由美國國家標(biāo)準(zhǔn)局頒布的數(shù)據(jù)加密標(biāo)準(zhǔn)。DES密碼實(shí)際上是Lucifer密碼的進(jìn)一步發(fā)展。它是一種采用傳統(tǒng)加密方法的區(qū)組密碼。它的算法是對稱的,既可用于加密又可用于解密。美國國家標(biāo)準(zhǔn)局1973年開始研究除國防部外的其它部門的計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)加密標(biāo)準(zhǔn),于1973年5月15日和1974年8月27日先后
2、兩次向公眾發(fā)出了征求加密算法的公告。加密算法要達(dá)到的目的通常稱為DES密碼算法要求主要為以下四點(diǎn):提供高質(zhì)量的數(shù)據(jù)保護(hù),防止數(shù)據(jù)未經(jīng)授權(quán)的泄露和未被察覺的修改;具有相當(dāng)高的復(fù)雜性,使得破譯的開銷超過可能獲得的利益,同時又要便于理解和掌握DES密碼體制的安全性應(yīng)該不依賴于算法的保密,其安全性僅以加密密鑰的保密為基礎(chǔ)實(shí)現(xiàn)經(jīng)濟(jì),運(yùn)行有效,并且適用于多種完全不同的應(yīng)用。1977年1月,美國政府頒布:采納IBM公司設(shè)計(jì)的方案作為非機(jī)密數(shù)據(jù)的正式數(shù)據(jù)加密標(biāo)準(zhǔn)(DES棗DataEncryptionStandard)。目前在這里,隨著三金工程尤其是金卡工程的啟動,DES算法在P
3、OS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收費(fèi)站等領(lǐng)域被廣泛應(yīng)用,以此來實(shí)現(xiàn)關(guān)鍵數(shù)據(jù)的保密,如信用卡持卡人的PIN的加密傳輸,IC卡與POS間的雙向認(rèn)證、金融交易數(shù)據(jù)包的MAC校驗(yàn)等,均用到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位)作為DES的輸出結(jié)果;如Mode
4、為解密,則用Key去把密碼形式的數(shù)據(jù)Data解密,還原為Data的明碼形式(64位)作為DES的輸出結(jié)果。在通信網(wǎng)絡(luò)的兩端,雙方約定一致的Key,在通信的源點(diǎn)用Key對核心數(shù)據(jù)進(jìn)行DES加密,然后以密碼形式在公共通信網(wǎng)(如電話網(wǎng))中傳輸?shù)酵ㄐ啪W(wǎng)絡(luò)的終點(diǎn),數(shù)據(jù)到達(dá)目的地后,用同樣的Key對密碼數(shù)據(jù)進(jìn)行解密,便再現(xiàn)了明碼形式的核心數(shù)據(jù)。這樣,便保證了核心數(shù)據(jù)(如PIN、MAC等)在公共通信網(wǎng)中傳輸?shù)陌踩院涂煽啃浴Mㄟ^定期在通信網(wǎng)絡(luò)的源端和目的端同時改用新的Key,便能更進(jìn)一步提高數(shù)據(jù)的保密性,這正是現(xiàn)在金融交易網(wǎng)絡(luò)的流行做法。2.DES算法詳述(1)DES加密標(biāo)準(zhǔn)
5、現(xiàn)如今,依靠Internet的分布式計(jì)算能力,用窮舉密鑰搜索攻擊方法破譯已成為可能。數(shù)據(jù)加密標(biāo)準(zhǔn)DES已經(jīng)達(dá)到它的信任終點(diǎn)。但是作為一種Feistel加密算法的例子仍然有討論的價值。DES是對二元數(shù)字分組加密的分組密碼算法,分組長度為64比特。每64位明文加密成64位密文,沒有數(shù)據(jù)壓縮和擴(kuò)展,密鑰長度為56比特,若輸入64比特,則第8,16,24,32,40,48,56,64為奇偶校驗(yàn)位,所以,實(shí)際密鑰只有56位。DES算法完全公開,其保密性完全依賴密鑰。它的缺點(diǎn)就在于密鑰太短。設(shè)明文串m=m1m2…m64;密鑰串k=k1k2…k64。在后面的介紹中可以看到k8
6、,k16,k24,k32,k40,k48,k56,k64實(shí)際上是不起作用的。DES的加密過程可表示為:DES(m)=IP-1T16·T15…T2·T1·IP(m).下面是完全16輪DES算法框圖:圖1完全16輪DES算法1初始置換IP初始置換是將輸入的64位明文分為8個數(shù)組,每一組包括8位,按1至64編號。IP的置換規(guī)則如下表:表1IP置換規(guī)則585042342618102605244362820124625446383022146645648403224168574941332517915951433527191136153453729211356355473
7、93123157即將輸入的第58位換到第1位,第50位換到第2位……,依次類推,最后一位是原來的第7位。2IP-1是IP的逆置換由于第1位經(jīng)過初始置換后,已處于第40位。逆置換就是再將第40位換回到第1位。逆置換規(guī)則如下表所示:表2IP-1置換40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725初始置換IP及其逆置換IP-1并沒有密碼學(xué)意義,因?yàn)橹脫Q前后的一一對應(yīng)關(guān)系是已知的。它
8、們的作用在于打亂原來輸入