Kryptografisk nøkkelhåndtering: generering, lagring og distribusjon av nøkler. Utvikling og implementering av en matematisk modell av et to-nøkkel kryptosystem Nøkkeldistribusjon

Hvert kryptosystem fungerer med kryptografiske nøkler. Hvis systemet ikke har en mekanisme for å administrere nøkkeldata, trenger ikke en angriper å overta det. Nøkkelledelse involverer prosedyrer som å generere, lagre og distribuere nøkler. Den siste prosedyren er den viktigste.

I et symmetrisk kryptosystem må de to partene først bli enige om en hemmelig sesjonsnøkkel, en nøkkel for å kryptere alle pakker. Nøkkelen må være hemmelig og vil periodisk bli oppdatert av abonnenter. Et asymmetrisk kryptosystem innebærer bruk av to nøkler - private (hemmelige) og offentlige. Den offentlige nøkkelen avsløres. Når du videresender meldinger, må du videresende den offentlige nøkkelen ved å innse at videresendingen er ekte.

Nøkkeldistribusjonssystemet må oppfylle følgende krav:

  • integritet og konfidensialitet for distribuerte nøkler
  • effektivitet og nøyaktighet av distribusjon

Det er to måter å distribuere nøkler på:

  • bruk av sentrale distribusjonssentraler
  • direkte utveksling av nøkler mellom abonnenter

I den første tilnærmingen vet nøkkeldistribusjonssentralen hvilke nøkler som ble sendt og til hvem. I den andre tilnærmingen må du bekrefte identiteten til nettverksfagene. Oppgave distribusjon av nøkler koker ned til opprettelse, som implementerer:

  • autentisering av deltakere i økten
  • øktvalidering
  • implementering av minimum antall meldingsoverføringer under nøkkelutveksling

Kerberos er et tydelig eksempel på hvordan sentrale distribusjonssentre implementeres. Vi skal se på den andre tilnærmingen her. For å gjøre dette, bruk:

  • asymmetrisk offentlig nøkkel kryptosystem for å beskytte den private nøkkelen til et symmetrisk kryptosystem
  • Diffie-Hellman distribusjonssystemer for offentlige nøkkel

Implementering av et kombinertm

Hovedaspektet ved asymmetriske offentlige nøkkelkryptosystemer er deres potensielt høye sikkerhet. Du trenger ikke overføre nøkler, sørg for at de er autentiske. Imidlertid taper et slikt system i ytelseshastighet i forhold til symmetriske kryptosystemer med en hemmelig nøkkel.

Den kombinerte implementeringen av asymmetrisk og symmetrisk kryptering lar deg eliminere de viktigste ulempene som er karakteristiske for systemer separat. Ideen er som følger:

  • et symmetrisk kryptosystem er implementert for å kryptere den opprinnelige teksten, og et asymmetrisk kryptosystem med en offentlig nøkkel, for å kryptere den hemmelige nøkkelen til det symmetriske kryptosystemet.

Denne tilnærmingen kalles også et skjema elektronisk digital konvolutt... La oss se på et eksempel. Bruker A ønsker å implementere en hybrid krypteringsmetode for sikker transport av pakke M til bruker B. Algoritmen er som følger:

  • Bruker A sin handling:
    • Oppretter (på noen måte) den hemmelige øktnøkkelen K s, som er nødvendig i symmetrisk kryptering for å kryptere pakker
    • Krypterer pakke M med en symmetrisk algoritme på den hemmelige øktnøkkelen K s
    • Asymmetrisk kryptering krypterer den hemmelige øktnøkkelen K s på den offentlige nøkkelen K B til bruker B
    • Sender en kryptert pakke M sammen med en kryptert øktnøkkel K s over en åpen kanal til bruker B
  • Bruker Bs handlinger (ved mottak av en elektronisk digital konvolutt):
    • bruk en asymmetrisk algoritme for å dekryptere øktnøkkelen K s ved å bruke din private nøkkel K B
    • Dekrypter pakke M med en symmetrisk algoritme ved å bruke den dekrypterte nøkkelen K s
    • Brukerhandlinger er vist i figur 1.

Bilde 1

