DE Y DESARROLLO TECNOL~GICO

113
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 IS PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS EN INGENIERÍA ELECTR~NICA PRESENTA: HÉCTOR RICARDO HERNÁNDEZ DE LEÓN DIRECTOR DE TESIS: M.C. JAVIER MENESES RUÍZ Q1-0345 CUERNAVACA MORELOS JUNIO DE 2001

Transcript of DE Y DESARROLLO TECNOL~GICO

Page 1: DE Y DESARROLLO TECNOL~GICO

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

Page 2: DE Y DESARROLLO TECNOL~GICO

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

Page 3: DE Y DESARROLLO TECNOL~GICO

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

Page 4: DE Y DESARROLLO TECNOL~GICO

. - . . . - - . . - . . . - . .__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

Page 5: DE Y DESARROLLO TECNOL~GICO

. . : . . . . . . . . . . . ~

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.

Page 6: DE Y DESARROLLO TECNOL~GICO

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 -

Page 7: DE Y DESARROLLO TECNOL~GICO

.. . . - ... ... .

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

Page 8: DE Y DESARROLLO TECNOL~GICO

. . . . .. ~ . ~ .... 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

Page 9: DE Y DESARROLLO TECNOL~GICO

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

Page 10: DE Y DESARROLLO TECNOL~GICO

~ . ~~ ....... - 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

. . . . . , .:

Page 11: DE Y DESARROLLO TECNOL~GICO

__ + .

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

Page 12: DE Y DESARROLLO TECNOL~GICO

. . . . . . . . . . . . . . . . . . . . . . .

-. . .,<. -~

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

Page 13: DE Y DESARROLLO TECNOL~GICO

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

Page 14: DE Y DESARROLLO TECNOL~GICO

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

Page 15: DE Y DESARROLLO TECNOL~GICO

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

Page 16: DE Y DESARROLLO TECNOL~GICO

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

Page 17: DE Y DESARROLLO TECNOL~GICO

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].

Page 18: DE Y DESARROLLO TECNOL~GICO

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,)

Page 19: DE Y DESARROLLO TECNOL~GICO

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

Page 20: DE Y DESARROLLO TECNOL~GICO

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.

Page 21: DE Y DESARROLLO TECNOL~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

Page 22: DE Y DESARROLLO TECNOL~GICO

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.

Page 23: DE Y DESARROLLO TECNOL~GICO

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.

Page 24: DE Y DESARROLLO TECNOL~GICO

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.

Page 25: DE Y DESARROLLO TECNOL~GICO

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.

Page 26: DE Y DESARROLLO TECNOL~GICO

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

Page 27: DE Y DESARROLLO TECNOL~GICO

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.

Page 28: DE Y DESARROLLO TECNOL~GICO

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.

Page 29: DE Y DESARROLLO TECNOL~GICO

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,

Page 30: DE Y DESARROLLO TECNOL~GICO

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

Page 31: DE Y DESARROLLO TECNOL~GICO

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,

Page 32: DE Y DESARROLLO TECNOL~GICO

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]

Page 33: DE Y DESARROLLO TECNOL~GICO

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.

Page 34: DE Y DESARROLLO TECNOL~GICO

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

Page 35: DE Y DESARROLLO TECNOL~GICO

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.

Page 36: DE Y DESARROLLO TECNOL~GICO

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)

Page 37: DE Y DESARROLLO TECNOL~GICO

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

Page 38: DE Y DESARROLLO TECNOL~GICO

~. ~~

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:

Page 39: DE Y DESARROLLO TECNOL~GICO

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.

Page 40: DE Y DESARROLLO TECNOL~GICO

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”.

Page 41: DE Y DESARROLLO TECNOL~GICO

~

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

Page 42: DE Y DESARROLLO TECNOL~GICO

~

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.

Page 43: DE Y DESARROLLO TECNOL~GICO

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 ) ”.

Page 44: DE Y DESARROLLO TECNOL~GICO

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

Page 45: DE Y DESARROLLO TECNOL~GICO

~ ~

~

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.

Page 46: DE Y DESARROLLO TECNOL~GICO

- 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,¡

Page 47: DE Y DESARROLLO TECNOL~GICO

~

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.

Page 48: DE Y DESARROLLO TECNOL~GICO

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.

Page 49: DE Y DESARROLLO TECNOL~GICO

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

Page 50: DE Y DESARROLLO TECNOL~GICO

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

Page 51: DE Y DESARROLLO TECNOL~GICO

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-

Page 52: DE Y DESARROLLO TECNOL~GICO

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

Page 53: DE Y DESARROLLO TECNOL~GICO

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

