实现文件简单的加密和解密摘要随着信息社会的到来,人们在享受信息资源所带来的巨大的利益的同时,也面临着信息安全的严峻考验。
信息安全已经成为世界性的现实问题,信息安全问题已威胁到国家的政治、经济、军事、文化、意识形态等领域。
同时,信息安全也是人们保护个人隐私的关键,是社会稳定安全的必要前提条件。
信息安全是一个综合性的交叉学科领域,广泛涉及数学、密码学、计算机、通信、控制、人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。
信息对抗和网络安全是信息安全的核心热点,它的研究和发展又将刺激、推动和促进相关学科的研究与发展。
现今,加密是一种保护信息安全性最有效的方法。
密码技术是信息安全的核心技术。
本文是一篇关于文件简单加密和解密软件——文件管家的毕业设计论文:用AES 算法实现文件的加密和解密,用MD5实现文件校验功能,用覆盖技术实现文件粉碎功能;并且设计了一套完整的注册码验证体系,防止软件被逆向,从而保护软件的安全。
关键词:文件;加密;解密;粉碎;反逆向;AESSimple implementation fileencryption and decryptionAbstractWith the arrival of the information society, people not only enjoy the enormous benefits 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 security 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, security, 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 information 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 files, 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-Reverse; AES目录摘要 (i)Abstract (ii)1 绪论 (1)1.1 论文背景 (1)1.2 主要工作 (1)1.3 本文结构 (1)2 AES介绍 (2)2.1 AES概述 (2)2.2 轮密钥加(AddRoundKey) (3)2.3 字节替代(SubBytes) (3)2.4 行移位(ShiftRows) (5)2.5 列混淆(MixColumns) (6)2.6 密钥调度(Key Schedule) (7)3 系统设计 (8)3.1 设计概述 (8)3.1.1 界面设计 (8)3.1.2 实现代码设计 (8)3.1.3 操作流程 (8)3.2 界面设计 (9)3.2.1 LOGO设计 (9)3.2.2 加密选项卡的设计 (10)3.2.3 解密选项卡的设计 (11)3.2.4 工具箱选项卡的设计 (12)3.3 实现代码设计 (12)3.3.1 加密选项卡的设计 (13)3.3.2 解密选项卡的设计 (14)3.3.3 工具箱选项卡的设计 (15)3.3.4 程序流程图 (16)4 设计结果及分析 (20)4.1 设计结果展示 (20)4.1.1 软件初始化 (20)4.1.2 注册码验证 (22)4.1.3 文件加密 (24)4.1.4 文件解密 (27)4.1.5 文件校验 (29)4.1.6 文件粉碎 (29)4.2 设计结果分析及说明 (30)4.2.1 软件初始化 (30)4.2.2 注册码验证 (32)4.2.3 文件加密 (35)4.2.4 文件解密 (37)4.2.5 文件校验 (38)4.2.6 文件粉碎 (39)结论 (41)参考文献 (42)致谢 (43)外文原文 (44)中文翻译 (55)1 绪论1.1 论文背景信息安全是一个综合性的交叉学科领域,广泛涉及数学、密码学、计算机、通信控制、人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。
信息对抗和网络安全是信息安全的核心热点,它的研究和发展又将刺激、推动和促进相关学科的研究与发展。
网络技术的快速发展,给我们的生活带来了方便,提高了我们的工作效率,丰富了我们的生活,但同时,安全问题也时刻困扰着我们。
连接在网络上的计算机随时都有被黑客攻击的可能,在网络上收发的文件也有可能被黑客截获,而这种不安全的因素是TCP/IP协议所固有的,所以为了保护重要的文件安全,我们必须给重要的文件加密。
本论文讲述了加密技术的实现。
通过数据加密,人们可以有效地保证个人数据的安全,以及在通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。
1.2 主要工作实现文件简单的加密和解密,保护数据安全。
实现文件校验功能,用于验证文件的完整性和正确性。
通过覆盖技术使删除的文件不可恢复,实现文件粉碎功能。
设计一套完整的加密体系,在核心代码运行前优先取得程序控制权做校验工作,保护软件的安全。
1.3 本文结构本文第一部分主要以绪论为主,说明了文章的研究背景、主要工作,概要说明了所做的工作。
第二部分主要是文件加密解密的相关知识的介绍,介绍了AES算法的原理。
第三部分叙述了设计的思路、重点。
第四部分为设计结果及分析,将劳动成果展现给大家。
第五部分为结论、致谢和参考文献,列出了文章的参考文献和引用文献,反映本文研究工作的背景和依据。
2 AES介绍2.1 AES概述AES是一个迭代的、对称密钥分组的加密算法,即它的加密和解密过程都使用同一个密钥。
AES分组密码接受一个128位的明文,并且在一个128、192、256位秘密密钥的控制下产生一个128位的密文。
它是一个替代- 置换网络的设计,并且带有一个称为轮的步骤的集合,其中轮数可以为9、11或者13(对应于128、192或者256位的密钥),这样可以将明文映射为密文。
一轮AES由下面的4步组成:(1)字节替代(SubBytes):用一个S盒完成分组中的按字节的代换。
(2)行移位(ShiftRows):一个简单的置换。
(3)列混淆(MixColumns):一个利用在域GF()上的算术特性的代换。
(4)轮密钥加(AddRoundKey):利用当前分组和扩展密钥的一部分进行按位XOR。
每一轮分别使用它自己的128位轮密钥(round key),它是由秘密密钥通过一个称为密钥调度(key schedule) 的过程处理而产生的。
不要低估一个设计合理的密钥调度方案的重要性。
它把密钥的熵散发给每一个轮密钥。
如果熵没有被很好地传播,就会产生各种麻烦,例如等价密钥、相关密钥以及其他类似的分别征服攻击(distinguishing attack)。
AES把128位的输入看作是一个由16个字节组成的向量,并用一个4 x4的列矩阵(big-endian)的形式来组织,叫做状态(state)。
即第1个字节映射为0.0A,第3个字节映射为0.3A,第4个字节为1.0A,第16个字节映射为3.3A,如图2-1所示。
图2-1 AES的状态示意图整个AES分组密码由下面的步骤组成:(1)AddRoundKey(round=0)(2)for round=1到Nr-1 (9、11或者13,这取决于密钥的大小)doSubBytesShiftRowsMixColumnsAddRoundKey(round)(3)SubBytes(4)ShiftRows(5)AddRoundKey(Nr)2.2 轮密钥加(AddRoundKey)轮函数的这一步是把轮密钥加到状态中(在GF(2)中)。
它执行了16个并行的把密钥加到状态中的运算。
GF(2)的加法是通过异或运算来完成的,如图2-2所示。