Delat protokoll för hemlig nyckelfördelning. Hierarki av viktig information


Anteckning: I tidigare föreläsningar diskuterade vi symmetrisk nyckel och asymmetrisk nyckelkryptografi. Vi har dock ännu inte diskuterat hur krypteringsnycklar i symmetrisk nyckelkryptografi och offentliga nycklar i asymmetrisk nyckelkryptografi distribueras och underhålls. Denna föreläsning behandlar dessa två frågor. Först talar vi om symmetrisk nyckeldistribution med hjälp av en pålitlig tredje part. För det andra visar vi hur två parter kan upprätta en symmetrisk nyckel mellan sig utan att använda en pålitlig tredje part. För det tredje tittar vi på Kerberos -systemet, KDC: er och protokollet för autentisering av objekt. För det fjärde kommer vi att diskutera certifiering av offentliga nycklar med hjälp av certifieringsmyndigheter (CA) baserat på rekommendationen X.509. Slutligen tar vi en snabb titt på tanken bakom Public Key Infrastructure (PKI) och diskuterar några av dess driftsätt.

5.1. Distribution med symmetriska tangenter

För kryptering av stora meddelanden är symmetrisk nyckelkryptografi mer effektiv än asymmetrisk nyckelkryptografi. Symmetrisk nyckelkryptografi behöver dock en säkerhetsnyckel som används av båda parter.

Om Alice ska utbyta konfidentiella meddelanden med N -personer behöver hon N olika nycklar. Vad händer om N -personer måste kommunicera med varandra? Då krävs det totala antalet nycklar N (N - l). Om vi ​​låter Alice och Bob använda två identiska nycklar för dubbelriktad kommunikation för båda riktningarna, behövs bara N (N - 1) / 2 nycklar. Detta skulle innebära att om en miljon människor kommunicerar med varandra har varje person nästan en miljon olika nycklar. Totalt behövs nästan en biljon nycklar. Detta kallas N-problemet eftersom antalet nödvändiga nycklar för N-objekt är N 2.

Antalet nycklar är inte det enda problemet; nyckelfördelning- ett annat problem. Alice och Bob vill kontakta varandra. De behöver ett sätt att utbyta krypteringsnycklar. Om Alice vill kontakta en miljon människor, hur kan hon byta en miljon nycklar med en miljon människor? Att använda Internet är helt klart inte säker metod... Uppenbarligen behöver vi ett effektivt sätt att underhålla och distribuera sekretessnycklar.

Key Distribution Center: KDC

En praktisk lösning är att anlita en pålitlig tredje part. Det heter här nyckeldistributionscenter (KDC - Key -Distribution Center)... För att minska antalet nycklar skapar varje person en offentlig krypteringsnyckel med KDC, som visas i figur 1. 5.1.


Ris. 5.1.

En sekretessnyckel upprättas mellan KDC och varje medlem i samhället. Alice har en hemlig nyckel med KDC, som vi kallar K Alice. Bob har en hemlig nyckel från KDC, som vi kallar K Bob. Nu är frågan hur Alice kan överföra ett konfidentiellt meddelande till Bob. Processen är följande:

  1. Alice skickar en förfrågan till KDC - ett uttalande om att hon behöver en session (tillfälligt) och en sekretessnyckel mellan sig själv och Bob.
  2. KDC informerar Bob om Alices begäran.
  3. Om Bob håller med skapas en sessionsnyckel mellan dem.

Krypteringsnyckeln mellan Alice och Bob, som är etablerad från KDC, används för att autentisera Alice och Bob till KDC och hindra Eve från att efterlikna någon av dem. Vi kommer att diskutera senare i detta kapitel hur sessionsnyckeln etableras mellan Alice och Bob.

När antalet personer som använder KDC ( Viktigt distributionscenter) ökar, blir systemet oöverskådligt och dess flaskhals utlöses - antalet nycklar kan ta slut. För att lösa problemet måste vi ha många KDC: er. Vi kan dela in världen i områden. Varje domän kan ha en eller flera KDC: er (för redundans vid ett fel). Om Alice nu vill skicka ett konfidentiellt meddelande till Bob, som tillhör en annan domän, kontaktar hon sin KDC, som i sin tur kontaktar KDC på Bobs domän. Två KDC: er kan skapa en sekretessnyckel mellan Alice och Bob.

Nyckelhantering

