网络数据通信的加密传输设计

上传人:痛*** 文档编号:60323291 上传时间:2022-03-07 格式:DOCX 页数:53 大小:1.14MB
收藏 版权申诉 举报 下载
网络数据通信的加密传输设计_第1页
第1页 / 共53页
网络数据通信的加密传输设计_第2页
第2页 / 共53页
网络数据通信的加密传输设计_第3页
第3页 / 共53页
资源描述:

《网络数据通信的加密传输设计》由会员分享,可在线阅读,更多相关《网络数据通信的加密传输设计(53页珍藏版)》请在装配图网上搜索。

1、目 录1 绪论11.1 研究背景及意义11.2 国内外研究的现状21.3 本论文的研究内容32 数据加密的相关概念42.1 密码学的基本概念42.1.1 密码体制的构成42.1.2 密码体制的分类42.1.3 密钥的管理62.1.4 数据加密的应用72.2 对称密钥加密算法 82.2.1 对称密钥加密算法简介82.2.2 数据加密标准(DES)82.3 非对称密钥加密算法142.3.1 非对称密钥加密算法简介142.3.2 RSA算法153 数据加密传输系统的设计183.1 系统的整体结构183.2 模块设计183.2.1 加解密模块183.2.2 文件传输模块243.3 本章小结254 数据

2、加密传输系统的实现264.1 C+语言介绍264.2 数据加密传输系统的实现274.2.1 DES加密传输系统的实现274.2.2 RSA加密传输系统的实现304.2.1 DES和RSA混合加密传输系统的实现33第 I 页 共 II 页 4.3 本章小结375 总结38附录A DES加密算法程序40附录B RSA加密算法程序43附录C 文件传输模块程序46参考文献49致 谢51第 II 页 共 II 页 1 绪论1.1 研究背景及意义随着信息技术突飞猛进的发展和计算机技术的广泛应用,计算机网络得到了长足发展和应用,比如电子商务,基于网络的产品设计、经营管理等1。同时,由于计算机网络缺乏足够的安

3、全性,网络上传输的信息随时都受到非法存取、盗听、篡改和破坏等的威胁,网络安全性问题日益突出,网络安全对策研究显得尤为重要2。对计算机和网络安全造成威胁的可分为两类:一是对网络本身的威胁,即这种威胁是针对网络设备和网络软件系统平台的;二是对网络中信息的威胁,即这种威胁是针对网络中的数据以及处理这些数据的信息系统和应用软件的。影响计算机网络安全的因素有很多,其中一个主要的因素是来自于用户在操作中的失误,如口令选择不慎,随意将自己的账户借给他人或与他人共享等,这些都会对网络信息安全造成威胁3。然而,计算机网络安全所面临的最大威胁则来自于人为的恶意攻击。这种人为攻击分两种,一是主动攻击,即以各种方式对

4、系统和数据的有效性和完整性进行有选择性的破坏。二是被动攻击,即在不影响网络和系统正常运行的情况下,对重要的机密信息进行截获和窃取。软件本身存在的缺陷和漏洞以及由于安全配置不当所造成的安全漏洞(如防火墙软件配置的不正确),这些也是威胁网络安全的因素之一4。另外,还有一个威胁网络安全的因素就是计算机病毒。计算机病毒由于其特点具有隐蔽性、潜伏性、传染性和破坏性,因而对计算机网络安全所造成的破坏也十分巨大。网络安全是计算机科学的新分支,也是信息产业的新领域。它的产生源于网络通信的保密需要,它的发展得益于人们为应对侵犯网络通信连网计算机网络的各种攻击所做出的锲而不舍的努力。随着互联网应用的深入和普及,如

5、何不断地采取最有效的安全措施保护网络通信内容不被窃取、篡改和伪造以及保护连网计算机网络免受侵扰已变得至关重要。在计算机网络日益扩大和普及的今天,计算机对安全的要求更高、涉及面更广5。其内容主要包括:(1) 实体安全。实体安全是指对场地、环境、设施、设备、载体、人员采取的各种安全对策和措施;(2) 数据传输网络安全。是指信息在数据传输网络中传输时,如何保证其安全性的问题,避免在传输途中遭受非法窃取、篡改等;(3) 软件安全。它涉及信息在存储和处理状态下的保护问题;(4) 信息安全。即数据安全,是指系统有能力抵抗外来非法入侵者对信息的恶意访问、泄露、修改和破坏等,即:机密性、完整性、可用性。 所以

