これはhttp://crypto.stackexchange.comの質問かもしれませんが、答えは暗号化アルゴリズム自体ではなく.NETに関連している可能性があるため、最初にここで試してみると思いました。
RSACryptoServiceProvider クラスには、メソッドSignHashがあります。
秘密鍵で暗号化することにより、指定されたハッシュ値の署名を計算します。
最初の引数はデータのハッシュ値 (これは公平に見えます) ですが、2 番目の引数はハッシュ値の作成に使用されるアルゴリズムを示す文字列です。
問題は、なぜハッシュ アルゴリズムが重要なのかということです。メソッドが行う必要があるのは、秘密鍵を使用して指定された値を暗号化し、結果を返すことだけでしょうか? そして、本当に知る必要がある場合、なぜ RSACryptoServiceProvider にはそれを行うメソッドがないのでしょうか (適切な Verify メソッドと共に)?