2010-06-09 16 views
5

¿Es posible obtener seguridad adicional encriptando un mensaje usando 2 o más claves RSA?RSA: mensaje de cifrado usando múltiples claves

EDIT: Algunas aclaraciones:

El contexto que estoy más interesado en hacer esto para que se cifra una clave simétrica generada aleatoriamente.

No quiero limitar la pregunta a la encriptación dos veces seguidas; el objetivo es evitar el alto costo computacional de las claves grandes de RSA. Usar tácticas menos directas como dividir el mensaje en partes y encriptarlas por separado se debe considerar como una opción.

Se debe suponer que obtener solo una parte del mensaje es aceptable.

Si conoce alguna publicación en la que lo hable específicamente un experto o algoritmos que utilizan varias claves RSA, por favor contribuya.

+4

Creo que la forma estándar de obtener seguridad adicional es utilizar un tamaño de clave mayor. –

+0

no, ¿crees que será seguro encriptando el mensaje con dos claves? – berkay

+3

Incluso asumiendo nada más sutil, cifrar su mensaje con dos claves duplicará la dificultad de descifrarlo; al cifrarlo con una clave, duplicar la longitud original, utilizará el mismo número de bits clave en total, pero proporcionará muchos órdenes de magnitud mas dificultad –

Respuesta

1

Si Clave A se ve comprometida de cifrado con A + B protegerá contra del compromiso, pero fuera de ese caso particular, no se obtiene ningún beneficio adicional.

+0

¿Esto significa que 'RSA (Key1, RSA (Key2, Message))' puede ser desencriptado por un solo 'Key3'? De lo contrario, me resulta difícil creer que no hay "ningún beneficio adicional". – Mike

+0

@mike: estoy bastante seguro de que Key3 puede no existir y que, si lo hace, tiene una relación tortuosa (¿no se puede enviar?) Con Key1 y Key2. Sin embargo, no soy un criptólogo. Esta es una especulación basada en la forma en que los mensajes a múltiples destinatarios están encriptados y el uso de sistemas de claves de múltiples factores. No intente esto en casa, ofrezca el vacío en Nebraska. – msw

+0

Estoy seguro de que Key3 existe, pero la relación no se puede enviar. El mejor caso es como tratar de romper RSA (Key1) donde comprometer parte de Key1 no ayudará. Sin embargo, Key3 probablemente tiene más bits que Key1. – Joshua

5

No.

No es seguro hacer experimentos de pensamiento con respecto a la criptografía. Se le recomienda mantenerse cerca del camino recorrido por los expertos.

Y cuando los expertos quieren proteger algo mejor, que utilizan una clave de tamaño grande (se requiere al menos 2048 bits, los certificados son más pequeños insufficient para cualquier tranquilidad) o utilizar elliptic curve certificados en preferencia a RSA.

Dicho sea de paso, recuerde que el cuerpo de su mensaje normalmente está encriptado con un cifrado simétrico y una clave aleatoria, y que solo esta clave aleatoria está encriptada con la clave pública del destinatario. El doble cifrado de esta clave secreta no hará que esta clave secreta sea más larga, y no afectará la capacidad del atacante de utilizar esa fuerza bruta.

La criptografía cuántica - Lo menciono solo como una parte interesante, no necesita factorizar esto en su elección - promete cosas interesantes para las claves: las claves RSA se borran con el algoritmo Shor, pero las claves simétricas (Grover 's) estará solo medio alargado (128 bits equivaldrán a 64 bits, por lo que será crackable). Por supuesto, hay debate sobre si tales máquinas cuánticas pueden ser implementadas, etc. :)

0

Sí!

Pero no utilice el cifrado sin formato. Use el esquema de cifrado RSA. En lugar de volver a cifrar el mensaje cifrado con la segunda clave, que podría tener effet debilitante (no sé), utilice el algoritmo secreto compartido para dividir su secreto en dos. El algoritmo secreto compartido hace posible dividir un secreto en n piezas y garantiza que si un atacante logra obtener n-1 piezas, no sabe nada del secreto. Entonces no solo dividas el secreto en dos.

Puede tener más de 2 claves RSA.Otra poderosa propiedad del algoritmo secreto compartido es que es posible distribuir el secreto sobre n piezas y requerir solo m piezas, con m menor que n, para recuperar el secreto. Esto hace que la recuperación secreta sea más robusta a la pérdida de piezas.

Mira aquí para obtener más información sobre secreto compartido: http://en.wikipedia.org/wiki/Shared_secret

0

En adicional a las respuestas dadas, sino que también simplemente no funciona a menos que hacer algunos parches. Muy simplemente, uno de los módulos debe ser más grande que el otro. Si realiza el mod RSA primero el módulo más grande y modifica el último más pequeño, pierde información y no puede garantizar el descifrado exitoso. El parche obvio es encriptar siempre con el módulo más pequeño primero. Por supuesto, debe realizar el descifrado en el orden opuesto. Otro parche simple es elegir módulos que estén muy juntos en tamaño, de modo que la probabilidad de encontrar un texto cifrado que no se pueda descifrar de manera única es infinitamente pequeña.

0

cifras Composición

Digamos que tiene una función de cifrado E(M, K), donde M es el mensaje en texto plano y K es la clave. Supongamos que no existen vulnerabilidades conocidas en E.

Genera dos claves completamente no relacionadas K1 y K2.

Se garantiza que si los compones en el formulario E(E(M, K1), K2), de hecho es imposible perder la seguridad de esta manera. Si era, es posible perder seguridad al cifrar E(M, K1), ya sea con K2 o cualquier otra clave, el cifrado está roto, porque un atacante podría simplemente hacer E(E(M, K1), KF) donde KF es cualquier clave que el atacante desee elegir.

Para obtener más información, vea here.

cifrado de cada segundo bloque con una clave diferente

Las implicaciones aquí son obvias. Suponiendo que está utilizando primitivas criptográficas compuestas correctamente con ambas combinaciones encryption function:key, si encripta cada segundo bloque con una clave diferente del conjunto de dos claves, el atacante solo puede descifrar los bloques para los que tiene la clave.

Cuestiones relacionadas