Рейтинг:2

Сокращает ли шифрование многих файлов список возможных паролей?

флаг br

Надеюсь, этот вопрос не является дублирующим, а ответ на него не слишком элементарным.

Предположим, у меня есть файл . Я шифрую его, используя пароль. Пароль предположительно определяет шаблон или связь между файлом в его формах до шифрования (A1) и после шифрования (B1). Но эта закономерность или взаимосвязь неопределенны. В зависимости от сложности пароля может быть множество возможных объяснений того, как пароль помог преобразовать A1 в B1.

Предположим, я шифрую другой файл, используя тот же пароль. Я исследовал отношения A1-B1; теперь я исследую отношения A2-B2. Некоторые возможные объяснения преобразования A1-B1 не объясняют преобразования A2-B2.

Шифрование нескольких файлов с использованием одного и того же пароля значительно уменьшает количество паролей, которые могут объяснить различия между формами этих файлов до и после шифрования?

Рейтинг:2
флаг ng

Это зависит от длины A1 и от алгоритма шифрования. Для очень короткого A1 да дополнительная пара открытый текст/зашифрованный текст A2-B2 ограничивает набор возможных паролей.

Например, если алгоритм шифрования АЕС-256-CTR с компетентным растяжка ключей с напр. Аргон2 для создания 256-битного ключа, а A1 $n_1$-байт с $0\le n_1\le30$, то примерно один пароль из $2^{(8\,n_1)}$ расшифрует B1 в A1. Когда А2 $n_2$-байт с $0\le n_1+n_2\le30$, то примерно один пароль из $2^{(8\,n_1+8\,n_2)}$ будет расшифровывать B1 в A1 и B2 в A2, что составляет гораздо меньшую долю паролей, когда $n_2\ne0$. За $n_1\le3$ это легко проверяется экспериментально.

С этой же системой шифрования, когда $n_1\ge35$, становится вполне вероятным, что существует один 256-битный ключ AES, который расшифровывает B1 в A1, в $2^{256}$ которые дают этот ключ после растяжения ключа, и добавление B2 не изменит этого.

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

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

Рейтинг:2
флаг ph

Короткий ответ: нет, второй файл, вероятно, не имеет значения. Это связано с тем, что 1) для вашего вопроса важно количество зашифрованных данных, а не количество файлов, и 2) для однозначного исправления ключа не требуется много данных (около 64 байт, см. ниже), поэтому, вероятно, что один файл достаточно большой. Только в том случае, когда первый файл настолько мал, что не заполняет 2 блока, второй файл может предоставить больше информации.

Способ, которым программа обычно обеспечивает шифрование файлов на основе пароля, заключается в том, чтобы сначала преобразовать пароль в ключ, используя PBKDF. Затем он будет использовать этот ключ для шифрования файла, блок за блоком. Для простоты предположим, что и ключ, и блок имеют длину 256 бит. Если мы рассмотрим только первый зашифрованный блок файла, возможно (примерно 1 шанс из 3), что существует другой ключ, который шифрует этот блок таким же образом. Когда мы рассматриваем второй блок, практически нет шансов, что существует другой ключ, который одинаково шифрует оба блока.Таким образом, когда 2 блока (64 байта) зашифрованы, остается только один ключ, который может выполнить это конкретное преобразование. Следовательно, пока первый файл не очень маленький, добавлять ограничения не нужно.

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

Стоит подчеркнуть, что все эти ограничения очень теоретические. Несмотря на то, что существует единственный возможный ключ, проблема его определения неразрешима — в этом суть безопасного алгоритма. И PBKDF обычно устроен так, что даже если бы вы знали ключ, вы не могли бы перепроектировать пароль.

fgrieu avatar
флаг ng
Это не относится к очень коротким файлам во многих распространенных режимах шифрования, включая CTR, CFB и OFB. В частности, если вы зашифруете однобайтовый файл, один из примерно 256 паролей правильно его расшифрует. Для режимов CBC и заполнения, где последний байт кодирует, сколько байтов следует скрыть, дробь отличается, но эффект по-прежнему легко наблюдать.
флаг ph
Я сказал, что для этого нужно два блока, но вы правы в том, что лучше указать это более явно в начале.
Рейтинг:1
флаг in

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

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

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


Обратите внимание, что речь идет о передовом симметричном шифровании. Если бы вы использовали, например. шифр Виженера тогда да, шифрование с тем же паролем сломало бы всю схему.

Кроме того, вы могли бы, например. вместо этого зашифруйте закрытый ключ и используйте соответствующий открытый ключ для шифрования файлов. В этом случае вам понадобится пароль только при расшифровке файлов.


Наконец, если для шифрования файла используется один и тот же ключ, то наличие большого количества блоков данных открытого текста может иметь значение; некоторая информация может просочиться, например. если для шифрования блока CBC будет сгенерирован тот же зашифрованный текст (это означает, что входной блок также идентичен). Или когда счетчик, используемый в шифровании CTR, переполняется и т. д. и т. д. Однако, как уже говорилось, обычно вы все равно используете разные ключи, даже если используется один и тот же пароль. В этом случае единственным ограничивающим фактором является размер сообщения/файла.

fgrieu avatar
флаг ng
Предполагается, что файлы большие, что не указано в вопросе.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.