有效
一种防篡改的安全高效数据协同计算系统和方法
周晓磊、黄山、王芳潇、范强、张骁雄、陶敬
中国人民解放军国防科技大学
摘要
本申请涉及一种防篡改的安全高效数据协同计算系统和方法,所述系统是一种创新性的、多节点三层防护架构,包括区块链层、Host层以及TEE层,本系统在将机密计算与原始数据完整性验证深度结合,从根本上解决了传统隐私计算中无法保证数据真实性的问题。利用区块链技术存储不可篡改的数据指纹,以此作为可信锚点,提供数据来源和完整性状态的端到端可追溯验证;引入一系列完整性验证机制的同时,力求保持高性能,使计算效率接近明文计算的水平,避免了传统方案为追求安全而导致的性能瓶颈。
1.一种防篡改的安全高效数据协同计算系统,其特征在于,包括:区块链层,用于在各数据所有方的数据可信索引建立之初,将预先计算好的数据表Merkle树根哈希存证于区块链上;Host层,用于当系统接收到外部查询方的请求时,访问各自的本地数据库,根据查询请求中的条件对数据进行初步的索引和过滤,同时,从本地存储的Merkle树中提取出过滤后数据所对应的Merkle证明路径,然后从区块链层查询到数据表对应的Merkle树根哈希,并通过ECALL将经过初步过滤的数据和Merkle证明路径加载到TEE层;TEE层以Enclave的形式存在于每个节点内部; Enclave通过远程认证功能向其他参与方证明自身的代码和运行环境是真实且未被篡改的;在执行机密计算之前,Enclave先执行Merkle树验证,当Merkle树验证通过后,Enclave继续执行机密计算;在PSI隐私求交协议的动态执行中,所有节点的Enclave协同工作,从发起节点构建Bloom Filter并发送请求,经由中间节点匹配、筛选并验证承诺值,最终回到发起节点进行结果聚合,并验证承诺链的完整性。
2.根据权利要求1所述的防篡改的安全高效数据协同计算系统,其特征在于,所述Merkle树根哈希包括用于行完整性验证的Rowmap根哈希和用于列完整性验证的索引列根哈希。
3.根据权利要求1所述的防篡改的安全高效数据协同计算系统,其特征在于,Merkle树验证流程包括:在Merkle树验证前,进行数据按索引检索,输出经过索引加速过滤出来的数据索引号集合以及当前数据方本地查询到的中间结果表,列级可验证索引结果vo_index,行内容绑定证明vo_rowmap;首先,为验证列级真实性/完备性,对查询子句×数据列进行逐个验证,具体包括:叶内全部条目重算叶哈希并向上逐层计算至根哈希值,最后比对预先发布的根哈希值;支持查询条件包含数值型数据的等值和范围匹配,字符型数据的等值、前缀、后缀和包含匹配,其中等值、前缀和范围匹配查询时附带左右边界页以保证完备性,后缀和包含匹配只证明存在性;然后,为验证集合逻辑正确性,在同一查询子句内,对各列候选做交集;在查询子句之间,对各自结果做并集,包括按OR语句合并、去重、升序;集合运算完全在验证器端按照vo_index信息中的结构进行,不信任执行端;最后为验证行内容真实性,根据最终数据索引号集从vo_rowmap读出紧凑JSON,计算哈希值;逐层计算哈希值至根哈希,和预先发布的根哈希比对。
4.根据权利要求1所述的防篡改的安全高效数据协同计算系统,其特征在于,PSI隐私求交协议计算的执行过程包括:第一阶段:客户端构建Bloom Filter并发送查询请求,所述查询请求被发送至发起节点的Enclave;发起节点的Enclave首先遍历其本地数据集的所有键,对每个键计算多个哈希值以生成Bloom Filter的位数组;随后,Enclave对这个Bloom Filter计算一个承诺值,并将所述承诺值与Bloom Filter本身打包成计算请求消息,发送给中间节点;第二阶段:在中间节点的Enclave收到查询请求后,首先验证查询请求包含的承诺值,重新计算Bloom Filter的哈希并与查询请求中的承诺值进行比对验证,验证通过后,中间节点加载Bloom Filter,并遍历其本地数据集的所有键;查询Bloom Filter后收集匹配键列表;如果环路完成,则中间节点构造计算响应并发送至发起节点;否则,中间节点基于匹配结果构造新的Bloom Filter并转发给下一个节点,继续进行匹配;第三阶段:发起节点Enclave收到计算响应后,首先验证消息中承诺链的完整性;随后,提取出匹配且满足筛选条件的键列表;发起节点在其本地数据集中查找键列表中匹配键对应的原始值,然后根据查询请求执行相应的聚合操作,将计算出的最终结果返回给客户端,完成整个隐私查询过程。
5.根据权利要求1所述的防篡改的安全高效数据协同计算系统,其特征在于,可信索引的实现基于Merkle树方法,通过对数据索引号和对应数据行内容进行哈希,逐层合并哈希值继续进行哈希运算直至取得最终的根哈希值;可信索引的Merkle树包括:Merkle B+Tree和Rowmap Merkle Tree;其中,Merkle B+Tree对数据表的指定列建立B+Tree 索引,同时对Merkle B+Tree中每页计算Merkle哈希;其中叶页哈希覆盖规范化键+数据索引号集合,内页哈希覆盖子页哈希序列,支持高效的等值查询和范围查询并给出可信验证信息;Rowmap Merkle Tree按主键顺序为全表构建一棵Merkle树,叶哈希通过数据索引号和对应数据行内容拼接计算,实现数据索引号与行内容绑定。
6.一种防篡改的安全高效数据协同计算方法,其特征在于,包括步骤:在各数据所有方的数据可信索引建立之初,将预先计算好的数据表Merkle树根哈希存证于区块链上;当Host层接收到外部查询方的请求时,访问各自的本地数据库,根据查询请求中的条件对数据进行初步的索引和过滤,同时,从本地存储的Merkle树中提取出过滤后数据所对应的Merkle证明路径,然后从区块链层查询到数据表对应的Merkle树根哈希,并通过ECALL将经过初步过滤的数据和Merkle证明路径加载到TEE层;将TEE层以Enclave的形式存在于每个节点内部;Enclave通过远程认证功能向其他参与方证明自身的代码和运行环境是真实且未被篡改的;在执行机密计算之前,Enclave先执行Merkle树验证,当Merkle树验证通过后,Enclave继续执行机密计算;在PSI隐私求交协议的动态执行中,所有节点的Enclave协同工作,从发起节点构建Bloom Filter并发送请求,经由中间节点匹配、筛选并验证承诺值,最终回到发起节点进行结果聚合,并验证承诺链的完整性。
7.根据权利要求6所述的防篡改的安全高效数据协同计算方法,其特征在于,所述Merkle树根哈希包括用于行完整性验证的Rowmap根哈希和用于列完整性验证的索引列根哈希。
8.根据权利要求6所述的防篡改的安全高效数据协同计算方法,其特征在于,Merkle树验证流程包括:在Merkle树验证前,进行数据按索引检索,输出经过索引加速过滤出来的数据索引号集合以及当前数据方本地查询到的中间结果表,列级可验证索引结果vo_index,行内容绑定证明vo_rowmap;首先,验证列级真实性/完备性:对查询子句×数据列进行逐个验证;具体包括:叶内全部条目重算叶哈希并向上逐层计算至根哈希值,最后比对预先发布的根哈希值;支持查询条件包含数值型数据的等值和范围匹配,字符型数据的等值、前缀、后缀和包含匹配,其中等值、前缀和范围匹配查询时附带左右边界页以保证完备性,后缀和包含匹配只证明存在性;然后,验证集合逻辑正确性:在同一查询子句内,对各列候选做交集;在查询子句之间,对各自结果做并集,包括按OR语句合并、去重、升序;集合运算完全在验证器端按照vo_index信息中的结构进行,不信任执行端;最后,验证行内容真实性:根据最终数据索引号集从vo_rowmap读出紧凑JSON,计算哈希值;逐层计算哈希值至根哈希,和预先发布的根哈希比对。
9.根据权利要求6所述的防篡改的安全高效数据协同计算方法,其特征在于,PSI隐私求交协议计算的执行过程包括:第一阶段:客户端构建Bloom Filter并发送查询请求,所述查询请求被发送至发起节点的Enclave;发起节点的Enclave首先遍历其本地数据集的所有键,对每个键计算多个哈希值以生成Bloom Filter的位数组;随后,Enclave对这个Bloom Filter计算一个承诺值,并将所述承诺值与Bloom Filter本身打包成计算请求消息,发送给中间节点;第二阶段:在中间节点的Enclave收到查询请求后,首先验证查询请求包含的承诺值,重新计算Bloom Filter的哈希并与查询请求中的承诺值进行比对验证,验证通过后,中间节点加载Bloom Filter,并遍历其本地数据集的所有键;查询Bloom Filter后收集匹配键列表;如果环路完成,则中间节点构造计算响应并发送至发起节点;否则,中间节点基于匹配结果构造新的Bloom Filter并转发给下一个节点,继续进行匹配;第三阶段:发起节点Enclave收到计算响应后,首先验证消息中承诺链的完整性;随后,提取出匹配且满足筛选条件的键列表;发起节点在其本地数据集中查找键列表中匹配键对应的原始值,然后根据查询请求执行相应的聚合操作,将计算出的最终结果返回给客户端,完成整个隐私查询过程。
10.根据权利要求6所述的防篡改的安全高效数据协同计算方法,其特征在于,可信索引的实现基于Merkle树方法,通过对数据索引号和对应数据行内容进行哈希,逐层合并哈希值继续进行哈希运算直至取得最终的根哈希值;可信索引的Merkle树包括:Merkle B+Tree和Rowmap Merkle Tree;其中,Merkle B+Tree对数据表的指定列建立B+Tree 索引,同时对Merkle B+Tree中每页计算Merkle哈希;其叶页哈希覆盖规范化键+数据索引号集合,内页哈希覆盖子页哈希序列,支持高效的等值查询和范围查询并给出可信验证信息;Rowmap Merkle Tree按主键顺序为全表构建一棵Merkle树,叶哈希通过数据索引号和对应数据行内容拼接计算,实现数据索引号与行内容绑定。



