PreData: Se lee mejor el ejemplo visto en formato NotePad (courierNew) ya que queda todo alineado como en una tabla pero bueno... Dadle a leer la versión completa del post para leer todo.

Buenas! Soy nuevo en el foro; me pareció interesante ingresar aquí, xq de aquí recogí bastantes ideas. Estoy desarrollando un programa con la intención de que sea algo muy muy gordo :D

Mi programa está escrito en ANSI C; con la idea de que sea multiplataforma. Y a parte porque es el lenguage que mejor controlo. De momento he aprendido a cifrar archivos bajo una clave de entre 6'5 y 1666 BITs (longitud de 1 a 256 caracteres de entre un alfabeto de 91).

Actualmente cifra así: (esto es solo una analogía)

Alfabeto 0: abcdefghijklmnñopqrstuvwxyz_
CLAVE ----> hola

Alfabeto 1_: hijklmnñopqrstuvwxyz_abcdefg
Alfabeto 2_: opqrstuvwxyz_abcdefghijklmnñ
Alfabeto 3_: lmnñopqrstuvwxyz_abcdefghijk
Alfabeto 4_: abcdefghijklmnñopqrstuvwxyz_

MENSAJE CLARO: mi nick es strapping
CLAVE--------: holaholaholaholahola
ALFABETO-----: 12341234123412341234
MENSJ CIFRADO: swknoqu lgks flpwwvg

Está clara la técnica verdad? Pues la idea es aplicar el concepto en vez de para alfabeto de "a" a "_", haciendolo en valores de byte, de 0 a 256.

Mi programa simplemente hace una sustitución polialfabetica en función de la clave... pero tiene el gran fallo en archivos que no contengan textos; ya que, según he podido observar gracias a un programita que he creado para leer los primeros 100 bytes de cada archivo en valores de byte; me fijado, que son permanentes; es decir; que todos los archivos .DOC de determinada versión empiezan igual; y a parte muchos ejecutables, tienen largas cadenas de byte 0, donde se puede ver a primera vista la clave. Ya que para una secuencia "00000000000" se puede leer en la misma posición en el cifrado "aholaholahol"... lo cual tira por el suelo todo el sistema...

Por otra parte se me ocurrió aplicar la tecnica de difusión; también de manera dinámica (dependiente de la llave); para así al cambiar de sitio todo, todo vaya cambiando... y tras investigar y leer mucho; he leido algo sobre S-Box...

De momento mi programa trabaja con bloques de 65535 bytes; y en mi ordenador lo he conseguido depurar alcanzando los 34 MB/s para cifrar y descifrar archivos...

Me podríais ayudar? Alguna idea para el asunto de andar aplicando la técnida de difusión (alteración del orden de la secuencia del bloque).

Visitaré frecuentemente el Foro; pero de todas formas si alguien quiere ponerse en contacto directo conmigo aquí tenéis mi e-mail: strapping_83@hotmail.com

UN FUERTE ABRAZO! GRACIAS A TODOS!