列置换密码和恺撒密码解题

例题一

本题来自:2018 年 10 月高等教育自学考试全国统一命题考试 计算机网络原理 试卷 (课程代码 04741)

设 Bob 给 Alice 发送了 frgh 和 cuerippnori$ottknlmrwpce 两段密文。其中第一段密文为密钥 k=3(字符集为 26 个小写英文字母)的恺撒密码,第二段密文是

采用了第一段密文的明文作为加密密钥的列置换密码(填充字符为$)。试求:

(1) 第一段密文的明文:

(2) 第二段密文的明文(写出解密过程)

解析

(1)题中frgh是恺撒密码,k=3。我们可以列出A-Z所有的字母,然后向前偏移3个字母,就能得到明文。

a b c d e f g h i j k l m n o p q r s t u v w x y z

f向前偏移三个字母是c

r向前偏移三个字母是o

g向前偏移三个字母是d

h向前偏移三个字母是e

那么第一段的密文的明文就是:code。

(2)第二段密文是采用了第一段密文的明文作为加密密钥的列置换密码,第一段的明文是code,字母出现的先后顺序是1 4 2 3 。

由于密钥是4个字符,密文是24个字符,$24/4=6$,我们可以将密文,按照每6个进行分组,分为四组,分别为:

cuerip | pnori$ | ottknl | mrwpce

然后我们构建一个4列6行的矩阵,接下来,我们要将密文分组,按照密钥字母出现的顺序从上到下放到矩阵中,

1234
comp
utrn
etwo
rkpr
inci
ple$

放入到矩阵中后,我们按照从左到右,逐行记录下来:comp utrn etwo rkpr inci ple$

然后我们把填充字符$去掉,得:comp utrn etwo rkpr inci ple

然后根据英文单词的意思整理:computr network principle 我们可以发现这样就感觉意思通顺了,但是computr 明显少了一个e,我们把e加上去,明文就是:

computer network principle

这道题的参考答案是computer network principle,但是自己推导出来是少一个e的,我也是觉得需要加一个e才能满足单词完整,要么题有问题要么答案有问题。

例题二

如果对明文“bob. i love you. Alice”,利用k=3的恺撒密码加密,得到的密文是什么?利用密钥“nice”进行列置换加密后得到的密文是什么?

解析

第一问

利用恺撒密码加密,k=3,那么明文中所有字母都要往后移动三位。

a b c d e f g h i j k l m n o p q r s t u v w x y z

b移动三位是e

o移动三位是r

i移动三位是l

以此类推,结果是:ere l oryh brx dolfh

第二问

"nice"的字母顺序是4 3 1 2

明文的字符的长度是16,我们构建一个$4\times4$的表格依次将明文填入表格中。

1234
bobi
love
youa
lice

我们按照4 3 1 2 的顺序把字母获取出来:ieae bvuc blyl oooi

加密后的密文就是:ieae bvuc blyl oooi

总结

  1. 恺撒密码,根据k来顺推
  2. 列置换密码,首先根据密钥中字母出现的顺序,确定下一步要取出那一列的数据,第二步就是将明文依次放到表格中,然后按照第一步中的顺序,依次取出列的数据。

列置换密码和恺撒密码解题
https://www.zhaojun.inkhttps://www.zhaojun.ink/archives/1025
作者
卑微幻想家
发布于
2022-02-25
许可协议