实验五对称密码基本加密实验DES3DES.docx

上传人:b****5 文档编号:3024192 上传时间:2022-11-17 格式:DOCX 页数:11 大小:490.95KB
下载 相关 举报
实验五对称密码基本加密实验DES3DES.docx_第1页
第1页 / 共11页
实验五对称密码基本加密实验DES3DES.docx_第2页
第2页 / 共11页
实验五对称密码基本加密实验DES3DES.docx_第3页
第3页 / 共11页
实验五对称密码基本加密实验DES3DES.docx_第4页
第4页 / 共11页
实验五对称密码基本加密实验DES3DES.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

实验五对称密码基本加密实验DES3DES.docx

《实验五对称密码基本加密实验DES3DES.docx》由会员分享,可在线阅读,更多相关《实验五对称密码基本加密实验DES3DES.docx(11页珍藏版)》请在冰豆网上搜索。

实验五对称密码基本加密实验DES3DES.docx

实验五对称密码基本加密实验DES3DES

 

实验五-对称密码基本加密实验-DES、3DES

实验五对称密码基本加密实验-DES、3DES

【实验目的】

理解对称密码体制和分组密码算法的基本思想

理解DES、3DES等算法的基本原理

掌握上述密码算法的输入输出格式和密钥格式

掌握上述密码算法的加解密过程和实现方法

【实验原理】

对称密码体制使用相同的加密密钥和解密密钥,其安全性主要依赖于密钥的保密性。

分组密码是对称密码体制的重要组成部分,其基本原理为:

将明文消息编码后的序列m0,m1,m2,…,mi划分为长度为L(通常为64或128)位的组m=(m0,m1,m2,…,mL-1),每组分别在密钥k=(k0,k1,k2,…,kt-1)(密钥长度为t)的控制下变换成等长的一组密文输出序列c=(c0,c1,c2,…,cL-1)。

分组密码的模型如下图所示:

分组密码实际上是在密钥的控制下,从一个足够大和足够好的置换子集中简单而迅速地选出一个置换,用来对当前输入的明文分组进行加密变换。

现在所使用的对称分组加密算法大多数都是基于Feistel分组密码结构的,遵从的基本指导原则是Shannon提出的扩散和混乱,扩散和混乱是分组密码的最本质操作。

分组密码与流密码的对比:

分组密码以一定大小的分组作为每次处理的基本单元,而流密码则以一个元素(如一个字母或一个比特)作为基本的处理单元;流密码使用一个随时间变化的加密变换,具有转换速度快、低错误传播的优点,软硬件实现简单,缺点是低扩散、插入及修改不敏感;分组密码使用的是一个不对时间变化的固定变换,具有扩散性好、插入敏感等优点,缺点是加解密处理速度慢、存在错误传播。

一、DES算法

数据加密标准(DataEncryptionStandard,DES)中的算法是第一个也是最重要的现代对称加密算法,其分组长度为64比特,使用的密钥长度为56比特(实际上函数要求一个64位的密钥作为输入,但其中用到的有效长度只有56位,剩余8位可作为奇偶校验位或完全随意设置),DES加解密过程类似,加解密使用同样的算法,唯一不同的是解密时子密钥的使用次序要反过来。

DES的整个体制是公开的,系统安全性完全依靠密钥的保密。

DES的运算可分为如下三步:

(1)对输入分组进行固定的“初始置换”IP,可写为(L0,R0)=IP(输入分组),其中L0和R0称为“(左,右)半分组”,都是32比特的分组,IP是公开的固定的函数,无明显的密码意义。

(2)将下面的运算迭代16轮(i=1,2,…,16):

Li=Ri-1,Ri-1=Li-1

f(Ri-1,ki);这里ki称为轮密钥,是56比特输入密钥的一个48比特字串,f称为S盒函数(S表示交换),是一个代换密码,目的是获得很大程度的信息扩散。

(3)将十六轮迭代后得到的结果(L16,R16)输入到IP的逆置换来消除初始置换的影响,这一步的输出就是DES算法的输出,即输出分组=IP-1(R16,L16),此处在输入IP-1之前,16轮迭代输出的两个半分组又进行了一次交换。

