您当前的位置:   首页 > 新闻中心
什么是AES加密,它如何工作?
发布时间:2021-03-19 11:02:10   阅读次数:

什么是AES加密,它如何工作?(图1)

AES加密高级加密标准是一种保护在线数据传输的密码。


当前,AES是目前可用的最佳加密协议之一,因为它完美地结合了速度和安全性,使我们能够不受干扰地享受我们的日常在线活动。


考虑到其良好的品质,AES成为加密的行业标准也就不足为奇了。


在本文中,您将探索AES的起源,使用和潜在的威胁。您还将逐步学习每一轮加密,从而了解AES加密的工作原理。


什么是AES(高级加密标准)加密?

简而言之,AES是一种对称的加密类型,因为它使用相同的密钥来加密和解密数据。


它还使用SPN(替代置换网络)算法,应用多轮加密数据。这些加密回合是AES不可渗透性背后的原因,因为要突破的回合太多。


AES加密密钥有三种长度。每个密钥长度都有不同数量的可能的密钥组合:

  • 128位密钥长度:3.4 x 1038

  • 192位密钥长度:6.2 x 1057

  • 256位密钥长度:1.1 x 1077


即使此加密方法的密钥长度有所不同,其块大小(128位(或16字节))仍保持固定。 


密钥长度的变化提出了一些问题。为什么会有多个密钥长度?而且,如果256位密钥是最强的密钥(甚至称为“军事级”加密),为什么我们不总是使用它呢?


好吧,这一切都取决于资源。例如,使用AES-256而不是AES-128的应用程序可能会更快耗尽手机电池的电量。


幸运的是,当前技术使资源差异微乎其微,以至于没有理由不使用256位AES加密。


AES的优点

除了安全性,AES加密对于使用它的人也非常有吸引力。为什么?因为AES的加密过程相对容易理解。这样可以轻松实现,并且可以实现真正的快速加密和解密时间。


此外,与许多其他类型的加密(如DES)相比,AES所需的内存更少,这使它成为选择首选加密方法时的真正赢家。


最后,当一项操作需要额外的安全层时,您可以将AES与各种安全协议(例如WPA2)或什至其他类型的加密(例如SSL)结合使用。 


为什么我们使用AES算法?

即使不是完全“古老”,高级加密标准也已过时。


AES最初由两位比利时密码学家Vincent Rijmen和Joan Daemen于1998年开发,至今已有20多年的历史了。最初,它被称为Rijndael –它是开发商的名称的组合。


由于其不可渗透性,AES加密已成为18年的加密标准。这是因为,2002年,美国国家标准技术研究院(NIST)用AES取代了过时的数据加密标准(DES)。 


为什么会这样呢?

好吧,首先,DES密钥长度只有56位。事实证明,这还不足以保证加密信息的安全。例如,distributed.net和Electronic Frontier Foundation进行的一项测试表明,DES可以在超过22小时的时间内轻松破解。请记住,这是在1999年完成的,当时计算能力远非现在。


如今,功能强大的计算机可以在362秒内破解56位DES密钥。 


另一方面,破解128位AES加密密钥可能需要长达36万亿年的时间。


试想一下,破解一个256位AES密钥需要花费多长时间,该密钥拥有惊人的984,665,640,564,039,457,584,007,913,129,639,936个组合。牢记这一数字,我们可以放心地假设,如果不显着提高计算能力,就不会发生对AES加密的强力攻击。


AES算法在哪里使用?

AES加密起初只是美国政府的首选加密算法,因此迅速风靡全球,成为基本上我们在网上看到的所有内容的加密标准。结果,您将很难找到不使用AES算法的行业或服务。


网上银行的凭据,密码和消息都需要受到保护,以免受到可能造成伤害的人员的伤害。因此,除了“服务于”政府(例如国家安全局)之外,高级加密标准还保护了众多产品的敏感数据。


AES使用示例

以下是开发人员可以在其中使用AES加密的几个著名示例:

  • VPN(虚拟专用网)。由于VPN的工作是将您安全地在线连接到另一台服务器,因此只能考虑最好的加密方法,以免数据泄漏。使用具有256位密钥的高级加密标准的VPN包括NordVPN,Surfshark和ExpressVPN。

  • 无线上网。没错-无线网络也使用AES加密(通常与WPA2一起使用)。这不是Wi-Fi网络可以使用的唯一加密类型,但是,大多数其他加密方法的安全性要差得多。

  • 移动应用程序。许多流行的应用程序(例如Snapchat和Facebook Messenger)使用AES加密,以安全地发送照片和消息之类的信息。

  • 存档和压缩工具。所有主要的文件压缩程序都使用AES来防止数据泄漏。这些工具包括7z,WinZip和RAR。

  • 操作系统系统组件。某些操作系统组件(例如文件系统)使用高级加密标准来增加安全性。

  • 编程语言库。诸如Java,Python和C ++这样的编码语言的库实现了AES加密。

  • 密码管理器。这些程序包含许多敏感信息。这就是为什么密码管理器(例如LastPass和Dashlane)不会跳过AES实现的重要步骤的原因。


