抵御旁道攻击 。密码算法的实现必须能够抵御侧信道攻击side channe/ attacks(SCA) ●SCA探测实现环境的漏洞 口计时攻击:攻击者分析特定运算的计算时间 如果当密钥具有不同的bt值时,特定运算的运算时间变化,则 计时攻击有效 。抵御计时攻击: 口通过在执行指令时假如冗余运算来平滑计算时间的区别 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 16
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 16 抵御旁道攻击 密码算法的实现必须能够抵御侧信道攻击side channel attacks (SCA) SCA 探测实现环境的漏洞 计时攻击: 攻击者分析特定运算的计算时间 如果当密钥具有不同的bit值时,特定运算的运算时间变化,则 计时攻击有效 抵御计时攻击: 通过在执行指令时假如冗余运算来平滑计算时间的区别
第2章内容概要 。2.1数据加密算法设计标准 ● 2.2数据加密标准DES ●2.3多重DES ●2.4高级加密标准AES ●2.5标准分组密码运算 ●2.6流密码 。2.7密钥生成 《计算机网络安全的理论与实践(第2版)》.【美】王杰,高等教育出版社,2011年. 17
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 17 第2章 内容概要 2.1 数据加密算法设计标准 2.2 数据加密标准DES 2.3 多重DES 2.4 高级加密标准AES 2.5 标准分组密码运算 2.6 流密码 2.7 密钥生成
数据加密标准(DES) 美国国家标准化局(NBS)于1977年公布 ·是Feistel密码体系(FCS,由Horst Feistel发明)的一个具体的实现 ·对称的加密和解密结构 ·使用四个基本运算:异或,置换,替换和循环位移 从70年代中期到2000年早期被广泛使用 。逐步被AES和其他更好的算法所取代 《计算机网络安全的理论与实践(第2版)》:【美】王杰,高等教育出版社,2011年. 18
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 18 美国国家标准化局(NBS)于1977年公布 是Feistel 密码体系(FCS,由Horst Feistel发明)的一个具体的实现 对称的加密和解密结构 使用四个基本运算: 异或, 置换, 替换和循环位移 从70年代中期到2000年早期被广泛使用 逐步被AES 和其他更好的算法所取代 数据加密标准(DES)
Feistel密码体系(FCS) 将M分成21-bits长的分组(必要时需要对最后一个分组填 充) ·仅使用异或和替换运算 ● 从密钥K中生成n个固定长度子密钥:K1,…,K, 将一个2-bit的输入分组分为两个部分:L0和R,长度均为1 (分别表示分组的前缀和后缀) ● 对一个1-bit的输入串执行一个替换函数F和一个子密钥得 到一个-bit的输出 加密和解密均执行n轮相同的序列的运算 《计算机网络安全的理论与实践(第2版)》·【美】王杰,高等教育出版社,2011年. 19
《计算机网络安全的理论与实践(第2版)》. 【美】王杰, 高等教育出版社, 2011年. 19 Feistel 密码体系(FCS) 将M 分成2l-bits长的分组 (必要时需要对最后一个分组填 充) 仅使用异或和替换运算 从密钥K中生成n个固定长度子密钥: K1 ,…,Kn 将一个2l-bit 的输入分组分为两个部分: L0 和 R0 , 长度均为l (分别表示分组的前缀和后缀) 对一个l-bit的输入串执行一个替换函数F 和一个子密钥得 到一个l-bit的输出 加密和解密均执行n轮相同的序列的运算
Feistel密码结构 Feistel结构的具体实现依赖于以下参数和特征。 分组长度:分组长度越长意味着安全性越高(其他数据不变) 但是会降低加密和解密的速度。这种安全性的增加来自更好的扩 散性。传统上,64位的分组长度比较合理,在分组密码设计里很 常用。然而,高级加密标准使用的是128位的分组长度。 密钥长度:密钥长度较长同样意味着安全性较高,但会降低加密 和解密的速度。这种安全性的增加来自更好的抗穷尽攻击能力和 更好的混淆性。现在一般认为64位的密钥还不够,通常使用的密 钥长度是128位。 ■迭代轮数:Feistel密码的本质在于单轮不能提供足够的安全性,而 多轮加密可取得很高的安全性。迭代轮数的典型值是16。 ■子密钥产生算法:子密钥产生越复杂,密码分析攻击就越困难。 ■轮函数:轮函数越复杂,抗攻击能力就越强
Feistel结构的具体实现依赖于以下参数和特征。 分组长度:分组长度越长意味着安全性越高(其他数据不变), 但是会降低加密和解密的速度。这种安全性的增加来自更好的扩 散性。传统上,64位的分组长度比较合理,在分组密码设计里很 常用。然而,高级加密标准使用的是128位的分组长度。 密钥长度:密钥长度较长同样意味着安全性较高,但会降低加密 和解密的速度。这种安全性的增加来自更好的抗穷尽攻击能力和 更好的混淆性。现在一般认为64位的密钥还不够,通常使用的密 钥长度是128位。 迭代轮数:Feistel密码的本质在于单轮不能提供足够的安全性,而 多轮加密可取得很高的安全性。迭代轮数的典型值是16。 子密钥产生算法:子密钥产生越复杂,密码分析攻击就越困难。 轮函数:轮函数越复杂,抗攻击能力就越强。 Feistel密码结构