2009-08-04 63 views
10

myślę wyróżniające czynniki sąKiedy powinienem wybrać AesCryptoServiceProvider przez AesManaged lub RijndaelManaged?

  • AesCryptoServiceProvider FIPS jest zgodny
  • AesManaged jest cross-platform, wymaga .NET 3.0
  • RijndaelManaged działa na .NET 2.0, wymaga ograniczając rozmiar bloku

czy to prawda?

+0

możliwe duplikat [Dlaczego RijndaelManaged i AesCryptoServiceProvider powrocie różne wyniki?] (http://stackoverflow.com/questions/957388/why-are-rijndaelmanaged-and-aescryptoserviceprovider-returning-different-results) –

Odpowiedz

2

AesManaged documentation stwierdzono, że

„Algorytm AES jest zasadniczo Rijndael symetryczny algorytm stałej wielkości bloku i iteracji Count. Funkcja ta klasa taki sam sposób jak RijndaelManaged klasy, lecz ogranicza bloki 128 bitów i nie zezwalaj na tryb zwrotny "

Sugerowałoby to użycie trybu EBC (Elektroniczna książka kodowa). Może to stanowić istotną słabość dla zaszyfrowanych danych, ponieważ oznacza to, że identyczne bloki danych w postaci zwykłego tekstu spowodują identyczne bloki wyjścia szyfrowego.


Edit: (jako korekta)
Dokumentacja dla właściwości Mode wskazuje, że tryb ustawień domyślnych rzeczywiście do CBC (która do złudzenia to tryb sprzężenia zwrotnego), ale nie można ustawić na CFB lub OFB (Cipher Feedback/Output feedback)

+2

nr - nie sugeruje mi, że jest to przydatne tylko dla EBC. Znając styl pracy w formacie Microsoft, jeśli w rzeczywistości AES były użyteczne tylko dla ECBB, dokument wyraźnie to stwierdza. (i nie jest to "Cookbook", jego "Codebook"). Istnieją inne tryby obsługiwane przez AES, w tym CBC. – Cheeso

+0

Hmm, myślę, że masz rację, może to być sprzeczność w dokumentacji. Zaktualizowana odpowiedź – PaulG