尽管这是AES加密有用的令人印象深刻的列表,但它仍然不包含所有内容。 


除了前面提到的所有内容之外,您还将在各种文件系统磁盘加密系统以及Web浏览器中遇到AES加密算法。


没错–您甚至使用AES来打开本文,因为您的浏览器必须加密与该页面的连接。


AES加密如何工作? 

这是您从一开始就应该知道的:没有适当的背景知识,AES加密算法可能很难理解。要完全欣赏它的复杂性,您可能必须是数学专业(至少)。


幸运的是,可以简化AES密码的内部工作。用“正常”符号代替二进制代码是一种实现方式。


在以下各节中,我将简要解释AES加密背后的主要思想。


1.将数据分成块

首先,我们必须牢记AES是分组密码。与流密码不同,它以位块而不是逐位加密数据。 


它的每个块都包含一个16字节的列,布局为四乘四。因为一个字节包含8位,所以我们得到128位的块大小(16×8 = 128)。


因此,AES加密的第一步就是将纯文本(未写在代码中的文本)划分为这些块。 


因此,让我们选择要加密的文本。例如,它可能“迟到总比没有好”。


应用高级加密标准会将这句话的开头变成以下块:


AES加密块

请注意,这只是文本的第一块,其余的短语将进入下一个文本块。


2.密钥扩展

这是AES加密的重要步骤。它在Rijndael的密钥计划的帮助下产生了新的128位圆形密钥。


假设我们的初始密钥是“外星人”:


密钥扩展前的AES

应用Rijndael的关键时间表后,该短语看起来像是一堆杂乱的随机字符,可能类似于以下内容:应用Rijndael的关键时间表后,该短语看起来像是一堆杂乱的随机字符,可能类似于以下内容:

密钥扩展后的AES加密


但是,这些字符毕竟不会那么随意,因为Rijndael的密钥计划使用特定的过程来加密每个符号。


稍后,AES算法将需要这组新的扩展密钥。


3.添加回合键

这是第一轮AES加密。在这里,该算法将初始密钥添加到我们的短语中,该短语先前已变成4×4块:


AES密钥添加


我知道添加两个文本块似乎是不可能的。但是,请记住,AES实际上使用二进制代码,并且您现在看到的只是二进制语言中实际发生情况的直观表示。

因此,在添加了两个块之后,我们得到了一个全新的密码块,我将其描述为:


添加了AES密钥


4.字节替换

现在,AES算法根据预先建立的称为Rijndael S-box的表,用代码替换每个字节。看起来像这样:


什么是AES加密,它如何工作?(图7)


根据该表,元素19变为d4,e9变为1a,依此类推。因此,在字节替换过程之后,我的密码块可能看起来像这样(请记住,这仍然是真实交易外观的假设表示):


AES加密字节替代


如您所见,我用不同的颜色标记了几列。这将在下一步中派上用场。


5.移行

在此步骤中,AES算法将移位它在字节替换过程中获得的块的行。

第一行保持不变。但是,第二行向左移动一个字节,第三行向左移动两个字节,而最后一行向左移动三个字节:


AES加密移位行


6.混合塔

用数学术语来说,此步骤将每列乘以预定义的矩阵,从而为我们提供了一个全新的代码块。


这是一个非常复杂的过程,涉及许多高级数学。


为了简单起见,让我们假设我做过数学,现在我的新程序块看起来像这样:


AES加密混合列


7.添加回合键

现在该应用在密钥扩展部分中获得的回合密钥了。让我们将其添加到上列混合过程之后的上一节中的代码块中:


AES加密添加回合密钥


此操作将产生另一个二进制代码块,此块随后需要进行许多进一步的修改。


8.冲洗并重复

现在,AES加密算法将经历更多轮的字节替换,移位行,混合列以及添加轮回密钥。


数据经过的相同回合数取决于AES密钥长度:

  • 128位密钥:9回合

  • 192位密钥:11回合

  • 256位密钥:13回合


因此,例如,在256位密钥加密的情况下,数据连续经过13次前面提到的步骤。


但是,这还没有结束。


