CN107370725A - 一种云环境下通用加密数据库的存取方法及系统 - Google Patents

一种云环境下通用加密数据库的存取方法及系统 Download PDF

Info

Publication number
CN107370725A
CN107370725A CN201710480086.6A CN201710480086A CN107370725A CN 107370725 A CN107370725 A CN 107370725A CN 201710480086 A CN201710480086 A CN 201710480086A CN 107370725 A CN107370725 A CN 107370725A
Authority
CN
China
Prior art keywords
data
module
key
proxy server
ciphertext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710480086.6A
Other languages
English (en)
Inventor
马建峰
孟烨
李辉
李金库
宁建斌
汪克忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201710480086.6A priority Critical patent/CN107370725A/zh
Publication of CN107370725A publication Critical patent/CN107370725A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0471Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种云环境下通用加密数据库的存取方法及系统,通过代理服务器中的查询解析模块、查询路由模块、Mysql协议适配器模块和JDBC驱动模块,实现了系统对各大主流数据库系统的兼容和整合,同时通过代理服务器中的加密模块和解密模块,实现了对用户数据和SQL语句的加解密,确保了用户数据的安全性,同时支持通过密文索引对加密数据库进行查询或更新,克服了现有的云环境下加密数据库存取系统中不能同时满足通过密文索引进行查询或更新,防止第三方云服务器的恶意攻击以及支持通用加密数据库的缺陷。

Description

