centro nacional de investigacion y desarrollo … · 2014-02-14 · alrededor de 400 a.c. los...

108
91 I278 s. E. P. s. E. i. B. B. G. I. T. CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO TECNOLOGICO r-- ¡ - ~ i CILNIAl SISTEMA DIGITAL PARA EL CIFRADO DE INFORMACION CENTRO DE INFORMAClON T E s I § PARA OBTENEF7 EL GRADO DE : MA ESTRO EN ('I ES (3 1 AS EN INGENIERIA ELECTRONICA P R E 5 E ' 4 T 4 MARTIN ONECIMO RODRIGUEZ ROBLES CUERNAVACA. MOR. 1991

Upload: others

Post on 26-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

9 1 I 2 7 8

s. E. P. s. E. i. B. B. G. I. T.

CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO TECNOLOGICO

r-- ¡-~i CILNIAl SISTEMA DIGITAL PARA EL CIFRADO DE INFORMACION

CENTRO DE INFORMAClON

T E s I § P A R A OBTENEF7 EL GRADO DE :

MA ESTRO EN ('I ES (3 1 AS EN INGENIERIA ELECTRONICA

P R E 5 E ' 4 T 4

MARTIN ONECIMO RODRIGUEZ ROBLES

CUERNAVACA. MOR. 1 9 9 1

Page 2: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

Cuernavaca, Mor., enero 18 d e 1990.

D r . Juan Manuel Ricaño C a s t i l l o D i r e c t o r de l CENIDET P r e s e n t e

A t l n . : M.C. A le jandro Díaz Sdnchez Coordinación d e E lec t rb i ca

Por este conducto, hacemos d e su conocimiento que, des- pués d e haber sometido a r e v i s i ó n el t r a b a j o d e tesis - t i t u l a d o "Sistema Dig i t a l para e l Ci f rado d e Informa - ción't , d e s a r r o l l a d o p o r el Ing. Martfn- Onésimo Rodríguez Robles, y habiendo cumplido con todas l as c o r r e c c i o n e s q u e se l e i n d i c a r o n , estamos de acuerdo e n que se l e c o c ceda l a a u t o r i z a c i ó n de impresión d e l a tesis, y l a fe - cha d e examen de gr?do.

S i n otro p a r t i c u l a r , quedamos d e us ted .

A t e n t a m e n t e

omisión Revisora

M.C.Gu /' /

n H. Rodríguez R.

I

PROLONGACION P4LMIRA S/ N KECAP No. 571 A.P 4'224 PALMIM, MORELOS TELS. 12'76-13 y 14-06-37

C P 62 431

Page 3: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

DlRECClON GENERAL DE INSTITUTB rrCNOLOClCOS CENTRO NACIONAL DE INVECTIGACION Y DESARROLLO TECN(iCOGiC0

Of. NO. 613-@*5/18475

Cuernavaca, Mor., enero 18 de 1991.

Ing. Martin O. Rodrfguez Robles Candidato al Grado de Maestro en Ciencias en Ingenierfa Electrónica P r e s e n t e

Después de haber sometido a revisidn su trabajo de tesis titulado

" SISTEMA DIGITAL PARA EL CIFRADO DE INFORMACION"

y habiendo cumplido con todas las indicaciones que el Jurado Revisor de Tesis le hizo, se le comunica que se le concede autorizaci6n para que proceda a la impresidn de la misma, como requisito para la - obtención del grado.

A t e n t a m e n t e

M.C. Dfaz Sdnchez la Maestría

en Ingenierfa Electrónica

PROLONGACION PALMIRA S / N ICECAP No. 5 7 ) A P 4-224 PAiMIRA, MWELOS C. P 6 2 431 TELS: 12-76-15 y 14-06-37

Page 4: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

Agradezco a l Centro Nacional de Invest igación y Desarrol lo Tecnológico (CENIDET), a l Consejo Nacional de c i enc ia y Tecnologfa (CONACyT), a l i n s t i t u t o de Invest igaciones E léc t r i cas ( I I E ) , a l H . C . Jav i e r Meneses R u i z y a l personal del Departamento de Comunicaciones d e l IIE por e l apoya brindado para e l desarro l lo de e s t e t raba jo .

Page 5: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

Contenido

1 Introducción . 1

2 Generalidades . 4

2.1 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Características de un Sistema Cnptográfico . . . . . . . . . . . . . . . 6

2.2.1 Confidencialidad . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2;2 Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3 Métodos Clásicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3.1 Sustitución . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.2. Trasposición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.3 Lucifer y el DES . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4 Criptosistemas convencionales . . . . . . . . . . . . . . . . . . . . . . . 13

2.5 Sistemas de Llaves Públicas . . . . . . . . ! . . . . . . . . . . . . . . . 15

2.6 Firmas Digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

I

Page 6: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

.. 11

CON TENID O

2.7 Comparación de los Criptosistemas . . . . . . . . . . . . . . . . . . . . 19

2.8 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 El Criptosistema RSA . 21

3.1 El Criptosistema RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2 Cómo cifrar y descifrar eficientemente . . . . . . . . . . . . . . . . . . . 26

3.3 Un ejemplo del criptosistema RSA . . . . . . . . . . . . . . . . . . . . 26

3.3.1 Cifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.3.2 Descifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.4 Llaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4 Programación de Dispositivos de Control . 32

4.1 Programación del UART 8250 . . . . . . . . . . . . . . . . . . . . . . . 33

4.1.1 Inicialización del Puerto Serie . . . . . . . . . . . . . . . . . . . 36

4.1.2 Inicialización de la razón de bauds . . . . . . . . . . . . . . . . 36

4.1.3 Inicialización del registro de control de línea . . . . . . . . . . . 37

4.1.4 Cómo determinar el puerto de comunicaciones . . . . . . . . . . 37

4.1.5 Monitoreo del estado del puerto serie . . . . . . . . . . . . . . . 39

4.1.6 Inicialización y monitoreo del modem . . . . . . . . . . . . . . 40

4.1.7 Transmisión de datos . . . . . . . . . . . . . . . . . . . . . . . 41

4.1.8 Recepción de datos . . . . . . . . . . . . . . . . . . . . . . . . . 42

Page 7: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

... CONTENIDO 111

4.1.9 Envío y recepción de datos utilizando interrupciones . . . . . . 43

4.2 Controlador de interrupciones programable . . . . . . . . . . . . . . . 45

4.3 Interfase RS.232.C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

6 Desarrollo del Sistema RSA . SOFTWARE . 49

5.1 Lenguajes de Programación . . . . . . . . . . . . . . . . . . . . . . . . 50

5.2 Procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

. . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Números Primos 51

5.2.2 Llaves 52 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.3 Cifrado de la Información . . . . . . . . . . . . . . . . . . . . . 52

5.2.4 Transferencia de Información . . . . . . . . . . . . . . . . . . . 52

5.2.5 Descifrado de la Información . . . . . . . . . . . . . . . . . . . . 54

5.2.6 Terminar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5.3 Interfaz Hombre-Máquina y Manejo de Pantallas . . . . . . . . . . . . 54

5.3.1 Transmisión de un Archivo . . . . . . . . . . . . . . . . . . . . 55

Transmisión desde Teclado . . . . . . . . . . . . . . . . . . . . 57 5.3.2

5.3.3 Terminar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.3.4 Recepcmn 58 ... .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

00

6.1 Integración del Sistema 61

0 Integración del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . .

Page 8: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CONTENIDO iv

7 Pruebas. 66

7.1 Consideraciones.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

7.2 Pruebas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

8 CONCLUSIONES. 70

A Estándar RS-2324. I

A. l Circuitos de Tierra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV

A.2 Circuitos de Datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV

A.3 Circuitos de Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . V

Circuitos de Canal Secundario . . . . . . . . . . . . . . . . . . . . . . . VI1

A.5 Circuitos de Temporización. . . . . . . . . . . . . . . . . . . . . . . . VI11

A.4

B Diagramas de Warnier/Orr. XI

Page 9: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

Capítulo i

Introducción.

1

Page 10: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 1. INTRODUCCIÓN. 2

La criptografía fue el arte, hoy la ciencia, de diseñar y descifrar sistemas secretos de comunicación. Sus objetivos son:

o Hacer ininteligible un texto de información.

o Descubrir y revelar un mensaje, despojándolo de su secreúa.

Dichos objetivos han ejercido una enorme fascinación para el ser humano, que ha agudizado su ingenio para encontrar cada vez nuevas y mejores formas de alcanzar estos fines, sobre todo si se considera que las aplicaciones típicas se encuentran en la diplomacia, la guerra, y las operaciones bancarias.

La Criptografía se ha utilizado durante milenios para resguardar las comuni- caciones militares y diplomáticas. De hecho, la utilización de la criptografía en el sector gubernamental condujo a su aceptación generalizada dentro del mismo sec- tor, lo cual ha cambiado recientemente. Actualmente la mayoría de los gobiernos ejercen cierto control sobre el aparato criptográfico, si bien no lo hacen sobre la in- vestigación criptográfica. Hoy en día, grandes cantidades de información sensible tal como registros legales y de salud, transacciones financieras, tasas de crédito y simi- lares se intercambian rutinariamente entre computadoras a través de las facilidades que brindan los medios de comunicación públicos.

Las técnicas criptográficas actuales, son muy sofisticadas y proporcionan una elevada protección a los mensajes. En base a esas técnicas, se están desarro- llando nuevos tipos de sistemas criptográficos que presentan propiedades excelentes, los cuales parecen eliminar completamente algunos problemas que han molestado a los criptologistas por siglos [12]. Uno de estos nuevos sistemas es el de crip- tografía de llaves públicas [2, 141, el cual consiste en transformar un mensaje a su forma cifrada/descifrada utilizando una parte de la información llamada ‘llave’ (sección 2.5).

Considerando lo citado anteriormente, se puede observar que la implementación y el uso de la critografía son necesarios y muy importantes en la actualidad. Debido a esta necesidad ha surgido tecnología (equipos electrónicos, circuitos integrados, etc.) que ha venido a simplificar la tarea de cifrar y descifrar información. Como es de suponerse, dicha tecnología es costosa, por lo que se ha recurrido al uso de

Page 11: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPITULO I. INTRODUCCI~N. 3

las computadoras .para desarrollar e implementar, en su totalidad, sistemas crip- tográficos, obteniéndose resultados satisfactorios a un costo aceptable. Es por esta razón y por la gran proliferación de computadoras personales, que el estudio y la aplicación de la criptografía están actualmente encaminados hacia el campo de la computación.

En México existe muy poca investigación ai respecto. Toda la tecnología y el equipo que se tiene dentro del área de la criptografía es de procedencia extranjera. Dado que en nuestro país existe una necesidad de criptografía y se cuenta con el equipo básico necesario para desarrollarla e implementarla, se propone el presente trabajo como un estudio para obtener una posible solución, efectiva y poco costosa, a esta necesidad.

Los propósitos de este trabajo son:

o Analizar algunos sistemas criptográficos, así como sus ventajas y desventajas.

o Analizar ampliamente el ckiptosistema de llaves públicas RSA'.

o Proponer al criptosistema RSA como una solución a las necesidades que se tienen de transferencia segura de información a través de canales públicos.

o Desarrollar el criptosistema RSA en una computadora personal bajo el am- biente del sistema operativo DOS.

o Demostrar una implementación del criptosistema RSA mediante un enlace experimental entre dos computadoras personales.

'RSA son las siglas que corresponden ai nombre de sus autores: Rivest, Shamir y Adleman

Page 12: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

Capítulo 2

Generalidades.

Page 13: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CA PíT UL O 2. GENERA LIDAD ES. 5

2.1 Antecedentes.

La criptografía es una metodología que ha sido empleadada desde hace varios cientos de años [5]. Su finalidad es la de poder transmitir mensajes cifrados de tal forma que éstos no puedan ser interpretados por alguien no autorizado para hacerlo.

Con el transcurso de los años, han surgido muchas técnicas de cifrado. Sin embargo, es hasta comienzos de los años setentas que se desarrollaron técnicas mucho más sofisticadas para ser aplicadas en los sistemas públicos de comunicación. La computación, en el sentido de calcular y transformar la información, ha desempeñado siempre un papel importante en la criptografía. En un sentido más técnico y actual, / ha originado nuevas necesidades criptográficas. Las redes de computadoras, el correo electrónico y la transferencia electrónica de fondos, multiplican las comunicaciones, el flujo de mensajes y la probabilidad de dar un mal uso a esos mensajes.

El desarrollo de la técnica de llaveado público, concebida por Diffie y Hellman proporcionó una respuesta a la necesidad comercial de seguridad en la transmisión de información [7], con grandes ventajas con respecto a la criptografía convencional.

La criptografía más antigua que se conoce se remonta a los egipcios y los an- tiguos hebreos [a]. Los primeros testimonios escritos pertenecen a los espartanos, alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular: la sustitución de cada letra del alfabeto por la letra tres posiciones más adelante ( A por D, B por E, etcétera), la cual se conoce como ‘‘cifrado de César”, por Julio César, quien lo utilizó con frecuencia en sus mensajes.

La criptografía comienzó a evolucionar alrededor de 1200 d.C., en la corres- pondencia entre los estados papales y las ciudades-estado italianas. En los años subsecuentes aparecieron los primeros tratados de criptografía con intentos serios de sistematización y análisis. En 1470 apareció la primera descripción conocida de un aparato mecánico para el cifrad6 de un texto. Vignére publicó en 1586 su método de sustitución polialfabética. Los códigos de dos partes fueron utilizados extensamente en la Francia del siglo XVII, bajo el poder de Luis XI11 y Luis XIV. La guerra civil estadounidense y posteriormente la primera y segunda guerras mundiales originaron avances notables en la criptografía.

Simultáneamente a la evolución de los métodos criptográficos, avanzaban los

Page 14: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPÍTULO 2. GENERALIDADES. 6

métodos de criptoanálisis. Fue hasta la invención del método “libreta de uso único” (one-time pad) en la década de 1920-1930 que todos los métodos diseñados su- cumbieron tarde o temprano al análisis.

2.2 Características de un Sistema Criptográfico.

2.2.1 Conñdencialidad.

La confidencialidad es la esencia de todo sistema criptográfico. Es importante en- tender, sin embargo, que en la criptografía temprana había ideas distintas a las actuales acerca de qué debía mantenerse confidencial. Los sistemas antiguos de- pendían, para su seguridad, de que el método general utilizado no fuera conocido. Posteriormente, dado lo poco práctico que resultaba modificar todo un sistema al ser éste descubierto, se optó por distinguir entre el sistema criptográfico general y la llave particular que generaba una transformación específica.

Así, el cifrado se concibe como una familia de transformaciones posibles, de las cuales se selecciona la que se habrá de utilizar mediante la elección de una llave. El conocimiento del sistema empleado no debería comprometer la seguridad de mensajes futuros enviados con distintas llaves. Por ejemplo, un equipo mecánico de codificación para propósitos militares debería seguir empleándose aunque cayera en manos del enemigo. Lo Único que debía permanecer confidencial era la llave misma, y esto podía garantizarse cambiándola con frecuencia. La llave requería ser conocida por el codificador y el decodificador y, desconocida por todos los demás, y por lo tanto debía intercambiarse a través de canales absolutamente seguros. Este último requisito resulta casi siempre muy costoso en la práctica.

2.2.2 Seguridad.

El objetivo al diseñar un sistema criptográfico es lograr que las operaciones que codifican y decodifican no sean costosas, asegurando al mismo tiempo que cualquier intento de análisis será demasiado complejo como para ser factible. Hay dos enfoques para este problema:

I!

Page 15: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 2. GENERALIDADES.

1. Sistema computacionalmente seguro. Un sistema recibe esta denominación debido al costo computacional del análisis y a fallas en caso de contar con recursos de cómputo y tiempo ilimitados.

2. Sistema incondicionalmente seguro. Es un sistema que resiste al ataque, sin importar la cantidad de recursos computacionales utilizados.

La seguridad incondicional resulta básicamente de que existen infinidad de soluciones posibles a un mensaje cifrado, sin que sea posible seleccionar entre ellos el mensaje original. El Único sistema incondicionalmente seguro de uso común es la “libreta de uso único”, donde el texto del mensaje se combina con una llave aleatoria de la misma longitud que el texto y la cual no deberá volverse a utilizar en ningún otro mensaje. Si bien el sistema puede demostrarse incondicionalmente seguro, es obvio que la longitud de la llave y su irrepetibiiidad lo hacen impráctico en la mayoría de las aplicaciones.

La criptografía actual busca métodos computacionalmente seguros, pues éstos resultan más simples de aplicar. En realidad son dos los problemas de seguridad que la criptografía intenta resolver: el de privacía y el de autentificación. La privacía impide el tipo de intromisión pasiva, en donde alguien, sin interferir un mensaje que no está dirigido a él, logra captarlo y enterarse de su contenido. Esto se logra en mensajes de radio de manera muy simple, o en telefonía, por ejemplo, inter- viniendo una línea. Pero éste no es el Único problema. El uso seguro de un canal de comunicación debe impedir también la intromisión activa, es decir la inserción o modificación de mensajes, con la intención de hacer creer al receptor que se trata de mensajes originales del emisor. De este modo, surge también el problema de la firma de mensajes.

2.3 Métodos Clásicos.

Puede considerarse que hay dos métodos básicos de cifrado: sustitución o confusión y trasposición o difusión [8].

Page 16: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPJTULO 2. GENERALIDADES.

B C D E F

8

B C D E F G ... Y Z A C D E F G H ... Z A B D E F G H I ... A B C E F G H I J ... B C D F G H I J K ... C D E

2.3.1 Sustitución

X

Z

La técnica más simple consiste en sustituir una letra por otra. La llave es la per- mutación del alfabeto que determina la sustitución. La solución de un cifrado de este tipo es muy simple, pues las estadísticas de aparición de letras, parejas de le- tras, triadas de letras, etcétera, en el mensaje cifrado serán las mismas que en el lenguaje del texto original. El método se conoce como sustitución monoalfabética. Una forma de complicar este tipo de cifrado consiste en usar varias permutaciones o mapeos, los cuales se seleccionan según una llave. Esto rompe las estadísticas, pues una letra E puede venir, por ejemplo, de una A o de una F, según lo determine la llave. El sistema más famoso de este tipo se conoce como sistema de Vignére y se basa en una tabla como la que a continuación se muestra.

X Y Z A B C ... u v w Z A B C D E ... W X Y

v w x Y Y Z A B C D ...

I I Llave I Letras del mensaje

A B C D E F ... X Y Z I A l A B C D E F ... X Y Z

llave: CLAVECLAVECLAV mensaje: MENSAJEACIFRAR

mensaje cifrado: OPNNELPAXMHCAM

Page 17: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 2. GENERALIDADES. 9

EL-NUMER O-DE-CUE

ACEPTADO NTA-FUE-

Si bien este método destruye la similitud estadística entre el mensaje y su cifrado, ésta es recuperable, como lo demostró Kasiski, al encontrar la solución al cifrado Vignére en 1863. El método se hace vulnerable debido a la periodicidad de la llave. Ello conduce a la idea de usar una llave aperiódica, como un libro por ejemplo (con lo que además para intercambiar llaves bastará intercambiar solo el nombre del libro). Si bien el análisis del cifrado se complica, resulta también solucionable debido a que la llave, en tanto pertenece a un idioma, contiene redundancias. Bazénes encontró la solución en 1890: la llave debe ser aperiódica y aleatoria. Este es el llamado método de la “libreta de uso único”, que si bien es efectivo resulta muy costoso por la necesidad de intercambiar llaves enormes que sólo pueden usarse una vez.

ELON- -NDTACAEUM- -EPFCERUUTAEE-DO

2.3.2 TrasposiciÓn.

En la trasposición los caracteres de un mensaje son permutados en lugar de ser sustituidos. La llave controla, según el método, la forma de realizar la permutación. En este método existen miles de variantes, por ejemplo:

1. 12345 4 31542 indica la permutación a efectuar en grupos de 5 letras. Según este caso, el mensaje “ACCESO DENEGADO’’ se convierte en

ACCES O-DEN EGADO .-t CASEC DONE- AEODG

2. El mensaje se ordena en cuadro y se extrae en un orden preestablecido: “EL NUMERO DE CUENTA FUE ACEPTADO”, se acomoda y se extrae así:

3. El mensaje‘se ordena en un cuadro y una llave determina, según el orden alfabético de sus letras, el orden de extracción de columnas. Si por ejem- plo, la llave es ‘‘MAQUINAS”, se ordenan sus letras de acuerdo al alfabeto: AAIMNQSU. De aquí se obtiene la secuencia de extracción:

Page 18: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPÍTULO 2. GENERALIDADES. 10

MAQUINAS --+ 4 1 6 8 3 5 2 7

EL-NUMER O-DE-CUE --+ L-TC EUED U-FT EONA MCUA -DAE RE-O NE-P NTA-FUE-

ACEPTADO

Las variaciones son infinitas. Las ventajas de los métodos de trasposición es que rompeii las estadísticas de grupos. Sin embargo, en la mayoría de los casos un criptoanalista hábil puede lograr reconstruirlos.

El equivalente moderno de la “libreta de uso único” puede concebirse como una cinta magnética con una secuencia K aleatoria de O’s y 1’s. El cifrado puede efectuarse como la función pgica “or exclusivo” de K y el mensaje M, denotada como M @ K. Esta función convierte parejas 0 , l o 1,0 en 1 y parejas 0,O y 1,l en O, y tiene una propiedad que la hace sencilla de usar: si el mensaje cifrado se vuelve a cifrar, reproduce el mensaje original, pues (M @ K) @ K = M. La llave no debe usarse más de una vez, pues si una pareja M,K es interceptada puede obtenerse la llave fácilmente como K = M @ C.

Es ahora posible entender por qué, si la llave sólo se usa una vez, el esquema es incondicionalmente seguro: si los bits del mensaje son modificados en forma aleatoria, M puede ser cualquier cadena de caracteres. Puede verse también que el método es equivalente al de Vignére con sólo dos alfabetos. La llave 1 determina la transformación de 0, l -+ 1,O; la llave O determina la transformación 0 , l + 0 , l . Es claro así que, si el método de Vignére sg realiza con una llave aleatoria aperiódica, resultará también incondicionalmente seguro.

La idea clásica de trtisponer y sustituir fue realizada en su versión moderna por el sistema Lucifer (ideado por IBM), el cual fue ligeramente modificado y adoptado como el Estándar para Cifrado de Datos (DES, por sus siglas en inglés).

2.3.3 Lucifer y el DES.

En el sistema Lucifer, la sustitución se realiza mediantelas llamadas cajas S (figura 2.1). La permutación se realiza mediante cajas P, como se observa en la figura 2.2 [4].

Page 19: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 2. GENERALIDADES. 11

Figura 2.1:.'Caja de Sustitución o caja C.

Figura 2.2: Caja de PermutaciÓn o caja P.

Page 20: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 2. GENERALIDADES. 12

Figura 2.3: Combinación de cajas S y P. Este esquema lo utilizan IBM y DES.

Si bien cada elemento S y P es débil desde un punto de vista criptográfico, se puede demostrar que una combinación de ellos constituye un sistema robusto. El esquema mezclado que utilizan IBM y DES se puede ver en la figura 2.3.

IBM utilizó cajas P de 128 bits, con esquemas fijos y cajas S de 4 bits, cada una con con dos posibles esquemas, una llave de 128 bits selecciona los esquemas en las cajas S.

El sistema criptográfico de IBM fue sujeto, durante más de 17 años, a ataques con M y C conocidos, con M insertado a elección, y nunca fue violado.

El National Bureau of Standards adoptó el sistema en 1977, aunque simplificado a 56 bits por llave, pero sin revelar las condiciones de diseño. Esto dio lugar al DES. El DES se utiliza para la protección de datos mediante la construcción de bloques de información. El algoritmo establece una relación entre el usuario y un conjunto de funciones cada una de las cuales transforma una entrada de 64 bits a una salida de 64 bits. El usuario selecciona cual de las más de 70 x 10l6 funciones de transformación va a utilizar para seleccionar una llave particular de 56 bits. Cualquiera que conozca la llave puede calcular la función y su inversa, sin embargo, sin la llave es imposible determinar cual función se usó, aún conociendo la información de entrada y su salida respectiva. Dado que sería imposible soportar un conjunto independiente de

Page 21: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CENTRO DE INFORMACION C E N I D E T

13 CAPÍTULO 2. GENERALIDADES.

70 x 10l6 funciones, DES proporciona un medio sencillo para simular la familia d funciones.

2.4 Criptosistemas convencionales. i [ c m i D I . : , r i

I Un criptosistema, como ya se vió, debe tener dos métodos para transformar men- sajes: un método de cifrado, el cual vuelve ininteligible los mensajes, y un método de descifrado para restaurarlos a su forma original [21]. En un sistema conven- cional (figura 2.4), un mensaje es convertido a su forma cifrada (criptograma) me- diante un cifrador y enviado a través de un canal de comunicaciones. Mientras está en camino, el criptograma puede ser interceptado por alguien más, ajeno al desti- natario. Si está bien cifrado, no tendrá significado para el interceptor. En la terminal receptora el criptograma se convierte a su forma original mediante un descifrador. El cifrador y el descifrador pueden ser procedimientos ejecutados por personas, com- putadoras, o dispositivos construidos especialmente para realizar tales funciones. En cualquier caso, ambos dependen de un generador de llaves, siendo éstas idénticas tanto para el cifrador como para el descifrador, además de que deben permanecer en secreto, en los sistemas convencionales. En muchos sistemas modernos, cada llave es una cadena de dígitos. Por ejemplo, las definidas por el DES consisten de 64 dígitos binarios, 56 de los cuales son significativos IZO]. Para cifrar un mensaje, se insertan, de algún modo, el mensaje y una llave en el cifrador, y el criptograma que surge es una mezcla de caracteres que depende de ambos. Para descifrar el mensaje, se insertan la llave correcta y el criptograma dentro del descifrador, obteniéndose así el mensaje original.

Las llaves a utilizarse se obtienen de un generador, el cual las selecciona aleato- riamente de un conjunto grande de todas las utilizables. El generador debe estar localizado cerca del ciírador, del descifrador o de cualquiera de ambos, pero cada llave a utilizarse debe estar disponible tanto para uno como para el otro. Es ahí donde reside el problema más serio de los criptosistemas convencionales: debe exis- tir un método seguro para la distribución de llaves secretas hacia el cifrador. Este problema se puede ilustrar con un ejemplo sencillo. Suponer que A se quiere comu- nicar privadamente con B. Existen muchos canales de comunicación para lograrlo, ninguno de los cuales puede ser completamente privado: teléfono, correo, y redes de computadoras por ejemplo. A puede enviar mensajes cifrados, pero B no podrá leer- los sin las llaves; y A no debe enviar las llaves secretas a través de canales públicos. La solución es que uno de los dos debe visitar ai otro para estar de acuerdo en utilizar

Page 22: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 2. GENERALIDADES.

f

14

MWWES MENSNES

* 4 CANALEC SEGUROS

---D CANACES PUBUCOS

Figura 2.4: Sistema Criptográfico Convencional.

Page 23: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPi’TVLO 2. GENERALIDADES. . 15

una determinada llave para correspondencia futura. Pero si la necesidad de comuni- cación es solamente para el intercambio de un mensaje, entonces éste puede hacerse durante la visita, resultando innecesario el criptosistema. O si se requiere de una comunicación inmediata, una visita personal podría causar un retraso inaceptable. Y si A necesita comunicarse con varias personas, todas las visitas necesarias pueden ocasionar gastos considerables. La mayoría de los criptosistemas convencionales, incluyendo el sistema DES, presentan este problema. Los criptosistemas de llaves públicas evitan este problema por completo.

2.5 Sistemas de Llaves Públicas.

En los sistemas de llaves públicas, como en muchas variantes de la criptografía, una parte de la información es llamada ‘llave’ y se utiliza para transformar un mensaje a su forma cifrada. En la criptografía convencional, esta información debe mantenerse en secreto, pero también puede utilizarse para descifrar el mensaje. En la criptografía de llaves públicas, sin embargo, un mensaje permanece seguro aún si la llave de es revelada públicamente. Esta única característica da grandes ventajas a estos sistemas sobre los convencionales.

El concepto de llaves públicas puede ser una de Ias ideas criptográficas de mayor impacto dentro de esta tecnología. Este tipo de sistemas tiene dos tipos de llaves: de cifrado y de descifrado. Se podría pensar que tener dos tipos de llaves hace peor la distribución de las mismas. Sin embargo, poseen propiedades como:

o Para cada üave de cifrado existe una llave de descifrado, las cuales son dife- rentes entre sí.

o. Es factible calcular la llave de cifrado y su correspondiente de descifrado.

o No es posible obtener la llave de descifrado aún conociendo la de cifrado.

Es por estas propiedades que A y B pueden utilizar un sistema de llaves públicas, para comunicarse privadamente, sin transmitir ninguna llave secreta. Para llevarlo a cabo, A genera un par de llaves y envía la de cifrado a B por cualquier medio de comunicación. No es necesario que se mantenga en secreto, ya que solo puede cifrar mensajes, y no descifrarlos. El revelarla no dirá nada acerca de la llave

Page 24: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 2. GENERALIDADES. 16

CANALES SEGUROS

--- CANALES -PuBucos

Figura 2.5: Sistema Criptográfico de Llaves Públicas.

de descifrado. B puede utilizarla para cifrar mensajes y enviarlos a A. Nadie más, excepto A, puede descifrar los mensajes (ni aún B), esto es mientras no se revele la llave de descifrado. La figura 2.5 muestra el flujo de información donde B está a la izquierda y A a la derecha. Para permitir a A el envío de mensajes privados a B, de manera análoga B debe crear un par de llaves y enviar su llave de cifrado a A.

Otro punto interesante es el siguiente: Dado que no es necesario que la llave de cifrado de A sea secreta, se puede hacer pública, por ejemplo colocándola en un archivo de una red pública de computadoras. Una vez que se ha hecho esto, cualquiera que desee enviar a k un mensaje privado puede buscar su llave pública y utilizarla para cifrar el mensaje. Dado que A no necesita transmitir la llave de descifrado, y dado que no puede ser obtenida de su llave pública, el mensaje está seguro: solo A puede descifrarlo. Otras personas pueden almacenar sus llaves de cifrado en el mismo archivo público, pasando a ser un directorio de llaves públicas. Así pues, dos personas que posean llaves en dicho directorio podrán comunicarse privadamente, aún no habiendo establecido un contacto previo.

Page 25: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPÍTULO 2. GENERALIDADES. 17

De lo anteriormente mencionado se pueden deducir las siguientes propiedades:

1. Al descifrar la forma cifrada de un mensaje M se obtiene M.

D ( E ( M ) ) = M (2.1)

2. Al descifrar un mensaje M y luego cifrarlo, se obtiene M.

E ( D ( M ) ) = M (2.2)

Los cnptosistemas de llaves públicas derivan sus propiedades poco usuales de funciones matemáticas llamadas funciones filtro unidireccionales (trap-door one-way functions), las cuales son útiles porque se comportan como funciones ordinarias o como funciones unidireccionales.

La función cúbica ordinaria, E = A3 , asemeja una función en la que es más fácil calcular E dado A, que calcular A a partir de B. Ai último cálculo, el de la raíz cúbica, se le llama inversa de la raíz cúbica. Se dice que una función matemática es unidireccional si es más difícil obtener su inversa que calcular la función misma. Para calificar a una función como unidireccional, la inversa debe ser muy difícil de calcular, aún utilizando computadora. Una función unidireccional se puede calcular en algunos segundos, pero el cálculo de su inversa podría requerir de muchos años.

Para crear un sistema de llaves públicas, se utiliza una función filtro unidirec- cional. Es fácil calcular la inversa de una función de este tipo, pero puede resultar muy dificil determinar cómo. Calcular una inversa puede tomar millones de años pues encontrar cómo hacerlo se lleva ese tiempo. Si se conoce el método, obtener la inversa puede tomar sólo algunos segundos. Esta es una situación completamente diferente a la generada por una función unidireccional, para la cual no existe una forma fácil de obtener su inversa. Cuando se construye una función filtro unidirec- cional, la persona que la está desarrollando tiene acceso a la información (trap-door), la cual revela cómo calcular funciones inversa. Una vez que la función se ha termi- nado de elaborar, la información filtro (trap-door) permanece oculta de tal manera que puede tomar millones de años encontrarla.

La modificación que hace Knuth a la función de cifrado del sistema RCA (cap. 3) genera una función filtro unidireccional: elevar un número al cubo y aplicarle módulo n. Su función inversa es la raíz cúbica módulo n. En aritmética modular, la raíz

Page 26: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPi'TUL O 2. GENERA LIDAD ES. 18

cúbica se define como en la artimética ordinaria: si B es el cubo de A, entonces A es la raíz cúbica de B. Nótese que esta definición no indica cómo calcular raíces cúbicas (en ambos tipos de aritmética). Si se conoce cómo calcular las raíces cúbicas módulo n, entonces se sabrá cómo descifrar los mensajes. En aritmética módulo n, la raíz cúbica de B se calcula elevando B a una potencia d, módulo n. Pero aún sabiendo esto, no ayuda a menos que se conozca el valor de d. Y d se puede obtener mediante la fórmula d = [ 2 ( p - f )(q - 1 ) + I ] / $ si n tiene dos factores (p y q), y pi y qi no son divisibles entre 3. Si se desarrolla el módulo, n, entonces se conoce p y q, y por lo tanto se puede calcular el valor de d. Conociendo d se pueden calcular las raíces cúbicas; en otras palabras, se pueden descifrar los criptogramas. Los valores de p y q permanecen ocultos debido a la dificultad de factorizar n, por lo tanto el valor de d también permanece oculto y, por consiguiente no se pueden calcular las raíces cúbicas. De aquí que no se pueden descifrar criptogramas elevando al cubo y obteniendo el módulo n. En los sistemas RSA, el valor de des la información filtro (trap-door) que revela cómo calcular las inversas (raíces cúbicas). Se podría pensar que p y q abarcan un trap-door a través del cual se obtiene el valor de á. El factorizar n es como si se quisiera encontrar el trap-door, pero esto es muy difícil de hacer. Indudablemente existen otras funciones filtro unidireccionales, las cuales podrían ser las bases para otros criptosistemas de llaves públicas. Para cada uno de estos sistemas, se podrían aplicar los mismos principios. El creador de los parámetros del sistema tendría acceso a cierta información trap-door, la cual revelaría cómo calcular inversos. Para los demás, el trap-door estaría oculto, y la función de cifrado sería, en efecto, una función unidirecuonal [Zi].

2.6 Firmas Digitales.

El concepto de firmas digitales está estrechamente relacionado con la criptografía de llaves públicas 116). Un problema con la correspondencia electrónica, a través de una red de computadora por ejemplo, es que los mensajes se pueden modificar fácilmente, por lo que no se puede estar seguro de que quien envía el mensaje recibido es realmente la persona que se anuncia en el mensaje. Sin embargo, un criptosistema de llaves públicas se puede utilizar para proporcionar una identificación positiva de cualquier remitente que tenga registrada su llave pública. Si, por ejemplo, A ha registrado una llave pública en algún archivo de acceso público, entonces puede firmar digitalmente un mensaje que va dirigido a B, decifrándolo con su llave privada antes de transmitirlo. Después de recibir el mensaje, B ( o cualquier otro) pueden leer el mensaje cifrándolo con la llave de cifrado de A. El proceso es esencialmente

Page 27: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPITULO 2. GENERALIDADES. 19

lo opuesto al cnptosistema: primeramente el mensaje se descifra y después se cifra. Alguien más puede conocer el mensaje, pero solo A, con su llave de descifrado secreta, puede crearlo.

Por otra parte, los mensajes que utilizan firmas digitales pueden cifrarse sub- secuentemente con otra llave. Después que A ha descifrado su mensaje hacia B con su llave de descifrado secreta, puede entonces cifrarlo con la llave de cifrado pública de B. Todo esto da como resultado un mensaje que solo A pudo haber creado, y que solo B puede leer.

2.7 Comparación de los Criptosistemas.

Si bien algunos de los esquemas analizados resultan seguros, la mayoría requieren del intercambio de llaves a través de canales privados antes de poder iniciar cualquier intercambio vía canales públicos. Este es un requerimiento impracticable en una red pública de transmisión donde se espera, en principio, que cualquiera de los usuarios intercambien mensajes. Ello implicaría el intercambio previo de (n’ - n)/2 ffaves, algo prácticamente irrealizable. Para romper estas limitaciones surgió un nuevo sistema de cifrado, al cual se le denominó criptografía de llaves públicas, del cual ya se mencionaron sus características. En la tabla 2.1 se hace una comparación de las diferentes Características de algunos criptosistemas.

2.8 Conclusiones.

De acuerdo a la tabla 2.1, se puede observar que el criptosistema RSA es el mejor para ser estudiado y desarrollado, ya que , además de cumplir con las características que debe tener cualquier sistema criptográfico (confidencialidad y seguridad), resulta ser de fácil implementación en computadoras personales.

El criptosistema RSA es un método para crear y utilizar llaves públicas. Es- tas se calculan a partir de dos números primos secretos. Conociéndolos, se puede calcular la llave de descifrado, pero, como ya se ha mencionado, están ocultos, pues solo se conoce su producto: la llave de cifrado. Es obvio que los números primos pueden obtenerse al factorizar esta llave, pero dado que su longitud es grande (200

Page 28: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 2. GENERALIDADES.

7 Método Implementación

Lucifer Compleja (HW) Compleja (HW)

RSA Simple (SW y HW:

20

Vulnerabilidad

Si Si No No No

Canales Públicos para Transferencia de Llaves

No No No No Si

Tabla 2.1: Comparación de algunos criptosistemas.

dígitos), resulta muy complicado lograr dicha factorización. Es por estas razones que el criptosistema RSA resulta ser un método confiable y eficaz para lograr la transferencia segura de información a través de canales públicos de comunicación.

Page 29: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

Capítulo 3

EP Criptosistema RSA.

21

Page 30: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPITULO 3. EL CRIPTOSISTEMA RSA. 22

3.1 El Criptosistema RSA.

En 1977 tres investigadores del Instituto Tecnológico de Massachusetts, R~~ fivest, Adi Shamir Y Len Adleman, publicaron un método para crear y utilizar llaves públicas [lg]. Al cnptosistema se le denominó RSA (siglas que corresponden nombre de sus autores: Rivest-Shamir-Adleman). En tal criptosistema las llaves son números de 200 dígitos. La llave de cifrado es el producto de dos n.Úmeros pnmos secretos, teniendo aproximadamente 100 dígitos cada uno [is, 241. La llave de descifrado correspondiente se calcula también a partir de dichos números pri- mos, utilizando una fórmula que se verá posteriormente. Cualquiera que conozca los números secretos puede calcular la llave de descifrado, pero los números primos están ocultos, pues solo 8e conoce su producto: la llave de cifrado. Por supuesto, los números primos pueden obtenerse factorizando la llave, pero tal factorización es tan complicada que resulta casi imposible realizarla. Rivest, Shamir y Adleman estimaron en 3800 millones de años el tiempo requerido por una veloz computadora para factorizar una llave de 200 dígitos.

Antes del cifrado, el mensaje se convierte a una cadena de números. Este paso es común en los criptosistemas. Después el criptosistema se subdivide en bloques, de la misma manera como las computadoras subdividen en registros o sectores los archivos de texto. Cada bloque contiene el mismo número de dígitos. Para cifrar el mensaje se ejecuta una operación aritmética que involucra la llave de cifrado en cada bloque, resultando así un criptograma que contiene el número de bloques equivalente al mensaje. Para descifrar, se ejecuta la operación aritmética inversa, la cual requiere la llave de descifrado en cada bloque del criptograma. El resultado es el mensaje original en su forma numérica. A continuación se muestra como cifrar un mensaje con el sistema RSA, utilizando una llave de cifrado pública (e,n).

Primeramente, el mensaje se representa con un entero, dentro del rango O - mi. (Cuando el mensaje es muy grande, se rompe para formar bloques y representar cada uno de estos con dicho entero). Hasta este punto solo se tiene un mensaje en la forma numérica necesaria para el cifrado. Luego se recifra elevándolo a la potencia e módulo n. Esto es, el mensaje cifrado, representado por C, es el residuo que se obtiene de dividir M e por n. Para descifrar C, éste se eleva a otra potencia, d, nuevamente módulo n. Los dgoritmos de cifrado y descifrado E y D son, por lo tanto:

Page 31: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPITULO 3. EL CRIPTOSISTEMA RSA. 23

4‘

C E E ( M )

D ( C ) k C d mod n, para un mensaje cifrado C.

M e mod n, para un mensaje M.

Es de notar que el cifrado no incrementa el tamaño de un mensaje; ambos, el mensaje y su cifrado, son enteros dentro del rango O - m i .

La llave de cifrado es, entonces, el par de enteros positivos (e,.). Similarmente, la llave de descifrado es el par de enteros positivos (4.). Cada usuario hace pública su llave de cifrado, pero mantiene en secreto la correspondiente llave de descifrado.

Para utilizar el método RSA, es necesario escoger adecuadamente las llaves de cifrado y descifrado. Esto se muestra a continuación.

Como primer paso, se obtiene n que viene a ser el producto de dos números primos p y q:

n = p x q . (3.1)

Estos números primos son muy grandes. Aunque n sea público, los factores p y q permanecerán ocultos a todos debido a la gran dificultad que representa factorizar n. Esto también deja secreta la forma en que d puede obtenerse a partir de e.

De aquí se escoge d que debe ser un entero aleatorio grande, el cual es primo relativo a ( p - 1) x ( q - 1). Esto es, d debe satisfacer:

mcd(d , (p - 1) x ( q - 1)) = 1 (3.2) (mcd = máximo común divisor)

El entero e se obtiene finalmente de p,q y d para ser el “inverso multiplicativo” de d, módulo ( p - 1) x ( q - 1). Por lo tanto se tiene

e x d í (mod ( p - 1) x ( q - 1)). (3.3)

Page 32: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

24 CAPíTULO 3. EL CRIPTOSISTEMA RSA.

Para demostrar la exactitud del algoritmo de descifrado se utilizará la identidad de Eder y Fermat: para cualquier entero (mensaje) M el cual es primo relativo a n,

M'(") = l(m0d n). (3.4)

En esta ecuación p(n) es la función indicador de Euler, de la que se obtiene el número de enteros positivos menores que n, los cuales son primos del mismo; es decir, que son primos entre sí n y cada uno de los enteros del conjunto. Para los números primos p:

4 P ) = P - 1 (3.5)

Para este caso se tiene, de acuerdo con las propiedades elementales de la función indicador:

Dado que d y p(n) son primos entre sí, d tiene un inverso multiplicativo e dentro del campo de los enteros módulo ~ ( n ) :

e x d i(mod rp(n)). (3.7)

Con esto se puede probar que las ecuaciones (2.1) y (2.2) son válidas (esto es, que el descifrado funciona c.orrectamente si e y d se escogen como se mencionó anteriormente).

D ( E ( M ) ) E ( E ( M ) ) d = (Me)' E M C X d ( m o d n) (3.8)

E ( D ( M ) ) E ( D ( M ) ) ' G (Md) ' M e X d ( m o d n) (3.9)

Page 33: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 3. EL CRIPTOSISTEMA RSA. 25

Y

para algún entero k.

En la ecuación (3.4) se puede observar que para todos los valores de M tal que p no divide a M

MP-' G l(mod p ) (3.11)

y dado que (p - I) divide a 'p( n)

M+(")+' M(mod p ) . (3.12)

Esto e8 trivialmente cierto cuando M E O(mod p), por lo que esta igualdad realmente existe para todos los valores de M. Analogamente, para q se tiene

MkX'+'(")+' z M(mod q ) (3.13)

Estas dos últimas ecuaciones implican que para todos los valores de M,

Esto implica a (2.1) y (2.2) para todos los valores de M, O 5 M < n. Por consiguiente E y D 80n permutaciones inversas.

3.2 Cómo cifrar y descifrar eficientemente.

Calcular M'(mod n) requiere a lo sumo 2 x logl(e) multiplicaciones y 2 x log2(e) divisiones utilizando el siguiente procedimiento (el descifrado se puede desarrollar

Page 34: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

GAPÍTULO 3. EL CRIPTOSISTEMA RSA. 26

utilizando den lugar de e)[l9]:

Paso 1. Sea

Paso 2. Igualar C a 1.

Paso 3. Repetir los pasos 3a y 3b para i = k, k - 1, . . . , O:

. . . el eo la representación binaria de e.

- Paso 3s. Igualar C ai residuo de Ca cuando sea divisible por n. - Paso 3b. Si e; = 1, entonces igualar C al residuo de C x M cuando sea

divisible por n.

Paso 4. Ahora C es la forma cifrada de M.

3.3 Un ejemplo del criptosistema RSA.

3.3.1 Cifrado.

Considérese que se tiene el siguiente mensaje, el cual se desea cifrar:

ESPERE UN MOMENTO POR FAVOR.

Una vez que se ha introducido el mensaje a una computadora, se convierte a su forma numérica, frecuentemente al Código Estándar Americano para el Intercambio de Información (ASCII, por sus siglas en inglés). En ASCII, este mensaje es:

69 83 80 69.82 69 32 85 78 32 77 79 77 69 78 84 79 32 80 79 82 32 70 65 86 79 82 46

Esto aún no es el cifrado. El mensaje se agrupa en bloques de seis dígitos cada uno:

Page 35: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 3. EL CRIPTOSISTEMA RSA. 27

698380 698269 328578 327779 776978 847932 807982 327065 867982 460000

Cada bloque, excepto el Último consiste de tres caracteres consecutivos de la representación ASCII arriba mencionada. El Último bloque consiste del caracter final más cuatro ceros que se le suman a la derecha para conformar el bloque final de la misma longitud a la del resto de los bloques. Los dígitos que se agregan para este propósito pueden tener cualquier valor.

Supóngase que la llave de cifrado, n, es 94815109. Este es el producto de dos números primos. Para cifrar el mensaje, cada bloque se maneja como un número, se eleva al cubo módulo n. Por ejemplo, para cifrar el primer bloque del mensaje:

I1

(698380 X 698380 x 698380)mod94815109 = 75255321

Al elevar al cubo los diez bloques, se obtiene el siguiente criptograma:

75255321 551621 74434046 77759563 11680861 50489584 55811288 86832130 9824494 73184149

La aritmética módulo n [18] es una parte fundamental del sistema RSA. También se utiliza en el descifrado y en la creación de llaves.

Se puede emplear casi cualquier método para convertir el texto a números. Funcionaría de igual manera utilizar A = 1, B = 2, . . . 2 = 26, pero en su lugar se utiliza el código ASCII, dado que se emplea ampliamente, incluye números para espacios y signos de puntuación. La longitud del bloque debe ser casi igual a la longitud de la llave, pues entre más grande sea dicha longitud se minimiza el número de bloques por mensaje. Considerándolos como números, ningún bloque debe ser tan grande como la llave. Para la liave del ejemplo, ningún bloque debe ser más grande que 94815109. Haciendo ligeramente menor la longitud del bloque que la longitud de la llave se asegura que se cumpla este requisito.

Page 36: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 3. EL CRIPTOSISTEMA RSA. 28

3.3.2 Descifrado.

Dado que el sistema RSA es un sistema de llaves públicas, la llave de descifrado, d, difiere de la llave de cifrado. Para la llave de cifrado del ejemplo, corresponde un valor de d igual a 63196467. Conociendo el valor de d, se puede descifrar el mensaje elevando cada bloque del criptograma a la potencia d módulo n. Esto es, si un bloque del cnptograma es C, se debe calcular ( Cd)mod n. Por ejemplo, para descifrar el primer bloque del criptograma:

(75255321s31“46’) mod 94815109 = 698380

convierte este bloque nuevamente a los primeros tres códigos ASCII del mensaje original. Cada uno de los bloques restantes se descifra de la misma manera.

Para elevar un número a una potencia grande no se requiere desarrollar un número equiparable de multiplicaciones. Existe un algoritmo eficiente que es una variación del “Método Rústico Ruso”[21]. Este calcula M = ( C d ) mod n, como sigue:

1. M = 1.

2. Si des impar, M = ( M x C ) mod n.

3. c = (C x C ) mod n.

4. d = parte entera de d/2.

5. Si d no es cero, repetir desde el paso 2; si no, terminar siendo M la respuesta.

Para elevar un número a la potencia 63196467, este algoritmo ejecuta su lazo (del paso 2 al 5 ) 26 veces.

3.4 Llaves.

Como se dijo anteriormente, es posible obtener un par de llaves, n y d, para el cifrado y el descifrado, pero no es factible calcular d a través de n. Los expertos opinan que eso es cierto cuando n y d se construyen de la siguiente manera.

Page 37: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 3. EL CRIPTOSISTEMA RSA. 29

e

La llave de cifrado n, es el producto de números primos grandes, p y q:

n = PP (3.15)

La llave de descifrado, d, se calcula de p y q por:

d = [ e ( p - 1 ) ( q - 1 ) + 1 ] / J (3.16)

Aunque n es pública, p y q permanecen en secreto. Si n. es suficientemente grande, por ejemplo 200 dígitos, es prácticamente imposible para cualquiera tratar de factorizarlo y descubrir los valores de p y q. Y sin conocer p y q, es igualmente difícil obtener d.

Para los ejemplo de cifrado y descifrado citados anteriormente, las llaves fueron construidas como se muestra a continuación:

número primo, p = 7151 número primo, q = 13259

n = 7151 x 13259 = 94815109 d = (2 x 7150 x 13258 + 1)/3 = 63196467

llave de cifrado, llave de descifrado,

Debido a que p y p pueden tener 100 o más dígitos en un sistema RSA ope- raciona, su selección requiere asistencia por computadora. Las siguientes tres res- tricciones son aplicables para saber como deben ser escogidos. Primero, ni p - 1 ni q - 1 deben ser divisibles entre 3, o de otra manera la operación de descifrado no funcionará correctamente. Segundo, p - 1 y q - 1 deben tener al menos un factor primo grande. Tercero, la razón p/q no debe aproximarse a una fracción simple: 213, 314, etc. Con estas dos últimas restricciones se asegura que n será difícil de factorizar.

Existen varios métodos para obtener números primos grandes. Uno de ellos es el siguiente. Seleccionar un número aleatorio impar del tamaño que sea necesario y determinar si es primo. Si no lo es, incrementar10 ( o decrementarlo) en dos e intentar nuevamente, repitiendo hasta encontrar el primo. No es necesario intentar factorizar un número para determinar si es primo.

Para determinar si un número n es primo, seleccionar cualquier número mayor

Page 38: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPIYULO 3. EL CRIPTOSISTEMA RSA.

que i y menor que n, z por ejemplo, y calcular

30

y = ( z” - ’ ) mod n (3.17)

si yno es igual a 1, n no es primo. Pero si y = 1, n puede ser primo, requiriéndose pruebas posteriores. Si la prueba se realiza con diferentes valores de z y y = 1 para todos los casos, n probablemente sea primo.

A continuación se muestra otro método un poco más complicado.

Algoritmo P [io]. Dado un número entero impar n, este algoritmo intenta decidir si n es o no primo. Repitiendo el algoritmo algunas veces, es posible estar completamente seguro de la “primalidad” de n, no obstante la primalidad no será probada rigurosamente. Supóngase que n = 1 t 2’q, donde q es impar.

e Pi. Sea z un entero aleatorio en el rango 1 < z < n.

e P2. Hacer j e O y y c zq mod n.

e PS. Si j = O y y = 1, o si y = n - 1, terminar el algoritmo. En este momento se puede decir que “n probablemente es primo”. Si j > O y y = 1, saltar a P5.

P4. Incrementar j en 1. Si j > k, hacer y e ya mod n y regresar al paso P3.

PS. Terminar el algoritmo. Aquí se puede decir que “definitivamente n no es primo”.

La idea fundamental del Algoritmo P es que si n = 1 + 2’q es primo y z q mod n # 1, la secuencia de valores

z q mod n,z*q mod n, z‘q mod n , . . . , zzkq mod n

terminará en 1, y el valor anterior al primer i será n - 1. (Las únicas soluciones para ya G l(mod p ) son y G f l , cuando p es primo, dado que ( y - i ) ( y t 1) debe ser un múitiplo de p ) .

El Algoritmo P falla a lo sumo un 25% de las veces, para todo n. Realmente es muy raro que el algoritmo falle del todo, para la mayoría de los valores de n; pero

Page 39: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPÍTULO 3. EL CRIPTOSISTEMA RSA. 31

el punto crucial es que la probabilidad de faiia es completamente independiente del valor de n.

Supóngase que ejecuta el Algoritmo P repetidamente, escogiendo el valor de z independiente y aleatoriamente en el paso PI. Si el algoritmo reporta continuamente que el número n no es primo, se puede decir que n definitivamente no es primo. Pero si el algoritmo reporta en 25 intentos consecutivos que “n probablemente es primo”, se puede decir que n “casi seguramente es primo”. En términos estadísticos la pro- babilidad de que en 25 veces consecutivas el procedimiento proporcione información errónea aceca de n es menor que (1/4)a6. Esto es menor a uno en 1 x 10l6; aún si se obtienen 1 x io8 primos diferentes con tal procedimiento, el número esperado de errores podría ser menor a &. Es mucho más fácil que una computadora pierda un bit en sus cálculos, debido a un malfuncionamiento del hardware, a que el Algoritmo P tenga repetidamente errores.

I

I/

Page 40: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

Capítulo 4

Programación de DBspositivss de Control.

32

Page 41: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

‘1

CAPíTULO 4. PROGRAMACIÓN DE DISPOSITIVOS DE CONTROL. 33

Para el desarrollo del sistema RSA se hizo una división de las dos partes que lo componen: software y hardware. Dentro del hardware se contemplan aspectos rela- cionados con las características, funcionamiento y programación del puerto serie, del controlador de interrupciones programable (PIC, por sus siglas en inglés) y del transmisor receptor asíncrono universal (UART, por sus siglas en inglés) 19, 3). ES- tos dispositivos forman parte del hardware de las computadoras utilizadas (tipo AT marca Olivetti modelo M280 con coprocesador matemático, compatibles con IBM). El desarrollo del software involucra el diseño de los algoritmos y la implementación de los programas.

Dentro del presente trabajo, para realizar el enlace entre las dos computadoras personales que se intercambiar& información cifrada, se utilizan las comunicaciones asíncronas. En éstas, la máquina envía o recibe bytes de información, esto lo hace bit por bit. El tiempo entre bytes o datos no es importante, pero el tiempo de secuencia de los bits de un byte s í es crítico. La señal en la línea oscila entre alto y bajo, lo que corresponde a 1’s y O’s lógicos. Se dice que existe marca cuando hay un nivel alto (=l) y espacio cuando hay un nivel bajo (=O).

La línea se mantiene en una condición de marca siempre y cuando no exista transferencia de datos. Cuando existe transmisión de datos, la señal cae al nivel lógico O durante el bit de inicio. Con ésto, el byte de datos sigue un patrón de señales altas y bajas. Después del último bit de datos sigue uno de paridad, el cual se utiliza en la detección de errores, y por último, la secuencia concluye con 1 o más de paro. Estos últimos inician el estado de marca que permanece hasta que empieza la transmisión del siguiente byte de datos. El número de bits de paro utilizados es significativo debido a que son los que establecen la cantidad de tiempo mínimo que debe pasar antes del siguiente de inicio. En la figura 4.1 se puede ver esta secuencia.

La transmisión y la recepción deben utilizar el mismo protocolo para estos patrones de datos, y deben operar a la misma velocidad de transmisión la cual se mide en bits por segundo (bps).

4.1 Programación del UART 8250.

La comunicación serie es tan complicada que se han tenido que diseñar circuitos integrados (CI) especiales para desarrollar el trabajo de formar y temporizar las cadenas de bits que comprenden los datos serie. A tal dipositivo se le denomina

Page 42: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPITULO 4 . PROGRAMACIÓN DE DISPOSITIVOS DE CONTROL. 34

E W n 5 m

w w can

5 :

W

t, W n

m

Figura 4.1: Transmisión de un byte de datos serie.

transmisor receptor asíncrono universal o UART. Sin los UART's, la programación en las comunicaciones sería extremadamente complicado.

El sistema operativo que se utilizó es el Sistema Operativo de Disco (DOS, por sus siglas en inglés). Este soporta dos puertos de comunicaciones, por lo tanto dos UART's. Sus direcciones base están en 0040:OOOO para COMl y 0040:0002 para COM2. (Una dirección base es la dirección del puerto más baja de dos bits del grupo de direcciones del puerto las cuales puede accesar el UART).

1

El UART 8250 tiene diez registros programables de un byte mediante los cuales se controla y se monitorea el puerto serie. La mayoría están dedicados a inicializar el puerto, un proceso que puede ser algo complicado. Los diez registros se accesan a través de siete direcciones del puerto, 3FSH-3FEH. En cinco caaos, los registros accesados en una dirección de un puerto particular dependeh del estado del bit 7 del registro de control de linea, el cual es el Único registro en el puerto 3FBH. En la tabla 4.1 se citan los registros y su función.

De los diez registros, solo seis son necesarios para establecer una comunicación serie simple. El registro de retención de transmisión retiene el byte de datos que va a ser enviado, y el registro de recepción de datos almacena el byte de datos recientemente recibido. Los registros de control de líneay estado de lineainicializan y

'I

Page 43: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 4. PRQGRAMACIÓN DE DISPOSITIVOS DE CONTROL.

REGISTRO FUNCION

3F8H 3F8H 3F8H 3F9H 3FBH 3FAH (IN) 3FBH (OUT) 3FCH (OUT) 3FDH (IN) 3FEH (IN)

(OUT, bit 7=0 en 3FBH (IN, bit 7=0 en 3FBH (OUT, bit 7=1 en 3FBH (IN, bit 7=1 en 3FBH) (OUT, bit 7=0 en 3FBH)

Retención de transmisión Recepción de datos Divisor de razón de bauds (byte inferior) Divisor de razón de bauds (byte superior) Habilitación de interrupciones Identificación de interrupciones Control de línea Control de modem Estado de línea Estado de modem

35

I I

Tabla 4.1: Registros del UART.

monitorean la línea serie, utilizando la razón de bauds’ dispuesta en los dos registros divisores de razón de baud. De los cuatro registros restantes, los registros de control de modem y estado de modem se utilizan para comunicaciones con modems, y los dos registros relacionados con interrupciones se utilizan solo en rutinas que manejan interrupciones.

Para el desarrollo del sistema RSA se utilizaron todos los registros anterior- mente mencionados. Aunque el enlace que ne hizo fue entre dos computadoras personales sin utilizar modems, también se emplearon los registros relacionados con estos Últimos (4.1.6). \

En el presente trabajo se le da gran importancia a los registros de interrup- ciones. Esto es debido a que las interrupciones se utilizan en las comunicaciones por razones de eficiencia. Las rutinas de comunicaciones simples constantemente monitorean el registro de estado de línea, esperando la llegada de un caracter, o esperando hasta que el registro indique que todo está bien para la transmisión de otro byte de datos. Puesto que el CPU opera a gran velocidad, comparada con los 300 o 1200 bits por segundo a que se transmiten típicamente los datos serie, este método puede ser un desperdicio de tiempo de CPU que de otra manera se podría dedicar a procesar datos de entrada o salida. Es por esta razón que el 8250 está

‘Razón de bauds = velocidad de transmisión. ‘I

I

I

Page 44: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAP~TULO 4 . P R O G R A M A C I ~ N DE DISPOSITIVOS DE CONTROL. 36

II diseñado para ocasionar una interrupción siempre que llegue un caracter, ocurra un error, etc. La interrupción ejecuta momentaneamente un procedimiento dentro de un programa dado y podría, por ejemplo, sacar el siguiente caracter de un buffer de comunicaciones.

4.1.1 Inicialización del Puerto Serie.

Cuando se inicializa un puerto de comunicaciones, se deben establecer todos los parámetros necesarios. Estos parámetros incluyen longitud de palabra, número de bits de paro, tipo de paridad y velocidad. La longitud de palabm es el número de bits que forman la unidad básica de datos.

Ya sea para entrada o salida, se deben inicializar, por lo menos, cuatro registros del CI 8250 para operaciones serie. Estos son los dos registros divisores de razón de bauds, el registro de control de línea y el registro habilitado1 de interrupciones.

4.1.2 Inicialización de la razón de bauds.

El divisor de ratón de b a d es un número que divide al valor del reloj del sistema (1190000 ciclos/segundos), obteniéndose un resultado equivalente a la velocidad de- seada. Por ejemplo, para 1200 bps el divisor seria 96, dado que 1190000/96 es aproximadamente igual a 1200. Las velocidades de 300 y menores requieren un número de dos bytes como divisor, es por esto que el CI 8250 necesita dos regis- tros para el divisor. El byte superior se envía a 3F9H y el byte inferior a 3F8H. En ambos casos, el registro de control de línea en 3FBH debe estar en 1 antes de enviar datos; por otro lado, estas dos direcciones manejan los valores de otros re- gistros (tabla 4.1). En la tabla 4.2 se muestran algunos valores requeridos por las velocidades más comunes.

Siempre, como primer paso, se asignan los registros de velocidades, dado que son los únicos que requieren que el bit 7 sea 1 en el registro de control de línea. Después se establece el contenido del registro de control de línea, haciendo el bit 7 igual a O con lo que todos los accesos de los registros subsecuentes están correctos.

Page 45: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTüLO 4 . PROGRAMACIÓN DE DISPOSITIVOS DE CONTROL. 37

Razón de Bauds

110 300 600 1200 1800 2400 3600 4800 9600

3F9H

04H 01H OOH

OOH OOH

OOH OOH

oon

oon

3F8H

17H 80H COH

40H 30H 20H 18H OCH

6011

Tabla 4.2: Razones de bauds y sus divisores correspondientes.

4.1.3 Inicialización del registro de control de línea.

La función de cada bit del registro de control de línea en 3FBH se muestra en la tabla 4.3.

Generalmente los bits 5 , 6 y 7 están a O. El resto proporciona los valores deseados del protocolo de comunicaciones.

4.1.4 Cómo determinar el puerto de comunicaciones.

Existen dos formas mediante las cuales un programa puede decidir cuál de los canales COM se va a utilizar. Una de dichas formas es especificar el número de canal en el código del programa. La otra es escribir el programa para COM1.

El área de datos del BIOS' tiene espacio para cuatro variables de dos bytes las cuales contienen las direcciones base de los canales serie. Una dirección base es la dirección del puerto más baja del grupo que accesa un canal serie en particular. La dirección base del COMl está en 0040:OOOO y la de COM2 está en 0040:0002. Para cambiar los puertos serie, simplemente se intercambian los dos valores. Volviendo a

"Basic input Output System.

Page 46: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPÍTULO 4 . P R O G R A M A C I ~ N DE DISPOSITNOS DE CONTROL. 38

Función

Longitud de caracter. O0 = 6 bits, O1 = 6 bits, 10 = 7 bits, 11 = 8 bits. Número de bits de paro. O = 1, 1 = 1.5 si la longitud de caracter es 5, si no = 2 Paridad. 1 = se genera paridad, O = no. Tipo de paridad. O = impar, 1 = par. Paridad inherente. La paridad siempre es 1 o O. O = deahabditada 1 = siempre 1 si bit 3 = 1 y bit 4 = O ó 1 = siempre O si bit 3 = 1 y bit 4 = 1 ó 1 = no paridad si bit 3 = O. Interrupción. Ocasiona la salida de una cadena de O’s como señal hacia una estación remota. O = deshabilitada, 1 = interrupción. Cambia laa direcciones del puerto de otros registros en el CI.

Tabla 4.3: Registro de control de línea.

Page 47: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTüLO 4 . PROGRAMACIÓN DE DISPOSITIVOS DE CONTROL. 39

I I I Bits I FnnciÓn I I

I 1 = se ha recibido un byte de datos. 1 = los datos recibidos se han empalmado (el caracter anterior no se removió a tiempo). 1 = error de paridad (probablemente debido a ruido en la linea). error de trama (la transmisión está fuera de sincronía). detección de interrupción (se recibió una cadena larga de 1’8, indicando que la otra estación pide un fin de transmisión). 1 = registro de retención de transmisión vado 1 = registro transmisor de corrimiento vacío (este registro toma los datos del registro de retención y los convierte a formato serie). línea apagada.

Tabla 4.4: Registro de estado de línea.

cambiar las direcciones por segunda ocasión se restablecen los valores origindes de los puertos.

4.1.5 Monitoreo del estado del puerto serie.

El registro de estado de lánea del UART 8250 establece el protocolo de comunica- ciones. Este registro se localiza en la dirección del puerto desplazada 5 unidades hacia arriba de la dirección base. Por lo general se monitorea constantemente du- rante la comunicación. En la. transmisión de datos, el registro indica cuándo el caracter previo se ha enviado, para evitar que el programa encime el siguiente ca- racter. En la recepción de datos, el registro informa ai programa la llegada de un caracter, por lo que el programa puede extraerlo antes de que sea eliminado por el arribo del siguiente. La asignación de bits se muestra en la tabla 4.4.

Page 48: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 4 . PROGRAMACIÓN DE DISPOSITIVOS DE CONTROL.

I De la computadora al modem:

Data Terminal Ready (DTR)

Request To Send (RTS) 14

Del modem a la computadora:

Data Set R&dy (DSR)

Clear To Send (CTS)

informa al modem que la computadora está lista para comunicación. informa al modem que la computadora desea enviar datos.

informa a la computadora que el modem está listo. informa a la Computadora que el modem está Listo para iniciar la transmisión de datos.

40

Tabla 4.5: Señales de control.

4.1.6 Inicialización y monitoreo del modem.

Aunque en el desarrollo del sistema RSA no se utilizaron modems, a continuación se analizarán los registros relacionados con aquéllos, pues se empleó parte de los mismos.

I#

Hay seis líneas mediante las cuales los modems se pueden comunicar con la computadora. En la tabla 4.5 se pueden ver sus nombres, abreviaciones y funciones.

Primeramente la computadora enciende la señal data terminal read#, después da instrucciones al modem que llame a la estación remota. Una vez que el modem ha establecido la conexión, enciende la señal data set read#. Esto avisa a la computadora que el modem está listo para iniciar la comunicación, y es en este punto donde la computadora puede encender la señal request to s e n a . Cuando el modem responde con clear to sena , la transmisión puede iniciar.

Las dos líneas estándar mediante las cuales la computadora controla al modem pueden accesarse a través del registro de control de modem del UART. Este registro

3En el apéndice A se explican estos términos.

11

Page 49: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

41 'I

CAPíTULO 4 . PROGRAMACIÓN DE DISPOSITIVOS DE CONTROL.

Registro de Control de Modem:

bits 7-6 siempre O. I1 4

3 salida auxiliar #2. 2 salida auxiliar #l. 1 O

1 = la salida del UART se toma como entrada.

1 = la señal 'request to send' esté activa. 1 = la señal 'data terminal ready' está activa. I/

Tabla 4.6: Registro de control de modem.

se localiza en la dirección del puerto desplazada 4 unidades hacia arriba de la di- rección base del canal COM que se está utlizando. En la tabla 4.6 se pueden ver las asignaciones para cada bit de este registro.

Generalmente los'bits O y I del registro de control de modem están a 1, y los otros a O. El bit 3 se pone a 1 solo cuando se utilizan interrupciones. Finalmente, el bit 4 presenta una característica especial que es Útil para probar programas de comunicaciones estando fuera de línea.

Las cuatro líneas mediante las cuales el modem envía información a la com- putadora se monitorean a través del regegistro de estado de modem. Este registro se localiza en la dirección del puerto desplazada 6 unidades hacia arriba de la dirección base. En la tabla 4.7 se muestra el patrón de bits.

I

Los programas constantemente monitorean estos bits durante las operaciones de comunicaciones. Los cambios en los 4 bits altos se reflejan en los cuatro bajos. Estos bits toman el valor de 1 solo cuando ocurre un cambio en el estado del corres- pondiente bit alto desde la última vez que se leyó el registro. Los cuatro bits bajos se restablecen automáticamente a O después de la operación de lectura.

4.1.7 Transmisión de datos.

La transmisión de datos es más sencilla que la recepción, dado que un programa tiene el control completo sobre la composición de los datos, y sobre la velocidad

Page 50: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 4. PROGRAMACIÓN DE DiSPOSiTIVOS DE CONTROL. 42

I I Registro de Estado de Modem:

bit 7 6 5 4 3 2 1 O

1 = ‘data carrier detect’ 1 = ‘ring indicator’ 1 = ‘data set ready’ 1 = ‘clear to send’ 1 = cambio en ‘data carrier detect’ 1 = cambio en ‘ring indicator’ 1 = cambio en ‘data set ready’ 1 = cambio en ‘clear to send’

I!

Tabla 4.7: Registro de estado de modem.

a la que son enviados. No obstante, las rutinas de transmisión pueden ser muy elaboradas si envían los datos al mismo tiempo que los procesan. El tiempo puede ser un problema cuando se Útiliza el protocolo XON/XOFF. Este protocolo emplea los caracteres ASCII 17 (XON) y 19 (XOFF) parainformar a l a estación transmisora que el receptor desea que la transmisión se interrumpa temporalmente. Para ajustarse a esto, el programa constantemente debe estar monitoreando los caracteres de entrada mientras está transmitiendo. Análogamente, para detectar que la estación remota ha enviado una cadena O’s e ir a una condición de interrupción, el transmisor debe monitorear constantemente el bit de interrupción.

4.1.8 Recepción de datos.

Un programa de comunicaciones está listo para recibir datos una vez que se ha idcializado el puerto de comunicaciones y se ha establecido contacto con la estación remota. La recepción de datos nunca va separada por entero de la transmisión, dado que un programa puede necesitar enviar una señal XOFF para detener el flujo de datos si se reciben más rápido de lo que se procesan. XON indica a la estación remota que reinicie la transmisión.

Page 51: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

43 CAPÍTULO 4. P R O G R A M A C I ~ N DE DISPOSITIVOS DE CONTROL.

4.1.9 Envio y recepción de datos utilizando interrupciones.

Los datos de entrada se deben analizar, los datos de salida se deben empaquetar y puede ser necesario trasladar los bloques grandes de datos de o a disco. Las in- terrupciones dentro de las comunicaciones permiten a un programa consumir solo el tiempo necesario para las operaciones de entrada-salida. Por ejemplo, para ha- bilitar una interrupción, el control se transfiere a la rutina de transmisión de datos solo cuando el registro de retención de transmisión está vacío, y el control vuelve al programa una vez que se ha enviado un byte de datos, permitiendo continuar al programa hasta que el registro de retención de transmisión esté listo nuevamente.

Las máquinas IBM tienen dos canales para interrupción por hardware para comunicaciones, números 3 (COM1) y 4 (COM2). El UART 8250 permite cuatro clases de interrupciones'para cada canal, utilizando los siguientes números en código binario:

O0 O1 10 I datos recibidos 11 error en la recepción

cambio en el registro de estado de modem registro de retención de transmisión vacío

Estos códigos está; en los bits 2-1 del registro de identificación de interrupción, el cual se localiza en la dirección del puerto desplazada 2 unidades hacia arriba de la dirección base. El bit O de este registro toma el valor de 1 cuando está pendiente una interrupción; los otros bits no se utilizan y siempre tienen un valor de O.

Para seleccionar una o más interrupciones, se programa el registro habilitador de interrupciones, el cual se localiza en la dirección del puerto desplazada 1 unidad hacia arriba de la dirección base. El patrón de bits se muestra en la tabla 4.8.

Cuando ocurre alguno de estos eventos, se llama a una interrupción de hard- ware, lo cual sucede en el canal 3 del controlador de interrupciones 8259 para COMl y en el canal 4 para COM2. La rutina de interrupción transfiere el control al código que esté apuntado por el vector de interrupciones asociado. Debido a que es una interrupción de hardware, puede enmascararse.

Cualquier número de tipos de interrupción se pueden habilitar simultanea- mente. Pero si se habilita más de una, la rutina debe revisar el registro de identifi- cación de interrupción para saber de cual se trata. Dado que puede ocurrir más de

II

Page 52: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

1

CAPíTULO 4 . PROGRAMACIÓN DE DISPOSITIVOS DE CONTROL.

I Bit 1 Función

I I II

O 1

2 3

4-7

l=interrumpe cuando se reciben datos kinterrumpe cuando el registro de retención

l=interrumpe cuando hay error en la recepción de datos l=interrumpe cuando hay cambio en el registro de estado de modem no usados, siempre O

de transmisión está vacío

Tabla 4.8: Registro habilitador de interrupciones.

Código - -

11 10 o1

11

1 Tipo

error o interrupción datos recibidos transmisor listo

cambio'en el estado de modem

Acción para restablecimiento

leer el registro de estado de línea leer el registro de recepción de datos sacar el ceracter al registro de retención de transmisión leer el registro de estado de modem

Tabla 4.9: Restablecimiento de la condición de interrupción. '1

44

de una interrupción simultaneamente, el bit O del registro de identificación está de- dicado a informar si existen interrupciones adicionales pendientes. Cuando ocurren dos o más a la vez, se procesan en el orden mostrado en la tabla 4.9. Las interrup- ciones adicionales se deben procesar antes de regresar de la rutina de interrupción. La condición de interrupción previa se restablece ejecutando la acción mostrada en la columna derecha de la tabla'4.9.

I!

Page 53: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

I!

CAPíTULO 4. PROGRAMACIÓN DE DISPOSITIVOS DE CONTROL.

Yivel del PIC

:RQO 1 2

3 4 5 6 7

8 9

10 11 12 13 14 16

I!

Número de Int.

008h OO9h OOAh ' 070h O7lh '072h 073h 074h '076h '076h

.! 077h OOBh IOOCh 'OODh OOEh OOFh

,I

I!

Vector - - 0020h 0024h 0028h OlCOh 01C4h 01C8h OlCCh OlDOh 01D4h 01D8h OlDCh 002Ch OO3Oh 0034h 0038h 003Ch

Dispositivo

Reloj Teclado Canal de entrada salida Reloj de tiempo real Al maestro 8259 nivel 2 Reservado Reservado Reservado Coprocesador numérico Controlador de disco duro Reservado Entradn/salida serie secundaria (COM2) Entradn/salida serie primaria (COM1) Disco duro Controlador de disco Impresora

45

Tabla 4.10: Interrupciones de hardware. '1

4.2 Controlador de interrupciones programable. 1

El controlador de interrupciones programable CI 8259 se utiliza en todas las máquinas IBM para manejar interrupciones de hardware. Debido a que puede llegar más de una interrupción a la v k , el CI tiene un arreglo de prioridades. Existen ocho niveles de prioridad, excepto en las máquinas AT, las cuales tienen 16 (IRQO a IRQ15)6. La prioridad más alta la tiene la interrupción IRQO. Los ocho niveles extra en las máquinas AT se manejan por un segundo CI 8259; esta segunda serie de niveles se encuentra entre IRQ2 e IRQ3. Las peticiones de interrupción 0-7 son atendidas por INT 8H - INT FH y de la 8 a la 15 por INT 70H - INT 77H. En la tabla 4.10 se listan los dispositivos asociados con cada interrupción.

Un vector de interrupciones no es más que un simple apuntador -una dirección de 32 bits (4 bytes) con los valores respectivos de segmento y desplazamiento- al-

bIRQ = petición de interrupción.

I1 I

Page 54: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 4. PROGRLMACIÓN DE DISPOSITIVOS DE CONTROL. 46

macenado en la parte baja de la memoria, de OOOO:OOOO a 0000:03FF. Cada vector sitúa el inicio de la rutina de servicio de interrupción asociado con un número de interrupción entre O0 y FFh, para dar un total de 256 interrupciones de software y hardware. '1

El PIC 8259 tiene tres registros de un byte que controlan y monitorean las ocho líneas de interrupción de hardware. El registro de petición de interrupcwn (IRR, por sus siglas en inglés) cambia un bit a 1 cuando la línea de interrupción correspondiente hace una petición. El CI revisa si existe alguna otra petición de interrupción a través del regiatro en aeruicio (ISR, por sus siglas en inglés). La circuitería adicional asegura que se cumpla el esquema de prioridades. Finalmente, antes de llamar a la interrupción, el registro de máacara de interrupción (IMR, por sus siglas en inglés), verifica si está o no permitida una interrupción de tal nivel.

4.3 Interfase RS-232-C. 't

Como ya se ha mencionado, para e1 desarrollo del sistema RSA, se hizo la inter- conexión de dos computadoras personales tipo AT, cuyo diagrama a bloques se muestra en la figura 4.2, a través del puerto serie respectivo. Dicha interconexión se hizo en base al estándar EIA RS-232-C [15,6], el cual se describe en el ápendice A.

En el diseño de la interfase se utilizaron 2 conectores hembra de 25 terminales, cuyo alambrado se puede ver en la figura 4.3. Solamente se utilizaron 8 del total de terminales. La función de cada terminal se indica en la tabla siguientea.

I1

1 - 2 +

1' 3 -i

4 4 5 - i

I' 6 -t

, 7 - t

I

20 -i I1

Protective Ground. Transmitted Data. Received Data. Request to Send. Clear to Send. Data Set Ready. Signal Ground. Data Terminal Ready.

"La asignación de cada terminal está en inglés, dehido a que la traducción de los términos no es s e n d s . En el ápendice A ne explica con claridad cada uno de ellos.

I!

Page 55: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

I1 CAPíTULO 4 . PROGRAMACIÓN DE DISPOSiTiVOS DE CONTROL. 47

i j

r-l "

Figura 4.2: Diagrama a bloques de la computadora personal M280. I/

Page 56: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

I !/i

1 2

5 , 6 7,

20

48 CAPíTüLO 4 . PROGRAMACIÓN DE DISPOSITIVOS DE CONTROL.

- 1 3

- 2

5 20

- - 7 6

4:-J 4

Page 57: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

Capítulo 5

11

Desarrollo del Sistema M A . SOFTWARE.

Page 58: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 5. DESARROLLO DEL SISTEMA RSA. SOFTWARE. 50

En este capítulo se describe el diseño del software del criptosistema RSA. El software contempla lo relacionado a lenguajes de programación, procedimientos utilizados, interfase hombre-máquina y manejo de pantallas.

I

5.1 Lenguajes de Programación. I,

Se utilizaron dos lenguajes de programación para el desarrollo del sistema RSA:

IO

e Turbo Pascal versión 5.0 (Borland) 1221.

Ensamblador (Mikrosoft) [3].

La razón de utilizL un lenguaje de alto nivel (Turbo Pascal) y otro de bajo nivel (Ensamblador) es porque e,l primero reune las características necesarias para la elaboración y manejo de pantallas, es flexible en lo referente al manejo de archivos, además de tener gran capacidad para el manejo numérico. El segundo tiene la capacidad de actuar directamente sobre algunos dispositivos de entrada/salida de la computadora, esto es, a través del lenguaje ensamblador se puede programar y obtener información del puerto serie, el UART, etc., aparte de que la ejecución de un algoritmo dado es mucho más rápida que en lenguajes de alto nivel.

II 5.2 Procedimientos.

II

Para el desarrollo de los programas y de acuerdo con lo visto en el capítulo 3 se plantearon los siguientes objetivos:

1. Dados dos números primos ( n y q), obtener la llave correspondiente.

2. Establecer el enlace entre 2 microcomputadoras, detectando errores y fallas.

3. Hacer el intercambio de llaves.

4. Realizar la codificación de la inforniacióri.

I!

I)

!I J:

Page 59: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

I1

CAPíTULO 5. DESARROLLO DEL SISTEMA RSA. SOFTWARE. 1

5. Iniciar la transferencia de información cifrada.

6. Descifrar la información recibida.

51

7. Terminar.

5.2.1 Números Primos.

Como se sabe, un númeto primo es aquel que solo es divisible entre dos números: la unidad y entre s í mismo. Cada número entero mayor que 1 es primo o es el resultado de multiplicar un conjunto único de primos.

Tomando en cuenta lo anterior, se hizo un programa para la generación de números primos. Dicho programa se basa en el siguiente algoritmo[lO]:

I1

I

n t 3 , j - 1 iilazoi: j t j + 1, primolj] c n

: lazo2: n c n + 2, k t 2 iilazo3: q t n DIV pimob]

r t n MOD primo[k]

'1 Si r = O ve a lazo2 Si q 5 primo(k1 ve a lazo 1

:I k = k + 1 ve a lazo 3

,I Este algoritmo es eficiente, ya que determina si un número es o no primo en pocas iteraciones. Esto lo hace analizando si alguno de primos ya obtenidos es un factor del número que &e está probando.

Con el algoritmo 'anterior se obtiene una tabla de 32300 números primos, los cuales se almacenan en memoria. Debido a la limitante que presentan las computa- doras personales en cuanto al manejo de números de gran longitud, se opera con números de máximo 6 dígitos. La llave correspondiente se obtiene de multiplicar dos números primos de esta tabla. Dichos números deben reunir las características que se mencionan en la sección 3.4.

II

Page 60: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

11 52 CAPíTULO 5. DESARROLLO DEL SISTEMA RSA. SOFTWARE.

1

5.2.2 Llaves.

El intercambio de las llaves se hace una vez establecido correctamente el enlace. Primeramente el transmisor (microcomputadora que solicita transmitir información) envía su llave al receptor (microcomputadora que recibe la información) a través del puerto serie. En este punto, el transmisor entra a un ciclo de espera mientras el receptor envía su llave. En la figura 5.1 se puede ver un esquema del intercambio de las llaves públicas. Una'vez sucedido este intercambio, se procede a la codificación de la información en base a las llaves del transmisor y receptor.

'I

5.2.3 Cifrado de la Información.

El cifrado de la información se hace en base a lo descrito en la sección 3.3.1, es decir, se siguen los siguientes pasos:

'1

1.

2.

3.

4.

Se toma la primer línea del texto a cifrar.

Se hacen bloques de caracteres cuya suma de dígitos de sus equivalentes ASCII no sea mayor a 6, esto es para no exceder el número de dígitos de la llave. Los bloques se hacen de izquierda a derecha de la línea y de manera secuencial.

Cada bloque, ya en ASCII, se eleva al cubo y se le aplica módulo a la llave enviada por el receptor.

Se toma la siguiente línea de texto y se repiten los pasos 2 y 3 hasta terminar.

1

I/

5.2.4 Transferencia de Información.

Una vez cifrada la información, se inicia la transferencia de la misma. Esto se hace de la manera siguiente:

I) 1. El transmisor envía 16 Kbytes de información y espera para recibir reconocimiento

del receptor.

2. El receptor recibe,'la información y espera.

1

Page 61: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

53 CAPITULO 5. DESARROLLO DEL SISTEMA RSA. SOFTWARE. '1

TERMINAL A TERMINAL B

'A 'A DA F\ B :' PhqA NA N,, = peqS

'1 -

No

NUMERO3 SEQIETm

M = X'mod N, M I

m 'A 'A 'A :'

r - l NUL(EROS SüXFTOS

NUUEROS sEcREsos

D X = M *mod N,

X = Mensaje Original M = Mensaje Cifrado -5

NA.e = Llaves

Figura 5.1: Intercambio de las llaves públicas en un sistema RSA.

11

11

Page 62: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

II CAPíTULO 5. DESARROLLO DEL SISTEMA RSA. SOFTWARE. 54

3. Se repiten los pasos 1 y 2 hasta terminar.

'1

En el caso de que el trhsmisor no reciba reconocimiento, entonces la trans- misión se detiene y se da aviso al usuario (sección 5.3). Por otra parte, cuando el receptor se queda en espera de información y no la recibe, la transmisión también se detiene y se da aviso al usuario (sección 5.3).

I1 5.2.5 Descifrado de la Información.

En el receptor, una vez recibida la información cifrada, se procede a descifrarla. Esto se lleva a cabo en base a lo visto en la sección 3.3.2, y es como sigue:

11

1. El bloque se eleva a una potencia igual a la liave de descifrado.

2. Al resultado se le aplica módulo la llave de cifrado del transmisor, obteniéndose la información origi+l.

3. Se repiten los pasos 1 y 2 hasta terminar.

5.2.6 Terminar. 1

La continuación o finalización del sistema y del enlace se controla mediante menús. En la siguiente sección se verá lo referente a ésto.

'I

11 5.3 Interfaz Hombre-Máquina y Manejo de Pan-

t allas.

Al momento de iniciar al'operar el sistema RSA, en la pantalla de la microcorn- putadora aparecerá la presentación del mismo, así como un menú principal, el cual consiste de 3 opciones (figura 5.2).

Page 63: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 5. DESARROLLO DEL SISTEMA RSA. SOFTWARE.

,

1. Transmitir de disco. 2. Transmitir de teclado.

;I 3. Terminar.

55

Figura 5.2: Menú principal.

El control del menú se lleva a cabo a través del teclado de la microcomputadora. Para seleccionar cualquiera de las opciones desplegadas en la pantalla, se presiona la tecla correspondiente. El menú no desaparecerá de la pantalla hasta que no se presione cualquiera de las teclas indicadas (1, 2 o 3).

5.3.1 Transmisión de un Archivo. #I

¡I Si la opción escogida fue 5 i >, en otras palabras transmitir un archivo de disco, entonces aparecerá otra pantalla (ver figura 5.3).

1, Es en este punto donde se tiene que proporcionar el manejador donde está el

archivo a enviar, además del nombre de dicho archivo. En caso de que exista algún error, se indicará mediante el desplegado de la figura 5.4

Este mensaje permanecerá algunos segundos acompaimdo de un timbre. Des- pués de ésto, se tiene la oportdnidad de proporcionar nuevamente la información requerida. Cuando se está transmitiendo un archivo, se despliega en pantalla el contenido del mismo, línea por línea, que es lo que se está transmitiendo, indicándose la espera de reconocimiento después de cierta cantidad de información transmitida. AI término de dicha transmisión, se indica que se ha finalizado y en seguida se despliega el menú principal. Cuando no existe reconocimiento, entonces aparecerá el siguiente mensaje que se muestra en la figura 5.5.

Page 64: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

'I

II

'1 del Archivo: - Manejador y Nombre

'1

CAPíTULO 5. DESARROLLO DEL SISTEMA RSA. SOFTWARE.

I)

11

I

1 II

Figura 5.3: Pantalla para transmisión de Archivo.

'I

Manejador o Nombre del Archivo Erróneo.

Figura' 5.4: Error en la información proporcionada. I1

56

Page 65: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

,I

57 CAPíTULO 5. DESARROLLO DEL SISTEMA RSA. SOFTWARE.

11

I1 Figura 5.5: Existen fallas al momento de efectuarse la transmisión de información.

Después de ésto, se '+plegará el menú principal.

11

5.3.2 Transmisión desde Teclado. 1

1) Si la opción escogida estando en el menú principal, es < 2 >, en otras palabras, si se desea transmitir desde, teclado, entonces tendrá lugar el mensaje que se muestra en la figura 5.6.

I/

El cursor se posicionrá algunas líneas más abajo, y es aquí donde se podrá empezar a teclear el texto a transmitir. La transmisión se hace después de cada <RETURN> que se teclee. Para terminar y regresar al menú principal es necesario presionar la tecla < S > y en seguida se podrá ver el menú principal.

'I I/

'1

't

I/

5.3.3 Terminar.

Para finalizar y deshabilitar el sistema, solo basta teclear < 3 > cuando se está en el menú principal.

Page 66: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

,

Figda 5.6: Transmisión desde teclado. I(

5.3.4 Recepción.

En el caso de que se trate de recepción de información, en la pantalla del receptor se desplegará un mensaje (ver figura 5.7). h

El trabajo que se esté haciendo se tendrá que suspender, y además se deberá poner a la microcomputadora como escucha. Después de io anterior, en la pantalla se podrá apreciar la información que se está recibiendo. En el caso de que solo llegue el aviso de arribo de información y en realidad no esté llegando nada, entonces se desplegará el mensaje de la figura 5.8. Después de esto, se podrá continuar con el trabajo que se estaba haciendo antes de la interrupción.

Page 67: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 5 . DESARROLLO DEL SISTEMA RSA. SOFTWARE. 59

'I

, No existe Información. Sistema detenido.

.I

Figura 5.8: Fallas en la transmisión de información.

Page 68: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

11

n Capítulo 6

Integración del Sistema. ‘I

II I

Page 69: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 6. INTEGRACIÓN DEL SISTEMA. II

61

6.1 Integración del Sistema. II

Una de las etapas más importantes dentro del desarrollo del criptosistema RSA es la programación de los dispositivos de interfase (Cap. 4), ya que de ello depende en gran parte el correcto

t funcionamiento del sistema. En este capítulo se muestra

dicha programación integrada al software necesario para establecer el protocolo que debe existir para realizar el enlace entre las dos terminales además de los programas que operan como interfase con el usuario. I!

,I El sistema consta de 2 programas principales (TRANSMITE Y RECIBE) y

otro residente en memoria (INT), los que deben estar en ambas máquinas. I

TRANSMITE se ejecuta cuando se desea transmitir información. Consta de varias rutinas.

I!

PUERTOSERIE. Deshabiiita las interrupciones del puerto serie para lograr la atención total del CPU y así evitar problemas. Después se programa el puerto en cuestión. 11

Se iniciaiizan las variables necesarias.

Se activan las ventanas que han de ser utilizadas.

PRESENTACION. Determina el tipo de tarjeta de video instalada, despliega el mensaje de presentación y el menú de opciones.

OPCIONES. Inicializa variables, lee caracter de teclado y llama al procedi- miento para transmitir archivo (TRANSARCHNO) o al procedimiento para transmitir de teclado (TRANSTECLADO) o termina, según sea la opción

I1

elegida. 11

- TRANSARCHIVO. Inicializa variables, despliega mensaje y prueba el en- lace entre las máquinas (PRUEBACOM). Esta prueba se hace enviando un caracterIlal puerto serie, activando la línea DTR y esperando que la línea DSR esté activa. El siguiente paso es recibir la información enviada por el receptor (llave de cifrado). Después se procede a hacer la trans- misión de información a través de la rutina TRANSMISION. Esta rutina despliega un mensaje, luego inicializa variables, lee el nombre del archivo a transmitir, procesa cada línea del archivo (caracter por caracter) en

ii

Page 70: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

!I , '.

/I

I

1

CAPÍTULO 6. INTEGRACIÓN DEL SISTEMA. 62

I/

función de la llave de cifrado enviada por el receptor, transmite la infor- mación procesada, espera señal de reconocimiento por parte del receptor, despliega el mensaje correspondiente, el cual depende de si se recibió o no dicho reconocimiento, y por úitimo, despliega mensaje de finalización y cierra el archivo. En caso de que existan fallas, se indicarán a través de desplegados en el monitor de la máquina (FALLAS).

- TRANSTECLADO. Iniciaiiza variables, despliega mensaje y prueba el enlace entre las máquinas (PRUEBACOM). Esta prueba se hace enviando un caracter al puerto serie, activando la línea DTR y esperando que la línea DSR esté'lactiva. El siguiente paso es recibir la información en- viada por el receptor (llave de cifrado). Después se ejecuta la rutina TRANSLINEA. Esta rutina despliega un mensaje, inicializa variables, lee línea de teclado y la procesa en función de la llave de cifrado envia- da por el recept'or, transmite la información procesada, espera señal de reconocimiento por parte del receptor, despliega el mensaje correspon- diente, el cual depende de si se recibió o no dicho reconocimiento. Por último, despliega mensaje de finalización en caso de que ya no se desee enviar más infokación. En caso de que existan fallas, se indicarán a través de desplegados en el monitor de la máquina (FALLAS).

I/

m Se desactivan las vent,anas.

Se habilitan interrupciones de puerto serie para reinicializar el sistema 1

RECIBE se ejecuta cuando se desea recibir información. Consta de varias rutinas.

I1

PUERTOSERIE. Deshabilita las interrupciones del puerto serie para lograr la atención total del CPU y así evitar problemas. Después se programa el puerto en cuestión. 11

e Se iniciaiizan las variables necesarias.

e Se activan las veutanas que han de ser utilizadas.

PRESENTACION. Determina el tipo de tarjeta de video instlada y despliega

I/

I/

mensaje de presentació?.

LLAVE. Genera las llaves de cifrado y de descifrado, utilizando el reloj de la '1 microcomputadora y un archivo de números primos.

I/ I 11

Page 71: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

Y CAPiTULO 6. INTEGRACIÓN DEL SISTEMA.

/I

63

o Se abre un archivo para escritura. En este archivo se almacenará la información que esté enviando el transmisor.

I o TRANSLLAVE. Convierte la llave de cifrado generada a una cadena de carac-

teres y la envía al puerto serie. I)

o RXESPERA. Espera hasta que llegue el primer byte de información.

o RECEP. Inicializa variables, despliega mensaje, almacena la información que va llegando por el puerto serie en memoria, procesa dicha información en función de la llave de descifrado y la almacena en disco, envía reconocimiento. Por último, espera a que sea fin de archivo.

II

O FINAL. Envía reconocimiento y espera por caracter de teclado.

NORECEP. En caso de que no haya llegado información despliega mensaje y I

espera por caracter 'he teclado.

Se cierra el archivo de escritura.

o Se desctivan ventanas.

o Se habilitan interrupciones de puerto serie para reiniciaiiear el sistema.

II

11

I/ INT inicializa el sistema. Este programa se ejecuta al momento de encender

la terminal. Dado que se desea interrumpir cualquier proceso que se esté ejecutando en caso de existir petición 'por parte de la terminal transmisora (parlante), es decir, que la terminal receptora actúe como escucha, es necesario habilitar la IRQ4 del CI 8259 (Controlador de Interrupción Programable).

El registro para enmascarar interrupciones está en la dirección del puerto 21H. Dado que se están habilitando las interrupciones de hardware (IRQO a IRQ15), también se incluye la interrupción de entrada\salida serie (IRQ4).

La programación del Juerto se lleva a cabo a través de los registros del UART. Primeramente se apunta al registro de control de línea (3FBH) y el bit 7 se pone a 1 para poder programar la,velocidad de transmisión en los registros 3F8H y 3F9H. Al primero se le asigna un valor de OCH y ai segundo de OOH, obteniéndose una velocidad de 9600 bps. Después se direcciona nuevamente el registro de control de línea (3FBH) y se le asigna un valor de OAH para así obtener una longitud de caracter de 7 bits, un bit $e paro y paridad impar. Para habilitar interrupciones

I/

11

Page 72: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPITULO 6. INTEGRACIÓN DEL SISTEMA. 64

Tabla 6.1: Programas a ejecutar para parlante y escucha.

se direcciona el registro,3F9H (ahora el bit 7 del registro 3FBH es O), el cual se programa con un valor de OlH, con ésto el sistema se interrumpe cuando se reciben datos. Por último, se direcciona el registro de control de modem (3FCH), al cual se le da un valor de 09” con esto se indica al sistema que la señal “data terminal ready” está activa y que se va a’ emplear el canal de comunicaciones COM1.

I

i‘

Como ya se ha mencionado, este programa se va a ejecutar cada vez que se encienda la terminal, por lo que se debe hacer residente en la memoria de la misma. Con el procedimiento RESIDENTE se obtiene dicha residencia.

Dentro de Rutina de Servicio se tiene la rutina de atención de interrupción. Dicha rutina se ejecuta tantas veces como ocurra una interrupción, es decir, tantas veces como se detecte que se ha recibido un dato por el puerto serie. Primeramente se verifica si existen errores (de paridad, transmisión fuera de sincronía, etc.). Des- pués, si no existen errores, se despliega el siguiente mensaje: ‘ESTA LLEGANDO INFORMACION’, con lo cual se termina la rutina de servicio.

II Una vez inicializado el sistema, y si se desea transmitir información, es nece- sario que en la terminal transmisora se ejecute el programa TRANSMITE, citado anteriormente. Cuandolse haya detectado la petición de atención en la terminal receptora, es necesario ejecutar en la misma, el programa RECIBE (ver tabla 6.1). Los programas descritos anteriormente se muestran en el apéndice B a través de diagramas de Warnier/Orr.

Page 73: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

\ /I 'I

Capítulo 7 1

Pruebas. 1

,

II

65

Page 74: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

I1

CAPíTULO 7. PRUEBAS.

7.1 Consideraciones.

66

Como ya se ha mencionado anteriormente, la implementación del criptosistema RSA se hizo utilizando 2 comphadoras personales, marca Olivetti tipo AT modelo 280 con coprocesador, cuya velocidad de operación es de 12 MHz, además de contar con tarjeta gráfica del tipo EGA. Cada una contiene el hardware necesario para realizar una comunicación punto a punto a través de su puerto serie. Este hardware consiste de un UART, para la programación y operación del puerto sene, y de un PIC, para programar y controlar las interrupciones de hardware. La transferencia de información se hace a través del puerto serie de aquéllas. La velocidad de transmisión es de 9600 bps. La trama que se envía está compuesta de un bit de paro, paridad impar y una longitud de caracter de 7 bits.

I/

I/ Un cable de 6 hilos es el que se utiliza para hacer la conexión entre las máquinas. Su longitud es de 2 metros. Este cable une los puertos serie de cada máquina. Para hacer la conexión adecuada y establecer así un enlace apropiado se utiliza la norma RS-232-C de EIA. Las terminales que se utilizan de cada puerto sene son las siguientes: 1 (protective ground), 2 (transmitted data), 3 (received data), 6 (data set ready), 7 (signal ground), 20 (data terminal ready), 4 (request to send), y 5 (clear to send). Las terminales 4 y 5 van puenteadas dado que en el enlace no se están utilizando modems':

II

I

7.2 Pruebas. 11

Se realizaron pruebas de transmisión de información a diferentes velocidades en un ambiente no ruidoso. Se inició con una velocidad de 2400 bps, y se obtuvieron resultados satisfactorios. Luego se incrementó la velocidad, pasando por 4800 bps y 9600 bps, hasta llegar a 19200 bps. Utilizando esta Última se logró establecer correctamente el enlace, pero al momento de iniciar la transferencia de información se presentaron falias [l], las cuales se deben a que la interfase RS-232 no puede operar a más de 9600 bps, resultando ser ésta, la velocidad de transmisión óptima.

Se hicieron prueba! de transferencia de archivos de texto de longitud variada, bajo condiciones normales, en donde la longitud del bloque de transmisión fue de 4K byte. En la figura 7.1, se muestran los tiempos de cifrado y en la figura 7.2 se muestran los de descifraho.

I/

I

Page 75: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

I1

CAP~TULO 7. PRUEBAS. I

-

~

-

. .

..

....

...

-

67

...

...

.

..

..

..

.

Tiempo (minutos) I(

1

. ... . . ... . .

100 1000 Longitud (kBytes)

.I/

Tiempo (minutos)

Figura 7.1: Representación gráfica del cifrado de archivos con respecto al tiempo

1 ;, 10 100 1000 ¡I Longitud (kBytes)

!I Figura 7.2: Representación gráfica del descifrado de archivos con respecto ai tiempo

. . > ’

‘I $!.

!I

Page 76: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPiTULO 7. PRUEBAS. 68

,,

Llave (dígitos) 11 11

50 ; 75

~ 100 1 150

200 250

~ 300

Tiempo Factorización

3.9 horas 104 días 74 años 1.0 xi@ años 3.8 x108 años 5.9 x10’1 años 4.9 xiol6 años 4.2 ~ 1 0 ~ ~ años

Tabla 7.1: Tiempo de factorización según la longitud de la llave.

Las lecturas de tiempo obtenidas se hicieron utilizando el reloj interno de cada máquina,.por lo que la precisión es de centésimas de segundo.

1 Respecto al software) se intentó ejecutar el programa RECIBE (cap. 6) desde

la rutina de atención de interrupción, es decir, se trató de hacer un “shell” desde un programa residente en memoria, lo cual no se logró, pues se presentaron problemas en cuanto a la administración del segmento de pila (stack segment). La finalidad de ésto fue que, al momento de llegar una interrupción por el puerto serie, el receptor pudiera interrumpir cualquier proceso que estuviese ejecutando, y sin salir de dicho proceso, poder ejecutar el programa de recepción de información (RECIBE), para después terminar y regresar al proceso interrumpido, todo esto sin pasar por el sistema operativo, haciendo más sencillo el sistema para el usuario.

,I

Las prueba criptoanaiíticas que se han realizado para conocer la vulnerabilidad del sistema, demuestran que es d&il de romper. Estas pruebas consisten en tratar de obtener los números primos secretos que conforman las llaves de cifrado y de descifrado. La dificultad de de todo esto, estriba en que la longitud de aquéllas es muy grande, por lo que no es una tarea fácil hacer un análisis de las llaves: factorizar la de cifrado, obtener los números secretos, y así conocer la de descifrado. En la tabla 7.1 se muestran estimaciones del tiempo necesario para factorizar llaves de varias longitudes.

1.

ii

Page 77: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPíTULO 7. PRUEBAS.

La seguridad del sidterna desarrollad' que, aunque puede ser violado fácilmente cifrado es pequeiía, la conktante modifica< llaves cada vez que se trata de establecer I seguro y confiable. I

I 69

se puede considerar que es buena, ya iebido a que la longitud de la llave de n de ésta (se genera un nuevo par de a comunicación) lo hace relativamente

Page 78: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

'I I

I

Capítulo 6'' I1

Page 79: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

71 CAPITULO 8. CONCLUSIONES.

La transmisión segura de información a través de canales de comunicación públicos, puede hacerse posible empieando sistemas criptográficos. Dentro de estos sistemas se encuentran los de llaves públicas, entre los cuales se haya el RSA, que por sus características, se define como un criptosistema muy seguro, ya que los intentos de ataque y violación hechos hasta ahora por los criptoanalistas así lo demuestran.

En el presente trabajo se analizó, diseñó, desarrolló y probó el criptosistema RSA, utilizando para ello dos computadoras personales enlazadas por sus respectivos puertos sene.

Debido a las limitantes sue presentan las computadoras utilizadas, el criptosis- tema desarrollado es frágil. Estas limitantes son: la capacidad de memoria RAM y, la más importante, la pobre capacidad para el manejo de números grandes, es decir de números de 20 o más dígitos.

Considerando los tiempos de cifrado/desUfrado obtenidos, se puede observar que el sistema implementado no es seguro, pues dichos tiempos son muy grandes. Dicho sistema se puede violar', f&cilmente, utilizando para ello máquinas de mayor poder cornputacional, tanto en capacidad como en velocidad. Ahora bien, este sis- tema puede mejorarse si se considera la alternativa de modificar constantemente las llaves de cifrado y de descifrado (después de transferir cada bloque de información, por ejemplo). Esto tendría como consecuencia, que la seguridad del sistema fuera mejor, aunque el tiempo de transferencia de información se incrementana debido a la generación e intercambio frecuentes de las llaves. Esto Último se puede compensar si se utilizan dispositivos de apoyo'al sistema. Entre estos dispositivos se encuentra ,- .. el circuito integrado que desarrolla'la tarea de cifrar/descifrar información 15; El con- tar con computadoras m b veloces y de 'mayor capacidad, tiende a mejorar de igual manera los resuitados obtenidos ues el tiempo de cifrado/descifrado disminuiría, y sería posible el manejo de llaves más grandes. , , p I

Contar con el hardware necksari0 para establecer y sostener el protocolo de comunicaciones, además de los dispositivos de apoyo necesarios, como lo son el coproeesador matemático y el .circuito integrado mencionado anteriormente, hace que el desarrollo del criptosistema RSA se pueda implementar en computadoras personales pequeñas, ya que tal hardware vendría a compensar las limitantes de la máquina. De esto, se puede concid+ que no son necesarias máquinas grandes para llevar a cabo tal sistema.

i I

I

La implemtación, en computadoras personales, del cnptosistema RSA es con- \

Page 80: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

CAPÍTULO 8. CONCZüSíONES. 12

veniente si el factor tiempo no es tan importante como la información.

En base a lo anterior, quedan abiertas las posibilidades de desarrollo posterior para tener un sistema capaz de establecer una transferencia segura de información en ambientes más grandeb, como lo son las redes locales de computadoras.

,

Page 81: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

i

Bibliografía I/

I1

[l] ABRAMS, M. D., “End-to-End Encryption Implementation Problems in an Asynchronous Network”, Mitre Corporation.

I/

[2] DIFFIE, W., “The First Ten Years of Public-Key Cryptography”, IEEE, 1988.

(3) DUNCAN, R., Adwanced A4S DOS Programming, Microsoft Press, segunda I1

edición, Washington; 1988.

[4] FEISTEL, H., “Cryptography and Computer Privacy”, Scientific American, vol. 228, no. 5, Mayo de 1973.

[5] GOVAERTS, J. M., DESMEDIT, Y.G. y VANDEWALLE, J. P., iicryptog- raphy: How to Attack: What to Protect?”, IEEE/Elsevier Science Publishers B. V. (North-Holland), 1984.

[6] HELD, G., SARCH, R., Data Communications: A Comprehensive Approach, Mc Graw Hill, Nueva York, 1986.

I1

[7] HELLMAN, M. E., “Comercid Encryption”, IEEE Network Magazine, vol. 1, no. 2, Abril de 1987.

I1

[E ] JINISH, A., “Criptografía y computadoras”, Ciencia y Desarrollo

[9] JOURDAIN, R., Progwimmer’s Problem Solver for the ZBM PC, X T €4 AT, ed. Brady, New York, 1986.

I/ [lo] KNUTH, D. E., The Art of Computer Programming: Semi-Numericaí Algo- r i thm. Volume 2, segunda edición, Addison-Wesley, Reading, MA., 1981.

[ll] LAMMER, P., “Network Data Security”, Communications International, Di- I/

\ ciembre de 1987. I1

I1 I

73

Page 82: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

4 BIBLIOGRAFIA , 74

I/ [I21 MASSEY, J. L., “An Introduction to Contemporary Cryptology”, Proceedings

of the IEEE, vol. 76, no. 5, Mayo de 1988.

[13] MOORE, J. H., “Protocol Failures in Cryptosystems”, Proceedings of the

[14] NEWMAN, D. E., OMURA, J. K. y PICKHOLTZ, R. L., “Public Key Man- agement for Network Security”, IEEE Network Magazine, vol. 1, no. 2, Abril

IEEE, vol. 76, no. 5, Mayo de 1988. II

de 1987. ;I [15] EIA Standard RS-232-C, Electronics Industries Association, Departamento de

Ingeniería, Agosto ide 1969.

[16] OMURA, J. K., “Novel Applications of Cryptography in Digital Communica- tions”, IEEE Communications Magazine, Mayo de 1990.

[I71 ORTON, G., PEPPARD, L. E. y TAVARES, S. E., “A Fast Asynchronous RSA Encryption Chip”, IEEE Custom Integrated Circuits Conference, 1986.

[l8] POMERANCE, C., “The‘ Search for Prime Numbers”, Scientific American,

[19] RIVEST, R. L., SHAMIR, A. y ADLEMAN, L., “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems”, Communications of the ACM, vol. 21, no. 2, Febrero de 1978.

[20] ROSENBERG, R.! “Slamming the Door on Data Thieves”, Electronics,

Diciembre de 1982:i

Febrero de 1986. ,,

[21] SMITH, J., “Public Key Cryptography”, BYTE, Enero de 1988.

[22] Turbo PASCAL, Reference Guide, versión 5.0, Borland International, 1988.

[23] WIDMER, W. R., ““Encryption Methods in Moderns Data Communication Networks”, International Carnahan Conference on Security Technology, Suiza, 1983. I1

[24] WUNDERLICH, M. C., “Computational Methods for Factoring Large Inte- gers”, Abacus, vol. 5, no. 2, Invierno de 1988.

I/ I

I/ I

II

Page 83: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

I,

Appendid A I

Est ándar \RS-232-C. $ I/

Page 84: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX A. E S T Á ~ D A R ~s-232-c. I1

$1 Este estándar es aplicable para la interconexión de equipo terminal de datos (DTE, por sus siglas en inglés) con el equipo de comunicación de datos (DCE, por sus siglas en inglés) empleando intercambio de datos binarios serie. Dicha interconexión se hace a través de un conector de 25 terminales, las cuales tienen diferentes asig- naciones: circuitos de tierra, de datos, de control y de tiempo. Aunado a esto, el estándar proporciona los requerimientos eléctricos y mecánicos de la interfase. Es aplicable pwa la transferencia de datos en modos síncrono y asíncrono en un rango de operación de O a 20000 bps en operación serie. En la interfase RS-232- C se requieren dos tipos de conectores para efectuar una conexión DTE-DCE. En conformidad con el estándar, un conector hembra se conecta al DCE, mientras que un conector macho es el que se utiliza para el DTE. Este estándar también especi- fica una longitud de cable de 50 pies o menos entre dispositivos, sin importar la velocidad de transferencia de datos. Cuando se emplea esta interfase, se utiliza la asignación de terminales listada en la tabla A.l, la cual se puede dividir en 4 grupos, dependiendo de la función del circuito: tierra, datos, control y tiempo y operaciones secundarias.

I/

I/

A.l Circuitbs de Tierra.

Los dos circuitos de tikrra que se incluyen en el estándar RS-232-C son tierra de protección y señal o tierra común. La tierra de protección, (circuito AA, terminal 1) debe estar conectado electricamente al dispositivo o a la estructura del equipo, o a una tierra externa. El propósito de este circuito es aterrizar cualquier 'fuga de voltaje y así proteger al usuario de descargas eléctricas al tocar el dispositivo.

¡I La señal de tierra o tierra común, es el circuito AB, terminal 7. Este circuito

establece un potencial de referencia de tierra común para todos los circuitos de intercambio, la tierra'común o de retorno inclusive, excepto la tierra de protección. El circuito AB se conecta normaimente al circuito de tierra de protección mediante un cable interno. 1

I

Page 85: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

lard sopp ap o

I! I pFas sun ap s y a p s ‘(sJ,~ ‘puas 01

‘3-ZEZ-SET ETVílNyLS3 .V XIaNBddV I1 I11

Page 86: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX A. ESTANDAR RS-232-C.

I/ ME

IV

om

ncoucrrm WNO - 4- CLEAR TO SENO

+- OATA SET REAOV

OATA TERMINAL READY - Figura A.2: Protocolo previo a la transmisión de datos.

DSR). En respuesta lal/terminal transmitirá una señal terminal de datos lista (data terminal ready, DTR) al DCE. I

La terminal de refepción de datos (circuito BB, terminal 3), envía las señales del DCE al DTE. Para que exista el flujo de datos a través de este circuito, el DCE obtiene una señal del dispositivo transmisor via la línea de conexión. El DCE convierte o demodula esa señal para transmisión mediante el circuito BB hacia el receptor. Este circuitolreceptor de datos puede variar su estado a través del circuito received line signal detector (RLSD), circuito CF, terminal 8. Cuando el circuito CF está en apagado ‘o desactivado (OFF), esta condición fuerza al circuito BB a hacer una condición de marcaje.

I/

Si la transmisión es semiduplex, el circuito de recepción de datos está en un estado inactivo o de marcaje siempre que el DCE correspondiente tenga su terminal RTS en ON. Esto es porque, en la transmisión semiduplex, un dispositivo puede transmitir o recibir datos a la vez, pero no ejecutar las dos operaciones al mismo tiempo. Para permitir que una transmisión se lieve a cabo antes de “voltear” la línea -en modo semiduplex- para la recepción de datos, la terminal de recepción se mantiene en una condción de marcaje durante un laso de tiempo muy corto antes de que la señal RTS se desactive.

A.3 Circuitos de Control.

De los nueve circuitoi’de control de RS-232-C, RTS, CTS, DSR, RLSD, DTR y RI son considerados los ,circuitos de control básicos.

! ’

Page 87: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

V il APPENDIX A . ESTANDAR RS-232-C.

RTS (circuito CA, terminal 4) se transmite desde el DTE y funciona como una señal para preparar el DCE local, tal como un modem, para la transmisión cuando se emplea una transmisión semiduplex. Esta señal controla la dirección de la transmsión del DCE local. El efecto de la señal RTS en una transmisión semiduplex y duplex completo se ilustra en la tabla A.2. Aquí, el cambio de la condición del circuito de apagado a encendido da lugar a que el DCE esté en el modo de transmitir. ~

Esta señal puede estar encendida en cualquier ocasión tanto tiempo como el circuito CTS esté en la condición de apagado. Una vez que la señal RTS está activa, si el DCE correspondiente está listo para transmitir, encenderá el circuito CTS. Contrariamente, cuando la señal RTS cambia de encendido a apagado, este cambio indica al DCE terminar su transmisión, entonces sitúa al equipo en un modo no-transmisor o receptor, dependiendo de la operación del dispositivo.

11 CTS (circito CB, terminal 5 ) se transmite del DCE al DTE. Cuando este cir-

cuito pasa a ser activo, informa al equipo terminal que el DCE está listo para trans- mitir datos. La señal CTS surge en respuesta a las condiciones de encendido del DSR y RTS, y está combinada con esas dos señales y una señal DTR, para indicar que los datos están listos para transmitirse. Cuando la señal CTS está apagada, su ausencia indica a la terminal que una transferencia de datos a través del circuito de transmisión de datos no debiera ocurrir dado que el equipo de comuncaciones no está listo. II

La señal DSR (circuto CC, terminal 6) se envía del DCE al dispositivo terminal e indica a la terminal el estado del equipo de comunicaciones local. Cuando está en la condición de encendido, este circuito indica que el DCE local está conectado a un canal de comuncaciones, que se ha iievado a cabo cualquier función de temporización requerida por el medio de transmisión y que el DCE local no está en modo de operación de parlante o de prueba. Cuando el circuito DSR está apagado, este estado le indca ai DTE local que ignore todas las señales a excepción de la señal Ri. Si la señal DSR cambia a apagado mientras una llamada anterior a la señal DTR lo apaga, el DTE interptetará esta situación como una conexión perdida o interrumpida y finaliza la llamada.

La señal RLSD (circuito CF, terminal 8) indicas la señal que se está recibiendo cae o no dentro del rango de frecuencias asociado con la transmisión DCE a DTE. Una condición de encendido significa que los datos que se están recibiendo son una señal que puede aceptar el DCE.

'1

Page 88: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX A. ESTANDAR RS-232-C. VI

Como un ejemplo, la condición de encendido en el circuito CF podría indicar que un modem de 48001bps conectado a una línea de transmisión está recibiendo una llamada que puede ser demodulada por el modem. Contrariamente, una condición de apagado indica que no hay señal o que la que está llegando a través de la línea de transmisión no es 14 adecuada. Además una condición de apagado en el circuito CF pondrá al circuito BB en condición de marca o apagado.

1

Para operar en modo semidúplex, RS-232-C pone al circuito CF en apagado siempre que RTS esté encendido, por un breve lapso de tiempo después de que la señal se haya desactivado. De esta manera se establecen retrasos de tiempo apropiados en DCE para prevenir la pérdida de una señal de línea, asegurando el encendido de una señq en respuesta a otra que se ha apagado. También transcurre el tiempo suficiente entre las dos para prevenir la interpretación errónea de las señales.

La señal DTR (circuito CD, terminal 20) se transmite de DTE a DCE. Esta señal puede estar encendida cuanto se quiera y controlar la conmutación de DCE a la línea telefónica. Aquí una condición de encendido prepara al DCE para conectarse a la línea telefónica y después ayuda a mantener tal conexión. Cuando la señal regresa a un estado de apagado, elimina al DCE de la línea. Cuando la transmisión se hace a través de la red conmutada, la señal DTR no puede encenderse nuevamente hasta que la señal DSR se ;apague.

!

La señal RI (circuito CE, terminal 22) se transmite de DCE a DTE e indica que se está recibiendo una señal de llamado desde una estación remota. Esta señal se utiliza normalmente solo cuando la transmisión se hace a través de una red con- mutada telefónica. Todos los modems diseñados para operar en dicha red tienen un circuito ILI. .I

I1

I

A..4 . Circuiios de Canal Secundario

También conocidos cprno circutos auxiliares, los circuitos secundarios son equiva- lentes en operación a sus correspondientes. circuitos primarios. La dirección de la transmisión de los canales secundarios es independiente de la del canal primario y está controlada por el conjunto de circuitos de intercambio de control secundario.

En comparación con un canal primario, la velocidad de transmisión en un canal secundario es considerablemente menor, dado que el canal tiene una baada mucho

ii

.\ I!

Page 89: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX A . ESTÁNDAR RS-232-C. !I

CANAL PRIMARIO CANAL ¿

Figura A.3: Canales secundario y reversa.

VI1

mas angosta que el c h a l primario.

I/ Algunos tipos de modems asíncronos y unos cuantos síncronos tienen incor-

porados canales secundarios y de revés. En contraste con un canal secundario, en donde el flujo de datos puede ser en cualquier dirección, la transmisión en un canal de reversa es siempre opuesta a la dirección de transmisión del canal primario. Para una transmisión asíncrona, el canal de reversa se puede utilizar para reconocimiento de bloques de datos recibidos sin tener que modificar la dirección de la transmisión primaria. Los canales secundarios y de reversa se ilustrsn en la figura A.3.

11

La velocidad de operación del canal secundario normalmente es hasta 300 bps. Su incorporación dentro de los modems permite a una terminal de baja velocidad, tal como una teleimpresora, compartir un circuito con otra terminal cuya velocidad de operación es mayor.

11

A.5 Circuitos de Temporización. 11

Existen tres circuitos que son usados para temporización. El temporizador de la señal de transmisión (icircuito DA, terminal 24) , se transmite del DTE al DCE; el temporizador de la señal de transmisión (circuito DB, terminal 15), se transmite del

I

Page 90: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX A . ESTANDAR RS-232-C. VI11

t DCE al DTE; el temponzador de la señal de recepción (circuito DD, terminal 17), se transmite del DCE al DTE.

Las señales de temporización son proporcionadas por loa modems para sin- cronizar al modem con el dispositivo terminal. Esta señal de temporieación solo se requiere para transmisiones síncronas, dado que en las transmisiones asíncronas cada secuencia de bits de arranque-paro en un caracter, sincroniza la transmisión. Es por esta razón que laa terminales 15, 17 y 24 regularmente no son asignadas cuando se emplean modems 'aaincronos.

II

'I

Para los modems I síncronos, la fuente de temporización puede ser interna o

externa. El circuito DB se utiliza como circuito interno, mientras que el circuito DA proporcional al modem el reloj externo. El tercer circuito temporizador, DD, da información a la terminal local sobre el temporizador de la señal de recepción. Siempre que el RLSD,esté encendido, este circuito también estará activado y per- manece por un poco tiempo después de que la señal RLSD se apaga. El circuito DD está activado siempre y cuando su voltaje sea positivo y está apagado cuando es negativo.

I)

I

I

1

U

Page 91: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

t

APPENDIX A. ESTÁNDAR RS-232-C.

II MODO DE TRANSMISION SEÑAL SEMI-DUPLEX DUPLEX COMPLETO

ENCENDIDO SE INHIBE LA SE MANTIENE DCE

APAGADO SE INHIBE LA SE MANTIENE DCE - RECEPCION D E DATOS EN MODO DE RECEPCION

TRANSMISION DE DATOS EN MODO DE TRANSMISION

11,

ESTADO BINARIO

CONDICION

FUNCION

II

11

VOLTAJE I -3 a -2SV

1

MARCA

APAGADO

IX

3 INTERCAMBIO +S a +26V

O

ESPACIO

ENCENDIDO

Tabla A.l: Voltaje de intercambio y condiciones en RS-232-C. I)

11 I

Page 92: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

I!

1

11

:,

Appendix I1 €3 !

I

Diagramas de 1

1

War nier / O rr .

X

Page 93: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

- ~. . - ~ .. -_-. -. - - .. -~ -. ~ . . .. , .. ._ .. . - ~ ~ - - . q v

I1

XI 1 APPENDIX B. DIAGRAMAS DE WARNIER/ORR.

Los diagramas de Wa+er/Orr se utilizan para definir programas, sistemas, estruc- turas de datos y a rch i l s de.datos. A continuación se muestran algunas estructuras para representar ciclos, repeticiones, etc.

i

La secuancia de;,ejecución ‘de una acción se indica listando los elementos (ins- trucciones y/o procedimientos) dentro de una llave, uno después de otro:

1

Instrucción 1

PROGRAMA Instrucción 2 I Instrucción 3

11 i

11 I Figura B.l: Secuencia.

11 Un ciclo se representa especificando, entre paréntesis debajo del nombre del elemento, el númerolde veces que dicho elemento está incluído dentro de la definición.

¡I Instrucción 1

instrucción 3 1

1 Figura B.2: Ciclo. I

.En la figura anterior se muestra un ciclo “repite hasta”, el cual se va a ejecutar ai menos una vez. El. número de veces que se repite depende de la condición s.

Otro caso puede ser cuando un evento puede ocurrir 1 vez a lo sumo. :I1

La ejecución o no ejecución del evento depende de si se cumple o no la condición s.

Un operador or,,exclusivo I1 ( @ ) indica ocurrencia condicional de una acción.

!,

Page 94: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

II APPENDIX B. DIAGRAMAS I DE WARNIER/ORR.

II Instrucción 1

Instrucción 2 ’ PROGRAMA{ (0,l) ?s

I I Instrucción 3

Figura B.3: ocurrencia opcional. I

1

I

I (OJ) Tarea A I 03

I

INSTRUCCION3 I/

11 Figura B.4: Ocurrencia condicional.

I

XI1

Page 95: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

TRANSMITE,

XI11

' PUERTOSERIE 1

inicialicar variables I Activar ventanss

PRESENTAGIO N

OPCIONES

Despliega mensaje

Limpia pintalla

Denactivar ventanas

Habilitar interrupción de puerto serie

;

I) it

I

II

' I

'

', Deshabilitar interrupción de puerto sene I) :j

Velocidad de transmision = 9600 bps

Paridad impar

Longitud de caracter = 7 bits

Bits de paro = 1

'1 Programar puerto serie

i

Page 96: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

'!

I/

APPENDIX B. DIAGRAMAS DE WARNIER/ORR.

OPCIONES . (0,l) ?1

Condiciones:

Iniciabar variables I

I Lter buffer de teclado

. , I

I 1 :

fB I

TRANSTECLADO . ( O J ) ,

Leer buffer de tec.-do (LB) 13

XIV

Incrementar INDICE (OJ) 74

fB

Decremental INDICE (0,l) ?5

Despliega opción seleccionada del menú en video inverso de acuerdo al valor de INDICE

APAGACURSOR

'I ? l/ Haata elegir salir ? 2/ Haata que A = CR (retorno de carro) ? 3/ Haata que (B <> cnxaor hacia arriba) o (B <> cursor hacia abajo) ? 4/ Si cursor hacia abajo ? 6/ Si cnrsor hacia arriba

I

Page 97: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX B. DIAGRAMAS DE WARNIERIORR.

t

: I

TRANSARCHNO

iniciaiiaar variables

Desplegar mensaje

PRUEBACOM

EsperaRec . (0,l) ?6

FALLAS (0,l) 18

Despliega mensaje

RXXON

RECLLAVE

TRANSMISION

Transmite

I Condiciones: ? 6/ S i I s señal “data set ready“ está activa ? 7/ Si se recibi&XON ? 8/ Si la señal “data set ready” no está activa

I) TRANSTECLADO

