Вы находитесь на странице: 1из 32

Министерство образования и науки Российской Федерации

Южно-Российский государственный технический университет


(Новочеркасский политехнический институт)

Математические основы и алгоритмы


криптографии с открытым ключом

Методические указания и контрольные задания по дисциплине «Методы


и средства защиты компьютерной информации»

Новочеркасск 2007
УДК 003.9 (076.5)

Рецензент ___________________________

Иванченко А.Н., Зайцев Р.Г., Мальцев И.В.


Элементы теории чисел в криптологии: Метод. указ. по дисциплине
«Методы и средства защиты компьютерной информации» / Юж.-Рос. гос.
техн. ун-т. - Новочеркасск: ЮРГТУ, 2007. - 28 с.

Изложены общие положения теории чисел, использующиеся в


криптографических системах, приведены основные алгоритмы решения
типичных теоретико-числовых задач с примерами использования.
Предназначены для студентов специальностей 220400 «Программное
обеспечение вычислительной техники и автоматизированных систем»,
220300 «Системы автоматизированного проектирования» и 351500
«Математическое обеспечение и администрирование информационных
систем» очной и заочной форм обучения.

© Южно-Российский
государственный технический
университет, 2007
© Иванченко А.Н., Зайцев Р.Г.,
Мальцев И.В, 2007
ОГЛАВЛЕНИЕ

РАЗДЕЛ 1. МАТЕМАТИЧЕСКИЕ ОСНОВЫ КРИПТОГРАФИИ .....................................8


1.1. ДЕЛИМОСТЬ И АЛГОРИТМ ЕВКЛИДА..................................................................8
1.1.1 Отношение делимости ............................................................................................8
1.1.2 Использование алгоритма Евклида для решения теоретико-числовых задач
криптологии ....................................................................................................................10
1.1.3 Расширенный метод Евклида ...............................................................................12
1.2. СРАВНЕНИЯ ...............................................................................................................14
1.2.1. Отношение сравнимости......................................................................................14
1.2.2. Использование свойств сравнений для решения теоретико-числовых задач
криптологии ....................................................................................................................15
РАЗДЕЛ 2. КРИПТОГРАФИЧЕСКИЕ СИСТЕМЫ С ОТКРЫТЫМ КЛЮЧОМ ............18
2.1. Основные сведения о криптографических системах ...............................................18
2.2. Шифрование с использованием криптосистемы RSA .............................................21
2.3. Цифровая подпись в схеме Эль-Гамаль ....................................................................22
2.4. Обмен информацией с использованием протокола Шамира ..................................23
РАЗДЕЛ 3. Контрольные задания.........................................................................................26
3.1. Программа работы.......................................................................................................26
3.2. ПРИМЕРЫ ВЫПОЛНЕНИЯ КОНТРОЛЬНЫХ ЗАДАНИЙ...................................26
3.2.1. Шифрование с использованием криптосистемы RSA ......................................26
3.2.2. Цифровая подпись в схеме Эль – Гамаль...........................................................28
3.2.3. Обмен информацией с использованием протокола Шамира ...........................28
3.3. ВАРИАНТЫ КОНТРОЛЬНЫХ ЗАДАНИЙ .............................................................29
Библиографический список...................................................................................................34
ПРЕДИСЛОВИЕ

Теория чисел, наряду с геометрией, является одной из древнейших


областей математики. Значительный вклад в эту область знаний внесли
виднейшие математики древности и нового времени: Евклид, Пифагор, П.
Ферма, Эйлер и др. Однако до последнего времени теория чисел считалась
одной из наиболее абстрактных областей математики, не имеющей
практического применения.
Подобные взгляды господствовали в математике до становления
теоретической криптологии в последней четверти XX в. Разработка
криптографических систем с открытым ключом обусловила новые области
применения теории чисел. Теория чисел из абстрактной научной
дисциплины, занимающейся коллекционированием фактов о
замечательных свойствах натуральных чисел, превратилась в инструмент
синтеза и анализа криптографических систем, чрезвычайно
востребованных на практике [7].
Подобное положение дел привлекло к теории чисел повышенный
интерес как научных кругов, так и широкой общественности. Обсуждение
теоретических вопросов широко освещается в околонаучной прессе. Для
решения сугубо научных задач (факторизация больших чисел, поиск
простых чисел Ферма и Мерсенна и т.д.) спонтанно организуются
массовые сообщества добровольцев.
Подобный всплеск интереса к теории чисел подтверждает
актуальность решаемых ею задач и их важность для развития сферы
информационных технологий.
РАЗДЕЛ 1. МАТЕМАТИЧЕСКИЕ ОСНОВЫ КРИПТОГРАФИИ

1.1. ДЕЛИМОСТЬ И АЛГОРИТМ ЕВКЛИДА

1.1.1 Отношение делимости

Понятие делимости является одним из фундаментальных понятий


теории чисел.
Определение 1. Для данных целых чисел a и b говорят, что a делит
b (или иными словами, что b делится на a ), и обозначают a b если
существует такое целое число d , что b = ad :
∀a, b ∈ Z : a b ⇔ ∃d ∈ Z : b = ad , где (1)
Z − множество целых чисел.
В этом случае число a называют делителем числа b . Очевидно, что
любое целое число b > 1 имеет, по крайней мере, два положительных
делителя: 1 и b .
Определение 2. Собственным делителем числа b называют любой
положительный делитель, не равный b .
Определение 3. Нетривиальным делителем числа b называют любой
положительный делитель, не равный 1 или b .
Введенное понятие нетривиального делителя используем для
определения понятия простого числа.
Определение 4. Простым (prime) называют целое число большее 1, не
имеющее нетривиальных делителей.
Определение 5. Составным (complex) называют число, имеющее, по
крайней мере, один нетривиальный делитель.
Непосредственно из определения делимости (1) следуют свойства
делимости:
1. Если a делит b , и c − любое целое число, то a делит
произведение bc :
∀a, b ∈ Z : a b & c ∈ Z ⇒ a bc .

2. Если a делит b , а b , в свою очередь, делит c , то a делит c :


∀a, b, c ∈ Z : a b & b c ⇒ a c .

3. Если a делит b , и a делит c , то a делит b ± c :


∀a, b, c ∈ Z : a b & a c ⇒ a (b ± c) .

В дальнейшем, для некоторого простого p и целого,


неотрицательного числа α запись вида pα b будем использовать для
обозначения того факта, что pα − наивысшая степень p , делящая b :
∀p : ∀x | p : ( x = 1 ∨ x = p ) & α ∈ Z : α > 0 : pα b ⇔ pα b & pα +1 /| b .
В этом случае говорят, что pα точно делит b .

Основная теорема арифметики утверждает, что любое натуральное


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

Пример 1. Рассмотрим разложение числа 4200 в виде делителей в


соответствующей степени:
4200 = 23 ⋅ 3 ⋅ 52 ⋅ 7 .