一种云环境下通用加密数据库的存取方法及系统
技术领域
本发明属于云计算领域,具体涉及一种云环境下通用加密数据库的存取方法及系统。
背景技术
随着计算机技术的发展,大数据时代已经到来。在现实生活中,人们需要存取和管理的数据越来越多。为了减轻用户在本地对数据存取和管理的开销,越来越多的人和企业选择将自己的数据托管到云服务器,比如:阿里云服务器、亚马逊云服务器等。然而,云服务器在为人们带来便捷的同时,也可能给用户数据的安全性造成威胁。为了防止用户的数据在云服务器上被窃取和篡改,用户可以通过对自己的数据进行加密来保护自己的隐私。随着软件技术的发展,软件领域的分工越来越细。不同的行业、不同的项目,甚至同一项目的不同阶段在软件开发过程中对数据库系统的需求不尽相同。为了满足不同用户对数据库系统的需求差异,加密数据库存取系统开发过程中应尽量兼容更多的主流数据库系统。比如,Mysql、Oracle、SQL Server、Postgresql等。现有的云环境下加密数据库的存取系统,大多不能同时满足以下三点:通过密文索引对加密数据库进行查询或更新操作、防止第三方云服务器的恶意攻击以及支持通用加密数据库系统。
西安电子科技大学在其申请的专利“混合云环境下面向加密数据库的数据存取系统及方法”中公开了一种在混合云计算技术领域中的面向加密数据库的数据存取系统及方法。该专利主要思路是用户在上传数据的过程中,按照数据的密级不同,对数据进行密级划分,然后私有云服务器按照所划分的密级对数据进行加密操作,更好的保障了用户数据的安全性;用户在查询或更新数据的过程中,该专利为了确保用户只在其权限范围内进行查询或更新操作数据,用户需要经过身份认证和权限控制模块,同时还提供了数据完整性验证模块,更好的防止了托管在云服务器上的数据被恶意篡改。该方案存在的不足之处是:在混合云环境下面向加密数据库的数据存取系统只能支持Mysql数据库系统,其余主流数据库系统均不支持,造成加密数据库的数据存取系统的局限性太大,并且不能很好的解决各大数据库之间的兼容和整合。
发明内容
本发明的目的在于克服上述不足,提供一种云环境下通用加密数据库的存取方法及系统,既能保证数据安全又支持通过密文索引对加密数据库进行查询或更新。
为了达到上述目的,一种云环境下通用加密数据库的存取方法,包括以下步骤:
步骤一,用户将不同分组的数据上传至代理服务器的对应位置;
步骤二,代理服务器生成密钥,并保存在密钥管理模块的密钥中心中;
步骤三,代理服务器将数据进行加密,并发送至数据存储模块;
步骤四,云服务器接收代理服务器上传的加密数据或操作后的数据,将加密数据或操作后的数据存储在云服务器的数据库中;
步骤五,用户与代理服务器产生查询或更新操作的会话密钥,将会话密钥保存在密钥管理模块的密钥中心中,用户输入SQL语句,并提交给代理服务器;
步骤六,代理服务器通过SQL解析模块对用户模块发送过来的查询语句进行词法解析和语法解析,同时生成解析树及执行计划;
步骤七,代理服务器利用可搜索加密算法对用户上传的SQL语句进行加密,得到SQL语句的密文;
步骤八,代理服务器根据查询解析模块生成的解析树决策选择出查询语句所属的数据库系统,并将该查询解析树路由到Mysql协议适配器相应组件;
步骤九,代理服务器中的Mysql协议适配器模块将Mysql协议与查询路由模块中路由的数据库系统中的协议通过内部转换组件进行相互转换;
步骤十,代理服务器中对Mysql协议适配器模块转换的实际使用的数据库建立连接,并将密文的SQL语句提交给该数据库系统;
步骤十一,云服务器利用可搜索加密算法建立的索引,在数据库里利用密文SQL语句进行检索,得到匹配的密文结果,发送给代理服务器;
步骤十二,代理服务器将查询结果解密后,发送给用户。
所述步骤一中,具体包括如下步骤:
第一步,用户根据数据的保密级别不同对数据进行分组;
第二步,用户将分组后的数据上传到代理服务器的对应位置。
所述步骤二中,具体包括如下步骤:
第一步,代理服务器随机在密钥中心中选择一个密钥作为主密钥,构造B+树索引结构;
第二步,代理服务器根据已构造好的B+树索引结构建立一个对应的带密钥Hash树,主密钥为带密钥Hash树的根节点;
第三步,代理服务器通过密钥哈希公式由根节点计算各个叶子节点的密钥;
第四步,代理服务器将带密钥Hash树的叶子节点的密钥保存在密钥管理模块的密钥中心中。
所述步骤三中,具体包括如下步骤:
第一步,代理服务器对绝密级的数据采用随机加密算法进行加密,得到绝密级密文,然后将绝密级密文发送给数据存储模块;
第二步,代理服务器对保密级别的数据采用可搜索加密算法进行加密,得到保密级别密文,然后将保密级密文发送给数据存储模块;
第三步,代理服务器对不保密数据采用差分隐私方法进行操作,得到操作后的不保密数据,然后将操作后的不保密数据发送给数据存储模块。
所述步骤六中,SQL解析模块采用阿里的开源项目druid中的SQL解析模块作为工具模块。
所述步骤十二中,具体包括如下步骤:
第一步,代理服务器接收到云服务器所返回的密文查询结果,代理服务器利用Mysql协议适配器模块将所属的数据库系统的协议转换成Mysql协议;
第二步,代理服务器对绝密级密文采用随机加密算法进行解密,得到绝密级明文,然后将绝密级明文发送给用户;
第三步,代理服务器对保密级密文采用可搜索加密算法进行解密,得到保密级别明文,然后将保密级明文发送给用户;
第四步,代理服务器对操作后的不保密数据采用差分隐私方法进行操作,得到不保密数据,然后将不保密数据发送给用户。
一种云环境下通用加密数据库的存取系统,包括与数据存储模块连接的数据加密模块,数据加密模块连接密钥管理模块和用户模块;
所述数据存储模块连接JDBC驱动模块和解密模块,解密模块连接用户模块,用户模块连接查询解析模块,查询解析模块依次连接加密模块、查询路由模块、Mysql协议适配器模块和JDBC驱动模块。
所述用户模块,用于将数据上传之前,根据数据的保密级别不同对数据进行分组,将分组后的数据上传到代理服务器的对应位置;当用户需要对数据进行查询或更新时,在用户模块输入SQL语句,并发送给数据加密模块;用户模块与密钥管理模块协商产生查询或更新操作的会话密钥;
所述密钥管理模块,用于利用B+树索引结构构造密钥中心;密钥管理模块随机在密钥中心中选择一个密钥作为主密钥,构造B+树索引结构;根据已构造好的B+树索引结构建立一个对应的带密钥Hash树,主密钥为带密钥Hash树的根节点;通过密钥哈希公式由根节点计算各个叶子节点的密钥;将带密钥Hash树的叶子节点的密钥保存在密钥管理模块的密钥中心中;密钥管理模块与用户模块协商产生查询或更新操作的会话密钥,将会话密钥保存在密钥管理模块的密钥中心中;
所述数据加密模块,用于利用从密钥中心中获取的密钥对分组的数据进行加密,然后将加密后的数据发送给数据存储模块;对绝密级的数据采用随机加密算法进行加密,得到绝密级密文;对保密级别的数据采用可搜索加密算法进行加密,得到保密级别密文;对不保密数据采用差分隐私方法进行操作,得到操作后的不保密数据;利用可搜索加密算法对用户模块上传的SQL语句进行加密,利用得到的SQL语句密文向数据存储模块发送查询请求。
所述查询解析模块,用于利用阿里的开源项目Druid中的SQL解析模块作为工具模块对用户模块发送过来的查询语句进行词法解析和语法解析,同时生成解析树及执行计划;该模块提供了Mysql、Oracle、SQL Server和Postgresql数据库系统的完整支持;
所述查询路由模块,用于根据查询解析模块生成的解析树决策选择出查询语句所属的数据库系统,并将该查询解析树路由到Mysql协议适配器相应组件;
所述Mysql协议适配器模块,用于将Mysql协议与查询路由模块中路由的数据库系统中的协议相互转换,它的工作是提供一个统一的顶层访问接口,然后根据不同的数据库系统选择对应的内部转换模块进行协议转换;
所述JDBC驱动模块,用于采用策略模式,封装了多种数据库通信协议的处理方式,向后台数据库系统发起查询请求和更新指令;根据Mysql协议适配器模块转换的实际使用的数据库协议来连接对应的数据库,发送密文的查询语句给该数据库系统进行查询处理;
所述数据存储模块,用于接收数据加解密模块发送来的加密数据,将加密数据存储在数据存储模块的数据库中;利用可搜索加密算法,在数据存储模块的数据库中建立索引,利用索引操作数据库中的内容;利用可搜索加密算法建立的索引,在数据库里对SQL语句的密文进行检索,得到匹配的密文结果,发送给数据解密模块;
所述数据解密模块,用于对数据存储模块返回的密文数据进行解密,得到明文查询结果,利用用户的私钥对绝密级密文进行解密;利用可搜索密钥对保密级密文进行解密;利用差分隐私方法对不保密数据进行操作;然后将明文查询结果发送给用户模块。
与现有技术相比,本发明的用户在将数据上传之前,根据数据的保密级别不同对数据进行分组;将分组后的数据上传到代理服务器的对应位置,代理服务器根据分组对数据分别采用相应的加密算法进行加密;然后将加密后的数据上传到云服务器进行存储。本发明通过在代理服务器中的查询解析模块、查询路由模块、Mysql协议适配器模块和JDBC驱动模块之间的相互通信,实现了云环境下支持通用加密数据库的存取系统,并且解决各大数据库之间的兼容和整合问题。
本发明通过代理服务器中的查询解析模块、查询路由模块、Mysql协议适配器模块和JDBC驱动模块,实现了系统对各大主流数据库系统的兼容和整合,同时通过代理服务器中的加密模块和解密模块,实现了对用户数据和SQL语句的加解密,确保了用户数据的安全性,同时支持通过密文索引对加密数据库进行查询或更新,克服了现有的云环境下加密数据库存取系统中不能同时满足通过密文索引进行查询或更新,防止第三方云服务器的恶意攻击以及支持通用加密数据库的缺陷。
附图说明
图1为本发明系统的数据上传过程的流程图;
图2为本发明系统的数据查询过程的流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
本发明包括用户模块、密钥管理模块、数据加密模块、查询解析模块、查询路由模块、Mysql协议适配器模块、JDBC驱动模块、数据解密模块以及数据存储模块。
用户模块,用于将数据上传之前,根据数据的保密级别不同对数据进行分组,将分组后的数据上传到代理服务器的对应位置;当用户需要对数据进行查询或更新时,在用户模块输入SQL语句,并发送给数据加密模块;用户模块与密钥管理模块协商产生查询或更新操作的会话密钥;
密钥管理模块,用于利用B+树索引结构构造密钥中心;密钥管理模块随机在密钥中心中选择一个密钥作为主密钥,构造B+树索引结构;根据已构造好的B+树索引结构建立一个对应的带密钥Hash树,主密钥为带密钥Hash树的根节点;通过密钥哈希公式由根节点计算各个叶子节点的密钥;将带密钥Hash树的叶子节点的密钥保存在密钥管理模块的密钥中心中;密钥管理模块与用户模块协商产生查询或更新操作的会话密钥,将会话密钥保存在密钥管理模块的密钥中心中;
数据加密模块,用于利用从密钥中心中获取的密钥对分组的数据进行加密,然后将加密后的数据发送给数据存储模块;对绝密级的数据采用随机加密算法进行加密,得到绝密级密文;对保密级别的数据采用可搜索加密算法进行加密,得到保密级别密文;对不保密数据采用差分隐私方法进行操作,得到操作后的不保密数据;利用可搜索加密算法对用户模块上传的SQL语句进行加密,利用得到的SQL语句密文向数据存储模块发送查询请求;
查询解析模块,用于利用阿里的开源项目Druid中的SQL解析模块作为工具模块对用户模块发送过来的查询语句进行词法解析和语法解析,同时生成解析树及执行计划;该模块提供了Mysql、Oracle、SQL Server和Postgresql数据库系统的完整支持;
查询路由模块,用于根据查询解析模块生成的解析树决策选择出查询语句所属的数据库系统,并将该查询解析树路由到Mysql协议适配器相应组件;此模块起到负载均衡的效果,减少单一数据库访问的压力,同时对不同环境下的数据库扩展也很灵活,只要符合策略规则,就会在请求的时候路由到正确的数据库进行处理;
Mysql协议适配器模块,用于将Mysql协议与查询路由模块中路由的数据库系统中的协议相互转换,它的主要工作是提供一个统一的顶层访问接口,然后根据不同的数据库系统选择对应的内部转换模块进行协议转换,最终形成对加密数据库系统而言,数据库系统的协议是完全透明的,而用户跟加密数据库系统的交互则采用Mysql协议;该模块方便了在面对复杂多变的数据库系统环境下为用户提供一个完全一致的访问效果,减少了移植过程不兼容引起的问题,使得加密数据库系统在任何时刻具有多个一致的最新逻辑数据库数据集;
JDBC驱动模块,用于采用策略模式,封装了多种数据库通信协议的处理方式,向后台数据库系统发起查询请求和更新指令;根据Mysql协议适配器模块转换的实际使用的数据库协议来连接对应的数据库,发送密文的查询语句给该数据库系统进行查询处理;该模块降低了维护多种不同类型数据库访问一致性的难度;
数据存储模块,用于接收数据加解密模块发送来的加密数据,将加密数据存储在数据存储模块的数据库中;利用可搜索加密算法,在数据存储模块的数据库中建立索引,利用索引操作数据库中的内容;利用可搜索加密算法建立的索引,在数据库里对SQL语句的密文进行检索,得到匹配的密文结果,发送给数据解密模块;
数据解密模块,用于对数据存储模块返回的密文数据进行解密,得到明文查询结果,利用用户的私钥对绝密级密文进行解密;利用可搜索密钥对保密级密文进行解密;利用差分隐私方法对不保密数据进行操作;然后将明文查询结果发送给用户模块。
结合图1,说明本发明在数据上传过程中的使用流程,具体步骤如下:
步骤1,用户模块上传数据。
用户根据数据的保密级别不同对数据进行分组,并将分组后的数据上传到代理服务器的数据加密模块中。
步骤2,密钥管理模块生成密钥。
代理服务器中的密钥管理模块随机在密钥中心中选择一个密钥作为主密钥,构造B+树索引结构;
代理服务器中的密钥管理模块根据已构造好的B+树索引结构建立一个对应的带密钥Hash树,主密钥为带密钥Hash树的根节点;代理服务器通过密钥Hash公式由根节点计算各个叶子节点的密钥;
密钥Hash公式如下:
Kx,y=H(Kparent,x||y)
其中,H是一个Hash函数,Kparent是Kx,y的父节点对应的密钥,||代表串联运算,该运算是为了保证分块密钥的互不相同。
代理服务器中的密钥管理模块将带密钥Hash树的叶子节点的密钥保存在密钥管理模块的密钥中心中;
步骤3,数据加密模块加密数据。
代理服务器中的数据加密模块对绝密级的数据采用随机加密算法进行加密,得到绝密级密文,然后将绝密级密文发送给数据存储模块;对保密级别的数据采用可搜索加密算法进行加密,得到保密级别密文,然后将保密级密文发送给数据存储模块;对不保密数据采用差分隐私方法进行操作,得到操作后的不保密数据,然后将操作后的不保密数据发送给数据存储模块;
步骤4,数据存储模块存储数据。
将数据加密模块上传的加密处理后的数据存储到数据存储模块的数据库中。
结合图2,说明本发明在数据查询过程中的使用流程,具体步骤如下:
步骤1,用户模块请求数据查询。
用户首先与代理服务器的密钥管理协商产生查询或更新操作的会话密钥,将会话密钥保存在密钥管理模块的密钥中心中;用户输入SQL语句,并提交给代理服务器查询解析模块;
步骤2,查询解析模块对查询语句进行解析。
查询解析模块利用阿里的开源项目druid中的SQL解析模块作为工具模块对用户模块发送过来的查询语句进行词法解析和语法解析,同时生成解析树及执行计划;
步骤3,数据加密模块加密查询语句。
代理服务器中的数据加密模块利用可搜索加密算法对用户上传的SQL语句进行加密,得到SQL语句的密文;
步骤4,查询路由模块对查询语句进行路由。
代理服务器中的查询路由模块根据查询解析模块生成的解析树决策选择出查询语句所属的数据库系统,并将该查询解析树路由到Mysql协议适配器相应组件。
步骤5,Mysql协议适配器模块将Mysql协议转换成实际的数据库协议。
代理服务器中的Mysql协议适配器模块通过内部转换组件将Mysql协议转换成查询路由模块中路由的数据库系统中的协议。
步骤6,JDBC驱动模块与后台数据库建立连接。
代理服务器中的JDBC驱动模块对Mysql协议适配器模块转换的实际使用的数据库建立连接,并将密文的查询语句发送给该数据库系统。
步骤7,数据存储模块对查询语句进行密文查询。
代理服务器中的数据存储模块利用可搜索加密算法建立的索引,在数据库里对密文查询语句进行检索,得到匹配的密文结果,发送给解密模块。
步骤8,数据解密模块解密查询结果。
代理服务器中的数据解密模块解密数据存储模块所返回的密文查询结果,得到明文,发送给用户模块。

