关于密码学中一些常见问题的理解

Posted on 2020-04-02 00:00  ZOMIN28  阅读(2040)  评论(0编辑  收藏  举报

1、保证信息安全的关键要素有哪些?

(1)鉴别:消息来源确认,身份的验证。

(2)授权:根据实体身份决定其访问权限。

(3)保密:非授权人无法识别信息。

(4)完整性:防止消息被篡改。

(5)不可否认:不能对所作所为进行抵赖。

 

 

2、设计一个简单的用于与家人通信的密码算法。

加密思想:数字或字母模加消息传输当天的星期进行加密。

对数字:如100316,消息传输当天为星期六,加密方式为:1⊕6=7,0⊕6=6,0⊕6=6,3⊕6=9,1⊕6=7,6⊕6=2;则密文为:766972。

对字母:如qzm,消息传输当天为星期二,加密方式为q⊕2=s,z⊕2=b,m⊕2=o;则密文为:sbo。

 

 

3、既然RSA签名算法存在指数运算攻击,为什么仍然应用广泛?

(1)RSA的解密难度体现在大素数的分解上。虽然RSA签名算法存在指数运算攻击,但随着如今技术的进步和可提供的密钥空间的不断增大,RSA的安全性也在不断提高。

(2)当RSA的密钥长度达到很高位数时,破解难度极大。

 

 

4、为什么说EKE协议的安全性较好?

(1)EKE协议的流程:

A随机产生一个公钥Kap,并使用共享密钥对其进行加密得到Ep(kap)并将其发送给B,B解密后,产生一个会话密钥K,用Ep和Kap对其进行加密发送给A,A解密得到K,这样就完成了密钥的交换。

A用K对产生的消息Ra进行加密并发送给B,B解密后将Ra和唯一产生的Rb用K加密发送给A,A解密后若Ra和之前的Ra相同,则再将Rb加密发送给B,即完成了认证。

(2)安全性较好的原因:

(i)如果攻击者获取了共享密钥Ep,同时了拦截A发送给B的Ep(kap)和B发送给A的Ep(Eap(k)),但是攻击者必须要得到A的私钥才能解密Eap(k),故攻击者无法得到会话密钥K。

(ii)如果A和B成功完成了会话,那么攻击者就不可能知道Ra和Rb,那么就无法篡改或窃取消息。

(iii)在交换Ra和Rb的过程中,A、B若发现消息被篡改,那么将可以不选择使用此K,保证了安全性。

 

 

5、SKEY协议中单向hash链的使用是反向的,如 果采用正向使用是否可行,安全性如何?

(1)从工作原理上来说,类比反向,正向使用的方法是:

银行根据r和xi+1=h(xi)计算x0~x100;

x0=h(r) x1=h(x0)······ x100=h(x99);

银行保存 x0,将x1~x99给用户;

用户每次输入手中未被使用且通过了的下标最小的,服务器将的值与h(-1)的值比较,如果相等,则用替换-1。

和反向不同的是,正向的h函数计算是对服务器中存储的数字进行的。

(2)从安全性的角度来说,当反向使用的时候,由于要对用户使用的进行h()

的计算,所以黑客就算取得了用户手中的也无法通过直接访问服务器来非法登录。但当正向使用的时候,由于h函数的计算是对服务器中存储的数据,故计算是在服务器中完成的,如果黑客取得了xi,那么将可以实现非法登录。所以存在一定的安全隐患。

 

 

二、分析

1、分析对称密码算法是否可用于数字签名?

一般情况下不能。因为签名具有不可抵赖性,在对称算法中,双方都持有相同的密钥,都可以生成签名,故不具有不可抵赖性。

特殊情况:有可信第三方的介入,保证签名的性质的情况下,可以使用数字签名。

 

 

2、分析RSA算法中公钥选择较小素数的原因。

由于p、q为两个大素数,可知(p-1)和(q-1)的值也很大,故φ(n)=(p-1)(q-1)也是一个很大的数,由于d=modφ(n),要使信息更安全,密文更难被破译,要求d也是一个很大的数。当e是一个较小的素数时,e的逆元较大,d较大;而e如果很大时(接近φ(n)的位数),那么d很有可能是一个较小的数,那么安全性就会降低,易被破译。如:

q=9562643915880970470

当e=65537时:d= 2827777272224441273(19位)

当e=2766050993时:d=3457146647(10位)

 

 

3、分析DSA算法中私钥d泄露的后果。

假如A的私钥d泄露,且被攻击者C拿到,那么:

(1)由于签名具有不可抵赖性,C就可以冒用A的身份,对一些信息使用密钥d进行签名,进行如非法诈骗等活动。

(2)C还可以使用密钥d解密A收到来自他人的,用A的公钥加密的信息,对A的信息进行窃取。

 

 

4、分析四种保密通信协议的实际应用场景。

(1)采用古典密码算法的通信协议:

一般适用于普通用户,如两人之间、家庭之间用于通信的保密协议。

(2)采用对称密码算法的通信协议:

由于对称密码算法运算速度快,运算效率高,故例如客户端和服务器端这样高频率的通信过程(如https协议)一般采用对称密码,提高高频率通信的效率。

当有可信第三方介入时,对称密码也可以实现数字签名,可以实现仲裁协议。

(3)采用公钥密码算法的通信协议:

公钥密码算法管理简单,可拓展性较好,可实现裁决协议,一般可用于密钥交换(如EKE协议),或需要扩充到三人或者更多的协议中。

(4)采用混合密码算法的通信协议:

混合密码算法结合了对称密码算法和公钥密码算法的优点,使用对称密码来加密消息,提高加密速度;使用公钥密码来协商会话密钥,简化密钥管理。

 

 

5、分析Diffie-Hellman协议的安全性。

(1)DH协议的过程如下:

选定一个大素数p,(p,g)为公钥;

A选择x<p,发送Ya=g^x(mod p)给B;

B选择y<p,发送Yb=g^y(mod p)给A;

A通过自己的秘密计算(g^y)^x(mod p)=g^(xy)(mod p)

B通过自己的秘密计算(g^x)^y(mod p)=g^(xy)(mod p)。

(2)安全性分析:

(a)A和B拥有相同的g^(xy)(mod p)作为会话密钥进行保密通信。就算攻击者通过攻击得到了p,g,Ya,Yb,但无法知道x,y,基于离散对数的难题,所以求解g^(xy)(mod p)是十分困难的。(给定x,k,求解关于x,k的函数是简易的,但给定y,k求解x是困难的,即y=f(k,x)为一个单向函数)。

(b)但DH算法本身不包含身份认证机制,所以易受到中间人攻击。攻击方式如下:

在A和B间,有一攻击者C;

AB交换公钥p时,C在中间截获;

C自己生成密钥z,用Yc=g^z(mod p)和A、B完成密钥交换;

C与A间有了会话密钥g^(xz)(mod p);

C与B间有了会话密钥g^(yz)(mod p);

只要C从一方获得的信息,重新加密后传递给另一方,就实现了对A、B之间通信的窃取和篡改。