Condiciones: II

EsperaRec .(0,1) 79

FALLAS (0,l) ? l l

inicialistu vaiiables

Desplegar mensaje

PRUEBACOM

Desplegar mensaje

RXXON

RECLLAVE Transmite

xv

? 9 / Si la señal “data set ready” está activa ?lO/iSi se recibió XON ?11/ Si la señal “data set ready” no está activa

I

Page 98: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX B. DiAGRAMAS DE WARNIER/ORR. ‘I Cargar registros con parámetros para borrar cursor

Llamar a interrupción de BIOS 11

(1,D) 713

{ APAGACURSOR

Obtener valor de la variable PRUEBA en función de X I

Asignar PRUEBA a INDICEl

Obtener valor de la variable PRUEBA en función de X I

(1,E) 714 1

CLAVE (1,C) 712

XVI

Asignar PRUEBA a INDICEZ

Leer archivo de números 1 Obtener número primo correspondiente a INDICEZ

Obtener número primo correspondiente a INDICEl

11

COMPARA

I/ Veriñcar valores de números primos

Asignar valor a variable BANDERAl

Obtener llave (producto de loa números primos) (0,l) 716

I ’

II

I

Condiciona: ?lZ/ Hasta obtener llave ?13/ Haota índicemin < INDICEl < índicemax ?14/ Hasta índicemin < INDICEZ < índicemax 7161 Si BANDERA1 = TRUE

I .

I! i

i

Page 99: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX B. DIAGRAMAS DE WARNIER/ORR.

PRUEBACOM

Condiciona:

Inicihzar variables

Enviar caracter a puerto serie (registro 3F8)

A c h a r línea “data terminal ready” (registro 3FC)

I1

Leer (1,H) ?16

II

Leer puerto serie (registro 3FE)

Incrementar variable CONTADOR1 (0,l) ?17

Hacer DSR = O (0,l) ?18

I ?16/ Hasta DSR = O o CONTADOR1 = cuentamax ?17/ Si la señal “data set ready” no está activa ?18/ Si la’señal “data set ready” está activa

1 1

XVII

inicializar variablea I

Leer puerto serie (registro 3F8)

BANDERA4 = ’1’ (se recibió XON)

Leer puerto serie (registro 3FD) (0,l) 720

(1,I) ?19

incrementar CONTADOR1

Condiciones: ?le/ Hania CONTADOR1 = cuentamax o BANDERA4 = ‘1’ ?20/ Si llegó byte

1

llave a cadena de caracteres

TX(cadena) TRANSLLAVE

I

Page 100: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX B. DIAGRAMAS DE WARNIER/ORR. XVIII

I/ Obtener valores por referencia

11

TX I Leer caracterl Enviar caracter a puerto serie (registro 3F8) I . (1,K) ?21 Leer puerto serie (registro 3FD)

(1,L) ?22 1

1;

Condiciones: ?21/ Hasta K = 11 ?22/ Hada registro de transmisión vado (3FD)

'I

I ' 1 Leer puerto serie (registro 3F8)

Separ4 memoria para apuntador p

Almacenar byte en apuntador p Leer pnerto serie (regietro 3FD) 1) (0,l) ?23 RECLLAVE

