Algorytmy szyfrowania

Algorytmy szyfrowania
Polecane artykuły


Algorytm szyfrowania – to funkcja matematyczna dzięki której możliwa jest zmiana zwykłego tekstu z zakodowaną wiadomość. Zakodowany tekst to szyfrogram, natomiast wiadomość przed szyfrowaniem to tekst jawny. Kryptologia to nauka o zakodowanym przekazywaniu danych w celu zabezpieczenia ich przed niepowołanymi osobami. Kryptografia jest wiedzą o tworzeniu szyfrów, natomiast kryptoanaliza to nauka o łamaniu zabezpieczeń.[1]

Rodzaje algorytmów szyfrowania

Algorytmy szyfrowania dzielą się, ze względu na wykorzystanie tylko jednego bądź dwóch kluczy szyfrujących, na:

  • symetryczne
  • asymetryczne

Algorytmy symetryczne

Zdaniem B. Schneier’a algorytm symetryczny, nazywany również algorytmem z jednym kluczem jest to taki algorytm, w którym zarówno kodowanie (szyfrowanie) jak i dekodowanie (deszyfrowanie) tekstu jawnego odbywa się za pomocą jednego klucza.[2] Możliwa jest sytuacja, w której do szyfrowania i deszyfrowania zostaną wykorzystane różne klucze, w takim przypadku za pomocą jednego z nich można określić drugi.

Istnieją dwa główne rodzaje algorytmów symetrycznych:[3]

  • strumieniowe - opierające się na tym, iż komputer tworzy strumień szyfrujący równy długości wiadomości, którą chcemy zaszyfrować, a następnie przy użyciu operacji XOR (alternatywy wykluczającej) odpowiednie bity klucza są łączone z bitami wiadomości
  • blokowe - algorytm szyfrujący dzieli tekst jawny na bloki o pewnej wielkości a następnie każdy z tych bloków szyfruje oddzielnie

Standard szyfrowania AES

Gielata A., Russek P., Wiatr K. w swoim artykule opisują Advanced Encryption Standard (AES), który powstał na bazie algorytmu Rijndael. "Jest on przykładem symetrycznego algorytmu blokowego, co oznacza, że blok wejściowy oraz klucz przechodzą wielokrotne rundy transformacji zanim wyprodukują wynik. Szyfr może operować na bloku o zmiennej długości, używając kluczy zmiennej długości. Oficjalna specyfikacja standardu dopuszcza użycie bloku danych o długości 128 bitów oraz kluczy o długościach 128, 192 lub 256 bitów.”[4]

Algorytm ten jest bardzo bezpieczny – świadczy o tym akceptacja amerykańskiej agencji NSA. "W algorytmie Rijndael zarówno blok danych, jak i klucz reprezentowane są za pomocą macierzy, skonstruowanych według następujących zasad:

  • elementem macierzy jest 8 bitów (bajt),
  • liczba wierszy macierzy – Nb jest stała dla boku danych oraz klucza i wynosi 4,
  • liczba kolumn macierzy bloku danych – Ns jest równa długości bloku danych podzielonej przez wartość 32,
  • liczba kolumn macierzy klucza – Nk jest równa długości klucza podzielonej przez wartość 32.” [5]

Algorytmy asymetryczne

W tych algorytmach wykorzystywane są dwa klucze publiczny do szyfrowania tekstu jawnego oraz prywatny do deszyfrowania wiadomości. Przykłady:

  • Jednokierunkowe funkcje skrótu (funkcje haszujące) - służą do tworzenia sum kontrolnych
  • Podpisy cyfrowe

Cele szyfrowania

Historia szyfrów

Starożytne szyfry były stosunkowo proste, gdyż opierały się na operacjach przeprowadzonych przez człowieka. Współczesne komputery są wielokrotnie szybsze w obliczeniach więc złamanie tego rodzaju szyfrów nie jest dla nich żadną trudnością. Przykładowe szyfry historyczne:

  • Szyfr podstawieniowy (np. szyfr Cezara)
  • Szyfr przestawieniowe
  • Enigma
  • Szachownica Polibiusza
  • Gaderypoluki

Bibliografia

Przypisy

  1. Schneier B. (2002). Kryptografia dla praktyków: protokoły, algorytmy i programy źródłowe w języku C, Wydawnictwa Naukowo-Techniczne, Warszawa s. 29-30
  2. Schneier B. (2002). Kryptografia dla praktyków: protokoły, algorytmy i programy źródłowe w języku C, Wydawnictwa Naukowo-Techniczne, Warszawa s. 30-31
  3. Schneier B. (2002). Kryptografia dla praktyków: protokoły, algorytmy i programy źródłowe w języku C, Wydawnictwa Naukowo-Techniczne, Warszawa s. 30-31
  4. Gielata A., Russek P., Wiatr K. (2007). Implementacja standardu szyfrowania AES w układzie FPGA dla potrzeb sprzętowej akceleracji obliczeń, "Pomiary Automatyka Kontrola, R. 53” Nr 5, s. 48
  5. Gielata A., Russek P., Wiatr K. (2007). Implementacja standardu szyfrowania AES w układzie FPGA dla potrzeb sprzętowej akceleracji obliczeń, "Pomiary Automatyka Kontrola, R. 53” Nr 5, s. 48

Autor: Kamil Zaremba, Jacek Skalski