Förutom att välja ett kryptografiskt system som är lämpligt för en viss IC, är en viktig fråga nyckelhantering. Oavsett hur komplext och tillförlitligt själva kryptosystemet är det baserat på användning av nycklar. För att säkerställa konfidentiellt informationsutbyte mellan två användare är nyckelutbytesprocessen trivial, så i IS, där antalet användare är tiotals och hundratals, är nyckelhantering ett allvarligt problem.

Under nyckelinformation uppsättningen av alla nycklar som arbetar i IS förstås. Om en tillförlitlig kontroll av nyckelinformation inte säkerställs, får en angripare obegränsad tillgång till all information efter att ha tagit den i besittning.

Nyckelhantering- informationsprocess, som innehåller tre delar:

* generering av nycklar;

* ackumulering av nycklar;

* fördelning av nycklar.

Låt oss överväga hur de ska implementeras för att säkerställa säkerheten för viktig information i IS.

Genererar nycklar

I början av samtalet om kryptografiska metoder sa man att man inte ska använda icke-slumpmässiga nycklar för att göra dem lätta att komma ihåg. Seriella IC: er använder speciella hård- och mjukvarumetoder för att generera slumpmässiga nycklar. Som regel används PSC -sensorer. Graden av slumpmässighet i deras generation bör dock vara tillräckligt hög. De ideala generatorerna är enheter baserade på "naturliga" slumpmässiga processer. Till exempel fanns det serieprover av nyckelgenerering baserat på vitt radiobrus... Ett annat slumpmässigt matematiskt objekt är decimaler och rationella tal, till exempel eller e som beräknas med hjälp av matematiska standardmetoder.

I IS med genomsnittliga säkerhetskrav är mjukvarunyckelgeneratorer ganska acceptabla, som beräknar PRNG som en komplex funktion av den aktuella tiden och (eller) det antal som användaren har angett.

Ackumulering av nycklar

Under ackumulering av nycklar betyder organisering av deras lagring, redovisning och bortskaffande.

Eftersom nyckeln är det mest attraktiva objektet för angriparen, som öppnar vägen för konfidentiell information för honom, bör särskild uppmärksamhet ägnas åt frågorna om nyckelackumulering.

Hemliga nycklar ska aldrig skrivas uttryckligen på media som kan läsas eller kopieras.

I ett ganska komplext IS kan en användare arbeta med en stor mängd nyckelinformation, och ibland blir det till och med nödvändigt att organisera minidatabaser för nyckelinformation. Sådana databaser är ansvariga för att acceptera, lagra, spela in och ta bort nycklarna som används.

Så, varje information om nycklarna som används måste lagras i krypterad form. Nycklar som krypterar nyckelinformation kallas huvudnycklar... Det är önskvärt att varje användare känner huvudnycklarna utantill och inte lagrar dem alls på material.

En mycket viktig förutsättning för informationssäkerhet är den regelbundna uppdateringen av nyckelinformation i IS. I detta fall måste både vanliga nycklar och huvudnycklar tilldelas om. I särskilt ansvarsfulla informationssystem är det lämpligt att uppdatera nyckelinformation dagligen.

Frågan om uppdatering av nyckelinformation är också associerad med det tredje elementet i nyckelhantering - distribution av nycklar.

Nyckelfördelning

Nyckelfördelning är den mest kritiska processen vid nyckelhantering. Den har två krav:
  1. Distributionens effektivitet och noggrannhet
  2. Sekretessen för de delade nycklarna.
Nyligen har det skett en märkbar förskjutning mot användningen av öppna nyckelkryptosystem, där problemet med nyckeldistribution försvinner. Ändå kräver distributionen av nyckelinformation i IS nya effektiva lösningar.

Fördelning av nycklar mellan användare genomförs på två olika sätt:

  1. Genom att skapa ett eller flera viktiga distributionscenter. Nackdelen med detta tillvägagångssätt är att distributionscentralen vet till vilka och vilka nycklar som tilldelas, och detta gör det möjligt att läsa alla meddelanden som cirkulerar i IS. Potentiellt missbruk påverkar skyddet avsevärt.
  2. Direkt nyckelutbyte mellan användare av informationssystemet.
I det här fallet är utmaningen att på ett tillförlitligt sätt autentisera ämnena.

