Электронный документооборот

Применение алгоритмов шифрования данных в системе электронного документооборота. Алгоритм RSA: история создания. Система шифрования RSA. Цифровая электронная подпись. Способы взлома алгоритма RSA. Оптимизация алгоритма RSA в приложениях шифрования.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 17.03.2012
Размер файла 96,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

Человек - существо социальное: межличностные взаимоотношения составляют практически все сферы нашей жизни, и одним из важнейших результатов этих взаимоотношений является обмен информацией. Оборот данных является обязательной частью человеческой деятельности: от частной бытовой жизни до области экономики или бизнеса.

С развитием информационных технологий для передачи информации открылись огромные возможности. С появлением глобальной сети Интернет и его важным атрибутом - электронной почтой, проблема расстояния перестала быть проблемой. По электронной почте сообщения приходят к получателю в считанные минуты. Но, с устранением одной проблемы, появилась другая - защита информации, которую содержит электронный документ.

Информационные ресурсы (отдельные документы или массивы документов, принадлежащие физическому или юридическому лицу, либо государству), которые подлежат обязательному учету и защите, называются конфиденциальными.

Конфиденциальная информация имеет следующие особенности:

• она неизвестна третьим лицам;

• свободный доступ имеют лишь владелец и доверенные им лица;

• меры по обеспечению ее конфиденциальности принимает собственник информации.

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

До сих пор любая известная форма коммерции потенциально подвержена мошенничеству - от обвешивания на рынке до фальшивых счетов и подделки денежных знаков. Схемы электронной коммерции не исключение. Такие формы нападения может предотвратить только стойкая криптография. Электронные деньги без криптографии не выживут.

Еще одну угрозу представляет собой нарушения приватности. Преступления против приватности в большинстве случаев целенаправленны (представители прессы пытаются прочитать электронную корреспонденцию известного лица, компания перехватывает почту конкурентов и пр.). Другие атаки включают свободный поиск любой полезной информации.

Итак, с одной стороны, расширилось использование компьютерных сетей, в частности, глобальной сети Интернет, по которым передаются большие объемы конфиденциальной информации, не допускающей возможность доступа к ней посторонних лиц. С другой, появление новых мощных компьютеров, технологий сетевых вычислений сделало возможным дискредитацию криптографических систем, еще недавно считавшимися нераскрываемыми. Все это постоянно подталкивает исследователей на создание новых криптосистем и тщательный анализ уже существующих. Проблемой защиты информации путем ее преобразования занимается наука криптология.

Криптология разделяется на два направления - криптографию и криптоанализ. Цели этих двух направлений прямо противоположны. Криптография занимается поиском и исследованием методов преобразования информации с целью скрытия ее содержания. Сфера криптоанализа - исследование возможности расшифрования информации без знания ключей.

Система электронного документооборота (СЭД)

Электронный документооборот включает: создание документов, их обработка, управление доступом, передача, хранение, вывод, а также отслеживание изменений на основе использования компьютеров и компьютерных сетей.

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

Типы файлов, которые, как правило, поддерживают СЭД, включают в себя текстовые документы, изображения, электронные таблицы, аудиоданные, видеоданные и Web-документы.

Основные свойства СЭД:

· Открытость.

Все СЭД построены по модульному принципу, а их API-интерфейсы являются открытыми, что позволяет добавлять к СЭД новые функции или совершенствовать уже имеющиеся.

· Высокая степень интеграции с прикладным ПО.

· Особенности хранения документов.

В большинстве СЭД реализована иерархическая система хранения документов (по принципу «шкаф/полка/папка»). Каждый документ помещается в папку, которая, в свою очередь, находится на полке и т. д. Количество уровней вложения при хранении документов не ограничено.

Один и тот же документ может входить в состав нескольких папок и полок за счет применения механизма ссылок.

В большинстве случаев, серверная часть СЭД состоит из следующих логических компонентов:

o Хранилища атрибутов документов (карточек).

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

o Хранилища документов.

