掌桥专利:专业的专利平台
掌桥专利
首页

一种云计算中加密数据频繁项集的挖掘方法

文献发布时间:2023-06-19 09:46:20


一种云计算中加密数据频繁项集的挖掘方法

技术领域

本发明涉及加密域数据处理的技术领域,更具体地,涉及一种云计算中加密数据频繁项集的挖掘方法。

背景技术

随着云计算的发展,许多云服务提供商可以提供易于访问的云存储和计算资源。根据用户的需求,云服务提供商可以为用户提供指定的服务,其中就包括一系列数据挖掘算法,这种类型的云服务应用程序在实际中被广泛使用。但是,用户提交的数据可能包含用户不想透露的极其敏感的信息(如:个人位置,医疗信息或者商业数据等)。因此,对这些隐私数据进行挖掘不可避免地会带来重要的隐私泄露问题。在这种情况下,近年来,隐私保护数据挖掘引起了广泛关注,目的是在不访问数据原始内容的情况下挖掘数据库。

在实际应用中,关联规则挖掘是用于发现大规模数据集中变量之间潜在关系的数据挖掘方法,频繁项目集挖掘是关联规则挖掘的子过程,在生成关联规则之前,必须通过一些频繁项目集挖掘算法找到所有频繁项目集。

2018年8月31日,中国专利(公布号:CN108475292A)中公开了一种大规模数据集的频繁项集挖掘方法,该方法首先估算样本容量,从大规模数据集中采集样本容量大小的样本数据集,然后挖掘样本数据集中的闭频繁项集并计算大规模数据集对应的最大长度约束,以生成大规模数据集对应的缩减数据集,基于缩减数据集构建噪声,通过噪声和噪声阈值选出候选集合,并利用噪声对候选集合进行隐私保护,最后从候选集合中选出预设数量个频繁项集,此方法减少了大规模数据集频繁项集挖掘的计算强度,保证了数据挖掘的隐私性,但为了不泄露隐私数据,通过噪声对候选集合进行隐私保护,不能保证挖掘结果的正确性,而且效率不高。

发明内容

为解决现有加密数据频繁项集挖掘的方法无法同时兼顾挖掘结果正确性、隐私安全性及效率的问题,本发明提出一种云计算中加密数据频繁项集的挖掘方法,对加密数据完成在云端的频繁项集挖掘,返回正确的加密挖掘结果的同时,并且不泄露隐私数据。

为了达到上述技术效果,本发明的技术方案如下:

一种云计算中加密数据频繁项集的挖掘方法,至少包括:

S1.用户生成全同态加密私钥和自举密钥,将私钥保留的同时通过安全信道传输至数据挖掘方,将自举密钥发送至云服务器;

S2.利用私钥对数据进行加密,并将加密后的数据上传至云服务器;

S3.根据业务需求,数据挖掘方向云服务器提交查询需求,云服务器收到查询需求后,基于同态操作,进行数据的计算挖掘,并将加密的计算挖掘结果传输至数据挖掘方;

S4.数据挖掘方通过全同态加密私钥进行解密,得到挖掘结果后确认频繁项集。

在本技术方案中,整个挖掘方法的实现基于用户、云服务器及数据挖掘方构成的三方模型,用户和数据挖掘方持有加密的私钥,云服务器持有数据挖掘过程中使用到的自举密钥,用户端利用私钥对数据进行加密,并上传至云服务器,云服务器接收到数据挖掘方提交的查询需求后,进行数据挖掘计算,避免了与其他服务器的交互计算,仅在云服务器上完成全部的数据挖掘,提高了效率,而且云服务器仅对加密的数据进行同态操作,不涉及解密,提高了隐私安全性,另外本技术方案避免了传统借助第三方其它噪声媒介等对隐私安全进行保护的方式,保证了挖掘结果的正确性。

优选地,步骤S1所述的全同态加密私钥和自举密钥的过程为:

给定一个安全参数λ,生成加密私钥SK和自举密钥BK的公式满足:

