行业新闻与博客

对称加密算法:长期有效和加密

就像星际迷航中的小问题一样,对称加密无处不在。我们将探索对称密钥算法,并将您带到非 IT 人员从未去过的地方

对称加密算法是使安全通信成为可能的基本过程。如果将其归类为与“星际迷航”相关的术语,则对称算法是您飞船推进系统的动力。它们是信息安全不可或缺的组成部分,可帮助您的企业安全地以比光速快的速度进行数据加密。



(是的,我知道,今天我真的在高高地举起书呆子。虽然着迷,但对称密钥算法并不完全是“轻量级”或易于阅读的,因此编写时我必须要有一些乐趣。该死,吉姆,我是网络安全作家,而不是密码学家。)



我们将深入探讨对称加密算法是什么,为什么重要,以及最常见的对称加密算法类型是什么。



什么是对称算法及其工作原理?

对称算法是对称密钥加密的核心加密功能。它们是计算机执行与加密和解密数据有关的特定任务时遵循的一组指令或步骤。



感觉需要通用翻译器吗?好吧,让我们进一步分解一下。



使用对称加密算法(与加密密钥结合)来完成两个主要任务:



加密。将可读文本(纯文本)转换为不可读的加密文本(密文)。

解密。将密文转换回纯文本。

对称加密算法对加密和解密使用相同的加密密钥。(与使用两个不同密钥的非对称加密算法不同。)



通常,加密算法是基于数学的,取决于其设计,其范围可以从非常简单到非常复杂。对于对称加密算法,将它们与单个密钥配对以将可读(明文)数据转换为难以理解的乱码(密文)。然后他们使用相同的密钥将密文解密回纯文本。所有这些都是以确保数据机密性和隐私性的方式完成的。太酷了吧?



实际上,对称加密算法有几种不同的名称:




  • 对称密钥算法,

  • 对称加密算法,

  • 密钥算法,和

  • 大容量密码。(稍后我们将进一步讨论批量密码。)



通常,加密的目的或目的是使加密成为可能,以便只有拥有密钥的人才能解密和读取秘密消息。如果您需要快速了解对称加密的工作原理,请快速浏览以下内容:







在上图中,从左向右移动,您将看到以纯文本可读数据开头。一旦将对称加密算法和密钥应用于该数据,它便成为无法读取的密文。解密该消息以解密其含义的方法是使用解密密钥。在对称加密的情况下,解密密钥与用于加密数据的密钥相同。基本上,您两次使用相同的密钥。 



对称加密算法实际上是做什么的?

简而言之,对称算法是密码学中的一组指令,它们使用一个密钥来加密和解密数据。这些加密算法和密钥是轻量级的,因为它们旨在提高处理大型数据块或数据流的速度。(这就是为什么对称加密算法被称为批量密码的原因。)



另一方面,非对称密钥算法和密钥是资源的消耗者。密钥很大并且大规模使用昂贵。我的意思是,它们占用了您大量的 CPU 处理资源和时间,电池电量以及要执行的带宽。



还记得我们如何将对称算法描述为翘曲驱动器的关键组件?让我们继续这个类比。因此,如果您要考虑什么是非对称加密算法,它们将类似于推进系统中的推进器。当然,它们最终会带您到那里,但是它们不适合进行大规模的快速加密。



但是,它们非常适合加密公共渠道中的小批量数据。非对称密钥交换(稍后将详细讨论)是在那些不安全的公共渠道中分发密钥的好方法。



这就是为什么人们经常使用对称加密来编码大量数据的原因。



是什么决定了对称加密算法的强度?

您很快就会发现,并非所有对称算法都是平等创建的。它们的强度有所不同-但是强度在密码学中到底意味着什么?简短的答案是,加密强度就是黑客破解加密以获取数据访问权的难易程度。当然,更长的答案可能会因您评估的算法类型而异。但是,总的来说,加密强度通常可以归结为以下几个关键特征:




  • 对称密钥的长度,随机性和不可预测性,

  • 该算法抵抗或抵抗已知攻击的能力,以及

  • 缺少后门或其他故意漏洞。



对称加密可能有点平衡,因为您需要算法和密钥,这些算法和密钥在计算上既困难又实用,可以以可接受的性能使用。



对称加密算法不能在公共频道中独占 Stand 头

