Мы будем интенсивно использовать следующий факт: для фиксированного публичного модуля $n$ произведение различных простых чисел, пара целых чисел $(д,г)$ формирует совпадающую пару показателей RSA [то есть с $c\mapsto c^d\bmod n\,=\,m$ способный надежно расшифровать любой открытый текст $м$ в $[0,n)$ зашифровано в $m\mapsto m^e\bmod n\,=\,c$ ] если и только если$$e\cdot d\equiv1\pmod{\lambda(n)}$$куда $\лямбда$ это Функция Кармайкла. Можно показать, что это следует из определения $\лямбда(п)$ как наименьшее строго положительное целое число $у$ такой, что $m^y\экв 1\pmod n$ для всех $m\in\mathbb Z^*$. Это выполняется независимо от знака $д$.
Следует, что $t$ шага 1 алгоритма вопроса таков, что существует $k\in\mathbb Z$ с $t=k\cdot\лямбда(n)$.
Если алгоритм находит $f=1$ таким образом, при первом выполнении шага 2 выполняется $r\cdot k\cdot\лямбда(n)+s\cdot e_1=1$, следовательно $s\cdot e_1=1+(-r\cdot k)\cdot \lambda(n)$, следовательно, когда алгоритм устанавливает $d'_1=s$ на шаге 3 выполняется $e_1\cdot d'_1\equiv1\pmod{\lambda(n)}$. Применяя первый факт, $(e_1,d'_1)$ это совпадающая пара показателей RSA для общего модуля $n$. Если мы хотим $d'_1$ чтобы быть неотрицательным, мы можем сделать $d'_1=s\bмод т$, который по определению находится в диапазоне $[0,t)$ а также такое, что $e_1\cdot d'_1\equiv1\pmod{\lambda(n)}$.
Все идет не так, когда $f\ne1$ при первом выполнении шага 2. Часто $s$ не будет делиться $t$ на шаге 4, предотвращая применение алгоритма как есть. Пример: $р=13$, $q=19$, $n=247$, $\varphi(n)=216$, $\лямбда(п)=36$, $e_1=91$, $e_2=25$, $d_1=19$, $d_2=121$, $т=3024$, $г=-4$, $s=133$, $ф=7$, $t/s=432/19\не\в\mathbb Z$.
изменение $t:=\frac t s$ к $t:=\frac т f$ на шаге 4 гарантирует делимость и оставляет алгоритм в рабочем состоянии. Аргумент: $f$ делит $e_1$, и $\gcd(e_1,\лямбда(n))=1$, таким образом $f$ взаимно прост с $\лямбда(п)$, поэтому мы перезапускаем шаги 2 с $t$ по-прежнему кратно $\лямбда(п)$.
Альтернативно: дано $(n,e_2,d_2)$ противник может повлиять $n$ (видеть это) и из этого получить $\шляпа{d_1}=е^{-1}\bmod\лямбда(п)$ соответствие $(n,e_1)$, обычно с $\шляпа{d_1}$ меньше/быстрее, чем $d'_1$; или получить рабочий приватный ключ в виде позволяющем ЭЛТ-операция таким образом, еще более быстрое расшифрование или подпись.