[发明专利]一种支持数据更新的加密数据块客户端去重方法有效
申请号: | 201711347947.X | 申请日: | 2017-12-15 |
公开(公告)号: | CN108182367B | 公开(公告)日: | 2019-11-15 |
发明(设计)人: | 刘茂珍;杨超;杨力;张俊伟;马建峰 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F21/62 | 分类号: | G06F21/62 |
代理公司: | 61205 陕西电子工业专利中心 | 代理人: | 田文英;王品华<国际申请>=<国际公布> |
地址: | 710071陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种支持数据更新的加密数据块客户端去重方法,利用收敛加密算法,使得相同的明文文件块加密后映射为相同的密文文件块,构建新型动态平衡跳跃表作为文件所有权认证结构,进行服务器与文件后继上传者之间的文件所有权认证交互,实现加密数据块客户端去重。提出动态平衡跳跃表自平衡的方法,根据用户上传的动态操作指令和待更新的明文文件块的认证值,对动态平衡跳跃表中节点进行修改、插入和删除操作,本发明不仅提高了服务器去重比率和存储资源利用率,节省用户带宽和上传时间,而且支持数据块更新,实现服务器端数据弹性管理。 | ||
搜索关键词: | 去重 加密数据块 动态平衡 客户端 明文文件 数据更新 跳跃 上传 服务器 所有权 服务器端数据 存储资源 弹性管理 动态操作 加密算法 密文文件 认证结构 删除操作 用户带宽 用户上传 块加密 数据块 自平衡 认证 映射 更新 构建 收敛 指令 | ||
【主权项】:
1.一种支持数据更新的加密数据块客户端去重方法,其特征在于,包括如下步骤:/n步骤1,文件首位上传者对数据块进行加密处理:/n文件首位上传者利用256位安全散列算法SHA256,以明文文件作为输入,计算明文文件的密钥,以明文文件的密钥作为输入,计算明文文件的标签;/n文件首位上传者对明文文件进行长度为4kb的分块,生成多个明文文件块;/n文件首位上传者利用256位安全散列算法SHA256,以每一个明文文件块作为输入,计算每一个明文文件块密钥,以每一个明文文件块和明文文件块密钥前后连接作为输入,计算每一个明文文件块的认证值;/n文件首位上传者采用256位高级加密标准AES256中的加密算法,用明文文件块密钥加密明文文件块,得到密文文件块,用明文文件密钥加密明文文件块密钥的连接值,得到明文文件块密钥的连接值密文;/n文件首位上传者将明文文件的标签、明文文件块的认证值、密文文件块和明文文件块密钥的连接值密文上传至服务器;/n步骤2,服务器构建新型动态平衡跳跃表:/n第一步,将每个明文文件块认证值对应的基层节点,按照明文文件块认证值对应的明文文件块的前后顺序,连接成一个单链表;/n第二步,从当前链表左侧第一个节点开始,将每两个节点作为子节点生成一个父节点;若当前链表中节点个数为奇数时,将剩余的最后三个节点作为子节点生成一个父节点;/n第三步,利用256位安全散列算法SHA256,将每个父节点中每个子节点的哈希值,按照子节点左右顺序连接成哈希连接值作为输入,计算哈希连接值的哈希值,将哈希连接值的哈希值赋值给每个父节点的哈希值;/n第四步,将每个父节点中每个子节点可达基层节点数的和赋值给每个父节点的可达的基层节点数;将生成每个父节点所用的节点数赋值给每个父节点的子节点数;/n第五步,用每个父节点的下指针指向该节点左侧第一个子节点的位置,将生成的父节点按照生成的先后顺序链接成父链表;/n第六步,删除不同父节点中子节点之间的指针;/n第七步,判断父链表中是否只有一个节点,若是,则将父链表中的唯一节点标记为根节点,得到动态平衡跳跃表后执行步骤3;否则,以生成的父链表作为当前链表后执行本步骤的第二步;/n步骤3,服务器对加密数据块进行去重操作:/n服务器利用256位安全散列算法SHA256,以密文文件块作为输入,计算密文文件块的标签,删除已有相同密文文件块标签的重复密文文件块,完成服务器端的加密数据块去重操作;/n步骤4,文件后继上传者与服务器进行文件所有权认证交互:/n服务器利用随机函数随机生成两个正整数,将两个正整数发送给文件后继上传者;/n文件后继上传者将两个正整数中的一个作为随机种子,生成与另一个正整数相等的多个随机数作为被挑战文件块的索引值;/n文件后继上传者对明文文件进行长度为4kb的分块,生成多个明文文件块;/n文件后继上传者利用256位安全散列算法SHA256,计算被挑战文件块的索引值所对应的被挑战文件块的认证值,将其发送至服务器;/n步骤5,服务器确定该后继上传者是否是文件拥有者:/n服务器将两个正整数中的一个作为随机种子,生成与另一个正整数相等的多个随机数作为被挑战文件块的索引值;/n在动态平衡跳跃表中,服务器查找被挑战文件块索引值所对应基层节点的父节点和父节点的兄弟节点;/n利用256位安全散列算法SHA256,服务器用兄弟节点的哈希值和接收到的被挑战文件块的认证值,重新计算动态平衡跳跃表根节点的哈希值;/n判断动态平衡跳跃表根节点的哈希值与服务器本地所存储的根节点哈希值是否相等,若是,则文件所有权认证通过,服务器将后续上传者标记为文件拥有者后执行步骤6;否则,文件所有权认证失败;/n步骤6,文件拥有者下载服务器端的密文文件块:/n文件拥有者将明文文件的标签和下载请求发送至服务器;/n服务器将明文文件标签对应的所有密文文件块和明文文件块密钥连接值的密文发送至文件拥有者;/n步骤7,文件拥有者解密服务器端的密文文件块:/n文件拥有者采用256位高级加密标准AES256中的解密算法,用明文文件的密钥解密明文文件块密钥的连接值密文,得到明文文件块密钥的连接值,用明文文件块的密钥解密密文文件块,得到明文文件块;/n步骤8,文件拥有者对新的明文文件块进行加密处理:/n文件拥有者将明文文件的标签和更新请求发送至服务器;/n服务器将文件块密钥连接值的密文发送给文件拥有者;/n采用256位高级加密标准AES256中的解密算法,文件拥有者用明文文件的密钥解密明文文件块密钥连接值的密文,得到明文文件块密钥的连接值;/n利用256位安全散列算法SHA256,文件拥有者分别计算新的明文文件的密钥,新的明文文件的标签,待修改或待插入的明文文件块密钥和待修改或待插入的明文文件块的认证值;/n文件拥有者利用待修改或待插入的明文文件块的索引值及其明文文件块密钥更新明文文件块密钥的连接值,得到新的明文文件块密钥的连接值;/n采用256位高级加密标准AES256中的加密算法,文件拥有者用待修改或待插入的明文文件块密钥加密对应的明文文件块,得到待修改或待插入的密文文件块,用新的明文文件的密钥加密新的明文文件块密钥的连接值,得到新的明文文件块密钥的连接值密文;/n文件拥有者将新的明文文件的标签、新的明文文件块密钥的连接值密文、动态操作指令、待修改或待插入或待删除文件块的索引值、待修改或待插入的密文文件块、待修改待插入的明文文件块的认证值发送至服务器;/n步骤9,服务器对新的密文文件块进行去重操作:/n服务器利用256位安全散列算法SHA256,计算待修改或待插入的密文文件块的标签,删除已有相同密文文件块标签的重复密文文件块,完成服务器端的加密数据块去重操作;/n步骤10,服务器修改动态平衡跳跃表中的基层节点:/n服务器查找待修改文件块的索引值对应基层节点的父节点和父节点的兄弟节点,利用256位安全散列算法SHA256,服务器用待修改明文文件块的认证值和兄弟节点的认证值,更新父节点的认证值;/n步骤11,服务器插入动态平衡跳跃表中的基层节点:/n第一步,服务器查找待插入文件块的索引值对应基层节点的父节点,生成一个基层节点作为插入节点,用待插入明文文件块的哈希值赋值给插入节点的哈希值,插入节点可达基层节点数赋值为1,插入节点的子节点数赋值为0,将插入节点插入到待插入文件块的索引值所对应基层节点的后指针位置;/n第二步,将最低层的父节点的子节点数加1,以最低层的父节点作为当前节点;/n第三步,判断当前节点的子节点数是否等于3,若是,则执行本步骤的第四步;否则,执行本步骤的第五步;/n第四步,利用当前节点的每一个子节点,更新当前节点的哈希值、可达基层节点数,执行本步骤的第六步;/n第五步,利用当前节点的左侧第一个子节点和第二个子节点更新当前节点的哈希值、可达基层节点数和子节点数;利用当前节点的左侧第三个子节点和第四个子节点生成另一个节点,将生成的节点插入到当前节点的后指针位置,将当前节点的父节点的子节点数加1;/n第六步,判断当前节点是否为根节点,若是,则执行步骤12;否则,以上一层父节点作为当前节点,执行本步骤的第三步;/n步骤12,服务器删除动态平衡跳跃表中的基层节点:/n第一步,服务器查找待删除文件块的索引值对应基层节点的父节点,删除待删除文件块的索引值所对应的基层节点;/n第二步,将最低层的父节点的子节点数减1,以最低层的父节点作为当前节点;/n第三步,判断当前节点的子节点数是否等于2,若是,则执行本步骤的第四步;否则,执行本步骤的第五步;/n第四步,利用当前节点的每一个子节点,更新当前节点的哈希值、可达基层节点数,执行本步骤的第十二步;/n第五步,判断当前节点的后指针是否指向一个兄弟节点,若是,则执行本步骤的第六步;否则,执行本步骤的第九步;/n第六步,判断当前节点的后指针所指的兄弟节点的子节点个数是否等于3,若是,则执行本步骤的第七步;否则,执行本步骤的第八步;/n第七步,将当前节点的后指针所指兄弟节点的左侧第一个子节点作为当前节点的左侧第二个子节点,利用当前节点的两个子节点更新当前节点的哈希值、可达基层节点数和子节点数,利用当前节点的后指针所指的兄弟节点剩余的两个子节点更新该兄弟节点的哈希值、可达基层节点数和子节点数,执行本步骤的第十二步;/n第八步,将当前节点的唯一子节点作为当前节点后指针所指兄弟节点的左侧第一个子节点,利用当前节点后指针所指兄弟节点的三个子节点更新该兄弟节点的哈希值、可达基层节点数和子节点数,删除当前节点,将上一层父节点的子节点数减1后执行本步骤的第十二步;/n第九步,判断当前节点的前一个兄弟节点的子节点个数是否等于3,若是,则执行本步骤的第十步;否则,执行本步骤的第十一步;/n第十步,将前一个兄弟节点的左侧第三个子节点作为当前节点的左侧第一个子节点,利用当前节点的两个子节点更新当前节点的哈希值、可达基层节点数和子节点数,利用当前节点的前一个兄弟节点剩余的两个子节点更新该兄弟节点的哈希值、可达基层节点数和子节点数,执行本步骤的第十二步;/n第十一步,将当前节点的唯一子节点作为当前节点的前一个兄弟节点的左侧第三个子节点,利用当前节点的前一个兄弟节点的三个子节点更新该兄弟节点的哈希值、可达基层节点数和子节点数,删除当前节点,将上一层父节点的子节点数减1;/n第十二步,判断当前节点是否是根节点,若是,执行步骤13;否则,以上一层的父节点作为当前节点,执行本步骤的第三步;/n步骤13,动态平衡跳跃表更新完毕。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711347947.X/,转载请声明来源钻瓜专利网。