o Сервисов полнотекстовой индексации

(связей между документами).

· Особенности маршрутизации документов.

В общем случае используются понятия «свободной» и «жесткой» маршрутизации документов. При «свободной» маршрутизации любой участвующий в документообороте пользователь может по своему усмотрению изменить существующий маршрут прохождения документов (или задать новый маршрут). При «жесткой» маршрутизации маршруты прохождения документов строго регламентированы, и пользователи не вправе их менять. Однако при «жесткой» маршрутизации могут обрабатываться логические операции, когда маршрут изменяется при выполнении каких-либо заранее заданных условий (например, отправке документа руководству при превышении конкретным пользователем своих должностных полномочий).

· Наличие утилит просмотра документов разных форматов.

· Аннотирование документов.

· Поддержка различных клиентских программ.

· Отслеживание версий и подверсий документов.

Возможность автоматического отслеживания версий и подверсий документов при одновременной работе с документом сразу нескольких пользователей: легко можно определить, какая именно версия/подверсия документа является наиболее актуальной по порядку или времени их создания.

· Разграничение доступа

o Полный контроль над документом;

o Право редактировать, но не уничтожать документ;

o Право создавать новые версии документа, но не редактировать;

o Право аннотировать документ, но не редактировать его и не создавать новые версии;

o Право читать документ, но не редактировать его;

o Право доступа к карточке, но не к содержимому документа;

o Полное отсутствие прав доступа.

Преимущества от использования СЭД:

· Производительность труда персонала увеличивается на 20-25%.

· Стоимость архивного хранения электронных документов на 80% ниже в сравнении со стоимостью хранения бумажных архивов.

· Появление возможности коллективной работы над документами.

· Значительное ускорение поиска и выборки документов.

· Повышение безопасности информации за счет того, что работа в СЭД с незарегистрированной рабочей станции невозможна, а каждому пользователю СЭД назначаются свои полномочия доступа к информации.

· Повышение сохранности документов и удобства их хранения, так как они хранятся в электронном виде на сервере.

· Улучшение контроля за исполнением документов.

Что такое криптография

Криптография - комплексная наука об обеспечении конфиденциальности (невозможности прочтения информации посторонним) и аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации.

Криптография необходима для того, чтобы безопасно передавать информацию по открытым каналам связи (например, по Интернету) таким образом, что она не будет доступна никому, кроме того лица, для кого она предназначена. Важной в стратегическом плане информацией являются конфиденциальные документы (договора, соглашения, номера банковского счета и др.), деловая и личная переписка.

В современной криптографии криптографические системы подразделяются на два класса, в зависимости от количества используемых ключей:

· симметричные криптосистемы (одноключевые);

· асимметричные криптосистемы (двухключевые).

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

Асимметричные криптосистемы - системы шифрования и/или электронной цифровой подписи (ЭЦП), использующие ключевую пару - открытый и закрытый ключи, при этом, открытый ключ передаётся по открытому (незащищённому) каналу, и используется для проверки ЭЦП и для шифрования сообщения; для генерации ЭЦП и для расшифровки сообщения используется секретный ключ.

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

С криптографией, помимо прочего, связано несколько важных понятий:

• Криптоанализ - наука, изучающая математические методы нарушения конфиденциальности и целостности информации.

• Криптографическая атака - попытка вызвать отклонения в атакуемой защищенной системе обмена информацией.

• Криптографическая стойкость - способность криптографического алгоритма противостоять криптоанализу.

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

Асимметричные алгоритмы

Асимметричная криптография, также известная как криптография с открытыми ключами, использует класс алгоритмов, в которых применяется пара ключей: открытый ключ и секретный (закрытый) ключ, известный только его владельцу. В отличие от секретного ключа, который должен сохраняться в тайне, открытый ключ может быть общедоступным, не подвергая опасности систему защиты. Открытый и секретный ключи генерируются одновременно, и данные, зашифрованные одним ключом, могут быть расшифрованы при помощи другого ключа. То есть отправитель может зашифровать сообщение, используя открытый ключ получателя, и только получатель - владелец соответствующего секретного ключа - может расшифровать это сообщение.

