Вопрос

Таким образом, ребята, есть много разных доступных шифров - но какой из них является самым безопасным для использования в наши дни?

Список: http://www.php.net/manual/en/mcrypt.ciphers.php.

Это было полезно?

Решение

Если не уверены, используют AES (также известные как «Rijndael») с 128-битным ключом. Если вы разработали какой-то фетиш о размере ключа, вы можете выполнить ваши иррациональные качества, выбрав больший ключ, например, 192 или 256 битов; Дополнительная стоимость не высокая (+ 40% рабочая нагрузка для AES-256, по сравнению с AES-128, и она занимает очень очень Быстрая сеть, чтобы на самом деле наблюдать эту разницу).

Остерегайтесь, независимо от выбранного размера ключей, правильный шифр Mcrypt для AES всегда MCRYPT_RIJNDAEL_128. Отказ Это связано с тем, что стандарт AES относится к аромату шифра Rijndael с 128-битным размером блока. Если вы хотите AES-256, вам нужно использовать MCRYPT_RIJNDAEL_128 с 256-битным (32 байтовым) ключом, а не MCRYPT_RIJNDAEL_256.

AES был опубликован в 1998 году и принял правительство США в качестве федерального стандарта в 2001 году, и он не показывает никаких признаков слабости. Некоторые математические свойства были найдены позже, но они не влияют на реальную безопасность; В основном они подсвечивают, что у нас есть некоторые относительно точные знания о том, почему AES безопасна. Ни один другой алгоритм симметричного шифрования не получил столько же внимания (тысячами талантливых криптографов), чем AES.

Большинство проблем безопасности приходят от того, как используется криптографический алгоритм, а не само алгоритм. Используйте правильный режим цепочки, добавьте Mac, управлять прокладкой, и большинство всех обрабатывает ключи надежно. Если у вас все это правильно (что гораздо сложнее, чем то, что похоже), то становится время, чтобы беспокоиться о выборе Рейндаэля, двойной или чего-либо.

Другие советы

В дополнение к отличному ответу Томаса, вы также должны рассмотреть вопрос о том, что вы пытаетесь добиться с точки зрения «безопасности» (конфиденциальность / целостность / подлинность / доступность).

Для каждого случая вам нужно будет решить несколько вопросов, например ... Кто это относится к? Где и почему это используется (что вы защищаете)? Как долго это должно длиться долго? и т.п.

Например, существует, вероятно, нет смысла в действительно зашифрованных данных сеанса с полной взорвательной последовательностью 256 битных операций, когда данные действительно предназначены только для просмотра, чтобы скажем, что 20-30 минут. Безопасный 128-битный алгоритм был бы почти в два раза быстрее или, по меньшей мере, использовать нагрузки меньше тактных циклов и будет как (если не более) безопасным.

Также нет смысла зашифровать то, что предназначено для длительного времени (например, конфиденциальный документ или файл, частный ключ и т. Д.) С слабым, коротким ключевым методом. Вы хотели бы по временам несколько алгоритмов с какой-то аутентификацией и правильным использованием прокладки. Я регулярно зашифровал и подписал контент по запросу на клиенты с использованием нескольких алгоритмов (в основном двойных, AES, RSA).

И не забывать либо (например, Томас указал), вы можете реализовать безопасный метод (или методы) не впретельно. С огромным количеством вариантов каждой формулы и такого, может быть сложно реализовать то, что «безопасно».

Как правило, что-то так же безопасно, как ключ - разблокировать его. Если я покину свои ключи автомобиля в машине с разблокированным автомобилем, ключи не безопасны, и она открыта для взятия любого прогулка прошлого. Blowfish с хорошо диспергированным 32 клавишей символов будет таким же безопасным, как и все остальное. Однако в мгновение ока появится 3 символа.

«Самый сильный шифр - AES-256»

По деталям на веб-сайте Брюса Шиееера AES-256 может быть, по иронии судьбы, как наименее безопасны из трех ключевых размеров 128, 192 и 256. Есть проблемы с ключевым генерацией в 256-битном варианте.

Некоторые алгоритмы лучше других в разных вещах - не уверены, какие ваши критерии для «самых безопасных».

Вы, безусловно, не должны использовать какие-либо алгоритмы на основе DES в наши дни (при условии, что у вас есть бесплатный выбор). AES (Rijndael) - текущий стандарт для ниста и других органов.

В целом больше бит для определенного алгоритма означает более безопасность, но убедитесь, что вы используете вектор инициализации и не используете ECB.

Емкость

Слияние

Согласно Nist Paper, Rjindael имел низкую маржу о безопасности по сравнению с Марсом, двойком или змеем. Если вам действительно нужен самый сильный шифр, выберите один из них.

http://csrc.nist.gov/archive/aes/round2/r2report.pdf.

Чтобы цитировать: «Марс, кажется, имеет высокую маржу безопасности. Точная характеристика Марса сложно из-за того, что Марс занимает два разных вида раундов. Марс получил некоторую критику, основанную на ее сложности, что может препятствовать ее анализу безопасности во время сроки разработки AES.

Rijndael, кажется, имеет адекватную маржу безопасности. Марка безопасности немного сложно измерить, потому что количество раундов меняется с размером ключа. Rijndael получила некоторую критику на две основания: что ее маржа безопасности находится на низкой стороне среди финалистов, и что ее математическая структура может привести к атакам. Однако его структура довольно проста, что может облегчить свой анализ безопасности в течение указанного периода процесса разработки AES.

Змей, по-видимому, имеет высокую маржу безопасности. Змей также имеет простую структуру, которая может облегчить свой анализ безопасности в течение указанного периода процесса разработки AES.

Кажется, имеет высокую маржу безопасности. Поскольку Twofish использует ключевую зависимующую функцию, понятие охранной маржи может иметь меньшее значение для этого алгоритма, чем для других финалистов. Зависимость двусмысленных S-ящиков только к K / 2 битам энтропии в корпусе K-бита в корпусе K-бита привела к предположению, что TwoFish может быть поддано к атаке различия и покоря, хотя такая атака не найден. Twofish получила некоторую критику за его сложность, сложно изготовление анализа во время сроки развития процесса развития AES ».

Если вы хотите посмотреть на детали, есть статья, в основном мной, на блочных шифрах на http://en.citizendium.org/wiki/block_cigher.

Чтобы соблюдать текущие стандарты США, используйте AES, ранее Rijndael. Любой из других финалистов соревнований AES - змея, Марс, двойной или RC-6 - также должен быть в порядке. Я думаю, вам нужна лицензия на RC6.

Я обычно использую AES-128, так как AES одобрен FIPS. Самый сильный шифр - AES-256 (Mcrypt_rijndael_256).

Mcrypt имеет модульную конструкцию, а новый шифр можно легко добавить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top