# KHES 加密

KHES是功夫智云使用的一套端到端混合加密系统。

其中使用中国国家密码管理局发布的 《SM2椭圆曲线公钥密码算法》 (opens new window)AES-256-CBC (opens new window) 的融合。使得在确保高加密强度和安全性的同时,能够兼顾性能和速度。

# 算法原理

SM2加密方式:C1C3C2

SM2公钥格式:Hex

PDF加密方式:PDF 1.7 AES-256-CBC

# 使用方法

# 生成SM2秘钥对

生成SM2公私钥秘钥对 Hex编码方式,自行妥善保管私钥,其公钥 PubHex 需要导入至KIC应用中。

参考:

SM2 密钥在线生成工具 (opens new window)

hutool SM2算法使用 (opens new window)

GmSSL (opens new window)

# 设置应用公钥

参考 应用设置 填写生成好的公钥 PubHex

# 加密扫描

  1. 创建扫描任务时,将 encrypt 参数设为 true,开启加密扫描。
  2. 设备终端在扫描后获得扫描稿 源文件PDF
  3. 设备终端生成随机秘钥 Key(仅临时创建在设备内存中),并使用AES-256-CBC加密 源文件PDF,获得加密后的 加密PDF
  4. 设备终端将 Key 使用当前应用的SM2公钥 PubHexKey 进行加密,获得秘钥密文 Cipher
  5. 设备终端将 加密PDF,和PDF秘钥密文 Cipher 发送给调用方,设备侧销毁文件。
  6. 调用方使用自行留存的SM2私钥对秘钥密文 Cipher 进行解密,获得加密PDF文件的真实秘钥 Key
  7. 调用方使用秘钥 Key加密PDF 进行解密,获得 源文件PDF

# 加密打印

  1. 调用方生成随机秘钥 Key,并对 源文件PDF 使用AES-256-CBC加密,获得加密后的 加密PDF
  2. 调用方使用SM2私钥对秘钥 Key 进行加密,获得秘钥密文 Cipher。(SM2公私钥可反向使用,这里用私钥当公钥进行加密)
  3. 调用方创建打印任务,使用file_url或file_content方式设置 加密PDF,将 encrypt 参数设为 true,开启加密打印,并提交 cipher 秘钥密文。
  4. 设备终端收到打印指令后,使用对应应用的SM2公钥 PubHexcipher 秘钥密文进行解密,获得PDF秘钥 Key(仅临时创建在设备内存中)。
  5. 设备终端使用PDF秘钥 Key 对 AES-256-CBC加密的 加密PDF 进行解密,获得 源文件PDF
  6. 设备终端使用 源文件PDF 完成打印并销毁源文件。

提示

加密打印目前只支持pdf格式的文档