当前位置: 首页 > 专利查询>东北大学专利>正文

一种基于SGX的安全索引系统技术方案

技术编号:21736410 阅读:26 留言:0更新日期:2019-07-31 19:19
本发明专利技术公开一种基于SGX的安全索引系统,步骤为:用户通过使用索引关键字扩充数据值;将密钥插入到B+树中,B+树和扩充的数据值进行链接;在客户端通过安全连接,将客户端提供给enclave;客户端发送索引查询到服务器;enclave将来自不可信存储的B+树结构加载到enclave存储器中并对其进行解密;树从根节点开始遍历,从不可信任的存储中获取节点索引算法最终到达一组叶节点保存指针;使用指针从不可信任存储中获取加密值,并发送给客户端,客户端使用解密收到的文件。本发明专利技术实现了安全性、性能和功能三者之间的平衡,在性能和存储方面进行了很大的改善即使对大数据进行复杂的索引,索引时间也具有很大的优势。

A Secure Index System Based on SGX

【技术实现步骤摘要】
一种基于SGX的安全索引系统
本专利技术涉及一种加密数据的安全索引技术,具体为一种基于SGX的安全索引系统。
技术介绍
随着计算机技术和互联网应用的迅速发展,数据和应用正几何级数的速度増长,人们对数据的存储需求也越来越大。在这种背景的推动下,云存储服务因使用方便、节约成本等优势受到了越来越多用户的欢迎。但这样用户便丧失了对数据的绝对控制,这不可避免的会引起了用户对其安全性的关注。目前保证数据机密性的主流方法是将数据进行加密。云存储的数据量往往很大,因此取回数据的一个重要途径是通过关键字的索引。然而,加密了的数据增加了关键字索引的难度,同时,为密文数据指定明文关键字的方式也在一定程度上向不可信的服务商泄露了数据所有者的隐私。为了解决这个问题,需要研究针对密文数据的索引方法,在保证机密性和隐私性的同时,有效的索引到需要的数据。虽然目前国内外围绕密文数据索引技术已经存在一些研究成果,但在实际应用中这些机制和方法仍面临诸多挑战。基于公钥的可索引加密方法最早由Boneh等人提出,采用身份加密(Identity-BasedEncryption,IBE)技术来构造陷口并实现索引。Li等人使用谓词加密技术构建了一种支持多用户、可授权索引的公钥可索引加密方案。方案引入了可信第三方来产生索引陷门,效率较低,同时索引方法受文件类型的影响,限制了方案的应用场景。虽然基于公钥的可索引加密方法已经取得了较大进展,并且可以支持灵活的查询语法,但由于其均基于复杂性数学假设而构建,并且往往存在大量的双线性对操作,因此效率较低,不适用于云存储环境中大量数据的情形。最早由Goldreich等人提出的ObliviousRAMs概念可从理论上解决在对称加密的远端密文数据上进行隐私关键字索引的问题,其理论模型是渐近高效的,但实际应用的效率很低,因为在方案的性能复杂度表示中存在着非常大的常量。Cast等人设计了一种动态可索引加密方法,可以对超大规模数据库进行有效的索引,可支持对包含数百亿条记录和关键字对的密文数据的索引。以上的研究内容均是针对单个关键字的索引方法,然而在实际应用中,单个关键字的索引结果往往很庞大,很难精确定位文件。为了提高索引效率,需要对多关键字索引方法进行研究。
技术实现思路
针对现有技术中单个关键字的索引结果庞大,很难精确定位文件导致索引效率低等不足,本专利技术要解决的问题是提供可一种实现安全性、性能和功能三者之间的平衡的基于SGX的安全索引系统。为解决上述技术问题,本专利技术采用的技术方案是:本专利技术一种基于SGX的安全索引系统,包括以下步骤:1)将系统分为用户、系统客户端、验证平台、不可信任的SGX服务端以及服务器内可信任的SGXenclave五个角色;2)用户通过使用索引关键字扩充数据值,并存储在伪随机位置;将密钥插入到用于构建索引关系的B+树中,B+树和扩充的数据值通过向指定相应值的随机位置的树叶添加指针进行链接;3)在客户端使用SGX认证功能来认证enclave,通过安全连接,将客户端提供给enclave;4)客户端发送索引查询到服务器,使用密钥进行随机加密用于所有索引查询;5)enclave将来自不可信存储的B+树结构加载到enclave存储器中并对其进行解密;6)树从根节点开始遍历,当索引到达任意一个节点的边缘时,如果该节点当前不在该enclave中,则将从不可信任的存储中获取该节点;索引算法最终到达一组叶节点,该叶节点保存指向与查询匹配的数据值的指针,该代表索引结果的指针列表被传递给不可信任部分;7)使用指针从不可信任存储中获取加密值,并发送给客户端,客户端使用解密收到的文件。步骤2)中,用户通过使用索引关键字扩充数据值是采用多关键字密文索引,首先构造一个单关键字的动态方案,然后对其进行改进,采用CPA安全的对称加密方法来实现多关键字密文索引;对B+树中的所有入口和指针、数组中的所有节点加密形式进行存储,使用伪随机函数和哈希函数的结果作为输入,使用异或运算来对数据进行加密;服务器在不解密数据的情况下对B+树进行更新。多关键字密文索引的构建包括以下步骤:201)初始化阶段令F、G和P为三个伪随机函数,H1和H2为两个哈希函数;K=(K1,K2,K3),为用户生成的对称密钥;针对用户的文件集合和倒排索引,对其中的每个关键字w∈w都构建一个节点,并且存储在搜索数组As中的随机位置,w为关键字集合;定义节点Ni的结构为Ni=<idi,addrs(Ni-1),addrs(Ni+1)>,其中idi为文件的唯一标识,文件中包含对应的关键字,addrs(N)表示节点N在数组As中的位置,所有节点都使用进行异或加密,其中ri为储存在节点中的随机值,K3为伪随机函数P的密钥,数组As中未使用的节点都用随机比特进行填充;对于每个关键字w,以索引B+树中的对应元素为键,以指向B+树根节点的指针为值,其中K1为伪随机函数F的密钥;指针使用进行异或加密,其中K2是伪随机函数G的密钥;初始化完成后,数组和索引节点作为加密索引,存储至服务器端;202)索引阶段为索引关键字集合W={w1,...,wn},用户需要首先生成一个索引令牌τs并发送给服务器;索引令牌τs中包含了针对每个关键字wi∈W的和对于每个关键字wi∈W,服务器使用作为键来在索引节点Ts中找到加密的指针,然后使用来解密得到的明文指针并定位到数组As中的节点,最后使用和储存在各自节点中的随机值r来解密整个B+树节点,进而得到针对关键字wi,的文件标识符集合Si;对于一系列的索引结果S1,...,Sn,服务器计算出交集I并输出作为最终结果;203)文件的动态更新设置一个删除数组Ad,用于存储以文件索引为结构的B+树;在删除数组Ad中,对于每个文件f,都存在一个B+树Lf,其中有#f个节点(D1,...,D#f),每个节点Di都与一个关键字wi相关联,并且在索引数组的B+树中存在着一个对偶节点N;设N-1、N+1分别为节点N在B+树中的前一个和后一个节点,则节点Di的结构定义为:Di=<addrd(Di+1),addrd(N′-1),addrd(N′+1),addrs(N),addrs(N-1),addrs(N+1)>其中记号N′i表示节点Ni的对偶节点,即指在删除数组中的某个节点D;记号addrd(D)表示节点D在数组Ad中的位置;B+树Lf中的所有节点都使用进行异或加密,其中r′i为储存在节点中的随机值,K3为伪随机函数P的密钥。步骤2)中,对于超出SGXenclave容纳范围并造成性能开销的B+树,采用内存空间复杂度为O(1)的B+树存储结构,仅加载遍历B+树所需的节点,优化不可信任部分和enclave之间的沟通瓶颈,执行基准测试和算法工程,确定并最大限度地减少运行时间消耗任务。还包括步骤8),基于SGX的安全优化考虑,利用多重集合散列作为构建模块,来防止将错误的节点传递到enclave、将所有请求的节点传递到enclave以及不给用户传递所有的结果,仅保留O(1)个附加存储。还包括:基于SGX的安全优化考虑,B+树的构造按以下方式改变:根节点和每个内部节点x将子标识x.chIdi存储在指针x.pi旁边;每个叶节点x在指针x.pi旁边存储明文值的散列x.has本文档来自技高网
...

