什么是数据加密?

计算机加密的基础在于密码学领域,这一学科的历史可以追溯到人类第一次感到需要隐藏信息的时候。如今,大多数加密方法都依赖于计算机,因为手动创建的代码可以很容易地被计算机算法解密。加密系统采用一系列称为加密算法或密码的过程,这些过程旨在将可读文本转换为加密消息(称为密文),或将加密消息转换回原始可读形式。

1883 年,Auguste Kerckhoffs 提出了关于加密方法的想法:他认为方法本身应该向公众开放,但加密的“密钥”必须保密。这个想法现在被称为柯克霍夫原理。如今,计算机加密系统大致分为两种类型:对称加密,其中相同的密钥用于加密和解密数据,以及非对称(或公钥)加密,其中使用两种不同的密钥 - 一个公共密钥和一个私有密钥——对于这些过程。

什么是对称加密?

在对称加密中,发送方和接收方都使用对称密钥(同一密钥的第二个实例)来加密和解密消息。密钥的机密性是对称加密的关键方面。提供安全的密钥分发方法对对称加密提出了显着的挑战,通常称为“密钥分发问题”。密钥在对称密码学中起着至关重要的作用,丢失或放错地方会带来可怕的后果。如果这些密钥最终落入恶意个人之手,他们就有可能解密这些消息。

与非对称加密技术相比,对称加密技术的主要优点是速度快。然而,对称加密的主要缺点包括密钥分发和密钥管理方面的挑战。随着用户数量的增加,所需密钥的数量也随之增加。处理越来越多的密钥演变成所谓的“密钥管理问题”。

播放视频

什么是非对称加密?

通过公共互联网连接到网站会带来复杂性,由于安全共享密钥而不被拦截的挑战,使得仅依赖对称加密变得不切实际。 1976 年 11 月,Diffie 和 Hellman 在他们发表在 IEEE Transactions on Information Theory 上的开创性论文“密码学新方向”中解决了这一困境。他们的工作通过引入公钥加密的概念来解决这个问题,这种方法允许通过不安全的通道进行安全的密钥交换,而没有被拦截的风险。

公钥加密也称为非对称加密,对于保持电子通信和数据存储安全、确保机密性、验证发送者身份以及防止否认消息的真实性至关重要。此方法使用两个密钥:一个公钥,任何人都可以访问并公开共享,通常通过公共目录;以及一个私钥,所有者必须保密。尽管公钥可供所有人使用并用于加密消息,但这些消息仍然是安全的。为了解密消息,计算机将发送者的公钥与其自己的私钥结合起来。即使公钥已知并且消息可以被截获,但如果没有相应的私钥,则消息的加密内容无法被解码,从而保持了其安全性。密钥对由长度较长的素数衍生而来。公钥和私钥都是通过利用“活板门”函数的统一数学程序同时计算的。这些“陷门”函数的定义特征是它们易于在一个方向上进行计算,这与在没有特定知识的情况下逆向计算(确定其逆)的挑战形成鲜明对比。

与对称加密相比,非对称加密由于其复杂的数学过程而速度较慢,需要更多的计算能力。对资源的高需求使其不太适合长时间会话,因为维护它可能会占用大量资源。

对称加密与非对称加密的优缺点

尽管非对称加密被认为比对称加密更复杂,但组织通常在其安全框架中使用这两种类型。由于速度快,对称加密在快速加密大量数据和保护私有系统内的通信方面表现出色。相比之下,非对称加密更适合开放系统,其中安全密钥交换、确保数字签名和身份验证至关重要,尽管其性能较慢。两者之间的选择取决于具体的业务需求,组织平衡速度、安全性和其他相关考虑因素等优先级,以确定针对不同场景的最合适的加密方法。

  • 速度。对称加密的优点是比非对称加密更快,因为它的加密和解密所需的计算能力更少。这主要是因为对称加密中使用的密钥比非对称密钥短得多。而且由于对称加密只需要一把密钥,整个加密过程速度更快,适合加密大量数据。非对称加密不具有这些优点,因此它的效率可能较低,并且当网络进程在尝试加密或解密通信时陷入困境时,可能会产生性能问题。这可能会导致进程缓慢和内存容量问题。
  • 安全。非对称加密被认为更安全,因为它使用两个不同的密钥 - 用于加密通信的公钥和用于解密这些通信的私钥。由于私钥永远不需要共享,因此它起到了保护作用,确保只有预期的接收者才能解密编码的通信。由此产生的防篡改数字签名使攻击者更难破坏系统。另一方面,对称加密的风险有点大,因为它使用相同的密钥来加密通信,这意味着它必须与需要解密该通信的任何人共享。每次共享密钥时,都有被恶意第三方拦截的风险。
  • 简化密钥分发。由于对称加密使用相同的密钥进行加密和解密,因此安全密钥分发至关重要。使用非对称加密,密钥分发过程更简单,因为只有公钥被共享,而私钥仍然保密。

