阿里云KMS支持常见的对称密钥规格和非对称密钥规格,并且提供足够的安全强度,以保证数据加密的安全性。本文介绍不同的密钥管理类型支持的密钥规格等信息。
支持的对称密钥规格
对称密钥加密是最常用的敏感数据加密保护方式之一,加密过程和解密过程使用相同的密钥内容,KMS可以安全保管对称密钥的密钥材料以防止被非法窃取或使用,确保被加密数据的安全。
密钥规格
对称密钥主要用于数据的加密保护场景,不同的密钥管理类型支持的密钥规格等信息请参见下表。
密钥管理类型 | 密钥规格 | 支持的加密算法 | 填充模式 |
默认密钥 | Aliyun_AES_256 | GCM(默认值) | 不涉及 |
软件密钥 | Aliyun_AES_256 | GCM(默认值) | 不涉及 |
硬件密钥 |
| GCM(默认值)、ECB、CBC |
|
Aliyun_SM4 | GCM(默认值) | 不涉及 | |
外部密钥 | Aliyun_AES_256 | GCM(默认值)、ECB、CBC |
|
Aliyun_SM4 | GCM(默认值) | 不涉及 |
通过CreateKey接口创建密钥时,如果您未指定具体的密钥规格(KeySpec),KMS默认创建“Aliyun_AES_256”密钥规格的对称密钥。
遵循的技术规范
Aliyun_AES_256:AES密钥,256比特。遵循技术规范《Advanced Encryption Standard (AES)》(FIPS PUB 197)。
Aliyun_AES_192:AES密钥,192比特。遵循技术规范《Advanced Encryption Standard (AES)》(FIPS PUB 197)。
Aliyun_AES_128:AES密钥,128比特。遵循技术规范《Advanced Encryption Standard (AES)》(FIPS PUB 197)。
Aliyun_SM4:SM4密钥,128比特。遵循技术规范《GB/T 32907-2016 信息安全技术 SM4分组密码算法》、《GM/T 0002-2012 SM4分组密码算法》
支持的非对称密钥规格
非对称密钥由一对公钥和私钥组成,它们在密码学上互相关联,其中的公钥可以被分发给任何人,而私钥必须被安全地保护起来,只有拥有者或受信任者可以使用。
您在KMS创建的非对称密钥,可通过GetPublicKey接口或控制台获取公钥内容;私钥内容由KMS确保安全性,且KMS不提供导出非对称密钥私钥的接口。
非对称密钥通常用于实现数字签名验签或者加密传递对称密钥等数据量较小的机密信息,您可以在创建非对称密钥时设定密钥用途。
当密钥用途为ENCRYPT/DECRYPT时:您可通过KMS的加密(Encrypt)接口使用公钥进行加密,通过解密(Decrypt)接口使用私钥进行解密。
当密钥用途为SIGN/VERIFY时:您可通过KMS的数字签名(Sign)接口使用私钥进行数字签名计算,通过数字签名验证(Verify)接口使用公钥进行签名验证。
因非对称加解密运算量比较大,使用非对称密钥进行加解密时,在实际应用通常用于安全分发对称密钥等仅需要加解密小块数据的场景。
密钥规格
不同的密钥管理类型支持的密钥规格等信息请参见下表。
密钥管理类型 | 密钥规格 | 支持的加密算法 | 支持的签名算法 |
软件密钥 | RSA_2048、RSA_3072 | RSAES_OAEP_SHA_256(默认值) | RSA_PSS_SHA_256(默认值)、RSA_PKCS1_SHA_256 |
EC_P256、EC_P256K | ECIES_DH_SHA_1_XOR_HMAC(默认值) | ECDSA_SHA_256(默认值) | |
硬件密钥 | RSA_2048、RSA_3072、RSA_4096 | RSAES_OAEP_SHA_256(默认值) | RSA_PSS_SHA_256(默认值)、RSA_PKCS1_SHA_256 |
EC_P256、EC_P256K | ECIES_DH_SHA_1_XOR_HMAC(默认值) | ECDSA_SHA_256(默认值) | |
EC_SM2 | SM2PKE(默认值) | SM2DSA(默认值) |
遵循的技术规范
RSA_2048:RSA密钥对,模(modulus)长2048比特。遵循技术规范《PKCS #1: RSA Cryptography Specifications Version 2.2》。
RSA_3072:RSA密钥对,模(modulus)长3072比特。遵循技术规范《PKCS #1: RSA Cryptography Specifications Version 2.2》。
RSA_4096:RSA密钥对,模(modulus)长4096比特。遵循技术规范《PKCS #1: RSA Cryptography Specifications Version 2.2》。
EC_P256:椭圆曲线密码Elliptic Curve Cryptography (ECC) 密钥对,NIST推荐使用的曲线之一:P-256。遵循技术规范《NIST SP800-186 Recommendations for Discrete Logarithm-based Cryptography 》
EC_P256K:椭圆曲线密码 Elliptic Curve Cryptography (ECC) 密钥对,Secg推荐的曲线之一: secp256k1。遵循技术规范《SEC 2: Recommended Elliptic Curve Domain Parameters》。
EC_SM2:SM2算法密钥对,遵循技术规范《GB/T 32918-2016 信息安全技术 SM2椭圆曲线公钥密码算法》、《GM/T 0003-2012 SM2椭圆曲线公钥密码算法》。
加密算法说明
RSAES_OAEP_SHA_256:RSA加密,按照RFC 3447/PKCS#1中定义的RSAES-OAEP模式,使用MGF1和SHA-256。
ECIES_DH_SHA_1_XOR_HMAC:遵循SEC 1: Elliptic Curve Cryptography, Version 2.0标准,密钥协商算法采用ECDH,密钥派生算法采用KDF2 with SHA-1,MAC算法采用HMAC-SHA-1,对称加密算法采用XOR。
SM2PKE:SM2椭圆曲线公钥加密算法,符合标准《GM/T 0003.4 SM2 椭圆曲线公钥密码算法 第4部分:公钥加密算法》
签名算法说明
RSA_PSS_SHA_256:对数据使用SHA-256算法计算杂凑值,按照RFC 3447/PKCS#1中定义的RSASSA-PSS算法计算签名,MGF1(SHA-256)。
RSA_PKCS1_SHA_256:对数据使用SHA-256算法计算杂凑值,按照RFC 3447/PKCS#1中定义的RSASSA-PKCS1-v1_5算法计算签名。
ECDSA_SHA_256:ECDSA数字签名,使用SHA-256杂凑算法。
SM2DSA:SM2椭圆曲线数字签名算法,符合标准《GM/T 0003.2 SM2 椭圆曲线公钥密码算法 第2部分:数字签名算法》。