买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种适用于TEE混淆计算的ORAM访问方法_东北大学秦皇岛分校_202010875525.5 

申请/专利权人:东北大学秦皇岛分校

申请日:2020-08-27

公开(公告)日:2024-04-05

公开(公告)号:CN114117506B

主分类号:G06F21/62

分类号:G06F21/62;G06F21/53;G06F21/78;G06F12/14

优先权:

专利状态码:有效-授权

法律状态:2024.04.05#授权;2022.03.18#实质审查的生效;2022.03.01#公开

摘要:本发明提供一种适用于TEE混淆计算的ORAM访问方法,属于信息安全技术领域。该方法包括五个阶段:向ORAMTree中填充数据块、根据源程序请求从ORAMTree中读取目标数据块、源程序执行被取出的数据块、对数据块写回路径进行两次元数据扫描、向ORAMTree写回数据块;该方法充分利用了TEE的安全特性,减少了不必要的访存开销;该方法通过额外的混淆数据访问操作来保护ORAM中敏感数据结构的访问模式,进而抵御TEE中存在的侧信道攻击。

主权项:1.一种适用于TEE混淆计算的ORAM访问方法,其特征在于:该方法包含五个阶段,分别为:ORAMTree数据块填充阶段、ORAMTree数据块请求阶段、ORAMTree数据块执行阶段、元数据扫描阶段、ORAMTree数据块写回阶段,具体包含如下步骤:A.在ORAMTree数据块填充阶段,ORAMController负责将数据块填充进ORAMTree,并使用混淆数据操作更新AddressTranslationTable和PositionMap中与数据块对应的表项;该阶段只在ORAMTree初始化的过程中执行一次;具体执行步骤如下:A1.对于一个需要被填充进ORAMTree的数据块,ORAMController首先为其随机一个叶子结点leaf;A2.ORAMController将数据块填充到leaf对应路径的结点中;以叶子结点至根结点的顺序,寻找结点中的空位,并存放数据块;A3.根据数据块被存放的位置,ORAMController将数据块虚拟地址与物理地址的对应关系更新至AddressTranslationTable;使用混淆数据操作对AddressTranslationTable进行更新,隐藏表项与数据块的对应关系;A4.根据数据块被存放的位置与随机的叶子结点leaf,ORAMController将数据块与叶子结点的关系更新至PositionMap;使用混淆数据操作对PositionMap进行更新,隐藏表项与数据块的对应关系;A5.重复执行A1-A4的操作,直至完成对所有数据块的填充;B.在ORAMTree数据块读取阶段,ORAMController通过查询AddressTranslationTable和PositionMap将源程序请求的数据块地址转换为数据块对应的叶子结点标签,通过访问与该叶子结点对应的路径获取目标数据块;具体执行如下操作:B1.源程序向ORAMController发送数据块请求Q1=(operation,address,type);其中,operation表示该请求需要进行的操作,address表示目标数据块的虚拟地址,type表示数据块的类型;B2.ORAMController对Q1请求进行权限检查;其中,type值为data时,可以执行读操作与写操作,type为代码块的请求只能进行读操作;B3.ORAMController使用混淆数据操作访问AddressTranslationTable,获取Q1中的虚拟地址对应的物理地址;B4.ORAMController使用混淆数据操作查询PositionMap,根据目标数据块的物理地址获取对应的leaf标签;B5.ORAMController使用混淆数据操作查询获取到的leaf标签对应的ORAMTree路径Path1,并取出目标数据块,存于Pad中;C.在ORAMTree数据块执行阶段,源程序对Pad中数据块执行数据处理操作;完成操作后,向ORAMController发起下一次数据块请求;具体执行如下操作:C1.源程序对Pad中的数据块执行数据处理操作;由于Pad在内存中的位置固定,源程序的数据访问模式将一直显示为固定位置,有效隐藏数据块的访问模式;C2.完成当前数据操作后,源程序向ORAMController发送下一个数据块请求Q2=(operation,address,type);D.在元数据扫描阶段,ORAMController收到Q2后,ORAMController进行两次元数据扫描,将当前Pad中的数据块写回ORAMTree;具体执行如下操作:D1.ORAMController为该数据块随机一个新的叶子结点标签;D2.ORAMController将Pad与Path1路径上的数据块结合为一条新的路径Path2,将Pad中的数据块置于根结点之上作为新的根结点,路径Path2自上至下为Pad数据块结点至叶子结点,对Path2进行第一次元数据扫描操作;第一次元数据扫描操作步骤为:D2.1创建一个临时数组Temp[i],i∈[1,LogN],用于记录第一次扫描得到的结果;D2.2自根结点向叶子结点扫描Path2中每个结点Nj中的数据块,j∈[0,LogN],其中N为Pad数据块代表的结点;其中,每扫描一个结点Nj,基于Path2计算Nj中数据块能够放置的最深层级Lj;D2.3在扫描过程中,当扫描至已扫描结点Nj对应的最深层级Lj时,则在该层对应的Temp数组中记录Nj的最深层级Lj,即令Temp[i]=Lj,第一次元数据扫描完成;D3.ORAMController对路径Path2进行第二次元数据扫描;E.在ORAMTree数据块写回阶段,ORAMController将Pad中的数据块写回路径Path1,并更新数据块对应的PositionMap表项中的信息;具体执行如下操作:E1.ORAMController对路径Path2自根结点向叶子结点执行数据块写回操作;E2.ORAMController基于PMUpdateQueue完成对PositionMap的更新;E3.ORAMTree数据块写回阶段结束,ORAMController将根据请求Q2进行下一轮的数据读取操作。

全文数据:

权利要求:

百度查询: 东北大学秦皇岛分校 一种适用于TEE混淆计算的ORAM访问方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。