S-TOOLS



S-Tools es un programa para Windows que permite encriptar y ocultar datos en archivos .wav o en imágenes en formato .bmp o .gif.

Nota: Este programa es freeware, así que puede distribuirse libremente, si bien hay que tener en cuenta que, dado que incluye la implementación de diversos algoritmos criptográficos, podría estar sujeto a determinadas restricciones a la exportación. Creo que su uso en Francia podría ser ilegal bajo la Ley 90-1170 de dicho país, que prohíbe el uso de criptografía (corríjanme si me equivoco). Asimismo, podría entrar en conflicto con la EAR (Regulación del Tráfico Internacional de Armas) americana.
Es seguramente el mejor de los programas comentados en estas páginas: es el más comodo al ser para Windows, integra la encriptación en el mismo programa, y permite ocultar los datos en archivos más "generales" que los anteriores programas. No hay duda que, salvo que se sea un fanático de la matemática del caos, será más fácil hacer pasar desapercibidos nuestros datos sensibles en nuestro clásico directorio de imágenes, donde habrá imágenes de todo tipo que en unos cuantos gifs de fractales.

En cuanto a los algoritmos criptográficos, se dispone de cuatro algoritmos de clave única: IDEA, DES, Triple DES y MDC. IDEA es por ahora el mejor y más fuerte de los cuatro. En cuanto a DES, sería preferible no utilizarlo, dado que se le han descubierto demasiadas debilidades para seguir considerándolo seguro.


MANEJO

El manejo es muy simple, y se realiza en combinación con el Explorador de Windows 95. Seleccionamos en el Explorador el archivo wav o de imagen en el que queremos ocultar los datos y lo arrastramos a la ventana de S-Tools. S-Tools abrirá el archivo y lo mostrará en una ventana, indicando además el número de bytes que puede ocultar como máximo. A continuación, seleccionamos en el Explorador el archivo a ocultar y lo arrastramos a la ventana del archivo "matriz" que está en la ventana de S-Tools. Si tenemos activada la opción de compresión, se comprimirá el archivo de datos, y después S-Tools mostrará un diálogo en el que nos pide la password para la encriptación y nos da a elegir el algoritmo criptográfico a utilizar. En caso de que el archivo "matriz" sea una imagen, aparecerá otro diálogo con diversas opciones referentes a cómo ha de manipular S-Tools los colores de la imagen. Una vez hecho esto, comienza el proceso esteganográfico, cuyo progreso podemos seguir en la ventana Actions de S-Tools. Una vez terminado, podamos grabar el archivo, haciendo click con el botón derecho del ratón sobre la ventana del archivo y elegiendo la opción "Save" o "Save as..." del menú contextual.

Para extraer los datos, bastará con arrastrar el archivo a la ventana de S-Tools. Una vez lo haya abierto, pulsamos el botón derecho del ratón sobre la ventana del archivo y seleccionamos la opción "Reveal". S-Tools nos pedirá la password y el algoritmo criptográfico empleados al ocultar los datos, y si la password es correcta, extraerá los datos.


TÉCNICAS UTILIZADAS

Para los archivos de sonido, S-Tools distribuye los bits de los datos a ocultar entre los bits menos significativos de los bytes que forman el wav.

Por ejemplo, supongamos la siguiente secuencia de ocho bytes de un archivo wav:

132 134 137 141 121 101 74 38

Que en binario es:

10000100 10000110 10001001 10001101 01111001 01100101 01001010 00100110

Supongamos ahora que queremos ocultar un byte con valor 213, es decir, 11010101, en la anterior secuencia. Simplemente se reemplaza el bit menos significativo de cada byte por el bit correspondiente del byte que ocultamos. Como resultado obtenemos:

10000101 10000111 10001000 10001101 01111000 01100101 01001010 00100111

es decir,

133 135 136 141 120 101 74 39

Los bytes varían como mucho en +- 1, una variación imperceptible para el oído humano.

En cuanto a las imágenes, el proceso es el siguiente, y depende de si queremos como imagen final una imagen de 24 bits o una de 256 colores, que necesitará reducción de color (es por esto por lo que al ocultar datos en una imagen, S-Tools nos muestra un diálogo en el que pregunta si queremos una imagen de 24 bits o emplear reducción de color).

Con las imágenes de 24 bits, el proceso es simple. Dado que cada pixel de una imagen de 24 bits está definido por tres bytes con valores RGB, bastará con dispersar los bits de los datos a ocultar en los bits menos significativos de estos bytes sin que hay grandes variaciones apreciables para el ojo. El gran inconveniente es el tamaño de este tipo de imágenes.

Es bastante más complicado ocultar los datos en una imagen de 256 colores. Una imagen así puede tener antes de la manipulación unos 200 colores, y nuestra manipulación puede hacer que se rebase el límite de 256. Sin embargo, hay una simple regla que utiliza S-Tools y que evita el problema. Una imagen de 32 colores nunca superará el límite de 256 aunque manipulemos los bits. Lo que cambiamos son los bits menos significativos de cada valor RGB de la imagen, es decir, 3 bits que pueden variar entre 000 y 111, 8 valores. Así, si cada color puede "expandirse" en 8 colores, el máximo de colores que podemos tener para no rebasar el límite de 256 es 256 / 8 = 32 colores. No está garantizado que éste sea el límite superior para cualquier imagen, pero si hay suerte, los colores apenas variarán. S-Tools reduce el número de colores de la imagen intentando preservar lo más posible la imagen original. El algoritmo utilizado es ppmquant. Si se conoce cómo trabaja el algoritmo se puede "jugar" con las opciones que da el boton Advanced del diálogo que aparece al ocultar datos en imágenes.

Hablando ahora ya en términos generales, es de destacar que S-Tools permite, mientras haya espacio en el archivo "matriz", ocultar más de un archivo en él.

También hay que señalar que distribuir los datos de una manera lineal en el archivo matriz sería muy simple, por lo que S-Tools, utilizando un generador de números pseudoaleatorios que toma como semilla los bits que forman la password proporcionada, genera una serie de valores que determinarán las posiciones a emplear. Por ejemplo, si el archivo "matriz" tiene 100 bits disponibles para ocultar datos, y se ocultan 10 bits en ellos, no se ocultarán en los bits 0 a 9, sino en una secuencia aleatoria que depende de la password, como por ejemplo 63, 32, 89, 2, 53, 21, 35, 44, 99, 80.