一种面向云存储的高效数据加密、更新和访问控制方法

文档序号:7890088阅读:183来源:国知局
专利名称:一种面向云存储的高效数据加密、更新和访问控制方法
技术领域
本发明涉及一种面向云存储的高效数据加密、更新和访问控制方法,可用于对存储在云服务器上的密文数据进行直接更新和访问控制,属于网络信息安全和计算机软件技术领域
背景技术
随着信息时代的来临,如何实现海量数据的安全存储成为ー个亟待解决的重要问题。云存储技术的出现为解决这ー问题提供了良好契机,采用云存储可以降低企业的存储成本,规避数据丢失和损毁等安全风险,提高数据管理效率和利用率,因而被认为是信息技术领域的下ー个重要增长点,具有巨大的市场前景。但由于数据的远程异地存储也导致了涉及机密性、加密数据更新以及权限控制等较为棘手的安全问题。云存储服务一般由不可信的第三方服务商提供,因此如何防止服务商泄漏用户隐私信息,或者对用户数据进行统计分析挖掘,从而保障数据的机密性就成为云用户所重点关注的首要问题。ー种较为简单的解决方法是将所有数据进行常规加密后存储,但这样将对数据的修改和检索操作带来不便,因此较少被采用。集中信息流控制(DIFC)和差分隐私保护技术可以用于防止云计算过程中的隐私信息泄露,同时还支持对计算结果的自动除密。以用户信任模型为基础的隐私管理工具也有助于用户控制存储在云服务器上的敏感信息,但主要用于数据存储和使用阶段。目前为止尚未发现面向云存储的并且能够兼顾机密性、效率和可操作性的数据加密方法。如何对存储在云服务器上的加密数据进行相关操作是云存储服务面临的另外一个问题。一方面,考虑到无法信任第三方云服务器,为了保证数据机密性,一般要求对数据进行加密存储;但另一方面,密文存储形式也对相关数据操作带来较大难度。如果直接对修改后的明文数据进行重新加密后上传存储,但相应的明文数据改动又非常小,这样无疑会带来较大的时间和带宽损耗,进而降低了系统效率。目前对密文处理的研究主要集中在秘密同态加密算法设计上。早期的同态算法被证明安全性存在缺陷,因此相关研究一度陷入停顿。近期IBM研究员Gentry等人利用“理想格(ideal lattice) ”的数学对象构造隐私同态(privacy homomorphism)算法,使人们可以充分地操作加密状态的数据。虽然相关研究在理论上取得了一定突破,并重新得到研究者的关注,但与实用化阶段仍有较大距离。对第三方云服务器的不信任还引发了对所存储数据的访问控制问题。由于无法信赖云存储服务商执行用户定义的访问控制策略,通过非传统访问控制类手段特别是密码学技术实施数据对象的访问控制成为解决该问题的主流研究方向。目前的主要研究成果包括基于层次密钥生成与分配策略实施访问控制的方法、基于属性的加密算法、基于代理重加密的方法、以及在用户密钥或密文中嵌入访问控制树的方法等。该类方法的ー个主要问题是无法解决权限撤销,因此需要对授权附加时间约束或引入第三方可信机构实现授权管理,目前仍存在较多问题有待解決。综上所述,云存储服务中明文数据的远程异地存储方式要求数据加密方法同时兼顾机密性和可操作性,对第三方存储服务商的不信任也使得密文数据更新和数据访问控制面临较大困难,因此需要提出能够解决上述问题的高效方法。

