分组长度(block length):一个分组的比特数就称为分组长度。DES和三重DES的分组长度都是64比特,AES的分组长度为128比特。
流密码(stream cipher):是对数据流进行连续处理的一类密码算法。一次性密码本
分组密码的主要模式
- ECB 模式:Electronic CodeBook mode (电子密码本模式)
- CBC模式:Cipher Block Chaining mode (密码分组链接模式)
- CFB 模式:Cipher FeedBack mode (密文反馈模式)
- OFB 模式:Output FeedBack mode (输出反馈模式)
- CTR模式:CounTeR mode (计数器模式)
ECB模式
对ECB模式的攻击
CBC模式
确保互联网安全的通信协议之一 SSL/TLS,就是使用CBC模式来确保通信的机密性的,如使用CBC模式三重DES的3DES_EDE_CBC以及CBC模式256比特AES的AES_256_CBC等。
填充提示攻击(Padding Oracle Attack):利用分组密码中的填充部分通过接受者(服务器)返回的错误消息来进行攻击的方法。2014年对SSL 3.0造成重大影响的POODLE攻击实际上就是一种填充提示攻击。要防御这种攻击,需要对密文进行认证,确保这段密文的确是由合法的发送者在知道明文内容的前提下生成的。
对初始化向量(IV)进行攻击:初始化向量(IV)必须使用不可预测的随机数。然而在SSL/TLS的TLS 1.0版本协议中, IV并没有使用不可预测的随机数,而是使用了上一次CBC模式加密时的最后一个分组。为了防 御攻击者对此进行攻击,TLS 1.1以上的版本中改为了必须显式地传送IV ( RFC5246 6 23.2 )
CFB模式
OFB模式
CTR模式
Nounce:其中前8个字节为nonce,这个值在每次加密时必须都是不同的。后8个字节为分组序号, 这个部分是会逐次累加的。
2020-05-14