Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Раздел6_11

.pdf
Скачиваний:
18
Добавлен:
15.06.2014
Размер:
431.01 Кб
Скачать

входной64-

 

 

 

 

64-разрядныйблокза-

 

разрядный

 

 

 

 

 

 

 

 

 

шифрованныхданных

 

блокТ0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32-разрядный

 

 

32-разрядный

 

 

 

 

накопительN2

 

 

накопительN1

 

 

 

 

32...

...1

 

 

32...

...1

 

 

 

 

Ключевоезапоми-

 

 

32-разрядный

 

 

 

 

 

нающееустройст-

 

 

сумматорпомо

 

 

 

 

во(КЗУ)256бит

 

 

дулю232 СМ1

 

 

 

 

 

(восемь32-разряд-

 

 

 

 

 

 

 

 

 

ныхнакопителей)

 

 

 

 

 

 

 

 

x0(k0)

 

32...

 

 

...1

 

 

 

 

 

 

 

 

 

 

 

 

x1(k1)

 

 

S-блокподстановки

S

 

 

x2(k2)

 

 

(восемьузловзамены)

 

 

 

 

 

 

 

 

 

 

 

 

x3(k3)

S8

S7

S6

S5

S4

S3

S2

S1

 

x4(k4)

 

 

 

 

 

 

 

 

 

x5(k5)

 

 

32-разрядныйрегистр

 

 

 

 

 

 

 

 

 

x6(k6)

 

 

 

 

 

 

 

 

 

x7(k7)

 

 

 

 

 

 

 

 

 

 

 

 

32-разрядный

 

 

 

 

 

 

 

сумматорпомо-

 

 

 

 

 

 

 

дулю2 СМ2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32...

 

 

...1

 

 

Рисунок 6.3 – Функциональная схема для режима простой замены

Функциональная схема РЕЖИМА ГАММИРОВАНИЯ приведена на рисунке 6.4.

``

Тшi

 

 

 

СМ5

НакопительN6

32-разряднаяконстантаС1

32… …1

СумматорСМ4

'

32… …1

НакопительN4

32… …1

Тоi

входной64-разрядный

СумматорСМ3

'

32… …1

НакопительN3

32… …1

НакопительN2

 

НакопительN1

 

 

 

Схемарежимапростойзамены

Рисунок 6.4 – Функциональная схема для режима гаммирования

На рисунке символ ' - операция сложения двух 32-разрядных чи-

сел«по модулю232 – 1».

Число двоичных разрядов в блоке Т0m (m номер последнего блока) мо-

жет быть меньше 64, при этом неиспользованная для зашифрования

часть гаммы шифра из блока ГШm отбрасывается.

Правила суммирования чисел «по модулю 232 – 1»:

а '

в = а + в, если (а + в) < 232 – 1;

 

а '

в = а + в – (232 – 1), если (а + в) (232 – 1).

(6.7, 6.8)

Гамма шифра определяется:

Гшi = A (Yi-1 ' C2 , Zi-1 ' C1), i = 1, …, m,

(6.9)

где А (…)функция зашифрования в режиме простой замены;

Yi, Zi 32-разрядные двоичные последовательности.

Значения Yi, Zi определяются итерационно по мере формирования

гаммыГш следующим образом:

(Y0, Z0) = А (S ),

(6.10)

где S синхропосылка (64-разрядная двоичная последовательность);

(Yi, Zi) = (Yi-1 ' C2, Zi-1 ' C1), i = 1, …, m.

(6.11)

То есть, в накопители N1, N2 вводится 64-разрядная двоичная по-

следовательность (синхропосылка) S= (S1, S2, …, S64).

Синхропосылка S в накопителях N1, N2 зашифровывается в режи-

ме простой замены: А(S) = (Y0, Z0)и переписывается в накопители:

N1 в N3, а N2 в N4.

Содержимое N3 и N4 суммируется в CM3 и CM4 с константами C2

и C1соответственно и результаты записываются в N3 иN4.

Далее заполнение N3 и N4 переписывается в N1 и N2 соответственно с

сохранением данных вN3 и N4.

Заполнение N1 и N2 зашифровывается в режиме простой замены,

образуя64-разрядный блок гаммы шифра.

