То, что вы хотите сделать, обычно называется подпись , а не шифрование .
Даже если в учебниках подпись RSA объясняется как «шифрование с помощью закрытого ключа, дешифрование»с общедоступным ", в действительности он использует несколько иную процедуру (в части, предшествующей фактическому" шифрованию "), и, таким образом, у вас есть другие функции для подписи, чем для шифрования.
Для подписи в PHP это выглядитнапример, вы можете использовать функцию openssl_sign .
Для проверки подписи в C # вы можете использовать RSACryptoServiceProvider класс .NET с его методом VerifyData.
Конечно, если вашей целью является просто аутентифицированный перенос между двумя объектами в Интернете (т. Е. С сервера на клиент), используйте SSL / TLS, это стандартное решение.Вы можете использовать свой собственный сертификат (или сертификат своего собственного ЦС) вместо дорогостоящего сертификата коммерческого ЦС, если вы распространяете корневой сертификат вместе со своим приложением.