加密数据库通用快速查询算法研究
- 格式:pdf
- 大小:80.48 KB
- 文档页数:3
数据库存储加密的常用技术方法1. 数据库字段加密:通过对数据库中敏感字段(如密码、信用卡号等)进行加密处理,以保护数据不被直接泄露。
常用的加密算法包括AES、DES等,加密后的字段只能通过正确的解密算法才能恢复原始数据。
2. 数据库连接加密:使用SSL/TLS等协议对数据库连接进行加密,确保数据在传输过程中不被窃取或篡改,提高数据传输的安全性。
3. 数据库盐加密:对敏感数据进行盐加密处理,通过动态生成的盐值来增加数据的安全性,防止彩虹表等攻击手段。
4. 数据表加密:对整个数据表进行加密处理,确保即使数据库被非法访问,数据也无法直接读取。
5. 数据库加密存储:使用加密文件系统或专门的加密存储设备来存储数据库文件,保护数据在存储时的安全性。
6. 数据库访问控制:通过访问控制列表、角色权限等手段,限制对数据库的访问,只允许授权用户进行数据操作,以降低数据泄露风险。
7. 数据库审计和日志记录:记录数据库操作的详细日志,并对数据库访问行为进行审计,及时发现异常操作并追踪数据访问记录。
8. 数据脱敏:对部分敏感数据进行脱敏处理,如对姓名、身份证号的部分信息进行屏蔽或替换,以降低数据被泄露的风险。
9. 数据备份加密:对数据库备份文件进行加密处理,以防止备份数据在传输或存储时被恶意篡改或窃取。
10. 数据加密算法更新:定期更新数据库中使用的加密算法,以应对新的安全威胁和攻击手段。
11. 数据库加密密钥管理:建立专门的密钥管理系统,对数据库加密所使用的密钥进行安全保存和管理,确保密钥不被泄露。
12. 数据加密时效性管理:设置数据加密的时效性,对于需要长期存储的数据,定期更换加密密钥以降低密钥泄露的风险。
13. 数据库加密性能优化:通过硬件加速、缓存优化等手段,提高数据库加密处理的性能,确保数据安全的同时不影响系统性能。
14. 数据加密与解密接口权限控制:限制数据加密解密操作的权限,确保只有授权用户能够进行加密解密操作,防止敏感数据被恶意篡改。
如何利用二进制搜索算法进行数据加密与解密在当今信息时代,数据的安全性和隐私保护变得愈发重要。
为了保护敏感数据,人们研究出了许多加密算法。
其中,二进制搜索算法是一种常用的加密和解密方法。
本文将探讨如何利用二进制搜索算法进行数据加密与解密,以及其优势和应用领域。
一、二进制搜索算法简介二进制搜索算法,又称二分搜索算法,是一种高效的查找算法。
它通过将查找范围不断二分,直到找到目标值或确定目标值不存在。
二进制搜索算法的时间复杂度为O(log n),相较于线性搜索算法的O(n),具有更高的效率。
二、二进制搜索算法在数据加密中的应用1. 数据加密在数据加密过程中,二进制搜索算法可以用于生成加密密钥。
首先,将明文数据转化为二进制形式。
然后,通过二进制搜索算法,在一个预设的密钥范围中搜索合适的加密密钥。
搜索过程中,可以根据具体需求设置搜索的起始点和终止点。
最终得到的加密密钥可以用于对明文数据进行加密。
2. 数据解密在数据解密过程中,二进制搜索算法可以用于恢复加密的数据。
首先,将密文数据转化为二进制形式。
然后,通过二进制搜索算法,在密钥范围内搜索合适的解密密钥。
搜索过程中,可以根据具体需求设置搜索的起始点和终止点。
最终得到的解密密钥可以用于对密文数据进行解密,恢复原始的明文数据。
三、二进制搜索算法的优势1. 高效性二进制搜索算法的时间复杂度为O(log n),相较于线性搜索算法的O(n),具有更高的效率。
这使得二进制搜索算法在大规模数据加密与解密中具有优势。
2. 精确性二进制搜索算法通过不断二分查找范围,直到找到目标值或确定目标值不存在。
这保证了加密密钥和解密密钥的精确性,减少了误差和数据损失。
3. 可控性二进制搜索算法可以根据具体需求设置搜索的起始点和终止点,从而实现对加密和解密过程的精确控制。
这使得二进制搜索算法在特定场景下具有更大的灵活性和适应性。
四、二进制搜索算法的应用领域1. 数据库加密二进制搜索算法可以用于对数据库中的敏感数据进行加密,保护用户隐私和数据安全。
数据库中数据加密与解密的实现方法在当今信息时代,数据的安全性愈发突显重要。
尤其是数据库中存储的大量敏感数据,如用户个人信息、企业机密等,必须得到有效的保护,以防止恶意访问和滥用。
加密与解密是一种常用的数据保护措施,通过对数据进行加密处理,即使数据库遭到非法访问,也能有效防止数据泄露。
本文将介绍数据库中数据加密与解密的实现方法。
一、对称加密算法对称加密算法是一种常用的加密方法,也称为私钥加密算法。
该算法使用相同的密钥进行加密和解密操作,因此在应用中密钥的保护措施至关重要。
对称加密算法的优点是加密解密速度快,适合对大量数据进行加密。
常见的对称加密算法有DES(Data Encryption Standard)、AES(Advanced Encryption Standard)等。
在数据库中使用对称加密算法进行数据加密,需要进行以下步骤:1. 选择合适的加密算法和密钥长度。
根据实际需求和数据敏感程度,选择适当的对称加密算法和密钥长度。
2. 生成密钥并妥善保存。
为了保证数据的安全性,密钥的生成和妥善保存非常重要。
可以使用专门的密钥管理系统来生成和管理密钥。
3. 对数据进行加密处理。
对于需要加密的数据,在数据库中创建相应的字段,并通过对称加密算法使用密钥对数据进行加密处理。
4. 存储密文。
将加密后的数据存储在数据库中。
为了提高安全性,最好将密钥和密文分别存储在不同的位置,以免数据泄露导致密钥被获取。
5. 解密数据。
在需要访问加密数据的时候,通过密钥使用相同的对称加密算法进行解密处理,得到明文数据。
二、非对称加密算法非对称加密算法也称为公钥加密算法,相对于对称加密算法,它使用一对不同的密钥进行加密和解密操作,一把密钥是公开的,称为公钥,而另一把密钥是私密的,称为私钥。
公钥用于加密数据,只有持有相应私钥的人才能解密数据。
非对称加密算法的优点是密钥的传输相对安全,不会被中间人窃取。
常见的非对称加密算法有RSA、DSA、ECC等。
数据库查询优化算法在当今数字化快速发展的时代,数据的存储和管理已经成为企业和组织中不可或缺的一部分。
同时,数据库查询优化也变得越来越重要。
数据库查询优化是一个复杂的过程,通常会涉及多个层面,包括数据结构、查询语句、索引等。
在本文章中,我们将会讨论一些常用的数据库查询优化算法。
数据库索引在数据库查询优化中,创建索引是最简单也是最有效的方法。
索引可以帮助数据库系统快速定位需要查询的数据,而不是扫描整个数据库。
在创建索引时,需要考虑许多因素,例如数据类型、数据分布、数据量等。
因此,为了提高查询性能,我们需要选择适当的索引类型。
B-树索引B-树索引是最常用的索引类型之一,在数据库中被广泛使用。
B-树是一个平衡的树结构,可以帮助快速定位需要查询的数据。
B-树索引是用于索引较大数据集的最佳选择,可以减少大量的磁盘读取操作,提高查询速度。
B-树索引通常是在数据库中的常规索引,能够支持快速的检索操作。
哈希索引哈希索引是另一种常用的索引类型。
哈希索引将查询键哈希化,然后使用哈希函数将其映射到存储桶中,这样可以很快地找到数据。
哈希索引适用于等值查询,但不适用于范围查询,这是因为哈希函数可能会每个哈希值都映射到不同的存储桶中,这会使查询变得更加缓慢。
全文索引全文索引是用于搜索文本的一种索引类型。
它不仅可以用于关键字搜索,还可以用于语义搜索和模糊搜索。
全文索引能够有效地加快对大量文本数据的查找效率,是大型搜索引擎系统的核心组成部分。
查询优化器查询优化器是数据库系统中的一个核心功能,其主要目的是优化查询语句,以提高查询性能。
在优化器中,查询分析器会分析SQL语句中的查询条件,并使用统计信息、索引等来建立更好的查询执行计划。
为了优化查询性能,我们可以使用以下优化技术。
查询缓存查询缓存是一种重要的优化技术,可以减少查询执行的频率。
当查询语句被执行后,相关的结果会被存储在缓存中。
而当相同的查询被再次执行时,可以直接从缓存中获取查询结果。
数据库数据加密与解密的方法和工具数据加密和解密是数据库中保护数据安全的重要手段之一。
随着数据泄露事件的增加,使用适当的加密技术可以防止数据被未经授权的用户访问、修改或泄露。
本文将介绍数据库数据加密的方法和常用的加密工具,帮助读者更好地保护数据库中的敏感信息。
一、数据库数据加密的方法1.列级加密:对数据库中的特定列进行加密。
可以优先保护敏感数据,例如用户的姓名、地址或银行卡号。
这种方法较为常见,且对于查询和分析数据的性能影响较小。
2.行级加密:对数据库中的每一行数据进行加密。
这种方法可保护整行数据的安全,但由于需要对每一行进行加密和解密处理,因此对数据库性能会有较大影响。
3.表级加密:对整个数据库表进行加密。
这种方法是对表中的所有数据进行加密,可以提供更高的安全性。
但在查询和分析数据时会有较大的性能影响。
4.透明加密:在数据库引擎层面实现加密,对应用程序透明,无需修改现有应用程序。
这种方法可以最大程度地保护数据安全且不影响现有业务,但实现相对复杂。
5.应用级加密:在应用程序中实现加密,而非依赖数据库。
这种方法相对简单,但需要对所有应用程序进行修改,并无法保护数据库备份中的数据。
二、常用的数据库加密工具1.Oracle Advanced Security:Oracle数据库提供了一套完整的加密解决方案,包括网络数据加密、存储数据加密和数据库链接加密。
其强大的加密功能和灵活的配置选项使得数据加密和解密易于操作和管理。
2.MySQL Enterprise Encryption:MySQL企业版提供了一系列的安全增强功能,包括数据加密。
其支持列级加密和透明加密,可以使用对称密钥或非对称密钥进行加密。
3.SQL Server Transparent Data Encryption(TDE):SQL Server提供了透明数据加密功能,可以保护数据和备份存储在磁盘上的文件。
TDE使用数据库管理员提供的加密密钥来加密整个数据库。
网络教育学院本科生毕业论文(设计)题目:数据加密技术的研究综述(模板)内容摘要随着计算机网络技术的飞速发展,数据加密技术将成为信息网络安全技术中的核心技术,本文介绍了网络与信息安全技术体系结构,对目前信息加密技术进行了分析,阐述了各类加密算法的优缺点,同时对加密技术的发展趋势进行了描述从最初的保密通信发展到目前的网络信息加密。
数据加密技术是指将一个信息经过加密钥匙及加密函数转换,变成无意义的密文,而接收方则将此密文经过解密函数、解密钥匙还原成明文。
在竞争激烈的信息时代,客观上需要一种强有力的安全措施来保护机密数据不被窃取或篡改,因此数据加密技术就应运而生。
关键词:信息安全;数据加密;加密钥匙;解密钥匙;加密算法目录内容摘要 (I)引言 (1)1 概述 (2)背景 (2)本文的主要内容及组织结构 (3)2 数据加密和加密系统 (3)数据加密技术原理 (4)数据加密技术的分类及其应用 (4)加密系统体系 (5)加密系统的分类 (5)加密体制存在的问题 (6)对称加密、非对称加密和数字签名 (7)3 DES加密标准 (9)DES介绍和DES算法框架 (9)DES实例分析 (9)DES的安全性和应用误区 (12)DES的拓展 (12)3DES (12)AES算法 (13)4 公开加密算法RSA (14)RSA的简介 (14)RSA算法的结构 (14)RSA算法的案例 (14)RSA探索 (22)5 其他加密技术 (25)MD5 (25)可变长密钥块Blowfish加密技术 (26)椭圆曲线密码体制 (27)伪随机数加密技术 (28)6 结论 (32)参考文献 (33)附录一伪随机数加密法的加密和解密程序 (33)引言随着网络技术的发展,网络安全也就成为当今网络社会的焦点中的焦点,几乎没有人不在谈论网络上的安全问题,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊。
病毒、黑客的猖獗使身处今日网络社会的人们感觉到谈网色变,无所适从。
可搜索加密技术在大数据安全中的应用随着互联网和信息技术的快速发展,大数据正成为当今社会的重要资源。
然而,随之而来的数据泄露和隐私问题也日益突出,给个人以及企业带来了巨大的风险和威胁。
在这种背景下,可搜索加密技术成为一种重要的数据安全保护手段,并在大数据安全中得到广泛应用。
一、可搜索加密技术简介可搜索加密技术是一种将数据加密后仍然可以进行检索的技术。
传统的加密算法通常会将数据加密成无法直接搜索的形式,因此无法满足大数据的查询需求。
而可搜索加密技术则通过在加密前对数据进行一定的处理,让数据在加密后仍然可以被检索,从而实现对加密数据的高效查询。
二、可搜索加密技术的实现方式可搜索加密技术主要有两种实现方式:对称可搜索加密和公钥可搜索加密。
1. 对称可搜索加密对称可搜索加密方法使用相同的密钥对数据进行加解密操作。
这种方法的优点是加密和解密速度快,适用于大数据量的场景。
常见的对称可搜索加密方案有基于倒排索引的加密方案和基于陷门的加密方案。
2. 公钥可搜索加密公钥可搜索加密方法使用不同的密钥对数据进行加解密操作。
这种方法的优点是加密和解密过程中使用不同的密钥,提高了数据的安全性。
常见的公钥可搜索加密方案有基于同态加密的方案和基于零知识证明的方案。
三、可搜索加密技术在大数据安全中的应用可搜索加密技术在大数据安全中有广泛的应用。
以下是几个典型的应用场景:1. 云计算安全云计算是大数据处理的重要手段,但在云端存储数据存在诸多安全风险。
可搜索加密技术能够对云端存储的数据进行加密,同时保证数据能够被高效地检索,从而保护数据的机密性和完整性。
2. 医疗数据安全医疗数据是敏感信息的集中体现,但也需要进行大规模的数据分析。
可搜索加密技术可以对医疗数据进行加密处理,保护患者的隐私信息,同时又能够满足医疗数据分析的需求。
3. 商业数据隐私保护在商业领域,企业拥有大量的客户数据和业务数据,但这些数据的泄露可能导致企业声誉受损和商业机密被泄露。
密文字段检索方案密文字段检索方案,是一种有效的信息检索技术,可以在保护数据安全的前提下,实现对加密数据的快速检索,以满足各种应用场景的需求。
下面将从方案实现流程、应用场景、技术优势等方面,对密文字段检索方案进行详细介绍。
一、方案实现流程密文字段检索方案的实现主要包括索引构建和查询处理两个步骤。
1.索引构建索引构建是指将明文字段转化为密文字段,并将其建立索引,以便查询时能够快速检索到相应的数据。
具体流程如下:(1)数据预处理:对要加密的数据进行必要的处理,如去除空格、加入分隔符等。
(2)随机数生成:为每个字段生成一个独立的随机数,用于加密和解密操作。
(3)加密处理:将每个字段和对应的随机数一起进行加密处理,得到密文字段。
(4)索引构建:通过密文字段对应的关键词,建立倒排索引表,用于查询时快速找到相关数据。
2.查询处理查询处理是指通过索引表快速定位到符合条件的密文字段,并进行解密操作,以便获取原始数据。
具体流程如下:(1)查询条件处理:将明文查询条件转换为密文查询条件,与索引表进行匹配。
(2)索引表查询:基于密文查询条件,在索引表中寻找符合要求的密文字段。
(3)解密处理:对查询结果进行解密处理,得到明文结果。
二、应用场景密文字段检索方案可以广泛应用于数据安全保护和信息检索等场景。
以下是几个典型的应用场景:1. 各类机密数据的安全检索,如医疗记录、财务数据等。
2. 密码学算法的应用,如基于密文的密钥管理、身份验证和认证等。
3. 金融行业的客户数据信息检索、交易记录查询等。
4. 政府部门的机密资料和文件检索。
三、技术优势密文字段检索方案相对于传统的明文检索方案,具有以下这些优势:1. 数据安全性高:所有数据都以密文形式存储,避免直接泄露。
2. 防止信息泄露:不被授权的用户无法查看到数据明文。
3. 高效性高:无需重复文本检索和解密操作,减小了服务器资源开销。
4. 保护隐私:不会记录用户的明文或隐私信息,保护用户隐私。
收稿日期:2000207220.作者简介:余祥宣(19422),男,教授;武汉,华中理工大学计算机科学与技术学院(430074).加密数据库通用快速查询算法研究余祥宣 谭谦仁(华中理工大学计算机科学与技术学院)摘要:对多级安全加密数据库中缩短查询响应时间、提高查询绝对速度和查询算法通用性的方法进行了研究.运用集合论原理提出了低I/O 开销的高查询绝对速度算法;采用高并行处理的方法给出了高查询响应速度算法;利用统计学的原理提出了实用的基于统计的通用查询算法.关 键 词:加密数据库;多级安全;绝对速度;响应速度中图分类号:TP311.13 文献标识码:A 文章编号:100028616(2000)1220027203 由于DES 加密算法本身的时间开销很大,当查询条件含多个加密字段时,对每个加密字段进行全表脱密来确定符合条件的数据行集合所需时间很多,这样查询的绝对速度和响应速度将令人难以忍受;在通用性方面没有解决多表链接查询中表1字段m =表2字段n ,并且字段m 和字段n 都为加密字段的情况.1 高查询绝对速度算法查询条件可以看成是谓词与运算符、或运算符及括号连接起来的表达式.对查询条件进行分析,得出一不含加密字段的新查询条件,并保证原查询条件表示的数据集是新查询条件表示数据集的子集.这样就可以在查询内容字段中增加加密字段并以新查询条件去查询数据,在查询出一条记录后对加密字段解密,再按照原查询条件检查,如果符合条件则将该记录返回用户.如何构造新查询条件并使该条件表示的数据集足够小是关键.设查询条件为A ,优化后的查询条件为A ′,含明文字段谓词为P i ,含密文字段谓词为 P i ,A 表示的数据集为S A ,关系R 中所有数据仍由R 表示.先讨论A =P 1 P 2且 ∈{∪,∩}在关系R 上的查询.有如下三类情况:a.A =P 1∪P 2]A ′=P 1∪P 2,A =P 1∩P 2]A ′=P 1∩P 2.这是明文字段谓词,可以不作额外处理.b.A =P 1∩ P 1]A ′=P 1,A = P 1∩P 2]A ′=P 2.这是一明文字段谓词和一密文字段谓词进行与运算,将明文字段谓词作为条件,这扩大了数据集S A .按照新条件A ′查询出数据集S A ′,因为S A <S A ′,在S A ′中取出满足条件A 的记录即可.c.A = P 1∪P 2]A ′=R ,A =P 1∪ P 2]A ′=R ,A = P 1∩ P 2]A ′=R ,A = P 1∪ P 2]A ′=R.在这四种情况下,只有将查询集合扩大到关系R 表示的全集中才能解决问题.实际运用中,查询条件远比这复杂,对于去密文字段谓词按照查询条件中与或运算谓词的先后运算顺序来逐步进行.在处理完最先参与运算的两谓词得到中间结果B 后,如何进行下一步呢?由上面讨论知B 只能为全明文字段谓词表达式或者R 全集,给出由中间结果B 与谓词P i 进行运算的规则.A.B 为全明文字段谓词表达式a.B ∩P i ]B ∩P i ,B ∪P i ]B ∪P i ,在进行与运算时,必须加上括号,只有这样才能保证原来的运算顺序.例如当B =P 1∪P 2时,如果不加括号,因为与运算优先或运算,B ∩P i 即P 1∪P 2∩P i 实际上先运算P 2∩P i ,再与P 1求交,其结果不同于原查询条件表达式了.b.B ∩ P i ]B ,当B 与含密文字段谓词 P i 进行与运算时,按照条件B 执行查询,然后在S B 中取出满足 P i 的数据即可.c.B ∪ P i ]R.B.B 为R 全集.a.B ∩P i ]P i ,全集和P i 进行与操作,结果集为P i .b.B ∪ P i ]R ,B ∪P i ]R ,B ∩ P i ]R.在实际去密文字段谓词时,先将中缀表达式第28卷第12期 华 中 理 工 大 学 学 报 V ol.28 N o.122000年 12月 J.Huazhong Univ.of Sci.&T ech. Dec. 2000形式的条件A表示为后缀表达式,然后按照后缀表达式确定的谓词运算顺序用上面的运算规则得到新查询条件A′.举例说明如下: P1∩((P2∩ P3)∪((P4∪ P5)∩P6))]P1∩(P2∪((P4∪ P5)∩P6))]P1∩(P2∪(R∩P6))]P1∩(P2∪P6).由上可知,实际上给出了对查询条件去密文字段的方法,其正确性可以用集合论加以证明,限于文章篇幅,省略[1].设查询内容字段集合C,查询条件字段集合{F d1,F d2,…,F dn},R RI D是标识数据记录唯一性的字段.a.令C′=C,i=1while i≤n {if F di字段加密and F di|C′then C′=C′+F di;i++;}C′=C′+R RI Db.由以上介绍的去密文字段谓词方法处理查询条件A]A′.c.按照新条件A′在R中查询C′中的每一个字段,然后利用C′中的R RI D和其他属性来对C′中的加密字段解密,并从S A′取出满足条件A的数据S A.以上算法中当查询条件A表示的数据集所含记录的条数#A和新查询条件A′表示的数据集所含记录的条数#A′相接近时,丢弃的额外数据较少,因此这种情况下该算法的额外I/O开销小,查询效率很高,几乎和全明文条件的查询速度相同.但是有些情况下新查询条件A′是关系R全集,这时算法的额外I/O开销将会相当大,例如查询Select3from R where P1OR P2,当查询条件P1OR P2表示一条记录,而R中共有100条记录时,99%的I/O开销将是额外的.2 高查询响应速度算法以下讨论另一种减少额外I/O开销,提高查询响应速度的算法.将查询条件A变换为由谓词构成的等价析取范式.例如A=((P1∩ P2)∪P3)∩P4变换为(P1∩ P2∩P4)∪(P3∩P4),然后用析取范式中的子条件来查询记录的R RI D(上面例子中子条件分别为P1∩ P2∩P4和P3∩P4).每一子条件对应一进程,设置进程共享存储区,在任一进程查出一R RI D后锁定该存储区并在其中搜索,如果存储区中没有该R RI D就将该R RI D放入存储区然后解锁该存储区.查询中设置一主进程,在存储区新进入一R RI D后,由主进程以该R RI D为条件查询用户所需要的数据.显然,只要存储区中一有满足条件的记录,主进程将马上查询满足条件的数据.这样一来查询的响应时间相当快.对于每一执行子查询的进程,采取了多线程并发策略来提高速度.设线程由Thread i表示,由于子查询A i 是由谓词进行与运算而成,故A i可以表示为(P1∩P2∩…∩P i)∩ P i+1∩…∩ P i+m.线程Thread0按照仅含全明文字段的条件(P1∩P2∩…∩P i)查询出记录的R RI D集合S0,线程Thread1在S0集合中查询出满足含密文字段的条件 P i+1的R RI D 集合S1,类似地由S i得到S i+1,如此串行递推直到最后得到集合S m.为了提高并行度,没有必要等到S i集合全部查出来后再处理下一个谓词条件,对线程Thread0设置适当大小的缓冲区Bu ffer0,每当线程Thread0查询出一条记录的R RI D时将它放入Bu ffer0,当中放满数据时通知线程Thread1,由它在Bu ffer0中取出满足条件 P i+1的R RI D数据并将之放入Bu ffer1,清空Bu ffer0,类似地由Bu ffer i 得到Bu ffer i+1,如此串行递推直到最后得到Bu ffer m,将Bu ffer m中R RI D数据加入集合S m.因为各个线程之间是并发执行的,所以其执行效率是相当高的.设关系为R,查询条件为A,查询数据主进程Process main,子进程Process i,进程共享存储区Bu ffer,查询算法步骤如下:a.化简查询条件表达式,使之成为如下形式,A=A1∪A2∪…∪A n且A k=(P1∩P2∩…∩P i)∩ P i+1∩…∩ P i+m,1≤k≤n.b.C obeginProcess k处理A k,1≤k≤n.Process k产生多线程查询出R RI D,Lock (Bu ffer);if R RI D|Bu ffer then Bu ffer=Bu ffer+R RI D,发R RI D消息通知Process main,Unlock(Bu ffer).Process main处理R RI D消息.以R RI D记录关键字为条件查询数据,对于加密字段利用R RI D和其他特性解密,返回解密后的数据.C oend以上算法用多次子查询并发执行的方法解决了在某些情况下算法1的额外I/O负担过重的问题,但是它本身消耗大量的内存和中央处理器等系统资源.82 华 中 理 工 大 学 学 报 2000年3 统计查询算法大量的测试数据表明,算法1的效率与关系R 所含数据记录的条数和R 中每一字段的数据分布情况及其是否加密有紧密关系,算法2中查询效率与执行该查询的进程数及每一进程所产生的线程数有紧密关系.设查询关系R 字段F d i 的时间开销为t (F d i ),系统进程时间开销为T Process ,系统线程时间开销为T Thread ,那么算法1的查询总开销为:∑mi =1t (F d ′i ),F d ′i 属于查询内容字段集合,m 为查询内容字段集合中所含的字段数.算法2的查询总开销为∑li =1(T Process +∑kj =1T Thread ),l 为执行该查询所需要的进程数,对于某一特定的i ,k 为该进程所含的线程数.如果∑mj =1t (F d ′i)≥∑li =1(T Process +∑kj =1T Thread ),那么查询时选择算法2,反之选择算法1.计算t (F d i ),T Process 和T Thread 的值比较困难,可以采取近似处理的方法,对关系R 中的字段F d i 进行全表查询并记下其时间开销为t (F d i ),对关系R 查询记录关键字R RI D ,查询条件为R RI DBET WEE N MI N RI D AND M AX RI D ,由之得到的时间开销值T 1是T Process 与T Thread 之和(MI N RI D AND M AX RI D 可以预先在R 中查询得知).对关系R 查询记录关键字R RI D ,查询条件为R RI D BET WEE N MI N RI D AND M AX RI D AND R RI D =x ,由之得到的时间开销值T 2是T Process 与2T Thread 之和(x 为与R RI D 同类型的任何值).由T 1和T 2来计算出T Process 和T Thread ,将计算出来的这些值存放在系统中,当具体执行查询时可由这两个值来决定选择何种算法[2].利用本文所介绍的基于统计的通用快速查询算法可以缩短查询响应时间,提高查询绝对速度.经实践检验(在AIX 、NT 平台上使用DB2数据库,NT 平台上使用ORAC LE 数据库)该算法完全达到了实用的水平,存在的问题是目前所建的统计模型太粗糙,在某些情况下查询效率并不理想,有待建立更科学完备的统计模型.参考文献[1]洪 帆.离散数学基础.武汉:华中理工大学出版社,1995.[2]Chaudhuri.Optimization of Queries with User 2Defined Pred 2icates.AC M T ransactions On Database Systems ,1999,24(2):177~228A G eneral and F ast Q uery Algorithm for E ncrypted DatabaseYu Xiangxuan Tan QianrenAbstract :A query alg orithm with a high abs olute speed costing low I/O based on set theory is given ,and a query alg orithm of high response speed based on parallel process is presented.A general and fast querying alg orithm based on statistics for encrypted database is proposed.K ey w ords :encrypted database ;multi 2level security ;abs olute speed ;respond speed Yu Xiangxuan Prof.;C ollege of C om puter Sci.&T ech.,H UST ,Wuhan 430074,China.92第12期 余祥宣等:加密数据库通用快速查询算法研究 。