(...) Żeby zdekodować te dane, trzeba powtórzyć dokładnie tak samo proces szyfrowania.
Nie, wystarczy plik o takiej samej długości jak porftel, i dość łatwo go wygenerować**.
(...)Mógłbyś rozwinąć tą myśl?(...)
Dlaczego to nie zmienia siły algorytmu? Bo przedstawiony algorytm używa najsilniejszego szyfrowania jakie istnieje - klucz o takiej samej długości jak dane które chroni*, i już sie go po prostu nie da wzmocnić.
Przy takiej długości klucza zamiast sprawdzac wszystkie możliwe klucze można równie dobrze sprawdzać po kolei wszystkie możliwe dane.
Atakując siłowo zaszyfrowany plik o długości 80B (anglokalecząc bruteforcem) znajde użyty klucz generujac wszystkie możliwe zawartości plików o długości 80 B,
nie bede musial generowac kluczy mających długość większą ( jak ten 800MB plik).
Odszyfrowanie zajmie atakującemu tyle samo prób(czasu) niezaleznie od tego czy do szyfrowania pliku o długości 80 B w podanym algorytmie zostanie użyty jako plik szyfrujący o długości 80 B z /dev/random,
czy o długości 80 GB z /dev/random.
W = P ^ X ^ PASSWORD
to ciagle jest:
gdzie X -dane o dlugości l, K - klucz o długości l, W - wynik o długości l.
tylko
gdzie P - wiele megabajtow danych xorowanych ze soba, PASSWORD - jakies tam dlugosci.
Ale ponieważ wcześniej uda mi sie znależć K niż P ( bo te jest dłuższe ), nie będę szukał P.
Kluczem jest rodzaj funkcji skrótu z tego duzego pliku, i gdy mam skrót nie potrzebuje pliku.
Dodanie PASSWORD - utrudnia pozyskanie klucza, ale to chroni przed innym typem ataku na szyfrowane dane - nie wystarczy wynajac zlodzieja aby zerwal z szyji pendrive'a z kluczem, trzeba jeszcze wynająć kilku szerokich kolesi żeby drugą część klucza w postaci hasła wyciągneli obcęgami. Ale gdy atakujacy pozyska klucz, siła użytego algorytmu czy długośc klucza jest już nieistotna.
* - przy zalozeniu ze klucz jest opdowiednio zabezpieczony, zawiera odpowiednią entropie itd.
** - operacja xor miedzy plikiem zaszyfrowanym a zdeszyfrowanym - da plik klucz o dlugosci pliku portfela bez koniecznosci uzywania nieporecznego 800MB pliku.