第3章 密码技术应用实验
K_sch: key achedule value for round[r]
Output: cipher output
PLAINTEXT: 3243F6A8885A308D313198A2E0370734
KEY:
2B7E151628AED2A6ABF7158809CF4F3C
ENCRYPT: 16 byte block, 16 byte key
2. Miller-Rabin检测法
Miller -Rabin检测法基于Gary Miller的部分想法,由Michael Rabin发展。该检测法描述如下:首先 选择一个待测的随机数n,计算b,2 b 是能够整除n-1的2的最大幂数。然后计算m,使得n=2 b m+l。
(1) 随机选取a∈(1,n) 。
请读者分析代码,找出各个部分是由哪个函数实现的,并了解函数实现的具体过程。 选取密钥长度和分组长度均为 128,试修改上述代码,完成以下试验。 1.全零密钥扩展验证 对于 128 比特的全零密钥,试利用 KeyExpansion 函数将密钥扩展的结果填入表 3-cipher input
Start: state at the start of round[r]
S_box: state after s_box substitution
S_row: state after shift row transformation
M_col: state after mix column transformation
—1—
第 3 章 密码技术应用
第 3 章 密码技术应用
3.1 常用加密算法实验
3.1.1 对称密码算法 AES 的应用
【实验目的】
通过对 AES 算法的 C 源程序代码进行修改,了解和掌握分组密码体制的运行原理和编程思想。
【原理简介】
AES 是 1997 年 1 月由美国国家标准和技术研究所(NIST)发布公告征集的新的加密标准,其 基本功能是对称分组密码,分组长度为 128 比特,密钥长度支持 128、192、256 比特。最终的评估 中,凭借各种平台实现性能的高效性,Vincent Rijnmen 和 Joan Daemen 提出的 RIJNDAEL 胜出,作 为 AES。
3243F6A8885A308D313198A2E0370 734 2B7E151628AED2A6ABF7158809CF 4F3C 193DE3BEA0F4E22B9AC68D2AE9F 84808
3.修改该程序,使其可在(128,128)模式下进行文件的加解密,并对某文档进行加解密,观 察解密后与原文是否相同。如有不同,试考虑如何解决。再用该程序加密流媒体文件,观察解密后 是否能够正确完整播放。
网络安全实验教程
第 3 章 密码技术应用................................................................................................................................... 2 3.1 常用加密算法实验 ........................................................................................................................... 2 3.1.1 对称密码算法 AES 的应用 .................................................................................................. 2 3.1.2 RSA 公钥算法的应用 ........................................................................................................... 4 3.2 利用软件对文件进行加密 ............................................................................................................... 6 3.2.1 WINDOWS 中的加密文件系统应用 ................................................................................... 6 3.2.2 加密软件 PGP 应用............................................................................................................. 11 3.3 .NET 框架中的加解密服务 .......................................................................................................... 21 3.4 数字水印技术的应用 .................................................................................................................... 24
—3—
第 3 章 密码技术应用
4.计算加解密的效率,并进行一定的优化使加密效率提高。
【实验报告】
1.简述 AES 算法每个输入分组的长度及格式。 2.简述 AES 算法每轮加密过程的四个步骤。 3.填写上面的表格。
【思考题】
1. 计算加解密的效率,并进行一定的优化使加密效率提高。
3.1.2 RSA 公钥算法的应用
表 3-2 第 1、2 轮的中间步骤测试向量
R[00].input
R[00].k_sch
R[01].start
R[01].s_box R[01].s_row R[01].m_col R[01].k_sch R[02].start R[02].s_box R[02].s_row R[02].m_col R[02].k_sch
有关算法的详细介绍请参阅相关参考书。
【实验环境】
操作系统是 Windows、Linux 甚至 DOS 的 PC 机。安装有一种 C 语言编译环境即可。
【实验步骤】
本实验使用的是 Rijndael 的作者在《高级加密标准(AES)算法----Rijndael 的设计》(中文版已 由清华大学出版社发行)附录中给出的参考代码。该代码演示了在明文和密钥均为全 0 时,不同分 组、不同密钥长度下进行 AES 加解密的结果。
3.2 利用软件对文件进行加密
3.2.1 WINDOWS 中的加密文件系统应用
【实验目的】
通过对 WINDOWS2000/XP/2003 下 EFS(加密文件系统)的介绍,了解如何使用 EFS 保护文件 的安全性,学习如何使用 EFS 加解密、如何在 EFS 下实现文件共享、并对 EFS 文件格式进行一定的 了解。
对a选取 k个不同的随机值,重复k次这样测试。如果n都能通过测试,则可断定n不是素数的概 率不超过4 −k 。
3. RSA数字签名
参考RSA加密的源程序,对其中的代码进行修改来完成一个RSA数字签名过程的模拟实验。要 求尽可能保证签名信息量小于明文数据量。
4. 混合加密实验
借助于第二个源程序,可以进行一次混合加密应用的实验。请准备一个较大的影音文件用于加 解密测试(几十兆、几百兆为佳)。
(2) 设j=0,计算z≡a m mod n。 (3) 若z=1或者z=n-1,则n通过测试,可能是素数。 (4) 如果j>0且z=1,则n不是素数。 (5) 令j=j+1。若j<b且z≠n-1,令z≡z 2 mod n,然后回到(4)步。 若z=n-1,则n通过测试,可能是素数。 (6) 若j=b且z≠n-1,则n不是素数。
网络安全实验教程
1.使用 EFS 加密 要使用 EFS 加密,首先要保证操作系统符合要求。目前支持 EFS 加密的 Windows 操作系统主 要有 Windows 2000 全部版本和 Windows XP Professional。其次,EFS 加密只对 NTFS5 分区上的数据 有效(注意,这里提到了 NTFS5 分区,是指由 Windows 2000/XP 格式化过的 NTFS 分区;而由 Windows NT4 格式化的 NTFS 分区是 NTFS4 格式的,虽然同样是 NTFS 文件系统,但它不支持 EFS 加密), 无法加密保存在 FAT 和 FAT32 分区上的数据。 (1)对于想加密的文件或文件夹,只需要用鼠标右击该文件,然后选择【属性】,在常规选项 卡上单击【高级】按钮,之后在弹出的窗口中选中“加密内容以保护数据”,然后单击【确定】,如 图 3-1 所示,等待片刻数据就加密好了。如果加密的是一个文件夹,系统还会询问是否把这个加密 属性应用到文件夹上,或者应用到该文件夹以及内部的所有子文件夹,如图 3-2 所示。解密数据也 是很简单的,同样是按照上面的方法,把“加密内容以保护数据”前的钩消除,然后单击【确定】。
【实验目的】
通过此次实验,掌握RSA算法的基本原理及素数判定中的Rabin-Miller测试的原理,了解公钥加 密体制的优缺点以及它的应用方式。
【原理简介】
1978年发明的RSA算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操 作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。RSA 算法是基于大数分解和素性检测这个数论难题的基础上设计的公钥加密体制,破解RSA体制的难度 等同于大数因式分解的难度。但RSA算法在理论上并不能证明分解因数绝对是如此之困难,也许我 们日后可以找到一种能够快速分解大数的因数的算法,从而使RSA算法失效。RSA算法的另一不可 忽视缺陷是其运算速度要远慢于对称密码体制,这大大限制了它的使用范围,很少有人直接用RSA 算法来加密海量数据或是实时的通信信息,而是将其用在通信信任建立、数字签名和密钥交换等领 域。因篇幅所限,RSA算法的详细描述请参考有关参考书,这里不再赘述。