Menu
Jest wolny
rejestracja
Dom  /  Edukacja/ Cel i struktura algorytmów szyfrowania. Algorytmy szyfrowania danych Wszystkie algorytmy szyfrowania

Cel i struktura algorytmów szyfrowania. Algorytmy szyfrowania danych Wszystkie algorytmy szyfrowania

Algorytm szyfrowania danych DES (Data Encryption Standard) został opublikowany w 1977 roku i nadal jest powszechnym algorytmem symetrycznym blokowym używanym w komercyjnych systemach ochrony informacji.

Algorytm DES jest zbudowany zgodnie z metodologią sieci Feistel i składa się z naprzemiennej sekwencji permutacji i podstawień. Algorytm DES szyfruje 64-bitowe bloki danych przy użyciu 64-bitowego klucza, w którym 56 bitów jest znaczących (pozostałe 8 to bity kontroli parzystości).

Proces szyfrowania składa się z początkowej wymiany bitów 64-bitowego bloku, 16 cykli szyfrowania (rund) i na koniec końcowej wymiany bitów (rys. 6.2).

Ryż. 6.2.

Deszyfrowanie w DES jest operacją odwrotną do szyfrowania i jest wykonywane przez powtarzanie operacji szyfrowania w odwrotnej kolejności.

Główne zalety algorytmu DES:

  • używany jest tylko jeden klucz 56-bitowy;
  • względna prostota algorytmu zapewnia dużą szybkość przetwarzania;
  • po zaszyfrowaniu wiadomości przy użyciu jednego pakietu oprogramowania, do jej odszyfrowania można użyć dowolnego innego pakietu oprogramowania zgodnego z algorytmem DES;
  • siła kryptograficzna algorytmu jest wystarczająca, aby zapewnić bezpieczeństwo informacji większości aplikacji komercyjnych.

Nowoczesna technologia mikroprocesorowa umożliwia złamanie symetrycznych szyfrów blokowych o długości klucza 40 bitów w dość akceptowalnym czasie. Do takiego hackowania wykorzystywana jest metoda brute force – totalne testowanie wszystkich możliwych kluczowych wartości​​(metoda "brute force"). Do niedawna DES był uważany za stosunkowo bezpieczny algorytm szyfrowania.

Istnieje wiele sposobów łączenia algorytmów blokowych w celu uzyskania nowych, bardziej niezawodnych algorytmów. Jednym z tych sposobów jest wielokrotne szyfrowanie - wielokrotne używanie algorytmu blokowego z różnymi kluczami w celu zaszyfrowania tego samego bloku tekstu jawnego. Przy potrójnym szyfrowaniu można użyć trzech różnych kluczy.

Algorytm 3-DES (Triple DES - triple DES) jest stosowany w sytuacjach, gdy niezawodność algorytmu DES jest uważana za niewystarczającą.

Obecnie coraz częściej stosuje się dwa nowoczesne algorytmy szyfrowania odporne na krypto: krajowy standard szyfrowania GOST 28147-89 i nowy amerykański standard kryptograficzny - AES (Advanced Encryption Standard).

Standard szyfrowania GOST 28147-89 jest przeznaczony do implementacji sprzętowej i programowej, spełnia wymagania kryptograficzne i nie nakłada ograniczeń na stopień tajności chronionych informacji. Algorytm szyfrowania danych zdefiniowany przez GOST 28147-89 to 64-bitowy algorytm blokowy z 256-bitowym kluczem.

Dane do zaszyfrowania są podzielone na bloki 64-bitowe. Bloki te są podzielone na dwa podbloki. Nx I N 2 32 bity każdy (rys. 6.3). Podblok /V, przetworzony w określony sposób, po czym jego wartość jest dodawana do wartości podbloku N 2(dodawanie jest wykonywane modulo 2, czyli stosowana jest operacja logiczna XOR - „wyłącznie lub”), a następnie


Ryż. 6.3.

podbloki są zamieniane. Ta transformacja jest wykonywana określoną liczbę razy ("rund") - 16 lub 32, w zależności od trybu działania algorytmu.

W każdej rundzie wykonywane są dwie operacje.

