導航:首頁 > 文檔加密 > 對稱des加密系統是什麼

對稱des加密系統是什麼

發布時間:2025-06-23 01:04:00

⑴ 簡述des的加密演算法

DES的加密運演算法則是一種對稱加密演算法。以下是關於DES加密運演算法則的簡述:

  1. 對稱加密特性

    • 密鑰相同:DES作為一種對稱加密演算法,其加密運算和解密運算使用的是相同的密鑰。
    • 共同持有密鑰:信息的發送者和接收者在進行信息傳輸與處理時,必須共同持有這個密鑰。
  2. 廣泛應用

    • 廣泛使用:DES很可能是使用最廣泛的密鑰系統之一,特別是在保護金融數據的安全中。
    • 硬體嵌入:最初開發的DES演算法是嵌入在硬體中的,用於高效和安全的數據加密。
  3. 加密過程

    • 雖然具體的加密過程涉及復雜的數學運算和多次迭代,但核心原則是使用密鑰對明文進行一系列變換,最終生成密文。
    • 這些變換包括初始置換、16輪Feistel結構以及最終置換等步驟。

綜上所述,DES的加密運演算法則以其對稱加密的特性、廣泛的應用場景以及復雜的加密過程,在金融數據保護等領域發揮著重要作用。

⑵ .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屬於什麼加密體制

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),但在某些領域和場景中,它仍然被用作一種可靠的加密手段。

閱讀全文

與對稱des加密系統是什麼相關的資料

熱點內容
python各種編碼 瀏覽:883
伺服器系統異常怎麼回事 瀏覽:301
鑄鐵壓縮如何破壞 瀏覽:898
單片機的code 瀏覽:229
免費領騰訊雲伺服器 瀏覽:226
寫出下列命令的快捷鍵 瀏覽:794
軟體開發後除了程序員還能做什麼 瀏覽:97
我的世界獲取物品id命令 瀏覽:424
哪個app最快送貨 瀏覽:204
文件夾如何刪除微信好友 瀏覽:370
程序員未來20年 瀏覽:545
雲伺服器如何搭建vpn 瀏覽:757
php53和54 瀏覽:1000
foxitpdfeditor綠色 瀏覽:222
命令狗狗帶自己玩 瀏覽:714
應用伺服器異常是什麼原因 瀏覽:156
用雲技術和文件夾作比較句 瀏覽:903
內容發布系統php 瀏覽:572
啟航教育下載的視頻在哪文件夾 瀏覽:354
什麼app復制鏈接能提取視頻 瀏覽:703