En introduktion till grunderna för moderna symmetriska nyckelchiffer. Datakrypteringsmetoder - webbprogrammerarblogg

Förra gången bekantade du dig med de stora och fruktansvärda inhemska chifferna. Detta var en mycket svår läxa, eftersom dessa kryptosystem skyddar statshemligheter. Kan du berätta för mig var det blir mer sofistikerat? Men här, snälla! Faktum är att du inte borde vara rädd, den här gången kommer vi inte att dyka så djupt in i matematik och överväga krypteringslägen - du har redan lärt dig deras principer (eller inte). Låt oss gå igenom de främsta utländska chiffern och se hur de används i praktiken.

Färdkarta

Detta är den fjärde lektionen i "Dive into Crypto"-serien. Alla lektioner i serien i kronologisk ordning:

  • Grundläggande och historiska kodare. Hur shift, substitution, Richard Sorge, Vernam och chiffermaskiner fungerar (och analyseras)
  • Vad är det, hur går nyckelfördelningen till och hur man väljer en stark nyckel
  • Vad är Feistel-nätverket och vad används de inhemska blockchiffrorna i moderna protokoll, - GOST 28147-89, "Gräshoppa"
  • Lektion 4. Moderna utländska chiffer. Vad är skillnaden mellan 3DES, AES, Blowfish, IDEA, Threefish av Bruce Schneier och hur de fungerar (är du här)
  • Typer av elektroniska signaturer, hur de fungerar och hur man använder dem
  • Lektion 6. Kvantkryptografi. Vad är det, var används det och hur hjälper det att distribuera hemliga nycklar, generera slumptal och elektronisk signatur

3DES

Så, först i en serie utländska chiffer, låt oss överväga 3DES, eller snarare dess närmaste släkting DES (Data Encryption Standard), som, även om den inte längre används som sådan, är förfadern till 3DES.

DES utvecklades av ett team av matematiker vid IBM Research Laboratory, som inkluderade den redan välbekanta Feistel. Den första versionen av chiffret fick namnet "Lucifer", men den modifierades senare och antogs så småningom som den officiella datakrypteringsalgoritmen (DEA). Den förblev världsstandarden i över tjugo år innan den ersattes av Triple DES.

Låt oss titta på hur algoritmen fungerar DES-kryptering. För att göra detta måste du komma ihåg driften av Feistel-nätverket. DES är ett 16-rundt Feistel-nätverk med symmetriska krypteringsnycklar. Längden på textblocket är 64 bitar, längden på den runda nyckeln är 48 bitar. Så låt oss gå igenom huvudstegen för DES-kryptering och utelämna den hårda matematiska sidan:

  1. Texten, som med all annan kryptering, är uppdelad i block om 64 bitar.
  2. Från en 56-bitars nyckel genereras 16 48-bitars runda nycklar.
  3. Varje block genomgår permutation, det vill säga alla bitar i inmatningsblocket blandas enligt en viss tabell.
  4. Blocket delas i halvor och går in i det välbekanta Feistel-nätverket, där 16 omgångar scrollas.
  5. Vi förbinder halvorna.
  6. Och en förändring till.

Start- och slutpermutationerna har ingen betydelse för kryptografi i DES. Båda permutationerna är utan nycklar, och tabellerna för dem är fördefinierade. Anledningen till att de ingår i DES är oklart, och DES-designerna har inte sagt något om det. Det kan antas att algoritmen var planerad att implementeras i hårdvara (på chips) och att dessa två komplexa permutationer borde ha gjort det svårt att simulera krypteringsmekanismen i mjukvara.

Här är faktiskt allt du behöver veta om arbete DES algoritm. Om vi ​​går djupare in i hur funktionen som definieras i Feistel-nätverket fungerar, så är allt bra med det. Den utför både permutation och utbyte (S-boxar, som du kanske minns från föregående artikel), och tillägg med en rund nyckel.

Men låt oss återgå till triple DES, eller Triple DES. Det blev nödvändigt eftersom 56-bitars DES-nyckeln var sårbar för brute force och med tillväxten beräkningskraft detta problem blev mer och mer akut. Med teknik som finns tillgänglig idag kan en miljon nycklar verifieras per sekund. Det betyder att det skulle ta mer än två tusen år att brute-force dekryptera DES med en dator med bara en processor.

Men om du tar en dator med en miljon processorkärnor, som kommer att behandla nycklarna parallellt, kan vi kontrollera hela uppsättningen nycklar på cirka 20 timmar. När DES introducerades var kostnaden för en sådan dator flera miljoner dollar, men den sjönk snabbt. Speciell dator skapades 1998 - och hittade nyckeln på 112 timmar.

För att lösa problemet snabbsökning nyckel, smarta utländska kryptografer föreslog att man skulle använda två nycklar och att använda DES två gånger. Dubbel DES var dock sårbar för en möte-i-mitt-attack. För att utföra denna attack måste angriparen ha klartext och motsvarande chiffertext. Angriparen krypterar klartexten med alla möjliga nycklar, skriver resultaten till Tabell 1. Dekrypterar sedan chiffertexten med alla möjliga nycklar och skriver resultatet till Tabell 2. Angriparen söker sedan i Tabell 1 och 2 efter matchningar.

Ge sig på av denna typ består i att räkna upp nycklarna på den krypterade sidan och oformatterad text och kräver ungefär fyra gånger så mycket beräkning som en vanlig DES key brute force, och ganska mycket minne att lagra mellanresultat. Men i praktiken är attacken genomförbar, vilket gör Double DES oanvändbar.

Saker och ting är helt annorlunda med Triple DES. Användningen av tre nycklar och tillämpningen av algoritmer i den sekvens som anges i diagrammet förlängde livslängden för DES i flera år.


Underbar DES

Så vad är det som är så bra med DES? Denna krypteringsalgoritm har blivit föremål för omfattande analys. DES hade två mycket viktiga egenskaper blockchiffer- lavin och fullständighet. Det är dags att utöka ditt kryptografiska ordförråd!
Lavineffekten gör att små förändringar i originaltexten (eller nyckeln) kan orsaka stora förändringar i chiffertexten.

DES har visat sig ha alla kännetecken för denna fastighet.

Även om de två klartextblocken endast skiljer sig åt i biten längst till höger, skiljer sig chiffertextblocken med 29 bitar. Detta innebär att en ändring på cirka 1,5 % av klartexten orsakar en ändring på cirka 45 % av chiffertexten.

Fullständighetseffekten är att varje bit av chiffertexten måste bero på många bitar av klartexten. Som vi redan har upptäckt använder DES både permutationer och substitutioner - alla transformationer fastställer beroendet av varje chiffertextbit på flera bitar av originaltexten.

