我的任务是想出一种方法来更改我们公司的数据库,使其符合 FIPS 140-2 标准。我们主要是一家微软商店,目前拥有一个利用 RijndealManaged 来执行加密/解密的加密库。涉及多个环境,因此无论我想出什么解决方案,都需要在独立的计算机上对同一消息进行加密/解密(所以我认为我不能使用像 AESCryptoProvider 这样依赖于操作系统的 .net 库)
我对密码学没有深入的了解或背景,但根据我迄今为止所做的研究,我知道 AES 仍然是符合 FIPS 140-2 的算法。我的问题是:是否有更新的 .NET AES 托管模块可供我在这些环境中使用以符合 FIPS 140-2 要求? AESManaged 模块是否只需要我以特定方式配置它(即 256 key 大小和 128 block 大小)才能符合 FIPS 要求?
我无法使用第三方库。
最佳答案
只要安装的 .Net Framework 版本为 3.5+,包装 NIST 认证的 FIPS 140-2 兼容算法的类就可用。
诀窍是在一台机器上加密并在另一台机器上解密,您必须使用相同的 key 和初始化向量值。
您应该能够简单地将库中对 RijndaelManaged 类的调用替换为对 AESCryptoServiceProvider 类的相同调用。
关于C# FIPS 140-2 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35895547/