2013毕业论文-数据加密技术的研究综述

更新时间:2024-05-04 02:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

网络教育学院

本 科 生 毕 业 论 文(设 计)

题 目:数据加密技术的研究综述(模板)

学习中心: 层 次: 专科起点本科 专 业: 网络工程 年 级: 2009年秋季 学 号: 20110391CCXX 学 生: XXXX 指导教师: XXX 完成日期: 2013年 03 月 18 日

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

内容摘要

随着计算机网络技术的飞速发展,数据加密技术将成为信息网络安全技术中的核心技术,本文介绍了网络与信息安全技术体系结构,对目前信息加密技术进行了分析,阐述了各类加密算法的优缺点,同时对加密技术的发展趋势进行了描述从最初的保密通信发展到目前的网络信息加密。数据加密技术是指将一个信息经过加密钥匙及加密函数转换,变成无意义的密文,而接收方则将此密文经过解密函数、解密钥匙还原成明文。在竞争激烈的信息时代,客观上需要一种强有力的安全措施来保护机密数据不被窃取或篡改,因此数据加密技术就应运而生。

关键词:信息安全 ;数据加密;加密钥匙;解密钥匙;加密算法

I

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

目 录

内容摘要··························································································································· I 引 言····························································································································· 1 1 概述····························································································································· 2

1.1 背景·················································································································· 2 1.2 本文的主要内容及组织结构·········································································· 3 2 数据加密和加密系统································································································· 4

2.1 数据加密技术原理·························································································· 4 2.2 数据加密技术的分类及其应用······································································ 4 2.3 加密系统体系·································································································· 5

2.3.1 加密系统的分类··················································································· 5 2.3.2 加密体制存在的问题··········································································· 6 2.4 对称加密、非对称加密和数字签名······························································ 7 3 DES加密标准·············································································································· 9

3.1 DES介绍和DES算法框架··············································································· 9 3.2 DES实例分析··································································································· 9 3.3 DES的安全性和应用误区············································································· 12 3.4 DES的拓展····································································································· 12

3.4.1 3DES····································································································· 12 3.4.2 AES算法······························································································ 13

4 公开加密算法RSA···································································································· 14

4.1 RSA的简介····································································································· 14 4.2 RSA算法的结构····························································································· 14 4.3 RSA算法的案例····························································································· 14 4.4 RSA探索········································································································· 22 5 其他加密技术··········································································································· 25

5.1 MD5·················································································································· 25 5.2 可变长密钥块Blowfish加密技术······························································ 26 5.3 椭圆曲线密码体制························································································ 27

II

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

5.4 伪随机数加密技术························································································ 28 6 结论··························································································································· 32 参考文献························································································································· 33 附录一 伪随机数加密法的加密和解密程序······························································· 33

III

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

引 言

随着网络技术的发展,网络安全也就成为当今网络社会的焦点中的焦点,几乎没有人不在谈论网络上的安全问题,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊。病毒、黑客的猖獗使身处今日网络社会的人们感觉到谈网色变,无所适从。

用户必需清楚地认识到,这一切一切的安全问题不可一下全部找到解决方案,况且有的是根本无法找到彻底的解决方案,如病毒程序,因为任何反病毒程序都只能在新病毒发现之后才能开发出来,目前还没有哪能一家反病毒软件开发商敢承诺他们的软件能查杀所有已知的和未知的病毒,所以用户不能有等网络安全了再上网的念头,因为或许网络不能有这么一日,就象“矛”与“盾”,网络与病毒、黑客永远是一对共存体。

现代的电脑加密技术就是适应了网络安全的需要而应运产生的,它为用户进行一般的电子商务活动提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。其实加密技术也不是什么新生事物,只不过应用在当今电子商务、电脑网络中还是近几年的历史。

加密作为保障数据安全的一种方式,它不是现在才有的,它产生的历史相当久远,它是起源于要追溯于公元前2000年(几个世纪了),虽然它不是现在所讲的加密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就诞生了。当时埃及人是最先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。

近期加密技术主要应用于军事领域,如美国独立战争、美国内战和两次世界大战。最广为人知的编码机器是German Enigma机,在第二次世界大战中德国人利用它创建了加密信息。此后,由于Alan Turing和Ultra计划以及其他人的努力,终于对德国人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如利用ROSA算法产生的私钥和公钥就是在这个基础上产生的。