Claims (9)

1.一种云环境下通用加密数据库的存取方法,其特征在于,包括以下步骤:
步骤一,用户将不同分组的数据上传至代理服务器的对应位置;
步骤二,代理服务器生成密钥,并保存在密钥管理模块的密钥中心中;
步骤三,代理服务器将数据进行加密,并发送至数据存储模块;
步骤四,云服务器接收代理服务器上传的加密数据或操作后的数据,将加密数据或操作后的数据存储在云服务器的数据库中;
步骤五,用户与代理服务器产生查询或更新操作的会话密钥,将会话密钥保存在密钥管理模块的密钥中心中,用户输入SQL语句,并提交给代理服务器;
步骤六,代理服务器通过SQL解析模块对用户模块发送过来的查询语句进行词法解析和语法解析,同时生成解析树及执行计划;
步骤七,代理服务器利用可搜索加密算法对用户上传的SQL语句进行加密,得到SQL语句的密文;
步骤八,代理服务器根据查询解析模块生成的解析树决策选择出查询语句所属的数据库系统,并将该查询解析树路由到Mysql协议适配器相应组件;
步骤九,代理服务器中的Mysql协议适配器模块将Mysql协议与查询路由模块中路由的数据库系统中的协议通过内部转换组件进行相互转换;
步骤十,代理服务器中对Mysql协议适配器模块转换的实际使用的数据库建立连接,并将密文的SQL语句提交给该数据库系统;
步骤十一,云服务器利用可搜索加密算法建立的索引,在数据库里利用密文SQL语句进行检索,得到匹配的密文结果,发送给代理服务器;
步骤十二,代理服务器将查询结果解密后,发送给用户。
2.根据权利要求1所述的一种云环境下通用加密数据库的存取方法,其特征在于,所述步骤一中,具体包括如下步骤:
第一步,用户根据数据的保密级别不同对数据进行分组;
第二步,用户将分组后的数据上传到代理服务器的对应位置。
3.根据权利要求1所述的一种云环境下通用加密数据库的存取方法,其特征在于,所述步骤二中,具体包括如下步骤:
第一步,代理服务器随机在密钥中心中选择一个密钥作为主密钥,构造B+树索引结构;
第二步,代理服务器根据已构造好的B+树索引结构建立一个对应的带密钥Hash树,主密钥为带密钥Hash树的根节点;
第三步,代理服务器通过密钥哈希公式由根节点计算各个叶子节点的密钥;
第四步,代理服务器将带密钥Hash树的叶子节点的密钥保存在密钥管理模块的密钥中心中。
4.根据权利要求1所述的一种云环境下通用加密数据库的存取方法,其特征在于,所述步骤三中,具体包括如下步骤:
第一步,代理服务器对绝密级的数据采用随机加密算法进行加密,得到绝密级密文,然后将绝密级密文发送给数据存储模块;
第二步,代理服务器对保密级别的数据采用可搜索加密算法进行加密,得到保密级别密文,然后将保密级密文发送给数据存储模块;
第三步,代理服务器对不保密数据采用差分隐私方法进行操作,得到操作后的不保密数据,然后将操作后的不保密数据发送给数据存储模块。
5.根据权利要求1所述的一种云环境下通用加密数据库的存取方法,其特征在于,所述步骤六中,SQL解析模块采用阿里的开源项目druid中的SQL解析模块作为工具模块。
6.根据权利要求1所述的一种云环境下通用加密数据库的存取方法,其特征在于,所述步骤十二中,具体包括如下步骤:
第一步,代理服务器接收到云服务器所返回的密文查询结果,代理服务器利用Mysql协议适配器模块将所属的数据库系统的协议转换成Mysql协议;
第二步,代理服务器对绝密级密文采用随机加密算法进行解密,得到绝密级明文,然后将绝密级明文发送给用户;
第三步,代理服务器对保密级密文采用可搜索加密算法进行解密,得到保密级别明文,然后将保密级明文发送给用户;
第四步,代理服务器对操作后的不保密数据采用差分隐私方法进行操作,得到不保密数据,然后将不保密数据发送给用户。
7.一种云环境下通用加密数据库的存取系统,其特征在于,包括与数据存储模块连接的数据加密模块,数据加密模块连接密钥管理模块和用户模块;
所述数据存储模块连接JDBC驱动模块和解密模块,解密模块连接用户模块,用户模块连接查询解析模块,查询解析模块依次连接加密模块、查询路由模块、Mysql协议适配器模块和JDBC驱动模块。
8.根据权利要求7所述的一种云环境下通用加密数据库的存取系统,其特征在于,所述用户模块,用于将数据上传之前,根据数据的保密级别不同对数据进行分组,将分组后的数据上传到代理服务器的对应位置;当用户需要对数据进行查询或更新时,在用户模块输入SQL语句,并发送给数据加密模块;用户模块与密钥管理模块协商产生查询或更新操作的会话密钥;
所述密钥管理模块,用于利用B+树索引结构构造密钥中心;密钥管理模块随机在密钥中心中选择一个密钥作为主密钥,构造B+树索引结构;根据已构造好的B+树索引结构建立一个对应的带密钥Hash树,主密钥为带密钥Hash树的根节点;通过密钥哈希公式由根节点计算各个叶子节点的密钥;将带密钥Hash树的叶子节点的密钥保存在密钥管理模块的密钥中心中;密钥管理模块与用户模块协商产生查询或更新操作的会话密钥,将会话密钥保存在密钥管理模块的密钥中心中;
所述数据加密模块,用于利用从密钥中心中获取的密钥对分组的数据进行加密,然后将加密后的数据发送给数据存储模块;对绝密级的数据采用随机加密算法进行加密,得到绝密级密文;对保密级别的数据采用可搜索加密算法进行加密,得到保密级别密文;对不保密数据采用差分隐私方法进行操作,得到操作后的不保密数据;利用可搜索加密算法对用户模块上传的SQL语句进行加密,利用得到的SQL语句密文向数据存储模块发送查询请求。
9.根据权利要求7所述的一种云环境下通用加密数据库的存取系统,其特征在于,所述查询解析模块,用于利用阿里的开源项目Druid中的SQL解析模块作为工具模块对用户模块发送过来的查询语句进行词法解析和语法解析,同时生成解析树及执行计划;该模块提供了Mysql、Oracle、SQL Server和Postgresql数据库系统的完整支持;
所述查询路由模块,用于根据查询解析模块生成的解析树决策选择出查询语句所属的数据库系统,并将该查询解析树路由到Mysql协议适配器相应组件;
所述Mysql协议适配器模块,用于将Mysql协议与查询路由模块中路由的数据库系统中的协议相互转换,它的工作是提供一个统一的顶层访问接口,然后根据不同的数据库系统选择对应的内部转换模块进行协议转换;
所述JDBC驱动模块,用于采用策略模式,封装了多种数据库通信协议的处理方式,向后台数据库系统发起查询请求和更新指令;根据Mysql协议适配器模块转换的实际使用的数据库协议来连接对应的数据库,发送密文的查询语句给该数据库系统进行查询处理;
所述数据存储模块,用于接收数据加解密模块发送来的加密数据,将加密数据存储在数据存储模块的数据库中;利用可搜索加密算法,在数据存储模块的数据库中建立索引,利用索引操作数据库中的内容;利用可搜索加密算法建立的索引,在数据库里对SQL语句的密文进行检索,得到匹配的密文结果,发送给数据解密模块;
所述数据解密模块,用于对数据存储模块返回的密文数据进行解密,得到明文查询结果,利用用户的私钥对绝密级密文进行解密;利用可搜索密钥对保密级密文进行解密;利用差分隐私方法对不保密数据进行操作;然后将明文查询结果发送给用户模块。
CN201710480086.6A 2017-06-21 2017-06-21 一种云环境下通用加密数据库的存取方法及系统 Pending CN107370725A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710480086.6A CN107370725A (zh) 2017-06-21 2017-06-21 一种云环境下通用加密数据库的存取方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710480086.6A CN107370725A (zh) 2017-06-21 2017-06-21 一种云环境下通用加密数据库的存取方法及系统

