基于Python的代替密码破译方法实现分析研究计算机科学与技术专业.docx
《基于Python的代替密码破译方法实现分析研究计算机科学与技术专业.docx》由会员分享,可在线阅读,更多相关《基于Python的代替密码破译方法实现分析研究计算机科学与技术专业.docx(29页珍藏版)》请在三一办公上搜索。
1、摘要OABSTRACT1第1章绪论11.1 研究背景及意义11.2 Python语言21.2.1 PythOrI语言简介21.2.2 PythOn语言的优势2第2章加密解密基本算法及原理32.1 密码体制的分类32.1.1 对称密码体制42.1.2 非对称密码体制52.2 DES算法详细原理介绍52.2.1 DES算法概述52.2.2 DES算法设计思想和准则62.3 RSA算法详细原理介绍61.1 .1RSA算法概述61.2 RSA体制的算法过程72.4 其他加密解密算法7第3章模拟Python代替密码破译过程83.1 代替密码破译界面程序(mainwindow)83.2 计算密码字典程序(
2、InakeWordPatterns)113.3 单词模式程序(WordPatternS)1333.1 常用密码字典类型1433.2 2密码字典修改模式143.4 密码破解程序(passwordDecipher)153.5 简单替代密码加解密测试程序(SimplesubstitutePassword)17结论24参考文献25错误!未定义书签。摘要随着计算机与网络应用的普及,信息安全问题越来越引起人们的重视。仅靠对管理制度进行完善难以从根本上杜绝内部安全问题的发生,必须从技术上对内部数据文件进行保护,文件保护系统也由此而生。本文通过对PythOrI的基本概念、加解密基本算法及原理进行系统说明,采用
3、代替方法实现对信息的加解密,并对加解密过程实现可视化等方面的分析,由浅入深对Python的代替密码破译方法实现研究与设计及防范技术进行了系统的研究。关键词:信息安全Python密码破译ABSTRACTWiththepopularizationofcomputerandnetworkapplication,theproblemofinformationsecurityhasattractedmoreandmoreattention.Itisdifficulttopreventinternalsecurityproblemsfromhappeningsimplybyimprovingthemana
4、gementsystem,andinternaldatafilesmustbeprotectedtechnically,sothedocumentprotectionsystemalsoarises.Inthispaper,thebasicconceptsofPython,thebasicalgorithmsandprinciplesofencryptionanddecryptionareexplainedsystematically,theinformationisdecryptedbyusingalternativemethods,andtheprocessofencryptionandd
5、ecryptionisvisualized.Keywords:InformationsecurityPythonPasswordcracking第1章绪论1.1 研究背景及意义信息安全从来都是人们最重视的问题,同时也是人们最担心的问题之一。密码几乎可以说是随着语言的产生而产生的,因此密码与人类语言的历史一样悠久,随着科学技术的发展而不断的技术更新。随着信息社会的到来,利用信息资源,人们产生了巨大的利益,但是,多起信息泄露事故的发生,不得不让我们正视信息安全的考验。目前,在网络上传输数据文件进行交流成了我们的习惯,便利之余,在传输过程中一些数据图像很有可能遭受黑客等其他一些恶意迫害者的攻击,导致
6、数据误传、错传,甚至内容被修改或者被截走。网络密码学的诞生极大地保障了网络传输的安全性,由对称加密与解密算法DES和非对称加密算法RSA组成的数据加密的诞生极大地丰富了网络密码学的内容,保障了网路数据传输的安全性。现如今,随着智能设备的发展,加密解密也已不仅仅是一行行的代码,为了减少操作步骤及泄密事件的发生,避免重复操作带来的错误,达到高效、快捷、安全的目的,越来越多的加密解密方式变成了通过窗口实现明密文转换的方式。本文使用Python实现代替密码破译,通过PythOn设计一个可视化窗口程序,输入一段密文,利用这个窗口程序得到明文,然后通过反向操作,破译密文并发现问题,改进问题,从而达到保密效
7、果。1.2 PythOn语言1.2.1 PythOn语言简介Python是一种面向对象的解释型计算机程序设计语言,由荷兰人GUidOvanRossum于1989年发明。Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNUGeneralPublicLiCenSe)协议。Python语法简洁清晰,特色之一是强制用空白符(WhiteSPaCe)作为语句缩进。同时PythOn具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C+)很轻松地联结在一起。常见的一种应用情形是,使用PythOn快速生成程序的原型(有时甚至是程序的最终界面),然后对其中
8、有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C+重写,而后封装为PythOn可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。1.2.2 Python语言的优势Python语言是一种功能强大的具有解释性、交互性和面向对象的第四代计算机编程语言,用Python语言代替密码破译,其优点主要有以下几点:1.简单:PythOn的语法非常优雅,甚至没有像其他语言的大括号,分号等特殊符号,代表了一种极简主义的设计思想。阅读Python程序像是在读英语。2 .易学:Python入手非常快,学习曲线非常低,可
9、以直接通过命令行交互环境来学习Python编程。3 .免费/开源:Python的所有内容都是免费开源的,这意味着你不需要花一分钱就可以免费使用PythOrb并且你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。4 .自动内存管理:如果你了解C语言、C+语言你就会知道内存管理给你带来很大麻烦,程序非常容易出现内存方面的漏洞。但是在Python中内存管理是自动完成的,你可以专注于程序本身。5 .可以移植:由于Python是开源的,它己经被移植到了大多数平台下面,例如:Windows、MacOSLinux、Andorid、iOS等等。6 .解释性:大多数计算
10、机编程语言都是编译型的,在运行之前需要将源码编译为操作系统可以执行的二进制格式(0110格式的),这样大型项目编译过程非常消耗时间,而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。7 .面向对象:PythOn既支持面向过程,又支持面向对象,这样编程就更加灵活。8 .可扩展:Python除了使用Python本身编写外,还可以混合使用像C语言、JaVa语言等编写。9 .丰富的第三方库:PythOn具有本身有丰富而且强大的库,而且由于Python的开源特性,第
11、三方库也非常多,例如:在Web开发、爬虫、科学计算等等。第2章加密解密基本算法及原理2.1 密码体制的分类密码体制也叫密码系统,是指能完整地解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性等问题中的一个或几个的一个系统。对一个密码体制的正确描述,需要用数学方法清楚地描述其中的各种对象、参数、解决问题所使用的算法等。通常,数据的加密和解密过程是通过密码体制+密钥来控制的。密码体制必须易于使用,特别是应当可以在微型计算机使用。密码体制的安全性依赖于密钥的安全性,现代密码学不追求加密算法的保密性,而是追求加密算法的完备,即:使攻击者在不知道密钥的情况下,没有办法从算法找到突破口
12、。通常的密码体制采用移位法、代替法和代数方法来进行加密和解密的变换,可以采用一种或几种方法结合的方式作为数据变换的基本模式。密码体制是由加密解密共同组成的信息保密机制,分为对称密码体制和非对称密码体制两类。2.1.1 对称密码体制对称密码体制是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。但是对于大型网络,当用户群很大,分布很
13、广时,密钥的分配和保存就成了问题。比较典型的算法有DES(DataEncryptionStandard数据加密标准)算法及其变形TripleDES(三重DES),GDES(广义DES);欧洲的IDEA;日本的FEALN、RC5等。DES标准由美国国家标准局提此主要应用于银行业的电子资金转帐(EFT)领域。DES的密钥长度为56bitoTripleDES使用两个独立的56bit密钥对交换的信息进行3次加密,从而使其有效长度达到112bit.RC2和RC4方法是RSA数据安全公司的对称加密专利算法,它们采用可变密钥长度的算法。通过规定不同的密钥长度,C2和RC4能够提高或降低安全的程度。对称密码算
14、法的优点是计算开销小,加密速度快,是目前用于信息加密的主要算法。它的局限性在于它存在着通信的贸易双方之间确保密钥安全交换的问题。此外,某一贸易方有几个贸易关系,他就要维护几个专用密钥。它也没法鉴别贸易发起方或贸易最终方,因为贸易的双方的密钥相同。另外,由于对称加密系统仅能用于对数据进行加解密处理,提供数据的机密性,不能用于数字签名。对称密码体制是加密的密钥和解密密钥用同一个密钥的体制,用公式表达就是:加密过程:C=E(M、K)解密过程:M=D(C、K)其中字母的依次是:M为明文、K为密钥、E为机制或算法、C为密文。2.1.2 非对称密码体制非对称密码体制也叫公钥加密技术,该技术就是针对私钥密码
15、体制的缺陷被提出来的。在公钥加密系统中,加密和解密是相对独立的,加密和解密会使用两把不同的密钥,加密密钥(公开密钥)向公众公开,谁都可以使用,解密密钥(秘密密钥)只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,顾其可称为公钥密码体制。如果一个人选择并公布了他的公钥,另外任何人都可以用这一公钥来加密传送给那个人的消息。私钥是秘密保存的,只有私钥的所有者才能利用私钥对密文进行解密。公钥密码体制的算法中最著名的代表是RSA系统,此外还有:背包密码、MCEIieCC密码、DiffeHeIIman、Rabin、零知识证明、椭圆曲线、EIGamal算法等。公钥密钥的密钥管理比较简单,并
16、且可以方便的实现数字签名和验证。但算法复杂,加密数据的速率较低。公钥加密系统不存在对称加密系统中密钥的分配和保存问题,对于具有n个用户的网络,仅需要2n个密钥。公钥加密系统除了用于数据加密外,还可用于数字签名。公钥加密系统可提供以下功能:A、机密性(COnfieIentiality):保证非授权人员不能非法获取信息,通过数据加密来实现;B、确认(AUthentiCatiOn):保证对方属于所声称的实体,通过数字签名来实现;C、数据完整性(Dataintegrity):保证信息内容不被篡改,入侵者不可能用假消息代替合法消息,通过数字签名来实现;D、不可抵赖性(NonrCPUdiation):发送
17、者不可能事后否认他发送过消息,消息的接受者可以向中立的第三方证实所指的发送者确实发出了消息,通过数字签名来实现。可见公钥加密系统满足信息安全的所有主要目标。非对称密码体制是加密和解密密钥用的不是同一个密钥的体制。当中需要两个密钥,称为公钥和私钥,两者依次对应,并且无法互相推出。在实践使用当中,根据需要,两个密钥分别用来加密和解密。非对称密码体制中,主要的加密方法是公钥密码体制(PUbliCKeyInstructure)简称PKI,PKI算法成为当前信息加密技术的主流,而PKI的基础就是RSA算法。2.2 DES算法详细原理介绍2.2.1 DES算法概述DES算法为密码体制中的对称密码体制,又被
18、称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法,之后在产业中尤其是金融业中得到大力推广和使用。明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES算法是分组密码的经典代表,也是第一个公开的算法标准。DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为2.56,这意味着如果一台计算机的速度是每一秒钟检测一百万个密钥,
19、则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的。然而,这并不等于说DES是不可破解的。而实际上,随着硬件技术和Internet的发展,其破解的可能性越来越大,而且,所需要的时间越来越少。使用经过特殊设计的硬件并行处理要几个小时。2.2.2 DES算法设计思想和准则DES算法根源上来说是一种将置换、代换、移位多种密码技术综合运用的乘积密码。采用FeiSteI网络结构,DES算法以64位(8byte)密钥为分组对数据加密,因为加密和解密过程算法相对应,架构也相同,只是顺序不同,因此使用同一个密钥。以加密过程为例,解密过程原理不再赘述。对于64位明文的加密过程如下:(1)经过初始
20、置换,将明文平均分成左右各32位的两部分。(2)密钥与右半部分结合,再与左半部分结合成为新的右半部分。2.2.3 一开始的右半部分作为新的左部分再进行下一轮的轮换。(4)以上过程组成一轮。这种轮换要重复16次。16轮之后,再进行终结置换。简单来说,DES的加密过程由加密处理、加密变换和子密钥生成几个部分组成。2.3 RSA算法详细原理介绍2.3.1 RSA算法概述RSA公钥加密算法是1977年由罗纳德李维斯特(ROnRivest)、阿迪萨莫尔(AdiShamir)和伦纳德阿德曼(LeonardAdIeman)一起提出的。只有短的RSA钥匙才可能被强力方式解破,目前为止,世界上还没有任何可靠的攻
21、击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。它功能强大,既能用于数据加密也能用于数字签名。RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA算法的安全性主要仰仗于对一个大数进行分解问题的难解性,因而后文我们对实现RSA算法的参数的选择进行了重点讨论。2.3.2 RSA体制的算法过程RSA密码体制的实现使用了模数n进行分解的运算,这里的n是两个不同的素数(即除了自己和1以外不能被任何数整除的数)p和q的乘积。RSA体制的算法具体过程如下:首先产生密钥,过程如下:(1
22、)随机产生两个长度为K/2位的素数P和Q。(2)计算公钥publicKey=P*Q;(publicKey是K位的长度)。(3)随机产生一个加密密钥2keyE(n)-l,其中GCDkeyE,(n)=l,即keyE和6(n)互质。注意:这是保证解密密钥keyEXkeyDmod(n)=1有解的充要条件,(n)称为n的欧拉函数,函数值为:(n)=(P-I)(Q-I)0(4)求解密密钥keyD=keyE-Imod(n),keyE-I为解密密钥keyD的逆元,这个公式原方程为keyEkeyDmod(n)=lo由此公钥、加密密钥和解密密钥全部产生。接下来,对明文加密或对密文进行解密,具体的公式如下:(1)加
23、密:C=MkeyEmodpublicKey;其中M表示明文,C表示密文。(2)解密:M=CkeyDmodpublicKey;其中M表示明文,C表示密文。2.4 其他加密解密算法较为常用的其他加密解密算法为base64编码。它是我们程序开发中经常使用到的编码方法,DES算法的实现也离不开它。标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“犷号在存入数据库时还需要再进行转换,因为ANSlSQL中已将“”号用作通配符。为解决此问题,可采用一种用于URL的改进Base64编码,它不在末尾填充号,并将标准Base
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Python 代替 密码 破译 方法 实现 分析研究 计算机科学 技术 专业
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-7002666.html