Konfiguracja sprzętu i oprogramowania

Nowoczesne algorytmy szyfrowania. Metody szyfrowania danych - blog programisty stron internetowych

Podstawowe pojęcia i definicje

jako edukacja społeczeństwo informacyjne techniczne środki całkowitej inwigilacji milionów ludzi stają się dostępne dla dużych państw. Dlatego kryptografia staje się jednym z głównych narzędzi zapewniających poufność, zaufanie, autoryzację, płatności elektroniczne, bezpieczeństwo korporacyjne i inne ważne rzeczy.

Rozwiązuje się problem ochrony informacji poprzez ich przekształcanie kryptologia , który dzieli się na dwa kierunki: kryptografia oraz kryptoanaliza . Cele tych kierunków są wprost przeciwne.

Kryptografia angażuje się w poszukiwania i badania metody matematyczne transformacja informacji. Obszar zainteresowań kryptoanaliza– badanie możliwości odszyfrowania informacji bez znajomości kluczy.

Nowoczesna kryptografia obejmuje 4 główne sekcje:

1. Kryptosystemy symetryczne.

2. Kryptosystemy z kluczem publicznym.

3. Systemy podpis elektroniczny.

4. Zarządzanie kluczami.

Główne kierunki wykorzystania metod kryptograficznych to przesyłanie informacji poufnych kanałami komunikacji, uwierzytelnianie przesyłanych wiadomości oraz przechowywanie informacji na nośnikach w postaci zaszyfrowanej.

Kryptografia umożliwia przekształcenie informacji w taki sposób, aby jej odczytanie (odtworzenie) było możliwe tylko wtedy, gdy znany jest klucz. Jako informacje do zaszyfrowania i odszyfrowania będą brane pod uwagę teksty zbudowane na określonym alfabecie.

Alfabet to skończony zestaw znaków służących do kodowania informacji. Przykłady:

ü alfabet Z33 - zawiera 32 litery alfabetu rosyjskiego i spację;

ü alfabet Z256 - znaki zawarte w standardowych kodach ASCII i KOI-8;

ü alfabet binarny Z2 – dwa symbole (0 i 1);

ü alfabety ósemkowe lub szesnastkowe.

Tekst to uporządkowany zestaw elementów alfabetu.

Szyfrowanie– transformacyjny proces zastępowania oryginalnego (zwykłego) tekstu tekstem zaszyfrowanym.

Deszyfrowanie(szyfrowanie odwrotne) to transformacyjny proces zastępowania, na podstawie klucza, tekstu zaszyfrowanego zwykłym tekstem.

Klucz– informacje niezbędne do sprawnego szyfrowania i deszyfrowania tekstów.

System kryptograficzny jest rodziną transformacji T [T 1 , T 2 , ..., T do ] tekstu jawnego. Członkowie tej rodziny są indeksowani lub oznaczani symbolem do; parametr do jest kluczem. Przestrzeń klucza K to zestaw możliwych wartości klucza. Zwykle kluczem jest ciąg znaków alfabetycznych.

Kryptosystemy dzielą się na symetryczny oraz asymetryczny . W kryptosystemy symetryczne Ten sam klucz jest używany zarówno do szyfrowania, jak i deszyfrowania. W systemy asymetryczne (klucz publiczny) Używane są dwa klucze - publiczny i prywatny, które są ze sobą matematycznie powiązane. Informacje są szyfrowane za pomocą klucza publicznego, który jest dostępny dla każdego, a odszyfrowywane za pomocą klucza prywatnego, znanego tylko odbiorcy wiadomości.

Semestry dystrybucja kluczy oraz zarządzanie kluczami odnoszą się do procesów przetwarzania informacji, których treścią jest kompilacja kluczy i ich dystrybucja wśród użytkowników.

Podpis elektroniczny (cyfrowy) jego kryptograficzna transformacja nazywana jest dołączonym do tekstu, co pozwala, po otrzymaniu tekstu przez innego użytkownika, zweryfikować autorstwo i autentyczność wiadomości.

Odporność na krypto nazywana jest cechą szyfru, która określa jego odporność na odszyfrowanie bez znajomości klucza (tj. odporność na kryptoanalizę). Istnieje kilka wskaźników siły kryptograficznej:

liczba wszystkich możliwe klawisze;

średni czas wymagany do kryptoanalizy.

Wymagania dla kryptosystemów

Proces kryptograficznego zamykania danych może być realizowany zarówno programowo, jak i sprzętowo. Implementacja sprzętowa jest znacznie droższa, ale ma wysoką wydajność, prostotę i bezpieczeństwo. Wdrażanie oprogramowania bardziej praktyczny, pozwala na pewną elastyczność w użyciu.

Wspólne wymagania dla systemów kryptograficznych:

Zaszyfrowana wiadomość musi być czytelna tylko wtedy, gdy jest obecny klucz.

· liczba operacji wymaganych do ustalenia użytego klucza z fragmentu zaszyfrowanej wiadomości i odpowiadającego mu tekstu jawnego nie może być mniejsza niż łączna liczba możliwych kluczy;

Liczba operacji wymaganych do odszyfrowania informacji przez wyszukiwanie możliwych kluczy musi mieć ściśle dolną granicę i wykraczać poza limity nowoczesne komputery(uwzględnienie możliwości obliczeniowych sieci);

znajomość algorytmu szyfrowania nie powinna wpływać na niezawodność ochrony;

