Frekvensanalyse

Fra SPJDRpedia
(Omdirigeret fra Hyppighedsanalyse)

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:

Bogstavhyppighed
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:

Frekvensanalyse af Caesarkode.png

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:

Frekvensanalyse af kodeordskode.png

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 PR, 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:

Frekvensanalyse af kodeordskode2.png

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:

  • VARDIFORDI.
  • DINNEDISSE.
  • ECCERELLER.

Den delvist løste kode, ser nu sådan ud:

Frekvensanalyse af kodeordskode3.png

Det kan nu gættes at OA, DT (fra f.eks. DILTIL), og FV.

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.

Ad puzzle lock.svg 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.