Вопрос

Насколько безопасно шифровать 16 байт данных одним блоком с помощью AES?Никакой соли/IV, никакого режима работы, миллионы различных 16-байтовых блоков зашифрованы.Я недостаточно разбираюсь в криптовалюте, но мне это пахнет.

Редактировать:чтобы дать немного больше деталей, речь идет не о шифровании сообщения, а о столбце таблицы базы данных, где длина обычного текста составляет 16 байт.Данные не являются полностью случайными (первые 8 байтов часто совпадают), и существует контрольная сумма, позволяющая определить успешную расшифровку.

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

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

Решение

ЕЦБ небезопасен для общего использования.Данный простой текст всегда шифруется в один и тот же зашифрованный текст, поэтому можно выявить закономерности.Однако есть особые случаи, когда это безопасно, и это приложение может быть одним из них.

Цитирование Прикладная криптография, второе издание стр.190, относительно режима ECB для блочного шифрования:

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

Позже (с.208), Шнайер говорит:

Если ваши основные проблемы - простота и скорость, ECB - самый простой и быстрый режим для использования шифра блока.Это также самый слабый.Помимо уязвимого для воспроизведения атак, алгоритм в режиме ECB является самым простым для криптанализирования.Я не рекомендую ECB для шифрования сообщений.

Для шифрования случайных данных, таких как другие ключи, ECB является хорошим режимом для использования. Поскольку данные короткие и случайные, ни один из недостатков ЕЦБ вещества для этого приложения.

Общий префикс и контрольная цифра в вашем случае не будут создавать общий зашифрованный текст.Это происходит только в том случае, если весь блок открытого текста дублируется.Судя по тому, что вы описали, ваше приложение может хорошо подойти для ЕЦБ, особенно если каждое текстовое значение в целом уникально.

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

Без соли, также известной как вектор инициализации или IV, безопасность зашифрованного текста (и, я полагаю, ключа также) значительно снижается.Потенциальному злоумышленнику будет гораздо легче распознать повторяющиеся закономерности в зашифрованном тексте.IIRC, это была та же основная ошибка, которую допустила Microsoft при обновлении схемы шифрования MS Office.

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

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

С другой стороны, если открытые тексты связаны друг с другом и/или не кажутся случайными, ЕЦБ вообще небезопасен.

Мне не известны какие-либо недостатки AES для коротких сообщений.Алгоритм должен быть очень доволен.

Чтобы прийти на встречу, вам нужно:

1) Модель угрозы (кто может видеть, что, когда и что произойдет, когда они уйдут или станут «плохим парнем»).

2) Некоторые варианты использования из вашей модели угроз.

Благодаря этому вы сможете определить, действительно ли вам нужно использовать AES, и действительно ли шифрование защищает значение в столбце, если вы можете получить его в другом месте, что делает использование AES бессмысленным.Наконец, задайте вопрос: «Действительно ли ключ более безопаснее, чем данные?» Я видел подобные схемы, где ключ был таким же размером, как и данные (где size = «своего рода маленький») и был столь же доступен, как и данные, которые они защищали.Да, это выиграет вам несколько часов, пока злоумышленник выяснит, что вы сделали, но это не даст вам особой безопасности.

Надеюсь, это поможет и даст вам что-нибудь пожевать.Не зная вашей конкретной позиции, сложно подобрать ответ.:)

С точки зрения криптографии это небезопасно, только если злоумышленник знает конкретный алгоритм и IV.

Высказано определенное предположение:Будет ли злоумышленник после расшифровки знать, как выглядят данные, чтобы знать, что попытка расшифровки прошла успешно?напримерСуществует ли MD5, CRC или какая-либо контрольная сумма, которая может подтвердить успешную попытку расшифровки?В этом случае вы даете злоумышленнику возможность подтвердить попытку.

Но с точки зрения взлома по-прежнему существует 2^128 комбинаций ключей (для 128-битного шифра), что так же безопасно, как использование одного и того же ключа для терабайтов данных.Режим работы не имеет значения, поскольку 16 байт данных представляют собой только один блок, поэтому цепочка блоков шифрования (CBC) не применяется.

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

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