

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

# 基本原理
<a name="cryptographic-details.foundations"></a>

本章中的主题描述了 AWS 支付密码学的加密原语及其用途。它们还介绍了服务的基本元素。

**Topics**
+ [加密基元](#w2aac39c19b7)
+ [熵和随机数生成](#w2aac39c19b9)
+ [对称密钥操作](#w2aac39c19c11)
+ [非对称密钥操作](#w2aac39c19c13)
+ [密钥存储](#w2aac39c19c15)
+ [使用对称密钥导入密钥](#w2aac39c19c17)
+ [使用非对称密钥导入密钥](#w2aac39c19c19)
+ [密钥导出](#w2aac39c19c21)
+ [每笔交易派生唯一密钥 (DUKPT) 协议](#w2aac39c19c23)
+ [密钥层次结构](#w2aac39c19c25)

## 加密基元
<a name="w2aac39c19b7"></a>

AWS Payment Cryptography 使用可参数化的标准加密算法，因此应用程序可以实现其用例所需的算法。这组加密算法由 PCI、ANSI X9 和 ISO 标准定义。 EMVco所有加密均由在 PCI 模式下运行的 PCI PTS HSM 标准列出 HSMs 。

## 熵和随机数生成
<a name="w2aac39c19b9"></a>

 AWS 支付密码学密钥生成是在 AWS 支付密码 HSMs学上进行的。 HSMs 实现一个满足所有支持的密钥类型和参数的 PCI PTS HSM 要求的随机数生成器。

## 对称密钥操作
<a name="w2aac39c19c11"></a>

 支持 ANSI X9 TR 31、ANSI X9.24 和 PCI PIN 附录 C 中定义的对称密钥算法和密钥强度：
+ **哈希函数**- SHA2 和 SHA3 系列中输出大小大于 2551 的算法。与 PCI 之前的 PTS POI v3 终端向后兼容除外。
+ **加密和解密**：密钥大小大于或等于 128 位的 AES，或密钥大小大于或等于 112 位（2 个密钥或 3 个密钥）的 TDEA。
+ **消息身份验证码 (MACs)** 带有 AES 的 CMAC 或 GMAC，以及具有经批准的哈希函数且密钥大小大于或等于 128 的 HMAC。

 AWS 支付密码学使用 AES 256 作为 HSM 主密钥、数据保护密钥和 TLS 会话密钥。

 注意：列出的某些函数在内部用于支持标准协议和数据结构。有关特定操作支持的算法，请参阅 API 文档。

## 非对称密钥操作
<a name="w2aac39c19c13"></a>

 支持 ANSI X9 TR 31、ANSI X9.24 和 PCI PIN 附录 C 中定义的非对称密钥算法和密钥强度：
+ **批准的密钥机构计划** ——如NIST SP8 00-56A () 中所述。ECC/FCC2-based key agreement), NIST SP800-56B (IFC-based key agreement), and NIST SP800-38F (AES-based key encryption/wrapping

 AWS Payment Cryptography 主机仅允许使用 TLS 连接服务，其密码套件可提供[完美](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r2.pdf)的前向保密。

 注意：列出的某些函数在内部用于支持标准协议和数据结构。有关特定操作支持的算法，请参阅 API 文档。

## 密钥存储
<a name="w2aac39c19c15"></a>

 AWS 支付密码学密钥受 HSM AES 256 主密钥保护，并存储在加密数据库的 ANSI X9 TR 31 密钥块中。该数据库被复制到 AWS 支付密码服务器上的内存数据库。

 根据 PCI PIN 安全规范附录 C，AES 256 密钥的强度等于或强于：
+ 3 密钥 TDEA
+ RSA 15360 位
+ ECC 512 位
+ DSA、DH、和 MQV 15360/512

## 使用对称密钥导入密钥
<a name="w2aac39c19c17"></a>

AWS Payment Cryptography 支持导入带有对称密钥或公钥的密码和密钥块，其对称密钥加密密钥 (KEK) 的强度与受保护的密钥一样强或更强。

## 使用非对称密钥导入密钥
<a name="w2aac39c19c19"></a>

 AWS Payment Cryptography 支持导入带有对称密钥或公钥的密码和密钥块，该密钥由私钥加密密钥 (KEK) 保护，该密钥的强度与受保护的密钥一样强或更强。用于解密的公钥必须具有由客户信任的机构颁发的证书，以确保其真实性和完整性。

 P AWS ayment Cryptography 提供的公共 KEK 具有证书颁发机构 (CA) 的身份验证和完整性保护，经证实符合 PCI PIN 安全和 PCI P2PE 附录 A。

## 密钥导出
<a name="w2aac39c19c21"></a>

 密钥可以导出并使用相应的 KeyUsage 密钥进行保护，这些密钥的强度与要导出的密钥一样强或强。

## 每笔交易派生唯一密钥 (DUKPT) 协议
<a name="w2aac39c19c23"></a>

 AWS 支付密码学支持 TDEA 和 AES 基础派生密钥 (BDK)，如 ANSI X9.24-3 所述。

## 密钥层次结构
<a name="w2aac39c19c25"></a>

 Pay AWS ment Cryptography 密钥层次结构可确保密钥始终受到与其保护的密钥一样强或更强的密钥保护。

![\[AWS 支付密码学密钥层次结构图\]](http://docs.aws.amazon.com/zh_cn/payment-cryptography/latest/userguide/images/cryptographic-details.key_hierarchy.png)


 AWS 支付密码学密钥用于服务内的密钥保护：


| Key | 说明 | 
| --- | --- | 
| 区域主密钥 | 保护用于加密处理的虚拟 HSM 映像或配置文件。此密钥仅存在于 HSM 和安全备份中。 | 
| 个人资料主密钥 | 顶级客户密钥保护密钥，传统上称为客户密钥的本地主密钥 (LMK) 或主文件密钥 (MFK)。此密钥仅存在于 HSM 和安全备份中。配置文件根据支付用例安全标准的要求定义不同的 HSM 配置。 | 
|  AWS 支付密码学公钥加密密钥 (KEK) 密钥的信任根 | 受信任的根公钥和证书，用于验证和验证 Payment Cryptography 提供的用于使用 AWS 非对称密钥导入和导出密钥的公钥。 | 

客户密钥按用于保护其他密钥的密钥和保护支付相关数据的密钥进行分组。以下是两种类型的客户密钥示例：


| Key | 说明 | 
| --- | --- | 
| 客户提供的公共 KEK 密钥的可信根 | 您提供的公钥和证书作为信任根，用于验证和核实您为使用非对称密钥导入和导出而提供的公钥。 | 
| 密钥加密密钥 (KEK) | KEK 仅用于加密其他密钥，以便在外部密钥存储和 AWS 支付密码学、业务合作伙伴、支付网络或组织内的不同应用程序之间进行交换。 | 
| 每笔交易派生唯一密钥 (DUKPT) 基本派生密钥 (BDK) | BDKs 用于为每个支付终端创建唯一密钥，并将交易从多个终端转换为单个收单银行或收单机构的工作密钥。PCI Point-to-Point Encryption (P2PE) 要求的最佳实践是，不同的 BDKs 终端模型、密钥注入或初始化服务或其他分段使用不同的方法，以限制入侵 BDK 的影响。 | 
| 支付网络区域控制主密钥 (ZCMK) | ZCMK，也称为区域密钥或区域主密钥，由支付网络提供，用于建立初始工作密钥。 | 
| DUKPT 交易密钥 | 为 DUKPT 配置的支付终端会为终端和交易生成唯一的密钥。接收交易的 HSM 可以根据终端标识符和交易序列号确定密钥。 | 
| 卡数据准备密钥 | EMV 发卡机构主密钥、EMV 卡密钥和验证值以及卡片个性化数据文件保护密钥用于为单张卡片创建数据，供卡片个性化提供商使用。发卡银行或发卡机构也使用这些密钥和加密验证数据来验证卡数据，作为授权交易的一部分。 | 
| 卡数据准备密钥 | EMV 发卡机构主密钥、EMV 卡密钥和验证值以及卡片个性化数据文件保护密钥用于为单张卡片创建数据，供卡片个性化提供商使用。发卡银行或发卡机构也使用这些密钥和加密验证数据来验证卡数据，作为授权交易的一部分。 | 
| 支付网络工作密钥 | 这些密钥通常被称为发行方工作密钥或收单方工作密钥，用于对发送到支付网络或从支付网络接收的交易进行加密。这些密钥由网络频繁轮换，通常每天或每小时轮换。这些是用于 PIN/Debit 交易的 PIN 加密密钥 (PEK)。 | 
| 个人识别码 (PIN) 加密密钥 (PEK) | 创建或解密 PIN 块的应用程序使用 PEK 来防止存储或传输明文 PIN。 | 