您好,欢迎访问三七文档
一、加密机在社保中的应用1.加密机的功能和使用方法2.加密机的密钥结构及其在社保应用的常用指令注:以SJL06型加密机为原型SJL06E实物1.加密机的功能用64bits密钥做1_DES加密运算;用128bits密钥做3_DES加密运算;产生离散子密钥算法GEN_LSKEY及过程密钥算法GEN_GCKEY支持1_DES_MAC、TAC、3_DES_MAC算法;数据通信加密,能保存多个终端的主密钥TER_MAST_KEY;可产生由TMK加密的动态通信密钥TXKEY;支持MAC_MODE_1、MAC_MODE_2、MAC_MODE_3三种算法。1.加密机的功能通过加密机分散出子钥;通过加密机对社保卡进行圈存,包括验证圈存MAC1、计算圈存MAC2、以及验证圈存TAC。1.加密机的使用方法密码机在使用之前应先注入主密钥,否则不能正常使用密码机。注入主密钥的方法:1.通过密码机后面板上的9针插座与PC机相连,在PC机上运行密钥管理程序注入;2.通过密码机上的面板操作完成各种密钥的注入。1.加密机的使用方法密码机在使用之前必须注入主密钥的原因:密码机中所有的信息均以密文方式导出,此时使用主密钥对导出的信息加密得到密文。即:主密钥是保护其他密钥的密钥。1.加密机的使用方法加密机的两种模式:管理模式(需要插入A卡启动)加密机面板操作PC机终端管理(通过串口运行密钥管理软件)生产模式通过加密机后面板的RJ45接口建立TCP连接。1.加密机的使用方法加密机附带的IC卡:用于存贮银行主密钥的密码和主密钥的成份;又是实现密钥管理的一种手段,它可实现操作人员的身份认证、使用权限划分及可方便地将密钥安装/恢复到密码机中。IC卡共分A、B、C三种类型:A卡:保存主密钥的成份一,对密码机具有最高控制权限;B卡:保存主密钥的成份二、三,其控制权限是A卡权限的子集,没有输入主密钥和修改配置等功能;C卡:保存卡主密钥,权限最低。共有5张,序号为1~5。总容量为512个卡主密钥(000-511)。1.加密机的使用方法密钥的导入、导出:卡密钥可通过加密机主密钥(或指定的卡密钥)导出到加密机外,得到卡密钥的密文。密钥可通过IC卡(加密机面板操作)导入导出,也可通过*.bmk文件(PC机运行的密钥管理软件操作)导入导出。1.加密机的使用方法进入管理模式:1.在开机或复位之前插入A卡;2.复位加密机后,出现菜单加密机面板操作PC机终端管理3.在上面的菜单中“PC机终端管理”只能进行密钥管理,不能进行加密机的系统设置(比如设置密码机IP、修改密钥识别码)。加密机的管理权限默认密码:FFFFFFFF1.加密机的使用方法设置加密机IP:在连接加密机之前,首先在加密机管理模式下输入加密机的IP地址和需要访问加密机的客户机IP地址,操作方法是:1.插入A卡,启动加密机后选择“加密机面板操作”;2.进入A卡菜单,选择“系统设置”;3.选择“设置密码机IP”即可如输入密码机IP,协议端口号默认为8,不必修改端口号;4.选择“安全设置”下的“增加新客户”即可添加需要访问加密机的客户机IP;5.设置好IP地址后,退出菜单项,拔出A卡,重启加密机。1.加密机的使用方法连接加密机:设置IP后,即可通过TCP/IP协议访问加密机,使用WinHsm源程序中提供的UnionInitHSM(char*ip,char*port)函数,输入加密机的IP地址和端口号,若该函数执行失败返回-1,成功则返回一个句柄h_dev,保存这个句柄,供发送加密机指令报文的函数使用,保持这个句柄直到不使用这个连接。调用UnionCloseHSM(h_dev),释放这个句柄。2.加密机的密钥结构版本、组、索引:密钥存在多个版本,密码机内可保存最多3个版本。VERSION=0,1,2每一版本可含多个组,每组具有一个索引号,密码机内可保存最多32个组。GROUP_INDEX=0,1,……,31每组包含一套卡片密钥,称为M*KEY,每组10个;M_number=1,……,102.加密机的密钥结构基础主密钥用于保护卡片密钥和终端主密钥。每台密码机只有一个基础主密钥,基础主密钥为128bits密钥,其三个成分3×128bits分别由三个人保管。基础主密钥只受密码机的保护,不能读出。卡片主密钥也为128bits密钥,其两个成分(2×128bits)分别由两个人保管。卡片主密钥还可由密码机随机产生。卡片主密钥受密码机的保护。卡片主密钥在基础主密钥的保护下,可输出密码机外,既可存放在主机数据库中,也可存在其他载体(如软盘)上。卡片主密钥在使用时,要指定版本号、组索引号、密钥号。终端主密钥是64bits密钥。它由一个成分组成,由一个人保管。2.加密机的密钥结构密钥的校验值可通过加密机面板或密钥管理软件查看到,用于比较两个密钥是否相同。密钥校验值的计算方法:密钥对8个字节的0进行3DES计算得到的结果取前两个字节,如下图:0000000000000000EA21C671A563A58B274533C746F190ED3DES计算25F8BDDB31FD96EB密钥校验值25F82.加密机的密钥结构加密机主密钥的产生(三个成分相异或):主密钥三个成分的对应默认识别码:1234、5678、1234成分一:F40379AB9E0EC533F40379AB9E0EC成分二:00000000000000000000000000000000成分三:00000000000000000000000000000000主密钥:F40379AB9E0EC533F40379AB9E0EC加密机的卡密钥导入方式与上面相同,但只有两个成分。2.加密机指令-分散密钥功能:密码机分散指定的密钥,存在指定的位置并输出。输入报文输入域长度类型内容命令2AEA分散算法1N‘0’:PBOC;‘1’:OWF2密钥的版本1N‘0’-‘2’密钥的组号2N‘00’-‘31’密钥的索引2N‘01’-‘10’分散数据16H分散后存放版本1N‘0’-‘2’分散后存放组号2N‘00’-‘31’分散后存放索引2N‘01’-‘10’2.加密机指令-分散密钥输出报文输出域长度类型内容应答码2AEB错误代码2H分散后的密文32H被主密钥加密密钥检查值4H例:输入报文:EA0001012007010100010000200101输出报文:EB00XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX12342.加密机指令-导出密钥输入报文输入域长度类型内容命令2A57Version1N保护导出密钥的版本号Group_Index2N保护导出密钥的组号M_Number2N保护导出密钥的索引号Version11N被导出密钥存放的版本号Group_Index12N被导出密钥存放的组号M_Number12N被导出密钥存放的索引号2.加密机指令-导出密钥输出报文输出域长度类型内容应答码2A58错误代码2N密钥32H经保护密钥加密输出的密钥例:输入报文:570010110202输出报文:5800XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2.加密机指令-校验圈存MAC1功能:1.用实时生成的离散子密钥根据3_DES_MAC算法,校验输入数据的MAC值。2.用实时生成的过程密钥根据1_DES_MAC算法,校验输入数据的MAC值。输入报文输入域长度类型内容命令2A52算法选择1N‘0’Version1N卡片密钥的版本号Group_Index2N卡片密钥的组号M_Number2N卡片密钥的索引号Key_Flag1N0:LSKEY;1:GCKEYLS_Data16H用于产生LSKEY的数据GC_Data16H用于产生GCKEY的数据,仅当Key_Flag为1时有此域MAC8H待校验的MACLength3NMAC_Data的字节数/2MAC_DatanH用于校验MAC的数据2.加密机指令-校验圈存MAC1输出报文输出域长度类型内容应答码2A53错误代码2N例:输入报文:52000101120070101000100001234567812348000123456781231…1ADD_KeyLS_DataGC_DataMACMAC_dataMAC_data=‘0000000000000000’+CIA+money+’31’+终端号2.加密机指令-校验圈存MAC1输出报文:5300校验输入的MAC,如果正确返回00,否则返回出错代码。2.加密机指令-计算圈存MAC2功能:1.用实时生成的离散子密钥根据3_DES_MAC算法,计算输入数据的MAC值。2.用实时生成的过程密钥根据1_DES_MAC算法,计算输入数据的MAC值。输入报文输入域长度类型内容命令2A50算法选择1N‘0’Version1N卡片密钥的版本号Group_Index2N卡片密钥的组号M_Number2N卡片密钥的索引号Key_Flag1N0:LSKEY;1:GCKEYLS_Data16H用于产生LSKEY的数据GC_Data16H用于产生GCKEY的数据,仅当Key_Flag为1时有此域Length3NInputData的字节数/2Input_DatanH输入的MAC数据2.加密机指令-计算圈存MAC2输出报文输出域长度类型内容应答码2A51错误代码2NMAC8H例:输入报文:500001011200701010001000012345678123480001231…1ADD_KeyLS_DataGC_Datainput_datainput_data=‘0000000000000000’+money+’31’+终端号+交易时间2.加密机指令-计算圈存MAC2输出报文:510012345678说明:对实时生成离散子密钥和过程密钥,均不在密码机内保存。2.加密机指令-校验圈存TAC输入报文输入域长度类型内容命令2A58算法选择1N‘0’Version1N卡片密钥的版本号Group_Index2N卡片密钥的组号M_Number2N卡片密钥的索引号LS_Data16H用于产生LSKEY的数据MAC8H用于校验的TACLength3NData的字节数/2DatanH用于计算TAC的数据2.加密机指令-校验圈存TAC输出报文输出域长度类型内容应答码2A59错误代码2H例:输入报文:5800010112007010100010000123456781231…1ADD_KeyLS_DataTACdatadata=8个字节的0+money+交易序号+交易类型+终端机编号+交易时间2.加密机指令-校验圈存TAC输出报文:59002.加密机指令-计算圈存TAC输入报文输入域长度类型内容命令2A56算法选择1N‘0’Version1N卡片密钥的版本号Group_Index2N卡片密钥的组号M_Number2N卡片密钥的索引号LS_Data16H用于产生LSKEY的数据Length3NData的字节数/2DatanH用于计算TAC的数据2.加密机指令-计算圈存TAC输出报文输出域长度类型内容应答码2A57错误代码2HMAC8H由Data计算的MAC例:输入报文:见校验圈存TAC的报文输出报文:570012345678二、社保卡的个人化1.社保卡个人化所完成的3个功能2.以华虹COS为原型说明个人化所完成的功能1.个人化所完成的功能卡片个人化的定义:构建IC卡应用系统过程中,如何定义卡中的数据信息(相对逻辑加密卡)或卡中的应用类型及其数据信息(相对CPU卡)及将数据信息写入卡中,以便应用于系统中进行交易是一个重要环节。这一环节通常称为卡片个人化。卡片个人化既可以在专门的设备机器上进行,以便于对大批量的卡片进行个人化;也可以在PC机上通过连接IC卡读写器进行,以便于对小批量的卡片进行个化。1.个人化所完成的功能CPU卡个人化的三个功能:建立文件个人信息写入密钥写入1.个人化所完成的功能发卡前的准备工作一般地,在个人化之前,已经对卡片进行过初始化(主要是对卡片写入COS并进行
本文标题:加密机和个人化
链接地址:https://www.777doc.com/doc-3353721 .html