Jeg skal ikke påstå for sikkert hva metoden heter, for det er mange navn som florerer der ute, og det er mange ulike versjoner og ekstra tillegg på noen av de. Jeg vil gi noen eksempler her.
Noen vil kanskje kjenne igjen det som kalles Cæsar Cipher her men den fungerer med å flytte bokstavene et fast antall bokstaver igjennom hele meldingen. Et annet navn er Vernam Cipher, men her er det flere ulike måter å regne på rundt på nettet - men fellesnevneren går igjen så dette blir ikke et feil navn å bruke. Et annet navn som går igjen er One Time Pad (OTP), men det forutsetter da at man kun bruker nøkkelen kun en gang
Alternativ 1
Alle som skal kunne kryptere og dekryptere meldingene må være enig om en tallverdi på hver enkelt bokstav i alfabetet fra 0 til 28 (29 tegn i det norske alfabetet). Det enkleste her er å sette A = 0, B = 1 og så videre. I tillegg må alle ha en nøkkel/et kodeord som brukes for å kryptere og dekryptere teksten.
For å kryptere meldingen så tar man å oversetter hver bokstav i meldingen til sin rette tallverdi. Deretter oversetter man hver bokstav i kodeordet til sin rette tallverdi. Så legger man sammen verdien for første bokstav i meldingen sammen med første bokstav i kodeordet. Blir verdien mer enn 27 så begynner man på 0 igjen og går oppover. Til slutt så oversetter man tallverdien man har fått for hvert enkelt tegn tilbake til en ny bokstav. Meldingen er nå kryptert. Det enkleste her er å droppe mellomrom og alt av tegn osv utelates.
For å dekryptere meldingen gjør man det motsatte.
Eksempel melding: Kjøp melk
Kodeord: Melkevei
Melding i tallverdier: 10 9 27 15 12 4 11 10
Kodeord i tallverdier: 12 4 11 10 4 21 4 8
Kryptert melding i tallverdier: 22 13 38 25 16 25 15 18
Her ser vi at den tredje bokstaven får en verdi på 38, som er mer enn antall bokstaver vi har tilgjengelig, og en må derfor begynne på nytt og får da verdi 9 (siden vi begynner på 0).
Korrigert kryptert melding i tallverdier: 22 13 9 25 16 25 15 18
Ferdig kryptert melding: WNJZQZPS
I utgangspunktet umulig for noen andre å dekryptere. Legg merke til at selv om vi hadde to like bokstaver i opprinnelig melding (K) så får vi allikevel to ulike bokstaver i kryptert melding, W og S. Meldingen er altså ikke sårbar for en mye brukt metode for å knekke koder som heter frekvensanalyse. Da ser man i den krypterte meldingen etter gjentakende bokstaver og prøver å bruke de som direkte oversettelser. Det vil ikke gå her så lenge kodeordet er minst like langt som meldingen. Er kodeordet kortere så vil man måtte starte på første bokstav igjen i kodeordet og da kan man risikere at frekvensanalyse kan brukes.
Fordeler:
- Relativt lett å kryptere og dekryptere ved hjelp av papir og blyant
- Man trenger kun å vite kodeordet for å dekryptere meldingen
Ulemper:
- Kodeordet må være minst like langt som meldingen for å unngå repetisjoner
- Man må ha kodeordet i forkant for å kunne kryptere og dekryptere meldinger
- Tidkrevende på lengre meldinger og spesielt om det er mange meldinger frem og tilbake
- For å være umulig å knekke må et kodeord kun brukes en gang
- Og kodeordet må være reelt tilfeldig ellers kan bokstavene forutsies med tilstrekkelig tid/kunnskap
Alternativ 2
Man kan bruke samme metode som over men i stede for å ha et kodeord så har man ei lang liste med tall/kodetabell.
En kodetabell kan da se slik ut: 5 22 9 18 5 3 27 26 1 13 (og lengre)
Den som skal kryptere meldingen slipper da å måtte finne tallverdiene på hver enkelt bokstav i kodeordet, og trenger kun å summere verdien til hvert tegn i meldingen med et tall fra kodetabellen. Her kan man i tillegg og spare litt tid på å ikke oversette tallene en sitter med tilbake til bokstaver før en sender meldingen, men i stede bare sende tallverdiene man ender opp med. Mottaker tar da bare tallverdiene som mottas, fjerner verdien fra kodetabellen, og så oversetter til tegn.
Andre alternativer
Det finnes mange kreative måter å gjøre denne koden enda vanskeligere å knekke. For eks kan man være enig om andre tallverdier for hver bokstav (A = 7, B = 22, C = 0, D = 9 osv). Dette fungerer like godt så lenge man er enige om samme alfabet med samme tallverdi.
Et annet alternativ er å tenke binære verdier og bruke en funksjon som heter XOR. Dette blir litt krevende å gjøre manuelt så nevner det bare som et eksempel som en evnt kan søke opp på nettet selv
Tips og triks
Som en ser er det en del utfordringer knyttet til dette. Det er tidkrevende å kryptere og dekryptere meldinger, så en bør vurdere behovet for å gjøre det opp mot risikoen for at andre får med seg innholdet. I det daglige i dag er kanskje ikke behovet så ekstremt stort, men skulle samfunnet vi i dag kjenner til endre seg drastisk (eller kollapse) så kan manglende tillit til andre, inkludert styrende makter, gjøre det nødvendig å kryptere en del informasjon.
Utfordringen en og lett kan se er dette med å ha tilgang til samme kodetabell/kodeord FØR en trenger å sende krypterte meldinger - og holde disse hemmelig. Det er ikke uvanlig for soldater å ha slike kodeark i tjeneste og det er da strenge krav om at disse skal oppbevares på kropp og destrueres når en er ferdig med de (eller risikerer å bli tatt av fiendtlige styrker).
Dersom man har ei gruppe eller familie man samarbeider med og vil kunne sende sporadiske meldinger til så kan en for eks i forkant lage flere kodetabeller som distribueres på en trygg måte i forkant av å sende krypterte meldinger. Her kan man enten følge en rekkefølge hvor både avsender og mottaker destruerer kodetabellen/kodeordet som er brukt etter kryptering og dekryptering, eller man kan bli enig om at de to-tre første tallgruppene/bokstavene skal brukes som identifikator til hvilket kodeord eller tabell som skal brukes.
Håper dette var nyttig info