相比对称加密,非对称密钥通常用于在信任程度不对等的系统之间,实现数字签名验签或者加密传递敏感信息。
非对称密钥由一对密钥组成,分别是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。公钥可以任意对外发布,私钥必须由用户自行严格秘密保管。非对称密钥具有双向性,即公钥和私钥中的任一个均可用作加密,此时另一个则用作解密。
密钥管理服务(KMS)支持主流的非对称密钥算法并且提供足够的安全强度,保证数据加密和数字签名的安全性。
KMS支持的非对称密钥类型
非对称密钥支持的算法类型如下:
算法 | 密钥规格 | 保护级别 |
---|---|---|
RSA | RSA_2048 | Software HSM |
SM2 | Ctyun_SM2 | HSM |
非对称密钥功能特性
由于非对称密钥公、私钥使用场景的特殊性,KMS不支持对非对称的用户主密钥进行自动轮转。您可以自主在指定用户主密钥中创建新的密钥版本,生成全新的一对公钥和私钥。
非对称密钥区分公钥运算和私钥运算,公钥主要用于数据加密和验签,私钥主要用于数字签名和数据解密。
功能 | 功能描述 |
---|---|
创建密钥版本 | 支持自主创建新密钥版本,不支持设置自动轮转策略。 区别于对称密钥,非对称密钥无密钥主版本概念,则在调用非对称密码运算API接口时,在指定使用的用户主密钥(CMK)的同时,还需指定使用的密钥版本(keyVersion)。 |
公钥运算 | 大多数情况下,您可以调用GetPublicKey接口获取公钥,之后分发给公钥使用者。使用者在业务端通过OpenSSL、Java JCE等常用的密码运算库在本地进行加密、验签处理。 密钥管理服务(KMS)也提供公钥运算的非对称密钥加密接口(asymmetricEncrypt)和数字签名验签接口(asymmetricVerify),满足特定的业务需求。 |
私钥运算 | 由于私钥的不公开性,用户仅能通过调用KMS提供的私钥运算的产生数字签名接口(asymmetricSign)和非对称密钥解密接口(asymmetricDecrypt),实现签名、解密处理。 |
非对称密钥应用场景
场景 | 场景描述 |
---|---|
签名验签 | 数字签名技术是非对称加密算法的另一种典型应用。数字签名分为签名和验证两个过程,消息发送者使用私钥对数据签名,消息接收者使用公钥进行签名验证。 由于签名是使用私钥加密产生,而私钥不公开,这使得签名具有唯一的特征,广泛用于数据防篡改、身份认证等相关技术领域。 |
数据加解密 | 非对称密钥加密通信的过程类似于对称加密,区别在于需要使用公钥进行数据加密,使用私钥进行数据解密。 由于密文只有通过私钥才可以解密,而私钥是不公开的,所以即使由于传输介质的安全性比较低而导致信息泄露,拿到密文的人也无法将其破译,从而保证了敏感信息的安全。这种敏感信息传递的方式,被广泛用于各类密钥交换场景。 |