niewielka zmiana klucza powinna doprowadzić do istotnej zmiany rodzaju zaszyfrowanej wiadomości;

· elementy konstrukcyjne algorytmy szyfrowania muszą pozostać niezmienione;

dodatkowe bity wprowadzone do wiadomości podczas procesu szyfrowania muszą być całkowicie i bezpiecznie ukryte w zaszyfrowanym tekście;

Długość tekstu zaszyfrowanego musi być równa długości tekstu oryginalnego;

· nie powinno być prostych i łatwych do ustalenia zależności między kluczami sekwencyjnie używanymi w procesie szyfrowania;

każdy klucz z zestawu możliwych musi zapewniać niezawodną ochronę informacji;

Algorytm powinien umożliwiać implementację zarówno programową, jak i sprzętową, a zmiana długości klucza nie powinna prowadzić do jakościowego pogorszenia algorytmu szyfrowania.

Podstawowe algorytmy szyfrowania

Metoda szyfrowania i deszyfrowania nazywa się szyfr . Klucz używany do deszyfrowania może nie być taki sam jak klucz używany do szyfrowania, ale w większości algorytmów klucze są takie same.

Algorytmy wykorzystujące klucz dzielą się na dwie klasy: symetryczny (z tajnym kluczem) i asymetryczny (z kluczem publicznym). Algorytmy symetryczne używają tego samego klucza do szyfrowania i deszyfrowania lub klucz deszyfrowania jest po prostu obliczany na podstawie klucza szyfrowania. Algorytmy asymetryczne używają różnych kluczy i klucza deszyfrującego nie można obliczyć na podstawie klucza szyfrowania.

Algorytmy symetryczne dzielą się na szyfry strumieniowe i szyfry blokowe. Strumieniowanie pozwala na szyfrowanie informacji bit po bicie, podczas gdy blokowe działają z określonym zestawem bitów danych ( zwykle rozmiar bloku to 64 bity) i zaszyfruj ten zestaw jako całość.

Zazwyczaj klucz szyfrowania jest zbiorem plików lub danych i jest przechowywany na nośniku klucza osobistego (na przykład dysku flash lub karcie inteligentnej); niezbędne do podjęcia środków w celu zapewnienia niedostępności danych osobowych kluczowy nośnik ktokolwiek inny niż jego właściciel.

Autentyczność zapewniona jest dzięki temu, że bez wstępnego odszyfrowania praktycznie niemożliwe jest przeprowadzenie semantycznej modyfikacji i fałszerstwa kryptograficznie zamkniętej wiadomości. Fałszywa wiadomość nie może być poprawnie zaszyfrowana bez znajomości tajnego klucza.

Integralność danych zapewnia dołączenie specjalnego kodu do przesyłanych danych ( imitacje wstawek ) generowane przez klucz tajny. Wstawianie imitacji jest rodzajem sumy kontrolnej, tj. pewną charakterystykę referencyjną wiadomości, zgodnie z którą sprawdzana jest integralność tego ostatniego. Algorytm generowania imitacji wstawki musi zapewnić jej zależność, zgodnie z pewnym złożonym prawem kryptograficznym, od każdego bitu wiadomości. Kontrola integralności wiadomości jest wykonywana przez odbiorcę wiadomości poprzez wygenerowanie, z tajnego klucza, imitacji wkładki odpowiadającej odebranej wiadomości i porównanie jej z odebraną wartością imitacji wkładki. W przypadku dopasowania stwierdza się, że informacja nie została zmodyfikowana w drodze od nadawcy do odbiorcy.

Szyfrowanie symetryczne jest idealne do szyfrowania informacji „dla siebie”, na przykład w celu uniemożliwienia nieautoryzowanego dostępu do nich pod nieobecność właściciela. Posiadać wysoka prędkość szyfrowanie, jednokluczowe kryptosystemy pozwalają rozwiązać wiele ważnych problemów ochrony informacji. Jednakże korzystanie w trybie offline symetryczne kryptosystemy w sieć komputerowa podnosi problem dystrybucji kluczy szyfrujących wśród użytkowników.

Przed rozpoczęciem wymiany zaszyfrowanych danych konieczna jest wymiana tajnych kluczy ze wszystkimi odbiorcami. Przekazanie tajnego klucza symetrycznego kryptosystemu nie może odbywać się za pośrednictwem publicznych kanałów komunikacji, tajny klucz musi zostać przekazany nadawcy i odbiorcy za pośrednictwem bezpiecznego kanału (lub z pomocą kuriera). Aby zapewnić skuteczną ochronę wiadomości krążących w sieci, niezbędna jest ogromna liczba często zmieniających się kluczy (jeden klucz dla każdej pary użytkowników). Problem rozpowszechniania tajnych kluczy dużej liczbie użytkowników jest bardzo czasochłonnym i złożonym zadaniem. W sieci dla N użytkowników konieczne jest rozdzielenie N (N-1) / 2 tajnych kluczy.

Szyfry asymetryczne zezwól, aby klucz publiczny był dostępny dla wszystkich (na przykład opublikowany w gazecie). Dzięki temu każdy może zaszyfrować wiadomość. Jednak tylko użytkownik, który jest właścicielem klucza odszyfrowywania, może odszyfrować tę wiadomość. Klucz szyfrowania nazywa się klucz publiczny , a klucz deszyfrujący to prywatny klucz lub sekretny klucz .