Når du implementerer en digital konvolutt, kompenseres for ulempene med asymmetriske og symmetriske algoritmer på grunn av:

  • problemet med å distribuere nøklene til en symmetrisk kryptoalgoritme elimineres ved at sesjonsnøkkelen K s overføres over en åpen kanal i kryptert form ved bruk av en asymmetrisk kryptoalgoritme
  • problemet med den langsomme hastigheten til den asymmetriske algoritmen er ikke relevant, siden bare nøkkelen er kryptert, og teksten er kryptert med en symmetrisk kryptoalgoritme

Hvis lengden på øktnøkkelen er mindre enn lengden på den asymmetriske nøkkelen, vil angriperen implementere et angrep på øktnøkkelen. Tabell 1 viser forholdet mellom nøkkellengder.

Tabell 1 - Nøkkellengder for asymmetriske og symmetriske systemer med samme kryptografiske styrke

Diffie-Hellman nøkkeldistribusjonsmetode

W. Diffy og M. Hellman opprettet en metode for distribusjon av offentlig nøkkel i 1976. Metoden lar brukere utveksle nøkler gjennom en usikret kommunikasjonskanal. Sikkerheten er basert på vanskeligheten med å beregne diskrete logaritmer i et begrenset felt, i motsetning til det enkle å løse det direkte problemet med diskret eksponentiering i samme felt. Skjemaet for metoden er vist i fig. 2.

Tegning - 2

Brukere A og B, når de utveksler data, genererer sine tilfeldige hemmelige nøkler K A og K B (nøkler er tilfeldige store heltall). Deretter beregner bruker A og B de offentlige nøklene:

  • J A, B = g K A, B (mod N)

N, g er store heltall. Disse numrene er ikke hemmelige, og er kjent for alle brukere av systemet. Deretter implementerer brukere A og B nøkkelutveksling J over en usikker kanal og implementerer dem for å beregne en delt øktnøkkel J:

  • bruker A: J = (J B) KA (mod N) = (g K B) KA (mod N)
  • bruker B: J` = (J A) K B (mod N) = (g K A) K B (mod N)
  • J = J`, siden (g K B) KA = (g K A) K B

På grunn av implementeringen av enveisfunksjonen, er operasjonen med å beregne den offentlige nøkkelen irreversibel. Diffie-Hellman-algoritmen tillater kryptering av informasjon ved hver kommunikasjonsøkt ved hjelp av nye nøkler. Dette øker sikkerheten da det ikke er nødvendig å holde hemmeligheter i media. Denne algoritmen lar deg også implementere en metode for omfattende beskyttelse av konfidensialitet og autentisitet til de overførte dataene.

Metode for omfattende beskyttelse av konfidensialitet og autentisitet av overførte data

For samtidig beskyttelse av konfidensialitet og integritet til informasjon, er det tilrådelig å implementere kryptering i komplekset. Algoritmen fungerer som følger:

  • bruker A signerer pakken M ved å bruke sin private nøkkel KA, og implementerer standard digital signaturalgoritmen
  • bruker A beregner den delte hemmeligheten K i henhold til Diffie-Hellman-prinsippet, fra hans offentlige nøkkel og den offentlige nøkkelen til bruker B
  • bruker A krypterer pakke M på den delte hemmelige nøkkelen K ved å bruke symmetrisk kryptering
  • bruker B mottar pakke M, beregner den delte nøkkelen K og dekrypterer pakke M
  • bruker B verifiserer signaturen til den dekrypterte pakken M ved å bruke brukerens offentlige nøkkel KA

Diffie-Hellman-algoritmen brukes for SKIP- og IKE-krypteringsnøkkeladministrasjonsprotokollene.

Elliptiske kurver er et matematisk objekt som kan defineres over ethvert felt (endelig, reell, rasjonell eller kompleks). Finite felt brukes ofte i kryptografi. En elliptisk kurve er et sett med punkter (x, y), som tilfredsstiller følgende ligning:

y 2 = x 3 + øks + b,

og også punktet i det uendelige. For punkter på en kurve er det ganske enkelt å introdusere addisjonsoperasjonen, som spiller samme rolle som multiplikasjonsoperasjonen i RSA- og ElGamal-kryptosystemene.

I ekte kryptosystemer basert på elliptiske ligninger, brukes ligningen

y 2 = x 3 + øks + b mod p,

hvor R- enkelt.

Det diskrete logaritmeproblemet på en elliptisk kurve er som følger: gitt et punkt G på en elliptisk kurve av orden r (antall punkter på kurven) og et annet punkt Y på samme kurve. Jeg må finne et enkelt punkt x slik at Y = x G, det vil si Y er NS-grad G.