I båda fallen måste äktheten i kommunikationssessionen garanteras. Detta kan uppnås på två sätt:

  1. Begäran-svar-mekanism, vilket är följande. Om användare A vill vara säker på att meddelandena han får från B inte är falska, inkluderar han ett oförutsägbart element (begäran) i meddelandet som skickas till B. Vid svar måste användare B utföra någon åtgärd på detta element (till exempel lägga till 1). Detta kan inte göras i förväg, eftersom det inte är känt vilket slumptal som tas emot i begäran. Efter att ha fått ett svar med resultaten av åtgärderna kan användare A vara säker på att sessionen är äkta. Nackdelen med denna metod är möjligheten att upprätta ett om än komplext mönster mellan en begäran och ett svar.
  2. Tidsstämpelmekanism ("tidsstämpel"). Det betyder att man fastställer en tid för varje meddelande. I det här fallet kan varje IS -användare veta hur "gammalt" det mottagna meddelandet är.
I båda fallen bör kryptering användas för att säkerställa att svaret inte skickades av en angripare och att tidsstämpeln inte har ändrats.

När du använder tidsstämplar finns det ett problem med det acceptabla tidsfördröjningsintervallet för att verifiera sessionens äkthet. Ett meddelande med en "tidsstämpel" kan i princip inte överföras direkt. Dessutom kan mottagarens och avsändarens datorklockor inte synkroniseras absolut. Vad är fördröjningen av "stämpeln" för att betraktas som misstänkt.

Därför, i riktiga IC: er, till exempel i kreditkortsbetalningssystem, är det den andra mekanismen för autentisering och skydd mot förfalskning som används. Intervallet som används är från en till flera minuter. Ett stort antal kända metoder för att stjäla elektroniska pengar är baserade på att "klämma" in i denna lucka med förfalskade begäranden om att ta ut pengar.

För nyckelutbyte kan man använda kryptosystem med offentliga nycklar som använder samma RSA -algoritm.

Men Diffie-Hellman-algoritmen visade sig vara mycket effektiv, vilket gör att två användare kan byta ut en nyckel utan mellanhänder, som sedan kan användas för symmetrisk kryptering.

Diffie-Hellman algoritm

Diffie och Hellman föreslog att skapa kryptografiska system med öppna nycklar diskret exponentieringsfunktion.

Irreversibiliteten för transformationen i detta fall säkerställs av det faktum att det är ganska enkelt att beräkna den exponentiella funktionen i ett ändligt Galois -fält som består av sid element. ( sid- antingen ett primtal eller enkelt i någon grad). Beräkningen av logaritmer inom sådana områden är en mycket mer mödosam operation.

Om y= x, 1<x<sid-1, där är ett fast element i fältet GF (p), då x= se g y ovan GF (p)... Har x, det är lätt att beräkna y... Detta kommer att kräva 2 ln ( x+y) multiplikationsoperationer.

Omvänd beräkningsproblem x från y kommer att vara svårt nog. Om sid väljs tillräckligt, för att extrahera logaritmen kräver beräkningar som är proportionella mot

L (p) = exp((ln sid I ln sid) 0.5 }

För att utbyta information väljer den första användaren ett slumpmässigt tal x 1, utrustad med heltal 1 ... sid-1. Han håller detta nummer hemligt och skickar numret till en annan användare

y 1 = x mod sid

Den andra användaren agerar på samma sätt och genererar x 2 och beräkning y 2 genom att skicka den till den första användaren. Som ett resultat kan de beräkna k 12 = x 1 x 2 mod sid.

För att beräkna k 12, den första användaren bygger y 2 till makten x 1. Den andra användaren gör detsamma. Således har båda användarna en gemensam nyckel. k 12, som kan användas för att kryptera information med konventionella algoritmer. Till skillnad från RSA -algoritmen tillåter denna algoritm inte att kryptera själva informationen.

Utan att veta x 1 och x 2 kan en angripare försöka beräkna k 12 känner bara till de avlyssnade y 1 och y 2. Likvärdigheten mellan detta problem och problemet med att beräkna diskettloggen är en stor och öppen fråga i offentliga nyckelsystem. Någon enkel lösning har hittills inte hittats. Så, om för direktomvandling av 1000 -bitars primtal krävs 2000 operationer, för invers transformation (beräkning av logaritmen i Galois -fältet) - cirka 10 30 operationer krävs.

Som du kan se, för enkelheten i Diffie-Hellman-algoritmen, är dess andra nackdel jämfört med RSA-systemet frånvaron av en garanterad nedre gräns för nyckelöppningens komplexitet.