Асимметричные системы имеют ряд преимуществ перед симметричными системами. В асимметричных системах решена сложная проблема распределения ключей между пользователями, так как каждый пользователь может сгенерировать свою пару ключей, а открытые ключи свободно публикуются и распространяются. Благодаря тому, что в асимметричных системах секретный ключ известен только его владельцу, возможно взаимодействие сторон, не знающих друг друга. Среди асимметричных алгоритмов наиболее известными являются RSA (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman) и алгоритм Эль-Гамаля.

Далее показана схема передачи информации лицом «А» лицу «В», они могут быть как физическими лицами, так и организациями и так далее. «E» - роль активного перехватчика, который может захватить систему (расшифровать сообщение, предназначенное лицу «B») без взламывания системы шифрования.

Размещено на http://www.allbest.ru/

1. «B» выбирает пару (e,d) и шлёт ключ шифрования e (открытый ключ) лицу «А» по открытому каналу, а ключ расшифрования d (закрытый ключ) защищён и секретен (он не должен передаваться по открытому каналу).

2. Чтобы послать сообщение m лицу «В», лицо «А» применяет функцию шифрования, определённую открытым ключом e: Ee(m) = c, c -- полученный шифротекст.

3. «В» расшифровывает шифротекст c, применяя обратное преобразование Dd, однозначно определённое значением d.

Казалось бы, что криптосистема с открытым ключом -- идеальная система, не требующая безопасного канала для передачи ключа шифрования. Это подразумевало бы, что два легальных пользователя могли бы общаться по открытому каналу, не встречаясь, чтобы обменяться ключами. К сожалению, это не так.

Следующая схема иллюстрирует, как лицо «Е», выполняющее роль активного перехватчика, может захватить систему (расшифровать сообщение, предназначенное лицу «В») без взламывания системы шифрования.

Размещено на http://www.allbest.ru/

В этой модели лицо «Е» перехватывает открытый ключ e, посланный лицом «В» лицу «А». Затем создает пару ключей e' и d', «маскируется» под «В», посылая лицу «А» открытый ключ e'. «Е» перехватывает зашифрованные сообщения от «А» к «В», расшифровывает их с помощью секретного ключа d', заново зашифровывает открытым ключом e лица «В» и отправляет ему это сообщение. Таким образом, никто из участников не догадывается, что есть третье лицо, которое может как просто перехватить сообщение m, так и подменить его на ложное сообщение m'. Это подчеркивает необходимость аутентификации открытых ключей. Для этого обычно используют сертификаты (цифровую подпись).

Цифровая подпись (ЭЦП, сертификат ключа подписи) - цифровой документ, подтверждающий соответствие между открытым ключом и информацией, идентифицирующей владельца ключа. Содержит информацию о владельце ключа, сведения об открытом ключе, его назначении и области применения, название центра сертификации и пр.

В случае использования ЭЦП секретный ключ применяется для подписания данных, а открытый ключ - для их проверки. Единственно известный способ получить корректную подпись - использовать секретный ключ. Кроме того, для каждого сообщения формируется уникальная подпись. В целях повышения производительности подписывается не все сообщение, а его хэш-код. Вообще, собственно цифровая подпись сообщения - это хэш-код сообщения, зашифрованный секретным ключом, он пересылается вместе с цифровым объектом и удостоверяет целостность самого объекта и подлинность его отправителя.

Для выработки цифровой подписи пользователь генерирует открытый и секретный ключи. Затем секретный ключ и цифровой объект (документ) используются как входная информация для функции генерации цифровой подписи. После того как другой пользователь получает цифровой объект, он использует сам объект, связанную с ним цифровую подпись и открытый ключ для верификации (проверки) подписи. Верификация цифровой подписи сообщения заключается в вычислении значения хэш-кода полученного сообщения и его сравнении со значением хэш-кода в подписи, расшифрованной открытым ключом отправителя. Если значения вычисленного получателем и сохраненного в подписи хэш-кода совпадают, то считается, что подпись под документом верна, а сам документ - подлинный. Цифровая подпись обеспечивает надежную защиту документа от подлога и случайных модификаций и позволяет придавать юридическую силу электронным документам и сообщениям.

