针对加密系统的密码分析攻击 口惟密文攻击: o密码分析者知道算法,但仅能根据截获的密文进行分 析,以得出明文或密钥 口已知明文攻击: o密码分析者除了有截获的密文外,还有一些已知的"明 文-密文对"来帮助破译密码,以得出密钥 口选择明文攻击: o密码分析者可以任意选择一定数量的明文,让被攻击 的加密算法加密,得到相应的密文,以利于将来更有 效地破解由同样加密算法及相关密钥加密的信息 个安全的加密系统必须能抵御选择明文攻击 8: Network Security 8-16
针对加密系统的密码分析攻击 惟密文攻击: 密码分析者知道算法,但仅能根据截获的密文进行分 析,以得出明文或密钥 已知明文攻击: 密码分析者除了有截获的密文外,还有一些已知的“明 文-密文对”来帮助破译密码,以得出密钥 选择明文攻击: 密码分析者可以任意选择一定数量的明文,让被攻击 的加密算法加密,得到相应的密文,以利于将来更有 效地破解由同样加密算法及相关密钥加密的信息。 一个安全的加密系统必须能抵御选择明文攻击 8: Network Security 8-16
现代密码学:对称密钥算法 DES: Data Encryption Standard 1997年成为美国的数据加密标准 口DES是一种块加密算法,每次以64比特的明文块作为输 入,输出64比特的密文块 DES是基于迭代的算法,每一轮迭代执行相同的替换和换 位操作,但使用不同的密钥 DES使用一个56比特的主密钥,每一轮迭代使用的子密 钥(48比特)由主密钥产生 DEs是一种对称加密算法,加密和解密使用相同的函数 ,两者的不同只是子密钥的次序刚好相反 口缺点:密钥长度不够长,迭代次数不够多 8: Network Security 8-17
8: Network Security 8-17 现代密码学:对称密钥算法 DES: Data Encryption Standard 1997年成为美国的数据加密标准 DES是一种块加密算法,每次以64比特的明文块作为输 入,输出64比特的密文块 DES是基于迭代的算法,每一轮迭代执行相同的替换和换 位操作,但使用不同的密钥 DES使用一个56比特的主密钥,每一轮迭代使用的子密 钥(48比特)由主密钥产生 DES是一种对称加密算法,加密和解密使用相同的函数 ,两者的不同只是子密钥的次序刚好相反 缺点:密钥长度不够长,迭代次数不够多
64-bit input 56bit ke DES的计算过程 permute L1 RI 口首先进行一次初始换位 48-bit KI fILL, RI, KD permute) 2R2 然后进行16轮相同的 48-bit K2 F(L2, R2, K2)D) 迭代,每轮迭代使用 个不同的子密钥(由主 R3 密钥生成) 口最后再进行一次换位( 48-bit K16 与初始换位相反) t17R17 ermu:e 64-bit cutput 8: Network Security 8-18
8: Network Security 8-18 DES的计算过程 首先进行一次初始换位 (permute) 然后进行16轮相同的 迭代,每轮迭代使用一 个不同的子密钥(由主 密钥生成) 最后再进行一次换位( 与初始换位相反)
Triple des (3DeS 3DES使用两个密钥进行三轮DES计算: 第一轮令DES设备工作于加密模式,使用密钥K对明文 进行变换 ○第二轮令DES设备工作于解码模式,使用密钥K2对第 轮的输出进行变换 第三轮令DES设备工作于加密模式,用密钥K1对第二轮 的输出进行变换,输出密文
Triple DES(3DES) 3DES使用两个密钥进行三轮DES计算: 第一轮令DES设备工作于加密模式,使用密钥K1对明文 进行变换 第二轮令DES设备工作于解码模式,使用密钥K2对第一 轮的输出进行变换 第三轮令DES设备工作于加密模式,用密钥K1对第二轮 的输出进行变换,输出密文
有关3DES的三个问题 T为什么使用两个密钥而不是三个密钥? o112比特的密钥已经足够长 为什么不使用两重DES(EE模式)而是三重DES? o考虑采用EE模式的两重DS,且攻击者已经拥有了一个匹配 的明文-密文对(P1,C1),即有C1=Ek2(Ek1(P1)) o令X=EK1(P)=Dk2(C1)。攻击者分别计算Fk1(P1)和Dk2(C1), 并寻找使它们相等的K1和K2,则穷尽整个密钥空间只需25的 攻击量而不是212(中途攻击) 为什么是EDE而不是EEE? o为了与单次DES兼容。3DES用户解密单次DES用户加密的数 据,只需令K1=K2就行了
有关3DES的三个问题 为什么使用两个密钥而不是三个密钥? 112比特的密钥已经足够长 为什么不使用两重DES(EE模式)而是三重DES? 考虑采用EE模式的两重DES,且攻击者已经拥有了一个匹配 的明文--密文对(P1 , C1),即有C1=EK2 (EK1 (P1 ) ) 令X=EK1(P1 )=DK2(C1 )。攻击者分别计算EK1(P1 )和DK2(C1 ), 并寻找使它们相等的K1和K2,则穷尽整个密钥空间只需2 56的 攻击量而不是2 112。(中途攻击) 为什么是EDE而不是EEE? 为了与单次DES兼容。3DES用户解密单次DES用户加密的数 据,只需令K1=K2就行了