r   e   k   l   a   m   a
r   e   k   l   a   m   a

E-mail odporny na inwigilację – w przeglądarce, smartfonie i na desktopie

Strona główna AktualnościBEZPIECZEŃSTWO

W poprzednich częściach naszego cyklu Ochrona prywatności danych i komunikacji zajmowaliśmy się już metodami namierzania i podsłuchiwania smartfonów oraz środkami zapobiegawczymi, dzięki którym smartfony można wykorzystać do bezpiecznych rozmów głosowych, wymiany wiadomości tekstowych, a nawet anonimowego przeglądania Sieci. Czas na przyjrzenie się e-mailom, wciąż odgrywającym pierwsze skrzypce w komunikacji, zarówno na urządzeniach mobilnych jak i komputerach osobistych.

Sporą popularność w polskim Internecie zdobył ostatnio mem, na którym jeden z ministrów rządu RP z troską deklaruje swoją pomoc osobie, która zapomniała hasła do konta poczty elektronicznej. Nikogo to nie powinno dziwić. Tzw. „ustawa inwigilacyjna” doczekała się prezydenckiego podpisu, zapewniając wszelkiego rodzaju służbom pełną swobodę w gromadzeniu metadanych związanych z komunikacją elektroniczną (i sporą swobodę w prowadzeniu kontroli operacyjnej samych treści tej komunikacji). W tej sytuacji, jako że poczta elektroniczna pozostaje wciąż jedną z najważniejszych metod przesyłania sobie informacji, sami musimy zadbać o to, by tajemnica naszej korespondencji została zachowana. Na szczęście niezbędne do tego oprogramowanie rozwinęło się na tyle, że korzystanie z niego nie wymaga doktoratu z matematyki.

Oczywiście wielcy dostawcy usług pocztowych, tacy jak Google i Microsoft, zapewniają, że stosują szyfrowanie, chroniąc użytkowników Gmaila i Outlooka przed przechwyceniem ich komunikacji przez osoby niepowołane. Stosowane w tym celu połączenia po HTTPS (dla webmaila) i SSL (dla połączeń IMAP w kliencie poczty) niewątpliwie to właśnie robią, powstrzymując ciekawskich przed poznaniem treści korespondencji, gdy jest ona przesyłana z komputera czy smartfonu na serwer, ale to wszystko. Dla samego operatora usługi pocztowej treść naszych e-maili pozostaje jawna – i każdy, kto potrafi przekonać operatora, że musi ją poznać, bez problemu ją odczyta. Nie należy sądzić, że ludzie podlegli wspomnianemu na początku ministrowi możliwości przekonania wywodzących się z USA operatorów nie mają. Firmy te otwarcie wyjaśniają, na jakich warunkach współpracują z instytucjami państwowymi spoza Stanów Zjednoczonych i jaka jest skala tej współpracy.

r   e   k   l   a   m   a

I tak Google w pierwszej połowie 2015 roku otrzymało z Polski 629 nakazów udostępnienia danych dotyczących 839 kont, z których 25% rozpatrzono pozytywnie. W roku 2014 nakazów było 1046, dotyczyły one 1351 kont, rozpatrzono z nich pozytywnie w pierwszej połowie roku 28%, w drugiej 31%. Microsoft otrzymał w pierwszej połowie 2015 roku 74 nakazy dotyczące 92 kont, z których 69% rozpatrzono pozytywnie. W 2014 roku do Redmond trafiło z Polski 47 nakazów, dotyczących 62 kont, z czego rozpatrzono pozytywnie 89,4%. Czy to dużo? Zapewne zależy to od tego, kogo zapytamy, dla tych, których dane zostały ujawnione, jest to na pewno za dużo. W wypadku Google'a warto jedynie zauważyć, że najwyraźniej do tej pory polskie służby nie za bardzo przykładały się do formalnej strony takich operacji, gdyż wskaźnik pozytywnych rozpatrzeń dla Polski jest znacznie niższy, niż dla światowej średniej. Jedno jest tu pewne – w razie problemów nie ma co liczyć na to, że wielcy operatorzy zachowają dyskrecję. A co z tymi, którzy z dyskresji chcą uczynić swoją przewagę konkurencyjną?

