毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机安全 >> 正文

vc++基于Misty1算法的加密软件设计+源码 第3页

更新时间:2010-7-12:  来源:毕业论文
vc++基于Misty1算法的加密软件设计+源码 第3页
1.3 本课题研究的意义
(1)加密算法标准化的需要
标准化是工业社会的一个基本概念,它意味着生产规模化、降低成本、方便文修和更换为了实现非相关团体之间的保密通信,加密体制的标准化是必要的。分组密码由于其固有特点,已经成为标准化进程的首选体制。1977年美国国家标准局颁布了联邦信息处理标准DES 以保护非机密信息在存储和传输过程中免受未经授权的篡改或泄露。此后,DES作为数据加密的工业标准,得到了IBM等计算机制造厂商的大力支持,并陆续被其他组织机构所采.1979年美国银行家协会批准使用DES,1980年DES又成为美国标准化协会(ANSI)的标准。继而,DES也受到国际标准化组织(ISO)的关注,l984年成立的数据加密技术委员会SC20准备在DES基础上制定数据加密的国际标准。尽管DES是目前世界上使用最广和最成功的算法,但是它的56比特密钥对今天的许多安全应用已太短了,三重DES作为临时的解决方案已出现在许多像银行这类安全性高的应用中,但是对于某些应用,它的加密速度太慢。最根本的是,当同一密钥加密大量数据时,DES的64比特分组长度为密码攻击开了方便之门。正是由于这些原因1997年4 月15日美国国家标准技术研究所(NIST)发起征集AE5(Advanced Encryption Standard)算法的活动,并专门成立了AES工作组,目的是为了确定一个非保密的、公开披露的、全球免费使用的分组密码算法,用于保护下一世纪政府的敏感信息,也希望AES能够成为秘密和公开部门的数据加密标准。   
 (2)加密算法本土化的需要
信息安全的最大特点之一是自主性,因而其核心技术——密码学的研究与开发应当是一种本土性的科学。对于有些产品,可以通过外方引进来解决由于技术落后而带来的问题。然而对于安全产品,除非能完全确信它在硬件和软件上没有陷门,否则,贸然使用可能带来不可预测的后果。而要做到软硬件上的确认通常是十分困难的。因此,最明智的方法是依靠自己的力量并汲取现有的先进经验进行研究、设计和开发。
(3)官方组织文护通信和社会安全的需要
为了文护通信安全、打击犯罪,1993年4月,美国政府宣布了一项新的建议,该建议倡导联邦政府和工业界使用新的具有密钥托管功能的联邦加密标准。该建议称为托管加密标准(escrowed encryption standard,EES),又称C1ipper建议。其目的是为用本文来自辣文论文网原文请找QQ752018766户提供更好的安全通信方式,同时允许政府机构在必要情况下进行监听。EES系统中嵌入了分组加密算法Sk -ipjack,尽管目前对该系统和算法有许多争议,但从文护国家通信安全的角度,这项建议是有积极意义的。
(4)多级安全的需要
在区域通信系统中,用户较多,他们的地位、作用都不相同,所流通的信息的重要性也不可能完全相同,因此他们要求得到的安全保护等级也不应该相同。由此可见,研究多安全级密码算法非常必要。迭代分组密码(所谓选代分组密码就是以迭代一个简单的轮函数为基础的密码,即通过选择某个较简单的密码变换,在密钥控制下以迭代方式多次利用它进行加密变换,例如Feistel型密码就是一种选代密码,是分组密码的典型代表,其数学思想简单而灵巧。特别是在相同的轮函数之下,迭代次数的不同即代表了安全强度的不同级别。
(5)网络安全通信的需要
在Internet/Intranet中随着通信量和业务种类的增加,对安全认证和保密业务的需求日益迫切。比如,PGP(Pretty Good Privacy)就是一种广泛应用于Internet中E-mail系统的一种安全技术方案,它也可以用于其他网络中。PGP的安全业务包括机密性、认证性、不可抵赖性等,其中的机密性就是利用分组密码算法IDEA来保证的。另外,分组密码的工作模式可提供一些人们所需要的其他密码技术,比如流密码技术和杂凑技术等。
1.4  实验环境和预期结果
基于WINDOWS XP 平台Visual C++6.0编程和MFC库的应用。使用C++语言进行程序编译,实现MISTY1算法的编译;使用MFC编程实现文件(文本文件或BMP文件)的加密,以及加解密正确性的演示。
2 MISTY1算法的描述及用于文件加密的意义
2.1 MISTY1毕业论文http://www.751com.cn算法的描述和应用
MISTY1算法是用128位密钥对64位数据进行不确定轮数的加密。它在设计时就采用了经证实可以抵抗密码差分分析和线形分析的安全理论,而且它实现了在硬件环境和软件环境下都比较高的加密速度。算法可以分为两部分,一部分是密钥的产生部分,另一部分是数据随机化部分。密钥产生部分根据128位的输入密钥,产生128位的扩展密钥。数据随机化部分输入64位的数据进行混合,也就是所谓的加密。
2.1.1 密钥产生部分
如图1所示:K为输入密钥,K是128位,K’为扩展密钥,扩展密钥是由函数FI从K’1,... K’8中产生,并存储在K’9,..., K’16中。首先把K分为八份,Ki,1≤i≤8,每个的长度为16位;然后Ki和Ki+1输入到函数FI中。FI模的输出是16位的K’i, 1≤i≤8,K9=K1:
 
图1  密钥扩展
K=K1‖K2‖K3‖K4‖K5‖K6‖K7‖K8
For i=1 to 8 do
K’i=FI(Ki,Ki+1)
K’= K’1‖K’2‖K’3‖K’4‖K’5‖K’6‖K’7‖K’8
2.1.2 数据随机化部分
数据随机化部分使用了两种函数,FO和FL,函数FO调用函数FI。密钥扩展部分也使用函数FI。FI函数使用两个S盒,S7和S9。算法描述,使用了一些运算符。+表示两个元素的相加,*表示乘。/表示取相除的商,%表示取余数。&表示按位进行与运算。|表示按位进行或运算。^表示按位进行异或运算。<<表示逐位左移运算,>>表示逐位右移运算。下面对每个函数进行描述:
1.FL函数
函数FL用于加密。它包含一个32位的输入数据X32和一个32比特的子密钥KLi,将X32分为两个16位即XL和XR,子密钥KLi被分为16比特的左右两个子密钥,KLil和KLir,返回一个32位的数据Y32,具体操作如图2所示:
图2  FL函数
FL的输入为:
X32 = XL‖XR
KLi = KLiL‖KLIr
FL的功能为:
YR = (XL& KLiL) ^XR
YL = (YR| KLIr)^XL
则输出:Y32= YL‖YR
2.FL-1函数
FL-1函数是逆向的FL函数,用于解密。它将32位的输入Y32分为两个16位的YL和YR,与子密钥KLi进行位运算,具体操作由图3所示,返回一个X32

上一页  [1] [2] [3] [4] [5] [6] 下一页

vc++基于Misty1算法的加密软件设计+源码 第3页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。