《信息安全原理与技术》(第2版)习题答案

上传人:油** 文档编号:45943544 上传时间:2021-12-09 格式:DOC 页数:26 大小:435.50KB
收藏 版权申诉 举报 下载
《信息安全原理与技术》(第2版)习题答案_第1页
第1页 / 共26页
《信息安全原理与技术》(第2版)习题答案_第2页
第2页 / 共26页
《信息安全原理与技术》(第2版)习题答案_第3页
第3页 / 共26页
资源描述:

《《信息安全原理与技术》(第2版)习题答案》由会员分享,可在线阅读,更多相关《《信息安全原理与技术》(第2版)习题答案(26页珍藏版)》请在装配图网上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除信息安全原理与技术习题参考答案郭亚军,宋建华,李莉,董慧慧清华大学出版社第1章1.1 主动攻击和被动攻击是区别是什么?答:被动攻击时系统的操作和状态不会改变,因此被动攻击主要威胁信息的保密性。主动攻击则意在篡改或者伪造信息、也可以是改变系统的状态和操作,因此主动攻击主要威胁信息的完整性、可用性和真实性。1.2 列出一些主动攻击和被动攻击的例子。答:常见的主动攻击:重放、拒绝服务、篡改、伪装等等。 常见的被动攻击:消息内容的泄漏、流量分析等等。 1.3 列出并简单定义安全机制的种类。答:安全机制是阻止安全攻击及恢复系统的机制,常见的安全机制包括:加

2、密机制:加密是提供数据保护最常用的方法,加密能够提供数据的保密性,并能对其他安全机制起作用或对它们进行补充。数字签名机制:数字签名主要用来解决通信双方发生否认、伪造、篡改和冒充等问题。访问控制机制:访问控制机制是按照事先制定的规则确定主体对客体的访问是否合法,防止未经授权的用户非法访问系统资源。数据完整性机制:用于保证数据单元完整性的各种机制。认证交换机制:以交换信息的方式来确认对方身份的机制。流量填充机制:指在数据流中填充一些额外数据,用于防止流量分析的机制。路由控制机制:发送信息者可以选择特殊安全的线路发送信息。公证机制:在两个或多个实体间进行通信时,数据的完整性、来源、时间和目的地等内容

3、都由公证机制来保证。1.4 安全服务模型主要由几个部分组成,它们之间存在什么关系。答:安全服务是加强数据处理系统和信息传输的安全性的一种服务,是指信息系统为其应用提供的某些功能或者辅助业务。安全服务模型主要由三个部分组成:支撑服务,预防服务和恢复相关的服务。支撑服务是其他服务的基础,预防服务能够阻止安全漏洞的发生,检测与恢复服务主要是关于安全漏洞的检测,以及采取行动恢复或者降低这些安全漏洞产生的影响。1.5 说明安全目标、安全要求、安全服务以及安全机制之间的关系。答:见图1.4,全部安全需求的实现才能达到安全目标,安全需求和安全服务是多对多的关系,不同的安全服务的联合能够实现不同的安全需求,一

4、个安全服务可能是多个安全需求的组成要素。同样,安全机制和安全服务也是多对多的关系,不同的安全机制联合能够完成不同的安全服务,一个安全机制也可能是多个安全服务的构成要素。1.6 说明在网络安全模型中可信的第三方所起的作用。答:要保证网络上信息的安全传输,常常依赖可信的第三方,如第三方负责将秘密信息分配给通信双方,或者当通信的双方就关于信息传输的真实性发生争执时,由第三方来仲裁。第2章2.1、列出小于30的素数。2、3、5、7、11、13、17、19、23、292.2、若a是大于1的整数, 则a的大于1的最小因子一定是素数。 证明 若a是素数, 显然a的大于1的最小因子就是素数a; 若a是合数,

5、则显然除1和a外还有其它的因数,令b是这些正因数中最小者, 可以证明b不是合数而是素数, 若其不然, b必有大于1且不等于b的因数c, 于是由c|b和b|c可知c|a, 即c是a的因数,又有1cb, 这与假设b是a的大于1的最小因数相矛盾故b不是合数而是素数因此,a的大于1的最小因数b是素数2.3、如果n|(a-b), 证明ab mod n 证明:由n|(a-b)可知存在正整数k,使得a=kn+b,其中b是1到n-1之间的正整数,所以有 a mod n=b, b mod n=b,可知a,b同余,即ab mod n2.4、证明下面等式(1) (a+b) mod m = (a mod m) + (

6、b mod m) mod m (2) (a-b) mod m = (a mod m) - (b mod m) mod m (3) (ab) mod m = (a mod m) (b mod m) mod m (4) (a(b+c) ) mod m = (ab) mod m) + (ac) mod m) mod m2.5、证明560-1是56的倍数。2.6、对于整数39和63,回答下面问题 (1) 它们是否互素;解:由于gcd(39,63)=3,所以他们不互素。 (2) 用欧几里德算法求它们的最大公因子; 解:用欧几里德算法的计算过程如下: (3) 25-1 x mod 15是否有解。2.7、用

