一种身份认证方法及装置转让专利

申请号 : CN202110496342.7

文献号 : CN113472734B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙亚东谢福进王闻馨王志海喻波魏力

申请人 : 北京明朝万达科技股份有限公司

摘要 :

本发明实施例提供了一种身份认证方法及装置,通过向待认证设备集发送随机数;待认证设备集包括至少一个待认证设备的设备标识;接收待认证设备集中各待认证设备发送的密文,得到密文集;其中,密文集中各密文为相对应的待认证设备基于随机数生成的;根据预设公钥对密文集进行解密,得到集合认证信息;在集合认证信息和随机数一致的情况下,确定各待认证设备通过身份认证。本发明的方法能够实现对待认证设备的并行认证,大幅提高了对待认证设备进行身份认证的效率,此外,密文集是由各待认证设备生成的密文组合而成的,需要获得所有待认证设备的私钥才能破解本发明的身份认证方法,大大提升了网络设备的安全性。

权利要求 :

1.一种身份认证方法,应用于认证服务端,其特征在于,所述方法包括:向待认证设备集发送随机数;所述待认证设备集包括多个待认证设备的设备标识;

接收所述待认证设备集中各待认证设备发送的密文,并对所述密文进行组合,得到密文集;其中,所述密文集中各密文为各待认证设备根据对应的私钥和所述随机数生成的;

根据预设公钥对所述密文集进行解密,得到集合认证信息;

在所述集合认证信息和所述随机数一致的情况下,确定所述各待认证设备通过身份认证。

2.根据权利要求1所述的方法,其特征在于,在所述接收所述待认证设备集中各待认证设备发送的密文之前,所述方法还包括:生成所述预设公钥以及与所述预设公钥对应的私钥集;其中,所述私钥集中的私钥与所述各待认证设备一一对应;

将所述私钥集中的私钥发送至对应的待认证设备,以使得所述各待认证设备根据对应的私钥和所述随机数生成密文。

3.根据权利要求2所述的方法,其特征在于,所述生成所述预设公钥以及与所述预设公钥对应的私钥集,包括:

确定所述待认证设备集包含的设备数量;

在所述设备数量大于或等于预设阈值的情况下,生成所述预设公钥以及与所述预设公钥对应的私钥集。

4.根据权利要求2所述的方法,其特征在于,采用分布式密钥产生算法生成所述预设公钥,以及与所述预设公钥对应的私钥集。

5.根据权利要求1所述的方法,其特征在于,在所述确定所述各待认证设备通过身份认证之后,所述方法还包括:

接收目标设备发送的数据包,并根据认证服务端的目标私钥和所述数据包生成目标密文;其中,所述目标设备为所述待认证设备集中多个设备,所述目标私钥由所述认证服务端的父结点设备生成并下发至所述认证服务端;

向所述认证服务端的父结点设备发送所述目标密文,以使得所述认证服务端的父结点设备根据目标公钥对目标密文集进行解密,并得到所述数据包;

其中,所述目标密文集包括所述认证服务端的目标密文和同级设备的目标密文,所述同级设备的目标密文由所述同级设备根据所述数据包以及所述同级设备对应的目标私钥得到,所述目标公钥对应于所述认证服务端的目标私钥和所述同级设备的目标私钥。

6.根据权利要求5所述的方法,其特征在于,所述目标设备包括所述待认证设备集中的多个待认证设备,所述接收目标设备发送的数据包,包括:持续接收所述各待认证设备发出的子数据包,并将预设时间段内接收到的所有子数据包进行组合得到数据包。

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述认证服务端为云平台的情况下,所述待认证设备为网关设备;

在所述认证服务端为网关的情况下,所述待认证设备为终端。

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:在所述认证服务端为网关,且所述待认证设备为终端的情况下,所述认证服务端接收所述待认证设备发送的数据为明文数据。

9.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述集合认证信息和所述随机数不一致的情况下,确定所述各待认证设备未通过身份认证;

生成用于指示所述各待认证设备认证失败的告警信息并输出。

10.一种身份认证装置,其特征在于,所述装置包括:随机数发送模块,用于向待认证设备集发送随机数;所述待认证设备集包括多个待认证设备的设备标识;

密文组合模块,用于接收所述待认证设备集中各待认证设备发送的密文,并对所述密文进行组合,得到密文集;其中,所述密文集中各密文为各待认证设备根据对应的私钥和所述随机数生成的;

密文解密模块,用于根据预设公钥对所述密文集进行解密,得到集合认证信息;

密文验证模块,用于在所述集合认证信息和所述随机数一致的情况下,确定所述各待认证设备通过身份认证。

11.根据权利要求10所述的装置,其特征在于,所述装置还包括:密钥生成模块,用于生成所述预设公钥以及与所述预设公钥对应的私钥集;其中,所述私钥集中的私钥与所述各待认证设备一一对应;

私钥发送模块,用于将所述私钥集中的私钥发送至对应的待认证设备,以使得所述各待认证设备根据对应的私钥和所述随机数生成密文。

12.根据权利要求11所述的装置,其特征在于,所述密钥生成模块,还用于确定所述待认证设备集包含的设备数量,在所述设备数量大于或等于预设阈值的情况下,生成所述预设公钥以及与所述预设公钥对应的私钥集。

