项目说明报告
基于 Misty1 算法的加密软件(Java)的实现
随着计算机网络及通信技术的飞速发展,信息安全成了信息社会急需解决的
最重要的问题之一,密码技术是保证信息安全的核心技术。本文用 JAVA 语言开
发了一个基于 Misty1 算法的加密软件,该软件能对文件进行加密和解密。在具
体实现时,首先分析了 Misty1 算法的基本结构,设计出相应的实施方法,正确
实现了该算法,其次,设计了一个图形用户界面,最后对软件进行了测试,验证
了实现方法的正确性。
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
目 录
论文总页数:24 页
1 引言............................................................................................................................................1
1.1 课题背景............................................................................................................................1
1.2 国内外研究现状................................................................................................................1
1.3 本课题研究的意义............................................................................................................2
1.4 本课题的研究方法............................................................................................................3
2 MISTY1 算法描述.......................................................................................................................3
2.1 秘钥产生部分....................................................................................................................3
2.2 数据随机化部分................................................................................................................4
2.3 函数描述............................................................................................................................4
2.3.1 FI 函数.......................................................................................................................4
2.3.2 FO 函数.......................................................................................................................5
2.3.3 FL 函数.......................................................................................................................7
2.3.4 FL
-1
函数 ....................................................................................................................8
3 MISTY1 加密软件的设计与实现...............................................................................................9
3.1 工作环境介绍....................................................................................................................9
3.2 JAVA 及程序编辑工具介绍................................................................................................9
3.2.1 Java 介绍...................................................................................................................9
3.2.2 程序编辑工具介绍..................................................................................................10
3.3 MISTY1 算法应用于文件加密的分析 ..............................................................................12
3.4 MISTY1 算法的实现 ..........................................................................................................13
3.4.1 加密..........................................................................................................................13
3.4.2 解密..........................................................................................................................15
3.5 设计流程图、图形界面及事件处理..............................................................................18
3.5.1 加密/解密流程图....................................................................................................18
3.5.2 图形界面..................................................................................................................18
3.5.3 处理按钮事件..........................................................................................................20
4 程序演示..................................................................................................................................21
4.1 程序演示..........................................................................................................................21
4.2 结果及存在的问题..........................................................................................................21
结 论..........................................................................................................................................22
参考文献..........................................................................................................................................22
致 谢..........................................................................................................................................23
声 明..........................................................................................................................................24
第 1 页 共 24 页
1 引言
1.1 课题背景
现代密码学是一门迅速发展的应用科学。随着因特网的迅速普及,人们依靠
它传送大量的信息,但是这些信息在网络上的传输都是公开的。因此,对于关系
到个人利益的信息必须经过加密之后才可以在网上传送,这将离不开现代密码技
术。
Misty1 算法是在 1996 年公布的,它是一个分组密码算法,密钥长度是 128
位,明文长度是 64 位。它是由在三菱工作的 Eisaku Takeda 提交给 NESSIE。
MISTY1 可以在资源紧张的环境下实现。整个算法是由递归等组成,每一个层次
的结构又一稳妥的 Feistel 结构。MISTY1 是一迭代密码可以迭代超过 8 轮,或
者更普遍,迭代 4 回。它用 128 位密钥对 64 位数据进行不确定轮回的加密。它
采用了两个 S -盒,一个 7 × 7 S-盒,s7 ,一个 9 × 9 S-盒,s9。它取得了
良好的良好的阻力线和鉴别攻击,而且还使能实行以相对较少的逻辑组件中执行
函数的程度相对较低。
1.2 国内外研究现状
随着我国对计算机的普及,计算机和通信技术已经在我国得到了广泛发展及
应用,从而使我们对信息的安全存储、安全处理和安全传输的需要越来越迫切。
特别在 Internet 的应用中,以及个人通信、个人电子身份证、办公自动化,电
子邮件、电子自动转帐支付系统和自动零售业务网的建立与实现,信息的安全保
护问题已经显得十分突出,而能够解决这一问题的一个有效手段就是使用现代密
码技术。
美国早在 1977 年就制定了本国的数据加密标准,即 DES。随着 DES 的出现,
人们对分组密码展开了深入的研究和讨论,已有大量的分组密码,如 DES 的各种
变形、IDEA 算法、SAFER 系列算法、RC 系列算法、Skipjack 算法、FEAL 系列算
法 、 REDOC 系 列 算 法 、 CAST 系 列 算 法 Khufu, KhafreMMB, 3-WAY, TEA,
Blowfish,GOST,SQUARE,MISTY,Rijndael 算法和 AES15 种候选算法(第一轮),
另有 NESSIE17 种候选算法(第一轮)等。
目前分组密码所采用的整体结构可分为 Feistel 结构(例如 CAST—256、
DEAL、DFC、E2 等)、SP 网络(例如 Safer+、Serpent 等)及其他密码结构(例
如 Frog 和 HPC)。加解密相似是 Feistel 型密码的一个实现优点,但它在密码
的扩散似乎有些慢,例如需要两轮才能改变输入的每一个比特。SP 的网络结构
非常清晰,S 一般被称为混淆层,主要起混淆作用。P 一般被称为扩散层,主要
起扩散作用。在明确 S 和 P 的某些密码指标后,设计者能估计 SP 型密码抵抗差