美文网首页密码学专题
5.2 密码学专题 - 对称加密算法 - AES 算法

5.2 密码学专题 - 对称加密算法 - AES 算法

作者: furnace | 来源:发表于2020-05-10 11:06 被阅读0次

    密码学专题 - 对称加密算法 - AES 算法

    高级加密标准 (AES) 是美国政府制定用来取代 DES 算法的标准。美国国家标准与技术研究所 (NIST) 并没有采用委托设计的方法而是发起征集,寻求密码学界的建议。共提交了 15 个提案,其中 5 个被选入围,最后 Rinjdael 算法被选中成为 AES,AES 在 2001 年成为标准。

    AES 采用与 DES 不同的结构,并没有采用 Fesitel 结构。图 3-2 表示了一轮 AES 算法的执行细节,随后的几轮执行相似的步骤。输入 16 字节 (128 位) 的明文,首先将明文与 16 字节的轮密码进行异或操作,在图中用 \bigoplus 运算符来表示。然后进入 8 位输入 8 位输出的 S 盒,这些 S 盒内部结构均是相同的。输入后按照特定的顺序重新排列输出。最后分为 4 个组,使用线性混合函数进行异或运算得到输出结果。

    一轮 AES 的结构.jpg

    这就完成了一轮的运算。整个 AES 算法的轮数为 10 ~ 14 轮,轮数的选择取决于密钥的长度。AES 的密钥长度为 128 位、192 位、256 位。使用 128 位密钥加密 10 轮,192 位密钥加密 12 轮,256 位密钥加密 14 轮。AES 算法和 DES 算法一样有一个子密钥生成器来产生轮密钥,但子密钥生成器有着不同的结构。

    AES 结构有利也有弊。每一个执行步骤都包含了多个并行运算,可以实现高速运算;另一方面,解密和加密运算完全不同,需要逆转 S 盒的查找表,而且混合运算的逆运算也和原混合运算不同。

    在 DES 算法中有一些功能相同的模块。异或运算把密钥混到数据中,S 盒提供非线性,位变换和混合函数提供扩散功能。AES 算法是一个非常清晰的设计,为分组密码的各个部分划分了清晰独立的任务。

    AES 算法一直是相当积极的设计。AES 的设计者曾经描述了一个对执行 6 轮的算法进行攻击的方法。这也意味着如果 AES 只被定义执行 6 轮就会受到攻击。因此作者提出了要根据密钥的长度来选择加密 10 ~ 14 轮。

    在 AES 算法的选择中,攻击的方法已经进行了改进,可以攻击执行 7 轮的 128 位密钥、8 轮的 192 位密钥、9 轮的 256 位密钥。当然,还要多预留出 3 ~ 5 轮的轮数以保证安全。从不同的角度来看:对于 128 位的密钥,在 Rijndael 被选为 AES 算法时最好的攻击方法能够攻击 70% 的密码算法。换句话说,Rijndael 被选为 AES 是建立在未来攻击方法都不会有大的改进的前提之下的。

    事实上,我们已经看到了一些在 AES 密码算法分析上取得的了不起的突破。有一种攻击可以通过 4 个相关密钥和 2^{176} 次运算攻破 192 位密钥的 12 轮 AES 算法。还有一种攻击可以通过 4 个相关密钥和 2^{119} 次去处攻击 256 位密钥的 14 轮 AES。另外,还有一种攻击可以通过 2 个相关密钥和 2^{45} 次运算攻击 256 位密钥的 14 轮 AES 算法中的 10 轮。

    这些攻击都取得了巨大的成果。这表明 AES 算法已经不符合我们对分组密码安全的定义。对于 192 位密钥和 256 位密钥 AES 算法的攻击仅限于理论,在实际中不存在,所以目前不准备对这些理论上的攻击采取任何补救。但是根据攻击的定义,192 位和 256 位的 AES 算法已经从理论上被攻破,当然,随着时间的推移更巧妙、更有效的攻击可能会出现。

    业界仍然为 AES 在实际系统中的应用而感到担忧。我们知道现阶段应用 AES 是一个很合理的决定,因为它是美国政府的标准,使用标准避免了很多争议和问题,但必须认识到,在今后的密码学发展中仍然会遇到很多较严重的问题。如果你正在开发一个系统或者制定协议标准,为了便于今后用另一种分组密码替换 AES,建议你保证可扩展性和灵活性。

    5 个 AES 候选算法分别为:Rijndael、Serpent、Twofish、RC6 和 MARS。

    项目源代码

    项目源代码会逐步上传到 Github,地址为 https://github.com/windstamp

    Contributor

    1. Windstamp, https://github.com/windstamp

    相关文章

      网友评论

        本文标题:5.2 密码学专题 - 对称加密算法 - AES 算法

        本文链接:https://www.haomeiwen.com/subject/imuxqhtx.html