Скачиваний:
82
Добавлен:
15.06.2014
Размер:
699.64 Кб
Скачать

a` = 437-1 142 mod 729362 142 mod 729374; b` = 134 –675 374 = 647 mod 729.

Применим ключи дешифрования к диграфам принятого шифрованного сообщения, получив ND = 354 365; XB = 622 724; HO = 203 24. Далее можно записать

365 = 13 27 + 14;

724 = 26 27 + 22;

24 = 0 27 + 24.

Сложив вместе, получим текст сообщения “NOWAY”.

Определим ключи шифрования

а = a`-1= 374 –1= 614 mod 729; b=-a-1b`= -614 647 mod 729 = 47 mod 729.

2.1.7. Гаммирование

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

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

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

В качестве примера гаммирования рассмотрим криптосистему, которая носит название «одноразовый гамма-блокнот». Система использует длинную шифрующую последовательность, которая состоит из бит, выбираемых совершенно случайным образом. Шифрующая последовательность побитно накладывается на открытый текст, она имеет ту же самую длину, что и сообщение и может использоваться единственный раз (соответственно требуется огромное количество шифрующих гамм). Если открытый текст сообщения записать, как последовательность бит

X = x0, ... , xN - 1,

21

а двоичную шифрующую последовательность

g = g0, … , gN - 1,

то шифротекст Y определяется из соотношения

Y = y0, … , yN-1 ; yi = xi gi,

где означает операцию суммирования по модулю 2.

Расстояние единственности генератора гаммы с конечным ключом составляет

U= n = H(K) бит.

Отсюда следует, что не остается никакой стойкости в шенноновском смысле, как только противник получил в свое распоряжение более n бит гаммы. Интересная задача возникает в том случае, когда модель Шеннона модифицируется таким образом, что противник получает прямой доступ к ограниченному количеству L бит гаммы по своему выбору. Проблема доказательства стойкости шифра при таком дополнительном ограничении называется проблемой локальной рандомизации.

2.2. Поточные криптосистемы

Поточные алгоритмы шифрования применяют изменяющиеся во времени преобразования к отдельным цифрам открытого текста. Обозначим алфавиты открытого и закрытого текстов соответственно как X и Y, g - алфавит шифрующей последовательности, Z - пространство состояний поточного шифра, K - пространство ключей. Пусть xi, yi, gi, zi означают соответственно цифры открытого текста, шифротекста, гаммы и внутреннее состояние в момент времени i. Ключ k K выбирается в соответствии с вероятностным распределением PK, обычно равномерным.

В общем виде поточный шифр может быть описан уравнением

zi+1 = F( ki, zi, xi ) ;

yi = f( ki, zi, xi ) ,

где F- функция следующего состояния; f- функция выхода. Последовательность { gi = f( ki, zi ); i 1 } называется цифровой гаммой.

Если выполняется условие yi = xi + F( ki, zi ), то поточный дешифратор работает без задержки.

Кодовая структура поточных шифров должна удовлетворять следующим требованиям:

максимально возможного периода повторения;

22

хороших статистических свойств, приближающих её к случайному сигналу, в том числе, пройти тесты на проверку взаимонезависимости и равномерности распределения символов;

большой линейной сложности, которая численно оценивается длиной эквивалентного генератора с линейной обратной связью;

корреляционного иммунитета (эластичности) максимального порядка, не позволяющего пропускать на выход информацию о своих функциях – компонентах;

рассеивания и перемешивания;

математического представления нелинейными булевыми функциями высокого порядка.

Поточные шифры могут быть синхронными и самосинхронизирующимися.

2.2.1.Синхронные поточные шифры

В синхронной поточной криптосистеме шифрующая функция генерируется независимо от потоков открытого текста и шифротекста. Функционирование генератора гаммы описывается двумя уравнениями

zi+1 = F( ki, zi );

gi = f( ki, zi ).

