面向云端数据发布保护安全及隐私的频度测定方法和系统与流程

文档序号:12135321阅读:306来源:国知局
面向云端数据发布保护安全及隐私的频度测定方法和系统与流程

本发明涉及隐私保护相关研究领域,特别是涉及一种面向云端数据发布保护安全及隐私的频度测定方法和系统。



背景技术:

在信息共享的时代,隐私保护和信息安全成为IT界的一个重要研究领域。信息安全要求防止未经授权的数据披露,而隐私保护旨在避免所披露数据被用于从中推理个人的敏感信息。

随着大数据时代的到来,越来越多的人利用云计算技术在云端存储数据和执行计算处理任务,隐私保护面临很多新挑战。在云端数据存储过程中存在泄漏隐私的危险,除此之外,隐私保护处理过程本身也可能受到攻击,这无疑增加了隐私泄露的风险和规避风险的难度。

运用密码学的技术来解决云端数据的安全问题是一个很好的选择,将数据进行加密之后上传至云端存储,就不存在隐私泄露的危险性。但是云端加密数据存在难以运算的问题。幸运的是全同态加密技术为解决新挑战提供了可能性。全同态加密是一种可以直接对加密状态下的密文数据进行操作的技术。早在1978年Rivest等人就提出同态加密的概念,其中,公钥密码算法RSA是乘法同态加密方案,Paillier算法是加法同态加密方案,但此后一直停滞不前。在2009年Gentry构造出第一个全同态加密方案之后,有了迅速发展,出现很多成果,包括:基于ideal lattice的全同态加密方案,Dijk等基于integer的方案,Gentry等基于LWE(Learning With Error)的方案,Lyubaskevsky等基于RLWE(Ring LWE)的方案,Brakerski等基于GLWE(Generalized LWE)的方案。但是这些方案大多基于理论,需要继续研究高效率的实用方案。

利用全同态加密技术能够将需要进行隐私保护处理的数据进行加密处理,再利用云计算进行密文数据运算处理,得到符合隐私保护要求的密文数据。利用全同态加密技术既能保护数据内容安全又能保护数据处理过程安全。

在云端进行数据隐私保护处理时往往需要统计数据记录中的频度,本发明结合同态加密技术,面向云端数据发布过程中需要保护数据安全及隐私的目的,提出一种同态密文下的数据记录频度测定方法和系统,用于隐私保护处理。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种面向云端数据发布保护安全及隐私的频度测定方法和系统。

本发明的目的是通过以下技术方案来实现的:一种面向云端数据发布保护安全及隐私的频度测定方法,包括如下步骤:

S1、数据库拥有者用同态密钥生成算法FHE.KeyGen生成公钥pk和私钥sk;设置频度阈值k,并将-k的补码的加密形式cc_thd上传至云端服务器;将用公钥pk加密的数据库外包到云端服务器;将公钥pk上传至云端服务器保存;

S2、客户端从云端获取公钥pk,用公钥pk加密需要查询频度的记录R得到密文RC,将RC上传至云端服务器;

S3、云端服务器执行同态运算查询加密的记录RC在密文数据库中的频度密文csup;并在同态下进行阈值判定,得到判定结果cresult;将cresult和csup发送至代理服务器;

S4、代理服务器用私钥sk对cresult解密得到明文m,代表频度判定结果;依据频度判定结果m和csup解密结果向云端服务器发送信息sup;

S5、云端服务器将代理服务器返回的信息sup发送给客户端。

进一步地,所述步骤S1中的数据库拥有者生成公钥pk和私钥sk,并将私钥sk共享给代理服务器。

进一步地,所述步骤S3中执行同态运算查询RC在密文数据库中的频度密文csup具体操作如下:

首先,云端服务器将记录RC与密文数据表中共l条密文记录分别做同态运算,得到l个密文cc1,cc2,…,ccl,具体操作如下:云端服务器将记录RC=[rc1,rc2,…,rcn]与密文数据库中第i条密文记录Ri=[ci1,ci2,…,cin]所对应密文位rcj和cij做同态加法运算,得到n个密文位c’ij=FHE.Add(pk,rcj,cij),j∈{1,2,…,n},i∈{1,2,…,l};再将n个密文位c’i1,c’i2,…,c’in分别与1的密文c_m1=FHE.Enc(pk,1)做同态加法运算,得到n个新的密文位caddij=FHE.Add(pk,c’ij,c_m1),i∈{1,2,…,n};然后,将n个密文位caddi1,caddi2,…,caddin做同态乘法运算,得到密文cci=FHE.Mult(pk,caddi1,caddi2,…,caddin),i∈{1,2,…,l};

