2010-07-20 4 views
1

У меня есть веб-сервис, который выполняет многие операции RSA-подписи. Я использую CryptograhyProvider из .net. Это использует неуправляемый CyptoAPI из Windows.Высокопроизводительная реализация RSA для C# или C

Я часто эта ошибка:

System.Security.Cryptography.CryptographicException: Der RPC-Server ist für diesen Vorgang zu stark ausgelastet. [=The rpc server is too busy to complete the transaction]

bei System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr) bei System.Security.Cryptography.Utils._ImportKey(SafeProvHandle hCSP, Int32 keyNumber, CspProviderFlags flags, Object cspObject, SafeKeyHandle& hKey) bei System.Security.Cryptography.RSACryptoServiceProvider.ImportParameters(RSAParameters parameters)

Вместо того, чтобы пытаться это исправить, я предпочел бы заменить мою операцию RSA-подписи с DllImport к высокоэффективной реализации RSA C.

Кто-нибудь знает один или может порекомендовать его?

Является ли OpenSSL быстрее, чем MS CryptoApi? Я также подозреваю, что загрузка ключа может вызвать серьезные накладные расходы.

Спасибо!

+0

Это звучит как преждевременной оптимизации для меня. Если вы считаете, что хотите повысить производительность, сначала необходимо измерить эффективность существующей реализации RSA. Затем определите производительность, которая вам нужна. Вы вряд ли найдете программную RSA-реализацию, которая даже в 2 раза лучше, чем MS. –

+0

Оборудование тоже имеет значение. Модули Crypto-ускорения - это хороший материал (хотя, если вы только подписываете вещи, то в них не обязательно будет иметься RNG). Компиляция вашей крипто-библиотеки с некоторыми флагами оптимизации, установленными для вашего целевого процессора, тоже будет иметь значение. – nmichaels

ответ

2

Вы также можете рассмотреть NSS. This 2 года, но все равно стоило бы изучить.

+0

Спасибо! Но, к сожалению, они испытывают только симметричные алгоритмы, а не RSA – Christian

3

Я бы порекомендовал OpenSSL, но я не знаю сравнения с MS CryptoAPI. Его простая в использовании и документация обширна вместе с исходным кодом образца.

Проверьте подробное описание API here.

 Смежные вопросы

  • Нет связанных вопросов^_^