2022年网络安全 5.pdf
《2022年网络安全 5.pdf》由会员分享,可在线阅读,更多相关《2022年网络安全 5.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、研究生课程网络安全课程设计论文题目:加密解密算法的实现学院:信息工程与自动化学院专业:通信与信息系统年级: 2010 级学号: 2010204104 姓名:黄国杰分数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 1 设计项目分析在 AES 基本算法的加密解密的数据16 字节基础上, 实现了基于任意字节流的C+类封装,以满足实际应用中要加密的信息长度不是分组长度的需求。给出了加密解密AES 算法的程序设计方法和具体实现步骤,并提
2、供算法中密匙服务模块和加密解密模块C+语言的源程序。 该程序可以对用户需要保护的文档进行加密存储,在用户需要使用的时候对文档进行解密, 使用完成后又加密存储,大大增强了电子文档的安全性。将加密解密功能集成到操作系统的的源管理器中,用户通过资源管理器的菜单就可以完成加密解密功能,不需要单独启动加解密程序来实现对文档的保护。1.1 需求分析随着计算机在办公环境中的广泛应用,越来越多的数据以电子文档的形式存储于计算机中。由于电子文档的易于复制性,特别是Windows 系统连接到互联网后,无数的病毒、木马程序很容易盗取这些电子文档。因此, 保护这些电子文档是相当有必要的。但保障文档方面所依赖的主要技术
3、,仍然是数据加密技术。数据加密的方法很多,但最基本的加密方法只有两种,即对称算法和非对称算法。其中,对称算法中的AES(Advanced Encryption Standard)是美国新一代的数据加密标准算法,它被预期能够对政府敏感信息的保护期持续到下个世纪,并能适用于商业、金融领域。相比传统的对称式DES(Data Encryption Standard)算法,AES 具有更加安全、高效的特点。 目前, 尽管对AES 算法原理进行了大量的理论分析,但对其应用到电子文档的加密和解密极其系统的实现却很少。1.2 实现目标AES 是基于分组的加解密算法,即每次要加密 /解密的数据块大小必须是16
4、字节,使用起来颇为不便。因此,本文在AES 基本算法基础上,对AES 算法稍作改进,使其加解密的数据块可以是任意字节数。给出了该算法的程序设计的模块划分与具体实现步骤,提供了一个完整的加密解密的C源程序。 研究的软件基于Windows 操作系统平台。 使用C作为开发工具,采用C语言进行研发设计。2 系统设计2.1 模型分析AES 算法是基于128 位 (16 字节 )分组的对称加密算法,密钥长度根据加密强度要求可以选择 128、 192 和 256 位。算法预先定义一个替换表。加密前首先把密钥进行扩展成密钥轮,前面3 种密钥长度对应密钥轮数分别为10、12 和 14。加密具体步骤为:(1)将输
5、入明文拷贝到44 字节矩阵State 中; (2)用第一轮密钥与State 进行异或运算;(3)使用替换表对State 进行替换; (4)对 State 进行行移位操作;(5)对 State 进行列混合 (Mix) 操作; (6)用下一轮密钥与State 进行异或操作, 重复第 3 步,直到使用完所以密钥轮;(7)将 State 拷贝到输出。对于任意字节的数据加密,加密函数encrypt 根据输入数据长度in_len 对输入信息 in 按 16 字节 (128 位)进行分组填充处理,存在两种情况:(1)in_len 不是16 的整数倍。即分组后还剩n 字节,需要在其后面添加16-n 字节,这些
6、添加字节内容填写为16-n。(2)in_len 正好是16 的整数倍。需要增加一个16 字节分组,其内容填写16。经过分组填充处理后,要加密的数据已经是16 的整数倍了, 分别对每个分组进行加密处理并将结果保存到out 中, out-len 保存加密后数据的长度,即in_len 加上填充长度。解密函数decrypt 输入in 是已加密数据, 其长度是16 的整数倍, 直接对前面每个分组进行解密并分别保存到out 中,对于最后一个分组,解密后查看最后一个字节的值m,也分两种情况进行处理:(1)m 小于 16,属于第一种填充情况,即最后 m 个字节是填充,只需将前面的16-m个字节保存到out,
7、out_len 保存解密后数据长度,即 in_len 减去m。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - (2)m等于16,属于第二种填充情况,即最后16 个字节都是填充,直接丢弃,out_len=in_len-16 。基于面向对象的设计思想,将上述的AES 算法实现为C+类。这样,对外提供的加密和解密函数就可以对任意长度的数据进行操作,更便于应用程序使用:class AES_cipher private: unsigned
8、 int rd_key4 *(14 + 1); int rounds; public: void set_key(unsigned char *key , int key_len); void encrypt(unsigned char *in ,int in_len,unsigned char *out ,int *out_len); void decrypt(unsigned char *in , int in_len,unsigned char *out , int *out_len); 应用程序要加解密数据,首先要调用set_key 函数,根据密钥长度参数key_len 将密钥 key
9、 扩展并保存到rd_key 中待用。2.2 流程分析该算法实现的程序需要对用户需要保护的文档进行加密存储,在用户需要使用的时候对文档进行解密,使用完成后又加密存储。同时,加/解密功能需集成到操作系统的的源管理器中,用户通过资源管理器的菜单就可以完成加/解密功能,不需要单独启动加解密程序来实现对文档的保护。因此, 算法划分为密钥服务模块,加密模块和解密模块,集成到操作系统模块这四大程序模块来实现。2.2.1 密钥服务模块实现步骤加密解密程序和密钥服务程序之间的通讯采用命名管道(PIPE)进行。 为增强密钥的安全性,密钥服务程序需对加密解密程序进行认证,只有认证通过, 才会响应加密解密程序的密钥请
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年网络安全 2022 网络安全
限制150内