Любое изменение параметров модуля, экспоненты или CRT, которые используются во время вычисления, приведет к сбою алгоритма для создания правильной сигнатуры или к сбою во время дешифрования (скорее всего, с ошибкой заполнения).
Однако, поскольку закрытый ключ RSA - это не просто одно число, он обычно сохраняется в определенной в кодировке PKCS # 1 структуре ASN.1 / DER.Теперь все зависит от того, что вы измените в этой структуре, если закрытый ключ достаточно поврежден или нет.Кодирование этой структуры (если это закрытый ключ PEM) также может играть роль.
Скорее всего, вы изменили публичную или приватную экспоненту, пока параметры CRT RSA используются в расчете (либодля расчетов используются частные экспоненты или параметры ЭЛТ).В этом случае расчет будет продолжаться в обычном режиме.У вас будет около 256 байт, которые можно изменить, не вызывая проблем с 2048-битным ключом.
Более медленный «простой» расчет RSA использует частную экспоненту, что означает, что любое изменение параметров CRT останется незамеченным(если структура больше не анализирует).Для 2048-битного ключа у вас, скорее всего, будет более 5 х 128 байт, которые можно изменить без проблем!
Из PKCS # 1:
RSAPrivateKey ::= SEQUENCE {
version Version,
modulus INTEGER, -- n
publicExponent INTEGER, -- e
privateExponent INTEGER, -- d
prime1 INTEGER, -- p
prime2 INTEGER, -- q
exponent1 INTEGER, -- d mod (p-1)
exponent2 INTEGER, -- d mod (q-1)
coefficient INTEGER, -- (inverse of q) mod p
otherPrimeInfos OtherPrimeInfos OPTIONAL
}
здесь CRT(Китайская теорема об остатках) параметрами являются параметры prime1, prime2, экспонента1, экспонента2 и, наконец, коэффициента.