Symmetric

流密碼和對稱加密算法有什麼區別?

  • May 20, 2017

根據標籤定義:

流密碼:流密碼是一種加密算法,它使用密鑰對任意長度的明文進行加密。一些流密碼僅從密鑰生成密鑰流,然後將其與純文字進行異或組合,其他流密碼將明文或密文回饋到算法中以創建密鑰流。

對稱加密:對稱密碼系統假設兩個通信實體共享一個預先建立的密鑰。

這兩個術語有什麼區別?對於流密碼而不是對稱加密算法(反之亦然),是否存在更理想的特定情況?或者這兩個只是相同概念的不同術語?

跟進:ChaCha20-Poly1305 被辨識為流密碼。AES/3DES 也是流密碼嗎?

加密的三種基本類型

  1. 對稱的。它使用相同的密鑰進行加密和解密。
  2. 不對稱。它使用兩個不同的密鑰(公鑰和私鑰)來加密和解密。
  3. 雜湊函式。使用數學變換不可逆地“加密”資訊,提供數字指紋。主要用於消息完整性。

塊密碼和流密碼構成對稱加密的一部分。Stream Cipher 從使用者給定的密鑰生成一個擴展的密鑰流,然後用明文(用於加密)/密文(用於解密)對其進行 XoR。

而 Block Cipher 將數據塊作為輸入,在其上執行多輪以及密鑰混合併生成密文。分組密碼具有多種操作模式,其中計數器(CTR)模式的工作方式類似於流密碼。序列號被輸入到分組密碼中,其輸出與明文異或以形成密文。在這種操作模式下,只需要分組密碼的加密程式碼。不需要解密程式碼,解密時我們只需輸入相同的序列號來分組密碼,並將其輸出與密文異或得到明文。有時nounce 與Counter 一起使用,因此輸入的分組密碼分為兩部分,即A Fixed nounce 和Incremental Counter。

在此處輸入圖像描述

其他操作模式是:-

  1. 歐洲央行(提供保密)
  2. CBC 和 CTR(提供機密性和語義安全性以防止選擇的明文攻擊)
  3. EAX、CCM 和 GCM(提供經過身份驗證的加密)

更多細節可以在這裡找到

引用自:https://crypto.stackexchange.com/questions/47521