分布式数据库系统的防范策略_第1页
分布式数据库系统的防范策略_第2页
分布式数据库系统的防范策略_第3页
分布式数据库系统的防范策略_第4页
分布式数据库系统的防范策略_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湖 北 大 学本 科 毕 业 论 文 (设 计)题 目 分布式数据库系统的防范策略 姓 名 孙际文 学 号 0052 专业年级 计算机科学与技术07级 指导教师 魏霞 职 称 讲师 2011年 4 月 15日目录绪论(1)1分布式数据库系统概念(1)2. 分布式数据库的安全需求分析(2)2.1分布式数据库的体系结构(2)2.2分布式数据库的不安全因素(2)3安全措施的层次分析(4)4安全防护策略(4)4.1全面防护(4)4.1.1物理安全性(4)4.1.2客户端防护(4)4.1.3服务器防护(5)4.1.4网络防护层(5)4.2身份验证(5)4.3访问控制(6)4.4数据库加密(6)4.4.1

2、加密层次(6)4.4.2加密的关键影响因素分析(6)4.4.3常用的加解密算法:(7)4.4.4加密方式(14)5.基于Oracle的分布式数据库系统安全策略:(14)51用户账号管理(15)5.2 用户认证(15)53访问控制(15)54安全通信(16)55安全检测和反映(16)5.6 用户安全域设置(16)5.7 用户资源限制(16)5.8权限分配(16)5.9角色管理(16)5.10 口令管理策略(17)5.11 审计策略(17)5.12 标签安全(17)513系统安全恢复(17)6 结论(18)参考文献(19)致 谢(20)分布式数据库系统防范策略摘要分布式数据库存在于开放的网络环境,

3、是数据库系统与计算机网络的有机结合,是目前互联网环境下信息资源共享的核心,其安全问题举足轻重,给数据的安全带来了一定的隐患。分布式数据库系统是在集中式数据库系统的基础上发展起来的,是数据库技术和网络技术结合的产物。分布式数据库系统是由若干个站点集合而成。每个站点都是一个独立的数据库系统,它们拥有各自的数据库、中央处理机、客户端以及各自的局部数据库管理系统:这些站点依靠通讯网络联接存一起,它们在物理结构上是分布式的,但在逻辑上属于同一系统。分布式数据库系统具有透明访问、通信代价低、分布式计算、均衡网络负载、可靠性高、自治和集中相结合的控制策略、高数据独立性、一致性和可恢复性控制措施等特性。本文将

4、由分布式数据库系统的特性、安全需求入手,分析系统的体系结构和各种不安全因素,结合安全措施各层次的特点,对安全策略和安全机制中身份验证,访问控制,数据库加密等策略进行综合分析,并比较各种方法的优劣,最后以oracle的安全防范策略加以具体说明。【关键词】分布式数据库 数据库的安全性 身份验证 访问控制 数据库 数据库加密 Prevention Strategy of Distributed Database SystemAbstractAs the combination of computer network and database system, Distributed Database

5、is becoming the share centre of information resource in the Internet situation and its security is becoming more and more important. Distributed database system is developed on the basis of centralized database system, it is the product of the combination of database technology and network technolog

6、y. Distributed database system is consisted of a collection of sites. Each site is a separate database system, they have their own databases, the central processors, the clients and their respective local database management systems: These sites connected by the communication network, they are distr

7、ibuted on the physical structure, but logically belong to the same system. distributed database system has many characteristics,such as Transparent access , low communication cost, distributed computing, network load balancing, high reliability, autonomy and centralized control strategy , high data

8、independence, consistency and recoverability of control measures .Aiming at the secure requests of Distributed Database System, on the base of analyzing system frame and possible attacking . It discuss user authentication ,secret communication, access control ,content cipher-text, cryptosystem ,key

9、and distributed affair management ,audit track ,fault repair in the security police and security mechanism.finally we will take the strategies taken by oracle to address this issue in details.【Key words】 distributed database security of database user authentication access control database data encry

10、ption绪论Internet的高速发展推动着分布式数据库的发展,另一方面它也增加了分布式数据库安全问题的复杂性。如何保证开放网络环境中分布式数据库系统的安全是一个复杂的问题,需要进行认真分析研究。分布式数据库面临着两大类安全问题:一类安全问题研究抗击单站点故障,网络故障等自然因素故障,即研究在发生了故障时如何使系统仍能可靠运行或从故障中恢复。另一类安全问题研究抗击来自于本机或网络上的人为攻击,即研究在有黑客攻击时如何保证库存数据和报文的保密性和可靠性。数据库最突出的特点之一是数据共享,数据共享给数据库应用带来了众多好处,但给数据库特别是网络化的开放环境与基于网络的分布式数据库系统的安全带来了