6、,如何实现计算机网络中数据传输安全,近年来一直是人们研究的课题之一。迄今为止,对网络和数据传输安全的最重要的自动工具是加密。数据在网络上传输时,其安全威胁主要来自于非法窃听,因此可将数据经加密算法加密成密文,然后在将密文发送到网络上进行传输,这是一种十分有效的安全保密手段。1.2 国内外研究的现状 随着涉密信息系统的不断扩展,信息安全保密技术得到广泛应用。信息安全保密技术主要包括监控、扫描、检测、加密、认证、防攻击、防病毒以及审计等几个方面,其中数据加密技术是网络安全的核心技术,已经渗透到大部分涉密信息系统安全产品之中,并正向芯片化、量子化方向发展6。 在我国,信息网络安全研究历经了通信保密、

7、数据保护两个阶段,正在进入网络信息安全研究阶段,现已开发研制出防火墙、安全路由器、安全网关、黑客入侵检测、系统脆弱性扫描软件等。作为信息安全关键技术的密码学,近年来空前活跃,1976 年美国学者提出的公开密钥密码体制,克服了网络信息系统密钥管理的困难,同时解决了数字签名问题,它是当前研究的热点。而电子商务的安全性已是当前人们普遍关注的焦点,目前正处于研究和发展阶段,量子密码、DNA 密码、混沌理论等密码新技术正处于探索之中。解决网络信息安全问题的主要途径是利用密码技术和网络访问控制技术。密码技术用于隐蔽传输信息、认证用户身份等。网络访问控制技术用于对系统进行安全保护,抵抗各种外来攻击。 一般来

8、说,数据的操作包括存储、传输、处理3个过程,数据在网络上传输时可能会遇到的攻击手段有:非法用户冒充合法用户对系统进行非法访问;非法窃听敏感数据;随意篡改窃听到的数据,使接收方接收到的数据失真甚至完全破坏等7。 数据加密技术是对信息进行重新编码,从而达到隐藏信息内容,非法用户无法获得信息真实内容的一种技术手段。网络中的数据加密则是通过对网络中传输的信息进行数据加密,满足网络安全中数据加密、数据完整性等要求,而基于数据加密技术的数字签名技术则可满足审计追踪等安全要求。可见,数据加密技术是实现网络安全的关键技术。 对数据加密系统的研究,除了加解密算法本身进行深入研究外,还包括密钥的生成、分发和密钥本

9、身的安全性。加密算法的安全性一方面依赖于算法内部的数学结构的严密性,另一方面也依赖于密钥的保密性8。密钥在加密算法中有着举足轻重的地位,密钥一旦被泄露,则意味着任何人都能在这个加密系统中加解密信息,加密算法也形同虚设。因此用什么样的数据作为密钥、如何将密钥分发给数据传输双方及如何保存密钥都是十分重要的,所以建立一个安全的数据传输系统是网络安全领域研究的重点之一9。1.3 本论文的研究内容本次毕业设计是对网络安全问题的当前状况进行研究,主要研究数据加密传输的应用设计与实现。通过对对称密钥加密算法和非对称密钥加密算法的分析和研究,并对对称密钥加密算法和非对称密钥加密算法的代表DES算法和RSA算法

10、的比较,确定并且实现了基本的文件加密解密的处理流程,能提供对文件的安全、有效的保护。在研究数据加密算法的基础上,根据网络应用的具体情况,在VC平台上设计并实现了数据的加解密传输,软件分为发送端和接收端。发送端的功能主要为发送和加密文件,在发送之前,发送端有浏览文件的功能,该功能可以确定文件的位置;接收端可以将接收的文件进行解密,并且能够显示传输信息。该文件传输系统按钮比较少,操作起来很容易,而且使用了很成熟的加密算法,从而保证敏感数据在网络传输上的机密性和安全性。2 数据加密的相关概念2.1 密码学的基本概念2.1.1 密码体制的构成 一个密码体制可定义为,其中是明文空间(亦称信息空间),是密

11、文空间,是密钥空间,是加密映射族,是解密映射族。 一个密码体制由以下五个部分组成: 明文空间; 密文空间; 加密密钥空间; 解密密钥空间; 加密变换:; 解密变换:; 用表示明文,表示密文。加密变换又记为 ,解密变换又记为。如果,成立,则称该密码体制具有保密性;如果,成立,并且解密密钥只能被唯一的一个数据传输实体所知晓,则称该密码具有认证性。 当我们强调一个密码体制的保密功能时,称该密码体制为加密体制;强调一个密码体制的认证功能时,称该密码为签名体制;强调一个密码体制的密钥交换功能时,称该密码为密钥交换体制10。2.1.2 密码体制的分类对称密钥加密法也称为私钥加密法,加密与解密使用相同的密钥

