概述

最近更新时间:2024-09-10 17:42:31

我的收藏
非对称加解密需要两个密钥:公开密钥私有密钥,这两个密钥在密码学中是一对且具有双向性,即公钥和私钥中的任一个均可用作加密,但只能由另一个进行解密 。公开密钥可以交给任何人,即使对方是不可信任的,而私有密钥必须自行秘密保管。
相比对称加密,非对称加密无需考虑采用可靠的通道进行密钥分发,通常应用在信任等级不对等的系统之间 ,实现敏感数据加密传递或数字签名验签。

非对称密钥的类型

当前腾讯云 KMS 支持如下三种非对称密钥算法类型:

RSA

目前 KMS 支持模长为2048比特的 RSA 密钥,KeyUsage = ASYMMETRIC_DECRYPT_RSA_2048。

SM2

SM2 是国密标准的公钥密钥算法,在中国的商用密码体系中被用来替换 RSA 算法。对于有相应的国密要求的应用,可以考虑使用此类型的密钥,KeyUsage = ASYMMETRIC_DECRYPT_SM2。

ECC

ECC 是基于椭圆曲线的加密算法,KeyUsage = ASYMMETRIC_SIGN_VERIFY_ECC。

非对称加密的典型场景

非对称加解密在实际应用中包含加密通信数字签名两种典型场景:

加密通信

加密通信是非对称加密算法的一种典型应用。加密通信的过程类似于对称加密,区别在于需要使用公钥进行加密,而且需要使用私钥进行解密。
加密通信场景的原理说明如下:
1. 信息接收者创建公钥私钥对,并将公钥给到一个或多个信息发送者。
2. 信息发送者使用公钥对敏感信息进行加密,并将加密后的密文通过传输介质发送给信息接收者。
3. 信息接收者从传输介质上获取到数据后,用自己持有的私钥对信息进行解密,还原出原文信息。
由于密文只有通过私钥才可以解密,而私钥是不公开的,所以即使由于传输介质的安全性比较低而导致信息泄露,拿到密文的人也无法将其破译,从而保证了敏感信息的安全。
腾讯云 KMS 提供加密通信的解决方案,具体操作详情请参见 非对称数据加解密

数字签名

数字签名技术是非对称加密算法的另一种典型应用。数字签名分为签名和验证两个过程,在签名时使用私钥,验证时则使用公钥,这一实现过程正好与加密通信相反。
数字签名场景的原理说明如下:
1. 信息发送者创建公钥私钥对,并将公钥给到一个或多个信息接收者。
2. 信息发送者使用哈希函数从消息原文中生成消息摘要,然后使用私有密钥对这个摘要进行加密,即得到消息原文对应的数字签名。
3. 信息发送者将消息原文和数字签名一并传送给信息接收者。
4. 信息接收者得到消息原文和数字签名后,用同一个哈希函数从消息原文中生成摘要 A,另外,用发送者提供的公钥对数字签名进行解密,得到摘要 B,对比 A 和 B 是否相同,验证原文是否被篡改。
由于签名是使用私钥加密产生,而私钥不公开,这使得签名具有唯一的特征。所以数字签名既可以保证数据在传输过程中不会被篡改,又可以保证信息发送者的身份正确性,防止交易中的抵赖发生。
腾讯云 KMS 提供数字签名解决方案,具体操作详情请参见 非对称签名验签
注意:
由于公私钥使用场景的特殊性,KMS 不支持对非对称的 CMK 进行自动轮转。如果您需要定期或不定期更新所使用的密钥,可以自行创建新的非对称密钥。