Dostawcy bezpiecznej poczty

Od czasu ujawnienia przez Edwarda Snowdena skali inwigilacji Sieci przez amerykańskie służby, pojawiło się wiele gotowych biznesowych produktów i usług, które obiecują kompleksowe rozwiązania dla wszystkich tych, którzy troszczą się o swoją prywatność. Wszystkie obiecują stosowanie mocnej kryptografii, zachęcając użytkowników nazwami zastosowanych algorytmów szyfrujących skrzynki i integracją z popularnymi klientami poczty – tak, że korzystanie z nich jest niemal bezobsługowe. Nie oznacza to jednak, że korzystając z takich samych algorytmów szyfrowania, oferują one taki sam poziom bezpieczeństwa. Diabeł tkwi w szczegółach. Wybierając sobie dostawcę bezpiecznej poczty powinniśmy wziąć pod uwagę takie kwestie jak lokalizacja serwerów (im bardziej neutralne państwo, tym lepiej), szyfrowanie nie tylko danych ale i metadanych, oraz przede wszystkim, stosowanie w systemie poczty dowodów z wiedzą zerową, za sprawą których serwer nigdy nie ma dostępu do treści w jawnej postaci.

Naszym zdaniem obecnie można polecić trzy usługi pocztowe, które oferują zadowalający (choć nie idealny!) poziom ochrony prywatności korespondencji. Trzeba jednak pamiętać, że korzystanie z nich wiąże się jednak z innym ryzykiem, o którym sami dostawcy nie chcą mówić. Nie ma otóż żadnej gwarancji, że dostawcy ci będą na rynku w przyszłości. Wystarczy przypomnieć sobie losy usługi Lavabit, której operatorowi Ladarowi Levisonowi władze USA nakazały wydanie prywatnych kluczy SSL. Zamiast pójść na współpracę i narazić swoich użytkowników, Levison wolał zamknąć całą operację (inna sprawa, że wcześniej Lavabit wydawał w niektórych wypadkach organom ścigania dane swoich użytkowników).

SCRYPTmail

Za tą webmailową usługą pocztową stoi Sergei Krutov, Rosjanin z Estonii, który wyemigrował kilkanaście lat temu do USA i uważa, że prywatność jest naszym prawem. Jego poczta ukrywa przed użytkownikami wszystkie techniczne detale, zarazem udostępniając zainteresowanym cały swój kod źródłowy, tak byśmy nie obawiali się tylnych furtek. Zastosowanie szyfrowania end-to-end (czyli takiego, w którym fraza szyfrująca nigdy nie opuszcza komputera użytkownika), kryptosystemów AES-256 i RSA-2048 (w przyszłości dla wersji płatnej także RSA-4096) oraz szyfrowania metadanych (czyli oprócz treści także listy odbiorców i załączników) dobrze świadczy o projekcie.

Zaletami SCRYPTmaila są także prosty i przejrzysty interfejs, dbałość o bezpieczeństwo połączeń SSL, hostowanie skryptów wyłącznie na własnych serwerach, przejście niezależnego audytu bezpieczeństwa, łatwość integracji z oprogramowaniem OpenGPG, i możliwość wykorzystania aliasów pocztowych. Największe wady to umiejscowienie serwerów (Stany Zjednoczone), brak klienckich aplikacji mobilnych oraz obsługi IMAP (to czysto przeglądarkowa aplikacja), niektórym może też nie odpowiadać rozmiar skrzynki pocztowej (do tysiąca wiadomości), jak i to, że usługa pozostaje wciąż w fazie beta. To jednak oznacza też, że jest dostępna za darmo, jej twórcy przyjmują jednak datki w bitcoinach i litecoinach.

Tutanota

