Стандарт ANSI X9.17 определяет способ генерации ключей (см. рис.8.1). Способ подходит для генерации сеансовых ключей или псевдослучайных чисел. Для генерации ключей используется DES-шифрование, но оно может быть легко заменено любым другим криптоалгоритмом.
Пусть Е k (х) – это сообщение х, зашифрованное на специальном ключе k, предусмотренном для генерации секретных ключей. V0 - секретная 64-битовая стартовая последовательность. Т - метка времени. Для генерации случайного ключа R i необходимо выполнить следующие вычисления:
R i = Е k (Е k (T i)Å V i).
Для генерации V i+1 необходимо вычислить:
V i+1 = Е k (Е k (T i)Å R i).
Для превращения R i в ключ DES необходимо удалить каждый восьмой бит. Более длинный ключ получается путем конкатенации нескольких коротких ключей. Так для получения 128-битового ключа необходимо сначала сгенерировать пару ключей, а потом выполнить их конкатенацию.
1.35.
Неравносильные ключи
Иногда необходимо (например, если криптографическое устройство попадает в руки к противнику), чтобы криптоалгоритм обеспечивал адекватную криптостойкость только с секретными ключами некоторого специального вида (легальные ключи), а со всеми остальными ключами (нелегальными) для шифрования использовался бы менее криптостойкий алгоритм. Можно сделать так, чтобы вероятность случайной генерации легального ключа была пренебрежимо мала.
|
|
Простой способ заключается в генерации ключа, состоящего из двух частей: непосредственно ключа и некоторой вспомогательной фиксированной последовательности бит, зашифрованной на этом ключе. Перед шифрованием блока данных расшифровывается вспомогательная последовательность. Если результатом оказывается фиксированная последовательность бит, то применяется криптостойкий алгоритм шифрования, если нет, то менее криптостойкий алгоритм. Если алгоритм имеет 128-битный ключ и 64-битный paзмер блока, то длина полного ключа 192 бита. Таким образом, существует 2128 различных легальных ключей, однако вероятность случайного выбора легального ключа 2-64.
1.36. Резервные ключи
Если ключ шифрования по какой-либо причине будет потерян, будет потеряна и вся зашифрованная на нем информация. Дублирование ключей увеличивает риск их компроментации.
Лучшим решением является использование схемы разделения секрета. Kогда Алиса генерирует ключ, она одновременно делит его на несколько частей и затем посылает эти части в зашифрованном виде различным уполномоченным лицам. Ни одна из этих частей сама по себе не является ключом, но, собрав их вместе, можно восстановить ключ. Согласно идеологии разделения секрета ключ может быть восстановлен даже при потере одной или нескольких частей.
|
|
Можно просто хранить разные части, зашифрованные открытыми ключами соответствующих доверенных лиц, на своем жестком диске. Таким образом, никто не участвует в управлении ключами, пока это не станет необходимым.
Другая схема резервирования использует интеллектуальные карточки для временного вручения ключей. Алиса может записать ключ, которым зашифрован ее жесткий диск, на интеллектуальную карточку и передать ее Бобу. Боб может использовать карточку для доступа к жесткому диску Алисы, но так как ключ хранится на карточке, Боб не сможет его раскрыть.
Кроме того, такой способ допускает двусторонний контроль: Боб может удостовериться в том, что ключ открывает диск Алисы, а Алиса всегда может проверить, был ли использован ключ.