Kryptografi

Kryptografi er vitenskapen om språklige og matematiske teknikker for å sikre informasjon mot innsyn eller modifikasjon, som oftest i forbindelse med kommunikasjon. Ordet kommer fra gresk: kryptos («skjult») og graphein («skrive»). Det greske verbet kryptein betyr å skjule.
Dechiffrere (fra fransk dechiffrere) betyr opprinnelig å lese eller tyde chifferskrift (det vil si kryptert tekst), men brukes i våre dager mer i betydningen å forklare noe som er utydelig eller dunkelt.
Den historisk mest interessante delen av kryptografi er kryptering, som består i å prøve å gjøre en melding uleselig for andre enn de som er ment å motta den. Moderne kryptografi omfatter også teknikker for å kunne verifisere at en melding ikke har blitt endret siden den ble sendt, eller at den har blitt sendt av en autorisert sender; dette brukes blant annet i systemer som elektronisk signatur og digitale penger.

Ikke databaserte systemer

Den tidligste kjente form for kryptering var egyptiske skribenter som ca. 1900 f.kr. byttet ut hieroglyfene med andre. En annen tidlig krypteringsmetode var Cæsar-metoden som ble brukt ca. 50 år f.kr. Den gikk ut på å forflytte alle bokstavene i alfabetet et visst antall plasser. Det vil si om nøkkelen er 3, så vil bokstaven «a» bli erstattet med «d», «b» med «e», «c» med «f», osv. Ordet «viktig» blir da kryptert til «ylnwlj». Cæsar brukte denne metoden når han sendte meldinger til sine generaler.
Metoden er ikke særlig sikker og antall nøkkelkombinasjonen er bare 29 (i det norske alfabetet). Antall nøkkelkombinasjoner er en viktig egenskap ved en krypteringsmetode.
Antallet må være så høyt at det ikke er praktisk mulig å løse krypteringen ved hjelp av prøv-og-feil metoden (brute force). Likevel for en som ikke hadde noen form for kjennskap til kryptoanalyse var metoden tilstrekkelig for å beskytte meldingene.

Andre verdenskrig

Som ved andre teknologier, fikk andre verdenskrig stor betydning for utviklingen av kryptografi. På denne tiden begynte man å gå over til maskinell kryptering – å kryptere for hånd var tidkrevende og tildels en usikker fremgangsmåte. Flere typer elektromekaniske innretninger, slik som den berømte Enigma, så dagens lys.
Tyskland, som okkuperte store områder over store avstander, hadde et ekstra stort behov for effektiv kryptering. I tillegg til Enigma utviklet de også Lorenz chiffer-systemet, et krypteringssystem for fjernskriver. Lorenz brukte hjul slik som Enigma, for så å bruke XOR (eksklusiv eller) til å kryptere meldingene i ECB modus (se under databaserte systemer). Man greide også å utvikle ekte digitale systemer, for eksempel SIGSALY, et amerikansk krypteringssystem beregnet på å kryptere tale. SIGSALY ble brukt av toppledere i de allierte landene, spesielt mellom USA og England.
Kryptoanalysen gjennomgikk også en revolusjon, og det var nettopp dette som førte til at den første programmerbare digitale datamaskinen, Colossus, ble tatt i bruk (1944). Den ble med stort hell brukt til å knekke de tyske lorenz-meldingene. Ironisk nok greide svensken Arne Beurling å knekke de tyske meldingene mellom Norge og Tyskland med papir og penn, på bare to uker.

Symmetrisk kryptering

Ved symmetrisk kryptering bruker man samme nøkkel både ved kryptering og dekryptering av data. Krypteringsmetoden er som regel meget sterk. Problemet er distribusjonen av nøkler. Det er en risiko for at en nøkkel kan komme på avveie, eller at man ikke er i stand til å utveksle nøkler.
Symmetrisk kryptering algoritmer kan bli inndelt i Blokk Chiffer eller Strøm Chiffer. I Strøm Chiffer så blir bytene i meldingen kryptert en av gangen, mens i Blokk Chiffer så blir en blokk med bytes tatt og kryptert som en enhet.
Data Encryption Standard eller DES er den mest kjente databaserte krypteringsmetoden. Den ble introdusert i 1975 av IBM, basert på en tidligere algoritme (Lucifer), konstruert av Horst Feistel. Nøkkelen var på 56 bits, en litt svak nøkkel. Årsaken til at nøkkelen ble på 56 bits, var at NSA, USAs sikkerhetstjeneste, ikke ville ha en altfor sterk algoritme. Med 56 bits fikk man likevel en ganske sterk kryptering, men ikke så sterk at NSA ikke kunne dekryptere den om nødvendig. Selv om 56 bits DES fortsatt er i bruk, er den i dag altfor svak (2006). Et cluster av datamaskiner kan knekke krypteringen i løpet av noen timer (brute force). For fortsatt å kunne bruke hardware lagd for DES, innførte man en ny variant kalt trippel DES. I trippel DES blir informasjonen kryptert 3 ganger, styrken er på effektive 112 bits. Trippel DES har milliarder av flere kombinasjoner enn 56 bits DES. Den er foreløpig heller ikke knekket ved brute force.
DES tilhører kategorien Blokk Chiffer; de fleste symmetriske krypteringssystemer er basert på denne teknikken. I en blokk chiffer (algoritme) deles informasjonen opp i blokker som så gjennomgår krypteringsprosessen. I DES bruker man blokker på 64 bits, disse blir delt i to nye blokker på 32 bits. Disse blokkene kalles høyre og venstre, disse blokkene blir kryptert (Exclusive OR) med 48 bits nøkler i et feistel nettverk. DES kjører 64 bits-blokkene 16 runder før den er ferdig med krypteringen.