对称加密的用例

银行业

对称加密以其效率和速度而闻名,被银行业广泛采用,用于安全处理大量数据。以下是该领域对称加密的关键用例:

  • 支付应用:在卡交易和其他支付服务中,对称加密可保护个人识别信息 (PII),以防止身份盗窃和欺诈性收费。这对于在不产生大量资源成本的情况下最大限度地降低与日常支付交易相关的风险至关重要。
  • 验证:对称加密用于验证消息发送者的真实性。这可以确保声称发送消息的个人或系统确实是这样做的,这对于维护银行通信的信任和安全至关重要。

静态数据

静态数据是指未在设备或网络之间主动传输的信息,例如保存在硬盘驱动器、笔记本电脑、闪存驱动器上或以其他形式存储/存档的数据。保护静态数据的目标是保护非活动数据(无论其位于何处)。尽管静态数据可能被认为比传输中的数据暴露更少,但对于攻击者来说,它通常代表一个更诱人的目标。为了保护静态数据,公司可以选择在存储之前对单个敏感文件进行加密,或者决定对整个存储介质进行加密。

通过整个磁盘或全磁盘加密最有效地加密静态数据。与标准文件或文件夹加密以及加密保管库相比,全磁盘加密具有多种优势。它确保几乎所有内容(包括交换空间和临时文件)都被加密。加密这些方面至关重要,因为它们可能会暴露敏感信息。然而,在基于软件的方法中,引导代码仍然未加密。例如,BitLocker 驱动器加密使用未加密的卷进行启动,而包含操作系统的卷则完全加密。此外,选择加密哪些特定文件并不取决于用户的判断,从而消除了加密关键数据时潜在的疏忽或不愿意。

非对称加密的用例

数字签名

随着企业和组织从带有墨水签名或真实性标记的纸质文档过渡,数字签名为电子文档的来源、身份和状态提供了增强的保证。此外,他们确认签署人的知情同意和认可。

数字签名用于识别任何未经授权的数据更改并验证个人签名的身份。此外,签名数据的接收者可以向第三方提供数字签名作为该签名确实源自所谓签名者的证据。此特性称为不可否认性,因为它可以防止签名者在将来否认签名。

NIST 在 FIPS 186-4 中定义的数字签名标准 (DSS) 使用非对称加密技术为通过非安全通道发送的消息添加一层验证和安全性。数字签名确保身份验证、不可否认性和机密性。以下是 Alice 和 Bob 如何使用数字签名来保护消息的安全:

  1. 对消息进行哈希处理:Alice 首先创建消息的哈希值,生成消息摘要。散列是一种确保数据完整性的方法,它获取原始消息,添加一个字符串值,然后将其转换为一个新的、不可逆的值,称为消息摘要。此过程使得无法从摘要中检索原始消息。
  2. 加密摘要:然后使用 Alice 的私钥对消息摘要进行加密。这个加密的摘要就是数字签名。
  3. 附加并发送:Alice 将此数字签名附加到她的消息中并将其发送给 Bob。
  4. 解码签名:收到消息后,Bob 使用 Alice 的公钥来解密数字签名,从而生成消息摘要。
  5. 对接收到的消息进行哈希处理:Bob 还对接收到的消息进行哈希处理以生成另一个消息摘要。
  6. 验证完整性和真实性:Bob 比较两个消息摘要。如果它们匹配,他就可以确定该消息确实来自 Alice,并且在传输过程中保持不变。摘要中的任何差异都表明消息已被更改。

