playfair加密算法
playfair加密分两步
- 构造矩阵
- 两两一组,按规则加密
playfair加密算法是基于5✖️5的矩阵
我们要构造一个5✖️5的矩阵来进行加密
一.构造矩阵
通过关键词(密钥)构造矩阵。
构造目标:构造出一个含有25个英文字母的5✖️5的矩阵,由于英文字母一共有26个,所以,我们把J和I看作相同的字母。
假设关键词是:telegram
构造方法:
1️⃣根据关键词不重复的填入字母。
t | e | l | g | r |
---|---|---|---|---|
a | m | |||
2️⃣根据26个英文字母,依次补全剩余表格,不能重复,I和J看成一个字母
t | e | l | g | r |
---|---|---|---|---|
a | m | b | c | d |
f | h | k | L | n |
o | p | q | s | u |
v | w | x | y | z |
二. 两两一组,按规则加密
流程如下:
明文➡️分组➡️加密
分组规则:
1️⃣两两一组,假如分到最后是奇数,补上一个无效字母(不是它本身的任意字母)
2️⃣假如分组的字母是相同的,如aa一组,则在它俩中间加入一个无效字母,例如aac变成aq,ac,这两组,q是无效字母
加密规则:分好组之后
1️⃣明文字母m1,m2同行,密文是其右边字母。如果是行最后一个字母,则行循环到行首。
举例按照上面构造好的矩阵
假如ad一组,对应密文就是ma
2️⃣明文字母m1,m2同列,密文是其下字母,同理列循环
3️⃣明文字母m1,m2不同行不同列,密文是长方形的另外两个顶点(同行对应同行)
假设明文是aq,则以它们两个点为长方形的顶点,a对应同行顶点是b,q对应的是o,
所以对应密文是bo
真题实战
给出关键词telegram,用playfair加密算法处理明文next time,jay,try something different
答案:
处理后:ne xt qt im ei ay tr ys om et hi ng di fq fe re nt
密文:hr vl ol hb lh cv et gy pa le ik kr bn io ht tl fr
例题说明:我认为只有不同组的情况下相同字母之间才需要加上无效字母,但是课上老师说别人讲的都是错的,不同组也得加上,考试按加上给分,如果哪个好心人有明确的说法,可以留个言,非常感谢