Menü
Ingyenes
bejegyzés
itthon  /  Navigátorok/ Mit jelent a titkosítási kulcs hossza? Nyilvános kulcsú titkosítás

Mit jelent a titkosítási kulcs hossza? Nyilvános kulcsú titkosítás

Sok modern titkosítási algoritmus nyilvános kulcs két nagy prímszám szorzatának a faktorizációs függvényének egyirányúságán alapulnak. Ezeket az algoritmusokat brutális erővel is meg lehet támadni a titkos kulcsok rejtjelezése ellen, egyetlen különbséggel: nem kell minden kulcsot kipróbálnia, csak nagy számot kell tudnia figyelembe venni.

Természetesen nagy számok faktorálása nehéz. Azonban azonnal felmerül egy ésszerű kérdés, mennyire nehéz. Sajnos a rejtjelezők számára a megoldás összetettsége csökken. Rosszabb esetben ez a nehézség a korábban vártnál sokkal gyorsabban csökken. Például az 1970-es évek közepén úgy gondolták, hogy a 125 számjegyek számításba vétele tízmilliárd évet vesz igénybe. És csak két évtizeddel később, a csatlakoztatott számítógépek segítségével Internet hálózatok, lehetséges volt 129 számjegyből számolni. Ezt az áttörést az tette lehetővé, hogy az elmúlt 20 évben nemcsak új, gyorsabb faktorizációs módszereket javasoltak nagy számok, de növelte a használt számítógépek teljesítményét is.

Ezért egy gyakorlott titkosítónak nagyon óvatosan és körültekintően kell eljárnia a nyilvános kulcs hosszával kapcsolatban. Figyelembe kell venni, hogy a segítségével minősített információk mennyire értékesek, és meddig kell titokban maradniuk a kívülállók számára.

Miért nem vesz egy 10 000 bites kulcsot? Végül is eltűnik az összes kérdés, amely az aszimmetrikus nyilvános kulcsú titkosítási algoritmus erősségére vonatkozik, amely nagyszámú faktorálásán alapul. De a lényeg az, hogy a titkosító nem csak a titkosítás kellő erősségének biztosítása. Vannak további megfontolások, amelyek befolyásolják a kulcshossz kiválasztását, és ezek között vannak olyan kérdések is, amelyek a kiválasztott kulcshosszúság titkosítási algoritmusának gyakorlati megvalósításával kapcsolatosak.

A nyilvános kulcs hosszának becsléséhez meg fogjuk mérni a rejtjelező számára rendelkezésre álló számítási teljesítményt az úgynevezett mopsz-években, vagyis a műveletek számát, amelyeket egy számítógép 1 millió művelet / másodperc sebességgel képes végrehajtani egy év alatt teljesít. Tegyük fel, hogy egy hacker hozzáférhet a számítógépes erőforrásokhoz, amelyek teljes számítási teljesítménye 10 000 mopsz év, egy nagyvállalat 107 mopszévet, a kormány 109 mopsz évet. Ezek meglehetősen valós számok, tekintve, hogy a fent említett 129 számjegyű bontási projekt végrehajtása során résztvevői az internet számítási teljesítményének mindössze 0,03% -át használták fel, és ennek elérése érdekében nem kell rendkívüli intézkedéseket foganatosítani vagy a törvényeken túlmenni.

Tegyük fel azt is, hogy a számítási teljesítmény 5 évente 10 -szeresére nő, és a nagy számok faktorizálására használt módszer lehetővé teszi ezt a táblázatban megadott összetettséggel. 6.3.

6.3. Táblázat A nagy számok faktorálásának összetettsége

A feltevések lehetővé teszik számunkra, hogy megbecsüljük az erős nyilvános kulcs hosszát attól függően, hogy milyen időszak alatt kell titokban tartani az adatokat a segítségével (6.4. Táblázat). Emlékeztetni kell arra, hogy a nyilvános kulcsú titkosítási algoritmusokat gyakran nagyon védik értékes információ nagyon hosszú ideig. Például elektronikus fizetési rendszerekben vagy közjegyzői hitelesítés során Elektronikus aláírás... Az a gondolat, hogy több hónapot nagyszámú tényezővel kell eltöltenie, nagyon vonzónak tűnhet valakinek, ha ennek eredményeként képes lesz fizetni vásárlásaiért hitelkártyájával. Ezenkívül úgy gondolom, hogy az a kilátás, hogy 20 évvel később beidézik egy bírósági tárgyalásra, amelyen öröklési ügyet tárgyalnak, és megvédi a nagyapja elektronikus aláírásának hamisításának lehetetlenségét, amellyel végrendeletet készített az Ön javára egyáltalán nem mosolyog rád.

Táblázatban megadott. 6.4 Nem minden megbízható kriptográfus ért egyet az adatokkal. Néhányuk határozottan megtagadja a hosszú távú előrejelzéseket, haszontalannak tartva. Mások, például az NSA szakértői, túlzottan optimistaak, és a digitális aláírási rendszerekhez csak 512-1024 bites nyilvános kulcshosszat javasolnak, ami a táblázat adatainak fényében történik. 6.4 teljesen nem megfelelő a megfelelő hosszú távú védelem biztosításához.

A szimmetrikus titkosítási rendszer megbízhatósága függ a használt kriptográfiai algoritmus erősségétől és a titkos kulcs hosszától. Tegyük fel, hogy maga az algoritmus tökéletes - csak akkor nyitható meg, ha mindent kipróbál lehetséges kulcsok... Az ilyen típusú kriptoanalitikus támadást nyers erő támadásnak nevezik. Ennek a módszernek az alkalmazásához egy titkosítási elemzőnek szüksége van valamilyen titkosított szövegre és a megfelelő egyszerű szövegre. Például egy blokkotitkosító esetében elegendő, ha rendelkezésére áll egy blokk titkosított és megfelelő egyszerű szöveg. Ezt nem olyan nehéz megtenni.