Page 54: DE Y DESARROLLO TECNOL~GICO

-

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

Page 55: DE Y DESARROLLO TECNOL~GICO

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

Page 56: DE Y DESARROLLO TECNOL~GICO

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

Page 57: DE Y DESARROLLO TECNOL~GICO

~~

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

Page 58: DE Y DESARROLLO TECNOL~GICO

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

Page 59: DE Y DESARROLLO TECNOL~GICO

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

Page 60: DE Y DESARROLLO TECNOL~GICO

, 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)

Page 61: DE Y DESARROLLO TECNOL~GICO

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 .

Page 62: DE Y DESARROLLO TECNOL~GICO

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

Page 63: DE Y DESARROLLO TECNOL~GICO

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

Page 64: DE Y DESARROLLO TECNOL~GICO

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

Page 65: DE Y DESARROLLO TECNOL~GICO

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

Page 66: DE Y DESARROLLO TECNOL~GICO

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.

Page 67: DE Y DESARROLLO TECNOL~GICO

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.

Page 68: DE Y DESARROLLO TECNOL~GICO

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.

Page 69: DE Y DESARROLLO TECNOL~GICO

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

Page 70: DE Y DESARROLLO TECNOL~GICO

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)

Page 71: DE Y DESARROLLO TECNOL~GICO

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

Page 72: DE Y DESARROLLO TECNOL~GICO

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

Page 73: DE Y DESARROLLO TECNOL~GICO

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.

Page 74: DE Y DESARROLLO TECNOL~GICO

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

Page 75: DE Y DESARROLLO TECNOL~GICO

Diseño e Implementación

\

Figura 5.3 Configuración de la interfase al Bus

Page 76: DE Y DESARROLLO TECNOL~GICO

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.

Page 77: DE Y DESARROLLO TECNOL~GICO

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,

Page 78: DE Y DESARROLLO TECNOL~GICO

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.

Page 79: DE Y DESARROLLO TECNOL~GICO

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.

Page 80: DE Y DESARROLLO TECNOL~GICO

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

Page 81: DE Y DESARROLLO TECNOL~GICO

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.

Page 82: DE Y DESARROLLO TECNOL~GICO

, . . .

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

Page 83: DE Y DESARROLLO TECNOL~GICO

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.

Page 84: DE Y DESARROLLO TECNOL~GICO

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.

Page 85: DE Y DESARROLLO TECNOL~GICO

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.

Page 86: DE Y DESARROLLO TECNOL~GICO

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

Page 87: DE Y DESARROLLO TECNOL~GICO

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.

Page 88: DE Y DESARROLLO TECNOL~GICO

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.

Page 89: DE Y DESARROLLO TECNOL~GICO

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.

Page 90: DE Y DESARROLLO TECNOL~GICO

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.

Page 91: DE Y DESARROLLO TECNOL~GICO

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.

Page 92: DE Y DESARROLLO TECNOL~GICO

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.

Page 93: DE Y DESARROLLO TECNOL~GICO

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

Page 94: DE Y DESARROLLO TECNOL~GICO

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

Page 95: DE Y DESARROLLO TECNOL~GICO

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.

Page 96: DE Y DESARROLLO TECNOL~GICO

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

Page 97: DE Y DESARROLLO TECNOL~GICO

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.

Page 98: DE Y DESARROLLO TECNOL~GICO

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.

Page 99: DE Y DESARROLLO TECNOL~GICO

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.

Page 100: DE Y DESARROLLO TECNOL~GICO

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.

Page 101: DE Y DESARROLLO TECNOL~GICO

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,

Page 102: DE Y DESARROLLO TECNOL~GICO

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.

Page 103: DE Y DESARROLLO TECNOL~GICO

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.

Page 104: DE Y DESARROLLO TECNOL~GICO

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

Page 105: DE Y DESARROLLO TECNOL~GICO

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

Page 106: DE Y DESARROLLO TECNOL~GICO

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*

Page 107: DE Y DESARROLLO TECNOL~GICO

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*

Page 108: DE Y DESARROLLO TECNOL~GICO

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*

Page 109: DE Y DESARROLLO TECNOL~GICO

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

Page 110: DE Y DESARROLLO TECNOL~GICO
Page 111: DE Y DESARROLLO TECNOL~GICO

Anexos 96

c . 3 Configuración en modo 1 del 8255 como salida de datos:

. . .. . . . . . .. .. . ... - 1

Page 112: DE Y DESARROLLO TECNOL~GICO

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

-

Page 113: DE Y DESARROLLO TECNOL~GICO

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