Ответ 1
Вы не можете напрямую сравнивать все типы криптографических алгоритмов. Это было бы похоже на сравнение алгоритма сортировки с алгоритмом умножения: у них разные цели. При этом я бы ответил:
- Симметричный шифр: AES-256
- Асимметричный шифр: RSA с 4096-битным ключом (я считаю, что это максимум в .NET) или ECDSA с 571-битным ключом (но это поддерживается только в .NET 3.5)
- Хэш: SHA-512
- Код аутентификации сообщения: HMAC с SHA-512
Как говорится, для большинства приложений это слишком много, и вы должны делать все возможное, используя AES-128, RSA с 2048-битным ключом, SHA-256 и HMAC с SHA-256.