13.根据权利要求11所述的装置,其特征在于,所述密钥生成模块,还用于采用分布式密钥产生算法生成所述预设公钥,以及与所述预设公钥对应的私钥集。

14.根据权利要求10所述的装置,其特征在于,所述装置还包括:数据加密模块,用于接收目标设备发送的数据包,并根据认证服务端的目标私钥和所述数据包生成目标密文;其中,所述目标设备为所述待认证设备集中多个设备,所述目标私钥由所述认证服务端的父结点设备生成并下发至所述认证服务端;

加密数据发送模块,用于向所述认证服务端的父结点设备发送所述目标密文,以使得所述认证服务端的父结点设备根据目标公钥对目标密文集进行解密,并得到所述数据包。

15.根据权利要求14所述的装置,其特征在于,所述目标设备包括所述待认证设备集中的多个待认证设备,所述数据加密模块包括:数据接收子模块,用于持续接收所述各待认证设备发出的子数据包,并将预设时间段内接收到的所有子数据包进行组合得到数据包。

16.根据权利要求10所述的装置,其特征在于,所述密文验证模块,还用于在所述集合认证信息和所述随机数不一致的情况下,确定所述各待认证设备未通过身份认证;生成用于指示所述各待认证设备认证失败的告警信息并输出。

17.一种认证服务端,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至9中任一项所述的身份认证方法的步骤。

18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的身份认证方法中的步骤。

说明书 :

一种身份认证方法及装置

技术领域

[0001] 本发明涉及网络安全领域,特别是涉及一种身份认证方法及装置。

背景技术

[0002] 随着信息技术、计算机技术以及微电子技术的高速发展,物联网作为新一代信息化浪潮的典型代表,正逐步深入到人们生产生活的各个领域中,例如智能网联汽车、工业
4.0、智慧城市以及环境监测等。
[0003] 为了提高物联网的安全性,物联网需要对其中接入的设备进行身份认证,在现有技术中,终端和网关自行生成公私钥对,终端和网关将生成的公钥发送至云端,由云端的电
子签证机构根据终端公钥和网关公钥,生成网关身份证书、终端身份证书,并发送给对应的
设备,进而使各个层级的设备之间根据身份证书进行身份认证。
[0004] 然而对于计算能力偏弱且数量较多的的物联网设备来说,上述身份认证方法效率低下且抵御网络攻击的能力较弱,无法满足物联网对高效、高安全身份认证方法的需求。

发明内容

[0005] 本发明提供了一种身份认证方法及装置,以解决现有技术中物联网身份认证方法效率低下且抵御网络攻击的能力较弱,无法满足物联网对高效、高安全身份认证需求的问
题。
[0006] 第一方面,一种身份认证方法,应用于认证服务端,所述方法包括:
[0007] 向待认证设备集发送随机数;所述待认证设备集包括至少一个待认证设备的设备标识;
[0008] 接收所述待认证设备集中各待认证设备发送的密文,并对所述密文进行组合,得到密文集;其中,所述密文集中各密文为各待认证设备根据对应的私钥和所述随机数生成
的;
[0009] 根据预设公钥对所述密文集进行解密,得到集合认证信息;
[0010] 在所述集合认证信息和所述随机数一致的情况下,确定所述各待认证设备通过身份认证。
[0011] 第二方面,本发明实施例还提供了一种身份认证装置,所述装置包括:
[0012] 随机数发送模块,用于向待认证设备集发送随机数;所述待认证设备集包括至少一个待认证设备的设备标识;
[0013] 密文组合模块,用于接收所述待认证设备集中各待认证设备发送的密文,并对所述密文进行组合,得到密文集;其中,所述密文集中各密文为各待认证设备根据对应的私钥
和所述随机数生成的;
[0014] 密文解密模块,用于根据预设公钥对所述密文集进行解密,得到集合认证信息;
[0015] 密文验证模块,用于在所述集合认证信息和所述随机数一致的情况下,确定所述各待认证设备通过身份认证。
[0016] 第三方面,本发明实施例还提供了一种移动终端,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行
时实现所述的身份认证方法的步骤。
[0017] 第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的身份认证方法的
步骤。
[0018] 本发明实施例提供了一种身份认证方法及装置,通过向待认证设备集发送随机数;待认证设备集包括至少一个待认证设备的设备标识;接收待认证设备集中各待认证设
备发送的密文,得到密文集;其中,密文集中各密文为相对应的待认证设备基于随机数生成
的;根据预设公钥对密文集进行解密,得到集合认证信息;在集合认证信息和随机数一致的
情况下,确定各待认证设备通过身份认证。本发明的方法能够实现对待认证设备的并行认
证,即通过对待认证设备集中所有设备发送的密文进行整合,并对整合后的密文集进行解
密,再将解密结果与随机数进行比对,如果比对结果一致,则说明待认证设备集中的所有设
备均采用了正确的随机数,可以确定所有待认证设备均通过身份认证,无需采用串行的方
式对待认证设备进行认证,大幅提高了对待认证设备进行身份认证的效率,此外,由于通过
认证需要获得正确的密文集,而密文集是由各待认证设备生成的密文组合而成的,因此,需
要获得所有待认证设备的私钥才能破解本发明的身份认证方法,大大提升了网络设备的安
全性。

附图说明