12、,需要对加随着密码学的不断发展出现了两种不同的密码体制,他们分别是对称的密码体制和非对称的密码体制。对称的密码体制:又称单钥体制、私钥体制、传统密钥体制,它的特点是已知Ek和Dk中的任意一个,就能容易的求出另外一个,同时对Ek和Dk加以保护即可满足保密性和真实性的要求,图2.1是它的示意图。对称密码体制的优点是具有很高的保密强度,可以达到经受较高级破译力量的分析和攻击,但它的密钥必须通过安全可靠的途径传递,密钥管理成为影响系统安全的关键性因素,使它难以满足系统的开放性要求11。对称密码加密算法中最著名的是DES(Data Encryption Standard)加密算法,它是由IBM公司开发的

13、数据加密算法,它的核心是乘积变换。美国于1997年1月将其定为非机密数据的正式数据加密标准。它可有效地防止穷尽搜索攻击。还有一些其他常用的私钥加密算法,如3DES、IDEA等12。相同的密钥加密的信息明文发送者解密加密接收者明文 图2.1 对称加密算法的示意图非对称的密码体制:与对称的密码体制相对,又称双钥体制、公钥体制,它的特点是已知Ek无法容易的求出Dk,从而公开Ek不会丧失对Dk的保护。非对称密码体制的主要优点是可以适应开放性的使用环境,密钥管理问题相对简单,可以方便、安全地实现数字签名和验证,图2.2是非对称性加密算法示意图。非对称加密算法中最著名的是由美国MIT的Rivset、She

14、mir、Adleman于1977年实现的RSA算法13。加密密钥(公开)加密的信息明文发送者解密加密接收者明文加密密钥解密密钥图2.2 非对称加密算法的示意图2.1.3 密钥的管理密钥既然要求保密,这就涉及到密钥的管理问题,密钥的管理涉及到以下几个方面:(1)密钥使用的时效和次数如果用户使用同样密钥多次与其他用户交换信息,那么密钥也同其它任何密码一样存在着一定的安全性。虽然用户的私钥是不对外公开的,但是也很难保证私钥长期的保密性,很难保证长期以来不被泄漏14。如果入侵者偶然地知道了用户的密钥,那么用户曾经和其他用户交换的每一条消息都不再是保密的。另外使用一个特定密钥加密的信息越多,提供给窃听者

15、的材料也就越多,从某种意义上来讲也就越不安全了。因此,一般强调仅将一个对话密钥用于一条信息中或一次对话中,或者建立一种按时更换密钥的机制以减小密钥暴露的可能性。(2)多密钥的管理假设在某机构中有100用户,如果任意两个用户之间可以进行秘密对话,那么总共需要多少密钥呢?每个人需要知道多少密钥呢?如果任何两个用户之间通信需要不同的密钥,则总共需要4950个密钥,而且每个人应记住99个密钥。如果机构的用户更多,这种办法就显然过于平庸15。Kerberos提供了一种解决这个较好方案,它是由MIT发明的,使保密密钥的管理和分发变得十分容易,但这种方法本身还存在一定的缺点。为能在互联网上提供一个实用的解决

16、方案,Kerberos建立了一个安全的、可信任的密钥分发中心(KeyDistributionCenter,KDC),每个用户只要知道一个和KDC进行会话的密钥就可以了,而不需要知道成百上千个不同的密钥。2.1.4 数据加密的应用数据加密技术的应用是多方面的,但最为广泛的还是在电子商务和VPN上的应用。(1)在电子商务方面的应用电子商务(E-business)允许顾客和商家可以在网上进行各种商务活动,同时不必担心相应的商务信息被盗用,比如信用卡号码、商品报价等。RSA的出现,提高网上交易的安全性,从而使电子商务走向实用成为可能16。NETSCAPE公司提供了一种基于RSA的安全套接层协议SSL(

17、Secure SocketsLayer)即为数据加密技术在电子商务方面应用的一个典型案例17。SSL2.0用电子证书(Electriccertificate)来实行身份进行验证后,双方就可以用保密密钥进行安全的会话了。它同时使用“对称”和“非对称”加密方法,在客户与电子商务的服务器进行沟通的过程中,客户会产生一个SessionKey,然后客户用服务器端的公钥将SessionKey进行加密,再传给服务器端,在双方都知道SessionKey后,传输的数据都是以SessionKey进行加密与解密的,但服务器端发给用户的公钥必需先向有关发证机关中请,以得到公证。SSL协议是一个比较优秀而久经考验的网络

