一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种保护隐私的数据聚合方法

2022-07-16 22:22:09 来源:中国专利 TAG:


1.本发明涉及信息安全技术,具体涉及一种保护隐私的数据聚合方法。


背景技术:

2.随着移动设备的普及,数据聚合变得越来越重要。利用数据聚合技术,云服务器可以对大量用户数据进行收集和分析,从而做出正确决策。然而,简单的数据聚合可能侵犯用户的隐私,因此保护隐私的数据聚合是当前的一个研究热点。目前虽然已有不少保护隐私的数据聚合方法被相继提出,但大多数方法都采用了公钥密码算法,导致这些方法的开销较大,不适合实际应用。此外,移动设备由于故障等原因可能导致用户掉线。2017年,bonawitz等人(practical secure aggregation for privacy-preserving machine learning,acm ccs 2017)利用双掩码加密方法设计了一种保护用户隐私的数据聚合方法,该方案虽然支持用户掉线。然而,该方法使用的是一种中心化的模型,需要用户与云服务器进行频繁的交互,导致用户端的资源开销很大。因此,如何在用户存在掉线的情况下依然保证数据聚合方法的高效性变得越来越重要。


技术实现要素:

3.本发明为克服现有技术的不足之处,提供一种保护隐私的数据聚合方法,以期能减少用户端的资源开销,还能支持用户掉线,并能在用户掉线的情况下依然保证数据聚合的高效性。
4.本发明为达到上述发明目的,采用如下技术方案:
5.本发明一种保护隐私的数据聚合方法的特点是应用于由云服务器和n个用户所组成的网络环境中,并包括如下步骤:
6.步骤一、参数生成阶段:
7.步骤1.1、给定安全参数λ、用户数n和门限值t,选择长度为2λ的素数q,确定q阶乘法循环群令生成元定义一个哈希函数f以及长度为λ的素数p;
8.步骤1.2、所述云服务器将公开参数发送给第i个用户ui∈u,其中,u表示全体用户的集合;
9.步骤二、密钥生成阶段:
10.步骤2.1、第i个用户ui根据所述公开参数params执行diffie-hellman密钥生成算法并生成两对密钥(pki,ski)和(pk
′i,sk
′i),其中,pki,pk
′i表示第i个用户ui∈u的两个公钥、ski,sk
′i表示第i个用户ui∈u的两个私钥,然后第i个用户ui∈u将自身的公钥对(pki,pki′
)发送给云服务器;
11.步骤2.2、所述云服务器接收到至少t个用户发送的公钥对后,将至少t个用户所构成的用户集合记为u1,且
12.令si=(ui,pki,pk
′i)表示第i个用户ui的公钥列表;
13.所述云服务器将至少t个用户的公钥列表转发给在用户集合u1中的所有用户;
14.步骤三、密钥分享阶段:
15.步骤3.1、第i个用户ui∈u1接收到公钥列表后,判断是否满足|u1|≥t,如满足,则执行步骤3.2;否则,则方法中止;其中,|u1|表示用户集合u1中的用户数;
16.步骤3.2、第i个用户ui∈u1使用门限shamir秘密分享算法将自身的一个私钥ski在用户集合u1中进行分享,并生成私钥份额其中,sk
i,j
表示将私钥ski分给第j个用户uj的秘密值;
17.步骤3.3、第i个用户ui∈u1使用aes对称加密算法对私钥份额进行加密,并将加密后的密文通过所述云服务器转发给用户集合u1中所有其他用户,其中,根据第i个用户ui∈u1的另一个私钥sk
′i以及除第i个用户ui∈u1外的其他第k个用户uk∈u1的公钥pk
′k,利用diffie-hellman密钥交换算法生成共享密钥key
i,k
并作为aes对称加密算法中的加密密钥;c
i,j
表示第i个用户ui∈u1与第j个用户uj∈u1使用aes对称加密算法对私钥份额加密后的密文,uj∈u1\ui表示用户集合u1中除第i个用户ui外的其他第j个用户;
18.步骤3.4、所述云服务器收集至少t个用户发送的密文集合将至少t个用户所构成的用户集合记为u2,且然后将密文集合转发给用户集合u2中的所有用户;
19.步骤四、加密数据阶段:
20.步骤4.1、第i个用户ui∈u2收到所述云服务器发送的密文集合后,判断是否满足|u2|≥t,如满足,则执行步骤4.2;否则,则方法中止;其中,|u2|表示用户集合u2中的用户数;
21.步骤4.2、任意第i个用户ui∈u2和第j个用户uj∈u2根据用自身的密钥(pki,ski)和(pkj,skj),利用diffie-hellman密钥交换算法计算共享密钥k
i,j
,并将共享密钥k
i,j
作为哈希函数f的输入;
22.步骤4.3、用户消息的处理:
23.步骤4.3.1、假设用户集合u2中的用户已按照一定规则进行排序且排序结果云服务器和用户均已知,令用户集合u2中的所有用户的下标排序为且
24.步骤4.3.2、所述云服务器首先给第i1个用户发送一个初始的随机数
25.步骤4.3.3、第i1个用户选择一个随机数并发送一个确认信号signal=0依次给集用户合u2中所有的其他用户;如果第i2个用户接收到信号,则将所述确认信号设置为signal=1,表示第i2个用户在线;否则,继续重新发给下一个
用户,直到第i1个用户收到确认信号signal=1为止;
26.步骤4.3.4、假设第i2个用户返回了确认信号signal=1,则第i1个用户将发送密文给所述云服务器,其中,表示第i1个用户拥有的消息,并发送随机数之和给第i2个用户其中,表示第i1个用户和第ij个用户之间的共享密钥;mod表示取余,\表示除外,∧表示且;表示整数域集合{0,1,...,p-1};
27.步骤4.3.5、用户集合u2中的每个用户均按照步骤4.3.3-步骤4.3.4过程进行消息处理,直到用户集合u2中的最后一个在线用户将自身的密文和随机数之和发送给所述云服务器;
28.步骤4.4、所述云服务器收集至少t个用户发送的密文和最后一个在线用户发送的随机数之和r,并将相应用户记为用户集合u3,且且随机数之和所述云服务器将用户集合u3中包含的用户告知给所述用户集合u3中的所有用户;
29.步骤五、聚合解密阶段:
30.步骤5.1、第i个用户ui∈u3接收到用户集合u3后,判断是否满足|u3|≥t,若满足,则执行步骤5.2;否则,方法中止;
31.步骤5.2、对于掉线的用户uj∈u2\u3,第i个在线用户ui∈u3使用aes对称加密算法解密掉线用户uj∈u2\u3私钥份额的密文并将解密后的私钥份额发送给所述云服务器;
32.步骤5.3、所述云服务器收集至少t个用户发送的私钥份额,并利用门限shamir秘密分享算法重构掉线用户uj∈u2\u3的私钥然后所述云服务器根据重构的私钥与第i个在线用户ui∈u3的公钥pki,利用diffie-hellman密钥交换算法生成共享密钥用于消除掉线用户uj∈u2\u3所生成的掩码值;
33.所述云服务器利用式(1)得到最终的聚合值
[0034][0035]
与现有技术相比,本发明的有益效果是:
[0036]
1、本发明设计一种改进的双层掩码加密技术,即采用环形结构处理用户的数据。与现有使用双层掩码加密技术的方法相比,本发明不仅对用户数据进行了保护,而且减少了云服务器与用户之间的交互,从而减少了用户端的资源开销。
[0037]
2、本发明采用diffie-hellman密钥交换算法和门限shamir秘密分享算法作为底层结构。利用diffie-hellman密钥交换算法生成共享密钥并作为双层掩码加密技术中的第一层掩码,利用门限shamir秘密分享算法对私钥进行分享,两者结合使用使得本发明能够容忍用户掉线。
[0038]
3、本发明对用户数据进行了全面的安全性分析。即使云服务器与任意一组少于t个用户的合谋,也不会获得任何关于其他用户的隐私数据,除非从聚合的结果中推断出什么。此外,通过大量的实验也证明了本发明的效用性。
附图说明
[0039]
图1为本发明的系统模型图;
[0040]
图2为本发明的方法流程图;
[0041]
图3a为本发明在掉线率为0%时的总计算开销示意图;
[0042]
图3b为本发明在掉线率为10%时的总计算开销示意图;
[0043]
图3c为本发明在掉线率为20%时的总计算开销示意图;
[0044]
图3d为本发明在掉线率为30%时的总计算开销示意图;
[0045]
图4a为本发明在掉线率为0%时的总通信开销示意图;
[0046]
图4b为本发明在掉线率为10%时的总通信开销示意图;
[0047]
图4c为本发明在掉线率为20%时的总通信开销示意图;
[0048]
图4d为本发明在掉线率为30%时的总通信开销示意图。
具体实施方式
[0049]
本实施例中,参见图1,一种保护隐私的数据聚合方法,是应用于由云服务器和n个用户所组成的网络环境中。本实施例中,流程主要包括:参数生成阶段、密钥生成阶段、密钥分享阶段、加密数据阶段、聚合解密阶段,参见图2,并包括如下步骤:
[0050]
步骤一、参数生成阶段:
[0051]
步骤1.1、给定安全参数λ、用户数n和门限值t,选择长度为2λ的素数q,确定q阶乘法循环群令生成元定义一个哈希函数f:{0,1}
*

