русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Алгоритм RSA


Дата добавления: 2013-12-24; просмотров: 914; Нарушение авторских прав


Алгоритм RSA предложили в 1977г. три автора Р. Райвест (Rivest), А. Шамир (Shamir) и А. Адлеман (Adleman). Алгоритм получил свое название по первым буквам фамилий его авторов. Алгоритм RSA стал первым полноценным алгоритмом с открытым ключом, который может работать как в режиме шифрования данных, так и в режиме электронной цифровой подписи.

Надежность алгоритма основывается на трудности факторизации больших чисел и трудности вычисления дискретных логарифмов.

В криптосистеме RSA открытый ключ КВ, секретный ключ kB, сообщение М и криптограмма С принадлежат множеству целых чисел

ZN={0,1,2,...,N-1},

где N - модуль: N = P*Q.

Здесь Р и Q - случайные большие простые числа. Для обеспечения максимальной безопасности выбирают Р и Q равной длины и хранят в секрете.

Множество ZN с операциями сложения и умножения по модулю N образует арифметику по модулю N.

Открытый ключ КВ выбирают случайным образом так, чтобы выполнялись условия:

,

,

где - функция Эйлера.

Функция Эйлера указывает количество положительных целых чисел в интервале от 1 до N, которые взаимно просты с N.

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

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

kB * КB = 1 (mod()

или

kB=KB-1(mod(P-1)(Q-1)).

Это можно осуществить, так как получатель В знает пару простых чисел (P,Q) и может легко найти .

Открытый ключ КB используют для шифрования данных, а секретный ключ kB - для расшифрования. Преобразование шифрования определяет криптограмму С через пару (открытый ключ КB, сообщение М) в соответствии со следующей формулой:

,

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



Обращение функции , т.е. определение значения М по известным значениям С, КB и N практически неосуществимо при N ≈ 2512.

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

.

Процесс расшифрования можно записать так:

DBB (М)) = М.

Подставляя в DBB (М)) = М значения и , получаем:

Или

Таким образом, если криптограмму

возвести в степень kB, то в результате восстанавливается исходный открытый текст М, так как

. (15)

Таким образом, получатель В, который создает криптосистему, защищает два параметра: секретный ключ kB и пару чисел (P,Q), произведение которых дает значение модуля N. С другой стороны, получатель В открывает значение модуля N и открытый ключ КB.

Противнику известны лишь значения КB и N. Если бы он смог разложить число N на множители Р и Q, то узнал бы "потайной ход" - тройку чисел {Р,Q, kB}, вычислил значение функции Эйлера

. (16)

и определил значение секретного ключа kB.

Однако, как уже отмечалось, разложение очень большого N на множители вычислительно неосуществимо (при условии, что длины выбранных Р и Q составляют не менее 100 десятичных знаков).



<== предыдущая лекция | следующая лекция ==>
Асимметричная криптография | Действия пользователя В.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.