对称式加密技术和非对称式加密技术毕业论文.docx
《对称式加密技术和非对称式加密技术毕业论文.docx》由会员分享,可在线阅读,更多相关《对称式加密技术和非对称式加密技术毕业论文.docx(25页珍藏版)》请在冰豆网上搜索。
对称式加密技术和非对称式加密技术毕业论文
对称式加密技术和非对称式加密技术毕业论文
1、引言....................................................................................................................2
1.1加密的由来................................................................................................2
1.2加密的概念................................................................................................3
1.3加密的理由.................................................................................................32、加密技术分析.....................................................................................................4
2.1对称式加密技术.........................................................................................4
2.1.1描述.................................................................................................4
2.1.2对称加密算法分析...........................................................................4
2.2非对称加密技术........................................................................................6
2.2.1描述.................................................................................................6
2.2.2目的和意义.......................................................................................7
2.2.3RSA公钥加密技术..........................................................................73、具体设计............................................................................................................10
3.1设计介绍....................................................................................................10
3.2设计的代码................................................................................................144、DES算法深入研究............................................................................................15
4.1具体分析....................................................................................................15
4.1.1DES的工作方式...........................................................................15
4.1.2DES算法使用步骤.......................................................................15
4.1.3算法的安全性分析........................................................................17
4.1.4本设计的变体................................................................................175、结束语...............................................................................................................22致谢..................................................................................错误~未定义书签。
24参考文献.................................................................................................................24
-1-
1、引言
信息是一种资源,也是一种财富。
在现代社会中,信息处理和通信技术日益发展,保护信息的安全,特别是保护重要信息的安全,已成为国际社会普遍关注的重大问题。
现在越来越多的软式是收费软件,比如瑞星,卡巴斯基等等。
这就需要用到序列号了。
但是现在越来越多的软件被破解,严重影响了其开发公司的经济利益,于是就需要给这个序列号加密才行。
保护知识产权,抵制盗版软件,是目前中国软件业所面临的迫切问题。
可是,尽管国家一再加大力度,打击非法软件出版物,扶持正版软件,但实际效果并不理想。
眼见着无孔不入的盗版软件对软件市场的侵害,更多的软件商选择了购买加密产品或者加密技术来保护自己的软件。
本课题的实现,可以使所使用的软件更加安全,有效的维护软件开发公司的利益,以及抑制软件的破解,打击盗版,支持正版。
验证一个软件只能允许在一台机器上面使用,如果到另外一台机器必须获取另外的新的机器激活码。
可以有效的保护软件公司的软性资产,让软性资产在用户使用的时候变成有形资产。
1.1加密的由来
加密作为保障数据安全的一种方式,它不是现在才有的,它产生的历史相当久远,它是起源于要追溯于公元前2000年(几个世纪了),虽然它不是现在我们所讲的加密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就诞生了。
当时埃及人是最先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。
近期加密技术主要应用于军事领域,如美国独立战争、美国内战和两次世界大战。
最广为人知的编码机器是GermanEnigma机,在第二次世界大战中德国人利用它创建了加密信息。
此后,由于AlanTuring和Ultra计划以及其他人的努力,终于对德国人的密码进行了破解。
当初,计算机的研究就是为了破解
-2-
德国人的密码,人们并没有想到计算机给今天带来的信息革命。
随着计算机的发展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如利用ROSA算法产生的私钥和公钥就是在这个基础上产生的。
1.2加密的概念
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为―密文‖,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。
该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。
1.3加密的理由
当今网络社会选择加密已是我们别无选择,其一是我们知道在互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输。
而且这种不安全性是互联网存在基础——TCP/IP协议所固有的,包括一些基于TCP/IP的服务;另一方面,互联网给众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小企业。
为了解决这一对矛盾、为了能在安全的基础上大开这通向世界之门,我们只好选择了数据加密和基于加密技术的数字签名。
加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取。
一个简单的例子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密码的,密码的泄露在某种意义上来讲意味着其安全体系的全面崩溃。
通过网络进行登录时,所键入的密码以明文的形式被传输到服务器,而网络上的窃听是一件极为容易的事情,所以很有可能黑客会窃取得用户的密码,如果用户是Root用户或Administrator用户,那后果将是极为严重的。
-3-
2、加密技术分析
下面介绍两种加密方法:
对称式加密技术和非对称式加密技术。
2.1对称式加密技术
2.1.1描述
对称算法(symmetricalgorithm),有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。
而在大多数的对称算法中,加密密钥和解密密钥是相同的。
所以也称这种加密算法为秘密密钥算法或单密钥算法。
它要求发送方和接收方在安全通信之前,商定一个密钥。
对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信性至关重要。
特点分析:
对称加密的优点在于算法实现后的效率高、速度快。
对称加密的缺点在于密钥的管理过于复杂。
如果任何一对发送方和接收方都有他们各自商议的密钥的话,那么很明显,假设有N个用户进行对称加密通信,如果按照上述方法,则他们要产生N(N-1)把密钥,每一个用户要记住或保留N-1把密钥,当N很大时,记住是不可能的,而保留起来又会引起密钥泄漏可能性的增加。
常用的对称加密算法有DES,DEA等。
2.1.2对称加密算法分析
对称加密算法的分类:
对称加密算法可以分成两类:
一类为序列算法(streamalgorithm):
一次只对明文中单个位(有时为字节)加密或解密运算。
另一类为分组算法(blockalgorithm):
一次明文的一组固定长度的字节加密或解密运算。
现代计算机密码算法一般采用的都是分组算法,而且一般分组的长度为64位,之所以如此是由于这个长度大到足以防止分析破译,但又小到足以方便使用。
一、DES加密算法简介(DataEncryptionStandard)
1973年5月15日,美国国家标准局(NBS)在“联邦注册”上发布了一
-4-
条通知,征求密码算法,用于在传输和存储期间保护数据。
IBM提交了一个候选算法,它是IBM内部开发的,名为LUCIFER。
在美国国家安全局(NSA)的“指导”下完成了算法评估之后,在1977年7月15日,NBS采纳了LUCIFER算法的修正版作为新的数据加密标准。
原先规定使用10年,但由于新的加密标准还没有完成,所以DES算法及其的变形算法一直广泛的应用于信息加密方面。
(本文将在第四部分具体介绍DES算法及应用,并编写相应加密代码。
)
二、AES算法
DES算法是全世界最广泛使用的加密算法。
最近,就在2000年10月,它在其初期就取得的硬件方面的优势已经阻碍了其发展,作为政府加密技术的基础,它已由―高级加密标准‖(AES)中包含的另一种加密算法代替了。
AES是指定的标准密码系统,未来将由政府和银行业用户使用。
AES用来实际编码数据的加密算法与以前的DES标准不同。
AES算法的标准是:
1AES应该可以公开定义。
2AES应该是对称的块密码。
3AES应该设计成密钥长度可以根据需要增加。
4AES应该可以在硬件和软件中实现。
6将根据以下要素评价符合上述要求的算法:
具有安全性(密码分析所需的努力)、计算效率、内存需求、硬件和软件可适用性、简易性、灵活性
三、IDEA加密算法
1、算法简介:
IDEA算法是InternationalDataEncryptionAlgorithmic的缩写,意为国际数据加密算法。
是由中国学者朱学嘉博士和著名密码学家JamesMassey于1990年联合提出的,当时被叫作PES(ProposedEncryptionStandard)算法,后为了加强抵抗差分密码分,经修改于1992年最后完成,并命名为IDEA算法。
2、算法的安全性分析:
安全性:
IDEA的密钥长度是128位,比DES长了2倍多。
所以如果用穷举强行攻击的话,那么,为了获得密钥需要次搜索,如果可以设计一种每秒能搜索十亿把密钥的芯片,并且采用十亿个芯片来并行
-5-
处理的话,也要用上年。
而对于其他攻击方式来说,由于此算法比较的新,在设计时已经考虑到了如差分攻击等密码分析的威胁,所以还未有关于有谁发现了能比较成功的攻击IDEA方法的结果。
从这点来看,IDEA还是很安全的。
四、总结
几种算法的性能对比见表2,1
表2,1
算法密钥长度分组长度循环次数
DES566416
6448三重DES112、168
AES128128、192、25610、12、14
IDEA128648
速度:
在200MHz的奔腾机上的对比见表2,2
表2,2
DJGP(++pgcc101)C,,
AES30.2Mbps68.275Mbps
DES(RSAREF)10.6Mbps16.7Mbps
3DES4.4Mbps7.3Mbps
五、安全性
1990年以来,特制的"DESCracker"的机器可在几个小时内找出一个DES密钥。
换句话说,通过测试所有可能的密钥值,此硬件可以确定用于加密信息
55的是哪个密钥。
假设一台一秒内可找出DES密钥的机器(如,每秒试2个密钥),如果用它来找出128-bitAES的密钥,大约需要149万亿年。
2.2非对称加密技术
2.2.1描述
非对称密码体制也叫公钥加密技术,该技术就是针对私钥密码体制的缺陷被提出来的。
在公钥加密系统中,加密和解密是相对独立的,加密和解密会使
-6-
用两把不同的密钥,加密密钥向公众公开,谁都可以使用,解密密钥只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,故其可称为公钥密码体制。
如果一个人选择并公布了他的公钥,另外任何人都可以用这一公钥来加密传送给那个人的消息。
私钥是秘密保存的,只有私钥的所有者才能利用私钥对密文进行解密。
2.2.2目的和意义
(1)解决大规模网络应用中密钥的分发和管理问题
采用分组密码、序列密码等对称密码体制时,加解密双方所用的密钥都是秘密的,而且需要定期更换,新的密钥总是要通过某种秘密渠道分配给使用方,在传递的过程中,稍有不慎,就容易泄露。
公钥密码加密密钥通常是公开的,而解密密钥是秘密的,由用户自己保存,不需要往返交换和传递,大大减少了密钥泄露的危险性。
同时,在网络通信中使用对称密码体制时,网络内任何两个用户都需要使用互不相同的密钥,只有这样,才能保证不被第三方窃听,因而N个用户就要使用N(N–1)/2个密钥。
采用公钥密码体制,N个用户只需要产生N对密钥。
由此可见,只有公钥密码才能方便、可靠地解决大规模网络应用中密钥的分发和管理问题。
(2)实现网络中的数字签名机制
对称密钥技术由于其自身的局限性,无法提供网络中的数字签名。
这是因为数字签名是网络中表征人或机构的真实性的重要手段,数字签名的数据需要有惟一性、私有性,而对称密钥技术中的密钥至少需要在交互双方之间共享,因此,不满足惟一性、私有性,无法用做网络中的数字签名。
相比之下,公钥密码技术由于存在一对公钥和私钥,私钥可以表征惟一性和私有性,而且经私钥加密的数据只能用与之对应的公钥来验证,其他人无法仿冒,所以,可以用做网络中的数字签名服务。
2.2.3RSA公钥加密技术
RSA是Rivest,Shamir,Adleman提出基于数论的非对称密钥体制。
RSA是建立在大整数分解的困难上的,是一种分组密码体制。
RSA建立方法如下:
首先随机选两个大素数p,q,计算n=p•q;计算欧拉函数φ(n)=(p-1)(q-1);任选一个
-7-
整数e为公开加密密钥,由e求出秘密解密密钥加密/解密:
将明文分成长度小于位的明文块m,加密过程是:
c=E(m,e)=modn解密过程是:
m=D(c,d)=modn。
一、RSA公钥密码体制的安全性分析
RSA的安全性依赖于大整数的因式分解问题。
实际上,人们推测RSA的安全性依赖于大整数的因式分解问题,但谁也没有在数学上证明从c和e计算m需要对n进行因式分解。
可以想象可能会有完全不同的方式去分析RSA。
然而,如果这种方法能让密码解析员推导出d,则它也可以用作大整数因式分解的新方法。
最难以令人置信的是,有些RSA变体已经被证明与因式分解同样困难。
甚至从RSA加密的密文中恢复出某些特定的位也与解密整个消息同样困难。
二、RSA算法工作原理
首先,找出三个数,p,q,r,其中p,q是两个相异的质数,r是与(p-1)(q-1)互质的数......p,q,r这三个数便是privatekey接著,找出m,使得rm==1mod(p-1)(q-1).....这个m一定存在,因为r与(p-1)(q-1)互质,用辗转相除法就可以得到了.....再来,计算n=pq.......m,n这两个数便是publickey编码过程是,若资料为a,将其看成是一个大整数,假设a=n的话,就将a表成s进位(s<=n,通常取s=2^t),则每一位数均小于n,然后分段编码......接下来,计算b==a^mmodn,(0<=b若p,q是相异质数,rm==1mod(p-1)(q-1),a是任意一个正整数,b==a^mmodpq,c==b^rmodpq,则c==amodpq证明的过程,会用到费马小定理,叙述如下:
m是任一质数,n是任一整数,则n^m==nmodm<证明>因为rm==1mod(p-1)(q-1),所以rm=k(p-1)(q-1)+1,其中k是整数因为在modulo中是preserve乘法的(x==ymodzandu==vmodz=>xu==yvmodz),所以c==b^r==(a^m)^r==a^(rm)==a^(k(p-1)(q-1)+1)modpq
(1)如果a不是p的倍数,也不是q的倍数时:
则a^(p-1)==1modp(费马小定理)=>a^(k(p-1)(q-1))==1modpa^(q-1)==1
modq(费马小定理)=>a^(k(p-1)(q-1))==1modq所以p,q均能整除a^(k(p-1)(q-1即a^(k(p-1)(q-1))==1modpq即a^(k(p-1)(q-1))==1modpq=>c==a^(k(p-1)(q-1)+1)==amodpq
-8-
(2)如果a是p的倍数,但不是q的倍数时:
则a^(q-1)==1modq(费马小定理)=>a^(k(p-1)(q-1))==1mod
q=>c==a^(k(p-1)(q-1)+1)==amodq=>q|c-a因p|a=>c==a^(k(p-1)(q-1)+1)==0
modp=>p|c-a所以,pq|c-a=>c==amodpq
(3)如果a是q的倍数,但不是p的倍数时,证明同上
(4)如果a同时是p和q的倍数时:
则pq|a=>c==a^(k(p-1)(q-1)+1)==0modpq=>pq|c-a=>c==amodpq
这个定理说明a经过编码为b再经过解码为c时,a==cmodn(n=pq)但我们在做编码解码时,限制0<=a三、RSA的安全性
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解。
假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。
目前,RSA的一些变种算法已被证明等价于大数分解。
不管怎样,分解n是最显然的攻击方法。
现在,人们已能分解多个十进制位的大素数。
因此,模数n必须选大一些,因具体适用情况而定。
四、RSA的速度
由于进行的都是大数计算,使得RSA最快的情况也比DES慢上一倍,无论是软件还是硬件实现,速度一直是RSA的缺陷。
一般来说只用于少量数据加密。
-9-
3、具体设计
本设计是用FLASH8.0开发的,开发出来后,就是以.FLA为后缀的FLASH文档,然后用FLASH导出为以.SWF为后缀的FLSH影片。
但是仍然不是以.EXE为后缀的可执行文件。
3.1设计介绍
本课程设计是用FLASH8.0开发出来的,生产以.SWF为后缀的FLASH文档,然后用MDM这个软件生成以.EXE为后缀的可执行文件。
本课程设计的目的就是:
验证一个软件只能允许在一台机器上面使用,如果到另外一台机器必须获取另外的新的机器激活码。
可以有效的保护软件公司的软性资产,让软性资产在用户使用的时候变成有型资产。
本课程设计分为2个窗口,即高强度加密后的注册页面窗口,如图3-1所示;还有获取本机注册码窗口,如图3-2所示:
3-1高强度加密后的注册页面
-10-
图3-2获取本机注册码
当点击高强度加密后的注册页面窗口里的获取机器码按钮时,在机器码这
-3所示:
个文本栏中,就会显示本机的机器码,如图3
图3-3显示本机注册码
当点击获取本机注册码窗口里的获取按钮时,在注册码获取的文本栏中,
-11-
就会显示本机的注册码,如图3-4所示:
图3-4获取本机注册码
当把获取的注册码正确的输入到高强度加密后的注册页面窗口里的注册码文本栏里,然后点击后面的输入确认按钮,就会显示输入正确的提示,如图3-5所示:
图3-5输入正确
当在高强度加密后的注册页面窗口里的注册码文本栏里输入错误的注册码
-12-
或者空注册码时,就会给出输入出错,请重新输入的提示,如图3-6所示:
图3-6出错提示
-13-
3.2设计的代码
on(release,keyPress