System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种适用于同态运算的加解密方法及装置制造方法及图纸_技高网

一种适用于同态运算的加解密方法及装置制造方法及图纸

技术编号:40349228 阅读:5 留言:0更新日期:2024-02-09 14:33
本说明书实施例提供了一种适用于同态运算的加解密方法及装置。其密钥包括第一密钥p和第二密钥q。设定变量的数据结构中包含:预设的第一比特的查找区段和预设的第二比特的明文区段。在加密时,针对待加密的包含隐私数据的明文数据m,随机生成第二中间数v,基于v和生成的随机数生成第一中间值u,以使得u和v的和值满足:查找区段的数据为特定值,明文区段的数据为m。接着,分别基于密钥p和q,对u和v进行例如与取模有关的运算,基于第二运算结果得到m的密文。在解密时,基于密钥p和q以及密文相加次数w,利用上述数据结构中查找区为特定值的特点进行解密。利用上述方式可以进行同态加密和解密。

【技术实现步骤摘要】

本说明书一个或多个实施例涉及数据安全,尤其涉及一种适用于同态运算的加解密方法及装置


技术介绍

1、目前,同态加密算法常常应用于联邦学习、多方安全计算等涉及多方联合处理且需要保护数据安全性和隐私性的场景中。同态加密中的加法同态,是指在不解密的情况下,对多个密文进行加法运算,效果等同于对相应的明文做加法运算之后再加密。现有的同态加密算法存在计算量大,运算效率低的问题。

2、因此,希望能有改进的方案,可以提供能够支持同态运算的更高效的加解密算法。


技术实现思路

1、本说明书一个或多个实施例描述了一种适用于同态运算的加解密方法及装置,以防止数据泄露,提高数据的安全性。具体的技术方案如下。

2、第一方面,实施例提供了一种适用于同态运算的加密方法,包括:

3、获取待加密的明文数据m以及密钥,所述密钥包括第一密钥p和第二密钥q;

4、基于特定值,以及随机生成的随机数和第二中间值v,对所述明文数据m进行第一运算,得到第一中间值u,以使得所述第一中间值u和所述第二中间值v的和值m满足:预设的第一比特的查找区段中的数据为所述特定值,预设的第二比特的明文区段中的数据包含所述明文数据m;

5、分别基于所述第一密钥p和第二密钥q,对所述第一中间值u和第二中间值v进行第二运算,以使得第二运算结果分别模所述第一密钥p、所述第二密钥q后的值,分别与所述第一中间值u、所述第二中间值v相关;

6、基于第二运算结果得到所述明文数据m的密文。>

7、在一种实施方式中,所述和值m的数据结构包括:高ρ1比特区段、所述查找区段、所述明文区段和低ρ2比特区段的依次拼接。

8、在一种实施方式中,所述随机数包括两个随机数;所述对所述明文数据m进行第一运算的步骤,包括:

9、将一所述随机数、所述特定值、所述明文数据m和另一所述随机数分别作为所述数据结构中各个区段的数据,得到构建值;

10、将所述构建值的查找区段和明文区段的数据分别减去所述第二中间值v的查找区段和明文区段的数据,得到所述第一中间值u。

11、在一种实施方式中,所述特定值为0。

12、在一种实施方式中,所述密钥还包括第一数a和第二数b;所述对所述第一中间值u和第二中间值v进行第二运算的步骤,包括:

13、计算所述第一中间值u与所述第一数a的乘积,使用所述第一密钥p对该乘积取模;

14、计算所述第二中间值v与所述第二数b的乘积,使用所述第二密钥q对该乘积取模。

15、在一种实施方式中,所述第二运算结果包括两个取模后的数;所述根据第二运算结果得到所述明文数据m的密文的步骤,包括:

16、使用随机数r1与所述第一密钥p的乘积,以及随机数r2与所述第二密钥q的乘积,分别与取模后的两个结果叠加,得到所述明文数据m的第一密文x和第二密文y。

17、在一种实施方式中,所述对所述第一中间值u和第二中间值v进行第二运算的步骤,包括:

18、使用所述第一密钥p与所述第二密钥q的乘积,对两个乘积的和值取模,所述两个乘积包括:与所述第一中间值u与所述第一密钥p的乘积相关的第一乘积,以及与所述第二中间值v与所述第二密钥q的乘积相关的第二乘积。

19、在一种实施方式中,随机生成随机数和第二中间值v的步骤,包括:

20、基于设定的所述第一中间值u与所述第一密钥p之间的数值关系条件,以及所述第二中间值v与所述第二密钥q之间的数值关系条件,随机生成所述随机数和第二中间值v。

21、第二方面,实施例提供了一种适用于同态运算的解密方法,包括:

22、获取待解密的密文数据c、密文相加次数w以及密钥,所述密钥包括第一密钥p和第二密钥q;

23、基于所述第一密钥p和第二密钥q,对所述密文数据c进行与取模有关的目标运算,得到第三中间值m′;所述目标运算是加密阶段中对应运算的逆运算;

24、确定第一参数t和第二参数s的参数值,使得所述第三中间值m′与第四中间值n′的目标和值中,预设的第一比特的查找区段的数据为:特定值与所述密文相加次数w的乘积;其中,所述目标和值包括所述查找区段和预设的第二比特的明文区段,所述第四中间值n′基于所述第一参数t、所述第二参数s、所述第一密钥p和所述第二密钥q之间的第三运算得到;

25、基于确定的参数值,确定所述目标和值的明文区段的区段值,从所述区段值中提取出解密的明文数据m。

