1.一种基于可信硬件的安全云数据去重方法,其特征在于,包括以下步骤:首先对原文件进行数据加密与标签生成,随后将加密文件与相应的标签发送至云存储平台,云存储平台经过文件分块之后,对标签进行重复检测,存储不存在相同副本的将加密文件,并赋予对于该文件的权限;云存储平台所配备的可信硬件区域为完全可信的服务器,每个被设置好的可信硬件内部都包含一个唯一的密封密钥s k ;首先生成对原始数据的哈希,与可信硬件进行远程认证成功后,将哈希发送至可信硬件内,之后enclave使用该密封密钥s k 对文件哈希进行盲签名,用户收到盲签名后进行解盲,并且将得到的安全签名作为加密密钥;相同的文件哈希在同一个可信硬件内获得相同的签名,相同的文件会生成相同的加密密钥,使用对称加密来加密文件数据;文件分块聚合步骤在Client中进行,首先比较文件长度与公共参数Pub中α的大小关系;若小于α则无需进行文件的分块聚合过程,直接生成整个文件的哈希h;否则进行分块聚合,计算 表示块集合的个数, 向上取整,根据公共参数Pub中的m来确定块集合中块的个数,生成块集合B i ,并计算出哈希h i ;长度α,固定的分块长度l;块个数m;密钥生成步骤由Client与CEnclave共同完成;首先两者之间进行远端认证,若认证失败则返回错误信息,成功则继续进行;Client根据前一个步骤确定文件是否分块,分别将文件哈希或块集合哈希发送至CEnclave,CEnclave利用可信区域的密封密钥s_k分别进行盲签名,Client收到盲签名后进行解盲,如下公式分别计算出文件加密密钥与块集合加密密钥;k=h′·r -1 (mod N)数据加密步骤由Client完成,利用对称加密分别对文件或块集合进行加密,使用上一阶段生成的相应加密密钥完成加密过程,如下式所述;数据加密完成后,密文暂时保存在Client中;C=Enc(k F ,F);标签生成分为两部分:文件标签生成、块集合标签生成;对文件在有限域内生成了一个文件名,并且利用索引生成对应的块集合索引值,将该值映射到有限域内,并且计算出相应的验证值,利用验证值可以进行后续的标签一致性检测过程;分为三个步骤:文件标签生成、块集合标签生成、标签集合生成;三个步骤均在Client中执行;其中在文件标签生成步骤,首先给文件在有限域内设置一个文件名name F ,之后生成文件标签T F =H(F);块标签生成步骤,使用相应的文件名name F 、上文选择的的随机种子x和块集合索引i,生成验证值β i =f(name F ,x,i),并且将β i 映射到乘法群的生成元上: 随后根据前一个验证值与块集合数据生成第二个验证值Δ i 如公式 最后进行标签集合生成过程,生成标签集合T如公式 T F ,name F ,pk c };随后生成的标签集合T将由Client发送至CEnclave。
2.根据权利要求1所述的一种基于可信硬件的安全云数据去重方法,其特征在于,重复检测分为两部分:文件标签对比、块集合标签对比;如果文件标签存在重复,则此流程结束,不用进行存储过程;如果不存在重复的文件标签,则继续进行块标签的对比,对比完成之后生成字符串,该字符串记录了所有块集合是否存在相同副本的信息,根据此字符串上传密文数据,完成数据去重的过程,在文件标签对比过程中采用了ORAM的读取方式,在块集合标签查找时,直接进行显式的读取。
3.根据权利要求2所述的一种基于可信硬件的安全云数据去重方法,其特征在于,在重复检测步骤,CEnclave收到标签集合T,首先以ORAM的读取方式对比文件标签,如果存在相同的文件副本,则无需进行后续的上传与存储过程,直接结束流程并进行所有权证明;如果不存在相同的文件标签,则继续进行块集合标签的对比,如果至少存在一个块集合标签相等,则创建一个字符串s:s=s 1 s 2 …s d ,当存在一个云存储中的块集合标签T s =T i 时,时s i =1,否则s i =0;如果没有一个块集合标签相等,则令s=null;由此字符串s记录了块标签的重复信息;在待上传数据生成步骤,根据字符串s生成需要上传的数据密文C′;如果s不为null,则根据字符串s中记录的信息将相应的块集合填入,生成C′=C 1 ′C 2 ′…C d ′;如果s为null,则说明没有任何块集合重复,此时密文C′=C 1 ,C 2 …C d ,将所有块集合密文填入;随后Client将待上传的密文传输至云存储平台。
4.一种运行如权利要求1所述的基于可信硬件的安全云数据去重方法的基于可信硬件的安全云数据去重系统,其特征在于,包括:数据加密模块用于对原文件进行数据加密;标签生成模块用于对原文件进行标签生成;去重模块用于将加密文件与相应的标签发送至云存储平台,云存储平台经过对标签的重复检测后存储不存在相同副本的将加密文件,并赋给与对于该文件的权限。