从以下五个方面阐述分组密码的评估要素。
1.安全性
安全性是评估分组密码应考虑的首要问题。分组密码的安全性评估含可证明安全性、抵抗现有攻击的能力与实际安全性。可证明安全性有两种:一种是对某些特定分析方法的安全性证明;另一种是在假定某些关键模块式“理想”的情况下,评估分组密码结构的安全性。
分组密码安全性评估的第2个层次是研究算法抵抗现有攻击的能力,这是目前评估分组密码安全性的主要手段。算法应可以很不错地抵抗已有的全部分析方法。
分组密码的实际安全性涉及它的实现方式、应用环境等因素,应结合具体的环境评估。
另外,应评估分组密码的变形。比如,改变或删除分组密码的一个模块,降低迭代的轮数等。对变形分组密码的分析可间接地得到原算法的某些结论。通常用迭代结构,一般而言,攻击整个r轮分组密码是特别困难的。减少分组密码的选代轮数,用某种分析方法攻击分组密码的低轮变形,攻击结果可部分体现出该分组密码抵抗此种分析方法的能力。对一个r轮的迭代分组密码E,如果目前最多可以破译(r-t)论的低轮变形,就称该密码有t轮的绝对安全边界,或者说它有r/(r-t)的安全冗余度。对已有的大多数攻击方法,攻击复杂度是由轮数的增加呈指数上升。更透彻地分析一个分组密码,一般可攻击到更多轮数的低轮变形,而相应的安全冗余度也随着降低,体现了该分组密码抵抗已有攻击的能力,及分组密码的安全性依据时间、分析的深度和力度变化。
2.统计检测
分析统计检测的结果,是为了了解算法的密码学特性有没有明显的不正常现象。除之前介绍的对分组密码的密文随机性、明密文独立性等,对分组密码关键模块的密码性能也需做一系列的检测。如:S盒的检测、扩散层的检测、轮函数的检测、密钥扩展算法的测试。
3.性能
评估分组密码在不同平台上的实现速度与适应性。算法实现速度包括加(解)密速度与密钥扩展算法运算速度。在ECB模式下,用固定密钥分别测试加密与解密的运算速度(单位:Mb/s),包括数据输入,密码运算和结果输出过程。在ECB模式下,用不同密钥测试密钥扩展算法运算速度(单位:次/秒)。测试结果应明确标明CPU类型及主频、内存数量大小、操作系统类型、实现语言类型、编译器、编译选项等参数。
适应性评估是考察算法在不同平台的综合性能,如用8051汇编语言编程实现,分别测试算法程序占用程序空间、内部与外部存储空间的大小;在12MHz工作主频下,分别测试算法在ECB工作模式下加、解密的运算速度(单位:Mb/s),包括数据输入、密钥扩展、密码运算与结果输出全过程。
4.设计特点
分组密码的简洁性对安全实现及公众的评估比较重要,设计应简单、便于理解与使用。是否拥有合理的数学背景,对子模块的安全及性能的评价,及在整个算法中的作用等。灵活性是分组密码评估的一个方面,算法应支持多种密钥规模与分组长度,并不影响在常用平台和应用环境的性能及安全性。
5.和公开分组密码的比较
对新设计的分组密码的评估应包括和相关流行分组密码的比较,比较应基于同样的平台和应用环境。