接着,通过同态加法FHE.Add运算和同态乘法FHE.Mult运算将密文cc1,cc2,…,ccl累加起来,得到记录R的频度密文csup,csup=[csN,…,cs2,cs1]为N个密文位,

进一步地,所述步骤S3中的在同态下进行阈值判定,得到判定结果cresult的具体操作为:云端服务器将csup=[csN,…,cs2,cs1]与cc_thd=FHE.Enc(pk,-k)=[cthdN+1,cthdN,…,cthd1]做如下同态运算:首先,令c_carry0=FHE.Enc(pk,0),然后对i取1直至N,将第i-1位进位密文c_carryi-1和csup的第i位密文位csi和cc_thd的第i位密文位cthdi进行同态加法和同态乘法运算得到进位密文c_carryi=FHE.Add(pk,FHE.Mult(pk,cthdi,c_carryi-1),FHE.Mult(pk,csi,FHE.Add(pk,cthdi,c_carryi-1)));将最高进位密文c_carryN与cc_thd的最高密文位cthdN+1=FHE.Enc(pk,1)做同态加法运算,得到密文cresult=FHE.Add(pk,c_carryN,cthdN+1)。

进一步地,所述步骤S4中根据cresult明文结果得到频度判定结果具体操作如下:代理服务器用私钥sk解密cresult得到明文m=FHE.Dec(sk,cresult),若m=0,说明记录R的频度不低于阈值,代理服务器向云端服务器发送csup解密得到的明文sup;若m=1,判断csup解密得到的明文sup,若sup=0说明数据库中没有被查询记录R,向云端服务器发送sup=0;若sup≠0说明记录R的频度低于阈值,记录R的信息敏感性强,容易泄露隐私信息,代理服务器向云端服务器发送sup=-1。

进一步地,用云端服务器处理密文运算得到频度,并将频度与频度阈值在密文状态下进行比较,用代理服务器对比较结果进行解密判定,在这一过程中不存在泄露客户端所查询的记录内容、数据库中频度低于阈值的敏感记录的情况。

一种面向云端数据发布保护安全及隐私的频度测定系统,该系统包括四方:数据库拥有者、客户端、代理服务器、云端服务器。数据库拥有者主要负责生成密钥对,对数据库进行加密外包处理,对频度阈值负数-k的补码进行加密操作,并上传至云端服务器,对代理服务器授权私钥sk。客户端主要申请查询记录R的频度。代理服务器得到数据库拥有者授权,协助数据库拥有者处理事务,包括保存客户端私钥sk,解密密文;云端服务器用于存储密文数据库、对密文进行同态运算操作。

本发明的有益效果是:本发明结合全同态加密技术,能够在云环境下得到数据记录的频度密文并判定记录的频度是否符合隐私保护要求,同时确保整个过程不会泄露客户端所查询的记录内容、数据库中频度低于阈值的敏感记录内容,既能够实现数据的安全存储又方便云端进行保护隐私的频度测定。

附图说明

图1是本发明提供的面向云端数据发布保护安全及隐私的频度测定方法操作流程图;

图2是本发明提供的面向云端数据发布保护安全及隐私的频度测定方法和系统实施例示意图;

图3是本发明提供的面向云端数据发布保护安全及隐私的频度测定系统结构示意图。

具体实施方式

在介绍具体实现方式之前,先介绍一些全同态加密的基础知识。同态加密方案包含四个概率时间多项式算法HE={KeyGen,Encrypt,Decrypt,Evaluate},这四个算法的作用与过程如下,λ为安全参数:

KeyGen为生成方案密钥算法。输入安全参数λ,输出得到公钥pk,私钥sk和公共评估密钥evk,evk是运算布尔电路所需公钥信息。(pk,evk,sk)←HE.KeyGen(1λ)。

Encrypt是密文生成算法。输入公钥pk和单比特信息m∈{0,1},输出得到一个密文c。c←HE.Encpk(m)。

Decrypt是对密文进行解密。输入私钥sk和一个密文c,输出得到信息m*∈{0,1}。m*←HE.Decsk(c)。

Evaluate是用于确保同态加密的正确性。同态加密的正确性就是将若干密文进行同态计算得到的密文进行解密处理之后得到的明文,与密文对应的明文进行相同计算所得结果是相等的。输入评估密钥evk,一个函数和密文输出得到一个密文cf。对cf进行解密处理得到的结果等于对应明文进行相同运算的结果,即最主要的运算操作是同态加法运算HE.Add和同态乘法运算HE.Mult。