尽管对称加密算法听起来像是用于所有类型的在线数据加密的最合逻辑的工具,但它并不是那么简单。就像史无前例的 Spock 和具有超凡魅力的 Kirk 上尉一样,对称加密也有缺点-尤其是在公共渠道上单独使用时。这些弱点以密钥分发和密钥管理问题的形式出现:




  • 您需要安全的连接来分发对称密钥

  • 如果您将密钥分发给很多人,那么试图与每个拥有密钥副本的人保持同步可能会很痛苦。



在使用对称加密时,理想情况下,您和与之通信的人会提前(在将其用于任何数据交换之前)对您的密钥进行排序。这意味着,为了与某人安全地共享对称密钥,您需要亲自与他们会面以将其提供给他们。但是,如果您与另一方遍布全国各地,该怎么办?或者,更糟糕的是,如果您与他们在世界的另一端呢?



尽管这在星际迷航世界中不是问题,您可以在几秒钟之内将一个地方运输到另一个地方,但这在我们 21 世纪无人运输的世界中是不可行的。在这里,人们每天每一刻都在与世界各地的 Web 服务器交换信息。这意味着人们无法提前见面分发或接收钥匙。因此,我们必须依靠其他方式与其他方安全地交换密钥。



这就是非对称算法(或更具体地说,是密钥交换协议)发挥作用的地方。非对称密钥交换使在不安全的公共通道中交换对称密钥成为可能。您可能意识到或未意识到的是,您现在实际上正在使用对称和非对称加密技术的这种组合。



非对称技术使 Internet 上的安全对称加密成为可能

让我们以您与我们网站的连接为例。在浏览器中看到那个挂锁图标了吗?这意味着您已连接到安全的网站。







因此,当您最初连接到 TheSSLstore.com 时,您的浏览器必须与我们的服务器执行称为 TLS 握手的过程。这种握手是服务器向浏览器证明它是合法的而不是冒名顶替者的一种方式。(您知道,“因为网络犯罪分子喜欢假装别人来欺骗人们与他们联系。他们就像罗慕兰人一样,总是在从事欺骗活动。)握手过程使用非对称加密和非对称密钥交换过程。去做这个。




  • 非对称加密过程会验证数字签名。

  • 非对称密钥交换过程会加密您的浏览器和 Web 服务器将用来创建对称会话密钥的主密码。



当然,握手有几个版本-TLS 1.0,TLS 1.2,TLS 1.3-并且它们的工作方式存在特定差异。(例如,Internet 工程任务组 [IETF] 要求在 TLS 1.3 中严格使用仅前向安全密码,但这是另一个话题。)请知道,只有 TLS 1.2 握手才应最少使用。截至 2020年10月,Qualys SSL Labs 报告称 99%的站点支持 TLS 1.2 协议,而 39.8%的站点支持 TLS 1.3 协议。



我们不会在这里详细介绍 TLS 握手的工作原理,但是知道它涉及密码套件的使用。这些密码组有助于确定使用以下哪种方式来建立安全的 HTTPS 连接:




  • 协议(TLS)

  • 非对称密钥交换算法(例如 Diffie-Hellman)

  • 批量加密密码

  • 数字签名

  • 哈希函数(例如 SHA2-2)

  • 消息验证码(Mac)功能



您可以在此解释器博客中了解有关 TLS 握手如何工作的更多信息。但是现在,让我们继续讨论对称加密算法。



两种对称算法(密码)

在安全地连接到网站时进行对称加密的过程中,您正在使用批量密码来实现。批量密码有两个子类别:分组密码和流密码。



分组密码

在这种类型的密码中,明文数据分为固定长度的比特组,称为块(通常通过称为链接的过程连接)。然后将每个块作为一个单元进行加密,这会使此过程变慢。如果没有足够的数据来完全填充一个块,则使用“填充”(通常商定的数字 0)来确保这些块满足固定长度要求。



理想的分组密码具有很大的密钥长度,这是不切实际的,因此许多现代密码必须缩减密钥大小才能使用。但请注意:与非对称加密不同,对称加密密钥的大小并不能决定数据块的大小。



大多数现代对称加密算法都属于块密码阵营,并且这些类型的密码具有更广泛的用途和应用机会。因此,我们主要在这里重点介绍它们。但是,如果您想知道最流行或最常用的流密码是什么,请不用担心,我们已经为您服务。



流密码

使用这种类型的密码,它一次加密一位明文数据。这样,数据将在流中而不是像块密码那样按块进行处理。这使该过程的资源消耗更少,并且可以更快地实现。



