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

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

【技术实现步骤摘要】
基于代理重加密的云计算外包和数据动态分享方法及系统


[0001]本专利技术涉及云计算、网络安全
,具体地说,涉及一种基于代理重加密的云计算外包和数据动态分享方法及系统。

技术介绍

[0002]随着云计算的发展和普及,数据外包越来越流行,数据拥有者通常把数据外包给云服务器。由于数据的敏感性,外包数据都会经过加密处理,存储在云服务器上的数据都是加密数据,这严重影响了云服务器的计算服务和数据拥有者数据的共享性,因此,如何设计一个有效地保护数据和云计算数据共享方法是迫切需要解决的问题。在现有的技术中,如运用全同态加密,只能解决数据的保护和云服务器计算数据的问题,不能解决数据分享问题。多属性的基于属性的全同态加密能够同时解决数据的保护、云服务器数据计算和数据分享问题,但需要事先固定好数据分享的策略函数,数据分享的用户不具有动态性。
[0003]综上所述,现有技术存在的问题是:无法同时保证数据的隐私性、云服务器数据计算外包服务、动态分享数据服务和抵抗量子计算及攻击。难点在于:为了保护数据的隐私与安全,数据在外包给云服务器之前需要进行加密,并以密文方式存储,所以数据的计算需要在密文下进行,并且将计算结果安全的分享给用户。已有的技术一方面在数据分享安全性不够,使得攻击者可以获取数据的信息,或者基于传统计算问题构建解决办法,不能抵抗量子计算机攻击;另一方面数据请求终端用户集合固定,不具有动态性。

技术实现思路

[0004]本专利技术的内容是提供一种基于代理重加密的云计算外包和数据动态分享方法及系统,其可以抵抗量子计算机攻击和选择性明文攻击,有效地保护了云计算数据隐私与共享数据安全。
[0005]根据本专利技术的基于代理重加密的云计算外包和数据动态分享方法,其包括以下步骤:
[0006]S1:密钥生成中心产生数据拥有者和用户的公私钥对,数据拥有者的数据文件经过多身份的基于身份的全同态加密,并将密文上传到云代理服务器;
[0007]S2:用户发送共享数据请求给数据拥有者,数据拥有者审核同意后,利用公私钥对产生一个转换密钥发送给云代理服务器,同时返回同意应答给用户;
[0008]S3:用户收到同意应答后,将所要外包计算的函数发送给云代理服务器;
[0009]S4:云代理服务器收到函数后对密文进行函数计算,然后利用转换密钥对函数的计算结果进行重加密,并将其返回给用户;
[0010]S5:用户收到重加密的密文后,使用自己的私钥解密获得相应函数在数据拥有者数据文件上的计算结果。
[0011]作为优选,S1中,公私钥对的生成方法具体包括以下步骤:
[0012]S1.1:生成公开参数;
[0013]设参数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字符串;
[0014]S1.2:密钥生成中心产生数据拥有者和用户的公私钥对;
[0015]利用算法TrapGen(q,n,m)分别产生矩阵对(A
n
×
m
,T
An
×
m
)和(B
n
×
m
,T
Bn
×
m
),其中TrapGen(q,n,m)算法表示输入素数q≥2,正整数n和m≥6nlog q,输出矩阵A
n
×
m
和以A做成的垂直向量空间的短基T
An
×
m
;数据拥有者的公钥为pk
A
=A,私钥为sk
A
=T
A
,用户的公钥为pk
B
=B,私钥为T
B

[0016]作为优选,S1中,数据拥有者对分类为w,消息为μ∈{0,1}按照下面步骤计算密文:
[0017]a、首先计算z
wn
×1=H(w),z
wn
×1表示z
w
是一个n
×
1阶的矩阵,即一个n维行向量;设置A
w
=(z
w
|A)
n
×
(m+1)
,A
w
是一个n
×
(m+1)阶矩阵;
[0018]b、随机选取r1×
n

Z
q1
×
n
,r表示从空间Z
q1
×
n
中随机选取的n维列向量,在m+1维误差分布χ
m+1
中随机选取m+1维小误差行向量e
1(m+1)
×1←
χ
m+1
,然后计算ct
w
=r
·
A
w
+e
1T
和CT
w
=R
N
·
A
w
+E
N
∈Z
qN
×
(m+1)
,其中,T为矩阵的转置,R
N
=(r
1T
,

,r
NT
),E
N
=(e
11
,

,e
1N
)
T
,r
i1
×
n
∈Z
q1
×
n
是从空间Z
q1
×
n
中随机选取的n维列向量,e
1i(m+1)
×1←
χ
m+1
是从m+1维误差分布中随机选取的m+1维行向量,i∈[N];
[0019]c、数据拥有者进一步计算密文ψ=Flatten(μ
·
I
N
+BitDecomp(CT
w
)),ψ是一个N
×
N维矩阵,其中I
N
表示N
×
N维单位矩阵,BitDecomp(a)表示将一个任意k维列向量a∈Z
q1
×
k
转换成一个k
·
l维列向量(a
1,0
,

,a
1,l
‑1,a
2,0
,
...

【技术保护点】

【技术特征摘要】
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)分别产生矩阵对(A
n
×
m
,T
An
×
m
)和(B
n
×
m
,T
Bn
×
m
),其中TrapGen(q,n,m)算法表示输入素数q≥2,正整数n和m≥6nlog q,输出矩阵A
n
×
m
和以A做成的垂直向量空间的短基T
An
×
m
;数据拥有者的公钥为pk
A
=A,私钥为sk
A
=T
A
,用户的公钥为pk
B
=B,私钥为T
B
。3.根据权利要求2所述的基于代理重加密的云计算外包和数据动态分享方法,其特征在于:S1中,数据拥有者对分类为w,消息为μ∈{0,1}按照下面步骤计算密文:a、首先计算z
wn
×1=H(w),z
wn
×1表示z
w
是一个n
×
1阶的矩阵,即一个n维行向量;设置A
w
=(z
w
|A)
n
×
(m+1)
,A
w
是一个n
×
(m+1)阶矩阵;b、随机选取r1×
n

