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

數(shù)據(jù)加密中的DES加密算法詳解

2009-12-31 00:00:00李新艷
商場現(xiàn)代化 2009年26期

[摘要] 本文詳細介紹了DES數(shù)據(jù)加密算法的原理,并給出了一個例子演示了如何使用c#中的加密包進行DES算法加密,最后對DES進行了評價。

[關(guān)鍵詞] 加密 對稱 非對稱 DES 密鑰 明文 密文

從最初的保密通信發(fā)展到目前的網(wǎng)絡(luò)信息加密,信息加密技術(shù)一直伴隨著信息技術(shù)的發(fā)展而發(fā)展。作為計算機信息保護的最實用和最可靠的方法,信息加密技術(shù)被廣泛應(yīng)用到信息安全的各個領(lǐng)域。信息加密技術(shù)是一門涉及數(shù)學(xué)、密碼學(xué)和計算機的交叉學(xué)科。現(xiàn)代密碼學(xué)的發(fā)展,使信息加密技術(shù)已經(jīng)不再依賴于對加密算法本身的保密,而是通過在統(tǒng)計學(xué)意義上提高破解的成本來提供高加密算法的安全性。

密碼學(xué)是一門古老而又年輕的科學(xué),它用于保護軍事和外交通信,可追溯到幾千年前。1976年Diffie和Hellman的“密碼學(xué)的新方向”一文引發(fā)的密碼學(xué)的一場革命,開創(chuàng)了公鑰密碼學(xué)的新紀元。

常用加密算法主要用來對敏感數(shù)據(jù)、摘要、簽名等信息進行加密。按照密鑰方式劃分,可分為對稱加密算法和非對稱加密算法。

一、對稱加密算法

對稱加密算法有時又叫做傳統(tǒng)密碼算法,加密密鑰可以從解密密鑰中推導(dǎo)出來,解密密鑰也可以從加密密鑰中推導(dǎo)出來。在大多數(shù)的對稱算法中,加密密鑰和解密密鑰是相同的,因此也成為秘密密鑰算法或者單密鑰算法。它要求發(fā)送發(fā)和接收方在安全通信之前先商定一個密鑰。對稱算法的安全性依賴于密鑰,所以密鑰的保密性對通信至關(guān)重要。對稱加密算法主要有分組加密和流加密兩類。分組加密是指將明文分成固定商都的組,用同一密鑰分別對每一組加密,輸出固定長度的密文,典型代表:DES、3DES、IDEA。

二、非對稱加密算法

非對稱加密算法有時又叫做公開密鑰算法。其中用到兩個密鑰。一個是公共的,一個事私有的。一個密鑰用于加密,另一個密鑰用于解密。兩個密鑰不能夠互相推導(dǎo)。常用的非對稱加密算法有RSA公鑰算法、Diffie-Hellman算法和ECC橢圓曲線密碼。

我們詳細分析一下DES加密算法的處理過程。

DES加密算法是分組加密算法,明文以64位為單位分成塊。64位數(shù)據(jù)在64位密鑰的控制下,經(jīng)過初始變換后,進行16輪加密迭代:64位數(shù)據(jù)被分成左右兩半部分,每部分32位,密鑰與右半部分相結(jié)合,然后再與左半部分相結(jié)合,結(jié)果作為新的右半部分;結(jié)合前的右半部分作為新的左半部分。這一系列步驟組成一輪。這種輪換要重復(fù)16次。最后一輪之后,再進行初始置換的逆置換,就得到了64位的密文。

DES的加密過程可分為加密處理,加密變換和子密鑰生成幾個部分組成。

1.加密處理過程

(1)初始變換。加密處理首先要對64位的明文按表1所示的初始換位表IP進行變換。表中的數(shù)值表示輸入位被置換后的新位置。例如輸入的第58位,在輸出的時候被置換到第1位;輸入的是第7位,在輸出時被置換到第64位。

(2)加密處理。上述換位處理的輸出,中間要經(jīng)過16輪加密變換。初始換位的64位的輸出作為下一次的輸入,將64位分為左、右兩個32位,分別記為L0和R0,從L0、R0到L16、R16,共進行16輪加密變換。其中,經(jīng)過n輪處理后的點左右32位分別為Ln和Rn,則可做如下定義:

Ln=Rn-1

Rn=Ln-1

其中,kn是向第n輪輸入的48位的子密鑰,Ln-1和Rn-1分別是第n-1輪的輸出,f是Mangler函數(shù)。

(3)最后換位。進行16輪的加密變換之后,將L16和R16合成64位的數(shù)據(jù),再按照表2所示的

最后換位表進行IP-1的換位,得到64位的密文,這就是DES算法加密的結(jié)果。

2.加密變換過程

