密码学简答题及计算题

更新时间:2023-03-16 03:59:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

简答题及计算题

1.RSA算法中n=11413,e=7467,密文是5859,利用分解11413=101×113,求明文。

解:n?p?q?101?113?11413

?(n)?(p?1)(q?1)?(100?1)(113?1)?11088

显然,公钥e=7467,满足1<e<?(n),且满足gcd(e,?(n))?1,通过公

式d?e?1mod11088求出

d?e?1mod?(n)?3, 由解密算法m?cdmodn得m?cdmodn?58593mod11413?1415

2.用C语言编写欧几里德算法的程序。 #include

unsigned int Gcd( unsigned int M, unsigned int N ) {

unsigned int Rem; while( N > 0 ) {

Rem = M % N; M = N; N = Rem; }

return M; }

void main() {

int temp; int a,b;

scanf(\ scanf(\

printf(\ printf(\ }

3.用欧几里德算法计算gcd(1024,888)。

1024=888*1+136 gcd(888,136) 888=136*6+72 gcd(136,72) 136=72*1+64 gcd(72,64) 72=64*1+8 gcd(64,8) 64=8*8+0 gcd(8,0) gcd(1024,888)=8

1

4.利用欧拉定理可简化大指数的幂运算,计算21000 000 mod99 gcd(2,99)=1

φ(99)=φ(9*11)=φ(32*11)=9*(1-1/3)*11=66 1000000=16666*60+40

000

21000 mod99≡216666*60+40 mod99≡344mod99≡672mod99≡34

mod99≡240

mod99≡10244

5.设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)+1

1≡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≡1mod5 x≡5mod6 x≡4mod7 x≡10mod11

m1 =5, m2 =6, m3 =7, m4 =11 a1 =1, a2 =5, a3 =4, a4 =10 M=5*6*7*11=2310

M1 =6*7*11=462, M2 =5*7*11=385, M3 =5*6*11=330,M4 =5*6*7=210 Mb≡1modm

462b1≡1mod5 b1≡3mod5

2

385b2≡1mod6 b2≡1mod6 330b3≡1mod7 b3≡1mod7 210b4≡1mod11 b4≡1mod11

1*3*462+5*1*385+4*1*330+1*10*210≡2111mod2310 兵数2111mod2310。 7.求置换

的逆置换。

6==(1 5 6 8 3 7 4 2)

6的逆==(1 2 4 7 3 8 6 5)

8.用维吉尼亚密码加密明文“please keep this message in secret”其中使用的密钥为“computer”试求其密文。 RZQPMXOVGFWCLQVUGMVYBRJGQDTN

9.题目:已知一下密文是由仿射密码得到的试求其明文。

“FMXVEDKAPHFERBNDKRXRSREFMORUDSDKDVSHVUFEDKAPRKDLYEVLRHHRH” 解答:统计得出:

A:2 I:0 Q:0 Y:1 B:1 J:0 R:8 Z:0 C:0 K:5 S:3 D:7 L:2 T:0 E:5 M:2 U:2 F:4 N:1 V:4 G:0 O:1 W:0 H:5 P:2 X:2

根据统计规律我们猜想R是e加密得到的,D是t加密得到的,因为t,e出现频率较高,得到同余方程组 (4a+b)mod26=17 (19a+b)mod26=13 得到a=6

b=19仿射密码要求gcd(a,26)=1,所以此解错误。

再次猜想R是e加密的得到的,k是t加密得到的,从而得到a=3,b=5,将此解带入密文测试发现k=(3,5)正确,推出解密函数d(y)=9y-19

得到解密结果:

algorithmsarequitegeneraldefinitionsofarithmeticprocesses

3

1.简述SHA1算法。

答:SHA1也叫安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标 准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的 过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。 SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。 2.简述HMAC算法。

答:HMAC是密钥相关的哈希运算消息认证码(keyed-Hash Message Authentication Code),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是一个复杂的函数。

4

函数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相似。

5

本文来源:https://www.bwwdw.com/article/ln3v.html

Top