11、严重的问题,如何保证分布式数据库的安全问题已经成为数据库领域的重要课题之一。1分布式数据库系统概念分布式数据库系统是在集中式数据库系统的基础上发展起来的,是数据库技术和网络技术结合的产物。分布式数据库系统是由若干个站点集合而成。每个站点都是一个独立的数据库系统,它们拥有各自的数据库、中央处理机、客户端以及各自的局部数据库管理系统:这些站点依靠通讯网络联接存一起,它们在物理结构上是分布式的,但在逻辑上属于同一系统。分布式数据库系统一般具有下列特性:(1)透明访问1分布式数据库在逻辑上属于同一系统,使得应用不必关心远程数据库的物理位置、数据结构,甚至不必知道远程数据库管理系统的类型就可以像访问本地

12、数据一样访问远程数据。(2)通信代价低分布式数据库的冗余数据可以让用户可以选择离自己近的数据整副本进行操作,减少通信代价,从而改善整个系统的性能。(3)分布式计算当应用涉及远程数据时,远程站点通过本地站点将处理结果返回本地应用。多个站点相互协作共同处理应用提交的作业,充分利用了多台主机的处理能力。(4)均衡网络负载在分布式数据库环境中,本地数据库能够保留远程数据的本地拷贝,从而使得应用仅仅访问本地拷贝,而不需实时连接到远程数据库。因而减少了到远程数据库的网络流量,均衡了网络负载。(5)可靠性高分布式数据库通过增加冗余数据来提高系统的可靠性,因此如果一个数据备份受到损坏,并不影响整个数据库系统。

13、(6)自治集中相结合的控制在集中式数据库中,为了提供资源共享,保证数据的安全性和完整性,对数据资源进行集中控制,由数据管理员(DBA)监督和维护系统的正常运行,这是采用数据库管理技术的作用之一。在分布式数据库中,一般具有分层控制的结构。其数据共享有二个层次:局部共享和全局共享。局部共享是指在局部数据库中存储局部场地上的那些用户的共享数据; 全局共享是指分布式数据库的各个结点上还存储可供网络上其他结点上的用户共享数据,以支持系统中的全局应用。这样,相应的控制也具有两个层次:集中控制和结点自治。各个结点的局部的数据库管理系统DBMS可以独立地管理局部数据库,具有结点自治性。同时系统又具有集中控制的

14、机制,协调各个局部DBMS的工作,执行全局应用。分布式数据库系统采用的就是这种集中和自治相结合的控制结构。(7)全局的一致性、可恢复性和并发控制分布式数据库中的各个局部数据库应满足集中式数据库的一致性,可恢复性和具有并发控制。同时还要保证整个分布式数据库的全局一致性、全局的可恢复性与并发控制。因此在分布式数据库中这方面的控制内容更多,实现起来也更复杂。一致性、可恢复性和并发控制虽不相同。但解决的方法都涉及到事务的管理。分布式数据库中全局应用要涉及到两个或两个以上结点的数据。这时一个事务往往由不同结点上的不同操作组成,是一种全局的事务。事务是一个不可分割的执行单位,要么完整地执行,要么撤消,完全

15、不执行。在执行分布式数据库系统里的全局事务时,如果其中一个结点上的那部分操作己完成,而另一个结点出现故障,操作失败,那么应该撤消前一结点已执行的操作,不再执行该事务的其他操作,让全局事务回到初始状态,以保证数据的一致性。分布式数据库系统的以上这些特性使得分布式数据库系统结构更加复杂,控制难度更大。也导致了其自身难以克服的很多缺陷:分布式数据库系统开销相对较大;具有复杂的存取结构,原来在集中式系统中有效的存取数据的技术,在分布式系统中不再适用;最主要的缺陷还是分布式数据库的数据安全性和保密性较难处理。因此在分布式数据库中常需要采用加密手段来保证数据安全,这无疑又增加了系统开销和系统复杂度。2.

16、分布式数据库的安全需求分析2.1分布式数据库的体系结构分布式数据库系统通过计算机网络,将地理位置分散而管理又需要不同程度集中的多个逻辑单位(通常是集中式数据库系统)联接起来,共同组成一个统一的数据库系统,由统一的分布式数据库管理系统管理,因此分布式数据库系统可以看成是计算机网络与数据库系统的有机结合2。DDBS的体系结构分为四级:全局外模式、全局概念模式、分片模式和分配模式。 (1)全局外模式:它们是全局应用的用户视图,是全局概念模式的子集。 (2)全局概念模式:全局概念模式定义了分布式数据库中所有数据的逻辑结构。 (3)分片模式:分片模式定义片段以及定义全局关系与片段之间的映象。这种映象是一