incrementar CONTADORZ I /I

I Obtener vaior~es por referencia

Convertir cadena de caracteres a su valor equivalente numérico (LLAVE) I

Condiciones: 1 ?23 f Si Uegó byte y CONTADOR2 < 11

I1

I/ I

I1

1

I/

Page 101: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

11

APPENDIX B. DIAGRAMAS DE WARNIER/ORR. 11

1 8) )esplegar mensaje

picializar variables

,eer nombre de archivo desde teclado

i, Lbkir archivo para lectura

I1

'1

I1 (1,N) ?24

TRANSMISIOB

XIX

Leer Unea de archivo

Leer caracter de linea

Procesar linea Obtener su valor hexadecimal . (l ,P)?26 I

Concatenar valores (c)

incrementar BLOQUE

Procesar C en función de LLAVE

Convertir a cadena de caracteres

TX(cadena)

Espera (OJ) ?29

Daplegar mensaje

RXXON

Actualism BLOQUE (0 , l ) ?27

GI

Desplegar mensaje (OJ) 128

I1 ' TX(cadena de despedida)

Desplegar mensaje Final

" Desplegar mensaje I/

I/

I/

Cerrar archivo

11

Page 102: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX B. DIAGRAMAS DE WARNIER/ORR. I

xx

1 i