В схемах цифровой подписи применяются три основных алгоритма: RSA, алгоритм цифровой подписи DSA (Digital Signature Algorithm) и его вариант с использованием эллиптических кривых - EСDSA (Elliptic Curve Digital Signature Algorithm).

алгоритм шифрование взлом электронный документооборот

Алгоритм RSA: история создания

Труды Евклида и Диофанта, Ферма и Эйлера, Гаусса, Чебышева и Эрмита содержат остроумные и весьма эффективные алгоритмы решения уравнений, выяснения разрешимости сравнений, построения больших по тем временам простых чисел, нахождения наилучших приближений и пр. В последние два десятилетия, в первую очередь, благодаря запросам криптографии и широкому распространению ЭВМ, исследования по алгоритмическим вопросам теории чисел переживают период бурного и весьма плодотворного развития.

Вычислительные машины и электронные средства связи проникли практически во все сферы человеческой деятельности. Немыслима без них и современная криптография. Шифрование и дешифрование текстов можно представлять как процессы переработки целых чисел при помощи ЭВМ, а способы, которыми выполняются эти операции, как некоторые функции, определённые на множестве целых чисел. Всё это делает естественным появление в криптографии методов теории чисел. Кроме того, стойкость ряда современных криптосистем обосновывается только сложностью некоторых теоретико-числовых задач.

Но возможности ЭВМ имеют определённые границы. Приходится разбивать длинную цифровую последовательность на блоки ограниченной длины и шифровать каждый такой блок отдельно.

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

где число представляет собой сообщение в зашифрованном виде при некотором фиксированном целом k. Подобный шифр использовал еще Юлий Цезарь. Конечно, не каждое отображение подходит для целей надежного сокрытия информации.

В 1978 г. американцы Р. Ривест, А. Шамир и Л. Адлеман (R.L. Rivest. A. Shamir. L. Adleman) предложили пример функции f, обладающей рядом замечательных достоинств. На её основе была построена реально используемая система шифрования, получившая название по первым буквам имен авторов - система RSA.

Система RSA имеет следующие важные особенности:

1. существует достаточно быстрый алгоритм вычисления значений функции f(x), а также значений обратной функции f -1(x);

2. функция f(x) обладает некоторым «секретом», знание которого позволяет быстро вычислять значения f -1(x); в противном же случае вычисление f -1(x) становится трудно разрешимой в вычислительном отношении задачей, требующей для своего решения столь много времени, что по его прошествии зашифрованная информация перестает представлять интерес для лиц, использующих отображение f в качестве шифра.

Еще до выхода из печати статьи копия доклада в Массачусетском Технологическом институте, посвящённого системе RSA, была послана известному популяризатору математики М. Гарднеру, который в 1977 г. в журнале Scientific American опубликовал статью, посвящённую этой системе шифрования. В русском переводе заглавие статьи Гарднера звучит так: «Новый вид шифра, на расшифровку которого потребуются миллионы лет». Именно эта статья сыграла важнейшую роль в распространении информации об RSA, привлекла к криптографии внимание широких кругов неспециалистов и фактически способствовала бурному прогрессу этой области, произошедшему в последовавшие 20 лет.

Не смотря на большую шумиху по поводу нового алгоритма, агентство национальной безопасности (США), опасаясь его использования в негосударственных структурах, на протяжении нескольких лет безуспешно требовало прекращения распространения системы. Однако, патент все же был выдан, хотя и значительно позже - в 1983 году.

