实验一密码学实验
- 格式:pdf
- 大小:724.48 KB
- 文档页数:29
实验1 古典密码算法
古典密码算法曾经被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要对象是文字信息,利用密码算法实现文字信息的加密和解密。古典密码学可以分为代替密码(也叫做移位密码)和置换密码(也叫做换位密码)两种,其中代替密码典型的有Caesar密码,数乘密码和仿射变换等,置换密码有单表置换和多表置换等。
练习一 Caesar密码
【实验目的】
● 理解代替密码学加密过程
【实验人数】
每组2人
【系统环境】
Windows
【网络环境】
交换网络结构
【实验工具】
VC++6.0 密码工具
【实验类型】
验证型
【实验原理】
见课件。
【实验步骤】
本练习主机A、B为一组,C、D为一组,E、F为一组。
首先使用“快照X”恢复Windows系统环境。
一. 手动完成Caesar密码
(1) 在实验原理部分我们已经了解了Caesar密码的基本原理,那么请同学们写出当密钥k=3时,对应明文:data security has evolved rapidly的密文:_____________ _______________________________________________________________。 (2) 进入实验平台,单击工具栏中的“密码工具”按钮,启动密码工具,在向导区点击“Caesar密码”。在明文输入区输入明文:data security has evolved rapidly。将密钥k调节到3,查看相应的密文,并与你手动加密的密文进行比较。 请根据密钥验证密文与明文对应关系是否正确。
二. Caesar加密
(1) 进入“加密解密”|“Caesar密码”视图,在明文输入区输入明文(明文应为英文),单击“加密”按钮进行加密。 请将明文记录在这里:____________________________________________________。 (2) 调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值,并记下该密钥k值用于同组主机的解密。加密工作完成后,单击“导出”按钮将密文默认导出到Caesar共享文件夹(D:\Work\Encryption\Caesar\)中,默认文件名为Caesar密文.txt。 (3) 通知同组主机接收密文,并将密钥k通告给同组主机。 (4) 单击“导入”按钮,进入同组主机Work\Encryption\Caesar目录(在“开始|运行”中输入\\同组主机IP\Work\Encryption\Caesar),打开Caesar密文.txt。 (5) 调节密钥k的微调按钮或对照表的移位按钮,将k设为同组主机加密时的密钥k值,这时解密已经成功。请将明文写出:___________________________________________。 (6) 将解密后的明文与同组主机记录的明文比较,请对比明文是否相同。
三. Caesar密码分析
(1) 本机进入“密码工具”|“加密解密”|“Caesar密码”,在明文输入区输入明文(要求明文有一定的意义以便让同组主机分析)。 请将明文记录在这里:_____________________________________________________。 (2) 调节密钥k的微调按钮或者对照表的移位按钮,选择合适的密钥k值完成Caesar加密,单击“导出”按钮,将密文默认导出到Caesar共享文件夹中。 (3) 通告同组主机(不要通告密钥值k)密文已经放在共享文件夹中,让同组主机获取密文。 (4) 单击“导入”按钮将同组主机Caesar密文导入。 (5) 调节密钥k的微调按钮或者对照表的移位按钮来调节密钥,从而进行密码分析(平均13次,最坏26次破解)。请将破解出的明文和密钥记录在这里: 密钥k=_________。 明文___________________________________________________________________。 (6) 将破解后的密钥和明文与同组主机记录的密钥和明文比较。如果不同请调节密钥k继续破解。
四. 源码应用(选做)
设计Caesar加密工具,利用Caesar加密算法对文件进行加密。 单击工具栏“VC6”按钮,启动VC++6.0。选择“File”|“Open Workspace„”加载工程文件“C:\ExpNIS\Encrypt-Lab\Projects\Caesar\caesar.dsw”。基于此工程进行程序设计。
【思考问题】
1. 在手动完成Caesar密码实验中,密钥k=3,试着画出这时的Caesar置换表? 2. 古典密码学曾经被广泛应用,它可以分为代替密码和置换密码两种,请查找相关资料,列举出几种属于代替密码和置换密码的古典密码算法?
练习二 维吉尼亚密码
【实验目的】
● 掌握维吉尼亚密码算法的原理
【实验人数】
每组2人
【系统环境】
Windows
【网络环境】
交换网络结构
【实验工具】
密码工具
【实验类型】
验证型
【实验原理】
维吉尼亚密码是使用一个词组(语句)作为密钥,词组中每一个字母都作为移位替换密码密钥确定一个替换表,维吉尼亚密码循环的使用每一个替换表完成明文字母到密文字母的变换,最后所得到的密文字母序列即为加密得到的密文,具体过程如下: 设m是一个正整数,且i≤j≤m,密钥为K =(K1, K2 „„ Km),则: 第i组的明文为Pi =(Pi1, Pi2 „„ Pim) 第i组的密文为Ci =(Ci1, Ci2 „„ Cim)
那么加密公式为Cij ≡ Pij + Kij (mod 26) 解密公式为 Pij ≡ Cij - Kij (mod 26) 最后把密文编码转换成文本。 维吉尼亚密码的加密过程可以表示为下面的函数: ek(x1,x2......xm)=(x1+k1,x2+k2......xm+km) 其中,m是一个正整数,定义P=C=(Z20)m,对任意密钥k=(k1,k2......km)。它的解密过程可以表示为下面的函数: dk(y1,y2......ym)=(y1-k1,y2-k2......ym-km) 以上运算都是在26上进行的。 维吉尼亚密码的每个密钥相当于一个长度为m的字母串,称为密钥字。维吉尼亚密码一次加密m个明文字母。维吉尼亚密码的密钥空间大小为26m,所以即使m的值很小,使用穷尽密钥搜索方法也需要很长的时间。 由于频率分析法可以有效的破解单表替换密码,法国密码学家维吉尼亚于1586年提出一种多表替换密码,即维吉尼亚密码,也称维热纳尔密码。维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。 Aigpehu 加密算法:例如密钥的字母为[d],明文对应的字母。根据字母表的顺序[d]=4,=2,那么密文就是[d]+-1=4+2-1=5=[e],因此加密的结果为[e]。解密即做此逆运算。 加密公式:密文 = (明文 + 密钥) Mod 26 - 1 解密公式:明文 = [26 + (密文 - 密钥)] Mod 26 + 1 也可以用查表法来进行加密:例如密钥的字母为[d],明文对应的字母,在下图的表格第一行找到字母"d"(深蓝色),再在左边第一列找到字母"b"(绿色),两个字母的交叉点(b行d列)就是字母"E",所以对应的密文字母为[e]。
【实验步骤】
本练习主机A、B为一组,C、D为一组,E、F为一组。 首先使用“快照X”恢复Windows系统环境。 1. 本机单击“密码工具”按钮,进入“加密解密”|“维吉尼亚密码”|“加密/解密”视图,与同组主机协商好密钥= (此密钥分成标准和扩展型,在实验中自行选择)。
「注」标准型使用26*26矩阵与26取模,扩展型使用94*94矩阵与94取模。
2. 本机在明文输入区输入明文,单击“加密”按钮对明文进行加密,加密完成后,单击“导出”按钮,将密文导出到D:\Work\Encryption\Vigenere共享目录中,并通告同组主机通过访问共享文件夹获取密文。 请将明文记录在这里: 。 3. 同组主机打开工具面板中的密码工具,单击“导入”按钮,即将 D:\Work\Encryption\Vigenere中的维吉尼亚密码密文导入,填入协商好的密钥,单击“解密”按钮对密文进行解密。 4. 本机将解密后的明文与同组主机记录的明文对照,如果双方的明文一致,则说明实验成功,否则说明本机或同组主机的维吉尼亚密码计算错误。
实验2 对称密码算法
对称密钥加密机制即对称密码体系,也称为单钥密码体系和传统密码体系。对称密码体系通常分为两大类,一类是分组密码(如DES、AES算法),另一类是序列密码(如RC4算法)。
练习一 DES算法
【实验目的】
● 理解对称加密算法的原理和特点
● 理解DES算法的加密原理
【实验人数】
每组2人
【系统环境】
Windows
【网络环境】
交换网络结构
【实验工具】
VC++6.0 密码工具
【实验类型】
验证型
【实验原理】
见课件及教材。
【实验步骤】
本练习主机A、B为一组,C、D为一组,E、F为一组。
首先使用“快照X”恢复Windows系统环境。
一.DES加密解密
(1) 本机进入“密码工具”|“加密解密”|“DES加密算法”|“加密/解密”页签,在明文输入区输入明文:____________________________________________________。 (2) 在密钥窗口输入8(64位)个字符的密钥k,密钥k=__________。单击“加密”按钮,将密文导出到DES文件夹(D:\Work\Encryption\DES\)中,通告同组主机获取密文,并将密钥k告诉同组主机。 (3) 单击“导入”按钮,从同组主机的的DES共享文件夹中将密文导入,然后在密钥窗口输入被同组主机通告的密钥k,点击“解密”按钮进行DES解密。 (4) 将破解后的明文与同组主机记录的明文比较。
二.DES算法
本机进入“密码工具”|“加密解密”|“DES加密算法”|“演示”页签,向64位明文中输入8个字符(8*8bit=64),向64位密钥中输入8个字符(8*8bit=64)。点击“加密”按钮。完成加密操作,分别点击“初始置换”、“密钥生成演示”、“十六轮加密变换”和“终结置换”按钮,查看初始置换、密钥生成演示、十六轮加密变换和终结置换的详细加密操作流程。
三.源码应用(选做)
设计DES加密工具,利用DES加密算法对文件进行加密。 单击工具栏“VC6”按钮,启动VC++6.0。选择“File”|“Open Workspace„”加载工程文件“C:\ExpNIS\Encrypt-Lab\Projects\DES\DES.dsw”。基于此工程进行程序设计。
【思考问题】
1. 根据实验原理的讲解,回答下列问题: (1) DES每一个明文分组的长度是多少位?这个明文分组加密后的密文是多少位? (2) 在DES算法的各种置换中,哪个置换为DES提供了最好的安全性? 2. DES的S盒在设计时就能够防止某些类型的攻击,当1991年Biham和Shamir发现的差分攻击的方法时,美国国家安全局就已承认某些未公布的S盒设计原则正是为了使得差分密码分析变得不可行。也就是说,差分密码分析在DES最初被研发时就已为IBM的研发者所知,但是这种方法却被保密了将近20年,直到Biham和Shamir又独立地发现了这种攻击。目前,DES加密方法已经被认为是不安全的了,请同学查阅相关资料,列出两种DES的分析方法。