lunes, 1 de agosto de 2011

Al Dia Bolivia: Ideando un Nuevo Algoritmo

Compartir Compartir en FriendFeed

Al Dia Bolivia
Ideando un Nuevo Algoritmo
Aug 1st 2011, 15:06


Otra vez ando trasteando con los cuadernos de un solo uso.
Bueno, me he estado estrujando un poco el limón y repasando con interés en mi manual de cifrado los distintos algoritmos que había hace unos años. He tenido un par de ideas al respecto, pero francamente nada innovador, de forma que seguiré dándole vueltas.
Escribo esto, porque de alguna manera quiero implicar en el problema el proceso de generar cuadenos otp que ya os había presentado, ahora en una versión más avanzada. Lo usaría como punto de partida para lo que se me ocurra en el futuro, pero de momento le he incorporado una funcionalidad interesante y... que cifra un poquito!!! Al pie os pongo el link para descargarlo si os interesa...
El algoritmo trata de codificar un texto de hasta 100 caracteres dentro de un otp ya generado; va buscando dentro del otp de forma secuencial cada uno de los caracteres del texto-claro, y donde encuentra uno, pone una almoadilla "#" en la misma posición del cuaderno codificado y continúa el proceso del texto-claro en esa posición del otp. Si el caracter no coincide con el del texto-claro pone un espacio; así con todos los caracteres hasta terminarlos. Al final tenemos un cuaderno codificado con una almoadilla "#" en la posición donde estaba el primer carácter coincidente con el del texto-claro que se estaba procesando en ese momento.
Para decodificar va leyendo caracteres del otp y del cuaderno codificado, en paralelo. En el momento en que encuentra una almohadilla en el codificado, coge el correspondiente del otp y lo añade al texto-claro, y así hasta que se termina el cuaderno codificado.
Hasta aquí nada interesante; sólo la funcionalidad de generar otp's y poder codificarlos y descodificarlos, de forma automática, aunque ya es algo.
He pensado en darle una pincelada criptográfica incluyendo un parámetro de desplazamiento que permite indicar en qué posición del otp queremos que se inicie el proceso de codificar un texto, ya que como el proceso siempre se inicia en el primer carácter del cuaderno codificado, y al estar el texto-claro limitado a 100 símbolos, las marcas siempre tienden a estar al principio del cuaderno.
Aun así sería fácil de decodificar, pues las marcas de perforación saldrían alineadas verticalmente con el otp y bastaría desplazarlas en bloque hacia abajo para encontrar un texto congruente.
Por ese motivo el algoritmo "trima" el cuaderno codificado eliminando espacios en blanco iniciales y finales, de forma que ahora las marcas se sitúan al principio del cuaderno codificado, pero ya no están alineadas ni vertical ni horizontalmente. Luego el algoritmo
calcula y nos presenta el nuevo parámetro de desplazamiento que se obtiene tras el trimado y se necesita para situar de nuevo las marcas en su lugar.
De no tener dicho parámetro, no queda más recurso que la fuerza bruta, es decir ir desplazando la estructura de marcas sobre el otp y anotando, hasta encontrar algo congruente. Es un cifrado sin fuerza alguna, pero complicará un poco las cosas a un eventual vulnerador que tuviese tanto el otp como el mensaje codificado; además, dependiendo de la longitud, se pueden obtener varios mensajes en claro como probables.
Éste sería un punto de partida para un nuevo algoritmo aún sin definir, pero me gustaría saber vuestras opiniones, y qué otros enfoques le podría dar, pues como dije en un post anterior, lo que no quiero es idear la enésima máquina de cifrar con rodillos.
De paso pondréis a prueba la potencia de vuestro PC, pues si lleváis al máximo los punteros del generador veréis cómo se va ralentizando, ya que estará generando 22500 números pseudoaleatorios no determinísticos de 64 bits en cada ciclo (en mi PC más o menos un ciclo por segundo). En realidad he tenido que limitar los punteros verticales a 10, pues llegaba a bloquearse el hilo de proceso.
Aqui está. En windows basta pulsar para ejecutarlo. En Linux abrir una terminal y ejecutarlo con java -jar otp.jar:

Via : Kriptopolis


You are receiving this email because you subscribed to this feed at blogtrottr.com.
If you no longer wish to receive these emails, you can unsubscribe from this feed, or manage all your subscriptions



0 comentarios:

Publicar un comentario

Publicidad