Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000261.doc
Скачиваний:
9
Добавлен:
30.04.2022
Размер:
1.3 Mб
Скачать
    1. Режим счетчика

Все режимы, кроме электронного шифроблокнота, обладают одним и тем же неприятным свойством: доступ к произвольной части зашифрованных данных невозможен. Допустим, например, что файл передается по сети и затем сохраняется на диске в зашифрованном виде. Так иногда делают, если принимающий компьютер представляет собой ноутбук, который может быть украден. Хранить все важные данные в зашифрованном виде действительно полезно: риск утечки секретной информации в случае попадания аппаратуры в руки злоумышленникам резко снижается.

Однако доступ к дискам зачастую бывает необходимо осуществлять в произвольном порядке. Особенно это касается файлов баз данных. Если файл зашифрован в режиме сцепления блоков, придется вначале дешифровать все блоки, предшествующие нужному. Согласитесь, такой способ работы несколько неудобен. По этой причине был введен еще один режим шифрования — режим счетчика. Он показан на рис. 32. Здесь открытый текст не шифруется напрямую. Вместо этого шифруется вектор инициализации плюс некоторая константа, а уже получающийся в результате шифр складывается по модулю 2 с открытым текстом. Сдвигаясь на 1 по вектору инициализации при шифрации каждого нового блока, можно легко получить способ дешифрации любого места файла. При этом нет необходимости расшифровывать все предшествующие блоки.

Рис. 32. Шифрование в режиме счетчика

Несмотря на то, что режим счетчика весьма полезен, у него есть один существенный недостаток, который стоит упомянуть. Допустим, уже использовавшийся однажды ключ К будет использован повторно (с другим открытым текстом, но с тем же вектором инициализации), и взломщик захватит весь шифрованный

текст, который был послан в обоих случаях. Ключевые потоки остаются неизменными, в итоге возникает риск взлома за счет повторного использования ключевого потока (тот же эффект, на который мы уже указывали, обсуждая режим группового шифра). Все, что криптоаналитику остается сделать, это сложить по модулю 2 два перехваченных сообщения. Тем самым он полностью снимет какую бы то ни было криптографическую защиту, и в его распоряжении окажется сумма по модулю 2 двух блоков открытого текста. Этот недостаток вовсе не означает, что режим счетчика в целом неудачен. Это говорит лишь о том, что как ключи, так и векторы инициализации должны выбираться независимо и случайным образом. Даже если один и тот же ключ случайно попадется дважды, от перехвата информацию может спасти отличающийся вектор инициализации.

    1. Криптоанализ

Существует несколько подходов к взлому различных алгоритмов шифрования с симметричным ключом. Первый подход называется дифференциальным криптоанализом. Он может использоваться для взлома любых блочных шифров. Для начала анализируется пара блоков открытого текста, различающихся лишь небольшим числом бит. При этом внимательно анализируется происходящее при каждой внутренней итерации во время шифрации. Во многих случаях можно заметить, что одни битовые последовательности встречаются чаще других, и это соображение используется для взлома, основанного на теории вероятностей.

Второй подход, который следует обозначить, называется линейным криптоанализом. С его помощью можно взломать DES только с 243 известными открытыми текстовыми блоками. Принцип работы основан на суммировании по модулю 2 некоторых бит открытого текста и изучении результатов для шаблонных последовательностей. Если повторять эту процедуру много раз, половина бит будет иметь нулевые значения, половина — единичные. Тем не менее, довольно часто это соотношение изменяется в ту или иную сторону. Это отклонение, каким бы малым оно ни было, может использоваться для снижения показателя трудозатрат криптоаналитика.

Третье направление развития связано с анализом потребляемой электроэнергии для вычисления секретного ключа. Обычно в компьютерах напряжение 3 В соответствует логической единице, а О В — логическому нулю. Таким образом, обработка единицы требует большего потребления электроэнергии, чем обработка нуля. Если криптографический алгоритм состоит из цикла, в котором разряды ключа обрабатываются поочередно, взломщик, заменив главные системные n-гигагерцевые часы медленными (например, с частотой 100 Гц) и повесив «крокодилы» на ножки питания и заземления центрального процессора, может с большой точностью отслеживать мощность, потребляемую каждой машинной инструкцией. По этим данным узнать секретный ключ оказывается на удивление просто. Этот метод криптоанализа можно победить лишь аккуратным кодированием алгоритма на языке Ассемблера таким образом, чтобы энергопотребление не зависело ни от общего ключа, ни от ключей каждой итерации.

Четвертый подход основан на временном анализе. Криптографические алгоритмы содержат большое количество условных операторов (if), тестирующих биты итерационных ключей. Если части then и el se выполняются за различное время, то, замедлив системные часы и измерив длительность всех шагов, можно вычислить ключи итераций. По этим ключам обычно можно вычислить и общий ключ. Анализ энергопотребления и временной анализ могут применяться и одновременно, что позволяет упростить задачу криптоанализа. Несмотря на то, что анализы энергозатрат и времени выполнения операций могут показаться несколько экзотическими, на самом деле они представляют собой мощные методы, способные взломать любой шифр, если только он не имеет специальной защиты.