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