Trabajo de Grado Heidi Chaves - Biblioteca Digital Universidad de

Anuncio
DISEÑO E IMPLEMENTACIÓN DE UN SOFTWARE MULTIMEDIA PARA EL
APRENDIZAJE DE LA CRIPTOGRAFÍA
HEIDI ALICIA CHAVES JIMÉNEZ
UNIVERSIDAD SAN BUENAVENTURA
FACULTAD DE INGENIERÍA
INGENIERÍA DE SISTEMAS
BOGOTÁ D.C.
2008
DISEÑO E IMPLEMENTACIÓN DE UN SOFTWARE MULTIMEDIA PARA EL
APRENDIZAJE DE LA CRIPTOGRAFÍA
HEIDI ALICIA CHAVES JIMÉNEZ
Proyecto de Grado para optar al título de Ingeniera de Sistemas
Asesor:
Nelson Forero
Ingeniero de Sistemas
UNIVERSIDAD SAN BUENAVENTURA
FACULTAD DE INGENIERÍA
INGENIERÍA DE SISTEMAS
BOGOTÁ D.C.
2008
Nota de aceptación:
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________
Firma Presidente del Jurado
____________________________
Firma del Jurado
____________________________
Firma del Jurado
Bogotá D.C., 11 de Noviembre de 2008
AGRADECIMIENTOS
Agradezco a Dios todo poderoso por haberme dado paciencia, sabiduría,
resistencia e inteligencia para la culminación del proyecto, a mis padres por todo
su apoyo moral y económico, a mi mejor amigo colaborador y colega por su apoyo
incondicional, a los docentes que contribuyeron en el proceso de mi formación
profesional y en especial a mi tutor y director Nelson Forero por haber confiado en
mí y haberme apoyado en todo momento.
A la Facultad de Ingeniería de Sistemas por haber entendido mi posición laboral y
haber recibido con gusto a mi madre quien se encargó de entregar las
correcciones finales del trabajo de grado.
Todas las personas aquí mencionadas y las que faltaron hicieron posible la
finalización de este proyecto, para optar el titulo de Ingeniera de Sistemas.
CONTENIDO
Pág.
AGRADECIMIENTOS
iv
CONTENIDO
v
INTRODUCCIÓN
12
1
PLANTEAMIENTO DEL PROBLEMA
14
1.1 ANTECEDENTES
14
1.2 DESCRIPCIÓN Y FORMULACIóN DEL PROBLEMA
16
1.3 JUSTIFICACIóN
17
1.4 OBJETIVOS
17
1.4.1 Objetivo General
17
1.4.2 Objetivos Específicos
17
1.5 ALCANCES Y LIMITACIONES
18
1.5.1 Alcances
18
1.5.2 Limitaciones
18
2
19
MARCO DE REFERENCIA
2.1 MARCO TEÓRICO – CONCEPTUAL
19
2.1.1 Método Criptográfico por Transposición Escítala.
20
2.1.2 Método Criptográfico por Sustitución Monográmica Polybios.
21
2.1.3 Método Criptográfico por Sustitución Monoalfabético Cesar.
23
2.1.4 Método de Sustitución Polialfabética Vigeneré
23
2.1.5 Cifrador de Albertini.
25
v
2.1.6 Criptografía Simétrica.
28
2.1.7 Criptografía Asimétrica.
28
2.2 Metodologías de desarrollo de aplicaciones web.
29
2.2.1 El modelo lineal secuencial
30
2.3 Herramientas de Desarrollo
32
2.3.1 Comparación de bases de datos
32
2.3.2 Comparativo de herramientas para desarrollo WEB
36
2.3.3 Comparación de Servidores web
37
2.4 MARCO LEGAL O NORMATIVO
38
2.4.1 Jurisprudencia Colombiana.
38
2.4.2 Estándares de la Organización Internacional de Estándares (ISO)
39
3
42
METODOLOGÍA
3.1 ENFOQUE DE LA INVESTIGACIÓN
42
3.2 LÍNEA DE INVESTIGACIÓN DE USB/SUB-LÍNEA DE FACULTAD/CAMPO
TEMÁTICO DEL PROGRAMA
42
3.2.1 Línea de investigación.
42
3.2.2 Sublínea de investigación.
42
3.2.3 Campo Temático del Programa.
42
3.3 TÉCNICA DE RECOLECCIÓN DE INFORMACIÓN
42
3.4 POBLACIÓN Y MUESTRA
43
3.5 HIPÓTESIS
43
3.6 VARIABLES
43
3.6.1 Variables Independientes.
43
vi
3.6.2 Variables dependientes.
43
4
44
DESARROLLO INGENIERÍL
4.1 ANÁLISIS DE LA APLICACIÓN
44
4.2 DISEÑO DE LA APLICACIÓN
45
4.2.1 Casos de Uso
45
4.2.2 Modelo Conceptual de la Base de Datos.
56
4.2.3 Modelo Lógico de la Base de Datos.
57
4.2.4 Diseño de la base de datos.
58
4.2.5 Diccionario de datos de la base de datos
59
4.2.6 Mapa de Navegación
64
4.3 IMPLEMENTACIÓN O DESARROLLO DE LA APLICACIÓN
65
4.3.1 Creación del Enterprise
66
4.3.2 Creación del Javaclass
66
4.3.3 Pseudocódigo
69
4.4 PRUEBAS:
79
5
PRESENTACIÓN Y ANÁLISIS DE RESULTADOS
82
6
CONCLUSIONES
86
7
RECOMENDACIONES
87
GLOSARIO
88
BIBLIOGRAFÍA
91
vii
LISTA DE FIGURAS
Pág.
Figura 1. Mecanismos de seguridad informática
15
Figura 2. Fallas de seguridad informática.
16
Figura 3. Cifrado mediante sistema de escítala.
21
Figura 4. Cifrador de Albertini
25
Figura 5. Rueda de Jefferson
26
Figura 6. Disco de Wheatstone
26
Figura 7. Maquina Hagelin
27
Figura 8. Modelo Lineal Secuencial
30
Figura 9.
45
Aplicación del caso de uso crear docente
Figura 10. Aplicación del caso de uso leer docente
46
Figura 11. Aplicación del caso de uso actualizar docente
47
Figura 12. Aplicación del caso de uso crear estudiante
48
Figura 13. Aplicación del caso de uso leer estudiante
49
Figura 14. Aplicación del caso de uso actualizar estudiante
50
Figura 15. Aplicación del caso de uso validar usuario.
51
Figura 16. Aplicación del caso de uso crear histórico
52
Figura 17. Aplicación del caso de uso leer historial
53
Figura 18. Aplicación del caso de uso leer historial
54
Figura 19. Modelo conceptual de la Base de Datos
56
Figura 20. Modelo lógico de la Base de Datos
57
viii
Figura 21. Diseño de la Base de Datos
58
Figura 22. Mapa de navegación
64
ix
LISTA DE TABLAS
Pág.
Tabla 1. Métodos de Cifra Clásicos.
20
Tabla 2. Tabla de cifrar de Polybios en letras
22
Tabla 3. Tabla de cifrar de Polybios en números
22
Tabla 4. Tabla de cifrar del Cesar
23
Tabla 5. Tabla de Vigeneré
24
Tabla 6. Ejemplo de un texto cifrado bajo Vigeneré
24
Tabla 7. Comparativo entre metodologías
29
Tabla 8. Documentación del caso de crear docente
46
Tabla 9. Documentación del caso de leer docente
47
Tabla 10. Documentación del caso de actualizar docente
48
Tabla 11. Documentación del caso de crear estudiante
49
Tabla 12. Documentación del caso de leer estudiante
50
Tabla 13. Documentación del caso de uso de actualizar estudiante
51
Tabla 14. Documentación del caso de uso de validación
52
Tabla 15. Diccionario de datos
59
x
LISTA DE ANEXO
Anexo 1. Encuesta a estudiantes.
92
Anexo 2. Prueba a estudiantes de la funcionabilidad del software.
94
Anexo 3. Manual del usuario.
96
Anexo 4. Tutorial de desarrollo.
107
xi
INTRODUCCIÓN
La criptografía proviene del griego Kryptos (oculto) y gráphein, (escritura), por lo
tanto la criptografía es la técnica, ciencia o arte de la escritura secreta1 en este
proceso al mensaje oculto se le llama cifrado, y leer el mensaje confidencial
recibe el nombre de descifrar, este método se ha utilizado a lo largo de la historia
para proteger los secretos de la humanidad. David Kahn, en su libro sobre el
criptoanálisis, The Codebreakers, identifica el uso de la criptografía en Egipto en
1900 antes de Cristo, en Mesopotamia en 1500 antes de Cristo y en las escrituras
sagradas en el año 500 antes de Cristo. El objetivo de la criptografía es proteger la
información de las personas que entran en comunicación de una manera segura.
Uno de los primeros practicantes de la criptografía fue Julio César, que desarrollo
una clave conocida como cifra de César, basada en una rotación fija de las letras
del alfabeto. Posteriormente la criptografía se siguió utilizando en Europa, Oriente
medio y Norte de África.
La criptografía fue básica para conseguir victorias militares durante la primera
guerra mundial los británicos descodificaban mensajes para poder interceptar al
enemigo y, a comienzos del siglo XX el uso de este sistema cobra gran
importancia con la segunda guerra mundial, haciéndose evidente en las maquinas
de cifrar como la Enigma, con ellas la informática toma el protagonismo en los
sistemas de cifrar y cambia el rumbo de la historia.
Históricamente la clasificación de los Sistemas Clásicos se da por Transposición y
Sustitución de caracteres con clave o sin clave, estos basan su seguridad en el
algoritmo de cifrar, que convierten un texto plano en uno cifrado. Para el desarrollo
de la criptografía moderna se hace uso de lo anterior y se le suma propiedades
matemáticas como el cálculo del algoritmo, representación binaria, factorización
de números cuantiosos, actualmente se utilizan los algoritmos de clave secreta
DES, las curvas elípticas y la criptografía cuántica.
Debido a la popularidad de la Web y a los medios electrónicos la tecnología de la
encriptación llega al consumidor promedio, para garantizar la seguridad de las
transacciones financieras, servicio en línea e información al cliente.
Teniendo presente esta información, el presente proyecto pretende extraer de la
historia algunas formas de encriptar un mensaje, de una manera sencilla a través
de fundamentos teóricos y ejercicios prácticos con algunos de los algoritmos de
cifrado clásico, con la intención de buscar el acercamiento de los estudiantes de
ingeniería de sistemas de los primeros semestres a ahondar en el tema.
1
ÁNGEL, Ángel José de Jesús. Criptografía para principiantes. Mayo 2000, formato PDF (59 páginas).
12
La intención de la tecnología interactiva en la enseñanza sirve como soporte a la
interacción humana que es la más importante y enriquecedora que debe tener el
docente con sus estudiantes. La calidad de este proceso educativo va a depender
el que los estudiantes aprendan a utilizar los medios interactivos para dar un
mayor rendimiento en el aréa designada.
La formación basada en la web comparte los mismos principios pedagógicos que
otro tipo de formación menos tecnificada y por ende el proceso enseñanzaaprendizaje ha de estar orientado y organizado para lograr el objetivo educativo
propuesto en este proyecto por el autor.
El producto final de este proyecto es la aplicación de un software con intención
educativa para prácticas en la ingeniería específica referente al plan de estudios
de la Universidad de San Buenaventura,
13
1
1.1
PLANTEAMIENTO DEL PROBLEMA
ANTECEDENTES
A nivel internacional más específicamente en España, los criptosistemas forman
parte de las Tesis Doctorales. En la Facultad de Ingeniería de Sistemas de la
Universidad Politécnica de Madrid se desarrollaron los Proyectos de Grado
“Criptosistemas Modernos de Clave Privada y Pública (software de aplicación)”,
“Estudio e Implementación de Criptosistemas Basados en el Problema de la
Mochila”, “Estudio y Seguimiento de los Algoritmos de Funciones Hash: MD5 y
SHA-1”, “Implementación de Software Didáctico de Clave Privada”, “Software de
Simulación de la Fortaleza de Cifrados”. Todos estos proyectos dan a conocer la
fortaleza que tienen los algoritmos para práctica de cifrados, adicional a la teoría,
se implementa un software para prácticas de laboratorio correspondientes a la
asignatura de Seguridad Informática.
En internet aparece un aplicativo que recibe el nombre de cryptool que es un
software destinado a facilitar el aprendizaje de la Criptología, que viene siendo
desarrollado desde 1998 por Bernhard Esslinger, aunque tras el proyecto están
Deutsche Bank, la Universidad de Siegen y TU Darmstadt.
Es software libre, pero de momento sólo funciona bajo Windows, aunque ya se
trabaja en una nueva versión 2.0 basada en Java y que por lo tanto será
multiplataforma. No obstante, existe también Cryptoolinux, un port para Linux,
basado en QT4. El software está disponible en inglés, alemán y polaco. Dispone
de ayuda interactiva y abundantes presentaciones 3D sobre Criptología clásica y
moderna y, teoría de números.
En la Escuela Militar de Ingenieros (México) se elaboró una Tesis titulada “Diseño
de Un Dispositivo que Proporcione Seguridad Criptográfica a la Red Telefónica
Militar“, 2001, esta tesis aporta información básica del algoritmo DES.
Es importante destacar que en la Universidad de San Buenaventura se encontró
un Trabajo de Grado que recibe el nombre de “Desarrollo de un Algoritmo de
Cifrado Simétrico de Resumen”, con el objetivo de volver más seguro algunos
algoritmos ya existentes, y en la misma línea un texto escrito por el Docente
Héctor Manuel Vega, titulado Lógica y Algoritmos “Programación en Matlab
Aplicada a la Ingeniería”, este texto se creó con la intención que el usuario pueda
desarrollar cualquier programa de ingeniería con el lenguaje de Matlab incluyendo
ayudas para los maestros de la cátedra de programación.
14
Por ello es primordial que los usuarios de la Universidad de San Buenaventura
encuentren soporte y herramientas adecuadas que faciliten su tarea profesional y
sus proyectos a corto plazo.
Actualmente las estadísticas muestran un marcado interés por las herramientas de
cifrado de datos y los firewalls de aplicaciones web como mecanismos de
seguridad de la información. Las estadísticas que se presentan a continuación
fueron generadas por la Asociación Colombiana de Ingenieros de Sistemas.
“Estas estadísticas están basadas en una encuesta de manera interactiva a través
de una página web, dispuesta por la ACIS”2.
Figura 1. Mecanismos de seguridad informática
Fuente: CANO, J Jeimy, Encuesta Nacional de Seguridad Informática, ACIS
2
Cano J Jeimy, Encuesta Nacional de Seguridad Informática, ACIS.
15
Figura 2. Fallas de seguridad informática.
Fuente: ACIS, Encuesta Nacional de Seguridad Informática 2008
Este proyecto presenta de forma clara y resumida las diferentes formas de
encriptar un mensaje por medio de algunos algoritmos clásicos, sin descuidar los
conceptos teóricos fundamentales para la gestión del proyecto, también resulta
muy adecuado para profesionales informáticos que deseen ampliar y perfeccionar
sus conocimientos.
1.2
DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA
El interés por los criptosistemas se hace cada vez más fuerte en el mundo de la
informática destacando la escancia de los “Sistemas de Curvas Elípticas” y la
“Criptografía Cuántica” que son las más utilizadas en la seguridad de la
Información.
Desde el mismo momento que hay conexión a Internet se está expuesta a una
serie de amenazas concernientes a la privacidad y la seguridad de los datos
personales y al buen funcionamiento de la PC, por ello hay aspectos de la
seguridad que se deben revisar y ampliar.
Actualmente la Universidad de San Buenaventura no posee un software que
muestre el proceso de encriptación de un mensaje como inicio a la seguridad de la
16
información en los estudiantes de los primeros semestres de Ingeniería de
Sistemas como soporte a los requerimientos que solicita el mundo laboral.
De ahí la importancia de preguntarse:
¿Cómo diseñar e implementar un aplicativo de software que muestre las diferentes
formas de encriptar un mensaje?
1.3
JUSTIFICACIÓN
La criptografía es un componente básico de una solución de seguridad, por ello es
importante destacar la enseñanza de algoritmos clásicos de criptografía, ya que
hoy día la gente busca más seguridad y confiabilidad en la sociedad de la
información.
En los últimos años el software está presente en la mayor parte de los sistemas y
resultan vitales para el funcionamiento y progreso de las sociedades modernas.
Desde esta panorámica el presente proyecto es creado con la intención de
conocer los fundamentos teóricos de la criptografía clásica, y exponer de forma
práctica como encriptar un mensaje.
1.4
OBJETIVOS
1.4.1 Objetivo General
Diseñar e implementar un aplicativo multimedial que enseñe las diferentes formas
de encriptar un mensaje por medio de algunos algoritmos clásicos.
1.4.2 Objetivos Específicos
⋅
⋅
⋅
Analizar métodos criptográficos clásicos a través de la investigación
empírico analítica para implementar un aplicativo de software multimedia.
Diseñar el aplicativo que permita el aprendizaje del proceso de encriptación
mediante la utilización de herramientas de programación.
Implementar el software como herramienta de soporte en la ingeniería
específica referente al plan de estudios de la Universidad.
17
1.5
ALCANCES Y LIMITACIONES
1.5.1 Alcances
La implementación del software transmitirá conocimientos sobre algunos métodos
clásicos de encriptación (Cesar, Polybios, Escitala y Vigeneré).
1.5.2 Limitaciones
Este aplicativo no pretende dar conocimiento sobre las técnicas criptográficas
básicas simétricas y asimétricas, ni tampoco sobre curvas elípticas y criptografía
cuántica.
18
2
2.1
MARCO DE REFERENCIA
MARCO TEÓRICO – CONCEPTUAL
La información se ha convertido en el activo más importante del desarrollo de un
país, por eso con el impulso de internet y la introducción de dispositivos
informáticos cada vez más personales (ordenadores, portátiles, tabletPC y PDA)
se crean nuevos escenarios que permitan proteger la información. “Por ejemplo:
•
•
Conexiones cifradas y autenticación segura para la banca on-line
PC.
•
Comunicación cifrada en redes de telefonía móvil
•
Comunicación cifrada y vinculada vía correo electrónico
•
Alternativas electrónicas a la firma manuscrita
•
Protección electrónica de la propiedad (intelectual) (DVD, TV de pago)
•
•
Sistemas de protección antirrobo para coches (inmovilizador)
Red inalámbrica.”3
Todas estas tecnologías hacen que los usuarios demanden con mayor frecuencia
unas comunicaciones de datos flexibles, cómodas y lo más importante seguras.
Es por ello que surgió la idea de transformar un mensaje por una línea de
comunicación segura para el receptor, esta ha impactado la mente del ser humano
desde inicio de la evolución, hasta nuestros días. Desde el punto de vista histórico
en este proyecto se utilizarán algunos métodos de cifra clásicos para enseñar las
diferentes maneras de encriptar un mensaje a partir de algoritmos como: “La
Escítala, el cifrador de Polybios, el cifrador de César y cifrador de Vigénere” a
continuación (ver tabla 1).
3
Fuente: http://www.cryptool.com. Septiembre 26 de 2008 a las 6:34pm
19
Tabla 1. Métodos de Cifra Clásicos.
En la tabla 1 se muestra una clasificación de los métodos de cifrar clásicos
divididos en transposición y sustitución. Los Cifradores de transposición saltan de
forma desordenada y las letras mantienen sus identidades pero pierden su
posición. En cambio los cifradores de sustitución las letras del texto en claro se
remplazan por otras letras, números o símbolos, perdiendo sus identidades pero
manteniendo su posición.
Los métodos clásicos son aquellos “que dieron origen al proceso de cifrar la
información, utilizando por separado técnicas de sustitución y transposición
aplicada a los caracteres del texto en claro”4 las técnicas de criptografía utilizadas
están orientadas a sistemas de clave secreta, teniendo guardado el secreto del
algoritmo. La operación de cifra se realiza sobre caracteres alfanuméricos.
A continuación se explicaran los métodos de cifrado de mayor relevancia para el
presente proyecto.
2.1.1 Método Criptográfico por Transposición Escítala. Los primeros
métodos criptográficos dan inicio en la guerra entre Atenas y Esparta, aquí
surge el cifrado de escítala que se “basa en la alteración del mensaje
original mediante la inclusión de símbolos innecesarios que desaparecían al
enrollar el mensaje en un rodillo llamado escítala de longitud y grosor
4
AGUIRRE, J Ramiro. Criptografía clásica. Madrid: Universidad Politécnica de Madrid, 2005.p.17.
20
prefijados siendo este la clave del sistema, solamente el receptor que
poseía una copia de este podía leer el texto”5 (ver figura 3).
Figura 3. Cifrado mediante sistema de escítala.
Fuente: KAHN, David, The Code Breakers, p.86
Al desenrollar la cinta, esta se vería:
Mensaje M= ASÍ CIFRABAN CON LA ESCITALA
Criptograma C= AACSNIICTCOAINLFLARAAEBS.
En la figura 3 no existe modificación alguna del mensaje, sino que este se mezcla
siendo así un cifrado por transposición o permutación de caracteres, este método
consiste en reordenar los caracteres del texto en claro, utilizando columnas, series
o filas si se requiere.
El mundo le debe su primer texto de instrucción sobre las comunicaciones de
seguridad a los griegos. A la ciencia militar, sobre la defensa en la primera y
segunda guerra mundial.
2.1.2 Método Criptográfico por Sustitución Monográmica Polybios.
Cuyo nombre procede del creador, ideó un sistema de señalización que se
ha adoptado como un método criptográfico. Es el cifrador por sustitución
más antiguo “consistía en hacer corresponder a cada letra del alfabeto un
par de letras que indicaban la fila y la columna en la cual aquella se
5
Fuente: http://www.24flotilla.com/a11/otros/historia%2520criptografia.pdf. 22 de Junio de 2008 a las
4:12pm
21
encontraba, en un recuadro de 5x5=25 caracteres, transmitiéndose el
mensaje como un criptograma”6 (tabla 2 y 3).
Tabla 2. Tabla de cifrar de Polybios en letras
A
B
C
D
E
A
a
f
l
q
v
B
b
g
m
r
w
C
c
h
n
s
x
D
d
ij
o
t
y
E
e
k
p
u
z
4
d
ij
o
t
y
5
e
k
p
u
z
Mensaje M= “Criptografía”,
Criptograma C= “ACDBBDCEDDCDBBDBAABABDAA”.
Tabla 3. Tabla de cifrar de Polybios en números
1
2
3
4
5
1
a
f
l
q
v
2
b
g
m
r
w
3
c
h
n
s
x
Mensaje M= “Criptografía”
Criptograma C= “134224354434224211212411”.
En las tablas 2 y 3, se muestra el cifrado de Polybios en letras y en números, la
operación de cifra del Polybios se realiza por monogramas.
Polybios sugiere que estos números se transmitan por medio de antorchas, una
antorcha en la mano derecha y cinco en la mano izquierda utilizando este método
como señal de mensaje a través de larga distancia.
Sin embargo, criptógrafos modernos han encontrado varias características de la
plaza Polybios, o tablero, como se le llama comúnmente. Polybios se utilizó en los
asuntos militares que proceden de los romanos.
6
AGUIRRE, J Ramiro. Op. cit., p.18
22
2.1.3 Método Criptográfico por Sustitución Monoalfabético Cesar.
Cincuenta años después aparece en la historia el cifrado de cesar en honor a Julio
César “el algoritmo consiste en el desplazamiento de tres espacios hacia la
derecha al texto en claro, siendo el alfabeto de cifrado igual al alfabeto del texto en
claro es un cifrador por sustitución monográmico monoalfabetico”7, en la tabla 4 se
muestra el alfabeto y la transformación que utiliza este cifrador.
Tabla 4. Tabla de cifrar del Cesar
Mi
Ci
ABCDEFGHIJKLMNÑOPQRSTUVWXYZ
DEFGHIJKLMNÑOPQRSTUVWXYZABC
Mensaje M= tu también, Brutus?
Criptograma C= wx wdoelhp euxwxv?
Un cifrado por sustitución consiste en sustituir cada carácter del texto en claro por
otro carácter del criptograma, los cifrados por sustitución se clasifican en:
sustitución monográmico polialfabético, sustitución monográmico monoalfabético y
sustitución poligrámica.
El cifrado de Julio Cesar corresponde al sistema por “sustitución monográmico
monoalfabético, se desarrolla mediante un algoritmo que hace corresponder una
letra del texto en claro a una única letra del criptograma, (monogramas)”8
utilizando para ello un único alfabeto de cifrado. Con el cifrado de Julio Cesar
termina lo que se denominaría historia antigua.
La criptografía aparece espontáneamente, con la culminación de una cultura, las
múltiples necesidades humanas y los deseos que demanda la intimidad entre dos
o más personas en medio de la vida social debe conducir al proceso de encriptar
un mensaje donde prosperan los hombres y donde la importancia de escribir surge
de la necesidad de estar distanciados y aislados.
2.1.4 Método de Sustitución Polialfabética Vigeneré
Es un sistema polialfabético de sustitución múltiple, denominado así en honor al
criptólogo francés Blaise de Vigenére (1523-1596)”9, el principal elemento de este
sistema es la tabla de Vigenére, una matriz de carácter que se verá a
continuación.
7
LAURENCE, Dwight Smith. Cryptography the Science of Secret Writing. Dover Publications, 1943, p 164
AGUIRRE, J Ramiro. Op. cit., p. 45
9
AGUIRRE, J Ramiro. Op. cit., p. 87.
8
23
Tabla 5. Tabla de Vigeneré
Para un cifrador polialfabético como Vigeneré la distancia del mensaje a cifrar
viene dada por el número total de combinaciones usadas para hacer sustituciones
simples, su deber es descomponerse en letras del mismo tamaño de la clave y
aplicar sucesivamente la clave empleada a cada uno de estos bloques.
A continuación se enuncia un ejemplo que utiliza como clave la palabra “prueba” y
como mensaje en claro “cifrado de vigenére”:
Tabla 6. Ejemplo de un texto cifrado bajo Vigeneré
Texto
C
claro
Clave
P
Cifrado R
I
F
R
A
D
O
D
E
V
I
G
E
N
E
R
E
R
Z
U
Z
E
V
B
B
A
D
P
D
R
U
U
Y
E
Z
B
J
A
G
P
T
R
E
U
Y
E
V
B
F
Para cifrar un texto utilizando la tabla de vigenére, se procede de la siguiente
manera: Se comparan dos alfabetos normales de la A-Z y se selecciona cada
palabra del texto normal contra cada palabra de la clave, el tercer elemento será la
24
letra de la retícula de intersección entre la fila y la columna sacando como
resultado el nuevo texto cifrado.
2.1.5 Cifrador de Albertini. “León Battista Albertini presenta un manuscrito
en el que se describe un disco cifrador con el que es posible cifrar textos sin
que exista una correspondencia única entre el alfabeto del mensaje y el
alfabeto de cifrado”10.
Figura 4. Cifrador de Albertini
Fuente: KAHN, David, The Code Breakers, p. 97
La innovación de este sistema está en que el alfabeto de sustitución puede ser
cambiado durante el proceso de cifrado y su método empleaba varios
abecedarios.
A continuación se enunciará alguna de las maquinas posteriores al disco de
Albertini, las cuales utilizaban su propio sistema de cifrado, destacándose la rueda
de Jefferson y el disco de Wheatstone, la Máquina Enigma, Máquina de Hagelin,
Máquina M-325.
⋅
10
Rueda de Jefferson: fue inventado por tomas Jefferson y consiste en una serie
de discos que giran libremente alrededor de un mismo eje y lleva impresa las
letras del alfabeto escritas en cada disco en diferente orden.
Fuente: http://www.24flotilla.com/A11/otros/Historia%2520criptografia.pdf. 23 de Junio 2008 a las 2:15pm
25
Figura 5. Rueda de Jefferson
Ibid.,
⋅
Disco de Wheatstone: este sistema consiste en hacer girar la aguja en el
sentido de las manecillas del reloj, hasta que coincida la letra del texto con la
letra del disco.
Figura 6. Disco de Wheatstone
Ibid.,
⋅ Máquina Enigma: inventada por Arthur Scherbius en 1923, consiste en un
banco de motores montado sobre un eje, fue utilizada en la Segunda Guerra
Mundial por el ejército alemán.
⋅ Máquina Hagelin: inventada por el criptólogo sueco Boris Hagelin entre 1920 y
1930, esta máquina utilizaba el sistema de cifra Beaufort. (ver Figura 7).
26
Figura 7. Maquina Hagelin
Ibid.,
⋅ Máquina M-325: implantada por Frederick Friedman esta se basa en rotores que
realizan una sustitución polialfabético.
Después de la segunda guerra mundial aparecen los computadores electrónicos,
aquí la criptografía llega a su “edad adulta” entendiéndose por criptografía el arte
de escribir con clave secreta o de un modo enigmático11, pero hace años la
criptografía dejo de ser un arte para convertirse en una técnica, cuyo objetivo es
solucionar el problema de seguridad en las comunicaciones y en los sistemas
informáticos por medio de la privacidad, la integridad, la autenticidad y el no
rechazo de la información.
La privacidad. Hace referencia a que la información que se recibe solo puede ser
leída por la persona autorizada, y que además no ha sido alterada.
La integridad. Certifica que la información enviada desde afuera no puede ser
alterada por intrusos.
La autenticidad. Es importante asegurarse de que el mensaje recibido en la
computadora es el que se esperaba, o el remitente es quien dice ser.
El no rechazo. Hace referencia a negar la autoría sobre el mensaje enviado.
11
LUCENA, López Manuel J. Criptografía y Seguridad en Computadores. España: Creative Commons,
Cuarta Edición.
27
La criptografía se divide en dos grandes ramas: la criptografía de clave privada o
simétrica a la cual pertenece el algoritmo DES y la criptografía de clave pública o
asimétrica que lleva el algoritmo RSA.
Para entender un poco más de criptografía se definirá cada una de ellas de
manera sencilla para comprensión del usuario.
2.1.6 Criptografía Simétrica. Es la que usa una misma clave para cifrar y para
descifrar mensajes12 este tipo de criptografía también recibe el nombre de
criptografía de clave privada o criptografía de llave privada. La criptografía
simétrica es la más conocida, y se utiliza en las aplicaciones de telefonía móvil,
cifrado de documentos en ofimática, cifrado de datos en aplicaciones de bases de
datos; se caracteriza por utilizar la misma clave para cifrar y descifrar, por ser
rápida y segura, y tiene como falencia que no cumple con el requerimiento de
aceptación o no repudio.
La criptografía se ocupa del análisis y diseño del algoritmo para cifrar y el
criptoanálisis se encarga de romper esos algoritmos. El algoritmo más utilizado en
la criptografía simétrica es el DES (Data Encryption Standard) DES utiliza la
misma clave para cifrar el mensaje en el origen y para descifrarlo en el receptor de
igual manera se basa en un sistema monoalfabetico, este cifrado consiste en la
aplicación sucesiva de varias permutaciones y sustituciones.
Inicialmente el texto a cifrar se somete a una permutación con bloque de entrada
de 64 bits o múltiplo de 64, para ser sometido a la acción de dos funciones
principales, una de permutación con entrada de 8 bits y la otra de sustitución con
entrada de 5 bits, en un proceso que consta de 16 etapas de cifrado. DES utiliza
una clave simétrica de 64 bits de los cuales 56 son utilizados para la encriptación,
mientras que los 8 restantes son de paridad, y se usan para la detención de
errores en el proceso. DES se pudo romper en enero de 1999 por medio de la
fuerza bruta debido a la escasa longitud que emplea en su clave.
TDES consiste en aplicar tres veces DES, para este sistema se utiliza una clave
de 168 bits, y se puede romper por medio de una fuerza bruta. Teniendo como
punto de referencia esta debilidad los matemáticos Diffie y Hellman propusieron un
mecanismo de cifrado basado en dos claves: una pública y otra privada
definiéndose así la criptografía asimétrica.
2.1.7 Criptografía Asimétrica. Es la que utiliza dos claves diferentes para cada
usuario, la clave pública se le puede entregar a cualquier usuario y la privada la
12
Fuente: Wikipedia. http://www.wikipedia.org, 24 de Agosto de 2007 03:00 p.m. 11 de Julio de 2008 a las
5:00pm
28
posee el propietario de esta. La función de la clave privada es descifrar el mensaje
enviado por el emisor.
Las características de la criptografía asimétrica se basan en que no utiliza la
misma clave para cifrar y descifrar documentos, el cifrado asimétrico es lento pero
de igual forma seguro, esta criptografía cumple con el requerimiento de aceptación
no repudio complementado con los certificados digitales, posee como debilidad
que expande el texto cifrado cada vez que se cifra.
Actualmente la criptografía asimétrica es muy usada y posee dos principales
aplicaciones, la clave privada y la firma digital. Los fundamentos de la criptografía
asimétrica pertenecen a la teoría de números. A partir de estos algoritmos surge la
criptografía cuántica y las curvas elípticas.
2.2
Metodologías de desarrollo de aplicaciones web. “Es una estrategia de
desarrollo que acompaña el proceso, así como un conjunto de métodos técnicos
para completar las etapas a través de las cuales el proyecto va creciendo para
llegar a convertirse en el producto final”13.
Posterior a esto se realizara una comparación entre las metodologías (ver tabla 7)
que aportaran a este proyecto los pasos para el desarrollo ingenieril del software y
se selecciona la más adecuada para la implementación del mismo.
Tabla 7. Comparativo entre metodologías
Criterio o
El Modelo RAD
Modelo de
Metodología
Procesos
Evolutivos
Fases
⋅
⋅
⋅
⋅
Análisis
Diseño
Implementación
Prueba
⋅
⋅
⋅
⋅
Modelo Lineal
Secuencial
Análisis
Diseño
Implementación
Prueba
⋅
⋅
⋅
⋅
Análisis
Diseño
Implementación
Prueba
Modelo de
Ciclo de
Vida
Adaptación a alta
velocidad
del
modelo
en
cascada.
Bucle
realimentación
modelo
prototipos.
Propiedades
⋅ Proceso
lineal
secuencial
⋅ División
del
⋅ Creación
de ⋅ Modelo
de
versiones
aplicaciones
incrementales
fuertemente
del producto.
estructuradas y
13
de
del
de
Modelo
Cascada.
en
⋅
⋅
⋅
⋅
Modelo de
construcción de
prototipos o
método de
prototipo
sucesivo
Análisis
Diseño
Implementación
prueba
Bucle
de
realimentación del
modelo
lineal
secuencial
(cascada).
⋅ Detecta
deficiencias.
⋅ Establece
RUIZ, Alfonso. Metodología de Desarrollo de Aplicaciones Multimedia, Universidad de León, 2004.p.76
29
Tiempo
proyecto
en
módulos
independientes,
reutilización
de
componentes.
⋅ Apropiado para
aplicaciones
multimedia
de
poca complejidad
y bajo nivel de
interactividad.
⋅ Es aplicable en
los casos en que
se conoce el
requisito.
Más corto posible.
requisitos
⋅ Versión
definidos.
producida
del
producto final.
⋅ Maneja proyectos
de
poca
⋅ Complejidad del
envergadura
producto.
⋅ Recursos de que
se dispone para
su desarrollo.
⋅ Uno
o
dos
desarrolladores.
nuevos
requisitos.
⋅ Define medios.
⋅ Versión
incompleta
del
producto final.
Poco tiempo, pocos
medios
Largo plazo
Corto plazo
De acuerdo a la tabla anterior y al análisis realizado en el levantamiento de la
información se considero el modelo lineal secuencial como el más apropiado para
el desarrollo del proyecto, es por ello que a continuación se explicara en detalle:
2.2.1 El modelo lineal secuencial:
Figura 8. Modelo Lineal Secuencial
“El modelo lineal secuencial, también conocido como el modelo en Cascada o
Ciclo de Vida Básico, tiene como objetivo minimizar los costos que involucran el
sobre exceso de trabajo, desarrollado por medio de las etapas de análisis, diseño,
implementación y prueba de forma secuencial.
Este modelo es útil en un número limitado de proyectos de nuevos desarrollos sólo
en el caso de aplicaciones fuertemente estructuradas, cuyos requisitos y medios
estén completamente definidos al inicio del proceso de desarrollo, lo cual es poco
común. Por otro lado es un método poco complejo y fácil de llevar a la práctica,
30
pero por lo general es poco recomendable, especialmente en proyectos de cierta
envergadura”14.
⋅ Fase de Análisis: Es la fase en la cual se reúnen todos los requisitos que debe
cumplir el software para el buen funcionamiento del mismo, teniendo en cuenta
las necesidades del usuario.
⋅ Fase de Diseño: Es una etapa dirigida hacia la conceptualización lógica de la
base de datos, la arquitectura del software, (casos de uso, el reporte y su
aplicación) las representaciones de la interfaz y el detalle procedimental
(algoritmo). En forma general se hace un esbozo de lo solicitado y se documenta
siendo esto parte del software.
⋅ Fase de Implementación: Abarca la estructura del programa que se crea durante
la etapa del diseño siendo esta viable para las necesidades del cliente.
⋅ Fase de Pruebas: Esta etapa se centra en los procesos lógicos internos del
software. Asegurando que todas las sentencias se han comprobado, y en la
detección de errores.
14
Ibid.,p. 83
31
2.3
Herramientas de Desarrollo
2.3.1 Comparación de bases de datos15
Tabla 9. Comparativo entre Bases de Datos
Firebird
Licencia
Interbase
Public
License
(PL)
Ingres r3
Max BD
MySQL
PostgreSQL
Access
SQL
Oracle
Computer
Associates
Trusted
Open
Source
License
MySQL Dual
Licensing
Model
MySQL Dual
Licensing
Model(Libre)
BSD License
No libre
No libre
No libre
32768
Ilimitado
LIMITES POR BASE DE DATOS
Max.
Numero
de tablas
Máximo
tamaño
de DB
15
32767
67108863
Ilimitado
Ilimitado
Ilimitado
Limite
Teórico
Ilimitado
32TB (con
paginas de
8KB)
Ilimitado
Ilimitado
Fuentes:
⋅ http://www.devx.com/dbzone/Article/29480/0/page/3 24 Agosto 2007 a las 1:32pm
⋅ http://www.postgresonline.com/journal/index.php?/archives/51-Cross-Compare-of-SQL-Server,-MySQL,-and-PostgreSQL.html 25 Agosto 2007 a las
8:00am
⋅ http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems 25 Agosto 2007 a las 10:27 am
⋅ FALLMANN, Daniel. Comparison of the Enterprise Functionalities of Open Source Database Management Systems. Fabalabs Software GmbH, 20042005, Formato PDF (69 páginas)
32
7TB
Máximo
tamaño
de página
Máximo
número
de filas
por tabla
Máximo
tamaño
de fila por
tabla
Máximo
número
de
campos
por tabla
Máximo
número
de índices
por tabla
Soporte
Unicode
65536
bytes
Data 518MB8GB
Log 16TB
429496729
32
6 (2 )
429469081
6
Limitado por el
tamaño de la
DB
64 KB
32KB
8088 bytes
8000 bytes
1024
Con llave 1024
Sin llave 1023
Ilimitado
255
USC-2
De acuerdo a
ISO 10646
16384
bytes
256
Unicode_F
SS
UTF-8
UTF-16
64TB
Ilimitado
LIMITES POR TABLAS
Limitado por el
tamaño
Ilimitado
máximo de la
tabla (64TB)
255
1024
1000
1.6TB
2000bytes
8036 bytes
255000
1000
250-1600
dependiendo de
tipo de campos
255
8000
4000
64
Ilimitado
32
UCS-2
UTF-8 con un
límite de 3
bytes por
carácter
UTF-8
MÁXIMA COMPLEJIDAD DE QUERIES
≥16KB valor
Tamaño
máximo
de un
enunciad
o SQL
Máximo #
de
miembros
en un IN
64KB
Incluso
mayor a
64KB
por defecto
64KB
1GB, 16 MB
por defecto
No hay
información
disponible
No se
encontró
limite
2041
No se
encontró limite
No se encontró
limite
1499
33
Aprox 64000
65536* por
tamaño del
paquete de
red (4KB, por
defecto)
list
Máximo
número
de unión
de tablas
Máximo #
de
operadore
s lógicos
en una
clausula
Enlaces
de bases
de datos
Estándar
de
complace
ncia
Velocidad
Estabilida
d
Seguridad
Procedimi
entos
almacena
dos
Soporte
de
triggers
Programa
ción de
interfaces
255
126
64
61
No se encontró
limite
32
Where 255
O Ilimitado
Where
1023
And 1023
OR 1617
511
No se
encontró límite
No se encontró
limite
99
No soporta
No soporta
No soporta
No soporta
No es invisible
al usuario
Alto
Medio
Medio
Medio
Alto
Media/Alta
Alta
Media/Alta
Media/Alta
Media/Alta
Alta/Muy Alta
Media/Alta
Media
Media
Si
Alta
Si(≥5.0)
Media/Alta
Si
Si
Si
ODBC,
JDBC,
C/C++,
PHP,
Python,
Perl, Kylix,
Delphi,
.NET/Mono
, ADO
Alta
Si
Si
ODBC,
JDBC,
C/C++,
.NET, Perl,
Python,
PHP,
Cobol,
Fortran
Si
Si(≥5.0
rudimentario)
Si
ODBC ,JDBC,
C/C++,
Precompiler
(Embedded
SQL), Perl,
Python, PHP
ODBC, JDBC,
C/C++,
.NET/Mono,
ADO.Net,
OLEDB,
Delphi, Perl,
Python, PHP
ODBC, JDBC,
C/C++,
Embeded SQL
(in C), Tcl/Tk,
Perl, Python,
PHP, JSP, JSF
34
256
Media/Alta
Media
Media
Baja
No
soportados
Alta
Alta
Microsoft TSQL
Si
No
soportados
after triggers,
instead of
triggers
ODBC, JDBC
ODBC,
JDBC
Si
ODBC,
JDBC
De acuerdo al comparativo realizado entre Bases de Datos, se obtienen los
siguientes resultados:
⋅
⋅
⋅
⋅
Las bases de datos se dividen en dos grandes ramas, las licenciadas y las
Libres. Dentro de las libres se encuentran Firebird, Ingres r3, Max BD, MySQL
y PostgreSQL.
Se comparan los aplicativos de BD por los limites en bases de datos y se
obtiene un resultado óptimo entre MySQL y PostgreSQL
Se evidencia mayor robustez y consistencia en PostgreSQL para la creación
de tablas en cada base de datos.
PostgreSQL tiene mayor compatibilidad con nuevas herramientas de desarrollo
como Java Server Faces.
Basada en el levantamiento de la información se concluye que PostgreSQL es una
de las bases de datos más óptima para el desarrollo de este proyecto por las
características que presenta.
35
2.3.2 Comparativo de herramientas para desarrollo WEB16 :
Tabla 10. Comparativo entre herramientas de desarrollo web
ASP
JSP
PHP
Diseñador
Desarrollador
Rasmus Lerdorf
PHP
Surgió en:
Última versión:
Apache
ISS
Tomcat
OneASP(Módulo)
Sistema Operativo
Servidor
Memoria
Hay error + ubicación
Tipo de errores
Windows
Linux
Microsoft
Sun
Microsystems
1997
1996
ASP. Net
Portabilidad en los servidores
Windows
No
Si
Linux
No
si
Windows
Si
No
Linux
No
No
Windows
No
Si
Linux
no
si
Windows
no
No
Linux
Si
No
Requerimientos mínimos
Linux y
Linux y
Windows
Windows
IIS
Tomcat y
Glassfish
128 o más
256 o más
Calidad de fallas detectadas
55%
95%
46%
93%
Integridad de la base de datos
47%
46%
45%
49%
1995
5.2.5
Si
si
si
No
No
No
No
No
Linux y Windows
Apache
128 o más
90%
15%
88%
94%
Basada en esta información se concluye que el lenguaje de programación más
viable para el desarrollo del software es JSP por ser compatible con Java Server
Faces, en la cual su margen de error es del 90% y en estos momentos es una de
las herramientas web más novedosas y utilizadas para la aplicación del software.
16
DALADIER Jabba Molinares. Análisis comparativo de las herramientas de programación Web: PHP, ASP y
JSP, bajo los sistemas operativos Linux y Windows. Universidad del Norte 2004, p 12
36
2.3.3 Comparación de Servidores web17
Tabla 11. Comparativo entre servidores web
JBoss 4.2
Java EE 5
compliance
EJB 3.0 capable
JSP 2.1 and 2.5
capable
JavaServer
Faces 1.2
support
Custom plug-in
support
Business-rules
engine support
Hibernate 3.x
support
JBoss Seam
support
Clustering
support
Eclipse IDE
connector
support
Geronimo 2
Tomcat 6
GlassFish 2
Parcial
Si
No
Si
Si
Si
Si
Si
Disponible
Si
Si
Si
Si
Si
Disponible
Si
Si
Si
No
Si
Disponible
Disponible
Disponible
Disponible
Si
Disponible
Disponible
Si
Si
Si
Disponible
Si
Si
Si
Parcial
Si
Si
Si
Si
Si
Se concluye que todos los servidores son viables para la elaboración del proyecto,
pero al emplear NetBeans en el desarrollo del software cuya función me permite la
unión entre JSP y JSF, GlassFish es el servidor web que cumple el mayor número
de características, siendo está la más consistente y novedosa para que el software
corra sin ningún inconveniente.
17
Fuente: http://weblogs.java.net/blog/kalali/archive/2007/12/four_open_sourc.html. 7 Septiembre de 2008
37
2.4
MARCO LEGAL O NORMATIVO
2.4.1 Jurisprudencia Colombiana.
En la petición de propuestas, el NIST solicitó un algoritmo de cifrado en bloque
que fuera utilizable tanto en entornos gubernamentales como en entornos
comerciales. Se especificó que tendría que soportar los modos estándar CBC,
CFB, OFB, que tendría que ser “significativamente” más eficiente que el triple
DES, y que la clave tendría que ser de longitud variable (128, 192 ó 256 bits, como
mínimo), y los bloques de cifrado, de longitud 128 bits.
El 2 de octubre de 2000 el NIST hizo pública la decisión de seleccionar el
criptosistema Rijndael como Advanced Encryption Standard. Los motivos que el
NIST dio para seleccionar el AES fueron su combinación de seguridad,
rendimiento, eficiencia, facilidad de implementación y flexibilidad. En particular,
destacaron su eficiencia, tanto en implementaciones en hardware como en
software.
El 26 de mayo de 2002 el FIPS anunció la aprobación del Advanced Encryption
Standard bajo el código FIPS-197. Este estándar establece el Rijndael como
algoritmo simétrico de cifrado que las organizaciones del gobierno de Estados
Unidos (y otros) pueden utilizar para proteger información sensible.
Certificados X.509 El formato de certificados más ampliamente aceptado en
infraestructura de clave pública viene definido por el ISO/IEC JTC1 SC21 y se
conoce con la denominación X.509v3. El formato de los certificados X.509 ha
evolucionado a partir de tres versiones en diferentes ediciones del estándar.
La primera versión apareció en 1988. En 1993 se revisó y se obtuvo la versión 2, a
la que se añadieron dos campos opcionales de identificación única.
En junio de 1996 apareció la versión 3 del certificado, que incluye la posibilidad de
tener campos de ampliación.
Los certificados X.509, al igual que las otras estructuras definidas para PKIX,
están especificadas en lenguaje ASN.1 (Abstract Syntax Notation One).
Licencia Pública General de GNU (o GPL, General Public License), también se
aplica para todos los programas y herramientas software.
38
2.4.2 Estándares de la Organización Internacional de Estándares (ISO)
ISO/IEC 7813 Tecnología de la información.
ISO/IEC 7816 Comando inter industria para lenguaje estructurado de consulta de
tarjetas SQL, Aplicación de la información criptográfica.
ISO/IEC 9796 Tecnología de Información, Mecanismo basado en algoritmos
discretos.
ISO/IEC 9797 Tecnología de información
ISO/IEC 9979 Tecnología de información - Técnicas seguras - Procedimiento
para el registro de algoritmos criptográficos.
ISO/IEC 14496: Tecnología de información,
Parte 1: Referencia de Software.
Parte 2: Estructura de entrega de integración multimedia (DMIF).
Parte 7: Referencia de software optimizado.
Parte 8: Referencia de Hardware.
Parte 9: Descripción de escena y motor de aplicación.
SISTEMAS DE GESTIÓN DE LA SEGURIDAD DE LA INFORMACIÓN (SGSI),
Norma Técnica Colombiana
NTC-BS-7799-2 (ICONTEC)
CÓDIGO DE LAS BUENAS PRÁCTICAS PARA LA GESTIÓN DE LA
SEGURIDAD DE LA INFORMACIÓN, Norma Técnica Colombia NTC-ISO/IEC
17799 (ICONTEC)
Estándar Asimétrico RSA
ANSI x3.09 Parte 1
RSA 1024/2048 bits
Soporte para capacidades de longitud de Clave
FIPS 46
FIPS 180-2
FIPS 186
Triple DES
FIPS 197
Estándar de Cifrado de Datos (DES)
Algoritmo de Hashing SHA-1, SHA-256
Estándar de Firma Digital (DSA)
CBC Simétrico
Estándar de Cifrado Avanzado (AES)
39
ISO 27001
ISO 15408
ISO/IEC TR13335
PKCS#1
PKCS#3
PKCS#5
PKCS#7
PKCS#8
PKCS#9
PKCS#10
Metodología,
Transferencia
del
Conocimiento y Servicio
Tecnología de la Información — Criterios
de Evaluación de Técnicas de Seguridad
para TI
Tecnología de la Información — Guías
para la gestión de la Seguridad TI —
Directrices respecto al tipo de controles
que deben ser implementados y deben ser
especificados por una EC.
Estándar de Criptografía RSA: define la
criptografía RSA
Estándar de Acuerdo de Clave DiffieHellman
Estándar de Criptografía basada en
Contraseña: define cómo cifrar y descifrar
datos usando contraseñas
Estándar de Sintaxis de Mensaje
Criptográfico: describe una sintaxis
general para datos que puedan tener
criptografía aplicada en sí mismos, tales
como firmas digitales y sobres digitales
Estándar de Sintaxis de Información de
Clave Privada: describe una sintaxis para
información de clave privada donde ésta
incluye una clave privada para algún
algoritmo de clave pública y un conjunto
de atributos
Clases de Objetos Seleccionados y Tipos
de Atributos: define dos nuevas clases de
objetos
auxiliares,
pkcsEntity
y
naturalPerson, y también tipos de atributos
para usarse con estas clases
Estándar de Sintaxis de Solicitud de
Certificación: describe la sintaxis para una
solicitud de certificación donde ésta
consista de un nombre distinguido, una
clave pública y, opcionalmente, un
conjunto
de
atributos,
firmados
colectivamente por la entidad que solicita
la certificación
40
PKCS#11
Estándar de Interfaz de Token
Criptográfico: especifica una interfaz de
programación de aplicación (API),
denominada
“Cryptoki”,
para
dispositivos que contengan información
criptográfica y realicen funciones
criptográficas
FIPS 140
Requisitos de Seguridad para Módulos
Criptográficos: hardware y firmware
EAL4+
Validación FIPS 140-2
Compatibilidad ISO 7816 1-5
Requisitos de Seguridad para Módulos
Criptográficos: hardware y firmware
Requisitos de Seguridad para Módulos
Criptográficos: hardware y firmware
Micro controlador y Unidad de
Procesamiento
Numérico
(NPU)
suplementario capaces de calcular
operaciones criptográficas acordes con
PKCS #11 y PKCS #15, de conformidad
con los requisitos del ISO/IEC 7816-1 al
7816-5
Referencia Descripción
Soporte para algoritmo DES
Algoritmo Simétrico
Soporte para algoritmo 3DES
Algoritmo Simétrico
Software CSP
Proveedor de Servicios Criptográficos
[CSP] en el SO del chip capaz de
ejecutar funciones criptográficas
41
3
3.1
METODOLOGÍA
ENFOQUE DE LA INVESTIGACIÓN
El enfoque de investigación empírico analítico cuyo interés se basa en orientar
teóricamente la información de manera que los modelos matemáticos y sus
simulaciones sean utilizados en la praxis.
3.2
LÍNEA DE INVESTIGACIÓN DE USB/SUB-LÍNEA DE FACULTAD/CAMPO
TEMÁTICO DEL PROGRAMA
3.2.1 Línea de investigación. Tecnologías Actuales y Sociedad.
3.2.2 Sublínea de investigación. Sistema de información y comunicación.
3.2.3 Campo Temático del Programa. Desarrollo de Software (Algoritmos).
3.3
TÉCNICA DE RECOLECCIÓN DE INFORMACIÓN
Para el desarrollo del proyecto de grado la recolección de la información se realizó
mediante las páginas Web correspondientes al tema, internacionalmente
(www.criptored.com), electrónicamente se utilizó información escrita de libros
publicados en la web.
A nivel nacional se realizará un sondeo universitario en tesis y libros de algoritmos
que amplíen el conocimiento con relación a la criptografía, sus algoritmos y su
enseñanza.
42
3.4
POBLACIÓN Y MUESTRA
Para el desarrollo de este proyecto se tendrá en cuenta los estudiantes de
ingeniería de sistemas de los primeros semestres de la Universidad San
Buenaventura.
3.5
HIPÓTESIS
El Software permitirá conocer la importancia de la Criptografía Clásica, sus
diferentes maneras de utilizarla y la elaboración de sus correspondientes
algoritmos de parte de los estudiantes de los primeros semestres de Ingeniería de
Sistemas de la Universidad de San Buenaventura.
3.6
VARIABLES
3.6.1 Variables Independientes. Selección de algoritmos clásicos para la
aplicación de software, lenguaje de programación.
3.6.2 Variables dependientes. Estudiantes de Ingeniería de Sistemas de los
primeros semestres de la Universidad San Buenaventura.
43
4
4.1
DESARROLLO INGENIERÍL
ANÁLISIS DE LA APLICACIÓN
Una computadora es una máquina que no entiende el lenguaje humano. Por eso
para que la máquina realice una tarea específica hay que darle una serie de
instrucciones y estas deben ser suministradas de forma que la máquina pueda
entender, a esto se le llama programación. Para programar se requiere de un
lenguaje y un lenguaje de programación, es el conjunto de reglas y elementos
gramaticales de los que un programador dispone para que haya comunicación
entre el usuario/máquina.
El proyecto se inicia con el levantamiento de la información por medio de la
encuesta a estudiantes de Ingeniería de Sistemas de segundo semestre de la
Universidad de San Buenaventura.
De acuerdo al levantamiento de la información se procede a seleccionar los
métodos de encriptación clásicos más representativos que el autor considera para
el presente proyecto, como son: Escitala, Polybios, Cesar y Vigeneré (ver marco
teórico).
Para el análisis de los métodos criptográficos se tiene en cuenta la concepción
teórica de David Kahn en su libro “The Codebreakers” el método Escitala fue el
primer método criptográfico en la historia de la criptografía, es decir con este
método se da inicio al cifrado de la información. El cifrado de Cesar fue el más
representativo en la historia debido a las batallas que en ese momento surgieron.
El cifrado de Vigeneré es la evolución del César y es el último de los algoritmos
clásicos, y Polybios es el método criptográfico por sustitución más antiguo
conocido en la historia y fue la base de uno de los algoritmos de la criptografía
moderna.
Posteriormente se procede a seleccionar la metodología para el desarrollo del
aplicativo quedando la lineal secuencial, que significa hacer una cosa tras de otras
(ver figura 8).
Un programa debe tener un lenguaje de programación y para este aplicativo se
selecciona Java, este lenguaje permite la interactividad con el usuario final y le da
dinamismo a la página web.
44
4.2
DISEÑO DE LA APLICACIÓN
Actualmente existe en el mercado aplicativos educativos de criptografía a nivel
general (criptografía clásica, moderna, actual) los procesos de estos aplicativos
orientan la enseñanza de la criptografía y el criptoanálisis.
A partir del análisis se plantea el siguiente diseño presentado en casos de uso,
modelo lógico y conceptual de la base de datos para desarrollar el aplicativo.
4.2.1 Casos de Uso
Crear docente:
Figura 9.
Aplicación del caso de uso crear docente
Llamadas
Data Sent
Administrador Website Docente
Website BD
Docente
CriptoClass
45
Data Recieved
Docente
Docente
Data Effects
Tabla 8. Documentación del caso de crear docente
NOMBRE DEL CASO DE USO
Crear Docente
ACTORES
Administrador
PRECONDICIÓN O CONDICIONES No debe existir en la base de datos el docente
INÍCIALES:
registrado
PROPÓSITO
TIPO
DESCRIPCIÓN
Registrar docente
Básico
El administrador entra a la sección de
registro incluida en el aplicativo web.
El administrador ingresa todos los datos
personales solicitados.
El aplicativo web se comunica con la base
de datos para almacenar la información.
EXCEPCIONES AL CASO DE USO:
Ninguna
POST-CONDICIÓN O CONDICIONES
⋅
Ingresar a la página de registro
DE SALIDA:
Leer Docente:
Figura 10.
Aplicación del caso de uso leer docente
Llamadas
Data Sent
Administrador Website Docente
Docente Website
Docente
Data Recieved
Docente
Docente
46
Data Effects
Tabla 9. Documentación del caso de leer docente
NOMBRE DEL CASO DE USO
Leer Docente
ACTORES
Administrador, docente
PRECONDICIÓN O CONDICIONES Los usuarios deben estar registrados
INÍCIALES:
PROPÓSITO
TIPO
DESCRIPCIÓN
EXCEPCIONES AL CASO DE USO:
POST-CONDICIÓN O CONDICIONES
Llevar un registro de la navegación del docente
en el aplicativo web
Básico
El administrador ingresa al aplicativo, con el
fin de mirar cómo se desempeña el docente.
El usuario no se encuentra registrado en la
base de datos.
Ninguna
DE SALIDA:
Actualizar Docente:
Figura 11. Aplicación del caso de uso actualizar docente
Data
Sent
Administrador Actualizar Website Docente
Docente Website
Docente
Website BD CriptoClass
Docente
Llamadas
47
Data
Recieved
Docente
Docente
Docente
Data
Effects
Tabla 10. Documentación del caso de actualizar docente
NOMBRE DEL CASO DE USO
Actualizar Docente
ACTORES
Administrador, docente
PRECONDICIÓN O CONDICIONES No debe existir en la base de datos el docente
INÍCIALES:
registrado
PROPÓSITO
TIPO
DESCRIPCIÓN
Actualizar los datos del docente
Básico
El docente entran al aplicativo web.
El docente se dirigen a la opción de
actualización de datos.
El docente actualiza sus datos.
El aplicativo se comunica con la bd.
La bd actualiza los datos.
El administrador ingresa por la opción de
registro, donde se encuentra un menú más
detallado de la actualización de los datos del
docente
El administrador actualiza los datos.
El aplicativo se comunica con la bd.
La bd actualiza los datos.
EXCEPCIONES AL CASO DE USO:
No se encuentre registrado el docente
POST-CONDICIÓN O CONDICIONES
⋅ Ingresar al aplicativo
DE SALIDA:
Crear Estudiante:
Figura 12.
Aplicación del caso de uso crear estudiante
Data
Recieved
Administrador Actualizar Website Estudiante Estudiante
Estudiante Website
Estudiante Estudiante
Llamadas
Data Sent
48
Data
Effects
Website BD CriptoClass
Estudiante Estudiante
Tabla 11. Documentación del caso de crear estudiante
NOMBRE DEL CASO DE USO
Crear Estudiante
ACTORES
Administrador
PRECONDICIÓN O CONDICIONES No debe existir en la base de datos el
INÍCIALES:
estudiante registrado
PROPÓSITO
TIPO
DESCRIPCIÓN
Registrar estudiante
Básico
El administrador entra a la sección de registro
incluida en el aplicativo web.
El administrador ingresa todos los datos
personales solicitados.
El aplicativo web se comunica con la base de
datos para almacenar la información.
EXCEPCIONES AL CASO DE USO:
Ninguna
POST-CONDICIÓN O CONDICIONES
⋅ Ingresar a la página de registro
DE SALIDA:
Leer Estudiante:
Figura 13. Aplicación del caso de uso leer estudiante
Llamadas
Data Sent
Administrador Website Estudiante
Estudiante Website
Estudiante
Data Recieved
Estudiante
Estudiante
49
Tabla 12. Documentación del caso de leer estudiante
NOMBRE DEL CASO DE USO
Leer Estudiante
ACTORES
Administrador, estudiante
PRECONDICIÓN O CONDICIONES Los usuarios deben estar registrados
INÍCIALES:
PROPÓSITO
TIPO
DESCRIPCIÓN
EXCEPCIONES AL CASO DE USO:
POST-CONDICIÓN O CONDICIONES
Llevar un registro de la navegación del
estudiante en el aplicativo web
Básico
El administrador ingresa al aplicativo, con el
fin de mirar cómo se desempeña el
estudiante.
El usuario no se encuentra registrado en la
base de datos.
Ninguna
DE SALIDA:
Actualizar Estudiante:
Figura 14. Aplicación del caso de uso actualizar estudiante
Llamadas
Administrador Website
Estudiante Website
Website BD CriptoClass
Data Sent
Estudiante
Estudiante
Estudiante
50
Data Recieved
Estudiante
Estudiante
Estudiante
Tabla 13. Documentación del caso de uso de actualizar estudiante
NOMBRE DEL CASO DE USO
Actualizar Estudiante
ACTORES
Administrador, estudiante
PRECONDICIÓN O CONDICIONES No debe existir en la base de datos el docente
INÍCIALES:
registrado
PROPÓSITO
TIPO
DESCRIPCIÓN
Actualizar los datos del estudiante
Básico
El estudiante entran al aplicativo web.
El estudiante se dirigen a la opción de
actualización de datos.
El estudiante actualiza sus datos.
El aplicativo se comunica con la bd.
La bd actualiza los datos.
El administrador ingresa por la opción de
registro, donde se encuentra un menú más
detallado de la actualización de los datos del
estudiante
El administrador actualiza los datos.
El aplicativo se comunica con la bd.
La bd actualiza los datos.
EXCEPCIONES AL CASO DE USO:
No se encuentre registrado el estudiante
POST-CONDICIÓN O CONDICIONES
⋅ Ingresar al aplicativo
DE SALIDA:
Validar usuario:
Figura 15. Aplicación del caso de uso validar usuario.
Llamadas:
Data Sent Data Recieved
EstudianteDocente
Estudiante Estudiante
Docente
Administrador Validar Website Estudiante
Estudiante Website
Docente Website
51
Data
Effects
Website BD CriptoClass
Estudiante
EstudianteDocente
Tabla 14. Documentación del caso de uso de validación
NOMBRE DEL CASO DE USO
Validar usuarios
ACTORES
Administrador, docente y estudiante
PRECONDICIÓN O CONDICIONES Los usuarios deben estar registrados
INÍCIALES:
PROPÓSITO
TIPO
DESCRIPCIÓN
EXCEPCIONES AL CASO DE USO:
POST-CONDICIÓN O CONDICIONES
El usuario aprenderá las diferentes formas de
encriptar un mensaje.
Básico
El usuario debe ingresar su código y su
contraseña para ser validados.
Internamente la página web se comunica con
la base de datos.
En la base de datos se verifica que el usuario
se encuentre registrado.
La base de datos confirma la validación de los
usuarios y los acepta.
El usuario no se encuentra registrado en la
base de datos.
⋅ Ingresar a la página principal.
DE SALIDA:
Crear Histórico:
Figura 16. Aplicación del caso de uso crear histórico
Data
Recieved
EstudianteEstudiante Website
Estudiante
website
Web Crear histórico BD Criptoclass Website BD
Llamadas:
Data Sent
52
Data
Effects
NOMBRE DEL CASO DE USO
ACTORES
PRECONDICIÓN O CONDICIONES
Crear historial
Estudiante
El estudiante debe estar registrado
INÍCIALES:
PROPÓSITO
TIPO
DESCRIPCIÓN
EXCEPCIONES AL CASO DE USO:
POST-CONDICIÓN O CONDICIONES
DE SALIDA:
El estudiante al ser evaluado a través de unas
pruebas de conocimiento, internamente se
está creando el historial.
Básico
El estudiante tendrá una serie de preguntas
de forma aleatoria.
El estudiante analizara el problema.
El estudiante seleccionara la respuesta que
vea correcta.
Luego guarda esa información
Internamente esa información se almacena
en la base de datos.
El usuario no se encuentra registrado en la
base de datos. O se encuentra inhabilitado
⋅ Ingresar a la página principal y practicar con
cada uno de los métodos criptográficos
clásicos.
Leer respuestas:
Figura 17. Aplicación del caso de uso leer historial
Llamadas:
Data
Data
Recieved Effects
EstudianteEstudiante BD
CriptoClass
BD
Estudiante
CriptoClass
Data Sent
Estudiante BD CriptoClass
BD CriptoClass leer respuesta web
site
53
NOMBRE DEL CASO DE USO
ACTORES
PRECONDICIÓN O CONDICIONES
Crear historial
Estudiante
El estudiante debe estar registrado
INÍCIALES:
PROPÓSITO
TIPO
DESCRIPCIÓN
EXCEPCIONES AL CASO DE USO:
POST-CONDICIÓN O CONDICIONES
DE SALIDA:
El estudiante al ser evaluado a través de unas
pruebas de conocimiento, internamente se
está creando el historial.
Básico
A través de un query la base de datos
muestra al estudiante la cantidad de
preguntas buenas y malas.
El usuario no se encuentra registrado en la
base de datos. O se encuentra inhabilitado
⋅ Ingresar a la página principal y practicar con
cada uno de los métodos criptográficos
clásicos.
Leer Historial:
Figura 18. Aplicación del caso de uso leer historial
Llamadas:
Data
Sent
Data Recieved
EstudianteDocente
Estudiante website
Docente Estudiante
Webside leer BD CriptoClass Website Docente
Docente website
docente
54
Data
Effects
NOMBRE DEL CASO DE USO
ACTORES
PRECONDICIÓN O CONDICIONES
Leer historial
Docente y estudiante
Los usuarios deben estar registrados
INÍCIALES:
PROPÓSITO
TIPO
DESCRIPCIÓN
EXCEPCIONES AL CASO DE USO:
POST-CONDICIÓN O CONDICIONES
DE SALIDA:
El estudiante será evaluado a través de unas
pruebas de conocimiento
Básico
El docente entra al menú principal y
selecciona resultados
Internamente el software solicita los datos en
la base de datos a través de un query
La información que el docente verá es la
siguiente: nombres y apellidos del estudiante,
código del estudiante, última fecha de
ingreso, cantidad de respuestas totales,
respuestas correctas, respuestas incorrectas
y sección en la que el estudiante se quedo.
El usuario no se encuentra registrado en la
base de datos. O se encuentra inhabilitado
⋅ Ingresar a la página principal y practicar con
cada uno de los métodos criptográficos
clásicos.
55
4.2.2 Modelo Conceptual de la Base de Datos.
Figura 19. Modelo conceptual de la Base de Datos
56
4.2.3 Modelo Lógico de la Base de Datos.
Figura 20. Modelo lógico de la Base de Datos
57
4.2.4 Diseño de la base de datos.
Figura 21. Diseño de la Base de Datos
58
4.2.5 Diccionario de datos de la base de datos
Tabla 15. Diccionario de datos
Tabla:
Tipo
Descripción: Almacena el tipo de usuario
Atributo
PK FK DF CK NULL Tipo de
Dato
Id_Tipo
X
Int
Tipo_Usuario
Id_Tipo
Tipo_Usuario
Long. Observación
Auto
numérico
Varchar
50
Descripción del atributo
Número de identificación del tipo de usuario seleccionado
Nombre al usuario correspondiente ya sea docente o estudiante
Tabla:
Usuario
Descripción: Almacena información respecto al docente o estudiante
Atributo
PK FK DF CK NULL Tipo de
Long. Observación
Dato
Id_Documento
X
Int
Id_Tipo
X
Int
Tabla Tipo
Nombre
Varchar
50
Apellido
Varchar
50
Dirección
Varchar
50
Teléfono
Int
Email
X
Varchar
50
Contraseña
Varchar
50
Descripción del atributo
Id_Documento Número de identificación del docente o estudiante
Id_Tipo
Número de identificación del tipo de usuario seleccionado
Nombre
Nombre del estudiante o docente
Apellido
Apellido del estudiante o docente
Dirección
Dirección de residencia del estudiante o docente
Teléfono
Teléfono estudiante o docente
Email
Correo electrónico del estudiante o docente
Contraseña
Contraseña del estudiante o docente
59
Tabla:
Histórico
Descripción: Almacena la selección del usuario según las preguntas y las
respuestas
Atributo
PK FK DF CK NULL Tipo de
Long. Observación
Dato
fecha
X
timestamp
Id_Documento
X
X
Int
Tabla usuario
Id_Preguntas
X
Int
Tabla
X
preguntas
RespuestasH
X
Boolean
True or false
Descripción del atributo
fecha
La fecha en la que realizó el cuestionario de preguntas
Id_Documento
El documento de identificación del usuario
Id_Preguntas
La identificación de la pregunta según
RespuestasH
Se almacenan todas las preguntas y respuestas y se
selecciona cuales fueron las correctas y cuáles fueron las
falsas
Tabla:
Preguntas
Descripción: Almacena la pregunta y a que tema pertenece
Atributo
PK FK DF CK NULL Tipo de Long. Observación
Dato
Id_preguntas
X
Int
Auto
numérico
Pregunta
Varchar
250
Publicar
Boolean
true
Id_tema
X
Int
Descripción del atributo
Id_preguntas
El número de identificación de la pregunta
Pregunta
El planteamiento de la pregunta
Publicar
Muestra las preguntas según el tema
Id_tema
El número de identificación del tema al que pertenece
Tabla:
Respuestas
Descripción: Almacena puntaje del estudiante o docente
Atributo
PK FK DF CK NULL Tipo de Long. Observación
Dato
Id_respuestas
X
Int
Auto
numérico
Id_preguntas
X
X
Int
Tabla
preguntas
60
respuestasR
Coor_incorr
Id_respuestas
Id_preguntas
respuestasR
Coor_incorr
Varchar 250
boolean
True or false
Descripción del atributo
El número de identificación de la respuesta
El número de identificación de la pregunta
Muestra las respuestas correspondientes
Muestra las respuestas correctas o incorrectas
Tabla:
Tema
Descripción: Almacena el tema al que pertenece
Atributo
PK FK DF CK NULL Tipo de
Dato
Id_tema
X
Int
tema
Id_tema
tema
Varchar
Descripción del atributo
Número de identificación del tema
Tema al que pertenece
Long. Observación
Auto
numérico
20
Tabla:
Docente
Descripción: Almacena información respecto al docente
Atributo
PK FK DF CK NULL Tipo de
Long. Observación
Dato
Id_Documento
X
Int
Nombre
Varchar
50
Apellido
Varchar
50
Dirección
Varchar
50
Teléfono
Int
Email
X
Varchar
50
Descripción del atributo
Id_Documento Número de identificación del docente
Nombre
Nombre del docente
Apellido
Apellido del docente
Dirección
Dirección de residencia del docente
Teléfono
Teléfono docente
Email
Correo electrónico del docente
61
Tabla:
Estudiante
Descripción: Almacena información respecto al estudiante
Atributo
PK FK DF CK NULL Tipo de
Long. Observación
Dato
Id_Documento
X
Int
Nombre
Varchar
50
Apellido
Varchar
50
Dirección
Varchar
50
Teléfono
Int
Email
X
Varchar
50
Descripción del atributo
Id_Documento Número de identificación del estudiante
Nombre
Nombre del estudiante
Apellido
Apellido del estudiante
Dirección
Dirección de residencia del estudiante
Teléfono
Teléfono estudiante
Email
Correo electrónico del estudiante
Tabla:
Descripción:
Atributo
Id_Items
Items
Almacena el ítem de usuario
PK FK DF CK NULL Tipo de
Dato
X
Int
Long. Observación
Auto
numérico
Ruta
Nombrecaracter
Descripcioncaracter
Varchar
250
Varchar
250
Varchar
250
Descripción del atributo
Id_Items
Número de identificación del ítem de usuario seleccionado
Ruta
Ruta o path de acceso de las páginas del aplicativo web
Nombrecaracter
Nombre del carácter al que pertenece (practica o teórica)
Descripcioncaracter Descripción de cada página web del aplicativo
Tabla:
Items_Usuario
Descripción: Almacena el ítem de usuario
Atributo
PK FK DF CK NULL Tipo de
Dato
Id_Items
X
Int
Id_Documento
Fecha_Ingreso
Id_Items
X
Long. Observación
Auto
numérico
Int
50
TimeStamp
Descripción del atributo
Número de identificación del ítem de usuario seleccionado
62
Id_Documento
Fecha_Ingreso
Número de identificación del usuario correspondiente ya sea
docente o estudiante
La fecha en la que ingreso al sistema
Docente
Control de acceso
Administrador
Docente
Crear
X
Leer
X
X
Actualizar
X
X
Borrar Condición
Crear
X
Leer
X
X
Actualizar
X
X
Borrar Condición
Crear
X
Leer
X
X
X
Actualizar
X
X
X
Borrar Condición
Estudiante
Control de acceso
Administrador
Estudiante
Usuario
Control de acceso
Administrador
Docente
Estudiante
63
4.2.6 Mapa de Navegación
Figura 22. Mapa de navegación
⋅
⋅
El administrador se encarga de consultar y registrar docentes y estudiantes.
El docente al igual que el estudiante tiene las opciones de ver los dos videos,
ver la explicación de los métodos criptográficos clásicos, hacer las ejercicios y
actualizar algunos datos como son: dirección, contraseña, teléfono y correo
electrónico, pero adicionalmente el docente tiene la opción de ver los
resultados de los estudiantes.
64
4.3
IMPLEMENTACIÓN O DESARROLLO DE LA APLICACIÓN
Para el desarrollo de la aplicación se tuvo en cuenta el sistema de Bases de Datos
seleccionado, este cumple la función de almacenar el proceso que el usuario lleva
con la intención de hacer un seguimiento a la enseñanza/aprendizaje.
Para el desarrollo se procede a instalar el software NetBeans IDE 6.1, para crear
un proyecto Enterprise con el que se inicia el proceso de programación de los
algoritmos seleccionados.
El Enterprise se divide en EJB que sirve para hacer la conexión a la base de datos
con el lenguaje java y el WAR que es donde se crea, compila y ejecuta cada
algoritmo programado.
A continuación una presentación de la creación del Enterprise donde se pueden
crear módulos EJB y aplicaciones web:
65
4.3.1 Creación del Enterprise
El WAR es una aplicación estándar de un proyecto IDE que genera un script
constructor donde compila y corre el proyecto, para la elaboración de este
proyecto en el WAR se despliega la carpeta Source Package y se crea un paquete
de java y alterno a él un javaclass.
4.3.2 Creación del Javaclass
Este javaclass es una librería de java SE que se ejecuta dentro de un paquete,
aquí se está generando código para que encripte y desencripte el texto plano
correspondiente a cada algoritmo. En la carpeta Web Pages se crea un nuevo
Visual Web JSP Page que a su vez se subdivide en:
66
Design.
JSP
En Design se diseña la parte visual y se
insertan botones, textareas, checkbox, entre
otros.
JSP es el XML
anteriormente.
del
diseño
presentado
Java
Java es un lenguaje complejo de programación
orientado a objetos, independiente de
plataforma y su sintaxis se asemeja mucho a
C++; necesita una variedad de compiladores y
de archivos de soporte para funcionar. Este
recibe las órdenes de lo que debe ejecutar cada
objeto (ver manual del usuario).
Para el desarrollo de la parte visual del trabajo se tuvo en cuenta Corel Draw que
es un programa estándar que permite desarrollar cualquier pieza sin limitar la
creatividad del diseñador, por ser la herramienta más amable en su mecánica de
trabajo.
67
Alterno a este se empleó adobe photoshop por su funcionabilidad y practicidad y
por que posee múltiples posibilidades artísticas para utilizar las imágenes, se
montó en Macromedia Flash que es una de las herramientas más potentes y
usadas para añadir a un sitio web conservando un buen manejo visual.
La presentación se exportó en un archivo de formato swf y para hacerlo
compatible con el resto de la presentación se montó en una plantilla de HTML,
(Hyper Text Markup Language), este es un lenguaje de programación para crear
documentos interactivos. El lenguaje HTML está basado en comandos que se
insertan en lugares estratégicos. Un comando HTML viene definido por un
conjunto de palabras entre signos > y < (ver tutorial de desarrollo).
68
Para este último paso se utilizó Macromedia Dreamweaver que es una de las
herramientas de maquetación web, estas ofrecen un mejor desempeño en cuando
a calidad y usabilidad del producto final.
4.3.3 Pseudocódigo
A continuación se explica el desarrollo del código fuente perteneciente al software
CriptoClass:
69
Javaclass: Cripto.java;
Llama al paquete útil;
Creación de la clase Cripto para encriptar o desencriptar algoritmos según
selección;
Constantes de tipo string: normal, polyletra, polynum;
Variables de tipo string: cesar, comodin, escitala;
Identificación del algoritmo:
1. Normal;
2. Cesar;
3. Polybiosnum;
4. Polybiosletra;
5. Escitala;
Método ordenarArreglo (arreglo temporal)
Si método == 1 entonces normal;
Si método == 2 entonces cesar;
Si método == 3 entonces polybiosnum;
Si método == 4 entonces polybiosletra;
Si método == 5 entonces escitala;
Entero x= corrimiento;
String cesara [] = new String[26];
Para cada j=0 donde j<26 y j++
70
Llame a cesara[j] = inicializar y tener en cuenta que es un string
de 26 caracteres;
Para cada j=0 donde j<comodin.length y j++
Y si j+x < comodin.length
Cesara[j] = comodin[j + x];
Sino
Cesara[j] = comodin[j + x - comodin.length];
Donde cesar = cesara;
Retorna a cesara;
Método encriptar (tiene un metodoent, un metodosal, y una palabra)
Palabra = palabra.toUpperCase (pasar a mayúsculas);
Palabra = this.sinEspacios(quitar espacios);
Carácter letra[] = palabra.toCharArray(arreglo de palabras);
Palabra=""; limpia en memoria para empezar a llenar;
Si ((metodoent == 3 || metodoent == 4)) entonces
String dupla = ""; limpia en memoria para empezar a llenar;
Para cada j = 0; donde j < letra.length; j = j + 2
Dupla = valor del String en(letra[j]) + valor del String(letra[j + 1]);
Entero temp = asigna una posición de arreglo (metodoent, dupla);
Si temp == 9 entonces
Palabra = palabra + "(" + this.letraArray(metodosal, 8) +
this.letraArray(metodosal, temp) + ")";
Sino
Palabra = palabra + this.letraArray(metodosal, temp);
Si (metodoent == 1 || metodoent == 2) {
Entero tam = letra.length;
Para cada j = 0; donde j < tam; j++
71
Entero temp=this.posicionArray(metodoent,
String.valueOf(letra[j]));
Palabra = palabra + this.letraArray(metodosal, temp);
Retorne palabra;
Método sinEspacios(palabra)
String tem[];
Tem= palabra.split(" "); /*split: convierte todos los caracteres String en
minúscula usando las reglas de Locale, basado en la versión estándar
Unicode que esta especificada por el {@link java.lang.Character
Character}*/
Palabra=""; limpia en memoria para empezar a llenar;
Para cada j = 0; donde j<tem.length; j++ haga
Palabra=palabra+tem[j];
String temp[];
Temp = palabra.split("\u000B"); /*Estándar Unicode*/
Palabra=""; limpia en memoria para empezar a llenar;
Para cada t j=0; donde j<temp.length; j++
Palabra=palabra+temp[j];
Retorne palabra;
72
Método encriptarCesar(metodoent, corrimiento, palabra)
this.ordenarArreglo(corrimiento);
Palabra = palabra.toUpperCase (pasar a mayúsculas);
Palabra = this.sinEspacios(quitar espacios);
Carácter letra[] = palabra.toCharArray(arreglo de palabras);
Palabra=""; limpia en memoria para empezar a llenar;
Entero tam = letra.length; /*concatenación*/
Si(metodoent == 1 || metodoent == 5)
Para cada j = 0; donde j < tam; j++
Entero temp = this.posicionArray(this.NORMAL,
String.valueOf(letra[j])); /*asigna al arreglo la normal*/
Palabra = palabra + this.letraArray(this.CESAR, temp);/*el otro
arreglo lo convierte en cesar*/
Si (metodoent == 3 || metodoent == 4)
Para cada j = 0; donde j<tam ; j= j+2
String dupla = string.valorde
(letra[j])+string.valorde(letra[j+1]);
Entero temp = this.posicionArray(metodoent, dupla);
Palabra = palabra + this.letraArray(this.CESAR, temp);
Retorne palabra;
73
Método desencriptarCesar(metodosal, corrimiento, palabra)
this.ordenarArreglo(corrimiento);
Palabra = palabra.toUpperCase (pasar a mayúsculas);
Palabra = this.sinEspacios(quitar espacios);
Carácter letra[] = palabra.toCharArray(arreglo de palabras);
Palabra=""; limpia en memoria para empezar a llenar;
Entero tam = letra.length; /*concatenación*/
Para cada j = 0; donde j < tam; j++
Entero temp = this.posicionArray(this.CESAR,
String.valueOf(letra[j]));
Palabra = palabra + this.letraArray(metodosal, temp);
Retorno palabra;
74
Método encriptarEscitala(cítalas, palabra)
Palabra = palabra.toUpperCase (pasar a mayúsculas);
Carácter letra[] = palabra.toCharArray(arreglo de palabras);
String palabras[] = new String[cítalas+1];
Palabra=""; limpia en memoria para empezar a llenar;
Entero res = letra.length % cítalas;/*coge tamaño del arreglo y saca
residuo*/
Entero arraytam = letra.length / cítalas;
Si(res != 0) entonces
Arraytam = arraytam + 1;
Entero x = 0; /*contador*/
String arrays[][] = new String[cítalas][arraytam];
Para cadaj = 0; donde j < letra.length; j = j + cítalas
Para cada k = 0; donde k < cítalas; k++
Si (j + k < letra.length)
Arrays[k][x] = String.valorde (letra[j + k]);
Sino
Arrays[k][x] = "";
x++;
para cada j=0; donde j<cítalas; j++
palabras[j]=""; /*para no null. inicializa el String como vacio*/
para cada j = 0; donde j < cítalas; j++
para cada k = 0; donde k<arraytam; k++
palabras[j] = palabras[j]+arrays[j][k];
//imprime el arreglo
palabra=""; limpia en memoria para empezar a llenar;
para cada k = 0; donde k < cítalas; k++
para cada i = 0; donde i < arraytam; i++
palabra = palabra + arrays[k][i];
palabras[cítalas]=palabra;
retorna palabras;
75
Método desencriptarEscitala(cítalas, palabra)
palabra = palabra.toUpperCase (pasar a mayúsculas);
carácter letra[] = palabra.toCharArray(arreglo de palabras);
String palabras[] = new String[cítalas+1];
palabra=""; limpia en memoria para empezar a llenar;
entero res = letra.length % cítalas;/*coge tamaño del arreglo y saca
residuo*/
Entero arraytam = letra.length / cítalas;
si(res != 0) entonces
arraytam = arraytam + 1;
entero arraytam = arraysize;
String arrays[][] = new String[cítalas][arraysize];
Para cada j = 0; donde j <= cítalas; j++
palabra [j]=""; limpia en memoria para empezar a llenar;
para cada j = 0; donde j < cítalas; j++
para cada k = 0; donde k < arraysize; k++
arrays[j][k] = ""; limpia en memoria para empezar a llenar;
Entero i = 0; /* Contador */
para cada j = 0; donde j < letra.length; j = j + arraysize
si (i >= res y res < cítalas - 1 y arraysize == arraytam y (res > 0))
76
arraysize = arraysize - 1;
para cada k = 0; donde k < arraysize; k++
si (j + k < letra.length)
arrays[i][k] = String.valueOf(letra[j + k]);
sino
arrays[i][k] = ""; limpia en memoria para empezar a llenar;
i++;
para cada j = 0; donde j < cítalas; j++
para cada k = 0; donde k < arraytam; k++
palabras[j] = palabras[j] + arrays[j][k];
palabra = ""; limpia en memoria para empezar a llenar;
para cada j = 0; donde j < arraytam; j++
para cada k = 0; donde k < cítalas; k++
palabra = palabra + arrays[k][j];
palabras[cítalas] = palabra;
retorna palabras;
Método encriptarVigenereCompleto(palabra, clave)
String palabras[];
String finali = ""; limpia en memoria para empezar a llenar;
palabras = this.conEspacios(palabra);
Entero i = palabras.length;
String palabraanidada = ""; limpia en memoria para empezar a llenar;
Integer tam[] = new Integer[i];
Para cada j = 0; donde j < i; j++
Integer x = palabras[j].length();
tam[j] = x;
palabraanidada = palabraanidada + palabras[j];
String palabra2 = this.encriptarVigenere(clave, palabraanidada);
77
Integer var1 = 0, var2 = 0;
Para cada j = 0; donde j < i; j++
String word = ""; limpia en memoria para empezar a llenar;
var2 = var2 + tam[j];
word = palabra2.substring(var1, var2);
var1 = var1 + tam[j];
palabras[j] = word;
finali = this.unirPalabra(palabras);
retorna finali;
Método desencriptarVigenereCompleto(palabra, clave)
String palabras[];
String finali = ""; limpia en memoria para empezar a llenar;
palabras = this.conEspacios(palabra);
Entero i = palabras.length;
String palabraanidada = ""; limpia en memoria para empezar a llenar;
Integer tam[] = new Integer[i];
Para cada j = 0; donde j < i; j++
Integer x = palabras[j].length();
tam[j] = x;
palabraanidada = palabraanidada + palabras[j];
String palabra2 = this.desencriptarVigenerex(palabraanidada,clave);
Integer var1 = 0, var2 = 0;
Para cada j = 0; donde j < i; j++
String word = ""; limpia en memoria para empezar a llenar;
var2 = var2 + tam[j];
word = palabra2.substring(var1, var2);
var1 = var1 + tam[j];
78
palabras[j] = word;
finali = this.unirPalabra(palabras);
retorne finali;
4.4
PRUEBAS:
Entre los diferentes procesos encaminados a la mejora de la calidad en el
desarrollo del software se realizaron pruebas de caja negra que se basa en la
especificación funcional del software, mediante el uso de dos herramientas
llamadas Threat Analysis and Modeling y W3AF.
Con la herramienta Threat Analysis and Modeling18, se identificaron los siguientes
riesgos, posibles ataques y contramedidas del aplicativo:
Riesgos:
⋅
⋅
⋅
Confidencialidad: accesos no autorizados a usuarios sin permisos de
administrador.
Integridad: ejecución ilegal de la aplicación por terceros.
Disponibilidad: ejecución no efectiva de la aplicación del administrador.
18
Aplicación de Modelamiento de riesgos desarrollada por Microsoft disponible en:
http://msdn2.microsoft.com/es-ar/security/aa570412.aspx Visitada 21 de Febrero de 2008 1:30 pm
79
Ataques:
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
Inyección de la base de datos: nivel de validación de las entradas a la base de
datos de una aplicación.
Ataque de fuerza bruta contra password: procesos automáticos de prueba y
error para usuarios no validos.
Ataque por medio de un hijacking: utilización de la fuerza bruta atacando
códigos y contraseñas hasta encontrar la correcta.
Troyano: virus que puede destruir la información.
Denegación de servicios: el usuario principal es el que fortalece la seguridad
del sistema.
Ataque de criptoanálisis: buscas el reconocimiento de la información cifrada
para sacar un nuevo modo de texto.
Forzar el browser: bloqueo del software por mal manejo.
Robo de sesiones: es el ataque al servidor.
Basado en lo anterior se establecen y prueban las siguientes contramedidas, que
arroja el mismo software previniendo a futuro posibles errores cuando se quiera
continuar con el desarrollo del mismo.
Contramedidas:
⋅
⋅
⋅
⋅
⋅
⋅
Forzar la complejidad de la clave. Utilizar mayúsculas y minúsculas combinado
con números.
Usar claves largas. Usar claves mayores a diez caracteres.
Usar un buen cifrado para las claves. Agregar un algoritmo de cifrado más
seguro que el base64.
Autenticar al cliente y al servidor.
Asegurar el almacenamiento de las claves. Para poder entrar a la base de
datos, primero hay que validarse a través de un usuario y una contraseña.
Forzar requerimiento limite del tamaño.
Además de la prueba que conciernen a toda la plataforma y la configuración, la
aplicación está diseñada con especial atención a la seguridad, aquí se probó la
validez de datos en el servidor y la protección ante vulnerabilidades como “la
inyección de código SQL”, mediante la herramienta W3AF (Web Application Attack
and Audit Framework) que mide el marco del ataque y la intervención del uso del
web, arrojando los siguientes resultados:
80
⋅
⋅
⋅
⋅
Un porcentaje mínimo de vulnerabilidad en las calves cifradas de cada usuario.
La funcionabilidad del software en cuanto a ataques se encuentra en un 90%
de confiabilidad.
Posee un buen uso de la web.
La navegabilidad y facilidad de uso de la web está acorde con el perfil del
usuario.
81
5
PRESENTACIÓN Y ANÁLISIS DE RESULTADOS
Por medio de un cuestionario a estudiantes se evalúa la funcionabilidad del
software CriptoClass teniendo en cuenta los siguientes ítems:
Amigabilidad: Aquí se evalúa la capacidad de interacción que tiene el usuario con
el sistema.
Se evalúo por medio de las preguntas ¿la interacción del usuario con el software
es? Y ¿El uso de los componentes usados en el software son?:
⋅
⋅
⋅
⋅
Fácil
Moderado
Difícil
Muy difícil
⋅
La interacción del usuario con el software resultó de fácil manejo en un 50% de
la población encuestada.
82
Consistencia: Aquí los elementos relacionados deben tener presente los iconos,
los menús, botones e imágenes, estos deben ser acordes con lo que representa el
software. A continuación se muestran los resultados obtenidos en la encuesta por
medio de la pregunta ¿Cómo le parece el diseño empleado dentro del software?,
califique cada ítem de 1 a 3, siendo 1 no conveniente, 2 aceptable y 3 adecuado.
⋅
El 40% de la población encuestada opinó que los colores son adecuados, y el
60% de la población encuestada opinó que las fuentes, botones e imágenes
son aceptables.
Usabilidad: Es la motivación que el software ofrece para ser utilizado. Se realizo
por medio de la siguiente pregunta.
¿Considera que el software realizó la tarea esperada?
⋅
⋅
⋅
Si
No
¿Por qué?
83
Los resultados a la pregunta fueron si el 70% y no 30%, argumentado en el ¿Por
qué? : Desde el primer momento de la interacción con el software el estudiante
siente confianza y encuentra cierta facilidad para llegar al proceso de encriptación.
Capacidad de aprendizaje: La capacidad de aprendizaje se mide cuando el
estudiante hace una asimilación y acomodación de la información que
posteriormente lo llevará a ejecutar un trabajo sin necesidad de ayuda teórica.
Se realizó por medio de las preguntas ¿Considera que el contenido teórico es
claro para entender el proceso práctico?, ¿utilizaría el software para la realización
de otros ejercicios de encriptación?
⋅
⋅
⋅
Si
No
¿Por qué?
84
El 60% de la población encuestada respondió que sí, porque la explicación es
breve, clara y posee un ejemplo y el 40% respondió que no, porque sus
conocimientos en criptografía no son claros, no poseen información o porque
consideran que hacen falta más ejercicios de aplicación.
Con base a la información recaudada se concluye que la interacción del usuario
con el software resulto de fácil manejo por tener claridad en su menú de inicio, y
poseer una navegación aleatoria. Dado el impacto de los colores, botones,
imágenes e información teórica el diseño fue considerado por la población
educativa como aceptable.
Para responder al objetivo final del software se considero pertinente su teoría, ya
que muestra de manera clara y sencilla el proceso de encriptación de los
algoritmos seleccionados por el autor del proyecto.
El software CriptoClass posee un sinnúmero de ejercicios aleatorios que le dan la
oportunidad al estudiante de evaluarse en cuanto al proceso de aprendizaje, de
una forma concreta, rápida y segura.
85
6
CONCLUSIONES
La criptografía clásica permite a los estudiantes iniciarse en el proceso de
encriptación de la información de una forma versátil, amena, pero ante todo
practica.
Se logro determinar que la mejor herramienta para la transferencia de
conocimientos de docentes a estudiantes y su respectiva retroalimentación es un
software interactivo.
Considerando la reacción, actitud y respuesta de la encuesta de los estudiantes de
segundo semestre al momento de realizar las pruebas del software, se observó
como las herramientas facilitan y estimulan a los estudiantes a adquirir habilidades
y conocimientos en nuevas áreas que antes no habían considerado y en esta
misma línea a interesarse en la criptografía.
86
7
RECOMENDACIONES
Crear un semillero de investigación que trabaje en el área de criptografía, en la
creación de una bibliografía abundante y que continúen con el desarrollo de este
software.
Considerar dentro del currículo del programa de Ingeniería de Sistemas la
enseñanza de la criptografía o al menos sus conceptos básicos.
Integrar dentro de las asignaturas existentes actualmente la enseñanza o
implementación de temas de criptografía dentro de los contenidos temáticos.
Fusionar Diseño Gráfico con Ingeniería de Sistemas para la optimización y
mejoramiento del programa.
Implementar más ejercicios de aplicación.
87
GLOSARIO
AUTENTICIDAD: hace referencia a estar seguro de la identidad de una entidad,
ya sea mensaje, persona, servidor, entre otros.
CIFRADORES CLÁSICOS: se clasifican en sustitución y transposición.
CIFRADO POR SUSTITUCIÓN: como su nombre lo indica consiste en sustituir
caracteres del texto en claro por otros caracteres del mismo alfabeto o de otros
alfabetos, se clasifican en tres grupos: Sustitución monográmico monoalfabetico,
sustitución monográmico polialfabetico, y sustitución poligrámica.
CIFRADORES POR SUSTITUCIÓN MONOGRÁMICO MONOALFABÉTICO: el
cifrado se realiza mediante un algoritmo que hace corresponder una letra del texto
en claro a una única letra del criptograma, cifrando monogramas, utilizando para
ello un único alfabeto de cifrado.
CIFRADORES POR SUSTITUCIÓN MONOGRÁMICO POLIALFABÉTICO: se
realiza carácter a carácter, de forma monográmico.
CIFRADORES POR SUSTITUCIÓN POLIGRÁMICA: tratan el mensaje en bloque
de dos o más caracteres sobre los que se aplica la transformación del
criptosistema en cuestión, sustituyendo cualquier numero de gramas del mensaje
por n gramas del texto cifrado.
CIFRADORES POR TRANSPOSICIÓN: utilizan la permutación de los mismos
caracteres del texto en claro realizando permutaciones del alfabeto por grupos,
columnas, filas y series.
CIFRAR O ENCRIPTAR: es la acción que produce un texto cifrado (ilegible) a
partir de un texto original.
CÓDIGO FUENTE: texto de un programa antes de ser compilado, el código fuente
se utiliza para describir programas y sus componentes han de ser lo más legibles
y comprensibles posibles.
88
COMPILACIÓN: proceso de traducción de un lenguaje de programación de alto
nivel a un lenguaje de programación a un bajo nivel.
CLAVE PRIVADA: es la clave secreta que se usa en la criptografía asimétrica.
CLAVE PÚBLICA: es la clave públicamente conocida, que se usa en la
criptografía asimétrica.
CLAVE SIMÉTRICA: es la clave secreta que tiene ambos lados de una
comunicación en la criptografía simétrica.
CRIPTOGRAFÍA ASIMÉTRICA: es el conjunto de métodos que permite
establecer comunicación cifrada, donde una de las claves es pública y la otra es
privada.
CRIPTOGRAFÍA SIMÉTRICA: es el conjunto de métodos que permite establecer
comunicación cifrada, con la propiedad de que ambos lados de la comunicación
tienen la misma clave, y ésta es secreta.
CRIPTOGRAFÍA: es el conjunto de técnicas (entre algoritmos y métodos
matemáticos) que resuelve los problemas de autenticidad, privacidad, integridad, y
no rechazo de la transmisión de la información.
DESCIFRAR O DESCENCRIPTAR: es la acción inversa de cifrar, convierte un
texto cifrado a otro legible (texto original).
DISEÑO: actividad de definir cómo se debe estructurar e implementar un
programa.
HTML: lenguaje de script o de marcas para diseñar página web.
IMPLEMENTACIÓN: actividad de escribir, compilar, probar y depurar el código de
un programa.
89
LENGUAJE DE PROGRAMACIÓN: notación utilizada por los programadores para
escribir programas.
MÁQUINAS DE CIFRAR: corresponde a sistemas implantados en equipos
electromecánicos entre los que cabe destacar las maquinas a rotor como: el
enigma y Hagelin, utilizadas para cifrar mensaje durante la segunda guerra
mundial.
MENSAJE: una petición enviada a un objeto que solicita ejecutar una operación
determinada.
NO RECHAZO: se refiere a no poder negar la autoridad de un mensaje o de una
transacción.
PAR DE CLAVES: se refiere al par de claves una privada y la otra publica usadas
en la criptografía asimétrica.
PRIVACIDAD: hace referencia a tener control en el acceso de la información y
solo permitirlo a personas autorizadas.
TEXTO CIFRADO: es un documento que ha sido cifrado.
TEXTO ORIGINAL: es el documento antes de ser cifrado.
90
BIBLIOGRAFÍA
CARVAJAL Armando, Tecnologías Globales para la Seguridad de la Informática, Versión 2,
Colombia, 2007.
CANO, Jeimy, VII Encuesta de Seguridad Nacional Informática. 2007.
DWIGHT Smith, Laurence, Cryptography Science of Secret Writing, Dover, 1971.
LUCENA López, Manuel J, Criptografía y Seguridad en Computadores, cuarta Edición, Creative
Commons, España.
INSTITUTO COLOMBIANO DE NORMAS TÉCNICAS. Norma Técnica Colombiana NTC-ISO
9000. Bogotá D.C.: ICONTEC, 2000. 42p.
QUIROGA, Milton, Una Introducción a las Técnicas Criptográficas, Panorámica de la Seguridad
Informática en Colombia, 2003
ECHAVARRÍA, Isabel Cristina. Contribución a la Validación de Certificados en Arquitecturas de
Autenticación y Autorización. Computer disk; 3 ¼ mm. PDF format
HOYOS, Juan Carlos y Valle Leopoldo Luis. Nuevas Tendencias de la Prueba Ley Colombiana
de Comercio Electrónico. Computer disk; 3 ¼ mm. PDF format
Disponible en nternet:http://www.recercat.net/bitstream/2072/4377/1/Castejón.pdf>
de Agosto de 2007 03:00 p.m.
Disponible en Internet: < http://www.textoscientificos.com/criptografia/privada>
Agosto de 2007 03:00 p.m.
visitada 24
visitada 24 de
Disponible en Internet: < http:// www.acis.org.co> visitada 30 de Agosto de 2007 03:30 p.m.
Disponible en Internet: < http:// www.criptored.upm.es> visitada 27 de Agosto de 2007 03:00
p.m.
Disponible en Internet: < http:// www.kriptopolis.org > visitada 30 de Agosto de 2007
91
ANEXO 1
ENCUESTA A ESTUDIANTES
1. Califique de 1-5 su interés por la criptografía, siendo 1 el menor interés y 5 el mayor interés.
1
2
3
4
5
2. Califique de 1-5 el conocimiento que tenga sobre el tema de criptografía, siendo 1 el menor
interés y 5 el mayor interés.
1
2
3
4
5
3. Califique de 1-5 su interés por prender del tema de criptografía, siendo 1 el menor interés y
5 el mayor interés.
1
2
3
4
5
4. Marque con una x que tipo de criptografía conoce:
Criptografía
Clásica
Criptografía
Moderna
Criptografía
Actual
Ninguna de
las anteriores
5. Conoce algún software que enseñe sobre el tema de criptografía:
Si
No
92
Si su respuesta es afirmativa, indique cual:
6. De los siguientes medios cual sería su favorito para aprender sobre el tema:
Libro Físico
Libro Digital
Software
Interactivo
Video
Si su respuesta es otros, indique cual:
7. Ha visto en alguna de sus materias el tema de criptografía
Si
No
Si su respuesta es afirmativa, indique cual:
93
Otros
ANEXO 2
CUESTIONARIO A ESTUDIANTES PARA EVALUAR EL SOFTWARE
MULTIMEDIAL CRIPTOCLASS
Esta prueba está destinada a evaluar la funcionalidad del software CriptoClass diseñado por la
estudiante Heidi Chaves de décimo semestre para optar por el titulo de Ingeniera de Sistemas
de la Univ. San Buenaventura. De antemano agradezco responder objetivamente esta prueba
para seguir contribuyendo con la evolución del programa.
Amabilidad
1. La interacción del usuario con el software es:
Fácil
Moderado
Difícil
Muy difícil
2. El uso de los componentes usados en el software son:
Fácil
Moderado
Difícil
Muy difícil
Consistencia
3. Como le parece el diseño empleado dentro del software. Califique cada ítem de 1-3,
siendo:
1 No conveniente
2 Aceptable
3 Adecuado
1
2
Colores
Fuentes
Botones
Imágenes
94
3
Usabilidad
4. ¿considera que el software realizó la tarea esperada?
Si
No
¿Por qué?
Capacidad de aprendizaje
5. ¿Cree usted que el contenido teórico es claro para entender el proceso práctico?
Si
No
¿Por qué?
6. Utilizaría el software para la realización de otros ejercicios de encriptación?
Si
No
¿Por qué?
95
96
ESTUDIANTE
1. Etapa: Inicio del Software
El manual explica la estructura y
administración del software multimedial
CriptoClass, la navegación permite la
interacción del estudiante con el
software.
2. Etapa: Validación del Usuario
En esta página el estudiante se valida
ingresando su código estudiantil y su
contraseña. Internamente la base de
datos reconoce al usuario si este ya se
ha registrado y le da acceso de
continuidad.
En la presentación aparece
una página inicial que es la
introducción al software.
97
Actualizar Datos:
3. Etapa: Menú Principal
El menú principal da acceso a la
navegación del software ya que
posee tres entradas:
El estudiante solo tendrá la
opción
de
actualizar
los
siguientes datos:
⋅
Contraseña.
⋅
Dirección.
⋅
Teléfono.
⋅
Email
1. Actualizar datos
2. Explicación
3. Practica Libre.
Cuando se entra a explicación,
el estudiante tiene la posibilidad
de interactuar con el sistema de
manera
aleatoria
con
la
posibilidad
de
seleccionar
cualquier algoritmo, de leer su
contenido teórico, ir a un
ejercicio práctico de descifrado
de la información y a la
explicación del mismo algoritmo.
La intención de esta página es q
el estudiante se familiarice con
la criptografía y se documente.
⋅
98
Explicación:
a.
b.
c.
d.
Esta página muestra la explicación de los algoritmos clásicos seleccionados para el proyecto. El
estudiante tiene la posibilidad de interactuar con el sistema de manera aleatoria seleccionando uno de
los algoritmos, una vez seleccionado el algoritmo puede acceder a la historia y documentarse sobre el
proceso de encriptación.
Posteriormente pasa a la explicación del proceso y de ahí va a un ejercicio práctico de desencriptación.
Este proceso lo puede hacer con cualquiera de los 4 algoritmos.
99
4. Etapa: Práctica Libre
5. Etapa: Ejercicios
Una vez adquirido el conocimiento
en la explicación, el estudiante
accede a la práctica libre.
Después de haber cumplido con el
proceso de todos los algoritmos, el
estudiante llega a la etapa de
ejercicios.
Aquí el estudiante crea un texto
plano y ejecuta el proceso de
encriptación
del
algoritmo
presentado. En esta misma línea
puede descencriptar la misma
información y verificar en la tabla su
resultado.
Aquí hay una interacción directa con
los ejercicios sin la explicación
teórica, se mezclan unos algoritmos
con otros, para darle dificultad al
aprendizaje, con la intención que el
estudiante adquiera algún puntaje
que le servirá al docente para medir
el proceso del conocimiento.
La posibilidad de hacer por lo menos
un ejercicio, le da la viabilidad de
pasar a la siguiente etapa.
100
DOCENTE
1. Etapa: Inicio del Software
Validación del docente por medio
de su código y contraseña.
101
2. Etapa: Resultados
Luego en el menú principal se le despliega otra opción que se llama resultados, con esta opción el
docente puede ver cómo va progresando el estudiante y cuáles han sido sus calificaciones.
De igual manera el docente también tendrá la opción mirar las explicaciones, también de realizar la
práctica libre y realizar la fase de pruebas.
102
ADMINISTRADOR
1. Etapa: Inicio del Software
Validación del administrador por
medio
de
su
código
y
contraseña.
103
2. Etapa: Registro de Usuarios
Inserción de datos
Esta
es
la
parte
del
administrador que se encarga
de
crear
docentes
y
estudiantes, el administrador
selecciona que tipo de usuario
va a crear. En este ejemplo él
crea un estudiante.
La información solicitada del
estudiante es:
⋅
Documento estudiantil.
⋅
Nombre.
⋅
Apellidos.
⋅
Contraseña.
⋅
Dirección.
⋅
Teléfono.
⋅
Email.
⋅
Selección del habilitado:
esta opción le permitirá saber al
administrador si el estudiante está
activo o no dentro de la
Universidad. Si el estudiante no
está activo, este como tal no tendrá
acceso al software al menos que el
administrador lo disponga.
104
3. Etapa: Consulta de Usuarios
Aquí el administrador se encarga de consultar docentes y estudiantes, también selecciona el
tipo de usuario que va a consultar. Esta misma consulta muestra los estudiantes almacenados
en la Base de Datos
105
4. Etapa: Actualizar y editar información
En esta opción, el administrador podrá cambiar cualquier dato del estudiante.
Con el botón editar, el administrador confirma a la base de datos que la
información ya fue cambiada.
106
107
108
109
110
111
Descargar