3DES
- Długość bloku = 64 bitów
- Długość klucza = 56, 112, lub 168 bitów
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).
Zastosowanie
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.
Algorytm
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
- zaszyfrowanie za pomocą pierwszego sekretnego klucza
- deszyfrowanie za pomocą drugiego sekretnego klucza
- 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)))
Schemat Blokowy Szyfrowania 3DES
Schemat Blokowy Deszyfrowania 3DES
Matematyka:
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.