CN116684062A - 基于代理重加密的云计算外包和数据动态分享方法及系统 - Google Patents

基于代理重加密的云计算外包和数据动态分享方法及系统 Download PDF

Info

Publication number
CN116684062A
CN116684062A CN202310676714.3A CN202310676714A CN116684062A CN 116684062 A CN116684062 A CN 116684062A CN 202310676714 A CN202310676714 A CN 202310676714A CN 116684062 A CN116684062 A CN 116684062A
Authority
CN
China
Prior art keywords
vector
dimensional
ciphertext
data
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310676714.3A
Other languages
English (en)
Other versions
CN116684062B (zh
Inventor
谢聪格
刘翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dongguan University of Technology
Original Assignee
Dongguan University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dongguan University of Technology filed Critical Dongguan University of Technology
Priority to CN202310676714.3A priority Critical patent/CN116684062B/zh
Publication of CN116684062A publication Critical patent/CN116684062A/zh
Application granted granted Critical
Publication of CN116684062B publication Critical patent/CN116684062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及云计算、网络安全技术领域,涉及一种基于代理重加密的云计算外包和数据动态分享方法及系统,包括:S1:密钥生成中心产生公私钥对,数据拥有者的数据文件经过全同态加密,并将密文上传到云代理服务器;S2:用户发送共享数据请求,数据拥有者审核同意后,利用公私钥对产生一个转换密钥;S3:用户收到同意应答后,将所要外包计算的函数发送给云代理服务器;S4:云代理服务器收到函数后对密文进行函数计算,然后利用转换密钥对函数的计算结果进行重加密;S5:用户收到重加密的密文后,使用自己的私钥解密获得相应函数在数据拥有者数据文件上的计算结果。本发明能较佳地进行云计算外包和数据动态分享。

Description

基于代理重加密的云计算外包和数据动态分享方法及系统
技术领域
本发明涉及云计算、网络安全技术领域,具体地说,涉及一种基于代理重加密的云计算外包和数据动态分享方法及系统。
背景技术
随着云计算的发展和普及,数据外包越来越流行,数据拥有者通常把数据外包给云服务器。由于数据的敏感性,外包数据都会经过加密处理,存储在云服务器上的数据都是加密数据,这严重影响了云服务器的计算服务和数据拥有者数据的共享性,因此,如何设计一个有效地保护数据和云计算数据共享方法是迫切需要解决的问题。在现有的技术中,如运用全同态加密,只能解决数据的保护和云服务器计算数据的问题,不能解决数据分享问题。多属性的基于属性的全同态加密能够同时解决数据的保护、云服务器数据计算和数据分享问题,但需要事先固定好数据分享的策略函数,数据分享的用户不具有动态性。
综上所述,现有技术存在的问题是:无法同时保证数据的隐私性、云服务器数据计算外包服务、动态分享数据服务和抵抗量子计算及攻击。难点在于:为了保护数据的隐私与安全,数据在外包给云服务器之前需要进行加密,并以密文方式存储,所以数据的计算需要在密文下进行,并且将计算结果安全的分享给用户。已有的技术一方面在数据分享安全性不够,使得攻击者可以获取数据的信息,或者基于传统计算问题构建解决办法,不能抵抗量子计算机攻击;另一方面数据请求终端用户集合固定,不具有动态性。
发明内容
本发明的内容是提供一种基于代理重加密的云计算外包和数据动态分享方法及系统,其可以抵抗量子计算机攻击和选择性明文攻击,有效地保护了云计算数据隐私与共享数据安全。
根据本发明的基于代理重加密的云计算外包和数据动态分享方法,其包括以下步骤:
S1:密钥生成中心产生数据拥有者和用户的公私钥对,数据拥有者的数据文件经过多身份的基于身份的全同态加密,并将密文上传到云代理服务器;
S2:用户发送共享数据请求给数据拥有者,数据拥有者审核同意后,利用公私钥对产生一个转换密钥发送给云代理服务器,同时返回同意应答给用户;
S3:用户收到同意应答后,将所要外包计算的函数发送给云代理服务器;
S4:云代理服务器收到函数后对密文进行函数计算,然后利用转换密钥对函数的计算结果进行重加密,并将其返回给用户;
S5:用户收到重加密的密文后,使用自己的私钥解密获得相应函数在数据拥有者数据文件上的计算结果。
作为优选,S1中,公私钥对的生成方法具体包括以下步骤:
S1.1:生成公开参数;
设参数q=q(λ,L),n=n(λ,L),χ=χ(λ,L),m=m(λ,L)=O(n·log q),其中λ为安全参数,L为全同态运算中乘法的深度,O表示同阶无穷小,即O(n·log q)表示算法的复杂度为线性对数时间,χ=χ(λ,L)是针对已知攻击实现至少2λ安全性的LWE的误差分布,设置N=(m+1)·l,即l设置为对数q下取整后加1,N等于m加1后乘以l所得的结果;设公开参数为pp=(n,q,χ,m,H),其中H是哈希函数,将{0,1}*映射到向量空间/>其中{0,1}*表示任意长度的0和1字符串;
S1.2:密钥生成中心产生数据拥有者和用户的公私钥对;
利用算法TrapGen(q,n,m)分别产生矩阵对(An×m,TA n×m)和(Bn×m,TB n×m),其中TrapGen(q,n,m)算法表示输入素数q≥2,正整数n和m≥6nlog q,输出矩阵An×m和以A做成的垂直向量空间的短基TA n×m;数据拥有者的公钥为pkA=A,私钥为skA=TA,用户的公钥为pkB=B,私钥为TB
作为优选,S1中,数据拥有者对分类为w,消息为μ∈{0,1}按照下面步骤计算密文:
a、首先计算zw n×1=H(w),zw n×1表示zw是一个n×1阶的矩阵,即一个n维行向量;设置Aw=(zw|A)n×(m+1),Aw是一个n×(m+1)阶矩阵;
b、随机选取r1×n←Zq 1×n,r表示从空间Zq 1×n中随机选取的n维列向量,在m+1维误差分布χm+1中随机选取m+1维小误差行向量e1 (m+1)×1←χm+1,然后计算ctw=r·Aw+e1 T和CTw=RN·Aw+EN∈Zq N×(m+1),其中,T为矩阵的转置,RN=(r1 T,…,rN T),EN=(e11,…,e1N)T,ri 1×n∈Zq 1 ×n是从空间Zq 1×n中随机选取的n维列向量,e1i (m+1)×1←χm+1是从m+1维误差分布中随机选取的m+1维行向量,i∈[N];
c、数据拥有者进一步计算密文ψ=Flatten(μ·IN+BitDecomp(CTw)),ψ是一个N×N维矩阵,其中IN表示N×N维单位矩阵,BitDecomp(a)表示将一个任意k维列向量a∈Zq 1×k转换成一个k·l维列向量(a1,0,…,a1,l-1,a2,0,…,a2,l-1,…,ak,0,…,ak,l-1),其中ai,j是向量a第i个分量转换成二进制后第j个比特位的值;BitDecomp-1(·)是BitDecomp(·)的逆运算,将一个k·l维向量转换成一个k维向量,其中运算Flatten(·)=BitDecomp(BitDecomp-1(·))。
作为优选,S2中,转换密钥的产生方法具体包括以下步骤:
S2.1:用户向数据拥有者发送分享数据请求,征得数据拥有者同意后,用户随机选取一个k·N×N维矩阵X∈Zq k·N×N,k是一个任意的正整数,在误差分布χk·N随机选取一个k·N维误差向量e,即ek·N×1←χk·N,然后用户设置skB′=(1,-tB)T,其中tB←SampleD(B,TB,0,σ),σ是一个参数,满足是矩阵TB的Gram-Schmidt正交化,/>的Gram-Schmidt范数,ω(·)是非渐进紧下确界,/>表示其阶高于/>SampleD(·)是一种抽样算法,输入一个n×m维矩阵B,m×m维短基TB,一个n维分量都为0的行向量,和一个参数/>输出一个m维行向量;,tB是一个m维行向量,skB′是一个m+1维列向量,最后将(X,-X·Powerof2T(skB′)+e)发送给数据拥有者,其中Powerof2(b)表示将任意一个k维列向量b=(b1,…,bk)T∈Zq 1×k转换成一个k·l维列向量(b1,2b1,…,2l-1b1,…,bk,2bk,…,2l-1bk),/>
S2.2:对每个分类标签wi,i∈[k],数据拥有者计算H(wi),令 利用自己的公私钥对(A,TA)和抽样算法SampleD抽样一个m+1维的行向量/>设/>i∈[k],最后计算转换密钥/>
作为优选,S3中,函数为电路函数C。
作为优选,S4中,具体包括以下步骤:
S4.1:对布尔电路,只需要计算与非门NAND操作;如果密文ψ1,ψ2是属于同一标签w下消息μ1,μ2的密文,则NAND(ψ12)=Flatten(IN1ψ2);如果密文ψ1,ψ2分别是标签w1和w2中消息μ1,μ2的密文,则NAND(ψ12)=Flatten(IN1′ψ2′)),其中ψ1′、ψ2′分别是ψ1,ψ2扩展矩阵,即其中矩阵对(X1,Y1)通过下面算法产生,MSGPV.GenUnivMask(pp,w11)→U,MSGPV.DeriveMask(pp,U,w2)→(X1,Y1);(X2,Y2)通过下面算法产生,MSGPV.GenUnivMask(pp,w22)→U′,MSGPV.DeriveMask(pp,U′,w1)→(Y2,X2),具体算法如下:
算法MSGPV.GenUnivMask(pp,w11):
1)对每一个i∈[l]:设x1i为算法Blind(w11·2i-1)的输出结果,Blind(w11·2i -1)表示输入一个标签w1和一个值μ1·2i-1,输出一个向量Flatten(c11·2i-1,c2,…,cm+1),其中r表示从空间Zq 1×n中随机选取的n维列向量,在m+1维误差分布χm+1中随机选取m+1维小误差行向量e1 (m+1)×1←χm+1;同时设y1i是N维0列向量;
2)对每一个l<i≤N:在空间Zq 1×n中随机选取向量r1′,在误差分布χm+1选取一个m+1维列向量f1,对每一个j∈[N],计算bj (i)=BitDecomp-1(Blind(w1,pj)),bj (i)是一个m+1维列向量,其中pj是向量Powerof2(r1′)第j个分量,让每个列向量b1 (i),b2 (i),…,bN (i)转置变成行向量,组成矩阵B(i);设y1i=Flatten((01,…,0i-11,0i+1,…,0N)+BitDecomp((0,r1′·A+f1))),0i表示向量第i个位置分量的值为0;
3)让y11,…,y1N作为行向量组成矩阵Y1
4)令U=(x11,…,x1l,Y1,B(l+1),…,B(N)),输出U;
算法MSGPV.DeriveMask(pp,U,w2):
(1)将输入的U拆分成(x11,…,x1l,Y1,B(l+1),…,B(N)),计算H(w2);
(2)对每一个l<i≤N:令x1i=Flatten(BitDecomp(H(w2))·B(i)),让每个x11,…,x1N作为行向量组成矩阵X1
(3)输出矩阵对(X1,Y1);
算法MSGPV.GenUnivMask(pp,w22):
a)对每一个i∈[l]:设y2i为算法Blind(w22·2i-1)的输出结果,Blind(w11·2i -1)表示输入一个标签w2和一个值μ2·2i-1,输出一个向量Flatten(c1′+μ2·2i-1,c2′,…,cm+1′),其中r′表示从空间Zq 1×n中随机选取的n维列向量,在m+1维误差分布χm+1中随机选取m+1维小误差行向量e2,即e2 (m +1)×1←χm+1;同时设x2i是N维0列向量;
b)对每一个l<i≤N:在空间Zq 1×n中随机选取向量r2′,在误差分布χm+1选取一个m+1维列向量f2,对每一个j∈[N],计算bj (i)′=BitDecomp-1(Blind(w2,pj′)),bj (i)′是一个m+1维列向量,其中pj′是向量Powerof2(r2′)第j个分量,让每个列向量b1 (i)′,b2 (i)′,…,bN (i)′转置变成行向量,组成矩阵B(i)′;设x2i=Flatten((01,…,0i-12,0i+1,…,0N)+BitDecomp((0,r2′·A+f2))),0i表示向量第i个位置分量的值为0;
c)让x21,…,x2N作为行向量组成矩阵X2
d)令U′=(y21,…,y2l,X2,B(l+1)′,…,B(N)′),输出U′;
算法MSGPV.DeriveMask(pp,U′,w1):
A)将输入的U′拆分成(y21,…,y2l,X2,B(l+1)′,…,B(N)′),计算H(w1);
B)对每一个l<i≤N:令y2i=Flatten(BitDecomp(H(w1))·B(i)′),让每个y21,…,y2N作为行向量组成矩阵Y2
C)输出矩阵对(Y2,X2);
S4.2:按照上面思路,计算C的密文得到ψC,然后计算结果ψB0b=ψC·ckA→B
作为优选,S5中,解密密文分下面两种情况:
1)当密文为数据拥有者的数据密文,不是转换密文时,设密文ψ是标签w下消息的密文,则利用私钥skw进行解密,即计算ψ·Powerof2T(skw)=μ·Powerof2T(skw)+EN·skw,设v=(v1,…,vN)=Powerof2(skw),v是一个N维行向量;数据拥有者用密文ψ的第i行作矩阵的行计算xi:=<ψi,v>=μ·vi+<e1i,skw>;如果vi=2i∈(q/4,q/2]且|<e1i,skw>|<q/8,则解密出消息
2)当密文为转换密文时,且密文是在标签w1,…,wk下密文上进行运算C后得到的转换密文,则利用用户的私钥进行解密,即计算eA是解密后小误差向量的和;设/>用户用密文ψ的第i行作矩阵的行计算/>如果gi=2i∈(q/4,q/2]且|<ψAi,e>+(eA)i|<q/8,则解密出消息/>其中ψAi,(eA)i分别表示矩阵ψA和eA的第i行的行向量。
本发明还提供了一种基于代理重加密的云计算外包和数据动态分享系统,其采用上述的基于代理重加密的云计算外包和数据动态分享方法。
本发明的有益效果为:
为了保护数据的隐私性,运用多身份的基于身份的全同态加密,对存储在数据库中的数据进行加密处理,进而以密文的方式进行存储,在进行云计算数据分享时,云服务器按照任何用户给出的函数在密文上进行计算,然后利用转换密钥将计算结果转换成一个新的密文,并将新密文返回给用户,用户利用自己的私钥解密新密文,得到函数在明文数据上的计算结果。同时,本方法可以抵抗量子计算机攻击和选择性明文攻击,有效地保护了云计算数据隐私与共享数据安全。本发明能够提供数据计算的外包服务,大大减少了数据请求者终端用户的计算量;本发明能够提供数据的安全共享;本发明中,任何用户都可以共享数据,避免了属性加密固定分享用户集合的弊端。
附图说明
图1为实施例中一种基于代理重加密的云计算外包和数据动态分享方法的流程图。
具体实施方式
为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。应当理解的是,实施例仅仅是对本发明进行解释而并非限定。
实施例
如图1所示,本实施例提供了一种基于代理重加密的云计算外包和数据动态分享方法,其包括以下步骤:
S1:密钥生成中心产生数据拥有者和用户的公私钥对,数据拥有者的数据文件经过多身份的基于身份的全同态加密,并将密文上传到云代理服务器;
S2:用户发送共享数据请求给数据拥有者,数据拥有者审核同意后,利用公私钥对产生一个转换密钥发送给云代理服务器,同时返回同意应答给用户;
S3:用户收到同意应答后,将所要外包计算的函数(电路函数C)发送给云代理服务器;
S4:云代理服务器收到函数后对密文进行函数计算,然后利用转换密钥对函数的计算结果进行重加密,并将其返回给用户;
S5:用户收到重加密的密文后,使用自己的私钥解密获得相应函数在数据拥有者数据文件上的计算结果。
S1中,公私钥对的生成方法具体包括以下步骤:
S1.1:生成公开参数;
设参数q=q(λ,L),n=n(λ,L),χ=χ(λ,L),m=m(λ,L)=O(n·log q),其中λ为安全参数,L为全同态运算中乘法的深度,O表示同阶无穷小,即O(n·log q)表示算法的复杂度为线性对数时间,χ=χ(λ,L)是针对已知攻击实现至少2λ安全性的LWE的误差分布,LWE(Learing with Errors)是格上的一个经典困难问题,其困难性可以归约到数学上一个NP-Hard困难问题。设置N=(m+1)·l,即l设置为对数q下取整后加1,N等于m加1后乘以l所得的结果。设公开参数为pp=(n,q,χ,m,H),其中H是哈希函数,将{0,1}*映射到向量空间/>其中{0,1}*表示任意长度的0和1字符串;
S1.2:密钥生成中心产生数据拥有者和用户的公私钥对;
利用算法TrapGen(q,n,m)分别产生矩阵对(An×m,TA n×m)和(Bn×m,TB n×m),其中TrapGen(q,n,m)算法表示输入素数q≥2,正整数n和m≥6nlog q,输出矩阵An×m和以A做成的垂直向量空间的短基TA n×m;数据拥有者的公钥为pkA=A,私钥为skA=TA,用户的公钥为pkB=B,私钥为TB
S1中,数据拥有者对分类为w,消息为μ∈{0,1}按照下面步骤计算密文:
a、首先计算zw n×1=H(w),zw n×1表示zw是一个n×1阶的矩阵,即一个n维行向量。设置Aw=(zw|A)n×(m+1),Aw是一个n×(m+1)阶矩阵;
b、随机选取r1×n←Zq 1×n,r表示从空间Zq 1×n中随机选取的n维列向量,在m+1维误差分布χm+1中随机选取m+1维小误差行向量e1 (m+1)×1←χm+1,然后计算ctw=r·Aw+e1 T和CTw=RN·Aw+EN∈Zq N×(m+1),其中,T为矩阵的转置,RN=(r1 T,…,rN T),EN=(e11,…,e1N)T,ri 1×n∈Zq 1 ×n是从空间Zq 1×n中随机选取的n维列向量,e1i (m+1)×1←χm+1是从m+1维误差分布中随机选取的m+1维行向量,i∈[N];
c、数据拥有者进一步计算密文ψ=Flatten(μ·IN+BitDecomp(CTw)),ψ是一个N×N维矩阵,其中IN表示N×N维单位矩阵,BitDecomp(a)表示将一个任意k维列向量a∈Zq 1×k转换成一个k·l维列向量(a1,0,…,a1,l-1,a2,0,…,a2,l-1,…,ak,0,…,ak,l-1),其中ai,j是向量a第i个分量转换成二进制后第j个比特位的值;BitDecomp-1(·)是BitDecomp(·)的逆运算,将一个k·l维向量转换成一个k维向量,其中运算Flatten(·)=BitDecomp(BitDecomp-1(·))。
S2中,转换密钥的产生方法具体包括以下步骤:
S2.1:用户向数据拥有者发送分享数据请求,征得数据拥有者同意后,用户随机选取一个k·N×N维矩阵X∈Zq k·N×N,k是一个任意的正整数,在误差分布χk·N随机选取一个k·N维误差向量e,即ek·N×1←χk·N,然后用户设置skB′=(1,-tB)T,其中tB←SampleD(B,TB,0,σ),σ是一个参数,满足是矩阵TB的Gram-Schmidt正交化,/>的Gram-Schmidt范数。ω(·)是非渐进紧下确界,/>表示其阶高于/>SampleD(·)是一种抽样算法,输入一个n×m维矩阵B,m×m维短基TB,一个n维分量都为0的行向量,和一个参数/>输出一个m维行向量。,tB是一个m维行向量,skB′是一个m+1维列向量,最后将(X,-X·Powerof2T(skB′)+e)发送给数据拥有者,其中Powerof2(b)表示将任意一个k维列向量b=(b1,…,bk)T∈Zq 1×k转换成一个k·l维列向量(b1,2b1,…,2l-1b1,…,bk,2bk,…,2l-1bk),/>
S2.2:对每个分类标签wi,i∈[k],数据拥有者计算H(wi),令 H是哈希函数。利用自己的公私钥对(A,TA)和抽样算法SampleD抽样一个m+1维的行向量/>即/>设/>最后计算转换密钥/>
S4中,具体包括以下步骤:
S4.1:对布尔电路,只需要计算与非门NAND操作,因为任何一个电路都可以转换成与非门;如果密文ψ1,ψ2是属于同一标签w下消息μ1,μ2的密文,则NAND(ψ12)=Flatten(IN1ψ2);如果密文ψ1,ψ2分别是标签w1和w2中消息μ1,μ2的密文,则NAND(ψ12)=Flatten(IN1′ψ2′)),其中ψ1′、ψ2′分别是ψ1,ψ2扩展矩阵,即其中矩阵对(X1,Y1)通过下面算法产生,MSGPV.GenUnivMask(pp,w11)→U,MSGPV.DeriveMask(pp,U,w2)→(X1,Y1);(X2,Y2)通过下面算法产生,MSGPV.GenUnivMask(pp,w22)→U′,MSGPV.DeriveMask(pp,U′,w1)→(Y2,X2),具体算法如下:
算法MSGPV.GenUnivMask(pp,w11):
1)对每一个i∈[l]:设x1i为算法Blind(w11·2i-1)的输出结果,Blind(w11·2i -1)表示输入一个标签w1和一个值μ1·2i-1,输出一个向量Flatten(c11·2i-1,c2,…,cm+1),其中r表示从空间Zq 1×n中随机选取的n维列向量,在m+1维误差分布χm+1中随机选取m+1维小误差行向量e1 (m+1)×1←χm+1。同时设y1i是N维0列向量;
2)对每一个l<i≤N:在空间Zq 1×n中随机选取向量r1′,在误差分布χm+1选取一个m+1维列向量f1,对每一个j∈[N],计算bj (i)=BitDecomp-1(Blind(w1,pj)),bj (i)是一个m+1维列向量,其中pj是向量Powerof2(r1′)第j个分量,让每个列向量b1 (i),b2 (i),…,bN (i)转置变成行向量,组成矩阵B(i);设y1i=Flatten((01,…,0i-11,0i+1,…,0N)+BitDecomp((0,r1′·A+f1))),0i表示向量第i个位置分量的值为0;
3)让y11,…,y1N作为行向量组成矩阵Y1
4)令U=(x11,…,x1l,Y1,B(l+1),…,B(N)),输出U;
算法MSGPV.DeriveMask(pp,U,w2):
(1)将输入的U拆分成(x11,…,x1l,Y1,B(l+1),…,B(N)),计算H(w2);
(2)对每一个l<i≤N:令x1i=Flatten(BitDecomp(H(w2))·B(i)),让每个x11,…,x1N作为行向量组成矩阵X1
(3)输出矩阵对(X1,Y1);
算法MSGPV.GenUnivMask(pp,w22):
a)对每一个i∈[l]:设y2i为算法Blind(w22·2i-1)的输出结果,Blind(w11·2i -1)表示输入一个标签w2和一个值μ2·2i-1,输出一个向量Flatten(c1′+μ2·2i-1,c2′,…,cm+1′),其中r′表示从空间Zq 1×n中随机选取的n维列向量,在m+1维误差分布χm+1中随机选取m+1维小误差行向量e2,即e2 (m +1)×1←χm+1。同时设x2i是N维0列向量;
b)对每一个l<i≤N:在空间Zq 1×n中随机选取向量r2′,在误差分布χm+1选取一个m+1维列向量f2,对每一个j∈[N],计算bj (i)′=BitDecomp-1(Blind(w2,pj′)),bj (i)′是一个m+1维列向量,其中pj′是向量Powerof2(r2′)第j个分量,让每个列向量b1 (i)′,b2 (i)′,…,bN (i)′转置变成行向量,组成矩阵B(i)′。设x2i=Flatten((01,…,0i-12,0i+1,…,0N)+BitDecomp((0,r2′·A+f2))),0i表示向量第i个位置分量的值为0;
c)让x21,…,x2N作为行向量组成矩阵X2
d)令U′=(y21,…,y2l,X2,B(l+1)′,…,B(N)′),输出U′;
算法MSGPV.DeriveMask(pp,U′,w1):
A)将输入的U′拆分成(y21,…,y2l,X2,B(l+1)′,…,B(N)′),计算H(w1);
B)对每一个l<i≤N:令y2i=Flatten(BitDecomp(H(w1))·B(i)′),让每个y21,…,y2N作为行向量组成矩阵Y2
C)输出矩阵对(Y2,X2);
S4.2:按照上面思路,计算C的密文得到ψC,然后计算ψB0b=ψC·ckA→BB0b就只是个符号,用其代表上面式子的计算结果而已)。
S5中,解密密文分下面两种情况:
1)当密文为数据拥有者的数据密文,不是转换密文时,设密文ψ是标签w下消息的密文,则利用私钥skw进行解密,即计算ψ·Powerof2T(skw)=μ·Powerof2T(skw)+EN·skw,设v=(v1,…,vN)=Powerof2(skw),v是一个N维行向量;数据拥有者用密文ψ的第i行作矩阵的行计算xi:=<ψi,v>=μ·vi+<e1i,skw>;如果vi=2i∈(q/4,q/2]且|<e1i,skw>|<q/8,则解密出消息μ=■xi/vi■;
2)当密文为转换密文时,且密文是在标签w1,…,wk下密文上进行运算C后得到的转换密文,则利用用户的私钥进行解密,即计算eA是解密后小误差向量的和;设/>用户用密文ψ的第i行作矩阵的行计算/>如果gi=2i∈(q/4,q/2]且|<ψAi,e>+(eA)i|<q/8,则解密出消息/>其中ψAi,(eA)i分别表示矩阵ψA和eA的第i行的行向量。
本实施例提供了一种基于代理重加密的云计算外包和数据动态分享系统,其采用上述的基于代理重加密的云计算外包和数据动态分享方法。
系统包括数据拥有者终端,数据代理终端和数据请求者终端,其中,云代理服务器属于数据代理终端,用户属于数据请求者终端。本实施例引入全同态加密技术,数据拥有者终端对数据基于格进行全同态加密,上传至云代理服务器终端,然后引入代理重加密技术,云代理服务器对密文进行转换,使得数据拥有者能解密的密文转换成数据请求者终端用户的密文。本实施例能够抵抗云计算环境下的量子攻击,提供了云计算环境下计算外包服务,解决了云计算环境下数据文件的动态分享问题。
以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。

