《网络空间安全技术实践教程》课件6.1课件.pptxVIP

《网络空间安全技术实践教程》课件6.1课件.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

6.1DES密码算法编程实验实验原理:明文分组:64bit密钥:64bit(实际只有56bit)密文分组:64bit加解密:使用16轮Feistel网络结构网络空间安全实践教程1

6.1DES密码算法编程实验实验原理:密钥扩展输入64位密钥,扩展成16轮的轮密钥K1,K2,…,K16轮变换每一轮核心运算,输入右分组(32位),轮密钥(48位),输出32位加解密输入明文64位,进行初始置换IP,对置换后的数据X0分成左右两半L0与R0,利用轮函数f实施16次轮变换,得到L16与R16,最后进行逆初始置换IP-1,得到密文64位DES的加密和解密几乎一样,不同之处在于加密时输入是明文,子密钥使用顺序为K1,…,K16;解密时输入是密文,子密钥使用顺序为K16,…,K1。网络空间安全实践教程2

6.1DES密码算法编程实验实验原理:密钥扩展: 输入初始密钥64位,输出16轮子密钥K1…K16。初始密钥64位经过置换PC-1,去掉8个校验位留下56位。接着分成左右两个28位的分组,分别经过循环左移函数,再连成56位然后经过置换PC-2,输出子密钥K1。以此类推产生K2至K16。网络空间安全实践教程3

6.1DES密码算法编程实验实验原理:轮变换:输入32位右分组Ri-1,48位轮密钥Si,输出32位。将Ri做扩展运算E,变成48位,记E(Ri-1),与Si异或,得到E(Ri-1)⊕Si将上步输出分为8组,每组Bi为6位,通过相应的S盒Si,输出Ci为4位,将所有Ci连成C(32位)。再通过置换P,得到最后的输出32位在加密的第i轮,A=Ri-1,J=Ki网络空间安全实践教程4

6.1DES密码算法编程实验实验原理:加解密:输入明文分组64位,输出密文分组64位。对明文分组6进行初始置换IP。对IP后的数据分成左右两半L0与R0,利用轮函数f与轮密钥Ki实施轮变换,Li=Ri-1Ri=Li⊕f(Ri-1,Ki)16轮后得到L16与R16(最后一轮的左右两半互换)进行逆初始置换IP-1,得到密文分组64位网络空间安全实践教程5

6.1DES密码算法编程实验实验要点说明:模块化编程:为了增加程序的正确性和可读性,可维护性,建议实现模块化编程,将算法实现的功能写成若干子函数进行调用。变换函数:DES中的所有变换都可以写成函数,变换前为输入,变换后为输出。变换表由Table来引导,变换后的长度由len参数输入。Temp可自己设定,参考如下代码:voidTransform(bool*Out,bool*In,constchar*Table,intlen){ for(inti=0;ilen;++i) Temp[i]=In[Table[i]-1]; memcpy(Out,Temp,len);}网络空间安全实践教程6

6.1DES密码算法编程实验实验要点说明:字符转化为位:可参考如下代码voidByteToBit(bool*Out,constbool*In,intbits)//输入为字符In,输出的二进制位存放在Out{ for(inti=0;ibits;++i) Out[i]=(In[i3](i7))1;}位转化为字符:可参考如下代码voidBitToByte(char*Out,constbool*In,intbits)//输入二进制为In,输出的字符存放在Out。{ memset(Out,0,bits3); for(inti=0;ibits;++i) Out[i3]|=In[i](i7);}网络空间安全实践教程7

6.1DES密码算法编程实验实验准备:Windows操作系统VisualStudio2010以上开发环境网络空间安全实践教程8

6.1DES密码算法编程实验实验步骤:利用VisualC++开发环境,构建类似右图的DES密码加解密界面。编写加密按钮事件:从明文框中读入字符序列,从密钥框中读入8字节(64bit)密钥,对明文进行分组加密运算,并在密文框中输出。编写解密按钮事件:从密文框中读入字符序列,从密钥框中读入密钥,对密文进行分组解密运算,并在解密的明文框中输出。网络空间安全实践教程9

6.1DES密码算法编程实验实验结果要求:根据参考函数功能编写DES加密和解密,给出关键编程思路。总结实验过程中遇到的问题和经验。网络空间安全实践教程10

6.1DES密码算法编程实验实验视频:网络空间安

文档评论(0)

kd8w + 关注
实名认证
文档贡献者

kd8w

1亿VIP精品文档

相关文档