de y desarrollo tecnol~gico
TRANSCRIPT
SEIT DGIT SEP
CENTRO NACIONAL DE INVESTIGACI~N Y DESARROLLO TECNOL~GICO
cenidet Esquema de Encripción Autentificado Empleando
Verificación Compartida
T E S I S PARA OBTENER EL GRADO DE
M A E S T R O E N C I E N C I A S EN INGENIERÍA ELECTR~NICA
P R E S E N T A : HÉCTOR RICARDO HERNÁNDEZ DE LEÓN
DIRECTOR DE TESIS:
M.C. JAVIER MENESES RUÍZ Q 1 - 0 3 4 5
CUERNAVACA MORELOS JUNIO DE 2001
S.E.P. S.E.1.T
CENTRO NACIONAL DE INVESTIGACIÓN cenidet
DESARR
S.N.1.T
TECNOL~GICO
ACADEMIA DE LA MAESTlÚA EN ELECTRÓNICA
FORMA R11 ACEPTACION DEL TRABAJO DE TESIS
Cuemavaca, Mor. 2001-07-10
Dr. Jesus Amoldo Bautista Corral Director del cenidef Presente
Jefe del Depto. de Electrónica At’n. Dr. Luis Gerard0 Vela Valdés
Después de haber revisado el trabajo de tesis titulado: “Esquema de Encripción Autentificado Empleando Verificación Compartida”, elaborado por el alumno Héctor Ricardo Hernández De León, bajo la dirección del M.C. Javier Meneses Ruiz, el trabajo presentado se ACEPTA para proceder a su impresión.
A T E N T A M E N T E
M.C. E Carlos Felipe Garcia Hernández
C.C.P.: Dr. Marco Antonio Oliver Salazar I Pdte. de la Academia de Electrónica I.¡-. Ohia Maquinay Diaz I Jefa del Depto. de Servicios Escolares t Cpediente.
INTERIOR INTERNADO PALMIRA SIN. CUERNAVACA. MOR. MÉXICO AP 5-164 CP 62050, CUERNAVACA. TELS.(73)12 2314.12 7613.18 7741.FAX173) 12 2434 DI. Luis Gerordo Velo ValdenlJefe del Depto d e Electrónico EMAlL [email protected] cenidet
Centro Nacional de Investigación y Desarrollo Tecnológico
Cuernavaca, Morelos 2001-07-16
ing. Héctor Ricardo Hernández De León Candidato al grado de Maestro en Ciencias en Ingeniería Electrónica Presente
Después de haber sometido a revisión su trabajo final de tesis titulado: “Esquema de Encripcion Autentificado Empleando Verificación Compartida”, y habiendo cumplido con todas las indicaciones que el jurado revisor de tesis le hizo, le comunico que se le concede autorización para que proceda a la impresión de la misma, como requisito para la obtención del grado.
Reciba un cordial saludo.
A T E N T A M E N T E
fl’4A Dr. Luis Gerardo Vela Valdés Jefe del Depto. de Electrónica
S.EP D.G.I.T. CENTRO NACIONAL OF IXVFSTIGAClBk
Y DESARROLLO ‘TECNOLOGiCO SUBDlRECCiON ACADEMCA
C.C.P. expediente.
INTERIOR INTERNADO PALMIRA S/N. CUERNAVACA. MOR. MÉXICO AP 5-164 CP 62050. CUERNAVACA. TELS. 1731122314, 127613. 18774l.FAXi731 122434 Dr. L i s Gerardo Vela Vóldes/Jefe del Depto d e Electrónica EMAlL [email protected] cenidet
. - . . . - - . . - . . . - . .__I....... ~. .~ -
iv
AGRADECIMIENTOS
Agradezco al Centro Nacional de Investigación y Desarrollo Tecnológico, por haber cultivado en mí el conocimiento y el gusto por hacer investigación. También deseo agradecer al Instituto Tecnológico de Tuxtla Gutiérrez, por ser la vía para la autorización de Beca-Comisión para la realización de los estudios. A mi asesor, M.C. Javier Meneses Ruíz y a los integrantes del comité de revisión, M.C. Guillermo Cahue Díaz, M.C. José Martin Gómez López y M.C. Carlos Felipe Garcia Hernandez, por su desinteresado apoyo y asesoría invaluable para llevar a feliz término la investigación. Finalmente, le doy mil gracias a Bruno y Becky, por haber apoyado a un padre con intenso trabajo en los últimos meses. Esta tesis nunca se hubiera terminado sin su generosidad y comprensión. Gracias a Dios.
HECTOR RICARDO HERNANDEZ DE LEON
. . : . . . . . . . . . . . ~
x ~- .. .I,. .. - F ~ .
V
RESUMEN
Se presenta un sistema digital que demuestra el desempeño del esquema de
encripción autentificado empleando el algoritmo de verificación compartida
en un sistema criptográfico, cuyo objetivo principal es proporcionar
seguridad en el acceso y transferencia electrónica de datos. La investigación
se integra a partir de la realización de un análisis completo de los
fundamentos matemáticos y su comprobación correspondiente mediante la
evaluación de los algoritmos propuestos en un sistema real.
Contenido vi
CONTENIDO
. . Agradecimientos ................................................................................. Resumen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . . , . . , . . , . . , . , , . . . . . . , . . . . . . . . , . . . Contenido.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . , . . , . . . . . . . . . , . . . . . . . . , . . Indice de Figuras ................................................................................ Indice de Tablas ................................................................................. Simbología.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . , Abreviaturas y acrónimos ................................................................... Esquema de encripción autentificado empleando verificación
Compartida.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliografía. . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anexos ..............................................................................................
Capítulo 1 INTRODUCCION ......................................................... 1.1 Antecedentes ................................................................... 1.2 Conceptos básicos sobre criptografía .... , . . , . . , . . , . . . , . . , . . . , , . . , .
Criptografía.. . . . . . . .. . . . . . . .. . .. . . . . . . . . . . . . . , . . .. . . . . . . . . . . . . . . . Criptosistema.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Criptoanálisis.. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . , . . . . . . .. . .. . . . . . . .. Seguridad.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Motivacion.. .. . .. . . . . .. . .. . .. . .. . .. . .. ... . .. . .. . .. . . . . .. .. . . .. . .. . .. . . . ......... 1.4 Enfoque ........................... ................................. .............. 1.5 Organización de esta Tesis .__.................. .........................
1.2.1 1.2.2 1.2.3 1.2.4
. .
. _
Capítulo 2 ESQUEMAS DE VERIFICACI~N COMPARTIDA.. ........... 2.1 Orígenes ......................................................................... 2.2 Definicion., . . , . . , . . . . . , . . . . . , . . , . . , . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2.3 Características de los esquemas de verificación
Compartida.. . . . . , . . , . . , . . , . . , . . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verificación compartida con trampa.. . .. . . . . . . . . . . . . . Verificación compartida sin el participante repartidor.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compartiendo una llave sin revelar porciones ... Llave secreta compartida verificable.. . . . . . . . . . . . . . . . Verificación compartida con prevención.. . . . . . . . . .
. . . _
2.3.1 2.3.2
2.3.3 2.3.4 2.3.5
iv
V
vi
xi
xii ...
xi11
xiv
1
86
89
1
1 3 3 3 5 5 6 8 8
10
10 11
11 11
12 12 12 12 -
.. . . - ... ... .
Contenido vii
2.3.6 Verificación compartida preposicionada ........... 13 2.3.7 Verificación compartida dinámica .................... 13 2.3.8 Esquema multisecreto ..................................... 13 2.3.9 Esquema de Umbral (t, n) ................................. 13 2.3.10 Verificación compartida anónima .................... 13
2.4 Algoritmos de verificación compartida ............................. 13 2.4.1 Interpolación polinomial de Lagrange ............... 14 2.4.2 Esquema Vector ............................................... 15 2.4.3 Esquema de Asmuth-Bloom ............................. 16 2.4.4 Esquema de Karnin-Greene-Hellman ............... 16
2.5 Tipos de esquemas de verificación compartida ................ 17 2.5.1 Esquema de firma con verificación
compartida de De Soete ................................... 17 2.5.2 Esquema de firma digital con verificación
compartida (t, n) de Harn ................................. 17 2.5.3 Esquema de verificación compartida de
Blundo y Stinson ............................................. 17 2.5.4 Esquema de verificación compartida con
técnicas geométricas de Stinson ....................... 17 2.5.5 Esquema de verificación compartida de Hsu y Wu 18
Capitulo 3 ANALISIS DE ALGORITMOS CRIPTOGRAFICOS ........... 19
3.1 Antecedentes ................................................................... 3.2 Números primos y relativamente primos ..........................
3.2.1 Divisores ........................................................... 3.2.2 Números primos ................................................ 3.2.3 Números relativamente primos ..........................
3.3 Aritmética modular .......................................................... 3.3.1 Módulo inverso ..................................................
3.4 Algoritmo de Euclides ....................................................... 3.5 Algoritmo extendido de Euclides ....................................... 3.6 Teorema de Euler ............................................................. 3.7 Teorema de Fermat .......................................................... 3.8 Teorema del resto Chino .................................................. 3.9 Campo finito (GF-Galois Field) .......................................... 3.1 O Exponenciacion ................................................................
3.10.1 Exponenciacion binaria básica ........................... 3.11 El problema del logaritdo discreto (DLP) ..........................
3.11.1 Logaritmos disuetos en un campo finito ............ 3.12 Factorizacion .................................................................... 3.13 Generación de números aleatorios ....................................
3.13.1 Generación de semillas ...................................... 3.13.2 Generación de números aleatorios .....................
3.14 Esquema (t, n) de Shamir .................................................. 3.15 Algoritmo de Diffie-Hellman .............................................
. . .
..
19 19 19 20 20 21 23 23 24 25 26 27 28 30 30 32 33 33 35 35 36 37 39
. . . . .. ~ . ~ .... I
Contenido viii
I I
3.16 Esquema de firma E l G a ~ a l .............................................
Capítulo 4 ESQUEMA DE VERIFIC~CIÓN COMPARTIDA (t. n) DE HSU y WU .............................................................. I
4.2.2 Registro ....... ...I ................................................. ................ ................................................. 4 . 1 Visión general I . . . 4.2 Descripcion .....................................................................
4.2.1 Inicialización del sistema ..................................
4.2.3 Encripción de ftrma .......................................... 4.2.4 Recuperación del Mensaje ................................
4.3 Ataques al criptosistema ................................................. 4.3.1 Ataque 1 ........................................................... 4.3.2
I 4.3.2 Ataque 3 .......... ! ................................................ 4.4 Análisis de comportamiedto .............................................
Ataque 2 .......... ! ................................................
I
Capítulo 5 DISEÑO E IMPLEMENTACIÓN I ..................................... .. 5.1 Introduccion
5.2 Descripcion general .......................................................... 5.3 Diagrama a bloques ......... ! ................................................ 5.4 Especificaciones ...............................................................
5.4.1 Especificaciones funcionales .............................. 5.4.1.1 De enlace y comunicaciones .................
5.4.1.3 Procesahiento ..................................... 5.4.2 Especificaciones (eléctricas .................................
5.4.2.1 Interfasd paralela ................................. 5.4.2.2 Interfasd serie .....................................
I .. 5.4.3 Especificaciones mecanicas ............................... 5.5 Módulo de interfase al bus/ .............................................. 5.6 Módulo de interfase paralela ............................................ 5.7 Módulo de interfase serie ... / .............................................. 5.8 El microcontrolador DS5000 ...........................................
5.8.1 Descripción del dS5000 .................................... 5.8.2 Descripción de tekminales .................................
. 1 . 5.8.3 Características tecnicas .................................... 5.8.4 Organización de 1A memoria ..............................
5.9 Diagrama general del circuitto .......................................... 5.10 Programación del microconirolador ..................................
5.10.1 Programación de ia interfase serie ..................... 5.10.2 Programación de ?a interfase al bus ................... 5.10.3 Programación de ia interfase paralela, visuali-
zación e implemerkación de los algoritmos de encripcion .......... ..I.. .........................................
. . .
. .
5.4.1.2 Seguridad ...........................................
.I
. . .
I
41
44
44 44 45 45 46 47 48 49 49 50 51
53
53 53 53 55 55 55 55 56 56 56 56 57 58 59 63 65 65 65 65 66 66 68 69 69
69
Contenido ix
Capítulo 6 ANALISIS DE RESULTADOS ......................................... 6.1 El sistema criptográfico .................................................... 6.2 Procedimiento de pruebas ................................................
6.2.1 Interfase al bus ................................................. 6.2.2 Interfase serie .................................................... 6.2.3 Visualizacion ..................................................... 6.2.4 Interfase paralela .............................................. 6.2.5 Desempeño general del sistema criptográfico ..... 6.2.6 Pruebas de algoritmos criptográficos ................. 6.2.7 Medición del tiempo y costo de comunicación
en los procesos de encripción de firma y recu- peración del mensaje del criptosistema .............
Capítulo 7 CONCLUSION ES .........................................................
..
7.1 Conclusiones generales .................................................... 7.1. I 7.1.2 7.1.3 Acerca del sistema digital (criptosistema) ........
7.2.1
Acerca del software generado ......................... Acerca de los algoritmos empleados ...............
7.2 Trabajos futuros .............................................................. Criptosistema con acceso a internet ...............
7.2.2 Criptosistema inalámbrico .............................. 7.3 Publicaciones ................................................................
. BIBLIOGRAFIA ............................................................................ ANEXOS ...................................................................................... ANEXO A
Bus ISA de 8 bits de la Computadora Personal ........................
ANEXO B Descripción de los archivos fuente y de programación del PLD (dispositivo lógico programable) ...................................
Archivo fuente Decodif.pds .............................................. Archivo de programación binaria Decodif.jed ...................
B . 1 B.2
ANEXO C El circuito periférico programable 8255 ....................................
C . 1 Definición del Modo 1 del 8255 e interfase con el Bus ...... C.2 Configuración en Modo 1 del 8255 como entrada de datos . (2.3 Configuración en Modo 1 del 8255 como salida de datos ..
72
72 72 73 73 74 74 74 75
77
80
80 80 81 82 83 83 84 85
86
89
89
90
90 92
94
94 95 96
~ . ~~ ....... - Contenido X
ANEXO D El microcontrolador DS5000 ............................ ,. ...................... 97
D. 1 Descripción de terminales del microcontrolador DS5000.. 97 D.2 Diagrama a bloques del microcontrolador DS5000.. ......... 98 D.3 Mapa de memoria del microcontrolador DS5000.. ............ 98
. . . . . , .:
__ + .
xi
INDICE DE FIGURAS
1.1 Superposición de mecanismos de control.. ............................... 1.2 Criptosistema simétrico y asimétrico ........................................ 3.1 La relación a = qn + r; O 5 r < n ............................................... 5.1 Diagrama a bloques del hardware del sistema criptográfico.. .... 5.2 Ubicación del hardware del sistema criptográfico en la
conexión de dos computadoras personales.. ............................ 5.3 Configuración de la interfase al Bus.. ....................................... 5.4(a) Interpretación del protocolo de transferencia de datos
a través de diagramas de tiempo en modo de entrada de datos ..................................................................................
5.4(b) Interpretación del protocolo de transferencia de datos a través de diagramas de tiempo en modo de salida de datos..
5.5 5.6
5.7
5.8
Circuito del módulo de interfase serie del Criptosistema .......... Diagrama general del Criptosistema.. ...................................... Módulos de Programación del Criptosistema.. .......................... Módulos y procedimientos del programa principal del Criptosistema.. ........................................................................ Diagrama de tiempos de la transmisión en paralelo entre la computadora personal y el criptosistema
6.1
presentado en el Analizador Lógico ...........................................
1 4
21
54
54
60
62
62
64
67 68
71
75
. . . . . . . . . . . . . . . . . . . . . . .
-. . .,<. -~
xii
3.1
3.2
3.3
3.4
3.5
3.6
3.7
5.1
5.2
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
7.1
INDICE DE TABLAS
Propiedades del operador módulo aritmético.. .......................... Algoritmo extendido de Euclides con entradas a = 4864 y b = 3458 ................................................................. Representación de los elementos del campo finito GF(23) usando como módulo x3 + x + 1 ...................................... Cálculo de W83 utilizando el algoritmo de exponenciación binaria de derecha a izquierda.. ...................... Arreglo 3 X 5 generado de la aplicación del algoritmo 3.4.. ...... Valores precalculados del paso 1 del algoritmo 3.4 ................. Valor final de A al final de cada iteración del paso 3 del algoritmo 3.4 ......................................................................... Mapa de memoria de dirección de dispositivos en la PC.. ....... Palabra de comando para el registro de control del 8255.. ..... Información del sistema de recursos de hardware de entrada/ salida.. ..................................................................... Mensajes de comunicación a la interfase serie ........................ Intercambio de llaves y transferencia de datos durante el proceso de encripcion ......................................................... Intercambio de llaves y transferencia de datos durante
Valores de encripción y decripción de mensajes de texto determinados con el criptosistema.. ....................................... Valores de tiempos de exponenciación modular (TE), multiplicación (TM), inversa (TI) y tamaño del archivo del texto cifrado del criptosistema.. ........................................ Valores de tiempos totales de encripción y recuperación del
Valores de tiempos totales de comunicación en bits en diferentes esquemas .......................................................... Tabla de resultados obtenidos por diversas compañías en sus criptosistemas. Los CPE son ciclos de reloj por encripcion de datos ...............................................................
. .,
el proceso de decripción .........................................................
mensaje en diferentes esquemas ............................................
. . .
22
25
29
31
32
32
32
58
70
73
73
76
76
77
78
78
78
82
xiii
SIMBOLOGÍA
K
KD KE
M C
P P
(04 t
n
Ax) ki
al b xmod y
T a-
4(n) GF(p) S
r TE TM
TI DO..D7
AO..A19
Llave Pública
Llave de Decripción
Llave de Decripción
Mensaje
Texto Cifrado
Número Primo
Grupo de Números Primos
Esquema Umbral
Participantes esquema umbral
Participantes esquema umbral
Función Polinomial
Porciones esquema umbral
b divisor de a Operación modular
Matriz
Elemento Inverso
Función de Euler
Campo Finito de Números Primos
Clave Secreta
Número Aleatorio Tiempo de cálculo de una operación de exponenciación Tiempo de cálculo de una operación modular
Tiempo de cálculo de una operación de exponenciación inversa
Bus de Datos de la Computadora Personal Bus de Direcciones de la Computadora Personal
I
xiv
NBS NIST
DES ANSI
DES
DEA
os1 RSA
DSS
ASCII
DLP
GF
NFS
QS ECM
FIPS
S A
DS PC CMOS I SA
TTL LCD PLD PALASM
ABREVIATURAS Y ACRÓNIMOS
Oficina Nacional de Estándares de los Estados Unidos
Instituto Nacional de Estándares y Tecnología Estándar de Encripción de Datos
Instituto Nacional Americano de Estándares
Estándar de Encriptamiento de Datos
Algoritmo de Encripción de Datos
Organización Internacional de Estándares
Acrónimo formado por las iniciales: Rivest-Shamir-Adellman
Esquema de Firma Digital
Código Estándar Americano para el Intercambio de Información
Problema del Logaritmo Discreto
Campo Finito
Tamiz de Campos Numéricos
Tamiz cuadrático
Método de Curva Elíptica
hblicación de Estándares de Pr
Estados Unidos de Norteamérica
Sistema de Autoridad
Empresa de Semiconductores Dallas
Computadora Personal
:S lien de Información de
Tecnología de Metal Oxido Semiconductor Complementario Bus Estándar Tecnología de Lógica de Transistor-Transistor
Desplegado de Cristal Líquido
Dispositivo de Lógica Programable Ensamblador de dispositivos de Arreglo Lógico Programable
JEDEC DIP RAM
ROM NVRAM
bPS Kbps
Mbps
CPE
FHSS
DSSS
SSL
Archivo binario para programar un circuito integrado PLD Circuito Integrado de doble línea Memoria de Acceso Aleatorio
Memoria de sólo Lectura Memoria RAM No-Volátil Bits por Segundo Kilo Bits por Segundo
Mega Bits por Segundo
Ciclos de reloj por Encripción de Datos
Módulo inalámbrico con tecnología de banda amplia de espectro
extendido con señal de salto
Módulo inalámbrico con tecnología de banda amplia de espectro
extendido de señal en secuencia directa
Capa de conexión segura
Introducción 1
Capítulo 1
1.1 Antecedentes En los sistemas electrónicos de seguridad actuales se buscan nuevas formas
para la solución de los problemas de protección de la confiabilidad,
integridad y disponibilidad de los componentes de un sistema de cómputo
[l]. En forma general, el problema de seguridad en las computadoras,
consiste en procesar las comunicaciones entre sus componentes principales:
Hardware, Software y Datos, de tal forma de que no estén expuestos a
diferentes ataques externos como interrupciones, intercepciones y modificaciones. En la figura 1.1 se muestra la superposición de mecanismos
DATOS
Restricciones de acceso a programas
Controles de acceso a archivos
Control de. lCceS0 Lógico
SOFTWARE
Figura 1.1 Superposición de mecanismos de control
introducción 2
de control en una aplicación de seguridad basada en microcomputadora. Los
controles de software deben ser lo suficientemente seguros para evitar
ataques externos mediante la implementación de restricciones de seguridad y acceso a los datos, orientado básicamente en la confiabilidad de los
programas internos y sistema operativo. Los controles de hardware son implementaciones de circuitos para establecer limitaciones de acceso a los recursos de una computadora y verificación de identidades de usuarios.
La Criptografía, cuya finalidad es transmitir mensajes cifrados de tal forma
que éstos no puedan ser interpretados por receptores no autorizados, es muy
utilizada debido a su gran variedad de aplicaciones. Dichas aplicaciones
están orientadas básicamente a aspectos de: Comunicación Segura,
Identificación, Verificación Compartida, Certificación, Recuperación,
Comercio Electrónico y Acceso Remoto, entre otros.
Los procesos de Encripción y Decripción como parte de la Criptografía,
contribuyen para que las computadoras tengan una comunicación segura. El
objetivo de la Encripción es la transformación de datos de tal forma que sea
imposible su lectura sin una información secreta apropiada (clave). La
Decripción, proceso inverso, es la transformación de los datos encriptados en
una forma entendible.
Los esquemas de verificación compartida fueron descubiertos por Blakley 121 y Shamir [3]. Comúnmente, existe una clave secreta que proporciona el
acceso al sistema de cómputo. Si esta clave se pierde, se interrumpe dicho acceso, por lo que la idea principal del esquema de verificación compartida es dividir la clave secreta en partes para que después pueda ser recuperada en forma conjunta por los propietarios de las partes. Existen nuevas técnicas
eficientes para implementar esquemas de verificación compartida aplicando funciones distribuidas polinomiales o aditivas [4].
Introducción 3
Un ejemplo de autentificación de la encripción empleando verificación
compartida es el esquema (t,n) de Hsu y W u [5]. En este esquema cualquier
texto cifrado de firma para un mensaje es direccionado a un grupo específico de verificadores de tal forma que la habilidad de descifrar la firma es
regulada por el esquema adoptado (t,n). Esto es, cualquier t de n verificadores en el grupo comparte la responsabilidad (o autoridad) para la
recuperación del mensaje. El esquema conserva el esquema de firma con
recuperación del mensaje y el esquema de verificación compartida (t,n).
1.2 Conceptos básicos sobre Criptografia 1.2.1 Criptografia Este término proviene de las palabras kryptos, que significa oculto, y
graphos, que significa escritura, y su definición es: "Arte de escribir con clave
secreta". El concepto actual de criprtografia es un conglomerado de técnicas
que tratan sobre la protección de la información. Entre las disciplinas que
engloba destacan la teoría de la información, la teoría de números o
matemáticas discretas y la complejidad algorítmica. Los dos documentos
fundamentales que sirven como base para la criptografía moderna, son:
"Teoría matemática de la comunicación" por Claude Shannon en 1948 y el
trabajo donde se introduce el concepto de criptografía de clave pública,
publicado por Whitfield Diffie en 1975.
1.2.2 Criptosistema En forma general, existen dos tipos de Criptosistemas: de Llave Secreta o Simétrica (misma llave de encripción y decripción) y de Llave Pública o Asimétrica (la encripción se ejecuta con la llave pública y la decripción con la llave secreta). Si el mensaje original a transmitir M es una secuencia de caracteres individuales
M = (m, ,mi ,..., m,)
Introducción 4
y en forma similar el texto cifrado se escribe como
c = (e, > >. ..,e,, 1 Las transformaciones entre el mensaje original y el texto cifrado pueden
escribirse c = E ( M ) y M = D(C)
donde C representa el texto cifrado, E el algoritmo de encripción, M el
mensaje original y D el algoritmo de decripción. Evidentemente, un Criptosistema puede ser representado así
M = D(E(P)) .
Algunos algoritmos de encripción utilizan una llave K, de tal manera que el
texto cifrado depende tanto del mensaje original como del valor de la llave.
Esto se representa como
c = E ( K , M)
donde E es un conjunto de algoritmos de encripción y K es la llave que
selecciona un algoritmo especifico.
I K
M=D(K.E(K.M))
Dccripuon M >
Figura 1.2 Criptosistema simétrico y asimétrico
Introducción 5
Cuando las llaves de encripción y decripción son iguales, se tiene un
Criptosistema Simétrico, y se representa como M = D ( K , E (K ,M) )
Cuando la llave de decripción KD invierte la encripción de la llave KE, el
Criptosistema es Asimétrico y se representa como
M = (K,,E(K,, MI)
En la figura 1.2 se muestran los criptosistemas simétrico y asimétrico.
1.2.3 Criptoanálisis
Consiste en analizar la seguridad de un criptosistema. Esto significa que un
mensaje puede ser descifrado sin el conocimiento de la llave. No se considera
criptoanálisis el descubrimiento de un algoritmo secreto de cifrado. Algunos
métodos de criptoanálisis [6] son el análisis diferencial, análisis lineal y deducción de llaves. El primero, estudia las variaciones que existen entre los
mensajes cifrados, tratando de identificar patrones comunes. El segundo
emplea operaciones XOR entre algunos bits del mensaje y algunos bits del
texto cifrado, obteniendo finalmente un único bit. La tercera, aplicada a los
algoritmos simétricos, consiste en deducir la llave privada a partir de la
pública.
Los sistemas idealmente seguros, capaces de resistir cualquier ataque, en la
práctica carecen de interés, debido al compromiso que se tiene que adoptar
entre el costo computacional del sistema y su resistencia a los diferentes
ataques criptográficos.
1.2.4 Seguridad Consiste en asegurar la confidencialidad, integridad y disponibilidad de los componentes de un sistema de cómputo en una red de comunicaciones, mediante la protección a los datos tanto en el nivel físico como en el lógico.
~
Introducción 6
Una clasificación sería de la siguiente forma:
i)
ii)
iii)
iv)
Seguridad física. Son los aspectos relacionados con la restricción
de acceso físico a las computadoras. Seguridad de la información. Es la adopción de un criptosistema
para la protección de la información. Seguridad del canal de comunicación. Los canales de
comunicación rara vez se consideran seguros. Debido a que
pertenece a terceros su control y por esto, resulta imposible asegurarse de que no esté siendo intervenido.
Autentificación. Debido a los problemas del canal de
comunicación, es necesario asegurar la legitimidad de la
información desde su origen hasta su destino.
1.3 Motivación El mundo actual se encuentra inmerso en el cambio hacia una sociedad de
información. En un reciente estudio Dataquest [7] reporta que al final del
año 2001 habrá 268 millones computadoras conectadas a Internet. Este gran
crecimiento ha acelerado los procedimientos de seguridad en los sistemas de
información y comunicaciones, en áreas como telefonía y comercio
electrónico, por nombrar algunos. La herramienta actual para alcanzar la
seguridad deseada es la criptografía. Durante la primera guerra mundial, la criptografía alcanza una gran importancia por necesidades de
comunicaciones del ejército, por lo que su dominio era exclusivo de éstos. En
1972, la Oficina Nacional de Estándares (NBS) de los Estados Unidos, ahora el Instituto Nacional de Estándares y Tecnología (NIST), se preocupó por las amenazas potenciales a las computadoras y comunicaciones de datos [8]. Ellos iniciaron un programa para desarrollar un algoritmo de encripción
estandarizado. En 1976, el Estándar de Encripción de Datos (DES) fue liberado. Desde entonces, fue aprobado por el Instituto Nacional Americano de Estándares (ANSI) con la clave ANSI X3.92 y renombrado como Algoritmo
Introducción 7
de Encripción de Datos (DEA) por la Organización Internacional de
Estándares (ISO). DES es revisado cada 5 años y actualmente es el más
utilizado en criptosistemas de llave privada, por ejemplo, el desarrollo del
protocolo de la capa de conexión segura (SSL). Durante los últimos 25 años 191, la investigación en criptografía se ha incrementado, de tal manera que
actualmente su desarrollo se realiza en empresas privadas, instituciones
educativas y centros de investigación.
Para la implementación de un sistema de seguridad se requiere integrar un
cierto número de algoritmos, tanto los basados en llave pública como los
basados en llave privada. Esto por software puede resultar relativamente
fácil, pero por hardware se dificulta. El diseño por hardware proporciona al criptosistema una mejor velocidad de proceso e incrementa su seguridad en
la parte física. La solución por hardware puede ser implementada mediante
la utilización de circuitos integrados reconfigurables basados en
microprocesadores programables. Estos circuitos pueden ser grabados con
diferentes algoritmos de encripción, con lo cual el criptosistema puede tener
las siguientes ventajas:
i)
ii)
Mayor rapidez de ejecución del algoritmo de encripción Reprogramación y modificación en línea de parámetros de los
algoritmos
iii) Soporte de diferentes algoritmos
Actualmente, existen pocos reportes de implementaciones físicas de Sistemas Criptográficos. En esta Tesis Se presenta el diseño de un sistema digital basado en un microprocesador orientado a seguridad en cómputo que
demuestra el desempeño del esquema de encripción autentificado empleando el algoritmo de verificación compartida, cuyo objetivo principal es proporcionar seguridad en el acceso y transferencia de información en computadoras.
8 Introducción
1.4 Enfoque La aportación principal de esta tesis es proporcionar la fundamentación
teórica básica y la implementación del sistema digital que demuestra la funcionalidad y desempeño del esquema propuesto de encripción
autentificado empleando verificación compartida, con lo cual se obtienen los siguientes beneficios:
i)
ii)
iii)
iv)
VI
Análisis de la teoría básica de la implementación de los
diferentes esquemas de encripción autentificado empleando
verificación compartida.
Demostración de la factibilidad del esquema propuesto por Hsu y Wu, así como la obtención de resultados experimentales del
desempeño del algoritmo propuesto.
Desarrollo del Hardware y Software que explote el sistema digital
basado en microprocesador y permita el análisis de los
resultados de la evaluación del esquema de encripción de Hsu y
wu. Promover el estudio y desarrollo de los esquemas criptográficos
de encripción y verificación compartida ya que actualmente se
encuentran en un área sumamente activa de investigación.
Publicar los resultados obtenidos en revistas de prestigio
especializadas en el área y participar en foros académicos.
1.5 Organización de esta Tesis La presente Tesis es el resultado de una amplia investigación sobre Criptografía, área que ya se ha convertido en ciencia y cuyos avances han
impulsado el estudio de diversas técnicas y metodologias de investigación. Esta se divide en 7 capítulos y 2 anexos.
Introducción 9
Capítulo 1: Presenta una introducción al tema, enfoque y descripción por
capítulos.
Capítulo 2: Describe las características de los diferentes esquemas de encripción de verificación compartida y los elementos involucrados en ellos, así como el análisis de las tendencias actuales.
Capítulo 3: Debido a que el esquema de Hsu y Wu es una integración de
ideas de diseño, en este capítulo se proporciona la fundamentación teórica de los algoritmos empleados en dicho esquema. Se presentan, también, tres
estrategias de ataque al criptosistema, realizando el análisis correspondiente
a cada uno de ellos.
Capítulo 4: Define los elementos que caracterizan el esquema de encripción
autentificado empleando verificación compartida de Hsu y Wu, en cuanto a sus características generales, descripción y seguridad, de tal forma que lo
convierte en una opción segura y confiable en la actualidad.
Capítulo 5: Define el diseño e implementación del criptosistema en detalle ofreciendo ejemplos de cómo encriptar eficientemente.
Capítulo 6: Presenta lo resultados de la implementación del esquema y se
comparan con algunos criptosistemas existentes mediante análisis técnico.
Capítulo 7: Concluye con la presentación de un resumen de los éxitos
logrados y las limitaciones del prototipo con respecto a otros trabajos
institucionales. Se mencionan, también, las áreas abiertas de investigación, los trabajos futuros en el área y las publicaciones realizadas de esta Tesis.
Esquemas de Verificación Compartida 10
Capítulo 2
ESQUEMAS DE VERIFICACIÓN COMPARTIDA
En un banco[lO], existe una bóveda la cual debe ser abierta cada día. Dicho
banco emplea cuatro cajeros de alto rango a quienes se les da a conocer una
combinación individual de acceso a la bóveda. Con este escenario, se desea
un sistema en donde cualquiera de tres de los cuatro cajeros puedan accesar
a las diferentes combinaciones y lograr la apertura de la bóveda, y que
individualmente sea imposible.
La idea de secreto compartido es la división de éste en porciones que son
distribuidos entre los participantes de manera tal que las porciones
agrupadas en subconjuntos específicos de participantes permiten la reconstrucción del mensaje o llave secreta original. La apertura de la bóveda
del banco sería un esquema de umbral (3,4), en el cual el Gerente puede
dividir la llave confidencial entre Alicia, Bruno, Cesar y David, de tal manera
que cualquiera de tres de ellos pueda contribuir con sus porciones y
reconstruir la llave para abrir la bóveda del banco.
2.1 Orígenes Las ideas de los esquemas de verificación compartida fueron inventadas, en forma independiente por George Blakley y Adi Shamir en 1979[3]. Aquí, existe una llave secreta que proporciona el acceso al sistema de cómputo. Si
esta llave se pierde, se interrumpe dicho acceso, por lo que la idea principal del esquema de verificación compartida es dividir la llave secreta en porciones para que después pueda ser recuperada en forma conjunta por los propietarios de las porciones.
Esquemas de Verificación Compartida 11
2.2 Definición Definición 2.1 Esquema umbral (t,n)
“Si t,n son números enteros positivos, t < n. U n esquema de umbral (t,n) es
un método que comparte una llave secreta K entre un grupo de participantes
G, de tal manera que cualquiera de t participantes pueda calcular el valor de
K, y un grupo de t-1 participantes no lo pueda hacer”.
El valor de K es seleccionado por un participante especial llamado repartidor.
Este repartidor se le denota como D y se supone que D o G. Cuando D quiere
compartir la llave K entre el grupo de participantes G, les da a cada uno una
información parcial llamada porción. Estas porciones deben ser distribuidas
en secreto, de tal manera que ningún participante conozca la porción
determinada de otro participante.
2.3 Características de los esquemas de verificación compartida
Existen diferentes algoritmos aplicados según la variedad de condiciones que
se presentan en el esquema de verificación compartida. Para diferentes
condiciones existen sus algoritmos correspondientes, las cuales definen el
tipo de esquema de verificación compartida a usar. Algunas de las
condiciones a analizar [ 111 son las siguientes:
2.3.1 Verificación compartida con trampa Puede presentarse en dos escenarios:
i) Cuando uno de los participantes introduce su porción
incorrectamente, lo cual provoca que la llave secreta sea recuperada con error. Los otros participantes no pueden probar
cual-porción fue introducida con error
8 1 - 0 3 4 5
Esouemas de Verificación Comoartida 12
ii) Cuando una persona adicional se hace pasar por participante y
de alguna forma llega a conocer las porciones de los reales participantes, con lo cual obtiene la información necesaria para reconstruir la llave secreta.
2.3.2 Verificación compartida sin el participante repartidor Se presenta cuando no existe la persona que conoce la llave secreta
completa, por lo que todos los participantes pueden crear la llave secreta y
cada uno obtener una porción, tal que ninguno de los mismos conoce la llave
secreta hasta que todos ellos la reconstruyen.
2.3.3 Compartiendo una llave secreta sin revelar las porciones
Debido al problema que presentan los esquemas de verificación compartida
en cuanto a que los participantes revelan las porciones de la llave secreta,
esta condición permite que cada participante firme su porción mediante una
llave privada. Para recuperar la llave secreta se integra la enésima firma
parcial, con lo cual el documento se ha firmado con la llave privada
compartida y ninguno de los participantes conocerá las porciones
individuales.
2.3.4 Llave secreta compartida verificable
Se presenta cuando existe un error en la repartición de las porciones. Esta
condición permite a cada participante verificar individualmente que ha
recibido una porción válida, sin la necesidad de la reconstrucción de la llave secreta.
2.3.5 Verificación compartida con prevención Se presenta cuando se le adiciona a los participantes la restricción de que exista una cierta prevención en la realización de la reconstrucción de la llave
secreta.
Esquemas de Verificación Compartida 13
2.3.6 Verificación compartida preposicionada Cuando toda la información secreta es repartida, exceptuando una porción
simple, la cual se utiliza para activar el esquema.
2.3.7 Verificación compartida dinámica Se presenta cuando la llave secreta es modificada por los participantes
autorizados.
2.3.8 Esquema multisecreto Cuando diferentes llaves secretas se asocian con diferentes participantes
autorizados.
2.3.9 Esquema de umbral (t ,n) Método por el cual la llave secreta es repartida a cada uno de los
participantes, bajo las siguientes propiedades:
i) Cualquier de t de los n participantes puede recuperar la llave
secreta
Cualquier t-1 participantes no puede recuperar la llave secreta ii)
2.3.10 Verificación compartida anónima
Se basa en reconstrucción de la llave secreta sin el conocimiento de las
identidades de los participantes. El cálculo se lleva a cabo dando las partes
de la llave a una caja negra que no conoce las identidades de los participantes.
2.4 Algoritmos de verificación compartida De acuerdo con las diferentes características y condiciones de los esquemas de verificación compartida presentadas arriba, a continuación se presentan
cuatro diferentes algoritmos que siguen una estructura teórica general de la
mayoría de los casos.
Esquemas de Verificación Compartida 14
2.4.1 Interpolación polinomial de Lagrange Adi Shamir utiliza ecuaciones polinomiales en un campo finito para construir un esquema de umbral [ i l l . Se selecciona un número primo, p , el cual es
más grande tanto del número posible de porciones como del valor máximo posible de la llave secreta. Para repartir la llave secreta, se genera un polinomio arbitrario de grado t- 1. Por ejemplo, para un esquema de umbral
(3,n), se genera una ecuación polinomial cuadrática de la forma,
(a2 + b x + M ) m o d p
donde p es un número primo aleatorio cuyo valor es más grande que
cualquiera de los coeficientes a y b, los cuales, a su vez, son aleatoriamente
seleccionados. Estos son guardados en secreto y descartados después de que
las porciones son repartidas. Mes el mensaje. El número primo p deberá ser
convertido en público.
Las porciones se obtienen mediante la evaluación del polinomio en n
diferentes puntos,
k, = f (x, 1 En otras palabras, la primera porción es el valor del polinomio evaluado en
x= 1, la segunda porción en x=2, y así sucesivamente.
Puesto que el polinomio cuadrático tiene tres coeficientes desconocidos,
(a ,b ,M) , cualquiera de las tres porciones pueden ser usadas para crear tres
ecuaciones. Con una o dos porciones no se podria y con 4 ó 5 habría redundancia.
Por ejemplo, con M=ll la construcción de un esquema de verificación
compartida (3,5), permite que cualquiera de 3 de los 5 participantes pueda
reconstruir M. Con el siguiente procedimiento,
i) Generar la ecuación cuadrática con valores aleatorios de coeficientes (a=7, b=8), con lo cual se obtiene,
15 Esquemas de Verificación Compartida
f ( x ) =(7x2 + 8x + 11)mod13
ii) Determinar las cinco porciones, k, = f(1) = 7 + 8 + 11 = O(mod13)
k, = f ( 2 ) = 28 + 16 + 11 = 3(mod13)
k, = f(3) = 63 + 24 + 11 = 7(mod13)
k, = f ( 4 ) = 1 12 + 32 + 1 1 = 12(mod 13)
k, = f ( 5 ) = 175 + 40 + 11 = S(mod13)
iii) Reconstruir M a partir de tres de las porciones (K2, K3 y a). Hay que resolver el siguiente grupo de ecuaciones lineales,
a * 22 + b * 2 + M = 3 (mod 13) a * 3 2 + b * 3 + M = 7 (mod 13)
a * 52+ b * 5 + M = 5 (mod 13)
la solución es:
a = 7 , b = € i y M = l l
Así, se recupera M=l 1.
Para un esquema mayor, (6,30), el polinomio de grado 6,
f ( x ) = ( a x 6 +bx5 +cx4 +dx3 + e x 2 + f x + M ) m o d p
tendría que resolverse para encontrar las 6 incógnitas incluyendo
M.
2.4.2 Esquema Vector
George Blakley inventó un esquema usando puntos en el-espacio [ll]. El
mensaje se define como un punto en el espacio t-dimensional. Cada porción es la ecuación de un hiperplano (t-1)-dimensional que incluye el punto. La
intersección de cualquier t del hiperplano determina exactamente el punto.
Por ejemplo, si tres porciones son requeridas para reconstruir el mensaje, entonces se tendría un punto en un espacio tridimensional. Cada porción se encuentra en un plano diferente. Con una porción, el punto se localiza en
algún lugar sobre el plano. Con dos porciones, el punto se localiza sobre la
16 Esquemas de Verificación Compartida
línea formada cuando los dos planos se interceptan. Con tres porciones, se
puede determinar el punto exactamente por medio de la intersección de los
tres planos.
2.4.3 Esquema de Asmuth-Bloom Este esquema utiliza números primos [ill. Para un esquema de umbral (t,n), se selecciona un número primo grande p , mayor que M. Luego, se
seleccionan n números menores que p , di, dz, ..., dn, de tal manera que:
i)
ii)
Los valores de d están en orden creciente d, < d,,,
Cada d, es relativamente primo a cada uno de los otros di
iii) d, * d, * ... * d, > p * dn-r+2 * dn-r+3 * ... * d,
Para distribuir las porciones, primero se selecciona un valor aleatorio de r y
se calcula, M'= M + rp
Las porciones, k , son,
k, = M'modd,
Cualquiera de t porciones puede ser reunida para reconstruir M usando el
teorema del resto Chino (Ver sección 3.8), pero con cualquier t - 1 no se
podria.
2.4.4 Esquema de Karnin-Greene-Hellman
Este esquema utiliza multiplicación de matrices [ill. Se seleccionan n + 1
vectores t-dimensionales, Vo, Vi, ..., Vn, tales que cualquier matriz posible t * t formada fuera de estos vectores tiene un rango t. El vector U tiene un vector
renglón de dimensión t + 1.
T es la matriz producto donde i es un número entre 1 y n.
U * VO. Las porciones son los productos U * vi,
17 Esquemas de Verificación Compartida
Cualquiera de las porciones t pueden ser utilizadas para resolver el sistema lineal de ecuaciones t * t, donde lo desconocido son los coeficientes de U. LOS VVo pueden ser calculados desde U. Cualquier t - 1 porciones impide
resolver el sistema de ecuaciones lineales, por lo que no es posible recuperar el secreto.
2.5 Tipos de esquemas de verificación compartida 2.5.1 Esquema de firma con verificación compartida de De Soete [12] Se basa en la utilización de cuadrángulos generalizados y cajas seguras por parte de los verificadores de firma.
2.5.2 Esquema de firma digital con verificación compartida (t,n) de Harn
1131 Se basa en la dificultad del cálculo del logaritmo discreto en el cual se
habilita a cualquier t de n verificadores para comprobar la validez de la firma.
2.5.3 Esquema de verificación compartida anónimo de Blundo y Stinson
1141 Se basa en reconstrucción de la llave secreta sin el conocimiento de las
identidades de los participantes. El cálculo se lleva a cabo dando las partes
de la llave a una caja negra que no conoce las identidades de los
participantes.
2.5.4 Esquema de verificación compartida con técnicas geométricas de
Se basa en la descomposición de construcciones para un esquema de
verificación compartida perfecto. Para cualquier gráfico G de grado máximo d, existe un esquema de verificación compartida perfecto de G con una tasa de información de 2 l(d + 1) .
Stinson [15]
18 Esquemas de Verificación Compartida
2.5.5 Esquema de verificación compartida de Hsu y WU [5]
Cualquier texto cifrado de firma para un mensaje es direccionado a un grupo específico de verificadores de tal forma que el decifrado de dicha firma es
regulado por el esquema (f,n). Esto es, cualquier t de n verificadores en el grupo comparte la responsabilidad (o autoridad) para la recuperación del mensaje.
Este esquema integra con éxito las ideas de diseno tanto del esquema de
firma con recuperación del mensaje, como del esquema (t,n) y se presenta
como uno nuevo que realiza las funciones de encripción, autentificación y verificación compartida.
19 Análisis de Algoritmos Criptográficos
Capítulo 3
ANALISIS DE ALGORITMOS CFUPTOGRÁFICOS
3.1 Antecedentes En los últimos años las mejoras a los criptosistemas se han dado
principalmente en el área de los circuitos integrados, mediante la aplicación
de técnicas que permiten mayores velocidades de operación y reducción del
circuito[ló], sin embargo, muy poco se ha avanzado en mejorar los
algoritmos y su eficiencia[l7,18], así como, su reducción en costo e
incremento de su desempefio.
En este capítulo se explicará en detalle los algoritmos empleados para
evaluar e implementar el criptosistema de verificación compartida,. que
emplea el esquema propuesto por Hsu y Wu. Al mismo tiempo, se expondrán
las características básicas de los algoritmos que son factibles de mejorar el
prototipo realizado en esta tesis, tomando en cuenta características de: Reducción de operaciones, simplificación del control, reducción de
almacenamiento y adaptabilidad del circuito basado en microprocesador.
Por lo mismo, es factible la perfección de los algoritmos en este trabajo y será
hasta el final del capítulo cuando se definan las tendencias adecuadas para su mejoramiento.
3.2 Números primos y relativamente primos 3.2.1 Divisores Definición 3.1 Número divisor
20 Análisis de Algoritmos Criptográficos
“Se dice que b ie O divide a a si a = mb, donde a,b y m son enteros. Esto es, b divide a a si no existe residuo en la división”.
La notación ulb es comúnmente utilizada y significa que b es un divisor de a.
Por ejemplo, los divisores positivos de 24 son 1, 2 , 3, 4, 6, 8, 12 y 24.
3.2.2 Números primos
Un entero p > 1 es un número primo si sus divisores son únicamente kl y
*p.
Cualquier entero a > 1 puede ser factorizado de manera única como
a = pp’ p p ...pp‘
Donde pi > pz > ... > pt son números primos. Cada ai es mayor que O.
Ejemplo 3.1
91 = 7 * 13; y 11011 = 7 * 112 * 13.
También, cualquier entero positivo puede ser escrito de la siguiente forma:
donde P es un grupo de números primos y cada a, 2 O. El lado derecho de
esta relación es el producto de todos los p números primos posibles, para
cualquier valor de a, la mayoría de los exponentes a, serán O. Por ejemplo,
3600 = 24 * 32 * 52.
3.2.3 Números relativamente primos
Dos números son relativamente primos cuando no comparten ningún factor en común mas que otro valor que no sea 1. En otras palabras el máximo común divisor (mcd) de a y b es igual a 1.
21 Análisis de Algoritmos CriptOgráfiCOS
I 3.3 Aritmética modular La criptografía utiliza considerablemente qperaciones de módulo[ll], debido a la facilidad de manejo en computadoras. Para una operación de k-bit módulo n, los resultados intermediod de cualquier suma, resta O
multiplicación no tendrán más allá de 2k-bits de longitud.
I
I I
I . I I
Definición 3.2 Operación modular I I “Dado cualquier número entero positivo y.cualquier número entero a, si se
divide a entre n, se obtiene un cocientejq y un residuo r que obedece a la
siguiente relación: i I
a = q n + r O + r < n; q = l a / n J i
donde 1x1 es el entero más grande menot o igual a Y. I I
I I En la figura 3.1 [19] se demuestra que, dado a y el positivo n, siempre es
posible encontrar q y r que satisfagan la! relación anterior. Representando los
enteros sobre la linea; a caerá en algún lugar sobre la línea. Iniciando en O,
precedido de n, 2n hasta qn de tal manera que qn 2 a y (q + 1)n > a. La distancia de qn a a es r y se encuentrah los valores únicos de q y r.
I I
I
I
I
1
t l I I 3n I 7*lln
I 2n n
I I I I I I ‘ i w
r I
I
o 1 2
1 Figura 3.1 La relación; a = qn + T, 0 5 <
I Si a es un entero y n un entero positivo, se define a mod n como el residuo cuando a es dividido por n. De este mddo, para cualquier entero a,
I a = [a / n] *:n + ( a mod n)
22 Análisis de Algontmos Criptográficos
Ejemplo 3.2 1 1 m o d 7 = 4 ; - 1 1 m o d 7 = 3 .
Los dos enteros a y b son congruentes con el módulo n si (a mod n) = (b mod n). Relación que se escribe
Notar que si a = O mod n, entonces nl a
a = bmod n
Ejemplo 3.3 73 = 4 mod 23; 2 1 ~ - 9 mod 10.
La tabla 3.1 muestra las propiedades del operador módulo.
Propiedad
De equivalencia
Conmutativa
Asociativa
Distributiva
identidades
inverso aditivo (-a) [nverso multiplicativo :a-1)
Expresión
a r b m o d n si nl(a-b)
(a mod n) = (b mod n)
a = b mod n
a - bmodn Y b = c m o d n imp 1 i c a a- c m o d n
implica a E b mod n
implica b = a mod n
(a + b ) mod n = (b + a) mod n (a * b)modn = ( b * a)modn
[(a + b) + clmodn =[a + (b + c)]modn [(a * b ) * c]mod n = [a * (b * c)]mod n
[u * (b * c)]modn = [(a * b ) * (a * c)]modn
(O + a)mod n = amod n (1 * a) mod n = a mod n
Para cada a E Z n , existe z tal que u + z - Omodn
Para cada a E Zp, existe z tal que a*z=lmodp
Tabla 3.1 Propiedades del operador módulo aritmético
~. ~~
23 Análisis de Algontmos Criptográficos
3.3.1 Módulo inverso Definición 3.3 Elemento inverso de un número El elemento inverso de un número a módulo n, es aquel que multiplicado por el primero y dividido el resultado entre n, resulta de residuo 1. El problema general es encontrar una x tal que
1 = (ax) mod n
Esto también se puede escribir como
a-' = x(mod n)
Ejemplo 3.4
24 es el inverso de 17 módulo 37, porque
24*17=1 (mod 37). Para comprobarlo, se determina:
24* 17=408 y 408= 1 1*37+ 1. Para calcular el inverso se utiliza el algoritmo extendido de Euclides (Ver
sección 3.5).
3.4 Algoritmo de Euclides Permite calcular el máximo común divisor (mcd) de dos números. Se basa en
el hecho siguiente: Si a y b son enteros positivos con a > b, entonces
mcd(a,b) = mcd(b,a mod b).
Algoritmo 3.1[20]
Entrada: Dos enteros a y b, a 2 b
Salida: Máximo común divisor de a y b 1. Mientras b f O hacer lo siguiente:
1.1 Asignar r t amod b, a t b, b t r 2. Regresar (a)
Ejemplo 3.5 El procedimiento de cálculo en la obtención de mcd(4864,3458) es:
24 Análisis de Algoritmos Criptográficos
4864 = 1*3458 + 1406 3458 = 2*1406 +646 1406 = 2*646 + 114 646 = 5*114 + 76 114 = 1*76 + 38 76 = 2*38 + O
3.5 Algoritmo extendido de Euclides Este algoritmo se utiliza en la etapa generadora de llaves. La función
principal es encontrar el máximo común divisor (mcd) de dos números enteros positivos. Si el mcd(a,b) = 1, entonces a tiene un inverso
multiplicativo módulo b. Esto es, para un entero positivo a > b, existe un a-1
< b tal que a*a-I = 1 mod b. Este algoritmo puede extenderse de tal manera
que, además de encontrar el mcd(a,b), regrese el inverso rnultiplicativo de a.
Algoritmo 3.2[20]
Entrada: Dos enteros a y b, a 2 b
Salida: d = mcd(a, b) y dos enteros x , y que satisfacen ax + by = d
1.
2.
3.
Si b = O entonces asignar d t a, x t ] , y t O y regresar (d, x, y)
Asignar x, t l , x , t O, y 2 t O, y , t l
Mientras b > O hacer lo siguiente
3.1 q e l a l b J r t a -qb,x t x2 - qx,, y t y , - qy,
3.2 a t b , b t r , x 2 + - X ~ , X ~ t x , y , t y , , y i + y
Asignar d c a, x t x2, y t y , y regresar (d, x, y ) 4.
La tabla 3.2[20], muestra un ejemplo de cálculo tomando en cuenta el algoritmo extendido de Euclides, con entradas a = 4864 y b = 3458. Aquí el mcd(4864,3458) = 38 y (4864)(32) + (3458)(-45) = 38.
2 5 Análisis de Algoritmos Criptográficos
Tabla 3.2 Algoritmo extendido de Euclides con entradas a = 4864 y b = 3458
3.6 Teorema de Euler [6,11,20]
Se le llamará conjunto reducido de residuos módulo n al conjunto de
números primos relacionados con n. Es decir, a todos los números que tienen inversa módulo n.
Ejemplo 3.6 Si n=12, su conjunto reducido de residuos es:
{1,5,7,11} La función de Euler &n) es el número de elementos en el conjunto reducido
de residuos módulo n.
Definición 3.4 Grupo multiplicativo[2O]
“El grupo multiplicativo de Z, es Z,’ = {a E Znlmcd(a,n) =I} . En particular, si n
es primo, entonces z,’ = {ali 5 a s n - 1))” ’
Definición 3.5 Función de Euler
“La función de Euler #(u) denota el número de enteros en el intervalo [l, n] los
cuales son relativamente primos a n”.
~
26 Análisis de Algoritmos Criptográficos
Propiedades de la función de Euler:
i)
ii) Si mcd(m, n) = 1, entonces #(mn) = #(m) * #(n) . (Función
Si p es primo, entonces # ( p ) = p - 1.
multiplicativa) i i e2 E3 iii) Si n = pi p 2 ...p3 es la factorización prima de n, entonces
# ( n ) = n 1-- I - - ... 1-- [ j21 ( P k l Definición 3.6 Orden de un número
" / Z : / es el orden de Z i y contiene el número de elementos en 2; . De la
definición de la función de Euler 12: 1 = #(n) "
Teorema 3.1 Teorema de Euler
Si n 2 2 es un entero:
i)
ii) Si n es un producto de primos distintos y r=s(mod#(n)) ,
entonces a'=a'(modn) para todos los enteros a. En otras
palabras, al trabajar con módulo n, los exponentes pueden ser
reducidos a módulo #(n) .
Si u E 2,: entonces am(") = l(mod n)
Un caso especial del teorema de Euler es el teorema de Fermat (ver sección
3.7).
3.7 Teorema de Fermat Teorema 3.2 S i p es primo:
i) Si mcd(a,p) = 1, entonces
Fermat)
up-' = - l(mod p ) (teorema pequefio de
~
27 Análisis de Algoritmos Criptograficos
ii) Si r =s(modp- I ) , entonces a' -a"(modp) para todos los enteros
a. En otras palabras, al trabajar con módulo primo p , los exponentes pueden ser reducidos a módulo p - 1.
En particular, a p =a(modp) para todos los enteros a. iii)
De acuerdo a la generalización de Euler del teorema pequeño de Fermat, si
mcd(a,n) = 1, entonces a m ( " ) m o d n = l . Con esto se facilita el cálculo de
u-' modn , que sería, x = a@("-' modn .
Ejemplo 3.7 Si se desea calcular el inverso de 5 módulo 7, se realiza lo siguiente:
Como 7 es primo,
4(7) = 7 - 1 = 6 ,
El inverso de 5 módulo 7 es:
S6-' mod 7 = 55 mod 7 = 3
Para calcular inversos, ambos métodos pueden ser extendidos en un problema más general (si mcd(a,n)=l).
Utilizando el teorema de Euler, la solución es: x = (b * aQ("-' )mod n
Utilizando el algoritmo de Euclides, la solución es: x = (b * (a-' mod n)) mod n
En general, el algoritmo de Euclides es más rápido que el teorema de Euler para el cálculo de inversos, especialmente en rangos de 500 bits.
3.8 Teorema del resto Chino[ii] Si se conoce la factorización en números primos de n, entonces se puede utilizar este teorema para resolver un sistema de ecuaciones.
28 Análisis de Algoritmos Criptográflcos
En general, la factorización en números primos de n es: pi*pz* ...p, entonces
el sistema de ecuaciones
(x mod p , ) = u, donde i= 1,2,.. . , t
tiene una solución única x, donde x es menor que n. En otras palabras, un número es identificado en forma singular por sus residuos módulo esos primos.
Ejemplo 3.8 Utilizando 3 y 5 como números primos y 14 como el número x
14 mod 3 = 2 y 14 mod 5 = 4.
Existe únicamente un número menor que 3*5 = 15 el cual tiene el residuo
14. Los dos residuos determinan el número en forma singular.
Así, para un número arbitrario a < p y b < q (p,q primos), existe un valor
único de x (menor que p*q), tal que x = a(mod p ) y x = b(mod q )
3.9 Campo Finito (GF-Galois Field)pi] Un campo finito, también llamado Galois Field GF, es un campo con un
orden finito (número de elementos). El orden de un campo finito siempre es
un número primo o potencia de un número primo. Por cada potencia de un
número primo, existe exactamente un campo finito G F ( p ” ) , comúnmente
escrito como F p n ,
Definición 3.7 Campo finito
“Gm) es llamado campo de números primos de orden p y es el campo de residuos módulo p , donde a los p elementos se les llama por O, 1 ,. . . ,p- 1. a = b
en GF(P) significa lo mismo que u = b(mod p ) ”.
29 Análisis de Algoritmos Criptográfcos
Cuando n > 1, G H p ) puede ser representado como el campo de clases
equivalentes de polinomios cuyos coeficientes pertenecen a G Q ) . Por
ejemplo, para GF(23) el módulo puede tomarse como x3 + x2 + 1 Ó x3 + x + 1.
Utilizando el módulo x3 + x + l , los elementos de GF(23) -escritos como
O,xo,xl, ... - pueden ser representados como polinomios con grado menor que
tres. Así,
x3 = - x - 1 = x + I
x4 -x(x ' )=x(x+l )=x +x
x'=x(x + x ) - x + x r x - x - l = x + x + l
x"x(x + x + l ) = x + x + x = x 2 - 1 = x + 1
x =x(x + l ) = x +X=-1=lEXo
2
2 3 2 2 2
2 3 2 2
7 2 3
La tabla 3.3 contiene diferentes representaciones de los elementos del campo
finito. En dicha tabla se muestran las columnas siguientes: potencia,
representación polinomial, cadena de tres coeficientes binarios de la
representación polinomial y el número entero correspondiente al vector.
Tabla 3.3 Representación de los elementos del campo finito GF(P) usando como módulo
x3 + x + l
~ ~
~
30 Análisis de Algoritmos Criptográficos
Los polinomios de la segunda columna se circunscriben bajo la suma y
producto módulo x3 + x + l , por lo que estas operaciones satisfacen los axiomas del campo finito.
3.10 ExponenciaciÓn La exponenciación es muy utilizada en los algoritmos de encripción de llave
pública para codificar mensajes. Se manejan números muy grandes tanto en las bases como en los exponentes, por lo que resulta muy complicado utilizar multiplicaciones reiterativas. En esta sección se verán mecanismos eficientes para llevar a cabo estas operaciones. También se expondrá SU
operación inversa, comúnmente llamada el problema del logaritmo discreto.
El Intercambio de llaves de Diffie-Hellman y el esquema de encripción
ElGamal utilizan exponenciación en 2, para números primos grandes p . Una
de las formas que existen para reducir el tiempo de proceso de la
exponenciación es decrementar el tiempo en la multiplicación de los dos
elementos en el grupo. En esta sección se consideran tres tipos de algoritmos de exponenciación:
i) Técnica básica. Se permiten valores arbitrarios de la base b y el exponente e
Exponente fijo. El exponente e es fijo y se permiten valores arbitrarios a la base b
Base fija. La base b es fija y se permiten valores arbitrarios de e. Los esquemas de firma ElGamal y Diffie-Hellman se benefician
con tales algoritmos.
ii)
iii)
3.10.1 ExponenciaciÓn binaria básica Algoritmo 3.3[20] Se expresa en términos de un grupo finito arbitrario G
con elemento identidad 1. Se le llama algoritmo de exponenciación binaria de
derecha a izquierda.
- 31
Análisis de Algoritmos Cnptograficos
Entrada: Salida: be
Un elemento b E G y un entero e 2 1
1.
2.
A t 1, S t b
Mientras e $ 0 hacer lo siguiente:
2.1
2.2 e t l e / 2 ]
2.3
Si e es impar entonces A t A * S
Si e # O entonces S t S * S
3. Regresar ( A )
A 1 b b3 b3 Bl1 p7 p7 p7 b27
e 283 141 70 35 17 8 4 2 1 S G g2 94 g3 G16 g32 9 6 4 9128 9256
La tabla 3.4[20] muestra un ejemplo de cálculo de los valores A,e y S durante
cada iteración del algoritmo 3.3 en la determinación de b283
p 8 3
O -
Tabla 3.4 Cálculo de b283 utilizando el algoritmo de exponenciación binaria de derecha a izquierda
Algoritmo 3.41201 Este algoritmo ejecuta exponenciación simultánea
múltiple.
Entrada: Un grupo de elementos b n , b l , ..., bk-[ y t-bit enteros no-negativos
eo,e, ,.-,ek-,
b:b"# b?iit Salida: , ... 1. Precálculo. Para i de O a (2k-1): B, tn"' by donde i = ( i k - l . . . i n ) 2
14 J
2. A t 1
3.
4. Regresar ( A )
Para i de 1 a t hacer lo siguiente: A t A * A , A t A * B,¡
~
32 Análisis de Algoritmos Criptograficos
Las tablas 3.5, 3.6 y 3.7[20], muestran un ejemplo de cálculo del algoritmo
3.4 en la determinación de bn b, h2 . Los valores de e son: e0=30=(11110)2,
e1=10=(01010)2 y e2=24=(11000)2.
30 10 24
A
El arreglo EA de 3 X 5 se muestra en la tabla 3.5
bobz bib,bi bib:b," biSbfhi2 1 bo 30 b, in b, 24
Tabla 3.5 Arreglo 3 X 5 generado de la aplicación del algoritmo 3.4
Tabla 3.6 Valores precalculados del paso 1 del algoritmo 3.4
Tabla 3.7 Valor final de A ai final de cada iteración del paso 3
del algoritmo 3.4
La ecuación del esquema de verificación de firma ElGamal se comporta como este algoritmo, ya que aparecen tres exponenciaciones y una multiplicación.
3.11 El problema del logaritmo discreto (DLP) El problema inverso de la exponenciación es el cálculo de logaritmos discretos.
Análisis de Algoritmos Criptomáficos 33
Definición 3.8 Logaritmo discreto "Dados dos números a, b y el módulo n, se define el logaritmo discreto de a con base b módulo n como:
c - log, (a)(mod n) t) a z 6" (mod n) "
En la actualidad no existen algoritmos eficientes que sean capaces de
calcular en tiempo logaritmos de esta naturaleza y muchos sistemas
criptográficos basan su resistencia en esta circunstancia. El problema de los
logaritmos discretos está íntimamente relacionado con el de factorización, de
hecho está demostrado que si se puede calcular un logaritmo, entonces se
puede factorizar fácilmente (el recíproco no se ha podido demostrar).
3.11.1
La exponenciación modular es usada frecuentemente en criptografía. La
expresión a' modp es relativamente fácil de evaluar. Determinar el logaritmo
discreto de un número significa calcular la inversa de la exponenciación
modular. Esto es, el cálculo de x en a x = b(modp) .
Logaritmos discretos en un campo finito
Ejemplo 3.9
Si 3" ~15modl7entonces x = 6
No todos los logaritmos discretos tienen soluciones (valores enteros). Para la
expresión 3" = 7mod17 no existe solución para x.
3.12 Factorización Para explotar la dificultad de cálculo de los logaritmos discretos [6], muchos
de los algoritmos criptográficos se basan en exponenciación en grupos finitos. Dichos conjuntos deben cumplir con la propiedad de que su módulo n sea un número muy grande con pocos factores (usualmente dos). Estos
algoritmos funcionan si se conoce n y sus factores se mantienen en secreto.
Análisis de Algoritmos Criptográficos 34
Comúnmente, para obtener n primero se calculan dos números primos
grandes, que posteriormente se multiplican. Por lo que se necesitan mecanismos para poder calcular esos números primos grandes.
La factorización es el problema inverso a la multiplicación: dado n se trata de
buscar un conjunto de números tales que su producto valga n. Para que la
operación sea única, se debe cumplir la condición de que los factores de n que se obtengan sean todos primos. Así, los factores de n serán imposibles de
calcular aunque se conozca el propio n
Ejemplo 3.10 Los factores primos para los siguientes números son:
1 0 = 2 * 5
60 = 2 * 2 * 3 * 5 252601 = 41 * 61 * 101
2113-1 = 3391 * 23279 * 65993 * 1868569 * 10668 8132868207
La factorización es uno de los problemas más antiguos :n el análisis
numérico [ll]. Puede resultar sencillo determinar el factor de un número,
pero el tiempo empleado es importante. Algunos de los algoritmos de
factorización empleados actualmente son:
+ Tamiz de campos numéricos (NFS por sus siglas en inglés). Es el más conocido y rápido para números mayores a 110 dígitos
+ Tamiz cuadrático (QS por sus siglas en inglés). Es el más conocido y rápido para números menores a 110 dígitos decimales
+ Método de curva elíptica (ECM por sus siglas en inglés). Utilizado para
factorizar números no más grandes que 43 dígitos
Análisis de Algoritmos Criptográficos 35
+ División por ensayo. Es el algoritmo más antiguo y consiste en ir probando números primos menores o iguales a la raíz cuadrada del
número a factorizar.
3.13 Generación de números aleatorios En gran parte de los sistemas criptográficos usados actualmente se hace
necesario generar números aleatorios [22], sin embargo, es conocido que es una tarea dificil de llevar a cabo. Se dice que un dispositivo o algoritmo
genera números aleatorios si contiene un proceso determinístico, el cual
toma como entrada un número que se supone aleatorio, llamado semilla y tiene como salida una sucesión de números “casi” aleatoria. Lo anterior
provoca dos problemas: el primero cómo generar una semilla aleatoria y el segundo cómo probar que la sucesión obtenida es ‘<casi” aleatoria.
3.13.1 Generación de semillas
Para poder considerar que un número es aleatorio, el conjunto de donde es
tomado debe de cumplir los requisitos de espacio equiprobable, es decir, que todo elemento tenga la misma probabilidad de ser elegido y que la elección de uno no dependa de la elección del otro. Para poder lograr esto, se debe de
hacer a un lado la posible intervención humana y hacer uso de generadores
de aleatoriedad lo más natural posible.
Gran parte del éxito de un disefiador de sistemas criptográficos se respalda en sus generadores de números aleatorios, éstos pueden estar basados en
hardware o en software. Para garantizar que el generador aleatorio sea seguro, debe de ser ajeno a cualquier atacante.
La mayor parte de dispositivos para generar una semilla aleatoria son basados en software. En este caso se requiere una vez más que el número
Análisis de Algoritmos Criptograficos 36
generado cumpla las mismas condiciones que antes. Aquí también se hace
uso de eventos que estén lo más alejado de la intervención humana.
Es importante hacer notar que mientras más recursos se utilicen en la
generación de las semillas es más probable que nos acerquemos a un buen generador de números aleatorios. Después que se ha decidido cuáles eventos deben de ser usados, se recomienda que la combinación de ellos sea
la concatenación, ya que esto permite que los eventos sean independientes y
así la posibilidad de que sea encontrado el origen por un atacante disminuya
considerablemente.
3.13.2 Generación de números aleatorios
Una vez que se obtiene una semilla, se procede a generar la cadena de bits
aleatoria. Se puede definir como un generador de números aleatorios a un
dispositivo que recibe como entrada una semilla xo, que se supone aleatoria,
y da como salida una cadena de bits de longitud n.
Existen varios ejemplos estándar: el propuesto en ANSI X9.17 que usa como
función de un sólo sentido a DES (FIPS 186)[8].
Algoritmo 3.5 [22] Este algoritmo genera bits aleatorios.
Entrada: Dos números primos p,q Semilla x, E [ i , ~ - i]
Salida: La sucesión zI,z2, ..., zk
1.
2.
Precálculo. Para e tal que mcd(e,4) = 1 donde 4 = ( p - l ) (q - 1)
P a r a p 1 hasta k hacer lo siguiente:
2.1 x, +(x , - ] )~ modn
2.2 z, t e 1 menor bit significativo de x,
Existen
Schnorr [23] y la de Blum-Blum-Shub [24].
algunas variantes a este tipo de algoritmos como la de Micali-
Análisis de Algoritmos Criptográficos 37
3.14 Esquema (t,n) de Shamir La idea de secreto compartido es la división de éste en porciones que son
distribuidas entre los participantes de manera tal que las porciones
agrupadas en subconjuntos específicos de participantes, permitan la reconstrucción del mensaje o llave secreta original. Así, el esquema (t ,n) es
una técnica que permite repartir la llave secreta en n porciones de modo que
sea suficiente conocer t de ellas para recuperarla, pero imposible con t- 1.
Shamir[2O] realiza el estudio de secreto compartido y su esquema se basa en
la interpolación polinomial y el hecho de que un polinomio univariante
y = f ( x ) de grado t- I se define singularmente en los puntos ( x , , y , ) con
diferentes x , . Los coeficientes de un polinomio desconocidof(x) de grado de
al menos t, definido por los puntos ( x , , y , ) , 15 i 5 t , son proporcionados por la
fórmula de interpolación de Lagrange:
Si f ( 0 ) =a , = S , la clave secreta compartida puede expresarse como:
donde
Así, cada miembro de grupo podrá calcular S como una combinación lineal de t porciones yi.
Algoritmo 3.6 Esquema de umbral (t,n) de Shamir. Resumen: Una sesión confiable distribuye porciones de una clave secreta S
a n usuarios
Análisis de Algoritmos Criptográficos 38
Inicialización: La sesión confiable T inicia con un número entero secreto S 2 O que desea distribuir a n participantes
Cualquier grupo de t usuarios en conjunto con sus porciones pueden recuperar S.
T selecciona un número primo p > rnax(S, n) y definea,, = S
Salida:
1.
2 . T selecciona aleatoríamente t- 1 coeficientes independientes
a, ,..., a,-, ,O 2 a, < p - 1, definiendo el polinomio aleatorio sobre Z,, ,
3. T calcula S, = f ( i ) mod p , 1 2 i 2 n (o para cualesquiera de n puntos
distintos i, 15 i C p - I ) y transfiere en forma segura la porción Si
al participante Pi, junto con el índice público i.
1ntegración:Cualquier grupo de t o más participantes integra sus porciones.
Estas porciones proporcionan t puntos distintos (x, y ) = ( i ,S i ) lo
que permite el cálculo de los coeficientes aj, 15 j < t - 1 de f ( x ) por
medio de la interpolación de Lagrange. La clave secreta se
recupera mediante f ( 0 ) = a, = S.
Ejemplo 3.12 Suponiendop=17, t = 3 y n = 5 ; x, = i , l < i < 5 . Suponiendo queB=(P,,P,,P,}
integran sus porciones, los cuales son respectivamente, 8, 10 y 11.
Escribiendo el polinomio a(x) como 2 a(x) =a, + a,x + a2x
y calculando a( ] ) , 4 3 ) y a(5), se generan las siguientes tres ecuaciones lineales
en Z, , ,
a , +a, + a 2 =8 a, +3a, +9a2 =IO a, +5n, +8a2 =11
-
39 Análisis de Algoritmos Criptográficos
El sistema tiene una solución Única en Z,, : a,, = 13, a, = 10 y a2 = 2.
La clave es por consiguiente S =a, = 13.
LOS participantes {P,,P,,P,} pueden calcular bi,bz y b3 de acuerdo a la
fórmula correspondiente. Por ejemplo,
bl=3*5*(-2) - ' *(-4)-'modl7
bi = 4
En forma similar, b2 = 3 y b3 = 11. Entonces, dadas las porciones 8, 10 y 11
(respectivamente), se obtiene S = 4 * 8 + 3* 10 + I 1 * 11mod17 = 13.
3.15 Algoritmo de Dime-Hellman En 1976, Diffie y Hellman [ll], desarrollaron un algoritmo para la
distribución de claves que permite establecer una clave secreta mediante el
intercambio de mensajes cuya intercepción no permite deducir la clave. En la
actualidad es un método muy empleado para el intercambio de claves.
Su esquema básico consiste en lo siguiente: Inicialmente, Alicia y Bruno
establecen un número primo grande p y un entero g. Estos dos números
enteros no tienen que ser secretos; Alicia y Bruno pueden aceptarlos encima de algún canal inseguro. Incluso pueden ser comunes entre un grupo de
usuarios.
El protocolo se describe a continuación: 1. Alicia elige al azar un número entero grande a y se 10 envía a
Bruno
A = g " m o d p
40 Análisis de Algoritmos Criptográficos
2. Bruno elige al azar un número entero grande b y se lo envía a
Alicia
B = g b m o d p
3. Alicia calcula
K = B " m o d p
4. Bruno calcula
K = A b m o d p
K y K son iguales a gob mod p . Ninguna persona en el canal puede calcular
este valor, únicamente conocen p , g, A y B. A menos que puedan solucionar
el problema del logaritmo discreto y recuperar a o b. K es la llave secreta
calculada independientemente por Alicia y Bruno.
La selección de g y p es muy importante. El valor ( p - 1)/2 también debe ser
un número primo. El valor de p debe ser grande. La seguridad de este
sistema se basa en la dificultad de factorizar números del tamafio de p . El
valor de g puede ser el primitivo mod n.
Algoritmo 3.7 Esquema de intercambio de claves de Diffie-Hellman[20].
Resumen: Entre A y B se envían uno al otro un mensaje a través de un
canal abierto.
p y g en Z, (2 5 g I p - 2). Números enteros aleatorios a y b . Clave secreta compartida K para A y B ,
Entrada:
Salida:
Cálculo: 1.
2. A calcula go modp y se lo envía a B
3.
4. B calcula gh modp y lo envía a A
A elige un número entero aleatorio a , 1 5 a 2 p - 2
B elige un número entero aleatorio b , 15 b 5 p - 2
Análisis de Algoritmos Criptográficos 41
5.
6.
B recibe g“ y calcula la llave K.=(g”)b modp
A recibe g b y calcula la llave K = (8’))” modp
Ejemplo 3.13 Sea p el número primo con valor 53. Si el generador g es 2, el cálculo de K
aplicando el algoritmo de Diffie-Hellman es:
1.
2.
3.
4.
A elige a =29 y calcula go = 229 = 45(mod53) y envía 45 a B
B elige b =19 y calcula gb =219 =12(mod53) y envía 12 a A
A recibe 12 y calcula 1229 =2l(mod53)
B recibe 45 y calcula 4519 =2l(mod53)
La clave secreta que comparten A y B es 21. En caso que alguien interfiera
este protocolo, conocerá los valores, 2, 45 y 12, pero no podrá conocer la
clave secreta compartida por A y B .
3.16 Esquema de Firma ElGamal Este esquema puede utilizarse como firma digital y como encripciÓn[ll];
obtiene su seguridad en la dificultad de cálculo del logaritmo discreto en un
campo finito.
Para generar un par de claves, primero se elige a un número primo p y dos
números aleatorios g y x , tal que ambos sean menores que p . Entonces se
calcula
y=g”modp
La clave pública es y , g y p . g y p
grupo de usuarios. La clave privada es x . pueden ser compartidos entre un
~~
Análisis de Algoritmos Criptográficos 42
Para firmar un mensaje M , primero se elige un número aleatorio k , de tal
forma que sea relativamente primo a p - 1 . Entonces se calcula
a = g k modp
Y utiliza el algoritmo extendido de Euclides para determinar el valor de b de
acuerdo a la siguiente ecuación A4 = (xu + xb) mod(p - I)
La firma es el par de números: a y b . El valor aleatorio, k , debe ser
guardado en secreto.
Para verificar la firma, se deberá confirmar que
y"ab m o d p = g M modp
Cada firma en el esquema ElGamal requiere un nuevo valor de k y debe ser
seleccionado aleatoriamente. En caso de que exista una interferencia y que
alguien se apodere del valor k utilizado, existe la posibilidad de que esta
persona que interfiere recupere la clave privada x . En el caso de que dicha
persona, alguna vez, obtenga dos mensajes firmados usando la misma clave
k , puede recuperar x , aún cuando ella no sepa lo que es.
Algoritmo 3.8 Esquema de firma digital de ElGamal[ll].
Entrada: no aplica Clave pública: p (número primo que puede compartirse entre un grupo
de participantes) g < p (puede compartirse entre un grupo de participantes)
y = g" modp
k (valor aleatorio relativamente primo a p- 1)
Clave privada: x < p
Salida: no aplica
Análisis de Algoritmos Criptográficos 43
Firma: 1. Calcula firma
a=g’modp
Calcula firma b tal que M = (xu + kb) mod(p - 1)
2 .
Verificación: Se acepta como válido si
y”abmodp=gM modp
Ejemplo 3.14
Si se elige p = 1 1 y g =2. Y si la clave privada x es 8, entones la clave pública
es 8 y=g”modp=2 mod11=3
Para autentificar M =5, primero se elige aleatoriamente el número k =9. Se
confirma que mcd(k, p - 1) sea 1. Así, el mcd(9,lO) = 1 .Ahora, se calcula
u = gk modp = Z 9 modl 1 = 6
y se utiliza el algoritmo extendido de Euclides para resolver b M = (xu + kb) mod(p - I)
5 = (8 * 6 + 9 * b) mod 10 La solución es b=3, y la firma es el par: a=6 y b=3.
Para verificar la firma
y”ub(modp)=gM(modp)
36 * 6 3 (modl 1) = (modl 1)
10 = 10
Esquema de Verificación Compartida (t,n) de Hsu y W u 44
Capítulo 4
ESQUEMA DE VERIFICACIÓN COMPARTIDA
(t ,n) DE HSU Y WU
4.1 Visión general Un esquema con autentificación de encripción y empleo de técnicas de
verificación compartida es el esquema (t,n) de Hsu y Wu [5]. En este esquema
cualquier texto cifrado de 'firma para un mensaje es direccionado a un grupo
específico de verificadores, de tal forma que la habilidad de descifrar la firma
es regulada por el esquema adoptado (t,n). Esto es, cualquier t de n participantes en el grupo comparten la responsabilidad (o autoridad) para la
recuperación del mensaje. Este esquema conserva el esquema de firma con
recuperación del mensaje y el esquema de verificación compartida (t,n).
4.2 Descripción El esquema se divide en 4 escenarios: Inicialización del Sistema, Registro,
Encripción de Firma y Recuperación del Mensaje. En el escenario de
Inicialización, la autoridad del sistema (SA) define sus parámetros y lo hace público. Después de esto, SA puede aceptar el registro solicitado por un firmante o un grupo de verificadores. Para el Registro del firmante, SA genera una llave secreta y una llave pública. Para el Registro del grupo y los
verificadores de ese grupo, SA primero genera una llave secreta y una llave pública para el grupo, luego emplea el esquema (t,n) de Shamir [3] para
dividir la llave secreta del grupo en n porciones y los reparte a cada verificador del grupo a través de un canal seguro. La parte mantenida por el
.~ . . . . . , . . . . , r . .. .. .... . . ..~ ... .., , ... , . .%L.,A.:L
, Esquema de Verificación Compartida (tp) de Hsu y W u 45
verificador es usada como la llave secreta para la recuperación del mensaje
más tarde. Por simplicidad, la llave secreta para el firmante o el verificador,
se llama llave personal. En el escenario de Encripción de Firma, el firmante primero usa su propia llave personal para -generar la firma de un mensaje
direccionado a un grupo especificado, y luego usa la llave pública del grupo para producir el texto cifrado de firma y lo envía a los verificadores en ese
grupo. En el escenario de Recuperación del Mensaje, cualquier t de n verificadores en el grupo, teniendo la propiedad de decriptar el texto cifrado
de firma recibido, puede cooperativamente recuperar y verificar el mensaje
sin liberar sus llaves personales. Los detalles de los escenarios se detallan a
continuación.
4.2.1 Inicialización del Sistema
La autoridad del sistema SA, selecciona dos números primos grandes p y q,
donde q1p - 1, selecciona un generador g de orden q en Gm), y hace p,q y g
públicos.
4.2.2 Registro
Si A es el firmante, G={U, ,U 2 , . . . , U n } es el grupo de n verificadores y la
identidad asociada a U i es I D i t O . Para el registro de A, SA selecciona
aleatoriamente un entero x A E Z,' para que sea la llave personal de A y usa el
esquema de Diffie-Hellman [26] para calcular la llave pública
correspondiente, en la forma siguiente ya = g r A modp (4.1)
Para el registro de G y todos sus verificadores, SA selecciona aleatoriamente
un entero xG cZy' para que sea la llave secreta de G y calcula la llave
pública correspondiente, en la forma siguiente rc Y c = g modp (4.2)
Esquema de Verificación Compartida (tp) de Hsu y Wu 46
Después de esto, SA genera aleatoriamente un polinomio de grado (t - 1)
f ( v ) = xG + u, v + u2v2 + ... + u,., v'" mod q (4.3)
donde u, E Z ~ (para i=1,2, ..., t - l ) , y calcula la llave personal xiy la
correspondiente llave pública y, para cada U, E G, donde
x, =f(lD,) Y (4.4)
y , =g"' modp (4.5)
Finalmente, SA libera cada llave personal a su propietario (firmante o
verificador) a través de un canal seguro y da a conocer todas las llaves
públicas. Notar que SA no guarda el secreto hasta después de que haya
finalizado el escenario de Registro.
4.2.3 Encripción de Firma
Se supone que el firmante A quiere asegurar un mensaje M c Z p a los
verificadores de G , donde M contiene suficiente redundancia para su
posterior verificación cuando sea recuperada. Primero, A selecciona
aleatoriamente un entero k E Z i y usa el esquema de firma ElGamal [27l para
generar la firma (r,s)de M , donde
r = Mg-k mod p
s = k - x,rmodq
(4.6)
(4.7)
Luego, A selecciona aieatoriamente un entero ~ E Z ; y genera el texto
cifrado de firma (c,,c,,c,) para M , donde
(4.8)
(4.9)
C) = s (4.10)
d c, = g modp
c =ry, modp 2 -<I
Finalmente SA, envía el texto cifrado de firma (c, ,c,,c,) de M a G .
Esquema de Verificación Compartida (t,n) de Hsu y Wu 47
4.2.4 Recuperación del Mensaje
Sin pérdida de generalidad, W = {U,, U , ,..., U , } son los t verificadores de G que
cooperativamente desean recuperar M del texto cifrado de la firma (e1, e,, e , ) .
Primero, cada U , E W usa su propia llave personal para calcular el
mensaje auténtico
donde
L, = fi - ID, (ID, - IDl)-' mod q ,=1.,+1
presenta a los otros participantes en W ,
Con el conocimiento de I
, E = n E j m o d p
~ i = l
cada U, E W recalcula la firma de A4 como
r ,=c,Emodp
s = cj I
y entonces recupera M calculando
M 1 g vyArr mod p
(4.11)
(4.12)
(4.13)
(4.14)
(4.15)
M recuperado puede ser verificado por la inspección de la validez de su
redundancia. I
Se asume que todos los verificadores participantes en W son honestos. De las ecuaciones 4.2, 4.8 y 4.11, I
1 Esquema de Verificación Compartida (t,n) de Hsu y Wu
~
48
' E = c , f ( 0 i
E = (g")""
I
E=!yGd(modp)
Esto implica el conocimiento de (cl,c2,c3) y E . Cada verificador en W puede
recalcular r con la ecuación 4.13. Es más, afectando a ambos lados de la
ecuación 4.7 con un exponente del base g se tiene
g ' = g k g -xAr , = g k y A - r ( m o d p ) (4.16)
De las ecuaciones 4.6 y 4.16,l puede deducirse fácilmente que cada
verificador en Wobtendrá el mensaje correcto Mcon la ecuación 4.15.
4.3 Ataques al criptosistema Obedeciendo el espíritu del kernel 91 esquema de umbral (t,n), es razonable
asumir que al menos t- 1 participantes de G pueden presentar sus porciones
personales a cada uno de los otros para planear los ataques por engaiio en
contra del esquema de Shamir.
I
1 ,
A continuación se analizan tres posibles ataques que pueden ser planeados
por cualquier adversario en contra del esquema de verificación compartida de Hsu y Wu. Cualquier adversario dentro o fuera de G afrontará la dificultad
de resolver el problema del logaritmo discreto (DLP) [15,28] para dar a
conocer cualquier llave personal (o llave secreta G ) y mezclar un texto cifrado
de firma válido para un mensaje dado direccionado a G . Los ataques en contra del esquema de Hsu y W u se generan por algunos verificadores conspiracionales en el interior de G o por un verificador mal intencionado
1
Esquema de Verificación Compartida (fn) de Hsu y Wu 49
conspirando con un firmante deshonesto en el escenario de encripción de
firma. El detalle de los tres tipos de ataques al esquema propuesto es: 4.3.1 Ataque 1
Dado el texto cifrado de firma (c, , c 2 , c,) para M y toda la información pública
disponible, un número menor a t participantes conspiracionales dentro de G
tratan de dar a conocer la llave personal del firmante, cualquier otra llave
personal del participante o la llave secreta G .
Análisis de este ataque:
Estos verificadores conspiracionales pueden resolver la llave personal del
firmante A , x A con cualquiera de las ecuaciones 4.1 o la ecuación 4.7. Sin
embargo, según el análisis[27,28,29], tendrán que resolver el problema del
logaritmo discreto para calcular x A de las ecuaciones 4.1 y 4.7. Por otro lado,
primero pueden reconstruir el polinomio f ( v ) y luego obtener la llave personal
x, =f(íD,) para cualquier U, E G o la llave secreta xG = f ( O ) para G . Sin
embargo, f ( v ) puede únicamente ser reconstruida mediante el conocimiento
de las llaves personales x , de al menos t miembros en G . Así menos que t
verificadores conspiracionales dentro de G no pueden dar a conocer
cualquier otra llave personal del verificador y llave secreta G , incluso ellos
liberan sus llaves personales.
4.3.2 Ataque 2 U n a cantidad menor a t verificadores conspiracionales dentro de G tratan de
actuar como firmantes A para mezclar un texto cifrado de firma válido para un A4 selecionado, sin el conocimiento de la llave personal A .
Análisis de este ataque: Sin pérdida de generalidad, se supone que Ui, UZ, ..., Ut.1 son t-1 verificadores conspiracionales de G que quieren falsificar un texto cifrado de firma válido
Esquema de Verificación Compartida (t,n) de Hsu y U‘u 50
para un M seleccionado, tal que Ut considera la recuperación de M como un
mensaje legal enviado desde A . Deben primero calcular una firma válida (Y,s) para M que satisfaga la ecuación 4.15 y luego falsificar un texto cifrado
de firma válido (a, a, a) para M por medio de las ecuaciones 4.8-4.10. Afrontarán el DLP para calcular una firma válida ( r , ~ ) para M que satisfaga
la ecuación 4.15 sin el conocimiento de XA. Así la falsificación de un texto cifrado de firma válido para un A4 seleccionado menor que t verificadores
conspiracionales en G está basado en la dificultad de resolver el DLP.
4.3.3 Ataque 3
Un verificador mal intencionado dentro de G conspira con el firmante A
dándole a conocer el parámetro secreto d en el escenario de encripción de
firma. El verificador trata de impedir que otros t-1 verificadores honestos en
W recuperen el mensaje del texto cifrado de firma subsecuentemente enviado
desde otro firmante B , de tal forma que únicamente él pueda recuperar
correctamente ese mensaje.
Análisis de este ataque:
Si (c, , c 2 , c, ) es el texto cifrado de firma para M producido por el firmante B
con un d aleatoriamente seleccionado y (c’I, c i , c’3) es el texto cifrado de
firma para M producido por el firmante B con un d aleatoriamente
seleccionado. De las ecuaciones 4.8 y 4.11, se observa que el valor de E depende de CI, el cual a su vez, depende de d. Esto es
E = c{(’) = c y =y: (modp)
Y E’= c’/(O) = c ‘ x C -
I I -yC(modp)
En caso de que al verificador mal intencionado se le llame d en el escenario de encripción de firma, entonces únicamente él conoce E y puede recuperar correctamente M sin la participación de los otros t-1 verificadores en W. Si el
Esquema de Verificación Compartida (t,n) de Hsu y Wu -~
51 ~~
firmante B casualmente selecciona d = d en el escenario de encripción de
firma, implica E = E , o bien se encuentra que c1 =c; modp (para I i z i q ) , el
cual implica que E = E’ modp , entonces los verificadores mal intencionados
conocen E . Por consiguiente únicamente él puede recuperar correctamente M del texto cifrado (c’I, c i , c’3) producido por el firmante B. Sin embargo, la
probabilidad del siguiente ataque es l /q . Esto será suficientemente seguro si
(41 2 160 bits [5].
4.4 Análisis de desempeño El comportamiento del esquema de Hsu y Wu se mide por la complejidad del
tiempo y el costo total de comunicación requerido en los escenarios de
encripción de firma y de recuperación del mensaje, respectivamente. Se analiza el comportamiento del esquema de Hsu y W u como sigue:
TE, TM y TI son los tiempos para calcular la exponenciación modular,
multiplicación e inversa, respectivamente. El tiempo requerido por el
firmante para generar el texto cifrado de firma es
3 * (TE + Tn/l)
el cual depende fuertemente del cálculo de las ecuaciones 4.6-4.10. El tiempo
por cada verificador en W para la recuperación del mensaje es
3 * TE + (2t + 1) * TM + (t-1) x TI
el cual depende fuertemente del cálculo de las ecuaciones 4.11-4.15. De aquí
que el esquema de Hsu y Wu sea tan eficiente en su velocidad de procesocomo el esquema de firma de Nyberg y Rueppel[xx]; sin embargo, es superior al esquema de verificación compartida (t,n) de Harn [13] y sus modificaciones futuras que requieren
( 2 t + 3) * T E + t * T M + (t-1) * TI
tiempos de cálculo para verificación de firma.
Esquema de Verificación Compartida (t,n) de Hsu y Wu 52
La representación de la longitud en bits de un entero x es 1x1. En el esquema
de Hsu y Wu, el tamafio del texto cifrado de firma para un mensaje Mes
2*lPl +I41
(t+2)*lPI+l41
y el costo total de comunicación para recuperación del mensaje es
En el esquema de verificación compartida (t,n) de Harn[l3], el tamaño de la
firma para Mes
3 %?/PI + 141
2t*lPl +lMl
y el costo total de comunicación para verificación de firma es
Así, el esquema de Hsu y W u corresponde al esquema propuesto que
requiere menor ancho de banda y menor costo de comunicación que los
requeridos por el esquema de verificación compartida (f,n) de Harn[l3]. Es
más, este esquema propuesto alcanza mayor protección de transmisión de
datos desde que M está en forma encriptada e integrada en el texto cifrado
de firma durante la transmisión.
Diseño e implementación -
53
Capítulo 5
DISENO E IMPLEMENTACIÓN
5.1 Introducción Este capítulo describe el diseño y la implementación del hardware necesario
para la aplicación del esquema de encripción autentificado empleando
verificación compartida, en un sistema digital. El estudio y análisis de la
arquitectura del sistema digital más apropiado permite cubrir el objetivo
general de la Tesis, que es la evaluación del sistema criptográfico basado en
el esquema de Hsu y Wu[5].
5.2 Descripción general El diseño del dispositivo criptográfico se basa principalmente en el
microcontrolador DS5000[30], que es un circuito integrado orientado a la
comunicación segura de datos. El Criptosistema se compone de diferentes
módulos tanto de hardware como de programación. Los módulos que
componen el sistema son:
+ Módulo de interfase Serie
+ Módulo de interfase al Bus
+ Módulo de interfase Paralela
+ Módulos de programación del microcontrolador e interfases serie y
paralela
5.3 Diagrama a bloques De acuerdo con los componentes a tomarse en cuenta en la implementación del sistema criptográfico, la figura 5.1 muestra el diagrama a bloques de la
arquitectura del circuito que permite la evaluación de dicho sistema.
Diseno e Implementación 54
8 Reset Y interrase P
Paralela
F!
Interfase Serie
‘ o - Bus de Datos
8
a -->m- Bus direcc. i?
1_1
7 r - 7 Display LCD
Figura 5.1 Diagrama a bloques del Hardware del sistema criptográfico
La figura 5.2 muestra la ubicación del hardware del sistema criptográfico en
la conexión de dos computadoras personales, utilizando como medio de
transmisión un cable tipo serie.
Figura 5.2 Ubicacion del Hardware del sistema criptográfico en la conexión de dos computadoras personales
Diseño e Implementación 55
5.4 Especificaciones El Modelo del hardware del sistema criptográfico está diseñado para
encriptar y decriptar bloques de datos de 16 KB. Resulta importante su
utilización en aplicaciones que requieran seguridad en la comunicación de
datos. Debido a que la implementación es basada en hardware y firmware, existe mayor seguridad que las soluciones basadas solamente en software.
Las especificaciones de dicho modelo de hardware se agrupan en los
siguientes aspectos: funcionales, eléctricos y mecánicos.
5.4.1 Especificaciones funcionales 5.4.1.1 De enlace y comunicaciones
+ Interfase con display LCD (CI HD44780, 2 líneas, 16 caracteres)
+ Interfase estandard ISA de 8 bits
+ Puerto serie estandard
5.4.1.2
+ + + +
4
Seguridad
Generación de números aleatorios por firmware
Manejo de llaves con algoritmo de Diffie-Hellman
Manejo de autentificación con algoritmo de Elgamal
Manejo de llaves de verificación compartida con algoritmo de
Shamir
Operaciones de módulo exponencial de 1024 bits (C=MX mod N)
Operaciones de producto modular de 1024 bits (C=A x B mod N) Tamaño de llaves: 40 bits
Configurable para encriptar o decriptar
Mecanismo de protección segura del contenido de memoria de datos y programas
Mecanismo de protección segura del contenido de la memoria del
procesador interno (microcontrolador)
Diseíio e Implementación 56
5.4.1.3 Procesamiento
t Microcontrolador DS-5000 compatible con la arquitectura de los
Microcontroladores de la familia 5 1
La memoria está respaldada por una batería de litio de 10 años de duración
Tiempo de ciclo de instrucción: 25 ns
Capacidad de memoria de datos y programas configurables en
forma separada (16 Kbytes a 512 Kbytes)
t
t
t
t Velocidad de transferencia de datos hasta de 2 Mbyteslseg
(16Mbps)
t Frecuencia de reloj: 12 MHz
5.4.2 Especificaciones eléctricas
t Fuente de alimentación de 5 V
t Bajo consumo de potencia: 1.5 W
t Interfase TTL Compatible
t Rango de temperatura: O a 70 grados centígrados
5.4.2.1 Interfase paralela
t Voltaje de entrada nivel bajo: -0.3 a 0.8 V
t Voltaje de entrada nivel alto: 2.0 a Vcc+O.3 V
t Voltaje de salida bajo: 0.45 V, con corriente de carga de 2.5 mA
t Voltaje de salida alto: 2.4 a 4.8 V con corriente de carga de -100 p A
t Corriente de operación: 45.7 mA
t Voltaje de alimentación en programación: 12.5 V
5.4.2.2 Interfase Serie
t Compatible con estándares de comunicación EIAITIA-232E y
V.28lV.24
t Voltaje de alimentación: 5 V
t Capacitancia nominal: O. 1 pF
t Velocidad de transferencia de datos máxima: 200 Kbps
Diseño e Implementación 57
Transmisor
+ Voltaje de entrada nivel bajo: 0.8 a 1.4 V
+ Voltaje de entrada nivel alto: 1.4 a 2.0 V
+ Corriente de fuga de entrada: 4 a 40 @
+ Corriente de fuga de salida: IO.01 a +10 @
+ Resistencia de salida: 300n a 10 MQ
+ Corriente de salida en cortocircuito: 17.0 a 122.0 mA
+- Tiempo de retardo de propagación: 1.3 a 3.5 pS
Receptor
+ Voltaje de entrada nivel bajo: 0.8 a 1.3 V
+ Voltaje de entrada nivel alto: 1.8 a 2.4 V
+ Voltaje de salida nivel bajo: 0.2 a 0.4 V
+ Voltaje de salida nivel alto: 3.5 a Vcc-0.2 V
+ Resistencia de entrada: 3 KQ a 7 KQ
+ Corriente de salida en cortocircuito: -2 a -10 mA (a tierra), 10 a 30
mA (a Vcc)
+ Tiempo de retardo de propagación: 0.5 a 1.0 pS
5.4.3 Especificaciones mecánicas
Tarjeta principal
+ Dimensiones: 11x12 cm.
+ Peso: 150 gramos
+ ConectoresDB- 15M y DB-25H
+ Cable estandard tipo serie 4xAWG22 (para programación del
microcontrolador) y cable al display LCD de 14xAWG22 Módulo de programación y Reinicialización
+ Dimensiones: 1 0 . 5 ~ 5 . 5 ~ 2 cm.
+ Peso: 120 gramos
+ ConectoresDB-15H y DB-9H
Diseño e Implementación 58
020-02F
040-05F
Módulo display
+ Dimensiones: 1 0 . 5 ~ 5 . 5 ~ 2 cm.
+ Peso: 120 gramos
+ Conector DB-25M
Controlador de Interrupción Programable
Temporizador Programable (PIT)
5.5 Módulo de interfase al bus El sistema criptográfico es implementado en una tarjeta que se comunica con
la computadora personal mediante una interfaz diseñada para el Bus ISA[31]. La transmisión de datos se realiza a través de este bus de expansión
empleando 31 pares de conexión que encajan en la ranura de expansión. Se
obtiene un bus de 16 bits utilizando 18 pares de conexión adicionales (BUS
EISA). En el anexo A, se muestra el bus de 8 bits con sus conexiones y
nombre de cada conector. Las señales más importantes para establecer una
comunicación de datos son: el bus de datos (DO-D7), el bus de direcciones
(AO-Alg), señales AEN, GND, +5 V, RESET, IOR e IOW.
278-273
2A2-2A3
2F8-2FF
300-3 1F
378-37F
3CO-3CF
3 F8 -3 FF
Puerto paralelo 3
Reloj
Puerto Serial COM2
Tarjeta Prototipo
Puerto Paralelo 2
EGA/VGA
Puerto Serie COM 1
I
070-07 1 ]Reloj de Tiempo Real
Tabla 5.1 Mapa de memoria de dirección de dispositivos en la PC.
Diseño e Implementación 59
En la decodificación de direcciones de la PC se determina la comunicación
real con un prototipo externo. Este decodificador debe estar diseñado únicamente para las direcciones de memoria que estén disponibles en la PC. En la tabla 5.1 se muestra el mapa de memoria de la PC con direcciones de los dispositivos conectados más importantes. El rango de direcciones usada
comúnmente para aplicaciones es 300H-31FH, por lo cual para el diseño del
decodificador se tomó en cuenta dicho rango.
El diseño del decodificador basado en PLD[32] se realiza utilizando el método
de ecuaciones booleanas, mediante el programa PALASM[33]. Las ecuaciones
se utilizan cuando el diseño se describe como un patrón regular. El archivo
fuente y el JEDEC[32] para programar el PLD se pueden encontrar en el
directorio \Pld en el CD que se anexa y una impresión de ambos archivos se
presentan impresos en el Anexo B. El archivo de formato JEDEC es el que se utiliza para programar la memoria interna del circuito integrado PLD. Este
decodificador esta diseñado para las direcciones: 300H,30BH,308H y 3 10H.
En la figura 5.3 se muestra la configuración de la interfase para PC
utilizando un decodificador de direcciones implementado con un dispositivo
de lógica programable PLD GAL22V10.
5.6 Módulo de interfase paralela Uno de los circuitos integrados universalmente utilizados en sistemas basados en microprocesadores es la interfase paralela programable 8255[34].
Es versátil, económica y de fácil conexión que proporciona un modo elegante
y sencillo de desarrollo de aplicaciones a través de puertos de entrada/salida. Está encapsulado en formato DIP de 40 terminales, en el cual existen 5
grupos de señales, además de las terminales de alimentación: tres puertos de 8 bits (A, B y C), un grupo de control y el bus de datos. El puerto C se divide
Diseño e Implementación
\
Figura 5.3 Configuración de la interfase al Bus
Diseño 'e Implementación 61
en dos de 4 bits, lo que permite la organización en dos grupos de 12 bits. El grupo A, que comprende el puerto A y la parte alta del puerto C y el grupo B, el puerto B y la parte baja del puerto C. Estos grupos pueden operar en tres modos de funcionamiento diferentes: Modos 0,1,2. Debido a los
requerimientos del sistema criptográfico, en el que se transfieren 8 bits programables como entrada o salida bajo el control de un puerto de 4 bits, a continuación se describe el funcionamiento en modo 1 del 8255. El anexo C,
describe las características principales de funcionamiento del circuito
periférico programable 8255, la interface con el bus, las señales de control y los modos de operación de entrada y salidad de datos.
La figura 5.4 muestra la interpretación del protocolo de transferencia de
datos a través de diagramas de tiempo:(a) de entrada y (b) de salida de datos.
La descripción de los bits de control como puerto de entrada de datos es:
+ /STB (STroBe Input):
Cuando esta señal se pone en nivel bajo el dispositivo memoriza el estado
del puerto de 8 bits. La siguiente operación de lectura RD sobre el 8255
por parte del microprocesador, devolverá el estado del bus en el estado
bajo de dicha señal. Por lo tanto, permite efectuar lecturas del puerto de 8
bits de modo independiente del microprocesador que maneja el 8255.
+ IBF (Input Buffer Full flag output):
Esta señal responde a'STB poniéndose en nivel alto cuando el dato ha
quedado enclavado durante el flanco de bajada de un pulso de STB.
Regresa a nivel bajo en el flanco de subida de la señal de lectura RD.
+ INTR (INTerrupt Request output): Esta señal adquiere nivel alto (si el bit INTR se encuentra activado) en el flanco de subida de STB, indicando al microprocesador que controla el 8255 la presencia de un dato en el dispositivo. Baja al nivel lógico cero en el flanco de bajada de RD.
Diseño e Implementación 62
Figura 5.4 Interpretación del protocolo de transferencia de datos a través de diagramas de tiempo: (a) entrada de datos y (b) salida de datos,
Diseño e Implementación 63
La descripción de los bits de control como puerto de salida de datos es:
4 /OBF (Output Buffer Full flag output):
Esta señal indica el estado de escritura en el puerto. Pasa a nivel bajo en el flanco de subida de la señal de escritura /WR y regresa a nivel alto en el flanco de bajada de la señal de respuesta ACK.
+ /ACK (ACKnowledge): Señal de entrada que permite la recolección del dato.
+ INTR (INTerrupt Request output):
La señal pasa a nivel alto en el flanco de subida de /ACK y pasa a
nivel bajo en el flanco de bajada de /WR.
5.7 Módulo de interfase serie Este módulo es un circuito que permite que el programa de aplicación del
sistema criptográfico, sea cargado a la memoria interna del microcontrolador
DS5000 como archivo hexadecimal. Con esto, no es necesario quitar dicho
dispositivo en caso de necesidades de reprogramación.
La interfase utilizada es de tipo serie y utiliza el programa KIT5K.EXE[35], el
cual se puede encontrar en el directorio \Kit5k en el CD que se anexa.
Cuando se ejecuta el programa KIT5K.EXE se establece la comunicación
correspondiente entre la PC y el DS5000. Los parámetros como el mapeo de
memoria de programas/datos y la operación de encripción del
microcontrolador son inicializados de acuerdo a la configuración. El
programa KIT5K maneja todas las comunicaciones con el DS5000.
El módulo consiste de un cable RS232 que conecta al puerto serie de la PC,
un cable plano de 10 líneas que transporta las señales de control de transmisión serie (TX y FZ) y el circuito impreso con la lógica de control de transmisión serie. La figura 5.5 muestra el circuito del módulo de interfase
serie del sistema criptográfico.
Diseño e Implementación 64
a3 5oao TXD VCC
e 1 1 Ouf
/ I il) ;I; TI OUT p-
T2OUT
I c3 II: 2
C t c1 - c 2 t c2- vt V-
CONNECTOR OB9
Figura 5.5 Circuito del módulo de interfase serie del Criptosistema.
Diserio e Implementación 65
5.8 El Microcontrolador DS5000[30,36,37,38,39]
5.8.1 Descripción del DS5000 El microcontrolador DS5000 es completamente compatible con la familia 51,
Su capacidad de proceso es de 8 bits con tecnología CMOS y se basa en
memoria RAM no-volátil (NVRAM) para preservar la información en ausencia
de voltaje de alimentación. Los registros internos y de configuración de seguridad también son no-volátiles. El dispositivo está integrado por
circuitos que conectan a la memoria RAM y a la batería de Litio. El DS5000
tiene los siguientes atributos:
+ Completamente compatible en código y recursos con la familia 51
+ El acceso a memoria es sobre bus separado, conservando los puertos de
entrada/ salida
+ Los datos almacenados se conservan en un período de 10 años
+ La programación se realiza en operación del sistema a través del puerto
serie estándar
+ Seguridad en firmware que previene que sea copiada la información
5.8.2 Descripción de terminales
En el Anexo D, se muestra la descripción de terminales y diagrama a bloques
del microcontrolador DS5000, el cual consta principalmente de 32 líneas paralelas de entrada/ salida, alimentación, reinicio, señales de control y de
reloj.
5.8.3 Características técnicas
+ Microcontrolador de 8 bits compatible con la familia 51 de
microcontroladores
+ 64 Kbytes de memoria RAM no-volátil para programas y/o datos
+ Capacidad de modificar su programa en uso + Mantiene la información en la memoria 10 años
Diseño e Implementación 66
+ Seguridad en circuito integrado
+ 32 líneas paralelas de entrada/salida
5.8.4 Organización de la memoria El Anexo D muestra el mapa de memoria del DS5000. Tiene separado los
espacios de direcciones de memoria, para datos y programas. Debido a que la
capacidad de direccionamiento básico es de 16 bits, se tienen 64 Kbytes de
memoria de programas y 64 KBytes de memoria de datos. 32 Kbytes del
DS5000 pueden ser utilizados tanto para programas como para datos. La
señal de autorización de lectura en la memoria de programas externa es
m, En caso de que no se utilice se deja desconectada. Si la terminal fi (acceso externo] se pone a nivel bajo, la memoria interna no estará
disponible. Para el uso de la memoria NVRAM deberá estar conectad a +5V.
La memoria de programas y la memoria de datos pueden coexistir en el
mismo espacio de direcciones o en espacios separados; en el primer caso se
dice que la memoria es combinada y en el segundo segregada. La memoria
combinada se obtiene aplicando las señales y PSEN a una compuerta
lógica AND y utilizando la salida de la compuerta como señal "strobe" del
circuito de memoria externa de programas y datos.
5.9 Diagrama general del circuito La integración de los módulos de interfase al bus, transferencia paralela de
información entre la PC y el microcontrolador, comunicación serie y
visualización a través de un display de cristal líquido dan como resultado el diagrama general del circuito electrónico, que se utiliza en la evaluación de los algoritmos de encripción. Dicho diagrama se presenta en la figura 5.6.
, . . .
Diseno e Implementación 67
Criptosistema Diagrama General
Figura 5.11
Y 4-
Centro Nacional de Investigación
y Desarrollo cenidet Tecnológico
Archivo: Fig5 11.jpg Enero 15,2001
Diseno e Implementación 68
5.10 Programación del Microcontrolador La integración de la programación al circuito general del sistema descrito en el apartado anterior, da como resultado el desarrollo de un prototipo que
satisface las necesidades actuales de seguridad en la transmisión de datos, o bien servir como base para proyectos de investigación futuros.
Debido a la complejidad creciente de los sistemas digitales y a la
disponibilidad de una gran variedad de tecnologías de aplicación, los
sistemas integrados de hardware y software han evolucionado y se están
utilizando como herramienta metodológica para acelerar el proceso de diseno
[40]. La programación del Criptosistema se estructura en los módulos que se
muestran en la figura 5.7.
M O D U L O
G E N E R A L
-
Interfase
Interfase al Bus I
Interfase Paralela y
Algoritmos de Encripción I
Figura 5.7 Módulos de Programación del Criptosistema.
Diseño e Implementación 69
5.10.1
El módulo de programación de la interfase tipo serie, se introduce con la
finalidad de transferir el programa principal que contiene los algoritmos de encripción a la memoria interna del Microcontrolador DS5000. La carga del
programa principal y su actualización pueden realizarse en cualquier momento.
Programación de la Interfase Serie
5.10.2
El circuito integrado principal en esta etapa es el decodificador de
direcciones, el cual se implementa con un dispositivo de lógica programable
PLD. El rango de direcciones considerado es a partir de la 300H. Con esto se
cubre el espacio suficiente para comunicar a la computadora con el
prototipo. Así, las ecuaciones de diseño se refieren a estas direcciones. En el
Anexo B, se muestra el programa fuente que usa el PLD para la obtención de
la interfase al Bus. También se muestra el arreglo de fusibles con el que
finalmente se programó al circuito integrado de lógica programable PLD.
Programación de la Interfase al Bus
5.10.3 Programación de la Interfase Paralela, Visualización e Imple- mentación de los algoritmos de encripción
El programa principal está implementado en lenguaje "C" estándar, con
rutinas de ensamblador y módulos en lenguaje orientado a objetos.
Debido a que el circuito integrado principal para la transmisión de datos en paralelo es la unidad de interfase 8255, la cual opera en diferentes modos, es necesario su direccionamiento y configuración correspondiente. La palabra
de control y asignación de puertos utilizados en la programación se determinan empleando como referencia la tabla 5.2.
Diseño e Implementación 70
Así, el decodificador determina las direcciones: 300H para el puerto "A",
301H para el puerto "B", 302H para el puerto "C" y 303H para el registro de
comando. La instrucción que programa a la tarjeta como transmisor de datos
es: outport(0x303,160); y como receptor de datos es: outport(Ox303,176).
Byte A de Comando 7 6 5 4 3 2 1 O
I 1 1 1 -7-k Grupo B
I / / - - - - - - - V I
Puerto C (PC3 a PCO) 1 = Entrada
Puerto B 1 = Entrada
O0 =Modo O --H O1 Modo =Modo 1
1 = Entrada O =Salida
Puerto C (PC7 a PC4)
O = Salida
En el programa principal se integra tanto el procesamiento de visualización como la implementación de los algoritmos de encripción, protocolos de
intercambio de llaves y transferencia de mensajes. En la figura 5.8 se muestra el detalle de las funciones y procedimientos utilizados. Se incluyen todas las variables utilizadas en el programa principal.
Diseño e Implementación 71
P R O G R A M A
P R I N C I P A L
c Inicialización de Variables
Protocolo de comunicaciones: OBF(lntO),ACK,IBF,STB,Rx,Tx
Aigoritmos de encripción: clave, clave-secreta,p,A,g,K
I Visualización (DisplayLCD): RS,E (Puerto 2)
1 envia-lcd(), inicia-led(), I Visualización manda-mensaje(], checa-linea(), posicion(),limpia(), enviarpco, bienvenidan.
I, 1
enviacaractero ,delay() ,sleep() I Utüerías: ltoa(mensaje), atol(mensaje), rapidexp(a,z,n), I generador-clave_secreta(), strcpy()
envia-clave(], enviar-mensaje-encriptado(), enviar-mensaje-a-PC(), generador-clave()
envia-clave(), enviar-mensaje-desencriptado0 enviar-mensaje-a-PC(), generadorclave()
I
Datopc==13: Transmisión de Llave
Datopc==15: Encnpción de Datos Datopc==16: Decripción de Datos
- Datopc== 14: Transmisión de Mensaje Protocolos
~ ~
Figura 5.8 Módulos y procedimientos del programa principal del Criptosistema
Análisis de Resultados 72
Capitulo 6
ANÁLISIS DE RESULTADOS
Las pruebas funcionales realizadas al sistema criptográfico, demuestran su operación y comprueban que los algoritmos empleados en su conjunto
incorporan interfases de usuario suficientemente amigables y cubren el
objetivo principal de convertir un mensaje entendible en otro codificado, no
entendible para el usuario. Además de que el sistema es capaz de recuperar
el mensaje original.
6.1 El Sistema Criptográfico En la implementación de los algoritmos del criptosistema se utilizó una tarjeta para computadora personal de procesamiento digital basado en
microprocesador, DS5000, el cual está orientado a funciones de seguridad.
Los datos técnicos de la computadora personal que se utilizó para instalar la
tarjeta del criptosistema con la finalidad de realizar las pruebas funcionales
tienen las siguientes características: Microsoft Windows 98, Procesador Intel
Pentiurn(') I1 MMX(TM), 330 MHz, 32MB RAM, Disco Duro C: 4.3 GB (FAT32).
6.2 Procedimiento de pruebas El procedimiento de pruebas se estableció en orden gradual, desde la puesta a punto de la tarjeta del sistema, hasta la generación del archivo de datos a
transferir, en formato texto, tomando en cuenta los aspectos de programación, inicialización de variables, registros, manejo de llaves y
procesos de encripción y decripción del mensaje de texto.
Análisis de Resultados 73
Dirección de entradalsalida
X0300
A continuación se presenta un resumen de las pruebas realizadas al
prototipo en los diferentes módulos que componen el Criptosistema: Interfase al Bus, Interfase Serie, Visualización e Interfase Paralela.
Dispositivo
Tarjeta usuario
6.2.1 Interfase al Bus
Consiste en probar la comunicación de la tarjeta del sistema criptográfico
con la computadora personal. La dirección de reconocimiento válido es la
300H, configurada por un dispositivo de lógica programable PLD. No existió
la necesidad de probar otra dirección ya que ésta se encontró disponible. El
programa de información de la computadora en cuanto a recursos de
hardware en su sección de entrada/salida se muestra en la tabla 6.1.
Comunicación establecida Kit> status
Corn: 1 Velocidad: 9600 Bauds Out: ON
Partición: O000 Rango: 2000 (8K) Chip Enable : 2
WARNING: Partición actual puesta a O.
Sin comunicación Kit> status
Incapaz de conectar al
KIT. Está encendido? Está conectado ai puerto?
Tabla 6.1 Información del sistema de recursos de hardware de entradalsalida
6.2.2 Interfase Serie Este módulo se introduce con la finalidad de transferir el programa principal
que contiene los. algoritmos de encripción a la memoria interna del
dispositivo de la tarjeta del criptosistema. Los mensajes de comunicación se
muestran en la tabla 6.2.
Tabla 6.2 Mensajes de comunicación a la interfase sene.
Análisis de Resultados 74
6.2.3 Visualización Para comprobar la operación del módulo de visualización implementado con
un visualizador de cristal líquido de 2 líneas y 16 caracteres, se adaptó un
procedimiento dentro del programa principal para que enviara el mensaje,
"SISTEMA O K , una vez que reconociera la presencia del visualizador. Este dispositivo permite observar los datos y variables del proceso, es decir el
valor de las llaves y datos encriptados.
6.2.4 Interfase paralela Esta es la parte principal de comunicación de datos entre la computadora
personal y el Criptosistema. Debido a que se utiliza el dispositivo de interfase
8255, el cual opera en diferentes modos, es necesario su direccionamiento y
configuración correspondiente.
El modo 1 de funcionamiento consiste en la transferencia de 8 bits
programables como entrada o salida bajo el control del puerto C. Las senales
involucradas en el protocolo de comunicaciones son: DO..D7, RD, WR, /STB, IBF, INTR, /OBF y /ACK. La figura 6.1 muestra el diagrama de tiempos de
una transferencia de datos al utilizar la tarjeta del sistema criptográfico,
muestreada con un analizador lógico de 200 MHz. Para la obtención de dicho
diagrama, fue necesario implementar retardos de 500 milisegundos en la transferencia de los mensajes. La base de tiempo de reloj en el analizador se
ajustó a O. 1 nanosegundos.
6.2.5 Desempeño general del sistema criptográfico El programa principal reside en la tarjeta del criptosistema. Para las pruebas
generales se hace uso de un programa en "C" estándar que se ejecuta en la
computadora personal.
Análisis de Resultados 75
Figura 6.1 Diagrama de tiempo de la transmisión en paralelo entre la computadora personal y el Criptosistema presentado en el Analizador Lógico.
6.2.6 Pruebas de algoritmos criptográficos Las pruebas realizadas en esta sección se presentan tanto en el desempeño general del sistema criptográfico, como en la realización del análisis en el
comportamiento de los diferentes esquemas propuestos, de acuerdo a la medición del tiempo y costo en bits de comunicación requerido en los procesos de encripción de firma y recuperación del mensaje.
Análisis de Resultados 76
La secuencia de instrucciones que muestran el intercambio de llaves y
transferencia de datos se presenta en la tabla 6.3.
Claves públicas comunes: p=2632 1, g=150 Archivo a encriptar: "prueba.txt"
Generando clave pública "A" que será enviada al criptosistema.. . Clave secreta generada aleatoriamente por la computadora personal: 16000
El criptosistema recibió: "A=17783
Clave "B" = 20778
Clave común "K" = 17863
Tabla 6.3 Intercambio de llaves y transferencia de datos durante el proceso de encripción.
Para el proceso de encripción, se suma a cada carácter ascii del archivo
"prueba.txt" el valor K=17863, con lo cual se forma el texto encriptado. Para
el proceso de decripción (recuperación del texto original), se resta a cada
carácter ascii del archivo encriptado el valor " K =03790, con los valores
actualizados que se muestran en la tabla 6.4.
Clave secreta generada aleatoriamente por la computadora personal 06688
El criptosistema recibió: "A"=20387 Clave "B" = 18784 Clave común "K" = 03790
I
Tabla 6.4 Intercambio de llaves y transferencia de datos durante el proceso de decripción.
77 Análisis de Resultados
Los resultados de tiempos de encripción y decripción para diferentes
tamafios de mensajes de texto se presentan en la tabla 6.5.
Tamaiio del
archivo
(bytes) 5,581
11,160
12,781
14,581
16,311
Tiempo de encripción
(ser4
4.67032967
6.31868132
6.75824176
7.30769231
7.85714286
Tiempo de decripción
(ser4
Velocidad de transferencia de
datos Encripción (bps)
9,559.92471
14,129.5304
15,129.3789
15,962.3579
16,607.5636
2.9 120879 1
5.50549451
5.37362637
7.0879 1209
3.02197802
Velocidad de transferencia de
datos Decripción (bps)
15,331.9547
16,216.5270
16,042.3586 16,457.3 147
16,266.3123
Tabla 6.5 Valores de encripción y decripción de mensajes de texto determinados con el criptosistema.
6.2.7Medición del tiempo y costo de comunicación en bits de los
procesos de encripción de firma y recuperación del mensaje del
criptosistema
De acuerdo al análisis de comportamiento presentado en el apartado 4.4, TE, TM y TI son los tiempos para determinar la exponenciación modular,
multiplicación e inversa, respectivamente.
Los tiempos medidos en pruebas efectuadas al criptosistema, mediante una función implementada para ello, son los que se presentan en la tabla 6.6.
Para la medición se toman en cuenta los siguientes aspectos: Tiempo de verificación de firma, tamafio del texto cifrado y costo total de comunicación requerido, de acuerdo a la utilización de las ecuaciones 4-6 a 4-15 y a los números primos propuestos p y q.
TE
(ms) 21.428
Tabla 6.6 Valores de tiempos de exponenciación modular (TE), multiplicación (TM), inversa
(TI) y tamario del archivo del texto cifrado del criptosistema.
TM TI Tamaño de texto cifrado de firma
(ms) (ms) (bits) 6.593 4.945 89,280
Con los datos de la tabla 6.6, se determina el tiempo total empleado en el
proceso de encripción y recuperación del mensaje, tanto en el esquema de Harn como en el de Hsu y Wu. Tomando en cuenta a 3 verificadores (t=3), los
valores son los que se presentan en la tabla 6.7.
Esquema propuesto Fórmula de cálculo Tiempo total
Harn
HSU-WU
Tabla 6.7 Valores de tiempos totales de encripción y recuperación del mensaje en diferentes esquemas.
(ms) (2t+3)TE+tTM+(t-l)TI 222.52 1
3TE+(2t+ l)TM+{t-1)TI 120.325
La tabla 6.8, muestra los valores determinados del costo total de
comunicación en bits, tanto en el esquema de Harn como en el de Hsu y Wu. En estos cálculos se toma en cuenta el valor en bits de p y q.
Esquema Fórmula de propuesto cálculo
H a m W P + M
Costo total de comunicación
(bits) 89,520
Hsu-Wu (t+2lP +4
Figura 6.8 Valores de costos totales de comunicación en bits en diferentes esquemas
4,800
Análisis de Resultados 79
De acuerdo a los valores medidos y calculados presentados en las tablas de
las figuras 6.5, 6.6, 6.7 y 6.8, se observa que el esquema de Hsu y W u es
superior al esquema de verificación compartida de Harn, tanto en tiempos de
encripción y recuperación del mensaje como en el costo de comunicación de
datos. El esquema de Hsu y Wu propuesto requiere menor ancho de banda y
alcanza mayor protección debido a que el mensaje M está en forma
encriptada e integrada al texto cifrado durante la transmisión.
Con estas pruebas de evaluación del desempeño del prototipo se demuestra
su funcionamiento y aplicación en un sistema real.
I
Conclusiones 80
Capítulo 7
CONCLUSIONES
A continuación se presenta un resumen de los resultados y una relación de
trabajos futuros en el área. El logro del objetivo principal del proyecto se
alcanza debido a la realización de un análisis completo de los fundamentos
matemáticos y su comprobación correspondiente mediante la evaluación de
los algoritmos propuestos en un sistema real.
7.1 Conclusiones generales
Por los resultados obtenidos en la presente investigación, las conclusiones
pueden ser presentadas de acuerdo a los siguientes aspectos:
a) Software generado
b) Algoritmos empleados
c) Sistema digital (Criptosistema)
7.1.1 Acerca del software generado El programa implementado que opera con el criptosistema es fácil de usar.
También es flexible, puesto que tiene las funciones claramente separadas y
los algoritmos pueden ser sustituidos en caso de requerirse otro esquema de
encripción.
Durante las pruebas funcionales, se observó la adecuada selección de los números primos g y p (sección 3.5), los cuales contribuyen a que el sistema
sea seguro. El valor de p debe ser grande con el objetivo de dificultar su
factorización.
Conclusiones 81
El desempeño del criptosistema comparado con las empresas .especializadas,
MSI (VMS115) [41], Micro System Designs (MaxLock HD100) [42], Tundra
(CA20C03A/W DES) [43], Sidsa (SA3XDES) [44], SDM (OCM24Shared) [45],
IBM (4753/4) [46] y LED (Datacryptor 64) [47, es aceptable debido a que el
manejo de la longitud de las llaves y velocidad de encripción de datos en
promedio es de 56 bits y 100 Mbps, comparados con los 48 bits y 16 Mbps que puede alcanzar el criptosistema diseñado. Debido a que estas empresas
dedican sus esfuerzos separadamente, unos en producir y otros en
comercializar, la competencia sería poco probable. Aunado a que la presente
tesis representa el esfuerzo y dedicación conjunta de solamente dos
personas.
7.1.2 Acerca de los algoritmos empleados
Dado que los algoritmos estudiados en esta Tesis tienen aplicaciones
específicas, tales como generar e intercambiar llaves públicas y realizar el
proceso de encripción y decripción de mensajes, y en general la demostración
de la factibilidad de la técnica propuesta por Hsu y Wu, existe la necesidad
de procesar números largos mediante el uso de procedimientos en
1enguaje"C" que conducen a un estudio profundo de la teoría matemática de
funciones básicas.
En las pruebas realizadas existe la seguridad de mantener una buena
velocidad de proceso proporcionada por los circuitos integrados que
componen el sistema criptográfico y su correspondiente programa compilado en memoria interna en formato binario.
Con el empleo de los diferentes algoritmos que en principio se conocían y se consideraban los más aptos, se ha llegado a un nivel de dominio del área tal
que se plantean con mayor certeza que al inicio, las bases necesarias para la
mejora y expansión del proyecto a futuro. Con este conocimiento, la mejora
Conclusiones 82
Tesis Cenidet
del proyecto se podría centrar en el cambio a un procesador con mejor
capacidad de proceso, como el microprocesador DS5002, el FPGA Xillinx, el
DSP TMS320, el PLD MAX 9000, o bien la serie SLA50000H de tecnología ASIC, como componente principal y dedicado del criptosistema. Ahora bien,
la implementación de un microcircuito dedicado debe ajustarse a los
algoritmos empleados para avanzar en el mejoramiento del sistema en general[48].
2000 Criptosistema 12 16 K 10 Tesis
lprocesador
DS5000
7.1.3 Acerca del sistema digital (Criptosistema)
La propuesta y desarrollo de la arquitectura y programación que explota el
sistema digital basado en microprocesador criptográfico permite el análisis de
los resultados de la evaluación de los diferentes algoritmos.
Tabla .7.1 Tabla de resultados obtenidos por diversas compañías en sus criptosistemas. Los CPE son ciclos de reloj por encripción de datos.
Conclusiones 83
La tabla 7.1 muestra los logros obtenidos por diferentes compañías en las últimas dos décadas. Esta tabla ubica a la presente investigación en una velocidad de encripción compatible con los modems comerciales (56 Kbps) y una eficiencia competitiva de al menos 10 CPE (ciclos de reloj por encripción de datos). Los datos se reportan con la máxima velocidad lograda en las compañías y el prototipo.
El análisis efectuado a la tabla 7.1 permite establecer una seguridad de
haber construido las bases de un nuevo trabajo que puede llegar más lejos,
reduciendo así, la brecha que existe entre el estado del arte y la situación
tecnológica del país. Por otra parte, la definición del protocolo de
transferencia de datos manejado por señal y no por velocidades de reloj de
los procesadores, significa la adaptación inmediata del criptosistema a las
nuevas computadoras personales.
7.2 Trabajos futuros
Actualmente, la investigación y desarrollo en criptografía se encuentra en un
área sumamente activa con grandes espectativas de alcanzar los primeros
niveles de importancia. Las propuestas sugeridas tienen como objetivo
primordial estrechar la relación con la industria mediante la fabricación de
criptosistemas comerciales y competitivos, además de probar nuevas
tecnologías. Estas ideas pueden tener sustento en las necesidades de
seguridad en la transferencia de información, así como la certeza de que para
producir un algoritmo que se sitúe en el estado del arte, es esencial y
fundamental tener un amplio conocimiento del área.
7.2.1 Criptosistema con acceso a Internet La primera propuesta de investigación futura consiste en la integración al
criptosistema del protocolo TCP/IP de red, el cual tendría como objetivo principal la conectividad con los servicios de intranet e internet.
Conclusiones 84
El presente sistema de encripción y decripción garantiza de principio a fin la privacidad en una red y estaría dedicado exclusivamente al procesamiento de los mensajes, mientras que el procesador de la computadora personal tendría
su uso normal.
7.2.2 Criptosistema inalámbrico La segunda propuesta consiste en integrar al criptosistema una interfase
inalámbrica para comunicación de datos en un entorno de red, utilizando la
tecnología actual basada en señal de radio de banda angosta (especificación
Bluetooth [54], promovido por IBM, Intel, Motorola y otras empresas
importantes). Este módulo podría alcanzar una velocidad de 1 Mbps. En este
diseño existe la necesidad de implementar cuidadosamente los canales de
frecuencia a los distintos usuarios en el cual podría utilizarse la tecnología
de redes de área personal (PAN)[54].
En el caso de integrar al criptosistema un módulo inalámbrico con tecnología
de banda amplia de espectro disperso o extendido, ya sea con señal de salto
en frecuencia (FHSS) o de señal en secuencia directa (DSSS), se tendría
mayor coníiabilidad, integridad y seguridad en la comunicación de datos.
Esta tecnología alcanzaría una velocidad de 20 Mbps en WLAN. Las distintas
especificaciones son definidas por la IEEE 8 0 2 . 1 1 ~ y utilizadas por la mayoría de las redes inalámbricas. [55,56,57,58,59]
La disposición de una tarjeta adaptable con diferentes esquemas de encripción y que pueda ser utilizada en un ambiente de red inalámbrica, sería relevante en el mercado, debido a la importancia del tratamiento de la
información y comunicaciones seguras de datos.
Conclusiones a5
7.3 Publicaciones Las publicaciones relevantes durante la investigación y desarrollo de las diferentes fases del proyecto son las siguientes:
En memorias de congresos universitarios:
i) Congreso Interuniversitario de Electrónica, Computación y Eléctrica,
CIECE 1999. Guanajuato, Guanajuato, México. Marzo de 1999. ii) Congreso de Electrónica, Eléctrica y Sistemas Computacionales
CONDEL 1999. Instituto Tecnológico de Tuxtla Gutiérrez, Chiapas,
México. Noviembre de 1999.
iii) Congreso Internacional de Electrónica, Comunicaciones y Computación CONIELECOMP 2000. Universidad de las Américas.
Puebla, México. Marzo de 2000.
iv) Congreso Internacional de Sistemas Computacionales. Instituto
Tecnológico de Colima. Colima, México. Julio de 2000. v) Congreso de Ingeniería en Sistemas Computacionales ISC 2000.
Instituto de Estudios Superiores de Chiapas, México. Octubre de 2000. Congreso Interuniversitario de Electrónica, Computación y Eléctrica,
CIECE 200 1. Instituto Tecnológico de Cd. Madero, Tamaulipas, México.
Marzo de 200 1.
vi)
En memorias de congresos internacionales:
i) Congreso Internacional de Computación CIC 1999. Instituto
Politécnico, México, D.F. Noviembre de 1999. ii) Conferencia Internacional de Matemáticas y Computación CIMAF
2001. La Habana, Cuba. Marzo de 2001.
Bibliografia
BIBLIOGRAFÍA
PFLEEGER Charles P.,Security in Computing. Second Edition. Prentice Hall. 1997. BLAKLEY G.R., "Safeguarding cryptographic keys". AFIPS Conference Proceedincs, 48: 313-317, 1979. SHAMIR A., "How to share a secret", Communications of the ACM, 22:
FRANKEL,Y .P., GEMMELL, MACKENZIE M. Y., "Optimal-resilience proactive public-key cryptosystems". Foundations of Computer Science Proceedings, 38th Annual Symposium N.York, 384-393,1997. HSU C.L., W u T.C., "Authenticated encryption scheme with (t,n) shared verification", IEE Proceedings, 117-121 January 1998. LUCENA L. Manuel, Criptografía y Seguridad en Computadores. Universidad de Jaén. España. Junio de 1999. http: / /www3.gartner.com (dataquest.com), Junio de 2000. National Institute of Standards and Technology (NIST). FIPS Publication 186: Digital Signature Standard (DSS). May 1994. RAJSBAUM Sergio, Breve Introducción a la Criptografía y Seguridad (Versión Preliminar), Instituto de Matemáticas-UNAM, No. 63 1, pp 1-2, Marzo de 1999. STINSON R. Douglas, Cryptography, Theory and Practice. CRC Press. Boca Ratón, Florida, 1995. SCHNEIER Bruce, Applied Cryptography, 2nd. Edition. John Wiley & Sons. New York 1996. DE SOETE M,Quisquater, JJ, Vedder K., "A signature with shared verification scheme". Advances in Criptology-CRYPT0 '89, 20-24 August 1989, Springer-Verlag Sta. Barbara. 253-262. HARN L., "Digital Signature with (t,n) shared verification based on discrete logarithms", Electronics Letters, 1993, 29, (24), pp 2094-2095. STINSON R. Douglas, Blundo C., "Anonymous secret sharing schemes", U.Salerno-U.Nebraska. January 29,1996. STINSON R. Douglas, "Decomposition constructions for secret-sharing schemes". IEEE trans. Inform. Theory, 40 (1994), 118-125. BRICKELL Ernest F., Sandia National laboratories, "A survey of hardware implementations of R S A , Advances in Criptolon, CRYPT0
COMBA Paul G., "Exponentiation Cryptosystems on the IBM PC", System Journal, Vol. 29, No. 4, p 256, December, 1990.
612-613, 1979.
- -89, ISBN-0-387-97317-6,
Bibliomafia
COLIN Walter D., "Faster Modular Multiplication by Operand Scaling", Computation Department, UMIST UK, Advances in Crvptolow,
STALLINGS William, Cryptography and Network Security: Principles and Practice. Prentice Hall. ISBN 0-13-869017-0. New Jersey 1998. MENEZES Alfred, VAN OORSCHOT Paul, VANSTONE Scott, Handbook of Applied Cryptography. CRC Press. ISBN 0-8493-8523-7. Boca Ratón, Florida, 1996. http:/ /www.astro.virginia.edu, Junio de 2000. ANGEL José de Jesús, "Generación de Números Pseudoaleatorios usados en Sistemas Criptográficos". SeguriDATA, Seguridad Privada, S.A. de C.V. http://www.seguridata.com. Junio de 2000. MICALI S. , SCHNORR C., "Efficient, perfect polynomial random number generators",Journal of Cryptology 3, pp 157-172, 1991. BLUM L., BLUM M., SHUB M., "A simple unpredictable pseudorandom number generator", SIAM Journal on Computing 15, pp 364-383, 1986. WANG C.H.., HWANG T., "(t+l,n) thershold and generalized DSS signatures without a trusted party" , Computer Security Applications Conference Proceedings, 22 1-226, December 1997. DIFFIE W., HELLMAN D.E., "New directions in cryptography". IEEE Transactions on Information Theory, IT-22: 644-654, 1976. ELGAMAL T., "A public-key cryptosystem and a signature scheme based on discrete logarithms". IEEE Transactions on Information Theory, IT-31: 469-472, 1985. AGNEW G.B., MULLIN B.C., VANSTONE S.A., "Improved digital signature scheme based on discrete exponentiation". Electronics Letters, 1990, 26, (14), pp 1024-1025. HOSTER P., MICHELS M., PETERSON H., "Comment: Digital Signature with (t,n) shared verification based on discrete logarithms", Electron Lett., 1995,31, (14),pp 1137. Dallas Semiconductor Corp., "Secure Microcontroller DS5000 DataBook, Copyright 1996 USA. BREY Barry B., Los microprocesadores Intel: Arquitectura, Programación e Interfases, 3". Edición, ISBN 968-880-48 1-9,Prentice Hall, 1994,pp 800-802. Manual de Usuario de Dispositivos Lógicos Programables,AMD, 1990. Manual de Usuario de PLD's y su programación PALASM,AMD, 1990. Intel Corp., "82C55A CHMOS Programmable Peripheral Interface", DataBook, Copyright 1993 USA. Dallas Semiconductor Corp., BC151 Dallas Family Basic Compiler, Soft Microcontroller Data Book User's Guide. USA 1996, pp324-342. Dallas Semiconductor Corp.," DataBook and CDROM", Copyright 1996 USA. Dallas Semiconductor Corp., "PC DataBook", Copyright 1996 USA.
CRYPT0 '91, ISBN-0-387-55188-3.
Bibliografia
Dallas Semiconductor Corp., "Application NoteBook, Copyright 1996 USA. Dallas Semiconductor Corp., "High Speed Microcontroller DataBook, Copyright 1996 USA. ADAMS Jay, THOMAS Donald, "Design Automation for Mixed Hardware-Software Systems", Electronic Design, March 3,1997. Griffin B.P., Plummer D. J., Deal D. M., Silicon VLSI Technology: Fundamentals, Practice, and Modeling, Prentice Hall, 1 edition; ISBN: 0130850373, July 14, 2000 Micro System Designs, Inc., http: / /www.maxlock.com, Junio de 2000. Tundra, http:/ /www.tundra.com, Junio de 2000. Sidsa, http: //www.sidsa.es, Junio de 2000. SDM International, Inc., http:/ /www.sdm-international.com, Junio de 2000. IBM, http:/ /www- 1 .ibm.com/servers/eserver/iseries/psasl, Junio de 2000. Datacryptor64LED, http: / /www.racal.com, Junio de 2000. NEUMANN P., "Flawed Computer Chip Sold for Years", RISKS-FORUM Digest, Vol. 10, No. 54, October 18, 1990. STEINACKER M., "VLSI Crypto Technology". Proceedings VLSI and Computer Peripherals, 3rd Annual European Computer Conference, Hamburg, Germany, pp 159-163, 8-12 May 1989. CRYPTECH NV/SA, "The CRY12C102 DES Chip Technical Reference Manual", Brussels, 1989. THOMAS Ian, Newbridge Microsystems, Kanata, Ontario, Canada (iant@newbridge. com) . MUNDT K., EICHEL H., "Supercrypt ASIC Technology facilitates a new device family for data encryption", proceedings EuroASIC '92, Paris, France, 1-5, pp. 356-359, June 1992. TORRANO Enrique, "El Criptosistema RSA, elaboración de herramientas y Criptoacelerador usando un procesador digital de seriales", TESIS, CENIDET-Cuernaca, Morelos, México, Agosto de 1994. Especificación de redes inalámbricas Bluetooth. ht&://www.bluetooth.com/, Junio de 2000 IEEE P802.11 WLAN Committe, http:/ /grouper.ieee.org/grou~s/802/ 111, Junio de 2000. Organización WLANA de redes inalámbricas, http: / /www.wlana.org/, Junio de 2000. Organización WECA redes-inalalambricas, http: / /www.wirelessethernet.org/, Junio de 2000. Organización HomeRF de redes inalámbricas, http: / /www.homerf.org/ , Junio de 2000. Cía. HiperLAN/2 de redes inalámbricas, http:/ /www.hiperlan2.com/, Junio de 2000.
Anexos 89
ANEXOS
Anexo A
Bus ISA de 8 bits de la Computadora Personal
Nombre de Nombre de la señal la señal Número de pin
+RESET DRV
t IRQ2 1.
+DRQ2
RESERVED
-DACK3
-DACKI
-DACKO
+DRQ3
t IRQ6
tIRQ4
-DACK2
A10
A20
A31
-110 CH CK
+D6 tD5
+D3
+D7
+D4
+D2 +D1 +o0 -110 CH RDY tAEN + A l 9 + A l 8 + A l 7 +A16 +A15 +A14
+A l 2 +A13
+ A l l +A l O +A9 +A8 +A7 +A6
+A4 +A3 +A2 +A l +A0
+A5
Anexos 90
Anexo B
Descripción de los archivos fuente y de programación del PLD (dispositivo lógico programable)
B.l Archivo fuente Decodif.pds:
;PALASM Design Description O
Declaration Segment ------------ b TITLE Decodificador de Direcciones de PC-ISA PATTERN Crypt REVISION 1.0 AUTHOR Javier Meneses Ruíz/Héctor Hernández De León COMPANY Cenidet DATE 11/22/99
CHIP - dec22v10 PAL22V10
O PIN Declarations ---------------
o PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN PIN
1 I1 2 I2 3 I3 4 I4 5 I5 6 I6 7 I7 8 I8 9 I9 10 I10 11 I11 12 GND 13 I12 14 I13 15 I14 16 I15 11 I16 18 I17 19 I18 20 I19 23 o1 24 vcc
COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL
COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL COMBINATORIAL ;300h
Boolean Equation Segment ------ EQUATIONS /01= /I1 * /I2 * /I3 * /I4 * /I5 * /I6 * I7 * I8 * /I9 * /I10 * /I11 * /112 * /I13 * /I14 * /I15 * /I16 * /I17 * /I18 * /I19 ;300H
o
Anexos 91
Simulation Segment ------------ SIMULATION TRACE ON I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 I16 I17 I18 I19 o1
-
SETF /I1 /I2 /I3 /I4 /I5 /I6 I7 I8 /I3 /I10 /I11 /I12 /I13 /I14 /I15 /I16 /I17 /I18 /I19 . ~ , ~~~
CHECK /O1 ; 300H TRACE OFF -
B.2
n
Archivo de programación binaria Decodif.jed:
PALASM4 PAL ASSEMBLER - MARKET RELEASE 1.5a (8-20-92)
(C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992
TITLE PATTERN REV1 S I ON AUTHOR COMPANY DATE
PAL2 2Vl O
Decodificador de Direcciones de PC-ISA Crypt 1.0 Javier Meneses Ruíz/Héctor Hernández De León Cenidet 11/22/99
- DEC22V10* QP24* QF5828* GO*FO* LOO00 LO044 LOO88 LO132 LO176 LO220 LO264 LO308 LO352 LO396 LO440 LO484 LO528 LO572 LO616 LO660 LO704 LO748 LO792 LO836 LO880 LO924 LO968 L1012
oooooooooooooooooooooooooooooooooooooooooooo* 11111111111111111111llllllllllllllllllllllll* 10111011101110101010101001100110101010101010* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* 0000000@000@000000000000000@0000000000000000* 0000000000000000000000000000@0@@0000000@0000* 00000@00@@0000000000@000000@00@@0@0@000@0000* 000000@000@0000000000000000000@0@@00@00@0000* 0000000000@000@00000000000000@00000000000000* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* 0000000000000000000000000000000@000000000000* 30000000000000000000000000000000000000000000* 300000@0@00@0000000000000000@00@@000@0000000* 30000000000000000000000000000000000000000000* 30000000000000000000000000000000@00000000000* 30000000000000000000000000000000000000000000*
Anexos 92
L1056 LllOO L1144 L118E L1232 L1276 L1320 L1364 L140E L1452 L1496 L1540 L1584 L1628 L1672 L1716 L1760 L1804 L1848 L1892 L1936 L1980 L2024 L206E L2112 L2156 L2200 L2244 L228E L2332 L2376 L2420 L2464
’ L2508 L2552 L2596 L2640 L2684 L2728 L2772 L2816 L2860 L2904 L2948 L2992 L3036 L3080 L3124 L316E L3212 L3256 L3300 L3344 L338E L3432 L3476 L3520
oooooooooooooooooooooooooooooooooooooooooooo* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * 00000000000000000000000000000000000000000000’ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * 00000000000000000000000000000000000000000000’ oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* 00000000000000000000000000000000000000000000~ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* 00000000000000000000000000000000000000000000’ oooooooooooooooooooooooooooooooooooooooooooo* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * 00000000000000000000000000000000000000000000~ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo*
Anexos 93
L3564 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO* L3608 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO* L3652 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO* L3696 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO* L3140 L3184 L3828 L3872 L391E L3960 L4004 L4048 L4092 L4136 L4180 L4224 L4268 L4312 L4356 L4400 L4444 L4488 L4532 L4576 L4620 L4664 L4108 L4152 L4196 L4840 L4884 L4928 L4972 L5016 L5060 L5104 L5148 L5192 L5236 L5280 L5324 L5368 L5412 L5456 L5500 L5544 L5588 L5632 L5676 L5720 L5764 L5808
oooooooooooooooooooooooooooooooooooooooooooo* 000000000000000000@0000000000000000000000000* 000000000000000000@000000000000000000000000@* 000000000000000000000@0000000000000000000000* 00000000000@00@000000000000000000@0000000@00* 0@000000000000000@00000000000000000@00@00@00* 00000000000000000000000000000000000000000@0@* 0000000000000000000000000000000000000@000000* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * 00000000@000000000@00000000000000@0000000000* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * 00000000000000000@00000000000000000000000000* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo+ oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * 000000000000000000000000000000000@@0000@0000* 000000000000000@00000@0000000000000000000000* 0000000000000@000000000000000000000000000000* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* oooooooooooooooooooooooooooooooooooooooooooo* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * 0000000000000000000000000000000000@000000000* o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o * 0000000000000000000000000000000000000000@00@* 01010101010101010101*
Anexos 94
Anexo C
El circuito periférico programable 8255
Definición del modo 1 del 8255 e interfase con el bus: C.1
I BUS DE DIRECCIONES 1 I
BUS DE a4TOS
D7-DO AO-A1
1 T
"1 I- 8255A
mEO-l6 b+& h l 8 IiO 4 IiO 8 iio
PB7-PBO PB5PBO PB7-PB4 PA7-PA0
I 1 A T C
MODE 1 -1 B
@o 1 1 1 1 1 1 1 1 @o PB7-PBO CONTROL CONTROL PA7-PA0
I5 US ó B S
Anexos 96
c . 3 Configuración en modo 1 del 8255 como salida de datos:
. . .. . . . . . .. .. . ... - 1
Anexos 97
Anexo D
El microcontrolador DS5000
Descripción de terminales del microcontrolador DS5000: D. 1
P I .o P I .I P I .2 P I .3 PI .4 P I .5 P I .U P I . 7 RST
FXD P3.0 TXD P3.1 m P 3 . 2 INTI P3.3
TO P3.4 T I P3.5
-
WRP3.6 - RD P3.7
x rAL2 U A L I
GND
vc c PO.0 ADO PO 1 AD1 PO 2 AD2 PO 3 AD3 PO 4 AD4 pa 5 ADS PO U ADU P0.7 AD7 EiA ALE m P2 7 A15 P2.6 A I 4 P2 E; A1 3 P2.4 A I 2 P2.3 A I 1 P2.2 A I O
-
Anexos 98
D.2 Diagrama a bloques del microcontrolador DS5000:
h DSSOmIT1 ‘... ..... .................... ............,. ..................................... <.< ..,. .~... ........,..... ,. ..,.
! VCCO i
I< PO.WO.7 i ,,
I
D.3 Mapa de memoria del microcontrolador DS5000:
I