什么是密码学?
密码学是一种通过使用编码算法、哈希和签名来保护信息的实践。此信息可以处于静态(例如硬盘驱动器上的文件)、传输中(例如两方或多方之间交换的电子通信)或使用中(在对数据进行计算时)。密码学有四个主要目标:
- 保密性 – 仅将信息提供给授权男用户。
- 完整性 – 确保信息未受到操控。
- 身份验证 – 确认信息的真实性或用户的身份。
- 不可否认性 – 防止用户否认先前的承诺或操作。
密码学使用许多低级密码算法来实现这些信息安全目标中的一个或多个。这些工具包括加密算法、数字签名算法、哈希算法和其他功能。下面将介绍一些最常用的低级加密算法。
密码学的作用?
密码学起源于在军事和政治人物之间发送敏感信息。可以对消息进行加密,使它们对除预期收件人之外的任何人来说都看起来像是随机文本。
今天,原始的加密技术已被彻底破解。它们被破解到只出现在一些报纸的益智题版块中。幸运的是,该领域在安全性方面取得了重大进展,今天使用的算法依赖严格的分析和数学来保证其安全性。
随着安全性的进步,密码学领域已经扩展到包括更广泛的安全目标。这包括消息身份验证、数据完整性、安全计算等。
密码学是现代社会的基础。它是通过安全超文本传输协议(HTTPS)、安全文本和语音通信,甚至数字货币实现的无数互联网应用程序的基础。
什么是加密?
加密算法是将纯文本消息转换为加密文字的过程。现代算法使用高级数学以及一个或多个加密密钥。这些内容使加密消息变得相对容易,但在不知道密钥的情况下几乎不可能解密。
根据密钥的功能,加密技术分为对称和非对称两类。
什么是对称密钥密码学?
对称密钥加密算法使用相同的加密密钥来加密明文和解密密文。对称加密要求所有预期的消息接收者都可以访问共享密钥。
下图显示了加密和解密如何使用对称密钥和算法,假设各方共享相同的密钥。
在第一个图示中,对称密钥和算法用于将明文消息转换为密文。第二个图示显示了用于将密文转回明文的相同密钥和对称算法。
最流行的分组密码之一是高级加密标准(AES)。此分组密码支持 128、192 或 256 位密钥。AES 通常与伽罗瓦计数器模式(GCM)结合使用,称为 AES-GCM,以生成经过身份验证的加密算法。
AES 是在全球范围内执行加密的行业标准。它的安全性是众所周知的,高效的软件和硬件实施也很普遍。
什么是非对称(公钥)密码学?
非对称(或公钥)密码学由一组广泛的算法组成。 这些都是基于在一个方向上相对容易执行但不容易逆转的数学问题。
此类问题的一个著名示例是因式分解问题:对于精心选择的素数 p 和 q,我们可以快速计算乘积 N=p*q。但是,仅给定 N,很难恢复 p 和 q。
基于因式分解问题的常见公钥密码算法是 Rivest-Shamir-Adleman (RSA) 函数。当与适当的填充方案结合使用时,RSA 可用于多种用途,包括非对称加密。
如果加密方案使用一个密钥(公钥)加密数据,并使用不同但在数学上相关的密钥(私钥)来解密数据,则称为非对称加密方案。
必须无法在只知道公钥的情况下通过计算确定私钥。因此,公钥可以广泛分发,而私钥需要保密和安全。这些密钥一起称为密钥对。
一种热门的非对称加密方案是 RSA-OAEP,它是 RSA 功能与最优非对称加密填充(OAEP)填充方案的组合。RSA-OAEP 通常仅用于加密少量数据,因为它速度慢并且具有比明文大得多的密文。
什么是混合加密?
像 RSA-OAEP 这样的公钥算法效率低于对称算法,因此不常用于直接加密数据。然而,它们通过提供一种密钥交换方式,在加密生态系统中发挥了重要作用。
为了使用对称加密,各方必须共享一个密钥。虽然这个密钥可以通过现有的加密通道发送,但如果我们已经有一个安全通道,我们就不需要新密钥了。相反,我们使用公钥密码学解决了密钥交换问题。
以下是交换对称密钥的两种常用方法。
- 非对称加密。 一方生成对称密钥,然后使用 RSA-OAEP 等算法将密钥加密为另一方的公钥。接收者可以使用他们的私钥解密密文以恢复对称密钥。
- Diffie-Hellman 密钥交换 –(DH)。Diffie-Hellman 是一种不同类型的公钥加密算法,专门设计用于帮助各方在没有安全通道的情况下就对称密钥达成一致。Diffie-Hellman 基于与 RSA 函数不同的数学问题,并且不如 RSA 灵活。但是,它确实具有更有效的结构,这使其在某些使用场景中更受欢迎。
这种用于密钥交换的公钥加密和用于批量数据加密的对称加密的组合称为混合加密。
混合加密使用公钥密码学的独特属性,可以在不受信任的通道上交换秘密信息,并且效率与对称加密相当。这为数据隐私实现了实用的端到端解决方案。
混合加密广泛用于 Web 的数据传输协议,例如传输层安全性协议(TLS)。当您连接到使用 HTTPS(使用 TLS 的 HTTP 安全)的网站时,您的浏览器将协商保护您的连接的加密算法。其中包括用于密钥交换、对称加密和数字签名的算法。
什么是数字签名?
数字签名方案是一种公钥密码学,可确保数据的完整性、真实性和不可否认性。
签名过程可以被认为与使用私钥加密文件非常相似。签名者使用他们的私钥在数字文档(例如文件或一段代码)上生成“签名”。
此签名对于文档/私钥对是唯一的,可以附加到文档并使用签名者的公钥进行验证。数字签名的两种常见算法是带有概率签名方案的 RSA(RSA-PSS)和数字签名算法(DSA)。
什么是消息验证码?
消息验证码(MAC)是数字签名的对称版本。使用 MAC,两方或多方共享一个密钥。一方创建一个 MAC 标签,即数字签名的对称版本,并将其附加到文档中。另一方可以使用用于创建标签的相同密钥来验证消息的完整性。
请注意,多方共享用于创建 MAC 标签的密钥,因此 MAC 不能用于身份验证或不可否认性,因为不清楚是哪一方创建了标签。
MAC 可以是独立的算法,例如 HMAC 散列消息认证码。然而,由于消息完整性几乎总是一种有价值的保证,因此它经常被集成到对称加密算法中,如 AES-GCM。
什么是椭圆曲线密码学?
椭圆曲线密码学(ECC)是一种基于椭圆曲线数学理论的公钥密码学。
ECC 的最大优势在于它可以提供与更传统技术类似的保护级别,但密钥更小,运算更快。ECC 的效率使其非常适合用于计算能力相对较低的设备,例如手机。
ECC 可用于使用 Diffie-Hellman (ECDH) 的椭圆曲线变体进行有效的密钥交换,或使用椭圆曲线数字签名算法(ECDSA)进行数字签名。由于其速度和灵活性,ECC 在互联网上的许多应用程序中被广泛使用。
什么是密码学中的哈希?
加密哈希函数是一种将任意数据转换为固定长度“指纹”的工具。哈希函数经过设计,很难找到两个不同的输入具有相同的指纹,也很难找到指纹与固定值匹配的消息。
与加密方案、签名方案和 MAC 不同,哈希函数没有密钥。任何人都可以计算给定输入的哈希值,并且哈希函数将始终在相同的输入上产生相同的输出。
哈希函数是大型密码算法和协议中的重要组成部分。其中包括数字签名算法、专用 MAC 算法、身份验证协议和密码存储。
什么是加密货币?
加密货币是一种数字货币,其中,交易由去中心化系统而不是由中央权威机构验证和维护。加密货币是密码学应用的一个示例。
加密货币使用许多不同的低级加密算法来创建一个可信且安全的平台。加密货币使用了本页讨论的许多概念 — 椭圆曲线密码学、数字签名、哈希函数等等。将这些算法结合起来,可以在没有集中权限的情况下建立信任和问责制。
什么是后量子密码学?
在过去的几十年里,人们在量子计算方面进行了大量的投资。量子计算机使用量子物理学,可以解决经典计算机无法计算的数学问题,例如因式分解问题。
大型量子计算机将破解我们今天使用的公钥密码系统,包括基于 Rivest-Shamir-Adleman (RSA) 函数的密码系统。这些算法的破解将意味着我们今天使用的许多应用程序和协议丧失机密性和身份验证功能。
尽管当今存在小型量子计算机,但它们太小,无法破解密码算法。目前尚不清楚密码相关的量子计算机(CRQC)是否或何时可用。开发 CRQC 需要重大的科学突破。
后量子密码学(PQC)是指在我们今天使用的计算机上运行的密码算法,并且不知道是否容易受到大规模量子计算机的攻击。
在 AWS Post-Quantum Cryptography 上进一步了解 AWS 研究和工程参与抗量子密码学项目以及与全球密码学界合作的工作组。
什么是加密计算?
到目前为止介绍的工具让您可以使用静态加密和传输中的加密。传统上,数据必须先解密,然后才能用于计算。加密计算通过提供直接对受密码保护的数据进行操作的工具来填补这一空白。
“加密计算”一词涵盖了一系列技术,包括安全多方计算、同态加密和可搜索加密。尽管这些技术在细节上有所不同,但它们都以加密方式保护数据,允许您对受保护的数据执行计算,同时保持该数据的机密性。