会话密钥协商方法、装置及设备转让专利

申请号 : CN202310425387.4

文献号 : CN116132043B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李江超王文强薛斌斌李延王祥杜君刘娜徐川阳锐银钧

申请人 : 北京智芯微电子科技有限公司国家电网有限公司北京智芯半导体科技有限公司

摘要 :

本发明涉及信息安全领域,其实施方式提供了一种会话密钥协商方法、装置及设备。其中一种会话密钥协商方法,应用于包括服务端和客户端的系统,所述方法包括:所述服务端生成第一随机数,所述客户端生成第二随机数,并通过预设于本端的会话建立密钥经加密算法加密传输至对端;所述服务端和所述客户端分别根据所述第一随机数、所述第二随机数和分散算法得到一组分散因子,将所述一组分散因子中的每一分散因子分散为会话密钥,分别得到会话密钥组,所述会话密钥组用于所述服务端和所述客户端之间的通信加密。本发明提供的实施方式简洁高效,且避免了会话密钥在网络上的传输,极大提高了会话密钥的安全性。

权利要求 :

1.一种会话密钥协商方法,应用于包括服务端和客户端的系统,其特征在于,所述方法包括:所述服务端生成第一随机数,所述客户端生成第二随机数,并分别通过预设于本端的会话建立密钥经加密算法加密传输至对端;

所述服务端和所述客户端分别根据所述第一随机数、所述第二随机数和分散算法得到一组分散因子,将所述一组分散因子中的每一分散因子分散为会话密钥,分别得到会话密钥组,所述会话密钥组用于所述服务端和所述客户端之间的通信加密;

所述加密算法为第一国密算法,所述分散算法为第二国密算法;其中,所述服务端和所述客户端分别根据所述第一随机数、所述第二随机数和第二国密算法得到一组分散因子,包括:将所述第一随机数和所述第二随机数拼接为字符串;采用第二国密算法对所述字符串进行哈希运算,得到摘要值;将所述摘要值分段截取得到所述一组分散因子。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述服务端和所述客户端预置主站证书;

在所述客户端预置终端证书,并在所述服务端的指令触发下将所述终端证书发送至所述服务端;

所述主站证书和所述终端证书用于验证从对端接收到的通过会话建立密钥经第一国密算法加密后的密文的签名。

3.根据权利要求1所述的方法,其特征在于,所述客户端的会话建立密钥为将所述服务端的会话建立密钥进行密钥分散后得到。

4.根据权利要求1所述的方法,其特征在于,将所述一组分散因子中的每一分散因子分散为会话密钥,包括:采用预设于本端的会话主密钥作为分散密钥,将每一分散因子分散为会话密钥。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括在得到会话密钥组之后,对所述会话密钥组进行验证的步骤:所述服务端从本地得到的会话密钥组中抽取一条密钥进行加密后,发送至客户端;

所述客户端从本地得到的会话密钥组中抽取相同序号的一条密钥进行解密;

若解密成功,则证明所述服务端和所述客户端的会话密钥组一致。

6.根据权利要求1所述的方法,其特征在于,所述会话密钥组具有有效期,所述会话密钥组在超过有效期后重新计算。

7.一种会话密钥协商装置,应用于包括服务端和客户端的系统,其特征在于,所述装置包括:设置于服务端的第一数据交换模块,用于生成第一随机数,并通过预设于本端的会话建立密钥经加密算法加密传输至对端;

设置于服务端的第一密钥组生成模块,用于根据所述第一随机数、第二随机数和分散算法得到一组分散因子,将所述一组分散因子中的每一分散因子分散为会话密钥,得到会话密钥组;

设置于客户端的第二数据交换模块,用于生成所述第二随机数,并通过预设于本端的会话建立密钥经加密算法加密传输至对端;以及设置于客户端的第二密钥组生成模块,用于根据所述第一随机数、所述第二随机数和分散算法得到一组分散因子,将所述一组分散因子中的每一分散因子分散为会话密钥,得到会话密钥组;

