密码学习题总结

密码学习题总结

第一题

在公钥算法还没有诞生的年代,数字签名遥不可及。为了对n位的消息签名,研究者设计了这个方案:事先随机产生2n个56位的秘钥。k1,K1, k2,K2....,kn,Kn,这些参数是保密的。发送者再相应地事先准备好两套64位的签证参数:u,U1,u2,U2: ...,Un,U和v,V1,v2,V2.... vn,Vn,这两套参数公开,其中vi=E(ki,ui), Vi= E(Ki,Ui)。
消息M按如下方式签名。对于消息的第i位,依赖该消息位的值为0或1,将ki或Ki附在消息上。例如,如果消息
的前三位为110,则签名时附上的前三个秘钥为K1,K2,k3。请问该方法如何验证签名?一套 保密秘钥可以安全
地为不同的消息签名多少次?

如何验证签名:直接代入验证签名,例如,明文为M=110,那么M加密之后为K1,K2,k3,那么代入E(K1,U1)得到V1,验证V1是否正确(因为E(Ki,Ui)和Vi都是已知的),同理可以验证V2,v3,可以验证K1,K2,k3是正确的序列,即可验证签名。

一套保密钥可以安全的为不同的消息签名1次。

 

第二题

请借助RSA的相关方法,设计一个方案,使得:(1)第一签名者形成文件,对文件签名,并发给第二签名者;(2)第二签名者首先验证该文件确实是第一签名者签过名。然后,他将其签名也加入文件中。公众不能签证第一签名者签了名但第二签名者未签名的中间结果。只有当两人均签名,公众才能验证到两人都已签名。

第一签名者:RSA(PU2,RSA(PR1,M))  先用签名者1的私钥加密,再用签名者2的公钥加密;

第二签名者:验证:RSA(PR2,RSA(PU2,RSA(PR1,M))) 先用签名者2的私钥解密验证;

                 加密:C=RSA(PR2,RSA(PR1,M)) 再用签名者2的私钥加密;

公众解密:RSAPU1,RSA(PU2,C)对于密文C,先用签名者2公钥解密再用签名者1公钥解密。

 

第三题

设H(m)是一个抗碰撞散列函数,将任意长消息映射为定长的n比特散列值。对于所有的消息x,x’, x≠x’,都有H(x )≠H(x')。.上述说法是否正确?给出解释。

抗攻击型=抗碰撞性=既是强抗碰撞性也是弱抗碰撞性

明文任意长是无限唱的,N位只有2^n中可能,所以是多对一的映射,存在两个消息映射成相同的结果,所以他们的散列结果可能相同。

 

第四题

利用加密算法构造单向散列函数。考虑使用有一个已知密钥的RSA算法。如下处理含有若干分组的消息:加密第一分组,将加密结果与第二分组异或并加密之,等等。通过解决下面问题,说明该方法是不安全的。给定两个分组消息B1B2,其散列码为:RSAH(B1B2)=RSARSAB1B2 ) 给定任一分组C1,选择C2使得RSAH(C1C2)= RSAHB1B2)。因此该散列函数不满足抗弱碰撞性。求C2。

答:因为RSA加密算法的明文与密文是一一对应的关系,

即一个明文只有唯一一个密文与之对应。

所以有  RSA(A1)=RSA(A2)  <=>  A1=A2

补充定理AA=0   0A=A     是异或,相同为1不同为0

RSA(RSA(C1)C2)= RSA(RSA(B1)B2)

RSA(C1)C2= RSA(B1)B2

RSA(C1)RSA(C1)C2= RSA(C1)RSA(B1)B2

C2= RSA(C1)RSA(B1)B2

 

第五题

Bob截获了一份发给Alice的密文C,该密文是用Alice的公钥e加密的。Bob 想获得原始消息M=C^d mod n。Bob选择一个小于 n的随机数r,并计算:  Z=r^e mod n     X=ZC mod n       t=r^(-1)mod n 
接着,Bob让Alice用她的私钥对X进行认证,从而对X进行解密。Alice 返回Y=X^d mod n。请说明Bob如何利用获得的信息去求取M。

加密算法为   

补充定理:

获得一份密文C,想要获得C的明文

Y=(Z^dmod n) (C^dmod n )

           r^edmod n=r   相当于给r先加密在解密回到原来

    

 

第六题

一个公司内部使用的通讯协议原版为:(1) A将(A, E(PUb, [M, A]), B)发给B.(2) B发送应答(B,E(PUa, [M, B]), A)给A。
请问该协议可否简化为:(1) A将(A, E(PUp, M), B)发给B。2) B发送应答(B, E(PUa, M]), A)给A。


答:假如简化会有安全漏洞,那么A发出的消息(A,E(PUb,M),B),如果有一个内部人员C截获A的报文,将A中的报文改成(C,E(PUb,M),B),在发送给B,那么B收到消息之后就会发送消息(B,E(PUc,M),C)发送给C,那么此时C可以用C的私钥解密获取消息。

 

第七题

形如F(M)=M^k mod N,其中K保密,N公开,M=2,3,4,5,6...
这个方案能生成一系列的子秘钥用于一次一密吗?

 

答:假设已知F(2)=2^k mod N=A,F(3)=3^k mod N=B

F(4)= 2^k *2^k mod N =4^k mod N =A^2 mod N

F(6)=6^k mod N =B^2 mod N  且N是已知的。

所以不是一次一密的。

 

第八题

密码学习题总结_第1张图片

  1. 有限制,因为超过26之后称周期性,所以b取大于26的值没有用,所以b的取值为0~25
  2. a与26不能有公因子,即a与26互质,所以a的取值为0~25,且a不等于0,所以a的取值为1~25,且a13
  3. 在小于26的一个周期内,a不能取0 2 4 8 16,a与26之间不能有共同因子,a也不能取偶数。即a*b不能凑成26的整数倍。

你可能感兴趣的:(密码学)