一种协商会话密钥的方法及智能密钥设备的制造方法

文档序号:9866655阅读:1191来源:国知局
一种协商会话密钥的方法及智能密钥设备的制造方法
【技术领域】
[0001] 本发明属于信息安全领域,尤其设及一种协商会话密钥的方法及智能密钥设备。
【背景技术】
[0002] 随着电子信息科技的快速发展,通过互联网进行的网络通信(如网络交易、系统登 陆等)日渐普及,由于互联网的虚拟特性,一些不法分子利用病毒、木马或其他恶意程序很 容易截获互联网中传输的信息。为了防止信息被非法截取,通信双方首先通过协商生成一 个会话密钥,将所传输的信息通过会话密钥加密。现有技术中协商会话密钥的方法大部分 是通过智能密钥设备中的认证私钥与上位机中的认证公钥进行协商产生会话密钥,使用会 话密钥进行密文通信。
[0003] 现有的运种协商会话密钥的方法存在W下缺陷:上位机和智能密钥设备只采用一 对固定密钥(认证公钥和认证私钥)进行协商生成会话密钥,协商模式简单,恶意程序盗取 固定密钥后能够轻易的将会话密钥破解,从而截获正在传输的信息;智能密钥设备中保存 认证私钥,在上位机与智能密钥设备通信过程中容易产生认证私钥的外泄,使会话密钥的 安全性降低。

【发明内容】

