武汉大学计算机学院信息安全专业2004级“密码学”课程考试题(卷面八题,共100分,在总成绩中占70分)一、单表代替密码(10分)①使加法密码算法称为对合运算的密钥k称为对合密钥,以英文为例求出其对合密钥,并以明文M=WEWILLMEETATMORNING为例进行加解密,说明其对合性。②一般而言,对于加法密码,设明文字母表和密文字母表含有n个字母,n为≥1的正整数,求出其对合密钥k。二、回答问题(10分)①在公钥密码的密钥管理中,公开的加密钥Ke和保密的解密钥Kd的秘密性、真实性和完整性都需要确保吗?说明为什么?②简述公钥证书的作用?三、密码比较,说明两者的特点和优缺点。(10分)对DES和AES进行比较,说明两者的特点和优缺点。四、设A=[01,02,03,04]T,B=[b0,b1,b2,b3]T,利用反对数表查表计算AES中的列混淆,求出B。(10分)五、设g(x)=x4+x2+1,g(x)为GF(2)上的多项式,以其为连接多项式组成线性移位寄存器。画出逻辑框图。设法遍历其所有状态,并写出其状态变迁及相应的输出序列。(15分)六、考虑RSA密码体制:(15分)1.取e=3有何优缺点?取d=3安全吗?为什么?2.设n=35,已截获发给某用户的密文C=10,并查到该用户的公钥e=5,求出明文M。七、令素数p=29,椭圆曲线为y2=x3+4x+20mod29,求出其所有解点,并构成解点群,其解点群是循环群吗?为什么?。(15分)八、在下述站点认证协议中函数f起什么作用?去掉f行不行?为什么?(15分)设A,B是两个站点,A是发方,B是收方。它们共享会话密钥Ks,f是公开的简单函数。A认证B是否是他的意定通信站点的协议如下:1.A产生一个随机数RN,并用Ks对其进行加密:C=E(RN,Ks),并发C给B。同时A对RN进行f变换,得到f(RN)。2.B收到C后,解密得到RN=D(C,Ks)。B也对RN进行f变换,得到f(RN),并将其加密成C’=E(f(RN),Ks),然后发C’给A。3.A对收到的C’解密得到f(RN),并将其与自己在第①步得到的f(RN)比较。若两者相等,则A认为B是自己的意定通信站点。否则A认为B不是自己的意定通信站点。参考答案(卷面八题,共100分,在总成绩中占70分)一、单表代替密码(10分)①使加法密码算法称为对合运算的密钥k称为对合密钥,以英文为例求出其对合密钥,并以明文M=WEWILLMEETATMORNING为例进行加解密,说明其对合性。②一般而言,对于加法密码,设明文字母表和密文字母表含有n个字母,n为≥1的正整数,求出其对合密钥k。解答:1.加法密码的明密文字母表的映射公式:A为明文字母表,即英文字母表,B为密文字母表,其映射关系为:j=i+kmod26显然当k=13时,j=i+13mod26,于是有i=j+13mod26。此时加法密码是对合的。称此密钥k=13为对合密钥。举例:因为k=13,所以明文字母表A和密文字母表B为abcdefghijklmnopqrstuvwxyznopqrstuvwxyzabcdefghijklm第一次加密:M=WEWILLMEETATMORNINGC=JRJVYYZRRGOGZBEAVAT第二次加密:C=WEWILLMEETATMORNING??还原出明文,这说明当k=13时,加法密码是对合的。称此密钥为对合密钥。②设n为模,若n为偶数,则k=n/2为对合密钥。若n为奇数,n/2不是整数,故不存在对合密钥。二、回答问题(10分)1)在公钥密码的密钥管理中,公开的加密钥Ke和保密的解密钥Kd的秘密性、真实性和完整性都需要确保吗?说明为什么?解答:①公开的加密钥Ke:秘密性不需确保,真实性和完整性都需要确保。因为公钥是公开的,所以不需要保密。但是如果其被篡改或出现错误,则不能正确进行加密操作。如果其被坏人置换,则基于公钥的各种安全性将受到破坏,坏人将可冒充别人而获得非法利益。②保密的解密钥Kd:秘密性、真实性和完整性都需要确保。因为解密钥是保密的,如果其秘密性不能确保,则数据的秘密性和真实性将不能确保。如果其真实性和完整性受到破坏,则数据的秘密性和真实性将不能确保。③举例(A)攻击者C用自己的公钥置换PKDB中A的公钥:(B)设B要向A发送保密数据,则要用A的公钥加密,但此时已被换为C的公钥,因此实际上是用C的公钥加密。(C)C截获密文,用自己的解密钥解密获得数据。2)简述公钥证书的作用?公钥证书是一种包含持证主体标识,持证主体公钥等信息,并由可信任的签证机构(CA)签名的信息集合。公钥证书主要用于确保公钥及其与用户绑定关系的安全。公钥证书的持证主体可以是人、设备、组织机构或其它主体。公钥证书能以明文的形式进行存储和分配。任何一个用户只要知道签证机构(CA)的公钥,就能检查对证书的签名的合法性。如果检查正确,那么用户就可以相信那个证书所携带的公钥是真实的,而且这个公钥就是证书所标识的那个主体的合法的公钥。从而确保用户公钥的完整性。三、密码比较,说明两者的特点和优缺点。(10分)对DES和AES进行比较,说明两者的特点和优缺点。解答:DES:分组密码,Feist结构,明文密文64位,有效密钥56位。有弱密钥,有互补对称性。适合硬件实现,软件实现麻烦。安全。算法是对合的。AES:分组密码,SP结构,明文密文128位,密钥长度可变≥128位。无弱密钥,无互补对称性。适合软件和硬件实现。安全。算法不是对合的。四、设A=[01,02,03,04]T,B=[b0,b1,b2,b3]T,利用反对数表查表计算AES中的列混淆,求出B。(10分)解答:根据A,写出A(x)=04x3+03x2+02x+01,于是B(x)=A(x)C(x)modx4+1,其中C(x)=03x3+01x2+01x+02。根据式(3-45),写成矩阵形式:于是逐一查表计算可得。五、设g(x)=x4+x2+1,g(x)为GF(2)上的多项式,以其为连接多项式组成线性移位寄存器。画出逻辑框图。设法遍历其所有状态,并写出其状态变迁及相应的输出序列。(15分)解答:1)逻辑框图六、考虑RSA密码体制:(15分)1.取e=3有何优缺点?取d=3安全吗?为什么?②设n=35,已截获发给某用户的密文C=10,并查到该用户的公钥e=5,求出明文M。解答:①e=3的优点是计算快,因为其二进制表示中只有2个1,缺点是不安全。当M较小时,直接开立方可求出M。d=3不安全,经不起穷举攻击。②分解n=35=7×5,于是p=7,q=5。φ(n)=6×4=24。因为e=5,根据ed=1modφ(n),求出d=5。根据M=Cdmodn,M=105mod35,求出M=5。七、令素数p=29,椭圆曲线为y2=x3+4x+20mod29,求出其所有解点,并构成解点群,其解点群是循环群吗?为什么?。(15分)解答:1.穷举:(∞,∞),(2,6),(4,19),(8,10),(13,23),(16,2),(19,16),(27,2)1.7),(2,23),(5,7),(8,19),(14,6),(16,27),(20,3),(27,27)2.22),(3,1),(5,22),(10,4),(14,23),(17,10),(20,26)3.5),(3,28),(6,12),(10,25),(15,2),(17,19),(24,7)(1,24),(4,10),(6,17),(13,6),(15,27),(19,13),(24,22)1.解点群有37个元素,37是素数,故解点群是循环群。八、在下述站点认证协议中函数f起什么作用?去掉f行不行?为什么?(15分)设A,B是两个站点,A是发方,B是收方。它们共享会话密钥Ks,f是公开的简单函数。A认证B是否是他的意定通信站点的协议如下:1.A产生一个随机数RN,并用Ks对其进行加密:C=E(RN,Ks),并发C给B。同时A对RN进行f变换,得到f(RN)。2.B收到C后,解密得到RN=D(C,Ks)。B也对RN进行f变换,得到f(RN),并将其加密成C’=E(f(RN),Ks),然后发C’给A。3.A对收到的C’解密得到f(RN),并将其与自己在第①步得到的f(RN)比较。若两者相等,则A认为B是自己的意定通信站点。否则A认为B不是自己的意定通信站点。解答:去掉f是不行的。如果去掉f,则在第②步的操作不需要密钥,于是坏人截获RN=D(C,Ks)后,发给A,A不能察觉C。于是C假冒成果。不去掉f时,在第②步的操作需要密钥,于是坏人没有密钥,不能冒充。