发明内容
为了解决上述问题,本发明设计了“一种面向云存储的高效数据加密、更新和访问控制方法”,能够以相对较小的代价实现对数据的高效加密、密文更新和访问控制等目标,具体包括三项技术明文数据的分块加密置换技术、密文数据的直接更新技术和对云端数据的访问控制技术。为实现本发明的目标之一,采用的技术方案概述如下一种面向云存储的数据分块加密置换技术,该加密算法的主要目标是对固定长度的明文数据块进行快速加密处理,使得除第一数据块之外的任何数据块加密结果同时依赖于随机密钥和前ー个数据块,再通过随机置換操作混淆各加密数据块的顺序关系。其步骤包括I)明文数据M被分割为N个长度为L字节的明文-MpM2........Mn,若Mn不足
L字节则填充至L字节。2)生成长度为L字节的ニ进制伪随机比特串Ke作为初始明文加密密钥,随后计算
各明文块对应的密文块M1), i = 2,3,......,N0其中θ为ニ进
制逐位异或操作,H(m)为安全杂凑函数,E(k,m)为输出长度为L字节的加密算法。3)构造随机置换Pc,在该随机置换作用下原密文块序列C1X2Xp......、CN转变
为新密文块序列C'2、C' 3........C1 N。4)构造该数据文件的访问控制列表ACL,经数据所有者私钥签字后连同新密文块序列被依次发送到云服务器进行存储,服务器存储成功后向数据所有者反馈ー个唯一的数据文件标识ID。本发明内容之一的关键点是将明文数据进行分割处理,对各明文块单独进行加密而不是对明文数据整体加密,这种分治策略消除了传统加密方法中各明文块间的相关性和依赖性,使得在不改动其它密文块的情况下修改某个密文块成为可能。随机置換操作的引入则进ー步保护了加密数据在不可信云存储服务器上的安全性。为实现本发明的目标之ニ,采用的技术方案概述如下ー种面向云存储的密文数据更新技术,该方法允许在明文发生变化时直接对相应密文进行修改,而不是重新加密整个明文数据并上传。根据对明文操作的不同情况,密文更新方式可分为三种情况明文块插入、明文块修改和明文块删除。其步骤包括A.在第i个位置插入新的明文块M' 1:I)若i = !,则新的ロニん^^い新的。=!^ ^^”1,),M丨),其余新的C1为原来的
j = 3,4,......,N+1,向服务器发送新的C1,C2,同时更新随机置換Pc= [L1,L2^L3........
Ln」为[Ln+i、Li、L2、し3、.......Ln」;2)若 i = N+1,则新的CN+1= Ke Θ E(H(Mn), M’,),其余新的 C」.为原来的 Cj, j = I,
2,......,N,向服务器发送新的CN+1,同时更新随机置換Pc= [L1^a3........LJ为[Li、
し2、し3、......、Ln、Ln+i」;3)除上述两种情况外,新的C1= Ke E(H(M,.,), Μ’,),新的C1+,= KeeE(H(M_,),M1),其余新的或为原来的q(j < i)或为原来的(V1G > i+i),向服务器发送新的Ci、ci+1,同时
更新随机置换 Pc = [U、L2........Lh、L1^ Li+1......Ln]为[Li、L2........Li^1 > LN+1、L1^
Lj+i......Ln]。 B.修改第i个位置的明文块M1为IT II)若 i = l,则新的C1=Ke M’,,新的C2=KeθE(H(M'1), M2),其余新的 Cj 为原来的 Cj,j = 3,4,......,N,向服务器发送新的C:、C2 ;2)若 i = N,则新的 Cn= Ke E(H(Mn.,), M',),其余新的 C」.为原来的 Cj, j = I,2,......,N-1,向服务器发送新的CN;3)除上述两种情况外,新的M\),新的C1+1= Ke E(H(M\), M,+1),其
余新的Cj或为原来的Cj, j = 1,2,......, N,同时j关i且j关i+1 ;向服务器发送新的
Ci> Ci+1。修改明文块时随机置換P。保持不变。C.删除第i个位置的明文块Mi I)若 i = 1,则新的M3),其余新的 Cj 为原来的 CJ+1,
j = 3,4,......,N-I,命令服务器删除原来的C1,并将原来的C2、C3替换为新发送的CpC2,
同时更新随机置换 Pc = [U、L2、L3........Ln]为[L2、L3........Ln];2)若i = N,命令服务器删除原来的CN,其余新的も为原来的も,j = 1,2,......,
N-I,同时更新随机置换 Pc = [L^L2.........Ln-^Ln]为[L2、L3........LN_J ;3)除上述两种情况外,新的(;=Κ6 Ε(Η(Μ,_,), Μ,+1),其余新的も或为原来的Cj(j< i)或为原来的CVJj > i),命令服务器删除原来的Ci,并将原来的Ci+1替换为新发送的
Ci,同时更新随机置换 Pc = [L1, L2........Lh、Li, Li+1......LJ 为[Lp L2........Lh、
Lj+i......Ln]。本发明内容之ニ的关键点是将各明文块所对应的密文块视作相对独立的个体,这样当明文块局部发生变化时对应的密文变化结果受到限制,影响范围不会超过两个连续的密文块,从而方便直接对所存储的密文数据进行更新。由于随机置換操作的存在,服务器也无从得知发生变化的具体明文位置。为实现本发明的目标之三,采用的技术方案概述如下一种面向云存储的数据访问控制技术,若其他用户申请使用该加密数据,则首先由服务器检查该用户是否具备相应访问权限,然后将加密数据再次处理后发给申请者,并且通知数据所有者向中请者提供解密数据所需要的材料,最終由根据密钥材料解密得到明文数据。其步骤包括I)用户向服务器申请访问加密数据文件,服务器比对用户身份和数据文件访问列表若无相应权限则拒绝用户申请并结束此过程;否则继续以下步骤。2)服务器生成长度为L字节的ニ进制伪随机比特串Ks,对于所存储的各密文块C' i 计算Cn1= KsφC’,,i = 1,2,......,N。3)服务器构造伪随机置换Ps,在该置换作用下序列C" i、C" 2、C" 3.......C" N
转变为序列c" ' i、C" ' 2、C" ' 3........C" ' N,该新密文块序列随后被依次发送到
用户端进行存储。4)服务器向数据所有者发送申请数据的用户ID、所申请的数据文件ID、随机生成的密钥Ks、以及伪随机置換Ps,上述数据经服务器私钥签名并用数据所有者公钥加密后发送给数据所有者。5)数据所有者再次检查数据申请者权限是否匹配,若匹配则计算密文块序列
c" ' pC" ' 2、C" ' 3........C" ' N相对于密文块序列CpC2J3........Cn的最终置
换ら=P-1C Θ ΡΛ,其中Θ表示两个置換的级联操作。6)数据所有者将密钥KeeKs、最終置换Pf签名并用数据申请者公钥加密后发送给数据申请者。明文数据的加密过程如图I所示。明文数据文件首先被分割为N个固定长度的明文块,计算除最后ー个明文块外的其它明文块的杂凑值,每个杂凑值均作为用以加密下一 个明文块的加密密钥,从而得到第一个明文块和其余N-I个密文块。随后通过选定的伪随机比特串对上一歩得到的结果进行逐位ニ进制比特异或,并通过随机置換操作得到N个密文块,但与明文块间的对应次序已经被打乱。这些密文块被发送到云服务器存储,但数据所有者需要保密所采用的伪随机比特串和置換操作。在第一个位置插入明文块所对应的密文更新过程如图2所示。此时明文数据由N个明文块变为N+1个明文块,新明文块变为第一个明文块,原第i个明文块变为第i+Ι个明文块。首先使用选定的伪随机比特串对新明文块进行逐位ニ进制比特异或操作得到新的第ー个密文块,使用新明文块的杂凑值和伪随机比特串对原第一个明文块加密得到新的第二个密文块。然后更新置换操作,并通过置换更新存储第一个密文块并更新第二个密文块。在最后ー个位置插入明文块所对应的密文更新过程如图3所示。此时明文数据由N个明文块变为N+1个明文块,新明文块变为最后ー个明文块,其它明文块序位不变。首先计算原最后ー个明文块的杂凑值,使用该杂凑值和伪随机比特串对最后ー个明文块加密得到新的最后ー个密文块。然后更新置換操作,并通过置換更新存储最后ー个密文块。在中间位置插入明文块所对序的密文更新过程如图4所示。此时明文数据由N个明文块变为N+1个明文块,新明文块变为第i个明文块,第i至N个明文块依次变为第i+1至N+1个明文块,其它明文块序位不变。首先计算原第i个明文块的杂凑值,使用第i+Ι和第i个杂凑值和伪随机比特串分别对第i和第i+Ι个明文块加密得到两个新的密文块。然后更新置换操作,并通过置换更新存储第i个密文块并更新第i+Ι个密文块。修改第一个位置明文块所对应的密文更新过程如图5所示。首先使用选定的伪随机比特串重新对第一个明文块进行逐位ニ进制比特异或操作得到第一个密文块,使用第一个明文块的杂凑值和伪随机比特串对第ニ个明文块重新加密得到第ニ个密文块。然后更新置换操作,并通过置换更新替换存储第一个和第二个密文块。修改其它位置明文块所对应的密文更新过程如图6所示。首先计算原第i个明文块的杂凑值,使用第i_l和第i个杂凑值和伪随机比特串分别对第i和第i+Ι个明文块加密得到两个新的密文块。然后更新置換操作,并通过置換更新替换存储第i个和第i+Ι个密文块。删除第一个位置明文块所对应的密文更新过程如图7所示。此时明文数据由N个明文块变为N-I个明文块,原第二个明文块变为第一个明文块,原第i个明文块变为第i_l个明文块。首先使用选定的伪随机比特串对第一个明文块进行逐位ニ进制比特异或操作得到第一个密文块,使用第一个明文块的杂凑值和伪随机比特串对原第三个明文块加密得到第二个密文块。然后更新置換操作,并通过置換更新删除原第一个密文块并更新新的第一个密文块。删除中间位置明文块所对应的密文更新过程如图8所示。此时明文数据由N个明文块变为N-I个明文块,原第i+Ι至第N个明文块变为第i至第N-I个明文块,i为删除位置,其它明文块序位不变。首先使用第i_l个明文块的杂凑值和伪随机比特串对原第i+1个明文块加密得到第i个密文块。然后更新置換操作,并通过置換更新删除原第i个密文块并更新新的第i个密文块。密文数据的解密过程如图9所示。作为前提条件,数据申请者应该通过服务器获得数据密文,并通过数据所有者获得密钥材料(包括两个伪随机比特串的异或Ks Ke和组合置換P—1。οΡΛ)。首先使用组合置 7)数据申请者根据最终置换ら先找出第一加密块C",i,,利用密钥Kj Ks计算出对应明文M, = C"V Ke Ks= C"r Ks Ke Ks = Ke M1 田 Ks Ke Ks= M1,同时计算 H(M1)。8)数据申请者根据最终置换Pf先找出第i个加密块
C " ' i , (i = 2,3,......,N),利用H(Mh)和密钥Ke Ks计算出对应明
文MfD^M,),C"V Ke lCs) = D(H(M,,). C", Ks Ke Ks) = DCH(Mm),
Ke E(H(M,.,). M1) KseKe Ks) = D(H(M,.i),0, M1)) = M1, M=M1HM2H……||MN’ 其中
D(k, c)为输出长度为L字节的解密算法,I I为数据块的级联操作。本发明内容之三的关键点是采用了双重异或运算和置換操作,使得数据的解密不仅依赖服务器,更多的还依赖于数据所有者,后者从而掌握了更多的主动性,可以实现除访问控制列表外的灵活授权。这ー方法还确保了每次对相同数据的访问申请总会得到不同的加密反馈结果,其对应的解密密钥和组合置换也是唯一的。与现有结果相比,本发明具有以下特点I)分块加密置换技术将数据分成固定长度的比特串,然后再依次单独进行加密并置換次序,从而消除了不同数据块间的空间关联性,增强了数据的机密性,也有利于对数据进行局部修改。2)密文更新技术可以直接修改变动的明文所对应的密文块,避免了重新加密整个数据文件并上传至云服务器端,提高了带宽利用和存储效率。3)对云服务器端数据的访问控制技术通过双重加密运算和二次置換操作強化了数据所有者对于云端数据的控制能力,任何对明文数据的访问最终都需要获得数据所有者的许可,同时也较大程度的缓解了云服务器滥用用户数据的风险。4)对数据的访问控制由云服务器和数据所有者同时參与,前者根据后者制定的访问控制列表决定用户对密文的访问权限,后者则最终决定已经获取密文的用户是否最终获得对应的明文数据結果。由于密钥材料数据传输量相对较小,这种分级控制模式有利于捉高系统的传输效率,权限控制方式也更加灵活方便。


