Раздел6_11
.pdfвходной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-разрядное число A(Т01) суммируется
«по модулю 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и более разрядов) простых чисел. Задача восстановления от-