Я предполагаю, что это скорее математическая проблема в контексте криптографии, поэтому я заранее извиняюсь, если это не то место, где можно спросить.По сути, мне нужно проверить, соответствует ли определенная реализация генерации пары ключей RSA FIPS 186-4. В частности, Приложение B-3-1.
FIPS 186-4 требует, чтобы $д$ (частный показатель) будет создан следующим образом:
$d = (e^{-1})\bmod(\text{LCM}(p-1, \space q-1))$
Рассматриваемая библиотека (openssl v1.0.1) вычисляет $д$ вот так:
$d = (e^{-1})\bmod((p-1)(q-1))$
Я не могу доказать или опровергнуть, создают ли эти двое один и тот же набор ответов для $д$.
Условие для генерации $р$ и $q$ в том, что $(p-1)$ и $(q-1)$ оба являются относительно простыми для $e$ (общедоступная экспонента), поэтому обе формулы имеют ответы.
Также с тех пор $р$ и $q$ оба простые, $(p-1)$ и $(q-1)$ будут как четные числа, так и из $a \times b=\text{GDC}(a, \space b) \times \text{LCM}(a, \space b)$ мы знаем это $\text{НОД}(p-1, \space q-1) \geq 2$ так $\text{LCM}(p-1, \space q-1) \neq (p-1)(q-1)$.
У меня вопрос, они одинаковые или разные?
Я также был бы признателен, если бы вы могли указать мне правильное направление с точки зрения математики, чтобы я потенциально мог решить это сам.
P.S.: Насколько я понимаю, для openssl v1 есть модуль FIPS, а также то, что openssl v3.0 попытается подать заявку на сертификат FIPS 140-2. К сожалению, я застрял в версии, которую я упомянул, и я не могу ее изменить (это не зависит от меня).