本发明采用的是目前效率较高的基于RLWE的BGV全同态加密方案(Z.Brakerski,C.Gentry,and V.Vaikuntanathan.(leveled)fully homomorphic encryptionwithout bootstrapping.TOCT,6(3):13,2014.Preliminary version in ITCS 2012.),为了便于理解,首先将对该全同态加密的原理做出介绍。

基于GLWE的基础方案GHE的构建如下:

1、GHE.Setup(1λ,1μ,b):使用比特b∈{0,1}来决定我们是在给基于LWE方案(d=1)还是基于RLWE方案(n=1)设定参数,d参数表示估计多项式的度。选择一个μ比特模数q和其他参数(d=d(λ,μ,b),n=n(λ,μ,b),χ=χ(λ,μ,b))以确保基于GLWE方案的案例有着2λ的安全性以抵抗格攻击。让和参数params=(q,d,n,N,χ).

2、GHE.SecretKeyGen(params):选取s'←χn,得到

3、GHE.PublicKeyGen(params,sk):把私钥作为输入sk=s=(1,s'),s[0]=1,还有参数params。均匀生成一个矩阵一个向量e←χN和一个集合b←A's'+2e.设置A成为包含b的(n+1)列矩阵,后面部分是-A'的n列矩阵(A·s=2e)。公钥pk=A。

4、GHE.Enc(params,pk,m):为了加密一个信息m∈R2,设置取样输出密文

5、GHE.Dec(params,sk,c):输出解密信息m←[[<c,s>]q]2

无需自展的全同态加密算法实现如下:

第一、参数设定。本发明采用的全同态加密方案是基于多项式环的,多项式环d是2的次方幂,λ是同态加密方案的安全参数,密文多项式系数取μ比特模数q,L是二进制运算电路深度,其他参数(d=d(λ,μ,b),n=n(λ,μ,b),χ=χ(λ,μ,b))以确保2λ的安全性。n=1就是设定基于RLWE的实例化。为了能够让全同态加密适用于全域匿名算法,设定明文空间为R2=R/2R。

第二、密钥生成算法FHE.KeyGen。密钥对生成如下:GHE.SecretKeyGen(params):选取s'←χn,得到私钥GHE.PublicKeyGen(params,sk):把私钥作为输入sk=s=(1,s'),s[0]=1,还有参数params=(q,d,n,N,χ)。均匀生成一个矩阵一个向量e←χN和一个集合b←A's'+2e.设置A成为包含b的(n+1)列矩阵,后面部分是-A'的n列矩阵(A·s=2e)。公钥pk=A。

循环j=L到0,运行paramsj←GHE.Setup(1λ,1(j+1)·μ,b)来得到递减模的层级从qL((L+1)·μbits)至q0(μbits).循环j=L-1至0,参数paramsj中dj的值被替换为d=dL,分布χj被替换为χ=χL

FHE.KeyGen(paramsj):循环j=L至0,如下实现:

1、运行sj←GHE.SecretKeyGen(paramsj)and Aj←GHE.PublicKeyGen(paramsj,sj)。

2、设置s'j是sj的张量,它的系数是在Rqj中的sj两个系数的乘积。