Zlokalizowana w Niemczech usługa pocztowa od marca zeszłego roku prowadzona jest przez prawdziwych bojowników wolności (jak się sami określają). Jeden z deweloperów, Bernd, tak mówi o swoich przekonaniach: W Niemczech mówiono nam o wartości prywatności, myśląc na temat Gestapo i Stasi. W naszych cyfrowych czasach wszechstronna inwigilacja stała się bardzo łatwa. Ja napisałem kod, by zabezpieczyć nasze dane od dzisiejszych orwellowskich zagrożeń. Oprócz silnej ideologicznej podbudowy, Tutanota oferuje też ciekawy, autorski system szyfrowania. Tak, wiemy że „autorski system szyfrowania” brzmi strasznie, ale autorzy zdecydowali się nie korzystać ze standardowego PGP, ponieważ chcieli, by szyfrowane były także tematy wysyłanych wiadomości. Oczywiście nie wymyślali przy tym własnych algorytmów, stosowane są tu AES-128 i RSA-2048, cały kod został też otwarty i udostępniony społeczności, by przejść z powodzeniem niezależny audyt.

Oprócz lokalizacji (choć tu można się spierać, czy oficjalnie szanujące prywatność Niemcy są faktycznie dobrym miejscem na serwery prywatnej poczty), atutem Tutanoty jest także szyfrowanie załączników i częściowe szyfrowanie metadanych, wielojęzyczność (w tym obsługa języka polskiego), oraz dostępność aplikacji mobilnych – na Androida oraz iOS-a, oraz wtyczki do desktopowego Outlooka. Niestety nie podepniemy się jednak przez IMAP-a, niepokoi też wykorzystanie tego samego hasła, które używamy do logowania jako hasła szyfrującego zawartość skrzynek. Podstawowe konto o pojemności 1 GB jest płatne, kosztuje 1 euro miesięcznie za użytkownika i pozwala podpiąć własną domenę pocztową oraz korzystać z aliasów. Jeśli jednak chcemy korzystać Tutanoty tylko do celów prywatnych, to można założyć konto za darmo, tracimy jednak możliwość podpięcia swojej domeny i korzystania z aliasów.

ProtonMail

Ten cieszący się sporym uznaniem społeczności szwajcarski dostawca lubi podkreślać znaczenie swojej lokalizacji, deklarując, że nasza poczta będzie tam bezpieczna tak, jak pieniądze w szwajcarskim banku. Co prawda szwajcarskie banki już dawno zapomniały, czym jest prawdziwa tajemnica bankowa, ale na użytkownikach robi wrażenie kolokacja serwerów, umiejscowionych pod granitowym płaszczem Alp w byłym bunkrze dowodzenia. Za tymi marketingowymi popisami stoi jednak też solidna implementacja kryptografii. Usługa wykorzystuje dwa hasła – pierwsze potrzebne jest do logowania, drugie do odszyfrowania prywatnego klucza RSA-2048, wykorzystywanego do odszyfrowywania skrzynki. Wszystko to dzieje się w przeglądarce – wykorzystano implementację OpenPGP w JavaScripcie.

ProtonMail szyfruje załączniki, częściowo szyfruje metadane, jest w pełni zgodny z OpenPGP, oferuje też usługę wygasania e-maili po określonym czasie (efemeryczna komunikacja a la Snapchat) i obiecuje liczne atrakcje w przyszłości, na czele z mechanizmem wygodnego importu kluczy innych użytkowników z innych usług pocztowych. Na swoją pocztę do wykorzystania dostajemy 1 GB. Główną wadą tego systemu jest brak obsługi IMAP. Do niedawna nie było też dostępnych aplikacji mobilnych, ale osoby, które prześlą na konto projektu 29 dolarów wsparcia, będą mogli pobrać wersje beta na Androida i iOS-a. Korzystanie z ProtonMaila jest darmowe, choć na założenie konta trzeba nieco poczekać. Usługa cieszy się sporym zainteresowaniem, dostawca wyraźnie nie nadąża z dostawianiem nowych serwerów.

Weź prywatność w swoje ręce

