Наткнулся на комментарий про AES 128 без ShiftRow. Я хочу использовать эту слабость для атаки. Пока я понимаю, что можно разделить на 4 независимых блока по 32 бита.
Теперь грубая сила и дифференциальные/линейные атаки вряд ли сработают. Однако существует другой подход.
Это фактически 4 разных 32-битных блочных шифра, чередующихся.
Итак, как бы вы взломали 32-битный блочный шифр? Путем атаки на ограниченный размер кодовой книги.
Если человек, использующий модифицированный шифр AES, был достаточно глуп, чтобы использовать режим CTR, это легко — приращение счетчика почти никогда не изменяет 3 из 4 32-битных блочных шифров, следовательно, 3/4 открытого текста легко вывести. Последняя 1/4 может быть сложнее, однако в этот момент я бы сказал, что она сломана по любым разумным стандартам.
Если мы рассмотрим режим CBC (где входные данные для блочного шифра эффективно рандомизируются с помощью операции xor в предыдущем блоке зашифрованного текста), мы можем рассмотреть, что произойдет, если у вас есть, скажем, мегабайт выходного зашифрованного текста. В этот момент у вас есть 256 КБ входных данных для каждого из 4 32-битных блочных шифров, то есть 64 КБ входных данных блока. На этом уровне мы ожидаем несколько коллизий (то есть мест, где два входа в один и тот же блочный шифр совпадают, что приводит к одному и тому же результату); каждое столкновение выявит операцию xor двух 4-байтовых разделов открытого текста. Хотя это не так плохо, как случай с режимом CTR, он все же может раскрыть больше информации, чем нам хотелось бы (и вероятность того, что какая-либо часть открытого текста вовлечена в утечку, увеличивается с объемом зашифрованного текста, доступного злоумышленнику). .