18、安全协议,一般情况下能够抵抗窃听、篡改、会话劫持、中间人等多种攻击手段。协议的设计模式为“契入式”,与高层应用协议和低层网络协议无关,可以方便地集成到多种网络环境中去,可根据不同的安全需求,选择协议提供得多种密码算法和密钥交换协议。SSL目前在Web和电子商务中的应用相当广泛。 (2)加密技术在VPN中的应用目前,跨地域国际化的机构越来越多。一个机构在多个城市、国家设有分支机构。每一个机构都有自己的局域网LAN(LocalAreaNetwork)。事实上,很多机构一般租用专用线路来连结这些虚拟的局域网。这种情况下,机构内部的重要文件、数据是通过广域网进行传输,因此网络的安全问题最为重要。具有加

19、密/解密功能的路由器等设备的出现,使通过广域网组成局域网成为可能,即所谓的的虚拟专用网(VirtualPrivateNetwork,VPN)18。当数据离开发送者所在的局域网时,该数据首先被用户湍连接到互联网上的路由器进行硬件加密,数据在互联网上是以加密的形式传送的,当达到目的LAN的路由器时,该路由器就会对数据进行解密,这样目的LAN中的用户就可以看到真正的信息了。而加密解密过程对于普通的非网络管理用户来说,是透明的,既普通用户无需考虑VPN及加密解密的相关问题。因此,对普通用户来说,VPN在使用过程中和一般LAN没有任何区别。2.2 对称密钥加密算法2.2.1 对称密钥加密算法简介对称密钥

20、加密法也称为私钥加密法,加密与解密使用相同的密钥,需要对加密和解密的密钥进行保密,即从一个易于得出另一个,其本质就是替换与置换密钥。对称密钥加密的安全性取决于两个因素。第一,加密算法必须足够强大,使得仅根据密文不容易破译出明文。第二,取决于密钥的安全性,换言之,我们不必为算法保密,仅需对密钥保密。但对称密钥加密法在实际应用中存在两个问题。第一,密钥协定或密钥发布。双方如何确定密钥?一个办法是发送方的某个人实际访问接收方,交出密钥;另一个办法是由信使传递写有密钥的纸张;第三个办法是通过网络向接收方发一个密钥并请求确认,但如果第三方得到这个消息,则可以解释后面的所有消息。第二,由于加密和解密使用相

21、同的密钥,因此一对通信需要一个密钥。假设A要与B和C安全通信,则与B通信要一个密钥,与C通信要一个密钥。A与B通信所用的密钥不能再A与C通信时使用,否则C可能解释A与B之间的通信消息,B可能解释A与C之间的通信消息19。由于Internet上有几千个商家向几十万个买家销售商品,如果使用这种模式,根本行不通。无论如何,由于这些缺点可以用巧妙的解决方案克服,加上对称密钥加密法还有几个优点,因此使用很广泛。2.2.2 数据加密标准(DES)(1)DES算法简介目前使用最广泛的加密方法都基于1997年被美国标准局作为第46号联邦信息处理标准而采用的数据加密标准DES。DES算法是对称密码体制的算法中最

22、著名的代表,它是由IBM公司在70年代发展起来的,并经过政府的加密标准筛选后,于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(ANSI)承认。(2)DES加密原理DES是一种分组密码体制。在DES中数据以64位分组进行加密,密钥长度为56位(另外8位可以作为奇偶检验或者完全随意设置)。加密算法经过一系列的步骤把64位的输入变换成64位的输出,解密过程中使用同样的步骤和同样的密钥。其基本思想就是采用变换的组合与迭代,将明文中的各组变为密文组。图2.3是DES算法中的主要步骤。初始置换(IP)最终置换(FP)LPTLPT明文(64位)密文(64位)16轮16轮密钥密

23、钥图2.3 DES算法中的主要步骤 (1)对文M进行初始置换初始置换只发生一次,是在第一轮之前进行的,图2.4是初始置换使用的完整置换表。58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157图2.4 初始置换表(2) DES的一轮DES的一轮包括图2.5所示的步骤。密钥变换扩展置换S盒替换P盒替换异或与交换图2.5 DES的一轮 第1步:密钥变换 最初64位密钥通过放弃每个第8位而得到56位密钥,每一轮从这个5

