本发明专利技术公开了一种支持高效密钥管理的密文检索方法,主要解决现有技术密钥管理开销较大和检索效率较低的问题。其实现方案是:设云加密数据库系统中包括数据拥有者,私有云,公有云和用户;当数据拥有者上传数据时,私有云服务器对不同明文数据表中的数据采用不同的对称密钥进行加密,从而保证数据的安全性,同时采用带密钥Hash树来生成大量密钥,采用基于明文表级索引结构来管理大量密钥,以减少密钥的存储和管理开销;当用户检索数据时,公有云服务器利用可搜索加密机制实现密文检索,同时由公有云服务器执行具体检索操作,用户只需执行计算开销较小的对称解密操作,实现了用户检索的安全性和高效性。
【技术实现步骤摘要】
本专利技术属于信息安全领域,具体涉及密钥管理和密文检索技术。可用于云数据库系统中,实现数据的安全高效检索。
技术介绍
随着计算机技术的不断发展,数据库系统在军事国防、银行证券、医疗卫生等领域有了广泛应用。作为现代计算环境中的核心部分,数据库系统可以对数据进行存储、管理和维护。由于信息化和大数据时代的到来,人们在现实生活中需要存储和管理的数据不断增长。如何存储和管理海量数据是对数据拥有者的一个重大挑战。云计算技术的发展可以帮助人们减轻本地数据的存储和管理开销。人们可以将自己的数据存储在云端,让云服务器来帮助管理自己的数据。比如,人们可以将数据存储在亚马逊的云服务器上,当需要使用一些数据时,可以让云服务器搜索并返回这部分数据。然而,云数据库系统在为人们带来极大便捷的同时,也给数据的安全性造成了威胁。由于用户的数据在云端以明文形式存储的,而且这些数据可能包含用户的个人隐私,所以某些恶意用户甚至云服务商会窃取这部分数据从而给用户造成损害。为了防止用户的数据在云端被窃取和篡改,用户可以通过加密数据来保护自己的个人隐私。比如用户可以利用AES加密数据并将密文传到云服务器上,这样云服务器将无法获取用户的明文数据。但由于AES密文隐藏了明文的所有特征,这导致用户和云服务器无法对密文数据库中密文进行检索。因此,当用户想要查找某条数据时,他需要从云端下载所有数据并进行解密,然后在明文中进行搜索,造成了极大的通信和解密开销。针对此问题,可搜索加密方案被提出以实现对密文的检索。与此同时,为了提升数据库的安全性,需要对不同文件中的数据使用不同的密钥进行加密,这样即便某个文件对应的密钥被泄露也不会影响其他文件的安全性。然而对海量数据的加密问题会带来复杂的密钥管理问题。一方面,对海量数据的加密会产生大量的密钥,这些密钥也会占用大量的存储空间,如何存储大量密钥对用户是一个巨大挑战。另一方面,加密每个文件使用的密钥不一样,在检索过程中,解密者如何在大量密钥中快速确定需要使用的解密密钥,进而快速得到检索结果也是一个重要问题。
技术实现思路
本专利技术的目的在于针对上述现有技术的不足,提出一种支持高效密钥管理的密文检索方法,以快速确定密文检索过程中需要使用的解密密钥,降低对海量密钥的管理和存储开销,使其适用于用户和云服务器对密文数据库中数据的检索和存取,保证数据的安全性。为了达到上述目的,本专利技术的技术方案包括如下:(1)数据上传步骤:1a)数据拥有者利用自己与私有云服务器之间提前协商的会话密钥加密所有明文数据表,得到所有密文数据表,并将所有密文数据表发送给私有云服务器;1b)私有云服务器解密数据拥有者发来的所有密文数据表,得到所有明文数据表,并根据每个明文数据表中的内容提取关键字,通过可搜索加密机制建立数据级索引;1c)私有云服务器对所有明文数据表的表名建立B+树结构,即表级索引;1d)私有云服务器利用带密钥的Hash树为每个明文数据表计算出不同的分块密钥,私有云服务器利用分块密钥加密明文数据表中的数据,得到密文数据,并将所有密文数据和数据级索引上传到公有云服务器上;(2)数据检索步骤:2a)当用户需要在某个明文数据表中查找拥有某个关键词的数据时,用户利用与私有云服务器提前协商的会话密钥对明文数据表的表名和关键词进行加密,并发送给私有云服务器;2b)私有云服务器利用与用户提前协商的会话密钥对密文数据表的表名和关键词进行解密,若私有云服务器解密失败,则说明此用户不拥有检索权限,终止操作,否则,私有云服务器解密得到需要检索的明文数据表的表名和关键字,并根据关键字生成对应的搜索陷门,并将搜索陷门提交给公有云服务器;2c)私有云服务器根据明文数据表的表名和带密钥的Hash树计算出加密此明文数据表中数据所使用的分块密钥;2d)公有云服务器利用搜索陷门和公有云服务器上存的数据级索引表在相应的密文数据表上进行检索,最后将检索的密文搜索结果返回给私有云服务器;2e)私有云服务器利用预先计算得到的分块密钥解密密文搜索结果,得到用户需要的明文数据,将明文数据再加密后返回给用户,用户对密文结果进行解密,得到对应的明文搜索结果。本专利技术具有如下优点:1)数据库系统安全性高。本专利技术由于使用对称加密算法对数据库系统中的所有数据进行加密,使得公有云服务器和未经授权的用户就不能获得用户的隐私数据;同时由于使用不同的分块密钥对每个明文数据表中的数据加密,提高了数据的安全性,即使某个密文数据表中的数据被成功解密,也不会影响其他密文数据表中数据的安全性。2)私有云服务器生成密钥的效率高。本专利技术利用明文数据表的表级索引,建立一个对应的带密钥Hash树,从而可利用根密钥Kr快速生成加解密明文数据表的分块密钥。3)私有云服务器查找密钥的速度快。本专利技术虽然使用不同的分块密钥加密明文数据表中的数据,但每个明文数据表使用的分块密钥是和表级索引中每个明文数据表的位置是一致的,因此可以快速定位和计算所要使用的分块密钥。4)私有云服务器密钥存储开销小。本专利技术虽然要对每个明文数据表中数据使用不同的分块密钥加密来提高安全性,但是私有云服务器可以只利用根密钥Kr来产生所有的分块密钥,所以私有云服务器只需要存储根密钥Kr和可搜索加密密钥Ks,并不需要存储所有的分块密钥。5)公有云服务器密文检索功能强。本专利技术使用可搜索加密机制来为每个明文数据表中的数据建立索引,利用可搜索加密的密钥Ks和关键词可以生成搜索陷门,进而通过请求公有云服务器对密文数据进行搜索,最终能获得匹配的密文结果。6)数据拥有者和用户计算开销小。本专利技术使用对称加密算法加密可检索密文数据库系统中数据的计算开销,相比公钥加密算法的计算开销要小的多;本专利技术使用可搜索加密算法进行检索,虽然其计算开销较大,但是具体检索操作由公有云服务器来执行,用户只需执行计算开销较小的对称解密操作,极大的减小了数据拥有者和用户的计算开销。综上:本专利技术在保证数据安全的前提下,私有云服务器利用表级索引快速定位与计算出加解密明文数据表的分块密钥,从而实现了对密钥的高效管理,同时密文检索系统的主要计算开销和存储开销都在公有云服务器,减少了对数据拥有者和用户计算能力的要求,提升了系统的实用性。附图说明图1是本专利技术的数据拥有者上传数据子系统;图2是本专利技术的用户检索数据子系统;图3是本专利技术的实现总流程图;图4是本专利技术中针对表名建立的B+树索引结构图;图5是本专利技术中利用带密钥Hash树生成分块密钥的示意图;具体实施方式云加密数据库系统由数据拥有者上传数据子系统和用户检索数据子系统两部分组成,如图1和图2所示,其包括四种不同类的实体:数据拥有者、私有云服务器、公有云服务器和用户,其中:数据拥有者,主要负责上传自己的数据,数据拥有者可以是拥有大量敏感数据的个人或机构,比如银行,医生等;私有云服务器,是数据拥有者机构内部网络中的计算单元,主要用于在上传数据时加密明文数据表中的数据、建立索引,在查询数据时帮助用户解密数据等,本专利技术中私有云服务器对于数据拥有者和用户来说是可信的。公有云服务器,主要为客户提供存储和计算服务,比如,帮助数据拥有者存储密文数据,帮助用户进行密文检索,公有云服务器可以是半可信的第三方,如亚马逊和阿里等云服务商。用户,主要是对公有云服务器上的数据进行查询和访问,数本文档来自技高网...
【技术保护点】
支持高效密钥管理的密文检索方法,包括:(1)数据上传步骤:1a)数据拥有者利用自己与私有云服务器之间提前协商的会话密钥加密所有明文数据表,得到所有密文数据表,并将所有密文数据表发送给私有云服务器;1b)私有云服务器解密数据拥有者发来的所有密文数据表,得到所有明文数据表,并根据每个明文数据表中的内容提取关键字,通过可搜索加密机制建立数据级索引;1c)私有云服务器对所有明文数据表的表名建立B+树结构,即表级索引;1d)私有云服务器利用带密钥的Hash树为每个明文数据表计算出不同的分块密钥,私有云服务器利用分块密钥加密明文数据表中的数据,得到密文数据,并将所有密文数据和数据级索引上传到公有云服务器上;(2)数据检索步骤:2a)当用户需要在某个明文数据表中查找拥有某个关键词的数据时,用户利用与私有云服务器提前协商的会话密钥对明文数据表的表名和关键词进行加密,并发送给私有云服务器;2b)私有云服务器利用与用户提前协商的会话密钥对密文数据表的表名和关键词进行解密,若私有云服务器解密失败,则说明此用户不拥有检索权限,终止操作,否则,私有云服务器解密得到需要检索的明文数据表的表名和关键字,并根据关键字生成对应的搜索陷门,并将搜索陷门提交给公有云服务器;2c)私有云服务器根据明文数据表的表名和带密钥的Hash树计算出加密此明文数据表中数据所使用的分块密钥;2d)公有云服务器利用搜索陷门和公有云服务器上存的数据级索引表在相应的密文数据表上进行检索,最后将检索的密文搜索结果返回给私有云服务器;2e)私有云服务器利用预先计算得到的分块密钥解密密文搜索结果,得到用户需要的明文数据,将明文数据再加密后返回给用户,用户对密文结果进行解密,得到对应的明文搜索结果。...
【技术特征摘要】
1.支持高效密钥管理的密文检索方法,包括:(1)数据上传步骤:1a)数据拥有者利用自己与私有云服务器之间提前协商的会话密钥加密所有明文数据表,得到所有密文数据表,并将所有密文数据表发送给私有云服务器;1b)私有云服务器解密数据拥有者发来的所有密文数据表,得到所有明文数据表,并根据每个明文数据表中的内容提取关键字,通过可搜索加密机制建立数据级索引;1c)私有云服务器对所有明文数据表的表名建立B+树结构,即表级索引;1d)私有云服务器利用带密钥的Hash树为每个明文数据表计算出不同的分块密钥,私有云服务器利用分块密钥加密明文数据表中的数据,得到密文数据,并将所有密文数据和数据级索引上传到公有云服务器上;(2)数据检索步骤:2a)当用户需要在某个明文数据表中查找拥有某个关键词的数据时,用户利用与私有云服务器提前协商的会话密钥对明文数据表的表名和关键词进行加密,并发送给私有云服务器;2b)私有云服务器利用与用户提前协商的会话密钥对密文数据表的表名和关键词进行解密,若私有云服务器解密失败,则说明此用户不拥有检索权限,终止操作,否则,私有云服务器解密得到需要检索的明文数据表的表名和关键字,并根据关键字生成对应的搜索陷门,并将搜索陷门提交给公有云服务器;2c)私有云服务器根据明文数据表的表名和带密钥的Hash树计算出加密此明文数据表中数据所使用的分块密钥;2d)公有云服务器利用搜索陷门和公有云服务器上存的数据级索引表在相应的密文数据表上进行检索,最后将检索的密文搜索结果返回给私有云服务器;2e)私有云服务器利用预先计算得到的分块密钥解密密文搜索结果,得到用户需要的明文数据,将明文数据再加密后返回给用户,用户对密文结果进行解密,得到对应的明文搜索结果。2.根据权利要求1所述的方法,其中步骤1b)中对明文表建立数据级索引,是根据明文数据中表的内容提取相应关键字集合,并通过可搜索加密机制加密关键字,得到明文数据表中关键字的密文,该密文即为数据级索引,此索...
【专利技术属性】
技术研发人员:马建峰,张凯,孟烨,李辉,马鑫迪,苗银宾,卢笛,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。