Projekt M.Rejewski: Dynamiczne szyfrowanie zupełne jako tarcza absolutna
Współautorzy wpisu:
schemat i algorytm: _C
redakcja i poprawki merytoryczne: MagGoogle
Jak działa autorski protokół bezpiecznej łączności bez użycia internetu? Przeanalizujmy architekturę dynamicznych kluczy jednorazowych i schemat blokowy „Ku pamięci Rejewskiego”.
Specyfikacja techniczna etapów algorytmu
- Slajd 1: Odnośnik do Szyfru Cezara – statyczny, klasyczny wzorzec podstawieniowy oparty na stałym przesunięciu liter.
- Slajd 2: Inspiracja Enigmą – przełamanie idei niezmiennego klucza na rzecz wirników modyfikujących układ w czasie rzeczywistym.
- Slajd 3: Inicjalizacja lokalna – fizyczna dystrybucja gigantycznej macierzy danych AB (1 GB) zobrazowana infrastrukturą serwerów w Douglas County.
- Slajd 4: Walidacja haseł – wykorzystanie natywnego standardu password_hash() zobrazowane zabezpieczeniami sieciowymi w Council Bluffs.
- Slajd 5: Ciągłość kryptograficzna – satyryczna wizja generowania nowych tokenów z serwisu Craiyon.
Wprowadzenie: Czym jest współczesne szyfrowanie zupełne?
Szyfrowanie zupełne (znane na świecie jako end-to-end lub E2EE) to zaawansowana metoda ochrony danych, w której informacja jest zabezpieczana bezpośrednio na urządzeniu nadawcy i odszyfrowywana dopiero na urządzeniu odbiorcy. Przesyłane w ten sposób dane są w pełni nieczytelne dla jakichkolwiek osób trzecich, w tym dla dostawców internetu, administratorów sieci oraz samych twórców platform komunikacyjnych (takich jak WhatsApp czy Messenger).
Cały proces opiera się na precyzyjnym, trójstopniowym podziale ról:
1. Urządzenie nadawcy: Blokuje i bezpowrotnie szyfruje wiadomość w momencie jej wysyłania.
2. Serwer pośredniczący: Przesyła dalej wyłącznie bezpieczny, zakodowany ciąg znaków. Nie ma do niego wglądu, ponieważ nie posiada klucza deszyfrującego.
3. Urządzenie odbiorcy: Dysponuje unikalnym kluczem, który jako jedyny pozwala na odblokowanie i odczytanie wiadomości.
Gwarantuje to absolutną prywatność. Nawet w przypadku udanego ataku hakerskiego na serwery firmy obsługującej komunikację, przechwycone przez przestępców dane pozostają dla nich całkowicie bezużytecznym szumem informacyjnym.
Korzenie ochrony danych: Od starożytnego Rzymu do nowoczesnych algorytmów
Aby w pełni zrozumieć potęgę dzisiejszych systemów bezpieczeństwa, musimy cofnąć się w czasie o ponad dwa tysiące lat. Fundamentalna zasada kryptografii opiera się bowiem na mechanizmie znanym w historii jako Szyfr Cezara.
Juliusz Cezar, chcąc bezpiecznie przekazywać rozkazy wojskowe swoim legionom, stosował tzw. szyfr podstawieniowy. Metoda ta polegała na prostym przesunięciu każdej litery w wiadomości o stałą liczbę pozycji w głąb alfabetu (standardowo były to trzy miejsca). W tym systemie litera „A” stawała się literą „D”, „B” zamieniało się w „E” i tak dalej przez cały tekst. Odbiorca, posiadając identyczny wzorzec (klucz), cofał przesunięcie alfabetu i bez problemu odczytywał pierwotny rozkaz.
Współczesne algorytmy działają na bliźniaczo podobnym schemacie, jednak zamiast przesuwać litery o stałą wartość, mieszają dane przy użyciu potężnych operacji matematycznych. Tradycyjny Szyfr Cezara miał jednak jedną krytyczną wadę – jego wzorzec był stały. Jeśli wróg poznał klucz, cała bezpieczna łączność natychmiast przestawała istnieć.
Projekt „Ku pamięci Rejewskiego”: Rewolucja dynamicznego wzorca
W hołdzie dla Mariana Rejewskiego – genialnego polskiego kryptologa, który jako pierwszy złamał kod niemieckiej maszyny szyfrującej Enigma – opracowany został autorski schemat blokowy programu realizującego ideę szyfrowania zupełnego nowej generacji. W tym systemie wzorzec kodowania nieustannie się zmienia. Nie jest stałą wartością, lecz ewoluuje w czasie rzeczywistym i jest znany wyłącznie dwóm połączonym ze sobą urządzeniom.
Krok po kroku: Analiza Schematu Blokowego Protokołu
Krok 1: Inicjalizacja lokalna
Dwa fizyczne urządzenia (np. smartfony) zostają zestawione bezpośrednio ze sobą. Komunikacja początkowa odbywa się całkowicie lokalnie, bez udziału sieci Internet, Wi-Fi czy Bluetooth (aby wykluczyć ryzyko zdalnego podsłuchu). Do sparowania wykorzystywany jest port podczerwieni IRDA lub inne fizycznie odizolowane medium.
Krok 2: Generowanie macierzy losowych danych
Na pierwszym urządzeniu generowany jest unikalny wzorzec A o gigantycznym rozmiarze 1024x1024x1024 bajtów (1 GB), wypełniony całkowicie losowymi wartościami z przedziału od 0 do 255. Na drugim urządzeniu generowany jest analogiczny wzorzec B o dokładnie takich samych parametrach i unikalnej strukturze losowej.
Krok 3: Bezpieczna wymiana bazowa
Urządzenia wymieniają się wygenerowanymi bazami danych drogą lokalną. Po zakończeniu tego procesu oba smartfony posiadają identyczny, zsynchronizowany komplet danych wejściowych (zbiór AB).
Krok 4: Tworzenie haseł dostępu
Użytkownik pierwszego urządzenia (Osoba OA) tworzy osobiste hasło, które zostaje zabezpieczone najnowocześniejszą, jednokierunkową funkcją password_hash (standard Bcrypt/Argon2id stosowany również w silniku walidacji bugonia.pl). Użytkownik drugiego urządzenia (Osoba OB) wykonuje dokładnie tę samą czynność.
Krok 5: Generowanie Tokenu Inicjującego
Algorytm uruchomiony na obu urządzeniach zestawia oba hasła za pomocą operacji sumy logicznej, a następnie nakłada na wynik kolejną warstwę funkcji password_hash. W ten sposób powstaje unikalny TOKEN – bazowy wzorzec startowy do pierwszej transmisji.
Lustrzany algorytm wymiany wiadomości (Proces ciągły)
Podpunkt A (Szyfrowanie i wysyłka): Osoba OA wprowadza pierwszą treść (tekst1). Algorytm przeszukuje zbiór danych AB w poszukiwaniu wystąpień każdego znaku z tekstu jawnego. Pobiera dokładne adresy komórek pamięci, w których te znaki się znajdują. Następnie, stosując sumę logiczną z aktualnym TOKEN, generuje nieczytelny ciąg szyfrogramu i wysyła go do odbiorcy. Kluczowy element bezpieczeństwa: bezpośrednio po wysłaniu, algorytm nieodwracalnie usuwa wykorzystane komórki ze zbioru AB (tworząc strukturę trim AB). Rozmiar bazy danych kurczy się dokładnie o długość wysłanego tekstu.
Podpunkt B (Odbiór i deszyfracja): Urządzenie Osoby OB odbiera zaszyfrowaną wiadomość. Ponieważ posiada zsynchronizowany TOKEN oraz identyczny zbiór danych wejściowych, wykonuje operację odwrotną. Ustala dokładne adresy komórek, odczytuje pierwotną treść wiadomości, a następnie natychmiastowo usuwa te same zużyte komórki ze swojego zbioru AB. Oba urządzenia zachowują idealne odzwierciedlenie struktur pamięci.
Podpunkt C (Łańcuch kryptograficzny): W tym momencie generowany jest nowy wzorzec – TOKEN. Powstaje on na bazie sumy logicznej TOKEN oraz bezpiecznie odszyfrowanej treści tekst1, przetworzonej przez funkcję password_hash. Cały cykl zamyka się i otwiera na nowo. Urządzenia są w pełni gotowe do obsługi kolejnej wiadomości (tekst2) z nowym, unikalnym kluczem.
Podsumowanie i puenta: Dlaczego ten algorytm jest nie do złamania?
Analiza techniczna i matematyczna tego rozwiązania pozwala wyróżnić kluczowe zalety, które stawiają ten protokół na najwyższej półce cyberbezpieczeństwa:
1. Fizyczne bezpieczeństwo: Kradzież, zgubienie lub przejęcie jednego z urządzeń przez osoby trzecie w żaden sposób nie pozwala na odtworzenie historii korespondencji ani deszyfracji przyszłych komunikatów.
2. Podwójna autoryzacja: Bez jednoczesnej znajomości tajnego hasła Osoby OA oraz hasła Osoby OB, próba odszyfrowania transmisji w dowolnym punkcie na osi czasu jest matematycznie niemożliwa.
3. Elastyczna skalowalność: Protokół działa nieprzerwanie aż do całkowitego wyczerpania komórek pamięci w zbiorach AB, a sam rozmiar baz danych wejściowych można swobodnie powiększać.
4. Gwarancja Forward Secrecy: Nawet w hipotetycznym scenariuszu, w którym napastnik poznałby oba haseł dostępowe, brak przechwycenia choćby jednej, konkretnej transmisji (np. pakietu numer 144) powoduje całkowite zerwanie ciągłości klucza. Wszystkie kolejne wiadomości stają się dla intruza niemożliwe do odczytania, ponieważ system bezpowrotnie gubi ścieżkę generowania nowych tokenów.
Wniosek do dyskusji: Czy sklonowanie zbiorów AB i haseł dostępu wystarczy do infiltracji?
Odpowiedź brzmi: Zdecydowanie nie. Nawet posiadając tak kompletny zestaw danych, intruz napotyka barierę nie do przejścia. Pierwsza wysłana wiadomość jest natychmiastowo miksowana i zabezpieczana zaawansowaną funkcją password_hash. Bez dokładnej znajomości unikalnego algorytmu operacyjnego, odtworzenie kolejnych stanów dynamicznego tokenu jest niemożliwe. To czyni ten protokół idealnym, nowoczesnym wzorem bezpiecznej łączności bezprzewodowej dla dwóch urządzeń.