Según mi lectura, no estoy seguro de si AES es un algoritmo único y estandarizado que puede funcionar con diferentes claves de longitud o una familia de algoritmos similares. Lo que quiero decir es que si encuentro 2 implementaciones de AES que tengan una clave de 128 bits, ¿debería estar seguro de que funcionarán de manera idéntica (excluyendo errores)?Cifrado AES y C#
Específicamente en .Net/C#, que estaba confundido por qué hay dos implementaciones de clase base abstracta System.Security.Cryptography.Aes
: System.Security.Cryptography.AesCryptoServiceProvider
& System.Security.Cryptography.AesManaged
.
Entonces parece que hay distinción/superposición entre AES y Rijndael, .NET tiene Rijndael
y RijndaelManaged
clases, así como RijndaelManagedTransform
¿Cuál es la diferencia entre todos ellos? Noto que las clases AES parecen existir solo desde .NET 3.5 mientras que Rijndael ha estado presente desde 1.0
Disculpa si estas son preguntas tontas, soy nuevo en criptografía que no sean funciones seguras de hashing.
Como se mencionó anteriormente sobre la certificación FIPS, AesCryptoServiceProvider funcionará en situaciones en las que una aplicación .NET se ejecuta en un PC configurado con la política de seguridad local de "algoritmos" Uso compatible con FIPS. El AesManaged no lo hará. Por ejemplo, una aplicación que se ejecuta en un PC con Windows 10 configurado para el gobierno de Estados Unidos tiene esta configuración y arrojará una excepción de error en el uso de AesManged (Mensaje de error: Esta aplicación no es parte de los Windows Platform FIPS validado algoritmos criptográficos) . –