❶ 分組密碼加密模式選擇有哪些
分組密碼工作模式的應用背景:多次使用相同的密鑰對多個分組加密,會引發許多安全問題。為了應對不同場合,因而需要開發出不同的工作模式來增強密碼演算法的安全性。ECB特別適合數據較少的情況,對於很長的信息或者具有特定結構的信息,其大量重復的信息或固定的字元開頭將給密碼分析者提供大量的已知明密文對。若明文不是完整的分組,ECB需要進行填充。CBC(Cipher Block Chaining)由於加密演算法的每次輸入和本明文組沒有固定的關系,因此就算有重復的明文組,加密後也看不出來了。為了配合演算法的需要,有一個初始向量(IV)。與ECB一樣有填充機制以保證完整的分組。CFB(Cipher Feedback)和OFB,CTR模式一樣,均可將分組密碼當做流密碼(實際是將分組大小任意縮減)使用。
❷ 分組密碼加密模式選擇有哪些
1、在分組加密演算法中,有ECB,CBC,CFB,OFB這幾種演算法模式。ECB(ElectronicCodeBook)/電碼。
2、常見的分組密碼工作模式有ECB、CBC、CFB、OFB、CTR五種,下面通過流程圖分別展示了5大模式的分組密碼工作加解密的流程。
3、最簡單的模式是電子密碼本(ECB)。但千萬不要在iOS應用中使用該模式。最常見的分組加密模式是密碼分組鏈模式(CBC)。填充的作用是在加密前將普通文本的長度擴展到需要的長度。關鍵在於填充的數據能夠在解密後正確的移除。
4、分組密碼演算法本身是為了使數據安全,但是如果多次使用相同的密鑰對多個分組加密的話,會引發許多數據安全的問題。
5、CBC,CFB,ECB,OFB,PCBC;支持三種填充:NoPadding,PKCS5Padding,ISO10126Padding。不支持SSL3Padding。不支持「NONE」模式。其中AES/ECB/NoPadding和我現在使用的AESUtil得出的結果相同(在16的整數倍情況下)。。
6、電碼本模式(ElectronicCodebookBook(ECB)這種模式是將整個明文分成若干段相同的小段,然後對每一小段進行加密。
❸ 04.現代常見分組加密演算法
1.Triple DES
2.IDEA
3.RC6
4.RC6
5.ASE
其實就是有3個密鑰k1,k2,k3,如果m表示明文,C表示密文,他們是這樣操作的:
DES1(m)=>C1
DES2(C1)=>C2
DES3(C3)=>C3
DES密鑰太短是其短板,3DES密鑰長度為k1+k2+k3 = 56*3 = 168bit
既然都Triple自然就有double,為什麼不用Double DES呢?
我們先來看下double des:
首先根據DESC密鑰太短的特點,的確是有了double desc,可用中間相遇攻擊破解(老師坑爹沒講什麼是中間相遇攻擊,日後補上),經過加密有2^64個可能的密文,密鑰長度為112bit(56+56),所以選擇密鑰的可能性達到2^112,於是對給定一個明文P加密成密文有2^112/2^64 = 2^48種可能,對於給定兩個明文密文對,虛警率降為2^(46-64)=2^-16,用中間相遇攻擊大概可用2^57 可暴力破解
那麼如何解決中間相遇攻擊呢?於是設計出了Triple des,它一共有四種模式:
1.DES-EEE3:3個不同的密鑰,順序用三次加密演算法
2.DES-EDE3:3個不同的密鑰, 加密-解密-加密
3.DES-EEE2:兩個不同的密鑰,k1,k2,k1,依次k1加密,k2加密,k1加密
4.DES-EDE2:兩個不同的密鑰,k1,k2,k1,依次k1加密,k2解密,k1加密
這里我們著重介紹第四種,DES-EDE2
同DES相比有如下特點:
1.3DES安全性高,密鑰長度大於DES
2.3DES可抵抗中間相遇攻擊
3.可向下兼容,我們設k2=k1,則密鑰均為k1,上圖中A過程加密後在B過程解密,最後在C過程又加密,相當於僅用k1加密一次,兼容了DES,解密同理
4.相比於DES效率低些
要求:1.效率比3DES高
2.至少和3DES一樣安全,數據分組長度128bit
它有如下特點:
1.不屬於Feistel結構,屬於SP網路
2.加密,解密相似但不對稱
3.支持128/32=Nb數據塊大小
4.支持128/192/256(/32=Nk)密鑰長度
5.結構簡單速度快
什麼是Feistel結構?
Feistel 的優點在於:由於它是對稱的密碼結構,所以對信息的加密和解密的過程就極為相似,甚至完全一樣。這就使得在實施的過程中,對編碼量和線路傳輸的要求就減少了幾乎一半
什麼是SP網路結構?
在這種密碼的每一輪中,輪輸入首先被一個由子密鑰控制的可逆函數S作用,然後再對所得結果用置換(或可逆線性變換)P作用,S和P分別被稱為混亂層和擴散層,主要起混亂和擴散作用
通過置換和替換迭代加密(最後一輪沒有列混淆)