Из основной теоремы арифметики следуют свойства отношение


делимости:
4. Простое число p делит произведение целых чисел ab , в том и
только в том случае, когда p делит a , либо p делит b :
: ∀x | p : ( x = 1 ∨ x = p ) : ∀a, b ∈ Z : p ab ⇔ p a ∨ p b .

5. Если m делит a и n делит a , и если m и n не имеют общих


делителей больших 1, то произведение mn делит a :
∀m, n ∈ Z : m | a & n | a & ∀d : d | m & d | n : d = 1 ⇒ (m ⋅ n) | a .

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


отыскания всех делителей n по его разложению. А именно, любой
делитель d числа n должен быть произведением тех же простых
сомножителей в степенях, не превышающих степени α , точно делящих n .
Таким образом, если pα || n , то p β || d для β ∈ [0, α ]
Пример 2. Для нахождения делителей числа 4200 необходимо взять
2 в степени 0,1, 2 или 3 , умножить на 3 в степени 0 или 1, на 5 в
степени 0,1 или 2 и на 7 в степени 0 или 1 .
В этих условиях число всех делителей есть произведение числа
способов выбора степени для каждого простого делителя, которое, в свою
r
очередь, равно α + 1. Иначе говоря, число n = p1α1 p2α 2 ... prα r имеет ∏ (α i + 1)
i =1
различных делителей [8,9].

Пример 3. Число 4200 имеет (3 + 1)(1 + 1)(2 + 1)(1 + 1) = 48 различных


делителей.
Определение 6. Наибольшим общим делителем двух данных чисел
a и b (обозначается НОД (a, b) ), не равных одновременно нулю,
называется наибольшее целое число d , делящее одновременно a и b .

Нетрудно показать, что приведенное выше определение


эквивалентно следующему.
Определение 7. НОД (a, b) − есть единственное целое положительное
число, которое делит a и b , и делится при этом на любой их общий
делитель.

Из школьного курса математики известен следующий способ


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

Пример 4. Пусть дано 4200 = 23 ⋅ 3 ⋅ 52 ⋅ 7 и 10780 = 22 ⋅ 5 ⋅ 7 2 . Тогда


НОД (4200,10780) = 22 ⋅ 5 ⋅ 7 = 140 .

Определение 8. Наименьшим общим кратным двух данных чисел a и


b (обозначается НОК (a, b) ), не равных одновременно нулю, называется
наименьшее целое положительное число d , делящееся одновременно на a
и b.

Имея разложение на простые множители чисел a и b , можно


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

1.1.2 Использование алгоритма Евклида для решения теоретико-


числовых задач криптологии

Рассмотренный выше метод отыскания НОД двух чисел