Dessutom, även om den beskrivna algoritmen låter dig kringgå problemet med dold nyckelöverföring, kvarstår behovet av autentisering. Utan ytterligare medel kan en av användarna inte vara säker på att han har bytt nycklar med exakt den användare han behöver. Risken för imitation kvarstår i detta fall.

Som en generalisering av vad som har sagts om fördelningen av nycklar bör följande sägas. Uppgiften att hantera nycklar reduceras till att hitta ett sådant nyckeldistributionsprotokoll som skulle ge:

* Möjlighet att vägra från distributionscentralen för nycklar;

* ömsesidig bekräftelse av äktheten hos deltagarna i sessionen;

* Bekräftelse av äktheten av sessionen med begäran-svar-mekanismen, användning av programvara eller hårdvara för detta;

* använder det minsta antalet meddelanden för nyckelutbyte.

Med traditionell kryptering måste båda parter som deltar i utbytet av data få samma nyckel som andra användare nekas åtkomst till. I detta fall krävs vanliga nyckeländringar vanligtvis för att minska mängden data som går förlorad om någon av nycklarna blir känd för fienden.

Därför beror tillförlitligheten för alla kryptografiska system till stor del på viktiga distributionssystem, vilket är ett sätt att leverera nycklar till två parter som planerar att utbyta data, vilket hindrar andra från att se dessa nycklar.

För båda sidor, A och V, som anges nedan kan nyckeldistribution organiseras på olika sätt:

  • 1. Nyckeln kan väljas vid sida A och fysiskt levereras till sidan V.
  • 2. Nyckeln kan väljas av en tredje part och levereras fysiskt till deltagare A och V.
  • 3. Om deltagarna i utbytet A och V redan använder någon gemensam nyckel, kan en av parterna överföra den nya nyckeln till den andra parten i krypterad form med den gamla nyckeln.
  • 4. Om båda sidor A och V har kryptografiskt säkra kommunikationskanaler med tredje part C, då kan den senare leverera nyckeln till deltagare A och V genom dessa säkra kanaler.

Alternativ 1 och 2 innebär hand-till-hand-överföring av nyckeln. Med kanalkryptering kan detta krav vara ganska rimligt, eftersom alla kanalkrypteringsanordningar förväntar sig att endast utbyta data med motsvarande enhet i andra änden av kanalen.

Men vid end-to-end-kryptering är fysisk nyckelleverans praktiskt taget oacceptabel. I alla distribuerade system kan varje huvudnod eller terminal kommunicera med många andra masters och terminaler. Därför kommer varje sådan enhet att kräva många nycklar, som måste levereras dynamiskt. Problemet visar sig vara mycket svårt att lösa, särskilt när det gäller stora globalt distribuerade system.

Problemets storlek beror på antalet kontaktande par som måste servas. Om end-to-end-kryptering utförs i nätverket eller IP-lagret krävs en nyckel för varje par värdar i nätverket som kommunicerar. Därför, om det finns N ledande noder, kommer antalet nödvändiga nycklar att vara lika med / 2. Om kryptering utförs på applikationsnivå krävs en egen nyckel för varje par användare eller processer som går i kommunikation. Dessutom kan ett nätverk ha hundratals värdar och tusentals användare och processer. I fig. 6.2 i fallet med end-to-end-kryptering visas beroende av komplexiteten hos nyckeldistributionsproblemet på antalet par som är inblandade i datautbyte. Till exempel, i ett nätverk med 1000 noder där kryptering utförs på nodnivå, kommer det sannolikt att finnas ungefär en halv miljon nycklar som ska distribueras. Och om ett sådant nätverk stöder cirka 10 000 applikationer, kan applikationskryptering kräva distribution av cirka 50 miljoner nycklar.

Ris. 6.2.

När vi återvänder till listan över nyckeldistributionsmetoder noterar vi att metod 3 är möjlig för både kanalkryptering och end-to-end-kryptering, men om motståndaren någonsin lyckas få åtkomst till en av nycklarna, kommer han att kunna få alla efterföljande. Dessutom måste den initiala distributionen av potentiellt miljoner nycklar fortfarande göras.

För end-to-end-kryptering används ett schema i stor utsträckning, vilket är en variant av metod 4. I detta schema är ett nyckeldistributionscenter ansvarigt för att leverera nycklar till par av användare (ledande noder, processer, applikationer). I det här fallet måste varje användare få sin egen unika nyckel, som han använder tillsammans med nyckeldistributionscentret för att organisera leveransen av nycklar.

