请以某种方式解释我能理解的内容!我不是专家。
#1 楼
我们无法实现“ AES 512密钥大小”,因为AES仅针对密钥大小$ k \ in \ {128,192,256 \} $位¹定义;从定义上说,就像我们不能制造出带有3个轮子的自行车。除了对安全性要求极高的应用程序之外,对于大多数当前可预见的应用程序而言,它都具有足够的安全性;对于最苛刻的应用程序而言,AES-192绰绰有余,而对于过度苛刻的应用程序而言,AES-256则绰绰有余。但是,我们可以定义512位密钥大小的AES变体。如果我们坚持使用128位块大小,则我们必须做出两个选择:我们应该使用几轮;由于标准AES中的回合数为$ r = k / 32 + 6 $,因此即使$ r = 14 $也是如此(对于性能和与AES-256相当的子密钥空间,以抵抗相关密钥攻击为代价低于AES-256)到$ r = 24 $(作为偏执狂阻尼器)似乎是合理的。
我们将如何生成形成$(r + 1)$的$ 4(r + 1)$ 32位字512位密钥中有128位舍入子密钥。与标准AES类似,前16个这样的单词应该在密钥的右边。我不会再冒险了。作者)提出了一种512位密钥和块大小的AES变体,最好概括为:AES-128具有$ 8 ^ 2 $个字节,而原始文件具有$ 4 ^ 2 $,这种想法至少可以使之起作用。但是,“纸张”存在明显的问题:
“纸张”是AES-256(使用14轮)的“缺点”,即9轮变体易受攻击。 $ 2 ^ {224} $的相关密钥攻击有效;但它引入了10轮AES变体,丝毫没有理由说它将抵抗类似的攻击。<br />目的是“更高级别的安全吞吐量”,而无需尝试定义;并这样做“与原始的128位AES相比,不会增加总体设计面积”,而对于密钥和数据。
字节替换步骤的图形清楚地显示了一个4x4的字节网格,其中包含“ 64个字节的数组”。
在“移位行”步骤中存在相同的问题(应理解为ShiftRows),并且图形变得混乱,因为带有$ s_3 $的行向右旋转了1步,而意图是向左旋转了3步。步骤(称为MixColumns)是可逆的,这对于解密是必需的,仅通过转储MixColumns中使用的多项式的所谓逆而不推导来暗示。
仔细检查,给出的矩阵根据实际AES中使用的约定,对于MixColumns,它不对应于针对MixColumns所陈述的多项式;而且根据任何约定,所谓的逆多项式也不能匹配,因为它包含太多项与$ \ {01 \} $相乘,因此使用它进行的解密将不起作用。我猜想,这个可能是逆多项式的四个偶数项只是取自用于AES InvMixColumns的多项式(在一个反射中);并将其他项设置为$ \ {01 \} $,因为直接多项式中有很多这样的项。
将512位AES变体的回合数设置为10,唯一的理由是是“十个AES倒数”,而没有涉及适用的三个AES密码中的哪一个。
倒数索引是可变的$ I $或$ i $,包括相同的方程式。
第一轮常量可能有错字。
但是没有测试向量可以解决该问题。
将性能与AES-128(在未指定平台上以“ 30-50秒”加密“ 128字节”)进行比较。 (如果忽略寄生资本S的话)比使用AES-NI的现代CPU的单核常规实现的速度慢约2 ^ {26} $倍。
512位AES变体表示为加密在“ 20-40秒”中具有相同的“ 128字节”,但吞吐量为“ 230%”;
指出,“要求的处理器”比常规AES的“少”,没有试图评估每个字节加密的操作或内存访问的数量;实际上,对于所有步骤,除了MixColumns之外,这与AES-128几乎相同,MixColumns的每个字节的工作量明显更多(两倍的列,每个列都需要乘以具有两倍原始和两倍列的矩阵相乘,因此4倍字节的工作量增加了8倍,因此每字节工作量增加了约2倍;诚然,矩阵中保存$ \ {01 \} $的条目的比例更高,但这只会部分减少工作量的增加)。
论文集被拼写为“程序的”。 )是关于AES-512的其他论文,但在“现有工作”部分中没有提及。
引文[1]是2010年的一篇论文,与2014年的论文本身极为相似,包括几乎相同的标题(“实施”而非“实施”),还有其他作者(甚至更多的错误和空缺)。
引文[11]已发布在IAS 2011会议的议事记录中,与IEEE的联系足以出现在其网站上并使用其徽标(请注意,此IAS代表信息保证和安全,而不是IEEE的行业应用协会)。对此在线版本的浏览显示,它与2014年的文章极为相似(包括相同的错误多项式,第一轮常量的错字和230%的改进),作者不同。我将这份2011年的论文评为差(特别是在安全性和基准误导性方面),但是在这三篇论文中最不令人反感的是。
该论文发表在“同行评审”期刊上,该期刊最严肃的说法是它曾经是“ ISO 3297:2007认证组织” ”。粗略浏览该标准的摘要表明,该标准与出版物编号有关,而不是对其内容的审阅。现在,该期刊的影响因子为6.577;
¹引用FIPS 197:
该标准指定了Rijndael²算法一种对称的块密码,可以使用长度为128、192和256位的密码密钥处理128位的数据块。
²Rijndael块密码具有相同的256-位密钥限制:
块长度和密钥长度可以独立地指定为32位的任意倍数,最小为128位,最大为256位。 />
³大多数情况下,256位密钥都是安全的,包括可用于密码分析的假设量子计算机。如果我们还需要256位块,则Rijndael允许。
评论
$ \ begingroup $
您发现的纸是空虚的,以至于变得有趣。对“ ISO 3297:2007认证组织”的引用应充当蛇油警告,因为该标准仅定义了出版物的编号。
$ \ endgroup $
–fgrieu♦
2014年11月14日18:20
$ \ begingroup $
可疑的是,它看起来像是早期的蛇油论文之一……组织相同。给我买纸?
$ \ endgroup $
–马腾·博德威斯♦
2014年11月15日在2:47
$ \ begingroup $
“因为AES-128对于任何可预见的事物都足够安全” ...除非加密系统足够频繁地重新设置密钥以防止密钥空间中的冲突成为问题,否则除外。
$ \ endgroup $
–亨里克·赫尔斯特伦
2014年11月15日上午8:25
$ \ begingroup $
我已经编辑了答案,以降低对AES-128安全性的欣赏。不过,如果我们每30毫秒每秒钟重新密钥一次AES-128,那将少于$ 2 ^ {40} $个密钥,并且两次敲击同一密钥的几率小于$ 2 ^ {-49} $,这是可以接受的风险。但是,如果每个密钥都加密了相同的已知明文(如在CTR模式下使用零而不是随机IV),则使用$ 2 ^ {80} $加密查找其中一个密钥并搜索16TB数据的几率是$ 2 ^ { -7} $,有点令人担忧。
$ \ endgroup $
–fgrieu♦
2014年11月15日11:44
$ \ begingroup $
请记住,有数十亿个同时使用AES且使用不同密钥的设备,并且每年都在增长
$ \ endgroup $
– Richie车架
2014年11月17日下午2:53
#2 楼
如@fgrieu的回答中所述,AES是仅针对密钥大小128、192和256定义的标准(高级加密标准)。实际的基础加密算法称为Rijndael。在其设计时(90年代后期),认为256位的密钥大小具有足够大的安全裕度,而较大的密钥大小会增加计算复杂性而又不提供太多额外的安全性。转换为64位架构后,计算更大块大小的开销不再那么重要,并且一些现代密码引入了512位块。例如,被选为乌克兰国家加密标准的密码Kalyna基于Rijndael,并具有512位密钥大小的模式。评论
$ \ begingroup $
更大的块大小的好处是否可能是更高的速度?如果从安全角度考虑过大,SHA-512在处理较大消息时速度更快。
$ \ endgroup $
–尼克T
19年8月1日在17:02
#3 楼
实际上,这是不常见的,因为当NIST选择AES候选者时,它们将块大小限制为128位,而密钥限制为128、192或256位。对我来说,这种限制是纯人工的,是为了建立某种标准方法而创建的。我们不会推测他们决定这样做的原因。例如,在PHP中,您可以将块大小指定为256位,因此我假设如果您有足够的知识,则很有可能可以“解锁”代码中的较高键位,或添加必要的实现评论
$ \ begingroup $
来自Rijndael提案:“对于Rijndael,块长度和密钥长度可以独立地指定为32位的任意倍数,最小为128位,最大为256位”
$ \ endgroup $
–马腾·博德威斯♦
2014年11月15日下午2:51
$ \ begingroup $
说我们可以实现AES 512密钥大小,那么我们如何确定它是安全的呢?您知道,加密是一件复杂的事情!
$ \ endgroup $
– hamedb71
2014年11月15日下午6:11
$ \ begingroup $
这就像在说Duplo是Lego的最大版本是任意的,您应该能够继续扩大规模-但是Lego和Duplo的设计是不同的(如果您实际看的话)。不同的AES密钥大小变体也是如此。在256处没有任意限制。较大的变体将需要专业设计和评估。如果您自己这样做,而且您不是密码学家,那么您就是傻瓜。
$ \ endgroup $
–ruief
16-10-10在15:41
评论
这里有一个类似的问题crypto.stackexchange.com/questions/2486/…Whirlpool哈希中使用的类似AES的块密码具有512位的块大小和密钥大小。
Rijndael可以扩展到512位密钥,我已经使用22轮进行了扩展,但是为了确保密钥的安全性,还需要对密钥时间表进行重大修改
@RichieFrame有趣。关于这些mod的任何其他信息?
@PaulUszak如果我没记错的话,最简单的方法是生成更多的回合密钥,并跳过其中的4个,因此回合0、1、2分别为1st,6th,11th。即使线性度不是最佳,这也可以实现与原始滚动相同的快速滚动。更好的方法是使用回合函数本身的新密钥计划。