.
Licens: Brukerspesifisert
.
Licens: Brukerspesifisert
.
Licens: Brukerspesifisert

Kryptologi, læren om kryptografiske metoder og systemer samt vurderingen af deres sikkerhed. Kryptografi blev oprindelig anvendt til at kode information således, at kun retmæssige modtagere af informationen kunne afkode og dermed forstå den. Den største anvendelse var i militære sammenhænge, hvor der var et behov for at kunne kommunikere fortroligt over store afstande via åbne kommunikationskanaler, fx radiotransmission.

Faktaboks

Etymologi
Ordet kryptologi kommer af græsk kryptos 'skjult' og -logi, egl. 'læren om det skjulte'.

Med den moderne informationsteknologis udbredelse er kryptografi og dermed kryptologien også blevet relevant og mulig for store dele af det civile liv; fx har virksomheder med afdelinger spredt over store afstande behov for at kunne udveksle fortrolige informationer via offentlige net (telefonnettet), og privatpersoner kan foretage fortrolige og autentificerede transaktioner over fx internettet. Den teknologiske udvikling har samtidig gjort det så godt som irrelevant at anvende kryptografi i forbindelse med analoge systemer; moderne kryptologi beskæftiger sig således udelukkende med digitale systemer.

Udveksling af elektronisk information foregår uden brug af papir til fastholdelse af selve indholdet. Selve den kommunikerede information kan naturligvis repræsenteres, dvs. fremkaldes, på en skærm eller på et stykke papir via en printer. Men det er ikke papiret, der er den egentlige bærer af informationen. Derfor kan data kun beskyttes effektivt ved direkte manipulation.

Det er nødvendigt at skelne mellem information og den måde, informationen overbringes på. Informationsteorien blev grundlagt i 1948 af Claude E. Shannon fra Bell Laboratories med afhandlingen The Mathematical Theory of Communications. Normalt menes der med information blot en repræsentation af en bestemt information i form af en meddelelse, fx en fotokopi. En given meddelelse er altså blot én blandt mange måder, information kan overbringes på. Forinden må der være enighed om, hvorledes informationen repræsenteres. Det kan være et bestemt alfabet, som kan sammensættes efter en bestemt syntaks, et bestemt sprog osv. Det centrale er, at meddelelsen kan fortolkes. Ved datakommunikation er information repræsenteret ved elektriske ladninger, som traditionelt betegnes med 0 eller 1, kaldet en bit. Bogstaver og tal kan så repræsenteres vha. bitkombinationer som eksempelvis i en ASCII-tabel, hvor hvert tegn er repræsenteret ved 8 bit (kaldet en byte).

Ved et elektronisk dokument forstås en bitkombination, som kan fortolkes til noget entydigt vha. de koder, der anvendes. Et elektronisk dokument har altså ingen fysisk eksistens. Det kan evt. være repræsenteret i en database, men dette må ikke forveksles med selve dokumentet, der blot er en formel bitkombination. Det har specielt ikke mening at tale om et originalt elektronisk dokument i modsætning til kopier: Dokumentet kan være repræsenteret samtidig både hos modtageren og afsenderen. Den ene version er ikke mere original end den anden. Problemet er derfor, hvorledes afsender og modtager (A og B) sikrer sig, at versionerne er ens. Til dette brug findes fire grundlæggende sikkerhedsmæssige brugerfunktioner (security services), der er baseret på kryptografiske metoder.

Meddelelsesautenticitet: Med autenticitet menes, at B får bevis for, at det elektroniske dokument er fra A og ingen anden. Det betyder dog ikke nødvendigvis, at en tredje part kan skelne mellem A og B. Uafviselighed (non-repudiation): Er der tale om noget juridisk bindende, skal modtageren have vished for, at meddelelsen virkelig forpligter afsenderen. Dette kræver specielt, at der kan føres bevis over for tredje part for, hvem afsenderen er. Der er altså krav om ikke at kunne afvise, at en transaktion er udført. Integritet: Det skal være umuligt at ændre i de data, der transmitteres, uden at det kan detekteres af modtageren. Normalt opnås integritet som en sideeffekt af meddelelsesautenticitet eller uafviselighed. Konfidentialitet: Det skal være muligt for A og B at udveksle data, således at ingen anden kan læse dem.

Den eneste måde, hvorpå disse brugerkrav kan opfyldes, er ved kryptografisk manipulation af data. Specielt i forbindelse med uafviselighed er der brug for en individualisering af den bitstreng, der fremsendes. Med andre ord, selvom A og B måtte ønske at overbringe C nøjagtig den samme meddelelse, skal det være muligt at skelne dem fra hinanden, ikke ved at de er lagret forskellige steder eller ved eksterne markeringer e.l. Den måde, A repræsenterer meddelelsen på, skal være fundamentalt forskellig fra den måde, B repræsenterer den samme meddelelse på.

