¿Cuándo debo usar el cifrado simétrico en lugar del RSA?

5

Actualmente estoy usando claves GPG RSA para cifrar archivos binarios. Muchas personas recomiendan usar claves simétricas para cifrar archivos grandes, y luego cifrar la clave simétrica con una clave pública.

¿A qué tamaño de archivo debo cambiar de RSA a algo como AES? ¿Es arbitrario? ¿Hay algún problema de seguridad con el uso de GPG / RSA en archivos masivos (gigabytes)? Soy consciente de que RSA es mucho más lento / grande, solo me pregunto si hubo otros problemas.

Es mucho menos complicado cifrar directamente usando RSA, incluso si lleva más tiempo, que generar nuevas claves AES simétricas, cifrar el archivo, cifrar las claves a través de RSA y luego almacenar las claves AES cada vez que cifro mis archivos. , por eso pregunto por qué debería usarlo.

    
pregunta Kausheel 28.03.2014 - 14:23
fuente

4 respuestas

3

Cualquier tamaño de archivo realmente. La criptografía simétrica generalmente proporciona un nivel de seguridad MUCHO más alto para una longitud de clave determinada. Esta es la razón por la que podemos usar algoritmos simétricos de 128 bits, pero tenemos que usar algoritmos asimétricos de 1024 o 2048 bits. También hay algunos ataques que facilitan la determinación de ciertos algoritmos asimétricos si tiene una gran cantidad de datos estructurados cifrados con ellos. Además, los algoritmos simétricos son mucho más rápidos de ejecutar y los algoritmos asimétricos no le brindan ningún beneficio adicional al proteger archivos.

Solo necesita criptografía asimétrica cuando necesita intercambiar información con una persona en particular con la que no se intercambió una clave (e incluso entonces, usa simétrico y encripta la clave de manera asimétrica normalmente) o cuando necesita firmar algo (en cuyo caso usted cifra el valor de hash de forma asimétrica).

El cifrado asimétrico debería usarse casi siempre en la menor cantidad posible de información por razones de seguridad y eficiencia. De hecho, esto es en lo que se basan muchos de los protocolos establecidos, si no la mayoría, que utilizan criptografía asimétrica.

    
respondido por el AJ Henderson 28.03.2014 - 14:28
fuente
5

Esto no es una cuestión de tamaño .

El algoritmo de cifrado asimétrico sin formato conocido como RSA puede realizar un cifrado asimétrico para un "mensaje" en un espacio bastante limitado; a saber, con una clave RSA de 2048 bits y PKCS # 1 v1.5 RSA encriptación, el algoritmo puede procesar una secuencia de bytes de hasta 245 bytes como máximo.

Pero nunca utiliza el algoritmo en bruto. Utiliza un protocolo , en este caso OpenPGP , que define los algoritmos a utilizar y dónde byte va En OpenPGP, cuando el destinatario tiene un par de claves pública / privada y desea cifrar su mensaje "con la clave pública" (es decir, desea que el mensaje sea ilegible excepto por quien sepa la clave privada correspondiente), entonces invoca su OpenPGP - software compatible que luego seguirá las reglas de OpenPGP - y estas reglas son que el cifrado simétrico siempre se usa: el software genera una clave simétrica aleatoria K , cifra el mensaje en sí mismo con un algoritmo simétrico usando K como clave, luego encripta K (no el mensaje) con la clave pública RSA del destinatario. No tiene que elegir y no puede elegir: esta es la forma en que funciona OpenPGP.

Diseñar su propio protocolo seguro y luego implementarlo de forma segura , son dos tareas increíblemente difíciles ("increíblemente" porque la gente no lo cree al principio), por lo que Lo inteligente no es hacerlo usted mismo, sino usar un protocolo existente (por ejemplo, OpenPGP) y las implementaciones existentes de ese protocolo (por ejemplo, GnuPG ) . En ese sentido, no debes hacerte esta pregunta.

    
respondido por el Thomas Pornin 28.03.2014 - 14:34
fuente
2

PGP, GPG, SSH y la mayoría de los sistemas de clave pública ya utilizan algoritmos simétricos internamente .

Internamente, cuando usted cifra con una clave pública, el software / hardware primero genera una clave simétrica y encripta sus datos con el algoritmo simétrico. Y luego encripta esa clave simétrica con la clave pública (usando un algoritmo asimétrico) y almacena la clave simétrica encriptada dentro del texto cifrado. En el otro extremo, el destinatario necesita la clave secreta para descifrar la clave simétrica almacenada con el texto cifrado y luego usar la clave simétrica para descifrar el texto cifrado y recuperar el mensaje. En todos estos pasos, los únicos elementos que ven los usuarios son: claves públicas, texto simple, texto cifrado, claves secretas. La clave simétrica y el cifrado son todos internos y nunca están expuestos a los usuarios. De esa manera, está obteniendo los beneficios de los algoritmos asimétricos (pudiendo cifrar a varias personas con claves públicas), pero también la velocidad de los algoritmos simétricos.

Esta es también la razón por la que cuando cambia las contraseñas de sus claves GPG / PGP, aún puede descifrar los archivos cifrados con su clave pública anteriormente. La clave se almacena realmente en el archivo y es la única parte que está verdaderamente encriptada con la bondad de la clave pública pura.

    
respondido por el Kevin Li 28.03.2014 - 21:01
fuente
0
  

Actualmente estoy usando claves GPG RSA para cifrar archivos binarios. Muchas personas recomiendan usar claves simétricas para cifrar archivos grandes, y luego cifrar la clave simétrica con una clave pública.

Esto se conoce como cryptosystem híbrido y es la forma en que normalmente se hace, especialmente cuando los tamaños de los datos se hacen más grandes. El cifrado simétrico por su propia naturaleza siempre será más rápido que cualquier esquema asimétrico .

  

¿Hay algún problema de seguridad con el uso de GPG / RSA en archivos masivos (GB)? Soy consciente de que RSA es mucho más lento / grande, solo me pregunto si hubo otros problemas.

Bueno, un problema podría ser la naturaleza determinista de RSA . Si cifra el mismo texto sin formato con la misma clave varias veces, puede permitir que un atacante realice ataques de texto sin formato conocidos . Ciertamente, puede modificar RSA de una manera no determinista, pero ¿por qué molestarse y no solo usar una clave simétrica aleatoria con cada encriptación?

Además, el enfoque híbrido hace posible enviar el texto cifrado a más de un destinatario con muy poca sobrecarga . Solo necesita cifrar la clave simétrica para cada destinatario, mientras que la mayor parte de los datos puede permanecer igual para todos ellos.

  

Es mucho menos complicado cifrar directamente usando RSA, incluso si lleva más tiempo, que generar nuevas claves simétricas y cifrar a través de RSA y luego almacenarlas cada vez que cifro mis archivos, por eso pregunto por qué Debería usarlo.

Esto es algo que GPG se ocupa de forma automática . ¿Cómo exactamente invocas GPG? ¿Por qué querría esperar más tiempo, si un enfoque híbrido no tiene desventajas reales?

    
respondido por el Karol Babioch 28.03.2014 - 14:31
fuente

Lea otras preguntas en las etiquetas