Порівняння DES, потрійного DES, AES, шифрування даних, що перетворюється на світ


Відповіді:


245

Використовуйте AES.

Більш детально:

  • DES - старий "стандарт шифрування даних" із сімдесятих років. Його розмір ключа є занадто коротким для належної безпеки (56 ефективних біт; це може бути жорстоким способом, як це було показано більше десяти років тому ). Також DES використовує 64-бітні блоки, що викликає певні потенційні проблеми при шифруванні декількох гігабайт даних одним ключем (гігабайт на сьогодні не такий великий).
  • 3DES - хитрість повторного використання реалізації DES шляхом каскадування трьох екземплярів DES (з чіткими клавішами). Вважається, що 3DES захищений як мінімум до " 2 112 " безпеки (що досить багато, і досить далеко в царині "не зруйнуються з сьогоднішніми технологіями"). Але це повільно, особливо в програмному забезпеченні (DES був розроблений для ефективної реалізації апаратних засобів, але він всмоктує програмне забезпечення; а 3DES висмоктує втричі більше).
  • Blowfish - це блок-шифр, запропонований Брюсом Шнейєром, який розгорнуто в деяких програмних продуктах. Blowfish може використовувати величезні клавіші і вважається захищеним, за винятком розміру блоку, який становить 64 біти, як DES та 3DES. Blowfish ефективний у програмному забезпеченні, принаймні, на деяких програмних платформах (він використовує таблиці, що залежать від клавіш, тому продуктивність залежить від того, як платформа обробляє пам'ять і кеш).
  • AES є наступником DES як стандартного алгоритму симетричного шифрування для федеральних організацій США (і як стандарт для майже всіх інших теж). AES приймає ключі 128, 192 або 256 біт (128 біт вже дуже нерозривний), використовує 128-бітні блоки (тому жодної проблеми там немає) і є ефективним як в програмному, так і в апаратному забезпеченні. Він був відібраний шляхом відкритого конкурсу за участю сотень криптографів протягом декількох років. В основному, ви не можете мати кращого від цього.

Тож, коли виникаєте сумніви, використовуйте AES.

Зауважте, що блоковий шифр - це поле, яке шифрує "блоки" (128-бітні фрагменти даних за допомогою AES). При шифруванні "повідомлення", яке може бути довше 128 біт, повідомлення повинно бути розділене на блоки, а власне спосіб розколу називається режимом роботи або "ланцюжком". Наївний режим (простий розкол) називається ЄЦБ і має проблеми. Правильне використання блок-шифру непросте, і важливіше, ніж вибір між, наприклад, AES або 3DES.


4
Будучи трохи горіхом, я майже завжди рекомендував би AES256
hdost

2
Святий Ш * т, АНБ може зламати DES в 1976 році, але продовжував заохочувати його використання до 2002 року! Назвіть мене параноїком, але я боюся поштовху для AES
д-р Део

25

Усі ці схеми, крім AES та Blowfish, мають вразливі місця, і їх не слід використовувати.
Однак Blowfish був замінений на Twofish .


11

Описані способи шифрування - це симетричні шифри блоку ключів.

Стандарт шифрування даних (DES) - це попередник, який шифрує дані в 64-бітових блоках за допомогою 56-бітного ключа. Кожен блок шифрується ізольовано, що є вразливим захистом.

Потрійна DES розширює довжину ключа DES, застосовуючи три операції DES на кожному блоці: шифрування з ключем 0, дешифрування з ключем 1 та шифрування з ключем 2. Ці ключі можуть бути пов’язані між собою.

DES і 3DES зазвичай стикаються при взаємодії зі застарілими комерційними продуктами та послугами.

AES вважається спадкоємцем і сучасним стандартом. http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

Я вважаю, що використання Blowfish не рекомендується.

Настійно рекомендується не намагатися реалізувати власну криптографію, а натомість використовувати реалізацію високого рівня, таку як GPG для даних у спокої або SSL / TLS для даних у дорозі. Ось відмінне та тверезий відео про вразливості шифрування http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/


2
Чому вживання пухнастиків не відлякує? Хіба це не найбезпечніший?
йогма

5
@yogsma: Blowfish має розмір блоку лише 64 біт (як це означало як заміну заміни на DES у протоколах), і, отже, стає проблематичним після того, як деякі ГБ даних, зашифровані тим самим ключем.
Paŭlo Ebermann

@rohannes, чому BlowFish не рекомендується, я читав десь - то в плані продуктивності BlowFish краще , ніж AES погляд на цю статтю на brighthub.com
Yogesh

9

AES - симетричний криптографічний алгоритм, тоді як RSA - це асиметричний (або відкритий ключ) криптографічний алгоритм. Шифрування та дешифрування відбувається за допомогою одного ключа в AES, тоді як ви використовуєте окремі ключі (відкриті та приватні ключі) в RSA. Міцність 128-бітного ключа AES приблизно еквівалентна 2600-бітовому ключу RSA.


7
чи можете ви надати математику, що підтримує цю відповідь, або джерело? Мені було б цікаво дізнатись, як ви дійшли висновку, що 128-розрядний AES приблизно еквівалентний 2600-бітовій RSA (я розумію, що це стара відповідь)
Рассел Ул

3
@RussellUhl - Я погоджуюся, що історія цих чисел є цікавим питанням навіть після двох додаткових років мовчання. :) Ці цифри, як видається, можна отримати з цього PDF-документа: eprint.iacr.org/2013/635.pdf з назвою Universal security - from bits and mips to pools, lakes – and beyond.
Джессі Чісгольм

