密码学 - 加密算法



加密算法将信息转换为密文。该算法使用加密密钥以可预测的方式转换数据,并将数据转换为看起来随机的密文,但可以使用解密密钥将其转换回明文。在上一章中,我们了解了数据加密是什么,本章我们将了解加密算法。

加密算法分类

根据加密算法的操作、密钥长度和用途,可以将其分为不同的类别。主要分类如下:

  • 对称加密 - 这种加密使用同一个密钥进行加密和解密。例如,使用同一个密钥对 zip 文件进行加密和解密。由于密钥需要对外部保密,对称加密有时被称为“秘密密钥”加密。常用的对称加密算法包括 DES、AES 和 Blowfish。
  • 非对称加密(公钥加密) - 公钥加密或非对称加密使用公钥-私钥对,其中使用公钥加密的数据只能使用私钥解密。非对称加密部分由 TLS(或 SSL)协议使用,该协议支持 HTTPS。常见的非对称加密算法包括 RSA 和 ECC。
  • 哈希函数 - 哈希函数是从给定数据生成特定字符集(哈希值)的工具。这些哈希值是不可逆的,因此无法从哈希值恢复原始信息。哈希函数通常用于验证数据完整性。常用的例子包括 SHA-256 和 MD5。
  • 分组密码和流密码 - 对称密钥方法提供两种主要形式:分组密码和流密码。两种密码都使用相同的密钥来加密和解密数据。流密码逐位处理数据,而分组密码则处理固定大小的数据块。
  • 密钥长度 - 密钥长度通常以比特数的对数形式给出。例如,3 位密钥长度可以使用 8 个不同的密钥 (2 x 2 x 2 = 8)。密钥长度越大,数据通常被认为越安全。密钥长度是一个加密安全标准,它根据协议和算法而有所不同。
  • 用途 - 加密算法的用途可以根据其具体的应用进行分类,例如保护互联网上的数据传输 (SSL/TLS)、保护存储数据(磁盘加密)以及保护各种程序中的通信(例如用于加密电子邮件的 PGP)。

加密算法类型

下图显示了一些根据分类列出的加密算法类型名称:

Encryption Algorithms

对称加密算法

如上图所示,常用的对称加密算法包括数据加密标准 (DES)、高级加密标准 (AES)、三重 DES (3DES)、Blowfish、Twofish、IDEA(国际数据加密算法)和 RC4(Rivest 密码 4)。下面我们将简要讨论这些加密技术。

  • 数据加密标准 (DES) - 数据加密标准 (DES) 是一种使用单个密钥来保护数字数据的加密类型。虽然由于其 56 位的短密钥长度,它可能不如当前方法安全,但它在密码学的发展中发挥了至关重要的作用。
  • 高级加密标准 (AES) - 高级加密标准 (AES) 是一种对称分组密码,美国政府使用它来保护机密数据。AES 在全球范围内广泛用于软件和硬件中,用于加密重要信息。它在政府计算机安全、网络安全和电子数据保护中发挥着至关重要的作用。
  • 三重 DES (3DES) - 三重数据加密标准 (3DES) 是密码学中的一种标准,它使用固定长度的密钥,并涉及三次 DES 算法的传递。它是一种基于对称分组密码的加密方法,这意味着发送方和接收方共享相同的密钥进行加密和解密。
  • Blowfish - Blowfish 是一种加密方法,旨在取代 DES。它将消息分成 64 位块并相应地进行加密。Blowfish 以其速度、灵活性和优异的安全性能而闻名,使其成为保护电子商务网站、银行交易和密码管理应用程序的流行选择。Blowfish 在开发者中非常流行,部分原因是它是公共领域的并且可以免费使用。
  • Twofish - Twofish 是 Blowfish 的继任者,它也使用对称加密来解密 128 位数据块,无需许可证。与其他算法不同,Twofish 始终以 16 轮加密数据,而不管密钥大小如何。这使得它适用于软件和硬件环境,并且以其快速性能而闻名。许多组织使用 Twofish 来进行安全的数据通信和保护。
  • RC4 - RC4 是一种具有可变长度密钥算法的流密码。该算法一次加密一个字节(或更大的数据单元)。密钥输入是一个伪随机位生成器,它创建一个 8 位数字流,在不知道输入密钥的情况下是不可预测的。生成器的输出,称为密钥流,使用 X-OR 运算与明文流密码逐字节混合。
  • IDEA - 国际数据加密算法 (IDEA) 是对称密钥分组密码加密的一个例子。IDEA 使用 128 位密钥,并处理 64 位块。基本上,它将 64 位的明文块转换为 64 位的密文块。

非对称加密算法

非对称加密技术示例包括RSA、椭圆曲线加密(ECC)、Diffie-Hellman密钥交换、ElGamal和数字签名算法(DSA)。非对称加密,通常称为公钥加密,使用两个不同的密钥进行加密和解密。因此,让我们讨论所有流行的非对称加密算法:

  • Rivest-Shamir-Adleman (RSA) − RSA是一种非对称公钥加密系统,作为互联网的加密标准。RSA加密可靠且安全。它是一种使用密钥对的加密类型:公钥和私钥分别用于加密和解密。
  • 椭圆曲线加密(ECC) − 椭圆曲线加密(ECC)是一种类似于RSA的加密方法,允许公钥加密。顾名思义,ECC是一种基于有限域椭圆曲线代数结构的非对称加密技术。
  • Diffie-Hellman密钥交换 − Diffie-Hellman算法用于创建共享密钥,可在通过公共网络发送数据时用于私密通信。椭圆曲线用于生成点,并使用参数获得密钥。
  • ElGamal − ElGamal加密方案是一种基于Diffie-Hellman密钥交换的公钥加密的非对称密钥加密方法。ElGamal算法为公钥加密提供了RSA的替代方案。RSA的安全性依赖于对大整数进行因式分解的复杂性。ElGamal算法的安全性在于在大素数范围内计算离散数据的复杂性。
  • 数字签名算法 (DSA) − DSA 指的是数字签名算法。它用于数字签名及其验证。它基于模幂运算和离散对数的数学原理。美国国家标准与技术研究院 (NIST) 于 1991 年制定了该算法。

哈希函数

  • 安全哈希算法 (SHA-1, SHA-256, SHA-3) − 安全哈希算法或 SHA 是一组固定的加密函数,旨在确保数据安全。这些算法通过使用哈希函数(包括位运算、模加法和压缩功能)更改信息来发挥作用。
  • 消息摘要算法 (MD5) − MD5算法通常用于创建128位哈希值以验证数据完整性。它是对MD4算法的改进,并于1992年在RFC 1321中正式记录。MD5可以作为校验和,以确保数据完整性得到维护并免受意外损坏。
  • RIPEMD (RACE完整性基元评估消息摘要) − RIPEMD 代表 RACE 完整性基元评估消息摘要,它是一个于 1992 年创建的哈希函数组。它的灵感来自 MD4(一种以其漏洞而闻名的哈希函数)的弱点。它专门设计用于优化 32 位处理器的性能。
  • Whirlpool − Whirlpool 是一种密码哈希函数。该算法的灵感来自方块密码和高级加密标准。Whirlpool 被设计为块密码哈希函数,能够处理小于 2^256 位的输入长度并产生 512 位的哈希输出。
广告