7、欧几里德算法求gcd (1997, 57)和 gcd(24140, 16762) 2.8、用扩展欧几里德算法求下列乘法逆元(1) 1234 mod 4321 用扩展欧几里德算法的计算过程如下:循环次数QX1X2X3Y1(T1)Y2(T2)Y3(T3)初始值-104321011234130112341-3619211-3619-1461531-146152-7441532-74-3071075351-30710753309-10821 (2) 24140 mod 40902用扩展欧几里德算法的计算过程如下:循环次数QX1X2X3Y1(T1)Y2(T2)Y3(T3)初始值-104090201241

8、401101241401-116762211-116762-12737832-1273783-52006433-52006-1014136051-1014136013-196466213-19646-36526879-365268326-4873482326-48734-68810260根据扩展欧几里德算法没有逆元。(3)550 mod 1769解:计算过程如下表所示:循环次数QX1X2X3Y1(T1)Y2(T2)Y3(T3)初始值-1017690155013015501-3119241-3119-4137431-413745-1645415-1645-9292951-9292914-4516

9、6114-4516-23741371-23741337-11938437-1193-1715501根据扩展欧几里德算法逆元是5502.9、用快速指数模运算方法计算200837 mod 77和319971 mod 772.10、用费马定理求3201 (mod 11)2.11、计算下面欧拉函数;(1) f(41) 、f(27)、f(231)、f(440) (2) (2)(6)和(3)(4),哪一个等于(12)。2.12、求解下列一次同余方程(1)3x10(mod 29)解 因为(3,29)1,所以方程有惟一解。利用辗转相除法求得使3x29y1成立的x、y为x10,y1。于是31029(1)1,31

10、0029(10)10,所以x10013(mod 29)。(2)40x191(mod 6191)解 因为(40,6191)1,所以方程有惟一解。利用辗转相除法求得使40x6191y1成立的x、y为x1393,y9。于是4013936191(9)1,4013931916191(9191)191,所以x13931916041(mod 6191)(3)258x131(mod 348)解 因为(258, 348)6,而6 131,所以方程无解。2.13、证明下面结论设a、b、c、d为整数,m为正整数,若ab(mod m),cd(mod m),则: (1)axcybxdy(mod m),x、y为任意整数;

11、(2)acbd(mod m);(3)anbn(mod m),n0;(4)f(a)f(b)(mod m),f(x)为任一整系数多项式。证明 (1)因为ab(mod m),cd(mod m),所以m|(ab),m|(cd),于是m|(ab)x(cd)y),即m|(axcy)(bxdy),故axcybxdy(mod m)。(2)因为ab(mod m),cd(mod m),所以m|(ab),m|(cd),于是m|(ab)c(cd)b),即m|(acbd),故acbd(mod m)。(3)因为ab(mod m),则存在整数q使得abmq。于是:anbn(bmq)nbn(bnbn-1(mq)1b1(mq)

12、n-1(mq)n)bnmp,其中p是一整数。所以anbn(mod m)。(4)由(1)和(3)可证。2.14、求满足下面同余方程的解x1(mod 5),x5(mod 6),x4(mod 7),x10(mod 11)解:令m15,m26,m37,m411,b11,b25,b34,b410。则m2310,M1462,M2385,M3330,M4210。利用辗转相除法求得M12,M21,M31,M41。所以,x1(2)46251385 4133010121044212111(mod 2310)2.15、求Z5中各非零元素的乘法逆元。解:1-1=1,2-1=3,3-1=2,4-1=42.16、类似于表

13、2.2,用表列出有限域GF(5)中的加法和乘法运算解:表如下:加法01234001234112340223401334012440123乘法01234000000101234202413303142404321a-aa-100-1412333224142.17、对于系数在Z10上的取值的多项式运算,分别计算2.18、假设f(x)=x3+x+1在GF(2n)中是一个不可约多项式,a(x)=2x2+x+2,b(x)=2x2+2x+2,求a(x)b(x)2.19、编程实现模n的快速指数运算。#include stdafx.h#include#includeint main(int argc, cha