A titkosítási elemző előre tudhatja az üzenet tartalmát, majd titkosított formában továbbításkor elfoghatja. Egyes jelek szerint azt is sejtheti, hogy az elküldött üzenet nem más, mint szöveges fájl közös szerkesztővel, szabványos formátumú számítógépes képpel, fájlalrendszer -könyvtárral vagy adatbázissal készül. A titkosítási elemző számára fontos, hogy ezen esetek mindegyikében több bájt is ismert legyen az elfogott rejtjelezett üzenet szövegében, ami elegendő lesz ahhoz, hogy támadást indítson az egyszerű szöveg ismeretében.

Elég könnyű kiszámítani a nyers erővel végrehajtott támadás összetettségét. Ha egy kulcs 64 bit hosszú, akkor egy szuperszámítógép, amely 1 millió kulcsot képes tesztelni 1 másodperc alatt, több mint 5000 évet tölt el az összes lehetséges kulcs ellenőrzésével. Ha a kulcs hosszát 12cS bitre növelik, ugyanazon szuperszámítógépnek 10 25 évre lesz szüksége az összes kulcs ismétléséhez. A Világegyetem mindössze 10 "° éve létezik, tehát azt mondhatjuk, hogy a 10- kellően nagy biztonsági határ azok számára, akik 128-5 kulcsot használnak.

Mielőtt azonban sietve feltalálnánk egy 4 KB -os kulcshosszúságú titkosítási rendszert, emlékeznünk kell a fenti feltételezésre, nevezetesen: az alkalmazott titkosítási algoritmus ideális abban az értelemben, hogy csak nyers erővel nyitható meg. Ennek a gyakorlatban való meggyőződése nem olyan egyszerű, mint amilyennek első pillantásra tűnhet. A kriptográfia kifinomultságot és türelmet igényel. Az új szuperkomplex kriptorendszerek, alaposabban megvizsgálva, gyakran nagyon instabilnak bizonyulnak. És ha apró változtatásokat is végrehajt egy erős titkosítási algoritmuson, az jelentősen csökkentheti annak erejét. Ezért csak bevált, hosszú évek óta ismert rejtjeleket kell használni, és nem kell félni attól, hogy betegesen gyanakvóak legyenek a legújabb titkosítási algoritmusokkal szemben, függetlenül azok szerzőinek nyilatkozatától ezen algoritmusok abszolút megbízhatóságáról.

Az is fontos, hogy ne feledkezzünk meg a Kerkhoff -szabályról: a titkosítási algoritmus erősségét a kulcs határozza meg, és nem maga az algoritmus részletei. Annak érdekében, hogy biztosak legyünk a használt titkosítás erejében, nem elegendő annak elemzése, feltéve, hogy az ellenfél alaposan ismeri a titkosítási algoritmust. Figyelembe kell venni az ezen algoritmus elleni támadást is, amelyben az ellenség bármilyen mennyiségű titkosított és megfelelő szöveget fogadhat. Ezenkívül a megbízhatóság javítása érdekében feltételezni kell, hogy a rejtjelező képes támadást szervezni tetszőleges hosszúságú, választott szöveggel.

Szerencsére a való életben a titkosított fájlok tartalma iránt érdeklődő emberek többsége nem rendelkezik olyan magas szintű szakértelemmel és számítási erőforrásokkal, amelyek a világ nagyhatalmainak kormányai rendelkezésére állnak. Utóbbiak valószínűleg nem vesztegetnek időt és pénzt, hogy elolvassák szenvedélyes, tisztán személyes üzenetét. Ha azonban megdönteni tervezi "Nemzetellenes kormány ”, komolyan át kell gondolnia az alkalmazott titkosítási algoritmus erejét.

A nyers erővel végrehajtott támadás összetettsége és költsége

A nyers erővel történő támadás általában a nyílt szövegű támadás egyik fajtája. Feltételezve, hogy a nyers erő támadása a leghatékonyabb a lehetséges támadások közül az Ön által használt szimmetrikus titkosítási algoritmus ellen. akkor a kulcsnak elég hosszúnak kell lennie ahhoz, hogy sikeresen visszaverje ezt a támadást. Meddig?

Azok a paraméterek között, amelyeket figyelembe kell venni a nyers erővel történő támadás során, először is meg kell említeni

Az ellenőrizendő kulcsok teljes száma és az ellenfél által egy kulcs ellenőrzésére fordított idő. Az adott algoritmushoz tartozó kulcsok száma általában rögzített. Például a DES algoritmus 56 bites kulcsot használ. Ez azt jelenti, hogy a kulcstartó 2 56 kulcsot tartalmaz.

A kulcsellenőrzés sebessége kevésbé fontos, mint a kulcsok száma. A bemutatás egyszerűsége érdekében feltételezhetjük, hogy a titkosítási algoritmustól függetlenül az egyik kulcs ellenőrzéséhez szükséges idő megegyezik. A gyakorlatban ez a feltevés helytelen, és a különböző kriptográfiai algoritmusok esetében ez az idő több tízszer eltérhet. Mivel célunk az, hogy megtaláljuk azt a kulcshosszat, amelynél a titkosítási algoritmus erőssége nyers erővel szemben milliószor nagyobb, mint az a határ, amely ezt a támadást a gyakorlatban kivitelezhetetlenné teszi, feltételezésünk teljesen jogos.

A megfelelő kulcshossz meghatározásakor a DES algoritmust leggyakrabban titkosítási algoritmusnak tekintik. 1977 -ben W. Diffie amerikai kriptológusok (W.Diffie) és M. Hellman (M..Hellman) kijelentette, hogy a jelenlegi fejlettségi szinten számítógépes technológia lehetőség van egy speciális szuperszámítógép felépítésére a DES kulcsok feltörésére brute force módszerrel. Az egymillió mikroáramkörrel, amelyek mindegyike másodpercenként 1 millió kulcsot képes ellenőrizni, ez a szuperszámítógép mind a 2,56 kulcsot 20 óra alatt átjárja.

A brute-force támadás ideális egy párhuzamos szuperszámítógépen való végrehajtáshoz, sok processzorral. A kulcsot kereső egyes processzoroknak nem kell kommunikációt létesíteniük a szuperszámítógép más processzoraival a keresés során. Következésképpen a kulcsok párhuzamos keresésére tervezett speciális szuperszámítógép összes processzora nem feltétlenül ugyanabban a városban található, nemhogy egy szobában.