DES的加密与解密算法都是用上述三个步骤,不同的是如果在加密算法中使用的轮密钥为k1,k2,…,k16,则解密算法中的轮密钥就应当是k16,k15,…,k1,可记为(k1`,k2`,…,k16`)=(k16,k15,…,k1)。

DES算法的一轮迭代处理过程如下图所示:

在加密密钥k下,将明文消息m加密为密文c,使用DES将c在k下解密为明文,解密过程如下:

(L0`,R0`)=IP(c)=IP(IP-1(R16,L16)),即(L0`,R0`)=(R16,L16);在第一轮中,L1`=R0`=L16=R15,R1`=L0`

f(R0`,k1`)=R16

f(L16,k1`)=[L16

f(R15,k16)]

f(R15,k16)=L15,即(L1`,R1`)=(R15,L15);同样的,在接下来的15轮迭代中,可以得到(L2`,R2`)=(R14,L14),……,(L16`,R16`)=(R0,L0);最后一轮结束后,交换L16`和R16`,即(R16`,L16`)=(L0,R0),IP-1(L0,R0)=IP-1(IP(m))=m,解密成功。

二、3DES算法

DES的一个主要缺点是密钥长度较短,同时也被认为是DES仅有的最严重的弱点,容易遭受穷举密钥搜索攻击。

克服密钥较短缺陷的一个解决方法是使用不同的密钥,多次运行DES算法,3DES应运而生。

3DES具有四种使用模式,其中的一种为加密-解密-加密的3DES方案,加解密过程可表示为:

,其中

【实验环境】

ISES客户端

MicrosoftCLRDebugger2005或其它调试器

【实验内容】

通过运算器工具实现DES、3DES算法的加解密计算

通过流程演示工具完成DES算法加解密运算的逐步演示和实例演示

通过轮密钥查看工具查看3DES

对DES、3DES算法的加解密进行扩展实验

对DES、3DES算法的加解密进行算法跟踪

【实验步骤】

一、DES

在加密算法选项里选择DES,以下实验步骤保持算法不变。

(一)加解密计算

(1)加密

在明文栏的下拉菜单里选择文本或十六进制,然后在后面相应的文本框内输入所要加密的明文;在密钥栏的下拉菜单里选择文本或十六进制,然后在后面相应的文本框内输入相应的密钥;点击“加密”按钮,在密文文本框内就会出现加密后的密文;结果如下所示:

(2)解密

在密文栏相应的文本框内输入所要解密的密文;在密钥栏的下拉菜单里选择文本或十六进制,然后在后面相应的文本框内输入相应的密钥;点击“解密”按钮,在明文文本框内就会出现解密后的明文。

(二)分步演示

(1)点击“扩展实验”框中的“DES分步演示”按钮,进入DES分步演示窗口,打开后默认进入分步演示页面。

(2)密钥生成

在“子密钥产生过程”框中,选择密钥的输入形式后,输入密钥;DES要求密钥长度为64位,即选择“ASCII”(输入形式为ASCII码)时应输入8个字符,选择“HEX”(输入形式为十六进制)时应输入16个十六进制码;点击“比特流”按钮生成输入密钥的比特流;

点击“等分密钥”按钮,将生成的密钥比特流进行置换选择后,等分为28位的C0和D0两部分;分别点击两侧的“循环左移”按钮,对C0和D0分别进行循环左移操作(具体的循环左移的移位数与轮序有关,此处演示为第一轮,循环左移1位),生成同样为28位的C1和D1;点击“密钥选取”按钮,对C1和D1进行置换选择,选取48位的轮密钥,此处生成第一轮的密钥K1。

上述密钥生成过程如下图所示:

(3)加密过程

在“加密过程”框中,选择明文的输入形式后,输入明文;DES要求明文分组长度为64位,输入要求参照密钥输入步骤;点击“比特流”按钮生成输入的明文分组的比特流;点击“初始置换IP”对明文比特流进行初始置换,并等分为32位左右两部分L0和R0;

点击“扩展置换E”按钮对32位R0进行扩展置换,将其扩展到48位;点击“异或计算”按钮,将得到的扩展结果与轮密钥K1进行异或,得到48位异或结果;分别点击“S1”、“S2”、…、“S8”按钮,将得到的48位异或结果通过S代换产生32位输出;点击“异或计算”按钮,将得到的32位输出与L0进行异或,得到R1;同时令L1=R1,进入下一轮加密计算。

依次进行16轮计算,最终得到L16和R16;点击“终结置换”按钮,对交换后的L16和R16进行初始逆置换IP-1,即可得到密文。

(三)DES实例

(1)点击DES分步演示窗体中的“DES实例”标签,进入DES实例演示页面。

