数据聚合认证加密方法、装置、设备及计算机存储介质与流程

文档序号:34824800发布日期:2023-07-20 07:05阅读:148来源:国知局
数据聚合认证加密方法、装置、设备及计算机存储介质与流程

本公开涉及信息安全,更具体地说,涉及数据聚合认证加密方法、装置、设备及计算机存储介质。


背景技术:

1、在数据传输、存储等过程中,为了保证数据安全性,可以对数据进行认证加密,且可公开验证的认证加密能够实现验证操作与解密操作的分离,支持对密文的公开验证。

2、现有的实现公开验证性的方案,大多都是将elgamal方案和schnorr签名方案进行简单结合,然后将方案的机密性归约到elgamal方案的安全性。但是,这种简单的组合无法抵抗已知明文攻击,即方案达不到cpa(chosen-plaintext attack,选择明文攻击)安全性。此外,ma changshe和chen kefei于2003年提出了一个安全的可公开验证的认证加密方案,但是为了实现公开验证性,需对密文做专门的变换,且该方案还被指出存在缺陷,即验证方可以以不可忽略的概率拒绝一个有效签名。再者,上述这些方案都仅考虑明文仅由单方加密认证的情形,并未实现多方加密认证的功能。再者,现有的较为常见的是聚合签名(或多重签名),即多个参与方针对同一个明文共同生成一个聚合签名。但是,聚合签名仅能保证数据的完整性和真实性,无法同时实现数据的机密性,适用性差。

3、综上所述,如何提供一种适用性好的数据聚合认证加密方法是目前本领域技术人员亟待解决的问题。


技术实现思路

1、本公开的目的是提供一种适用性好的数据聚合认证加密方法。本公开还提供了一种数据聚合认证加密装置、电子设备及计算机可读存储介质。

2、为了实现上述目的,本公开提供如下技术方案:

3、根据本公开实施例的第一方面,提供一种数据聚合认证加密方法,应用于加密认证参与方中的目标参与方,包括:

4、获取加密聚合方传输的待加密的目标消息;

5、获取椭圆曲线参数,所述椭圆曲线参数包括基点、所述基点的阶值、第一哈希函数、签名哈希函数;

6、基于所述阶值生成所述目标参与方的第一随机数,基于所述基点对所述目标参与方的所述第一随机数进行加密,得到所述目标参与方的加密随机数,并传输所述目标参与方的所述加密随机数至所述加密认证参与方中的其他参与方;

7、获取所述其他参与方的所述加密随机数;

8、获取消息接收方的公钥,基于所述消息接收方的公钥及所述目标参与方的目标随机数生成所述目标参与方的第一数值,并传输所述目标参与方的所述第一数值至所述其他参与方;

9、获取所述其他参与方的所述第一数值,并获取与所述其他参与方生成的聚合密钥;

10、基于所有的所述加密随机数、所述第一哈希函数、所有的所述第一数值、所述聚合密钥、所述签名哈希函数、所述阶值、所述目标参与方的私钥对所述目标消息进行加密认证,得到所述目标参与方的加密认证片段;

11、传输所述目标参与方的所述加密认证片段至所述加密聚合方,以使所述加密聚合方基于所有的所述加密认证片段生成所述目标消息的聚合密文。

12、优选的,所述椭圆曲线参数包括聚合哈希函数;

13、与所述其他参与方生成所述聚合密钥,包括:

14、基于所述阶值生成所述目标参与方的私钥;

15、基于所述基点对所述目标参与方的所述私钥进行加密,得到所述目标参与方的公钥;

16、获取所述其他参与方的所述公钥,将所有的所述公钥作为验证密钥集合;

17、基于所述目标参与方的所述公钥、所述验证密钥集合及所述聚合哈希函数生成所述目标参与方的密钥片段;

18、获取所述其他参与方的所述密钥片段;

19、基于所有的所述密钥片段、所有的所述公钥生成所述聚合密钥。

20、优选的,所述基于所述目标参与方的所述公钥、所述验证密钥集合及所述聚合哈希函数生成所述目标参与方的密钥片段,包括:

