Homofoniskt substitutionschiffer är ett substitutionschiffer där varje tecken i klartexten ersätts med ett av flera tecken i alfabetchifferet, och antalet ersättningstecken för en bokstav är proportionell mot frekvensen av denna bokstav. Detta gör att du kan dölja den verkliga förekomsten av en given bokstav i chiffertexten [1] .
Kryptering med metoden homofonisk substitution har varit känd sedan 1400-talet [2] .
Simeone de Crema 1401 använde först homofontabeller för den enhetliga frekvensen av vokaler med hjälp av substitution med flera värden [3] .
Leon Battista Alberti beskrev i sin Treatise on Ciphers , publicerad 1466, ett substitutionschiffer där flera element tilldelas en bokstav [3] .
Traditionella monoalfabetiska substitutionschiffer var fortfarande relevanta på 1600-talet för triviala uppgifter som att kryptera personlig korrespondens för att dölja information från tjänare eller skydda sin dagbok från en fru eller man. Monoalfabetisk substitution ger ett enkelt och snabbt skydd av information från personer okunniga om kryptoanalys . Men för mer allvarliga syften var sådan kryptering inte längre säker, så det blev nödvändigt att leta efter ett chiffer som skulle vara svårare att bryta än ett monoalfabetiskt substitutionschiffer , men som skulle vara lättare att använda än ett polyalfabetiskt substitutionschiffer . Flera varianter av sådana chiffer presenterades, den mest effektiva lösningen på detta problem var ett homofonisk substitutionschiffer, eller homofonisk substitution [1] .
Låt vara ett tecken i alfabetet som används i klartext. För varje , komponerar vi uppsättningen av symboler , så att för olika symboler och uppsättningarna och inte skär varandra. Vanligtvis är elementen i en mängd siffror. I homofonisk kryptering tas antalet ersättningar för varje tecken i proportion till sannolikheten för att tecknet ska förekomma i klartexten. I kryptering väljs en ersättning för ett klartexttecken antingen slumpmässigt (slumptalsgenerator) eller på ett specifikt sätt (t.ex. i ordning). För att memorera bokstäverna som oftast finns i texter använder de kombinationer av bokstäverna "senovaliter" och "tetrishonda" för ryska respektive engelska. Dessa kombinationer liknar ord och är därför lätta att komma ihåg [4] .
Sannolikheten för utseendet av bokstäver i det ryska alfabetet | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
(*) (Tabell visar resultaten av en frekvensanalys av litterära och vetenskapliga texter med en total volym på mer än 1 miljon tecken. Under samma förhållanden är sannolikheten för ett "gap" 0,146.)
Eftersom sannolikheten för att stöta på den mest sällsynta bokstaven är ungefär en tusendel, kan kryptering med den homofoniska klartextersättningsmetoden utföras med en chifferersättningstabell, där varje chifferersättning består av 3 siffror och deras totala antal är 1000. I detta fall, för det mest sällsynta elementet, exakt ett tecken [4] .
Ett exempel på en sådan tabell visas nedan.
Nej. | MEN | B | PÅ | … | E | … | O | P | R | … | E | YU | jag |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ett | 012 | 128 | 325 | … | 037 | … | 064 | 058 | 265 | … | 501 | 064 | 106 |
2 | 659 | 556 | 026 | … | 700 | … | 149 | 073 | 333 | … | 248 | 749 | 098 |
… | … | … | … | … | … | … | … | … | … | … | … | … | |
17 | 111 | 061 | … | 144 | … | 903 | 656 | 476 | … | 453 | |||
… | … | … | … | … | … | … | … | … | … | ||||
38 | 366 | 804 | … | … | … | 123 | 865 | … | |||||
… | … | … | … | … | … | … | … | ||||||
69 | 095 | … | 010 | ||||||||||
… | … | … | |||||||||||
71 | 541 | 268 | |||||||||||
… | … | ||||||||||||
94 | 479 |
Vissa fält i tabellen är tomma, eftersom antalet ersättningar för varje tecken i källalfabetet är olika. Till exempel kan detta fragment användas för att kryptera ordet "VERA". Varje bokstav i det ursprungliga meddelandet, i det här fallet ett ord, ska ersättas med en av chifferersättningarna i kolumnen för den bokstaven. Om bokstäverna ersätts med sådana chifferersättningar: "B" - , "E" - , "P" - , "A" - , så har det krypterade ordet formen av en numerisk sekvens " " [4] .
Homofonisk substitutionskryptering är det enklaste försvaret mot frekvensanalys av kryptoattacker, eftersom en av dess ersättningar väljs slumpmässigt när en bokstav i källtexten krypteras. Med denna krypteringsmetod visas chiffertextelement med lika stor sannolikhet, så den vanliga beräkningen av frekvensen av bokstäver är värdelös för en kryptoanalytiker . Frekvenskrypteringsanalys baserad på att räkna par, trillingar av bokstäver eller ord kommer dock att bli mer framgångsrika. Till exempel är artikeln den vanligaste i engelsk klartext. Dessutom, efter bokstaven q, finns det bara en bokstav - u. Sålunda, när du märker några kombinationer av tecken, kan du dechiffrera en del av texten och sedan, enligt den mottagna informationen, återställa resten [5] [4] .
För närvarande dekrypterar moderna datorer texter krypterade med homofonisk substitution på några sekunder [6] .
Det speciella med denna metod är att chifferersättningar inte upprepas. Detta betyder att om bokstaven "Ф" har 3 chifferersättningar, till exempel , och , då chifferersättningarna , och betecknar endast bokstaven "Ф" [7] .
Ett homofoniskt chiffer kan se ut som ett polyalfabetiskt ( polyalfabetiskt ) chiffer, eftersom varje bokstav i alfabetet kan krypteras på många sätt, men i själva verket är ett homofoniskt substitutionschiffer en typ av monoalfabetisk ( monalfabetisk ) chiffer. Den främsta anledningen till att ett homofoniskt chiffer är monoalfabetiskt är att chifferalfabetet inte förändras under hela krypteringsprocessen [7] .
Det homofoniska substitutionschifferet kännetecknas av två parametrar - längden på chiffertexten och komplexiteten , där är antalet olika tecken i chifferalfabetet som används i denna chiffertext. Uppenbarligen är komplexiteten begränsad . När komplexiteten hos ett chiffer är tillräckligt nära 0, är chiffret ett enkelt substitutionschiffer. Vid ett visst värde blir fördelningen av chifferalfabettecken enhetlig (ca 0,3 för en chiffertext på 200 tecken), men om du fortsätter att öka komplexiteten kan du nå det gränsvärde vid vilket det inte längre är möjligt att entydigt dekryptera texten. Homofoniska substitutioner av högre ordning har samma chiffertext för olika klartexter, därför, i de fall där chiffertextens längd är mindre än unikhetsavståndet , är det omöjligt att förstå vilken version av klartexten som kommer att vara korrekt [8] .
En andra ordningens homofonisk substitution är en homofonisk substitution så att chiffertexten kan dekrypteras på två sätt. Till exempel kan " " med hjälp av en nyckel (nyckel 1) dekrypteras som "MAMA SOAPED THE RAM", och med hjälp av den andra nyckeln (nyckel 2) som "AMUR WASHED URAL". Båda klartexterna har inte så stor betydelse, men de illustrerar väl att helt olika budskap kan döljas bakom samma chiffertext [9] .
|
|
För att förstå hur ett sådant chiffer kan erhållas, låt oss skriva våra lika långa klartexter under varandra.
M | MEN | M | MEN | M | S | L | MEN | R | MEN | M | På |
MEN | M | På | R | På | M | S | L | På | R | MEN | L |
Observera nu att om vi läser den resulterande posten inte i rader, utan i kolumner, kommer vi att få 9 olika digram (bokstäverpar): "MA", "AM", "MU", "AP", "YM", " LY", "AL", "RU", "UL". Alla digram utom "MA", "MU" och "AR" upprepas en gång. Fyll sedan matrisen slumpmässigt (6 är antalet bokstäver i vanliga textalfabet; om hela alfabetet används i texten kommer vi att ha en matris eller för det ryska respektive engelska alfabetet) med siffror, till exempel, från 1 till 36 [10] .
MEN | L | M | R | På | S | |
MEN | 21 | tio | 9 | 32 | 26 | 34 |
L | 16 | 6 | 7 | fjorton | trettio | 27 |
M | 13 | arton | 23 | 28 | 2 | 5 |
R | fyra | femton | 36 | 22 | åtta | 35 |
På | 25 | 3 | 17 | 29 | tjugo | 33 |
S | ett | 31 | 19 | 24 | 12 | elva |
Varje rad och varje kolumn mappas till ett av de alfabetiska tecknen i den första respektive andra klartexten. Nu motsvarar varje digram ett visst nummer (vid skärningspunkten mellan motsvarande rader och kolumner), därför kan vi kryptera texterna genom att ersätta digramet med motsvarande nummer. En matris med siffror som motsvarar digram spelar rollen som nyckel i detta fall. För att hålla hela matrisen hemlig är den uppdelad i två matriser: en erhålls genom att sortera elementen i raderna, den andra genom att sortera kolumnerna och transponera . Vid utgången kommer vi att ha två matriser, i var och en av vilka elementen i raderna är sorterade i stigande (fallande), och en matris kan användas för att bara få en klartext. Till exempel tas texter med samma alfabet, eftersom det antas att i det allmänna fallet kommer hela alfabetet att användas för att skapa ett chiffer och att chiffret ska täcka alla möjliga digram [11] .
|
|
För att förbättra metoden kan den minsta redundansen för chifferalfabetet uppnås. Algoritm
|
|
|
Om du läser bokstäverna i den ordning som anges av siffrorna som motsvarar varje bokstav får du klartexten. På grund av detta blir användningen av ett sådant chiffer omöjligt, eftersom det räcker för en angripare att ha en nyckel för att få klartexten, utan att ens ha en privat text. Detta gör det meningslöst att minska textredundans. Å andra sidan har den tidigare använda matrisformen av andra ordningens homofoniska substitution ganska god kryptografisk styrka om hela alfabetet används. Två texter kommer att ge ( ) möjliga digram som inte upprepas mycket om inte texten är för stor. Som ett resultat kommer redundansen för krypterade meddelanden att vara låg, medan meddelandet kommer att använda ett stort antal olika tecken, vilket är allvarliga hinder för kryptoanalys [12] .
Kryptogrammen för den berömda Zodiac -seriemördaren är krypterade med ett homofoniskt substitutionschiffer. Ett av de två kryptogrammen har ännu inte dechiffrerats [13] .
Balkryptogram anses vara krypterade med ett första ordningens homofoniskt substitutionschiffer, och sannolikheten för att dechiffrera det andra kryptogrammet (det enda av de tre som kunde dechiffreras) på ett sådant sätt att man får en annan meningsfull text är den minsta [ 14] [15] .
Den genetiska koden är en homofonisk substitution, där aminosyror spelar rollen som klartextsymboler, och kodon är trippel av nukleotider - chiffertextsymboler [16] .