您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 密码学简答题及计算题
1简答题及计算题1.RSA算法中n=11413,e=7467,密文是5859,利用分解11413=101×113,求明文。解:10111311413npq()(1)(1)(1001)(1131)11088npq显然,公钥e=7467,满足1<e<()n,且满足gcd(,())1en,通过公式1mod11088de求出1mod()3den,由解密算法moddmcn得3mod5859mod114131415dmcn2.用C语言编写欧几里德算法的程序。#includestdio.hunsignedintGcd(unsignedintM,unsignedintN){unsignedintRem;while(N0){Rem=M%N;M=N;N=Rem;}returnM;}voidmain(){inttemp;inta,b;scanf(%d,&a);scanf(%d,&b);printf(thegreatestcommonfactorof%dand%dis,a,b);printf(%d\n,Gcd(a,b));}3.用欧几里德算法计算gcd(1024,888)。1024=888*1+136gcd(888,136)888=136*6+72gcd(136,72)136=72*1+64gcd(72,64)72=64*1+8gcd(64,8)64=8*8+0gcd(8,0)gcd(1024,888)=824.利用欧拉定理可简化大指数的幂运算,计算21000000mod99gcd(2,99)=1φ(99)=φ(9*11)=φ(32*11)=9*(1-1/3)*11=661000000=16666*60+4021000000mod99≡216666*60+40mod99≡240mod99≡10244mod99≡344mod99≡672mod99≡345.设Z2[x]的两个元a(x)=2x4+2,b(x)=x5+2,求gcd[a(x),b(x)]=g(x),并找出s(x),t(x)使g(x)=s(x)a(x)+t(x)b(x)。x5+2≡2x(2x4+2)+(2x+2)2x4+2≡(x3+2x2+x+2)(2x+2)+11≡2x4+2-(x3+2x2+x+2)(2x+2)≡2x4+2-(x3+2x2+x+2)[(x5+2)-2x(2x4+2)]≡(2x4+4x3+2x2+4x+1)(2x4+2)+(2x3+x2+2x+1)(x5+2)≡(2x4+x3+2x2+x+1)(2x4+2)+(2x3+x2+2x+1)(x5+2)所以,g(x)=1,s(x)=2x4+x3+2x2+x+1,t(x)=2x3+x2+2x+1。6.(韩信点兵问题)有兵一队,若列成五行纵队,则末行一人;成六行纵队,则末行五人;成七行纵队,则末行四人;成十一行纵队,则末行十人,求兵数。x≡1mod5x≡5mod6x≡4mod7x≡10mod11m1=5,m2=6,m3=7,m4=11a1=1,a2=5,a3=4,a4=10M=5*6*7*11=2310M1=6*7*11=462,M2=5*7*11=385,M3=5*6*11=330,M4=5*6*7=210Mb≡1modm462b1≡1mod5b1≡3mod53385b2≡1mod6b2≡1mod6330b3≡1mod7b3≡1mod7210b4≡1mod11b4≡1mod111*3*462+5*1*385+4*1*330+1*10*210≡2111mod2310兵数2111mod2310。7.求置换的逆置换。6==(15683742)6的逆==(12473865)8.用维吉尼亚密码加密明文“pleasekeepthismessageinsecret”其中使用的密钥为“computer”试求其密文。RZQPMXOVGFWCLQVUGMVYBRJGQDTN9.题目:已知一下密文是由仿射密码得到的试求其明文。“FMXVEDKAPHFERBNDKRXRSREFMORUDSDKDVSHVUFEDKAPRKDLYEVLRHHRH”解答:统计得出:A:2I:0Q:0Y:1B:1J:0R:8Z:0C:0K:5S:3D:7L:2T:0E:5M:2U:2F:4N:1V:4G:0O:1W:0H:5P:2X:2根据统计规律我们猜想R是e加密得到的,D是t加密得到的,因为t,e出现频率较高,得到同余方程组(4a+b)mod26=17(19a+b)mod26=13得到a=6b=19仿射密码要求gcd(a,26)=1,所以此解错误。再次猜想R是e加密的得到的,k是t加密得到的,从而得到a=3,b=5,将此解带入密文测试发现k=(3,5)正确,推出解密函数d(y)=9y-19得到解密结果:algorithmsarequitegeneraldefinitionsofarithmeticprocesses41.简述SHA1算法。答:SHA1也叫安全哈希算法(SecureHashAlgorithm)主要适用于数字签名标准(DigitalSignatureStandardDSS)里面定义的数字签名算法(DigitalSignatureAlgorithmDSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。2.简述HMAC算法。答:HMAC是密钥相关的哈希运算消息认证码(keyed-HashMessageAuthenticationCode),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。HMAC引擎提供HMAC运算功能,发挥两方面的作用:a)验证TPM接受的授权数据和认证数据;b)确认TPM接受到的命令请求是已授权的请求,并且,命令在传送的过程中没有被改动过。3.简述序列密码算法和分组密码算法的不同。序列密码分组密码明文长度可以小于1字节,有记忆;加密不仅与密钥和明文有关,还与当前状态有关,也叫状态密码;设计关键在于密钥序列产生器,使生成的密钥序列尽可能高的不可预测性。明文分成比较大的块,无记忆;每块使用相同的加密函数进行处理;增加记忆模块,形成一种序列密码;设计关键在于加解密算法,是明文密文之间的关联在密钥控制下尽可能复杂;4.简述DES算法中S盒的特点?答:S盒是DES中唯一的非线性部分,DES的安全强度主要取决于S盒的安全强度。DES中8个S盒,输入均为6位,输出为4位。有以下特点:①具有良好的非线性,即输出地每一个比特与全部输入比特有关;②每一行包括所有16种4位二进制。③两个输入相差1bit比特时,输出相差2bit。④如果两个输入刚好在中间2个比特上不同,则输出至少有2个比特不同。⑤如果两个输入前2位不同而最后2位相同,则输出一定不同。⑥相差6bit的输入共32对,在这32对中有不超过8对的输出相同。5.简述AES的子密钥生成过程答:AES首先将初始密钥输入到一个4*4矩阵中。这个4*4矩阵的每一列的4个字节组成一个字,矩阵4列的4个字依次命名为w[0]w[1]w[2]和w[3]。它们构成了一个以字为单位的数组w。接着,对w数组扩充40个新列,构成总共44列的扩展密码数组。新列以如下的递归方式产生:(1)如果i不是4的倍数,那么第i列由如下等式确定:w[i]=w[i-4]⊕w[i-1](2)如果i是4的倍数,那么第i列由如下等式确定:w[i]=w[i-4]⊕T(w[i-1])其中,T是一个复杂的函数。5函数T由三个部分组成:自循环、字节代换和轮常量异或,这三部分的作用分别如下:(1)字循环:将1个字中的4个字节循环左移1个字节。(2)字节代换:对字循环的结果使用S盒进行字节代换。(3)轮常量抑或:将前两步的结果同轮常量Rcon[j]进行异或,其中J表示轮数。6.简述DES与AES的相同之处答:①二者的轮函数都是由3层构成,非线性层、线性混合层、子密钥异或,只是顺序不同。②AES的子密钥异或对应于DES中S盒之间的子密钥异或。③AES的列混合运算的目的是让不同的字节相互影响,和DES中F函数的输出与左边一半数据相加也有类似的效果。④AES的非线性运算是字节代换,对应于DES中唯一的非线性运算S盒。⑤行移位运算保证了每一行的字节不仅仅影响其他行对应的字节,而且影响其他行所有的字节,这与DES中置换P相似。
本文标题:密码学简答题及计算题
链接地址:https://www.777doc.com/doc-2464936 .html