-实现文件简单的加密和解密学士学位论文.doc
《-实现文件简单的加密和解密学士学位论文.doc》由会员分享,可在线阅读,更多相关《-实现文件简单的加密和解密学士学位论文.doc(65页珍藏版)》请在咨信网上搜索。
1、北京邮电大学毕业设计实现文件简单的加密和解密摘要随着信息社会的到来,人们在享受信息资源所带来的巨大的利益的同时,也面临着信息安全的严峻考验。信息安全已经成为世界性的现实问题,信息安全问题已威胁到国家的政治、经济、军事、文化、意识形态等领域。同时,信息安全也是人们保护个人隐私的关键,是社会稳定安全的必要前提条件。 信息安全是一个综合性的交叉学科领域,广泛涉及数学、密码学、计算机、通信、控制、人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。信息对抗和网络安全是信息安全的核心热点,它的研究和发展又将刺激、推动和促进相关学科的研究与发展。现今,加密是一种保护信息安全性最有效
2、的方法。密码技术是信息安全的核心技术。 本文是一篇关于文件简单加密和解密软件文件管家的毕业设计论文:用AES算法实现文件的加密和解密,用MD5实现文件校验功能,用覆盖技术实现文件粉碎功能;并且设计了一套完整的注册码验证体系,防止软件被逆向,从而保护软件的安全。关键词:文件;加密;解密;粉碎;反逆向;AESSimple implementation file encryption and decryptionAbstractWith the arrival of the information society, people not only enjoy the enormous benefit
3、s of information resources, but also face the severe challenges of information security. Information security has become a worldwide problem. The problem has become a threat to the political, economic, military, cultural, ideological and other aspects of a country. Meanwhile, the information securit
4、y is the key of protecting individual privacy and the prerequisite for social stability and security.Information security is a comprehensive interdisciplinary field, involving a wide range of disciplines such as mathematics, cryptography, computer, communications, control, artificial intelligence, s
5、ecurity, engineering, humanities and so on, It has been being a hot subject with rapid development. Information countermeasure and network security is a core focus, whose research and developments will stimulate and accelerate the study and progress of related disciplines. So far, the password to in
6、formation security technology is the most effective method. Cryptography is the core technology of information security.This article is about a software named File Manager, which can simply encrypt and decrypt files. The software uses AES algorithm to encrypt and decrypt files, MD5 to check the file
7、s, and overlay technique to achieve the feature of file shredder. Meanwhile, there is a complete set of design registration code verification system, which is used to protect the software from reverse, thus to protect the security of the software.Key words:file; encrypt; decrypt; shredder; Anti-Reve
8、rse; AESii目录摘要iAbstractii1 绪论11.1 论文背景11.2 主要工作11.3 本文结构12 AES介绍22.1 AES概述22.2 轮密钥加 (AddRoundKey)32.3 字节替代 (SubBytes)32.4 行移位 (ShiftRows)52.5 列混淆 (MixColumns)62.6 密钥调度 (Key Schedule)73 系统设计83.1 设计概述83.1.1 界面设计83.1.2 实现代码设计83.1.3 操作流程83.2 界面设计93.2.1 LOGO设计93.2.2 加密选项卡的设计103.2.3 解密选项卡的设计113.2.4 工具箱选项卡
9、的设计123.3 实现代码设计123.3.1 加密选项卡的设计133.3.2 解密选项卡的设计143.3.3 工具箱选项卡的设计153.3.4 程序流程图164 设计结果及分析204.1 设计结果展示204.1.1 软件初始化204.1.2 注册码验证224.1.3 文件加密244.1.4 文件解密274.1.5 文件校验294.1.6 文件粉碎294.2 设计结果分析及说明304.2.1 软件初始化304.2.2 注册码验证324.2.3 文件加密354.2.4 文件解密374.2.5 文件校验384.2.6 文件粉碎39结论41参考文献42致谢43外文原文44中文翻译551 绪论1.1 论
10、文背景信息安全是一个综合性的交叉学科领域,广泛涉及数学、密码学、计算机、通信控制、人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。信息对抗和网络安全是信息安全的核心热点,它的研究和发展又将刺激、推动和促进相关学科的研究与发展。网络技术的快速发展,给我们的生活带来了方便,提高了我们的工作效率,丰富了我们的生活,但同时,安全问题也时刻困扰着我们。连接在网络上的计算机随时都有被黑客攻击的可能,在网络上收发的文件也有可能被黑客截获,而这种不安全的因素是TCP/IP协议所固有的,所以为了保护重要的文件安全,我们必须给重要的文件加密。本论文讲述了加密技术的实现。通过数据加密,人
11、们可以有效地保证个人数据的安全,以及在通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。1.2 主要工作实现文件简单的加密和解密,保护数据安全。实现文件校验功能,用于验证文件的完整性和正确性。通过覆盖技术使删除的文件不可恢复,实现文件粉碎功能。设计一套完整的加密体系,在核心代码运行前优先取得程序控制权做校验工作,保护软件的安全。1.3 本文结构本文第一部分主要以绪论为主,说明了文章的研究背景、主要工作,概要说明了所做的工作。第二部分主要是文件加密解密的相关知识的介绍,介绍了AES算法的原理。第三部分叙述了设计的思路、重点。第四部分为设计结果及分析,将劳动成果展现给大家。第五部分为结论、
12、致谢和参考文献,列出了文章的参考文献和引用文献,反映本文研究工作的背景和依据。2 AES介绍2.1 AES概述AES是一个迭代的、对称密钥分组的加密算法,即它的加密和解密过程都使用同一个密钥。AES分组密码接受一个128位的明文,并且在一个128、192、256位秘密密钥的控制下产生一个128位的密文。它是一个替代 - 置换网络的设计,并且带有一个称为轮的步骤的集合,其中轮数可以为9、11或者13(对应于128、192或者256位的密钥),这样可以将明文映射为密文。一轮AES由下面的4步组成:(1)字节替代 (SubBytes):用一个S盒完成分组中的按字节的代换。(2)行移位 (ShiftR
13、ows):一个简单的置换。(3)列混淆 (MixColumns):一个利用在域GF()上的算术特性的代换。(4)轮密钥加 (AddRoundKey):利用当前分组和扩展密钥的一部分进行按位XOR。每一轮分别使用它自己的128位轮密钥 (round key),它是由秘密密钥通过一个称为密钥调度 (key schedule) 的过程处理而产生的。不要低估一个设计合理的密钥调度方案的重要性。它把密钥的熵散发给每一个轮密钥。如果熵没有被很好地传播,就会产生各种麻烦,例如等价密钥、相关密钥以及其他类似的分别征服攻击 (distinguishing attack)。AES把128位的输入看作是一个由16个
14、字节组成的向量,并用一个4 x4的列矩阵(big-endian)的形式来组织,叫做状态(state)。即第1个字节映射为,第3个字节映射为,第4个字节为,第16个字节映射为,如图2-1所示。A0.0A0.1A0.2A0.3A1.0A1.1A1.2A1.3A2.0A2.1A2.2A2.3A3.0A3.1A3.2A3.3图2-1 AES的状态示意图整个AES分组密码由下面的步骤组成:(1)AddRoundKey(round=0)(2)for round=1到Nr-1 (9、11或者13,这取决于密钥的大小)do SubBytes ShiftRows MixColumns AddRoundKey(r
15、ound)(3)SubBytes(4)ShiftRows(5)AddRoundKey(Nr)2.2 轮密钥加 (AddRoundKey)轮函数的这一步是把轮密钥加到状态中(在GF(2)中)。它执行了16个并行的把密钥加到状态中的运算。GF(2)的加法是通过异或运算来完成的,如图2-2所示。图2-2 AES AddRoundKey函数其中的K炬阵是一个轮密钥并且对每一轮都有一个惟一的密钥。因为密钥的加法是一个简单的异或,所以它常实现为在32位软件中从列开始的一个32位的异或操作。2.3 字节替代 (SubBytes)轮函数的SubBtes步骤是用来执行SPN中的非线性混清步骤的。它把16个字节的
16、每一个都并行地映射为一个新的字节,这是通过一个两步骤的替代操作来完成的,如图2-3所示。图2-3 AES SubBytes函数该映射变化是一个简单的查表操作,AES定义了一个S盒,如表2.1所示,它是由16*16个字节组成的矩阵,包含了8位值所能表达的256种可能的变换。State中每个字节按照如下的方式映射为一个新的字节:把该字节的高4位作为行值,低4位作为列值,然后取出S盒中对应行列的元素作为输出。例如,十六进制值95所对应的S盒的行值是9,列值是5,S盒中在此位置的值是2A。相应地,95被映射为2A。表2.1 AES的S盒y0123456789ABCDEFx0637C777BF26B6F
17、C53001672BFED7AB761CA82C97DFA5947F0ADD4A2AF9CA472C02B7FD9326363FF7CC34A5E5F171D83115304C723C31896059A071280E2EB27B275409832C1A1B6E5AA0523BD6B329E32F84553D100ED20FCB15B6ACBBE394A4C58CF6D0EFAAFB434D338545F9027F503C9FA8续表2.1 AES的S盒751A3408F929D38F5BCB6DA2110FFF3D28CD0C13EC5F974417C4A77E3D645D1973960814
18、FDC222A908846EEB814DE5E0BDBAE0323A0A4906245CC2D3AC639195E479BE7C8376D8DD54EA96C56F4EA657AAE08CBA78252E1CA6B4C6E8DD741F4BBD8B8AD703EB5664803F60E613557B986C11D9EEE1F8981169D98E949B1E87E9CE5528DFF8CA1890DBFE6436841992D0FB054BB16S盒被设计成能防止已有的各种密码分析攻击。AES的开发者特别寻求在输入位和输出位之间几乎没有相关性的设计,且输出值不能通过利用一个简单的数学函数变换输
19、入值所得到。当然,S盒必须是可逆的,即逆S盒S盒(a)=a。然而,因S盒(a)=逆S盒(a)不成立,在这个意义上S盒不是自逆的。例如,S盒(95)=2A,但逆S盒(95)=AD。2.4 行移位 (ShiftRows)ShiftRows这一步对状态中的每一行分别进行向左循环移动0、1、2和3个位置。它是完全线性的,如图2-4所示。图2-4 AES ShiftRows函数在实际应用中,我们将会看到这是通过重命名 (renaming) 来实现的而不是一个实际的移动。也就是说,通过对字节移动的替代,我们只是简单地在得到它们的地方对它们进行修改就可以。在32位的软件中,我们可以很容易地把ShiftRow
20、s和SubBytes以及MixColumns混合,而不用来回交换字节。2.5 列混淆 (MixColumns)MixColumns这一步对状态中的每一列乘上一个4*4的变换,这个变换就是所谓的极大距离可分码 (Maximally Distance Separable, MDS)。这一步的目的是扩大差别并且让输出线性依赖于其他输人。即如果一个单一的输入字节在两个明文中发生了改变(输入中所有其他的字节没变),这个改变将尽可能快地传播到状态中的其他字节中去,如图2-5所示。图2-5 AES MixColumns列混淆变换和行移位变换使得在经过几轮变换后,所有的输出位均与所有的输入位相关。2.6 密钥
21、调度 (Key Schedule)密钥调度是负责把输人的密钥转化成所需的Nr+1个128位轮密钥。图2-6中的算法将计算轮密钥。输入: Nk 密钥中的32位字的个数(4、6或者8) w 4 (Nr + 1)个32位字的数组输出: w 使用密钥来设显一个数组(1)以big-endian的格式把秘密密钥预加载到w的第一个Nk字中(2)i = Nk(3)while(i 6 and i mod Nk = 4) temp = SubWord(temp)(4)wi = wi-Nk xor temp(5)i = i + 1图2-6 AES密钥调度密钥调度还需要两个额外的函数。SubWord()的输人为32位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实现 文件 简单 加密 解密 学士学位 论文
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。