17、对多的,即每个片段来自一个全局关系,而一个全局关系可分成多个片段。 (4)分配模式:片段是全局关系的逻辑部分,一个片段在物理上可以分配到网络的不同场地上。分配模式根据数据分配策略的选择定义片段的存放场地。2.2分布式数据库的不安全因素数据库安全性包括两方面的内容:数据库数据的保密性和安全性。数据的保密性是由个人或组织控制属于自己的数据,包括数据的收集、存储、处理、传输、和使用的法律和道德的权利。这里主要讨论数据的安全性。数据的安全性是指对数据库中数据的有意或者无意的泄露、更改和丢失的保护能力,以及防止对数据库数据的不合法使用的能力3。由分布式数据库的体系结构可见,存在的不安全因素可以概括为三个

18、方面:数据存储在各个站点上存在的不安全因素;访问各个站点上数据存在的不安全因素;数据在各个站点之间传输时存在的不安全因素。综合实际情况分析,不安全因素具体包括:(1) 黑客的攻击黑客攻击的手段多种多样,到目前为止,攻击手段主要有:猎取用户口令,进行身份攻击;黑客假冒合法用户身份猎取敏感信息;黑客利用隐秘通道获取秘密信息;利用木马病毒隐藏于系统之中,对系统进行攻击;攻击电子邮件,通过垃圾邮件等进行攻击;窃听,黑客在网络信道上监听客户数据库服务器或服务器服务器之间的报文来窃取数据;重发攻击,黑客把窃听到的报文又重发给客户或服务器,重发的报文或保持原样或做了修改,以扰乱系统正常运行甚至修改数据库中数

19、据。重发攻击可以是针对站点间的数据通信过程,也可以是针对站点间的身份验证过程;假冒攻击,黑客可以发送报文使客户或服务器通讯端口堵塞,然后再假冒该客户或服务器扰乱分布式数据库系统内其它站点的正常运行甚至非法访问数据;越权攻击,黑客本身是分布式数据库系统的合法用户,但他利用访问控制方面的安全漏洞越权访问非授权数据;迂回攻击,黑客利用网络协议、操作系统的安全漏洞绕过分布式数据库系统直接访问数据库文件。在上述各种过程中,为了实施更有效的攻击黑客往往还借助于破译工具,采用密码分析方法对得到的密文进行解密或纂攻4。(2) 计算机病毒攻击计算机病毒种类迅速增加、病毒的机制越来越复杂化、破坏性和攻击性越来越强

20、加上互联网为病毒的国际流行提供的方便环境,这使得病毒对数据库的安全构成了严重的威胁。(3) 操作系统安全的脆弱性这是由操作系统的结构体制所造成的,即操作系统的程序是可以动态连接,可以创建进程,提供远程调用(RPC)等。一个可以打补丁和可渗透的操作系统是难以从根本上解决安全问题的,但是,操作系统支持程序的连接和数据动态交换是现代系统集成和系统扩展的需要,显然这与安全性是相矛盾的。(4) 网络协议的脆弱性网络协议安全保障处于较低的水平,例如:TCP/IP协议在设计之初并没有把安全因素考虑进去。TCP/IP服务的内在问题,主机配置的复杂性,软件开发过程中引入的脆弱性等都会使相关的站点无法抵御“闯入者

21、“。(5)数据共享引起的安全问题分布式数据库系统具有局部应用和全局应用,采用集中和自治相结合的控制方式,提供了系统数据共享机制,数据共享是分布式数据库最突出的特点之一,它为分布式应用带来众多好处,同时也对系统安全提出了新的挑战同集中式数据库系统相比分布式数据库系统存在的安全问题主要有5:(1) 一个分布式数据库系统常常具有多个用户和用户组,而这些用户和用户组又通常分布于系统的各个站点,因此,确认系统中用户的合法身份显然较集中式数据库系统的方法更为复杂。(2) 分布式数据库系统内的用户通常需要共享系统内的数据,而这些数据可能由不同的用户存储,并可能分布在多个站点上,同一数据对不同用户可能具有不同

