數據加密中的DES加密算法詳解

2021-01-18 電子產品世界

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

本文引用地址:http://www.eepw.com.cn/article/202130.htm

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

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

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

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

一、對稱加密算法

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

二、非對稱加密算法

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

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

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

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

1.加密處理過程

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

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

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

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

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

2.加密變換過程

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

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

3.子密鑰生成過程

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

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

UTF8Encoding utf8Encoding = new UTF8Encoding();
byte[] inputByteArray = utf8Encoding.GetBytes(args

相關焦點

  • 到底什麼是DES加密算法?這樣理解試試!
    在說DES加密算法之前,我們首先了解幾個基本概念:明文:明文是指沒有經過加密的數據。一般而言,明文都是等待傳輸的數據。由於沒有經過加密,明文很容易被識別與破解,因此在傳輸明文之前必須進行加密處理。密文:密文只是明文經過某種加密算法而得到的數據,通常密文的形式複雜難以識別及理解。
  • 利用彙編語言實現DES加密算法
    DES算法是一種數據加密算法。自從1977年公布以來,一直是國際上的商用保密通信和計算機通信的最常用的加密標準。DES算法的實現一般用高級語言。
  • 常見加密算法DES、AES和RSA的原理和特點
    1DES加密算法1.DES含義DES全稱為Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法,1977年被美國聯邦政府的國家標準局確定為聯邦資料處理標準(FIPS),並授權在非密級政府通信中使用,隨後該算法在國際上廣泛流傳開來。DES是對稱性加密裡常見的一種,是一種使用秘鑰加密的塊算法。
  • 基於AES算法實現對數據的加密
    對稱密碼體制是較傳統的加密體制,主要用於保證數據的機密性,通信雙方在加密/解密過程中使用其共享的單一密鑰,由於其算法實現簡單和加密速度快等優點,目前仍然是主流密碼體制之一。對稱密碼體制分為序列密碼和分組密碼兩類,序列密碼以密鑰控制密鑰發生器,產生一個隨機序列,用這個隨機序列和明文信息逐位進行異或運算,就得到密文,其加密單元為比特。
  • 區塊鏈中的密碼學系列之對稱加密算法DES(六)
    前言DES是一種數據加密標準( Data Encryption Standard) , 有30多年歷史,是一種對稱密碼算法,是第一個得到廣泛應用的密碼算法,是一種分組加密算法,輸入的明文為64位,密鑰為64位(實際上只有56位,原因是每隔7個比特設置一個奇偶校驗位),生成的密文分組長度為64位。但是現在已經不再安全。課件來自我們老師上課的PPT。2.
  • 加密類型:5種加密算法以及如何選擇正確的算法
    加密是一種將數據轉換為無法解密的格式,以便只有授權方才能訪問信息的方法。加密密鑰與加密算法一起使加密過程成為可能。並且,基於這些密鑰的應用方式,主要主要使用兩種類型的加密方法:「對稱加密」和「非對稱加密」。這兩種方法都使用不同的數學算法(即我們剛才提到的那些加密算法)對數據進行加密。常見的加密算法列表包括RSA,ECC,3DES,AES等。
  • 從數學到物理學:加密算法簡介
    1997 年,NIST 再次徵求新的加密算法提案,最終收到了 50 份提案。2020 年,NIST 接受了 「Rijndael」 算法,並命名為 「AES」,高級加密標準。基本原理所謂加密,就是一個改變數據,使之變得不可辨識、無授權者無法使用的過程;同時,它還要保證解密過程能成功把改變後的數據恢復成原始形式。
  • 區塊鏈丨非對稱加密算法,區塊鏈的加密秘訣!
    前面講到了對稱加密算法,今天講講非對稱加密算法。可以說非對稱算法是對稱算法的升級,因為非對稱算法是基於對稱算法而被研究出來的。非對稱算法與對稱算法的不同之處在於非對稱算法省去了對稱加密算法時要分發密鑰的麻煩,所以說是對稱加密算法的升級。在非對稱加密算法中同樣具有兩種密鑰:私鑰(private key)和公鑰(public key)。
  • 基於小波域的二維混沌加密算法
    隨著計算機網絡多媒體技術和現代電子商務的發展,在機要、軍事、政府、金融和私人通信中,數字圖像所佔的比例越來越大,它所承載的信息安全成為當前人們關心的焦點。保護圖像信息安全,經濟有效的方法是密碼技術。但是傳統的加密算法(如DES、RSA算法),雖然應用廣泛,但其相應的破譯方法已曾出不窮,更重要的是傳統的加密算法並不適用於對圖像及視頻的處理。
  • AES加密算法的高速低功耗ASIC設計
    0.18μm CMOS工藝,實現了最高工作頻率410MHz,數據吞吐率5.23Gbps,功耗為58 mW。採用改進算法(T盒算法),將輪變換操作中的不同步驟合併為一組表的查詢,有效降低了關鍵時序路徑的傳輸延遲,並通過動態功耗管理和門控時鐘等低功耗設計方法有效地降低了功耗。
  • 為什麼質數能被用於加密算法?
    直到上個世紀70年代,麻省理工學院(MIT)的三位數學家李維斯特、薩莫爾和阿德曼共同提出了一種公開密鑰加密算法,也就是後來被廣泛應用於銀行加密的RSA算法,人們才認識到了質數的巨大作用。質數為什麼能用於加密算法?這個問題就要涉及到大數的質因數分解。
  • 混沌加密技術技術詳解和設計實現
    二、混沌在加密算法中的應用混沌系統由於對初值的敏感性,很小的初值誤差就能被系統放大,因此,系統的長期性是不可預測的;又因為混沌序列具有很好的統計特性,所以它可以產生隨機數列,這些特性很適合於序列加密技術。
  • 牛津與劍橋競爭贏得算法加密交易大賽
    多元資產分析提供商APEX:E3宣布已在牛津大學和劍橋大學的學生之間安排了算法加密交易競賽。獲勝的團隊將保留其種子資??金和回報。根據官方公告,APEX:E3於11月16日啟動了競賽,並邀請了兩所大學的數學和計算機科學系的15個團隊參加了為期一個月的算法加密交易競賽。這些團隊將使用APEX:E3提供的API來構造算法並在CoinbasePro和FTX上執行交易。APEX:E3與其他合作夥伴一起贊助了比賽,向學生提供API,技術支持,交易指導和種子資金。
  • 若想世界不崩塌,先開發後量子時代加密算法
    如果用傳統的儲存方法,根據香飄飄奶茶廣告詞中的計量方式:「香飄飄奶茶,一年賣出三億多杯,杯子連起來可繞地球一圈。」那麼,世界一年產生的數據所需的1T硬碟,至少也能繞地球一圈。 而面對巨量的數據,未來量子存儲設備則只需要指甲蓋大小就能存儲人類幾百年的信息。
  • u盤文件夾加密
    圖1為採用本視頻加密裝置的防複製錄象帶錄製裝置配備圖。圖2為本視頻加密裝置的電原理方框圖。圖3為本視頻加密裝置一個實施例的自動增益控制器視頻幅度檢測器7。AGC鎖定電路9的電路原理圖。在圖1中,本視頻加密裝置2,串接於原版母帶放象機1的視頻輸出和複製錄象機3的視頻輸入之間。視頻加密裝置2可以製成一個單獨的設備通過視頻分配器同時控制多臺複製錄象機3,也可以作為一個附件加裝在錄象機3中。
  • 姚期智:加密技術在數據治理上能發揮重要作用
    來源:澎湃新聞聚焦AI治理|姚期智:加密技術在數據治理上能發揮重要作用澎湃新聞記者 張唯12月18日,圖靈獎得主、清華大學交叉信息研究院院長姚期智在清華大學人工智慧合作與治理國際論壇上表示,加密技術在數據治理上能發揮重要作用。
  • 從「量子霸權」到攻破現有加密算法:進度條才走了1%
    我們可以預期的是,谷歌研究人員在論文中聲稱的運算速度的雙指數級提升,最終將使量子計算機能夠運行更多的應用程式或模擬任務(比如化學反應的模擬)。面對這類任務,經典超級計算機是無能為力的。 距量子計算機破解現有加密算法還有多久? 自從量子計算的概念提出以來,科學界就一直在討論能夠打破現有加密算法的量子計算機何時誕生。
  • 後量子加密究竟是什麼?
    但這個符號其實非同小可,它代表著我們所面對的在線服務正在使用HTTPS——這是一種網絡協議,能夠對我們通過網際網路發送的數據以及收到的響應結果進行加密。目前,整個網際網路行業都在使用HTTPS以及其它一些形式的加密機制保護各類電子通信、密碼、數字籤名以及健康記錄等信息。量子計算機則可能很快摧毀這些加密防禦體系。
  • 被證明的黎曼猜想跟區塊鏈加密算法有什麼關係?
    而區塊鏈屆跟著躁動,加密算法要被破解了。截至目前,數學論文中的研究,其中很多數學命題都是以黎曼猜想及推廣形式的成立作為前提。如果黎曼猜想被證實或證明,這些數學命題將榮升為數學定理;而如果一旦被證偽,則代表將有千餘個數學命題不被成立。所以,基於這一研究意義,數學界對於麥可· 阿提亞9月24日的宣講自然格外在意。
  • 量子安全通話 亮點不在可加密,而在加密方式
    據了解,量子安全通話服務可以理解為「安全通話+量子密鑰」的服務,其中,安全通話與普通通話的區別在於——安全通話是對通話過程中的語音進行加密後再傳送,可實現通話內容防洩漏的功能。「量子密鑰是指使用量子信息技術製備出的密鑰。」