Estoy con un curso de Python en la universidad y esta semana nos dieron la tarea de crear un chat. Los mensajes debían enviarse usando la encriptación CipherSaber, que está basada en RC4. Si bien RC4 es un algoritmo conocido, CipherSaber no lo es, y por eso creo que le puede servir a más de alguno.

[Enlace externo eliminado para invitados]
[Enlace externo eliminado para invitados]

Características:
+ Encripta cadenas de máximo 246 caracteres.
+ El resultado es una cadena aleatoria + binario.
+ Todo el código está comentado por si alguien quisiera ver en más detalle el algoritmo.
+ Está listo para su uso, correr el código con Python e interactuar con la consola.

Imagen


Código:

Mostrar/Ocultar

Aprendí bastante sobre encriptaciones con esta tarea, más adelante pretendo hacer mi propio algoritmo (si lo logro lo publicaré por aquí).

Nos vemos!
Hack 'em all
Skype: szudisch
(C) Szudisch 2013
Buen trabajo. No conocía ese algoritmo.

No he leído el source pero, ¿la longitud máxima de 246 caráceteres es por algo especial?
Blau escribió:Buen trabajo. No conocía ese algoritmo.

No he leído el source pero, ¿la longitud máxima de 246 caráceteres es por algo especial?
¡Gracias Blau!

La razón de los 246 caracteres no es fácil de explicar. Lo que sucede es que en una parte del algoritmo cada carácter del mensaje (en binario) se compara con una lista de números (en binario). Esta lista de números contiene números desde el 0 hasta el 255 (todos esos números se pueden escribir con 8 dígitos binarios*) y como se compara cada carácter del mensaje con cada carácter de la lista, entonces si el mensaje tuviera 257 caracteres la lista tendría que tener números desde el 0 al 256 y en ese caso habría un número binario de 9 dígitos que se intentaría comparar con uno de 8.

Eso explica por qué el mensaje debe tener 256, pero además se agrega al mensaje una cadena aleatoria de 10 dígitos. De ahí que 256 - 10 = 246.

Espero se haya entendido.

Saludos!

* El número 256 usa 9 dígitos binarios, se escribe: 100000000, no así el 255 que se escribe: 11111111
Hack 'em all
Skype: szudisch
(C) Szudisch 2013
wauw! sabía de este cifrado pero nunca había visto un source! tiene muy buena pinta y hasta puede que lo use alguna vez en algún proyecto, dejaré creditos!
Responder

Volver a “Fuentes”