现代密码学-第5章Hash函数与消息认证习题与解答-20091202
- 格式:doc
- 大小:137.00 KB
- 文档页数:4
《现代密码学习题》答案第一章判断题×√√√√×√√选择题1、1949年,(A )发表题为《保密系统的通信理论》的文章,为密码系统建立了理论基础,从此密码学成了一门科学。
A、ShannonB、DiffieC、HellmanD、Shamir2、一个密码系统至少由明文、密文、加密算法、解密算法和密钥5部分组成,而其安全性是由(D)决定的。
A、加密算法B、解密算法C、加解密算法D、密钥3、计算和估计出破译密码系统的计算量下限,利用已有的最好方法破译它的所需要的代价超出了破译者的破译能力(如时间、空间、资金等资源),那么该密码系统的安全性是(B )。
A无条件安全B计算安全C可证明安全D实际安全4、根据密码分析者所掌握的分析资料的不通,密码分析一般可分为4类:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击,其中破译难度最大的是(D )。
A、唯密文攻击B、已知明文攻击C、选择明文攻击D、选择密文攻击填空题:5、1976年,W.Diffie和M.Hellman在密码学的新方向一文中提出了公开密钥密码的思想,从而开创了现代密码学的新领域。
6、密码学的发展过程中,两个质的飞跃分别指1949年香农发表的保密系统的通信理论和公钥密码思想。
7、密码学是研究信息寄信息系统安全的科学,密码学又分为密码编码学和密码分析学。
8、一个保密系统一般是明文、密文、密钥、加密算法、解密算法5部分组成的。
9、密码体制是指实现加密和解密功能的密码方案,从使用密钥策略上,可分为对称和非对称。
10、对称密码体制又称为秘密密钥密码体制,它包括分组密码和序列密码。
第二章判断题:×√√√选择题:1、字母频率分析法对(B )算法最有效。
A、置换密码B、单表代换密码C、多表代换密码D、序列密码2、(D)算法抵抗频率分析攻击能力最强,而对已知明文攻击最弱。
A仿射密码B维吉利亚密码C轮转密码D希尔密码3、重合指数法对(C)算法的破解最有效。
一、古典密码(1,2,4)解:设解密变换为m=D(c)≡a*c+b (mod 26)由题目可知密文ed 解密后为if,即有:D(e)=i :8≡4a+b (mod 26) D(d)=f :5≡3a+b (mod 26) 由上述两式,可求得a=3,b=22。
因此,解密变换为m=D(c)≡3c+22 (mod 26)密文用数字表示为:c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7] 则明文为m=3*c+22 (mod 26)=[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17]= ifyoucanreadthisthankateahcer4. 设多表代换密码C i≡ AM i + B (mod 26) 中,A是2×2 矩阵,B是0 矩阵,又知明文“dont”被加密为“elni”,求矩阵A。
解:dont = (3,14,13,19) => elni = (4,11,13,8)二、流密码 (1,3,4)1. 3 级 线 性 反 馈 移 位 寄 存 器 在 c 3=1 时 可 有 4 种 线 性 反 馈 函 数 , 设 其 初 始 状 态 为 (a 1,a 2,a 3)=(1,0,1),求各线性反馈函数的输出序列及周期。
解:设反馈函数为 f(a 1,a 2,a 3) = a 1⊕c 2a 2⊕c 1a 3当 c1=0,c2=0 时,f(a 1,a 2,a 3) = a 1,输出序列为 101101…,周期为 3。
当 c1=0,c2=1 时,f(a 1,a 2,a 3) = a 1⊕a 2,输出序列如下 10111001011100…,周期为 7。
当 c1=1,c2=0 时,f(a 1,a 2,a 3) = a 1⊕a 3,输出序列为 10100111010011…,周期为 7。
分组密码体制1.设算法中盒的输入为,求其输出。
2.(1)设是的逐比特取补,证明在中,如果对明文分组和加密密钥都逐比特取补,那么得到的密文也是原密文的逐比特取补,即如果那么提示:对任意两个长度相等的比特串和,证明。
(2)对进行穷搜索时,需要在由个密钥构成的密钥空间进行。
能否根据(1)的结论减小穷搜索攻击时所用的密钥空间。
3.证明的解密变换是加密变换的逆。
4.计算上的多项式乘法(1)(2)(3)(4)5.设算法分组长度为,输入的明文和密钥分别为求的第轮输出。
6.在的模式中,如果在密文分组中有一个错误,解密后仅相应的明文分组受到影响。
然而在模式中,将有错误传播。
例如在图3-11中中的一个错误明显影响到和的结果。
(1) 后的分组是否受到影响?(2) 设加密前的明文分组中有一个比特的错误,问这一错误将在多少个密文分组中传播?对接收者产生什么影响?7.在比特模式中,如果在密文字符中出现比特的错误,问该错误能传播多远?Hash 函数1.指出强抗碰撞函数与弱抗碰撞函数之间的区别。
2.考虑函数。
设、是两个素数,,是的生成元。
作为公钥,与作为签名者的私钥。
对任意消息,其摘要定义为(1) 令,。
分别计算消息,的摘要。
(2) 证明:如果得到了两个碰撞的消息,那么就可以求出的分解。
(3) 证明:如果得到了的分解,那么就可以找到碰撞的消息。
3.设是一个素数,、是的两个生成元,使得离散对数的计算是困难的。
对任意消息,定义函数的摘要为(1) 设,,。
分别计算消息,的摘要。
(2) 证明:求解函数的碰撞等价于计算离散对数。
4.设是一个从到的函数,这里,。
对任意整数,按下述方法定义一个从到的函数:对任意,设其中,定义假设是抗碰撞的,试证也是强抗碰撞的。
5.考虑用公钥加密算法构造函数。
假设使用公钥加密算法,首先将消息进行分组;用加密第个分组;将加密结果与第个分组作异或,再对其进行加密;一直进行下去。
例如,如果消息被分成两个分组和,则其值为。
1、是非判断题(10分)1.差分分析是一种攻击迭代密码体制的选择明文攻击方法,所以,对于DES和AES都有一定的攻击效果。
(对)2.反馈移位寄存器输出序列生成过程中,抽头位对输出周期长度的影响起着决定性的作用,而初态对输出周期长度没影响。
(对)3.被撤销的公钥证书都需放入到证书撤销列表中,但证书撤销列表长度不一定会增加。
(对)4..非保护代理者的代理签名和保护代理者的代理签名之间的差别在于是否具有不可伪造性。
(错:可识别性)(非保护代理者的代理签名:验证者不能识别出代理者的身份)5.SSL协议是指在网络层之上提供的一种用于客户端浏览器和Web服务器之间的安全连接技术。
(错)(工作在传输层和应用层之间,与应用层协议无关)6.零知识证明是指证明者能够在不向验证者提供任何有用的信息的情况下,使验证者能相信某个论断是正确的。
(对)7.SET协议是一个应用层协议,在相关应用中比SSL协议具有更多优点,也是更复杂的密码应用协议。
(对)8.公钥证书应用于用户身份的鉴别,而属性证书应用于用户权限的管理。
(对)2、选择题(15分)1.公钥密码体制至少能抵御的攻击是(C.选择明文攻击)2.适合文件加密,而且有少量错误时不会造成同步失败,是软件加密的最好选择,这种分组密码的操作模式是指(D.输出反馈模式)3.按目前的计算能力,RC4算法的密钥长度至少应为(C.128)位才能保证安全强度。
4.密钥在其生命生命周期中处于不同的状态,每种状态包含若干时期,那么密钥备份时期是密钥处于(B.使用状态)5.SSL协议中,(A)具体实施客户端和服务器之间通信信息的保密。
A.记录协议(为高层协议提供基本的安全服务,记录层封装各种高层协议,具体实施加解密、计算和校验MAC等与安全有关的操作)B.修改密码规程协议(切换状态,把密码参数设置为当前状态。
在握手协议中,当安全参数协商一致后,发送此消息)C.告警协议(显示信息交换过程中所发生的错误)D.握手协议(会话密钥的协商)6.量子密码更适合实现下面哪项密码技术。
第5章 Hash 函数与消息认证
习题及参考答案
1. 指出强抗碰撞H ash 函数与弱抗碰撞H ash 函数之间的区别。
答:弱抗碰撞H ash 函数是任给一个消息x,寻找另一个不同的消息x ,
使得他们的H ash 函数值相等是不可行;强抗碰撞Hash 函数是同时寻找两个不同的消息使得他们的Hash 函数值相等是计算上不看行的,可以看出强抗碰撞Hash 函数一定是弱抗碰撞的。
2. 考虑Gibson Hash 函数h 。
设p 、q 是两个素数,N =p ⨯q ,g 是(Z N )*的生成元。
N 作为公钥,p 与q 作为签名者的私钥。
对任意消息m ,其摘要定义为:
h (m )= g m mod N 。
(1) 令N =4897,g =2231。
分别计算消息m =132748,m '=75676的摘要。
(2) 证明:如果得到了两个碰撞的消息,那么就可以求出N 的分解。
(3) 证明:如果得到了N 的分解,那么就可以找到碰撞的消息。
解:(1)由h (m )= g m mod N 。
所以h (132748)=2231
132748
mod4897=2611 h(75676)=2611
(2)证明:若h (m)= h (m ')则有g m mod N= g m ' mod N
假设 N 的分解为 N=p*q 所以代入 然后根据中国剩余定理可以解得 p ,q 。
3. 设p 是一个素数,g 1、g 2是(Z p )*
的两个生成元,使得离散对数
p g g mod log
21
的计算是困难的。
对任意消息m =(m 1, m 2),定义H ash 函数h 的摘要为:
p g g m m h m m mod ),(2
1
2
1
21⨯=。
(1) 设p =65867,g 1=11638,g 2=22770。
分别计算消息m =(33123, 11789),m '=(55781, 9871)的摘要。
(2) 证明:求解H ash 函数h 的碰撞等价于计算离散对数p g g mod log
21。
解:(1)由p g g m m h m m mod ),(2
1
2121⨯=并把题中数据代入公式中 得 h(33123,11789)=56381 h (55781,9871)=15899
(2)证明:求解Hash 函数h 的碰撞,即寻找m 和m ',使得)'()(m H m H =,也即
使得:p g g p g g m
m
m m mod mod '
2
'
12
1212
1⨯=⨯
两边同时在关于模p 求以1g 为底的对数,整理后得到:
p g m m m m g mod log
)'()'(2
22111
-=-,
这里就涉及到计算离散对数p g g mod log 21。
因此,求解H ash 函数h 的碰撞等价于
计算离散对数p g g mod log
21。
4. 设H 1是一个从(Z 2)2n 到(Z 2)n 的Hash 函数,这里n ≥1,Z 2={0, 1}。
对任意整数i ≥2,按下述方式定义一个从n
i
22)
(Z 到(Z 2)n 的H ash 函数H i :
对任意n i
x 22)(Z ∈,设
x = x 1||x 2,
其中n
-i x x 1
2
221)
(Z ,∈,定义
H i (x )= H 1(H i -1(x 1) || H i -1(x 2) )。
假设H 1是强抗碰撞的。
试证H i 也是强抗碰撞的。
证明:根据定义))(||)(()(21111x H x H H x H i i i --=, 以此类推:))(||)(()(122112111x H x H H x H i i i ---=, ……
))(||)(()(121111111112 x H x H H x H =。
我们不妨假设i H 不是强抗碰撞的,则找得到'x 和已知的)(x H i 碰撞,即有
)'()(x H x H i i =,根据以上推导,可以找到1H 的一对碰撞111' x 和111 x ,这与1H 是
强抗碰撞是矛盾的。
因此,如果H 1是强抗碰撞的那么H i 也是强抗碰撞的。
5. 考虑用公钥加密算法构造Hash 函数。
假设使用公钥加密算法RSA ,首先将消息进行分组;用RSA 加密第一个分组;将加密结果与第二个分组作异或,再对其进行加密;一直进行下去。
例如,如果消息M 被分成二个分组B 1和B 2,则其H ash 值为H (B 1,
B 2)=RSA (RSA(B 1)⊕ B 2)。
证明对任一分组
C 1,可找到分组C 2,使得H (C 1, C 2)=H (B 1, B 2)。
进一步证明用这种攻击方法,可攻击该Hash 函数。
证明:
我们先来证明可以找到2C ,使得在已知1C 的情况下使得),(),(2121B B H C C H =。
在RSA 密码体制下,设加密密钥是e 。
则),(),(2121B B H C C H =即为
e
e
e e
B B
C C )()(2121⊕=⊕,我们这里不妨令2121B B C C e
e ⊕=⊕, 则e
e C B B C 1122⊕⊕=,这里的2C 总是能找到的,并且它就满足题目要求,使得H (C 1, C 2)=H (B 1, B 2)。
在多个分组的情况下,利用证明的方法,总是能找到满足要求的分组消息,即实现对该H ash 函数的攻击。
6. 参考利用分组密码构造H ash 函数的方法,试利用公钥加密算法RSA 构造一个Hash 函数,并分析其安全性能。
解:上题即是一个基于RSA 算法构造的H ash 函数,其安全性不能好,在实际应用中必须加以改进。
7. 设E k 是一个分组长度为n 的分组密码的加密算法,密钥为k 。
假设密钥长度也为n 。
对于任意消息x ,首先对x 进行分组,每组长度为n 。
如果x 的长度不是n 的倍数,则在x 的最后适当添加一些数据使得x 的长度恰好是n 的倍数。
设
x = x 1 x 2…x l ,
其中x i ∈GF(2)n (1≤i ≤ l )。
任选IV ∈GF(2)n 作为初始向量,令y 0=IV ,按下面四个不同的公式分别计算y i (1≤i ≤ l ),最后定义H (x )= y l 。
试分析四个H ash 函数H 的安全性。
,)(,)(1-⊕⊕=⊕=i i i k i i i k i y x x E y x x E y
.
)(,)(111---⊕⊕⊕=⊕⊕=i i i i k i i i i k i y x y x E y x y x E y
解:H ash 函数一的安全性依赖于分组密码加密的安全性。
Hash 函数二的安全性依赖反馈序列的安全性和分组加密的安全性。
Hash 函数三的安全性依赖于加密密钥的复杂度。
Hash 函数四的安全性依赖于序列的安全性以及加密密钥的安全性。
8. 为什么在密钥公开的条件下,基于分组密码的CBC 工作模式和CFB 工作模式的Hash 函数H 是不安全的?对于任意给定的消息x ,试寻找一个与x 不同的消息x ',使得H (x ')=H (x )。
答案参见第5题。
9.实现MD5-MAC,设密钥K=“001122…99aabb…ff”。
分别对消息x=“”,“abc”,“abc…xyz”,求出MD5-MAC(x)。
答略
10.对于SHA,计算W16,W17,W18和W19。
答略
11.用高级语言编写实现SHA-1算法的程序。
略。