Playfair - chifferet eller Playfair square är en manuell symmetrisk krypteringsteknik som först använde bigramsubstitution . Uppfanns 1854 av den engelske fysikern Charles Wheatstone , men uppkallad efter Lord Lyon Playfair , som gjorde ett stort bidrag till att främja användningen av detta krypteringssystem i offentlig tjänst. Chifferet krypterar par av tecken (bigram) istället för enstaka tecken, som i substitutionschifferet och mer komplexa Vigenère-chiffersystem . Således är Playfair-chifferet mer motståndskraftigt mot sprickbildning än det enkla substitutionschifferet, eftersom dess frekvensanalys blir mer komplicerad . Det kan utföras, men inte för symboler, utan för bigram. Eftersom det finns fler möjliga bigram än symboler är analysen mycket mer mödosam och kräver en större mängd chiffertext.
Även om chiffret var Wheatstones uppfinning, blev det känt som Playfair-chifferet. Dess första beskrivning registrerades i ett dokument undertecknat av Wheatstone den 26 mars 1854 [1] . Wheatstones vän Lord Lyon Playfair rekommenderade detta chiffer för användning av de högsta statsmän och militärer. Det brittiska utrikesdepartementet avvisade dock detta dokument på grund av hur komplicerat det var. När Wheatstone erbjöd sig att visa att tre av fyra pojkar i en närliggande skola kunde lära sig att använda detta chiffer på femton minuter, svarade utrikesministern: " Det är mycket möjligt, men du kommer aldrig att lära ut denna attaché " [2] .
Chifferet användes taktiskt av den brittiska militären under andra boerkriget och första världskriget , och av australierna och tyskarna under andra världskriget . Anledningen till att använda Playfair-chifferet var dess användarvänlighet och frånvaron av behovet av ytterligare specialutrustning. Huvudsyftet med att använda detta krypteringssystem var att skydda känslig men oklassificerad information under strid. När fiendens kryptoanalytiker knäckte meddelandet var informationen redan värdelös för dem [1] [3] .
Användningen av Playfair-chifferet är för närvarande opraktisk eftersom moderna datorer lätt kan bryta chifferet inom några sekunder. Den första publicerade algoritmen för att bryta Playfair-chifferet beskrevs 1914 i en 19-sidig broschyr av Joseph Mawburn3]4] [5] .
Playfair-chifferet använder en 5x5-matris (för det latinska alfabetet, för det kyrilliska alfabetet är det nödvändigt att öka matrisstorleken till 4x8) som innehåller ett nyckelord eller en fras. För att skapa en matris och använda ett chiffer räcker det med att komma ihåg nyckelordet och fyra enkla regler. För att komponera en nyckelmatris måste du först och främst fylla i de tomma cellerna i matrisen med bokstäverna i nyckelordet (utan att skriva ner upprepade tecken), fyll sedan i de återstående cellerna i matrisen med alfabetiska tecken som inte är hittas i nyckelordet, i ordning (i engelska texter är "Q"-tecknet vanligtvis utelämnat, för att minska alfabetet, i andra versioner kombineras "I" och "J" till en cell). Nyckelordet kan skrivas i den översta raden av matrisen från vänster till höger, eller i en spiral från det övre vänstra hörnet till mitten. Nyckelordet, kompletterat med alfabetet, utgör en 5x5 matris och är chiffernyckeln [6] [7] .
För att kryptera ett meddelande är det nödvändigt att dela upp det i bigram (grupper med två tecken), till exempel, "Hello World" blir "HE LL OW OR LD", och hitta dessa bigram i tabellen. De två bigramsymbolerna motsvarar rektangelns hörn i nyckelmatrisen. Bestäm positionerna för denna rektangels hörn i förhållande till varandra. Sedan, med hjälp av följande fyra regler [6] , krypterar vi teckenpar i källtexten:
För dekryptering är det nödvändigt att använda inverteringen av dessa fyra regler, och kassera tecknen "X" (eller "Q") om de inte är meningsfulla i det ursprungliga meddelandet.
Låt oss anta att det är nödvändigt att kryptera bigrammet OR. Tänk på 4 fall:
ett)
* * * * *
* OYRZ
* * * * *
* * * * *
* * * * *
OR ersätts av YZ |
2)
* * O * *
* * B * *
* * * * *
* * R * *
* * Y * *
ELLER ersätts av BY |
3)
Z**O*
* * * * *
* * * * *
R**X*
* * * * *
OR ersätts av ZX |
fyra)
* * * * *
* * * * *
YOZ*R
* * * * *
* * * * *
ELLER ersätts av ZY |
Betrakta följande exempel [8] . Låt nyckelordet vara WHEATSON, då får vi matrisen:
W | H | E | A | T |
S | O | N | B | C |
D | F | G | jag | K |
L | M | P | F | R |
U | V | X | Y | Z |
Kryptera meddelandet "IDIOTI SER OFTA UT SOM INTELLIGENS". För att göra detta delar vi in meddelandet i bigram:
ID IO CY OF TE NL OO KS LIKE I TE LL IG EN CE
Eftersom det sjunde digrammet innehåller upprepade bokstäver är det nödvändigt att infoga ett X mellan dem:
ID IO CY OF TE NL OX OK SL IK EI NT EL LI GE NC E
För att det sista elementet ska bli ett bigram måste du lägga till X till slutet:
ID IO CY OF TE NL OX OK SL IK EI NT EL LI GE NC EX
Nu, genom att tillämpa reglerna som beskrivs ovan, krypterar vi varje bigram i tur och ordning.
Text: ID IO CY OF TE NL OX OK SL IK EI NT EL LI GE NC EX
Privat text: KF FB BZ FM WA SP NV CF DU KD AG CE WP QD PN BS NE
Således konverteras meddelandet "IDIOTI OFTEN SER UT SOM INTELLIGENS" till "KFFBBZFMWASPNVCFDUKDAGCEWPQDPNBSNE".
Liksom de flesta formella kryptografiska chiffer kan Playfair-chifferet också lätt brytas om tillräckligt med text finns tillgänglig. Att få nyckeln är relativt enkelt om chiffertexten och klartexten är kända. När endast chiffertexten är känd kan frekvensanalys utföras , men inte för 26 möjliga tecken i det latinska alfabetet, utan för 25 ⋅ 24 = 600 möjliga bigram (en av bokstäverna och bigrammen med två identiska bokstäver är uteslutna). Kryptanalytiker analyserar överensstämmelsen mellan frekvensen av bigram i chiffertexten och den kända frekvensen av bigram på det språk som meddelandet är skrivet på [8] [9] .
Algoritmen för att bryta Playfair-chifferet beskrevs först i en pamflett av löjtnant Joseph O. Mowburn 1914 [3] [4] . Senare, 1939, gavs kryptoanalysen av ett chiffer i boken " Cryptanalysis - a study of ciphers and their solution " av H. F. Gaines [9] . Men mer detaljerad vägledning för att hitta nyckeln till Playfair-chifferet finns i kapitel 7, " Lösning till polygrafiska substitutionssystem " i US Army Field Manual 34-40-2 .
Playfair-chifferet liknar två-kvadrat- chifferet , även om Playfair-chiffersystemets relativa enkelhet gör text lättare att identifiera. Det är anmärkningsvärt att Playfairs chifferdigram och dess inversion (AB och BA) kommer att dechiffreras som ett annat digram och dess inversion (RE och ER). Det finns många ord på engelska som innehåller sådana omvända digram, som REceivER och DEpartED. Att identifiera tätt åtskilda chiffertextinversa bigram och matcha dem i en lista över kända ord i klartext är ett enkelt sätt att bygga klartexten och starta nyckelkonstruktionen [8] .
Det finns ett annat tillvägagångssätt för kryptoanalys av Playfair-chifferet som kallas Random-restart hill climbing . Den är baserad på en matris av slumpmässiga tecken. Med hjälp av de enklaste iterationerna är matrisen av slumpmässiga tecken så nära den ursprungliga matrisen som möjligt. Uppenbarligen är denna metod för komplicerad för människor, men datorer som använder denna algoritm kan bryta detta chiffer, även med en liten mängd text. Ett annat utmärkande drag hos Playfair-chifferet från två-kvadrat-chifferet är att det aldrig innehåller digram med upprepade tecken (t.ex. EE). Om det inte finns några bigram med upprepade tecken i chiffertexten och dess längd är tillräckligt stor, så kan vi anta att originaltexten är krypterad med Playfair-chifferet [3] .
Den tyska armén, flygvapnet och polisen använde det dubbla Playfair-chiffersystemet under andra världskriget som ett "medium grade"-chiffer. De lade till en andra ruta eftersom Playfair-chifferet bröts under första världskriget. Den andra symbolen för varje bigram togs från denna ruta, utan att använda ett nyckelord och placera symbolerna i en godtycklig ordning. Men detta chiffer bröts också på Bletchley Park eftersom tyskarna använde samma meddelandemall. De åtta meddelanden krypterade med det dubbla Playfair-chifferet använde siffrorna från ett till tolv, och detta gjorde det möjligt att bryta det ganska enkelt [1] [10] .
Senare försök gjordes att förbättra chifferet genom att använda en 7x4-matris och lägga till tecknen " * " och "#". Trots att analysen av chiffern har blivit mer komplicerad kan den fortfarande knäckas med samma metoder som originalet [11] .