《信息安全工程技术应用》课程设计报告
《信息安全工程技术应用》课程设计报告
自适应安全报文工具
小组成员姓名:
20191303姜淳译
20191309刘嘉祺
20191322吴泳淋
指导教师: 娄嘉鹏
提交时间:2022年1月6日
*一、设计方案与可行性分析*
*1、任务要求*
1)用最新的visual studio 下使用C语言在完成自适应安全报文工具基础框架的编写,包括相关加解密算法等内容,在windows下跑通;
2)同样的内容,密码算法换成国密算法,通过QT制作出UI界面在openEuler上跑通。
*2、设计方案*
1)客户端使用加密算法对输入内容进行加密;
2)服务器使用将密文解密并输出解密得到的明文;
3)在openEuler系统下完成QT程序安装后,进行UI界面设计;
4)将经过改写的C语言代码改写为C++代码,结合UI界面完成整体流程。
*3、可行性分析*
1)此次课程设计可在无证书条件下进行,与书中Java代码相比,可以减少签名与验签部分的实现环节;
2)所使用的算法均为公开算法,网络上存在许多资源,结合已有的算法代码资源,可减少算法实现环节工作量;
3)VS studio与 QT均是经过多年使用且集成化程度较高的程序设计工具与界面设计工具,所能出现的问题大多能经过网络查询解决,为从零开始学习QT以及成功实现整个项目提供了很大帮助。
*二、详细设计思路*
*1、系统体系结构*
操作系统:openeuler
程序设计工具:VS studio community 2022与QT creator
选用算法:openssl sm4算法 QTlmada语法 DH算法
*2、说明程序中用到的关键数据类型的定义,绘制关键程序的流程图,以及各子模块间的调用关系图:*
*1)定义:*
void sm4_setkey_enc( sm4_context *ctx, unsigned char key[16] );
void sm4_setkey_dec( sm4_context *ctx, unsigned char key[16] );
void sm4_crypt_ecb( sm4_context *ctx,
int mode,
int length,
unsigned char *input,
unsigned char *output);
typedef struct
{
int mode; /*!< encrypt/decrypt */
unsigned long sk[32]; /*!< SM4 subkeys */
}
sm4_context;
*2)关键程序流程图:*
*3)**子模块间的调用关系***:*
*3、列出测试目的、测试内容、测试结果,并对结果进行分析:*
*1)测试目的:*
检验任务要求是否达成,程序在面对多重情况时是否都能正常运行
*2)测试内容:*
(1)任务1的加密,解密过程的正常运行
(2)任务2程序可以正常进行通信包括ip、端口的匹配,加解密信息的传递,完成明文的加密,密文的解密,
*3)测试结果:*(图片以下顺序展示)
任务1,发送方加密
任务1,接收方解密
任务2,服务器发送明文至客户端的服务器界面
任务2,服务器发送明文至客户端的客户端界面
任务2,客户端发送明文至服务器的客户端界面
任务2,客户端发送明文至服务器的服务器界面
*三、设计特色*
1.界面简洁,操作简单,
2.lamada算法逻辑结构清晰
3.运用DH算法进行密钥协商以供SM4算法加密使用
*四、源代码及注释*
代码请见码云:https://gitee.com/liu_jiaqi_20191309/keshe/tree/master/
*五、个人报告*
https://www.cnblogs.com/jcy1171553035/p/15770954.html
https://www.cnblogs.com/liujiaqi20191309/p/15770880.html
https://www.cnblogs.com/BillGreen/p/15770890.html