Приложения в режиме электронной кодовой книги (ECB)
В большинстве мест есть описания того, что такое ЕЦБ, но не фактическое его использование. Я не могу найти использование ECB.
Каковы полезные приложения режима ECB? (Приложения в реальном времени или любые другие)
1 ответ
Нет, ЕЦБ никогда не должен использоваться на практике с какими-либо последствиями.
Вероятно, можно найти надуманные примеры, но такие вещи, как приложения реального времени, не должны быть одним из них.
Электронная кодовая книга - базовая операция, из которой построены другие безопасные режимы работы (CBC, CTR и т. Д.); однако, поскольку он является детерминированным, он не является семантически защищенным от злоумышленников. Что я имею в виду под семантической безопасностью? По сути, это идея, что злоумышленник не может получить больше информации о вашем открытом тексте (кроме его длины), учитывая ваш зашифрованный текст.
Тем не менее, можно получить некоторую информацию о вашем открытом тексте, используя некоторый зашифрованный текст, зашифрованный с помощью ECB, а именно, вы можете сказать, когда блок повторяется. Шифрование симметричного ключа формирует взаимно-однозначное сопоставление от открытого текста к зашифрованному тексту и обратно. При наличии ключа, алгоритма и блока данных конечный результат всегда будет одинаковым.
Что это значит для ваших зашифрованных данных? Хорошо, представьте, что у вас есть данные, которые помещаются в два блока. Злоумышленник может изменить порядок двух блоков, и вы не станете мудрее. Поскольку оба блока были правильно зашифрованы, они будут правильно расшифрованы, несмотря на тот факт, что злоумышленник каким-то образом контролирует, какие у вас будут данные. Это также означает, что если злоумышленник знает действительный блок, он может заменить его обратно и повторить то же сообщение снова.
Кроме того, есть режимы работы, которые почти так же хороши, как ECB для производительности. Например, режим счетчика (CTR) работает путем шифрования увеличивающегося счетчика. Предполагая, что счетчик не переносится и не используется повторно с одним и тем же ключом (что не так уж сложно, если у вас 128-битная версия), блоки данных из зашифрованных счетчиков не будут повторяться. Теперь у вас есть псевдослучайный поток байтов, с помощью которого вы можете XOR с вашими данными. Для начального счетчика накладные расходы составляют 16 байтов, а для всех ваших данных - xor. Если вы не можете позволить себе XOR свои данные, то я не уверен, как вы можете позволить себе шифровать в первую очередь.
Что было бы надуманным примером?
Что ж, ЕЦБ, похоже, может быть в порядке, если ваши данные не повторяются или вас не волнует, кто-то может идентифицировать (по сути, отпечатки пальцев) блоки данных. Кроме того, вы хотели бы MAC-адрес данных, чтобы они не могли быть подделаны, если вы на самом деле не против просмотра воспроизведенных или переупорядоченных сообщений. ECB нужен только для синхронизации ключа и отсутствия вектора инициализации, поэтому, возможно, его можно использовать для замены некоторых данных, которые в настоящее время представляют собой текстовые сообщения, с BLOB-объектами точно такой же длины. Однако даже тогда вы только усложняете чтение сообщения.