методы защиты информации. безопасность баз анных. 1. Математические (криптографические) методы защиты информации (ммзи) элемент системы инженернотехнической защиты информации Вопрос История криптографии
Скачать 0.5 Mb.
|
Тема 7. Асимметричные криптографические системы (криптосистемы с открытым ключом) Q для разложения числа N потребуется около 1023 операций, то есть задача практически неразрешима для современных компьютеров.Другой характерный пример однонаправленной функции - это модульная экспонента с фиксированными основанием и модулем. Пусть Аи N - целые числа, такие, что 1 < А < N.Определим множество ZN: ZN={0, 1,2, ... N - 1}. Тогда модульная экспонента с основанием А по модулю N представляет собой функцию: fa.n-:ZN →ZN fa.n {x)= Ax(modN), где X - целое число, 1 < х < N - 1. Существуют эффективные алгоритмы, позволяющие достаточно быстро вычислить значения функции fa.n {x). Если у = Ах, то естественно записать х = logA(y). Поэтому задачу обращения функции fa.n(x) называют задачей нахождения дискретного логарифма, или задачей дискретного логарифмирования. Задача дискретного логарифмирования формулируется следующим образом. Для известных целых A, N, у найти целое число х, такое, что: Aхmod N = у. Алгоритм вычисления дискретного логарифма за приемлемое время пока не найден. Поэтому модульная экспонента считается однонаправленной функцией. По современным оценкам теории чисел, при целых числах А = 2664 и N= 2664 решение задачи дискретного логарифмирования (нахождение показателя степени х для известного у) потребует около 1026 операций, то есть эта задача имеет в 103 раз большую вычислительную сложность, чем задача разложения на множители. При увеличении длины чисел разница в оценках сложности задач возрастает. Следует отметить, что пока не удалось доказать невозможность существования эффективного алгоритма вычисления дискретного логарифма за приемлемое время. Исходя из этого модульная экспонента отнесена к однонаправленным функциям условно, что, однако, не мешает с успехом применять ее на практике. Вторым важным классом функций, используемых при построении криптосистем с открытым ключом, являются так называемые однонаправленные функции с секретом. Дадим неформальное определение такой функции. Функция f:X→Y относится к классу однонаправленных функций с секретом в том случае, если она является однонаправленной и, кроме того, возможно эффективное вычисление обратной функции, если известен секрет (секретное число, строка или другая информация, ассоциируемая с данной функцией). В качестве примера однонаправленной функции с секретом можно указать используемую в криптосистеме RSA модульную экспоненту с фиксированными модулем и показателем степени. Переменное основание модульной экспоненты используется для представления числового значения сообщения М либо криптограммы. Как и в случае симметричных криптографических систем, с помощью асимметричных криптосистем обеспечивается не только конфиденциальность, но также подлинность и целостность передаваемой информации. Подлинность и целостность любого сообщения обеспечивается формированием цифровой подписи этого сообщения и отправкой в зашифрованном виде сообщения вместе с цифровой подписью. Проверка соответствия подписи полученному сообщению после его предварительного расшифровывания представляет собой проверку целостности и подлинности принятого сообщения. Вопрос 2. Криптосистема RSA. Криптоалгоритм RSA предложили в 1978 году три автора: Р. Райвест (Rivest), А. Шамир (Shamir) и А. Адлеман (Adleman). Алгоритм получил свое название по первым буквам фамилий его авторов. Алгоритм RSA стал первым алгоритмом с открытым ключом, который может работать в режиме как шифрования данных, так и электронной цифровой подписи. Надежность алгоритма RSA основывается на трудности факторизации больших чисел и сложности вычисления дискретных логарифмов в конечном поле. В алгоритме RSA открытый ключ КВ, секретный ключ kB, сообщение Ми криптограмма С принадлежат множеству целых чисел: ZN ={0, 1,2, ...,N- 1}, где N - модуль: N = PxQ. Здесь Р и Q - случайные большие простые числа. Для обеспечения максимальной безопасности выбирают Р и Qравной длины и хранят в секрете. Множество ZNс операциями сложения и умножения по модулю Nобразует арифметику по модулю N. Открытый ключ КВвыбирают случайным образом так, чтобы выполнялись следующие условия: 1 < КB ≤ φ (N), НОД(КВ, φ (N) = 1, φ (N) = (P- l)(Q-1), где φ (N)- функция Эйлера. Функция Эйлера φ (N) указывает количество положительных целых чисел в интервале от 1 до N, которые взаимно просты с N. Второе из указанных выше условий означает, что открытый ключ Кви функция Эйлера φ (N) должны быть взаимно простыми. Далее, используя расширенный алгоритм Евклида, вычисляют секретный ключ kB, такой, что: kBx KB≡l(mod φ (N)) или kB = KB-1(mod (Р-1)(Q-1)). Это можно осуществить, так как получатель В знает пару простых чисел (Р, Q) и может легко найти φ(N). Заметим, что kBи N должны быть взаимно простыми. Открытый ключ КBиспользуют для шифрования данных, а секретный ключ kB -для расшифрования. Процедура шифрования определяет криптограмму С через пару (открытый ключ КB, сообщение М) в соответствии со следующей формулой: C = EKB(M) = MKB(modN). В качестве алгоритма быстрого вычисления значения С используют ряд последовательных возведений в квадрат целого М и умножений на М с приведением по модулю N. Расшифрование криптограммы С выполняют, используя пару (секретный ключ kB, криптограмма С) по следующей формуле: M = DkB (C) = CkB(modN). Процедуры шифрования и расшифрования в алгоритме RSA рассмотрим на примере шифрования сообщения CAB. Для простоты вычислений будут использоваться небольшие числа. На практике применяются очень большие числа (длиной 250-300 десятичных разрядов). Действия пользователяВ: 1. Выбирает Р=3 и Q=11. 2. Вычисляет модуль N=Р х Q=Зх11=33. 3. Вычисляет значение функции Эйлера для N = 33: φ (N) = φ (33) = (Р- 1)(Q- 1) = 2 х 10 = 20. Выбирает в качестве открытого ключа КВпроизвольное число с учетом выполнения условий: 1<КВ< 20, НОД (КВ, 20) = 1. Пусть КВ= 7. Вычисляет значение секретного ключа kB, используя расширенный алгоритм Евклида при решении сравнения kB = 7-1(mod 20) или КВ хkB mod(Р- 1)(Q- 1) =1. Решение дает kB = 3. 4. Пересылает пользователю А пару чисел (N=33,KB = 7). Действия пользователя А: 5. Представляет шифруемое сообщение как последовательность целых чисел в диапазоне 0-32. Пусть буква А представляется как число 1, буква В - как число 2, буква С - как число 3. Тогда сообщение CAB можно представить как последовательность чисел 312, то есть М1 = 3, М2= 1, М3= 2. 6. Шифрует текст, представленный в виде последовательности чисел Ми М2 и М3, используя ключ Кв= 7 и N = 33, по формуле: Сi = MiKB (mod N) = Mi7(mod 33). Получает: С1= 37(mod 33) = 2187(mod 33) = 9, С2 = l7(mod 33) = l(mod 33) = 1, С3 = 27(mod 33) = 128(mod 33) = 29. Отправляет пользователю В криптограмму: С1 С2, С3= 9, 1, 29. Действия пользователя В: 7. Расшифровывает принятую криптограмму С1 С2, С3, используя секретный ключ kB= 3, по формуле: Мi = CiKB(mod N) = Ci3(mod 33). Получает: М1 = 93(mod 33) = 729(mod 33) = 3, М2 = l3(mod 33) = l(mod 33) = 1, М3= 293(mod 33) - 24389(mod 33) = 2. Таким образом, восстановлено исходное сообщение CAB: 312. Криптоалгоритм RSA всесторонне исследован и признан стойким при достаточной длине ключей. В настоящее время длина ключа 1024 бит считается приемлемым вариантом. Некоторые авторы утверждают, что с ростом мощности процессоров криптоалгоритм RSA потеряет стойкость к атаке полного перебора. Однако увеличение мощности процессоров позволит применять более длинные ключи, что повышает стойкость RSA Следует отметить, что алгоритм RSA можно применять как для шифрования сообщений, так и для электронной цифровой подписи. Нетрудно видеть, что в асимметричной криптосистеме RSA количество используемых ключей связано с количеством абонентов линейной зависимостью (в системе из N пользователей используется 2 х N ключей), а не квадратической, как в симметричных системах. Вопрос 3. Достоинства и недостатки асимметричных систем шифрования. Асимметричные криптографические системы обладают следующими важными преимуществами перед симметричными криптосистемами: в асимметричных криптосистемах решена сложная проблема распределения ключей между пользователями, так как каждый пользователь может сгенерировать свою пару ключей сам, а открытые ключи пользователей могут свободно публиковаться и распространяться по сетевым коммуникациям; исчезает квадратическая зависимость числа ключей от числа пользователей; в асимметричной криптосистеме количество используемых ключей связано с количеством абонентов линейной зависимостью (в системе из N пользователей используется 2N ключей), а не квадратической, как в симметричных системах; асимметричные криптосистемы позволяют реализовать протоколы взаимодействия сторон, которые не доверяют друг другу, поскольку при использовании асимметричных криптосистем закрытый ключ должен быть известен только его владельцу. Однако у асимметричных криптосистем существуют и недостатки: на настоящий момент нет математического доказательства необратимости используемых в асимметричных алгоритмах функций; по сравнению с симметричным шифрованием, асимметричное существенно медленнее, поскольку при шифровании и расшифровке используются весьма ресурсоемкие операции. По этой же причине реализовать аппаратный шифратор с асимметричным алгоритмом существенно сложнее, чем аппаратно симметричный алгоритм; необходимо защищать открытые ключи от подмены. Перечень литературы и Интернет-ресурсов: 1. А.П.Алферов, А.Ю.Зубов, А.С.Кузьмин, А.В.Черемушкин. Основы криптографии: Учебное пособие. – М.: Гелиос АРВ, 2005. стр. 59-69. 2. В.М. Фомичев. Дискретная математика и криптология Курс лекций. – М.: ДИАЛОГ-МИФИ, 2003. стр. 143-150. 3. Шаньгин В.Ф. Защита компьютерной информации. Эффективные методы и средства. – М.: ДМК Пресс, 2008. стр. 154-162. 4. http://www.fstec.ru/ 5. http://www.cryptopro.ru/ |