加密SDK(Encryption SDK)支持加密解密、签名验签,了解其工作原理可以帮助您更好地使用加密SDK。

加密解密原理

  • 加密原理

    加密SDK使用数字信封对数据进行加密。加密SDK支持通过用户主密钥(CMK)保护数据密钥(DataKey),使用数据密钥加密数据。关于信封加密的详情,请参见使用KMS信封加密在本地加密和解密数据

    加密
    1. 调用GenerateDataKey接口获取数据密钥和数据密钥密文。
    2. 使用数据密钥对数据进行加密,获取数据密文。
    3. 将数据密钥密文和数据密文进行编码,获取加密消息。
  • 解密原理解密
    1. 调用Decrypt接口获取数据密钥。
    2. 使用数据密钥对数据密文进行解密,获取数据。

签名验签原理

加密SDK通过非对称类型用户密钥提供签名、验签功能,支持RSA、ECC和SM2非对称密钥算法。更多信息,请参见非对称密钥概述

签名验签过程如下:

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

数字签名被广泛用于数据防篡改、身份认证等相关技术领域,使用场景如下:

  • 数字签名用于对二进制代码提供完整性保护,代码执行者可以验证代码未被篡改,以提供可信的执行环境。
  • 数字证书系统中,证书机构(CA)对颁发的数字证书提供签名,证明数字证书的主体信息、公私钥信息、密钥用途、有效期和签发者等信息。证书私钥持有者使用私钥对消息进行签名,消息接收者使用证书中包含的公钥对消息签名进行验证,同时使用证书签发者的公钥,验证证书本身的合法性。
说明 用户主密钥、数据密钥、数据密钥密文、加密密文、加密上下文等概念,请参见基本概念