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

文档序号:9931306阅读:362来源:国知局
一种链路会话密钥协商方法及装置的制造方法
【技术领域】
[0001]本发明涉及信息安全技术领域,尤其涉及一种链路会话密钥协商方法及装置。
【背景技术】
[0002]随着电子信息科技的快速发展,通过互联网进行的网络通信(如网络交易、系统登陆等)日渐普及,由于互联网的虚拟特性,一些不法分子利用病毒、木马或其他恶意程序很容易截获互联网中传输的信息。为了防止信息被非法截取,通信双方首先通过协商生成一个会话密钥,将所传输的信息通过会话密钥加密。现有技术中普遍使用的密钥协商方法是通信双方中的一方生成一个随机数,然后将该随机数发送给另一方,从而保证通信双方共用一个随机数作为会话密钥,对传输的信息进行加解密,这种协商方式最为简单,但是会话密钥也最容易被非法截取。

【发明内容】

[0003]为解决上述现有技术中存在的技术问题,本发明提供了一种链路会话密钥协商方法及装置。
[0004]本发明采用的技术方案如下:一种链路会话密钥协商方法,包括:
[0005]步骤S1:当智能密钥设备接收到上位机发来的获取公钥数据的请求时,向所述上位机返回第二公钥;
[0006]步骤S2:当智能密钥设备接收到上位机发来的获取链路会话密钥的请求时,使用第二私钥从所述获取链路会话密钥的请求中解密出第二预置数据;
[0007]步骤S3:所述智能密钥设备比较所述第二预置数据与设备中的第一预置数据是否一致,若一致则所述智能密钥设备生成随机数,根据所述随机数与预设数据组成链路会话密钥,并向所述上位机返回所述随机数,执行步骤S4;否则所述智能密钥设备向所述上位机返回错误信息,结束;
[0008]步骤S4:当智能密钥设备接收到上位机发来的通信请求时,使用所述链路会话密钥解密所述通信请求,并根据解密结果执行相应操作,生成操作结果,使用所述链路会话密钥对所述操作结果进行加密后返回给上位机,结束。
[0009]上述步骤SI具体包括,当智能密钥设备接收到上位机发来的第一获取公钥数据指令时,向上位机返回一部分第二公钥数据,当智能密钥设备接收到上位机发来的第二获取公钥数据指令时,向上位机返回另一部分第二公钥数据;所述第二公钥由所述一部分第二公钥数据和所述另一部分第二公钥数据拼接组成。
[0010]上述步骤SI还包括,上位机根据第一APDU数据组成第一获取公钥数据指令,并向所述智能密钥设备发送所述第一获取公钥数据指令;上位机根据第二 APDU数据组成第二获取公钥数据指令,并向所述智能密钥设备发送所述第二获取公钥数据指令。
[0011]上述当智能密钥设备接收到上位机发来的第一获取公钥数据指令时,向上位机返回一部分第二公钥数据具体包括:当智能密钥设备接收到上位机发来的第一获取公钥数据指令时,对第二公钥的第一部分数据和第二部分数据分别执行数据填充得到第一填充数据和第二填充数据,使用第一公钥对第一填充数据和第二填充数据分别执行加密运算得到第一密文数据和第二密文数据,将第一密文数据与部分第二密文数据进行数据拼接得到第一响应数据,设备对所述第一响应数据执行指令编码得到第一响应指令,向上位机返回所述第一响应指令。
[0012]上述当智能密钥设备接收到上位机发来的第二获取公钥数据指令时,向上位机返回另一部分第二公钥数据具体包括:当智能密钥设备接收到上位机发来的第二获取公钥数据指令时,取剩余的第二密文数据得到第二响应数据,对所述第二响应数据执行指令编码得到第二响应指令,向上位机返回所述第二响应指令。
[0013]上述步骤S2具体包括,当所述智能密钥设备接收到上位机发来的获取链路会话密钥指令时,使用第二私钥对所述获取链路会话密钥指令的数据域数据执行解密运算,并对解密得到的数据执行解码操作得到第二预置数据。
[0014]上述步骤S2之前包括,上位机使用第二公钥对第二预置数据执行加密运算得到第三APDU数据,根据第三APDU数据组成获取链路会话密钥指令,并向所述智能密钥设备发送所述获取链路会话密钥指令。
[0015]上述步骤S3中所述根据所述随机数与预设数据组成链路会话密钥,并向所述上位机返回所述随机数具体包括:智能密钥设备将所述随机数与当前协商密钥次数值拼接,对拼接后得到的数据执行数据填充得到第三填充数据,使用第一公钥对第三填充数据执行加密运算得到第三响应数据,对第三响应数据执行指令编码得到第三响应指令,向所述上位机返回包含所述随机数的第三响应指令。
[0016]本发明公开的一种链路会话密钥协商装置,包括第一收发模块、第二收发模块、第一操作模块、判断模块、随机数生成模块和第二操作模块;
[0017]所述第一收发模块,用于接收上位机发来的获取公钥数据的请求,以及向所述上位机返回第二公钥;
[0018]所述第二收发模块,用于接收上位机发来的获取链路会话密钥的请求,触发第一操作模块工作,以及将随机数生成模块生成的随机数返回给上位机,或者是向上位机返回错误信息;
[0019]所述第一操作模块,用于使用第二私钥从所述第二收发模块接收到的所述获取链路会话密钥的请求中解密出第二预置数据,并触发所述判断模块工作;用于根据所述随机数生成模块生成的随机数与预设数据组成链路会话密钥;
[0020]所述判断模块,用于比较所述第一操作模块解密出的所述第二预置数据与设备中的第一预置数据是否一致,若一致则触发随机数生成模块工作,否则触发第二收发模块工作;
[0021 ]所述随机数生成模块,用于生成随机数;
[0022]所述第二操作模块,用于接收上位机发来的通信请求,以及使用所述第一操作模块组成的所述链路会话密钥解密所述通信请求,并根据解密结果执行相应操作,生成操作结果,使用所述链路会话密钥对所述操作结果进行加密后返回给上位机。
[0023]上述第一收发模块,具体用于当接收到上位机发送的第一获取公钥数据指令时,向所述上位机返回一部分第二公钥数据;以及用于当接收到上位机发送的第二获取公钥数据指令时,向上位机返回另一部分第二公钥数据;所述第二公钥由所述一部分第二公钥数据和所述另一部分第二公钥数据拼接组成。
[0024]本发明中与所述装置连接的上位机包括第一发送模块和第二发送模块;
[0025]所述第一发送模块,用于根据第一APDU数据组成第一获取公钥数据指令,并向所述装置发送所述第一获取公钥数据指令;
[0026]所述第二发送模块,用于根据第二APDU数据组成第二获取公钥数据指令,并向所述装置发送所述第二获取公钥数据指令。
[0027]上述装置还包括第三操作模块;
[0028]所述第一收发模块,具体用于当接收到上位机发来的第一获取公钥数据指令时,触发所述第三操作模块工作,以及向上位机返回所述第三操作模块操作得到的第一响应指令;
[0029]所述第三操作模块,用于对第二公钥的第一部分数据和第二部分数据分别执行数据填充得到第一填充数据和第二填充数据,使用第一公钥对第一填充数据和第二填充数据分别执行加密运算得到第一密文数据和第二密文数据,将第一密文数据与部分第二密文数据进行数据拼接得到第一响应数据,设备对所述第一响应数据执行指令编码得到第一响应指令。
[0030]上述装置还包括第四操作模块;
[0031]所述第一收发模块,还用于当接收到上位机发来的第二获取公钥数据指令时,触发所述第四操作模块工作,以及向上位机返回所述第四操作模块操作得到的第二响应指令;
[0032]所述第四操作模块,用于取剩余的第二密文数据得到第二响应数据,对所述第二响应数据执行指令编码得到第二响应指令。
[0033]本发明中上述第二收发模块,具体用于当接收到上位机发来的获取链路会话密钥指令时,触发所述第一操作模块工作,以及将随机数生成模块生成的随机数返回给上位机,或者是向上位机返回错误状态码;
[0034]所述第一操作模块,具体用于使用第二私钥对所述获取链路会话密钥指令的数据域数据执行解密运算,并对解密得到的数据执行解码操作得到第二预置数据,并触发判断模块工作;用于根据随机数生成模块生成的随机数与预设数据组成链路会话密钥。
[0035]本发明中与所述装置连接的上位机包括指令处理模块;
[0036]所述指令处理模块,用于使用从所述装置获取的第二公钥对第二预置数据执行加密运算得到第三APDU数据,根据第三APDU数据组成获取链路会话密钥指令,并向所述装置发送所述获取链路会话密钥指令。
[0037]本发明中,上述第二收发模块,具体用于接收上位机发来的获取链路会话密钥指令,触发第一操作模块工作,以及将所述第一操作模块操作得到的第三响应指令返回给上位机,或者是向上位机返回错误状态码;
[0038]上述第一操作模块,具体用于使用第二私钥从所述第二收发模块接收到的所述获取链路会话密钥指令中解密出第二预置数据,并触发判断模块工作;用于将所述随机数生成模块生成的随机数与当前协商密钥次数值拼接,对拼接后得到的数据执行数据填充得到第三填充数据,使用第一公钥对第三填充数据执行加密运算得到第三响应数据,对第三响应数据执行指令编码得到第三响应指令。
[0039]本发明的有益效果是:本发明提出的协商生成链路会话密钥的协商模式复杂,使协商生成的链路会话密钥不易被恶意程序破解、抗攻击能力比较强,通信中传输的信息通过链路会话密钥加密后很难被非法截取。
【附图说明】
[0040]图1和图2是本发明实施例1提供的一种链路会话密钥协商方法的流程图;
[0041 ]图3和图4是本发明实施例2提供的一种链路会话密钥协商方法的流程图;
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1