Publications (1)

Publication Number Publication Date
CN107370725A true CN107370725A (zh) 2017-11-21

Family

ID=60305516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710480086.6A Pending CN107370725A (zh) 2017-06-21 2017-06-21 一种云环境下通用加密数据库的存取方法及系统

Country Status (1)

Country Link
CN (1) CN107370725A (zh)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107800537A (zh) * 2017-11-27 2018-03-13 安徽问天量子科技股份有限公司 基于量子密钥分配技术的加密数据库系统及方法、存储方法及查询方法
CN108734023A (zh) * 2018-04-28 2018-11-02 西安电子科技大学 一种密文数据库系统的访问与集成系统及方法
CN109067712A (zh) * 2018-07-16 2018-12-21 成都亚信网络安全产业技术研究院有限公司 一种用户云端数据保护方法及代理服务器
CN109241751A (zh) * 2018-07-25 2019-01-18 郑州云海信息技术有限公司 基于SQL Server的数据加密验证方法及系统
CN109255253A (zh) * 2018-08-13 2019-01-22 苏州科达科技股份有限公司 Sql防注入方法及装置
CN109413029A (zh) * 2018-08-29 2019-03-01 国网河南省电力公司电力科学研究院 定值数据接入方法、装置及系统
CN109597829A (zh) * 2018-11-20 2019-04-09 南京邮电大学 一种实现可搜索加密关系型数据库缓存的中间件方法
CN109656989A (zh) * 2018-10-29 2019-04-19 平安科技(深圳)有限公司 多数据源整合方法、装置、计算机设备和存储介质
CN109977137A (zh) * 2019-02-22 2019-07-05 视联动力信息技术股份有限公司 一种数据查询方法和装置
CN109995524A (zh) * 2019-03-22 2019-07-09 西安电子科技大学 一种基于加解密资源调度和密钥管理的加密数据库及方法
CN110324359A (zh) * 2019-08-02 2019-10-11 北京朋创天地科技有限公司 互联网个人信息安全发布、访问方法及系统
CN111427908A (zh) * 2020-04-23 2020-07-17 北京中安星云软件技术有限公司 一种基于量子密钥的透明加、解密方法、系统及装置
CN111818166A (zh) * 2020-07-09 2020-10-23 杭州绿度信息技术有限公司 采用http协议代理数据库协议的通信中间件的实现方法
CN111859426A (zh) * 2020-07-21 2020-10-30 西安电子科技大学 一种通用加密数据库连接器及其设置方法
CN112148739A (zh) * 2020-09-25 2020-12-29 世融能量科技有限公司 独立于加密数据库的密文索引方法及系统
CN112380557A (zh) * 2020-12-01 2021-02-19 江西师范大学 一种关系型数据库加密方法及该加密数据库查询方法
CN112711762A (zh) * 2020-12-22 2021-04-27 航天信息股份有限公司 一种数据库透明加密的方法
CN112800088A (zh) * 2021-01-19 2021-05-14 东北大学 基于双向安全索引的数据库密文检索系统及方法
CN113111356A (zh) * 2021-03-09 2021-07-13 深圳市教育信息技术中心(深圳市教育装备中心) 数据加密方法、装置、设备和介质
WO2022156588A1 (zh) * 2021-01-25 2022-07-28 华为技术有限公司 一种数据管理的方法、设备及系统
CN115510071A (zh) * 2022-10-27 2022-12-23 杭州煋辰数智科技有限公司 一种大数据快速组合查询的动态索引方法
CN115801446A (zh) * 2022-12-29 2023-03-14 浙江大学 基于可信硬件的加密数据库系统
CN115982777A (zh) * 2023-02-13 2023-04-18 西安大地测绘股份有限公司 私有云下面向移动端的地理信息数据安全使用系统及方法
CN116388970A (zh) * 2023-03-03 2023-07-04 京信数据科技有限公司 一种基于多方数据的中心化云计算实现方法及装置
CN116975926A (zh) * 2023-08-16 2023-10-31 合肥安永信息科技有限公司 一种基于可信执行环境的数据库代理加密系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060282447A1 (en) * 2003-06-04 2006-12-14 The Trustees Of The University Of Pennsylvania Ndma db schema, dicom to relational schema translation, and xml to sql query transformation
CN102508898A (zh) * 2011-11-04 2012-06-20 浪潮(北京)电子信息产业有限公司 一种基于云计算的数据访问方法和数据库系统
CN102521254A (zh) * 2011-11-17 2012-06-27 广东电网公司电力科学研究院 异构数据库的统一访问方法
CN102567378A (zh) * 2010-12-28 2012-07-11 上海杉达学院 基于异构数据的信息检索系统
CN106529327A (zh) * 2016-10-08 2017-03-22 西安电子科技大学 混合云环境下面向加密数据库的数据存取系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060282447A1 (en) * 2003-06-04 2006-12-14 The Trustees Of The University Of Pennsylvania Ndma db schema, dicom to relational schema translation, and xml to sql query transformation
CN102567378A (zh) * 2010-12-28 2012-07-11 上海杉达学院 基于异构数据的信息检索系统
CN102508898A (zh) * 2011-11-04 2012-06-20 浪潮(北京)电子信息产业有限公司 一种基于云计算的数据访问方法和数据库系统
CN102521254A (zh) * 2011-11-17 2012-06-27 广东电网公司电力科学研究院 异构数据库的统一访问方法
CN106529327A (zh) * 2016-10-08 2017-03-22 西安电子科技大学 混合云环境下面向加密数据库的数据存取系统及方法

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107800537A (zh) * 2017-11-27 2018-03-13 安徽问天量子科技股份有限公司 基于量子密钥分配技术的加密数据库系统及方法、存储方法及查询方法
CN108734023A (zh) * 2018-04-28 2018-11-02 西安电子科技大学 一种密文数据库系统的访问与集成系统及方法
CN108734023B (zh) * 2018-04-28 2021-12-21 西安电子科技大学 一种密文数据库系统的访问与集成系统及方法
CN109067712A (zh) * 2018-07-16 2018-12-21 成都亚信网络安全产业技术研究院有限公司 一种用户云端数据保护方法及代理服务器
CN109241751A (zh) * 2018-07-25 2019-01-18 郑州云海信息技术有限公司 基于SQL Server的数据加密验证方法及系统
CN109241751B (zh) * 2018-07-25 2021-10-22 郑州云海信息技术有限公司 基于SQL Server的数据加密验证方法及系统
CN109255253A (zh) * 2018-08-13 2019-01-22 苏州科达科技股份有限公司 Sql防注入方法及装置
CN109413029A (zh) * 2018-08-29 2019-03-01 国网河南省电力公司电力科学研究院 定值数据接入方法、装置及系统
CN109656989A (zh) * 2018-10-29 2019-04-19 平安科技(深圳)有限公司 多数据源整合方法、装置、计算机设备和存储介质
CN109597829A (zh) * 2018-11-20 2019-04-09 南京邮电大学 一种实现可搜索加密关系型数据库缓存的中间件方法
CN109597829B (zh) * 2018-11-20 2022-11-01 南京邮电大学 一种实现可搜索加密关系型数据库缓存的中间件方法
CN109977137A (zh) * 2019-02-22 2019-07-05 视联动力信息技术股份有限公司 一种数据查询方法和装置
CN109977137B (zh) * 2019-02-22 2021-07-09 视联动力信息技术股份有限公司 一种数据查询方法和装置
CN109995524A (zh) * 2019-03-22 2019-07-09 西安电子科技大学 一种基于加解密资源调度和密钥管理的加密数据库及方法
CN110324359A (zh) * 2019-08-02 2019-10-11 北京朋创天地科技有限公司 互联网个人信息安全发布、访问方法及系统
CN111427908A (zh) * 2020-04-23 2020-07-17 北京中安星云软件技术有限公司 一种基于量子密钥的透明加、解密方法、系统及装置
CN111818166B (zh) * 2020-07-09 2022-12-09 杭州隐捷适生物科技有限公司 采用http协议代理数据库协议的通信中间件的实现方法
CN111818166A (zh) * 2020-07-09 2020-10-23 杭州绿度信息技术有限公司 采用http协议代理数据库协议的通信中间件的实现方法
CN111859426B (zh) * 2020-07-21 2023-04-07 西安电子科技大学 一种通用加密数据库连接器及其设置方法
CN111859426A (zh) * 2020-07-21 2020-10-30 西安电子科技大学 一种通用加密数据库连接器及其设置方法
CN112148739A (zh) * 2020-09-25 2020-12-29 世融能量科技有限公司 独立于加密数据库的密文索引方法及系统
CN112148739B (zh) * 2020-09-25 2023-12-29 世融能量科技有限公司 独立于加密数据库的密文索引方法及系统
CN112380557A (zh) * 2020-12-01 2021-02-19 江西师范大学 一种关系型数据库加密方法及该加密数据库查询方法
CN112380557B (zh) * 2020-12-01 2021-10-12 江西师范大学 一种关系型数据库加密方法及该加密数据库查询方法
CN112711762A (zh) * 2020-12-22 2021-04-27 航天信息股份有限公司 一种数据库透明加密的方法
CN112800088A (zh) * 2021-01-19 2021-05-14 东北大学 基于双向安全索引的数据库密文检索系统及方法
CN112800088B (zh) * 2021-01-19 2023-09-19 东北大学 基于双向安全索引的数据库密文检索系统及方法
WO2022156588A1 (zh) * 2021-01-25 2022-07-28 华为技术有限公司 一种数据管理的方法、设备及系统
CN113111356A (zh) * 2021-03-09 2021-07-13 深圳市教育信息技术中心(深圳市教育装备中心) 数据加密方法、装置、设备和介质
CN115510071A (zh) * 2022-10-27 2022-12-23 杭州煋辰数智科技有限公司 一种大数据快速组合查询的动态索引方法
CN115801446B (zh) * 2022-12-29 2023-05-23 浙江大学 基于可信硬件的加密数据库系统
CN115801446A (zh) * 2022-12-29 2023-03-14 浙江大学 基于可信硬件的加密数据库系统
CN115982777A (zh) * 2023-02-13 2023-04-18 西安大地测绘股份有限公司 私有云下面向移动端的地理信息数据安全使用系统及方法
CN115982777B (zh) * 2023-02-13 2023-10-03 西安大地测绘股份有限公司 私有云下面向移动端的地理信息数据安全使用系统及方法
CN116388970A (zh) * 2023-03-03 2023-07-04 京信数据科技有限公司 一种基于多方数据的中心化云计算实现方法及装置
CN116388970B (zh) * 2023-03-03 2023-11-28 京信数据科技有限公司 一种基于多方数据的中心化云计算实现方法及装置
CN116975926A (zh) * 2023-08-16 2023-10-31 合肥安永信息科技有限公司 一种基于可信执行环境的数据库代理加密系统

