

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 中的 AES 金鑰包裝 AWS CloudHSM
<a name="manage-aes-key-wrapping"></a>

本主題說明 中的 AES 金鑰包裝選項 AWS CloudHSM。AES 金鑰包裝使用 AES 金鑰 (包裝金鑰) 來包裝任何類型的另一個金鑰 (目標金鑰)。您可以使用金鑰包裝來保護儲存的金鑰，或透過不安全的網路傳輸金鑰。

**Topics**
+ [支援的演算法](#supported-types)
+ [在 中使用 AES 金鑰包裝 AWS CloudHSM](#use-aes-key-wrap)

## 支援的演算法
<a name="supported-types"></a>

AWS CloudHSM 提供三種 AES 金鑰包裝選項，每個選項都根據目標金鑰在包裝前的填充方式而定。當您呼叫金鑰包裝時，會根據您使用的演算法自動完成填補。下表列出支援的演算法和相關詳細資訊，可協助您為應用程式選擇適當的包裝機制。


| AES 金鑰包裝演算法 | 規格 | 支援的目標金鑰類型 | 填補方案 | AWS CloudHSM 用戶端可用性  | 
| --- | --- | --- | --- | --- | 
| AES 金鑰包裝，零填補  | [RFC 5649](https://tools.ietf.org/html/rfc5649) 和 [SP 800–38F](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf) | 全部 | 如果需要，在金鑰位元後增加零，以對齊區塊 | SDK 3.1 及更新版本 | 
| AES 金鑰包裝，無填補 | [RFC 3394](https://tools.ietf.org/html/rfc3394) 和 [SP 800–38F](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf) | 區塊對齊的金鑰，例如 AES 和 3DES  | 無 | SDK 3.1 及更新版本 | 
| AES 金鑰包裝與 PKCS \$15 填補 | 無 | 全部 |  根據 PKCS \$15 填補方案新增至少 8 個位元組以對齊區塊   | 全部 | 

若要了解如何在應用程式中使用上表的 AES 金鑰包裝演算法，請參閱 [AWS CloudHSM中的使用 AES 金鑰包裝](#use-aes-key-wrap)。

### 了解 AES 金鑰包裝中的初始化向量
<a name="understand-padding-iv"></a>

在包裝之前，CloudHSM 會將初始化向量 (IV) 附加到目標金鑰，以確保資料完整性。每個金鑰包裝演算法對於允許什麼類型的 IV 都有特定的限制。若要在 中設定 IV AWS CloudHSM，您有兩個選項：
+ 隱含：將 IV 設定為 NULL，CloudHSM 會使用該演算法的預設值進行包裝和取消包裝操作 (建議)
+ 明確：透過將預設 IV 值傳遞給金鑰包裝函數來設定 IV 

**重要**  
您必須了解在您應用程式中使用什麼 IV。若要取消包裝金鑰，您必須提供您用來包裝金鑰的相同 IV。如果您使用隱含 IV 來包裝，則請使用隱含 IV 來取消包裝。對於隱含 IV，CloudHSM 將使用預設值來取消包裝。

下表說明包裝演算法指定之 IV 的允許值。


****  

| AES 金鑰包裝演算法 | 隱含 IV | 明確 IV | 
| --- | --- | --- | 
| AES 金鑰包裝，零填補  | 必要 預設值：(根據規格在內部計算 IV) | 不允許 | 
| AES 金鑰包裝，無填補 | 允許 (建議使用) 預設值：`0xA6A6A6A6A6A6A6A6` | 允許 只接受此值：`0xA6A6A6A6A6A6A6A6` | 
| AES 金鑰包裝與 PKCS \$15 填補 | 允許 (建議使用) 預設值：`0xA6A6A6A6A6A6A6A6` | 允許 只接受此值：`0xA6A6A6A6A6A6A6A6` | 

## 在 中使用 AES 金鑰包裝 AWS CloudHSM
<a name="use-aes-key-wrap"></a>

 如下所示包裝和取消包裝金鑰：
+ 在 [PKCS \$111 程式庫](pkcs11-library.md)中，為 `C_WrapKey` 和 `C_UnWrapKey` 函數選取適當的機制，如下表所示。
+ 在 [JCE 提供者](java-library.md)中，選取適當的演算法、模式和填補組合，實作加密方法 `Cipher.WRAP_MODE` 和 `Cipher.UNWRAP_MODE`，如下表所示。
+ 在 [CloudHSM CLI](cloudhsm_cli.md) 中，從支援的 [CloudHSM CLI 中的金鑰包裝命令](cloudhsm_cli-key-wrap.md)和 演算法清單中選擇適當的[CloudHSM CLI 中的金鑰取消包裝命令](cloudhsm_cli-key-unwrap.md)演算法，如下表所示。
+ 在 [key\$1mgmt\$1util (KMU)](key_mgmt_util.md) 中，使用 [使用 KMU 取消包裝 AWS CloudHSM 金鑰](key_mgmt_util-unwrapKey.md) 和 [使用 KMU 匯出 AWS CloudHSM 金鑰](key_mgmt_util-wrapKey.md) 命令搭配適當的 m 值，如下表所示。


****  

| AES 金鑰包裝演算法 | PKCS \$111 機制 | Java 方法 | CloudHSM CLI 子命令 | 金鑰管理公用程式 (KMU) 引數 | 
| --- | --- | --- | --- | --- | 
| AES 金鑰包裝，零填補  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/manage-aes-key-wrapping.html)  | AESWrap/ECB/ZeroPadding | aes-zero-pad | m = 6 | 
| AES 金鑰包裝，無填補 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/manage-aes-key-wrapping.html)  | AESWrap/ECB/NoPadding | aes-no-pad | m = 5 | 
| AES 金鑰包裝與 PKCS \$15 填補  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/manage-aes-key-wrapping.html)  | AESWrap/ECB/PKCS5Padding | aes-pkcs5-pad | m = 4 | 