掌桥专利:专业的专利平台
掌桥专利
首页

轻量级设备通信密钥协商方法、装置、设备及系统

文献发布时间:2023-06-19 19:38:38


轻量级设备通信密钥协商方法、装置、设备及系统

技术领域

本申请涉及信息安全技术领域,尤其涉及一种轻量级设备通信密钥协商方法、装置、设备及系统。

背景技术

在IOT(Internet of Things,物联网)领域,有些物联网设备需要首先连接到网关,然后再接入平台。物联网设备跟网关之间通信需要对数据进行加密,以提高通信安全性。

由于上述物联网设备中大部分设备均没有预置证书,因此,需要通过协商生成加解密密钥的方式,来实现数据加解密。

目前常见的密钥协商方法可以包括:加解密密钥使用业界通用的密钥协商算法生成,例如DH算法。该方案要求设备有足够的非对称密码计算能力,对设备硬件性能要求相对较高;此外,标准的DH算法需要两个来回才能完成密钥协商,容易出现超时。

发明内容

有鉴于此,本申请提供一种轻量级设备通信密钥协商方法、装置、设备及系统。

具体地,本申请是通过如下技术方案实现的:

根据本申请实施例的第一方面,提供一种轻量级设备通信密钥协商方法,应用于轻量级设备,所述方法包括:

对所述轻量级设备的设备序列号的目标部分进行散列hash运算,得到第一hash值;其中,所述设备序列号的目标部分包括所述设备序列号的随机部分;以及,

生成第一随机数,并对所述第一随机数以及所述设备序列号的目标部分进行异或运算,得到第一异或结果;

将所述第一hash值和所述第一异或结果发送给网关,以使所述网关依据所述第一hash值从平台中获取目标设备序列号的目标部分;其中,所述目标设备序列号由所述平台依据所述第一hash值查询确定;所述平台中预先存储有所管理的各轻量级设备的设备序列号;

接收所述网关发送的第二随机数,依据所述第一随机数和所述第二随机数,利用预设密钥生成算法,生成第一通信密钥;其中,所述第一通信密钥用于对所述轻量级设备发送给所述网关的数据进行加密,所述网关中与所述第一通信密钥对应的第二通信密钥由所述网关依据所述第二随机数和第二异或结果,利用所述预设密钥生成算法生成,所述第二异或结果通过对所述目标设备序列号的目标部分以及所述第一异或结果进行异或运算得到;所述预设密钥生成算法包括hash算法或异或算法。

根据本申请实施例的第二方面,提供一种轻量级设备通信密钥协商方法,应用于网关,所述方法包括:

接收轻量级设备发送的第一散列hash值和第一异或结果;其中,所述第一hash值由所述轻量级设备对本设备的设备序列号的目标部分进行hash运算得到,所述设备序列号的目标部分包括所述设备序列号的随机部分,所述第一异或结果由所述轻量级设备对第一随机数以及所述设备序列号的目标部分进行异或运算得到,所述第一随机数由所述轻量级设备生成;

依据所述第一hash值从平台中获取目标设备序列号的目标部分;其中,所述目标设备序列号由所述平台依据所述第一hash值查询确定;所述平台中预先存储有所管理的各轻量级设备的设备序列号;

对所述目标设备序列号的目标部分以及所述第一异或结果进行异或运算,得到第二异或结果;以及,

生成第二随机数,并将所述第二随机数发送给所述轻量级设备;

依据所述第二异或结果和所述第二随机数,利用预设密钥生成算法,生成第二通信密钥;其中,所述第二通信密钥用于对接收到的所述轻量级设备发送的加密数据进行解密,所述轻量级设备中与所述第二通信密钥对应的第一通信密钥由所述轻量级设备依据所述第一随机数和所述第二随机数,利用所述预设密钥生成算法生成;所述预设密钥生成算法包括hash算法或异或算法。

根据本申请实施例的第三方面,提供一种轻量级设备通信密钥协商装置,部署于轻量级设备,所述装置包括:

运算单元,用于对所述轻量级设备的设备序列号的目标部分进行散列hash运算,得到第一hash值;其中,所述设备序列号的目标部分包括所述设备序列号的随机部分;

生成单元,用于生成第一随机数;

所述运算单元,还用于对所述第一随机数以及所述设备序列号的目标部分进行异或运算,得到第一异或结果;