Ris. 6.3.

Användningen av ett centralt distributionscenter förutsätter att en viss hierarki organiseras. I en minimal konfiguration innehåller en sådan hierarki två nivåer (figur 6.3). Kommunikation mellan slutsystem krypteras med en tillfällig nyckel, ofta kallad en sessionsnyckel. Normalt används sessionsnyckeln endast för en specifik logisk anslutning, till exempel en virtuell krets, eller för att transportera data, varefter denna nyckel inte längre används. Sessionsnyckeln erhålls från nyckeldistributionscentralen genom samma sätt att leverera data i nätverket, som används för att organisera kommunikation mellan slutanvändare. Följaktligen överförs sessionsnycklar i krypterad form, och för kryptering används en huvudnyckel, vilket är vanligt för nyckeldistributionscentret och detta slutsystem eller en specifik användare.

En unik huvudnyckel skapas för varje slutsystem eller slutanvändare och delas med nyckeldistributionscentret. Naturligtvis måste dessa huvudnycklar också distribueras på något sätt. Detta problem är dock mycket enklare i komplexitet. Som nämnts kräver N -objekt som utbyter data i par / 2 sessionsnycklar. Och bara N huvudnycklar krävs, en för varje objekt. Därför kan huvudnycklar tilldelas på något icke-kryptografiskt sätt, till exempel genom fysisk leverans till adressaten.

Nyckeldistribution kan implementeras på olika sätt. Ett typiskt scenario visas i fig. 6.4. Detta scenario förutsätter att varje användare har en unik huvudnyckel som delas med ett Key Distribution Center (KDC).

Antag att användare A avser att skapa en logisk anslutning med användare B och att en engångsnyckel krävs för att skydda data som ska överföras under denna anslutning.

I detta fall har användaren A en hemlig nyckel Ka, som bara är känd för honom och CRC, och på samma sätt som B använder huvudnyckeln K c, gemensam med CRC.

Informationsutbytessystemet är enligt följande.

  • 1. Initiativtagare A skickar en begäran till CRC om att få en sessionsnyckel för att skydda den logiska förbindelsen med B. Meddelandet som skickas i detta fall bör innehålla information som gör att A och B kan identifieras unikt, liksom någon identifierare N1, unik för denna begäran, brukar kallas ett fall (popse -given case, given time (eng.)). Sådana identifierare kan vara aktuell tid, någon räknare eller ett slumpmässigt tal - åtminstone måste denna identifierare vara unik för varje begäran. För att förhindra att en motståndare manipulerar meddelandet måste det dessutom vara svårt för motståndaren att gissa identifieraren. Därför kan ett slumpmässigt tal anses vara ett bra val för ett tillfälle.
  • 2. CRC svarar på begäran med ett meddelande krypterat med Ka -tangenten. Den enda användaren som kan ta emot och läsa detta meddelande är A, och därför kan A vara säker på att detta meddelande kom från CRC. Meddelandet innehåller två element avsedda för A:
    • - en engångssessionsknapp K, som kommer att användas i kommunikationssessionen;
    • - det ursprungliga förfrågningsmeddelandet, inklusive möjligheten att låta användare A matcha svaret med motsvarande begäran.
  • 3. Således kan A se till att hans första begäran inte ändrades på vägen till CCC, och möjligheten tillåter inte att förväxla svaret på denna begäran med svaret på någon av de tidigare förfrågningarna.

Ris. 6.4.

  • 1. Dessutom innehåller meddelandet två element avsedda för V:
    • - enstaka sessionsnyckel K. y, som kommer att användas i kommunikationssessionen;
    • - identifierare för GO A för användare A (till exempel hans nätverksadress).
  • 2. Båda objekten är krypterade med en nyckel K b(huvudnyckeln som används gemensamt av CRC och V), och de ska skickas efteråt V, för att upprätta en anslutning och identifiera A.
  • 3. Part A sparar sessionsnyckeln för den kommande kommunikationssessionen och skickar den till festen V information som mottagits från CDC och är avsedd för V(nämligen information Ek [K L || GO A]). Eftersom denna information är krypterad med K b, hon är skyddad. Nu mottagaren V känner till sessionsnyckeln (K) och vet att den mottagna informationen kom från CRC (eftersom denna information visar sig vara krypterad med Kb -nyckeln).

