Cloud KMS 密钥的功能由以下参数决定:
- 保护级别:控制加密操作的执行位置,例如在 Google Cloud 硬件安全模块或外部密钥管理器中。
- 用途:决定了密钥可以执行的加密操作。
- 算法:用于加密操作的具体参数。
本文档列出了可与 Cloud KMS 搭配使用的保护级别、密钥用途和算法。对于每个值,“SDK”值都与 gcloud CLI 搭配使用,“REST”值都与 Cloud KMS API 搭配使用。 本文档还介绍了每种算法是否被视为量子安全算法,以及某种算法是否是其用途的推荐算法。
对于每组算法,选择一个保护级别即可查看支持的算法。
保护级别
保护级别指示加密操作的执行位置。 创建密钥后,您便无法更改其保护级别。某些密钥用途和算法仅适用于特定保护级别。
| 保护级别 | 说明 |
|---|---|
SDK:softwareREST: SOFTWARE |
在软件中执行加密操作。 |
SDK:hsmREST: HSM |
在 HSM 中执行加密操作。 |
SDK:hsm-single-tenantREST: HSM_SINGLE_TENANT |
加密操作在专门为单租户 Cloud HSM 实例创建的专用 HSM 分区集群中执行。 |
SDK:externalREST: EXTERNAL |
使用存储在外部密钥管理器中的密钥执行加密操作,该密钥管理器通过互联网连接到 Google Cloud 。限制为对称加密和非对称签名。 |
SDK:external-vpcREST: EXTERNAL_VPC |
使用存储在外部密钥管理器中的密钥执行加密操作,该密钥管理器通过虚拟私有云 (VPC) 连接到 Google Cloud 。限制为对称加密和非对称签名。 |
密钥用途
Cloud KMS 支持以下密钥用途:
| 用途 | 用途 | 支持的方法 |
|---|---|---|
| 对称加密 | SDK:encryptionREST: ENCRYPT_DECRYPT |
|
| 原始对称加密 | SDK:raw-encryptionREST: RAW_ENCRYPT_DECRYPT |
|
| 非对称签名 | SDK:asymmetric-signingREST: ASYMMETRIC_SIGN |
|
| 非对称加密 | SDK:asymmetric-encryptionREST: ASYMMETRIC_DECRYPT |
|
| 密钥封装机制 | SDK:key-encapsulationREST: KEY_ENCAPSULATION |
|
| MAC 签名 | SDK:macREST: MAC |
创建密钥时,可以定义该密钥的用途和算法。您可以在创建新密钥版本时更改算法,具体取决于其用途。用途无法更改。
具有相同用途的两个密钥可以使用不同的基础算法,但它们必须支持同一组加密操作。
对称加密算法
ENCRYPT_DECRYPT 密钥用途可启用对称加密。
标准对称加密算法使用 256 位高级加密标准 (AES-256) 密钥(采用伽罗瓦计数器模式 (GCM))。AES-256 等对称加密算法通常被认为是量子安全的。您可以继续使用对称加密。
算法支持情况因保护级别而异。
不限
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:google-symmetric-encryptionREST: GOOGLE_SYMMETRIC_ENCRYPTION
|
256 位高级加密标准 (AES-256) 密钥(采用伽罗瓦计数器模式 (GCM)),使用 Cloud KMS 内部元数据进行填充。 |
是 |
SDK:external-symmetric-encryptionREST: EXTERNAL_SYMMETRIC_ENCRYPTION
|
256 位高级加密标准 (AES-256) 密钥(采用伽罗瓦计数器模式 (GCM))。 |
是 |
软件
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:google-symmetric-encryptionREST: GOOGLE_SYMMETRIC_ENCRYPTION
|
256 位高级加密标准 (AES-256) 密钥(采用伽罗瓦计数器模式 (GCM)),使用 Cloud KMS 内部元数据进行填充。 |
是 |
hsm
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:google-symmetric-encryptionREST: GOOGLE_SYMMETRIC_ENCRYPTION
|
256 位高级加密标准 (AES-256) 密钥(采用伽罗瓦计数器模式 (GCM)),使用 Cloud KMS 内部元数据进行填充。 |
是 |
hsm-single-tenant
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:google-symmetric-encryptionREST: GOOGLE_SYMMETRIC_ENCRYPTION
|
256 位高级加密标准 (AES-256) 密钥(采用伽罗瓦计数器模式 (GCM)),使用 Cloud KMS 内部元数据进行填充。 |
是 |
外部
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:external-symmetric-encryptionREST: EXTERNAL_SYMMETRIC_ENCRYPTION
|
256 位高级加密标准 (AES-256) 密钥(采用伽罗瓦计数器模式 (GCM))。 |
是 |
external-vpc
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:external-symmetric-encryptionREST: EXTERNAL_SYMMETRIC_ENCRYPTION
|
256 位高级加密标准 (AES-256) 密钥(采用伽罗瓦计数器模式 (GCM))。 |
是 |
原始对称加密算法
原始对称加密算法可让您在不使用 Cloud KMS 内部元数据的情况下执行对称加密和解密。您可以使用原始对称加密算法和导入的密钥在本地加密数据,以便在 Google Cloud 中解密;也可以在Google Cloud 中加密数据,以便在本地解密。
您可以将此表中的算法与以下保护级别搭配使用:
softwarehsmhsm-single-tenant
不限
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:aes-128-cbcREST: AES_128_CBC
|
采用加密块链 (CBC) 模式且不进行身份验证的 128 位高级加密标准 (AES-128) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CBC Key Manager (roles/cloudkms.expertRawAesCbc)
|
是 |
SDK:aes-128-ctrREST: AES_128_CTR
|
采用计数器 (CTR) 模式且不进行身份验证的 128 位高级加密标准 (AES-128) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CTR Key Manager (roles/cloudkms.expertRawAesCtr)
|
是 |
SDK:aes-128-gcmREST: AES_128_GCM
|
采用伽罗瓦计数器模式 (GCM) 的 128 位高级加密标准 (AES-128) 密钥,并带有额外的身份验证数据 (AAD) |
是 |
SDK:aes-256-cbcREST: AES_256_CBC
|
采用加密块链 (CBC) 模式且未经身份验证的 256 位高级加密标准 (AES-256) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CBC Key Manager (roles/cloudkms.expertRawAesCbc)
|
是 |
SDK:aes-256-ctrREST: AES_256_CTR
|
采用计数器 (CTR) 模式且无身份验证的 256 位高级加密标准 (AES-256) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CTR Key Manager (roles/cloudkms.expertRawAesCtr)
|
是 |
SDK:aes-256-gcmREST: AES_256_GCM
|
采用伽罗瓦计数器模式 (GCM) 的 256 位高级加密标准 (AES-256) 密钥,带有额外的身份验证数据 (AAD) |
是 |
软件
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:aes-128-cbcREST: AES_128_CBC
|
采用加密块链 (CBC) 模式且不进行身份验证的 128 位高级加密标准 (AES-128) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CBC Key Manager (roles/cloudkms.expertRawAesCbc)
|
是 |
SDK:aes-128-ctrREST: AES_128_CTR
|
采用计数器 (CTR) 模式且不进行身份验证的 128 位高级加密标准 (AES-128) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CTR Key Manager (roles/cloudkms.expertRawAesCtr)
|
是 |
SDK:aes-128-gcmREST: AES_128_GCM
|
采用伽罗瓦计数器模式 (GCM) 的 128 位高级加密标准 (AES-128) 密钥,并带有额外的身份验证数据 (AAD) |
是 |
SDK:aes-256-cbcREST: AES_256_CBC
|
采用加密块链 (CBC) 模式且未经身份验证的 256 位高级加密标准 (AES-256) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CBC Key Manager (roles/cloudkms.expertRawAesCbc)
|
是 |
SDK:aes-256-ctrREST: AES_256_CTR
|
采用计数器 (CTR) 模式且无身份验证的 256 位高级加密标准 (AES-256) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CTR Key Manager (roles/cloudkms.expertRawAesCtr)
|
是 |
SDK:aes-256-gcmREST: AES_256_GCM
|
采用伽罗瓦计数器模式 (GCM) 的 256 位高级加密标准 (AES-256) 密钥,带有额外的身份验证数据 (AAD) |
是 |
hsm
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:aes-128-cbcREST: AES_128_CBC
|
采用加密块链 (CBC) 模式且不进行身份验证的 128 位高级加密标准 (AES-128) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CBC Key Manager (roles/cloudkms.expertRawAesCbc)
|
是 |
SDK:aes-128-ctrREST: AES_128_CTR
|
采用计数器 (CTR) 模式且不进行身份验证的 128 位高级加密标准 (AES-128) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CTR Key Manager (roles/cloudkms.expertRawAesCtr)
|
是 |
SDK:aes-128-gcmREST: AES_128_GCM
|
采用伽罗瓦计数器模式 (GCM) 的 128 位高级加密标准 (AES-128) 密钥,并带有额外的身份验证数据 (AAD) |
是 |
SDK:aes-256-cbcREST: AES_256_CBC
|
采用加密块链 (CBC) 模式且未经身份验证的 256 位高级加密标准 (AES-256) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CBC Key Manager (roles/cloudkms.expertRawAesCbc)
|
是 |
SDK:aes-256-ctrREST: AES_256_CTR
|
采用计数器 (CTR) 模式且无身份验证的 256 位高级加密标准 (AES-256) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CTR Key Manager (roles/cloudkms.expertRawAesCtr)
|
是 |
SDK:aes-256-gcmREST: AES_256_GCM
|
采用伽罗瓦计数器模式 (GCM) 的 256 位高级加密标准 (AES-256) 密钥,带有额外的身份验证数据 (AAD) |
是 |
hsm-single-tenant
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:aes-128-cbcREST: AES_128_CBC
|
采用加密块链 (CBC) 模式且不进行身份验证的 128 位高级加密标准 (AES-128) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CBC Key Manager (roles/cloudkms.expertRawAesCbc)
|
是 |
SDK:aes-128-ctrREST: AES_128_CTR
|
采用计数器 (CTR) 模式且不进行身份验证的 128 位高级加密标准 (AES-128) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CTR Key Manager (roles/cloudkms.expertRawAesCtr)
|
是 |
SDK:aes-128-gcmREST: AES_128_GCM
|
采用伽罗瓦计数器模式 (GCM) 的 128 位高级加密标准 (AES-128) 密钥,并带有额外的身份验证数据 (AAD) |
是 |
SDK:aes-256-cbcREST: AES_256_CBC
|
采用加密块链 (CBC) 模式且未经身份验证的 256 位高级加密标准 (AES-256) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CBC Key Manager (roles/cloudkms.expertRawAesCbc)
|
是 |
SDK:aes-256-ctrREST: AES_256_CTR
|
采用计数器 (CTR) 模式且无身份验证的 256 位高级加密标准 (AES-256) 密钥。 需要专家角色:Cloud KMS Expert Raw AES-CTR Key Manager (roles/cloudkms.expertRawAesCtr)
|
是 |
SDK:aes-256-gcmREST: AES_256_GCM
|
采用伽罗瓦计数器模式 (GCM) 的 256 位高级加密标准 (AES-256) 密钥,带有额外的身份验证数据 (AAD) |
是 |
外部
| 算法 | 说明 | 量子安全 |
|---|
external-vpc
| 算法 | 说明 | 量子安全 |
|---|
非对称签名算法
ASYMMETRIC_SIGN 密钥用途可启用非对称签名。这些算法分为以下几类:椭圆曲线、RSA 和后量子。
使用椭圆曲线和 RSA 的非对称签名算法容易受到未来量子计算机的攻击。如需长期不可否认的签名,请改用后量子非对称签名算法。
椭圆曲线签名算法
椭圆曲线签名算法的名称以以下格式指明了所使用的椭圆曲线和摘要算法:
EC_SIGN_ELLIPTIC_CURVE_DIGEST_ALGORITHM
下表列出了椭圆曲线算法。
算法支持情况因保护级别而异。
不限
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:ec-sign-ed25519REST: EC_SIGN_ED25519
|
以 PureEdDSA 模式在 Curve25519 上运行的 EdDSA,它将原始数据作为输入,而不是哈希数据 |
否 |
SDK:ec-sign-p256-sha256REST: EC_SIGN_P256_SHA256
|
推荐 |
否 |
SDK:ec-sign-p384-sha384REST: EC_SIGN_P384_SHA384
|
具有 SHA-384 摘要的 P-384 曲线上的 ECDSA |
否 |
SDK:ec-sign-secp256k1-sha256REST: EC_SIGN_SECP256K1_SHA256
|
具有 SHA-256 摘要的 Secp256k1 曲线上的 ECDSA |
否 |
软件
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:ec-sign-ed25519REST: EC_SIGN_ED25519
|
以 PureEdDSA 模式在 Curve25519 上运行的 EdDSA,它将原始数据作为输入,而不是哈希数据 |
否 |
SDK:ec-sign-p256-sha256REST: EC_SIGN_P256_SHA256
|
推荐 |
否 |
SDK:ec-sign-p384-sha384REST: EC_SIGN_P384_SHA384
|
具有 SHA-384 摘要的 P-384 曲线上的 ECDSA |
否 |
hsm
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:ec-sign-p256-sha256REST: EC_SIGN_P256_SHA256
|
推荐 |
否 |
SDK:ec-sign-p384-sha384REST: EC_SIGN_P384_SHA384
|
具有 SHA-384 摘要的 P-384 曲线上的 ECDSA |
否 |
SDK:ec-sign-secp256k1-sha256REST: EC_SIGN_SECP256K1_SHA256
|
具有 SHA-256 摘要的 Secp256k1 曲线上的 ECDSA |
否 |
hsm-single-tenant
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:ec-sign-p256-sha256REST: EC_SIGN_P256_SHA256
|
推荐 |
否 |
SDK:ec-sign-p384-sha384REST: EC_SIGN_P384_SHA384
|
具有 SHA-384 摘要的 P-384 曲线上的 ECDSA |
否 |
SDK:ec-sign-secp256k1-sha256REST: EC_SIGN_SECP256K1_SHA256
|
具有 SHA-256 摘要的 Secp256k1 曲线上的 ECDSA |
否 |
外部
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:ec-sign-p256-sha256REST: EC_SIGN_P256_SHA256
|
推荐 |
否 |
SDK:ec-sign-p384-sha384REST: EC_SIGN_P384_SHA384
|
具有 SHA-384 摘要的 P-384 曲线上的 ECDSA |
否 |
external-vpc
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:ec-sign-p256-sha256REST: EC_SIGN_P256_SHA256
|
推荐 |
否 |
SDK:ec-sign-p384-sha384REST: EC_SIGN_P384_SHA384
|
具有 SHA-384 摘要的 P-384 曲线上的 ECDSA |
否 |
RSA 签名算法
对于大多数 RSA 签名算法,RSA 签名算法的名称会以以下格式指明其使用的填充算法、模数位长度和摘要算法:
RSA_SIGN_PADDING_ALGORITHM_MODULUS_BIT_LENGTH_DIGEST_ALGORITHM
某些 RSA 签名算法会省略摘要算法。这些“原始”算法是 PKCS #1 签名的一种变体,省略了对 DigestInfo 的编码。相反,原始签名算法会执行以下操作:
- 系统会针对将签名的消息计算摘要。
- PKCS #1 填充会直接应用于摘要。
- 系统会使用 RSA 私钥计算已填充的摘要的签名。
对于原始 RSA 签名算法,RSA 签名算法的名称会指明其使用的填充算法和模数位长度,格式如下:
RSA_SIGN_RAW_PADDING_ALGORITHM_MODULUS_BIT_LENGTH
下表列出了 RSA 签名算法。
算法支持情况因保护级别而异。
不限
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:rsa-sign-pss-2048-sha256REST: RSA_SIGN_PSS_2048_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 2048 位密钥 |
否 |
SDK:rsa-sign-pss-3072-sha256REST: RSA_SIGN_PSS_3072_SHA256
|
推荐 |
否 |
SDK:rsa-sign-pss-4096-sha256REST: RSA_SIGN_PSS_4096_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pss-4096-sha512REST: RSA_SIGN_PSS_4096_SHA512
|
具有 SHA-512 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pkcs1-2048-sha256REST: RSA_SIGN_PKCS1_2048_SHA256
|
具有 2048 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-3072-sha256REST: RSA_SIGN_PKCS1_3072_SHA256
|
具有 3072 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha256REST: RSA_SIGN_PKCS1_4096_SHA256
|
具有 4096 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha512REST: RSA_SIGN_PKCS1_4096_SHA512
|
具有 4096 位密钥和 SHA-512 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-raw-pkcs1-2048REST: RSA_SIGN_RAW_PKCS1_2048
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 2048 位密钥 |
否 |
SDK:rsa-sign-raw-pkcs1-3072REST: RSA_SIGN_RAW_PKCS1_3072
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 3072 位密钥 |
否 |
SDK:rsa-sign-raw-pkcs1-4096REST: RSA_SIGN_RAW_PKCS1_4096
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 4096 位密钥 |
否 |
软件
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:rsa-sign-pss-2048-sha256REST: RSA_SIGN_PSS_2048_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 2048 位密钥 |
否 |
SDK:rsa-sign-pss-3072-sha256REST: RSA_SIGN_PSS_3072_SHA256
|
推荐 |
否 |
SDK:rsa-sign-pss-4096-sha256REST: RSA_SIGN_PSS_4096_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pss-4096-sha512REST: RSA_SIGN_PSS_4096_SHA512
|
具有 SHA-512 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pkcs1-2048-sha256REST: RSA_SIGN_PKCS1_2048_SHA256
|
具有 2048 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-3072-sha256REST: RSA_SIGN_PKCS1_3072_SHA256
|
具有 3072 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha256REST: RSA_SIGN_PKCS1_4096_SHA256
|
具有 4096 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha512REST: RSA_SIGN_PKCS1_4096_SHA512
|
具有 4096 位密钥和 SHA-512 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-raw-pkcs1-2048REST: RSA_SIGN_RAW_PKCS1_2048
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 2048 位密钥 |
否 |
SDK:rsa-sign-raw-pkcs1-3072REST: RSA_SIGN_RAW_PKCS1_3072
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 3072 位密钥 |
否 |
SDK:rsa-sign-raw-pkcs1-4096REST: RSA_SIGN_RAW_PKCS1_4096
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 4096 位密钥 |
否 |
hsm
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:rsa-sign-pss-2048-sha256REST: RSA_SIGN_PSS_2048_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 2048 位密钥 |
否 |
SDK:rsa-sign-pss-3072-sha256REST: RSA_SIGN_PSS_3072_SHA256
|
推荐 |
否 |
SDK:rsa-sign-pss-4096-sha256REST: RSA_SIGN_PSS_4096_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pss-4096-sha512REST: RSA_SIGN_PSS_4096_SHA512
|
具有 SHA-512 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pkcs1-2048-sha256REST: RSA_SIGN_PKCS1_2048_SHA256
|
具有 2048 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-3072-sha256REST: RSA_SIGN_PKCS1_3072_SHA256
|
具有 3072 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha256REST: RSA_SIGN_PKCS1_4096_SHA256
|
具有 4096 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha512REST: RSA_SIGN_PKCS1_4096_SHA512
|
具有 4096 位密钥和 SHA-512 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-raw-pkcs1-2048REST: RSA_SIGN_RAW_PKCS1_2048
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 2048 位密钥 |
否 |
SDK:rsa-sign-raw-pkcs1-3072REST: RSA_SIGN_RAW_PKCS1_3072
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 3072 位密钥 |
否 |
SDK:rsa-sign-raw-pkcs1-4096REST: RSA_SIGN_RAW_PKCS1_4096
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 4096 位密钥 |
否 |
hsm-single-tenant
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:rsa-sign-pss-2048-sha256REST: RSA_SIGN_PSS_2048_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 2048 位密钥 |
否 |
SDK:rsa-sign-pss-3072-sha256REST: RSA_SIGN_PSS_3072_SHA256
|
推荐 |
否 |
SDK:rsa-sign-pss-4096-sha256REST: RSA_SIGN_PSS_4096_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pss-4096-sha512REST: RSA_SIGN_PSS_4096_SHA512
|
具有 SHA-512 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pkcs1-2048-sha256REST: RSA_SIGN_PKCS1_2048_SHA256
|
具有 2048 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-3072-sha256REST: RSA_SIGN_PKCS1_3072_SHA256
|
具有 3072 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha256REST: RSA_SIGN_PKCS1_4096_SHA256
|
具有 4096 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha512REST: RSA_SIGN_PKCS1_4096_SHA512
|
具有 4096 位密钥和 SHA-512 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-raw-pkcs1-2048REST: RSA_SIGN_RAW_PKCS1_2048
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 2048 位密钥 |
否 |
SDK:rsa-sign-raw-pkcs1-3072REST: RSA_SIGN_RAW_PKCS1_3072
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 3072 位密钥 |
否 |
SDK:rsa-sign-raw-pkcs1-4096REST: RSA_SIGN_RAW_PKCS1_4096
|
无编码的 RSASSA-PKCS1 v1.5 签名,具有 4096 位密钥 |
否 |
外部
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:rsa-sign-pss-2048-sha256REST: RSA_SIGN_PSS_2048_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 2048 位密钥 |
否 |
SDK:rsa-sign-pss-3072-sha256REST: RSA_SIGN_PSS_3072_SHA256
|
推荐 |
否 |
SDK:rsa-sign-pss-4096-sha256REST: RSA_SIGN_PSS_4096_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pss-4096-sha512REST: RSA_SIGN_PSS_4096_SHA512
|
具有 SHA-512 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pkcs1-2048-sha256REST: RSA_SIGN_PKCS1_2048_SHA256
|
具有 2048 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-3072-sha256REST: RSA_SIGN_PKCS1_3072_SHA256
|
具有 3072 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha256REST: RSA_SIGN_PKCS1_4096_SHA256
|
具有 4096 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha512REST: RSA_SIGN_PKCS1_4096_SHA512
|
具有 4096 位密钥和 SHA-512 摘要的 RSASSA-PKCS1 v1.5 |
否 |
external-vpc
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:rsa-sign-pss-2048-sha256REST: RSA_SIGN_PSS_2048_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 2048 位密钥 |
否 |
SDK:rsa-sign-pss-3072-sha256REST: RSA_SIGN_PSS_3072_SHA256
|
推荐 |
否 |
SDK:rsa-sign-pss-4096-sha256REST: RSA_SIGN_PSS_4096_SHA256
|
具有 SHA-256 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pss-4096-sha512REST: RSA_SIGN_PSS_4096_SHA512
|
具有 SHA-512 摘要的 RSASSA-PSS 4096 位密钥 |
否 |
SDK:rsa-sign-pkcs1-2048-sha256REST: RSA_SIGN_PKCS1_2048_SHA256
|
具有 2048 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-3072-sha256REST: RSA_SIGN_PKCS1_3072_SHA256
|
具有 3072 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha256REST: RSA_SIGN_PKCS1_4096_SHA256
|
具有 4096 位密钥和 SHA-256 摘要的 RSASSA-PKCS1 v1.5 |
否 |
SDK:rsa-sign-pkcs1-4096-sha512REST: RSA_SIGN_PKCS1_4096_SHA512
|
具有 4096 位密钥和 SHA-512 摘要的 RSASSA-PKCS1 v1.5 |
否 |
对于概率签名方案 (PSS),使用的盐长度等于摘要算法的长度,并且摘要算法也用于掩码生成函数 (MGF1)。例如,RSA_SIGN_PSS_2048_SHA256 使用盐长度为 256 位的 PSS,并获取要签名的数据的 SHA-256 哈希值,Cloud KMS 将在内部使用 SHA-256 作为计算签名时 MGF1 的哈希算法。
PQC 签名算法
后量子加密 (PQC) 签名算法名称以 PQ_SIGN_ 前缀开头。下表列出了 Cloud KMS 可用于用途为 ASYMMETRIC_SIGN 的密钥的 PQC 算法。纯算法以原始数据作为输入,而预哈希和外部 μ(外部 mu)算法接受从数据派生的哈希值。
您可以将此表中的算法与以下保护级别搭配使用:
software
不限
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:pq-sign-ml-dsa-44REST: PQ_SIGN_ML_DSA_44
|
使用 ML-DSA-44 参数集 (FIPS 204) 的纯基于模块格的数字签名算法,其中矩阵 A 的维度为 (4,4)。 |
是 |
SDK:pq-sign-ml-dsa-44-external-muREST: PQ_SIGN_ML_DSA_44_EXTERNAL_MU
|
使用 ML-DSA-44 参数集(FIPS 204)的基于外部 μ 模块网格的数字签名算法,其中矩阵 A 的维度为 (4,4)。 |
是 |
SDK:pq-sign-ml-dsa-65REST: PQ_SIGN_ML_DSA_65
|
使用 ML-DSA-65 参数集(FIPS 204)的纯基于模块格的数字签名算法,其中矩阵 A 的维度为 (6,5)。 |
是 |
SDK:pq-sign-ml-dsa-65-external-muREST: PQ_SIGN_ML_DSA_65_EXTERNAL_MU
|
使用 ML-DSA-65 参数集(FIPS 204)的基于外部 μ 模块格的数字签名算法,其中矩阵 A 的维度为 (6,5)。 |
是 |
SDK:pq-sign-ml-dsa-87REST: PQ_SIGN_ML_DSA_87
|
使用 ML-DSA-87 参数集 (FIPS 204) 的纯基于模块格的数字签名算法,其中矩阵 A 的维度为 (8,7)。 |
是 |
SDK:pq-sign-ml-dsa-87-external-muREST: PQ_SIGN_ML_DSA_87_EXTERNAL_MU
|
使用 ML-DSA-87 参数集(FIPS 204)的外部 μ 模块格基数字签名算法,其中矩阵 A 的维度为 (8,7)。 |
是 |
SDK:pq-sign-slh-dsa-sha2-128sREST: PQ_SIGN_SLH_DSA_SHA2_128S
|
纯粹的基于哈希的无状态数字签名算法。 |
是 |
SDK:pq-sign-hash-slh-dsa-sha2-128s-sha256REST: PQ_SIGN_HASH_SLH_DSA_SHA2_128S_SHA256
|
基于哈希的无状态预哈希数字签名算法。 |
是 |
软件
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:pq-sign-ml-dsa-44REST: PQ_SIGN_ML_DSA_44
|
使用 ML-DSA-44 参数集 (FIPS 204) 的纯基于模块格的数字签名算法,其中矩阵 A 的维度为 (4,4)。 |
是 |
SDK:pq-sign-ml-dsa-44-external-muREST: PQ_SIGN_ML_DSA_44_EXTERNAL_MU
|
使用 ML-DSA-44 参数集(FIPS 204)的基于外部 μ 模块网格的数字签名算法,其中矩阵 A 的维度为 (4,4)。 |
是 |
SDK:pq-sign-ml-dsa-65REST: PQ_SIGN_ML_DSA_65
|
使用 ML-DSA-65 参数集(FIPS 204)的纯基于模块格的数字签名算法,其中矩阵 A 的维度为 (6,5)。 |
是 |
SDK:pq-sign-ml-dsa-65-external-muREST: PQ_SIGN_ML_DSA_65_EXTERNAL_MU
|
使用 ML-DSA-65 参数集(FIPS 204)的基于外部 μ 模块格的数字签名算法,其中矩阵 A 的维度为 (6,5)。 |
是 |
SDK:pq-sign-ml-dsa-87REST: PQ_SIGN_ML_DSA_87
|
使用 ML-DSA-87 参数集 (FIPS 204) 的纯基于模块格的数字签名算法,其中矩阵 A 的维度为 (8,7)。 |
是 |
SDK:pq-sign-ml-dsa-87-external-muREST: PQ_SIGN_ML_DSA_87_EXTERNAL_MU
|
使用 ML-DSA-87 参数集(FIPS 204)的外部 μ 模块格基数字签名算法,其中矩阵 A 的维度为 (8,7)。 |
是 |
SDK:pq-sign-slh-dsa-sha2-128sREST: PQ_SIGN_SLH_DSA_SHA2_128S
|
纯粹的基于哈希的无状态数字签名算法。 |
是 |
SDK:pq-sign-hash-slh-dsa-sha2-128s-sha256REST: PQ_SIGN_HASH_SLH_DSA_SHA2_128S_SHA256
|
基于哈希的无状态预哈希数字签名算法。 |
是 |
hsm
| 算法 | 说明 | 量子安全 |
|---|
hsm-single-tenant
| 算法 | 说明 | 量子安全 |
|---|
外部
| 算法 | 说明 | 量子安全 |
|---|
external-vpc
| 算法 | 说明 | 量子安全 |
|---|
如需详细了解基于模块格的算法,请参阅 FIPS 204:基于模块格的数字签名标准。如需详细了解无状态基于哈希的签名,请参阅 FIPS 205:无状态基于哈希的数字签名标准。
非对称解密算法
Cloud KMS 中的非对称解密算法与私钥搭配使用,以解密在 Cloud KMS 外部使用相应公钥加密的数据。算法名称以以下格式指示填充算法、模数位数长度以及用于掩码生成函数 (MGF1) 的摘要算法:
RSA_DECRYPT_PADDING_ALGORITHM_MODULUS_BIT_LENGTH_DIGEST_ALGORITHM
RSA 加密算法容易受到量子计算攻击,包括“先收集,后解密”(HNDL) 攻击。在 HNDL 攻击中,恶意攻击者会拦截自己无法解密的密文,然后存储该密文,以便最终使用量子计算对其进行解密。如果您传输的数据必须长期保密,即使量子计算技术不断进步,也必须如此,请选择密钥封装算法。
下表列出了非对称解密算法。
您可以将此表中的算法与以下保护级别搭配使用:
softwarehsmhsm-single-tenant
不限
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:rsa-decrypt-oaep-2048-sha1REST: RSA_DECRYPT_OAEP_2048_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 2048 位密钥 |
否 |
SDK:rsa-decrypt-oaep-2048-sha256REST: RSA_DECRYPT_OAEP_2048_SHA256
|
具有 SHA-256 摘要的 RSAES-OAEP 2048 位密钥 |
否 |
SDK:rsa-decrypt-oaep-3072-sha1REST: RSA_DECRYPT_OAEP_3072_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 3072 位密钥 |
否 |
SDK:rsa-decrypt-oaep-3072-sha256REST: RSA_DECRYPT_OAEP_3072_SHA256
|
推荐 |
否 |
SDK:rsa-decrypt-oaep-4096-sha1REST: RSA_DECRYPT_OAEP_4096_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
SDK:rsa-decrypt-oaep-4096-sha256REST: RSA_DECRYPT_OAEP_4096_SHA256
|
具有 SHA-256 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
SDK:rsa-decrypt-oaep-4096-sha512REST: RSA_DECRYPT_OAEP_4096_SHA512
|
具有 SHA-512 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
软件
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:rsa-decrypt-oaep-2048-sha1REST: RSA_DECRYPT_OAEP_2048_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 2048 位密钥 |
否 |
SDK:rsa-decrypt-oaep-2048-sha256REST: RSA_DECRYPT_OAEP_2048_SHA256
|
具有 SHA-256 摘要的 RSAES-OAEP 2048 位密钥 |
否 |
SDK:rsa-decrypt-oaep-3072-sha1REST: RSA_DECRYPT_OAEP_3072_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 3072 位密钥 |
否 |
SDK:rsa-decrypt-oaep-3072-sha256REST: RSA_DECRYPT_OAEP_3072_SHA256
|
推荐 |
否 |
SDK:rsa-decrypt-oaep-4096-sha1REST: RSA_DECRYPT_OAEP_4096_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
SDK:rsa-decrypt-oaep-4096-sha256REST: RSA_DECRYPT_OAEP_4096_SHA256
|
具有 SHA-256 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
SDK:rsa-decrypt-oaep-4096-sha512REST: RSA_DECRYPT_OAEP_4096_SHA512
|
具有 SHA-512 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
hsm
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:rsa-decrypt-oaep-2048-sha1REST: RSA_DECRYPT_OAEP_2048_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 2048 位密钥 |
否 |
SDK:rsa-decrypt-oaep-2048-sha256REST: RSA_DECRYPT_OAEP_2048_SHA256
|
具有 SHA-256 摘要的 RSAES-OAEP 2048 位密钥 |
否 |
SDK:rsa-decrypt-oaep-3072-sha1REST: RSA_DECRYPT_OAEP_3072_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 3072 位密钥 |
否 |
SDK:rsa-decrypt-oaep-3072-sha256REST: RSA_DECRYPT_OAEP_3072_SHA256
|
推荐 |
否 |
SDK:rsa-decrypt-oaep-4096-sha1REST: RSA_DECRYPT_OAEP_4096_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
SDK:rsa-decrypt-oaep-4096-sha256REST: RSA_DECRYPT_OAEP_4096_SHA256
|
具有 SHA-256 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
SDK:rsa-decrypt-oaep-4096-sha512REST: RSA_DECRYPT_OAEP_4096_SHA512
|
具有 SHA-512 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
hsm-single-tenant
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:rsa-decrypt-oaep-2048-sha1REST: RSA_DECRYPT_OAEP_2048_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 2048 位密钥 |
否 |
SDK:rsa-decrypt-oaep-2048-sha256REST: RSA_DECRYPT_OAEP_2048_SHA256
|
具有 SHA-256 摘要的 RSAES-OAEP 2048 位密钥 |
否 |
SDK:rsa-decrypt-oaep-3072-sha1REST: RSA_DECRYPT_OAEP_3072_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 3072 位密钥 |
否 |
SDK:rsa-decrypt-oaep-3072-sha256REST: RSA_DECRYPT_OAEP_3072_SHA256
|
推荐 |
否 |
SDK:rsa-decrypt-oaep-4096-sha1REST: RSA_DECRYPT_OAEP_4096_SHA1
|
具有 SHA-1 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
SDK:rsa-decrypt-oaep-4096-sha256REST: RSA_DECRYPT_OAEP_4096_SHA256
|
具有 SHA-256 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
SDK:rsa-decrypt-oaep-4096-sha512REST: RSA_DECRYPT_OAEP_4096_SHA512
|
具有 SHA-512 摘要的 RSAES-OAEP 4096 位密钥 |
否 |
外部
| 算法 | 说明 | 量子安全 |
|---|
external-vpc
| 算法 | 说明 | 量子安全 |
|---|
所有这些算法都使用最优非对称加密填充 (OAEP)。
密钥封装算法
KEY_ENCAPSULATION 密钥用途用于通过密钥封装机制建立共享密钥。
下表列出了密钥封装算法。
您可以将此表中的算法与以下保护级别搭配使用:
software
不限
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:kem-xwingREST: KEM_XWING
|
推荐 |
是 |
SDK:ml-kem-768REST: ML_KEM_768
|
基于模块网格的密钥封装机制,采用 ML-KEM-768 参数集 (FIPS 203) |
是 |
SDK:ml-kem-1024REST: ML_KEM_1024
|
基于模块网格的密钥封装机制,采用 ML-KEM-1024 参数集 (FIPS 203) |
是 |
软件
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:kem-xwingREST: KEM_XWING
|
推荐 |
是 |
SDK:ml-kem-768REST: ML_KEM_768
|
基于模块网格的密钥封装机制,采用 ML-KEM-768 参数集 (FIPS 203) |
是 |
SDK:ml-kem-1024REST: ML_KEM_1024
|
基于模块网格的密钥封装机制,采用 ML-KEM-1024 参数集 (FIPS 203) |
是 |
hsm
| 算法 | 说明 | 量子安全 |
|---|
hsm-single-tenant
| 算法 | 说明 | 量子安全 |
|---|
外部
| 算法 | 说明 | 量子安全 |
|---|
external-vpc
| 算法 | 说明 | 量子安全 |
|---|
如需详细了解密钥封装算法,请参阅 FIPS 203:基于模块网格的密钥封装机制标准。
MAC 签名算法
MAC 密钥用途用于对称 MAC 签名。算法名称以以下格式指明了哈希算法:
HMAC_HASH_ALGORITHM
大多数对称算法通常被认为是量子安全的。不过,HMAC-SHA1 算法不是量子安全算法。如果您希望对称签名在量子计算取得进展后仍能长期保持可信度,请选择具有较大哈希算法大小的 HMAC 密钥。
下表列出了 HMAC 算法。
您可以将此表中的算法与以下保护级别搭配使用:
softwarehsmhsm-single-tenant
不限
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:hmac-sha1REST: HMAC_SHA1
|
具有 SHA-1 摘要的 HMAC |
否 |
SDK:hmac-sha224REST: HMAC_SHA224
|
具有 SHA-224 摘要的 HMAC |
是 |
SDK:hmac-sha256REST: HMAC_SHA256
|
推荐 |
是 |
SDK:hmac-sha384REST: HMAC_SHA384
|
具有 SHA-384 摘要的 HMAC |
是 |
SDK:hmac-sha512REST: HMAC_SHA512
|
具有 SHA-512 摘要的 HMAC |
是 |
软件
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:hmac-sha1REST: HMAC_SHA1
|
具有 SHA-1 摘要的 HMAC |
否 |
SDK:hmac-sha224REST: HMAC_SHA224
|
具有 SHA-224 摘要的 HMAC |
是 |
SDK:hmac-sha256REST: HMAC_SHA256
|
推荐 |
是 |
SDK:hmac-sha384REST: HMAC_SHA384
|
具有 SHA-384 摘要的 HMAC |
是 |
SDK:hmac-sha512REST: HMAC_SHA512
|
具有 SHA-512 摘要的 HMAC |
是 |
hsm
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:hmac-sha1REST: HMAC_SHA1
|
具有 SHA-1 摘要的 HMAC |
否 |
SDK:hmac-sha224REST: HMAC_SHA224
|
具有 SHA-224 摘要的 HMAC |
是 |
SDK:hmac-sha256REST: HMAC_SHA256
|
推荐 |
是 |
SDK:hmac-sha384REST: HMAC_SHA384
|
具有 SHA-384 摘要的 HMAC |
是 |
SDK:hmac-sha512REST: HMAC_SHA512
|
具有 SHA-512 摘要的 HMAC |
是 |
hsm-single-tenant
| 算法 | 说明 | 量子安全 |
|---|---|---|
SDK:hmac-sha1REST: HMAC_SHA1
|
具有 SHA-1 摘要的 HMAC |
否 |
SDK:hmac-sha224REST: HMAC_SHA224
|
具有 SHA-224 摘要的 HMAC |
是 |
SDK:hmac-sha256REST: HMAC_SHA256
|
推荐 |
是 |
SDK:hmac-sha384REST: HMAC_SHA384
|
具有 SHA-384 摘要的 HMAC |
是 |
SDK:hmac-sha512REST: HMAC_SHA512
|
具有 SHA-512 摘要的 HMAC |
是 |
外部
| 算法 | 说明 | 量子安全 |
|---|
external-vpc
| 算法 | 说明 | 量子安全 |
|---|