Kryptering er en reversibel transformation af information for at skjule den for uautoriserede personer og samtidig give autoriserede brugere adgang til dem. Kryptering tjener primært det formål at opretholde fortroligheden af transmitterede oplysninger. Et vigtigt træk ved enhver krypteringsalgoritme er brugen af en nøgle , der godkender valget af en specifik transformation fra sættet af mulige til denne algoritme [1] [2] .
Brugere er autoriseret, hvis de har en bestemt autentisk nøgle . Hele kompleksiteten og faktisk opgaven med kryptering ligger i, hvordan denne proces implementeres. [en]
Generelt består kryptering af to komponenter: kryptering og dekryptering [3] [4] [5] [6] [7] [8] .
Kryptering giver tre tilstande af informationssikkerhed [1] :
For at kunne læse den krypterede information har den modtagende part brug for en nøgle og en dekryptering (en enhed, der implementerer dekrypteringsalgoritmen). Idéen med kryptering er, at en angriber, der har opsnappet krypterede data og ikke har en nøgle til dem, hverken kan læse eller ændre den overførte information. Derudover, i moderne kryptosystemer (med en offentlig nøgle) , kan forskellige nøgler bruges til at kryptere og dekryptere data. Men med udviklingen af kryptoanalyse er der dukket teknikker op, der gør det muligt at dekryptere den hemmelige tekst uden en nøgle. De er baseret på den matematiske analyse af de overførte data [1] [9] .
Kryptering bruges til at lagre vigtig information i upålidelige kilder og overføre dem via usikre kommunikationskanaler . Sådan dataoverførsel omfatter to gensidigt omvendte processer:
Kryptering blev oprindeligt kun brugt til at overføre følsomme oplysninger . Men senere begyndte de at kryptere information for at gemme dem i upålidelige kilder. Kryptering af information med henblik på lagring bruges stadig i dag, dette undgår behovet for fysisk beskyttet lagring [10] [11] .
En chiffer er et par algoritmer, der implementerer hver af disse transformationer. Disse algoritmer anvendes på data ved hjælp afen nøgle. Krypterings- og dekrypteringsnøglerne kan være de samme eller ikke. Hemmeligheden af den anden (dekryptering) af dem gør dataene utilgængelige for uautoriseret adgang, og hemmeligholdelsen af den første (kryptering) gør det umuligt at indtaste falske data. De første krypteringsmetoder brugte de samme nøgler, men i1976blev der udviklet algoritmer ved hjælp af forskellige nøgler. At holde disse nøgler hemmelige og dele dem korrekt blandt modtagere er en meget vigtig opgave for at opretholde fortroligheden af de transmitterede oplysninger. Dette problem udforskes i nøgleledelsesteori (i nogle kilder omtales det somhemmelig deling) [9] .
I øjeblikket er der et stort antal krypteringsmetoder. Dybest set er disse metoder opdelt afhængigt af strukturen af de anvendte nøgler : symmetriske metoder og asymmetriske metoder . Derudover kan krypteringsmetoder have forskellig kryptografisk styrke og behandle input forskelligt - blok chiffere og stream chiffere . Videnskaben om kryptografi er engageret i alle disse metoder, deres skabelse og analyse [12] .
Som nævnt består kryptering af to gensidigt omvendte processer: kryptering og dekryptering. Begge disse processer på det abstrakte niveau kan repræsenteres af matematiske funktioner, som der stilles visse krav til. Matematisk kan de data, der bruges til kryptering, repræsenteres som sæt, som disse funktioner er bygget over. Med andre ord, lad der være to sæt, der repræsenterer dataene - og ; og hver af de to funktioner (kryptering og dekryptering) er en mapping af et af disse sæt til det andet [12] [13] .
Krypteringsfunktion: Dekrypteringsfunktion:Elementerne i disse sæt - og - er argumenterne for de tilsvarende funktioner. Begrebet en nøgle er også allerede inkluderet i disse funktioner. Det vil sige, at den nødvendige nøgle til at kryptere eller dekryptere er en del af funktionen. Dette gør det muligt at betragte krypteringsprocesser på en abstrakt måde, uanset strukturen af de anvendte nøgler. Selvom argumenterne i det generelle tilfælde for hver af disse funktioner er dataene og indtastningsnøglen [2] .
Hvis den samme nøgle bruges til kryptering og dekryptering , klassificeres en sådan algoritme som symmetrisk. Hvis det er algoritmisk svært at få en dekrypteringsnøgle fra krypteringsnøglen, så omtales algoritmen som asymmetrisk, det vil sige algoritmer med en offentlig nøgle [14] .
Kryptografisk styrke er en kryptografisk chiffers egenskab til at modstå kryptoanalyse, det vil sige analyse, der sigter mod at studere chifferen for at dekryptere den. For at studere den kryptografiske stabilitet af forskellige algoritmer blev der oprettet en speciel teori, der overvejer typerne af chiffere og deres nøgler såvel som deres styrke. Grundlæggeren af denne teori er Claude Shannon . Den kryptografiske styrke af en chiffer er dens vigtigste egenskab, som afspejler, hvor vellykket algoritmen løser krypteringsproblemet [15] .
Ethvert krypteringssystem, bortset fra absolut kryptografisk stærke, kan brydes ved en simpel opregning af alle mulige nøgler i dette tilfælde. Men du bliver nødt til at sortere igennem, indtil den eneste nøgle er fundet, der hjælper med at dekryptere chifferteksten . Valget af denne enkelte nøgle er baseret på evnen til at bestemme en korrekt dekrypteret besked. Ofte er denne funktion en anstødssten, når man vælger en nøgle, da når man itererer manuelt, er det nok for en kryptoanalytiker at skelne korrekt dekrypteret tekst, men manuel optælling er meget langsom. Hvis programmet laver iteration, så er det hurtigere, men det er svært for det at vælge den rigtige tekst. Umuligheden af brute-force at knække en absolut krypto-resistent chiffer er også baseret på behovet for at fremhæve i den dekrypterede besked præcis den, der var krypteret i kryptogrammet. Ved at opregne alle mulige nøgler og anvende dem på et fuldstændig sikkert system, vil kryptanalytikeren hente sættet af alle mulige beskeder, der kunne krypteres (det kan også indeholde meningsfulde beskeder). Derudover er processen med udtømmende opregning også langvarig og besværlig.
En anden dekrypteringsmetode er baseret på analyse af opsnappede meddelelser . Denne metode er af stor betydning, da aflytning af beskeder er mulig, hvis angriberen har specialudstyr, som i modsætning til tilstrækkeligt kraftigt og dyrt udstyr til at løse problemer med brute force, er mere tilgængeligt. For eksempel er van Eycks aflytning til en CRT-skærm mulig ved hjælp af en konventionel tv- antenne . Derudover findes der programmer til at opsnappe netværkstrafik ( sniffers ), som også findes i gratis versioner [16] [17] [18] .
Ved analyse af transmitterede meddelelser estimeres den kryptografiske stabilitet af chifferen ud fra muligheden for at indhente yderligere information om den oprindelige meddelelse fra den opsnappede. Evnen til at opnå disse oplysninger er en ekstremt vigtig egenskab ved chifferen, fordi denne information i sidste ende kan tillade en angriber at dekryptere beskeden. I overensstemmelse hermed opdeles chiffer i absolut stærke og tilstrækkeligt stærke [19] [16] .
Claude Shannon estimerede først mængden af sådan information i krypterede meddelelser som følger: [19]
Lad det være muligt at sende en hvilken som helst af beskederne , det vil sige enhver delmængde af sættet . Disse beskeder kan sendes med sandsynlighed hhv. Så kan værdien af informationsentropi tjene som et mål for meddelelsesusikkerhed :
Lad en besked blive sendt , så dens chiffertekst . Efter at have opsnappet den krypterede besked, bliver denne værdi en betinget usikkerhed - betingelsen her er den opsnappede krypterede besked . Den nødvendige betingede entropi er givet af følgende formel:
Her angiver sandsynligheden for, at den oprindelige meddelelse eksisterer , forudsat at resultatet af dens kryptering er .
Dette giver dig mulighed for at indtaste en sådan karakteristik af krypteringsfunktionen (algoritmen) som mængden af information om kildeteksten, som en angriber kan udtrække fra den opsnappede chiffertekst. Den nødvendige egenskab er forskellen mellem den sædvanlige og betingede informationsusikkerhed:
Denne mængde, kaldet gensidig information, er altid ikke-negativ. Dens værdi er en indikator for den kryptografiske styrke af algoritmen. Gensidig information viser, hvor meget usikkerhed der vil falde ved modtagelse af den tilsvarende chiffertekst, og om den bliver sådan, at når et vist antal chiffertekster opsnappes, vil dekryptering af den originale besked blive mulig [20] .
Absolut modstandsdygtige systemerShannons vurdering af krypteringens kryptografiske styrke definerer et grundlæggende krav til en krypteringsfunktion . For den mest krypto-resistente chiffer skal usikkerheden (betinget og ubetinget) ved opsnapning af beskeder være ens for et vilkårligt stort antal opsnappede chiffertekster.
Angriberen vil således ikke være i stand til at udtrække nogen brugbar information om klarteksten fra den opsnappede chiffertekst. En chiffer med denne egenskab kaldes absolut sikker [19] .
For at opretholde entropiernes lighed afledte Shannon krav til absolut stærke krypteringssystemer vedrørende de anvendte nøgler og deres struktur.
Stabiliteten af sådanne systemer afhænger ikke af, hvilke kapaciteter kryptanalytikeren har. Imidlertid er den praktiske anvendelse af absolut sikre kryptosystemer begrænset af overvejelser om omkostningerne ved sådanne systemer og deres bekvemmelighed. Ideelle hemmelige systemer har følgende ulemper:
På grund af kompleksiteten ved at bruge absolut resistente systemer, er de såkaldte tilstrækkeligt resistente systemer mere almindelige overalt . Disse systemer giver ikke entropi-lighed og transmitterer som et resultat sammen med den krypterede besked nogle oplysninger om klarteksten.
Deres kryptografiske styrke afhænger af kryptoanalytikerens beregningsevner. Med andre ord er chifferteksten brudt, hvis kryptanalytikeren har tilstrækkelige ressourcer, såsom tid og antallet af opsnappede meddelelser. Den praktiske stabilitet af sådanne systemer er baseret på deres beregningsmæssige kompleksitet og vurderes udelukkende på et bestemt tidspunkt fra to positioner [22] :
Der er to tilgange til at opnå et højt niveau af praktisk stabilitet af algoritmen [23] :
Disse metoder løser visse problemer og har både fordele og ulemper. Det specifikke valg af den anvendte metode afhænger af de formål, som oplysningerne krypteres til.
Symmetriske kryptosystemer bruger den samme nøgle til kryptering og dekryptering. Deraf navnet - symmetrisk . Algoritmen og nøglen er valgt på forhånd og er kendt af begge parter. At holde nøglen hemmelig er en vigtig opgave for at etablere og vedligeholde en sikker kommunikationskanal. I denne henseende er der et problem med indledende nøgleoverførsel (nøglesynkronisering). Derudover er der metoder til kryptoangreb, der på den ene eller anden måde gør det muligt at dekryptere information uden en nøgle eller ved at opsnappe dem på forhandlingsstadiet. Generelt er disse punkter problemet med den kryptografiske styrke af en bestemt krypteringsalgoritme og er et argument, når du vælger en bestemt algoritme.
Symmetriske og mere specifikt alfabetiske krypteringsalgoritmer var blandt de første algoritmer [24] . Senere blev asymmetrisk kryptering opfundet, hvor samtalepartnernes nøgler er forskellige [25] .
Implementeringsordning
En opgave. Der er to samtalepartnere - Alice og Bob, de ønsker at udveksle fortrolige oplysninger.Ulemperne ved symmetrisk kryptering er problemet med at overføre nøglen til samtalepartneren og manglende evne til at fastslå tekstens ægthed eller forfatterskab. Derfor er for eksempel digital signaturteknologi baseret på asymmetriske skemaer.
I offentlige nøglesystemer bruges to nøgler - offentlige og private, relateret på en bestemt matematisk måde til hinanden. Den offentlige nøgle transmitteres over en åben (det vil sige usikret, tilgængelig for observation) kanal og bruges til at kryptere beskeden og til at verificere den digitale signatur. En hemmelig nøgle bruges til at dekryptere meddelelsen og generere en EDS [26] .
Denne ordning løser problemet med symmetriske skemaer forbundet med den indledende overførsel af nøglen til den anden part. Hvis en angriber i symmetriske skemaer opsnapper nøglen, vil han både være i stand til at "lytte" og foretage ændringer i den overførte information. I asymmetriske systemer får den anden part en offentlig nøgle, der giver dig mulighed for at kryptere, men ikke dekryptere information. Dette løser problemet med symmetriske systemer forbundet med nøglesynkronisering [25] .
De første forskere, der opfandt og afslørede konceptet med open source-kryptering, var Whitfield Diffie og Martin Hellman fra Stanford University og Ralph Merkle fra University of California i Berkeley . I 1976 åbnede deres arbejde "New Directions in Modern Cryptography" et nyt felt inden for kryptografi, nu kendt som public-key kryptografi.
Implementeringsordning
En opgave. Der er to samtalepartnere - Alice og Bob, Alice ønsker at overføre fortrolige oplysninger til Bob.Hvis det er nødvendigt at etablere en kommunikationskanal i begge retninger, så skal de første to operationer udføres på begge sider, så alle kender deres private, offentlige nøgler og samtalepartnerens offentlige nøgle. Hver parts private nøgle transmitteres ikke over en usikker kanal og forbliver derved hemmelig.
Som nævnt tidligere, når du krypterer, er det meget vigtigt at indeholde og distribuere nøgler korrekt mellem samtalepartnere, da dette er det mest sårbare punkt i ethvert kryptosystem. Hvis du og din samtalepartner udveksler oplysninger gennem et ideelt krypteringssystem, så er der altid mulighed for at finde en defekt ikke i det anvendte system, men hos dem, der bruger det. Det er muligt at stjæle nøgler fra en betroet person eller bestikke ham, og ofte er det meget billigere end at bryde en chiffer. Derfor spiller processen, hvis indhold er kompilering og distribution af nøgler mellem brugere, en afgørende rolle i kryptografi som grundlag for at sikre fortroligheden af informationsudvekslingen [27] .
Nøglehåndtering i kryptosystemer udføres i overensstemmelse med sikkerhedspolitikken. Sikkerhedspolitikken dikterer de trusler, som systemet skal imødegå. Nøglekontrolsystemet er opdelt i et nøglegenereringssystem og et nøglekontrolsystem.
Nøglegenereringssystemet sikrer kompileringen af krypto-resistente nøgler. Selve genereringsalgoritmen skal være sikker, da en stor del af sikkerheden ved kryptering ligger i nøglens sikkerhed. Hvis valget af nøgler overlades til brugerne, så er det mere sandsynligt, at de vælger nøgler som "Barney" end "*9(hH/A", simpelthen fordi "Barney" er nemmere at huske. Og den slags nøgler er meget hurtigt opfanget af et ordbogsangreb, og her vil selv den mest sikre algoritme ikke hjælpe.Derudover sikrer genereringsalgoritmen oprettelsen af statistisk uafhængige nøgler af den ønskede længde, ved brug af det mest kryptografisk sikre alfabet [30] .
Nøglekontrolsystemet bruges til den mest sikre overførsel af nøgler mellem samtalepartnere. Hvis du sender krypteringsnøglen over en åben kanal, der kan lyttes til, så kan en angriber nemt opsnappe nøglen, og al yderligere kryptering vil være meningsløs. Asymmetriske krypteringsmetoder løser dette problem ved at bruge forskellige nøgler til kryptering og dekryptering. Men med denne tilgang vokser antallet af nøgler med stigningen i antallet af samtalepartnere (alle er tvunget til at gemme deres private og offentlige nøgler og alle samtalepartneres offentlige nøgler). Derudover er asymmetriske krypteringsmetoder ikke altid tilgængelige og gennemførlige. I sådanne situationer bruges forskellige metoder til at sikre sikker levering af nøgler: nogle er baseret på brugen af alternative kanaler til nøgleudlevering, som anses for sikre. Andre, i overensstemmelse med X9.17-standarden, bruger to typer nøgler: nøglekrypteringsnøgler og datakrypteringsnøgler. Atter andre deler den transmitterede nøgle i dens komponenter og sender dem gennem forskellige kanaler. Der er også forskellige kombinationer af metoderne nævnt ovenfor [31] .
Derudover fungerer nøglehåndteringssystemet, når der er et stort antal brugte nøgler, som en central nøgleserver, der gemmer og distribuerer dem. Især er hun engageret i rettidig udskiftning af kompromitterede nøgler. I nogle systemer kan sessionsnøgler bruges til hurtig kommunikation. Sessionsnøglen er en krypteringsnøgle, der kun bruges til én kommunikationssession. Når en session afsluttes eller afsluttes, ødelægges sessionsnøglen. Desuden har de anvendte nøgler normalt en udløbsdato, det vil sige den periode, hvor de er autentiske til brug. Efter udløbet af denne periode trækkes nøglen tilbage af kontrolsystemet, og om nødvendigt genereres en ny [27] .
Udviklingen af kryptering og dens metoder har ført til udbredt brug. Nu er det ikke svært for slutbrugeren at kryptere en partition på en harddisk eller korrespondance og etablere en sikker forbindelse til internettet. På grund af det faktum, at kryptering og andre informationsteknologier trænger ind i vores hverdag, vokser antallet af computerforbrydelser. Krypteret information er på den ene eller anden måde et beskyttelsesobjekt, som igen skal være underlagt lovregulering. Derudover er sådanne reguleringer nødvendige, fordi der er en vis spænding mellem regeringernes ønske om at have adgang til information (af sikkerhedshensyn og for at forhindre kriminalitet) og borgernes ønske om at yde et højt beskyttelsesniveau for deres virkelig hemmelige oplysninger. For at løse dette problem gribes der til forskellige metoder: dette er et muligt forbud mod brugen af yderst effektive krypteringsmetoder og kravet om at overføre krypteringsnøgler til de kompetente myndigheder. Forskelle i reglerne og restriktioner for kryptering af computeroplysninger kan skabe visse vanskeligheder i erhvervslivets internationale kontakter med hensyn til at sikre fortroligheden af deres kommunikation. I denne henseende er adfærden i forbindelse med overførsel og kryptering af information i enhver stat reguleret af forskellige juridiske normer [32] .
Symmetriske kryptosystemer | |
---|---|
Stream-cifre | |
Feistel netværk | |
SP netværk | |
Andet |