分組密碼和對稱密鑰加密有什麼區別?
分組密碼和對稱密鑰加密都使用密鑰將明文轉換為密文,並且以可逆的方式進行。他們是一樣的嗎?或者對稱密鑰加密是否還包括塊密碼以外的東西?
對稱密鑰方案只是意味著使用密鑰來加密和解密相同的消息。
分組密碼只是意味著將您的數據加密為許多小比特塊(其大小可能因填充隨機技術而異)。
對稱(-密鑰)加密是密碼學的一個子領域,歷史上是第一個。研究對稱品種的加密方法;即使用相同的密鑰進行加密和解密,包括密碼和分組密碼。
根據這些術語的現代定義,分組密碼不是密碼。它是一些密碼(和許多其他密碼原語)使用的建構塊。當密碼沒有這樣的大小限制並且可以滿足更嚴格的安全目標時,它將某些固定大小的數據塊執行確定性加密成相同大小的塊。
具有塊大小的塊密碼的通用定義 $ b $ 位和鍵空間 $ \mathcal K $ 是:一個公開的、可高效計算(加密)的函式 $ E:\mathcal K\times{0,1}^b\to{0,1}^b $ (在哪裡 $ {0,1}^b $ 是的集合 $ 2^b $ 確切的位串 $ b $ 位);與匹配的公共、高效計算(解密)函式一起 $ D:\mathcal K\times{0,1}^b\to{0,1}^b $ , 這樣對於任何 $ K $ 在鍵空間中 $ \mathcal K $ , 和任何 $ P $ 在 $ {0,1}^b $ , 它認為 $ D(K,E(K,P))=P $ (這意味著:解密總是反向加密)。在這種情況下,分組密碼直接屬於對稱加密,因為相同的密鑰 $ K $ 用於加密 $ E $ 和解密 $ D $ . AES-256是這種分組密碼的一個範例,具有密鑰空間 $ \mathcal K={0,1}^{256} $ 和 $ b=128 $ 比特,因此是集合中的明文和密文塊(分組密碼加密的輸入和輸出) $ {0,1}^{128} $ .
注意:很少,定義可能會省略 $ D $ 可有效計算,例如可能不會提及 $ D $ 而是指定一個暗示其存在但不是有效可計算性的條件,例如:對於任何 $ K $ 在鍵空間中 $ \mathcal K $ ,以及任何不同的 $ P $ 和 $ P’ $ 在 $ {0,1}^b $ , $ E(K,P) $ 和 $ E(K,P’) $ 是不同的。可能需要沒有有效計算的 $ D $ 存在,並且可選地要求一個有效可計算的 $ D’ $ 這樣 $ D’(K’,E(K,P))=P $ , 和 $ (K,K’) $ 形成由某個程序生成的公鑰/私鑰對,允許非對稱加密/解密。可以構造這個,或者即使使用已知的任意位串的加密密鑰也無法破譯的分組密碼,具有強大的安全參數;例如來自 RSA(用於非對稱可解密)或 DLP $ \mathbb Z_p $ (用於無法辨認)和自行車步行進行操作 $ {0,1}^b $ 按要求。但是已知的這種結構往往需要大 $ b $ ,例如 $ b\ge2^{11} $ 而不是 $ b\ge2^{7} $ 對於現代常見的對稱可破譯分組密碼。
密碼是一種公共方法,允許以加密形式(密文)傳輸明文,根據密鑰和明文計算,同時允許將密文解密回明文以供持有密鑰的人使用。在對稱加密中,用於加密的密鑰也用於解密,因此是秘密;而在非對稱加密中,公鑰用於加密,而私有(秘密)密鑰用於解密。除非另有說明,否則密碼旨在防止忽略解密密鑰的對手通過檢查相應的密文以及可能的其他方式(檢查已知或選擇相應明文的其他密文)來學習有關明文的任何新內容(長度除外) ,邊通道,要求解密所選密文..)。
與分組密碼相反,密碼不限於具有相同固定大小的明文(加密輸入)和密文(加密結果)。明文可以(並且通常是)可變大小。密文幾乎總是比明文大很多。此外,密碼不一定是相同的明文和密鑰總是產生相同的密文,這將防止密文不可區分(等效於所選明文下的安全性),這被認為是密碼的標準安全要求,所有分組密碼都缺乏。
許多常見的密碼都是不對稱的(當沒有常見的分組密碼時,請參閱註釋)。一些常見的對稱密碼在某些操作模式下內部使用分組密碼,但有許多值得注意的密碼不使用,通常是流密碼。