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.