2016-03-09 48 views
0

我的任務是想出一種方法將我們公司的數據庫更改爲符合FIPS 140-2標準。我們主要是微軟商店,目前有一個加密庫,利用RijndealManaged來執行我們的加密/解密。涉及到多種環境,所以無論我想出什麼解決方案,都需要在獨立機器上對同一個消息進行加密/解密(所以我不認爲我可以使用依賴OS的AESCryptoProvider等.net庫)C#FIPS 140-2加密

我對加密技術沒有深入的理解或背景,但是我已經完成了對這一點的研究,但我知道AES仍然是符合FIPS 140-2的算法。我的問題是:是否有更新的.NET AES Managed模塊,我可以在這些環境中使用FIPS 140-2兼容? AESManaged模塊是否只需要我以特定方式(即256個密鑰大小和128個塊大小)對其進行配置,以符合FIPS標準?

我不能使用第三方庫。

+0

不要浪費時間與FIPS-140。這是太複雜和太昂貴的「事情」。 – i486

+2

問題是使用符合NIST認證的FIPS兼容算法。微軟只有NIST認證OS內置的算法(因爲認證是一個昂貴/漫長的過程)。任何不使用操作系統算法的框架(.Net或其他)都不符合NIST認證的FIPS標準。因此,本質上,RijndealManaged符合FIPS(與OS中的算法完全相同),但它不是NIST認證的。 – Kevin

+0

請參閱http://stackoverflow.com/a/939106/613130 – xanatos

回答

2

只要安裝的.Net Framework爲3.5以上,包裝NIST認證FIPS 140-2兼容算法的類將可用。

訣竅是在一臺機器上加密並在另一臺機器上解密,你必須使用相同的密鑰和初始化向量值。

您應該可以簡單地使用對AESCryptoServiceProvider類的相同調用將庫中的調用替換爲RijndaelManaged類。