1993 -ban M. Wiener amerikai kriptológus (M..Wiener) egy szuperszámítógépet tervezett a DES algoritmus elleni brutális erővel történő támadásra. Wiener érvelése nemcsak a DES algoritmusra, hanem szinte bármely más titkosítási algoritmusra is igaz. A Wiener által kifejlesztett szuperszámítógép speciális mikroáramkörökből, táblákból és állványokból áll. Wiener szerint ahhoz, hogy garantálhassuk az 56 bites kulcs 7 órán belüli megnyitását, egy ilyen szuperszámítógép előállítása legfeljebb 1 millió dollárt igényel. A Moore -törvény szerint a számítógépek számítási teljesítményét 18 havonta rögzítik. Ezért 2001 -re a Wiener által feltalált szuperszámítógép költsége 10 -szeresére csökken, és mindössze 100 ezer dollárt tesz ki. Ez azt jelenti, hogy már most a nagyvállalatok és "Menő»A bűnözői struktúrák feltörhetik az 56 bites kulcsokat. 64 bites kulcsok állnak rendelkezésre a katonai titkosítási elemzők számára a legtöbb iparosodott országban.

1996-ban Diffie, Wiener és más neves amerikai kriptológusok közzétették kutatási munkájuk eredményeit, amelyek az információk nyers erővel történő támadások elleni megfelelő védelméhez szükséges kulcshossz meghatározására irányultak. (fül. 6.1).

6.1. Táblázat A nyers erő támadásának költsége és számítási összetettsége

Aki támad

A támadás összetettsége

Erős kulcs

Kis vállalkozás

10 ezer dollár

Nagy cég

10 millió USD

Szövetségi ügynökség

300 millió dollár

A táblázatban szereplőknek. A 6.1 számokat óvatosan kell kezelni. A kriptográfiai kulcsok elleni brute force támadások költségeinek elméleti számítása különböző hosszúságú mindig jelentősen eltér attól, amellyel a titkos elemzők a gyakorlatban találkoznak, amikor szuperszámítógépeket vásárolnak vagy fejlesztenek az ilyen típusú támadások végrehajtására. Ez azzal magyarázható, hogy a feltevések egy része nagyon távol áll a valóságtól, míg más tényezőket egyszerűen nem vesznek figyelembe. Ebben az esetben Diffie, Wiener és mások úgy gondolták, hogy a legfeljebb 10 dollárba kerülő egyedi mikroáramköröket egy speciális szuperszámítógép létrehozására használják a nyers erővel történő támadásokhoz. Az NSA becslése szerint az ilyen mikroáramkörök jellemzően 100-szor drágábbak. Az NSA kétségeket ébresztett és azt a feltételezést, hogy a titkosítási algoritmustól függetlenül csak a kulcshossz határozza meg a titkosítási támadás összetettségét. Ezenkívül a táblázatban nem szerepeltek a K + F költségek, amelyek jellemzően legalább 10 millió dollárt tesznek ki egy első szuperszámítógépre, és nem vették figyelembe a számítógép memória beszerzési költségeit sem.

Az elmondottakból nagyon fontos következtetést lehet levonni. Ha valaki valóban tudni akarja a használt kulcsot, elegendő összeget kell költenie. Ezért a döntő tényező a titkosított információk költsége. Ha az ára egy piaci napon körülbelül 2 dollár, akkor aligha mer valaki 1 millió dollárt költeni annak megszerzésére. De ha a titkosítás elolvasásából származó nyereség 100 millió dollár - óvatosan! Az egyetlen vigasztalás az a tény, hogy idővel minden információ nagyon gyorsan elavul, és elveszíti értékét.

Szoftveres támadás

Ha nincs speciális számítógépes hardver, amely párhuzamosan keresi a kulcsokat, a nyers erő támadása sokkal kevésbé valószínű. Ha azonban nem spórolt meg több millió dollárt az ilyen berendezések gyártására, akkor van egy másik, olcsóbb módja annak, hogy megpróbálja feltörni az Önt érdeklő kulcsot.

A világnak van nagy mennyiség számítógépek (tovább szakértők szerint 1996 -ban a számuk elérte a 200 milliót), amely, hogy ne legyen tétlen, tesztelheti a kulcsokat. Egy 1997 elején végzett kísérlet azt mutatta, hogy egy 48 bites kulcs két héten belül ilyen módon nyitható meg. És bár ezt a kulcsot nyers erővel találták meg, miután az összes lehetséges kulcs valamivel több mint felét ellenőrizték, az eredmény lenyűgöző, mivel a meglévő 200 millióból legfeljebb 5 ezer számítógépet használtak a támadás során, és összesen csak 7 ezer számítógép vett részt a támadásban ...

A világon szétszórt millió számítástechnikai eszköz használatának legfőbb akadálya az, hogy képtelenek rávenni tulajdonosaikat a támadásra. Természetesen udvariasan kérhet mindegyiküktől egy szívességet, de először is sok időbe telik, másodszor pedig a válasz nagy valószínűséggel határozott lesz "Nem". Megpróbálhat a hálózaton keresztül más emberek számítógépeibe lopakodni, de ez még tovább tart, ráadásul le is tartóztathatnak.

Ésszerűbbnek tűnik alkotni Számítógépes vírus amely a fájlok törlése helyett azzal merevlemezés hülye üzeneteket jelenít meg a kijelzőn, a számítógép tulajdonosa észrevétlenül, ez rendezi a lehetséges kulcsokat. Tanulmányok kimutatták, hogy egy vírus a fertőzött számítógép CPU -idejének 70-90% -át fogja birtokolni. A kulcs megnyitása után a vírus generálhat új vírus információt tartalmaz a megtalált kulcsról, és elküldi, hogy vándoroljon számítógép hálózat amíg el nem jut a gazdájához.

Finomabb megközelítéssel a kulcsot észlelő vírus megjeleníti az űrlap adatait a számítógép képernyőjén:

