RSACryptoPad каждый раз дает разные результаты - PullRequest
0 голосов
/ 20 марта 2012

Я пытаюсь проверить правильность своей реализации RSA с примером RSACryptoPAD здесь: http://www.codeproject.com/Articles/10877/Public-Key-RSA-Encryption-in-C-NET

Но это всегда создает разные результаты шифрования.Разве RSA не просто мод и мощная операция?Но программа может правильно расшифровать все зашифрованные тексты.Мои результаты совпадают с сайтом http://nmichaels.org/rsa.py.Я думаю, что RSACryptoPAD делает что-то еще?

1 Ответ

2 голосов
/ 20 марта 2012

Код использует RSACryptoServiceProvider . Линия

  byte[] encryptedBytes = rsaCryptoServiceProvider.Encrypt( tempBytes, true );

Указывает шифровать, используя OAEP-заполнение , что вносит случайность в заполнение. Причина этого заключается в том, что шифрование одного и того же открытого текста всегда будет давать разные результаты (как вы видите). Это хорошо, так как предотвращает утечку информации, когда злоумышленник видит, что вы отправили одно и то же сообщение несколько раз.

Есть отличный исторический пример того, почему это важно. « AF не хватает воды »

...