基于预共享成对密钥的通用轻量级群密钥认证分配方法及装置

文档序号:34215665发布日期:2023-05-17 22:46阅读:236来源:国知局
基于预共享成对密钥的通用轻量级群密钥认证分配方法及装置

本发明涉及物联网、车联网等安全通信,尤其涉及一种基于预共享成对密钥的通用轻量级群密钥认证分配方法及装置。


背景技术:

1、在安全通信中,我们需要在所有的通信参与者之间共享一次性的会话密钥。大多数密钥分发方案,在传统的一对一通信中只能允许两个用户共享一个密钥。而现有一些文章提出多参与者的群密钥分配这样一种方案。lein harn等人于2020年提出了一种基于预共享成对密钥的轻量级群密钥分配方案,所提方案的主要操作是两个或两个以上密钥之间的密钥比较(即逻辑异或操作)和密钥推导函数的计算,其广义方案可以基于任何类型的成对密钥分配方案;接着他们又于2022年提出了一种基于逻辑操作的通用车联网轻量群密钥分发方案,由于他们提出的方案只需要逻辑操作,因此都是轻量级的,适合于p2p iov通信应用。

2、通过上述分析,目前的预共享成对密钥的通用轻量级群密钥认证分配方案,虽然是轻量级的,但是在安全性上仍存在不足,并且通信效率仍然有待提高。


技术实现思路

1、本发明通过提供一种基于预共享成对密钥的通用轻量级群密钥认证分配方法及装置,用以解决或者至少部分解决现有技术中存在的安全性和通信效率不高的技术问题。

2、为了解决上述技术问题,本发明采用如下技术方案:

3、第一方面提供了基于预共享成对密钥的通用轻量级群密钥认证分配方法,包括:

4、s1:选取一个用户作为发起人,其中,发起人与其余每个用户之间具有一个预共享成对密钥;

5、s2:发起人根据与其他每个用户之间的预共享的成对密钥生成公共信息,并计算与第一个用户的预共享成对密钥的公共哈希值,发起人将生成的公共信息与公共哈希值广播给其余用户,其中,公共信息采用二进制字符串描述;

6、s3:除发起人之外的其他用户根据接收的公共信息与公共哈希值生成群密钥。

7、在一种实施方式中,步骤s1包括:

8、s1.1:选取u0作为系统发起人,余下n-1个用户分别为u1、...、un-1,n为所有用户的总数量;

9、s1.2:使用n-1位比特串对用户u1、…、un-1进行编码,对于用户ui,其n-1位比特串的第i位为1,其余所有比特位均为0,其中i为用户编号,得到用户ui的编码为:发起人与其余每个用户之间的预共享成对密钥为k0,,i=1,2…n-1,其中,所有预共享成对密钥长度均相等,即|k0,|=k0,|=…=|k0,|。

10、在一种实施方式中,步骤s2包括:

11、s2.1:初始化一个公共描述比特串spkey,其比特串长度为(-1)||,其中|key|=|k0,|,|0,|为u0与ui之间成对共享密钥k0,的比特串长度,i为用户编号,i=1,2…n-1,n为所有用户的总数量;

12、s2.2:发起人u0依次扫描与其他用户ui的共享密钥k0,每一位比特,扫描范围j为1到|k0,|,即j会进行|0,|次循环,每一次循环中,u0先提取u1的编码作为初始比特串dis1,j,再顺序访问除u1外所有用户预共享成对密钥的第j位,u0通过判断k0,(j)与其他预共享成对密钥的第j位即k0,(j)是否相等来确定比特串的值,其中k为用户编号,k=2…n-1,如果判断成功则将该用户编码与上一个用户通过判定得到的比特串disk-1,j进行异或运算,得到的结果作为比特串disk,j的值,否则直接将disk-1,j的值赋值给disk,j,直至disk,j中k=n-1时,最终生成spkey()的描述比特串disj,即disj=disn-1,j=pkey();使用spj依次对所有disj进行连接,进而得到最终的公共描述比特串spkey,作为生成的公共信息;其中k0,()为u0与ui之间预共享成对密钥的第j位的比特值,spkey()为第j组描述比特串,spj为第j次连接得到的比特串结果,disi,j当i=1时disi,j即为u1的编码,当i取其他值时,disi,j是u0通过判断k0,(j)与k0,(j)是否相等来确定的结果值,disj为spkey的描述比特串;

13、s2.3:计算预共享密钥k0,的公共哈希值sphash=(k0,),k0,为u0与第一个用户u1的预共享成对密钥,h为哈希函数;