Súlyos hibát észleltünk a számítógépen!

KÉRJÜK HÍVNI TELEFONON (095 )123-45-67

ÉS OLVASSA fel a következő 48 bites számot a kezelőnek:

XXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX

ELSŐ JELENTÉS EZ A HIBA GARANTÁLT

DÍJ 100 MÉRETBEN (STA) DOLLAROK.

Ha a vírusnak sikerül megfertőznie 10 millió számítógépet, amelyek mindegyike legalább 1000 kulcsot ellenőriz másodpercenként, akkor egy 56 bites kulcsot 3 hónap múlva találnak meg. Ezenkívül a gyártók megvesztegetésére is szükség lesz víruskereső szoftver azonban ennek a problémának semmi köze a számítógépes titkosításhoz, amelyről most beszélünk.

Kínai lottó

Tegyük fel, hogy egy brutális erővel történő támadáshoz minden kínai rádióba és tévékészülékbe kivétel nélkül speciális mikroáramkört építenek, amely másodpercenként 1 millió kulcsot ellenőriz. Mindegyikük automatikusan iterál a saját kulcshalmaza felett, miután megkapta a titkosított és megfelelő egyszerű szöveg légtöredékeit. Amint a kínai kormány fel akarja nyitni bármelyik kulcsot, rendeletet fogad el, amely kötelezi a televíziók és rádiók minden tulajdonosát, hogy kapcsolják be készülékeiket. pontos idő hogy elfogadjanak pár darab szöveget, és elkezdhessenek iterálni a billentyűk felett.

A talált kulcsért jelentős díjat ítélnek oda. Ennek köszönhetően a beágyazott mikroáramkörrel rendelkező rádiók és televíziók jól elfogytak, és a kinyitott kulcsokra időben felhívják a kínai kormány figyelmét. Ha figyelembe vesszük, hogy a tíz kínai mindegyikének van rádiója vagy televíziója, akkor kiderül, hogy a kínai kormánynak legfeljebb 43 órája lesz a 64 bites kulcs megnyitása. asztal A 6.2 a 64 bites kulcs feltörésének összetettségét mutatja "Kínai lottó ", amikor Kínában, valamint az Egyesült Államokban, Irakban és Izraelben tartják.

6.2. Táblázat A 64 bites kulcs megnyitásának nehézsége a használatával "Kínai lottó "

Kriptográfiai kulcsok

Ismeretes, hogy minden titkosítási algoritmus kivétel nélkül titkosítási kulcsokat használ. Ezért a titkosítás egyik feladata a kulcsok kezelése, vagyis azok előállítása, felhalmozása és terjesztése. Ha n felhasználó regisztrálva van egy számítógépes hálózatban, és mindenki kapcsolatba léphet mindenkivel, akkor ehhez n * (n-1) / 2 különböző kulcs szükséges. Ebben az esetben mindegyik n felhasználó számára el kell látni egy (n-1) kulcsot, mivel a bizalmas információk védelmének megbízhatósága nagyban függ a választásuktól. A titkosítási rendszer kulcsának megválasztása különösen fontos.

Sőt, mivel szinte minden kriptográfiai kulcs betolakodó nyilvánosságra hozhatja, akkor bizonyos szabályokat kell használni azok kiválasztására, előállítására, tárolására és frissítésére a titkos üzenetek cseréje során, valamint azok kézbesítése során biztonságos módon címzetteknek. Az is ismert, hogy az egykulcsos titkosítási rendszerek biztonságos kommunikációs csatornát igényelnek a kulcskezeléshez. A kétkulcsos titkosítási rendszerek esetében nincs szükség ilyen kommunikációs csatornára.

A kulcsgenerálási folyamatnak véletlenszerűnek kell lennie. Ehhez használhat véletlenszám -generátorokat, valamint azok kombinációját valamilyen kiszámíthatatlan tényezővel, például a bitek kiválasztásával az időzítő leolvasásaiból. A felhalmozás során a kulcsokat nem lehet kifejezetten médiára írni. A biztonság növelése érdekében a kulcsot egy másik kulccsal, egy másikat egy másik kulccsal kell titkosítani stb. Az utolsó kulcs ebben a hierarchiában nem kell titkosítani, de biztonságos hardverre kell helyezni. Az ilyen kulcsot mesterkulcsnak nevezik.

A kiválasztott kulcsokat úgy kell elosztani, hogy ne legyen minta a kulcsok felhasználóról felhasználóra történő cseréjére. Ezenkívül gondoskodni kell a kulcsok gyakori cseréjéről, és azok megváltoztatásának gyakoriságát két tényező határozza meg: az érvényesség ideje és a használatukkal lezárt információk mennyisége.

A kriptográfiai kulcsok hossza és így erőssége is változó: minél hosszabb a kulcs, annál nagyobb a lehetséges kombinációk száma. Tegyük fel, hogy ha a titkosító program 128 bites kulcsokat használ, akkor a megadott kulcs a 2128 lehetséges nullák és egyesek kombinációjának egyike lesz. Egy támadó nagyobb valószínűséggel nyer a lottón, mint hogy megtörje ezt a titkosítási szintet a " nyers erő"(Ez azt jelenti, hogy szisztematikusan végigmegy a kulcsokon, amíg meg nem találja a megfelelőt). Összehasonlításképpen: egy titkosítási szakembernek körülbelül 6 órába telik, amíg egy szimmetrikus 40 bites kulcsot megtalál egy szabványos számítógépen. Még a 128 bites kulcsokkal rendelkező titkosítók is bizonyos mértékben sérülékenyek, mivel a szakemberek kifinomult technikákkal rendelkeznek, amelyek lehetővé teszik a legösszetettebb kódok feltörését is.



A szimmetrikus titkosítási rendszer megbízhatósága függ a használt kriptográfiai algoritmus erősségétől és a titkos kulcs hosszától. Tegyük fel, hogy maga az algoritmus tökéletes: csak az összes lehetséges kulcs kipróbálásával lehet megtörni.