Klucze prywatny i publiczny są generowane parami. Tajny klucz musi pozostać u właściciela i być bezpiecznie chroniony przed nieautoryzowanym dostępem (podobnie jak klucz szyfrujący w algorytmach symetrycznych). Kopię klucza publicznego musi przechowywać każdy subskrybent sieci kryptograficznej, z którym właściciel tajnego klucza wymienia informacje.

Systemy kryptograficzne z kluczem publicznym wykorzystują tzw. funkcje nieodwracalne lub jednokierunkowe, które mają następującą właściwość: dla danej wartości X stosunkowo łatwe do obliczenia f(x), Jeśli jednak yM = j(x), to nie ma łatwego sposobu na obliczenie wartości X. Zbiór klas nieodwracalnych funkcji generuje całą różnorodność systemów kluczy publicznych.

Proces przesyłania zaszyfrowanych informacji w asymetrycznym kryptosystemie odbywa się w następujący sposób.

Etap przygotowawczy :

· abonent B generuje parę kluczy: klucz tajny kin i klucz publiczny Kin;

klucz publiczny Kb jest wysyłany do subskrybenta A i innych subskrybentów (lub udostępniany na przykład we współdzielonym zasobie).

Stosowanie ( wymiana informacji między A i B ):

abonent A szyfruje wiadomość przy użyciu klucza publicznego K do abonenta B i wysyła zaszyfrowany tekst do abonenta B;

· subskrybent B odszyfrowuje wiadomość przy użyciu swojego tajnego klucza k in; nikt inny nie może odszyfrować tej wiadomości, ponieważ nie posiada tajnego klucza subskrybenta B.

Ochrona informacji w asymetrycznym kryptosystemie opiera się na utajnieniu klucza k odbiorcy wiadomości.

Zalety asymetryczne systemy kryptograficzne przed symetrycznymi kryptosystemami:

ü w asymetrycznych kryptosystemach rozwiązany jest złożony problem dystrybucji kluczy między użytkownikami, ponieważ każdy użytkownik może wygenerować własną parę kluczy, a klucze publiczne użytkowników mogą być swobodnie publikowane i rozpowszechniane komunikacja sieciowa;

ü znika kwadratowa zależność liczby kluczy od liczby użytkowników; w kryptosystemie asymetrycznym liczba używanych kluczy jest powiązana z liczbą abonentów zależnością liniową (w systemie N użytkowników używa się 2N kluczy), a nie kwadratową, jak w systemach symetrycznych;

ü asymetryczne kryptosystemy pozwalają na implementację protokołów interakcji stron, które nie ufają sobie nawzajem, ponieważ przy użyciu asymetrycznych kryptosystemów prywatny klucz powinien być znany tylko jego właścicielowi.

Wady asymetryczne kryptosystemy:

jesteś na ten moment nie ma matematycznego dowodu nieodwracalności funkcji używanych w algorytmach asymetrycznych;

ü szyfrowanie asymetryczne jest znacznie wolniejsze niż szyfrowanie symetryczne, ponieważ podczas szyfrowania i deszyfrowania wykorzystywane są operacje bardzo intensywnie wykorzystujące zasoby; z tego samego powodu znacznie trudniej jest zaimplementować koder sprzętowy z algorytmem asymetrycznym niż zaimplementować algorytm sprzętowo-symetryczny;

ü konieczność ochrony kluczy publicznych przed podmianą.

Nowoczesne algorytmy szyfrowania i deszyfrowania są dość złożone i nie można ich wykonać ręcznie. Prawdziwe algorytmy kryptograficzne są przeznaczone do użytku przez komputery lub specjalne urządzenia sprzętowe. W większości aplikacji kryptografia jest tworzona przez oprogramowanie i dostępnych jest wiele pakietów kryptograficznych.

Algorytmy symetryczne są szybsze niż asymetryczne. W praktyce oba typy algorytmów są często używane razem: algorytm klucza publicznego jest używany do przesyłania losowo wygenerowanego tajnego klucza, który jest następnie używany do odszyfrowania wiadomości.

Wiele wysokiej jakości algorytmów kryptograficznych jest powszechnie dostępnych. Najbardziej znanymi algorytmami symetrycznymi są DES i IDEA; najlepszym algorytmem asymetrycznym jest RSA. W Rosji jako standard szyfrowania przyjęto GOST 28147-89.

W tabeli 1 przedstawiono klasyfikację kryptograficznego zamykania informacji.

Tabela 1

Rodzaje konwersji Metody transformacji Odmiany metody Sposób realizacji
Szyfrowanie Wymiana (zastąpienie) Prosty (pojedynczy alfabet) Program
Polialfabetyczny jednoobwodowy zwykły Program
Wieloalfabetyczny monofoniczny z pojedynczą pętlą Program
Program
permutacja Prosty Program
Skomplikowane zgodnie z tabelą Program
Skomplikowane na trasach Program
Transformacja analityczna Zgodnie z zasadami algebry macierzowej Program
Dla specjalnych zależności Program
Hazard Ze skończoną krótką skalą Prog.aplik.
Ze skończoną długą gamma Prog.aplik.
Z nieskończonym zasięgiem Prog.aplik.
Łączny Wymiana + permutacja Prog.aplik.
Wymiana + granie Prog.aplik.
Permutacja+gry Prog.aplik.
Hazard+granie Prog.aplik.
Kodowanie semantyczny Według specjalnych tabel (słowników) Program
Symboliczny Według alfabetu kodu Program
Inne rodzaje cięcie-wybuch semantyczny Prog.aplik.
mechaniczny Program
Kompresja-ekspansja