основывается на использовании представления этих чисел в виде
произведения простых множителей. Однако на практике такой метод мало
применим, так как разложение числа, как правило, неизвестно, и его
отыскание (как будет показано в дальнейшем) является сложной
математической задачей.
Другим, наиболее известным способом отыскания наибольшего
общего делителя двух чисел является алгоритм, впервые изложенный в
трудах древнегреческого математика Евклида (IV-III вв. до н.э.
Алгоритм Евклида заключается в следующем.
Пусть a, b ∈ N , где a > b и мы хотим найти d = НОД (a, b) . Разделим a
на b с остатком a = q0b + r0 , 0 ≤ r0 < b . Если r0 > 0 , то разделим b на r0 :
b = q1r0 + r1 , 0 ≤ r1 < r0 и т.д. Получим последовательность равенств с
убывающими остатками rj :
rj −2 = q j rj −1 + rj , j = 0,1,2... . (2)
где r−2 = a, r−1 = b
Если rk — последний ненулевой остаток, то rk −1 = qk +1rk . , в этом
случае d = НОД (a, b) = rk .

Пример 5. Найти НОД (1547,560) .


Решение:
1547 = 2 ⋅ 560 + 427;
560 = 1 ⋅ 427 + 133;
427 = 3 ⋅ 133 + 28;
133 = 4 ⋅ 28 + 21;
28 = 1 ⋅ 21 + 7;
21 = 3 ⋅ 7 + 0.

Таким образом НОД (1547,560) = 7 .

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


важнейшим является вопрос о времени его выполнения.

Теорема 1. При a > b алгоритм Евклида позволяет вычислить


НОД (a, b) за время порядка O(log 3 a ) .

Схема доказательства. Для доказательства данной теоремы


достаточно показать, что за каждые два шага алгоритма остаток
уменьшается, по крайней мере, вдвое [9]. Таким образом результат работы
алгоритма достигается не позднее чем через 2 [ log a ] делений чисел
разрядностью, не превосходящих log a каждое.
Теорема 2. Наибольший общий делитель d = НОД (a, b) двух чисел a
и b , где a > b , можно представить в виде линейной комбинации этих чисел
d = ua + vb с целыми коэффициентами u, v ∈ Z , за время порядка O(log 3 a) .

Схема доказательства. Для доказательства теоремы достаточно


показать [8,9], что представление числа d может быть найдено путем
последовательного выражения d через все более ранние остатки в
алгоритме Евклида, на что будет затрачено одно умножение и одно
сложение или вычитание. Поскольку количество операций реализующих
сложение есть величина более низкого порядка, то получаем искомую
оценку времени.

Определение 9. Два целых числа a и b называются взаимно


простыми, если НОД (a, b) = 1 , т.е. если они не имеют общих делителей
больших 1.

Определение 10. Для любого целого положительного числа n


функция Эйлера ϕ (n) определяется как число неотрицательных целых b ,
меньших n и взаимно простых с n :
ϕ (n) = {0 ≤ b < n НОД ( b, n ) = 1} .
def

Из определения следуют следующие свойства функции Эйлера:


1. ϕ (1) = 1.
2. Для любого простого p
ϕ ( p ) = p − 1.
Несложно показать [2-4], что для любого простого p и некоторого α
 1
( )
ϕ p α = pα  1 −  .
 p

1.1.3 Расширенный метод Евклида

Рассмотрим теперь расширенный алгоритм Евклида, позволяющий


наряду с наибольшим общим делителем чисел A и B находить
натуральные числа x и y , удовлетворяющие равенству Ax + By = НОД( A, B) .
От обычного алгоритма Евклида он отличается тем, что наряду с
последовательностью остатков ri вычисляются ещё две вспомогательные
последовательности xi и yi . Расширенный алгоритм Евклида заключается
в следующем. Пусть {r−1 , r0 ,..., rn } ∈ N ; {x−1 , x0 ,..., xn } ∈ Z , { y −1 , y0 ,..., y n } ∈ Z ,
нам необходимо найти натуральные числа x и y , удовлетворяющие
равенству Ax + By = НОД( A, B) . На первом шаге положим, что
r−1 = A, r0 = B; x−1 = 1, y −1 = 0, x0 = 0, y0 = 1; . Далее будем выполнять
следующую последовательность действий, до тех пор пока ri > 0 :
d i = ri − 2 / ri −1 − целая часть;
ri = ri − 2 − d i ri −1 ;
xi = xi − 2 − d i xi −1 ;
yi = yi − 2 − d i yi −1 ;
i = i + 1;

Значения xk и yk , при которых rk = (A, B) , и будут искомыми в силу


следующего утверждения:
Лемма. При всех i, −1 ≤ i ≤ k , выполнимо равенство xi A+ yi B = ri
Доказательство. Применим индукцию по i . При i = −1, 0 равенство
очевидно. Если равенства доказаны для всех значений индексов меньших
i , то для i , пользуясь индуктивным предположением, получим
xi A+ yi B = (xi−2 − di yi−1)A+ (yi−2 − di yi−1)B = (xi−2A+ yi−2B) − d(xi−1A+ yi−1B) = ri .
Легко видеть, что сложность данного алгоритма отличается от
сложности обычного алгоритма Евклида не более, чем на константный
сомножитель, и составляет O(M(logN)logN) = O(M(n)n) , где n = logN длина
записи чисел A и B .
Расширенный метод Евклида может применяться для нахождения
корней частного случая диофантовых уравнений Ax + By = 1 .
В криптографии расширенный метод очень часто применяется для
нахождения обратного значения по модулю, подробнее будет рассмотрено
в разделе 2.

Упражнения для самоконтроля

1. Определить, сколько делителей имеет заданное число 945.


2. Найти степени чисел 2, 3, 4, 5 точно делящие число 23455.
3. Найти значение НОД (360,294) двумя способами: через разложение
на простые множители и используя алгоритм Евклида.
4. При помощи алгоритма Евклида найти наибольший общий делитель
НОД (841,160) и представить его в виде линейной комбинации с целыми
коэффициентами.
5. Найти x и y из уравнения 12x + 5 y = 1.
1.2. СРАВНЕНИЯ

1.2.1. Отношение сравнимости

Определение 11. Для данных целых чисел a , b и m , говорят, что a


сравнимо с b по модулю m , если разность a − b делится на m :
∀a, b, m ∈ Z : a ≡ b(mod m) ⇔ m | (a − b) .
При этом число m называется модулем сравнения.
Из определения 12 непосредственно следуют следующие свойства
сравнений:
1. Рефлексивность:
∀a, m ∈ Z : a ≡ a (mod m) .

2. Симметричность:
∀a, b, m ∈ Z : a ≡ b(mod m) ⇔ b ≡ a (mod m) .

3. Транзитивность:
∀a, b, c, m ∈ Z : a ≡ b(mod m) & b ≡ c (mod m) ⇒ a ≡ c(mod m) .

Таким образом, для фиксированного значения m отношение


сравнимости является отношением рефлексивным, симметричным и
транзитивным, т.е. отношением эквивалентности.
В этих условиях каждый класс эквивалентности по этому
отношению обладает в точности одним представителем в множестве чисел
от 0 до m − 1 [9-11]. Иными словами, любое целое число сравнимо по
модулю m ровно с одним числом в промежутке от 0 до m − 1 .
Множество классов эквивалентности по модулю m (называемых
классами вычетов) обозначается Z m Z .
Несложно убедиться, что сравнения обладают следующим свойством
[8].

4. Коммутативность
∀a, b, c, d , m ∈ Z : a ≡ b(mod m) & c ≡ d (mod m) ⇒
⇒ a ± c ≡ b ± d (mod m) & ac ≡ bd (mod m)
Таким образом, множество Z m Z является коммутативным
кольцом, т.е. вычет по одному и тому же модулю можно складывать,
вычитать и перемножать, и эти операции удовлетворяют обычным
аксиомам ассоциативности, коммутативности, существования
противоположного элемента и т.д.
Рассмотрим условия существования противоположного элемента.

Теорема 3. Для каждого целого a существует единственное целое


число b , такое что произведение ab сравнимо с 1 по модулю m , тогда и
только тогда, когда a и m − взаимно просты:
∀a ∈ Z : ∃!b ∈ Z : a ⋅ b ≡ 1(mod m) ⇔ НОД (a, m) = 1 .

Схема доказательства: Для доказательства теоремы


необходимо представить НОД (a, m) в виде a ⋅ u + v ⋅ m и воспользоваться
теоремой 2 и свойствами сравнений [15].

Следствие: Если НОД (a, m) = 1 то обратный элемент b (из условия


ab ≡ 1(mod m) ) может быть найден за время O(log 3 m) двоичных операций.

Замечание: Если НОД (a, m) = 1 , то под отрицательной степенью


a − n (mod m) подразумевается n -я степень обратного класса вычетов, т.е.
класс вычетов, содержащий n -ю степень любого целого числа b , такого,
что ab ≡ 1(mod m) .

1.2.2. Использование свойств сравнений для решения теоретико-


числовых задач криптологии

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


следующий важный результат [8,9].

Теорема 4 (малая теорема Ферма). Пусть p − простое число. Любое


целое число a удовлетворяет сравнению a p ≡ a (mod p ) , и любое целое
число a , не делящееся на p , удовлетворяет сравнению a p −1 ≡ 1(mod p ) .

Из условий данной теоремы несложно получить следствие.

Следствие. Если a не делится на p и если n ≡ m(mod( p − 1)) , то


a n ≡ a m (mod p ) .

Пример 6. Найти последнюю цифру в записи числа 21000000 в системе


счисления по основанию 7.
Решение: Пусть p = 7 , т.к. 1000000 mod( p − 1) = 1000000mod 6 = 4 , то
21000000 ≡ 24 ≡ 16 ≡ 2(mod 7) . Следовательно, последняя цифра равна 2.
Не менее важное свойство сравнений отражает т.н. китайская
теорема об остатках.

Теорема 5 (китайская теорема об остатках). Пусть требуется


решить систему сравнений по различным модулям:
x ≡ a1 (mod m1 );
x ≡ a2 (mod m2 );
L
x ≡ ar (mod mr ).
причем любые два модуля сравнения взаимно просты относительно друг
друга: ∀i, j ∈ [1, r ]: НОД (mi , m j ) . Тогда эта система разрешима, и любые
r
два решения сравнимы по модулю M = ∏ mk .
k =1
Данная теорема позволяет сформулировать следующее важное
следствие.

Следствие. Функция Эйлера обладает свойством


«мультипликативности», т.е.
∀m, n ∈ N | НОД (m, n) = 1: ϕ (m ⋅ n) = ϕ (m) ⋅ ϕ (n) .

Теорема 6. Пусть известно, что n есть произведение двух простых


чисел p и q . Тогда зная эти числа p и q , можно найти ϕ (n) за время
порядка O(log n) и обратно, зная n и ϕ (n) , можно найти p и q за время
порядка O(log 3 n) .

Доказательство. Утверждение очевидно, если n − четно, т.к. в этом


n n
случае n = 2 , q = и ϕ (n) = − 1; поэтому рассмотрим случай когда n −
2 2
нечетно. В силу мультипликативности функции Эйлера для n = pq
получаем ϕ (n) = ( p − 1)(q − 1) = n + 1 − ( p + q ) . Таким образом, значение
ϕ (n) может быть получено с помощью одного сложения и одного
вычитания.
Обратно, предположим, что известны n и ϕ (n) , и требуется найти p
и q . Для неизвестных величин p и q известны их произведение n и
сумма p + q = n + 1 − ϕ (n) . Обозначим последнее выражение через 2b
(отметим, p + q — число четное). Но два числа, произведение которых
равно n , а сумма 2b , по теореме Виета должны быть корнями квадратного
уравнения z 2 + 2bz + n = 0 . Итак p и q равно b ± b 2 − n . Наибольшее
время при вычислении занимает процедура извлечения квадратного корня:
на нее требуется O(log 3 n) двоичных операций [9].

Рассмотрим обобщение малой теоремы Ферма, сделанное Эйлером.

Теорема 7 (теорема Эйлера).


∀a, m ∈ N | НОД (a, m) = 1: aϕ ( m ) ≡ 1(mod m) .

Схема доказательства. Для начала необходимо доказать


справедливость утверждения для случая, когда m есть степень простого
числа: m = pα . Выполняя индукцию по α , при α = 1 , получаем малую
терему Ферма. Рассматривая биномиальные коэффициенты в выражении
(1 + x) p , получаем доказательство частного случая.
В дальнейшем, используя мультипликативность функции Эйлера и
тот факт, что степени различных простых чисел взаимно просты,
доказывается и общий случай [12-14].

Следствие. Если НОД (a, m) = 1 и n′ — наименьший


неотрицательный вычет n по модулю ϕ (m) , то a n ≡ a n′ (mod m) .

Пример 7. Вычислить 21000000 (mod 77) .


Решение:
a = 2;
n = 1000000;
m = 7;
ϕ (m) = 6;
n′ = n mod(ϕ (m)) = 1000000mod 6 = 4;
21000000 ≡ 24 ≡ 16 ≡ 2(mod 7).

{ Расширенный алгоритм Евклида }

Упражнения для самоконтроля

1. Решить систему сравнений:


x ≡ 2(mod3);
x ≡ 3(mod 5);
x ≡ 4(mod11);
x ≡ 5(mod16).
2. Найти последнюю цифру в записи числа 21453 в системе счисления
по основанию 11.
3. Вычислить 153149 mod11.
4. Вычислить 11348111 (mod17) .

РАЗДЕЛ 2. КРИПТОГРАФИЧЕСКИЕ СИСТЕМЫ С ОТКРЫТЫМ


КЛЮЧОМ

2.1. Основные сведения о криптографических системах

Основной задачей криптографии является обеспечение


конфиденциальности в отношении некоторых сведений. Для ее решения
применяются два основных типа криптографических систем:
• Криптосистемы с секретным ключом (симметричные
криптосистемы) это алгоритмы, в которых ключ шифрования полностью
определяется ключом дешифрования и наоборот, ключ дешифрования
полностью определяется ключом шифрования. Большинство применяемых
симметричных алгоритмов использует тождественные ключи шифрования
и дешифрования. Таким образом, шифрование и дешифрование с
помощью симметричных криптосистем может быть представлено в виде:
E K (M ) = C ,
D K (C ) = M ,
где K - секретный ключ, применяющийся для шифрования и
дешифрования данных;
M - открытый текст, в отношении которого требуется обеспечить
конфиденциальность;
C - шифртекст, полученный при шифровании открытого текста;
E K - алгоритм шифрования с ключом K ;
D K - алгоритм дешифрования с ключом K .
Очевидно, что защита, обеспечиваемая симметричными
криптосистемами определяется секретностью ключа; компрометация1
ключа, как правило, означает вскрытие шифра и разглашение открытого
текста [1].
Симметричные криптографические системы разделяют на две
основные группы:
a) потоковые алгоритмы, обрабатывающие открытый текст и
шифртекст побитно;
b) блочные алгоритмы, обрабатывающие открытый текст и
шифртекст группами битов (блоками).