4

Хоча TripleDESCryptoServiceProvider - це безпечний і хороший метод, але він занадто повільний. Якщо ви хочете звернутися до MSDN, ви отримаєте поради, що використовувати AES, а не TripleDES. Перевірте посилання нижче: http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.aspx Ви побачите цю увагу в розділі зауважень:

Примітка. Доступний новіший симетричний алгоритм шифрування, Розширений стандарт шифрування (AES). Подумайте про використання класу AesCryptoServiceProvider замість класу TripleDESCryptoServiceProvider. Використовуйте TripleDESCryptoServiceProvider лише для сумісності зі застарілими програмами та даними.

Удачі


3
Це смішно, враховуючи, що Microsoft все ще активно використовує TripleDES в деяких своїх продуктах для шифрування ( en.wikipedia.org/wiki/Triple_DES#Usage )
Том Херд,

@Так ви маєте рацію, але не забувайте, що багато м'які вироби використовують старі технології, і це потребує часу, щоб адаптуватися до нових методів. Спеціально для величезних компаній, таких як Microsoft, хоча я згоден з вами щодо необхідності оновлення, і це погано, коли наша компанія пропонує щось робити, а робити інше.
QMaster

1
Корпорація Майкрософт відома своєю зворотною сумісністю. Їх використання TripleDES підпадає безпосередньо під "лише для сумісності зі застарілими програмами та даними".
Ден Бешард


0

AES - це прийнятий на даний момент стандартний алгоритм (звідси назва Розширений стандарт шифрування ).

Решта - ні.


3
Звідси назва? Як тоді назва "AES" вказує, що його слід використовувати?
CodyBugstein

15
А як щодо стандарту шифрування даних ? Ваша логіка "він має <стандарт> в імені - отже, саме це і слід використовувати" є досить хибною.
Златін Златев

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

AES швидше, ніж 3DES, особливо на процесорах, що підтримують AES-NI. (але навіть без цього - DES був розроблений для швидкого впровадження обладнання, а не впровадження програмного забезпечення) (Нормальний DES трохи швидший за деякими орієнтирами , але 56-бітні клавіші роблять його непридатним для будь-якого поточного використання)
Герт ван ден Берг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.