14、s2.4::u0将公共描述比特串spkey和公共哈希值sphash广播给其余用户ui,通信量为(n-1)|key|+|h(key)|。

15、在一种实施方式中,步骤s2.2包括:

16、s2.2.1:定义一个参数k,k用于描述用户,k={2,…,n-1};

17、s2.2.2:每一次循环的开始,u0都先对参数dis1,进行赋值,dis1,=code(u1),dis1,长度为n-1;

18、s2.2.3:从用户u2开始,k循环n-2次,每一次循环均判断k0,(j)==k0,()是否成立,判断每个用户的共享密钥k0,k的第j个比特是否等于k0,1的第j个比特,判断后进行计算,得到的结果作为比特串disk,j的值,直至k=n-1时,计算disj=disn-1,j;

19、s2.2.4:每得到一个disj后,当j=1时spj=isj,当j为其他值时,计算spj=pj-1||j,通过u0连接并组合spj-1与disj结果为spj,其中spj-1||j代表两个比特串spj-1、disj的连接操作;

20、s2.2.5:j循环结束后,即扫描完所有用户的每一位比特后得j=|k0,i|,u0连接并组合了|k0,i|个disj,计算spkey=spj,u0得到最终的公共描述比特串spkey。

21、在一种实施方式中,步骤s2.2.3中disk,j的确定方式,包括:

22、s2.2.3.1:当判断等式k0,k(j)==k0,1(j)成立时,计算即disk-1,j与code(uk)的异或运算结果作为disk,j;

23、s2.2.3.2:当判断等式不成立时,则disk,j=disk-1,j。

24、在一种实施方式中,步骤s3包括:

25、s3.1:ui接收spkey和sphash后对spkey进行解析,定义一个参数j,j的取值范围为1到

26、s3.2:ui先初始化一个描述比特串dj=spkey(j*1)…spkey(j*(n-1)),spkey(j*1)指spkey(j)第1位比特值,spkey(j*(n-1))为spkey(j)第n-1位比特值,可以得到dj=disj;

27、s3.3:ui根据dj第i位的值对群密钥key进行计算,解析完spkey的所有dj的第i位后得到ui的群密钥key,其中,key的确定方式为:s3.3.1:若dj第i位为1,则计算key(j)=k0,i(j),即key的第j位与k0,i的第j位值相等;若dj第i位为0,则计算即key的第j位为k0,i的第j位值取反。

28、在一种实施方式中,所述方法还包括:

29、判断h(key)是否等于sphash,如果相等,则表示认证成功,获得群密钥key,否则,认证失败。

30、基于同样的发明构思,本发明第二方面提供了基于预共享成对密钥的通用轻量级群密钥认证分配装置,包括:

31、初始化模块,用于选取一个用户作为发起人,其中,发起人与其余每个用户之间具有一个预共享成对密钥;

32、公共信息生成与分发模块,用于通过发起人根据与其他每个用户之间的预共享的成对密钥生成公共信息,并计算与第一个用户的预共享成对密钥的公共哈希值,发起人将生成的公共信息与公共哈希值广播给其余用户,其中,公共信息采用二进制字符串描述;

33、群密钥生成模块,用于除发起人之外的其他用户根据接收的公共信息与公共哈希值生成群密钥。

34、基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。

35、基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。

36、相对于现有技术,本发明的优点和有益的技术效果如下:

37、本发明提供的基于预共享成对密钥的通用轻量级群密钥认证分配方法,首先在系统初始化阶段,为任何一对成员之间生成了预共享一对密钥,选择u0作为系统发起人,对其余用户ui进行编码为2i-1;接着生成和广播公共信息阶段,由u1和其他与u1共享密钥当前一位字符串相同的用户将他们的编号根据逻辑异或构造出n-1位公共比特串disj,通过遍历|k0,|次得到公共描述比特串spkey,同时计算出预共享密钥k0,的哈希值sphash后u0向其他用户ui广播spkey和sphash;最后ui通过spkey解析出群密钥key,再通过认证最终得到群密钥key。本发明采用简单的逻辑二进制计算,因此它是一个非常轻量级的群密钥分配方案。且方案只进行一次广播,通信量为(n-2)|key|+|h(key)|,提高了传输效率。在该方案中,攻击者可以获得spkey和sphash,但无法获得所有预共享的成对密钥。因此,攻击者无法得到群密钥key的任何信息,方案十分安全。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1