一种基于同态加密技术的数据共享方法及装置

文档序号:28804405发布日期:2022-02-09 01:24阅读:210来源:国知局
一种基于同态加密技术的数据共享方法及装置

1.本发明涉及信息加密技术领域,特别是涉及一种基于同态加密技术的数据共享方法及装置。


背景技术:

2.目前由于科技的迅速发展,个人隐私数据更容易泄露,在数据传输过程中,容易遭到不法分子泄露个人数据,导致数据被窃取。
3.在数据共享中,采用的是基于传统加密技术的数据共享方法以实现数据共享。基于传统加密技术的数据共享方法中,每个数据分享机构均采用传统加密方法对待分享数据进行加密,而传统的数据加密算法都是直接对数据分享机构要分享的数据进行访问,然后进行加密,加密后再传输,无法直接在密文层面进行计算,普遍存在加解密效率低、安全性能差等缺点,影响数据共享的可靠性。


技术实现要素:

4.本发明的目的是提供一种基于同态加密技术的数据共享方法及装置,以提高数据共享的可靠性。
5.为实现上述目的,本发明提供了如下方案:
6.一种基于同态加密技术的数据共享方法,所述方法包括:
7.利用认证中心为数据统计中心和每个已报备数据分享机构生成数字签名密钥;所述数字签名密钥包括rsa公钥和rsa私钥;所述已报备数据分享机构为向所述认证中心报备的数据分享机构;
8.利用数据共享系统将所有所述已报备数据分享机构进行组队,得到组队后的数据分享机构;
9.利用密钥管理中心为所述组队后的数据分享机构生成同态加密公钥和同态加密私钥;
10.利用所述组队后的数据分享机构和所述同态加密公钥为待共享客户数据进行同态加密,得到客户的密文数据;所述待共享客户数据为利用所述rsa私钥加密后的客户的数据;
11.利用数据统计中心对所有所述客户的密文数据中相同客户的密文数据进行加法同态计算,得到所有客户的密文数据;
12.利用所述组队后的数据分享机构和所述同态加密私钥对所述所有客户的密文数据进行解密,得到所有所述待共享客户数据的密文结果;
13.利用所述组队后的数据分享机构和所述rsa公钥对所述密文结果进行解密,得到所有所述待共享客户数据的明文结果。
14.可选地,所述利用认证中心为数据统计中心和每个已报备数据分享机构生成数字签名密钥,之前还包括:
15.利用认证中心为每个数据分享机构分配唯一的注册凭证码。
16.可选地,所述利用认证中心为数据统计中心和每个已报备数据分享机构生成数字签名密钥,之后还包括:
17.利用数据共享系统和所述注册凭证码对参与数据共享的所有所述已报备数据分享机构进行身份验证,得到所有合法数据分享机构;所述合法数据分享机构为通过身份验证的参与数据共享的所述已报备数据分享机构。
18.可选地,所述利用所述组队后的数据分享机构和所述同态加密公钥为待共享客户数据进行同态加密,得到客户的密文数据,之后还包括:
19.利用所述组队后的数据分享机构生成第一信息摘要;所述第一信息摘要为所述密文数据对应的信息摘要;
20.利用所述组队后的数据分享机构和所述rsa私钥对所述第一信息摘要进行数字签名,得到第一签名信息;所述第一签名信息为所述第一信息摘要对应的签名信息;
21.利用数据统计中心和所述rsa公钥对所述第一签名信息进行验证,得到第一合法密文数据;所述第一合法密文数据为通过验证的所述第一签名信息对应的客户的密文数据。
22.可选地,所述利用数据统计中心对所有所述客户的密文数据中相同客户的密文数据进行加法同态计算,得到所有客户的密文数据,之后还包括:
23.利用数据统计中心和所述rsa私钥对所述所有客户的密文数据进行数字签名,得到第二签名信息;所述第二签名信息为所述所有客户的密文数据对应的签名信息;
24.利用数据统计中心生成第二信息摘要;所述第二信息摘要为所述所有客户的密文数据对应的信息摘要;
25.利用所述组队后的数据分享机构和所述rsa公钥对所述第二签名信息进行验证,得到第二合法密文数据;所述第二合法密文数据为通过验证的所述第二签名信息对应的所有客户的密文数据。
26.本发明还提供了如下方案:
27.一种基于同态加密技术的数据共享装置,应用所述的基于同态加密技术的数据共享方法,其特征在于,所述装置包括认证中心、数据共享系统、密钥管理中心、数据统计中心和多个数据分享机构;
28.所述认证中心用于为所述数据统计中心和每个已报备数据分享机构生成数字签名密钥;所述数字签名密钥包括rsa公钥和rsa私钥;所述已报备数据分享机构为向所述认证中心报备的所述数据分享机构;
29.所述数据共享系统用于将所有所述已报备数据分享机构进行组队,得到组队后的数据分享机构;
30.所述密钥管理中心用于为所述组队后的数据分享机构生成同态加密公钥和同态加密私钥;
31.所述组队后的数据分享机构用于利用所述同态加密公钥为待共享客户数据进行同态加密,得到客户的密文数据;所述待共享客户数据为利用所述rsa私钥加密后的客户的数据;
32.所述数据统计中心用于对所有所述客户的密文数据中相同客户的密文数据进行
加法同态计算,得到所有客户的密文数据;
33.所述组队后的数据分享机构还用于利用所述同态加密私钥对所述所有客户的密文数据进行解密,得到所有所述待共享客户数据的密文结果;
34.所述组队后的数据分享机构还用于利用所述rsa公钥对所述密文结果进行解密,得到所有所述待共享客户数据的明文结果。
35.可选地,所述认证中心还用于为每个数据分享机构分配唯一的注册凭证码。
36.可选地,所述数据共享系统还用于利用所述注册凭证码对参与数据共享的所有所述已报备数据分享机构进行身份验证,得到所有合法数据分享机构;所述合法数据分享机构为通过身份验证的参与数据共享的所述已报备数据分享机构。
37.可选地,所述组队后的数据分享机构还用于生成第一信息摘要;所述第一信息摘要为所述密文数据对应的信息摘要;
38.所述组队后的数据分享机构还用于利用所述rsa私钥对所述第一信息摘要进行数字签名,得到第一签名信息;所述第一签名信息为所述第一信息摘要对应的签名信息;
39.所述数据统计中心还用于利用所述rsa公钥对所述第一签名信息进行验证,得到第一合法密文数据;所述第一合法密文数据为通过验证的所述第一签名信息对应的客户的密文数据。
40.可选地,所述数据统计中心还用于利用所述rsa私钥对所述所有客户的密文数据进行数字签名,得到第二签名信息;所述第二签名信息为所述所有客户的密文数据对应的签名信息;
41.所述数据统计中心还用于生成第二信息摘要;所述第二信息摘要为所述所有客户的密文数据对应的信息摘要;
42.所述组队后的数据分享机构还用于利用所述rsa公钥对所述第二签名信息进行验证,得到第二合法密文数据;所述第二合法密文数据为通过验证的所述第二签名信息对应的所有客户的密文数据。
43.根据本发明提供的具体实施例,本发明公开了以下技术效果:
44.本发明公开的基于同态加密技术的数据共享方法及装置,在数据分享中,每个数据分享机构利用同态加密对待分享数据进行加密,基于同态加密算法直接对密文进行计算,即直接对密文再次加密,对计算(加密)后的密文解密得到的结果与直接对明文进行同样计算(加密)的结果相同,克服了传统加密算法将客户数据加密后传输,无法直接在密文层面进行计算的缺陷,颠覆了传统的加密模式。同态加密允许对加密后的数据(数据分享机构分享出来的数据是加密后的)进行处理,目的是保证数据处理安全,即在处理密文数据时不会泄露原始数据,拥有私钥的用户对处理完成的数据进行解密即可得到正确的运算结果。由于对计算后的密文进行解密与直接对密文进行解密相比,安全性更高,因此,基于同态加密技术的数据共享方法及装置,能够提高数据共享的可靠性。
附图说明
45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图
获得其他的附图。
46.图1为本发明基于同态加密技术的数据共享方法实施例的流程图。
具体实施方式
47.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.本发明的目的是提供一种基于同态加密技术的数据共享方法及装置,以提高数据共享的可靠性。
49.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
50.图1为本发明基于同态加密技术的数据共享方法实施例的流程图。参见图1,该基于同态加密技术的数据共享方法包括:
51.步骤101:利用认证中心为数据统计中心和每个已报备数据分享机构生成数字签名密钥;数字签名密钥包括rsa公钥和rsa私钥;已报备数据分享机构为向认证中心报备的数据分享机构。
52.该步骤101之前还包括:
53.利用认证中心为每个数据分享机构分配唯一的注册凭证码。
54.该步骤101之后还包括:
55.利用数据共享系统和注册凭证码对参与数据共享的所有已报备数据分享机构进行身份验证,得到所有合法数据分享机构;合法数据分享机构为通过身份验证的参与数据共享的已报备数据分享机构。
56.上述步骤均为初始化阶段的主要步骤,初始化阶段主要是生成合法机构身份凭证、设置数字签名密钥和布置同态加密环境。
57.初始化阶段具体包括:
58.认证中心为每个数据分享机构fi(i∈1,2,

,n)分配一个唯一且不可更改的注册凭证码ceri,为后续验证机构(数据分享机构)的合法性做准备。该实施例中,模拟注册凭证为32位长度的字符串,该字符串由“a~z、0~9”共36个字符随机组成。数据分享机构必须向认证中心报备,由认证中心为每个合法的机构fi(i∈1,2,3,

,n)及数据统计中心(dc)生成与之唯一对应的数字签名密钥。
59.其中,认证中心生成上述数字签名密钥的过程具体包括:
60.随机选取两个不相等的大质数p和q,计算密钥长度n=p*q(为保证安全,n的长度需要大于512-bit,通常选择1024-bit或2048-bit为宜),计算n的欧拉函数φ(n),φ(n)=(p-1)(q-1);随机选取整数e,满足1<e<φ(n)且gcd(e,φ(n))=1(gcd代表最大公约数),即e与φ(n)互质;计算e对于φ(n)的模反元素d,即d
·
e≡1(modφ(n))(de被φ(n)除的余数为1)。
61.得到rsa公钥pk
rsa
=(n,e)、私钥sk
rsa
=(n,d)。
62.以上是生成一对rsa公私钥的过程,机构fi的rsa公钥为pk
rsai
=(n,e)i,私钥为
sk
rsai
=(n,d)i,数据统计中心的rsa公钥为pk
rsadc
=(n,e)
dc
(后面密文计算需要用到pk
rsadc
=(n,e)
dc
),私钥为sk
rsadc
=(n,d)
dc
,私钥分发给fi和dc用于对用户提供的密文数据进行签名时使用(将sk
rsai
给fi,将sk
rsadc
给dc),公钥公开用于fi和dc对接收的用户提供的密文数据做签名校验时使用。
63.步骤102:利用数据共享系统将所有已报备数据分享机构进行组队,得到组队后的数据分享机构。
64.步骤103:利用密钥管理中心为组队后的数据分享机构生成同态加密公钥和同态加密私钥。
65.该步骤102和步骤103为组队及密钥申请阶段的主要步骤。组队及密钥申请阶段主要是接受合法机构进行系统注册、组建数据共享队伍及分配同态加密密钥。
66.组队及密钥申请阶段具体包括:
67.首先进行组队,参与共享的机构fi,用身份凭证(注册凭证码)ceri进入数据共享系统进行注册,认证中心分配给fi的ceri发给数据共享系统,系统接收到请求后将通过比对ceri对fi的身份进行验证,和fi的ceri进行比对的ceri是预先设置并且存储在认证中心,保证验证成功的机构可登入系统(数据共享系统接收到ceri后,将ceri发送给认证中心,由认证中心进行ceri比对,比对结果发送给数据共享系统)。成功登入系统的机构选择需要组队的其他机构并发出组队邀请。被邀请的机构看到组队请求信息后,可根据需求选择是否接受邀请。参与客户数据共享的机构完成组队后,向密钥管理中心发起密钥申请,密钥管理中心接到申请后,执行paillier同态密钥生成算法keygen。
68.密钥管理中心里的加密方法具体包括:
69.首先需要设定算法的密钥位数bitlength(根据公钥参数的长度设定),也就是公钥参数n 1的长度(单位为bit)。n 1即n,也就是上面得到的公钥参数。接下来随机选择两个相互独立的大素数p1和q1,由于n1=p1
·
q1,因此p1和q1的长度约为n1的一半,即若bitlength(n)=1024,那么设定bitlength(p1)=bitlength(q1)=512,且p1和q1要满足gcd(p1q1,(p1-1)(q1-1))=1(gcd代表最大公约数)。再随机选择一个整数(z
*
代表正整数集),使得z=gnmodn2,满足n整除g的阶,判定z是模n2的n次剩余还是非剩余,满足gcd(l(g
λ
modn2),n)=1(λ表示得出的最小公倍数,l是一个函数,等于x-1/n,后面说明了l),其中z表示整数,令:
70.μ=(l(g
λ
(modn2)))-1
(modn),表示余数用来判断z是模n2的n次剩余还是非剩余。其中,g
λ
(modn2)表示的余数,此处记为a。(la)-1
表示此处记为b,b(modn)表示的余数。
71.其中,lcm表示最小公倍数。
72.那么,该队伍(参与客户数据共享的机构组成的队伍)的同态加密公钥pk
he
=(n,g)(n,g的值通过上面的计算确定),私钥sk
he
=(λ,μ),密钥管理中心将密钥相关参数(同态加密公钥pk
he
=(n,g)和私钥sk
he
=(λ,μ))存入数据库并在需要时返回给机构。
73.步骤104:利用组队后的数据分享机构和同态加密公钥为待共享客户数据进行同
态加密,得到客户的密文数据;待共享客户数据为利用rsa私钥加密后的客户的数据。
74.该步骤104之后还包括:
75.利用组队后的数据分享机构生成第一信息摘要;第一信息摘要为密文数据对应的信息摘要。
76.利用组队后的数据分享机构和rsa私钥对第一信息摘要进行数字签名,得到第一签名信息;第一签名信息为第一信息摘要对应的签名信息。
77.利用数据统计中心和rsa公钥对第一签名信息进行验证,得到第一合法密文数据;第一合法密文数据为通过验证的第一签名信息对应的客户的密文数据。
78.该步骤104为加密及传输阶段的主要步骤。加密及传输阶段主要是由各机构加密自己的客户数据并提交给数据统计中心。
79.加密及传输阶段具体包括:
80.机构fi对要共享的客户数据mi={pi,si}(rsa加密后的数据)进行同态加密操作,数据mi的第一个字段(pi)为客户的id(每个身份证号对应一个id,同一个客户在不同机构中的id是相同的),后续k个字段为客户的数据同一个队伍中的每个机构对自己的客户数据s
pq
进行加密,数据由n条记录和k个字段组成(n条记录指的是在机构里的记录数,k个字段为每个记录里的数据),对每个数据s
pq
依次利用同态公钥pk
he
=(n,g)加密,enc
he
为加密算法,得到密文ctxt
spq
,ctxt
spq
=enc
he
(s
pq
,pk
he
)。
81.所有数据都加密完成后得到密文数据ci,客户数据变为ci={pi,ctxti}。密文数据ci和密文ctxt
spq
之间是整体和部分的关系,即多个密文ctxt
spq
组成密文数据ci。
82.接下来生成数字签名,机构fi先通过单向散列函数中的md5生成ci的信息摘要再利用自己的rsa私钥sk
rsai
=(n,d)i对信息摘要进行数字签名(sig为签名算法),将密文数据、信息摘要和签名信息即提交给数据统计中心。
83.步骤105:利用数据统计中心对所有客户的密文数据中相同客户的密文数据进行加法同态计算,得到所有客户的密文数据。
84.该步骤105之后还包括:
85.利用数据统计中心和rsa私钥对所有客户的密文数据进行数字签名,得到第二签名信息;第二签名信息为所有客户的密文数据对应的签名信息。
86.利用数据统计中心生成第二信息摘要;第二信息摘要为所有客户的密文数据对应的信息摘要。
87.利用组队后的数据分享机构和rsa公钥对第二签名信息进行验证,得到第二合法密文数据;第二合法密文数据为通过验证的第二签名信息对应的所有客户的密文数据。
88.上述步骤均为密文计算阶段的主要步骤。密文计算阶段主要是由数据统计中心对
各机构传来的数据验签后进行密文计算数据验签和解密得到客户数据共享。
89.密文计算阶段具体包括:
90.数据统计中心接收到各个机构发来的信息,用pk
rsai
对签名信息进行验证,验证的方法是比较消息摘要是否相等,首先将ci采用相同的md5算法计算出消息摘要同时用机构fi的rsa公钥pk
rsai
=(n,e)i对签名sigi解密得到消息摘要,比较两个消息摘要是否相等,若相等,则通过验证,反之,则签名无效,信息可能来自不合法机构,数据不会进入数据统计中心,目的是确认信息属于合法机构且未被篡改。
91.将验证通过后的所有密文中id相同的每条数据记录的k个字段数据分别进行加法同态计算,将所有id中的字段数据都分别计算完毕后,得到密文数据ctxt
all
(密文数据ctxt
all
和ctxt之间是整体和部分的关系,即多个ctxt即组成密文数据ctxt
all
)。
92.得到由所有客户数据组成的密文数据,即得到ctxt
he
={ctxt
all
,p
all
},其中,ctxt
all
是所有的密文数据(ctxt
all
代表所有密文数据,解密是针对ctxt
all
里面的密文数据进行解密),ctxt
he
是所有机构相同客户的数据,p
all
是所有人(客户)的id,然后用sk
rsadc
进行数字签名sig
dc
=sig(ctxt
he
,sk
rsadc
),最后将密文信息、信息摘要(此处信息摘要的计算方法与前述信息摘要的计算方法等同)和签名信息即发送给各个机构。
93.步骤106:利用组队后的数据分享机构和同态加密私钥对所有客户的密文数据进行解密,得到所有待共享客户数据的密文结果。
94.步骤107:利用组队后的数据分享机构和rsa公钥对密文结果进行解密,得到所有待共享客户数据的明文结果。
95.该步骤106和步骤107为解密共享阶段的主要步骤,解密共享阶段主要是由机构对计算后的密文结果进行解密共享。
96.解密共享阶段具体包括:
97.机构fi利用同态私钥sk
he
=(λ,μ)对ctxt
all
中的每一个数据依次进行解密,m
all
=dec
all
(ctxt
all
,sk
he
)(dec
all
为解密算法,前述的enc为加密算法)即可得到共享的客户数据明文结果m
all
(这个结果由参与共享的机构fi再分享出去)。
98.本发明基于同态加密技术的数据共享方法,是一种不需要访问数据本身就可以加工数据(对数据进行加密)的方法。本发明方法在同态加密技术的基础上,运用同态加密算法,将同态加密技术应用于数据共享中,利用其可对密文进行操作的特性保障多方数据在共享和处理过程中的隐私性,增强其加密效果,在不访问数据的情况下加工数据,提高了安全性能。
99.本发明与现有技术相比具有如下优点:
100.优点1:相较于传统的数据共享加密方法,paillier同态加密算法在加密过程和解密过程优于传统算法。
101.优点2:运用paillier同态加密算法,能有效对密文进行计算,保证数据处理安全。
102.优点3:使用paillier同态加密算法,密钥生成时间效率更高,具备更安全的数据共享条件。
103.本发明还提供一种基于同态加密技术的数据共享装置,该装置应用上述基于同态
加密技术的数据共享方法实施例中所述的基于同态加密技术的数据共享方法,该基于同态加密技术的数据共享装置包括认证中心、数据共享系统、密钥管理中心、数据统计中心和多个数据分享机构。
104.认证中心用于为数据统计中心和每个已报备数据分享机构生成数字签名密钥;数字签名密钥包括rsa公钥和rsa私钥;已报备数据分享机构为向认证中心报备的数据分享机构。
105.数据共享系统用于将所有已报备数据分享机构进行组队,得到组队后的数据分享机构。
106.密钥管理中心用于为组队后的数据分享机构生成同态加密公钥和同态加密私钥。
107.组队后的数据分享机构用于利用同态加密公钥为待共享客户数据进行同态加密,得到客户的密文数据;待共享客户数据为利用rsa私钥加密后的客户的数据。
108.数据统计中心用于对所有客户的密文数据中相同客户的密文数据进行加法同态计算,得到所有客户的密文数据。
109.组队后的数据分享机构还用于利用同态加密私钥对所有客户的密文数据进行解密,得到所有待共享客户数据的密文结果。
110.组队后的数据分享机构还用于利用rsa公钥对密文结果进行解密,得到所有待共享客户数据的明文结果。
111.具体的,认证中心还用于为每个数据分享机构分配唯一的注册凭证码。
112.数据共享系统还用于利用注册凭证码对参与数据共享的所有已报备数据分享机构进行身份验证,得到所有合法数据分享机构;合法数据分享机构为通过身份验证的参与数据共享的已报备数据分享机构。
113.组队后的数据分享机构还用于生成第一信息摘要;第一信息摘要为密文数据对应的信息摘要。
114.组队后的数据分享机构还用于利用rsa私钥对第一信息摘要进行数字签名,得到第一签名信息;第一签名信息为第一信息摘要对应的签名信息。
115.数据统计中心还用于利用rsa公钥对第一签名信息进行验证,得到第一合法密文数据;第一合法密文数据为通过验证的第一签名信息对应的客户的密文数据。
116.数据统计中心还用于利用rsa私钥对所有客户的密文数据进行数字签名,得到第二签名信息;第二签名信息为所有客户的密文数据对应的签名信息。
117.数据统计中心还用于生成第二信息摘要;第二信息摘要为所有客户的密文数据对应的信息摘要。
118.组队后的数据分享机构还用于利用rsa公钥对第二签名信息进行验证,得到第二合法密文数据;第二合法密文数据为通过验证的第二签名信息对应的所有客户的密文数据。
119.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
120.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说
明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1