openstack-notes

非对称加密

相比对称加密,非对称密钥通常用于在信任程度不对等的系统之间,实现数字签名验签或者加密传递敏感信息。

非对称密钥由一对公钥和私钥组成,他们在密码学上互相关联,其中的公钥可以被分发给任何人,而私钥必须被安全的保护起来,只有受信任者可以使用。

KMS支持对非对称密钥类型的用户主密钥生成证书签名请求CSR(Certificate Signing Request)文件,证书申请者提交CSR给证书颁发机构后,证书颁发机构使用其CA私钥为用户签发数字证书。签发的数字证书可以用于安全电子邮件、安全终端保护、代码签名保护、可信网站服务、身份授权管理等。

非对称密钥的类型

KMS支持的非对称密钥算法类型如下:

算法 密钥规格 说明 用途
RSA RSA_2048RSA_3072 RSA非对称密码 数据的加解密运算数字签名
ECC EC_P256:NIST推荐的椭圆曲线P-256EC_P256K:SECG椭圆曲线secp256k1 椭圆曲线密码(Elliptic Curve Cryptography) 数字签名
SM2 EC_SM2 标准GBT32918定义的椭圆曲线密码 数据的加解密运算数字签名

数据加密

非对称密钥用于数据加密,通常适用于传递敏感信息,典型场景如下:

  1. 信息接收者将加密公钥分发给信息传送者。
  2. 信息传送者使用公钥对敏感信息进行加密保护。
  3. 信息传送者将敏感信息的密文传递给信息接收者。
  4. 信息接收者使用私钥将敏感信息的密文解密。

由于解密的私钥只有信息接收者可以使用,因此可以确保敏感信息的明文在传递过程中不被恶意者截获。这种敏感信息传递的方式,被广泛用于各类密钥交换场景。例如:在TLS中交换会话密钥、在不同的密码机之间导入导出加密密钥。

数字签名

非对称密钥更广泛的用途是数字签名,即使用私钥对消息或者信息产生签名。由于私钥受到严格保护,只有受信者可以使用私钥来产生签名,使用公钥验证签名可以实现以下目的:

典型的签名验签场景如下:

  1. 签名者将验签公钥分发给消息接收者。
  2. 签名者使用签名私钥,对数据产生签名。
  3. 签名者将数据以及签名传递给消息接收者。
  4. 消息接收者获得数据和签名后,使用公钥针对数据验证签名的合法性。

数字签名被广泛用于数据防篡改、身份认证等相关技术领域。