21、通过密钥片段运算公式,基于所述目标参与方的所述公钥、所述验证密钥集合及所述聚合哈希函数生成所述目标参与方的所述密钥片段;

22、所述密钥片段运算公式包括:

23、

24、其中,aj表示所述目标参与方的所述密钥片段;hagg表示所述聚合哈希函数;t表示所述验证密钥集合;表示所述目标参与方的所述公钥;||表示拼接;

25、所述基于所有的所述密钥片段、所有的所述公钥生成所述聚合密钥,包括:

26、通过聚合密钥运算公式,基于所有的所述密钥片段、所有的所述公钥生成所述聚合密钥;

27、所述聚合密钥运算公式包括:

28、

29、其中,pkagg表示所述聚合密钥;t表示所述加密认证参与方的总数量;表示所述加密认证参与方中第i个参与方的所述公钥;ai表示所述加密认证参与方中第i个参与方的所述密钥片段。

30、优选的,所述椭圆曲线参数包括第二哈希函数;

31、所述基于所述阶值生成所述目标参与方的第一随机数,包括:

32、选取随机数rj∈[1,n-1]作为所述目标参与方的所述第一随机数,n表示所述阶值;

33、所述传输所述目标参与方的所述加密随机数至所述加密认证参与方中的其他参与方,包括:

34、通过第二数值运算公式,基于所述第二哈希函数对所述目标参与方的所述加密随机数进行加密,得到所述目标参与方的第二数值;

35、所述第二数值运算公式包括:

36、bj=hcom(rj),rj=[rj]g;

37、其中,bj表示所述目标参与方的所述第二数值;hcom表示所述第二哈希函数;rj表示所述目标参与方的所述加密随机数;g表示所述基点;

38、传输所述目标参与方的所述第二数值及所述目标参与方的所述加密随机数至所述其他参与方,以使所述其他参与方在验证bj=hcom(rj)正确后接收所述目标参与方的所述第二数值。

39、优选的,所述基于所述消息接收方的公钥及所述目标参与方的目标随机数生成所述目标参与方的第一数值,包括:

40、通过第一数值运算公式,基于所述消息接收方的公钥及所述目标参与方的目标随机数生成所述目标参与方的所述第一数值;

41、所述第一数值运算公式包括:

42、qj=[rj]pr;

43、其中,qj表示所述目标参与方的所述第一数值;pr表示所述消息接收方的所述公钥。

44、优选的,所述基于所有的所述加密随机数、所述第一哈希函数、所有的所述第一数值、所述聚合密钥、所述签名哈希函数、所述阶值、所述目标参与方的私钥对所述目标消息进行加密认证,得到所述目标参与方的加密认证片段,包括:

45、通过加密认证片段公式,基于所有的所述加密随机数、所述第一哈希函数、所有的所述第一数值、所述聚合密钥、所述签名哈希函数、所述阶值、所述目标参与方的所述私钥对所述目标消息进行加密认证,得到所述目标参与方的所述加密认证片段;

46、所述加密认证片段公式包括:

47、p=r+h(m);

48、e=hsig(pkagg||r||z);sj=(rj-eajdj)mod n;

49、其中,r、p、z、sj表示所述目标参与方的所述加密认证片段;ri表示所述加密认证参与方中第i个参与方的所述加密随机数;h表示所述第一哈希函数;m表示所述目标消息;qi表示所述加密认证参与方中第i个参与方的所述第一数值;hsig表示所述签名哈希函数;dj表示所述目标参与方的所述私钥;mod表示取模运算;pm表示将所述目标消息编码为椭圆曲线上的点的值。

50、根据本公开实施例的第二方面,提供一种数据聚合认证加密方法,应用于加密聚合方,包括:

51、获取椭圆曲线参数,所述椭圆曲线参数包括基点的阶值;

52、获取待加密的目标消息;

53、传输所述目标消息至各个加密认证参与方;

54、接收各个所述加密认证参与方传输的加密认证片段;