通信单元,用于将所述第一hash值和所述第一异或结果发送给网关,以使所述网关依据所述第一hash值从平台中获取目标设备序列号的目标部分;其中,所述目标设备序列号由所述平台依据所述第一hash值查询确定;所述平台中预先存储有所管理的各轻量级设备的设备序列号;

所述通信单元,还用于接收所述网关发送的第二随机数;

所述运算单元,还用于依据所述第一随机数和所述第二随机数,利用预设密钥生成算法,生成第一通信密钥;其中,所述第一通信密钥用于对所述轻量级设备发送给所述网关的数据进行加密,所述网关中与所述第一通信密钥对应的第二通信密钥由所述网关依据所述第二随机数和第二异或结果,利用所述预设密钥生成算法生成,所述第二异或结果通过对所述目标设备序列号的目标部分以及所述第一异或结果进行异或运算得到;所述预设密钥生成算法包括hash算法或异或算法。

根据本申请实施例的第四方面,提供一种轻量级设备通信密钥协商装置,部署于网关,所述装置包括:

通信单元,用于接收轻量级设备发送的第一散列hash值和第一异或结果;其中,所述第一hash值由所述轻量级设备对本设备的设备序列号的目标部分进行hash运算得到,所述设备序列号的目标部分包括所述设备序列号的随机部分,所述第一异或结果由所述轻量级设备对第一随机数以及所述设备序列号的目标部分进行异或运算得到,所述第一随机数由所述轻量级设备生成;

所述通信单元,还用于依据所述第一hash值从平台中获取目标设备序列号的目标部分;其中,所述目标设备序列号由所述平台依据所述第一hash值查询确定;所述平台中预先存储有所管理的各轻量级设备的设备序列号;

运算单元,用于对所述目标设备序列号的目标部分以及所述第一异或结果进行异或运算,得到第二异或结果;

生成单元,用于生成第二随机数;

所述通信单元,还用于将所述第二随机数发送给所述轻量级设备;

所述运算单元,还用于依据所述第二异或结果和所述第二随机数,利用预设密钥生成算法,生成第二通信密钥;其中,所述第二通信密钥用于对接收到的所述轻量级设备发送的加密数据进行解密,所述轻量级设备中与所述第二通信密钥对应的第一通信密钥由所述轻量级设备依据所述第一随机数和所述第二随机数,利用所述预设密钥生成算法生成;所述预设密钥生成算法包括hash算法或异或算法。

根据本申请实施例的第五方面,提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现第一方面或第二方面提供的方法。

根据本申请实施例的第六方面,提供一种轻量级设备通信密钥协商系统,包括:轻量级设备、网关,以及,平台;其中:

所述轻量级设备,用于对所述轻量级设备的设备序列号的目标部分进行散列hash运算,得到第一hash值;其中,所述设备序列号的目标部分包括所述设备序列号的随机部分;以及,生成第一随机数,并对所述第一随机数以及所述设备序列号的目标部分进行异或运算,得到第一异或结果;

所述轻量级设备,还用于将所述第一hash值和所述第一异或结果发送给网关;

所述网关,用于依据所述第一hash值从平台中获取目标设备序列号的目标部分;其中,所述目标设备序列号由所述平台依据所述第一hash值查询确定;所述平台中预先存储有所管理的各轻量级设备的设备序列号;

所述网关,还用于对所述目标设备序列号的目标部分以及所述第一异或结果进行异或运算,得到第二异或结果;以及,生成第二随机数,并将所述第二随机数发送给所述轻量级设备;

所述轻量级设备,还用于接收所述网关发送的第二随机数,依据所述第一随机数和所述第二随机数,利用预设密钥生成算法,生成第一通信密钥;其中,所述第一通信密钥用于对所述轻量级设备发送给所述网关的数据进行加密;所述预设密钥生成算法包括hash算法或异或算法;

所述网关,还用于依据所述第二异或结果和所述第二随机数,利用所述预设密钥生成算法,生成第二通信密钥;其中,所述第二通信密钥用于对接收到的所述轻量级设备发送的加密数据进行解密。