{0,1}

以及长度为λ的素数p;
[0052]
步骤1.2、云服务器将公开参数发送给第i个用户ui∈u,其中,u表示全体用户的集合;
[0053]
步骤二、密钥生成阶段:
[0054]
步骤2.1、第i个用户ui根据公开参数params执行diffie-hellman密钥生成算法并生成两对密钥(pki,ski)和(pk
′i,sk
′i),其中,pki,pk
′i表示第i个用户ui∈u的两个公钥、ski,sk
′i表示第i个用户ui∈u的两个私钥,然后第i个用户ui∈u将自身的公钥对(pki,pk
′i)发送给云服务器。本实施例中,第一对密钥(pki,ski)用来生成哈希函数f的秘密输入值,而第二对密钥(pk
′i,sk
′i)是用来生成aes对称加密算法的加密密钥;
[0055]
步骤2.2、云服务器接收到至少t个用户发送的公钥对后,将至少t个用户所构成的用户集合记为u1,且
[0056]
令si=(ui,pki,pk
′i)表示第i个用户ui的公钥列表;
[0057]
云服务器将至少t个用户的公钥列表转发给在用户集合u1中的所有用户;
[0058]
步骤三、密钥分享阶段:
[0059]
步骤3.1、第i个用户ui∈u1接收到公钥列表后,判断是否满足|u1|≥t,如满
足,则执行步骤3.2;否则,则方法中止;其中,|u1|表示用户集合u1中的用户数;
[0060]
步骤3.2、第i个用户ui∈u1使用门限shamir秘密分享算法将自身的一个私钥ski在用户集合u1中进行分享,并生成私钥份额其中,sk
i,j
表示将私钥ski分给第j个用户uj的秘密值;
[0061]
步骤3.3、第i个用户ui∈u1使用aes对称加密算法对私钥份额进行加密,并将加密后的密文通过云服务器转发给用户集合u1中所有其他用户,其中,根据第i个用户ui∈u1的另一个私钥sk
′i以及除第i个用户ui∈u1外的其他第k个用户uk∈u1的公钥pk
′k,利用diffie-hellman密钥交换算法生成共享密钥key
i,k
并作为aes对称加密算法中的加密密钥;c
i,j
表示第i个用户ui∈u1与第j个用户uj∈u1使用aes对称加密算法对私钥份额加密后的密文,uj∈u1\ui表示用户集合u1中除第i个用户ui外的其他第j个用户;
[0062]
步骤3.4、云服务器收集至少t个用户发送的密文集合将至少t个用户所构成的用户集合记为u2,且然后将密文集合转发给用户集合u2中的所有用户;
[0063]
步骤四、加密数据阶段:
[0064]
步骤4.1、第i个用户ui∈u2收到云服务器发送的密文集合后,判断是否满足|u2|≥t,如满足,则执行步骤4.2;否则,则方法中止;其中,|u2|表示用户集合u2中的用户数;
[0065]
步骤4.2、任意第i个用户ui∈u2和第j个用户uj∈u2根据用自身的密钥(pki,ski)和(pkj,skj),利用diffie-hellman密钥交换算法计算共享密钥k
i,j
,并将共享密钥k
i,j
作为哈希函数f的输入;
[0066]
步骤4.3、用户消息处理方法是按如下过程进行:
[0067]
步骤4.3.1、假设用户集合u2中的用户已按照一定规则进行排序且排序结果云服务器和用户均已知,令用户集合u2中的所有用户的下标排序为且
[0068]
步骤4.3.2、云服务器首先给第i1个用户发送一个初始的随机数
[0069]
步骤4.3.3、第i1个用户选择一个随机数并发送一个确认信号signal=0依次给集用户合u2中所有的其他用户;如果第i2个用户接收到信号,则将确认信号设置为signal=1,表示第i2个用户在线;否则,继续重新发给下一个用户,直到第i1个用户收到确认信号signal=1为止;
[0070]
步骤4.3.4、假设第i2个用户返回了确认信号signal=1,则第i1个用户
将发送密文给云服务器,其中,表示第i1个用户拥有的消息,并发送随机数之和给第i2个用户其中,表示第i1个用户和第ij个用户之间的共享密钥;mod表示取余,\表示除外,∧表示且;表示整数域集合{0,1,...,p-1};
[0071]
步骤4.3.5、用户集合u2中的每个用户均按照步骤4.3.3-步骤4.3.4过程进行消息处理,直到用户集合u2中的最后一个在线用户将自身的密文和随机数之和发送给云服务器;本实施例中,对步骤4.3.3-步骤4.3.4进行一般化处理。一般地,假设当前第ik个用户它已经收到前一个用户发来的随机数r

