Подтвердить что ты не робот

RSA: вычисление частных ключей с расширенным евклидовым алгоритмом

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

Вот что я сделал до сих пор:

  • Я выбрал простые числа p = 37 и q = 89 и рассчитано N = 3293
  • Я вычислил (p-1) (q-1) = 3168
  • Я выбрал число e так, чтобы e и 3168 были взаимно простыми. Я проверяю это на стандартный алгоритм евклидова, и это работает очень хорошо. Мой e = 25

Теперь мне просто нужно вычислить закрытый ключ d, который должен удовлетворять ed = 1 (mod 3168)

Используя Extended Euclidean Algorithm, чтобы найти d таких, что de + tN = 1, я получаю -887 • 25 + 7 • 3168 = 1. Я бросаю 7 и получаю d = -887. Однако, пытаясь расшифровать сообщение, это не сработает.

Я знаю из своей книги, что d должно быть 2281, и это работает, но я не могу понять, как они достигают этого числа.

Может ли кто-нибудь помочь? Я пробовал решить эту проблему в течение последних 4 часов и искал ответ повсюду. Я выполняю расширенный алгоритм Евклида вручную, но поскольку результат работает, мои вычисления должны быть правильными.

Спасибо заранее,

Мадс

4b9b3361

Ответ 1

Ты так близко, что будешь пинать себя.

3168-887 = 2281.

В частности, если у вас есть mod x, то A должен удовлетворять 0<=a<x. Если это не так, добавьте или вычтите x столько раз, сколько необходимо, пока вы не попадете в этот диапазон. Это называется модульной арифметикой.

Возможно, вы захотите ознакомиться с линейными конгруэнциями и теорией чисел. Эти темы - математика уровня в Великобритании (что бы вы назвали колледжом, я думаю), так что не волнуйтесь, если это кажется немного странным. Линейная конгруэнция просто говорит, что -887 mod 3168 и 2281 mod 3168 на самом деле одно и то же, потому что они являются частью одного и того же класса, класс, который оказывается в 2281 mod 3168 в требуемом диапазоне. 2281+3168 mod 3168 также будет в этом классе.

Удачи!

P.S. PARI/GP - теоретик полезности, используемый для расчетов. Возможно, стоит посмотреть.