14、r* argv) int m,e,n;printf(input the first number: );cine;printf(input the second number: );cinm;printf(input the third number: );cinn;int a=e,b=m,c=1;for(a=e;a0; )if(a%2=1) a-=1; c=(c*b)%n; if(a=0) coutcendl;else if(a%2=0) a=a/2; b=(b*b)%n;return 0;2.20、编写实现扩展欧几里德算法求最大公因子和乘法逆元。#include stdafx.h#incl

15、udeint main(int argc, char* argv)int m,d;coutinput the first number:m;coutinput the second number:d;int a3=1,0,m,b3=0,1,d; int Q;if(b2%a2=0)Q=b2/a2;for(int i=0;i=2;i+) int t3; ti=ai-Q*bi; ai=bi; bi=ti;if(b2=0) coutm和d的最大公因子是b2,b2没有逆元!endl;else if(b2=1) coutm和d的最大公因子是b2,b2是d的逆元!endl;return 0;第3章3.1 下

16、式是仿射密码的加密变换c= (3m+5) mod 26,试求:(1) 该密码的密钥空间是多少(2) 求出消息“hello”对应的密文(3) 写出它的解密变换(4) 试对密文进行解密解:(1)密钥空间为n=312。(2)hello五个字母对应的数字分别是7,4,11,11,14 分别加密如下: (3*7+5)mod26=0 (3*4+5)mod26=17(3*11+5)mod26=12(3*11+5)mod26=12(3*14+5)mod26=21五个密文数字为0,17,12,12,21,对应密文是ARMMV。(3)解密变换为m=(c-5)mod26(4)密文ARMMV五个字母对应数字分别为0,

17、17,12,12,21 分别利用解密变换解密,解密后对应数字为7,4,11,11,14 所以得到明文为hello。3.2用Playfair密码加密下面消息:ciphers using substitutions or transpositions are not secure because of language characteristics. 密钥为the playfair cipher was invented by Charles Wheatstone。解:由密钥可构建如下的密钥矩阵。THEPLAYFI/JRCWSNVDBOGKMQUXZ将明文按照两个字母分组为:ci ph er s

18、u si ng su bs ti tu ti on so rt ra ns po si ti on sa re no ts ec ur eb ec au se of la ng ua ge ch ar ac te ri st ic sx则密文为:NA LE LF OE NF GX OE OW PA EM PA GS OU AL AY VN EG NF PA GS CF FL SG EC TS ZF HO TS FM OF US TR GX MF OP WT YA CD HP AR CE AN NU3.3 假设密钥为“encryption”,用维吉尼亚密码加密消息symmetric scheme

19、s require both parties to share a common secret key。解: 在明文下面重复写密钥字,组成密钥。 明文M:symmetricschemesrequirebothpartiestoshareacommonsecretkey 密钥K:encryptionencryptionencryptionencryptionencryptionencrypt 将明文和密钥转化为数字 明文=(18,24,12,12,4,19,17,8,2,18,2,7,4,12,4,18,17,4,16,20,8,17,4,1,14,19,7,15,0,17,19,8,4,18,

20、19,8,4,18,19,14,18,7,0,17,4,0,2,14,12,12,14,13,18,4,2,17,4,19,10,4,24) 密钥=(4,13,2,17,24,15,19,8,14,13,4,13,2,17,24,15,19,8,14,13,4,13,2,17,24,15,19,8,14,13,4,13,2,17,24,15,19,8,14,13,4, 13,2,17,24,15,19,8,14,13,4,13,2,17,24,15,19) 对每个明文数字和对应的密钥数字,使用加密,得到密文数字为 C=(22,11,14,3,2,8,10,16,16,21,6,21,6,3,2

21、,7,10,12,4,7,12,4,6,18,12,8,0,23,14,4,23,21,6,9,17,3,11,15,14,4,8,13,4,5,10,1,7,21,6,17,6,4,6,10,8,19,17)于是密文为WLODCIKQQVGVGDCHKMEHMEGSMIAXOEXQGJRDLPOEINEFKBHVGRGEGKITR3.4 Hill密码不能抵抗已知明文攻击,如果有足够多的明文和密文对,就能破解Hill密码。(1) 攻击者至少有多少个不同明文-密文对才能攻破该密码?(2) 描述这种攻击方案。解:(1)破解一个Hillm密码至少应该有m个不同的明文-密文对。(2)攻击方案为:假定攻

