
848
Глава 8. Безопасность в сетях
Криптоанализ
Прежде чем закончить разговор об использовании симметричных ключей в крип-
тографии, необходимо хотя бы упомянуть о четырех направлениях развития крип-
тоанализа. Первый подход называется дифференциальным криптоанализом
(Biham и Shamir, 1993). Он может использоваться для взлома любых блочных
шифров. Для начала анализируется пара блоков открытого текста, различающих-
ся лишь небольшим числом бит. При этом внимательно анализируется происхо-
дящее при каждой внутренней итерации во время шифрации. Во многих случаях
можно заметить, что одни битовые последовательности встречаются чаще дру-
гих, и это соображение используется для взлома, основанного на теории вероят-
ностей.
Второй подход, который следует обозначить, называется линейным криптоа-
нализом (Matsui, 1994). С его помощью можно взломать DES только с 2
43
из-
вестными открытыми текстовыми блоками. Принцип работы основан на сумми-
ровании по модулю 2 некоторых бит открытого текста и изучении результатов
для шаблонных последовательностей. Если повторять эту процедуру много раз,
половина бит будет иметь нулевые значения, половина — единичные. Тем не ме-
нее, довольно часто это соотношение изменяется в ту или иную сторону. Это от-
клонение, каким бы малым оно ни было, может использоваться для снижения
показателя трудозатрат криптоаналитика. Более подробную информацию см.
в материалах автора этого метода, Мацуи (Matsui).
Третье направление развития связано с анализом потребляемой электроэнер-
гии для вычисления секретного ключа. Обычно в компьютерах напряжение 3 В
соответствует логической единице, а О В — логическому нулю. Таким образом,
обработка единицы требует большего потребления электроэнергии, чем обработ-
ка нуля. Если криптографический алгоритм состоит из цикла, в котором раз-
ряды ключа обрабатываются поочередно, взломщик, заменив главные системные
и-гигагерцевые часы медленными (например, с частотой 100 Гц) и повесив «кро-
кодилы» на ножки питания и заземления центрального процессора, может с боль-
шой точностью отслеживать мощность, потребляемую каждой машинной инст-
рукцией. По этим данным узнать секретный ключ оказывается на удивление
просто. Этот метод криптоанализа можно победить лишь аккуратным кодирова-
нием алгоритма на языке Ассемблера таким образом, чтобы энергопотребление
не зависело ни от общего ключа, ни от ключей каждой итерации.
Четвертый подход основан на временном анализе. Криптографические алго-
ритмы содержат большое количество условных операторов (if), тестирующих
биты итерационных ключей. Если части then и el se выполняются за различное
время, то, замедлив системные часы и измерив длительность всех шагов, можно
вычислить ключи итераций. По этим ключам обычно можно вычислить и общий
ключ. Анализ энергопотребления и временной анализ могут применяться и од-
новременно, что позволяет упростить задачу криптоанализа. Несмотря на то, что
анализы энергозатрат и времени выполнения операций могут показаться не-
сколько экзотическими, на самом деле они представляют собой мощные методы,
способные взломать любой шифр, если только он не имеет специальной защиты.
Алгоритмы с открытым ключом 849
Алгоритмы с открытым ключом
Исторически процесс передачи ключа всегда был слабым звеном почти по всех
системах шифрования. Независимо от того, насколько прочна была сама крипто-
система, если нарушитель мог украсть ключ, система становилась бесполезной.
До 1976 года все криптологи исходили из предпосылки, что ключ дешифрации
должен быть идентичен ключу шифрования (или один может легко получиться
из другого). В то же время, ключи должны были быть у всех пользователей систе-
мы. Таким образом, казалось, что эта проблема неустранима: ключи должны быть
защищены от кражи, и в то же время их нужно распространять среди пользовате-
лей, поэтому их нельзя просто хранить в банковском сейфе.
В 1976 году два исследователя из Стэнфордского университета, Диффи (Diffie)
и Хеллман (Hellman), предложили радикально новую криптосистему, в которой
ключ шифрования и ключ дешифрации были различными, кроме того, ключ де-
шифрации нельзя было получить из ключа шифрования. Предложенные ими ал-
горитм шифрования Е и алгоритм дешифрации D (оба параметризованные клю-
чом) должны были удовлетворять следующим трем требованиям:
1. D(E(P)) = Р.
2. Крайне сложно вывести D из Е.
3. Е нельзя взломать при помощи произвольного открытого текста.
Первое требование состоит в том, что если применить алгоритм дешифрации
D к зашифрованному сообщению Е(Р), то мы опять получим открытый текст Р.
Без этого авторизованный получатель просто не сможет расшифровать сообще-
ние. Второе требование говорит само за себя. Третье требование необходимо, по-
тому что, как мы скоро увидим, злоумышленники могут экспериментировать с
алгоритмом столько, сколько пожелают. При таких условиях нет никаких при-
чин, по которым ключ шифрования нельзя было бы сделать общедоступным.
Этот метод работает следующим образом. Некто, например Алиса, желая по-
лучать секретные сообщения, сначала формирует два алгоритма, удовлетворяю-
щие перечисленным выше требованиям. Затем алгоритм шифрования и его ключ
открыто объявляются, отсюда название — шифрование с открытым ключом.
Это можно сделать, разместив открытый ключ, например, на домашней странич-
ке Алисы. Для обозначения алгоритма шифрования, параметризованного откры-
тым ключом Алисы, мы будем использовать запись Е
А
. По аналогии (секретный)
алгоритм дешифрации, параметризованный персональным ключом Алисы, мы
будем обозначать D
A
. Боб делает то же самое, открыто объявляя Е
в
, но храня
в тайне D
B
.
Теперь посмотрим, сможем ли мы решить проблему установки надежного ка-
нала между Алисой и Бобом, которые ранее никогда не встречались. Оба ключа
шифрования Алисы и Боба, Е
А
и Е
в
, являются открытыми. (Вообще, все пользо-
ватели сети могут, становясь пользователями, опубликовать свои ключи шифро-
вания.) Теперь Алиса берет свое первое сообщение Р, вычисляет Е
В
(Р) и посыла-
ет его Бобу. Боб расшифровывает его с помощью своего секретного ключа D
B
, то
есть вычисляет D
B
(E
B
(P)) = Р. Больше никто не может прочитать это зашифро-