Vid denna tidpunkt levereras sessionsnyckeln till både sida A och sida V, och så kan de starta ett säkert utbyte av data. Men innan det är det lämpligt att utföra ytterligare två operationer.

  • 1. Med hjälp av sessionsnyckeln K just mottagen, för kryptering, partiet V skickar sida A ett nytt tillfälle L /
  • 2.Använd samma tangent K s, sida A som svar returnerar / (N2 ), där / är en funktion som utför någon transformation N2 (till exempel att lägga till en).

Dessa åtgärder är utformade för att övertyga adressaten V det faktum att meddelandet som han ursprungligen fick (s. 3) inte återgavs.

Det bör noteras att processen för överföring av själva nyckeln faktiskt utförs i punkterna 1-3, och punkterna 4 och 5, liksom delvis i punkt 3, är utformade för att tillhandahålla en autentiseringsfunktion.

Detta tillvägagångssätt skapar en slags ond cirkel: för att dela hemligheten (det överförda meddelandet) måste avsändaren och mottagaren redan ha en delad hemlighet (krypteringsnyckel). Tidigare löstes detta problem med en icke -kryptografisk metod - genom att överföra en nyckel via kommunikationskanaler som är fysiskt skyddade från avlyssning (fig. 1). Men skapandet av en sådan kanal och dess underhåll i operativ beredskap vid ett akut behov av att överföra nyckeln är en ganska mödosam och kostsam affär.

Ris. 1.

Problemet löstes framgångsrikt inom ramen för modern kryptografi som uppstod för lite mer än ett kvarts sekel sedan, "så kallad, i motsats till" traditionell kryptografi "som redan var känd vid den tiden. Lösningen är att använda asymmetriska (tvånycklade) chiffer eller nyckeldistributionsscheman över öppna kommunikationskanaler.

I det första fallet utförs procedurerna för - och dekryptering på olika nycklar, så det är inte nödvändigt att hålla krypteringsnyckeln hemlig. Men på grund av extremt låga effektivitetsegenskaper och känslighet för vissa speciella typer av attacker, visade sig sådana chiffer vara till liten nytta för att stänga direkt användarinformation. Istället används asymmetriska chiffer som en del av kombinerade scheman, när en datamängd krypteras med en symmetrisk chiffer på en engångsnyckel, som i sin tur är krypterad med en tvånyckelschiffer och i denna form överförs tillsammans med data.

Nyckeldistributionsscheman över öppna kommunikationskanaler löser samma problem på ett något annorlunda sätt: under en interaktionssession genererar två korrespondenter en delad hemlig nyckel, som sedan används för att kryptera den överförda datan med en symmetrisk chiffer. Dessutom avlyssnar informationen i kanalen under en session för att generera en sådan nyckel inte fienden möjligheten att själva få nyckeln: K = K (X, Y) är inte beräknbar (fig. 2).


Ris. 2.

Asymmetriska kryptografiproblem

Från och med idag löser asymmetrisk kryptografi framgångsrikt problemet med nyckeldistribution över öppna kommunikationskanaler. Det finns dock flera frågor som väcker vissa bekymmer för dess framtid. Säkerheten för alla asymmetriska kryptografiska system är baserad på omöjligheten med effektiv beräkningslösning av ett antal sådana matematiska problem (så kallade NP-problem), såsom faktorisering (faktorisering) av stora tal och logaritm i stora diskreta fält. Men den angivna omöjligheten är bara ett antagande, som kan vederläggas när som helst om motsatt hypotes bevisas, nämligen NP = P. Detta skulle leda till att all modern kryptografi kollapsar, eftersom problemen på vars olöslighet den är baserad är ganska nära besläktade, och att bryta till och med ett kryptosystem skulle innebära att de flesta andra bryts. Intensiv forskning bedrivs i denna riktning, men problemet är fortfarande öppet.

Ett annat hot mot moderna kryptosystem kommer från de så kallade kvantdatorerna - informationsbehandlingsenheter byggda på kvantemekanikens principer, vars idé först föreslogs av den berömda amerikanska fysikern R. Feynman. År 1994 föreslog P. Shor en faktoriseringsalgoritm för en kvantdator som möjliggör factoring av ett tal i en tid som beror polynomt på talets storlek. Och 2001 implementerades denna algoritm framgångsrikt på den första fungerande prototypen av en kvantdator skapad av specialister från IBM och Stanford University.

Enligt experter kan en kvantdator som kan bryta RSA-kryptosystemet skapas om cirka 15-25 år.