Одна из крупнейших массовых проверок шифра RSA была проведена в 1977 году: создатели зашифровали фразу «The Magic Words are Squeamish Ossifrage». За расшифровку была обещана награда в 100 долларов США. На протяжении полугода более 600 добровольцев жертвовали процессорное время 1600 машин (две из которых были факс-машинами). Координирование проходило через Интернет, и это был один из первых подобных проектов распределённых вычислений. Полученную награду победители пожертвовали в фонд свободного программного обеспечения.

Алгоритм шифрования RSA

Функция f, реализующая схему RSA, устроена следующим образом

где и натуральные числа.

Для расшифровки сообщения достаточно решить сравнение

При некоторых условиях на и это сравнение имеет единственное решение .

В целом алгоритм RSA состоит из следующих пунктов:

· выбор простых чисел p и q (специалисты рекомендуют использовать комбинации длиной не менее чем в 100 десятичных цифр);

· вычисление их произведения n = p * q;

· вычисление произведения m = (p - 1) * (q - 1);

· выбор натурального числа e: 2 ? e < m и взаимно простое с m;

· вычисление натурального числа d < m такое, что e*d ? 1 (mod m), т.е. выражение e*d-1 должно нацело делится на m;

Пара {e,n} - открытый ключ, он будет использован при шифровке сообщений, а пара {d,n} - секретный ключ, который должен храниться в тайне и нужен для декодирования данных

Буквы сообщения преобразуются в числа. Числовое представление сообщения разбивается на блоки - числа от 0 до n - 1, каждый из которых является некоторым числом b ? Zn. Итак, открытый текст - это конечная последовательность чисел b1,b2,….br. Числа bi последовательно шифруются независимо друг от друга.

Алгоритм шифрования:

Каждый блок информации кодируется путем возведения его в степень e и умножения на модуль n

, где ci ? Zn.

Алгоритм расшифрования:

Шифрованный текст может быть преобразован обратно только одним способом. Для этого нужно зашифрованный блок возвести в степень d и умножить на модуль n

где bi ? Zn.

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

Следует также отметить, что ключи e и d равноправны, т.е. сообщение можно шифровать как ключом e, так и ключом d, при этом расшифровка должна быть произведена с помощью другого ключа.

Нахождение простых чисел:

В первом пункте алгоритма RSA сказано, что необходимо выбрать два простых числа p и q. Как это сделать, если числа имеют большую разрядность? Простой способ - деление предполагаемого простого числа на все числа меньшие его не работоспособен уже с 32-битными числами, т.к. требует очень много времени на выполнение.

В данном случае, для выработки простых чисел используют вероятностные методы, которые, впрочем, не дают полной гарантии, что найденное число простое, но при достаточно небольшом количестве операций позволяют получить очень высокую вероятность этого.

Алгоритм поиска простых чисел:

1. N - нечетное число. Найти s и t, такие что N - 1 = 2S * t;

2. Случайным образом выбрать число a, 1 < a < N;

3. Если N делится на a, перейти к пункту 6;

4. Если условие at = 1 (mod N) выполняется, перейти к пункту 2;

5. Если найдется такое k, 0 ? k < s, что , то перейти к пункту 2;

6. Число N - составное: выбрать другое нечетное число N, перейти к пункту 1.

Если для какого-либо числа N проверено m чисел a, то математически доказанная вероятность того, что число является составным и будет равняться 4-m. Исходя из этого, необходимо для числа N, состоящего из p бит проверить p различных значений a. Если во время этого не обнаружится, что N - число составное, то вероятно, что число N является простым.

Стоит заметить, что число s не может быть большим количества бит в числе. Числа s и t находятся при помощи двоичного сдвига числа N - 1, пока младший разряд не станет 1. В результате s - количество сдвигов, t - число N 1 после сдвига.

Нахождение взаимно простых чисел:

На шаге 4 алгоритма RSA необходимо найти число e, взаимно простое с m, т.е. не имеющее общих делителей с ним, кроме единицы. Число e должно быть меньше m, т.e. разрядность числа e равна сумме бит в числах p и q. Для нахождения взаимно простых чисел используется алгоритм Евклида, который находит наибольший общий делитель двух чисел. Если найденный делитель больше единицы, то необходимо выбрать другое число d и повторить проверку.