所述加密算法为第一国密算法,所述分散算法为第二国密算法;其中,所述服务端和所述客户端分别根据所述第一随机数、第二随机数和第二国密算法得到一组分散因子,包括:将所述第一随机数和所述第二随机数拼接为字符串;采用第二国密算法对所述字符串进行哈希运算,得到摘要值;将所述摘要值分段截取得到所述一组分散因子。

8.根据权利要求7所述的装置,其特征在于,所述装置还包括证书预置模块,所述证书预置模块被配置为:在所述服务端和所述客户端预置主站证书;

在所述客户端预置终端证书,并在所述服务端的指令触发下将所述终端证书发送至所述服务端;

所述主站证书和所述终端证书用于验证从对端接收到的通过会话建立密钥经第一国密算法加密后的密文的签名。

9.根据权利要求7所述的装置,其特征在于,所述客户端的会话建立密钥为将所述服务端的会话建立密钥进行密钥分散后得到。

10.根据权利要求7所述的装置,其特征在于,将所述一组分散因子中的每一分散因子分散为会话密钥,包括:采用预设于本端的会话主密钥作为分散密钥,将每一分散因子分散为会话密钥。

11.根据权利要求7所述的装置,其特征在于,所述装置还用于,在得到会话密钥组之后,对所述会话密钥组进行验证:所述服务端从本地得到的会话密钥组中抽取一条密钥进行加密后,发送至客户端;

所述客户端从本地得到的会话密钥组中抽取相同序号的一条密钥进行解密;

若解密成功,则证明所述服务端和所述客户端的会话密钥组一致。

12.根据权利要求7所述的装置,其特征在于,所述会话密钥组具有有效期,所述会话密钥组在超过有效期后重新计算。

13.一种会话密钥协商设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项权利要求所述的会话密钥协商方法的步骤。

14.一种计算机可读存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行权利要求1至6中任一项权利要求所述的会话密钥协商方法的步骤。

说明书 :

会话密钥协商方法、装置及设备

技术领域

[0001] 本发明涉及信息安全领域,具体地涉及一种会话密钥协商方法、一种会话密钥协商装置、一种会话密钥协商设备以及一种计算机可读存储介质。

背景技术

[0002] 随着电力通信技术的快速发展与更新,电力物联网建设成为电力通讯发展的重要方向,电力设备间的交互与连接使得相关数据信息能够得到感知与反馈控制,进而形成整体的电力生产体系。为了防止信息在传输过程中被非法截取、伪造,通信双方需要首先对对方身份进行验证,然后双方通过会话协商生成一个临时的会话密钥,后续需要传输的信息将通过会话密钥加密保护。
[0003] 现有的终端设备与服务平台,一般采用较复杂的基于公开密钥的密码体系(PKI)进行身份认证,再通过固定的预置密钥进行通信或者采用简单的加密方式进行会话密钥的生成、在网络上传输,缺少一种高效安全的、集成了身份认证与会话协商功能的方法。
[0004] 现有技术中提供了多种会话密钥协商方法,但是其均存在以下缺点:
[0005] (1)通信双方协商的数据内容或者是会话协商密钥值本身,或者是经过Hash计算后即可得到会话协商密钥值的数据,这些信息加密后在网络上传输易被截获,一旦被破解风险很大。
[0006] (2)身份认证流程复杂,会话协商过程中使用的是非对称密钥加密保护数据,这样当并发量大的时候,加解密操作会消耗服务器大量资源,对服务器性能要求较高,不适应电力物联网场景中大量终端会话并发的需求。

发明内容