Z
q1
×
n
,r表示从空间Z
q1
×
n
中随机选取的n维列向量,在m+1维误差分布χ
m+1
中随机选取m+1维小误差行向量e
1(m+1)
×1←
χ
m+1
,然后计算ct
w
=r
·
A
w
+e
1T
和CT
w
=R
N
·
A
w
+E
N
∈Z
qN
×
(m+1)
,其中,T为矩阵的转置,R
N
=(r1
T
,

,r
NT
),E
N
=(e
11
,

,e
1N
)
T
,r
i1
×
n
∈Z
q1
×
n
是从空间Z
q1
×
n
中随机选取的n维列向量,e
1i(m+1)
×1←
χ
m+1
是从m+1维误差分布中随机选取的m+1维行向量,i∈[N];c、数据拥有者进一步计算密文ψ=Flatten(μ
·
I
N
+BitDecomp(CT
w
)),ψ是一个N
×
N维矩阵,其中I
N
表示N
×
N维单位矩阵,BitDecomp(a)表示将一个任意k维列向量a∈Z
q1
×
k
转换成一个k
·
l维列向量(a
1,0
,

,a
1,l
‑1,a
2,0
,

,a
2,l
‑1,

,a
k,0
,

,a
k,l
‑1),其中a
i,j
是向量a第i个分量转换成二进制后第j个比特位的值;BitDecomp
‑1(
·
)是BitDecomp(
·
)的
逆运算,将一个k
·
l维向量转换成一个k维向量,其中运算Flatten(
·
)=BitDecomp(BitDecomp
‑1(
·
))。4.根据权利要求3所述的基于代理重加密的云计算外包和数据动态分享方法,其特征在于:S2中,转换密钥的产生方法具体包括以下步骤:S2.1:用户向数据拥有者发送分享数据请求,征得数据拥有者同意后,用户随机选取一个k
·
N
×
N维矩阵X∈Z
qk
·
N
×
N
,k是一个任意的正整数,在误差分布χ
k
·
N
随机选取一个k
·
N维误差向量e,即e
k
·
N
×1←
χ
k
·
N
,然后用户设置sk
B

=(1,

t
B
)
T
,其中t
B

SampleD(B,T
B
,0,σ),σ是一个参数,满足是一个参数,满足是矩阵T
B
的Gram

Schmidt正交化,是的Gram

Schmidt范数,ω(
·
)是非渐进紧下确界,表示其阶高于SampleD(
·
)是一种抽样算法,输入一个n
×
m维矩阵B,m
×
m维短基T
B
,一个n维分量都为0的行向量,和一个参数输出一个m维行向量;,t
B
是一个m维行向量,sk
B

是一个m+1维列向量,最后将(X,

X
·
Powerof2
T
(sk
B

)+e)发送给数据拥有者,其中Powerof2(b)表示将任意一个k维列向量b=(b1,

,b
k
)
T
∈Z
q1
×
k
转换成一个k
·
l维列向量(b1,2b1,

,2
l
‑1b1,

,b
k
,2b
k
,

,2
l
‑1b
k
),S2.2:对每个分类标签w
i
,i∈[k],数据拥有者计算H(w
i
),令i∈[k],利用自己的公私钥对(A,T
A
)和抽样算法SampleD抽样一个m+1维的行向量即设i∈[k],最后计算转换密钥最后计算转换密钥5.根据权利要求4所述的基于代理重加密的云计算外包和数据动态分享方法,其特征在于:S3中,函数为电路函数C。6.根据权利要求5所述的基于代理重加密的云计算外包和数据动态分享方法,其特征在于:S4中,具体包括以下步骤:S4.1:对布尔电路,只需要计算与非门NAND操作;如果密文ψ1,ψ2是属于同一标签w下消息μ1,μ2的密文,则NAND(ψ1,ψ2)=Flatten(I
N

ψ1ψ2);如果密文ψ1,ψ2分别是标签w1和w2中消息μ1,μ2的密文,则NAND(ψ1,ψ2)=Flatten(I
N

ψ1′
ψ2′
)),其中ψ1′
、ψ2′
分别是ψ1,ψ2扩展矩阵,即其中矩阵对(X1,Y1)通过下面算法产生,MS
GPV
.GenUnivMask(pp,w1,μ1)

U,MS
GPV
.DeriveMask(pp,U,w2)

(X1,Y1);(X2,Y2)通过...

【专利技术属性】
技术研发人员:谢聪格刘翔
申请(专利权)人:东莞理工学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1