很遗憾,NIST网站已关闭,因此我可以无法获得有关批准流程的更多信息,所以我希望这里的人会更详细。
谁决定这张表中的数字,什么决定每个数字
算法?即可以描述确切的分析过程吗?
谁创建了那个过程? NIST中的人们或由政府,行业和公共密码学家等分的群体?
“设计特征”中包含什么?即那些重要的功能是什么?
本来可以使用基准进行“性能”分析,但是“实施难度”听起来很主观。如何量化?
可以对表格中的数字进行调整以使结果偏向特定算法吗?并且没有偏见或隐藏议程的公平过程,在我看来,这个表格或排名系统仍然缺少“加权”标准。所有类别似乎都具有相同的重要性。也就是说,“智能卡性能”与“常规安全性”同等重要。看来不正确。我认为安全是最重要的,因此相对于其他标准,安全性应具有更高的权重。一个很好的报价是:
安全性以牺牲可用性为代价,安全性以牺牲安全性为代价。
我不知道如果我对安全性使用了较高的加权因子,而其他方面则保持不变。例如:
现在,蛇首位与Rijndael相等,Twofish紧随其后。有趣。
如果我正在开发软件产品该怎么办,我不在乎硬件性能或智能卡性能,因此我可以在决定中完全排除这两者。该表可能如下所示:
现在,Twofish是赢家,Rijndael与Serpent和MARS并列第二。 MARS的可变密钥大小最多为448位,甚至可能更具吸引力。密码去和这个评级标准。可能存在更精确的数学方法来应用加权因子。如果我要修改项目的安全性,并担心NSA参与削弱加密标准,那么我可以重新加权一些标准和优先级,以适合项目的特定目标。我可能会决定使用与Rijndael不同的算法。早在2000年,Rijndael可能适合美国政府的目的和计划的监视议程,但不适合我的项目。我会将其与选择算法进行比较,就像TrueCrypt可以为您提供3种不同算法之间进行选择的选项一样。那是一个合理的电话吗?
#1 楼
在比赛时(我可以谈论它,当时我在场),进行了很多讨论,各种人都在争论。但是,从来没有一个官方的,公开的“分数板”,它带有总数和明确的规则,因为您所显示的图片似乎是伪造的。 NIST员工可能在内部做了类似的事情,但他们肯定没有发布。从外部来看,NIST是通过“某种方式”做出选择的,然后他们提供了定性原因,而不是真正的定量原因。 NIST从来没有严格遵守以下规则:他们想保持对整个程序的控制权。图片仍然传达了选择Rijndael的主要原因:
它的表现无可厚非。它并不是每个平台上性能最高的,但是没有一个平台会比其他任何候选人都慢很多。一些工作。例如,RC6需要一个乘法器,这在ASIC / FPGA上很难实现(转换为:它占用了大量的硅空间)。 MARS非常复杂(许多转换堆积在一起),实现者报告说,他们花了相当多的时间来提出有效的实现,更不用说优化的实现了。 Twofish使用依赖于密钥的S盒,它们需要RAM(对智能卡不利,对ASIC / FPGA不利)。 Rijndael的实现非常简单(回想起来,Serpent对此更胜一筹,特别是如果您想在不使用查找表的情况下实现该算法)。
在圆桌会议期间,开会的密码学家会讨论这个问题。 AES候选人,进行了一些非正式调查,人们可以在其中给候选人“分数”。尽管Rijndael不一定能从所有人那里获得最好的成绩,但没人真正讨厌它,因此它可以作为将来的标准。
当然,所有这些都取决于使用上下文的相当任意的假设。 NIST希望有一种适用于各种硬件平台的通用分组密码。如果您针对特定的系统(例如,在您的PC上进行磁盘加密),则这可能指向另一种算法;例如,RC6在PC上比Rijndael快(当然,除非该PC提供AES-NI指令)。
AES竞争的真正好处不是它出现了具有良好,强大的算法;重要的是,几乎所有候选人都表现出色。在15名候选人中,只有两名被“打破”,然后只是以学术的方式。我们对AES的信任来自于此:AES竞争证明,我们显然知道如何设计其他人都不知道如何破解的算法(这与对称密码学差不多)。
评论
$ \ begingroup $
显然,在AES标准化之前,不存在AES-NI指令,尽管它对性能有很大帮助。
$ \ endgroup $
–托马斯
13-10-17在22:51
$ \ begingroup $
如果他们知道无论选择哪种原语,它将在大多数CPU中得到本机实现,没有什么不同,Rijndael仍然会赢。虽然这是将来通话的有趣考虑。
$ \ endgroup $
– Mark Jeronimus
14-10-21在20:54
$ \ begingroup $
实际上,人们普遍认为,选择“ AES”的任何算法都可以由CPU供应商在硬件中实现(Rijndael是采用这种方法的最简单算法之一,但想法是无论如何都会实现硬件) 。令人惊讶的是花了十年的时间。大多数人认为它会更快。
$ \ endgroup $
–托马斯·波宁(Thomas Pornin)
16年7月20日在14:30
$ \ begingroup $
我最近在比赛中与某人交谈,他们留下的唯一评论是“在硬件方面,我看着MARS,尽管'OMG,但没有'。”这让我有点笑。它只表明您对硅片有一点爱。
$ \ endgroup $
–b degnan
20年6月29日在17:02
评论
我希望通过实施困难,他们确实意味着易于实施。...这些幻灯片中的所有数字都是作为示例构成的,请勿使用它们来比较实际密码。例如,当时RC6在软件方面比Rijndael快50%,在硬件上快26%。
@Richie您怎么知道它们是由幻灯片组成的?无论如何,我一直试图找出它们用来确定每种算法的整体排名的确切过程和分析。这对于确定是否合理完成至关重要。我猜想AES标准的设计更多地是一种“适合所有人的算法”方法,同时又牺牲了一些安全性。但是,特定的开发人员应该能够看到完整的分析,甚至可以对其进行调整以删除对他们不重要的条件。在这种情况下,他们可能会得到与Rijndael不同的算法,这会更好。
我已经阅读了最后一轮AES报告。 Rijndael之所以获奖,是因为其在各种平台上的总体平衡性能和实现成本,较小的代码量以及无需表查找即可即时使用sbox的能力以及“足够的”安全裕度。到目前为止,Twofish(具有大钥匙)和Serpent的安全性最高。通常,Serpent和Rijndael的整体硬件性能最佳。 Rijndael和RC6的整体软件性能最佳。
如果您想完全避免在没有专门说明的情况下对副通道进行计时,那么Rijndael实际上很难在软件中实现。