Вопрос

Я хочу зашифровать двоичный файл. Моя цель состоит в том, чтобы предотвратить кого-либо читать файл, который не имеет пароля.

Который является лучшим решением, AES или Blowfish с одной и той же ключевой длиной? Мы можем предположить, что злоумышленник имеет отличные ресурсы (программы, знания, деньги) для взлома файла.

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

Решение

Наверное AES. Blowfish был прямым предшественником для двоиков. Удача была вступлением Брюса Шнеера в конкурс, которая производила AES. Он был оценен как уступает входу по имени Рейндаэль, который был тем, что стало AES.

Интересно в стороне: в какой-то момент в соревновании все участники просили отдать свое мнение о том, как оценивалось цифры. Вероятно, не удивительно, что каждая команда выбрала свою собственную запись как лучшую - но каждая другая команда выбрала Rijndael как второе место.

Тем не менее, есть некоторые основные различия в основных целях Blowfish Ps. AES, которые могут (возможно) Hood Blowfish с точки зрения абсолютной безопасности. В частности, Blowfish пытается сделать атаку Brute-Force (исчерпание ключей), сложную, сделав начальный ключ настроить довольно медленную работу. Для обычного пользователя это немного последствий (оно все еще меньше, чем миллисекунда), но если вы пробуете миллионы клавиш в секунду, чтобы сломать его, разница довольно существенная.

В конце концов, я не вижу, что как основное преимущество, однако. Я обычно рекомендую AES. Мой следующий выбор, вероятно, будет змея, Марс и двойник в этом порядке. Blowfish придет куда-то после тех (хотя есть пару других, которые я бы, вероятно, порекомендовал опередил вручную).

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

Это не часто признанно, что размер блока блочного шифра также является важным соображением безопасности (хотя нигде не так важно, как размер ключей).

Blowfish (и большинство других блочных шифров одинаковой эпохи, такие как 3DES и IDEA), имеют размер 64 битового блока, который считается недостаточным для больших размеров файлов, которые являются общими в наши дни (чем больше файл, а тем меньше размер блока , Чем выше вероятность повторного блока в зашифрованном тексте - и такие повторные блоки чрезвычайно полезны в криптанализе).

AES, с другой стороны, имеет 128 битовый размер блока. Это только соображение является обоснованием для использования AES вместо взрыва.

С точки зрения самих алгоритмов я бы пошел с AES, по той простой причине в том, что он был принят Nist и будет рецензирован и Cryptanalyzed в течение многих лет. Однако я бы предположил, что в практических приложениях, если вы не храните некоторое файл, что правительство хочет сохранить секрет (в этом случае, вероятно, будет предоставлять вам NSA с лучшим алгоритмом, чем как AES, так и Blowfish), используя любой из этих алгоритмов сделать слишком много разницы. Вся безопасность должна быть в ключе, и оба этих алгоритма устойчивы к атакам грубой силы. Blowfish показал только слабым реализациям, которые не используют полные 16 раундов. И пока AES новее, этот факт должен сделать вас больше к Blowfish (если бы вы принимали во внимание только возраст). Подумайте об этом таким образом, Blowfish был рядом с 90-х годов, и никто (что мы знаем) сломали его еще ....

Вот что я бы поставил вам ... вместо того, чтобы смотреть на эти два алгоритма и пытаться выбрать между алгоритмом, почему бы вам не смотреть на свою ключевую схему поколения. Потенциальный злоумышленник, который хочет расшифровать ваш файл, не собирается сидеть там и придумать теоретический набор ключей, которые можно использовать, а затем сделать атаку грубой силы, которая может занять несколько месяцев. Вместо этого он собирается использовать что-то другое, например, атакующий аппаратное оборудование на вашем сервере, обратный инжиниринг вашей сборки, чтобы увидеть ключ, пытаясь найти какой-то файл конфигурации, который имеет ключ в нем, или, возможно, шантажирует ваш друг, чтобы скопировать файл с вашего компьютера Отказ Те, кто будет там, где вы наиболее уязвимы, а не алгоритм.

AES.

(Я также предполагаю, что вы имеете в виду двойную не намного старше и слабее Blowfish)

Оба (AES & Twofish) являются хорошими алгоритмами. Однако, даже если они были равны или были немного впереди на технических заслугах, я все равно выбрал AES.

Почему? Реклама. AES является стандартом для правительственного шифрования и, таким образом, миллионы других объектов также используют его. Талантливый криптаналитик просто получает больше «взрыва за доллар», поиск недостатка в AES, то он делает гораздо меньше, и использует двойной.

Неясность не предоставляет защиты в шифровании. Больше тел, просматривающих, изучение, зондирование, атакующий алгоритм всегда лучше. Вы хотите, чтобы самого «Vetted» возможен алгоритм и прямо сейчас, это AES. Если алгоритм не подвержен интенсивному и непрерывному вниманию, вы должны оформить более низкую доверие своей силы. Уверен, что никто не был скомпрометирован. Это из-за силы шифра или просто потому, что не хватает людей, посмотрел на конец ..... ВСЕ ЖЕ

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

Возможно, вы захотите взглянуть на спецификацию формата TrueCrypt для вдохновения, если вы хотите быстрый случайный доступ. Если вам не нужен случайный доступ, чем XTS, не является оптимальным режимом, поскольку он имеет слабые стороны других режимов. И вы можете добавить какой-то код проверки целостности (или код аутентификации сообщения).

Я знаю, что этот ответ нарушает условия вашего вопроса, но я думаю, что правильный ответ на ваше намерение - это просто это: используйте, какой алгоритм Algorith не позволяет вам самую длинную длину ключа, а затем убедитесь, что вы выбираете действительно хороший ключ. Незначительные различия в выполнении наиболее хорошо продуманных алгоритмов (криптографически и хронологически) перегружены несколькими дополнительными битами ключа.

Оба алгоритма (AES и Twofish) считаются очень безопасными. Это широко распространено в других ответах.

Однако, поскольку AES намного широко используется сейчас в 2016 году, он был специально аппаратно ускорен в нескольких платформах, таких как ARM и X86. Несмотря на то, что не значительно быстрее, чем для ускорения аппаратного обеспечения, AES теперь намного быстрее благодаря выделенным инструкциям CPU.

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