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

密码学专题 - 对称加密算法 - 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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352