все лекции
.pdfФункциональная схема РЕЖИМА ГАММИРОВАНИЯ приведена на
рисунке 6.4.
`` |
Тшi |
|
|
|
|
|
СМ5 |
Тоi |
|
|
|
входной 64-разрядный |
|
Накопитель N6 |
|
|
Накопитель N5 |
||||||||
32-разрядная константа С1 |
|
32-разрядная константа С2 |
||||||||||
32… |
|
|
|
…1 |
32… |
|
|
|
|
…1 |
||
|
Сумматор СМ4 |
|
|
|
|
|
|
|
||||
|
|
|
Сумматор СМ3 |
|
||||||||
32… |
|
|
|
' |
|
|
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
…1 |
|
|
|
|
|
|
|
|
|
|
|
|
32… |
|
|
|
|
…1 |
||||
|
Накопитель N4 |
|
|
Накопитель N3 |
||||||||
32… |
|
|
|
…1 |
32… |
|
|
|
|
…1 |
~ |
|
|
S |
Накопитель N2 |
Накопитель N1 |
|
Схема режима простой замены
Рисунок 6.4 – Функциональная схема для режима гаммирования
На рисунке символ ' - операция сложения двух 32-разрядных чи-
сел «по модулю 232 – 1».
Число двоичных разрядов в блоке Т0m (m – номер последнего блока) мо-
6
жет быть меньше 64, при этом неиспользованная для зашифрования
часть гаммы шифра из блока ГШm отбрасывается.
Правила суммирования чисел «по модулю 232 – 1»:
а ' в = а + в, если (а + в) < 232 – 1;
а ' |
в = а + в – (232 – 1), если (а + в) (232 – 1). |
(6.7, 6.8) |
||||
|
|
|||||
Гамма шифра определяется |
: |
|
||||
Г |
= A(Y |
' C , Z |
i–1 |
' C ), i = 1, …, m, |
(6.9) |
|
шi |
i–1 |
2 |
1 |
|
где А(…) – функция зашифрования в режиме простой замены;
Yi, Zi – 32-разрядные двоичные последовательности.
Значения Yi, Zi определяются итерационно по мере формирования
гаммы Гш следующим образом: |
|
(Y0, Z0) = А( S~ ), |
(6.10) |
~ |
|
|
|
|
|
(64- |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
где S – |
синхропосылка |
разрядная двоичная последовательность |
); |
||||||||||||||
|
(Y , Z ) = (Y |
i–1 |
' C , Z |
' C ), |
i = 1, …, m. |
(6.11) |
|||||||||||
|
i i |
|
2 i–1 |
1 |
|
|
|
|
|
|
|||||||
|
|
|
|
64- |
|
||||||||||||
|
То есть, |
в накопители |
N1, N2 |
вводится |
разрядная двоичная по- |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
~ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
следовательность |
(синхропосылка) S = (S1, S2, …, S64). |
|
|
||||||||||||||
|
|
|
|
|
|
~ |
|
|
|
|
|
N1, N2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Синхропосылка |
S в накопителях |
зашифровывается в режи- |
ме простой замены: А( ~ ) = (Y0, Z0) и переписывается в накопители:
S
N1 в N3, а N2 в N4.
Содержимое N3 и N4 суммируется в CM3 и CM4 с константами C2
и C1 соответственно, и результаты записываются в N3 и N4.
Далее заполнение N3 и N4 переписывается в N1 и N2 соответственно с
7
сохранением данных в N3 и N4.
Заполнение N1 и N2 зашифровывается в режиме простой замены,
образуя 64-разрядный блок гаммы шифра.
Для получения следующего блока ГШ, содержание накопителей N3
и N4 опять суммируется со своими константами, и далее процесс по-
вторяется.
В канал связи передаются блоки зашифрованных данных Тшi и
~
синхропосылка S .
СИНХРОПОСЫЛКА не является секретным элементом шифра и
может передаваться по каналу связи вместе с зашифрованными данными.
Функциональная схема РЕЖИМА ГАММИРОВАНИЯ С
ОБРАТНОЙ СВЯЗЬЮ приведена на рисунке 6.5.
8
ТШi
Тш (i-1)
|
СМ |
Тoi |
|
|
|
|
|
Гшi
N2 |
N1 |
|
|
|
|
|
|
|
Схема режима простой замены
Рисунок 6.5 – Функциональная схема для режима гаммирования с обрат-
ной связью
|
Уравнения зашифрования имеют вид: |
|
|
|
|||||||||
|
Т |
= А( ~ ) Т |
01 |
= Г |
ш1 |
Т ; |
(6.12, 6.13) |
||||||
|
ш1 |
|
|
S |
|
01 |
|
|
|
||||
|
Тшi = А[Tш(i–1)] T0i = Гшi T0i, i = 2, …, m. |
||||||||||||
|
|
|
|
|
|
|
|||||||
|
Аргументом функции |
А(…) |
на первом шаге |
итеративного алгоритма |
|||||||||
|
|
|
64- |
|
|
|
|
|
|
~ |
|
|
|
является |
разрядная синхропосылка |
на всех последующих ша- |
|||||||||||
S , |
гах – предыдущий блок зашифрованных данных Тш(i–1) .
РЕЖИМ ВЫРАБОТКИ ИМИТОВСТАВКИ – блока из P бит, ко-
торый вырабатывается по определённому правилу из открытых данных
с использованием ключа и затем добавляется к зашифрованным дан-
9
ным, предназначен для обеспечения их имитозащиты.
ИМИТОЗАЩИТА – защита системы от навязывания ложных данных.
Имитовставка ИР вырабатывается из блоков открытых данных
либо перед шифрованием сообщения, либо параллельно с шифрованием по блокам.
Первые блоки данных со служебной информацией могут не за-
шифровываться (адрес, время, синхропосылка).
Число двоичных разрядов Р в имитовставке определяется крипто-
графическими требованиями с учётом того, что вероятность навязы-
1
вания ложных помех равна 2P .
Первый блок Т01 подвергается преобразованию ~ (…), соответ-
A
ствующему первым 16 циклам алгоритма шифрования в режиме простой замены.
Полученное после 16 циклов 64-разрядное число ~ (Т01) суммируется
A
«по модулю 2» со вторым блоком открытых данных Т02. И так далее.
Последний блок Т0m (дополненный нулями до 64 бит) суммируют «по
модулю 2» с результатом на шаге (m – 1), после чего зашифровывают
в режиме простой замены, используя преобразование ~ (…).
A
Из полученного 64-разрядного числа выбирают отрезок ИР (ими-
товставку) длиной P бит:
10
|
|
|
|
|
|
|
|
, |
|||||
И p a32 p 1,m 16 , |
a32 p 2,m 16 |
, , |
a32,m 16 |
|
||
|
|
|
|
|
|
|
где ai ,m – i-й бит 64-разрядного числа, полученного после 16-го цикла послед-
него преобразования A~ (…); (32 – Р + 1) i 32.
ИМИТОВСТАВКА ПЕРЕДАЕТСЯ по каналу связи в конце зашиф-
рованных данных.
Получатель после расшифровки по блокам открытых данных
аналогичным образом вырабатывает имитовставку И p , которая и
сравнивается с полученной по каналу связи И р .
При несовпадении, расшифрованные блоки данных считаются ложными.
6.2 Поточные шифры
Они преобразуют открытый текст в шифротекст по одному биту за операцию [5, 14].
Поточные шифры, в отличие от блочных, осуществляют поэлементное
шифрование потока данных без задержки в криптосистеме. Их важнейшее
достоинство – высокая скорость преобразования, соизмеримая со скоро-
стью поступления входной информации. То есть обеспечивается шифрование практически в реальном масштабе времени вне зависимости от объёма и разряд-
ности потока преобразуемых данных.
Генератор потока ключей (генератор с бегущим ключом) выдаёт по-
ток битов k1, k2, …, ki.
Этот поток и поток битов открытого текста p1, p2, …, pi под-
11
вергаются операции XOR, давая биты шифротекста:
|
Ci = pi ki. |
(6.14) |
||||||||
|
|
|
|
|
|
|
|
|
||
|
При дешифровании |
операция XOR |
выполняется с тем же самым |
|||||||
|
|
|
|
|
|
|
|
|||
потоком ключей |
: |
|
|
|
|
|
|
|
||
|
pi = Ci ki. |
(6.15) |
||||||||
|
|
|
|
|
|
|||||
|
Здесь рi Ci = ki. |
Если |
ki |
– |
строка нулей |
, |
шифротекст совпадет с |
открытым текстом, что бессмысленно.
При бесконечном потоке случайных битов криптостойкость поточного шифра эквивалентна криптостойкости одноразового блокнота.
Поточные шифры больше подходят для аппаратной реализации,
а блочные – для программной (удобство манипулирования с битами или бло-
ками данных).
Работа большинства поточных шифров основана на регистрах сдвига с обратной связью.
Регистр сдвига генерирует ключевую последовательность: новый
крайний левый бит является функцией всех остальных битов реги-
стра.
Период регистра – длина получаемой последовательности до начала её повторения.
Простейший вариант – регистр сдвига с линейной обратной связью (РС
ЛОС), рисунок 6.6.
Так как здесь обратная связь – это операция ХОR некоторых битов реги-
стра, эти биты называются отводной последовательностью.
12
bn |
bn-1 |
b... |
b3 |
b2 |
b1 |
|
|
|
|
|
выходной бит |
|
|
|
+ |
|
|
Рисунок 6.6 – Регистр сдвига с линейной обратной связью
6.3 Ключи в асимметричной криптосистеме RSA
Криптосистема RSA (по первым буквам фамилий создателей) предложена
в 1977 году и является наиболее распространённой криптосистемой и
многие годы противостоит интенсивному криптоанализу. Её криптостойкость
основана на трудоёмкости разложения на множители (факторизации)
больших чисел.
Алгоритм основан на математических положениях и понятиях (ниже). Натуральное число – результат счёта конечного числа предметов.
Простое число – натуральное число p > 1, натуральными делителями которого являются только два числа: 1 и р.
Согласно малой теореме Ферма, если р – простое число, то для любого х, взаимно простого с р (взаимно простые числа – целые числа, не имеющие общих (простых) делителей, т.е., х не делится на р), справедливо
xp–1 1(mod p), – { 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).
Сравнения первой степени
13
В теории чисел, криптографии и других областях науки часто возникает задача отыскания решений сравнения первой степени вида:
Решение такого сравнения начинается с вычисления НОД (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 и более разрядов) простых чисел. Задача восстановления от-
рытого текста по шифротексту и открытому ключу эквивалентна задаче факторизации.
ДЛЯ ГЕНЕРАЦИИ парных ключей используются два больших слу-
чайных простых числа p и q, выбранных равной длины для криптостойко-
сти. При этом:
а) вычисляется произведение n = pq;
б) случайным образом выбирается ключ шифрования е (это не осно-
вание натурального алгоритма!), такой, что е взаимно простое число с (p – 1)(q
14
– 1) ;
в) для нахождения (вычисления) ключа дешифрования d использу-
ется алгоритм еd 1 [mod (p – 1)(q – 1)] (ed сравнимо с 1 по модулю (p
– 1)(q – 1), или: |
|
d = е–1 [mod (p – 1)(q – 1)], |
(6.16) |
где d и n – простые числа.
д) ОТКРЫТЫЙ КЛЮЧ зашифрования – числа n, e;
е) ЗАКРЫТЫЙ КЛЮЧ РАСШИФРОВАНИЯ – числа p, q, и d (хра-
нятся в секрете).
Для шифрования сообщения m его разбивают на блоки, каждый из
которых меньше n: для двоичных данных выбирается самая большая степень числа 2, меньшая n.
То есть, если p и q – это 100-разрядные простые числа, то n будет содержать около 200 разрядов. И каждый блок сообщения mi должен иметь такое же число разрядов.
Зашифрованное сообщение C будет состоять из блоков Сi той же длины.
Шифрование сводится к вычислению:
|
Ci mi e ( mod n) . |
(6.17) |
|||
|
|
|
|
||
|
При дешифровании для каждого зашифрованного блока |
Сi |
вы- |
||
|
|
|
|
||
числяется |
: |
|
|
|
|
|
mi Ci d ( mod n) . |
( 6.18) |
|||
|
|
|
15 |
|
|