ου γαρ εστιν κρυπτον ο ου φανερον γενησεται ουδε αποκρυφον ο ου γνωσθησεται και εις φανερον ελθη
Wersja PL ENG Version

3DES

  • Ogólny opis
  • Algorytm
  • Schematy blokowe
  • Funkcje matematyczne
  • Implementacja
Szyfr 3DES jest blokowym szyfrem symetrycznym, zbudowanym na bazie DES. Został po raz pierwszy opublikowany pod koniec roku 1998, w ramach standardu ANS X9.52. Inną nazwą tego szyfru jest Triple Data Encryption Algorithm (w skrócie TDEA).
Szyfr blokowy z kluczem symetrycznym
Długość klucza = 56, 112 lub 168 bity
Długość bloku = 64 bity

Szyfr 3DES jest zbudowany na bazie algorytmu DES, będąc zaprojektowanym we wczesnych latach siedemdziesiątych i posiadając klucz sekretny o długości jedynie 56 bitów, okazał się zbyt słaby i łatwy do złamania za pomocą ataków siłowych przeprowadzanych przez komputery z końca lat dziewięćdziesiątych. Zakłada się, że siła algorytmu 3DES wynosi 112 bitów, jeśli napastnik zastosuje najbardziej efektywne ataki typu meet-in-the-middle.

Przez wiele lat 3DES był stosowany do ochrony płatności internetowych (standard EMV). Nawet obecnie (koniec roku 2016) wciąż tworzone są i utrzymywane nowe protokoły bazujące na tym szyfrze. 3DES był również używany w niektórych produktach Microsoftu (Microsoft Outlook 2007, Microsoft OneNote, Microsoft System Center Configuration Manager 2012) w celu ochrony ustawień i danych użytkowników.

Szyfrowanie 3DES polega na trzykrotnym wywołaniu zwykłego algorytmu DES. W najsilniejszej wersji 3DES , jako wejście do algorytmu przekazuje się sekretny klucz szyfrujący o długości 168 bitów, który następnie dzielony jest na trzy oddzielne klucze o długości 56 bitów każdy.

Szyfrowanie 3DES

  1. zaszyfrowanie za pomocą pierwszego sekretnego klucza
  2. deszyfrowanie za pomocą drugiego sekretnego klucza
  3. zaszyfrowanie za pomocą trzeciego sekretnego klucza

Operacje szyfrowania i deszyfrowania mogą zostać przedstawione za pomocą równań matematycznych.

Szyfrowanie:
    c = E3(D2(E1(m)))

Deszyfrowanie:
    m = D1(E2(D3(c)))

3DES z krótszymi kluczami

Użycie operacji deszyfrowania DES jako drugiego kroku podczas szyfrowania 3DES zapewnia kompatybilność ze zwykłym algorytmem DES. Aby szyfr 3DES zwracał taki sam wynik jak DES, należy użyć krótszego klucza. Za klucze pierwszy i drugi, ewentualnie drugi i trzeci, przyjmuje się dowolny taki sam klucz, którego wartość jest nieistotna.

    c = E3(D1(E1(m))) = E3(m)
    c = E3(D3(E1(m))) = E1(m)

Możliwe jest też użycie szyfru 3DES z sekretnym kluczem o długości 112 bitów. W takim przypadku, klucze pierwszy i trzeci powinny być identyczne. Daje to większe bezpieczeństwo niż zaszyfrowanie danych dwa razy za pomocą algorytmu DES (z dwoma różnymi kluczami), ponieważ zapewnia lepszą obronę przed atakami meet-in-the-middle.

    c = E1(D2(E1(m)))

 
Algorytm 3DES
3DES używa do szyfrowania i deszyfrowania dokładnie tych samych operacji co szyfr DES.

W każdej iteracji algorytmu DES, następujące operacje są wykonuje dla wszystkich bloków danych wejściowych: permutacja początkowa, 16 cykli funkcji Feistela i permutacja końcowa.

Natomiast podczas manipulowania bitami klucza, przeprowadzane są następujące operacje: przesunięcie bitów, permutacja PC-1 i permutacja PC-2.

Więcej szczegółów można znaleźć w opisie algorytmu DES.

Strona w trakcie budowy.