Для получения следующего блока ГШ, содержание накопителей N3

и N4 опять суммируется со своими константами, и далее процесс по-

вторяется.

В канал связи передаются блоки зашифрованных данных Тшi и

синхропосылкаS .

СИНХРОПОСЫЛКА не является секретным элементом шифра и

может передаваться по каналу связи вместе с зашифрованными данными.

Функциональная схема РЕЖИМА ГАММИРОВАНИЯ С ОБРАТНОЙ СВЯЗЬЮприведена на рисунке 6.5.

ТШi

 

Тш(i-1)

 

СМ

Тoi

 

Гшi

 

N2

N1

Схемарежимапростой

Рисунок 6.5 – Функциональная схема для режима гаммирования с обратной связью

Уравнения зашифрования имеют вид:

Тш1 = А(S ) Т01 = Гш1 Т01;

(6.12, 6.13)

Тшi = А[Tш(i-1)] T0i = Гшi T0i, i = 2, …, m.

 

Аргументом функции А(…)на первом шаге итеративного алгоритма

является 64-разрядная синхропосылка S , на всех последующих ша-

гах предыдущий блок зашифрованных данных Тш(i-1).

РЕЖИМ ВЫРАБОТКИ ИМИТОВСТАВКИ блока из P бит, ко-

торый вырабатывается по определенному правилу из открытых данных

с использованием ключа и затем добавляется к зашифрованным данным, предназначен для обеспечения их имитозащиты.

ИМИТОЗАЩИТА защита системы от навязывания ложных данных.

Имитовставка ИР вырабатывается из блоков открытых данных

либо перед шифрованием сообщения, либо параллельно с шифрованием по блокам.

Первые блоки данных со служебной информацией могут не за-

шифровываться (адрес, время, синхропосылка).

Число двоичных разрядов Р в имитовставке определяется крипто-

графическими требованиями с учётом того, что вероятность навязы-

1

вания ложных помех равна 2P .

Первый блок Т01 подвергается преобразованию A(…), соответ-

ствующему первым 16 циклам алгоритма шифрования в режиме простой замены.

Полученное после 16 циклов 64-разрядное число A01) суммируется

«по модулю 2» со вторым блоком открытых данных Т02. И так далее.

Последний блок Т0m (дополненный нулями до 64 бит) суммируют «по

модулю 2» с результатом на шаге (m – 1), после чего зашифровывают

в режиме простой замены, используя преобразование A(…).

Из полученного 64-разрядного числа выбирают отрезок ИР (ими-

товставку) длинойP бит:

 

16 ,

a32 p 2,m 16 ,

,

a32,m

 

И p a32 p 1,m

16

 

 

 

 

 

,

где ai,m i-й бит 64-разрядного числа, полученного после 16-го цикла послед-

него преобразования A(…);

(32 – Р + 1) i 32.

ИМИТОВСТАВКА ПЕРЕДАЕТСЯ по каналу связи в конце зашиф-

рованных данных.

Получатель после расшифровки по блокам открытых данных аналогичным образом вырабатывает имитовставку И p, которая и

сравнивается с полученной по каналу связи И р.

При несовпадении, расшифрованные блоки данных считаются ложными.

6.2 Поточные шифры

Они преобразуют открытый текст в шифротекст по одному биту за операцию[5, 14].

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

стью поступления входной информации. То есть обеспечивается шифрование

практически в реальном масштабе времени вне зависимости от объёма и разряд-

ности потока преобразуемых данных.

Генератор потока ключей (генератор с бегущим ключом) выдаёт по-

ток битовk1, k2, …, ki.

Этот поток и поток битов открытого текста p1, p2, …, pi под-

вергаются операцииXOR,давая биты шифротекста:

Ci = pi ki.

(6.14)

При дешифровании операция XOR выполняется с тем же самым

потоком ключей:

pi = Ci ki.

(6.15)

Здесь рi Ci = ki. Если ki строка нулей, шифротекст совпадет с

открытым текстом, что бессмысленно.

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

Поточные шифры больше подходят для аппаратной реализации,

а блочные – для программной (удобство манипулирования с битами или бло-

ками данных).

Большинство поточных шифров основано на регистрах сдвига с обратной связью.

Регистр сдвига генерирует ключевую последовательность: новый

