Crypto
introduktion liter
Caesar cipher er en af de tidligste kendte og enkleste cifre. Det er en type substitutionskryptering, hvor hvert bogstav i almindelig tekst ‘forskydes’ et bestemt antal steder ned i alfabetet. For eksempel, med et skift på 1, ville A blive erstattet af B, B ville blive C og så videre. Metoden er opkaldt efter Julius Caesar, der tilsyneladende brugte den til at kommunikere med sine generaler.
mere komplekse krypteringsordninger som f.eks Vigen Larre cipher anvender Caesar cipher som et element i krypteringsprocessen. Den almindeligt kendte ROT13 ‘kryptering’ er simpelthen en Caesar-kryptering med en forskydning på 13. Caesar cipher tilbyder i det væsentlige ingen kommunikationssikkerhed, og det vil blive vist, at det let kan brydes selv for hånd.
eksempel Karl
for at sende en krypteret meddelelse fra en person til en anden er det først nødvendigt, at begge parter har ‘nøglen’ til krypteringen, så afsenderen kan kryptere den, og modtageren kan dekryptere den. For caesar-krypteringen er nøglen antallet af tegn, der skifter chifferalfabetet.
Her er et hurtigt eksempel på kryptering og dekryptering trin involveret med Cæsar cipher. Teksten, vi vil kryptere, er ‘forsvare slottets østvæg’ med et skift (nøgle) på 1.
plaintext: defend the east wall of the castleciphertext: efgfoe uif fbtu xbmm pg uif dbtumf
det er let at se, hvordan hvert tegn i klarteksten forskydes op i alfabetet. Dekryptering er lige så let ved at bruge en forskydning på -1.
plain: abcdefghijklmnopqrstuvwxyzcipher: bcdefghijklmnopqrstuvwxyza
det er klart, at hvis en anden nøgle bruges, vil chifferalfabetet blive forskudt en anden mængde.
matematisk beskrivelse liter
hvor k er nøglen (skiftet) anvendt på hvert bogstav. Efter anvendelse af denne funktion er resultatet et tal, som derefter skal oversættes tilbage til et bogstav. Dekrypteringsfunktionen er:
JavaScript-eksempel på Cæsar-krypteringskoden
klartekst
Skift:
Krypteringstekst
andre implementeringer af Cæsar-krypteringskoden på forskellige programmeringssprog, se siden implementeringer.
for at kryptere dine egne meddelelser i python kan du bruge pycipher-modulet. For at installere det skal du bruge pip install pycipher. For at kryptere meddelelser med Cæsar-krypteringen (eller en anden chiffer, se her for dokumentation):
kryptanalyse liter
se kryptanalyse af Cæsar-krypteringen for en måde at automatisk bryde denne chiffer på.
kryptanalyse er kunsten at bryde koder og cifre. Caesar-krypteringen er sandsynligvis den nemmeste af alle cifre at bryde. Da skiftet skal være et tal mellem 1 og 25, (0 eller 26 ville resultere i en uændret almindelig tekst), kan vi simpelthen prøve hver mulighed og se, hvilken der resulterer i et stykke læsbar tekst. Hvis du tilfældigvis ved, hvad et stykke af chifferteksten er, eller du kan gætte et stykke, så giver dette dig mulighed for straks at finde nøglen.
Hvis dette ikke er muligt, er en mere systematisk tilgang at beregne frekvensfordelingen af bogstaverne i krypteringsteksten. Dette består i at tælle, hvor mange gange hvert bogstav vises. Naturlig engelsk tekst har en meget tydelig distribution, der kan bruges hjælp til at knække koder. Denne fordeling er som følger:
dette betyder, at bogstavet e er det mest almindelige og vises næsten 13% af tiden, mens å vises langt mindre end 1 procent af tiden. Anvendelse af Caesar-krypteringen ændrer ikke disse bogstavfrekvenser, det skifter dem blot lidt (for et skift på 1 bliver det hyppigste chiffertekstbogstav f). En kryptanalytiker skal bare finde det skift, der får krypteringstekstfrekvenserne til at matche tæt sammen med de naturlige engelske frekvenser, og dekrypter derefter teksten ved hjælp af dette skift. Denne metode kan bruges til let at bryde Caesar-cifre med hånden.
Hvis du stadig har problemer, kan du prøve sektionen kryptanalyse på siden substitution cipher. Alle strategier, der arbejder med substitution cipher, vil også arbejde med Caesar cipher (men metoder, der arbejder på Caesar cipher, virker ikke nødvendigvis på den generelle substitution cipher).
for en metode, der fungerer godt på computere, har vi brug for en måde at finde ud af, hvilken af de 25 mulige dekrypteringer der ligner mest engelsk tekst. Se kryptanalyse af Caesar-krypteringen for en gennemgang af, hvordan man bryder den ved hjælp af kvadratgramstatistik. Nøglen (eller skift), der resulterer i en dekryptering med den højeste sandsynlighed for at være engelsk tekst, er sandsynligvis den rigtige nøgle. Selvfølgelig, jo mere chiffertekst du har, jo mere sandsynligt er det at være sandt (dette er tilfældet for alle statistiske foranstaltninger, herunder frekvensmetoden ovenfor). Så den anvendte metode er at tage chifferteksten, prøv at dekryptere den med hver nøgle, og se derefter, hvilken dekryptering der ser bedst ud. Denne forenklede metode til kryptanalyse fungerer kun på meget enkle cifre, såsom Caesar cipher og rail fence cipher, selv lidt mere komplekse cifre kan have alt for mange nøgler til at kontrollere dem alle.
referencer Kristian
- har en god beskrivelse af krypterings – /dekrypteringsprocessen, historien og kryptanalysen af denne algoritme
- Simon Singhs ‘Kodebogen’ er en glimrende introduktion til cifre og koder og indeholder et afsnit om caesar-cifre.
- Singh, Simon (2000). Kodebogen: videnskaben om hemmeligholdelse fra Det gamle Egypten til kvantekryptografi. ISBN 0-385-49532-3.