1
Здесь и далее под компрометацией ключа будем понимать получение информации о
ключе (или его составных частях) кем-либо из незаконных пользователей.
Стойкость симметричных криптографических систем определяется,
как правило, в рамках теоретико-информационного подхода, на основании
предположения о принципиальной невозможности получения
противником никакой информации о строении криптосистемы или ее
элементов.
Исторически симметричные шифры появились задолго до
разработки основных положений теории асимметричных криптосистем.
Все известные из истории шифры относятся к симметричным (шифр
Цезаря, шифр «Сцитала» и т.д.). К числу симметричных криптосистем
относятся т.н. «одноразовые блокноты Вернама», изученные в работах
известного американского математика Клода Шеннона (Cloud Shannon)
[2,3]. К настоящему времени активно используются такие широко
распространенные симметричные криптосистемы как: DES (блочный
шифр, являющийся стандартом шифрования в США), ГОСТ 28147-89
(блочный шифр, являющийся стандартом РФ), A5 (потоковый шифр,
использующийся в системах мобильной связи стандарта GSM) и т.д.

• Криптосистемы с открытым ключом (асимметричные


криптосистемы) это алгоритмы, в которых ключи шифрования и
дешифрования различны. Более того, ключ дешифрования не может быть
вычислен из ключа шифрования. Такие алгоритмы называют
криптосистемами с открытым ключом, так как любой абонент, зная
открытый ключ, может зашифровать сообщение, однако расшифровать
шифртекст сможет только абонент, владеющий секретным ключом.
Таким образом, шифрование и дешифрование с использованием
асимметричной криптосистемы может быть представлено в виде:
E K (M ) = C ,
1

D K (C ) = M ,
2

где K 1 - открытый ключ, применяющийся для шифрования данных;


K 2 - секретный ключ, применяющийся для дешифрования данных;
M - открытый текст, в отношении которого требуется обеспечить
конфиденциальность;
C - шифртекст, полученный при шифровании открытого текста;
E K - алгоритм шифрования с ключом K 1 ;
1

D K - алгоритм дешифрования с ключом K 2 .


2

Стойкость асимметричных криптосистем определяется как правило


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