I. Pod szyfrowanie rozumie się ten rodzaj zamknięcia kryptograficznego, w którym każdy znak chronionej wiadomości poddawany jest transformacji.

Wszystkie znane metody szyfrowania można podzielić na pięć grup: substytucja (substytucja), permutacja, transformacja analityczna, gamma i szyfrowanie łączone. Każda z tych metod może mieć kilka odmian.

Odmiany metody zastąpienie (podstawienie ):

1) Prosty (pojedynczy alfabet) - znaki zaszyfrowanego tekstu są zastępowane innymi znakami tego samego alfabetu. Jeśli objętość zaszyfrowanego tekstu jest duża, to częstości liter w zaszyfrowanym tekście będą bliższe częstościom liter alfabetu (języka, w którym tekst jest napisany), a odszyfrowanie będzie bardzo proste. Ta metoda obecnie rzadko używane i w przypadkach, gdy zaszyfrowany tekst jest krótki.

2) Wieloalfabetyczny podstawienie - najprostszy rodzaj przekształcenia, który polega na zastąpieniu znaków tekstu źródłowego znakami z innych alfabetów według mniej lub bardziej złożonej zasady. Aby zapewnić wysoką siłę kryptograficzną, wymagane jest użycie dużych kluczy.

Na wieloalfabetyczny jednoobwodowy zwykły podstawienie, kilka alfabetów służy do zastępowania znaków tekstu źródłowego, a alfabet zmienia się sekwencyjnie i cyklicznie, tj. pierwszy znak jest zastępowany odpowiednim znakiem pierwszego alfabetu, drugi znakiem drugiego alfabetu i tak dalej. aż wszystkie wybrane alfabety zostaną użyte. Następnie powtarza się użycie alfabetów.

funkcja wieloalfabetyczny jednopętlowy monofoniczny substytucja polega na tym, że liczba i skład alfabetów są dobierane w taki sposób, aby częstości występowania wszystkich znaków w szyfrogramie były takie same. W tej sytuacji kryptoanaliza zaszyfrowanego tekstu za pomocą jego statystycznej obróbki staje się trudniejsza. Wyrównanie częstości występowania znaków uzyskuje się dzięki temu, że dla często występujących znaków tekstu źródłowego przewidziana jest większa liczba elementów zastępczych niż dla rzadko występujących.

Wielopętlowy polialfabetyczny substytucja polega na tym, że do szyfrowania wykorzystywanych jest kilka zbiorów (obwodów) alfabetów, używanych cyklicznie, a każdy obwód w ogólnym przypadku ma swój indywidualny okres stosowania. Okres ten jest z reguły obliczany na podstawie liczby znaków, po zaszyfrowaniu których zmienia się kontur alfabetów.

Droga permutacje - prosty sposób transformacji kryptograficznej. Jest zwykle używany w połączeniu z innymi metodami. Metoda ta polega na tym, że znaki zaszyfrowanego tekstu są uporządkowane według pewnych zasad wewnątrz zaszyfrowanego bloku znaków. Wszystkie procedury szyfrowania i deszyfrowania metodą permutacji są wystarczająco sformalizowane i mogą być implementowane algorytmicznie.

Szyfrowanie przez prostą permutację odbywa się w następujący sposób:

wybrane jest słowo kluczowe z niepowtarzalnymi znakami;

zaszyfrowany tekst pisany jest w kolejnych wierszach pod symbolami słowo kluczowe;

· zaszyfrowany tekst jest zapisywany w kolumnach w kolejności, w jakiej litery klucza są ułożone w alfabecie (lub w kolejności cyfr w naturalnym rzędzie, jeśli jest to cyfra).

Przykład:

zwykły tekst: BĄDŹ OSTROŻNY

klucz: 5 8 1 3 7 4 6 2

schemat szyfrowania:

STAY q O (gdzie q to spacja)

OSTROŻNOŚĆ

Grupujemy po 2 znaki i otrzymujemy zaszyfrowany tekst:

DOOYREZHBSqNTOUT

Wadą szyfrowania przez prostą permutację jest to, że jeśli długość zaszyfrowanego tekstu jest duża, zaszyfrowany tekst może wykazywać wzorce w znakach klucza. Aby wyeliminować tę wadę, możesz zmienić klucz po zaszyfrowaniu określonej liczby znaków. Przy odpowiednio częstej zmianie klucza można znacznie zwiększyć siłę szyfrowania. To jednak komplikuje organizację procesu szyfrowania i deszyfrowania.

Skomplikowana permutacja tabeli polega na tym, że do pisania znaków używa się zaszyfrowanego tekstu specjalny stół, w którym wprowadzono pewne komplikujące elementy. Tabela jest macierzą, której wielkość można dowolnie wybrać. W nim, podobnie jak w przypadku prostej permutacji, zapisywane są znaki zaszyfrowanego tekstu. Komplikacja polega na tym, że nie jest używana pewna liczba komórek tabeli. Ilość i lokalizacja niewykorzystane elementy to dodatkowy klucz szyfrowania. Zaszyfrowany tekst w blokach ( m x nS) elementy są zapisywane do tabeli ( m x n- wymiary stołu, S- liczba niewykorzystanych elementów). Ponadto procedura szyfrowania jest podobna do prostej permutacji.