Ett annat obehagligt faktum i asymmetriska kryptosystem är att den minsta "säkra storleken" på nycklar ständigt växer på grund av framsteg inom det relevanta området. Under hela detta århundradets historia av sådana system har det vuxit med cirka 10 gånger, medan nyckelstorleken under samma period för traditionella symmetriska chiffer har förändrats mindre än två gånger.

Allt ovanstående gör att de långsiktiga utsikterna för asymmetriska kryptografisystem inte är helt tillförlitliga och tvingar oss att leta efter alternativa sätt att lösa samma problem. Några av dem kan lösas inom ramen för den så kallade kvantkryptografin, eller kvantkommunikationen.

Elliptiska kurvor är ett matematiskt objekt som kan definieras över alla fält (ändligt, verkligt, rationellt eller komplext). Ändliga fält används vanligtvis inom kryptografi. En elliptisk kurva är en uppsättning punkter (x, y), uppfyller följande ekvation:

y 2 = x 3 + ax + b,

och även punkten i det oändliga. För punkter på en kurva är det ganska enkelt att införa additionsoperationen, som spelar samma roll som multiplikationsoperationen i RSA- och ElGamal -kryptosystem.

I verkliga kryptosystem baserade på elliptiska ekvationer används ekvationen

y 2 = x 3 + ax + b mod p,

var R- enkelt.

Det diskreta logaritmproblemet på en elliptisk kurva är följande: givet en punkt G på en elliptisk kurva av ordning r (antalet punkter på kurvan) och en annan punkt Y på samma kurva. Jag måste hitta den enda poängen x så att Y = x G, det vill säga Y är NS-grad G.

Öppna nyckeldistribution

Hittills har fördelarna med krypteringsmetoder för offentliga nycklar inte varit uppenbara. Men på grundval av dem är det enkelt att lösa problemet med att generera en gemensam hemlig nyckel för en kommunikationssession för alla par av användare av informationssystemet. Tillbaka 1976 föreslog Diffie och Hellman ett distributionsprotokoll för offentliga nycklar för detta. Det innebär att var och en av de par som kommunicerar användare oberoende genererar sitt eget slumptal, omvandlar det med hjälp av någon procedur, utbyter de konverterade numren över en öppen kommunikationskanal och beräknar en gemensam hemlig nyckel baserat på informationen som mottagits från partnern under kommunikation. Varje sådan nyckel existerar bara under en kommunikationssession eller till och med en del av den. Således tillåter öppen distribution av nycklar varje par användare av systemet att generera sin egen delade hemlighet själva, vilket förenklar förfarandet för distribution av hemliga nycklar. Även om allt inte är så enkelt - det faktum att prenumeranter inte har en förfördelad delad hemlig nyckel före en kommunikationssession, tillåter dem i princip inte att verifiera varandras äkthet genom att utbyta meddelanden över en öppen kanal. Till exempel kan du skicka nycklar med hjälp av ElGamal -algoritmen som beskrivits ovan som modifierad av Shamir, men hur kan du se till att du har att göra med en partner och inte en avlyssningsman? För att bekräfta äktheten måste var och en av deltagarna i det hemliga nätverket fortfarande ha sin egen hemliga nyckel, som bara är känd för honom och skiljer honom från alla andra prenumeranter. I detta fall kommer Diffie-Hellman-algoritmen att tillhandahålla ett sådant förfarande för att presentera ett lösenord att dess upprepade användning inte minskar tillförlitligheten för bevis på ägarens äkthet. Som ett resultat separeras sådana två funktioner hos en delad hemlig nyckel, vanligtvis levererad över en hemlig kanal, såsom att skydda information i kommunikationskanalen från en tredje part och bekräfta identiteten för var och en av abonnenterna till en partner.

Distributionsalgoritmen för Diffie-Hellman offentliga nycklar ser ut så här:

    Låt det finnas två prenumeranter på ett öppet nätverk A och B känna ett offentligt nyckelpar R och d... Dessutom i A har en hemlig nyckel NS från intervallet (1, n) och kl B har en hemlig nyckel y från samma intervall.

    Abonnent A skickar Bx mod s och prenumeranten B skickar A kryptera din nyckel Z "= D ** y mod s.

    Därefter beräknar de den delade nyckeln Z som Z = Z "** y= Z "" ** x.