Алгоритм Евклида:

1. a и b - исходные числа.

2. Вычислить r - остаток от деления a на b: a = b * q + r.

3. Если r = 0, то b - искомое число (наибольший общий делитель), если нет, то заменить пару чисел <a, b> парой <b, r>, перейти к пункту 2.

При вычислении наибольшего общего делителя с помощью алгоритма Евклида будет выполнено не более 5 * p операций деления с остатком, где p есть количество цифр в десятичной записи меньшего из чисел a и b. На практике алгоритм работает очень быстро.

Решение уравнения:

В 5-м пункте алгоритма RSA предполагается нахождение такого числа e, чтобы e * d = 1 (mod m).

Для этого нужно использовать модифицированный алгоритм Евклида, который работает только если числа d и m взаимно просты. Вычисление числа e сводится к решению уравнения m * x + d * e = 1 в натуральных числах. Число x не существенно.

1. Необходимо определить матрицу

2. Вычислить r - остаток от деления a на b a = b * q + r

3. Если r = 0, то второй столбец матрицы дает решение: , если нет перейти к пункту 4;

4. Заменить пару чисел <a, b>, парой <b, r>, перейти к пункту 2;

В данном алгоритме все вычисления можно производить по модулю большего из чисел a и b. Отрицательное число -q заменяется положительным, полученным путем вычитания числа q из числа, взятого в качестве модуля.

Например, если из чисел a и b большим является число b, то все вычисления можно производить по модулю числа b, при этом -q будет представлено как b - q.

Большие числа и работа с ними:

На данный момент времени рекомендуется в качестве чисел e и d брать числа, длиной не менее 768 бит. Чтобы подобрать ключ такой длины потребуется $1000000 и примерно год времени. Ключ в 1024 бит является достаточно надежным для обычных целей шифрования. Для повышенной безопасности рекомендуется брать ключи размером 2048 бит, т.е. числа p и q должны иметь разрядность вдвое ниже чисел e, d, m и n (p и q примерно одного порядка, но не слишком близко друг к другу).

Хранение больших чисел, алгебраическое сложение, умножение:

Большие числа лучше всего хранить в массиве 2-х байтовых переменных. Об отрицательных числах можно забыть: использоваться не будут, т.к. их всегда можно заменить на обратные по модулю. Переменные в 2 байта удобны при умножении: результат будет 4-х байтовым и потом его можно разделить на две части для дальнейшей обработки.

Умножение чаще всего производится с помощью обычного школьного алгоритма умножения «в столбик». Сложение и вычитание также производятся «в столбик».

Алгоритм деления и взятия остатка рекомендуется реализовывать через двоичную систему счисления.

Алгоритм быстрого возведения в степень:

В алгоритме RSA очень много возведений в степень по модулю натурального числа, при этом не нужно производить триллиарды умножений, а затем брать остаток от деления числа из миллиардов цифр: остаток от деления берется после каждого умножения. Таким образом, при перемножении двух чисел, состоящих из k бит, потребуется 2 * k-битное число, которое затем делится на модуль и получается остаток, опять же состоящий из k бит. Сложность этого алгоритма может быть оценена как O (ln m), где m - модуль, по которому производится умножение. Запись O (ln m) означает, что для реализации алгоритма потребуется порядка ln m операций. Например, если число имеет разрядность 1024 бит (при этом длина m не менее 1024 бит), то умножение по модулю необходимо будет провести порядка ln m = ln 21024 = 710 раз, что относительно немного.

Алгоритм вычисления ad (mod m):

1. Число d представить в двоичной системе счисления:

d = d0 * 2r + ... + dr - 1 * 2 + dr , где di - цифры в двоичном представлении, равные 0 или 1, d0 = 1;

2. Положить a0 = a, затем для i = 1, ... , r вычислить

;

3. ar - искомое число ad (mod m).

Способы взлома алгоритма RSA