本申请实施例的轻量级设备通信密钥协商方法,通过将平台所管理的轻量级设备的设备序列号存储在平台中,密钥协商过程中,轻量级设备可以利用本设备的设备序列号中的目标部分,利用异或算法,对生成的第一随机数进行加密,得到第一异或结果,并利用hash算法对本设备的设备序列号中的目标部分加密,得到第一hash值,进而,将第一hash值和第一异或结果发送给网关;由于相同的原始数据经过相同hash算法进行hash得到的hash值相同,因此,网关可以依据接收到的第一hash值,从平台中获取到该轻量级设备的设备序列号的目标部分(即目标设备序列号的目标部分)。其次,由于异或运算具有自反性,因此,网关可以通过对接收到的第一异或结果和获取到的目标设备序列号的目标部分进行异或运算,得到第一随机数(即第二异或结果)。再者,网关可以生成第二随机数,并将第二随机数发送给轻量级设备,从而,轻量级设备和网关可以依据相同的第一随机数和第二随机数,利用相同的密钥生成算法,分别生成第一通信密钥和第二通信密钥,在轻量级设备和网关之间进行一次交互的情况下,实现通信密钥的生成,与设备和网关之间多次交互实现密钥协商的方案相比,提高了密钥协商效率,且与密钥固定存储在设备中的方案相比,提高了密钥的安全性;此外,由于第一随机数的传输过程中利用轻量级设备的设备序列号的目标部分进行了加密,而轻量级设备的设备序列号的目标部分包括设备序列号的随机部分,且网关可以从平台获取轻量级设备的设备序列号的目标部分,因此,可以有效提高第一随机数的安全性,进而,提高所生成的通信密钥的安全性,相应地,可以提高轻量级设备发送给网关的数据的安全性;再者,通过利用轻量级设备的设备序列号的目标部分对第一随机数进行加密,而设备序列号属于轻量级设备的固有属性,因而,在保证第一随机数的安全性的情况下,轻量级设备并不需要额外存储其它用于对第一随机数进行加密的密钥信息,节省了轻量级设备的存储资源;最后,由于密钥协商过程中的数据处理为hash运算或异或运算等复杂度低的运算,其对设备计算能力、硬件性能等要求低,从而,可以进一步提高轻量级设备通信密钥协商的效率。

附图说明

图1为本申请一示例性实施例示出的一种轻量级设备通信密钥协商方法的流程示意图;

图2为本申请一示例性实施例示出的一种轻量级设备通信密钥协商方法的流程示意图;

图3为本申请一示例性实施例示出的一种通信密钥协商流程示意图;

图4为本申请一示例性实施例示出的一种轻量级设备通信密钥协商装置的结构示意图;

图5为本申请一示例性实施例示出的一种轻量级设备通信密钥协商装置的结构示意图;

图6为本申请一示例性实施例示出的一种电子设备的硬件结构示意图;

图7为本申请一示例性实施例示出的一种轻量级设备通信密钥协商系统的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。

需要说明的是,本申请实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

请参见图1,为本申请实施例提供的一种轻量级设备通信密钥协商方法的流程示意图,其中,该方法可以应用于轻量级设备,例如,轻量级设备通信密钥协商系统中的轻量级设备,该轻量级设备通信密钥协商系统中还可以包括网关和平台,如图1所示,该轻量级设备通信密钥协商方法可以包括以下步骤:

步骤S100、对轻量级设备的设备序列号的目标部分进行hash运算,得到第一hash值;其中,设备序列号的目标部分包括设备序列号的随机部分。

步骤S110、生成第一随机数,并对第一随机数以及设备序列号的目标部分进行异或运算,得到第一异或结果。

本申请实施例中,轻量级设备是指计算能力较差、存储空间较小(通常为几K~十几K)的设备(可以包括无线设备或有线设备),例如,温度采集设备、光信号采集设备或烟雾报警器等。

示例性的,轻量级设备通信密钥协商系统中,一个网关可以接管上百个(可以记为N个,N≥100)轻量级设备,即允许N个轻量级设备通过同一网关接入平台,由于轻量级设备计算能力差,若轻量级设备与网关之间需要多次交互才能协商生成密钥,则容易出现超时情况,尤其是在较多轻量级设备需要进行密钥协商的情况下,较大程度地影响用户体验。

因此,可以减少密钥协商过程中设备与网关之间的交互次数,且在密钥协商过程中,可以降低数据处理复杂性,采用相对简单的数据处理方式。

本申请实施例中,为了实现密钥协商,一方面,轻量级设备可以对本设备的设备序列号的目标部分进行hash(散列)运算,得到对应的hash值(本文中称为第一hash值)。