22、的安全要求。自主访问控制的授权机制可以使得具有某种访问权限的主体自行决定将其访问权直接或间接地转授给其他无权访问的用户, 因此可能造成信息流动的不安全。(3) 单纯地只根据用户安全级别进行的访问控制可能造成未授权信息的泄露。例如,一个企业内部办公网中,人事主管与财务主管的安全级别应该是相同的,但是人事主管显然不能随意获得财务主管的消息,反之亦然。3安全措施的层次分析在网络环境下,分布式数据库系统包括客户机、固定主机、位置服务器、支持基站,固定网络等。因此对分布式数据库系统进行安全维护时,应该将各个组成部分考虑进去6。(1) 物理层 物理层指的是位于整个系统中的各个站点,各个站点必须物理上受到保

23、护,以防止入侵者强行闯入或暗中潜入。(2) 用户层为不同需求的合法用户授予不同的权限,并且对用户的授权必须格外谨慎。(3) 网络层 分布式数据库系统的网络层包含两个方面,第一方面是回写 网络,第二方面是移动网络。这两方面的安全对整个系统举足轻重。由于移动系统通过网络进行远程数据访问和数据传输,网络层安全性与物理层安全一样重要,必须有相应的网络安全措施。(4) 操作系统层操作系统安全性方面的弱点,可能成为对数据库进行未授权访问的一种手段。所以不管数据库管理系统有多安全,必须关注操作系统的安全性。(5) 数据库系统层数据库系统层的安全机制的主要责任是保证为不同需求的合法用户授予不同的权限,并保证这

24、样的授权限制不被违反。4安全防护策略4.1全面防护4.1.1物理安全性与其说物理安全性是特定的恶意软件问题,不如说它是一般的安全问题,但是如果没有用于组织基础结构中所有客户端,服务器和网络设备的有效物理防护计划,则无法避免恶意软件的攻击。在有效的物理防护计划中有许多关键因素,其中包括:建立安全性、人员安全性、网络接入点、服务器计算机、工作站计算机、移动计算机和设。在组织的安全风险评估中,应该评估其中的每个元素。如果攻击者损害其中的任一元素,则风险级别增加,恶意软件可以绕过外部和内部防护边界感染网络上的主机。4.1.2客户端防护当恶意软件到达主机时, 防护系统必须集中于保护主机系统及其数据, 并

25、停止感染的传播。这些防护与环境中的物理防护和网络防护一样重要。(1)减小攻击面应用程序层上的第一道防护是减小计算机的攻击面。应在计算机上删除或 禁用所有不需要的应用程序或服务, 以最大限度地减少攻击者可以利用系统的方法 数。(2)启用基于主机的防火墙基于主机的防火墙或个人防火墙代表应该启用 的重要客户端防护层,尤其是在用户可能带到组织通常的物理和网络防护之外的便携式计算机上。这些防火墙会筛选试图进入或离开特定主机的所有数据7。(3)测试漏洞扫描程序。(4)限制未授权的应用程序。4.1.3服务器防护服务器防护比起客户端防护在可靠性和性能方面的预期级别通常高多。此外,许多服务器在组织基础结构中起到

26、的专门作用通常需要制定专门的防护解决方案。(1)减小攻击面。从服务器中删除不需要的服务和应用程序, 将其攻击面减到最小。(2)应用安全更新。如有可能, 请确保所有服务器计算机运行的都是最新的安全更新。根据需要执行其他测试,以确保新的更新不会对关键任务服务器产生负面影响。(3)启用基于主机的防火墙。(4)使用漏洞扫描程序进行测试。4.1.4网络防护层在历史上出现过的恶意软件事件中,通过网络发动的攻击是最多的。通常, 发动恶意软件攻击是为了利用网络外围防护中的漏洞允许恶意软件访问组织IT 基础结构中的主机设备。这些设备可以是客户端、服务器、路由器, 或者甚至是防火墙。在此层上进行病毒防护所面临的最

27、困难问题之一是,平衡IT系统用户的功能要求与创建有效防护所需的限制。例如, 与许多攻击类似, MYDOOM 蠕虫使用电子邮件附件复制自己。从IT基础结构角度来看, 阻止所有传人附件是最简单、最安全的选项。但是, 组织中电子邮件用户的需求可能不允许这样做。必须进行折衷, 在组织的需求和它可以接受的风险级别之间达到平衡才是明智的做法。4.2身份验证识别系统授权的合法用户,防止非法用户访问数据库系统, 可采用双向身份验证技术, 包括用户身份认证与站点间身份验证。(1) 用户身份认证在分布式数据库系统中,为了防止各种假冒攻击,在执行各种数据库操作之前,需要在客户端和数据库服务器之间进行双向身份验证。用