На сегодняшний день неизвестны действительно эффективные и универсальные способы взлома алгоритма RSA. Однако существуют предположения.

Самый очевидный на первый взгляд метод взлома - восстановление секретного ключа на основе публичного. Для этого достаточно разложить число n на сомножители p и q, при этом, зная последние и открытый ключ (то есть число e), можно легко вычислить и значение d. Однако на сегодняшний день не существует эффективных способов разложения n на множители. Конечно, с ростом мощности вычислительной техники эту процедуру можно провести простым перебором, однако ничто не мешает начать пользоваться числами большей длины. Так, например, на современном этапе достаточно взять p и q разрядностью в 100 знаков, но какой же тогда понадобится компьютер, если увеличить их длину до 150 или 200 цифр?

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

К примеру, пользователь отправляет одно и то же сообщение сразу трем корреспондентам, каждый из которых использует общий показатель e=3. Перехватив эти сообщения, злоумышленник получает реальный шанс расшифровать их. Однако от подобных атак существуют очень простые и эффективные способы защиты, которые присутствуют во всех современных программных и аппаратных реализациях (например, добавление перед каждым шифрованием к исходному сообщению нескольких бит, выбранных случайным образом). Поэтому они не представляют собой абсолютно никакой опасности для пользователей.

Итак, несмотря на свой почтенный возраст, RSA до сих пор остается одним из самых надежных и самых распространенных среди алгоритмов с открытым ключом. На его основе построено множество других технологий. А поэтому обнаружение серьезной уязвимости в RSA (если, конечно, такое возможно) может привести к возникновению цепной реакции и «обрушению» целого семейства различных алгоритмов шифрования, использующихся практически везде, в том числе в банковских системах и электронной коммерции.

Оптимизация алгоритма RSA в приложениях шифрования

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

С учетом всех требований разработанная программа должна представлять собой приложение, способное зашифровывать загружаемые пользователем файлы, генерируя открытый и секретный ключи на основе случайных чисел, расшифровывать ранее зашифрованные файлы, а также уметь работать с ЭЦП (проверять ее на подлинность).

Входные данные для шифрования файлов - два случайных числа, а также файл, который предварительно должен быть открыт (или текст, введенный в предназначенном для этого текстовом поле). На основе введенных пользователем чисел определяются два ближайших к ним простых числа. Число n - результат их перемножения, - будет входить в пары, являющиеся открытым и закрытым ключами. При этом пара чисел «e и n» является открытым ключом, а «d и n» - секретным.

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

Итак, необходимый программный продукт должен состоять из трех компонентов.

Первый компонент представляет собой программу генерации ключей. Она выводит все простые числа заданного диапазона, из которых потом выбираются числа p и q. Там же находятся открытый и закрытый ключи, которые сохраняются на диске.

Второй компонент - основная программа, которая производит закрытие информации с помощью алгоритма RSA, после чего зашифрованный документ можно передавать по сети и не бояться, что информации попадет в другие руки.

Третий компонент - удостоверяющий центр, необходимый для работы с электронно-цифровой подписью (электронного сертификата): соответственно, выдачи и проверкой на подлинность.

На первый взгляд может показаться, что ЭЦП - лишний атрибут документа, однако, используя ЭЦП, можно обеспечить неизменность документа после проставления согласительной подписи каждого участника. Кроме того, на предприятиях, имеющих удаленные подразделения и филиалы, где используется электронная почта для передачи документов, использование ЭЦП снимает необходимость в распечатке и сканировании документов.

Заключение

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

На основе анализа современных методов и средств защиты информации в сетях и перспектив развития информационных технологий, можно выделить основные факторы, затрудняющие решение проблемы защиты информации в ЭВМ и их сетях:

· массовость применения;

· постоянно растущая сложность функционирования;

· разнообразие программного обеспечения персональных компьютеров и архитектурных решений.