Åpen nøkkeldistribusjon

Så langt har ikke fordelene med offentlige nøkkelkrypteringsmetoder vært åpenbare. På deres grunnlag er det imidlertid lett å løse problemet med å generere en felles hemmelig nøkkel for en kommunikasjonsøkt for et hvilket som helst par av brukere av informasjonssystemet. Tilbake i 1976 foreslo Diffie og Hellman en distribusjonsprotokoll for offentlig nøkkel for dette. Det innebærer at hvert av paret av kommuniserende brukere uavhengig genererer sitt eget tilfeldige tall, transformerer det ved hjelp av en eller annen prosedyre, utveksler de konverterte tallene over en åpen kommunikasjonskanal og beregner en felles hemmelig nøkkel basert på informasjonen mottatt fra partneren under kommunikasjon. Hver slik nøkkel eksisterer bare under én kommunikasjonsøkt eller til og med deler av den. Åpen distribusjon av nøkler lar således hvert par av brukere av systemet generere sin egen delte hemmelighet selv, og forenkler dermed prosedyren for distribusjon av hemmelige nøkler. Selv om alt ikke er så enkelt - det faktum at abonnenter ikke har en forhåndsdistribuert delt hemmelig nøkkel før en kommunikasjonsøkt, tillater dem i prinsippet ikke å verifisere ektheten til hverandre ved å utveksle meldinger over en åpen kanal. Du kan for eksempel sende nøkler ved å bruke ElGamal-algoritmen beskrevet ovenfor som modifisert av Shamir, men hvordan kan du forsikre deg om at du har å gjøre med en partner og ikke en interceptor? For å bekrefte ektheten må hver av deltakerne i det hemmelige nettverket fortsatt ha sin egen hemmelige nøkkel, kun kjent for ham og som skiller ham fra alle andre abonnenter. I dette tilfellet vil Diffie-Hellman-algoritmen gi en slik prosedyre for å presentere et passord at gjentatt bruk ikke reduserer påliteligheten til bevis for eierens autentisitet. Som et resultat blir slike to funksjoner til en delt hemmelig nøkkel, vanligvis levert over en hemmelig kanal, slik som å beskytte informasjon i kommunikasjonskanalen fra en tredjepart og bekreftelse av autentisiteten til hver av abonnentene til en partner, atskilt.

Diffie-Hellmans offentlige nøkkeldistribusjonsalgoritme ser slik ut:

    La det være to abonnenter på et åpent nettverk EN og Bå kjenne et offentlig nøkkelpar R og d... Dessuten, i EN har en hemmelig nøkkel NS fra intervallet (1, n), og kl B har en hemmelig nøkkel y fra samme intervall.

    Abonnent EN sender Bx mod p og abonnenten B sender EN krypterer nøkkelen din Z "= D ** y mod p.

    Etter det beregner de den delte nøkkelen Z som Z = Z "** y= Z "" ** x.

Ved å bruke spesielle teknikker kan tiden for å generere en delt nøkkel i Diffie-Hellman-systemet reduseres med 5 ganger sammenlignet med ElGamal-systemet i Shamirs modifikasjon, og 30 ganger sammenlignet med RSA på samme sikkerhetsnivå. Dette, fra synspunktet til de fleste praktiske applikasjoner, viser seg å være en merkbar fordel, siden kryptering og dekryptering ved hjelp av RSA-algoritmen er omtrent tusen ganger tregere enn klassiske algoritmer som DES. Legg merke til at for mange applikasjoner av kryptografiske systemer med offentlig nøkkel, betyr ikke beregningstiden for kryptografiske transformasjoner mye. For eksempel, når du identifiserer brukere med kredittkort, vil det ikke være noen forskjell om det tar ett mikrosekund eller ett sekund. Det samme gjelder valg av en delt krypteringsnøkkel for et annet, raskere, men ikke nøkkelutvekslings kryptografisk system.

