Принимая во внимание перечисленные требования, обычно считается, что алгоритм симметричного шифрования должен:
- Манипулировать данными в больших блоках, предпочтительно размером 16 или 32 бита.
- Иметь размер блока 64 или 128 бит.
- Иметь масштабируемый ключ до 256 бит.
- Использовать простые операции, которые эффективны на микропроцессорах, т.е. исключающее или, сложение, табличные подстановки, умножение по модулю. Не должно использоваться сдвигов переменной длины, побитных перестановок или условных переходов.
- Должна быть возможность реализации алгоритма на 8-битном процессоре с минимальными требованиями к памяти.
- Использовать заранее вычисленные подключи.
- Состоять из переменного числа итераций.
- По возможности не иметь слабых ключей.
- Задействовать подключи, которые являются односторонним хэшем ключа. Это дает возможность использовать большие парольные фразы в качестве ключа без ущерба для безопасности.
- Не иметь линейных структур, которые уменьшают комплексность и не обеспечивают исчерпывающий поиск.
- Использовать простую для понимания разработку. Это дает возможность анализа и уменьшает закрытость алгоритма.