第四章 分组密码.ppt
文本预览下载声明
第4章 分组密码 如何设计可证明安全的密码算法; 如何加强现有算法及其工作模式的安全性; 如何测试密码算法的安全性; 如何设计安全的密码组件,例如S-盒、扩散层及密钥扩展算法等。 分组密码是许多系统安全的一个重要组成部分。可用于构造 ①伪随机数生成器 通过它的滚动可以生成密钥流,这个密钥流可以作为随机数;将分组密码作为一个组件也可以构造伪随机生成数,也有一些标准。 ②流密码 用分组密码可以作流密码来使用,后面讲到分组密码的运行模式时我们会看到一些例子,怎么样将分组密码变成流密码 ③消息认证码(MAC)和杂凑函数 ④消息认证技术、数据完整性机构、实体认证协议以及单钥数字签字体制的核心组成部分。 安全性 运行速度 存储量(程序的长度、数据分组长度、高速缓存大小) 实现平台(硬、软件、芯片) 运行模式 明文序列 x1, x2,…, xi,… 加密函数E: Vm×K?Vn 这种密码实质上是字长为m的数字序列的代换密码。 分组密码的设计问题在于找到一种算法,能在密钥控制下从一个足够大且足够好的置换子集中,简单而迅速地选出一个置换,用来对当前输入的明文的数字组进行加密变换。 1.5 设计密码体制的两种基本方法 扩散和混淆,其目的是为了抵抗对手对密码体制的统计分析。 在分组密码的设计中充分利用扩散和混淆,可以有效地抵抗对手从密文的统计特性推测明文或密钥。 扩散和混淆是现代分组密码的设计基础。实际中,选择某些较简单的受密钥控制密码变换,通过乘积和迭代可以取得比较好的扩散和混淆的效果。 所谓扩散就是让明文中的每一位影响密文中的许多位,或者说让密文中的每一位受明文中的许多位的影响,这样可以隐蔽明文的统计特性。 当然,理想的情况是让明文中的每一位影响密文中的所有位,或者说让密文中的每一位受明文中所有位的影响。 所谓混淆就是将密文与密钥之间的统计特性关系变得尽可能复杂,使得对手即使获取了关于密文的一些统计特性,也无法推测密钥。 使用复杂的非线性代替变换可以达到比较好的混淆效果,而简单的线性代替变换得到的混淆效果则不理想。 数据扩展: 一般无数据扩展,在采用同态置换和随机化加密技术时可引入数据扩展。 虽然DES没能长期地作为数据加密标准算法, 但它仍是迄今为止得到最广泛应用的一种算法, 也是一种最有代表性的分组加密体制。 详细地研究这一算法的基本原理、设计思想、安全性分析 以及实际应用中的有关问题, 对于掌握分组密码理论和当前的实际应用都很有意义。 采用DES的一个著名的网络安全系统是Kerberos,由MIT开发,是网络通信中身份认证的工业上的事业标准。 DES算法是这样工作的: 如Mode为加密,则用Key?去把数据Data进行加密,?生成Data的密码形式(64位)作为DES的输出结果; 如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。 DES 算法 明文分组长度:64 bits 密文分组长度:64 bits 密钥分组长度:64bits/56 bits 初始置换IP 16轮迭代的乘积变换 逆初始置换IP-1 16个子密钥产生器 初始置换IP和逆初始置换IP-1 初始置换IP和逆初始置换IP-1 DES: Function f S-Box 第1、6比特组成二进制数确定行, 中间4位二进制数用来确定的列。 加密过程:运算进行16次后就得到密文组 L0R0 ?IP(〈64 bit 输入〉) i=1,..., 16 Li?Ri-1 Ri?Li-1?f(Ri-1, ki) 〈64 bit密文〉?IP-1 (R16L16) 解密过程:DES的加密运算是可逆的,其解密过程可类似地进行 R16L16 ?IP(〈64 bit密文〉) i=16,... , 1 Ri-1 ?Li Li-1?Ri?f(Li-1, ki) 〈64 bit明文〉?IP-1 (R0L0) DES
显示全部