Behovet i offentlige nøkkeldistribusjonssystemer for å ha individuelle hemmelige passord distribuert på forhånd fra senteret for å bekrefte autentisiteten til brukerne virker ikke som en så tyngende oppgave som produksjon og distribusjon fra senteret av par med hemmelige nøkler for kommunikasjon mellom abonnenter. Gyldighetsperioden til et slikt passord kan være betydelig lengre enn gyldighetsperioden for kommunikasjonsnøkkelen, for eksempel et år, og deres totale antall i kommunikasjonsnettverket er lik antallet abonnenter. I tillegg, i noen typer kommunikasjon, kan bekreftelse av partnerens autentisitet oppnås ved å gjenkjenne ham med fysiske tegn. For eksempel med stemme når du ringer eller ved utseende og stemme når du kommuniserer på TV-kanaler. Det skal bemerkes at distribusjon av nøkler ved bruk av kryptografiske systemer med en offentlig nøkkel har den eneste fordelen - behovet for at hver node for hemmelig kommunikasjon kun har én nøkkel. For klassiske symmetriske kryptografiske systemer bør det være like mange nøkler som en node har abonnenter. Imidlertid har offentlige nøkkelsystemer svakheter. Så hvis det er fundamentalt umulig å bryte krypteringen som inneholder nøkkelen i et klassisk system, siden ren tekst er meningsløs og ikke inneholder overflødig informasjon, så har en kryptoanalytiker alltid håp om suksess i systemer med en offentlig nøkkel. Videre, hvis tallet D er felles for alle nettverksdeltakere, vil dets kompromiss, i form av å oppdage spesielle egenskaper som letter logaritmen, føre til kompromiss av hele nettverket. Hvis D er individuell for hvert abonnentpar, er det for det første, på grunn av overfloden av nøkler, lettere å finne en svak blant dem, og for det andre, selv om sending og lagring av uklassifiserte nøkler er uforlignelig enklere enn hemmelige, skaper også mye trøbbel. Derfor, hvis en kryptograf har muligheten til å bruke tjenestene til en hemmelig kanal, vil han alltid foretrekke det fremfor en åpen distribusjon av nøkler.

Av de praktisk talt fungerende kommunikasjonsnettverkene som bruker det offentlige nøkkeldistribusjonssystemet, er det mest alvorlig beskyttede det amerikanske statlige telefonnettverket basert på STU-III-enheter. Den startet i drift i 1987 og har nå mer enn 150 tusen abonnenter. I Russland er et lignende nettverk, også kalt ATS-1 eller "platespiller", også pålitelig beskyttet, men det er hundrevis av ganger færre abonnenter der. På begynnelsen av åttitallet hadde kryptologer forstått fordelene med såkalte hybridsystemer, der krypteringsprosedyrer for offentlig nøkkel kun brukes til å overføre nøkler og digitale signaturer. Og informasjonen som må overføres er beskyttet av den klassiske DES-algoritmen, nøkkelen som overføres ved hjelp av offentlig nøkkelkryptering. Den første serielle enheten av denne typen var Racal-Milgo Datacryptor, utgitt i 1979. Datacryptor krypteringsnøkkel manager er designet primært for offentlige kommunikasjonsnettverk og er sertifisert for å møte den engelske standarden for beskyttelse av sensitiv, men sensitiv informasjon. Det gir signalisering av brudd på kryptografiske krav og varsling om feil. Denne enheten bruker en kryptert koved å generere og overføre en delt hemmelig nøkkel ved hjelp av RSA-algoritmen. I fremtiden ble mange enheter av denne typen utgitt for å beskytte informasjon. Andre eksempler på bruk av nye kryptografiske ideer er demonstrert av mange kommersielle nettverk, spesielt banktjenester som SWIFT. I tillegg brukes det digitale RSA-signatursystemet i verifikasjonsutstyret for Nuclear Test Restriction Treaty som ble utviklet av Sandia Laboratories i 1982, BPMIS-nettverket og andre systemer.

Nøkkeldistribusjon er den mest kritiske prosessen i nøkkelhåndtering. Det er to krav til det:

1. Rask og nøyaktig distribusjon

2. Hemmeligholdet til de distribuerte nøklene.

Nylig har det vært et skifte mot bruk av offentlige nøkkelkryptosystemer, der problemet med nøkkeldistribusjon er eliminert. Likevel krever distribusjon av nøkkelinformasjon i IS nye og effektive løsninger.

Fordelingen av nøkler mellom brukere implementeres på to forskjellige måter:

1. Ved å opprette ett eller flere sentrale distribusjonssentre. Ulempen med denne tilnærmingen er at distribusjonssentralen vet hvem og hvilke nøkler som er tildelt, og dette gjør det mulig å lese alle meldinger som sirkulerer i IS. Potensielt misbruk påvirker beskyttelsen betydelig.

