【技术实现步骤摘要】
一种基于SGX的安全索引系统
本专利技术涉及一种加密数据的安全索引技术,具体为一种基于SGX的安全索引系统。
技术介绍
随着计算机技术和互联网应用的迅速发展,数据和应用正几何级数的速度増长,人们对数据的存储需求也越来越大。在这种背景的推动下,云存储服务因使用方便、节约成本等优势受到了越来越多用户的欢迎。但这样用户便丧失了对数据的绝对控制,这不可避免的会引起了用户对其安全性的关注。目前保证数据机密性的主流方法是将数据进行加密。云存储的数据量往往很大,因此取回数据的一个重要途径是通过关键字的索引。然而,加密了的数据增加了关键字索引的难度,同时,为密文数据指定明文关键字的方式也在一定程度上向不可信的服务商泄露了数据所有者的隐私。为了解决这个问题,需要研究针对密文数据的索引方法,在保证机密性和隐私性的同时,有效的索引到需要的数据。虽然目前国内外围绕密文数据索引技术已经存在一些研究成果,但在实际应用中这些机制和方法仍面临诸多挑战。基于公钥的可索引加密方法最早由Boneh等人提出,采用身份加密(Identity-BasedEncryption,IBE)技术来构造陷口并实现索引。Li等人使用谓词加密技术构建了一种支持多用户、可授权索引的公钥可索引加密方案。方案引入了可信第三方来产生索引陷门,效率较低,同时索引方法受文件类型的影响,限制了方案的应用场景。虽然基于公钥的可索引加密方法已经取得了较大进展,并且可以支持灵活的查询语法,但由于其均基于复杂性数学假设而构建,并且往往存在大量的双线性对操作,因此效率较低,不适用于云存储环境中大量数据的情形。最早由Goldreich等人 ...
【技术保护点】
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,服务器...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。