给定密匙zues,通过playfair算法得到加密后的密文ZYIZRE...

信息安全原理与技术A卷_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
信息安全原理与技术A卷
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Playfair解密加密算法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Playfair解密加密算法
上传于||文档简介
&&P​l​a​y​f​a​i​r​解​密​加​密​算​法
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢密码学习题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
密码学习题
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢现代密码学期末试卷
现代密码学期末试卷
一.选择题1、关于密码学的讨论中,下列( D )观点是不正确的。A、密码学是研究与信息安全相关的方面如机密性、完整性、实体鉴别、抗否认等的综合技术B、密码学的两大分支是密码编码学和密码分析学C、密码并不是提供安全的单一的手段,而是一组技术D、密码学中存在一次一密的密码体制,它是绝对安全的2、在以下古典密码体制中,属于置换密码的是( B)。A、移位密码 B、倒序密码 C、仿射密码 D、PlayFair密码3、一个完整的密码体制,不包括以下( C )要素。A、明文空间 B、密文空间 C、数字签名 D、密钥空间4、关于DES算法,除了(C )以外,下列描述DES算法子密钥产生过程是正确的。A、首先将 DES 算法所接受的输入密钥 K(64 位),去除奇偶校验位,得到56位密钥(即经过PC-1置换,得到56位密钥)B、在计算第i轮迭代所需的子密钥时,首先进行循环左移,循环左移的位数取决于i的值,这些经过循环移位的值作为下一次循环左移的输入C、在计算第i轮迭代所需的子密钥时,首先进行循环左移,每轮循环左移的位数都相同,这些经过循环移位的值作为下一次循环左移的输入D、然后将每轮循环移位后的值经PC-2置换,所得到的置换结果即为第i轮所需的子密钥Ki5、日,NIST正式宣布将( B )候选算法作为高级数据加密标准,该算法是由两位比利时密码学者提出的。A、MARS B、Rijndael C、Twofish D、Bluefish*6、根据所依据的数学难题,除了( A )以外,公钥密码体制可以分为以下几类。 A、模幂运算问题 B、大整数因子***问题 C、离散对数问题 D、椭圆曲线离散对数问题7、密码学中的杂凑函数(Hash函数)按照是否使用密钥分为两大类:带密钥的杂凑函数和不带密钥的杂凑函数,下面( C )是带密钥的杂凑函数。A、MD4 B、SHA-1C、whirlpool D、MD58、完整的数字签名过程(包括从发送方发送消息到接收方安全的接收到消息)包括(C )和验证过程。 A、加密 B、解密 C、签名 D、保密传输 *9、除了( D )以外,下列都属于公钥的分配方法。A、公用目录表B、公钥管理机构C、公钥***D、秘密传输10、密码学在信息安全中的应用是多样的,以下( A )不属于密码学的具体应用。 A、生成种种网络协议 B、消息认证,确保信息完整性 C、加密技术,保护传输信息 D、进行身份认证二.填空题1、信息安全中所面临的威胁攻击是多种多样的,一般将这些攻击分为两大类(主动攻击)和被动攻击。其中被动攻击又分为(消息内容的泄露)和(进行业务流分析)。2、密码技术的分类有很多种,根据加密和解密所使用的密钥是否相同,可以将加密算法分为:对称密码体制和(非对称密码体制),其中对称密码体制又可分为两类,按字符逐位加密的(序列密码)和按固定数据块大小加密的(分组密码)。 3、密码分析是研究密码体制的破译问题,根据密码分析者所获得的数据资源,可以将密码分析(攻击)分为:(惟密文分析)、已知明文分析(攻击)、(选择明文分析)和选择密文分析(攻击)。4、古典密码学体制对现代密码学的研究和学习具有十分重要的意义,实现古典密码体制的两种基本方法(代换)和(置换)仍是构造现代对称分组密码的核心方式。5、(DES)是美国国家标准局公布的第一个数据加密标准,它的分组长度为(64)位,密钥长度为(64(56))位。 6、1976年,美国两位密码学者Diffe和Hellman在该年度的美国计算机会议上提交了一篇论文,提出了(公钥密码体制)的新思想,它为解决传统密码中的诸多难题提出了一种新思路。7、Elgamal算法的安全性是基于(离散对数问题),它的最大特点就是在加密过程中引入了一个随机数,使得加密结果具有(不确定性),并且它的密文长度是明文长度的(两)倍。该算法的变体常用来进行数据签名。8、密码系统的安全性取决于用户对于密钥的保护,实际应用中的密钥种类有很多,从密钥管理的角度可以分(初始密钥)、(会话密钥)、密钥加密密钥和(主密钥)。三、简述题(每小题8分,共40分)1、古典密码体制中代换密码有哪几种,各有什么特点?2、描述说明DES算法的加解密过程(也可以画图说明)。3、以DES为例,画出分组密码的密码分组链接(CBC)模式的加密解密示意图,假设加密时明文一个比特错误,对密文造成什么影响,对接收方解密会造成什么影响?4、简述公钥密码体制的基本思想以及其相对于传统密码体制的优势。 5、 简述数字签名的基本原理及过程。四、计算题(每题10分,共20分)1、 计算通过不可约多项式X+X+X+X+1构造的GF(2)上,元素(83)H的乘法逆元。2、 RSA算法中,选择p=7,q=17,e=13,计算其公钥与私钥,并采用快速模乘(反复平方乘)方法,加密明文m=(19)10。1、 答:在古典密码学中,有四种类型的代替密码:①简单代替密码(或单表代替密码)(1分),它将明文字母表中的每个字母用密文字母表中的相应字母来代替,明密文表字母存在惟一的一一对应关系,然后通过明密文对照表来进行加解密,容易受到频率统计分析攻击,例如:恺撒密码、仿射密码等(1分)。②多名码代替密码(1分),将明文中的每个字母按一定规律映射到一系列密文字母,这一系列密文字母称为同音字母,它的密文的相关分布会接近于平的,能够较好挫败频率分析,较简单代替密码难破译(1分)。③多字母代替密码(1分),通过一次加密一组字母来使密码分析更加困难,例如Playfair密码(1分)。④多表代替密码(1分),使用从明文字母到密文字母的多个映射,每个映射像简单代替密码中的一一对应,比简单代替密码更安全一些,例如,维吉尼亚密码等(1分)。2、 答:DES算法是一个分组加密算法,它以64位分组(0.5分)对数据进行加密,其初始密钥也是64位,它的加密过程可以描述如下:①64位密钥经子密钥产生算法产生出16个子密钥:K1,K2,…K16,分别供第一次,第二次, …,第十六次加密迭代使用(1分)。②64位明文经初始置换IP(0.5分),将数据打乱重排并分成左右两半。左边为L0,右边为R0: X=L0R0=IP(x)。③16轮(0.5分)轮变换,每轮(第i轮)操作如下:在轮子密钥Ki的控制下,由轮函数f对当前轮输入数据的右半部分Ri-1进行加密:第一步,将Ri-1经过E盒置换扩展成48位(0.5分),第二步,将Ri-1与48位的轮子密钥Ki逐比特异或(0.5分),第三步,对Ri-1进行S盒压缩代换,将其压缩为32位(0.5分),第四步,对Ri-1进行P盒置换(0.5分)。然后,将Ri-1与当前轮输入的左半部分Li-1进行逐比特异或,将该运算结果作为当前轮(第i轮)右半部份的输出Ri=Li-1f(Ri-1,Ki)(0.5分);将本轮输入的右半部分数据作为本轮输出的左半部分数据:Li=Ri-1(0.5分)。④16轮变换结束后,交换输出数据的左右两部分:X=R16L16(1分)。⑤经过逆初始变换IP输出密文(0.5分)。对于DES算法来说,其解密过程与加密过程是同一过程,只不过使用子密钥的顺序相反(1分)。3、答:因为计算机数据自身的特殊性以及不同场合对于数据加密速度及效率的不同需求,再采用分组对称密码进行数据加密-18438时往往要选择相应的工作模式,密文链接模式(CBC)就是其中的一种。①以DES分组密码为例,CBC模式的加密示意图如下(2分):②以DES分组密码为例,CBC模式的解密示意图如下(2分):③加密时明文的一个比特错误,会导致该组加密密文发生变化,然后这个错误反馈值会作为下一次DES加密的输入值,再经过DES加密变换。会导致后面的密文都受到影响(2分)。④对于接收方来说,加密明文的一个比特错误,只会影响对应明文块所产生的密文的正常解密,其他数据块可以正常准确地解密(2分)。4、答:①公钥密码体制的基本思想是把密钥分成两个部分:公开密钥和私有密钥(简称公钥和私钥),公钥可以向外公布,私钥则是保密的(1分);密钥中的任何一个可以用来加密,另一个可以用来解密(1分);公钥和私钥必须配对使用,否则不能打开加密文件(1分);已知密码算法和密钥中的一个,求解另一个在计算上是不可行的(1分)。②相对于传统密码体制来说,公钥密码体制中的公钥可被记录在一个公共数据库里或以某种可信的方式公开发放,而私有密钥由持有者妥善地秘密保存。这样,任何人都可以通过某种公开的途径获得一个用户的公开密要,然后进行保密通信,而解密者只能是知道私钥的密钥持有者(1分),该体制简化了密钥的分配与分发(1分);同时因为公钥密码体制密钥的非对称性以及私钥只能由持有者一个人私人持有的特性(1分),使得公钥密码体制不仅能像传统密码体制那样用于消息加密,实现秘密通信,还可以广泛应用于数字签名、认证等领域(1分)。5、答:数字签名与加密不同,它的主要目的是保证数据的完整性和真实性,一般包括两部分:签名算法和验证算法,通常由公钥密码算法和杂凑函数(Hash算法)结合实现。假设发送方A要向接收方B发送一消息M,并对该消息进行数字签名,其具体的原理和过程如下:①发送方A采用杂凑函数生成要发送消息M的消息摘要:Hash(M)(2分);②发送方A采用自己的私钥Pra对消息M的消息摘要加密,实现签名:EPRa(Hash(M)),并将签名与消息M并联形成最终要发送的消息:M|| EPRa(Hash(M)),然后发送该消息(2分);③接收方B接收到消息后,采用发送方A的公钥Pua解密签名,恢复原始消息的摘要:Hash(M)=DPUa(EPRa(Hash(M)))(2分);④接收方B采用杂凑函数,重新计算消息M的消息摘要:H’ash(M),并与从发送方A接收到的消息摘要进行比较,若相等,则说明消息确实是发送方A发送的,并且消息的内容没有被修改过(2分)。数字签名技术对网络安全通信及各种电子交易系统的成功有重要的作用。1、解:①将元素(83)H转换为二进制数据为((0.5分);②将二进制数据(转换为给定有限域上的多项式:X+X+1(0.5分);③利用欧几里得扩展算法求解以上多项式在指定有限域上的逆多项式(每步(行)2分)):777由以上计算可知,在给定有限域中X+X+1的逆多项式为X; ④将多项式X用二进制数据表示为:((0.5分); ⑤将二进制数据(转换为十六进制(80)H(0.5分); ⑥元素(83)H在给定有限域上的乘法逆元为(80)H。 3、 解:①密钥的生成:●7模数n=p×q=7×17=119,?(n)=(p-1)×(q-1)=6×16=96(0.5分);因为加密指数e和私密钥d满足:ed mod ?(n) =1,所以d=e mod ?(n) ,私钥d的计算过程如下(1分): -1●由以上计算可知私密钥d=37。●公钥为(e,n)=(13,119),私钥为的d=37(0.5分)。相关文章推荐:1.2.3.4.5.6.7.8.9.10.衰莫大于心死,愁莫大于无志。应届.网校园会信息一网打尽,pincai.com
下页更精彩:1javascript实现playfair和hill密码算法
时至期末,补习信息安全概论作业。恰巧遇古典密码学算法中的playfair算法和hill算法,用javascript语言实现起来是在有趣,边查百度边编码,顺便好好补习一下javascript基础。&playfairPlayfair密码(英文:Playfair cipher 或 Playfair square)是一种替换密码。依据一个5*5的正方形组成的密码表来编写,表中排列有25个字母。对于英语中的26个字母,去掉最常用的Z,构成密码表。&实现思路:1,编制密码表  密钥是一个单词或词组,密码表则根据用户所给出的密钥整理而出。若有重复字母,可将后面重复的字母去掉。 如密钥crazy dog,可编制成COHMTRGINUABJPVYEKQWDFLSX /**
功能:编制密码表**
参数:密钥(经过去除空格和大写处理)**
返回:密码表*/function createKey(keychars){
//字母顺序数组
var allChars = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y'];
//变量keychars获取字母在字母顺序表中位置,删除该字母
for(var i = 0 ;i&keychars.i++){
var index = allChars.indexOf(keychars[i]);
if (index & -1) {
allChars.splice(index, 1);
//将keychar中的字母插入到字母表中
for(var i = keychars.length-1;i&=0;i--){
allChars.unshift(keychars[i]);
//从第一列将keychars插入至密码表
for(var i = 0 ; i&5 ; i++){
for(var j = 0; j&5 ;j++){
key[j][i] = allChars[i*5+j];
考虑将keychars插入到密码表时需要去除重复字符和Z,设计算法如下:/**
功能:去除字符串中重复字母**
参数:需要进行处理的字符串**
返回:处理过的字符串*/function removeDuplicate(str){
var result = [],tempStr = "";
var arr = str.split('');//把字符串分割成数组
//arr.sort();//排序
for(var i = 0; i & arr. i++){
var repeatBack = true;//设计变量是为确保字符串前部分不存在相同字符,因为以下算法只能确保连在一起相同的字符
for(var j = 0;j&result.j++){
if(arr[i] == result[j])
repeatBack = false;
if(arr[i] !== tempStr && repeatBack){
result.push(arr[i]);
tempStr = arr[i];
return result.join("");//将数组转换为字符串}2,整理明文  将明文每两个字母组成一对。如果成对后有两个相同字母紧挨或最后一个字母是单个的,就插入一个字母X。初期编码时考虑不周到,强硬地拒绝输入字母个数为单数,用户体验不佳。var k = document.getElementById("keychars").value.toUpperCase().replace(//s/ig,'');对明文去除空格和转换为大写处理。3,明文加密规则(出自百度):&1 )若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。如,按照前表,ct对应oc2 )若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。3 )若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母(至于横向替换还是纵向替换要事先约好,或自行尝试)。如按照前表,wh对应tk或kt。&如,依照上表,明文where there is life,there is hope.可先整理为wh er et he re is li fe th er ei sh op ex然后密文为:kt yg wo ok gy nl hj of cm yg kg lm mb wf将密文变成大写,然后几个字母一组排列。如5个一组就是KTYGW OOKGY NLHJO FCMYG KGLMM BWF&4,解密将密钥填写在一个5*5的矩阵中(去出重复字母和字母z),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密文得到明文。反其道而行。&实现效果如图:hill希尔密码(Hill Password)是运用基本矩阵论原理的替换密码。依据一个5*5的正方形组成的密码表来编写,表中排列有25个字母。对于英语中的26个字母,去掉最常用的Z,构成密码表。&实现思路:1,编写字母表var chars = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];2,随机生成密匙/**
功能:随机生成密钥**
返回:密匙矩阵*/function randomCreateKey(){
//随机生成0到26的数字
for(var i = 0;i&3;i++){
for(var j = 0;j&3;j++){
key[i][j] = Math.round(Math.random()*100%26)
}}3,关键性代码,根据自动生成的密匙,对明文进行处理:/**
功能:hill算法**
参数:长度是3的倍数的大写数组*
返回:加密后的字符串*/function hill(p){
//大写字母密文
var res = "";
//制定总共需要对字符串经行遍历的次数
var round = Math.round(p.length/3);
for(var b = 0;b&b++){
var temp3 ="";
var tempArr3 = [];
var sumArr3 = [];
for(var i = 0;i&3;i++){
temp3 += p.shift();
for(var j = 0;j&chars.j++){
if(temp3[i] == chars[j])
tempArr3[i] =
for(var i =0;i&3;i++){
for(var j = 0;j&3;j++){
sumArr3[i] = (tempArr3[j]*key[i][j])%26;
//获取字符在字母表中对应索引
for(var i =0;i&3;i++){
res += chars[sumArr3[i]];
return}; &实现效果如图:&以上算法存在不足:& & & & &1,面向过程设计,耦合度高& & & & &2,过多嵌套循环,算法效率有待优化& & & & &3,对于可能出现的情况考虑不周到,例如没有对用户输入非字母字符时进行处理。总结:学了一段时间的信息安全概论这门课,只能对信息安全了解皮毛。信息安全是一门很有趣的科目,平时遇到一些问题尽可能多思考,多动手,多运用。同时也要加强数学基础积累,巩固js基础,拓宽知识面。这条路任重道远。& & &&
最新教程周点击榜
微信扫一扫

参考资料

 

随机推荐