2. Direkte utveksling av nøkler mellom brukere av informasjonssystemet.

I dette tilfellet er problemet hvordan man pålitelig kan autentisere emnene.

I begge tilfeller må autentisiteten til kommunikasjonsøkten garanteres. Dette kan oppnås på to måter:

1. Mekanismen for forespørsel-svar, som er som følger. Hvis bruker A ønsker å være sikker på at meldingene han mottar fra B ikke er falske, inkluderer han et uforutsigbart element (forespørsel) i meldingen som sendes til B. Når du svarer, må bruker B utføre en operasjon på dette elementet (for eksempel legge til 1). Dette kan ikke gjøres på forhånd, siden det ikke er kjent hvilket tilfeldig tall som kommer i forespørselen. Etter å ha mottatt et svar med resultatene av handlingene, kan bruker A være sikker på at økten er ekte. Ulempen med denne metoden er muligheten for å etablere et om enn komplekst mønster mellom en forespørsel og et svar.

2. Mekanisme for tidsstempel ("tidsstempel"). Det innebærer tidsstempling for hver melding. I dette tilfellet kan hver IS-bruker vite hvor "gammel" den mottatte meldingen er.

I begge tilfeller bør kryptering brukes for å sikre at svaret ikke sendes av en angriper og at tidsstemplet ikke endres.

Bruken av tidsstempler reiser spørsmålet om det akseptable latensintervallet for autentisering av en økt. Tross alt kan en melding med et "tidsstempel" i prinsippet ikke overføres umiddelbart. I tillegg kan ikke mottakerens og avsenderens dataklokker synkroniseres absolutt. Hva er forsinkelsen av "stempelet" for å bli ansett som mistenkelig.

Derfor, i ekte IP, for eksempel i kredittkortbetalingssystemer, er det den andre mekanismen for autentisering og beskyttelse mot forfalskning som brukes. Brukt intervall er fra ett til flere minutter. Et stort antall kjente metoder for å stjele elektroniske penger er basert på å "kile inn" i dette gapet med falske forespørsler om å ta ut penger.

For nøkkelutveksling kan du bruke offentlige nøkkelkryptosystemer som bruker den samme RSA-algoritmen, men Diffie-Hellman-algoritmen viste seg å være svært effektiv, og tillot to brukere å utveksle en nøkkel uten mellomledd, som deretter kan brukes til symmetrisk kryptering. For all enkelheten til Diffie-Hellman-algoritmen, er dens ulempe sammenlignet med RSA-systemet fraværet av en garantert nedre grense for kompleksiteten til nøkkelavsløring.

I tillegg, selv om den beskrevne algoritmen unngår problemet med skjult nøkkeloverføring, gjenstår behovet for autentisering. Uten ekstra midler kan ikke en av brukerne være sikker på at han byttet nøkler med akkurat den brukeren han trenger. Faren for imitasjon gjenstår i dette tilfellet.

Originale løsninger på problemet med "vandrende nøkler" blir aktivt utviklet av spesialister. Disse systemene representerer et slags kompromiss mellom offentlige nøkkelsystemer og konvensjonelle algoritmer, som krever at avsender og mottaker har samme nøkkel.

Tanken bak metoden er ganske enkel. Etter at nøkkelen er brukt i en økt, i henhold til en regel, erstattes den av en annen.

Denne regelen må være kjent for både avsender og mottaker. Når du kjenner regelen, endrer mottakeren også nøkkelen etter å ha mottatt neste melding. Hvis regelen for endring av nøklene følges nøye av både avsender og mottaker, har de samme nøkkel til hvert øyeblikk. Den konstante endringen av nøkkelen gjør det vanskelig for en angriper å avsløre informasjon.

Hovedoppgaven i implementeringen av denne metoden er valget av en effektiv regel for å endre nøklene. Den enkleste måten er å generere en tilfeldig liste med nøkler. Tastene endres i rekkefølgen på listen. Men åpenbart vil listen måtte overføres på en eller annen måte.

Et annet alternativ er å bruke matematiske algoritmer basert på såkalte iterating over-sekvenser. På et sett med nøkler, ved samme operasjon på et element, oppnås et annet element. Sekvensen av disse operasjonene lar deg flytte fra ett element til et annet til hele settet er oppregnet.

