密码卡工作密钥使用指南V1.0
一、概述
本指南描述工作密钥的定义以及使用方法,即工作密钥的导入、使用、备份、恢复、同步。
适用范围
此指南适用于派科信安的如下PCIe密码卡:
- A系列:A11、A12
- C系列:C11
适用于派科信安的如下Mini PCIe密码卡:
-
M11、M11U
-
M50、M51
适用于派科信安的如下USB密码卡:
- U11
二、工作密钥的定义
定义
工作密钥是用户存储在密码卡内的对称密钥,密码卡掉电密钥不丢失。工作密钥限制为128bit密钥,适合国密对称算法。
工作密钥是密码卡【扩展】功能,不属于国密三级密钥体系。工作密钥由管理密钥加密保护,需要密码卡在就绪状态并具有管理员或操作员权限才能操作。
工作密钥与KEK密钥
工作密钥借用KEK密钥的存储空间保存,即KEK密钥的索引位置保存的对称密钥既可以当KEK使用也可以当工作密钥使用,固件及API也不作区分。如此,就需要由用户按需要自行分配KEK索引位置给KEK密钥和工作密钥,用户需要按照设置好的索引范围使用相应的API接口操作相应的密钥。例如:1~128索引分配为KEK,129~256索引分配为工作密钥,则KEK密钥API接口的使用索引为1~128,工作密钥API接口的使用索引为129~256。
工作密钥与会话密钥
工作密钥不能通过索引直接用于数据加解密,使用时需要将索引位置保存的密文解密到会话密钥,得到会话密钥句柄,用对称加密与对称解密实现数据加解密。
工作密钥可以导入会话密钥。对应API是SPII_GetSymmKeyHandle 。
会话密钥可以保存到工作密钥。对应API是SPII_SetSymmKeyWithSK。
三、工作密钥的使用
工作密钥的导入
1、SDF_ImportKey 导入会话密钥,得到会话密钥句柄。
2、SPII_SetSymmKeyWithSK 会话密钥导入工作密钥索引位置。
3、SDF_DestroyKey 会话密钥不再使用时销毁会话钥句柄。
工作密钥的使用
1、SPII_GetSymmKeyHandle 将索引位置工作密钥导入会话密钥,得到会话密钥句柄。
2、SDF_Encrypt/SDF_Decrypt 用会话密钥句柄加解密应用数据
3、SDF_DestroyKey 会话密钥不再使用时销毁会话钥句柄。
工作密钥的备份、恢复
工作密钥借用KEK密钥的备份、恢复接口进行备份恢复,没有单独的备份恢复接口。
工作密钥备份、恢复时直接按KEK密钥进行备份、恢复。
工作密钥的同步
工作密钥的同步主要解决应用系统中多卡或多设备内工作密钥分发的问题,使应用系统中的卡或设备使用同一样的工作密钥。
工作密钥同步的常规方法使用非对称算法实现,以SM2算法举例,过程如下。
工作密钥发布者:
Step 1: 获得工作密钥接收者的SM2公钥。
Step 2:使用SPII_GetSymmKeyHandle 将需要同步的索引位置工作密钥导入会话密钥,得到会话密钥句柄。
Step 3:使用SDF_ExportKeyWithEPK_ECC将会话密钥使用工作密钥接收者的SM2公钥加密。
Step 4:将会话密钥密文(即工作密钥密文)返回给工作密钥接收者。
Step 5:SDF_DestroyKey 会话密钥不再使用时销毁会话钥句柄。
工作密钥接收者:
Step 1: 使用SDF_ExportEncPublicKey_ECC导出一个SM2加密公钥给工作密钥发布者。
Step 2:等待工作密钥发布者返回工作密钥密文。
Step 3:SDF_GetPrivateKeyAccessRight获取SM2加密私钥使用权限。
Step 4:使用SDF_ImportKeyWithISK_ECC将工作密钥密文解密到会话密钥,得到会话密钥句柄。
Step 5:使用SPII_SetSymmKeyWithSK 会话密钥导入工作密钥索引位置。
Step 6:SDF_DestroyKey 会话密钥不再使用时销毁会话钥句柄。
Step 7:SDF_ReleasePrivateKeyAccessRight释放SM2加密私钥使用权限。
工作密钥的使用示例
使用示例见