28、户进入分布式数据库系统之前, 需要进行身份验证, 并且确定该用户的访问权限。通常采用系统给每个合法用户分配一个唯一的用户标识和口令。高级系统要使用智能卡技术、物理特征(指纹, 声纹,手图,视网膜等) 认证技术、数字签名等方法。(2) 站点间身份验证Kerberos 基于对称密码体制的双向身份验证协议,各站点从密钥管理中心获得与目标站点通信用的秘密密钥。基于公钥密码体制的双向身份验证协议,每个站点都生成一个非对称密码算法(RSA)的公钥对,其中私钥由站点自己保存,并通过可信渠道把自己的公钥分发到分布式系统的其他站点,然后任意两个站点可以利用所获得的公钥信息相互验证份。4.3访问控制所谓访问控制,

29、一般是指系统内部的访问控制,或者说,是系统内部主体对客体访问所受到的控制。实施访问控制,是维护系统安全、保护系统资源的重要技术手段, 也是计算机系统中数据库系统安全机制的核心。访问控制的主要任务是对存取访问权限的确定、授予和实施, 其目的就是在保证系统安全的前提下, 最大限度地给予资源共享。访问控制的基础, 是主体和客体的安全属性。实施访问控制,侧重保护的是客体。每个需要加以保护的客体, 都得按安全要求, 预先标识一组相应的安全属性, 并以此鉴别、确定对客体访问的允许与否。这个标识安全属性称为访问控制表,同样,每个主体也应当设有相应的访问控制表, 用以标明它访问客体的能力。此处标识的作用就是“

30、 授权”,用以标明哪些主体有权访问。所确定的访问权限实际是允许的访问方式, 即读、写、查询、增加、删除、修改等操作的组合, 还有安全的访问过程等8。4.4数据库加密在分布式数据库中, 数据加密是指将需要保护的数据( 明码文) 在秘密信息(密钥)的作用下按照一定的规则(加密算法)变换成他人无法识别的形式(密码文)。4.4.1加密层次可以考虑在三个不同层次实现对数据库数据的加密,这三个层次分别是OS层、DBMS内核层和DBMS外层。(1) 在OS层加密由于在OS层无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,对密钥合理的管理和使用也很难。因此,对分布式数据库来说,在OS层对数据库文件进行

31、加密很难实现。(2)在DBMS内核层实现加密这种加密是指数据在物理存取之前完成加解密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持。(3)在DBMS外层实现加密是将数据库加密系统做成DBMS的一个外层工具,根据加密要求自动完成对数据库数据的加脱密处理。采用这种加密方式进行加密,加脱密运算可在客户端进行,它的优点是不会加重数据库服务器的负载并且可以实现网上传输的加密,缺点是加密功能会受到一些限制,与数据库管理系统

32、之间的耦合性稍差。在DBMS外层实现加密功能的原理如下。数据库加密系统分成两个功能独立的主要部件:一个是加密字典管理程序,另一个是数据库加解密引擎9。数据库加密系统将用户对数据库信息具体的加密要求以及基础信息保存在加密字典中,通过调用数据加脱密引擎实现对数据库表的加密、脱密及数据转换等功能。数据库信息的an脱密处理是在后台完成的,对数据库服务器是透明的。4.4.2加密的关键影响因素分析(1)加密粒度数据库加密系统的加密粒度有多种选择,按由大至小的次序排列,包括以表为单位、以记录为单位和以数据项为单位等实现加解密操作。总体来说,加密粒度越小则灵活度越高且安全性越好,但实现技术也更为复杂、难度更大

33、。在实际实现中后两种加密粒度使用较多。以表为单位的加密方法类似于操作系统中文件加密方法,每个表与不同的表密钥运算,形成密文后存储。根据表的物理存储实现方式的不同,加密单位可能是文件或文件中的块。该方式实现最为简单,但该方式中的灵活度最低且执行效率最低,浪费大量DBMS或加密服务器计算资源。当加解密的粒度为每个记录的字段数据数据项时,系统的安全性与灵活性最高,同时实现技术也最复杂。在该方式中,每个数据项可以独立的进行加解密操作,并使用不同的数据项密钥10。以记录为单位的加密介乎前两种粒度之间。将记录看作操作对象,统一进行加解密处理。只有以记录的字段数据为单位进行加解密,才能适应数据库操作,同时进

34、行有效的密钥管理并完成“一次一密”的密码操作。(2)加密算法目前缺乏专门针对数据库加密的加密算法,因而分布式数据库加密时只有根据数据库特点选择现有的加密算法。由于加解密速度是分布式数据库考虑的一个重要因素,数据库加密中通常使用对称加密体制中的块加密算法。数据项长度或剩余部分长度小于加密算法所需的块长时,需要按一定规律扩展后加密。也可以将剩余部分再用序列密码加密。数据项粒度加密需要对不同的数据项使用不同的密钥。但这些密钥不能是随机生成的,否则很难保证对同一数据项使用相同的加解密的密钥。但若是系统保存每一个数据项密钥,则密钥信息量与数据库数据量相当,显然也是不现实。所以数据项密钥不能是独立的,而应