Claims (8)

1.基于代理重加密的云计算外包和数据动态分享方法,其特征在于:包括以下步骤:
S1:密钥生成中心产生数据拥有者和用户的公私钥对,数据拥有者的数据文件经过多身份的基于身份的全同态加密,并将密文上传到云代理服务器;
S2:用户发送共享数据请求给数据拥有者,数据拥有者审核同意后,利用公私钥对产生一个转换密钥发送给云代理服务器,同时返回同意应答给用户;
S3:用户收到同意应答后,将所要外包计算的函数发送给云代理服务器;
S4:云代理服务器收到函数后对密文进行函数计算,然后利用转换密钥对函数的计算结果进行重加密,并将其返回给用户;
S5:用户收到重加密的密文后,使用自己的私钥解密获得相应函数在数据拥有者数据文件上的计算结果。
2.根据权利要求1所述的基于代理重加密的云计算外包和数据动态分享方法,其特征在于:S1中,公私钥对的生成方法具体包括以下步骤:
S1.1:生成公开参数;
设参数q=q(λ,L),n=n(λ,L),χ=χ(λ,L),m=m(λ,L)=O(n·log q),其中λ为安全参数,L为全同态运算中乘法的深度,O表示同阶无穷小,即O(n·log q)表示算法的复杂度为线性对数时间,χ=χ(λ,L)是针对已知攻击实现至少2λ安全性的LWE的误差分布,设置N=(m+1)·l,即l设置为对数q下取整后加1,N等于m加1后乘以l所得的结果;设公开参数为pp=(n,q,χ,m,H),其中H是哈希函数,将{0,1}*映射到向量空间/>其中{0,1}*表示任意长度的0和1字符串;
S1.2:密钥生成中心产生数据拥有者和用户的公私钥对;
利用算法TrapGen(q,n,m)分别产生矩阵对(An×m,TA n×m)和(Bn×m,TB n×m),其中TrapGen(q,n,m)算法表示输入素数q≥2,正整数n和m≥6nlog q,输出矩阵An×m和以A做成的垂直向量空间的短基TA n×m;数据拥有者的公钥为pkA=A,私钥为skA=TA,用户的公钥为pkB=B,私钥为TB
3.根据权利要求2所述的基于代理重加密的云计算外包和数据动态分享方法,其特征在于:S1中,数据拥有者对分类为w,消息为μ∈{0,1}按照下面步骤计算密文:
a、首先计算zw n×1=H(w),zw n×1表示zw是一个n×1阶的矩阵,即一个n维行向量;设置Aw=(zw|A)n×(m+1),Aw是一个n×(m+1)阶矩阵;
b、随机选取r1×n←Zq 1×n,r表示从空间Zq 1×n中随机选取的n维列向量,在m+1维误差分布χm+1中随机选取m+1维小误差行向量e1 (m+1)×1←χm+1,然后计算ctw=r·Aw+e1 T和CTw=RN·Aw+EN∈Zq N×(m+1),其中,T为矩阵的转置,RN=(r1T,…,rN T),EN=(e11,…,e1N)T,ri 1×n∈Zq 1×n是从空间Zq 1×n中随机选取的n维列向量,e1i (m+1)×1←χm+1是从m+1维误差分布中随机选取的m+1维行向量,i∈[N];
c、数据拥有者进一步计算密文ψ=Flatten(μ·IN+BitDecomp(CTw)),ψ是一个N×N维矩阵,其中IN表示N×N维单位矩阵,BitDecomp(a)表示将一个任意k维列向量a∈Zq 1×k转换成一个k·l维列向量(a1,0,…,a1,l-1,a2,0,…,a2,l-1,…,ak,0,…,ak,l-1),其中ai,j是向量a第i个分量转换成二进制后第j个比特位的值;BitDecomp-1(·)是BitDecomp(·)的逆运算,将一个k·l维向量转换成一个k维向量,其中运算Flatten(·)=BitDecomp(BitDecomp-1(·))。
4.根据权利要求3所述的基于代理重加密的云计算外包和数据动态分享方法,其特征在于:S2中,转换密钥的产生方法具体包括以下步骤:
S2.1:用户向数据拥有者发送分享数据请求,征得数据拥有者同意后,用户随机选取一个k·N×N维矩阵X∈Zq k·N×N,k是一个任意的正整数,在误差分布χk·N随机选取一个k·N维误差向量e,即ek·N×1←χk·N,然后用户设置skB′=(1,-tB)T,其中tB←SampleD(B,TB,0,σ),σ是一个参数,满足 是矩阵TB的Gram-Schmidt正交化,/>是/>的Gram-Schmidt范数,ω(·)是非渐进紧下确界,/>表示其阶高于/>SampleD(·)是一种抽样算法,输入一个n×m维矩阵B,m×m维短基TB,一个n维分量都为0的行向量,和一个参数/>输出一个m维行向量;,tB是一个m维行向量,skB′是一个m+1维列向量,最后将(X,-X·Powerof2T(skB′)+e)发送给数据拥有者,其中Powerof2(b)表示将任意一个k维列向量b=(b1,…,bk)T∈Zq 1×k转换成一个k·l维列向量(b1,2b1,…,2l- 1b1,…,bk,2bk,…,2l-1bk),/>
S2.2:对每个分类标签wi,i∈[k],数据拥有者计算H(wi),令i∈[k],利用自己的公私钥对(A,TA)和抽样算法SampleD抽样一个m+1维的行向量/>设/>i∈[k],最后计算转换密钥/>
5.根据权利要求4所述的基于代理重加密的云计算外包和数据动态分享方法,其特征在于:S3中,函数为电路函数C。
6.根据权利要求5所述的基于代理重加密的云计算外包和数据动态分享方法,其特征在于:S4中,具体包括以下步骤:
S4.1:对布尔电路,只需要计算与非门NAND操作;如果密文ψ1,ψ2是属于同一标签w下消息μ1,μ2的密文,则NAND(ψ12)=Flatten(IN1ψ2);如果密文ψ1,ψ2分别是标签w1和w2中消息μ1,μ2的密文,则NAND(ψ12)=Flatten(IN1′ψ2′)),其中ψ1′、ψ2′分别是ψ1,ψ2扩展矩阵,即其中矩阵对(X1,Y1)通过下面算法产生,MSGPV.GenUnivMask(pp,w11)→U,MSGPV.DeriveMask(pp,U,w2)→(X1,Y1);(X2,Y2)通过下面算法产生,MSGPV.GenUnivMask(pp,w22)→U′,MSGPV.DeriveMask(pp,U′,w1)→(Y2,X2),具体算法如下:
算法MSGPV.GenUnivMask(pp,w11):
1)对每一个i∈[l]:设x1i为算法Blind(w11·2i-1)的输出结果,Blind(w11·2i-1)表示输入一个标签w1和一个值μ1·2i-1,输出一个向量Flatten(c11·2i-1,c2,…,cm+1),其中r表示从空间Zq 1×n中随机选取的n维列向量,/>在m+1维误差分布χm+1中随机选取m+1维小误差行向量e1 (m+1)×1←χm+1;同时设y1i是N维0列向量;
2)对每一个l<i≤N:在空间Zq 1×n中随机选取向量r1′,在误差分布χm+1选取一个m+1维列向量f1,对每一个j∈[N],计算bj (i)=BitDecomp-1(Blind(w1,pj)),bj (i)是一个m+1维列向量,其中pj是向量Powerof2(r1′)第j个分量,让每个列向量b1 (i),b2 (i),…,bN (i)转置变成行向量,组成矩阵B(i);设y1i=Flatten((01,…,0i-11,0i+1,…,0N)+BitDecomp((0,r1′·A+f1))),0i表示向量第i个位置分量的值为0;
3)让y11,…,y1N作为行向量组成矩阵Y1
4)令U=(x11,…,x1l,Y1,B(l+1),…,B(N)),输出U;
算法MSGPV.DeriveMask(pp,U,w2):
(1)将输入的U拆分成(x11,…,x1l,Y1,B(l+1),…,B(N)),计算H(w2);
(2)对每一个l<i≤N:令x1i=Flatten(BitDecomp(H(w2))·B(i)),让每个x11,…,x1N作为行向量组成矩阵X1
(3)输出矩阵对(X1,Y1);
算法MSGPV.GenUnivMask(pp,w22):
a)对每一个i∈[l]:设y2i为算法Blind(w22·2i-1)的输出结果,Blind(w11·2i-1)表示输入一个标签w2和一个值μ2·2i-1,输出一个向量Flatten(c1′+μ2·2i-1,c2′,…,cm+1′),其中r′表示从空间Zq 1×n中随机选取的n维列向量,/>在m+1维误差分布χm+1中随机选取m+1维小误差行向量e2,即e2 (m+1)×1←χm+1;同时设x2i是N维0列向量;
b)对每一个l<i≤N:在空间Zq 1×n中随机选取向量r2′,在误差分布χm+1选取一个m+1维列向量f2,对每一个j∈[N],计算bj (i)′=BitDecomp-1(Blind(w2,pj′)),bj (i)′是一个m+1维列向量,其中pj′是向量Powerof2(r2′)第j个分量,让每个列向量b1 (i)′,b2 (i)′,…,bN (i)′转置变成行向量,组成矩阵B(i)′;设x2i=Flatten((01,…,0i-12,0i+1,…,0N)+BitDecomp((0,r2′·A+f2))),0i表示向量第i个位置分量的值为0;
c)让x21,…,x2N作为行向量组成矩阵X2
d)令U′=(y21,…,y2l,X2,B(l+1)′,…,B(N)′),输出U′;
算法MSGPV.DeriveMask(pp,U′,w1):
A)将输入的U′拆分成(y21,…,y2l,X2,B(l+1)′,…,B(N)′),计算H(w1);
B)对每一个l<i≤N:令y2i=Flatten(BitDecomp(H(w1))·B(i)′),让每个y21,…,
y2N作为行向量组成矩阵Y2
C)输出矩阵对(Y2,X2);
S4.2:按照上面思路,计算C的密文得到ψC,然后计算结果ψB0b=ψC·ckA→B
7.根据权利要求6所述的基于代理重加密的云计算外包和数据动态分享方法,其特征在于:S5中,解密密文分下面两种情况:
1)当密文为数据拥有者的数据密文,不是转换密文时,设密文ψ是标签w下消息的密文,则利用私钥skw进行解密,即计算ψ·Powerof2T(skw)=μ·Powerof2T(skw)+EN·skw,设v=(v1,…,vN)=Powerof2(skw),v是一个N维行向量;数据拥有者用密文ψ的第i行作矩阵的行计算xi:=<ψi,v>=μ·vi+<e1i,skw>;如果vi=2i∈(q/4,q/2]且|<e1i,skw>|<q/8,则解密出消息
2)当密文为转换密文时,且密文是在标签w1,…,wk下密文上进行运算C后得到的转换密文,则利用用户的私钥进行解密,即计算eA是解密后小误差向量的和;设/>用户用密文ψ的第i行作矩阵的行计算xi:=<ψi,/>如果gi=2i∈(q/4,q/2]且|<ψAi,e>+(eA)i|<q/8,则解密出消息/>其中ψAi,(eA)i分别表示矩阵ψA和eA的第i行的行向量。
8.基于代理重加密的云计算外包和数据动态分享系统,其特征在于:其采用如权利要求1-7中任一所述的基于代理重加密的云计算外包和数据动态分享方法。
CN202310676714.3A 2023-06-08 2023-06-08 基于代理重加密的云计算外包和数据动态分享方法及系统 Active CN116684062B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310676714.3A CN116684062B (zh) 2023-06-08 2023-06-08 基于代理重加密的云计算外包和数据动态分享方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310676714.3A CN116684062B (zh) 2023-06-08 2023-06-08 基于代理重加密的云计算外包和数据动态分享方法及系统

