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

文档序号:9931306阅读:来源:国知局
0143]步骤503:设备接收所述获取第一公钥数据指令;
[0144]步骤504:设备向上位机返回预置的第一公钥数据;
[0145]步骤505:上位机接收并保存第一公钥数据;
[0146]步骤506:上位机向设备发送获取第二公钥数据指令;
[0147]步骤507:设备接收所述获取第二公钥数据指令;
[0148]步骤508:设备向上位机返回预置的第二公钥数据;
[0149]步骤509:上位机接收第二公钥数据,将第一公钥数据和第二公钥数据作为设备公钥保存;
[0150]步骤510:上位机判断设备公钥是否正确,是则执行步骤511,否则结束;
[0151]具体的,上位机调用RSA算法接口判断设备公钥是否正确,是则执行步骤511,否则结束。
[0152]步骤511:上位机生成长度为16字节的随机数并保存,对随机数执行PKCS#1填充模式的数据填充,使用设备公钥对填充后得到的数据执行加密运算得到密文数据,根据密文数据组织得到获取链路会话密钥指令;
[0153]步骤512:上位机向设备发送获取链路会话密钥指令;
[0154]步骤513:上位机接收所述获取链路会话密钥指令,解析指令获取数据域数据,使用预置的设备私钥对数据域执行解密运算,并对解密得到的数据执行PKCS#1填充模式的解码操作得到解码数据;
[0155]步骤514:设备判断所述解密数据的长度是否为16字节,是则执行步骤515,否则向上位机返回错误状态码,结束;
[0156]步骤515:设备生成8字节的随机数作为链路会话密钥,使用所述解码数据对链路会话密钥进行加密得到密文的链路会话密钥;
[0157]步骤516:设备向上位机返回密文的链路会话密钥;
[0158]步骤517:上位机使用保存的随机数对接收到的密文的链路会话密钥进行解密得到链路会话密钥。
[0159]进一步的,上位机与设备之间进行通信时,使用生成的链路会话密钥对通信数据进行加解密操作,从而加强通信数据的安全性。
[0160]如图6所示,本实施例提供的链路会话密钥协商方法,以智能密钥设备进行链路会话密钥协商所执行的操作为例进行详细描述,包括以下步骤:
[0161]步骤601:设备与上位机建立连接;
[0162]步骤602:当设备接收到上位机发来的获取第一公钥数据指令时,向上位机返回第一公钥数据;当设备接收到上位机发来的获取第二公钥数据时,向上位机返回第二公钥数据;
[0163]具体的,设备中预先保存有一对RSA密钥对,即设备公钥和设备私钥,且设备公钥以第一公钥数据和第二公钥数据的形式存在。
[0164]步骤603:当设备接收到上位机发来的获取链路会话密钥指令时,解析指令获取数据域数据,使用预置的设备私钥对数据域数据执行解密运算,并对解密得到的数据执行PKCS#1填充模式的解码操作得到解码数据;
[0165]步骤604:设备判断所述解码数据是否满足预设条件,是则执行步骤606,否则执行步骤605;
[0166]具体的,设备判断所述解码数据的长度是否为16字节,是则满足预设条件,执行步骤606,否则执行步骤605。
[0167]步骤605:设备向上位机返回错误状态码,结束;
[0168]步骤606:设备生成8字节的随机数作为链路会话密钥,使用所述解码数据对链路会话密钥进行加密得到密文的链路会话密钥,向上位机返回所述密文的链路会话密钥。
[0169]实施例4
[0170]本实施例在实施例1的基础上提供了一种链路会话密钥协商装置,如图7所示,包括第一收发模块701、第二收发模块702、第一操作模块703、判断模块704、随机数生成模块705和第二操作模块706;
[0171]所述第一收发模块701,用于接收上位机发来的获取公钥数据的请求,以及向所述上位机返回第二公钥;
[0172]所述第二收发模块702,用于接收上位机发来的获取链路会话密钥的请求,触发第一操作模块703工作,以及将随机数生成模块705生成的随机数返回给上位机,或者是当所述判断模块704判断结果为否时向上位机返回错误信息;
[0173]所述第一操作模块703,用于使用第二私钥从所述第二收发模块702接收到的所述获取链路会话密钥的请求中解密出第二预置数据,并触发所述判断模块704工作;用于根据所述随机数生成模块705生成的随机数与预设数据组成链路会话密钥;
[0174]所述判断模块704,用于比较所述第一操作模块703解密出的所述第二预置数据与设备中的第一预置数据是否一致,若一致则触发随机数生成模块705工作,否则触发第二收发模块702工作;
[0175]所述随机数生成模块705,用于生成随机数;
[0176]所述第二操作模块706,用于接收上位机发来的通信请求,以及使用所述第一操作模块703组成的所述链路会话密钥解密所述通信请求,并根据解密结果执行相应操作,生成操作结果,使用所述链路会话密钥对所述操作结果进行加密后返回给上位机。
[0177]例如,本实施例中所述通信请求为签名操作请求,设备接收到所述签名操作请求后,使用链路会话密钥解密所述签名操作请求获得待签名数据,对所述待签名数据执行签名操作后生成签名结果,使用链路会话密钥对所述签名结果进行加密后返回给上位机。
[0178]所述第一收发模块701,具体用于当接收到上位机发送的第一获取公钥数据指令时,向所述上位机返回一部分第二公钥数据;以及用于当接收到上位机发送的第二获取公钥数据指令时,向上位机返回另一部分第二公钥数据;所述第二公钥由所述一部分第二公钥数据和所述另一部分第二公钥数据拼接组成。
[0179]进一步的,图7所示装置还可以包括接口模块,所述接口模块包括第一收发模块701和第二收发模块702,所述接口模块可以具体为USB接口或蓝牙接口,所述装置通过接口模块与上位机建立连接,与图7所示装置连接的上位机可以包括第一发送模块和第二发送丰旲块;
[0180]所述第一发送模块,用于根据第一APDU数据组成第一获取公钥数据指令,并向所述装置发送所述第一获取公钥数据指令;
[0181]所述第二发送模块,用于根据第二APDU数据组成第二获取公钥数据指令,并向所述装置发送所述第二获取公钥数据指令。
[0182]本实施例提供的所述装置还包括第三操作模块;所述第一收发模块701,具体用于当接收到上位机发来的第一获取公钥数据指令时,触发所述第三操作模块工作,以及向上位机返回所述第三操作模块操作得到的第一响应指令;
[0183]所述第三操作模块,用于对第二公钥的第一部分数据和第二部分数据分别执行数据填充得到第一填充数据和第二填充数据,使用第一公钥对第一填充数据和第二填充数据分别执行加密运算得到第一密文数据和第二密文数据,将第一密文数据与部分第二密文数据进行数据拼接得到第一响应数据,设备对所述第一响应数据执行指令编码得到第一响应指令。所述执行数据填充具体为根据RSA PKCS#1填充模式执行数据填充。
[0184]本实施例提供的所述装置还包括第四操作模块;所述第一收发模块701,还用于当接收到上位机发来的第二获取公钥数据指令时,触发所述第四操作模块工作,以及向上位机返回所述第四操作模块操作得到的第二响应指令;
[0185]所述第四操作模块,用于取剩余的第二密文数据得到第二响应数据,对所述第二响应数据执行指令编码得到第二响应指令。
[0186]本实施例中,所述第二收发模块702,具体用于当接收到上位机发来的获取链路会话密钥指令时,触发所述第一操作模块703工作,以及将随机数生成模块705生成的随机数返回给上位机,或者是向上位机返回错误状态码;所述第一操作模块703,具体用于使用第二私钥对所述获取链路会话密钥指令的数据域数据执行解密运算,并对解密得到的数据执行解码操作得到第二预置数据,并触发判断模块704工作;用于根据随机数生成模块705生成的随机数与预设数据组成链路会话密钥。所述执行解码操作具体为根据RSA PKCS#1填充模式执行解码操作。
[0187]相应的,与所述装置连接的上位机包括指令处理模块;所述指令处理模块,用于使用从所述装置获取的第二公钥对第二预置数据执行加密运算得到第三APDU数据,根据第三APDU数据组成获取链路会话密钥指令,并向所述装置发送所述获取链路会话密钥指令。
[0188]本实施例中,所述第二收发模块702,还可以是具体用于接收上位机发来的获取链路会话密钥指令,触发第一操作模块703工作,以及将所述第一操作模块703操作得到的第三响应指令返回给上位机,或者是向上位机返回错误状态码;所述第一操作模块703,具体用于使用第二私钥从所述第二收发模块702接收到的所述获取链路会话密钥指令中解密出第二预置数据,并触发判断模块704工作;用于将所述随机数生成模块705生成的随机数与当前协商密钥次数值拼接,对拼接后得到的数据执行数据填充得到第三填充数据,使用第一公钥对第三填充数据执行加密运算得到第三响应数据,对第三响应数据执行指令编码得到第三响应指令。所述执行数据填充具体为根据RSA PKCS#1填充模式执行数据填充。
[0189]本实施例中优选的,所述装置还可以包括清除模块,用于当装置与上位机建立连接或者断开连接时,清除所述第一操作模块703组成的链路会话密钥以及所述随机数生成模块705生成的随机数。
[0190]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1