DES

Autor: Slawomir Soszynski (slawek_at_loiv.torun.pl)
Data: Fri 07 Jun 1996 - 13:20:54 MET DST


Sorry, ze tak troszeczke nie na temat, ale podejrzewam iz niektore osoby
na tej liscie zainteresuje sposob kodowania ich wlasnych hasel i oczywiscie
najwazniejszego hasla root-a. Uprzedzam iz dany list przyznaczony jest
jedynie dla osob o silnych nerwach. Osoby nerwowe lub bojazliwe
prosze o pominiecie tego tekstu - gdyz nie mam zamiaru odpowiadac za jakis...
                           hmmm... powiedzmy...
                        
                                ZAWAL!!!

-->> Podaje dalszy ciag, bardziej szczegolowych danych odnosnie algorytmu DES.

Tak, wiec szyfr DES szyfruje 64-bitowe bloki danych przy uzyciu klucza o
dlugosci 56 bitow, przy czym nie ma zgody w kwestii, czy 56-bitowy klucz
jest wystarczajaco "silny"... :-)))
Pierwszym krokiem jest przestawienie 64 bitow bloku wejsciowego S w
sposob okreslony permutacja poczatkowa IP, co daje w wyniku S0=IP(S).
Nastepnym etapem jest 16-krotne wykonanie funkcji f, po czym wykonuje sie
permutacje odwrotna w stosunku do poczatkowej IP^-1, co konczy szyfrowanie.
Przykladowo, IP z ciagu bitow S=s1s2s3s4...s64 tworzy S0=s58s50s32...s7.
Wartosci zapisane we wszystkich tablicach sa stale.
Jak juz wspomnialem miedzy przestawieniami poczatkowymi i koncowymi algorytm
16 razy wykonuje funkcje f, zlozona z podstawien i przestawien.
np. niech Si bedzie wynikiem interacji, zas przez Li i Ri - lewa strona i
prawa polowa Si. Wowczas:
        Li=s1s2s3...s32
        Ri=s33s34s45...s64

        wowczas:
                Li=Ri-1
                Ri=Li*EX-OR(f(Ri-1,Ki)
                        ; Ki - 48 bitowy klucz...

Nalezy zauwazyc, ze po ostatniej interacji prawa i lewa polowa slowa wynikowego
nie sa zamieniane miejscami, lecz zamiast tego na bloku bitow powstalym z
polaczenia R16L16 jest wykonywana permutacja koncowa IP^-1. Jest to konieczne
aby algorytm mogl sluzyc zarowno do szyfrowania oraz do deszyfrowania.
Nalezalo by jeszcze opisac dzialanie "skrzynki" oraz samych przesuniec, ale
jest to historia zbyt dluga, aby sie tu rozpisywac. Jesli kogos to interesuje
a mysle iz na tej liscie jest troszeczke crakerow to udziele odpowiednich
informacji...

No dobrze ale jakie sa mozliwosci przelamania takiego szyfru?

Do problemu przelamania szyfru o n mozliwych kluczach mozna zastosowac dwa
trywialne podejscia: sprawdzenie wszystkich kluczy oraz poszukiwanie w tablicy.
Jesli chodzi o pierwsza metode to prowadzi sie przelamujac szyfr podczas
ataku z tekstem jawnym. Mamy kryptogram C. Odpowiadajcy mu tekst jawny M
szyfrujemy uzywajac kazdego mozliwego klucza, az stwierdzimy ze Ek(M)=C.
Zuzycie czasu wynosi wowczas T=O(n), natomiast objetosc pamieciowa S=O(1).
Czyli 1 klucz w ciagu 1 us to n=2^56 a to ok. 7*10^16 kluczy mozna sprawdzic
w ciagu T=10^6 dni.
Druga metoda czyil poszukiwanie w tablicy odbywa sie przy przelamaniu szyfru
podczas ataku z wybranym tekstem jawnym. Dla danego tekstu jawnego M0 sa
tworzone kryptogramy Ci=Eki(M0) dla i=1,...,n. Klucze Ki ukladamy nastepnie w
liste (tablice) w taki sposob,ze Ci jest numerem pozycji klucza Ki w tablicy.
Majac dany kryptogram mozemy wiec znalezc odpowiadajacy mu klucz w czasie
T=O(1), lecz objetosc pamieci S=O(n). Dla kluczy 56-bitowych objetosc pamieci
S=56*2^56 a to jest ok. 4*10^18 bitow.
Jest jeszcze jedna bardzo popularna metoda lamania DES-a, jest to oczywiscie
metoda Hellmana polegajaca na przyjeciu rozwiazania posredniego, w ktorym
zuzyciem czasu placi sie za oszczednosc pamieci przy ataku z wybranym tekstem
jawnym. Uwazam iz jest to najbardziej skuteczna metoda lamania DES-a.
W kolejnym liscie postaram sie o niej wspomniec... :-)))
                                                  
                                                        Slawek



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 12:44:59 MET DST