通過重復(fù)某些位將32位的右半部分按照擴展表3擴展換位表擴展為48位,而56位的密鑰先移位然后通過選擇其中的某些位減少至48位,48位的右半部分通過異或操作和48位的密鑰結(jié)合,并分成6位的8個分組,通過8個S-盒將這48位替代成新的32位數(shù)據(jù),再將其置換一次。這些S-盒輸入6位,輸出4位。S盒如表5所示。

一個S盒中具有4種替換表(行號用0、1、2、3表示),通過輸入的6位的開頭和末尾兩位選定行,然后按選定的替換表將輸入的6位的中間4位進行替代,例如:當向S1輸入011011時,開頭和結(jié)尾的組合是01,所以選中編號為1的替代表,根據(jù)中間4位1101,選定第13列,查找表中第1行第13列所示的值為5,即輸出0101,這4位就是經(jīng)過替代后的值。按此進行,輸出32位,再按照表4 單純換位表P進行變換,這樣就完成了f(R,K)的變換,如圖2所示。

3.子密鑰生成過程

鑰通常表示為64位的自然數(shù),首先通過壓縮換位PC-1去掉每個字節(jié)的第8位,用作奇偶校驗,因此,密鑰去掉第8、16、24……64位減至56位,所以實際密鑰長度為56位,而每輪要生成48位的子密鑰。

輸入的64位密鑰,首先通過壓縮換位得到56位的密鑰,每層分成兩部分,上部分28位為C0,下部分為D0。C0和D0依次進行循環(huán)左移操作生成了C1和D1,將C1和D1合成56位,再通過壓縮換位PC-2輸出48位的子密鑰K1,再將C1和D1進行循環(huán)左移和PC-2壓縮換位,得到子密鑰K2......以此類推,得到16個子密鑰。密鑰壓縮換位表如表6所示。在產(chǎn)生子密鑰的過程中,L1、L2、L9、L16是循環(huán)左移1位,其余都是左移2位,左移次數(shù)如表7所示。

4.解密處理過程

從密文到明文的解密過程可采用與加密完全相同的算法。不過解密要用加密的逆變換,就是把上面的最后換位表和初始換位表完全倒過來變換。這里不再贅述。

下面這個例子中演示了如何使用c#中的加密包進行DES算法加密,大家可以借助這個例子一窺DES加密的用法。

des_demo.cs代碼如下:

using System;

using System.Security.Cryptography;

using System.IO;

using System.Text;