Publications (2)

Publication Number Publication Date
CN116684062A true CN116684062A (zh) 2023-09-01
CN116684062B CN116684062B (zh) 2024-06-14

Family

ID=87780691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310676714.3A Active CN116684062B (zh) 2023-06-08 2023-06-08 基于代理重加密的云计算外包和数据动态分享方法及系统

Country Status (1)

Country Link
CN (1) CN116684062B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117807620A (zh) * 2024-03-01 2024-04-02 济南凯联通信技术有限公司 一种信息动态加密存储方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102769620A (zh) * 2012-07-19 2012-11-07 广州大学 一种安全外包的基于属性的加密方法
US20120300936A1 (en) * 2011-05-24 2012-11-29 Zeutro, Llc Outsourcing the Decryption of Functional Encryption Ciphertexts
CN105933345A (zh) * 2016-06-28 2016-09-07 电子科技大学 一种基于线性秘密共享的可验证外包属性基加密方法
CN109639677A (zh) * 2018-12-13 2019-04-16 广东工业大学 一种可限制访问次数的云存储外包解密属性基加密方法
CN115442134A (zh) * 2022-09-02 2022-12-06 暨南大学 一种基于同态双向代理重加密的多密钥多方安全计算方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120300936A1 (en) * 2011-05-24 2012-11-29 Zeutro, Llc Outsourcing the Decryption of Functional Encryption Ciphertexts
CN102769620A (zh) * 2012-07-19 2012-11-07 广州大学 一种安全外包的基于属性的加密方法
CN105933345A (zh) * 2016-06-28 2016-09-07 电子科技大学 一种基于线性秘密共享的可验证外包属性基加密方法
CN109639677A (zh) * 2018-12-13 2019-04-16 广东工业大学 一种可限制访问次数的云存储外包解密属性基加密方法
CN115442134A (zh) * 2022-09-02 2022-12-06 暨南大学 一种基于同态双向代理重加密的多密钥多方安全计算方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CONGGE XIE等: "Revocable identity-based fully homomorphic signature scheme with signing key exposure resistance", INFORMATION SCIENCES, 31 May 2022 (2022-05-31) *
XIE, CONGGE等: ""Revocable identity-based fully homomorphic signature scheme with signing key exposure resistance"", INFORMATION SCIENCES, 1 July 2022 (2022-07-01) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117807620A (zh) * 2024-03-01 2024-04-02 济南凯联通信技术有限公司 一种信息动态加密存储方法
CN117807620B (zh) * 2024-03-01 2024-05-24 济南凯联通信技术有限公司 一种信息动态加密存储方法

