Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 228
Текст из файла (страница 228)
Все, что криптоаналитику остается сделать, это сложить по модулю 2 два перехваченных сообщения. Тем самым он полностью снимет какую бы то ни было криптографическую защиту, и в его распоряжении окажется сумма по модулю 2 двух блоков открытого текста. Этот недостаток вовсе не означает, что режим счетчика в целом неудачен. Это говорит лишь о том, что как ключи, так и векторы инициализации должны выбираться независимо и случайным образом. Даже если один и тот же ключ случайно попадется дважды, от перехвата информацию может спасти отличающийся вектор инициализации. Другие шифры Таблица 8.2.
Некоторые распространенные криптографические алгоритмы с симметричными ключами Название Автор Длинакпюча Комментарии Старый и медленный В1овт(вь 1-448 бит Брюс Шнайер (Вгисе Зсьпе)ег) !ВМ Слишком слабый длп современных систем Хороший, но запатентованный Внимание: есть слабые ключи 56 бит 128 бит ОЕЗ Массей (Маввеу) и Ксюэйа (Хие1!а) Рональд Ривест (Вопи йыев1) Рональд Ривест (попа!6 й)уев1) Домен (Свегпеп) и Раймен (й))гпеп) Андерсон (Апс1егвоп ), Байхан (Враго) и Кнудсен(Кпобвеп) 1ВМ 10ЕА йС4 1-2048 бит Хороший, но запатентованный йСЗ 128-256 бит й!1пбае) Зегреп! Лучший Очень сильный 128-256 бит 128-256 бит Тройной СЕЗ Т!ео1)вь На втором месте после Ш!позе) Очень сильный; широко раопрострвнен ! 68 бит 1 28-256 бит БрюсШнайер (Вгосе Зснпе)ег) !)ЕЯ и тв()прае( — это самые известные криптографические алгоритмы с симметричными ключами.
Тем не менее, стоит отметить, что в природе существует еще много других шифров с симметричными ключами. Некоторые из них встраиваются в различные программно-аппаратные продукты. Наиболее распространенные из них перечислены в табл. 8.2. 646 Глава 8. Безопасность в свтях Криптоанализ Прежде чем закончить разговор об использовании симметричных ключей в криптографии, необходимо хотя бы упомянуть о четырех направлениях развития криптоанализа. Первый подход называется дифференциальным криптоанализом (В1пшп и Бйаш1г, 1993).
Он может использоваться для взлома любых блочных шифров. Для начала анализируется пара блоков открытого текста, различающихся лишь небольшим числом бит. При этом внимательно анализируется происходяшее при каждой внутренней итерации во время шифрации. Во многих случаях можно заметить, что одни битовые последовательности встречаются чаще других, и это соображение используется для взлома, основанного на теории вероятностей. Второй подход, который следует обозначить, называется линейным криптоанализом (МаГзш, 1994). С его помощью можно взломать Г1ЕЯ только с 2" известными открытыми текстовыми блоками.
Принцип работы основан на суммировании по модулю 2 некоторых бит открытого текста и изучении результатов для шаблонных последовательностей. Если повторять эту процедуру много раз, половина бит будет иметь нулевые значения, половина — единичные. Тем не менее, довольно часто это соотношение изменяется в ту или иную сторону. Это отклонение, каким бы малым оно нн было, может использоваться для снижения показателя трудозатрат криптоаналитика. Более подробную информацию см.
в материалах автора этого метода, Мацуи (Матяп). Третье направление развития связано с анализом потребляемой электроэнергии для вычисления секретного ключа. Обычно в компьютерах напряжение 3 В соответствует логической единице, а 0  — логическому нулю. Таким образом, обработка единицы требует большего потребления электроэнергии, чем обработка нуля. Если криптографический алгоритм состоит нз цикла, в котором разряды ключа обрабатываются поочередно, взломщик, заменив главные системные п-гигагерцевые часы медленными (например, с частотой 100 Гц) и повесив «крокодилыь на ножки питания и заземления центрального процессора, может с большой точностью отслеживать мощность, потребляемую каждой машинной инструкцией.
По этим данным узнать секретный ключ оказывается на удивление просто. Этот метод криптоанализа можно победить лишь аккуратным кодированием алгоритма на языке Ассемблера таким образом, чтобы энергопотребление не зависело ни от общего ключа, ни от ключей каждой итерации. Четвертый подход основан на временном анализе. Криптографические алгоРитмы содержат большое количество условных операторов (11), тестирующих биты итерационных ключей. Если части гпеп и е1зе выполняются за различное время, то, замедлив системные часы и измерив длительность всех шагов, можно вычислить ключи итераций. По этим ключам обычно можно вычислить и обший ключ.
Анализ энергопотребления и временной анализ могут применяться и одновременно, что позволяет упростить задачу криптоанализа. Несмотря на то, что анализы энергозатрат и времени выполнения операций могут показаться несколько экзотическими, на самом деле они представляют собой мощные методы, способные взломать любой шифр, если только он не имеет специальной защиты. Алгоритмы с открытым ключом 849 Алгоритмы с открытым ключом Исторически процесс передачи ключа всегда был слабым звеном почти ло всех системах шифрования.
Независимо от того, насколько прочна была сама криптосистема, если нарушитель мог украсть ключ, система становилась бесполезной. До 1976 года все криптологи исходили из предпосылки, что ключ дешифрации должен быть идентичен ключу шифрования (или один может легко получиться из другого). В то же время, ключи должнь1 были быть у всех пользователей системы. Таким образом, казалось, что эта проблема неустранима: ключи должны быть защищены от кражи, и в то же время их нужно распространять среди пользователей, поэтому их нельзя просто хранить в банковском сейфе. В 197б году два исследователя из Стэнфордского университета, Диффи (Р1(йе) и Хеллман (Не11шап), предложили радикально новую криптосистему, в которой ключ шифрования и ключ дешифрации были различными, кроме того, ключ дешифрации нельзя было получить из ключа шифрования. Предложенные ими алгоритм шифрования Е и алгоритм дешифрации 0 (оба параметризованные ключом) должны были удовлетворять следующим трем требованиям: 1.
Р(Е(Р)) = Р. 2. Крайне сложно вывести Р из Е. 3. Е нельзя взломать при помощи произвольного открытого текста. Первое требование состоит в том, что если применить алгоритм дешифрации 0 к зашифрованному сообщению Е(Р), то мы опять получим открытый текст Р. Без этого авторизованный получатель просто не сможет расшифровать сообщение.
Второе требование говорит само за себя. Третье требование необходимо, гютому что, как мы скоро увидим, злоумышленники могут экспериментировать с алгоритмом столько, сколько пожелают. При таких условиях нет никаких причин, по которым ключ шифрования нельзя было бы сделать общедоступным. Этот метод работает следующим образом. Некто, например Алиса, желая получать секретные сооб1цения, сначала формирует два алгоритма, удовлетворяющие перечисленным выше требованиям. Затем алгоритм шифрования и его ключ открыто объявляются, отсюда название — шифрование с открытым ключом.
Это можно сделать, разместив открытый ключ, например, на домашней страничке Алисы. Для обозначения алгоритма шифрования, параметризованного открытым ключом Алисы, мы будем использовать запись Е„. По аналогии (секретный) алгоритм дешифрации, параметризованный персональным ключом Алисы, мы будем обозначать Р„. Боб делает то же самое, открыто объявляя Е„но храня в тайне Рэ.
Теперь посмотрим, сможем ли мы решить проблему установки надежного канала между Алисой и Бобом, которые ранее никогда не встречались. Оба ключа шифрования Алисы и Боба, Е„и Е, являются открытыми. (Вообще, все пользователи сети могут, становясь пользователями, опубликовать свои ключи шифрования.) Теперь Алиса берет свое первое сообщение Р, вычисляет Е (Р) и посылает его Бобу.
Боб расшифровывает его с помощью своего секретного ключа Рв, то есть вычисляет Р (Е (Р)) = Р. Больше никто не может прочитать это зашифро- 850 Глава 8. Бвзопвсность в сетях ванное сообщение Е,(Р), так как предполагается, что система шифрования достаточно надежна, а получить ключ Пв на основании известного ключа Е, очень трудно, Посылая ответ, Боб передает Е„(Я). Таким образом, Алиса и Боб получают надежный секретный канал связи, Обратите внимание на используемую здесь терминологию. Шифрование с открытым ключом предполагает у каждого пользователя наличие двух ключей— открытого ключа, используемого всеми для шифрования сообщений, посылаемых этому пользователю, и закрытого ключа, требующегося пользователю для дешифрации приходящих к нему сообщений.
Мы будем и далее называть эти ключи открытым и закрытым, чтобы отличать их от секретньи ключей, используемых для шифрования и дешифрации в обычной криптографии с симметричным ключом. Алгоритм йЗА Единственная загвоздка состоит в том, чтобы найти алгоритмы, удовлетворяющие всем трем требованиям. Поскольку преимущества шифрования с открытым ключом очевидны, многие исследователи неустанно работали над созданием подобных алгоритмов, и некоторые из них уже опубликованы. Один хороший метод был разработан группой исследователей Массачусетского технологического института (К(чезс и др., 1978). Он назван по начальным буквам фамилий трех разработчиков: КЯА (К(чезг, Ядаш1г, Ад1ешап).
Этот метод вот уже четверть века выдерживает попытки взлома и считается очень прочным. На его основе построены многие практические системы безопасности. Главный недостаток КБА заключается в том, что для обеспечения достаточного уровня защищенности требуется ключ длиной, по крайней мере, 1024 бита (против 128 бит в алгоритмах с симмегричными ключами). Из-за этого алгоритм работает довольно медленно. В основе метода КБА лежат некоторые принципы теории чисел. Опишем в общих чертах, как пользоваться этим методом.