⑴ 分組密碼的演算法要求
分組密碼演算法實際上就是密鑰控制下,通過某個置換來實現對明文分組的加密變換。為了保證密碼演算法的安全強度,對密碼演算法的要求如下。 加密速度慢,錯誤擴散和傳播。
分組密碼將定長的明文塊轉換成等長的密文,這一過程在秘鑰的控制之下。使用逆向變換和同一密鑰來實現解密。對於當前的許多分組密碼,分組大小是 64 位,但這很可能會增加。
明文消息通常要比特定的分組大小長得多,而且使用不同的技術或操作方式。這樣的方式示例有:電子編碼本(ECB)、密碼分組鏈接(CBC)或密碼反饋(CFB)。ECB 使用同一個密鑰簡單地將每個明文塊一個接一個地進行加密;在 CBC 方式中,每個明文塊在加密前先與前一密文塊進行「異或」運算,從而增加了復雜程度,可以使某些攻擊更難以實施。 「輸出反饋」方式(OFB)類似 CBC 方式,但是進行「異或」的量是獨立生成的。 CBC 受到廣泛使用,例如在 DES(qv)實現中,而且在有關密碼術的技術性方面的相應書籍中深入討論了各種方式。請注意:您自己建立的 密碼系統的普遍弱點就是以簡單的形式來使用某些公開的演算法,而不是以提供了額外保護的特定方式使用。
迭代的分組密碼是那些其加密過程有多次循環的密碼,因此提高了安全性。在每個循環中,可以通過使用特殊的函數從初始秘鑰派生出的子密鑰來應用適當的變換。該附加的計算需求必然會影響可以管理加密的速度,因此在安全性需要和執行速度之間存在著一種平衡。天下沒有免費的午餐,密碼術也是如此;與其它地方一樣,應用適當方法的技巧中有一部分是源於對需要進行的權衡以及它們與需求平衡的關系如何的理解。
分組密碼包括DES、IDEA、SAFER、Blowfish和 Skipjack — 最後一個是「美國國家安全局(US National Security Agency,NSA)」限制器晶元中使用的演算法。
⑵ 分組密碼的五種工作模式
常見的分組密碼工作模式有ECB、CBC、CFB、OFB、CTR五種,下面通過流程圖分別展示了5大模式的分組密碼工作加解密的流程。
ECB(Electronic Codebook, 電子密碼本)模式是最簡單的加密模式,明文消息被分成固定大小的塊(分組),並且每個塊被單獨加密。
每個塊的加密和解密都是獨立的,且使用相同的方法進行加密,所以可以進行並行計算,但是這種方法一旦有一個塊被破解,使用相同的方法可以解密所有的明文數據,安全性比較差。
適用於數據較少的情形,加密前需要把明文數據填充到塊大小的整倍數。
CBC(Cipher Block Chaining, 密碼塊鏈)模式中每一個分組要先和前一個分組加密後的數據進行XOR異或操作,然後再進行加密。
這樣每個密文塊依賴該塊之前的所有明文塊,為了保持每條消息都具有唯一性,第一個數據塊進行加密之前需要用初始化向量IV進行異或操作。
CBC模式是一種最常用的加密模式,它主要缺點是加密是連續的,不能並行處理,並且與ECB一樣消息塊必須填充到塊大小的整倍數。
CFB(Cipher Feedback, 密碼反饋)模式和CBC模式比較相似,前一個分組的密文加密後和當前分組的明文XOR異或操作生成當前分組的密文。CFB模式的解密和CBC模式的加密在流程上其實是非常相似的。
OFB(Output Feedback, 輸出反饋)模式將分組密碼轉換為同步流密碼,也就是說可以根據明文長度先獨立生成相應長度的流密碼。通過流程圖可以看出,OFB和CFB非常相似,CFB是前一個分組的密文加密後XOR當前分組明文,OFB是前一個分組與前一個明文塊異或之前的流密碼XOR當前分組明文。由於異或操作的對稱性,OFB模式的解密和加密完全一樣的流程。
CTR(Counter, 計數器)模式與OFB模式一樣,計數器模式將分組密碼轉換為流密碼。它通過加密「計數器」的連續值來產生下一個密鑰流塊,
轉自 https://blog.csdn.net/shaosunrise/article/details/80035297
⑶ AES加密演算法原理
一般的加密通常都是塊加密,如果要加密超過塊大小的數據,就需要涉及填充和鏈加密模式,本文對對稱加密和分組加密中的幾種種模式進行一一分析(ECB、CBC、CFB、OFB,CTR)
這種模式是將整個明文分成若干段相同的小段,然後對每一小段進行加密。
優點:
這種模式是先將明文切分成若干小段,然後每一小段與初始塊或者上一段的密文段進行異或運算後,再與密鑰進行加密。
優點:
計算器模式不常見,在CTR模式中, 有一個自增的運算元,這個運算元用密鑰加密之後的輸出和明文異或的結果得到密文,相當於一次一密。這種加密方式簡單快速,安全可靠,而且可以並行加密,但是 在計算器不能維持很長的情況下,密鑰只能使用一次 。CTR的示意圖如下所示:
優點:
優點:
優點:
⑷ 1、對稱加密演算法
指加密和解密使用相同密鑰的加密演算法。對稱加密演算法用來對敏感數據等信息進頃弊指行加密,常用的演算法包括RC4、DES、3DES、AES、DESX、Blowfish、ChaCha20、RC5、RC6。前3種演算法被認為是不安全的,通常禁止使用。
國內:SM1、SM4、ZUC
國際:DES、3DES、AES
說明:SM1的128位保密強度和性能與AES相當,SM4的128位已升級為國際標准
塊密碼演算法:DES、3DES、AES
流密碼演算法:RC4
SM1:對稱加密演算法,加密強度為128位,採用硬體實現; 演算法不公開 ,只能通過相關安全產品進行使用。
SM4:對稱演算法,隨WAPI標准一起公布,可使用軟體實現,加密強度為128位。
SM4分組密碼演算法是我國自主設計的分組對稱密碼演算法,用於實現數據的加密/解密運算,以保證數據和信息的機密性。要保證一個對稱密碼演算法的安全性的基本條件是其具備足夠的密鑰長度,SM4演算法與AES演算法具有相同的密鑰長度分組長度128比特,因此在安全性上高於3DES演算法。
DES(Data Encryption Standard) :數據加密標准,速度較快,適用於加密 大量數據 的場合。
3DES(Triple DES) :是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高。
AES(Advanced Encryption Standard) :高級加密標准,是下一代的加密演算法標准,速度快,安全級別高;
ECB(Electronic Codebook)、特點:運算快速,支持並行處理,需要填充、說明:不推薦使用
CBC (Cipher Block Chaining)、特點:支持並行處理,需要填充、說明:推薦使用
CFB(Cipher Feedback)、特點:支持並行處理,不需要填充、說明:不推薦使用
OFB(Output Feedback)、特點:迭代運算使用流密碼模式,不需要填充、說明:不推薦使用
CTR (Counter)、特點:迭代運算使用流密碼模式,支持並行處理,不需要填充、說明:推薦使用
XTS(XEX-based tweaked-codebook)、特點:不需要填充、說明:用於本地硬碟存儲解決方案中
填充標准:明文長度必須是分組長度的倍數,如雀配卜嘩不是倍數,則必須有填充機制
PKCS#7填充:可處理的分組長度是1到255個位元組
AES演算法使用標准,比如:AES-128-CBC-PKCS#7,其中秘鑰長度128,分組模式CBC,填充標准PKCS#7,AES演算法默認分組128bit
⑸ AES加密演算法256位密鑰與128位密鑰的不同是什麼
一、指代不同
1、256位密鑰:AES的區塊長度固定為256位,密鑰長度則可以是256。
2、128位密鑰:AES的區塊長度固定為128位,密鑰長度則可以是128。
二、安全性不同
1、256位密鑰:256位密鑰安全性高於128位密鑰。
2、檔塌128位密鑰:128位密鑰安全者蠢皮性低於256位密鑰。
(5)ofb是安全的加密演算法嗎擴展閱讀
AES和Rijndael加密法並不完全一樣(雖然在實際應用中二者可以互換),因為Rijndael加密法可以支持更大范圍的區塊和密鑰長度。
AES的區塊長度固定為128位,密鑰長度則可以是128,192或256位;而Rijndael使用的密鑰和區塊長度可以是32位的整數倍,以128位為下限,256位為上限。加密過程中使用的密鑰是由Rijndael密鑰生成方案產生。
對稱/分組密碼一般分為流加密(如OFB、CFB等)和塊加密(如ECB、CBC等)。對於流加密,需要將分組首差密碼轉化為流模式工作。對於塊加密(或稱分組加密),如果要加密超過塊大小的數據,就需要涉及填充和鏈加密模式。
ECB模式是最早採用和最簡單的模式,將加密的數據分成若干組,每組的大小跟加密密鑰長度相同,然後每組都用相同的密鑰進行加密。