通过确认发送者的身份并确保消息的完整性,此过程允许 Alice 和 Bob 甚至通过非安全通道进行安全通信。

数字签名专为需要确保数据完整性并验证数据来源的应用程序而设计。这些应用包括:

  • 电子邮件(Email):通过验证发件人身份并确保消息未被更改来增强电子邮件通信的安全性。
  • 电子资金转账 (EFT):安全授权账户或实体之间的资金转账,确保交易的合法性。
  • 电子数据交换 (EDI):保护公司之间的业务文档或数据交换,这对于订购物资或开具发票等操作至关重要。
  • 软件分发:确保软件来自合法来源且未被篡改,这对于保护计算机系统免受恶意软件侵害至关重要。
  • 数据存储:保护存储数据的完整性并验证其来源,这对于法律、财务或个人记录至关重要。

数字签名是保护电子交易和通信安全的强大工具,提供了一种验证数字消息或文档的真实性及其内容完整性的方法。

非对称和对称加密的用例:消息传递应用程序

SignalWhatsApp等消息应用程序采用端到端加密来保护用户通信的机密性和隐私,同时对用户进行身份验证。这种加密意味着仅加密消息内容,而不加密标头、尾部和路由信息等元数据。这种加密策略的基础是由 Open Whisper Systems 开发的信号协议,它可以防止第三方甚至消息服务提供商本身访问消息或通话内容。重要的是,如果用户的加密密钥被泄露,则无法使用这些密钥解密过去的消息。

以下是端到端加密在这些消息传递应用程序中的工作原理,结合了非对称和对称加密技术:

  • 安装和密钥注册:在智能手机上安装应用程序后,客户端的公钥将在应用程序的服务器上注册。私钥保持秘密并仅存储在用户的设备上。
  • 发起会话:当用户想要开始对话时,他们从服务器检索接收者的公钥。然后,发起客户端使用这些公钥加密第一条消息,其中包括用于建立对称会话密钥的参数。
  • 建立安全通道:接收者使用其私钥解密此初始消息,从而允许双方建立会话。此后,所有交换的消息都受到消息密钥的保护,消息密钥使用 CBC 模式下的 AES256 进行加密,并使用 HMAC-SHA256 进行身份验证。
  • 维护隐私:在更改设备或重新安装应用程序(需要建立新会话)之前,此加密会话将保持安全。

WhatsApp加密概述白皮书进一步详细介绍了这一过程,说明了用于确保用户通信保持私密性和安全性的复杂方法,强调了使端到端加密成为现代数字通信隐私基石的技术基础。

非对称和对称加密的用例:HTTPS

HTTPS(安全超文本传输​​协议)在此过程中发挥着关键作用,确保客户端(浏览器)和服务器之间的安全通信。与关注用户身份的应用程序不同,HTTPS 用于机器识别。

HTTPS 作为 TCP/IP 应用层协议运行,本质上是在 HTTP 上分层 SSL/TLS(安全套接字层/传输层安全)协议。它利用非对称和对称加密来保护连接。以下是HTTPS 如何促进安全连接的简单概述:

  • TLS 证书生成和身份验证:该过程首先为服务器生成 TLS 证书,该证书必须由证书颁发机构 (CA) 进行身份验证。该证书对于建立可信连接至关重要。
  • ClientHello 消息:客户端(浏览器)通过向服务器发送 ClientHello 消息来发起会话。此消息包含建立 TLS 连接所需的详细信息,例如支持的密码套件和最高 TLS 版本。
  • ServerHello 消息:作为响应,服务器发回 ServerHello 消息,指定要使用的 TLS 版本、其 TLS 证书及其公共非对称密钥。
  • 浏览器验证服务器证书:客户端验证服务器的证书以确保其与合法服务器进行通信。
  • 会话密钥创建和加密:客户端生成用于对称加密的随机会话密钥,并使用服务器的公钥对其进行加密,然后将其发送到服务器。
  • 服务器解密会话密钥:服务器收到加密的会话密钥后,用其私钥对其进行解密。现在,双方都拥有对称会话密钥。
  • 切换到对称加密:共享会话密钥后,连接将从使用公钥加密切换到会话剩余部分的对称加密。

