信息安全工程师下午习题记忆点.docxVIP

  • 60
  • 0
  • 约1.74万字
  • 约 28页
  • 2019-01-13 发布于浙江
  • 举报
试题一(共20分) 【说明】 密码编码学是研究把信息(明文)变换成没有密钥就不能解读或很难解读的密文的方法,密码分析学的任务是破译密码或伪造认证密码。 【问题1】(10分) 通常一个密码系统简称密码体制,请简述密码体制的构成。 密码体制由以下五个部分组成: (1)明文空间M:全体明文的集合。 (2)密文空间C:全体密文的集合。 (3)加密算法E:一组明文M到密文C的加密变换。 (4)解密算法D:一组密文C到明文M的加密变换。 (5)密钥空间K:包含加密密钥Ke和解密密钥Kd的全体密钥集合。 【问题2】(3分) 根据所基于的数学基础的不同,非对称密码体制通常分为(1)、(2)、(3)。 (1)基于因子分解。 (2)基于离散对数。 (3)基于椭圆曲线离散对数。 【问题3】(2分) 根据密文数据段是否与明文数据段在整个明文中的位置有关,可以将密码体制分为(4)体制和(5)体制。 (4)分组密码。 (5)序列密码。 【问题4】(5分) 在下图给出的加密过程中,mi(i=1,2,...,n)表示明文分组,ci(i=1,2,...,n)表示密文分组,K表示密钥,E表示分组加密过程。该分组加密过程属于哪种工作模式?这种分组密码的工作模式有什么缺点? 该加密过程属于CBC的密文链接方式。 CBC的密文链接方式下:加密会引发错误传播无界,解密引发错误传播有界。CBC不利于并行计算。 拓展:密码分组链接模式(CBC)可以分为密文链接方式和明密文链接方式。 (1)CBC的密文链接方式。 密文链接方式中,输入是当前明文组与前一密文组的异或。CBC的密文链接方式下:加密会引发错误传播无界,解密引发错误传播有界,CBC不利于并行计算。 (2)CBC的明密文链接方式。 明密文链接方式中,输入是前一组密文和前一组明文异或之后,再与当前明文组异或。CBC的明密文链接方式下:加密和解密均会引发错误传播无界。 试题二(共15分) 【说明】 RSA是典型的非对称加密算法,该算法基于大素数分解。核心是模幂运算。利用RSA密码可以同时实现数字签名和数据加密。 【问题1】(3分) 简述RSA的密钥生成过程。 选出两个大质数p和q,使得p≠q 计算p×q=n 计算φ(n)=(p-1)×(q-1) 选择e,使得1e(p-1)×(q-1),并且e和(p-1)×(q-1)互为质数 计算解密密钥,使得ed=1 mod(p-1)×(q-1) 公钥=e,n 私钥=d,n 公开n参数,n又称为模 消除原始质数p和q 【问题2】(4分) 简述RSA的加密和解密过程。 设定C为密文,M为明文: 加密: C=Me mod n 解密: M=Cd mod n 【问题3】(4分) 简述RSA的数字签名过程。 设M为明文,M的签名过程为: 签名:Md mod n 验证签名:(Md)e mod n 【问题4】(4分) 在RSA中,已获取用户密文C=10,该用户的公钥e=5,n=35,求明文M。 M=5 解:已知n=35,得到p和q分别为5和7; 计算φ(n)=(p-1)×(q-1)=24 已知公钥e=5,又由于私钥d满足ed=1mod(p-1)×(q-1),因此d=5 明文M=Cd mod n=105 mod 35=5 试题三(英10分) 【说明】 阅读下面程序,回答问题1至问题3。 【问题1】(3分) 上述代码能否输出“This is a test”?上述代码存在什么类型的隐患? 不能。(1分) 代码存在缓冲区溢出错误。(2分) 【问题2】(4分) 造成上述隐患的原因是? (1)function()函数将长度为128字节的字符串拷贝到只有16字节的缓冲区中去。(2分) (2)strcpy()函数进行字符串拷贝时,没有进行缓冲区越界检查。(2分) 【问题3】(3分) 给出消除该安全隐患的思路。 防范缓冲溢出的策略有: ·系统管理防范策略:关闭不必要的特权程序、及时打好系统补丁。(1分) ·软件开发的防范策略:正确编写代码、缓冲区不可执行、改写C语言函数库、程序指针完整性检查、堆栈向高地址方向增长等。(2分) 试题分析 C语言程序在内存中分为三个部分:程序段、数据段和堆栈。程序段里存放程序的机器码和只读数据;数据段存放程序中的静态数据;动态数据则通过堆栈来存放。在内存中,它们的位置如下图所示。 Function()函数将长度为128字节的字符串拷贝到只有16字节的缓冲区中去;而调用strcpy()函数进行字符串拷贝时,没有进行缓冲区越界检查。 下图中可以看到执行function()函数前后的堆栈情况。 程序执行function()函数完毕时,由于缓冲区溢出,子程序的返回地址被覆盖,变成了0AAAA的ASCII码表示,A的ASCI码为0x41)。因此无法执行 print(This is

文档评论(0)

1亿VIP精品文档

相关文档