本发明属于网络空间安全技术领域,尤其涉及一种高效抗远程服务攻击的外包数据存储与访问方法。
背景技术:
随着云技术的不断发展,将数据外包存放在远程云服务器上可以有效地降低本地的存储开销。为了保护数据的安全性,一般在将数据外包存放在远程服务器之前会对数据使用加密等技术进行保护。虽然加密等技术可以保护数据的内容,但是当数据使用者在访问数据时,远程服务器会获得数据使用者所访问的数据位置信息、频率等访问模式信息。当远程服务器获取到足够多的访问模式信息后,可以根据一些先验知识推断出来数据的信息,甚至是还原数据的内容。此外,对于恶意的远程服务器来说,还可以进一步通过修改数据内容或欺骗数据拥有者,减少自己的开销或获取数据拥有者的信息。
为了在保护数据内容的同时保护数据的访问模式,不少学者纷纷提出一些解决方案,如不经意传输(oblivioustransfer,ot)协议、私有信息检索(privateinformationretrieval,pir)、不经意随机访问机(obliviousrandomaccessmachine,oram)等。这些方案可以在一定程度上实现上述目标,但是其中有些方案仍然存在如通信开销较大、客户端计算量较大、难以抵抗恶意远程服务器的攻击、实现较难等缺点。
技术实现要素:
本发明的主要目的在于解决现有技术的缺点和不足,提供一种高效抗远程服务攻击的外包数据存储与访问方法,该方法可以在恶意远程服务器的环境下,保护外包数据内容,同时保护数据拥有者在访问数据时产生的访问模式信息。
本发明的目的可以通过如下技术方案实现:
一种高效抗远程服务攻击的外包数据存储与访问方法,包括以下步骤:
步骤(一)、数据拥有者将数据采用预设加法同态加密方案加密,并外包存储在远程服务器;
步骤(二)、数据拥有者产生访问向量,对访问向量进行加密,发送给远程服务器;
步骤(三)、远程服务器根据加密后的访问向量,对外包数据进行操作,将操作结果返回给数据拥有者
步骤(四)、数据拥有者对操作结果进行解密,获取正确的数据。
优选地,步骤(一)具体为:
数据拥有者执行密钥产生算法
在初始化阶段,数据拥有者将数据di生成中间值d′i,对中间值d′i采用纠错码的编码函数encodeecc(d′i)进行编码,生成中间值mi=(mi1,mi2,...,miq);数据拥有者将mij使用加密函数εpk(s+1,εpk(s,mij))加密为cij,并组成数组ci=(ci1,ci2,...,ciq),最终数据拥有者将所有的密文数据(c1,c1,...,cn)上传到远程服务器供后续访问,数据拥有者设置时间表t,并设置t[i]←t,时间表t为长度为n的一维数组;其中,数据拥有者共有n个数据,n个数据分别为d1,d2,...,dn;s是加密和解密参数;d′i=h(t||di)||t||di,1≤i≤n,t为当前的时间戳,||为连接操作;1≤j≤q;
优选地,步骤(二)具体为:当数据拥有者需要访问第k个数据时(1≤k≤n),生成访问向量
优选地,步骤(三)具体为:远程服务器计算密文τi的响应值rj,并将响应数组r返回给数据拥有者;r=(r1,r2,...,rq);1≤j≤q。
优选地,步骤(四)具体为:
数据拥有者采用解密函数dsk(s+1,dsk(s+2,rj))对响应值rj解密得到r′j;再采用解密函
(1)
(2)t[k]是否等于
(3)h是否等于
若(1)、(2)和(3)都满足,则数据拥有者对解码结果进行数据恢复,得到恢复后数据dk,
优选地,步骤(四)具体为之后还包括:数据拥有者对远程服务器的数据dk进行更新,具体为:数据拥有者根据新的数据v计算中间值
远程服务器根据密文τi计算中间值τ′i,τ′i=reduction(τi);
远程服务器通过更新公式更新cij,实现所有的加密数据的更新,1≤i≤n,1≤j≤q,更新公式为:
优选地,纠错码的编码函数encodeecc()和纠错码的解码函数decodeecc()满足:数据di编码后的结果由q部分组成,这q部分中不超过阈值σ个的部分被修改或缺失,则从剩余的q-σ个部分中恢复出数据di。
优选地,远程服务器计算密文τi的响应值rj的公式为:
优选地,函数reduction()过程,具体为:
对于任意密文
与现有技术相比,本发明具有如下有益效果:
本发明通过对数据拥有者的数据采取编码和加密处理后,外包存储在远程服务器上。数据拥有者可以通过产生访问向量,秘密地对外包服务器上的加密数据进行读取、写入、删除等访问操作。本发明可以有效地防止恶意的远程服务器获取外包数据的内容,并且隐藏数据的访问模式。具体为:
一、具有较高的安全和隐私保护性,可以抵抗恶意的远程服务器的攻击,并在保护数据内容的同时,保护数据拥有者访问数据时产生的访问模式。
二、极大地减少了通讯量和数据拥有者的计算量。
附图说明
图1是本发明的一种高效抗远程服务攻击的外包数据存储与访问方法的流程图。
具体实施方式
下面结合实施例和附图对本发明做进一步阐述,但本发明的实施方式不限于此。
实施例
本发明,一种高效抗远程服务攻击的外包数据存储与访问方法,如图1所示,包括以下步骤:
设定
在实际应用中,安全参数λ可设置为1024或更高,以达到符合实际需要的安全强度;数据拥有者可预先设定好方案的初始加密参数s=1,这样的设定有助于提高方案的效率;
步骤一、数据拥有者执行密钥产生函数
具体如下:
数据拥有者执行密钥产生函数
步骤二、假设数据拥有者共有n个数据(d1,d2,...,dn);数据拥有者选择加密和解密参数s=1;在初始化阶段,数据拥有者将每个数据di设置成为d′i=h(t||di)||t||di,其中1≤i≤n,t为当前的时间戳,||为连接操作;接下来,数据拥有者使用纠错码的编码算法计算encodeecc(d′i),即将每一个数据d′i编码成为mi=(mi1,mi2,...,miq);对于所有的1≤i≤n,1≤j≤q,数据拥有者将mij使用加密函数εpk(2,εpk(1,mij))加密为cij;即,每个数据di被编码、加密,并组成为ci=(ci1,ci2,...,ciq);将所有的密文数据(c1,c2,...,cn)上传到远程服务器供后续访问;此外,数据拥有者设置时间表t为一个长度为n的一维数组,并设置t[i]←t;
在实际应用中,数据拥有者可以选择加密参数s=1;纠错码的编码和解码算法encodeecc()和decodeecc()满足:对于数据di,其编码后的结果由q部分组成,若这q部分中不超过阈值σ个部分被修改或缺失,则仍然可以从剩余的q-σ个部分中恢复出来数据di;进一步,数据拥有者可将mij使用加密函数εpk(2,εpk(1,mij))加密为cij;举例说明:数据di编码后的结果由10部分组成,这10部分中第1、第2和第3部分被修改或缺失,则仍然可以从剩下的7部分中恢复出来数据di。
步骤三、数据拥有者想要访问第k个数据时(1≤k≤n),设置访问向量b={b1,b2,...,bn},其中当i=k时,bi=1,当i≠k时,bi=0;对每一个bi使用加密函数εpk(3,bi)加密为τi;将所有的τi发送给远程服务器;
当数据拥有者选择加密参数s=1时,对bi的加密过程具体为:数据拥有者随机选取
步骤四、对于所有的1≤j≤q,远程服务器计算响应值rj;远程服务器返回r=(r1,r2,...,rq)给数据拥有者;
当数据拥有者选择加密参数s=1时,cij和τi分别为使用参数1和3加密的密文,cij刚好在τi的明文空间中,即都为
步骤五、对于所有的1≤j≤q,数据拥有者使用
对密文数据rj的解密过程,具体为:
数据拥有者设定当前密文的加密解密参数l=3,利用中国剩余定理计算d,其中d=1modn3且d=0modλ;计算a=cdmodn4;设
继续对上述结果使用相应加密解密参数l=2进行解密,得到r′j;再次对r′j使用相应参数l=1进行解密,得到mkj;调用纠错码的解码函数,并经过完整性和合法性检验,从所有的mkj中即可恢复出dk;
步骤六、数据拥有者如果想用新的数据v更新dk,则设置
步骤七、远程服务器对所有的τi计算τ′i=reduction(τi);
当
步骤八、远程服务器更新所有的加密数据。
远程服务器更新所有加密数据的过程,具体为:对于所有的1≤i≤n,1≤j≤q,远程服务器计算更新
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。