Bezpieczne skrzynki pocztowe są oczywiście bardzo fajne, ale w większości wypadków nie zastąpią nam „dużych” dostawców poczty, jak choćby wspomnianego już Gmaila czy Outlooka. Nie chodzi tylko o pojemność skrzynek i dopracowanie webowych interfejsów, ale też o pewność, że usługi te będą działały jeszcze wiele lat. Na szczęście w dużym stopniu zabezpieczyć można także i pocztę w tych usługach, choćby tylko po to, by Google nie skanowało jej pod kątem słów kluczowych, wykorzystywanych następnie do targetowania reklam.

Istnieją trzy podstawowe scenariusze korzystania z usług takich popularnych dostawców poczty – przez klienta przeglądarkowego, przez klienta desktopowego korzystającego z IMAP, oraz przez aplikację mobilną. Omówimy je po kolei.

Mailvelope – dla żyjących w przeglądarce

Z desktopowych klientów poczty korzystają dziś podobno tylko starej daty zaawansowani użytkownicy, dla większości dostęp do poczty oznacza korzystanie z przeglądarki. Normalnie jednak na webmaile nie mamy wielkiego wpływu, ich opcje konfiguracyjne, czy możliwość zintegrowania z zewnętrznym oprogramowaniem są znikome. Tym większą rolę odgrywa rozszerzenie Mailvelope dla Google Chrome i Firefoksa, dzięki któremu możemy łatwo włączyć szyfrowanie OpenPGP dla takich usług pocztowych jak Gmail, Outlook, Yahoo Mail i GMX – a także dostosować je do innych usług, takich jak np. webmaile polskich dostawców poczty elektronicznej.

Używanie Mailvelope nie jest trudne. Po zainstalowaniu rozszerzenia, dodaje ono do paska przycisków przeglądarki ikonkę z kłódką, za pomocą której można włączyć szyfrowanie dla danego webmaila. Następnie będziemy musieli albo wygenerować nową parę kluczy szyfrujących, albo zaimportować już używane. Służy do tego zakładka Key Management (rozszerzenie jest tylko częściowo spolonizowane), w której możemy przeglądać listę kluczy, importować je i generować. Podczas generowania musimy podać pełną nazwę właściciela klucza, adres e-mail, z którym będzie on powiązany, wskazać wielkość klucza (od RSA-1024 do RSA-4096) i ustalić datę jego wygaśnięcia (domyślnie nigdy). Tu też ustawiamy hasło zabezpieczające, które należy dobrze zapamiętać – bez niego swojej zaszyfrowanej poczty nie odczytamy.

Zanim skorzystamy ze swojego webmaila, warto jeszcze sprawdzić Opcje. Tu możemy ustawić, jak długo będzie pamiętane hasło, przygotować bezpieczne tło (mające upewnić, że żaden obcy skrypt nie manipuluje naszym interfejsem użytkownika), a także wybrać, jak wyświetlane mają być rozszyfrowane wiadomości i gdzie edytowane nowe wiadomości – czy w Mailvelope, czy w interfejsie dostawcy webmaila.

Aby wysłać szyfrowany list, musimy dodać wcześniej do Mailvelope klucz publicznym odbiorcy naszej korespondencji. Niestety nie ma tu opcji importowania kluczy z uznanych serwerów, pozostaje importować je z pliku, albo wkleić bezpośrednio do formularza. Dodany w ten sposób klucz pojawi się w panelu zarządzania kluczami – i od tej pory możemy już wziąć się za pisanie. W widoku nowej wiadomości webmaila powinna pojawić się ikonka notatnika, której kliknięcie otworzy nowe, bezpieczne okno. W nim możemy tekst wiadomości napisać, podpisać swoim kluczem, zaszyfrować kluczem odbiorcy (wybranego z listy kluczy dostępnych w pęku) i kliknięciem przycisku Transfer zaszyfrowaną wiadomość przesłać do zwykłego okienka webmaila.

