CN109861817A - 生成密钥的方法、装置、系统、设备和介质 - Google Patents
生成密钥的方法、装置、系统、设备和介质 Download PDFInfo
- Publication number
- CN109861817A CN109861817A CN201910141290.4A CN201910141290A CN109861817A CN 109861817 A CN109861817 A CN 109861817A CN 201910141290 A CN201910141290 A CN 201910141290A CN 109861817 A CN109861817 A CN 109861817A
- Authority
- CN
- China
- Prior art keywords
- key
- communication
- random number
- server
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种生成通讯密钥的方法、装置、系统、设备和介质,终端生成第一通讯密钥因子,利用第二公钥加密第一通讯因子得到第一加密数据,将第一加密数据发送给服务器,服务器利用第二私钥解密第一加密数据得到第一通讯密钥因子,生成第二通讯密钥因子,利用第二通讯密钥因子和第一通讯密钥因子生成通讯密钥,服务器将第二通讯密钥因子发送给终端,终端利用第二通讯密钥因子和第一通讯密钥因子生成通讯密钥。该方案由终端和服务器分别生成第一和第二通讯密钥因子,基于第一和第二通讯密钥因子生成双方数据交互的通讯密钥,实现由终端和服务器共同生成通讯密钥的效果,而通讯密钥无需在通讯过程中传输,提高生成通讯密钥的安全性。
Description
技术领域
本发明涉及数据安全技术领域,特别是涉及一种生成通讯密钥的方法、生成通讯密钥的装置、物联网通讯系统、计算机设备和计算机可读存储介质。
背景技术
随着通讯技术的迅速发展,以网络为基础进行数据和信息的交换成为了如物联网等通信网络的核心。而数据信息在网络传输的过程当中存在被窃取的风险,特别是目前如物联网终端设备等联网设备的数量与日俱增,越来越多的数据需要上传到网络,因此保证物联网终端设备等联网设备在此过程当中的安全变得至关重要,使其免遭信息泄露或者恶意的攻击,也成为了在物联网时代无法回避的问题。
传统技术利用通讯密钥对需要传输的数据先进行加密后传输,而发明人在传统技术实施过程中发现,传统的生成通讯密钥的方式容易使得该通讯密钥在数据发送方和数据接收方通讯过程中被泄露,导致生成通讯密钥的安全性低,从而也降低了数据传输的安全性。
发明内容
基于此,有必要针对传统技术生成通讯密钥的安全性低的技术问题,提供一种生成通讯密钥的方法、生成通讯密钥的装置、物联网通讯系统、计算机设备和计算机可读存储介质。
一种生成通讯密钥的方法,包括步骤:
生成第一通讯密钥因子;
利用第二公钥加密所述第一通讯密钥因子得到第一加密数据;
将所述第一加密数据发送至服务器,用于触发所述服务器利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子,根据所述第一通讯密钥因子和第二通讯密钥因子生成通讯密钥;所述第二通讯密钥因子为所述服务器生成的通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;
获取第二加密数据;所述第二加密数据为所述服务器利用第一公钥加密所述第二通讯密钥因子得到的加密数据;
利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子;所述第一私钥为与所述第一公钥相匹配的私钥;
根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥。
一种生成通讯密钥的方法,包括步骤:
接收终端发送的第一加密数据;所述第一加密数据为所述终端利用第二公钥加密第一通讯密钥因子得到的加密数据;所述第一通讯密钥因子为所述终端生成的通讯密钥因子;
利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;
生成第二通讯密钥因子;
根据所述第二通讯密钥因子和所述第一通讯密钥因子生成通讯密钥;
利用第一公钥加密所述第二通讯密钥因子得到第二加密数据;
将所述第二加密数据发送至所述终端,用于触发所述终端利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子,根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥;所述第一私钥为与所述第一公钥相匹配的私钥。
一种生成通讯密钥的装置,包括:
第一因子生成模块,用于生成第一通讯密钥因子;
第一因子加密模块,用于利用第二公钥加密所述第一通讯密钥因子得到第一加密数据;
第一数据发送模块,用于将所述第一加密数据发送至服务器,用于触发所述服务器利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子,根据所述第一通讯密钥因子和第二通讯密钥因子生成通讯密钥;所述第二通讯密钥因子为所述服务器生成的通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;
数据获取模块,用于获取第二加密数据;所述第二加密数据为所述服务器利用第一公钥加密所述第二通讯密钥因子得到的加密数据;
第一因子解密模块,用于利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子;所述第一私钥为与所述第一公钥相匹配的私钥;
第一密钥生成模块,用于根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥。
一种生成通讯密钥的装置,包括:
数据接收模块,用于接收终端发送的第一加密数据;所述第一加密数据为所述终端利用第二公钥加密第一通讯密钥因子得到的加密数据;所述第一通讯密钥因子为所述终端生成的通讯密钥因子;
第二因子解密模块,用于利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;
第二因子生成模块,用于生成第二通讯密钥因子;
第二密钥生成模块,用于根据所述第二通讯密钥因子和所述第一通讯密钥因子生成通讯密钥;
第二因子加密模块,用于利用第一公钥加密所述第二通讯密钥因子得到第二加密数据;
第二数据发送模块,用于将所述第二加密数据发送至所述终端,用于触发所述终端利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子,根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥;所述第一私钥为与所述第一公钥相匹配的私钥。
一种物联网通讯系统,包括:物联网终端和服务器;
所述物联网终端,用于生成第一通讯密钥因子,利用第二公钥加密所述第一通讯密钥因子得到第一加密数据,将所述第一加密数据发送至所述服务器;
所述服务器,用于接收所述第一加密数据,利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子,生成第二通讯密钥因子,根据所述第二通讯密钥因子和所述第一通讯密钥因子生成通讯密钥,利用第一公钥加密所述第二通讯密钥因子得到第二加密数据,将所述第二加密数据发送至所述物联网终端;其中,所述第二私钥为与所述第二公钥相匹配的私钥;
所述物联网终端,还用于接收所述第二加密数据,利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子,根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥;其中,所述第一私钥为与所述第一公钥相匹配的私钥。
一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
生成第一通讯密钥因子;利用第二公钥加密所述第一通讯密钥因子得到第一加密数据;将所述第一加密数据发送至服务器,用于触发所述服务器利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子,根据所述第一通讯密钥因子和第二通讯密钥因子生成通讯密钥;所述第二通讯密钥因子为所述服务器生成的通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;获取第二加密数据;所述第二加密数据为所述服务器利用第一公钥加密所述第二通讯密钥因子得到的加密数据;利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子;所述第一私钥为与所述第一公钥相匹配的私钥;根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥。
一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
接收终端发送的第一加密数据;所述第一加密数据为所述终端利用第二公钥加密第一通讯密钥因子得到的加密数据;所述第一通讯密钥因子为所述终端生成的通讯密钥因子;利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;生成第二通讯密钥因子;根据所述第二通讯密钥因子和所述第一通讯密钥因子生成通讯密钥;利用第一公钥加密所述第二通讯密钥因子得到第二加密数据;将所述第二加密数据发送至所述终端,用于触发所述终端利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子,根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥;所述第一私钥为与所述第一公钥相匹配的私钥。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
生成第一通讯密钥因子;利用第二公钥加密所述第一通讯密钥因子得到第一加密数据;将所述第一加密数据发送至服务器,用于触发所述服务器利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子,根据所述第一通讯密钥因子和第二通讯密钥因子生成通讯密钥;所述第二通讯密钥因子为所述服务器生成的通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;获取第二加密数据;所述第二加密数据为所述服务器利用第一公钥加密所述第二通讯密钥因子得到的加密数据;利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子;所述第一私钥为与所述第一公钥相匹配的私钥;根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
接收终端发送的第一加密数据;所述第一加密数据为所述终端利用第二公钥加密第一通讯密钥因子得到的加密数据;所述第一通讯密钥因子为所述终端生成的通讯密钥因子;利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;生成第二通讯密钥因子;根据所述第二通讯密钥因子和所述第一通讯密钥因子生成通讯密钥;利用第一公钥加密所述第二通讯密钥因子得到第二加密数据;将所述第二加密数据发送至所述终端,用于触发所述终端利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子,根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥;所述第一私钥为与所述第一公钥相匹配的私钥。
上述生成通讯密钥的方法、装置、物联网通讯系统、计算机设备和存储介质,终端生成第一通讯密钥因子,然后利用第二公钥加密该第一通讯因子得到第一加密数据,将该第一加密数据发送给服务器,使得服务器利用第二私钥解密第一加密数据得到第一通讯密钥因子,生成第二通讯密钥因子,利用该第二通讯密钥因子和第一通讯密钥因子生成通讯密钥,服务器将第二通讯密钥因子发送给终端,使得终端能够利用该第二通讯密钥因子和第一通讯密钥因子生成通讯密钥。该方案由终端和服务器双方分别生成第一通讯密钥因子和第二通讯密钥因子,再基于第一通讯密钥因子和第二通讯密钥因子生成用于双方数据交互的通讯密钥,实现由终端和服务器双方共同生成通讯密钥的效果,而通讯密钥无需在通讯过程中传输,提高了生成通讯密钥的安全性,而且基于该通讯密钥进行数据交互,也提高了数据交互的安全性。
附图说明
图1为一个实施例中生成通讯密钥的方法的应用场景图;
图2为一个实施例中生成通讯密钥的方法的流程示意图;
图3为一个实施例中终端初始化的时序图;
图4为一个实施例中身份认证流程和生成通讯密钥流程的时序图;
图5为另一个实施例中生成通讯密钥的方法的流程示意图;
图6为一个实施例中数据交互方法的流程示意图;
图7为一个实施例中数据交互方法的时序图;
图8为一个实施例中生成通讯密钥的装置的结构框图;
图9为另一个实施例中生成通讯密钥的装置的结构框图;
图10为一个实施例中数据交互装置的结构框图;
图11为一个实施例中物联网通讯系统的结构示意图;
图12为一个实施例中计算机设备的内部结构图;
图13为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明的是,本发明实施例所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序。
本发明提供的生成通讯密钥的方法,可以应用于如图1所示的应用场景中,图1为一个实施例中生成通讯密钥的方法的应用场景图,其中,终端100可以与服务器200通过网络进行连接,在终端100和服务器200通过网络进行数据交互时容易发生数据被窃取等数据安全风险。
本发明提供的生成通讯密钥的方法,终端100可以生成第一通讯密钥因子,然后终端100利用第二公钥加密该第一通讯因子得到第一加密数据,将该第一加密数据通过网络发送给服务器200,服务器200在接收到第一加密数据后,利用第二私钥解密该第一加密数据,从而得到终端100生成的第一通讯密钥因子,服务器200还生成第二通讯密钥因子,并利用第一通讯密钥因子和第二通讯密钥因子生成通讯密钥,在服务器200一侧即完成了生成通讯密钥的步骤,而服务器200还可以在生成第二通讯密钥因子以后,将该第二通讯密钥因子发送给终端100,终端100在接收到第二通讯密钥因子以后,同样利用第一通讯密钥因子和第二通讯密钥因子生成通讯密钥,在终端100一侧也完成了生成通讯密钥的过程,使得用于双方数据交互的通讯密钥由终端100和服务器200共同生成,即终端100和服务器200双方分别生成第一通讯密钥因子和第二通讯密钥因子,再基于第一通讯密钥因子和第二通讯密钥因子生成通讯密钥,使得通讯密钥无需在通讯过程中进行传输,从而提高了通讯密钥的安全性。
而且,终端100和服务器200还可以在生成该通讯密钥以后,利用该通讯密钥对交互的数据进行加密后传输,即终端100可以利用该通讯密钥加密业务数据后再发给服务器200,使得服务器200能够利用通讯密钥进行解密从而得到业务数据,确保终端100和服务器数据不会在网络传输过程中被泄露,提高数据交互的安全性。
其中,终端100可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备和各种物联网终端设备等等,服务器200可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,提供了一种生成通讯密钥的方法,参考图2,图2为一个实施例中生成通讯密钥的方法的流程示意图,该方法可以应用于图1中的终端100当中,该生成通讯密钥的方法可以包括以下步骤:
步骤S101,生成第一通讯密钥因子。
本步骤主要是由终端100生成第一通讯密钥因子,该第一通讯密钥因子是指用于生成通讯密钥的其中一部分数据,该第一通讯密钥因子需要与另外一部分数据相结合生成通讯密钥;其中,通讯密钥是数据发送方和数据接收方进行数据交互时,对数据进行加密的密钥,以终端100和服务器200为例,终端100在与服务器200进行数据交互之前,为了确保数据在传输过程当中不被窃取,双方需要用通讯密钥来对数据进行加密后传输,而在利用通讯密钥进行数据加密之前,需要先生成该通讯密钥,本步骤由终端100生成第一通讯密钥因子,作为用于生成通讯密钥的其中一部分数据。
步骤S102,利用第二公钥加密第一通讯密钥因子得到第一加密数据。
其中,终端100利用第二公钥对第一通讯密钥因子进行加密得到第一加密数据,该第一加密数据是指利用第二公钥对第一通讯密钥因子进行加密处理后得到的数据。具体的,该第二公钥可以是服务器200的公钥,而终端100利用服务器200的公钥对第一通讯密钥因子进行加密得到的第一加密数据,就可以由服务器200利用其私钥进行解密获取第一通讯密钥因子。
步骤S103,将第一加密数据发送至服务器。
本步骤中,终端100在得到第一加密数据以后,可以通过网络将该第一加密数据发送给服务器200,使得服务器200利用第二私钥加密第一加密数据得到终端100生成的第一通讯密钥因子,并根据该第一通讯密钥因子与第二通讯密钥因子生成通讯密钥;其中,第二通讯密钥因子是由服务器200生成的通讯密钥因子,相对于终端100生成的第一通讯密钥因子来说,该第二通讯密钥因子可以作为生成通讯密钥的另外一部分数据,可以用于与第一通讯密钥因子相结合生成通讯密钥,因此服务器200可以在得到第一通讯密钥因子以后,将该第一通讯密钥因子与第二通讯密钥因子相结合生成通讯密钥。
在服务器200获取第一通讯密钥因子的过程中,由于终端100发送给服务器200的是第一加密数据,该第一加密数据是由终端100利用第二公钥对第一密钥因子进行加密得到的数据,这样,第一加密数据的接收方需要用于该第二公钥相配对的私钥进行解密,因此,在服务器200接收到第一加密数据时,可以利用与第二公钥相匹配的第二私钥来解密第一加密数据从而得到第一通讯密钥因子。而且,终端100还可以利用服务器200的公钥作为第二公钥来对第一通讯密钥因子进行加密,由于通过服务器200的公钥进行加密的数据只能由该服务器200的私钥进行解密,能够使得第一通讯密钥因子只能由服务器200来进行解密,确保该第一通讯密钥因子在网络传输过程当中不会被窃取。
服务器200在得到第一通讯密钥因子和生成第二通讯密钥因子以后,可以根据该第一通讯密钥因子和第二通讯密钥因子生成通讯密钥,而生成通讯密钥的方式可以包括多种,例如将第一通讯密钥因子和第二通讯密钥因子以二进制流的形式拼接起来生成通讯密钥,设第一通讯密钥因子为数据A、第二通讯密钥因子为数据B,则生成通讯密钥的可以是AB;又如可以采用特定的算法(如异或运算)对第一通讯密钥因子和第二通讯密钥因子进行处理生成通讯密钥等等。
步骤S104,获取第二加密数据。
本步骤主要是终端100获取第二加密数据。其中,该第二加密数据是指服务器200利用第一公钥加密第二通讯密钥因子得到的加密数据。具体来说,服务器200可以在生成第二通讯密钥因子以后,将该第二通讯密钥因子发送给终端100,在发送之前,为了该第二通讯密钥因子不会在网络传输过程中被泄露,可以通过第一公钥对该第二通讯密钥因子进行加密后传输,也就是说,服务器200利用第一公钥加密该第二通讯密钥因子得到第二加密数据,再将该第二加密数据发送给终端100,使得终端100能够利用与该第一公钥相配对的第一私钥来解密。其中,服务器200可以采用终端100的公钥作为第一公钥来加密第二通讯密钥因子,这样终端100就可以利用其私钥来解密第二加密数据获得第二通讯密钥因子,保证第二通讯密钥因子的传输安全性。
步骤S105,利用第一私钥解密第二加密数据得到第二通讯密钥因子。
其中,第一私钥是指与第一公钥相匹配的私钥。终端100可以利用与第一公钥相匹配的第一私钥对服务器200发送的第二加密数据进行解密,从而得到服务器200生成的第二通讯密钥因子。由于该第二加密数据是服务器200利用第一公钥加密第二通讯密钥因子得到的加密数据,因此该第二加密数据只能与该第二公钥相配对的私钥来解密,使得只有持有该第一私钥的终端100才能解密第二加密数据从而得到第二通讯密钥因子,而且服务器200可以将终端100的公钥作为第一公钥来加密第二通讯密钥因子,得到第二加密数据,这样只有终端100可以利用其私钥来解密该第二加密数据得到第二通讯密钥因子,以保证第二通讯密钥因子在网络传输过程中不被泄露。
步骤S106,根据第二通讯密钥因子和第一通讯密钥因子生成通讯密钥。
本步骤主要是终端100在获取第二通讯密钥因子以后,可以根据本地生成的第一通讯密钥因子和服务器200生成的第二通讯密钥因子生成用于与服务器200进行通讯的通讯密钥,其中,终端100和服务器200可以采用同样的方式或算法来生成通讯密钥,即终端100采用的生成通讯密钥的方式与服务器200采用的方式是相同的,以确保终端和服务器双方能够使用相同的通讯密钥进行通讯。
生成通讯密钥的方式可以包括多种,例如将第一通讯密钥因子和第二通讯密钥因子以二进制流的形式拼接起来生成通讯密钥,设第一通讯密钥因子为数据A、第二通讯密钥因子为数据B,则生成通讯密钥的可以是AB;又如,终端100可以对第一通讯密钥因子和第二通讯密钥因子进行异或运算,得到通讯密钥。由于通讯密钥是分别在终端100和服务器200生成的,而且该通讯密钥在通讯过程当中没有在网络中进行传输,避免了被窃取的风险,安全性较好,而且在终端100和服务器200各自生成通讯密钥以后,就能够利用该通讯密钥对数据进行加密传输,实现数据交互,提高了数据交互的安全性。
上述生成通讯密钥的方法,终端生成第一通讯密钥因子,然后利用第二公钥加密该第一通讯因子得到第一加密数据,将该第一加密数据发送给服务器,使得服务器利用第二私钥解密第一加密数据得到第一通讯密钥因子,生成第二通讯密钥因子,利用该第二通讯密钥因子和第一通讯密钥因子生成通讯密钥,服务器将第二通讯密钥因子发送给终端,使得终端能够利用该第二通讯密钥因子和第一通讯密钥因子生成通讯密钥。该方案由终端和服务器双方分别生成第一通讯密钥因子和第二通讯密钥因子,再基于第一通讯密钥因子和第二通讯密钥因子生成用于双方数据交互的通讯密钥,实现由终端和服务器双方共同生成通讯密钥的效果,而通讯密钥无需在通讯过程中传输,提高了生成通讯密钥的安全性,而且基于该通讯密钥进行数据交互,也提高了数据交互的安全性。
在一个实施例中,终端100和服务器200可以在生成通讯密钥以后,分别对该通讯密钥进行验证,以确保终端100和服务器200各自生成的通讯密钥是相同的。
对于终端100,可以采用如下方式对通讯密钥进行验证:
接收服务器发送的第二密钥摘要;第二密钥摘要为服务器对通讯密钥进行摘要运算得到的消息摘要;对通讯密钥进行摘要运算得到第一密钥摘要;根据第一密钥摘要和第二密钥摘要验证通讯密钥。
具体来说,服务器200在生成通讯密钥以后,可以采用如SM3等密码学算法对通讯密钥进行摘要运算得到第二密钥摘要,服务器200可以将该第二密钥摘要发送给终端100,终端100接收第二密钥摘要,为了判断终端100生成的通讯密钥与服务器200生成的通讯密钥是否相同,终端100采用同样的方式对其生成的通讯密钥进行摘要运算得到第一密钥摘要,将该第一密钥摘要与第二密钥摘要进行对比,如果第一密钥摘要与第二密钥摘要相同,则判断终端100生成的通讯密钥与服务器200生成的通讯密钥是相同的,可以用于加密数据,与服务器200进行数据交互。
而对于服务器200,可以采用如下方式对通讯密钥进行验证:
对通讯密钥进行摘要运算得到第一密钥摘要;将第一密钥摘要发送至服务器,用于触发服务器根据第一密钥摘要和第二密钥摘要验证通讯密钥;第二密钥摘要为服务器对通讯密钥进行摘要运算得到的消息摘要。
具体的,终端100在生成通讯密钥以后,可以采用如SM3等密码学算法对通讯密钥进行摘要运算得到第一密钥摘要,然后终端100将该第一密钥摘要发送给服务器200,服务器200可以采用同样的方式对其生成的通讯密钥进行摘要运算得到第二密钥摘要,并将该第二密钥摘要与第一密钥摘要进行比对,如果第二密钥摘要与第一密钥摘要相同,则判断服务器200生成的通讯密钥与终端100生成的通讯密钥是相同的,可以用于加密数据,与终端100进行数据交互。
在一个实施例中,可以结合服务器随机数来确保服务器接收到的第一通讯密钥因子的可靠性。本实施例中,利用第二公钥加密第一通讯密钥因子得到第一加密数据的步骤可以包括:
步骤S1001,获取第四随机数。
本步骤中,该第四随机数是指服务器200发送给终端100的随机数。其中,服务器200可以预先生成第三随机数作为服务器随机数,然后将该第三随机数发送到终端100,终端100可以将服务器200发送的随机数存储为第四随机数。这样,在终端100将相关数据发送给服务器200时,可以结合该第四随机数一并发送,使得服务器200可以基于该第四随机数判断相关数据是否由终端100发送的等等,确保数据安全。
步骤S1002,利用第二公钥对第四随机数和第一通讯密钥因子进行加密,得到第一加密数据。
终端100可以将第四随机数和第一通讯密钥因子以二进制流的方式拼接起来,使用第二公钥进行加密,得到第一加密数据;其中,可以采用服务器200的公钥作为该第二公钥。
而终端100在得到第一加密数据以后,可以将该第一加密数据发送给服务器200,进一步使得服务器200利用第二私钥解密该第一加密数据,得到第四随机数和第一通讯密钥因子,服务器200还获取其预先生成好的第三随机数,根据该第三随机数与第四随机数验证第一通讯密钥因子。其中,服务器200在解密得到第四随机数和第一通讯密钥因子以后,由于该第四随机数对应于服务器200预先生成的第三随机数,因此如果该第一通讯密钥因子是终端100传递给服务器200的,那么终端100加密的第四随机数应该是与服务器200预先生成的第三随机数是相同的,所以服务器200在解密得到第一通讯密钥因子和第四随机数以后,可以将第四随机数和第三随机数进行比对,根据比对结果确认该第一通讯密钥因子是否可靠,即该第一通讯密钥因子是否由终端100发送的,如果第四随机数与第三随机数相同,即可认为第一通讯密钥因子是可靠的,可以利用该第一通讯密钥因子来生成通讯密钥。
进一步的,在一个实施例中,获取第四随机数的步骤可以包括:
步骤S1003,接收服务器发送的第三随机数和第三随机数摘要。
本步骤中,第三随机数摘要是指服务器200利用初始化密钥对第三随机数进行摘要运算得到的消息摘要。在服务器200生成第三随机数以后,可以利用初始化密钥对该第三随机数进行摘要运算,将得到的消息摘要作为第三随机数摘要,其中,初始化密钥是预置于服务器200当中的密钥。
服务器200在生成第三随机数和得到第三随机数摘要以后,可以通过网络将该第三随机数和第三随机数摘要一并发送给终端100,终端100接收该第三随机数和第三随机数摘要。
步骤S1004,获取初始化密钥。
本步骤中,终端100可以在可信环境中获取预置于服务器200当中的初始化密钥,该可信环境是指终端100和服务器200交互的数据信息不会泄露给第三方的环境,例如可以在终端100出厂前,将预置于服务器200当中的初始化密钥发送到终端100当中进行存储,从而在可信环境之下确保终端100获取到初始化密钥。
步骤S1005,利用初始化密钥和第三随机数摘要验证第三随机数,获取第四随机数;第四随机数为通过验证的第三随机数。
由于终端100可信环境当中获取了初始化密钥,因此终端100在接收到第三随机数和第三随机数摘要以后,可以以同样的方式利用初始化密钥对第三随机数进行摘要运算,将该摘要运算得到的消息摘要与第三随机数摘要进行比对,以确保第三随机数在网络传输过程中没有被篡改,具体来说,如果第三随机数在网络传输过程中被篡改,那么在终端100利用初始化密钥计算该第三随机数的消息摘要时将会得到与第三随机数摘要不同的结果,如果第三随机数未被篡改,则验证终端100接收到的第三随机数是可靠的,认为该第三随机数通过了验证,可以将该通过验证的第三随机数作为第四随机数进行存储,可以确保终端100接收到的随机数是可靠的、未被篡改的,提高通讯密钥生成的安全性。
在一个实施例中,进一步的,还可以包括步骤:
利用第一私钥对第四随机数进行签名,得到第一签名值;将第一签名值发送至服务器,用于触发服务器根据第三随机数和第一公钥对第一签名值进行验证。
本实施例主要是终端100在将第四随机数发送给服务器200的过程中,还可以将对第四随机数进行签名的签名值发送给服务器200,使得服务器200能够基于该签名值验证第四随机数的是否由终端100发送的,提高服务器200接收的随机数的可靠性,进一步保证通讯安全。
本实施例中,终端100可以将该终端100的私钥作为第一私钥来对第四随机数进行签名得到第一签名值,然后终端100将该第一签名值发送至服务器200,使得服务器200在接收到第一签名值后,可以对该第一签名值进行验证。具体来说,服务器200可以将终端100的公钥作为第一公钥,然后利用该第一公钥和第一签名值获取该第一签名值的签名原文,然后将该签名原文与第三随机数进行比对,若该签名原文与第三随机数相同则说明服务器200接收到的,终端100发送的第四随机数是可靠的,确保通讯安全。
进一步的,为了确保服务器200生成的通讯密钥与终端100生成的通讯密钥是相同的,在一个实施例中,还可以包括步骤:
步骤S1005,对第四随机数和通讯密钥进行摘要运算得到第三密钥摘要。
本步骤中,终端可以在生成通讯密钥以后,将第四随机数和通讯密钥拼接起来进行摘要运算,得到第三密钥摘要;其中可以采用如SM3等密码学算法对拼接起来的第四随机数和通讯密钥拼进行摘要运算。
步骤S1006,将第三密钥摘要发送至服务器,用于触发服务器根据第四密钥摘要和第三密钥摘要验证通讯密钥;第四密钥摘要为服务器对第三随机数和通讯密钥进行摘要运算得到消息摘要。
终端100可以在得到第三密钥摘要以后,将该第三密钥摘要发送给服务器200,使得服务器200基于该第三密钥摘要对其生成的通讯密钥进行验证。其中,服务器200可以将第三随机数和通讯密钥拼接起来进行摘要运算,得到第四密钥摘要,然后服务器200可以将第四密钥摘要与第三密钥摘要进行比对,若第四密钥摘要与第三密钥摘要相同,则说明终端100生成的通讯密钥与服务器200生成的通讯密钥是相同的,若否,则说明服务器200生成了与终端100不同的通讯密钥,此时需要终端100和服务器200重新生成通讯密钥,以确保终端100与服务器200能够使用相同的通讯密钥进行数据交互。
在一个实施例中,可以结合终端随机数来确保终端接收到的第二通讯密钥因子的可靠性,利用第一私钥解密第二加密数据得到第二通讯密钥因子的步骤可以包括:
步骤S1007,利用第一私钥解密第二加密数据得到第二随机数和第二通讯密钥因子;第二加密数据为服务器利用第一公钥加密第二随机数和第二通讯密钥因子得到的加密数据;第二随机数为服务器接收的随机数。
本步骤中,第二加密数据可以是服务器200利用第一公钥加密第二随机数和第二通讯密钥因子得到的加密数据,该第二随机数是服务器200从终端100接收的随机数。具体的,终端100可以预先生成第一随机数作为终端随机数,然后终端100可以将第一随机数发送给服务器200,服务器200可以将接收的随机数作为第二随机数进行存储,然后在服务器200加密第二通讯密钥因子时,服务器200将第二随机数与第二通讯密钥因子进行拼接,使用终端100的公钥作为第一公钥进行加密,从而得到第二加密数据,服务器200将该第二加密数据发送给终端100,终端100可以在接收到服务器200发送的第二加密数据以后,利用其私钥作为第一私钥对第二加密数据进行解密,从而得到第二随机数和第二通讯密钥因子。
步骤S1008,获取预先生成的第一随机数。
终端100可以预先生成该第一随机数并进行存储。本步骤中,终端100可以在解密得到第二随机数和第二通讯密钥因子后获取该第一随机数,用于验证第二通讯密钥因子。
步骤S1009,根据第一随机数和第二随机数验证第二通讯密钥因子。
本步骤主要是终端100可以将第一随机数和第二随机数进行比对,根据比对结果验证第二通讯密钥因子是否由服务器200发送,确保终端100接收的第二通讯密钥因子是可靠的。其中,由于第二随机数对应于终端100预先生成的第一随机数,因此如果该第二通讯密钥因子是服务器200传递给终端100的,那么服务器200加密的第二随机数应该是与终端100预先生成的第一随机数是相同的,所以终端100在解密得到第二通讯密钥因子和第二随机数以后,可以将第二随机数和第一随机数进行比对,根据比对结果确认该第二通讯密钥因子是否可靠,即该第二通讯密钥因子是否由服务器200发送的,如果第二随机数与第一随机数相同,即可认为第二通讯密钥因子是可靠的,可以利用该第二讯密钥因子来生成通讯密钥。
在一个实施例中,进一步的,还可以包括步骤:
步骤S1009,利用初始化密钥对第一随机数进行摘要运算,得到第一随机数摘要。
本步骤中,终端100可以在将第一随机数发送给服务器200时,可以利用在可信环境中从服务器200获取的初始化密钥对该第一随机数进行摘要运算,将得到的消息摘要作为第一随机数摘要。
步骤S1010,将第一随机数和第一随机数摘要发送至服务器,触发服务器利用初始化密钥和第一随机数摘要验证第一随机数,获取第二随机数;第二随机数为通过验证的第一随机数。
其中,终端100可以将第一随机数和第一随机数摘要一起发送给服务器200,使得服务器200在接收到第一随机数和第一随机数摘要以后,利用预置于该服务器200中的初始化密钥和接收的第一随机数摘要来验证第一随机数是否由终端100发送的。具体的,服务器200可以采用同样的方式利用初始化密钥对第一随机数进行摘要运算,将得到的消息摘要与第一随机数摘要进行比对,根据比对结果判断该第一随机数在网络传输过程中是否被篡改,若得到的消息摘要与第一随机数摘要相同,则说明该第一随机数是可靠的,可以认为该第一随机数通过了验证,服务器200可以将通过验证的第一随机数作为第二随机数进行存储,确保服务器200接收到的随机数是可靠的、未被篡改的,提高通讯密钥生成的安全性。
为了确保终端100生成的通讯密钥与服务器200生成的通讯密钥是相同的,在一个实施例中,进一步的,还可以包括步骤:
步骤S1011,接收服务器发送的第六密钥摘要;第六密钥摘要为服务器对第二随机数和通讯密钥进行摘要运算得到的消息摘要。
本步骤中,终端100可以接收服务器200发送的第六密钥摘要,该第六密钥摘要是指服务器200对第二随机数和通讯密钥进行摘要运算得到的消息摘要。其中,服务器200可以在生成通讯密钥以后,将第二随机数和通讯密钥拼接起来进行摘要运算,得到第六密钥摘要,该服务器200可以采用如SM3等密码学算法对拼接起来的第二随机数和通讯密钥进行摘要运算从而得到第六密钥摘要,然后服务器200可以将该第六密钥摘要发送给终端100,终端100接收该第六摘要密钥。
步骤S1012,对第一随机数和通讯密钥进行摘要运算得到第五密钥摘要。
其中,终端100可以在生成通讯密钥以后,将预先生成的第一随机数和通讯密钥拼接起来,然后通过如SM3等算法进行摘要运算获取第五密钥摘要。
步骤S1013,根据第五密钥摘要和第六密钥摘要验证通讯密钥。
终端100可以将第五密钥摘要和服务器200发送的第六摘要密钥进行比对,若第五密钥摘要与第六摘要密钥相同,则说明终端100生成的通讯密钥与服务器200生成的通讯密钥是相同的,若否,则说明终端100生成了与服务器200不同的通讯密钥,此时需要终端100和服务器200重新生成通讯密钥,以确保终端100与服务器200能够使用相同的通讯密钥进行数据交互。
在一个实施例中,进一步的,还可以包括步骤:
接收第二签名值;第二签名值为服务器利用第二私钥对第二随机数进行签名得到的签名值;利用第二公钥和第一随机数验证第二签名值。
本实施例主要终端100可以对接收的随机数进行验证,验证该随机数是否由服务器200发送的。服务器200在将第二随机数发送给终端100时,还可以将对该第二随机数进行签名得到的签名值发送给终端100,使得终端100可以基于该签名值验证该第二随机数是否由服务器200发送,以提高终端100接收的随机数的可靠性,确保生成通讯密钥的安全性。
本实施例中,服务器200可以将其私钥作为第二私钥来对第二随机数进行签名,得到第二签名值,然后服务器200将第二签名值发送给终端100,终端100接收到第二签名值后,可以将服务器200的公钥作为第二公钥,利用该第二公钥和接收的第二签名值获取该第二签名值的签名原文,然后将该签名原文与终端预先生成的第一随机数进行比对,若该签名原文与第一随机数相同,则终端100接收的第二随机数是可靠的,确保该第二随机数是由服务器200发送的随机数,保证生成通讯密钥的安全。
在一个实施例中,接收第二签名值的步骤可以包括:
步骤S1014,接收服务器发送的第二签名值和签名摘要;签名摘要为服务器利用初始化密钥对第二签名值进行摘要运算得到的消息摘要;初始化密钥预置于服务器中。
本步骤中,服务器200可以在将第二签名值发送给终端100时,还将签名摘要发送给终端100,以确保该第二签名值在网络传输过程中不被篡改,进一步提高安全性。其中,签名摘要是指服务器200利用预置的初始化密钥对第二签名值进行摘要运算得到的消息摘要。服务器200可以在得到第二签名值以后,利用初始化密钥对第二签名值进行摘要运算从而得到签名摘要,然后将该签名摘要发送给终端100,终端100可以一并接收服务器200发送的第二签名值和签名摘要,基于该签名摘要判断第二签名值是否被篡改。
步骤S1015,获取初始化密钥;初始化密钥为可信环境下从服务器接收的密钥。
本步骤主要是终端100可以在可信环境下获取服务器预置的初始化密钥,例如可以在终端100出厂前,将预置于服务器200当中的初始化密钥发送到终端100当中进行存储,从而在可信环境之下确保终端100获取到初始化密钥。
步骤S1016,利用初始化密钥和签名摘要验证第二签名值。
本步骤中,终端100可以以同样的方式利用初始化密钥对接收的第二签名值进行摘要运算得到消息摘要,并将该得到的消息摘要与服务器200发送的签名摘要进行比对,从而验证该第二签名值在网络传输过程中是否被篡改,若得到的消息摘要与签名摘要相同,则说明终端100接收的第二签名值是可靠的。
在一个实施例中,还可以包括步骤:
利用初始化密钥对第一公钥进行摘要运算,得到第一公钥摘要;初始化密钥为可信环境下从服务器接收的密钥;初始化密钥预置于服务器中;将第一公钥和第一公钥摘要发送至服务器,触发服务器利用初始化密钥和第一公钥摘要验证第一公钥。
本实施例中,服务器200可以利用初始化密钥确保接收的第一公钥是由终端100发送的第一公钥。其中,初始化密钥是预置于服务器200当中的密钥,而终端100在可信环境下从服务器200处接收该初始化密钥,因此,终端100将第一公钥发送给服务器200时,可以利用初始化密钥对该第一公钥进行摘要运算得到第一公钥摘要,而服务器200在接收到第一公钥摘要和第一公钥后,可以利用第一公钥摘要来验证该接收的第一公钥是否是由终端100发送的公钥,确保该公钥是由合法终端100发送的。其中,服务器200可以利用预先存储的初始化密钥以同样的方式对第一公钥进行摘要运算,得到相应的消息摘要,若该消息摘要与第一公钥摘要相同,则可以判断该第一公钥是由合法的终端100发送的,终端100可以将自身的公钥作为第一公钥发送给服务器200,服务器200验证该公钥后可以进行存储。
在一个实施例中,还可以包括步骤:
接收服务器发送的第二公钥和第二公钥摘要;第二公钥摘要为服务器利用初始化密钥对第二公钥进行摘要运算得到的消息摘要;初始化密钥预置于服务器中;获取初始化密钥;初始化密钥为可信环境下从服务器接收的密钥;利用初始化密钥和第二公钥摘要验证第二公钥。
本实施例中,终端100可以利用初始化密钥确保接收的第二公钥是由服务器200发送的第二公钥。其中,初始化密钥是预先存储在服务器200当中的,而终端100可以在可信环境之下从服务器200处获取该初始化密钥。这样,在服务器200将第二公钥发送给终端100时,服务器200可以先利用预先存储的初始化密钥对该第二公钥进行摘要运算得到第二公钥摘要,然后服务器200将该第二公钥摘要发送给终端100,使得终端100在接收到第二公钥摘要和第二公钥后,可以基于该第二公钥摘要来验证接收的第二公钥,确保该公钥是由合法的服务器200发送的。具体的,终端100在接收到第二公钥摘要和第二公钥后,可以利用预先存储的初始化密钥以同样的方式对第二公钥进行摘要运算,得到消息摘要,若该消息摘要与第二公钥摘要相同,则可以判断该第二公钥是由合法的服务器200发送的,服务器200可以将自身的公钥作为第二公钥发送给终端100,终端100验证该公钥后可以进行存储。
在一个实施例中,还可以包括步骤:
在可信环境下,将第一公钥发送至服务器,用于触发服务器利用第一公钥加密预置的初始化密钥,得到第四加密数据;接收服务器发送的第四加密数据;利用第一私钥解密第四加密数据,得到初始化密钥,将初始化密钥存储于安全模块内。
本实施例主要是终端100可以在可信环境下从服务器200获取初始化密钥,在初始化密钥传输过程当中,服务器200可以利用终端100发送的第一公钥来加密初始化密钥,使得终端100可以通过第一私钥来解密得到该初始化密钥。
本实施例中,初始化密钥的传输在可信环境下进行,这里所指的可信环境是相对于不可信环境而言的,在不可信环境之下传输的信息数据容易被泄露,例如互联网可以对应于不可信环境,在互联网当中传输信息一般容易被窃取。而在终端100出厂前对终端100进行设置的环境,则可以对应于可信环境,在该可信环境下通过服务器200将初始化密钥传输给终端100中进行存储,能够确保该初始化密钥不会被泄露。
具体来说,终端100可以在可信环境下将该终端100的公钥作为第一公钥发送给服务器200,该服务器200中预先存储有初始化密钥,然后服务器200利用接收的第一公钥来加密该初始化密钥,得到第四加密数据,然后将该第四加密数据发送给终端100,由于终端100持有与该第二公钥相配对的第一私钥,所以终端100可以利用第一私钥对第四加密数据进行解密,从而得到初始化密钥,这样,就在可信环境之下完成了初始化密钥从服务器200传输到终端100的过程,而且,通过公钥加密的方式还能在可信环境之下进一步确保初始化密钥不会泄露,终端100还可以将该初始化密钥存储在安全模块(安全芯片)当中,该安全模块可以为终端100提供安全的密钥和敏感信息存储、安全的密码运算等服务。
进一步的,在一个实施例中,在将初始化密钥存储于安全模块内的步骤之前,还可以包括:
接收服务器发送初始化指令;根据初始化指令对安全模块进行格式化处理,在安全模块中生成第一公钥和第一私钥。
本实施例主要是终端100可以接收服务器200发送的初始化指令,终端100在接收到该初始化指令后,即可根据该初始化指令对安全模块进行格式化,并在安全模块当中产生终端100的密钥对:第一公钥和第一私钥,该第一公钥和第一私钥可以对应为终端100的公钥和私钥。在终端100的初始化完成以后,还可以向服务器200返回初始化完成的确认信息。
在一个实施例中,可以在可信环境当中对终端100进行初始化。参考图3,图3为一个实施例中终端初始化的时序图。该时序图中包括终端100和服务器200。首先,服务器200向终端100发送安全模块的初始化指令,终端100接收到初始化指令后,对安全模块进行格式化,终端100在安全模块内部产生密钥对,包括第一公钥和第一私钥,其中,第一公钥可以对应于终端公钥,第一私钥可以对应于终端私钥,然后终端100可以将终端100的设备识别号(设备ID)和第一公钥提交到服务器200,服务器200获取保存在服务器200内部的初始化密钥Ki,服务器200使用终端公钥加密初始化密钥Ki,得到Enc(Ki),将Enc(Ki)传给终端100,终端100使用终端私钥解密Enc(Ki),得到Ki,终端100将初始化密钥Ki保存在安全模块内,终端100向服务器200返回确认信息。本实施例能够使得终端100在出厂前,完成终端100安全模块(安全芯片)的初始化工作,并生成终端的公私密钥对。
在一个实施例中,终端100和服务器200在生成通讯密钥之前,先进行身份认证,在身份认证通过后再生成通讯密钥。参考图4,图4为一个实施例中身份认证流程和生成通讯密钥流程的时序图,该时序图中包括终端100、服务器200和CA发证平台300。首先,终端100生成终端随机数Rt并暂存,终端100将终端公钥Ct、随机数Rt和设备ID拼接起来后,使用初始化密钥Ki计算HMac(Ki,(Ct|Rt|ID)),得到HMac_t,终端100向服务器200发送认证请求,该认证请求携带有终端公钥Ct、随机数Rt、设备ID和HMac_t。
服务器200收到认证请求后,用保存在服务器200的初始化密钥Ki,以同样的方式计算和验证HMac_t,然后服务器200可以根据终端设备ID、保存在服务器200的服务器AppID和终端公钥Ct,组装证书申请报文,用服务器200的数字证书私钥对申请报文进行签名,得到签名值SignC,再将服务器AppID、申请报文和签名值SignC提交给,CA发证平台300会根据服务器AppID查找对应证书对申请报文进行验证,验证通过后,根据申请报文签发终端100的终端设备数字证书Ct,CA发证平台300返回终端数字证书给服务器200,服务器200保存此证书,并验证验证终端证书Ct的有效性(如验证该证书是否由信任的CA机构签发的、是否在有效期内或证书是否已注销等等),服务器200从终端证书中读取终端设备ID,与服务器200自身保存的信息对比,判断是否合法的终端100。
然后,服务器200生成服务器端的随机数Rs并暂存。服务器200使用服务器数字证书私钥对终端随机数Rt进行签名,得到签名值Ss,然后将服务器公钥Cs、签名值Ss、随机数Rs拼接起来后,使用初始化密钥Ki计算HMac(Ki,(Cs|Rs|Ss),得到HMac_s,并将服务器公钥Cs、签名值Ss、服务器随机数Rs和HMac_s返回给终端100,终端100通过初始化密钥Ki,以同样的方式计算和验证HMac_s。接着,终端100通过第1步暂存的终端随机数Rt、收到的服务器公钥Cs和签名值Ss进行验证签名,并保存服务器公钥Cs。
终端100使用终端私钥对服务器随机数Rs进行签名,得到签名值St,终端100生成通讯密钥因子Kt并暂存,然后将服务器随机数Rs和通讯密钥因子Kt拼接起来,使用服务器公钥Cs进行加密,得到Enc(Rs|Kt),向服务器200提交Enc(Rs|Kt)和签名值St。服务器200通过随机数Rs,终端公钥Ct和签名值St进行验证签名。服务器200使用服务器私钥解密Enc(Rs|Kt),对比服务器随机数Rs,得到终端通讯密钥因子Kt。
服务器生成通讯密钥因子Ks,并暂存,对通讯密钥因子Kt和通讯密钥因子Ks进行异或运算,得到通讯密钥SKey并暂存,然后将终端随机数Rt和通讯密钥因子Ks拼接起来,使用终端公钥加密,得到Enc(Rt|Ks),服务器200将终端随机数Rt和通讯密钥SKey拼接起来进行摘要运算,得到SM3(Rt|SKey)。
服务器200向终端100返回Enc(Rt|Ks)和SM3(Rt|SKey),终端100使用终端私钥解密Enc(Rt|Ks),对比终端随机数Rt,得到服务器200的通讯密钥因子Ks,然后终端100对通讯密钥因子Kt和通讯密钥因子Ks进行异或运算,得到通讯密钥SKey并保存,将终端随机数Rt和通讯密钥SKey拼接起来进行摘要运算,与服务器200发过来的进行对比,验证通讯密钥SKey是否一致。
终端100将服务器随机数Rs和通讯密钥SKey拼接起来进行摘要运算,得到SM3(Rs|SKey),并向服务器200提交SM3(Rs|SKey)。服务器将服务器随机数Rs和通讯密钥SKey拼接起来进行摘要运算,与终端100发过来的进行对比,验证通讯密钥SKey是否一致。服务器200保存终端设备证书和通讯密钥SKey,然后向终端100返回确认信息,完成身份认证和生成通讯密钥的流程。其中,在终端设备证书签发步骤当中,终端设备证书只需要申请一次,如果服务器200已经保存了之前申请的终端设备证书,则可以不进行终端设备证书签发步骤。
在一个实施例中,提供了一种生成通讯密钥的方法,参考图5,图5为另一个实施例中生成通讯密钥的方法的流程示意图,该方法可以应用于图1中的服务器200当中,该生成通讯密钥的方法可以包括以下步骤:
步骤S401,接收终端发送的第一加密数据;第一加密数据为终端利用第二公钥加密第一通讯密钥因子得到的加密数据;第一通讯密钥因子为终端生成的通讯密钥因子;
步骤S402,利用第二私钥解密第一加密数据得到第一通讯密钥因子;第二私钥为与第二公钥相匹配的私钥;
步骤S403,生成第二通讯密钥因子;
步骤S404,根据第二通讯密钥因子和第一通讯密钥因子生成通讯密钥;
步骤S405,利用第一公钥加密第二通讯密钥因子得到第二加密数据;
步骤S406,将第二加密数据发送至终端,用于触发终端利用第一私钥解密第二加密数据得到第二通讯密钥因子,根据第二通讯密钥因子和第一通讯密钥因子生成通讯密钥;第一私钥为与第一公钥相匹配的私钥。
本实施例中,终端100生成第一通讯密钥因子,该第一通讯密钥因子是指用于生成通讯密钥的其中一部分数据,需要与另外一部分数据相结合生成通讯密钥;其中,通讯密钥是数据发送方和数据接收方进行数据交互时,对数据进行加密的密钥。以终端100和服务器200为例,终端100在与服务器200进行数据交互之前,为了确保数据在传输过程当中不被窃取,双方需要用通讯密钥来对数据进行加密后传输,而在利用通讯密钥进行数据加密之前,需要先生成该通讯密钥,第一通讯密钥因子可以由终端100生成,作为用于生成通讯密钥的其中一部分数据。
终端100利用第二公钥对第一通讯密钥因子进行加密得到第一加密数据,该第一加密数据是指利用第二公钥对第一通讯密钥因子进行加密处理后得到的数据。其中,该第二公钥可以是服务器200的公钥,而终端100利用服务器200的公钥对第一通讯密钥因子进行加密得到的第一加密数据,就可以由服务器200利用其私钥进行解密获取第一通讯密钥因子。
终端100在得到第一加密数据以后,可以通过网络将该第一加密数据发送给服务器200,使得服务器200利用第二私钥加密第一加密数据得到终端100生成的第一通讯密钥因子,并根据该第一通讯密钥因子与第二通讯密钥因子生成通讯密钥;其中,第二通讯密钥因子是由服务器200生成的通讯密钥因子,相对于终端100生成的第一通讯密钥因子来说,该第二通讯密钥因子可以作为生成通讯密钥的另外一部分数据,可以用于与第一通讯密钥因子相结合生成通讯密钥,因此服务器200可以在得到第一通讯密钥因子以后,将该第一通讯密钥因子与第二通讯密钥因子相结合生成通讯密钥。
在服务器200获取第一通讯密钥因子的过程中,由于终端100发送给服务器200的是第一加密数据,该第一加密数据是由终端100利用第二公钥对第一密钥因子进行加密得到的数据,这样,第一加密数据的接收方需要用于该第二公钥相配对的私钥进行解密,因此,在服务器200接收到第一加密数据时,可以利用与第二公钥相匹配的第二私钥来解密第一加密数据从而得到第一通讯密钥因子。而且,终端100还可以利用服务器200的公钥作为第二公钥来对第一通讯密钥因子进行加密,由于通过服务器200的公钥进行加密的数据只能由该服务器200的私钥进行解密,能够使得第一通讯密钥因子只能由服务器200来进行解密,确保该第一通讯密钥因子在网络传输过程当中不会被窃取。
服务器200在得到第一通讯密钥因子和生成第二通讯密钥因子以后,可以根据该第一通讯密钥因子和第二通讯密钥因子生成通讯密钥,而生成通讯密钥的方式可以包括多种,例如将第一通讯密钥因子和第二通讯密钥因子以二进制流的形式拼接起来生成通讯密钥,设第一通讯密钥因子为数据A、第二通讯密钥因子为数据B,则生成通讯密钥的可以是AB;又如可以采用特定的算法(如异或运算)对第一通讯密钥因子和第二通讯密钥因子进行处理生成通讯密钥等等。
服务器200可以在生成第二通讯密钥因子以后,将该第二通讯密钥因子发送给终端100,在发送之前,为了该第二通讯密钥因子不会在网络传输过程中被泄露,可以通过第一公钥对该第二通讯密钥因子进行加密后传输,也就是说,服务器200利用第一公钥加密该第二通讯密钥因子得到第二加密数据,再将该第二加密数据发送给终端100,使得终端100能够利用与该第一公钥相配对的第一私钥来解密。
服务器200可以采用终端100的公钥作为第一公钥来加密第二通讯密钥因子,这样终端100就可以利用其私钥来解密第二加密数据获得第二通讯密钥因子,保证第二通讯密钥因子的传输安全性。其中,终端100可以利用与第一公钥相匹配的第一私钥对服务器200发送的第二加密数据进行解密,从而得到服务器200生成的第二通讯密钥因子。由于该第二加密数据是服务器200利用第一公钥加密第二通讯密钥因子得到的加密数据,因此该第二加密数据只能与该第二公钥相配对的私钥来解密,使得只有持有该第一私钥的终端100才能解密第二加密数据从而得到第二通讯密钥因子,而且服务器200可以将终端100的公钥作为第一公钥来加密第二通讯密钥因子,得到第二加密数据,这样只有终端100可以利用其私钥来解密该第二加密数据得到第二通讯密钥因子,以保证第二通讯密钥因子在网络传输过程中不被泄露。终端100在获取第二通讯密钥因子以后,可以根据本地生成的第一通讯密钥因子和服务器200生成的第二通讯密钥因子生成用于与服务器200进行通讯的通讯密钥,其中,终端100和服务器200可以采用同样的方式或算法来生成通讯密钥,即终端100采用的生成通讯密钥的方式与服务器200采用的方式是相同的,以确保终端和服务器双方能够使用相同的通讯密钥进行通讯。
其中,生成通讯密钥的方式可以包括多种,例如将第一通讯密钥因子和第二通讯密钥因子以二进制流的形式拼接起来生成通讯密钥,设第一通讯密钥因子为数据A、第二通讯密钥因子为数据B,则生成通讯密钥的可以是AB;又如,终端100可以对第一通讯密钥因子和第二通讯密钥因子进行异或运算,得到通讯密钥。由于通讯密钥是分别在终端100和服务器200生成的,而且该通讯密钥在通讯过程当中没有在网络中进行传输,避免了被窃取的风险,安全性较好,而且在终端100和服务器200各自生成通讯密钥以后,就能够利用该通讯密钥对数据进行加密传输,实现数据交互,提高了数据交互的安全性。
上述生成通讯密钥的方法,实现由终端和服务器双方共同生成通讯密钥的效果,而通讯密钥无需在通讯过程中传输,提高了生成通讯密钥的安全性,而且基于该通讯密钥进行数据交互,也提高了数据交互的安全性。
在一个实施例中,终端100和服务器200可以在生成通讯密钥以后,分别对该通讯密钥进行验证,以确保终端100和服务器200各自生成的通讯密钥是相同的。
对于终端100,可以采用如下方式对通讯密钥进行验证:
对通讯密钥进行摘要运算,得到第二密钥摘要;将第二密钥摘要发送至终端,用于触发终端根据第二密钥摘要和第一密钥摘要验证通讯密钥;第一密钥摘要为终端对通讯密钥进行摘要运算得到的消息摘要。
其中,服务器200在生成通讯密钥以后,可以采用如SM3等密码学算法对通讯密钥进行摘要运算得到第二密钥摘要,服务器200可以将该第二密钥摘要发送给终端100,终端100接收第二密钥摘要,为了判断终端100生成的通讯密钥与服务器200生成的通讯密钥是否相同,终端100采用同样的方式对其生成的通讯密钥进行摘要运算得到第一密钥摘要,将该第一密钥摘要与第二密钥摘要进行对比,如果第一密钥摘要与第二密钥摘要相同,则判断终端100生成的通讯密钥与服务器200生成的通讯密钥是相同的,可以用于加密数据,与服务器200进行数据交互。
而对于服务器200,可以采用如下方式对通讯密钥进行验证:
接收终端发送的第一密钥摘要;对通讯密钥进行摘要运算得到第二密钥摘要;根据第一密钥摘要和第二密钥摘要验证通讯密钥。
其中,终端100在生成通讯密钥以后,可以采用如SM3等密码学算法对通讯密钥进行摘要运算得到第一密钥摘要,然后终端100将该第一密钥摘要发送给服务器200,服务器200可以采用同样的方式对其生成的通讯密钥进行摘要运算得到第二密钥摘要,并将该第二密钥摘要与第一密钥摘要进行比对,如果第二密钥摘要与第一密钥摘要相同,则判断服务器200生成的通讯密钥与终端100生成的通讯密钥是相同的,可以用于加密数据,与终端100进行数据交互。
在一个实施例中,利用第二私钥解密第一加密数据得到第一通讯密钥因子的步骤可以包括:
利用第二私钥解密第一加密数据,得到第四随机数和第一通讯密钥因子;第一通讯密钥因子为终端利用第二公钥对第四随机数和第一通讯密钥因子进行加密得到的加密数据;第四随机数为终端接收的随机数;获取预先生成的第三随机数;根据第三随机数与第四随机数验证第一通讯密钥因子。
本实施例中,第四随机数为服务器200发送给终端100的随机数。其中,服务器200可以预先生成第三随机数作为服务器随机数,然后将该第三随机数发送到终端100,终端100可以将服务器200发送的随机数存储为第四随机数。
终端100可以将第四随机数和第一通讯密钥因子以二进制流的方式拼接起来,使用第二公钥进行加密,得到第一加密数据;其中,可以采用服务器200的公钥作为该第二公钥。而终端100在得到第一加密数据以后,可以将该第一加密数据发送给服务器200。
服务器200利用第二私钥解密该第一加密数据,得到第四随机数和第一通讯密钥因子,服务器200还获取其预先生成好的第三随机数,根据该第三随机数与第四随机数验证第一通讯密钥因子。其中,服务器200在解密得到第四随机数和第一通讯密钥因子以后,由于该第四随机数对应于服务器200预先生成的第三随机数,因此如果该第一通讯密钥因子是终端100传递给服务器200的,那么终端100加密的第四随机数应该是与服务器200预先生成的第三随机数是相同的,所以服务器200在解密得到第一通讯密钥因子和第四随机数以后,可以将第四随机数和第三随机数进行比对,根据比对结果确认该第一通讯密钥因子是否可靠,即该第一通讯密钥因子是否由终端100发送的,如果第四随机数与第三随机数相同,即可认为第一通讯密钥因子是可靠的,可以利用该第一通讯密钥因子来生成通讯密钥。
在一个实施例中,进一步的,还可以包括步骤:
利用预置的初始化密钥对第三随机数进行摘要运算得到第三随机数摘要;
将第三随机数和第三随机数摘要发送至终端,用于触发终端利用初始化密钥和第三随机数摘要验证第三随机数,获取第四随机数;第四随机数为通过验证的第三随机数;初始化密钥为终端在可信环境下从服务器接收的密钥。
本实施例中,第三随机数摘要是指服务器200利用初始化密钥对第三随机数进行摘要运算得到的消息摘要。在服务器200生成第三随机数以后,可以利用初始化密钥对该第三随机数进行摘要运算,将得到的消息摘要作为第三随机数摘要,其中,初始化密钥是预置于服务器200当中的密钥,服务器200在生成第三随机数和得到第三随机数摘要以后,可以通过网络将该第三随机数和第三随机数摘要一并发送给终端100,终端100接收该第三随机数和第三随机数摘要,终端100可以在可信环境中获取预置于服务器200当中的初始化密钥,并在接收到第三随机数和第三随机数摘要以后,以同样的方式利用初始化密钥对第三随机数进行摘要运算,将该摘要运算得到的消息摘要与第三随机数摘要进行比对,以确保第三随机数在网络传输过程中没有被篡改,如果第三随机数在网络传输过程中被篡改,那么在终端100利用初始化密钥计算该第三随机数的消息摘要时将会得到与第三随机数摘要不同的结果,如果第三随机数未被篡改,则验证终端100接收到的第三随机数是可靠的,认为该第三随机数通过了验证,终端100可以将该通过验证的第三随机数作为第四随机数进行存储,可以确保终端100接收到的随机数是可靠的、未被篡改的,提高通讯密钥生成的安全性。
在一个实施例中,还可以包括步骤:
接收终端发送的第一签名值;第一签名值为终端利用第一私钥对第四随机数进行签名得到的签名值;根据第三随机数和第一公钥对第一签名值进行验证。
本实施例中,终端100可以将该终端100的私钥作为第一私钥来对第四随机数进行签名得到第一签名值,然后终端100将该第一签名值发送至服务器200,使得服务器200在接收到第一签名值后,可以对该第一签名值进行验证。其中服务器200可以将终端100的公钥作为第一公钥,然后利用该第一公钥和第一签名值获取该第一签名值的签名原文,然后将该签名原文与第三随机数进行比对,若该签名原文与第三随机数相同则说明服务器200接收到的,终端100发送的第四随机数是可靠的,确保通讯安全。
在一个实施例中,进一步的,还可以包括步骤:
接收终端发送的第三密钥摘要;第三密钥摘要为终端对第四随机数和通讯密钥进行摘要运算得到的消息摘要;对第三随机数和通讯密钥进行摘要运算,得到第四密钥摘要;根据第四密钥摘要和第三密钥摘要验证通讯密钥。
本实施例中,终端可以在生成通讯密钥以后,将第四随机数和通讯密钥拼接起来进行摘要运算,得到第三密钥摘要;其中可以采用如SM3等密码学算法对拼接起来的第四随机数和通讯密钥拼进行摘要运算。
终端100可以在得到第三密钥摘要以后,将该第三密钥摘要发送给服务器200,服务器200基于该第三密钥摘要对其生成的通讯密钥进行验证。
具体的,服务器200可以将第三随机数和通讯密钥拼接起来进行摘要运算,得到第四密钥摘要,然后服务器200可以将第四密钥摘要与第三密钥摘要进行比对,若第四密钥摘要与第三密钥摘要相同,则说明终端100生成的通讯密钥与服务器200生成的通讯密钥是相同的,若否,则说明服务器200生成了与终端100不同的通讯密钥,此时需要终端100和服务器200重新生成通讯密钥,以确保终端100与服务器200能够使用相同的通讯密钥进行数据交互。
在一个实施例中,利用第一公钥加密第二通讯密钥因子得到第二加密数据的步骤可以包括:
获取第二随机数;第二随机数为终端发送的随机数;利用第一公钥加密第二随机数和第二通讯密钥因子,得到第二加密数据;将第二加密数据发送至终端的步骤,进一步用于触发终端利用第一私钥解密第二加密数据得到第二随机数和第二通讯密钥因子,获取第一随机数,根据第一随机数和第二随机数验证第二通讯密钥因子。
本实施例中,服务器200利用第一公钥加密第二随机数和第二通讯密钥因子得到第二加密数据,该第二随机数是服务器200从终端100接收的随机数。
具体的,终端100可以预先生成第一随机数作为终端随机数,然后终端100可以将第一随机数发送给服务器200,服务器200可以将接收的随机数作为第二随机数进行存储,然后在服务器200加密第二通讯密钥因子时,服务器200将第二随机数与第二通讯密钥因子进行拼接,使用终端100的公钥作为第一公钥进行加密,从而得到第二加密数据。
然后,服务器200将该第二加密数据发送给终端100,终端100可以在接收到服务器200发送的第二加密数据以后,利用其私钥作为第一私钥对第二加密数据进行解密,从而得到第二随机数和第二通讯密钥因子。终端100可以在解密得到第二随机数和第二通讯密钥因子后获取第一随机数,用于验证第二通讯密钥因子。其中,终端100可以将第一随机数和第二随机数进行比对,根据比对结果验证第二通讯密钥因子是否由服务器200发送,确保终端100接收的第二通讯密钥因子是可靠的。其中,由于第二随机数对应于终端100预先生成的第一随机数,因此如果该第二通讯密钥因子是服务器200传递给终端100的,那么服务器200加密的第二随机数应该是与终端100预先生成的第一随机数是相同的,所以终端100在解密得到第二通讯密钥因子和第二随机数以后,可以将第二随机数和第一随机数进行比对,根据比对结果确认该第二通讯密钥因子是否可靠,即该第二通讯密钥因子是否由服务器200发送的,如果第二随机数与第一随机数相同,即可认为第二通讯密钥因子是可靠的,可以利用该第二讯密钥因子来生成通讯密钥
在一个实施例中,获取第二随机数的步骤包括:
接收终端发送的第一随机数和第一随机数摘要;第一随机数摘要为终端利用初始化密钥对第一随机数进行摘要运算得到的消息摘要;初始化密钥为终端在可信环境下从服务器接收的密钥;利用预置的初始化密钥和第一随机数摘要验证第一随机数,获取第二随机数;第二随机数为通过验证的第一随机数。
本实施例中,终端100可以在将第一随机数发送给服务器200时,可以利用在可信环境中从服务器200获取的初始化密钥对该第一随机数进行摘要运算,将得到的消息摘要作为第一随机数摘要,然后将第一随机数和第一随机数摘要一起发送给服务器200。
服务器200在接收到第一随机数和第一随机数摘要以后,利用预置于该服务器200中的初始化密钥和接收的第一随机数摘要来验证第一随机数是否由终端100发送的。
具体的,服务器200可以采用同样的方式利用初始化密钥对第一随机数进行摘要运算,将得到的消息摘要与第一随机数摘要进行比对,根据比对结果判断该第一随机数在网络传输过程中是否被篡改,若得到的消息摘要与第一随机数摘要相同,则说明该第一随机数是可靠的,可以认为该第一随机数通过了验证,服务器200可以将通过验证的第一随机数作为第二随机数进行存储,确保服务器200接收到的随机数是可靠的、未被篡改的,提高通讯密钥生成的安全性
在一个实施例中,进一步的,还可以包括步骤:
对第二随机数和通讯密钥进行摘要运算,得到第六密钥摘要;将第六密钥摘要发送至终端,用于触发终端根据第五密钥摘要和第六密钥摘要验证通讯密钥;第五密钥摘要为终端对第一随机数和通讯密钥进行摘要运算得到的消息摘要。
本实施例中,服务器200可以对第二随机数和通讯密钥进行摘要运算得到第六密钥摘要,然后向服务器发送该第六密钥摘要。具体的,服务器200可以在生成通讯密钥以后,将第二随机数和通讯密钥拼接起来进行摘要运算,得到第六密钥摘要,该服务器200可以采用如SM3等密码学算法对拼接起来的第二随机数和通讯密钥进行摘要运算从而得到第六密钥摘要,然后服务器200可以将该第六密钥摘要发送给终端100,终端100接收该第六摘要密钥。
终端100在生成通讯密钥以后,可以将预先生成的第一随机数和通讯密钥拼接起来,通过如SM3等算法进行摘要运算获取第五密钥摘要。然后,终端100可以将第五密钥摘要和服务器200发送的第六摘要密钥进行比对,若第五密钥摘要与第六摘要密钥相同,则说明终端100生成的通讯密钥与服务器200生成的通讯密钥是相同的,若否,则说明终端100生成了与服务器200不同的通讯密钥,此时需要终端100和服务器200重新生成通讯密钥,以确保终端100与服务器200能够使用相同的通讯密钥进行数据交互。
在一个实施例中,进一步的,还可以包括步骤:
利用第二私钥对第二随机数进行签名,得到第二签名值;将第二签名值发送至终端,用于触发终端利用第二公钥和第一随机数验证第二签名值。
本实施例中,服务器200可以将其私钥作为第二私钥来对第二随机数进行签名,得到第二签名值,然后服务器200将第二签名值发送给终端100,终端100接收到第二签名值后,可以将服务器200的公钥作为第二公钥,利用该第二公钥和接收的第二签名值获取该第二签名值的签名原文,然后将该签名原文与终端预先生成的第一随机数进行比对,若该签名原文与第一随机数相同,则终端100接收的第二随机数是可靠的,确保该第二随机数是由服务器200发送的随机数,保证生成通讯密钥的安全。
在一个实施例中,进一步的,将第二签名值发送至终端的步骤可以包括:
利用预置的初始化密钥对第二签名值进行摘要运算得到签名摘要;将签名摘要和第二签名值发送至终端,用于触发终端利用初始化密钥和签名摘要验证第二签名值;初始化密钥为终端在可信环境下从服务器接收的密钥。
服务器200可以在将第二签名值发送给终端100时,还将签名摘要发送给终端100,以确保该第二签名值在网络传输过程中不被篡改,进一步提高安全性。
其中,签名摘要是指服务器200利用预置的初始化密钥对第二签名值进行摘要运算得到的消息摘要。服务器200可以在得到第二签名值以后,利用初始化密钥对第二签名值进行摘要运算从而得到签名摘要,然后将该签名摘要发送给终端100,终端100可以一并接收服务器200发送的第二签名值和签名摘要,基于该签名摘要判断第二签名值是否被篡改。终端100可以在可信环境下获取服务器预置的初始化密钥,然后可以以同样的方式利用初始化密钥对接收的第二签名值进行摘要运算得到消息摘要,并将该得到的消息摘要与服务器200发送的签名摘要进行比对,从而验证该第二签名值在网络传输过程中是否被篡改,若得到的消息摘要与签名摘要相同,则说明终端100接收的第二签名值是可靠的。
在一个实施例中,还可以包括步骤:
接收终端发送的第一公钥和第一公钥摘要;第一公钥摘要为终端利用初始化密钥对第一公钥进行摘要运算得到的消息摘要;初始化密钥为终端在可信环境下从服务器接收的密钥;利用预置的初始化密钥和第一公钥摘要验证第一公钥。
本实施例中,初始化密钥是预置于服务器200当中的密钥,而终端100在可信环境下从服务器200处接收该初始化密钥,因此,终端100将第一公钥发送给服务器200时,可以利用初始化密钥对该第一公钥进行摘要运算得到第一公钥摘要,而服务器200在接收到第一公钥摘要和第一公钥后,可以利用第一公钥摘要来验证该接收的第一公钥是否是由终端100发送的公钥,确保该公钥是由合法终端100发送的。其中,服务器200可以利用预先存储的初始化密钥以同样的方式对第一公钥进行摘要运算,得到相应的消息摘要,若该消息摘要与第一公钥摘要相同,则可以判断该第一公钥是由合法的终端100发送的,终端100可以将自身的公钥作为第一公钥发送给服务器200,服务器200验证该公钥后可以进行存储。
在一个实施例中,还可以包括步骤:
利用预置的初始化密钥对第二公钥进行摘要运算,得到第二公钥摘要;将第二公钥和第二公钥摘要发送至终端,用于触发终端利用初始化密钥和第二公钥摘要验证第二公钥;初始化密钥为终端在可信环境下从服务器接收的密钥。
本实施例中,初始化密钥是预先存储在服务器200当中的,而终端100可以在可信环境之下从服务器200处获取该初始化密钥。这样,在服务器200将第二公钥发送给终端100时,服务器200可以先利用预先存储的初始化密钥对该第二公钥进行摘要运算得到第二公钥摘要,然后服务器200将该第二公钥摘要发送给终端100,使得终端100在接收到第二公钥摘要和第二公钥后,可以基于该第二公钥摘要来验证接收的第二公钥,确保该公钥是由合法的服务器200发送的。具体的,终端100在接收到第二公钥摘要和第二公钥后,可以利用预先存储的初始化密钥以同样的方式对第二公钥进行摘要运算,得到消息摘要,若该消息摘要与第二公钥摘要相同,则可以判断该第二公钥是由合法的服务器200发送的,服务器200可以将自身的公钥作为第二公钥发送给终端100,终端100验证该公钥后可以进行存储。
在一个实施例中,还可以包括步骤:
在可信环境下,接收终端发送的第一公钥;利用第一公钥加密预置的初始化密钥,得到第四加密数据;将第四加密数据发送至终端,用于触发终端利用第一私钥解密第四加密数据,得到初始化密钥,将初始化密钥存储于安全模块内。
本实施例中,终端100可以在可信环境下将该终端100的公钥作为第一公钥发送给服务器200,该服务器200中预先存储有初始化密钥,然后服务器200利用接收的第一公钥来加密该初始化密钥,得到第四加密数据,然后将该第四加密数据发送给终端100,由于终端100持有与该第二公钥相配对的第一私钥,所以终端100可以利用第一私钥对第四加密数据进行解密,从而得到初始化密钥,这样,就在可信环境之下完成了初始化密钥从服务器200传输到终端100的过程,而且,通过公钥加密的方式还能在可信环境之下进一步确保初始化密钥不会泄露,终端100还可以将该初始化密钥存储在安全模块(安全芯片)当中,该安全模块可以为终端100提供安全的密钥和敏感信息存储、安全的密码运算等服务。
在一个实施例中,进一步的,还可以包括步骤:
向终端发送初始化指令,用于触发终端在将初始化密钥存储于安全模块之前,对安全模块进行格式化处理,在安全模块中生成第一公钥和第一私钥。
本实施例中,服务器200可以向终端100发送初始化指令,使得终端100在接收到该初始化指令后,根据该初始化指令对安全模块进行格式化,并在安全模块当中产生终端100的密钥对,可以包括第一公钥和第一私钥,该第一公钥和第一私钥可以对应为终端100的公钥和私钥。在终端100的初始化完成以后,还可以向服务器200返回初始化完成的确认信息。
在一个实施例中,提供了一种数据交互方法,参考图6,图6为一个实施例中数据交互方法的流程示意图,包括步骤:
步骤S501,获取目标数据;
步骤S502,利用通讯密钥加密目标数据得到加密通讯数据;
步骤S503,将加密通讯数据发送至接收端,用于指示接收端利用通讯密钥解密加密通讯数据,得到目标数据;其中,通讯密钥为根据如上任一项实施例所述的生成通讯密钥的方法生成通讯密钥。
本实施例主要是数据交互双方利用如上实施例所述的生成通讯密钥的方法生成通讯密钥,然后双方再基于该通讯密钥来进行数据交互。具体的,如图1所示的终端100和服务器200可以作为数据交互的双方,其中,如果由终端100向服务器200发送数据,则终端100作为发送端,服务器200作为接收端;而如果是服务器200向终端100发送数据,则服务器200作为发送端,终端100作为接收端。终端100和服务器200可以基于如上实施例所述的生成通讯密钥的方法来生成通讯密钥,再基于该通讯密钥来进行业务数据的交互。其中,终端100可以将业务数据作为目标数据传输给服务器200,终端100在生成通讯密钥以后,可以利用该通讯密钥加密业务数据从而得到加密通讯数据,然后将该加密通讯数据发送到服务器200,服务器200可以利用其生成的通讯密钥解密加密通讯数据得到业务数据。而服务器200发送业务数据给终端100的过程与终端100发送业务数据给服务器200的过程类似,不再赘述。这样,终端100即可基于通讯密钥完成与服务器200的数据交互,而业务数据在网络传输过程中不容易被泄露,因此本实施例的数据交互安全性高。
进一步的,在一个实施例中,还可以包括如下步骤:
利用通讯密钥对目标数据进行摘要运算,得到数据摘要;将数据摘要发送至接收端,用于触发接收端利用通讯密钥和目标数据对数据摘要进行验证。
本实施例主要是发送端在将目标数据发送给接收端时,还可以利用通讯密钥对目标数据进行摘要运算得到数据摘要,使得接收端可以基于通讯密钥对该数据摘要进行验证,保证目标数据真实、完整以及不被篡改,使得接收端可以根据目标数据完成相关业务操作,接收端还可以向发送端发送业务完成的确认信息。
如图7所示,图7为一个实施例中数据交互方法的时序图,该时序图可以包括发送端500和接收端600。首先,发送端使用通讯密钥SKey对业务数据进行SM4加密,得到EncData,发送端使用通讯密钥和目标数据计算HMac发送端将EncData和HMac发送到接收端,接收端使用通讯密钥SKey对EncData进行SM4解密,得到业务数据,接收端通讯密钥和业务数据,验证HMac,确保数据真实、完整以及不被篡改,接收端向发送端进行业务完成确认。
在一个实施例中,提供了一种生成通讯密钥的装置,参考图8,图8为一个实施例中生成通讯密钥的装置的结构框图,该生成通讯密钥的装置可以包括:
第一因子生成模块101,用于生成第一通讯密钥因子;
第一因子加密模块102,用于利用第二公钥加密所述第一通讯密钥因子得到第一加密数据;
第一数据发送模块103,用于将所述第一加密数据发送至服务器,用于触发所述服务器利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子,根据所述第一通讯密钥因子和第二通讯密钥因子生成通讯密钥;所述第二通讯密钥因子为所述服务器生成的通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;
数据获取模块104,用于获取第二加密数据;所述第二加密数据为所述服务器利用第一公钥加密所述第二通讯密钥因子得到的加密数据;
第一因子解密模块105,用于利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子;所述第一私钥为与所述第一公钥相匹配的私钥;
第一密钥生成模块106,用于根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥。
在一个实施例中,第一密钥生成模块106进一步用于:对第一通讯密钥因子和第二通讯密钥因子进行异或运算,得到通讯密钥。
在一个实施例中,还可以包括:
第一通讯密钥验证单元,用于接收所述服务器发送的第二密钥摘要;第二密钥摘要为服务器对通讯密钥进行摘要运算得到的消息摘要;对通讯密钥进行摘要运算得到第一密钥摘要;根据第一密钥摘要和第二密钥摘要验证通讯密钥。
在一个实施例中,还可以包括:
第二通讯密钥验证单元,用于对通讯密钥进行摘要运算得到第一密钥摘要;将第一密钥摘要发送至服务器,用于触发服务器根据第一密钥摘要和第二密钥摘要验证通讯密钥;第二密钥摘要为服务器对通讯密钥进行摘要运算得到的消息摘要。
在一个实施例中,第一因子加密模块102进一步用于:获取第四随机数;第四随机数为服务器发送的随机数;利用第二公钥对第四随机数和第一通讯密钥因子进行加密,得到第一加密数据;第一数据发送模块103,进一步用于触发服务器利用第二私钥解密第一加密数据,得到第四随机数和第一通讯密钥因子,获取第三随机数,根据第三随机数与第四随机数验证第一通讯密钥因子;第三随机数为服务器预先生成的随机数。
在一个实施例中,还可以包括:
第三通讯密钥验证单元,用于对第四随机数和通讯密钥进行摘要运算得到第三密钥摘要;将第三密钥摘要发送至服务器,用于触发服务器根据第四密钥摘要和第三密钥摘要验证通讯密钥;第四密钥摘要为服务器对第三随机数和通讯密钥进行摘要运算得到消息摘要。
在一个实施例中,第一因子解密模块105进一步用于:
利用第一私钥解密第二加密数据得到第二随机数和第二通讯密钥因子;第二加密数据为服务器利用第一公钥加密第二随机数和第二通讯密钥因子得到的加密数据;第二随机数为服务器接收的随机数;获取预先生成的第一随机数;根据第一随机数和第二随机数验证第二通讯密钥因子。
在一个实施例中,还可以包括:
第四通讯密钥验证单元,用于接收服务器发送的第六密钥摘要;第六密钥摘要为服务器对第二随机数和通讯密钥进行摘要运算得到的消息摘要;对第一随机数和通讯密钥进行摘要运算得到第五密钥摘要;根据第五密钥摘要和第六密钥摘要验证通讯密钥。
在一个实施例中,还可以包括:
第一公钥验证单元,用于利用初始化密钥对第一公钥进行摘要运算,得到第一公钥摘要;初始化密钥为可信环境下从服务器接收的密钥;初始化密钥预置于服务器中;将第一公钥和第一公钥摘要发送至服务器,触发服务器利用初始化密钥和第一公钥摘要验证第一公钥。
在一个实施例中,还可以包括:
第二公钥验证单元,用于接收服务器发送的第二公钥和第二公钥摘要;第二公钥摘要为服务器利用初始化密钥对第二公钥进行摘要运算得到的消息摘要;初始化密钥预置于服务器中;获取初始化密钥;初始化密钥为可信环境下从服务器接收的密钥;利用初始化密钥和第二公钥摘要验证第二公钥。
在一个实施例中,第一因子加密模块102进一步用于:
接收服务器发送的第三随机数和第三随机数摘要;第三随机数摘要为服务器利用初始化密钥对第三随机数进行摘要运算得到的消息摘要;初始化密钥预置于服务器中;获取初始化密钥;初始化密钥为可信环境下从服务器接收的密钥;利用初始化密钥和第三随机数摘要验证第三随机数,获取第四随机数;第四随机数为通过验证的第三随机数。
在一个实施例中,还可以包括:
第一随机数验证单元,用于利用初始化密钥对第一随机数进行摘要运算,得到第一随机数摘要;初始化密钥为可信环境下从服务器接收的密钥;初始化密钥预置于服务器中;将第一随机数和第一随机数摘要发送至服务器,触发服务器利用初始化密钥和第一随机数摘要验证第一随机数,获取第二随机数;第二随机数为通过验证的第一随机数。
在一个实施例中,还可以包括:
第一初始化密钥获取单元,用于在可信环境下,将第一公钥发送至服务器,用于触发服务器利用第一公钥加密预置的初始化密钥,得到第四加密数据;接收服务器发送的第四加密数据;利用第一私钥解密第四加密数据,得到初始化密钥,将初始化密钥存储于安全模块内。
在一个实施例中,还可以包括:
第一密钥生成单元,用于接收服务器发送初始化指令;根据初始化指令对安全模块进行格式化处理,在安全模块中生成第一公钥和第一私钥。
在一个实施例中,还提供了一种生成通讯密钥的装置,参考图9,图9为另一个实施例中生成通讯密钥的装置的结构框图,该生成通讯密钥的装置可以包括:
数据接收模块401,用于接收终端发送的第一加密数据;第一加密数据为终端利用第二公钥加密第一通讯密钥因子得到的加密数据;第一通讯密钥因子为终端生成的通讯密钥因子;
第二因子解密模块402,用于利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;
第二因子生成模块403,用于生成第二通讯密钥因子;
第二密钥生成模块404,用于根据第二通讯密钥因子和第一通讯密钥因子生成通讯密钥;
第二因子加密模块405,用于利用第一公钥加密第二通讯密钥因子得到第二加密数据;
第二数据发送模块406,用于将第二加密数据发送至终端,用于触发终端利用第一私钥解密第二加密数据得到第二通讯密钥因子,根据第二通讯密钥因子和第一通讯密钥因子生成通讯密钥;第一私钥为与第一公钥相匹配的私钥。
在一个实施例中,第二密钥生成模块404进一步用于:
对第一通讯密钥因子和第二通讯密钥因子进行异或运算,得到通讯密钥。
在一个实施例中,还可以包括:
第五通讯密钥验证单元,用于对通讯密钥进行摘要运算,得到第二密钥摘要;将第二密钥摘要发送至终端,用于触发终端根据第二密钥摘要和第一密钥摘要验证通讯密钥;第一密钥摘要为终端对通讯密钥进行摘要运算得到的消息摘要。
在一个实施例中,还可以包括:
第六通讯密钥验证单元,用于接收终端发送的第一密钥摘要;对通讯密钥进行摘要运算得到第二密钥摘要;根据第一密钥摘要和第二密钥摘要验证通讯密钥。
在一个实施例中,第二因子解密模块402进一步用于:
利用第二私钥解密第一加密数据,得到第四随机数和第一通讯密钥因子;第一通讯密钥因子为终端利用第二公钥对第四随机数和第一通讯密钥因子进行加密得到的加密数据;第四随机数为终端接收的随机数;取预先生成的第三随机数;根据第三随机数与第四随机数验证第一通讯密钥因子。
在一个实施例中,还可以包括:
第七通讯密钥验证单元,用于接收终端发送的第三密钥摘要;第三密钥摘要为终端对第四随机数和通讯密钥进行摘要运算得到的消息摘要;对第三随机数和通讯密钥进行摘要运算,得到第四密钥摘要;根据第四密钥摘要和第三密钥摘要验证通讯密钥。
在一个实施例中,第二因子加密模块405进一步用于:获取第二随机数;第二随机数为终端发送的随机数;利用第一公钥加密第二随机数和第二通讯密钥因子,得到第二加密数据;
第二数据发送模块406进一步用于:触发终端利用第一私钥解密第二加密数据得到第二随机数和第二通讯密钥因子,获取第一随机数,根据第一随机数和第二随机数验证第二通讯密钥因子。
在一个实施例中,还可以包括:
第八通讯密钥验证单元,用于对第二随机数和通讯密钥进行摘要运算,得到第六密钥摘要;将第六密钥摘要发送至终端,用于触发终端根据第五密钥摘要和第六密钥摘要验证通讯密钥;第五密钥摘要为终端对第一随机数和通讯密钥进行摘要运算得到的消息摘要。
第三公钥验证单元,接收终端发送的第一公钥和第一公钥摘要;第一公钥摘要为终端利用初始化密钥对第一公钥进行摘要运算得到的消息摘要;初始化密钥为终端在可信环境下从服务器接收的密钥;利用预置的初始化密钥和第一公钥摘要验证第一公钥。
在一个实施例中,还可以包括:
第四公钥验证单元,利用预置的初始化密钥对第二公钥进行摘要运算,得到第二公钥摘要;将第二公钥和第二公钥摘要发送至终端,用于触发终端利用初始化密钥和第二公钥摘要验证第二公钥;初始化密钥为终端在可信环境下从服务器接收的密钥。
在一个实施例中,还可以包括:
第二随机数验证单元,用于利用预置的初始化密钥对第三随机数进行摘要运算得到第三随机数摘要;将第三随机数和第三随机数摘要发送至终端,用于触发终端利用初始化密钥和第三随机数摘要验证第三随机数,获取第四随机数;第四随机数为通过验证的第三随机数;初始化密钥为终端在可信环境下从服务器接收的密钥。
在一个实施例中,第二因子加密模块405进一步用于:
接收终端发送的第一随机数和第一随机数摘要;第一随机数摘要为终端利用初始化密钥对第一随机数进行摘要运算得到的消息摘要;初始化密钥为终端在可信环境下从服务器接收的密钥;利用预置的初始化密钥和第一随机数摘要验证第一随机数,获取第二随机数;第二随机数为通过验证的第一随机数。
在一个实施例中,还可以包括:
第二初始化密钥获取单元,用于在可信环境下,接收终端发送的第一公钥;利用第一公钥加密预置的初始化密钥,得到第四加密数据;将第四加密数据发送至终端,用于触发终端利用第一私钥解密第四加密数据,得到初始化密钥,将初始化密钥存储于安全模块内。
在一个实施例中,还可以包括:
第二密钥生成单元,用于向终端发送初始化指令,用于触发终端在将初始化密钥存储于安全模块之前,对安全模块进行格式化处理,在安全模块中生成第一公钥和第一私钥。
本发明的生成通讯密钥的装置与本发明的生成通讯密钥的方法一一对应,关于生成通讯密钥的装置的具体限定可以参见上文中对于生成通讯密钥的方法的限定,在上述生成通讯密钥的方法的实施例阐述的技术特征及其有益效果均适用于生成通讯密钥的装置的实施例中,在此不再赘述。上述生成通讯密钥的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种数据交互装置,参考图10,图10为一个实施例中数据交互装置的结构框图,该种数据交互装置可以包括:
获取模块501,用于获取目标数据;
加密模块502,用于利用通讯密钥加密目标数据得到加密通讯数据;
发送模块503,用于将加密通讯数据发送至接收端,用于指示接收端利用通讯密钥解密加密通讯数据,得到目标数据;其中,通讯密钥为根据如上任一项实施例所述的生成通讯密钥的方法生成通讯密钥。
本发明的数据交互装置与本发明的数据交互方法一一对应,关于数据交互装置的具体限定可以参见上文中对于数据交互方法的限定,在上述数据交互方法的实施例阐述的技术特征及其有益效果均适用于数据交互装置的实施例中,在此不再赘述。上述数据交互装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种物联网通讯系统,参考图11,图11为一个实施例中物联网通讯系统的结构示意图,该物联网通讯系统可以包括:物联网终端400和服务器200;
物联网终端400,用于生成第一通讯密钥因子,利用第二公钥加密第一通讯密钥因子得到第一加密数据,将第一加密数据发送至服务器;
服务器200,用于接收第一加密数据,利用第二私钥解密第一加密数据得到第一通讯密钥因子,生成第二通讯密钥因子,根据第二通讯密钥因子和第一通讯密钥因子生成通讯密钥,利用第一公钥加密第二通讯密钥因子得到第二加密数据,将第二加密数据发送至物联网终端;其中,第二私钥为与第二公钥相匹配的私钥;
物联网终端400,还可以用于接收第二加密数据,利用第一私钥解密第二加密数据得到第二通讯密钥因子,根据第二通讯密钥因子和第一通讯密钥因子生成通讯密钥;其中,第一私钥为与第一公钥相匹配的私钥;
物联网终端400和服务器200,还可以用于利用通讯密钥进行数据交互。
本实施例中,物联网终端400的数量可以包括多个,各个物联网终端可以通过物联网连接到服务器200,在物联网终端400与服务器200进行数据交互之前,可以采用如上任一项实施例所述的生成通讯密钥的方法,生成用于物联网终端400与服务器200进行通讯的通讯密钥,使得物联网终端400与服务器200在进行数据通讯之前确保双方身份的真实性,建立起安全通讯通道,保障通讯过程中各指令、数据真实、完整、不被篡改,安全性较高,而且在终端设备存在如运算能力较低、存储容量少、内存(缓存)少,服务器与终端每次交互的数据长度限制(如每次只能传输256字节数据)等问题的条件下,仍能满足通讯需求。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示,图12为一个实施例中计算机设备的内部结构图。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库可以用于存储本发明各实施例中涉及的如通讯密钥因子、公钥、私钥、加密数据、通讯密钥等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种生成通讯密钥的方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如13所示,图13为另一个实施例中计算机设备的内部结构图。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种生成通讯密钥的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图12和图13中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上任一项实施例所述的生成通讯密钥的方法、数据交互方法。
上述计算机设备,通过所述处理器上运行的计算机程序,能够实现由终端和服务器双方共同生成通讯密钥的效果,而通讯密钥无需在通讯过程中传输,提高了生成通讯密钥的安全性,而且基于该通讯密钥进行数据交互,也提高了数据交互的安全性。
本领域普通技术人员可以理解实现如上任一项实施例所述的生成通讯密钥的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
据此,在一个实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上任一项实施例所述的生成通讯密钥的方法、数据交互方法。
上述计算机可读存储介质,通过其存储的计算机程序,能够实现由终端和服务器双方共同生成通讯密钥的效果,而通讯密钥无需在通讯过程中传输,提高了生成通讯密钥的安全性,而且基于该通讯密钥进行数据交互,也提高了数据交互的安全性。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (31)
1.一种生成通讯密钥的方法,其特征在于,包括步骤:
生成第一通讯密钥因子;
利用第二公钥加密所述第一通讯密钥因子得到第一加密数据;
将所述第一加密数据发送至服务器,用于触发所述服务器利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子,根据所述第一通讯密钥因子和第二通讯密钥因子生成通讯密钥;所述第二通讯密钥因子为所述服务器生成的通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;
获取第二加密数据;所述第二加密数据为所述服务器利用第一公钥加密所述第二通讯密钥因子得到的加密数据;
利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子;所述第一私钥为与所述第一公钥相匹配的私钥;
根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥的步骤包括:
对所述第一通讯密钥因子和所述第二通讯密钥因子进行异或运算,得到所述通讯密钥。
3.根据权利要求1所述的方法,其特征在于,
还包括步骤:
接收所述服务器发送的第二密钥摘要;所述第二密钥摘要为所述服务器对所述通讯密钥进行摘要运算得到的消息摘要;
对所述通讯密钥进行摘要运算得到第一密钥摘要;
根据所述第一密钥摘要和第二密钥摘要验证所述通讯密钥;
和/或
还包括步骤:
对所述通讯密钥进行摘要运算得到第一密钥摘要;
将所述第一密钥摘要发送至所述服务器,用于触发所述服务器根据所述第一密钥摘要和第二密钥摘要验证所述通讯密钥;所述第二密钥摘要为所述服务器对所述通讯密钥进行摘要运算得到的消息摘要。
4.根据权利要求1所述的方法,其特征在于,所述利用第二公钥加密所述第一通讯密钥因子得到第一加密数据的步骤包括:
获取第四随机数;所述第四随机数为所述服务器发送的随机数;
利用所述第二公钥对所述第四随机数和第一通讯密钥因子进行加密,得到所述第一加密数据;
所述将所述第一加密数据发送至服务器的步骤,进一步用于触发所述服务器利用所述第二私钥解密所述第一加密数据,得到所述第四随机数和第一通讯密钥因子,获取第三随机数,根据所述第三随机数与所述第四随机数验证所述第一通讯密钥因子;所述第三随机数为所述服务器预先生成的随机数。
5.根据权利要求4所述的方法,其特征在于,还包括步骤:
对所述第四随机数和通讯密钥进行摘要运算得到第三密钥摘要;
将所述第三密钥摘要发送至所述服务器,用于触发所述服务器根据第四密钥摘要和所述第三密钥摘要验证所述通讯密钥;所述第四密钥摘要为所述服务器对所述第三随机数和通讯密钥进行摘要运算得到消息摘要。
6.根据权利要求1所述的方法,其特征在于,所述利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子的步骤包括:
利用所述第一私钥解密所述第二加密数据得到第二随机数和第二通讯密钥因子;所述第二加密数据为所述服务器利用所述第一公钥加密所述第二随机数和所述第二通讯密钥因子得到的加密数据;所述第二随机数为所述服务器接收的随机数;
获取预先生成的第一随机数;
根据所述第一随机数和第二随机数验证所述第二通讯密钥因子。
7.根据权利要求6所述的方法,其特征在于,还包括步骤:
接收所述服务器发送的第六密钥摘要;所述第六密钥摘要为所述服务器对所述第二随机数和通讯密钥进行摘要运算得到的消息摘要;
对所述第一随机数和通讯密钥进行摘要运算得到第五密钥摘要;
根据所述第五密钥摘要和所述第六密钥摘要验证所述通讯密钥。
8.根据权利要求1所述的方法,其特征在于,还包括步骤:
利用初始化密钥对所述第一公钥进行摘要运算,得到第一公钥摘要;所述初始化密钥为可信环境下从所述服务器接收的密钥;所述初始化密钥预置于所述服务器中;
将所述第一公钥和第一公钥摘要发送至所述服务器,触发所述服务器利用所述初始化密钥和第一公钥摘要验证所述第一公钥。
9.根据权利要求1所述的方法,其特征在于,还包括步骤:
接收所述服务器发送的所述第二公钥和第二公钥摘要;所述第二公钥摘要为所述服务器利用初始化密钥对所述第二公钥进行摘要运算得到的消息摘要;所述初始化密钥预置于所述服务器中;
获取所述初始化密钥;所述初始化密钥为可信环境下从所述服务器接收的密钥;
利用所述初始化密钥和第二公钥摘要验证所述第二公钥。
10.根据权利要求4所述的方法,其特征在于,所述获取第四随机数的步骤包括:
接收所述服务器发送的所述第三随机数和第三随机数摘要;所述第三随机数摘要为所述服务器利用初始化密钥对所述第三随机数进行摘要运算得到的消息摘要;所述初始化密钥预置于所述服务器中;
获取所述初始化密钥;所述初始化密钥为可信环境下从所述服务器接收的密钥;
利用所述初始化密钥和第三随机数摘要验证所述第三随机数,获取所述第四随机数;所述第四随机数为通过验证的所述第三随机数。
11.根据权利要求6所述的方法,其特征在于,还包括步骤:
利用初始化密钥对所述第一随机数进行摘要运算,得到第一随机数摘要;所述初始化密钥为可信环境下从所述服务器接收的密钥;所述初始化密钥预置于所述服务器中;
将所述第一随机数和第一随机数摘要发送至所述服务器,触发所述服务器利用所述初始化密钥和第一随机数摘要验证所述第一随机数,获取所述第二随机数;所述第二随机数为通过验证的第一随机数。
12.根据权利要求8至11任一项所述的方法,其特征在于,还包括步骤:
在可信环境下,将所述第一公钥发送至服务器,用于触发所述服务器利用所述第一公钥加密预置的初始化密钥,得到第四加密数据;
接收服务器发送的所述第四加密数据;
利用所述第一私钥解密所述第四加密数据,得到所述初始化密钥,将所述初始化密钥存储于安全模块内。
13.根据权利要求12所述的方法,其特征在于,在所述将所述初始化密钥存储于安全模块内的步骤之前,还包括:
接收所述服务器发送初始化指令;
根据所述初始化指令对所述安全模块进行格式化处理,在所述安全模块中生成所述第一公钥和第一私钥。
14.一种生成通讯密钥的方法,其特征在于,包括步骤:
接收终端发送的第一加密数据;所述第一加密数据为所述终端利用第二公钥加密第一通讯密钥因子得到的加密数据;所述第一通讯密钥因子为所述终端生成的通讯密钥因子;
利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;
生成第二通讯密钥因子;
根据所述第二通讯密钥因子和所述第一通讯密钥因子生成通讯密钥;
利用第一公钥加密所述第二通讯密钥因子得到第二加密数据;
将所述第二加密数据发送至所述终端,用于触发所述终端利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子,根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥;所述第一私钥为与所述第一公钥相匹配的私钥。
15.根据权利要求14所述的方法,其特征在于,所述根据所述第二通讯密钥因子和所述第一通讯密钥因子生成通讯密钥的步骤包括:
对所述第一通讯密钥因子和所述第二通讯密钥因子进行异或运算,得到所述通讯密钥。
16.根据权利要求14所述的方法,其特征在于,
还包括步骤:
对所述通讯密钥进行摘要运算,得到第二密钥摘要;
将所述第二密钥摘要发送至所述终端,用于触发所述终端根据所述第二密钥摘要和第一密钥摘要验证所述通讯密钥;所述第一密钥摘要为所述终端对所述通讯密钥进行摘要运算得到的消息摘要;
和/或
还包括步骤:
接收所述终端发送的第一密钥摘要;
对所述通讯密钥进行摘要运算得到第二密钥摘要;
根据所述第一密钥摘要和第二密钥摘要验证所述通讯密钥。
17.根据权利要求14所述的方法,其特征在于,所述利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子的步骤包括:
利用所述第二私钥解密所述第一加密数据,得到所述第四随机数和第一通讯密钥因子;所述第一通讯密钥因子为所述终端利用所述第二公钥对第四随机数和所述第一通讯密钥因子进行加密得到的加密数据;所述第四随机数为所述终端接收的随机数;
获取预先生成的第三随机数;
根据所述第三随机数与所述第四随机数验证所述第一通讯密钥因子。
18.根据权利要求17所述的方法,其特征在于,还包括步骤:
接收所述终端发送的第三密钥摘要;所述第三密钥摘要为所述终端对所述第四随机数和通讯密钥进行摘要运算得到的消息摘要;
对所述第三随机数和通讯密钥进行摘要运算,得到第四密钥摘要;
根据所述第四密钥摘要和所述第三密钥摘要验证所述通讯密钥。
19.根据权利要求14所述的方法,其特征在于,所述利用第一公钥加密所述第二通讯密钥因子得到第二加密数据的步骤包括:
获取第二随机数;所述第二随机数为所述终端发送的随机数;
利用所述第一公钥加密所述第二随机数和第二通讯密钥因子,得到所述第二加密数据;
所述将所述第二加密数据发送至所述终端的步骤,进一步用于触发所述终端利用所述第一私钥解密所述第二加密数据得到所述第二随机数和第二通讯密钥因子,获取第一随机数,根据所述第一随机数和第二随机数验证所述第二通讯密钥因子。
20.根据权利要求19所述的方法,其特征在于,还包括步骤:
对所述第二随机数和通讯密钥进行摘要运算,得到第六密钥摘要;
将所述第六密钥摘要发送至所述终端,用于触发所述终端根据第五密钥摘要和所述第六密钥摘要验证所述通讯密钥;所述第五密钥摘要为所述终端对所述第一随机数和通讯密钥进行摘要运算得到的消息摘要。
21.根据权利要求14所述的方法,其特征在于,还包括步骤:
接收所述终端发送的所述第一公钥和第一公钥摘要;所述第一公钥摘要为所述终端利用初始化密钥对所述第一公钥进行摘要运算得到的消息摘要;所述初始化密钥为所述终端在可信环境下从服务器接收的密钥;
利用预置的初始化密钥和所述第一公钥摘要验证所述第一公钥。
22.根据权利要求14所述的方法,其特征在于,还包括步骤:
利用预置的初始化密钥对所述第二公钥进行摘要运算,得到第二公钥摘要;
将所述第二公钥和第二公钥摘要发送至所述终端,用于触发所述终端利用所述初始化密钥和第二公钥摘要验证所述第二公钥;所述初始化密钥为所述终端在可信环境下从服务器接收的密钥。
23.根据权利要求17所述的方法,其特征在于,还包括步骤:
利用预置的初始化密钥对所述第三随机数进行摘要运算得到第三随机数摘要;
将所述第三随机数和第三随机数摘要发送至所述终端,用于触发所述终端利用所述初始化密钥和第三随机数摘要验证所述第三随机数,获取所述第四随机数;所述第四随机数为通过验证的所述第三随机数;所述初始化密钥为所述终端在可信环境下从服务器接收的密钥。
24.根据权利要求19所述的方法,其特征在于,所述获取第二随机数的步骤包括:
接收所述终端发送的所述第一随机数和第一随机数摘要;所述第一随机数摘要为所述终端利用初始化密钥对所述第一随机数进行摘要运算得到的消息摘要;所述初始化密钥为所述终端在可信环境下从服务器接收的密钥;
利用预置的所述初始化密钥和所述第一随机数摘要验证所述第一随机数,获取所述第二随机数;所述第二随机数为通过验证的第一随机数。
25.根据权利要求21至24任一项所述的方法,其特征在于,还包括步骤:
在可信环境下,接收所述终端发送的所述第一公钥;
利用所述第一公钥加密所述预置的初始化密钥,得到第四加密数据;
将所述第四加密数据发送至所述终端,用于触发所述终端利用所述第一私钥解密所述第四加密数据,得到所述初始化密钥,将所述初始化密钥存储于安全模块内。
26.根据权利要求25所述的方法,其特征在于,还包括步骤:
向所述终端发送初始化指令,用于触发所述终端在将所述初始化密钥存储于所述安全模块之前,对所述安全模块进行格式化处理,在所述安全模块中生成所述第一公钥和第一私钥。
27.一种生成通讯密钥的装置,其特征在于,包括:
第一因子生成模块,用于生成第一通讯密钥因子;
第一因子加密模块,用于利用第二公钥加密所述第一通讯密钥因子得到第一加密数据;
第一数据发送模块,用于将所述第一加密数据发送至服务器,用于触发所述服务器利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子,根据所述第一通讯密钥因子和第二通讯密钥因子生成通讯密钥;所述第二通讯密钥因子为所述服务器生成的通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;
数据获取模块,用于获取第二加密数据;所述第二加密数据为所述服务器利用第一公钥加密所述第二通讯密钥因子得到的加密数据;
第一因子解密模块,用于利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子;所述第一私钥为与所述第一公钥相匹配的私钥;
第一密钥生成模块,用于根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥。
28.一种生成通讯密钥的装置,其特征在于,包括:
数据接收模块,用于接收终端发送的第一加密数据;所述第一加密数据为所述终端利用第二公钥加密第一通讯密钥因子得到的加密数据;所述第一通讯密钥因子为所述终端生成的通讯密钥因子;
第二因子解密模块,用于利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子;所述第二私钥为与所述第二公钥相匹配的私钥;
第二因子生成模块,用于生成第二通讯密钥因子;
第二密钥生成模块,用于根据所述第二通讯密钥因子和所述第一通讯密钥因子生成通讯密钥;
第二因子加密模块,用于利用第一公钥加密所述第二通讯密钥因子得到第二加密数据;
第二数据发送模块,用于将所述第二加密数据发送至所述终端,用于触发所述终端利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子,根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥;所述第一私钥为与所述第一公钥相匹配的私钥。
29.一种物联网通讯系统,其特征在于,包括:物联网终端和服务器;
所述物联网终端,用于生成第一通讯密钥因子,利用第二公钥加密所述第一通讯密钥因子得到第一加密数据,将所述第一加密数据发送至所述服务器;
所述服务器,用于接收所述第一加密数据,利用第二私钥解密所述第一加密数据得到所述第一通讯密钥因子,生成第二通讯密钥因子,根据所述第二通讯密钥因子和所述第一通讯密钥因子生成通讯密钥,利用第一公钥加密所述第二通讯密钥因子得到第二加密数据,将所述第二加密数据发送至所述物联网终端;其中,所述第二私钥为与所述第二公钥相匹配的私钥;
所述物联网终端,还用于接收所述第二加密数据,利用第一私钥解密所述第二加密数据得到所述第二通讯密钥因子,根据所述第二通讯密钥因子和所述第一通讯密钥因子生成所述通讯密钥;其中,所述第一私钥为与所述第一公钥相匹配的私钥。
30.一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至26任一项所述的方法的步骤。
31.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至26任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910141290.4A CN109861817A (zh) | 2019-02-26 | 2019-02-26 | 生成密钥的方法、装置、系统、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910141290.4A CN109861817A (zh) | 2019-02-26 | 2019-02-26 | 生成密钥的方法、装置、系统、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109861817A true CN109861817A (zh) | 2019-06-07 |
Family
ID=66899025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910141290.4A Pending CN109861817A (zh) | 2019-02-26 | 2019-02-26 | 生成密钥的方法、装置、系统、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109861817A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110650160A (zh) * | 2019-10-29 | 2020-01-03 | 北京天威诚信电子商务服务有限公司 | 一种身份认证方法及系统 |
CN110890968A (zh) * | 2019-10-24 | 2020-03-17 | 成都卫士通信息产业股份有限公司 | 一种即时通信方法、装置、设备及计算机可读存储介质 |
CN111178882A (zh) * | 2019-12-13 | 2020-05-19 | 杜晓楠 | 一种数字资产安全托管系统和方法 |
CN112118211A (zh) * | 2019-06-20 | 2020-12-22 | 北京京东尚科信息技术有限公司 | 设备通信方法、装置、系统、介质及电子设备 |
CN112491879A (zh) * | 2020-11-26 | 2021-03-12 | 中电金融设备系统(深圳)有限公司 | 固件远程更新的方法、计算机设备及存储介质 |
CN112800492A (zh) * | 2021-02-05 | 2021-05-14 | 联想(北京)有限公司 | 一种解密磁盘数据的控制方法及装置 |
CN112989370A (zh) * | 2021-02-09 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 密钥灌装方法、系统、装置、设备以及存储介质 |
CN113242212A (zh) * | 2021-04-15 | 2021-08-10 | 杭州链城数字科技有限公司 | 网络节点双向通信认证方法及装置、电子设备、存储介质 |
CN113722699A (zh) * | 2021-07-14 | 2021-11-30 | 江铃汽车股份有限公司 | 身份认证方法、装置、可读存储介质及车辆 |
CN114978554A (zh) * | 2022-07-29 | 2022-08-30 | 广州匠芯创科技有限公司 | 一种软件授权认证系统及方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701792A (zh) * | 2013-12-20 | 2014-04-02 | 中电长城网际系统应用有限公司 | 可信授权方法、系统、可信安全管理中心和服务器 |
CN104955031A (zh) * | 2015-04-27 | 2015-09-30 | 小米科技有限责任公司 | 信息传输方法及装置 |
CN106130958A (zh) * | 2016-06-08 | 2016-11-16 | 美的集团股份有限公司 | 家电设备与终端的通讯系统及方法、家电设备、终端 |
CN106603485A (zh) * | 2016-10-31 | 2017-04-26 | 美的智慧家居科技有限公司 | 密钥协商方法及装置 |
US20170339118A1 (en) * | 2016-05-17 | 2017-11-23 | Electronics And Telecommunications Research Institute | Method and apparatus for authenticated key exchange using password and identity-based signature |
CN107896147A (zh) * | 2017-12-07 | 2018-04-10 | 福建联迪商用设备有限公司 | 一种基于国密算法协商临时会话密钥的方法及其系统 |
CN108650220A (zh) * | 2018-03-27 | 2018-10-12 | 北京安御道合科技有限公司 | 发放、获取移动终端证书及汽车端芯片证书的方法、设备 |
CN109005028A (zh) * | 2018-11-02 | 2018-12-14 | 美的集团股份有限公司 | 密钥协商方法、云服务器、设备、存储介质以及系统 |
CN109005201A (zh) * | 2018-11-02 | 2018-12-14 | 美的集团股份有限公司 | 生产数据的传输方法、服务器、设备以及存储介质 |
CN109039628A (zh) * | 2018-11-02 | 2018-12-18 | 美的集团股份有限公司 | 密钥协商方法、云服务器、设备、存储介质以及系统 |
CN109040149A (zh) * | 2018-11-02 | 2018-12-18 | 美的集团股份有限公司 | 密钥协商方法、云服务器、设备、存储介质以及系统 |
CN109286599A (zh) * | 2017-07-20 | 2019-01-29 | 北京展讯高科通信技术有限公司 | 数据安全防护方法、智能设备、服务器及可读存储介质 |
-
2019
- 2019-02-26 CN CN201910141290.4A patent/CN109861817A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701792A (zh) * | 2013-12-20 | 2014-04-02 | 中电长城网际系统应用有限公司 | 可信授权方法、系统、可信安全管理中心和服务器 |
CN104955031A (zh) * | 2015-04-27 | 2015-09-30 | 小米科技有限责任公司 | 信息传输方法及装置 |
US20170339118A1 (en) * | 2016-05-17 | 2017-11-23 | Electronics And Telecommunications Research Institute | Method and apparatus for authenticated key exchange using password and identity-based signature |
CN106130958A (zh) * | 2016-06-08 | 2016-11-16 | 美的集团股份有限公司 | 家电设备与终端的通讯系统及方法、家电设备、终端 |
CN106603485A (zh) * | 2016-10-31 | 2017-04-26 | 美的智慧家居科技有限公司 | 密钥协商方法及装置 |
CN109286599A (zh) * | 2017-07-20 | 2019-01-29 | 北京展讯高科通信技术有限公司 | 数据安全防护方法、智能设备、服务器及可读存储介质 |
CN107896147A (zh) * | 2017-12-07 | 2018-04-10 | 福建联迪商用设备有限公司 | 一种基于国密算法协商临时会话密钥的方法及其系统 |
CN108650220A (zh) * | 2018-03-27 | 2018-10-12 | 北京安御道合科技有限公司 | 发放、获取移动终端证书及汽车端芯片证书的方法、设备 |
CN109005028A (zh) * | 2018-11-02 | 2018-12-14 | 美的集团股份有限公司 | 密钥协商方法、云服务器、设备、存储介质以及系统 |
CN109005201A (zh) * | 2018-11-02 | 2018-12-14 | 美的集团股份有限公司 | 生产数据的传输方法、服务器、设备以及存储介质 |
CN109039628A (zh) * | 2018-11-02 | 2018-12-18 | 美的集团股份有限公司 | 密钥协商方法、云服务器、设备、存储介质以及系统 |
CN109040149A (zh) * | 2018-11-02 | 2018-12-18 | 美的集团股份有限公司 | 密钥协商方法、云服务器、设备、存储介质以及系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112118211A (zh) * | 2019-06-20 | 2020-12-22 | 北京京东尚科信息技术有限公司 | 设备通信方法、装置、系统、介质及电子设备 |
CN110890968A (zh) * | 2019-10-24 | 2020-03-17 | 成都卫士通信息产业股份有限公司 | 一种即时通信方法、装置、设备及计算机可读存储介质 |
CN110650160A (zh) * | 2019-10-29 | 2020-01-03 | 北京天威诚信电子商务服务有限公司 | 一种身份认证方法及系统 |
CN111178882B (zh) * | 2019-12-13 | 2023-03-31 | 杜晓楠 | 一种数字资产安全托管系统和方法 |
CN111178882A (zh) * | 2019-12-13 | 2020-05-19 | 杜晓楠 | 一种数字资产安全托管系统和方法 |
CN112491879A (zh) * | 2020-11-26 | 2021-03-12 | 中电金融设备系统(深圳)有限公司 | 固件远程更新的方法、计算机设备及存储介质 |
CN112800492A (zh) * | 2021-02-05 | 2021-05-14 | 联想(北京)有限公司 | 一种解密磁盘数据的控制方法及装置 |
CN112989370A (zh) * | 2021-02-09 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 密钥灌装方法、系统、装置、设备以及存储介质 |
CN112989370B (zh) * | 2021-02-09 | 2023-06-30 | 腾讯科技(深圳)有限公司 | 密钥灌装方法、系统、装置、设备以及存储介质 |
CN113242212A (zh) * | 2021-04-15 | 2021-08-10 | 杭州链城数字科技有限公司 | 网络节点双向通信认证方法及装置、电子设备、存储介质 |
CN113722699A (zh) * | 2021-07-14 | 2021-11-30 | 江铃汽车股份有限公司 | 身份认证方法、装置、可读存储介质及车辆 |
CN114978554A (zh) * | 2022-07-29 | 2022-08-30 | 广州匠芯创科技有限公司 | 一种软件授权认证系统及方法 |
CN114978554B (zh) * | 2022-07-29 | 2022-10-18 | 广州匠芯创科技有限公司 | 一种软件授权认证系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109861817A (zh) | 生成密钥的方法、装置、系统、设备和介质 | |
US9760721B2 (en) | Secure transaction method from a non-secure terminal | |
CN110061845A (zh) | 区块链数据加密方法、装置、计算机设备及存储介质 | |
CN101291224B (zh) | 在通信系统中处理数据的方法和系统 | |
EP3025226B1 (en) | Media client device authentication using hardware root of trust | |
CN110460439A (zh) | 信息传输方法、装置、客户端、服务端及存储介质 | |
CN1985466B (zh) | 使用分发cd按签署组向设备传递直接证据私钥的方法 | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN108322451A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN108475237A (zh) | 存储器操作加密 | |
US8495383B2 (en) | Method for the secure storing of program state data in an electronic device | |
CN108881262A (zh) | 基于区块链的文件流转方法、装置和系统 | |
CN109429222A (zh) | 一种对无线网络设备升级程序及通讯数据加密的方法 | |
CN106878245A (zh) | 图形码信息提供、获取方法、装置及终端 | |
CN110535641A (zh) | 密钥管理方法和装置、计算机设备和存储介质 | |
CN109104724A (zh) | 一种用于设备升级的数据加密方法和装置 | |
CN109347625A (zh) | 密码运算、创建工作密钥的方法、密码服务平台及设备 | |
JP4819286B2 (ja) | 公衆の無線遠隔通信ネットワークにおける物理的なユニットの暗号的に検査可能な識別方法 | |
CN110135175A (zh) | 基于区块链的信息处理、获取方法、装置、设备及介质 | |
CN106295373B (zh) | 一种基于m-phy接口实现的数据传输加密装置 | |
CN108199847A (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN107104795A (zh) | Rsa密钥对和证书的注入方法、架构及系统 | |
CN109978543A (zh) | 一种合同签署的方法、装置、电子设备及存储介质 | |
KR20190112959A (ko) | 암호화 데이터를 이용하는 기계학습 모델 운영방법 및 기계학습 모델 기반 장치 | |
CN106372516B (zh) | 一种基于M-PHY接口实现的加密Hub装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190607 |