本文主介绍究各种加密算法以及各类加密算法的优缺点,以及各类加密技术在军事、科学等多方面的应用。

1

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

1 概述

1.1 背景

当今网络社会选择加密已是我们必然选择,一方面是因为在互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输。而且这种不安全性是互联网存在基础——TCP/IP协议所固有的,包括一些基于TCP/IP的服务;另一方面,互联网给众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小企业 。为了解决这一对矛盾,选择数据加密以及基于加密技术的数字签名已成为必然选择。

随着信息技术的发展与应用,信息安全的内涵在不断的延伸,从最初的信息保密性发展到信息的完整性、可用性、可控性和不可否认性,进而又发展为\攻(攻击)、防(防范)、测(检测)、控(控制)、管(管理)、评(评估)\等多方面的基础理论和实施技术。

就理论研究而言,一些关键的基础理论需要保密,因为从基础理论研究到实际应用的距离很短。现代信息系统中的信息安全其核心问题是密码理论及其应用,其基础是可信信息系统的构作与评估。总的来说,目前在信息安全领域人们所关注的焦点主要有以下几方面: 1) 密码理论与技术; 2) 安全协议理论与技术; 3) 安全体系结构理论与技术; 4) 信息对抗理论与技术; 5) 网络安全与安全产品。

自从1976年公钥密码的思想提出以来,国际上已经提出了许多种公钥密码体制,但比较流行的主要有两类:一类是基于大整数因子分解问题的,其中最典型的代表是RSA;另一类是基于离散对数问题的,比如ElGamal公钥密码和影响比较大的椭圆曲线公钥密码。由于分解大整数的能力日益增强,所以对RSA的安全带来了一定的威胁。目前768比特模长的RSA已不安全。一般建议使用1024比特模长,预计要保证20年的安全就要选择1280比特的模长,增大模长带来了实现上的难度。而基于离散对数问题的公钥密码在目前技术下512比特模长就能够保证其安全性。特别是椭圆曲线上的离散对数的计算要比有限域上的离散对数的计算更困难,目前技术下只需要160比特模长即可,适合于智能卡的实现,因而受到国内外学者的广泛关注。

公钥密码主要用于数字签名和密钥分配。当然,数字签名和密钥分配都有自

2

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

己的研究体系,形成了各自的理论框架。目前数字签名的研究内容非常丰富,包括普通签名和特殊签名。特殊签名有盲签名,代理签名,群签名,不可否认签名,公平盲签名,门限签名,具有消息恢复功能的签名等,它与具体应用环境密切相关。显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS),部分州已制定了数字签名法。法国是第一个制定数字签名法的国家,其他国家也正在实施之中。

在密钥管理方面,国际上也做了很多工作,比如1993年美国提出的密钥托管理论和技术、国际标准化组织制定的X.509标准(已经发展到第3版本)以及麻省里工学院开发的Kerboros协议(已经发展到第5版本)等,这些工作影响很大。密钥管理中还有一种很重要的技术就是秘密共享技术,它是一种分割秘密的技术,目的是阻止秘密过于集中,自从1979年Shamir提出这种思想以来,秘密共享理论和技术达到了空前的发展和应用,特别是其应用至今人们仍十分关注。我国学者在这些方面也做了一些跟踪研究,发表了很多论文,按照X.509标准实现了一些CA。但没有听说过哪个部门有制定数字签名法的意向。

1.2 本文的主要内容及组织结构

本文研究的内容为几种数据加密技术的原理及应用。 第一章,主要是介绍数据加密技术的背景。

第二章,主要是介绍数据加密技术的原理、数据加密技术分类体系及各种加密技术的优缺点。

第三章,主要是介绍DES加密标准算法及DES标准算法案例。

第四章,主要是介绍RSA加密算法标准、结构以及RSA加密算法案例和探索。

第五章,主要是介绍其他几种加密技术的原理及应用。

3

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

2 数据加密和加密系统

本部分主要介绍数据加密技术的基本原理,并介绍数据加密技术的分类,以及它们分别应用于什么场合,另外介绍一下加密系统的体系结构和原理,具体介绍主要的加密技术如对称加密、非对称加密以及数字签名等。