Одним из основных средств защиты информации в ЭВМ и их сетях являются криптографические средства. Они имеют своей задачей защиту информации при передаче по линиям связи, хранении на носителях. Цифровая электронная подпись, как неотъемлемая часть криптографии, отслеживает авторство, препятствуя подмене информации, т.е. проведению несанкционированных изменений.

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

Криптографические программы представляют собой приложения, способные зашифровывать загружаемые пользователем файлы для передачи их по каналам связи и/или последующего хранения. Открытый и секретный ключи генерируются на основе генерации случайных чисел. Шифраторы позволяют также расшифровывать ранее закодированные файлы при помощи секретного ключа.

Подобный программный модуль может применяться любыми организациями, сохранение конфиденциальности информации которых имеет важное стратегическое значение. Кроме того, его можно использовать в составе других программных комплексов, к примеру, для шифрования паролей в целях разграничения доступа к ресурсам и/или разграничения прав доступа сотрудников к различным документам. Помимо этого подобные системы должны легко интегрироваться с уже существующими корпоративными системами.

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

Размещено на Allbest.ru


Подобные документы

  • История криптографии. Сравнение алгоритмов шифрования, применение в операционной системе. Анализ продуктов в области пользовательского шифрования. Включение и отключение шифрования на эллиптических кривых. Использование хеш-функции. Электронная подпись.

    курсовая работа [492,6 K], добавлен 18.09.2016

  • Перевод исходного текста и первого подключа в двоичную последовательность. Логическое сложение с исключением. Открытый и закрытый ключи в алгоритме шифрования RSA. Шифрование и расшифрование. Электронная цифровая подпись. Применение функции хеширования.

    контрольная работа [21,9 K], добавлен 28.03.2012

  • Симметричные криптосистемы как способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. Разбор и реализация шифрования алгоритма: простая и двойная перестановка, перестановка "магический квадрат".

    курсовая работа [3,3 M], добавлен 11.03.2013

  • Сравнение производительности программных реализаций алгоритмов шифрования с оптимизациями под языки С и Java. История разработки, сущность, принципы шифрования и успехи в криптоанализе таких алгоритмов шифрования как AES, RC4, RC5, RC6, Twofish и Mars.

    реферат [1,3 M], добавлен 13.11.2009

  • Электронная цифровая подпись. Асимметричные алгоритмы шифрования. Сценарий распределения открытых ключей, обмен сертификатами. Выбор программных средств. Математическая модель. Скорости Эль-Гамаля для различных длин модулей. Программная реализация.

    дипломная работа [461,7 K], добавлен 22.09.2011

  • Симметричные криптосистемы; алгоритмы шифрования и дешифрования данных, их применение в компьютерной технике в системах защиты конфиденциальной и коммерческой информации. Основные режимы работы алгоритма DES, разработка программной реализации ключа.

    курсовая работа [129,6 K], добавлен 17.02.2011

  • Симметрическое шифрование как способ шифрования, в котором применяется один и тот же криптографический ключ. Функции стандартного диалогового окна открытия и сохранения файла. Характерная схема действий при генерации подписи. Цифровая подпись файла.

    курсовая работа [641,5 K], добавлен 14.06.2011

  • Реализация алгоритма DES и режимов шифрования для любой длины сообщения и любой длины ключа. Шифрование сообщений различной длины и ключа с замериванием времени и скорости шифрования. Реализация алгоритма RSA. Сохранение зашифрованного файла на диск.

    курсовая работа [398,4 K], добавлен 26.01.2010

  • История появления симметричных алгоритмов шифрования. Роль симметричного ключа в обеспечении степени секретности сообщения. Диффузия и конфузия как способы преобразования бит данных. Алгоритмы шифрования DES и IDEA, их основные достоинства и недостатки.

    лабораторная работа [335,9 K], добавлен 18.03.2013

  • История возникновения алгоритма симметричного шифрования, условия и особенности его применения на современном этапе. Принципы и функции исследуемой технологии. Анализ главных преимуществ и недостатков использования алгоритма, оценка его уязвимости.

    курсовая работа [301,9 K], добавлен 29.10.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.