Med hjälp av speciella tekniker kan tiden för att generera en delad nyckel i Diffie-Hellman-systemet minskas med 5 gånger jämfört med ElGamal-systemet i Shamirs modifiering och 30 gånger jämfört med RSA på samma säkerhetsnivå. Detta, ur de flesta praktiska tillämpningars synvinkel, visar sig vara en märkbar fördel, eftersom kryptering och dekryptering med RSA -algoritmen är ungefär tusen gånger långsammare än klassiska algoritmer som DES. Observera att för många tillämpningar av offentliga nyckelkryptografiska system spelar beräkningstiden för kryptografiska transformationer inte så stor roll. Till exempel, när man identifierar användare med kreditkort, blir det ingen skillnad om det tar en mikrosekund eller en sekund. Detsamma gäller att välja en delad krypteringsnyckel för ett annat snabbare men inte nyckelutbytes kryptografiskt system.

Behovet i distributionssystem för offentliga nycklar att ha individuella hemliga lösenord distribuerade i förväg från mitten för att bekräfta äktheten hos användare verkar inte vara en så betungande uppgift som produktion och distribution från mitten av de hemliga nyckelparen för kommunikation mellan abonnenter. Giltighetstiden för ett sådant lösenord kan vara betydligt längre än giltighetsperioden för kommunikationsnyckeln, säg ett år, och deras totala antal i kommunikationsnätverket är lika med antalet prenumeranter. Dessutom kan man i vissa typer av kommunikation bekräfta äktheten hos en partner genom att känna igen honom med fysiska tecken. Till exempel med röst vid telefonering eller genom utseende och röst vid kommunikation på tv -kanaler. Det bör noteras att distributionen av nycklar med kryptografiska system med en offentlig nyckel har den enda förtjänsten - behovet av att varje nod av hemlig kommunikation bara har en nyckel. För klassiska symmetriska kryptografiska system bör det finnas lika många nycklar som en nod har prenumeranter. Men offentliga nyckelsystem har svagheter. Så om brytning av en kryptering som innehåller en nyckel i grunden är omöjlig i ett klassiskt system, eftersom klartexten är meningslös och inte innehåller överflödig information, har kryptanalytiker alltid hopp om framgång i system med en offentlig nyckel. Om talet D är vanligt för alla nätverksdeltagare, kommer dess kompromiss, i form av att upptäcka speciella egenskaper som underlättar logaritmen, att leda till kompromiss för hela nätverket. Om D är individuellt för varje par prenumeranter, är det för det första på grund av överflödet av nycklar lättare att hitta en svag bland dem, och för det andra, även om sändning och lagring av oklassificerade nycklar är ojämförligt lättare än hemliga, är det orsakar också mycket besvär. Därför, om en kryptograf har möjlighet att använda tjänsterna från en hemlig kanal, kommer han alltid att föredra det framför en öppen distribution av nycklar.

Av de praktiskt fungerande kommunikationsnät som använder distributionssystemet för allmänna nycklar är det mest allvarligt skyddade det amerikanska statliga telefonnätet baserat på STU-III-enheter. Det började fungera 1987 och har nu mer än 150 tusen prenumeranter. I Ryssland skyddas också ett liknande nätverk, även kallat ATS-1 eller "skivspelare", men det finns hundratals gånger färre prenumeranter där. I början av åttiotalet hade kryptologer förstått fördelarna med så kallade hybridsystem, där förfaranden för kryptering av offentliga nycklar endast används för att överföra nycklar och digitala signaturer. Och den information som måste överföras skyddas av den klassiska DES -algoritmen, vars nyckel överförs med offentlig nyckelkryptering. Den första serienheten av denna typ var Racal-Milgo Datacryptor, som släpptes 1979. Datacryptor -krypteringsnyckelhanteraren är främst utformad för statliga kommunikationsnätverk och har certifierats för att följa den engelska standarden för att skydda känslig men känslig information. Den tillhandahåller signalering av kränkningar av kryptografiska krav och avisering av fel. Denna enhet använder en krypterad kgenom att generera och överföra en delad hemlig nyckel med RSA -algoritmen. I framtiden släpptes många enheter av denna typ för att skydda information. Andra exempel på användning av nya kryptografiska idéer demonstreras av många kommersiella nätverk, särskilt banktjänster som SWIFT. Dessutom används RSA: s digitala signatursystem i verifieringsutrustningen för verifiering av nukleära testbegränsningar, som utvecklades av Sandia Laboratories 1982, BPMIS -nätverket och andra system.







2021 gtavrl.ru.