Porównanie DES, Triple DES, AES, szyfrowania Blowfish dla danych

Odpowiedzi:

245

Użyj AES.

Bardziej szczegółowo:

  • DES to stary „standard szyfrowania danych” z lat siedemdziesiątych. Jego rozmiar klucza jest zbyt krótki, aby zapewnić odpowiednie bezpieczeństwo (56 efektywnych bitów; może to być brutalne wymuszenie, jak wykazano ponad dziesięć lat temu ). Ponadto DES używa bloków 64-bitowych, co stwarza pewne potencjalne problemy podczas szyfrowania kilku gigabajtów danych tym samym kluczem (obecnie gigabajt nie jest taki duży).
  • 3DES to sztuczka polegająca na ponownym wykorzystaniu implementacji DES poprzez kaskadowanie trzech instancji DES (z różnymi kluczami). Uważa się, że 3DES zapewnia bezpieczeństwo na poziomie co najmniej „ 2 112 ” (co jest całkiem sporo i dość daleko w dziedzinie „nie do złamania przy dzisiejszej technologii”). Ale jest powolny, zwłaszcza w oprogramowaniu (DES został zaprojektowany do wydajnej implementacji sprzętu, ale zasysa oprogramowanie; a 3DES zasysa trzy razy więcej).
  • Blowfish to szyfr blokowy zaproponowany przez Bruce'a Schneiera i zastosowany w niektórych programach. Blowfish może używać ogromnych kluczy i jest uważany za bezpieczny, z wyjątkiem rozmiaru bloku, który wynosi 64 bity, podobnie jak DES i 3DES. Blowfish jest wydajny w oprogramowaniu, przynajmniej na niektórych platformach programowych (wykorzystuje tabele wyszukiwania zależne od klucza, stąd wydajność zależy od tego, jak platforma obsługuje pamięć i pamięci podręczne).
  • AES jest następcą DES jako standardowego algorytmu szyfrowania symetrycznego dla amerykańskich organizacji federalnych (i jako standard dla prawie wszystkich innych). AES akceptuje klucze 128, 192 lub 256 bitów (128 bitów jest już bardzo niezniszczalne), używa bloków 128-bitowych (więc nie ma problemu) i jest wydajne zarówno pod względem oprogramowania, jak i sprzętu. Został wybrany w drodze otwartego konkursu z udziałem setek kryptologów w ciągu kilku lat. Zasadniczo nie możesz mieć nic lepszego.

Dlatego w razie wątpliwości użyj AES.

Zauważ, że szyfr blokowy to skrzynka, która szyfruje „bloki” (128-bitowe fragmenty danych za pomocą AES). Podczas szyfrowania „wiadomości”, która może być dłuższa niż 128 bitów, wiadomość musi zostać podzielona na bloki, a rzeczywisty sposób podziału nazywany jest trybem działania lub „łączeniem”. Tryb naiwny (prosty podział) nazywa się EBC i wiąże się z problemami. Prawidłowe użycie szyfru blokowego nie jest łatwe i jest ważniejsze niż wybór między np. AES lub 3DES.

Thomas Pornin
źródło
4
Będąc trochę
wariatem,
2
Cholera, NSA mogła złamać DES w 1976 roku, ale zachęcała do jego stosowania do 2002 roku! Nazywam mnie paranoikiem, ale boję się presji na AES
Dr Deo
25

Wszystkie te programy, z wyjątkiem AES i Blowfish, mają znane luki w zabezpieczeniach i nie powinny być używane.
Jednak Blowfish został zastąpiony przez Twofish .

SLaks
źródło
11

Opisane metody szyfrowania to symetryczne szyfry blokowe klucza.

Data Encryption Standard (DES) to poprzednik, szyfrujący dane w 64-bitowych blokach przy użyciu 56-bitowego klucza. Każdy blok jest szyfrowany w izolacji, co stanowi lukę w zabezpieczeniach.

Triple DES wydłuża długość klucza DES poprzez zastosowanie trzech operacji DES na każdym bloku: szyfrowanie kluczem 0, deszyfrowanie kluczem 1 i szyfrowanie kluczem 2. Te klucze mogą być powiązane.

DES i 3DES są zwykle spotykane podczas łączenia się ze starszymi produktami i usługami komercyjnymi.

AES jest uważany za następcę i nowoczesny standard. http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

Uważam, że używanie Blowfish jest odradzane.

Zdecydowanie zaleca się, aby nie próbować implementować własnej kryptografii i zamiast tego używać implementacji wysokiego poziomu, takiej jak GPG do przechowywania danych lub SSL / TLS do przesyłania danych. Oto doskonały i otrzeźwiający film o lukach w szyfrowaniu http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/

