Zabezpieczanie danych przez szyfrowanie
Czy nam się to podoba, czy nie - podczas przesyłania informacji przez Internet lub za pomocą telefonu mogą one być przechwycone przez osoby niepowołane. Dlatego dużo uwagi we współczesnej informatyce poświęca się utajnianiu informacji przez ich szyfrowanie. Stosując szyfrowanie, zamienia się czytelny tekst (lub sygnał mowy w telefonii) na kompletnie niezrozumiały kod przesyłany do odbiorcy. Odbiorca deszyfruje ten kod i uzyskuje czytelny tekst (lub zrozumiały głos rozmówcy), natomiast haker przechwytujący sygnał „w drodze” pozostaje z niezrozumiałym i przez to bezużytecznym kodem.
Do wszystkich tych działań można dziś użyć łatwo dostępnych programów i aplikacji, ale dobrze jest mieć wiedzę na temat metod szyfrowania i deszyfrowania. Postaram się przekazać ją w dzisiejszym felietonie.
W historii przez długi czas odporność tajnych wiadomości na próby ich odczytania przez osoby nieupoważnione oparta była na tajemnicy używanej metody szyfrowania i deszyfrowania wiadomości. Stosował to 50 lat przed narodzeniem Chrystusa Juliusz Cezar, potem metody te były używane i doskonalone przez całe stulecia przez wojskowych, dyplomatów oraz bankierów, a szczytowym osiągnięciem w tym zakresie była w czasie II wojny światowej maszyna szyfrująca Enigma, której metoda szyfrowania została odkryta przez trzech polskich matematyków: Mariana Rejewskiego, Jerzego Różyckiego i Henryka Zygalskiego, co miało doniosłe konsekwencje.
Rozwój informatyki po wojnie sprawił, że możliwe stało się złamanie każdego szyfru opartego na tajnej metodzie szyfrowania, więc postanowiono odwrócić problem. Metody szyfrowania stały się znane (najpowszechniej znany jest opracowany w 1977 roku standard DES, który obecnie jest stosowany w wersji określanej skrótem AES - Advanced Encryption System) natomiast tajemnica tkwi w kluczu - zestawie znaków, sterujących pracą programu szyfrującego i deszyfrującego. Odporność tej metody na próby złamania szyfru jest bardzo duża i można ją wzmacniać stosując klucze złożone z coraz większej liczby znaków.
Metoda DES/AES jest świetna, ale ma słabą stronę: nadawca i odbiorca wiadomości muszą mieć ten sam klucz. Pojawia się praktyczny problem: jak nadawca ma przekazać klucz do odbiorcy, żeby nikt go nie przechwycił i na ile można być pewnym, że odbiorca ustrzeże klucz przed próbami kradzieży?
Tajemnica tkwi w kluczu - zestawie znaków, sterujących pracą programu szyfrującego i deszyfrującego
Wymyślono więc inną metodę szyfrowania, w której korzysta się z dwóch kluczy. Do wysłania tajnej wiadomości potrzebny jest tak zwany klucz publiczny. Każdy może go mieć, bo on służy tylko do szyfrowania nadawanych wiadomości, ale absolutnie nie może być użyty do ich odczytania. Deszyfracja wiadomości, czyli przejście między jej utajoną formą a tekstem jawnym, jest możliwe wyłącznie przy użyciu klucza prywatnego odbiorcy. Ten klucz jest tylko jeden, więc łatwo go upilnować. Opisany sposób szyfrowania najczęściej realizowany jest przez algorytm RSA . Nazwa pochodzi od pierwszych liter nazwisk jego autorów: Ron Rivest, Adi Shamir, Leonard Adleman.
Metoda z kluczami publicznymi i jednym kluczem prywatnym bardzo skutecznie zabezpiecza przesyłane informacje, ale ma jedną wadę: szyfrowanie i deszyfrowanie wymaga ogromnej liczby obliczeń i przez to trwa bardzo długo. Przy długich tekstach to może być nie do przyjęcia!
Ale stosuje się sprytną sztuczkę. Szyfruje się całą wiadomość metodą DES (albo inną, wymagającą jednego klucza), a potem szyfruje się klucz za pomocą klucza publicznego odbiorcy (czyli tą powolną, ale silnie utajniającą metodą). Do odbiorcy przesyła się mocno zaszyfrowany klucz (tylko posiadacz klucza prywatnego może go odcyfrować) oraz zaszyfrowaną tym kluczem właściwą wiadomość. W sumie dobrze to działa!