Насколько практично было бы многократно шифровать данный файл?

В настоящее время я экспериментирую как с открытым ключом, так и с шифрованием личных файлов. Программы, которые я использую, имеют 2048-битное шифрование уровня RSA и 256-битного AES соответственно. Как новичок в этом (я был шифропанком всего около месяца - и немного новичок в информационных системах), я не знаком с алгоритмами RSA, но это не имеет значения здесь.

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

Вкратце, что я хотел бы узнать:

  1. Когда я шифрую файл с помощью 256-битного AES, а затем еще раз шифрую уже зашифрованный файл (снова используя 256), есть ли у меня теперь эквивалент безопасности 512-битного AES? Это в значительной степени вопрос о том, будет ли количество возможных ключей, которые потенциально должен проверить метод грубой силы, 2 x 2 в 256-й степени или 2 в 256-й степени в квадрате. Будучи пессимистом, я думаю, что это первое, но мне было интересно, действительно ли 512-AES достижим, просто дважды зашифровав 256-AES?
  2. Как только файл зашифрован несколько раз, так что вы должны продолжать использовать разные ключи или постоянно вводить пароли на каждом уровне шифрования, сможет ли кто-нибудь ** даже узнать, прошел ли он первый уровень шифрования? Я подумал, что, возможно, если бы кто-то зашифровал файл несколько раз, требуя несколько разных паролей, взломщик не смог бы узнать, взломали ли они хотя бы первый уровень шифрования, поскольку все, что у них было бы, все еще было бы зашифрованным. файл.

Вот пример:

  • Расшифрованный файл
  • DKE$jptid UiWe
  • oxfialehv u%uk

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

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

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


person RJ Miller    schedule 05.10.2010    source источник


Ответы (3)


В общем, если вы зашифруете файл с помощью k-битного AES, а затем снова с k-битным AES, вы получите только (k + 1) бит безопасности, а не 2k бит безопасности, с атакой «человек посередине». . То же самое верно для большинства типов шифрования, таких как DES. (Обратите внимание, что по этой причине тройной DES — это не просто три раунда шифрования.)

Кроме того, шифрование файла с помощью метода A, а затем с помощью метода B не обязательно должно быть даже таким надежным, как шифрование только с помощью метода B! (Однако это случается редко, если только метод А не имеет серьезных недостатков.) Напротив, вы гарантированно будете по крайней мере так же сильны, как метод А. (Всем, кто помнит название этой теоремы, рекомендуется оставить комментарий; да забыл.)

Обычно гораздо лучше просто выбрать один-единственный метод, настолько сильный, насколько это возможно.


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

person Charles    schedule 05.10.2010
comment
Если вы используете другой ключ для каждого раунда шифрования, это все еще так? А как насчет других распространенных алгоритмов? - person Sean A.O. Harney; 05.10.2010
comment
Если вы используете тот же ключ, это k бит (без изменений). Если вы используете разные ключи, k + 1. Если вы используете два разных алгоритма, оба с k битами, обычно это k + 1. - person Charles; 05.10.2010
comment
Игнорируя атаки типа «встреча посередине», относится ли это обычно к эффективной безопасности? Для наивной атаки грубой силы кажется, что ключевое пространство будет иметь размер 2 ^ (256 + 256) для двух раундов 256-битного ключа (который фактически использовал все 256 бит для ключа). - person Sean A.O. Harney; 05.10.2010
comment
Если не обращать внимания на специальные атаки, то да два доп. Но я бы не стал их игнорировать, особенно когда они дают 255-битный перерыв... - person Charles; 05.10.2010

Еще мнение здесь...

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

Кроме того, такие соображения могут быть недействительными в зависимости от приложения, в котором вы пытаетесь использовать это шифрование ... «Секреты», которые вам нужно будет хранить, становятся больше (количество итераций и все различные ключи, которые вам понадобятся, если на самом деле они отличаются), время на шифрование и дешифрование также должно увеличиться.

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

С практической точки зрения, считаете ли вы, что ваш дом более защищен, если у вас есть три одинаковых или похожих замка на входной двери? (и это включает в себя количество ключей, которые вы должны носить с собой, не потеряйте эти ключи, убедитесь, что окна и задняя дверь также защищены ...)

person Matthieu    schedule 05.10.2010

Вопрос 1: Размер пространства решений будет таким же для двух проходов 256-битного ключа, как и 512-битного ключа, поскольку 2^(256+256) = 2^512

Фактическое время работы каждого decrypt() может увеличиваться нелинейно по мере роста размера ключа (это будет зависеть от алгоритма), в этом случае я думаю, что перебор 256 + 256 будет работать быстрее, чем 2 ^ 512, но все равно было бы невыполнимо.

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

person Sean A.O. Harney    schedule 05.10.2010