крайний левый бит является функцией всех остальных битов реги-

стра.

Период регистра длина получаемой последовательности до

начала ее повторения.

 

 

 

 

Простейший вариант – регистр сдвига с линейной обратной связью (РС

ЛОС), рисунок 6.6.

 

 

 

 

 

Так как здесь обратная связь – это операция ХОR некоторых битов реги-

стра, эти биты называются отводной последовательностью.

bn

bn-1

b...

b3

b2

b1

 

 

 

 

 

выходной бит

 

 

 

+

 

 

Рисунок 6.6 – Регистр сдвига с линейной обратной связью

6.3 Ключи в асимметричной криптосистеме RSA

Криптосистема RSA (по первым буквам фамилий создателей) предложена

в 1977 году и является наиболее распространенной криптосистемой и

многие годы противостоит интенсивному криптоанализу. Её криптостойкость

основана на трудоёмкости разложения на множители (факторизации) больших чисел.

Алгоритм основан на математических положениях и понятиях (ниже). Натуральное число – результат счёта конечного числа предметов.

Простое число – натуральное число p > 1, натуральными делителями которого являются только два числа: 1 и р.

Согласно малой теореме Ферма, если р – простое число, то для любого х, взаимно простого с р (взаимно простые числа – целые числа, не имеющие общих (простых) делителей, т.е., х не делится на р), справедливо

xp–1 1(mod p), а также xp x(mod p).

Функция (n) натурального аргумента n, равная количеству положительных целых чисел, меньших n и взаимно простых с n, называетсяся функцией Эйлера. Для неё справедливы соотно-

шения: (1)=1; (pr) = pr–1(p–1); (ab)= (a) (b), где р – простое, r, a и b натуральные, (a, b)=1.

Это позволяет легко вычислить (n), когда известно разложение n на простые множители. Если натуральное число е (это не основание натурального алгоритма!) удовлетворяет условию [e,(n)]=1, то существует единственное натуральное число d< (n), для которого справедливо de 1[mod

(n)].

Если n=pq, где p и q – большие различные простые числа, и [x, (n)]=1, то согласно т. Эйлера для любого натурального x выполняется сравнение xed(mod n), и следовательно, xed(mod n)=x при условии x<n.

**********

Два целых числа a и b сравнимы по модулю натурального числа n (или равноостаточны при делении на n), если при делении на n они дают одинаковые остатки. Число n называется модулем сравнения.

Эквивалентные формулировки: a и b сравнимы по модулю n, если их разность a - b делится на n без остатка, или если a может быть представлено в виде a = b + kn, где k – некоторое целое

число. Например: 32 и −10 сравнимы по модулю 7, так как: 32 = 7 4 + 4 и –10 = 7 (–2) + 4. Утверждение «a и b сравнимы по модулю n» записывается в виде: a b(mod n).

Сравнения первой степени

В теории чисел, криптографии и других областях науки часто возникает задача отыскания решений сравнения первой степени вида:

Решение такого сравнения начинается с вычисления НОД(a, m)=d. При этом возможны 2 слу-

чая:

Если b не кратно d, то у сравнения нет решений.

Если b кратно d, то у сравнения существует единственное решение по модулю m / d, или, что то же самое, d решений по модулю m. В этом случае в результате сокращения исходного сравнения на d получается сравнение:

где a1 = a / d, b1 = b / d и m1 = m / d являются целыми числами, причем a1 и m1 взаимно просты. Поэтому число a1 можно обратить по модулю m1, то есть найти такое число c, что

(другими словами, ). Теперь решение находится умножением полученного сравнения на c:

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

Пример

Для сравнения имеем d = 2, поэтому по модулю 22 сравнение имеет два решения. Заменим 26 на 4, сравнимое с ним по модулю 22, и затем сократим все 3 числа на 2:

Поскольку 2 взаимно просто с модулем 11, то его можно обратить по модулю 11 и найти

.

Умножая сравнение на 6, получаем решение по модулю 11:

,

эквивалентное совокупности двух решений по модулю 22:

и

.

********************

 

Открытый и секретные ключи являются функциями двух боль-

ших (100 200и более разрядов) простых чисел. Задача восстановления от-

Соседние файлы в предмете Защита информации