




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于C#的加密系统的设计与实现摘要:对SHA,DES,MD5等算法的加密过程进行分析,在此基础上利用C#语言实现算法。实现对字符串的加密和解密,并实现对TXT文本的加密和解密。关键字:C#,WinForm,加密,解密0 引言加密算法的理论与实现研究是信息安全研究的基础,如果从数学的角度来看加密算法的话,我们可以用一个函数变换C=F(M,Key)来表示。其中C是加密后获得的字符序列,表示密文;M是待加密的字符序列,代表明文;Key就是密钥,指代的是一个秘密选定的字符序列。如果想要得到明文信息,只能是有解密密钥的收信人对密文进行解密。加密算法包括很多内容,不过它的核心是密码技术。通常我们又把密码技术称为密码学,它是结合诸多学科于一身的交叉学科,比如数学、电子通讯学、计算机科学等等。密码技术除了有对信息加密的功能外,还具有维护系统安全、身份验证、数字签名等功能。1 加密算法分析1.1 SHA算法安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于264位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。 1.2 MD5算法MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余数的结果等于448。因此,信息的字节长度(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后再在这个结果后面附加一个以64位二进制表示的填充前的信息长度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍数。这样做的原因是为满足后面处理中对信息长度的要求。MD5中有四32位被称作链接变量(Chaining Variable)的整数参数,他们分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。当设置好这四个链接变量后,就开始进入算法的四轮循环运算,循环的次数是信息中512位信息分组的数目。将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。 主循环有四轮(MD4只有三轮),每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量(文本中的一个子分组和一个常数)。再将所得结果向右环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。 以一下是每次操作中用到的四个非线性函数(每轮一个)。其中,是异或,是与,是或,是反符号。如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。F是一个逐位运算的函数。即,如果X,那么Y,否则Z。函数H是逐位奇偶操作符。所有这些完成之后,将A,B,C,D分别加上a,b,c,d。然后用下一分组数据继续运行算法,最后的输出是A,B,C和D的级联。最后得到的A,B,C,D就是输出结果,A是低位,D为高位,DCBA组成128位输出结果。1.3 DES算法DES(Data Encryption Algorithm,DEA)的数据加密标准(Data Encryption Standard,DES)是规范的描述,它出自 IBM 的研究工作,并在 1997 年被美国政府正式采纳。它很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的 DES 是嵌入硬 件中的。通常,自动取款机(Automated Teller Machine,ATM)都使用DES。DES使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64位的分组大小。这是一个迭代的分组密码,使用称为Feistel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环。 攻击DES的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果DES使用56位的密钥,则可能的密钥数量是2的56 次方个。随着计算机系统能力的不断发展,DES的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。不过,DES现在仅用于旧系统的鉴定,而更多地选择新的加密标准高级加密标准(Advanced Encryption Standard,AES)。DES的工作原理为:将明文分割成许多64位大小的块,每个块用64位密钥进行加密,实际上,密钥由56位数据位和8位奇偶校验位组成,因此只有256个可能的密码而不是264个。每块先用初始置换方法进行加密,再连续进行16次复杂的替换,最后再对其施用初始置换的逆。第i步的替换并不是直接利用原始的密钥K,而是由K与i计算出的密钥Ki。DES具有这样的特性,其解密算法与加密算法相同,除了密钥Ki的施加顺序相反以外。该方法基于下面的两个事实:1)已有确定的一个数是不是质数的快速算法;2)尚未找到确定的一个合数的质因子的快速算法。2 系统设计系统使用C#语言实现,采用C/S模式,客户端运用WinForm控件元素,形成比较友好的图形化界面。如图1所示,后台数据库采用SQLServer实现,形成典型的前后端模式。学生操作客户端进行密码算法流程验证,教师使用后台维护管理,负责数据的修改与传送。图1功能结构采用层次化架构,用户经过身份验证进入主界面,通过对特定算法的选择,用户进入算法验证界面,这也是此系统的核心部分。其中各个算法界面功能相互独立,并且各界面保持良好的易懂易用性。另外,此系统也充分考虑了运行时异常,保证了在非法数据输入情况下的良好运行。系统在Fuzz模糊测试下顺利通过,运行良好。3 系统运行实例3.1 系统主页面身份验证登录后,进入系统主页面,从而选择各个加密算法。3.2 DES算法测试采用DES算法对txt文本内容进行加密,输入时会提示用户浏览文件,输入密码,由密码产生密钥进行加密,解密。4 总结本文主要是对现代密码学基础算法理论深入研究的基础上,论述了一种沟通理论与实践的基于C/S的经典密码算法验证系统,可视化的UI使得系统具有良好的交互性。用户通过客户端图像化操作,可以细致了解密码算法的加密解密流程,下一步须要丰富算法模块,使其形成密码学整体实践验证体系。参考文献1 蔡家楣,刘多等.神经网络密码学研究综述J,计算机应用,2007,27(81), 219-222
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合约管理部门岗位职责与流程
- 年度教师工作总结和反思范文
- 建筑悬挑脚手架安全监测记录
- 合同法课件讲义培训
- 加强企业值班管理工作通知范本
- 初中数学几何问题解题技巧集
- 智能制造技术应用与趋势分析
- 城市绿化带栽植及维护方案解析
- 高效能领导力培养与团队建设
- 运营管理月度工作汇报模板
- 客诉奖惩管理办法
- 2025年度国务院国资委干部教育培训中心招聘(2人)笔试备考试题及答案详解(历年真题)
- 2025司法协理员考试模拟题及答案
- 2025年北京市家庭居室装修工程施工合同
- 事业法人登记管理办法
- 承装修试许可证管理办法
- 2025楼宇平方效益评价规范
- 术后并发症护理
- 第9课《天上有颗“南仁东星”》课件 2025-2026学年统编版八年级语文上册
- 粪污清运服务管理制度
- 医疗机构动火管理制度
评论
0/150
提交评论