24、6位密钥产生不同的48位密钥,称为密钥变换。56位密钥分成两半,各为28位,循环左移一位或两位。例如,如果轮号为1、2、9、16,则只移一位,否则移两位,相应移位后选择56位中的48位。由于密钥变换要进行置换和选择56位中的48位,因此称为压缩置换。第2步:扩展置换 经过初始置换后,我们得到两个32位明文区,分别称为左明文和右明文。扩展置换将右明文从32位扩展到48位。除了从32位扩展到48位之外,这些位也进行置换,因此称为扩展置换。过程如下: (1)将32位右明文分为8块,每块各有4位。 (2)将上一步的每个4位块扩展为6位块,即每个4位块增加2位。这两位实际上是重复4位块的第一位和第四位。

25、如图2.6所示。 图2.6 右明文扩展置换过程可以看出,密钥变换将56位密钥压缩成48位,而扩展置换将32位右明文扩展为48位。现在,48位密钥与48位右明文进行异或运算,将结果传递到下一步,即S盒替换。第3步:S盒替换48位输入块分为8个子块(各有6位),每个子块指定一个S盒,S盒将6位输入变成4位输出。8个S盒如图所示:14413121511831061259070157414213110612119538411481316211151297310501512824917511314100613图2.7 S盒11518146113497213120510313471528141201106

26、911501471110413158126932151381013154211671205149图2.8 S盒21009146315511312711428137093461028514121115113649815301112125101471101306987415143115212图2.9 S盒37131430691012851112415138115615034721211014910690121171315131452843150610113894511127214图2.10 S盒4212417101168531513014914112124713150151039864211110

27、1378159125630141181271142136150910453图2.11 S盒51211015926801334147511101542712956113140113891415528123704101131164321295151011141760813图2.12 S盒64112141508133129751061130117491101435122158614111312371410156805926111381410795015142312图2.13 S盒7132846151111093145012711518103741256110149271141912142061013

28、153582114741081315129035611图2.14 S盒8第4步:P盒置换所有S盒的输出组成32位块,对该32位要进行P盒置换。图2.15显示了P盒置换。1672021291228171152326518311028241432273919133062211425图2.15 P盒置换第5步:异或与交换上述所有操作只是处理了64位明文的右边32位(即右明文),还没有处理左边部分(左明文)。这时,最初64位明文的打本部分与P盒置换的结果进行异或运算,成为新的右明文,并通过交换将旧的右明文变成新的左明文,如图2.16所示。XOR32位左明文块32位右明文块32位左明文块32位右明文块1

29、. 密钥变换2. 扩展置换3. S盒置换4. P盒置换下一轮图2.16 异或与交换 (4)最终置换16轮结束后,进行最终置换(只一次),即按图2.17进行变换。最终置换的输出就是64位加密块。4084816562464323974715552363313864614542262303754513532161293644412522602835343115119592734242105018582633141949175725图2.17 最终置换DES加密算法也适用于解密,各个表的值和操作及其顺序是经过精心选择的,使这个算法可逆。加密与解密过程的唯一差别是密钥部分倒过来。如果原先的密钥K分解为K

30、1、K2、K3、K16,用于16轮加密,则解密密钥应为K16、K15、K14、K1。(3)DES算法的优缺点对于DES而言,人们所熟知的是它的长度不够长,虽说它的密码号称64位,实际上起作用的只有56位,这在人们的印象中密钥长度是短了些。随着计算机技术的蓬勃发展,专用芯片的速度越来越快,造价也越来越便宜,专用设备的造价也大大地降低。这些都对DES算法造成了严重的威胁。与此同时,这些新技术的出现也大大地提高了DES算法的运算速度,对大数据量信息的处理带来了许多的便捷。事实上,目前对DES算法最有效的攻击仍然是穷举搜索法,对于大数信息而言,就算是有第三者花费大量的人力物力财力对DES算法进行攻击,

31、仍然需要相当长的时间才能破译,而大部分信息也仅仅是在某段时间范围内才是有效的。总而言之,DES算法以及同类的对称加密算法,缺点是密钥相对较短,优点是加密速度相当的快。所以这类对称加密算法依然在数据加密领域具有重要的地位。2.3 非对称密钥加密算法2.3.1 非对称密钥加密算法简介1976年,美国学者Dime和Henman为解决信息密钥公开传送和管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey

