AES加密如何工作?

AES是对称密钥加密密码,通常被认为是加密数据的“黄金标准”.


AES是经过NIST认证的,并且被美国政府用于保护“安全”数据,这导致几乎每个人都更广泛地采用AES作为标准的对称密钥密码。这是一个开放标准,可免费用于任何公共,私人,商业或非商业用途.

AES加密简介

AES是对称密钥加密密码。这意味着用于加密数据的同一密钥用于解密它。这确实产生了一个问题:如何以安全的方式发送密钥?

非对称加密系统通过使用公开密钥来保护数据,从而解决了这个问题,该公开密钥可供所有人使用。只有拥有正确私钥的预期收件人才能解密它.

由于发件人不需要知道收件人的私钥,因此非对称加密可以更好地保护传输中的数据。 RSA加密就是一个很好的例子,它用于保护连接到安全HTTPS网站时所需的TLS密钥交换。.

因此,像AES这样的对称密码在静止数据时(例如,将数据存储在硬盘上)的安全性要好得多。为此,它们优于非对称密码,因为:

  • 他们需要更少的计算能力。这使得使用对称加密比不对称加密更快地加密和解密数据。从角度来看,对称密码通常被引用为比非对称密码“快1000倍”.
  • 而且由于对称密码更快,因此对于批量加密大量数据更有用。诸如RSA之类的非对称密码仅真正用于加密少量数据,例如用于保护对称密钥加密的密钥.

当然,在当今的互联世界中,仅位于硬盘驱动器上的数据用途有限。幸运的是,它可以与非对称加密一起安全地通过Internet传输,该非对称加密用于处理安全连接到远程服务器所需的远程密钥交换。.

例如,OpenVPN现在使用非对称密码(通常是AES)保护原始数据。为了在PC和VPN服务器之间安全地传输加密数据,它使用非对称TLS密钥交换来协商与服务器的安全连接。.

AES加密是最佳加密类型吗?

AES被广泛认为是迄今为止发明的最安全的对称密钥加密密码。还存在其他被认为是高度安全的对称密钥,例如Twofish是由著名密码学家Bruce Schneier共同发明的.

但是,这种密码还没有像AES那样经过严格的测试。嘿,如果美国政府认为AES是保护其“安全”数据的最佳密码,谁在争论?但是,有些人认为这是一个问题。请参阅下面有关NIST的部分.

广泛采用已从其他方面使AES受益。现在,大多数CPU制造商已将AES指令集集成到其处理器中。硬件提升可提高许多设备上的AES性能,并提高其对旁通道攻击的抵抗力.

128位AES加密是否可以破解?

正确实施后,AES本身是不可破坏的.

2011年,世界上最快的超级计算机是FujitsuK。它的Rmax峰值速度为10.51 petaflops。根据此数字,强行破解一个128位AES密钥需要花费富士通K 1.02 x 10 ^ 18-大约十亿(十亿亿个)-年。这比宇宙年龄大(137.5亿年).

2017年,全球最强大的超级计算机是中国的双威TaihuLight。该野兽的峰值速度为93.02 petaflops。这意味着,世界上功能最强大的计算机仍需要大约885万亿年才能强行使用128位AES密钥。.

暴力破解256位密码所需的操作数为3.31 x 10 ^ 56。这大约等于宇宙中的原子数!

早在2011年,密码学研究人员就发现AES的一个弱点,使他们破解算法的速度比以前快了四倍。但是正如一位研究人员当时指出的那样:

“从一个角度来看:在一万亿台机器上,每台机器每秒可以测试十亿个密钥,要恢复AES-128密钥将花费超过二十亿年的时间。”

为了应对这种攻击,在AES-128加密过程中又增加了四轮攻击(请参阅下文),以提高其安全系数.

旁道攻击

因此,就所有意图和目的而言,正确实施AES本身都是坚不可摧的。但是它并不总是能正确实施.

旁道攻击从实施AES加密的计算机系统中寻找线索,以发现更多信息。这可能有助于减少暴力破解AES所需的可能组合数量.

