密码学期中试题

时间:2023-04-20 23:56:09 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
《密码学》期中考

说明:本试题为第10周随堂考试试题,内容包括前9周所学知识,其难度与期末考试相当。按照学校规定,期中测试成绩将占总评成绩的16%。考试形式为开卷。

姓名:_______ 学号:____________________ 专业:________________ 总分:_________

1. 填空(40,必做)

a) 在密码学中,使用________方法保证数据不被非授权人员查看消息内容,即保护了

消息的_______性;使用______方法保证数据不被非授权人员更改,即保证了消息________性。(4)

b) 在网络安全中,攻击方法主要分为两类,______________(例如,重播旧消息,修

改传输的消息内容)和______________(例如,侦听)(2)

c) 密码算法的安全性应该完全依赖于___________,而不应该依赖于算法的保密性,

因此,普通商用密码算法一般公开。(1) d) 常见的密码破解方法包括:_____________________________________________

和选择密文攻击。理论上,任何密码算法都可以通过____________的方法破解。(4) e) 已知某代换密码用于加密日语平假名,已知平假名共有46个,则其密钥空间的大

小为________________(不要求计算,写出公式即可)(2) f) 已知某置换,其逆为(1,4,2)(3,6)(5,7,8),则这个置换为_____________(可以使用置换

的任意一种表示)(1)

g) 破解希尔密码时,若已知加密密钥字长度为4,则能保证正确破解需要的明文(

)长度至少为_______(2)

h) DES加密中,明文分组长度为________比特,有效密钥长度为_______比特,每组

加密密文长度为_________比特(3)

i) DES解密算法与加密算法相同,只是______________________(1) j) DES加密算法中,共生成_______个轮子密钥,每个子密钥长度为________比特(2) k) DES加密中,若S1的输入为0x2C,则其输出是_______;输出0x0e的输入可能为

________________(列举所有可能,多,少,错均无分)(4) l) 按照AESGF(28) 上定义的运算计算,0x3d + 0xf1 = _____0x3d * 0xf1 = _____,

其中,乘法的模为0x11b(4)

m) Rijndael算法,其密钥长度和分组长度可以从______,______,______比特中独立的

选取,其组合可能有________种。(4)

n) Rijndael算法中,若分组长度为192轮数为14时,轮子密钥总长度为______比特

(2)

o) 公钥密码体制中,使用_______(接收方/发送方)的______(公钥/私钥)加密,

使用_______(接收方/发送方)的______(公钥/私钥)解密;使用_______(接收/发送方)______(公钥/私钥)签名,使用_______(接收方/发送方)______(公钥/私钥)验证。(4)

2. 已知某有意义的英语明文,使用移位密码(加法密码)加密后,得到如下密文:J BCRCLQ

RW CRVN BJENB WRWN(其中,字母a对应与数字0,明文使用小写字母表示,密文使用大写字母表示,标点不加密,下同),请破解,得出其加密密钥及明文。(52~5题选作3)


3. 证明:假设仿射密码密钥为k=(a,b),加密函数为c=a*x + b,证明仿射密码能解密的充分

必要条件是gcd(a,26) = 1.(5 2~5题选作3)

4. 利用维吉尼亚密码,使用密钥字CRYPTOGRAPHY加密明文jin tian wan shang shi dian,

xiao shu lin pang jian mian(5 2~5题选作3)

5. 已知希尔密码,其加密密钥为((11, 8), (3, 7)),某密文是DELW,求其对应的明文。(5

2~5题选作3)

6. 已知某DES算法的C语言实现,其函数声明如下,请利用已定义的函数,实现TDES

加密算法。(10,必做) //文件des.h

typedef unsigned char byte;

void DesEnc(byte * pbPlainText, int ibPlainTextLen, byte * pbKey, int ibKeyLen,

byte * pbCipherText, int ibCipherTextLen); void DesDec(byte * pbCipherText, int ibCipherTextLen, byte * pbKey, int ibKeyLen,

byte * pbPlainText, int ibPlainTextLen);


本文来源:https://www.wddqw.com/doc/1e173b73f242336c1eb95e3a.html