本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
JCE 提供商支持的机制 AWS CloudHSM 客户端软件开发工具包 5
本主题提供有关使用 AWS CloudHSM 客户端 SDK 5 的 JCE 提供商支持的机制的信息。有关支持的 Java 加密架构 (JCA) 接口和引擎类的信息 AWS CloudHSM,请参阅以下主题。
主题
生成密钥与密钥对功能
Java AWS CloudHSM 软件库允许您使用以下操作生成密钥和密钥对函数。
密码函数
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 软件库支持以下类型的签名和验证。使用客户端 SDK 5 和带有哈希功能的签名算法,数据将在软件中进行本地哈希处理,然后再发送到 HSM 进行哈希处理。 signature/verification这意味着可由 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
ML-DSA 签名类型
-
ML-DSA -
ML-DSA-44 -
ML-DSA-65 -
ML-DSA-87 -
ML-DSA-EXTERNAL-MU
eddSA 签名类型参见注释 2
-
Ed25519或EdDSA(最大数据大小:16,000 字节) -
Ed25519ph
摘要功能
Java AWS CloudHSM 软件库支持以下消息摘要。通过客户端软件开发工具包 5,数据将在软件中进行本地哈希处理。这意味着可由 SDK 执行哈希处理的数据大小没有限制。
-
SHA-1 -
SHA-224 -
SHA-256 -
SHA-384 -
SHA-512
Hash-based 消息验证码 (HMAC) 函数
Java AWS CloudHSM 软件库支持以下 HMAC 算法。
-
HmacSHA1(以字节为单位的最大数据大小:16288) -
HmacSHA224(以字节为单位的最大数据大小:16256) -
HmacSHA256(以字节为单位的最大数据大小:16288) -
HmacSHA384(以字节为单位的最大数据大小:16224) -
HmacSHA512(以字节为单位的最大数据大小:16224)
Cipher-based 消息验证码 (CMAC) 函数
CMAC(Cipher-based 消息身份验证码)使用分组密码和密钥创建消息身份验证码 (MAC)。其与 HMAC 的不同之处在于,其对 MAC 使用数据块对称密钥方法,而不是哈希方法。
Java AWS CloudHSM 软件库支持以下 CMAC 算法。
-
AESCMAC
密钥协议函数
Java AWS CloudHSM 软件库支持带有密钥派生函数 (KDF) 的 ECDH。支持以下 KDF 类型:
使用密钥工厂将密钥转换为密钥规格
您可以使用密钥工厂将密钥转换为密钥规格。 AWS CloudHSM JCE 有两种类型的密钥工厂:
SecretKeyFactory: 用于导入或派生对称密钥。使用 SecretKeyFactory,您可以传递支持的密钥或支持的密钥 KeySpec 以将对称密钥导入或派生到中。 AWS CloudHSM以下是支持的规格 KeyFactory:
-
支持 For SecretKeyFactory 的
generateSecret方法以下KeySpec类: KeyAttributesMap可用于将带有其他属性的密钥字节作为 CloudHSM 密钥导入。可以在此处
找到一个示例。 SecretKeySpec
可用于将对称密钥规范作为 CloudHSM 密钥导入。 AesCmacKdfParameterSpec可用于使用另一个 CloudHSM AES 密钥派生对称密钥。
注意
SecretKeyFactory的translateKey方法采用任何实现密钥接口的
KeyFactory:用于导入非对称密钥。使用 KeyFactory,您可以传递支持的密钥或支持将 AWS CloudHSM非对称密钥导入到。 KeySpec 更多信息,请参阅以下资源:
F KeyFactory or's
generatePublic方法,支持以下KeySpec类: KeyAttributesMap 适用于 RSA、EC 和 eDDSA 的 CloudHSM。 KeyTypes可以在此处
找到示例。 X509EncodedKeySpec
适用于 RSA、EC 和 eDDSA 公钥 RSAPublicKeySpec
用于 RSA 公钥 ECPublicKeySpec
用于 EC 公钥(不适用于 Ed25519)
F KeyFactory or's
generatePrivate方法,支持以下KeySpec类: KeyAttributesMap 适用于 RSA、EC 和 eDDSA 的 CloudHSM。 KeyTypes可以在此处
找到示例。 PKCS8EncodedKeySpec
适用于 RSA、EC 和 eDDSA 私钥 RSAPrivateCrtKeySpec
用于 RSA 私钥 ECPrivateKeySpec
用于 EC 私钥(不适用于 Ed25519)
ML-DSA 密钥导入限制
AWS CloudHSM 不支持通过KeyFactory(generatePublic和generatePrivate)导入 ML-DSA 密钥。要使用 ML-DSA 密钥,请使用KeyPairGenerator直接在 HSM 上生成密钥。 ML-DSA KeyFactory支持使用getKeySpec(返回X509EncodedKeySpec)导出公钥。
F KeyFactory or's translateKey 方法,它接受任何实现密钥接口的密钥
机制注释
[1] 根据 NIST 指导,2023 年以后处于 FIPS 模式的集群不允许这样做。对于处于非 FIPS 模式的集群,2023 年之后仍然允许。有关详细信息,请参阅FIPS 140 合规:2024 年机制弃用。
[2] 仅支持非 FIPS 模式下的 hsm2m.medium 实例。
[3] 密钥推导函数 (KDF) 在 NIST 特别出版物 800-56A 修订版 3 中进行了规定。