Den mest tilgjengelige er bruken av Galois-felt. Ved å heve til kraften til det genererende elementet, kan du suksessivt flytte fra ett tall til et annet. Disse numrene godtas som nøkler.

Nøkkelinformasjonen i dette tilfellet er det originale elementet, som må være kjent for både avsender og mottaker før kommunikasjonsstart.

Påliteligheten til slike metoder må sikres under hensyntagen til kunnskapen om den brukte nøkkelen om nøkkelen til angriperen.

Nøkkeldistribusjonsprotokoll(nøkkeletableringsprotokoll) er en kryptografisk protokoll der en delt hemmelighet gjøres tilgjengelig for to eller flere parter for senere bruk til kryptografiske formål.

Nøkkeldistribusjonsprotokoller er delt inn i to klasser:

    Viktige transportprotokoller;

    Nøkkelutvekslingsprotokoller.

Viktige transportprotokoller(nøkkeltransport) er nøkkeldistribusjonsprotokoller der en deltaker oppretter eller på annen måte skaffer seg en hemmelighet og overfører den sikkert til andre deltakere.

Nøkkelutvekslingsprotokoller(nøkkelavtale, nøkkelutveksling) er nøkkeldistribusjonsprotokoller der en delt hemmelighet genereres av to eller flere deltakere som en funksjon av informasjon bidratt av hver av dem (eller assosiert med dem) på en slik måte at (ideelt sett) ingen annen part kan forhåndsbestemme deres delte hemmelighet.

Det er to tilleggsformer for nøkkeldistribusjonsprotokoller. En protokoll sies å utføre en nøkkeloppdatering hvis en helt ny nøkkel genereres i protokollen, uavhengig av nøklene generert i tidligere økter av protokollutførelsen. Protokollen utfører nøkkelderivering hvis en ny nøkkel er "avledet" fra de eksisterende av deltakerne i kryptosystemet.

Nøkkelegenskapene til nøkkeldistribusjonsprotokoller inkluderer de for nøkkelautentisering, nøkkelvalidering og eksplisitt nøkkelautentisering.

(implisitt) nøkkelautentisering(implisitt nøkkelautentisering) - en egenskap der én protokolldeltaker sørger for at ingen annen part, bortsett fra en spesielt identifisert andre protokolldeltaker (og muligens et tillitssenter), kan få tilgang til de hemmelige nøklene som er oppnådd i protokollen. Det er ingen garanti for at den andre deltakeren faktisk fikk tilgang til nøkkelen, men ingen andre enn ham kunne få den. Implisitt nøkkelautentisering er uavhengig av den faktiske besittelsen av nøkkelen til en annen part og krever ingen handling fra den andre parten.

Nøkkelbekreftelse(nøkkelbekreftelse) er en egenskap som gjør at en deltaker i protokollen er overbevist om at den andre deltakeren (muligens uidentifisert) virkelig besitter de hemmelige nøklene som er oppnådd i protokollen.

Eksplisitt nøkkelautentisering(eksplisitt nøkkelautentisering) er en egenskap som utføres når (implisitt) nøkkelautentisering og nøkkelvalidering finner sted samtidig.

    1. Needham-Schroeder-protokollen på symmetriske nøkler

Denne protokollen ligger til grunn for et stort antall nøkkeldistribusjonsprotokoller som bruker pålitelige myndigheter. Det er to typer av denne protokollen:

    Needham-Schroeder-protokoll på symmetriske nøkler;

    Needham-Schroeder-protokollen på asymmetriske nøkler.

Den symmetriske nøkkelprotokollen fungerer som følger:

Innledende fase:

Med tradisjonell kryptering må begge parter som er involvert i utvekslingen av data motta samme nøkkel som andre brukere nektes tilgang til. I dette tilfellet er det vanligvis nødvendig med hyppige nøkkelendringer for å redusere mengden data som går tapt i tilfelle noen av nøklene blir kjent for fienden.

Derfor avhenger påliteligheten til ethvert kryptografisk system i stor grad av nøkkeldistribusjonssystemer, som er et middel for å levere nøkler til to parter som planlegger å utveksle data, og hindre andre i å se disse nøklene.

