加密机ic编程开发手册内容摘要:

查 由密码机生成的密钥,密码机可自动检查其是否为弱密钥( Weak Key)或半弱密钥( simiweak key)。 如果属于这类密钥,密码机将自动重新产生。 弱密钥为: 01 01 01 01 01 01 01 01 1F 1F 1F 1F 1F 1F 1F 1F E0 E0 E0 E0 F1 F1 F1 F1 FE FE FE FE FE FE FE FE 半弱密钥为: E0 FE E0 FE F1 FE F1 FE FE E0 FE E0 FE F1 FE F1 1F FE 1F FE 0E FE 0E FE 01 FE 01 FE 01 FE 01 FE 1F E0 1F E0 0E F1 0E F1 01 E0 01 E0 01 F1 01 F1 FE 1F FE 1F FE 0E FE 0E E0 1F E0 1F F1 0E F1 0E 第 页 6 FE 01 FE 01 FE 01 FE 01 E0 01 E0 01 F1 01 F1 01 01 1F 01 1F 01 0E 01 0E 1F 01 1F 01 0E 01 0E 01 第 页 7 3 密码机消息格式 异步消息格式 异步通讯协议( ASYNC)采用 8 bits 数据位, 1 bit 停止位,无奇偶校验位,波特率。 消息格式如下: STX 「消息内容」 检查和 ETX 1 BYTE N BYTES 4 BYTES 1 BYTE STX:控制字符 (0x02),表示消息开始。 ETX:控制字符 (0x03),表示消息结束。 检查和:消息内容各字节的算术和,取最后 4 位。 用来对消息内容进行验证。 检查和的计算如下例: 消息-- “ 31001” 33 31 30 30 + 31 F5 检查和 : 00F5 第 页 8 TCP/IP 消息格式 主机端: 2字节长度 + 1 字节通道号 + 消息内容 2 字节长度: 1 + 消息内容字节数 1 字节通道号: 密码机返回此字节,不做改变。 如果不用此字节,可填任意值。 消息内容: 按命令格式组织的消息包 例如,要发送的消息包为 0x31, 0x32 两字节,则向密码机发送的内容为: 0x00, 0x03, 0xXX, 0x31, 0x32 消息的传送 所有消息均用 ACSII 字符方式传送。 密钥和密文部分用十六进制数字表示。 因此一个 8字节的密钥应该转换成 16 个 ASCII 码字符,一个 16 字节的密钥应转换成 32 个 ASCII 码字符输入。 字母缩写说明 n: 可变长度域 N: 十进制字符‘ 0’ ‘ 9’ A: 可打印字符 H: 十六进制字符 (‘ 0’ –‘ F’ ) 第 页 9 MAC 数据说明 1. 所有用来计算 MAC 的数据,先要转换成 ASCII 码‘ 0’ ‘ 9’或‘ A’ ‘ F’,然后送入密码机。 2. MAC 长度指示域为转换前的字节数。 3. 如果密码机计算的 MAC 与您计算的不符: ① 可在 MAC 数据前加 8 字节的 0,因为密码机的有些指令把前 8字节当做初始向量,具体算法请参考附录中的算法说明; ② 如果您在 MAC 数据后面加了 0x80,0x00„ ,请去掉,密码机会自动为您加上该分组。 第 页 10 4 IC 卡标准指令 密钥命令 产生一个索引的卡片密钥 (E0/E1) 功能 :密码机产生一个 64bits、 128bits、 192bits 的随机数,作为指定版本( Version)、指定组( Group Index)的某个卡片密钥( M_Number),将它保存在密码机内,同时用 基础 主密钥加密输出。 输 入 消 息 格 式 输 入 域 长 度 类 型 内 容 命 令 2 A E0 Version 1 N 0:当前版本 其他:老版本 Group Index 2 N 00— 31 M_Number 2 N 01— 10 输 出 消 息 格 式 输 出 域 长 度 类 型 内 容 应 答 码 2 A E1 错 误 代 码 2 N M*KEY 密值 32 H 用 基础 主密钥加密 校 验 值 4 H M *KEY 加密 64bits 的 0 第 页 11 存储一个索引的卡片密钥 (E2/E3) 功能: 密码机接受这个指定版本( Version)、指定组( Group Index)的卡片密钥( M*KEY)密值,并将它用基础主密钥解密后存储在密码机内。 输 入 消 息 格 式 输 入 域 长 度 类 型 内 容 命 令 2 A E2 Version 1 N 0:当前版本,其他:老版本 Group Index 2 N 0- 31 M_Number 2 N 1- 10 M*KEY 的密值 32 H 用基础主密钥加密 校 验 值 4 H M*KEY 的校验值 输 出 消 息 格 式 输 出 域 长 度 类 型 内 容 应 答 码 2 A E3 错 误 代 码 2 N 第 页 12 清除一个索引的卡片密钥 (E4/E5) 功能: 清除密码机 内 指定的卡片密钥。 输 入 消 息 格 式 输 入 域 长 度 类 型 内 容 命 令 2 A E4 Version 1 N 0:当前版本,其他:老版本 Group Index 2 N 0- 31 M_Number 2 N 1- 10 输 出 消 息 格 式 输 出 域 长 度 类 型 内 容 应 答 码 2 A E5 错 误 代 码 2 N 第 页 13 取回一个索引的卡片密钥 (E6/E7) 功能: 将指定的卡片密钥用基础主密钥加密后输出。 输 入 消 息 格 式 输 入 域 长 度 类 型 内 容 命 令 2 A E6 Version 1 N 0:当前版本,其他:老版本 Group Index 2 N 0— 31 M_Number 2 N 1— 10 输 出 消 息 格 式 输 出 域 长 度 类 型 内 容 应 答 码 2 A E7 错 误 代 码 2 N M*KEY 密值 32 H 用基础主密钥加密 校 验 值 4 H M*KEY 的校验值 第 页 14 产生一个索引的终端主密钥 (D0/D1) 功能: 密码机产生一个 64bits 的随机数,作为指定索引( TMK Index)的终端主密钥,并将它保存在密码机内;同时用基础主密钥加密,将加密后的这个终端主密钥( TMK)密值返回给主机。 输 入 消 息 格 式 输 入 域 长 度 类 型 内 容 命 令 2 A D0 TMK Index 3 N 000— 999 输 出 消 息 格 式 输 出 域 长 度 类 型 内 容 应 答 码 2 A D1 错 误 代 码 2 N TMK 密值 16 H 用基础主密钥加密 校 验 值 4 H TMK 的校验值 第 页 15 存储一个索引的终端主密钥 (D2/D3) 功能: 密码机接受指定索引( TMK INDEX)的终端主密钥( TMK)密值,并将它用基础主密钥解密后存储在密码机内。 输 入 消 息 格 式 输 入 域 长 度 类 型 内 容 命 令 2 A D2 TMK Index 3 N 0— 999 TMK 密值 16 H 用基础主密钥加密 校 验 值 4 H TMK 的校验值 输 出 消 息 格 式 输 出 域 长 度 类 型 内 容 应 答 码 2 A D3 错 误 代 码 2 N 第 页 16 清除一个索引的终端主密钥 (D4/D5) 功能: 清除密码机内指定索引的终端主密钥。 输 入 消 息 格 式 输 入 域 长 度 类 型 内 容 命 令 2 A D4 TMK Index 3 N 0- 999 输 出 消 息 格 式 输 出 域 长 度 类 型 内 容 应 答 码 2 A D5 错 误 代 码 2 N 第 页 17 取回一个索引的终端主密钥 (D6/D7) 功能: 密码机将指定索引的终端主密钥,用基础主密钥加密后返回给主机。 输 入 消 息 格 式 输 入 域 长 度 类 型 内 容 命 令 2 A D6 TMK Index 3 N 000— 999 输 出 消 息 格 式 输 出 域 长 度 类 型 内 容 应 答 码 2 A D7 错 误 代 码 2 N TMK 密值 16 H 用基础主密钥加密 校 验 值 4 H TMK 的校验值 第 页 18 计算离散子密钥 (10/11) 功能: 密码机根据指定的卡片密钥,加密输入数据,得离散子密钥,存于密码机内。 算法选择: 0: DES ; 2:保留,以后同。 输 入 消 息 格 式 输 入 域 长 度 类 型 内 容 命 令 2 A 10 算法选 择 1 N Version 1 N 0:当前版本,其他:老版本 Group Index 2 N 00— 31 M_Number 2 N 1— 10 LS_Data 16 H 用于生成离散子密钥 输 出 消 息 格 式 输 出 域 长 度 类 型 内 容 应 答 码 2 A 11 错 误。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。