FIPS-совместимый HashAlgorithm на WinXP?

Как я могу использовать C# в FIPS-совместимом окне WinXP SP2 для уникального хэширования содержимого данного файла? Я не беспокоюсь о производительности (пока?).

Надеемся, что кто-то может указать на исключение из "правила", но кажется, что классы "*ServiceProvider" соответствуют FIPS и недоступны в WinXP, в то время как классы "*Managed" доступны в WinXP и не соответствуют FIPS.

И MD5 отсутствует, потому что он не является уникальным (да, даже такая небольшая вероятность неприемлема для моего проекта).

2 ответа

Решение

Кажется, они совместимы с Fips:

HMACSHA1, MACTripleDES и SHA1CryptoServiceProvider

ссылка: http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html

Если все, что вам нужно, это провайдер хэширования, который не будет отключать ошибки, если на компьютере Windows включен параметр политики, совместимый с FIPS, в реестре, тогда вы можете использовать SHA1CryptoServiceProvider, который совместим с FIPS и требует только.Net 2.0 и XP. SP2.

Но - если вам действительно нужна настоящая FIPS-совместимая реализация по соображениям безопасности и политики, тогда краткий ответ: либо обновите клиенты до Win XP SP3 (или более новой ОС), либо посмотрите на использование сторонней криптографической проверки, проверенной FIPS. Поставщики услуг (CSP).

Хотя Win XP SP2 поддерживает FIPS-совместимую реализацию SHA1 (SHACryptoServiceProvider), которая будет работать в FIPS-совместимом режиме (параметр реестра), SHA1 не предполагается использовать для новых реализаций после 2010 года и может больше не быть FIPS-совместимым вообще, в зависимости от использование (т.е. использование для генерации случайных чисел против хеширования).

Если вы можете получить хотя бы XP SP3, то вы можете использовать SHA256CryptoServiceProvider или SHA512CryptoServiceProvider, которые оба совместимы с FIPS.

Другие вопросы по тегам