一、基本原理
普莱费尔密码(英文:Playfair cipher 或 Playfair square)是一种使用一个关键词方格来加密字符对的加密法,1854年由一位名叫查尔斯·惠斯通(Charles Wheatstone)的英国人发明。
1.1 基本原理
Playfair算法基于一个5*5的字母矩阵,该矩阵使用一个关键词构造,方法是按从左到右、从上到下顺序,填入关键词的字母(去除重复字母)后,将字母表其作余字母填入。
它依据一个5x 5的正方形组成的密码表来编写,密码表里排列有25个字母。如果一种语言字母超过 25 个,可以去掉使用频率最少的一个。如,法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待。英语中z使用最少,可以去掉它。
1.2 操作步骤
①构造一个基于5×5的字母矩阵
②该矩阵使用一个关键词(密钥)来构建
③然后从左到右、从上到下;依次填入密钥的字母(注意:密钥中重复的字母不填),然后再以字母表顺序依次填入其他字母
④字母 I 和 J 算作一个字母
例如:取关键字(密钥):monarchy,则字母矩阵为下图所示(矩阵只能放25个字母,I与J同)
1.3 加密规则
Playfair加密算法是先将明文按两个字母一组进行分组,然后在矩阵中找对应的密文。
取密文的规则如下:
a) 若明文出现相同字母在一组,则在重复的明文字母中插入一个填充字母(eg:z)进行分隔后重新分组(eg: balloon被重新分组为ba lz lo on)
b) 若分组到最后一组时只有一个字母,则补充字母z
c) 若明文字母在矩阵中同行,则循环取其右边下一个字母为密文(矩阵最右边的下一个是最左边的第一个)(eg: ar被加密为RM)
d) 若明文字母在矩阵中同列,则循环取其下边下一个字母为密文(矩阵最下边的下一个是最上边的第一个)(eg: mu被加密为CM)
e) 若明文字母在矩阵中不同行不同列,则取其同行且与同组另一字母同列的字母为密文(eg: hs被加密为BP,ea被加密为IM或JM)
总结:同行、同列的明文则向右、向下位移一位得到的字母作为密文输出
不同行不同列的明文则取其同行同列交互的字母作为密文输出
二、解题
“密码学题目”的第43题如下所示:
43、密钥为“ISCBUPT”,利用Playfair密码算法,将密文“GNTLTONHOEAFCP”解密,其结果为()。
A.steganographia
B.steganographie
C.steeanographia
D.ateganographia
解:
构造的矩阵如下:
I/J S C B U
P T A D E
F G H K L
M N O Q R
V W X Y Z
则分组如下:
GN TL TO NH OE AF CP
则解密如下:
GN->TG TL->EG TO->AN NH->OG OE->RA AF->PH CP->IA
即tgeganographia
答案有问题。
原文始发于微信公众号(豆豆咨询):密码学——playfair密码
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论