Kryptografiske systemer

En forvandling fra såkaldt klartekst (plaintext), altså tekst, som kan læses direkte i overensstemmelse med de koder, der bruges, til såkaldt kryptotekst eller chiffertekst (ciphertext) kaldes enkryptering. Forvandlingen tilbage til klartekst kaldes dekryptering. Disse processer, under ét kaldet kryptering, er styret af nøgler, dvs. parametre, som indgår i selve processen, og hvoraf hele sikkerheden ofte afhænger.

Indtil 1970'erne kendte man kun én type af kryptografiske systemer, nemlig konventionelle, eller symmetriske, systemer, hvor transformationerne er karakteriseret ved, at der bruges samme (hemmelige) nøgle ved både enkrypteringen og dekrypteringen. Men i 1976 foreslog to forskere ved Stanford University, Whitfield Diffie og Martin Hellman, princippet for en ny type af systemer, såkaldte public key-systemer eller asymmetriske systemer, hvor nøglerne er forskellige, således at den ene nøgle kan offentliggøres, samtidig med at den anden kan hemmeligholdes.

Det var ved introduktionen af begrebet ikke klart, om det lod sig gøre at konstruere et public key-system i praksis, men snart lykkedes det forskere at udvikle sådanne, hvoraf navnlig ét, RSA-systemet, som blev konstrueret på MIT i 1978 af Ronald L. Rivest, Adi Shamir og Leonard Adleman, har overlevet alle "angreb" og dermed vist sig levedygtigt.

Der er siden kommet andre til, fx ElGamal og varianten DSA (Digital Signature Algorithm), standardiseret og patenteret af NSA (National Security Agency) og NIST (National Institute for Standardization and Technology) i USA.

Konventionelle (symmetriske) kryptosystemer

Eksempler på konventionelle (symmetriske) kryptografiske systemer kendes tilbage til antikken og er i moderne versioner stadig blandt de mest udbredte.

Cæsarsubstitution (opkaldt efter den første kendte bruger, Gajus Julius Cæsar): I dette system er enkrypteringen bestemt ved at erstatte et bogstav med bogstavet k pladser længere fremme i alfabetet (k = 0,1,2,....,27 er så nøglen). Bruges eksempelvis nøglen k = 3, enchifreres ABSTINEMANUS til

Enhver, der kender enkrypteringsalgoritmen, kender dermed også dekrypteringsalgoritmen: tæl tre bogstaver til venstre. Det er naturligvis trivielt at bryde en sådan kode, forudsat at chifferteksten er så lang, at der kun er én mulighed for en tilhørende klartekst (denne afstand kaldes generelt for unicitetsafstanden og er for Cæsarsubstitution 3-4 bogstaver). Det vil eksempelvis være nok at lave en statistisk analyse af bogstavsfordelingen for hver af de (for dansk) 28 nøgler og så sammenligne den med fordelingen for det sprog, den oprindelige klartekst er skrevet i. Det er endog muligt blot fra bogstavsfrekvensen at bestemme dette sprog.

Polyalfabetisk substitution: Betydelig mere kompliceret bliver det, hvis man i stedet for at forskyde hvert bogstav et fast antal pladser specificerer, at det i'te bogstav skal flyttes et antal skridt, der afhænger af i. En sådan metode kaldes en polyalfabetisk substitution. De bedst kendte ældre systemer af denne type er Vigenère og en variant, Beaufort. Teksten TOBEORNOTTOBE ønskes eksempelvis enchifreret; i stedet for som ved Cæsarsubstitution at vælge en fast forskydningsnøgle vælger vi et nøgleord, fx HAM, som (til forklaring af fremgangsmåden) skrives under klarteksten gentagne gange:

Idet H er det syvende bogstav efter A, A det nulte og M det tolvte, enchifreres alle bogstaver med et H underneden (nøglen) ved hjælp af Cæsarsubstitution med cyklisk forskydning syv til højre. Når vi ved optælling når til det sidste, Z, fortsætter vi med A,B, osv. Dernæst enchifreres alle bogstaver med A underneden med forskydning 0 til højre, og til sidst gentages processen med det sidste nøglebogstav, M

og enchifreringen er tilendebragt. Idet nøgleordet kan have varierende længde, er Vigenère ikke triviel at bryde uden brug af computer; Vigenère blev så sent som i 1917 i Scientific American omtalt som "meget svær at bryde".