另一方面,轻量级设备可以生成一个随机数(本文中称为第一随机数),并对该第一随机数以及本设备的设备序列号的目标部分进行异或运算,得到异或结果(本文中称为第一异或结果)。

步骤S120、将第一hash值和第一异或结果发送给网关,以使网关依据第一hash值从平台中获取目标设备序列号的目标部分;其中,目标设备序列号由平台依据第一hash值查询确定;平台中预先存储有所管理的各轻量级设备的设备序列号。

本申请实施例中,平台中可以预先存储有所管理的各轻量级设备的设备序列号。

例如,可以预先将平台所管理的各轻量级设备的设备序列号批量导入到平台中进行存储。

轻量级设备可以将第一hash值和第一异或结果发送给网关。网关接收到轻量级设备发送的第一hash值和第一异或结果的情况下,可以依据该第一hash值从平台中获取目标设备序列号的目标部分,其具体实现可以参见图2所示方法流程中的相关描述,本申请实施例在此不做赘述。

其中,目标设备序列号由平台依据第一hash值查询确定,其为平台存储的设备序列号中与该第一hash值对应的设备序列号。

步骤S130、接收网关发送的第二随机数,依据第一随机数和第二随机数,利用预设密钥生成算法,生成第一通信密钥;其中,该第一通信密钥用于对轻量级设备发送给网关的数据进行加密,网关中与第一通信密钥对应的第二通信密钥由网关依据第二随机数和第二异或结果,利用该预设密钥生成算法生成,第二异或结果通过对目标设备序列号的目标部分以及第一异或结果进行异或运算得到。

本申请实施例中,网关在接收到轻量级设备发送的第一hash值和第一异或结果的情况下,还可以生成一个随机数(本文中称为第二随机数),并将该第二随机数发送给轻量级设备。

轻量级设备在接收到网关发送的第二随机数的情况下,可以依据第一随机数和第二随机数,利用预设密钥生成算法,生成通信密钥(本文中称为第一通信密钥)。

示例性的,该预设密钥生成算法可以包括但不限于hash算法或异或算法等。

其中,轻量级设备生成的该第一通信密钥可以用于对本设备发送给网关的数据进行加密。

网关中与该第一通信密钥对应的通信密钥(本文中称为第二通信密钥)的生成可以参见图2所示方法流程中的相关描述,本申请实施例在此不做赘述。

需要说明的是,在本申请实施例中,轻量级设备在第一次需要向网关进行数据传输的情况下,可以按照上述实施例中描述的方式与网关协商通信密钥。

示例性的,每一次协商生成的通信密钥可以设置一个有效期(可以根据实际场景需求设定,如3~5分钟),在已生成的通信密钥的有效期内,可以不需要协商新的通信密钥,而是使用已生成的有效期内的通信密钥进行数据的加解密;在已生成的通信密钥失效的情况下,可以重新协商新的通信密钥。

相应地,在轻量级设备需要向网关传输数据的情况下,可以确定是否存在有效期内的通信密钥(即上述第一通信密钥),在存在有效期内的第一通信密钥的情况下,轻量级设备可以使用该第一通信密钥对发送给网关的数据进行加密;否则,可以重新按照上述实施例中描述的方式进行通信密钥的协商,并使用新生成的通信密钥进行数据加密。

请参见图2,为本申请实施例提供的一种轻量级设备通信密钥协商方法的流程示意图,其中,该方法可以应用于网关,例如,轻量级设备通信密钥协商系统中的网关,该轻量级设备通信密钥协商系统中还可以包括轻量级设备和平台,如图2所示,该轻量级设备通信密钥协商方法可以包括以下步骤:

步骤S200、接收轻量级设备发送的第一hash值和第一异或结果;其中,第一hash值由该轻量级设备对本设备的设备序列号的目标部分进行hash运算得到,该设备序列号的目标部分包括该设备序列号的随机部分,第一异或结果由轻量级设备对第一随机数以及该设备序列号的目标部分进行异或运算得到,第一随机数由该轻量级设备生成。

本申请实施例中,轻量级设备向网关发送第一hash值和第一异或结果的具体实现可以参见图1所示方法流程中的相关说明,本申请实施例在此不再赘述。

步骤S210、依据第一hash值从平台中获取目标设备序列号的目标部分;其中,目标设备序列号由平台依据所述第一hash值查询确定;平台中预先存储有所管理的各轻量级设备的设备序列号。

步骤S220、对目标设备序列号的目标部分以及第一异或结果进行异或运算,得到第二异或结果。

