CN1761923A - 加密数据库列的方法和设备 - Google Patents

加密数据库列的方法和设备 Download PDF

Info

Publication number
CN1761923A
CN1761923A CNA2004800068738A CN200480006873A CN1761923A CN 1761923 A CN1761923 A CN 1761923A CN A2004800068738 A CNA2004800068738 A CN A2004800068738A CN 200480006873 A CN200480006873 A CN 200480006873A CN 1761923 A CN1761923 A CN 1761923A
Authority
CN
China
Prior art keywords
row
database
encrypted
order
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.)
Granted
Application number
CNA2004800068738A
Other languages
English (en)
Other versions
CN1761923B (zh
Inventor
C·H·雷
T·基夫
D·M·王
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN1761923A publication Critical patent/CN1761923A/zh
Application granted granted Critical
Publication of CN1761923B publication Critical patent/CN1761923B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries

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′AES128′);
系统首先更新列的元数据。然后系统隐式地发出更新语句,其被转换成以下的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 (24)

1.一种便于对数据库列中的数据进行加密的方法,其包括:
接收一个执行数据库操作的命令;
解析所述命令以创建一个解析树;
检查所述解析树,以确定在所述解析树中引用的列是否是加密列;和
如果是,则自动转换所述命令,以包括一个或多个隐文命令,从而在执行所述数据库操作时便于存取所述加密列。
2.根据权利要求1所述的方法,其中如果所述数据库操作包括一个来自所述加密列的引用操作,那么所述方法还包括转换所述数据库操作,以在所述引用操作期间解密从所述加密列中检索的数据。
3.根据权利要求1所述的方法,其中如果所述命令包括一个对所述加密列的更新操作,那么所述方法还包括转换所述更新操作,以在所述更新操作期间加密所述加密列中正在被更新的数据。
4.根据权利要求1所述的方法,其中如果一个列是加密的,那么所述方法还包括识别该列的隐文密钥。
5.根据权利要求1所述的方法,其中检查所述解析树还包括:
确定所述命令是否包括一个显式命令,其加密所述数据库中的所述列;和
如果是,则加密所述列。
6.根据权利要求1所述的方法,其中检查所述解析树还包括:
确定所述命令是否包括一个改变所述列的加密密钥的操作;和
如果是,则用当前的加密密钥来解密所述列,并用新的加密密钥来加密所述列。
7.根据权利要求1所述的方法,其中检查所述解析树还包括:
确定所述命令是否包括一个显式命令,其解密所述数据库中的所述列;和
如果是,则解密所述列。
8.根据权利要求1所述的方法,其中检查所述解析树还包括:
确定所述命令是否包括一个显式命令,其改变所述列的加密算法;和
如果是,则用先前的加密算法来解密所述列;并
用新的加密算法来加密所述列。
9.一种存储指令的计算机可读存储介质,当所述指令被计算机执行时会导致计算机执行一种便于对数据库列中的数据进行加密的方法,所述方法包括:
接收一个执行数据库操作的命令;
解析所述命令以创建一个解析树;
检查所述解析树,以确定在所述解析树中引用的列是否是加密列;和
如果是,则自动转换所述命令,以包括一个或多个隐文命令,从而在执行所述数据库操作时便于存取所述加密列。
10.根据权利要求9所述的计算机可读存储介质,其中如果所述数据库操作包括一个来自所述加密列的引用操作,那么所述方法还包括转换所述数据库操作,以在所述引用操作期间解密从所述加密列中检索的数据。
11.根据权利要求9所述的计算机可读存储介质,其中如果所述命令包括一个对所述加密列的更新操作,那么所述方法还包括转换所述更新操作,以在所述更新操作期间加密所述加密列中正在被更新的数据。
12.根据权利要求9所述的计算机可读存储介质,其中如果一个列是加密的,那么所述方法还包括识别该列的隐文密钥。
13.根据权利要求9所述的计算机可读存储介质,其中检查所述解析树还包括:
确定所述命令是否包括一个加密所述数据库中的所述列的操作;和
如果是,则加密所述列。
14.根据权利要求9所述的计算机可读存储介质,其中检查所述解析树还包括:
确定所述命令是否包括一个显式命令,其改变所述列的加密密钥;和
如果是,则用当前的加密密钥来解密所述列,并用新的加密密钥来加密所述列。
15.根据权利要求9所述的计算机可读存储介质,其中检查所述解析树还包括:
确定所述命令是否包括一个显式命令,其解密所述数据库中的所述列;和
如果是,则解密所述列。
16.根据权利要求9所述的计算机可读存储介质,其中检查所述解析树还包括:
确定所述命令是否包括一个显式命令,其改变所述列的加密算法;和
如果是,则用先前的加密算法来解密所述列;并
用新的加密算法来加密所述列。
17.一种便于对数据库列中的数据进行加密的设备,其包括:
一个接收装置,其被配置成接收一个执行数据库操作的命令;
一个解析装置,其被配置成解析所述命令以创建一个解析树;
一个检查装置,其被配置成检查所述解析树,以确定在所述解析树中引用的列是否是加密列;和
一个转换装置,其被配置成自动转换所述命令,以包括一个或多个隐文命令,从而在执行所述数据库操作时便于存取所述加密列。
18.根据权利要求17所述的设备,其中所述转换装置被进一步配置成对所述数据库操作进行转换,以便如果所述数据库操作包括一个来自所述加密列的引用操作,则在所述引用操作期间解密从所述加密列中检索的数据。
19.根据权利要求17所述的设备,其中所述转换装置被进一步配置成对所述数据库操作进行转换,以便如果所述数据库操作包括一个对所述加密列的更新操作,则在所述更新操作期间加密所述加密列中正在被更新的数据。
20.根据权利要求17所述的设备,还包括一个识别装置,其被配置成,如果一个列是加密的,那么所述识别装置识别该列的隐文密钥。
21.根据权利要求17所述的设备,还包括:
一个确定装置,其被配置成确定所述命令是否包括一个显式命令,该显式命令加密所述数据库中的所述列;和
一个加密装置,其被配置成,如果所述命令包括加密所述数据库中所述列的所述显式命令,则加密所述列。
22.根据权利要求17所述的设备,还包括:
一个确定装置,其被配置成确定所述命令是否包括一个改变所述列的加密密钥的操作;
一个解密装置,其被配置成用当前的加密密钥来解密所述列;和
一个加密装置,其被配置成用新的加密密钥来加密所述列。
23.根据权利要求17所述的设备,还包括
一个确定装置,其被配置成确定所述命令是否包括一个显式命令,该显式命令解密所述数据库中的所述列;和
一个解密装置,其被配置成,如果所述命令包括解密所述数据库中所述列的所述显式命令,则解密所述列。
24.根据权利要求17所述的设备,还包括:
一个确定装置,其被配置成确定所述命令是否包括一个改变所述列的加密算法的操作;
一个解密装置,其被配置成用当前的加密算法来解密所述列;和
一个加密装置,其被配置成用新的加密算法来加密所述列。
CN2004800068738A 2003-06-11 2004-04-01 加密数据库列的方法和设备 Expired - Lifetime CN1761923B (zh)

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 true CN1761923A (zh) 2006-04-19
CN1761923B 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)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104657413A (zh) * 2013-11-22 2015-05-27 Sap欧洲公司 加密的内存列存储
WO2015196810A1 (zh) * 2014-06-27 2015-12-30 中兴通讯股份有限公司 一种读写数据库的数据的方法和应用应答装置
CN109033873A (zh) * 2018-07-19 2018-12-18 四川长虹智慧健康科技有限公司 一种防止隐私泄漏的数据脱敏方法
CN109284302A (zh) * 2018-08-10 2019-01-29 新华三大数据技术有限公司 数据处理方法及装置
CN113204776A (zh) * 2021-04-30 2021-08-03 新华三大数据技术有限公司 实现列加密的方法、装置、设备及存储介质
CN115374464A (zh) * 2022-10-24 2022-11-22 闪捷信息科技有限公司 基于双列处理的列加解密方法和装置