35、该是函数自动生成的。通常可以将数据项密钥表示为一个基本密钥与数据项所在的行与列的函数。(3)密钥管理加密数据库中的密钥管理比其他系统的密钥管理更为困难与复杂。而分布式数据库中存储着海量数据,已经加密的数据需要用原来的密钥系统解密,且解密时间将会很长,加密密钥不可能随时更换。除此以外,根据加密粒度的不同,对不同的数据应该使用不同的密钥。因此分布式数据库中需要保存大量的密钥信息。另外,分布式数据库客体之间隐含着复杂的逻辑关系,一个逻辑结构可能对应着多个数据库物理客体,所以数据库加密不仅密钥量大,而且组织和存储工作比较复杂,需要对密钥实现动态管理。因此如何生成、保存、替换数据库加密密钥,对数据库加密

36、中的密钥管理提出了更为严格的要求。解决这一问题的方法之一是采用分级管理结构。无论哪种多级密钥体制,主密钥都是加密子系统的关键,多级密钥管理体制的安全依赖于主密钥的安全。另一种解决方法是集中密钥管理方法。即在建立加密数据库时,由密钥管理中心负责产生加密密钥并对数据加密。当一用户访问分布式数据库时,密钥管理机构核对用户识别符和用户密钥,认为是合法用户,则允许访问。但必须由密钥管理机构找到或计算出相应的数据加密密钥,并由他们利用数据加密算法解密出相应的数据。由于加密粒度的不同,密钥的种类和密钥的数量不同。这些密钥存储在一张表中。这张表通过密钥加密密钥对其加密保存11。4.4.3常用的加解密算法:DE

37、S 算法、3DES、IDEA、ECC算法、RSA算法、AES算法、MH背包算法、DH算法。数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的。通常,自动取款机(Automated Teller Machine,ATM)都使用DEA11。数据加密标准DES :DES的原始思想可以参照二战德国的恩格玛机,其基本思想大致相同。传统的密码加密都是由古代的循环移位思想而来,恩格玛机在这个基础之上进行了扩散模糊。但是本质原理都是一样的.现代DES在二进制级别做着同样的事:替

38、代模糊,增加分析的难度。DES使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64位的分组大小。这是一个迭代的分组密码,使用称为Feistel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环,使用异或,置换,代换,移位操作四种基本运算。DES算法的安全性:(1) 安全性比较高的一种算法,目前只有一种方法可以破解该算法,那就是穷举法.(2) 采用64位密钥技术,实际只有56位有效,8位用来校验的.譬如,有这样的一台PC机器,它能每秒计算一百万次,那么256

39、位空间它要穷举的时间为2285年.所以这种算法还是比较安全的一种算法.3DES又称Triple DES,图4.1是3DES的输出接口示意图,是DES加密算法的一种模式,它使用3条56位的密钥对数据进行三次加密。数据加密标准(DES)是美国的 图4.1 3DES输出接口一种由来已久的加密标准,它使用对称密钥加密法,并于1981年被ANSI组织规范为ANSI X.3.92。DES使用56位密钥和密码块的方法,而在密码块的方法中,文本被分成64位大小的文本块然后再进行加密。比起最初的DES,3DES更为安全。 3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3

