基于Misty1算法的加密软件(JAVA)的实现
摘 要
随着计算机网络及通信技术的飞速发展,信息安全成了信息社会急需解决的最重要的问题之一,密码技术是保证信息安全的核心技术。本文用JAVA语言开发了一个基于Misty1算法的加密软件,该软件能对文件进行加密和解密。在具体实现时,首先分析了Misty1算法的基本结构,设计出相应的实施方法,正确实现了该算法,其次,设计了一个图形用户界面,最后对软件进行了测试,验证了实现方法的正确性。
关键词:Misty1;JAVA;加密;解密 [资料来源:www.doc163.com]
The Implementation of Encryption Software (JAVA) Based on Misty1 Algorithm
Abstract
With the rapid development of computer networks technology and communication technology, Information security has become one of the most important problems urgent to resolve in information society, Cryptographic technology is the core technology to guarantee information security. In this paper, the software of encryption based on Misty1 algorithm is developed by using JAVA language. It can encrypt and decrypt a file. During the process of implementation, the basic structure of the algorithm is analyzed first and the counterpart method is designed, secondly, a GUI is designed, finally, the software is tested, the result shows that method of implementation is right.
Key words: Misty1; JAVA ; Encryption; Decrypt
Misty1算法应用于文件加密的分析
Misty1是对称密钥加密,也是分组密码。分组密码是将明文划分为固定度的数据组,然后以组为单位进行加密,分组密码优点是不需同步。实质是,设计一种算法,能在密钥控制下,把n比特明文简单而又迅速地置换成唯一n比特密文,并且这种变换是可逆的(解密)。设计思想:"扩散"将明文及密钥的影响尽可能迅速地散布到较多个输出的密文中(将明文冗余度分散到密文中)。产生扩散的最简单方法是通过"置换" (比如:重新排列字符)。"混淆"其目的在于使作用于明文的密钥和密文之间的关系复杂化,是明文和密文之间、密文和密钥之间的统计相关特性极小化,从而使统计分析攻击不能奏效。通常的方法是"代换(Substitution)"(比如恺撒密码)。分组密码设计的要求:1、分组长度足够大(64~128比特);2、密钥量要足够大(64~128);3、算法足够复杂(包括子密钥产生算法)4、加密、解密算法简单,易软、硬件实现5、便于分析(破译是困难的,但算法却简洁清晰)。所以把Misty1应用于文件加密是可行的。 [资料来源:http://www.doc163.com]
在对称密码技术中,其加密密钥和解密密钥相同。加密信息的安全性取决于密钥的安全性,与算法的安全性无关,即由密文和加解密算法不可能得到明文。换句话说算法无需保密,需保密的仅是密钥。对于带有重要信息的小型文本和二进制数据的维护,如果不加密,将无法放心的保存在计算机上,尤其是联网的或机房里的公共计算机;如果借助功能强大的大型多用户数据保护程序维护几个小型文件,显得十分烦琐,好比杀鸡用牛刀。
所以,对于使用小型文件进行数据交换的情况,更好的方案是通过一个小型应用程序对这些文件进行对称密钥加密。为了适合前面叙述的在公共BBS与特定的某人交流重要保密信息的情况,加密生成的数据应该是文本,这样可以方便复制粘贴。
[来源:http://www.doc163.com]