这些攻击使用时间信息(计算机执行计算需要多长时间),电磁泄漏,音频线索,甚至是使用高分辨率摄像机拾取的光学线索来发现有关系统如何处理AES加密的额外信息。.

众所周知的针对AES的旁信道攻击通过仔细监视密码共享使用处理器的缓存表,成功推导出AES-128加密密钥.

正确实施的AES通过防止数据泄漏的可能方式(这是使用基于硬件的AES指令集所提供的帮助)并通过使用随机化技术来消除受密码保护的数据与任何泄漏的数据之间的关系,从而缓解了旁通道攻击可以使用旁道攻击收集.

不安全的密码

AES加密仅与其密钥一样安全。这些密钥本身都是使用密码来保护的,我们都知道人类使用安全密码的可怕性。病毒,社会工程学攻击等引入的键盘记录程序也可能是有效的方法来破坏保护AES密钥的密码.

密码管理器的使用大大缓解了此问题,双向防火墙,良好的防病毒软件的使用以及对安全性问题的深入了解也可以缓解此问题。.

AES加密的简要历史

当您还是个孩子时,您是否玩过通过用一个字母替换另一个字母来创建“秘密信息”的游戏?替换是根据您选择的公式进行的.

例如,您可能已用字母后面的三个字母替换了原始邮件的每个字母。如果其他人知道这个公式是什么,或者能够解决这个问题,那么他们将能够阅读您的“秘密信息”。

用密码学术语来说,您正在做的就是根据一种非常简单的数学算法对消息(数据)进行“加密”.

加密自古以来就被用于对敏感数据进行隐藏,但实际上在20世纪才真正出现。在第二次世界大战期间,德国人以使用Enigma机器来确保通信的安全着称,该机器的代码同样由Bletchley Park的Alan Turing破解.

什么是DES加密

数据加密标准(DES)于1970年代中期创建,旨在保护美国政府的通信安全。它成为第一个现代的,公开的,免费的加密算法,因此几乎单枪匹马地创建了现代密码学.

尽管DES由IBM开发,但它是美国国家标准局(NBS,后来成为NIST)的创举。.

尽管有人担心国家安全局(NSA)干预,但DES在1976年被美国政府采用, "敏感但未分类" 交通。其中包括个人,财务和后勤信息.

由于当时没有别的,它很快就被需要加密以保护其数据的商业公司广泛采用。因此,DES(使用56位密钥)成为近二十年来的默认主力加密标准。.

DES被授予联邦信息处理标准(FIPS)地位极大地帮助了这种几乎无处不在的采用。所有美国非军事政府机构和民政承包商仅需使用FIPS标准.

然而,到1990年代中期,DES开始显示其年龄。当时,人们普遍认为NSA可以对DES进行暴力破解,这一点在1998年得到了证明,当时由电子前沿基金会(EFF)制造的一台价值22万美元的机器在短短两天内成功地对DES进行了暴力破解。显然是时候制定新标准了.

AES是如何产生的

1997年,美国国家标准技术研究所(NIST)宣布正在寻找DES的替代产品。 2001年11月,它宣布获胜者:AES,曾是Rijndael的共同创造者之一.

根据NIST的建议,新密码已由美国联邦政府正式采用,并于2002年5月开始有效使用。与之前的DES一样,AES被授予FIPS地位。美国政府认为,所有AES密钥大小都足以用于保密信息,直至 "秘密" 水平,与 "最高机密" 需要AES-192或AES-256的信息.

AES现在已完全取代DES,成为全球默认的主力对称加密标准.

AES加密如何工作?

AES加密算法以128位为块对数据进行加密和解密。它可以使用128位,192位或256位密钥进行此操作。使用128位密钥的AES通常称为AES-128,依此类推.

下图提供了AES流程的简化概述…

AES加密如何工作

纯文本

这是您希望加密的敏感数据.

密钥

这是算法创建的128位,192位或256位变量.

