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