密码学期中试题
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
《密码学》期中考试 说明:本试题为第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) 按照AES中GF(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,明文使用小写字母表示,密文使用大写字母表示,标点不加密,下同),请破解,得出其加密密钥及明文。(5’,2~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