步骤S230、生成第二随机数,并将第二随机数发送给轻量级设备。

本申请实施例中,网关在接收到轻量级设备发送的第一hash值和第一异或结果的情况下,一方面,可以依据第一hash值从平台中获取目标设备序列号的目标部分,并对目标设备序列号的目标部分以及第一异或结果进行异或运算,得到第二异或结果。

其中,由于异或运算具有自反性,即a⊕b⊕b=a,因此,在目标设备序列号为发送第一hash值的轻量级设备的设备序列号的情况下,网关对目标设备序列号的目标部分以及第一异或结果进行异或运算得到的异或结果,即第二异或结果为第一随机数。

另一方面,网关可以生成第二随机数,并将第二随机数发送给轻量级设备,由轻量级设备依据第一随机数和第二随机数生成第一通信密钥,其具体实现可以参见图1所示方法流程中的相关说明,本申请实施例在此不再赘述。

需要说明的是,在本申请实施例中,平台在接收到网关发送的第一hash值,但是依据该第一hash值未查询到对应的设备序列号的情况下,平台可以向网关返回查询失败响应消息,该查询失败响应消息用于指示未查询到与第一hash值对应的设备序列号,即当前发起密钥协商的轻量级设备为未注册设备,在该情况下,网关可以不需要对接收到的第一hash值和第一异或结果进行后续处理,例如,网关可以丢弃接收到的第一hash值和第一异或结果,其具体实现本申请实施例不做限定。

步骤S240、依据第二异或结果和第二随机数,利用预设密钥生成算法,生成第二通信密钥;其中,第二通信密钥用于对接收到的轻量级设备发送的加密数据进行解密,该轻量级设备中与该第二通信密钥对应的第一通信密钥由该轻量级设备依据第一随机数和第二随机数,利用该预设密钥生成算法生成。

本申请实施例中,网关可以依据第二异或结果和第二随机数,利用预设密钥生成算法,生成第二通信密钥。

其中,网关生成第二通信密钥使用的密钥生成算法,与轻量级设备生成对应的第一通信密钥使用的密钥生成算法相同。

可见,在图1或图2所示方法流程中,通过将平台所管理的轻量级设备的设备序列号存储在平台中,密钥协商过程中,轻量级设备可以利用本设备的设备序列号中的目标部分,利用异或算法,对生成的第一随机数进行加密,得到第一异或结果,并利用hash算法对本设备的设备序列号中的目标部分加密,得到第一hash值,进而,将第一hash值和第一异或结果发送给网关;由于相同的原始数据经过相同hash算法进行hash得到的hash值相同,因此,网关可以依据接收到的第一hash值,从平台中获取到该轻量级设备的设备序列号的目标部分(即上述目标设备序列号的目标部分)。其次,由于异或运算具有自反性,因此,网关可以通过对接收到的第一异或结果和获取到的目标设备序列号的目标部分进行异或运算,得到第一随机数(即上述第二异或结果)。再者,网关可以生成第二随机数,并将第二随机数发送给轻量级设备,从而,轻量级设备和网关可以依据相同的第一随机数和第二随机数,利用相同的密钥生成算法,分别生成第一通信密钥和第二通信密钥,在轻量级设备和网关之间进行一次交互的情况下,实现通信密钥的生成,与设备和网关之间多次交互实现密钥协商的方案相比,提高了密钥协商效率,且与密钥固定存储在设备中的方案相比,提高了密钥的安全性;此外,由于第一随机数的传输过程中利用轻量级设备的设备序列号的目标部分进行了加密,而轻量级设备的设备序列号的目标部分包括设备序列号的随机部分,且网关可以从平台获取轻量级设备的设备序列号的目标部分,因此,可以有效提高第一随机数的安全性,进而,提高所生成的通信密钥的安全性,相应地,可以提高轻量级设备发送给网关的数据的安全性;再者,通过利用轻量级设备的设备序列号的目标部分对第一随机数进行加密,而设备序列号属于轻量级设备的固有属性,因而,在保证第一随机数的安全性的情况下,轻量级设备并不需要额外存储其它用于对第一随机数进行加密的密钥信息,节省了轻量级设备的存储资源;最后,由于密钥协商过程中的数据处理为hash运算或异或运算等复杂度低的运算,其对设备计算能力、硬件性能等要求低,从而,可以进一步提高轻量级设备通信密钥协商的效率。

