第五章 密钥分配与密钥管理 —— 现代密码学(杨波)课后题答案解析

发布时间 2023-11-15 21:51:34作者: 3cH0_Nu1L

第五章作业参考答案

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将gPX传送给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满足YAaXA 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因此它没有原根,又由递推式不难得知XnanX0 mod 24

因此该算法产生的序列的最大周期为a mod 24的最大阶l,而l|j(24),但lj(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 首先,选择两个大素数pq,满足pq≡3 mod 4,令n=p×q。再选一随机数s,使得s与n互素。然后按以下算法产生比特序列{Bi}: 

X0s2 mod n

for  i=1 to ¥ do  {

l     Xi=X2i1 mod n

    BiXi mod 2  }

l 即在每次循环中取Xi的最低有效位 

4.8. “一次一密”和“一次会话一密”的区别是什么?哪一种情况更加常见。

一次一密是无条件安全的,密钥的长度至少和明文一样长

一次会话一密是指每次会话使用同一个密钥,不同的会话采用不同的密钥

一次会话一密更加常见和实用。

6.1. 对于公开钥的分配,试回答下列问题

(1)  对于公钥密码体制中公开钥的分配,公开发布的方式有什么缺点?

(2)  公用目录表与公钥管理机构的区别是什么?

(3)  公钥管理机构的方式和公钥证书的方式的区别是什么?

(4)  基于身份的体制相比于基于证书的体制的优缺点是什么

(5)  一次性公钥分配方式与公开发布方式相比,哪个安全性相对更好些?

(1) 公开发布的方式,由于缺少保护,公钥易于被替换

(2) 前者是用户直接访问公用目录表去访问密钥,后者是由用户提出查询公钥请求,由公钥管理机构负责查询密钥,并反馈给用户,用户无法直接操作密钥服务器

(3) 公钥管理机构的方式中,服务器必须在线,而证书的方式中CA可以离线

(4) 基于身份的体制避免了证书维护的开销,直接使用身份作为公钥,但存在密钥托管问题

(5) 一次性公钥分配方式要好些,因为一次性公钥分配中,公钥只在组要分配密钥时临时随机产生,之后就销毁了,被攻击的风险更小些。