【Asp.net精品源码栏目提醒】:网学会员在Asp.net精品源码频道为大家收集整理了“毕业设计论文-基于C的文档加密器设计与实现(含代码) - 毕业设计“提供大家参考,希望对大家有所帮助!
基于 C的文档加密器设计与实现 【摘要】随着计算机和通信技术的迅猛发展,大量敏感信息通过公共通信设施或计算机网络进行交换,特别是 Internet 的广泛应用、电子商务和电子政务的迅速发展,越来越多的个人信息需要严格保密,如银行账号、个人隐私等。
正是这种对信息的机密性与真实性的需求,很有必要设计一个加密软件对其敏感信息加密。
一个好的加密工具能够让用户方便快捷对重要信息进行有效保护,从而大大降低了公司、个人的重要信息泄露的安全隐患,真正做到机密信息只供有权限的用户查阅。
本系统采用 C作为开发工具,系统主要功能包含:加密文件的密码设置、加密文件、解密密码的验证、解密文件等。
加密功能需要扩展的方面有:对网络数据流加密和解密;对数据打包封装,实现网络上使用密文传输;局部文本加密替换。
此外,密钥的分配必须通过安全的渠道进行传输,因为密钥的管理是关系到整个加密方案的重要安全因素。
【关键词】DES 加密器;C;文件加密;文件解密 The Implementation of a Document Encrypter Based on C Abstract: With the rapid development of the computer and communication technologies, large mount ofsensitive information are exchanged on the public communications facilities or computer networks. Especiallyunder the situation of the widespread of the Internet applications, such as E-commerce and E-government, moreand more information, such as bank account numbers, personal privacy, need to be encrypted. Suchrequirement for the secrecy and authenticity makes it necessary to develop an encrypter to encrypt the sensitiveinformation. This system, developed with
ASP.NET C , primarily includes such functions as setting the password of thedocument to be encrypted, encrypting the document, verifying the decryption password and decrypting thedocument. What needs to expand include encrypting and decrypting the network data or data on hosts packagingdata on the Internet and implementing encrypted transmission replacing partial text in encrypted document.Besides, keys need to be transmitted on the safety channel because key management is the critical safety factor ofthe entire document. Users can protect their important data and prevent the unauthenticated persons from stealingthe information by using the entrypter. Encryption is the key means to protect the important information, anddecryption is to restore the encrypted data to make it readable. Keywords: The DES encrypter C Document encryption the Document decryptio
精品文档 目 录引 言 ......................................................................................................................................... 11 绪论 ................................................................................................................. ………………2 1.1 国内外研究现状………………………………………………………………….........2 1.1.1 公钥密码………………………………………………………………………...2 1.1.2 分组密码…………………………………………………………………………2 1.1.3 数字签名………………………………………….……………………………..3 1.2 课题研究意义…………………………………………………………………………..4 1.3 课题研究方法…………………………………………….…...……………….……….42 系统开发环境及设计相关技术介绍 ............................................................... 4 2.1 DES 算法 4 2.2 算法比较 4 2.3 C 介绍 5 2.4 Visual Studio…………………………………………………………………………53 系统分析.............................................................................................................................. 6 3.1 可行性分析 6 3.2 需求分析 6 3.2.1 主要需求 6 3.2.2 系统设计目标 6 3.3 数据流图 84 系统概要设计 .................................................................................................................. 8 4.1 系统总体规划 8 4.2 功能模块设计 85 系统详细设计与实现 ................................................................................................. 9 5.1 DES 算法详述 9 5.2 主要功能模块详细设计96 系统测试............................................................................................................................ 16 6.1 测试原则 16 6.2 测试方法 16 6.3 测试计划 16 6.4 测试概述 167 结束语 ................................................................................................................................. 17致谢............................................................................................................................................. 18参考文献 ................................................................................................................................. 19科技外文文献 ...................................................................................................................... 20附录 A: 源程序代码 ...................................................................................................... 16附录 B: 系统使用说明书 ........................................................................................... 31
精品文档引 言 密码技术是信息安全技术的核心,它主要由密码编码技术和密码分析技术两个分支组成。
密码编码技术的主要任务是寻求产生安全性高的有效密码算法和协议, 以满足对消息进行加密或认证的要求。
密码分析技术的主要任务是破译密码或伪造认证信息, 实现窃取机密信息或进行诈骗破坏活动。
这两个分支既相互对立又相互依存,正是由于这种对立统一关系,才推动了密码学自身的发展。
目前人们将密码理论与技术分成两大类, 一类是基于数学的密码理论与技术,包括公钥密码、分组密码、序列密码、认证码、数字签名、Hash 函数、身份识别、密钥管理、PKI 技术、VPN 技术等;另一类是非数学的密码理论与技术,包括信息隐藏、量子密码、基于生物特征的识别理论与技术等。
第 1 页 共 40 页
精品文档1 绪论1.1 国内外研究的现状1.1.1 公钥密码 自从 1976 年公钥密码的思想提出以来,国际上已经提出了许多种公钥密码体制,如基于大整数因子分解问题的 RSA 体制和 Rabin 体制、基于有限域上的离散对数问题的Diffie-Hellman 公 钥 体 制 和 ElGamal 体 制 、 基 于 椭 圆 曲 线 上 的 离 散 对 数 问 题 的Diffie-Hellman 公钥体制和 ElGamal 体制、基于背包问题的 Merkle-Hellman 体制和Chor-Rivest 体制、基于代数编码理论的 Mealiest 体制、基于有限自动机理论的公钥体制等等。
目前比较流行的公钥密码体制主要有两类: 一类是基于大整数因子分解问题的, 其中最典型的代表是 RSA 体制。
另一类是基于离散对数问题的,如 ElGamal 公钥密码体制和影响比 较大的椭圆曲线公钥密码体制。
由于分解大整数的能力日益增强,因此为保证 RSA 体制的安全性总是要增加模长。
目前 768bit 模长的 RSA 体制已不安全。
一般建议使用 1024bit模长, 预计要保证 20 年的安全性就要选择 2048bit 的模长, 增大模长带来了实现上的难度。
而基于离散对数问题的公钥密码在目前技术下 512bit 模长就能够保证其安全性。
特别是椭圆曲线上的离散对数的计算要比有限域上的离散对数的计算更困难,目前技术下只需要160bit 模长即可保证其安全性,适合于智能卡的实现,因而受到国际上的广泛关注。
国际上制定了椭圆曲线公钥密码标准 IEEEP1363。
目前,公钥密码的重点研究方向为: 1)针对实际应用环境的公钥密码的设计; 2)公钥密码的快速实现研究,包括算法优化和程序优化、软件实现和硬件实现; 3)公钥密码的安全性评估问题,特别是椭圆曲线公钥密码的安全性评估问题1.1.2 分组密码 美国国家标准技术研究所( NIST)在 1997 年 1 月 2 日正式宣布了 NIST 计划,该计划公开征集和评估新的候选标准,新的标准称之为 AES。
作为进入 AES 程序的一个条件,开发者必须承诺放弃被选中算法的知识产权。
许多个人和公司积极响应,到 1998 年 8 月 20日,NIST 指定了 15 个候选者。
1999 年 8 月,NIST 从中筛选出 5 个候选者。
人们为了比较出最终算法发表了许多论文,公布了大量的统计数据,每个算法都有它的优点和弱点。
在2000 年 10 月 2 日,NIST 宣布获胜者为一个称之为 Rijndael 的算法,这是比利时学者Vince nt Rijmen 和 Joan Daemen 发明的。
2001 年 11 月 26 日,NIST 正式公布了新标准AES,其编号为 FIPS PUBS197。
如同 DES 一样,人们期望 AES 也能成为世界性的标准。
预期过不了多久,只要有人有密码系统,就肯定有 AES。
AES 活动使得国际上又掀起了一次研究分组密码的新高潮。
继美国征集 AES 活动之后。
欧洲(称之为 Nessie 计划)和日本也不甘落后启动了相关标准的征集和制定,这些计划看起来比美国的计划更宏伟。
同时美国等一些国家为适应技术发展的需求也加快了其他密码标准的更新,比如 SHA-1 和 FIPS140-1。
我国在国家“863”计划中也将制定密码的标准化问题列入了议程。
目前,分组密码的重点研究方向为: 1)新型分组密码的研究; 2)分组密码安全性综合评估原理与准则的研究; 3)分组密码的实现研究,包括软件优化、硬件实现和专用芯片等; 4)用于设计分组密码的各种组件的研究; 5)AES 的分析及其应用研究。
第 2 页 共 40 页
精品文档1.1.3 数字签名 数字签名技术即进行身份认证的技术。
在数字化文档上的数字签名类似于纸张上的手写签名,是不可伪造的。
接收者能够验证文档确实来自签名者,并且签名后文档没有被修改过,从而保证信息的真实性和完整性。
在指挥自动化系统中,数字签名技术可用于安全地传送作战指挥命令和文件。
完善的签名应满足以下三个条件: 1.签名者事后不能抵赖自己的签名; 2.任何其它人不能伪造签名; 3.如果当事人双方关于签名的真伪发生争执,能够在公正的仲裁者面前通过验证签名来确认其真伪1.2.课题研究意义 古往今来,通信中的安全保密问题一直受到广泛关注。
历史上,交战双方在通信安全、保密和密码破译方面的优势均被认为是取得战争胜利的关键因素之一。
今天,人类已进入信息化 时代,现代通信涉及各个行业,信息安全已成为人人都关心的问题,这就促使密码学揭去了神秘的面纱,为更广泛的领域和大众服务。
1.3 课题研究方法 综合了加密方案的具体需求,选用 C作为开发工具、使用 DES 作为数据加密算法,这种加密算法加密速度快,适合对大量数据文件的加密。
通过 C开发的软件是个伪可执行程序,只要该用户安装有开发相同的环境,就可以直接运行。
软件工程开发方法,在经过深入地学习之后,开发了基于 C的 DES 加密器。
第 3 页 共 40 页
精品文档2 系统开发环境及相关技术介绍2.1 DES算法 美国早在1977 年就制定了自己的数据加密标准—DES。
随着DES 的出现,人们对分组 密码展开了深入的研究和讨论。
现已有大量的分组密码,如DES 的各种变形、IDEA 算法、 SAFER 系列算法、RC 系列算法、Skipjack 算法、Rijndael 算法、FEAL 系列算法、REDOC 系列算法、 LOKI 系列算法,CAST 系列算法、Khufu、Khafre、MMB、3-WAY、TEA、MacGuffin、 SHARK、BEAR、LION、CA.1.1、CRAB、Blowfish、GOST、SQUARE、MISTY,等等。
用抽象的观点来看,分组密码就是一种满足下列条件的映射E: mKm F S F 2 2 . ′ : 对每个k.SK, E , k是从m F2 到m F2 的一个置换。
可见,设计分组密码的问题在 于找到 一种算法, 能在密钥控制下从一个足够大且足够“好”的置换子集合中,简单而迅 速地选出一个置换。
一个好的分组密码应该是既难破译又容易实现, 即加密函数E , k 和解密函数D , k都必须容易计算,但是至少要从方程yE x, k或xD y, k 中求出密钥k 应该是一个困难问题。
DES 是一种分组加密算法,他以 64 位为分组对数据加密。
64 位一组的明文从算法的一端 输入,64 位的密文从另一端输出。
DES 是一个对称算法:加密和解密用的是同一个算法(除 密钥编排不同以外)。
密钥的长度为 56 位。
密钥可以是任意的 56 位数,且可以在任意的时候改变。
DES 算法的入口参数有 3 个:Key,Data,Mode。
其中 Key 为 8 个字节共 64 位,是 DES算法 的工作密钥;Data 也为 8 个字节 64 位,是要被加密或解密的数据:Mode 为 DES 的工作方式,有两种:加密或解密。
DES 算法的工作过程:若 Mode 为加密,则用 Key 对数据Data 进行加密,生成 Data 的密码 形式(64 位)作为 DES 的输出结果;若 Mode 为解密,则用 Key 对密码形式的数据 Data 解密,还 原为 Data 的明码形式(64 位)作为 DES 的输出结果。
在通信网络的两端,双方约定了一致的 Key,在通信的源点用 Key 对核心数据进行 DES加密 ,然后以密码形式通过公共通信网(如电话网)传输到通信网络的终点,数据达到目的 地后,用同样的 Key 对密码数据进行解密,便再现了明码形式的核心数据。
这样便保证了核 心数据(如 PIN,MAC 等)在公共通信网中传输的安全性和可靠性。
通过定期在通信网络的源 端和目的端同时改用新的 Key,便能更进一步提高数据的保密性,这正是现在金融界交易网 络的流行作法。
简单地说,算法只不过是加密的一种基本技术,DES 基本组建分组是这些技术的一种组合 ,他基于密钥作用于明文,这是众所周知的轮(round)。
DES 有 16 轮,这意味着要在明文分组上 16 次实施相同的组合技术。
2.2 算法比较 RSA 的优点:A)用户可以把公开钥匙发表或刊登出来,使得陌生人之间可以互发保密的通信;B)公开密钥密码系统提供了数字签字的公开鉴定系统,而这是对称密码系统不具备的。
RSA 的缺点主要有:A产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
B分组长度太大,为保证安全性,n 至少也要 600 bits 以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。
DES 的优点:A加密速度快,适合加密较长的报文 DES 的缺点:A)多人通信时密钥的组合的数量会出现爆炸性的膨胀。
B)信双方必须事先统一密钥,才能发送保密的信息。
2.3 C介绍 C是一种面向对象的编程语言,它将作为 Visual Studio 中的一部分推出。
C(发音为 第 4 页 共 40 页
精品文档“C-Sharp”)既保持了 C中熟悉的语法,并且还包含了大量的高效代码和面向对象特性。
据微软产品经理透露,C语言将在保持 C/C灵活性的基础上为程序员带来更高效的 RAD开发方式。
它不仅能用于 WEB 服务程序的开发,并且还能开发强大的系统级程序。
它是面向对象的语言,通过 C可以让开发人员快速的建立大范围的基于 MS 网络平台的应用,并且提供大量的开发工具和服务帮助开发人员开发基于计算和通信的各种应用。
由于 C是一种面向对象的开发语言,所以 C可以大范围的适用于高层商业应用和底层系统的开发。
即使是通过简单的 C构造也可以各种组件方便的转变为基于 WEB 的应用,并且能够通过 Internet 被各种系统或是其他开发语言所开发的应用调用。
即使抛开上面所提到的优点,C也可以为 C/C开发人员提供快速的开发手段而不需要牺牲任何 C/C语言的特点/优点。
从继承角度来看,C在更高层次上重新实现了 C/C,熟悉 C/C开发的人员可以很快的转变为 C开发人员。
目前的各种基于 WEB 应用的软件开发向传统的商业应用软件开发提出了挑战,开发者被组织起来开发具有更短开发周期的各种应用,并且需要能够提供更好的可修正性,而不是建立一个可以长久使用的软件系统。
C的设计正是充分考虑了这些因素。
C会帮助开发者通过更少的代码完成相同的功能,并且能够更好的避免错误发生。
新的开发模式意味着需要更好的利用现有的各种 WEB 标准,例如 HTML,XML,SOAP(简 。
现存的开发工具是在 Internet 出现前或是未得到充分应用前出现的,所以单对象存取协议)都不能很好的适应目前 WEB 技术的开发需要。
C开发者可以方便的在 M网络平台上扩展自己的应用。
C可以将任何组件转变为 WEB 服务,并且可以被运行于 Internet 上的任何平台的任何应用调用,重要的是 C对这一特性提供了内置的支持。
更重要的一点,WEB 服务框架可以让任何 WEB 服务都看起来类似于 C的内置对象,所以可以让开发人员在开发过程中继续使用他们已经具备的面向对象的开发方法和技巧。
2.4 Visual Studio Visual Studio 是一套完整的开发工具集,用于生成
ASP.NET Web 应用程序、XMLWeb Services、桌面应用程序和移动应用程序。
Visual Basic、Visual C、Visual C和 Visual J 全都使用相同的集成开发环境 IDE,利用此 IDE 可以共享工具且有助于创建混合语言解决方案。
另外,这些语言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。
VS 功能: VS 可以自动执行编译源代码的步骤,同时可以完全控制重写它们时应使用的任何选项。
VS 文本编辑器可以配合 VS 支持的语言(C) ,这样就可以智能检测错误,在输入代码时给出合适的推荐代码。
VS 包括 Windows Form 和 Web Forms 设计器,允许 UI 元素的简单拖放设计。
在 C中,许多类型的项目都可以用已有的“模板”代码来创建,不需要从头开始。
各种代码文件通常已经为我们准备好了,减少了从头开始一个项目所花时间。
VS 包含许多强大的工具,可以显示和导航项目中的元素,这些元素可以是 C源文件代码,也可以是其他资源,例如位图文件或声音文件。
VS 包括几个可以自动执行常用任务向导,它们可以在已有的文件中添加合适的代码,而不需要考虑语法正确性。
除了在 VS 中编写应用程序比较简单外,还可以创建部署项目,以易于为客户提供代码,并方便安装项目。
第 5 页 共 40 页
精品文档3 系统分析3.1 可行性分析 可行性分析对系统的开发至关重要,可以减少不必要的损失,保证系统开发的顺利进行。
因此要对系统进行技术可行性、经济可行性两个方面的可行性分析。
1)技术可行性 随着计算机和通讯技术的高速发展,大量敏感信息都需要经过加密后才可传递, 从而防止信息被窃取。
另外,密码学的迅猛发展为加密技术提供理论基础,同时系统开发的技术和手段也都比较发展较成熟,各类软件开发工具也比较多,开发技术难度不太大,为整体系统的开发打下坚实的基础。
2)经济可行性 通过加密系统确保敏感信息在传递过程中的安全问题,是以较小的耗费确保个人信息,银行帐户、企业经济机密等信息安全。
以较小的耗费确保经济、技术安全。
3)结论 通过经济、技术两个方面的可行性分析,我认为,加密技术已经越来越被人重视,而且也在不断的普及,文档加密系统的开发是非常有必要的,而且也是可行的,具有一定的使用价值。
3.2 需求分析3.2.1 主要需求 “文档加密系统”主要实现: 根据各类用户的实际要求, 1)加密文件的密码设置:对密码位数不够、两次密码不匹配发出警告。
2)加密文件:对所选取的明文进行.