! II Condiciones:

?24/ Hasta nombre de archivo correcto ?26/ Hasta fin de archivo o BLOQUE > bloquemax ?26/ Hasta fin de línea ?27/ Si se recibió XON

I '

1 7281 Si no se recibió XON 7201 Si BLOQUE > bloquemar ?30/ Si es fin de archivo

I1

I1

II

I

I

I

II

Ii

I

I

1

I/ I

I/ I

I/

I, I/

I..' I/

Page 103: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX B. DIAGRAMAS DE WARNIER/ORR. II

TRANSLINEP

4

Debpliega mensaje

Iniciaha variable I

1

xxi

Leer linea de teclado

( Leer caracter de línea

Obtener su valor hexadecimai I Mensaje (1,R) 732

Procesar línea (LQ) 731

( Concatenar vaiores (c)

Procesar C en función de LLAVE

Convertir a cadena de caracteres

TX(cadena)

TX(cadena equivalente a CR) (0,l) ?33

Desplegar mensaje

RXXON

Desplegar mensaje (0,l) ?34

TX(cadena de deapedidad)

Desplegar mensaje

Desplegar mensaje I '

I1

Condiciones: I1 ?31/ Hasta fin de jínea ?32/ Hasta fin de línea ?33/ Si longitud de línea <> O 7341 Si no se'recibió XON ?35/ Hasta línea = '4' o no recepción de XON ?36/ Si línea !Z '4'

I1

I!

I/

I1 i

Page 104: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX B.

I1

I1

I/ DIAGRAMAS DE WARNIER/ORR.

11 Desplegar mensaje

APAGACURSOR

Espera por caracter de teclado I1

I/

I/

1

I/

I1

:I

11

I.

I

i

I

I1

I/ !

XXII

Page 105: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX B. DIAGRAMAS DE WARNlER/ORR.

RECIBE

?UERTOSERIE

Lniciaüzar variables

Activar ventanes

PRESENTACIONZ

LLAVE

Abrir archivo para escritura

Separar memoria para apuntador p

Enviar caracter a puerto serie (registro 3F8)

TRANSLLAVE

RXESPERA

RECEP

FINAL

NORECEP

Cerrar archivo

Desactivar ventanes

Limpiar pantalla

Habilitar interrupción de puerto serie

Determinar tipo de tarjeta de video instalada

RESENTACIONZ mensaje de presentación

APAGACURSOR

Leer puerto serie (registro 3FD) (1,T) 757

XXIII

Condiciones: ?37/ Hasta que llegue byte o T = cuentamax

Page 106: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX B. DIAGRAMAS DE WARNIER/ORR.

RECEP (0,l) ?38

kicialisai variables

Desplegar mensaje

Pasar variables por valor I Leer puerto serie (registro 3FD) (1,U) 39 -

Leer puerto aerie (registro 3F8)

Rx (1,V) ?40

Almacena lectura en memona

Leer valores de memoria I Incrementar contador

Concatenar valores

(1,X) ?42 (1,W) ?41

~ECRIPT

Condiciones: ?38/ Si llegó byte ?S9/ Hasta que llegue byte ?40/ Hasta que dejen de llegar datos ?41/ Hasta recibir trama de fin de archivo o

?42/ Hasta W = 11 ?43/ Si no es fin de archivo

contador = total de bytes recibidos

FINAL (OJ) 744

Desplegar mensaje

Esperar por caracter de teclado

XXIV

Condiciones: ?44/ Si es fin de archivo

Page 107: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX B. DIAGRAMAS DE WARNIER/ORR.

Dniplegar mensaje

Esperar por caracter de teclado

NORECEP

Condiciones: ?46/ Si no llegó 'byte

inicializar variables

Convertir cadena de caracteres a BU valor numérico DECRIPT

INT (1,Z) ?49

Procesrv valor en función de la llave de descifrado

Escribir en archivo mensaje descifrado

' Habilitar interrupción por puerto serie

Velocidad = 9600 b p

Paridad impar

Longitud de caracter = 7 bits I Bits de pa10 = 1

Programar puerto serie

Redircecionar la rutina de servicio de interrupción

RESIDENTE

xxv

Condicionea: ?49/ Si existe interrupción a través d d puerto serie

Page 108: CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO … · 2014-02-14 · alrededor de 400 a.c. Los romanos utilizaron diversos métodos simples de codifi- cación y uno de ellos en particular:

APPENDIX B. DIAGRAMAS DE WARNIER/ORR.

Recibe (OJ) ?47 '

Rutina de Servicio

Rutina (0,l) ?48

t

Condiciones:

Aimscenar regietros

Leer el puerto aerie (registro 3FD)

Leer puerto serie (registro 3F8)

Leer puerto serie (registro 3FE) I I

XXVI

Almacenar posición de cur801

Determinar tipo de tarjeta de video instalada

Desplegar menssje

Regresar posición de cursor

Actualisar el PIC

?47/ Si no hay error de paridad, de sincronía, etc. ?48/ Si I s señal "data set ready" está activa

Leer posición de rutina de servicio (inicio y fin)

Llamar a interrupción de DOS RESIDENTE

I CENTRO DE INFORMACION C E 1'4 I D E T I