"密码学试题与答案"
密码学是一门重要的计算机科学分支,涉及到信息安全、数据加密、身份验证等多方面内容。以下是武汉大学计算机学院信息安全专业2004级“密码学”课程考试题的相关知识点总结。
一、单表代替密码
单表代替密码是一种基本的加密算法,通过将明文与密钥进行加法运算来实现加密。设明文字母表和密文字母表含有n个字母,n为≥1的正整数,密钥k称为对合密钥。以英文为例,求出其对合密钥k=13,并以明文M=WEWILLMEETATMORNING为例进行加解密,说明其对合性。
单表代替密码的明密文字母表的映射公式为:j=i+k mod 26,其中i为明文字母表,j为密文字母表,k为密钥。显然当k=13时,j=i+13 mod 26,于是有i=j+13 mod 26。此时加法密码是对合的。称此密钥k=13为对合密钥。
二、公钥密码管理
在公钥密码的密钥管理中,公开的加密钥Ke和保密的解密钥Kd的秘密性、真实性和完整性都需要确保。公开的加密钥Ke:秘密性不需确保,真实性和完整性都需要确保。保密的解密钥Kd:秘密性、真实性和完整性都需要确保。
三、密码比较
密码比较是指对不同的加密算法的特点和优缺点进行比较。以DES和AES为例,DES是一种块加密算法,使用56位密钥,分组加密,数据块大小为64位。AES是一种对称加密算法,使用128位、192位或256位密钥,分组加密,数据块大小为128位。
DES的优点是速度快、易于实现,缺点是密钥长度短,安全性不高。AES的优点是安全性高、速度快,缺点是密钥长度长,计算复杂度高。
四、AES列混淆
AES列混淆是指在AES算法中将明文分成若干个块,然后对每个块进行加密操作。设A=[01,02,03,04]T,B=[b0,b1,b2,b3]T,利用反对数表查表计算AES中的列混淆,求出B。
五、线性移位寄存器
线性移位寄存器是一种用于生成伪随机数的方法。设g(x)=x4+x2+1,g(x)为GF(2)上的多项式,以其为连接多项式组成线性移位寄存器。画出逻辑框图,设法遍历其所有状态,并写出其状态变迁及相应的输出序列。
六、RSA密码体制
RSA密码体制是一种公钥密码算法,使用两个大素数p和q,计算n=pq和φ=(p-1)(q-1)。然后选择一个小于φ的整数e,使得gcd(e,φ)=1,计算d=e^(-1) mod φ。
在RSA密码体制中,e称为公钥,d称为私钥。公钥用于加密,私钥用于解密。设n=35,已截获发给某用户的密文C=10,并查到该用户的公钥e=5,求出明文M。
七、椭圆曲线密码学
椭圆曲线密码学是一种基于椭圆曲线的公钥密码算法。设素数p=29,椭圆曲线为y2=x3+4x+20 mod 29,求出其所有解点,并构成解点群,其解点群是循环群吗?为什么?
八、站点认证协议
站点认证协议是一种用于验证站点身份的协议。设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不是自己的意定通信站点。
密码学是一门复杂的学科,涉及到信息安全、数据加密、身份验证等多方面内容。只有通过不断学习和实践,才能更好地掌握密码学的知识和技能。