Enigma-maskine

En stor fejl ved Enigma-koden var, at et bogstav aldrig kunne kodes som sig selv. Med andre ord ville et “M” aldrig blive indkodet som et “M”. Dette var en stor fejl i Enigma-koden, fordi det gav kodebrydere et stykke information, som de kunne bruge til at dekryptere meddelelser. Hvis kodebryderne kunne gætte et ord eller en sætning, der sandsynligvis ville optræde i meddelelsen, kunne de bruge denne information til at begynde at bryde koden. Da tyskerne altid sendte en vejrudsigt i begyndelsen af meddelelsen og normalt inkluderede sætningen “Heil Hitler” i slutningen af meddelelsen, var der sætninger, som dekrypteringsfolkene vidste, at de skulle kigge efter. Dekoderne kunne sammenligne en given sætning med bogstaverne i koden, og hvis et bogstav i sætningen svarede til et bogstav i koden, vidste de, at den pågældende del af koden ikke indeholdt sætningen. Afkoderne kunne derefter begynde at knække koden ved hjælp af en udelukkelsesmetode.

Find mulige kandidater til kodningen af ordet “RAIN” i den kodede streng nedenfor. (Symbolet % bruges til at angive ukendte bogstaver).

Kodet budskab E R W N I K O L K M M M M M
Phrase R A I N % % % % % % % % % % % % %

RAIN kan ikke kodes som ERWN, fordi N’et i RAIN og N’et i ERWN passer sammen. Da N ikke kan kodes som sig selv, er dette ikke kodningen.

Lad os flytte vores meddelelse en slot til højre, og se om resultatet er en gyldig kodning.

Kodet meddelelse E R W N I K O L K M M M M M
Phrase % R A I N % % % % % % % % % %

RAIN kan ikke kodes som RWNI, fordi R’et i RAIN stemmer overens med R’et i RWNI. Lad os skifte igen.

Kodet meddelelse E R W N I K O L K M M M M M
Phrase % % R A I N % % % % % % % % % %

RAIN kan ikke kodes som WNIK, fordi I’et i RAIN stemmer overens med I’et i WNIK.

Kodet budskab E R W N I K O L K M M M M M
Phrase % % % R A I N % % % % % %

RAIN kan kodes som NIKO, fordi de to sætninger ikke har nogen bogstaver, der passer sammen. Så NIKO er en mulig kodning af RAIN.

Hvis vi gentager denne proces, vil vi finde, at NIKO, IKOL, KOLK, OLKM, LKMM, KMMM og MMMM alle er mulige kodninger af RAIN, da der ikke er nogen bogstaver, der passer sammen mellem RAIN og kodningen. Det er i orden, at MMMMMM kunne kode RAIN, selv om det betyder, at M ville kode R, A, I og N, fordi man skal huske, at ved hvert tastetryk ændres bogstavtilknytningen i en Enigma-maskine.

Det er dog ikke garanteret, at RAIN overhovedet er kodet i denne streng, men det gav dekoderne et godt udgangspunkt for dekryptering af meddelelser.

Alan Turing og Gordon Welchman konstruerede en maskine kaldet Bombe-maskinen, som ved hjælp af elektriske kredsløb kunne løse en Enigma-kodet meddelelse på under 20 minutter. Bombe-maskinen skulle forsøge at bestemme indstillingerne af rotorerne og stikpladen i Enigma-maskinen, der blev brugt til at sende en given kodet meddelelse.

Den britiske standard Bombe-maskine var i det væsentlige 36 Enigma-maskiner, der var koblet sammen, og på denne måde kunne Bombe-maskinen simulere flere Enigma-maskiner på én gang. De fleste Enigma-maskiner havde tre rotorer, og for at repræsentere dette i Bombe havde hver af Enigma-simulatorerne i Bombe tre tromler, en for hver rotor.

Bombe-maskinens tromler

Bombens tromler var farvekodet for at svare til, hvilken rotor de simulerede. Mens en Enigma-maskine med 3 rotorer kun brugte tre rotorer ad gangen, er der flere at vælge imellem. Tromlerne var arrangeret således, at den øverste af de tre simulerede Enigma-forvrængerens venstre rotor, den midterste simulerede den midterste rotor, og den nederste simulerede den højre rotor. Tromlerne vendte sig for at afprøve en ny konfiguration. For hver fuld rotation af de øverste tromler blev de midterste tromler forøget med en position, og det samme gjaldt for de midterste og nederste tromler, hvilket gav i alt 26 × 26 × 26 × 26 = 17 576 positioner for Enigma-scrambleren med tre rotorer.

Så ville Bombe-maskinen for en given rotorkonfiguration (ved hver drejning af tromlerne) gætte på en stikpladeindstilling, for eksempel “A er forbundet med Z”. Derefter kørte den igennem og bestemte, hvad alle de andre bogstaver skal være indstillet til på stikpladen. Hvis der opstod modsigelser, f.eks. hvis den udledte, at “A var forbundet med W”, så må det være sådan, at A ikke er forbundet med Z på stikpladen, så opstår der en modsigelse. Da de andre bogstavtilknytninger, som maskinen lige har fundet ud af, blev bestemt ud fra en forkert antagelse (nemlig antagelsen om, at A er forbundet med Z), er alle disse kombinationer ugyldige, og Bombe-maskinen ved, at den ikke skal spilde tid på at kontrollere nogen af disse kombinationer senere. Så lad os sige, at maskinen gætter på, at A er forbundet med Z, og så udleder maskinen, at hvis A er forbundet med Z, så må B være forbundet med E. Hvis den senere finder ud af, at A ikke er forbundet med Z, ved den, at B ikke er forbundet med E. Når en sådan modsigelse opstår, vil Bombe-maskinen ikke gætte på, at A er forbundet med Z igen, og den ved, at den ikke skal gætte på, at B er forbundet med E, og så videre. Bombe-maskinen flytter rotorpositionerne og vælger et nyt gæt og gentager denne proces, indtil der findes et tilfredsstillende arrangement af indstillinger. Da elektriske kredsløb kan udføre beregninger meget hurtigt, kan Bombe-maskinen gennemgå alle rotorkombinationer på ca. 20 minutter.

På hver position af tromlerne vil konfigurationen blive testet for at se, om konfigurationen fører til en logisk modsigelse, hvilket udelukker den pågældende indstilling. Hvis testen ikke førte til en modsigelse, ville maskinen stoppe, og dekoderen ville notere den pågældende konfiguration som en kandidatløsning. Derefter genstartes maskinen, og flere konfigurationer testes. Disse tests vil indsnævre listen over mulige konfigurationer, og de mulige løsninger vil blive testet yderligere for at fjerne dem, der ikke ville fungere. Der var normalt mange mislykkede kandidatløsninger, før den rigtige blev fundet.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.