本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Decrypt
调用 AWS KMS 可解密接受加密值密文和加密上下文的密文值。AWS KMS 使用 AWS 签名版本 4 签名的请求对调用进行身份验证,并从密文提取打包密钥的 HBKID。HBKID 用于获取解密密文、密钥 ID 和密钥 ID 的策略所需的 EKT。请求基于密钥策略、可能存在的授权以及引用密钥 ID 的任何关联 IAM 策略进行授权。Decrypt
功能与加密功能类似。
以下是 Decrypt
请求语法。
{ "CiphertextBlob": "blob", "EncryptionContext": { "string" : "string" } "GrantTokens": ["string"] }
以下是请求参数。
- CiphertextBlob
-
包括元数据的密文。
- EncryptionContext
-
(可选)加密上下文。如果在
Encrypt
功能中指定了此参数,则此处也必须指定,否则解密操作将失败。有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的加密内容。 - GrantTokens
-
(可选)表示提供执行解密权限的授权的授权令牌列表。
密文和 EKT 连同加密上下文通过经身份验证的会话发送给 HSM 用于解密。
HSM 运行以下操作:
-
解密 EKT 以获取 HBK = Decrypt(DKi, EKT)。
-
从密文结构中提取一次性的 N。
-
从 HBK 和 N 重新生成 256 位 AES-GCM 派生的加密密钥 K。
-
解密密文以获取 plaintext = Decrypt(K, context, ciphertext)。
生成的密钥 ID 和明文将通过安全会话返回给 AWS KMS 主机,然后通过 TLS 连接返回给调用的客户应用程序。
以下是响应语法。
{ "KeyId": "string", "Plaintext": blob }
如果调用的应用程序希望确保明文的真实性,则必须验证返回的密钥 ID 是否为预期的密钥 ID。