2
Под криптоанализом следует понимать действия противника по восстановлению
зашифрованного сообщения без доступа к ключу.
задачи криптоанализа требовал практически неосуществимого объема
вычислений, либо срабатывал с пренебрежимо малой вероятностью.
Основоположниками криптографии с открытым ключом являются
американские математики Уитфрид Диффи (W. Diffie) и Мартин Хеллман
(M. Hellman), опубликовавшие в 1976 г. работу «Новые направления в
криптографии» [4], в которой впервые были систематически изложены
математические основы криптографии с открытым ключом.
Данная работа послужила толчком к развертыванию дальнейших
исследований в области разработки асимметричных криптосистем, что, в
свою очередь, привело к широкому распространению вновь разработанных
алгоритмов, таких как RSA (асимметричный алгоритм, применяющийся
для шифрования данных и подписания сообщений), Эль-Гамаль
(асимметричный алгоритм, применяющийся для шифрования данных и
подписания сообщений), DSA (алгоритм цифровой подписи, принятый в
качестве стандарта в США), ГОСТ Р 34.10-94 (алгоритм цифровой
подписи, принятый в качестве стандарта в РФ) и т.д.
Сравнение возможностей симметричных и асимметричных
криптосистем позволяет сделать следующие замечания:
1. Как правило, симметричные системы обрабатывают большие
объемы информации быстрее асимметричных, так как основными
операциями по обработке данных в них являются битовые операции
сдвига, сложения и т.д., эффективно реализуемые в виде
электронных логических систем [1].
2. Ряд криптографических задач (таких как выработка общего ключа,
цифровая подпись) может быть решен исключительно методами
асимметричной криптографии [1].
3. Использование теоретико-сложностного подхода для обоснования
стойкости асимметричных криптосистем позволяет количественно
оценить стойкость в виде функции от ряда параметров (длина
входного слова, вычислительные мощности, доступные противнику
и т.д.). Использование теоретико-вероятностного подхода для
обоснования стойкости симметричных криптосистем позволяет
оценить стойкость в терминах теории вероятностей и предполагает
абсолютную пассивность противника (на практике являющуюся
недостижимой) [1,3].
С учетом данных замечаний, можно сделать вывод о
преимущественных шансах асимметричных криптографических систем на
долгосрочную перспективу.
В дальнейшем будут рассмотрены основные типы криптосистем с
открытым ключом, широко распространенные на практике.
2.2. Шифрование с использованием криптосистемы RSA

Одним из первых универсальных (допускающих использование, как


для шифрования, так и для цифровой подписи) асимметричных алгоритмов
стал разработанный в 1978 г. алгоритм RSA, названный по имени
разработчиков – ученых Массачусетского технологического института
Рона Ривеста (Ron Rivest), Ади Шамира (Adi Shamir) и Леонарда Адлемана
(Leonard Adleman)[5].
Стойкость криптосистемы RSA основывается на сложности задачи
факторизации (разложения натурального числа на простые сомножители).
Многочисленные попытки криптоанализа, предпринятые с 1978 г.,
показали корреляцию эмпирических оценок стойкости с оценками,
полученными априорно. Данный факт подтверждал предположение о
невозможности разработки полиномиального по времени алгоритма
факторизации натуральных чисел. Однако в 2002-2003 гг. индийским
математикам М. Агравалю (Manindra Agrawal), Н. Каялю (Neeraj Kayal) и
Н. Саксена (Nitin Saxena) из Индийского технологического института в
Карпуре удалось показать существование полиномиального по времени
алгоритма факторизации [6]. Несмотря на невысокие временные
характеристики алгоритма (не ставящие в обозримом будущем под
сомнение стойкость RSA), сам факт его разработки говорит о возможности
создания других, более эффективных алгоритмов, способных эффективно
решать задачи криптоанализа систем, основанных на сложности задачи
факторизации.
Для генерации используемых в алгоритме ключей применяют два
больших простых числа p и q . Для максимальной безопасности p и q
должны иметь сопоставимую разрядность.
На их основе рассчитывается элемент n , такой, что
n = p⋅q . (2.1)
Затем случайным образом выбирается элемент e , такой, что e и ϕ (n)
являются взаимно простыми числами, т.е.
НОД (e, ϕ (n)) = 1 . (2.2)
Замечание 1: Здесь и далее ϕ (n) - есть функция Эйлера, определяемая из
выражения
ϕ (n) = {0 ≤ b < n НОД (b, n ) = 1}
def

Замечание 2: Для вычисления ϕ (n) в условиях схемы RSA можно


использовать следующее соотношение, справедливость которого очевидна
из определения функции Эйлера
ϕ (n) = ( p − 1) ⋅ (q − 1) . (2.3)
Несложно убедиться, что данный метод вычисления имеет
сложность порядка O(log(n) ) двоичных операций[7].
Замечание 3: Скорость работы алгоритма шифрования RSA существенным
образом зависит от выбора e . На практике наиболее используемыми
вариантами являются значения 3 , 17 , 65537 . Каждое из этих чисел
содержит в двоичном представлении только две единицы, поэтому
алгоритм повторного возведения в квадрат позволяет выполнить
шифрование достаточно быстро[1].

Пара чисел (e, n) будет, таким образом являться открытым ключом


алгоритма.
Далее с помощью расширенного алгоритма Евклида [1,3]
определяется закрытый ключ d , такой что:
ed ≡ 1(mod ϕ (n) ) . (2.4)
Другими словами
d = e −1 (mod ϕ (n) ) . (2.5)
Важно отметить, что d и n также являются взаимно простыми.
Числа p и q в дальнейшем не используются, однако они должны быть
сохранены в секрете, т.к. их разглашение будет означать вскрытие
криптосистемы.
При шифровании сообщение M разбивается на блоки
фиксированной длины (меньшей, чем n ). Шифрпреобразование
полученных блоков M i выполняется согласно выражению
C i = M ie mod n . (2.6)
При расшифровке сообщения для каждого зашифрованного блока C i
вычисляется
M i = C id mod n . (2.7)
Для доказательства применимости данного алгоритма достаточно
подробно рассмотреть свойства функции Эйлера [4,8].
Стойкость RSA существенным образом зависит от выбора p и q .
Как правило, практическую ценность имеет шифрование с ключами длины
порядка сотен бит. Другим важным условием стойкости является
требование, чтобы значение НОД ( p − 1, q − 1) было по возможности
наименьшим [1,7].
В литературе описаны многочисленные модификации схемы RSA,
отличающиеся повышенным быстродействием, большей стойкостью и
т.д.[1,7,8].

2.3. Цифровая подпись в схеме Эль-Гамаль

В отличие от криптосистемы RSA, построенной на сложности задачи


