«Необработанные» режимы шифрования ECB без применения заполнения, такие как, например, AES/ECB/NOPADDING, в основном представляют собой чистое применение функции шифрования к N блокам данных. Они полезны для разработчиков, которым необходимо реализовать пользовательские режимы, которые не поставляются по умолчанию. Любой режим работы так или иначе строится из необработанной функции шифрования.
Тем не менее, поскольку блочный шифр может работать только с полноразмерными блоками, к последнему блоку, возможно, придется применить некоторую форму заполнения. Это остается на усмотрение разработчика, они будут реализовывать любую форму заполнения, указанную/рекомендованную для режима, который они хотят реализовать. Есть много возможностей, и именно поэтому у нас есть "NOPADDING" - чтобы оставить выбор заполнения за нами.
Эти режимы, XXX/ECB/NOPADDING, никогда не должны использоваться напрямую. Как и любой режим ECB, на самом деле. Простое шифрование ECB очень небезопасно, например, оно не скрывает статистические свойства открытого текста (вы, возможно, знаете примеры где "зашифрованное" изображение все еще очень похоже на исходное). Кроме того, как уже отмечалось, блочный шифр может работать только с полноразмерными блоками. Это требует применения пользовательской схемы заполнения, которая добавит еще один слой, где могут быть допущены ошибки, а не просто полагаться на какую-то реализацию по умолчанию.
person
emboss
schedule
10.05.2012