cryptography - funciona - Problema de cifrado RSA
desencriptar rsa (2)
¿Es cierto que el cifrado RSA solo puede manejar una carga de datos limitada? ... estoy confundido con la teoría ... teóricamente no hay ninguna nota con respecto a esto ...
En el algoritmo RSA básico (sin relleno) que no es muy seguro, el tamaño del mensaje se limita a ser más pequeño que el módulo.
Para mejorar la seguridad de RSA, debe usar esquemas de relleno como se define en PKCS1. Dependiendo del esquema que elija, el tamaño del mensaje puede ser significativamente menor que el módulo. http://en.wikipedia.org/wiki/PKCS1
RSA cifra un solo mensaje que tiene una longitud que es algo más pequeña que el módulo. Específicamente, el mensaje primero se "rellena", lo que resulta en una secuencia de bytes que luego se interpreta como un entero grande entre 0 y n-1 , donde n es el módulo (una parte de la clave pública), por lo que el mensaje rellenado no puede ser más largo que el módulo, lo que implica una longitud máxima estricta en el mensaje en bruto.
Específicamente, con el esquema de relleno más común ( PKCS#1 "estilo antiguo", también conocido como "v1.5"), el relleno agrega al menos 11 bytes al mensaje, y la longitud total del mensaje rellenado debe ser igual a la longitud del módulo Por ejemplo, 128 bytes para una clave RSA de 1024 bits. Por lo tanto, la longitud máxima del mensaje es de 117 bytes. Tenga en cuenta que la longitud del mensaje cifrado resultante tiene el mismo tamaño que el módulo, por lo que el cifrado necesariamente expande el tamaño del mensaje en al menos 11 bytes.
La forma normal de usar RSA para cifrar un mensaje grande (por ejemplo, un correo electrónico) es usar un esquema híbrido:
- Se elige una clave simétrica aleatoria K (una secuencia sin formato de, por ejemplo, 128 a 256 bits aleatorios).
- El gran mensaje está cifrado simétricamente con K , utilizando un esquema de cifrado simétrico adecuado y eficiente, como el AES.
- K está encriptado asimétricamente con RSA.
Normalmente, la "división" de un mensaje grande en tantos bloques de 117 bytes, cada uno para cifrar con RSA, no se realiza por diversas razones: es difícil hacerlo correctamente sin agregar puntos débiles adicionales; cada bloque se expandiría en 11 bytes, lo que implicaría un aumento total no despreciable del tamaño del mensaje (el ancho de banda de la red puede ser un recurso escaso); El cifrado simétrico es mucho más rápido.