¿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 ...Problema de cifrado RSA [Tamaño de datos de carga útil]
Respuesta
En el algoritmo RSA básico (sin relleno) que no es muy seguro, el tamaño del mensaje se limita a ser menor 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 encripta un solo mensaje que tiene una longitud que es algo menor que el módulo. Específicamente, el mensaje primero se "rellena", lo que da como resultado 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 relleno no puede ser más largo que el módulo, lo que implica una longitud máxima estricta en el mensaje sin formato.
Específicamente, con el esquema de relleno más común (PKCS#1 "antiguo", también conocido como "v1.5"), el relleno agrega al menos 11 bytes al mensaje, y la longitud total del mensaje acolchado debe ser igual al 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 expande necesariamente el tamaño del mensaje en al menos 11 bytes.
La manera normal de uso de RSA para cifrado un mensaje grande (por ejemplo, un e-mail) es el uso de un esquema híbrido:
- Una clave simétrica K se elige (una secuencia en bruto aleatoria de , por ejemplo, de 128 a 256 bits aleatorios).
- El mensaje grande se cifra simétricamente con K, utilizando un esquema de cifrado simétrico adecuado y eficiente como AES.
- K se cifra de forma asimétrica con RSA.
"División" un gran mensaje en tantos bloques de 117 bytes, cada uno a cifrar con RSA, no se hace normalmente, por una variedad de razones: es difícil hacerlo bien sin añadir debilidades adicionales; cada bloque se expandiría en 11 bytes, lo que implica un aumento del tamaño total del mensaje no despreciable (el ancho de banda de la red puede ser un recurso escaso); la encriptación simétrica es mucho más rápida.
- 1. Desglose de datos de gran tamaño para el cifrado RSA
- 2. Cifrado RSA de datos grandes en C#
- 3. Tamaño máximo de la carga útil REST?
- 4. Cifrado RSA en Java
- 5. cifrado RSA-descifrado en iPhone
- 6. Tamaño de firma RSA?
- 7. RSA: mensaje de cifrado usando múltiples claves
- 8. Biblioteca de cifrado RSA para C++
- 9. Encriptación/descifrado de RSA Problema en .NET
- 10. Cifrado RSA: Java a PHP
- 11. .NET Private Key Rsa Cifrado
- 12. Cifrado BouncyCastle RSA para BlackBerry
- 13. cifrado RSA, que consigue malas longitud
- 14. Como recuperar Solicitud de carga útil
- 15. ¿Qt es compatible con el cifrado RSA?
- 16. cifrado RSA en Objective-C (Mac)
- 17. cifrado RSA: Diferencia entre Java y Android
- 18. Puerto RSA código Java cifrado en C#
- 19. Cifrado RSA usando la clave pública
- 20. asp.net problema de cifrado de viewstate
- 21. problema de carga de archivo
- 22. Cifrado RSA en Java: ¿Problemas con la plataforma cruzada?
- 23. MDM DeviceLock carga útil de error
- 24. Web.config Error de cifrado
- 25. ¿Qué es una "carga útil"? por ejemplo, la carga útil XML
- 26. ¿Cuán grande puede ser una carga útil de tarea appengine?
- 27. Carga útil de respuesta de paginación de una API RESTful
- 28. cifrado de datos y gestión de claves en C#
- 29. Cifrado saltado de puntos CSS problema
- 30. Agregar carga útil en el paquete
Para extender esto un poco. Hoy en día, OAEP (PKCS # 1 v2.1) se debe utilizar para rellenar los mensajes antes del cifrado RSA. El relleno usa una función hash internamente (MGF) dos veces y otra información. Digamos 'hlen' es el tamaño de salida de la función hash, luego la sobrecarga es' 2 * hlen + 2'. SHA-1 es la función hash más comúnmente utilizada para esto. Significa que una ** clave RSA de 1024 bits ** solo puede encriptar hasta ** 86 bytes ** para SHA-1 y ** 62 bytes ** para SHA-256. –
Supongo que "RSA encripta un solo mensaje que tiene una longitud algo menor que el módulo". Esto se debe a que los algoritmos RSA dependen de los resultados del módulo, por lo que si la regla se rompe, dos mensajes diferentes pueden dar como resultado un texto cifrado similar. ¿derecho? – Yerken