国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

DES加密算法的實(shí)現(xiàn)

2019-07-10 12:24曾清揚(yáng)
關(guān)鍵詞:變型明文加密算法

◆曾清揚(yáng)

DES加密算法的實(shí)現(xiàn)

◆曾清揚(yáng)

(華北電力大學(xué) 北京 102206)

本文首先分析了DES加密算法出現(xiàn)的背景,對(duì)DES算法進(jìn)行了簡(jiǎn)要地介紹,淺析了DES加密算法的原理,然后用DES加密算法對(duì)消息進(jìn)行加解密。

DES加密算法;C++;加解密

0 引言

隨著信息社會(huì)的發(fā)展,人們對(duì)信息安全越來(lái)越重視,越來(lái)越多的人開(kāi)始關(guān)心在網(wǎng)絡(luò)上傳輸數(shù)據(jù)的安全性。而DES算法作為一個(gè)典型的加密算法,廣泛地應(yīng)用于各種數(shù)據(jù)加密。DES算法是從IBM 1970年初開(kāi)發(fā)出的一個(gè)叫Lucifer的算法發(fā)展起來(lái)的,Lucifer是一個(gè)包含類(lèi)似DES構(gòu)造模塊的代替-置換網(wǎng)絡(luò)。在DES中,函數(shù)的輸出與前一輪輸出進(jìn)行異或后,作為下一輪的輸出。DES算法是一個(gè)分組加密算法,以64位為一組對(duì)數(shù)據(jù)進(jìn)行加密,輸入64位明文,用DES加密后輸出64位密文。

1 DES算法簡(jiǎn)介

1.1 DES整體描述

1.2 DES輪函數(shù)

在每一輪中,密鑰通過(guò)移位和置換選擇產(chǎn)生新一輪的子密鑰。通過(guò)E表擴(kuò)展置換數(shù)據(jù),右半部分32比特?cái)U(kuò)展成48比特,與每一輪生成的48比特的子密鑰異或,通過(guò)8個(gè)S盒進(jìn)行代換、選擇運(yùn)算生成新的32比特?cái)?shù)據(jù),新的32位比特再通過(guò)P盒置換一次。通過(guò)P盒輸出與數(shù)據(jù)的左半部分32比特進(jìn)行異或運(yùn)算,成為新的右半部分32位的數(shù)據(jù)。原來(lái)的右半部分成為新的左半部分32位的數(shù)據(jù)。每輪變換可由以下公式表示:

圖2可以表示DES加密算法的輪結(jié)構(gòu)。

2 DES算法的C++實(shí)現(xiàn)

2.1 用DES算法加密數(shù)據(jù)

關(guān)鍵函數(shù)及用途如下:

(1)IP(const int input[64],int output[64],int table[64])

初始IP置換,64比特的輸入到64比特的輸出,左右分別為32比特。

(2)Charchangetobit(const char input[],int output[],int *bits);把字符串類(lèi)型轉(zhuǎn)換為整型的二進(jìn)制數(shù)進(jìn)行存儲(chǔ),類(lèi)比比特。

(3)E(const int input[32],int output[48],int table[48]) E表擴(kuò)展數(shù)據(jù),將32比特?cái)U(kuò)展成為48比特。

(4)Xor(int *a,int *b,int len)進(jìn)行異或操作。

(5)S(const int input[48],int output[32],int table[8][4][16]) S盒壓縮將48比特的數(shù)據(jù)壓縮成32位。

(6)P(const int input[32],int output[32],int table[32]) P盒進(jìn)行置換。

圖1 DES加密算法框圖

圖2 DES加密算法的輪結(jié)構(gòu)

(7)IP_In(const int input[64],int output[64],int table[64])最后一步逆置換。

(8)PC_1(const int input[64],int output[56],int table[56])密鑰的置換選擇1。

(9)PC_2(const int input[56],int output[48],int table[48])密鑰的置換選擇2。

(10)RotateL(const int input[28],int output[28], int leftCount)密鑰循環(huán)左移。

(11)subKey(const int input[64],int Subkey[16][48])每一輪子密鑰的生成。

輸入明文以及密鑰,生成密文,效果如圖3所示。

圖3 加密實(shí)現(xiàn)效果

2.2 對(duì)用DES算法加密的數(shù)據(jù)進(jìn)行解密

輸入密文以及密鑰,生成明文。效果如圖4所示。

3 結(jié)束語(yǔ)

DES加密算法較為復(fù)雜,多次運(yùn)用了代換和置換的方式,實(shí)現(xiàn)起來(lái)有一定的難度。但是由于其S盒并未公開(kāi)和其密鑰可以通過(guò)窮舉攻擊的方式被破解,其安全性也遭到了一定的質(zhì)疑。在DES的基礎(chǔ)上也進(jìn)一步發(fā)展起來(lái)了各種DES的變型,對(duì)于DES算法我們能進(jìn)一步研究其變型以及變型的安全性。

圖4 解密實(shí)現(xiàn)效果

[1][美]Bruce Schneier著,吳世忠,祝世雄,張文政等譯.應(yīng)用密碼學(xué)(第二版)[M].北京:機(jī)械工業(yè)出版社,2014,01.

[2]楊波.現(xiàn)代密碼學(xué)(第四版)[M]..北京:清華大學(xué)出版社,2017,01.

[3]余啟航,李斌勇,楊雄凱,姚瑤.DES加密算法的過(guò)程分析研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2018(02):43-44.

[4]漆世錢(qián).基于VC++的DES加密算法實(shí)現(xiàn)[J].自動(dòng)化技術(shù)與應(yīng)用,2014,33(12):25-27.

猜你喜歡
變型明文加密算法
變型數(shù)獨(dú)7月挑戰(zhàn)賽
變型數(shù)獨(dú)3月挑戰(zhàn)賽
加密文檔排序中保序加密算法的最優(yōu)化選取
變型數(shù)獨(dú)9月挑戰(zhàn)賽
基于整數(shù)矩陣乘法的圖像加密算法
簡(jiǎn)約≠簡(jiǎn)單
奇怪的處罰
教育云平臺(tái)的敏感信息保護(hù)技術(shù)研究
奇怪的處罰
奇怪的處罰