第6章 对称密码的其他内容

  • 格式:pdf
  • 大小:496.08 KB
  • 文档页数:36

j=0 对i=0,…,255做 j=j+S[i]+K[i] mod 256 互换s[i]与s[j]
伪随机生成算法(PRGA, Pseudo Random Generation Algorithm)

从内部状态中选取一个随机元素作为密钥流中的一个字节, 并修改内部状态以便下一次选择。 选取过程取决于索引值i和j,它们的初始值均为0。

计数器先被初始化为某一个值 之后计数器的值不断加1
计数器模式(CTR)

硬件效率

与三种链接模式不同,CTR模型能够并行处理多块明文(密文)的加密(解 密),链接模式限制了算法的吞吐量。 处理器能够提供像流水线、每个时钟周期的多指令分派、大数量的寄存器等 并行特征。 如果有充足的存储器可用,预处理提供加密 密文的第i个明文组能够用一种随机的方式处理,链接模式下必须知道前面 的i-1块密文才能计算密文Ci. CTR模式和其他模式一样安全 CTR只需要实现加密算法,不需要实现解密算法,也不用实现解密密钥扩展
5 S[0]
小结

了解

3DES 分组密码的工作模式 RC4

理解


掌握

密文分组链接模式(CBC)

为了克服ECB的弱点,需要将重复的明文组加密成不同的密 文组。 CBC能够满足这个要求。
密文分组链接模式(CBC)

一个适用于加密长于64位消息的加密模式

相同的明文分组产生不同的密文分组 C i = DES(K, C i-1 Pi) Pi = DES-1(K, C i) Ci-1
RC4



RC4是Ron Rivest为RSA公司在1987年设计的 一种流密码; 是一个可变密钥长度,面向字节操作的流密码; 算法以随机置换作为基础,密码的周期大于10100 。 每输出一个字节的结果仅需要8条到16条机器操 作指令。 可能是应用最广泛的流密码,被应用于SSL/TLS 标准。

3DES

双重DES


多重加密的最简单形 式:两重加密 加密形式:

C=E(K2,E(K1,P)) P=D(K1,D(K2,C)) 56X2=112位

解密形式:


密钥长度扩展为:

针对两重分组加密算法的中间相会攻击
中间相会攻击:

C = E (K2, E (K1, P)) X = D(K2, C) = E(K1, P)
0 S[0]

假设初始密钥为5、6、7,需要根据该初始密钥生成密 钥流。 5 6 7 5 6 7 5 6
K[0] K[1] K[2] K[3] K[4] K[5] K[6] K[7]

执行KSA后,内部状态变为:
5 4 0 7 1 6 3 2 S[0] S[1] S[2] S[3] S[4] S[5] S[6] S[7]

PRGA阶段,索引值i和j均从0开始,计算第一个输 出时的过程为:i=i+1 mod 8=1, j=j+S[i] mod 8=4,互换S[1]和S[4],然后计算t和K, t=S[1]+S[4] mod 8=5, K=S[5]=6。 1 S[1] 0 S[2] 7 S[3] 4 S[4] 6 S[5] 3 S[6] 2 S[7]

对于一对已知的(P, C):

对任意K1, 计算E(K1, P), 将256个结果排序 对任意K2, 计算D(K2, C), 将256个结果排序 进行匹配搜索, 每找到一对再用其它(P, C)对进 行验证, 直到找到为止
3DES

使用两个密钥的3DES

Tuchman建议的两个密钥三次加密 C = E(K1, D(K2, E(K1, P))) P = D(K1, E(K2, D(K1, C))) 已经应用于密钥管理标准ANS X9.17和ISO 8732中
3DES

使用3个密钥的3DES

C = E(K3, D(K2, E(K1, P))) P = D(K3, E(K2, D(K1, C)))

有些internet应用已经采纳了该3DES,如 PGP和S/MIME
分组密码的工作模式

电码本模式(ECB) 密文分组链接模式(CBC) 密文反馈模式(CFB) 输出反馈模式 (OFB) 计数器模式(CTR)
C1 P1 S s [ E ( K , IV )]
密文反馈模式(CFB)—加密


DES本质上是一个分 组密码,但是利用密 文反馈模式(CFB) 或输出反馈模式 (OFB)亦可做流密 码使用。 流密码加密的单元一 般是1位或8位
密文反馈模式(CFB)


由IV开始 加密 将输出的(最高位)j位与明文的j位异或 结果为密文 将IV移动j位,插入密文