Var används DES? Ja, nästan överallt finns dess implementeringar i de flesta programbibliotek. Men vem vet hur säkert det är att använda DES nuförtiden? Även om IBM hävdade att algoritmen var resultatet av 17 manår av intensiv kryptoanalys, befarade vissa människor att NSA hade infört ett kryphål i algoritmen som gjorde det möjligt för byrån att enkelt dekryptera avlyssnade meddelanden. Den amerikanska senatens underrättelsekommitté studerade denna fråga noggrant och fann naturligtvis ingenting, anklagelserna mot NSA lades ner och resultaten av studien hemligstämplades ändå. Med ett ord, rykten och spekulationer har snurrat i Amerika under lång tid om huruvida DES ska lita på eller inte. Men, som jag tror, ​​beskrivs situationen här med talesättet "En smart person kommer inte att berätta, en dåre kommer inte att förstå." Till slut medgav NSA att man inte kunde lita på IBM med ett så viktigt uppdrag och gjorde flera justeringar, som att specificera S-boxar.

Under hela DES:s existens har han varit ett mål för olika metoder kryptoanalys. Kryptanalytiker slutade aldrig testa DES-brytningsmaskiner för att se hur lång tid det skulle ta att dechiffrera en text. I detta avseende otaliga olika modifieringar av denna algoritm, och 3DES är långt ifrån den mest sofistikerade av dem.

Datakryptering är extremt viktigt för att skydda integriteten. I den här artikeln kommer jag att prata om olika typer och krypteringsmetoder som används för att skydda data idag.

Visste du?
Tillbaka på romartiden användes kryptering av Julius Caesar för att göra brev och meddelanden oläsliga för fienden. Det spelade viktig roll som en militär taktik, särskilt under krig.

Allt eftersom Internets möjligheter fortsätter att växa, bedrivs fler och fler av våra verksamheter online. Bland dessa är de viktigaste internetbanker, online betalning, e-postmeddelanden, utbyte av privata och officiella meddelanden etc., som innebär utbyte av konfidentiella uppgifter och information. Om dessa data hamnar i orätta händer kan det skada inte bara den enskilda användaren utan även hela affärssystemet online.

För att förhindra att detta händer, vissa nätverksåtgärder säkerhet för att skydda överföringen av personuppgifter. De främsta bland dessa är processerna för att kryptera och dekryptera data, vilket är känt som kryptografi. Det finns tre huvudsakliga krypteringsmetoder som används i de flesta system idag: hashing, symmetrisk och asymmetrisk kryptering. I de följande raderna kommer jag att prata om var och en av dessa krypteringstyper mer i detalj.

Krypteringstyper

Symmetrisk kryptering

I symmetrisk kryptering krypteras normal läsbar data, känd som vanlig text, så att den blir oläsbar. Denna datakryptering görs med en nyckel. När informationen väl är krypterad kan den skickas säkert till mottagaren. Hos mottagaren avkodas den krypterade datan med samma nyckel som användes för kodningen.

Således är det tydligt att nyckeln är den viktigaste delen av symmetrisk kryptering. Det måste döljas för utomstående, eftersom alla som har tillgång till det kommer att kunna dekryptera privata data. Det är därför denna typ av kryptering också är känd som en "hemlig nyckel".

I moderna system ah, nyckeln är vanligtvis en sträng med data som kommer från ett starkt lösenord, eller från en helt slumpmässig källa. Den matas in i symmetrisk krypteringsprogramvara, som använder den för att hålla indata hemlig. Datakryptering uppnås med hjälp av symmetrisk algoritm kryptering, såsom Data Encryption Standard (DES), Advanced Encryption Standard (AES) eller International Data Encryption Algorithm (IDEA).

Restriktioner

Den svagaste länken i denna typ av kryptering är nyckelns säkerhet, både vad gäller lagring och överföring till den autentiserade användaren. Om en hacker kan få denna nyckel kan han enkelt dekryptera den krypterade informationen, vilket motverkar hela syftet med krypteringen.

En annan nackdel beror på det faktum att programvara, som behandlar data kan inte fungera med krypterad data. Därför, för att kunna använda denna programvara, måste data först avkodas. Om själva programvaran äventyras kan en angripare enkelt få tag i data.

Asymmetrisk kryptering

Asymmetrisk nyckelkryptering fungerar på samma sätt som symmetrisk nyckel genom att den använder en nyckel för att kryptera meddelanden som sänds. Men istället för att använda samma nyckel, använder han en helt annan för att dekryptera detta meddelande.

Nyckeln som används för kodning är tillgänglig för alla nätverksanvändare. Som sådan är den känd som en "offentlig" nyckel. Å andra sidan hålls nyckeln som används för dekryptering hemlig och är avsedd för privat bruk av användaren själv. Därför är den känd som den "privata" nyckeln. Asymmetrisk kryptering är också känd som offentlig nyckelkryptering.

Eftersom den hemliga nyckeln som behövs för att dekryptera meddelandet med denna metod inte behöver sändas varje gång, och den är vanligtvis endast känd för användaren (mottagaren), är sannolikheten att en hackare kommer att kunna dekryptera meddelandet stor lägre.

Diffie-Hellman och RSA är exempel på algoritmer som använder kryptering av offentlig nyckel.

Restriktioner

Många hackare använder man-i-mitten som en form av attack för att kringgå denna typ av kryptering. I asymmetrisk kryptering får du en publik nyckel som är van vid säkert utbyte data med en annan person eller tjänst. Hackare använder dock nätverksbedrägeri för att lura dig att kommunicera med dem medan du förleds att tro att du är på en säker linje.

För att bättre förstå denna typ av hackning, överväg två interagerande parter, Sasha och Natasha, och en hacker, Sergei, med avsikten att avlyssna deras konversation. Först skickar Sasha ett meddelande över nätverket avsett för Natasha och ber om hennes offentliga nyckel. Sergei fångar upp detta meddelande och erhåller den offentliga nyckeln som är associerad med henne och använder den för att kryptera och skicka ett falskt meddelande till Natasha som innehåller hans offentliga nyckel istället för Sashas.

Natasha, som tror att detta meddelande kom från Sasha, krypterar det nu med Sergeis publika nyckel och skickar tillbaka det. Detta meddelande fångades återigen upp av Sergei, dekrypterades, modifierades (om så önskas), krypterades igen med den publika nyckeln som Sasha ursprungligen skickade och skickades tillbaka till Sasha.

När Sasha får det här meddelandet har han alltså fått tro att det kom från Natasha och förblir omedveten om felspel.

Hashing

Hashingtekniken använder en algoritm som kallas en hashfunktion för att generera en speciell sträng från givna data, känd som en hash. Denna hash har följande egenskaper:

  • samma data producerar alltid samma hash.
  • Det är inte möjligt att generera rådata från enbart en hash.
  • Det är inte värt att försöka olika kombinationer indata för att försöka generera samma hash.