Начальное состояние z0 может быть функцией от ключа k или от некоторой рандомизированной переменной. Цель генератора гаммы – развернуть короткий случайный ключ k в длинную псевдослучайную последовательность. Для двоичного ключа kn длины n бит, гамма длины l генерирует (n - l) последовательностей. В теории сложности генератор задается асимптотически как бесконечный класс (n, l(n))- последовательностей, где l – это полиномиальная функция индекса n, а время вычисления каждого генератора ограничено сверху полиномиальной функцией n.

Возможны следующие режимы работы поточных синхронных шифраторов.

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

zi+1 = F( zi );

gi = f( ki, zi ).

Примерами такой функции F являются обычные счетчики и генераторы последовательностей максимальной длины на регистрах сдвига с линейной обратной связью.

23

Режим обратной связи от выхода (внутренней обратной связи).

Выходная функция f не зависит от ключа

zi+1 = F( ki, zi );

gi = f( zi ).

Часто f состоит из 1 битного предиката текущего состояния (например, самый младший бит или бит четности). Иногда рассматривается вариант такого режима, когда ключ задает начальное состояние генератора.

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

2.2.2. Алгоритм А5

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

Примитивный полином обратной связи регистра сдвига с линейной обратной связью (РСЛОС) длины ri= (i = 1,2,3) запишется как

fi (z) = ri fi,l zl . l =0

Алгоритм А5 использует полиномы порядка r1 = 19, r2 = 22, r3 = 23.

 

 

 

 

 

 

 

Блок

Стоп/

управления

вперед

 

 

 

движением

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c1(t+1)

 

 

 

 

s1,1(t)

 

РСЛОС 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s 1,τ

(t)

 

 

 

 

 

1

 

 

 

 

c1(t+1)

 

 

 

 

s

(t)

y(t)

 

РСЛОС 1

 

 

 

2,1

 

 

c1(t+1)

s

2,τ2

(t)

 

 

 

 

 

 

s3,1(t)

 

 

РСЛОС 1

 

 

 

 

 

 

 

 

 

 

 

 

s 3,τ3

(t)

 

 

Рис. 4

24

В соответствии рекуррентным соотношением

xi (t) =

ri

 

ri ,

 

fi,l xi (t l) , t

 

 

l =1

 

 

 

РСЛОС формирует последовательность максимальной длины

xi = { xi(t) ; t = 0, … , }

 

 

с периодом (2ri 1) и начальным состоянием S

(0) ={x (t)} ri 1.

 

i

 

i

t=0

Выражение Si (t) ={si,τj (t);τ j

=1, ... , ri}описывает состояние i – ого РСЛОС

в момент t > 0. Символ τi обозначает выход соответствующего разряда регистра сдвига РСЛОС, используемый в цепи обратной связи блока управления. В алгоритме А5 используются отводы τ1 = 10, τ2 = 11, τ3 = 12.

Управление работой (движением) регистров осуществляет последовательность

C(t) = g( s1,τ1 (t 1), s2,τ2 (t 1), s3,τ3 (t 1) ) = { c1(t), c2(t), c3(t) },

где g - это 4-значная мажоритарная функция от трех двоичных переменных,

такая что g(s1, s2, s3) = { i, j }, если si = sj sk при i < j и k i, j;

g( s1, s2, s3 ) = { 1, 2, 3 }, если s1 = s2 = s3.

Если сигнал управления ci( t ) = 1, то соответствующий РСЛОС формирует очередную комбинацию символов псевдослучайной последовательности (осуществляет движение «вперед»). Если ci( t ) = 0, то РСЛОС останавливает свою работу (режим «стоп»). В каждом такте сдвигается, по меньшей мере, два регистра.

Для генерации выходного бита используются выходы первых разрядов РСЛОС

y( t ) = s1,1(t) + s2,1(t) + s3,1(t), mod 2; t 1.