akinek. Az ilyen típusú kriptoanalitikus támadást nyers erő támadásnak nevezik. Alkalmazni ez a módszer, a titkosítási elemzőnek szüksége lesz valamilyen titkosított szövegre és a megfelelő egyszerű szövegre. Például egy blokkotitkosító esetében elegendő, ha rendelkezésére áll egy blokk titkosított és megfelelő egyszerű szöveg. Ezt nem olyan nehéz megtenni.

A titkosítási elemző előre tudhatja az üzenet tartalmát, majd titkosított formában továbbításkor elfoghatja. Bizonyos jelzések szerint azt is sejtheti, hogy az elküldött üzenet nem más, mint egy közös szerkesztővel készített szöveges fájl, szabványos formátumú számítógépes kép, fájl alrendszer -címtár vagy adatbázis. A titkosítási elemző számára fontos, hogy ezen esetek mindegyikében több bájt is ismert legyen az elfogott titkosító üzenet szövegében, ami elegendő lesz ahhoz, hogy támadást indítson.

Elég könnyű kiszámítani a nyers erővel végrehajtott támadás összetettségét. Ha egy kulcs 64 bit hosszú, akkor egy szuperszámítógép, amely 1 millió kulcsot képes tesztelni 1 másodperc alatt, több mint 5000 évet tölt minden lehetséges kulcs ellenőrzésével. Ha a kulcs hosszát 128 bitre növelik, akkor ugyanazon szuperszámítógépnek 1025 évre lesz szüksége az összes kulcs ismétléséhez. Azt mondhatjuk, hogy az 1025 meglehetősen nagy biztonsági rés azok számára, akik 128 bites kulcsokat használnak.

Mielőtt azonban sietve feltalálnánk egy, például 4000 bájtos kulcshosszúságú titkosítási rendszert, emlékeznünk kell a fenti feltételezésre: az alkalmazott titkosítási algoritmus ideális abban az értelemben, hogy csak nyers erővel lehet megtörni. Ennek a gyakorlatban való meggyőződése nem olyan egyszerű, mint amilyennek első pillantásra tűnhet.

A kriptográfia kifinomultságot és türelmet igényel. Az új szuperkomplex kriptorendszerek, alaposabban megvizsgálva, gyakran nagyon instabilnak bizonyulnak. És ha apró változtatásokat is végrehajt egy erős titkosítási algoritmuson, az jelentősen csökkentheti annak erejét. Ezért csak bevált, hosszú évek óta ismert rejtjeleket kell használni, és nem kell félni attól, hogy betegesen gyanakvóak legyenek a legújabb titkosítási algoritmusokkal szemben, függetlenül azok szerzőinek nyilatkozatától ezen algoritmusok abszolút megbízhatóságáról.

Az is fontos, hogy ne felejtsük el, hogy a titkosítási algoritmus erősségét a kulcs határozza meg, és nem maga az algoritmus részletei. Annak érdekében, hogy biztosak legyünk a használt titkosítás erejében, nem elegendő annak elemzése, feltéve, hogy az ellenfél alaposan ismeri a titkosítási algoritmust. Figyelembe kell venni az ezen algoritmus elleni támadást is, amelyben az ellenség bármilyen mennyiségű titkosított és megfelelő szöveget fogadhat. Sőt, feltételezni kell, hogy a rejtjelező képes támadást szervezni tetszőleges hosszúságú, választott szöveggel.

Szerencsére a való életben a titkosított fájlok tartalma iránt érdeklődő emberek többsége nem rendelkezik kiváló minőségű szakemberek képesítésével és a szükséges számítási erőforrásokkal, amelyek a világ nagyhatalmainak kormányai rendelkezésére állnak. Utóbbiak valószínűleg nem vesztegetnek időt és pénzt, hogy elolvassák lelkes, tisztán személyes Yosilját. Ha azonban úgy tervezi,

Ha meg akarja dönteni a "népellenes kormányt", akkor komolyan át kell gondolnia az alkalmazott titkosítási algoritmus erejét.

Sok modern nyilvános kulcsú titkosítási algoritmus egy szám egyirányú faktorizálásán alapul, amely két nagy prímszám eredménye. Ezeket az algoritmusokat brutális erővel is meg lehet támadni a titkos kulcsok rejtjelezése ellen, egyetlen különbséggel: nem kell minden kulcsot kipróbálnia, csak nagy számot kell tudnia figyelembe venni.

Természetesen nagy számok faktorálása nehéz. Azonban azonnal felmerül egy ésszerű kérdés, mennyire nehéz. Sajnos a rejtjelezők számára a megoldás egyszerűsödik, és ami még rosszabb, a vártnál lényegesen gyorsabb. Például az 1970-es évek közepén úgy gondolták, hogy a 125 számjegyek számításba vétele tízmilliárd évet vesz igénybe. És alig két évtizeddel később, az internethez csatlakoztatott számítógépek segítségével gyorsan sikerült 129 számjegyből álló számot tényezőkké alakítani. Ez az áttörés annak a ténynek köszönhető, hogy az elmúlt 20 évben nemcsak új, gyorsabb módszereket javasoltak a nagy számok faktorálására, hanem a használt számítógépek teljesítményét is.

Ezért egy képzett titkosítónak nagyon óvatosnak és diszkrétnek kell lennie, ha hosszú nyilvános kulccsal dolgozik. Figyelembe kell venni, hogy a segítségével minősített információk mennyire értékesek, és meddig kell titokban maradniuk a kívülállók számára.

Miért nem vesz egy 10 000 bites kulcsot? Végül is eltűnik minden olyan kérdés, amely egy aszimmetrikus nyilvános kulcsú titkosítási algoritmus erősségével kapcsolatos, amely nagyszámú faktorálásán alapul. De a lényeg az, hogy a titkosító kellő erősségének biztosítása nem csak a titkosító gondja. Vannak további megfontolások, amelyek befolyásolják a kulcshossz kiválasztását, és ezek között vannak olyan kérdések is, amelyek a kiválasztott kulcshosszúság titkosítási algoritmusának gyakorlati megvalósításával kapcsolatosak.

