當前位置:首頁 > 智能硬件 > 智能硬件
[導讀][摘要] 本文詳細介紹了DES數(shù)據(jù)加密算法的原理,并給出了一個例子演示了如何使用c#中的加密包進行DES算法加密,最后對DES進行了評價。[關鍵詞] 加密 對稱 非對稱 DES 密鑰 明文 密文從最初的保密通信發(fā)展到目前的網(wǎng)絡信

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

[關鍵詞] 加密 對稱 非對稱 DES 密鑰 明文 密文

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

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

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

一、對稱加密算法

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

二、非對稱加密算法

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

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

DES加密算法是分組加密算法,明文以64位為單位分成塊。64位數(shù)據(jù)在64位密鑰的控制下,經(jīng)過初始變換后,進行16輪加密迭代:64位數(shù)據(jù)被分成左右兩半部分,每部分32位,密鑰與右半部分相結合,然后再與左半部分相結合,結果作為新的右半部分;結合前的右半部分作為新的左半部分。這一系列步驟組成一輪。這種輪換要重復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,則可做如下定義

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

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

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

2.加密變換過程

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

一個S盒中具有4種替換表(行號用0、1、2、3表示),通過輸入的6位的開頭和末尾兩位選定行,然后按選定的替換表將輸入的6位的中間4位進行替代,例如:當向S1輸入011011時,開頭和結尾的組合是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 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);
// 加密完畢,將結果輸出到控制臺
sse.Write(inputByteArray);
sse.CloseStream();
// 獲取加密數(shù)據(jù)
byte[] encryptedData = cms.Data;
// 輸出加密后結果
Console.WriteLine("加密結果:");
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:“csharpcsc 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:“csharpdes_demo.exe 使用C#編寫DES加密程序的framework
加密結果:
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加密程序的

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

參考文獻

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

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

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

顧巧論蔡振山賈春福:計算機網(wǎng)絡安全.科學出版社

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