Вход

Криптосистема Рабина на языке Python

Рекомендуемая категория для самостоятельной подготовки:
Решение задач*
Код 404770
Дата создания 2019
Страниц 1 ( 14 шрифт, полуторный интервал )
Файлы
ZIP
referatbank-m404770.zip[Архив, 943 кб]
Без ожидания: файлы доступны для скачивания сразу после оплаты.
Ручная проверка: файлы открываются и полностью соответствуют описанию.
390руб.
КУПИТЬ

Описание

Реализация криптосистемы Рабина на Python 3 с подробными комментариями. Программа способна осуществлять шифрование введенного числа в двух вариантах - с вводом заданных ключей и с их генерацией. В первом случае осуществляется проверка ключей на сравнимость. Проверка простоты числа осуществляется с использованием теста Миллера-Рабина. ...

Введение

Криптосистема Рабина

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

Зашифрованное сообщение можно расшифровать 4 способами.

Недостатком системы является необходимость выбора истинного сообщения из 4-х возможных.

История

В январе 1979 года Майкл О. Рабин опубликовал описание своей системы. Было доказано, что восстановление исходного текста из зашифрованного столь же трудно, как факторизация больших чисел. Система Рабина стала первой асимметричной криптосистемой, для которой было выполнено такое доказательство. Сложность восстановления связана с трудностью извлечения квадратного корня по модулю составного числа N = р · q. Задача факторизации и задача по извлечению квадратного корня эквивалентны, то есть:

  • зная простые делители числа N можно извлекать квадратные корни по модулю N;
  • умея извлекать квадратные корни по модулю N, можно разложить N на простые множители.

Генерация ключа

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

Процесс генерации ключей следующий:

выбираются два случайных числа p и q с учётом следующих требований:

  • числа должны быть большими;
  • числа должны быть простыми;
  • должно выполняться условие: p ≡ q ≡ 3 mod 4.

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

  • вычисляется число n = p · q;
  • число n — открытый ключ; числа p и q — закрытый.

Шифрование

Исходное сообщение m (текст) шифруется с помощью открытого ключа - числа n по следующей формуле: c = m² mod n.

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

Расшифровка

Для расшифровки сообщения необходим закрытый ключ — числа p и q. Процесс расшифровки выглядит следующим образом:

  • сначала, используя алгоритм Эвклида, из уравнения ypp+yqq=1 находят числа yp и yq;
  • далее, используя китайскую теорему об остатках, вычисляют четыре числа:

...

Фрагмент работы для ознакомления

# Тест Миллера - Рабина проверки простоты числа
# Возвращает true, если num - простое число
def miller_rabin(num, k):
t = num - 1
n = 0
# пока t четное, необходимо продолжать уменьшать его вдвое,
# подсчитывая, сколько раз выполняется эта операция в переменной n
while t % 2 == 0:
t = t // 2
n += 1
# далее выполняется проверка простоты числа num в течение k раундов
for _ in range(k):
a = random.randrange(2, num - 1) # выбирается случайное целое число a в отрезке [2, num − 1]

...

Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00618
© Рефератбанк, 2002 - 2024