[发明专利]一种单轮交互的链表ORAM访问方法有效
| 申请号: | 202110054402.X | 申请日: | 2021-01-15 |
| 公开(公告)号: | CN112966294B | 公开(公告)日: | 2022-09-09 |
| 发明(设计)人: | 吴志强;蔡竹斌;李文军;王进;郑少莹;唐小勇 | 申请(专利权)人: | 长沙理工大学 |
| 主分类号: | G06F21/62 | 分类号: | G06F21/62;G06F21/60;G06F3/06;G06F16/27;G06F16/22 |
| 代理公司: | 北京迎硕知识产权代理事务所(普通合伙) 11512 | 代理人: | 钱扬保;张群峰 |
| 地址: | 410114 湖南省*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 交互 oram 访问 方法 | ||
1.一种访问链表树的方法,包括读操作和写操作:
1)创建一次性令牌
用户将输入的地址通过地址编码方法转换成一组块地址,假设i表示第i棵树,Mi为第i棵树用户掩码,对每一个块地址(ai,bi),计算得到L-1棵位置树的所有令牌(t1,t2,…,tL-1);
2)在链表树上搜索
在链表树上搜索递归表示为:xi+1=Compute(Ti,ti),其中xi+1为第i+1棵树的叶子位置,Ti为第i棵树,ti为用户发送的第i棵树的令牌,其中Compute算法流程具体描述如下:
步骤A、访问第一层树节点,如果当前节点为d,那么用户使用d.head.m异或ti,得到一个变量t,如果当前节点包含了(ai,bi)数据块,那么t就是一个正确的块密钥,就能在emaps中解密一个数据块并得到下一棵树的访问叶子xi+1,算法成功结束;否则,继续搜索下一层节点;
步骤B、假设d为第二层的树节点,用户使用d.head.m异或上一步骤A获得的t;如果当前节点包含了(ai,bi)数据块,那么t就是一个正确的块密钥,就能在emaps中解密一个数据块并得到下一棵树的访问叶子xi+1,算法成功结束;否则,继续搜索下一层节点;
步骤C、依次访问,最终得到叶子xi+1;
3)读数据
用户得到一条RLL后,采用两个步骤读写数据:
步骤A、用户创建L个临时缓冲区,用于存储一条RLL,用户将全部的chunk解密后写入对应的临时缓冲区,所述RLL是指根据链表树LL-tree生成随机链表;
步骤B、用户为所有解密过的chunk重新分配L个随机叶标识符,其中第i棵树的chunk(a′,data0,data1,leaf)的叶子的标识符,被写入到第i-1棵树的chunk(a′/2,data*0,data*1,leaf*)中,的data*0或者data*1中,如果a′为偶数,写入data*0中,a′为奇数,写入data*1中;
4)重建RLL
将L个缓冲区中的chunk数据洗牌后生成重新调整chunk的位置,然后对每一个树节点,采用节点初始化加密算法加密树节点,并得到一条新的RLL,将新的RLL被打包到下一次读请求中;在下一次新的读写请求时候,用户将新的查询令牌连同历史的被缓冲的RLL一并发送到云服务器,然后首先由云服务器执行历史的节点覆盖更新操作,再执行新的查询操作;
所述链表树是根据以下的生成链表树的方法生成且经由以下的初始化链表树的方法初始化的,其中,
所述生成链表树的方法中,所述链表树LL-tree是加密的满二叉树,所述生成链表树的方法包括生成链表树的各个链表树节点LL-tree node,所述链表树节点包括头部head和尾部tail,如下:
其中头部head包括m和emaps,尾部tail包括M和chunks,emaps和chunks是分别由z项组成的复合结构;M、m、emaps和chunks的定义分别如下:M 表示节点掩码,节点掩码是由用户生成的一个随机值,是私密信息,不对云公开;m表示密文掩码,是存储在链表树节点头部的一个加密值,由节点的节点掩码和其父节点的节点掩码执行异或运算得到,密文掩码对云公开;chunks包含z个chunk,其中chunk是指一个数据块,chunk存储了四个元素(a,data0,data1,leaf),即一个地址a、两个相邻的数据data0,data1和一个叶标识符leaf,叶标识符leaf用于表示节点属于哪一条叶子到树根的路径;emaps包含z个加密映射表emap,其中每个emap存放两组键值对信息(k1,v1,k2,v2),用于保存加密后的值;
所述初始化链表树的方法中,所述链表树是根据上述生成链表树的方法生成的,该初始化链表树的方法包括:对于一组数据A[.],假设其中共有N=2L个数据块,用户将N个数据块随机存储在数据树TL的树节点中,树节点的一个chunk可以存储两个地址相邻的数据块,用另外一棵相邻的较小的树TL-1存储这些随机节点对应的叶子位置,在TL-1中,存储了2L-1个数据块,它们的值分别是TL的2L-1个叶子位置,它的全部叶子位置保存在TL-2中,依此类推,直到最后一棵树T1,它只包含一个树节点,T1-TL-1称为位置树。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长沙理工大学,未经长沙理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110054402.X/1.html,转载请声明来源钻瓜专利网。





