基于AES算法采用不同加密模式实现文件加解密
一、课题内容和要求
课题需求的文本描述。
对于安全的分组密码算法来说,采用适当的加密模式可隐藏明文的统计特性、数据的格式等,以提高整体的安全性。美国在FIPS中定义了5种加密模式:电子密码本(ECB)、密码分组链接(CBC)、计数器模式(CTS)、输出反馈(OFB)和密码反馈(CFB)。本题目致力于编写程序实现基于AES算法采用不同加密模式实现文件的加解密,使学生更深入地了解DES算法以及不同的加密模式的工作原理和应用,提升编程能力。
题目的具体要求如下:
- 查阅相关资料,深入理解AES算法的加解密流程和不同加密模式的运行方法;
- 自选两种模式,例如:使用分组链接模式、密码反馈模式,利用AES算法设计一个对文件进行加密和解密的程序,程序分为文件加密和文件解密两部分;
- 文件加密部分输入:待加密文件的路径和文件名,加密密钥,加密模式,输出是加密后的文件;文件解密部分的输入:待解密文件的路径和文件名,解密密钥,输出是解密后的文件。
- 要求解密后的文件与源文件一致;程序支持密钥修改等操作。
- 对两种模式的加解密效率进行比较。
- 程序具有图形化用户界面,输出美观;
- 可根据自己能力,在完成以上基本要求后,对程序功能进行适当扩充;
- 撰写报告,对所采用的算法、程序结构和主要函数过程以及关键变量进行详细的说明;对程序的调试过程所遇到的问题进行回顾和分析,对测试和运行结果进行分析;总结软件设计和实习的经验和体会,进一步改进的设想;
提供关键程序的清单、源程序及可执行文件和相关的软件说明。
二、需求分析和总体设计
2.1本课题的主要功能包括:
(1)使用电子密码本模式(ECB)和分组链接模式(CBC),利用AES算法对文件进行加密和解密的程序
(2)通过UI界面可以实现用户加密时可以使用检索本机文件的方式来确定需要加密的文件,同样可以检索加密后文件的路径。根据用户手动输入的文件名和加密密钥可以实现对文件的加解密。
(3)支持程序自动生成16位随机密钥供用户使用
(4)支持用户自己选择程序提供的两种加解密模式
(5)程序具有图形化界面,输出美观
(6)能在程序后台输出相关日志,便于调试
2.2 本课题的体系结构设计
体系结构风格:面向对象系统
此次课题中的程序使用java语言编写,jdk环境为8.0,采用调用-返回的结构,不同的功能封装在各个不同的类中