Блочный шифр
Блочный шифр — симметричный алгоритм, преобразующий блоки данных фиксированного размера под управлением секретного ключа.
Определение
Блочный шифр отображает каждый блок открытого текста фиксированного размера в блок шифротекста того же размера и обращает преобразование с ключом. AES работает с 128-битными блоками и поддерживает несколько размеров ключа. Размер блока и ключа — разные параметры.
Режимы работы
Сам примитив обрабатывает один блок. Режимы CBC, CTR и GCM задают обработку длинных и неполных сообщений. Одним нужно дополнение, другие превращают блочный шифр в подобие потокового. GCM также аутентифицирует результат.
Безопасное применение
ECB шифрует одинаковые блоки одинаково и раскрывает структуру, поэтому не подходит для обычных данных. У других режимов свои требования к nonce или IV. Повтор значений, отсутствие аутентификации и ошибки дополнения могут разрушить безопасность.
Нет. Блок — объём одной операции, ключ определяет пространство ключей. У AES блок всегда 128 бит, а ключ бывает 128, 192 или 256 бит.
Нет. CBC обычно требует его, а CTR и многие аутентифицированные режимы обрабатывают неполный последний блок без классического padding.
Одинаковые блоки дают одинаковый шифротекст и раскрывают повторы и структуру.