Den största skillnaden mellan hashing och de andra två formerna av datakryptering är alltså att när data väl är krypterade (hashasade) kan de inte hämtas tillbaka i sin ursprungliga form (dekrypteras). Detta faktum säkerställer att även om en hacker får tag på hashen, kommer det inte att vara till någon nytta för honom, eftersom han inte kommer att kunna dekryptera innehållet i meddelandet.

Message Digest 5 (MD5) och Secure Hashing Algorithm (SHA) är två mycket använda hashalgoritmer.

Restriktioner

Som nämnts tidigare är det nästan omöjligt att dekryptera data från en given hash. Detta är dock bara sant om stark hashing implementeras. I fallet med en svag implementering av hashtekniken, med tillräckliga resurser och attacker råstyrka, kan en ihärdig hackare kanske hitta data som matchar hashen.

Kombination av krypteringsmetoder

Som diskuterats ovan lider var och en av dessa tre krypteringsmetoder av vissa nackdelar. Men när en kombination av dessa metoder används, bildar de en tillförlitlig och högst effektivt system kryptering.

Oftast kombineras och används privata och publika nyckeltekniker tillsammans. Den privata nyckelmetoden möjliggör snabbare dekryptering, medan den offentliga nyckelmetoden erbjuder en säkrare och mer bekväm väg för att överföra den hemliga nyckeln. Denna kombination av metoder är känd som det "digitala kuvertet". PGP-programvara för e-postkryptering är baserad på tekniken "digitala kuvert".

Hashing används som ett sätt att kontrollera styrkan på ett lösenord. Om systemet lagrar en hash av lösenordet istället för själva lösenordet blir det säkrare, eftersom även om en hackare får tag på denna hash kommer han inte att kunna förstå (läsa) den. Under verifieringen kommer systemet att kontrollera hashen inkommande lösenord, och kommer att se om resultatet matchar det som lagras. På så sätt kommer det faktiska lösenordet endast att vara synligt under korta ögonblick när det behöver ändras eller verifieras, vilket avsevärt minskar sannolikheten för att det hamnar i fel händer.

Hashing används också för att autentisera data med hjälp av en hemlig nyckel. En hash genereras med hjälp av data och denna nyckel. Därför är endast data och hash synliga, och själva nyckeln överförs inte. På detta sätt, om ändringar görs i antingen data eller hash, kommer de lätt att upptäckas.

Sammanfattningsvis kan vi säga att dessa metoder kan användas för att effektiv kodning data till ett oläsbart format som kan säkerställa att det förblir säkert. De flesta moderna system använder vanligtvis en kombination av dessa krypteringsmetoder tillsammans med starka algoritmimplementationer för att förbättra säkerheten. Utöver säkerheten ger dessa system även många ytterligare fördelar, som att verifiera användarens identitet och se till att mottagna data inte kan manipuleras.

09.07.2003

Vad är kryptering?

Kryptering har använts av mänskligheten sedan det första ögonblicket hemlig information, det vill säga en till vilken tillgången bör begränsas. Detta var väldigt länge sedan - till exempel är en av de mest kända krypteringsmetoderna uppkallad efter Caesar, som, om han inte uppfann det själv, sedan aktivt använde det (se sidofältet).

Kryptografi säkerställer att innebörden av ett meddelande döljs och avslöjas genom dekryptering med hjälp av speciella algoritmer och nycklar. Vi förstår nyckeln som ett specifikt hemligt tillstånd för parametrarna för krypterings- och dekrypteringsalgoritmerna. Att känna till nyckeln gör det möjligt att läsa det hemliga meddelandet. Men, som du kommer att se nedan, garanterar okunnighet om nyckeln inte alltid att meddelandet inte kan läsas främling.

Processen att bryta ett chiffer utan att känna till nyckeln kallas kryptoanalys. Den tid som krävs för att bryta ett chiffer bestäms av dess kryptografiska styrka. Ju större den är, desto "starkare" är krypteringsalgoritmen. Ännu bättre är det om det till en början är omöjligt att överhuvudtaget ta reda på om resultatet av hacket är uppnåeligt.

Grundläggande moderna krypteringsmetoder

Bland på en mängd olika sätt kryptering kan följande huvudmetoder särskiljas:

  • Ersättnings- eller ersättningsalgoritmer - tecken i källtexten ersätts med tecken i ett annat (eller samma) alfabet i enlighet med ett förutbestämt schema, som kommer att vara nyckeln till detta chiffer. Separat används denna metod praktiskt taget inte i moderna kryptosystem på grund av dess extremt låga kryptografiska styrka.
  • Omarrangeringsalgoritmer - tecken i originaltexten byts ut enligt en viss princip, som är den hemliga nyckeln. Själva permutationsalgoritmen har låg kryptografisk styrka, men ingår som ett element i många moderna kryptosystem.
  • Gammaalgoritmer - tecknen i källtexten läggs till tecknen i en viss slumpmässig sekvens. Det vanligaste exemplet är kryptering av "användarnamn.pwl"-filer, där operativ system Microsoft Windows 95 lagrar lösenord till nätverksresurser given användare(lösenord för att logga in på NT-servrar, lösenord för uppringd Internetåtkomst, etc.).

När en användare anger sitt lösenord när han loggar in i Windows 95, genereras ett gamma (alltid samma) från det med hjälp av RC4-krypteringsalgoritmen, som används för kryptering nätverkslösenord. Enkelheten i valet av lösenord i det här fallet beror på det faktum att Windows alltid föredrar samma färgschema.

  • Algoritmer baserade på komplexa matematiska transformationer av källtexten enligt en viss formel. Många av dem använder olösta matematiska problem. Till exempel är RSA-krypteringsalgoritmen som används allmänt på Internet baserad på egenskaperna hos primtal.

Symmetriska och asymmetriska kryptosystem

Innan vi går vidare till individuella algoritmer, låt oss kort överväga konceptet med symmetriska och asymmetriska kryptosystem. Att generera en hemlig nyckel och kryptera ett meddelande med den är bara halva striden. Men hur kan en sådan nyckel skickas till någon som måste använda den för att dekryptera det ursprungliga meddelandet? Överföringen av krypteringsnyckeln anses vara ett av de största problemen med kryptografi.

Att hålla sig inom gränserna symmetriskt system(så kallad eftersom samma nyckel används för kryptering och dekryptering), är det nödvändigt att ha en pålitlig kommunikationskanal för att överföra den hemliga nyckeln. Men en sådan kanal är inte alltid tillgänglig, och därför utvecklade de amerikanska matematikerna Diffie, Hellman och Merkle konceptet med en offentlig nyckel 1976 och asymmetrisk kryptering. I sådana kryptosystem är endast nyckeln för krypteringsprocessen allmänt tillgänglig, och dekrypteringsproceduren är endast känd för ägaren av den hemliga nyckeln.

