Генерация ключей должна производиться таким образом, чтобы
предугадать значение ключа (даже зная, как он будет генерироваться)
было практически невозможно. В идеальном случае, вероятность вы-
бора конкретного ключа из множества допустимых равна 1/N, где N –
мощность ключевого множества (число его элементов).
Для получения ключей используют аппаратные и программные
средства генерации случайных значений. Для систем с высокими тре-
бованиями к уровню безопасности более предпочтительными счита-
ются аппаратные датчики, основанные на случайных физических
процессах. В то же время, из-за дешевизны и возможности неограни-
ченного тиражирования наиболее распространенными являются про-
граммные реализации. Но надо учитывать, что получаемая в этом
случае последовательность будет псевдослучайной – если программ-
ный генератор повторно запустить с такими же начальными значе-
ниями, он выдаст ту же последовательность.
В программных генераторах ключей нередко используют алго-
ритмы шифрования и ключи, специально резервируемые для задач
генерации. В качестве начальных значений могут браться, например,
значения таймера вычислительной системы.
Рекомендуется регулярно проводить замену ключей, используе-
мых в системе. В некоторых случаях вместо замены допустимо ис-
пользовать процедуру модификации. Модификация ключа – генера-
ция нового ключа из предыдущего значения с помощью односторон-
ней функции (т. е. такой функции для которой обратное преобразова-
ние вычислить практически невозможно, более подробно – см. раздел
2.5). Но в этом случае надо учитывать, что новый ключ безопасен в
той же мере, что и прежний, т. к. противник может повторить всю це-
почку модификаций.
При организации хранения ключей симметричного шифрования
необходимо обеспечить такие условия работы, чтобы секретные клю-
чи никогда были записаны в явном виде на носителе, к которому мо-
жет получить доступ нарушитель. Например, это требование можно