Uporaba kriptografije v internetu
Kazalo   
 

Kako dolgi morajo biti ključi za dovolj varno šifriranje podatkov?

Te številke so seveda najprej odvisne od vrste algoritma. Pri simetričnih (RC2, RC4, IDEA, DES, trojni DES, CAST, GOST, Rijndael, ...) moramo za dešifriranje najti pravo kombinacijo bitov ključa. Če predpostavimo, da algoritem nima varnostnih lukenj, je v povprečju treba preizkusiti pol od vseh možnih kombinacij bitov, da najdemo pravo kombinacijo. Pri 40-bitnem ključu je treba preiskati 239 kombinacij, kar je približno 1012 . Če imamo računalnik, ki preizkusi milijon kombinacij na sekundo, bo potreboval milijon sekund, kar je več kot 11 dni. V literaturi lahko najdemo tabele, ki navajajo te čase v odvisnosti od cene opreme, ki jo imamo.

Za leto 1995 navaja Bruce Schneier v svoji knjigi Applied Cryptography naslednje vrednosti za čase glede na dolžino ključa (izvleček iz tabele na str.153):
Cena opreme
40 bitov
56 bitov
112 bitov
128 bitov
$ 100.000
2 sek
35 ur
1014 let
1019 let
$ 10.000.000
0.02 sek
21 minut
1012 let
1017 let

Malo je sicer verjetno, da bi nekdo uporabljal tako drago opremo za to, da bi po internetu prestrezal številke kreditnih kartic, dokler lahko do njih pride na veliko lažji in cenejši način. Vendar se ne smemo zanašati na to, saj se te ocene časov in cen vsako leto zelo znižajo. Pričakujemo lahko tudi izboljšane postopke za iskanje kombinacij (paralelno iskanje, ...). Od novembra 1999 je na internetu dostopna raziskava dr. Arjana Lenstre in Erica Verheula: Selecting Cryptographic Key Sizes (http://security.ece.orst.edu/koc/ece575/papers/cryptosizes.pdf), v kateri priporočata 86-bitne ključe. Ta dolžina naj bi bila po njunih predvidevanjih varna do leta 2020. To pomeni, da DES ni več dovolj varen, uporabljati moramo trojni-DES, AES, 128-bitni RC4 ...

Zakaj sploh govorimo o tem problemu? Ali nimata Netscape Communicator in MS Internet Explorer vključenega 128-bitnega RC4 in trojnega DES?
Do januarja 2000 je veljalo naslednje:

Ameriški zakon uvršča šifrirno opremo med orožje. Najprej je veljala splošna omejitev izvoza take opreme na 40-bitne ključe, leta 1998 pa so dovolili uporabo DES-a (torej 56-bitnih ključev) in pa dodatno izjemo , ki ji pravijo "Server Gated Cryptography (SGC)" ali pa "International Step-Up" in je vezana na strežnikov certifikat:

Ob vzpostavitvi povezave brskalnik preveri strežnikov certifikat.
Če ima ta vključen dodatek SGC za rabo ključa, brskalnik ve, da sme uporabljati neomejene ključe (n.pr. 128 bitov za RC4). Vendar pa take certifikate lahko podeljujeta samo Verisign in od konca leta 1999 tudi Thawte (ta od verzij Navigator 4.7 in MSIE 5.01). Lahko jih dobe le bančne, finančne in zdravstvene organizacije ter trgovci za poslovanje izven ZDA, vendar ne iz vseh držav. Slovenija zaenkrat ni na spisku držav, za katere je to prepovedano, zato imajo strežniki Ljubljanske banke, SKB ter Eona take certifikate od Verisigna.

Oprema za digitalno podpisovanje ni vključena v izvozne omejitve, vendar je v praksi težko ločiti, kaj se uporablja samo za podpisovanje in kaj tudi za šifriranje, zato od te izjeme ni dosti koristi.

Američani so od konca leta 1999 pripravljali nov predpis, ki je bil objavljen 14. januarja 2000. Izvoz je sproščen, vendar omejitve niso povsem odpravljene:

  • Odpravljene so omejitve za tiste produkte, ki smo jih že dozdaj lahko dobili neokrnjene z neameriških strežnikov (PGP, brskalniki).
  • Dovoljeno je objaviti izvorno kodo programov in algoritmov za šifriranje podatkov.
  • Za drugo opremo je zgornja meja za ključe simetričnih algoritmov zvišana na 64 bitov, za prodajo neokrnjenega produkta pa mora proizvajalec še vedno dobiti izvozno dovoljenje.

Čeprav torej za brskalnike in spletne strežnike omejitve ne veljajo več (če se je proizvajalec potrudil in pridobil izvozno dovoljenje), se še vedno najdejo proizvodi z omejenimi ključi, zato raje preverimo, kakšno opremo uporabljamo.

Za asimetrične algoritme (RSA, Diffie-Hellman), kjer je treba faktorirati veliko število ali pa poiskati diskretni logaritem, smo imeli ključ omejen na 512 bitov. Zdaj imamo tako kot Američani možnost uporabljati daljše ključe, kar v praksi pomeni, da uporabljamo 1024 in 2048-bitne ključe.
Lenstra in Verheul priporočata za leto 2000 vsaj 952 bitov, za 2001 vsaj 990 bitov, za 2002 1028 bitov, za leto 2020 pa 1881 bitov. Priporočilo RSA pa je povzeto v naslednji tabeli:

Obdobje zaščite podatkov:
do leta 2010
do leta 2030
po letu 2030
Najnižji nivo varnosti za simetrične algoritme
80 bitov
112 bitov
128 bitov
Minimalna dolžina ključa RSA
1024 bitov
2048 bitov
3072 bitov

Kombiniramo algoritme, ki si po stopnji varnosti ustrezajo. Ni pametno kombinirati šibkih simetričnih ključev z močnimi asimetričnimi ali obratno. O tem govori aprila 2004 objavljeni RFC 3766 - Determining Strengths For Public Keys Used For Exchanging Symmetric Keys. Pri tem je pomembno, da upoštevamo, kako dolgo morajo biti podatki zaščiteni. Overitelji izdajajo digitalna potrdila za več let, zato bi morali biti pripadajoči asimetrični ključi tako dolgi, da bodo varni do izteka veljavnosti potrdil.

Od novembra 2005 je na voljo spletna stran http://www.keylength.com, kjer so na voljo tabele z ustreznimi dolžinami ključev glede na zahteve aplikacije, ki jih bo uporabljala.


Pavla Lah, december 1999, zadnja dopolnitev januarja 2006