2.1 数据加密技术原理

数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径达到保护数据不被人非法窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。 当信息发送者需要发送信息时,首先生成一个对称密钥,用该对称密钥加密要发送的报文;信息发送者用信息接收者的公钥加密上述对称密钥;信息发送者将第一步和第二步的结果结合在一起传给信息接收者,称为数字信封;信息接收者使用自己的私钥解密被加密的对称密钥,再用此对称密钥解密被发送方加密的密文,得到真正的原文[1]。

2.2 数据加密技术的分类及其应用

加密技术通常分为两大类:“对称式”和“非对称式”。

对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。

非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。

SSL加密技术

SSL3.0 用一种电子证书(electric certificate)来实行身份进行验证后,

双方就可以用保密密钥进行安全的会话了。它同时使用“对称”和“非对称”加密方法,在客户与电子商务的服务器进行沟通的过程中,客户会产生一个

4

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

Session Key,然后客户用服务器端的公钥将Session Key 进行加密,再传给服务器端,在双方都知道Session Key 后,传输的数据都是以Session Key 进行加密与解密的,但服务器端发给用户的公钥必需先向有关发证机关申请,以得到公证。

VPN加密

将具有加密/解密功能的路由器使人们通过互联网连接专用局域网,这就是

通常所说的虚拟专用网(VPN)。当数据离开发送者所在的局域网时,该数据首先被用户端连接到互联网上的路由器进行硬件加密,数据在互联网上是以加密的形式传送的,当达到目的LAN 的路由器时,该路由器就会对数据进行解密,这样目的LAN 中的用户就可以看到真正的信息了[2]。

数据加密在银行系统中的应用

数据加密就是按照确定的密码算法把敏感的明文数据变换成难以识别的密文数据,通过使用不同的密钥,可用同一加密算法把同一明文加密成不同的密文。当需要时,可使用密钥把密文数据还原成明文数据,称为解密。这样就可以实现数据的保密性。众所周知,各种相关 网络 安全的黑客和病毒都是依赖网络平台进行的,而如果在网络平台上就能切断黑客和病毒的传播途径,那么就能更好地保证安全。众多银行如农业银行、建设银行、工商银行等都采取了数据加密技术与网络交换设备联动。即是指交换机或防火墙在运行的过程中,将各种数据流的信息上报给安全设备,数字加密系统可根据上报信息和数据流内容进行检测,在发现网络安全事件的时候,进行有针对性的动作,并将这些对安全事件反应的动作发送到交换机或防火墙上,由交换机或防火墙来实现精确端口的关闭和断开,这样就可以使数据库得到及时充分有效的保护。由于金融系统 “网上银行”的兴起,银行系统的安全问题显得越来越重要,安全隐患已成为迫在眉睫的首要问题。为了解决银行的安全隐患,因此各种数据加密在银行系统中起着越来越重要的作用。

2.3加密系统体系

2.3.1加密系统的分类

对称加密算法

对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密

5

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。应用于:电子商务。

不对称加密算法

不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。主要应用于:VPN系统。

不可逆加密算法

不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。显然,在这类加密过程中,加密是自己,解密还得是自己,而所谓解密,实际上就是重新加一次密,所应用的“密码”也就是输入的明文。不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用, 广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。 2.3.2 加密体制存在的问题

对称加密算法

不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发

6

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES、IDEA和AES。

不对称加密算法

不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。

不可逆加密算法

不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统

上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用,如广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。在计算机网络中应用较多不可逆加密算法的有RSA公司发明的MD5算法和由美国国家标准局建议的不可逆加密标准SHS(Secure Hash Standard:安全杂乱信息标准)等。

2.4 对称加密、非对称加密和数字签名

对称加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。

非对称加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥都在数学上相关联;用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以提供给任何人;公钥用于对要发送到私钥持有者的数据进行加密。两个密钥对于通信会话都是唯一的。

7

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