Zmieniając wielkość tabeli, kolejność kluczowych znaków, ilość i rozmieszczenie niewykorzystanych elementów, można uzyskać wymaganą siłę zaszyfrowanego tekstu.

Skomplikowana permutacja tras ma wysoką siłę szyfrowania, wykorzystuje skomplikowaną metodę permutacji wzdłuż tras typu hamiltonowskiego. W tym przypadku wierzchołki jakiegoś hipersześcianu są używane do zapisywania znaków tekstu zaszyfrowanego, a znaki tekstu zaszyfrowanego są obliczane wzdłuż tras hamiltonowskich i używanych jest kilka różnych tras.

Metoda szyfrowania za pomocą przekształceń analitycznych zapewnia wystarczająco wiarygodne zamknięcie informacji. Aby to zrobić, możesz zastosować metody algebry macierzy, na przykład mnożenie macierzy przez wektor. Jeśli macierz jest używana jako klucz, a zamiast składnika wektorowego podstawiane są znaki tekstu źródłowego, to składnikami wynikowego wektora będą znaki tekstu zaszyfrowanego. Deszyfrowanie odbywa się przy użyciu tej samej zasady mnożenia macierzy przez wektor, tylko macierz jest traktowana jako podstawa, odwrotność tej, za pomocą której wykonywane jest zamknięcie, a odpowiednia liczba znaków tekstu zamkniętego jest wzięty jako wektor mnożnikowy. Wartości wektora wynikowego będą cyfrowymi odpowiednikami znaków tekstu jawnego.

Hazard- metoda ta polega na nałożeniu na tekst źródłowy jakiegoś pseudolosowego ciągu wygenerowanego na podstawie klucza. Procedurę nanoszenia gamma na tekst źródłowy można przeprowadzić na dwa sposoby. W pierwszy sposób oryginalny tekst i znaki gamma są zastępowane ich cyfrowymi odpowiednikami, które są następnie dodawane modulo Do, gdzie K to liczba znaków w alfabecie, tj.

t c = (t p + t g) mod K, gdzie tc, tp,tg - odpowiednio zaszyfrowany, zwykły tekst i znaki gamma.

W drugiej metodzie znaki tekstu źródłowego i gamma są reprezentowane jako kod binarny, a następnie odpowiednie cyfry są dodawane modulo 2. Zamiast dodawania modulo 2 podczas gamma można zastosować inne operacje logiczne, na przykład transformację według z zasadą logicznej równoważności lub logicznej nierównoważności. Taka zamiana jest równoznaczna z wprowadzeniem kolejnego klucza, jakim jest wybór reguły tworzenia znaków zaszyfrowanej wiadomości ze znaków tekstu źródłowego i gamma.

O sile szyfrowania metodą gamma decydują głównie właściwości gamma – czas trwania okresu i jednorodność charakterystyka statystyczna. Ta ostatnia właściwość zapewnia brak regularności w pojawianiu się różnych symboli w danym okresie.

Przy dobrych właściwościach statystycznych gamma o sile szyfrowania decyduje tylko długość jego okresu. Co więcej, jeśli długość okresu gamma przekracza długość zaszyfrowanego tekstu, taki szyfr jest teoretycznie całkowicie bezpieczny. Dowolna sekwencja losowych znaków może być użyta jako nieskończona gamma, na przykład sekwencja cyfr liczby PI. Podczas szyfrowania za pomocą komputera sekwencja gamma jest tworzona za pomocą pseudoczujnika losowe liczby.

Połączone metody szyfrowania użyj kilku jednocześnie różne drogi, tj. sekwencyjne szyfrowanie tekstu jawnego przy użyciu dwóch lub więcej metod. Wystarczy skuteczne narzędzie poprawa siły szyfrowania.

Typowym przykładem szyfru kombinowanego jest amerykański National Cryptographic Data Enclosure Standard (DES).

II. Pod kodowanie ten rodzaj zamknięcia kryptograficznego jest rozumiany, gdy niektóre elementy chronionych danych (niekoniecznie są to pojedyncze znaki) są zastępowane wcześniej wybranymi kodami (kombinacjami numerycznymi, alfabetycznymi, alfanumerycznymi itp.).

Ta metoda ma dwie odmiany: kodowanie semantyczne i znakowe. Na kodowanie semantyczne Zakodowane elementy mają dobrze określone znaczenie (słowa, zdania, grupy zdań). Na kodowanie znaków każdy znak chronionej wiadomości jest zakodowany. Kodowanie symboliczne jest zasadniczo takie samo jak szyfrowanie podstawienia.

Na prawidłowe użycie kody są znacznie trudniejsze do złamania niż inne klasyczne systemy. Wynika to z trzech powodów. po pierwsze, duża długość użytego kodu (do szyfrowania - kilkaset bitów; książka kodów - setki tysięcy - milion bitów). Po drugie, kody usuwają nadmiarowość - praca kryptoanalityka jest skomplikowana. Po trzecie, kody operują na stosunkowo dużych blokach tekstu jawnego (słowach i frazach), a zatem ukrywają lokalne informacje, które Inaczej, może dostarczyć cennych „haczyków” dla kryptoanalityka.

Do niedociągnięcia kodowanie należy przypisać temu, że klucz nie jest wystarczająco dobrze używany podczas kodowania, tk. podczas kodowania pojedyncze słowo i fraz używana jest tylko niewielka część książki kodów. W rezultacie kod, gdy jest intensywnie używany, nadaje się do częściowej analizy i jest szczególnie wrażliwy na atak w obecności znanego tekstu jawnego. Z tych powodów kody muszą być zmieniane częściej, aby zapewnić większą niezawodność.