[0007] 本发明实施例的目的是提供一种会话密钥协商方法、装置及设备,以解决以上部分问题。
[0008] 为了实现上述目的,本发明的第一方面提供了一种会话密钥协商方法,应用于包括服务端和客户端的系统,所述方法包括:所述服务端生成第一随机数,所述客户端生成第二随机数,并通过预设于本端的会话建立密钥经加密算法加密传输至对端;所述服务端和所述客户端分别根据所述第一随机数、所述第二随机数和分散算法得到一组分散因子,将所述一组分散因子中的每一分散因子分散为会话密钥,分别得到会话密钥组,所述会话密钥组用于所述服务端和所述客户端之间的通信加密。
[0009] 优选的,所述加密算法为第一国密算法,所述分散算法为第二国密算法。
[0010] 优选的,所述方法还包括:在所述服务端和所述客户端预置主站证书;所述客户端预置终端证书,并在所述服务端的指令触发下将所述终端证书发送至所述服务端;所述主站证书和所述终端证书用于验证所述从对端接收到的通过会话建立密钥经第一国密算法加密后的密文的签名。
[0011] 优选的,所述客户端的会话建立密钥为将所述服务端的会话建立密钥进行密钥分散后得到。
[0012] 优选的,所述服务端和所述客户端分别根据所述第一随机数、所述第二随机数和第二国密算法得到一组分散因子,包括:将所述第一随机数和所述第二随机数拼接为字符串;采用第二国密算法对所述字符串进行哈希运算,得到摘要值;将所述摘要值分段截取得到所述一组分散因子。
[0013] 优选的,将所述一组分散因子中的每一分散因子分散为会话密钥,包括:采用预设于本端的会话主密钥作为分散密钥,将所述每一分散因子分散为会话密钥。
[0014] 优选的,所述方法还包括,在得到会话密钥组之后,对所述会话密钥组进行验证的步骤:所述服务端从本地得到的所述会话密钥组中抽取一条密钥进行加密后,发送至客户端;所述客户端从本地得到的所述会话密钥组中抽取相同序号的一条密钥进行解密;若解密成功,则证明所述会话密钥组一致。
[0015] 优选的,所述会话密钥组具有有效期,所述会话密钥组在超过有效期后重新计算。
[0016] 在本发明的第二方面,还提供了一种会话密钥协商装置,应用于包括服务端和客户端的系统,所述装置包括:设置于服务端的第一数据交换模块,用于生成第一随机数,并通过预设于本端的会话建立密钥经加密算法加密传输至对端;设置于服务端的第一密钥组生成模块,用于根据所述第一随机数、所述第二随机数和分散算法得到一组分散因子,将所述一组分散因子中的每一分散因子分散为会话密钥,得到会话密钥组;设置于客户端的第二数据交换模块,用于生成第二随机数,并通过预设于本端的会话建立密钥经加密算法加密传输至对端;以及设置于客户端的第二密钥组生成模块,用于根据所述第一随机数、所述第二随机数和分散算法得到一组分散因子,将所述一组分散因子中的每一分散因子分散为会话密钥,得到会话密钥组。
[0017] 优选的,所述加密算法为第一国密算法,所述分散算法为第二国密算法。
[0018] 优选的,所述装置还包括:在所述服务端和所述客户端预置主站证书;在所述客户端预置终端证书,并在所述服务端的指令触发下将所述终端证书发送至所述服务端;所述主站证书和所述终端证书用于验证所述从对端接收到的通过预设于本端的密钥经第一国密算法加密后的密文的签名。
[0019] 优选的,所述客户端的会话建立密钥为将所述服务端的会话建立密钥进行密钥分散后得到。
[0020] 优选的,所述服务端和所述客户端分别根据所述第一随机数、所述第二随机数和第二国密算法得到一组分散因子,包括:将所述第一随机数和所述第二随机数拼接为字符串;采用第二国密算法对所述字符串进行哈希运算,得到摘要值;将所述摘要值分段截取得到所述一组分散因子。
[0021] 优选的,将所述一组分散因子中的每一分散因子分散为会话密钥,包括:采用预设于本端的会话主密钥作为分散密钥,将所述每一分散因子分散为会话密钥。
[0022] 优选的,所述装置还包括,在得到会话密钥组之后,对所述会话密钥组进行验证的步骤:所述服务端从本地得到的所述会话密钥组中抽取一条密钥进行加密后,发送至客户端;所述客户端从本地得到的所述会话密钥组中抽取相同序号的一条密钥进行解密;若解密成功,则证明所述会话密钥组一致。
[0023] 优选的,所述会话密钥组具有有效期,所述会话密钥组在超过有效期后重新计算。
[0024] 在本发明的第三方面,还提供了一种会话密钥协商设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述的会话密钥协商方法的步骤。
[0025] 在本发明的第四方面,还提供了一种计算机可读存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行前述的会话密钥协商方法的步骤。
[0026] 本发明的第五方面提供一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现前述的会话密钥协商方法。
[0027] 上述技术方案至少具有以下有益效果:
[0028] (1)本发明中的通信双方协商是会话密钥因子而不是会话密钥值本身,以此避免了会话密钥在网络上传输,极大提高了会话密钥的安全性。
[0029] (2)本发明中的会话协商流程简洁高效,集成了身份认证和会话协商功能,仅需要3个交互就可以完成整个协商过程,且包括了会话密钥的测试。协商完成后,能够根据实际业务需要可以一次生成多个会话协商密钥。
[0030] 本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

