计算机安全与保密 (Computer Security and Applied Cryptography ) 罗 敏 武汉大学计算机学院 jsjgfzx@whu.edu.cn
复习上节课的内容
6 序列密码 6.1 线性同余产生器 6.2 线性反馈移位寄存器 6.3 序列密码的设计与分析 6.4 进位反馈移位寄存器 6.5 非线性反馈移位寄存器 6.6 设计序列密码的方法
6.1 线性同余产生器 线性同余产生器:伪随机序列产生器 Xn = (aXn-1+b) mod m Xn为序列中第n个数,Xn-1为序列中第n-1个数 变量a,b和m为常数 X0为密钥或种子 最大周期:m-1 不能用于密码学
6.2 线性反馈移位寄存器 移位寄存器:一个二进制位序列。需要1位时,所有位都向右移动一位,空出的最左边一位由寄存器中其他位的一个函数来计算。 移位寄存器的输出为1位,通常是最低位。 周期为输出序列开始重复之前的长度。 反馈移位寄存器:由一个移位寄存器和一个反馈函数组成。
线性反馈移位寄存器(LFSR):反馈函数为寄存器中特定位的异或。 这些位的列表称为一个选择序列。 bn bn-1 … b4 b3 b2 b1 反 馈 函 数 反馈移位寄存器 线性反馈移位寄存器(LFSR):反馈函数为寄存器中特定位的异或。 这些位的列表称为一个选择序列。 具有特定选择序列的LFSR会遍历所有的2n-1个内部状态,为最大周期的LFSR。
m序列:最大周期的LFSR产生的输出序列。 n阶本原多项式:一个不可约多项式,能整除x2n-1+1,但对任意整数d,满足d整除2n-1,多项式不能整除xd+1。 用本原多项式x32+x7+x5+x3+x2+x+1构造最大周期的LFSR: b32 … b7 b6 b5 b4 b3 b2 b1 32位的最长周期的LFSR 输出位
6.3 序列密码的设计与分析 线性复杂度:能够模拟产生器输出的最短的LFSR的长度n。 低线性复杂度的产生器肯定是不安全的 有高的线性复杂度也不一定安全 相关免疫函数
进位反馈移位寄存器(FCSR):包括一个移位寄存器,一个反馈函数和一个进位寄存器。 6.6 进位反馈移位寄存器 进位反馈移位寄存器(FCSR):包括一个移位寄存器,一个反馈函数和一个进位寄存器。 进位寄存器:将选择序列的各位相加,并加上进位寄存器的内容,结果模2成为新位,结果除以2成为进位寄存器的新内容。 bn bn-1 … b4 b3 b2 b1 和 进位反馈移位寄存器 和除以2 和模2 输出位
6.7 非线性反馈移位寄存器 反馈函数可以是任意的 问题: 可能会有倾向性 最大周期可能很低 开始值不同,可能周期不同 序列可能退化
6.8 设计序列密码的方法 系统理论方法:尽量保证每次设计都为攻击者设置一个未知且难以解决的问题,使用一套基本的设计原则和标准。 信息论方法:尽量让攻击者对明文一无所知。 复杂性理论方法:尽量让密码系统基于或等价于一些已知的数学难题。 随机化方法:尽量通过迫使攻击者在密码分析中去检查大量无用的数据的方式来产生一个难以处理的大问题。
密 码 学 应 用
目录 密码学的数学基础 传统密码学算法 对称钥算法 公开钥算法 序列密码 程序安全 操作系统安全 数据库安全 网络安全 灾难恢复计划 信息隐藏与数字水印
7.1 保密通信 链路加密 端-端加密
7.2 密码模式 电码本(ECB) 密文分组链接 (CBC) 密文反馈 (CFB) 输出反馈 (OFB)
ECB TIME = 1 TIME = 2 TIME = N P1 P2 PN K DES加密 K DES加密 ··· K DES加密 C1 CN (a) 加密 TIME = 1 TIME = 2 TIME = N P1 P2 PN K DES解密 K DES解密 ··· K DES解密 C1 C2 CN (b) 解密
CBC Time =1 Time =2 Time =N P1 P2 PN IV + + + CN-1 K K K DES加密 DES加密 ······ DES加密 C1 C2 CN (a) 加密 C1 CN C2 K K DES解密 K DES解密 ······ DES解密 IV + + CN-1 + P1 P2 PN (b) 解密
CFB · · · + (a) 加密 (b) 加密 移位寄存器 64-j位 | j位 DES加密 选择 | 丢弃 j位 | 64-j位 64 K 选择 | 丢弃 j位 | 64-j位 j + P1 C1 P2 C2 · · · PM CM (a) 加密 IV (b) 加密 CM-1
OFB · · · + (a) 加密 (b) 解密 移位寄存器 64-j位 | j位 DES加密 选择 | 丢弃 j位 | 64-j位 K 选择 | 丢弃 j位 | 64-j位 + P1 C1 IV P2 C2 · · · PM CM (a) 加密 (b) 解密 OM-1
密码模式 模式 描述 典型应用 电子密码本 (ECB) 用相同的密钥分别对明文块加密 ·单个数据的安全传输 (如一个加密密钥) 密文块链接 (CBC) 加密算法的输入是上一个密文块和下一个明文块的异或 ·普通目的的面向分组的传输 ·认证 ·文件加密 密文反馈 (CFB) 一次处理J位,上一块密文作为加密算法的输入,用产生一个伪随机数输出与明文异或作为下一块的输入(J=8) 输出反馈 (OFB) 与CFB基本相同,只是加密算法的输入是上一次DES的输出 ·噪声频道上的数据流的传输(如卫星通讯)
单向函数 h=H(m),m为任意长消息,h为固定长度。 性质: 1. mh; 2. hm很困难; 3. 给定m,很难找出另一个m’,使得H(m’)=H(m)。 h称为数字指纹,消息摘要,数字摘要。
MD5 Message Digest 5 512bit=1632bit( M0~M15)MD5128bit=432bit(A,B,C,D) 填充:L(m)+padding+64bit=512K padding=10…0 message-len(64bit) A,B,C,D初始值;
安全哈希函数 SHA Secure Hash Algorithm 512bit=1632bit - M0~M15SHA160bit=532bit- A,B,C,D,E 1. 填充,与MD5一样; 2. 消息块从M0-M15扩展到W0-W79: Wt=mt t[0,15] Wt=(Wt-3 Wt-8 Wt-14 Wt-16)《〈1,t[16,79]
SHA 3. 非线性函数:三个 ft(x,y,z)=(XY ) (XZ) , t[0,15] ft(x,y,z)= XYZ, t[20,39], t[60,79] ft(x,y,z)=(XZ ) (ZY) (XY), t[40,59] 4. 四个常数: x0=232/4 Kt=x0 ^(1/2), =2,3,5,10. 5. 五个初始变量:A,B,C,D,E 6. 4圈,每圈20次操作,共80个操作。
7.4 公钥数字签名 DSA
7.5 身份认证 kerberos协议
7.5.1口令 用户的口令以口令表的形式存储。
7.6 密钥长度 对称密码体制的密钥长度 穷举攻击:如果密钥长n位,则有2n种可能的密钥 悲观地看,至少应使用112位密钥。 其他方法: 使用网络的空闲时间 使用攻击病毒
公开密钥密码体制的密钥长度 密钥长度的确定取决于因数分解的时间 两种密码体制密钥长度的对比 关于密钥长度的讨论: 所保存信息的价值 信息保密的时间 信息的攻击者及其使用的设备和资源情况
7.2 密钥管理 密钥生成 密钥空间 密钥选择方式 密钥的随机性 通行短语 X9.17密钥生成协议
密钥传送 两类密钥: 密钥加密密钥:KEK 数据加密密钥:DK 把密钥分成几个不同的部分,通过不同的信道(方式)发送密钥的各部分 密钥验证 验证密钥本身的特征:数字签名,KDC,电话验证 其他: 密钥传输期间错误的检测 解密期间密钥错误的检测
密钥使用 会期密钥: 控制向量CV 密钥更新: 从旧密钥生成一个新密钥 使用一个单向哈希函数 密钥存储:记忆、磁卡、ROM密钥、智能卡 密钥备份 使用秘密共享协议 使用智能卡暂存密钥
密钥的生存期 会期密钥:每天更换一次 KEK:数月或一年 存储文件的加密密钥:不常更换 至少每两年更换一次 密钥的废止 纸上:烧掉或撕碎 EPROM或PROM:芯片粉碎到最碎的程度扔掉 硬盘:将存储密钥的实际位多次重写,或将磁盘粉碎 公开密钥密码系统的密钥管理 公钥证书 分布式密钥管理
公钥体制的密钥管理 PKI, Public Key Infrastructure KMI, Key Management Infrastructure CA, Certificate Authority RA, Registration Authority CRL, Certificate Revocation List LDAP, lightweight Directory Access protocol OCSP, One line certificate status protocol