在提到的第9、11或13轮加密之后,又要进行一轮加密。在此额外的回合中,该算法仅经历字节替换,行移位和添加回合密钥的阶段。它省去了混合柱子的步骤。


为什么?因为在这一点上,那将是多余的。换句话说,此操作将使用太多的处理能力,而不会显着更改数据。


因此,在加密过程结束时,数据将经过以下轮次:

  • 128位密钥:10回合

  • 192位密钥:12回合

  • 256位密钥:14回合


在所有回合完成之后,原始短语“迟到总比没有好”看起来像一组随机字符。 


AES解密

借助逆加密,可以将AES密文恢复到其初始状态。


如前所述,高级加密标准实现了对称密码学的方法。换句话说,它使用相同的密钥进行数据加密和解密。


这样,当需要公钥和私钥时,它与使用非对称加密的算法不同。


因此,在我们的情况下,AES解密从反向轮回密钥开始。此后,该算法会颠倒每个动作(移位行,字节替换以及随后的列混合),直到破译原始消息为止。


AES加密是否存在任何安全性问题?

尽管AES是一种非常安全的加密类型,但从现在起几年后它可能不会100%不可渗透。


迄今为止,没有记录到成功的现实生活中的攻击,但是,技术的快速发展可能会在将来构成潜在的威胁。


此外,还会发生错误。如果有人错误地实施AES加密,则潜在的错误可能会成为黑客的门户。


幸运的是,正确使用AES可以防止发生成功的攻击。


为了确保AES加密仍然不可渗透,密码学家不断研究破解它的方法,并提出了各种理论上的攻击。到目前为止,还没有人设法做到这一点–只有很少的旁道攻击是成功的。


下面,我将分享一些有关如何破坏AES加密的示例(至少在理论上如此)。


相关密钥攻击

与暴力攻击不同,相关密钥攻击将加密密钥本身作为目标。他们需要更少的时间和精力,并且获得成功的机会更大。


如果黑客知道(或怀疑)两个不同密钥之间的关系,则这种类型的攻击就可以起作用。


几次,AES加密一直是相关密钥攻击的目标,最著名的攻击是2009年发现的。为了防止类似事件的发生,密码学家提高了AES密钥时间表的复杂性。


旁道攻击

在计算机系统实施不当的情况下,AES加密不能完全不受旁通道攻击的影响。


这种类型的攻击依赖于数据泄漏,例如电磁泄漏。


但是,如果正确实施了AES,它可以帮助在任何不良情况发生之前检测出数据泄漏。


已知密钥区分攻击

在2009年,曾尝试通过已知密钥区分攻击来破解AES-128。


事实证明,它可以对抗8位版本的128位密钥长度AES加密取得成功。但是,实际的AES-128经过10轮加密,这意味着该攻击在现实生活中并不是威胁。


另外,要执行已知密钥区分攻击,黑客必须知道密钥,这是非常不可能的。


密钥恢复攻击

在2011年,进行了一次密钥恢复攻击,作为破解AES的测试。


这种类型的攻击要求黑客拥有至少一对加密和解密的消息。


但是,该测试并没有提供明显的结果,因为它仅被证明比蛮力攻击要快四倍(这仍然需要数十亿年的时间)。


结论

阅读本文之后,您可能会明白为什么AES加密被称为加密技术的“黄金标准”。


它的速度,多功能性和对各种网络攻击的抵抗力使其成为当今世界上最有用的工具之一。

我们非常幸运,它的存在。 


AES加密安全吗?

是的。对于AES算法而言,“暴力”攻击实际上是无用的,因为它可能需要数十亿年才能破解。但是,如果加密实施不正确,则可能存在一些潜在的风险。

幸运的是,没有黑客能够破解正确配置的AES系统。因此,只要没有错误,您的敏感信息就是绝对安全的。


AES是最好的加密方法吗?

没有“最佳加密方法”,因为不同的情况要求使用不同类型的密码。但是,AES是现代世界中最安全的对称加密密码之一。


AES加密用于什么用途?

作为加密的行业标准,AES用于各种服务以加密数字数据。

虚拟专用网(VPN)、移动应用程序、密码管理器、无线网络甚至视频游戏都使用AES加密。


哪个更好:RSA或AES?

RSA和AES是不同类型的加密密码。通常,它们结合使用。


揽阁信息可提供的部分安全产品和解决方案信息

联系揽阁信息,您可以获取到更多满足全球合规性要求的信息安全产品资料,以及相关的整体解决方案的相关资料。如:


您还可以得到揽阁信息所提供的优质服务。

揽阁信息 · 值得您信赖的信息安全顾问!


相关阅读

购买咨询电话
021-54410609