Blokk-metoder

Det er flere metoder for å kryptere blokkene i et blokkchiffer-system. De fire vanligste er:
Electronic Code Book (ECB) Et relativt enkelt og hurtig system. Her blir hver enkel blokk eller tegn kryptert med XOR (eksklusiv eller) for å produsere chifferteksten. Når man skal dekryptere, gjentar man bare prosessen for å hente fram klarteksten. Systemet er helt sikkert om krypteringsnøkkelen er tilfeldig valgt og er like lang som teksten, da har man et engangschiffer. I de aller fleste tilfeller bruker man en mindre nøkkel for å lage flere nøkler, noe som svekker systemet. Eventuelle svakheter og mønster i nøklene synes lett i chiffermeldingen. For at dette systemet skal være sikkert, må man bare kryptere med samme nøkkel én gang. Under andre verdenskrig gjorde tyske Lorenzoperatører flere tabber, bl.a. å kryptere samme melding to ganger. ECB anbefales kun brukt som system dersom informasjonen er liten eller om man har mulighet til å bytte nøkkel ved ny kryptering.
Cipher Block Chaining (CBC) Ligner på ECB ved at man krypterer blokkene med XOR, men i stedet blir resultatet av krypteringen kryptert på nytt med neste blokk og neste nøkkel. Ved denne metoden vil klarteksten bli blandet med nøkkelen, slik at man produserer et chiffer som ikke bare er avhengig av nøkkelen, men også klarteksten.
Cipher Feedback Mode (CFB) Ligner på CBC, her blir resultatet ført tilbake i en selvsynkroniserende strøm av chiffer.
Output Feedback Mode (OFB) Lik CFB, men synkron. Dette beskytter bedre mot feil i overføringen, bl.a. fordi feilrettingssystemer kan brukes før og etter krypteringen.

Digitale signaturer

En digital signatur har som hovedformål å verifisere at en spesifikk person har produsert dataene som foreligger. En banksjef sender en e-post til en ansatt om at vedkommende skal overføre 10000 kr til en gitt konto. For å være helt sikker på at meldingen faktisk kom fra banksjefen kan e-postmeldingen signeres.
En annen oppnådd effekt med signering er integritet. Det betyr at innholdet ikke er modifisert. Hvis en angriper på nettverket snapper opp emailen til den bankansatte og endrer kontonummeret vil signatursjekken gi feilmelding.
For å generere en signatur kan hele meldingen krypterisk med symmetrisk krypering der nøkkel er kjent av sender og avsender. Men en mer elegant måte er å produsere en sjekksum av meldingen og signere denne isteden. Signaturen kan legges ved som emailvedlegg og meldingen kan sendes ukryptert.
Fordi hver enkelt par avsender og mottaker må dele en symmetrisk nøkkel må n mennesker dele n (n -1) / 2 nøkkler og det blir mange nøkler.
Med asymmetrisk kan avsender bruke sin private nøkkel til å signere en sjekksum av meldingen.

Hybridsystem

Asymmetrisk og symmetrisk krypering brukes samtidig for å oppnå autentisering, integritet og ulesbart innhold for andre. Først signeres en sjekksum av innholdet. Deretter genereres en midlertidig sesjonsnøkkel og innhold og signatur blir krypert med denne. Deretter brukes mottakers offentlige nøkkel til å kryptere sesjonsnøkkelen.
Mottaker bruker sin private nøkkel til å dekryptere sesjonsnøkkelen og bruker den til å dekryptere innholdet. Deretter kan signatur sjekkes.

Sjekksum funksjon

En sjekksum funksjon konverterer data av hvilken som helst lengde til data med en bestemt lengde. Samme inndata vil produsere lik sjekksum hver gang. Et eksempel er MD5 funksjonen;
Md5('foobar') == 3858f62230ac3c915f300c664312c63f
En sjekksum av en fil er nyttig for å detektere bit feil i overføring.

Framtiden

Dagens databaserte kryptering er meget sikker, i alle fall for det private kommersielle markedet. Det er ikke kjent at noen kriminell organisasjon har knekt nøkler på 112 bits (trippel DES) eller andre kraftigere systemer. I en verden hvor informasjon og kommunikasjon spiller en større rolle, blir sikringen av informasjonen viktigere. I Norge og Europa har vi prinsipielt fri tilgang til kryptering, dette i motsetning til mange andre land. Det er ikke sikkert det fortsetter å være slik. Politiets viktigste metoder for å bekjempe kriminalitet og terrorisme er avlytting. Dessverre er kryptering et toegget sverd, det kan beskytte, men samtidig også misbrukes. Et engelsk forslag som stadig dukker opp, er "key escrow". Et system hvor en tredje part oppbevarer nøkler, og hvor myndighetene må ha rettens kjennelse for å få nøkkelen. For å få lov til å benytte sterk kryptering må man til gjengjeld gi en kopi til denne tredje parten. Likevel innser de fleste at man ikke kan hindre utbredelsen av kryptering, hverken i form av lovverk eller ved å hindre eksport. Samtidig er kryptering en nødvendighet i dagens moderne samfunn. En betingelse for all e-handel, men kanskje en nødvendighet for å bevare frihet og demokrati.