RSACryptoServiceProvider.Encrypt
просто вызывает Windows CryptEncrypt
, поэтому вы все равно не найдете свой ответ.
Похоже, у вас сложилось впечатление, что он работает с байтами во время операции RSA, но на самом деле он работаетв битах или числах, в зависимости от того, как вы хотите об этом думать.
32-разрядное целочисленное значение 253 плюс 32-разрядное целочисленное значение 5 создает 32-разрядное значение 258, но на уровне байтов{ FD, 00, 00, 00 }
+ { 05, 00, 00, 00 }
= { 02, 01, 00, 00 }
(младший порядковый гекс). Операция имеет больше смысла на уровне числа или на уровне битов, чем на уровне байтов ... но сложение все же имеет смысл на уровне байтов.
Если вы действительно хотите понять, что происходит, вы можетешаг BigInteger.ModPow
, который является управляемой реализацией основной операции, связанной с RSA. Назначение типа BigInteger - работать с числами без ограничения пространства на 32 или 64 бита.