内容发布更新时间 : 2024/11/10 9:16:41星期一 下面是文章的全部内容请认真阅读。
计算机信息安全技术作业习题
习题1
1.对计算机信息系统安全构成威胁的主要因素有哪些?
2.从技术角度分析引起计算机信息系统安全问题的根本原因是什么? 3.计算机信息安全研究的主要内容有哪些? 4.什么是TEMPEST技术?
5.什么是信息的完整性、可用性、保密性? 6.安全体系结构ISO7498-2标准包括哪些内容? 7.计算机系统的安全策略内容有哪些?
8.在计算机安全系统中人、制度和技术的关系如何?
9.什么是计算机系统的可靠性?计算机可靠性包含哪些内容? 10.提高计算机系统的可靠性可以采取哪两项措施?
11.容错系统工作过程包括哪些部分?每个部分是如何工作的? 12.容错设计技术有哪些? 13. 故障恢复策略有哪两种?
14.什么是恢复块方法、N-版本程序设计和防卫式程序设计? 习 题 2
1.请说明研究密码学的意义以及密码学研究的内容。 2.古典代替密码体制和换位密码体制有什么特点?
3. 请比较代替密码中移位密码、单表替代密码和多表替代密码哪种方法安全性好,为什么?
4.凯撒密码是一种单表代替密码,它的加密方法就是把明文中所有字母都用它右面的第k个字母代替,并认为z后面又是a。加密函数可以表示为:
f ( a ) = ( a + k ) Mod n 其中f( a )表示密文字母在字母表中的位置,a表示明文字母在字母表中的位置,k是密钥,n为字母表中的字符个数。
设有明文security,密钥k=3,密钥字母表如表所示,其中字母表示明文或密文字符集,数字表示字母在密钥字母表中的位置。
表密钥字母表 abcdef ghi j k l mn o p q r s t u v wx y z
11111111112222201234567890 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 (1)请写出加密后的密文。 (2)请写出该凯撒密码的解密函数。
(3)请用高级语言编写通用凯撒密码的加密/解密程序。 5.已知仿射密码的加密函数可以表示为: f(a) = ( aK1+ K0) mod 26
并知道明文字母e、h对应密文字母是f,w,请计算密钥K1和K0来破译此密码(答案K1=23,K0=17,还有其它解)。
6.设英文字母a,b,c,…,分别编号为0,1,2,…,25,仿射密码加密变换为 c = (3m + 5) mod 26
其中m表示明文编号,c表示密文编号。 (1)试对明文security进行加密。 (2)写出该仿射密码的解密函数。 (3) 试对密文进行解密。
7.Vigenere密码是法国密码学家Blaise de Vigenere发明的。设密钥K=k1k2k3…kn,明文P=p1p2p3…pm,当密钥长度n比明文长度m短时,密钥可以周期性地重复使用。那么加密函数可以表示为:
f (pi ) = ( pi + ki ) mod n
2
其中f (pi )表示密文字母在字母表中的位置,pi 表示明文字母在字母表中的位置,ki表示密钥字母在字母表中的位置, i = 1,2,…,n。
设有明文P=security,密钥K=dog。 (1)请写出加密后的密文。
(2)请写出该Vigenere密码的解密函数。
(3)请用高级语言编写通用Vigenere密码的加密/解密程序。 8.写出DES算法步骤。
9.在DES算法中,S2盒的输入为101101,求S2盒的输出。
10.仔细观察DES的初始置换表,找出规律,并用数学表达式表示。
11.设有初始密钥的十六进制形式为:de 2c 3e 54 a0 9b 02,请写出经过DES的密钥置换后的密钥。 12.DES加密过程与解密过程有什么区别? 13.AES与DES相比较有哪些特点? 14.计算: (1)0111 0011⊕1010 1011 (2)0111 0011·1010 1011
15.已知: a(x) = {03}x3+{01}x2+{01}x+{02} b(x) = {0b}x3+{0d}x2+{09}x+{0e},
计算:d(x) = a(x)?b(x)
16.解释AES算法中的数据块长Nb、密钥长Nk、变换轮数Nr、状态state、圈密钥和扩展密钥的含义。 17.分别画出AES加密和解密过程的流程图。
18.已知二进制数b=(0110 0001)计算b的AES的S盒变换。 19.设有AES的状态矩阵如下 3e 1b C0 32 09 78 00 0f 4e 7d 50 8a 65 4a 46 a0 试分别对状态矩阵进行移位变换ShiftRows和列混合变换MixColumns,要求写出具体过程。
20.设有AES的圈密钥k = 2b 28 ab 09 7e ae f7 cf 15 d2 15 4f 10 a6 78 3c,试对习题19中状态矩阵进行圈密钥加法变换AddRoundKey。
21.画出AES的扩展密钥生成流程图。
22.写出AES扩展密钥程序涉及三个RotWord()、SubWord()和Rcon[]模块的工作方式。
23.试对习题19中AES状态矩阵进行逆行移位变换InvShiftRows和逆列混合变换InvMixColumns。 24.AES加密和解密时使用圈密钥有什么区别? 25.对称加密体制与公开密钥加密体制有什么特点? 26.编写程序,找出1,…,10000之间的所有素数。 27.利用Euclidean算法计算出如下面的乘逆: (1) 28-1 mod 75 (2) 19-1 mod 27 28.请用平方-乘算法计算: (1) 3460 mod 51 (2) 34589 mod 101
29.编写计算乘逆和平方-乘算法程序,并验证习题27、28计算结果。 30.画出RSA算法流程图。
31.使用RSA算法时选择有关参数应注意哪些问题?
32.在一个使用RSA的公开密钥系统中,如果攻击者截获了公开密钥pk=5,公开模数r=35,密文c=10,明文是什么?
33.在一个使用RSA的公开密钥系统中,假设用户的私人密钥被泄露了,他还使用原来的模数,重新产生一对密钥,这样做安全吗?
34.NTRU算法密钥是如何产生的? 35.写出NTRU算法加密与解密方程。
36.构造一个NTRU(N,p,q)=(13,41,3)的加密体制。 37.设有两个多项式环
a(x) = x7 + x6 + x5 + x4 + 1 b(x) = x7 + x6 + x2 + x N = 8
计算 d(x) = a(x) · b(x)
38.设有多项式环 a(x) = 3x7 +6 x6 +9 x5 + 4x4 + 7 计算 (1) d(x) = a(x) mod 3
(2) d(x) = a(x) mod x4 - 1 39.什么是信息隐藏术?什么是数字水印? 40.画出数字水印的通用模型? 41.数字水印有哪些主要特性? 42.典型数字水印算法有哪些? 习 题 3
1.什么是数字签名?在网络通信中数字签名能够解决哪些问题? 2.写出基于公开密钥的数字签名方案。 3.写出DSA算法过程。
4.设p=3011,q=301,给出DSS签名方案。如果这H(m)=m,g=114,x=68,k=71,对信息m=2310签名,并验证(答案: r=216,s=2)。
答:r=(gmod p)mod q =(11471 mod 3011)mod 301 = 216 s=(k(H(m)+ xr))mod q = (71 所以,签名为(216,2) 签名验证:w = s
?1?1?1k*(2310 + 68*216))mod 301=2
mod q = 2
?1mod 301 = 151
u1= H(m)w mod q = 2310* 151 mod 301 = 252 u2= rw mod q = 216* 151 mod 301 = 108 y=gmod p = 11668 mod 3011= 1993
v =(g1y2mod p) mod q
=(114252*1993108 mod 3011)mod 301 = 216 = r
v = r,则可以确认(r,s)是对信息m的有效签名。 注:计算sr。
答:因为 s=(k(H(m)+ xr))mod q 所以ks=(H(m)+ xr)mod q v =(g1y
uu2?1?1uuxmod q 等价计算 s·x ≡ 1 mod q 中的x,即求s的乘逆。
uu25.在DSA算法中,请证明:如果(r,s)是Alice对信息m的签名,则一定有 g1ymod p) mod q =
mod p) mod q
uxu =(g1g2mod p) mod q
= (gH(m)w mod q gxrw mod q mod p) mod q = (g(H(m) +xr)w mod q mod p)mod q
= (gksw mod p)mod q =(gk mod p)mod q = r 注 sw = ss-1 = 1
6. DSA算法指出如果签名过程导致 s = 0时,就应该选择一个新的k值,并重新计算签名,为什么?如果k值被泄露,将会发生什么情况?
7.安全的散列函数有哪些特征?
8.在MD5算法中,当输入信息为1048bit长,最后6个字符是ABCABC时,如何进行数据分组与填充? 9.在MD5的第二轮运算中GG (d, a, b, c, M6, 9, 0xc040b340)表示何种运算。 10.画出MD5算法流程图。
11.分析SHA 安全散列算法过程。
12.比较在MD5中四个初始变量A、B、C、D的值(小数在前的存储方式)与SHA-1中五个初始变量A、B、C、D、E的值(大数在前的存储方式)的关系。
13.什么是PGP加密软件?
14.Kerberos 身份验证系统由哪几部分组成?写出Kerberos鉴别协议步骤。 15.什么是公开密钥基础设施PKI?PKI由哪几部分基本组成? 16.什么是数字证书?数字证书包含哪些内容? 17.对PKI的性能有哪些要求?
18.请解释、PKCS、OCSP、LDAP、PKIX含义。
19.你是如何为自己的存折选密码的?为什么? 20.我们在选用密码时,应该注意哪些问题? 21.编写程序,实现如下功能:
(1)当用户输入错误口令次数超过5次时,关闭程序。 (2)限制用户使用弱口令,如11111、12345等。 (3)口令每使用一个星期后,要求更换口令。 (4)限制用户不能循环使用旧口令。
22.生物特征识别技术的基本原理是什么? 23.一个生物识别系统包括哪些内容?
24.指纹的总体特征和局部特征有哪些?指纹采集常用的设备有哪些? 25.虹膜的生物特征识别技术的基本依据是什么? 26.你还知道哪些生物识别方法?
27.智能卡是由哪几部分组成的?有什么特点? 习 题 4
1.简述计算机病毒的定义和特征。 2.产生病毒的根本原因是什么? 3.计算机病毒的传播途径有哪些? 4.你知道计算机病毒有哪几种类型? 5. 计算机感染病毒后会有哪些表现? 6. 简述计算机病毒程序的一般构成。 7. 计算机病毒制作技术有哪些?
8. 目前使用的反计算机病毒技术有哪些? 9. 蠕虫病毒的主要特性有哪些?
10.什么是特洛伊木马?黑客程序一般由哪几个部分组成? 11.黑客如何利用特洛伊木马程序窥测他人的计算机工作? 12.你知道哪些黑客程序自启动的方法?
13.你在生活中遇到哪些计算机病毒或木马,是如何处理的?
14.已知CIH病毒特征码是“87 d5 ee c3 3a 66 27 53”,用病毒特征码法编写程序检查系统中是否含有CIH病毒。
15.编写一病毒演示程序,使该程序实现自动执行、自动传染和删除指定文件的功能。 16.编写一黑客演示程序,使该程序能够浏览对方计算机中文件目录和文件名。 17.经过技术分析,对病毒“震荡波”E ()手工杀毒方法是: (1)若系统为WinXP,则先关闭系统还原功能; (2)使用进程序管理器结束病毒进程。
单击任务栏→“任务管理器”→“Windows任务管理器”窗口→“进程”标签,→在列表栏内找到病毒进程“”或任何前面是4到5个数字后面紧接着(如)的进程,→“结束进程按钮”,→“是” →结束病毒进程→关闭“Windows任务管理器”。
(3)查找并删除病毒程序
通过“我的电脑”或“资源管理器”进入系统目录(Winnt或windows),找到文件,将它删除,然后进入系统目录(Winnt\\system32或windows\\system32),找到文件“”, 将它们删除;
(4)清除病毒在注册表里添加的项
打开注册表编辑器: 点击“开始”→“运行”→输入Regedit→按Enter键,在左边的面板中, 双击(按箭头顺序查找,找到后双击):HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run,在右边的面板中, 找到并删除如下项目:“”,关闭注册表编辑器。
试编写专杀“震荡波”E程序。
18.利用VbScript或其他脚本语言,编写一程序实现浏览网页时,将一指定程序下载到C盘的Windows目录中。
19.分析下面的代码,程序运行结果将如何?
点击可进入你需要的网站 习 题 5
1.查阅有关资料,了解目前操作系统和网络协议中还存在哪些漏洞。
2.什么是目标探测?目标探测的方法有哪些?
3.从整个信息安全角度来看的话,目前扫描器有哪几种类型? 4.请写出你所知道的常见扫描器软件名称。 5.写出FTP端口扫描步骤。 6.如何防止端口扫描?
7.网络监听的原理是什么?
8.如何检测网络监听?如何防范网络监听?
9.Sniffer工作原理是什么?什么是“混杂”模式? 10.如何防范Sniffer?
11.缓冲区溢出原理是什么?请举例说明。 12.缓冲区溢出攻击方法有哪些? 13.如何防范缓冲区溢出?
14.指出下面程序段存在的问题,并修改它。 char str[10]
char bigstr[100]; …
while (scanf(“%.100s”,bigstr)!=NULL) {
bigstr[99]=’\\0’;
strcpy(str, bigstr, sizeof(str)); … }
15.下面程序是一个缓冲溢出演示程序,编译和执行该程序,逐渐增加输入字符个数,分析程序执行结果。如何执行hacker函数?
void function(const char *input) {
char buffer [5];
printf(\); strcpy(buffer,input); printf(\);
printf(\); }
void hacker(void) {
printf(\); }
int main(int argc,char *argv[]) {
printf(\); printf(\); function(argv[1]); return 0; }
提示:
(1)在Visual C++环境下,由于debug模式包含了对栈问题进行检测操作,因此需要在release模式下编译和运行。
(2)根据屏幕显示结果找到EBP和RET的地址。
(3)为了能使程序执行hacker函数,可编写一段名为的Perl脚本, $arg =”aaaaaaaaa…”.” hacker函数地址”; $cmd=”该程序文件名”,$arg; system($cmd); [C:\\ 该程序文件名
程序就可能会执行hacker函数(取决于使用的编译器)。 16.什么是拒绝服务DoS攻击?什么是分布式拒绝服务DDoS 17.写出DDoS攻击的步骤。 18.如何防范DDoS攻击?