For begge sider, A og V, som angitt nedenfor, kan nøkkeldistribusjon organiseres på forskjellige måter:

  • 1. Nøkkelen kan velges ved side A og leveres fysisk til siden V.
  • 2. Nøkkelen kan velges av en tredjepart og leveres fysisk til deltakere A og V.
  • 3. Dersom deltakerne i utveksling A og V allerede bruker en felles nøkkel, kan en av partene overføre den nye nøkkelen til den andre parten i kryptert form ved å bruke den gamle nøkkelen.
  • 4. Hvis begge sider A og V har kryptografisk sikre kommunikasjonskanaler med tredjepart C, så kan sistnevnte levere nøkkelen til deltakere A og V gjennom disse sikre kanalene.

Alternativ 1 og 2 innebærer hånd-til-hånd overføring av nøkkelen. Med kanalkryptering kan dette kravet være ganske rimelig, siden enhver kanalkrypteringsenhet forventer å utveksle data bare med den tilsvarende enheten i den andre enden av kanalen.

Men når det gjelder ende-til-ende-kryptering, er levering av fysisk nøkkel praktisk talt uakseptabelt. I et hvilket som helst distribuert system kan hver masternode eller terminal kommunisere med mange andre mastere og terminaler. Derfor vil hver slik enhet kreve mange nøkler, som må leveres dynamisk. Problemet viser seg å være svært vanskelig å løse, spesielt når det gjelder store globalt distribuerte systemer.

Størrelsen på problemet avhenger av antall kontaktpar som må repareres. Hvis ende-til-ende-kryptering utføres på nettverket eller IP-laget, kreves det én nøkkel for hvert par verter på nettverket som kommuniserer. Derfor, hvis det er N ledende noder, vil antallet nødvendige nøkler være / 2. Hvis kryptering utføres på applikasjonsnivå, kreves det en egen nøkkel for hvert par brukere eller prosesser som går inn i kommunikasjon. Dessuten kan et nettverk ha hundrevis av verter og tusenvis av brukere og prosesser. I fig. 6.2 for tilfellet med ende-til-ende-kryptering, vises avhengigheten av kompleksiteten til nøkkeldistribusjonsproblemet på antall par involvert i datautveksling. For eksempel, i et nettverk med 1000 noder hvor kryptering utføres på nodenivå, vil det sannsynligvis være omtrent en halv million nøkler som skal distribueres. Og hvis et slikt nettverk støtter ca. 10 000 applikasjoner, kan kryptering på applikasjonsnivå kreve distribusjon av ca. 50 millioner nøkler.

Ris. 6.2.

For å gå tilbake til listen over nøkkeldistribusjonsmetoder, merker vi at metode 3 er mulig for både kanalkryptering og ende-til-ende-kryptering, men hvis motstanderen noen gang klarer å få tilgang til en av nøklene, vil han kunne få alle påfølgende. I tillegg må den første distribusjonen av potensielt millioner av nøkler fortsatt gjøres.

For ende-til-ende-kryptering er et skjema mye brukt, som er en variant av metode 4. I denne ordningen er et nøkkeldistribusjonssenter ansvarlig for å levere nøkler til brukerpar (ledende noder, prosesser, applikasjoner). I dette tilfellet må hver bruker motta sin egen unike nøkkel, som han bruker i forbindelse med nøkkeldistribusjonssenteret for å organisere levering av nøkler.

Ris. 6.3.

Bruken av et nøkkeldistribusjonssenter forutsetter organisering av et visst hierarki. I en minimal konfigurasjon inkluderer et slikt hierarki to nivåer (Figur 6.3). Kommunikasjon mellom sluttsystemer er kryptert ved hjelp av en midlertidig nøkkel, ofte kalt en sesjonsnøkkel. Vanligvis brukes sesjonsnøkkelen kun for en spesifikk logisk forbindelse, for eksempel en virtuell krets, eller for å transportere data, hvoretter denne nøkkelen ikke lenger brukes. Sesjonsnøkkelen hentes fra nøkkeldistribusjonssenteret gjennom samme midler for datalevering i nettverket, som brukes til å organisere kommunikasjon mellom sluttbrukere. Følgelig overføres sesjonsnøkler i kryptert form, og for kryptering brukes en hovednøkkel, som er felles for nøkkeldistribusjonssentralen og dette sluttsystemet eller en spesifikk bruker.

En unik hovednøkkel genereres for hvert sluttsystem eller sluttbruker og deles med nøkkeldistribusjonssenteret. Disse hovednøklene må selvfølgelig også tildeles på en eller annen måte. Imidlertid er dette problemet mye enklere i kompleksitet. Som nevnt krever N objekter som utveksler data i par / 2 sesjonsnøkler. Og bare N hovednøkler kreves, én for hvert objekt. Derfor kan hovednøkler tildeles på en eller annen ikke-kryptografisk måte, for eksempel ved fysisk levering til adressaten.

