H04L29/06 H04L29/08
1.一种面向云存储的高效数据加密、更新和访问控制方法,步骤包括:
1)数据所有者对数据进行分块、加密及置换处理,然后将密文块存储至云服务器;
2)数据所有者根据对明文数据的修改结果直接修改云服务器上的相关密文块;
3)数据使用者向云服务器申请对数据的访问,若具备相应权限则获取对应密文块;
4)数据使用者向数据所有者申请对密文的解密,若具备相应权限则获取对应解密参数;
5)数据使用者用解密参数对密文进行解密和置换,从而得到原始明文数据。
2.如权利要求1所述的方法,其特征在于,所述步骤1)对数据的加密过程包括以下步骤:
1‑1)将明文数据文件划分为等长的明文数据块,最后一个明文块根据需要作适当填充。
1‑2)除第一数据块外,用前一数据块的杂凑值作为密钥对当前数据块进行分组加密。
1‑3)生成二进制伪随机序列,用以和第一明文块和其它密文块进行二进制异或运算。
1‑4)设定数据访问控制列表.选择置换操作,将各密文块按随机次序发送到云服务器进行存储。
3.如权利要求1所述的方法,其特征在于,所述步骤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.如权利要求1所述的方法,其特征在于,所述步骤3)对密文的获取过程包括以下步骤:
3‑1)申请者向云服务器提出数据访问请求,服务器检查申请者是否具备指定访问权限;
3‑2)服务器生成二进制伪随机序列,用以对所有密文块进行二进制异或运算;
3‑3)服务器选择随机置换,再次将密文数据块以随机次序发送给申请者。
5.如权利要求1所述的方法,其特征在于,所述步骤4)对解密材料的获取过程包括以下步骤:
4‑1)服务器向数据所有者发送申请者ID、所用二进制随机序列以及置换操作等相关信息;
4‑2)数据所有者检查申请者访问权限,根据服务器反馈信息向申请者提供解密密钥和最终置换。
6.如权利要求1所述的方法,其特征在于,所述步骤5)对密文的解密过程包括以下步骤:
5‑1)数据申请者根据最终置换先出第一加密块,利用解密密钥计算出对应明文,同时计算杂凑值。
5‑2)数据申请者根据最终置换出每个加密块,利用前一明文块的杂凑值和解密密钥计算出对应明文。
本发明涉及一种面向云存储的高效数据加密、更新和访问控制方法,可用于对存储在云服务器上的密 文数据进行直接更新和访问控制,属于网络信息安全和计算机软件技术领域。
随着信息时代的来临,如何实现海量数据的安全存储成为一个亟待解决的重要问题。云存储技术的出 现为解决这一问题提供了良好契机,采用云存储可以降低企业的存储成本,规避数据丢失和损毁等安全风 险,提高数据管理效率和利用率,因而被认为是信息技术领域的下一个重要增长点,具有巨大的市场前景。 但由于数据的远程异地存储也导致了涉及机密性、加密数据更新以及权限控制等较为棘手的安全问题。
云存储服务一般由不可信的第三方服务商提供,因此如何防止服务商泄漏用户隐私信息,或者对用户 数据进行统计分析挖掘,从而保障数据的机密性就成为云用户所重点关注的首要问题。一种较为简单的解 决方法是将所有数据进行常规加密后存储,但这样将对数据的修改和检索操作带来不便,因此较少被采用。 集中信息流控制(DIFC)和差分隐私保护技术可以用于防止云计算过程中的隐私信息泄露,同时还支持对计 算结果的自动除密。以用户信任模型为基础的隐私管理工具也有助于用户控制存储在云服务器上的敏感信 息,但主要用于数据存储和使用阶段。目前为止尚未发现面向云存储的并且能够兼顾机密性、效率和可操 作性的数据加密方法。
如何对存储在云服务器上的加密数据进行相关操作是云存储服务面临的另外一个问题。一方面,考虑 到无法信任第三方云服务器,为了保证数据机密性,一般要求对数据进行加密存储;但另一方面,密文存 储形式也对相关数据操作带来较大难度。如果直接对修改后的明文数据进行重新加密后上传存储,但相应 的明文数据改动又非常小,这样无疑会带来较大的时间和带宽损耗,进而降低了系统效率。目前对密文处 理的研究主要集中在秘密同态加密算法设计上。早期的同态算法被证明安全性存在缺陷,因此相关研究一 度陷入停顿。近期IBM研究员Gentry等人利用“理想格(ideal lattice)”的数学对象构造隐私同态(privacy homomorphism)算法,使人们可以充分地操作加密状态的数据。虽然相关研究在理论上取得了一定突破, 并重新得到研究者的关注,但与实用化阶段仍有较大距离。
对第三方云服务器的不信任还引发了对所存储数据的访问控制问题。由于无法信赖云存储服务商执行 用户定义的访问控制策略,通过非传统访问控制类手段特别是密码学技术实施数据对象的访问控制成为解 决该问题的主流研究方向。目前的主要研究成果包括基于层次密钥生成与分配策略实施访问控制的方法、 基于属性的加密算法、基于代理重加密的方法、以及在用户密钥或密文中嵌入访问控制树的方法等。该类 方法的一个主要问题是无法解决权限撤销,因此需要对授权附加时间约束或引入第三方可信机构实现授权 管理,目前仍存在较多问题有待解决。
综上所述,云存储服务中明文数据的远程异地存储方式要求数据加密方法同时兼顾机密性和可操作 性,对第三方存储服务商的不信任也使得密文数据更新和数据访问控制面临较大困难,因此需要提出能够 解决上述问题的高效方法。
为了解决上述问题,本发明设计了“一种面向云存储的高效数据加密、更新和访问控制方法”,能够 以相对较小的代价实现对数据的高效加密、密文更新和访问控制等目标,具体包括三项技术:明文数据的 分块加密置换技术、密文数据的直接更新技术和对云端数据的访问控制技术。
为实现本发明的目标之一,采用的技术方案概述如下:
一种面向云存储的数据分块加密置换技术,该加密算法的主要目标是对固定长度的明文数据块进行快 速加密处理,使得除第一数据块之外的任何数据块加密结果同时依赖于随机密钥和前一个数据块,再通过 随机置换操作混淆各加密数据块的顺序关系。其步骤包括:
1)明文数据M被分割为N个长度为L字节的明文块M1、M2、......、MN,若MN不足L字节则填 充至L字节。
2)生成长度为L字节的二进制伪随机比特串Ke作为初始明文加密密钥,随后计算各明文块对应的密
文块:i=2,3,......,N。其中为二进制逐位异或操作,
H(m)为安全杂凑函数,E(k,m)为输出长度为L字节的加密算法。
3)构造随机置换PC,在该随机置换作用下原密文块序列C1、C2、C3、......、CN 转变为新密文块序 列C′1、C′2、C′3、......、C′N。
4)构造该数据文件的访问控制列表ACL,经数据所有者私钥签字后连同新密文块序列被依次发送到 云服务器进行存储,服务器存储成功后向数据所有者反馈一个唯一的数据文件标识ID。
本发明内容之一的关键点是将明文数据进行分割处理,对各明文块单独进行加密而不是对明文数据整 体加密,这种分治策略消除了传统加密方法中各明文块间的相关性和依赖性,使得在不改动其它密文块的 情况下修改某个密文块成为可能。随机置换操作的引入则进一步保护了加密数据在不可信云存储服务器上 的安全性。
为实现本发明的目标之二,采用的技术方案概述如下:
一种面向云存储的密文数据更新技术,该方法允许在明文发生变化时直接对相应密文进行修改,而不 是重新加密整个明文数据并上传。根据对明文操作的不同情况,密文更新方式可分为三种情况:明文块插 入、明文块修改和明文块删除。其步骤包括:
A.在第i个位置插入新的明文块M′1:
1)若i=1,则新的新的其余新的C1为原来的Cj‑1,j=3,4,......,
N+1,向服务器发送新的C1、C2,同时更新随机置换PC=[L1、L2、L3、......、LN]为[LN+1、L1、L2、
L3、......、LN];
2)若i=N+1,则新的其余新的Cj为原来的Cj,j=1,2,......,N,向服
务器发送新的CN+1,同时更新随机置换PC=[L1、L2、L3、......、LN]为[L1、L2、L3、......、LN、
LN+1];
3)除上述两种情况外,新的新的其余新的Cj
或为原来的Cj(j<i)或为原来的Cj‑1(j>i+1),向服务器发送新的Ci、Ci+1,同时更新随机置换PC=[L1、
L2、......、Li‑1、L1、Li+1......LN]为[L1、L2、......、Li‑1、LN+1、L1、Li+1......LN]。
B.修改第i个位置的明文块M1为M′1
1)若i=1,则新的新的其余新的Cj为原来的Cj,j=3,4,......,
N,向服务器发送新的C1、C2;
2)若i=N,则新的其余新的Cj为原来的Cj,j=1,2,......,N‑1,向服务
器发送新的CN;
3)除上述两种情况外,新的新的其余新的Cj
或为原来的Cj,j=1,2,......,N,同时j≠i且j≠i+1;向服务器发送新的Ci、Ci+1。修改明文
块时随机置换PC保持不变。
C.删除第i个位置的明文块Mi:
1)若i=1,则新的新的其余新的Cj为原来的Cj+1,j=3,4,......,
N‑1,命令服务器删除原来的C1,并将原来的C2、C3替换为新发送的C1、C2,同时更新随机置换
PC=[L1、L2、L3、......、LN]为[L2、L3、......、LN];
2)若i=N,命令服务器删除原来的CN,其余新的Cj为原来的Cj,j=1,2,......,N‑1,同时更新随 机置换PC=[L1、L2、.......、LN‑1、LN]为[L2、L3、......、LN‑1];
3)除上述两种情况外,新的其余新的Cj或为原来的Cj(j<i)或为原来的
Cj+1(j>i),命令服务器删除原来的Ci,并将原来的Ci+1替换为新发送的Ci,同时更新随机置换
PC=[L1、L2、......、Li‑1、Li、Li+1......LN]为[L1、L2、......、Li‑1、Li+1......LN]。
本发明内容之二的关键点是将各明文块所对应的密文块视作相对独立的个体,这样当明文块局部发生 变化时对应的密文变化结果受到限制,影响范围不会超过两个连续的密文块,从而方便直接对所存储的密 文数据进行更新。由于随机置换操作的存在,服务器也无从得知发生变化的具体明文位置。
为实现本发明的目标之三,采用的技术方案概述如下:
一种面向云存储的数据访问控制技术,若其他用户申请使用该加密数据,则首先由服务器检查该用户 是否具备相应访问权限,然后将加密数据再次处理后发给申请者,并且通知数据所有者向中请者提供解密 数据所需要的材料,最终由根据密钥材料解密得到明文数据。其步骤包括:
1)用户向服务器申请访问加密数据文件,服务器比对用户身份和数据文件访问列表:若无相应权限 则拒绝用户申请并结束此过程;否则继续以下步骤。
2)服务器生成长度为L字节的二进制伪随机比特串Ks,对于所存储的各密文块C′i计算
i=1,2,......,N。
3)服务器构造伪随机置换PS,在该置换作用下序列C″1、C″2、C″3......、C″N转变为序列C″′1、C″′2、 C″′3、......、C″′N,该新密文块序列随后被依次发送到用户端进行存储。
4)服务器向数据所有者发送申请数据的用户ID、所申请的数据文件ID、随机生成的密钥Ks、以及 伪随机置换PS,上述数据经服务器私钥签名并用数据所有者公钥加密后发送给数据所有者。
5)数据所有者再次检查数据申请者权限是否匹配,若匹配则计算密文块序列C″′1、C″′2、C″′3、......、 C″′N相对于密文块序列C1、C2、C3、......、CN的最终置换PF=P‑1C⊙P‑1S,其中⊙表示两个置换 的级联操作。
6)数据所有者将密钥最终置换PF签名并用数据申请者公钥加密后发送给数据申请者。
明文数据的加密过程如图1所示。明文数据文件首先被分割为N个固定长度的明文块,计算除最后一 个明文块外的其它明文块的杂凑值,每个杂凑值均作为用以加密下一个明文块的加密密钥,从而得到第一 个明文块和其余N‑1个密文块。随后通过选定的伪随机比特串对上一步得到的结果进行逐位二进制比特异 或,并通过随机置换操作得到N个密文块,但与明文块间的对应次序已经被打乱。这些密文块被发送到云 服务器存储,但数据所有者需要保密所采用的伪随机比特串和置换操作。
在第一个位置插入明文块所对应的密文更新过程如图2所示。此时明文数据由N个明文块变为N+1个 明文块,新明文块变为第一个明文块,原第i个明文块变为第i+1个明文块。首先使用选定的伪随机比特 串对新明文块进行逐位二进制比特异或操作得到新的第一个密文块,使用新明文块的杂凑值和伪随机比特 串对原第一个明文块加密得到新的第二个密文块。然后更新置换操作,并通过置换更新存储第一个密文块 并更新第二个密文块。
在最后一个位置插入明文块所对应的密文更新过程如图3所示。此时明文数据由N个明文块变为N+1 个明文块,新明文块变为最后一个明文块,其它明文块序位不变。首先计算原最后一个明文块的杂凑值, 使用该杂凑值和伪随机比特串对最后一个明文块加密得到新的最后一个密文块。然后更新置换操作,并通 过置换更新存储最后一个密文块。
在中间位置插入明文块所对序的密文更新过程如图4所示。此时明文数据由N个明文块变为N+1个明 文块,新明文块变为第i个明文块,第i至N个明文块依次变为第i+1至N+1个明文块,其它明文块序位 不变。首先计算原第i个明文块的杂凑值,使用第i+1和第i个杂凑值和伪随机比特串分别对第i和第i+1 个明文块加密得到两个新的密文块。然后更新置换操作,并通过置换更新存储第i个密文块并更新第i+1 个密文块。
修改第一个位置明文块所对应的密文更新过程如图5所示。首先使用选定的伪随机比特串重新对第一 个明文块进行逐位二进制比特异或操作得到第一个密文块,使用第一个明文块的杂凑值和伪随机比特串对 第二个明文块重新加密得到第二个密文块。然后更新置换操作,并通过置换更新替换存储第一个和第二个 密文块。
修改其它位置明文块所对应的密文更新过程如图6所示。首先计算原第i个明文块的杂凑值,使用第 i‑1和第i个杂凑值和伪随机比特串分别对第i和第i+1个明文块加密得到两个新的密文块。然后更新置 换操作,并通过置换更新替换存储第i个和第i+1个密文块。
删除第一个位置明文块所对应的密文更新过程如图7所示。此时明文数据由N个明文块变为N‑1个明 文块,原第二个明文块变为第一个明文块,原第i个明文块变为第i‑1个明文块。首先使用选定的伪随机 比特串对第一个明文块进行逐位二进制比特异或操作得到第一个密文块,使用第一个明文块的杂凑值和伪 随机比特串对原第三个明文块加密得到第二个密文块。然后更新置换操作,并通过置换更新删除原第一个 密文块并更新新的第一个密文块。
删除中间位置明文块所对应的密文更新过程如图8所示。此时明文数据由N个明文块变为N‑1个明文 块,原第i+1至第N个明文块变为第i至第N‑1个明文块,i为删除位置,其它明文块序位不变。首先使 用第i‑1个明文块的杂凑值和伪随机比特串对原第i+1个明文块加密得到第i个密文块。然后更新置换操 作,并通过置换更新删除原第i个密文块并更新新的第i个密文块。
密文数据的解密过程如图9所示。作为前提条件,数据申请者应该通过服务器获得数据密文,并通过
数据所有者获得密钥材料(包括两个伪随机比特串的异或和组合置换P‑1C οP‑1S)。首先使用组合置
7)数据申请者根据最终置换PF先出第一加密块C″′1′,利用密钥计算出对应明文:
8)数据申请者根据最终置换PF先出第i个加密块C″′i′(i=2,3,......,N),利用H(Mi‑1)和密钥
计算出对应明文:
D(k,c)为输出长度为L字节的解密算法,||为数据块的级联操作。
本发明内容之三的关键点是采用了双重异或运算和置换操作,使得数据的解密不仅依赖服务器,更多 的还依赖于数据所有者,后者从而掌握了更多的主动性,可以实现除访问控制列表外的灵活授权。这一方 法还确保了每次对相同数据的访问申请总会得到不同的加密反馈结果,其对应的解密密钥和组合置换也是 唯一的。
与现有结果相比,本发明具有以下特点:
1)分块加密置换技术将数据分成固定长度的比特串,然后再依次单独进行加密并置换次序,从而消 除了不同数据块间的空间关联性,增强了数据的机密性,也有利于对数据进行局部修改。
2)密文更新技术可以直接修改变动的明文所对应的密文块,避免了重新加密整个数据文件并上传至 云服务器端,提高了带宽利用和存储效率。
3)对云服务器端数据的访问控制技术通过双重加密运算和二次置换操作强化了数据所有者对于云端 数据的控制能力,任何对明文数据的访问最终都需要获得数据所有者的许可,同时也较大程度的 缓解了云服务器滥用用户数据的风险。
4)对数据的访问控制由云服务器和数据所有者同时参与,前者根据后者制定的访问控制列表决定用 户对密文的访问权限,后者则最终决定已经获取密文的用户是否最终获得对应的明文数据结果。 由于密钥材料数据传输量相对较小,这种分级控制模式有利于捉高系统的传输效率,权限控制方 式也更加灵活方便。
图1明文数据加密算法流程
图2在第一个位置插入明文块的密文更新
图3在最后一个位置插入明文块的密文更新
图4在中间位置插入明文块的密文更新
图5修改第一个位置明文块的密文更新
图6修改其它位置明文块的密文更新
图7删除第一个位置明文块的密文更新
图8删除中间位置明文块的密文更新
图9密文数据解密算法流程
以下结合附图对本发明做进一步详细的说明,但不以任何方式限制本发明的范围。
换对从服务器获得的密文进行操作得到与N个明文块对应次序一致的N个密文块,然后使用对N
个密文块进行逐位二进制比特异或操作得到第一个明文块和N‑1后续密文块,最后使用前一个明文块的杂
凑值对后一个密文块依次进行解密就可以得到完整的明文数据。
本文发布于:2023-04-14 20:51:00,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/2/86432.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |