# 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)
# 设置应用公钥
参考 应用设置 填写生成好的公钥 PubHex
# 加密扫描
- 创建扫描任务时,将 encrypt 参数设为 true,开启加密扫描。
- 设备终端在扫描后获得扫描稿 源文件PDF。
- 设备终端生成随机秘钥 Key(仅临时创建在设备内存中),并使用AES-256-CBC加密 源文件PDF,获得加密后的 加密PDF。
- 设备终端将 Key 使用当前应用的SM2公钥 PubHex 对 Key 进行加密,获得秘钥密文 Cipher。
- 设备终端将 加密PDF,和PDF秘钥密文 Cipher 发送给调用方,设备侧销毁文件。
- 调用方使用自行留存的SM2私钥对秘钥密文 Cipher 进行解密,获得加密PDF文件的真实秘钥 Key。
- 调用方使用秘钥 Key 对 加密PDF 进行解密,获得 源文件PDF。
# 加密打印
- 调用方生成随机秘钥 Key,并对 源文件PDF 使用AES-256-CBC加密,获得加密后的 加密PDF。
- 调用方使用SM2私钥对秘钥 Key 进行加密,获得秘钥密文 Cipher。(SM2公私钥可反向使用,这里用私钥当公钥进行加密)
- 调用方创建打印任务,使用file_url或file_content方式设置 加密PDF,将 encrypt 参数设为 true,开启加密打印,并提交 cipher 秘钥密文。
- 设备终端收到打印指令后,使用对应应用的SM2公钥 PubHex 对 cipher 秘钥密文进行解密,获得PDF秘钥 Key(仅临时创建在设备内存中)。
- 设备终端使用PDF秘钥 Key 对 AES-256-CBC加密的 加密PDF 进行解密,获得 源文件PDF。
- 设备终端使用 源文件PDF 完成打印并销毁源文件。
提示
加密打印目前只支持pdf格式的文档