江南科友加密机-雷卡指令编程
文章目录
HSM:Host Security Module,主机安全模块。完成系统需要的密钥管理,PIN和MAC相关运算的功能。
数据需编码成ASCII码或EBCDIC码。HSM认为所有数据都被编码好了。
支持异步,双同步,SNA,SDLC,TCP/IP,IBM等通讯协议。
HSM没有支持流控制,开发人员必须确保HSM的输入缓冲器不会溢出。
HSM也将错误代码作为响应消息的一部分返回主机。
以下什么意思?
- X-ANSI X9.17双倍长度;
- Y-ANSI X9.17三倍长度;
- ANSI X9.19
应用程序应该确保加密机的输入缓冲器(2048字节长)不会被溢出。任何一条单独命令(包括STX和ETX等字符在内)的长度都不会超过2048字节(SNA-SDLC环境为1024字节)。
HSM产生四种类型的错误:
- 致命错误
- 不可恢复错误
- 可恢复错误
- 编程错误
应用程序应当监视HSM接口是否超时。
一个典型的系统包含两个或多个以运行状态相连接的HSM。当HSM发生错误时也可以作为备份机使用。
HSM本地主密钥(LMKs)从key00计数至key99。有对应功能。
注意:SM4密钥只有方案S,无需变种。
HSM提供一系列的函数以实现密钥管理、PIN管理(包括PIN验证)和信息认证码(MAC)运算的功能。HSM必须有一个已定义的打印格式。
HSM命令:
- 完成诊断NC/ND
- 生成密钥:A0/A1
- **注意:**查看密钥类型表以找到密钥类型代。
- 查看密钥方案表以找到加密密钥的有效方案。
- 随机生成密钥A1/A2。
- 生成并打印一个成分A2/A3。
- 生成一个随机的成份,在与HSM相连接的打印机上打印出来并将加密值返回给主机。打印机必须连接到HSM辅助端口。HSM必须有一个已定义的打印格式。
- 输入一个密钥A6/A7。
- 查看密钥类型表以找到密钥类型代码。
- 输出一个密钥A8/A9。查看密钥类型表以找到密钥类型代码。HSM必须处于授权状态。
- 生成密钥校验值( BU/BV)
- 将ZPK由ZMK转为LMK加密(FA/FB)。将ZPK由ZMK加密转为LMK加密。用于从另一群体取得ZPK。
- 将ZPK由LMK转为ZMK加密(GC/GD)。将ZPK由LMK加密转为ZMK加密。用于向另一群体传送ZPK。
- 生成或导入明文密钥()
- 加密一个明文的PIN(BA/BB)
- 解密一个明文的PIN(NG/NH)
需求:添加AES加密功能。
PIN格式:HSM要求PIN以十六位的PIN块格式输入。
- 以一位的0、PIN的长度、PIN和填充字符(十六进制的“F”)组成一个十六位的块。
- PIN块是以PIN长度、6位的PIN和用户定义的数字填充串组成。
- PIN块是由客户PIN和十六进制的“F”填充字符组成。
- 格式04是被PLUS网络所采用的PIN块格式。这种格式是由客户PIN和相关的账号按以