在一些实施例中,设备序列号的目标部分包括设备序列号的部分。

示例性的,为了降低运算量,设备序列号的目标部分可以为设备序列号的一部分(包括设备序列号的随机部分),从而,在得到第一hash值或第一异或结果的过程中,可以不需要对设备序列号的全部字符进行运算。而由于该目标部分中包括了随机部分,因此,利用目标部分对第一随机数进行异或运算,可以有效保证第一随机数的安全性。

在另一些实施例中,设备序列号的目标部分包括设备序列号的全部。

示例性的,为了进一步提高第一随机数的安全性,设备序列号的目标部分可以为设备序列号全部,从而,利用设备序列号的目标部分对第一随机数进行异或运算得到的异或结果(即上述第一异或结果)被破解的难度更大。

在一些实施例中,设备序列号的随机部分的长度大于等于8个字节,且包括大写字母、小写字母以及特殊字符。

示例性的,为了提高利用设备序列号的目标部分对第一随机数进行加密的安全性,可以设定设备序列号的随机部分的长度大于等于8个字节,且包括大写字母、小写字母以及特殊字符。

需要说明的是,在本申请实施例中,在设备序列号的随机部分足够长的情况下,也可以使用随机部分的一部分来对第一随机数进行加密。

例如,假设设备序列号的随机部分为16个字节,则可以使用随机部分的前8个字节对第一随机数进行加密。

在一些实施例中,上述依据第一hash值从平台中获取目标设备序列号的目标部分,可以包括:

将第一hash值发送给平台,以使平台依据第一hash值查询对应的目标设备序列号;

接收平台发送的目标设备序列号,并获取目标设备序列号的目标部分。

示例性的,为了减少平台的工作量,平台接收到网关发送的第一hash值,并依据该第一hash值查询到对应的设备序列号(即上述目标设备序列号)的情况下,可以将查询到的目标设备序列号发送给网关。

网关接收到平台发送的目标设备序列号的情况下,可以获取目标设备序列号的目标部分,并按照上述实施例中描述的方式继续进行密钥协商流程。

在另一些实施例中,上述依据第一hash值从平台中获取目标设备序列号的目标部分,可以包括:

将第一hash值发送给平台,以使平台依据第一hash值查询对应的目标设备序列号;

接收平台发送的目标设备序列号的目标部分。

示例性的,为了降低网关的工作量,并减少网关与平台之间交互的数据量,平台接收到网关发送的第一hash值,并依据该第一hash值查询到对应的设备序列号(即上述目标设备序列号)的情况下,可以获取目标设备序列号的目标部分,并将目标部分发送给网关。

网关接收到平台发送的目标设备序列号的目标部分的情况下,可以按照上述实施例中描述的方式继续进行密钥协商流程。

在一些实施例中,平台还存储有所管理的各轻量级设备的设备序列号的目标部分对应的hash值;

上述平台依据第一hash值查询对应的目标设备序列号,可以包括:

依据第一hash值,查询所存储的各轻量级设备的设备序列号的目标部分对应的hash值,以确定与第一hash值对应的目标设备序列号。

示例性的,为了提高平台查询目标设备序列号的效率,对于平台所管理的轻量级设备,平台除了可以存储各轻量级设备的设备序列号之外,还可以存储各设备序列号的目标部分对应的hash值。

需要说明的是,对于同一设备序列号,平台和轻量级设备使用相同的hash算法,计算该设备序列号的目标部分的hash值,即得到的hash值相同。

平台可以依据接收到网关发送的第一hash值,查询所存储的各轻量级设备的设备序列号的目标部分对应的hash值,将对应的hash值为第一hash值的设备序列号确定为目标设备序列号。

需要说明的是,在本申请实施例中,在平台的计算能力足够强的情况下,平台也可以不需要存储各轻量级设备的设备序列号的目标部分对应的hash值,而是可以在接收到网关发送的第一hash值的情况下,分别依据所存储的各轻量级设备的设备序列号,计算各设备序列号的目标部分的hash值,确定与第一hash值对应的目标设备序列号。

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体场景对本申请实施例提供的技术方案进行说明。

在该实施例中,针对没有预置证书、计算能力差,并且可能存在一个网关接管上百个设备(即上述轻量级设备)的场景,利用设备的设备序列号作为因子,在设备和网关之间进行一次交互的情况下生成协商密钥。

