3

I have a class which in C# doing RSA encryption where I used the default RSACryptoServiceProvider class. But I have a concern regarding the following; If you have the word hello for an input and the encrypted string is returned as ABCDE, if you perform another encrypt operation on the input hello, using the same keys (public and private) for the RSA will the output be again ABCDE?

Thanks in advance

1
  • Ryan, was there anything lacking in my answer? Commented Aug 4, 2010 at 7:52

1 Answer 1

5

Indeed, RSA is a deterministic encryption algorithm, so given the same keys and plaintext, the same cryptotext will be outputted. RSA is commonly used with a padding scheme to be semantically secure.

This is of course only the general case. I can't vouch for the RSACryptoServiceProvider in C#

Edit:

Of course, your chosen padding scheme needs to be pretty pseudorandom as well. OAEP is one commonly used.

Sign up to request clarification or add additional context in comments.

4 Comments

Worth noting is that due to this, RSA is vulnerable to statistical analysis if an attacker has enough data and the data is not padded. For this reason protocols such as SSH use RSA for authentication and a different algorithm for data encryption.
But is the padding scheme deterministic as well?
@Henk Holterman: That would be kind of silly, wouldn't it? :P
I thought so. But what does that mean for the original question?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.