導航:首頁 > 文檔加密 > DES指的是對稱加密技術

DES指的是對稱加密技術

發布時間:2025-07-09 02:39:25

① DES加密演算法

DES加密演算法是一種對稱分組加密技術,以其64比特的密鑰和16輪加密過程而聞名。以下是關於DES加密演算法的詳細解答:

  1. 基本特性

    • 對稱加密:DES是一種對稱加密演算法,意味著加密和解密使用相同的密鑰。
    • 分組加密:它將明文分成固定大小的塊,然後對每個塊進行加密。
  2. 密鑰處理

    • 64比特密鑰:DES使用一個64比特的密鑰,但其中8比特用於奇偶校驗,實際有效密鑰長度為56比特。
    • 子密鑰生成:通過PC1和PC2置換,以及特定的位移操作,從初始密鑰生成16個不同的子密鑰,每個子密鑰用於一輪加密。
  3. 加密過程

    • IP/IPI置換:在加密前,明文通過IP置換重新排列;解密時,則使用IPI置換。
    • 輪函數:加密過程包括16輪,每輪使用不同的子密鑰。每輪加密包括S盒非線性處理和P盒置換兩個步驟。
    • S盒和P盒:S盒引入非線性變換,增加加密的復雜性;P盒則通過置換進一步混淆數據。
  4. 安全性

    • 歷史地位:DES曾是美國聯邦政府的加密標准,具有廣泛的歷史地位和影響力。
    • 安全問題:盡管DES在其時代是先進的,但隨著計算能力的增強,它已被發現存在一些安全問題,如密鑰長度不足導致的暴力破解風險。
  5. 應用現狀

    • 教育目的:盡管有更安全的替代方案如AES,但DES因其歷史地位和簡明的加密流程,仍被廣泛用於教育目的,幫助學習者理解加密演算法的基本原理。
    • 特定場景:在某些特定場景下,如歷史數據兼容或特定安全需求下,DES仍具有一定的應用價值。

② DES屬於什麼加密體制

DES(Data Encryption Standard)是一種對稱加密體制,意味著加密和解密使用相同的密鑰。這種演算法最初由IBM在20世紀70年代開發,經過政府的加密標准篩選後,於1976年11月被美國政府正式採用。隨後,DES被美國國家標准局和美國國家標准協會正式承認,成為當時廣泛使用的加密標准。

DES演算法使用56位的密鑰對64位的數據塊進行加密,每輪編碼過程中會生成一個48位的「每輪」密鑰值。這種加密方式下,數據塊會經過16輪編碼,每輪使用的密鑰值都是由完整密鑰衍生而來。使用軟體對DES進行解碼需要很長時間,而使用硬體解碼則速度極快。然而,在20世紀70年代,大多數黑客並沒有足夠的資源來製造能夠進行DES解密的硬體設備。據估計,在1977年,建造一個能夠專門用於DES解密的計算機需要耗資兩千萬美元,並且需要12個小時的破解時間才能得到結果。因此,在當時,DES被認為是一種非常安全、難以破解的加密方法。

盡管DES在當時的加密領域具有重要地位,但隨著計算機技術的不斷發展,其安全性逐漸受到挑戰。在1998年,兩位數學家首次公布了破解DES所需的時間:僅需12個小時和100萬台計算機。這一發現引發了人們對DES安全性的廣泛討論和關注。如今,DES已被更先進的加密演算法所取代,如AES(Advanced Encryption Standard),但在某些領域和場景中,它仍然被用作一種可靠的加密手段。

③ .NET中的DES對稱加密

DES是一種對稱加密(Data Encryption Standard)演算法 於 年得到美國 *** 的正式許可 是一種用 位密鑰來加密 位數據的方法 一般密碼長度為 個位元組 其中 位加密密鑰 每個第 位都用作奇偶校驗