[0004] 本发明为解决上述现有技术中存在的技术问题提供一种协商会话密钥的方法W 及智能密钥设备。
[0005] 本发明提供的一种协商会话密钥的方法,包括W下步骤:
[0006] 步骤Sl:智能密钥设备接收来自上位机的第SAPDU指令,将自身保存的协商密钥 对中的协商公钥返回给所述上位机;接收来自所述上位机的第四APDU指令,将自身保存的 签名结果返回给所述上位机;
[0007] 步骤S2:所述智能密钥设备接收来自所述上位机的第五APDU指令,解析所述第五 APDU指令,得到加密数据,使用所述协商密钥对中的协商私钥对所述加密数据进行解密得 到第二填充数据,判断所述第二填充数据的填充格式是否为预设的填充格式,如果是,则执 行步骤S3;否则向所述上位机返回异常信息;
[000引步骤S3:所述智能密钥设备从所述第二填充数据的预定位置提取预设长度的数据 作为会话密钥,向所述上位机返回成功响应。
[0009] 具体地,上述方法中,所述签名结果具体为生产工具或密钥存储装置使用预设的 认证私钥对所述协商公钥进行签名得到的签名结果。
[0010] 进一步地,上述方法中,所述步骤Sl之前,还包括:
[0011] 步骤Al:所述智能密钥设备接收来自生产工具的第一 APDU指令,将所述协商公钥 返回给所述生产工具;
[0012] 步骤A2:所述智能密钥设备接收来自所述生产工具的第二APDU指令,解析所述第 二APDU指令得到所述签名结果,使用预设的认证公钥和所述协商公钥对所述签名结果进行 验证,如果验证通过,则保存所述签名结果,向所述生产工具返回成功响应,执行所述步骤 Sl;否则验证失败,向所述生产工具返回异常信息。
[0013] 进一步地,上述步骤Al中,所述智能密钥设备接收来自所述生产工具的第一 APDU 指令之前,还包括:
[0014] 所述智能密钥设备生成所述协商密钥对,所述协商密钥对包括所述协商公钥和所 述协商私钥;
[0015] 或者,上述步骤Al中,所述智能密钥设备接收来自所述生产工具的第一 APDU指令 之后,还包括:
[0016] 所述智能密钥设备生成所述协商密钥对,所述协商密钥对包括所述协商公钥和所 述协商私钥。
[0017] 优选地,上述步骤A2中所述智能密钥设备使用预设的认证公钥和所述协商公钥对 所述签名结果进行验证,具体为:
[0018] 步骤A21:所述智能密钥设备使用所述预设的认证公钥对所述签名结果进行解密, 得到第一填充数据,从所述第一填充数据中提取第一运算结果;对所述协商公钥做哈希运 算,得到第二运算结果;
[0019] 步骤A22:所述智能密钥设备判断所述第一运算结果是否与所述第二运算结果相 等,如果是,则验证通过,保存所述签名结果,并向所述生产工具返回成功响应,执行所述步 骤Sl;否则,验证失败,向所述生产工具返回异常信息。
[0020] 优选地,上述步骤A2中,所述智能密钥设备接收来自所述生产工具的第二APDU指 令之后、解析所述第二APDU指令得到所述签名结果之前,还包括:
[0021] 所述智能密钥设备判断自身保存的控制数据是否更新,如果是,则向所述生产工 具返回异常信息;
[0022] 当所述智能密钥设备判断所述控制数据未更新时,所述智能密钥设备解析所述第 二APDU指令得到所述签名结果之后,还包括:所述智能密钥设备更新所述控制数据;
[0023] 所述智能密钥设备解析所述第二APDU指令得到所述签名结果,具体为:
[0024] 当所述智能密钥设备判断所述控制数据未更新时,所述智能密钥设备解析所述第 二APDU指令得到所述签名结果。
[00巧]进一步地,上述步骤A2之前,还包括:
[0026] 所述生产工具使用预设的认证私钥对所述协商公钥进行签名得到所述签名结果, 并根据所述签名结果生成所述第二APDU指令;
[0027] 优选地,所述生产工具使用预设的认证私钥对所述协商公钥进行签名得到所述签 名结果,具体为:
[0028] 步骤Dll:所述生产工具对所述协商公钥做哈希运算,得到第一运算结果,并将所 述第一运算结果进行填充生成第一填充数据;
[0029] 步骤D12:所述生产工具使用所述预设的认证私钥对所述第一填充数据进行签名, 得到所述签名结果;
[0030] 或者,上述步骤A2之前,还包括:
[0031] 所述生产工具接收来自密钥存储装置的所述签名结果,并根据所述签名结果生成 所述第二APDU指令;
[0032] 优选地,所述生产工具接收来自密钥存储装置的所述签名结果之前,还包括:
[0033] 步骤LI:所述生产工具根据所述协商公钥生成第六APDU指令,并将所述第六APDU 指令发送给所述密钥存储装置;
[0034] 步骤L2:所述密钥存储装置解析所述第六APDU指令得到所述协商公钥,使用预设 的认证私钥对所述协商公钥进行签名,得到所述签名结果;
[0035] 优选地,所述步骤L2中,所述密钥存储装置使用预设的认证私钥对所述协商公钥 进行签名,得到所述签名结果,具体为:
[0036] 步骤L21:所述密钥存储装置对所述协商公钥做哈希运算生成第一运算结果,并将 所述第一运算结果进行填充生成第一填充数据;
[0037] 步骤L22:所述密钥存储装置使用所述预设的认证私钥对所述第一填充数据进行 签名,得到所述签名结果。
[0038] 进一步地,上述方法中,所述步骤S2之前,还包括:
[0039] 步骤S201:所述上位机接收来自所述智能密钥设备返回的所述协商公钥和所述签 名结果,使用预设的认证公钥和所述协商公钥对所述签名结果进行验证,如果验证通过,贝U 执行步骤S202;否则报错,结束流程;
[0040] 步骤S202:所述上位机生成随机数,将所述随机数进行填充生成所述第二填充数 据,使用所述协商公钥对所述第二填充数据进行加密,得到所述加密数据,根据所述加密数 据生成所述第五APDU指令;
[0041 ] 所述步骤S3之后,还包括:
[0042] 步骤S4:所述上位机将生成的所述随机数作为所述会话密钥。
[0043] 优选地,上述步骤S201中,所述上位机使用预设的认证公钥和所述协商公钥对所 述签名结果进行验证,具体为:
[0044] 步骤S2011:所述上位机使用所述预设的认证公钥对所述签名结果进行解密,得到 第一填充数据,提取所述第一填充数据中的第一运算结果;对所述协商公钥做哈希运算生 成第=运算结果;
[0045] 步骤S2012:所述上位机判断所述第一运算结果是否与所述第=运算结果相等,如 果是,则验证通过,执行所述步骤S202;否则报错,结束流程。
[0046] 本发明提供的一种智能密钥设备,包括:
[0047] 第一接收模块,用于接收来自上位机的第SAPDU指令;接收来自所述上位机的第 四APDU指令;
[0048] 第一发送模块,用于将自身保存的协商密钥对中的协商公钥返回给所述上位机; 用于将自身保存的签名结果返回给所述上位机;
[0049] 具体地,所述签名结果具体为生产工具或密钥存储装置使用预设的认证私钥对所 述协商公钥进行签名得到的签名结果。
[0050] 第二接收模块,用于接收来自所述上位机的第五APDU指令;
[0051] 第一获取模块,用于解析所述第二接收模块接收的所述第五APDU指令得到加密数 据,使用所述协商密钥对中的协商私钥对所述加密数据进行解密得到第二填充数据;
[0052] 判断模块,用于判断所述第一获取模块得到的所述第二填充数据的填充格式是否 为预设的填充格式;
[0053] 提取模块,用于当所述判断模块判断所述第二填充数据的填充格式为预设的填充 格式时,从所述第一获取模块得到的所述第二填充数据的预定位置提取预设长度的数据作 为会话密钥;
[0054] 第二发送模块,用于当所述判断模块判断所述第二填充数据的填充格式不是预设 的填充格式时,向所述上位机返回异常信息;用于当所述判断模块判断所述第二填充数据 的填充格式为预设的填充格式时,向所述上位机返回成功响应。
[0055] 进一步地,上述智能密钥设备,还包括第=接收模块、第=发送模块、第四接收模 块、第四发送模块、第二获取模块、存储模块和验证模块;
[0056] 所述第S接收模块,用于接收来自所述生产工具的第一 APDU指令;
[0057] 所述第=发送模块,用于将所述协商公钥返回给所述生产工具;
[0058] 所述第四接收模块,用于接收来自所述生产工具的第二APDU指令;
[0059] 所述第二获取模块,用于解析所述第四接收模块接收的所述第二APDU指令得到所 述签名结果;
[0060] 所述验证模块,用于使用预设的认证公钥和所述协商公钥对所述第二获取模块得 到的所述签名结果进行验证;
[0061] 所述第四发送模块,用于当所述验证模块使用所述预设的认证公钥和所述协商公 钥验证所述签名结果通过时,向所述生产工具返回成功响应;当所述验证模块使用所述预 设的认证公钥和所述协商公钥验证所述签名结果失败时,向所述生产工具返回异常信息;
[0062] 所述存储模块,用于当所述验证模块使用所述预设的认证公钥和所述协商公钥验 证所述签名结果通过时,保存所述签名结果。
[0063] 可选地,所述第二获取模块,还用于生成所述协商密钥对,所述协商密钥对包括所 述协商公钥和所述协商私钥。
[0064] 优选地,上述验证模块,
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1