- •Введение
- •Введение в основы защиты информации
- •1.1. Основные направления защиты информации
- •1.2. Информация как предмет защиты
- •1.3. Основные угрозы компьютерной безопасности
- •1.5. Способы мошенничества в информационных системах
- •2. Классификация методов и средств защиты информации
- •2.1. Методы защиты информации
- •2.2. Классификация средств защиты информации
- •2.3. Организационные средства защиты информации
- •2.4. Законодательные средства защиты информации
- •2.5. Физические средства защиты данных
- •2.6. Аппаратные и программные средства защиты информации
- •Программно-аппаратные средства защиты
- •2.7. Требования к комплексным системам защиты информации
- •Стандарты безопасности кс
- •3. Криптографические методы и средства защиты данных
- •3.1. Общие определения
- •3.2. Общие сведения о криптографических системах
- •3.3. Методы шифрования
- •Алфавиты исходного и шифротекста
- •Шифрование с помощью ключа «Ключ»
- •Шифрование с автоключом при использовании открытого текста
- •Шифрования с автоключом при использовании
- •Используем следующую замену:
- •4. Современные симметричные и асимметричные криптосистемы
- •4.1. Стандарт шифрования данных (des)
- •Функция расширения е
- •4.2. Основные режимы работы алгоритма des
- •4.3. Криптографическая система гост 28147-89
- •4. Последовательность битов блока открытого текста
- •С обратной связью
- •В результате получают блоки открытых данных
- •4.4. Асимметричные криптографические системы
- •4.5. Криптосистема шифрования данных rsа
- •Получает
- •Получает
- •4.6. Криптосистемы Диффи-Хеллмана и Эль-Гамаля
- •4.7. Электронная цифровая подпись и ее применение
- •5. Защита информации в ос
- •5.1. Дискреционное управление доступом к объектам компьютерных систем
- •5.2. Мандатное управление доступом к объектам компьютерных систем
- •5.3. Классы защищенности
- •5.4. Подсистема безопасности защищенных версий
- •5.5. Разграничение доступа субъектов к объектам кс
- •6. Алгоритмы аутентификации пользователей
- •6.1. Способы аутентификации пользователей в кс
- •6.2. Аутентификация пользователей на основе паролей и модели «рукопожатия»
- •6.3. Аутентификация пользователей по их биометрическим характеристикам
- •6.4. Способы аутентификации, основанные на особенностях клавиатурного почерка и росписи мышью пользователей
- •6.5. Двухфакторная аутентификация
- •7.2. Межсетевой экран и политика сетевой безопасности
- •7.3. Основные компоненты межсетевых экранов
- •7.4. Основные схемы сетевой защиты на базе межсетевых экранов
- •7.5. Защищенные сетевые протоколы
- •8.2. Методы обнаружения и удаления вирусов
- •Методы защиты от программных закладок
- •8.4. Принципы построения систем защиты от копирования
- •8.5. Методы защиты от копирования
- •Заключение
- •Библиографический список
- •Оглавление
- •Учебное издание
- •394026 Воронеж, Московский просп., 14
4.5. Криптосистема шифрования данных rsа
Алгоритм RSА предложили в 1978 г. три автора: Р.Райвест (rivest), А.Шамир (Shamir) и А.Адлеман (Adleman). Алгоритм получил свое название по первым буквам фамилий его авторов. Алгоритм RSА стал первым полноценным алгоритмом с открытым ключом, который может работать как в режиме шифрования данных, так и в режиме электронной цифровой подписи.
Надежность алгоритма основывается на трудности факторизации больших чисел и трудности вычисления дискретных логарифмов. .
В криптосистеме RSА открытый ключ Кв, секретный ключ kв, сообщение М и криптограмма С принадлежат множеству целых чисел
ZN = {0, 1,2, ...,N-1}, (4.1)
где N - модуль: N = Р*Q. (4.2)
Здесь Р и Q - случайные большие простые числа. Для обеспечения максимальной безопасности выбирают Р и О равной длины и хранят в секрете.
Множество ZN с операциями сложения и умножения по модулю N образует арифметику по модулю N.
Открытый ключ КВ выбирают случайным образом так, чтобы выполнялись условия:
1 < КВ <= f(N), НОД (КВ, f(N)) = 1, (4.3)
f(N) = (P-1)(Q-1) (4.4)
где f(N) - функция Эйлера.
Функция Эйлера f(N) указывает количество положительных целых чисел в интервале от 1 до N, которые взаимно просты с N.
Второе из указанных выше условий означает, что открытый ключ КВ и функция Эйлера f(N) должны быть взаимно простыми.
Далее, используя расширенный алгоритм Евклида, вычисляют секретный ключ кВ, такой, что
kB * KB =1 (mod f(N)) (4.5)
или
kB = KB-1 (mod (P-1)(Q-1)).
Это можно осуществить, так как получатель В знает пару простых чисел (P, Q) и может легко найти f(N). Заметим, что кВ и N должны быть взаимно простыми.
Открытый ключ КВ используют для шифрования данных, а секретный ключ kВ - для расшифрования.
Преобразование шифрования определяет криптограмму С через пару (открытый ключ КB, сообщение М) в соответствии со следующей формулой:
С = ЕКB(М) = ЕB(М) = МКB(mod N). (4.6)
В качестве алгоритма быстрого вычисления значения С используют ряд последовательных возведений в квадрат целого М и умножений на М с приведением по модулю N.
Обращение функции С = МКB(mod N), т.е. определение значения М по известным значениям C, КB и N, практически не осуществимо при N =2512.
Однако обратную задачу, т.е. задачу расшифрования криптограммы С, можно решить, используя пару (секретный ключ kB, криптограмма С) по следующей формуле:
М = DkB (С) = DB (С) = СkB (mod N). (4.7)
Процесс расшифрования можно записать так:
DB(Ев (М)) = М. (4.8)
Подставляя в (4.8) значения (4.6) и (4.7), получаем:
(МКв )kв = М (mod N)
или
МКвkB = М(mod N). (4.9)
Величина f(N) играет важную роль в теореме Эйлера, которая утверждает, что если НОД (х, N) =1, то
Xf(N) = 1 (mod N),
или в несколько более общей форме
Xnf(N) + 1 = X (mod N) (4.10)
Сопоставляя выражения (4.9) и (4.10), получаем
КB * kB = n * f (N) +1
или, что то же самое,
КB * kB =1 (mod f (N)}.
Именно поэтому для вычисления секретного ключа kB используют соотношение (4.5).
Таким образом, если криптограмму
С = МКв(mod N)
возвести в степень kB, то в результате восстанавливается исходный открытый текст М, так как
(МKB)kB = мКBkB = Мnf(N)+1 = М (modN).
Таким образом, получатель В, который создает криптосистему, защищает два параметра: 1) секретный ключ kB и 2) пару чисел (Р, Q), произведение которых дает значение модуля N. С другой стороны, получатель В открывает значение модуля N и открытый ключ КB.
Противнику известны лишь значения КB и N. Если бы он смог разложить число N на множители Р и Q, то он узнал бы "потайной ход" - тройку чисел {Р, Q, КB}, вычислил значение функции Эйлера
f(N) = (Р-1)(Q-1)
и определил значение секретного ключа kB.
Однако, как уже отмечалось, разложение очень большого N на множители вычислительно не осуществимо (при условии, что длины выбранных Р и Q составляют не менее 100 десятичных знаков).
Процедуры шифрования и расшифрования в криптосистеме RSА.
Предположим, что пользователь А хочет передать пользователю В сообщение в зашифрованном виде, используя криптосистему РSА. В таком случае пользователь А выступает в роли отправителя сообщения, а пользователь В - в роли получателя. Как отмечалось выше, криптосистему РSА должен сформировать получатель сообщения, т.е. пользователь В. Рассмотрим последовательность действий пользователя В и пользователя А.
1. Пользователь В выбирает два произвольных больших простых числа Р и Q.
2. Пользователь В вычисляет значение модуля N = Р * Q.
3. Пользователь В вычисляет функцию Эйлера
f(N) = (Р-1)(Q-1)
и выбирает случайным образом значение открытого ключа КB с учетом выполнения условий:
1<КB <= f(N), НОД(КB, f(N)) = 1.
4. Пользователь В вычисляет значение секретного ключа kB, используя расширенный алгоритм Евклида при решении сравнения
kB = KB-1 (mod f(N)).
5. Пользователь В пересылает пользователю А пару чисел (N, КB) по незащищенному каналу.
Если пользователь А хочет передать пользователю В сообщение М, он выполняет следующие шаги.
1. Пользователь А разбивает исходный открытый текст М на блоки, каждый из которых может быть представлен в виде числа Мi = 0, 1, 2, ..., N-1.
2. Пользователь А шифрует текст, представленный в виде последовательности чисел Мi по формуле Сi = МiКв (mod N) и отправляет криптограмму С1, С2, С3, ..., Сi, ... пользователю В.
3. Пользователь В расшифровывает . принятую криптограмму С1, С2, С3, ..., Сi, ... используя секретный ключ kB, по формуле Мi = Сikв(mod N).
В результате будет получена последовательность чисел Мi, которые представляют собой исходное сообщение М. Чтобы алгоритм RSА имел практическую ценность, необходимо иметь возможность без существенных затрат генерировать большие простые числа, уметь оперативно вычислять значения ключей КB и kB.
Пример. Шифрование сообщения САВ. Для простоты вычислений будут использоваться небольшие числа. На практике применяются очень большие числа.
Действия пользователя В.
Выбирает Р = 3 и Q = 11.
Вычисляет модуль N = Р*Q = 3*11 = 33.
Вычисляет значение функции Эйлера для N = 33:
f(N) = f(33) = (Р -1 )(Q -1) = 2*10 = 20.
Выбирает в качестве открытого ключа КB произвольное число с учетом выполнения условий:
1 < КB <= 20, НОД (KB, 20) = 1.
Пусть КB= 7.
4. Вычисляет значение секретного ключа kB, используя расширенный алгоритм Евклида при решении сравнения
kB = 7-1 (mod 20).
Решение дает kB= 3.
5. Пересылает пользователю А пару чисел (N = 33, КB= 7).
Рассмотрим подробнее, как получено решение kB=3.
Расчет kB осуществляется с использованием частного режима работы расширенного алгоритма Евклида, использующего равенство НОД(КВ, f(N))=1.
1. Введем трехмерные векторы u, v, t
u = {0, 1, f(N)}, v = (1, 0, KB)
2. Если u3=1, то переход к пункту 4; в противном случае, переход к пункту 3.
3. S=[u3 / v3]целая часть; t=u-v*s; u=v; v=t; переход к пункту 2.
Конец, kB = u1.
Процесс поиска решения можно задать таблицей.
S |
U1 |
U2 |
U3 |
V1 |
V2 |
V3 |
|
0 |
1 |
20 |
1 |
0 |
7 |
2 |
1 |
0 |
7 |
-2 |
1 |
6 |
1 |
-2 |
1 |
6 |
3 |
-1 |
1 |
1 |
3 |
-1 |
1 |
|
|
|
В результате решения получаем, что kB=3.
Действия пользователя А.
1. Представляет шифруемое сообщение как последовательность целых чисел в диапазоне 0 ... 32. Пусть буква А представляется как число 1, буква В – как число 2, буква С - как число 3. Тогда сообщение САВ можно представить как последовательность чисел 312, т.е. М1 = 3, М2 = 1, Мз= 2.
2. Шифрует текст, представленный в виде последовательности чисел М1, М2 и М3, используя ключ КB= 7 и N = 33, по формуле
Сi = MiKB (mod N) = Mi7(mod 33).