Первые 100 бит выхода ( y( t ); t = 1, … , 100 ) отбрасываются, следующие 114 бит используются в качестве гаммы для шифрования одного направления полной дуплексной связи, затем еще 100 бит отбрасываются, а следующие 114 бит используются в качестве гаммы для шифрования сигнала связи обратного направления. Таким образом, зашифрованные сообщения имеют очень короткую длину и часто может происходить ресинхронизация.

Начальные заполнения РСЛОС определяются в терминах секретного и открытого ключей. Открытый ключ - это известный 22-битовый динамически код, генерируемый счетчиком и, следовательно, отличающийся для каждого нового сообщения. Секретный сеансовый ключ длиной 64 бита первым загружается в регистры (начальное заполнение из всех нулей избегается принудительной установкой 1 в выходе последней ячейки), а затем 22-битовый открытый ключ побитно добавляется в последовательности обратной связи каждого регистра в то время, когда они сдвигаются по описанному выше мажоритарному закону. Более строго, если p = (p( t); t = -21…0) обозначает открытый ключ, то для каждого t, изменяющегося от –21 до 0, регистры

25

сначала сдвигаются по заданному закону "стоп/вперед", а затем бит p( t ) прибавляется в последнюю ячейку каждого РСЛОС. После 22 таких шагов заполнения РСЛОС образуют секретный ключ сообщения или начальные заполнения регистров при генерации шифрующей гаммы.

В системах GSM поточный шифр A5 используется для закрытия связи между абонентом и базовой станцией, так что фактически при связи двух абонентов шифрование происходит дважды. Это дает возможность строить криптоаналитическую атаку с известным открытым текстом (если заручиться небольшой поддержкой "помощника" на базовой станции). Секретный, 64битовый сеансовый ключ генерируется с помощью другого алгоритма, исходя из "основного" (master) ключа, специфического для каждого пользователя, и открытого, случайного 128-битового ключа, передаваемого в незащищенной форме с базовой станции на аппарат абонента. Таким образом, успешное вскрытие одного или нескольких сеансовых ключей открывает дверь для криптоаналитических атак на основной ключ пользователя.

Методы криптоанализа шифра [28].

1.Прямой перебор. Достаточно короткие длины регистров позволяют

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

2.Корреляционный анализ. Цель корреляционного анализа A5 - определить начальные заполнения РСЛОС по известному отрезку гаммы, соответствующему одной паре "открытый текст - шифротекст". В данном случае реализуются стратегия "разделяй и вскрывай" и знания специфического

для данной схемы закона движения Средняя вычислительная сложность вскрытия оценивается величиной, примерно равной 240.

3.Балансировка "время-память". Метод балансировки "время - память" строится на базе вероятностного "парадокса дней рождений". Метод позволяет

вскрывать неизвестное начальное заполнение за известное время для известного отрезка гаммы. Атака приводит к успеху, если ( T M ) >263 , где T и M – соответственно требуемые для вычислений время и память (в 128-битовых словах). Время предвычислений оценено величиной O( M ), а требуемое количество известных последовательностей гаммы, сгенерированных при

разных открытых ключах, составляет около T/102. Например, можно выбрать соотношение параметров T >> 227 и M >> 235. Для получения секретного сеансового ключа по определенному внутреннему состоянию регистров предложена так называемая "реверсионная атака", эффективность которой проанализирована с помощью аппарата критических и субкритических ветвящихся процессов.

4.Цикловая структура A5. Известен любопытный результат относительно цикловой структуры последовательностей, порождаемых всеми возможными начальными состояниями регистров криптосхемы. Оказывается, что свыше 40%

26

ключей алгоритма A5 приводят к циклу, длина которого наименьшая из всех возможных, а именно (223- 1) 4/3 бит.

2.2.3. Алгоритм RC4

Алгоритм RC4 - это поточный шифр с переменной длиной ключа, разработанный в 1987 году Р. Райвистом для компании RSA Data Security, пригодный для быстрого магистрального шифрования. Он очень компактен и особо удобен для процессоров с побайтно ориентированной обработкой (рис. 5). Генератор содержит два счетчика i и j, инициализируемых нулевым значением, и имеет подстановочную таблицу (S-блок, размером 8 х 8), S0, S1, . .