[0019] 图1是本发明的一种身份认证方法实施例的步骤流程图;
[0020] 图2是本发明的一种网络架构图;
[0021] 图3是本发明的另一种身份认证方法实施例的步骤流程图;
[0022] 图4是本发明的一种身份认证系统结构图;
[0023] 图5是本发明的一种物联网系统构架图;
[0024] 图6是本发明的一种身份认证装置的结构框图。

具体实施方式

[0025] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0026] 参照图1,示出了本发明的一种身份认证方法实施例的步骤流程图。
[0027] 下面结合图1来对本发明的身份认证方法进行详细描述。
[0028] 参照图1,该方法具体可以包括如下步骤:
[0029] 步骤101,向待认证设备集发送随机数;
[0030] 参照图2,示出了本发明的一种网络架构图,如图2所示,在物联网中,通常存在多级网络结构,包括终端、网关以及云平台等多个层级的网络结构,其中网关也可以是多个层
级的网络结构,例如网关中可以包括主网关结构和子网关结构,每个主网关与多个子网关
结构连接。
[0031] 在物联网中,身份认证可以是任何上级网络设备对其连接的下级网络设备进行认证,如图2所示,可以是网关1对终端1、终端2和终端3进行身份认证,也可以是云平台对网关
1和网关2进行认证。因此,认证服务端可以是多级网络架构中任何连接有子网络结构的设
备,对应的,待认证设备为认证服务端的下一级设备。如图2所示,当认证服务端为网关1时,
待认证设备可以包括终端1,当认证服务端为云平台时,待认证设备可以包括网关1。
[0032] 待认证设备对待认证设备进行身份认证时,需要首先生成一个随机数,当然,该随机数也可以是在认证次数达到预设认证次数后生成,例如,当预设认证次数设置为1时,则
每次认证均生成新的随机数,具体可以根据实际需求设置预设认证次数,本发明实施例在
此不进行特别限定。这样,当预设认证次数设置较高时,无需频繁生成新的随机数,有助于
降低认证服务端的算力消耗,当预设认证次数设置较低时,有助于提高认证安全性。
[0033] 可以采用任何方式生成上述随机数,技术人员可以根据实际需要选取合适的随机数生成方法,本发明实施例在此并不进行特别限定。
[0034] 具体的,可以通过随机数生成函数random生成随机数,示例的,通过运行random(0,1000)可以生成一个0至1000之间的随机数。
[0035] 认证服务端生成随机数后,需要将该随机数发送至待认证设备集,其中,待认证设备集是所有认证服务端连接的下级设备,如图2所示,在认证服务端为网关1的情况下,待认
证设备可以包括与网关1连接的终端,具体为终端1、终端2和终端3;在认证服务端为网关2
的情况下,对应的待认证设备包括终端4、终端5和终端6;在认证服务端为云平台的情况下,
对应的待认证设备为网关1和网关2。
[0036] 具体的,认证服务端可以存储与其连接的下级设备的设备标识和对应的设备地址,并将所有下级设备标识的集合作为待认证设备集,通过查询待认证设备集中的设备标
识,并获取各个设备标识对应的设备地址,向待认证设备集中各个设备标识对应的待认证
设备发送该随机数。
[0037] 步骤102,接收所述待认证设备集中各待认证设备发送的密文,并对所述密文进行组合,得到密文集。
[0038] 针对每个待认证设备,待认证设备接收到认证服务端发送的随机数后,需要对根据自身携带的私钥对随机数进行加密,并生成密文,随后将密文发回至上级设备,也就是认
证服务端。
[0039] 认证服务端接收到各个待认证设备回传的密文之后,需要将各个待认证设备回传的密文进行整合得到密文集。具体的,可以采用combine算法将接收到的密文组合到一起执
行解密操作。
[0040] 步骤103,根据预设公钥对所述密文集进行解密,得到集合认证信息。
[0041] 在获得密文集之后,可以通过预设公钥对密文集进行解密,得到集合认证信息。由于密文集中的各个密文均是由预设公钥对应的各个私钥加密生成的,因此通过预设公钥对
密文集进行解密得到的集合认证信息与生成密文时采用的数据是相同的,也就是说,如果
密文集中的各个密文均是通过私钥对上述随机数进行加密得到的,则通过预设公钥对密文
集进行解密后得到的集合认证信息与上述随机数相同。
[0042] 具体的,可以通过combine算法将接收到的密文组合到一起并执行解密操作,如图2所示,以网关1作为认证服务端为例,网关1存储有预设公钥publicKey1,预设公钥
publicKey1对应有私钥privateKey1、私钥privateKey2和私钥privateKey3。终端1、终端2
和终端3在接收到网关1发送的随机数后,分别通过自身存储的私钥privateKey1、
privateKey2和privateKey3对随机数进行加密,分别得到密文f(x1)、f(x2)和f(x3),并将f
(x1)、f(x2)和f(x3)发送至网关1,网关1接收到f(x1)、f(x2)和f(x3)之后,运行combine(f
(x1),f(x2),f(x1),publicKey1)对各个待认证设备生成的密文进行组合获得密文集,并使
用publicKey1对密文集进行解密得到集合认证信息。同样的,网关2也可以作为认证服务
端,则终端4、终端5和终端6在接收到网关2发送的随机数后,分别通过自身存储的私钥
privateKey4、privateKey5和privateKey6对随机数进行加密,分别得到密文f(x4)、f(x5)
和f(x6),并将f(x4)、f(x5)和f(x6)发送至网关2,网关2对各个密文进行组合的到密文集,
并使用预设公钥publicKey2对密文集进行解密得到集合认证信息。
[0043] 步骤104,在所述集合认证信息和所述随机数一致的情况下,确定所述各待认证设备通过身份认证。
[0044] 由于密文集是由各个待认证设备通过自身携带的私钥对随机数进行加密获得的,预设公钥又和各个待认证设备通过自身携带的私钥具有对应关系,因此,使用预设公钥对
密文集进行解密后得到的集合认证信息,如果该集合认证信息与随机数相同,则说明密文
集中的各个密文均为使用正确的私钥和正确的随机数生成的,进而说明各个待认证设备均
存储有正确的私钥和随机数,并通过正确的加密算法生成了密文,此时,可以认为待认证设
备集中的各个待认证设备标识对应的待认证设备均为合法设备,使待认证设备集中的所有
设备标识对应的设备全部通过人身份证。
[0045] 本发明实施例提供了一种身份认证方法,通过向待认证设备集发送随机数;待认证设备集包括至少一个待认证设备的设备标识;接收待认证设备集中各待认证设备发送的
密文,得到密文集;其中,密文集中各密文为相对应的待认证设备基于随机数生成的;根据
预设公钥对密文集进行解密,得到集合认证信息;在集合认证信息和随机数一致的情况下,
确定各待认证设备通过身份认证。本发明的方法能够实现对待认证设备的并行认证,即通
过对待认证设备集中所有设备发送的密文进行整合,并对整合后的密文集进行解密,再将
解密结果与随机数进行比对,如果比对结果一致,则说明待认证设备集中的所有设备均采
用了正确的随机数,可以确定所有待认证设备均通过身份认证,无需采用串行的方式对待
认证设备进行认证,大幅提高了对待认证设备进行身份认证的效率,此外,由于通过认证需
要获得正确的密文集,而密文集是由各待认证设备生成的密文组合而成的,因此,需要获得
所有待认证设备的私钥才能破解本发明的身份认证方法,大大提升了网络设备的安全性。
[0046] 如图3所示,示出了本发明的另一种身份认证方法实施例的步骤流程图。
[0047] 下面结合图3来对本发明的另一种身份认证方法进行详细描述。
[0048] 步骤201,生成所述预设公钥以及与所述预设公钥对应的私钥集。
[0049] 认证服务端生成预设公钥以及与预设公钥对应的私钥集之后,可以将预设公钥存储于认证服务端,同时将私钥集中的私钥分发至不同的待认证设备,其中,私钥集中的私钥
数量与待认证设备集中的设备标识数量相同。一个预设公钥对应有至少一个私钥,某一预
设公钥对应的所有私钥构成的集合为该预设公钥对应的私钥集。需要说明的是,私钥集中
的私钥相互之间可以相同也可以不同,且私钥集中的每个私钥均与预设公钥存在对应关
系。
[0050] 如图2所示,在网关1为认证服务端的情况下,网关1生成预设公钥publicKey1,并同时生成与预设公钥对应私钥集,该私钥集包括私钥privateKey1、私钥privateKey2和私
钥privateKey3,再将私钥集中的私钥分别发送至的终端1、终端2和终端3中。
[0051] 在本发明实施例中,可以根据实际需要选用生成预设公钥以及与预设公钥对应的私钥集的方法,本发明实施例在此不做具体限定。
[0052] 可选的,在生成预设公钥和预设公钥对应的私钥集之前,还可以先确定待认证设备集包含的设备数量,并在设备数量大于或等于预设阈值的情况下,生成所述预设公钥以
及与所述预设公钥对应的私钥集。通过设置预设阈值,可以在仅在待认证设备数量超过预
设阈值的情况下才生成预设公钥和私钥集,进而可以控制采用本发明实施例的身份认证方
法生效的待认证设备数量,可以在待认证设备较多的情况下生成预设公钥和私钥集,并执
行后续的身份认证操作。这样,可以在提高大量设备认证效率的同时,避免可能导致的少量
设备认证效率降低。
[0053] 举例来说,传统的身份认证需要对设备进行串行认证,即每次认证一个设备,因此,当认证服务端需要对连接的大量待认证设备进行认证时,需要对每个待认证设备单独
认证,导致对待认证设备集的认证效率较低。但对于少量的待认证设备进行认证时,例如仅
对1个待认证设备进行认证,串行认证并不会显著延长认证时间,此时,采用本发明实施例
的认证方式可能并不会带来明显的效率提升,因此可以在待认证设备数量较少时采用传统
的设备认证方法。
[0054] 可选的,采用分布式密钥产生算法生成所述预设公钥,以及与所述预设公钥对应的私钥集。
[0055] 分布式密钥生成算法(DKG,Distributed Key Generation),DKG是一种分布式密钥生成算法,是通过多个网络结点共同合作生成公钥和私钥的密钥生成方法,可以生成一
个公钥以及与该一个公钥对应的多个私钥,并将公钥存储在父结点中,每个子结点存储自
己对应的私钥。
[0056] 通过分布式密钥生成算法,认证服务端和待认证设备共同生成预设公钥以及与之对应的私钥集,并使认证服务器持有预设公钥,每个待认证设备持有私钥集中的一个私钥。
这样,有效避免了公开密钥基础设施(PKI,Public Key Infrastructue)体系中存在的单点
故障和密钥托管的问题,过程中不依靠任何第三方,独立运行并计算预设公钥与私钥集,确
保了整个技术生态的平稳运行。
[0057] 其中,PKI是基于公钥密码算法,通过证书方式及可信第三方,通信者之间可以获得带有可信第三方签名的证书,证书中含有通信者的公钥。在此基础上通信者通过别人的
公钥对信息进行加密传输,通过自己的私钥对信息解密或签名,通信者之间可以进行密钥
交换,为对称密码算法实现密钥共享。
[0058] 具体的,如图2所示,网关1和与之连接的子设备(终端1、终端2、终端3)可以通过通过运行分布式密钥生成算法DKG(n,t)生成预设公钥和私钥集,其中,n表示参与运算密钥的
网络结点数量,t表示参与运算的网络结点的门限值。
[0059] 步骤202,将所述私钥集中的私钥发送至对应的待认证设备。
[0060] 认证服务端生成预设公钥和私钥集后,需要将私钥集中的私钥分发至不同的待认证设备,其中,私钥集中的私钥数量与待认证设备集中的设备标识数量相同,私钥集中的私
钥与待认证设备存在一一对应关系。
[0061] 举例来说,由于私钥集中私钥的数量与待认证设备的数量相同,当认证服务端需要对3个待认证设备认证时,需要生成包含3个私钥的私钥集,并将将私钥集中的3个私钥分
别发送至3个待认证设备。如图2所示,终端1接收到私钥privateKey1后将私钥privateKey1
存储在本地,在后续认证过程中,终端1可以通过私钥privateKey1对接收到的随机数进行
加密,并生成密文。
[0062] 步骤203,向待认证设备集发送随机数。
[0063] 认证服务端在生成随机数时,可以根据实际需求灵活调整生成的随机数的长度,以平衡认证服务端的算力消耗和认证安全性。可以理解,当随机数位数越多时,身份认证所
消耗运算资源也越多,但同时安全性也较高,因此,可以根据实际需要对资源消耗量和安全
性进行平衡,灵活调整随机数的位数。
[0064] 举例来说,可以在生成随机数之前获取待认证设备的数量,并根据待认证设备的数量确定生成的随机数的位数,当待认证设备的数量较少时,生成位数较少随机数,当待认
证设备的数量较多时,生成位数较多的随机数,以使得在面对较少数量的待认证设备时,依
然可以提供较高的认证效率。
[0065] 在向待认证设备发送随机数时,可以从待认证设备集中获取各个待认证设备标识,再查询各个待认证设备标识对应的设备地址,根据查询到设备地址向待认证设备发送
随机数,通过这种方式,可以实现对部分子设备进行身份认证,举例来说,参照图2,网关1连
接有终端1、终端2和终端3三台子设备,可以将终端1和终端2确定为待认证设备,进而仅通
过终端1和终端2的设备标识确定对应的设备地址,将随机数发送至终端1和终端2,实现对
认证服务端连接的部分子设备进行身份认证。
[0066] 也可以通过广播的形式向所有与认证服务端连接的子设备发送随机数,实现对所有子设备的身份认证,这样,无需获取待认证设备的设备标识和设备地址,可以提高发送随
机数的效率。
[0067] 步骤204,接收所述待认证设备集中各待认证设备发送的密文,并对所述密文进行组合,得到密文集。
[0068] 在向待认证设备集发送随机数后,针对每个待认证设备,在接收到认证服务端发送的随机数后,可以采用轻量级密码算法(LED,Light Encrytion Device)对随机数进行加
密。其中,LED是一种迭代型轻量级分组密码算法,分组长度为64bit,密钥长度分别为64bit
或128bit。根据密钥长度的不同,加密过程对应的轮数分别为32轮和48轮,表示为LED64和
LED128。LED加密算法具有加密效率高以及所需的门电路数量少等优点,可以有效降低加密
所消耗的资源以及所需的硬件规格。如图2所示,网关1作为认证服务端,对于网关1连接的
下级设备中的终端1,以终端1为例,终端1可以运行轻量级密码算法LED(S,privateKey1)以
生成密文,其中,S为随机数,privateKey1为私钥privateKey1。
[0069] 步骤205,根据预设公钥对所述密文集进行解密,得到集合认证信息。
[0070] 此步骤可参照步骤103,本发明实施例在此不再赘述。
[0071] 步骤206,在所述集合认证信息和所述随机数一致的情况下,确定所述各待认证设备通过身份认证。
[0072] 此步骤可参照步骤104,本发明实施例在此不再赘述。
[0073] 步骤207,接收目标设备发送的数据包,并根据认证服务端的目标私钥和所述数据包生成目标密文;其中,所述目标设备为所述待认证设备中任一设备,所述目标私钥由所述
认证服务端的父结点设备生成并下发至所述认证服务端。
[0074] 在本申请实施例中,网络中的任何包含子结点的设备均可以作为认证服务端,该子结点设备可以作为待认证设备,并通过步骤201至步骤206中的方式进行身份认证。如图2
所示,云平台的子结点的设备包括网关1和网关2,则云平台可以作为认证服务端,采用步骤
201至步骤206中的身份认证方式对网关1和网关2进行身份认证。
[0075] 在进行数据传输之前,认证服务端及同级设备可以存储有目标私钥,其中,认证服务端存储的目标私钥以及同级设备的目标私钥共同构成目标私钥集,认证服务端的同级设
备是指与认证服务端属于同一网络层级,且共享同一个父结点的其他设备,如图2所示,在
认证服务端为网关1的情况下,其他同级设备包括网关2。需要说明的是,同级设备可以是与
认证服务端属于同一网络层级的任意数量的其他设备,本发明实施例对此不进行具体限
定。
[0076] 认证服务端的父结点可以存储与目标私钥对应的目标公钥,目标公钥和目标私钥可以由认证服务端的父结点设备生成,也可以由认证服务端、认证服务端的父结点设备、认
证服务端的同级设备通过分布式密钥生成算法生成,参照图2,在网关1作为认证服务端的
情况下,云平台为认证服务端的父结点,存储有目标公钥publicKey,而网关1则存储有与目
标公钥publicKey对应的目标私钥privateKey1,具体的生成方法可参照步骤201,本发明实
施例在此不做赘述。
[0077] 在进行数据传输时,认证服务端接收子结点设备发送的数据包,通过认证服务端自身携带的目标私钥对上述数据包进行加密获得目标密文,并将目标密文发送至认证服务
端的父结点设备。参照图2,以认证服务端为网关1为例,则认证服务端的子结点设备为终端
1、终端2和终端3,父结点设备为云平台,网关1可以接收终端1发送的数据包,并通过自认携
带的目标私钥privateKey1对数据包进行加密得到目标密文,再将目标密文发送至云平台。
[0078] 进一步的,在认证服务端接收到子结点设备发送的数据包后,还可以通过以下方式生成目标密文:
[0079] 认证服务端将数据包分享给同级设备,并通过认证服务器携带的目标私钥对数据包进行加密,得到认证服务端对应的一个目标密文,接收到数据包的每个同级设备通过自
身携带的目标私钥对数据包进行加密,每个同级设备得到对应的一个目标密文,认证服务
端和每个同级设备再将各自对应的目标密文发送至父结点设备。
[0080] 如图2所示,以网关1作为认证服务端,网关2作为同级设备为例,网关1接收终端1发送的数据包,将数据包共享至网关2,网关1通过自身携带的目标私钥privateKey1对数据
包进行加密得到目标密文f(d1),并发送至云平台,网关2通过自身携带的目标私钥
privateKey2对数据包进行加密得到目标密文f(d2),并发送至云平台;云平台接收到f(d1)
和f(d2)之后,将f(d1)和f(d2)进行整合,并通过自身携带的目标公钥publicKey进行解密,
得到数据包,具体的,云平台可以采用密文组合函数combine(f(d1),f(d2),publicKey)组
合并解密得到数据包。
[0081] 需要说明的是,待认证设备可以在身份认证通过后向认证服务端发送数据包,也可以在未进行身份认证的情况下向认证服务端发送数据包,本发明对此并不进行限定,一
般而言,为了提高安全性,通常在待认证设备通过身份认证后,认证服务端才会接收待认证
设备发送的数据包。
[0082] 可选的,持续接收所述各待认证设备发出的子数据包,并将预设时间段内接收到的所有子数据包进行组合得到数据包。
[0083] 认证服务端可以持续接收所有待认证设备发送的子数据包,其中子数据包是指一个待认证设备发送的数据,可以通过设置预设时间段,将认证服务端在预设时间段内接收
到的所有子数据进行组合并获得数据包。预设时间段可以根据实际情况进行设置,在预设
时间段设置较长时,认证服务端会以较低的频率对接收到的子数据包进行组合,从而可以
降低系统的资源消耗,但由于子数据包需要等待较长的时间才会被组合,会增加数据传输
的延迟,而在预设时间段设置较短时会增加系统的资源消耗,降低数据传输的延迟。参照图
2,将网关1作为认证服务端,将终端1、终端2和终端3作为待认证设备,设置预设时间段为1
秒,则网关1持续接收终端1、终端2和终端3发送的所有子数据包,并以1秒为间隔,对前1秒
内接收到的子数据进行组合,获得数据包。
[0084] 步骤208,向所述认证服务端的父结点设备发送所述目标密文,以使得所述认证服务端的父结点设备根据目标公钥对目标密文集进行解密,并得到所述数据包。
[0085] 父结点设备在接收到目标密文后,通过自身携带的目标公钥对目标密文进行解密,得到上述数据包。参照图2,以认证服务端为网关1为例,网关1的父结点设备云平台接收
到目标密文后,通过自身携带的目标公钥publicKey对目标密文进行解密,获得上述终端1
发出的数据包。
[0086] 进一步的,在发送目标密文的设备包括认证服务端和同级设备的情况下,父结点在接收到目标密文后还可以通过以下方式对目标密文进行解密:
[0087] 父结点设备将接收到的所有目标密文进行整合,并通过自身携带的目标公钥进行解密,得到数据包。如图2所示,以网关1作为认证服务端,网关2作为同级设备为例,网关1接
收终端1发送的数据包,将数据包共享至网关2,网关1通过自身携带的目标私钥
privateKey1对数据包进行加密得到目标密文f(d1),网关2通过自身携带的目标私钥
privateKey2对数据包进行加密得到目标密文f(d2),云平台接收到f(d1)和f(d2)之后,将f
(d1)和f(d2)进行整合,并通过自身携带的目标公钥publicKey进行解密,得到数据包,具体
的,云平台可以采用密文组合函数combine(f(d1),f(d2),publicKey)组合并解密得到数据
包。
[0088] 在本发明实施例中,通过使用轻量级密码算法对传输中的数据包进行加密,实现了对数据的快速加密,相对于传输的SM2、SM4等加密算法,大幅提升了数据加密速度,同时,
还通过分布式密钥产生算法,使认证服务端和同级设备可以共享与目标公钥对应的私钥,
并通过多设备多私钥的加密方式,
[0089] 步骤209,在所述集合认证信息和所述随机数不一致的情况下,确定所述各待认证设备未通过身份认证。
[0090] 本步骤接续步骤205,认证服务端根据预设公钥对密文集进行解密后,得到集合认证信息,需要将集合认证信息与之前发送至待认证设备,且用来生成密文集的随机数进行
比较,如果集合认证信息与该随机数不一致,则说明至少有一个待认证设备没有采用正确
的私钥和/或采用正确的随机数生成密文,可能为伪造的身份认证信息,因此,此时可以认
为该次身份认证失败,判定待认证设备集中所有设备认证失败。
[0091] 步骤210,生成用于指示所述各待认证设备认证失败的告警信息并输出。
[0092] 在判定待认证设备集中所有设备认证失败后,可以向用户发送告警信息,提示用户待认证设备认证失败,请用户检查网络和设备。在向用户发送告警信息的同时,还可以同
时提示用户认证失败的待认证设备集的设备标识,以及对应的认证服务端的设备标识。
[0093] 可选的,在所述认证服务端为云平台的情况下,所述待认证设备为网关设备。如图2所示,可以将云平台作为认证服务端,对作为待认证设备的网关1和网关2进行身份认证。
此时,云平台存储有预设公钥,网关1和网关2存储有与预设公钥对应的私钥。
[0094] 在所述认证服务端为网关的情况下,所述待认证设备为终端。如图2所示,可以将网关1作为认证服务端,对作为待认证设备的终端1、终端2和终端3进行身份认证,也可以将
网关2作为认证服务端,对作为待认证设备的终端4、终端5和终端6进行身份认证。
[0095] 本发明实施例提供了一种身份认证方法,通过向待认证设备集发送随机数;待认证设备集包括至少一个待认证设备的设备标识;接收待认证设备集中各待认证设备发送的
密文,得到密文集;其中,密文集中各密文为相对应的待认证设备基于随机数生成的;根据
预设公钥对密文集进行解密,得到集合认证信息;在集合认证信息和随机数一致的情况下,
确定各待认证设备通过身份认证。本发明的方法能够实现对待认证设备的并行认证,即通
过对待认证设备集中所有设备发送的密文进行整合,并对整合后的密文集进行解密,再将
解密结果与随机数进行比对,如果比对结果一致,则说明待认证设备集中的所有设备均采
用了正确的随机数,可以确定所有待认证设备均通过身份认证,无需采用串行的方式对待
认证设备进行认证,大幅提高了对待认证设备进行身份认证的效率,此外,由于通过认证需
要获得正确的密文集,而密文集是由各待认证设备生成的密文组合而成的,因此,需要获得
所有待认证设备的私钥才能破解本发明的身份认证方法,大大提升了网络设备的安全性。
[0096] 如图4所示,示出了本发明的一种身份认证系统结构图。
[0097] 下面结合图4的物联网系统构架图来对本发明的身份认证方法进行进一步描述。
[0098] 如图4所示,将网关作为认证服务端,终端1、终端2直至终端n作为待认证设备。先由网关的随机数生成模块生成一个随机数,再由网关的随机数发送模块将该随机数发送至
终端1至终端n,终端1至终端n接收到随机数后,通过随机数加密模块对随机数进行加密,得
到各自的密文,终端1至终端n将各自的密文发送至网关,网关通过密文组合模块将各个密
文组合成密文集,再通过密文验证模块对密文集进行解密,如果解密结果与随机数相同,则
可以确定终端1至终端n通过身份认证。
[0099] 如图5所示,示出了本发明的一种物联网系统构架图。
[0100] 下面结合图5的物联网系统构架图来对本发明的身份认证方法进行进一步描述。
[0101] 如图5所示,将网关作为认证服务端,将终端作为待认证设备,将云平台作为认证服务端的父结点。网关的共享密钥生成模块负责获取待认证设备的数量并根据预设阈值,
生成预设公钥以及与所述预设公钥对应的私钥集;网关的身份验证模块中,通过随机数生
成模块用于生成随机数,并通过随机数发送模块向待认证设备集发送随机数;终端中,身份
验证模块中的随机数加密模块根据自身的私钥对网关发送的随机数进行加密,得到密文,
再通过密文发送模块将密文发送至网关;网关在接收到终端发送的密文后,通过网关的密
文组合模块将接收到的所有终端发送的密文进行组合,得到密文集,再通过密文验证模块
使用预设公钥对密文集进行解密,并判断此次身份认证是否通过。在数据传输之前,云平台
需要通过共享密钥生成模块生成目标公钥以及与目标公钥对应的目标私钥集,并将目标公
钥存储在云平台,将目标私钥集中的私钥发送给网关。在数据传输过程中,先由终端中数据
发送模块的明文发送模块将子数据包以明文的形式发送至网关,网关通过数据加密模块中
的明文接收与组合模块,将预设时间段内接收到的所有各个终端发送的子数据包进行组
合,得到数据包,再通过网关的数据加密模块根据网关携带的目标私钥对数据包进行加密
得到目标密文,通过数据加密模块中的数据扩散功能将数据包共享至同级设备,并通过密
文发送功能将目标密文发送至云平台。云平台的数据解密模块接收各个网关发送的目标密
文,并将所有目标密文进行组合,得到目标密文集,再由云平台的数据解密模块根据预设公
钥对目标密文集进行解密得到数据包。
[0102] 如图6所示,示出了本发明的一种身份认证装置的结构框图。
[0103] 下面结合图6来对本发明的身份认证装置进行详细描述。
[0104] 随机数发送模块501,用于向待认证设备集发送随机数;所述待认证设备集包括至少一个待认证设备的设备标识。
[0105] 密文组合模块502,用于接收所述待认证设备集中各待认证设备发送的密文,并对所述密文进行组合,得到密文集;其中,所述密文集中各密文为各待认证设备根据对应的私
钥和所述随机数生成的。
[0106] 密文解密模块503,用于根据预设公钥对所述密文集进行解密,得到集合认证信息。
[0107] 密文验证模块504,用于在所述集合认证信息和所述随机数一致的情况下,确定所述各待认证设备通过身份认证。
[0108] 密文验证模块504,还用于在所述集合认证信息和所述随机数不一致的情况下,确定所述各待认证设备未通过身份认证;生成用于指示所述各待认证设备认证失败的告警信
息并输出.
[0109] 可选的,身份认证装置还包括:
[0110] 密钥生成模块,用于生成所述预设公钥以及与所述预设公钥对应的私钥集;其中,所述私钥集中的私钥与所述各待认证设备一一对应。
[0111] 私钥发送模块,用于将所述私钥集中的私钥发送至对应的待认证设备,以使得所述各待认证设备根据对应的私钥和所述随机数生成密文。
[0112] 数据加密模块,用于接收目标设备发送的数据包,并根据认证服务端的目标私钥和所述数据包生成目标密文;其中,所述目标设备为所述待认证设备集中至少一个设备,所
述目标私钥由所述认证服务端的父结点设备生成并下发至所述认证服务端。
[0113] 加密数据发送模块,用于向所述认证服务端的父结点设备发送所述目标密文,以使得所述认证服务端的父结点设备根据目标公钥对目标密文集进行解密,并得到所述数据
包。
[0114] 密钥生成模块,还用于确定所述待认证设备集包含的设备数量,在所述设备数量大于或等于预设阈值的情况下,生成所述预设公钥以及与所述预设公钥对应的私钥集;还
用于采用分布式密钥产生算法生成所述预设公钥,以及与所述预设公钥对应的私钥集。
[0115] 数据加密模块,还包括:
[0116] 数据接收子模块,用于持续接收所述各待认证设备发出的子数据包,并将预设时间段内接收到的所有子数据包进行组合得到数据包。
[0117] 本发明实施例提供了一种身份认证方法,通过向待认证设备集发送随机数;待认证设备集包括至少一个待认证设备的设备标识;接收待认证设备集中各待认证设备发送的
密文,得到密文集;其中,密文集中各密文为相对应的待认证设备基于随机数生成的;根据
预设公钥对密文集进行解密,得到集合认证信息;在集合认证信息和随机数一致的情况下,
确定各待认证设备通过身份认证。本发明的方法能够实现对待认证设备的并行认证,即通
过对待认证设备集中所有设备发送的密文进行整合,并对整合后的密文集进行解密,再将
解密结果与随机数进行比对,如果比对结果一致,则说明待认证设备集中的所有设备均采
用了正确的随机数,可以确定所有待认证设备均通过身份认证,无需采用串行的方式对待
认证设备进行认证,大幅提高了对待认证设备进行身份认证的效率,此外,由于通过认证需
要获得正确的密文集,而密文集是由各待认证设备生成的密文组合而成的,因此,需要获得
所有待认证设备的私钥才能破解本发明的身份认证方法,大大提升了网络设备的安全性。
[0118] 本发明实施例还提供一种认证服务端,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述身份认证方法
实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0119] 本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述身份认证方法实施例的各个过程,且能
达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只
读存储器(Read‑Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称
RAM)、磁碟或者光盘等。
[0120] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0121] 本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合
软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计
算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器
等)上实施的计算机程序产品的形式。
[0122] 本发明实施例是参照根据本发明实施例的方法、终端(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的
每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算
机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端的处理
器以产生一个机器,使得通过计算机或其他可编程数据处理终端的处理器执行的指令产生
用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的
系统。
[0123] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
[0124] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端上,使得在计算机或其他可编程终端上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程终端上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0125] 尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为
包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0126] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作
之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那
些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者
终端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排
除在包括所述要素的过程、方法、物品或者终端中还存在另外的相同要素。
[0127] 以上对本发明所提供的一种身份认证方法和一种身份认证装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只
是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发
明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理
解为对本发明的限制。