Американская криптология (История спецсвязи) - Гребенников Вадим Викторович (читать книги онлайн полные версии txt) 📗
Алгоритм шифрования «SKIPJACK» имеет три режима работы: «ЕСВ» (англ. Electronic Codebook — электронная кодовая книга), «OFB» (англ. Output Feedback — исходный отзыв) и «СВС» (англ. Cipher Block Chaining — шифроблочная цепь). Как правило, алгоритм «Fortezza» использует режим «СВС». В этом режиме все 8-байтные блоки открытого текста, кроме первого, используются для выполнения операции «XOR» (побитовое сложение по модулю 2) с блоком зашифрованного текста, полученным на предыдущем шаге работы алгоритма с использованием «МЕК». Вектор «IV» применяется для шифрования первого блока открытого текста.
Для того, чтобы злоумышленник смог дешифровать сообщение, ему необходимо знать не только «МЕК», но и «IV». При этом компрометация «IV» не настолько существенна, если злоумышленник не обладает «МЕК».
Распределение ключей шифрования «МЕК» основано на применении разработанного в АНБ алгоритма обмена ключами «КЕА» (англ. Key Exchange Algorithm), посылающего зашифрованный «МЕК» с каждым сообщением. Поскольку обмен ключами «КЕА» интегрирован в технологию «Fortezza», ключи шифрования могут меняться от сообщения к сообщению или от сеанса к сеансу.
Алгоритм «КЕА» использует для шифрования «МЕК» специальный ключ, названный «ТЕК» (англ. Token Encryption Key — ключ полуторного шифрования). Необходимо иметь в виду, что в дополнениях, использующих технологию «Fortezza», «ТЕК» может быть использован при шифровании данных как альтернатива ключа шифрования «МЕК», однако «МЕК» не может быть использован для защиты «ТЕК» в процессе обмена ключами.
Шифрование с открытым ключом в стандартном режиме алгоритма «Fortezza» используется только для обмена ключами с использованием «КЕА» и для цифровой подписи сообщений (включая временные метки). В описании алгоритма «Fortezza» обычно используют такие обозначения: 20-байтный закрытый ключ называется «X», 128-байтный открытый ключ называется «Y», «Р» и «Q» — большие простые числа (секретные), «G» — простое число по модулю «PXQ» (общедоступное).
Общий процесс шифрования сообщений с использованием открытого ключа абонента выглядит таким образом. Отправитель шифрует сообщение для получателя, используя открытый ключ получателя «Y» и алгоритм шифрования с открытым ключом. Получатель дешифрует сообщение отправителя с помощью своего закрытого ключа «X». Каждый, кто получит доступ к месту хранения открытых ключей, сможет зашифровать данные для получателя, но только получатель сможет дешифровать эти данные, поскольку никто не знает его закрытого ключа. Генерация и распределение пар открытого и закрытого ключей для организации обмена ключами «КЕА» и цифровой подписи производится для каждого пользователя отдельно в соответствии со специальной процедурой.
Как отмечено выше, алгоритм обмена ключами «КЕА» разработан специалистами АНБ и используется для организации распределения ключей шифрования «МЕК» при информационном обмене и для рассылки секретных ключей пользователям. Основным преимуществом «КЕА» является тот факт, что обе стороны могут вычислить один и тот же «ТЕК» самостоятельно, используя два случайных числа (А и В), собственные параметры Р, Q, G и открытый ключ абонента. Когда «КЕА» используется при информационном обмене, принимающая сторона может получить все значения, необходимые для дешифровки сообщения, вместе с принятым сообщением.
Заметим, что в данном алгоритме значения Р, Q и G, использованные отправителем для первоначальной генерации «ТЕК», а получателем для генерации «ТЕК» при получении сообщения, не передаются по каналам связи и одинаковые для всех пользователей.
Алгоритм обмена ключами «КЕА» применяется как в дополнениях типа электронной почты, так и при информационном обмене между абонентами, логично и/или физически соединёнными между собой в режиме реального времени.
Необходимо отметить, что то же сообщение, адресованное разным абонентам, шифруется с использованием одного ключа «МЕК», однако этот ключ должен быть свёрнут с помощью разных «ТЕК», которые отвечают получателям данного сообщения. Дополнение: адресат должен пересмотреть сообщение и найти «ТЕК», предназначенный для данного пользователя, развернуть «МЕК» и дешифровать полученное сообщение.
Для контроля целостности переданных сообщений, обеспечения подлинности и невозможности отрицания авторства технология «Fortezza» использует алгоритм цифровой подписи «DSA» и алгоритм безопасного хэширования «SHA-1» (англ. Secure Hash Algorithm), отвечающий стандарту цифровой подписи «DSS» (англ. Digital Signature Standard).
После вычисления хэш-функции сообщения, 20-байтний хэш-блок превратится с помощью алгоритма «DSA» в цифровую подпись сообщения размером 40 байт. Необходимо обратить внимание на расхождение в использовании параметров Р, Q и G в алгоритмах распределения ключей «КЕА» и цифровой подписи «DSA». При проверке цифровой подписи сообщения отправителя получатель должен иметь доступ к значениям Р, Q и G отправителя. Эти параметры должны распространяться или в заглавии сообщения, или вместе с открытым ключом отправителя.
С целью снабжения каждого пользователя набором собственных значений Р, Q и G прикладная библиотека «CI Library» имеет соответствующие функции загрузки этих значений. Такое расхождение в использовании этих параметров связано с возможностью «DSA», в отличие от «КЕА», поддерживать информационный обмен между пользователями разных доменов, которые могут различаться процедурами распространения и сертификации ключей.
На момент создания технологии «Fortezza» не существовало правительственных или промышленных стандартов временных меток цифровой подписи. Для «привязки» сообщений ко времени их создания применяется дополнительная процедура вычисления хэш-функции от хэш-блока сообщения и текущего времени, взятого из надёжного источника (например, криптокарты «Fortezza»).
Необходимо отметить, что значения Р, Q и G, используемые алгоритмом «DSA» при вычислении подписи с применением временных меток, являются общими для всех карт «Fortezza» и записываются в память производителем криптокарты. Поскольку проверка цифровой подписи в случае применения временной метки связана с необходимостью синхронизации источников времени, вычислением времени доставки сообщения и другими сложностями, использование временных меток в технологии «Fortezza» не является обязательным.
Как следует из сказанного выше, в технологии «Fortezza» должен существовать протокол, регламентирующий выдачу и распространение открытых ключей пользователей. Открытые ключи ассоциируются с их владельцами с помощью так называемых «сертификатов». Сертификат представляет собой структуру данных, связывающую идентификатор пользователя, открытые ключи, предназначенные для алгоритмов «КЕА» и «DSA», а также информацию о лице, выдавшем сертификат. С целью защиты от подделки сертификат защищается цифровой подписью лица, выдавшего сертификат. Сертификаты и пары закрытых/открытых ключей образуют основу системы управления ключами технологии «Fortezza».
Как основу системы аутентификации «Fortezza» использует схему аутентификации сертификатов «Х.509» и соглашения о наименовании объектов «Х.500». Технология «Fortezza» различает две структуры сертификатов. Под сертификатом «Fortezza» понимается внутренняя структура данных технологии «Fortezza», под сертификатом «Х.509» — блок данных стандарта «Х.509», содержащихся в сертификате «Fortezza».
Каждый сертификат «Fortezza» состоит из двух пар закрытых/открытых ключей (одна из них предназначена для использования в «КЕА», другая — в «DSA») и соответствующих им значений параметров Р, Q и G. Сертификат «Х.509» содержит открытые составляющие этих ключей. Открытые ключи всегда доступны пользователю карты. Ключи сохраняются в закодированном виде: закрытые — с помощью локальных ключей пользователя «Ks» (он имеет размер 80 бит, находится в специальном регистре криптокарты и становится доступным после успешного введения «РIII»-кода пользователя), открытые — с помощью «ASN.1».