密码

然后,实际的AES密码以明文和密钥为起点执行一系列数学转换。这些是:

  1. 密钥扩展。该程序使用Rijndael的密钥调度算法,使用原始的密钥导出一系列新的“圆形密钥”.
  2. 混合。使用加法XOR算法将每个回合密钥与纯文本组合.

    AES加密RoundKey

  3. 使用替换表替换结果数据。此步骤在原理上(如果实际上更为复杂)与您小时候创建的替换密码非常相似(如果实际上更复杂).子字节AES加密

  4. 移位行。其中构成一个128位块的16个字节的4 x 4列中的每个字节都向右移动.AES加密shiftRows

5.混合柱。进一步的算法应用于每列.

上升并重复。该过程重复多次,每次重复称为一个回合。使用密钥扩展过程中生成的一个回合密钥对每个回合进行重新加密(步骤1).

执行的回合数取决于所使用的密钥长度。 AES-128使用十轮,AES-192使用十二轮,而AES-256使用十四轮.

每增加一轮,就减少了2011年以前用于攻击AES-128的那种快捷攻击的可能性。由于这一攻击的结果,已经注意到,向AES-128增加了四发,以提高其安全裕度。.

密文

这是密码经过指定轮数后的加密输出。.

如何解密AES加密

解密AES很简单–只需反转所有上述步骤即可,从反向循环密钥开始。当然,您需要具有原始秘密密钥,才能使用每个反向回合密钥来逆转该过程.

加密文件会使文件变大吗?

是。通常。 AES使用16字节的固定块大小。如果文件不是块大小的倍数,则AES使用填充来完成块.

从理论上讲,这并不一定意味着增加加密数据的大小(请参阅密文窃取),但是简单地添加数据以填充数据块通常会更容易。这增加了加密的数据量.

轶事证据表明,使用AES加密的大于1 MB的文件通常比加密前大35%左右。.

密钥大小在AES加密中有多重要?

衡量密码强度的最粗略方法是通过其密钥的大小。键越大,组合越可能.

AES可以与126位,192位或256位密钥大小一起使用。最初的Rijndael密码被设计为接受其他密钥长度,但是这些未被AES采纳。.

蛮力攻击

算法越复杂,使用蛮力攻击破解密码的难度就越大。这种非常原始的形式攻击也称为穷举密钥搜索。它基本上涉及尝试所有可能的数字组合,直到找到正确的密钥.

如您所知,计算机使用二进制数字(零和一)执行所有计算。正如我们所看到的,密码的复杂性取决于密码的密钥大小(以位为单位),即表示其算法所需的原始1和0数,其中每个0或1都由一个比特表示.

这被称为密钥长度,也代表了对任何给定密码成功执行暴力攻击的实际可行性。.

可能的组合数量(以及由此产生的暴力破解的难度)会随着键的大小呈指数增长。对于AES:

正如我们已经讨论的那样,用力破解即使是AES-128密钥,世界上最快的超级计算机所需的时间也要比宇宙时代更长。!

加密回合

正如我们已经讨论的那样,AES使用的密钥越长,加密通过的次数就越多。这主要是为了防止可减少密码计算复杂性的快捷攻击,从而使密码更容易被暴力破解。.

正如已放弃的密码学家布鲁斯·施耐尔(Bruce Schneier)所说,2011年对AES-128的快捷攻击,

密码学是关于安全裕度的。如果您可以破解n轮密码,则可以将其设计为2n或3n轮。”

他确实建议为AES的每个密钥大小引入更多轮次,但NIST认为当前级别足够.

那么为什么要使用比AES-128更多的?

所有这些都引出了一个问题:破解AES-128是否需要比宇宙时代更长的时间,为什么还要使用AES-192或AES-256?如Schneier所述:

“我建议人们不要使用AES-256。 AES-128在可预见的将来提供了足够的安全余量。但是,如果您已经在使用AES-256,则没有理由进行更改。”