факторизации больших чисел, профессор Стэнфордского университета
(США) Тахер Эль-Гамаль (Taher ElGamal) разработал в 1985 г.
асимметричную криптосистему, основанную на сложности задачи
дискретного логарифмирования [9].
Данная криптосистема (названная его именем), так же как и RSA,
является универсальной, т.е. может использоваться как для шифрования
данных, так и для цифровой подписи сообщений.
Для генерации пары ключей выбирается простое число p и два
случайных числа g и x , меньших p :
g < p, (3.1)
x< p. (3.2)
Затем вычисляется значение y из выражения
y = g x mod p . (3.3)
Открытым ключом является тройка чисел ( y, g , p) , причем g и p
можно сделать общими для группы пользователей. Секретным ключом
является x .
Для подписания сообщения M , сначала выбирается случайное число
k , такое что
НОД (k , p − 1) = 1 . (3.4)
Значение k в дальнейшем сохраняется в секрете. Затем вычисляется
значение a из выражения
a = g k mod p (3.5)
Далее с помощью расширенного метода Евклида для нахождения b
решается следующее уравнение
M = ( xa + kb) mod( p − 1) . (3.6)
Подписью является пара чисел (a, b) . Для проверки подписи
необходимо проверить справедливость равенства:
y a ⋅ a b mod p = g M mod p . (3.7)
Несложно убедиться, что для каждой процедуры подписания
необходимо новое значение k , выбранное случайным образом.
Компрометация значения k дает возможность по перехваченным
значениям M , a и b восстановить за полиномиальное время значение
секретного ключа x [1].
Известны модификации данного алгоритма для доказательства
идентичности, аутентификации и обмена ключами [1].

2.4. Обмен информацией с использованием протокола Шамира

Использование асимметричных криптосистем позволяет успешно


решать новые, неизвестные ранее криптографические задачи. Одной из
таких задач является задача обмена секретной информацией (например,
секретными ключами для дальнейшего использования симметричных
криптосистем) по общедоступному каналу связи.
Данная задача может быть решена с использованием т.н.
«трехпроходного протокола», разработанного в 1991 г. одним из
разработчиков RSA Ади Шамиром [1].
Протокол Шамира позволяет абонентам безопасно обмениваться
информацией, не используя предварительного обмена ни секретными, ни
открытыми ключами.
Протокол подразумевает использование коммутативного
симметричного шифра, для которого выполняется условие
Eα (E β (P )) = E β (Eα (P ))
Здесь α и β - секретные ключи абонентов A и B соответственно.
Пусть требуется передать сообщение M от абонента A абоненту B .
Тогда абонент A использует следующий протокол:

Шаг 1. Абонент A вычисляет значение C1 по формуле 4.1 и пересылает его


абоненту B
C 1 = E α (M ) (4.1)
Шаг 2. Абонент B , получив значение C1 , вычисляет значение C 2 из
выражения 4.2 и посылает его абоненту A .
C 2 = E β (C1 ) = E β (Eα (M )) (4.2)
Шаг 3. Абонент A , получив значение C 2 , вычисляет значение C 3 из
выражения 4.3 и посылает его абоненту B .
C 3 = Dα (C 2 ) = Dα (E β (Eα (M ))) = Dα (Eα (E β (M ))) = E (M )
β
(4.3)
Шаг 4. Абонент B , получив значение C 3 , дешифрует его своим ключом,
получая M :
M = D β (C 3 ) = D β (E β (M )) . (4.4)

Практическая реализация данного протокола требует выбора


алгоритмов симметричной криптосистемы для использования в качестве E
и D.
Широкоизвестный шифр «одноразовые блокноты Вернама» обладает
свойством коммутативности и является абсолютно стойким против
действий пассивного противника [2,3]. Однако в рамках данной схемы
криптосистема «одноразовые блокноты Вернама» не применима в связи с
транзитивностью операции XOR (исключающее ИЛИ) [1]. Ади
Шамир разработал и описал криптосистему, схожую с RSA, обладающую
свойством коммутативности и применимую в рамках данного протокола
[1].
Пусть p - большое простое число, такое, что значение p − 1 имеет
большой простой множитель. Тогда в качестве секретного ключа
выбирается число e , взаимно простое с p − 1 , т.е. удовлетворяющее
условию
НОД (e, p − 1) = 1 . (4.5)
С помощью расширенного метода Евклида вычисляется значение d
из условия
d ⋅ e ≡ 1(mod( p − 1)) . (4.6)
Или, иначе говоря
d = e −1 ( mod ( p − 1) ) . (4.7)
Для шифрования сообщения M используется выражение
C = M e mod p . (4.8)
Для дешифрования шифртекста используется выражение
M = C d mod p . (4.9)
Стойкость данной криптосистемы основывается на сложности задачи
дискретного логарифмирования.
Помимо описанной криптосистемы в данном протоколе могут быть
использованы другие симметричные криптосистемы, например
криптосистема Вильямса [1].
РАЗДЕЛ 3. Контрольные задания

3.1. Программа работы

Целью данной работы является: изучение принципов работы


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

3.1.1. Определить Ваш вариант, исходя из следующего правила: номер


варианта равен остатку от целочисленного деления номера Вашей зачетной
книжки на 50.

3.1.2. Из таблицы, приведенной в п. 4.1 выбрать соответствующие Вашему


варианту значения p , q и M . Используя полученные данные, выполнить
процедуры шифрования и дешифрования в рамках схемы RSA (см. п. 3.1).
Промежуточные данные и результаты занести в отчет.

3.1.3. Из таблицы, приведенной в п. 4.2 выбрать соответствующие Вашему


варианту значения p и M . Используя полученные данные, выполнить
вычисления в рамках схемы Эль-Гамаль для подписания сообщения M и
проверки подписи (см. п. 3.2). Промежуточные данные и результаты занести
в отчет.

3.1.4. Из таблицы, приведенной в п.4.3 выбрать соответствующие Вашему


варианту значения p A , p B и M . Выполнить вычисления в рамках
протокола Шамира для передачи сообщения M от абонента A абоненту B
(см. п. 3.3). Использовать симметричную криптосистему предложенную
Шамиром. Промежуточные данные и результаты занести в отчет.

3.2. ПРИМЕРЫ ВЫПОЛНЕНИЯ КОНТРОЛЬНЫХ ЗАДАНИЙ

3.2.1. Шифрование с использованием криптосистемы RSA

Дано: p = 35279 , q = 34361 , m =" ROSTOV " .

3.2.1.1 Генерация ключей


Вычислим n из выражения (2.1)
n = p ⋅ q = 35279 ⋅ 34361 = 1212221719 .
Используя выражение (2.3) найдем ϕ (n)
ϕ (n ) = ( p − 1) ⋅ (q − 1) = 1212152080 .
Выберем значение e , исходя из условий замечания 3 и (2.2):
e = 65537 .
Определим значение d из выражения (2.4) и (2.5).
d = e −1 (mod ϕ (n )) = 65537 −1 (mod 1212152080) = 942299953 .

Открытый ключ: (e, n) = (65537,1212221719 ) .


Секретный ключ: d = 942299953 .

3.2.1.2 Преобразование открытого текста в числовой эквивалент


Выполним преобразование открытого текста в числовой эквивалент,
поставив в соответствие латинскому алфавиту систему счисления по
основанию 26 и выполнив перевод значения открытого текста из данной
системы счисления в десятичную систему счисления:
M =" ROSTOV " = 17 ⋅ 26 5 + 14 ⋅ 26 4 + 18 ⋅ 26 3 + 19 ⋅ 26 2 + 14 ⋅ 261 + 21⋅ 26 0 = 208710653
.