A nyilvános kulcs hosszának becsléséhez megmérjük az úgynevezett mopszévekben a kriptoanalitikusok számára rendelkezésre álló számítási teljesítményt, azaz a műveletek számát, amelyet egy számítógép 1 millió művelet másodpercenként képes végrehajtani. egy évben. Tegyük fel, hogy egy támadó hozzáfér a megosztott számítógépes erőforrásaihoz számítási teljesítmény 1000 mopsz éves, nagyvállalat 107 mopsz éves, kormány 109 mopsz éves. Ezek meglehetősen valós számok, tekintve, hogy a fent említett 129 számjegyű bontási projekt végrehajtása során résztvevői az Internet számítási teljesítményének mindössze 0,03% -át használták fel, és ennek elérése érdekében nem rendkívüli intézkedéseket kell tennie, vagy túl kell lépnie a törvényen ... Az asztaltól. 4.6 láthatja, hogy mennyi időbe telik a különböző hosszúságú számok lebontása.

A feltevések lehetővé teszik számunkra, hogy megbecsüljük az erős nyilvános kulcs hosszát attól függően, hogy milyen időszak alatt kell titokban tartani az adatokat a segítségével (4.7. Táblázat). Emlékeztetni kell arra, hogy a nyilvános kulcsú titkosítási algoritmusokat gyakran használják nagyon értékes információk védelmére nagyon hosszú ideig. Például elektronikus rendszerekben

Táblázat. A számok hossza és a számításukhoz szükséges idő közötti kapcsolat

vagy elektronikus aláírás közjegyzői hitelesítésekor. Nagyon vonzónak tűnhet valakinek az az elképzelés, hogy több hónapot nagyszámú tényező figyelembevételével tölt, ha ennek eredményeként valaki más hitelkártyájával fizethet vásárlásaiért.

Táblázatban megadott. 4.7 Nem minden titkosító ért egyet az adatokkal. Némelyikük határozottan megtagadja a hosszú távú előrejelzéseket, haszontalannak tartja, míg mások túlzottan bizakodóak, és a digitális aláírási rendszerekhez csak 512-1024 bites nyilvános kulcshosszat javasolnak, ami teljesen nem elegendő a megfelelő hosszú távú védelem biztosításához. .

A titkosítási algoritmus elleni titkosítási támadás általában a titkosítási algoritmus legsebezhetőbb pontjára irányul. A titkosított kommunikáció megszervezéséhez gyakran titkos és nyilvános kulccsal rendelkező titkosítási algoritmusokat használnak. Az ilyen kriptorendszert hibridnek nevezik. A hibrid titkosítási rendszerben található algoritmusok erősségének elegendőnek kell lennie ahhoz, hogy sikeresen ellenálljon a támadásoknak. Például ostobaság egy 128 bites kulcshosszúságú szimmetrikus algoritmust használni egy aszimmetrikus algoritmussal együtt, amelyben a kulcshossz csak 386 bit. Ezzel szemben nincs értelme a szimmetrikus 56 bites kulcs algoritmust az 1024 bites kulcs aszimmetrikus algoritmusával együtt használni.

Táblázat: 4.8. Kulcshosszak szimmetrikus és aszimmetrikus algoritmusokhoz

azonos erősségű titkosítás

asztal A 4.8 felsorolja a szimmetrikus és aszimmetrikus kriptográfiai algoritmus kulcshosszúság-párjait, amelyek esetében mindkét algoritmus ellenállása nyers erővel végzett kriptoanalitikus támadással szemben megközelítőleg azonos. Ezekből az adatokból következik, hogy ha szimmetrikus algoritmust használnak 112 bites kulccsal, akkor aszimmetrikus algoritmust kell használni 1792 bites kulccsal. A gyakorlatban azonban az aszimmetrikus titkosítási algoritmus kulcsát általában biztonságosabbnak választják, mint a szimmetrikushoz, mivel az előbbi segítségével sokkal nagyobb mennyiségű információ védett és hosszabb ideig.

nyilvános kulcs, megjegyezte, hogy ez a követelmény tagadja a kriptográfia teljes lényegét, nevezetesen azt a képességet, hogy fenntartsák az általános titoktartást a kommunikációban.

A második feladat olyan mechanizmusok létrehozásának szükségessége, amelyek használatakor lehetetlen lenne bármely résztvevőt kicserélni, azaz szükség digitális aláírás... Ha a kommunikációt sokféle célra használja, például kereskedelmi és magáncélokra, az e-maileknek és dokumentumoknak a papír alapú dokumentumokon található aláírással egyenértékűnek kell lenniük. Olyan módszert kell létrehozni, amellyel minden résztvevő meg lesz győződve arról elektronikus üzenet egy meghatározott résztvevő küldte. Ez erősebb követelmény, mint a hitelesítés.

Diffie és Hellman jelentős eredményeket értek el azzal, hogy mindkét probléma megoldásának módját felajánlották, ami gyökeresen különbözik a titkosítás minden korábbi megközelítésétől.

Nézzük először a közös jellemzőket. titkosítási algoritmusok nyilvános kulccsal és ezen algoritmusokkal szemben támasztott követelményekkel. Határozzuk meg azokat a követelményeket, amelyeket egy algoritmusnak meg kell felelnie, amely egy kulcsot használ a titkosításhoz, és egy másik kulcsot a visszafejtéshez, és számításilag lehetetlen meghatározni a visszafejtési kulcsot, csak a titkosítási algoritmus és a titkosítási kulcs ismeretében.

Ezenkívül néhány algoritmusnak, például az RSA -nak a következő jellemzője van: a két kulcs mindegyike használható mind a titkosításra, mind a visszafejtésre.

Először is megvizsgáljuk azokat az algoritmusokat, amelyek mindkét tulajdonsággal rendelkeznek, majd áttérünk a nyilvános kulcsú algoritmusokra, amelyek nem rendelkeznek a második tulajdonsággal.