数字签名(Digital Signature)是公开密钥加密技术的一种应用, 是指用发送方的私有密钥加密报文摘要, 然后将其与原始的信息附加在一起, 合称为数字签名。其使用方式是:报文的发送方从报文文本中生成一个128位或160位的单向散列值(或报文摘要),并用自己的私有的密钥对这个散列值进行加密,形成发送方的数字签名;然后将这个数字签名作为报文的附件和报文一起发送给报文的接收方;报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要),接着再用发送方的公开密钥对报文附加的数字签名进行解密;如果这两个散列值相同,那么接收方就能确认数字签名是发送方的。通过数字签名能够实现对原始报文的的鉴别和验证,保证报文的完整性、权威性和发送者对报文的不可抵赖性。数字签名机制提供了一种鉴别方法,普遍用于银行、电子商务等, 以解决伪造、抵赖、冒充、篡改等问题。

8

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

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;

9

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

using System.IO; using System.Text;

public class EncryptStringDES {

public static void Main(String[] args) { if (args.Length < 1) {

Console.WriteLine(\ encrypt>\ 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);

10

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

// 加密完毕,将结果输出到控制台 sse.Write(inputByteArray); sse.CloseStream(); // 获取加密数据

byte[] encryptedData = cms.Data; // 输出加密后结果

Console.WriteLine(\加密结果:\

for (int i = 0; i < encryptedData.Length; i++) { Console.Write(\ }

Console.WriteLine();

//上面演示了如何进行加密,下面演示如何进行解密

SymmetricStreamDecryptor ssd = des.CreateDecryptor(); cms = new CryptoMemoryStream(); ssd.SetSink(cms);

ssd.Write(encryptedData); ssd.CloseStream();

byte[] decryptedData = cms.Data;

char[] decryptedCharArray = utf8Encoding.GetChars(decryptedData); Console.WriteLine(\解密后数据:\ Console.Write(decryptedCharArray); Console.WriteLine(); } } 编译:

D:\\csharp>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:\\csharp>des_demo.exe 使用C#编写DES加密程序的framework 加密结果:

11

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

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.2×1016)个可能的密钥。如果每秒能检测一百万个的话,需要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 3DES

12

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

3DES(即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、虚拟专用网、同步光网络、远程访问服务器,高速路由器、移动通信、卫星通信、电子金融业务等。

13

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

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算法的加密方法)使用公钥来加密一个对称加密算法的密钥,然后再利用一个快速的对称加密算法来加密数据。

14

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

(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=p×q;

③欧拉函数φ(n)=(p-1)(q-1)(保密);

④选取与φ(n)互素的正整数e,即满足gcd(φ(n),e)=1和0

由RSA算法原理可知,RSA算法的核心是求模取余运算,其安全性是建立在大合数因子分解困难的基础之上的。

(2)模运算的实现

RSA算法的核心操作也是最耗时的操作是模运算,所以开发一种快速指数和取模运算是解决运算速度的关键。通常的模运算都是利用加减法来实现的,因为加减法指令的执行速度快。在进行模运算时,一般先将指数e(长度为kbit)改写成二进制数组的形式e,即

其中:ei∈{0,1},i=0,1,Λ,k-1。

这样,在计算me(mod n)时,先做一次平方运算,然后根据ei的值,再做一次乘法运算,以此来简化模运算的复杂性。

由于实际中的e值非常大,为了提高运算速度,可以将e进行分组后运算。设对e以四位一组(十六进制)的形式计算me(mod n),那么:

其中:ei∈{0,1,2,?,15},t=k/4; ②求出m2,m3,?,m15(mod n); ③设置变量c:=1;

④对于i=t-1,t-2,?,1,0重复计算: c:=c2(mod n)(平方);

15

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

c:=c2(mod n)(四次方); c:=c2(mod n)(八次方); c:=c2(mod n)(十六次方); e.若ei≠0,则c:=c×mei(mod n)。 ⑤所得c即为所求。

4.3 RSA算法的案例

例如大数18446744073709551615,等于 ffffffff ffffffff,就相当于十

进制的99:有两位,每位都是ffffffff。而18446744073709551616 等于00000001 0000000000000000,就相当于十进制的100:有三位,第一位是1 ,其它两位是0,如此等等。

在实际应用中,“数字”数组的排列顺序采用低位在前高位在后的方式,这样,大数A 就可以方便地用数学表达式来表示其值:A=Sum[i=0 to

n](A[i]*0x100000000**i)(其中Sum 表示求和,A[i]表示用以记录A 的数组的第i 个元素,**表示乘方)。

任何整数运算最终都能分解成数字与数字之间的运算,在0x100000000 进制下其“数字”最大达到0xffffffff,其数字与数字之间的运算,结果也必然超出了目前32系统的字长。在VC++中,存在一个__int64 类型可以处理64位的整数,所以不用担心这一问题,而在其它编译系统中如果不存在64位整形,就需要采用更小的进制方式来存储大数,例如WORD类型(16位)可以用来表示0x10000 进制,但效率更高的办法还是采用32位的DWORD 类型,只不过将0x100000000 进制改成0x40000000进制,这样两个数字进行四则运算的最大结果为 0x3fffffff * 0x3fffffff,小于0xffffffff,只是不能简单地用高位低位来将运算结果拆分成两个“数字”。

加法 设:

A=Sum[i=0 to p](A[i]*0x100000000**i) B=Sum[i=0 to q](B[i]*0x100000000**i),p>=q C=Sum[i=0 to n](C[i]*0x100000000**i)=A+B 显然:

C[i]不是简单地等于A[i]+B[i],因为如果C[i]>0xffffffff就需要进位,当然计算C[i-1]时也可能产生了进位,所以计算C[i]时还要加上上次的进位值。

16

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

输出: str= WHILE(X>0)

str=(char)(X-48)+str RETURN str [5] 4.4 RSA探索

RSA算法中的加密解密操作,都是大整数的算术运算,在硬件实现上需要长的(千位以上的)运算结构。目前,在集成电路中进行大整数算术运算的结构设计,需要做全局数据广播,不仅扇出大、延时长,而且需要的连线资源很大。全局信号的广播问题,在现有关于RSA硬件实现的文献资料中很少提及。实际上,对于任何在深亚微米工艺条件下实现的集成电路,全局信号的广播都是需要认真解决的问题。对于RSA模乘幂运算器这样一个数据宽度特别大的结构,这个问题尤其重要,直接影响到设计的性能。 在基于冗余阵列的设计中,针对现有结构中存在的问题,我们对蒙哥马利算法进行优化,并采用将信号广播流水化的方法,解决长整数运算结构中关键信号广播带来的负载问题。我们采用在信号广播中插入中间寄存器的方法,设计者在RTL的层次控制扇出节点的数量,从而减少扇出,降低关键路径的延迟,提高时钟频率。相对于未优化的结构,新设计的时钟频率提高100~154%,模乘幂运算速度提高99~153%,而面积的增加仅有5~28%。 在基于脉动阵列的设计中,尽管脉动阵列的结构可以解决进位链的传递问题,但是,仍然有一部分全局信号需要从控制部件广播到乘法器的特定位置。我们在新的RSA模乘幂运算器的设计中提出一种被称作“分布式模块簇”(DMC:DistributedModuleCluster)的结构,以提高长整数运算结构的可扩展性,减少全局信号的扇出。该策略使得除了时钟之外的其它信号的传播都限定在一个模块内部或者相邻两个模块之间,为解决长整数的运算结构在深亚微米工艺实现时所遇到的全局信号广播问题提供了可行的解决方案。针对基于脉动阵列结构的模乘法器,我们提出一种冗余策略用以完成模乘法器的动态分割,但是关键路径的延迟不受影响。这种冗余策略可以支持中国剩余定理的应用。基于DMC的设计与基于冗余结构的优化设计相比,虽然在运算速度方面各有优势,但是DMC结构不象冗余结构一样需要针对不同的结构长度进行细致的调整,因而DMC结构具有更好的可扩展性。与基于冗余结构的优化设计相比,基于DMC结构的设计主频提高43~65%,公钥运算速度降低15~26%,而由于在硬件上直接支持CRT,私钥运

22

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

算速度提高52~76%。 在针对DMC结构进行的设计空间的探索中,我们详细探讨了采用部分并行的脉动阵列结构实现蒙哥马利算法的问题,实现了一系列不同长度和不同结构的运算单元,从中选择具有比较高的运算性能和性价比的结构。实验结果表明,如果以关键路径延迟×单元面积作为时间-面积代价指标,那么全部串行的脉动阵列结构,即每个运算单元处理一位数据的设计,与同类结构相比具有比较高的运算性能和性价比。 在基于脉动阵列的设计中,相邻的运算单元存在数据依赖关系,因而每隔一个周期就会有一个周期的空闲。从算法的层次上看,这种数据依赖关系是无法消除的。但是,我们的实验发现,在部分并行的脉动阵列中,如果不采用交替执行的结构,而是两个模乘法分别采用一套运算模块并发执行,并且适当调整一些关键信号的时序,可以消除因为数据依赖关系而引起的空隙。通过对逻辑综合和物理实现的结果进行分析发现,相对于基于交叉执

DMC

CE-DMC(ConcurrentExecutionDistributedModuleCluster)主频降低10~29%,但是完成RSA模乘幂运算需要的时钟周期数仅仅是前者的50%,所以运算速度提高42~98%。 另外,在RSA模乘幂运算的设计中,控制单元中有若干个1000位以上的寄存器。对长寄存器的快速存取,控制电路的扇出很大,从而使得时钟周期比较长。我们提出并采用“两阶段访问”(TSA:Two-StageAccess)方法和在信号广播中插入中间寄存器的方法,以减少扇出,降低关键路径的延迟。RSA加密算法是一种非对称加密算法。在公钥加密标准和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。

对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。但在分布式计算技术和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战。

23

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

24

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

5 其他加密技术

本章主要介绍其他的一些加密技术及其应用,例如数据指印MD5码、椭圆曲线密码体制ECC、伪随机数加密技术、可变长密钥块Blowfish加密技术等。

5.1 MD5

对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

在MD5算法中,首先需要对信息进行填充,使其位长对512求余的结果等于448。因此,信息的位长(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个非负整数,N可以是零。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息的位长=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。

MD5中有四个32位被称作链接变量(Chaining Variable)的整数参数,他们分别为:A=0x67452301,B=0xefcdab89,C=0x98badcfe,D=0x10325476。 当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。

将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。

主循环有四轮(MD4只有三轮),每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向左环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。

典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:

25

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461 这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程:

大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。

常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。

5.2 可变长密钥块Blowfish加密技术

随着近些年互联网技术的广泛应用,如何在开放的传输环境下保护私人信息、如何在公共设施上保护个人隐私成了人们关心的问题。近些年科学家利用DES、RSA加密法发展起来了网上数字签证系统、WINDOWS NT和UNIX的密码系统。DES加密法还被用于文件加密系统。但这两种加密系统都或多或少的存在缺陷。DES加密法的速度很慢且64位的DES已不再安全。RSA加密法则更慢且大素数很难找。

BLOWFISH加密法是近些年(1994)发展起来的。它是可变长密钥块加密系统,适用于不经常更换密码的系统。在奔腾级和PowerPC等32位微机上其加密速度大大高于DES法。另外其安全性很高到现在还没有被破解。 算法描述:

BLOWFISH-64(以下简记为BLOWFISH)是可变长密钥64位块加密系统。算法可分为两部分(密钥扩展部分和数据加(解)密部分):

密钥扩展部分把密钥(最多位448位)转换为一些字密钥序列(共4168位)。

数据加(解)密部分包括16轮位操作,每一轮由密钥变换和数据变换组成。所有的操作都为32位与运算。每轮唯一的附加操作是四次数据查询。 (1)字密钥

26

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

BLOWFISH加密法要使用很多字密钥,这些字密钥都在数据加(解)密前被计算出来。

1、P数组由18个32位字密钥组成: P1,P2,......,P18

2、还有4个具有256个入口的32位S盒: S(1,0),S(1,1), ......,S(1,255) S(2,0),S(2,1), ......,S(2,255) S(3,0),S(3,1), ......,S(3,255) S(4,0),S(4,1), ......,S(4,255) 具体计算这些子密钥的方法将在稍候作详细介绍。 (2)加密

BLOWFISH算法由16轮变换组成(设x为64位输入数据): 1、把x平分为部分:xL,xR(32位) 2、For i=1 to 16

xL=xL XOR Pi xR=F(xL) XOR xR 交换xL,xR 3、交换xL,xR(恢复最后一轮交换) 4、xR=xR XOR P17 5、xL=xL XOR P18 6、和并xL,xR 函数F():

平分xL为4个8位子块:a、b、c、d

F(xL)={[S(1,a)+S(2,b) mod 232] XOR S(3,c)} + S(4,d) mod 232 (3)解密

解密与加密类似,但P1,P2,......,P18顺序相反。

补充:BLOWFISH算法为了提高速度,子密钥需提前计算并存于缓冲区中。 (4)子密钥生成具体步骤如下:

1、用固定字符串顺序初始化P数组和S盒,字符串由16进制派值组成。例如:

P1=0x243f6a88

27

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

P2=0x85a308d3 P3=0x13198a2e P4=0x03707344

2、用P1和密钥的前32位进行与运算,P2和后32位进行与运算,依此类推直到

密钥的所有位(可能到P14),重复循环直到P数组与密钥进行与操作。(有

重复字符的短密钥将有相同的结果,例如:A,AA,AAA等等)。 3、当BLOWFISH算法加密全零字符串时,用第1,2步所描述子钥。 4、用第三步的输出代替P1,P2。

5、用修改后的BLOWFISH子钥加密第三步的输出。 6、用第五步输出替换P3,P4。

7、继续操作,用动态改变的BLOWFISH算法按顺序替换所有的P数组和S盒。 总共需要521次重复计算产生所有子钥。把子钥存在缓冲区中要比在加密过程中重复计算好得多(这也是BLOWFISH比DES快的关键所在)[6]。

5.3 椭圆曲线密码体制

椭圆曲线密码体制来源于对椭圆曲线的研究,所谓椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程: y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)所确定的平面曲线。其中系数ai(I=1,2,?,6)定义在某个域上,可以是有理数域、实数域、复数域,还可以是有限域GF(pr),椭圆曲线密码体制中用到的椭圆曲线都是定义在有限域上的。

椭圆曲线上所有的点外加一个叫做无穷远点的特殊点构成的集合连同一个定义的加法运算构成一个Abel群。在等式 mP=P+P+?+P=Q (2) 中,已知m和点P求点Q比较容易,反之已知点Q和点P求m却是相当困难的,这个问题称为椭圆曲线上点群的离散对数问题。椭圆曲线密码体制正是利用这个困难问题设计而来。椭圆曲线应用到密码学上最早是由Neal Koblitz 和Victor Miller在1985年分别独立提出的。

椭圆曲线密码体制是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。解椭圆曲线上的离散对数问题的最好算法是Pollard rho方法,其时间复杂度为,是完全指数阶的。其中n为等式(2)中m的二进制表示的位数。当n=234, 约为2117,需要1.6x1023 MIPS 年的时间。而我们熟知的RSA所利用的

28

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

是大整数分解的困难问题,目前对于一般情况下的因数分解的最好算法的时间复杂度是子指数阶的,当n=2048时,需要2x1020MIPS年的时间。也就是说当RSA的密钥使用2048位时,ECC的密钥使用234位所获得的安全强度还高出许多。它们之间的密钥长度却相差达9倍,当ECC的密钥更大时它们之间差距将更大。更ECC密钥短的优点是非常明显的,随加密强度的提高,密钥长度变化不大。

5.4 伪随机数加密技术

伪随机数加密技术其实就是通过伪随机数序列使文件的字节值发生变化而产生密文.由于相同的初值得到相同的随机数序列,因此,可以采用同样的伪随机数序列来对密文进行解密将其恢复为明文.

他的加密算法则为:当取定一个初值时,在加密过程中将产生伪随机数序列r1,r2?,rn.

对密文C1有(其中所得a1,a2,?,an即为原明文): ai=Ci-n,当Ci≥r1时 ai=(Ci+256)-n,当Ci

伪随机数加密法的加密和解密程序见附录一。

29

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

6 结论

随着网络系统的发展,网络系统数据网络的迅速发展,各个工作流程离不开计算机和网络,业务数据的安全性就得到很大的重视,各种数据的在网络中的传递,及共享,保证这些数据加密的安全性是很重要。本文通过介绍加密技术的发展状况,并具体阐述了DES、RSA等加密算法概念、优缺点,以及各种在网络层中传输的数据加上各种加密,具体体现在以下方面的应用:

众所周知,数据安全问题涉及 企业 的切身重大利益, 随着网络系统的发展,网络系统数据网络的迅速发展,各个工作流程离不开计算机和网络,业务数据的安全性就得到很大的重视,各种数据的在网络中的传递,及共享,保证这些数据加密的安全性是很重要。尤其是银行系统,加强数据安全更是迫在眉睫。因此, 发展 数据安全技术已成为企业当务之急。而数据安全不仅仅是数据加密技术和加密算法,它还涉及其他很多方面的技术与知识,如:黑客技术、防火墙技术、入侵检测技术、病毒防护技术、信息隐藏技术等。所以,这就要求一个完善的数据加密安全保障系统,不仅应该善于根据具体需求对安全技术进行有效的取舍,而且能够对银行系统中的关键业务数据进行充分的保护。于此同时还应该提高企业的网络安全意识,加大整体防范网络入侵和攻击的能力,并在此基础上形成一支高素质的网络安全管理专业队伍,这样才能从根本上解决企业面临的威胁和捆扰。

由于在现实生活中,我们要确保一些敏感的数据只能被有相应权限的人看到,要确保信息在传输的过程中不会被篡改,截取,这就需要很多的安全系统大量的应用于政府、大公司以及个人系统。数据加密是肯定可以被破解的,但我们所想要的是一个特定时期的安全,也就是说,密文的破解应该是足够的困难,在现实上是不可能的,尤其是短时间内。

30

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

参考文献

[1] 郭丽.关于网络安全之数据加密技术.安徽电子信息职业技术学院学报 2008,(3)6:11-13. [2] 谢冬青,谢志坚, 李超 ,冷健. 关于一种算术编码数据加密方案的密码分析.通信学报 2001,6(4):18-22.

[3] 葛淑杰,乔付,任建民;计算机网络通信安全的数据加密算法分析[J];黑龙江科技学院学报;2001,6(3):24-27.

[4]嬴政天下.加密算法之RSA算法,http://soft.winzheng.com/infoView/Article_296.htm,2003.

[5]蔡立军.计算机网络安全技术[M].北京:中国水利电力出版社 2002,3:68-71.

[6] Douglas R.Stinson.《密码学原理与实践》.北京:电子工业出版社,2003,2:131-132.

31

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

附录一:伪随机数加密法的加密和解密程序 加密C语言代码如下: define KEY 10 #define SIZE 160 #define NULL 0 #include #incude main() ( FILE *fp

int k,j,i,count,rj,t;

char fbuf[SIZE],filename[10],ch; j=KEY;

print(\scanf(\

if((fp=fopen(filename,\(

printf(\exit(0); )

for (k=0;(ch=fgetc(fp))!=EOF;k++) {

fbuk[k]=ch; putchar(fbuf[k]); }

putchar('\\n'); fclose(fp); count=k;

for(i=0;i

rj=rand(j);

32

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

sbuf=fbuf+fj)%6; j++; }

if((fp=fopen(filename,\{

print(\exit(0); }

for (i=0;i

fputc(sbuf,fp); putchar(subf); }

putchar('\\n'); fclose(fp);

}解密C语言代码如下:复制内容到剪贴板代码: #define KEY 10 #define SIZE 160 #define NULL 0 #include #incude main() {

FILE *fp;

int k,j,i,count,rj;

char fbuf[SIZE],sbuf[SIZE],ch,filename[10]; j=KEY;

printf (\scanf(\

if((fp=fopen(filename,\{

33

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

printf(\exit(0); }

for(k=0;(ch=fgetc(fp))!=EOF;k++) {

fbuf[k]=ch; putchar(fbuf[k]); }

putchar('\\n'); fclose(sp); count=k;

for(i=0;i

rj=rand(j); if (fuf

sbuf=fbuf-rj; j++; }

if((fp=fopen(filename,\{

printf(\exit(0); }

for (i=0;i

}设置可执行文件AAA.EXE,说明文件的内容为:

34

深圳学历教育www.szstudy.com.cn深圳成人高考 数据加密技术的研究综述

garden plants need different amounts of sunlight cucumbers,for example,are very hard to please 加密/解密覆盖操作如下:

加密操作:复制内容到剪贴板代码: C: \\>AAA 键入说明文件名 显示原文本内容

显示加密后的内容(乱码)解密操作:复制内容到剪贴板代码: C: \\>AAA

显示input unlocked filename; 说明文件名

显示加密后的内容(乱码) 显示解密后的文件内容

35

本文来源:https://www.bwwdw.com/article/pwig.html

Top