DES演算法一般有兩個關鍵點 第一個是加密模式 第二個是數據補位 加密模式的主要意義就是 加密演算法是按塊進行加密的 例如 DES 是 Bit 一個塊的進行加密 就是每次加密 個位元組 因此每次輸入八個位元組的明文輸出八個位元組密文 如果是 個位元組 那麼分成兩個塊依次進行加密 問題就出現在這里 如果明文是 分塊分別進行加密 那麼加密的結果類似 C C C C C C 可以看出明文的規律 這就是 ECB 加密模式 密文可以看出明文的規律 為了解決這個問題 有了其他的加密模式 CBC 加密模式(密碼分組連接) CFB加密模式(密碼反饋模式) OFB加密模式(輸出反饋模式)CBC 是要求給一個初始化的向量 然後將每個輸出與該向量作運算 並將運算的結果作為下一個加密塊的初始化向量 CFB 和 OFB 則不需要提供初始化向量 直接將密碼或者輸出作為初始化向量進行運算 這樣就避免了明文的規律出現在密文中 當然缺點是解密時需要保證密文的正確性 如果網路傳輸時發生了一部分錯誤 則後面的解密結果就可能是錯誤的 (ECB模式僅影響傳輸錯誤的那個塊 密碼演算法基本上都是分組(按快)進行加密的 如果密文長度不是剛剛好可以進行分組 怎麼辦?只能進行填充

加密演算法常見的有ECB模式和CBC模式

第一種電子密本方式(ECB)

ECB模式 電子密本方式 就是將數據按照 個位元組一段進行DES加密或解密得到一段 個位元組的密文或者明文 最後一段不足 個位元組 則補足 個位元組(注意 這里就涉及到數據補位了)進行計算 之後按照順序將計算所得的數據連在一起即可 各段數據之間互不影響 將明文分成n個 比特分組 如果明文長度不是 比特的倍數 則在明文末尾填充適當數目的規定符號 對明文組用給定的密鑰分別進行加密 行密文C=(C C …… Cn )其中Ci=DES(K xi) i= …… n 這是Java封裝的DES演算法的默認模式

第二種密文分組鏈接方式(CBC)

密文分組鏈接方式 在CBC方式下 每個明文組xi在加密前與先一組密文按位模二加後 再送到DES加密 CBC方式克服了ECB方式報內組重的缺點 但由於明文組加密前與一組密文有關 因此前一組密文的錯誤會傳播到下一組 這是 NET封裝的DES演算法的默認模式 它比較麻煩 加密步驟如下

首先將數據按照 個位元組一組進行分組得到D D ……Dn(若數據不是 的整數倍 就涉及到數據補位了)

第一組數據D 與向量I異或後的結果進行DES加密得到第一組密文C (注意 這里有向量I的說法 ECB模式下沒有使用向量I)

第二組數據D 與第一組的加密結果C 異或以後的結果進行DES加密 得到第二組密文C

之後的數據以此類推 得到Cn

按順序連為C C C ……Cn即為加密結果

第三種密文反饋方式(CFB) 可用於序列密碼

明文X=(x x …… xn ) 其中xi由t個比特組成 第四種輸出反饋方式(OFB) 可用於序列密碼

與CFB唯一不同的是OFB是直接取DES輸出的t個比特 而不是取密文的t個比特 其餘都與CFB相同 但它取的是DES的輸出 所以它克服了CFB的密文錯誤傳播的缺點

數據補位一般有NoPadding和PKCS Padding(Java中是PKCS Padding)填充方式 PKCS Padding和PKCS Padding實際只是協議不一樣 根據相關資料說明 PKCS Padding明確定義了加密塊是 位元組 PKCS Padding加密快可以是 之間 但是封裝的DES演算法默認都是 位元組 所以可以認為他們一樣 數據補位實際是在數據不滿 位元組的倍數 才補充到 位元組的倍數的填充過程

NoPadding填充方式 演算法本身不填充 比如 NET的padding提供了有None Zeros方式 分別為不填充和填充 的方式

PKCS Padding(PKCS Padding)填充方式 為 NET和Java的默認填充方式 對加密數據位元組長度對 取余為r 如r大於 則補 r個位元組 位元組為 r的值 如果r等於 則補 個位元組 比如

加密字元串為為AAA 則補位為AAA ;加密字元串為BBBBBB 則補位為BBBBBB ;加密字元串為CCCCCCCC 則補位為CCCCCCCC

NET中的DES加密

對於 NET 框架在System Security Cryptography命名空間下提供了DESCryptoServiceProvider作為System Security Cryptography DES加密解密的包裝介面 它提供了如下的 個方法

public override ICryptoTransform CreateDecryptor(byte[] rgbKey byte[] rgbIV)

public override ICryptoTransform CreateEncryptor(byte[] rgbKey byte[] rgbIV)

public override void GenerateIV()

public override void GenerateKey()

lishixin/Article/program/net/201311/13492

閱讀全文

與DES指的是對稱加密技術相關的資料

熱點內容
蘋果62個app怎麼退出一個 瀏覽:943
極道通程序員 瀏覽:327
java任務分發 瀏覽:442
qq圖片怎樣做成文件夾 瀏覽:360
java實現aop 瀏覽:344
關閉網格的命令是 瀏覽:119
漢蘭達歌曲不顯示其他文件夾 瀏覽:579
vpv伺服器地址是什麼 瀏覽:439
如何用手機解壓電腦的文件 瀏覽:637
手機怎麼換伺服器ip地址 瀏覽:66
伺服器怎麼填ins 瀏覽:727
中興伺服器如何做raid 瀏覽:175
光遇安卓國服為什麼沒有大蠟燭 瀏覽:591
python指示燈控制項 瀏覽:398
pdf圖片製作 瀏覽:52
加密鎖頻繁寫鎖 瀏覽:314
vue程序編譯 瀏覽:859
吃雞外服怎麼下載安卓版 瀏覽:694
長沙java培訓 瀏覽:952
陳戌源程序員 瀏覽:843