例如,以设备为烟雾报警器为例,假设一个大厦中共有几百个房间,每个房间中均安装有烟雾报警器,该大厦中的烟雾报警器通过同一网关接入平台。

下面对该实施例中的通信密钥协商实现流程进行说明。

如图3所示,在该实施例中,通信密钥协商流程如下:

1、假设设备sensor的设备序列号为M,生成随机数A(即上述第一随机数);

2、设备端对M进行hash运算,例如,SHA256算法,得到H(即上述第一hash值);

示例性的,在该实施例中,以设备序列号的目标部分为包括设备序列号全部为例。

3、设备端计算A和M的异或结果,即A⊕M=T(即上述第一异或结果);

4、设备端将H和T发送给网关;

5、网关将H发送给平台,由于平台保存了所有需要接入的设备的设备序列号及对应的hash值,因此,平台可以查询到H对应的设备序列号M(即上述目标设备序列号),并将M返回给网关。

示例性的,平台中存储的设备序列号可以由用户手工导入到平台中。

6、网关依据M和T,利用异或运算,得到A(即上述第二异或结果);

示例性的,由于T=A⊕M,因此,T⊕M= A⊕M⊕M=A。

7、网关生成随机数B(即上述第二随机数);

8、网关将随机数B发送给设备;

9、设备端计算A⊕B作为第一通信密钥;网关计算A⊕B作为第二通信密钥;

示例性的,该实施例中,以密钥生成算法为异或算法为例。

10、设备端与网关之间加密算法使用AES_GCM算法。

可见,设备与网关之间进行一次交互,即完成了通信密钥协商。

示例性的,为了提高密钥协商过程的安全性,可以要求设备序列号的随机部分长度为8个字节以上,并且要求使用大小写及特殊字符。

以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:

请参见图4,为本申请实施例提供的一种轻量级设备通信密钥协商装置的结构示意图,其中,该轻量级设备通信密钥协商装置可以部署于轻量级设备中,如图4所示,该轻量级设备通信密钥协商装置可以包括:

运算单元410,用于对所述轻量级设备的设备序列号的目标部分进行散列hash运算,得到第一hash值;其中,所述设备序列号的目标部分包括所述设备序列号的随机部分;

生成单元420,用于生成第一随机数;

所述运算单元410,还用于对所述第一随机数以及所述设备序列号的目标部分进行异或运算,得到第一异或结果;

通信单元430,用于将所述第一hash值和所述第一异或结果发送给网关,以使所述网关依据所述第一hash值从平台中获取目标设备序列号的目标部分;其中,所述目标设备序列号由所述平台依据所述第一hash值查询确定;所述平台中预先存储有所管理的各轻量级设备的设备序列号;

所述通信单元430,还用于接收所述网关发送的第二随机数;

所述运算单元410,还用于依据所述第一随机数和所述第二随机数,利用预设密钥生成算法,生成第一通信密钥;其中,所述第一通信密钥用于对所述轻量级设备发送给所述网关的数据进行加密,所述网关中与所述第一通信密钥对应的第二通信密钥由所述网关依据所述第二随机数和第二异或结果,利用所述预设密钥生成算法生成,所述第二异或结果通过对所述目标设备序列号的目标部分以及所述第一异或结果进行异或运算得到;所述预设密钥生成算法包括hash算法或异或算法。

在一些实施例中,设备序列号的目标部分包括设备序列号的部分或全部。

在一些实施例中,设备序列号的随机部分的长度大于等于8个字节,且包括大写字母、小写字母以及特殊字符。

请参见图5,为本申请实施例提供的一种轻量级设备通信密钥协商装置的结构示意图,其中,该轻量级设备通信密钥协商装置可以部署于网关中,如图5所示,该轻量级设备通信密钥协商装置可以包括:

通信单元510,用于接收轻量级设备发送的第一散列hash值和第一异或结果;其中,所述第一hash值由所述轻量级设备对本设备的设备序列号的目标部分进行hash运算得到,所述设备序列号的目标部分包括所述设备序列号的随机部分,所述第一异或结果由所述轻量级设备对第一随机数以及所述设备序列号的目标部分进行异或运算得到,所述第一随机数由所述轻量级设备生成;

所述通信单元510,还用于依据所述第一hash值从平台中获取目标设备序列号的目标部分;其中,所述目标设备序列号由所述平台依据所述第一hash值查询确定;所述平台中预先存储有所管理的各轻量级设备的设备序列号;