该方法有效地结合了两种加密类型的优点。尽管非对称加密由于复杂的数学运算而速度慢且计算要求高,但它非常适合在连接开始时安全地交换对称会话密钥。随后,在会话期间,速度更快且占用资源更少的对称加密将接管。这种方法不仅保证了传输中数据的安全,而且解决了对称加密系统固有的密​​钥分发挑战。

常见的对称加密算法

某些算法广泛用于在对称加密范围内保护数据和通信。对称加密的理想算法包括高级加密标准 (AES)、数据加密标准 (DES)、三重数据加密标准 (3DES)、Blowfish Twofish 和 Rivest Cipher (RC4)。

高级加密标准 (AES)

高级加密标准 (AES) 是一种流行的对称加密算法,它以 128 位块的形式加密数据,为数字数据提供强大的安全框架。 AES 使用三种不同长度的密钥对固定大小的数据块进行操作:128、192 或 256 位。加密过程涉及多轮转换,128 位密钥需要 10 轮,192 位密钥需要 12 轮,256 位密钥需要 14 轮。这些回合由一系列替换和排列步骤组成,以称为替换排列网络的结构进行组织,这显着增强了各种应用程序的安全性和效率。

AES 的开发是为了取代数据加密标准 (DES),后者是一种先前的加密标准,由于其相对较短的密钥长度而变得容易受到攻击。 2005 年安全研究人员成功破解 DES 时,这一漏洞凸显出来,表明需要一种更安全的加密方法。 AES 较长的密钥长度使其更能抵抗暴力攻击,解决了其前身的主要弱点,并将其确立为现代加密安全措施的基石。

三重数据加密标准 (3DES)

数据加密标准 (DES) 是一种为加密数字信息而开发的对称密钥算法。尽管 DES 最初很受欢迎,但由于其 56 位密钥长度较短而容易受到暴力攻击,因此开发了三重 DES (3DES) 作为更安全的替代方案。 3DES通过使用三种不同的密钥对数据块进行三次加密,增强了原始DES的安全性,有效增加了密钥长度和安全性。

3DES 分三个加密阶段运行,通过使用 112 位(在两密钥 3DES 中)和 168 位(在三密钥 3DES 中)密钥长度,显着提高了 DES 的安全性。然而,三重加密过程本质上使 3DES 比新的加密算法慢。此外,3DES 对小数据块的使用并不能完全消除暴力攻击的风险,随着计算能力的增加,这一问题会受到关注。

为了反映这些担忧和加密技术的进步,标准组织建议在所有新应用程序中弃用 3DES。建议在 2023 年之后不要使用 3DES,从而引导行业采用更安全、更高效的加密方法(例如 AES),这种方法可提供更强的安全性,并且不会出现 3DES 固有的较小块大小和较慢加密速度相关的缺点。

河豚

Blowfish 是一种对称密钥分组密码,以其简单的设计、速度和抵御加密攻击的能力而闻名。 Blowfish 是作为一种“通用算法”而创建的,旨在为当时流行的数据加密标准 (DES) 提供一种快速、免费的替代方案,该标准已显示出过时的迹象并且容易受到攻击。

与 DES 不同,Blowfish 使用从 32 位到 448 位的可变密钥长度运行,允许根据应用程序的具体要求采用灵活的加密强度方法。它以 64 位块的形式对数据进行加密,这在提高其效率的同时,也是其局限性的一个因素;与较新的加密算法使用的较大块大小相比,64 位块大小被认为不太安全,这阻碍了其在所有用例中完全取代 DES 的能力。

尽管有这些限制,Blowfish 的非专有性质(它被设计为无需许可且可免费使用)已使其在各种应用中得到广泛采用。它在密码散列以及数据的安全存储和传输中非常有用,其简单性、有效性和速度的平衡使其成为保护敏感信息的有吸引力的选择。