55、基于所述阶值及所有的所述加密认证片段生成所述目标消息的聚合密文;

56、其中,所述加密认证参与方中的目标参与方获取椭圆曲线参数,所述椭圆曲线参数包括基点、所述基点的所述阶值、第一哈希函数、签名哈希函数;基于所述阶值生成所述目标参与方的第一随机数,基于所述基点对所述目标参与方的所述第一随机数进行加密,得到所述目标参与方的加密随机数,并传输所述目标参与方的所述加密随机数至所述加密认证参与方中的其他参与方;获取所述其他参与方的所述加密随机数;获取消息接收方的公钥,基于所述消息接收方的公钥及所述目标参与方的目标随机数生成所述目标参与方的第一数值,并传输所述目标参与方的所述第一数值至所述其他参与方;获取所述其他参与方的所述第一数值,并获取与所述其他参与方生成的聚合密钥;基于所有的所述加密随机数、所述第一哈希函数、所有的所述第一数值、所述聚合密钥、所述签名哈希函数、所述阶值、所述目标参与方的私钥对所述目标消息进行加密认证,得到所述目标参与方的所述加密认证片段。

57、优选的,所述基于所述阶值及所有的所述加密认证片段生成所述目标消息的聚合密文,包括:

58、通过聚合密文运算公式,基于所述阶值及所有的所述加密认证片段生成所述目标消息的所述聚合密文;

59、所述聚合密文运算公式包括:

60、si=(ri-eaidi)mod n;e=hsig(pkagg||r||z);

61、

62、其中,r、p、z、s表示所述聚合密文;r、p、z、si表示所述加密认证参与方中第i个参与方的所述加密认证片段;ri表示所述加密认证参与方中第i个参与方的所述加密随机数;h表示所述第一哈希函数;m表示所述目标消息;qi=[ri]pr,qi表示所述加密认证参与方中第i个参与方的所述第一数值;pr表示所述消息接收方的所述公钥;hsig表示所述签名哈希函数;di表示所述加密认证参与方中第i个参与方的所述私钥;ri表示所述加密认证参与方中第i个参与方的所述第一随机数;ai表示所述加密认证参与方中第i个参与方的密钥片段;hagg表示聚合哈希函数;t表示所述加密认证参与方的公钥组成的验证密钥集合;表示所述加密认证参与方中第i个参与方的所述公钥;||表示拼接;mod表示取模运算;hsig表示所述签名哈希函数;pkagg表示所述聚合密钥;pm表示将所述目标消息编码为椭圆曲线上的点的值。

63、根据本公开实施例的第三方面,提供一种数据聚合认证加密方法,应用于验证方,包括:

64、获取加密聚合方传输的目标消息的聚合密文;

65、获取加密认证参与方生成的聚合密钥;

66、获取椭圆曲线参数,所述椭圆曲线参数包括基点、签名哈希函数;

67、基于所述基点、所述签名哈希函数、所述聚合密钥对所述聚合密文进行验证,得到验证结果;

68、其中,所述加密聚合方获取椭圆曲线参数,所述椭圆曲线参数包括基点的阶值;获取待加密的所述目标消息;传输所述目标消息至各个加密认证参与方;接收各个所述加密认证参与方传输的加密认证片段;基于所述阶值及所有的所述加密认证片段生成所述目标消息的所述聚合密文;

69、其中,所述加密认证参与方中的目标参与方获取椭圆曲线参数,所述椭圆曲线参数包括基点、所述基点的所述阶值、第一哈希函数、签名哈希函数;基于所述阶值生成所述目标参与方的第一随机数,基于所述基点对所述目标参与方的所述第一随机数进行加密,得到所述目标参与方的加密随机数,并传输所述目标参与方的所述加密随机数至所述加密认证参与方中的其他参与方;获取所述其他参与方的所述加密随机数;获取消息接收方的公钥,基于所述消息接收方的公钥及所述目标参与方的目标随机数生成所述目标参与方的第一数值,并传输所述目标参与方的所述第一数值至所述其他参与方;获取所述其他参与方的所述第一数值,并获取与所述其他参与方生成的聚合密钥;基于所有的所述加密随机数、所述第一哈希函数、所有的所述第一数值、所述聚合密钥、所述签名哈希函数、所述阶值、所述目标参与方的私钥对所述目标消息进行加密认证,得到所述目标参与方的所述加密认证片段。

