Rodzaje algorytmów szyfrujących oraz ich implementacje programowe

Szyfrowanie przeprowadza się za pomocą funkcji matematycznych zwanych algorytmami szyfrującymi.

Najważniejsze algorytmy szyfrujące

DES (Data Encryption Standard) powstał w latach 70. i był efektem współpracy IBM z amerykańską wewnętrzną agencją wywiadowczą NSA. W zamierzeniach był to algorytm szyfrujący informacje wymieniane w obrębie jednostek administracyjnych USA. Ponieważ długość klucza szyfrującego wynosiła 56 bitów algorytm ten nie spełnia współcześnie wymaganych poziomów zabezpieczeń. Jest on jednak stosowany nadal dzięki szyfrowaniu kaskadowemu (wielokrotnemu szyfrowaniu tym samym algorytmem za pomocą niepowiązanych za sobą kluczy). Właśnie takie jego odmiany, jak 3DES, Triple DES czy TDES, znajdują zastosowanie w sektorze usług bankowych.

RSA jest algorytmem powstałym pod koniec lat 70 na uniwersytecie MIT, a jego nazwa pochodzi od nazwisk pracujących nad nim kryptologów (Rivest/Shamir/Adleman). Jest on dosyć popularnym algorytmem a jego bezpieczeństwo związanie jest z trudnością rozkładania (faktoryzacji) dużych liczb całkowitych na czynniki pierwsze. Znalezienie takiej metody doprowadziłoby do złamania szyfru opartego o ten algorytm. Jego bezpieczeństwo związane jest także z zastosowaniem odpowiednio długich kluczy szyfrujących (4096 bitów). RSA to metoda asymetryczna, służąca zarówno do szyfrowania jak i cyfrowego podpisywania. Jest to jednak dosyć wolny algorytm i z tego względu stosuje się go przeważnie do wymiany klucza publicznego, dane zabezpiecza się za pomocą szyfrowania symetrycznego. Rozwiązanie takie daje przewagą w postaci bezpiecznej wymiany klucza i wydajnego szyfrowania.

AES (Edvanced Encryption Standard, zwany niekiedy, od nazwisk jego twórców - Rijmen, Daemen - algorytmem Rijndael) powstał jako następca algorytmu DES. Szyfr występuje w trzech odmianach: z kluczem 128, 192 i 256 bitów. Algorytm ten jest dostępny publicznie i może być implementowany, zarówno sprzętowo jak i programowo, bez żadnych opłat licencyjnych. Uchodzi on za wyjątkowo bezpieczny i stosowany jest w USA standardowo do szyfrowania dokumentów wagi państwowej opatrzonych klauzulą najwyższej poufności.

IDEA (International Data Encryption Algorithm) jest stosunkowo młodym szyfrem - jego korzenie sięgają roku 1990. Po wygaśnięciu w 2011 roku obejmujących go patentów może być swobodnie wykorzystywany w dowolnych zastosowaniach. Algorytm ten operuje 128. bitowymi kluczami, a ponieważ nie udało się przeprowadzić na niego udanego ataku uważany jest za stosunkowo bezpieczny i polecany do implementacji.

Twofish był jednym z pięciu algorytmów zakwalifikowanych do finału konkursu na AES (ostatecznie wygranego przez algorytm Rijndael). Wykorzystuje on klucze o długościach 128, 192 oraz 256 bitów, a zbudowany jest z 16. rund wykorzystujących do obliczeń, upraszczającą konstruowanie algorytmów, tzw. sieć Feistela.

Jednym z finalistów konkursu Advanced Encryption Standard (AES) był Serpent, plasujący się ostatecznie na drugim miejscu, zaraz po Rijndealu. To wyjątkowo bezpieczny szyfr, jednak dużo wolniejszy od zwycięzcy. Algorytm opiera się na kluczu 128, 192 lub 256 bitów. Serpent nie podlega prawom patentowym i można go swobodnie implementować w dowolnych zastosowaniach programowych i sprzętowych.

Za najbardziej bezpieczne uchodzą obecnie algorytmy AES, 3DES oraz Twofish. W szyfrowaniu AES standardy bezpieczeństwa spełnia klucz długości 256. bitów, w przypadku algorytmu RSA za bezpieczny uznaje się klucz przynajmniej 1024. bitowy.

Oprogramowanie szyfrujące

Oprogramowanie, które wykorzystuje użytkownik do przeprowadzenia operacji szyfrujących projektowane jest w oparciu o takie właśnie algorytmy. Dostępnych jest wiele aplikacji służących kryptografii, niektóre z nich można wykorzystać bezpłatnie. Możliwość szyfrowania proponują np. niektóre aplikacje do kompresowania danych. Bezpłatny 7-Zip wyposażony został w algorytm AES z kluczem długości 256 bitów, a WinRAR szyfruje metodą AES z wykorzystaniem 128. bitowego klucza.

Bezpłatnym programem szyfrującym jest TrueCrypt. Został on oparty na algorytmach AES (z kluczem 256. bitowym), Twofish oraz Serpent, które dla zwiększenia bezpieczeństwa można zastosować kaskadowo. To łatwe w obsłudze oprogramowanie, pozwalające szyfrować dane na dyskach i nośnikach zewnętrznych. Za jego pomocą można zaszyfrować partycję systemową, czy przeprowadzić procedurę pełnego szyfrowania (cały dysk), zaś w celu zwiększenia bezpieczeństwa ukryć jeden zaszyfrowany wolumin w kolejnym. Niestety wokół oprogramowania powstało sporo zamieszania. Pojawiły się pogłoski o odnalezionych lukach w aplikacji, które pod znakiem zapytania miały stawiać pełne bezpieczeństwo szyfrowanych danych. Prace nad projektem porzucono (jego autorzy polecali korzystanie z Windowsowego BitLockera…), co nie skłania do zainteresowania tym narzędziem. Warto natomiast zainteresować się kolejną wymienioną aplikacją mającą opinię jego najlepszego spadkobiercy.