(2)加密实例

输入明文、初始化向量和密钥,选择工作模式和填充模式,点击“加密”按钮,对输入的明文使用DES算法按照选定的工作模式和填充模式进行加密;在轮密钥显示框内以十六进制显示各轮加密使用的密钥,加密结果以两种形式显示在密文框中。

上述过程如下图所示。

(3)解密实例

输入密文、密钥和初始化向量,选择工作模式和填充模式,点击“解密”按钮,对输入的密文使用DES算法按照选定的工作模式和填充模式进行解密;在轮密钥显示框内以十六进制显示各轮加密使用的密钥,解密结果以两种形式显示在明文框中。

(四)DES扩展实验

(1)点击“扩展实验”框中的“DES扩展实验”按钮,进入DES扩展实验窗口,打开后默认进入扩展实验主页面,进行加解密。

(2)确保在主窗口中选中了“加密”按钮,将DES的工作模式设置为“加密运算”。

(3)文本框内输入待加密16个字节长的明文ASCII码串(64比特),16个字节长的密钥ASCII码串(64比特),点击“运行”按钮,得到DES的加密结果,如下图所示。

(4)观察“初始置换”(初始置换IP)。

在主窗口中点击“初始置换”按钮,进入“首置换”卡片,再次点击“运行”,即可观察明文的初始变换过程,如下图所示。

可以根据需要,调节变换显示的速度。

(5)观察密钥变换。

在主窗口中点击“密码表”按钮,打开密码变换卡片组。

①选择“密码表”卡片,观察16轮加密变换的密钥,如下图所示。

②选择“密码盒”卡片,观察16轮加密变换密钥的生成过程。

点击“置换选择1”按钮,得到该密钥的初始变换,选择想要测试加密密钥的轮次,再点击“置换选择2”按钮,即可得到相应的加密密钥,如下图所示。

(6)观察加密函数。

点击主窗口的“F(Ri,Ki+1)”按钮,进入加密函数变换卡片。

①依次顺序点击“F(Ri,Ri+1)”卡片中的各个按钮,可以得到“选择运算E”、“代替函数组S”和“置换运算P”的运算结果,如下图所示。

②选择“F(Ri,Ri+1)”卡片右下角的“Ebox”、“Sbox”或“Pbox”,并点击“查看”按钮,可以详细观察相应的变换过程,如下图所示(以Ebox为例)。

(7)观察“末置换”(逆初始变换IP-1)。

在主窗口中点击“末置换”按钮,进入“末置换”卡片,再次点击“运行”,即可观察加密过程的末置换(逆初始变换IP-1)的执行过程,如下图所示。

只有当主窗口中循环轮次等于16时,“末置换”按钮才变为有效的,否则无法激活该窗口。

(8)解密时,确保在主窗口中选中了“解密”按钮,将DES的工作模式设置为“解密运算”文本框内输入待解密16个字节长的密文ASCII码串(64比特),16个字节长的密钥ASCII码串(64比特),点击“运行”按钮,得到DES的解密结果,如下图所示。

解密运算的其他过程与加密过程一样,不再赘述。

(五)算法跟踪

选择DES算法,在算法计算的相应区域输入明/密文和密钥;点击“跟踪加密”/“跟踪解密”按钮,进入调试器,选择对应的算法函数进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。

具体步骤可参照古典密码实验中实验步骤二。

二、3DES

在加密算法选项里选择3DES,以下实验步骤保持算法不变。

(一)加解密计算

选择明/密文和密钥的格式,输入明/密文和密钥;点击“加密”/“解密”按钮,进行加/解密计算;查看计算结果。

具体步骤可参照DES的加解密计算的实验步骤。

(二)查看轮密钥

(1)点击“扩展实验”框中的“查看轮密钥”按钮,进入查看轮密钥窗体。

(2)输入明文、初始化向量和密钥,密钥长度为128位或192位,对应于原理中的两种情况,此处以输入128位密钥为例;选择工作模式和填充模式,点击“加密”按钮,使用3DES算法按照选定的工作模式和填充模式进行加密;在“密钥”框中查看各轮的密钥,在“密文”框中查看生成的密文。

(三)扩展实验

(1)点击扩展实验下的“3DES扩展实验”按钮,进入3DES扩展实验主窗体,

(2)点击主窗体内最左边的“3DES密码”按钮,进入3DES加解密实验。

分别在“明文ACSII码串”、“密钥

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1