现代密码学-第3章分组密码习题与解答-20091206
- 格式:doc
- 大小:165.50 KB
- 文档页数:4
一、古典密码(1,2,4)解:设解密变换为m=D(c)≡a*c+b (mod 26)由题目可知密文ed 解密后为if,即有:D(e)=i :8≡4a+b (mod 26) D(d)=f :5≡3a+b (mod 26) 由上述两式,可求得a=3,b=22。
因此,解密变换为m=D(c)≡3c+22 (mod 26)密文用数字表示为:c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7] 则明文为m=3*c+22 (mod 26)=[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17]= ifyoucanreadthisthankateahcer4. 设多表代换密码C i≡ AM i + B (mod 26) 中,A是2×2 矩阵,B是0 矩阵,又知明文“dont”被加密为“elni”,求矩阵A。
解:dont = (3,14,13,19) => elni = (4,11,13,8)二、流密码 (1,3,4)1. 3 级 线 性 反 馈 移 位 寄 存 器 在 c 3=1 时 可 有 4 种 线 性 反 馈 函 数 , 设 其 初 始 状 态 为 (a 1,a 2,a 3)=(1,0,1),求各线性反馈函数的输出序列及周期。
解:设反馈函数为 f(a 1,a 2,a 3) = a 1⊕c 2a 2⊕c 1a 3当 c1=0,c2=0 时,f(a 1,a 2,a 3) = a 1,输出序列为 101101…,周期为 3。
当 c1=0,c2=1 时,f(a 1,a 2,a 3) = a 1⊕a 2,输出序列如下 10111001011100…,周期为 7。
当 c1=1,c2=0 时,f(a 1,a 2,a 3) = a 1⊕a 3,输出序列为 10100111010011…,周期为 7。
《现代密码学习题》答案第一章判断题×√√√√×√√选择题1、1949年,( A )发表题为《保密系统的通信理论》的文章,为密码系统建立了理论基础,从此密码学成了一门科学。
A、ShannonB、DiffieC、HellmanD、Shamir2、一个密码系统至少由明文、密文、加密算法、解密算法和密钥5部分组成,而其安全性是由( D)决定的。
A、加密算法B、解密算法C、加解密算法D、密钥3、计算和估计出破译密码系统的计算量下限,利用已有的最好方法破译它的所需要的代价超出了破译者的破译能力(如时间、空间、资金等资源),那么该密码系统的安全性是( B )。
A无条件安全B计算安全C可证明安全D实际安全4、根据密码分析者所掌握的分析资料的不通,密码分析一般可分为4类:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击,其中破译难度最大的是( D )。
A、唯密文攻击B、已知明文攻击C、选择明文攻击D、选择密文攻击填空题:5、1976年,和在密码学的新方向一文中提出了公开密钥密码的思想,从而开创了现代密码学的新领域。
6、密码学的发展过程中,两个质的飞跃分别指 1949年香农发表的保密系统的通信理论和公钥密码思想。
7、密码学是研究信息寄信息系统安全的科学,密码学又分为密码编码学和密码分析学。
8、一个保密系统一般是明文、密文、密钥、加密算法、解密算法 5部分组成的。
9、密码体制是指实现加密和解密功能的密码方案,从使用密钥策略上,可分为对称和非对称。
10、对称密码体制又称为秘密密钥密码体制,它包括分组密码和序列密码。
第二章判断题:×√√√选择题:1、字母频率分析法对(B )算法最有效。
A、置换密码B、单表代换密码C、多表代换密码D、序列密码2、(D)算法抵抗频率分析攻击能力最强,而对已知明文攻击最弱。
A仿射密码B维吉利亚密码C轮转密码D希尔密码3、重合指数法对(C)算法的破解最有效。
A置换密码B单表代换密码C多表代换密码D序列密码4、维吉利亚密码是古典密码体制比较有代表性的一种密码,其密码体制采用的是(C )。
第3章 分组密码习题及参考答案1. 设DES 算法中,明文M 和密钥K 分别为:M =0011 1000 1100 0100 1011 1000 0100 0011 1101 0101 0010 0011 1001 1110 0101 1110K =1010 1001 0011 0101 1010 1100 1001 1011 1001 1101 0011 1110 1101 0101 1100 0011求L 1和R 2。
解:初始变换IP :1001 1010 1101 0101 1101 0010 0011 1000 0101 0110 0010 0101 1100 0101 1110 1000则,0L =1001 1010 1101 0101 1101 0010 0011 10000R =0101 0110 0010 0101 1100 0101 1110 1000K 去校验位得:0C =1101 0111 1100 0000 0010 0111 01110D =1010 1000 0111 0110 0011 0101 0010循环左移一位:1C =1010 1111 1000 0000 0100 1110 11111D =0101 0000 1110 1100 0110 1010 0101经过置换选择得到:1K =0000 1111 0110 1000 1101 1000 1001 1010 1000 0111 0011 0001同样可以得到:2K =0101 0101 0110 0001 1101 1101 1011 0101 0101 0000 0110 11101L =0R =0101 0110 0010 0101 1100 0101 1110 1000经过轮函数F 后,0R 经过扩展置换E 后为:0010 1111 1100 0001 0000 1011 1110 0000 1011 1111 0000 0000和1K 异或后经S 盒替换:0100 1100 0011 1000 0100 1100 0000 1010经过P 盒置换后输出:0001 1100 0000 1110 1000 0000 0101 1100和0L 异或得1R :1000 0110 1101 1011 0101 0010 0110 01001R 经过扩展置换E 得48位输出:1000 1010 0100 0010 0000 1000 0010 0101 1101 0100 10101010同上过程可得2R :1101 0100 1100 0111 0000 1101 0001 0110即:1L =0101 0110 0010 0101 1100 0101 1110 10002R =1101 0100 1100 0111 0000 1101 0001 01102. 设DES 算法中S 4盒的输入为010101,求其输出。
第三章习题1简述分组密码算法的基本工作原理。
答分组密码在加密过程中不是将明文按字符逐位加密而是首先要将待加密的明文进行分组每组的长度相同然后对每组明文分别加密得到密文。
分组密码系统采用相同的加密密钥和解密密钥这是对称密码系统的显著特点。
例如将明文分为m块0121mPPPP每个块在密钥作用下执行相同的变换生成m个密文块0121mCCCC每块的大小可以任意长度但通常是每块的大小大于等于64位块大小为1比特位时分组密码就变为序列密码如图是通信双方最常用的分组密码基本通信模型。
加密算法解码算法明文x密文y明文x密钥k密钥kkExykDyxAliceBob不安全信道安全信道密钥k攻击者图分组密码基本通信模型图在图中参与通信的实体有发送方Alice、接收方Bob。
而攻击者是在双方通信中试图攻击发方或者收方信息服务的实体攻击者经常也称为敌人、对手、搭线者、窃听者、入侵者等并且攻击者通常企图扮演合法的发送方或者接收方。
2为了保证分组密码算法的安全对分组密码算法的要求有哪些答为了保证分组密码的安全强度设计分组密码时应遵循如下的基本原则1分组长度足够长防止明文穷举攻击例如DESData Encryption Standard、IDEAInternational Data Encryption Algorithm等分组密码算法分组块大小为64比特在生日攻击下用322组密文破解成功概率为0.5同时要求32152642bitsMB大小的存储空间故在目前环境下采用穷举攻击DES、IDEA等密码算法是不可能而AES明文分组为128比特同样在生日攻击下用642组密文破解成功概率为0.5同时要求存储空间大小为644821282bitsMB采用穷举攻击AES算法在计算上就更不可行。
2 密钥量足够大同时需要尽可能消除弱密钥的使用防止密钥穷举攻击但是由于对称密码体制存在密钥管理问题密钥也不能过大。
3密钥变换足够复杂能抵抗各种已知攻击如差分攻击、线性攻击、边信道攻击等即使得攻击者除了穷举攻击外找不到其它有效攻击方法。
《现代密码学》练习题(含答案)一、填空题(每空1分,共7分)1. 加密算法的功能是实现信息的保密性。
2. 数据认证算法的功能是实现数据的完整性即消息的真实性。
3. 密码编码学或代数中的有限域又称为伽罗华(Galois)域。
记为GF(pn)4. 数字签名算法可实现不可否认性即抗依赖性。
信息安全基本要求:可用性、保密性、完整性、不可否认性、可控性、真实性。
5. Two-Track-MAC算法基于带密钥的RIPEMD-160。
密钥和输出MAC值都是20B6. AES和Whirlpool算法是根据宽轨迹策略设计的。
7. 序列密码的加密的基本原理是:用一个密钥序列与明文序列进行叠加来产生密文。
8. Rabin密码体制是利用合数模下求解平方根的困难性构造了一种非对称/公钥/双钥密码体制。
1. 现代对称密码的设计基础是:扩散和混淆。
2. 加密和解密都是在密钥控制下进行的。
3. 在一个密码系统模型中,只截取信道上传送信息的攻击方式被称为被动攻击。
4. Caesar密码体制属于单表代换密码体制。
(字母平移)5. 尽管双重DES不等价于使用一个56位密钥的单重DES,但有一种被称为中途相遇攻击的破译方法会对它构成威胁。
(成倍减少要解密的加密文本)6. 设计序列密码体制的关键就是要设计一种产生密钥流的方法。
2. 椭圆曲线密码是利用有限域GF(2n)上的椭圆曲线上点集所构成的群上定义的离散对数系统,构造出的公钥/非对称密码体制。
3. 在公钥密码体制中,加密密钥和解密密钥是不一样的,加密密钥可以公开传播而不会危及密码体制的安全性。
2. 密码学上的Hash函数是一种将任意长度的消息压缩为某一固定长度的消息摘要的函数。
3. 数字签名主要是用于对数字消息进行签名,以防止消息的伪造或篡改,也可以用于通信双方的身份认证。
2. CTR/计数器加密模式与CBC认证模式组合构成CCM模式;GMAX算法与CTR加密模式组合构成GCM模式。
现代密码学课后题整理目录chap 1 (3)信息安全中常用的攻击分别指什么?分别使用什么密码技术能抵御这些攻击? (3)简述密码学和信息安全的关系。
(3)简述密码发展史。
(3)公钥密码体制与对称密码体制相比有哪些优点和不足? (3)简述密码体制的原则。
(4)简述保密系统的攻击方法。
(4)chap 2 (4)多表代换密码体制的分析方法 (4)Kasiski测试法 (4)重合指数法 (5)chap 3 (5)欧拉定理 (5)费马定理 (5)Blum整数 (5)chap 4 (5)分组密码的设计应满足的要求是什么? (5)简述分组密码设计的准则。
(6)简述DES算法中S盒的特点。
(6)DES算法具有互补性,而这个特性会使DES在选择明文攻击下所需的工作量减半。
简要说明原因。
(6)为什么二重DES并不像人们想象的那样可提高密钥长度到112bit,而相当57bit?请简要说明原因。
(6)简述利用差分分析攻击DES算法的基本过程。
(7)简述线性攻击的基本原理。
(7)简述AES算法的正变换矩阵比逆变换矩阵简单的原因。
(7)简述AES的子密钥生成过程。
(7)简述DES与AES的相同之处和不同之处。
(7)简述设计分组密码的工作模式应遵循的基本原则。
(8)chap 5 (8)简述序列密码算法和分组密码算法的不同 (8)密钥序列生成器是序列密码算法的核心,请说出至少5点关于密钥序列生成器的基本要求 (8)chap 6 (9)MD5在MD4基础上做了哪些改进,其改进目的是什么? (9)简述利用生日攻击方法攻击Hash函数的过程 (9)chap 7 (9)与RSA密码体制和ElGamal体制相比,简述ECC密码体制的特点。
(9)Chapter 8 (9)1简述数字签名的特点。
(9)2为什么对称密码体制不能实现消息的不可否认性? (10)4 计算不考 (10)5 ElGamal、Schnorr、DSA这3种签名方案的联系与区别。
第3章 分组密码
习题及参考答案
1. 设DES 算法中,明文M 和密钥K 分别为:
M =0011 1000 1100 0100 1011 1000 0100 0011 1101 0101 0010 0011 1001 1110 0101 1110
K =1010 1001 0011 0101 1010 1100 1001 1011 1001 1101 0011 1110 1101 0101 1100 0011
求L 1和R 2。
解:
初始变换IP :
1001 1010 1101 0101 1101 0010 0011 1000 0101 0110 0010 0101 1100 0101 1110 1000
则,0L =1001 1010 1101 0101 1101 0010 0011 1000
0R =0101 0110 0010 0101 1100 0101 1110 1000
K 去校验位得:
0C =1101 0111 1100 0000 0010 0111 0111
0D =1010 1000 0111 0110 0011 0101 0010
循环左移一位:1C =1010 1111 1000 0000 0100 1110 1111
1D =0101 0000 1110 1100 0110 1010 0101
经过置换选择得到:1K =0000 1111 0110 1000 1101 1000 1001 1010 1000 0111 0011 0001
同样可以得到:2K =0101 0101 0110 0001 1101 1101 1011 0101 0101 0000 0110 1110
1L =0R =0101 0110 0010 0101 1100 0101 1110 1000
经过轮函数F 后,0R 经过扩展置换E 后为:0010 1111 1100 0001 0000 1011 1110 0000 1011 1111 0000 0000
和1K 异或后经S 盒替换:0100 1100 0011 1000 0100 1100 0000 1010
经过P 盒置换后输出:0001 1100 0000 1110 1000 0000 0101 1100
和0L 异或得1R :1000 0110 1101 1011 0101 0010 0110 0100
1R 经过扩展置换E 得48位输出:1000 1010 0100 0010 0000 1000 0010 0101 1101 0100 1010
1010
同上过程可得2R :1101 0100 1100 0111 0000 1101 0001 0110
即:1L =0101 0110 0010 0101 1100 0101 1110 1000
2R =1101 0100 1100 0111 0000 1101 0001 0110
2. 设DES 算法中S 4盒的输入为010101,求其输出。
解:
01→1,1010→10. 在4S 盒中,(1,5)→2,即输出0010.
3.
在图3.18所示的IDEA 算法MA 部件中,已知输入数据为
X 1= 0000100110010011, X 2= 1010001001001011,
K 1= 1100001000100110, K 2= 1000011010000110,
求输出求Y1和Y2。
1X ⊙1K =1100 1010 1001 0000
1X ⊙1K [+]2X =0110 1100 1101 1011
2Y =【1X ⊙1K [+]2X 】⊙2K =0110 0011 0110 1111
1Y =1X ⊙1K [+]2Y =0010 1101 1111 1111
4. 在IDEA 算法中,已知明文M 和密钥K 分别为:
M =10101010 11100110 01010101 00001111 11001100 00110011 10011001 01100110
K = 00000000 11111111 00000000 11111111 11111111 00001111 11110000 11111111
00001111 11110000 11111111 00000000 00001111 11111111 11110000 00001111
求第一轮的输出和第二轮的输入。
解:第一轮的输出和第二轮的输入是相同的。
根据IDEA 迭代结构图:这里⊗代表⊙,
111K M r ⊗==0011 1010 0111 0000
222][K M r +==0101 0110 0000 1110
333][K M r +==1100 1011 0100 0010
444K M r ⊗==1101 1100 0011 0011
315r r r ⊕==1111 0001 0011 0010
426r r r ⊕==1000 1010 0011 1101
577K r r ⊗==1111 1101 1101 1101
678][r r r +==1000 1000 0001 1010
689K r r ⊗== 0101 1110 0110 1111
9710][r r r +==0101 1100 0100 1100
9111r r r ⊕==0110 0100 0001 1111
12212r r r ⊕== 0000 1010 0100 0010
3913r r r ⊕==1001 0101 0010 1101
10414r r r ⊕==1000 0000 0111 1111
111r Y ==0110 0100 0001 1111
132r Y ==1001 0101 0010 1101
123r Y ==0000 1010 0100 0010
144r Y ==1000 0000 0111 1111
5.计算GF(28)上多项式乘法
(1) ‘57’⋅‘9D’
(2) ‘66’⋅‘D5’
(3) ‘8C’ ⋅‘B5’
(4) ‘F4’ ⋅‘3C’
解:(1)‘57’ ⋅‘02’=’AE’
‘57’ ⋅‘04’=’47’
‘57’ ⋅‘08’=’8E’
‘57’ ⋅‘10’=’07’
‘57’ ⋅‘20’=’0E’
‘57’ ⋅‘40’=’1C’
‘57’ ⋅‘80’=’38’
因此,‘57’ ⋅‘9D’=’57’⋅[‘80’+’10’+’08’+’04’+’01’]=’38’+’07’+’8E’+’47’ +’57’
=’A1’
(2)同上,‘66’ ⋅‘D5’=’FC’
(3) ‘8C’⋅‘B5’=’62’
(4) ‘F4’ ⋅‘3C’=’6C’
6.设AES算法分组长度为128,输入的明文M和密钥K分别为
M=32 6C A8 F6 42 31 8C D6 43 72 64 E0 98 89 07 C3
K=A3 61 89 B5 54 12 D8 90 F4 14 FC AB 81 70 AE 3F
求AES的第一轮输出。
N个字是由密码密钥填充的,即初始轮密钥为K。
解:考虑到扩展密钥的前
k
明文与初始轮密钥加得:91 0D 21 43 16 23 54 46 B7 66 98 4B 19 F9 A9 FC
经过字节代换为:D0 B1 F4 8A 21 EB 4F AA 0E F6 3B F7 BD 84 C5 DF
行移位得:D0 B1 F4 8A EB 4F AA 21 3B F7 0E F6 DF BD 84 C5
列混合变换得:79 E2 9C 43 8F D0 2D 0C 17 D7 D5 08 1E 18 B0 C1
加密钥:A3 54 F4 81 61 12 14 70 89 D8 FC AE B5 90 AB 3F
即得第一轮输出:DA B6 68 C2 EE C2 39 7C 9E 0F 29 A6 AB 88 1B FE。