Till exempel, när jag vill att ett meddelande ska skickas till mig, genererar jag offentliga och privata nycklar. Jag skickar det till dig, du krypterar meddelandet och skickar det till mig. Bara jag kan dekryptera meddelandet, eftersom jag inte gav den hemliga nyckeln till någon. Naturligtvis är båda nycklarna länkade på ett speciellt sätt (på olika sätt i varje kryptosystem), och distribution av den publika nyckeln förstör inte systemets kryptografiska styrka.

I asymmetriska system måste följande krav uppfyllas: det finns ingen algoritm (eller den är ännu inte känd) som skulle härleda den ursprungliga texten från kryptotexten och den publika nyckeln. Ett exempel på ett sådant system är det välkända RSA-krypteringssystemet.

RSA-algoritm

RSA-algoritmen (efter de första bokstäverna i efternamnen till dess skapare Rivest-Shamir-Adleman) är baserad på egenskaperna hos primtal (och mycket stora). Primtal är de tal som inte har några andra delare än sig själva och en. Och samprimtal är de tal som inte har några andra gemensamma delare än 1.

Låt oss först välja två mycket stora primtal (stora primtal behövs för att konstruera stora, starka nycklar. Till exempel genererar Unix-programmet ssh-keygen nycklar som är 1024 bitar långa som standard).

Låt oss definiera parametern n som ett resultat av multiplikation sid Och q. Låt oss välja ett stort slumpmässigt nummer och ringa det d, och det måste vara coprime med resultatet av multiplikation (p -1)*(q -1).

Låt oss hitta ett tal e för vilket förhållandet är sant

(e*d) mod ((p -1)*(q -1)) = 1

(mod- resten av divisionen, dvs om e multiplicerat med d divideras med ((p -1)*(q -1)), då är resten 1).

Den publika nyckeln är ett par nummer e och n, och stängt - d och n.

Vid kryptering behandlas källtexten som en nummerserie och vi utför en operation på varje nummer

C(i)= (M(i) e) mod n.

Resultatet är sekvensen C(i), som kommer att utgöra kryptotexten. Avkodning av information sker enligt formeln

M(i) = (C(i) d) mod n.

Som du kan se kräver dekryptering kunskap om den hemliga nyckeln.

Låt oss prova på små nummer.

Låt oss installera p=3, q=7. Sedan n=p*q=21. Välja d som 5. Från formeln (e*5) mod 12=1 Beräkna e=17. Offentlig nyckel 17, 21 , hemlig - 5, 21 .

Låt oss kryptera sekvensen "12345":

C(1)= 1 17 mod 21= 1

C(2)=217 mod21=11

C(3)= 3 17 mod 21= 12

C(4)= 4 17 mod 21= 16

C(5)= 5 17 mod 21= 17

Kryptotext - 1 11 12 16 17.

Låt oss kontrollera dekrypteringen:

M(1)= 1 5 mod 21= 1

M(2)= 11 5 mod 21= 2

M(3)= 12 5 mod 21= 3

M(4)= 16 5 mod 21= 4

M(5)= 17 5 mod 21= 5

Som ni ser sammanföll resultatet.

RSA-kryptosystemet används flitigt på Internet. När du ansluter till en säker server via SSL, installera på din PC WebMoney-certifikat eller anslut till Fjärrserver med Open SSH eller SecureShell, då använder alla dessa program kryptering av offentlig nyckel med hjälp av idéerna från RSA-algoritmen. Är det här systemet verkligen så tillförlitligt?

RSA hackingtävlingar

Sedan det skapades har RSA ständigt varit föremål för brute-force-attacker. År 1978 publicerade författarna till algoritmen en artikel där de presenterade en sträng krypterad med metoden de just hade uppfunnit. Den första personen att dechiffrera meddelandet fick en belöning på $100, men detta krävde att dela upp ett 129-siffrigt nummer i två faktorer. Detta var den första tävlingen som knäckte RSA. Problemet löstes bara 17 år efter publiceringen av artikeln.

RSA:s kryptografiska styrka bygger på antagandet att det är extremt svårt, för att inte säga omöjligt, att bestämma den privata nyckeln från den publika nyckeln. För att göra detta var det nödvändigt att lösa problemet med förekomsten av divisorer av ett enormt heltal. Fortfarande hon analytiska metoder ingen har löst det, och RSA-algoritmen kan bara knäckas med brute force. Strängt taget är påståendet att faktoriseringsproblemet är svårt och att det är svårt att bryta RSA-systemet inte heller bevisat.

Numret som erhålls som ett resultat av att bearbeta meddelandetexten med hash-funktionen krypteras med RSA-algoritmen på användarens privata nyckel och skickas till mottagaren tillsammans med brevet och en kopia av den offentliga nyckeln. Mottagaren, med hjälp av avsändarens publika nyckel, utför samma hashfunktion på det inkommande meddelandet. Om båda siffrorna är lika betyder det att meddelandet är äkta, men om minst ett tecken har ändrats kommer siffrorna inte att matcha.

En av de vanligaste i Ryssland e-postklienter, program Fladdermusen!, har inbyggda möjligheter att lägga till digitala signaturer till brev (var uppmärksam på menyalternativet Sekretess när du redigerar ett brev). Läs mer om denna teknik i artikeln (se "PC World", nr 3/02).

Ris. 3

Kryptografi

Kryptografi är vetenskapen om principer, medel och metoder för att omvandla information för att skydda den från obehörig åtkomst och förvrängning. I Nyligen det utvecklas väldigt, väldigt snabbt. Det är ett oändligt spännande lopp som kräver mycket tid och ansträngning: kryptoanalytiker knäcker algoritmer som tills nyligen var standarder och användes ofta. Förresten, nyligen visade matematikerna Dan Goldston (USA) och Kem Ildirim (Turkiet) den första regelbundenhet i fördelningen av primtal (sådana regelbundenheter hade inte märkts förrän nu). Primtal finns på talaxeln i vissa kluster, vilket gör dem något lättare att hitta.

Matematisk forskning som bedrivs över hela världen leder ständigt till nya upptäckter. Vem vet, kanske är vi på väg att bryta RSA-algoritmen eller andra kryptosystem baserade på olösta matematiska problem.

