Practico 2 Ej 6 parte c

Practico 2 Ej 6 parte c

de Carlos Martin Gruss Sudy -
Número de respuestas: 2

Hola, tengo una duda de este ejercicio y de la solución subida junto a los archivos del Taller 3. La letra del práctico dice lo siguiente:


y la solución propuesta hace:

mensaje_encriptado[i] = (0x3F & clave[x]) ^ mensaje[i];

Según entiendo, la línea anterior enmascara (y se queda con los primeros 6 bits) de la letra correspondiente en la clave, previo a hacerle XOR con la letra correspondiente en el texto (esta sin enmascarar). Leyendo la letra, entendí que se pedía lo opuesto, es decir, enmascarar la letra del texto, no la de la clave, y eso lo haría así:

mensaje_encriptado[i] = (0x3F & mensaje[i]) ^ clave[x];

Sospecho que estoy entendiendo algo mal de lo que hace esa línea (o de la letra del problema), porque el código que subieron funciona correctamente con el ejemplo que da la letra, mientras que la segunda línea que puse no.

En respuesta a Carlos Martin Gruss Sudy

Re: Practico 2 Ej 6 parte c

de Guillermo Cossio -
Hola,

Efectivamente, el resultado que dice la letra no corresponde a la consigna. La misma debería decir "la encriptación se realiza haciendo xor de cada letra en el texto a encriptar con los primeros 6 bits de la letra correspondiente de la clave", por lo que hacer mensaje_encriptado[i] = (0x3F & clave[x]) ^ mensaje[i] sería lo correcto.

De esta forma, no se pierde información del mensaje y se puede desencriptar totalmente.

Saludos,
Guillermo