[发明专利]基于全同态加密的隐私保护关联规则挖掘方法有效
申请号: | 201910430560.3 | 申请日: | 2019-05-22 |
公开(公告)号: | CN110176983B | 公开(公告)日: | 2021-09-03 |
发明(设计)人: | 庞宏平;王保仓;张志立;赵青青;魏文宽;薛冠豪;曲全博;曾一波 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | H04L9/00 | 分类号: | H04L9/00;H04L9/08;H04L29/06;G06F16/2455;G06F21/62 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 王品华 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 同态 加密 隐私 保护 关联 规则 挖掘 方法 | ||
1.基于全同态加密的隐私保护关联规则挖掘方法,其特征在于,包括如下:
(1)系统初始化:
(1a)密钥生成中心根据Paillier全同态加密方法,生成系统参数,整数N和预私钥λ;实现步骤如下:
(1a1)密钥生成中心生成两个素数p和q,且满足其中,和分别是素数p和q的二进制比特长;
(1a2)根据素数p和q,计算整数N=p×q;
(1a3)计算N的Carmichael函数值λ=1cm(p-1,q-1),其中,1cm(p-1,q-1)是p-1和q-1最小公倍数;
(1b)密钥生成中心生成第一个随机整数kr,满足gcd(kr,N)=1,计算出第一子私钥λ1和第二子私钥λ2,满足λ1×λ2=kr×λ,确定私钥sk=(λ1,λ2),其中,kr≠0,gcd(kr,N)是kr和N的最大公约数;
(1c)密钥生成中心生成第二个随机整数kp,计算公共模数N2,从中选取一个成员g,满足和gcd(kt,N)=1两个条件,确定公钥pk=(N,g),其中,kp为{1,2,...,λ}中任意一个,gcd(x,N)是整数x和N的最大公约数,公开整数
(1d)密钥生成中心将公钥pk和公开整数kt公布到公共信道,将第一子私钥λ1安全的传递给第一云服务器CA,将第二子私钥λ2安全的传递给第二云服务器CB,其中,CA和CB是两个不共谋的服务器;
(2)数据拥有者利用pk公钥对原始明文向量集合R={t1,t2,...,ti,...,tn}中的向量加密并上传到第一云服务器CA的云数据库中,云数据库表示为其中,是利用公钥pk对第i个原始明文向量ti加密得到的第i个原始密文向量,利用公钥pk对向量加密是对该向量各分量值加密,原始明文向量ti长度为m且各分量值为0或1,满足是m的二进制比特长,是N的二进制比特长,n是云数据库中原始密文向量的个数,j∈{1,2,...,n};
(3)数据挖掘者上传挖掘的事务:
(3a)数据挖掘者定义查询向量q=(q1,q2,...,qj,...,qm)、支持度门限值为整数T1和置信度门限值为有理数T2=α/β,挖掘者根据查询向量q,生成子查询向量集合Q={q1,q2,...,qv,...,qu},使用公钥pk对查询向量q、T1、分子α和分母β、子查询向量qv分别进行加密,得到查询密文向量支持度门限值密文分子密文和分母密文子查询密文向量集合其中,qj是查询向量q的第j个分量,qv是第v个子查询向量,是第v个子查询密文向量,q、qv和长度均为m且q的各分量值为0或1,u是子查询密文向量集合Q1中密文向量的个数,α和β是整数,0T1n,0T21,v∈{1,2,...,u};其实现如下:
(3a1)根据查询向量q=(q1,q2,...,qj,...,qm)中分量值为1的下标j,生成下标集合X,其中,qj是查询向量q的第j个分量,m是查询向量的长度,j∈{1,2,...,m};
(3a2)根据下标集合X,生成u个X的非空真子集Yv,v∈{1,2,...,u};
(3a3)根据非空真子集Yv,生成子查询向量qv=(qv,1,qv,2,...,qv,j,...,qv,m),其中,qv,j是子查询向量qv的第j个分量,若j∈Yv,qv,j为1,否则,qv,j为0,j∈{1,2,...,m},v∈{1,2,...,u};
(3a4)将u个子查询向量qv组成集合Q;
(3b)数据挖掘者将支持度门限值密文分子密文和分母密文子查询密文向量集合Q1上传给第一云服务器CA;
(4)两个云服务器CA和CB利用云数据库中n个原始密文向量和查询密文向量分别计算查询向量q和ti的内积值密文将这n个密文组成内积值密文向量其实现如下:
(4a)第一云服务器CA选取第一随机向量ri=(ri,1,ri,2,...,ri,j,...,ri,m)和第二随机向量γi=(γi,1,γi,2,...,γi,j,...,γi,m),利用公钥pk将ri和γ分别加密,得到第一随机密文向量和第二随机密文向量利用对进行混淆,得到第一混淆向量利用对进行混淆,得到第二混淆向量使用第一子私钥λ1部分解密和得到第一部分解密向量和第二部分解密向量并将这两者发送给第二云服务器CB,其中:ri,j是ri的第j个分量,γi,j是γi的第j个分量,是的第j个分量,是的第j个分量,为的第j个分量,为的第j个分量,为的第j个分量,为的第j个分量,为的第j个分量,为的第j个分量,
(4b)第二云服务器CB利用第二子私钥λ2和公开整数kt完全解密和得到第一内积中间向量ai=(ai,1,ai,2,...,ai,j,...,ai,m)和第二内积中间向量bi=(bi,1,bi,2,...,bi,j,...,bi,m);根据两者计算混淆内积向量ci=(ci,1,ci,2,...,ci,j,...,ci,m),利用公钥pk将ci加密,得到混淆内积密文向量并将发送给第一云服务器CA,其中,ai,j是ai的第j个分量,bi,j是bi的第j个分量,ci,j是ci的第j个分量,是的第j个分量,ai,j和bi,j的计算式如下:
(4c)第一云服务器CA利用混淆内积密文向量查询密文向量原始密文向量第一随机向量ri、第二随机向量γi、第二随机密文向量计算结果密文向量其中,是的第j个分量,的计算式如下:
(4d)第一云服务器CA利用结果密文向量计算内积值密文
(5)两个云服务器CA和CB利用查询密文向量和内积值密文向量计算出查询向量q的查询支持度密文其实现如下:
(5a)第一云服务器CA利用查询密文向量计算数量密文其中,
(5b)第一云服务器CA选取第一比较随机数向量ω=(ω1,ω2,...,ωi,...,ωn)和第二比较随机数向量ω′=(ω′1,ω′2,...,ω′i,...,ω′n),利用内积值密文向量ω和ω′,计算判断向量使用第一子私钥λ1部分解密得到部分判断向量并将其发送给第二云服务器CB,其中,ωi是ω的第i个分量,ω′i是ω′的第i个分量,是的第i个分量,是的第i个分量,ωi∈{0,1},是ω′i的二进制比特长,的计算式如下,是1的密文,的计算式为
(5c)第二云服务器CB使用第二子私钥λ2和公开整数kt完全解密得到判断明文向量D=(D1,D2,...,Di,...,Dn),利用Di得到结果密文向量将发送给第一云服务器CA,i∈{1,2,...,n},其中,Di是D的第i个分量,是的第i个分量,Di的计算式如下,
当时,生成否则为Di的二进制比特长,为整数N的二进制比特长,是0的密文,是1的密文,i∈{1,2,...,n};
(5d)第一云服务器CA利用结果密文向量和第一比较随机数向量ω,计算最终结果密文向量其中,是的第i个分量,当ωi=0时,当ωi=1时,
(5e)第一云服务器CA利用最终结果密文向量计算查询密文向量在云数据库中的支持度密文其中,
(6)两个云服务器CA和CB利用查询支持度密文和支持度门限值密文计算支持度比较结果密文其实现如下:
(6a)第一云服务器CA选取第一支持度随机数ωa和第二支持度随机数ωb,利用查询支持度密文和支持度门限值密文计算支持度判断密文使用第一子私钥λ1部分解密后得到部分支持度判断密文并发送给第二云服务器CB,其中,ωa∈{0,1},支持度判断密文的计算式如下,
部分支持度判断密文
(6b)第二云服务器CB使用第二子私钥λ2和公开整数kt完全解密得到支持度判断明文Dq,根据Dq的二进制比特长,生成支持度判断结果密文将其发送给第一云服务器CA,其中,Dq计算如下,
当时,生成的支持度判断结果密文否则,是的二进制比特长;
(6c)第一云服务器CA利用支持度判断结果密文和第一支持度随机数ωa,计算支持度比较结果密文其中,当ωa=0时,当ωa=1时
(7)两个云服务器CA和CB将支持度比较结果密文的支持度比较结果明文hq安全地传输给挖掘者:
(7a)数据挖掘者选取第一传输随机数wq和第二传输随机数w′q,利用公钥pk加密两随机数,得到第一传输随机密文和第二传输随机密文并发送给第一云服务器CA,其中,gcd(x,N)是两整数x和N的最大公约数;
(7b)第一云服务器CA利用和计算混淆结果密文利用第一子私钥λ1部分解密和得到中间随机密文和部分混淆结果密文并将两者发送给第二云服务器CB,其中,
(7c)第二云服务器CB利用第二子私钥λ2完全解密和得到混淆结果和第一传输随机数wq,并根据这两者计算出传输信息op,将op发送给挖掘者,其中op=(wq×(hq+w′q))mod N;
(7d)挖掘者使用第一传输随机数wq、第二传输随机数w′q和传输信息op还原出支持度比较结果明文hq,其中,还原计算为hq=(op×wq-1-w′q)mod N;
(8)两个云服务器CA和CB对u个子查询密文向量重复执行步骤(4)和步骤(5),得到子支持度密文向量其中,是子查询向量qv在云数据库中的子支持度密文;
(9)两个云服务器CA和CB利用子支持度密文向量S的第v个分量与查询支持度密文分母密文分子密文计算出置信度结果密文u个置信度结果密文组成置信度结果密文向量其实现如下:
(9a)第一云服务器CA生成第三支持度随机数ωc和第四支持度随机数ωd,使用公钥pk加密ωc和ωd,得到第三支持度随机密文和第四支持度随机密文利用对进行混淆得到第一混淆密文利用对分母密文进行混淆得到第二混淆密文利用第一子私钥λ1部分解密和得到第一部分混淆密文和第二部分混淆密文再将和发送给第二云服务器CB,其中:
(9b)第二云服务器CB利用第二子私钥λ2和公开整数kt完全解密和得到第一混淆明文aq和第二混淆明文bq,根据aq和bq计算第三混淆明文cq,利用公钥pk加密cq,得到第三混淆密文将发送给第一云服务器CA,其中,
cq的计算式为cq=(aq×bq)mod N,表示为
(9c)第一云服务器CA利用第三混淆密文支持度密文第三支持度随机数ωc、第四支持度随机数ωd、第三支持度随机密文计算出公共比较数τq,其中,τq的计算式如下,
(9d)两个云服务器CA和CB对子支持度密文向量的第v个分量与分子密文重复执行步骤(9a-9c),得到子比较数τv,其中,v∈{1,2,...,u};
(9e)两个云服务器CA和CB对公共比较数τq和子比较数τv重复执行步骤(6),计算出置信度结果密文其中是对τq和τv进行比较的结果;
(10)两个云服务器CA、CB和数据挖掘者对置信度结果密文向量θ中的每一个分量重复执行步骤(7),将置信度结果明文θv安全传输给挖掘者;
(11)数据挖掘者根据支持度比较结果明文hq判断关联规则挖掘的结果:
若hq=1,则查询向量q对应项目集是频繁项目集,执行(12),
若hq=0,则查询向量q对应项目集不是频繁项目集,且子查询向量qv对应的项目集之间不存在强关联规则;
(12)数据挖掘者根据置信度结果明文θv判断子查询向量qv对应项目集与差向量q-qv对应项目集之间是否存在强关联规则:
若θv=1,则子查询向量qv对应项目集与差向量q-qv对应项目集之间是强关联规则,
若θv=0,则子查询向量qv对应项目集与差向量q-qv对的项目集之间不是强关联规则。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910430560.3/1.html,转载请声明来源钻瓜专利网。