1.一种公开可验证的数据容错安全存储方法,其特征在于:利用多线性映射和公开可验证秘密共享技术,对数据进行分发和承诺,并将生成的n个份额发送给前端云服务商进行加密,生成加密的份额后,发送给n个不同的后端云服务商进行公开验证其有效性后对加密的份额进行解密运算,得到份额后存储在相应的云存储上。
2.根据权利要求1所述的公开可验证的数据容错安全存储方法,其特征在于:具体包括如下步骤:1)预处理:客户端Client对用户的数据进行预处理,用预处理的结果作为实际共享的信息,预处理的结果将被直接用于分发步骤;2)份额分发:客户端Client利用秘密共享技术生成n个份额S
i,发送给前端云服务商FS,FS利用多线性映射对份额S
i进行加密后向n个后端云服务商BS
1,BS
2,…,BS
n发送加密的份额Y
i,其中i=1,2,…,n;3)公开验证和数据存储:每个后端云服务商BS
i可以利用公开值,如群生成元P和数据份额的加密值Y
i等利用自己的公钥y
i对客户端Client生成n个份额S
i的有效性进行公开验证;4)数据恢复:客户端Client从存储数据份额的n个云存储服务器Sto
1,Sto
2,…,Sto
n处得到不少于门限值t个份额,就可以利用拉格朗日插值公式恢复出原始数据。
3.根据权利要求2所述的公开可验证的数据容错安全存储方法,其特征在于:所述的步骤1)具体包括如下步骤:a、客户端Client定义数据的访问结构,以及份额的存储结构,确定份额的数量n及门限t的值;b、客户端Client在每次会话中随机生成一个会话IDSID
i,为份额的存储确定n个云存储服务器Sto
1,Sto
2,…,Sto
n及相应的后端云服务商BS
1,BS
2,…,BS
n;c、令m-1维向量S=(P
1,P
2,…,P
m-1)表示需存储的数据,其中P
i=b
i·P,
且i=1,2,…,m-1;每个后端云服务商BS
i从
中选择自己的私钥x
i并计算y
i=x
iP作为自己的公钥。
4.根据权利要求2所述的公开可验证的数据容错安全存储方法,其特征在于:所述的步骤2)具体包括如下步骤:a、客户端Client公开对数据的承诺值C
0=e(S,rP)=e
m(P
1,P
2,…,P
m-1,rP),其中任意
b、客户端Client随机从
中选择(t-1)×(m-1)个元素f
i,j,其中i∈{1,2,…,t-1},j∈{1,2,…,m-1},并构造m-1个次数不超过t-1的多项式如下:
然后,客户端计算b
j=g
j(0),P
j=g
j(0)·P,其中j=1,2,…,m-1;因此,需存储的数据S=(P
1,P
2,…,P
m-1)=(g
1(0)P,g
2(0)P,…,g
m-1(0)P);从而,客户端能够计算出S
i=(g
1(i)P,g
2(i)P,…,g
m-1(i)P)作为n个份额S
i发送给前端云服务商FS,FS将份额S
i加密后得到加密的份额值Y
i发送给对应的后端云服务商BS
i存储在n个不同的云存服务器Sto
i中,其中i=1,2,…,n为每个拥有数据份额的后端云服务商的身份信息;c、根据上述m-1个等式,客户端可将其简记为m-1维向量多项式F(x)=P·g
1(x)+P·g
2(x)+…+P·g
m-1(x)=F
0+F
1x+…+F
t-1x
t-1,其中数据F
0=F(0)=S=(b
1P,b
2P,…,b
m-1P),其它系数能被记作向量F
1=(Pf
1,1,Pf
1,2,…,Pf
1,m-1),F
2=(Pf
2,1,Pf
2,2,…,Pf
2,m-1),…,F
t-1=(Pf
t-1,1,Pf
t-1,2,…,Pf
t-1,m-1);另外,Client随机从
中选择R
1,R
2,…,R
t-1,并广播相关的承诺C
i=e(F
i,R
iP)=e
m(Pf
i,1,Pf
i,2,…,Pf
i,m-1,r
iP),其中j=1,2,…,t-1;d、客户端随机选择次数不超过t-1的多项式R(x)=r
0+r
1x+…+r
t-1x
t-1,其系数均随机取自于
且r
0=r,客户端计算并公开
其中i=1,2,…,n;e、客户端将生成的n个份额S
i发送给前端云服务商FS,FS进行用户验证,验证通过后,前端云服务商FS计算并公开X
i=e(F(i),R(i)P),并利用多线性映射对份额S
i进行加密得到Y
i=y
i·(g
1(i),g
2(i),…,g
m-1(i)),然后FS将n个加密的份额Y
i和会话秘钥SID
i发送给相应的n个后端云服务商BS
i,其中i=1,2,…,n。
5.根据权利要求2所述的公开可验证的数据容错安全存储方法,其特征在于:所述的步骤3)具体包括如下步骤:a、后端云服务商BS
i检验从FS获得的SID
i是否等于从客户端获得的SID
i;如果相等,BS
i接收FS发送的加密的份额值Y
i;然后,每个BS
i使用自己的私钥x
i,通过计算等式
从公开的加密的份额Y
i中解密出份额S
i=(g
1(i)P,g
2(i)P,…,g
m-1(i)P),最后后端云服务商BS
i利用自己的公钥y
i通过等式(2)利用公开信息P,Y
i公开验证份额S
i的有效性:e(Y
i,P)=e(S
i,y
i) (2);b、若上述验证式通过,后端云服务商BS
i保留有效的份额S
i,否则,S
i无效可销毁;最后,BS
i将有效的份额S
i和会话IDSID
i发送给相应的云存储服务器Sto
i进行存储。
6.根据权利要求2所述的公开可验证的数据容错安全存储方法,其特征在于:所述的步骤4)具体包括如下步骤:a、客户端Client从n个云存储服务器(Sto
1,Sto
2,…,Sto
n)处选择任意t个有效的份额,不妨设为S
1,S
2,…,S
t,并对每个存储份额的存储器Sto
1,Sto
2,…,Sto
t执行有效性验证,如果验证通过,客户端Client就能获得用来重构数据的份额;b、客户端Client利用获得的t个有效的份额结合拉格朗日插值方法通过等式(3)恢复出数据:
,其中
是拉格朗日系数。