22、击者已经确定了正在使用的m值,至少有m个不同的明-密文对设为: 对任意的,有。如果定义两个, 则有矩阵方程Y=XK,其中矩阵K是未知密钥。假如矩阵X是可逆的,则攻击者可以算出,从而可以破译Hill密码(如果X不可逆,则必须重新选择m个明-密文对)。3.5用Hill密码加密消息”hill”,密钥为:并写出从密文恢复明文的解密过程。解:经计算设明文为Hill,则相应的明文向量为(7,8)和(11,11)。于是,相应的密文向量分别为因此,明文Hill的密文为XIYJ。3.6用一次一密加密消息“01011010101100111100010101010101011011110001010001”,选定

23、的密钥是“10010101011110101101000101000001111100100101010010”,试写出密文。解:密文=明文密钥=0101101010110011110001010101010101101111000101000110010101011110101101000101000001111100100101010010=110011111100100100010100000101001001110101000000113.7使用DES加密,假设明文和密钥都为 (0123456789ABCDEF)16 = (00000001 00100011 01000101 0110

24、0111 10001001 10101011 11001101 11101111)2(1) 推导出第一轮的子密钥K1(2) 写出R0和L0(3) 扩展R0并计算E(R0)K1(4) 将第(3)问的结果,输入到8个S盒,求出加密函数F(5) 推导出R1和L1解: (1)将密钥K经置换选择1,得 =11110000 11001100 10101010 0000 =10101010 11001100 11110000 0000 左移1位后经置换选择2输出48为。 =00001010 00000010 01110111 10011011 01001000 10100101 (2)初始置换后,得到 =1

25、1001100 00000000 11001100 11111111 =11110000 10101010 11110000 10101010 (3)用扩展置换E将扩展为48位后,与异或E()=01110000 00010111 00100010 11100001 01011101 11110000(4)经过8个S盒输出32位S1(011100)=0000 S2(000001)=0000 S3(011100)=0010 S4(100010)=1000 S5(111000)=0011 S6(010101)=1101 S7(110111)=1000 S8(110000)=1100经置换函数P,输出

26、加密函数如下:F=00111000 00000000 00100000 11101101(5)由和计算出L1和R1 L1=11110000 10101010 11110000 10101010 R1=F=11001000 10101010 11010000 010001113.8在GF(28)上01的逆是什么?并验证其在S盒中的输入。解:在GF(28)上01的逆是01,用二进制标识为0000 0001,代入S盒的变换,如下: 结果为01111100,用十六进制表示为2A,与查S盒所得到结果一致。3.9假设 AES的State矩阵的某一列分别是s0 = 87,s1= 6E,s2 = 46,s3

27、= A6。经过列混淆变换后,s1 = 6E 映射为s1 = 37,试计算验证这一结果。解: 第一列第2个字节的代换方程为87(026E)(0346)A6=37 下面验证上面等式成立。用多项式表示为 那么再模一个次数为8的不可约多项式结果为写成二进制为11011100。同样,计算出0346=11001010, 87=10000111, A6=10100110。因此87(026E)(0346)A6计算结果为 10000111 11011100 1100101010100110 00110111=373.10采用AES加密,密钥为2B 7E 15 16 28 AE D2 A6 AB F7 15 88