Jeśli zaś ktoś wyśle do nas zaszyfrowany list, Mailvelope wyświetli treść PGP pod ikonką koperty z zamkniętą kłódką. By ją otworzyć, wystarczy kliknąć wskaźnikiem myszy (gustownie zmieniającym wygląd na kluczyk) i w wyskakującym bezpiecznym okienku wpisać swoje hasło do klucza prywatnego. Jeśli zrobimy to poprawnie, wiadomość zostanie błyskawicznie odszyfrowana. Wszystko to oczywiście dzieje się po stronie przeglądarki – Mailvelope niczego nigdzie nie wysyła, jeśli nie mamy w systemie keyloggerów, nie musimy się niczego obawiać.

Wygodne w użyciu rozszerzenie ma szansę znaleźć miejsce wśród najważniejszych narzędzi do walki z inwigilacją, trzeba jednak pamiętać, że nie chroni ono przesyłanych pocztą załączników, lecz tylko treść wiadomości. Jeśli chcemy przesłać naszemu odbiorcy pliki w sposób poufny, najlepiej zaszyfrować je za pomocą jakiegoś archiwizera z silnym hasłem, wgrać do bezpiecznej chmury, a następnie szyfrowanym mailem przesłać adres URL i hasło szyfrujące. Dokładniej tę kwestię omówimy w następnym odcinku cyklu.

K-9 Mail i APG – dla ludzi mobilnych

Także i na smartfonie czy tablecie możemy całkiem wygodnie korzystać z szyfrowanej poczty, przechowywanej na serwerach „zwykłych” dostawców. W wypadku Androida najlepszym rozwiązaniem będzie wykorzystanie tandemu klienta poczty K-9 Mail (prawdopodobnie najlepszego klienta poczty na Androida), oraz menedżera kluczy APG (będącego androidową implementacją oprogramowania OpenPGP).

Zacznijmy od zainstalowania APG (wersja na Androida), a następnie K-9 Mail (wersja na Androida) – dzięki temu podczas instalacji ten mobilny klient poczty rozpozna APG jako dostawcę usługi zarządzania kluczami i odpowiednio się skonfiguruje. Po instalacji należy przejść do zarządzania kluczami: uruchamiamy APG, a następnie albo generujemy nową parę kluczy, albo importujemy swoje klucze wykorzystywane w innym kliencie (choćby wspomnianym Mailvelope). Tworzenie własnego klucza RSA-4096 potrwa kilka minut, importowanie jest zaś możliwe z serwera kluczy, pliku, schowka, a nawet przez kod QR czy wiadomość radiową NFC. Uwaga – przy przenoszeniu prywatnego klucza należy zachować ostrożność, smartfon powinien być zaszyfrowany.

Po stworzeniu lub zaimportowaniu swojej pary kluczy oraz pobraniu kluczy publicznych naszych korespondentów, możemy wziąć się już za korespondencję w K-9 Mail. Po skonfigurowaniu w nim konta przez prostego kreatora, (dostęp po IMAP, robimy to zgodnie z ustawieniami podanymi przez dostawcę poczty), przechodzimy do menu Ustawienia > Ustawienia konta > Kryptografia. Jako dostawca OpenPGP powinien już być ustawiony APG, warto jeszcze zaznaczyć opcje Automatyczny podpis oraz Automatyczne szyfrowanie – dzięki nim wiadomości będą podpisywane i szyfrowane dla wszystkich odbiorców, których kluczami publicznymi w swoim pęku dysponujemy.

Aby teraz wysłać szyfrowanego e-maila, należy w głównym panelu dotknąć ikonki „plus”, i w polu adresata wpisać odbiorcę, którego adres znajduje się w pęku kluczy APG. Po zakończeniu edycji treści wystarczy dotknąć ikonki wysłania.

Równie proste jest odszyfrowanie odebranej wiadomości w mobilnym kliencie poczty. Zaszyfrowane dla nas wiadomości zostaną wyświetlone z przyciskiem Deszyfruj. Dotknięcie wywoła okno dialogowe z pytaniem o nasze hasło do klucza, poprawne jego wpisanie wyświetli odszyfrowaną wiadomość.

