Академический Документы
Профессиональный Документы
Культура Документы
Proyecto
Criptogra a
Desde hace miles de aos el ser humano ha sen do la necesidad de mantener secretos, de ocultar la
informacin que considera privada, para evitar que otros hagan el mal uso que pudieran hacer de ella
si la conocieran. Siempre ha habido informacin que no se poda hacer pblica, ya fuera para
mantener a salvo un pas, un negocio o los intereses personales de alguien. Cuando haba que
comunicar esta informacin a un aliado, colaborador o amigo, haba que asegurarse de que slo
obtuviera la informacin el receptor al que iba dirigida.
Una de las maneras de transmi r la informacin secreta es haciendo uso de la criptogra a. La palabra
criptogra a viene de dos palabras griegas, kryptos, que signica ocultar y graphein que signica
escribir. Es decir, criptogra a signica escritura oculta.
La criptogra a es el arte y la ciencia de hacer las comunicaciones ininteligibles para todos excepto para
el receptor autorizado , que poseer la llave para desencriptar el mensaje.
Los sistemas de cifrado clsico estn asociados a mquinas de cifrar, y al desarrollo de las primeras
computadoras, sin embargo, nos podemos remontar a siglos pasados con los mtodos, tcnicas y
ar lugios u lizados por emperadores, gobernantes, militares y, en general, diversas civilizaciones, para
mantener sus secretos a buen recaudo. Aun cuando estas tcnicas resultaron muy les en el pasado,
en la actualidad se consideran dbiles, ya que pueden ser descifradas fcilmente.
La criptogra a clsica u liza dos tcnicas fundamentales orientadas a caracteres, estas tcnicas son:
Tcnicas de sus tucin: Cada letra o grupo de letras se sus tuye por otra letra o grupo de
letras para disfrazarla. Esta tcnica conserva el orden de los smbolos del texto original.
Tcnicas de transposicin o permutacin: En esta se reordenan las letras mediante un
algoritmo especco, pero no se disfrazan.
Existen ml ples mtodos de cifrado, de los cules solo consideraremos cuatro: el cifrador de
transposicin por columna, el cifrador del Csar, el cifrador de Vignere y el cifrador de Vernam.
Como su nombre lo indica, este cifrador pertenece al grupo de lo cifradores por transposicin. En este
mtodo se trata de reordenar los caracteres del mensaje original en N columnas, de forma que el
mensaje as escrito se transmite luego por columnas. Cuando se recibe, se aplica de nuevo la
reordenacin para que el mensaje pueda ser desencriptado.
Ahora solo queda escribir la palabra por columnas CPGFRTRIIOAA. Para descifrarlo solo tenemos que
volver a escribir la palabra en columnas, pero leerlas por las.
Este cifrador, que usa una tcnica de sus tucin, apareci en el siglo I a.C. y ob ene su nombre del
emperador romano Julio Csar. El cifrador estaba basado en la sus tucin de una letra por la situada 3
puestos despus en el alfabeto la no. De esta manera A se sus tuye por D, B se sus tuye por E, y la
Z por la C.
As por ejemplo, si queremos encriptar la palabra CESAR obtendramos la palabra FHVDU, y para
desencriptar solo deberamos ejecutar el proceso inverso, es decir, sus tuir cada letra del texto cifrado
por la letra que se encuentre 3 posiciones a la izquierda, de esa manera se sus tuye A por X, B por Y y
as sucesivamente.
Por supuesto, no es conveniente que siempre tomemos 3 letras hacia adelante en el alfabeto, podra
ser solo 1, o 24, lo importante es que este nmero sea siempre menor que la can dad de letras del
alfabeto u lizado.
Cifrador de Vignere
Este es otro cifrador de sus tucin. Este sistema u liza una clave C y una tabla T llamada Tabla de
Vignere la cual se genera como una matriz a par r del alfabeto usado para cifrar y descifrar. Para
cifrar el mensaje se requiere una clave que sea tan larga como el mensaje. Esto se puede lograr
repi endo la clave hasta completar la longitud del mensaje original o texto a cifrar.
Ejemplo:
Su usamos la clave ENIGMA y el texto COMPUTADORA, la clave sera:
Clave repe da: ENIGMAENIGM
Texto plano: COMPUTADORA
Para cifrar tenemos que hacer una relacin uno a uno entre cada carcter del mensaje original con
cada carcter de la clave nueva (repe da hasta igualar la longitud del mensaje original). Veamos
esto con el ejemplo,
Mensaje original C O M P U T A D O R A
Clave nueva E N I G M A E N I G M
Ahora se busca cada relacin del smbolo mi del mensaje con el smbolo ci de la clave a n de
obtener el smbolo ri del mensaje cifrado. Para ello es necesario generar una matriz o tabla a par r
del alfabeto usado y obtener de ella los caracteres del mensaje cifrado segn la relacin anterior.
Usando el ejemplo y la tabla siguiente vemos como la letra e del mensaje original es sus tuida
por la letra v en el mensaje cifrado indexando la tabla con el carcter r de la clave.
Texto cifrado: GBUVGTEQWXM
Ahora, para descifrar se usa el procedimiento que se ilustra a con nuacin (preste atencin a al
sen do de las echas en las tablas, al cifrar y al descifrar!).
Cifrador de Vernam
En este cifrador, se convierte el texto plano en una cadena de bits (la cual puede ser representada en
cdigo ASCII) y se u liza una clave, de la misma longitud del mensaje, tambin representada en
binario. El mensaje cifrado ser el resultado de realizar el XOR del mensaje original con la clave.
Para descifrar el mensaje solo ser necesario conocer la secuencia u lizada como clave y el
criptograma correspondiente. La operacin que revierte el cifrado es la misma que se us para cifrar,
es decir, realizar un XOR entre el criptograma y la clave y determinar que caracteres ASCII se
corresponden con la secuencia.
Para el desarrollo del programa cada grupo deber sa sfacer los siguientes requerimientos:
a) Contar con un men de opciones: El programa al ejecutarse deber mostrar una interfaz de
usuario con las opciones que plantee el sistema. Estas opciones debern incluir, al menos, las
siguientes funcionalidades:
Cifrar Mensaje: Esta opcin le permite al usuario el ingreso del texto que desea encriptar
(mximo 40 caracteres). Posterior a esto, se selecciona el mtodo de cifrado a u lizar sobre
este mensaje original y, en caso de aplicar, el usuario debe proveer la clave que desee para
dicho cifrado. Por l mo, el sistema debe mostrar por pantalla tanto el texto original
ingresado, la clave u lizada y el texto cifrado resultante.
Descifrar Mensaje: Una vez el usuario ingresa a esta opcin, el sistema debe pedirle el
texto que desea desencriptar (mximo 40 caracteres). Luego, al igual que la opcin
anterior, el usuario debe poder seleccionar el mtodo de descifrado requerido para
desencriptar el texto y la clave. Finalmente, el sistema debe mostrar el texto cifrado
ingresado, la clave u lizada y el texto original resultante por pantalla.
Adicionalmente, para las opciones de encriptar y desencriptar, el sistema debe permi r
que al texto plano ya ingresado se le puedan aplicar otros mtodos, desencriptar el texto
resultante del proceso anterior de cifrado o volver al men principal
Crditos: Muestra la informacin de los desarrolladores del sistema (nombres, apellidos y
cdula son obligatorios).
Salir: Termina de forma normal la ejecucin de la aplicacin.
b) Implementar los siguientes mtodos de cifrado/descifrado:
Transposicin de Columnas (3 Columnas).
Transposicin de Columnas (6 Columnas).
Cifrador del Csar con sus tucin por la n-sima letra a la derecha (n<20).
Cifrador del Csar con sus tucin por la n-sima letra a la izquierda (n<20).
Cifrador de Vernam
Cifrador de Vignere.
En el caso del Cifrador de Vignere y del Cifrador de Vernam, si la longitud de la clave inicial
introducida por el usuario es menor a la longitud del mensaje, el sistema deber producir a par r de
esta clave inicial una nueva repi endo los smbolos de la clave inicial hasta igualar la longitud del
mensaje a cifrar. Nota: el alfabeto a usar es a criterio del desarrollador.
El programa deber proveer al usuario un men de opciones (cifrar, descifrar, crditos, salir)
que haga la validacin de la opcin que teclee el usuario y que ante una opcin errnea el
sistema no termine anormalmente. Tambin debe permi r la navegacin a travs de este de
forma clara y simple, es decir, que no sea confusa. La opcin de crditos debe permi r
regresar al men principal. El programa slo debe nalizar de forma normal con la opcin
Salir.
El programa debe compilar sin errores, de no ser as el proyecto se considerar no
entregado.
El sistema debe realizar las validaciones bsicas como que el n del algoritmo de sus tucin
sea menor a 20, que el mensaje no tenga ms de 40 caracteres o smbolos, que la longitud de
la clave sea menor que la del mensaje, etc.
En la implementacin del programa deben u lizar al menos dos procedimientos, en los que se
hagan pases de parmetros, u lizando cualquiera de las tcnicas disponibles para ello
(registros, pilas)
Se recomienda el uso del manual de lenguaje ensamblador Assembly Language For x86
Processors de Kip Irvine.
Restricciones:
Es aceptable el uso de la librera del autor solo para las operaciones de entrada/salida.
No podrn u lizarse otros procedimientos de esa librera
No pueden u lizarse las direc vas de control de ujo como IF, REPEAT, WHILE y otras
relacionadas con estas
Un aspecto a tomar en cuenta en el proyecto es la intradocumentacin, por lo tanto se
aconseja el uso de comentarios (recuerde que los comentarios deben permi r entender el
cdigo, no deben limitarse a describir la instruccin con palabras, ni ser excesivos) y nombres
de e quetas que reejen su funcin dentro del cdigo. Se recomienda documentar el uso de
las e quetas de datos denidas. Es obligatorio documentar los procedimientos de la forma
denida en clase.
Consideraciones de entrega:
xito!