One-time-pad: Klarteksten er fx repræsenteret ved strengen 1.110.101... Som nøgle vælges en fuldstændig tilfældig binær streng af samme længde: 11.100.110... Enkrypteringen opnås ved parvis såkaldt "eksklusivt eller" (⊕) af en klartekstbit og en nøglebit, som blot er addition modulo 2: 0⊕0 = 1⊕1 = 0, 0⊕1 = 1⊕0 = 1, således at chifferstrengen bliver 10.010.011... Det følger umiddelbart, at dekrypteringen opnås ved samme operation af chifferstrengen med nøglestrengen. Dette system er ubrydeligt; givet en fast chifferstreng 0111... og en vilkårlig klartekststreng 0001... findes der nemlig altid en mulig nøglestreng 0110, som enkrypterer klarteksten til chifferteksten. Vi har derfor ingen mulighed for at afgøre, hvilken klartekst der har været udgangspunkt. Selvom denne teknik altså er ubrydelig, er den praktisk uanvendelig, fordi nøglen, der kun kan bruges én gang, skal være kendt af modtager. I stedet bruger man i praksis såkaldte pseudotilfældige bitgeneratorer, fx baseret på skifteregistre, som initialiseres hos afsender og modtager med samme nøgle.

Op til 2. Verdenskrig begyndte man at konstruere mekaniske maskiner, som producerede chiffertekster ved polyalfabetisk substitution med meget store perioder, ofte større end længden af klarteksten. De bedst kendte var den tyske ENIGMA og den amerikanske HAGELIN. Med disse maskiner var kryptanalytikerens stærke våben, en statistisk analyse af chifferteksten, uskadeliggjort. Under 2. Verdenskrig lykkedes det imidlertid et engelsk team af matematikere med blandt andre A. M. Turing at bryde ENIGMA vha. såkaldte kendt-klartekst-angreb, hvor man havde kendskab til både et stykke klartekst og den tilhørende kryptotekst.

DES (Data Encryption Standard) algoritmen er et klassisk kryptosystem, som blev udviklet af bl.a. IBM i samarbejde med NIST i USA og offentliggjort i 1977. Ud over at bruge substitution benyttes også transpositionsprincippet, hvor bit byttes om. DES anvendes kun til civil kryptering og har længe været det mest udbredte system. Specielt har DES været meget brugt i bankverdenen og indgår også i Dankort-systemet. DES er en såkaldt blokchifrering, hvor klarteksten deles op i blokke på 64 bit, og nøglen er 56 bit lang. Nøglerummets størrelse er altså 256, hvilket i dag er under grænsen af, hvad de allerkraftigste computere i verden kan klare på rimelig tid ved udtømmende søgning. Dette problem omgås imidlertid ved at bruge en nøgle af dobbelt længde og så erstatte hver DES-kryptering af tre DES-krypteringer (såkaldt triple-DES).

Public key (asymmetriske) kryptosystemer

Forskellen på et konventionelt kryptografisk system og et public key kryptografisk system er, at det ikke er beregningsmæssigt muligt i et public key-system at bestemme den ene nøgle ud fra den anden. Derfor taler man ikke om enkrypterings- og dekrypteringsnøgler (medmindre systemet kun bruges til konfidentialitet), men om en hemmelig, eller privat, transformations-nøgle S (for secret) og en offentlig transformations-nøgle P (for public). En meddelelse kodet vha. P afkodes altså vha. S og omvendt.

Hvis to brugere, A og B, kommunikerer via et konventionelt system, kan en dommer ikke bagefter afgøre, om en kryptotekst er produceret af A eller B, da de begge bruger den samme nøgle. Men et public key-system kan både bruges til konfidentialitet og autenticitet, ja endog til at producere digitale underskrifter eller signaturer. Det skal bemærkes, at for hver enkelt bruger A, der vælger sig et nøglepar, (PA,SA), kan A bruge SA til dekryptering af hemmelige meddelelser samt til egen digital signatur, mens andre kan bruge As offentlige nøgle til at sende hemmeligholdte meddelelser til A og verificere As digitale signaturer.

Konfidentialitet opnås således: Hvis B ønsker at sende en bitstreng M til A, således at den hemmeligholdes undervejs, bruger B As offentlige nøgle og sender PA(M) = C . Kun A kan dekryptere, da kun A kender den tilhørende hemmelige nøgle SA og SA(C) = M. I praksis er M en nøgle til et konventionelt system, der er meget hurtigere end et public key-system, som så bruges til at enkryptere klarteksten. Et sådant system kaldes et hybridt system. Uafviselighed (digital signatur) opnås således: Hvis A ønsker at sende en klartekst X til B, signeret således at B kan tjekke, at meddelelsen kommer fra A, sender hun SA(X) = Y. B prøver da med As offentlige nøgle og finder PA(Y) = X. Hvis X er meningsfuld, må SA have været anvendt, da kun SA kan enkryptere, således at PA kan dekryptere til noget meningsfyldt. Uafviseligheden sikres dog kun første gang, meddelelsen underskrives. Derfor må i praksis en sådan meddelelse have karakter af en engangsmeddelelse, fx vha. et tidsstempel, for at forhindre gentagelser (replay).

Ingen praktisk anvendelige systemer, der anvendes i dag, er teoretisk ubrydelige, men kun praktisk ubrydelige; dels fordi der bruges en tilstrækkelig sikker algoritme, dels fordi antallet af mulige nøgler er så stort, at det både er umuligt at prøve dem igennem ved udtømmende søgning og usandsynligt at gætte nøglen. Effektive systemer er baseret på algoritmer, der bygger på matematiske teorier, som sikrer praktisk ubrydelighed.

Da public key-algoritmer er langsomme i praktisk brug, er det dog typisk ikke meddelelsen, men blot et "fingeraftryk" af den (en hash-værdi), som enkrypteres med den hemmelige nøgle.

En ny teknik til nøgleudveksling, der dog stadig er på grundforskningsstadiet, er kvantekryptologi, hvor Heisenbergs usikkerhedsprincip udnyttes. Grundprincippet er følgende: 1) Bittene sendes som fotoner med en polarisering, der kan forekomme i to konjugerede baser (fx horisontalt (0)/vertikalt (1) samt venstre- (0)/højredrejet (1), hvor tallet i parentes angiver den bit, der er aftalt som koden. Pointen er, at prøver man at måle bitten, må man gætte den anvendte base. Gættes forkert, vil sandsynligheden for korrekt måling være 1/2. Gættes rigtigt, bliver målingen korrekt. 2) Efter målingen meddeler modtageren (ved autentificeret kommunikation) afsenderen, hvilken basis der blev brugt for hver enkelt bitmåling. 3) Afsenderen meddeler modtageren, hvilke valg der var rigtige, og kun disse bit bruges herefter (fx i one-time pad).

Administrationen af nøglerne er et stort praktisk problem. Problemet består i, at det, uanset systemet, er nødvendigt at kende den rigtige nøgle, hvorfor det er nødvendigt at kommunikere den mellem brugerne. Dette håndteres vha. nøgleadministration. Det er selvfølgelig ikke nok, at A blot sender sin offentlige nøgle sammen med en digital signatur. Enhver person X kunne jo påstå at være A og sende en offentlig nøgle og derefter bevise, at han kender den tilhørende hemmelige nøgle. Måden, hvorpå dette problem løses, er vha. certifikater. I et åbent system, hvor enhver principielt kan melde sig som bruger, vil en certificeringsmyndighed (certification authority, CA) registrere brugere og deres offentlige nøgler efter først at have tjekket deres identitet efter afstukne sikkerhedsprocedurer. Denne myndighed er selv udstyret med et public key-par (P,S). Når A så er registreret med sin offentlige nøgle, udstedes certifikatet som CAs digitale signatur vha. S på en meddelelse, som blandt andet består af information, som identificerer brugeren A og As offentlige nøgle PA. Samtidig får A ved registreringen udleveret CAs offentlige nøgle P. Når A så siden hen skal kommunikere med B, sender hun først sit certifikat til B. B tjekker vha. P, at certifikatet er CAs digitale signatur på en meddelelse, som fortæller, at en vis bruger A af CA er registreret med den offentlige nøgle PA. B er herefter i stand til at verificere As eventuelle efterfølgende underskrift på en meddelelse. Til dette forudsættes kun forudgående kendskab til én eneste nøgle, nemlig CAs offentlige nøgle.

De første nationale lovgivninger om digitale signaturer og de betroede tredjeparter, som udsteder certifikater, blev indført i USA og Europa i slutningen af 1990'erne. Formålet er at ligestille den juridiske værdi af digitale og håndskrevne signaturer under visse betingelser og afstikke det juridiske ansvar for de forskellige parter. I enkelte lande er konfidentialitet kun tilladt, hvis en betroet tredjepart (fx en nationalt autoriseret sikkerhedstjeneste) har en kopi af dekrypteringsnøglerne.

Se også digital signatur.

Kommentarer

Kommentarer til artiklen bliver synlige for alle. Undlad at skrive følsomme oplysninger, for eksempel sundhedsoplysninger. Fagansvarlig eller redaktør svarer, når de kan.

Du skal være logget ind for at kommentere.

eller registrer dig