双鱼

Twofish 作为 Blowfish 的后继者,解决并改进了与其前身相关的许多安全问题,特别是通过使用更大的 128 位块大小,该大小可扩展到最大 256 位。这一增强功能使 Twofish 与高级加密标准 (AES) 等现代加密标准更加紧密地结合在一起,后者还对固定大小的块中的数据进行加密,并支持 128、192 或 256 位的密钥长度。

Twofish 的设计重点是与 32 位 CPU 的兼容性,用途广泛,在硬件和软件环境中都能高效运行。这种适应性,加上其开源状态(意味着它可以不受许可限制地自由使用),使其在各种安全应用程序中广受欢迎。

Twofish 的一个显着特点是它始终应用 16 轮加密,无论密钥大小或数据长度如何。这种方法提供了高水平的安全性,较少依赖于被加密的密钥或数据的细节,与基于这些因素改变加密轮数的算法相比,增强了其对攻击的抵抗力。一致的加密方法确保 Twofish 仍然是保护各种应用程序中的数字数据的强大而可靠的选择。

Rivest 密码 (RC4)

RC4 是 Ron Rivest 于 1987 年为 RSA Security 开发的一种流密码,一次加密一个字节的数据。 RC4 是最流行的流密码之一,用于 SSL/TLS 协议、IEEE 802.11 无线 LAN 标准和 Wi-Fi 安全协议无线等效协议 (WEP)。虽然 RC4 在可用性和性能速度方面具有显着优势,但由于发现了重大缺陷,其受欢迎程度有所下降。

常见的非对称加密算法

非对称加密算法对于保护数字通信至关重要。最常用的非对称算法包括 Rivest-Shamir-Adleman (RSA)、Diffie-Hellman、椭圆曲线加密 (ECC) 和 Pretty Good Privacy (PGP)。

里维斯特-沙米尔-阿德曼 (RSA)

RSA 是一种广泛使用的非对称加密算法,存在于各种产品和服务中,被认为是非对称加密的主要内容。 RSA 的机制依赖于这样一个概念:两个足够大的数字相乘是很简单的。然而,从他们的乘积中找出原始素数是非常具有挑战性的。用于导出公钥和私钥的两个数字之一是两个大素数相乘的结果。两个密钥均使用这些相同的素值来制定。 RSA 密钥的长度通常为 1024 或 2048 位,这使得它们的分解非常复杂。然而,由于 RSA 需要两个长度令人难以置信的不同密钥,因此加密和解密过程可能会很慢,但它为敏感信息提供的安全级别是无与伦比的。

迪菲-赫尔曼密钥交换

Diffie-Hellman通常被称为指数密钥交换,是一种数字加密方法,它利用提升到一定幂的数字来生成解密密钥。这是使用从不直接发送的元素来完成的。从数学角度来看,这样的过程使得潜在的解密任务变得极其复杂,使得密码破解者更难破解。 Diffie-Hellman 密钥交换有利于两个实体之间共享机密,从而能够通过开放网络安全地交换信息。本质上,该算法利用公钥方法来实现私有加密密钥的传输。

椭圆曲线数字签名算法(ECDSA)

ECDSA(即椭圆曲线数字签名算法)是公钥加密中使用的更复杂的算法之一。椭圆曲线加密 (ECC) 生成的密钥比数字签名算法密钥的平均大小更小。 ECDSA 利用有限域上椭圆曲线的代数框架。 ECDSA 执行与其他数字签名相同的功能,但更有效。这是因为 ECDSA 使用较小的密钥来实现与其他数字签名算法相同级别的安全性。由于 ECC 是一种快速且容易完成但极难逆转的数学运算,因此破解私钥几乎是不可能的。椭圆曲线密码学的主要应用包括生成伪随机数、数字签名等。

良好的隐私性 (PGP)

PGP 是一种广泛使用的程序,用于在线加密和解密电子邮件、通过数字签名验证消息以及保护文件。如今,PGP 是一个通用术语,通常应用于任何遵循 OpenPGP 公钥加密标准的软件或工具。