对称算法分类及加密模式

对称算法分类

流加密(stream cipher)

加密和解密双方使用相同伪随机加密数据流(即密钥),一般都是逐位异或或者随机置换数据内容,常见的流加密算法如RC4。

流加密中,密钥的长度和明文的长度是一致的。假设明文的长度是n 比特,那么密钥也为n比特,可选择的密钥数量为:

2n
因此暴力破解流密码是很难的。

加解密过程

明文P和密文S通过密钥K和异或操作进行转换。

PK=S
SK=P

关键技术

流密码的关键技术在于设计一个良好的##密钥流生成器##,即由种子密钥通过密钥流生成器生成伪随机流。
通信双方交换种子密钥即可(已拥有相同的密钥流生成器)。

分组加密(block cipher)

也叫块加密,将明文分成多个等长的模块(block),使用确定的算法和对称密钥对每组分别加密解密。

加密模式

对称算法有以下5种加密模式:

加密模式(英文名称及简写)中文名称特点
Electronic Code Book(ECB)电子密码本模式简单快速,可并行计算
Cipher Block Chaining(CBC)密码分组链接模式仅解密支持并行计算
Cipher Feedback Mode(CFB)加密反馈模式仅解密支持并行计算
Output Feedback Mode(OFB)输出反馈模式不支持并行运算
Counter (CTR)计算器模式支持并行计算

ECB

ECB模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。

相同的明文会产生相同的密文。
其缺点是:电子密码本模式用一个密钥加密消息的所有块,如果原消息中重复明文块,则加密消息中的相应密文块也会重复。
因此,电子密码本模式适于加密小消息。

这里写图片描述

CBC

需要初始化向量IV(长度与分组大小相同)参与计算第一组密文,第一组的密文与第二组数据XOR计算后再进行加密产生第二组密文 。

安全性较好,TLS、IPSec等标准的推荐模式,但不利于并行运算。
加密运算不支持并行,解密运算支持并行。

这里写图片描述
这里写图片描述

CFB

面向字符的应用程序的加密要使用流加密法,可以使用加密反馈模式。在此模式下,数据用更小的单元加密,如可以是8位,这个长度小于定义的块长(通常是64位)。其加密步骤是:
1、使用length位的初始化向量。初始化向量放在移位寄存器中,在第一步加密,产生相应的length位初始化密文K;
2、初始化密文K高n位与明文前n位进行异或运算,产生密文第一部分c(密文块0),然后将c传输到接收方;
3、向量的位(即初始化向量所在的移位寄存器内容)左移n位,在移位寄存器最右边的n位填入c的内容,使其为不可预测的数据;
4、重复第1-3步,直到加密所有的明文单元。

仅解密支持并行计算

这里写图片描述
这里写图片描述

OFB

输出反馈模式与CFB相似,惟一差别是,CFB中密文填入加密过程下一阶段,而在OFB中,初始化向量加密过程的输出K的高n位填入加密过程下一阶段。

可事先进行加密、解密的准备,将分组密码转化为流模式。

不支持并行运算。

这里写图片描述

这里写图片描述

CTR

计算器模式(Counter (CTR))不常见,在CTR模式中, 有一个自增的算子,这个算子用密钥加密之后的输出和明文异或的结果得到密文,相当于一次一密。这种加密方式简单快速,安全可靠,而且可以并行加密。支持并行计算

这里写图片描述
这里写图片描述

ref:
http://professor.blog.51cto.com/996189/1794740
http://www.cnblogs.com/littleatp/p/6196092.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值