3.2.1.3 Шифрование
Используя выражение (2.6) выполним шифрпреобразование:
C = M e (mod n ) = 208710653 65537 (mod 1212221719) = 301941131 .

3.2.1.4 Преобразование шифртекста в символьное представление


Преобразуем полученный числовой эквивалент шифртекста,
используя процедуру, обратную изложенной в п. 3.1.2:
C = 301941131 = 25 ⋅ 26 5 + 10 ⋅ 26 4 + 19 ⋅ 26 3 + 4 ⋅ 26 2 + 12 ⋅ 261 + 11⋅ 26 0 =" ZKTEML" .
Шифртекст: C =" ZKTEML"

3.2.1.5. Преобразование символьного представления шифртекста в


числовой эквивалент
Используя процедуру, аналогичную изложенной в п.3.1.2, выполним
преобразование шифртекста в числовую форму:
C =" ZKTEML" = 25 ⋅ 26 5 + 10 ⋅ 26 4 + 19 ⋅ 26 3 + 4 ⋅ 26 2 + 12 ⋅ 261 + 11⋅ 26 0 = 301941131 .

3.2.1.6. Дешифрование
Выполним дешифрование согласно выражению (2.7):
M = C d ( mod n ) = 301941131942299953 ( mod1212221719 ) = 208710653 .

3.2.1.7. Восстановление символьного представления открытого текста


Преобразуем полученный числовой эквивалент открытого текста,
используя процедуру, обратную изложенной в п. 3.1.2:
M = 208710653 = 17 ⋅ 26 5 + 14 ⋅ 26 4 + 18 ⋅ 26 3 + 19 ⋅ 26 2 + 14 ⋅ 261 + 21⋅ 26 0 =" ROSTOV "
.
Расшифрованный открытый текст: M =" ROSTOV "
3.2.2. Цифровая подпись в схеме Эль – Гамаль

Дано: p = 34351 , M =" DON " .

3.2.2.1. Генерация ключей


Выберем значения g и x , исходя из условий (3.1) и (3.2):
g = 32351 , x = 32941 .
Вычислим значение y из выражения (3.3).
y = g x mod p = 3235132941 mod 34351 .

Открытый ключ: ( y, g , p) = (24814,32869,34351) .


Закрытый ключ: x = 32941 .

3.2.2.2. Преобразование сообщения в числовой эквивалент


M =" DON " = 3 ⋅ 26 2 + 14 ⋅ 26 + 13 = 2405 .

3.2.2.3. Подписание сообщения


Из условия (3.4) выберем значение k ,
k = 32911 .
Из выражения (3.5) вычислим первую часть цифровой подписи:
a = g k mod p = 32869 32911 mod 34351 = 8941 .
Используя расширенный метод Евклида, найдем из выражения (3.6)
значение второй части цифровой подписи:
M = ( x ⋅ a + k ⋅ b ) mod( p − 1);
2405 = (32941⋅ 8941 + 32911⋅ b) mod 34350;
b = 31084.

Цифровая подпись: (a, b) = (8941,31084) .

3.2.2.4. Проверка цифровой подписи


В выражения (3.7) вычислим раздельно левую и правую части:
y a ⋅ a b mod p = 248148941 ⋅ 894131084 mod 34351 = 22541;
g M mod p = 329412405 mod 34351 = 22541.

Вывод: проверка показала идентичность подписи и сообщения

3.2.3. Обмен информацией с использованием протокола Шамира

Дано: p A = 38177 , p B = 52631 , M =" XYZ" .

3.2.3.1. Генерация ключей


Абонент A:
Выберем значение e A , согласно условию (4.5),
e A = 51407 .
Из выражений (4.6) и (4.7) находим значение d A ,
d A = e A−1 (mod p A − 1) = 51407 −1 (mod(51407 − 1)) = 24335 .
Абонент B:
Выберем значение e B , согласно условию (4.5),
e B = 42239 .
Из выражений (4.6) и (4.7) находим значение d B ,
d B = e B−1 (mod p B − 1) = 42239 −1 (mod(52631 − 1)) = 32229 .
Закрытый ключ абонента A: e A = 51407 .
Закрытый ключ абонента B: e B = 42239 .

3.2.3.2. Преобразование сообщения в числовой эквивалент


Преобразуем передаваемую триграмму “XYZ” в числовой
эквивалент для последующей обработки:
M =" XYZ " = 23 ⋅ 26 2 + 24 ⋅ 261 + 25 ⋅ 26 0 = 16197 .

3.2.3.3. Трехпроходный алгоритм Шамира


Используя обозначения, используемые в протоколе Шамира, введем
значения α и β :
α = e A = 51407 ;
β = e B = 42239 .

Выполним 1-й шаг алгоритма (4.1).


C1 = Eα ( M ) = M e A (mod p A ) = 16197 51407 (mod 38177) = 30944 .
Выполним 2-й шаг алгоритма (4.2).
C 2 = E β (C1 ) = C1eB (mod p B ) = 30944 42239 (mod 52631) = 34848 .
Выполним 3-й шаг алгоритма (4.3).
C 3 = Dα (C 2 ) = C 2d A (mod p A ) = 34848 24335 (mod 28177) = 14648 .
Вычислим передаваемое абоненту B значение из выражения (4.4):
M = D β (C 3 ) = C 3d (mod p B ) = 14648 34229 (mod 52631) = 16197 .
B

3.2.3.4. Преобразование полученного значения к текстовому формату


M = 216197 = 3 ⋅ 26 2 + 24 ⋅ 261 + 25 ⋅ 26 0 =" XYZ " .

Полученное значение: “XYZ”

3.3. ВАРИАНТЫ КОНТРОЛЬНЫХ ЗАДАНИЙ

3.3.1. Шифрование с использованием криптосистемы RSA


Таблица 1
№ варианта p q M
I II III IV
0 32911 38189 APACHE
1 38189 60127 ARCSIN
2 60127 46619 CAESAR
3 46619 41113 CIPHER
4 41113 43711 CRYPTO
5 43711 55439 DIFFIE
6 55239 65147 EUCLID
7 65147 41131 EUROPE
8 41131 55799 FERMAT
9 55799 65141 GEPARD
10 65141 36209 GOOGLE
11 36209 54419 LEGION
12 54419 59221 LEMANN
13 59221 33829 LESSON
14 33829 41611 MOBILE
15 41611 41381 MOSAIC
16 41381 48079 MOSCOW
17 48079 55487 NATIVE
18 55487 63853 NEPTUN
19 63853 42181 NEVADA
20 42181 32911 NORMAN
21 32911 53441 OXYGEN
22 53411 33247 PARSER
23 33247 61613 PLUTON
24 61613 57143 PORTAL
25 57143 59957 PRIMUS
26 59957 36563 PRINCE
27 36563 57731 PUBLIC
28 57731 35251 RANDOM
29 35251 47947 REDHAT
30 47947 59693 REVERS
31 59693 38699 RIVEST
32 38699 60589 RUBINE
33 60589 61717 RUSSIA
34 61717 49739 SAFETY
35 49739 53693 SATURN
36 53693 63781 SECURE
37 63781 61673 SERVER
38 61673 56131 SHAMIR
Таблица 1 (продолжение)
39 37799 50287 STUDIO
40 50287 43991 SURFER
41 43991 61667 TELNET
42 61667 52733 VACUUM
43 52733 60913 VELVET
44 60913 45763 VENERA
I II III IV
45 45763 50383 VOLUME
46 50383 34061 WANTED
47 34061 60719 WINDOW
48 60719 63367 WORKER
49 63367 32911 XERXES