70、优选的,所述基于所述基点、所述签名哈希函数、所述聚合密钥对所述聚合密文进行验证,得到验证结果,包括:

71、基于所述聚合密文生成验证哈希值e'=hsig(pkagg||r||z);

72、验证r=s[g]+e'[pkagg]是否成立,若成立,则得到表征所述聚合密文正确的所述验证结果;若不成立,则得到表征所述聚合密文错误的所述验证结果;

73、其中,r、p、z、s表示所述聚合密文;r、p、z、si表示所述加密认证参与方中第i个参与方的所述加密认证片段;ri表示所述加密认证参与方中第i个参与方的所述加密随机数;h表示所述第一哈希函数;m表示所述目标消息;qi=[ri]pr,qi表示所述加密认证参与方中第i个参与方的所述第一数值;pr表示所述消息接收方的所述公钥;hsig表示所述签名哈希函数;di表示所述加密认证参与方中第i个参与方的所述私钥;ri表示所述加密认证参与方中第i个参与方的所述第一随机数;ai表示所述加密认证参与方中第i个参与方的密钥片段;hagg表示聚合哈希函数;t表示所述加密认证参与方的公钥组成的验证密钥集合;表示所述加密认证参与方中第i个参与方的所述公钥;||表示拼接;mod表示取模运算;hsig表示所述签名哈希函数;pkagg表示所述聚合密钥。

74、根据本公开实施例的第四方面,提供一种数据聚合认证加密方法,应用于消息接收方,包括:

75、获取目标消息的聚合密文;

76、基于所述消息接收方的私钥对所述聚合密文进行解密,得到所述目标消息;

77、其中,所述加密聚合方获取椭圆曲线参数,所述椭圆曲线参数包括基点的阶值;获取待加密的所述目标消息;传输所述目标消息至各个加密认证参与方;接收各个所述加密认证参与方传输的加密认证片段;基于所述阶值及所有的所述加密认证片段生成所述目标消息的所述聚合密文;

78、其中,所述加密认证参与方中的目标参与方获取椭圆曲线参数,所述椭圆曲线参数包括基点、所述基点的所述阶值、第一哈希函数、签名哈希函数;基于所述阶值生成所述目标参与方的第一随机数,基于所述基点对所述目标参与方的所述第一随机数进行加密,得到所述目标参与方的加密随机数,并传输所述目标参与方的所述加密随机数至所述加密认证参与方中的其他参与方;获取所述其他参与方的所述加密随机数;获取消息接收方的公钥,基于所述消息接收方的公钥及所述目标参与方的目标随机数生成所述目标参与方的第一数值,并传输所述目标参与方的所述第一数值至所述其他参与方;获取所述其他参与方的所述第一数值,并获取与所述其他参与方生成的聚合密钥;基于所有的所述加密随机数、所述第一哈希函数、所有的所述第一数值、所述聚合密钥、所述签名哈希函数、所述阶值、所述目标参与方的私钥对所述目标消息进行加密认证,得到所述目标参与方的所述加密认证片段。

79、优选的,所述基于所述消息接收方的私钥对所述聚合密文进行解密,得到所述目标消息,包括:

80、基于所述消息接收方的私钥及所述聚合密文生第三数值pm'=z-[dr]r;

81、对所述第三数值解码得到验证消息;

