Рейтинг:0

Какую систему шифрования использовать, если части сообщения известны?

флаг be

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

Учитывая это, могу ли я просто использовать, скажем, AES, который сохраняет последовательность 128-битных блоков? Или я должен использовать специальное шифрование, адаптированное к такому варианту использования? Я не знаю, устойчив ли он против злоумышленника, имеющего пары незашифрованных/зашифрованных блоков, и у меня возникли проблемы с поиском информации об этом варианте использования.

Я бы предположил, что это так, но я бы предпочел проверить. Спасибо.

forest avatar
флаг vn
Это действительно зависит от ваших целей безопасности и от того, как вы реализуете шифрование.Вы хотите обнаружить измененную прошивку и отказаться от ее выполнения или сделать прошивку нечитаемой? В каком режиме работы вы используете AES? Откуда ключ? Что делает расшифровка? Как вы проверяете целостность? На простой вопрос о том, уязвим ли AES для атаки с известным открытым текстом (атака, которая становится возможной, когда у вас есть пары открытый текст/зашифрованный текст), ответ — нет.
kelalaka avatar
флаг in
И как вы храните ключ шифрования? Вам предстоит долгий путь. Даже [у Xilinx были ошибки] (https://crypto.stackexchange.com/a/88822/18298)
Julien BERNARD avatar
флаг be
@forest Меня раздражает необходимость использовать незащищенную внешнюю флэш-память для этого устройства, но я все еще беспокоюсь о том, что прошивка не анализируется. Так что ключ... тоже должен быть во флэш-памяти (сам зашифрован каким-то образом). Так что на самом деле речь идет о том, чтобы сделать анализ как можно более трудным, а не невозможным. Я предполагаю, что есть две отдельные проблемы: сделать так, чтобы обновления прошивки не могли быть проанализированы сами по себе, и максимально затруднить анализ прошивки / клонирования устройства после того, как вы доберетесь до флэш-памяти. Спасибо за ваш ответ, я не знал, что это называется простой текстовой атакой.
Julien BERNARD avatar
флаг be
Для проверки целостности обновлений встроенного ПО моей первой мыслью было внедрить некоторый CRC в предварительное шифрование обновлений встроенного ПО. Есть опасения по этому поводу?
forest avatar
флаг vn
@JulienBERNARD То, что вы описываете, просто невозможно. Если ключ хранится вместе с прошивкой, его можно проанализировать, как правило, довольно легко, как бы вы ни пытались запутать ключ. Что касается проверки целостности, CRC подойдет, если вы просто хотите обнаружить случайное повреждение. Если у вас нет аппаратного обеспечения, поддерживающего проверку (т. е. система _откажется_ выполнять код, если у него нет действительной подписи, а открытый ключ записывается в сам ЦП), вы также не сможете его проверить.
Рейтинг:-1
флаг gy

Независимо от схемы симметричного шифрования (3DES, AES,...), я предлагаю вам использовать режим шифрования, который может скрывать шаблоны данных. Если вы используете Си-Би-Си в качестве режима шифрования ваш зашифрованный текст будет рандомизированный с использованием случайного IV (Вектор инициализации). Затем вы можете передать IV получателю в виде открытого текста.

forest avatar
флаг vn
Это действительно плохой ответ, потому что он не решает проблем, связанных с оборудованием, и в любом случае немного вводит в заблуждение (использование конструкции IND-CPA не является решением проблемы OP).

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

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