¿Cuál es el límite en el tamaño de los datos que pueden manejar los cryptos de clave pública?

5

Alguien mencionó aquí que el cifrado asimétrico podría no ser adecuado para datos masivos y dio un ejemplo de RSA con 100 bytes Por supuesto, entiendo que fue un ejemplo aproximado. Pero me dio curiosidad: cuánto tamaño de datos pueden manejar varios criptografía de clave pública en general y cuánto puede manejar una biblioteca de JavaScript como OpenPGP.js en particular. En este último caso, ¿el entorno del navegador agrega más limitaciones?

Añadido :
¿Hay algún recurso en línea de renombre que tenga una discusión / comparación de los distintos criptos de clave pública con respecto a los límites en el tamaño de los datos?

    
pregunta Sam 31.10.2013 - 01:29
fuente

2 respuestas

10

Para responder a su pregunta, sus ideas erróneas deben corregirse primero. En la mayoría de los casos, el relleno en RSA agrega 11 bytes al mensaje. Entonces, utilizando una clave de 1024 bits, tendrá 117 bytes disponibles para el mensaje . Es por eso que RSA no suele utilizarse para cifrar mensajes, se utiliza principalmente para cifrar claves simétricas utilizadas para cifrar mensajes. Esto se denomina sistema criptográfico híbrido .

Por ejemplo, en PGP, se crea una clave simétrica ( sK ), el mensaje se cifra con sK , luego sK se cifra con la clave pública, y ambos (el mensaje cifrado y el sK cifrado) se envían al destinatario. El destinatario utilizará su clave privada para descifrar sK y la usará para descifrar el mensaje.

Hablando técnicamente, no hay límite en el tamaño del mensaje que PGP (y, en consecuencia, OpenPGP.js ) pueden manejar. Las limitaciones pueden provenir de la cantidad de memoria disponible, la cantidad de memoria que puede utilizar el navegador, etc.

    
respondido por el Adi 31.10.2013 - 10:30
fuente
4

Cada algoritmo tiene sus propias limitaciones. Según lo citado por @Adnan, RSA (con relleno PKCS # 1 v1.5) alcanza 11 bytes menos que el tamaño del módulo RSA. Otros algoritmos pueden tener diferentes propiedades.

En particular, con Diffie-Hellman , no se encripta en absoluto, pero Todavía se puede utilizar para el cifrado asimétrico. Una forma de considerar DH es que es un algoritmo de cifrado asimétrico, en el que no puede elegir lo que codifica: cuando ejecuta el algoritmo, la parte que cifra aprende, al final, lo que realmente "cifró". Sin embargo, esto es suficiente para el cifrado híbrido: un secreto compartido es bueno para usarlo como clave para el cifrado simétrico. Este proceso se ha formalizado con un nombre propio: IES (con una variante de curva elíptica llamada ECIES).

Tenga en cuenta que encripte porque desea mantener la confidencialidad de los datos, y la mayoría de los modelos de ataque donde la confidencialidad es importante también son modelos de ataque donde la integridad es importante (atacantes solo pasivos son raros). El cifrado, por sí solo, no hace todo lo necesario, por lo que normalmente se necesita una combinación de algoritmos de todos modos.

    
respondido por el Tom Leek 31.10.2013 - 12:52
fuente

Lea otras preguntas en las etiquetas