Si has llegado hasta aquí es que eres listo, y por lo tanto te mereces conocer el resto.
Es sabido que casi todos los programas tienen elementos ocultos o puertas traseras incluidas por el programador. Y Aleatix no tenía porqué ser una excepción.
Haz lo siguiente:
1) Arranca el programa Aleatix y carga desde el disco algún fichero encriptado con el mismo.
2) Si conoces su llave o Código de Encriptación, no hay problema. Pero si has perdido el Código o lo ignoras porque ha sido encriptado por otra persona, tienes muchas posibilidades de hallarlo con el siguiente procedimiento:
3) A partir de la pantalla del menú general, aprieta la tecla "k" y ENTER.
4) Te saldrá un mensaje "Opción incorrecta, entre "x" para regresar al menú"
5) Ignoras este mensaje y entras la cifra del año del descubrimiento de América, "1492" y ENTER
6) Y ¡OHHH...! Un nuevo menú nos avisa que hemos entrado en la "Opción reservada de ROMPEDOR DE MENSAJES CODIFICADOS"
--------------------
Llegados a este punto, haré una pausa para explicar un poco por encima el funcionamiento de esta opción:
Mi "Rompedor de Claves" funciona por el procedimiento de la "Fuerza Bruta", aplicando sucesivamente todas las claves posibles (1-67 en J. Cesar y Tritemio, y 1-99.999.999 en Aleatix) y analizando el resultado en cada ocasión para decidir si el mensaje ha sido o no decodificado correctamente.
Esto, que en un principio podría parecer sencillo, en la práctica es bastante difícil de conseguir. Si se le presenta un resultado a una persona, podrá reconocer al instante si el mensaje es correcto o no, pero, para un programa de ordenador es muy complicado hacerlo con un margen de razonable de error.
No sé qué sistema de reconocimiento utilizan programas famosos como "Jonny the Ripper", por ejemplo, pero en mi caso obté por una idea muy sencilla: hallar el valor numérico de la relación entre consonantes y vocales totales del mensaje. Ya que pude comprobar que tal valor era bastante estable para un mismo idioma.
Después de analizar diferentes textos literarios y de revistas, las relaciones consonante/vocal (c/v) que encontré fueron los siguientes:
1,16 = Castellano
1,50 = Inglés
1,37 = Francés
1,20 = Catalán
De esta manera, mi sistema de comprobación asigna un valor porcentual del 100% si el resultado del conteo del mensaje es igual al valor predefinido, y este tanto por ciento disminuye cuando el valor hallado se aleja tanto por defecto como por exceso del central.
Aparte de este filtro, otra secuencia de órdenes comprueba que en el resultado no existan palabras que excedan de 20 letras. Restando puntos porcentuales en caso afirmativo.
Bien, una vez explicado esto, volvemos al procedimiento de manejo del nuestro programa:
--------------------
7) En la primera pantalla del "rompedor de claves" se nos pedirá en primer lugar el posible idioma en que está escrito el mensaje original.
8) Después aparecerá un cuadro informativo sobre los valores posibles del Código de Cifrado, y una tabla orientativa del tiempo que puede tardar el sistema en romper el cifrado del mensaje, dependiendo de su longitud y de la velocidad del ordenador que se utilice.
Otro parámetro que afectará al tiempo de exploración será sin duda el número de claves que deseemos probar. Para el J. Cesar y el Tritemio no hay problema, al ser únicamente 67, pero en Aleatix, si sospechamos que la clave utilizada es sólo de 4 cifras (1-9.999), podemos ahorrar tiempo de cálculo introduciendo 9999 en la pregunta: Introduzca el valor elegido. Con lo que el sistema se detendrá al llegar a esta cifra tope.
Naturalmente, si no estamos seguros de la longitud del código utilizado, entraremos la cifra 99999999.
9) El "Filtro de parada forzada de ciclo 0-100 % ?" Es el porcentaje que nosotros consideramos aceptable para que el programa se detenga. Es decir, si le asignamos un 90%, el programa se detendrá al hallar un mensaje igual o superior a este valor, y no continuará explorando códigos ascendentes.
Esto puede ser interesante en caso de que se prevean largos tiempos de exploración. En caso de asignarle el valor 100 (que yo aconsejo en caso de duda), el programa no se detendrá hasta haber probado el margen de códigos que la hayamos asignado en el apartado anterior.
10) El "Filtro de fiabilidad de resultados 0-100 % ?" Es el valor mínimo de fiabilidad que debe tener un mensaje para ser tenido en cuenta. Normalmente será un valor igual o superior a 70. Teniendo en cuenta que, en todo caso, sólo se guardarán los 20 mensajes de mayor puntuación.
11) En "Desea observar el proceso de busqueda.. s/n" Podemos elegir la "s" (si), y veremos la sucesión de mensajes decodificados, deteniéndose momentaneamente cada vez que uno de los mensajes tenga una puntuación superior al establecido en el filtro de "fiabilidad". O bien eligiendo la "n" (no), sólo veremos una barra de desplazamiento con una indicación aproximada del tiempo que tardará en completar la exploración de todos los códigos. Esta opción es mucho más rápida que la anterior, y por tanto más adecuada en caso de mensajes largos.
12) En nuestro caso, y como muestra la imagen que viene a continuación, el único mensaje que ha superado el filtro de fiabilidad del 70% ha sido el mensaje decodificado correctamente, el cual ha conseguido el 91% . A su vez, podemos ver delante del mensaje las siglas AL, que nos indican que está codificado con Aleatix, y el Código 1234, que fue el utilizado para encriptarlo.
En el siguiente link puedes bajar el código fuente completo, incluyendo las rutinas del Rompedor de mensajes que, para no desvelar esta opción oculta, había eliminado del listado normal:
Bajar código fuente completo de Aleatix