Pierwsza operacja to nałożenie klucza. Zawartość podbloku /V, modulo 2 32 z 32-bitową częścią klucza Kx. Pełny klucz szyfrowania jest reprezentowany jako konkatenacja 32-bitowych podkluczy: K 0 , K ( , K 2 , K 3 , K 4 , K 5 , K 6 , K 7 . Jeden z tych podkluczy jest wykorzystywany w procesie szyfrowania, w zależności od liczby rund i trybu działania algorytmu.

Druga operacja to wymiana tabeli. Po wpisaniu podjednostki N( jest podzielony na 8 części po 4 bity, z których wartość każdego z nich jest zastępowana zgodnie z tabelą zamian dla tej części podbloku. Podblok jest następnie obracany bitowo w lewo o 11 bitów.

Zamienniki stołów. 5-pudełkowa skrzynka podmiany jest często wykorzystywana w nowoczesnych algorytmach szyfrowania, warto więc wyjaśnić, jak taka operacja jest zorganizowana.

Blok substytucyjny 5-box składa się z ośmiu węzłów zastępczych (5-bloków zastępczych) 5, S2,..., 5 8 z pamięcią 64-bitową każdy. Przychodzący do bloku zastępczego S 32-bitowy wektor jest dzielony na 8 kolejnych 4-bitowych wektorów, z których każdy jest konwertowany na 4-bitowy wektor przez odpowiedni węzeł zastępujący. Każdy węzeł zastępczy może być reprezentowany jako tablica permutacji 16 4-bitowych liczb binarnych z zakresu 0000...1111. Wektor wejściowy określa adres wiersza w tabeli, a liczba w tym wierszu jest wektorem wyjściowym. 4-bitowe wektory wyjściowe są następnie kolejno łączone w wektor 32-bitowy. Węzły zastępcze (tabele permutacji) są kluczowymi elementami, które są wspólne dla sieci komputerowej i rzadko się zmieniają. Te węzły zastępcze muszą być utrzymywane w tajemnicy.

Algorytm zdefiniowany przez GOST 28147-89 przewiduje cztery tryby działania: prosta substytucja, skalowanie, skalowanie ze sprzężeniem zwrotnym I generowanie imitacji przedrostków. Używają tej samej transformacji szyfrowania opisanej powyżej, ale ponieważ cel trybów jest inny, transformacja ta jest przeprowadzana w każdym z nich inaczej.

W trybie prosta wymiana aby zaszyfrować każdy 64-bitowy blok informacji, wykonywane są 32 rundy opisane powyżej. W tym przypadku 32-bitowe podklucze są używane w następującej kolejności:

K 0 , K ( , K 2 , K 3 , K 4 , K 5 , K 6 , K 7 , K 0 ,/G, itd. - w rundach od 1 do 24;

K 7, K b, K 5, K 4, K 3, K 2, K x, K 0 - w rundach od 25 do 32.

Deszyfrowanie w tym trybie odbywa się dokładnie w ten sam sposób, ale z nieco inną kolejnością użycia podkluczy:

K 0 , AG, K 2, K 3, K 4, K 5, K b, K 7 - w rundach od 1 do 8;

K 7 , K 6 , K 5 , K 4 , K 3 , K 2 , K ( , K 0 , K 7 , K b i tak dalej - w rundach od 9 do 32.

Wszystkie bloki są szyfrowane niezależnie od siebie, tzn. wynik szyfrowania każdego bloku zależy tylko od jego zawartości (odpowiedni blok źródłowy). Jeśli istnieje kilka identycznych bloków oryginalnego (zwykłego) tekstu, odpowiadające im bloki szyfrogramu również będą takie same, co zapewnia dodatkowe przydatne informacje dla kryptoanalityka próbującego otworzyć szyfr. Dlatego ten tryb jest używany głównie do szyfrowania samych kluczy szyfrujących (często implementowane są schematy wielokluczowe, w których z wielu powodów klucze są szyfrowane jeden na drugim). Aby zaszyfrować samą informację, przeznaczone są dwa inne tryby działania - gamma i gamma ze sprzężeniem zwrotnym.

W tryb gamma każdy blok tekstu jawnego jest dodawany bitowo modulo 2 do 64-bitowego bloku szyfru gamma. Szyfr gamma - to specjalna sekwencja, która wynika z pewnych operacji na rejestrach n1 I S 2(Rys. 6.9):

  • 1. Do rejestrów N^ I 1U 2 zapisywane jest ich początkowe wypełnienie - 64-bitowa wartość zwana komunikatem synchronizacji.
  • 2. Zawartość rejestrów jest zaszyfrowana n1 I M 2(w tym przypadku synchronizuj wiadomości) w trybie prostego zastępowania.
  • 3. Zawartość rejestru N^ dodaje się modulo (2 32 - 1) ze stałą C, = 2 24 + 2 16 + 2 8 + 2 4 , a wynik dodawania zapisywany jest w rejestrze n1 .
  • 4. Zawartość rejestru CU 2 jest dodawana modulo 232 ze stałą C 2 = 2 24 + 2 16 + 2 8 + 1, a wynik dodawania jest zapisywany w rejestrze CU 2.
  • 5. Zawartość rejestrów n, I S 2 jest wyprowadzany jako 64-bitowy szyfrowy blok gamma (w tym przypadku N^ i CU 2 tworzą pierwszy blok skali).

Jeśli potrzebny jest następny blok gamma (tj. szyfrowanie lub deszyfrowanie musi być kontynuowane), wróć do kroku 2.

W celu odszyfrowania gamma jest generowana w podobny sposób, a następnie na bitach szyfrogramu i gamma zostaje ponownie zastosowana operacja X(X).Ponieważ operacja ta jest odwracalna, w przypadku poprawnie wygenerowanej gamma, oryginalny tekst otrzymuje się (tabela 6.1).

Tabela 6.1. Szyfrowanie i deszyfrowanie w trybie gamma

Aby opracować zakres szyfrów wymagany do odszyfrowania, użytkownik odszyfrowujący kryptogram musi mieć ten sam klucz i tę samą wartość wiadomości synchronizacji, które były używane podczas szyfrowania informacji. W przeciwnym razie nie będziesz w stanie uzyskać oryginalnego tekstu z zaszyfrowanego.

W większości implementacji algorytmu GOST 28147-89 wiadomość synchronizacji nie jest tajna, ale istnieją systemy, w których wiadomość synchronizacji jest tym samym tajnym elementem co klucz szyfrowania. W przypadku takich systemów efektywna długość klucza algorytmu (256 bitów) jest zwiększana o kolejne 64 bity tajnego komunikatu synchronizacji, który można również uznać za element klucza.

W tryb gamma sprzężenia zwrotnego do wypełnienia rejestrów L", a ІУ 2, zaczynając od drugiego bloku, nie jest używany poprzedni blok gamma, ale wynik szyfrowania poprzedniego bloku tekstu jawnego (rys. 6.4). Pierwszy blok w tym trybie jest generowany całkowicie podobny do poprzedniego.

Biorąc pod uwagę tryb generowanie przedrostków imitacyjnych, należy zdefiniować pojęcie przedmiotu wytwarzania. Prefiks imitacji - to kryptograficzna suma kontrolna obliczona za pomocą

Ryż. 6.4.

klucz szyfrujący i przeznaczony do sprawdzania integralności wiadomości. Podczas generowania prefiksu wykonywane są następujące operacje: pierwszy 64-bitowy blok tablicy informacyjnej, dla której wyliczany jest prefiks, jest zapisywany do rejestrów ^ i A^ 2 i szyfrowany w zredukowanym trybie prostego zastępowania ( wykonuje się pierwsze 16 rund z 32). Otrzymany wynik sumuje się modulo 2 z kolejnym blokiem informacji, zapisując wynik w A", i S 2 .

Cykl powtarza się aż do ostatniego bloku informacji. Wynikowa 64-bitowa zawartość rejestrów A^ i A^ 2 lub jego część i nazywa się to imitacją. Wielkość prefiksu imitacji dobierana jest na podstawie wymaganej wiarygodności komunikatów: z długością prefiksu imitacji g nieco, prawdopodobieństwo, że zmiana wiadomości nie zostanie zauważona, wynosi 2~ r.

Najczęściej używany jest 32-bitowy prefiks imitujący, czyli połowa zawartości rejestrów. To wystarczy, ponieważ jak każda suma kontrolna prefiks imitacji ma przede wszystkim chronić przed przypadkowym zniekształceniem informacji. W celu ochrony przed celową modyfikacją danych wykorzystywane są inne metody kryptograficzne – przede wszystkim elektroniczny podpis cyfrowy.

Podczas wymiany informacji prefiks imitacji służy jako rodzaj dodatkowego środka kontroli. Jest obliczany dla tekstu jawnego, gdy niektóre informacje są szyfrowane i wysyłane wraz z tekstem zaszyfrowanym. Po odszyfrowaniu obliczana jest nowa wartość prefiksu imitacji, która jest porównywana z przesłaną. Jeśli wartości się nie zgadzają, to zaszyfrowany tekst został zniekształcony podczas transmisji lub podczas odszyfrowywania użyto niewłaściwych kluczy. Prefiks imitacji jest szczególnie przydatny do sprawdzania poprawności odszyfrowywania informacji o kluczu podczas korzystania ze schematów z wieloma kluczami.

Algorytm GOST 28147-89 jest bardzo stabilnym algorytmem - obecnie nie zaproponowano bardziej skutecznych metod jego ujawnienia niż wspomniana powyżej metoda „brute force”. Jego wysokie bezpieczeństwo osiągnięto przede wszystkim dzięki dużej długości klucza - 256 bitów. Podczas korzystania z tajnej wiadomości synchronizacji efektywna długość klucza jest zwiększana do 320 bitów, a sekret tablicy podstawień dodaje dodatkowe bity. Ponadto siła kryptograficzna zależy od liczby rund transformacji, która zgodnie z GOST 28147-89 powinna wynosić 32 (pełny efekt rozproszenia danych wejściowych uzyskuje się po 8 rundach).

Standard szyfrowania AES. W 1997 roku American Standards Institute NIST (National Institute of Standards & Technology) ogłosił konkurs na nowy standard symetrycznego algorytmu kryptograficznego o nazwie AES (Advanced Encryption Standard). Z jego rozwojem związane były największe ośrodki kryptologii na całym świecie. Zwycięzca tego konkursu faktycznie stał się światowym standardem kryptograficznym na następne 10-20 lat.

Następujące wymagania zostały przedstawione kryptoalgorytmom – kandydatom do nowego standardu AES:

  • algorytm musi być symetryczny;
  • algorytm musi być szyfrem blokowym;
  • algorytm musi mieć długość bloku 128 bitów i obsługiwać trzy długości kluczy: 128, 192 i 256 bitów.

Dodatkowo twórcom kryptoalgorytmów zalecono:

  • korzystać z operacji, które można łatwo wdrożyć zarówno na sprzęcie (w mikroprocesorach), jak i oprogramowaniu (na komputerach osobistych i serwerach);
  • skupić się na procesorach 32-bitowych;
  • nie komplikuj niepotrzebnie struktury szyfru, aby wszyscy zainteresowani mogli samodzielnie przeprowadzić niezależną kryptoanalizę algorytmu i upewnić się, że nie zawiera on żadnych nieudokumentowanych cech.

Wyniki konkursu zostały podsumowane w październiku 2000 roku – zwycięzcą został algorytm Rijndaela, opracowany przez dwóch kryptografów z Belgii, Vincenta Rijmena i Joan Daemen. Algorytm Rijndael stał się nowym standardem szyfrowania danych AES.

Algorytm AES różni się od większości znanych algorytmów szyfrowania symetrycznego, których struktura nazywa się „siecią Feistel” i jest podobna do rosyjskiego GOST 28147-89. W przeciwieństwie do krajowego standardu szyfrowania, algorytm AES reprezentuje każdy blok przetwarzanych danych jako dwuwymiarową tablicę bajtów o rozmiarze 4x4, 4x6 lub 4x8, w zależności od ustawionej długości bloku (dopuszcza się kilka stałych rozmiarów zaszyfrowanego bloku informacji). Ponadto, na odpowiednich etapach, przekształcenia są wykonywane albo na niezależnych kolumnach, albo na niezależnych wierszach, lub ogólnie na poszczególnych bajtach.

Algorytm AES składa się z określonej liczby rund (od 10 do 14 - zależy to od rozmiaru bloku i długości klucza) i wykonuje cztery przekształcenia:

BS (ByteSub) - zastępowanie tablicy każdego bajtu tablicy (rys. 6.5);

SR (ShiftRow) - przesunięcie rzędu tablicy (rys. 6.6). Dzięki tej operacji pierwszy wiersz pozostaje niezmieniony, a pozostałe są cyklicznie przesuwane bajt po bajcie w lewo o ustaloną liczbę bajtów, w zależności od rozmiaru tablicy. Na przykład w przypadku tablicy 4x4 wiersze 2, 3 i 4 są przesuwane odpowiednio o 1, 2 i 3 bajty;

MS (MixColumn) - operacja na niezależnych kolumnach tablicy (rys. 6.7), gdy każda kolumna jest mnożona przez stałą macierz c (x) zgodnie z określoną regułą;

AK (AddRoundKey) - dodanie klucza. Każdy bit tablicy jest dodawany modulo 2 do odpowiedniego bitu okrągłego klucza, który z kolei jest obliczany w określony sposób z klucza szyfrowania (rys. 6.8).


Ryż. 6.5.

przetwarzać każdy bajt tablicy State

Ryż. 6.6. Transformacja SR (ShiftRow) przechodzi przez ostatnie trzy

wiersze w tablicy State

D 2 J

do uncji

do zz

Ryż. 6.8. Transformacja AC (AddRoundKey) wykonuje dodanie XOR każdego

kolumna tablicy State ze słowem z zestawu kluczy

Te konwersje działają na tablicy State, do której odwołuje się wskaźnik „stan”. Transformacja AddRoundKey używa dodatkowego wskaźnika do adresowania Round Key.

Transformacja BS (ByteSub) jest nieliniową substytucją bajtów, która działa niezależnie na każdym bajcie tablicy State przy użyciu tablicy substytucji iS-box.

W każdej rundzie (z pewnymi wyjątkami) na zaszyfrowanych danych wykonywane są kolejno następujące czynności.

przekształcenia (ryc. 6.9). Wyjątki dotyczą pierwszej i ostatniej rundy: przed pierwszą rundą wykonywana jest dodatkowa operacja A K, aw ostatniej rundzie nie ma MS.

Ryż. 6.9.

W rezultacie sekwencja operacji dla szyfrowania wygląda tak:

AK, (BS, SR, MC, AK) (powtórzone R- 1 raz), BS, SR, AK.

Liczba rund szyfrowania r w algorytmie AES jest zmienna (10, 12 lub 14 rund) i zależy od rozmiaru bloku i klucza szyfrowania (istnieje też kilka stałych rozmiarów klucza).

Deszyfrowanie odbywa się za pomocą następujących operacji odwrotnych. Tablica jest odwracana, a na tablicy odwrotnej następuje zamiana (w stosunku do tej używanej w szyfrowaniu). Operacja odwrotna do SR to kołowe przesunięcie rzędów w prawo, a nie w lewo. Operacja odwrotna dla MS to mnożenie przez te same reguły przez inną macierz d(x), spełnienie warunku c(x) d(x) = 1. Dodanie klawisza AK jest odwrotnością samego siebie, ponieważ używa tylko operacji XOR. Te odwrotne operacje są stosowane podczas deszyfrowania w kolejności odwrotnej do używanej do szyfrowania.

Wszystkie przekształcenia w szyfrze AES mają ścisłe uzasadnienie matematyczne. Sama struktura i sekwencja operacji umożliwiają sprawne wykonanie tego algorytmu zarówno na procesorach 8-bitowych, jak i 32-bitowych. W konstrukcji algorytmu uwzględniono możliwość równoległego wykonywania niektórych operacji, co może nawet czterokrotnie zwiększyć szybkość szyfrowania na wieloprocesorowych stacjach roboczych.

Algorytm AES stał się nowym standardem szyfrowania danych ze względu na szereg zalet w stosunku do innych algorytmów. Przede wszystkim zapewnia szybkie szyfrowanie na wszystkich platformach: zarówno w implementacji programowej, jak i sprzętowej. Ponadto wymagania zasobowe do jego działania są minimalne, co ma znaczenie w przypadku stosowania go w urządzeniach o ograniczonych możliwościach obliczeniowych.

Jedyną wadą algorytmu AES jest jego niekonwencjonalny schemat. Faktem jest, że właściwości algorytmów opartych na „sieci Feistel” są dobrze zbadane, a AES może zawierać ukryte luki, które można wykryć dopiero po pewnym czasie od rozpoczęcia jego szerokiej dystrybucji.

Do szyfrowania danych wykorzystywane są również inne symetryczne algorytmy kryptograficzne blokowe.

Główne tryby działania bloku symetrycznego

algorytm

Większość symetrycznych blokowych algorytmów kryptograficznych bezpośrednio konwertuje 64-bitowe dane wejściowe zwykłego tekstu na 64-bitowe dane wyjściowe zaszyfrowanego tekstu, ale dane rzadko są ograniczone do 64 bitów.

Aby wykorzystać algorytm symetryczny blokowy do rozwiązywania różnych problemów kryptograficznych, opracowano cztery tryby pracy:

  • elektroniczna książka kodów EU B (elektroniczna książka kodów);
  • tworzenie łańcuchów bloków szyfru CBC (Cipher Block Chaining);
  • sprzężenie zwrotne zaszyfrowanego tekstu CFB (Cipher Feed Back);
  • informacja zwrotna na wyjściu OFB (Output Feed Back).

Te tryby działania zostały pierwotnie opracowane dla algorytmu blokowego DES, ale inne blokowe algorytmy kryptograficzne mogą działać w dowolnym z tych trybów.


Szyfrowanie jest najszerzej stosowaną metodą kryptograficzną do zachowania poufności informacji, chroni dane przed nieautoryzowanym dostępem. Na początek rozważ główne metody ochrony informacji kryptograficznych. Jednym słowem, kryptografia- nauka o bezpieczeństwie informacji z wykorzystaniem metod matematycznych. Istnieje również nauka przeciwna kryptografii i poświęcona sposobom otwierania chronionych informacji - kryptoanaliza. Połączenie kryptografii i kryptoanalizy nazywa się kryptologia. Metody kryptograficzne można klasyfikować na różne sposoby, ale najczęściej dzieli się je w zależności od liczby kluczy użytych w odpowiednich algorytmach kryptograficznych (patrz rys. 1):

  1. Keyless, czyli bez kluczyków.
  2. Pojedynczy klucz - używają dodatkowego parametru klucza - zwykle jest to tajny klucz.
  3. Dwukluczowe, używające w swoich obliczeniach dwóch kluczy: tajnego i publicznego.

Ryż. 1. Algorytmy kryptograficzne

Przegląd metod kryptograficznych

Szyfrowanie jest główną metodą ochrony; omówimy to szczegółowo dalej.

Warto powiedzieć kilka słów o innych metodach kryptograficznych:

  1. Podpis elektroniczny służy do potwierdzenia integralności i autorstwa danych. Integralność danych oznacza, że ​​dane nie zostały przypadkowo lub celowo zmienione podczas przechowywania lub przesyłania.
    Algorytmy podpisu elektronicznego wykorzystują dwa rodzaje kluczy:
    • klucz tajny służy do obliczania podpisu elektronicznego;
    • klucz publiczny służy do jego weryfikacji.
    W przypadku korzystania z kryptograficznie silnego algorytmu podpisu elektronicznego oraz przy odpowiednim przechowywaniu i użyciu tajnego klucza (tj. jeśli klucza nie może użyć nikt inny niż jego właściciel), nikt inny nie jest w stanie obliczyć prawidłowego podpisu elektronicznego jakiegokolwiek elektronicznego dokument.
  2. Uwierzytelnianie pozwala zweryfikować, czy użytkownik (lub komputer zdalny) jest naprawdę tym, za kogo się podaje. Najprostszym schematem uwierzytelniania jest hasło - wykorzystuje hasło jako tajny element, który jest prezentowany przez użytkownika podczas jego sprawdzania. Taki system okazał się słaby, jeśli nie zostaną zastosowane specjalne środki administracyjne i techniczne w celu jego wzmocnienia. A na podstawie szyfrowania lub hashowania (patrz niżej) można zbudować naprawdę silne schematy uwierzytelniania użytkowników.
  3. Istnieją różne metody kryptograficznego sumowania kontrolnego:
    • haszowanie klucza i bez klucza;
    • obliczanie imitacji przedrostków;
    • korzystanie z kodów uwierzytelniających wiadomości.
    W rzeczywistości wszystkie te metody na różne sposoby z danych o dowolnym rozmiarze, z tajnym kluczem lub bez niego, obliczają pewną sumę kontrolną o stałym rozmiarze, która jednoznacznie odpowiada oryginalnym danym.
    Taka kryptograficzna suma kontrolna jest szeroko stosowana w różnych metodach zabezpieczania informacji, na przykład:
    • potwierdzenie integralności wszelkich danych w przypadkach, gdy użycie podpisu elektronicznego jest niemożliwe (na przykład z powodu dużej intensywności zasobów) lub jest zbędne;
    • w samych schematach podpisu elektronicznego zwykle „podpisany” jest skrót danych, a nie całe dane;
    • w różnych schematach uwierzytelniania użytkowników.
  4. Generatory liczb losowych i pseudolosowych umożliwiają tworzenie ciągów liczb losowych, które znajdują szerokie zastosowanie w kryptografii, a w szczególności:
    • liczby losowe są potrzebne do generowania tajnych kluczy, które w idealnym przypadku powinny być całkowicie losowe;
    • liczby losowe są używane w wielu algorytmach podpisu elektronicznego;
    • Liczby losowe są używane w wielu schematach uwierzytelniania.
    Nie zawsze jest możliwe uzyskanie liczb absolutnie losowych - wymaga to dostępności wysokiej jakości generatorów sprzętowych. Jednak w oparciu o algorytmy szyfrowania symetrycznego można zbudować wysokiej jakości generatory liczb pseudolosowych.
Szyfrowanie

Szyfrowanie informacja to przekształcenie informacji otwartej w informację zaszyfrowaną (najczęściej nazywa się to szyfrogram lub kryptogram), i wzajemnie. Pierwsza część tego procesu nazywa się szyfrowanie, druga - deszyfrowanie.

Szyfrowanie można przedstawić za pomocą następującej formuły:

С = E k1 (M),

gdzie:
m(wiadomość) - otwarta informacja,
OD(tekst zaszyfrowany) – zaszyfrowany tekst uzyskany w wyniku szyfrowania,
mi(szyfrowanie) - funkcja szyfrowania, która dokonuje przekształceń kryptograficznych na m,
k1(klawisz) - parametr funkcji mi, nazywa się klucz szyfrowanie.

W standardzie GOST 28147-89 (standard definiuje krajowy algorytm szyfrowania symetrycznego) pojęcie klucz zdefiniowany następująco: „Określony tajny stan niektórych parametrów algorytmu transformacji kryptograficznej, który zapewnia wybór jednej transformacji ze zbioru transformacji możliwych dla danego algorytmu.”

Klucz może należeć do konkretnego użytkownika lub grupy użytkowników i być dla nich unikalny. Informacje zaszyfrowane przy użyciu określonego klucza można odszyfrować tylko przy użyciu tego samego klucza lub klucza skojarzonego z nim w określonym stosunku.

Deszyfrowanie można przedstawić w podobny sposób:

M" = D k2 (C),

gdzie:
M"- wiadomość otrzymana w wyniku odszyfrowania,
D(deszyfrowanie) - funkcja deszyfrująca; podobnie jak funkcja szyfrowania wykonuje przekształcenia kryptograficzne na zaszyfrowanym tekście,
k2- klucz deszyfrujący.

Aby w wyniku odszyfrowania uzyskać poprawny tekst jawny (czyli taki, który był wcześniej zaszyfrowany: M "= M), muszą być jednocześnie spełnione następujące warunki:

  1. Funkcja deszyfrowania musi odpowiadać funkcji szyfrowania.
  2. Klucz odszyfrowywania musi być zgodny z kluczem szyfrowania.

W przypadku braku prawidłowego klucza k2 odbierz oryginalną wiadomość M" = m z odpowiednią funkcją D niemożliwy. Słowo „niemożliwe” w tym przypadku oznacza zwykle niemożność wykonywania obliczeń w czasie rzeczywistym przy istniejących zasobach obliczeniowych.

Algorytmy szyfrowania można podzielić na dwie kategorie (patrz Rysunek 1):

  1. Algorytmy szyfrowania symetrycznego.
  2. Algorytmy szyfrowania asymetrycznego.

W algorytmach szyfrowanie symetryczne deszyfrowanie zwykle używa tego samego klucza, co do szyfrowania, lub klucza powiązanego z nim jakąś prostą relacją. Ten ostatni jest znacznie mniej powszechny, zwłaszcza w nowoczesnych algorytmach szyfrowania. Taki klucz (wspólny dla szyfrowania i deszyfrowania) jest zwykle nazywany po prostu klucz szyfrujący.

W szyfrowanie asymetryczne klucz szyfrujący k1łatwo obliczyć z klucza k2 w taki sposób, aby odwrotna kalkulacja nie była możliwa. Na przykład kluczową relacją może być:

k1 = k2 mod p,

gdzie a i p to parametry algorytmu szyfrowania, które mają wystarczająco duży wymiar.

Ten współczynnik klucza jest również używany w algorytmach podpisu elektronicznego.

Główną cechą algorytmu szyfrowania jest siła kryptograficzna, co określa jego odporność na ujawnienie metodami kryptoanalizy. Zwykle ta cecha jest określona przez przedział czasu niezbędny do ujawnienia szyfru.

Szyfrowanie symetryczne jest mniej wygodne ze względu na fakt, że przesyłając zaszyfrowane informacje, ktoś potrzebuje, aby odbiorca otrzymał wcześniej klucz do odszyfrowania informacji. Szyfrowanie asymetryczne nie ma tego problemu (ponieważ klucz publiczny można swobodnie przesyłać przez sieć), ma jednak swoje własne problemy, w szczególności problem zastępowania klucza publicznego i powolną prędkość szyfrowania. Najczęściej szyfrowanie asymetryczne jest używane w połączeniu z szyfrowaniem symetrycznym - do przesyłania klucza szyfrowania symetrycznego, który szyfruje większość danych. Jednak schematy przechowywania i transmisji kluczy to temat na osobny artykuł. Tutaj pozwolę sobie stwierdzić, że szyfrowanie symetryczne jest używane znacznie częściej niż szyfrowanie asymetryczne, więc dalszą część artykułu poświęcę tylko szyfrowaniu symetrycznemu.

Istnieją dwa rodzaje szyfrowania symetrycznego:

  • Zablokuj szyfrowanie- informacja jest dzielona na bloki o stałej długości (na przykład 64 lub 128 bitów), po czym bloki te są szyfrowane jeden po drugim. Ponadto w różnych algorytmach szyfrowania lub nawet w różnych trybach działania tego samego algorytmu bloki mogą być szyfrowane niezależnie od siebie lub „z konkatenacją” – gdy wynik szyfrowania bieżącego bloku danych zależy od wartości poprzedniego bloku lub w wyniku szyfrowania poprzedniego bloku.
  • Szyfrowanie strumienia- jest to konieczne przede wszystkim w przypadkach, gdy informacji nie da się podzielić na bloki - powiedzmy pewien strumień danych, którego każdy znak musi być gdzieś zaszyfrowany i przesłany, nie czekając na resztę danych wystarczającą do utworzenia bloku . Dlatego algorytmy szyfrowania strumienia szyfrują dane bit po bicie lub znak po znaku. Chociaż warto powiedzieć, że niektóre klasyfikacje nie rozdzielają szyfrowania blokowego i strumieniowego, biorąc pod uwagę, że szyfrowanie strumieniowe to szyfrowanie bloków o długości jednostki.

Zastanów się, jak blokowe algorytmy szyfrowania symetrycznego wyglądają od wewnątrz.Struktura algorytmów szyfrowania

Zdecydowana większość współczesnych algorytmów szyfrowania działa w bardzo podobny sposób: na zaszyfrowanym tekście przy udziale klucza szyfrującego przeprowadzana jest pewna transformacja, która jest powtarzana określoną liczbę razy (rund). Jednocześnie, w zależności od rodzaju powtarzanej transformacji, algorytmy szyfrowania są zwykle podzielone na kilka kategorii. Są tu też różne klasyfikacje, podam jedną z nich. Tak więc, zgodnie z ich strukturą, algorytmy szyfrowania są klasyfikowane w następujący sposób:

  1. Algorytmy oparte na sieci Feistel.

    Sieć Feistel polega na podzieleniu przetworzonego bloku danych na kilka podbloków (najczęściej na dwa), z których jeden jest przetwarzany przez jakąś funkcję F() i nałożone na jeden lub więcej podbloków. Na ryc. 2 przedstawia najczęściej spotykaną strukturę algorytmów opartych na sieci Feistel.

    Ryż. 2. Struktura algorytmów opartych na sieci Feistel.

    Dodatkowy argument funkcji F(), wskazany na ryc. 2 as Ki, nazywa się okrągły klawisz. Okrągły klucz jest wynikiem przetworzenia klucza szyfrującego przez procedurę rozszerzenia klucza, której zadaniem jest uzyskanie wymaganej liczby kluczy Ki z początkowego klucza szyfrowania o stosunkowo małym rozmiarze (obecnie rozmiar 128 bitów jest uważany za wystarczający dla symetrycznego klucza szyfrowania). W najprostszych przypadkach procedura rozszerzenia klucza po prostu dzieli klucz na kilka fragmentów, które są kolejno wykorzystywane w rundach szyfrowania; znacznie częściej procedura rozbudowy klucza jest dość skomplikowana, a klucze Ki zależą od wartości większości bitów oryginalnego klucza szyfrowania.

    Nałożenie przetworzonego podbloku na surowy najczęściej odbywa się za pomocą operacji logicznej „wyłączne lub” – XOR (jak pokazano na rys. 2). Dość często zamiast XOR stosuje się tutaj dodawanie modulo 2n, gdzie n- rozmiar podbloku w bitach. Po nałożeniu podbloki są zamieniane, to znaczy w następnej rundzie algorytmu przetwarzany jest kolejny podblok danych.

    Ta struktura algorytmów szyfrowania wzięła swoją nazwę od Horsta Feistela, jednego z twórców algorytmu szyfrowania Lucifer i opracowanego na jego podstawie algorytmu DES (Data Encryption Standard), dawnego (ale nadal szeroko stosowanego) amerykańskiego standardu szyfrowania. Oba te algorytmy mają strukturę podobną do pokazanej na rys. 2. Wśród innych algorytmów opartych na sieci Feistel można przytoczyć jako przykład krajowy standard szyfrowania GOST 28147-89, a także inne znane algorytmy: RC5, Blowfish, TEA, CAST-128 itp.

    Większość nowoczesnych algorytmów szyfrowania opiera się na sieci Feistel – ze względu na wiele zalet takiej struktury, wśród których warto zwrócić uwagę na:

    • Algorytmy oparte na sieci Feistel można projektować w taki sposób, aby ten sam kod algorytmu mógł być użyty do szyfrowania i deszyfrowania – różnica między tymi operacjami może polegać jedynie na kolejności, w jakiej stosowane są klucze Ki; ta właściwość algorytmu jest najbardziej użyteczna, gdy jest implementowany sprzętowo lub na platformach o ograniczonych zasobach; Jako przykład takiego algorytmu można przytoczyć GOST 28147-89.
  2. Algorytmy oparte na sieci Feistel są najbardziej przebadane – takim algorytmom poświęcono ogromną ilość badań kryptoanalitycznych, co jest niewątpliwą zaletą zarówno w rozwoju algorytmu, jak i w jego analizie.

    Istnieje również bardziej złożona struktura sieci Feistel, której przykład pokazano na ryc. 3.

    Ryż. 3. Struktura sieci Feistel.

    Taka struktura nazywa się uogólniony lub przedłużony Sieć Feistel i jest używana znacznie rzadziej niż tradycyjna sieć Feistel. Przykładem takiej sieci Feistel jest algorytm RC6.

  3. Oparte na algorytmach sieci permutacyjne (Sieć SP- Sieć substytucyjno-permutacyjna).

    W przeciwieństwie do sieci Feistel, sieci SP przetwarzają cały zaszyfrowany blok w jednej rundzie. Przetwarzanie danych sprowadza się głównie do podmian (kiedy np. fragment wartości wejściowej jest zastępowany innym fragmentem zgodnie z tabelą podmian, która może zależeć od wartości klucza Ki) i permutacje w zależności od klucza Ki(uproszczony schemat pokazano na rys. 4).

    Ryż. 4. Sieć permutacyjno-permutacyjna.

    Jednak takie operacje są również charakterystyczne dla innych typów algorytmów szyfrowania, dlatego moim zdaniem nazwa „sieć permutacyjno-permutacyjna” jest dość dowolna.

    Sieci SP są znacznie mniej popularne niż sieci Feistel; Jako przykład sieci SP można przytoczyć algorytmy Serpent lub SAFER+.

  4. Algorytmy strukturalne "kwadrat"(Kwadrat).

    Struktura „kwadratowa” charakteryzuje się reprezentacją zaszyfrowanego bloku danych w postaci dwuwymiarowej tablicy bajtów. Przekształcenia kryptograficzne można wykonywać na poszczególnych bajtach tablicy, a także na jej wierszach lub kolumnach.

    Struktura algorytmu bierze swoją nazwę od algorytmu Square, który został opracowany w 1996 roku przez Vincenta Rijmena i Joan Daemen, przyszłych autorów algorytmu Rijndaela, który po wygraniu otwartego konkursu stał się nowym amerykańskim standardem szyfrowania AES. Algorytm Rijndaela ma również strukturę podobną do kwadratu; innymi przykładami są algorytmy Shark (wcześniejsze opracowanie autorstwa Ridgemana i Damena) oraz Crypton. Wadą algorytmów o strukturze „kwadratowej” jest ich brak wiedzy, co nie przeszkodziło algorytmowi Rijndaela stać się nowym standardem amerykańskim.

    Ryż. 5. Algorytm Rijndaela.

    Na ryc. Rysunek 5 przedstawia przykład operacji na bloku danych wykonanej przez algorytm Rijndaela.

  5. Algorytmy o niestandardowej strukturze, czyli takie algorytmy, których nie można przypisać do żadnego z wymienionych typów. Oczywiste jest, że pomysłowość może być nieograniczona, dlatego trudno jest sklasyfikować wszystkie możliwe warianty algorytmów szyfrowania. Jako przykład algorytmu o niestandardowej strukturze możemy przytoczyć unikalny w swojej strukturze algorytm FROG, w którym w każdej rundzie według dość skomplikowanych reguł modyfikuje się dwa bajty zaszyfrowanych danych (patrz rys. 6) .

    Ryż. 6. Modyfikacja dwóch bajtów zaszyfrowanych danych.

    Ścisłe granice pomiędzy wyżej opisanymi strukturami nie są zdefiniowane, dlatego dość często pojawiają się algorytmy klasyfikowane przez różnych ekspertów jako różne typy struktur. Na przykład algorytm CAST-256 należy przez jego autora do sieci SP i przez wielu ekspertów nazywany jest rozszerzoną siecią Feistel. Innym przykładem jest algorytm HPC, nazwany przez jego autora siecią Feistel, ale przez ekspertów odnoszony do algorytmów o niestandardowej strukturze.

Algorytmy szyfrowania służą do zmiany poufnych informacji, tak aby nie mogły zostać odczytane przez osoby nieuprawnione.

Pierwsze szyfry były używane w czasach starożytnego Rzymu, starożytnego Egiptu i starożytnej Grecji. Jednym ze słynnych szyfrów jest szyfr Cezara. Algorytm ten działał w następujący sposób: każda litera ma swój własny numer seryjny w alfabecie, który jest przesunięty o wartości 3$ w lewo. Dziś taki algorytm nie zapewnia ochrony, jaką dawał w momencie jego użycia.

Obecnie opracowano wiele algorytmów szyfrowania, w tym standardowe, które zapewniają niezawodną ochronę poufnych informacji.

Podziel algorytmy szyfrowania na symetryczny(są to AES, CAST, GOST, DES, Blowfish) i asymetryczny(RSA, ElGamal).

Algorytmy symetryczne

Uwaga 1

Algorytmy szyfrowania symetrycznego używają tego samego klucza do szyfrowania i odszyfrowywania informacji.

Podczas przesyłania zaszyfrowanych informacji należy również przesłać klucz deszyfrujący. Słabym punktem tej metody jest kanał danych. Jeśli jest niezabezpieczony lub podsłuchiwany, klucz odszyfrowywania może stać się dostępny dla atakującego.

Algorytmy asymetryczne

Uwaga 2

Algorytmy asymetryczne wykorzystują dwa klucze, jeden do szyfrowania, a drugi do odszyfrowywania.

Każdy użytkownik musi mieć parę kluczy - klucz publiczny i klucz prywatny.

Klucz szyfrowania

Definicja 1

Klucz szyfrowania to losowy lub specjalnie stworzony ciąg bitów, który jest zmiennym parametrem algorytmu szyfrowania.

W przypadku szyfrowania tych samych danych tym samym algorytmem, ale przy użyciu różnych kluczy, wyniki są różne.

Programy szyfrujące (WinRAR, Rohos itp.) tworzą klucz z hasła określonego przez użytkownika.

Klucz szyfrowania może mieć różne długości mierzone w bitach. Wraz ze wzrostem długości klucza wzrasta teoretyczna siła szyfru. W praktyce nie zawsze tak jest.

Siła algorytmu szyfrowania

Uwaga 3

Algorytm szyfrowania jest uważany za silny, dopóki nie zostanie udowodnione, że jest inaczej.

Algorytmy szyfrowania

Algorytm AES (Rijndael) obecnie federalny standard szyfrowania w USA. Została zatwierdzona jako standard przez Ministerstwo Handlu w $2001$.Standard jest wariantem szyfru z rozmiarem bloku 128$ bitów. Opracowany w 1997 $ w Belgii. Możliwe rozmiary kluczy to 128, 192 $ i 256 $ bitów.

Algorytm GOST 28147-8 to standard Federacji Rosyjskiej dotyczący szyfrowania danych i ochrony przed imitacją. Stał się oficjalnym standardem w 1989 r. Opracowany w latach 70. XX wieku. w Dyrekcji Głównej KGB ZSRR. Używa klucza bitowego 256 $.

Algorytm Blowfish wykorzystuje złożony schemat generowania klucza, co znacznie komplikuje atak brute-force na algorytm. Nie nadaje się do użytku w systemach z częstym ponownym kluczowaniem i przy szyfrowaniu małych ilości danych. Algorytm najlepiej sprawdza się w systemach, w których istnieje potrzeba szyfrowania dużych ilości danych. Opracowany w 1993 $. Używany jest rozmiar klucza od 32 $ do 448 $.

Algorytm DES był amerykańskim federalnym standardem szyfrowania w latach 1977-2001. Standard federalny został przyjęty w 1977 $, po wprowadzeniu nowego standardu w $2001 $ utracił status standardu. Opracowany w latach 1972-1975 $. Laboratorium Badawcze IBM. Używa klucza bitowego 56 $.

Algorytm CAST jest nieco analogiczny do algorytmu DES. Używa kluczy o wartości 128 $ i 256 $.

W związku z tym, że główną funkcją naszego oprogramowania jest szyfrowanie danych, często zadawane są nam pytania dotyczące pewnych aspektów kryptografii. Postanowiliśmy zebrać najczęściej zadawane pytania w jednym dokumencie i starać się udzielić im jak najbardziej szczegółowych, ale jednocześnie nie przeładowanych niepotrzebnymi odpowiedziami informacyjnymi.

1. Co to jest kryptografia?

Kryptografia to teoretyczna dyscyplina naukowa, dział matematyki zajmujący się badaniem przekształcania informacji w celu ochrony ich przed rozsądnymi działaniami wroga.

2. Co to jest algorytm szyfrowania?

Algorytm szyfrowania to zestaw reguł logicznych, które określają proces konwersji informacji ze stanu otwartego do stanu zaszyfrowanego (szyfrowanie) i odwrotnie, ze stanu zaszyfrowanego do stanu otwartego (odszyfrowanie).

Algorytmy szyfrujące powstają w wyniku badań teoretycznych, zarówno indywidualnych naukowców, jak i zespołów badawczych.

3. W jaki sposób dane są chronione za pomocą szyfrowania?

Podstawową zasadą ochrony danych za pomocą szyfrowania jest szyfrowanie danych. Dla osoby z zewnątrz zaszyfrowane dane wyglądają jak „śmieci informacyjne” – bezsensowny zestaw znaków. Jeśli więc informacja w postaci zaszyfrowanej dostanie się do atakującego, po prostu nie będzie mógł z niej skorzystać.

4. Jaki jest najsilniejszy algorytm szyfrowania?

W zasadzie każdy algorytm szyfrowania zaproponowany przez znanego kryptografa jest uważany za bezpieczny, dopóki nie zostanie udowodniony inaczej.

Z reguły wszystkie nowo pojawiające się algorytmy szyfrowania są publikowane do publicznego przeglądu i są wszechstronnie badane w wyspecjalizowanych ośrodkach badań kryptograficznych. Wyniki takich badań są również publikowane do wglądu publicznego.

5. Co to jest klucz szyfrowania?

Klucz szyfrowania to losowy, pseudolosowy lub specjalnie uformowany ciąg bitów, który jest zmiennym parametrem algorytmu szyfrowania.

Innymi słowy, jeśli zaszyfrujesz te same informacje tym samym algorytmem, ale różnymi kluczami, wyniki również będą inne.

Klucz szyfrowania ma jedną zasadniczą cechę - długość, która jest zwykle mierzona w bitach.

6. Jakie są algorytmy szyfrowania?

Algorytmy szyfrowania dzielą się na dwie duże klasy - symetryczną i asymetryczną (lub asymetryczną).

Algorytmy szyfrowania symetrycznego używają tego samego klucza do szyfrowania i odszyfrowywania informacji. W takim przypadku klucz szyfrowania musi być tajny.

Algorytmy szyfrowania symetrycznego z reguły są łatwe do wdrożenia i nie wymagają do swojej pracy dużej ilości zasobów obliczeniowych. Jednak niedogodność takich algorytmów ujawnia się w przypadkach, gdy np. dwóch użytkowników musi wymienić klucze. W takim przypadku użytkownicy muszą albo spotkać się bezpośrednio, albo mieć jakiś niezawodny, odporny na manipulacje kanał do wysłania klucza, co nie zawsze jest możliwe.

Przykładami algorytmów szyfrowania symetrycznego są DES, RC4, RC5, AES, CAST.

Algorytmy szyfrowania asymetrycznego wykorzystują dwa klucze, jeden do szyfrowania, a drugi do odszyfrowywania. W tym przypadku mówi się o parze kluczy. Jeden klucz z pary może być publiczny (dostępny dla wszystkich), drugi może być tajny.

Algorytmy szyfrowania asymetrycznego są bardziej złożone do wdrożenia i bardziej wymagające pod względem zasobów obliczeniowych niż algorytmy symetryczne, jednak problem wymiany kluczy między dwoma użytkownikami jest łatwiejszy do rozwiązania.

Każdy użytkownik może stworzyć własną parę kluczy i wysłać klucz publiczny do swojego subskrybenta. Ten klucz może tylko szyfrować dane; odszyfrowanie wymaga tajnego klucza, który jest przechowywany tylko przez jego właściciela. W ten sposób uzyskanie klucza publicznego przez atakującego nic mu nie da, ponieważ nie ma możliwości odszyfrowania zaszyfrowanych danych.

Przykładami algorytmów szyfrowania asymetrycznego są RSA, El-Gamal.

7. Jak łamane są algorytmy szyfrowania?

W nauce kryptograficznej istnieje podrozdział - kryptoanaliza, który bada zagadnienia łamania algorytmów szyfrowania, czyli uzyskiwania otwartych informacji z zaszyfrowanych informacji bez klucza szyfrującego.

Istnieje wiele różnych sposobów i metod kryptoanalizy, z których większość jest zbyt skomplikowana i długa, by móc je tutaj odtworzyć.

Jedyną metodą, o której warto wspomnieć, jest bezpośrednie wyliczenie wszystkich możliwych wartości klucza szyfrującego (nazywana też metodą brute force lub brute force). Istotą tej metody jest wyliczenie wszystkich możliwych wartości klucza szyfrowania do momentu znalezienia żądanego klucza.

8. Jaka powinna być długość klucza szyfrującego?

Obecnie dla algorytmów szyfrowania symetrycznego 128 bitów (16 bajtów) jest uważane za wystarczającą długość klucza szyfrowania. Do pełnego wyliczenia wszystkich możliwych kluczy o długości 128 bitów (atak brute force) w ciągu jednego roku potrzebne są procesory 4,2x1022 o wydajności 256 milionów operacji szyfrowania na sekundę. Koszt takiej liczby procesorów to 3,5x1024 USD (wg Bruce Schneier, Applied Cryptography).

Jest projekt międzynarodowy dystrybuowane.net, którego celem jest zjednoczenie użytkowników Internetu w celu stworzenia wirtualnego rozproszonego superkomputera, który wylicza klucze szyfrowania. Najnowszy projekt łamania kluczy 64-bitowych został ukończony w ciągu 1757 dni, angażując ponad 300 000 użytkowników, a moc obliczeniowa wszystkich komputerów projektu była równa prawie 50 000 procesorów AMD Athlon XP 2 GHz.

W takim przypadku należy wziąć pod uwagę, że zwiększenie długości klucza szyfrującego o jeden bit podwaja liczbę wartości klucza, a co za tym idzie, czas wyliczania. Oznacza to, że w oparciu o powyższe liczby w 1757 * 2 dni można złamać nie 128-bitowy klucz, jak mogłoby się wydawać na pierwszy rzut oka, ale tylko 65-bitowy.

9. Słyszałem o 1024, a nawet 2048-bitowych kluczach szyfrowania, a ty mówisz, że 128 bitów wystarczy. Co to znaczy?

Zgadza się, klucze szyfrowania o długości 512, 1024 i 2048 bitów, a czasem nawet dłuższe, są używane w algorytmach szyfrowania asymetrycznego. Wykorzystują zasady całkowicie odmienne od algorytmów symetrycznych, więc skale kluczy szyfrowania są również inne.

Odpowiedź na to pytanie jest najpilniej strzeżoną tajemnicą służb specjalnych każdego państwa. Z teoretycznego punktu widzenia nie da się odczytać danych zaszyfrowanych znanym algorytmem z kluczem o wystarczającej długości (patrz poprzednie pytania), jednak kto wie, co kryje się za zasłoną tajemnic państwowych? Równie dobrze może się okazać, że są znane rządowi obce technologie, dzięki którym można złamać każdy szyfr 🙂

Jedyne, co można z całą pewnością stwierdzić, to to, że ani jedno państwo, ani jedna służba specjalna nie ujawni tej tajemnicy, a nawet jeśli da się w jakiś sposób odszyfrować dane, to nigdy w żaden sposób tego nie pokaże.

Aby zilustrować to stwierdzenie, można podać przykład historyczny. Podczas II wojny światowej brytyjski premier Winston Churchill, w wyniku przechwycenia i odszyfrowania niemieckich wiadomości, dowiedział się o zbliżającym się bombardowaniu miasta Coventry. Mimo to nie podjął żadnych działań, aby uniemożliwić wrogowi dowiedzieć się, że brytyjski wywiad może rozszyfrować ich wiadomości. W rezultacie w nocy z 14 na 15 listopada 1940 r. Coventry zostało zniszczone przez niemieckie samoloty, zabijając dużą liczbę ludności cywilnej. Tak więc dla Churchilla cena ujawnienia informacji, że mógł rozszyfrować niemieckie wiadomości, okazała się wyższa niż cena kilku tysięcy ludzkich istnień.

Wiadomo, że dla współczesnych polityków cena takich informacji jest jeszcze wyższa, więc ani bezpośrednio, ani pośrednio nie dowiemy się niczego o możliwościach nowoczesnych służb specjalnych. Więc nawet jeśli odpowiedź na to pytanie brzmi „tak”, ta możliwość najprawdopodobniej w żaden sposób się nie zamanifestuje.

Źródło: SecurIT

^ wróć do początku ^

Zazwyczaj nowe algorytmy szyfrowania są publikowane do publicznego przeglądu i badane w wyspecjalizowanych ośrodkach badawczych. Wyniki takich badań są również publikowane do wglądu publicznego.

Algorytmy symetryczne
Algorytmy szyfrowania dzielą się na dwie duże klasy: symetryczne (AES, GOST, Blowfish, CAST, DES) i asymetryczne (RSA, El-Gamal). Algorytmy szyfrowania symetrycznego używają tego samego klucza do szyfrowania i odszyfrowywania informacji, podczas gdy algorytmy asymetryczne wykorzystują dwa klucze - jeden do szyfrowania, a drugi do odszyfrowywania.

Jeśli zaszyfrowane informacje muszą zostać przeniesione w inne miejsce, wówczas klucz deszyfrujący również musi zostać tam przesłany. Słabym punktem jest tutaj kanał transmisji danych - jeśli nie jest bezpieczny lub jest nasłuchiwany, to klucz deszyfrujący może dostać się do atakującego. Systemy oparte na algorytmach asymetrycznych nie mają tej wady. Ponieważ każdy uczestnik takiego systemu ma parę kluczy: klucz publiczny i klucz tajny.

Klucz szyfrowania
Jest to losowa lub specjalnie utworzona sekwencja bitów zgodnie z hasłem, które jest zmiennym parametrem algorytmu szyfrowania.
Jeśli zaszyfrujesz te same dane tym samym algorytmem, ale różnymi kluczami, wyniki również będą inne.

Zwykle w oprogramowaniu szyfrującym (WinRAR, Rohos itp.) klucz jest tworzony z hasła określonego przez użytkownika.

Klucz szyfrowania ma różne długości, które zwykle są mierzone w bitach. Wraz ze wzrostem długości klucza wzrasta teoretyczne bezpieczeństwo szyfru. W praktyce nie zawsze tak jest.

W kryptografii uważa się, że mechanizm szyfrowania nie jest wartością tajną, a atakujący może mieć pełny kod źródłowy algorytmu szyfrowania, a także zaszyfrowany tekst (reguła Kerckhoffa). Innym założeniem, które może mieć miejsce, jest to, że atakujący może znać część niezaszyfrowanego (zwykłego) tekstu.

Siła algorytmu szyfrowania.
Algorytm szyfrowania jest uważany za silny, dopóki nie zostanie udowodnione, że jest inaczej. Tak więc, jeśli opublikowany algorytm szyfrowania istnieje dłużej niż 5 lat i nie znaleziono dla niego poważnych luk, możemy założyć, że jego siła jest odpowiednia do ochrony tajnych informacji.

Trwałość teoretyczna i praktyczna.
W 1949 r. K.E. Shannon opublikował artykuł „Teoria komunikacji w systemach tajnych”. Shannon uważał siłę systemów kryptograficznych za praktyczną i teoretyczną. Wniosek dotyczący bezpieczeństwa teoretycznego jest nadal pesymistyczny: długość klucza powinna być równa długości tekstu jawnego.
Dlatego Shannon rozważał również kwestię praktycznej siły systemów kryptograficznych. Czy system jest niezawodny, jeśli atakujący ma ograniczony czas i zasoby obliczeniowe do analizy przechwyconych wiadomości?

Zazwyczaj luki w zabezpieczeniach znajdują się w programach, które szyfrują dane przy użyciu jakiegoś algorytmu. W tym przypadku programiści popełniają błąd w logice programu lub w protokole kryptograficznym, dzięki czemu po przestudiowaniu działania programu (na niskim poziomie) można w końcu uzyskać dostęp do tajnych informacji.

Łamanie algorytmu szyfrowania
Uważa się, że kryptosystem został rozwiązany, jeśli atakujący może obliczyć tajny klucz, a także wykonać algorytm konwersji równoważny oryginalnemu algorytmowi kryptograficznemu. I że ten algorytm był możliwy do zrealizowania w czasie rzeczywistym.

W kryptologii istnieje podsekcja zwana kryptoanalizą, która bada kwestie łamania lub fałszowania zaszyfrowanych wiadomości. Istnieje wiele sposobów i metod kryptoanalizy. Najpopularniejsza jest metoda bezpośredniego wyliczenia wszystkich możliwych wartości klucza szyfrującego (tzw. metoda „brute force” lub brute force). Istotą tej metody jest wyliczenie wszystkich możliwych wartości klucza szyfrowania do momentu znalezienia żądanego klucza.

W praktyce oznacza to, że atakujący musi:

  • Miej do swojej dyspozycji kryptosystem (czyli program) i przykłady zaszyfrowanych wiadomości.
  • Zrozumieć protokół kryptograficzny. Innymi słowy, jak program szyfruje dane.
  • Opracuj i zaimplementuj algorytm wyliczania kluczy dla tego kryptosystemu.

Jak sprawdzić, czy klucz jest ważny, czy nie?
Wszystko zależy od konkretnego programu i implementacji protokołu szyfrowania. Zwykle, jeśli po odszyfrowaniu okazało się, że to „śmieci”, to jest to niewłaściwy klucz. A jeśli tekst jest mniej lub bardziej znaczący (można to sprawdzić), to Klucz jest poprawny.

Algorytmy szyfrowania
AES (Rijndael). Jest to obecnie federalny standard szyfrowania w USA.

Jaki algorytm szyfrowania wybrać, aby chronić informacje?

Zatwierdzony jako standard przez Departament Handlu 4 grudnia 2001 r. Decyzja weszła w życie z chwilą opublikowania w rejestrze federalnym (06.12.01). Standardowo akceptowana jest odmiana szyfru o rozmiarze bloku wynoszącym tylko 128 bitów.

GOST 28147-8. Standard Federacji Rosyjskiej dotyczący szyfrowania danych i ochrony przed imitacją. Początkowo miał szyję (OV lub SS - nie wiadomo dokładnie), następnie szyja sukcesywnie zmniejszała się, a do czasu oficjalnego przeprowadzenia algorytmu przez Standard Państwowy ZSRR w 1989 r. Został usunięty. Algorytm pozostał DSP (jak wiadomo, DSP nie jest uważane za szyję). W 1989 roku stał się oficjalnym standardem ZSRR, a później, po rozpadzie ZSRR, federalnym standardem Federacji Rosyjskiej.

rozdymka Złożony schemat generowania kluczowych elementów znacznie komplikuje atak brute-force na algorytm, ale sprawia, że ​​nie nadaje się do stosowania w systemach, w których klucz często się zmienia, a małe dane są szyfrowane na każdym kluczu.

Algorytm najlepiej nadaje się do systemów, w których duże ilości danych są szyfrowane przy użyciu tego samego klucza.

DES Amerykańska federalna norma szyfrowania 1977-2001. Przyjęty jako standard federalny USA w 1977 roku. W grudniu 2001 roku utracił swój status z powodu wprowadzenia nowego standardu.

RZUCAĆ W pewnym sensie odpowiednik DES.

www.codenet.ru/progr/alg/enc
Algorytmy szyfrowania, Przegląd, informacje, porównanie.

http://www.enlight.ru/crypto
Materiały dotyczące szyfrowania asymetrycznego, podpisu cyfrowego i innych „nowoczesnych” systemów kryptograficznych.

Aleksandra Wielikanowa,
Olga Czebań,
Tesline Service S.R.L.

Były bankier z Abu Zabi, Mohammad Ghaith bin Mahah Al Mazrui, opracował szyfr, który, jak twierdzi, jest nie do złamania. Szyfr o nazwie „Code of Abu Dhabi” powstał na podstawie grupy symboli wymyślonych przez samego Al Mazrui. W jego kodzie każdą literę zastępuje specjalnie wymyślony symbol, a te symbole nie należą do żadnego znanego języka na świecie.

Które algorytmy szyfrowania danych są bezpieczniejsze?

Deweloperowi zajęło półtora roku praca nad szyfrem, który Al Mazrui nazywa „absolutnie nowym”.

Według pasjonata każdy może stworzyć swój własny kod, a o złożoności szyfru decyduje długość jego klucza. Uważa się, że w zasadzie, jeśli jest chęć, pewne umiejętności i odpowiednie oprogramowanie, prawie każdy, nawet najbardziej skomplikowany szyfr może zostać złamany.

Jednak Al Mazrui zapewnia, że ​​jego dzieło jest nie do złamania i jest zdecydowanie najbardziej niezawodnym szyfrem. „Odszyfrowanie dokumentu zakodowanego kodem Abu Zabi jest prawie niemożliwe” – jest pewien Al Mazrui.

Aby udowodnić swoją sprawę, bankier rzucił wyzwanie wszystkim wybitnym kryptografom, hakerom i kryptografom, zachęcając ich do próby złamania jego szyfru.

3. Kryptos to rzeźba, którą amerykański rzeźbiarz James Sanborn zainstalował na terenie siedziby CIA w Langley w stanie Wirginia w 1990 roku. Wydrukowana na nim zaszyfrowana wiadomość nadal nie może zostać rozwikłana.

4. Szyfr wydrukowany na Chiński sztabka złota. Siedem sztabek złota zostało rzekomo wydanych w 1933 roku generałowi Wangowi w Szanghaju. Są one oznaczone obrazkami, chińskimi literami i niektórymi zaszyfrowanymi wiadomościami, w tym literami łacińskimi. Mogą zawierać certyfikaty autentyczności metalu wystawione przez jeden z amerykańskich banków.

Jaki algorytm szyfrowania wybrać w TrueCrypt

5. Kryptogramy beli to trzy zaszyfrowane wiadomości, które, jak się uważa, zawierają lokalizację skarbu dwóch wozów wypełnionych złotem, srebrem i drogocennymi kamieniami zakopanymi w latach dwudziestych XIX wieku w pobliżu Lynchburga w hrabstwie Bedford w stanie Wirginia przez grupę górników pod dowództwem Thomasa Jeffersona Bale'a. Cena skarbu, którego do tej pory nie znaleziono, w przeliczeniu na współczesne pieniądze, powinna wynosić około 30 milionów dolarów. Zagadka kryptogramów nie została dotychczas rozwiązana, w szczególności kontrowersyjna pozostaje kwestia realnego istnienia skarbu. Jedna z wiadomości została odszyfrowana - opisuje ona sam skarb i podaje ogólne wskazówki dotyczące jego lokalizacji. Pozostałe nieotwarte listy mogą zawierać dokładną lokalizację zakładki oraz listę właścicieli skarbu. (dokładna informacja)

6. Rękopis Wojnicza często określana jako najbardziej tajemnicza książka świata. Rękopis posługuje się unikalnym alfabetem, zawiera około 250 stron oraz rysunki przedstawiające nieznane kwiaty, nagie nimfy i symbole astrologiczne. Po raz pierwszy pojawił się pod koniec XVI wieku, kiedy cesarz rzymski Rudolf II kupił go w Pradze od nieznanego kupca za 600 dukatów (około 3,5 kg złota, dziś ponad 50 tysięcy dolarów). Od Rudolfa II księga przeszła w ręce szlachty i naukowców, a zniknęła pod koniec XVII wieku. Rękopis pojawił się ponownie około 1912 roku, kiedy został kupiony przez amerykańskiego księgarza Wilfrieda Voynicha. Po jego śmierci rękopis został przekazany na uniwersytet Yale. Brytyjski uczony Gordon Rugg uważa, że ​​książka to sprytna mistyfikacja. Tekst posiada cechy, które nie są charakterystyczne dla żadnego z języków. Z drugiej strony niektóre cechy, takie jak długość słów, sposób łączenia liter i sylab, są podobne do tych występujących w prawdziwych językach. „Wiele osób uważa, że ​​to wszystko jest zbyt skomplikowane, aby mistyfikacja zbudowała taki system, zajęłoby to szalone lata alchemika”, mówi Rugg. Jednak Rugg pokazuje, że tę złożoność można było łatwo osiągnąć za pomocą urządzenia szyfrującego wynalezionego około 1550 roku i zwanego siatką Cardana. W tej tabeli symboli słowa są tworzone przez przesunięcie karty z wyciętymi w niej otworami. Ze względu na wolne miejsca w tabeli słowa mają różną długość. Nakładając takie siatki na tabelę sylab manuskryptu, Rugg stworzył język, który ma wiele, jeśli nie wszystkie, cechy języka manuskryptu. Według niego trzy miesiące wystarczyłyby na stworzenie całej książki. (informacje szczegółowe, wikipedia)

7. Szyfr Dorabelli, skomponowana w 1897 roku przez brytyjskiego kompozytora Sir Edwarda Williama Elgara. W zaszyfrowanej formie wysłał list do miasta Wolverhampton do swojej dziewczyny Dory Penny, 22-letniej córki Alfreda Penny, rektora katedry św. Piotra. Ten szyfr pozostaje nierozwiązany.

8. Do niedawna na liście uczestniczyli Chacypher, którego nie udało się odkryć za życia jego twórcy. Szyfr został wymyślony przez Johna F. Byrne'a w 1918 roku i przez prawie 40 lat bezskutecznie próbował zainteresować nim władze USA. Wynalazca zaoferował nagrodę pieniężną każdemu, kto potrafił rozwiązać jego szyfr, ale w rezultacie nikt o nią nie prosił.

Jednak w maju 2010 roku członkowie rodziny Byrne'a przekazali wszystkie pozostałe dokumenty Byrne'a do National Cryptographic Museum w Maryland, co doprowadziło do odkrycia algorytmu.

9. Szyfr D'Agapeyeff. W 1939 roku brytyjski kartograf rosyjskiego pochodzenia Aleksander D'Agapeyeff opublikował książkę o podstawach kryptografii Kody i szyfry, w której pierwszym wydaniu zacytował szyfr własnego wynalazku. Szyfr ten nie znalazł się w kolejnych wydaniach. Następnie D'Agapeyeff przyznał, że zapomniał o algorytmie odszyfrowywania tego szyfru. Podejrzewa się, że niepowodzenia, które spotkały wszystkich, którzy próbowali rozszyfrować jego dzieło, wynikają z tego, że autor popełnił błędy przy szyfrowaniu tekstu.

Ale w naszych czasach jest nadzieja, że ​​szyfr można rozwiązać za pomocą nowoczesnych metod - na przykład algorytmu genetycznego.

10. Taman Shud. 1 grudnia 1948 r. na wybrzeżu Australii w Somerton, niedaleko Adelajdy, znaleziono zwłoki mężczyzny ubranego w sweter i płaszcz, pomimo charakterystycznego dla australijskiego klimatu dnia upalnego. Nie znaleziono przy nim żadnych dokumentów. Próby porównania odcisków jego zębów i palców z dostępnymi danymi o żywych ludziach również spełzły na niczym. Sekcja zwłok wykazała nienaturalny przypływ krwi, który wypełnił w szczególności jamę brzuszną, a także rozrost narządów wewnętrznych, ale w jego ciele nie znaleziono obcych substancji. Na dworcu znaleźli jednocześnie walizkę, która mogła należeć do zmarłego. W walizce znajdowały się spodnie z tajną kieszenią, w której znaleźli kawałek papieru wyrwany z książki z wydrukowanymi na niej słowami. Taman Shud. Śledztwo wykazało, że wielki perski poeta Omar Chajjam wyrwał kawałek papieru z bardzo rzadkiego egzemplarza kolekcji Rubaiyat. Sama książka została znaleziona na tylnym siedzeniu niezamkniętego samochodu. Na tylnej okładce książki pięć linijek zostało nabazgranych wielkimi literami - sensu tej wiadomości nie dało się rozszyfrować. Do dziś ta historia pozostaje jedną z najbardziej tajemniczych tajemnic Australii.

Szyfrowanie danych jest niezwykle ważne dla ochrony prywatności. W tym artykule omówię różne rodzaje i metody szyfrowania, które są dziś używane do zabezpieczania danych.

Czy wiedziałeś?
W czasach rzymskich Juliusz Cezar używał szyfrowania, aby listy i wiadomości były nieczytelne dla wroga. Odgrywał ważną rolę jako taktyka wojskowa, zwłaszcza podczas wojen.

Ponieważ możliwości Internetu wciąż rosną, coraz więcej naszych firm rekrutuje się online. Wśród nich najważniejsze to bankowość internetowa, płatności online, e-maile, wymiana prywatnych i oficjalnych wiadomości itp., które wiążą się z wymianą poufnych danych i informacji. Jeśli dane te wpadną w niepowołane ręce, mogą zaszkodzić nie tylko pojedynczemu użytkownikowi, ale całemu systemowi biznesowemu online.

Aby temu zapobiec, wprowadzono pewne środki bezpieczeństwa online w celu ochrony transmisji danych osobowych. Najważniejszym z nich są procesy szyfrowania i odszyfrowywania danych, znane jako kryptografia. Obecnie w większości systemów stosowane są trzy główne metody szyfrowania: szyfrowanie haszujące, szyfrowanie symetryczne i szyfrowanie asymetryczne. W kolejnych wierszach omówię bardziej szczegółowo każdy z tych typów szyfrowania.

Rodzaje szyfrowania

Szyfrowanie symetryczne

W szyfrowaniu symetrycznym normalne czytelne dane, znane jako zwykły tekst, są kodowane (szyfrowane) w taki sposób, że stają się nieczytelne. To szyfrowanie danych odbywa się za pomocą klucza. Po zaszyfrowaniu danych można je bezpiecznie przesłać do odbiorcy. U odbiorcy zaszyfrowane dane są dekodowane przy użyciu tego samego klucza, który został użyty do kodowania.

Jasne jest więc, że klucz jest najważniejszą częścią szyfrowania symetrycznego. Powinien być ukryty przed nieznajomymi, ponieważ każdy, kto ma do niego dostęp, będzie mógł odszyfrować prywatne dane. Dlatego ten rodzaj szyfrowania jest również znany jako „tajny klucz”.

W nowoczesnych systemach kluczem jest zwykle ciąg danych, który pochodzi z silnego hasła lub z całkowicie losowego źródła. Jest wprowadzany do oprogramowania do szyfrowania symetrycznego, które wykorzystuje je do zabezpieczania danych wejściowych. Szyfrowanie danych uzyskuje się za pomocą algorytmu szyfrowania symetrycznego, takiego jak Data Encryption Standard (DES), Advanced Encryption Standard (AES) lub International Data Encryption Algorithm (IDEA).

Ograniczenia

Najsłabszym ogniwem tego typu szyfrowania jest bezpieczeństwo klucza, zarówno w zakresie przechowywania, jak i transmisji uwierzytelnionego użytkownika. Jeśli hakerowi uda się zdobyć ten klucz, może łatwo odszyfrować zaszyfrowane dane, niszcząc cały punkt szyfrowania.

Kolejną wadą jest fakt, że oprogramowanie przetwarzające dane nie może współpracować z danymi zaszyfrowanymi. Dlatego, aby móc korzystać z tego oprogramowania, należy najpierw zdekodować dane. Jeśli samo oprogramowanie zostanie naruszone, osoba atakująca może łatwo uzyskać dane.

Szyfrowanie asymetryczne

Asymetryczny klucz szyfrowania działa podobnie do klucza symetrycznego, ponieważ używa klucza do szyfrowania wysyłanych wiadomości. Jednak zamiast używać tego samego klucza, do odszyfrowania tej wiadomości używa zupełnie innego.

Klucz używany do szyfrowania jest dostępny dla wszystkich użytkowników sieci. Jako taki jest znany jako klucz „publiczny”. Z drugiej strony klucz używany do deszyfrowania jest utrzymywany w tajemnicy i ma być używany prywatnie przez samego użytkownika. Dlatego jest znany jako klucz „prywatny”. Szyfrowanie asymetryczne jest również znane jako szyfrowanie z kluczem publicznym.

Ponieważ przy tej metodzie tajny klucz potrzebny do odszyfrowania wiadomości nie musi być przesyłany za każdym razem, a jest on zwykle znany tylko użytkownikowi (odbiorcy), prawdopodobieństwo, że haker będzie w stanie odszyfrować wiadomość jest duże niżej.

Diffie-Hellman i RSA to przykłady algorytmów wykorzystujących szyfrowanie kluczem publicznym.

Ograniczenia

Wielu hakerów wykorzystuje „człowiek w środku” jako formę ataku, aby ominąć ten rodzaj szyfrowania. W szyfrowaniu asymetrycznym otrzymujesz klucz publiczny, który służy do bezpiecznej komunikacji z inną osobą lub usługą. Jednak hakerzy wykorzystują sieci oszustw, aby nakłonić Cię do komunikowania się z nimi, jednocześnie sprawiając wrażenie, że znajdujesz się na bezpiecznej linii.

Aby lepiej zrozumieć ten rodzaj hakowania, rozważ dwie strony interakcji, Saszę i Nataszę, oraz hakera Siergieja, który chce przechwycić ich rozmowę. Najpierw Sasha wysyła wiadomość przez sieć przeznaczoną dla Nataszy, prosząc o jej klucz publiczny. Siergiej przechwytuje tę wiadomość i uzyskuje powiązany z nią klucz publiczny i używa go do zaszyfrowania i wysłania fałszywej wiadomości do Nataszy zawierającej jego klucz publiczny zamiast Saszy.

Natasza, myśląc, że ta wiadomość pochodzi od Sashy, szyfruje ją teraz kluczem publicznym Siergieja i odsyła z powrotem. Ta wiadomość została ponownie przechwycona przez Siergieja, odszyfrowana, zmodyfikowana (w razie potrzeby), ponownie zaszyfrowana przy użyciu klucza publicznego, który Sasha pierwotnie wysłał, i odesłana do Saszy.

Tak więc, gdy Sasha otrzymuje tę wiadomość, wierzy, że pochodzi ona od Natashy i nadal nie jest świadomy tej nieczystej gry.

haszowanie

Technika mieszania wykorzystuje algorytm znany jako funkcja haszująca do wygenerowania specjalnego ciągu z podanych danych, znanego jako hash. Ten skrót ma następujące właściwości:

  • te same dane zawsze dają ten sam skrót.
  • nie jest możliwe wygenerowanie surowych danych z samego hasha.
  • Próbowanie różnych kombinacji danych wejściowych w celu wygenerowania tego samego skrótu jest niepraktyczne.

Zatem główna różnica między haszowaniem a pozostałymi dwiema formami szyfrowania danych polega na tym, że po zaszyfrowaniu danych (zaszyfrowaniu) nie można ich odzyskać w swojej oryginalnej formie (odszyfrować). Fakt ten gwarantuje, że nawet jeśli haker dostanie w swoje ręce hash, będzie on dla niego bezużyteczny, ponieważ nie będzie w stanie odszyfrować treści wiadomości.

Message Digest 5 (MD5) i Secure Hashing Algorithm (SHA) to dwa szeroko stosowane algorytmy mieszające.

Ograniczenia

Jak wspomniano wcześniej, odszyfrowanie danych z danego skrótu jest prawie niemożliwe. Jest to jednak prawdą tylko wtedy, gdy zaimplementowano silne mieszanie. W przypadku słabej implementacji techniki haszowania, przy użyciu wystarczających zasobów i ataków typu brute force, uporczywy haker może znaleźć dane pasujące do hasha.

Kombinacja metod szyfrowania

Jak omówiono powyżej, każda z tych trzech metod szyfrowania ma pewne wady. Jednakże, gdy stosuje się kombinację tych metod, tworzą one silny i wysoce wydajny system szyfrowania.

Najczęściej techniki klucza prywatnego i publicznego są łączone i używane razem. Metoda klucza tajnego umożliwia szybkie odszyfrowanie, natomiast metoda klucza publicznego zapewnia bezpieczniejszy i wygodniejszy sposób przesyłania tajnego klucza. Ta kombinacja metod nazywana jest „kopertą cyfrową”. Program do szyfrowania wiadomości e-mail PGP jest oparty na technice „cyfrowej koperty”.

Haszowanie znajduje zastosowanie jako sposób sprawdzania siły hasła. Jeśli system przechowuje skrót hasła zamiast samego hasła, będzie to bezpieczniejsze, ponieważ nawet jeśli skrót wpadnie w ręce hakera, nie będzie on w stanie go zrozumieć (odczytać). Podczas weryfikacji system sprawdzi skrót przychodzącego hasła i sprawdzi, czy wynik zgadza się z zapisanym. W ten sposób rzeczywiste hasło będzie widoczne tylko w krótkich momentach, kiedy trzeba je zmienić lub zweryfikować, co znacznie zmniejszy ryzyko, że wpadnie w niepowołane ręce.

Hashing jest również używany do uwierzytelniania danych za pomocą tajnego klucza. Skrót jest generowany przy użyciu danych i tego klucza. Dlatego widoczne są tylko dane i skrót, a sam klucz nie jest przesyłany. W ten sposób, jeśli zostaną wprowadzone zmiany w danych lub w hashu, zostaną one łatwo wykryte.

Podsumowując, techniki te można wykorzystać do wydajnego kodowania danych w nieczytelnym formacie, który może zapewnić ich bezpieczeństwo. Większość nowoczesnych systemów zazwyczaj wykorzystuje kombinację tych metod szyfrowania wraz z silną implementacją algorytmów w celu poprawy bezpieczeństwa. Oprócz bezpieczeństwa systemy te zapewniają również wiele dodatkowych korzyści, takich jak weryfikacja tożsamości użytkownika i zapewnienie, że otrzymane dane nie mogą zostać naruszone.