., S255 [ 31 ]. Входами генератора являются замененные по подстановке числа от 0 до 255, которая является функцией от ключа изменяемой длины.

Внутреннее состояние генератора RC4 в момент времени t можно определить из таблицы St= { St( l) ; l = 1…2n-1} (содержащей 2n n-битных слов) и из двух n-битных слов указателей it и jt, n = 8. Размер внутренней памяти составляет M = n 2n+ 2 n бит.

Обозначим выходное n-битное слово генератора в момент t как Yt, начальные значения i0 = j0 = 0. Тогда функция следующего состояния и функция выхода RC4 для каждого t 1 задаются следующими соотношениями:

it = it-1+1; jt = jt-1 +St-1( it ) ;

St( it ) = St-1( jt ), St( jt ) = St-1( it ) функция взаимного обмена; Yt= St( St( it ) + St( it ) ),

где все сложения выполняются по модулю 2n

 

 

 

 

 

 

S блок

 

ТИ

 

CT

8

 

8

 

8

с

 

 

St

 

 

 

 

 

Q1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SQ1

8

 

 

 

 

 

 

 

 

c

CT

8

 

 

обмен

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q2

 

 

 

SQ2

8

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

Ключ

Начальная инициализация

 

Рис. 5

Начальная таблица S0 задается в терминах ключевой последовательности K = (Ki; i = 0…2n-1) с использованием той же самой функции следующего

27

состояния, начиная от таблицы единичной подстановки ( l; l=0…2n-1 ). На первом шаге S блок заполняется линейно: S0 = 0, S1 = 1, … , S255 = 255. Затем еще один массив заполняется ключом K. Индекс j = 0. Далее выполняется цикл:

for i = 0 to 256;

J = (j + Si + Ki) mod 256; swap Si and Sj .

Ключевая последовательность K состоит из секретного ключа и открытого рандомизированного ключа, передаваемого для ресинхронизации.

Для последовательностей, генерируемых RC4, не подходят методы статистического анализа, применяющиеся к генераторам на базе РСЛОС. Но, с другой стороны, для блоков, размер которых превышает M (размер внутренней памяти генератора), всегда существует линейная статистическая слабость или так называемая "линейная модель" [29]. Такую модель можно эффективно определять с помощью метода, линейного криптоанализа с использованием схемы линейной, последовательной аппроксимации (СЛПА). Линейная статистическая слабость - это линейное соотношение между битами гаммы, которое выполняется с вероятностью, отличающейся от 1/2. Метод СЛПА заключается в нахождении и решении последовательной линейной схемы, которая аппроксимирует генератор гаммы и приводит к линейным моделям с относительно большим корреляционным коэффициентом ε, где вероятность соответствующего линейного соотношения между битами гаммы составляет

(1+ ε)/2.

При анализе используется техника двоичных производных. Пусть

{ zt : t = 1,…,}

обозначает последовательность самых младших бит слов выхода RC4 и

z' = (z't = zt + zt+1; t =1,...,);

z'' = (z''t = zt + zt+2; t =1,...,) ,

обозначают соответственно ее первую и вторую двоичные производные. Показано, что z' не зависит от расположения логических 1 или 0, но z'' существенно зависит от положения логических единиц. Требуемая для выявления статистической слабости с корреляционным коэффициентом ε длина выходной последовательности, пропорциональна O( ε-2) и приблизительно равна 64n/225. Например, если n = 8, то требуемая длина близка к (240 1012).

2.2.4.Самосинхронизирующиеся криптосистемы

Самосинхронизирующиеся системы криптографического преобразования информации содержат все необходимые для синхронизации данные в самом преобразованном сообщении [4, 25]. Пусть криптографическое преобразование Ek воздействует на исходное сообщение X:

Y = Ek{ X }.

28

Очевидно, что в этом случае должно быть справедливо следующее

соотношение

X = Ek-1{ Y },