3、设置s”j←BitDecomp(s'j,qj)。

4、运行τs”j+1→sj←SwitchKeyGen(s”j,sj-1),当j=L时省略这一步。

私钥sk包含所有sj,公钥pk包含所有Aj和τs”j+1→sj

第三、加密算法FHE.Enc(params,pk,m):在R2中找到信息m,运行GHE.Enc(AL,m)。GHE.Enc(pk,m):为了加密一个信息m∈R2,设置取样输出密文

第四、解密算法FHE.Dec(params,sk,c):假设密文是在sj下的,运行GHE.Dec(sj,c)。GHE.Dec(sk,c):输出解密信息m←[[<c,s>]q]2

第五、同态加法FHE.Add(pk,c1,c2):输入两个同样用私钥sj加密的密文。设置c3←c1+c2mod qj。c3就是在s'j下的密文(s'j的参数包括所有sj的参数,因为并且s'j的第一个系数为1),输出c4=FHE.Refresh(c3s”j→sj-1,qj,qj-1)。

第六、同态乘法FHE.Mult(pk,c1,c2):输入两个同样用私钥sj加密的密文。首先,新的密文是在私钥下的,是线性等式的系数向量c3,输出c4=FHE.Refresh(c3s”j→sj-1,qj,qj-1)。

FHE.Refresh(c,τs”j→sj-1,qj,qj-1):输入私钥s'j下的密文,辅助信息τs”j→sj-1来帮助密钥转换,当前和下一个模数为qj和qj-1,做以下工作:首先展开c1←Powersof2(c,qj)。然后进行模数转化,c2←Scale(c1,qj,qj-1,2),对应私钥s”j和模数qj-1。再进行密钥转化,输出c3←SwitchKey(τs”j→sj-1,c2,qj-1),对应私钥sj-1和模数qj-1

其中c'=Scale(c,p,q,2)为模转化算法,p,q是两个奇数模,c是一个整数向量,c'是一个接近(p/q)·c的整数向量并且满足c'=c mod 2。将x分解成为它的比特表示方法,输出SwitchKeyGen(s1,s2,n1,n2,q)输入两个私钥和私钥的维数,模数q,私钥s2和运行GHE.PublicKeyGen(s2,N)得到公钥A,生成B=A+Powesof2(s1,q),然后输出的辅助信息τs1→s2=B实现交换。其中,

下面参考附图并结合实例来详细说明本发明。

图1是本发明提供的面向云端数据发布保护安全及隐私的频度测定方法操作流程图。如图1所示,本发明提供的面向云端数据发布保护安全及隐私的频度测定方法包括步骤S1-S5。

步骤S1:数据库拥有者用密钥生成算法FHE.KeyGen生成公钥pk和私钥sk,将频度阈值额负数-k的补码加密后上传云端服务器,再将数据库用公钥pk加密后上传云端服务器,同样将公钥pk上传至云端服务器。

步骤S2:客户端从云端服务器请求得到公钥pk,用公钥pk加密所需查询频度的记录R,得到密文RC,将RC上传至云端服务器。

步骤S3:云端服务器执行同态运算得到RC的频度csup,通过同态运算进行频度阈值判定得到cresult,将csup与cresult发送给代理服务器。

步骤S4:代理服务器解密cresult得到明文m,解密csup得到明文sup,依据m与sup判断记录R的频度是否大于阈值,依据判断设定sup并发送给云端服务器。

步骤S5:云端服务器将sup发送给客户端。

进一步以图2中的实例进行详细说明。图2是本发明提供的面向云端数据发布保护安全及隐私的频度测定方法和系统实施例示意图。如图2所示,本发明提供的面向云端数据发布保护安全及隐私的频度测定方法包括步骤S1-S5,所提供的系统包括数据库拥有者、客户端、代理服务器、云端服务器。

具体而言,以附图2中的包含6条记录的数据库为例,假设每条加密的记录用n个密文位表示,对本发明进行详细叙述。

步骤S1:数据库拥有者采用同态密钥生成算法生成公钥pk和私钥sk,并将数据库中的记录转化成二进制表示之后用公钥pk进行加密处理,将得到的密文数据库上传至云端服务器,同时设置频度阈值k为2,将其负值-k=-2补码用公钥pk进行加密,并上传至云端服务器。在此声明,数据库、记录以及同态运算过程中,每次加密同一明文位都产生不同的密文,比如附图2中记录R1密文形式的每个1'所代表的1的加密结果FHE.Enc(pk,1)都是互不相同的,同样每个0'都是互不相同的。并且,数据库拥有者也不向外界泄露设定的频度阈值k。数据库拥有者外包数据给云端服务器是一个不断叠加的过程,在空闲时间完成即可。

步骤S2:客户端通过向云端服务器发送查询请求来得到自身想要查询的记录R的频度。首先,客户端向云端服务器请求公钥pk,云端服务器将公钥pk下传至客户端;其次,客户端用公钥pk对需要查询频度的记录R={11,Female,375720}转化成二进制[1,1,0,0,…,1]再进行加密处理,得到密文记录RC=[1',1',0',0',…,1'];将RC发送给云端服务器进行同态运算。

步骤S3:首先,云端服务器将RC=[1',1',0',0',…,1']与密文数据库中共6条密文记录进行同态运算,得到6个密文cc1=1',cc2=0',cc3=0',cc4=0',cc5=0',cc6=1'。以RC与R2做同态计算得到cc2为例,R2=[1',0',0',1',…,1'],将RC与R2对应的第i个密文为做同态加法运算,得到n个密文0',1',0',1',…,0',i∈{1,2,…,n};将上述n个密文分别与1的密文1'进行同态加法运算,得到新的n个密文1',0',1',0',…,1';将上述n个密文位做同态乘法运算FHE.Mult(pk,1',0',1',0',…,1')得到密文cc2=0'。同理,将RC与其他5条记录做同态运算即可。

然后,云端服务器对6个密文cc1=1',cc2=0',cc3=0',cc4=0',cc5=0',cc6=1'进行累加,即可得到记录R的频度密文csup,具体操作如下:由于统计得到的最大可能频度密文与数据库记录量相关,频度密文位最多为首先,设置密文csup的初始值为3位0的密文csup=[cs3,cs2,cs1]=[0',0',0'];然后,将密文csup加上第一个密文cc1=1',运算ccarry1=FHE.Mult(pk,1',0')得到进位ccarry1=0',运算cs1=FHE.Add(pk,1',0')得到新的最低密文位cs1=1',然后运算ccarryi=FHE.Mult(pk,ccarryi-1,csi),csi=FHE.Add(pk,ccarryi-1,csi),i∈{2,3},得到进位ccarry2=0',ccarry3=0',新的密文位cs3=0',cs2=0'。于是,累加上第一个密文cc1=1'之后频度密文csup=[cs3,cs2,cs1]=[0',0',1'],接着累加其他5个密文,最终得到频度密文csup=[cs3,cs2,cs1]=[0',1',0']。

最后,云端服务器在得到频度密文csup之后进行阈值判定。阈值是数据库拥有者设定并加密的,阈值密文cc_thd=[cthdN+1,cthdN,…,cthd1]包含N+1个密文位。本实例中cc_thd=FHE.Enc(pk,-2)=[cthd4,cthd3,cthd2,cthd1]=[1',1',1',0']。首先,令c_carry0=FHE.Enc(pk,0),然后进行同态运算得到进位c_carryi=FHE.Add(pk,FHE.Mult(pk,cthdi,c_carryi-1),FHE.Mult(pk,csi,FHE.Add(pk,cthdi,c_carryi-1))),i∈{1,2,3},其中c_carry3=1';最后运算cresult=FHE.Add(pk,cthd4,c_carry3)得到判定结果cresult=0'。云端服务器将得到的密文cresult下传至代理服务器进行解密。

步骤S4:代理服务器用私钥sk解密cresult得到明文m=FHE.Dec(sk,cresult)=0,说明记录R={11,Female,375720}的频度不低于阈值,代理服务器向云端服务器发送csup解密得到的明文sup=[0,1,0]=2。

步骤S5:云端服务器将sup=2发送给客户端,客户端就得知记录R={11,Female,375720}的频度为2。

同样,如果客户端请求查询的记录R={32,Male,375722}的频度,就会得到cresult的解密结果m=FHE.Dec(sk,cresult)=1,csup解密结果sup=1,说明R的频度低于阈值并且为敏感记录,向云端服务器发送sup=-1;如果客户端请求查询的记录R={67,Male,375720}的频度,就会得到cresult的解密结果m=FHE.Dec(sk,cresult)=1,csup解密结果sup=0,说明数据库中不存在记录R,向云端服务器发送sup=0;

图3是本发明提供的面向云端数据发布的保护数据安全及隐私的频度测定系统结构示意图。如图3所示,本发明提供的面向云端数据发布的保护数据安全及隐私的频度测定系统包括数据库拥有者、客户端、代理服务器、云端服务器四个部分。所述数据库拥有者连接云端服务器和代理服务器,所述客户端代理连接数据库拥有者和云端服务器,所述客户端连接云端服务器。所述数据库拥有者用于生成公钥pk和私钥sk,并将私钥sk共享给代理服务器,将公钥pk发送给云端服务器,将数据库用公钥pk加密之后发送给云端服务器,并设置频度阈值k,对-k的补码用公钥pk加密后发送给云端服务器。所述客户端向云端服务器发送使用公钥请求和查询频度请求,从云端服务器得到公钥pk之后,用公钥pk加密需查询频度的记录R,并向云端服务器发送R的密文RC。所述云端服务器执行同态运算,包括同态加法运算和同态乘法运算,得到频度密文csup和频度判定密文cresult并发送给代理服务器,同时将代理服务器返回的sup信息发送给客户端。所述代理服务器用私钥sk对密文csup和密文cresult进行解密,并依据解密结果判定频度与阈值关系,发送相应sup信息给云端服务器。

综上所述,通过本发明实例提供的面向云端数据发布保护安全及隐私的频度测定方法和系统,在四方参与和不泄露明文的情况下,由代理服务器对密文解密进而执行频度阈值判断,依据判断结果向云端服务器返回频度信息,再由云端服务器将信息返回给客户端,而云端所有记录以密文形式保存,即利用了云计算的高效性,又保证了记录信息的安全性。

本发明将不会被限制于本文所示的实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1