rohannes
źródło
2
Dlaczego odradza się używanie rozdymki? Czy to nie jest najbezpieczniejsze?
yogsma,
5
@yogsma: Blowfish ma rozmiar bloku tylko 64-bitowego (ponieważ miał być zamiennikiem DES w protokołach), a zatem staje się problematyczny po kilku GB danych zaszyfrowanych tym samym kluczem.
Paŭlo Ebermann
@rohannes, dlaczego BlowFish jest zniechęcony, przeczytałem gdzieś pod względem wydajności BlowFish jest lepszy niż AES, spójrz na ten artykuł na brighthub.com
Yogesh
9

AES to symetryczny algorytm kryptograficzny, podczas gdy RSA to asymetryczny (lub klucz publiczny) algorytm kryptograficzny. Szyfrowanie i deszyfrowanie odbywa się za pomocą jednego klucza w AES, podczas gdy używasz oddzielnych kluczy (kluczy publicznych i prywatnych) w RSA. Siła 128-bitowego klucza AES jest z grubsza równoważna 2600-bitowemu kluczowi RSA.

BHEEMA RAM
źródło
7
czy możesz podać matematykę potwierdzającą tę odpowiedź lub źródło? Chciałbym wiedzieć, jak doszedłeś do wniosku, że 128-bitowe AES jest mniej więcej odpowiednikiem 2600-bitowego RSA (zdaję sobie sprawę, że to stara odpowiedź)
Russell Uhl
3
@RussellUhl - Zgadzam się, że historia tych liczb to ciekawe pytanie, nawet po 2 dodatkowych latach ciszy. :) Te liczby wydają się pochodzić z tego dokumentu PDF: eprint.iacr.org/2013/635.pdf zatytułowanego Universal security - from bits and mips to pools, lakes – and beyond.
Jesse Chisholm
4

Chociaż TripleDESCryptoServiceProvider to bezpieczna i dobra metoda, ale jest zbyt wolna. Jeśli chcesz odnieść się do MSDN, otrzymasz poradę, aby użyć AES zamiast TripleDES. Sprawdź poniższy link: http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.aspx. Uwagę tę zobaczysz w sekcji uwag:

Uwaga Dostępny jest nowszy algorytm szyfrowania symetrycznego, Advanced Encryption Standard (AES). Rozważ użycie klasy AesCryptoServiceProvider zamiast klasy TripleDESCryptoServiceProvider. Użyj TripleDESCryptoServiceProvider tylko w celu zapewnienia zgodności ze starszymi aplikacjami i danymi.

Powodzenia

QMaster
źródło
3
To zabawne, biorąc pod uwagę, że Microsoft nadal aktywnie używa TripleDES w niektórych swoich produktach do szyfrowania ( en.wikipedia.org/wiki/Triple_DES#Usage )
Tom Heard,
@Tom masz rację, ale nie zapominaj, że wiele miękkich wyrobów wykorzystuje stare technologie i dostosowanie się do nowych metod wymaga czasu. Specjalnie dla dużych firm, takich jak Microsoft, chociaż zgadzam się z tobą co do konieczności aktualizacji i jest to złe, gdy nasza firma sugeruje pewne rzeczy, a robi inne.
QMaster
1
Firma Microsoft jest znana ze wstecznej kompatybilności. Ich użycie TripleDES podlega bezpośrednio „tylko w celu zapewnienia zgodności ze starszymi aplikacjami i danymi”.
Dan Bechard
1

wprowadź opis obrazu tutaj

DES to stary „standard szyfrowania danych” z lat siedemdziesiątych.

Keshav Gera
źródło
0

AES jest obecnie akceptowanym standardowym algorytmem do użycia (stąd nazwa Advanced Encryption Standard ).

Reszta nie.

Ian Boyd
źródło
3
Stąd nazwa? Jak więc nazwa „AES” wskazuje, że należy go używać?
CodyBugstein
15
A co ze standardem szyfrowania danych ? Twoja logika „ma w nazwie <standard> - stąd tego powinno się używać” jest dość błędna.
Zlatin Zlatev
0
                DES                               AES
Developed       1977                              2000
Key Length      56 bits                           128, 192, or 256 bits
Cipher Type     Symmetric                         Symmetric
Block Size      64 bits                           128 bits
Security        inadequate                        secure
Performance     Fast                              Slow
ikarayel
źródło
AES jest szybszy niż 3DES, szczególnie na procesorach obsługujących AES-NI. (ale nawet bez tego - DES został zaprojektowany z myślą o szybkich implementacjach sprzętowych, a nie programowych) (Normalny DES jest nieco szybszy w niektórych testach porównawczych , ale klucze 56-bitowe sprawiają, że nie nadaje się do żadnego aktualnego użytku)
Gert van den Berg