32、)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法20。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但

33、加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。经典的非对称加密算法如RSA算法安全性都相当高。非对称加密的典型应用是数字签名。2.3.2 RSA算法 (1)RSA算法简介RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公

34、开作为加密密钥21。 (2)RSA加密原理下面是RSA生成私钥和公钥,并用其进行加密和解密的过程。 选择两个大素数、。 计算。 选择一个公钥(即加密密钥),使其不是与的因子。 选择私钥(即解密密钥),满足下列条件: 加密时,从明文计算密文如下: 将密文发送给接收方。解密时,从密文计算明文如下: 下面是一个示例: 取 得 求出 3220的因子为2、2、5、7、23 因此,不能有因子2、5、7、23.例如,不能选择4(因为2是它的因子),15(因为5是它的因子),14(因为2与7是它的因子),63(因为3是它的因子) 假设选择为79(也可以选择其他值,只要没有因子2、5、7、23) 将、与的值代入

35、公式,得到 即 经过计算,取则: ,满足要求。 假设要加密明文688,则 将密文1570发送给接收方 解密时,计算如下: 即 RSA算法中的计算问题: RSA的加密与解密过程RSA的加密、解密过程都为求一个整数的整数次幂,再取模。如果按其含义直接计算,则中间结果非常大,有可能超出计算机所允许的整数取值范围。而用模运算的性质:就可减小中间结果再者,考虑如何提高加、解密运算中指数运算的有效性。例如求x16,直接计算的话需做15次乘法。然而如果重复对每个部分结果做平方运算即求x,x2,x4,x8,x16则只需4次乘法。RSA密钥的产生产生密钥时,需要考虑两个大素数p、q的选取,以及e的选取和d的计算

36、。因为n=pq在体制中是公开的,因此为了防止敌手通过穷搜索发现p、q,这两个素数应是在一个足够大的整数集合中选取的大数。如果选取p和q为10100左右的大素数,那么n的阶为10200,每个明文分组可以含有664位(102002664),即83个8比特字节,这比DES的数据分组(8个8比特字节)大得多,这时就能看出RSA算法的优越性了。因此如何有效地寻找大素数是第一个需要解决的问题。寻找大素数时一般是先随机选取一个大的奇数(例如用伪随机数产生器),然后用素性检验算法检验这一奇数是否为素数,如果不是则选取另一大奇数,重复这一过程,直到找到素数为止。素性检验算法通常都是概率性的,但如果算法被多次重复

37、执行,每次执行时输入不同的参数,算法的检验结果都认为被检验的数是素数,那么就可以比较有把握地认为被检验的数是素数。 (3)RSA算法的优缺点 对于公钥加密算法RSA,其最大的缺点是: 密钥的产生相对比较麻烦,收到素数产生机制的限制,很难做到一次一密;速度过于缓慢。由于RSA加密算法的分组长度相对较大,为保证其安全性,n至少也要在600位以上,致使运算代价相当高,尤其是速度较慢,比起对称密码算法慢好几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET协议中要求CA采用2048位长的密钥,其他实体使用1024位的密钥。 公钥加密算法的优点:由于RSA算法的安

38、全性依赖于大数的因子分解,就目前的技术而言,解决大数的分解问题是相当困难的,虽然理论上尚无法证明破译RSA算法和大数的分解难度等价,但是事实上在人们的观念中它们是等价的。 依据上述优缺点,我们可以看出RSA加密算法比较适合于信息量少的信息,而对于信息量过大的信息,使用RSA算法就不合时宜了。3 数据加密传输系统的设计通过对对称密钥加密算法和非对称密钥加密算法的分析和研究,提出了用DES和RSA分别加密文件并进行传输的思想,对两种加密算法进行了比较,了解了它们的适用范围和优缺点。本系统既满足操作简单的要求,也对文件传输的安全性和完整性也有保证,要发送和加密的文件位置是可以选择的。虽然用户不了解加

39、解密算法,但是加解密算法都是被封装在程序里的,用户不会看到其加解密过程。这样就保证了软件简单操作、性能完善的要求。3.1 系统的整体结构系统的整体结构分为以下几个模块,首先是发送端的明文经过数据加密系统加密后,文件传输系统将加密后的密文传送给接收端,接收端接收到密文以后,用已知的密钥进行解密,得到明文。系统的整体结构如图3.1所示。文件加密传输系统发送端接收端发送文件数据加密数据解密接收文件图3.1 系统的整体结构图3.2 模块设计3.2.1 加解密模块(1)DES加解密模块DES数据加密流程图如图3.2所示。 明 文 分 组初始置换 L0 R0 L1=R0R1=L0f(R0,K1)L15=R

