计算机网络原理恺撒密码/列置密码总结

前言

这几天写试卷遇到了这到题目,百度+谷歌都找不到通俗易懂的解法,今天我就分享一下我自己的解法(加密、解密)

开始

试卷要求是写出明文,但是我们肯定是明文+密文都要会的,下面会讲解。

题目

Bob给Alice发送了igyk和hsietetdrlileusa两段密文。其中第一段密文为密钥k=6(字符集为26个小写英文字母)的恺撒密码,第二段密文是采用了第一段的文明作为加密密钥的列置换密码。

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

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

恺撒密码

先开始介绍恺撒密码分明文、密文两种加密。

明文解题步骤

ps:你肯定要先会记住26个字母的顺序表

1.先把字母表写出来(确保顺序没错)

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

2.恺撒密码(明文),密文=igyk,密文字母往后移动密钥k=6个位置(移动个数不从自身开始算)

i = c

g = a

y = s

k = e

明文:case

密文解题步骤

ps:你肯定要先会记住26个字母的顺序表

1.先把字母表写出来(确保顺序没错)

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

2.恺撒密码(密文),明文=case,密文字母往前移动密钥k=6个位置(移动个数不从自身开始算)

c = i

a = g

s = y

e = k

密文:igyk

列置换密码

是基于恺撒密码拿到的明文case字母作为基础,开始介绍列置换密码分明文、密文两种加密

明文解题步骤

ps:你肯定要先会记住26个字母的顺序表

1.case = {2, 1, 4, 3}

问:如何得到的?

答:是根据26个字母排序得到的,a是这里面最大的所以是1,c是2,e是3,s是4。

2.hsietetdrlileusa密文分矩阵拆分,分成4(case长度=4)个一行,一竖4个一竖4个排序...

1 2 3 4
h t r e
s e l u
i t i s
e d l a

3.再通过case = {2, 1, 4, 3},进行排序

2 1 4 3
t h e r
e s u l
t i s i
d e a l

结果由  一行一行  得到:

ther

esul

tisi

deal

明文:theresultisideal

密文解题步骤

ps:你肯定要先会记住26个字母的顺序表

1.case = {2, 1, 4, 3}

问:如何得到的?

答:是根据26个字母排序得到的,a是这里面最大的所以是1,c是2,e是3,s是4。

2.theresultisideal明文分矩阵拆分,分成4(case长度=4)个一行,一行4个一行4个排序...

1 2 3 4
t h e r
e s u l
t i s i
d e a l

3.再通过case = {2, 1, 4, 3},进行排序

2 1 4 3
h t r e
s e l u
i t i s
e d l a

结果由 一竖一竖 得到:

hsie

tetd

rlil

eusa

密文:hsietetdrlileusa

总结

恺撒密码

  1. 明文向后
  2. 密文向前

列置换密码

  1. 明文是竖排序,结果是行排序
  2. 密文是行排序,结果是竖排序

猜你喜欢

转载自blog.csdn.net/echo_Ae/article/details/123525430