CN1761923B - 加密数据库列的方法和设备 - Google Patents
加密数据库列的方法和设备 Download PDFInfo
- Publication number
- CN1761923B CN1761923B CN2004800068738A CN200480006873A CN1761923B CN 1761923 B CN1761923 B CN 1761923B CN 2004800068738 A CN2004800068738 A CN 2004800068738A CN 200480006873 A CN200480006873 A CN 200480006873A CN 1761923 B CN1761923 B CN 1761923B
- Authority
- CN
- China
- Prior art keywords
- row
- database
- key
- encrypted
- column
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 31
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 239000000203 mixture Substances 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 7
- 238000007726 management method Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 101100277598 Sorghum bicolor DES3 gene Proteins 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的一个实施例提供了一种系统,其便于对数据库列内的数据进行加密。所述系统首先通过接收执行数据库操作的命令来工作。然后,所述系统解析命令以创建解析树。然后,所述系统检查解析树以确定所述解析树中引用的列是否是加密的列。如果所述解析树中引用的列是加密的列,那么所述系统自动转换所述命令,以包括一个或多个隐文命令,从而在执行数据库操作时便于存取加密的列。
Description
技术领域
本发明涉及数据库安全。更具体地,本发明涉及在数据库内逐列透明地加密和解密数据的方法和设备。
背景技术
数据库安全在许多数据库系统中是一个重要的特征。在数据库系统中,安全性常常是通过加密数据库系统内的数据实现的。目前,有两种主要的方法用于加密存储在数据库系统内的数据。第一种方法的特征是“成批加密(bulk encryption)”,在整个数据库文件上执行隐文或加密(cryptographic)操作。第二种方法对数据库内特定的敏感列有选择地应用隐文操作。
成批加密通常需要加密整个数据库,因为敏感数据并非仅存储在一个特定的表中。敏感数据也可能出现在其他数据库对象中。例如,敏感数据可出现在索引中,在撤消和重做日志的变化记录中和在临时存储区域中。由于这些数据库对象被设计成由整个数据库系统共享,因此在这些数据库对象内隔离数据以使某些数据被加密而某些数据没有被加密是不实际的。
虽然成批加密的实现相对简单,并且对于存取数据库的应用程序是透明的,但是存在重大缺陷。这些缺陷中的主要缺陷是系统性能下降。加密或解密整个数据库文件要花费较长时间。在这种系统中,重新指定密钥的操作包括解密然后重新加密整个数据库文件。这些操作花费大量的时间,这使得这个解决方案不适合大型在线事务处理部署。而且,系统的安全性被损害,因为数据库记录在数据记录从文件解密之后作为明文暴露在共享的存储器中。
第二种方法仅仅加密数据库内的敏感列,这在理论上能减少执行涉及隐文操作的总开销。但是,使用这种方法的当前可用的系统有一些较大的缺点。加密和解密操作必须被显式地应用于加密列中的任何引用。例如,希望发布命令检索社会保险号码为“123456789”的客户的信用卡号码的应用程序必须发布命令:
select credit_card_number from tab where ssn=′123456789′
但是,如果这些列都被加密,那么必须修改查询以包括解密命令,例如:
select decrypt(credit_card_number)from tab where decrypt(ssn)=′123456789′
注意加密和解密功能还必须提供用于选择加密算法的接口,并且该应用程序必须提供密钥管理。
因此,在这个第二种方法中,尽管数据库系统厂商宣称加密和解密操作是透明的,但实际上对于应用程序开发者而言是不透明的。当存取敏感的列时,加密或解密功能必须显式应用到列数据上。为了使这种运行时功能的执行对于用户是透明的并且安全的,必须极大改变应用程序模式对象(application schema object)。例如,具有敏感列的表必须被转成视图,以隐蒇隐文功能。这也意味着然后那个基本对象必须被重命名,因为视图和表处于相同的名字空间中,因而不能共享同一个名字。需要创建触发器,以便视图的插入或更新将导致基本表中的数据被隐式地加密。而且,索引支持将受到限制,因为服务器仅仅能够利用加密的数据创建索引,而加密的数据已经失去了其字典式的顺序。之所以如此,是因为加密和解密操作不能与索引处理层集成在一起。
因此,需要一种用于在数据库系统内逐列透明地加密和解密数据的方法和设备。
发明内容
本发明的一个实施例提供了一种系统,其便于加密数据库的列中的数据。所述系统通过首先接收执行数据库操作的命令来工作。然后,所述系统解析命令以创建解析树。然后所述系统检查解析树以确定所述解析树中引用的列是否是加密的列。如果所述解析树中引用的列是加密列,那么所述系统隐式转换所述解析树,以包括一个或多个隐文操作,从而在执行数据库操作时便于存取加密的列。
在这个实施例的一个变化中,如果数据库操作包括一个来自加密列的引用操作,那么所述系统转换所述解析树,以在所述引用操作期间,对从加密列中检索的数据进行解密,从而提供清楚的文本。
在进一步的变化中,如果命令包括对加密列的更新操作,那么所述系统转换所述解析树,以在所述更新操作期间,对正在加密列中被更新的数据进行加密,从而将加密的数据放置在数据库中。
在进一步的变化中,如果解析树中引用的列是加密的,那么所述系统识别该列的隐文密钥。对于每个命令,为该列的所有存取仅仅恢复密钥一次。
在进一步的变化中,检查解析树包括确定用户命令是否是一个显式请求,其要求加密目前在数据库中未加密的列。如果是这样,那么所述系统加密该列。
在进一步的变化中,检查解析树包括确定用户命令是否是一个显式请求,其要求改变列的加密密钥。如果是这样,那么所述系统用当前的加密密钥来解密该列,并且用新的加密密钥来加密该列。
在进一步的变化中,检查解析树包括确定用户命令是否是一个显式请求,其要求解密数据库中的加密列。如果是这样,那么所述系统解密该列。
在进一步的变化中,检查解析树包括确定用户命令是否是一个显式请求,其要求改变列的加密算法。如果是这样,那么所述系统用目前的加密算法解密该列,并且用新的加密算法加密该列。
附图说明
图1描述了根据本发明一个实施例的数据库系统。
图2描述了根据本发明一个实施例的服务器。
图3示出了一个流程图,其描述了根据本发明一个实施例、将一个数据库查询转换为包括隐文操作的过程。
图4A示出了根据本发明一个实施例的、未转换的解析树。
图4B示出了根据本发明一个实施例的、转换后的解析树。
图5示出了一个流程图,描述了根据本发明一个实施例、执行一个涉及对列进行加密的命令的过程。
具体实施方式
给出的以下描述使得本领域技术人员能够实施和使用本发明,并且是在特定应用和特定要求的背景中提供的。对所公开的实施例的各种修改对于本领域的专业技术人员而言是非常明显的,并且在不脱离本发明精神和范围的情况下,本文所限定的一般性原理可被应用于其他的实施例和应用中。因此,本发明不应被局限于所示的实施例,而应为与本文所公开的原理和特征一致的、最广泛的范围。
本节所描述的数据结构和代码通常被存储在计算机可读存储介质中,计算机可读存储介质可以是能够存储由计算机系统使用的代码和/或数据的任何设备或介质。这包括但不限于:磁性和光学存储设备(例如磁盘驱动器、磁盘、CD(光盘)和DVD(数字通用光盘或数字视频光盘))和包含在传输介质中的计算机指令信号(该传输介质中具有或者不具有在其上调制信号的载波)。例如,传输介质可包括通信网络,例如因特网。
数据库系统
图1描述了根据本发明一个实施例的数据库系统。所述数据库系统包括客户机102、服务器104和数据库106。客户机一般包括具有计算能力的、网络上的任何节点,并且可包括通过网络进行通信的装置(mechanism)。
服务器104一般包括任何计算节点,该计算节点包括一个服务于计算和/或数据存储资源的客户机请求的装置。服务器104与一个或多个客户机通信,并且给每个客户机提供服务。这种通信典型地穿过网络(未示出),例如因特网或企业内部网。服务器104可被实现为一组共同工作以提供计算和数据库服务的服务器。
数据库106可包括用于在永久性存储器中存储数据的、任何类型的系统。这包括但不限于,基于磁性、光学和磁光存储设备的系统,以及基于闪存和/或备用电池存储器的存储设备。数据库106可被直接连接到服务器104或者通过网络存取,例如企业内部网或因特网。
在工作期间,客户机102向服务器104发送数据库命令。这些命令通常是用数据库语言(例如结构化查询语言(SQL))编写的,并且包括数据库106上的引用和更新操作。如果这些引用或更新操作中任何一个包括了对加密列的操作,那么将按照下文结合图2-图5所述的那样来处理这些操作。
服务器
图2描述了根据本发明一个实施例的服务器104。服务器104包括客户机接口202、命令解析器204、命令转换器206、隐文单元和数据库接口210。客户机接口202与客户机102通信,以接受命令和响应来自客户机102的命令。这些命令可包括在数据库106上运行的、用于服务器104的SQL命令。
命令解析器204将命令解析成包含命令的单个的元素(操作数、操作符等等)。命令解析是本领域公知的,在此不再赘述。
命令转换器206检查命令的已解析元素,以定位与数据库106内的加密列相关的任何引用或更新操作。在定位与加密列相关的引用或更新操作时,命令转换器206对操作进行转换,以包括存取加密列必需的隐文操作。下面将结合图4A和图4B详细描述这些转换操作。
隐文单元208执行隐文操作,例如密钥管理、加密和解密。许多标准的密钥管理系统中的任何一个都可与这个系统一起使用。加密和解密能够使用任何可接受的算法执行,例如数据加密标准(DES)、3DES或者高级加密标准(AES)。此外,这些加密算法可与完整性技术例如安全散列算法1(SHA-1)或消息摘要(MD5)组合。
数据库接口210包括存取数据库106的装置。这些存取操作可包括从数据库106检索数据,以及在数据库106内存储或更新数据。注意命令的转换和命令的执行不可能在相同的事件序列中发生。命令的执行可在稍后的时间发生。
转换数据库操作
图3示出了一个流程图,描述根据本发明的一个实施例、转换数据库操作以包括隐文操作的过程。当接收命令执行数据库操作(步骤302)时,系统启动。然后,系统解析命令,以创建解析树(步骤304)。然后系统检查这个解析树,以定位与已加密数据有关的引用列或表达式(步骤306)。
在定位了引用列之后,系统确定该列是否是加密的(步骤308)。如果是,那么系统在这个加密列上对该操作进行转换,以包括隐文操作(步骤310)。注意这个转换过程对于用户是透明的。
如果在步骤308中,该列不是加密的,或者在步骤310转换命令以包括隐文操作之后,系统执行在该命令中指定的操作,从而完成该命令的执行(步骤312)。注意命令的转换和命令的执行不发生在相同的事件序列中。命令的执行可在稍后的时间发生。
解析树
图4A示出了根据本发明一个实施例的、未转换的解析树。系统解析输入的命令,创建解析树。例如,在图4A所示的解析树说明了以下命令如何被解析的:
UPDATE employee SET sal=1.01*sal;
操作符“*”乘以左子树(1.01)又乘以右子树(sal),并且在“sal”列中返回结果给数据库。这个解析树假设“sal”列没有加密。
图4B示出了根据本发明一个实施例的、转换后的解析树。这个解析树假设“SAL”列是加密的。同样,操作符“*”乘以其左子树又乘以其右子树。但是这个右子树已经被转换包括解密操作符“DO.”。DO操作符使用所提供的参数在左子树(在这个例子中是“SAL”)中解密列。提供给DO的参数是算法标识符“ALG_ID”、以及“GK”操作符的结果。“GK”操作符是获得密钥的操作符,其利用所提供的参数来获取列加密密钥。“GK”操作符的输入参数是密钥管理类型(KEY MGTTYPE)、主密钥标识符(MASTER KEY ID)和列密钥标识符(COLUMNKEY ID)。
在DO已经解密“sal”列,且结果已经由操作符“*”乘以1.01之后,加密操作符“EO”加密该结果,并将其传回数据库,存储在“sal”列中。EO操作符的输入是操作符“*”的结果、算法标识符“alg_id”、和操作符“GK”的结果。注意,由于“sal”列密钥没有被改变,用于解密的“GK”操作符的结果与加密的EO是共享的。实际上,“GK”操作符仅仅被调用一次,以更新整个“sal”列。
涉及引用列加密的命令
图5是一个流程图,描述了根据本发明一个实施例、执行一个涉及对列进行加密的命令的过程。当接受一个执行数据库操作的命令(步骤502)时,系统启动。然后,系统解析命令,以创建解析树(步骤504)。然后系统检查这个解析树,以确定命令是否对引用列进行加密(步骤506)。如果是,那么系统在引用列上执行隐文操作(步骤508)。
作为一个例子,如果命令是一个改变加密密钥的命令,例如:
ALTER TABLE employee MODIFY(ssn REKEY);
那么系统首先更新列的元数据。然后系统隐式发出更新语句,其被转换成以下的UPDATE语句用于执行:
UPDATE(employee SET ssn=ENCRYPT(DECRYPT(ssn,k_algorithm_id,GET_KEY(key_mgn_type,master_key_id,col_key_id)),k_algorithm_id,GET_KEY(key_mgn_type,master_key_id,new_col_key_id));
概述
本发明提供了在列或列属性(在对象数据库的情况下)的粒度下进行数据加密。这种加密对于存取数据库内的加密列的应用程序是透明的。
列的保密是作为列属性的一部分来支持的,而不是依靠内建的或者用户定义的加密和解密功能。和其他任何列属性一样,例如约束或者数据类型,列的隐文特征能够使用数据定义语言(DDL)命令定义和改变。以下是典型的定义和改变加密的列属性的管理任务的例子。
可以用不同的加密算法重新加密敏感数据,例如使用语句:
ALTER TABLE employee MODIFY(ssn ENCRYPT USING′AES 128′);
系统首先更新列的元数据。然后系统隐式地发出更新语句,其被转换成以下的UPDATE语句用于执行:
UPDATE(employee SET ssn=ENCRYPT(DECRYPT(ssn,k_algorithm_id,GET_KEY(key_mgn_type,master_key_id,col_key_id)),AES128,GET_KEY(key_mgn_type,master_key_id,col_key_id));
安全需求可能要求定期改变加密密钥。可按照上文中已描述的那样来改变加密密钥。
如果决定以明文(plaintext)形式获得加密数据,那么可使用以下命令:
ALTER TABLE employee MODIFY(ssn ENCRYPT);
系统首先更新列的元数据。然后系统隐式地发出更新语句,其被转换成以下的UPDATE语句用于执行:
UPDATE(employee SET ssn=(DECRYPT(ssn,k_algorithm_id,GET_KEY(key_mgn_type,master_key_id,col_key_id))));
当创建表时,列也能够被声明为加密的。以下的DDL命令给出了在创建职员(employee)表的过程中,加密职员表的SSN和薪金(salary)字段的例子
CREATE TABLE(
name VARCHAR2(30),
employee_id NUMBER(10),
SSN NUMBER(9)ENCRYPT USING′DES3′AND HASHUSING′MD5′,
address VARCHAR2(256),
city VARCHAR2(80),
state VARCHAR2(80),
zip-code VARCHAR2(10),
salary NUMBER(10)ENCRYPT,
date_of_birth DATE,
title VARCHAR2(30));
当列被指定为加密的时,利用列加密密钥对那个列的所有数据进行加密。在将该密钥存储于服务器的元数据表中之前,这个密钥被一个或多个主密钥封装。主密钥的检索取决于选定的密钥管理模式和主密钥的存储位置。这就意味着,对于任何隐文操作,服务器必须首先找到主密钥,然后使用主密钥来解密已加密的列加密密钥。
透明隐文操作的运行时支持基于服务器上三个内部操作符的引入。它们是(1)列加密密钥检索,(2)加密数据,和(3)解密数据。
密钥检索操作符具有接受列加密密钥身份、主密钥身份和密钥管理类型的参数。这个操作符以明文形式返回列加密密钥。
加密和解密操作符具有识别加密的列数据、列加密密钥和加密算法身份的参数。将密钥检索操作符从加密/解密操作符中分开,是因为希望对于每次语句执行,密钥检索操作符只被求值一次。
在语句解析时段,解密操作符可被隐式地添加在列属性周围,其将从服务器中接收加密数据。在转换之后,如果解密功能是显式应用的,那么在表达式中典型的列引用相当于如下语句:
DECRYPT(column,k_algorithm_id,GET_KEY(key_mgn_type,master_key_id,col_key_id))
对于表达式的值(其将被放入数据库中作为插入或更新的值),解密操作符以如下方式添加:
ENCRYPT(expression,k_algorithm_id,GET_KEY(key_mgn_type,master_key_id,col_key_id))
注意,除了加密的列数据之外,DECRYPT和ENCRYPT命令的参数在解析时段是已知的,因为这些值包括在元数据中,而这些元数据在影响加密列的DDL命令时段被保存。这些参数是共享存储器中语句环境的一部分。但是,这些参数没有暴露敏感信息。加密密钥自身仅仅在运行时段被检索一次,并且只出现在用户会话的每执行存储器(per-execution memory)中。用于密钥加密的算法可以是系统范围可配置的参数或能够被加入GET_KEY命令的可选参数。
在执行时段,由于如上所述的、在语句环境中的隐式转换,因而加密数据在表达式求值之前被解密。在对将要永久存储的插入值和更新值进行表达式求值之后,明文被加密。这也保证了在加密和解密期间保护了列的本地数据类型格式。因此,表达式求值的现有实施没有被影响。
例如,假设职员表中的薪金列“sal”被加密。以下的更新语句用于增加工资:
UPDATE employee SET sal=1.01*sal WHERE empno=999999;
其将实际执行为:
UPDATE(employee SET sal=ENCRYPT(1.01*DECRYPT(sal,k_algorithm_id,GET_KEY(key_mgn_type,master_key_id,col_key_id)),k_algorithm_id,GET_KEY(key_mgn_type,master_key_id,col_key_id))
WHERE empno=999999);
密钥检索操作符能够支持多个密钥管理模式,其中每个主密钥或列加密密钥具有其自己的身份,身份是全局唯一的。注意,保护特定列的列加密密钥能够具有多个副本,而且每个副本由不同的主密钥封装。
下面例子示出了系统的灵活性。假设系统具有由可变的“SERVER_HELD”标识的密钥管理类型。在这种模式下,保存在服务器“工具袋(wallet)”中的主密钥将会封装所有的列加密密钥(encryption key)。管理者可使用工具袋管理器产生任何数量的主密钥。但是,当发布例如下面这个SQL命令时,服务器将只选取一个主密钥用于数据库:
ALTER DATABASE MASTER KEY my_db_ms_key;
因此,my_db_ms_key是密钥的外部名字。服务器也产生一个和该密钥关联的全局唯一的身份。服务器只记得当前的主密钥身份,而密钥本身仍然在工具袋中。主密钥的修改也可在数据库创建时进行,因为工具袋管理器不是数据库的一部分。注意,上述命令还要求重新指定数据库中所有的列加密密钥。但是加密的列数据不受影响。
作为管理加密列的一个DDL的结果,当服务器产生新的列加密密钥或替换旧的列加密密钥时,列加密密钥被服务器主密钥封装。如上所述,列加密密钥ID、主密钥ID和加密的列密钥信息被用作密钥检索操作符GET_KEY的参数。基于“SERVER_HELD”密钥管理类型,该操作符能够通过工具袋的应用程序编程接口(API)找到工具袋中的服务器主密钥,从而恢复用于加密和解密操作的明文列加密密钥。
很明显,密钥检索操作符的逻辑是由密钥管理类型驱动的。密钥检索总是查看列加密密钥身份和主密钥身份。新的密钥管理模式能够被容易地插入系统中而不影响明文和密文之间的透明数据转换的实施。有了这些全局唯一的身份,密钥能够被存储在任何地方,只要操作符能够在运行时找到它们即可。可能需要增强DDL命令或者加入新的DDL命令,以支持不同的密钥管理类型。
上文描述了本发明的实施例,但这仅仅是处于解释和说明的目的。这些描述并无意穷举本发明,或者将本发明限制为所公开的形式。因此,许多修改和变化对于本领域技术人员而言是明显的。此外,以上的公开不打算限制本发明。本发明的范围是由所附的权利要求限定的。
Claims (14)
1.一种便于对数据库列中的数据进行加密的方法,其包括:
接收一个执行数据库操作的命令;
解析所述命令以创建一个解析树;
检查所述解析树,以确定在所述解析树中引用的列是否是加密列;和
如果是,则自动转换所述命令,以包括一个或多个隐文命令,从而在执行所述数据库操作时便于存取所述加密列;
其中检查所述解析树还包括确定所述命令是否包括一个加密所述数据库中的所述列的显式命令;如果是,则加密所述列。
2.根据权利要求1所述的方法,其中如果所述数据库操作包括一个来自所述加密列的引用操作,那么所述方法还包括转换所述数据库操作,以在所述引用操作期间解密从所述加密列中检索的数据。
3.根据权利要求1所述的方法,其中如果所述命令包括一个对所述加密列的更新操作,那么所述方法还包括转换所述更新操作,以在所述更新操作期间加密所述加密列中正在被更新的数据。
4.根据权利要求1所述的方法,其中如果一个列是加密的,那么所述方法还包括识别该列的隐文密钥。
5.根据权利要求1所述的方法,其中检查所述解析树还包括:
确定所述命令是否包括一个改变所述列的加密密钥的操作;和
如果是,则用当前的加密密钥来解密所述列,并用新的加密密钥来加密所述列。
6.根据权利要求1所述的方法,其中检查所述解析树还包括:
确定所述命令是否包括一个显式命令,其解密所述数据库中的所述列;和
如果是,则解密所述列。
7.根据权利要求1所述的方法,其中检查所述解析树还包括:
确定所述命令是否包括一个显式命令,其改变所述列的加密算法;和
如果是,则用先前的加密算法来解密所述列;并
用新的加密算法来加密所述列。
8.一种便于对数据库列中的数据进行加密的设备,其包括:
一个接收装置,其被配置成接收一个执行数据库操作的命令;
一个解析装置,其被配置成解析所述命令以创建一个解析树;
一个检查装置,其被配置成检查所述解析树,以确定在所述解析树中引用的列是否是加密列;
一个转换装置,其被配置成自动转换所述命令,以包括一个或多个隐文命令,从而在执行所述数据库操作时便于存取所述加密列;
一个确定装置,其被配置成确定所述命令是否包括一个显式命令,该显式命令加密所述数据库中的所述列;和
一个加密装置,其被配置成,如果所述命令包括加密所述数据库中所述列的所述显式命令,则加密所述列。
9.根据权利要求8所述的设备,其中所述转换装置被进一步配置成对所述数据库操作进行转换,以便如果所述数据库操作包括一个来自所述加密列的引用操作,则在所述引用操作期间解密从所述加密列中检索的数据。
10.根据权利要求8所述的设备,其中所述转换装置被进一步配置成对所述数据库操作进行转换,以便如果所述数据库操作包括一个对所述加密列的更新操作,则在所述更新操作期间加密所述加密列中正在被更新的数据。
11.根据权利要求8所述的设备,还包括一个识别装置,其被配置成,如果一个列是加密的,那么所述识别装置识别该列的隐文密钥。
12.根据权利要求8所述的设备,还包括:
被配置成确定所述命令是否包括一个改变所述列的加密密钥的操作的装置;
被配置成用当前的加密密钥来解密所述列的装置;和
被配置成用新的加密密钥来加密所述列的装置。
13.根据权利要求8所述的设备,还包括
被配置成确定所述命令是否包括一个显式命令的装置,该显式命令解密所述数据库中的所述列;和
被配置成如果所述命令包括解密所述数据库中所述列的所述显式命令,则解密所述列的装置。
14.根据权利要求8所述的设备,还包括:
被配置成确定所述命令是否包括一个改变所述列的加密算法的操作的装置;
被配置成用当前的加密算法来解密所述列的装置;和
被配置成用新的加密算法来加密所述列的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/459,811 US10339336B2 (en) | 2003-06-11 | 2003-06-11 | Method and apparatus for encrypting database columns |
US10/459,811 | 2003-06-11 | ||
PCT/US2004/010360 WO2005003940A1 (en) | 2003-06-11 | 2004-04-01 | Method and apparatus for encrypting database columns |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1761923A CN1761923A (zh) | 2006-04-19 |
CN1761923B true CN1761923B (zh) | 2010-05-26 |
Family
ID=33510874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004800068738A Expired - Lifetime CN1761923B (zh) | 2003-06-11 | 2004-04-01 | 加密数据库列的方法和设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10339336B2 (zh) |
EP (1) | EP1631874A1 (zh) |
JP (1) | JP4685782B2 (zh) |
CN (1) | CN1761923B (zh) |
AU (1) | AU2004254893B2 (zh) |
CA (1) | CA2520669C (zh) |
WO (1) | WO2005003940A1 (zh) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266699B2 (en) * | 2001-08-30 | 2007-09-04 | Application Security, Inc. | Cryptographic infrastructure for encrypting a database |
US7797342B2 (en) * | 2004-09-03 | 2010-09-14 | Sybase, Inc. | Database system providing encrypted column support for applications |
US7743069B2 (en) * | 2004-09-03 | 2010-06-22 | Sybase, Inc. | Database system providing SQL extensions for automated encryption and decryption of column data |
US7639819B2 (en) * | 2005-06-16 | 2009-12-29 | Oracle International Corporation | Method and apparatus for using an external security device to secure data in a database |
JP2007142591A (ja) * | 2005-11-15 | 2007-06-07 | Matsushita Electric Ind Co Ltd | 暗号管理方法 |
US8135948B2 (en) * | 2006-01-27 | 2012-03-13 | Imperva, Inc. | Method and system for transparently encrypting sensitive information |
US7689547B2 (en) * | 2006-09-06 | 2010-03-30 | Microsoft Corporation | Encrypted data search |
US20080082837A1 (en) * | 2006-09-29 | 2008-04-03 | Protegrity Corporation | Apparatus and method for continuous data protection in a distributed computing network |
US20080097954A1 (en) * | 2006-10-20 | 2008-04-24 | Microsoft Corporation | Ranged lookups |
US8639948B2 (en) * | 2006-12-28 | 2014-01-28 | Teradata Us, Inc. | Encrypted data management in database management systems |
US20080163332A1 (en) * | 2006-12-28 | 2008-07-03 | Richard Hanson | Selective secure database communications |
US8958562B2 (en) * | 2007-01-16 | 2015-02-17 | Voltage Security, Inc. | Format-preserving cryptographic systems |
US7809142B2 (en) * | 2007-06-19 | 2010-10-05 | International Business Machines Corporation | Data scrambling and encryption of database tables |
WO2009020789A2 (en) * | 2007-08-03 | 2009-02-12 | Interdigital Patent Holdings, Inc. | Security procedure and apparatus for handover in a 3gpp long term evolution system |
US9158933B2 (en) * | 2007-08-17 | 2015-10-13 | Sybase, Inc. | Protection of encryption keys in a database |
KR100859162B1 (ko) * | 2007-10-16 | 2008-09-19 | 펜타시큐리티시스템 주식회사 | 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법 |
JP5167795B2 (ja) * | 2007-12-13 | 2013-03-21 | 大日本印刷株式会社 | データベース保守方法およびシステム |
US7904489B2 (en) * | 2008-05-09 | 2011-03-08 | Target Brands, Inc. | Database unload/reload of partitioned tables |
US8644513B2 (en) * | 2008-05-16 | 2014-02-04 | Oracle International Corporation | Database processing on externally encrypted data |
CN101593196B (zh) * | 2008-05-30 | 2013-09-25 | 日电(中国)有限公司 | 用于快速密文检索的方法、装置和系统 |
US8375224B2 (en) * | 2009-11-10 | 2013-02-12 | Oracle International Corporation | Data masking with an encrypted seed |
CN102034062B (zh) * | 2010-12-31 | 2012-08-08 | 飞天诚信科技股份有限公司 | 生成安全文件的方法及装置 |
US9087212B2 (en) * | 2012-01-25 | 2015-07-21 | Massachusetts Institute Of Technology | Methods and apparatus for securing a database |
US9449178B2 (en) * | 2012-07-24 | 2016-09-20 | ID Insight | System, method and computer product for fast and secure data searching |
US9767294B2 (en) | 2012-12-13 | 2017-09-19 | Nec Corporation | Intermediate server, database query processing method and program |
BR112015015806A2 (pt) * | 2013-03-13 | 2017-07-11 | Google Inc | personalização da experiência do usuário para usuários novos e não reconhecidos |
KR101522870B1 (ko) * | 2013-10-01 | 2015-05-26 | 주식회사 파수닷컴 | 데이터 컬럼 암호화 장치 및 방법 |
US9213764B2 (en) * | 2013-11-22 | 2015-12-15 | Sap Se | Encrypted in-memory column-store |
CN105302822B (zh) * | 2014-06-27 | 2020-07-31 | 中兴通讯股份有限公司 | 一种读写数据库的数据的方法和应用应答装置 |
US9397833B2 (en) | 2014-08-27 | 2016-07-19 | International Business Machines Corporation | Receipt, data reduction, and storage of encrypted data |
US9397832B2 (en) | 2014-08-27 | 2016-07-19 | International Business Machines Corporation | Shared data encryption and confidentiality |
US10380370B2 (en) * | 2015-02-27 | 2019-08-13 | Samsung Electronics Co., Ltd. | Column wise encryption for lightweight DB engine |
KR101983120B1 (ko) * | 2016-11-25 | 2019-05-31 | 주식회사 실크로드소프트 | 데이터베이스의 이중화를 위한 방법 |
US10749674B2 (en) | 2017-09-29 | 2020-08-18 | Micro Focus Llc | Format preserving encryption utilizing a key version |
US10642828B2 (en) * | 2017-10-10 | 2020-05-05 | Sap Se | Searchable encryption scheme with external tokenizer |
US10733318B2 (en) * | 2017-11-21 | 2020-08-04 | International Business Machines Corporation | Processing analytical queries over encrypted data using dynamical decryption |
CN109033873B (zh) * | 2018-07-19 | 2020-11-17 | 四川长虹智慧健康科技有限公司 | 一种防止隐私泄漏的数据脱敏方法 |
CN109284302B (zh) * | 2018-08-10 | 2020-12-01 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
US10951415B2 (en) * | 2019-03-13 | 2021-03-16 | Digital 14 Llc | System, method, and computer program product for implementing zero round trip secure communications based on noisy secrets with a polynomial secret sharing scheme |
US10892891B2 (en) * | 2019-03-13 | 2021-01-12 | Digital 14 Llc | System, method, and computer program product for zero round trip secure communications based on two noisy secrets |
EP4158515A1 (en) * | 2020-06-29 | 2023-04-05 | Huawei Technologies Co., Ltd. | Data storage server and client devices for securely storing data |
US20220343001A1 (en) * | 2021-04-25 | 2022-10-27 | Miguel FONCERRADA | Methods and system for software application data auditability through encrypted log chain |
CN113204776B (zh) * | 2021-04-30 | 2022-08-30 | 新华三大数据技术有限公司 | 实现列加密的方法、装置、设备及存储介质 |
CN115374464B (zh) * | 2022-10-24 | 2023-01-31 | 闪捷信息科技有限公司 | 基于双列处理的列加解密方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303065A (zh) * | 1999-09-30 | 2001-07-11 | 卡西欧计算机株式会社 | 数据库管理装置和加密/解密系统 |
WO2002029577A2 (en) * | 2000-10-06 | 2002-04-11 | Oracle Corporation | Method and apparatus for automatic database encryption |
EP1207462A2 (en) * | 2000-11-16 | 2002-05-22 | Protegrity Research & Development | A method for altering encryption status in a relation database in a continuous process |
US20030046572A1 (en) * | 2001-08-30 | 2003-03-06 | Newman Aaron Charles | Cryptographic infrastructure for encrypting a database |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DK279089D0 (da) * | 1989-06-07 | 1989-06-07 | Kommunedata I S | Fremgangsmaade til overfoersel af data, et elektronisk dokument eller lignende, system til udoevelse af fremgangsmaaden samt et kort til brug ved udoevelse af fremgangsmaaden |
US5052040A (en) | 1990-05-25 | 1991-09-24 | Micronyx, Inc. | Multiple user stored data cryptographic labeling system and method |
GB9112644D0 (en) | 1991-06-12 | 1991-07-31 | Int Computers Ltd | Data processing system with cryptographic facility |
US5852046A (en) * | 1993-08-03 | 1998-12-22 | Hoechst Aktiengesellschaft | Benzo-fused heterocyclic compounds having a 5-membered ring processes for their preparation their use as medicaments their use as diagnostic agents and medicaments containing them |
US5369702A (en) | 1993-10-18 | 1994-11-29 | Tecsec Incorporated | Distributed cryptographic object method |
US5751949A (en) | 1995-05-23 | 1998-05-12 | Mci Corporation | Data security system and method |
US5924094A (en) * | 1996-11-01 | 1999-07-13 | Current Network Technologies Corporation | Independent distributed database system |
US5963642A (en) * | 1996-12-30 | 1999-10-05 | Goldstein; Benjamin D. | Method and apparatus for secure storage of data |
US5966707A (en) * | 1997-12-02 | 1999-10-12 | International Business Machines Corporation | Method for managing a plurality of data processes residing in heterogeneous data repositories |
JPH11187013A (ja) * | 1997-12-24 | 1999-07-09 | Ibm Japan Ltd | 暗号鍵配信システム |
US6336121B1 (en) * | 1998-03-24 | 2002-01-01 | Entrust Technologies, Ltd. | Method and apparatus for securing and accessing data elements within a database |
US6185681B1 (en) * | 1998-05-07 | 2001-02-06 | Stephen Zizzi | Method of transparent encryption and decryption for an electronic document management system |
US20010029582A1 (en) * | 1999-05-17 | 2001-10-11 | Goodman Daniel Isaac | Method and system for copy protection of data content |
US6292899B1 (en) * | 1998-09-23 | 2001-09-18 | Mcbride Randall C. | Volatile key apparatus for safeguarding confidential data stored in a computer system memory |
US6327594B1 (en) * | 1999-01-29 | 2001-12-04 | International Business Machines Corporation | Methods for shared data management in a pervasive computing environment |
US6339832B1 (en) * | 1999-08-31 | 2002-01-15 | Accenture Llp | Exception response table in environment services patterns |
US6434568B1 (en) * | 1999-08-31 | 2002-08-13 | Accenture Llp | Information services patterns in a netcentric environment |
US6442748B1 (en) * | 1999-08-31 | 2002-08-27 | Accenture Llp | System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment |
JP3921892B2 (ja) * | 1999-09-30 | 2007-05-30 | カシオ計算機株式会社 | データベース管理装置、データベースシステム及び記録媒体 |
SE9904094D0 (sv) | 1999-11-12 | 1999-11-12 | Protegrity Research & Dev | Method for reencryption of a database |
JP4120135B2 (ja) * | 2000-06-15 | 2008-07-16 | ソニー株式会社 | 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体 |
US6564225B1 (en) * | 2000-07-14 | 2003-05-13 | Time Warner Entertainment Company, L.P. | Method and apparatus for archiving in and retrieving images from a digital image library |
US7315859B2 (en) * | 2000-12-15 | 2008-01-01 | Oracle International Corp. | Method and apparatus for management of encrypted data through role separation |
US20030014394A1 (en) * | 2001-03-22 | 2003-01-16 | Shinji Fujiwara | Cell-level data access control using user-defined functions |
FR2828607B1 (fr) * | 2001-08-07 | 2004-01-30 | Centre Nat Rech Scient | Procede de securisation de bases de donnees |
US7269729B2 (en) * | 2001-12-28 | 2007-09-11 | International Business Machines Corporation | Relational database management encryption system |
US7500111B2 (en) * | 2003-05-30 | 2009-03-03 | International Business Machines Corporation | Querying encrypted data in a relational database system |
US20060005017A1 (en) * | 2004-06-22 | 2006-01-05 | Black Alistair D | Method and apparatus for recognition and real time encryption of sensitive terms in documents |
US7797342B2 (en) * | 2004-09-03 | 2010-09-14 | Sybase, Inc. | Database system providing encrypted column support for applications |
US7571490B2 (en) * | 2004-11-01 | 2009-08-04 | Oracle International Corporation | Method and apparatus for protecting data from unauthorized modification |
US20070174271A1 (en) * | 2005-02-18 | 2007-07-26 | Ulf Mattsson | Database system with second preprocessor and method for accessing a database |
US7827403B2 (en) * | 2005-04-13 | 2010-11-02 | Oracle International Corporation | Method and apparatus for encrypting and decrypting data in a database table |
US7639819B2 (en) * | 2005-06-16 | 2009-12-29 | Oracle International Corporation | Method and apparatus for using an external security device to secure data in a database |
US20070079140A1 (en) * | 2005-09-26 | 2007-04-05 | Brian Metzger | Data migration |
US8375224B2 (en) * | 2009-11-10 | 2013-02-12 | Oracle International Corporation | Data masking with an encrypted seed |
-
2003
- 2003-06-11 US US10/459,811 patent/US10339336B2/en active Active
-
2004
- 2004-04-01 CA CA2520669A patent/CA2520669C/en not_active Expired - Lifetime
- 2004-04-01 EP EP04749735A patent/EP1631874A1/en not_active Ceased
- 2004-04-01 WO PCT/US2004/010360 patent/WO2005003940A1/en active Search and Examination
- 2004-04-01 JP JP2006532376A patent/JP4685782B2/ja not_active Expired - Lifetime
- 2004-04-01 AU AU2004254893A patent/AU2004254893B2/en not_active Expired
- 2004-04-01 CN CN2004800068738A patent/CN1761923B/zh not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303065A (zh) * | 1999-09-30 | 2001-07-11 | 卡西欧计算机株式会社 | 数据库管理装置和加密/解密系统 |
WO2002029577A2 (en) * | 2000-10-06 | 2002-04-11 | Oracle Corporation | Method and apparatus for automatic database encryption |
EP1207462A2 (en) * | 2000-11-16 | 2002-05-22 | Protegrity Research & Development | A method for altering encryption status in a relation database in a continuous process |
US20030046572A1 (en) * | 2001-08-30 | 2003-03-06 | Newman Aaron Charles | Cryptographic infrastructure for encrypting a database |
Also Published As
Publication number | Publication date |
---|---|
JP2007500912A (ja) | 2007-01-18 |
AU2004254893B2 (en) | 2010-09-16 |
US10339336B2 (en) | 2019-07-02 |
CA2520669A1 (en) | 2005-01-13 |
JP4685782B2 (ja) | 2011-05-18 |
CA2520669C (en) | 2019-05-21 |
AU2004254893A1 (en) | 2005-01-13 |
CN1761923A (zh) | 2006-04-19 |
WO2005003940A1 (en) | 2005-01-13 |
EP1631874A1 (en) | 2006-03-08 |
US20040255133A1 (en) | 2004-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1761923B (zh) | 加密数据库列的方法和设备 | |
US10719567B2 (en) | Database query processing on encrypted data | |
US9548866B2 (en) | Deletion of content in digital storage systems | |
CN101587479B (zh) | 面向数据库管理系统内核的数据加解密系统及其方法 | |
US7694134B2 (en) | System and method for encrypting data without regard to application | |
US8375224B2 (en) | Data masking with an encrypted seed | |
US9875370B2 (en) | Database server and client for query processing on encrypted data | |
US7660959B2 (en) | Managing encryption for volumes in storage pools | |
US20150026462A1 (en) | Method and system for access-controlled decryption in big data stores | |
US20140380404A1 (en) | Automatic data protection in a computer system | |
US20070079140A1 (en) | Data migration | |
US20100290623A1 (en) | Protection of encryption keys in a database | |
CN104636444A (zh) | 一种数据库的加解密方法及装置 | |
US20240152630A1 (en) | Security system and method for real-time encryption or decryption of data using key management server | |
CN109325360B (zh) | 信息管理方法与装置 | |
US20200142993A1 (en) | Enable merge join on encrypted data | |
US20210319128A1 (en) | Managing queries with data processing permits | |
US20230244796A1 (en) | A database server system | |
CN111597576B (zh) | 基于Android编译时的assets文件加密方法、及其相关设备 | |
JPH10340232A (ja) | ファイル複写防止装置及びファイル読込装置 | |
CN115712641A (zh) | 一种数据库字段检索方法及相关设备 | |
CA2832978A1 (en) | Method of obfuscating relationships between data in database tables | |
JP2014203065A (ja) | 検索データ保護装置、情報検索システム、検索データ保護方法、及びそのプログラム |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20100526 |
|
CX01 | Expiry of patent term |