3.3.2. Цифровая подпись в схеме Эль-Гамаль


Таблица 2
№ варианта p M
I II III
0 45989 ART
1 58109 ASP
2 53101 BMW
3 36973 BNC
4 41959 CGI
5 47501 CPP
6 49559 CRT
7 42467 CTC
8 54841 DES
9 35149 DNS
10 53653 DOC
11 34763 DSS
12 61861 EJB
13 40459 FTP
14 45817 GAZ
15 49207 HTM
16 57901 IBM
17 50867 IDE
18 47381 ISO
19 48017 JSP
20 60899 KDC
21 51361 LAN
22 58679 LCD
23 64109 MSN
24 38281 NPI
Таблица 2 (продолжение)
I II III
25 42019 NTV
26 40283 ORB
27 54403 ORT
28 63377 OSI
29 36637 PAS
30 60821 PHP
31 41507 RMI
32 64373 RSA
33 63901 RTR
34 37619 RUS
35 43579 SAP
36 64781 SAS
37 47653 SDK
38 64237 SOS
39 59263 SUN
40 52627 TCP
41 63589 TFT
42 63593 TNT
43 46643 UAZ
44 56239 URI
45 38723 URL
46 59771 UTP
47 54449 VAZ
48 49627 WEB
49 45943 WWW

3.3.3. Обмен информацией с использованием протокола Шамира


Таблица 3
№ варианта pA pB M
I II III IV
0 39097 45641 ADV
1 45641 36497 AKM
2 36497 62423 ALT
3 62423 58169 APP
4 58169 64109 ASP
5 64109 51413 AWT
6 51413 63929 BAT
7 63929 57719 CHR
8 57719 34231 COS
9 34231 63131 CSS
10 63131 45833 DBF
Таблица 3 (продолжение)
I II III IV
11 45833 61153 DIV
12 61153 32887 DOS
13 32887 57943 DSP
14 57943 54323 EXP
15 54323 47491 FAT
16 47491 35291 FOR
17 35291 62219 GCD
18 62219 34259 GPS
19 34259 35059 GSM
20 35059 64871 INT
21 64871 40637 JDK
22 40637 55163 LBR
23 55163 63857 LOG
24 63857 43787 MDB
25 43787 45319 MID
26 45319 42463 MOD
27 42463 53017 MPI
28 53017 55021 MVD
29 55021 56663 MVS
30 56663 52183 NFS
31 52183 58111 NMT
32 58111 53527 ORD
33 53527 58391 PPT
34 58391 34693 QOS
35 34693 63929 RMI
36 63929 43399 RND
37 43399 38189 RPC
38 38189 35159 RUR
39 35159 59957 SIN
40 59957 40583 SKS
41 40583 46153 SMS
42 46153 43613 SSL
43 43613 38713 TAN
44 38713 44207 TBL
45 44207 47659 TDK
46 47659 48239 UDP
47 48239 41117 VMS
48 41117 43283 XML
49 43283 54277 XSL
Библиографический список

1. Шнайер Б. Прикладная криптография: Протоколы, алгоритмы,


исходные тексты на языке Си. – М.: Изд-во Триумф, 2002. – 816 с.
2. Введение в криптографию / Под общей ред. В.В. Ященко. – СПб.:
Питер, 2001. – 288 с.
3. Шеннон К. Работы по теории информации и кибернетике. – М.:
Физматгиз, 1963. – 456 с.
4. W. Diffie and M. Hellman, “New Directions in Cryptography”, IEEE
Transactions on Information Theory, v. IT-22, n. 6, Nov 1976. Pp. 644-654.
5. R.L. Rivest, A. Shamir and L.M. Adleman, “On Digital Signatures and
Public Key Cryptosystems”, MIT Laboratory for Computer Science, Technical
Report, MIT/LCS/TR-212, Jan 1979.
6. T. ElGamal, “A Public Key Cryptosystem and Signature Scheme Based
on Discrete Logarithms”, Advanced in Cryptology: Proceedings of
CRYPTO’84, Springer-Verlag, 1985, Pp. 10-18.
7. Иванченко А.Н., Зайцев Р.Г. Криптографические системы с
открытым ключом: Методические указания и контрольные задания по
дисциплине «Методы и средства защиты компьютерной информации» /
Юж. – Рос. гос. техн. ун-т. – Новочеркасск: ЮРГТУ, 2004. – 20с.
8. Виноградов И.М. Основы теории чисел. – М.: Наука, 1981. – 176 с.
9. Коблиц Н. Курс теории чисел и криптографии. – М.: Научное изд-во
ТВП, 2001. – 254 с.
10. Нечаев В.И. Элементы криптографии (Основы теории защиты
информации): Учеб. пособие. – М.: Высшая школа, 1999. – 109 с.
11. Черемушкин А.В. Лекции по арифметическим алгоритмам в
криптографии. – М.: МЦНМО, 2002. – 104 с.
12. Василенко О.Н. Теоретико-числовые алгоритмы в криптографии. –
М.: МЦНМО, 2003. – 328 с.
13. Коутинхо С. Введение в теорию чисел. Алгоритм RSA. – М.:
Постмаркет, 2001. – 191с.
14. Фомичев В.М. Дискретная математика и криптология. Курс лекций.
– М.: Диалог-МИФИ, 2003 г. – 400 с.
15. Кнут Д. Искусство программирования. Т. 2. Получисленные
алгоритмы. − М.: Вильямс, 2000. – 863 с.
16 Земор Ж. Курс Криптографии.-М.-Ижевск: НИЦ «Регулярная и
хаотичная динамика», Институт компьютерных исследований, 2006.-256с.
Учебно-практическое издание

Александр Николаевич Иванченко,


Роман Геннадиевич Зайцев,
Илья Владимирович Мальцев

Математические основы и алгоритмы


криптографии с открытым ключом

Отв. за выпуск ______________

Подписано в печать ___________ г.


Формат 60 × 84 1 . Бумага офсетная. Печать оперативная.
16
Печ. л. _____. Уч.-изд. л. _________. Тираж 100 экз. Заказ _____.

Южно-Российский государственный технический университет


Центр оперативной полиграфии
Адрес университета и центра:
346428, г. Новочеркасск, ул. Просвещения, 132.

Вам также может понравиться