古典密码学实验试卷.doc
文本预览下载声明
甘肃政法学院
本科生实验报告
(三)
姓名:鱼鹏程
学院:公安技术学院
专业:信息安全
班级:2013级信息安全班
实验课程名称:信息安全概论
实验日期: 2016年4月
指导教师及职称:何长鹏
实验成绩:
开课时间: 2015-2016学年 第二学期
甘肃政法学院实验管理中心印制
古典密码实验
【实验内容】
通过运算器工具实现移位密码、乘法密码、仿射密码、Playfair密码和维吉尼亚密码等算法的加解密
对各个算法的加解密进行扩展实验和算法跟踪
【实验原理】
代换密码体制的一般定义为M=C=K=Z26,其中M为明文空间、C为密文空间、K为密钥空间、Z26为26个整数(对应26个英文字母)组成的空间;要求26个字母与模26的剩余类集合{0,1,2,…,25}建立一一对应的关系。
移位密码
移位密码的加密实现上就是将26个英文字母向后循环移动k位,其加解密可分别表示为:
c=Ek(m)=m+k(mod 26)
m=Dk(c)=c-k(mod 26)
其中,m、c、k是满足0≤m,c,k≤25的整数。
乘法密码
乘法密码是通过对字母等间隔抽取以获得密文,其加解密可分别表示如下:
c=mk(mod 26)
m=ck-1(mod26)
其中,m、c、k是满足0≤m,c,k≤25,且gcd(k,26)=1的整数。
仿射密码
仿射密码的加密是一个线性变换,将移位密码和乘法密码相结合,其加解密可分别表示为:
c=Ea,b(m)=am+b(mod 26)
m=Da,b(m)=a-1(c-b)(mod 26)
其中:a、b是密钥,是满足0≤a,b≤25和gcd(a,26)=1的整数,即a和26互素;a-1表示a的逆元,即a-1?a≡1 mod 26。
Playfair密码
Playfair是一个人工对称加密技术,由Charles Wheatstone在1854年发明,得名于其推广者Lord Playfair。Playfair密码是一种著名的双字母单表替代密码,实际上Playfair密码属于一种多字母替代密码,它将明文中的双字母作为一个单元对待,并将这些单元转换为密文字母组合。Playfair密码基于一个5×5的字母矩阵,该矩阵通过使用一个英文短语或单词串即密钥来构造,去掉密钥中重复的字母得到一个无重复字母的字符串,然后再将字母表中剩下的字母依次从左到右、从上往下填入矩阵中。
例如,若密钥为“playfair is a digram cipher”,去除重复字母后,得到有效密钥“playfirsdgmche”,可得字母矩阵如图1.1.11所示。
图1.1.11
注意:字母I,J占同一个位置。
设明文字母对为(P1,P2),Playfair密码的加密算法如下:
若P1、P2在同一行,密文C1、C2分别是紧靠P1、P2右端的字母,其中第一列被看作是最后一列的右方(解密时反向);
若P1、P2在同一列,密文C1、C2分别是紧靠P1、P2下方的字母,其中第一行被看作是最后一行的下方(解密时反向);
若P1、P2不在同一行,也不在同一列,则C1、C2是由P1、P2确定的矩形其它两角的字母,且C1和P1在同一行,C2和P2在同一行(解密时处理方法相同);
若P1=P2,则两个字母间插入一个预先约定的字母,如q,并用前述方法处理;如balloon,则以ba lq lo on 来加密;
若明文字母数为奇数,则在明文尾填充约定字母。
维吉尼亚密码
Vigenenre密码是最著名的多表代换密码,是16世纪法国著名密码学家Blaise de Vigenenre发明的。Vigenenre密码使用一个词组作为密钥,密钥中每一个字母用来确定一个代换表,每一个密钥字母被用来加密一个明文字母,第一个密钥字母加密第一个明文字母,第二个密钥字母加密第二个明文字母,等所有密钥字母使用完后,密钥再次循环使用,于是加解密前需先将明密文按照密钥长度进行分组。密码算法可表示如下:
设密钥K=(k1,k2,…,kd),明文M=(m1,m2,…,mn),密文C=(c1,c2,…,cn);
加密变换为:ci=Eki(mi)=mi+ki(mod 26)
解密变换为:mi=Dki(ci)=ci-ki(mod 26)
通常通过查询维吉尼亚表进行加解密。
【实验环境】
ISES客户端
Microsoft CLR Debugger 2005或其它调试器
【实验步骤】
此处以移位密码为例说明,乘法密码、仿射密码、Playfair密码和维吉尼亚密码可参照完成。
加解密计算
加密
参照实验原理,在明文栏输入所要加密的明文,在密钥栏输入相应的密钥,如下图所示。
图1.1.12
点击“加密”按钮,在密文文本框内就会出现加密后的密文,如图1.1.1
显示全部