public class EncryptStringDES {

public static void Main(String[] args) {

if (args.Length < 1) {

Console.WriteLine(\"Usage: des_demo

encrypt>\", args[0]);

return;

}

// 使用UTF8函數(shù)加密輸入?yún)?shù)

UTF8Encoding utf8Encoding = new UTF8Encoding();

byte[] inputByteArray = utf8Encoding.GetBytes(args

[0].ToCharArray());

// 方式一:調(diào)用默認的DES實現(xiàn)方法DES_CSP.

DES des = DES.Create();

// 方式二:直接使用DES_CSP()實現(xiàn)DES的實體

//DES_CSP DES = new DES_CSP();

// 初始化DES加密的密鑰和一個隨機的、8比特的初始化向量(IV)

Byte[] key = {0x01, 0x23, 0x45, 0x67, 0x89, 0xab,

0xcd, 0xef};

Byte[] IV = {0x12, 0x34, 0x56, 0x78, 0x90, 0xab,

0xcd, 0xef};

des.Key = key;

des.IV = IV;

// 建立加密流

SymmetricStreamEncryptor sse = des.CreateEncryptor();

// 使用CryptoMemoryStream方法獲取加密過程的輸出

CryptoMemoryStream cms = new CryptoMemoryStream();

// 將SymmetricStreamEncryptor流中的加密數(shù)據(jù)輸出到

CryptoMemoryStream中

sse.SetSink(cms);

// 加密完畢,將結(jié)果輸出到控制臺

sse.Write(inputByteArray);

sse.CloseStream();

// 獲取加密數(shù)據(jù)

byte[] encryptedData = cms.Data;

// 輸出加密后結(jié)果

Console.WriteLine(\"加密結(jié)果:\");

for (int i = 0; i < encryptedData.Length; i++) {

Console.Write(\"{0:X2} \",encryptedData[i]);

}

Console.WriteLine();

//上面演示了如何進行加密,下面演示如何進行解密

SymmetricStreamDecryptor ssd = des.CreateDecryptor();

cms = new CryptoMemoryStream();

ssd.SetSink(cms);

ssd.Write(encryptedData);

ssd.CloseStream();

byte[] decryptedData = cms.Data;

char[] decryptedCharArray = utf8Encoding.GetChars(decryptedData);

Console.WriteLine(\"解密后數(shù)據(jù):\");

Console.Write(decryptedCharArray);

Console.WriteLine(); }

}

編譯:

D:\\csharp>csc des_demo.cs

Microsoft (R) C# Compiler Version 7.00.8905 [NGWS runtime

2000.14.1812.10]

Copyright (C) Microsoft Corp 2000. All rights reserved.

運行實例:

D:\\csharp>des_demo.exe 使用C#編寫DES加密程序的framework

加密結(jié)果:

3D 22 64 C6 57 D1 C4 C3 CF 77 CE 2F D0 E1 78 2A 4D ED 7A A8

83 F9 0E 14 E1 BA 38

7B 06 41 8D B5 E9 3F 00 0D C3 28 D1 F9 6D 17 4B 6E A7 41 68

40

解密后數(shù)據(jù):

使用C#編寫DES加密程序的framework

DES算法具有極高的安全性,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。通過窮盡搜索空間,可獲得總共256(大約7.2×1016)個可能的密鑰。如果每秒能檢測一百萬個的話,需要2000年完成檢測。可見,這是很難實現(xiàn)的。當然,隨著科學(xué)技術(shù)的發(fā)展,當出現(xiàn)超高速計算機后,可以考慮把DES密鑰的長度再增長一些,以此來達到更高的保密程度。隨著信息化和數(shù)字化社會的發(fā)展,隨著計算機和Inte rnet的普及,密碼學(xué)必將在國家安全、經(jīng)濟交流、網(wǎng)絡(luò)安全及人民生活等方面發(fā)揮更大作用。

參考文獻:

[1]葉忠杰:計算機網(wǎng)絡(luò)安全技術(shù)(第二版).科學(xué)出版社 2003.8

[2]王寶會王大印等:新世紀計算機信息安全教程.電子工業(yè)出版社 2006.1

[3]Diffie W,Hellman M. New directions in cryptography. IEEE Transactions on Information Theory,1976,22(6):644-654

[4]張基溫:信息系統(tǒng)安全原理.中國水利水電出版社,2005.1

[5]顧巧論蔡振山賈春福:計算機網(wǎng)絡(luò)安全.科學(xué)出版社,2003.1

[6]蔡立軍計算機網(wǎng)絡(luò)安全技術(shù).中國水利水電出版社,2002.1

[7] http://www.enet.com.cn

主站蜘蛛池模板: 国内精品久久久久久久久久影视| 爆乳熟妇一区二区三区| 尤物精品视频一区二区三区| 伊伊人成亚洲综合人网7777| 成人毛片在线播放| 日本一区二区三区精品视频| 色哟哟国产精品一区二区| 视频国产精品丝袜第一页| 国产91视频观看| 国产精品成人不卡在线观看| 在线日本国产成人免费的| 992Tv视频国产精品| 国产粉嫩粉嫩的18在线播放91| 欧美区一区| 精品国产www| 园内精品自拍视频在线播放| 亚洲视频四区| 色婷婷啪啪| 亚洲国产理论片在线播放| 久久精品人人做人人爽电影蜜月| 国产高潮流白浆视频| 久久精品人人做人人爽电影蜜月| 久草性视频| 无码网站免费观看| 日日碰狠狠添天天爽| 日韩人妻无码制服丝袜视频| 秋霞午夜国产精品成人片| 亚洲欧美在线看片AI| 精品乱码久久久久久久| 久久国语对白| 国产高清在线丝袜精品一区| 久久精品aⅴ无码中文字幕| 91在线播放免费不卡无毒| 久久不卡国产精品无码| 黄色网站不卡无码| 欧美一级视频免费| 欧美日韩va| 久久青草热| 99国产精品一区二区| 国产在线观看一区精品| 国产农村1级毛片| 国产在线91在线电影| 国产女人18毛片水真多1| 毛片免费在线| 日韩成人在线一区二区| 亚洲综合久久成人AV| 99热线精品大全在线观看| 99色亚洲国产精品11p| 国产精品大白天新婚身材| 极品国产在线| 免费不卡在线观看av| 亚洲色图欧美在线| 波多野结衣AV无码久久一区| 国产成人在线小视频| 伊人久久福利中文字幕| 99久久精品无码专区免费| 91久久青青草原精品国产| 欧美成人精品欧美一级乱黄| 中文字幕一区二区人妻电影| 亚洲va精品中文字幕| 国产成人三级在线观看视频| 香蕉蕉亚亚洲aav综合| 亚洲中文字幕23页在线| 一级毛片基地| 色噜噜在线观看| 免费无码AV片在线观看国产| 天天躁夜夜躁狠狠躁躁88| 国产鲁鲁视频在线观看| 最新国产你懂的在线网址| 综合人妻久久一区二区精品| 日韩中文欧美| 丁香婷婷在线视频| 成年A级毛片| 亚洲国产日韩欧美在线| 国产一区成人| 自拍偷拍欧美| 亚洲综合色婷婷中文字幕| 四虎亚洲国产成人久久精品| 亚洲色图在线观看| 日韩美毛片| 国产精品香蕉在线观看不卡| 国产网友愉拍精品|