现在,我们将不讨论分组密码和流密码的所有细节,这是另一回事了。只要确保在未来几周内留意另一篇分解分组密码和流密码的文章即可。



好的,现在这是事情开始变得令人兴奋的地方(或更复杂的情况,取决于您的观点)。使用共享密钥加密时,有几种众所周知的对称密钥算法需要知道。让我们彻底分解它们,以了解它们是什么以及它们如何工作。



对称算法列表:3 种最常见的对称算法类型

在本节中,我们整理了一个对称算法列表,该列表将帮助我们浏览最常见的对称密码。我们将从最古老的算法开始,逐步发展到“最新和最大的算法”,这就是我们今天通常用于现代对称加密的算法。



1.数据加密标准(DES)

我们名单上的第一位是数据加密标准。DES,也称为 DEA(数据加密算法的缩写),是从那时起已弃用的最早的对称加密算法之一。它基于 Feistel 密码(与许多其他分组密码类似),实际上被认为是 1976年被用作联邦信息处理标准(FIPS)的首批对称算法之一。



DES 的历史可以追溯到 1970年代初,当时它的原始形式(“ Lucifer”)是由 IBM 密码学家 Horst Feistel 开发的。IBM 报告说,该加密方法最初是根据英国劳埃德银行的要求创建的。国家标准局(现在简称为国家标准局,简称 NIST)最终为商业加密应用程序寻求建议,IBM 提交了其变体。美国国家安全局(NSA)甚至希望使用它来保护其数据。



这种类型的对称加密将特定长度的输入映射到特定长度的输出。这样,它可以在 64 位块上运行-意味着它可以同时对多达 64 个块的组进行数据加密-并且具有 56 位的密钥大小。密钥还有 8 个额外的奇偶校验位,用作检查数据传输错误的一种方式。但是,请务必注意,奇偶校验位不是您曾经用于加密的内容。



按今天的标准,此大小键实际上很小,这使其很容易受到蛮力攻击。而且,密钥和块的长度与原始的 Lucifer 密钥和块的长度有所不同,两者均从 128 位减少了。



要了解有关 DES 加密和 Feistel 网络如何工作的更多信息,请观看 Coursera 和斯坦福大学的精彩视频。



该数据加密标准(DES)文件(FIPS PUB 46-3)正式撤销于 2005年5月19日,与文件一起 FIPS 74 标准 FIPS 81 研究所和商务部科技的秘书发表在下面的联邦注册:



“由于 FIPS 46-3(DES)不再提供保护联邦政府信息所需的安全性,因此撤回了这些 FIPS。FIPS 74 和 81 是相关标准,为 DES 的实施和操作提供了条件。”



DES 加密通过三重数据加密算法(TDEA)成功地用于某些应用程序,尽管并非全部。但是,在 2000年,高级加密标准(即所谓的 AES 加密)主要取代了 DES 作为推荐。这是当今我们最常用的对称加密方法。



现在,让我们探索另外两种类型的对称加密算法。



2.三重数据加密算法(TDEA)

在 1990年代后期创建的三重数据加密算法有些棘手,因为它实际上有几个缩写:TDEA,TDES 和 3DES。但是,您可能会从其名称中猜到,3DES 基于 DES 的概念,但有所不同。



与之前的版本不同,TDEA 使用多个单独的密钥来加密数据-TDEA 的一个变体使用两个密钥,另一个变体使用三个密钥(因此其名称为“三倍”)。两者中最强的是使用三个键的那个。



这是三键 TDEA 流程工作原理的说明:







使用多个密钥会使处理数据的速度变慢,并增加了计算开销,这就是组织经常跳过 3DES 并直接使用 AES 的原因。



TDEA 使用合适的 168 位密钥大小运行。但是,与 DES 一样,3DES 也可以在小型 64 位块上运行。它的小块大小使其很容易受到 sweet32 漏洞(CVE-2016-2183 和 CVE-2016-6329)或所谓的 sweet32 生日攻击的攻击。该利用利用了一个漏洞,该漏洞使意外双方可以访问 DES / TDEA 加密数据的一部分。



TDEA 对称密钥加密算法被设置为不赞成使用,因为它将在 2023年对密码保护有用。但是,与此同时,NIST SP 800-76 Rev. 2 指定联邦政府组织可以使用 3DES 来保护敏感的未分类数据只要在“整个安全程序范围内”使用它即可。这样的程序将包括:




  • 良好的信息安全规范,

  • 强大的物理安全程序,以及

  • 计算机网络或系统访问控制。



