Криптографические функции карты Fortezza
Алгоритм шифрования, применяемый в технологии Fortezza, известен подназванием SKIPJACK [8]. Этот алгоритм разработан специалистами АНБ и отвечаетстандарту депонирования ключей Escrowed Encryption Key Standard. SKIPJACKявляется блочным шифром с размером блока 8 байт, использующим симметричныеключи (т.е. для зашифрования и расшифрования применяется один и тот жеключ). Шифрование по алгоритму SKIPJACK в карте Fortezza осуществляетсяс помощью специализированного криптографического микропроцессора CAPSTONE,выполненного по RISC-технологии. Такие микропроцессоры выполняют те жефункции, что и микропроцессоры CLIPPER, применяемые для реализации алгоритмаSKIPJACK в устройствах голосовой (телефонной) связи. Обсуждение деталейреализации SKIPJACK не представляется возможным, т.к. этот алгоритм являетсязасекреченным.
Рис. 1.
В технологии Fortezza ключ шифрования данных называется Message EncryptionKey (MEK). В дополнении к этому ключу может использоваться также векторинициализации Initialization Vector (IV), который фактически является дополнительнымвходным параметром при шифровании данных. Стандартный режим алгоритма Fortezzaтребует обязательного использования IV всеми участниками информационногообмена. Это означает, что для расшифрования сообщения принимающая сторонадолжна либо иметь возможность сгенерировать точно такой же IV, которыйиспользовался отправляющей стороной при зашифровании сообщения, либо IVдолжен быть передан вместе с сообщением.
Алгоритм шифрования SKIPJACK имеет три режима работы: Electronic Codebook(ECB), Output Feedback (OFB) и Cipher Block Chaining (CBC). По умолчанию,алгоритм Fortezza использует режим CBC. В этом режиме все 8-байтные блокиоткрытого текста, кроме первого, используются для выполнения операции XORс блоком зашифрованного текста, полученным на предыдущем шаге работы алгоритмас использованием MEK. Вектор IV применяется для зашифрования первого блокаоткрытого текста.
На показан процесс посылки Алисой секретного сообщения Бобу.Для того, чтобы злоумышленник смог расшифровать сообщение Алисы, ему необходимознать не только MEK, но и IV. При этом, компрометация IV не столь существенна,если злоумышленник не обладает MEK.
Распределение ключей шифрования MEK основано на применении разработанногов АНБ алгоритма обмена ключами Key Exchange Algorithm (KEA), который посылаетзашифрованный MEK с каждым сообщением. Поскольку обмен ключами KEA интегрированв технологию Fortezza, ключи шифрования могут меняться от сообщения к сообщениюили от сеанса к сеансу. Алгоритм KEA использует для шифрования MEK специальныйключ, названный Token Encryption Key (TEK). Необходимо иметь в виду, чтов приложениях, использующих технологию Fortezza, TEK может быть использованпри шифровании данных как альтернатива ключа шифрования MEK, однако MEKне может быть использован для защиты TEK в процессе обмена ключами.
Рис. 2.
Шифрование с открытым ключем в стандартном режиме алгоритма Fortezzaиспользуется только для обмена ключами с использованием KEA и для цифровойподписи сообщений (включая временные метки). В описании алгоритма Fortezzaобычно используют следующие обозначения: 20-байтный закрытый ключ называется"X", 128-байтный открытый ключ называется "Y", P иQ - большие простые числа (секретные), G - простое число по модулю P*Q(общедоступное).
На представлен общий процесс шифрования сообщений с использованиемоткрытого ключа абонента. Алиса зашифровывает сообщение для Боба, используяоткрытый ключ Боба Y и алгоритм шифрования с открытым ключом. Боб расшифровываетпослание Алисы с помощью своего открытого ключа X. Каждый, кто получитдоступ к месту хранения открытых ключей, сможет зашифровать данные дляБоба, но только Боб сможет расшифровать эти данные, поскольку никто незнает его закрытого ключа. Генерация и распределение пар открытого и закрытогоключей для организации обмена ключами KEA и цифровой подписи производитсядля каждого пользователя отдельно в соответствии со специальной процедурой.