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
- Ochrona informacji przed niepożądanym odczytem
- Zapewnienie prywatności korespondencji elektronicznej
- Uwierzytelnianie dokumentów
- Elektroniczny notariusz
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
- Daemen J., Rijmen V. (2013). The design of Rijndael: AES-the advanced encryption standard, Springer Science & Business Media
- Dąbal P., Pełka R. (2008). Implementacja algorytmu szyfrującego AES-128 w układzie FPGA Spartan 3E z procesorami PicoBlaze, "Pomiary Automatyka Kontrola, R. 54” Nr 8
- FIPS Pub, (2001). Announcing the Advanced Encryption Standard (AES)
- 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
- Kutyłowski M., Strothmann W. B. (1999). Kryptografia: Teoria i praktyka zabezpieczenia systemów komputerowych, Read Me
- Mała Encyklopedia, P. W. N. (2000). Wydawnictwo Naukowe PWN, Warszawa
- Schneier B. (2002). Kryptografia dla praktyków: protokoły, algorytmy i programy źródłowe w języku C, Wydawnictwa Naukowo-Techniczne, Warszawa
- Thorsten E. tłum. i oprac. Daszkiewicz K. (2013). Odszyfruj wszystko, "PC World”, nr 12
Przypisy
- ↑ 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
- ↑ 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
- ↑ 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
- ↑ 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
- ↑ 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