数据加密技术的研究综述毕业论文.doc_第1页
数据加密技术的研究综述毕业论文.doc_第2页
数据加密技术的研究综述毕业论文.doc_第3页
数据加密技术的研究综述毕业论文.doc_第4页
数据加密技术的研究综述毕业论文.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

深圳学历教育深圳成人高考 数据加密技术的研究综述 网络教育学院本 科 生 毕 业 论 文(设 计) 题 目:数据加密技术的研究综述(模板)30内容摘要随着计算机网络技术的飞速发展,数据加密技术将成为信息网络安全技术中的核心技术,本文介绍了网络与信息安全技术体系结构,对目前信息加密技术进行了分析,阐述了各类加密算法的优缺点,同时对加密技术的发展趋势进行了描述从最初的保密通信发展到目前的网络信息加密。数据加密技术是指将一个信息经过加密钥匙及加密函数转换,变成无意义的密文,而接收方则将此密文经过解密函数、解密钥匙还原成明文。在竞争激烈的信息时代,客观上需要一种强有力的安全措施来保护机密数据不被窃取或篡改,因此数据加密技术就应运而生。关键词:信息安全 ;数据加密;加密钥匙;解密钥匙;加密算法 目 录内容摘要I引 言11 概述21.1 背景21.2 本文的主要内容及组织结构32 数据加密和加密系统42.1 数据加密技术原理42.2 数据加密技术的分类及其应用42.3 加密系统体系52.3.1 加密系统的分类52.3.2 加密体制存在的问题62.4 对称加密、非对称加密和数字签名73 DES加密标准93.1 DES介绍和DES算法框架93.2 DES实例分析93.3 DES的安全性和应用误区123.4 DES的拓展123.4.1 3DES123.4.2 AES算法134 公开加密算法RSA144.1 RSA的简介144.2 RSA算法的结构144.3 RSA算法的案例144.4 RSA探索225 其他加密技术255.1 MD5255.2 可变长密钥块Blowfish加密技术265.3 椭圆曲线密码体制275.4 伪随机数加密技术286 结论32参考文献33附录一 伪随机数加密法的加密和解密程序33引 言随着网络技术的发展,网络安全也就成为当今网络社会的焦点中的焦点,几乎没有人不在谈论网络上的安全问题,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊。病毒、黑客的猖獗使身处今日网络社会的人们感觉到谈网色变,无所适从。 用户必需清楚地认识到,这一切一切的安全问题不可一下全部找到解决方案,况且有的是根本无法找到彻底的解决方案,如病毒程序,因为任何反病毒程序都只能在新病毒发现之后才能开发出来,目前还没有哪能一家反病毒软件开发商敢承诺他们的软件能查杀所有已知的和未知的病毒,所以用户不能有等网络安全了再上网的念头,因为或许网络不能有这么一日,就象“矛”与“盾”,网络与病毒、黑客永远是一对共存体。现代的电脑加密技术就是适应了网络安全的需要而应运产生的,它为用户进行一般的电子商务活动提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。其实加密技术也不是什么新生事物,只不过应用在当今电子商务、电脑网络中还是近几年的历史。加密作为保障数据安全的一种方式,它不是现在才有的,它产生的历史相当久远,它是起源于要追溯于公元前2000年(几个世纪了),虽然它不是现在所讲的加密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就诞生了。当时埃及人是最先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。近期加密技术主要应用于军事领域,如美国独立战争、美国内战和两次世界大战。最广为人知的编码机器是German Enigma机,在第二次世界大战中德国人利用它创建了加密信息。此后,由于Alan Turing和Ultra计划以及其他人的努力,终于对德国人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如利用ROSA算法产生的私钥和公钥就是在这个基础上产生的。本文主介绍究各种加密算法以及各类加密算法的优缺点,以及各类加密技术在军事、科学等多方面的应用。1 概述1.1 背景 当今网络社会选择加密已是我们必然选择,一方面是因为在互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输。而且这种不安全性是互联网存在基础TCP/IP协议所固有的,包括一些基于TCP/IP的服务;另一方面,互联网给众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小企业 。为了解决这一对矛盾,选择数据加密以及基于加密技术的数字签名已成为必然选择。随着信息技术的发展与应用,信息安全的内涵在不断的延伸,从最初的信息保密性发展到信息的完整性、可用性、可控性和不可否认性,进而又发展为攻(攻击)、防(防范)、测(检测)、控(控制)、管(管理)、评(评估)等多方面的基础理论和实施技术。 就理论研究而言,一些关键的基础理论需要保密,因为从基础理论研究到实际应用的距离很短。现代信息系统中的信息安全其核心问题是密码理论及其应用,其基础是可信信息系统的构作与评估。总的来说,目前在信息安全领域人们所关注的焦点主要有以下几方面:1)密码理论与技术;2)安全协议理论与技术;3)安全体系结构理论与技术;4)信息对抗理论与技术;5)网络安全与安全产品。 自从1976年公钥密码的思想提出以来,国际上已经提出了许多种公钥密码体制,但比较流行的主要有两类:一类是基于大整数因子分解问题的,其中最典型的代表是RSA;另一类是基于离散对数问题的,比如ElGamal公钥密码和影响比较大的椭圆曲线公钥密码。由于分解大整数的能力日益增强,所以对RSA的安全带来了一定的威胁。目前768比特模长的RSA已不安全。一般建议使用1024比特模长,预计要保证20年的安全就要选择1280比特的模长,增大模长带来了实现上的难度。而基于离散对数问题的公钥密码在目前技术下512比特模长就能够保证其安全性。特别是椭圆曲线上的离散对数的计算要比有限域上的离散对数的计算更困难,目前技术下只需要160比特模长即可,适合于智能卡的实现,因而受到国内外学者的广泛关注。 公钥密码主要用于数字签名和密钥分配。当然,数字签名和密钥分配都有自己的研究体系,形成了各自的理论框架。目前数字签名的研究内容非常丰富,包括普通签名和特殊签名。特殊签名有盲签名,代理签名,群签名,不可否认签名,公平盲签名,门限签名,具有消息恢复功能的签名等,它与具体应用环境密切相关。显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS),部分州已制定了数字签名法。法国是第一个制定数字签名法的国家,其他国家也正在实施之中。 在密钥管理方面,国际上也做了很多工作,比如1993年美国提出的密钥托管理论和技术、国际标准化组织制定的X.509标准(已经发展到第3版本)以及麻省里工学院开发的Kerboros协议(已经发展到第5版本)等,这些工作影响很大。密钥管理中还有一种很重要的技术就是秘密共享技术,它是一种分割秘密的技术,目的是阻止秘密过于集中,自从1979年Shamir提出这种思想以来,秘密共享理论和技术达到了空前的发展和应用,特别是其应用至今人们仍十分关注。我国学者在这些方面也做了一些跟踪研究,发表了很多论文,按照X.509标准实现了一些CA。但没有听说过哪个部门有制定数字签名法的意向。1.2 本文的主要内容及组织结构本文研究的内容为几种数据加密技术的原理及应用。第一章,主要是介绍数据加密技术的背景。第二章,主要是介绍数据加密技术的原理、数据加密技术分类体系及各种加密技术的优缺点。第三章,主要是介绍DES加密标准算法及DES标准算法案例。第四章,主要是介绍RSA加密算法标准、结构以及RSA加密算法案例和探索。第五章,主要是介绍其他几种加密技术的原理及应用。2 数据加密和加密系统本部分主要介绍数据加密技术的基本原理,并介绍数据加密技术的分类,以及它们分别应用于什么场合,另外介绍一下加密系统的体系结构和原理,具体介绍主要的加密技术如对称加密、非对称加密以及数字签名等。2.1 数据加密技术原理数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径达到保护数据不被人非法窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。当信息发送者需要发送信息时,首先生成一个对称密钥,用该对称密钥加密要发送的报文;信息发送者用信息接收者的公钥加密上述对称密钥;信息发送者将第一步和第二步的结果结合在一起传给信息接收者,称为数字信封;信息接收者使用自己的私钥解密被加密的对称密钥,再用此对称密钥解密被发送方加密的密文,得到真正的原文1。 2.2 数据加密技术的分类及其应用加密技术通常分为两大类:“对称式”和“非对称式”。对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。SSL加密技术SSL3.0 用一种电子证书(electric certificate)来实行身份进行验证后,双方就可以用保密密钥进行安全的会话了。它同时使用“对称”和“非对称”加密方法,在客户与电子商务的服务器进行沟通的过程中,客户会产生一个Session Key,然后客户用服务器端的公钥将Session Key 进行加密,再传给服务器端,在双方都知道Session Key 后,传输的数据都是以Session Key 进行加密与解密的,但服务器端发给用户的公钥必需先向有关发证机关申请,以得到公证。VPN加密将具有加密/解密功能的路由器使人们通过互联网连接专用局域网,这就是通常所说的虚拟专用网(VPN)。当数据离开发送者所在的局域网时,该数据首先被用户端连接到互联网上的路由器进行硬件加密,数据在互联网上是以加密的形式传送的,当达到目的LAN 的路由器时,该路由器就会对数据进行解密,这样目的LAN 中的用户就可以看到真正的信息了2。数据加密在银行系统中的应用数据加密就是按照确定的密码算法把敏感的明文数据变换成难以识别的密文数据,通过使用不同的密钥,可用同一加密算法把同一明文加密成不同的密文。当需要时,可使用密钥把密文数据还原成明文数据,称为解密。这样就可以实现数据的保密性。众所周知,各种相关 网络 安全的黑客和病毒都是依赖网络平台进行的,而如果在网络平台上就能切断黑客和病毒的传播途径,那么就能更好地保证安全。众多银行如农业银行、建设银行、工商银行等都采取了数据加密技术与网络交换设备联动。即是指交换机或防火墙在运行的过程中,将各种数据流的信息上报给安全设备,数字加密系统可根据上报信息和数据流内容进行检测,在发现网络安全事件的时候,进行有针对性的动作,并将这些对安全事件反应的动作发送到交换机或防火墙上,由交换机或防火墙来实现精确端口的关闭和断开,这样就可以使数据库得到及时充分有效的保护。由于金融系统 “网上银行”的兴起,银行系统的安全问题显得越来越重要,安全隐患已成为迫在眉睫的首要问题。为了解决银行的安全隐患,因此各种数据加密在银行系统中起着越来越重要的作用。2.3加密系统体系2.3.1加密系统的分类对称加密算法 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。应用于:电子商务。不对称加密算法 不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。主要应用于:VPN系统。不可逆加密算法 不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。显然,在这类加密过程中,加密是自己,解密还得是自己,而所谓解密,实际上就是重新加一次密,所应用的“密码”也就是输入的明文。不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用, 广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。2.3.2 加密体制存在的问题对称加密算法 不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES、IDEA和AES。不对称加密算法 不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。不可逆加密算法 不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用,如广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。在计算机网络中应用较多不可逆加密算法的有RSA公司发明的MD5算法和由美国国家标准局建议的不可逆加密标准SHS(Secure Hash Standard:安全杂乱信息标准)等。 2.4 对称加密、非对称加密和数字签名对称加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。 非对称加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥都在数学上相关联;用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以提供给任何人;公钥用于对要发送到私钥持有者的数据进行加密。两个密钥对于通信会话都是唯一的。数字签名(Digital Signature)是公开密钥加密技术的一种应用, 是指用发送方的私有密钥加密报文摘要, 然后将其与原始的信息附加在一起, 合称为数字签名。其使用方式是:报文的发送方从报文文本中生成一个128位或160位的单向散列值(或报文摘要),并用自己的私有的密钥对这个散列值进行加密,形成发送方的数字签名;然后将这个数字签名作为报文的附件和报文一起发送给报文的接收方;报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要),接着再用发送方的公开密钥对报文附加的数字签名进行解密;如果这两个散列值相同,那么接收方就能确认数字签名是发送方的。通过数字签名能够实现对原始报文的的鉴别和验证,保证报文的完整性、权威性和发送者对报文的不可抵赖性。数字签名机制提供了一种鉴别方法,普遍用于银行、电子商务等, 以解决伪造、抵赖、冒充、篡改等问题。3 DES加密标准本部分主要介绍DES的定义、起源,并介绍DES算法的框架以及DES实际的案例,然后讨论一下DES算法的安全性和DES的应用误区;最后介绍一下DES的拓展算法,例如3DES、AES算法。3.1 DES介绍和DES算法框架它出自 IBM 的研究工作,并在 1997 年被美国政府正式采纳。它很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的 DES 是嵌入硬 件中的。通常,自动取款机(Automated Teller Machine,ATM)都使用 DES。DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环。DES 的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果 DES 使用 56 位的密钥,则可能的密钥数量是 2 的 56 次方个。随着计算机系统能力的不断发展,DES 的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。不过 ,DES 现在仅用于旧系统的鉴定,而更多地选择新的加密标准 高级加密标准(Advanced Encryption Standard,AES)。 DES 的常见变体是三重 DES,使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性。如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES。3.2 DES实例分析密文到明文的解密过程可采用与加密完全相同的算法。不过解密要用加密的逆变换,就是把上面的最后换位表和初始换位表完全倒过来变换。这里不再赘述。 下面这个例子中演示了如何使用c#中的加密包进行DES算法加密,大家可以借助这个例子一窥DES加密的用法。 des_demo.cs代码如下: using System; using System.Security.Cryptography; using System.IO; using System.Text; public class EncryptStringDES public static void Main(String args) if (args.Length , args0); return; / 使用UTF8函数加密输入参数 UTF8Encoding utf8Encoding = new UTF8Encoding(); byte inputByteArray = utf8Encoding.GetBytes(args 0.ToCharArray(); / 方式一:调用默认的DES实现方法DES_CSP. DES des = DES.Create(); / 方式二:直接使用DES_CSP()实现DES的实体 转贴于 中国/DES_CSP DES = new DES_CSP(); / 初始化DES加密的密钥和一个随机的、8比特的初始化向量(IV) Byte key = 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef; Byte IV = 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef; des.Key = key; des.IV = IV; / 建立加密流 SymmetricStreamEncryptor sse = des.CreateEncryptor(); / 使用CryptoMemoryStream方法获取加密过程的输出 CryptoMemoryStream cms = new CryptoMemoryStream(); / 将SymmetricStreamEncryptor流中的加密数据输出到 CryptoMemoryStream中 sse.SetSink(cms); / 加密完毕,将结果输出到控制台 sse.Write(inputByteArray); sse.CloseStream(); / 获取加密数据 byte encryptedData = cms.Data; / 输出加密后结果 Console.WriteLine(加密结果:); for (int i = 0; i csc des_demo.cs Microsoft (R) C# Compiler Version 7.00.8905 NGWS runtime 2000.14.1812.10 Copyright (C) Microsoft Corp 2000. All rights reserved. 运行实例: D:csharpdes_demo.exe 使用C#编写DES加密程序的framework 加密结果: 3D 22 64 C6 57 D1 C4 C3 CF 77 CE 2F D0 E1 78 2A 4D ED 7A A8 83 F9 0E 14 E1 BA 38 7B 06 41 8D B5 E9 3F 00 0D C3 28 D1 F9 6D 17 4B 6E A7 41 68 40 解密后数据: 使用C#编写DES加密程序的framework DES算法具有极高的安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。通过穷尽搜索空间,可获得总共256(大约7.21016)个可能的密钥。如果每秒能检测一百万个的话,需要2000年完成检测。可见,这是很难实现的。当然,随着 科学 技术的 发展 ,当出现超高速 计算 机后,可以考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。随着信息化和数字化社会的发展,随着计算机和Inte rnet的普及,密码学必将在国家安全、 经济 交流、 网络 安全及人民生活等方面发挥更大作用3。3.3 DES的安全性和应用误区DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的,当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。 DES算法中只用到64位密钥中的其中56位,而第8、16、24、.64位8个位并未参与DES运算,这一点,向我们提出了一个应用上的要求,即DES的安全性是基于除了8,16,24,.64位外的其余56位的组合变化256才得以保证的。因此,在实际应用中,我们应避开使用第8,16,24,.64位作为有效数据位,而使用其它的56位作为有效数据位,才能保证DES算法安全可靠地发挥作用。如果不了解这一点,把密钥Key的8,16,24,. .64位作为有效数据使用,将不能保证DES加密数据的安全性,对运用DES来达到保密作用的系统产生数据被破译的危险,这正是DES算法在应用上的误区,留下了被人攻击、被人破译的极大隐患。3.4 DES的拓展3.4.1 3DES3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密表,这样, 3DES加密过程为:C=Ek3(Dk2(Ek1(P) 3DES解密过程为:P=Dk1(EK2(Dk3(C) 4 3.4.2 AES算法AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。每一轮都需要一个与输入分组具有相同长度的扩展密钥Expandedkey(i)的参与。由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥K扩展成更长的比特串,以生成各轮的加密和解密密钥。应用:主要用于基于私钥数据加密算法的各种信息安全技术和安全产品中:1、无线网络应用2、信息安全领域3、AES软件应用4、虚拟专用网、同步光网络、远程访问服务器,高速路由器、移动通信、卫星通信、电子金融业务等。 4 公开加密算法RSA本章主要介绍非对称加密算法RSA的基本原理以及其算法结构,并举出RSA算法的一个具体实例进行分析,最后讨论一下RSA的探索大整数运算。4.1 RSA的简介RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n 至少也要 600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求CA采用2048bits长的密钥,其他实体使用1024比特的密钥。C)RSA密钥长度随着保密级别提高,增加很快。下表列出了对同一安全级别所对应的密钥长度。这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。早在1973年,英国国家通信总局的数学家Clifford Cocks就发现了类似的算法。但是他的发现被列为绝密,直到1998年才公诸于世。4.2 RSA算法的结构RSA加密算法使用了两个非常大的素数来产生公钥和私钥。即使从一个公钥中通过因数分解可以得到私钥,但这个运算所包含的 计算 量是非常巨大的,以至于在现实上是不可行的。加密算法本身也是很慢的,这使得使用rsa算法加密大量的数据变的有些不可行。这就使得一些现实中加密算法都基于rsa加密算法。pgp算法(以及大多数基于rsa算法的加密方法)使用公钥来加密一个对称加密算法的密钥,然后再利用一个快速的对称加密算法来加密数据。(1)RSA算法原理RSA算法是基于数论中的同余理论。如果用m代表明文,c代表密文,E(m)代表加密运算,D(c)代表解密运算,x=y(mode z)表示x和y模z同余,则加密和解密算法简单表示如下:加密算法 c=E(m)=me(mod n)解密算法 m=D(c)=cd(mod n)其中n和密钥e是公开的,而密钥d是保密的。下面讨论密钥的求取:选取两个随机大素数p和q(保密);设n=pq;欧拉函数(n)=(p-1)(q-1)(保密);选取与(n)互素的正整数e,即满足gcd(n),e)=1和0e=qC=Sumi=0 to n(Ci*0x100000000*i)=A+B显然:Ci不是简单地等于Ai+Bi,因为如果Ci0xffffffff就需要进位,当然计算Ci-1时也可能产生了进位,所以计算Ci时还要加上上次的进位值。 如果用carryi记录每次的进位则有: Ci=Ai+Bi+carryi-1-carryi*0x100000000 其中carry-1=0 若Ai+Bi+carryi-10xffffffff,则carryi=1;反之则carryi=0 若carryp=0,则n=p;反之则n=p+1减法设:A=Sumi=0 to p(Ai*0x100000000*i)B=Sumi=0 to q(Bi*0x100000000*i),p=qC=Sumi=0 to n(Ci*0x100000000*i)=A-B显然:Ci不是简单地等于Ai-Bi,因为如果AiBi则carryi=0;反之则carryi=1 若Cp=0,则n=p-1;反之则n=p乘法设:A=Sumi=0 to p(Ai*0x100000000*i)B=Sumi=0 to q(Bi*0x100000000*i),p=qC=Sumi=0 to n(Ci*0x100000000*i)=A*B显然:C=Sumi=0 to q(A*Bi*0x100000000*i)而(A*Bi*100000000*i)=Sumj=0 to p(Aj*Bi*0x100000000*(i+j)所以C=Sumi=0 to q(Sumj=0 to p(Aj*Bi*0x100000000*(i+j)因此:Ci=Sumj=0 to q(Ai-j*Bj)+carryi-1-carryi*0x100000000其中carry-1=0carryi=(Sumj=0 to q(Ai-j*Bj)+carryi-1)/0x100000000n=p+q-1,若carryn0,则n=n+1,Cn=carry除法设: A=Sumi=0 to p(Ai*0x100000000*i) B=Sumi=0 to q(Bi*0x100000000*i),p=q C=Sumi=0 to n(Ci*0x100000000*i)=A/B由于无法将B 对A “试商”,我们只能转换成Bq对Ap的试商来得到一个近似值,所以我们不能够直接计算C。但是,我们可以一步一步地逼近C显然: (Ap/Bq-1)*0x100000000*(p-q)C令:X=0重复:A=A-X*B,X=X+(Ap/Bq-1)*0x100000000*(p-q),直到A=qC=Sumi=0 to n(Ci*0x100000000*i)=A%B求模与求商的过程一致,只是由于不需要记录商而更加简单:重复:A=A-(Ap/Bq-1)*0x100000000*(p-q)*B,直到A(b) 11 x -5 y = 111%5 =1 -(c)x -5 y = 1令y=0 来源:GameR代入(c)得x=1令x=1 代入(b)得y=2令y=2 代入(a)得x=9同理可使用递归算法求得任意 ax-by=1(a、b互质)的解,实际上通过分析归纳将递归算法转换成非递归算法就变成了大衍求一术。幂模运算:幂模

温馨提示

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

评论

0/150

提交评论