FIPS-совместимый HashAlgorithm на WinXP? - PullRequest
1 голос
/ 05 августа 2009

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

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

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

Ответы [ 2 ]

2 голосов
/ 14 ноября 2012

Если все, что вам нужно, это провайдер хэширования, который не будет отключать ошибки, когда на компьютере 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.

0 голосов
/ 21 февраля 2010

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

HMACSHA1, MACTripleDES и SHA1CryptoServiceProvider

ref: http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html

...