¿Cuándo debería uno usar RSACryptoServiceProvider vs AESCryptoServiceProvider

1

Estoy interesado en almacenar certificados para varios propósitos en una tarjeta inteligente. Dado que esta respuesta ilustra cómo hay diferencias confusas y similitudes entre RSA y AES

¿Cuándo debería usarse una clase sobre la otra para obtener la mayor interoperabilidad? Si la clase no importa tanto como la configuración, qué configuración es la más adecuada.

Mi intención es comprender qué API (y la configuración correspondiente) se utiliza mejor en varias plataformas, y en API (Java, terceros). Hubiera publicado esto en el foro de Crypto, pero parece ser más sobre teoría y menos sobre codificación.

    
pregunta random65537 04.06.2012 - 13:37
fuente

2 respuestas

1

Esta es la única parte relevante:

  

"La clase RijndaelManaged es un tipo de implementación de Rijndael   algoritmo en .net framework, que no fue validado bajo NIST   (Instituto Nacional de Estándares y Tecnología) Módulo Criptográfico   Programa de Validación (CMVP).
          Sin embargo, la clase AesCryptoServiceProvider llama a la API de Windows Crypto, que utiliza RSAENH.DLL y ha sido validada por NIST en   CMVP. "

Debe usar el que cumpla con las especificaciones del NIST. De lo contrario, no hay forma de probar que el algoritmo RSA es tan seguro como cree que es, o si es compatible con otras implementaciones de RSA.

    
respondido por el Woot4Moo 04.06.2012 - 14:47
fuente
0

Pido disculpas por responder una pregunta muy antigua, pero esto vino en una búsqueda mía y la respuesta seleccionada es incorrecta. Tal vez la respuesta elegida responda a la pregunta real del OP, pero la pregunta que se indica es sobre RSACryptoServiceProvider vs AESCryptoServiceProvider , mientras que la respuesta es sobre RjindaelManaged vs AESCryptoServiceProvider

RjindaelManaged es una implementación del algoritmo de Rjindael que luego se seleccionó para convertirse en la base del estándar de cifrado AES de NIST. AESCryptoServiceProvider es la mejor opción para implementar el algoritmo AES / Rjindael. AES y Rjindael son ambos cifrados simétricos.

RSA, el sistema de cifrado Rivest-Shamir-Adleman, es un cifrado completamente diferente asimétrico . No tiene ninguna relación con AES / Rjindael.

La respuesta correcta a cuándo usar RSACryptoServiceProvider vs AESCryptoServiceProvider depende de usar un cifrado asimétrico vs simétrico.

En RSA, tienes un par de claves pública y privada. Si desea tener una clave pública para intercambiar, o si quiere que su clave sea firmada por otra parte, desea RSA. Pero RSA es comparativamente lento y se realiza correctamente en un solo sentido: la clave pública se encripta, la clave privada se descifra.

Si tienes mucho texto que deseas cifrar, quieres AES. Es mucho más rápido, y muchas computadoras están optimizadas para ello. Pero solo hay una llave. Cualquier persona con la clave puede cifrar y descifrar, lo que hace que compartir la clave de forma segura sea una prioridad.

Para lo mejor de ambos mundos, use un público RSA para cifrar y transmitir una clave AES y luego comunicarse utilizando AES.

    
respondido por el TBridges42 05.12.2017 - 23:20
fuente

Lea otras preguntas en las etiquetas