,此时,第ik个用户选择一个随机数发送密文给云服务器,其中表示第ik个用户拥有的消息,并发送随机数之和给下一个用户。重复这个过程,直到集合u2中的最后一个用户完成加密操作,该用户将密文和随机数总和都发送给云服务器;
[0072]
步骤4.4、云服务器收集至少t个用户发送的密文和最后一个在线用户发送的随机数之和r,并将相应用户记为用户集合u3,且且随机数之和云服务器将用户集合u3中包含的用户告知给用户集合u3中的所有用户;
[0073]
步骤五、聚合解密阶段:
[0074]
步骤5.1、第i个用户ui∈u3接收到用户集合u3后,判断是否满足|u3|≥t,若满足,则执行步骤5.2;否则,方法中止;
[0075]
步骤5.2、对于掉线的用户uj∈u2\u3,第i个在线用户ui∈u3使用aes对称加密算法解密掉线用户uj∈u2\u3的私钥份额的密文并将解密后的私钥份额发送给云服务器;本实施例中,aes对称加密算法中的加密密钥是在线用户i∈u3的私钥sk
′i与掉线用户k∈u2\u3的公钥pk
′k通过diffie-hellman密钥交换算法生成的共享密钥key
i,k
,因此在线用户i∈u3可以解密得到私钥份额
[0076]
步骤5.3、云服务器收集至少t个用户发送的私钥份额,并利用门限shamir秘密分享算法重构掉线用户uj∈u2\u3的私钥然后云服务器根据重构的私钥与第i个在线用户ui∈u3的公钥pki,利用diffie-hellman密钥交换算法生成共享密钥用于消除掉线用户uj∈u2\u3所生成的掩码值;
[0077]
云服务器利用式(1)得到最终的聚合值
[0078][0079]
下面对于本发明的正确性、安全性以及计算和通信开销进行进一步说明:
[0080]
a)正确性:
[0081]
由下面的公式可知,本方案满足正确性:
[0082][0083]
b)安全性:
[0084]
本发明方案在半诚实模型下能够实现隐私性,因为在这种情况下云服务器与部分用户的合谋是最具有攻击性的敌手,但只要合谋方的数量少于门限值t,就能确保不会泄露诚实方的隐私数据。首先,每个用户通过双层掩码加密技术来加密数据,假设云服务器与任意t-1个用户合谋去推测剩余n-t 1个诚实用户的输入,由于第一层掩码是由所有用户通过diffie-hellman密钥交换算法计算得到的,因此本方案中只要存在一个诚实用户就不会泄露诚实方的隐私数据。其次,如果某个用户在方案执行过程中掉线,云服务器利用幸存用户发送的私钥份额重构该掉线用户的私钥,从而消除该用户第一层掩码。然而,即使云服务器消除了该用户第一层掩码,由于第二层掩码的保护,使得云服务器无法获得该掉线用户的隐私数据。最后,如果某个用户因为网络的延迟,使得云服务器误以为该用户掉线,致使云服务器知道该用户第一层掩码,同理,由于云服务器不知道该用户选择的随机数,因而也保护了数据隐私。
[0085]
性能分析:
[0086]
记2017年bonawitz等人的方法为psaml,下面比较两个方法的开销。实验代码用java编写,在intellij idea集成开发环境上编译,运行在windows 10系统上,pc机配置为intel(r)core(tm)i7-6700 cpu,ram 16gb。
[0087]
用户数据由随机数生成器random()生成;使用密钥长度为128比特的aes对称加密算法;sha-256作为哈希函数。本发明考虑用户掉线率分别为0%,10%,20%和30%,掉线率0%表示系统中没有用户掉线,同理,掉线率为10%,20%和30%时分别表示系统运行过程中,用户掉线的数量占总用户数量的比率。
[0088]
c)计算开销:
[0089]
图3a给出了本发明方法与psaml在掉线率为0%时的总计算开销,图3b给出了本发明方法与psaml在掉线率为10%时的总计算开销,图3c给出了本发明方法与psaml在掉线率为20%时的总计算开销,图3d给出了本发明方法与psaml在掉线率为30%时的总计算开销。
[0090]
d)通信开销:
[0091]
图4a给出了本发明方法与psaml在掉线率为0%时的总通信开销,图4b给出了本发明方法与psaml在掉线率为10%时的总通信开销,图4c给出了本发明方法与psaml在掉线率为20%时的总通信开销,图4d给出了本发明方法与psaml在掉线率为30%时的总通信开销。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献