欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年网络安全 5.pdf

    • 资源ID:30529988       资源大小:79.84KB        全文页数:6页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年网络安全 5.pdf

    研究生课程网络安全课程设计论文题目:加密解密算法的实现学院:信息工程与自动化学院专业:通信与信息系统年级: 2010 级学号: 2010204104 姓名:黄国杰分数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 1 设计项目分析在 AES 基本算法的加密解密的数据16 字节基础上, 实现了基于任意字节流的C+类封装,以满足实际应用中要加密的信息长度不是分组长度的需求。给出了加密解密AES 算法的程序设计方法和具体实现步骤,并提供算法中密匙服务模块和加密解密模块C+语言的源程序。 该程序可以对用户需要保护的文档进行加密存储,在用户需要使用的时候对文档进行解密, 使用完成后又加密存储,大大增强了电子文档的安全性。将加密解密功能集成到操作系统的的源管理器中,用户通过资源管理器的菜单就可以完成加密解密功能,不需要单独启动加解密程序来实现对文档的保护。1.1 需求分析随着计算机在办公环境中的广泛应用,越来越多的数据以电子文档的形式存储于计算机中。由于电子文档的易于复制性,特别是Windows 系统连接到互联网后,无数的病毒、木马程序很容易盗取这些电子文档。因此, 保护这些电子文档是相当有必要的。但保障文档方面所依赖的主要技术,仍然是数据加密技术。数据加密的方法很多,但最基本的加密方法只有两种,即对称算法和非对称算法。其中,对称算法中的AES(Advanced Encryption Standard)是美国新一代的数据加密标准算法,它被预期能够对政府敏感信息的保护期持续到下个世纪,并能适用于商业、金融领域。相比传统的对称式DES(Data Encryption Standard)算法,AES 具有更加安全、高效的特点。 目前, 尽管对AES 算法原理进行了大量的理论分析,但对其应用到电子文档的加密和解密极其系统的实现却很少。1.2 实现目标AES 是基于分组的加解密算法,即每次要加密 /解密的数据块大小必须是16 字节,使用起来颇为不便。因此,本文在AES 基本算法基础上,对AES 算法稍作改进,使其加解密的数据块可以是任意字节数。给出了该算法的程序设计的模块划分与具体实现步骤,提供了一个完整的加密解密的C源程序。 研究的软件基于Windows 操作系统平台。 使用C作为开发工具,采用C语言进行研发设计。2 系统设计2.1 模型分析AES 算法是基于128 位 (16 字节 )分组的对称加密算法,密钥长度根据加密强度要求可以选择 128、 192 和 256 位。算法预先定义一个替换表。加密前首先把密钥进行扩展成密钥轮,前面3 种密钥长度对应密钥轮数分别为10、12 和 14。加密具体步骤为:(1)将输入明文拷贝到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 字节,这些添加字节内容填写为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, out_len 保存解密后数据长度,即 in_len 减去m。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - (2)m等于16,属于第二种填充情况,即最后16 个字节都是填充,直接丢弃,out_len=in_len-16 。基于面向对象的设计思想,将上述的AES 算法实现为C+类。这样,对外提供的加密和解密函数就可以对任意长度的数据进行操作,更便于应用程序使用:class AES_cipher private: unsigned 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 扩展并保存到rd_key 中待用。2.2 流程分析该算法实现的程序需要对用户需要保护的文档进行加密存储,在用户需要使用的时候对文档进行解密,使用完成后又加密存储。同时,加/解密功能需集成到操作系统的的源管理器中,用户通过资源管理器的菜单就可以完成加/解密功能,不需要单独启动加解密程序来实现对文档的保护。因此, 算法划分为密钥服务模块,加密模块和解密模块,集成到操作系统模块这四大程序模块来实现。2.2.1 密钥服务模块实现步骤加密解密程序和密钥服务程序之间的通讯采用命名管道(PIPE)进行。 为增强密钥的安全性,密钥服务程序需对加密解密程序进行认证,只有认证通过, 才会响应加密解密程序的密钥请求。认证过程采用挑战/应答的方式进行,即服务程序收到密钥请求后,先发送一个随机数 N 给请求程序,请求程序收到随机数后,用程序内预置的密钥对随机数进行加密,然后将密文发送给服务程序;服务程序收到密文后,用程序内预置的密钥对密文进行解密,然后将解密得到的数据与随机数N 进行比较,如果相同,表示认证通过,将密钥发送给请求程序,否则拒绝发送密钥。启动文件加密解密程序时,该程序会首先向密钥服务程序发送一个密钥请求,密钥服务程序收到请求后,将密钥发送给文件加密解密程序,然后加密解密程序会使用收到的密钥对文件进行加密或解密操作。具体实现步骤:(1)启动密钥服务程序;(2)用户输入密钥保护口令;(3)验证口令;口令正确后,用口令对密钥进行解密,解密后的密钥保存在内存中供文件加密解密程序使用。2.2.2 加密解密模块的实现步骤用户要对文件加密,首先在“资源管理器”中选中文件,点击鼠标右键,在弹出菜单中选择“加密文件”来启动文件加密程序。进入加密程序后,完成对文件的加密主要步骤有:(1)分析参数,检查文件名参数的有效性;(2)打开命令管道(PIPE),向密钥服务程序发送密钥请求;(3)从管道读取密钥服务程序发送过来的随机数,用预置的密钥对随机数进行加密,然后将密文发送给密钥服务程序;(4)从管道读取密钥服务程序发送过来的工作密钥;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - (5)用工作密钥对文件进行加密,其过程为:void EncrypeFile(char *filename ,char *key) AES_cipher AES; AES。set_key(key); while() AES。encrypt(); 文件解密可以看作是文件加密的反向操作,其实现步骤和加密基本相同,因此本文将加密和解密用同一个程序实现,利用参数区分具体操作。文件解密前面的步骤和加密相同,只有第5 步略有差异。2.2.3 集成到操作系统的实现步骤将密钥服务模块,加密解密模块集成到操作系统的“资源管理器”里,用户在“资源管理器”里选中要操作的文件,再通过右键菜单就可以对文件进行加解密,使用起来十分方便。即通过修改操作系统的注册表,将加密文件注册为用程序进行操作。当然, 用户也可以单独运行文件加解密程序,根据程序的提示选择要操作的文件完成该功能。集成到操作系统的主要步骤为: (1)打开注册表; (2)添加加密文件类型;(3)关联加密文件类型用加密程序打开;(4)关闭注册表。2.3 设计分析2.3.1 密钥服务程序的实现密钥服务程序主要实现代码:mian() bool CheckPasswrod=false; int request, challenge,temp;len char key128; char msg128; AES_cipher pre_AES; for(i=0; i3; i+) 用户输入口令;if( 口令正确 ) CheckPasswrod=true;break; if(CheckPasswrod=false) return -1; 使用用户口令解密密钥文件,并将密钥保存到key 内存;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - CreatePipe();while(true) ReadPipe(&request,4); switch(request) case 1 challenge = rand(); WritePipe(&challenge , 4); break; case 2: ReadPipe(msg,128); pre_AES。 decrypt(msg, 128, (char*)&temp ,&len); if(temp=challenge) WritePipe(key ,128); break; default: break; 2.3.2 文件加密解密程序的实现main(int argc , char*argv) bool is_encrypt ;int request, len; int challenge; AES_cipher pre_AES; char msg128; char key128; if(argc !=3) return -1 if(strcmp(argv1 , “encrypt”)=0) is_encrypt=true; else is_encrypt=false; if(FileExist(argv2)!=true) return -1; OpenPipe(); request=1; PipeWrite(&request ,4); PipeRead(&challenge,4); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - pre_AES。encrypt(&challenge ,4, msg, &len); request=2; PipeWrite(&request ,4); PipeWrite(msg ,128); PipeRead(key,128); if(is_encrypt) EncrypeFile(argv2 , key); else DecryptFile(argv2 , key); return 0; 2.4 结果分析本文通过对客体加密前后的密级分析发现,用现有的客体密级作为信息流安全类划分标准,无法描述和解释加密解密信息流过程,为此, 本文引入了客体的加密标识概念,通过重新定义安全类信息流策略,得到了一个新的基于加密解密过程的信息流模型,经分析和验证认为这个模型是合理的安全的。3 总结3.1 总结本文在 AES 基本算法的基础上实现了基于字节流的C+类封装,以满足实际应用中要加密的信息长度不是分组长度的需求,保证了任意字节的数据的加密解密。给出了算法中密匙服务模块和加密解密模块C+语言的具体实现,探讨了加密解密问题。3.2 收获和体会本次设计课程设计综合了所学知识的理论与基础。通过本次课程设计,将所学的知识运用到实际生活去了。从而知道自己对知识的掌握情况。经这次设计, 让专业知识与实践结合,让专业知识得到了更好的消化和更牢固的掌握。在本次课程设计的过程中非常感谢指导老师的指导和帮助。使我所学的知识能够运用到实践中,并且还给我了我很多宝贵的意见和许多技术上的指导。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -

    注意事项

    本文(2022年网络安全 5.pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开