Banburismus är en kryptoanalytisk metod utformad för att underlätta processen att dekryptera meddelanden från den nazistiska tyska flottans Enigma-chiffermaskin . Metoden uppfanns av Alan Turing , en förbättring av Jerzy Rozickis "cykliska metod" . [1] [2]
När Alan Turing gick med i stuga nr 8 1939, hade inget arbete ännu gjorts för att dechiffrera Navy Enigma-meddelanden. Vid den tiden trodde man att Enigma inte var hackbar. [3] Meddelanden krypterades med hjälp av bigram och trigram , samt med ett speciellt alfabet ( tyska Grundstellung ). [4] [5] Trigrammen fanns i en speciell bok som heter Kennbuch (K-bok). [6] Bigram finns i bigramtabellerna. [7] Dechiffrering var omöjligt utan kunskap om dessa tabeller. [8] Men efter Narvik Pinch-operationen blev register tillgängliga för kex som innehöll en fullständig beskrivning av hur indikatorsystemet fungerar, såväl som Grundstellung. [9] [10]
1941 ändrades Enigma hjulkombinationer varje dag. Kryptörer valde ut tre hjul av åtta tillgängliga, som användes för kryptering. Totalt fanns det alltså 336 val för varje dag. Huvudsyftet med den beskrivna dekrypteringsmetoden var att ge information om positionen för det högra Enigma- hjulet , vilket avsevärt minskade antalet uppsättningar av chiffermaskinhjulsplatser, vars positioner måste sorteras ut i processen med kryptoanalys. [2] [11]
Följande villkor var nödvändiga för implementeringen av metoden:
Idén med metoden är baserad på det faktum att om två strängar som består av bokstäver i det latinska alfabetet, valda slumpmässigt, placeras under varandra, så kommer sannolikheten att upprepa varje tecken vara lika med .
Rad 1: ThatIsTheFirstStringWithEnglishText Rad 2: ItIsThe SecondStringPlacedBelowFirst Tändstickor * *Om vi jämför två segment av den tyska marinens chiffertext, så ökar sannolikheten för en matchning till . Men detta kommer bara att hända om dessa meddelanden krypterades med samma startposition ( Germ. Grundstellung ) som Enigma-rotorerna. [13] Sådana meddelanden sägs matcha "i djupet" , det vill säga om de erhölls genom kryptering med samma initiala Enigma-inställningar . [14] Denna idé hjälpte till att uppnå huvudmålet med metoden - att identifiera positionerna för det högra hjulet på Enigma, därför att minska tiden som spenderades på uppräkning med Bombe-maskinen . [2] Om meddelandena har gemensamma delar av text som är 4, 6, 8 eller fler bokstäver långa, kommer deras krypterade motsvarigheter att ha matchningar av samma längd. En sådan kombination av omständigheter kallades "suitable coincidence" ( eng. fit ). [femton]
Grundstellung-alfabet såg ut så här:
ABCDEFGHIJKLMNOPQRSTU VWXYZ 1. TVSMUIWNFLPJDHYKZSRAE BGCOQ 2. EYKWAQXRTUCNSLVZFHMIJ ODGBP 3. JGDCFEBPZAVQWONHLTURS KMYXIA priori var sannolikheten för två meddelanden med helt olika trigram och sammanfallande "i djupet" , men om trigrammen var respektive och , ökade sannolikheten till . För trigram ökade också sannolikheten till . För vårt alfabet
PDP=KWH PDB=KWGDärför stod trigrammet en plats tidigare . Detta betecknades som , det vill säga i alfabetet för det högra hjulet på Enigma, bokstaven var en position tidigare .
Det första steget i attacken var att hitta "tändstickor" för 4 bokstäver eller fler. Meddelanden överfördes för hand till Banburi-arken, långa pappersremsor tryckta med alfabetet, vilket gjorde det möjligt att hitta upprepningar i meddelandena på varje position, genom att flytta arken i förhållande till varandra. Poängsystemet utvärderade varje "match" i decibaner för varje position. Exempel på matchtabell
Sannolikhet BBC + .2 = BBE hexagram några ENF + 3,7 = EPQ pentagram 17:1 RWC + .13 = RWL-tetragram 4:1 PNX + .5 = PIC något tetragram IUS + 3,3 = IUY hexagram 20:1 ZDR + 5,5 = ZIX hexagram 15:1 SWI + 4,3 = SUD-tetragram 4:1 PPD + .16 = PPU-tetragram 1:2Bokstäverna justerades sedan
C-E F-Q C-L X-C S-Y R-XMed tanke på avstånden skulle kedjan kunna skrivas som
R....X....CE...........LOch så vidare för alla kända trigram. Nu visste smällarna vilka relativa positioner dessa bokstäver skulle ha i alfabetet på det högra hjulet. Vidare var linjen från den resulterande sekvensen belägen under alfabetet. Det var nödvändigt att räkna ut alla 26 positionerna (R är under A, under B, under C, och så vidare).
ABCDEFGHIJKLMNOPQRSTU VWXYZ 1.R. K. MX. . . . CXE. . . . A. . . . . L. . 2. FPositioner som antydde motsägelser ströks över. I denna situation är L under X, precis som F, vilket ger två värden för en bokstav. Ovanstående är ett exempel, i verkligheten fanns det dussintals rader. Nästa steg var att beräkna betygen för alfabetet, baserat på att det var rätt valt. Till exempel, om det finns två meddelanden BDL och BDS, bör poängen för BDL + 4 = BDS vara bättre än slumpmässigt om alfabetet är korrekt. Genom att utföra en sådan process samtidigt med flera rader var det möjligt att avsevärt minska antalet alternativ för alfabetet på det högra hjulet. [16]