本项目为重庆大学信息安全导论课程的 Project,扩展SAES加密是一个交互式Java应用程序,为基于简化高级加密标准(SAES)的加密操作提供了一个用户友好的图形界面。这个教育工具扩展了基本的SAES实现,支持更复杂的操作,如双重和三重加密,同时实现了中间相遇攻击和CBC加解密。
- 使用16位二进制密钥进行加密和解密。
- 提供了清晰的界面来输入密钥和文本,并显示输出结果。
- 通过将32位二进制密钥分成两个16位密钥来实现双重加密。本项目采用两次加密的方式。
- 密钥的每一半在两个连续的加密操作中使用。
- 解密过程使用相同的密钥反转加密步骤。
- 使用三个独立的16位密钥扩展到三层加密过程。
- 该过程涉及三个顺序的加密或解密操作。
- 通过多重加密阶段提高了安全性。
- 使用已知的明文-密文对分析和模拟中途相遇攻击。
- 攻击尝试找到导致已知密文的密钥对。
- 实现CBC模式,该模式链接明文和密文块,提高安全性。
- 支持输入初始化向量(IV)进行解密操作。
- 提供了生成随机IV的方法进行加密。
- Java开发工具包(JDK)8或更高版本。
- Java运行环境(JRE)8或更高版本。
要启动应用程序,请执行主类UI
从您的Java运行环境。将会显示带有多个功能标签的应用程序窗口。
应用程序中的每个标签对应一个功能:
结果一致,通过验证。
2.双重加密
使用本项目进行加密,使用对方项目进行解密,可得到原始的明文,通过验证。
3.三重验证
由于两组使用的实现方法不同,无法验证。
我们鼓励您对扩展SAES加密UI的功能进行增强和扩展。请fork项目,进行更改,并提交带有清晰修改描述的pull请求。