Warto jeszcze wspomnieć, że samo APG może być wykorzystane do szyfrowania i odszyfrowania wiadomości tekstowych – pozwalają na to opcje Zaszyfruj i Deszyfruj w menu kontekstowym. Potraktowane w ten sposób wiadomości mogą być skopiowane do schowka, lub udostępnione innym androidowym aplikacjom.

Thunderbird, GPG i Enigmail – dla tradycjonalistów

Desktopowy klient poczty, taki jak np. Thunderbird (wersja na Windowsa | wersja na Maka), jest wciąż dla wielu niezastąpionym narzędziem pracy. Połączymy go z zestawem narzędzi GPG (GNU Privacy Guard), które w Linuksie są domyślnie dostępne w większości dystrybucji, na Windowsie oferowane jako pakiet Gpg4win (wersja na Windowsa), a na OS-ie X jako GPG Suite (wersja na Maka). Pomoże w tym rozszerzenie Enigmail, z którym wygodnie Thunderbirda zaprzęgniemy do pracy z pocztą szyfrowaną.

Po skonfigurowaniu Thunderbirda jako klienta poczty (zgodnie ze wskazówkami dostawcy usługi), zainstalowaniu odpowiedniej wersji narzędzi GPG, pozostaje jeszcze pobrać dodatek Enigmail z katalogu Mozili. Robimy to wybierając w menu kontekstowym (ikona hamburgera) opcję Dodatki, w polu wyszukiwania wpisując „Enigmail” i odpowiednio klikając. Po restarcie klienta poczty zobaczymy kreatora konfiguracji rozszerzenia, pozwalającego na importowanie lub wygenerowanie swoich kluczy. Oczywiście klucz prywatny będzie zabezpieczony hasłem, którego siła zostanie oceniona przez rozszerzenie. Generowanie kluczy możemy przyspieszyć aktywnością w systemie – im więcej losowości w naszych działaniach, tym lepiej. Po utworzeniu kluczy pozostaje jeszcze wygenerowanie certyfikatu odwoławczego, za pomocą którego możemy unieważnić swój klucz publiczny.

Dostęp do konfiguracji Enigmail otrzymamy bezpośrednio przez nową pozycję w menu Thunderbirda. Tutaj poprzez moduł zarządzania kluczami możemy importować klucze, czy to z pliku, czy wyszukując tożsamość odbiorcy naszych wiadomości na serwerze kluczy. Przydatna jest też funkcja wyszukania kluczy dla wszystkich swoich kontaktów, za sprawą której rozszerzenie zrobi to za nas. Oczywiście warto wyeksportować też swój klucz publiczny na serwer – dzięki temu osoby, które chciałyby się z nami bezpiecznie skontaktować, będą mogły łatwo to zrobić. Finalnie należy odwiedzić ustawienia konta pocztowego i w pozycji OpenPGP włączyć obsługę szyfrowania dla danej tożsamości, wybierając zarazem, czy chcemy domyślnego szyfrowania i podpisywania wiadomości.

Teraz gdy tylko zaczniemy pisać e-maila do kogoś, kogo klucz publiczny w naszym pęku mamy, Enigmail wymusi szyfrowanie wiadomości. Pozostaje tylko kliknąć Wyślij, by dostarczyć wiadomość odbiorcy. Automatycznie też rozszerzenie zadba o odszyfrowywanie wiadomości do nas wysłanych (o ile poprawnie podamy hasło zabezpieczające klucz prywatny).

O co chodzi z tymi liczbami RSA?

Aby korzystać z szyfrowanej poczty nie musicie znać się na kryptografii, warto jednak znać podstawy, by nie pogubić się w tych wszystkich kluczach i szyfrach. Tak więc na sam koniec – nieco objaśnień.

W przedstawionych metodach szyfrowania poczty elektronicznej podstawową rolę odgrywa asymetryczny szyfr RSA. Asymetryczny, czyli taki, w którym używa się zestawów dwu kluczy, z których jeden może być udostępniony publicznie bez obawy o bezpieczeństwo zabezpieczonych danych. Tak więc klucz publiczny używany jest do zaszyfrowania danych, zaś klucz prywatny do ich odszyfrowania. To zaś oznacza, że wiadomość zaszyfrowaną kluczem publicznym możemy przesłać adresatowi – i mieć pewność, że jeśli nie utracił kontroli nad swoim kluczem prywatnym, to tylko on może ją odczytać.

