2016-03-09 2 views
0

Мне поручено придумать способ изменить библиотеку данных нашей компании на соответствие требованиям FIPS 140-2. Мы в первую очередь являемся магазином microsoft и в настоящее время имеем крипто библиотеку, использующую RijndealManaged для выполнения нашего шифрования/дешифрования. Существует несколько разных сред, поэтому любое решение, которое я придумал, потребует шифрования/дешифрования того же сообщения, что и на независимых машинах (поэтому я не думаю, что могу использовать библиотеки .net, такие как AESCryptoProvider, который полагается на ОС)C# FIPS 140-2 Шифрование

У меня нет глубокого понимания или фона в криптографии, но из исследований, которые я сделал с этой точки зрения, я знаю, что AES по-прежнему является совместимым с FIPS 140-2 алгоритмом. Мой вопрос: есть ли обновленный .NET AES Managed модуль, который я мог бы использовать в этих средах, чтобы соответствовать требованиям FIPS 140-2? Требуется ли для модуля AESManaged настроить его определенным образом (т. Е. Размер 256 ключей и размер блока 128), чтобы соответствовать требованиям FIPS?

Я не могу использовать сторонние библиотеки.

+0

Не тратьте время на FIPS-140. Это слишком сложная и слишком дорогостоящая вещь. – i486

+2

Проблема заключается в использовании NIST Certified FIPS-совместимого алгоритма. Microsoft только NIST сертифицировала алгоритмы, встроенные в ОС (поскольку сертификация - дорогостоящий/длительный процесс). Любая инфраструктура (.Net или иначе), которая не использует алгоритмы ОС, не сертифицирована NIST FIPS. Таким образом, RijndealManaged является совместимым с FIPS (это тот же алгоритм, что и в ОС), но он не сертифицирован NIST. – Kevin

+0

См. Http://stackoverflow.com/a/939106/613130 ​​ – xanatos

ответ

2

До тех пор, пока .NET Framework установлена ​​на 3.5+, будут доступны классы, которые завершают сертифицированные NIST алгоритмы FIPS 140-2.

Хитрость заключается в том, чтобы зашифровать на одной машине и расшифровать на другом, вы должны использовать одни и те же значения вектора и инициализации.

Вы должны просто заменить вызовы в своей библиотеке классу RijndaelManaged с теми же вызовами класса AESCryptoServiceProvider.

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

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