Leírásakor szimmetrikus titkosításés a nyilvános kulcsú titkosítást a következő terminológiát fogjuk használni. A használt kulcs szimmetrikus titkosítás, felhívjuk titkos kulcs... A nyilvános kulcsú titkosításban használt két kulcs meghívásra kerül nyilvános kulcsés privát kulcs... A privát kulcsot titokban tartják, de titkos kulcsnak nevezzük, hogy ne keverjük össze a szimmetrikus titkosítás... A privát kulcs KR, a nyilvános kulcs pedig KU lesz.

Feltételezzük, hogy minden résztvevő hozzáférhet egymás nyilvános kulcsaihoz, és a privát kulcsokat minden résztvevő helyben generálja, ezért nem szabad terjeszteni.

A résztvevő bármikor megváltoztathatja az övét privát kulcsés tegye közzé a komponáló nyilvános kulcsot, és cserélje le vele a régi nyilvános kulcsot.

Diffie és Hellman leírja azokat a követelményeket, amelyeket teljesíteni kell titkosítási algoritmus nyilvános kulccsal.

  1. Számítási szempontból könnyen létrehozható egy pár (KU nyilvános kulcs, KR privát kulcs).
  2. A nyilvános kulcs és a titkosítatlan M üzenet alapján számítási szempontból egyszerű a megfelelő titkosított üzenet létrehozása:
  3. Számítási szempontból egyszerű az üzenet visszafejtése a privát kulcs használatával:

    M = D KR [C] = D KR]

  4. A nyilvános kulcsú KU ismeretében számítási szempontból lehetetlen meghatározni a KR privát kulcsot.
  5. Számítási szempontból lehetetlen a KU nyilvános kulcs és a C titkosított üzenet ismeretében visszaállítani az eredeti M üzenetet.

    Hozzáadható egy hatodik követelmény, bár ez nem minden nyilvános kulcsú algoritmusra vonatkozik:

  6. A titkosítási és visszafejtési funkciók bármilyen sorrendben használhatók:

    M = E KU]

Ezek meglehetősen erős követelmények, amelyek bevezetik a fogalmat. Egyirányú funkció függvénynek nevezzük, amelyben minden argumentumnak egyetlen inverz értéke van, míg maga a függvény kiszámítása egyszerű, de az inverz függvény kiszámítása nehéz.

Általában az "egyszerű" azt jelenti, hogy a probléma polinomidőben megoldható a bemenet hosszából. Így ha a bemeneti hossz n bitből áll, akkor a függvény számítási ideje arányos n a -val, ahol a fix állandó. Így az algoritmus az R polinomiális algoritmusok osztályába tartozik. A "kemény" kifejezés összetettebb fogalmat jelent. Általános esetben feltételezzük, hogy a probléma nem oldható meg, ha a megoldására irányuló erőfeszítések nagyobbak, mint a bemeneti érték polinomiális ideje. Például, ha a bemenet hossza n bit, és a függvény számítási ideje arányos 2 n -vel, akkor ezt számítási szempontból lehetetlen feladatnak tekintjük. Sajnos nehéz eldönteni, hogy egy adott algoritmus ilyen bonyolult -e. Ezenkívül a számítás bonyolultságának hagyományos megértése az algoritmus legrosszabb vagy átlagos esetére összpontosít. Ez elfogadhatatlan a kriptográfia esetében, ahol a funkció nem képes az összes vagy szinte az összes bemeneti érték invertálására.

Térjünk vissza a definícióhoz egyirányú funkció napfénytetővel ami, mint egyirányú funkció, könnyű számítani egy irányba, és nehéz számítani az ellenkező irányba, amíg néhány további információ... Ezzel a kiegészítő információval az inverzió polinomidőben számítható ki. És így, egyirányú funkció nyílással tartozik a családhoz egyirányú funkciók f k olyan, hogy

Látjuk, hogy egy adott nyilvános kulcsú algoritmus kifejlesztése a megfelelő felfedezésétől függ egyirányú funkció napfénytetővel.

Nyilvános kulcsú algoritmusok rejtjelezése

Mint az esetben szimmetrikus titkosítás, titkosítási algoritmus nyilvános kulccsal sebezhető a frontális támadásoknak. Az ellenintézkedés szabványos: használjon nagy kulcsokat.

Egy nyilvános kulcsú titkosítási rendszer bizonyos nem megfordíthatót alkalmaz matematikai függvények... Az ilyen függvények számítási összetettsége nem lineáris a kulcs bitszámában, hanem gyorsabban növekszik, mint a kulcs. Így a kulcs méretének elég nagynak kell lennie ahhoz, hogy a frontális támadás kivitelezhetetlen legyen, és elég kicsi ahhoz, hogy lehetővé tegye a gyakorlati titkosítást. A gyakorlatban a kulcs méretét úgy alakítják ki, hogy a frontális támadás nem praktikus, de ennek eredményeként a titkosítási sebesség elég lassú az algoritmus általános használatához. Ezért a nyilvános kulcs titkosítása jelenleg főként a kulcskezelő és aláíró alkalmazásokra korlátozódik, amelyek egy kis adatblokk titkosítását igénylik.

A támadás másik formája az, hogy a nyilvános kulcs ismeretében módot kell találni a privát kulcs kiszámítására. Ezt matematikailag lehetetlen bizonyítani adott formában a támadások kizártak egy adott nyilvános kulcsú algoritmus esetén. Így minden algoritmus, beleértve a széles körben használt RSA algoritmust is, gyanús.

Végül van egy olyan támadásforma, amely a nyilvános kulcsú rendszerek használatára jellemző. Ez egy valószínű üzenettámadás. Tegyük fel például, hogy az elküldendő üzenet kizárólag egy 56 bites munkamenetkulcsból áll egy szimmetrikus titkosítási algoritmus számára. Az ellenfél titkosíthatja az összes lehetséges kulcsot a nyilvános kulccsal, és dekódolhat minden üzenetet, amely megfelel a továbbított titkosított szövegnek. Így a nyilvános kulcs séma kulcsméretétől függetlenül a támadás frontális támadásra redukálódik az 56 bites rendszerre szimmetrikus kulcs... Az ilyen támadások elleni védekezés bizonyos számú véletlenszerű bit hozzáadásával történik az egyszerű üzenetekhez.