где E-1 – обратное по отношению к E криптографическое преобразование. Прямое и обратное преобразования должны удовлетворять определенным

требованиям. Если в составе криптопреобразований использовать операцию сложения по модулю 2, то прямые и обратные преобразования должны быть такими, чтобы m-й знак исходного сообщения X формировался бы из последовательности, состоящей из µ предыдущих знаков преобразованного сообщения Y и m-го знака этого же сообщения Y. Определение m-го символа преобразованного сообщения Y необходимо вычислять по m-му знаку исходного сообщения X и последовательности, состоящей из µ предыдущих символов Y.

Действительно, если m-й элемент преобразованного сообщения Y определяется по формуле

ym = [ xm + f( ym-µ, ym-µ+1, … , ym-1 )] mod 2,

где f( ym-µ, ym-µ+1, … , ym-1 ) - некоторая функция, принимающая значение 0 или 1 в зависимости от содержания последовательности (ym-µ, ym-µ+1, … , ym-1) шифротекста Y, то m-й знак исходного сообщения X может быть определен с помощью следующей формулы

xm = [ ym + f( ym-µ, ym-µ+1, … , ym-1 ) ] mod 2=

= { [ xm + f( ym-µ, ym-µ+1, … , ym-1 ) ] + f( ym-µ, ym-µ+1, … , ym-1 ) ] } mod 2.

Приведенные соотношения справедливы для m ≥ µ+1. Для того, чтобы соотношения выполнялись и для m < µ+1 необходимо использовать для формирования знаков xi, yi некоторую кодовую последовательность R, состоящую из µ знаков. Тогда значение первого элемента шифротекста Y будет определяться по формуле

y1 = [ x1 + f( r1, r2, … , rµ ) ] mod 2,

значение второго знака – по формуле

y2 = [ x2 + f( r2, r3, … , y1 ) ] mod 2,

а значение µ знака – по формуле

yµ = [ xµ + f( rµ, y1, … , yµ-1 ) ] mod 2.

Аналогичные значения функций

f(r1, r2, … , rµ ), f( r2, r3, … , y1 ) и f(rµ, y1, … , yµ-1)

29

должны использоваться при расшифровании текста. Схемы устройств шифрования и расшифрования, построенные по принципу использования регистра сдвига (RG) с обратной связью, приведены на рис. 6 , 7 .

Y f(z)

X

Mod2

RG

 

 

 

Y

 

 

RG

 

 

Mod2

X

 

f(z)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 6

Ключ

Рис. 7

При искажении одного знака шифротекста Y вследствие действия помех на приемной стороне будет наблюдаться эффект размножения не более (µ+1)ошибок. Действительное число ошибок в пачке и их расположение будут определяться значениями функции f(z) и видом Y. Значение величины µ определяет, с одной стороны, длину пачки ошибок и, следовательно, время синхронизации криптосистемы в условиях воздействия на канал передачи информации помех, а с другой стороны – криптографическую стойкость системы. Если выполняется условие, что функция f(z) с равной вероятностью принимает значения 0 или 1, и такое условие выполняется для знаков шифротекста, то вероятность P1 угадывания криптоаналитиком значений функции f(z) (являющихся, по сути, ключом криптографического преобразования) с первой попытки можно оценить по формуле

 

P1 = 2-q, q = 2µ.

 

 

 

 

Так, при µ = 4, P1 = 2-16, а при µ = 10 – P1 = 2-1024.

величины

2q

и оценка

В таблице приведены возможные значения

стойкости системы шифрования [ 25 ].

 

 

 

 

 

 

 

 

 

Значение величины 2q

 

Оценка стойкости

 

 

2,3×1016

 

Раскрытие

системы

находится

на

 

 

пределе современных технологий

 

1,2×1023

 

Раскрытие

системы

находится

за

 

 

пределами современных технологий

 

2,7×1034

 

Раскрытие

системы

требует

 

 

использования новых технологий

 

1,3×1051

 

Нераскрываемая система

 

 

30