网站大量收购闲置独家精品文档,联系QQ:2885784924

网络空间安全概论 实验1加密 加密算法.docx

网络空间安全概论 实验1加密 加密算法.docx

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

目录

TOC\o1-3\h\z\u1仿射密码 1

1.1算法简介 1

1.2核心代码 1

1.3实验结果 3

1.4实验分析 3

2序列密码 3

2.1算法简介 3

2.2核心代码 4

2.3实验结果 5

2.4实验分析 6

3DES加解密 6

3.1算法简介 6

3.2核心代码 13

3.3实验结果 18

3.5实验分析 19

附件

PAGE19

1仿射密码

算法简介

仿射密码是一种替换密码,即一个字母对应一个字母。明文中的所有字母都在字母表上乘以系数,再向后(或向前)按照一个固定数目进行偏移后被替换成密文。

明文记为m,密文记为c,密钥记为,加密变换记为E(m),解密变换记为D(m),n为基本字符的个数。

它的加密函数是:,其中和n\t/item/%E4%BB%BF%E5%B0%84%E5%AF%86%E7%A0%81/_blank互素。

解密函数是:,此处满足等式。

核心代码

辗转相除法求最大公约数(用于检验和n是否互素):

求逆元(用于求):

加密算法:

解密算法:

算法流程图:

实验结果

当输入与26不互素时,提示输入密钥不合法,如图1-1所示;

图1-1输入密钥不合法时

当输入密钥合法时,输入明文,程序给出相应加密后的密文,并将密文解密,如图1-2所示。

图1-2输入密钥合法时进行加解密

实验分析

因为仿射密码仍为单字母表密码,其依旧保留了该类别加密之弱处。当=1时,仿射加密为恺撒(Caesar)密码,该加密方程可简化为线性移动;当=0时,仿射加密为乘数密码。考虑加密英文,即n=26,除去当=1且=0的情况,总共有26*12-1=311种非易仿射密钥对。因为密码缺少复杂性,根据\t/item/%E4%BB%BF%E5%B0%84%E5%AF%86%E7%A0%81/_blank柯克霍夫原则,这套系统是不安全的。

此密码之首要弱处为,如果密码学家可发现(如\t/item/%E4%BB%BF%E5%B0%84%E5%AF%86%E7%A0%81/_blank频率分析,暴力破解,臆测或任何其他方法)加密文件两字元之原文,则关键值可透过解一\t/item/%E4%BB%BF%E5%B0%84%E5%AF%86%E7%A0%81/_blank方程组得到。

2序列密码

2.1算法简介

线性反馈移位寄存器(linearfeedbackshiftregister,LFSR)是指,给定前一状态的输出,将该输出的\t/item/%E7%BA%BF%E6%80%A7%E5%8F%8D%E9%A6%88%E7%A7%BB%E4%BD%8D%E5%AF%84%E5%AD%98%E5%99%A8/_blank线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。

影响下一个状态的比特位叫做抽头。LFSR最高位的比特为输出比特。抽头依次与输出比特进行异或运算,然后反馈回最低位。最高位所生成的序列被称为输出流。

最大长度的LFSR生成一个m序列(例如,只有与有一定抽序列的LFSR才能通过所有2n?1个内部状态,不包括全零状态),除非它本身为全零,亦即状态永不改变。

16位的本源多项式为,常数“1”并不代表某一个抽头,它所指的是一个比特位的输入。

2.2核心代码

将初始状态转换为二进制表示,其中again用于计算周期:

生成序列:

算法流程图:

2.3实验结果

当初始状态为18即0000000000010010时,输出序列周期为65535,如图2-1-1、2-1-2所示;

图2-1-1初始状态为18时

图2-1-2初始状态为18时的序列周期

当初始状态为4569即0001000111011001时,输出序列周期为65535,如图2-2-1、2-2-2所示;

图2-2-1初始状态为4569时

图2-2-2初始状态为4569时的序列周期

当初始状态为18即0000000000010010时,修改多项式为(非本原多项式),输出序列周期为63,如图2-3所示;

图2-3非本原多项式,初始状态为18时

2.4实验分析

对于m序列(周期为2n-1),如果攻击者知道了2n位明密文对,则可确定反馈多项式的系数,从而确定该LFSR接下来的状态,也就能得到余下的密钥序列。由此可见,采用线性移位寄存器产生的序列密码在已知明文攻击下时可以破译的,所以,尽管m序列的随即性能良好且在所有同阶的线性移位寄存器生成序列中周期最长,但从序列密码安全角度来看,m序列不合适直

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档