[0031] 附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
[0032] 图1示意性示出了根据本发明实施方式的会话密钥协商方法的实施示意图;
[0033] 图2示意性示出了根据本发明实施方式的会话密钥协商方法的流程示意图;
[0034] 图3示意性示出了根据本发明实施方式会话密钥协商装置的结构示意图。

具体实施方式

[0035] 以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
[0036] 图1示意性示出了根据本发明实施方式的会话密钥协商方法的实施示意图。如图1所示,本实施方式提供的一种会话密钥协商方法,应用于包括服务端和客户端的系统,此处的服务端和客户端仅用于对系统中的至少两者进行区分,并不用于限定两者必然为C\S模式。其中,服务端和客户端在不同的场景中,也可被称为主站和终端,在一些加密系统中,服务端和客户端实际上为密码机和安全芯片。该方法包括:
[0037] S01、所述服务端生成第一随机数,所述客户端生成第二随机数,并通过预设于本端的会话建立密钥经加密算法加密传输至对端;
[0038] 服务端和客户端分别生成随机数,并通过加密算法加密传输至对端。此处的加密算法优选为SM1。SM1算法是由密码管理局编制的一种商用密码分组标准对称算法。该算法是密码管理部门审批的SM1分组密码算法,分组长度和密钥长度都为128比特,算法安全保密强度及相关软硬件实现性能与 AES相当,该算法不公开,仅以IP核的形式存在于芯片中。该算法已广泛应用于芯片、智能IC卡、智能密码钥匙、加密卡、加密机等各个应用领域。本步骤经过SM1算法加密后的密文,而不是简单的明文随机数,只有合法的设备才拥有对应密钥,完成加解密操作。此步骤能够有效防范中间人攻击,增加协商数据(会话密钥因子)的安全性。对应的,该会话建立密钥为SM1类型,预置在通信双方安全设备内部,用于身份认证加解密。
[0039] S02、所述服务端和所述客户端分别根据所述第一随机数、所述第二随机数和分散算法得到一组分散因子,将所述一组分散因子中的每一分散因子分散为会话密钥,分别得到会话密钥组,所述会话密钥组用于所述服务端和所述客户端之间的通信加密。此处的分散算法优选为SM3算法。SM3是我国采用的一种密码散列函数标准,由密码管理局于2010年12月17日发布。相关标准为“GM/T 0004‑2012 《SM3密码杂凑算法》”。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。据密码管理局表示,其安全性及效率与SHA‑256相当。再根据第二国密算法的结果得到一组分散因子,进而映射为会话密钥组,用于所述服务端和所述客户端之间的通信加密。
[0040] 通过以上实施方式,会话密钥协商过程中仅传输会话密钥因子,不是会话密钥值本身。从而避免了对会话密钥在网络上传输,极大提高了会话密钥的安全性。攻击者即使获取了会话密钥因子,也无法推导出会话密钥值本身,这是由国密算法中的单向函数保证的。
[0041] 在以上实施方式中,加密算法为第一国密算法,分散算法为第二国密算法。此处的第一和第二是用于区分国密算法,并不代表对实际选择的国密算法的编号或类型进行限制。
[0042] 在一些可选实施方式中,所述方法还包括:在所述服务端和所述客户端预置主站证书;在所述客户端预置终端证书,并在所述服务端的指令触发下将所述终端证书发送至所述服务端;所述主站证书和所述终端证书用于验证所述从对端接收到的通过预设于本端的密钥经第一国密算法加密后的密文的签名。服务端使用预置于本端的主站证书私钥对数据计算签名,并将签名随数据一起发送。客户端使用预置于本端的主站证书对签名进行验证,以得到该数据。同理,服务端也通过终端证书对客户端的签名进行验证。该签名验证算法优选为国密SM2算法,签名验签密钥为SM2类型,包含公钥和私钥,用于验证通信双方身份。例如该流程包括以下步骤:
[0043] (1)服务端启动会话,申请获取客户端ESAM信息;
[0044] (2)客户端获取本地ESAM信息,包括ESAM序列号,版本号,终端证书Cert2等,打包反馈给服务端;
[0045] (3)服务端在本地通过密码机生成随机数Rand1,并使用会话建立密钥Key1对其加密得到EnRand1,使用预置的主站证书Cert1对应私钥SK1对EnRand1计算签名,得到Sign1;
[0046] (4)服务端将EnRand1和Sign1打包发送给客户端;
[0047] (5)客户端收到数据后,将其发送给安全芯片进行验证;安全芯片首先利用自身预置的主站证书Cert1验证Sign1,验证通过后,再利用会话建立密钥Key1对EnRand1解密。如果解密成功则说明服务端的身份合法,并得到明文的Rand1;
[0048] (6)客户端的安全芯片本地生成随机数Rand2,并使用会话建立密钥Key1对其加密得到EnRand2,使用预置的终端证书Cert2对应私钥SK2对EnRand2计算签名,得到Sign2;
[0049] (7)客户端将EnRand2和Sign2打包发送给服务端,本地保存好Rand1和Rand2;
[0050] (8)服务端获得报文后,利用Cert2对Sign2进行校验,验证通过后,再利用会话建立密钥Key1对EnRand2解密。如果解密成功则说明终端的身份合法,并得到明文的Rand2。
[0051] 通过本实施方式中的签名验证,在尽量减少互交次数的前提下提升了数据的安全性。尤其在采用SM2算法签名后,增加了攻击者冒用身份的难度。
[0052] 在一些可选实施方式中,所述客户端的会话建立密钥为将所述服务端的会话建立密钥进行密钥分散后得到。本实施方式在服务端预置会话建立密钥作为主密钥,安全芯片中预置会话建立密钥作为子密钥,主密钥经过芯片序列号分散可以得到子密钥,实现主站与多个终端安全通信。此实施方式采用的分散算法优选国密算法。
[0053] 在一些可选实施方式中,所述服务端和所述客户端分别根据所述第一随机数、所述第二随机数和第二国密算法得到一组分散因子,包括:将所述第一随机数和所述第二随机数拼接为字符串;采用第二国密算法对所述字符串进行哈希运算,得到摘要值;将所述摘要值分段截取得到所述一组分散因子。例如:将第一随机数和第二随机数拼接为字符串,此处的拼接规则不做限制,可以采用正序拼接,反序拼接、交叉拼接等方式,但服务端和客户端的拼接方式应当一致。采用第二国密算法SM3得到摘要值,SM3算法的优点如前所述,此处不再重复。再将该摘要值分段截取得到一组分散因子,此处的截取方式也不做限定,可以在现有的截取方式中进行选择。通过本实施方式中的基于第二国密算法的分散因子形成方式,能够得到安全性高的分散因子。
[0054] 在一些可选实施方式中,采用预设于本端的会话主密钥作为分散密钥,将所述每一分散因子分散为会话密钥。这种会话密钥生成方式进一步增加了会话密钥的安全性。并在一组分散因子的前提下,得到对应的一组会话密钥,即实现一次生成多个会话密钥的效果。
[0055] 在一些可选实施方式中,所述方法还包括,在得到会话密钥组之后,对所述会话密钥组进行验证的步骤:所述服务端从本地得到的所述会话密钥组中抽取一条密钥进行加密后,发送至客户端;所述客户端从本地得到的所述会话密钥组中抽取相同序号的一条密钥进行解密;若解密成功,则证明所述会话密钥组一致。例如:为了验证通信双方会话密钥的一致性,服务端会从会话密钥组中抽取第一条密钥SessionKey1进行测试,即利用SessionKey1对Rand2加密,得到EnRand21,并发送给客户端;客户端接受到EnRand21后,先利用生成的会话密钥组,提取到SessionKey1,然后用SessionKey1对EnRand21进行解密,解密成功,则证明通信双方会话密钥一致。
[0056] 在一些可选实施方式中,所述会话密钥组具有有效期,所述会话密钥组在超过有效期后重新计算。此处的重新计算包括重新生成第一随机数和第二随机数后的重新计算。为了应对回溯性破解,安全芯片中设置有会话密钥有效期,到期后会话密钥自动销毁,这样要求系统中通信双方必须定期重新会话。同时,主站系统中也不保存历史会话密钥,这样即使攻击者进行回溯破解难度大幅提高,提高了系统数据安全性。
[0057] 在一些可选实施方式中,为了应对重放攻击,会话数据中可以增加计数器功能,每次会话完成后接收方更新本地会话协商计数器,要求单向递增,并以此为依据判断下一个会话协商申请是否合法。
[0058] 图2示意性示出了根据本发明实施方式的会话密钥协商方法的流程示意图。如图2所示,其包括以下步骤:
[0059] (1)主站启动会话,申请获取客户端ESAM信息;
[0060] (2)终端获取本地ESAM信息,包括ESAM序列号,版本号,终端证书Cert2等,打包反馈给主站;
[0061] (3)主站在本地,通过密码机生成随机数Rand1,并使用会话建立密钥Key1对其加密得到EnRand1,使用预置的主站证书Cert1对应私钥SK1对EnRand1计算签名,得到Sign1;
[0062] (4)主站将EnRand1和Sign1打包发送给终端;
[0063] (5)终端收到数据后,将其发送给安全芯片进行验证;安全芯片首先利用自身预置的主站证书Cert1验证Sign1,验证通过后,再利用会话建立密钥Key1对EnRand1解密。如果解密成功则说明主站的身份合法,并得到明文的Rand1;
[0064] (6)安全芯片本地生成随机数Rand2,并使用会话建立密钥Key1对其加密得到EnRand2,使用预置的终端证书Cert2对应私钥SK2对EnRand2计算签名,得到Sign2;
[0065] (7)终端将EnRand2和Sign2打包发送给主站,本地保存好Rand1、Rand2;
[0066] (8)主站获得报文后,利用Cert2对Sign2进行校验,验证通过后,再利用会话建立密钥Key1对EnRand2解密。如果解密成功则说明终端的身份合法,并得到明文的Rand2;
[0067] (9)主站利用Rand1、Rand2按照一定规则拼接成新字符串,并使用国密SM3算法对其Hash计算得到摘要值,再对摘要值分段截取,得到一组分散因子,即为会话密钥因子组Div;使用会话主密钥Key2对Div逐个进行分散,即可得到最终的会话密钥组;
[0068] (10)为了验证通信双方会话密钥的一致性,主站会从会话密钥组中抽取第一条密钥SessionKey1进行测试,即利用SessionKey1对Rand2加密,得到EnRand21,并发送给终端;
[0069] (11)终端接受到EnRand21后,先利用本地存储的Rand1、Rand2、会话主密钥Key2,按照和主站同样的规则生成会话密钥组,提取到SessionKey1,然后用SessionKey1对EnRand21进行解密,解密成功,则证明通信双方会话密钥一致。
[0070] (12)终端将本地会话状态置为成功,然后上传结果给主站;
[0071] (13)主站将本地会话状态置为成功,会话结束。
[0072] 从以上实施方式可以看出,本实施方式的会话协商流程简洁高效,集成了身份认证和会话协商功能,仅需要3个交互就可以完成整个协商过程,且包括了会话密钥的测试。协商完成后,根据实际业务需要可以一次生成多个会话协商密钥。
[0073] 基于同一发明构思,本发明还提供了一种会话密钥协商装置。图3示意性示出了根据本发明实施方式会话密钥协商装置的结构示意图,如图3所示。一种会话密钥协商装置,应用于包括服务端和客户端的系统,所述装置包括:设置于服务端的第一数据交换模块,用于生成第一随机数,并通过预设于本端的会话建立密钥经加密算法加密传输至对端;设置于服务端的第一密钥组生成模块,用于根据所述第一随机数、所述第二随机数和分散算法得到一组分散因子,将所述一组分散因子中的每一分散因子分散为会话密钥,得到会话密钥组;设置于客户端的第二数据交换模块,用于生成第二随机数,并通过预设于本端的会话建立密钥经加密算法加密传输至对端;以及设置于客户端的第二密钥组生成模块,用于根据所述第一随机数、所述第二随机数和分散算法得到一组分散因子,将所述一组分散因子中的每一分散因子分散为会话密钥,得到会话密钥组。
[0074] 在一些可选实施方式中,所述加密算法为第一国密算法,所述分散算法为第二国密算法。
[0075] 在一些可选实施方式中,所述装置还包括:在所述服务端和所述客户端预置主站证书;在所述客户端预置终端证书,并在所述服务端的指令触发下将所述终端证书发送至所述服务端;所述主站证书和所述终端证书用于验证所述从对端接收到的通过预设于本端的密钥经第一国密算法加密后的密文的签名。
[0076] 在一些可选实施方式中,所述客户端的会话建立密钥为将所述服务端的会话建立密钥进行密钥分散后得到。
[0077] 在一些可选实施方式中,所述服务端和所述客户端分别根据所述第一随机数、所述第二随机数和第二国密算法得到一组分散因子,包括:将所述第一随机数和所述第二随机数拼接为字符串;采用第二国密算法对所述字符串进行哈希运算,得到摘要值;将所述摘要值分段截取得到所述一组分散因子。
[0078] 在一些可选实施方式中,将所述一组分散因子中的每一分散因子分散为会话密钥,包括:采用预设于本端的会话主密钥作为分散密钥,将所述每一分散因子分散为会话密钥。
[0079] 在一些可选实施方式中,所述装置还包括,在得到会话密钥组之后,对所述会话密钥组进行验证的步骤:所述服务端从本地得到的所述会话密钥组中抽取一条密钥进行加密后,发送至客户端;所述客户端从本地得到的所述会话密钥组中抽取相同序号的一条密钥进行解密;若解密成功,则证明所述会话密钥组一致。
[0080] 在一些可选实施方式中,所述会话密钥组具有有效期,所述会话密钥组在超过有效期后重新计算。
[0081] 上述的会话密钥协商装置中的各个功能模块的具体限定可以参见上文中对于会话密钥协商方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0082] 在本发明提供的一些实施方式中,还提供了一种会话密钥协商设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述的会话密钥协商方法的步骤。此处的处理器具有数值计算和逻辑运算的功能,其至少具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统等。处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现前述的方法。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
[0083] 在本发明的一种实施方式中,还提供了一种计算机可读存储介质,所述存储介质中存储有指令,当其在计算机上运行时,该指令在被处理器执行时使得处理器被配置成执行上述的会话密钥协商方法。
[0084] 在本发明提供的一种实施方式中,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述的会话密钥协商方法。
[0085] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0086] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0087] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0088] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0089] 在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
[0090] 存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
[0091] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD‑ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
[0092] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0093] 以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。