999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

DES加密算法及C語言實(shí)現(xiàn)

2015-04-29 17:01:53于偉黎玉香
科技尚品 2015年11期

于偉 黎玉香

摘 要:在對(duì)稱密碼體制中,發(fā)收雙方使用相同密鑰,有著同樣的加密密鑰和解密密鑰。在眾多的加密算法中影響最大的是DES加密算法。本文詳細(xì)介紹了DES加密的過程及其C語言實(shí)現(xiàn)。

關(guān)鍵詞:DES;密鑰;加密;C語言

0 引言

分組密碼是目前應(yīng)用較為廣泛的一種密碼體制,而DES(Data Encryption Standard)加密算法是分組密碼的典型代表,也是第一個(gè)被公布出來的加密標(biāo)準(zhǔn)算法。它是第一個(gè)將密碼算法公開的加密標(biāo)準(zhǔn),如果只知道算法但沒有正確的密鑰就不能單純的通過算法得到明文,其安全性得益于在破解密碼時(shí)計(jì)算上和時(shí)間上的復(fù)雜性。DES分組明文的長(zhǎng)度為64位,加密階段卻沒有依照這個(gè)長(zhǎng)度來處理,而是選擇了56位密鑰的方式來,由此生成對(duì)應(yīng)的64為密文。

1 DES加密的流程步驟

對(duì)于DES加密而言,其操作步驟可以分為兩個(gè)環(huán)節(jié):首先,是加密階段;接著就是子密鑰產(chǎn)生的階段,實(shí)現(xiàn)對(duì)于上述兩個(gè)階段的控制,可以完成加密的任務(wù)。

加密步驟如下:

(1)將明文以重新排列順序 64位分組后進(jìn)行初始置換,且分為左右兩半,各32位;

(2)兩半分別經(jīng)過16輪迭代,即進(jìn)行16次相同的變換,每輪迭代中使用置換和代換技術(shù)。16輪迭代后兩半對(duì)調(diào);

(3)在得到對(duì)應(yīng)的兩半之后,需要進(jìn)行逆初始置換,由此實(shí)現(xiàn)對(duì)應(yīng)64為密文的生成,這就是第三步驟。

子密鑰的產(chǎn)生則由56位密鑰,產(chǎn)生16個(gè)48位子密鑰,分別供左半邊的16輪迭代加密使用。

1.1 初始置換

對(duì)于分組加密,初始置換是第一步,通過一個(gè)初始置換函數(shù)DES_IP_Transform()后將64位明文分成兩部分:左半部分L0和右半部分R0各32位。

1.2 新一輪數(shù)據(jù)的生成

左右兩半再經(jīng)過16輪迭代,在每輪迭代中,使用函數(shù) memcpy()將上一輪的右邊Ri-1直接變換為本輪的左邊Li,將上一輪的右邊Ri–1通過擴(kuò)展置換函數(shù)DES_E_Transform(),由32位擴(kuò)展到48位,再與48位子密鑰經(jīng)函數(shù)DES_XOR()進(jìn)行異或運(yùn)算后,通過S盒函數(shù)DES_SBOX()壓縮成32位,經(jīng)置換函數(shù)DES_P_Transform()得到32位的加密函數(shù)F,F(xiàn)與Li–1異或后作為本輪的右邊Ri。

16輪迭代后,使用函數(shù)DES_Swap()將左右兩半交換,再經(jīng)逆初始置換函數(shù)DES_IP_1_Transform()得到64位密文。

1.3 S盒

在加密函數(shù)計(jì)算過程中使用了8個(gè)S盒,48位數(shù)據(jù)經(jīng)過8個(gè)S盒后輸出32位數(shù)據(jù),每個(gè)S盒都由4行、16列組成,定義成一個(gè)三維數(shù)組 S[8][4][16]。對(duì)于每個(gè)S盒,輸入6位,輸出4位。對(duì)于上述輸入數(shù)據(jù)進(jìn)行分析,明確最高位和最低位,以兩者為基礎(chǔ)形成對(duì)應(yīng)二進(jìn)制數(shù),由此去選擇S盒4行中的行。剩下還有4位數(shù)字,可以選擇S盒16列中的行。在上述行列選擇之后會(huì)看到行列存在交叉的部分,這就是此處要輸出的數(shù)據(jù),最后將該數(shù)據(jù)轉(zhuǎn)換為4位二進(jìn)制數(shù)。這樣,48位數(shù)據(jù)經(jīng)過8個(gè)S盒后得到了32位。

2 子密鑰產(chǎn)生

首先將56位密鑰經(jīng)過置換選擇1,這里使用函數(shù)DES_PC1_Transform()將其位置重新排列。并排列后的前28位用C0表示,后28位用D0表示,如圖1。

