¿Los mensajes codificados son diferentes para el mismo texto simple pero diferente módulo en RSA?

1

Estoy intentando reproducir el ataque RSA en el que se utiliza el CRT para un exponente de e = 3 y sin relleno. Quiero codificar el mismo mensaje simple (es decir, "HI") con tres claves públicas diferentes, (e1, n1) (e2, n2) (e3, n3). Sin embargo, obtengo c1 = c2 = c3 igual, aunque n1! = N2! = N3. Los tres exponentes de RSA son e1 = e2 = e3 = 3.

Sin embargo, si uso un texto plano más grande (es decir, "Hola, me llamo"), los tres códigos son diferentes c1! = c2! = c3

¿Es este el comportamiento normal? ¿Por qué está pasando?

Además, cuando realizo la operación CRT, solo puedo recuperar "Hola mi", en lugar de toda la cadena. ¿Hay alguna limitación en el tamaño de m? ¿O me estoy metiendo con precisión o con conversión de tipos?

El ejemplo es:

clave de publicación 1: 3

521319240222107884689410763002651770477

clave de publicación 2: 3

971942073666717835868044797161302855351

Clave de publicación 3: 3

1130117127193245273914627104538121346723

Voy a codificar: "Hola, mi nombre es"

marque m0=5736962829656840785174168889715

Código1:

189327048722959219131229293322701756239

Código2:

655706385250016486665327564357017094773

Code3:

109975795916415293594862048607166887857

la m que obtuve después del cálculo es: m1=5736962829656818723003509506048 que m0! = m1

¿Alguna idea?

    
pregunta muni_es 24.09.2016 - 00:09
fuente

1 respuesta

1

Para m y e suficientemente pequeños, sí, los textos cifrados serán los mismos. Además, se pueden descifrar trivialmente.

Como dices, no estás usando ningún relleno. RSA debe utilizarse con relleno; no es seguro cifrar valores no rellenados que sean mucho más pequeños que el tamaño del módulo ( m < n^(1/e) , es decir, su mensaje es menor que la raíz cúbica de su módulo).

De Wikipedia:

  

Cuando se encripta con exponentes de encriptación bajos (por ejemplo, e = 3) y valores pequeños de m, (es decir, m < n ^ 1 / e) el resultado de m ^ e es estrictamente menor que el módulo n. En este caso, los textos cifrados se pueden descifrar fácilmente al tomar la raíz eth del texto cifrado sobre los enteros.

Esto implica que los textos cifrados ( m ^ e mod n ) serán los mismos para mensajes muy pequeños, sí. Si m ^ e < n1 , n2 y n3 , luego (m ^ e mod n1) = (m ^ e mod n2) = (m ^ e mod n3) = m ^ e , y puede recuperar m al aumentarla a 1 / e (tomando la raíz eth).

Consulte Ataques contra RSA simple y echa un vistazo a OAEP para el algoritmo de relleno habitual.

    
respondido por el CBHacking 24.09.2016 - 03:24
fuente

Lea otras preguntas en las etiquetas