Oleg Bunin- specialist på mjukvaruutveckling för stora internetprojekt, anställd på företaget Rambler, http://www..htm).

  • Introduktion till kryptografi / Ed. V.V. Jasjtjenko. M.: MTsNMO, 2000.
  • Nosov V. A. En kort historisk översikt över utvecklingen av kryptografi // Proceedings of the conference "Moscow University and the development of cryptography in Russia", MSU, 17-18 oktober 2002.
  • Salomaa A. Offentlig nyckelkryptering. M., 1996.
  • Zimmerman F. PGP - offentlig nyckelkryptering för alla.
  • Caesar Cipher System

    Ett exempel på en ersättningsalgoritm är Caesars krypteringssystem. Denna metod bygger på att ersätta varje bokstav i meddelandet med en annan genom att byta från originalet med ett fast antal tecken. Försök att dechiffrera Omar Khayyams quatrains (sluttid - 10 minuter).

    RLZ YOMEIZ AVBZHU IYZAVLU, BZHSCHLU ZHSCHEZZHZ ZHUOSCHZ, EYSH YSHCHAZhFO ISHCHYVESH BSHCHIZHV EESH ZHSCHRSCHG: LF EMRSYU ЪZEZESCHG, RYYO RLZ IZISHYOZ OZYUZH, I EMRSYU ЪZEZESCHG Z.

    Klarade du det? Här är svaret:

    För att leva ditt liv klokt behöver du veta mycket,

    Två viktiga regler kom ihåg till att börja med:

    Du svälter hellre än att äta något

    Och det är bättre att vara ensam än med vem som helst.

    Dekrypteringsnyckel: flytta med sju tecken (ta den sjunde) till vänster i alfabetisk ordning. Alfabetet är loopat. Teckens skiftläge är inte känsligt.

    Windows och lösenord

    Hur krypterar Windows lösenord?

    Systemet tar lösenordet, konverterar det till versaler, trimmar det till 14 tecken, delar sedan upp dem i två halvor av 7, krypterar var och en separat och sparar det på det sättet, vilket gör hackningen lite lättare. Förresten, när du kommer på ett lösenord, tänk på att en kombination som är längre än 14 tecken har liten betydelse.

    AES-tävling (Advanced Encryption Standard).

    På 80-talet i USA antog man en symmetrisk krypteringsstandard för internt bruk - DES ((Data Encryption Standard, det finns en liknande standard i Ryssland). Men 1997, när det stod klart att 56-bitars DES-nyckeln inte räckte för en tillförlitlig kryptosystem utlyste American Standards Institute en tävling om en ny standardalgoritm Av de 15 alternativen valdes det bästa: den belgiska algoritmen Rijndael (dess namn består av namnen på författarna - Rijmen och Daemen, läs som "Rijndael". . Denna algoritm är redan inbyggd i olika kryptografiska medel levereras till marknaden). Andra finalister i tävlingen var MARS, RC6, Serpent, TwoFish. Alla dessa algoritmer visade sig vara ganska robusta och motstå alla framgångsrikt kända metoder kryptoanalys.

    Kryptografiska hashfunktioner

    Kryptografiska hashfunktioner konverterar valfri storleksinmatning till en sträng fixad storlek. Det är extremt svårt att hitta för dem:

    • två olika uppsättningar data med samma transformationsresultat (kollisionsmotstånd); till exempel kvantitet aritmetiska operationer, nödvändigt för att hitta ett datablock som också har kort meddelande för MD5-hashfunktionen är den ungefär 2 64;
    • ingångsvärde baserat på ett känt hashresultat (irreversibilitet); för MD5 det uppskattade antalet operationer som krävs för beräkningen Ursprungligt meddelande, lika med 2 128.

    Behovet av att kryptera korrespondens uppstod i den antika världen, och enkla ersättningschiffer dök upp. Krypterade meddelanden avgjorde ödet för många strider och påverkade historiens gång. Med tiden uppfann människor mer och mer avancerade krypteringsmetoder.

    Kod och chiffer är för övrigt olika begrepp. Det första innebär att ersätta varje ord i meddelandet kodord. Den andra är att kryptera varje symbol med information med hjälp av en specifik algoritm.

    Efter att matematiken började koda information och teorin om kryptografi utvecklades, upptäckte forskare många fördelaktiga egenskaper denna tillämpade vetenskap. Till exempel har avkodningsalgoritmer hjälpt till att dechiffrera döda språk som forntida egyptiska eller latin.

    Steganografi

    Steganografi är äldre än kodning och kryptering. Denna konst dök upp för länge sedan. Det betyder bokstavligen " gömt brev"eller "hemlig skrift". Även om steganografi inte exakt motsvarar definitionen av en kod eller ett chiffer, är det avsett att dölja information från nyfikna ögon.

    Steganografi är det enklaste chiffret. Typiska exempel är sväljningsnoter täckta med vax, eller ett meddelande på ett rakat huvud som är gömt under hårväxten. Det tydligaste exemplet på steganografi är metoden som beskrivs i många engelska (och inte bara) detektivböcker, när meddelanden sänds genom en tidning där bokstäver är diskret markerade.

    Den största nackdelen med steganografi är att en uppmärksam utomstående kan lägga märke till det. Därför, för att förhindra att det hemliga meddelandet lätt kan läsas, används kryptering och kodningsmetoder i samband med steganografi.

    ROT1 och Caesar chiffer

    Namnet på detta chiffer är ROTate 1 bokstav framåt, och det är känt för många skolbarn. Det är ett enkelt substitutionschiffer. Kärnan är att varje bokstav krypteras genom att alfabetet flyttas 1 bokstav framåt. A -> B, B -> B, ..., I -> A. Låt oss till exempel kryptera frasen "vår Nastya gråter högt" och få "obshb Obtua dspnlp rmbsheu".

    ROT1-chifferet kan generaliseras till ett godtyckligt antal förskjutningar, sedan kallas det ROTN, där N är numret med vilket krypteringen av bokstäver ska förskjutas. I denna form har chiffret varit känt sedan urminnes tider och kallas "Caesar-chifferet".

    Caesar-chifferet är väldigt enkelt och snabbt, men det är ett enkelt enstaka permutationschiffer och är därför lätt att bryta. Med en liknande nackdel är den endast lämplig för barns upptåg.

    Transposition eller permutation chiffer

    Dessa typer av enkla permutationschiffer är mer seriösa och har använts aktivt för inte så länge sedan. Under det amerikanska inbördeskriget och första världskriget användes den för att överföra meddelanden. Dess algoritm är att ordna om bokstäverna - skriv meddelandet in omvänd ordning eller ordna om bokstäverna i par. Låt oss till exempel kryptera frasen "Morsekod är också ett chiffer" -> "Akubza ezrom - ezhot rfish".

    MED bra algoritm, som bestämde godtyckliga permutationer för varje symbol eller grupp av dem, blev chifferet resistent mot enkel hackning. Men! Bara i sinom tid. Eftersom chiffret lätt kan knäckas med enkel brute force eller ordboksmatchning, kan idag vilken smartphone som helst dechiffrera det. Därför, med tillkomsten av datorer, blev detta chiffer också en barnkod.

    morse kod

    Alfabetet är ett sätt att utbyta information och dess huvudsakliga uppgift är att göra meddelanden enklare och mer begripliga för överföring. Även om detta strider mot vad kryptering är avsedd för. Ändå fungerar det som de enklaste chiffer. I morsesystemet har varje bokstav, siffra och skiljetecken sin egen kod, uppbyggd av en grupp av streck och punkter. När du sänder ett meddelande med hjälp av telegrafen indikerar streck och punkter långa och korta signaler.

    Telegrafen och alfabetet var den som var den första som patenterade "sin" uppfinning 1840, även om liknande anordningar hade uppfunnits före honom i både Ryssland och England. Men vem bryr sig nu... Telegrafen och morsekoden hade ett mycket stort inflytande på världen och tillät nästan omedelbar överföring av meddelanden över kontinentala avstånd.

    Monoalfabetisk substitution

    ROTN och morsekod som beskrivs ovan är representanter för monoalfabetiska ersättningsteckensnitt. Prefixet "mono" betyder att under kryptering ersätts varje bokstav i det ursprungliga meddelandet med en annan bokstav eller kod från ett enda krypteringsalfabet.

    Att dechiffrera enkla substitutionschiffer är inte svårt, och detta är deras största nackdel. De kan lösas genom att helt enkelt söka eller Till exempel är det känt att de mest använda bokstäverna på det ryska språket är "o", "a", "i". Således kan vi anta att i chiffertexten betyder bokstäverna som förekommer oftast antingen "o", "a" eller "i". Utifrån dessa överväganden kan meddelandet dechiffreras även utan datorsökning.

    Mary I, Queen of Scots från 1561 till 1567, är känd för att ha använt ett mycket komplext monoalfabetiskt substitutionschiffer med flera kombinationer. Ändå kunde hennes fiender tyda meddelandena, och informationen var tillräcklig för att döma drottningen till döden.

    Gronsfeld chiffer, eller polyalfabetisk substitution

    Enkla chiffer anses vara värdelösa av kryptografi. Därför har många av dem modifierats. Gronsfeld-chifferet är en modifikation av Caesar-chifferet. Den här metodenär mycket mer motståndskraftig mot hackning och består i det faktum att varje tecken i den kodade informationen krypteras med en av olika alfabet, som upprepas cykliskt. Vi kan säga att detta är en flerdimensionell tillämpning av det enklaste substitutionschifferet. Faktum är att Gronsfeld-chifferet är väldigt likt det som diskuteras nedan.

    ADFGX-krypteringsalgoritm

    Detta är det mest kända chiffer från första världskriget som användes av tyskarna. Chifferet fick sitt namn eftersom det reducerade alla chiffergram till att växla mellan dessa bokstäver. Valet av själva bokstäverna bestämdes av deras bekvämlighet när de sänds över telegraflinjer. Varje bokstav i chiffret representeras av två. Låt oss titta på en mer intressant version av ADFGX-rutan som innehåller siffror och kallas ADFGVX.

    A D F G V X
    A J F A 5 H D
    D 2 E R V 9 Z
    F 8 Y jag N K V
    G U P B F 6 O
    V 4 G X S 3 T
    X W L F 7 C 0

    Algoritmen för att komponera ADFGX-rutan är som följer:

    1. Vi tar slumpmässiga n bokstäver för att beteckna kolumner och rader.
    2. Vi bygger en N x N-matris.
    3. Vi skriver in i matrisen alfabetet, siffror, tecken, slumpmässigt utspridda över cellerna.

    Låt oss göra en liknande fyrkant för det ryska språket. Låt oss till exempel skapa en kvadrat ABCD:

    A B I G D
    A HENNE N b/b A I/Y
    B H V/F H/C Z D
    I Sh/Shch B L X jag
    G R M HANDLA OM YU P
    D OCH T C Y U

    Denna matris ser konstig ut, eftersom ett antal celler innehåller två bokstäver. Detta är acceptabelt; innebörden av meddelandet går inte förlorad. Det kan enkelt återställas. Låt oss kryptera frasen "Compact Cipher" med den här tabellen:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14
    Fras TILL HANDLA OM M P A TILL T N Y Y Sh OCH F R
    Chiffer bv vakter GB gd ah bv db ab dg Helvete va Helvete bb ha

    Således ser det slutgiltiga krypterade meddelandet ut så här: "bvgvgbgdagbvdbabdgvdvaadbbga." Naturligtvis körde tyskarna en liknande linje genom flera fler chiffer. Och resultatet blev ett mycket hackbeständigt krypterat meddelande.

    Vigenère chiffer

    Detta chiffer är en storleksordning mer motståndskraftigt mot sprickbildning än monoalfabetiska, även om det är ett enkelt textersättnings-chiffer. Men tack vare sin robusta algoritm ansågs det omöjligt att hacka under lång tid. Dess första omnämnanden går tillbaka till 1500-talet. Vigenère (en fransk diplomat) anses felaktigt vara dess uppfinnare. För att bättre förstå vad vi pratar om, överväg Vigenère-tabellen (Vigenère square, tabula recta) för det ryska språket.

    Låt oss börja kryptera frasen "Kasperovich skrattar." Men för att kryptering ska lyckas behöver du ett nyckelord - låt det vara "lösenord". Låt oss nu börja kryptering. För att göra detta skriver vi ner nyckeln så många gånger att antalet bokstäver från den motsvarar antalet bokstäver i den krypterade frasen, genom att upprepa nyckeln eller skära av den:

    Nu, med hjälp av koordinatplanet, letar vi efter en cell som är skärningspunkten mellan bokstäverpar, och vi får: K + P = b, A + A = B, C + P = B, etc.

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
    Chiffer: Kommersant B I YU MED N YU G SCH OCH E Y X OCH G A L

    Vi får att "Kasperovich skrattar" = "abvyusnyugshch eykhzhgal."

    Att bryta Vigenère-chiffret är så svårt eftersom frekvensanalys kräver att man känner till längden på nyckelordet för att det ska fungera. Därför innebär hacking att slumpmässigt slänga in längden på ett nyckelord och försöka knäcka det hemliga meddelandet.

    Det bör också nämnas att förutom en helt slumpmässig nyckel kan en helt slumpmässig nyckel användas olika bord Vigenère. I det här fallet består Vigenère-torget av det ryska alfabetet skrivet rad för rad med en förskjutning på ett. Vilket för oss till ROT1-chifferet. Och precis som i Caesar-chifferet kan förskjutningen vara vad som helst. Dessutom behöver inte bokstävernas ordning vara alfabetisk. I det här fallet kan själva tabellen vara en nyckel, utan att veta vilken kommer det att vara omöjligt att läsa meddelandet, ens känna till nyckeln.

    Koder

    Verkliga koder består av matchningar för varje ord separat kod. För att arbeta med dem behöver du så kallade kodböcker. Faktum är att detta är samma ordbok, som bara innehåller översättningar av ord till koder. Ett typiskt och förenklat exempel på koder är ASCII-tabell- internationellt chiffer av enkla tecken.

    Den största fördelen med koder är att de är mycket svåra att tyda. Frekvensanalys fungerar nästan inte när man hackar dem. Kodernas svaghet är i själva verket själva böckerna. För det första är deras förberedelse en komplex och dyr process. För det andra, för fiender förvandlas de till ett önskat objekt, och att fånga upp en del av boken tvingar dem att ändra alla koder helt.

    På 1900-talet använde många stater koder för att överföra hemliga data, vilket ändrade kodboken över tiden. viss period. Och de jagade aktivt efter sina grannars och motståndares böcker.

    "Gåta"

    Alla vet att Enigma var den viktigaste nazistiska krypteringsmaskinen under andra världskriget. Enigma-strukturen inkluderar en kombination av elektriska och mekaniska kretsar. Hur chiffret blir beror på den initiala konfigurationen av Enigma. Samtidigt ändrar Enigma automatiskt sin konfiguration under drift och krypterar ett meddelande på flera sätt över hela dess längd.

    I motsats till de enklaste chifferna gav Enigma biljoner möjliga kombinationer, vilket gjorde att bryta krypterad information nästan omöjligt. I sin tur hade nazisterna en specifik kombination förberedd för varje dag, som de använde en viss dag för att överföra meddelanden. Därför, även om Enigma föll i fiendens händer, bidrog den inte på något sätt till att dechiffrera meddelanden utan att gå in i den nödvändiga konfigurationen varje dag.

    De försökte aktivt bryta Enigma under Hitlers militärkampanj. I England byggdes 1936 en av de första datorenheterna (Turing-maskinen) för detta ändamål, som blev prototypen på datorer i framtiden. Hans uppgift var att simulera driften av flera dussin Enigmas samtidigt och köra avlyssnade nazistiska meddelanden genom dem. Men även Turing-maskinen kunde bara ibland knäcka ett meddelande.

    Offentlig nyckelkryptering

    Den mest populära krypteringsalgoritmen, som används överallt inom teknik och datorsystem. Dess väsen ligger som regel i närvaron av två nycklar, varav en sänds offentligt och den andra är hemlig (privat). Den publika nyckeln används för att kryptera meddelandet, och den hemliga nyckeln används för att dekryptera det.

    Den offentliga nyckelns roll är oftast ett mycket stort tal, som bara har två divisorer, inte en och talet i sig. Tillsammans bildar dessa två delare den hemliga nyckeln.

    Låt oss titta på ett enkelt exempel. Låt den publika nyckeln vara 905. Dess delare är talen 1, 5, 181 och 905. Då blir den hemliga nyckeln till exempel talet 5*181. Skulle du säga att det är för enkelt? Vad händer om det offentliga numret är ett nummer med 60 siffror? Det är matematiskt svårt att räkna ut divisorerna för ett stort tal.

    För ett mer realistiskt exempel, föreställ dig att du tar ut pengar från en bankomat. När ett kort läses krypteras personuppgifter med en viss offentlig nyckel och på bankens sida dekrypteras informationen med en hemlig nyckel. Och denna publika nyckel kan ändras för varje operation. Men det finns inga sätt att snabbt hitta nyckelavdelare när du avlyssnar den.

    Teckensnittets hållbarhet

    Den kryptografiska styrkan hos en krypteringsalgoritm är dess förmåga att motstå hackning. Denna parameterär det viktigaste för all kryptering. Det är uppenbart att det enkla substitutionschifferet, som kan dechiffreras av vilken elektronisk enhet som helst, är ett av de mest instabila.

    Hittills finns det inga enhetliga standarder enligt vilka ett chiffers styrka kan bedömas. Detta är en arbetskrävande och lång process. Det finns dock ett antal kommissioner som har tagit fram standarder på detta område. Till exempel, minimikrav till Advanced Encryption Standard eller AES-krypteringsalgoritmen, utvecklad av NIST USA.

    För referens: Vernam-chifferet är känt som det mest motståndskraftiga chiffret att knäcka. Samtidigt är dess fördel att det enligt dess algoritm är det enklaste chifferet.

    Introduktion

    Problemet med att skydda information genom att omvandla den så att den inte kan läsas av en utomstående har retat det mänskliga sinnet sedan urminnes tider. Kryptografins historia är jämlik med det mänskliga språkets historia. Dessutom var själva skrivandet ursprungligen ett kryptografiskt system, eftersom i forntida samhällen bara ett fåtal utvalda behärskade det.

    De heliga böckerna i det antika Egypten och det antika Indien är exempel på detta.

    Med den utbredda användningen av skrift började kryptografi att växa fram som en oberoende vetenskap. De första kryptosystemen finns redan i början av vår tideräkning. Således använde Caesar i sin korrespondens ett mer eller mindre systematiskt chiffer, som fick hans namn.

    Kryptografiska system utvecklades snabbt under åren av första och andra världskriget. Från efterkrigstiden till i dag har tillkomsten av datoranvändning påskyndat utvecklingen och förbättringen av kryptografiska metoder.

    Varför är det ett problem att använda kryptografiska metoder i informationssystem(IP) har blivit särskilt relevant för tillfället?

    Å ena sidan har framför allt användningen av datornät ökat globalt nätverk Internet, genom vilket stora mängder information av statlig, militär, kommersiell och privat karaktär överförs, vilket hindrar obehöriga från att komma åt den.

    Å andra sidan, uppkomsten av nya kraftfulla datorer, nätverk och neurala datortekniker har gjort det möjligt att misskreditera kryptografiska system som tills nyligen ansågs praktiskt taget okrossbara.

    I det första kapitlet av detta arbete kan du bekanta dig med de grundläggande begreppen modern kryptografi, krav på dem, möjligheter till praktisk tillämpning.

    I det andra kapitlet om att arbeta med distributionsprotokoll kryptografiska nycklar, begreppet elektronisk signatur och elektroniska signaturprotokoll..

    Det tredje kapitlet i detta arbete talar om hashfunktioner och (metoder för) algoritmer för deras konstruktion.

    Det fjärde kapitlet kommer att tala om moderniseringen av El Gamals elektroniska signatur och det diskreta logaritmproblemet.

    Kapitel 1. Grundbegrepp för modern kryptografi

    Kryptologi (kryptos - hemlighet, logos - vetenskap) behandlar problemet med att skydda information genom att transformera den. Kryptologi är uppdelat i två områden - kryptografi och kryptoanalys. Målen för dessa riktningar är rakt motsatta.

    Kryptografi handlar om sökning och utforskning matematiska metoder omvandling av information.

    Intresseområdet för kryptoanalys är studiet av möjligheten att dekryptera information utan att känna till nycklarna.

    Detta arbete kommer att fokusera på kryptografiska metoder.

    Modern kryptografi inkluderar fyra huvudsektioner:

    Symmetriska kryptosystem.

    Public key kryptosystem.

    Elektroniska signatursystem.

    Nyckelhantering.

    De huvudsakliga användningsområdena för kryptografiska metoder är överföring av konfidentiell information via kommunikationskanaler (t.ex. E-post), fastställande av äktheten hos överförda meddelanden, lagring av information (dokument, databaser) på media i krypterad form.

    Kryptografi gör det möjligt att transformera information på ett sådant sätt att dess läsning (återställning) endast är möjlig om nyckeln är känd.

    Texter baserade på ett visst alfabet kommer att betraktas som information som ska krypteras och dekrypteras. Dessa termer betyder följande.

    Ett alfabet är en ändlig uppsättning tecken som används för att koda information.

    Text är en ordnad uppsättning alfabetiska element.

    Följande är exempel på alfabet som används i moderna informationssystem:

    alfabetet Z33 - 32 bokstäver i det ryska alfabetet och ett mellanslag;

    alfabetet Z256 - symboler som ingår i standarden ASCII-koder och KOI-8;

    binärt alfabet - Z2 = (0,1);

    oktalt eller hexadecimalt alfabet;

    Kryptering är en omvandlingsprocess: den ursprungliga texten, även kallad klartext, ersätts med chiffertext.

    Dekryptering är den omvända processen för kryptering. Baserat på nyckeln konverteras chiffertexten till den ursprungliga.

    Nyckeln är den information som behövs för smidig kryptering och dekryptering av texter.

    Ett kryptografiskt system är en familj av T klartexttransformationer. Medlemmar av denna familj är indexerade eller betecknade med symbolen k; parameter k är nyckeln. Nyckelutrymmet K är uppsättningen av möjliga nyckelvärden. Vanligtvis är nyckeln en sekventiell serie av bokstäver i alfabetet.

    Kryptosystem är indelade i symmetriska och publika nyckel.

    I symmetriska kryptosystem används samma nyckel för både kryptering och dekryptering.

    System för offentliga nyckel använder två nycklar, en offentlig och en privat, som är matematiskt relaterade till varandra. Informationen krypteras med en offentlig nyckel, som är tillgänglig för alla, och dekrypteras med hjälp av privat nyckel, endast känd för mottagaren av meddelandet. Begreppen nyckeldistribution och nyckelhantering avser processerna i ett informationsbehandlingssystem, vars innehåll är sammanställning och distribution av nycklar mellan användare.

    En elektronisk (digital) signatur är en kryptografisk transformation kopplad till texten, som gör det möjligt att, när texten tas emot av en annan användare, verifiera meddelandets författarskap och äkthet.

    Kryptografisk styrka är en egenskap hos ett chiffer som bestämmer dess motstånd mot dekryptering utan att känna till nyckeln (d.v.s. kryptoanalys). Det finns flera indikatorer på kryptografisk styrka, inklusive:

    antalet möjliga nycklar;

    genomsnittlig tid som krävs för kryptoanalys.

    Transformationen Tk bestäms av motsvarande algoritm och värdet av parametern k. Effektiviteten hos krypteringen för att skydda information beror på att nyckelns hemlighet och krypteringsstyrkan upprätthålls.

    Processen för stängning av kryptografisk data kan utföras antingen i mjukvara eller i hårdvara. Hårdvaruimplementering är betydligt dyrare, men det har också fördelar: hög prestanda, enkelhet, säkerhet osv. Programvaruimplementering mer praktiskt, vilket tillåter en viss flexibilitet vid användning.

    Följande allmänt accepterade krav är formulerade för moderna kryptografiska informationssäkerhetssystem:

    det krypterade meddelandet måste vara läsbart endast om nyckeln är tillgänglig;

    antalet operationer som krävs för att bestämma den använda krypteringsnyckeln från ett fragment av ett krypterat meddelande och motsvarande klartext måste vara minst Totala numret möjliga nycklar;

    antalet operationer som krävs för att dekryptera information genom att prova alla möjliga nycklar måste ha en strikt nedre gräns och överskrida gränserna för möjligheterna moderna datorer(med hänsyn till möjligheten att använda nätverksdator);

    kunskap om krypteringsalgoritmen bör inte påverka skyddets tillförlitlighet;

    en liten förändring av nyckeln bör leda till en betydande förändring av utseendet på det krypterade meddelandet, även när samma nyckel används;

    de strukturella delarna av krypteringsalgoritmen måste vara oförändrade;

    ytterligare bitar som införs i meddelandet under krypteringsprocessen måste vara helt och säkert gömda i chiffertexten;

    längden på chiffertexten måste vara lika med längden källtext;

    det bör inte finnas några enkla och lätt etablerade beroenden mellan de nycklar som används sekventiellt i krypteringsprocessen;

    någon nyckel från uppsättningen av möjliga måste tillhandahålla pålitligt skydd information;

    Algoritmen måste tillåta implementering av både mjukvara och hårdvara, medan ändring av nyckellängden inte bör leda till en kvalitativ försämring av krypteringsalgoritmen.

    Kapitel 2. Kryptografiska nyckeldistributionsprotokoll och elektroniska signaturprotokoll.

    Oavsett hur komplexa och pålitliga kryptografiska system är, de svaga punkterpraktiskt genomförande- nyckeldistributionsproblem. För att ett utbyte ska bli möjligt konfidentiell information mellan två IP-enheter måste nyckeln genereras av en av dem och sedan på något sätt, återigen konfidentiellt, överföras till den andra. De där. i allmänhet kräver överföring av nyckeln igen användning av något slags kryptosystem.

    För att lösa detta problem har publika nyckelsystem föreslagits baserat på resultaten från klassisk och modern algebra.

    Deras kärna är att varje adressat av informationssystemet genererar två nycklar kopplade till varandra enligt en viss regel. En nyckel förklaras offentlig och den andra privat. Den publika nyckeln är publicerad och tillgänglig för alla som vill skicka ett meddelande till mottagaren. Den hemliga nyckeln hålls hemlig.

    Originaltexten krypteras med mottagarens publika nyckel och överförs till denne. Den krypterade texten kan i princip inte dekrypteras med samma klartext.


    nyckel. Dekryptering av ett meddelande är endast möjligt med en privat nyckel, som endast är känd för mottagaren.

    Public key kryptografiska system använder så kallade irreversibla eller envägsfunktioner, som har följande fastighet: Givet ett värde på x är det relativt enkelt att beräkna värdet på f(x), men om y=f(x) så finns det inget enkelt sätt att beräkna värdet på x.

    Uppsättningen av klasser av irreversibla funktioner ger upphov till alla de olika publika nyckelsystem. Men inte alla irreversibla funktioner är lämpliga för användning i riktiga IC:er.