Frekvensanalyse
Frekvensanalyse er en effektiv metode til at bryde ombytningskoder som kodeordskoder, Cæsarkoder eller Talkoder. Metoden udnytter, at vi på dansk ikke bruger alle bogstaver lige meget. Det mest brugte bogstav er "E", der udgør omkring 16% af alle danske tekster.
Ved at optælle de forskellige tegn i en kodebesked kan du gætte hvilke tegn der koder for først "E", og siden, resten af bogstaverne.
Bogstavhyppighed
Da fordelingen af bogstaver er lidt forskellige fra tekst til tekst, er det lettere at opdele bogstaverne i grupper efter deres hyppighed. På dansk kan bogstaverne opdeles i syv grupper:
E R T N I A D S O L G K V M F P U B H Æ Y Å Ø J C W X Z Q
Bogstavet E er i en klasse for sig og fylder hele 16% af teksten. Både R, T og N er de næst-hyppigste bogstaver, der hver udgør ca. 7,5%. E, R, T og N er altså de fire bogstaver, som gør det lettest at anvende frekvensanalyse.
Man kan tilsvarende se på bogstaver, der oftest står ved siden af hinanden. To bogstaver, der står ved siden af hinanden, kalder vi for et digram. På dansk er de mest almindelige digrammer:
ER DE EN ET GE RE TE TI
"Trigrammer" er tre bogstaver, der optræder ved siden af hinanden. På dansk er de mest almindelige trigrammer:
DET DEN ERE DER
Som et konkret eksempel har vi optalt bogstaverne i bogen "En verdensomsejling under havet" af Jules Verne. Der får man helt konkret denne her fordeling:
Bogstav | Hyppighed | |
---|---|---|
a | 6.01% | |
b | 1.41% | |
c | 0.29% | |
d | 7.24% | |
e | 16.70% | |
f | 2.27% | |
g | 4.56% | |
h | 1.88% | |
i | 5.55% | |
j | 1.11% | |
k | 3.07% | |
l | 4.85% | |
m | 3.40% | |
n | 7.55% | |
o | 4.14% | |
p | 1.33% | |
q | 0.01% | |
r | 7.61% | |
s | 5.67% | |
t | 7.03% | |
u | 1.85% | |
v | 2.88% | |
w | 0.02% | |
x | 0.02% | |
y | 0.72% | |
z | 0.02% | |
æ | 0.93% | |
ø | 0.84% | |
å | 1.03% |
Bogstavoptæller
Du kan selv forsøge dig som kodebryder, ved at bruge denne lille bogstav-optællings-maskine, der lynhurtigt tæller bogstaver i din kodede besked og viser hvilket bogstav, der bruges oftest.
Eksempler
Lad os gennemgå to eksempler, der viser hvordan du kan brugerfrekvensanalyse til at bryde forskellige ombytningskoder.
Frekvensanalyse af en Cæsarkode
Lad os først se hvordan, du kan brugerfrekvensanalyse til at bryde en Cæsarkode. Vi har opsnappet den hemmelige besked:
bøfø axffcøh øl ijæøfn c nlø æøfø, bpilxå yøfaxø yøyil æøh øhø, xkocnxhc æøh xhæøh, æø, æøl jw æøløm øaøn mjlia exfæøm eøfnølhø, c piløm mjlia axffølø, æøh nløædø. xffø æcmmø xæmecfføl mca ålx bchxhæøh c mjlia, meceeø ia fipø. åfiæøh axlihhø xæmecfføl axffølhø ålx xkocnxhc; gxlhø ia møchø xæmecfføl æøg ålx yøfaxø.
Tæller vi bogstav=hyppighederne med optælle-maskinen, får vi denne fordeling:
Det er tydeligt at Ø er det mest almindelige tegn, og at fordelingen af bogstaver ligner den almindelige danske fordeling. Hvis der er tale om en almindelig Cæsarkode, hvor E krypteres med Ø, så må A blive krypteret med X. Det er altså en A-X kode. Oversætter vi hele teksten udfra det gæt, får vi klarteksten:
Hele Gallien er opdelt i tre dele, hvoraf Belgae bebor den ene, Aquitani den anden, de, der på deres eget sprog kaldes kelterne, i vores sprog gallere, den tredje. Alle disse adskiller sig fra hinanden i sprog, skikke og love. Floden Garonne adskiller gallerne fra Aquitani; Marne og Seine adskiller dem fra Belgae.
Teksten er de første to sætninger fra indledningen til Cæsars første galliske krigsberetninger fra 58 f.Kr.
Frekvensanalyse af en kodeordskode
Vi har nu opsnappet yderligere en besked, men denne gang er den ikke kodet med en almindelig Cæsarkode. Vi skal altså til at gætte alle oversættelserne.
OV OCCU TZNNU, UP QUCXOU TU ÆATZXNDU, VAPTZ TU UP CMSXND VPO LZFZCZNODZASUS AX VAPVZSUCNUS Z [FAPUN] RPAFZSN, AX YOSTCUSTU DHP NØMCTUSD DZC TUÆ, AX ZÆRAPDUPUP TU DZSX, NAÆ YOP DUSTUSN DZC OD VUÆZSZNUPU NZSTUD; AX TU CUFUP DMDDUND RK DHNÅUPSU, TUP QAP ET AFUP PYZSUS, ÆUT YFUÆ TU YUCU DZTUS UP Z ÅPZX; YFAPVAP YUCFUDZZ AXNK AFUPXKP PUNDUS OV XOCCUPSU Z DORRUPYUT, TO TU NCKN ÆUT DHNÅUPSU Z SMNDUS TOXCZXU ÅOÆRU, SKP TU USDUS NÆZTUP TUÆ ET VPO TUPUN UXSU AÆPKTUP, UCCUP NUCF VJPUP ÅPZX ÆAT TUPUN XPMSNUP.
Tæller vi bogstaverne, får vi denne fordeling:
Fordelingen ligner den almindelige danske, og vi gætter at U svarer til E. For at bryde koden, må vi også gætte de andre bogstaver.
Kig på de korte ord, hvor U indgår:
UP, TU, TUÆ, TUP, ÆUT
Vi ved at T og P hører til de hyppige bogstaver, og vi gætter på at P → R, mens T bliver til D.
Vi indsætter nu kodebeskeden i vores kodebrydnings-maskine sammen med vores gæt, og når til denne halve oversættelse:
Bemærk ordet AX
, som optræder ofte. Det kan ikke kode for ER (da vi allerede har gættet E). Det kan derimod ligne ordet OG. Derudover tyder de halvfærdige ord: DEÆ og ÆED, på at Æ
→M.
Derudover gætter vi ordene:
- VARDI → FORDI.
- DINNE → DISSE.
- ECCER → ELLER.
Den delvist løste kode, ser nu sådan ud:
Det kan nu gættes at O
→A, D
→T (fra f.eks. DIL→TIL), og F
→V.
Vi bemærker, at vores oversættelser optræder i par med både A→O og O→A, ligesom V→F og F→V. Det tyder på at der er tale om en kodeordskode. Udfylder vi resten af parrene, er det ingen sag at gætte de sidste tegn, så vi ender med klarteksten:
Af alle disse, er Belgae de modigste, fordi de er længst fra civilisationen og forfinelsen i [vores] provins, og handlende tyr sjældent til dem, og importerer de ting, som har tendens til at feminisere sindet; og de lever tættest på tyskerne, der bor ud over Rhinen, med hvem de hele tiden er i krig; hvorfor Helvetii også overgår resten af gallerne i tapperhed, da de slås med tyskerne i næsten daglige kampe, når de enten smider dem ud fra deres egne områder, eller selv fører krig mod deres grænser.
Det er (overraskende nok) den næste sætning (!) fra indledningen til Cæsars galliske krigsberetninger. Det er præcis denne tekst, som tegneserien Asterix i Belgien er skrevet over.
Tilbage er kun at finde kodeordet i kodeordskoden. Kan du klare det?
Forholdsregler mod frekvensanalyse
Vil du gerne gøre din kode sikker mod frekvensanalyse, kan du ændre fordelingen af bogstaver. Du kan blandt andet skrive dine ord mæd ztåvefejl zå dæ hyppige bogszaver ikkæ optrædep zå ofte. Alternativt kan du "salte" sin kode med nogle ekstra tegn. På dansk kan du for eksempel indsætte bogstaverne "x","z","w" og "q" tilfældige steder i teksten, og på den måde sløre den oprindelige fordeling af bogstaver.
Koder og Hemmelig skrift | |
---|---|
Begreber | Chiffer, Ombytningskode,Transposition, Steganografi, Klartekst, Nøgle. |
Mono-alfabetiske koder | Morsekode, Frimurerkode, A-K kode, Tigerkode, Kodeordskode, Alternativt tegnsæt, Bacons kode, Mobilkode. |
Poly-alfabetiske koder | Vigenerekode |
Polygrafe koder | Playfairchiffer, To-kvadrat-chiffer, Fire-kvadrat-chiffer. |
Inspiration | Uløste koder, To-lås kryptering, Engangsblok, Envejskoder, Sprogkode. |
Kodebrydning | Kodebrydning, Frekvensanalyse. |