AWS CloudHSM Client SDK 5 的 JCE 提供程序支持的机制
本主题提供有关 AWS CloudHSM Client SDK 5 对 JCE 提供程序支持的机制的信息。有关 AWS CloudHSM 支持的 Java 加密体系结构 (JCA) 接口和引擎类的更多信息,请参阅以下主题。
生成密钥与密钥对功能
适用于 JaJave 的 AWS CloudHSM 软件库允许您通过以下操作生成密钥和密钥对函数。
-
RSA -
EC -
AES -
DESede (Triple DES)请参阅备注1 -
GenericSecret
密码函数
适用于 Java 的 AWS CloudHSM 软件库支持以下算法、模式和填充组合。
| 算法 | Mode | Padding | 备注 |
|---|---|---|---|
| AES | CBC |
|
实施 实施 |
| AES | ECB |
|
实施 |
| AES | CTR |
|
实施 |
| AES | GCM |
|
实施 执行 AES-GCM 加密时,HSM 会忽略请求中的初始化向量 (IV) 并使用其生成的 IV。当该操作完成时,您必须调用 |
| AESWrap | ECB |
|
实施 |
| DESede(三重 DES) | CBC |
|
实施 |
| DESede(三重 DES) | ECB |
|
实施 |
| RSA | ECB |
|
实施 |
| RSA | ECB |
|
实施 |
| RSAAESWrap | ECB |
|
实施 |
签署并验证功能
适用于 Java 的 AWS CloudHSM 软件库支持以下类型的签名和验证。使用客户端软件开发工具包 5 和带哈希功能的签名算法,在数据发送至 HSM 进行签名/验证之前,会在软件中对数据进行本地哈希处理。这意味着可由 SDK 执行哈希处理的数据大小没有限制。
RSA 签名类型
-
NONEwithRSA -
RSASSA-PSS -
SHA1withRSA -
SHA1withRSA/PSS -
SHA1withRSAandMGF1 -
SHA224withRSA -
SHA224withRSAandMGF1 -
SHA224withRSA/PSS -
SHA256withRSA -
SHA256withRSAandMGF1 -
SHA256withRSA/PSS -
SHA384withRSA -
SHA384withRSAandMGF1 -
SHA384withRSA/PSS -
SHA512withRSA -
SHA512withRSAandMGF1 -
SHA512withRSA/PSS
ECDSA 签名类型
-
NONEwithECDSA -
SHA1withECDSA -
SHA224withECDSA -
SHA256withECDSA -
SHA384withECDSA -
SHA512withECDSA
摘要功能
适用于 Java 的 AWS CloudHSM 软件库支持以下消息摘要。通过客户端软件开发工具包 5,数据将在软件中进行本地哈希处理。这意味着可由 SDK 执行哈希处理的数据大小没有限制。
-
SHA-1 -
SHA-224 -
SHA-256 -
SHA-384 -
SHA-512
HMAC 散列消息认证码函数
适用于 Java 的 AWS CloudHSM 软件库支持以下 HMAC 算法。
-
HmacSHA1(以字节为单位的最大数据大小:16288) -
HmacSHA224(以字节为单位的最大数据大小:16256) -
HmacSHA256(以字节为单位的最大数据大小:16288) -
HmacSHA384(以字节为单位的最大数据大小:16224) -
HmacSHA512(以字节为单位的最大数据大小:16224)
基于密码的消息身份验证码 (CMAC) 函数
CMAC(基于密码的消息身份验证码)使用数据块密码和机密密钥创建消息身份验证码(MAC)。其与 HMAC 的不同之处在于,其对 MAC 使用数据块对称密钥方法,而不是哈希方法。
适用于 Java 的 AWS CloudHSM 软件库支持以下 CMAC 算法。
-
AESCMAC
密钥协议函数
Java 的 AWS CloudHSM 软件库支持带有密钥派生函数(KDF)的 ECDH。支持以下 KDF 类型:
使用密钥工厂将密钥转换为密钥规格
您可以使用密钥工厂将密钥转换为密钥规格。针对 JCE,AWS CloudHSM 有两类密钥工厂:
SecretKeyFactory:用于导入或派生对称密钥。使用 SecretKeyFactory,您可以传递支持的密钥或支持的 KeySpec 来导入或派生对称密钥 AWS CloudHSM。以下是 KeyFactory 支持的规格:
-
对于 SecretKeyFactory 的
generateSecret方法,支持以下 KeySpec类: KeyAttributesMap 可用于将带附加属性的密钥字节作为 CloudHSM 密钥导入。可以在此处
找到一个示例。 SecretKeySpec
可用于将对称密钥规范作为 CloudHSM 密钥导入。 AesCmacKdfParameterSpec 可用于通过另一个 CloudHSM AES 密钥派生对称密钥。
注意
SecretKeyFactory 的 translateKey 方法采用任何实现 密钥
KeyFactory:用于导入非对称密钥。使用 KeyFactory,您可以传递支持的密钥或支持的 KeySpec,将非对称密钥导入到 AWS CloudHSM。更多信息,请参阅以下资源:
对于 KeyFactory 的
generatePublic方法,支持以下 KeySpec类: 适用于 RSA 和 EC KeyTypes 的 CloudHSM KeyAttributesMap,包括:
适用于 RSA 和 EC 公有 KeyTypes 的 CloudHSM KeyAttributesMap。可以在此处
找到示例。 适用于 RSA 和 EC 公有密钥的 X509EncodedKeySpec
适用于 RSA 公有密钥的 RSAPublicKeySpec
适用于 EC 公有密钥的 ECPublicKeySpec
对于 KeyFactory 的
generatePrivate方法,支持以下 KeySpec类: 适用于 RSA 和 EC KeyTypes 的 CloudHSM KeyAttributesMap,包括:
适用于 RSA 和 EC 公有 KeyTypes 的 CloudHSM KeyAttributesMap。可以在此处
找到示例。 适用于 EC 和 RSA 私有密钥的 PKCS8EncodedKeySpec
适用于 RSA 私有密钥的 RSAPrivateCrtKeySpec
适用于 EC 私有密钥的 ECPrivateKeySpec
对于 KeyFactory 的 translateKey 方法,其接受任何实现 密钥接口
机制注释
[1] 根据 NIST 指导,2023 年以后处于 FIPS 模式的集群不允许这样做。对于处于非 FIPS 模式的集群,2023 年之后仍然允许。有关详细信息,请参阅 FIPS 140 合规:2024 年机制弃用。
[2] 密钥派生函数(KDF)在 RFC 8418 第 2.1 节