3.高级加密标准(AES)

AES 是我们今天使用的最常见的对称加密算法。实际上,即使是 NSA,也使用 AES 加密来帮助保护其敏感数据。



AES 是 Rijndael 对称加密算法系列的一种变体。与它的 DES 或 TDEA 不同,它基于替换置换网络。因此,它以此为基础代替了 Feistel 密码。您会发现高级加密标准正在用于从 SSL / TLS 加密到无线和处理器安全性的所有内容。它是快速,安全的,并且不会明显增加您的处理开销(至少在使用正确的密钥时)。



AES 使用 128 位的块大小进行操作,而与所使用的密钥大小无关,并在多个回合中执行加密操作。



共有四个 AES 加密子过程:




  • AddRoundKey

  • 子字节

  • 排档

  • 混合柱



这些对纯文本数据执行的回合使用查找表中的替换项。因此,其中一轮看起来与此类似:







AES 在取代 DES 并取代 3DES 之后成为 FIPS 批准的新加密标准,其最大密钥大小为 256 位。这大约是 DES 密钥的 4.5 倍。任何更大的尺寸,对于大规模应用而言都是不实际的。现在,密钥的大小决定了将执行几轮操作-例如,一个 128 位的密钥将具有 10 个回合,而一个 256 位的密钥将具有 14 个回合。



当然,AES 加密非常强大。因此,正如某些控制论人士喜欢说的,使用现代计算机技术通过蛮力破解 AES 的任何尝试都是“徒劳的”。即使是中校数据,也可能会因这种计算工作而苦苦挣扎。我之所以这样说是因为,甚至预计量子计算机对对称加密算法的影响也不会像现代非对称加密方法那样大。(对称加密方法将要求较大的密钥具有量子抗性,而公共密钥方法将不再是安全的期限)。



要更深入地了解高级加密标准,请务必查看有关该主题的其他文章。在那里,您将对 AES 的工作原理有高度的技术了解。



当然,这些并不是使用中的仅有的三种对称算法。

还有许多其他类型的对称加密算法可用于不同目的和加密功能。为了让您快速入门,其中一些算法的列表包括:




  • 国际数据加密算法(IDEA,带有 128 位密钥的 64 位密码),

  • Blowfish(密钥最高为 448 位的 64 位密码),

  • Twofish(密钥最高为 256 位的 128 位密码),

  • 多个 Rivest 密码(包括 RC2,RC4,RC5,RC6),

  • KASUMI(使用 128 位密钥的密码,

  • SALSA20,以及

  • 查卡 20。



当然,也有其他密码-但我们不会在这里包含所有密码。但这至少为您提供了有关 AES 算法的一些示例。



在哪里可以找到对称算法

对称加密算法单独使用时,最适合对静态或非公共通道中的数据进行加密。我之所以这么说是因为经常发现它们在各种情况下都可以保护静态数据,包括数据库,在线服务以及与银行相关的交易。(后者是因为“支付卡行业数据安全标准”(简称 PCI DSS)需要它。)



但是,这些并不是唯一有用的地方。哦,不,您还会在 Internet 上找到对称算法。当您将它们与非对称加密结合使用以进行密钥交换时(例如,当您连接到安全网站时),对称加密将与以下服务一起发挥作用:




  • 网站数据交换

  • Google 的在线服务 G Suite

  • CodeGuard 网站备份工具

  • SalesForce 平台



我们对对称加密算法(TL; DR)的疑惑

难道不想潜入所有技术性庞然大物吗?(或者不希望阅读我讨厌的《星际迷航》中对称加密算法的比较?)不用担心。以下是本文中有关对称密钥算法的一些主要内容:




  • 加密算法基本上是执行加密功能(例如加密,解密,散列等)的逐步指南。算法分为不对称和对称两种。首先,一个密钥加密数据,另一个密钥解密数据。在后者中,一个密钥同时执行加密和解密功能。

  • 对称算法是有效的过程,旨在对安全的,非公开渠道中的数据进行加密。

  • 称为 TLS 握手的过程使您可以在公共通道中使用某种形式的对称加密。

  • 近年来使用了许多不同类型的对称密钥算法。最常见的三个包括 DES,TDEA / 3DES 和 AES。



非常感谢您对亚洲注册的支持与信任!

禁止转载

需要帮助吗?联系我们的支持团队 在线客服