{SK,BK}←TFHE.KeyGen(1

其中,TFHE.KeyGen表示生成加密私钥SK和自举密钥BK的介质。

在此,私钥SK通过安全的信道发送给所有的用户和数据挖掘方,用于加密数据;自举密钥BK发送给云服务器,用于在加密域中同态评估密文。

优选地,步骤S2所述的数据包括事务数据和挖掘参数数据,事务数据编码为布尔矩阵,再使用全同态加密私钥进行加密,过程为:

每个用户均持有事务数据,设第i个用户持有事务数据的集合记作:

其中,m

C

其中,T

挖掘参数数据为无符号整数最小支持度阈值,编码为二进制向量后,使用全同态私钥加密为minsuppCtxt,传输至云服务器,minsuppCtxt仅在数据挖掘方提交查询需求之前传输一次,在外包给云服务器之前的加密操作,保证了数据挖掘过程中的隐私安全。

优选地,步骤S2之后,步骤S3之前还包括对数据挖掘方的查询需求进行逐位加密,过程为:

查询需求记作长度为n的布尔向量q,加密公式满足:

queryCtxt←(TFHE.Enc(SK,q

其中,q

优选地,步骤S3所述的云服务器收到查询需求后,进行数据的计算挖掘的过程包括:

S31.初始化,云服务器初始化一个元素全为密文0的加密计数器布尔向量accCtxt,长度为

S32.将加密的事务集合C={C

S33.利用安全子集判定算法得到密文

S34.使用安全计数算法SecAccum将密文

S35.判断更新次数是否达到m,若否,返回步骤S33;若是,使用安全比较算法SecCmp将计数器accCtxt与无符号整数最小支持度阈值的密文向量minsuppCtxt进行比较,公式为:

其中,

在此,云服务器在数据的计算挖掘时,基于全同态加密及基于对困难问题有错误学习的扩展,在加密的数据(包括加密的查询需求向量和事务数据)上依次进行加密域中安全子集的判定、安全计数及安全比较的算法过程,保证了十分高级别的安全性。

优选地,步骤S33所述利用安全子集判定算法得到密文

S331.确定密文查询需求向量queryCtxt=(c

S332.初始化密文

S333.计算

S334.判断更新次数是否达到m,若是,输出更新后的密文

优选地,步骤S34所述的安全计数算法SecAccum将密文

S341.确定密文求向量accCtxt=(accCtxt

S342.初始化密文carry为

S342.计算

carry=HomAND(carry,accCtxt

S343.判断更新次数是否达到k,若是,输出密文向量

优选地,步骤S35利用安全比较算法SecCmp将计数器accCtxt与无符号整数最小支持度阈值的密文向量minsuppCtxt进行比较的过程为:

S351.确定计数器accCtxt=(c

S352.初始化

S353.首先初始化当前的

S354.计算

S355.判断当前j的值是否达到i-1,若否,返回步骤S354;若是,更新

S356.判断当前i的值是否达到k,若否,返回步骤S353;若是,输出

优选地,步骤S4所述的数据挖掘方通过全同态加密私钥进行解密,得到挖掘结果后确认频繁项集的过程为:

数据挖掘方使用加密私钥SK将挖掘结果解密,公式为:

其中,

与现有技术相比,本发明技术方案的有益效果是:

本发明提出一种云计算中加密数据频繁项集的挖掘方法,用户和数据挖掘方持有加密私钥,云服务器持有数据挖掘过程中须使用的自举密钥,用户端利用私钥对数据进行加密,并上传至云服务器,云服务器接收到数据挖掘方提交的查询需求后,进行数据挖掘计算,避免了与其他服务器的交互计算,仅在云服务器上完成全部的数据挖掘,提高了效率,而且云服务器仅对加密的数据进行同态操作,不涉及解密,提高了隐私安全性,另外本技术方案避免了传统借助第三方其它噪声媒介等对隐私安全进行保护的方式,保证了挖掘结果的正确性。

附图说明

图1表示本发明实施例中提出的云计算中加密数据频繁项集的挖掘方法的流程示意图;

图2表示本发明实施例中提出的当事务数据项的数目n固定,事务数据数量m不固定时的运行时间示意图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好地说明本实施例,附图某些部位会有省略、放大或缩小,并不代表实际尺寸;

对于本领域技术人员来说,附图中某些公知内容说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1所示的云计算中加密数据频繁项集的挖掘方法的流程示意图,参见图1,步骤包括:

S1.用户生成全同态加密私钥和自举密钥,将私钥保留的同时通过安全信道传输至数据挖掘方,将自举密钥发送至云服务器;

S2.利用私钥对数据进行加密,并将加密后的数据上传至云服务器;

S3.根据业务需求,数据挖掘方向云服务器提交查询需求,云服务器收到查询需求后,基于同态操作,进行数据的计算挖掘,并将加密的计算挖掘结果传输至数据挖掘方;

S4.数据挖掘方通过全同态加密私钥进行解密,得到挖掘结果后确认频繁项集。

在本实施例中,步骤S1所述的全同态加密私钥和自举密钥的过程为:

给定一个安全参数λ,生成加密私钥SK和自举密钥BK的公式满足:

{SK,BK}←TFHE.KeyGen(1

其中,TFHE.KeyGen表示生成加密私钥SK和自举密钥BK的介质。私钥SK通过安全的信道发送给所有的用户和数据挖掘方,用于加密数据;自举密钥BK发送给云服务器,用于在加密域中同态评估密文。

使用的密码学体系是全同态加密对困难问题有错误学习的扩展,上述过程基于的错误学习的具体细节为:

(1)密钥生成:LWE加密模式下的私钥s∈B

(2)加密:要加密的明文为μ∈T,密文c=(a,b),其中a∈T

(3)解密:对于密文c=(a,b),和密钥s,计算μ+e=b-a·s。若噪声e的增长控制在某个范围之内,则明文μ能够被正确解密。

(4)自举(Bootstrapping):不同于部分同态加密的密码体系,TFHE全同态加密体系,对于给定的LWE密文c=(a,b),自举算法可以在相同的密钥s下构造出对应明文相同的密文,但是噪声的量是固定的,换句话说,自举过程可以刷新密文中的噪声,对密文c的自举过程记为Bootstrap(c)。

在本实施例中,步骤S2所述的数据包括事务数据和挖掘参数数据,事务数据编码为布尔矩阵,再使用全同态加密私钥进行加密,过程为:

每个用户均持有事务数据,设第i个用户持有事务数据的集合记作:

其中,m

C

其中,T

挖掘参数数据为无符号整数最小支持度阈值,编码为二进制向量后,使用全同态私钥加密为minsuppCtxt,传输至云服务器,minsuppCtxt仅在数据挖掘方提交查询需求之前传输一次,在外包给云服务器之前的加密操作,保证了数据挖掘过程中的隐私安全。

在本实施例中,步骤S2之后,步骤S3之前还包括对数据挖掘方的查询需求进行逐位加密,过程为:

查询需求记作长度为n的布尔向量q,加密公式满足:

queryCtxt←(TFHE.Enc(SK,q

其中,q

在本实施例中,步骤S3所述的云服务器收到查询需求后,进行数据的计算挖掘的过程包括:

S31.初始化,云服务器初始化一个元素全为密文0的加密计数器布尔向量accCtxt,长度为

S32.将加密的事务集合C={C

S33.利用安全子集判定算法得到密文

S34.使用安全计数算法SecAccum将密文

S35.判断更新次数是否达到m,若否,返回步骤S33;若是,使用安全比较算法SecCmp将计数器accCtxt与无符号整数最小支持度阈值的密文向量minsuppCtxt进行比较,公式为:

其中,

步骤S33所述利用安全子集判定算法得到密文

S331.确定密文查询需求向量queryCtxt=(c

S332.初始化密文

S333.计算

S334.判断更新次数是否达到m,若是,输出更新后的密文

步骤S34所述的安全计数算法SecAccum将密文

S341.确定密文求向量accCtxt=(accCtxt

S342.初始化密文carry为

S342.计算

carry=HomAND(carry,accCtxt

S343.判断更新次数是否达到k,若是,输出密文向量

步骤S35利用安全比较算法SecCmp将计数器accCtxt与无符号整数最小支持度阈值的密文向量minsuppCtxt进行比较的过程为:

S351.确定计数器accCtxt=(c

S352.初始化

S353.首先初始化当前的

S354.计算

S355.判断当前j的值是否达到i-1,若否,返回步骤S354;若是,更新

S356.判断当前i的值是否达到k,若否,返回步骤S353;若是,输出

上述挖掘过程基于全同态加密的同态门性质,所使用到的同态门的具体实现为:

在本实施例中,步骤S4所述的数据挖掘方通过全同态加密私钥进行解密,得到挖掘结果后确认频繁项集的过程为:

数据挖掘方使用加密私钥SK将挖掘结果解密,公式为:

其中,

附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;显然,本发明的上述实施例仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

相关技术
  • 一种云计算中加密数据频繁项集的挖掘方法
  • 一种电网故障中SCADA数据频繁项集挖掘方法
技术分类

06120112296589