Симметричные алгоритмы
Симметричные алгоритмы
Использование симметричных криптографических алгоритмов предполагает наличие взаимного доверия сторон, участвующих в обмене электронными документами или сообщениями, так как для шифрования и расшифрования применяется известный им один и тот же общий ключ. В этом случае нет никаких гарантий, что секретный ключ не будет скомпрометирован, поэтому применение симметричных алгоритмов требует очень надежных механизмов распределения ключей. Кроме того, необходимость обмена единым ключом между отправителем сообщения и каждым из получателей многократно увеличивает количество ключей в системе и затрудняет ее масштабируемость. Для 10 пользователей нужно 45 ключей, а для 1000 - уже 499 500 ключей [213].
Симметричные алгоритмы могут ограниченно использоваться для поддержания сервисов аутентификации и целостности, но в первую очередь применяются для обеспечения конфиденциальности. Для проверки целостности сообщения и аутентификации источника данных отправитель может сгенерировать шифртекст на базе всего открытого текста, как излагалось выше. После этого он отправляет открытый текст и часть шифртекста получателю сообщения. Эта часть шифртекста известна как код аутентификации сообщения или MAC (Message Authentication Checksum). Функция MAC на основе входа переменной длины и ключа формирует выход фиксированной длины [23]. Получатель использует свою копию секретного ключа отправителя сообщения для генерации шифртекста, выбирает ту же часть шифртекста и сравнивает ее с полученным значением MAC. Их совпадение подтверждает подлинность отправителя, но не гарантирует невозможности отказа от участия в обмене сообщениями. Отправитель может отрицать факт передачи сообщения, мотивируя это тем, что получатель вполне мог сгенерировать сообщение сам.
Управление ключами - сложная проблема, она может решаться при помощи криптографии с симметричными ключами, но является классической проблемой типа "курица или яйцо". Прежде чем отправитель зашифрует сообщение или сгенерирует MAC, он должен разделить с получателем некоторый секрет. Разделение секрета, например, секретного ключа из нескольких частей, осуществляется таким образом, чтобы из любого заранее указанного количества k -частей можно было восстановить секрет, а количества частей (k - 1) для восстановления секрета было недостаточно [23]. В системах с одним ключом утрата ключа фактически равноценна взлому криптографической защиты. Для обеспечения требуемого уровня защиты ключ обычно передают по каналам, отличным от канала распространения зашифрованных данных. При этом должна обеспечиваться надежная идентификация пользователя (он должен иметь санкционированный доступ к зашифрованной информации) и секретность (предотвращение доступа к ключу в процессе передачи).
Преимуществами симметричных криптографических алгоритмов признаны их высокая производительность и стойкость, которая делает практически невозможным процесс расшифрования. Одним из первых стандартных симметричных алгоритмов стал DES (Digital Encryption Standard), затем появился Triple DES, который выполняет алгоритм DES троекратно и соответственно требует для работы в три раза больше времени. Для решения проблемы производительности и повышения защитных свойств были предложены новые алгоритмы RC2 и RC5 корпорации RSA Security, IDEA компании Ascom, Cast компании Entrust Technologies, Safer компании Cylink и Blowfish компании Counterpane Systems [2]. В России разработан и используется симметричный алгоритм ГОСТ 28147-89. В качестве нового международного стандарта AES (Advanced Encryption Standard) предлагается симметричный алгоритм Rijndael [47], разработанный бельгийскими криптографами В. Риджменом и Д. Дименом.