es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo aplicar una condición de terminación al extraer un mensaje cifrado?

Primero quiero encriptar un mensaje con una clave utilizando el cifrado AES.
Luego ocultar cada byte del mensaje encriptado dentro de un píxel al azar y reemplazar completamente una de las componentes del píxel (ya sea rojo, verde o azul).

Utilizo SecureRandom para generar los mismos píxeles de la imagen y el IV para AES/CBC/PKCS5Padding al dar una semilla. Supongamos que ningún píxel se genera dos veces para almacenar el byte.

Ahora quiero extraerlo.
Al extraer, generaré los mismos píxeles utilizando SecureRandom y la misma semilla.

¿Cuál debería ser la condición de terminación para detenerme en el último píxel del byte oculto?
En la parte de incrustación, la longitud del mensaje encriptado es la condición de terminación.
¿Cómo podemos aplicar una condición de terminación para la extracción si es posible?

De lo contrario, ¿hay alguna manera de incrustar de tal manera que podamos extraer posteriormente de esos píxeles aleatorios?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para crear una condición de terminación para el proceso de extracción, podemos insertar un delimitador al final del mensaje encriptado. Este delimitador debe ser una secuencia única de bytes que no se espera que aparezca en el mensaje encriptado. Por ejemplo, podríamos usar la secuencia de bytes “00000000” como delimitador.

    Durante el proceso de extracción, podemos seguir extrayendo bytes hasta que nos encontremos con el delimitador. Una vez encontrado el delimitador, sabemos que hemos llegado al final del mensaje encriptado y podemos dejar de extraer bytes.

    Alternativamente, podríamos insertar un valor de longitud al principio del mensaje encriptado que especifique la longitud del mensaje en bytes. Este valor de longitud debe ser un número fijo de bytes (por ejemplo, 4 bytes para una longitud de 32 bits). Durante el proceso de extracción, podemos extraer primero el valor de longitud y luego continuar extrayendo bytes hasta llegar al final del mensaje encriptado.

    Es posible insertar de manera que podamos extraer posteriormente desde píxeles aleatorios, siempre y cuando utilicemos un algoritmo determinista para incrustar el mensaje (por ejemplo, siempre incrustar el mensaje en el mismo orden) y asegurarnos de que el proceso de selección de los píxeles también sea determinista (es decir, generando los mismos píxeles con la misma semilla). Sin embargo, es importante tener en cuenta que la esteganografía tiene limitaciones y siempre existe el riesgo de que el mensaje oculto sea detectado o sobrescrito.

Comments are closed.