40、14R15=L14f(R14,K15)L16=R15R16=L15f(R15,K16)组成64位数据终结置换图3.2 DES数据加密流程图 根据DES的加密过程,DES数据加密算法思想如下:int IP_Table64 = /初始置换(IP) 58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4 62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8 57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3 61,53,45,37,29,21,13,5,63,55,47,39,31,23,

41、15,7; int PC_156 = /密钥置换1 56,48,40,32,24,16,8,0,57,49,41,33,25,17, 9,1,58,50,42,34,26, 18,10,2,59,51,43,35, 62,54,46,38,30,22,14, 6,61,53,45,37,29,21, 13,5,60,52,44,36,28, 20,12,4,27,19,11,3; int PC_248 = /密钥置换213,16,10,23,0,4,2,27,14,5,20,9,22,18,11,3,25,7,15,6,26,19,12,1, 40,51,30,36,46,54,29,39,5

42、0,44,32,47,43,48,38,55,33,52,45,41,49,35,28,31; int E_Table = /扩展置换 31, 0, 1, 2, 3, 4, 3, 4, 5, 6, 7, 8,7, 8, 9, 10, 11, 12, 11, 12, 13, 14, 15, 16,15, 16, 17, 18, 19, 20, 19, 20, 21, 22, 23, 24, 23, 24, 25, 26, 27, 28,27, 28, 29, 30, 31, 0;int S_Box8416 = /8个s盒替换14, 4,13, 1, 2,15,11, 8, 3,10, 6,12,

43、 5, 9, 0, 7, 0,15, 7, 4,14, 2,13, 1,10, 6,12,11, 9, 5, 3, 8, 4, 1,14, 8,13, 6, 2,11,15,12, 9, 7, 3,10, 5, 0,15,12, 8, 2, 4, 9, 1, 7, 5,11, 3,14,10, 0, 6,13,15, 1, 8,14, 6,11, 3, 4, 9, 7, 2,13,12, 0, 5,10, 3,13, 4, 7,15, 2, 8,14,12, 0, 1,10, 6, 9,11, 5, 0,14, 7,11,10, 4,13, 1, 5, 8,12, 6, 9, 3, 2,15,

44、13, 8,10, 1, 3,15, 4, 2,11, 6, 7,12, 0, 5,14, 9,10, 0, 9,14, 6, 3,15, 5, 1,13,12, 7,11, 4, 2, 8,13, 7, 0, 9, 3, 4, 6,10, 2, 8, 5,14,12,11,15, 1,13, 6, 4, 9, 8,15, 3, 0,11, 1, 2,12, 5,10,14, 7, 1,10,13, 0, 6, 9, 8, 7, 4,15,14, 3,11, 5, 2,12, 7,13,14, 3, 0, 6, 9,10, 1, 2, 8, 5,11,12, 4,15,13, 8,11, 5,

45、 6,15, 0, 3, 4, 7, 2,12, 1,10,14, 9,10, 6, 9, 0,12,11, 7,13,15, 1, 3,14, 5, 2, 8, 4, 3,15, 0, 6,10, 1,13, 8, 9, 4, 5,11,12, 7, 2,14, 2,12, 4, 1, 7,10,11, 6, 8, 5, 3,15,13, 0,14, 9,14,11, 2,12, 4, 7,13, 1, 5, 0,15,10, 3, 9, 8, 6,4, 2, 1, 11,10,13, 7, 8,15, 9,12, 5, 6, 3, 0,14,11,8,12, 7, 1,14, 2,13,

46、6,15, 0, 9,10, 4, 5, 3,12, 1,10,15, 9, 2, 6, 8, 0,13, 3, 4,14, 7, 5,11,10,15, 4, 2, 7,12, 9, 5, 6, 1,13,14, 0,11, 3, 8, 9,14,15, 5, 2, 8,12, 3, 7, 0, 4,10, 1,13,11, 6, 4, 3, 2,12, 9, 5,15,10,11,14, 1, 7, 6, 0, 8,13, 4,11, 2,14,15, 0, 8,13, 3,12, 9, 7, 5,10, 6, 1,13, 0,11, 7, 4, 9, 1,10,14, 3, 5,12,

