赞
踩
目录
密码算法可分为:流密码与分组密码
流密码:对数据流进行连续处理的一类密码算法;一般以1比特、8比特、32比特为单位进行加密或解密,由于是对一连串数据流进行连续处理,因此需要保持内部状态
分组密码:每次只能处理特定长度的一块数据的密码算法(一块是指分组),一个分组的比特数称为分组长度;处理完一个分组就结束了,不需通过内部状态来记录加密的进度
分组密码只能加密固定长度的分组,需要加密的明文长度可能超过分组密码的分组长度,此时就需要对分组密码算法进行迭代,以便将长明文进行加密,迭代的方法就称为分组密码的模式
注:当需要加密的分组短于分组密码的长度时,需要在明文中添加相应长度的特定数据进行填充
将明文分组加密后结果直接成为密文分组
明文分组与密文分组是一一对应的关系;且每个明文分组各自独立地进行加密和解密
这种加密攻击者无需破译密码就能操纵明文
先将明文与前一个密文分组进行异或(XOR)运算,再进行加解密
初始化向量(IV):在加密第一个明文分组时,需要事先准备一个长度为一个分组的比特序列代替;每次加密时,都会随机产生一个不同的比特序列作为初始化向量
无法对单独一个中间的明文分组加密;对初始化向量没有加密
这种加密攻击者一般只能攻击初始化向量
前一个密文分组会被送回到密码算法的输入端
密文分组与明文分组之间只有XOR(而CBC中,明文分组与密文分组之间有XOR和密码算法两个步骤)
CFB模式中有密码算法产生的比特序列成为密钥流(在CFB中密码算法相当于伪随机数生成器)
在CFB中分组密码算法在解密时仍执行加密操作(因为密钥流通过加密生成)
对CFB模式可实施重放攻击
密码算法的输出会反馈到密码算法的输入中
并非通过密码算法加密明文分组的,而通过将明文分组和密码算法的输出进行XOR来产生密文分组(与CFB的区别在于密码算法的输入)
CFB是对密文分组进行反馈,必须按顺序进行加密;OFB是对密钥流进行加密(生成密钥流与XOR运算可以并行)
通过将逐次累加的计数器进行加密来生成密钥流
每个分组对应一个逐次累加的计数器
每次加密都会生成一个不同的值(nonce)作为计数器的初始值,且在每次加密时都必须不同
在初始值之后为分组序列号,会逐次累加
在CTR中如果密文分组有1bit被反转,解密后的铭文中所对应的比特会被反转,该错误不会放大
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。