第三章分组密码:3.1分组密码概述 3.1.2分组密码算法的设计要求 ② 密钥量要足够大 即代换子集中的元素足够多,因为代换的区别主要是密钥不同, 攻击者无法穷搜索所有可能代换 尽可能消除弱密钥并使所有密钥同等地好,以防止密钥穷举攻击 奏效。但密钥又不能过长,以便于密钥的管理。 DES采用56比特密钥,太短 据估计,在今后3040年内采用80比特密钥是足够安全的 ③由密钥确定置换的算法要足够复杂,充分实现明文与 密钥的扩散和混淆,没有简单的关系可循,能抗击各种已 知的攻击 如差分攻击和线性攻击 有高的非线性阶数,实现复杂的密码变换 使对手破译时除了用穷举法外,无其它捷径可循 历些毛子代枝大学 12/
3.1.2 分组密码算法的设计要求 ② 密钥量要足够大 ⚫ 即代换子集中的元素足够多,因为代换的区别主要是密钥不同, 攻击者无法穷搜索所有可能代换 ⚫ 尽可能消除弱密钥并使所有密钥同等地好,以防止密钥穷举攻击 奏效。但密钥又不能过长,以便于密钥的管理。 ⚫ DES采用56比特密钥,太短 ⚫ 据估计,在今后30~40年内采用80比特密钥是足够安全的 ③ 由密钥确定置换的算法要足够复杂,充分实现明文与 密钥的扩散和混淆,没有简单的关系可循,能抗击各种已 知的攻击 ⚫ 如差分攻击和线性攻击 ⚫ 有高的非线性阶数,实现复杂的密码变换 ⚫ 使对手破译时除了用穷举法外,无其它捷径可循 12/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.2分组密码算法的设计要求 ④加密和解密运算简单,易于软件和硬件高速实现 使用子块和简单的运算 如将分组n划分为子段,每段长为8、16或者32 ·在软件实现时,应选用简单的运算,使作用于子段上的密码运 算易于以标准处理器的基本运算,如加、乘、移位等实现,避 免用软件难于实现的逐比特置换 。加解密算法应具有相似性 ·为了便于硬件实现,加密和解密过程之间的差别应仅在于由秘 密密钥所生成的密钥表不同而已。这样,加密和解密就可用同 一器件实现。 。设计的算法采用规则的模块结构,如多轮迭代等,以便于软件和 VLSI快速实现 历些毛子代枝大学 13/
3.1.2 分组密码算法的设计要求 ④ 加密和解密运算简单,易于软件和硬件高速实现 ⚫ 使用子块和简单的运算 ⚫ 如将分组n划分为子段,每段长为8、16或者32 ⚫ 在软件实现时,应选用简单的运算,使作用于子段上的密码运 算易于以标准处理器的基本运算,如加、乘、移位等实现,避 免用软件难于实现的逐比特置换 ⚫ 加解密算法应具有相似性 ⚫ 为了便于硬件实现,加密和解密过程之间的差别应仅在于由秘 密密钥所生成的密钥表不同而已。这样,加密和解密就可用同 一器件实现。 ⚫ 设计的算法采用规则的模块结构,如多轮迭代等,以便于软件和 VLSI快速实现 13/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.2分组密码算法的设计要求 ⑤数据扩展 用于加解密时,一般无数据扩展 ⑥差错传播尽可能地小 ·1比特的传输错误不会影响更多比特的正确解密 9⑦透明性和灵活性 透明性即要求算法是可证明安全的(虽然这是很困难的)。这就 要求算法尽可能使用通用部件,避免黑盒 灵活性即要求算法的实现可以适应多种计算环境;明文分组长度 可以伸缩;算法可以移植和变形 9} 要实现上述几点要求并不容易 。首先,要在理论上研究有效而可靠的设计方法 而后进行严格的安全性检验,并且要易于实现 历粤毛子代枝大 14/
3.1.2 分组密码算法的设计要求 ⑤ 数据扩展 ⚫ 用于加解密时,一般无数据扩展 ⑥ 差错传播尽可能地小 ⚫ 1比特的传输错误不会影响更多比特的正确解密 ⑦透明性和灵活性 ⚫ 透明性即要求算法是可证明安全的(虽然这是很困难的)。这就 要求算法尽可能使用通用部件,避免黑盒 ⚫ 灵活性即要求算法的实现可以适应多种计算环境;明文分组长度 可以伸缩;算法可以移植和变形 要实现上述几点要求并不容易 ⚫ 首先,要在理论上研究有效而可靠的设计方法 ⚫ 而后进行严格的安全性检验,并且要易于实现 14/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.3扩散和混淆没计准则 扩散和混淆(diffusion and confusion)是由Shannon:提出的设计密码 系统的两个基本准则,目的是抗击敌手对密码系统的统计分析 如果敌手知道明文的某些统计特性(如消息中不同字母出现的频 率、可能出现的特定单词或短语)而且这些统计特性以某种方式 在密文中反映出来,那么敌手就有可能得出加密密钥或其一部分, 或者得出包含加密密钥的一个可能的密钥集合 扩散性:所设计的密码应使得 ()密钥的每一个比特影响密文的每一个比特,以防止对密钥进行 逐段破译; ,(2)明文的每一个比特影响密文的每一个比特,以便最充分地隐蔽 明文。即将明文的统计特性散布到密文中去,从而使明文和密文 之间的统计关系变得尽可能复杂 历粤鼋子代枝大学 15/
3.1.3 扩散和混淆设计准则 扩散和混淆(diffusion and confusion)是由Shannon提出的设计密码 系统的两个基本准则,目的是抗击敌手对密码系统的统计分析 ⚫ 如果敌手知道明文的某些统计特性(如消息中不同字母出现的频 率、可能出现的特定单词或短语)而且这些统计特性以某种方式 在密文中反映出来,那么敌手就有可能得出加密密钥或其一部分, 或者得出包含加密密钥的一个可能的密钥集合 扩散性:所设计的密码应使得 ⚫ (1) 密钥的每一个比特影响密文的每一个比特,以防止对密钥进行 逐段破译; ⚫ (2) 明文的每一个比特影响密文的每一个比特,以便最充分地隐蔽 明文。即将明文的统计特性散布到密文中去,从而使明文和密文 之间的统计关系变得尽可能复杂 15/ 第三章 分组密码:3.1 分组密码概述
第三章分组密码:3.1分组密码概述 3.1.3扩散和混淆设计准则 扩散性也可以理解为 明文、密文密钥的每一位都相互依赖 雪崩性:即当改变明文的任何一个比特时,对应密文改变的比特 的个数是一个随机变量; 。在二元分组密码中,可对数据重复执行某个置换,再对这 一置换作用于一函数(代换),可获得扩散。(置换+代换) 混淆性: 是使密文和密钥之间的统计关系变得尽可能复杂,以使敌手无法 得到密钥。 即使敌手能得到密文的一些统计关系,由于密钥和密文之间的 统计关系复杂化,敌手也无法得到密钥。 ·使用复杂的代换算法可以得到预期的混淆效果 。简单的线性代换函数得到的混淆效果则不够理想 历些名子代枚大学 16/
3.1.3 扩散和混淆设计准则 扩散性也可以理解为 ⚫ 明文、密文、密钥的每一位都相互依赖 ⚫ 雪崩性:即当改变明文的任何一个比特时,对应密文改变的比特 的个数是一个随机变量; 在二元分组密码中,可对数据重复执行某个置换,再对这 一置换作用于一函数(代换),可获得扩散。(置换+代换) 混淆性: ⚫ 是使密文和密钥之间的统计关系变得尽可能复杂,以使敌手无法 得到密钥。 ⚫ 即使敌手能得到密文的一些统计关系,由于密钥和密文之间的 统计关系复杂化,敌手也无法得到密钥。 ⚫ 使用复杂的代换算法可以得到预期的混淆效果 ⚫ 简单的线性代换函数得到的混淆效果则不够理想 16/ 第三章 分组密码:3.1 分组密码概述