Вы находитесь на странице: 1из 6

Escuela de Ingeniera Inform ca

Estructura del Computador


Semestre Mar 2017 Jul 2017
Proyecto

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.

Veamos algunos trminos importantes en criptogra a:


Texto plano: Es el mensaje que no ha sido some do a un proceso de cifrado.
Criptograma (o texto cifrado): Es el mensaje que ha sido some do a un proceso de cifrado.
Encriptar (o cifrar): es el proceso de transformar un texto plano en texto cifrado o criptograma.
Desencriptar (o decifrar): Es el proceso inverso, donde se convierte el mensaje cifrado a su
forma original

Para poder producir un criptograma o texto cifrado es necesario lo siguiente:


Un mensaje: compuesto por el texto que se desea cifrar, generado a par r de los caracteres de
un alfabeto
Una llave o clave: secuencia o cadena de caracteres o smbolos que permiten conver r el texto
plano en texto cifrado
Un algoritmo de encriptamiento: mtodo o tcnica que permite transformar el texto original
en cifrado
Un alfabeto: Conjunto de caracteres o smbolos que pueden ser encriptados.

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.

Cifrador de Transposicin por Columna

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.

Ejemplo: Escribamos CRIPTOGRAFIA en tres columnas:


C R I
P T O
G R A
F I A

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.

Cifrador del Csar

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.

En esta la se buscan los


caracteres del mensaje
original

En esta columna se buscan


los caracteres de la nueva
clave

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.

Ms Informacin sobre los fundamentos de la Criptogra a buscar en:


h ps://unamcriptograa.wordpress.com/category/tecnicas-clasicas-de-cifrado/
h ps://es.slideshare.net/HeyllerReyes/sistemas-de-cifrado-clasicos
h p://es.wikihow.com/codicar-y-decodicar-u lizando-la-cifra-de-Vigen%C3%A8re
Requerimientos

U lizando la informacin de la seccin anterior, implementar, u lizando el lenguaje ensamblador IA32


con sintaxis Intel, desarrollar un programa que permita cifrar y descifrar mensajes dados por los
usuarios a travs de diferentes mtodos de encriptamiento.

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.

Consideraciones de Diseo e Implementacin del Sistema

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:

El proyecto debe realizarse en grupos de 2 personas.(sin excepcin)


Fecha de entrega mxima: domingo 16 de julio de 2017 hasta medianoche. (puede
entregarse antes)
Se entregar a travs de Mdulo7, u lizando la evaluacin correspondiente, que se abrir en
los prximos das
El proyecto deber ser realizado por el equipo, en caso de detectarse copias o que el proyecto
no fue desarrollado por el equipo, la nota deni va ser cero y las personas involucradas sern
sancionadas.
Luego de la entrega se realizar un interrogatorio al cual deben asis r los 2 integrantes del
equipo. El interrogatorio tendr una duracin de 30 minutos. Durante el interrogatorio
debern ejecutar el programa realizado, los estudiantes sern los encargados de proveer de la
infraestructura necesaria para la ejecucin del programa, bien sea en alguno de los
laboratorios de la universidad o su laptop. Si alguno de los estudiantes no asis era al
interrogatorio la nota asignada a ese estudiante ser cero.
En caso de que se presentaran circunstancias ajenas que impidieran que se realizaran los
interrogatorios, la profesora podr establecer una forma alterna va de evaluar este aspecto

xito!