本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS CloudHSM 客户端 SDK 5 的 JCE 提供程序支持的机制
本主题提供有关 AWS CloudHSM 客户端 SDK 5 支持的 JCE 提供程序的机制的信息。有关支持的 Java 密码学架构 (JCA) 接口和引擎类的信息 AWS CloudHSM,请参阅以下主题。
生成密钥与密钥对功能
Java 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) 函数
CMACs (基于密码的消息身份验证码)使用分组密码和密钥创建消息身份验证码 (MACs)。它们的不同之处 HMACs 在于,它们使用区块对称密钥方法 MACs 而不是哈希方法。
适用于 Java 的 AWS CloudHSM 软件库支持以下 CMAC 算法。
-
AESCMAC
主要协议函数
Java AWS CloudHSM 软件库支持带有密钥派生函数 (KDF) 的 ECDH。支持以下 KDF 类型:
使用密钥工厂将密钥转换为密钥规格
您可以使用密钥工厂将密钥转换为密钥规格。 AWS CloudHSM JCE 有两种类型的关键工厂:
SecretKeyFactory:用于导入或派生对称密钥。使用 SecretKeyFactory,您可以传递支持的密钥或支持的密钥 KeySpec 以导入或派生对称密钥。 AWS CloudHSM以下是支持的规格 KeyFactory:
-
F SecretKeyFactory o
generateSecretr 的方法支持以下KeySpec类: KeyAttributesMap可用于将带有附加属性的密钥字节作为 CloudHSM 密钥导入。可以在此处
找到一个示例。 SecretKeySpec
可用于将对称密钥规范作为 CloudHSM 密钥导入。 AesCmacKdfParameterSpec可用于使用另一个 CloudHSM AES 密钥派生对称密钥。
注意
SecretKeyFactory的translateKey方法接受任何实现密钥接口的密钥
KeyFactory:用于导入非对称密钥。使用 KeyFactory,您可以传递支持的密钥或支持的密钥 KeySpec 以将非对称密钥导入其中 AWS CloudHSM。更多信息,请参阅以下资源:
KeyFactory对于
generatePublic的方法,支持以下KeySpec类: 适用于 RSA 和 EC 的 KeyAttributesMap CloudHSM,包括: KeyTypes
Cloud KeyAttributesMap HSM 适用于 RSA 和 EC 公众。 KeyTypes可以在此处
找到示例。 X509
同时EncodedKeySpec适用于 RSA 和 EC 公钥 RSAPublicKeySpec
适用于 RSA 公钥 ECPublicKeySpec
适用于 EC 公钥
KeyFactory对于
generatePrivate的方法,支持以下KeySpec类: 适用于 RSA 和 EC 的 KeyAttributesMap CloudHSM,包括: KeyTypes
Cloud KeyAttributesMap HSM 适用于 RSA 和 EC 公众。 KeyTypes可以在此处
找到示例。 PKCS8EncodedKeySpec
适用于 EC 和 RSA 私钥 RSAPrivateCrtKeySpec
适用于 RSA 私钥 ECPrivateKeySpec
适用于 EC 私钥
对于 KeyFactory的translateKey方法来说,它接受任何实现密钥接口的密钥
机制注释
[1] 根据 NIST 指导,2023 年以后处于 FIPS 模式的集群不允许这样做。对于处于非 FIPS 模式的集群,2023 年之后仍然允许。有关详细信息,请参阅FIPS 140 合规:2024 年机制弃用。
[2] 密钥派生函数 (KDFs) 在 RFC 8418