jueves, 14 de septiembre de 2006

top-secret

Tras ver este post de Deye, no he podido resistirme a mangonear* en el código en Javascript del traductor al que enlaza para hacer un codificador de mensajes online... o dos:
El arte de la criptografía desde antiguo ha sido útil para compartir información de forma selectiva y/o exclusiva. Utilizado por grandes líderes, por soldados, y por amantes furtivos. Para esquivar la censura, la represión y la "inmiscuición".
Antes de los ordenadores, los métodos estaban limitados a la propia capacidad de cálculo humana; los sistemas más intuitivos eran la transposición de letras y la sustitución en base a una plantilla modelo (la B se cambia por la Z, la C por la P, la D por la A, etc)... así como los cambios de alfabeto: alfabetos que podían ser fonéticos, silábicos o combinados.
En algunos criptogramas la "i" y la "j" eran equivalentes, así como la "u" y la "v". En otros, por el contrario, una misma letra podría tener más de una representación, a capricho; también podría haber un símbolo de despiste infiltrado, introducido aleatoriamente. Todo vale con tal de desorientar, romper la lógica externa, entretener y frustrar las pesquisas de un eventual criptoanalista, y sobre todo para inutilizar los métodos estadísticos basados en frecuencia de aparición de caracteres.

Si el mensaje se inserta en otro mensaje, si los símbolos válidos se encuentran rodeados de símbolos basura, de ruido, podemos hablar de esteganografía. En este caso, el mensaje no necesita ir cifrado; se muestra a la vista de todos aunque sólamente los ojos adiestrados serán capaces de leerlo. No codificamos, sino que ocultamos mezclando elementos válidos con elementos no válidos.

La informática ha elevado la criptografía a otro nivel; ha proporcionado unas herramientas de programación que automatizan el descifrado por métodos "brutos" (prueba-error), efectivos tan sólo por la velocidad de proceso a la que se realizan. A la vez, estas herramientas permiten cifrados igual de brutos, con unos algoritmos que escapan a las posibilidades de cálculo y tiempo humanas, y que pueden operar a nivel de unidades más pequeñas que la letra: los bits que la definen virtualmente en binario, mediante los operadores lógicos AND-OR-XOR. Con lo que en el nuevo campo de juego los criptogramas se realizan con máquinas y se descifran con máquinas.

Desde otra perspectiva, la criptografía se puede enfocar como método de investigación científica: desencriptar el código de las cosas. ¿Y si las leyes del mundo están escritas en algún lugar? ¿y si sólo hace falta saber cómo leer? Se ha fantaseado con mensajes secretos ocultos en los números irracionales (aquellos que tienen infinitos decimales) por ejemplo el número PI (3.1415926535897932384626433...), el número E (2.718281828459045235...), el número raíz cuadrada de 2 (1.4142135...), el número áureo (1,6180339887...)...

Los codificadores que he puesto arriba son muy sencillos, se basan en la sustitución de cadenas de caracteres. Pero además tienen una segunda vuelta de cifrado que realiza pequeños trastoques; de ese tipo de cambios que ya he comentado que ensucian el criterio de encriptación inicial, para hacer la puñeta más que nada. Aun así, no es una encriptación de calidad, y además el algoritmo o criterio de cifrado se puede sacar del propio código de la página.


(*) Método de programación basado en coger previamente el código fuente de un programa que hace más o menos lo que quieres, y copypastear y modificar hasta que haga ni más ni menos que lo que quieres.
:saparepa te pete tokekekopa yakukueskonupa
toespa mi nupuzo dopudakufazo te fi eopatulu.
¿yo ropuyi eoketugukuko fi fokukupa
kakezoyozo rofe oi mizorekutekitu te topazo podipazo?
:vialjat lvt jiqt intyflat vltypyvfoya
ifyvat lit lyjiyjt yfjiynfjyjt lvt vyt fvaqjf.
¿vlt tljbe fvpqfinlt vyt fjtypa
flpyjvlyjt tl lt iyt liyjljplvbqt lvt ifayjtmlfayj?

7 comentarios:

on dijo...

Te ha faltado mencionar la esteganografía y ya lo bordabas.

Herel dijo...

Pues lo estoy flipando, porque sí que había un párrafo dedicado a la esteganografía... pero no aparece!!!!
Lo intentaré reescribir de memoria :/

aiyana dijo...

Tema complejo, me recuerdan a las matematicas... yo no entiendo nada

Herel dijo...

Si te sirve de consuelo, yo tampoco entiendo hasta que le encuentro una aplicación de mi interés.

on dijo...

¿Has probado el Truecrypt? Échale un ojo , que igual te mola (y es código abierto).

on dijo...

Por cierto, ese método de programación (mangoneo) no sirve para aprovar exámenes (aigh...).

Herel dijo...

Le echaré un vistazo. Y bueno, ¿y no te puedes llevar un código-chuleta en una memoria USB? :DDDD