JCE 提供程序支持的机制 - AWS CloudHSM

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

JCE 提供程序支持的机制

本主题提供有关客户端 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/CBC/NoPadding

AES/CBC/PKCS5Padding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE

实施 Cipher.UNWRAP_MODE for AES/CBC NoPadding

AES ECB

AES/ECB/PKCS5Padding

AES/ECB/NoPadding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE

AES CTR

AES/CTR/NoPadding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE

AES GCM

AES/GCM/NoPadding

实施 Cipher.WRAP_MODECipher.UNWRAP_MODECipher.ENCRYPT_MODECipher.DECRYPT_MODE

执行 AES-GCM 加密时,HSM 会忽略请求中的初始化向量 (IV) 并使用其生成的 IV。当该操作完成时,您必须调用 Cipher.getIV() 以获取 IV。

AESWrap ECB

AESWrap/ECB/NoPadding

AESWrap/ECB/PKCS5Padding

AESWrap/ECB/ZeroPadding

实施 Cipher.WRAP_MODECipher.UNWRAP_MODE

DESede(三重 DES) CBC

DESede/CBC/PKCS5Padding

DESede/CBC/NoPadding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE。有关即将发生的更改,请参阅下面的注释 1

DESede(三重 DES) ECB

DESede/ECB/NoPadding

DESede/ECB/PKCS5Padding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE。有关即将发生的更改,请参阅下面的注释 1

RSA ECB

RSA/ECB/PKCS1Padding 请参阅备注 1

RSA/ECB/OAEPPadding

RSA/ECB/OAEPWithSHA-1ANDMGF1Padding

RSA/ECB/OAEPWithSHA-224ANDMGF1Padding

RSA/ECB/OAEPWithSHA-256ANDMGF1Padding

RSA/ECB/OAEPWithSHA-384ANDMGF1Padding

RSA/ECB/OAEPWithSHA-512ANDMGF1Padding

实施 Cipher.WRAP_MODECipher.UNWRAP_MODECipher.ENCRYPT_MODECipher.DECRYPT_MODE

RSA ECB

RSA/ECB/NoPadding

实施 Cipher.ENCRYPT_MODECipher.DECRYPT_MODE

RSAAESWrap ECB

RSAAESWrap/ECB/OAEPPadding

RSAAESWrap/ECB/OAEPWithSHA-1ANDMGF1Padding

RSAAESWrap/ECB/OAEPWithSHA-224ANDMGF1Padding

RSAAESWrap/ECB/OAEPWithSHA-256ANDMGF1Padding

RSAAESWrap/ECB/OAEPWithSHA-384ANDMGF1Padding

RSAAESWrap/ECB/OAEPWithSHA-512ANDMGF1Padding

实施 Cipher.WRAP_MODECipher.UNWRAP_MODE

签署并验证功能

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

使用密钥工厂将密钥转换为密钥规格

您可以使用密钥工厂将密钥转换为密钥规格。 AWS CloudHSM JCE 有两种类型的关键工厂:

SecretKeyFactory:用于导入或派生对称密钥。使用 SecretKeyFactory,您可以传递支持的密钥或支持的密钥 KeySpec 以导入或派生对称密钥。 AWS CloudHSM以下是支持的规格 KeyFactory:

  • F SecretKeyFactory o generateSecret r 的方法支持以下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 公钥

    • 适用于 RSA PublicKeySpec 的 RSA 公钥

    • EC PublicKeySpec 代表欧共体公钥

  • KeyFactory对于generatePrivate的方法,支持以下KeySpec类:

  • 适用于 RSA 和 EC 的 KeyAttributesMap CloudHSM,包括: KeyTypes

对于 KeyFactory的translateKey方法来说,它接受任何实现密钥接口的密钥

机制注释

[1] 根据 NIST 的指导方针,2023 年之后处于 FIPS 模式的集群不允许这样做。对于处于非 FIPS 模式的集群,2023 年之后仍允许这样做。有关详细信息,请参阅 FIPS 140 合规:2024 年机制弃用