隐写术与加密技术相比有一些缺点:(1)它形式简单但构造费时,要求有大量的开销来隐藏相对较少的信息。(2)一旦该系统的构造方法被发现,就会变得完全没有价值。(3)隐写术一般无稳健性,如数据改动后隐藏的信息不能被恢复。 3-3 区别代替与换位。
答:代替就是将明文字符用另一个字符取代,代替密码操作的目的是制造混乱,使得确定消息和密钥是怎样转换成密文的尝试变得困难。
换位就是重新排列消息中的字母,以便打破密文的结构特性。即它交换的不再是字符本身,而是字符被书写的位置。
3-4 频率分析的基本处理方法是什么? 答:频率分析攻击的一般方法:
第一步:对密文中出现的各个字母进行统计,找出它们各自出现的频率。
第二步:根据密文中出现的各个字母的频率,和英语字母标准频率进行对比分析,做出假设,推论加密所用的公式。
第三步:证实上述假设(如果不正确,继续作其他假设)。 3-5 使用穷举搜索法,破译如下利用代替密码加密的密文: BEEAKFYDJXUQYHYJIQRYHTYJIQFBQDUYJIIKFUHCQD 解:
密B E E A K F Y D J X U Q Y H Y J I Q R Y H T Y J I Q F B Q D U Y J I I K F U H C Q D 文 -1 a d d z j e x e 1 c f f b l g 2 d g g c 3 e h h 4 f i i 5 g j j 6 h k k 7 i l l h 8 j m 9 k n n 10 l o o k u p i n t h e a i r i t s a b i r d i t s a p l a n e i t s s u p e r m a n 11 m p p 12 n q q 13 o r r n 14 p s s 15 q t t 16 r u u 17 s v v 18 t w w 19 u x x 20 v y 21 w z 22 x a 23 y b 24 z c 因此,本题的解密结果应为:Look up in the air,it’s a bird, it’s a plane, it’s superman。 提示:表中最左边一列的数字表示代替变换时字母的后移位数。
技巧:由于密文的前三个字母为“BEE”,因此根据不同的移位可先观察前三位的明文结果,判断其是否是可能的明文,如果不可能,就中止当前移位,换新的移位数。
3-6 用Playfair算法加密明文“Playfair cipher was actually invented by wheatstone”,密钥是:fivestars。
解:两个“l”间插入“x”(也可插入其他字母)。
ftdmui/jagnwvrhoxebkpysclqz字母矩阵表
fa it ve es ir va nt ma ci as ed fk ph ok by ke er vb wh xg wa ig ea ib sa ic ts cf ct ta to rm ua wt ne pi lx hz 明文 pl 密文 qk 明文 ly 密文 kz ay bw in aw 3-7 用Hill密码加密明文“pay more money”,密钥是:
?17175??
k??211821????2219??解:明文“pay more money”可编码为:15 0 24;12 14 17;4 12 14;13 4 24。 由于:
?17175???303303531mod26=[17 17 11]
211821?15024????????2219???17175???532490677mod26=[12 22 1]
211821?121417????????2219???17175??41214???211821?219???348312??2???17175??13424???211821????353341??2219??故对应的密文为:RRLMWBKASPDH。 提示:解密计算逆矩阵:
17175det?k??211821?-939mod26=23 2219k*1?111???1?M182111?219?300=14
k*???2?1M?175121?21?219??313=25
k*?3?113??1?M17531?1821?267=7
k*21???1?2?1M??212112219??357=7
k*2?222???1?M17522?219?313=1
k*???3?2231?M??175322121??252=8
k*???1?1?331M211813?22?6
k*32???1?2?3M171723??22?0
538?mod26=[10 0 18]
605?mod26=[15 3 7]
*k33???1?3?3M33?1717?-51mod26=1
211823?mod26?
?14257??k?1??718????601??所以,
?4915????15176????24017??3-8 用Vigenere算法加密明文“We are discovered save yourself”,密钥是:deceptive。 解:密文应为:zi cvt wqngrzgvtw avzh cqyglmgj。
《应用密码学》习题和思考题答案
第4章 密码学数学引论
4-1 编写一个程序找出100~200间的素数。 略
4-2 计算下列数值:7503mod81、(-7503)mod81、81mod7503、(-81)mod7503。 解:7503mod81=51 (-7503)mod81=30 81mod7503=81 (-81)mod7503=7422
4-3 证明:(1)?a(modm)?b(modm)?modm?(a?b)(modm)
(2)?a?(b?c)?modm??(a?b)(modm)?(a?c)(modm)?(modm)
证明:
(1)设a(modm)?ra,b(modm)?rb,则a?ra?jm(j为某一整数),b?rb?km(k为某一整数)。于是有:
?a(modm)?b(modm)?modm?(rarb)(modm)
(a?b)(modm)??ra?jm??rb?km??modm???rarb?rakm?rbjm?kjm2??modm???rarb??modm?于是有:?a(modm)?b(modm)?modm?(a?b)(modm)
(2)设a(modm)?ra,b(modm)?rb,c(modm)?rc,则a?ra?j,m(j为某一整数)
b?rb?km(k为某一整数),c?rc?im(i为某一整数)。于是有:
?a?(b?c)?modm????rb?km???rc?im??????ra?jm???(modm)????ra?jm??rb?km?rc?im???(modm)??rarb?raim?rakm?rarc?rbjm?kjm?rcjm?ijm?modm22
??rarb?rarc?modm?(a?b)(modm)?(a?c)(modm)?(modm)????ra?jm??rb?km?modm??ra?jm??rc?im?modm???modm? ??rarb?rarc?modm于是有:?a?(b?c)?modm??(a?b)(modm)?(a?c)(modm)?(modm)
4-4 编写一个程序,用扩展的欧几里德算法求gcd(4655,12075)和550mod1723。 略。
4-5 求25的所有本原元。
解:25的所有本原元是:2, 3, 8, 12, 13, 17, 22, 23。 4-6 求Z5中各非零元素的乘法逆元。
解:Z5中各非零元素分别为1、2、3、4,它们的乘法逆元(mod5)分别是:1、3、2、4。 4-7 求?(100)。
222?12?1解:??100???2?5???2?2?1?????5?5?1????40
-1
??4-8 利用中国剩余定理求解:
?x?2(mod3)??x?1(mod5) ?x?1(mod7)?解: M = 3×5×7 = 105; M/3 = 35; M/5 = 21; M/7 = 15。
35b1=1 (mod 3) 21b2= 1 (mod 5) 15b3=1 (mod 7)
因此有: b1 = 2; b2 = 1; b3 = 1。
则:x =2×2×35 + 1×1×21 + 1×1×15=176 (mod 105)=71