

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS 密码学方法
<a name="aws-cryptography-services"></a>

*加密算法是一种*数学结构，旨在提供保密性（加密）、真实性（消息身份验证码和数字签名）和不可否认性（数字签名）等安全服务。如果您不熟悉加密、加密和相关术语，我们建议您在继续阅读本指南之前先阅读[关于数据加密](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-data-at-rest-encryption/about-data-encryption.html)。

## AWS 密码学基础
<a name="foundations"></a>

密码学是安全的重要组成部分。 AWS AWS 服务 支持对传输中、静态或内存中的数据进行加密。  您可以在我们宣布[AWS 数字主权 AWS 承诺的博客文章中详细了解对创新的承诺以及投资于对主权](https://aws.amazon.com/blogs/security/aws-digital-sovereignty-pledge-control-without-compromise/)和加密功能的额外控制。

AWS 遵循[分担责任模式](https://aws.amazon.com/compliance/shared-responsibility-model/)来保护您的数据。 AWS 服务 使用符合行业标准并促进互操作性的可信加密算法。这些算法经过公共标准机构和学术研究的审查。相关标准已被政府、业界和学术界广泛接受。

AWS 默认为高保障的加密实现，并且更喜欢高效的硬件优化解决方案。我们的加密核心库 [AWS-LC](https://github.com/aws/aws-lc) 可作为开源使用，以提高透明度和在全行业范围内重复使用。 AWS-LC 中的许多加密算法实现都经过正式验证，以提高对在多个不同平台上实现的正确性和安全性的保证。该库还经过了 NIST's FIPS-1 40 程序的验证。

## 加密算法
<a name="about-algorithms"></a>

我们定义了三种类型的加密算法：
+ *非对称**加密*使用一对密钥：用于加密（或验证）的公钥和用于解密（或签名）的私钥。您可以共享公钥，因为它不用于解密，但对私钥的访问应受到严格限制。 AWS 服务 支持或计划支持后量子算法，例如 ML-KEM 和 ML-DSA。 AWS 服务 还支持传统的加密算法，例如 RSA 和椭圆曲线加密 (ECC)。
+ *对称**加密*使用相同的密钥来加密和解密数据，或者对数据进行身份验证和验证。 AWS 服务 通常与 AWS Key Management Service (AWS KMS) 集成以加密静态数据，它使用 AES-256 模式。 
+ *其他加密功能*与非对称和对称密码学结合使用，为机密性、完整性、身份验证和不可否认性应用程序构建安全、实用的协议。示例包括哈希函数和密钥派生函数。

## 中推荐的加密算法 AWS
<a name="algorithms"></a>

下表总结了 AWS 认为适合在其服务中部署以保护您的数据的加密算法、模式和密钥大小。随着加密标准的发展，该指南将随着时间的推移而发展。

服务中可用的算法可能有所不同，每项服务的文档中都有相应的解释。如果您需要实现已批准算法的软件库，请查看最新版本的 [AWS-LC 库中是否包含该软件库](https://github.com/aws/aws-lc)。

算法获准用于 AWS 以下两个类别之一：
+ *首选*算法符合 AWS 安全和性能标准。
+ *可接受*算法，可用来满足某些应用程序的兼容性需要，但不是首选。

### 非对称密码术
<a name="asymmetric-cryptography.b1543bff-16f1-5150-96d4-785120c14e05"></a>

下表列出了被认为适合 AWS 用于加密、密钥协议和数字签名的非对称算法。


| 
| 
| **Type** | **算法** | **状态** | 
| --- |--- |--- |
| 加密 | RSA-OAEP（≥ 2048 位模数） | 可接受 | 
| 加密 | HPKE（P-256 或 P-384、HKDF 和 AES-GCM） | 可接受 | 
| 密钥协议 | ML-KEM-768 或 ML-KEM-1024 | 首选（抗量子） | 
| 密钥协议 | 使用 P-256、P-384、P-521 或 X25519 的 ECDH (E) | 可接受 | 
| 密钥协议 | ECDH(E) 与 brainpoolP256r1、brainpoolP384r1 或 brainpoolP512r1 结合 | 可接受 | 
| Signatures | ML-DSA-65 或 ML-DSA-87 | 首选（抗量子） | 
| Signatures | SLH-DSA | 可接受（抗量子） | 
| Signatures | 带有 P-256、P-384、P-521 或 Ed25519 的 ECDSA | 可接受 | 
| Signatures | RSA（≥ 2048 位模数） | 可接受 | 

### 非对称加密
<a name="symmetric-cryptography.7cb55a3e-eecb-5f61-82b7-4faa705ac662"></a>

下表列出了被认为适合在中 AWS 用于加密、经过身份验证的加密和密钥封装的对称算法。


| 
| 
| **Type** | **算法** | **状态** | 
| --- |--- |--- |
| 经过验证的加密 | AES-GCM-256 | 首选 | 
| 经过验证的加密 | AES-GCM-128 | 可接受 | 
| 经过验证的加密 | ChaCha20/Poly1305 | 可接受 | 
| 加密模式 | AES-XTS-256（用于块存储） | 首选 | 
| 加密模式 | AES-CBC/CTR（未经身份验证模式） | 可接受 | 
| 钥匙包装 | AES-GCM-256 | 首选 | 
| 钥匙包装 | AES-KW 或 AES-KWP 与 256 位密钥结合 | 可接受 | 

### 其他加密函数
<a name="other-cryptographic-functions.f1580287-815e-5157-9e15-9a2ca3d80bfa"></a>

下表列出了被认为 AWS 适用于哈希、密钥派生和消息身份验证的算法。


| 
| 
| **Type** | **算法** | **状态** | 
| --- |--- |--- |
| 哈希 | SHA-384 | 首选 | 
| 哈希 | SHA-256 | 可接受 | 
| 哈希 | SHA3 | 可接受 | 
| 密钥推导 | HKDF\$1expand 或者用 SHA-256 的 HKDF | 首选 | 
| 密钥推导 | 带有 HMAC-SHA-256 的计数器模式 KDF | 可接受 | 
| 消息身份验证码 | HMAC-SHA-384 | 首选 | 
| 消息身份验证码 | HMAC-SHA-256 | 可接受 | 
| 消息身份验证码 | KMAC | 可接受 | 
| 密码哈希 | 用 scrypt SHA384 | 首选 | 
| 密码哈希 | PBKDF2 | 可接受 | 

## 密码学用于 AWS 服务
<a name="used-services"></a>

AWS 服务 依靠经过审查的算法的安全、开源实现来保护您的数据。算法的具体选择和配置将因服务而异。某些 AWS 工具和服务使用特定的算法。在其他情况下，您可以在支持的算法和密钥长度之间进行选择，也可以使用推荐的默认值。

AWS 加密服务符合各种加密安全标准，因此您可以遵守政府或行业法规。有关 AWS 服务 符合的数据安全标准的完整列表，请参阅[AWS 合规性计划](https://aws.amazon.com/compliance/programs/)。