A nyilvános kulcsú algoritmusok használatának fő módjai

A nyilvános kulcsú algoritmusok fő felhasználási területei a titkosítás / visszafejtés, az aláírásgenerálás és -ellenőrzés, valamint a kulcscsere.

Titkosítás nyilvános kulccsal a következő lépésekből áll:


Rizs. 7.1.

  1. A B felhasználó létrehoz egy pár KU b és KR b kulcsot az átvitt üzenetek titkosításához és visszafejtéséhez.
  2. A B felhasználó valamilyen megbízható módon bocsátja rendelkezésre titkosítási kulcsát, azaz nyilvános kulcs KU b. A párt alkotó KR b privát kulcs titokban marad.
  3. Ha A üzenetet akar küldeni B -nek, akkor titkosítja az üzenetet B nyilvános kulcsának KU b segítségével.
  4. Amikor B üzenetet kap, a KR b privát kulcsa segítségével visszafejti azt. Senki más nem tudja visszafejteni az üzenetet, mivel csak B ismeri ezt a privát kulcsot.

Ha a felhasználó (végrendszer) biztonságosan tárolja privát kulcsát, akkor senki sem lesz képes kémkedni az átvitt üzenetek után.

Az aláírás létrehozása és ellenőrzése a következő lépésekből áll:


Rizs. 7.2.
  1. Az A felhasználó létrehoz egy pár KR A és KU A kulcsot az átvitt üzenetek aláírásának létrehozásához és ellenőrzéséhez.
  2. Az A felhasználó valamilyen megbízható módon hozzáférhetővé teszi ellenőrző kulcsát, azaz

Az SSL tanúsítványok használatának fő célja a kliensről a szerverre, a szerverről az ügyfélnek továbbított adatok titkosítása. Az ilyen kapcsolat biztonságának biztosítása érdekében a modern böngészők az X.509 tanúsítványokon alapuló TLS algoritmust használják. Ez az algoritmus aszimmetrikus titkosítást alkalmaz munkamenetkulcs létrehozásához a szimmetrikus titkosításhoz. Ez utóbbit közvetlenül adatátvitelre használják biztonságos kapcsolat létrehozása után.

Mi a kulcs a kriptográfiában?

A titkosítás kulcsa egy titkos információ, amelyet a titkosításban használnak az üzenetek titkosítására és dekódolására, a digitális aláírás rögzítésére és ellenőrzésére, az üzenet hitelesítési kódok kiszámítására stb. A kulcs megbízhatóságát az úgynevezett kulcshossz határozza meg, amelyet bitekben mérnek. Az SSL -tanúsítványok szabványos kulcshossza 128 vagy 256 bit. A gyökértanúsítvány kulcsának hossza nem lehet kevesebb, mint 4096 bit. Minden tanúsító hatóság, akivel együttműködünk, SSL tanúsítványokat biztosít a modern szabványoknak teljes mértékben megfelelő kulccsal:

Nyilvános és privát kulcs aszimmetrikus titkosításban

Aszimmetrikus titkosítást használ kulcspár: nyilvános (nyilvános kulcs)és zárva, más néven titok (Privát kulcs). A nyilvános és a privát kulcsok ebben az esetben lehetővé teszik a titkosítási algoritmus számára az üzenet titkosítását és visszafejtését. A nyilvános kulccsal titkosított üzeneteket azonban csak privát kulccsal lehet visszafejteni. A nyilvános kulcs a tulajdonos tanúsítványában jelenik meg, és a csatlakozó ügyfél számára elérhető, míg a privát kulcsot a tanúsítvány tulajdonosa őrzi. A nyilvános és a privát kulcsokat matematikai függőségek kötik össze, ezért lehetetlen rövid idő alatt (tanúsítvány érvényességi ideje) megtalálni a nyilvános vagy a privát kulcsot. Ezért a magasabb biztonsági szintű SSL -tanúsítványok maximális érvényességi ideje mindig alacsonyabb. Tehát maximum 2 évre lehet rendelni. Ugyanakkor új SSL -tanúsítvány megrendelésekor vagy a régi megújításakor fontos új CSR -kérést generálni, mivel a privát kulcsa hozzá van kötve, és jobb, ha új SSL -tanúsítvány kiadásakor megújítja. A kliens és a szerver közötti interakció a következő:
  1. a böngésző a nyilvános kulcs alapján titkosítja a kérést, és elküldi a szervernek;
  2. a szerver a privát kulcs használatával dekódolja a fogadott üzenetet;
  3. a szerver titkosítja digitális azonosítóját egy privát kulccsal, és továbbítja azt az ügyfélnek;
  4. az ügyfél ellenőrzi a szerver azonosítóját és továbbítja a sajátját;
  5. kölcsönös hitelesítés után az ügyfél titkosítja a jövőbeli munkamenet kulcsát a nyilvános kulccsal, és továbbítja azt a szervernek;
  6. minden későbbi üzenet, amelyet a kliens és a szerver között továbbítanak, alá van írva a munkamenetkulccsal, és titkosítva vannak a nyilvános és a privát kulcsokkal.
Így több biztonsági pont is biztosított:
  • az információszivárgás lehetősége kizárt - ha lehallgatják, nem lehet visszafejteni;
  • a szerver megerősíti a címét és az azonosítóját, a másik oldalra való átirányítás (adathalászat) lehetősége megszakad;
  • az ügyfél egyéni munkamenetet kap, ami lehetővé teszi, hogy megbízhatóbban megkülönböztessük őt a többi ügyféltől;
  • a biztonságos munkamenet létrehozása után az összes üzenetet az ügyfél -azonosítóval titkosítják, és nem lehet észrevétlenül elfogni vagy módosítani.

Általánosságban elmondható, hogy a nyilvános és a privát kulcs titkosítása olyan esetnek tekinthető, amelyhez két kulcsot használnak: az egyik csak bezárható, a másik kinyitható. Ha a tokot az első kulccsal lezárták, akkor csak a második tudja kinyitni; ha a másodikkal zárták, akkor a kinyitáshoz szüksége lesz az elsőre. Ez jól látható a fenti ábrán.