实际上,Schneier过去曾争辩说,AE-128实际上比AES更安全,因为它的密钥调度比AES-256更强.

那么为什么AES-256被保留为对称密钥加密的黄金标准?

安全边际

2011年的快捷攻击表明,无论专家认为密码算法有多安全,有创造力的人总是会找到没人想过的削弱他们的方法。.

与使用的回合数一样,较大的密钥大小可提供更高的安全保证金,防止被破解.

金光闪闪

考虑到AES-256加密无处不在时,营销的影响不容忽视。 AES-256被广泛认为是世界上最安全的对称加密密码这一简单事实使其成为许多人的第一选择.

我的意思是,如果AES-128很好,那只能说明AES-256必须更好,对吧?

美国政府使用AES-256保护其最敏感数据的事实只会增加其“光辉”价值,并允许VPN公司等声称他们使用“军事级”加密.

鉴于这种“闪闪发光的感知”(在很大程度上)是准确的,所以AES-256的普及几乎没有危害(尽管请参见下面有关NIST的说明).

AES和OpenVPN

但是,尤其是VPN用户,应该小心。大多数VPN服务使用AES-256来保护由OpenVPN协议传输的数据,但这是OpenVPN用于保持数据安全的各种机制之一。.

使用OpenVPN时,TLS连接可确保AES使用的加密密钥的传输安全。因此,如果OpenVPN TLS(控制通道)设置较弱,则尽管使用AES-256进行了加密,但数据仍可能遭到破坏。请参阅我们的《 VPN加密终极指南》以了解更多详细信息.

AES-CBC和AES-GCM

直到最近,您在VPN世界中可能会遇到的唯一AES密码是AES-CBC(密码块链接)。这指的是分组密码模式,这是一个复杂的主题,实际上不值得在这里讨论.

尽管从理论上讲CBC可能存在一些漏洞,但共识是CBC是安全的。实际上,在OpenVPN手册中建议使用CBC.

OpenVPN现在还支持AES-GCM(加利奥斯/计数器模式)。 GCM提供了身份验证,无需使用HMAC SHA哈希功能。它也比CBC快一点,因为它使用硬件加速(通过线程化到多个处理器内核).

AES-CBC仍然是最常用的通用模式,但是AES-GCM越来越流行。鉴于GCM的优势,这种趋势只会持续下去。但是,从加密角度来看,AES-CBC和AES-GCM都是高度安全的.

国家标准技术研究所

AES是NIST认证的标准。这个机构通过自己的认可与国家安全局紧密合作开发密码.

鉴于我们现在知道的NSA为削弱或建立后门以形成国际加密标准所做的系统性努力,我们有充分的理由质疑NIST算法的完整性。 NIST当然强烈反驳了这些指控:

“ NIST不会故意削弱加密标准。”

它还邀请公众参与许多即将提出的提议的加密标准,此举旨在增强公众的信心。.

但是,《纽约时报》指责国家安全局(NSA)引入了无法检测的后门程序或颠覆了公共开发流程以削弱算法,从而规避了NIST批准的加密标准。.

当RSA Security(EMC的一个部门)私下告诉客户停止使用据说包含NSA设计的缺陷的加密算法时,这种不信任感得到了进一步加强。该算法也得到了NIST的认可.

此外,Dual_EC_DRBG(双椭圆曲线确定性随机位生成器)是由NIST设计的加密标准。多年来一直不安全.

2006年,荷兰埃因霍温科技大学指出,对其进行攻击很容易在“普通PC”上启动。微软工程师还标记了该算法中的可疑后门。.

尽管存在这些担忧,但NIST一直领先于整个行业。这在很大程度上是由于遵守NIST标准是获得美国政府合同(FIPS)的前提.

NIST认证的加密标准(例如AES)在全世界所有依赖隐私的工业和商业领域中都很普遍。这使整个情况变得令人不寒而栗.

也许恰恰是因为非常依赖这些标准,所以密码学专家一直不愿意面对这个问题。.

图片来源:xkcd.com/538.

Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me