47、2,15, 8, 6, 1, 4,11,13,12, 3, 7,14,10,15, 6, 8, 0, 5, 9, 2, 6,11,13, 8, 1, 4,10, 7, 9, 5, 0,15,14, 2, 3,12,13, 2, 8, 4, 6,15,11, 1,10, 9, 3,14, 5, 0,12, 7, 1,15,13, 8,10, 3, 7, 4,12, 5, 6,11, 0,14, 9, 2, 7,11, 4, 1, 9,12,14, 2, 0, 6,10,13,15, 3, 5, 8, 2, 1,14, 7, 4,10, 8,13,15,12, 9, 0, 3, 5, 6,11;i

48、nt P_Table32 =/置换运算P16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10 2, 8,24,14,32,27, 3, 9,19,13,30, 6,22,11, 4,25; int FP_Table64 = /最终置换(FP)40, 8, 48, 16, 56, 24, 64, 32,39, 7, 47, 15, 55, 23, 63, 31,38, 6, 46, 14, 54, 22, 62, 30,37, 5, 45, 13, 53, 21, 61, 29,36, 4, 44, 12, 52, 20, 60, 28,35, 3, 43,

49、11, 51, 19, 59, 27,34, 2, 42, 10, 50, 18, 58, 26,33, 1, 41, 9, 49, 17, 57, 25; DES加密算法也适用于解密,各个表的值和操作及其顺序是经过精心选择的,使这个算法可逆,加密与解密过程的唯一差别是密钥部分倒过来。DES加解密模块DES加解密文件DES加解密演示文件浏览文件加解密数据输入数据加解密DES加解密模块的设计,分为两个部分:DES加密文件部分和DES加密演示部分。DES加密文件部分可以实现对文件的浏览,选中文件后对文件进行加密,加密后的文件存放在新的文档;DES加密演示部分输入数据后可以直接加密。DES的加解密结

50、构如图3.3所示。图3.3 DES加解密模块结构(2)RSA加解密模块RSA数据加密流程图如图3.4所示。是否产生了两个素数?开始产生奇随机数RND用小素数测试RND是RND=素数?对RND进行Miller-Rabin测试RND=素数?是是是121p:=RND NO.1q:=RND NO.2计算公开模数n:=pq计算公开密钥e计算公开密钥d停止否否否图3.4 RSA数据加密流程图intsushu(longm) /素数的判断inti;for(i=2;i*i=d)?f:d;y3=(f=d)?d:f;while(1)if(y3=0)*result=x3;return0;if(y3=1)*result

51、=y2;return1;q=x3/y3;t1=x1-q*y1;t2=x2-q*y2;t3=x3-q*y3;x1=y1;x2=y2;x3=y3;y1=t1;y2=t2;y3=t3;RSA加解密系统,主界面有三个模块,分别为加密、解密和退出;加密模块对明文和密钥的输入又设置了直接输入和从文件读取;解密模块可以直接实现对文件的解密。RSA的加解密结构如图3.5所示。密钥产生RSA数据解密RSA加解密模块RSA数据加密数据输入密文输出密文输入数据输出图3.5 RSA加解密结构3.2.2 文件传输模块 文件传输模块分为发送端和接收端,主要实现的功能描述如下: (1)文件浏览:用户手动点击浏览按钮,根据用

52、户的需要,按照目录选择要传输的文件,选中文件。 (2)文件传输:当用户点击发送文件时,文件就可通过软件传给客户端。点击客户端按钮,软件会弹出客户端的窗体,它包含输入框(输入对方IP地址)和按钮(接收和退出),通过输入IP地址,就可实现一台电脑上的文件传输。以上的功能描述便是该模块的整体设计思想。class data /发送端 public: int mout; int day; int year; data a=9,10,2010; char *buf = (char*)(&a); int len = sizeof(class data); send(SOCKET s,char* buf,in

53、t len);class data / 接收端 public: int mout; int day; int year;data b;recv_loop(SOCKET s,(char*)(&b),sizeof(class data);coutb.moutnb.daynb.yearendl;3.3 本章小结本毕业设计是在VC6.0平台上设计与实现网络数据通信的加密传输,通过对题目的分析,可以把该设计分为文件加解密模块和文件传输模块。文件的加解密模块分别是由对称密钥加密算法DES和非对称密钥加密算法RSA对文件进行加密和解密,采用这两种算法的目的是为了对它们的安全性和速度进行比较。下面是对DES算法和RSA算法的比较:在加密和解密的

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!