28、 09 CF 4F 3C,明文为32 43 F6 AD 88 5A 30 8D 3131 98 A2 E0 37 07 34(1) 写出最初的State的值(2) 写出密钥扩展数组中的前8个字节(3) 写出初始轮密钥加后State的值(4) 写出字节代换后State的值(5) 写出行移位后的State的值(6) 写出列混淆后State的值解: (1)最初的State的值为: (2)K0=(W1,W2,W3,W4)=密钥扩展数组中前8个字节为W0,W1,即2b 7e 15 16 28 ae d2 a6(3)根据的计算公式,分别计算出各式,然后计算出K1。 W4=SubByte(RotByte(W

29、3)Rcon1 W0 = SubByte(CF4F3C09)(01000000) (2B7E1516) =(8A84EB01) (01000000) (2B7E1516) =A0FAFE17 W5=W1W4=(28AED2A6)( A0FAFE17)=88542CB1 W6=W2W5=(ABF71588)( 88542CB1)=23A33939 W7=W3W6=(09CF4F3C)( 23A33939)=2A6C7605 所以,得到第一轮子密钥K1为:初始轮密钥加后,B1=B0+K0(4)经过字节代换后,state的值为 (5)经过行移位后,state的值为 (6)经过列混淆变换后,state

30、的值为3.11 对习题3.10的明文和密钥不变,采用SMS4加密。(1)求出第一轮的轮密钥rk0。(2)求第一轮加密后的明文输出是什么?解:(1)SMS4加密算法的轮密钥由加密密钥通过密钥扩展算法生成,第一轮轮密钥rk0的计算过程如下:首先,将加密密钥按字分为四组,分别为 , , ,已知: 根据,得出各个的值:=0010 1011 0111 1110 0001 0101 0001 0110= 1010 0011 1011 0001 1011 1010 1100 0110两者做异或运算后,得=1000 1000 1100 1111 1010 1111 1101 0000同理计算,可以分别得=01

31、11 1110 0000 0100 1110 0001 1111 0110=1100 1100 1000 1010 1000 0100 0001 1111=1011 1011 1011 1111 0110 1101 1110 0000然后,求出变换的输出:固定参数的十六进制表示为:00070e15,则通过异或运算=(0000 1001 0011 0110 0000 0110 0001 1100)。十六进制表示为:09 36 06 1c。再将输出结果A分为四组进入S盒,通过查表,输出的十六进制为:b6 e8 3d 49。利用公式,得=0001 0101 1001 1010 0111 1111 1

32、000 101最后,由公式知,将与步骤求出的做异或运算,即可得到。=0001 0101 1001 1010 0111 1111 1000 1010 异或 =1000 1000 1100 1111 1010 1111 1101 0000=1001 1101 0101 0101 1101 0000 0101 1010,十六进制表示为:9d 55 d0 5a。(2)根据SMS4加密算法,首先将十六进制明文 32 43 f6 ad 88 5a 30 8d 31 31 98 a2 e0 37 07 34分组:。然后,根据第一轮轮密钥rk0的计算结果,已知加密函数F,得到第一轮输出数据。 进行合成置换T运

33、算中间值=(1100 0100 0000 1001 0111 1111 0100 0001)。十六进制表示为:c4 09 7f 41。 将输出结果A分为四组进入S盒,通过查表,输出中间值的十六进制为:bb b6 9e 07。 进行线性变换由公式得,=1111 0000 1011 0001 1010 0000 1011 0011。 利用加密函数,将式得到的结果与做异或运算,即=( 0011 0010 0100 0011 1111 0110 1010 1101) (1111 0000 1011 0001 1010 0000 1011 0011 )=1100 0010 1111 0010 0101

34、0110 0001 1110十六进制表示为:c2 f2 56 1e。因此,得到第一轮的输出=88 5a 30 8d 31 31 98 a2 e0 37 07 34 c2 f2 56 1e。3.12有一个四级线性移位寄存器的反馈函数为f(a1, a2, a3, a4)= a1a2其中初态为(a1, a2, a3, a4 )=(1000),求其则输出序列的前12位。解: 四级移位存储器的输出如下所示:状态(a4, a3, a2, a1)输出状态(a4, a3, a2, a1)输出000110110010000101110100001011001001010010011110111100011100

35、所以,输出序列的前12位是1000 1001 1010。3.13假如使用3位(从0到7)的RC4,其操作是对8取模(而不是对256取模),密钥是326,(1) 求初始化后S表的值(2) 计算第1个密钥字(3) 用上面生成的密钥加密明文100101解: (1)数据表S只有8个元素。初始化为01234567 S 0 1 2 3 4 5 6 7 由密钥326构造密钥数据表如下:32632632 K 0 1 2 3 4 5 6 7 利用如下循环构造实际S数据表。 j=0; for i=0 to 7 do j= (j+ S(i) + K(i)mod 8 ; swap(S(i),S(j); 该循环以j=0

36、和i=0开始,使用更新公式后, j=(0+S(0)+K(0)mod8=(0+0+3)mod8=3 因此,S数据表的第一个操作是将S(0)和S(3)互换,互换结果如下:31204567 S 0 1 2 3 4 5 6 7 同样i加1后,继续执行此过程,直到循环结束。最后数据表S就被随机化为30527146 S 0 1 2 3 4 5 6 7 故初始化后S表的值为30527146 S 0 1 2 3 4 5 6 7 (2)从j=0和i=0开始,下面计算第一个密钥字: i=(i+1)mod8 =(0+1)mod8=1 j=(j+S(i)mod8 =(0+S(1)mod8=(0+0)mod8=0 Sw

37、ap(S(1),S(0) 变换后数据表S变为03527146 S 0 1 2 3 4 5 6 7 然后如下计算t和k: t=(S(i)+S(j)mod8=(S(1)+S(0)mod8=3 k=S(t)=2 所以第一个密钥字是2,其二进制表示为010。(3)在(2)的基础上重复(2)过程,此时i=1,j=0 i=(i+1)mod8 =(1+1)mod8=2 j=(j+S(i)mod8 =(0+S(2)mod8=(0+5)mod8=5 Swap(S(2),S(5) 变换后数据表S变为03127546 S 0 1 2 3 4 5 6 7 然后如下计算t和k: t=(S(i)+S(j)mod8=(S(

38、2)+S(5)mod8=6 k=S(6)=4 所以第二个密钥字是4,其二进制表示为100。 故,使用密钥100010加密明文100101,即异或得到密文000111。3.14在8位CFB模式中,如果传输中一个密文字符发生错误,这个错误将传多远?解: 错误将传9个字符。第4章4.1在使用RSA的公钥体制中,已截获发给某用户的密文为c=10,该用户的公钥e = 5, n =35,那么明文m等于多少?为什么能根据公钥可以破解密文?解:n=p*q (p和q都是素数),n=35故解出p=5 ,q=7 ;(n)=(p-1)*(q-1)=24 ;又因为e*d1 mod(n),而e=5故可解出d=5;m= c

39、d mod n=105 mod 35=5 。因为RSA密码体制的安全性是基于分解大整数的困难性设计的。RSA算法的加密函数c= me mod n是一个单项函数,故对于解密密文的陷门是分解n=p*q ,只要知道这个分解就可以计算(n)=(p-1)*(q-1) ,然后用扩展欧几里德算法来求计算解密私钥d。4.2利用RSA算法运算,如果p=11,q=13, e=103,对明文3进行加密.求d及密文。解:(n)=(p-1)*(q-1)=10*12=120e*d1 mod(n),而e=103故可解出d=7n=p*q=11*13=143c= me mod n=3103 mod 143=164.3在RSA体

40、制中,某用户的公钥e31,n=3599,那么该用户的私钥等于多少?解:n=p*q (p和q都是素数),n=3599故解出p=59 ,q=61; (n)=(p-1)*(q-1)=3480 ; e*d1 mod(n),而e=31故可解出d=3031 。4.4在RSA体制中,假设某用户的公钥是3533,p=101,q=113,现对明文9726加密和解密。解:加密过程如下:n=p*q=11413 ;(n)=(p-1)*(q-1)=11200 ;e*d1 mod(n),而e=3533故可解出d=6597;c= me mod n=97263533 mod 11413=5761; 解密过程如下:m= cd

41、mod n=57616597 mod 11413=9726 。4.5在ElGamal密码体制中,假设Alice想要将消息m=1299传送给Bob。Alice任选一个大素数p为2579,取g为101,选择保密的私钥x为237。 (1) 计算公钥y。 (2) 求密文。 (3) 写出解密过程解:(1)y= gx mod p=101237 mod 2579=4 ; (2)选取一个r为853,计算密文为 C1= gr mod p=101853 mod 2579=1559 C2=m*yr mod p=1299*4853 mod 2579=1358 故密文为1559,1358; (3)解密过程为:先计算w=

42、(C1x)-1 mod p ,再计算m= C2*w mod p 。4.6选取模p为11下的椭圆曲线y2 =x3+x+6,确定E(Z11)上的所有点。解:xx3 + x + 6 mod 11square roots mod p?y06no18no25yes4, 733yes5, 648no54yes2, 968no74yes2, 989yes3, 897no104yes2, 94.7取实数域椭圆曲线y2=x3-36x上的两个点p=(-3,9), Q = (12, 36),计算P+Q和2P。4.8利用ElGamal的椭圆曲线密码算法,设椭圆曲线是y2=x3-x+118椭圆曲线上一个点,假设A选择一

43、个秘密整数k7。求:(1) A的公开密钥;(2) 发送方B欲发送消息 (562,201),选择随机数r=386求密文。(3) 给出A从密文恢复消息的计算过程。解:(1)设模数p=563,则B=kA=7A=( 139,465) ,A的公开密钥是(A,B) ; (2) 密文为:( C1 ,C2)=(rA,M+rB)=(386(0,376),(562,201)+386(139,465)) =(458,314),(469,366) (3) A从密文恢复消息的计算过程为:M= C2-7C1=(469,366)-7(458,314)=(469,366)-(73,71)= (469,366)+(73,492

44、)=(562,201)4.9公钥密码一般用于传输对称密钥,现假设A和B之间需要传输数据,A产生一个会话钥,请回答下面问题: (1) 在事前通信发信者A应该得到什么密钥? (2) 会话钥的作用是什么? (3) 写出一个密钥分配协议,并分析其安全性。解:(1)在事前通信发信者A应该得到会话钥; (2)会话钥的作用是将需要传送的数据用会话钥加密; (3)一个密钥分配协议如下: 1.AB:EPUb(IDA|N1), 2.BA:EPUa(N1|N2), 3.AB:EPUb(N2+1), 4.BA:EPUa(EPRb(Ks), 这协议既可以保密又可以认证。4.10在Diffie-Hllman方法中,公共素

45、数p = 11,本原根 = 2(1) 如果用户A的公钥YA = 9,则A的私钥XA为多少?(2) 如果用户B的公钥YB = 3,则共享密钥K为多少?解:(1)YA=aXAmod p,则XA=6; (2)K=YBXAmod p=36 mod 11=3。4.11两个用户A和B使用Diffie-Hellman密钥交换协议来交换密钥,假设公共素数p为71,本原根为7。A和B分别选择秘密数为5和12。求共享的密钥。解:由题意得 XA=5, XB=12,则 YA=aXAmod p=75 mod 71=51, 故K=YAXBmod p=5112 mod 71=30。4.12编写RSA加密和解密程序。解:in

46、t encrypt(int m,int e,int n) int c,i,k=1;for(i=1;i=e;i+) k=k*m; c=k%n; return c;int decrypt(int c,int d,int n) int m,i,k=1; for(i=1;i=d;i+) k=k*c; m=k%n; return m;第5章5.1为什么需要消息认证?答:网络安全的威胁来自于两个方面:一是被动攻击,攻击者只是通过侦听和截取等手段被动的获取数据,并不对数据进行修改;一是主动攻击,攻击者通过伪造、重放、篡改、改变顺序等手段改变数据。对于这些应用中,仅提供保密性是远远不够的。认证则是防止主动攻击

47、的重要技术。认证的目的主要有两个:第一,验证消息的发送者是合法的,不是冒充的,这称为实体认证,包括对信源、信宿等的认证和识别;第二,验证信息本身的完整性,这称为消息认证,验证数据在传送或存储过程中没有被篡改、重放或延迟等。5.2 SHA中使用的基本算术和逻辑函数是什么?答:SHA-512中最核心的处理就是对单个512分组处理的80轮的每一轮的处理,其运算如下定义:T1=h+Ch(e,f,g)+(1512e)+Wt+KtT2=(0512 a)+Maj(a,b,c)a=T1+T2b=ac=bd=ce=d+T1f=eg=fh=g其中:t:步骤数,0t79。Ch(e,f,g)=(e AND f)(NO

48、T e AND g) 条件函数,如果e,则f,否则g。Maj(a,b,c)=(a AND b) (a AND c) (b AND c),函数为真仅当变量的多数(2或3)为真。(0512 a)ROTR28(a) ROTR34(a) ROTR39(a)(1512 e)= ROTR14(e) ROTR18(e) ROTR41(e)Wt:64位,从当前的512位消息分组导出Kt:64位常数:模264加5.3一个安全的散列函数需要满足的特性有哪些?答:(1) H可以应用于任意长度的数据块,产生固定长度的散列值;(2) 对每一个给定的输入m,计算H(m)是很容易的;(3) 给定Hash函数的描述,对于给定

49、的散列值h,找到满足H(m) = h的m在计算上是不可行的;(4) 给定Hash函数的描述,对于给定的消息m1,找到满足m2m1且H(m2)=H(m1)的m2在计算上是不可行的;(5)找到任何满足H(m1)=H(m2)且m1 m2的消息对(m1, m2)在计算上是不可行的。5.4什么是生日攻击?答:生日攻击方法没有利用Hash函数的结构和任何代数弱性质,它只依赖于消息摘要的长度,即Hash值的长度。这种攻击对Hash函数提出了一个必要的安全条件,即消息摘要必须足够长。Yuval的生日攻击法描述如下: (1) 合法的签名方对于其认为合法的消息愿意使用自己的私钥对该消息生成的m位的散列值进行数字签

50、名。(2) 攻击者为了伪造一份有(1)中的签名者签名的消息,首先产生一份签名方将会同意签名的消息,再产生出该消息的2m/2种不同的变化,且每一种变化表达相同的意义(如:在文字中加入空格、换行字符)。然后,攻击者再伪造一条具有不同意义的新的消息,并产生出该伪造消息的2m/2种变化。(3) 攻击者在上述两个消息集合中找出可以产生相同散列值的一对消息。根据“生日悖论”理论,能找到这样一对消息的概率是非常大的。如果找不到这样的消息,攻击者再产生一条有效的消息和伪造的消息,并增加每组中的明文数目,直至成功为止。(4) 攻击者用第一组中找到的明文提供给签名方要求签名,这样,这个签名就可以被用来伪造第二组中

51、找到的明文的数字签名。这样,即使攻击者不知道签名私钥也能伪造签名。5.5散列函数和消息认证码有什么区别?各自可以提供什么功能?答:消息认证码和散列函数都属于认证函数。简单来说,消息认证码是一种使用密钥的认证技术,它利用密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后。而散列函数是将任意长的消息映射为定长的hash值的函数,以该hash值作为认证符。散列函数也称为消息的“指纹”。但是散列函数用于认证时,通常和数字签名结合使用。它们都可以提供消息认证,认证内容包括:消息的源和宿;消息内容是否曾受到偶然的或有意的篡改;消息的序号和时间栏。5.6数字签名和散列函数的应用有什么不同?答:散列

52、函数可以被称为是消息的“指纹”,它可以用来对于消息生成一个固定长度的短数据块。它可以和数字签名结合提供对消息的认证。由于数字签名算法在对长的消息进行签名的时候需要先分块再分别签名,速度很慢,所以采用对消息的散列值进行签名可以提供效率并提供认证。数字签名中需要使用私钥,只有拥有私钥的用户才可以提供数字签名,数字签名可以解决的问题包括:否认:发送方否认发送过或签名过某个消息;伪造:用户A伪造一份消息,并声称该消息来自B;冒充:用户A冒充其他用户接收或发送报文;篡改:消息接收方对收到的消息进行篡改。这些问题散列函数是单独解决不了的。5.7数字签名需要满足哪些条件?答:数字签名需要满足的条件包括:1

53、签名的结果必须是与被签名的消息相关的二进制位串;2 签名必须使用发送方某些独有的信息(发送者的私钥),以防伪造和否认;3 产生数字签名比较容易;4 识别和验证签名比较容易;5 给定数字签名和被签名的消息,伪造数字签名在计算上是不可行的。6 保存数字签名的拷贝,并由第三方进行仲裁是可行的。5.8给出几种数字签名技术,分析其优缺点。答:数字签名标准:DSA的安全性是建立在求解离散对数难题之上的,算法基于ElGamal和Schnorr签名算法,其后面发布的最新版本还包括基于RSA和椭圆曲线密码的数字签名算法。这里给出的算法是最初的DSA算法。只提供数字签名功能的算法,虽然它是一种公钥密码机制,但是不

54、能像RSA和ECC算法那样还可以用于加密或密钥分配。仲裁数字签名:仲裁签名中除了通信双方外,还有一个仲裁方。发送方A发送给B的每条签名的消息都先发送给仲裁者T,T对消息及其签名进行检查以验证消息源及其内容,检查无误后给消息加上日期再发送给B,同时指明该消息已通过仲裁者的检验。因此,仲裁数字签名实际上涉及到多余一步的处理,仲裁者的加入使得对于消息的验证具有了实时性。盲签名:允许消息发送者先将消息盲化,而后让签名者对盲化的消息进行签名,最后消息拥有者对签名除去盲因子,得到签名者关于原消息的签名。它除了满足一般的数字签名条件外,还必须满足下面的两条性质:1. 签名者不知道其所签名的消息的具体内容。2

55、. 签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次的签署的。盲签名主要用于电子商务等等领域。第6章6.1解释身份认证的基本概念。答:身份认证是指计算机及网络系统确认操作者身份的过程。它用来防止计算机系统被非授权用户或进程侵入,保证以数字身份进行操作的操作者就是这个数字身份合法的拥有者。6.2简述使用口令进行身份认证的优缺点。答:口令认证的优点就是简单,易于实现。口令认证的不足之处是容易受到攻击,主要的攻击方式有窃听、重放、中间人攻击、口令猜测等。6.3 简述OpenID和OAuth认证协议的功能与区别。答:OpenID(Open Identity)是一个开放的、基于URI/U

56、RL的、去中心化的身份认证协议,也是一个开放的标准。通过OpenID,任何人都能够使用一个URL在互联网上用统一的方式来认证自己。一次注册,可以在多个网站上登录,从而实现了跨域的单点登录的功能,用户再无须进行重复的注册和登录。OAuth(Open Authorization)协议是一个开放的授权协议,其目标是为了授权第三方在可控范围下访问用户资源。OAuth和OpenID的区别在于应用场景的区别,OAuth用于为用户授权,是一套授权协议;OpenID是用来认证的,是一套认证协议。两者是互补的。一般支持OpenID的服务都会使用到OAuth。6.4解释访问控制的基本概念。答:访问控制规定了主体对客体访问的限制,并在身份识别的基础上,根据身份对提出资源访问的请求加以控制。访问控制决定了谁能够访问系统,能访问系统的何种资源以

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!