CN103392178B - 数据库加密***、方法和程序 - Google Patents
数据库加密***、方法和程序 Download PDFInfo
- Publication number
- CN103392178B CN103392178B CN201280003997.5A CN201280003997A CN103392178B CN 103392178 B CN103392178 B CN 103392178B CN 201280003997 A CN201280003997 A CN 201280003997A CN 103392178 B CN103392178 B CN 103392178B
- Authority
- CN
- China
- Prior art keywords
- database
- data
- information
- ciphertext
- security
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6227—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种用于抑制数据库信息泄露和改善处理效率的***。一种经由网络(30)连接到数据库***(10)的用户***(20),其配备有:用于管理密钥信息以便进行加密和解密的装置(23,24);存储单元(25),其用于存储数据和/或元数据的安全性设置信息。所述用户***(20)进一步配备有应用应答装置(22),其用于:确定对于数据库操作命令是否需要加密;当需要加密时,根据数据和/或元数据来选择加密算法,在对其加密之后将数据库操作命令传送给数据库控制装置(12),并执行数据库(11)操作;当不需要加密时,将数据库操作命令传送给数据库控制装置(12)并执行数据库操作;接收由数据库控制装置传送的处理结果;在需要对处理结果数据和/或元数据的解密或转换时,执行需要的解密或转换;以及向数据库操作命令返回作为应答的处理结果数据和/或者元数据。所述用户***(20)还配备有安全性设置装置(26),其用于设置数据库中存储的数据的安全信息。
Description
技术领域
(相关申请的引用)
本申请主张日本专利申请No.JP2011-247908(申请日为2011年11月11日)的优先权,其内容全文引用结合于此。本发明涉及信息加密技术,并且具体地涉及数据库加密***、方法和程序。
背景技术
近来,为客户端提供基于因特网的软件基础设施、应用、操作***(OS)等的云计算的使用日益增加。可以预计今后关于数据库的云中外包的使用模式也将增长。
然而,数据库外包到云,特别重要的是防止从数据库泄露信息。为了防止从数据库泄露信息,到目前为止已经提出各种对在数据库中记录的数据进行加密的方法。尽管在这一点上没有特别限制,但这些方法的示例被分类如下。
1.当在数据库中存储数据时,对相关数据进行加密以便存储,并且当提取数据时,对数据进行解密以便返回给用户。
专利文献PTL1例如公开一种用于自动数据库加密的方法和装置,其中在数据库用户不知晓的情况下、以对于数据库用户透明的方式自动地执行加密。提供客户端、数据库服务器和数据库,并且通过接收在数据库***的列中存储数据的请求,来执行操作。在用户将数据库***的列指定为经加密列的情况下,自动地使用加密功能加密数据。加密功能使用由安全管理员管理的密钥文件中存储的密钥。在数据加密之后,***使用数据库***的存储功能存储该数据。还通过接收从数据库***的经加密列提取数据的请求而执行操作。***检查列ID元数据从而查询相关列是否被加密,并且如果被加密,在提取数据的请求是由被许可用户做出的情况下,检索加密参数,检索解密密钥以解密数据,并且将经解密数据返回给客户端。在提取数据的请求不是由被许可用户做出的情况下,不对经解密数据解密。根据专利文献PTL1中描述的方法和装置,在数据库侧管理加密/解密密钥。因此,数据库***的用户(数据库用户)不需要修改对数据库的查询。
2.通过使用可以按原样处理密文的加密方案,在用户端管理密钥。
专利文献PTL2例如公开一种经加密数据库检索装置,其执行可适用于检索***的索引创建处理,该检索***检索以加密形式存储在加密数据库中的文档,从而实现检索处理的加速。待检索的数据使用与经加密数据相同的密钥和加密方案进行加密以执行检索。在此***中,即使在数据库侧存在信息泄露,则仅仅经加密文本(密文)被泄露。
作为在用户侧管理密钥并且由用户侧的终端来加密和解密数据库中存储的数据的***,专利文献PTL3例如公开一种数据库访问***,其中为用户终端提供了用于使用公共密钥生成私有密钥的私有密钥生成装置、用于存储私有密钥的存储装置、用于基于公共密钥来加密数据的加密装置以及用于使用私有密钥来解密经加密数据的解密装置,并且其中针对从外部入侵的第三方、存储和管理数据的管理员等,可以精确地防止数据泄露。
3.通过任意处理而按照原样处理经加密文本(密文)。
非专利文献NPL1公开了通过使用完全准同态加密在不解密密码的情况下使得能够对经加密数据进行任意逻辑运算。
[引文列表]
[专利文献]
[PTL1]PCT国际公开的日文翻译,JP2004-528615号公报(国际公开号02/029577)
[PTL2]日本专利特开JP-2005-134990A号公报
[PTL3]日本专利特开JP-2004-234344A号公报
[非专利文献]
[NPL1]Craig Gentry,"Fully Homomorphic Encryption Using IdealLattices,″STOC’09,5月31日-6月2日,pp.169-178,2009。
发明内容
[技术问题]
在下文给出上述相关技术的分析。
1.针对其中当存储到数据库时数据被加密存储并且当提取数据时对数据解密以返回给用户的方法,因为用于加密/解密的密钥布置在数据库侧,因而存在这样的可能性:由于从外部入侵到数据库***或者数据库管理员等的不当行为或操作错误而引起的信息泄露。
2.通过使用其中密文可以按原样被处理的加密方案而使得能够在用户侧管理密钥的方法只能够部分地处置一般数据库操作(SQL:结构化查询语言)(例如检索处理)。
3.通过使用完全准同态加密而使得够按原样处理密文的方法需要大量的计算。例如,据估计将需要当前使用的计算处理的1万亿倍的计算处理。
因此本领域中存在对于提供如下***、方法和程序的需求,其防止数据库***的信息泄露并且改善处理的效率。本领域中还存在对于提供如下***、方法和程序的需求,其使得能够满足该需求而不要求改造执行数据库操作的应用。
[解决问题的方案]
根据本发明,提供了一种数据库加密***,包括:数据库设备,其包括数据库以及控制数据库操作的执行的数据库控制装置;以及用户设备,其经由网络连接到数据库控制装置。该用户设备包括:密钥使用装置,其管理用于加密和解密的密钥信息;安全性配置装置,其配置与数据库中所存储的数据和/或元数据的安全性的配置有关的信息;第一存储单元,其存储与安全性的配置有关的信息;以及应用应答装置,其接收发布给数据库设备的数据库操作命令,并且通过参考第一存储单元的信息,确定是否需要对数据库操作命令处理的数据和/或元数据的加密。如果需要加密,应用应答装置将已经通过使用对应于数据和/或元数据的安全性的加密算法、根据密钥使用装置的密钥信息而被加密的经加密数据和/或经加密元数据,作为数据库操作命令的数据和/或元数据,传送给数据库控制装置,以便致使数据库控制装置执行数据库操作。如果不需要加密,应用应答装置将数据库操作命令按原样传送给数据库控制装置,以便致使数据库控制装置执行数据库操作。应用应答装置接收由数据库控制装置传送的数据库处理结果,并且如果需要对数据库处理结果的数据和/或元数据的转换或解密,将所述转换或根据密钥使用装置的密钥信息执行解密的结果,作为对数据库操作命令的应答,返回到数据库操作命令的发布源。
根据本发明的另一方面,提供了一种经由网络连接到数据库设备的用户设备。该用户设备包括:密钥使用装置,其管理用于加密和解密的密钥信息;安全性配置装置,其配置与数据库中所存储的数据和/或元数据的安全性的配置有关的信息;第一存储单元,其存储由安全性配置装置配置的信息;以及应用应答装置,其接收发布给数据库设备的数据库操作命令,并且通过参考第一存储单元的信息,确定是否需要对由数据库操作命令处理的数据和/或元数据的加密。如果需要加密,应用应答装置将已经通过使用对应于数据和/或元数据的安全性的加密算法、根据密钥使用装置的密钥信息而被加密的经加密数据和/或经加密元数据,作为数据库操作命令的数据和/或元数据传送给数据库设备,以便致使数据库设备执行数据库操作。如果不需要加密,应用应答装置将数据库操作命令按原样传送给数据库设备,以便致使数据库设备执行数据库操作。应用应答装置接收由数据库设备传送的数据库处理结果,并且如果需要对数据库处理结果的数据和/或元数据的转换或解密,将所述转换或根据密钥使用装置的密钥信息执行解密的结果,作为对数据库操作命令的应答,返回给数据库操作命令的发布源。
根据本发明的另一方面,提供了一种数据库加密方法,包括:通过经由网络连接到数据库设备的用户设备,存储和管理用于加密和解密的密钥信息;配置与数据库中所存储的数据和/或元数据的安全性的配置有关的信息并且将该信息存储于第一存储单元;通过参考第一存储单元的信息,针对发布给数据库设备的数据库操作命令,确定是否需要对由数据库操作命令处理的数据和/或元数据进行加密;如果需要加密,将已经使用对应于数据和/或元数据的安全性的加密算法、根据密钥信息而被加密的经加密数据和/或经加密元数据,作为数据库操作命令的数据和/或元数据,传送给数据库设备,以便致使数据库设备执行数据库操作;如果不需要加密,将数据库操作命令按原样传送给数据库设备,以便致使数据库设备执行数据库操作;以及接收由数据库设备传送的数据库处理结果,并且如果需要对数据库处理结果的数据和/或元数据的转换或解密,将所述转换或根据密钥信息执行解密的结果,作为对数据库操作命令的应答,返回给数据库操作命令的发布源。
根据本发明的另一方面,提供了一种程序,其致使经由网络连接到数据库设备的用户设备的计算机执行:管理用于加密和解密的密钥信息的密钥使用过程;配置与数据库中所存储的数据和/或元数据的安全性的配置有关的信息并且将其存储于第一存储单元的安全性配置过程;以及通过参考第一存储单元的信息,针对发布给数据库设备的数据库操作命令,确定是否需要对由数据库操作命令处理的数据和/或元数据的加密的应用应答过程。该应用应答过程还包括:如果需要加密,将已经通过使用对应于数据和/或元数据的安全性的加密算法、根据密钥信息而被加密的经加密数据和/或经加密元数据,作为数据库操作命令的数据和/或元数据,传送给数据库设备,以便致使数据库设备执行数据库操作;如果不需要加密,将数据库操作命令按原样传送给数据库设备,以便致使数据库设备执行数据库操作;以及接收由数据库设备传送的数据库处理结果,并且如果需要对数据库处理结果的数据和/或元数据的转换或解密,将所述转换或根据密钥使用处理执行解密的结果,作为对数据库操作命令的应答,返回给数据库操作命令的发布源。
[本发明的有益效果]
根据本发明,有可能防止数据库设备的信息泄露并且改善处理的效率。另外,根据本发明,处理数据库操作而不改造应用的实现是有可能的。
附图说明
[图1]
图1为示出本发明示例性实施例的***配置的图示。
[图2]
图2为示出本发明示例性实施例的整体操作示例的图示。
[图3]
图3为示出本发明示例性实施例中数据库控制装置的配置的示例的图示。
[图4]
图4为示出本发明示例性实施例中数据库控制装置的配置的另一示例的图示。
[图5]
图5为描述本发明示例性实施例中密码协议信息存储单元的图示。
[图6]
图6为描述本发明示例性实施例中安全性配置信息存储单元的图示。
[图7]
图7为描述本发明示例性实施例中的密文表的图示;(A)为加密之前的表,(B)为密文表信息列表,(C)为加密之后的表,以及(D)-(F)为密文表。
[图8]
图8为示出本发明示例性实施例中应用应答装置的配置示例的图示。
[图9]
图9为描述本发明示例性实施例中的安全性配置信息临时存储单元的图示。
[图10]
图10为示出本发明示例性实施例中的密钥信息存储单元的示例的图示。
[图11]
图11为示出本发明示例性实施例中安全性配置装置中的处理流程的流程图。
[图12]
图12为描述图11的配置更新处理中带有加密的配置处理的流程图。
[图13]
图13为描述图11的配置更新处理中不带有加密的配置处理的流程图。
[图14]
图14为描述图11的配置更新处理中的保密级别配置处理的流程图。
[图15]图15为描述本发明示例性实施例的反映针对应用应答装置由安全性配置装置输入的配置对象和配置内容的处理流程的图示。
[图16]
图16为描述本发明示例性实施例的针对应用应答装置,向数据库中已经创建的表添加数据的处理的流程图。
[图17]
图17为描述本发明示例性实施例中的密码协议信息存储单元的示例的图示。
[图18]
图18为描述本发明示例性实施例中的安全性配置信息存储单元的示例的图示。
[图19]
图19为描述本发明示例性实施例中的安全性配置信息临时存储单元的示例的图示。
[图20]
图20为描述本发明示例性实施例中的列数据加密的示例的图示。
[图21]
图21为描述本发明示例性实施例中的数据保密级别配置处理的图示。
[图22]
图22为描述本发明示例性实施例中的数据保密级别配置处理的图示。
[图23]
图23为描述本发明示例性实施例中的数据操作处理的图示。
[图24]
图24为描述本发明示例性实施例中的数据操作处理的图示。
[图25]
图25为描述本发明示例性实施例中的数据操作处理(密码协议信息存储单元)的图示。
[图26]
图26为示出本发明示例性实施例中的数据库控制装置的配置示例的图示。
[图27]
图27为示出发明示例性实施例中数据库控制装置的另一配置示例的图示。
[图28]
图28为描述本发明示例性实施例中的保密级别配置处理的另一示例的流程图。
具体实施方式
首先给出对本发明的概述的描述,并且随后给出有关示例性实施例的描述。根据本发明的一种模式,提供了一种数据库设备(例如图1中的10),其包括:数据库(例如图1中的11),以及控制数据库操作的执行的数据库控制装置(例如图1中的12);以及经由网络(例如图1中的30)连接到数据库控制装置(12)的用户设备(例如图1中的20)。用户设备(20)包括:密钥使用装置(例如图1中的23),其管理密钥信息从而加密和解密数据和/或元数据(数据和元数据中的至少一个);安全性配置装置(例如图1中的26),其配置数据库中存储的数据和/或元数据的与安全性的配置有关的信息;第一存储单元(例如图1中的25),其存储由安全性配置装置配置的信息;以及应用应答装置(例如图1中的22)。应用应答装置(22)接收发布给数据库设备(10)的数据库操作命令,参考第一存储单元(25)中的信息,并且确定是否需要对由数据库操作命令处理的数据和/或元数据的加密。在需要加密的情况下,应用应答装置(22)将已经使用对应于数据和/或元数据的安全性的加密算法、通过密钥使用装置(23)的密钥信息而被加密的经加密数据和/或经加密元数据,作为数据库操作命令的数据和/或元数据,传送给数据库控制装置(12),以便致使数据库控制装置(12)执行数据库操作。在不需要加密的情况下,应用应答装置(22)将数据库操作命令按原样(作为未加密明文)传送给数据库控制装置(12),以便致使数据库控制装置(12)执行数据库操作。应用应答装置(22)接收由数据库控制装置(12)传送的数据库处理结果,并且在需要对数据库处理结果的数据和/或元数据的转换或解密的情况下,执行转换或根据密钥使用装置的密钥信息执行解密,并且将对数据库操作命令的应答返回给数据库操作命令的发布源(例如图1中的21)。
根据本发明的一个模式,安全性配置装置(26)针对数据库(11)中存储的数据或元数据执行下述中的至少一个:关于元数据的加密/非加密的配置或改变,关于数据的加密/非加密的配置或改变,以及表示数据的安全性级别的保密级别信息的配置或改变。元数据包括表的表名和列名。第一存储单元(25)可以配置成,对于数据库中存储的数据或元数据,保持下述中的至少一个:有关元数据是否被加密,数据是否被加密,表示数据的安全性级别的保密级别信息,以及对应于保密级别信息的加密算法的识别信息的信息。
根据本发明的一个模式,在数据库中所存储的包括表名和列名的元数据被加密的情况下,除了经加密数据名和列名,第一存储单元(25)将加密之前的明文的表名和明文的列名存储和保持为解密之后的表名和解密之后的列名。在需要加密由所输入的数据库操作命令指定的包括表名和列名的元数据并且元数据在第一存储单元(25)中被存储和保持为经加密表名和列名的情况下,应用应答装置(22)获得第一存储单元(25)中的经加密表名和列名以作为经加密元数据(这种情况下不执行由密钥使用装置的解密)。应用应答装置(22)可以具有这样的配置,其中在由数据库控制装置(12)传送的数据库处理结果的元数据中的表名和列名的至少一个被加密的情况下,获得第一存储单元的经解密表名和经解密列名的明文表名和明文列名的至少一个(这种情况下不执行由密钥使用装置的解密),并且将其作为对数据库操作命令的应答返回给发布源。
根据本发明的一个模式,应用应答装置(22)可具有如下配置,其中通过参考第一和/或第二存储单元,执行关于由数据库操作命令指定的表名和列名是否被加密的确定,并且在表名和列名的至少一个被加密的情况下,利用密文替换明文表名和列名的至少一个。
根据本发明的一个模式,数据库设备(10)可以被配置成提供有:第二存储单元(14),其存储和保持有关数据库中存储的包括表名和列名的元数据是否被加密、数据是否被加密、表示数据安全性级别的保密级别信息以及对应于保密级别信息的加密算法的识别信息的信息,以及第三存储单元(13),其至少存储和保持与数据库操作命令的处理内容、保密级别信息以及加密算法关联的密码协议识别信息。
根据本发明的一个模式,数据库(11)可以配置成起到第二和/或第三存储单元(14,13)的至少一个的作用,并且第二和/或第三存储单元中存储的被保持为数据库中的表的信息可以被存储为数据库中的表。
根据本发明,解密中使用的密钥信息由用户设备(20)管理,该用户设备为数据库用户,并且在用户设备(20)侧进行加密之后,数据/元数据被传送给数据库设备(10)从而存储于数据库(11)中。
另外,对于发布数据库操作命令(例如SQL(结构化查询语言))的用户侧上的数据库使用应用(21),有可能使用普通数据库操作命令作为透明数据库操作执行数据库操作,而应用不知晓数据的加密。结果,在数据库使用应用中,不需要与加密伴随的调整或改造(然而,并不禁止对数据库使用应用的调整或改造)。
<A.防止信息泄露>
通过提供存储用于数据加密和解密的密钥信息的存储单元(24)以及在用户设备(10)侧管理密钥信息的密钥使用装置(23),有可能防止由于从外部入侵数据库设备,或者数据库管理员等的不当行为或操作错误而引起的信息泄露。
<B.高效处理>
关于对应于作为操作对象的数据所要求的安全性级别(保密级别)的处理(加密算法)的选择和执行,由从数据库使用应用(图1中的21)输入的数据库操作命令执行。例如,对于安全性要求低的数据,处理比较快,但是使用针对较低安全性的加密算法。此外,对于不要求安全性(保密性)的数据,有可能通过排除对其加密而进行高效处理。
<C.对任意数据库操作的处理是有可能的>
响应于从数据库使用应用(图1中的21)输入的数据库操作命令,在经加密状态下对数据库中存储的经加密数据执行计算处理(加法或乘法等)。
众所周知的是,在诸如Paillier加密的加法准同态加密中,例如,对于明文m1的密文E(m1)以及明文m2的密文E(m2),作为m1+m2的密文E(m1+m2)下式成立:
E(m1)+E(m2)=E(m1+m2)。
也就是说,直接从m1的密文和m2的密文之和获得明文m1与明文m2的和m2+m2的密文E(m1+m2)。在诸如RSA加密、Elgamall加密等的乘法准同态加密中,对于明文m1和m2的乘积m1×m2的密文E(m1×m2),下式成立:
E(m1×m2)=E(m1)×E(m2),
并且从明文m1的密文和明文m2的密文的积直接获得明文m1×m2的密文E(m1×m2)。
在加密算法为上述准同态加密的情况下,经加密数据按原样的计算可以应对加法或乘法,但是无法应对诸如加法、减法、乘法、除法或逻辑运算的复杂操作。因此,在通过按原样计算数据库中存储的经加密数据而获得数据库操作命令的计算的情况下,数据库中记录的经加密数据被读取并且返回到用户设备端,在解密成明文之后在用户设备侧上执行计算处理,并且获得的明文计算结果被返回到数据库操作命令的发布源的数据库使用应用。或者,在需要更复杂处理的情况下,可以执行将在数据库侧对经加密数据的处理以及在用户设备侧上对明文的处理组合的多个处理,从而具有如下连续执行,其中通过在用户设备侧上在解密为明文之后执行计算处理获得的明文计算结果被重新加密并且传送到数据库侧,并且在数据库侧执行对于经加密数据的计算处理。以此方式,通过将对经加密数据的计算处理和对明文数据的计算处理组合,则有可能应对任意数据库操作。
<D.保密级别的配置>
在用户设备侧存储于数据库中的信息是否被加密可以例如基于表、列或列数据而被配置,并且有可能根据数据操作内容和所要求的安全性(保密级别)来选择处理程序(加密算法)。以此方式,有可能时限处理效率。
<E.避免应用改造>
在实施本发明中,数据库操作命令(例如SQL命令等)的语句结构的修改是不需要的,并且在数据库使用应用(图1中的21)中,数据库操作命令可以按原样发布(命令语句结构,以及命令指定的表名、列名、数据等,都是明文)。在数据库使用应用(图1中的21)中,当发布诸如表(列表)创建、列添加、行添加或数据计算的数据库操作命令时,其被输入到应用应答装置(图2中22)。在应用应答装置(图1中的22)中,选择对应于数据安全性的加密算法被选择,并且在利用所讨论的加密算法执行加密之后,将数据传送给数据库设备(10)。通过与数据库使用应用(21)分离地提供安全性配置装置(26)以对数据库(11)中存储的数据执行安全性配置,就不需要对使用数据库的现有应用的改造。也就是说,在实施本发明时,不需要由应用执行数据加密、解密、安全性配置等,并且有可能处理发布数据库操作命令的任意现有应用(有可能按原样使用现有应用)。
应当指出,专利文献PTL3公开一种数据库访问***,其中用户终端配备有:私有密钥生成装置,其使用公共密钥生成私有密钥;存储装置,其存储私有密钥;加密装置,其基于公共密钥来加密数据;以及解密装置,其使用私有密钥解密经加密数据,其中有可能精确地防止与第三方从外部入侵或者管理员存储和管理数据相关的数据泄露。专利文献PTL3公开了上文在A中描述的防止信息泄露的实施,但是没有公开上述点B至E。
<示例性实施例>
在下文参考附图给出示例性实施例的描述。
<***配置示例>
图1为描述本发明一个示例性实施例的图示。参考图1,数据库设备10和用户设备(用户装置)20经由诸如LAN(局域网)、WAN(广域网)或因特网的网络30连接。数据库设备10配备有数据库11、数据库控制装置12、密码协议信息存储单元13和安全性配置信息存储单元14。
用户设备20配备有数据库使用应用21、应用应答装置22、密钥使用装置23、密钥信息存储单元24、安全性配置信息临时存储单元25、安全性配置装置26以及输入/输出设备27。尽管此并不存在具体限制,但是用户设备20例如是在数据处理单元(CPU,处理器)中实施,该数据处理单元配备有用于通过连接到网络30而实现与数据库设备10通信连接的功能。这种情况下,数据库使用应用21为在数据处理单元中操作的应用程序。再者,尽管没有具体限制,应用应答装置22、密钥使用装置23和安全性配置装置26可以由在数据处理单元中操作的程序(控制程序等)实施。或者,对于在瘦客户端***等中实施的情形,有可能在服务器中引入虚拟技术,从而在服务器中的虚拟机中实施该用户设备,并且有可能在服务器中的虚拟机中执行从瘦客户端终端向数据库使用应用的输入。
应当指出,在图1中,配置用户设备20的各装置布置在一个块中,但是如下配置也是可能的,其中例如这些装置经由诸如局域网等的通信网络而分开安装。类似地,在数据库设备10中,数据库11和数据库控制装置12被布置在一个块中,但是显然它们也可以分开布置。
为了简化描述,图1示出其中提供了一个用户设备20的示例,但是显然有可能具有经由网络30连接到数据库设备10的多个用户设备20。此外,如下配置是有可能的,其中被连接用于与数据库设备10的通信的一个应用应答装置22被共同地提供给多个用户设备20。这种情况下,多个用户设备20的每一个配置成配备有用于每个用户的密钥使用装置23和密钥信息存储单元24,密钥信息在用户端存储和管理,并且安全性配置装置26也被提供,并且该配置经由公共应用应答装置22连接到数据库设备10。安全性配置信息临时存储单元25可以布置成集成在用于多个用户设备20的一个存储装置(***)中,或者可以分散在单独用户设备20中。
<数据库设备>
接着,给出对数据库设备10的元素的概述的描述。数据库控制装置12提供有在数据库11上执行操作(数据库操作命令的数据库操作)的功能以及执行密码协议的功能。
安全性配置信息存储单元14例如将加密中使用的加密算法的信息作为数据库11中存储的数据的安全性配置的信息而存储和保持。安全性配置信息存储单元14例如存储和保持:
-数据库11中存储的包括表名和列名的元数据是否被加密,
-数据是否被加密,
-表示数据安全性级别的保密级别信息,以及
-用以在执行数据加密时识别加密算法的加密算法识别信息。
密码协议信息存储单元13存储用于加密数据库11的数据的密码协议信息。例如,存储和保持下述内容:
-数据库操作命令的处理内容(简单匹配、添加等),以及对应于数据所要求的安全性级别(保密级别)的加密算法的识别信息,以及
-密码协议的识别信息。
密码协议信息存储单元13在数据库11中存储用于根据有关处理内容而选择加法准同态加密算法以用于密文数据按原样加法计算处理的信息。
数据库控制装置12接收由应用应答装置22传送的数据库操作命令(明文数据库操作),或者密码协议执行指令,利用明文数据或密码协议执行数据库操作,并且将处理结果传送给应用应答装置22。数据库控制装置12可以实施为数据库服务器,同时用户设备(10)作为客户端。
<用户设备>
接着,给出数据库设备20的各元素的概述的描述。数据库使用应用21发布数据库操作命令。应当指出,尽管没有具体限制,但数据库使用应用21由发布用于执行数据库操作的数据库操作命令(SQL(结构化查询语言)命令)的应用形成。或者,数据库使用应用21可以实施为GUI(图形用户接口)环境,其针对数据库设备10的数据库控制装置12,经由应用应答装置22在屏幕上执行诸如表定义、数据添加、检索、计算等的操作。这种情况下,用户在屏幕上选择的操作被转换为对应的SQL命令并且被输入到应用应答装置22。数据库使用应用21可以按原样使用现有应用。这并不表示数据库使用应用21不必新开发,而是表明针对新开发或改造或改版数据库使用应用21而言,用于数据加密、解密以及数据安全性配置的信息的配置不需要由有关数据库使用应用21执行。
安全性配置装置26执行用于数据安全的信息的配置。
密钥使用装置23参考密钥信息存储单元24以生成执行诸如数据加密和解密的各密码协议所需的密钥。
输入/输出设备27包括诸如键盘、鼠标、触摸板等的输入设备以及诸如显示设备或文件设备(打印机)的输出设备,并且执行来自数据库的用户的信息输入,或者输出或显示输出信息。应当指出,图1示出输入/输出设备27,其包括诸如触摸板或平板显示器的输入/输出集成装置,或者输入和输出分离的装置。
安全性配置信息临时存储单元25存储安全性配置信息存储单元14中存储的信息,以及用于识别将***作的数据的信息。例如,对于为识别数据库11中的数据的信息的相关元数据(例如表名、列名等),在相关元数据被加密情况下:
经加密元数据,以及
经解密元数据(明文元数据)
被关联且被存储和保持。
当数据库操作命令从数据库使用应用21输入时,应用应答装置22参考安全性配置信息临时存储单元25,安全性配置信息存储单元14和密码协议信息存储单元13,并且与数据库控制装置12和密钥使用装置23协作以执行:
-用密文元数据替换诸如表名、列名等的元数据,
-根据数据库操作的内容(处理内容)的密码协议,或者
-普通数据库操作。
例如,在由数据库使用应用21输入的数据库操作命令是新创建的并且动态地配置或修改数据安全的需求被生成的情况下,应用应答装置22调用安全性配置装置26,并且在执行安全性配置信息的配置后,通过数据库控制装置12在数据库11中创建表。
就此而言,安全性配置装置26可以进行屏幕显示,向用户推荐推荐安全性配置信息的输入。针对在创建新表时安全性配置信息的输入,除了以上所述内容之外,各种模型类型是有可能的。例如,在数据库使用应用21发布数据库操作命令之前,可以由安全性配置装置26提前配置诸如所讨论的新创建表名是否被加密的安全性配置信息。或者,关于数据库11中新创建的表,可以针对表名的模板来配置保密级别和密码协议识别信息(默认信息),在该模板中部分的表名由通配符等替换,并且在新创建表与包括通配符的表名匹配的情况下,可以由对应于默认保密级别的密码协议执行加密。
在需要由从数据库使用应用21输入的数据库操作命令加密将***作的数据的情况下,应用应答装置22执行数据加密。就此而言,应用应答装置22使用密钥信息执行加密,并且传送给数据库控制装置12。应用应答装置22将数据库控制装置12返回的数据库操作结果(处理结果)返回到数据库使用应用21。尽管此处没有具体限制,数据库使用应用21将数据库操作结果输出到输入/输出设备27。
<操作概述>
给出图1所示***的操作示例的概述。在由数据库使用应用21输入并且经由应用应答装置22转发的数据库操作命令为针对其存在可以按原样处理密文的密码协议的操作(诸如查询等)的情况下,数据库控制装置12对密文按原样执行处理(查询)。数据库控制装置12将数据库11中密文的处理结果作为密文返回到应用应答装置22。应用应答装置22接收其中密文由密钥使用装置23解密为明文的结果,并且将明文数据库操作结果返回给数据库使用应用21。
在由数据库使用应用21输入的数据库操作命令为其中难以对数据库中的密文进行按原样处理的操作(例如,诸如加法、减法、乘法、除法或逻辑运算的复杂算术运算)的情况下,数据库控制装置12从数据库11作为密文提取将***作的数据,并且将其传送到应用应答装置22而不执行计算操作。应用应答装置22使用密钥使用装置23的用于解密的密钥来解密由数据库控制装置12传送的经加密数据,对获得的明文执行由数据库操作命令指定的操作,并且将操作结果返回到数据库使用应用21。
在诸如明文算术的复杂算术运算中,部分的算术运算可以作为密文被处理的情况下,数据库控制装置12将通过利用密文执行部分算术运算获得的算术结果(密文)返回给应用应答装置22。在应用应答装置22中,具有密文的算术结果可以由密钥使用装置23解密为明文,并且复杂算术运算的其余部分可以利用明文执行。这样,与在解密所有数据项目之后执行复杂算术运算的情形相比,处理更高效。
通过参考安全性配置信息存储单元14,对于由数据库使用应用21输入的数据库操作命令,应用应答装置22确认对于数据库11中的数据(其为所输入的数据库操作命令的操作对象)是否需要进行加密保护(是否需要加密)。在不需要加密时,执行类似于普通数据库操作的处理。通过参考安全性配置信息临时存储单元25,在数据(其是从数据库使用应用21输入的数据库操作命令的操作对象)的元数据(例如SQL中表名或列名)被加密的情况下,应用应答装置22可以识别将***作的数据。
如上所述,根据本示例性实施例,通过参考所输入的数据库操作命令的安全性配置信息,应用应答装置22可以根据将***作的数据库11中所要求的安全性级别而确定处理。因而对于安全性要求低的数据,有可能通过使用比较快但具有安全性低的加密算法进行高效处理。
根据本示例性实施例,由于在数据库11中记录的数据之中,对要求安全性的数据进行加密,因此有可能防止所讨论的数据的信息泄露。通过与应用应答装置22协作,对任意输入的数据库操作命令的应答都是有可能的。
图2的(A)和(B)分别为描述本示例性实施例中的应用应答装置22和数据库控制装置12的处理操作的流程图。
<应用应答装置的操作>
给出应用应答装置22的处理操作的描述。参考图2的(A),应用应答装置22执行下述步骤。
步骤1:从数据库使用应用21输入数据库操作命令(SQL)。
步骤2:通过参考安全性配置信息临时存储单元25,确定元数据的有关加密/非加密,该元数据为诸如是由数据库操作命令指定为操作对象的表名或列名。
步骤3:在诸如表名或列名的元数据被加密存储于数据库中的情况下,执行替换处理以利用密文替换被数据库操作命令指定为操作对象的元数据。
步骤4:参考安全性配置信息存储单元14,确定由数据库操作命令指定为操作对象的数据是否需要加密。
步骤5:在不需要数据加密的情况下,将数据库操作命令传送给数据库控制装置12。
步骤6:从数据库控制装置12接收数据库操作结果。
步骤7:进行关于是否需要转换数据库操作结果的确定。步骤7的确定被执行,因为来自数据库控制装置12的操作结果可以作为密文返回。
步骤8:在需要转换(或解密)数据库操作结果的情况下,使用密钥使用装置23的解密密钥执行转换。转换处理(解密)执行使用密钥使用装置23的解密密钥的转换,或者执行参考安全性配置信息临时存储单元25的经解密表名或经解密列名的转换,其将在下文描述。
步骤14:将操作结果(或转换结果)输出到数据库使用应用21。
另一方面,在不需要步骤4的数据加密的情况下,应用应答装置22执行下述处理。
步骤9:参考密码协议信息存储单元13,由有关加密算法执行加密处理。
步骤10:应用应答装置22将密码协议执行指令(密码协议过程执行的请求)传送给数据库控制装置12。
步骤11:由数据库控制装置12执行密码协议。
步骤12:从数据库控制装置12接收密码协议的执行结果。
在步骤11和12中,应用应答装置22可以解密来自数据库控制装置12的密文计算结果以给出明文,并且通过协作地执行利用明文的部分计算以及加密将被传送给数据库控制装置12的部分计算结果以由数据库控制装置12利用密文执行计算,由此进行该执行。
步骤13:使用密钥使用装置23的密钥信息执行对密码协议的执行结果进行解密的转换处理。对于密码协议的执行结果,通过使用密钥使用装置23的密钥信息进行解密,或者参考安全性配置信息临时存储单元25的经解密表名和经解密列名的解密,由此执行转换处理。
步骤14:将转换结果输出到数据库使用应用21。
<数据库控制装置的操作>
参考图2的(B),在数据库控制装置12中发生如下操作:
步骤1:数据库控制装置12等待接收来自应用应答装置22的指令。
步骤2:当从应用应答装置22接收数据库操作命令时,执行数据库操作命令。
步骤3:将数据库操作结果返回到应用应答装置22。
步骤4:当从应用应答装置22接收密码协议处理请求时,执行密码协议(对应于图2(A)中步骤11)。
步骤5:将密码协议执行处理结果返回给应用应答装置22。
<示例性实施例的操作效果>
如图2所示,通过数据库控制装置12和应用应答装置22之间的协作,防止了数据库设备10中的信息泄露,并且实现了对任意数据库操作的处理以及高效的过程执行。
在用户设备20中,执行用于加密和解密的密钥信息的管理,数据库11中加密的数据被转发给用户设备20,并且在用户设备11侧执行解密处理。结果,抑制了数据库设备10中信息泄露的可能性的增加。
安全性配置信息存储单元14被提供以存储有关数据库11中的数据是否被加密的信息以及所需安全性级别的信息,并且当数据库操作命令被输入时,应用应答装置22参考安全性配置信息存储单元14,确定是否需要加密作为操作对象的数据,并且如果不需要数据加密(普通数据库操作的情形),则不执行加密处理(图2的(A)中步骤5和6)。以此方式,通过排除不要求保密的数据成为加密的对象,有可能减小当所有数据库操作被加密时出现的对处理性能的影响。
针对用于识别数据库中的数据的元数据(例如在SQL中,表名或列名),对应于经加密元数据以及经解密元数据的信息被保持在用户设备20中。因此,即使元数据在数据库11中被加密,有可能容易地识别出作为操作对象的数据。可以避免由于加密元数据引起的对处理性能的影响。
<数据库控制装置的配置>
接着,给出有关上述数据库控制装置12的详细描述。图3为示出图1的数据库控制装置12的配置的示例的图示。参考图3,数据库控制装置12配备有数据库操作单元121、密码协议过程执行单元122、处理/通信控制单元125、密码协议信息操作单元123和安全性配置信息操作单元124。
密码协议过程执行单元122执行对经加密数据库11的检索、添加等。
数据库操作单元121在数据库11上执行数据库操作(表创建、数据添加或删除、数据检索、数据计算等)。对于处理/通信控制单元125从应用应答装置22接收数据库操作命令以针对数据库11明文执行存储、添加、删除或更新的情形,将明文数据从处理/通信控制单元125被按原样转发给数据库操作单元121,并且数据库操作单元121利用明文数据执行数据库操作。
应当指出,密码协议过程执行单元122对在经加密状态下对数据按原样执行操作,但是对数据库11的访问是经由数据库操作单元121执行。例如,对于在从数据库11中的表A获得列B和C的命令:SQL查询
SELECT B,C FROM A
其中数据库11中的表A中的列B和C被加密,数据库操作单元121利用列B和C在经加密状态下执行检索处理而没有任何改变,并且将检索结果返回给密码协议过程执行单元122。
处理/通信控制单元125经由网络30执行与应用应答装置22的通信,以及数据库控制装置12中的各单元的控制。
密码协议信息操作单元123针对密码协议信息存储单元12执行密码协议信息的读和写。针对来自应用应答装置22的对密码协议信息存储单元13的访问请求(读取请求),密码协议信息操作单元123访问密码协议信息存储单元13,并且经由处理/通信控制单元125将读取的密码协议信息返回到应用应答装置22。
安全性配置信息操作单元124执行从安全性配置信息存储单元14读取安全性配置信息并且将其写入安全性配置信息存储单元14。针对来自应用应答装置22的对安全性配置信息存储单元14的访问请求(读取请求),安全性配置信息操作单元124访问安全性配置信息存储单元14,并且经由处理/通信控制单元125将从安全性配置信息存储单元14读取的安全性配置信息返回给应用应答装置22。
<数据库控制装置的第一变型示例>
图4为示出图3的变型示例的图示。在图4所示示例中,密码协议信息和安全性配置信息作为密码协议信息表111和安全性配置信息表112被存储在数据库11中。通过向数据库操作单元121发布数据库操作命令(将表名指定为密码协议信息表的SQL命令),图4的密码协议信息操作单元123访问数据库11中的密码协议信息表111的信息。类似地,安全性配置信息操作单元124经由数据库操作单元121访问数据库11中安全性配置信息表112的信息。
<数据库控制装置的第二变型示例>
图26为示出图1的数据库控制装置12的另外配置示例的图示。参考图26,数据库控制装置12配备有数据库控制单元121、密码协议过程执行单元122、处理/通信控制单元125、密码协议信息操作单元123、安全性配置信息操作单元124以及加密计算单元126。与图3的区别在于,提供了加密计算单元126。数据库操作单元121、密码协议过程执行单元122、处理/通信控制单元125、密码协议信息操作单元123以及安全性配置信息操作单元124类似于图3,并且省略对其的描述。
在加密算法涉及公共密钥加密的情况下,应用应答装置22将加密中使用的公共密钥传送给数据库控制装置12,并且由数据库控制装置12的加密计算单元126执行加密。在数据库11中存储的数据例如被加密存储的情况下,在图3的配置中,待加密的数据必须从数据库设备10侧发送到用户设备20侧从而在用户设备20端进行加密,并且经加密数据必须从用户设备20传送到数据库设备10。根据图26的配置,当数据库11中存储的数据被加密存储时,待加密的数据由加密计算单元126加密。因此,不需要从数据库设备10侧到用户设备20侧的传输。结果,可以期望抑制数据库设备10和用户设备20之间通信量的增加的效果。
<数据库控制装置的第三变型示例>
图27为示出图1的数据库控制装置12的配置的另一示例的图示。参考图27,针对图26的配置,与图4类似,本示例性实施例在数据库11中配备有密码协议信息表111和安全性配置信息表112。加密计算单元126类似于图26,并且省略对其的描述。
<密码协议信息存储单元的示例>
图5为描述图1的密码协议信息存储单元13的示例的图示。在图5中,处理内容标识符涉及用于识别数据库操作的处理内容的信息。尽管此处没有具体限制,在图5中,配置了诸如“简单匹配”(仅仅检查是否与指定字符串匹配)、“添加”等的数据库操作的识别代码。
安全性级别指示数据的安全性(保密)性的程度,并且尽管没有具体限制,示例具有″高″、“中”或″低″中任何其一的配置。也可以将保密级别设计成数值。
加密算法标识符代表数据的加密中使用的加密算法。密码协议标识符维持有关处理内容标识符、保密级别以及加密算法标识符的各个信息的保密性,并且存储可执行密码协议的标识符。
当在对由″SE1″的加密算法加密的数据执行″简单匹配"处理情况下,保密级别为“中”时,例如图5的第三行的″SE1_SS_M″的密码协议由数据库控制装置12的密码协议过程执行单元122执行。"SE1_SS_M″中的SS(简单匹配)代表简单匹配,并且M指示保密级别为中等(中)。
密码协议信息操作单元123从密码协议信息存储单元13读取密码协议标识符,并且通过对处理内容标识符、保密级别和加密算法标识符进行解码,得到数据的处理内容、保密级别和加密算法。
应当指出,AES(先进加密标准)为在美国被指定为新标准的常见密钥加密方案。HE1指示准同态加密(HE)(这种情况下,加法准同态加密、Paillier加密)。SE1指示公共密钥方案的可检索加密(SE)。
应当指出,如图5所示,即使处理内容涉及相同的加法,可以被设置并非准同态加密的加密算法AES(其中密文按原样加法计算是不可能的)。这种情况下,数据库11的密文被传送给应用应答装置22,并且在应用应答装置22中,文本由加密算法AES利用密钥使用装置23来解密,并且加法计算对作为的明文数据执行。
<安全性配置信息存储单元的示例>
图6为示出安全性配置信息存储单元14的示例的图示。参考图6,安全性配置信息存储单元14包括下述字段:数据库11中创建的表名、表名是否被加密(表名被加密?)、列名、列名是否被加密(列名被加密?)、列数据是否被加密(列数据被加密?)、列数据保密级别以及在列数据的加密中使用的加密算法标识符(列数据加密算法标识符)。
在图6的安全性配置信息存储单元14中,第一行中“雇员列表”的表名例如未被加密,列名“工作地点”未被加密,列数据被加密,列数据的安全性级别为“中”,并且加密算法标识符为"SE1″。针对第三行中“雇员列表”的表名,列名被加密,列数据被加密,列数据的保密级别为″高″,并且加密算法标识符为“AES”。第四行中的表名被加密,并且列名和列数据未被加密(在有关字段中配置了空(NULL))。另一方面,第五行的表名未被加密,列名被加密,并且列数据未被加密。
诸如表名、列名等的元数据的加密可以由与加密列数据的加密算法类似的加密算法完成。在安全性配置信息存储单元14中,由相同加密算法加密的表名、列名和列数据彼此关联并且形成一个条目。或者,加密表名和列名中使用的加密算法可以是与加密列数据中使用的加密算法不同的加密算法。或者,加密表名和列名中使用的加密算法可以是针对多个表名和列名共同决定的指定加密算法。
安全性配置信息存储单元14例如保持与数据库11中记录的所有表有关的安全性配置信息。应当指出,安全性配置信息存储单元14的各字段的配置内容是针对用户设备20的安全性配置装置26,基于由用户(用户设备20的管理员)配置的信息的。
<数据库中表的示例>
图7为描述数据库11中的表信息的图示。如同上述的图6中所示安全性配置信息存储单元14中的列“工作地点”那样,数据可以由多个加密算法加密。因此,由多个加密算法加密的密文的本体由另一个表管理。
对于表名、列名和加密算法,图7的(B)的密文表信息列表关联并且保持如下信息:
作为存储密文本体的表的密文表的名称(密文表名),
加密算法,以及
参数(赋给加密算法的参数)。
作为加密算法的参数,图7的(B)中的加密算法SE1(可检索加密:公共密钥)具有在密钥生成算法(其输出公共密钥和私有密钥)中使用的安全性参数。加密算法AES的参数可以是密钥长度、明文块长度、回合数等。(在图7的(B)中参数未被配置。这种情况下使用默认值。)
对于图7的(B)中密文表信息列表的第一行的表名“雇员列表”:
列名为“工作地点”,
加密算法为“AES”,
参数为“空”,以及
密文表名为“ciphertext_AES_1”。
对于图7的(B)中密文表信息列表的第二行的表名“雇员列表”:
列名为“工作地点”,
加密算法为“SE1”,
参数为“0x16a...”(0x指示十六进制表示),
密文表名为“ciphertext_SE1_1”。
其中密文表名为“ciphertext_AES_1”和“ciphertext_SE1_1”的列表分别示于图7的(D)和(E)中。
在其中存储了加密之前的明文的列表(图7的(A)中的雇员列表)的列中,序号被存储为明文。按照1、2、...的序号被附加到在图7的(A)中表“雇员列表”的列“工作地点”中的“总部”、“多摩川”等。
如图7的(C)所示,在加密之后的雇员列表中,列名“公司职位”被加密为“0xa638...”,并且列名“工作地点”和列名″0xa638...″的序号对应于指示经加密内容的ID。
在由图7的(D)中由加密算法AES加密的ciphertext_AES_1列表中,ID=1和2的密文“0x3d8...”和“0x962...”为关于通过对列名“工作地点”执行AES加密而获得的“0xa638...”(图7的(A)中″总部"和″多摩川"的经加密数据)的序号ID=1和2的数据的密文。
在由图7的(E)中由加密算法AES加密的ciphertext_AES_2列表中,ID=1和2的密文“0x61b...”和“0xa53...”为关于通过加密列名"公司职位″而获得的"0xa638...″,(图7的(A)中"部长″和″主任″的经加密数据)的序号ID=1和2的数据的密文。
在图7的(F)中的由加密算法SE1加密的ciphertext_SE1_1列表中,ID=1和2的密文″0x8ec...″和″0xA7c0...″为关于通过加密列名″公司职位"而获得的"0xa638...″(图7的(A)中″部长″和″主任″的经加密数据)的序号ID=1和2的数据的密文。
如上所述,关于图7的(A)中雇员列表的列名“工作地点”的数据″总部″和″多摩川″,在加密之后,序号ID=1,2,...被分别附加到字段“工作地点”,如图7的(C)所示。存储经加密数据的密文表以图7的(D)-(F)所示的格式,即以存储分别对应于序号1,2,...的密文的格式,被存储于数据库11中。
因而,本示例性实施例中:
-用于识别存储密文本体的表的信息,以及
-加密算法参数,
由密文表信息列表(图7的(B))管理。密文表信息列表(图7的(B))可以存储于安全性配置信息存储单元14。或者,密文表信息列表(图7的(B))可以由安全性配置信息存储单元14以外的存储单元管理。
<应用应答装置的配置示例>
图8为示出图1的应用应答装置22、安全性配置装置26和密钥使用装置23的配置示例的图示。参考图8,应用应答装置22配备有处理/通信控制单元221、密码协议过程执行单元222、数据库操作转换处理单元223、加密计算单元224以及安全性配置信息操作单元225。
安全性配置装置26配备有配置显示单元261和配置输入单元262。配置显示单元261和配置输入单元262针对图1的输入/输出设备27执行输出和输入。特别地,针对形成输入/输出设备27的显示装置,执行操作屏幕(菜单)的显示、菜单选择以及输入信息的输入。
密钥使用装置23配备有加密计算单元231和密钥信息管理单元232。
处理/通信控制单元221执行与数据库设备10的数据库使用应用21、安全性配置装置26、密钥使用装置23和数据库控制装置12的通信,并且执行对应用应答装置22中各单元的控制。
加密计算单元224例如使用密钥信息中并非保密的信息来执行加密计算,诸如通过公共密钥加密的加密计算。
数据库操作转换处理单元223根据作为操作对象的数据的保密级别,针对从数据库使用应用21输入的数据库操作命令,执行密码协议处理,或者在确定普通数据库操作并且执行加密的情况下,执行对密码协议的转换处理(对应于图2的(A)中步骤4和9的处理)。
数据库操作转换处理单元223将来自数据库控制装置12的密码协议处理或者由普通数据库操作获得的处理结果转换为对应于所输入的普通数据库操作命令的处理结果(对应于图2的(A)中步骤7、8和13的处理)。
密码协议过程执行单元222在访问数据库11的数据库控制装置12中对密文按原样执行检索,或者根据处理内容,通过与数据库控制装置12通信而执行诸如加法、乘法等的密码协议处理(对应于图2的(A)中步骤11的处理)。
安全性配置信息操作单元225经由处理/通信控制单元221获得数据库设备10的安全性配置信息存储单元14中存储的信息(包括有关元数据是否被加密的信息),并且创建用于识别作为操作对象的数据的辅助信息。安全性配置信息操作单元225针对安全性配置信息临时存储单元25执行信息的读和写。
通过保持(缓存)数据库设备10的安全性配置信息存储单元14中保持的信息,在用户设备20的安全性配置信息临时存储单元25中,减少了从应用应答装置22到数据库设备10的查询(流量),并且加速了用户设备20的应用应答装置22的处理。
在安全性配置装置26中,配置显示单元261将安全性配置信息(诸如经由应用应答装置22针对数据库11中存储的数据配置的保密级别信息)显示和输出到输出设备(图1中的27)。配置输入单元262经由输入设备27接收与数据的保密级别信息有关的输入信息,经由应用应答装置22在安全性配置信息临时存储单元25中反映输入配置信息,并且还在数据库设备10的安全性配置信息存储单元14中反映这一点。就此而言,输入配置信息可以同时被写到安全性配置信息临时存储单元25和安全性配置信息存储单元14,或者可以仅仅被写到安全性配置信息临时存储单元25,并且随后被写到安全性配置信息存储单元14。
在密钥使用装置23中,加密计算单元231使用经由密钥信息管理单元232读取的密钥信息(私有密钥)来执行加密计算,诸如密文的解密处理。
在获得作为有关密钥信息所有者的用户(例如,数据库使用应用21的用户,或者用户设备侧的***管理员)的认证之后,密钥信息管理单元232从密钥信息存储单元24读取作为数据库操作对象的数据以及对应于其安全性配置信息的密钥信息。密钥信息管理单元232将密钥信息写到密钥信息存储单元24。
<安全性配置信息临时存储单元的示例>
图9为示出图1的用户设备20侧的安全性配置信息临时存储单元25的内容的示意性示例的图示。在安全性配置信息临时存储单元25中,"经解密表名″和“经解密列名”作为用于识别数据库操作对象的辅助信息被添加到图6示出的数据库设备10的安全性配置信息存储单元14的内容中。其它信息与图6的安全性配置信息存储单元14的内容相同。
针对图9的表名“雇员列表”,来自“经解密列名”的经加密列名″0xa638..."例如指示经解密明文列名为″公司职位"。这代表图7的(A)中表“雇员列表”的列″公司职位″和图7的(C)中经加密列名″0xa638..."之间的对应关系。
在图9中,例如在参考数据库11中“xx列表”执行数据库查询的情况下,需要参考数据库11中经加密表名“0x30c8a4...”。
在表名“xx列表”被包括在从数据库使用应用21输入的数据库操作命令(例如SQL命令:select co1umn name form“xx1isting”)的情况下,安全性配置信息操作单元225从安全性配置信息临时存储单元25提取对应于“xx列表”的经加密表名“0x30c8a4...”,并且经由密码协议过程执行单元222和处理/通信控制单元221,将与经加密表名“0x30c8a4...”有关的数据库操作命令(从“0x30c8a4...”选择列名)经由处理/通信控制单元221,传送给数据库控制装置12。
<密钥信息存储单元的示例>
图10为示出密钥信息存储单元24的示例的图示。密钥信息存储单元24包括加密算法标识符和密钥信息。在图9所示示例中,加密算法“AES”在加密或解密数据中使用的密钥信息为"0x51a4...″。加密算法HE1(其为公共密钥加密)的密钥信息为″0xb316...″,并且密钥信息包括在加密或准同态计算处理中使用的公共密钥信息以及解密中使用的私有密钥信息。
<安全性配置装置的处理>
下文给出参考图1和图8所描述的安全性配置装置26的处理程序的详细描述。在用户设备20中,安全性配置装置26配置与数据库11的数据有关的安全信息。
图11为示出安全性配置装置26的处理程序的示例的流程图。使用现有应用例如作为数据库使用应用21。在本示例性实施例中,为了避免改造现有应用,配置数据保密级别的处理是通过由安全性配置装置26输入保密级别来实施的。参考图11给出安全性配置装置26的处理流程的描述。
步骤1:获得安全性配置信息:
对应用应答装置22做出对数据库11的当前安全性配置信息的请求,以获得安全性配置信息。应用应答装置22参考数据库设备10的安全性配置信息存储单元14或用户设备20的安全性配置信息临时存储单元25,从而获得与作为数据库操作对象的数据有关的安全性配置信息,并且将此信息返回到安全性配置装置26。
在从安全性配置信息存储单元14获得安全性配置信息(见图9)的情况下,应用应答装置22为安全性配置信息临时存储单元25创建将被返回的数据格式(见图6)。也就是说,针对从安全性配置信息存储单元14获得的安全性配置信息(见图6),对于元数据(表名和列名)被加密的部分,经加密元数据使用密钥使用装置23来解密,并且创建明文元数据并将其返回到安全性配置装置26。或者,针对从安全性配置信息存储单元14获得的安全性配置信息(见图9),对于元数据(表名和列名)被加密的部分,将经解密表名和列名的字段的信息(明文元数据)被返回到安全性配置装置26。
在步骤1中获得安全性配置信息时,也可能有选择(部分地)获得和显示与表名有关的阶段信息或者与特定表(而不是整个数据库11)有关的信息。
步骤2:安全性配置信息显示:
安全性配置装置26的配置显示单元261在输入/输出设备27中显示从应用应答装置22返回的安全性配置信息。
步骤3:配置对象和配置内容输入:
安全性配置装置26的配置输入单元262接收由数据库的用户从输入/输出设备27输入的配置对象(例如表名、列名)和配置内容(例如表名是否被加密、列名是否被加密、列数据的保密级别)。
步骤4:配置更新处理:
安全性配置装置26的配置输入单元262将所输入的配置对象和配置内容传送给应用应答装置22并且请求配置改变(更新)。安全性配置的改变由数据库控制装置12的安全性配置信息操作单元124以及应用应答装置22的安全性配置信息操作单元225写到安全性配置信息存储单元14和安全性配置信息临时存储单元25的每一个中。
应当指出,针对图11所示安全性配置装置26的处理程序的执行计时,在数据库11中新创建表的情况下,用户可以在数据库使用应用21发布数据库操作命令之前提前执行配置。或者,当数据库操作命令由数据库使用应用21发布时,在有关表名未记录于安全性配置信息存储单元14或安全性配置信息临时存储单元25的情况下,通过安全性配置装置26进行屏幕显示,提示用户可以输入信息,诸如表名和列名、表名是否被加密、列名是否被加密、列数据的保密级别等。对于改变数据库11中创建的表等的安全性配置的情况,用户经由安全性配置装置26改变配置。就此而言,在安全性配置装置26中,用于输入/输出设备27的GUI(图形用户接口)是可选的,但是例如作为操作菜单,可以有选择执行表列表显示命令等,所有或一些表名的列表可以显示于屏幕上(在表名被加密的情况下,参考安全性配置信息临时存储单元25中的经解密表名以显示明文表名),并且用户可以选择所讨论的表以及选择配置操作从而更新配置信息。
<配置更新处理(改变为加密)>
图12为描述图11的步骤4的详细配置更新处理的流程图。此处,给出了有关配置元数据(表名、列名)使得其加密为″是″的处理的说明。此处,所讨论的元数据(表名、列名)在安全性配置信息存储单元14和安全性配置信息临时存储单元25中被配置成加密为“否”。
步骤0:安全性配置装置26从输入/输出设备27接收配置对象的元数据(表名、列名)和配置内容(加密″是″)。
步骤1:创建对象元数据的密文:
从安全性配置装置26接收配置更新请求的应用应答装置22使用密钥使用装置23来创建作为配置对象的元数据(表名和/或列名)的密文。应用应答装置22参考安全性配置信息临时存储单元25或安全性配置信息存储单元14以获得对应于所讨论的元数据的加密算法信息,由加密计算单元231对元数据(表名和/或列名)进行加密,并且创建经加密元数据。
步骤2:将数据库的明文元数据改变为密文元数据:
从安全性配置装置26接收进行配置改变的指令的应用应答装置22对数据库控制装置12发出请求,请求用上文所述步骤1中创建的密文元数据替换数据库11中作为配置对象的元数据。数据库控制装置12利用经加密元数据替换数据库11中的明文元数据。本发明不以任何具体方式受到特定实施方式所限制,并且在将表名改变为密文的情况下,例如在应用应答装置22中,对于下述的SQL命令:
ALTER TABLE pre-change table RENAME TO post-change table name,以改变后表名作为密文表名的SQL文本可以被自动地生成并且发布给数据库控制装置12的数据库操作单元121(图4)。对于将列名改变为密文的情形,例如对于下述的SQL命令:
ALTER TABLE table name RENAME COLUMN pre-change columnname TO po st-change column name,
以改变后列名作为密文列名的SQL文本可以由应用应答装置22自动地生成,并且发布给数据库操作单元121(图4)。
步骤3:改变安全性配置信息:
针对安全性配置信息存储单元14(见图6),应用应答装置22向数据库控制装置12发出请求,从而请求类似地用密文表名或密文列名替换作为配置对象的明文表名或列名,并且执行将与表名加密或列名加密有关的字段改变为″是″,并且数据库控制装置12的安全性配置信息操作单元124改变安全性配置信息存储单元14的安全性配置信息。密文表信息列表(图7的(B))中表名的有关表名和列名用密文表名和密文列名替换。
步骤4:改变安全性配置信息临时存储单元:
应用应答装置22的安全性配置信息操作单元225将作为配置对象的明文表名或列名写入安全性配置信息临时存储单元25(见图9)中经解密表名或经解密列名的字段中,用密文表名或密文列名替换表名或列名,并且将字段″表名被加密?"或″列名被加密?″改变为″是″。
步骤5:返回改变已经结束:
应用应答装置22答复安全性配置装置26:配置改变(配置更新处理)已经结束。安全性配置装置26在输入/输出设备27中做出指示结束的显示。就此而言,安全性配置信息临时存储单元25的改变后内容可以显示在屏幕上,从而向用户呈现改变已经结束的事实。
应当指出,在安全性配置装置26中,表名和列名可以同时改变为加密″是″,或者表名和列名可以分开改变。或者,多个表或多个列可以集体地改变为加密″是"。这种情况下,针对每个表/列执行上文所述步骤1至4的处理。
<配置更新处理(改变为加密“否”)>
接着,作为图11的步骤4的配置更新处理的详细处理程序,给出对改变为加密“否”的处理的描述。图13为描述图11的配置更新处理即步骤4的详细处理的流程图。图13示出对于元数据(表名、列名)从加密″是″改变为加密“否”的处理的程序。此处,元数据(表名、列名)先前被配置成″是"。
步骤0:安全性配置装置26从输入/输出设备27接收作为配置对象的元数据(表名、列名)和配置内容(加密“否”)。
步骤1:获得元数据对象的对(明文、密文):
从安全性配置装置26接收配置改变指令的应用应答装置22,参考安全性配置信息临时存储单元25(见图9),获得数据库11中作为配置对象的元数据(表名或列名)的密文元数据,并且从经解密表名或经解密列名的字段获得相应明文表名或明文列名。
步骤2:将数据库11的密文元数据改变为明文元数据:
应用应答装置22请求数据库控制装置12利用相应明文元数据替换密文元数据(表名或列名),并且用明文表名/列名替换数据库11中的表名/列名。在改变表名的情况下,在数据库控制装置12中,可以向数据库操作单元121(图4)发布例如下述的SQL命令:
ALTER TABLE pre-change table name RENAME TO post-change tablename
改变前表名为密文并且改变后表名为明文。对于将列名改变为密文的情形,可以向数据库操作单元121(图4)发布例如下述的SQL命令:
ALTER TABLE table name RENAME COLUMN pre-change column nameTO post-change column name,
改变前列名为密文并且改变后列名为明文。密文表信息列表(图7的(B))的有关表名和表名的列名用明文表名和明文列名替换。
步骤3:改变安全性配置信息:
同样对于安全性配置信息存储单元14(见图6),数据库控制装置12用明文表名或明文列名替换密文表名或密文列名的字段。发出将″表名被加密?″或″列名被加密?″的字段改变为“否”的请求,并且数据库控制装置12的安全性配置信息操作单元124改变安全性配置信息。
步骤4:改变安全性配置信息临时存储单元:
应用应答装置22的安全性配置信息操作单元225用相应明文表名或明文列名替换安全性配置信息临时存储单元25(见图9)中的密文表名或密文列名,将经解密表名或经解密列名的字段改变为″空″,并且将"表名被加密?″或″列名被加密?"的字段改变为“否”。
步骤5:答复改变已经结束:
应用应答装置22答复安全性配置装置26:改变已经结束。
应当指出,在安全性配置装置26中,表名和列名可以被同时改变为加密“否”,或者表名和列名可以被分开改变。或者,多个表或多个列可以被集体地改变为加密“否”。这种情况下,针对每个表/列执行上文所述的步骤1至4的处理。
<保密级别配置处理>
在本示例性实施例中,为了避免(使得不需要)改造现有数据库使用应用21,经由安全性配置装置26执行配置数据保密级别的操作。安全性配置装置26向应用应答装置22发出有关安全性配置信息存储单元14的当前内容以及数据库11的内容的查询。不是一次进行有关所有信息的查询,安全性配置装置26而是可以分多个部分/阶段进行查询,如在所有表名的列表中查询并且随后在特定表的列名和安全性配置的列表中查询。
应用应答装置22读取安全性配置信息存储单元14的内容,并且在元数据被加密的情况下,在经加密元数据由密钥使用装置23解密后,将元数据发送到安全性配置装置26。
根据本示例性实施例,通过使用安全性配置信息临时存储单元25中保持的信息,有可能进行高效处理。
应用应答装置22经由数据库控制装置12读取数据库11的内容,并且在元数据(表名、列名)或列数据被加密的情况下,在通过密钥使用装置23解密之后,将元数据发送到安全性配置装置26,并且安全性配置装置26显示安全性配置信息或数据库信息。
数据库用户从输入/输出设备27将元数据是否被加密的指示或者列数据保密级别(例如,3阶段的″低″、“中”和″高″)的指示输入到安全性配置装置26。
安全性配置装置26将所输入的保密级别信息传送给应用应答装置22。应用应答装置22在安全性配置信息临时存储单元25中反映从安全性配置装置26传送的保密级别信息,并且另外经由数据库控制装置12,针对安全性配置信息存储单元14改变数据库11的内容。
<保密级别配置1>
图14为描述对存储于数据库11中的明文列数据(加密明文列数据)的保密级别进行配置的处理程序的流程图。
步骤0:接收配置对象和配置内容(保密级别):
应用应答装置22从安全性配置装置26接收作为配置对象的表名和列名以及配置内容(保密级别)。
步骤1:选择加密算法:
应用应答装置22参考密码协议信息存储单元13(见图5),获得对应于输入的保密级别的加密算法标识符(高、中、低)的列表,并且选择其中之一。在从对应于同一保密级别的加密算法标识符的列表中选择一个的情况下,进行已知具有良好处理效率化的选择。加密算法标识符可以由应用应答装置22自动地选择,或者加密算法标识符的列表可以经由安全性配置装置26显示在屏幕上,并且执行保密级别改变操作的用户可以进行选择。
步骤2:改变安全性配置信息:
应用应答装置22请求数据库控制装置12的安全性配置信息操作单元124将安全性配置信息存储单元14(见图6)作为配置对象的表名和列名的列数据保密级别的字段改变为输入的保密级别,请求列数据加密算法标识符的字段被改变为步骤1中做出的选择,并且更新安全性配置信息存储单元14的安全性配置信息。在配置对象表名和列被加密的情况下,应用应答装置22从安全性配置信息临时存储单元25的经解密表名或经解密列名检测与从安全性配置装置26输入的明文表名或明文列名匹配的名称,获得相应经加密表名或经加密列名,并且识别安全性配置信息存储单元14(见图6)中作为配置对象的密文表名和密文列名。
步骤3:改变安全性配置信息临时存储单元:
针对安全性配置信息临时存储单元25,应用应答装置22的安全性配置信息操作单元225将配置对象表名和列名的列数据保密级别的字段从空改变为所输入的保密级别,并且将列数据加密算法标识符的字段改变为步骤1的选择。
步骤4:获得配置对象列数据:
应用应答装置22请求数据库控制装置12获得配置对象表名和列名的列数据从而获得列数据。如上所述,列数据在数据库11中被存储为密文表(参考图7的(B)中的密文表名)。如果数据库中不存在有关列的列数据,则控制转到步骤9。
步骤5:创建列数据加密、序号、明文和密文:
应用应答装置22将获得的列数据(明文列数据)和步骤1中选择的加密算法标识符传送给密钥使用装置23,并且请求加密列数据。应用应答装置22将序号附到获得的密码文本列数据,并且创建元组的列表:
[序号,明文列数据,密文列数据]。
步骤6:创建密文表:
应用应答装置22请求数据库控制装置12创建存储步骤5中创建的元组的列表的表:
[序号,密文列数据]
并且在数据库11中创建密文表(密文表名为密文加密算法标识符,如图7的(B)所示)。
步骤7:更新密文表信息列表:
应用应答装置22请求数据库控制装置12向密文表信息列表(见图7的(B))添加下述元组:
[配置对象表名,配置对象列名,步骤1中选择的加密算法标识符,创建的密文表的名]。
数据库控制装置12向密文表信息列表(见图7的(B))添加下述元组:
[表名,列名,加密算法标识符,密文表名]。
步骤8:替换明文列数据:
应用应答装置22请求数据库控制装置12用与由步骤5(见图7的(C))中创建的下述元组关联的序号来重写数据库操作对象列的明文列数据(例如,图7的(A)的列名“工作地点”的数据):
″序号、明文列数据、密文列数据″。
对于密文表中的ID=1,2,...中的每个(见图7的(D)至(F)的存储格式),数据库控制装置12关联并且存储在步骤5中加密的密文列数据。
步骤9:答复改变已经结束:
应用应答装置22答复安全性配置装置26:改变已经结束。
应当指出,在图14的程序中,除了已经存储于数据库11的明文列数据由对应于保密级别的加密算法来加密并且被存储于数据库11的情况之外,还可能应用到这样的情形,其中明文列数据由输入到应用应答装置22的数据库操作命令而存储于数据库11(例如在下述情况下:对于新记录的列数据,保密级别由安全性配置装置26配置,但是加密算法选择等未被执行)。
<保密级别配置2>
在数据库控制装置12具有图3或图4的配置的情况下,上文所述的图14的保密级别配置程序为配置数据库11中存储的明文列数据的保密级别的处理程序。图28为描述对于数据库控制装置12具有图26或图27的配置的情形,配置数据库11中存储的明文列数据的保密级别的处理程序的流程图。在图28中,步骤1至9与图14的步骤1至9相同。在图28中,对于诸如HE1等的公共密钥加密,步骤1中选择的加密算法在步骤3之后分支到步骤10。
步骤10:在步骤1中选择的加密算法为诸如HE1等的公共密钥加密的情况下,应用应答装置22经由密钥使用装置23获得公共密钥信息,将获得的公共密钥信息与对应加密算法标识符一起传送给数据库控制装置12,并且请求对明文列数据的加密。
步骤11:数据库控制装置12从数据库11获得作为配置对象的明文列数据。如果有关列数据不存在,则控制分支到步骤16。
步骤12:数据库控制装置12使用接收的加密算法标识符和来自应用应答装置22的公共密钥信息来加密该加密计算单元126中的列数据。序号被附到获得的密码文本的列数据,并且创建以下元组的列表:
[序号,明文列数据,密文列数据]。
步骤13:数据库控制装置12创建存储下述元组的列表的密文表(见图7的(D)至(F)):
[序号,密文列数据]。
步骤14:数据库控制装置12向密文表信息列表(见图7的(B))添加下述元组:
[配置对象表名,配置对象列名,步骤1至选择的加密算法标识符,步骤12中创建的密文表的名]。
步骤15:数据库控制装置12将作为操作对象的列的明文列数据重写到在在步骤12中创建的、将存储于数据库11的下述元组关联的序号:
[序号,明文列数据,密文列数据]。
步骤16:数据库控制装置12答复应用应答装置22:明文列数据的加密已经结束。应用应答装置22答复安全性配置装置26:改变已经结束(步骤9)。
<改变保密级别>
在下文针对在安全性配置信息存储单元14、安全性配置信息临时存储单元25以及数据库11中反映指定列数据的保密级别的处理,给出对有关其中保密级别已经被配置的情形的描述。
应用应答装置22参考安全性配置信息存储单元14,获得指定列中配置的列数据保密级别信息,与新指定保密级别比较,并且如果保密级别相同,则不执行任何具体处理。在新指定保密级别低于安全性配置信息存储单元14中配置的列数据保密级别的情况下,安全性配置信息中具有列数据保密级别的字段被改变为新指定的保密级别。
在安全性配置装置26指定的保密级别高于安全性配置信息存储单元14中配置的列数据保密级别的情况下,执行图15中从步骤4往前的处理。
图15为描述针对应用应答装置22,反映从安全性配置装置26输入的配置对象和配置内容的处理流程的图示。参考图15,给出对改变配置的保密级别(改变为更高值)的处理(应用应答装置22的处理)的描述。
步骤0:接收配置对象和配置内容(保密级别):
应用应答装置22从安全性配置装置26接收作为配置对象的表名和列名以及配置内容(保密级别的改变)。
步骤1:获得已经配置的加密算法标识符的列表:
应用应答装置22从数据库设备10的安全性配置信息存储单元14(见图6),获得由所输入的配置对象表名和列名指定的列数据的加密中使用的加密算法标识符的列表。应当指出,在配置对象表名和列被加密的情况下,应用应答装置22从安全性配置信息临时存储单元25的经解密表名或经解密列名检测与从安全性配置装置26输入的明文表名或明文列名匹配的名称,获得相应经加密表名或经加密列名,并且在安全性配置信息存储单元14(见图6)中识别作为配置对象的密文表名和密文列名。
步骤2:获得对应于指定保密级别的加密算法标识符的列表:
应用应答装置22参考数据库设备10的密码协议信息存储单元13(见图5),并且获得对应于新输入的保密级别的加密算法标识符的列表。
步骤3:比较加密算法标识符:
应用应答装置22将步骤1中获得的加密算法标识符的列表与在步骤2中获得的对应于新保密级别的加密算法标识符的列表比较。
步骤4:创建新密文表:
作为步骤3的比较的结果,在步骤1中获得的加密算法标识符的列表以及在步骤2中获得的对应于新保密级别的加密算法标识符的列表之间没有公共加密算法标识符的情况下,应用应答装置22通过下面的程序创建新密文表。在存在公共加密算法标识符的情形,因为存在由相同保密级别的加密算法加密的数据,不执行下面的保密级别改变处理(数据由对应于新保密级别信息的加密算法重新加密,从而创建密文表以及更新密文表信息)。
步骤5:从现有密文表获得所有密文:
在在步骤1中获得的加密算法标识符列表中包括多个加密算法标识符的情况下,应用应答装置22从它们中选择一个加密算法标识符(在只有1个的情况下,这1个加密算法标识符被选择),并且请求数据库控制装置12从数据库11获得对应于所选择的加密算法标识符的密文表的内容。数据库控制装置12参考密文表信息列表(见图7的(B)),识别与所选择的加密算法标识符对应的密文表名,获得所识别的密文表的内容(存储为ID和密文的对格式),并且将此传送给应用应答装置22。
步骤6:解密密文:
应用应答装置22将在步骤5中选择的加密算法标识符以及获得的密文传送给密钥使用装置23,并且请求解密为明文。
步骤7:通过新标识符的加密算法创建密文:
当多个加密算法标识符仅仅包括在对应于在步骤2中获得的保密级别的加密算法标识符的列表中(并未包括在步骤1中获得的加密算法标识符列表中)的情况下,应用应答装置22从它们中选择一个加密算法标识符(在仅仅1个加密算法标识符包括在对应于在步骤2中获得的保密级别的加密算法标识符的列表中的情况下,选择该1个加密算法标识符),将此连同在步骤6中获得的明文一起传送给密钥使用装置23,并且请求由新标识符的加密算法进行加密。创建新元组的列表:
[序号,明文,密文]。
步骤8:创建密文表:
应用应答装置22请求数据库控制装置12创建存储元组的列表的如下密文表:
[序号、密文],
并且创建密文表(见图7的(D)至(F)的存储格式)。
步骤9:更新密文表信息列表:
为了添加新表到加密表信息列表(见图7的(B)),应用应答装置22请求数据库控制装置12添加下述元组:
[对象表名,对象列名,新加密算法标识符,步骤8中创建的密文表名]。
步骤10:删除不满足指定保密级别的加密表:
向数据库控制装置12发出有关仅仅包括在步骤1中的加密算法标识符的请求,以参考密文表信息列表(见图7的(B))识别相应密文表以及从数据库11删除所讨论的密文表和密文表信息列表的相应部分(包括将被删除的密文表的表名的行(条目))。通过此操作,针对保密级别改变被指定的列数据,从数据库11删除由保密级别低于新指定保密级别的加密算法加密的加密列数据。
在列数据保密级别被配置成比安全性配置装置26当前配置的保密级别低的值的情况下,执行类似于上文所述的处理。在存在由保密级别与新指定保密级别相同的加密算法加密的数据的情况下,并不执行用以利用对应于新指定保密级别的加密算法执行重新加密以及创建密文表的处理。
<数据添加处理>
接着,给出对向数据库11添加新列数据的处理程序的示例的描述。图16为描述关于应用应答装置22,将向数据库11中已经创建的表中添加数据的处理的流程图。
步骤0:接收数据添加指令:
应用应答装置22识别从数据库使用应用21输入的数据库操作命令为诸如下述SQL的数据添加指令:
INSERT Text(INSERT INTO(column name1,column name
2...)VALJES(valuel,value2...)
步骤1:确认元数据是否被加密:
应用应答装置22参考数据库设备10的安全性配置信息存储单元14或安全性配置信息临时存储单元25,并且确认添加对象表名或列名是否在数据库11中被加密。
步骤2:用密文替换明文数据:
在由数据添加指令中的数据库操作命令指定的表名或列名被加密的情况下,应用应答装置22获得安全性配置信息临时存储单元25中对应于经解密表名和经解密列名的字段的明文表名和列名的密文表名或列名,并且利用获得的密文表名和密文列名替换包括在数据添加指令(诸如上文所述的INSERT text)中的明文表名和明文列名。
应用应答装置22参考安全性配置信息存储单元14或安全性配置信息临时存储单元25,并且获得针对作为添加对象的列的列数据保密级别和加密算法标识符。
步骤3:确认已经配置的保密级别:
在有关表名和列名的列数据保密级别为空的情况下,在安全性配置信息存储单元14或安全性配置信息临时存储单元25中(在保密级别未被配置的情况下),应用应答装置22将控制移至步骤8。另一方面,在配置了列数据保密级别的情况下,应用应答装置22执行下述步骤4。
步骤4:根据配置的保密级别创建经加密数据:
在列保密级别和加密算法标识符被配置的情况下,针对所有配置的加密算法标识符,应用应答装置22将待添加的明文数据以及加密算法标识符发送到密钥使用装置23,并且创建下述元组的列表:
[加密算法标识符,经加密数据]
通过该列表,明文数据由配置的加密算法来加密。
步骤5:包括加密算法标识符和经加密数据的添加数据请求:
应用应答装置22将下述内容传送给数据库控制装置12:
添加对象表名和列名,以及
在步骤4中获得的[加密算法标识符,经加密数据],
并且请求向数据库11添加。
步骤6:向密文表添加经加密数据:
数据库控制装置12获得添加对象列中存储的序号的最大值,并且使序号最大值+1成为额外ID的开始编号IDx。
数据库控制装置12针对所有下述内容参考密文表信息列表(见图7的(B)):
在步骤4中获得的[加密算法标识符、经加密数据],
并且获得对应于针对添加对象表和列所指定的加密算法标识符的密文表名。
数据库控制装置12向获得的密文表添加下述元组:
[额外ID,经加密数据]
密文表存储ID和经加密数据的对信息,如图7的(D)至(F)所示。因此,将[额外ID、密文数据]添加到密文表的末尾。对于要添加多个数据的情形,额外ID按照IDx+1、IDx+2、...从其开始编号IDx依次递增。
步骤7:向对象表的列添加额外ID:
在步骤6中获得的额外ID作为列数据被添加到添加对象表的列。例如,额外ID被添加到图7的(C)的表(加密之后)的列的末尾。在存在N项添加数据的情况下,IDx、IDx+1、IDx+2、...、IDx+N-1被添加到图7的(C)的表(加密之后)的列的末尾,并且ID最大值被更新为IDx+1。
上文的步骤4至7涉及在保密级别被配置的情况下的数据添加处理。
在步骤3,在保密级别未被配置的情况下,下述处理被执行。
步骤8:请求向对象表添加数据:
应用应答装置22将把替换后的数据添加到在步骤2中获得的添加对象表名和列名的密文的指令传送给数据库控制装置12,并且请求将数据添加到数据库11。
步骤9:向对象表添加数据:
根据由应用应答装置22传送的数据添加指令,数据库控制装置12将数据添加到数据库11。
在本示例性实施例中,作为数据库操作的示例,上文参考各流程图给出了有关是否存在加密的配置和保密级别的配置的处理程序以及添加列数据的操作的处理程序的描述。在下文中,给出本示例性实施例的***的若干代表性过程的描述(注意,因为在处理中基本上没有分支,所以并未参考流程图)。
<在启动应用应答装置之后的初始操作>
给出在启动应用应答装置22之后的初始操作的描述。在应用应答装置的初始操作中,为了使下述处理高效,作为开始之后的初始操作执行在用户设备20侧读取放置在数据库设备10中的一些信息的处理以及生成辅助信息的处理。
应用应答装置22经由数据库控制装置12读取数据库设备10的安全性配置信息存储单元14的内容,并且将该内容存储于安全性配置信息临时存储单元25。
在数据库11的元数据(表名、列名)被加密的情况下,应用应答装置22由密钥使用装置23解密其经加密元数据,并且将元数据存储于安全性配置信息临时存储单元25的经解密表名和经解密列名的字段。另外,可以在应用应答装置22的初始操作中在用户设备20侧读取数据库设备10的密码协议信息存储单元13的内容,并且该内容可以存储和保持于存储单元。
<对元数据的操作的处理>
给出将新表添加到数据库11以及改变现有表名或列名(对元数据的操作)的有关操作的描述。对于将新表添加到数据库11的情形,对安全性信息的配置如上所述由安全性配置装置26执行。
当用于表添加的数据库操作命令从数据库使用应用21输入时,应用应答装置22通知安全性配置装置26。安全性配置装置26显示表添加命令的内容,并且提示数据库用户输入待添加的表的安全性配置信息(表名和列名是否被加密,以及列数据的保密级别)。安全性配置装置26将数据库用户输入的安全性配置信息传送给应用应答装置22。
在表名和列名根据由安全性配置装置26传送的安全性配置信息而被加密之后,应用应答装置22将用于添加表的数据库操作命令传送给数据库控制装置12,并且在数据库11中创建表。
应用应答装置22将安全性配置信息传送给数据库控制装置12,以便存储于安全性配置信息存储单元14。应用应答装置22在安全性配置信息临时存储单元25中存储与存储于安全性配置信息存储单元14的安全性配置信息相同的安全性配置信息。在表名和列名被加密的情况下,将加密之前的表名和列名作为解密之后的表名和列名进行存储。
<表名和列名的改变>
已经参考图12和图13描述了存储于数据库11的表的元数据(诸如表名或列名)的配置内容的改变(改变为加密"是"或改变为加密“否”)。下文描述有关表名或列名的改变。
在改变已经存储于数据库11的现有表名或列名的情况下,需要根据表名或列名是否被加密而改变处理。
当改变表名或列名的数据库操作命令被输入时,应用应答装置22查找安全性配置信息临时存储单元25,并且确认有关待改变的表名或列名的加密的配置是否为″是″。
如果有关加密的配置为“否”,则将普通数据库操作命令传送给数据库控制装置12,并且执行数据库操作。存储于安全性配置信息存储单元14和安全性配置信息临时存储单元25的表名或列名被一起改变。如果有关加密的配置为″是″,则执行下述处理。
步骤1:应用应答装置22用密钥使用装置23加密在指定改变之后的明文表名或列名,并且创建针对改变之后的表名或列名的下述元组:
[明文表名或列名,密文表名或列名]。
步骤2:应用应答装置22参考安全性配置信息临时存储单元25,查找对应于作为指定改变对象的明文表名或列名的密文表名或列名,并且识别数据库11中记录的密文表名或列名。
步骤3:应用应答装置22将数据库操作命令传送给数据库控制装置12,以便用在步骤1中创建的改变后密文表名或列名替换在步骤2中识别的当前在数据库11中记录的密文表名或列名,并且执行数据库11中表名或列名的改变。
步骤4:应用应答装置22用在步骤1中创建的密文表名或列名替换安全性配置信息存储单元14或安全性配置信息临时存储单元25中记录的在步骤2中识别的密文表名或列名。安全性配置信息临时存储单元25中记录的相应明文表名或列名(经解密表名或列名)被替换为在指定改变之后的明文表名或列名。
<向现有表添加数据>
已经参考图16描述了将数据添加到已经存储于数据库11的现有表的列。对添加的数据加密,并且作为指定表的指定列的数据,将+1的值(额外ID)添加到当前表的行的编号(最大序号),参考密文表信息列表(图7的(B)),并且将额外ID和密文的对添加到用于与所添加数据对应的加密算法的密文表(在多个加密算法的情况下,添加到分别与多个加密算法对应的多个密文表)。
<现有表的数据的改变>
给出对于从数据库使用应用21输入的数据库操作命令是用于数据改变的情形,应用应答装置22和数据库控制装置12的处理的描述。数据改变例如对应于SQL命令(UPDATE table name SET<column>=<value>)等。
步骤1:应用应答装置22参考安全性配置信息存储单元14(或安全性配置信息临时存储单元25),并且确认作为为添加改变对象的表名或列名是否被加密。
步骤2:在作为添加改变对象的表名或列名被加密的情况下,应用应答装置22参考安全性配置信息临时存储单元25,获得数据库11中的密文表名或列名,并且用获得的密文表名或列名替换对应于输入到应用应答装置22的数据库操作命令的(明文)表名或列名。
步骤3:应用应答装置22参考安全性配置信息存储单元14(或安全性配置信息临时存储单元25),并且确认在作为改变对象的列名中是否配置保密级别。
步骤4:在安全性配置信息存储单元14(或安全性配置信息临时存储单元25)的有关表名或有关列名的列数据保密级别为空的情况下(保密级别未被配置的情形),将上文所述仅仅执行表名或列名的替换的数据库操作命令被传送给数据库控制装置12,并且改变被执行。
在安全性配置信息存储单元14(或安全性配置信息临时存储单元25)的有关表名或有关列名的列数据保密级别被配置的情况下,执行下述处理。
步骤5:应用应答装置22参考安全性配置信息存储单元14(或安全性配置信息临时存储单元25),并且获得对象列的所有加密算法标识符。
步骤6:应用应答装置22通过所有获得的标识符的加密算法来加密作为改变对象的明文数据。
步骤7:应用应答装置22向数据库控制装置12传送作为改变对象的表名或列名、作为改变对象的行的指示以及所有创建的元组:
[加密算法标识符,密文]。
步骤8:数据库控制装置12参考作为改变对象的表/列,以获得在作为改变对象的行中存储的序号。
步骤9:数据库控制装置12参考密文表信息以指定用于每个加密算法的密文表,并且利用在步骤7中接收的密文重写对应于在步骤4中获得的序号的行的密文。
<从现有表删除数据>
给出对于从数据库使用应用21输入的数据库操作命令是用于从数据库11数据删除的情形,应用应答装置22和数据库控制装置12的处理的描述。
步骤1:应用应答装置22参考安全性配置信息存储单元14(或安全性配置信息临时存储单元25),并且确认作为操作对象的表名是否被加密。
步骤2:在作为操作对象的表名未被加密的情况下,应用应答装置22将普通数据库操作命令按原样传送到数据库控制装置12。
步骤3:在作为操作对象的表名被加密的情况下,应用应答装置22参考安全性配置信息临时存储单元25,获得数据库11中的密文表名,并且用获得的密文表名替换作为操作对象的表名,以便传送给数据库控制装置12。
步骤4:数据库控制装置12根据来自应用应答装置22的数据库操作命令执行数据删除。此时,针对删除对象表,确认是否存在其中数据被加密的列,并且在存在经加密列的情况下,执行相应密文表数据的删除。
<现有表的数据的检索和计算>
下文给出在数据库操作命令涉及检索和关于数据库11中现有表的数据的计算的情况下的处理的描述。
步骤1:应用应答装置22参考安全性配置信息存储单元14(或安全性配置信息临时存储单元25),并且确认作为操作对象的表名或列名是否被加密。
步骤2:在作为操作对象的表名或列名被加密的情况下,应用应答装置22参考安全性配置信息临时存储单元25,获得数据库11中的密文表名或列名,并且用获得的密文表名或列名替换对应于向应用应答装置22输入的数据库操作命令的明文表名或列名。
步骤3:应用应答装置22参考安全性配置信息存储单元14或安全性配置信息临时存储单元25,并且确认对于作为操作对象的列的数据,列数据保密级别是否被配置。
在作为操作对象的列的保密级别未被配置(列数据未被加密)的情况下,执行下文的步骤4至6的处理。
步骤4:应用应答装置22将上文所述替换表名或列名的数据库操作命令(检索或计算)传送给数据库控制装置12。
步骤5:数据库控制装置12执行从应用应答装置22接收的数据库操作(检索或计算),并且将执行结果返回到应用应答装置22。
步骤6:在包括在数据库操作命令(检索或计算)中的表名或列名用密文替换的情况下,数据库控制装置12再次用相应明文表名或列名替换包括在数据库操作的执行结果中的表名或列名,并且将此传送给应用应答装置22。
下文描述在作为操作对象的列的列数据保密级别被配置的情况下,数据库11中现有表的数据的检索或计算。
步骤7:应用应答装置22参考安全性配置信息存储单元14,并且获得在作为操作对象的列的加密中使用的加密算法的标识符。
步骤8:应用应答装置22参考密码协议信息存储单元13,并且获得对应于下述三元组的密码协议标识符(见图5):
[处理内容,作为操作对象的列所配置的保密级别,作为操作对象的列的加密中使用的加密算法标识符]。
步骤9:向应用应答装置22的密码协议过程执行单元222输入
[密码协议标识符,操作对象列,处理内容]。
步骤10:应用应答装置22的密码协议过程执行单元222根据所输入的密码协议标识符与数据库控制装置12通信,执行数据库操作并且获得执行结果。应当指出,根据密码协议,密码协议处理的具体内容是不同的。
步骤11:如果执行包括在数据库操作命令中的表名或列名的替换,则数据库控制装置12再次用明文表名或列名替换包括在获得的执行结果中的密文表名或列名,并且将执行结果发送给应用。
<配置数据保密级别的处理的操作示例>
接着,给出有关在本示例性实施例中的数据库11中的表中将列“雇员列表”和列“工作地点”配置为保密级别“中”的情形的描述。
步骤1:选择加密算法:
应用应答装置22通过安全性配置装置26选择对应于由用户指定的保密级别的加密算法。如图17所示,参考密码协议信息存储单元13以获得对应于保密级别“中”的加密算法标识符的列表(“SE1”、“AES”、“HE1”)。从加密算法标识符的列表(“SEl”、”AES”、”HE1”)选择一个算法。此处,密文创建的效率被视为是重要的,并且“AES”被选择。
步骤2.安全性配置信息存储单元的改变:
针对存储安全性配置信息存储单元14的表名“雇员列表”和列名“工作地点”的信息的行,如图18所示,数据库设备10的安全性配置信息操作单元124执行下述操作:
将字段“列数据被加密?”从“否”改变为“是”,
将字段“列数据保密级别”从“空”改变为“中”,以及
将字段“列数据加密算法标识符”从“空”改变为“AES”。
步骤3:安全性配置信息临时存储单元25的改变:
针对存储安全性配置信息临时存储单元25的表名“雇员列表”和列名“工作地点”的信息的行,应用应答装置22的安全性配置信息操作单元225进行与安全性配置信息存储单元14类似的改变。也就是说,如图19所示,针对表名“雇员列表”,关于存储列名“工作地点”的信息的行
将字段“列数据被加密?”从“否”改变为“是”,
将字段“列数据保密级别”从“空”改变为“中”,以及
将字段“列数据加密算法标识符”从“空”改变为“AES”。
步骤4:获得对象列数据:
表“雇员列表”如图20的(A)示出。数据库控制装置12从表“雇员列表”获得列“工作地点”的数据的列表,并且将该列表传送给应用应答装置22。此时,与其一起也获得用于唯一地识别表“雇员列表”的一行的主关键字列。此处,“雇员编号”为主关键字。
步骤5:获得的列数据的加密:
应用应答装置22通过密钥使用装置23加密列“工作地点”的数据,将密文与原始明文和雇员编号关联,并且使列表附以序号1,2,3,...,如图20的(B)所示。应当指出,此列表由应用应答装置22中的存储单元保持。
步骤6:密文表的创建:
在步骤5中创建的列表(图21的(A))中,元组列表(明文“总部”的密“0x3d8...”、明文“多摩川”的密文“0x962...”)以及序号(1,2,...)被发送给数据库控制装置12,并且创建和存储密文表。密文表名为“ciphertext_AES_1”,如图21的(B)所示。密文表由序号和密文的对形成。
步骤7:密文表信息列表的更新:
如图21的(C)所示,密文表信息列表存储:表名“雇员列表”、列名“工作地点”、加密算法“AES”以及密文表名“ciphertext_AES_1”。
步骤8:替换明文列数据:
将在步骤5中创建的雇员编号以及序号的元组的列表(图22的(A))发送到数据库控制装置12,并且表“雇员列表”的列“工作地点”的值用序号(1,2,...)替换,如图22的(B)所示。当替换成序号结束时,删除在步骤5中创建的列表(图22的(A))。图22的(C)和(D)的密文表和密文表信息列表与图21的(B)和(C)的密文表和密文表信息列表相同。
<平均值计算>
接着,给出有关获得数据库11中存储的经加密数据的平均值的计算操作的示例的描述。图23为示出本示例中参考的安全性配置信息临时存储单元25的示例的图示。描述有关数据被加密时在对于数据库11中存储的表名“工作时间管理列表”的列名为“加班时间”的情况下获得数据的平均值的处理。
在表名“工作时间管理列表”的表中,列“工作时间”的列数据和“加班时间”的第一列的列数据每个均具有配置成“中”的列数据保密级别,并且由具有标识符“AES”的加密算法来加密。“加班时间”的第二列的列数据由具有标识符“HE1”的加密算法来加密。应当指出,数据库设备10的安全性配置信息存储单元14与图23的安全性配置信息临时存储单元25的相同,“经解密表名”和“经解密列名”被移除。
表名“工作时间管理列表”的主体具有例如图24的(A)所示的内容。应当指出,“工作时间”和“加班时间”中的序号(ID)1,2,3...为利用密文作为密文表中的对存储的序号(ID)1,2,3...。存储“工作时间”的经加密数据的密文表“ciphertext_AES_1”的示例,以及存储“加班时间”的经加密数据的密文表“ciphertext_AES_2”和“ciphertext_HE1_1”例如见图24的(C)、(D)和(E),并且定义这些表之间的对应关系的密文表信息列表例如如图24的(B)中所示。
密码协议信息存储单元13如图25所示。加密算法标识符OPE1代表奥德保留对称加密算法(公共密钥方案)。HE1代表准同态加密,并且SE1代表可检索加密。
在从数据库使用应用21输入的数据库操作命令为平均值计算操作的情况下(例如SQL文本:SELECT AVERAGE(column name)FROM table name),应用应答装置22确定元数据(表名、列名)是否被加密。应用应答装置22参考图23的安全性配置信息临时存储单元25,并且获得对应于表名“工作时间管理列表”的列名“加班时间”的信息。参考字段“表名被加密?”和“列名被加密?”以确认二者的加密被配置成“否”。这种情况下,应用应答装置22不执行元数据替换处理。
接着,应用应答装置22参考图23的安全性配置信息临时存储单元25的表名“工作时间管理列表”其中列名为“加班时间”的字段“列数据保密级别”,并且确认列数据保密级别被配置成“中”。随后执行伴随密码协议处理的处理。
应用应答装置22确认图23的安全性配置信息临时存储单元25其中表名为“工作时间管理列表”的字段“列数据加密算法标识符”,并且获得在加密中使用的加密算法标识符“AES”和“HE1”。
应用应答装置22参考密码协议信息存储单元13(见图25),并且分别对于加密算法“AES”和“HE1”,检索对应于具有保密级别“中”的处理内容“平均”的密码协议标识符。
作为检索的结果,对于加密算法“HE1”,应用应答装置22获得密码协议标识符"HE1_AVG_M″。
将下述信息输入到应用应答装置22的密码协议过程执行单元222:
密码协议标识符:“HE1_AVG_M”,
表名:“工作时间管理列表”,
列名:“加班时间”,
加密算法:“HE1”,以及
处理内容:“平均”。
密码协议过程执行单元222通过与数据库控制装置12的密码协议过程执行单元122交互,根据所输入的密码协议标识符而执行密码协议处理。其具体操作根据密码协议或实施方式而改变(不存在具体限制,并且下文描述1个操作示例)。密码协议过程执行单元222的执行结果被反映在数据库使用应用21中。
用户设备20侧上的密码协议过程执行单元222将下述4项信息发送给数据库控制装置12的密码协议过程执行单元122:作为操作对象的表名“工作时间管理列表”,列名“加班时间”,加密算法标识符“HE1”,以及密码协议标识符“HE1_AVG_M”。
根据由所接收的密码协议标识符“HE1_AVG_M”指定的处理程序,密码协议过程执行单元122如下操作。
密码协议过程执行单元122参考密文表信息列表(图24的(B)),以针对表“工作时间管理列表”的列“工作时间”获得存储由加密算法“HE1”加密的数据的表名“ciphertext_HE1_1”。
密码协议过程执行单元122随后获得在“ciphertext_HE1_1”的列“密文”中存储的所有密文数据以及数据项的数目。
密码协议过程执行单元122计算密文的总和以获得明文,而不是解密所获得的密文数据。在诸如Paillier加密的加法准同态加密中,例如,针对明文文本m1的密文E(m1)和明文文本m2的密文E(m2),对于m1+m2的密文E(m1+m2),下述成立:E(m1)+E(m2)=E(m1+m2)。因此,密文E(∑mi)的总和被计算为∑E(mi)。
数据库控制装置12的密码协议过程执行单元122将获得的密文的总和以及数据项的数目,经由处理/通信控制单元125(见图3)发送到用户设备20侧上的密码协议过程执行单元222(见图8)。应当指出,上文所述的RSA加密和E1gamal加密为乘法准同态的。因此,配置了对应于计算操作(处理内容标识符)的加密算法。在图25的密码协议信息存储单元13的示例中,例如,对于处理内容运算符“平均”配置了准同态加密算法HE1(这种情况下,HE1为Paillier加密等)。
在用户设备20侧的密码协议过程执行单元222中,从数据库控制装置12接收的密文总和以及加密算法标识符“HE1”被发送给密钥使用装置23,对密文总和进行解密并获得明文总和。密码协议过程执行单元222通过将总和(明文)除以数据项的数目(明文)而获得平均值(明文)。获得的平均值被返回到最初发布该数据库操作命令(平均值)的数据库使用应用21。
除了上述平均值之外,在诸如加法、乘法等的某些复杂算术计算使用加法准同态加密算法或乘法准同态加密算法,并且有可能对密文按原样执行计算处理的情况下,在数据库控制装置12的密码协议过程执行单元122中,对密文按原样执行计算的结果(密文)被返回给应用应答装置22的密码协议过程执行单元222,并且在应用应答装置22中,由密钥使用装置23将处理结果的密文解密为明文,并且利用明文执行该复杂算术计算的其余部分的计算,从而将计算结果返回到数据库使用应用21。通过所讨论的配置使得处理是高效的。在数据库控制装置12中,在数据库操作命令的计算为加法或乘法以外的计算的情况下(例如,加法、减法、乘法、除法等的解密计算,大小比较计算,逻辑计算等),在不可能执行密文的原样计算处理的情况下,数据库11的计算对象数据被按原样传送给应用应答装置22。在应用应答装置22中,使用密钥使用装置23将计算对象密文数据解密为明文,对所讨论的明文数据执行计算,并且将计算结果返回给数据库使用应用21。所讨论的配置可以应对任意计算。
在上述示例性实施例中,示出SQL命令以作为数据库操作命令的示例,但是显然数据库操作命令不限于SQL命令。
在下文中作为示例附加了上述示例性实施例中的至少一些。(注意,对下文不存在任何限制)。
(附注1)
一种数据库加密***,包括:
数据库设备,其包括数据库以及控制所述数据库操作的执行的数据库控制装置;以及
用户设备,其经由网络连接到所述数据库控制装置,其中
该用户设备包括:
密钥使用装置,其管理用于加密和解密的密钥信息;
安全性配置装置,其配置与所述数据库中存储的数据和/或元数据的安全性的配置有关的信息;
第一存储单元,其存储与所述安全性的配置有关的信息;以及
应用应答装置,其接收发布给所述数据库设备的数据库操作命令,并且通过参考所述第一存储单元的信息,确定是否需要针对由所述数据库操作命令所处理的数据和/或元数据的加密,其中
如果需要加密,所述应用应答装置将已经通过使用对应于所述数据和/或元数据的安全性的加密算法、根据所述密钥使用装置的密钥信息而被加密的经加密数据和/或经加密元数据,作为所述数据库操作命令的数据和/或元数据,传送给所述数据库控制装置,以便致使所述数据库控制装置执行所述数据库操作,
如果不需要加密,所述应用应答装置将所述数据库操作命令按原样传送给所述数据库控制装置,以便致使所述数据库控制装置执行所述数据库操作,以及
所述应用应答装置接收由所述数据库控制装置传送的数据库处理结果,并且如果需要对所述数据库处理结果的数据和/或元数据的转换或解密,将所述转换或根据所述密钥使用装置的密钥信息执行解密的结果,作为对所述数据库操作命令的应答,返回给所述数据库操作命令的发布源。
(附注2)
根据附注1所述的数据库加密***,其中
所述安全性配置装置执行下述操作其中至少一个:
关于所述元数据是否被加密的配置或改变,
关于所述数据是否被加密的配置或改变,以及
对表示安全性级别的保密级别信息的配置或改变。
(附注3)
根据附注2所述的数据库加密***,其中
所述第一存储单元保持关于所述元数据是否被加密、所述数据是否被加密、表示所述数据的安全性级别的保密级别信息以及对应于所述保密级别信息的加密算法的识别信息的信息。
(附注4)
根据附注3所述的数据库加密***,其中
在所述数据库中存储的包括表名和列名的元数据被加密的情况下,所述第一存储单元除将加密之前的明文的表名和明文的列名分别存储和保持为经解密表名和经解密列名之外,还保持所述经加密表名和列名。
(附注5)
根据附注4所述的数据库加密***,其中
在所述数据库处理结果的元数据中的表名和列名其中至少一个被加密的情况下,所述应用应答装置获得所述第一存储单元的被保持为经解密表名和经解密列名的明文的表名和明文的列名其中的至少一个。
(附注6)
根据附注1至5中任意一项所述的数据库加密***,其中
所述数据库控制装置接收由所述应用应答装置传送的数据库操作命令,针对所述数据库使用密码协议对经加密数据执行数据库操作或者对明文数据执行数据库操作,以及将处理结果作为所述数据库处理结果返回给所述应用应答装置。
(附注7)
根据附注6所述的数据库加密***,其中
所述数据库控制装置针对所述数据库操作命令的预定的规定操作和计算,对所述数据库中作为密文被存储的密文数据执行所述操作或计算,以及将密文处理结果作为所述数据库处理结果传送给所述应用应答装置。
(附注8)
根据附注4至7中任意一项所述的数据库加密***,其中
所述数据库设备包括:
第二存储单元,其存储和保持有关所述数据库中存储的包括表名和列名的元数据是否被加密、所述数据是否被加密、表示所述数据的安全性级别的保密级别信息以及对应于所述保密级别信息的加密算法的识别信息的信息;以及
第三存储单元,其至少存储和保持与所述数据库操作命令的处理内容、所述保密级别信息以及所述加密算法关联的密码协议识别信息。
(附注9)
根据附注8所述的数据库加密***,其中
所述数据库充当第二和/或第三存储单元,并且将第二和/或第三存储单元中存储的信息作为表保持在数据库中。
(附注10)
根据附注8或9所述的数据库加密***,其中
所述应用应答装置通过参考所述第一至第三存储单元中的至少一个而选择与所述数据对应的对应于保密级别信息的加密算法,并且使用所选择的加密算法和密钥使用装置的密钥信息来加密数据,从而将所述数据传送到数据库控制装置。
(附注11)
根据附注10所述的数据库加密***,其中
所述应用应答装置通过参考所述第一和/或第二存储单元而确定所述数据库操作命令指定的表名和列名是否被加密,并且在所述表名和列名其中至少一个被加密的情况下,用将被传送到所述数据库控制装置的密文替换所述数据库操作命令的表名和列名其中至少一个。
(附注12)
根据附注10所述的数据库加密***,其中
所述数据库控制装置包括密码协议过程执行单元,该密码协议过程执行单元针对由对应于所述保密级别信息的加密算法加密的数据,基于所述第三存储单元的密码协议识别信息,执行处理对应于所述数据库操作命令的内容的密码协议过程。
(附注13)
根据附注1至12中任意一项所述的数据库加密***,其中
在针对所述数据库操作命令的计算操作,在所述数据库中作为密文被存储的将***作的数据由对应于预定的规定准同态计算的加密算法加密,并且所述数据库操作命令的计算操作包括规定准同态计算的情况下,所述数据库控制装置对将***作的经加密数据作为密文执行所述计算操作,并且将密文计算结果作为所述数据库处理结果传送给所述应用应答装置,以及
所述应用应答装置:
(A)将通过使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的密文计算结果而获得的明文计算结果返回给所述数据库操作命令的发布源,或者
(B)在所述数据库操作命令的计算操作进一步需要明文计算的情况下,执行明文计算,并且将所述明文计算结果返回到所述数据库操作命令的发布源,或者
所述应用应答装置:
(C)通过使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的密文计算结果,并且对获得的明文计算结果进一步执行明文计算;
(D)使用所述密钥使用装置的密钥信息加密明文计算结果,随后将经加密结果传送给所述数据库控制装置,并且由数据库控制装置对密文按原样执行计算操作;
(E)使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的密文计算结果,从而得到明文;以及
(F)将明文计算结果返回给所述数据库操作命令的发布源,或者对所述明文计算结果进一步执行计算,或者另外,重复(D)和(E)的处理至少一次,并且随后将所述明文计算结果返回给所述数据库操作命令的发布源。
(附注14)
根据附注1至12中任意一项所述的数据库加密***,其中
在所述数据库中作为密文被存储的、将***作的数据按照密文的原样无法通过所述数据库操作命令的计算操作的解密算法而被加密的情况下,所述数据库控制装置将作为所述计算操作的对象的密文数据传送给所述应用应答装置,以及
所述应用应答装置使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的密文数据,对获得的明文数据执行所述数据库操作命令的计算操作,并且将计算操作结果返回给所述数据库操作命令的发布源。
(附注15)
根据附注8或9所述的数据库加密***,其中
根据安全性配置装置的输入,在加密所述数据库中的表的列数据的情况下,所述数据库控制装置从所述数据库读取列数据,
所述应用应答装置通过参考所述第一和/或第二存储单元,利用对应于配置的保密级别信息的加密算法,使用所述密钥使用装置的密钥信息,来加密通过从所述数据库读取而获得的列数据,并且将所述列数据传送给所述数据库控制装置,
所述数据库控制装置创建密文表,该密文表包括序号和列数据的密文的对,以及
所述数据库控制装置包括密文表信息列表以便管理密文表,所述密文表信息列表包括表名、列名、加密算法和密文表名的元组。
(附注16)
根据附注1至14中任意一项所述的数据库加密***,其中
所述数据库控制装置包括加密计算单元,该加密计算单元使用由应用应答装置传送的公共密钥来加密数据和/或元数据。
(附注17)
根据附注16所述的数据库加密***,其中
在根据所述安全性配置装置的输入来加密所述数据库中的表的列数据的情况下,所述数据库控制装置从所述数据库读取列数据,从所述应用应答装置获得公共密钥信息,以及由所述加密计算单元加密所述列数据,
所述数据库控制装置创建密文表,该密文表包括序号和列数据的密文的对,以及
所述数据库控制装置包括密文表信息列表以便管理所述密文表,该密文表信息列表包括表名、列名、加密算法和密文表名的元组。
(附注18)
根据附注15所述的数据库加密***,其中
在添加列数据的数据库操作命令被输入并且需要加密列数据的情况下,所述应用应答装置使所述用密钥使用装置的密钥信息由对应于列数据的加密算法来加密添加的数据,并且将添加的数据传送给数据库控制装置,以及
所述数据库控制装置将更新的序号和密文的对添加到所述数据库的密文表的末尾。
(附注19)
根据附注3所述的数据库加密***,其中
在从所述安全性配置装置接收改变数据库中存储的数据的保密级别信息的指令时,所述应用应答装置一旦使用密钥使用装置的密钥信息将数据库中存储的经加密数据解密为明文,利用对应于改变的保密级别信息的加密算法重新加密明文并且随后将经重新加密数据传送给所述数据库控制装置,将经重新加密数据存储在所述数据库中,并且更新所述第一存储单元的保密级别信息和加密算法识别信息。
(附注20)
根据附注19所述的数据库加密***,其中
针对所述数据库中存储的数据的保密级别信息的改变,所述安全性配置装置指定表名、列名以及改变后的保密级别信息,
所述应用应答装置从所述第二存储单元获得在数据库中存储的表名和列名的数据的加密中使用的第一组加密算法标识符,并且获得对应于输入的保密级别信息的第二组加密算法标识符,
当在所述第一和第二组中并不存在公共加密算法标识符的情况下,使用所述密钥使用装置的密钥信息,将由第一组中的加密算法标识符其中之一的加密算法而加密的表名和列名的数据的密文解密为明文,并且通过第二组的对应于所输入的保密级别信息的加密算法来加密所述明文,以便将其传送到所述数据库控制装置,以及
所述数据库控制装置在所述密文表中存储序号和密文的对并且随后更新密文表信息列表,并且针对保密级别信息的改变被指定的数据,删除与指定的保密级别信息不对应的密文表。
(附注21)
根据附注1至20中任意一项所述的数据库加密***,其中
所述用户设备向所述数据库发布数据库操作命令,并且执行数据库使用应用程序,该数据库使用应用程序接收所述数据库操作命令的处理结果,以及
所述应用应答装置从所述数据库使用应用程序接收所述数据库操作命令并且将所述数据库操作命令的处理结果返回给所述数据库使用应用程序。
(附注22)
一种经由网络连接到数据库设备的用户设备,该用户设备包括:
密钥使用装置,其管理用于加密和解密的密钥信息;
安全性配置装置,其配置与数据库中存储的数据和/或元数据的安全性的配置有关的信息;
第一存储单元,其存储由所述安全性配置装置配置的信息;以及
应用应答装置,其接收发布给所述数据库设备的数据库操作命令,并且通过参所述考第一存储单元的信息,确定是否需要对所述数据库操作命令处理的数据和/或元数据加密,其中
如果需要加密,所述应用应答装置将已经通过使用对应于所述数据和/或元数据的安全性的加密算法、根据所述密钥使用装置的密钥信息而被加密的经加密数据和/或经加密元数据,作为所述数据库操作命令的数据和/或元数据,传送给所述数据库设备,以便致使所述数据库设备执行数据库操作,
如果不需要加密,所述应用应答装置将所述数据库操作命令按原样传送给所述数据库设备,以便致使所述数据库设备执行所述数据库操作,以及
所述应用应答装置接收由所述数据库设备传送的数据库处理结果,并且如果需要对所述数据库处理结果的数据和/或元数据的转换或解密,将所述转换或根据所述密钥使用装置的密钥信息执行解密的结果作为对所述数据库操作命令的应答,返回给所述数据库操作命令的发布源。
(附注23)
根据附注22所述的用户设备,其中
所述安全性配置装置执行下述操作中的至少一个:对关于所述数据库中存储的包括表名和列名的元数据是否被加密的配置或改变,对关于所述数据是否被加密的配置或改变,以及对表示数据安全性级别的保密级别信息的配置或改变。
(附注24)
根据附注23所述的用户设备,其中
所述第一存储单元保持有关所述数据库中存储的包括表名和列名的元数据是否被加密、所述数据是否被加密、表示数据的安全性级别的保密级别信息以及对应于保密级别信息的加密算法的识别信息的信息,以及
在所述表名和列名被加密的情况下,除了经加密表名和列名,第一存储单元还存储和保持加密之前的明文的表名和明文的列名作为经解密表名和列名。
(附注25)
根据附注24所述的用户设备,其中
所述应用应答装置通过参考所述第一存储单元来确定所述数据库操作命令指定的表名和列名是否被加密,
在所述表名和列名的至少一个被加密的情况下,所述应用应答装置用密文替换明文,以及
在加密数据的情况下,所述应用应答装置通过参考所述第一存储单元,利用对应于所述保密级别信息的加密算法,使用所述密钥使用装置的密钥信息来加密所述数据,并且将经加密数据传送到数据库设备。
(附注26)
一种数据库设备,其接收由根据附注22至25中任意一项所述的用户设备传送的数据库操作命令,针对所述数据库使用密码协议对经加密数据执行数据库操作,或者对明文数据执行数据库操作,以及将处理结果作为数据库处理结果返回给所述应用应答装置。
(附注27)
根据附注26所述的数据库设备,其中
所述数据库控制装置接收由所述应用应答装置传送的数据库操作命令,针对所述数据库使用密码协议对经加密数据执行数据库操作,或者对明文数据执行数据库操作,以及将处理结果作为数据库处理结果返回给所述应用应答装置。
(附注28)
根据附注26所述的数据库设备,其中
所述数据库控制装置针对所述数据库操作命令的预定的规定操作和计算,对所述数据库中作为密文存储的密文数据执行操作或计算,并且将密文处理结果作为数据库处理结果传送给所述应用应答装置。
(附注29)
根据附注26所述的数据库设备,其中
所述数据库设备包括:
第二存储单元,其存储和保持有关所述数据库中存储的包括表名和列名的元数据是否被加密、所述数据是否被加密、表示所述数据的安全性级别的保密级别信息以及对应于保密级别信息的加密算法的识别信息的信息;以及
第三存储单元,其至少存储和保持与所述数据库操作命令的处理内容、保密级别信息以及加密算法关联的密码协议识别信息。
(附注30)
根据附注29所述的数据库设备,其中
所述数据库充当所述第二和/或第三存储单元,并且将所述第二和/或第三存储单元中存储的信息作为表保持在所述数据库中。
(附注31)
根据附注29所述的数据库设备,其中
所述数据库控制装置包括密码协议过程执行单元,该密码协议过程执行单元针对由对应于所述保密级别信息的加密算法而加密的数据,基于所述第三存储单元的密码协议识别信息,执行处理对应于所述数据库操作命令的内容的密码协议过程。
(附注32)
根据附注26至31中任意一项所述的数据库设备,其中
在针对所述数据库操作命令的计算操作,在数据库中作为密文被存储的将***作的数据由对应于预定的规定准同态计算的加密算法加密,并且所述数据库操作命令的计算操作包括规定准同态计算的情况下,所述数据库控制装置对将***作的经加密数据作为密文执行计算操作,并且将密文计算结果作为所述数据库处理结果传送给所述应用应答装置,以及
该应用应答装置:
(A)将通过使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的所述密文计算结果而获得的明文计算结果返回给所述数据库操作命令的发布源,或者
(B)在所述数据库操作命令的所述计算操作进一步需要明文是计算的情况下,执行明文计算,并且将明文计算结果返回给所述数据库操作命令的发布源,或者
该应用应答装置:
(C)通过使用密钥使用装置的密钥信息来解密由数据库控制装置传送的密文计算结果,并且对获得的明文计算结果进一步执行明文计算;
(D)使用所述密钥使用装置的密钥信息加密所述明文计算结果,随后将经加密结果传送给所述数据库控制装置,并且在数据库控制装置中对所述密文按原样执行计算操作;
(E)使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的所述密文计算结果,从而得到明文;以及
(F)将所述明文计算结果返回给所述数据库操作命令的发布源,或者对所述明文计算结果进一步执行计算,或者另外,重复(D)和(E)的处理至少一次并且随后将所述明文计算结果返回给所述数据库操作命令的发布源。
(附注33)
根据附注26至31中任意一项所述的数据库设备,其中
在所述数据库中作为密文被存储的、将***作的数据按照密文的原样无法通过所述数据库操作命令的计算操作的加密算法被加密的的情况下,所述数据库控制装置将作为计算操作对象的密文数据传送给所述应用应答装置,以及
所述应用应答装置使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的密文数据,对获得的明文数据执行所述数据库操作命令的计算操作,并且将计算操作结果返回给所述数据库操作命令的发布源。
(附注34)
根据附注26所述的数据库设备,其中
在加密所述数据库中的表的列数据的情况下,
所述数据库控制装置从所述数据库读取列数据,
所述应用应答装置参考所述第一和/或第二存储单元,以利用对应于配置的保密级别信息的加密算法,使用所述密钥使用装置的密钥信息,来加密通过从数据库读取而获得的列数据,并且将所述列数据传送给所述数据库控制装置,
所述数据库控制装置创建密文表,该密文表包括所述列数据的密文和序号的对,以及
所述数据库控制装置包括密文表信息列表以便管理所述密文表,该密文表信息列表包括表名、列名、加密算法和密文表名的元组。
(附注35)
根据附注26所述的数据库设备,其中
所述数据库控制装置包括加密计算单元,该加密计算单元使用由所述应用应答装置传送的公共密钥来加密数据和/或元数据。
(附注36)
根据附注26所述的数据库设备,其中
在加密所述数据库中的表的列数据的情况下,
所述数据库控制装置从所述数据库读取列数据,从所述应用应答装置获得公共密钥信息,以及由所述加密计算单元加密所述列数据,
所述数据库控制装置创建密文表,该密文表包括列数据的密文和序号的对,以及
所述数据库控制装置包括密文表信息列表以便管理所述密文表,该密文表信息列表包括表名、列名、加密算法和密文表名的元组。
(附注37)
根据附注26所述的数据库设备,其中
在用以添加列数据的数据库操作命令被输入并且需要加密列数据的情况下,所述应用应答装置使用所述密钥使用装置的密钥信息由对应于列数据的加密算法来加密添加的数据,并且将添加的所述数据传送给所述数据库控制装置,以及
所述数据库控制装置将更新的序号和密文的对添加到所述数据库的密文表的末尾。
(附注38)
一种数据库加密方法,包括:
通过经由网络连接到数据库设备的用户设备,存储和管理用于加密和解密的密钥信息;
配置与数据库中存储的数据和/或元数据的安全性的配置有关的信息并且将所述信息存储于第一存储单元;
针对发布给所述数据库设备的数据库操作命令,通过参考第一存储单元的信息,确定是否需要对数据库操作命令处理的数据和/或元数据的加密;
如果需要加密,将已经使用对应于数据和/或元数据的安全性的加密算法、根据密钥信息而被加密的经加密数据和/或经加密元数据,作为所述数据库操作命令的数据和/或元数据,传送给所述数据库设备,以便致使所述数据库设备执行数据库操作;
如果不需要加密,将所述数据库操作命令按原样传送给所述数据库设备,以便致使所述数据库设备执行所述数据库操作;以及
接收由所述数据库设备传送的数据库处理结果,并且如果需要对所述数据库处理结果的数据和/或元数据的转换或解密,将所述转换或根据所述密钥信息执行解密的结果,作为对数据库操作命令的应答,返回给所述数据库操作命令的发布源。
(附注39)
根据附注38所述的数据库加密方法,包括:
在配置安全性时执行下述操作中的至少一个:对关于所述元数据是否被加密的配置或改变,数据是否被加密的配置或改变,以及表示数据安全性级别的保密级别信息的配置或改变。
(附注40)
根据附注38所述的数据库加密方法,其中
所述第一存储单元保持有关所述元数据是否被加密、所述数据是否被加密、表示所述数据的安全性级别的保密级别信息以及对应于所述保密级别信息的加密算法的识别信息的信息。
(附注41)
根据附注40所述的数据库加密方法,其中
在所述数据库中存储的包括表名和列名的元数据被加密的情况下,所述第一存储单元除将加密之前的明文的表名和明文的列名分别存储和保持为经解密表名和经解密列名之外,还保持经加密的表名和列名。
(附注42)
根据附注41所述的数据库加密方法,包括:
在所述数据库处理结果的元数据中的表名和列名其中至少一个被加密的情况下,获得所述第一存储单元中被保持为经解密表名和经解密列名的明文的表名和明文的列名其中至少一个。
(附注43)
根据附注38至42中任意一项所述的数据库加密方法,其中
所述数据库设备接收由所述用户设备传送的数据库操作命令,针对所述数据库,使用密码协议对经加密数据执行数据库操作,或者对明文数据执行数据库操作,以及将处理结果作为所述数据库处理结果返回给所述用户设备。
(附注44)
根据附注43的数据库加密方法,其中
针对所述数据库操作命令的预定的规定操作和计算,所述数据库控制装置对所述数据库中作为密文被存储的密文数据执行操作或计算,以及将密文处理结果作为所述数据库处理结果传送给所述用户设备。
(附注45)
根据附注41至44中任意一项所述的数据库加密方法,其中
所述数据库设备在第二存储单元中存储和保持有关所述数据库中存储的包括表名和列名的元数据是否被加密、所述数据是否被加密、表示数据安全性级别的保密级别信息以及对应于所述保密级别信息的加密算法的识别信息的信息,以及
所述数据库设备在第三存储单元中至少存储和保持与所述数据库操作命令的处理内容、保密级别信息以及加密算法关联的密码协议识别信息。
(附注46)
根据附注45所述的数据库加密方法,其中
所述数据库充当所述第二和/或第三存储单元,并且将所述第二和/或第三存储单元中存储的信息作为表保持在所述数据库中。
(附注47)
根据附注45或46所述的数据库加密方法,
其中所述用户设备通过参考所述第一至第三存储单元中其中至少一个而选择与所述数据对应的对应于所述保密级别信息的加密算法,并且使用所选择的加密算法和所述密钥使用装置的密钥信息来加密所述数据,从而将所述数据传送给所述数据库设备。
(附注48)
根据附注47所述的数据库加密方法,其中
所述用户设备通过参考所述第一和/或第二存储单元而确定所述数据库操作命令指定的表名和列名是否被加密,并且在所述表名和列名其中至少一个被加密的情况下,用密文替换所述数据库操作命令的表名和列名其中至少一个,并且随后将所述密文传送给所述数据库设备。
(附注49)
根据附注47所述的数据库加密方法,其中
所述数据库设备包括密码协议过程执行单元,该密码协议过程执行单元针对由对应于所述保密级别信息的加密算法加密的数据,基于所述第三存储单元的密码协议识别信息,执行处理对应于所述数据库操作命令的内容的密码协议过程。
(附注50)
根据附注38至49中任意一项所述的数据库加密方法,其中
在针对所述数据库操作命令的计算操作,在所述数据库中作为密文被存储的将***作的数据由对应于预定的规定准同态计算的加密算法加密,并且所述数据库操作命令的计算操作包括所述规定准同态计算的情况下,所述数据库设备对将***作的经加密数据作为密文执行计算操作,并且将密文计算结果作为所述数据库处理结果传送给所述用户设备;以及
该用户设备:
(A)将通过使用所述密钥使用装置的密钥信息来解密由所述数据库设备传送的密文计算结果而获得的明文计算结果返回给所述数据库操作命令的发布源,或者
(B)在所述数据库操作命令的计算操作需要明文计算的情况下,执行明文计算,并且将明文计算结果返回给所述数据库操作命令的发布源,或者
该用户设备:
(C)通过使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的密文计算结果,并且对获得的明文计算结果执行明文计算;
(D)使用所述密钥使用装置的密钥信息来加密所述明文计算结果,随后将经加密结果传送给所述数据库设备,并且在所述数据库设备中对密文按原样执行计算操作;
(E)使用所述密钥信息来解密由所述数据库设备传送的密文计算结果,从而得到明文;以及
(F)将明文计算结果返回给所述数据库操作命令的发布源,或者对所述明文计算结果执行计算,或者另外,重复(D)和(E)的处理至少一次并且随后将所述明文计算结果返回给所述数据库操作命令的发布源。
(附注51)
根据附注38至49中任意一项所述的数据库加密方法,其中
在所述数据库中作为密文被存储的、将***作的数据按照密文的原样无法通过所述数据库操作命令的计算操作的加密算法被加密的情况下,所述数据库设备将作为计算操作对象的密文数据传送给所述用户设备,以及
所述用户设备使用所述密钥使用装置的密钥信息来解密由所述数据库设备传送的密文数据,对获得的明文数据执行数据库操作命令的计算操作,并且将所述计算操作结果返回给所述数据库操作命令的发布源。
(附注52)
根据附注45或48所述的数据库加密方法,其中
在根据所述安全性的配置的输入来加密所述数据库中的表的列数据的情况下,
所述数据库设备从所述数据库读取所述列数据,
所述用户设备通过参考所述第一和/或第二存储单元,利用对应于配置的保密级别信息的加密算法,使用所述密钥使用装置的密钥信息,来加密从所述数据库读取的列数据,并且将经加密列数据传送给所述数据库控制装置,
所述数据库设备创建密文表,该密文表包括列数据的密文和序号的对,以及
所述数据库设备包括密文表信息列表以便管理所述密文表,该密文表信息列表包括表名、列名、加密算法和密文表名的元组。
(附注53)
根据附注38至51中任意一项所述的数据库加密方法,其中
所述数据库设备使用由所述应用应答装置传送的公共密钥来加密数据和/或元数据。
(附注54)
根据附注53所述的数据库加密方法,其中
在根据所述安全性的配置的输入来加密所述数据库中的表的列数据的情况下,
所述数据库设备从所述数据库读取列数据,从所述应用应答装置获得公共密钥信息,以及由加密计算单元加密所述列数据,
所述数据库设备创建密文表,该密文表包括列数据的密文和序号的配对,以及
所述数据库设备包括密文表信息列表以便管理所述密文表,该密文表信息列表包括表名、列名、加密算法和密文表名的元组。
(附注55)
根据附注52所述的数据库加密方法,其中
在添加列数据的数据库操作命令被输入并且需要对列数据的加密的情况下,所述用户设备使用所述密钥信息通过对应于所述列数据的加密算法来加密添加的所述数据,并且将添加的所述数据传送给所述数据库设备,以及
所述数据库设备将更新的序号和密文的对添加到所述数据库的所述密文表的末尾。
(附注56)
根据附注40所述的数据库加密方法,其中
在接收改变所述数据库中存储的数据的保密级别信息的指令时,针对所述安全性的配置,所述用户设备一旦使用所述密钥信息将数据库中存储的经加密数据解密为明文,利用对应于改变的保密级别信息的加密算法重新加密所述明文,并且随后将经重新加密数据传送给所述数据库设备,将经重新加密数据存储在所述数据库中,并且更新所述第一存储单元中的所述保密级别信息和所述加密算法识别信息。
(附注57)
根据附注56所述的数据库加密方法,包括:
对于所述数据库中存储的数据的保密级别信息的改变,针对安全性配置,指定表名、列名以及改变后的保密级别信息;
由所述用户设备从所述第二存储单元获得在所述数据库中存储的表名和列名的数据的加密中使用的第一组加密算法标识符,并且获得对应于输入的保密级别信息的第二组加密算法标识符,
当在所述第一和第二组中不存在公共加密算法标识符情况下,通过使用密钥信息将由第一组中的加密算法标识符其中之一的加密算法加密的表名和列名的数据的密文解密为明文,并且通过第二组的对应于所输入的保密级别信息的加密算法来加密该明文,以便将其传送给所述数据库设备;以及
由数据库设备在密文表中存储序号和密文的对,并且随后更新密文表信息列表,并且针对保密级别信息的改变被指定的数据,删除与指定的保密级别信息不对应的密文表。
(附注58)
根据附注38至57中任意一项所述的数据库加密方法,其中
所述用户设备向所述数据库发布数据库操作命令,并且执行数据库使用应用程序,该数据库使用应用程序接收所述数据库操作命令的处理结果,以及
所述用户设备从所述数据库使用应用程序接收数据库操作命令,并且将所述数据库操作命令的处理结果返回给所述数据库使用应用程序。
(附注59)
根据附注38所述的数据库加密方法,其中
所述数据库设备接收由所述用户设备传送的所述数据库操作命令,针对所述数据库,对经加密数据执行密码协议或者对明文数据执行数据库操作,以及将处理结果返回给所述用户设备。
(附注60)
一种程序,致使经由网络连接到数据库设备的用户设备的计算机执行:
管理用于加密和解密的密钥信息的密钥使用过程;
配置与数据库中存储的数据和/或元数据的安全性的配置有关的信息并且存储于第一存储单元的安全性配置过程;以及
通过参考第一存储单元的信息,针对向所述数据库设备发布的数据库操作命令,来确定是否需要对由数据库操作命令处理的数据和/或元数据加密的应用应答过程,其中
该应用应答过程还包括:
如果需要加密,将已经通过使用对应于所述数据和/或元数据的安全性的加密算法、根据所述密钥信息而被加密的经加密数据和/或经加密元数据,作为所述数据库操作命令的数据和/或元数据,传送给所述数据库设备,以便致使所述数据库设备执行数据库操作;
如果不需要加密,将所述数据库操作命令按原样传送给所述数据库设备,以便致使所述数据库设备执行所述数据库操作;以及
接收由所述数据库设备传送的数据库处理结果,并且如果需要对所述数据库处理结果的数据和/或元数据的转换或解密,将所述转换或根据所述密钥使用过程执行解密的结果作为对数据库操作命令的应答,返回给所述数据库操作命令的发布源。
(附注61)
一种程序,其致使计算机形成数据库设备以执行:
在从附注60所述的用户设备接收经加密数据库操作命令时,对数据库执行密码协议的过程;在从所述用户设备接收未加密数据库操作命令时,针对所述数据库,对明文数据执行数据库操作的过程;以及将所述处理结果返回给所述用户设备的过程。
(附注62)
一种计算机可读存储介质,其存储附注60或61所述的程序。
应当指出,上述专利文献PTL1至PTL3以及非专利文献NPL1的相应公开内容通过引用结合于此。在本发明的整个公开内容(包括权利要求书的范围)的范围内,有可能同样基于对本发明的基本技术构思,对实施例和示例进行修改和调整。另外,在本发明的权利要求书的范围内,有可能进行各种公开元素(包括各附注的各元素,各示例性实施例的各元素,各图的各元素等等)的各种广泛的组合和选择。也就是说,本发明明确包括本领域技术人员根据整个公开内容(包括权利要求的范围)以及其技术构思可以实现的每种类型的变型和修改。
附图标记列表
10 数据库设备
11 数据库
12 数据库控制装置
13 密码协议信息存储单元
14 安全性配置信息存储单元
20 用户设备
21 数据库使用应用(程序)
22 应用应答装置
23 密钥使用装置
24 密钥信息存储单元
25 安全性配置信息临时存储单元
26 安全性配置装置
27 输入/输出设备
30 网络
111 密码协议信息表
112 安全性配置信息表
121 数据库操作单元
122 密码协议过程执行单元
123 密码协议信息操作单元
124 安全性配置信息操作单元
125 处理/通信控制单元
126 加密计算单元
221 处理/通信控制单元
222 密码协议过程执行单元
223 数据库操作转换处理单元
224 加密计算单元
225 安全性配置信息操作单元
231 加密计算单元
232 密钥信息管理单元
261 配置显示单元
262 配置输入单元。
Claims (28)
1.一种数据库加密***,包括:
数据库设备,所述数据库设备包括数据库以及控制数据库操作的执行的数据库控制装置;以及
用户设备,所述用户设备经由网络连接到所述数据库控制装置,其中
所述用户设备还包括:
密钥使用装置,所述密钥使用装置管理用于加密和解密的密钥信息;
安全性配置装置,所述安全性配置装置配置与所述数据库中所存储的数据和/或元数据的安全性的配置有关的信息;
第一存储单元,所述第一存储单元存储与所述安全性的配置有关的信息;以及
应用应答装置,所述应用应答装置接收向所述数据库设备发布的数据库操作命令,并且通过参考所述第一存储单元的所述信息,确定是否需要针对由数据库操作命令处理的数据和/或元数据的加密,其中
如果需要加密,所述应用应答装置将已经通过使用对应于所述数据和/或元数据的所述安全性的加密算法、根据所述密钥使用装置的密钥信息而被加密的经加密数据和/或经加密元数据,作为所述数据库操作命令的数据和/或元数据,传送给所述数据库控制装置,以致使所述数据库控制装置执行所述数据库操作,
如果不需要加密,所述应用应答装置将所述数据库操作命令按原样传送给所述数据库控制装置,以致使所述数据库控制装置执行所述数据库操作,以及
所述应用应答装置接收由所述数据库控制装置传送的数据库处理结果,并且如果需要对所述数据库处理结果的所述数据和/或元数据的转换或解密,将所述转换或根据所述密钥使用装置的密钥信息执行所述解密的结果,作为对所述数据库操作命令的应答,返回给所述数据库操作命令的发布源。
2.根据权利要求1所述的数据库加密***,其中
所述安全性配置装置执行下述其中至少一个:
关于所述元数据是否被加密的配置或改变,
关于所述数据是否被加密的配置或改变,以及
表示所述安全性级别的保密级别信息的配置或改变。
3.根据权利要求2所述的数据库加密***,其中
所述第一存储单元保持与所述元数据是否被加密、所述数据是否被加密、表示所述数据的所述安全性级别的保密级别信息以及对应于所述保密级别信息的加密算法的识别信息有关的信息。
4.根据权利要求3所述的数据库加密***,其中
在所述数据库中所存储的包括表名和列名的所述元数据被加密的情况下,所述第一存储单元除了将加密之前的明文的所述表名和明文的所述列名分别存储和保持为经解密表名和经解密列名之外,保持所述经加密表名和列名。
5.根据权利要求4所述的数据库加密***,其中
所述应用应答装置在所述数据库处理结果的元数据中的表名和列名中的至少一个被加密的情况下,获取所述第一存储单元的被保持为所述经解密表名和所述经解密列名的、明文的所述表名和明文的所述列名中的至少一个。
6.根据权利要求1至5中任何一项所述的数据库加密***,其中
所述数据库控制装置接收由所述应用应答装置传送的所述数据库操作命令,针对所述数据库,使用密码协议对经加密数据执行数据库操作或者对明文数据执行数据库操作,以及将处理结果作为数据库处理结果返回给所述应用应答装置。
7.根据权利要求6所述的数据库加密***,其中
所述数据库控制装置针对所述数据库操作命令的预定的规定操作和计算,对所述数据库中作为密文而存储的密文数据执行所述操作或计算,以及将密文处理结果作为所述数据库处理结果传送给所述应用应答装置。
8.根据权利要求4或5所述的数据库加密***,其中
所述数据库设备包括:
第二存储单元,所述第二存储单元存储和保持与所述数据库中所存储的包括表名和列名的所述元数据是否被加密、所述数据是否被加密、表示所述数据的所述安全性级别的保密级别信息以及对应于所述保密级别信息的加密算法的识别信息有关的信息;以及
第三存储单元,所述第三存储单元至少存储和保持密码协议识别信息,所述密码协议识别信息关联所述数据库操作命令的处理内容、所述保密级别信息以及所述加密算法。
9.根据权利要求8所述的数据库加密***,其中
所述数据库充当所述第二存储单元和/或所述第三存储单元,并且将所述第二存储单元和/或所述第三存储单元中所存储的信息作为表保持在所述数据库中。
10.根据权利要求8所述的数据库加密***,其中
所述应用应答装置通过参考所述第一存储单元至所述第三存储单元中的至少一个而选择与所述数据对应的、对应于所述保密级别信息的加密算法,并且使用选择的所述加密算法和所述密钥使用装置的密钥信息来加密所述数据,以将所述数据传送给所述数据库控制装置。
11.根据权利要求10所述的数据库加密***,其中
所述应用应答装置通过参考所述第一存储单元和/或所述第二存储单元来确定由所述数据库操作命令指定的表名和列名是否被加密,并且在所述表名和所述列名中的至少一个被加密的情况下,将所述数据库操作命令的所述表名和所述列名中的至少一个替换成密文后传送给所述数据库控制装置。
12.根据权利要求10所述的数据库加密***,其中
所述数据库控制装置包括密码协议过程执行单元,所述密码协议过程执行单元针对由对应于所述保密级别信息的加密算法而加密的数据,基于所述第三存储单元的密码协议识别信息,执行处理对应于所述数据库操作命令的内容的密码协议过程。
13.根据权利要求1至5中任何一项所述的数据库加密***,其中
在针对所述数据库操作命令的计算操作,在数据库中被作为密文存储的将***作的数据由对应于预定的规定的准同态计算的加密算法加密,并且所述数据库操作命令的所述计算操作包括所述规定的准同态计算的情况下,所述数据库控制装置对将***作的所述经加密数据作为密文执行计算操作,并且将密文计算结果作为所述数据库处理结果传送给所述应用应答装置,以及
所述应用应答装置:
(A)将通过使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的所述密文计算结果而获得的明文计算结果返回给所述数据库操作命令的所述发布源,或者
(B)在所述数据库操作命令的所述计算操作进一步需要明文的计算的情况下,执行所述明文的计算,并且将所述明文计算结果返回给所述数据库操作命令的所述发布源,或者
所述应用应答装置:
(C)通过使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的所述密文计算结果,并且对获得的明文计算结果进一步执行明文计算;
(D)使用所述密钥使用装置的密钥信息来加密所述明文计算结果,随后将经加密的所述结果传送给所述数据库控制装置,并且由所述数据库控制装置对所述密文按原样执行计算操作;
(E)使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的所述密文计算结果,从而得到明文;以及
(F)将所述明文计算结果返回给所述数据库操作命令的所述发布源,或者对所述明文计算结果进一步执行计算,或者另外,重复(D)和(E)的所述处理至少一次并且随后将所述明文计算结果返回给所述数据库操作命令的所述发布源。
14.根据权利要求1至5中任何一项所述的数据库加密***,其中
所述数据库控制装置在所述数据库中作为密文被存储的、将***作的数据按照密文的原样无法通过所述数据库操作命令的计算操作的加密算法被加密的情况下,将作为所述计算操作的对象的所述密文数据传送给所述应用应答装置,以及
所述应用应答装置使用所述密钥使用装置的密钥信息来解密由所述数据库控制装置传送的所述密文数据,对获得的明文数据执行所述数据库操作命令的计算操作,并且将所述计算操作结果返回给所述数据库操作命令的所述发布源。
15.根据权利要求8所述的数据库加密***,其中
在根据所述安全性配置装置的输入来加密所述数据库中的表的列数据的情况下,
所述数据库控制装置从所述数据库中读取所述列数据,
所述应用应答装置通过参考所述第一存储单元和/或所述第二存储单元,利用对应于配置的保密级别信息的加密算法,使用所述密钥使用装置的密钥信息,来加密通过从所述数据库读取而获得的所述列数据,并且将所述列数据传送给所述数据库控制装置,
所述数据库控制装置创建密文表,所述密文表包括所述列数据的密文和序号的对,以及
所述数据库控制装置包括密文表信息列表以便管理所述密文表,所述密文表信息列表包括表名、列名、加密算法和密文表名的元组。
16.根据权利要求1至5中任何一项所述的数据库加密***,其中
所述数据库控制装置包括加密计算单元,所述加密计算单元使用由所述应用应答装置传送的公共密钥来加密数据和/或元数据。
17.根据权利要求16所述的数据库加密***,其中
在根据所述安全性配置装置的输入来加密所述数据库中的表的列数据的情况下,所述数据库控制装置从所述数据库读取所述列数据,从所述应用应答装置获得公共密钥信息,以及由所述加密计算单元加密所述列数据,
所述数据库控制装置创建密文表,所述密文表包括所述列数据的密文和序号的对,以及
所述数据库控制装置包括密文表信息列表以便管理所述密文表,所述密文表信息列表包括表名、列名、加密算法和密文表名的元组。
18.根据权利要求15所述的数据库加密***,其中
所述应用应答装置在用以添加列数据的数据库操作命令被输入并且需要对所述列数据的加密的情况下,使用所述密钥使用装置的密钥信息,通过对应于所述列数据的加密算法来加密添加的所述数据,并且将添加的所述数据传送给所述数据库控制装置,以及
数据库控制装置将更新的序号和密文的对添加到所述数据库的密文表的末尾。
19.根据权利要求8所述的数据库加密***,其中
所述应用应答装置在从所述安全性配置装置接收用以改变所述数据库中所存储的数据的保密级别信息的指令时,使用所述密钥使用装置的密钥信息将所述数据库中所存储的经加密数据一旦解密为明文,利用对应于改变的所述保密级别信息的加密算法重新加密所述明文,并且随后将所述经重新加密数据传送给所述数据库控制装置,将所述经重新加密数据存储在所述数据库中,并且更新所述第一存储单元的所述保密级别信息和所述加密算法识别信息。
20.根据权利要求19所述的数据库加密***,其中
所述安全性配置装置针对所述数据库中所存储的数据的保密级别信息的改变,指定表名、列名以及改变后的保密级别信息,
所述应用应答装置从所述第二存储单元获得在对所述数据库中存储的所述表名和列名的所述数据的加密中使用的第一组加密算法标识符,并且获得对应于输入的保密级别信息的第二组加密算法标识符,
在所述第一组和所述第二组中并不存在公共加密算法标识符的情况下,使用所述密钥使用装置的密钥信息,将由所述第一组中的所述加密算法标识符其中之一的加密算法而加密的所述表名和列名的所述数据的密文解密为明文,并且所述明文被所述第二组的对应于输入的所述保密级别信息的加密算法而加密,以被传送给所述数据库控制装置,以及
所述数据库控制装置在所述密文表中存储密文和序号的对,并且随后更新所述密文表信息列表,以及针对被指定了所述保密级别信息的改变的数据,删除与指定的所述保密级别信息不对应的密文表。
21.根据权利要求1至5、19和20中任何一项所述的数据库加密***,其中
所述用户设备向所述数据库发布数据库操作命令,并且执行数据库使用应用程序,所述数据库使用应用程序接收所述数据库操作命令的处理结果,以及
所述应用应答装置从所述数据库使用应用程序接收数据库操作命令,并且将所述数据库操作命令的处理结果返回给所述数据库使用应用程序。
22.一种经由网络连接到数据库设备的用户设备,所述用户设备包括:
密钥使用装置,所述密钥使用装置管理用于加密和解密的密钥信息;
安全性配置装置,所述安全性配置装置配置与所述数据库中所存储的数据和/或元数据的安全性的配置相关的信息;
第一存储单元,所述第一存储单元存储由所述安全性配置装置配置的信息;以及
应用应答装置,所述应用应答装置接收发布给所述数据库设备的数据库操作命令,并且通过参考所述第一存储单元的所述信息,确定是否需要针对由所述数据库操作命令处理的数据和/或元数据的加密,其中
如果需要加密,所述应用应答装置将已经通过使用对应于所述数据和/或元数据的所述安全性的加密算法、根据所述密钥使用装置的密钥信息而被加密的经加密数据和/或经加密元数据,作为所述数据库操作命令的数据和/或元数据,传送给所述数据库设备,以致使所述数据库设备执行数据库操作,
如果不需要加密,所述应用应答装置将所述数据库操作命令按原样传送给所述数据库设备,以致使所述数据库设备执行所述数据库操作,以及
所述应用应答装置接收由所述数据库设备传送的数据库处理结果,并且如果需要对所述数据库处理结果的所述数据和/或元数据的转换或解密,将所述转换或根据所述密钥使用装置的密钥信息执行所述解密的结果,作为对所述数据库操作命令的应答,返回给所述数据库操作命令的发布源。
23.根据权利要求22所述的用户设备,其中
所述安全性配置装置执行下述其中至少一个:关于所述数据库中存储的包括表名和列名的元数据是否被加密的配置或改变,关于所述数据是否被加密的配置或改变,以及表示数据安全性级别的保密级别信息的配置或改变。
24.根据权利要求23所述的用户设备,其中
所述第一存储单元保持与所述数据库中所存储的包括表名和列名的元数据是否被加密、所述数据是否被加密、表示所述数据的所述安全性级别的保密级别信息以及对应于所述保密级别信息的加密算法的识别信息有关的信息,以及
所述第一存储单元在所述表名和列名被加密的情况下,除了经加密表名和列名外,还存储和保持加密之前的明文的所述表名和明文的所述列名作为经解密表名和列名。
25.根据权利要求24所述的用户设备,其中
所述应用应答装置通过参考所述第一存储单元来确定所述数据库操作命令指定的表名和列名是否被加密,
所述应用应答装置在所述表名和所述列名的至少一个被加密的情况下,利用密文替换明文,以及
所述应用应答装置在加密数据的情况下,通过参考所述第一存储单元,利用对应于所述保密级别信息的加密算法,使用所述密钥使用装置的密钥信息来加密所述数据,并且将经加密的所述数据传送给所述数据库设备。
26.一种用于数据库操作的设备,包括:
用于接收由根据权利要求22至25中任意一项所述的用户设备传送的数据库操作命令的装置,
用于针对所述数据库对经加密数据使用密码协议执行数据库操作,或者对明文数据执行数据库操作的装置,以及
用于将处理结果作为所述数据库处理结果,返回给所述应用应答装置的装置。
27.一种数据库加密方法,包括:
通过经由网络连接到数据库设备的用户设备,存储和管理用于加密和解密的密钥信息;
配置与所述数据库中所存储的数据和/或元数据的安全性的配置有关的信息并且将所述信息存储在第一存储单元中;
通过参考所述第一存储单元的所述信息,针对发布给所述数据库设备的数据库操作命令,确定是否需要对由数据库操作命令处理的所述数据和/或元数据进行加密;
如果需要加密,将已经使用对应于所述数据和/或元数据的所述安全性的加密算法、根据所述密钥信息而被加密的经加密数据和/或经加密元数据,作为所述数据库操作命令的数据和/或元数据而传送给所述数据库设备,以致使所述数据库设备执行数据库操作;
如果不需要加密,将所述数据库操作命令按原样传送给所述数据库设备,以致使所述数据库设备执行所述数据库操作;以及
接收由所述数据库设备传送的数据库处理结果,并且如果需要对所述数据库处理结果的所述数据和/或元数据的转换或解密,将所述转换或根据所述密钥信息执行所述解密的结果,作为对所述数据库操作命令的应答,返回给所述数据库操作命令的发布源。
28.根据权利要求27所述的数据库加密方法,其中
所述数据库设备接收由所述用户设备传送的所述数据库操作命令,针对所述数据库,对经加密数据执行密码协议或者对明文数据执行数据库操作,以及将处理结果返回给所述用户设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-247908 | 2011-11-11 | ||
JP2011247908 | 2011-11-11 | ||
PCT/JP2012/079149 WO2013069776A1 (ja) | 2011-11-11 | 2012-11-09 | データベース暗号化システムと方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103392178A CN103392178A (zh) | 2013-11-13 |
CN103392178B true CN103392178B (zh) | 2015-08-26 |
Family
ID=48290143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280003997.5A Expired - Fee Related CN103392178B (zh) | 2011-11-11 | 2012-11-09 | 数据库加密***、方法和程序 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8812877B2 (zh) |
EP (1) | EP2778951B1 (zh) |
JP (2) | JP5344109B1 (zh) |
KR (1) | KR101388724B1 (zh) |
CN (1) | CN103392178B (zh) |
WO (1) | WO2013069776A1 (zh) |
Families Citing this family (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9449178B2 (en) * | 2012-07-24 | 2016-09-20 | ID Insight | System, method and computer product for fast and secure data searching |
US20140237252A1 (en) * | 2012-12-31 | 2014-08-21 | Safelylocked, Llc | Techniques for validating data exchange |
US9215067B2 (en) * | 2013-04-05 | 2015-12-15 | International Business Machines Corporation | Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters |
WO2014179367A1 (en) * | 2013-04-29 | 2014-11-06 | Hughes Network Systems, Llc | Data encryption protocols for mobile satellite communications |
EP2809027B1 (en) * | 2013-05-30 | 2018-09-12 | Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO | Method and system for reconstruction of a data object from distributed redundant data parts |
WO2014203339A1 (ja) * | 2013-06-18 | 2014-12-24 | 株式会社日立製作所 | 保持数検証システム |
US9118631B1 (en) * | 2013-08-16 | 2015-08-25 | Google Inc. | Mixing secure and insecure data and operations at server database |
US20150082054A1 (en) * | 2013-08-21 | 2015-03-19 | Venux LLC | System and Method for Establishing a Secure Digital Environment |
US9672200B1 (en) * | 2013-11-06 | 2017-06-06 | Apttex Corporation | Spreadsheet with dynamic cell dimensions generated by a spreadsheet template based on remote application values |
CN103699855B (zh) * | 2013-12-05 | 2018-04-27 | 华为技术有限公司 | 一种数据处理方法和装置 |
US10380352B2 (en) * | 2014-02-04 | 2019-08-13 | International Business Machines Corporation | Document security in enterprise content management systems |
JP6273951B2 (ja) * | 2014-03-24 | 2018-02-07 | 富士通株式会社 | 暗号化装置、暗号化方法、情報処理装置および暗号化システム |
KR101670496B1 (ko) | 2014-08-27 | 2016-10-28 | 주식회사 파수닷컴 | 데이터 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체, 데이터 관리 방법을 실행하는 사용자 클라이언트 |
US9900287B1 (en) * | 2014-09-12 | 2018-02-20 | Verily Life Sciences, LLC | Transmitting sensitive information securely over unsecured networks without authentication |
GB2531770A (en) * | 2014-10-30 | 2016-05-04 | Ibm | Confidential Extracting System Internal Data |
CN104363288B (zh) * | 2014-11-18 | 2018-09-14 | 深圳市大成天下信息技术有限公司 | 一种文档管理***和方法 |
EP3223453B1 (en) * | 2014-11-19 | 2019-03-06 | Huawei Technologies Co., Ltd. | Directional traffic statistics method, device and system |
GB2533098B (en) * | 2014-12-09 | 2016-12-14 | Ibm | Automated management of confidential data in cloud environments |
CN104517066A (zh) * | 2014-12-16 | 2015-04-15 | 上海师范大学 | 一种文件夹加密方法 |
US9537838B2 (en) | 2014-12-22 | 2017-01-03 | Sap Se | Adjustable proxy re-encryption |
US9516065B2 (en) * | 2014-12-23 | 2016-12-06 | Freescale Semiconductor, Inc. | Secure communication device and method |
US9547720B2 (en) | 2014-12-24 | 2017-01-17 | Sap Se | Access control for encrypted query processing |
US9898612B2 (en) * | 2015-02-12 | 2018-02-20 | Visa International Service Association | Multi-party encryption cube processing apparatuses, methods and systems |
US20160267279A1 (en) * | 2015-03-02 | 2016-09-15 | Cirrus Lender Services, Inc. | Web application perpetually encrypted obscured filesystem |
JP6186387B2 (ja) * | 2015-03-19 | 2017-08-23 | 株式会社日立製作所 | 秘匿データ処理システム |
US9875370B2 (en) * | 2015-03-26 | 2018-01-23 | Microsoft Technology Licensing, Llc | Database server and client for query processing on encrypted data |
US9727742B2 (en) | 2015-03-30 | 2017-08-08 | Airbnb, Inc. | Database encryption to provide write protection |
US9626410B2 (en) * | 2015-03-31 | 2017-04-18 | International Business Machines Corporation | Vertically partitioned databases |
US10482263B2 (en) | 2015-04-01 | 2019-11-19 | Microsoft Technology Licensing, Llc | Computing on encrypted data using deferred evaluation |
US20180063092A1 (en) * | 2015-04-10 | 2018-03-01 | Pcms Holdings, Inc. | System and method for delegation of cloud computing processes |
WO2016178291A1 (ja) * | 2015-05-07 | 2016-11-10 | 日本電気株式会社 | 秘密計算データ利用システムと方法と装置並びにプログラム |
KR102423885B1 (ko) * | 2015-05-08 | 2022-07-21 | 한국전자통신연구원 | 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템 |
WO2016181904A1 (ja) * | 2015-05-14 | 2016-11-17 | 日本電信電話株式会社 | データベースシステム、データベース処理方法 |
US9742556B2 (en) | 2015-08-25 | 2017-08-22 | International Business Machines Corporation | Comparison and search operations of encrypted data |
CN106484378B (zh) * | 2015-08-28 | 2019-08-09 | 阿里巴巴集团控股有限公司 | 一种无落地的数据处理方法及装置 |
CN105141416A (zh) * | 2015-10-14 | 2015-12-09 | 公安部第三研究所 | 基于硬件芯片的用户权限分发控制***及方法 |
EP3425613A4 (en) | 2016-03-02 | 2019-10-30 | Hitachi, Ltd. | KEY GENERATING DEVICE, COMPUTER SYSTEM AND STATISTICAL ENCRYPTION METHOD |
US10789374B2 (en) | 2016-03-28 | 2020-09-29 | Hitachi, Ltd. | Database system and data retrieval method |
US10210266B2 (en) * | 2016-05-25 | 2019-02-19 | Microsoft Technology Licensing, Llc | Database query processing on encrypted data |
WO2018000317A1 (en) * | 2016-06-30 | 2018-01-04 | Nokia Technologies Oy | Secure data processing |
US11210406B2 (en) | 2016-07-15 | 2021-12-28 | Seagate Technology Llc | Encrypting system level data structures |
US10296757B2 (en) * | 2016-07-29 | 2019-05-21 | Sap Se | Appended key ID for key identification during data encryption |
US10291592B2 (en) | 2016-10-17 | 2019-05-14 | Microsoft Technology Licensing, Llc | Secure electronic communication |
US10395060B2 (en) | 2016-10-17 | 2019-08-27 | Microsoft Technology Licensing, Llc | Multiple message retrieval for secure electronic communication |
CN110089071B (zh) * | 2016-11-04 | 2023-02-17 | 诺基亚技术有限公司 | 安全的分布式数据处理 |
CN106452723B (zh) * | 2016-12-13 | 2017-05-31 | 深圳市全同态科技有限公司 | 一种基于模运算的全同态加密处理方法 |
US11393046B1 (en) * | 2017-01-17 | 2022-07-19 | Intuit Inc. | System and method for perpetual rekeying of various data columns with a frequency and encryption strength based on the sensitivity of the data columns |
CN110169010B (zh) * | 2017-01-18 | 2022-09-23 | 三菱电机株式会社 | 同态运算装置、加密***和计算机能读取的存储介质 |
US10303895B1 (en) * | 2017-01-19 | 2019-05-28 | Intuit Inc. | System and method for perpetual rekeying of various data columns with respective encryption keys and on alternating bases |
US11777729B2 (en) | 2017-01-20 | 2023-10-03 | Enveil, Inc. | Secure analytics using term generation and homomorphic encryption |
US11507683B2 (en) | 2017-01-20 | 2022-11-22 | Enveil, Inc. | Query processing with adaptive risk decisioning |
US10721057B2 (en) | 2017-01-20 | 2020-07-21 | Enveil, Inc. | Dynamic channels in secure queries and analytics |
US10903976B2 (en) | 2017-01-20 | 2021-01-26 | Enveil, Inc. | End-to-end secure operations using a query matrix |
US10873568B2 (en) | 2017-01-20 | 2020-12-22 | Enveil, Inc. | Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix |
US11196541B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | Secure machine learning analytics using homomorphic encryption |
JP2018128602A (ja) * | 2017-02-09 | 2018-08-16 | 日本電気株式会社 | 暗号化データベース管理装置、暗号化データベース管理方法、暗号化データベース管理プログラムおよび暗号化データベース管理システム |
CN108809906B (zh) | 2017-05-03 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 数据处理方法、***及装置 |
KR101979320B1 (ko) * | 2017-05-18 | 2019-05-16 | 뱅크웨어글로벌 주식회사 | 메타정보 및 엔터프라이즈 프레임웍을 이용한 암호화 sql문 자동 생성 시스템 및 방법 |
JP6302592B2 (ja) * | 2017-06-23 | 2018-03-28 | 株式会社エヌ・ティ・ティ・データ | 情報処理装置、情報処理方法およびプログラム |
CN107392014B (zh) * | 2017-06-23 | 2021-04-30 | 复旦大学 | 基于数据库结构随机变化的sql注入防御方法和*** |
CN107317819A (zh) * | 2017-07-13 | 2017-11-03 | 北京邮电大学 | 基于可信数据格式的通用数据的加密方法、解密方法及其装置 |
CN109933994B (zh) * | 2017-12-18 | 2024-03-29 | 北京三快在线科技有限公司 | 数据分级存储方法和装置以及计算设备 |
CA3086236A1 (en) | 2017-12-18 | 2019-06-27 | Beijing Sankuai Online Technology Co., Ltd | Encrypted storage of data |
US10528556B1 (en) | 2017-12-31 | 2020-01-07 | Allscripts Software, Llc | Database methodology for searching encrypted data records |
US10528557B1 (en) * | 2017-12-31 | 2020-01-07 | Allscripts Software, Llc | Database methodology for searching encrypted data records |
JP6709243B2 (ja) * | 2018-03-01 | 2020-06-10 | 株式会社エヌ・ティ・ティ・データ | 情報処理装置 |
US11159498B1 (en) | 2018-03-21 | 2021-10-26 | Amazon Technologies, Inc. | Information security proxy service |
US10909250B2 (en) * | 2018-05-02 | 2021-02-02 | Amazon Technologies, Inc. | Key management and hardware security integration |
US10204236B1 (en) | 2018-05-30 | 2019-02-12 | Drfirst.Com, Inc. | Self-consistent structures for secure transmission and temporary storage of sensitive data |
US10979403B1 (en) * | 2018-06-08 | 2021-04-13 | Amazon Technologies, Inc. | Cryptographic configuration enforcement |
US10872166B2 (en) * | 2018-09-12 | 2020-12-22 | Netz Forecasts Ltd. | Systems and methods for secure prediction using an encrypted query executed based on encrypted data |
US10902133B2 (en) | 2018-10-25 | 2021-01-26 | Enveil, Inc. | Computational operations in enclave computing environments |
CN109492415A (zh) * | 2018-11-06 | 2019-03-19 | 深圳市东宝信息技术有限公司 | 一种基于敏感数字的安全存储方法及*** |
US10817262B2 (en) | 2018-11-08 | 2020-10-27 | Enveil, Inc. | Reduced and pipelined hardware architecture for Montgomery Modular Multiplication |
US10984137B2 (en) * | 2019-02-15 | 2021-04-20 | Charter Communications Operating, Llc | Secure data at rest |
CN109960942B (zh) * | 2019-03-27 | 2021-04-27 | 厦门商集网络科技有限责任公司 | 基于数据库连接池的数据库数据加解密方法及其*** |
CN110321345A (zh) * | 2019-05-22 | 2019-10-11 | 嘉兴天盾安全技术服务有限公司 | 一种数据加密储存方法 |
CN112307056B (zh) * | 2019-07-31 | 2024-02-06 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
US11316839B2 (en) | 2019-08-19 | 2022-04-26 | Red Hat, Inc. | Proof-of-work key wrapping for temporally restricting data access |
US11303437B2 (en) | 2019-08-19 | 2022-04-12 | Red Hat, Inc. | Proof-of-work key wrapping with key thresholding |
US11271734B2 (en) | 2019-08-19 | 2022-03-08 | Red Hat, Inc. | Proof-of-work key wrapping for verifying device capabilities |
US11424920B2 (en) * | 2019-08-19 | 2022-08-23 | Red Hat, Inc. | Proof-of-work key wrapping for cryptographically controlling data access |
US11411938B2 (en) | 2019-08-19 | 2022-08-09 | Red Hat, Inc. | Proof-of-work key wrapping with integrated key fragments |
US11411728B2 (en) | 2019-08-19 | 2022-08-09 | Red Hat, Inc. | Proof-of-work key wrapping with individual key fragments |
US11436352B2 (en) | 2019-08-19 | 2022-09-06 | Red Hat, Inc. | Proof-of-work key wrapping for restricting data execution based on device capabilities |
KR102673882B1 (ko) * | 2019-10-14 | 2024-06-10 | 삼성에스디에스 주식회사 | 데이터 암호화 방법 및 장치, 데이터 복호화 방법 및 장치 |
US11568063B1 (en) | 2019-11-22 | 2023-01-31 | Amazon Technologies, Inc. | Database with client-controlled encryption key |
US11860673B1 (en) * | 2019-11-22 | 2024-01-02 | Amazon Technologies, Inc. | Database with client-controlled encryption key |
US11595205B1 (en) | 2019-11-22 | 2023-02-28 | Amazon Technologies, Inc. | Database with client-controlled encryption key |
US11546137B2 (en) | 2020-02-26 | 2023-01-03 | International Business Machines Corporation | Generation of a request to initiate a secure data transfer in a computing environment |
US11310036B2 (en) | 2020-02-26 | 2022-04-19 | International Business Machines Corporation | Generation of a secure key exchange authentication request in a computing environment |
US11184160B2 (en) | 2020-02-26 | 2021-11-23 | International Business Machines Corporation | Channel key loading in a computing environment |
US11405215B2 (en) * | 2020-02-26 | 2022-08-02 | International Business Machines Corporation | Generation of a secure key exchange authentication response in a computing environment |
US11502834B2 (en) | 2020-02-26 | 2022-11-15 | International Business Machines Corporation | Refreshing keys in a computing environment that provides secure data transfer |
US11489821B2 (en) | 2020-02-26 | 2022-11-01 | International Business Machines Corporation | Processing a request to initiate a secure data transfer in a computing environment |
US11652616B2 (en) | 2020-02-26 | 2023-05-16 | International Business Machines Corporation | Initializing a local key manager for providing secure data transfer in a computing environment |
CN111740826B (zh) * | 2020-07-20 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 基于加密代理网关的加密方法、解密方法、装置及设备 |
KR102395550B1 (ko) * | 2020-09-29 | 2022-05-09 | 주식회사 에임시스 | 기밀정보 분석 방법 및 장치 |
US11601258B2 (en) | 2020-10-08 | 2023-03-07 | Enveil, Inc. | Selector derived encryption systems and methods |
CN112199703B (zh) * | 2020-10-22 | 2022-09-06 | 福建天晴数码有限公司 | 一种基于客户端的web数据动态加密传输方法及其*** |
US11809589B2 (en) * | 2021-01-21 | 2023-11-07 | Dell Products L.P. | Secure data structure for database system |
CN113407304B (zh) * | 2021-05-28 | 2023-04-11 | 济南浪潮数据技术有限公司 | 一种虚拟机调度和安全访问方法、装置、设备及可读介质 |
CN113591113B (zh) * | 2021-07-29 | 2024-04-05 | 华控清交信息科技(北京)有限公司 | 一种隐私计算方法、装置、***及电子设备 |
CN114422237B (zh) * | 2022-01-18 | 2023-08-18 | 百度在线网络技术(北京)有限公司 | 数据传输方法及装置、电子设备和介质 |
KR102495370B1 (ko) * | 2022-04-28 | 2023-02-06 | 프라이빗테크놀로지 주식회사 | 프록시에 기반하여 애플리케이션의 파일 송신 및 수신을 제어하기 위한 시스템 및 그에 관한 방법 |
US11818109B1 (en) * | 2022-08-19 | 2023-11-14 | Uab 360 It | Secure synchronization of data |
CN116910791B (zh) * | 2023-09-12 | 2023-12-12 | 闪捷信息科技有限公司 | 数据库表列加密分析方法、装置、电子设备和存储介质 |
CN117251871B (zh) * | 2023-11-16 | 2024-03-01 | 支付宝(杭州)信息技术有限公司 | 针对密态数据库的数据处理方法和*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303065A (zh) * | 1999-09-30 | 2001-07-11 | 卡西欧计算机株式会社 | 数据库管理装置和加密/解密*** |
JP2002169808A (ja) * | 2000-11-30 | 2002-06-14 | Hitachi Ltd | セキュアマルチデータベースシステム |
JP2003186725A (ja) * | 2001-12-17 | 2003-07-04 | Kanet:Kk | リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9712459D0 (en) * | 1997-06-14 | 1997-08-20 | Int Computers Ltd | Secure database system |
JPH11143780A (ja) | 1997-11-05 | 1999-05-28 | Hitachi Ltd | データベースにおける秘密情報管理方法およびデータベースの秘密情報管理装置 |
US20010011349A1 (en) * | 1998-09-03 | 2001-08-02 | Greg B. Garrison | System and method for encrypting a data session between a client and a server |
JP4003203B2 (ja) | 2000-08-10 | 2007-11-07 | サイファーゲート株式会社 | 暗号化プログラムを記録した記録媒体及び復号化プログラムを記録した記録媒体 |
US7111005B1 (en) | 2000-10-06 | 2006-09-19 | Oracle International Corporation | Method and apparatus for automatic database encryption |
US20030187848A1 (en) * | 2002-04-02 | 2003-10-02 | Hovhannes Ghukasyan | Method and apparatus for restricting access to a database according to user permissions |
JP2004234344A (ja) | 2003-01-30 | 2004-08-19 | Kddi Corp | データベースアクセスシステム |
US7418600B2 (en) * | 2003-03-13 | 2008-08-26 | International Business Machines Corporation | Secure database access through partial encryption |
US7401233B2 (en) * | 2003-06-24 | 2008-07-15 | International Business Machines Corporation | Method, system, and apparatus for dynamic data-driven privacy policy protection and data sharing |
JP4395611B2 (ja) | 2003-10-28 | 2010-01-13 | 独立行政法人情報通信研究機構 | 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム |
US7395437B2 (en) * | 2004-01-05 | 2008-07-01 | International Business Machines Corporation | System and method for fast querying of encrypted databases |
EP1757006A2 (en) * | 2004-06-01 | 2007-02-28 | Ben-Gurion University of the Negev Research and Development Authority | Structure preserving database encryption method and system |
US7814076B2 (en) * | 2004-12-30 | 2010-10-12 | Oracle International Corporation | Data vault |
US7593942B2 (en) * | 2004-12-30 | 2009-09-22 | Oracle International Corporation | Mandatory access control base |
US7539682B2 (en) * | 2005-03-14 | 2009-05-26 | Microsoft Corporation | Multilevel secure database |
US7761704B2 (en) * | 2005-03-17 | 2010-07-20 | Oracle International Corporation | Method and apparatus for expiring encrypted data |
US7844829B2 (en) * | 2006-01-18 | 2010-11-30 | Sybase, Inc. | Secured database system with built-in antivirus protection |
US20080082837A1 (en) * | 2006-09-29 | 2008-04-03 | Protegrity Corporation | Apparatus and method for continuous data protection in a distributed computing network |
KR100859162B1 (ko) | 2007-10-16 | 2008-09-19 | 펜타시큐리티시스템 주식회사 | 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법 |
JP2009211384A (ja) * | 2008-03-04 | 2009-09-17 | Ntt Docomo Inc | 検索代理装置及び検索代理方法 |
US8213620B1 (en) * | 2008-11-17 | 2012-07-03 | Netapp, Inc. | Method for managing cryptographic information |
JP5140026B2 (ja) | 2009-03-19 | 2013-02-06 | 株式会社日立製作所 | データベース処理方法、データベース処理プログラム、および、暗号化装置 |
JP5573293B2 (ja) | 2010-03-30 | 2014-08-20 | 富士通株式会社 | 認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム |
JP5496756B2 (ja) | 2010-04-16 | 2014-05-21 | 日本電信電話株式会社 | 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体 |
CN102024054A (zh) * | 2010-12-10 | 2011-04-20 | 中国科学院软件研究所 | 一种面向密文云存储的文档检索方法与*** |
-
2012
- 2012-11-09 KR KR1020137013395A patent/KR101388724B1/ko active IP Right Grant
- 2012-11-09 JP JP2013525041A patent/JP5344109B1/ja active Active
- 2012-11-09 CN CN201280003997.5A patent/CN103392178B/zh not_active Expired - Fee Related
- 2012-11-09 US US13/991,101 patent/US8812877B2/en active Active
- 2012-11-09 WO PCT/JP2012/079149 patent/WO2013069776A1/ja active Application Filing
- 2012-11-09 EP EP12848286.6A patent/EP2778951B1/en active Active
-
2013
- 2013-08-14 JP JP2013168697A patent/JP5679018B2/ja active Active
-
2014
- 2014-07-03 US US14/323,364 patent/US9349023B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303065A (zh) * | 1999-09-30 | 2001-07-11 | 卡西欧计算机株式会社 | 数据库管理装置和加密/解密*** |
JP2002169808A (ja) * | 2000-11-30 | 2002-06-14 | Hitachi Ltd | セキュアマルチデータベースシステム |
JP2003186725A (ja) * | 2001-12-17 | 2003-07-04 | Kanet:Kk | リレーショナルデータベース及びそのリレーショナルデータベースにおけるインデックステーブルの作成方法並びに該リレーショナルデータベースにおける範囲検索の方法およびその範囲検索のための順位検索方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2778951B1 (en) | 2017-04-26 |
US20150006908A1 (en) | 2015-01-01 |
JP2014013582A (ja) | 2014-01-23 |
JPWO2013069776A1 (ja) | 2015-04-02 |
CN103392178A (zh) | 2013-11-13 |
WO2013069776A1 (ja) | 2013-05-16 |
KR101388724B1 (ko) | 2014-04-25 |
US20130246813A1 (en) | 2013-09-19 |
EP2778951A4 (en) | 2015-05-13 |
EP2778951A1 (en) | 2014-09-17 |
US9349023B2 (en) | 2016-05-24 |
JP5344109B1 (ja) | 2013-11-20 |
KR20130079607A (ko) | 2013-07-10 |
JP5679018B2 (ja) | 2015-03-04 |
US8812877B2 (en) | 2014-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103392178B (zh) | 数据库加密***、方法和程序 | |
JP6048414B2 (ja) | データベース装置と方法及びプログラム | |
EP3453135B1 (en) | System and method for encryption and decryption based on quantum key distribution | |
US9866375B2 (en) | Multi-level key management | |
US8565422B2 (en) | Method and system for enryption key versioning and key rotation in a multi-tenant environment | |
CN109815719A (zh) | 一种可搜索的数据库安全加密*** | |
US7930560B2 (en) | Personal information management system, personal information management program, and personal information protecting method | |
CN102624708A (zh) | 一种面向云存储的高效数据加密、更新和访问控制方法 | |
US20170099144A1 (en) | Embedded encryption platform comprising an algorithmically flexible multiple parameter encryption system | |
CN106997368A (zh) | 一种数据仓库中的数据保护方法及装置 | |
US20160330022A1 (en) | Cryptographic system, key generation apparatus, re-encryption apparatus and user terminal | |
US10826693B2 (en) | Scalable hardware encryption | |
JP2019057822A (ja) | 医療データ検索システム、医療データ検索方法および医療データ検索プログラム | |
CN109802832A (zh) | 一种数据文件的处理方法、***、大数据处理服务器和计算机存储介质 | |
US10594473B2 (en) | Terminal device, database server, and calculation system | |
EP3809300A1 (en) | Method and apparatus for data encryption, method and apparatus for data decryption | |
US11139969B2 (en) | Centralized system for a hardware security module for access to encryption keys | |
CN105208017A (zh) | 一种存储器信息获取方法 | |
KR101146510B1 (ko) | Synk 데이터베이스 암호화 시스템 및 그 방법 | |
KR101635005B1 (ko) | 클라우드 기반 디지털 데이터 금고 시스템에서 메타데이터 관리 방법 | |
Abdulhamid et al. | Development of blowfish encryption scheme for secure data storage in public and commercial cloud computing environment | |
JP7325872B1 (ja) | 秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法 | |
TW201605218A (zh) | 金鑰更換方法、加密方法、解密方法及電腦程式產品 | |
CN115333875A (zh) | 一种数据共享的方法、***、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150826 Termination date: 20201109 |
|
CF01 | Termination of patent right due to non-payment of annual fee |