playfair密碼

playfair密碼

Playfair密碼(英文:Playfair cipher 或 Playfair square)是一種使用一個關鍵字方格來加密字元對的加密法,1854年由查爾斯·惠斯通(Charles Wheatstone)的英國人發明。

簡介

經萊昂·普萊費爾提倡在英國軍地和政府使用。

它有一些不太明顯的特徵:密文的字母數一定是偶數;任意兩個同組的字母都不會相同,如果出現這種字元必是亂碼和虛碼。

它使用方便而且可以讓頻度分析法變成瞎子,在1854到1855年的克里米亞戰爭和1899年的布爾戰爭中有廣泛套用。但在1915年的一戰中被破譯了。

編寫分三步: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.

相關詞條

相關搜尋

熱門詞條

聯絡我們