软件效率


预处理


随机访问


可证明安全性


简单性

流密码和RC4

流密码的结构 RC4算法
流密码的结构
目前大多数研究成果都是关于同步流密码的。
k 安全信道 k
… 滚动密钥生成器
… 滚动密钥生成器
xi
zi
ezi (xi )
yi
zi
ห้องสมุดไป่ตู้
xi
e zi (y i )
图3.20 同步流密码体制模型
流密码的结构

典型的流密码每次加密一个字节的明文; 密钥输入到一个伪随机数发生器,产生一串随机 的8比特数; 发生器的输出称为密钥流; 11001100 明文 ⊕01101100 密钥流 10100000 密文 解密使用相同的伪随机序列: 10100000 密文 ⊕01101100 密钥流 11001100 明文

设计流密码需要考虑的主要因素:



加密序列的周期要长。伪随机发生器实质 上使用的是产生确定的比特流的函数。该 比特流最终将出现重复。 密钥流应该尽可能地接近于一个真正的随 机数流的特征。如1和0的个数应近似相等, 密钥流的随机特性越好,则密文越随机。 图中伪随机发生器的输出取决于输入密钥 的值。密钥应该足够长,应当保证不小于 128位。

加密某个明文分组前, 将它与前一个密文分组做异或



对第一个分组,需要一个初始化向量, IV 发送方和接收方都应该知道IV (通常为全0) 每个密文分组依赖于之前的所有消息分组 当数据已经给定时,该模式为最常用的模式(email, ftp, web, …), 可用于保密性,也可用于认证。
i=0 j=0 重复下述步骤,直至获得足够长度的密钥流: i=i+1 mod 256 j=j+S[i] mod 256 互换s[i]与s[j] t=S[i]+S[j] mod 256 K=S[t]
RC4举例

假设发送方Alice和接收方Bob使用RC4算法实现秘 密通信。设n=3, L=3,内部状态是2n=8个元素。 1 S[1] 2 S[2] 3 S[3] 4 S[4] 5 S[5] 6 S[6] 7 S[7]
密文反馈模式(CFB)—解密


逆步骤 由IV开始 加密 将输出的j位与密 文的j位异或 结果为明文 将IV移动j位, 插入密文
P1 C1 S s [ E ( K , IV )]
输出反馈模式 (OFB)

用加密函数输出填充移位寄存器,而CFB用 密文单元来填充移位寄存器。
第6章 对称密码的其他内容
wenmi2222@
主要内容

多重加密 分组密码的工作模式 流密码和RC4
多重加密

多重加密

就是将一个加密使用多次的技术; 在第一次使用中,明文通过加密算法转化为密文; 然后将该密文作为输入重新执行加密算法,可以 重复使用多次。 在三个阶段使用DES算法,共用到两组或三组密 钥
RC4算法

主要包括两个步骤:


密钥调度算法(KSA,Key-Scheduling Algorithm) 伪随机生成算法(PRGA, Pseudo Random Generation Algorithm)
密钥调度算法(KSA,KeyScheduling Algorithm)


设置内部状态(s[0],…,s[255])的随机排列。 开始时,内部状态中的元素被初始化为0~255,既 s[i]=i(i=0,…,255); 密钥长度可变,设为L个字节(K[0],…,K[L-1]); L一般为5~32之间,用L个字节不断重复填充,直至得到 K[0],…,K[255],用于对内部状态S进行随机化。
流密码的优缺点




和分组密码相比,速度更快,而且需要编写 的代码少; 对不同的明文需要使用不同的流密钥,否则 容易破解; 适用于需要对数据流进行加密解密的应用, 如通过一个数据通信信道或网页浏览连接; 不适用于处理成块的数据:文件传输、电子 邮件和数据库。
流密码几乎总是比分组密码快,通常 使用的代码也比分组密码少得多。如最常 用的流密码 RC4,大概比最快的分组密码 至少快两倍 。RC4可以用30行代码写成 , 而大多数分组密码需要数百行代码。
电码本模式(ECB)
电码本模式(ECB)


每个明文分组使用相同的密钥独立地进行加密 最后一个分组可能要适当地进行填充 用于传输单个分组 (如会话密钥)或者较少的分组 因为给定密钥,每个明文分组产生唯一的密文,因 此称为密码本 用于较长的消息可能会不安全

相同的明文分组产生相同的密文分组