阿里云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部分:數字簽名算法》。