82、验证p=r+h(m')是否成立,若成立,则将所述验证消息作为所述目标消息;

83、其中,m'表示所述验证消息;r、p、z、s表示所述聚合密文;r、p、z、si表示所述加密认证参与方中第i个参与方的所述加密认证片段;ri表示所述加密认证参与方中第i个参与方的所述加密随机数;h表示所述第一哈希函数;m表示所述目标消息;qi=[ri]pr,qi表示所述加密认证参与方中第i个参与方的所述第一数值;pr表示所述消息接收方的所述公钥;hsig表示所述签名哈希函数;di表示所述加密认证参与方中第i个参与方的所述私钥;ri表示所述加密认证参与方中第i个参与方的所述第一随机数;ai表示所述加密认证参与方中第i个参与方的密钥片段;hagg表示聚合哈希函数;t表示所述加密认证参与方的公钥组成的验证密钥集合;表示所述加密认证参与方中第i个参与方的所述公钥;||表示拼接;mod表示取模运算;hsig表示所述签名哈希函数;pkagg表示所述聚合密钥。

84、根据本公开实施例的第五方面,提供一种数据聚合认证加密装置,应用于加密认证参与方中的目标参与方,包括:

85、第一获取模块,用于获取加密聚合方传输的待加密的目标消息;

86、第二获取模块,用于获取椭圆曲线参数,所述椭圆曲线参数包括基点、所述基点的阶值、第一哈希函数、签名哈希函数;

87、第一生成模块,用于基于所述阶值生成所述目标参与方的第一随机数,基于所述基点对所述目标参与方的所述第一随机数进行加密,得到所述目标参与方的加密随机数,并传输所述目标参与方的所述加密随机数至所述加密认证参与方中的其他参与方;

88、第三获取模块,用于获取所述其他参与方的所述加密随机数;

89、第四获取模块,用于获取消息接收方的公钥,基于所述消息接收方的公钥及所述目标参与方的目标随机数生成所述目标参与方的第一数值,并传输所述目标参与方的所述第一数值至所述其他参与方;

90、第五获取模块,用于获取所述其他参与方的所述第一数值,并获取与所述其他参与方生成的聚合密钥;

91、第一认证模块,用于基于所有的所述加密随机数、所述第一哈希函数、所有的所述第一数值、所述聚合密钥、所述签名哈希函数、所述阶值、所述目标参与方的私钥对所述目标消息进行加密认证,得到所述目标参与方的加密认证片段;

92、第一传输模块,用于传输所述目标参与方的所述加密认证片段至所述加密聚合方,以使所述加密聚合方基于所有的所述加密认证片段生成所述目标消息的聚合密文。

93、根据本公开实施例的第六方面,提供一种电子设备,包括:

94、存储器,用于存储计算机程序;

95、处理器,用于执行所述存储器中的所述计算机程序,以实现如上任一所述方法的步骤。

96、根据本公开实施例的第七方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。

97、本公开提供的一种数据聚合认证加密方法,应用于加密认证参与方中的目标参与方,获取加密聚合方传输的待加密的目标消息;获取椭圆曲线参数,椭圆曲线参数包括基点、基点的阶值、第一哈希函数、签名哈希函数;基于阶值生成目标参与方的第一随机数,基于基点对目标参与方的第一随机数进行加密,得到目标参与方的加密随机数,并传输目标参与方的加密随机数至加密认证参与方中的其他参与方;获取其他参与方的加密随机数;获取消息接收方的公钥,基于消息接收方的公钥及目标参与方的目标随机数生成目标参与方的第一数值,并传输目标参与方的第一数值至其他参与方;获取其他参与方的第一数值,并获取与其他参与方生成的聚合密钥;基于所有的加密随机数、第一哈希函数、所有的第一数值、聚合密钥、签名哈希函数、阶值、目标参与方的私钥对目标消息进行加密认证,得到目标参与方的加密认证片段;传输目标参与方的加密认证片段至加密聚合方,以使加密聚合方基于所有的加密认证片段生成目标消息的聚合密文。本公开中,目标参与方借助椭圆曲线参数与加密认证参与方中的其他参与方一同生成目标消息的各个加密认证片段,进而使得加密聚合方可以基于所有的加密认证片段生成目标消息的聚合密文,能够同时满足机密性和完整性,适用性好。本公开提供的数据聚合认证加密装置、电子设备及计算机可读存储介质也解决了相应技术问题。

98、应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

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