第五章 密钥分配与密钥管理 —— 现代密码学(杨波)课后题答案解析
第五章作业参考答案
1.在公钥体制中,每一用户U都有自己的公开钥PKU和秘密钥SKU。如果任意两个用户A,B按以下方式通信,A发给B消息(EPKB(m), A),B收到后,自动向A返回消息(EPKA(m), B),以使A知道B确实收到报文m,
(1) 问用户C怎样通过攻击手段获取报文m?
答:当A发给B消息(EPKB(m), A)时,A的身份“A”并没有认证,而B在收到消息后也无法对发送者进行检验,且身份A,B均明文传输,因此用户C可通过如下手段获得报文m
当A发给B消息(EPKB(m), A)时,C截取该消息并将身份A替换为自己的身份C,将修改后的消息(EPKB(m), C)发给接收者B
B提取消息后,根据身份“C”将返回消息(EPKc(m), B)
C再次劫取B返回的消息(EPKc(m), B),用自己的私钥SKC解密出消息m,并用A的公钥对m加密后将消息(EPKA(m), B)发给A。
这样,用户C获得了报文m,而没有影响A,B之间的正常通信,实现了攻击。
(2)若通信格式变为
A发给B消息EPKB (ESKA(m), m, A)
B向A返回消息EPKA (ESKB(m), m, B)
这时的安全性如何?分析这时A,B如何相互认证并传递消息m。
解:根据消息格式,先对消息m进行了签名,然后再进行加密,传送的消息具有了保密性和认证性,敌手无法获得报文明文,安全性提高。
A,B之间相互认证传递消息的过程如下:
B收到消息EPKB (ESKA(m), m, A)时,先用B自己的私钥解密得到消息(ESKA(m), m, A),然后根据提取的身份信息A,用A的公钥对消息m的签名ESKA(m)的正确性进行验证,如果验证通过,则说明消息确实来自A。反之A用相同的方法可验证EPKA (ESKB(m), m, B)确实来自B,从而实现了相互认证
2.Diffie-Hellman密钥交换协议易受中间人攻击,即攻击者截获通信双方通信的内容后可分别冒充通信双方,以获得通信双方协商的密钥。详细分析攻击者如何实施攻击。
虽然Diffie-Hellman密钥交换算法十分巧妙,但由于没有认证功能,存在中间人攻击。当Alice和Bob交换数据时,Trudy拦截通信信息,并冒充Alice欺骗Bob,冒充Bob欺骗Alice。其过程如下:
(1)Alice选取大的随机数x,并计算X=gx (mod P),Alice将g、P、X传送给Bob,但被Trudy拦截。
(2)Trudy冒充Alice选取大的随机数z,并计算Z=gz(mod P),Trudy将Z传送给Bob。
(3)Trudy冒充Bob,再将Z=gz(mod P)传送给Alice。
(4)Bob选取大的随机数y,并计算Y =gy(mod P),Bob将Y传送给Alice,但被Trudy拦截。
由(1)、(3)Alice与Trudy共享了一个秘密密钥gxz,由(2)、(4)Trudy与Bob共享了一个秘密密钥gyz。
以后在通信过程中,只要Trudy作中间人,Alice和Bob不会发现通信的异常,但Trudy可以获取所有通信内容。
3.Diffie-Hellman密钥交换过程中,设大素数p=11,a=2是p的本原根,
(1) 用户A的公开钥YA=9,求其秘密钥XA
解:XA满足YA=aXA mod p 即9=2XA mod 11,所以由XA=6
(2)设用户B的公开钥YB=3,求A和B的共享密钥K
解:由Diffie-Hellman协议可知K= YB XA mod p=36 mod 11=3
4.线性同余算法Xn+1=(aXn) mod 24,问:
(1)该算法产生的数列的最大周期是多少?
解:由于模m=24因此它没有原根,又由递推式不难得知Xn=anX0 mod 24
因此该算法产生的序列的最大周期为a mod 24的最大阶l,而l|j(24),但l≠j(24)=8
若l=4,则不难验证,X0=1,a=3时,数列周期为4,因此该算法产生数列的最大周期是4
(2) a的值是多少?
解:a必须满足gcd(a,24)=1,所以a在{1,3,5,…,15}中取值。
周期为4的有{3,5,11,13},即为a的取值
(3) 对种子有何限制?
答:种子X0必须满足gcd(X0,24)=1。
5.在Shamir秘密分割门限方案中,设k=3,n=5,q=17,5个子密钥分别是8、7、10、0、11,从中任选3个,构造插值多项式并求秘密数据s
解:取f(1)=8, f(2)=7, f(4)=0,构造插值多项式
f(x)=8(x-2)(x-4)/(1-2)(1-4)+7(x-1)(x-4)/(2-1)(2-4)+0(x-1)(x-2)/(4-1)(4-2)
=8(x-2)(x-4)6+7(x-1)(x-4)8 mod 17
=2x2+10x+13
s= f(0)=13
复习题&&答案
4.1. 密钥管理的一般架构模式是什么
其中主密钥的安全性最高,用于加密密钥加密密钥,
密钥加密密钥也称为次主密钥,用于加密会话密钥和初始密钥
会话密钥用于加密传输的数据或者存储的文件
初始密钥一般用作种子密钥。
4.6. 试述BBS产生器
BBS(blum-blum-shub)产生器
l 首先,选择两个大素数p,q,满足p≡q≡3 mod 4,令n=p×q。再选一随机数s,使得s与n互素。然后按以下算法产生比特序列{Bi}:
l X0=s2 mod n
l for i=1 to ¥ do {
l Xi=X2i-1 mod n
l Bi=Xi mod 2 }
l 即在每次循环中取Xi的最低有效位
4.8. “一次一密”和“一次会话一密”的区别是什么?哪一种情况更加常见。
一次一密是无条件安全的,密钥的长度至少和明文一样长
一次会话一密是指每次会话使用同一个密钥,不同的会话采用不同的密钥
一次会话一密更加常见和实用。
6.1. 对于公开钥的分配,试回答下列问题
(1) 对于公钥密码体制中公开钥的分配,公开发布的方式有什么缺点?
(2) 公用目录表与公钥管理机构的区别是什么?
(3) 公钥管理机构的方式和公钥证书的方式的区别是什么?
(4) 基于身份的体制相比于基于证书的体制的优缺点是什么
(5) 一次性公钥分配方式与公开发布方式相比,哪个安全性相对更好些?
(1) 公开发布的方式,由于缺少保护,公钥易于被替换
(2) 前者是用户直接访问公用目录表去访问密钥,后者是由用户提出查询公钥请求,由公钥管理机构负责查询密钥,并反馈给用户,用户无法直接操作密钥服务器
(3) 公钥管理机构的方式中,服务器必须在线,而证书的方式中CA可以离线
(4) 基于身份的体制避免了证书维护的开销,直接使用身份作为公钥,但存在密钥托管问题
(5) 一次性公钥分配方式要好些,因为一次性公钥分配中,公钥只在组要分配密钥时临时随机产生,之后就销毁了,被攻击的风险更小些。