¿Cuál es el mejor algoritmo para ocultar datos en texto?

La respuesta varía según el formato que esté utilizando (texto plano, HTML, documentos de Word) y cuán dispuesto esté a ser vulnerable a formatear de nuevo borrando su mensaje. También depende de si desea ocultar grandes cantidades de datos de manera automatizada, o elaborar cuidadosamente un mensaje oculto usted mismo.

Este documento: http://airccse.org/journal/nsa/0… explora varios diseños diferentes para la esteganografía de texto. (Sin embargo, no estoy impresionado por el nuevo método que introduce el autor, ya que requiere la transmisión de una clave junto con el mensaje “oculto”).

Creo que la codificación basada en el espaciado es probablemente su mejor opción, ya que se puede hacer que se vea natural. El doble espacio entre palabras parece extraño, pero se pueden incluir espacios adicionales al final de las líneas de texto o entre oraciones. Además, la controversia entre “dos espacios o un espacio después de un período” proporciona una cobertura conveniente para la codificación de mensajes: solo parece indeciso. Entonces, el método de espaciado entre oraciones pasará una inspección casual:

Para codificar un ‘1’: agregue dos espacios después de un punto

Para codificar un ‘0’: agregue un espacio después de un punto

Si bien esto es fácil, podría decirse que no es el más seguro, ya que una inspección más detallada probablemente lo descubrirá.

Una versión más sofisticada es utilizar la estructura del lenguaje en sí para ocultar mensajes mediante la elección de palabras. Pero para hacer esto, deberá acordar una gran gramática con anticipación. Puedes pensar en cada oración como una selección de un árbol de opciones. Algunas de las ramas no tienen sentido, mientras que otras están etiquetadas con 0 y 1. Mientras escribe un mensaje, puede incluir relleno siempre que evite las ramas etiquetadas. Pero esto requiere mucha mano de obra y será difícil generar una prosa convincente de forma automática.

Por ejemplo, cada adjetivo podría aparecer en un diccionario con un ‘0’ o ‘1’. Entonces cualquier prosa suficientemente florida podría usarse para ocultar datos intercambiando adjetivos con significados cercanos.

More Interesting

¿Los investigadores que elaboran algoritmos útiles ganan mucho dinero cuando sus algoritmos se aplican ampliamente en la industria?

Soy un desarrollador web que trabaja en el marco Python Django durante el año pasado. ¿Puedo aprender estructuras de datos y algoritmos si paso solo 2-3 horas diarias?

¿Prefieres que tu sistema de navegación sea optimista o pesimista? (ver nota / comentario)

¿Cómo verificamos la corrección de un algoritmo?

Cómo ordenar la matriz de una estructura utilizando solo uno de sus miembros de datos en c ++ (STL)

¿Cuál es el algoritmo de clasificación menos eficiente?

¿Cuáles son algunas situaciones en las que conceptos algorítmicos como la complejidad del código y la programación dinámica dieron como resultado un mejor código en un proyecto de desarrollo real?

¿Qué estructura de datos es mejor para implementar una guía telefónica: Trie o Hash? ¿Por qué?

¿Hay alguna relación de recurrencia famosa aparte de Fibonacci?

¿Es posible hackear usando el lenguaje de programación C?

Dado un gráfico con vértices 2N de modo que existan dos vértices P y Q, con cada ruta de P a Q que contenga al menos N + 1 bordes, ¿cuál es el número mínimo de vértices que debemos eliminar para desconectar P y Q?

¿Cuál es la complejidad del tiempo de un algoritmo?

¿Cuál es el mejor algoritmo para encontrar el número más pequeño (mínimo 40 dígitos) cuyo último dígito se mueve al frente y es nueve veces el número original?

¿Cuál es una forma rápida de factorizar números con 12 dígitos sin utilizar ningún algoritmo de división de prueba o Pollard-Rho?

¿Qué es un algoritmo hash?