des算法的c語(yǔ)言實(shí)現(xiàn)

des算法的c語(yǔ)言實(shí)現(xiàn)

ID:21813837

大小:54.50 KB

頁(yè)數(shù):5頁(yè)

時(shí)間:2018-10-24

des算法的c語(yǔ)言實(shí)現(xiàn)_第1頁(yè)
des算法的c語(yǔ)言實(shí)現(xiàn)_第2頁(yè)
des算法的c語(yǔ)言實(shí)現(xiàn)_第3頁(yè)
des算法的c語(yǔ)言實(shí)現(xiàn)_第4頁(yè)
des算法的c語(yǔ)言實(shí)現(xiàn)_第5頁(yè)
資源描述:

《des算法的c語(yǔ)言實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)

1、DES算法的C語(yǔ)言實(shí)現(xiàn):對(duì)稱密碼算法又稱單鑰或私鑰或傳統(tǒng)密碼體制,其發(fā)方和收方使用相同的密鑰,即加密密鑰和解密密鑰是相同的。在眾多的常規(guī)密碼中影響最大的是DES密碼。該文介紹DES算法的C語(yǔ)言實(shí)現(xiàn)。  關(guān)鍵詞:DES;密鑰;初始置換;逆置換 ?。篢P311:A:1009-3044(2011)10-2295-02  TheRealizationofDESAlgorithmationTechnology,DalianOceanUniversity,Dalian116023,China)  Abstract:Symmetrickeycrypt

2、ography,alsocalledsinglekeyorprivatekeyortraditionalcryptography,ekey,intheothermetrickeycryptography.ThispaperdescribesDESalgorithmusingClanguage.  Keyutation;inversepermutation  隨著計(jì)算機(jī)X絡(luò)不斷滲透到各個(gè)領(lǐng)域,密碼學(xué)的應(yīng)用也隨之?dāng)U大。而DES是國(guó)際上商用保密通信和計(jì)算機(jī)通信的最常用的加密算法[1]。本文重點(diǎn)介紹DES算法的C語(yǔ)言實(shí)現(xiàn)?! ?DES概述  美

3、國(guó)國(guó)家標(biāo)準(zhǔn)局(NBS)于1977年公布了由IBM公司研制的一種加密算法,并批準(zhǔn)把它作為非機(jī)要部門(mén)使用的數(shù)據(jù)加密標(biāo)準(zhǔn)(DataEncryptionStandard),簡(jiǎn)稱DES[2]?! ?程序結(jié)構(gòu)框架  該C程序有3個(gè)入口參數(shù),Data、Key和Mode。其中Key為8字節(jié)共64位,是DES算法的工作密鑰;Data也為8字節(jié)64位,是要被加密或解密的數(shù)據(jù);Mode為工作方式:等于1時(shí)為加密,等于0時(shí)為解密?! 〕绦蚴紫扔擅荑€Key通過(guò)密鑰擴(kuò)展算法得到16個(gè)子密鑰,存放在k[0]—k[15]中。然后判斷Mode的值,若Mode=0,即為解

4、密,將子密鑰數(shù)組k反置,即k[0]與k[15]互換、k[1]與k[14]互換,依此類推?! 〉玫?6個(gè)子密鑰后,對(duì)Data作初始置換IP,再將置換后的Data分成兩部分,前32位為L(zhǎng),后32位為R。然后從i=0到i=14作15輪循環(huán),每次循環(huán)作如下工作:L=R;R=L⊕F(R,k[i])。共作15輪循環(huán)而非16輪,這是因?yàn)镈ES算法中作的16輪迭代,在最后一輪并不進(jìn)行左右交換,所以把第16輪迭代在循環(huán)外單獨(dú)實(shí)現(xiàn),即在循環(huán)結(jié)束時(shí)作L=L⊕F(R,k[i])?! ∽詈蠛喜、R即得到64位輸出結(jié)果,Mode=1時(shí)輸出的是密文,Mode=0時(shí)

5、輸出的是明文。程序流程如圖1所示?! ?程序的幾個(gè)關(guān)鍵部件詳解  程序有幾個(gè)關(guān)鍵部件,分別是:子密鑰的生成,初始置換IP與其逆置換IP-1,F(xiàn)函數(shù)等[3]。以下一一作詳解?! ?.1子密鑰的生成  從用戶處得到的64位密鑰Key中,每8位為一組,每組第8位是校驗(yàn)位。在加/解密過(guò)程中,校驗(yàn)位是沒(méi)用的。所以首先將Key由縮減變換PC-1縮減到56位。具體實(shí)現(xiàn)過(guò)程如下:把PC-1表存入數(shù)組pc1中,縮減時(shí)只需循環(huán)作K[i]=Key[pc1[i]]即可(56次)。數(shù)組pc1定義如下:  staticintpc1[]={  57,49,41,33

6、,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4};  把置換后的密鑰分為C[0]和D[0]兩部分,各28位。從i=0開(kāi)始,分別對(duì)C[i]和D[i]進(jìn)行循環(huán)左移一到兩位的位移操作,得到C[i+1]和D[i+1]。每輪的移位量存入數(shù)組LS中。LS定義如下:  staticintLS[]={1,1

7、,2,2,2,2,2,2,1,2,2,2,2,2,2,1};  串聯(lián)C[i+1]和D[i+1],再把串聯(lián)得到的數(shù)據(jù)經(jīng)過(guò)縮減變換PC-2縮減到48位,具體實(shí)現(xiàn)同縮減變換PC-1。得到的48位數(shù)據(jù)即為子密鑰k[i]。PC-2表存在數(shù)組pc2中,數(shù)組pc2定義如下:  staticintpc1[]={  14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,

8、42,50,36,29,32};  循環(huán)16次,便得到16個(gè)子密鑰?! ?.2初始置換IP與其逆置換IP-1  初始置換IP與其逆置換IP-1的實(shí)現(xiàn)比較簡(jiǎn)單,方法類似于生成子密鑰中的縮減變換PC-1和PC-

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。