III. inne metody Zamknięcia kryptograficzne obejmują krojenie/rozkładanie i kompresję danych. Krojenie/rozszerzanie danych polega na tym, że tablica chronionych danych jest podzielona na takie elementy, z których każdy nie pozwala na ujawnienie treści chronionych informacji, a tak przydzielone elementy są umieszczone w różnych strefach pamięci. Procedura odwrotna nazywana jest zbieraniem danych. Jest całkiem oczywiste, że algorytm rozpraszania i ponownego składania danych musi być utrzymywany w tajemnicy.

Kompresja danych reprezentuje zastąpienie często występujących identycznych ciągów danych lub sekwencji identycznych znaków niektórymi wstępnie wybranymi znakami.

Funkcje haszujące

funkcja skrótu jest funkcją jednokierunkową stworzoną do uzyskania skrótu lub "odcisku palca" pliku, wiadomości lub jakiegoś bloku danych.

Początkowo funkcje mieszające były wykorzystywane jako funkcje do tworzenia unikalnego obrazu sekwencji informacyjnych o dowolnej długości w celu identyfikacji i określenia ich autentyczności. Sam obraz musi być małym blokiem o stałej długości, zwykle 30, 60, 64, 128, 256 lub 512 bitów. Dlatego sortowanie operacji wyszukiwania i innych z dużymi tablicami lub bazami danych jest znacznie uproszczone, tj. zajmuje znacznie mniej czasu. Aby zapewnić wymagane prawdopodobieństwo błędu, należy podać szereg wymagań dla funkcji skrótu:

· funkcja skrótu musi być wrażliwa na wszelkiego rodzaju zmiany w tekście M, takie jak wstawienia, emisje, permutacje;

Funkcja skrótu musi mieć właściwość nieodwracalności, czyli problem wyboru dokumentu M ”, który miałby wymaganą wartość funkcji skrótu, musi być obliczeniowo nierozwiązywalny;

· prawdopodobieństwo, że wartości funkcji skrótu dwóch różnych dokumentów (niezależnie od ich długości) będą się zgadzać musi być znikome.

Te wymagania można spełnić duża liczba istniejące funkcje matematyczne. Jeśli te funkcje są używane do sortowania, wyszukiwania itp. Jednak później, w oparciu o prace Simonsona nad teorią uwierzytelniania, stało się jasne celowość stosowania metod haszujących w schematach uwierzytelniania wiadomości w kanałach komunikacyjnych i systemach telekomunikacyjnych. W związku z tym otwarto szereg kierunków badań w dziedzinie kryptografii, które wiążą się z rozwojem nowych i udoskonalaniem istniejących funkcji skrótu. Główną ideą wykorzystania funkcji haszujących jest uzyskanie na ich podstawie funkcji jednokierunkowych, które są głównym produktem do rozwoju nowoczesnych mechanizmów kryptograficznych i metod uwierzytelniania.
Przyjrzyjmy się podstawowym pojęciom dotyczącym jednokierunkowych funkcji mieszających.

Większość funkcji mieszających jest zbudowana wokół funkcji jednokierunkowej f( ), co daje wyjściową wartość długości n po podaniu dwóch wartości wejściowych długości n. Te wejścia są blokiem źródłowym Mi i wartość skrótu Hi–1 poprzedni blok tekstu (ryc. 1):

Hi = f (Mi, Hi–1).

Wartość skrótu obliczona po wprowadzeniu ostatniego bloku tekstu staje się wartością skrótu całej wiadomości M.

Rys.1. Schemat jednokierunkowej funkcji mieszającej

W rezultacie jednokierunkowa funkcja mieszająca zawsze generuje dane wyjściowe o stałej długości n (niezależnie od długości tekstu wejściowego). Algorytm mieszający jest iteracyjny, więc funkcje mieszające są również nazywane algorytmami iteracyjnymi. Istota algorytmu haszującego tkwi w jego jednostronności, tj. funkcja powinna działać w jednym kierunku - kompresować, mieszać i rozpraszać, ale nigdy nie przywracać. Takie schematy pozwalają śledzić zmiany w tekstach źródłowych, co ma zapewnić integralność danych oraz w algorytmach podpis cyfrowy nadal zapewniają autentyczność danych. Jednak w czystej postaci funkcje te nie pozwalają na potwierdzenie autentyczności.