【技术保护点】
1.一种基于SGX的安全索引系统,其特征在于包括以下步骤:1)将系统分为用户、系统客户端、验证平台、不可信任的SGX服务端以及服务器内可信任的SGX enclave五个角色;2)用户通过使用索引关键字扩充数据值,并存储在伪随机位置;将密钥插入到用于构建索引关系的B+树中,B+树和扩充的数据值通过向指定相应值的随机位置的树叶添加指针进行链接;3)在客户端使用SGX认证功能来认证enclave,通过安全连接,将客户端提供给enclave;4)客户端发送索引查询到服务器,使用密钥进行随机加密用于所有索引查询;5)enclave将来自不可信存储的B+树结构加载到enclave存储器中并对其进行解密;6)树从根节点开始遍历,当索引到达任意一个节点的边缘时,如果该节点当前不在该enclave中,则将从不可信任的存储中获取该节点;索引算法最终到达一组叶节点,该叶节点保存指向与查询匹配的数据值的指针,该代表索引结果的指针列表被传递给不可信任部分;7)使用指针从不可信任存储中获取加密值,并发送给客户端,客户端使用解密收到的文件。

【技术特征摘要】
1.一种基于SGX的安全索引系统,其特征在于包括以下步骤:1)将系统分为用户、系统客户端、验证平台、不可信任的SGX服务端以及服务器内可信任的SGXenclave五个角色;2)用户通过使用索引关键字扩充数据值,并存储在伪随机位置;将密钥插入到用于构建索引关系的B+树中,B+树和扩充的数据值通过向指定相应值的随机位置的树叶添加指针进行链接;3)在客户端使用SGX认证功能来认证enclave,通过安全连接,将客户端提供给enclave;4)客户端发送索引查询到服务器,使用密钥进行随机加密用于所有索引查询;5)enclave将来自不可信存储的B+树结构加载到enclave存储器中并对其进行解密;6)树从根节点开始遍历,当索引到达任意一个节点的边缘时,如果该节点当前不在该enclave中,则将从不可信任的存储中获取该节点;索引算法最终到达一组叶节点,该叶节点保存指向与查询匹配的数据值的指针,该代表索引结果的指针列表被传递给不可信任部分;7)使用指针从不可信任存储中获取加密值,并发送给客户端,客户端使用解密收到的文件。2.根据权利要求1所述的基于SGX的安全索引系统,其特征在于:步骤2)中,用户通过使用索引关键字扩充数据值是采用多关键字密文索引,首先构造一个单关键字的动态方案,然后对其进行改进,采用CPA安全的对称加密方法来实现多关键字密文索引;对B+树中的所有入口和指针、数组中的所有节点加密形式进行存储,使用伪随机函数和哈希函数的结果作为输入,使用异或运算来对数据进行加密;服务器在不解密数据的情况下对B+树进行更新。3.根据权利要求2所述的基于SGX的安全索引系统,其特征在于:多关键字密文索引的构建包括以下步骤:201)初始化阶段令F、G和P为三个伪随机函数,H1和H2为两个哈希函数;K=(K1,K2,K3),为用户生成的对称密钥;针对用户的文件集合和倒排索引,对其中的每个关键字w∈w都构建一个节点,并且存储在捜索数组As中的随机位置,w为关键字集合;定义节点Ni的结构为Ni=<idi,addrs(Ni-1),addrs(Ni+1)>,其中idi为文件的唯一标识,文件中包含对应的关键字,addrs(N)表示节点N在数组As中的位置,所有节点都使用进行异或加密,其中ri为储存在节点中的随机值,K3为伪随机函数P的密钥,数组As中未使用的节点都用随机比特进行填充;对于每个关键字w,以索引B+树中的对应元素为键,以指向B+树根节点的指针为值,其中K1为伪随机函数F的密钥;指针使用进行异或加密,其中K2是伪随机函数G的密钥;初始化完成后,数组和索引节点作为加密索引,存储至服务器端;202)索引阶段为索引关键字集合W={w1,...,wn},用户需要首先生成一个索引令牌τs并发送给服务器;索引令牌τs中包含了针对每个关键字wi∈W的和对于每个关键字wi∈W,服务器使用作为键来在索引节点Ts中找到加密的指针,然后使用来解密得到的明文指针并定位到数组As中的节点,最后使用和储存在各自节点中的随机值r来解密整个B+树节点,进而得到针对关键字wi,的文件标识符集合Si;对于一系列的索引结果S1,...,Sn,服务器...

【专利技术属性】
技术研发人员:张源境付奎源徐剑
申请(专利权)人:东北大学
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1