Kryptosystemy takie jak RSA pozwalają na szyfrowanie dlatego, że uzyskanie klucza prywatnego na podstawie publicznego (i vice versa) jest obliczeniowo trudnym problemem, związanym z faktoryzacją (rozkładem na czynniki pierwsze) odpowiednio dużych liczb złożonych. Odwracając ten proces, można wykorzystać je do podpisu cyfrowego. Robi się to za pomocą klucza prywatnego na kryptograficznym skrócie wiadomości, dołączając taki podpis wraz z oryginalną wiadomością. Adresat mający klucz publiczny szyfruje wartość funkcji skrótu, porównując ją z wartością tej funkcji dla otrzymanej wiadomości. Jeśli obie wartości są takie, można założyć, że to wszystko działa poprawnie.

Tyle ogólników, zainteresowani Czytelnicy mogą chcieć prześledzić na prostym przykładzie ten proces powstawania kluczy i ich użycia krok po kroku. Należy w tym celu wybrać dwie różne duże liczby pierwsze p i q, w naszym wypadku będą to jednak nie tak znowu duże 5 i 11 (niczego to nie zmienia co do zasady, jedynie uprości nam obliczenia).

Niech kluczem publicznym będzie para liczb (n, e), zaś kluczem prywatnym para (n, d). Wartość n jest iloczynem naszych liczb pierwszych, w tym wypadku 5×11=55. Teraz należy wyliczyć tocjent – funkcję Eulera φ(n), która każdej liczbie naturalnej przypisuje liczność zbioru mniejszych od niej liczb względnie z nią pierwszych (czyli takich, które nie mają poza jedynką innych wspólnych dzielników w rozkładzie na czynniki pierwsze). W tym wypadku φ(n) policzymy z wzoru (p-1)×(q-1), uzyskując 40.

Teraz jako e wybierzmy losowo liczbę z przedziału 1… φ(n), która będzie względnie pierwsza z φ(n). Szukamy więc takiej liczby, która będzie mniejsza od 40 i która spełni warunek, że największy wspólnik dzielnik z 40 i e będzie równy 1. Niech będzie to np. 3. Finalnie pozostaje wyliczyć d, której różnica z odwrotnością liczby e jest podzielna przez φ(n), tj. 3-1=d(mod 40), czyli 3d=1mod(40). Posiłkując się Wolframem Alpha (jesteśmy leniwi) wyliczyliśmy, że d=27.

W ten sposób uzyskaliśmy klucz publiczny – parę (55, 3) i klucz prywatny – parę (55, 27). Te właśnie liczby zostaną wykorzystane dla funkcji RSA, zdefiniowanej dla wiadomości m i klucza k:

F(m, k) = mk mod n

Szyfrowanie (uzyskanie liczby c) w RSA polega na podniesieniu liczby kodującej wiadomość m (np. liczbę 13) do potęgi e i wykonaniu modulo n

F(m,e) = me mod n = c (w naszym wypadku 52)

Deszyfrowanie (uzyskanie liczby m) to F(c,d) = cd mod n = m. Jak łatwo się z pomocą Wolframa przekonać, uzyskamy w wyniku tej operacji 13, czyli naszą wiadomość.

Siła tego algorytmu bierze się z trudności znalezienia czynników, które przemnożone przez siebie dadzą ogromną liczbę. A są one naprawdę duże, wykorzystywane we współczesnym oprogramowaniu mają od 2048 do 4096 bitów długości, tymczasem największą jak do tej pory rozłożoną liczbą RSA była 232-cyfrowa liczba RSA-768, której złamanie zajęło ponad dwa lata. Można więc założyć, że jeszcze długo, do momentu zbudowania naprawdę potężnych komputerów kwantowych (wykorzystujących dziesiątki tysięcy kubitów), szyfr ten będzie bezpieczny.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.