对称密码基本加密实验讲解.docx
《对称密码基本加密实验讲解.docx》由会员分享,可在线阅读,更多相关《对称密码基本加密实验讲解.docx(21页珍藏版)》请在冰豆网上搜索。
对称密码基本加密实验讲解
对称密码基本加密实验
【实验环境】
ISES客户端
MicrosoftCLRDebugger2005或其它调试器
【实验步骤】
一、DES
在加密算法选项里选择DES,以下实验步骤保持算法不变。
(一)加解密计算
(1)加密
在明文栏的下拉菜单里选择文本或十六进制,然后在后面相应的文本框内输入所要加密的明文;
在密钥栏的下拉菜单里选择文本或十六进制,然后在后面相应的文本框内输入相应的密钥;
点击“加密”按钮,在密文文本框内就会出现加密后的密文,如图1.1.45所示。
图1.1.45
(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。
上述密钥生成过程如图1.1.46所示。
图1.1.46
(3)加密过程
在“加密过程”框中,选择明文的输入形式后,输入明文;DES要求明文分组长度为64位,输入要求参照密钥输入步骤;
点击“比特流”按钮生成输入的明文分组的比特流;
点击“初始置换IP”对明文比特流进行初始置换,并等分为32位左右两部分L0和R0;
点击“扩展置换E”按钮对32位R0进行扩展置换,将其扩展到48位;
点击“异或计算”按钮,将得到的扩展结果与轮密钥K1进行异或,得到48位异或结果;
分别点击“S1”、“S2”、…、“S8”按钮,将得到的48位异或结果通过S代换产生32位输出;
点击“异或计算”按钮,将得到的32位输出与L0进行异或,得到R1;同时令L1=R1,进入下一轮加密计算。
上述加密过程如图1.1.47所示。
依次进行16轮计算,最终得到L16和R16;
点击“终结置换”按钮,对交换后的L16和R16进行初始逆置换IP-1,即可得到密文。
上述加密过程如图1.1.48所示。
图1.1.47
图1.1.48
(三)DES实例
(1)点击DES分步演示窗体中的“DES实例”标签,进入DES实例演示页面。
(2)加密实例
输入明文、初始化向量和密钥,选择工作模式和填充模式,点击“加密”按钮,对输入的明文使用DES算法按照选定的工作模式和填充模式进行加密;在轮密钥显示框内以十六进制显示各轮加密使用的密钥,加密结果以两种形式显示在密文框中。
上述过程如图1.1.49所示。
图1.1.49
(3)解密实例
输入密文、密钥和初始化向量,选择工作模式和填充模式,点击“解密”按钮,对输入的密文使用DES算法按照选定的工作模式和填充模式进行解密;在轮密钥显示框内以十六进制显示各轮加密使用的密钥,解密结果以两种形式显示在明文框中。
(四)DES扩展实验
(1)点击“扩展实验”框中的“DES扩展实验”按钮,进入DES扩展实验窗口,打开后默认进入扩展实验主页面,进行加解密。
(2)确保在主窗口中选中了“加密”按钮,将DES的工作模式设置为“加密运算”。
(3)文本框内输入待加密16个字节长的明文ASCII码串(64比特),16个字节长的密钥ASCII码串(64比特),点击“运行”按钮,得到DES的加密结果,如图1.1.410所示。
图1.1.410
(4)观察“初始置换”(初始置换IP)。
在主窗口中点击“初始置换”按钮,进入“首置换”卡片,再次点击“运行”,即可观察明文的初始变换过程,如图1.1.411所示。
可以根据需要,调节变换显示的速度。
图1.1.411
(5)观察密钥变换。
在主窗口中点击“密码表”按钮,打开密码变换卡片组。
①选择“密码表”卡片,观察16轮加密变换的密钥,如图1.1.412所示。
图1.1.412
②选择“密码盒”卡片,观察16轮加密变换密钥的生成过程。
点击“置换选择1”按钮,得到该密钥的初始变换,选择想要测试加密密钥的轮次,再点击“置换选择2”按钮,即可得到相应的加密密钥,如图1.1.413所示。
图1.1.413
(6)观察加密函数。
点击主窗口的“F(Ri,Ki+1)”按钮,进入加密函数变换卡片。
①依次顺序点击“F(Ri,Ri+1)”卡片中的各个按钮,可以得到“选择运算E”、“代替函数组S”和“置换运算P”的运算结果,如图1.1.414所示。
图1.1.414
②选择“F(Ri,Ri+1)”卡片右下角的“Ebox”、“Sbox”或“Pbox”,并点击“查看”按钮,可以详细观察相应的变换过程,如图1.1.415所示。
图1.1.415
(7)观察“末置换”(逆初始变换IP-1)。
在主窗口中点击“末置换”按钮,进入“末置换”卡片,再次点击“运行”,即可观察加密过程的末置换(逆初始变换IP-1)的执行过程,如图1.1.416所示。
只有当主窗口中循环轮次等于16时,“末置换”按钮才变为有效的,否则无法激活该窗口。
图1.1.416
(8)解密时,确保在主窗口中选中了“解密”按钮,将DES的工作模式设置为“解密运算”。
文本框内输入待解密16个字节长的密文ASCII码串(64比特),16个字节长的密钥ASCII码串(64比特),点击“运行”按钮,得到DES的解密结果,如图1.1.417所示。
解密运算的其他过程与加密过程一样,不再赘述。
图1.1.417
(五)算法跟踪
选择DES算法,在算法计算的相应区域输入明/密文和密钥;点击“跟踪加密”/“跟踪解密”按钮,进入调试器,选择对应的算法函数进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。
具体步骤可参照古典密码实验中实验步骤二。
二、3DES
在加密算法选项里选择3DES,以下实验步骤保持算法不变。
(一)加解密计算
选择明/密文和密钥的格式,输入明/密文和密钥;点击“加密”/“解密”按钮,进行加/解密计算;查看计算结果。
具体步骤可参照DES的加解密计算的实验步骤。
(二)查看轮密钥
(1)点击“扩展实验”框中的“查看轮密钥”按钮,进入查看轮密钥窗体。
(2)输入明文、初始化向量和密钥,密钥长度为128位或192位,对应于原理中的两种情况,此处以输入128位密钥为例;选择工作模式和填充模式,点击“加密”按钮,使用3DES算法按照选定的工作模式和填充模式进行加密;在“密钥”框中查看各轮的密钥,在“密文”框中查看生成的密文。
具体如图1.1.418所示。
图1.1.418
(三)扩展实验
(1)点击扩展实验下的“3DES扩展实验”按钮,进入3DES扩展实验主窗体,如图1.1.419所示。
图1.1.419
(2)点击主窗体内最左边的“3DES密码”按钮,进入3DES加解密实验。
分别在“明文ACSII码串”、“密钥K1的ASCII码串”中输入16个十六进制的数值,点击左上角的“DES”按钮,在“一重DES密文ASCII码串”中就会显示出加密的密文ASCII码串值。
同样在“密钥K2的ASCII码串”中输入16个十六进制的数值(最好与K1不同),点击上排中间的“DES-1”按钮,在“二重DES密文ASCII码串”中就会显示出加密的密文ASCII码串值,如图1.1.420所示。
图1.1.420
(3)在“密钥K3的ASCII码串”中输入16个十六进制的数值,点击右上角“DES”按钮,在“密文ASCII码串”中就会显示出3DES加密的密文ASCII码串值,如图1.1.421所示。
图1.1.421
(4)3DES的解密过程是其加密过程的逆过程。
接着上面的实验步骤,依次从右到左,顺序点击3DES加解密卡片下排中的按钮“DES-1”、“DES”和“DES-1”,分别得到“二重DES明文ASCII码串”、“一重DES明文ASCII码串”和“明文ASCII码串”,如图1.1.422所示。
图1.1.422
(四)算法跟踪
选择3DES算法,在算法计算的相应区域输入明/密文和密钥;点击“跟踪加密”/“跟踪解密”按钮,进入调试器,选择对应的算法函数进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。
具体步骤可参照古典密码实验中实验步骤二。
三、IDEA
在加密算法选项里选择IDEA,以下实验步骤保持算法不变。
(一)加解密计算
选择明/密文和密钥的格式,输入明/密文和密钥;点击“加密”/“解密”按钮,进行加/解密计算;查看计算结果。
具体步骤可参照DES的加解密计算的实验步骤。
(二)扩展实验
(1)点击“扩展实验”框中的“IDEA扩展实验”按钮,进入IDEA扩展实验窗口,打开后默认进入扩展实验主页面。
(2)在主窗口中的“明文”文本框中输入16个十六进制的数值串,在“密钥”文本框中输入32个十六进制的数值串,点击“加密”按钮,如图1.1.423所示。
图1.1.423
(3)观察密码生成过程。
在主窗口中点击“密码表”按钮,进入密码表的生成过程。
点击“运行”后,再点击“上”、“下”、“左”或“右”箭头,分别得到相应轮次的密码变换结果,如图1.1.424所示。
图1.1.424
(4)观察轮变换过程。
点击轮变换中的“左”或“右”箭头,观察该轮加密的结果;也可以直接在轮次文本框中输入一个1-9之间的数值,点击“循环”按钮;具体如图1.1.425所示。
图1.1.425
(5)观察输出变换过程。
当轮变换的轮次到9时,即进入了IDEA密码的最后一轮输出变换,得到最后的加密运算结果;具体如图1.1.426所示。
图1.1.426
(6)运算器工具。
在主窗口中点击“运算器”,即进入运算器工具窗口;用户可在其中输入十六进制的数据进行IDEA中的一些典型运算,如“16位按位异或+”、“16位整数作模216+1相乘⊙”或“16位整数作模216相加+”运算;具体如图1.1.427所示。
图1.1.427
(7)在主窗口中的“密文”文本框中输入16个十六进制的数值串,在“密钥”文本框中输入32个十六进制的数值串,点击“解密”按钮,即可进行解密操作;IDEA解密扩展实验的其他过程与加密类似,不再赘述。
(三)算法跟踪
选择IDEA算法,在算法计算的相应区域输入明/密文和密钥;点击“跟踪加密”/“跟踪解密”按钮,进入调试器,选择对应的算法函数进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。
具体步骤可参照古典密码实验中实验步骤二。
四、AES-128/192/256
AES-128/192/256的区别仅在于密钥长度的不同,此处以AES-128为例,AES-192/256可参照完成。
在加密算法选项里选择AES-128,以下实验步骤保持算法不变。
(一)加解密计算
选择明/密文和密钥的格式,输入明/密文和密钥;点击“加密”/“