40、-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,这样,设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密表,这样,3DES加密过程为:C=Ek3(Dk2(Ek1(P),3DES解密过程为:P=Dk1(EK2(Dk3(C)。IDEA(International Data Encryption Algorithm)是瑞士的James Massey,Xuejia

41、Lai等人提出的加密算法,在密码学中属于数据块加密算法(Block Cipher)类。IDEA使用长度为128bit的密钥,数据块大小为64bit。从理论上讲,IDEA属于“强”加密算法,至今还没有出现对该算法的有效攻击算法。 早在1990年,Xuejia Lai等人在EuroCrypt90年会上提出了分组密码建议PES(Proposed Encryption Standard)。在EuroCrypt91年会上, Xuejia Lai等人又提出了PES的修正版IPES(Improved PES)。目前IPES已经商品化,并改名为IDEA。IDEA已由瑞士的Ascom公司注册专利,以商业目的使用

42、IDEA算法必须向该公司申请许可。 IDEA是一种由8个相似圈(Round)和一个输出变换(Output Transformation)组成的迭代算法。IDEA的每个圈都由三种函数:模(216+1)乘法、模216加法和按位XOR组成。 在加密之前,IDEA通过密钥扩展(Key Expansion)将128bit的密钥扩展为52Byte的加密密钥EK(Encryption Key),然后由EK计算出解密密钥DK(Decryption Key)。EK和DK分为8组半密钥,每组长度为6Byte,前8组密钥用于8圈加密,最后半组密钥(4Byte)用于输出变换。IDEA的加密过程和解密过程是一样的,只不

43、过使用不同的密钥(加密时用EK,解密时用DK)。 密钥扩展的过程如下: (1) 将128bit的密钥作为EK的前8byte; (2) 将前8byte循环左移25bit,得到下一8byte,将这个过程循环7次; (3) 在第7次循环时,取前4byte作为EK的最后4byte; (4) 至此52byte的EK生成完毕。 密钥扩展的过程如表1所示,为了能够清楚的看出每个8Byte的关系,在表1中用粗线条将将每个8Byte划分开了. IDEA算法相对来说是一个比较新的算法,其安全性研究也在不断进行之中。在IDEA算法公布后不久,就有学者指出:IDEA的密钥扩展算法存在缺陷,导致在IDEA算法中存在大量

44、弱密钥类,但这个弱点通过简单的修改密钥扩展算法(加入异或算子)即可克服。在1997年的EuroCrypt97年会上,John Borst等人提出了对圈数减少的IDEA的两种攻击算法:对3.5圈IDEA的截短差分攻击(Truncate Diffrential Attack)和对3圈IDEA的差分线性攻击(Diffrential Linear Attack)。但作者也同时指出,这两种攻击算法对整8.5圈的IDEA算法不可能取得实质性的攻击效果。目前尚未出现新的攻击算法,一般认为攻击整8.5圈IDEA算法唯一有效的方法是穷尽搜索128bit的密钥空间。 目前IDEA在工程中已有大量应用实例,PGP(

45、Pretty Good Privacy)就使用IDEA作为其分组加密算法;安全套接字层SSL(Secure Socket Layer)也将IDEA包含在其加密算法库SSLRef中;IDEA算法专利的所有者Ascom公司也推出了一系列基于IDEA算法的安全产品12,包括:基于IDEA的Exchange安全插件、IDEA加密芯片、IDEA加密软件包等。IDEA算法的应用和研究正在不断走向成熟。ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。ECC在1976年,由于对称加密算法已经不能满足需要,Diffie 和Hellman发表了一篇叫密码学新动向的文章,介绍

46、了公匙加密的概念,由Rivet、Shamir、Adelman提出了RSA算法。随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展,为了保障数据的安全,RSA的密钥需要不断增加,但是,密钥长度的增加导致了其加解密的速度大为降低,硬件实现也变得越来越难以忍受,这对使用RSA的应用带来了很重的负担,因此需要一种新的算法来代替RSA。1985年N.Koblitz和Miller提出将椭圆曲线用于密码算法,根据是有限域上的椭圆曲线上的点群中的离散对数问题ECDLP。ECDLP是比因子分解问题更难的问题,它是指数级的难度。其原理为椭圆曲线上的难题。椭圆曲线上离散对数问题ECDLP定义如下:

47、给定素数p和椭圆曲线E,对QkP,在已知P,Q 的情况下求出小于p的正整数k。可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,将椭圆曲线中的乘法运算与离散对数中的模幂运算相对应,我们就可以建立基于椭圆曲线的对应的密码体制。例如,对应Diffie-Hellman公钥系统,我们可以通过如下方式在椭圆曲线上予以实现:在E上选取生成元P,要求由P产生的群元素足够多,通信双方A和B分别选取a和b,a和b 予以保密,但将aP和bP公开,A和B间通信用的密钥为abP,这是第三者无法得知的。对应ELGamal密码系统可以采用如下的方式在椭圆曲线上

48、予以实现:将明文m嵌入到E上Pm点,选一点BE,每一用户都选一整数a,0aN,N为阶数已知,a保密,aB公开。欲向A送m,可送去下面一对数偶:kB,Pm+k(aAB),k是随机产生的整数。A可以从kB求得k(aAB)。通过:Pm+k(aAB)- k(aAB)=Pm恢复Pm。同样对应DSA,考虑如下等式:K=kG 其中 K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数不难发现,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k就相对困难了。这就是椭圆曲线加密算法采用的难题。我们把点G称为基点(base point),k(k<n,n为基点G的阶)称为私有密钥(privt

49、e key),K称为公开密钥(public key)。ECC和RSA相比,在许多方面都有对绝对的优势,主要体现在以下方面:(1)抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。(2)计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。(3)存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。(4)带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。ECC的这些特点使它必将取代R

50、SA,成为通用的公钥加密算法。比如SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的缺点主要有:(1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。(2)安全性, RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NPC问题。目前,人们已能分解140多个十进制位的大素数,这就要求使

51、用更长的密钥,速度更慢;另外,目前人们正在积极寻找攻击RSA的方法,如选择密文攻击,一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:( XM )d = Xd *Md mod n 。前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征-每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使

52、用One-Way Hash Function对文档作HASH处理,或同时使用不同的签名算法。除了利用公共模数,人们还尝试一些利用解密指数或(n)等等攻击. (3)速度太慢,由于RSA 的分组长度太大,为保证安全性,n 至少也要 600 bitx以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(SecureElectronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。为了速度问题,目前人们广泛使用单,公钥密码结合使用的方法,优缺点互补:单钥密码

53、加密速度快,人们用它来加密较长的文件,然后用RSA来给文件密钥加密,极好的解决了单钥密码的密钥分发问题。 表4.1比较了AES与3DESAES与3DES的比较算法名称算法类型密钥长度速度解密时间(建设机器每秒尝试255个密钥)资源消耗AES对称block密码128,192256位高1490000亿年低3DES对称feistel密码112位或168位低46亿年中表4.1表4.2,4.3是RSA和ECC的安全性和速度的比较。攻破时间(MIPS年)RSA/DSA(密钥长度)ECC密钥长度RSA/ECC密钥长度比1045121065:11087681326:1101110241607:11020204

54、821010:110782100060035:1表4.2RSA和ECC安全模长得比较功能Security Builder 1.2BSAFE 3.0163位ECC(ms)1,023位RSA(ms)密钥对生成3.84,708.3签名2.1(ECNRA)228.43.0(ECDSA)认证9.9(ECNRA)12.710.7(ECDSA)DiffieHellman密钥交换7.31,654.0表4.3RSA和ECC速度比较MH背包算法是一种适合数据库加密的算法。MH背包算法是一种适合数据库加密的算法。其基本思想是:有一个函数F,使X = F(K,Y),X 相当于密文,K = (Kl,K2,Kn)相当于公

55、开密钥向量,Y相当于明文。在算法F不公开的情况下,若已知K 和X 要还原出Y来,穷尽次数为2n次。MH背包算法是Merkle与Hellman合作设计了使用背包问题实现信息加密的方法其工作原理是:假定甲想加密,则先产生一个较易求解的背包问题,并用它的解作为专用密钥;然后从这个问题出发,生成另一个难解的背包问题,并作为公共密钥。如果乙想向甲发送报文,乙就可以使用难解的背包问题对报文进行加密,由于这个问题十分难解,所以一般没有人能够破译密文;甲收到密文后,可以使用易解的专用密钥解密。但是,在它发表几年后,就找到了攻破它的方法。即使如此,它仍然代表着一类很难问题的算法。背包加密分为加法背包和乘法背包:

56、加法背包:我们知道,1<2,1+2<4,1+2+4<8,1+2+4+8<16,,那么如果我们选择这样一些数,这些数从小到大排列,如果前面所有的数加起来的值总小于后面的数,那么这些数就可以构成一个背包,我们给一个这个背包里面的某些数的和,这个数就是被加密的数,由这个背包组成这个数只有一种组合方式,这个方式就是秘密了,例如给大家一个封包(2,3,6,12,24,48),由这个背包里的某些数构成的数:86,你知道86怎么来的吗?当然,你看着背包里面的内容,可以知道是由2+12+24+48得到的,如果你没有这个背包,而是直接得到这个86,你知道组成这个86的最小的数是多少吗?你

57、无法知道,因为加起来等于86的数非常多:85+1=86,82+2=86等等,你是无法知道的,所以,背包加密非常难破。 乘法背包:乘法背包比加法背包更复杂,不仅是运算量大了很多,更重要的是你得到的一个被加密了的数据更大,一般都是上亿的,而且在许多机密的机关里面,背包的数据都不是有这个单位,而是用位,我们知道,1<2, 1*2<3, 1*2*3<7,1*2*3*7<43, 1*2*3*7*42<1683,数字的增长还是很快的,之所以复杂,就是因为数字很大啊!背包的特点是:如果背包里面的数据按小到大排列,那么,前面所有数据的乘积小于后面的任何一个元素,这个就是背包的特点,是不是很简单,但是要知道乘积的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论