接下來要產(chǎn)生16個(gè)48位的子密鑰也需要經(jīng)過16輪迭代。在實(shí)際迭代的過程中,原本28位的 Ci-1和Di-1因?yàn)楹瘮?shù)循環(huán)作用,使得其出現(xiàn)位移的情況,一般表現(xiàn)為向左移動(dòng)一位或者兩位,左移位數(shù)由數(shù)組int MOVE_TIMES[16] = {1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1}定義。通過移位我們可以獲取Ci和Di,接著就需要將這兩者實(shí)現(xiàn)合并,此時(shí)就可以得到對(duì)應(yīng)56位,接著以置換的方式將其原來的次序打亂,具體過程可以參見圖2,由函數(shù)DES_PC2_Transform()實(shí)現(xiàn),從56位中挑出48位作為該輪的子密鑰。

3 DES解密

DES解密過程和加密過程本質(zhì)一致,有著相同的步驟和算法,另外DES加密算法屬于對(duì)稱加密技術(shù),因此解密和加密使用相同的密鑰。不同之處在于:其一,解密時(shí)是將64位密文作為算法的輸入,其二,子密鑰在使用時(shí)是加密過程的逆序,K16是解密過程中第1輪的子密鑰,K15是第2輪的子密鑰,K1是最后一輪的子密鑰。

4 結(jié)束語

信息的加密和解密是數(shù)據(jù)傳輸中保證信息安全性和完整性的常用方法,而DES加密標(biāo)準(zhǔn)綜合使用了多種置換和代換技術(shù),具有較高的安全性,在國際上被用來作為商用保密通信和計(jì)算機(jī)通信的有效算法。該加密標(biāo)準(zhǔn)的安全性不依賴于算法本身,而取決于密鑰,是一種高效、經(jīng)濟(jì)的算法。

參考文獻(xiàn)

[1]郭亞軍,宋建華,李莉,等.信息安全原理與技術(shù)(第2版)[M].北京:清華大學(xué)出版社,2013.

[2]張潔,朱麗娟.DES加密算法分析與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2007,(3):95-97.

[3]王昭,袁春.信息安全原理與應(yīng)用[M].北京:電子工業(yè)出版社,2010

主站蜘蛛池模板: 欧美五月婷婷| 亚洲二区视频| 色综合手机在线| 欧美成人综合视频| 日本在线国产| 日本午夜影院| 粉嫩国产白浆在线观看| 青草国产在线视频| 久久久黄色片| 国产精品55夜色66夜色| 亚洲中文字幕97久久精品少妇 | 国产在线视频二区| 日韩无码精品人妻| 亚洲av无码成人专区| 制服丝袜一区| 精品久久久无码专区中文字幕| 露脸一二三区国语对白| 国产午夜不卡| 亚洲国产天堂久久综合| 欧美综合激情| 国语少妇高潮| 亚洲三级成人| 99re热精品视频中文字幕不卡| av在线人妻熟妇| 国产视频自拍一区| 综合亚洲网| 囯产av无码片毛片一级| 国产精品污视频| 久久香蕉国产线| 亚洲国产日韩在线观看| 99热这里只有精品2| 国产精品无码一二三视频| 好吊色妇女免费视频免费| 91日本在线观看亚洲精品| 97国内精品久久久久不卡| 免费国产一级 片内射老| 欧美激情综合| 五月丁香伊人啪啪手机免费观看| 在线观看91精品国产剧情免费| 日韩高清一区 | 毛片在线看网站| 黄色网站在线观看无码| 欧洲亚洲一区| 激情六月丁香婷婷四房播| 538精品在线观看| 伊人久热这里只有精品视频99| 国产欧美日韩18| 在线欧美a| 婷婷六月综合| 亚洲天堂久久| 国产精品久线在线观看| 日本三区视频| 婷婷六月在线| 一级毛片无毒不卡直接观看| 亚洲91精品视频| 日本午夜在线视频| 亚洲国产精品久久久久秋霞影院| 日韩av手机在线| 在线观看精品自拍视频| 亚洲 日韩 激情 无码 中出| 国产综合网站| 在线观看国产小视频| 中文成人在线视频| 伊人久久婷婷五月综合97色| 久热中文字幕在线| 麻豆国产精品一二三在线观看| 亚洲伦理一区二区| 亚洲日韩精品无码专区97| 在线观看免费AV网| 日韩天堂视频| 国产亚洲精品97在线观看| 四虎亚洲国产成人久久精品| 女人爽到高潮免费视频大全| 2021最新国产精品网站| 亚洲国产成人自拍| 亚洲综合色婷婷| 成年网址网站在线观看| 亚洲无码91视频| 国产中文在线亚洲精品官网| 日韩精品一区二区三区免费在线观看| 亚洲日本www| 1024你懂的国产精品|