Nøkkeldistribusjon kan implementeres på forskjellige måter. Et typisk scenario er vist i fig. 6.4. Dette scenariet forutsetter at hver bruker har en unik hovednøkkel som deles med et nøkkeldistribusjonssenter (KDC).

Anta at bruker A har til hensikt å opprette en logisk forbindelse med bruker B og en engangs sesjonsnøkkel er nødvendig for å beskytte dataene som er ment å bli overført under denne forbindelsen.

I dette tilfellet har bruker A en hemmelig nøkkel Ka, kjent bare for ham og CRC, og på samme måte bruker B hovednøkkelen Kc, delt med CRC.

Informasjonsutvekslingssystemet er som følger.

  • 1. Initiator A sender en forespørsel til CRC om å få en sesjonsnøkkel for å beskytte den logiske forbindelsen med B. Meldingen som sendes i dette tilfellet bør inneholde informasjon som gjør at A og B entydig kan identifiseres, samt noen identifikator N1, unik for denne forespørselen, vanligvis kalt en sak (popse - gitt sak, gitt tid (eng.)). Slike identifikatorer kan være gjeldende tid, en teller eller et tilfeldig tall - i det minste må denne identifikatoren være unik for hver forespørsel. I tillegg, for å forhindre at fienden forfalsker meldingen, må det være vanskelig for sistnevnte å gjette denne identifikatoren. Derfor kan et tilfeldig tall betraktes som et godt valg for en anledning.
  • 2. CRC svarer på forespørselen med en melding kryptert med Ka-nøkkelen. Den eneste brukeren som kan motta og lese denne meldingen er A, og derfor kan A være sikker på at denne meldingen kom fra CRC. Meldingen inneholder to elementer beregnet på A:
    • - en engangsøktnøkkel Ks, som vil bli brukt i kommunikasjonsøkten;
    • - den opprinnelige forespørselsmeldingen, inkludert muligheten til å la bruker A matche svaret med den tilsvarende forespørselen.
  • 3. Dermed kan A sørge for at hans opprinnelige forespørsel ikke ble endret på vei til CCC, og muligheten vil ikke tillate å forveksle svaret på denne forespørselen med svaret på noen av de tidligere forespørslene.

Ris. 6.4.

  • 1. I tillegg inneholder meldingen to elementer beregnet på V:
    • - engangsøktnøkkel K., som vil bli brukt i kommunikasjonsøkten;
    • - identifikator for GO A til bruker A (for eksempel hans nettverksadresse).
  • 2. Begge elementene er kryptert med en nøkkel K b(hovednøkkelen brukt i fellesskap av CRC og V), og de skal visstnok sendes etterpå V, for å etablere en forbindelse og identifisere A.
  • 3. Part A lagrer øktnøkkelen for den kommende kommunikasjonsøkten og sender den til parten V informasjon mottatt fra CDC og beregnet på V(nemlig informasjon Ek [K L || GO A]). Siden denne informasjonen er kryptert ved hjelp av K b, hun er beskyttet. Nå mottakeren V kjenner øktnøkkelen (K s) og vet at informasjonen som ble mottatt kom fra CRC (siden denne informasjonen viser seg å være kryptert med Kb-nøkkelen).

På dette tidspunktet er øktnøkkelen levert til både side A og side V, og derfor kan de starte en sikker utveksling av data. Men før det er det tilrådelig å utføre ytterligere to operasjoner.

  • 1. Ved å bruke sesjonsnøkkelen K oppnådde nettopp, for kryptering, partiet V sender side A en ny mulighet L /
  • 2. Ved å bruke den samme tasten K s, returnerer side A som svar / (N2 ), hvor / er en funksjon som utfører noen transformasjon N2 (for eksempel å legge til en).

Disse handlingene er utformet for å overbevise adressaten V det faktum at meldingen han opprinnelig mottok (s. 3) ikke ble gjengitt.

Det skal bemerkes at prosessen med å overføre selve nøkkelen faktisk utføres i klausuler 1-3, og klausuler 4 og 5, samt i del og klausul 3, er utformet for å gi en autentiseringsfunksjon.