[发明专利]基于平衡排序树存储结构的保序加密算法有效
申请号: | 201811163799.0 | 申请日: | 2018-10-02 |
公开(公告)号: | CN109495446B | 公开(公告)日: | 2020-12-22 |
发明(设计)人: | 汪星辰;赵运磊;朱扬勇 | 申请(专利权)人: | 复旦大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L9/06;G06F21/60 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;陆尤 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明属于密码技术领域,具体为基于平衡排序树存储结构的保序加密算法。本发明算法中,其数据存储基本结构包括AVL树、红黑树、B树、B+树或B*树;不同的数据存储结构,其算法表述略有差异。本发明算法以AVL树结构为例,其包括基本的基于AVL树的理想安全的保序加密算法以及一些改进的的保序加密算法。各种算法都从树形结构、初始化算法、加密算法、解密算法、orderby排序算法、范围查询算法、删除算法、平衡算法、交互式查询算法进行描述。相对于大多数无法达到理想安全的保序加密,本发明中的算法安全性有绝对的优势,本发明给出的算法也进行了全方位的对比,适用于绝大多数系统,尤其适用于安全性需求较高、带宽配置足量的系统。 | ||
搜索关键词: | 基于 平衡 排序 存储 结构 加密算法 | ||
【主权项】:
1.一种基于平衡排序树存储结构的保序加密算法,其特征在于,数据存储基本结构采用AVL树、红黑树、B树、B+树或B*树;不同的数据存储基本结构,其算法表述基本一致;对于AVL树数据存储结构,其包括基本的基于AVL树的理想安全的保序加密算法,以及一些改进的基于AVL树的理想安全的保序加密算法;其中,基本的基于AVL树的理想安全的保序加密算法,其密文的存储及其顺序编码是基于AVL树完成的,仅仅泄露顺序信息;该算法表示为算法元组mOPEAVL=(Init,Enc,Dec,OB,RQ,Del,Bal,IS),命名为mOPEAVL,其中,八个元素分别是Init:初始化算法,Enc:加密算法,Dec:解密算法,OB:排序查询算法,RQ:范围查询算法,Del:删除算法,Bal:树型平衡算法,IS:交互式查询算法;依据AVL树结构,树节点的存储结构为:struct Tree{Treeleft;Tree right;int bf;int counter;bitstring cipher;}其中,各元素分别表示节点的左子树节点、节点的右子树节点、平衡因子、密文计数器、密文;令m为明文;c为密文;sk为私钥;λ为安全参数;q为查询语句,若为范围查询,则包含q.cl或/和q.cr作为查询边界值密文,cl、cr分别表示查询左边界和右边界的密文;st为服务器端存储状态,可理解为树的根节点;mOPEAVL中,八个元素具体描述如下:Init(1λ),初始化算法:依据输入的安全参数λ,进行如下操作:ⅰ,sk←DET.KeyGen(1λ),客户端执行密钥生成算法产生私钥;ⅱ,服务器端初始化用于密文存储的AVL树的根节点st,申请对应空间并置空;Enc(sk,m,st),加密算法:依据输入的私钥、明文和AVL树根节点,进行如下操作:ⅰ,c←DET.Enc(sk,m),客户端利用私钥计算密文,并传输到服务器;ⅱ,p←IS(sk,c,st),服务器依据私钥、密文、AVL树根节点发起执行交互式查询算法,查询到最终插入节点;ⅲ,若p不为空,执行p.counter++;若为空,申请新节点tnew=(NULL,NULL,0,1,c),令p=tnew,并修改查询路径中节点的平衡因子bf,若
执行平衡算法Bal(x);ⅳ,返回根节点st和密文c,完成加密算法;Dec(sk,c),解密算法:依据输入的私钥、密文,进行如下操作:ⅰ,m←DET.Dec(sk,c),客户端利用私钥解密密文,并返回明文;OB(st,q),order排序查询算法:依据AVL树根节点和查询语句,进行如下操作:ⅰ,服务器端执行AVL树的中序遍历,将各节点密文返回至客户端;RQ(st,q,sk),范围查询算法:依据AVL树根节点、查询语句和私钥,进行如下操作:ⅰ,o←IS(sk,q.cl,st),p←IS(sk,q.cr,st),服务器端执行交互式查询算法,获取范围查询左右边界值的密文位置;ⅱ,依据边界值位置,执行树的遍历,并将满足条件的密文数据返回客户端;Del(st,c,sk),删除算法:依据AVL树根节点、密文和私钥,进行如下操作:ⅰ,p←IS(sk,c,st),服务器端执行交互式查询算法,获取需要删除的数据的位置;ⅱ,若p为空,返回;若不为空,执行p.counter‑‑;若p.counter为0,将p的右子树链接到p左子树的最右叶子节点,将p的左子树取代p;ⅲ,更新路径上全部的平衡因子,若
执行平衡算法Bal(x);ⅳ,返回根节点st和密文c,完成数据删除算法;Bal(x),平衡算法:依据输入的节点进行树型的平衡操作,保障最佳查询效率;IS(sk,c,st),交互式查询算法:依据私钥、密文和AVL树根节点,在客户端和服务器间进行交互式查询,具体进行如下操作:ⅰ,若st为空,返回st;若不为空,服务器发送st.cipher到客户端;ⅱ,客户端通过m←DET.Dec(sk,st.cipher)解密获得明文,若m小于当前数据操作中的明文,向服务器发送标志变量flag="right";若m大于当前数据操作中的明文,向服务器发送标志变量flag="left";若m等于当前数据操作中的明文,向服务器发送标志变量flag="bingo";ⅲ,若标志变量为"bingo",服务器返回当前节点st,完成交互式查询算法;若标志变量为"left",递归执行p←IS(sk,c,st→left),返回节点p,完成交互式查询算法;若标志变量为"right",递归执行p←IS(sk,c,st→right),返回节点p,完成交互式查询算法;对于红黑树、B树、B+树或B*树数据存储结构,其基本的保序加密算法,与基本的基于AVL树的保序加密算法一致。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811163799.0/,转载请声明来源钻瓜专利网。