Szyfrowanie jest najczęściej stosowaną metodą kryptograficzną do zachowania poufności informacji, chroni dane przed nieautoryzowanym dostępem do nich. Najpierw spójrzmy na główne metody ochrona kryptograficzna Informacja. 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 prawidłowego przechowywania i używania 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ć poprawnego podpisu elektronicznego jakiegokolwiek elektronicznego dokument.
  2. Uwierzytelnianie pozwala zweryfikować, czy użytkownik (lub komputer zdalny) jest naprawdę tym, za kogo się podaje. Najprostszy schemat uwierzytelnianie jest hasłem - jako tajny element wykorzystuje hasło, które jest prezentowane 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óżne schematy uwierzytelnianie użytkownika.
  4. Generatory liczb losowych i pseudolosowych umożliwiają tworzenie ciągów liczb losowych, które znajdują szerokie zastosowanie w kryptografii, 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 transformacja otwarte informacje na zaszyfrowany (najczęściej nazywany 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,
Z(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 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" = Dk2 (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 zwykle oznacza niemożność obliczenia dla czas rzeczywisty z istniejącymi zasobami obliczeniowymi.

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 szyfrowania.

W szyfrowanie asymetryczne klucz szyfrowania 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że być swobodnie przesyłany przez sieć), ma jednak swoje własne problemy, w szczególności problem zastąpienia klucza publicznego i niska prędkość szyfrowanie. 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. Co więcej, w różnych algorytmach szyfrowania, a nawet w różne tryby bloki tego samego algorytmu 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 od 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 wysł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ść nowoczesne algorytmy Szyfrowania działają w bardzo podobny sposób: na zaszyfrowanym tekście wykonywana jest pewna transformacja przy udziale klucza szyfrującego, 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 innych 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, jest nazywany 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 norma krajowa Szyfrowanie 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 zaprojektować 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 rozszerzony Sieć Feistel i jest używana znacznie rzadziej. sieć tradycyjna Feistela. 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 (gdy 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 powszechne 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 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, więc sklasyfikować wszystko możliwe opcje algorytmy szyfrowania są trudne. Jako przykład algorytmu o niestandardowej strukturze możemy przytoczyć algorytm FROG, unikalny w swojej strukturze, którego w każdej rundzie jest wystarczająca skomplikowane zasady modyfikowane są 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, które są klasyfikowane przez różnych ekspertów jako różne rodzaje Struktury. 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.

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 internetowe, e-maile, wymianę prywatnych i oficjalnych wiadomości itp., które przewidują wymianę poufnych danych i informacji. Jeśli te dane wpadną w niepowołane ręce, mogą zaszkodzić nie tylko pojedynczemu użytkownikowi, ale całemu system online biznes.

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, symetryczne i asymetryczne. W kolejnych wierszach omówię bardziej szczegółowo każdy z tych rodzajów szyfrowania.

Rodzaje szyfrowania

Szyfrowanie symetryczne

W szyfrowaniu symetrycznym normalne czytelne dane, znane jako zwykły tekst, są kodowane (szyfrowane), tak ż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 osobami postronnymi, 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 nowoczesne systemy ach, 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 pod względem 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.

Kolejna wada wynika z faktu, że oprogramowanie, który przetwarza 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 wymiany danych 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 Sasha i Natasha oraz haker Siergiej z zamiarem przechwycenia ich rozmowy. 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 pierwotnie wysłał Sasha, i odesłana do Sashy.

Tak więc, kiedy Sasha otrzymuje tę wiadomość, jest przekonany, ż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 haszujące.

Ograniczenia

Jak wcześniej wspomniano, 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 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 szyfrujący E-mail PGP opiera się na technice „cyfrowej koperty”.

Haszowanie znajduje zastosowanie jako sposób sprawdzania siły hasła. Jeśli system utrzymuje hasz hasła, zamiast samego hasła będzie bezpieczniejsze, ponieważ nawet jeśli ten 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 pasuje do zapisanego. W związku z tym rzeczywiste hasło będzie widoczne tylko w krótkich momentach, kiedy trzeba je zmienić lub zweryfikować, co znacznie zmniejsza ryzyko, że wpadnie w niepowołane ręce.

Haszowanie służy również 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.

Żywotność informacji

§ Podczas przechwytywania zaszyfrowanej wiadomości dla niektórych typów algorytmów szyfrowania można obliczyć częstotliwość występowania określonych znaków i porównać je z prawdopodobieństwem wystąpienia określonych znaków lub ich kombinacji (bigramy, trygramy itp.). To z kolei może prowadzić do jednoznacznego odszyfrowania (ujawnienia) poszczególnych sekcji zaszyfrowanej wiadomości.

§ Obecność słów prawdopodobnych. Są to słowa lub wyrażenia, które mogą pojawić się w przechwyconej wiadomości (na przykład w przypadku tekstu angielskiego - „and”, „the”, „are” itp.).

§ Istnieją metody, dzięki którym zaszyfrowane wiadomości są praktycznie bezużyteczne dla Analiza statystyczna i analiza za pomocą prawdopodobnych słów. Należą do nich następujące.

§ Dyfuzja. Wpływ jednego znaku otwartej wiadomości rozciąga się na wiele znaków zaszyfrowanej wiadomości. Metoda ta, choć prowadzi do zwiększenia liczby błędów podczas deszyfrowania, może być wykorzystana do ukrycia struktury statystycznej otwartej wiadomości.

§ Splątanie. Rozwój zasady rozpraszania. W nim wpływ jednego znaku klucza rozciąga się na wiele znaków zaszyfrowanego

wiadomości.

§ Mieszanie. Polega ona na wykorzystaniu specjalnych przekształceń oryginalnego przekazu, w wyniku których prawdopodobne sekwencje zdają się rozrzucać po całej przestrzeni możliwych otwarte wiadomości. Rozwój tej metody polegał na wykorzystaniu algorytmów szyfrowania złożonego, składających się z sekwencji prostych operacji permutacji i podstawienia.

Przykładami powyższych metod są standardy szyfrowania DES i GOST 28147-89.

Istnieją dwa główne typy algorytmów szyfrowania:

§ algorytmy szyfrowania symetrycznego;

§ algorytmy szyfrowania asymetrycznego.

Szyfrowanie symetryczne.

Algorytmy szyfrowania symetrycznego opierają się na tym, że ten sam (wspólny) klucz jest używany zarówno do szyfrowania wiadomości, jak i jej odszyfrowywania (rys. 1).

Jedną z głównych zalet metod symetrycznych jest szybkość szyfrowania i deszyfrowania oraz główna wada– konieczność przekazania odbiorcy tajnej wartości klucza.



Nieuchronnie pojawia się problem: jak przekazać klucz i jednocześnie nie pozwolić na przechwycenie go przez atakujących.

Korzyści z kryptografii z kluczami symetrycznymi:

· Wysoka wydajność.

· Wysoka trwałość. Jeśli inne rzeczy są równe, siła algorytmu kryptograficznego jest określona przez długość klucza. Przy długości klucza 256 bitów konieczne jest wykonanie 10 77 wyszukiwań, aby go określić.

Wady kryptografii z kluczami symetrycznymi.

§ Problem dystrybucji kluczy. Ponieważ ten sam klucz jest używany do szyfrowania i deszyfrowania, do ich dystrybucji (transmisji) wymagane są bardzo niezawodne mechanizmy.

§ Skalowalność. Ponieważ zarówno nadawca, jak i odbiorca używają jednego klucza, liczba potrzebnych kluczy rośnie wykładniczo w zależności od liczby uczestników komunikacji. Aby wymieniać wiadomości między 10 użytkownikami, trzeba mieć 45 kluczy, a na 1000 użytkowników - już 499 500.

§ Ograniczone użycie. Kryptografia klucza tajnego służy do szyfrowania danych i ograniczania dostępu do nich; nie może być używana do zapewnienia właściwości informacji, takich jak autentyczność i

niezaprzeczalność.

Szyfrowanie asymetryczne

Algorytmy szyfrowania asymetrycznego (kryptografia z klucze publiczne) wymagają użycia dwóch kluczy. Pierwszy klucz to otwarty. Jest dystrybuowany całkowicie za darmo, bez żadnych środków ostrożności. Drugi, Zamknięte klucz jest utrzymywany w tajemnicy.

Każda wiadomość zaszyfrowana przy użyciu jednego z tych kluczy może zostać odszyfrowana tylko przy użyciu sparowanego klucza. Zazwyczaj nadawca wiadomości korzysta z klucza publicznego odbiorcy, a odbiorca ze swojego prywatnego klucza prywatnego.

W asymetrycznym schemacie przesyłania zaszyfrowanych wiadomości oba klucze pochodzą od jednego rodzica klucz główny. Kiedy dwa klucze powstają na podstawie jednego, są one zależne w sensie matematycznym, jednak ze względu na: złożoność obliczenioważaden z nich nie może być obliczony na podstawie drugiego. Po wygenerowaniu obu kluczy (zarówno publicznego, jak i prywatnego, prywatnego) klucz główny zostaje zniszczony, a tym samym wszelkie próby przywrócenia wartości kluczy z niego wyprowadzonych w przyszłości zostają wstrzymane.

Schemat asymetryczny idealnie łączy się z wykorzystaniem publicznych sieci komunikacyjnych (na przykład Internetu). Każdy abonent sieci może całkowicie swobodnie przesłać klucz publiczny swojemu partnerowi negocjacji, a ten, w roli nadawcy wiadomości, użyje tego klucza podczas szyfrowania wysyłanej wiadomości (rys. 2). Ta wiadomość może zostać odszyfrowana za pomocą jej klucza prywatnego tylko przez odbiorcę wiadomości, który wcześniej wysłał odpowiedni klucz publiczny. Atakujący, który przechwyci taki klucz, będzie mógł go użyć wyłącznie w celu przesłania niektórych zaszyfrowanych wiadomości do prawowitego właściciela klucza.

Wadą schematu asymetrycznego jest duży czas poświęcony na szyfrowanie i deszyfrowanie, co nie pozwala na ich wykorzystanie do szybkiej wymiany długich wiadomości w trybie dialogowym. Implementacja metod szyfrowania asymetrycznego wymaga dużo czasu procesora. Dlatego w swojej czystej postaci kryptografia z kluczem publicznym nie jest zwykle stosowana w światowej praktyce.



Ryż. 2. Schemat szyfrowania asymetrycznego

Nie można porównać, który jest lepszy, symetryczny czy asymetryczny algorytm szyfrowania. Należy zauważyć, że symetryczne algorytmy kryptograficzne mają mniejszą długość klucza i działają szybciej.

Kryptografia klucza tajnego i kryptografia klucza publicznego mają na celu absolutne rozwiązanie różne problemy. Algorytmy symetryczne dobrze nadają się do szyfrowania danych, algorytmy asymetryczne są zaimplementowane w większości sieciowych protokołów kryptograficznych.

Najczęściej stosowane metody łączą zalety obu schematów. Zasada działania schematów łączonych polega na tym, że klucz symetryczny (sesyjny) jest generowany dla następnej sesji przesyłania wiadomości. Ten klucz jest następnie szyfrowany i wysyłany przy użyciu schematu asymetrycznego. Po zakończeniu bieżącej sesji negocjacji klucz symetryczny zostaje zniszczony.

Podobał Ci się artykuł? Podziel się z przyjaciółmi!
Czy ten artykuł był pomocny?
TAk
Nie
Dziekuję za odpowiedź!
Coś poszło nie tak i Twój głos nie został policzony.
Dziękuję Ci. Twoja wiadomość została wysłana
Znalazłeś błąd w tekście?
Wybierz, kliknij Ctrl+Enter a my to naprawimy!