运算单元520,用于对所述目标设备序列号的目标部分以及所述第一异或结果进行异或运算,得到第二异或结果;

生成单元530,用于生成第二随机数;

所述通信单元510,还用于将所述第二随机数发送给所述轻量级设备;

所述运算单元520,还用于依据所述第二异或结果和所述第二随机数,利用预设密钥生成算法,生成第二通信密钥;其中,所述第二通信密钥用于对接收到的所述轻量级设备发送的加密数据进行解密,所述轻量级设备中与所述第二通信密钥对应的第一通信密钥由所述轻量级设备依据所述第一随机数和所述第二随机数,利用所述预设密钥生成算法生成;所述预设密钥生成算法包括hash算法或异或算法。

在一些实施例中,设备序列号的目标部分包括设备序列号的部分或全部。

在一些实施例中,设备序列号的随机部分的长度大于等于8个字节,且包括大写字母、小写字母以及特殊字符。

在一些实施例中,所述通信单元510依据所述第一hash值从平台中获取目标设备序列号的目标部分,包括:

将所述第一hash值发送给所述平台,以使所述平台依据所述第一hash值查询对应的目标设备序列号;

接收所述平台发送的所述目标设备序列号,并获取所述目标设备序列号的目标部分;或,接收所述平台发送的所述目标设备序列号的目标部分。

本申请实施例还提供一种电子设备,包括处理器和存储器,其中,存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上文描述的轻量级设备通信密钥协商方法。

请参见图6,为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可包括处理器601、存储有机器可执行指令的存储器602。处理器601与存储器602可经由系统总线603通信。并且,通过读取并执行存储器602中与轻量级设备通信密钥协商逻辑对应的机器可执行指令,处理器601可执行上文描述的轻量级设备通信密钥协商方法。

本文中提到的存储器602可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

在一些实施例中,还提供了一种机器可读存储介质,如图6中的存储器602,该机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上文描述的轻量级设备通信密钥协商方法。例如,所述机器可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。

本申请实施例还提供了一种计算机程序产品,存储有计算机程序,并且当处理器执行该计算机程序时,促使处理器执行上文中描述的轻量级设备通信密钥协商方法。

请参见图7,为本申请实施例提供的一种轻量级设备通信密钥协商系统的结构示意图,如图7所示,该轻量级设备通信密钥协商系统可以包括:轻量级设备、网关,以及,平台;其中:

所述轻量级设备,用于对所述轻量级设备的设备序列号的目标部分进行散列hash运算,得到第一hash值;其中,所述设备序列号的目标部分包括所述设备序列号的随机部分;以及,生成第一随机数,并对所述第一随机数以及所述设备序列号的目标部分进行异或运算,得到第一异或结果;

所述轻量级设备,还用于将所述第一hash值和所述第一异或结果发送给网关;

所述网关,用于依据所述第一hash值从平台中获取目标设备序列号的目标部分;其中,所述目标设备序列号由所述平台依据所述第一hash值查询确定;所述平台中预先存储有所管理的各轻量级设备的设备序列号;

所述网关,还用于对所述目标设备序列号的目标部分以及所述第一异或结果进行异或运算,得到第二异或结果;以及,生成第二随机数,并将所述第二随机数发送给所述轻量级设备;

所述轻量级设备,还用于接收所述网关发送的第二随机数,依据所述第一随机数和所述第二随机数,利用预设密钥生成算法,生成第一通信密钥;其中,所述第一通信密钥用于对所述轻量级设备发送给所述网关的数据进行加密;所述预设密钥生成算法包括hash算法或异或算法;

所述网关,还用于依据所述第二异或结果和所述第二随机数,利用所述预设密钥生成算法,生成第二通信密钥;其中,所述第二通信密钥用于对接收到的所述轻量级设备发送的加密数据进行解密。

在一些实施例中,所述平台还存储有所管理的各轻量级设备的设备序列号的目标部分对应的hash值;

所述平台,具体用于接收所述网关发送的第一hash值,依据所述第一hash值,查询所存储的各轻量级设备的设备序列号的目标部分对应的hash值,以确定与所述第一hash值对应的目标设备序列号。

在一些实施例中,轻量级设备通信密钥协商系统中各设备(轻量级设备、网关,以及,平台)可以按照上述实施例中描述的方式实现轻量级设备通信密钥协商。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

技术分类

06120115988183