图I明文数据加密算法流程图2在第一个位置插入明文块的密文更新图3在最后ー个位置插入明文块的密文更新图4在中间位置插入明文块的密文更新
图5修改第一个位置明文块的密文更新图6修改其它位置明文块的密文更新图7删除第一个位置明文块的密文更新图8删除中间位置明文块的密文更新图9密文数据解密算法流程
具体实施方式
以下结合附图对本发明做进ー步详细的说明,但不以任何方式限制本发明的范围。换对从服务器获得的密文进行操作得到与N个明文块对应次序一致的N个密文块,然后使用1^ん对N个密文块进行逐位ニ进制比特异或操作得到第一个明文块和N-I后续密文块,最后使用前ー个明文块的杂凑值对后一个密文块依次进行解密就可以得到完整的明文数据。
权利要求
1.一种面向云存储的高效数据加密、更新和访问控制方法,步骤包括 1)数据所有者对数据进行分块、加密及置换处理,然后将密文块存储至云服务器; 2)数据所有者根据对明文数据的修改结果直接修改云服务器上的相关密文块; 3)数据使用者向云服务器申请对数据的访问,若具备相应权限则获取对应密文块; 4)数据使用者向数据所有者申请对密文的解密,若具备相应权限则获取对应解密参数; 5)数据使用者用解密参数对密文进行解密和置换,从而得到原始明文数据。
2.如权利要求I所述的方法,其特征在于,所述步骤I)对数据的加密过程包括以下步骤 1-1)将明文数据文件划分为等长的明文数据块,最后一个明文块根据需要作适当填充。
1-2)除第一数据块外,用前一数据块的杂凑值作为密钥对当前数据块进行分组加密。
1-3)生成二进制伪随机序列,用以和第一明文块和其它密文块进行二进制异或运算。
1-4)设定数据访问控制列表.选择置换操作,将各密文块按随机次序发送到云服务器进行存储。
3.如权利要求I所述的方法,其特征在于,所述步骤2)对密文的更新包括以下几种情况 2-1)明文块插入时的密文更新方式 2-1-1)如果要插入的明文块位于明文数据的第一个位置; 2-1-1-1)将新的明文块作为第一明文块,用所生成的二进制伪随机序列对其进行二进制异或 2-1-1-2)将原第一明文块作为第二明文块,用新明文块的杂凑值对其进行分组加密; 2-1-1-3)用所生成的二进制伪随机序列对第二明文块的分组加密结果进行二进制异或. 2-1-1-4)更新原随机置换,上传两个新的密文块及对应置换位置; 2-1-1-5)云服务器根据对应置换位置替换原第一密文块,并增加新的第一密文块的存储。
2-1-2)如果要插入的明文块位于明文数据的最后一个位置 2-1-2-1)将原新的明文块作为最后明文块,用原最后用文块的杂凑值对其进行分组加密; 2-1-2-2)用所生成的二进制伪随机序列对新的明文块的分组加密结果进行二进制异或· 2-1-2-3)更新原随机置换,上传新的密文块及对应位置; 2-1-2-4)云服务器根据对应置换位置替换增加新的最后密文块的存储。
2-1-3)如果要插入的明文块位于明文数据的中间位置 2-1-3-1)将当前位置明文块作为下一明文块,新的明文块作为当前位置明文块; 2-1-3-2)用前一明文块的杂凑值对当前明文块进行分组加密,再用当前明文块的杂凑值对下一明文块进行分组加密 2-1-3-3)用二进制伪随机序列对当前明文块和下一明文块的分组加密结果进行二进制异或; 2-1-3-4)更新原随机置换,上传两个新的密文块及对应置换位置; 2-1-3-5)云服务器根据对应置换位置替换两密文块。
2-2)明文块修改时的密文更新方式 2-2-1)如果被修改的明文块为第一个明文块 2-2-1-1)用所生成的二进制伪随机序列对修改明文块进行二进制异或; 2-2-1-2)用修改明文块的杂凑值对第二个明文块进行分组加密,然后进行二进制异或. 2-2-1-3)上传新的密文块及对应置换位置; 2-2-1-4)云服务器根据对应置换位置替换原来的两个密文块。
2-2-2)如果被修改的明文块为其它位置明文块 2-2-2-1)用前一明文块的杂凑值加密修改明文块,用修改明文块的杂凑值加密下一明文块; 2-2-2-2)用所生成的二进制伪随机序列对两个明文块的分组加密结果进行二进制异或. 2-2-2-3)上传新的密文块及对应置换位置,云服务器根据对应置换位置替换两个新的密文块。
2-3)明文块删除时的密文更新方式; 2-3-1)如果被删除的明文块为第一个明文块 2-3-1-1)第一明文块更新为第一明文块,用二进制伪随机序列对原第二明文块进行二进制异或; 2-3-1-2)更新原随机置换,上传新的第一密文块及对应置换位置; 2-3-1-3)云服务器根据对应置换位置删除原第一密文块并替换原第二密文块。
2-3-2)如果被删除的明文块位于明文数据的最后一个位置 2-3-2-1)更新原随机置换,删除最后密文块并给出对应置换位置; 2-3-2-2)云服务器根据对应置换位置删除原来的最后密文块。
2-3-3)如果被删除的明文块为其它位置明文块 2-3-3-1)用前一明文块的杂凑值分组加密下一明文块; 2-3-3-2)用所生成的二进制伪随机序列对下一明文块的分组加密结果进行二进制异或. 2-3-3-3)更新原随机置换,上传新的下一密文块、删除当前密文块并给出对应置换位置; 2-3-3-4)云服务器根据对应置换位置删除当前密文块,并替换下一新的密文块。
4.如权利要求I所述的方法,其特征在于,所述步骤3)对密文的获取过程包括以下步骤 3-1)申请者向云服务器提出数据访问请求,服务器检查申请者是否具备指定访问权限; 3-2)服务器生成二进制伪随机序列,用以对所有密文块进行二进制异或运算; 3-3)服务器选择随机置换,再次将密文数据块以随机次序发送给申请者。
5.如权利要求I所述的方法,其特征在于,所述步骤4)对解密材料的获取过程包括以下步骤 4-1)服务器向数据所有者发送申请者ID、所用二进制随机序列以及置换操作等相关 信息; 4-2)数据所有者检查申请者访问权限,根据服务器反馈信息向申请者提供解密密钥和最终置换。
6.如权利要求I所述的方法,其特征在于,所述步骤5)对密文的解密过程包括以下步骤 5-1)数据申请者根据最终置换先找出第一加密块,利用解密密钥计算出对应明文,同时计算杂凑值。
5-2)数据申请者根据最终置换找出每个加密块,利用前一明文块的杂凑值和解密密钥计算出对应明文。
全文摘要
本发明公开了一种面向云存储的高效数据加密、更新和访问控制方法,属于网络信息安全和计算机软件技术领域。本发明所设计方法可以实现对明文数据的快速分块加密置换,既保证了数据的机密性,又可以防止云服务器对用户数据进行滥用;可以实现对密文数据的高效更新,而不用重新加密并上传整个数据文件,提高了系统传输和存储效率;可以实现对数据文件的双重权限控制,密文访问权限由数据所有者制定但由云服务器执行,解密密文所需要的密钥材料则由数据所有者控制,从而加强了对数据文件的控制,并且可以灵活实现权限撤销。本发明的方法能以较小的代价实现对明文数据的加密和对密文数据的处理,而对明文数据的双重置换也使得数据申请者每次申请都得到全然不同的密文结果并防止了云服务器对用户数据的滥用,进一步增强了数据的保密性,因此在数据云存储方面具有较好的应用前景。
文档编号H04L29/08GK102624708SQ20121004259
公开日2012年8月1日 申请日期2012年2月23日 优先权日2012年2月23日
发明者余斌霄, 刘君强, 甘志刚, 蒋晓宁 申请人:浙江工商大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1