Polscy naukowcy z Wojskowej Akademii Technicznej w Warszawie stworzyli urządzenie nazywane "Narodowym Szyfratorem". Informacje prasowe nie pozwalają mi stwierdzić, czy to prawdziwa rewolucja, czy tylko medialny overhype.
Jest to sprzętowa implementacja algorytmu AES-256, plus tajemniczy "algorytm oparty na funkcjach eliptycznych". Sam AES nie jest niczym niezwykłym, całe mięcho tego rozwiązania to właśnie te "funkcje eliptyczne". Czyżby Polska opracowała własny algorytm szyfrowania?
Większość nowoczesnych algorytmów szyfrowania, nie dziwota, powstało w USA. Tamtejsze wojsko jest dobrze dofinansowane i dokonało już wielu przewrotów technicznych. Wystarczy wspomnieć, że to właśnie amerykańskie wojsko wynalazło loty kosmiczne, Internet, radary, GPS i wiele innych rzeczy, bez których obecnie nie możemy żyć. Jedną z takich rzeczy jest szyfrowanie.
Amerykanie traktują algorytmy szyfrujące jako broń i zakazują ich eksportu. Niektóre projekty programistyczne powstające poza granicami USA są w myśl ich prawa nielegalne. Np. wiele dystrybucji Linuxa przygotowuje specjalne okrojone wersje dla Ameryki i osobne dla reszty świata, żeby amerykańscy obywatele mogli ich używać.
Każdy nowy algorytm jest z reguły zakazywany przez amerykański rząd a następnie przepisy są stopniowo luzowane. Dzieje się tak prawdopobnie dlatego, że wojsko uczy się te szyfry łamać.
Algorytmy szyfrujące działają w następujący sposób: Jest sobie jawny ciąg bitów T (tzw. tekst), jest sobie ciąg bitów zwany kluczem K i algorytm A, który produkuje szyfr C. Jest też algorytm deszyfrujący D, który dla danego K i C odtworzy wyjściowy tekst T.
A(T, K) = C
D(C, K) = T
Siła algorytmu zależy od długości klucza. Można zapuścić algorytm łamiący zwany brute-force, który po kolei dla wszystkich kluczy spróbuje odszyfrować wiadomość, aż dostanie jakieś sensowne dane:
K := 0
Powtarzaj:
T := D(C, K)
Jeżeli T jest sensowne, to zakończ.
Jeżeli nie jest:
Zwiększ K o 1.
Wykonaj pętlę jeszcze raz.
Czas działania takiego algorytmu jest funkcją wykładniczą rozmiaru klucza. Jeżeli procedurę D umiemy wykonać w milisekundę a klucz ma 256 bitów, to czas całego algorytmu wyniesie: 2 do potęgi 256 milisekund, czyli mniej więcej 3 undecyliony lat (3 i 66 zer). Jak widać, łamanie szyfrów nie jest prostym zadaniem.
Każdy algorytm ma jednak wady. Otóż funkcja szyfrująca musi być różnowartościowa, tzn. każdemu argumentowi przyporządkowywać inną liczbę. Jedną taką funkcję łatwo znaleźć, ale mamy jeszcze klucz. Dla każdego klucza ta funkcja musi być inna, czyli algorytm szyfrowania z kluczem długości 256 to de facto 2 do potęgi 256 funkcji różnowartościowych. Przy takiej ich liczbie łatwo o pomyłki.
Otóż może się okazać, że np. kilka kluczy realizuje po prostu tą samą funkcję różnowartościową. Może się okazać, że część kluczy jest "słaba", czyli np. produkuje funkcję identycznościową. Niektóre klucze mogą być złe, czyli w ogóle nie produkować funkcji różnowartościowej itp. Ilość sensownych kluczy może być zatem mniejsza niż nominalna siła algorytmu.
Zmodyfikowany algorytm łamiący szyfr mógłby zatem wyglądać tak:
L := 0
Powtarzaj:
Na podstawie znanych słabości algorytmu wygeneruj K zależne od L.
T := D(C, K)
Jeżeli T jest sensowne, to zakończ.
Jeżeli nie jest:
Zwiększ L o 1.
Wykonaj pętlę jeszcze raz.
Im więcej znamy słabości algorytmu, tym mniej kluczy musimy przeszukać aby go złamać. Może to istotnie zmniejszyć przestrzeń przeszukiwania. Np. algorytm DES ma klucz w nominalnym rozmiarze 64, ale ma znane słabości, które zmniejszają ją do 56 bitów.
Prawdopodobny scenariusz wygląda więc tak: Ktoś wymyśla algorytm szyfrujący. Amerykański rząd go zakazuje a jednocześnie armia bierze się za jego łamanie. Kiedy już znajdą dostatecznie dużo słabości, że złamanie tego szyfru znajduje się w granicach możliwości wojskowych komputerów, wtedy rząd go legalizuje.
Nikt nie wie, czy tak naprawdę jest. To w rzeczywistości jedna z teorii spiskowych, ale jednak prawdopodobna.
Warto wiedzieć, że inne kraje też tak robią. Np. w Rosji zakazane jest używanie szyfrowanej poczty a w Indiach zakazane są szyfrowane rozmowy telefoniczne. Po tych zakazach można określić zdolności wojskowych matematyków danego państwa oraz siłę ich komputerów. Np. USA zezwala na algorytmy poniżej 256 bitów, Rosja na poniżej 64.
Teraz należy się zastanowić, w jakiej sytuacji jest reszta świata. Otóż Amerykanie publikują tylko takie algorytmy szyfrujące, które sami potrafią złamać. Zatem szyfrowana korespondencja całego świata stoi dla Amerykanów otworem. Jedyna możliwość to wymyślić własny algorytm, którego USA nie umieją złamać.
Być może właśnie zrobili to polscy naukowcy.
Powstanie pytanie, czy wojsko ujawni ten algorytm. Jeżeli nie, to będzie to źle o nim świadczyło. Jest zasada, że bezpieczne algorytmy są jawne. Dotychczasowe działania wokół tego rozwiązania nie wyglądają zachęcająco.
Być może jednak te funkcje eliptyczne to po prostu jakiś mały dodatek o sile zaledwie kilku bitów. Wtedy wynalezienie "Narodowego Szyfratora" byłoby po prostu zwykłą pompą, zachwycaniem się byle czym. Umieściliśmy amerykański algorytm szyfrujący w małym komputerku i się tym podniecamy.
Czas pokaże, jak jest naprawdę. Jeżeli to będzie naprawdę nowy algorytm i naprawdę go ujawnią, to będę nim szyfrował wszystkie moje wrażliwe dane.
Wojny prowadzą dzisiaj naukowcy. Wygrywa ten, kto ma lepiej rozwiniętą technikę. Matematycy to dzisiaj odpowiednik "wsparcia", tylne linie z zaopatrzeniem.
Więcej na temat Narodowego Szyfratora:
http://www.rp.pl/artykul/2,585511_Polacy-stworzyli-nowa-Enigme--.htmlhttp://ipsec.pl/kryptografia/2010/szyfrator-narodowy-ns-premiera.htmlhttp://wiadomosci.gazeta.pl/Wiadomosci/1,80273,8878767,Polacy_stworzyli_nowa_Enigme.htmlAlgorytm AES:
http://pl.wikipedia.org/wiki/Advanced_Encryption_Standard