VeraCrypt to darmowe narzędzie, które bazując na oprogramowaniu TruCrypt wykorzystuje te same algorytmy szyfrujące. Podobnie jak jego poprzednik oferuje szyfrowanie w locie, deszyfrując tylko dane aktualnie wykorzystywane. Można tu skorzystać z funkcji szyfrowania całego dysku, jak również poszczególnych partycji. Ciekawym rozwiązaniem jest również możliwość tworzenia dysków wirtualnych.

Znanym oprogramowaniem szyfrującym jest PGP (Pretty Good Privacy). Oprogramowanie stanowiło pewien przełom – było to po raz pierwszy udostępnione publicznie narzędzie służące ochronie prywatności użytkownika. Program opracowano w 1991 roku na podstawie algorytmu RSA, a ponieważ algorytm ten był w USA chroniony prawem patentowym powstało kilka wersji oprogramowania i sporo zamieszania. Wersja bezpłatna przeznaczona była do zastosowań niekomercyjnych na terytorium USA (po zniesieniu zakazu eksportu oprogramowania stała się powszechnie dostępna). Wersja pełna, wykorzystująca zgodnie z obowiązującymi przepisami algorytm RSA, przeznaczona była do zastosowań komercyjnych. Wersja międzynarodowa powstała zaś w oparciu o publikację algorytmu w legalnie wywiezionej z USA książce. Wykorzystywanie tej wersji było w Stanach Zjednoczonych niezgodne z prawem. Począwszy od wersji 5.0 oprogramowanie było rozpowszechniane w oparciu o nową, restrykcyjną licencję. Prawo do bezpłatnej i mocno okrojonej wersji PGP posiadali jedynie użytkownicy prywatni. Ze względu na niespełnianie przez nową licencję wymogów wolnego oprogramowania oraz zaniechanie rozwijania wersji dla systemów uniksowych, stworzona została tożsama algorytmicznie z PGP niezależna implementacja GNU Privacy Guard. GNU PG obsługuje cały wachlarz algorytmów szyfrujących: RSA, AES, Twofish, Idea i wiele innych. Komercyjna wersja PGP posiada możliwość tworzenia wirtualnych zaszyfrowanych dysków (Virtual Disk) i archiwów (PGP Zip). Oprogramowanie pozwala na szyfrowanie folderów oraz pełnej zawartości dysku twardego (PGP Whole Disk). Program umożliwia także przechowywanie klucza prywatnego na zewnętrznym kluczu sprzętowym, znacznie przez to podnosząc poziom bezpieczeństwa.

DiskCriptor pozwala na zaszyfrowanie całych dysków bądź partycji, płyt CD, DVD oraz pamięci zewnętrznych USB – nie obsługuje szyfrowania pojedynczych plików. Szyfrowanie można przeprowadzić za pomocą jednego z trzech zaimplementowanych algorytmów: AES, Twofish, Serpent.

Kolejnym dostępnym bezpłatnie narzędziem jest korzystający z algorytmu AES (128 bitów) AxCrypt. Posiada on ciekawą funkcję jaką jest możliwość czasowego zaszyfrowania pliku, który zostanie odszyfrowany po upływie określonego przez użytkownika czasu, nawet jeśli nie będzie już zainstalowanego programu szyfrującego. Aplikacja integruje się z powłoką systemu, co stwarza wiele udogodnień, jak np. możliwość szyfrowania plików kliknięciem prawego klawisz myszy.

Za pomocą CloudFogger oprócz danych znajdujących się na dysku twardym można zaszyfrować także pliki przechowywane w chmurze. Wybierając tę aplikację użytkownik otrzymuje wirtualny sejf – folder, w którym każdy umieszczony plik jest automatycznie szyfrowany. Narzędzie jest implementacją 256. bitowego algorytmu AES.

BoxCryptor to bardzo proste narzędzie oparte na AES 256. Dzięki niemu użytkownik może szyfrować dane z dysków, nośników zewnętrznych oraz pliki w chmurze. Jego zaletą jest również kompatybilność z wieloma systemami operacyjnymi (także popularnymi platformami mobilnymi).

Cryptic Disk jest dobrze wyposażonym programem posiadającym spory wybór algorytmów szyfrujących (m. in. AES, Serpent, Twofish). Aplikacja obsługuje szyfrowanie całych dysków twardych, a także nośników wymiennych, jak karty pamięci, pendrive’y, czy dyski USB. Szyfrowanie danych odbywa się w locie, z niewielkim spadkiem wydajności. Oprogramowanie chroni przed atakami typu brute-force (łamaniem haseł przy użyciu wszystkich możliwych kombinacji).

Zanim jednak przystąpimy do szyfrowania za pomocą jednego z wybranych programów, należy zastanowić się nad koniecznością takiego postępowania. Szyfrowanie bez wyraźnej potrzeby i bez uwzględnienia środków asekuracyjnych może mieć poważne konsekwencje. W przypadku awarii urządzenia dane mogą być odzyskane jedynie za pomocą prywatnego klucza dekodującego. Jeśli nie jesteśmy w jego posiadaniu powinna istnieć możliwość jego odzyskania - integralność danych na dysku musi zatem zostać zachowana (nie można dopuścić na przykład do jego nadpisania). Żelazną zasadą powinno być przede wszystkim sporządzanie kopii zapasowych szyfrowanych plików – narzucenie konsekwentnych procedur postępowania jest w przypadku szyfrowania danych sprawą nadrzędną.

Pavel Kroupka

Galeria