Also Published As

Publication number Publication date
CN116684062B (zh) 2024-06-14

Similar Documents

Publication Publication Date Title
Li et al. Privacy-preserving machine learning with multiple data providers
CN113297606B (zh) 基于多混沌与dna运算的彩色量子图像加密及解密方法
CN110176983B (zh) 基于全同态加密的隐私保护关联规则挖掘方法
CN108737115B (zh) 一种具有隐私保护的私有属性集交集求解方法
CN110635909B (zh) 一种基于属性的抗合谋攻击的代理重加密方法
JP2014126865A (ja) 暗号処理装置および方法
CN105122721A (zh) 针对加密数据的托管安全计算
CN106375346A (zh) 一种云环境下基于条件广播代理重加密的数据保护方法
Gong et al. Homomorphic evaluation of the integer arithmetic operations for mobile edge computing
WO2014132552A1 (ja) 順序保存暗号化システム、装置、方法およびプログラム
Wang et al. A faster fully homomorphic encryption scheme in big data
CN116684062B (zh) 基于代理重加密的云计算外包和数据动态分享方法及系统
Sun et al. An efficient secure k nearest neighbor classification protocol with high‐dimensional features
Li et al. Fully homomorphic encryption with table lookup for privacy-preserving smart grid
Kumar et al. Providing data security using DNA computing in the cloud computing environment
CN110266490A (zh) 云存储数据的关键词密文生成方法及装置
Saeed et al. Improved cloud storage security of using three layers cryptography algorithms
Pathak et al. A secure framework for file encryption using base64 encoding
Wang et al. Improved collusion‐resistant unidirectional proxy re‐encryption scheme from lattice
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
Suhael et al. Proposed Hybrid Cryptosystems Based on Modifications of Playfair Cipher and RSA Cryptosystem
KR100951034B1 (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
CN116170142A (zh) 分布式协同解密方法、设备和存储介质
Yu et al. Lattice-Based Searchable Encryption Scheme against Inside Keywords Guessing Attack.
US8036378B2 (en) System and method of authentication

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant