Название не случайно – у предложенных алгоритмов действительно есть сходство с обычной губкой, состоящее в том, что алгоритмы данной структуры выполняют преобразования в два основных этапа:
- «впитывание» – когда очередной блок обрабатываемых (например, хешируемых) данных накладывается на внутреннее состояние (для этого обычно используется операция XOR), которое как бы впитывает новые данные; после этого состояние перемешивается и процесс повторяется до исчерпания входных данных;
- «выжимание» – когда из внутреннего состояния извлекается (выжимается) его часть и используется в качестве некоторой порции выходного значения (например, фрагмента хеш-кода); после этого состояние перемешивается и процесс повторяется до извлечения требуемого объема выходных данных.
С тех пор на базе структуры криптографической губки было разработано достаточно много известных криптоалгоритмов. Эта структура была детально исследована и показала высокую криптографическую стойкость основанных на ней алгоритмов (при грамотной разработке и реализации), а также экономичность – относительно низкие требования к ресурсам. Кроме того, было предложено несколько модификаций структуры, позволяющих существенно расширить сферу ее применения.
Предлагаю вам далее в этой статье описание нескольких вариантов криптографических губок и основанных на них алгоритмов, а также краткий обзор свойств таких структур.