普萊費爾密碼(英文:Playfair cipher 或 Playfair square)是一種使用一個關鍵字方格來加密字元對的加密法,1854年由一位名叫查爾斯·惠斯通(Charles Wheatstone)的英國人發明。
基本介紹
- 中文名:普萊費爾密碼
- 外文名:Playfair cipher
- 發明人:查爾斯·惠斯通
- 發明時間:1854年
簡介,算法,加密,編制密碼錶,整理明文,編寫密文,解密,練習,
簡介
經萊昂·普萊費爾提倡在英國軍地和政府使用。
它有一些不太明顯的特徵:密文的字母數一定是偶數;任意兩個同組的字母都不會相同,如果出現這種字元必是亂碼和虛碼。
編寫分三步:1.編制密碼錶 2.整理明文 3.編寫密文 構成部分:1.密鑰 2.明文3.密文4.註明的某個字母代替的另一個字母
算法
它依據一個5*5的正方形組成的密碼錶來編寫,密碼錶里排列有25個字母。如果一種語言字母超過25個,可以去掉使用頻率最少的一個。如,法語一般去掉w或k,德語則是把i和j合起來當成一個字母看待。英語中z使用最少,可以去掉它。
加密
編制密碼錶
第一步是編制密碼錶。在這個5*5的密碼錶中,共有5行5列字母。第一列(或第一行)是密鑰,其餘按照字母順序。密鑰是一個單詞或詞組,若有重複字母,可將後面重複的字母去掉。當然也要把使用頻率最少的字母去掉。如:密鑰是Live and learn,去掉後則為liveandr。如果密鑰過長可占用第二列或行。
同時字母I和J會被當成一個字母。
如密鑰crazy dog,可編製成
C | D | F | M | T |
R | O | H | N | U |
A | G | I ( J ) | P | V |
Z | B | K | Q | W |
Y | E | L | S | X |
整理明文
第二步整理明文。將明文每兩個字母組成一對。如果成對後有兩個相同字母緊挨或最後一個字母是單個的,就插入一個字母X(或者Q)。
如,communist,應成為co,mx,mu,ni,st。
編寫密文
最後編寫密文。對明文加密規則如下:
1 若p1 p2在同一行,對應密文c1 c2分別是緊靠p1 p2 右端的字母。其中第一列被看做是最後一列的右方。如,按照前表,ct對應dc
2 若p1 p2在同一列,對應密文c1 c2分別是緊靠p1 p2 下方的字母。其中第一行被看做是最後一行的下方。
3 若p1 p2不在同一行,不在同一列,則c1 c2是由p1 p2確定的矩形的其他兩角的字母(至於橫向替換還是縱向替換要事先約好,或自行嘗試)。如,按照前表,wh對應ku或uk。
如,依照上表,明文where there is life,there is hope.
可先整理為:WH ER ET HE RE IS LI FE TH ER EI SH OP EX
然後密文為:KU YO XD OL OY PL FK DL FU YO LG LN NG LY
將密文變成大寫,然後幾個字母一組排列。
如5個一組就是KUYOX DOLOY PLFKD LFUYO LGLNN GLY
解密
Playfair解密算法首先將密鑰填寫在一個5*5的矩陣中(去Q留Z),矩陣中其它未用到的字母按順序填在矩陣剩餘位置中,根據替換矩陣由密文得到明文。
對密文解密規則如下:
1 若c1 c2在同一行,對應明文p1 p2分別是緊靠c1 c2 左端的字母。其中最後一列被看做是第一列的左方。
2 若c1 c2在同一列,對應明文p1 p2分別是緊靠c1 c2 上方的字母。其中最後一行被看做是第一行的上方。
3 若c1 c2不在同一行,不在同一列,則p1 p2是由c1 c2確定的矩形的其他兩角的字母。
其實就是反其道而行之。
練習
一: 密鑰:boys and girls are students ( 按行填充密鑰, 不在同一行的明文字母, 行不變列變)
密文GUUID BCYZC YOETX UUGAB EPBCE TDIUV LDDSB KRPRD IRUW
明文(原文):It is not a problem. It is a challenge. Enjoy facing it.
二:密鑰:father ( 按行填充密鑰, 不在同一行的明文字母, 行變列不變)
密文:OPHEN UMRFP EFPVI DLRGQ NRRNW RHKNR SVNYF HSVFI IJRQP AFK
明文(原文):Nothing in the world is difficult, if you set your mind to it.