2010-10-05 63 views
7

我以下列方式使用System.Security.Cryptography的TripleDESCryptoServiceProvider:TripleDESCryptoServiceProvider FIPS 140-2合規性

TripleDESCryptoServiceProvider CreateCipher() 
     { 
      TripleDESCryptoServiceProvider cipher = new TripleDESCryptoServiceProvider(); 
      cipher.KeySize = 192; 
      cipher.BlockSize = 64; 
      cipher.Padding = PaddingMode.ISO10126; 
      cipher.Mode = CipherMode.CBC; 
      return cipher; 
     } 

我想知道這是否是符合FIPS 140-2標準。我發現了許多頁面,概述了合規性的不同方面,但在我看來,微軟在平臺上獲得他們的合規性證書,而不是由類(合理)獲得合規性證書。取而代之,我無法找到上述密碼符合FIPS 140-2的任何肯定確認。到目前爲止,最有用的鏈接我發現:

總之,有人知道這個類/加密方法會屬於哪個證書號嗎?還是平臺特定? (這就是我正在收集的內容。)

+1

FIPS 140-2認可的密碼和FIPS 140-2認證的實施方案有所不同。 Triple-DES CBC已獲批准,但您的實施是否得到認證取決於Microsoft所做的測試,以及您是否按照爲這些測試指定的標準進行部署。 – erickson 2010-10-05 20:35:10

+0

不是試圖把它變成一個論壇,而是T-DES本身批准,或者被批准作爲一套密碼的一部分,並且受到平臺特定的約束? – Simpleton 2010-10-05 23:09:00

回答

6

FIPS 140-2認證適用於算法和模塊。算法實現通過傳遞一系列測試用例來獲得認證。當他們滿足所有FIPS要求時,模塊將獲得認證。其中一個要求是僅提供FIPS認證算法的密碼服務(以及FIPS認可的非Diffie-Hellman密鑰交換方式使用的非FIPS認證算法)。

三重DES是一種FIPS-certified algorithm,因此能夠獲得FIPS證書。這是一個難題。

下一條是找出哪些模塊提供三重DES,以及是否該模塊FIPS認證。您已將linked添加到Microsoft列出所有FIPS認可模塊的頁面。這就是你需要知道的一切。我認爲從Windows Vista開始,一切最終都會通過bcrypt.dll

當然,你也可以直接去source和搜索模塊自己。舉個例子,在Windows Vista中,微軟的bcrypt.dll證書#1001。您可以看到,該模塊已經爲其Triple-DES實現(Cert。#656)獲得了算法證書,因此您可以在此模塊中使用Triple-DES。

那麼您如何知道您使用FIPS認證模塊? You enable FIPS mode in Windows。如果您未啓用FIPS模式,則在FIPS認可的操作模式下未使用FIPS認證的算法。在Windows上,如果您嘗試在FIPS模式下使用非FIPS算法,則會收到異常。

把我送到我的最後一點是一個好辦法,找出一種算法是否被批准用於FIPS模式的用途是開啓FIPS模式,試試吧!

順便說一句,this Triple-DES certificate page列出了所有經批准的經營三重DES模式:

ECB = TDEA Electronic Codebook 
TCBC = TDEA Cipher Block Chaining 
TCBC-I = TDEA Cipher Block Chaining - Interleaved 
TCFB = TDEA Cipher Feedback 
TCFB-P = TDEA Cipher Feedback - Pipelined 
TOFB = TDEA Output Feedback 
TOFB-I = TDEA Output Feedback - Interleaved 

而下面的鍵控選項。

KO 1 = Three-key Triple DES 
KO 2 = Two-key Triple DES 
+0

這就是我正在尋找的深度和清晰度。謝謝! – Simpleton 2010-10-11 15:10:49

3

This有一個FIPS兼容算法的列表。

FIPS兼容的算法:

哈希算法

HMACSHA1

MACTripleDES

SHA1CryptoServiceProvider

個對稱算法(使用相同的密鑰 進行加密和解密)

DESCryptoServiceProvider

TripleDESCryptoServiceProvider

非對稱加密算法(用於加密公共 密鑰和解密私鑰 )

DSACryptoServiceProvider

的RSACryptoServiceProvider

我也問過類似的question關於AES。

+0

我曾經見過同樣的事情,也許我正在尋找太精煉的答案。我想知道是否有一個特定的NIST證書可以指向我們的客戶端來封裝這個算法,或者它包含的特定的微軟加密庫。 – Simpleton 2010-10-05 21:58:38

+0

此外,從.NET 3.5開始,包含以下內容並符合FIPS標準:SHA256CryptoServiceProvider,SHA384SHA256CryptoServiceProvider和SHA512SHA256CryptoServiceProvider – RobSiklos 2011-12-07 14:18:48

1

我個人會將AES用於我的加密,因爲它比TripleDES'更輕',更安全,實際上我認爲它現在是事實上的算法。如果AES不符合標準,我會感到驚訝。

+0

我知道AES符合FIPS 197,這是一個超集FIPS 140的,但我們已經有三重DES的部署,所以世界上沒有在短期內改變它。我只需要知道是否有TripleDESCryptoServiceProvider類的特定NIST證書。 – Simpleton 2010-10-05 23:07:27

+0

TripleDESCryptoServiceProvider是FIPS 140-1,因爲它是CryptoApi的一部分。 – 2010-10-07 10:41:15