История создания метода кодирования информации "RSA". Описание шифра RSA: блок схема его алгоритма. Способы взлома криптосистемы RSA. Устойчивые числа и их применение в криптосистеме. Рекомендуемая длина ключа. Применение алгоритма RSA на практике.
Методы и системы защиты информации, опирающиеся на управление доступом, включают в себя следующие функции защиты информации в локальных сетях информационных систем: 1. Криптографические методы защиты информации дают средства информационной безопасности, поэтому она является частью концепции информационной безопасности. кодирование информация криптосистема алгоритм В практических приложениях для открытого (public) ключа обычно выбирается относительно небольшой показатель, а зачастую группы пользователей используют один и тот же открытый (public) показатель, но каждый с различным модулем. Если k - количество битов в модуле, то в обычно используемых для RSA алгоритмах количество шагов необходимых для выполнения операции с открытым (public) ключом пропорционально второй степени k, количество шагов для операций секретного (private) ключа - третьей степени k, количество шагов для операции создания ключей - четвертой степени k. Наиболее эффективная атака: найти секретный (private) ключ, соответствующий необходимому открытому (public) ключу.
Введение
Говоря об информационной безопасности, в настоящее время имеют в виду, собственно говоря, безопасность компьютерную. Действительно, информация, находящаяся на электронных носителях играет все большую роль в жизни современного общества. Уязвимость такой информации обусловлена целым рядом факторов: огромные объемы, многоточечность и возможная анонимность доступа, возможность "информационных диверсий"
Защита данных в компьютерных сетях становится одной из самых открытых проблем в современных информационно-вычислительных системах. На сегодняшний день сформулировано три базовых принципа информационной безопасности, задачей которой является обеспечение: 1. - целостности данных - защита от сбоев, ведущих к потере информации или ее уничтожения;
2. - конфиденциальности информации;
3. - доступности информации для авторизованных пользователей.
Рассматривая проблемы, связанные с защитой данных в сети, возникает вопрос о классификации сбоев и несанкционированности доступа, что ведет к потере или нежелательному изменению данных. Это могут быть сбои оборудования (кабельной системы, дисковых систем, серверов, рабочих станций и т.д.), потери информации (изза инфицирования компьютерными вирусами, неправильного хранения архивных данных, нарушений прав доступа к данным), некорректная работа пользователей и обслуживающего персонала. Перечисленные нарушения работы в сети вызвали необходимость создания различных видов защиты информации. Условно их можно разделить на три класса: 1. - средства физической защиты;
2. - программные средства (антивирусные программы, системы разграничения полномочий, программные средства контроля доступа);
3. - административные меры защиты (доступ в помещения, разработка стратегий безопасности фирмы и т.д.).
Методы и системы защиты информации, опирающиеся на управление доступом, включают в себя следующие функции защиты информации в локальных сетях информационных систем: 1. Идентификация пользователей, ресурсов и персонала системы информационной безопасности сети;
2. Опознание и установление подлинности пользователя по вводимым учетным данным (на данном принципе работает большинство моделей информационной безопасности);
3. Допуск к определенным условиям работы согласно регламенту, предписанному каждому отдельному пользователю, что определяется средствами защиты информации и является основой информационной безопасности большинства типовых моделей информационных систем;
4. Протоколирование обращений пользователей к ресурсам, информационная безопасность которых защищает ресурсы от несанкционированного доступа и отслеживает некорректное поведение пользователей системы. (Написать реферат средства защиты информации);
5. Информационная безопасность банков и экономическая информационная безопасность и других систем должна обеспечивать своевременное реагирование на попытки несанкционированного доступа к данным посредством сигнализации, отказов и задержке в работе.
Механизмами шифрования данных для обеспечения информационной безопасности общества является криптографическая защита информации посредством криптографического шифрования.
Криптографические методы защиты информации применяются для обработки, хранения и передачи информации на носителях и по сетям связи.
Криптографическая защита информации *b*log.chljahsoft.ne*t при передаче данных на большие расстояния является единственно надежным способом шифрования.
Криптография - это наука, которая изучает и описывает модель информационной безопасности данных. Криптография открывает решения многих проблем информационной безопасности сети: аутентификация, конфиденциальность, целостность и контроль взаимодействующих участников.
Термин «Шифрование» означает преобразование данных в форму, не *blog.chljah*soft.n*етчитабельную для человека и программных комплексов без ключа шифрования-расшифровки. Криптографические методы защиты информации дают средства информационной безопасности, поэтому она является частью концепции информационной безопасности. кодирование информация криптосистема алгоритм
1. Постановка задачи
Выполнить курсовую работу по изучению кодирования информации методом “RSA”. Нужно выбрать один способ защиты информации - по выбранному способу защиты информации составить программную реализацию на языке Delphi. Защитить выполненную работу путем демонстрации всех возможностей программы.
В данной курсовой работе был выбран, рассмотрен и реализован на языке Delphi метод шифрования “RSA”.
2. История создания метода
Несмотря на достаточно большое число различных систем с открытыми ключами, одной из наиболее популярных остается криптосистема RSA, созданная в 1977 г. и названная в честь ее создателей Рона Ривеста, Ади Шамира и Леонарда Эйдельмана. Они воспользовались тем фактом, что нахождение больших простых чисел в вычислительном отношении осуществляется легко, а разложение на множители произведения двух таких чисел - сложно.
В статье этих авторов, вышедшей в 1978 г., премия в сто долларов была назначена тому, кто первым расшифрует сообщение 68613754622061477140922254355882905759991125743198746951209308162982251457083569314766288398962801339199055182994515781515.
Метод шифрования был известен, единственное, что требовалось - разложить на два сомножителя 129-значное число, приведенное в этой статье.
Это было сделано только в 1994 г.
Задача была решена с помощью 600 человек и потребовала 220 дней и 1600 компьютеров, связанных через Internet.. Описание шифра RSA
RSA - криптографическая система открытого ключа, обеспечивающая такие механизмы защиты как шифрование и цифровая подпись (аутентификация - установление подлинности). Криптосистема RSA разработана в 1977 году и названа в честь ее разработчиков Ronald Rivest, Adi Shamir и Leonard Adleman.
Алгоритм RSA работает следующим образом: берутся два достаточно больших простых числа p и q и вычисляется их произведение n = p*q; n называется модулем.
Затем выбирается число e, удовлетворяющее условию 1< e < (p - 1)*(q - 1) и не имеющее общих делителей кроме 1 (взаимно простое) с числом (p - 1)*(q - 1). Затем вычисляется число d таким образом, что (e*d - 1) делится на (p - 1)*(q - 1).
· e - открытый (public) показатель
· d - частный (private) показатель
· (n; e) - открытый (public) ключ
· (n; d). - частный (private) ключ.
Делители (факторы) p и q можно либо уничтожить, либо сохранить вместе с частным (private) ключом.
Если бы существовали эффективные методы разложения на сомножители (факторинга), то, разложив n на сомножители (факторы) p и q, можно было бы получить частный (private) ключ d. Таким образом надежность криптосистемы RSA основана на трудноразрешимой - практически неразрешимой - задаче разложения n на сомножители (то есть на невозможности факторинга n) так как в настоящее время эффективного способа поиска сомножителей не существует.. Блок схема алгоритма
5. Скорость работы алгоритма RSA
Как при шифровании и расшифровке, так и при создании и проверке подписи алгоритм RSA по существу состоит из возведения в степень, которое выполняется как ряд умножений.
В практических приложениях для открытого (public) ключа обычно выбирается относительно небольшой показатель, а зачастую группы пользователей используют один и тот же открытый (public) показатель, но каждый с различным модулем. (Если открытый (public) показатель неизменен, вводятся некоторые ограничения на главные делители (факторы) модуля.) При этом шифрование данных идет быстрее чем расшифровка, а проверка подписи - быстрее чем подписание.
Если k - количество битов в модуле, то в обычно используемых для RSA алгоритмах количество шагов необходимых для выполнения операции с открытым (public) ключом пропорционально второй степени k, количество шагов для операций секретного (private) ключа - третьей степени k, количество шагов для операции создания ключей - четвертой степени k.
Методы "быстрого умножения" - например, методы основанные на Быстром Преобразовании Фурье Fourier (FFT - Fast Fourier Transform) - выполняются меньшим количеством шагов; тем не менее они не получили широкого распространения изза сложности программного обеспечения, а также потому, что с типичными размерами ключей они фактически работают медленнее. Однако производительность и эффективность приложений и оборудования реализующих алгоритм RSA быстро увеличиваются.
Алгоритм RSA намного медленнее чем DES и другие алгоритмы блокового шифрования. Программная реализация DES работает быстрее по крайней мере в 100 раз и от 1,000 до 10,000 - в аппаратной реализации (в зависимости от конкретного устройства). Благдаря ведущимся разработкам, работа алгоритма RSA, вероятно, ускорится, но аналогично ускорится и работа алгоритмов блокового шифрования.
6. Способы взлома криптосистемы RSA
Существует несколько способов взлома RSA. Наиболее эффективная атака: найти секретный (private) ключ, соответствующий необходимому открытому (public) ключу. Это позволит нападающему читать все сообщения, зашифрованные открытым (public) ключом и подделывать подписи. Такую атаку можно провести, найдя главные сомножители (факторы) общего модуля n - p и q. На основании p, q и e (общий показатель), нападающий может легко вычислить частный показатель d. Основная сложность - поиск главных сомножителей (факторинг) n; безопасность RSA зависит от разложения на сомножители (факторинга), что является трудонразрешимой задачей, не имеющей эффективных способов решения.
Фактически, задача восстановления секретного (private) ключа эквивалентна задаче разложения на множители (факторинга) модуля: можно использовать d для поиска сомножителей n, и наоборот можно использовать n для поиска d. Надо отметить, что усовершенствование вычислительного оборудования само по себе не уменьшит стойкость криптосистемы RSA, если ключи будут иметь достаточную длину. Фактически же совершенствование оборудования увеличивает стойкость криптосистемы.
Другой способ взломать RSA состоит в том, чтобы найти метод вычисления корня степени e из mod n. Поскольку С = M**e*(mod n), то корнем степени e из (mod n) является сообщение M. Вычислив корень, можно вскрыть зашифрованные сообщения и подделывать подписи, даже не зная частный (private) ключ. Такая атака не эквивалентна факторингу, но в настоящее время неизвестны методы, которые позволяют взломать RSA таким образом. Однако, в особых случаях, когда на основе одного и того же показателя относительно небольшой величины шифруется достаточно много связанных сообщений, есть возможность вскрыть сообщения. Упомянутые атаки - единственные способы расшифровать все сообщения, зашифрованные данным ключом RSA.
Существуют и другие типы атак, позволяющие, однако, вскрыть только одно сообщение и не позволяющие нападающему вскрыть прочие сообщения, зашифрованные тем же ключом.
Самое простое нападение на единственное сообщение - атака по предполагаемому открытому тексту. Нападающий, имея зашифрованный текст, предполагает, что сообщение содержит какой-то определенный текст, например, "Нападение на рассвете", затем шифрует предполагаемый текст открытым (public) ключом получателя и сравнивает полученный текст с имеющимся зашифрованным текстом. Такую атаку можно предотвратить, добавив в конец сообщения несколько случайных битов. Другая атака единственного сообщения применяется в том случае если кто-то посылает одно и то же сообщение M трем корреспондентам, каждый из которых использует общий показатель e = 3. Зная это, нападаюший может перехватить эти сообщения и расшифровать сообщение M.
Такую атаку можно предотвратить вводя в сообщение перед каждым шифрованием несколько случайных бит. Также существуют несколько атак по зашифрованному тексту (или атаки отдельных сообщений с целью подделки подписи), при которых нападающий создает некоторый зашифрованный текст и получает соответствующий открытый текст, например, заставляя обманным путем зарегистрированного пользователя расшифровать поддельное сообщение.
Разумеется, существуют и атаки нацеленные не на криптосистему непосредственно, а на уязвимые места всей системы коммуникаций в целом; такие атаки не могут рассматриваться как взлом RSA, так как говорят не о слабости алгоритма RSA, а скорее об уязвимости его конкретной реализации.
Например, нападающий может завладеть секретным (private) ключом, если тот хранится без должных предосторожностей. Необходимо подчеркнуть, что для полной защиты недостаточно защитить выполнение алгоритма RSA и принять меры вычислительной безопасности, то есть использовать ключ достаточной длины. На практике же наибольший успех имеют атаки на незащищенные этапы управления ключами системы RSA.
7. Устойчивые числа и их применение в криптосистеме RSA
В литературе, описывающей алгоритм RSA, часто указывается, что при выборе пары чисел для создания модуля n необходимо, чтобы выбранные числа p и q являлись “устойчивыми" . Устойчивые числа имеют некоторые свойства, которые затрудняют разложение на множители их произведение n определенными методами факторинга; одно из этих свойств, например, существование больших главных делителей (факторов) p - 1 и p 1. Причиной таких мер являются некоторые методы факторинга (разложения на множители) например, метод Pollard (p - 1) и Pollard (p 1) особенно подходят для таких чисел p, когда (p - 1) или (p 1) имеют только маленькие делители (факторы); устойчивые числа устойчивы в частности к таким атакам. Требование использовать устойчивые числа выдвигается в частноси стандатом ANSI X9.31.
Однако, достижения последних десяти лет, похоже, сводят на нет преимущества устойчивых чисел; одной из перспективных разработок является алгоритм разложения на множители (факторинга) эллиптических кривых. Новые методы факторинга имеют столь же высокие шансы на успех как для устойчивых, так и для слабых p и q, поэтому сам по себе выбор устойчивых чисел существенно безопасность не увеличивает. В отличии от этого выбор достаточно большого устойчивого числа гарантирует надежную защиту, хотя для этого может потребоваться более длинное число. В будущем, возможно, будут разработаны новые алгоритмы разложения на множители (факторинга) чисел с определенными свойствами, но и в этом это случае защиту можно усилить, увеличив длину числа.
8. Рекомендуемая длина ключа
Размер ключа в алгоритме RSA связан с размером модуля n. Два числа p и q, произведением которых является модуль, должны иметь приблизительно одинаковую длину поскольку в этом случае найти сомножители (факторы) сложнее, чем в случае когда длина чисел значительно различается. Например, если предполагается использовать 768-битный модуль, то каждое число должно иметь длину приблизительно 384 бита. Обратите внимание, что если два числа чрезвычайно близки друг к другу или их разность близка к некоторому предопределенному значению, то возникает потенциальная угроза безопасности, однако такая вероятность - близость двух случайно выбранных чисел - незначительна.
1. Возьмем M = (p q)/2
2. При p < q, имеем 0 =< м - sqrt (n) =< (q - p)**2/8p.
Поскольку p = M*( - sqrt (m2 - n)), то значения p и q можно легко найти, если разность p - q достаточно мала.
Оптимальный размер модуля определяется требованиями безопасности: модуль большего размера обеспечивает большую безопасность, но и замедляет работу алгоритма RSA. Длина модуля выбирается в первую очередь на основе значимости защищаемых данных и необходимой стойкости защищенных данных и во вторую очередь - на основе оценки возможных угроз.
Хороший анализ защиты, обеспечиваемой определенной длиной модуля, приведен в описании модуля дискретного логарифма Rivest [Riv92a], но то же можно применить и к алгоритму RSA. В более позднем обзоре защиты, предлагаемой ключами RSA различной длины защита анализируется на основе методов разложения на множители (факторинга), существовавших в 1995 и перспективах их развития, атакже рассматривает возможность привлечения больших вычислительных ресурсов по информационным сетям. Проведенная в 1997 году оценка показала, что 512-битный ключ RSA может быть вскрыт (факторингом) за $ 1,000,000 и восемь месяцев. В 1999 году 512-битный ключ был вскрыт за семь месяцев и это означает, что 512-битные ключи уже не обеспечивают достаточную безопасность за исключением очень краткосрочных задач безопасности.
В настоящее время Лаборатория RSA рекомендует для обычных задач ключи размером 1024 бита, а для особо важных задач - 2048 битов (например, для главного Мастера Сертификатов).
Некоторые недавно введенные стандарты устанавливают для общих задач минимальный размер ключа 1024 бита. Менее ценная информация может быть надежно зашифрована ключом 768-битной длины, поскольку такой ключ все еще недосягаем для всех известных алгоритмов взлома. Для оценки уровней безопасности различных размеров ключей можно использовать модель предлагаемую Lenstra и Verheul.
Обычно ключ индивидуального пользователя имеет определенный срок жизни, который истекает через некоторое время, например, через год. Это дает возможность регулярно заменять ключи и обеспечивать необходимый уровень безопасности. После истечения срока жизни ключа, пользователь должен создать новый ключ, предварительно удостоверившись, что параметры криптосистемы остались прежними, в частности что система использует ключи той же длины. Конечно, замена ключа не защищает от нападения на сообщения, зашифрованные прежним ключом, но для этого размер ключа должен подбираться согласно ожидаемому времени актуальности данных. Возможность замены ключей позволяет поддерживать криптографическую систему в соответствии с текущими рекомендациями о размерах ключей, которые регулярно публикует Лаборатория RSA.
Пользователям необходимо учитывать, что оцениваемое время взлома системы RSA - только усредненное значение, а массированная атака на тысячи модулей в каком-то случае может дать положительный результат в относительно короткий срок.
Хотя надежность любого отдельного ключа все еще высока, некоторые методы факторинга всегда оставляют нападающему маленький шанс быстро найти некоторый ключ.
Что же касается затруднения взлома увеличением размера ключа, то удвоение длины модуля в среднем увеличивает время операций открытого (public) ключа (шифрование и проверка подписи) в четыре раза, а время операций секретного (private) ключа (расшифровка и подпись) в восемь раз. Разница между временем работы отрытого и секретного ключей возникает потому, что открытый показатель может оставаться неизменным, в то время как модуль будет увеличен, а длина частного показателя будет увеличена пропорционально увеличению длины ключа. Время создания ключей при удвоении модуля увеличивается в 16 раз, но это нечасто выполняемая операция и потому на общей производительности это практически не сказывается.
Надо отметить, что размеры ключей в криптосистеме RSA (а также и в других криптосистемах открытого (public) ключа) намного больше размеров ключей систем блокового шифрования типа DES, но надежность ключа RSA несравнима с надежностью ключа аналогичной длины другой системы шифрования.
9. Применение алгоритма RSA на практике
На практике криптосистема RSA часто используется вместе с криптографической системой секретного ключа типа DES для зашифровывания сообщения ключом RSA посредством цифрового конверта.
Предположим, что Алиса посылает зашифрованное сообщение Бобу. Сначала она шифрует сообщение по алгоритму DES, используя случайно выбранный ключ DES и затем шифрует ключ DES открытым (public) ключом RSA Боба. Сообщение, зашифрованное ключом DES и ключ DES зашифрованный в свою очередь ключом RSA вместе формируют цифровой конверт RSA и отсылаются Бобу. Получив цифровой конверт, Боб расшифровывает ключ DES с помощью своего секретного (private) ключа, а затем использует ключ DES, чтобы расшифровать само сообщение.
На практике такая схема реализована в оборудовании Zaxus (Racal), осуществляющем обмен шифрованной информацией по открытым каналам. При начале новой сессии связи два устройства Zaxus (Racal) DATACRYPTOR 2000 сначала обмениваются ключами DES для этой сессии, шифруя их по алгоритму RSA, а затем шифруют передаваемую информацию ключами DES. Такой метод позволяет объединить преимущества высокой скорости алгоритма DES с надежностью системы RSA.
Криптосистема RSA используется в самых различных продуктах, на различных платформах и во многих отраслях. В настоящее время криптосистема RSA встраивается во многие коммерческие продукты, число которых постоянно увеличивается. Также ее используют операционные системы Microsoft, Apple, Sun и Novell. В аппаратном исполнении RSA алгоритм применяется в защищенных телефонах, на сетевых платах Ethernet, на смарт-картах, широко используется в криптографическом оборудовании Zaxus (Racal). Кроме того, алгоритм входит в состав всех основных протоколов для защищенных коммуникаций Internet, в том числе S/MIME, SSL и S/WAN, а также используется во многих учреждениях, например, в правительственных службах, в большинстве корпораций, в государственных лабораториях и университетах. На осень 2000 года технологии с применением алгоритма RSA были лицензированы более чем 700 компаниями.
Технологию шифрования RSA BSAFE используют около 500 миллионов пользователей всего мира. Так как в большинстве случаев при этом используется алгоритм RSA, то его можно считать наиболее распространенной криптосистемой общего (public) ключа в мире и это количество имеет явную тенденцию к увеличению по мере роста Internet.
Получатель устанавливает шифр с характеристиками: 1. Выберем р=17, q=31
2. Определим n=pq=527
3. Найдем ?(n)=(р -1)(q - 1)=480.
4. В качестве открытого ключа е выбрано число, взаимно простое с ?(n),е=7. Для этого числа с помощью расширенного алгоритма Евклида найдены целые числа u и v, удовлетворяющие соотношению е•u ?(n)•v=1: 480=7•68 4, 7=4•1 3, 4=3•1 1, 1=4-3•1=4-(7-4•1)•1=4•2-7•1=(480-7•68)•2-7•1=480•2-7•137, v=2, u= -137.
Поскольку - 137?343(mod480), то d=343.
Проверка: 7•343=2401?1(mod480).
Текстовое сообщение представляется в виде последовательности чисел, содержащихся в интервале
[0, 526]. Для этого буквы R, S и A кодируются пятиразрядными двоичными числами. Используются порядковые номера этих букв в английском алфавите при их двоичном представлении: R=1810=(10010)2, S=1910=(10011)2, A=110=(00001)2.
Тогда RSA=(100101001100001)2. Разбиение текста на блоки ограниченной длины дает представление из двух блоков: RSA=(100101001), (100001)=(М1=297, М2=33).
Последовательно шифруются блоки исходного текста М1=297, М2=33: y1=Ek(М1)=М1e?2977(mod527)=474.
Здесь воспользовались тем, что: 2977=((2972)3)297?(mod527)=(2003(mod527)297)(mod527)=474, y2=Ek(М2)=M2e?337(mod527)=407.
Шифрованный текст, как и исходный, получаем в виде двух блоков: у1=474; у2=407.
Расшифрование представляется последовательностью действий Dk(yi )=(yi )d=(yi )343(mod 527), i=1,2.
Вычисления возведения в степень d более удобно проводить, предварительно представляя показатель степени суммой степеней числа 2, а именно: 343=256 64 16 4 2 1.
Используя это представление показателя степени d=343, получаем: 4742?174(mod527), 4744?237(mod527), 4748?307(mod527), 47416?443(mod527), 47432?205(mod527), 47464?392(mod527), 474128?307(mod527), 474256?443(mod527), и окончательно 474343(mod527)=(443•392•443•237•174•474) (mod527)=297.
Аналогично вычисляется значение 407343(mod527)=33.
Переход к буквенному представлению расшифрованного сообщения дает: RSA.
Размещено на .ru
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы