一种链路会话密钥协商方法及装置的制造方法_3

文档序号:9931306阅读:来源:国知局
5:上位机向设备发送获取链路会话密钥指令;
[0083]步骤116:设备接收获取链路会话密钥指令,使用第二私钥对获取链路会话密钥指令的数据域数据执行解密运算,并对解密得到的数据执行PKCS#1填充模式的解码操作得到第二预置数据;
[0084]步骤117:设备比较第二预置数据与设备中的第一预置数据是否一致,是则执行步骤118,否则向上位机返回错误状态码,结束;
[0085]具体的,第一预置数据丨681:_111700(16为128字节数据。
[0086]步骤118:设备生成随机数并保存;
[0087]具体的,设备生成长度为四个字节的随机数并保存。
[0088]步骤119:设备将随机数与当前协商密钥次数值拼接,对拼接后得到的数据执行PKCS#1填充模式的数据填充得到第三填充数据,使用第一公钥对第三填充数据执行加密运算得到第三响应数据,对第三响应数据执行指令编码得到第三响应指令;
[0089]具体的,当前协商密钥次数值的长度为一个字节。
[0090]步骤120:设备向上位机返回第三响应指令;
[0091 ]步骤121:上位机对接收到的第三响应指令进行指令解码获得第三响应数据,对第三响应数据使用第一私钥执行解密运算,并对解密得到的数据执行PKCS#1填充模式的解码操作得到随机数,将得到的随机数与预设数据进行拼接组成链路会话密钥,结束。
[0092]具体的,预设数据为0xl234567F。
[0093]进一步的,步骤121还包括,上位机使用所述链路会话密钥对通信数据进行加密组成通信请求,向设备发送所述通信请求;设备收到所述通信请求之前还执行步骤122。
[0094]步骤122:设备将保存的随机数与预设数据拼接组成链路会话密钥,将当前协商密钥次数值加I,结束。
[0095]进一步的,步骤122还包括,设备使用所述链路会话密钥解密所述通信请求,根据解密结果执行相应操作,生成操作结果,并使用所述链路会话密钥对所述操作结果进行加密后返回给上位机。
[0096]例如,所述通信请求为签名操作请求,设备接收到所述签名操作请求后,使用链路会话密钥解密所述签名操作请求获得待签名数据,对所述待签名数据执行签名操作后生成签名结果,使用链路会话密钥对所述签名结果进行加密后返回给上位机。
[0097]如图2所示,本实施例提供的一种链路会话密钥协商方法,以智能密钥设备进行链路会话密钥协商所执行的操作为例进行详细描述,其中智能密钥设备中预先保存有两对密钥对(KeyPairl和KeyPair2),分别为第一公钥和第一私钥、第二公钥和第二私钥;智能密钥设备中还预先保存有第一预置数据。
[0098]如图2所示,包括以下步骤:
[0099]步骤201:设备与上位机建立连接;
[0100]步骤202:设备接收到上位机发送的第一获取公钥数据指令,对第二公钥的第一部分数据和第二部分数据分别执行PKCS#1填充模式的数据填充得到第一填充数据和第二填充数据,用第一公钥对第一填充数据和第二填充数据分别执行加密运算得到第一密文数据和第二密文数据,将第一密文数据与部分第二密文数据进行数据拼接得到第一响应数据,取剩余的第二密文数据得到第二响应数据;
[0101]本实施例中具体的,执行PKCS#1填充模式的数据填充之后得到的数据的格式为:
0x00 0x02 Rand......Rand 0x00 Data,其中,Data为数据填充之前的有效数据,Rand为非
O随机数。第一填充数据和第二填充数据的长度与第二公钥的长度相等。
[0102]步骤203:设备对第一响应数据执行指令编码得到第一响应指令返回给上位机;
[0103]步骤204:设备接收到上位机发送的第二获取公钥数据指令,对第二响应数据执行指令编码得到第二响应指令返回给上位机;
[0104]步骤205:设备接收到上位机发送的获取链路会话密钥指令,使用第二私钥对获取链路会话密钥指令的数据域数据执行解密运算,并对解密得到的数据执行PKCS#1填充模式的解码操作得到第二预置数据;
[0105]步骤206:设备比较第二预置数据与设备中的第一预置数据是否一致,是则执行步骤207,否则向上位机返回错误状态码,结束;
[0106]步骤207:设备生成随机数并保存;
[0107]具体的,设备生成一个四字节的随机数并保存。
[0108]步骤208:设备将随机数与当前协商密钥次数值拼接,对拼接后得到的数据执行PKCS#1填充模式的数据填充得到第三填充数据,使用第一公钥对第三填充数据执行加密运算得到第三响应数据,对第三响应数据执行指令编码得到第三响应指令返回给上位机;
[0109]具体的,当前协商密钥次数值为一个字节的数值。
[0110]步骤209:设备将保存的随机数与预设数据拼接组成链路会话密钥,将当前协商密钥次数值加I。
[0111]具体的,预设数据为0X1234567F,将保存的随机数与预设数据拼接得到的八字节数据作为链路会话密钥。
[0112]进一步的,步骤209之后还包括,当设备接收到上位机发来的通信请求时,设备使用所述链路会话密钥解密所述通信请求,根据解密结果执行相应操作,生成操作结果,并使用所述链路会话密钥对所述操作结果进行加密后返回给上位机。
[0113]本实施例中优选的,当设备与上位机断开连接时,设备将自动清除所述链路会话密钥和所述随机数,或者是,当设备与上位机建立连接时,先清除保存的链路会话密钥和所述随机数,然后再通过执行图2所示流程重新生成链路会话密钥。
[0114]实施例2
[0115]本实施例提供了一种链路会话密钥协商方法,以上位机与智能密钥设备(本实施例中简称设备)之间进行链路会话密钥的协商为例,如图3所示,本实施例提供的协商流程包括以下内容:
[0116]步骤301:设备与上位机建立连接;
[0117]步骤302:设备生成随机数,并将所述随机数作为链路会话密钥保存;
[0118]具体的,设备生成一个16字节的随机数,并将其保存为链路会话密钥。
[0119]优选的,设备每次上电即与上位机建立连接时生成一个随机数,用新生成的随机数覆盖之前保存的随机数。
[0120]步骤303:上位机向设备发送获取链路会话密钥指令;
[0121]具体的,已知APDU为0x80 ef 00 00 02 04 08,上位机根据指令格式0xl2+APDU长度+APDU组成获取链路会话密钥指令,S卩0x12 07 80 ef 00 00 02 04 08。
[0122]步骤304:设备接收并解析所述获取链路会话密钥指令;
[0123]步骤305:设备判断是否解析成功,是则执行步骤306,否则向上位机返回错误状态码,结束;
[0124]具体的,设备判断解析结果是否为0x80ef 00 00 02 04 08,是则解析成功,执行步骤306,否则向上位机返回错误状态码,结束。
[0125]步骤306:设备对保存的链路会话密钥进行指令编码得到响应指令;
[0126]具体的,设备根据指令格式0Χ21+ΑΗ)υ长度+APDU对保存的随机数进行指令编码得到响应指令,其中,APDU为所述随机数的值,APDU长度为0x10。
[0127]步骤307:设备向上位机返回响应指令;
[0128]步骤308:上位机对接收到的响应指令进行指令解码获得链路会话密钥,结束。
[0129]具体的,上位机根据指令格式:0x21+APDU长度+ATOU,对所述指令响应进行解码,并将解码得到的APDU作为所述链路会话密钥。
[0130]进一步的,上位机与设备之间进行通信时,使用生成的链路会话密钥对通信数据进行加解密操作,从而加强通信数据的安全性。
[0131]如图4所示,本实施例提供的一种链路会话密钥协商方法,以智能密钥设备进行链路会话密钥协商所执行的操作为例进行详细描述,包括以下步骤:
[0132]步骤401:设备与上位机建立连接;
[0133]步骤402:设备生成随机数,并将所述随机数作为链路会话密钥保存;
[0134]步骤403:设备接收到上位机发送的获取链路会话密钥指令,解析并判断是否解析成功,是则执行步骤405,否则执行步骤404;
[0135]例如,接收到的获取链路会话密钥指令为0x12 07 80 ef 00 00 02 04 08,对其进行解析,若解析结果为0x80 ef 00 00 02 04 08则解析成功,否则解析失败。
[0136]步骤404:设备向上位机返回错误状态码,结束;
[0137]例如,向上位机返回0x21 0200 00。
[0138]步骤405:设备对保存的链路会话密钥进行指令编码得到响应指令,将响应指令返回给上位机。
[0139]实施例3
[0140]本实施例提供了一种链路会话密钥协商方法,以上位机与设备之间进行链路会话密钥的协商为例,其中设备中预先保存有一对RSA密钥对,本实施例中的PKCS#I填充模式具体为RSA PKCS#1填充模式;即本实施例中所述设备公钥和设备私钥,且设备公钥以第一公钥数据和第二公钥数据的形式存在;如图5所示,本实施例提供的协商流程包括以下内容:
[0141]步骤501:上位机与设备建立连接;
[0142]步骤502:上位机向设备发送获取第一公钥数据指令;
[
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1