Similar Documents

Publication Publication Date Title
CN107370725A (zh) 一种云环境下通用加密数据库的存取方法及系统
CN106603233B (zh) 远程开标型招投标系统用的加解密方法
CN114065265B (zh) 基于区块链技术的细粒度云存储访问控制方法、系统及设备
CN105610793B (zh) 一种外包数据加密存储与密文查询系统及其应用方法
CN101282252B (zh) 基于网络的远程服务器的口令管理和登录方法
CN111654364A (zh) 应用区块链加密技术实现数据安全通信方法
CN103107889A (zh) 一种可搜索的云计算环境数据加密存储系统和方法
CN112487103B (zh) 一种基于区块链智能合约的深度学习数据集可信共享系统
CN101286840A (zh) 一种利用公钥密码技术的密钥分配方法及其系统
CN103873236A (zh) 一种可搜索加密方法及设备
CN106934301A (zh) 一种支持密文数据操作的关系型数据库安全外包数据处理方法
CN109361644A (zh) 一种支持快速搜索和解密的模糊属性基加密方法
CN112036886A (zh) 一种基于区块链的电力大数据交换方法及系统
CN108021677A (zh) 云计算分布式检索引擎的控制方法
CN106326666A (zh) 一种健康档案信息管理服务系统
CN111988307B (zh) 基于区块链技术的建筑工程用工信息共享平台及操作方法
CN107302524A (zh) 一种云计算环境下的密文数据共享系统
CN104270350B (zh) 一种密钥信息的传输方法和设备
CN113127927B (zh) 一种许可链数据共享及监管的属性重构加密方法及系统
CN113268722B (zh) 一种个人数字身份管理系统与方法
Kabir et al. A dynamic searchable encryption scheme for secure cloud server operation reserving multi-keyword ranked search
Wen et al. A Blockchain‐Based Privacy Preservation Scheme in Mobile Medical
CN106161654A (zh) 一种云教育系统
CN108763944A (zh) 雾计算中安全可撤销多中心大属性域属性基加密方法
CN108780501A (zh) 通过分散验证网络单独管理与消息链相关的消息验证的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20171121

RJ01 Rejection of invention patent application after publication