Families Citing this family (38)

* Cited by examiner, † Cited by third party
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
US7743069B2 (en) * 2004-09-03 2010-06-22 Sybase, Inc. Database system providing SQL extensions for automated encryption and decryption of column data
US7797342B2 (en) * 2004-09-03 2010-09-14 Sybase, Inc. Database system providing encrypted column support for applications
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
US20080163332A1 (en) * 2006-12-28 2008-07-03 Richard Hanson Selective secure database communications
US8639948B2 (en) * 2006-12-28 2014-01-28 Teradata Us, Inc. Encrypted data management in database management systems
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
EP3745293A1 (en) 2012-12-13 2020-12-02 Nec Corporation Intermediate server, database query processing method and program
US9507830B2 (en) * 2013-03-13 2016-11-29 Google Inc. Tailoring user experience for unrecognized and new users
KR101522870B1 (ko) * 2013-10-01 2015-05-26 주식회사 파수닷컴 데이터 컬럼 암호화 장치 및 방법
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
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
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
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

Family Cites Families (39)

* Cited by examiner, † Cited by third party
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 カシオ計算機株式会社 データベース管理装置、データベースシステム及び記録媒体
US7093137B1 (en) * 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
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
US7111005B1 (en) * 2000-10-06 2006-09-19 Oracle International Corporation Method and apparatus for automatic database encryption
SE0004188L (sv) 2000-11-16 2002-01-15 Protegrity Res & Dev Metod för förändring av krypteringsstatus i en relationsdatabas i kontinuerlig process
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
US7266699B2 (en) 2001-08-30 2007-09-04 Application Security, Inc. Cryptographic infrastructure for encrypting a database
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

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104657413A (zh) * 2013-11-22 2015-05-27 Sap欧洲公司 加密的内存列存储
CN104657413B (zh) * 2013-11-22 2019-02-15 Sap欧洲公司 加密的内存列存储
WO2015196810A1 (zh) * 2014-06-27 2015-12-30 中兴通讯股份有限公司 一种读写数据库的数据的方法和应用应答装置
CN109033873A (zh) * 2018-07-19 2018-12-18 四川长虹智慧健康科技有限公司 一种防止隐私泄漏的数据脱敏方法
CN109284302A (zh) * 2018-08-10 2019-01-29 新华三大数据技术有限公司 数据处理方法及装置
CN109284302B (zh) * 2018-08-10 2020-12-01 新华三大数据技术有限公司 数据处理方法及装置
CN113204776A (zh) * 2021-04-30 2021-08-03 新华三大数据技术有限公司 实现列加密的方法、装置、设备及存储介质
CN113204776B (zh) * 2021-04-30 2022-08-30 新华三大数据技术有限公司 实现列加密的方法、装置、设备及存储介质
CN115374464A (zh) * 2022-10-24 2022-11-22 闪捷信息科技有限公司 基于双列处理的列加解密方法和装置