26、在一种实施方式中,所述密钥还包括第一数a和第二数b;所述密文数据c包括第一密文x和第二密文y;

27、所述对所述密文数据c进行与取模有关的目标运算的步骤,包括:

28、计算所述第一数a的逆与所述第一密文x的乘积,使用所述第一密钥p对该乘积取模;

29、计算所述第二数b的逆与所述第二密文y的乘积,使用所述第二密钥q对该乘积取模;

30、基于取模后的两个结果的和值得到第三中间值m′。

31、在一种实施方式中,所述第三运算包括:

32、对两个乘积取和值,所述两个乘积包括:所述第一参数t与所述第一密钥p的乘积,以及所述第二参数s与所述第二密钥q之间的乘积。

33、在一种实施方式中,所述确定第一参数t和第二参数s的参数值的步骤,包括:

34、确定第五中间值d,使得所述第五中间值d中查找区段的数值与所述第三中间值m′的查找区段的数值的和值为:所述特定值与所述密文相加次数w的乘积;

35、将所述第五中间值d中查找区段的数值划分成θ等份,得到θ个小区段;

36、执行以下循环,按照从高位到低位的顺序依次寻找每个小区段对应的商:将所述第五中间值d作为被除数,将所述第一密钥p和第二密钥q作为除数,寻找当前循环中小区段对应的商,使得该商与所述除数通过所述第三运算得到的目标乘积,与该小区段的数值相同,并将所述第五中间值d减去所述目标乘积,得到更新后的第五中间值d;任意一个商包括与第一参数t对应的第一商和与所述第二参数s对应的第二商;

37、基于所述θ个小区段的所有商的和值,确定所述第一参数t和第二参数s的参数值;所有商的和值包括所有第一商的第一和值以及所有第二商的第二和值。

38、在一种实施方式中,所述寻找当前循环中小区段对应的商的步骤,包括:

39、从第一预计算表中寻找当前循环中小区段对应的商;

40、其中,所述第一预计算表包括与所述θ个小区段分别对应的θ个第一维度值,每个第一维度值包含2μ个第二维度值,μ为小区段的比特值,每个第二维度值包括所述第一参数t的参数值、所述第二参数s的参数值以及对应的所述目标乘积的值。

41、在一种实施方式中,所述基于所述θ个小区段的所有商的和值,确定所述第一参数t和第二参数s的参数值的步骤,包括:

42、获取第一更新参数tδ和第二更新参本文档来自技高网...

【技术保护点】

1.一种适用于同态运算的加密方法,包括:

2.根据权利要求1所述的方法,所述和值M的数据结构包括:高ρ1比特区段、所述查找区段、所述明文区段和低ρ2比特区段的依次拼接。

3.根据权利要求2所述的方法,所述随机数包括两个随机数;所述对所述明文数据m进行第一运算的步骤,包括:

4.根据权利要求1所述的方法,所述特定值为0。

5.根据权利要求1所述的方法,所述密钥还包括第一数a和第二数b;所述对所述第一中间值u和第二中间值v进行第二运算的步骤,包括:

6.根据权利要求5所述的方法,所述第二运算结果包括两个取模后的数;所述根据第二运算结果得到所述明文数据m的密文的步骤,包括:

7.根据权利要求1所述的方法,所述对所述第一中间值u和第二中间值v进行第二运算的步骤,包括:

8.根据权利要求1所述的方法,随机生成随机数和第二中间值v的步骤,包括:

9.一种适用于同态运算的解密方法,包括:

10.根据权利要求9所述的方法,所述密钥还包括第一数a和第二数b;所述密文数据c包括第一密文x和第二密文y;

11.根据权利要求9所述的方法,所述第三运算包括:

12.根据权利要求11所述的方法,所述确定第一参数t和第二参数s的参数值的步骤,包括:

13.根据权利要求12所述的方法,所述寻找当前循环中小区段对应的商的步骤,包括:

14.根据权利要求12所述的方法,所述基于所述θ个小区段的所有商的和值,确定所述第一参数t和第二参数s的参数值的步骤,包括:

15.根据权利要求14所述的方法,所述获取第一更新参数tΔ和第二更新参数sΔ的若干组参数值的步骤,包括:

16.一种适用于同态运算的加密装置,包括:

17.一种适用于同态运算的解密装置,包括:

18.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-15中任一项所述的方法。

19.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-15中任一项所述的方法。

...

【技术特征摘要】

1.一种适用于同态运算的加密方法,包括:

2.根据权利要求1所述的方法,所述和值m的数据结构包括:高ρ1比特区段、所述查找区段、所述明文区段和低ρ2比特区段的依次拼接。

3.根据权利要求2所述的方法,所述随机数包括两个随机数;所述对所述明文数据m进行第一运算的步骤,包括:

4.根据权利要求1所述的方法,所述特定值为0。

5.根据权利要求1所述的方法,所述密钥还包括第一数a和第二数b;所述对所述第一中间值u和第二中间值v进行第二运算的步骤,包括:

6.根据权利要求5所述的方法,所述第二运算结果包括两个取模后的数;所述根据第二运算结果得到所述明文数据m的密文的步骤,包括:

7.根据权利要求1所述的方法,所述对所述第一中间值u和第二中间值v进行第二运算的步骤,包括:

8.根据权利要求1所述的方法,随机生成随机数和第二中间值v的步骤,包括:

9.一种适用于同态运算的解密方法,包括:

10.根据权利要求9所述的方法,所述密钥还包括第一数a和第二数b;所述密...

【专利技术属性】
技术研发人员:潘无穷顾洪良杨峰卫振强李婷婷
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1