Uporaba kriptografije v internetu
Kazalo   
 

Simetrični algoritmi

Delimo jih na dve skupini:

  • tekoče šifriranje - sporočilo šifriramo bit za bitom (stream ciphers);
  • sporočilo razbijemo na bloke in vsak blok posebej šifriramo (block ciphers)..

Pri prvem načinu šifriramo tako, da kombiniramo bit ključa in bit sporočila (običajno je to kar XOR). Če uporabimo kratek, ponavljajoč ključ, postopek ni varen - s kombiniranjem zašifriranega teksta je razmeroma lahko ugotoviti najprej dolžino ključa, potem vrednost ključa in dešifrirati sporočilo. Nasprotno pa je ta sistem nezlomljiv, če se ključ ne ponavlja in je povsem naključen niz bitov (one-time pad).

Večina algoritmov, ki jih danes uporabljamo v civilnih organizacijah, je blokovnih: sporočilo razbijemo na tako dolge bloke, kot zahteva algoritem, in vsak blok preoblikujemo in kombiniramo s ključem. Permutacije, substitucije in kombinacije s ključem (glej n.pr.opis DES-a) morajo zagotoviti, da so v izhodnem bloku zabrisani vsi vzorci iz vhodnega bloka - skratka, da izgleda kot naključen niz bitov. Za vse dobre simetrične algoritme velja, da se izhoda ne da kompresirati za več kot nekaj odstotkov.

Pri blokovnih algoritmih je pomembno tudi, kako spreminjamo ključ pri šifriranju zaporednih blokov.

Kdaj je algoritem varen? Napad s preizkušanjem vseh možnih kombinacij bitov ključa (brute-force attack) je za kriptoanalitika najslabša možnost. Poznajo tudi druge, hitrejše metode. Zato je bistveno, da je algoritem javno objavljen in da so ga imeli možnost preizkusiti vodilni kriptoanalitiki.

Pomembno pa je tudi, kako je algoritem implementiran:

  • implementiran neokrnjen algoritem;
  • uporaba načina, ki spreminja ključ (CBC, CFB ali OFB);
  • testiranje in izločitev šibkih ključev pri nekaterih algoritmih;
  • generiranje ključev s pravimi generatorji naključnih števil;
  • primerno dolg ključ (po podatkih iz leta 1997 vsaj 70 bitov, za leto 2000 pa 86 bitov).

Najbolj znani simetrični algoritmi so:

  • DES (Data Encryption Standard) ali DEA (Data Encryption Algorithm), ki sta ga razvila NIST (National Institute of Standards and Technology) ter IBM.

  • RC2, RC4, RC5 - je razvil Ronald Rivest. RC2 je vgrajen v mail. Dopušča ključe dolžine 1 do 2048 bitov. V softveru, ki ga prodajajo izven ZDA, običajno omejijo ključ na 40 bitov dolžine, kar seveda pomeni manjšo varnost. RC4 je tekoč šifrirni algoritem z variabilno dolžino ključa do 2048 bitov. Vgrajen je v brskalnike kot del protokola SSL oziroma TLS. Pred letom 2000 je ameriška verzija uporabljala 128-bitni ključ, neameriška pa 40-bitnega, zdaj je možno povsod uporabljati 128-bitni ključ.

    RC5 je bil objavljen 1994. Uporabnik lahko določi dolžino ključa, velikost bloka in število ponovitev šifrirnega postopka.

  • IDEA (International Data Encryption Algorithm): razvila sta ga James L.Massey in Xuejia Lai v Zuerichu in objavila 1990. Uporablja 128 bitov dolg ključ na 64 bitov dolgih blokih. Patent zanj ima Ascom-Tech iz Švice. Če DES uporabljamo s trojnim ključem, je počasnejši od IDEE.

Ameriška organizacija za standarde NIST (National Institute of Standards and Technology) je septembra 1997 razpisala natečaj za naslednika algoritma DES, ki naj bi bil močnejši in hitrejši od trojnega DES, odporen proti vsem zdaj znanim napadom, s 128 in 256-bitnimi ključi ter ne bi smel biti patentiran.

Izmed 15 kandidatov so se v finale uvrstili naslednji algoritmi, ki so vsi uspešno prestali testiranja:

  • MARS (IBM)
  • RC6 (RSA Laboratories)
  • Rijndael (Joan Daemen, Vincent Rijmen)
  • Serpent (Ross Anderson, Eli Biham, Lars Knudsen)
  • Twofish (Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson)

Postopek za izbiro "algoritma za 21. stoletje" Advanced Encryption Standard (AES) je bil zaključen 2. oktobra 2000, ko je bil izbran algoritem Rijndael.

Ažurirano oktobra 2000