Also Published As

Publication number Publication date
JP4685782B2 (ja) 2011-05-18
CN1761923B (zh) 2010-05-26
AU2004254893A1 (en) 2005-01-13
JP2007500912A (ja) 2007-01-18
US10339336B2 (en) 2019-07-02
CA2520669A1 (en) 2005-01-13
CA2520669C (en) 2019-05-21
US20040255133A1 (en) 2004-12-16
EP1631874A1 (en) 2006-03-08
AU2004254893B2 (en) 2010-09-16
WO2005003940A1 (en) 2005-01-13

Similar Documents

Publication Publication Date Title
CN1761923A (zh) 加密数据库列的方法和设备
US9548866B2 (en) Deletion of content in digital storage systems
US9875370B2 (en) Database server and client for query processing on encrypted data
US11366918B1 (en) Methods and apparatus for encrypted indexing and searching encrypted data
US8375224B2 (en) Data masking with an encrypted seed
CN101587479B (zh) 面向数据库管理系统内核的数据加解密系统及其方法
US8504844B2 (en) System, method, and computer-readable medium for cryptographic key rotation in a database system
CN1097772C (zh) 在安全存储区中保护应用程序数据的方法和装置
US8565422B2 (en) Method and system for enryption key versioning and key rotation in a multi-tenant environment
US9129129B2 (en) Automatic data protection in a computer system
US20070079140A1 (en) Data migration
CN1787431A (zh) 用于存储数据的透明端到端安全的设备、系统和方法
US20090225987A1 (en) Key rotation
CN1647443A (zh) 初始化、维护、更新和恢复利用数据访问控制功能的集成系统中的安全操作
CN1991870A (zh) 数据删改防止方法及数据删改防止系统
CN101042721A (zh) 使用临时许可临时访问内容的方法和设备
CN1866225A (zh) 一种移动存储设备的映射方法
CN1855086A (zh) 一种分析和提取数字证据的取证分析系统和方法
US20240152630A1 (en) Security system and method for real-time encryption or decryption of data using key management server
CN104182691A (zh) 数据保密方法及装置
US20230244796A1 (en) A database server system
KR20100112298A (ko) 데이터베이스 패턴별 암호화에 따른 인덱스 검색 시스템 및 그 방법
CN109858217B (zh) 电子档案真实性验证方法及系统
CN108881472A (zh) 电子书文件的处理方法、电子设备、存储介质
CN111291333A (zh) 一种Java应用程序加密方法及装置

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