@gth-other

Безопасна ли следующая реализация AES 128 CTR шифрования?

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

Берется оригинальный файл и берется ключ. Файл разбивается на блоки по 16 байт (128 бит). Файл не всегда разбивается нацело, поэтому, если длина файла в байтах не кратна 16, то в конец последнего блока пишется байт 0x01, а оставшееся место в блоке (при наличии) забивается байтами 0x00. Если же длина файла в байтах кратна 16, то создается еще один блок в начале которого стоит байт 0x01, а все остальные байты - 0x00. Далее все эти блоки шифруются при помощи AES 128 CTR. CTR режим использует для шифрования счетчик и без него расшифровать файл нельзя. Счетчик, который занимает 16 байт пишется сразу после зашифрованных блоков, причем счетчик не шифруется. Далее, после счетчика, записывается блок с KCV ключа (первые 6 байтов блока - KCV, остальные десять - 0x00). KCV тоже не шифруется.

Итого, зашифрованный файл выглядит примерно так. Можно ли считать эту схему криптостойкой и если нет, то что можно сделать, чтобы обеспечить криптостойкость?
61fd1749e19f9108511112.png

P.S. KCV считаю согласно определению из Википедии. Беру блок состоящий исключительно из байтов 0x01, шифрую его при помощи ключа и первые 6 байт блока беру как KCV ключа. Подобная операция нужна для проверки правильности ключа при дешифровании.
  • Вопрос задан
  • 352 просмотра
Решения вопроса 1
gbg
@gbg
Любые ответы на любые вопросы
Первый ответ, который приходит ко мне в голову, когда я вижу криптографический велосипед - он опасен, и безопасен одновременно. Опасен, потому что про него никто не знает - а значит, никто не пользуется и эксперты в нем не ищут дыры. Ну и безопасен он по этой же причине.

Как минимум, возможность проверки правильности ключа при дешифровании должна быть опциональной - потому что это прекрасное подспорье для брутфорса. Если усер очепятался при наборе пароля - ССЗБ.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы