基于C#的加密系统的设计与实现

基于C#的加密系统的设计与实现

ID:39474183

大小:439.54 KB

页数:4页

时间:2019-07-04

基于C#的加密系统的设计与实现_第1页
基于C#的加密系统的设计与实现_第2页
基于C#的加密系统的设计与实现_第3页
基于C#的加密系统的设计与实现_第4页
资源描述:

《基于C#的加密系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于C#的加密系统的设计与实现摘要:对SHA,DES,MD5等算法的加密过程进行分析,在此基础上利用C#语言实现算法。实现对字符串的加密和解密,并实现对TXT文本的加密和解密。关键字:C#,WinForm,加密,解密0引言加密算法的理论与实现研究是信息安全研究的基础,如果从数学的角度来看加密算法的话,我们可以用一个函数变换C=F(M,Key)来表示。其中C是加密后获得的字符序列,表示密文;M是待加密的字符序列,代表明文;Key就是密钥,指代的是一个秘密选定的字符序列。如果想要得到明文信息,只能是有解密密钥的收信人对密文进行解密。加密算法包括很多内容,不过它的核心是密码技术。通常我们又把

2、密码技术称为密码学,它是结合诸多学科于一身的交叉学科,比如数学、电子通讯学、计算机科学等等。密码技术除了有对信息加密的功能外,还具有维护系统安全、身份验证、数字签名等功能。1加密算法分析1.1SHA算法安全哈希算法(SecureHashAlgorithm)主要适用于数字签名标准(DigitalSignatureStandardDSS)里面定义的数字签名算法(DigitalSignatureAlgorithmDSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时

3、候就会产生不同的消息摘要。1.2MD5算法MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余数的结果等于448。因此,信息的字节长度(BitsLength)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后再在这个结果后面附加一个以64位二进制表示的填充前的信息长

4、度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍数。这样做的原因是为满足后面处理中对信息长度的要求。MD5中有四32位被称作链接变量(ChainingVariable)的整数参数,他们分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。当设置好这四个链接变量后,就开始进入算法的四轮循环运算,循环的次数是信息中512位信息分组的数目。将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。主循环有四轮(MD4只有三轮),每轮循环都很相似。第一轮进行

5、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和

6、D的级联。最后得到的A,B,C,D就是输出结果,A是低位,D为高位,DCBA组成128位输出结果。1.3DES算法DES(DataEncryptionAlgorithm,DEA)的数据加密标准(DataEncryptionStandard,DES)是规范的描述,它出自IBM的研究工作,并在1997年被美国政府正式采纳。它很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DES是嵌入硬件中的。通常,自动取款机(AutomatedTellerMachine,ATM)都使用DES。DES使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64位的分组大小。这是一个迭代的

7、分组密码,使用称为Feistel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环。攻击DES的主要形式被称为蛮力的或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果DES使用56位的密钥,则可能的密钥数量是2的56次方个。随着计算机系统能力的不断发展,DES的安全性比它刚出现时会弱得多,然而从非关键性质

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。