В шифровании RSA как найти d, учитывая p, q, e и c?

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

3 ответов


Ну d выбирается такой, чтобы d * e == 1 modulo (p-1)(q-1), Так что вы можете использовать алгоритм Евклида для этого (найти модульные перемножительная).

Если вы не заинтересованы в понимании алгоритма, вы можете просто позвонить BigInteger#modInverse напрямую.

 d = e.modInverse(p_1.multiply(q_1))

учитывая, что p=11, q=7, e =17, n=77, φ (n) = 60 и d=?

сначала подставьте значения из Формулы: -

ed mod φ (n) =1

17 д мода 60 = 1

следующий шаг: - возьмите тотиент n, который равен 60 с левой стороны и [e] с правой стороны.

60 = 17

3-й шаг: - спросите, сколько раз 17 идет к 60. То есть 3,5..... Проигнорируйте остаток и возьмите 3.

60 = 3(17)

Шаг 4: Теперь вам нужно, чтобы сбалансировать это уравнение 60 = 3(17) так, чтобы левая сторона равна правой стороны. Как?

60 = 3(17) + 9

Шаг 5: - Теперь возьмите 17 в левую сторону и 9 в правую сторону.

17 = 9

Шаг 6:- спросите, сколько раз 9 переходит в 17. Это 1.8.......

17 = 1(9)

Шаг 7: - Шаг 4: - Теперь вам нужно сбалансировать это 17 = 1 (9)

17 = 1(9) + 8

Шаг 8: - снова возьмите 9 в левую сторону и 8 в правую сторону.

9 = 1(8)

9 = 1(8) + 1

шаг A: - последнее уравнение в шаге 8, которое равно 9 = 1(8) + 1, можно записать следующим образом: 1.= 9 – 1(8)

шаг B: - мы знаем, что такое (8), просто сказав 8 = 17 – 1(9) из шага 7. Теперь мы можем переписать шаг как:-

1=9 -1(17 – 1(9))

1=1(9)-1(17) +1(9)

1=2(9)-1(17)

шаг C: – мы знаем, что такое (9), просто сказав 9 = 60-3(17) из шага 4. Теперь мы можем переписать шаг B как: -

1=2(60-3(17) -1(17)

1=2(60)-6(17) -1(17)

1=2(60)-7(17)

60-7=d

тогда, следовательно, значение d= 53.


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

в первую очередь, что мы должны пройти в расширенном евклидовом Algorthim для вычисления d ?

помните, что ed mod φ(n) = 1 и cgd(e, φ(n)) = 1.

зная, что в расширенном евклидовом Algorthim определяется по формуле cgd(a,b) = as + bt, следовательно,cgd(e, φ(n)) = es + φ(n)t = 1, где d должно быть равно s + φ(n) для того, чтобы удовлетворить

ed mod φ(n) = 1 состояние.

Итак, учитывая e=17 и φ(n)=60 (заимствовано из Sidudozo это), мы подставляем соответствующие значения в Формулу, указанную выше: cgd(e, φ(n)) = es + φ(n)t = 117s + 60t = 1.

в конце Sidudozo это получаем s = -7. Таким образом d = s + φ(n)d = -7 + 60d = 53.

давайте проверим результаты. Условие ed mod φ(n) = 1.

посмотреть 17 * 53 mod 60 = 1. Правильно!