Seguridad Informatica PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 690

CURSO DE SEGURIDAD INFORMÁTICA EN DIAPOSITIVAS

Estimado amigo o amiga:

En estas primeras páginas del Libro Electrónico de Seguridad Informática en Diapositivas y de


Libre Distribución por Internet que ha descargado del servidor de la Red Temática CriptoRed o de
mi página personal en la Escuela Universitaria de Informática de la Universidad Politécnica de
Madrid, España, he incluido una versión actualizada y breve del prólogo del libro de la asignatura
“Aplicaciones Criptográficas” que dio paso a este curso.

Como posiblemente ya lo sepa, el curso de Seguridad Informática en diapositivas con formato


Power Point es un proyecto en constante renovación. En esta fase de comienzos del año 2002 se ha
ampliado contenidos y adaptado la versión que existía desde 2000, para hacerla compatible con su
impresión en papel. Más adelante, en una siguiente fase, se incluirá información de interés,
ejercicios, enlaces, etc. en la parte inferior de cada diapositiva en lo que se conoce como páginas de
notas en Power Point. Por lo tanto, le recomiendo que para una correcta visualización de su
contenido, imprima ahora los capítulos ppt en formato documento, con dos diapositivas por página
hoja y con la opción escala de grises. Recuerde que aunque el fondo de las diapositivas sea azul, el
fondo de impresión deberá ser blanco y las letras negras.

Sin más, y con la esperanza de que el libro electrónico de este curso que en su versión anterior
superó las dos mil descargas desde el servidor pueda serle de provecho, reciba un cordial saludo

Jorge Ramió Aguirre


Madrid, 10 de febrero de 2002

LIBRO APLICACIONES CRIPTOGRÁFICAS


PRÓLOGO DE LA 2ª EDICIÓN 1999 DEL LIBRO (reducida y actualizada)

Uno de los retos más fascinantes de la informática del futuro, inmersa en sistemas de
interconexión de redes y autopistas de la información, con un espacio virtual para el
intercambio de mensajes y datos a través de canales por definición vulnerables será, sin
lugar a dudas, la protección de la información. Representada por archivos confidenciales
o mensajes que se intercambian dos o más interlocutores autenticados y cuyo contenido
en muchos casos debe mantenerse en secreto por razones personales, empresariales,
políticas o de otra índole, la información es el bien más preciado en estos días. Por poner
sólo un ejemplo sencillo y común, un problema de gran actualidad es el asociado con el
correo electrónico que se transmite a través de redes y cuyo nivel seguridad deja mucho
que desear. Internet es un claro ejemplo de estas amenazas en tanto es un entorno
abierto en su sentido más amplio. Por lo visto en estos pocos años de existencia de la
llamada red de redes, sobran los comentarios acerca de pérdida de intimidad, accesos
no autorizados, ataques y otros delitos informáticos a nivel nacional e internacional.

Ante tales amenazas, la única solución consiste en proteger nuestros datos mediante el
uso de técnicas criptográficas. Esto nos permitirá asegurar al menos dos elementos
básicos de la Seguridad Informática, a saber la confidencialidad o secreto de la
información y la integridad del mensaje, además de la autenticidad del emisor.

A la luz de lo anterior, a mediados de esta década hacen su aparición en los nuevos


planes de estudios de Ingeniería Informática que comienzan a implantarse en las
universidades españolas, diversas asignaturas sobre seguridad informática y protección
de la información, con el objeto de formar a los futuros ingenieros en estos temas. Lo que

Pág. 1
a comienzos de los 90 aparecía como una tímida apuesta por esta enseñanza en
carreras relacionadas principalmente con la Informática y las Telecomunicaciones, hoy
después de 10 años permite ver un mapa universitario en España en el que ninguna
universidad tecnológica se queda fuera en cuanto a la oferta de este tipo de asignaturas,
superándose las 40. Es más, comienzan ya a plantearse perfiles en los nuevos planes
de estudio con una clara orientación hacia la seguridad informática de forma integral.
Personalmente creo que esto es sólo el comienzo; incluso me he atrevido a proponer ya
no sólo un perfil, sino una carrera de ingeniería en la que cerca de un 30% de los créditos
estén relacionados con esta materia, en una ponencia presentada en un congreso el año
2001 y que podrá encontrar en el mismo servidor del que ha descargado este curso.
Puede parecer una utopía, para otros tal vez una locura, pero por lo que he visto en estos
últimos años tengo el presentimiento de que quizás el tiempo me dé la razón y veamos
en algunos años más un Ingeniero en Seguridad Informática.

Estoy plenamente consciente de que quedan muchos temas interesantes fuera del
contexto del libro electrónico, como son las nuevas técnicas de cifra con curvas elípticas,
estudio y profundización en sistemas actuales de clave secreta que tendrán importante
protagonismo en el futuro como Skipjack y Rijndael, diversas técnicas y protocolos de
autenticación, la teoría de cifra y factorización de polinomios, técnicas y algoritmos de
cifra en flujo, gestión completa de claves, protección en entornos de red, protocolos de
firma, Autoridades de Certificación, criptografía visual, esteganografía, etc. Resulta
imposible abordar tantos temas y plasmarlos en un libro electrónico que tenga un tamaño
relativamente normal: en la actualidad son casi 700 diapositivas. Ahora bien, como ya le
he comentado, estos apuntes se actualizan de forma periódica. Aunque no hay fechas
definidas para estas actualizaciones, como consejo le recomiendo que visite la Web dos
o tres veces al año y seguro encontrará una versión nueva.

Tras estas palabras, sólo me queda animarle a adentrarse al fascinante mundo de la


criptografía y escritura secreta que, por muy lejano y misterioso que pueda hoy parecerle,
en este año 2002 la encontrará en muchos sistemas de acceso, consulta, navegación,
intercambio de datos, etc., la mayoría de ellos relacionados con Internet. El cifrado de la
información, la firma digital y toda la teoría relacionada con este tema será en esta
primera década del siglo 21 algo tan común como lo fue en la década anterior escribir
con un procesador de textos, establecer una llamada telefónica mediante un teléfono
móvil o incluso ver la televisión vía satélite. En una sociedad informatizada al máximo,
nos guste o no la protección de esta información y más aún la autenticidad de la misma,
nos llevará de forma irremediable a un único punto: el uso de técnicas criptográficas. No
sé qué opina usted, en mi caso estoy seguro de ello.

Madrid, febrero de 2002


El autor

Dr. Ingeniero de Telecomunicación por la Universidad Politécnica de Madrid y Profesor Titular en


el Departamento de Lenguajes, Proyectos y Sistemas Informáticos de la Escuela Universitaria de
Informática de la Universidad Politécnica de Madrid, España. Es profesor y coordinador de la
asignatura de Seguridad Informática que se imparte desde el curso 1994/95 como asignatura
optativa de tercer curso en la titulación de Ingeniero Técnico en Informática de Gestión y estará
incluida en varios perfiles del nuevo Plan de Estudios. Además es coordinador general de
CriptoRed, la Red Temática Iberoamericana de Criptografía y Seguridad de la Información en la
que participan destacados profesionales e investigadores de un centenar de universidades y
centros de investigación, así como empresas de sector de las NTIs.

* jramio@eui.upm.es
Web: http://www.lpsi.eui.upm.es/SInformatica/SInformatica.htm
CriptoRed: http://www.criptored.upm.es/

Pág. 2
SEGURIDAD INFORMÁTICA
LIBRO ELECTRONICO EN DIAPOSITIVAS
DE LIBRE DISTRIBUCIÓN EN INTERNET

AUTOR: Jorge Ramió Aguirre

Madrid, España, febrero de 2002


Presentación del Curso

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 12 diapositivas
Curso completo: 687 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


El curso y la asignatura

El curso en diapositivas de Libre Distribución


es parte del material docente de la asignatura
Seguridad Informática
que el autor imparte en la Escuela Universitaria de
Informática de la Universidad Politécnica de Madrid
(España)
Autor: Jorge Ramió Aguirre
e-mail: jramio@eui.upm.es

Curso de Seguridad Informática. Presentación del Curso. 2


© Jorge Ramió Aguirre Madrid (España) 2002
El autor

• El Dr. Jorge Ramió Aguirre es profesor titular en el


Departamento de Lenguajes, Proyectos y Sistemas
Informáticos de la Universidad Politécnica de Madrid.
http://www.lpsi.eui.upm.es

• Desde el año 1994 imparte la asignatura de Seguridad


Informática en la titulación de Ingeniero Técnico en
Informática de Gestión en la Escuela Universitaria de
Informática de dicha universidad.
http://www.lpsi.eui.upm.es/SInformatica/SInformatica.htm

Curso de Seguridad Informática. Presentación del Curso. 3


© Jorge Ramió Aguirre Madrid (España) 2002
La Red Temática CriptoRed
• El autor es Coordinador General de CriptoRed, la Red
Temática Iberoamericana de Criptografía y Seguridad de
la Información, creada en diciembre de 1999.
http://www.criptored.upm.es

• CriptoRed es un proyecto de Cooperación Docente que


abarca decenas de Universidades, Centros de Investigación
y empresas de toda Iberoamérica, cuyo objeto es compartir
información dentro de una comunidad virtual de técnicos y
expertos en seguridad informática. Los contenidos que
encontrará en ese servidor son de Libre Distribución.
Curso de Seguridad Informática. Presentación del Curso. 4
© Jorge Ramió Aguirre Madrid (España) 2002
El libro de la asignatura

“Aplicaciones Criptográficas”, 2ª edición, Junio de 1999


Departamento de Publicaciones - Escuela Universitaria de
Informática - Universidad Politécnica de Madrid
Carretera de Valencia km. 7 - 28031 Madrid (España)
I.S.B.N.: 84-87238-57-2 Depósito Legal: M-24709-1999

“Si dotamos a Internet de las medidas de protección y seguridad que nos


ofrecen las técnicas criptográficas, dejará de ser ese peligroso y caótico
tablón de anuncios para convertirse en el supermercado electrónico del
futuro y la herramienta de trabajo de la generación del próximo siglo.”
A Anita y Jordi

Curso de Seguridad Informática. Presentación del Curso. 5


© Jorge Ramió Aguirre Madrid (España) 2002
El material del curso
• Las diapositivas están basadas en “Aplicaciones
Criptográficas”, libro usado como texto guía de la
asignatura Seguridad Informática en la Escuela
Universitaria de Informática de la UPM.

• Su publicación en Internet en las páginas Web de


la asignatura Seguridad Informática y de la Red
Temática Iberoamericana de Criptografía y
Seguridad de la Información CriptoRed, se hace
en formato comprimido zip en un único archivo
de nombre SItemas.zip.
Curso de Seguridad Informática. Presentación del Curso. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Nuevo formato
• Esta edición en un nuevo formato ha sido adaptada para que,
además de su animación como material de apoyo docente y de
autoaprendizaje, pueda también imprimirse en papel como un
documento de estudio y trabajo: un libro electrónico.
• Estos archivos forman parte de un Proyecto Docente en el que,
más adelante, se incluirá en las Página de Notas los contenidos
relacionados con el tema, ejercicios, enlaces a páginas Web de
interés, etc., de forma que se convierta en un verdadero libro
electrónico y material de consulta para alumnos y profesores.
• IMPORTANTE: Para una adecuada impresión, se recomienda
imprimir dos diapositivas por página en formato documentos. El
el fondo de la impresión en papel deberá ser blanco.

Curso de Seguridad Informática. Presentación del Curso. 7


© Jorge Ramió Aguirre Madrid (España) 2002
Actualizaciones e introducción

Tenga en cuenta que los temas y contenidos de estos archivos


serán permanentemente actualizados. Por lo tanto, cada vez
que observe en las páginas Web indicadas la existencia de
una versión más actualizada del archivo SItemas.zip que la
que tiene en su ordenador, reemplace el archivo zip anterior
y, al descomprimirlo, reemplace todos los archivos ppt.
El curso comienza con un primer archivo llamado SItema00
cuyo objetivo es entregar una introducción a la criptografía.
Se recomienda su visualización en tanto es un resumen claro
y preciso sobre muchos de los temas y algoritmos que serán
tratados a lo largo de todos los capítulos de este curso.

Curso de Seguridad Informática. Presentación del Curso. 8


© Jorge Ramió Aguirre Madrid (España) 2002
Los derechos de autor

Copyright

© 2002 de Jorge Ramió Aguirre


Todos los derechos reservados

Este documento electrónico puede ser distribuido libre y


gratuitamente para su ejecución e impresión, respetando su
integridad y manteniendo los créditos del autor en el pie de página.
Recuerde: este curso en diapositivas es el resultado de miles de horas de trabajo.
Queda prohibida su venta

Curso de Seguridad Informática. Presentación del Curso. 9


© Jorge Ramió Aguirre Madrid (España) 2002
Contenido del archivo SItemas.zip (1)
Archivo Nº de diapositivas

SIpresen: Presentación del Curso ..................................... 12


SItema00: Una Introducción a la Criptografía .................. 14
SItema01: Conceptos Básicos de Seguridad Informática ... 51
SItema02: Calidad de Información y Virus ....................... 23
SItema03: Seguridad Física ............................................... 39
SItema04: Teoría de la Información ................................. 50
SItema05: Teoría de los Números ...................................... 61

Curso de Seguridad Informática. Presentación del Curso. 10


© Jorge Ramió Aguirre Madrid (España) 2002
Contenido del archivo SItemas.zip (2)
Archivo Nº de diapositivas

SItema06: Teoría de la Complejidad ................................. 29


SItema07: Criptosistemas Clásicos .................................. 15
SItema08: Introducción a los Criptosistemas Modernos .. 31
SItema09: Cifrado en Flujo con Clave Secreta ................ 40
SItema10: Cifrado en Bloque con Clave Secreta ............. 71
SItema11: Cifrado con Mochilas de Clave Pública .......... 24
SItema12: Cifrado Exponencial ........................................ 32

Curso de Seguridad Informática. Presentación del Curso. 11


© Jorge Ramió Aguirre Madrid (España) 2002
Contenido del archivo SItemas.zip (3)
Archivo Nº de diapositivas

SItema13: Funciones Hash ................................................ 29


SItema14: Autenticación y Firma Digital .......................... 40
SItema15: Certificados y Autoridades de Certificación .....10
SItema16: Correo Electrónico Seguro ............................... 68
SItema17: Protocolos Criptográficos ................................ 48
Total diapositivas al 10 de febrero de 2002 ............................ 687

Fin de la Introducción

Curso de Seguridad Informática. Presentación del Curso. 12


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 0
Una Introducción a la Criptografía

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 14 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Nota del autor
El contenido de este tema
introductorio está orientado
a una primera visión de tipo
generalista al tema en el que
se profundizará a lo largo del
libro: la seguridad y protección
de la información mediante el uso de técnicas y
algoritmos criptográficos. En particular, se trata de
visión rápida del concepto de cifra y firma digital
asociado a los criptosistemas y que serán analizados
en detalle en los próximos capítulos.
Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 2
© Jorge Ramió Aguirre Madrid (España) 2002
Criptografía según la RAE

Criptografía
una definición ...
La Real Academia de la Lengua Española define
criptografía (oculto + escritura) como:
"el arte de escribir mensajes con una
clave secreta o de modo enigmático".
Resulta difícil dar una definición tan poco
ajustada a la realidad actual. Véase la siguiente diapositiva
Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 3
© Jorge Ramió Aguirre Madrid (España) 2002
Imprecisiones de esta definición
Arte: la criptografía ha dejado de ser un arte: es una ciencia.
Escritura de mensajes: ya no sólo se escriben mensajes; se
envía o se guarda en un ordenador todo tipo de documentos e
información de distintos formatos (txt, doc, exe, gif, ...).
Una clave: los sistemas actuales usan más de una clave.
Clave secreta: existirán sistemas de clave secreta que usan
una sola clave y sistemas de clave pública (muy importantes)
que usan dos: una clave privada (secreta) y la otra pública.
Representación enigmática: la representación binaria de la
información podría ser enigmática para nosotros los humanos
pero jamás para los ordenadores J ... es su lenguaje natural.
Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 4
© Jorge Ramió Aguirre Madrid (España) 2002
Una definición más técnica de criptografía

Criptografía
Lo que realmente es
Rama de las Matemáticas -y en la actualidad de la
Informática y la Telemática- que hace uso de métodos y
técnicas matemáticas con el objeto principal de cifrar un
mensaje o archivo por medio de un algoritmo, usando
una o más claves. Esto da lugar a los criptosistemas que
permiten asegurar cuatro aspectos fundamentales de la
seguridad informática: confidencialidad, integridad,
disponibilidad y no repudio de emisor y receptor.
Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 5
© Jorge Ramió Aguirre Madrid (España) 2002
Confidencialidad e integridad
Cualquier medio de transmisión es inseguro
Criptosistema Medio de
Transmisor Transmisión Receptor
M C C M
T MT R

Cifrador Mensaje cifrado Descifrador

Confidencialidad
Usurpación de identidad Integridad Interceptación del mensaje
por un intruso (I) por un intruso (I)
Estos dos principios de la seguridad informática, el de la
confidencialidad y la integridad, (además de la disponibilidad
y el no repudio) serán muy importantes en un sistema de
intercambio de información segura a través de Internet.
Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Tipos de criptosistemas

Clasificación de los criptosistemas

Según el tratamiento del mensaje se dividen en:


Cifrado en bloque (DES, IDEA, RSA: 64 - 128 bits)
Cifrado en flujo (A5) cifrado bit a bit
Según el tipo de claves se dividen en:
Cifrado con clave secreta Sistemas simétricos
Cifrado con clave pública Sistemas asimétricos
Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 7
© Jorge Ramió Aguirre Madrid (España) 2002
Criptosistemas simétricos y asimétricos
Criptosistemas simétricos:
Existirá una única clave (secreta) que deben compartir emisor
y receptor. Con la misma clave se cifra y se descifra por lo que
la seguridad reside en mantener dicha clave en secreto.
Criptosistemas asimétricos:
Cada usuario crea un par de claves, una privada y otra pública,
inversas dentro de un cuerpo finito. Lo que se cifra en emisión
con una clave, se descifra en recepción con la clave inversa. La
seguridad del sistema reside en la dificultad computacional de
descubrir la clave privada a partir de la pública. Para ello usan
funciones matemáticas de un solo sentido con trampa.
Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 8
© Jorge Ramió Aguirre Madrid (España) 2002
Criptosistemas simétricos
Cifrado con criptosistemas de clave secreta
Medio de
k Transmisión k
M C C M
EKK
E MT DDKK
Texto Texto
Base protegida Criptograma protegida Base

C’ no permitido M no permitido
Integridad Intruso Confidencialidad

La confidencialidad y la integridad se lograrán


si se protegen las claves en el cifrado y en el DES, TDES,
IDEA, CAST,
descifrado. Es decir, se obtienen
RIJNDAEL
simultáneamente si se protege la clave secreta.
Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 9
© Jorge Ramió Aguirre Madrid (España) 2002
Criptosistemas asimétricos (1)
Cifrado con clave pública del receptor
Intercambio de claves RSA Intercambio: RSA y DH
Clave pública Medio de Clave privada
del usuario B Transmisión del usuario B

M EB MT DDBB M
Usuario A C C Usuario B
Criptograma protegida
M no permitido

Observe que se Intruso Confidencialidad


cifra con la
clave pública Las claves de EB y Un sistema similar es el
intercambio de clave de
del destinatario. DB son “inversas” Diffie y Hellman DH
Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 10
© Jorge Ramió Aguirre Madrid (España) 2002
Criptosistemas asimétricos (2)
Cifrado con clave privada del emisor
Firma digital RSA Firmas: RSA y DSS
Clave privada Medio de Clave pública
del usuario A Transmisión del usuario A

M DAA
D MT EA M
Usuario A C C Usuario B
protegida Criptograma

Observe que se cifra


C’ no permitido con la clave privada
Integridad Intruso del emisor.
Se firma sobre un hash Las claves de EA y La firma DSS está
H(M) del mensaje, por basada en el algoritmo
ejemplo MD5 o SHA-1 DA son “inversas” de cifra de El Gamal
Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 11
© Jorge Ramió Aguirre Madrid (España) 2002
Tipos de cifra con sistemas asimétricos
Criptosistemas de clave pública
k privada k pública k privada k pública
de A de B de B de A
M DA EB D
DBB EA M
C
Usuario A Usuario B
Confidencialidad

Firma Integridad Autenticación


digital del usuario A;
Información cifrada integridad de M

La confidencialidad y la integridad se obtienen por separado


Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 12
© Jorge Ramió Aguirre Madrid (España) 2002
¿Qué usar, simétricos o asimétricos?
Los sistemas de clave pública son muy
lentos pero tienen firma digital.
Los sistemas de clave secreta son muy
rápidos pero no tienen firma digital.
¿Qué hacer?

Cifrado de la información:
Sistemas de clave secreta
Firma e intercambio de clave de sesión:
Sistemas de clave pública
Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 13
© Jorge Ramió Aguirre Madrid (España) 2002
Sistema híbrido de cifra y firma

k privada k pública
de A k secreta k secreta de A
M DA K K EA M
C
Usuario A K Usuario B K

Firma Cifrado asimétrico


Autenticación
digital del usuario e
sobre Cifrado simétrico
integridad
H(M) Intercambio clave de sesión K usando
EB(M) en emisión y DB(C) en recepción Fin del Tema 0

Curso de Seguridad Informática. Tema 0: Una Introducción a la Criptografía. 14


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 1
Conceptos Básicos de Seguridad
Informática

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 51 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


¿Conectado o desconectado?
No podemos aceptar esa
... es aquel que está
afirmación popular que
apagado y, por tanto,
dice que el computador
desconectado de la red.
más seguro ...

A pesar de todas las


amenazas del entorno
que, como veremos,
serán muchas y variadas.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 2


© Jorge Ramió Aguirre Madrid (España) 2002
¿Conciencia de las debilidades?

internas o externas

Amenazas

La seguridad informática
será un motivo de
preocupación.
... y las empresas, organismos y particulares comienzan a
tener verdadera conciencia de su importancia.
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 3
© Jorge Ramió Aguirre Madrid (España) 2002
Las dos últimas décadas
• A partir de los años 80 el uso del ordenador
personal comienza a ser común. Asoma ya la
preocupación por la integridad de los datos.
• En la década de los años 90 proliferan los ataques
a sistemas informáticos, aparecen los virus y se
toma conciencia del peligro que nos acecha como
usuarios de PCs y equipos conectados a Internet.
• Las amenazas se generalizan a finales de los 90.
Se toma en serio la seguridad: década de los 00s

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 4


© Jorge Ramió Aguirre Madrid (España) 2002
¿Qué hay de nuevo en los 00s?
• Principalmente por el uso de Internet, el tema de la
protección de la información se transforma en una
necesidad y con ello se populariza la terminología
técnica asociada a la criptología:
– Cifrado, descifrado, criptoanálisis, firma digital.
– Autoridades de Certificación, comercio electrónico.
• Ya no sólo se transmiten estas enseñanzas en las
universidades. El usuario final desea saber, por
ejemplo, qué significa firmar un e-mail.
• Productos futuros: Seguridad añadida
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 5
© Jorge Ramió Aguirre Madrid (España) 2002
Una definición de criptografía
Criptografía:
Rama de las Matemáticas -y en la actualidad de la
Informática- que hace uso de métodos matemáticos
con el objeto principal de cifrar un mensaje o archivo
por medio de un algoritmo y una o más claves, dando
lugar a distintos criptosistemas que permiten asegurar,
al menos, dos aspectos básicos de la seguridad como
son la confidencialidad y la integridad de la información.
He aquí una definición menos afortunada
de criptografía por parte de la Real
Academia de la Lengua Española...

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 6


© Jorge Ramió Aguirre Madrid (España) 2002
La criptografía según la RAE
? Criptografía:
“Arte de escribir mensajes con una
clave secreta o de modo enigmático”.
Desde el punto de vista de la ingeniería y la informática,
es difícil encontrar una definición menos apropiada L.
Ø Hoy ya no es un arte sino una ciencia.
Ø No sólo se protegen mensajes que se escriben, sino
archivos y documentos en general que se generan.
Ø Muchos sistemas tienen dos claves: secreta y pública.
Ø No hay nada de enigmático J en una cadena de bits.
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 7
© Jorge Ramió Aguirre Madrid (España) 2002
¿Cifrar o encriptar? N
Cifra o cifrado:
Técnica que, en general, protege o autentica a un documento
o usuario al aplicar un algoritmo criptográfico. Sin conocer
una clave específica, no será posible descifrarlo o recuperarlo.
En algunos países por influencia del inglés se usará la palabra
encriptar. Si bien esta palabra no existe, podría ser el acto de
“meter a alguien dentro de una cripta”, J U... algo bastante
distinto a lo que deseamos expresar.
Ejemplos como éstos encontraremos muchísimos. Sin ir más
lejos, aceptamos la palabra “privacidad” e incluso está escrita
en Leyes, aunque no esté recogida en la última edición del
diccionario de la RAE (octubre de 2001).
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 8
© Jorge Ramió Aguirre Madrid (España) 2002
Algunas definiciones previas
Criptólogo: persona que trabaja de forma legítima para
proteger la información creando algoritmos criptográficos.
Criptoanalista: persona cuya función es romper algoritmos
de cifra en busca de debilidades, la clave o del texto en claro.
Criptógrafo: máquina o artilugio para cifrar.
Criptología: ciencia que estudia e investiga todo aquello
relacionado con la criptografía: incluye cifra y criptoanálisis.
Texto en claro: documento original. Se denotará como M.
Criptograma: documento/texto cifrado. Se denotará como C.
Claves: datos (llaves) privados/públicos que permitirán cifrar.
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 9
© Jorge Ramió Aguirre Madrid (España) 2002
Interés en el delito informático
• El delito informático parece ser un “buen negocio”:
– Objeto Pequeño: la información está almacenada en
“contenedores pequeños”: no es necesario un camión
para robar el banco, joyas, dinero, ...
– Contacto Físico: no existe contacto físico en la mayoría
de los casos. Se asegura el anonimato y la integridad
física del delincuente.
– Alto Valor: el objeto codiciado tiene un alto valor. El
contenido (los datos) vale mucho más que el soporte que
los almacena (disquete, disco compacto, ...).
• Unica solución: el uso de técnicas criptográficas.
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 10
© Jorge Ramió Aguirre Madrid (España) 2002
Seguridad Física v/s Seguridad Lógica
• El estudio de la seguridad informática puede
plantearse desde dos enfoques:
– Seguridad Física: protección del sistema ante las
amenazas físicas, planes de contingencia, control
de acceso físico, políticas de backups, etc. Este
tema será tratado en el capítulo 3.
– Seguridad Lógica: protección de la información
en su propio medio mediante el enmascaramiento
de la misma usando técnicas de criptografía. Este
enfoque propio de las Aplicaciones Criptográficas
será tratado a lo largo de todo el curso.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 11


© Jorge Ramió Aguirre Madrid (España) 2002
1er principio de la seguridad informática
• “El intruso al sistema utilizará cualquier artilugio
que haga más fácil su acceso y posterior ataque”.
• Existirá una diversidad de frentes desde los que
puede producirse un ataque. Esto dificulta el
análisis de riesgos porque el delincuente aplica la
filosofía del punto más débil de este principio.
PREGUNTA:
¿Cuáles son los puntos débiles
de un sistema informático?
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 12
© Jorge Ramió Aguirre Madrid (España) 2002
Debilidades del sistema informático (1)
HARDWARE - SOFTWARE - DATOS
MEMORIA - USUARIOS
Los tres primeros puntos conforman el llamado Triángulo
de Debilidades del Sistema:

– Hardware: Errores intermitentes, conexión suelta, desconexión de


tarjetas, etc.
– Software: Sustracción de programas, modificación, ejecución
errónea, defectos en llamadas al sistema, etc.
– Datos: Alteración de contenidos, introducción de datos falsos,
manipulación fraudulenta de datos, etc.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 13


© Jorge Ramió Aguirre Madrid (España) 2002
Debilidades del sistema informático (2)

– Memoria: Introducción de virus, mal uso de la gestión


de memoria, bloqueo del sistema, etc.
– Usuarios: Suplantación de identidad, acceso no
autorizado, visualización de datos confidenciales, etc.
• Es muy difícil diseñar un plan que contemple de
forma eficiente todos estos aspectos.
• Debido al Principio de Acceso más Fácil, no se
deberá descuidar ninguno de los cinco elementos
susceptibles de ataque del sistema informático.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 14


© Jorge Ramió Aguirre Madrid (España) 2002
Amenazas del sistema

• Las amenazas afectan


Flujo Normal
principalmente al
Hardware, al Software
y a los Datos. Estas se Interrupción Interceptación

deben a fenómenos de:


– Interrupción
Modificación Generación
– Interceptación
– Modificación
– Generación
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 15
© Jorge Ramió Aguirre Madrid (España) 2002
Amenazas de interrupción
Interrupción

Intruso

• Se daña, pierde o deja de funcionar un punto del


sistema.
• Detección inmediata.
Ejemplos: Destrucción del hardware.
Borrado de programas, datos.
Fallos en el sistema operativo.
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 16
© Jorge Ramió Aguirre Madrid (España) 2002
Amenazas de interceptación
Interceptación

Intruso

• Acceso a la información por parte de personas no


autorizadas. Uso de privilegios no adquiridos.
• Detección difícil, no deja huellas.

Ejemplos: Copias ilícitas de programas.


Escucha en línea de datos.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 17


© Jorge Ramió Aguirre Madrid (España) 2002
Amenazas de modificación
Modificación

Intruso

• Acceso no autorizado que cambia el entorno para


su beneficio.
• Detección difícil según circunstancias.
Ejemplos: Modificación de bases de datos.
Modificación de elementos del HW.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 18


© Jorge Ramió Aguirre Madrid (España) 2002
Amenazas de generación
Generación

Intruso

• Creación de nuevos objetos dentro del sistema.


• Detección difícil. Delitos de falsificación.

Ejemplos: Añadir transacciones en red.


Añadir registros en base de datos.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 19


© Jorge Ramió Aguirre Madrid (España) 2002
El triángulo de debilidades
Interrupción Interceptación Modificación Generación
(pérdida) (acceso) (cambio) (alteración)

Los datos serán la DATOS Ejemplos de ataques


parte más vulnerable
del sistema.

HD SW
Interrupción (denegar servicio) Modificación (falsificación)
Interceptación (robo) Interrupción (borrado)
Interceptación (copia)

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 20


© Jorge Ramió Aguirre Madrid (España) 2002
Ataques característicos

• Hardware:
– Agua, fuego, electricidad, polvo, cigarrillos, comida.
• Software:
– Borrados accidentales, intencionados, fallos de líneas
de programa, bombas lógicas, robo, copias ilegales.
• Datos:
– Los mismos puntos débiles que el software.
– Dos problemas: no tienen valor intrínseco pero sí su
interpretación y algunos son de carácter público.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 21


© Jorge Ramió Aguirre Madrid (España) 2002
2º principio de la seguridad informática

• “Los datos deben protegerse sólo hasta que


pierdan su valor”.
• Se habla, por tanto, de la caducidad del sistema de
protección: tiempo en el que debe mantenerse la
confidencialidad o secreto del dato.
• Esto nos llevará a la fortaleza del sistema de cifra.
PREGUNTA:
¿Cuánto tiempo deberá
protegerse un dato?
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 22
© Jorge Ramió Aguirre Madrid (España) 2002
3er principio de la seguridad informática

• “Las medidas de control se implementan para ser


utilizadas de forma efectiva. Deben ser eficientes,
fáciles de usar y apropiadas al medio”.
– Que funcionen en el momento oportuno.
– Que lo hagan optimizando los recursos del sistema.
– Que pasen desapercibidas para el usuario.
• Ningún sistema de control resulta efectivo hasta
que es utilizado al surgir la necesidad de aplicarlo.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 23


© Jorge Ramió Aguirre Madrid (España) 2002
Elementos de la seguridad informática (1)

• Confidencialidad
– Los componentes del sistema son accesibles sólo por
los usuarios autorizados.
• Integridad
– Los componentes del sistema sólo pueden ser creados
y modificados por los usuarios autorizados.
• Disponibilidad
– Los usuarios deben tener disponibles todos los
componentes del sistema cuando así lo deseen.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 24


© Jorge Ramió Aguirre Madrid (España) 2002
Elementos de la seguridad informática (2)

• No Repudio
– Este término se ha introducido en los últimos años
como una característica más de los elementos que
conforman la seguridad en un sistema informático.
– Está asociado a la aceptación de un protocolo de
comunicación entre emisor y receptor (cliente y
servidor) normalmente a través del intercambio de
sendos certificados digitales.
– Se habla entonces de No Repudio de Origen y No
Repudio de Destino, forzando a que se cumplan todas
las operaciones por ambas partes en una comunicación.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 25


© Jorge Ramió Aguirre Madrid (España) 2002
Datos seguros
Si se cumplen estos principios, diremos en general
que los datos están protegidos y seguros.

DATOS DATOS DATOS

Confidencialidad Integridad Disponibilidad

DATOS

Datos Seguros

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 26


© Jorge Ramió Aguirre Madrid (España) 2002
Sistema de cifra
Medio de
Transmisor Transmisión Receptor
M C C M
T MT R

Cifrador Mensaje cifrado Descifrador

Usurpación de identidad Interceptación del mensaje


por un intruso por un intruso

Sea cual sea el medio de transmisión (enlace, red telefónica,


red de datos, disco magnético, disco óptico, etc.) éste por
definición es INSEGURO.
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 27
© Jorge Ramió Aguirre Madrid (España) 2002
Esquema de un criptosistema
Texto Transmisor Receptor Texto
Base Texto cifrado Base
Cifrador Descifrador

Canal inseguro

Clave

Espacio de MENSAJES
Espacio de TEXTOS CIFRADOS
Espacio de CLAVES
Transformaciones de CIFRADO y DESCIFRADO

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 28


© Jorge Ramió Aguirre Madrid (España) 2002
Espacio de mensajes M

Hola amigos, este es un


texto en claro...
M = {m1, m2, ..., mn}
– Componentes de un mensaje inteligible (bits, bytes,
pixels, signos, caracteres, etc.) que provienen de un
alfabeto.
– El lenguaje tiene unas reglas sintácticas y semánticas.
– En algunos casos y para los sistemas de cifra clásicos
la longitud del alfabeto indicará el módulo en el cual
se trabaja. En los modernos, no guarda relación.
– Habrá mensajes con sentido y mensajes sin sentido.
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 29
© Jorge Ramió Aguirre Madrid (España) 2002
Espacio de textos cifrados C

VjbmljYSBkZSBNYWRyaW
QgQ0ExLTArBgN... C = {c1, c2, ..., cn}
– Normalmente el alfabeto es el mismo que el utilizado
para crear el mensaje en claro.
– Supondremos que el espacio de los textos cifrados C y
el espacio de los mensaje M (con y sin sentido) tienen
igual magnitud.
– En este caso, a diferencia del espacio de mensajes M,
serán válidos todo tipo de criptogramas.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 30


© Jorge Ramió Aguirre Madrid (España) 2002
Espacio de claves K

K = {k1, k2, ..., kn}


– Si el espacio de claves K es tan grande como el de los
mensajes M, se obtendrá un criptosistema con secreto
perfecto.
– Se supone que es un conjunto altamente aleatorio de
caracteres, palabras, bits, bytes, etc., en función del
sistema de cifra. Al menos una de las claves en un
criptosistema se guardará en secreto.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 31


© Jorge Ramió Aguirre Madrid (España) 2002
Transformaciones de cifrado Ek

Ek: M ® C kÎK

– Ek es una aplicación con una clave k, que está en el


espacio de claves K, sobre el mensaje M y que lo
transforma en el criptograma C.
– Es el algoritmo de cifra. Sólo en algunos sistemas
clásicos el algoritmo es secreto. Por lo general será de
dominio público y su código fuente estará disponible
en Internet.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 32


© Jorge Ramió Aguirre Madrid (España) 2002
Transformaciones de descifrado Dk

Dk: C ® M kÎK

– Dk es una aplicación con una clave k, que está en el


espacio de claves K, sobre el criptograma C y que lo
transforma en el texto en claro M.
– Se usa el concepto de inverso. Dk será la operación
inversa de Ek o bien -que es lo más común- se usa la
misma transformación Ek para descifrar pero con una
clave k’ que es la inversa de k dentro de un cuerpo.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 33


© Jorge Ramió Aguirre Madrid (España) 2002
Requisitos de un criptosistema

– Algoritmo de cifrado/descifrado rápido y fiable.


– Posibilidad de transmitir ficheros por una línea de
datos, almacenarlos o transferirlos.
– No debe existir retardo debido al cifrado o descifrado.
– La seguridad del sistema deberá residir solamente en
el secreto de una clave y no de las funciones de cifra.
– La fortaleza del sistema se entenderá como la
imposibilidad computacional de romper la cifra o
encontrar la clave secreta.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 34


© Jorge Ramió Aguirre Madrid (España) 2002
Recomendaciones de Bacon

• Filósofo y estadista inglés del siglo XVI


– Dado un texto en claro M y un algoritmo de cifra Ek,
el cálculo de Ek(M) y su inversa debe ser sencillo.
– Será imposible encontrar el texto en claro M a partir
del criptograma C si se desconoce la función de
descifrado Dk.
– El criptograma deberá contener caracteres distribuidos
para que su apariencia sea inocente y no dé pistas a un
intruso.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 35


© Jorge Ramió Aguirre Madrid (España) 2002
Recomendaciones de Kerckhoffs

• Profesor holandés en París del siglo XIX


– K1: El sistema debe ser en la práctica imposible de
criptoanalizar.
– K2: Las limitaciones del sistema no deben plantear
dificultades a sus usuarios.
– K3: Método de elección de claves fácil de recordar.
– K4: Transmisión del texto cifrado por telégrafo.
– K5: El criptógrafo debe ser portable.
– K6: No debe existir una larga lista de reglas de uso.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 36


© Jorge Ramió Aguirre Madrid (España) 2002
Clasificación de los criptosistemas
• Sistemas de cifra: clásicos
v/s modernos
– Clasificación histórica y
cultural.
• Sistemas de cifra: en bloque
v/s en flujo
– Clasificación de acuerdo a
cómo se produce la cifra.
• Sistemas de clave: secreta v/s pública
– Clasificación de acuerdo a la cifra usando una única
clave secreta o bien sistemas con dos claves, una de
ellas pública y la otra privada.
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 37
© Jorge Ramió Aguirre Madrid (España) 2002
Fortaleza: tipos de ataques

Conociendo el algoritmo de cifra, el criptoanalista


intentará romper la cifra:
1. Contando únicamente con el criptograma.
2. Contando con texto en claro conocido.
3. Eligiendo un texto en claro. Mayor trabajo
4. A partir de texto cifrado elegido.
ATAQUE POR FUERZA BRUTA
5. Buscando combinaciones de claves.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 38


© Jorge Ramió Aguirre Madrid (España) 2002
Criptosistemas de clave secreta

Medio de
Clave k Transmisión Clave k
M C C M
Texto Cifrado MT Descifrado
Texto
Base
Base
Ek Mensaje cifrado Dk

Clave
única

Cifrado: Ek Descifrado: Dk

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 39


© Jorge Ramió Aguirre Madrid (España) 2002
Funciones y operaciones de cifra

• C = E(M) E: Cifrado del mensaje M


• M = D(C) D: Descifrado del criptograma C
• M = D(E(M)) Las operaciones D y E son
Si se usa una clave k: inversas o bien lo son las
claves que intervienen. Esto
• C = E(k,M) o Ek(M) último es lo más normal, con
• M = D(k, E(k,M)) los inversos dentro de un
cuerpo finito. Por lo tanto, se
• M = D(kD, E(kE,M)) recupera el mensaje en claro.
En este caso los algoritmos E y D son iguales

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 40


© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado en bloque y en flujo

• CIFRADO EN BLOQUE:
– El mismo algoritmo de cifra se aplica a un bloque de
información (grupo de caracteres, número de bytes,
etc.) repetidas veces, usando la misma clave.

• CIFRADO EN FLUJO:
– El algoritmo de cifra se aplica a un elemento de
información (carácter, bit) mediante un flujo de clave
en teoría aleatoria y mayor que el mensaje.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 41


© Jorge Ramió Aguirre Madrid (España) 2002
Comparativa cifrado en bloque v/s flujo
CIFRADO EN BLOQUE
Ventajas: Desventajas:
* Alta difusión de los elementos * Baja velocidad de cifrado al tener
en el criptograma. que leer el bloque.
* Inmune: imposible introducir * Propenso a errores de cifra. Un
bloques extraños sin detectarlo. error se propagará a todo el bloque.
CIFRADO EN FLUJO
Ventajas: Desventajas:
* Alta velocidad de cifra al no * Baja difusión de elementos en el
tener en cuenta otros elementos. criptograma.
* Resistente a errores. Cifra * Vulnerable. Pueden alterarse los
independiente de cada elemento. elementos por separado.

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 42


© Jorge Ramió Aguirre Madrid (España) 2002
Confidencialidad v/s integridad

• Vamos a ver cómo se obtienen en cada uno de


estos sistemas de cifra (cifrado con clave secreta
y cifrado con clave pública) los dos aspectos más
relevantes de la seguridad informática:
La confidencialidad
y la integridad
Llegaremos a un concepto de mucha utilidad en
criptografía al analizar el sistema con clave pública...

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 43


© Jorge Ramió Aguirre Madrid (España) 2002
Criptosistema con clave secreta (1)
Medio de
k Transmisión k
M C C M
EK MT DDKK
Texto Texto
Base Criptograma Base
protegida

Buscamos la
M no permitido
confidencialidad
intruso

El criptoanalista no podrá descifrar el criptograma C o


cualquier otro texto cifrado bajo la transformación EK.
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 44
© Jorge Ramió Aguirre Madrid (España) 2002
Criptosistema con clave secreta (2)
Medio de
k Transmisión k
M C C M
EEKK MT DK
Texto Texto
Base protegida Criptograma Base

Hola... ¡soy Paquito!


C’ no permitido
Buscamos la
integridad
intruso

El criptoanalista no podrá cifrar un texto en claro M’ y


enviarlo al destinatario como C’ = EK(M’).
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 45
© Jorge Ramió Aguirre Madrid (España) 2002
Resumen para sistema de clave secreta
Integridad Medio de Confidencialidad
k Transmisión k
M C C M
EEKK MT DDKK
Texto Texto
Base protegida Criptograma protegida Base

Hola... ¡soy Paquito! C’ no permitido Es algo


obvio

M no permitido

La confidencialidad y la integridad se lograrán


simultáneamente si se protege la clave secreta.
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 46
© Jorge Ramió Aguirre Madrid (España) 2002
Criptosistema con clave pública (1)
clave pública de B clave privada de B
Medio de
Usuario A Transmisión Usuario B
C C
M EB MT DDBB M
Texto protegida Texto
Base Criptograma Base
Observe que se cifra M no permitido
con la clave pública
del usuario receptor Cada usuario U
tiene dos claves:
Buscamos la una pública EU y
confidencialidad intruso otra privada DU

C = EB(M) DB y EB son números inversos


M = DB(C) = DB(EB(M)) dentro de un cuerpo
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 47
© Jorge Ramió Aguirre Madrid (España) 2002
Criptosistema con clave pública (2)
clave privada de A clave pública de A
Medio de
Usuario A Transmisión Usuario B
C C
M DAA MT EA M
Texto Texto
Base protegida Criptograma Base

Hola... soy Paquito


Observe que se cifra
¡otra vez! con la clave privada
del usuario emisor
C’ no permitido
intruso Buscamos la
integridad

C = DA(M) EA y DA son inversos en un cuerpo


M = EA(C) = EA(DA(M))
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 48
© Jorge Ramió Aguirre Madrid (España) 2002
Resumen para sistema con clave pública
K privada K pública K privada K pública
de A de B de B de A
C
M DA EB DDBB EA M

Usuario A Usuario B
Confidencialidad
Integridad
Esta característica
será muy importante
La integridad y la confidencialidad se
obtendrán ahora por separado ...

C = EB(DA(M)) Cifrado del “mensaje” y firma digital


M = EA(DB(C)) Descifrado y comprobación de firma
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 49
© Jorge Ramió Aguirre Madrid (España) 2002
¿Clave pública o clave secreta?
Clave E N = nº de claves
kDE D
secreta kAE
Número Claves:
A kAD n (n-1)
2
kAC
kCE
kAB kCD
kBE
Definición previa: C
kXY kBD
X Y kBC 5432 usuarios: NN==10
631
kYX
B
Muy mala gestión de claves » n2
Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 50
© Jorge Ramió Aguirre Madrid (España) 2002
La solución híbrida

¿Es entonces la clave pública la solución?


NO Fin del Tema 1

– Tendrá como inconveniente principal (debido


a las funciones de cifra empleadas) una tasa o
velocidad de cifra mucha más baja que la de
los criptosistemas de clave secreta.
Sistemas de
¿Solución? cifra híbridos

Curso de Seguridad Informática. Tema 1: Conceptos Básicos de Seguridad Informática. 51


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 2
Calidad de Información y Virus

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 23 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Nota del autor

El contenido de este tema


corresponde a las primeras
notas y apuntes del autor.

Por lo tanto, la versión de este capítulo no es


la definitiva. Se incluirán nuevos temas, se
actualizarán los contenidos y se animarán las
diapositivas durante este año 2002.
Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 2
© Jorge Ramió Aguirre Madrid (España) 2002
¿Qué es la información?

• El concepto en ingeniería:
– Estudio de las estadísticas y características del
lenguaje que nos permitirá su análisis desde un
punto de vista matemático, científico y técnico.
• El concepto en la empresa:
– Conjunto de datos propios que se gestionan y
mensajes que se intercambian personas y/o
máquinas dentro de una organización.
Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 3
© Jorge Ramió Aguirre Madrid (España) 2002
Teoría de la Información

• El estudio hecho por Claude Shannon en años


posteriores a la 2ª Guerra Mundial ha permitido:
– Cuantificar la cantidad de información.
– Medir la entropía y la entropía condicional.
– Definir un sistema con secreto perfecto.
– Calcular la redundancia y ratio del lenguaje.
– Encontrar la distancia de unicidad.
No obstante, todo está orientado hacia el estudio
de los criptosistemas clásicos que cifran letras.
Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 4
© Jorge Ramió Aguirre Madrid (España) 2002
La información en la empresa
• Se entenderá como:
– Todo el conjunto de datos.
– Todos los mensajes intercambiados.
– Todo el historial de clientes y proveedores.
– Todo el historial de productos, ... etc.
– En definitiva, el know-how de la organización.
• Si esta información se pierde o deteriora, le será
muy difícil a la empresa recuperarse y seguir
siendo competitiva Þ políticas de seguridad.

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 5


© Jorge Ramió Aguirre Madrid (España) 2002
Importancia de la información
• El éxito de una empresa dependerá de la calidad
de la información que genera y gestiona.
• Diremos entonces que una empresa tiene una
información de calidad si ésta presenta, entre
otras características: confidencialidad, integridad
y disponibilidad.
• La implantación de unas medidas de seguridad
informática en la empresa comienza a tener un
peso específico en este sector sólo a finales de la
década pasada.

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 6


© Jorge Ramió Aguirre Madrid (España) 2002
Vulnerabilidad de la información
• La información (datos) se verá afectada
por muchos factores, incidiendo
básicamente en los aspectos de
confidencialidad, integridad y
disponibilidad de la misma.

• Desde el punto de vista de la empresa,


uno de los problema más importantes
puede ser el que está relacionado con el
delito o crimen informático, por
factores externos e internos. descontento

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 7


© Jorge Ramió Aguirre Madrid (España) 2002
Disminuir las vulnerabilidades

Esto se verá agravado por otros temas,


entre ellos los aspectos legales y las
características de los nuevos entornos de
trabajo de la empresa del siglo XXI.

Solución Política 1
Política 2
La solución es Política 3

sencilla: aplicar Política 4


... sólo ahora el
técnicas y políticas tema comienza a
de seguridad... tomarse en serio.

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 8


© Jorge Ramió Aguirre Madrid (España) 2002
Acciones contra los datos

• Una persona no autorizada podría:


– Clasificar y desclasificar los datos.
– Filtrar información.
– Alterar la información. Deberemos
proteger
– Borrar la información. nuestros datos
– Usurpar datos.
– Hojear información clasificada.
– Deducir datos confidenciales.
Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 9
© Jorge Ramió Aguirre Madrid (España) 2002
Protección de los datos
• La medida más eficiente para la protección de los datos es
determinar una buena política de copias de seguridad o
backups:
– Copia de seguridad completa
• Todos los datos (la primera vez).
– Copias de seguridad incrementales
• Sólo se copian los ficheros creados o modificados desde el
último backup.
– Elaboración de un plan de backup en función del
volumen de información generada
• Tipo de copias, ciclo de esta operación, etiquetado correcto.
• Diarias, semanales, mensuales: creación de tablas.

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 10


© Jorge Ramió Aguirre Madrid (España) 2002
Hackers y crakers
Algunas definiciones
• Hacker:
– Definición inicial de los ingenieros del MIT que
hacían alardes de sus conocimientos en informática.
– Pirata Informático.
• Cracker:
– Persona que intenta de forma ilegal romper la
seguridad de un sistema por diversión o interés.

No existe uniformidad de criterios...

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 11


© Jorge Ramió Aguirre Madrid (España) 2002
¿Dónde está el enemigo?
Las empresas relacionadas con las Nuevas Tecnologías
de la Información NTIs hacen uso de varias técnicas y
herramientas de redes para el intercambio de datos:

• Transferencia de ficheros (ftp)


• Transferencia de datos e información a través de
Internet (http)
• Conexiones remotas a máquinas y servidores
(telnet)

Todo esto presentará graves riesgos de ataques de


hackers y otros delincuentes informáticos, pero ...
Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 12
© Jorge Ramió Aguirre Madrid (España) 2002
¿El enemigo en casa?
Por muy organizados que puedan estar
estos grupos de vándalos, hay que ponerse
en el lugar que nos corresponde y no caer
en la paranoia. Y además debemos pensar
que el peor enemigo bien puede estar
dentro de casa...
La solución sigue siendo la misma: la
puesta en marcha de una adecuada
política de seguridad en la empresa.

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 13


© Jorge Ramió Aguirre Madrid (España) 2002
Delitos informáticos
Son acciones que vulneran la confidencialidad,
integridad y disponibilidad de la información.
– Ataques a un sistema informático: Veamos algunos

F Fraude F Malversación F Robo


F Sabotaje F Espionaje F Chantaje
F Revelación F Mascarada F Virus
F Gusanos F Caballos de Troya ... etc.
Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 14
© Jorge Ramió Aguirre Madrid (España) 2002
Algunos delitos informáticos (1)
Fraude
Acto deliberado de manipulación de datos perjudicando
a una persona física o jurídica que sufre de esta forma
una pérdida económica. El autor del delito logra de esta
forma un beneficio normalmente económico.

Sabotaje
Acción con la que se desea perjudicar a una empresa
entorpeciendo deliberadamente su marcha, averiando
sus equipos, herramientas, programas, etc. El autor no
logra normalmente con ello beneficios económicos pero
pone en jaque mate a la organización.

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 15


© Jorge Ramió Aguirre Madrid (España) 2002
Algunos delitos informáticos (2)
Chantaje
Acción que consiste en exigir una cantidad de dinero a
cambio de no dar a conocer información privilegiada o
confidencial y que puede afectar gravemente a la
empresa, por lo general a su imagen corporativa.

Mascarada
Utilización de una clave por una persona no autorizada
y que accede al sistema suplantando una identidad. De
esta forma el intruso se hace dueño de la información,
documentación y datos de otros usuarios con los que
puede, por ejemplo, chantajear a la organización.

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 16


© Jorge Ramió Aguirre Madrid (España) 2002
Algunos delitos informáticos (3)
Virus
Código diseñado para introducirse en un programa,
modificar o destruir datos. Se copia automáticamente a
otros programas para seguir su ciclo de vida. Es común
que se expanda a través de plantillas, las macros de
aplicaciones y archivos ejecutables.

Gusanos
Virus que se activa y transmite a través de la red. Tiene
como finalidad su multiplicación hasta agotar el espacio
en disco o RAM. Suele ser uno de los ataques más
dañinos porque normalmente produce un colapso en la
red (p.e. el gusano de Internet de Robert Morris Jr.).
Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 17
© Jorge Ramió Aguirre Madrid (España) 2002
Algunos delitos informáticos (4)
Caballos de Troya
Virus que entra al ordenador y posteriormente actúa de
forma similar a este hecho de la mitología griega. Así,
parece ser una cosa o programa inofensivo cuando en
realidad está haciendo otra y expandiéndose. Ejemplo:
el huevo de Pascua de Windows 95.
Y hay muchos más delitos. Incluso aparecerán nuevos delitos
y ataques a los sistemas informáticos y redes que a fecha de
hoy no sabemos cómo serán ni qué vulnerabilidad atacarán...
Este enfrentamiento entre el “bien” y el “mal” es inevitable en
un sistema abierto ... y las comunicaciones hoy son así.

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 18


© Jorge Ramió Aguirre Madrid (España) 2002
Historia y tipos de virus
• Primer ejemplo: John von Neuman (1949)
• Primer virus: M. Gouglas de Bell Laboratories
crea el Core War en 1960.
• Primeros ataques a PCs entre 1985 y 1987:
– Virus Jerusalem y Brain.
• Inofensivos (pelota, letras, etc.)
– Sólo molestan y entorpecen el trabajo pero no
destruyen información. Pueden residir en el PC.
• Malignos (Viernes 13, Melissa, Navidad, etc.)
– Destruyen los datos y afectan a la integridad y la
disponibilidad del sistema. Hay que eliminarnos.
Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 19
© Jorge Ramió Aguirre Madrid (España) 2002
Transmisión de un virus
• Se transmisten sólo mediante la ejecución de un
programa. Esto es muy importante recordarlo.
• El correo electrónico por definición no puede
contener virus al ser sólo texto. No obstante, sí
puede contener archivos añadidos que se ejecuten
en el cliente de correo del usuario y éstos pueden
tener incluido un virus. ¡Ahí está el peligro!
• El entorno web es mucho más peligroso. Un
hiperenlace puede lanzar un programa en Java u
otro que se ejecute en el disco duro del cliente.
Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 20
© Jorge Ramió Aguirre Madrid (España) 2002
Tipos de ataque de un virus

• Aquellos que infectan a programas .EXE, .COM y


.SYS por ejemplo.
– Residen en memoria al ejecutarse el huésped y de
ahí se propagan a otros archivos.
• Aquellos que infectan el sistema y el sector de
arranque y tablas de entrada (áreas determinadas
del disco).
– Se instalan directamente allí y por lo tanto residen
en memoria.

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 21


© Jorge Ramió Aguirre Madrid (España) 2002
Algunas medidas básicas de prevención
• Proteger los disquetes con la pestaña.
– Es una protección tipo hardware elemental.
• Escanear de vez en cuando el disco duro (por
ejemplo una vez al mes) y siempre los disquetes.
• Usar software con licencia.
• Controlar el acceso de extraños al disco duro.
• Instalar un antivirus.
– Dejarlo en modo residente y actualizar la versión al
menos una vez al mes a través de Internet.
Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 22
© Jorge Ramió Aguirre Madrid (España) 2002
¿Qué hacer en caso de estar infectado?
• Detener las conexiones remotas.
• No mover el ratón ni activar el teclado.
• Apagar el sistema.
• Arrancar con un disquete de arranque o emergencia
limpio y ejecutar un programa antivirus.
• Hacer copia de seguridad de ficheros del sistema.
• Formatear el disco duro a bajo nivel si no queda otra
solución L.
• Instalar nuevamente el sistema operativo y restaurar
las copias de seguridad. Fin del Tema 2

Curso de Seguridad Informática. Tema 2: Calidad de Información y Virus. 23


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 3
Seguridad Física

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 39 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Nota del autor
El contenido de este archivo
corresponde sólo a un primer
borrador en relación con el
tema de la seguridad física.
Aunque ésta puede tener igual
o más importancia que la
seguridad lógica relacionada directamente con el uso
de algoritmos de cifra y firma digital y la protección
de la información mediante técnicas criptográficas,
de las que este curso hace una mayor profundización,
se actualizará este material e incluirán nuevos temas.
Curso de Seguridad Informática. Tema 3: Seguridad Física. 2
© Jorge Ramió Aguirre Madrid (España) 2002
Seguridad Física

Los datos deben protegerse aplicando:


• Seguridad Lógica
– Uso de herramientas de protección de la información
en el mismo medio en el que se genera o transmite.
• Seguridad Física
– Procedimientos de protección física del sistema
(incendios, agua, terremotos, etc.).
– Medidas de prevención de riesgos tanto físicos como
lógicos.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 3


© Jorge Ramió Aguirre Madrid (España) 2002
Seguridad Física en entornos de PCs
Ø Anclajes a mesas de trabajo. Temas a tener
Ø Cerraduras. en cuenta en un
entorno PC
Ø Tarjetas con alarma.
Ø Etiquetas con adhesivos especiales.
Ø Bloqueo de disquetera.
Ø Protectores de teclado.
Ø Tarjeta de control de acceso al hardware.
Ø Suministro ininterrumpido de corriente.
Ø Toma de tierra.
Ø Eliminación de la estática... etc.
Curso de Seguridad Informática. Tema 3: Seguridad Física. 4
© Jorge Ramió Aguirre Madrid (España) 2002
Análisis de riesgos

• Proceso de identificación y evaluación del riesgo


a sufrir un ataque y perder datos, tiempo y horas
de trabajo, comparándolo con el costo de la
prevención de esta pérdida.

• Su análisis no sólo lleva a establecer un nivel


adecuado de seguridad: permite conocer mejor el
sistema que vamos a proteger.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 5


© Jorge Ramió Aguirre Madrid (España) 2002
Información del análisis de riesgos (1)

• Información que se obtiene en un análisis


de riesgos:
– Determinación precisa de los recursos
sensibles de la organización.
– Identificación de las amenazas del sistema.
– Identificación de las vulnerabilidades
específicas del sistema.
– Identificación de posibles pérdidas.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 6


© Jorge Ramió Aguirre Madrid (España) 2002
Información del análisis de riesgos (2)

• Información que se obtiene en un análisis


de riesgos (continuación):
– Identificación de la probabilidad de
ocurrencia de una pérdida.
– Derivación de contramedidas efectivas.
– Identificación de herramientas de seguridad.
– Implementación de un sistema de seguridad
eficiente en costes y tiempo.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 7


© Jorge Ramió Aguirre Madrid (España) 2002
Conceptos teóricos de análisis de riesgos
¿B>P*L?

– B: Peso o carga que significa la prevención


de una pérdida específica.
– P: Probabilidad de ocurrencia de una pérdida
específica.
– L: Impacto total de una pérdida específica.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 8


© Jorge Ramió Aguirre Madrid (España) 2002
¿Cuándo y cuánto invertir en seguridad?

Si B£P*L
Hay que implementar una medida de
prevención.

Si B>P*L
No es necesaria una medida de prevención.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 9


© Jorge Ramió Aguirre Madrid (España) 2002
Efectividad del coste

• El control ha de tener menos coste que el valor de


las pérdidas debido al impacto de ésta si se
produce el riesgo temido.

• Ley básica: el costo del control ha de ser menor


que el activo que protege.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 10


© Jorge Ramió Aguirre Madrid (España) 2002
El factor L en la ecuación de riesgo (1)

Factor L
• El factor de impacto total L es difícil de evaluar.
Incluye daños a la información, equipos,
pérdidas por reparación, por levantar el sistema y
pérdidas por horas de trabajo.
• Hay una parte subjetiva.
• La pérdida de datos puede llevar a una pérdida
de oportunidades. Efecto cascada.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 11


© Jorge Ramió Aguirre Madrid (España) 2002
El factor L en la ecuación de riesgo (2)

Recomendación:
• En la organización debe existir una comisión
especializada interna o externa que sea capaz de
evaluar todas las posibles pérdidas y
cuantificarlas.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 12


© Jorge Ramió Aguirre Madrid (España) 2002
El factor P en la ecuación de riesgo

Factor P
• El factor P está relacionado con la determinación
de impacto total L. Depende del entorno en el
que esté la posible pérdida. La probabilidad
puede asociarse a una tendencia o frecuencia
conocida.
– Conocido P para un L dado, se obtiene la
probabilidad de pérdida relativa de la ocurrencia P*L
que se comparará con B, el peso que supone
implantar la medida de prevención respectiva.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 13


© Jorge Ramió Aguirre Madrid (España) 2002
El factor B en la ecuación de riesgo (1)

Factor B
• Indica qué se requiere para prevenir una pérdida.

– Ejemplo: el peso o carga de prevención para que un


vehículo vaya sin gasolina es el costo de echarle
gasolina. El peso incluye los valores de tiempo y
costo: ir a la gasolinera, esperar a que esté libre un
surtidor, poner gasolina y pagar.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 14


© Jorge Ramió Aguirre Madrid (España) 2002
El factor B en la ecuación de riesgo (2)

Factor B
• ¿Cuánta protección es necesaria?
– ¿Cuánta gasolina debemos echar en el depósito?
Depende de hasta dónde queramos desplazarnos con
el coche.

• ¿De qué forma nos protegeremos?


– Una casa puede protegerse con puertas, cerraduras,
barras en ventanas, sistemas de alarmas, etc.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 15


© Jorge Ramió Aguirre Madrid (España) 2002
Pasos en un análisis de riesgos

1. Identificación de 3. Identificar posibles


posibles pérdidas (L) acciones y sus
implicaciones. (B)
Seleccionar acciones a
Identificar amenazas implementar.

2. Determinar susceptibilidad.
Posibilidad de pérdida (P)
Curso de Seguridad Informática. Tema 3: Seguridad Física. 16
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de análisis de riesgo

• Con valores ficticios, se trata de encontrar


a cuánto puede ascender nuestro
presupuesto en materia de seguridad (B) si
conocemos el impacto económico (L) que
eso supone y hemos especificado un factor
de probabilidad (P) de que esta catástrofe
ocurra.
Si B £ P * L instalamos las medidas.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 17


© Jorge Ramió Aguirre Madrid (España) 2002
Políticas de seguridad

• Políticas administrativas
– Procedimientos administrativos.
• Políticas de control de acceso
– Privilegios de acceso del usuario o programa.
• Políticas de flujo de información
– Normas bajo la cuales se comunican los
sujetos dentro del sistema.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 18


© Jorge Ramió Aguirre Madrid (España) 2002
Políticas administrativas

• Políticas administrativas

– Se establecen aquellos procedimientos de


carácter administrativo en la organización
como por ejemplo en el desarrollo de
programas: modularidad en aplicaciones,
revisión sistemática, etc.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 19


© Jorge Ramió Aguirre Madrid (España) 2002
Control de accesos

• Políticas de control de acceso

– Política de menor privilegio


• Acceso estricto a objetos determinados
– Política de compartición
• Acceso de máximo privilegio
– Granularidad
• Número de objetos accesibles (gruesa y fina)

Curso de Seguridad Informática. Tema 3: Seguridad Física. 20


© Jorge Ramió Aguirre Madrid (España) 2002
Control de flujo

• Políticas de control de flujo


– La información a la que se accede se envía
por
• ¿Canales lícitos o canales ocultos?
– ¿Qué es lo que hay que potenciar?
• ¿La confidencialidad?
• ¿La integridad?
• ¿La disponibilidad?
• Según organización Þ diferencias
Curso de Seguridad Informática. Tema 3: Seguridad Física. 21
© Jorge Ramió Aguirre Madrid (España) 2002
Modelos de seguridad (1)

• Modelo de Bell and LaPadula (BLP)


– Rígido. Confidencialidad y autoridad.
• Modelo de Taque-Grant (TG)
– Derechos especiales: tomar y otorgar.
• Modelo de Clark-Wilson (CW)
– Orientación comercial: integridad.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 22


© Jorge Ramió Aguirre Madrid (España) 2002
Modelos de seguridad (2)

• Modelo de Goguen-Meseguer (GM)


– No interferencia entre usuarios.
• Modelo de Matriz de Accesos
– Estados y transiciones entre estados
• Graham-Dennig (GD)
• Harrison-Ruzzo-Ullman (HRU)

Curso de Seguridad Informática. Tema 3: Seguridad Física. 23


© Jorge Ramió Aguirre Madrid (España) 2002
Criterios de seguridad

• Criterio de evaluación TSEC


– Trusted Computer System Evaluation Criteria,
también conocido como Orange Book
• Criterio de evaluación ITSEC
– Information Technology Security Evaluation
Criteria
• Criterio de evaluación CC
– Common Criteria (los dos anteriores)
Curso de Seguridad Informática. Tema 3: Seguridad Física. 24
© Jorge Ramió Aguirre Madrid (España) 2002
Modelo de Bell LaPadula BLP

• Escritura hacia abajo prohibida


• Lectura hacia arriba prohibida
• Principio de tranquilidad
No lectura hacia arriba Secreto máximo
(usuario dado de alta
con nivel secreto) Secreto
No escritura hacia abajo No clasificado

Curso de Seguridad Informática. Tema 3: Seguridad Física. 25


© Jorge Ramió Aguirre Madrid (España) 2002
Modelo Take Grant (TG)

• Se describe mediante grafos orientados:


– el vértice es un objeto o sujeto.
– un arco es un derecho.

• Se ocupa sólo de aquellos derechos que


pueden ser transferidos.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 26


© Jorge Ramió Aguirre Madrid (España) 2002
Modelo Clark Wilson (CW)

• Basado en políticas de integridad


– Elementos de datos restringidos
• sobre éstos debe hacerse un chequeo de
consistencia
– Elementos de datos no restringidos
– Procedimientos de transformación
• trata los dos elementos
– Procedimientos de verificación de integridad

Curso de Seguridad Informática. Tema 3: Seguridad Física. 27


© Jorge Ramió Aguirre Madrid (España) 2002
Planes de contingencia

• ¿Qué es un Plan de Contingencia?


• ¿Por qué es necesario implementarlo?
• ¿Qué gana la empresa con este plan?
• Y si no lo tiene ¿a qué se expone?

Lo veremos a continuación

Curso de Seguridad Informática. Tema 3: Seguridad Física. 28


© Jorge Ramió Aguirre Madrid (España) 2002
Definición de plan de contingencia

• Un Plan de Contingencia consiste en un


análisis pormenorizado de las áreas que
componen nuestra organización que nos
servirá para establecer una política de
recuperación ante un desastre.
– Es un conjunto de datos de la empresa que se
plasma en un documento con ese fin.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 29


© Jorge Ramió Aguirre Madrid (España) 2002
Desastres naturales y su prevención

• Desastres naturales • Medidas prevención


– Huracán – Emplazamientos
– Tormenta adecuados
– Inundación – Protección fachadas,
– Tornado ventanas, puertas
– Vendaval, etc
• Destruyen nuestro
sistema

Curso de Seguridad Informática. Tema 3: Seguridad Física. 30


© Jorge Ramió Aguirre Madrid (España) 2002
Vandalismo informático y su prevención

• Terrorismo • Medidas de prevención


• Sabotaje – Fortificación entradas
– Guardia Jurado
• Robo – Patrullas
– Circuito cerrado TV
– Control de accesos

– Protección de software y
• Virus hardware con un
• Programas malignos antivirus.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 31


© Jorge Ramió Aguirre Madrid (España) 2002
Amenazas del agua y su prevención

• Inundaciones por • Medidas prevención


causas propias de la – Revisar conductos de
empresa agua
• Inundaciones por – Localizar la sala con
los equipos más caros
causas ajenas
en un sitio libre de
• Pequeños incidentes estos problemas
personales (botella de – Instalar sistemas de
agua, taza con café) drenaje emergencias

Curso de Seguridad Informática. Tema 3: Seguridad Física. 32


© Jorge Ramió Aguirre Madrid (España) 2002
Amenazas del fuego y su prevención

• Debido a una mala • Medidas prevención


instalación eléctrica – Detector humo y calor
• Debido a descuidos – Materiales ignífugos
(fumar en la sala de – Almacén de papel
ordenadores) separado de máquinas
• Papeleras mal – Estado del falso suelo
ubicadas (se tira un – Extintores revisados
cigarrillo no apagado) • Es la amenaza más
• Problemas del humo temida por su rápido
poder destructor.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 33


© Jorge Ramió Aguirre Madrid (España) 2002
¿Y si se produce una catástrofe?

• Las empresas dependen hoy en día de los


equipos informáticos y de los datos que hay
allí almacenados.
• Dependen también cada vez más de las
comunicaciones a través de redes de datos.
• Si falla el sistema informático y no puede
recuperarse, la empresa puede desaparecer.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 34


© Jorge Ramió Aguirre Madrid (España) 2002
Importancia de contar con un plan

• Además de seguridad, la empresa gana en


conocimiento real de sus fortalezas y
debilidades.

• Si no lo hace se expone a sufrir una pérdida


irreparable mucho más costosa que la
implantación de este plan.

Curso de Seguridad Informática. Tema 3: Seguridad Física. 35


© Jorge Ramió Aguirre Madrid (España) 2002
Pérdidas por no contar con un plan

• Pérdida de clientes
• Pérdida de imagen
• Pérdida de ingresos por beneficios
• Pérdida de ingresos por ventas y cobros
• Pérdida de ingresos por producción
• Pérdida de competitividad
• Pérdida de credibilidad en el sector
Curso de Seguridad Informática. Tema 3: Seguridad Física. 36
© Jorge Ramió Aguirre Madrid (España) 2002
Tiempo de recuperación ante desastres

• Período máximo de paro de una empresa


sin poner en peligro su supervivencia:
– Sector Seguros: 5,6 días
– Sector Fabricación: 4,9 días
– Sector Industrial: 4,8 días
– Sector Distribución: 3,3 días
– Sector Financiero: 2,0 días
Ref. Estudio de la Universidad de Minnesota

Curso de Seguridad Informática. Tema 3: Seguridad Física. 37


© Jorge Ramió Aguirre Madrid (España) 2002
Implantación de medidas

• Plan de emergencia
– Vidas, heridos, activos, evacuación personal
– Inventariar recursos siniestrados
– Evaluar el coste de la inactividad

• Plan de recuperación
– Acciones tendentes a volver a la situación que
existía antes del desastre.
Curso de Seguridad Informática. Tema 3: Seguridad Física. 38
© Jorge Ramió Aguirre Madrid (España) 2002
Plan de continuidad
• Instalaciones alternativas
– Oficina de servicios propia
– Acuerdo con empresa vendedora hardware
– Acuerdo recíproco entre dos o más empresas
– Arranque en frío; sala vacía propia
– Arranque en caliente: centro equipado
– Sistema Up Start: caravana, unidad móvil
– Sistema Hot Start: centro gemelo
Fin del Tema 3

Curso de Seguridad Informática. Tema 3: Seguridad Física. 39


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 4
Teoría de la Información

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 50 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Fundamentos de la Seguridad Informática
3 son los pilares sobre los que descansa toda la
teoría asociada a los criptosistemas:
Lo veremos en ...
• Teoría de la Información este archivo
– Estudios realizados por Claude Shannon (1948)
• Teoría de los Números archivo SItema05

– Estudio de las matemáticas discretas y cuerpos finitos


• Teoría de la Complejidad de los Algoritmos
– Clasificación de los problemas archivo SItema06

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 2


© Jorge Ramió Aguirre Madrid (España) 2002
Teoría de la Información
• Información:
– Conjunto de datos o mensajes inteligibles creados
con un lenguaje de representación y que debemos
proteger ante las amenazas del entorno, durante
su transmisión o almacenamiento, con técnicas
criptográficas.
– La Teoría de la Información mide la
cantidad de información que contiene un
mensaje a través del número medio de bits
necesario para codificar todos los posibles
mensajes con un codificador óptimo.

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 3


© Jorge Ramió Aguirre Madrid (España) 2002
Representación de la información

Numérica, alfabética, simbólica, lenguaje.


24/01/02 24-01-02 24-1-02 24/01/2002
01/24/02 01-24-02 1-24-02 01-24-2002 ...
- Todos son el día 24 de enero del año 2002.
Vitaminas: B12, C, ...
¿Qué información nos
Grupo sanguíneo: A2 Rh+ ... entrega el mensaje
Elementos: Fe, Si, Hg ... “Hoy hace calor”?
Compuestos químicos: H2O, CO2 ...
Más común Lenguaje con código: “Hoy hace calor”

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 4


© Jorge Ramió Aguirre Madrid (España) 2002
Pero ¿qué es la información?

Veremos qué información nos entrega un mensaje


dependiendo del contexto en que nos encontremos:
a) En función de la extensión del mensaje recibido.
b) En función de la utilidad del mensaje recibido.
c) En función de la sorpresa del mensaje recibido.
d) Dependiendo del entorno de esa sorpresa.
e) En función de la probabilidad de recibir un mensaje.
Este es el entorno del estudio realizado por Claude Shannon

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 5


© Jorge Ramió Aguirre Madrid (España) 2002
Cantidad de información (caso 1)
En función de la extensión del mensaje
– Ante una pregunta cualquiera, una respuesta concreta y
extensa nos entregará mayor información sobre el tema
en particular, y diremos que estamos ante una mayor
“cantidad de información”.
• Pregunta: ¿Hace calor allí? (una playa en particular)
– Respuesta 1: Sí, hace mucho calor.
– Respuesta 2: Cuando no sopla el viento, el calor allí es
inaguantable pues supera los 42 grados a la sombra. L
¿Dónde hay una mayor cantidad de información?

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 6


© Jorge Ramió Aguirre Madrid (España) 2002
Cantidad de información (caso 2)

En función de la utilidad del mensaje


– Ante una pregunta cualquiera, una respuesta más útil y
clara nos dejará con la sensación de haber recibido una
mayor “cantidad de información”.
• Pregunta: ¿Hace calor allí? (una playa en particular)
–– Respuesta
Respuesta 1: Sí, bastante
1: Sí, bastante calor.
calor. C
– Respuesta 2: Si no hay viento de poniente y el mar está
en calma, es normal que la temperatura suba.
¿Dónde hay una mayor cantidad de información?

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 7


© Jorge Ramió Aguirre Madrid (España) 2002
Cantidad de información (caso 3)

En función de la sorpresa del mensaje


– Ante una pregunta cualquiera, una respuesta más
inesperada y sorprendente, nos dará la sensación de
contener una mayor “cantidad de información”.
• Pregunta: ¿Hace calor allí? (ahora Finlandia en otoño)
–– Respuesta
Respuesta1:
1:Sí,
Sí,muchísimo.
muchísimo.Es
Esinsoportable.
insoportable. J
– Respuesta 2: En esta época del año, la temperatura es
más suave y el tiempo muy agradable.
¿Dónde hay una mayor cantidad de información?

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 8


© Jorge Ramió Aguirre Madrid (España) 2002
Cantidad de información (caso 4)
Dependencia del entorno (sorpresa)
– Ante una pregunta cualquiera, una respuesta inesperada
y sorprendente en el entorno, nos dará la sensación de
contener una mayor “cantidad de información”.
• Pregunta: ¿Hace calor allí?
(ahora las mismas respuestas hablan de la temperatura en un horno)
– Respuesta 1: Sí, muchísimo. Es insoportable.
– Respuesta 2: En esta época del año, la temperatura es
más suave y el tiempo muy agradable. K?
¿Dónde hay una mayor cantidad de información?

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 9


© Jorge Ramió Aguirre Madrid (España) 2002
Cantidad de información (caso 5)

En función de la probabilidad de recibir un mensaje


– Este enfoque probabilístico es el que nos interesará en
cuanto a la definición de Cantidad de Información.
¿Dónde le da alegría a su cuerpo Macarena?
– Respuesta 1: En un país de Europa.
– Respuesta 2: En una ciudad de España.
– Respuesta 3: En el número 7 de la calle de la Sierpes en
Sevilla, España.

¿Dónde hay una mayor cantidad de información?

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 10


© Jorge Ramió Aguirre Madrid (España) 2002
Incertidumbre e información
Ante varios mensajes posibles, en principio
todos equiprobables, aquel que tenga una
menor probabilidad será el que contenga
una mayor cantidad de información.
• En el ejemplo anterior:
– Al ser más extenso el número de calles y sus números
en una ciudad que el número de ciudades en España
y esto último mayor que los países en Europa, la
última respuesta tendrá una mayor incertidumbre. Si
suponemos todos los estados equiprobables, entonces
la cantidad de información de la respuesta tercera
será mayor que las demás.
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 11
© Jorge Ramió Aguirre Madrid (España) 2002
Concepto de variable aleatoria

• Sea X una variable aleatoria con n estados posibles con


X = xi una ocurrencia iésima:
X = {x1, x2, x3, ..., xn-1, xn}
p1 = p(x1), p2 = p(x2), ..., pn = p(xn)
Como:
0 £ pi £ 1 para i = 1, 2, ..., n
Entonces: n
S pi = 1
i=1

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 12


© Jorge Ramió Aguirre Madrid (España) 2002
Definición logarítmica
• Definiremos ci a la cantidad de información del
estado i, igual al logaritmo en base dos de la
probabilidad de que ocurra el estado iésimo.
ci

ci = - log2 (pi ) 0 pi
0 1

- Logaritmo: p(xi) = 1 Þ no hay incertidumbre: ci = 0


p(xi) = 0 Þ máxima incertidumbre: ci ® ¥
- Signo: p(xi) < 1 Þ log p(xi) será negativo
- Base: Fenómeno binario Þ dos estados (bit)
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 13
© Jorge Ramió Aguirre Madrid (España) 2002
Grado de indeterminación (1)

Grado de indeterminación previo


Ci =
Grado de indeterminación posterior
Ejemplo del mago: En una bolsa hay un círculo, un Si hay equiprobabilidad
cuadrado y un triángulo: negros o blancos. entonces p(xi) = 1/8

Combinación nº 1 Combinación nº 5
Combinación nº 2 Combinación nº 6
Combinación nº 3 Combinación nº 7
Combinación nº 4 Combinación nº 8

¿Qué cantidad de información tiene cada uno de los estados?

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 14


© Jorge Ramió Aguirre Madrid (España) 2002
Grado de indeterminación (2)
Combinación nº 1 Combinación nº 5
Combinación nº 2 Combinación nº 6
Combinación nº 3 Combinación nº 7
Combinación nº 4 Combinación nº 8
Los 8 estados serán equiprobables
Incertidumbre inicial Ii = 8 Veamos esto ahora
Daremos algunas pistas A: matemáticamente ...
– Las figuras no son del mismo color: Ii baja de 8 a 6 al
descartarse las combinaciones 1 y 8.
– El círculo es blanco: Ii baja de 6 a 3 (descarte 5, 6 y 7).
– Hay dos figuras blancas: Ii baja de 3 a 2 (descarte 4).
– El cuadrado es negro: Ii baja de 2 a 1 (descarte 2.)
Se acaba la incertidumbre pues la solución es la combinación 3.
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 15
© Jorge Ramió Aguirre Madrid (España) 2002
Grado de indeterminación (3)
– Las figuras no son del mismo color. Ii baja de 8 a 6:
Ci1 = log (8/6) = log 8 - log 6
– El círculo es blanco. Ii baja de 6 a 3:
Ci2 = log (6/3) = log 6 - log 3
– Hay dos figuras blancas. Ii baja de 3 a 2:
Ci3 = log (3/2) = log 3 - log 2
– El cuadrado es negro. Ii baja de 2 a 1:
Ci4 = log (2/1) = log 2 - log 1
Todas las magnitudes se pueden sumar como escalares:
Ci = Ci1 + Ci2 + Ci3 + Ci4 = log 8 - log 1 = log 8
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 16
© Jorge Ramió Aguirre Madrid (España) 2002
Base del logaritmo
Sean: Ii la indeterminación inicial
If la indeterminación final
Ci = log (Ii / If) = log Ii - log If
La cantidad de información tiene como unidad de medida la
de un fenómeno de sólo dos estados, un fenómeno binario.
Luego:
Ci = logb (2/1) = logb 2 - logb 1
– Si logb 2 debe ser igual a 1 entonces la base b = 2.
– A esta unidad se le llama bit (binary digit)
– Ejemplo anterior: ci = log2 8 = 3 ¡Sólo 3 preguntas!
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 17
© Jorge Ramió Aguirre Madrid (España) 2002
Con sólo tres preguntas...

Con sólo tres preguntas “más o menos inteligentes”


podemos pasar de la incertidumbre total a la certeza:
Pregunta 1: ¿Está entre la opción 1 y la 4? Þ Sí
Pregunta 2: ¿Está entre la opción 1 y la 2? Þ No
Pregunta 3: ¿Es la opción 4? Þ No Se acaba la indeterminación

Combinación nº 1 Combinación nº 5
Combinación nº 2 Combinación nº 6
Combinación nº 3 Combinación nº 7
Combinación nº 4 Combinación nº 8

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 18


© Jorge Ramió Aguirre Madrid (España) 2002
Entropía de los mensajes
• Si un fenómeno tiene un grado de indeterminación k y sus
estados son equiprobables, la probabilidad p de que se dé
uno de esos estados será 1/k. Luego:
Ci = log2 (k/1) = log2 [1/(1/k)] = - log2 p
• Si ahora cada uno de estos estados tiene una probabilidad
distinta pi, la entropía H será igual a la suma ponderada de
la cantidad de información:
H = - p1 log2 p1 - p2 log2 p2 - ... - pk log2 pk
k
H = - S pi log2 pi Ecuación no inmediata
i=1

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 19


© Jorge Ramió Aguirre Madrid (España) 2002
Definición de entropía
• La entropía de un mensaje X, que se representa por H(X),
es el valor medio ponderado de la cantidad de información
de los diversos estados del mensaje.
k Esto lo
H(X) = - S p(xi) log2 p(xi) veremos más
i=1 adelante
• Es una medida de la incertidumbre media acerca de una
variable aleatoria y el número de bits de información.

El concepto de incertidumbre en H puede aceptarse. Lo que


llama la atención I es lo del número de bits de información.

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 20


© Jorge Ramió Aguirre Madrid (España) 2002
Propiedades de la entropía
a) La entropía es no negativa y se anula si y sólo si un estado de la
variable es igual a 1 y el resto 0 (demostración sencilla).
b) La entropía es máxima, mayor incertidumbre del mensaje,
cuando todos los valores posibles de la variable X son
equiprobables (empíricamente fácil; demostración no directa).
Si hay n estados equiprobables, entonces pi = 1/n.
Luego:
H(X) = - S pi log2 pi = - n(1/n) log2 (1/n) = - (log2 1 - log2 n)
i

H(X)máx = log2 n

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 21


© Jorge Ramió Aguirre Madrid (España) 2002
Codificador óptimo
Nos falta encontrar el segundo término pendiente en la
definición de cantidad de información: codificador óptimo.
Introduciendo el signo negativo dentro del logaritmo en la
expresión de la entropía, ésta nos quedará como:

H(X) = S p(x) log2 [1/p(x)] Veamos un ejemplo


i
de codificación
La expresión log2 [1/p(x)] representa el número necesario de
bits para codificar el mensaje X en un codificador óptimo.
Codificador óptimo es aquel que para codificar un
mensaje X usa el menor número posible de bits.
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 22
© Jorge Ramió Aguirre Madrid (España) 2002
Codificación con el método de Huffman
Letra Frecuencia Ocurrencias ® Mensaje: MI MAMA ME MIMA
E 1 vez 3 ® 6 ® 9 ® 15

I 2 veces

A 3 veces I E A ““ M

““ 3 veces I E A ““

M 6 veces I E A
Creación del árbol de
Código óptimo: frecuencias observadas I E

M = 1 “ ” = 01 A = 000 I = 0010 E = 0011


Mensaje: 1 0010 01 1 000 1 000 01 1 0011 01 1 0010 1 000 (33 bits)
Pregunta: ¿Con cuántos bits codificaría si se usara ASCII? Saque conclusiones.
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 23
© Jorge Ramió Aguirre Madrid (España) 2002
Entropía condicional: equivocación de X
Si existe una segunda
H(X/Y) = - S p(x,y) log2 p(x,y)
variable Y que influya x,y
sobre X, esto nos
entregará importante Donde p(x,y) = p(y)p(x/y) y la
información adicional. relación p(x/y) es la probabilidad
El resultado más de que se obtenga un estado X
interesante es que... conocido el valor de Y.
La entropía se Luego:
reduce: hay más
orden y menos H(X/Y) = - S p(y) S p(x/y) log2 p(x/y)
y x
incertidumbre.

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 24


© Jorge Ramió Aguirre Madrid (España) 2002
Importancia de la entropía condicional
Equivocación de la clave k
H(K/C) = - S p(c) S p(k/c) log2 p(k/c)
¿Cuál es la probabilidad de c k
que a un criptograma C le
corresponda una cifra con
una clave k?

Servirá como un parámetro para la evaluación de la fortaleza


de un criptosistema según equivocación de clave y mensaje.
Equivocación del mensaje M
¿Cuál es la probabilidad de
que a un criptograma C le
corresponda un mensaje en H(M/C) = - S p(c) S p(m/c) log2 p(m/c)
c m
claro M?

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 25


© Jorge Ramió Aguirre Madrid (España) 2002
La ratio del lenguaje (1)

• Ratio r
– Es el número de “bits de información” en cada carácter
para mensajes con una longitud igual a N caracteres.
Luego, según la definición de entropía, se tiene:
r = H(X)/N (bits/letra)
– Si codificáramos un mensaje letra a letra suponiendo
además equiprobabilidad entre las letras, se obtiene la
ratio absoluta del lenguaje, R:
R = H(X) castellano = 27 letras
Rcastellano = log2 n = log2 27 = 4.75 (bits/letra)
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 26
© Jorge Ramió Aguirre Madrid (España) 2002
La ratio del lenguaje (2)

• Ratio verdadera
- Como las letras que aparecen en un texto no tienen
igual probabilidad, su frecuencia de aparición es
distinta, los lenguajes está muy estructurados, hay
bloques de dos palabras (digramas) característicos,
trigramas, poligramas, etc., la ratio baja mucho...
1.2 < r < 1.5
- A este valor se llega codificando los mensajes con
monogramas, digramas, trigramas, etc.

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 27


© Jorge Ramió Aguirre Madrid (España) 2002
La ratio del lenguaje (3)
¿Qué significa esto?
– Si un alfabeto consta de L elementos existirán 2R*N
mensajes posibles de longitud N, la entropía máxima
será H(X)máx = log2 L, y sólo habrá 2r*N mensajes que
tengan sentido.
Importante: No significa que podamos codificar
todos los mensajes de 27 caracteres con 2 bits (esto
sería imposible). Significa que la información que
contiene cada letra es tan sólo de 1.5 bits.
Véase la siguiente diapositiva
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 28
© Jorge Ramió Aguirre Madrid (España) 2002
Redundancia del lenguaje (1)
• La redundancia D del lenguaje será la diferencia
entre la ratio absoluta y la ratio real:
D=R-r
3.25 < D < 3.55
¿Qué significa esto?
– El número de bits extras (bits redundantes) necesarios
para codificar un mensaje suponiendo un alfabeto de 27
caracteres (codificación con 5 bits puesto que 25 = 32 y
24 = 16) será aproximadamente igual a 3.5.
– D/R será un factor proporcional, luego:
68.42 < % Red. Lenguaje (D/R) < 74.73
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 29
© Jorge Ramió Aguirre Madrid (España) 2002
Redundancia del lenguaje (2)
¿Por qué es redundante nuestro lenguaje?
– El estudio de Shannon demuestra que la estructura del
lenguaje produce esta redundancia:
– Diferencia de frecuencias de aparición de las letras.
– Existencia de digramas comunes. Y nuestra misión es
– Existencia de trigramas comunes. crear algoritmos que
sean seguros y eviten
– Existencia de poligramas comunes. estos ataques.
– Estructuración de frases y oraciones con sentido.
Esto dará pistas al criptoanalista para atacar un sistema.

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 30


© Jorge Ramió Aguirre Madrid (España) 2002
Un ejemplo de redundancia (1)
Todos los lenguajes serán redundantes. Esto quiere
decir que la misma cantidad de información se puede
entregar con menos símbolos o bits.
Sea el siguiente mensaje M = HBNVZNCRC
1a ayuda:
“En el mensaje original se han quitado las vocales”.
Esto nos permite suponer que entre consonantes habrá cero,
una, dos o tres vocales, según reglas del lenguaje...

M = __H__B__N__V__Z__N__C__R__C__
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 31
© Jorge Ramió Aguirre Madrid (España) 2002
Un ejemplo de redundancia (2)
Teníamos el mensaje M = HBNVZNCRC y además
M = __H__B__N__V__Z__N__C__R__C__
2a ayuda:
“El mensaje original contiene cinco palabras”.
Esto nos permite limitar el número de mensajes posibles
que tengan sentido. En estas condiciones podrían existir
muchos mensajes de 5 palabras, aunque no cumpliesen de
forma lógica con las reglas del lenguaje. Un ejemplo
podría ser...
M = AHÍ BUENO AVE ZONA CERCA
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 32
© Jorge Ramió Aguirre Madrid (España) 2002
Un ejemplo de redundancia (3)
Teníamos el mensaje M = HBNVZNCRC y además
M = __H__B__N__V__Z__N__C__R__C__
M = AHÍ BUENO AVE ZONA CERCA
3a ayuda y siguientes:
a) “El mensaje original tiene que ver con un circo”.
b) “Corresponde al estribillo de una canción infantil”.
c) “Los espacios están: M = HB N VZ N CRC”.
Seguro que habrá adivinado ya el mensaje.... J

M = HABÍA UNA VEZ UN CIRCO


Curso de Seguridad Informática. Tema 4: Teoría de la Información. 33
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de entropía condicional

El ejemplo anterior, además de demostrar que todos


los lenguajes son redundantes, es un claro exponente
de lo que se entiende en la práctica por entropía
condicional:
Cada vez que vamos dando nuevas pistas, disminuye
la incertidumbre del mensaje hasta que ésta se anula
y por lo tanto la entropía es igual a 0 ya que existe un
único mensaje posible con probabilidad igual a 1.

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 34


© Jorge Ramió Aguirre Madrid (España) 2002
Secreto en un sistema criptográfico
Shannon midió el secreto de un criptosistema como la
incertidumbre del mensaje en claro conocido el
criptograma recibido:
Mensajes M = {M1, M2, ..., M3} S p(M) = 1
M

Criptogramas C = {C1, C2, ..., C3} S p(C) = 1


C

Claves K = {K1, K2, ..., K3} S p(K) = 1


K

¿Cuando tendrá nuestro sistema un secreto perfecto?

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 35


© Jorge Ramió Aguirre Madrid (España) 2002
Definiciones previas secreto criptográfico
• p(M): Probabilidad de enviar un mensaje M. Si
hay n mensajes Mi equiprobables, p(Mi) = 1/n.
• p(C): Probabilidad de recibir un criptograma C. Si
cada uno de los n criptogramas recibidos Ci es
equiprobable, p(Ci) = 1/n.
• pM(C): Probabilidad de que, a partir de un texto en
claro Mi, se obtenga un criptograma Ci.
• pC(M): Probabilidad de que, una vez recibido un
criptograma Ci, éste provenga de un texto claro Mi.

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 36


© Jorge Ramió Aguirre Madrid (España) 2002
Secreto criptográfico perfecto (1)
Un sistema tiene secreto perfecto si el conocimiento del texto
cifrado no proporciona ninguna información acerca del
mensaje. Es decir, cuando la probabilidad de acierto al recibir
el elemento i +1 es la misma que en el estado i.

Secreto perfecto Þ p(M) = pC(M)


La probabilidad p de enviar un mensaje M con texto en claro p(M) o
probabilidad a priori será igual a la probabilidad p de que, conocido
un criptograma C, éste se corresponda a un mensaje M cifrado con la
clave K. Esta última (probabilidad a posteriori) es pC(M).

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 37


© Jorge Ramió Aguirre Madrid (España) 2002
Secreto criptográfico perfecto (2)
La probabilidad p de recibir un texto cifrado C al
cifrar un mensaje M usando una clave K será pM(C).
Luego, M debe haberse cifrado con alguna clave K:

pM(C) = S p(K) donde EK(M) = C


K

$ kj / Ekj(Mi) = Ci

Habrá una condición necesaria y suficiente


que se explica en la siguiente diapositiva.
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 38
© Jorge Ramió Aguirre Madrid (España) 2002
Secreto criptográfico perfecto (3)
La condición necesaria y suficiente del secreto
perfecto es que para cualquier valor de M se
cumpla que la probabilidad de recibir C,
resultado de la cifra de un mensaje M con una
clave K, sea la misma que recibir el criptograma
C, resultado de la cifra de otro mensaje M’
distinto, cifrado con otra clave.

pM(C) = p(C) Veamos algunos


ejemplos
para todo valor de M

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 39


© Jorge Ramió Aguirre Madrid (España) 2002
Cifrador con secreto perfecto
Sea el siguiente escenario:

Espacio de Mensajes Espacio de Claves Espacio de Cifrados

M1 k1 C1
k3 k2
k2
M2 k3 C2
k1
k3 k1
M3 C3
k2

p(M) = 1/3 para todo M p(C) = 1/3


pM(C) =1/3 pC(M) = 1/3

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 40


© Jorge Ramió Aguirre Madrid (España) 2002
Cifrador sin secreto perfecto (1)
Sea ahora el siguiente escenario:
Espacio de Mensajes Espacio de Claves Espacio de Cifrados

k1
p(M1) = 1/3 M1 C1 p(C1) = 3/9
k3 k2
k2
p(M2) = 1/3 M2 k3 C2 p(C2) = 2/9
k1
k3 k1
p(M3) = 1/3 M3 k2 C3 p(C3) = 2/9

p(C4) = 2/9
Algo más C4

¿Probabilidad de que un mensaje Mi se convierta en un criptograma Ci: [PMi(Ci)]


y que un criptograma Ci sea el resultado de la cifra de un mensaje Mi: [PCi(Mi) ]?

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 41


© Jorge Ramió Aguirre Madrid (España) 2002
Cifrador sin secreto perfecto (2)
Esquema anterior:
k1 pC1(M1) = 1/3 pC1(M2) = 1/3 pC1(M3) = 1/3
M1 C1
k3 k2
k2 pC2(M1) = 1/2 pC2(M2) = 1/2 pC2(M3) = 0
M2 k3 C2
K1 pC3(M1) = 1/2 pC3(M2) = 0 pC3(M3) = 1/2
K3 k1
M3 k2 C3 pC4(M1) = 0 pC4(M2) = 1/2 pC4(M3) = 1/2

C4

pM1(C1) = 1/3 pM1(C2) = 1/3 pM1(C3) = 1/3 pM1(C4) = 0


pM2(C1) = 1/3 pM2(C2) = 1/3 pM2(C3) = 0 pM2(C4) = 1/3
pM3(C1) = 1/3 pM3(C2) = 0 pM3(C3) = 1/3 pM3(C4) = 1/3

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 42


© Jorge Ramió Aguirre Madrid (España) 2002
Distancia de unicidad
• Se entenderá por Distancia de Unicidad al bloque N de
texto cifrado o criptograma mínimo necesario para que se
pueda intentar con ciertas expectativas de éxito un ataque
en búsqueda de la clave usada para cifrar.
• Este valor se obtiene cuando la equivocación de la clave
HC(K) se acerca a cero o tiende a anularse.
• A medida que tenga un criptograma más largo, y por tanto
más información, se supone que la tarea de ataque del
criptoanalista se va facilitando.
• Se busca el tamaño N de criptograma que permita
esperar que la solución de K sea única. Se supondrá
un cifrador aleatorio Þ Modelo de Hellmann
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 43
© Jorge Ramió Aguirre Madrid (España) 2002
Parámetros del modelo de Hellman (1)

• Existirán 2RN mensajes posibles de longitud N.


• Existirán 2rN mensajes de longitud N con sentido.
• El espacio de mensajes de longitud N se dividirá:
– Mensajes con sentido: MCS = 2rN
– Mensajes sin sentido: MSS = 2RN - 2rN
• Los 2rN mensajes con sentido serán equiprobables
siendo su valor p(MCS) = 1/2rN = 2-rN
• El resto de mensajes (2RN - 2rN) tendrá p(MSS) = 0.

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 44


© Jorge Ramió Aguirre Madrid (España) 2002
Parámetros del modelo de Hellman (2)

• Existirán 2H(K) claves equiprobables.


• En donde H(K) es la entropía de la clave.
• Con p(K) = 1/2H(K) = 2-H(K)
• Con estas claves se cifrarán todos los mensajes
con sentido dando lugar a 2RN textos cifrados
posibles de longitud N.
• Los criptogramas obtenidos serán equiprobables.
Esquema de Hellmann

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 45


© Jorge Ramió Aguirre Madrid (España) 2002
Esquema de Hellmann
Espacio de Mensajes Espacio de Claves Espacio de Cifrados

M1
k1
C1 SV: Un criptograma está asociado
k2
sólo a un texto en claro con sentido
M2 k1 C2 cifrado con una única clave ki.
k2
k2
M3 C3 SF: Cualquier otra solución de
k1
k1
cifra distinta a la anterior.
k2
M4 C4

M5
k1
C5 SV: C3 = Ek1(M5) C4 = Ek1(M2)
k2

M6 Soluciones: C6
C6 = Ek2(M1) C7 = Ek1(M3)
k1

k2 Falsas Þ SF C9 = Ek1(M6) C10 = Ek2(M6)


M7 C7

Verdaderas Þ SV
M8 C8 SF: C2 = Ek1(M4) C2 = Ek2(M4)
SF C2: Condición obvia
M9 C9
C5 = Ek2(M2) C5 = Ek2(M5)
SF C5: Condición débil
SF C1: Condición fuerte
C1 = Ek1(M1) C1 = Ek2(M3)
M10 C 10

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 46


© Jorge Ramió Aguirre Madrid (España) 2002
Cálculo de la distancia de unicidad N (1)

• Para cada solución correcta de un texto M cifrado con


una clave k del espacio 2H(K), existirán otras (2H(K)-1)
claves con la misma probabilidad de entregar una
solución falta SF.
Sea q la probabilidad de obtener un mensaje con sentido:
q = 2rN / 2RN = 2(r - R)N = 2-DN Luego:
SF = (2H(K)-1) q = (2H(K)-1) 2-DN = 2H(K) - DN - 2-DN

SF » 2H(K) - DN log2 SF = H(K) - DN

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 47


© Jorge Ramió Aguirre Madrid (España) 2002
Cálculo de la distancia de unicidad N (2)
La solución SF = 0 es imposible porque sólo se llega a
ella de forma asintótica con un valor de N infinito como
se muestra en la diapositiva siguiente.
Se acepta entonces que haya como máximo una sola
solución falsa, de ahí su nombre de unicidad, luego:
SF = 2H(K) – DN SF = 1 Þ H(K) - DN = 0
Por lo tanto:
N = H(K) / D Número de bytes o caracteres en C

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 48


© Jorge Ramió Aguirre Madrid (España) 2002
Cantidad de trabajo Q
Cantidad de Trabajo
Q
(B)
(A)

(C) Solución única


H(M/C) (D) n
N Cantidad de caracteres

(A) Inicialmente hay que hacer un arduo trabajo para obtener algo
coherente. Habrá muchas soluciones falsas.
(B) Cuando se tiene una cantidad “adecuada” de texto cifrado, la
cantidad de trabajo disminuye. Se descartan algunas soluciones.
(C) Cuando se anula la equivocación de la clave, H(M/C) = 0,
disminuyen las soluciones falsas y la solución tiende a ser única.
Curso de Seguridad Informática. Tema 4: Teoría de la Información. 49
© Jorge Ramió Aguirre Madrid (España) 2002
Difusión y confusión
Para lograr un mayor secreto en las operaciones de cifra
Shannon propuso dos técnicas:
Difusión: Transformación sobre el texto en claro con objeto
de dispersar las propiedades estadísticas del lenguaje sobre
todo el criptograma.
TRANSPOSICIONES O PERMUTACIONES Fin del Tema 4

Confusión: Transformación sobre el texto en claro con objeto


de mezclar los elementos de éste, aumentando la complejidad
de la dependencia funcional entre clave y criptograma.
SUSTITUCIONES Ambas técnicas serán usadas en todos los
sistemas clásicos y también en el DES

Curso de Seguridad Informática. Tema 4: Teoría de la Información. 50


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 5
Teoría de los Números

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 61 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Conceptos básicos de congruencia

• Es la base matemática (matemáticas discretas) en


la que se sustentan las operaciones de cifra.
• Concepto de congruencia:
– Sean dos números enteros a y b: a es congruente
con b en el módulo o cuerpo n en Zn si y sólo si
existe algún entero k que divide de forma exacta la
diferencia (a - b)
a-b=k*n
aºnb
a º b mod n
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 2
© Jorge Ramió Aguirre Madrid (España) 2002
Operaciones de congruencia en Zn

¿Es 18 congruente con 3 módulo 5?


¿18 º 3 mod 5?
Sí, porque: 18-3 = 15 = k*5 con k = 3
¿Cómo se usará esto en criptografía?
Esta operación en Zn se expresará así:
18 mod 5 = 3
El valor 3 será el resto o residuo.
El conjunto de números que forman los restos dentro de
un cuerpo Zn serán muy importantes en criptografía.

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 3


© Jorge Ramió Aguirre Madrid (España) 2002
Propiedades de la congruencia en Zn

• Propiedad Reflexiva:
a º a mod n "aÎZ
• Propiedad Simétrica:
a º b mod n Þ b º a mod n " a,b Î Z
• Propiedad Transitiva:
Si a º b mod n y b º c mod n
Þ a º c mod n " a,b,c Î Z

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 4


© Jorge Ramió Aguirre Madrid (España) 2002
Propiedades de las operaciones en Zn (1)
• Propiedad Asociativa:
a + (b + c) mod n º (a + b) + c mod n
• Propiedad Conmutativa: Se usará el signo =
a + b mod n º b + a mod n en vez de º
a * b mod n º b * a mod n (algo propio de los
Campos de Galois)
• Propiedad Distributiva:
a * (b+c) mod n º ((a * b) + (a * c)) mod n
a * (b+c) mod n = ((a * b) + (a * c)) mod n

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 5


© Jorge Ramió Aguirre Madrid (España) 2002
Propiedades de las operaciones en Zn (2)
• Existencia de Identidad:
a + 0 mod n = 0 + a mod n = a mod n = a
a * 1 mod n = 1 * a mod n = a mod n = a
• Existencia de Inversos: ü
a + (-a) mod n = 0
a * (a-1) mod n = 1 (si a ¹ 0) No siempre existe
• Reducibilidad: ü Ambos importantes en criptografía

(a + b) mod n = [(a mod n) + (b mod n)] mod n


(a * b) mod n = [(a mod n) * (b mod n)] mod n
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Conjunto completo de restos CCR (1)
Para cualquier entero positivo n, el conjunto
completo de restos será CCR = {0, 1, 2, ... n-1},
es decir:
" a Î Z $ ! ri Î CCR / a º ri mod n
CCR (11) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

CCR (6) = {0, 1, 2, 3, 4, 5} = {12, 7, 20, 9, 16, 35}


El segundo conjunto es equivalente: 12 ® 0, 7 ® 1...

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 7


© Jorge Ramió Aguirre Madrid (España) 2002
Conjunto completo de restos CCR (2)

" a Î Z $ ! ri Î CCR / a º ri mod n


En este caso se cumple lo siguiente:
a mod n = r Þ a º r mod n
a º b mod n ssi a mod n = b mod n

¿7 mod 3 = 4? Þ Sí porque:
7 º 4 mod 3 7-4 = 3 = k*3 (k=1)
Y además: 7 mod 3 = 1 y 4 mod 3 = 1

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 8


© Jorge Ramió Aguirre Madrid (España) 2002
Homomorfismo de los enteros

Enteros Enteros mod n


a1, a2 (a1 mod n), (a2 mod n)

es lo mismo que

Esta operación ... esta otra

op (y posterior reducción mod n) op


(a1 op a2) mod n (a1 mod n) op (a2 mod n) mod n

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 9


© Jorge Ramió Aguirre Madrid (España) 2002
Un ejemplo de homomorfismo

88 * 93 mod 13 E Ejemplo: una calculadora capaz de


trabajar sólo con tres dígitos ...
8.184 mod 13
Solución por homomorfismo:
Resultado: 7
88 * 93 mod 13
[(88) mod 13 * (93) mod 13] mod 13
Se desbordaría
la memoria de
L 10 * 2 mod 13
nuestro sistema 20 mod 13 Resultado: 7
se llega a lo mismo, pero...
Ahora ya no
... y hemos usado siempre números de 3
se desborda
dígitos. En este caso la operación máxima
la memoria J sería 12*12 = 144, es decir tres dígitos.
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 10
© Jorge Ramió Aguirre Madrid (España) 2002
Divisibilidad de los números (1)
En criptografía muchas veces nos interesará encontrar el
máximo común denominador mcd entre dos números a y b.
Para la existencia de inversos en un cuerpo n, la base a y el
módulo n deberán ser primos entre sí. Þ mcd (a, n) = 1

Algoritmo de Euclides:
– a) Si x divide a a y b Þ a = x * a’ y b = x * b’
– b) Por lo tanto: a - k * b = x * a’ - k * x * b’
a - k * b = x (a’ - k * b’)
– c) Entonces se concluye que x divide a (a - k * b)
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 11
© Jorge Ramió Aguirre Madrid (España) 2002
Divisibilidad de los números (2)

Como hemos llegado a que x divide a (a – k * b) esto nos


permitirá encontrar el mcd (a, b):
Si a > b entonces a = d1 * b + r
(con di un entero y r un resto)
Luego mcd (a, b) = mcd (b ,r) (a > b > r ³ 0)
porque:
Si b > r entonces b = d2 * r + r’
(con r un entero y r’ un resto)
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 12
© Jorge Ramió Aguirre Madrid (España) 2002
Divisibilidad con algoritmo de Euclides

mcd (148, 40) 148 = 22 * 37 mcd (385, 78)


148 = 3 * 40 + 28 40 = 23 * 5 385 = 4 * 78+ 73
Factor común
40 = 1 * 28 + 12 78 = 1 * 73 + 5
22 = 4

28 = 2 * 12 + 4 73 = 14 * 5 + 3

12 = 3 * 4 + 0 5 = 1* 3 + 2
No hay
mcd (148, 40) = 4 factor común 3 = 1* 2 + 1

385 = 5 * 7 * 11 2=2*1+0
Será importante
en criptografía E 78 = 2 * 3 * 13 mcd (385, 78) = 1
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 13
© Jorge Ramió Aguirre Madrid (España) 2002
Inversos en un cuerpo (1)

• En criptografía deberá estar permitido invertir una


operación para recuperar un cifrado Þ descifrar.
• Si bien la cifra es una función, en lenguaje coloquial
la operación de cifrado sería una “multiplicación” y la
operación de descifrado una “división”.
• La analogía anterior sólo será válida en el cuerpo de
los enteros Zn con inverso.
• Luego, si en una operación de cifra la función es el
valor a dentro de un cuerpo n, deberemos encontrar el
inverso a-1 mod n para descifrar; en otras palabras ...
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 14
© Jorge Ramió Aguirre Madrid (España) 2002
Inversos en un cuerpo (2)
Si a * x mod n = 1
x será el inverso multiplicativo (a-1) de a en el módulo n

¤ No siempre existen los inversos. En realidad lo raro


es que existan.
¤ Por ejemplo, en el cuerpo Z = 2 no existirán inversos
porque la única solución a 2*x mod 2 = 1 sería x = ½
un valor que está fuera del cuerpo. En este caso los
restos son {0, 1}: el resto cero no es solución y el
resto 1 es una solución trivial.
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 15
© Jorge Ramió Aguirre Madrid (España) 2002
Existencia del inverso por primalidad
$ inverso a-1 en mod n ssi mcd (a, n) = 1
Si mcd (a,n) = 1, el resultado de a*i mod n (para i todos los
restos de n) serán valores distintos dentro del cuerpo n.
mcd (a, n) = 1 Þ $ x ! 0<x<n / a * x mod n = 1
Sea: a = 4 y n = 9. Valores de i = {1, 2, 3, 4, 5, 6, 7, 8}
S
O
4*1 mod 9 = 4 4*2 mod 9 = 8 4*3 mod 9 = 3
L
U Ú 4*4 mod 9 = 7 4*5 mod 9 = 2 4*6 mod 9 = 6
C N
I I
Ó C 4*7 mod 9 = 1 4*8 mod 9 = 5 Si mcd (a,n) ¹ 1
N A

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 16


© Jorge Ramió Aguirre Madrid (España) 2002
Inexistencia de inverso (no primalidad)

¿Y si no hay primalidad entre a y n?

Si mcd (a, n) ¹ 1
No existe ningún x que 0 < x < n / a * x mod n = 1
Sea: a = 3 y n = 6 Valores de i = {1, 2, 3, 4, 5}
3*1 mod 6 = 3 3*2 mod 6 = 0 3*3 mod 6 = 3
3*4 mod 6 = 0 3*5 mod 6 = 3
No existe el inverso para ningún resto del cuerpo.
D
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 17
© Jorge Ramió Aguirre Madrid (España) 2002
Inversos aditivos y multiplicativos
(A+B) mod 4 (A*B) mod 4
B + 0 1 2 3 B * 0 1 2 3
A 0 0 1 2 3 A 0 0 0 0 0
1 1 2 3 0 0+0 = 0 1 0 1 2 3
2 2 3 0 1 1*1 = 1 2 0 2 0 2
Es trivial
3 3 0 1 2 3 0 3 2 1
En la operación suma siempre En la operación producto, de
existirá el inverso (0) para existir un inverso (1) éste es
cualquier resto del cuerpo. único y para ello debe haber
primalidad entre A y B.

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 18


© Jorge Ramió Aguirre Madrid (España) 2002
Conjunto reducido de restos CRR (1)

• El conjunto reducido de restos, conocido como


CRR de n, es el subconjunto {0, 1, ... ni, ... n-1}
de restos primos con el grupo n.
• Si n es primo, todos los restos serán primos con él.
• Como el cero no es una solución, entonces:
CRR = {1, ..., ni, ... n-1} / mcd (ni, n) = 1
Ejemplo: CRR mod 8 = {1, 3, 5, 7}
CRR mod 5 = {1, 2, 3, 4}

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 19


© Jorge Ramió Aguirre Madrid (España) 2002
Conjunto reducido de restos CRR (2)

¿Qué utilidad tiene esto en criptografía?

El conocimiento del CRR permitirá aplicar un algoritmo


para el cálculo del inverso multiplicativo de un número x
dentro de un cuerpo o grupo n a través de la función f(n),
denominada Función de Euler o Indicador de Euler.
Será muy importante tanto en los sistemas
simétricos (salvo alguna excepción) como en
los asimétricos, siendo en este último caso
esencial para el cálculo del par de claves.
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 20
© Jorge Ramió Aguirre Madrid (España) 2002
Función de Euler f(n)
• Función f(n) de Euler
• Entregará el número de elementos del CRR.
• Podremos representar cualquier número n de estas
cuatro formas:
– a) n es un número primo.
– b) n se representa como n = pk con p primo y k entero.
– c) n es el producto n = p*q con p y q primos.
– d) n es un número cualquiera (genérico).
t
Veamos cada
n = p1 * p2 * ... *
e1 e2 ptet =P piei
i=1
uno de ellos
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 21
© Jorge Ramió Aguirre Madrid (España) 2002
Función f(n) de Euler (n = p)

Caso 1: n es un número primo


Si n es primo, f(n) será igual a CCR menos el 0.

f(n) = n - 1 Se usará en sistemas ElGamal y DSS

Si n es primo, entonces CRR = CCR - 1 ya que todos


los restos de n, excepto el cero, serán primos entre sí.
Ejemplo CRR(7) = {1,2,3,4,5,6} seis elementos
\f(7) = n - 1 = 7-1 = 6
f(11) = 11-1 = 10; f(23) = 23-1 = 22

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 22


© Jorge Ramió Aguirre Madrid (España) 2002
Función f(n) de Euler (n = pk)

Caso 2: n = pk (con p primo y k un entero)

f(n) = f(pk) = pk - pk-1 f(pk) = pk-1(p-1)


De los pk elementos del CCR, restaremos todos los
múltiplos 1*p, 2*p, 3*p, ...(pk-1-1)*p y el cero.

Ejemplo CRR(16) = {1,3,5,7,9,11,13,15} ocho elementos


\ f(16) = f(24) = 24-1(2-1) = 23*1 = 8
f(125) = f(53) = 53-1*(5-1) = 52*4 = 25*4 = 100

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 23


© Jorge Ramió Aguirre Madrid (España) 2002
Función f(n) de Euler (n = p*q) (1)

Caso 3: n = p*q (con p y q primos)

f(n) = f(p*q) = f(p)*f(q) = (p-1)(q-1)


De los p*q elementos del CCR, restaremos todos los
múltiplos de p = 1*p, 2*p, ... (q - 1)*p, todos los
múltiplos de q = 1*q, 2*q, ... (p - 1)*q y el cero.
f(p*q) = p*q - [(q-1) + (p-1) +1] = p*q - q - p + 1

(p-1)(q-1)
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 24
© Jorge Ramió Aguirre Madrid (España) 2002
Función f(n) de Euler (n = p*q) (2)

Ejemplo CRR(15) = {1,2,4,7,8,11,13,14} ocho elementos


\ f(15) = f(3*5) = (3-1)(5-1) = 2*4 = 8
f(143) = f(11*13) = (11-1)(13-1) = 10*12 = 120

Será una de las funciones más utilizadas ya


que es la base del sistema RSA, durante
muchos años un estándar de hecho.

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 25


© Jorge Ramió Aguirre Madrid (España) 2002
Función f(n) de Euler (n = genérico)

Caso 4: n = p1e1*p2e2* ... *ptet (pi son primos)


t
f(n) = P piei-1 (pi - 1)
i=1
Ejemplo
(demostración no inmediata)

CRR(20) = {1, 3, 7, 9, 11, 13, 17, 19} ocho elementos


\ f(20) = f(22 *5) = 22-1(2-1)*51-1(5-1) = 21*1*1*4 = 8
f(360) = f(23 *32*5) = 23-1(2-1)*32-1(3-1)*51-1(5-1) = 96

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 26


© Jorge Ramió Aguirre Madrid (España) 2002
Teorema de Euler
Dice que si mcd (a,n) = 1 Þ af(n) mod n = 1
Ahora igualamos a*x mod n = 1 y af(n) mod n = 1

\ af(n) * a-1 mod n = x mod n


\ x = af(n)-1 mod n

El valor x será el inverso de a en el cuerpo n


Nota: Observe que se ha dividido por a en el cálculo anterior.
Esto se puede hacer porque mcd (a, n) = 1 y por lo tanto hay
un único valor inverso en el cuerpo n que lo permite.
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 27
© Jorge Ramió Aguirre Madrid (España) 2002
Cálculo de inversos con Teorema Euler
Ejemplo

¿Cuál es el inverso de 4 en módulo 9? Þ inv (4, 9)

Pregunta: ¿Existe a * x mod n = 4 * x mod 9 = 1?

Como mcd (4, 9) = 1 Þ Sí ... aunque 4 y 9 no son primos.

f(9) = 6 \ x = 46-1 mod 9 = 7 Þ 7*4 = 28 mod 9 = 1

Resulta obvio que: inv (4, 9) = 7 e inv (7, 9) = 4


Curso de Seguridad Informática. Tema 5: Teoría de los Números. 28
© Jorge Ramió Aguirre Madrid (España) 2002
Teorema de Euler para n = p*q

Si el factor a es primo relativo con n y n es el


producto de 2 primos, seguirá cumpliéndose el
Teorema de Euler también en dichos primos.
Por ejemplo:
Si n = p*q Þ f(n) = (p-1)(q-1) En el capítulo
dedicado a la
" a / mcd {a, (p,q)} = 1 cifra con clave
pública RSA,
se cumple que: relacionaremos
af(n) mod p = 1 este tema con el
f(n)
Teorema del
a mod q = 1 Resto Chino.
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 29
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo Teorema de Euler para n = p*q
Sea n = p*q = 7*11 = 77
f(n) = (p - 1)(q - 1) = (7 - 1)(11 - 1) = 6*10 = 60
Si k = 1, 2, 3, ...
Para a = k*7 af(n) mod n = k*760 mod 77 = 56
Para a = k*11 af(n) mod n = k*1160 mod 77 = 22
Para " a ¹ k*7,11 af(n) mod n = a60 mod 77 = 1
Y se cumple que:
Para " a ¹ k*7,11 af(n) mod p = a60 mod 7 = 1
af(n) mod q = a60 mod 11 = 1
En caso contrario: af(n) mod p = 0
af(n) mod q = 0
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 30
© Jorge Ramió Aguirre Madrid (España) 2002
Teorema de Fermat
Si el cuerpo de trabajo n es un primo p
mcd (a, p) = 1 Þ af(p) mod p = 1
Entonces a * x mod p = 1 y af(n) mod p = 1

Además, en este caso f(p) = p-1 por lo que igualando las


dos ecuaciones de arriba tenemos:
\ af(p) * a-1 mod p = x mod p
\ x = ap-2 mod p

Luego x será e inverso de a en el primo p.

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 31


© Jorge Ramió Aguirre Madrid (España) 2002
¿Qué hacemos si no se conoce f(n)?
• Calcular ai mod n cuando los valores de i y a son
grandes, se hace tedioso pues hay que utilizar la
propiedad de la reducibilidad repetidas veces.
• Si no conocemos f(n) o no queremos usar el
teorema de Euler/Fermat, siempre podremos
encontrar el inverso de a en el cuerpo n usando el
Algoritmo Extendido de Euclides
Es el método más rápido y práctico

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 32


© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo Extendido de Euclides (1)

Si mcd (a, n) = 1 Þ a * x mod n = 1 \ x = inv (a, n)


Luego podemos escribir:
n = C1*a + r1 a > r1 Si volvemos hacia
a = C2*r1+ r2 r1> r2 atrás desde este
r1 = C3*r2+ r3 r2> r3 valor, obtenemos
... ... el inverso de a en
el cuerpo n.
rn-2 = Cn*rn-1 + 1 rn-1> 1
rn-1 = Cn+1*1 + 0
Concluye el algoritmo

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 33


© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo Extendido de Euclides (2)

Ordenando por restos desde el valor 1 se llega a una expresión


del tipo (k1 * n + k2 * a) mod n = 1, en donde el inverso lo dará
el coeficiente k2 puesto que k1 * n mod n = 0

C1 C2 C3 C4 ... Cn-1 Cn Cn+1


n a r1 r2 r3 ... rn-2 rn-1 1

(k1 * n + k2 * a) mod n = 1
Tabla de restos

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 34


© Jorge Ramió Aguirre Madrid (España) 2002
Cálculo de inversos con el AEE
Encontrar el inv (9, 25) por el método de restos de Euclides.
a) 25 = 2*9 + 7 7 = 25 - 2*9 7 = 25 - 2*9
b) 9 = 1*7 + 2 2 = 9 - 1*7 2 = 9 - 1*(25 - 2*9) = 3*9 -1*25
c) 7 = 3*2 + 1 1 = 7 - 3*2 1 = (25 - 2*9) - 3*(3*9 -1*25)
d) 2 = 2*1 + 0 restos 1 = 4*25 - 11*9 mod 25

Tabla de Restos El inv (9,25) = -11


2 1 3 2 -11 + 25 = 14
25 9 7 2 1 0 inv (9, 25) = 14

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 35


© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo para el cálculo de inversos
Para encontrar x = inv (A, B)
x = inv (A, B)
Hacer (g0, g1, u0, u1, v0, v1, i) = (B, A, 1, 0, 0, 1, 1)
x = inv (9, 25)
Mientras gi ¹ 0 hacer
i yi gi ui vi
Hacer yi+1 = parte entera (gi-1/gi)
Hacer gi+1 = gi-1 - yi+1* gi 0 - 25 1 0
Hacer ui+1 = ui-1 - yi+1* ui 1 - 9 0 1
Hacer vi+1 = vi-1 - yi+1* vi 2 2 7 1 -2
Hacer i = i+1
3 1 2 -1 3
x = inv (9, 25) = -11+25 = 14
Si (vi-1 < 0) Hacer
4 3 1 4 -11
Hacer vi-1 = vi-1 + B
5 2 0 -9 25
Hacer x = vi-1 Ejemplo
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 36
© Jorge Ramió Aguirre Madrid (España) 2002
Inversos en el cuerpo n = 27
Para el alfabeto castellano con mayúsculas (n = 27) tenemos:
x inv (x, 27) x inv (x, 27) x inv (x, 27)
1 1 10 19 19 10
2 14 11 5 20 23
4 7 13 25 22 16
5 11 14 2 23 20
7 4 16 22 25 13
8 17 17 8 26 26

27 = 33 luego no existe inverso para a = 3, 6, 9, 12, 15, 18, 21, 24.

inv (x, n) = a Û inv (a, n) = x Inversos en sistemas de


cifra clásicos orientados a
inv (1, n) = 1 alfabetos de 27 caracteres.

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 37


© Jorge Ramió Aguirre Madrid (España) 2002
¿Habrá inversos si mcd (a, n) ¹ 1?

• ¿Pueden existir inversos?


• No, pero...
• Si a * x mod n = b con b ¹ 1 y mcd (a, n) = m, siendo
m divisor de b, habrá m soluciones válidas.
Esto no nos sirve en criptografía ... L

6*x mod 10 = 4 mcd (6, 10) = 2


No existe inv (6, 10) pero ... habrá 2 soluciones válidas
x1 = 4 Þ 6*4 mod 10 = 24 mod 10 = 4
x2 = 9 Þ 6*9 mod 10 = 54 mod 10 = 4 ?
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 38
© Jorge Ramió Aguirre Madrid (España) 2002
Teorema del Resto Chino TRC
Si n = d1*d2*d3* ... *dt con di = piei (p primo)
El sistema de ecuaciones:
x mod di = xi (i = 1, 2, 3, ... t)
tiene una solución común en [0, n-1]
t
x = S (n/di)*yi*xi mod n desarrollo
i=1

con yi = inv [(n/di), di]


Curso de Seguridad Informática. Tema 5: Teoría de los Números. 39
© Jorge Ramió Aguirre Madrid (España) 2002
Cálculos en el cuerpo n con el TRC (1)
Encontrar x de forma que : 12 * x mod 3.960 = 36
Tenemos la ecuación genérica: a * xi mod di = b
n = 3.960 Þ n = 23*32*5*11 = d1*d2*d3*d4 = 8*9*5*11
a = 12
b = 36 Como n Þ d4, existirán 4 soluciones de xi
a*x1 mod d1 = b mod d1 12*x1 mod 8 = 36 mod 8 = 4
a*x2 mod d2 = b mod d2 12*x2 mod 9 = 36 mod 9 = 0
a*x3 mod d3 = b mod d3 12*x3 mod 5 = 36 mod 5 = 1
a*x4 mod d4 = b mod d4 12*x4 mod 11 = 36 mod 11 = 3
4 ecuaciones en x Resolviendo para xi
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 40
© Jorge Ramió Aguirre Madrid (España) 2002
Cálculos en el cuerpo n con el TRC (2)

x1 = 1 x2 = 0
4 ecuaciones en x
x3 = 3 x4 = 3

12*x1 mod 8 = 4 Þ 4*x1 mod 8 = 4 Þ x1 = 1

12*x2 mod 9 = 0 Þ 3*x2 mod 9 = 0 Þ x2 = 0

12*x3 mod 5 = 1 Þ 2*x3 mod 5 = 1 Þ x3 = 3

12*x4 mod 11 = 3 Þ 1*x4 mod 11 = 3 Þ x4 = 3

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 41


© Jorge Ramió Aguirre Madrid (España) 2002
Cálculos en el cuerpo n con el TRC (3)
Resolvemos ahora la
y1 = 7 y2 = 8
ecuación auxiliar del
Teorema Resto Chino y3 = 3 y4 = 7
yi = inv [(n/di), di]

y1 = inv [(n/d1), d1] Þ y1 = inv[(3960/8),8] = inv (495,8)

y2 = inv [(n/d2), d2] Þ y2 = inv[(3960/9),9] = inv (440,9)

y3 = inv [(n/d3), d3] Þ y3 = inv[(3960/5),5] = inv (792,5)

y4 = inv[(n/d4), d4] Þ y4 = inv[(3960/11),11] = inv(360,11)


Curso de Seguridad Informática. Tema 5: Teoría de los Números. 42
© Jorge Ramió Aguirre Madrid (España) 2002
Cálculos en el cuerpo n con el TRC (4)
x1 = 1 x2 = 0 Aplicando ecuación del Resto Chino
para el caso 12 * x mod 3.960 = 36
x3 = 3 x4 = 3 con d1 = 8, d2 = 9, d3 = 5, d4 = 11:

t
y1 = 7 y2 = 8
x = S (n/di)*yi*xi mod n
y3 = 3 y4 = 7 i=1

x = [(n/d1)y1x1 + (n/d2)y2x2 + (n/d3)y3x3 + (n/d4)y4x4]


x = [495*7*1 + 440*8*0 + 792*3*3 + 360*7*3] mod 3.960

x = [3.465 + 0 + 7.128 + 7.560] mod 3.960 = 2.313

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 43


© Jorge Ramió Aguirre Madrid (España) 2002
¿Todo marcha bien en este ejemplo?
¿Es la solución de 12*x mod 3.960 = 36 única?
NO
¿Qué ha sucedido?
Puesto que mcd (a, n) = mcd (12, 3.960) = 12, ya hemos visto
en una diapositiva anterior que habrá 12 soluciones válidas.

x1 = 3; x2 = 333; x3 = 663; x4 = 993 ..... x8 = 2.313 ...


xi = 3 + (i-1)*330 mod 3.960 ... hasta llegar a x12 = 3.633

Observe que x = 2.313, uno de los valores solución,


fue el resultado encontrado en el ejercicio anterior.
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 44
© Jorge Ramió Aguirre Madrid (España) 2002
Otros casos con resultados positivos

¿Qué sucede ahora con: 12*x mod 3.960 = 35


12*x mod 3.960 = 35? mcd (a, n) = 12 no es un
divisor de b = 35, luego
aquí no existe solución.
Teníamos que
3.960 = 23*32*5*11 Encuentre x como ejercicio

49*x mod 3.960 = 1


¿Qué sucede ahora con: Sí existirá x, en este caso es el
inverso de 49, y será único ya que
49*x mod 3.960 = 1?
49 = 7*7 no tiene factores en n.
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 45
© Jorge Ramió Aguirre Madrid (España) 2002
¿Sólo sirve para este el TRC?
Calcular el inverso de 49 en el cuerpo 3.960 por medio
del Teorema del Resto Chino es algo tedioso .......... L
ya lo habrá comprobado J.
No obstante, ya habrá comprobado que en este caso el
inverso de 49 en el cuerpo 3.960 es x = 889.

¿Para qué sirve entonces este algoritmo?


Entre otras cosas, cuando veamos el sistema de cifra
RSA y el tema dedicado a Protocolos Criptográficos,
encontraremos una interesante aplicación del Teorema.

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 46


© Jorge Ramió Aguirre Madrid (España) 2002
Raíz primitiva o generador g de grupo p
• Un generador o raíz primitiva de un número primo
p n es aquél que, elevado a todos los restos del
cuerpo y reducido módulo n, genera todo el grupo.
G es un generador si: " 1 £ a £ p-1
ga mod p = b (con 1 £ b £ p-1, todos los b ¹)
Sea p = 3 Þ CCR = {1,2} (el cero no es solución)
Resto 1: no generará nada porque 1k mod p = 1
Resto 2: 21 mod 3 = 2; 22 mod 3 = 1
Luego el 2 es un generador del cuerpo n = 3
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 47
© Jorge Ramió Aguirre Madrid (España) 2002
¿Cuántas raíces hay en un grupo?
• Existen muchos números dentro del CRR que son
generadores del cuerpo ... pero
• Su búsqueda no es fácil ... ¿alguna solución?
• Conociendo la factorización de p-1 (q1, q2, ..., qn)
con qi los factores primos de p-1, diremos que un
número g será generador en p si " qi: Ejemplo

g(p-1)/qi mod p ¹ 1 En cambio...


si algún resultado es igual a 1, g no será generador
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 48
© Jorge Ramió Aguirre Madrid (España) 2002
Búsqueda de raíces primitivas (1)
BÚSQUEDA DE RAÍCES EN EL CUERPO Z13*

Generadores en Z13
Como p = 13 Þ p-1 = 12 = 22*3
Luego: q1 = 2 q2 = 3
Si se cumple g(p-1)/qi mod p ¹ 1 " qi g: 2,
entonces g será un generador de p

2(13-1)/2 mod 13 = 26 mod 13 = 12 Resto 2


2(13-1)/3 mod 13 = 24 mod 13 = 3 El resto 2 es generador
3(13-1)/2 mod 13 = 36 mod 13 = 1 Resto 3
3(13-1)/3 mod 13 = 34 mod 13 = 3 El resto 3 no es generador
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 49
© Jorge Ramió Aguirre Madrid (España) 2002
Búsqueda de raíces primitivas (2)
Generadores en Z13 g: 2, 6, 7,

4(13-1)/2 mod 13 = 46 mod 13 = 1 Resto 4


4(13-1)/3 mod 13 = 44 mod 13 = 9 El resto 4 no es generador
5(13-1)/2 mod 13 = 56 mod 13 = 12 Resto 5
5(13-1)/3 mod 13 = 54 mod 13 = 1 El resto 5 no es generador
6(13-1)/2 mod 13 = 66 mod 13 = 12 Resto 6
6(13-1)/3 mod 13 = 64 mod 13 = 9 El resto 6 es generador
7(13-1)/2 mod 13 = 76 mod 13 = 12 Resto 7
7(13-1)/3 mod 13 = 74 mod 13 = 9 El resto 7 es generador
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 50
© Jorge Ramió Aguirre Madrid (España) 2002
Búsqueda de raíces primitivas (3)
Generadores en Z13 g: 2, 6, 7, 11

8(13-1)/2 mod 13 = 86 mod 13 = 12 Resto 8


8(13-1)/3 mod 13 = 84 mod 13 = 1 El resto 8 no es generador
9(13-1)/2 mod 13 = 96 mod 13 = 1 Resto 9
9(13-1)/3 mod 13 = 94 mod 13 = 9 El resto 9 no es generador
10(13-1)/2 mod 13 = 106 mod 13 = 1 Resto 10
10(13-1)/3 mod 13 = 104 mod 13 = 3 El resto 10 no es generador
11(13-1)/2 mod 13 = 116 mod 13 = 12 Resto 11
11(13-1)/3 mod 13 = 114 mod 13 = 3 El resto 11 es generador
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 51
© Jorge Ramió Aguirre Madrid (España) 2002
Búsqueda de raíces primitivas (4)
Generadores en Z13 g: 2, 6, 7, 11

12(13-1)/2 mod 13 = 126 mod 13 = 1 Resto 12


12(13-1)/3 mod 13 = 124 mod 13 = 1 El resto 12 no es generador

La tasa de generadores en el grupo p


será aproximadamente t = f(p-1)/(p-1).
Por lo tanto por lo general el 30% de los
t = f (12)/12
elementos del Conjunto Reducido de
Restos de p será un generador en p. t = 4/12 = 1/3

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 52


© Jorge Ramió Aguirre Madrid (España) 2002
Generadores en cuerpos de primos seguros
Un número primo p se dice que es un primo seguro o primo
fuerte si: p = 2*p’ + 1 (con p’ también primo).
Por ejemplo:
Si p’ = 11, entonces p = 2*11 + 1 = 23 es un primo seguro.
En este caso la tasa de números generadores del cuerpo será
mayor que en el caso anterior (con p = 13 era del 30%).
Probabilidad: tpseguro = f(p-1)/p-1 » ½

Casi la mitad de los números del


Comprobación
grupo serán generadores en p.

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 53


© Jorge Ramió Aguirre Madrid (España) 2002
Comprobación de generadores en p = 2p’+1

p’ = 11; 2p’ = 22; p = 2p’ + 1 = 23 primo seguro


Como 2p’ = p - 1 existirán:
f(p’) = [p’- 1] elementos de orden (p’) en el CRR
f(11) = 10 = {1,2,3,4,5,6,7,8,9,10}
f(2p’) = [p’- 1] elementos de orden (p-1) en el CRR
f(22) = 10 = {1,3,5,7,9,13,15,17,19,21}
t = (p’- 1)/(p-1) = (p’- 1)/2p’ » ½

Sigue

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 54


© Jorge Ramió Aguirre Madrid (España) 2002
Comprobación de generadores en p = 2p’+1

Usando la ecuación g(p-1)/qi mod p


En este caso con q1 = 2 y q2 = 11
g(23-1)/2 mod 23 = g11 mod 23
g(23-1)/11 mod 23 = g2 mod 23
Encontramos los siguientes 10 generadores en p = 23
{5, 7, 10, 11, 14, 15, 17, 19, 20, 21}
Prácticamente la mitad de los valores de CRR que en
este caso es igual a 23 – 1 = 22. Compruébelo Ud.
mismo/a con el software de la asignatura.
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 55
© Jorge Ramió Aguirre Madrid (España) 2002
Utilidad de la raíz primitiva en criptografía
¿Para qué sirve conocer la raíz primitiva de p?
• La utilidad de este concepto en
criptografía lo veremos cuando ?
se estudien los sistemas de clave
pública y, en particular, el
protocolo de intercambio de
claves de Diffie y Hellman.
• También se recurrirá a esta
propiedad de los primos cuando
estudiemos la firma digital
según estándar DSS (ElGamal).
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 56
© Jorge Ramió Aguirre Madrid (España) 2002
Cálculos en campos de Galois (GF)
• Cuando trabajamos en un cuerpo primo p, sabemos que se
asegura la existencia de un único inverso multiplicativo.
En este caso se dice que estamos trabajando en Campos
de Galois GF(p).
• Algunos usos en criptografía:
– Sistemas de clave pública cuando la operación de
cifra es C = Me mod p (cifrador ElGamal)
– Aplicaciones en GF(qn), polinomios módulo q y de
grado n: a(x) = an-1*xn-1 + an-2*xn-2 + ... + a1*x + a0
(Cifrador de flujo A5 y cifrador RIJNDAEL)

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 57


© Jorge Ramió Aguirre Madrid (España) 2002
Campos de Galois del tipo GF(qn)
a(x) = an-1*xn-1 + an-2*xn-2 + ... + a1*x + a0
• Es un polinomio de grado n-1 o menor.
• Los elementos ai son parte del CCR del módulo q.
• Cada elemento a(x) es un resto módulo p(x), siendo
p(x) un polinomio irreducible de grado n (que no puede
ser factorizado en polinomios de grado menor que n).
• GF(2n) es interesante porque CCR(2) = {0, 1} Þ bits.
• GF(23) Þ 8 elementos o restos polinómicos que son:
0, 1, x, x+1, x2, x2+1, x2+x, x2+x+1, los 8 restos de un
polinomio de grado n-1 (n = 3).
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 58
© Jorge Ramió Aguirre Madrid (España) 2002
Suma en campos de Galois GF(2n) Å

Si el módulo de trabajo es 2 (con restos = bits 0 y 1), las


operaciones suma y resta serán un OR Exclusivo:
0 Å 1 mod 2 = 1 1 Å 0 mod 2 = 1
CG(22)
0 Å 0 mod 2 = 0 1 Å 1 mod 2 = 0
Å 0 1 x x+1 Como los resultados deberán
0 0 1 x x+1 pertenecer al cuerpo, aplicaremos
1 1 0 x+1 x Reducción por Coeficientes:
x x x+1 0 1
x+1 x+1 x 1 0 Þ x + (x +1) = 2x + 1 mod 2 = 1
Restos: 0, 1, x, x+1 Þ 1 + 1 = 2 mod 2 = 0
Curso de Seguridad Informática. Tema 5: Teoría de los Números. 59
© Jorge Ramió Aguirre Madrid (España) 2002
Producto en campos de Galois GF(2n) Ä

La operación multiplicación puede entregar elementos


que no pertenezcan al cuerpo, potencias iguales o
mayores que n Þ Reducción por Exponente.
CG(22) Sea el polinomio irreducible de
grado n = 2, p(x) = x2 + x + 1
Ä 0 1 x x+1
Luego: x2 = x + 1
0 0 0 0 0
1 0 1 x x+1 (x + 1)*(x + 1) = x2 + 2x + 1
x 0 x x+1 1
x+1 0 x+1 1 x = (x + 1) + 2x +1

Restos: 0, 1, x, x+1 = 3x + 2 mod 2 = x

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 60


© Jorge Ramió Aguirre Madrid (España) 2002
Operaciones con campos de Galois en AES
ü La suma y multiplicación de polinomios dentro de un
cuerpo binario descritas en las dispositivas anteriores,
conforman las operaciones básicas del algoritmo de
cifra Advanced Encryption Algorithm AES, que con
el nombre RIJNDAEL es el estándar mundial desde
finales de 2001, desplazando al ya viejo DES.
ü En este caso, se trabaja con 8 bits por lo que las
operaciones se realizan en GF(28). En el capítulo 10
sobre sistemas de cifra con clave secreta encontrará
ejemplos de suma y multiplicación polinómica dentro
de este cuerpo binario.
Fin del Tema 5

Curso de Seguridad Informática. Tema 5: Teoría de los Números. 61


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 6
Teoría de la Complejidad

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 29 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Nota del autor
El contenido de este tema
corresponde sólo a una breve
introducción a la complejidad
de los algoritmos, con el objeto
de que el lector pueda hacerse
una idea de la importancia de
este factor en el análisis y diseño de los algoritmos
de cifra y firma digital que se verán en este curso.
La fortaleza de éstos y de los protocolos que los
incluyen dependerá precisamente de la complejidad
asociada al criptoanálisis o ataque de los mismos.
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 2
© Jorge Ramió Aguirre Madrid (España) 2002
Introducción a la teoría de la complejidad

La teoría de la complejidad de los algoritmos nos


permitirá conocer si un algoritmo tiene fortaleza y tener
así una idea de su vulnerabilidad computacional.
Complejidad Computacional
Los algoritmos se clasifican según el tiempo de
ejecución y en función del tamaño de la entrada.
· Complejidad Polinomial J
· Complejidad Exponencial L
Esto dará lugar a tipos de “problemas” que nos interesarán.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 3


© Jorge Ramió Aguirre Madrid (España) 2002
Número de operaciones bit (1)

OPERACIONES BIT

• SUMA: Si deseamos sumar dos números binarios n


y m, ambos de k bits (el método es conocido por
todos) deberemos realizar k operaciones bit puesto
que cada operación básica con los dígitos de una
columna es una operación bit.
• MULTIPLICACIÓN: Para la multiplicación de un
número n de k bits por un número m de h bits, el
número de operaciones bit será igual a 2*k*h.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 4


© Jorge Ramió Aguirre Madrid (España) 2002
Número de operaciones bit (2)

Las operaciones dependerán del tamaño de la entrada por lo


que esta complejidad se expresará en términos del tiempo T
necesario para el cálculo del algoritmo y del espacio S que
utiliza en memoria, y se expresará mediante una función
f (n), donde n es el tamaño de la entrada.
Esta función será una aproximación pues el resultado exacto
dependerá de la velocidad del procesador.
f (n) = O(g(n)) Ejemplo
f = O(n) ssi $ co,no / f(n) £ co*g(n)

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 5


© Jorge Ramió Aguirre Madrid (España) 2002
La función O(n)
Si f (n) = 4n2 + 2n + 5 ¿ f = O(n2)?
¿se cumple que co*g(n) = co*n2 ³ f (n)? Sea co = 6
co no cono2 f (n) = 4n2 + 2n + 5 ¿co*n2 ³ f (n)?
6 1 6 11 No
6 2 24 25 No
Se cumple
6 3 54 38 Sí siempre

6 4 96 77 Sí
Luego, la complejidad de f (n) es exponencial.
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Tiempos de ejecución (1)

En la expresión O(n) aparecerá el término que


domina al crecer el valor de n.

• El tiempo de ejecución de un algoritmo T1


que realiza 2n+1 operaciones es de tipo O(n);
uno T2 que realiza 3n2+n+3 operaciones será
de tipo O(n2), etc.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 7


© Jorge Ramió Aguirre Madrid (España) 2002
Tiempos de ejecución (2)

• Para realizar la suma de la diapositiva anterior


necesitaremos O(n) = O(log n) operaciones bit
y para el caso de la multiplicación, éstas serán
O(n*m) = O(log n * log m) operaciones bit.

+ Operación binaria: n+m (de k bits cada uno)

* Operación binaria: n*m (de k y h bits respectivamente)

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 8


© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmos de complejidad lineal
• Un algoritmo se dice que tiene tiempo de ejecución
polinomial si éste depende polinómicamente del
tamaño de la entrada.
• Si la entrada es de tamaño n y t es un entero, el
número de operaciones bit será O(logt n). Ejemplos
Si t = 1, el sistema es lineal Suma

Si t = 2, el sistema es cuadrático Producto

Si t = 3, el sistema es cúbico mcd Euclides

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 9


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de complejidad lineal

Ejemplo: El tiempo de ejecución de un algoritmo es


O(log3 n). Si doblamos la entrada, ¿en cuánto aumenta
este tiempo?
Solución: En el primer caso el tiempo es O(log3 n) y en
el segundo O(log3 2n). Luego para este sistema lineal
el tiempo se incrementará en log3 2 operaciones bit.

Estos son los denominados problemas fáciles y son


los que involucrarán un proceso de cifra y descifrado
(o firma) por parte del o de los usuarios autorizados.
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 10
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmos de complejidad exponencial

• Un algoritmo se dice que tiene tiempo de ejecución


exponencial si éste depende exponencialmente del
tamaño de la entrada.
• Si la entrada es de tamaño n y t es un entero, el
número de operaciones bit será O(nt).
Ejemplo
Para t = 2, será exponencial de orden 2 n!

Para t = 3, será exponencial de orden 3

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 11


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de complejidad exponencial

Ejemplo: El tiempo de ejecución de un algoritmo es


O(n3). Si doblamos la entrada, ¿en cuánto aumenta
este tiempo?
Solución: En el primer caso el tiempo es O(n3) y en el
segundo O(2n3) = O(8n3). Para este sistema exponencial
el tiempo se incrementará en 8 operaciones bit.

Estos son los denominados problemas difíciles y son a


los que deberá enfrentarse un criptoanalista o atacante
que desea romper una cifra o la clave de un usuario.
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 12
© Jorge Ramió Aguirre Madrid (España) 2002
Comparativas de complejidad (1)
• Los algoritmos polinómicos y exponenciales se
comparan por su complejidad O(nt).
– Polinómico constante Þ O(1)
– Polinómico lineal Þ O(n)
– Polinómico cuadrático Þ O(n2)
– Polinómico cúbico Þ O(n3) ... etc.
– Exponencial Þ O(dh(n))
donde d es una constante y h(n) un polinomio
Si suponemos un ordenador capaz de realizar
109 instrucciones por segundo se tiene el cuadro:
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 13
© Jorge Ramió Aguirre Madrid (España) 2002
Tabla comparativa de tiempos

Entrada O(n) O(n2) O(n3) O(2n)

n = 10 10-8 seg 10-7 seg 10-6 seg 10-6 seg


n = 102 10-7 seg 10-5 seg 10-3 seg 4*1013 años
n = 103 10-6 seg 10-3 seg 1 seg Muy grande

Incrementos de un Computacionalmente
orden de magnitud imposible
Entrada/109: Para n = 100 Þ O(n2) = 1002/109 = 10-5 seg
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 14
© Jorge Ramió Aguirre Madrid (España) 2002
Problemas de tipo NP
En criptografía nos interesan las funciones f(x) de un solo
sentido, es decir:
¤ Fácil calcular f(x) pero muy difícil calcular f-1(x)
salvo que conozcamos un secreto o trampa
Porque dan lugar a problemas tipo NP, polinomiales no
deterministas, computacionalmente difíciles de tratar.
Ø Problema de la mochila
Veremos
Ø Problema de la factorización cada
Ø Problema del logaritmo discreto uno de ellos
Ø Otros ...
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 15
© Jorge Ramió Aguirre Madrid (España) 2002
El problema de la mochila
• Es un problema de tipo NP en el
que el algoritmo debe realizar en
cada paso una selección iterativa
entre diferentes opciones.
Enunciado:
Dada una mochila de determinadas dimensiones de alto,
ancho y fondo, y un conjunto de elementos de distintos
tamaños menores que ella y de cualquier dimensión, ...
¿es posible llenar la mochila (completa) con distintos
elementos de ese conjunto sin repetir ninguno de ellos?

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 16


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo del problema de la mochila
S = a1 + a2 + a3 A = {a1, a2, a3}
Sea una mochila
¿Se incluye a1 en la suma S?
a1 Los resultados son todos con 4 elementos
Sí No distintos: una casualidad {2, 4, 9, 10}
¿Se incluye a2 en la suma?
J ¿Cuántas sumas
a2 a2
Sí No Sí No posibles hay?
¿Se incluye a3? Solución: 24 = 16
a3 a3 a3 a3 Æ, 2, 4, 6,
Sí No Sí No Sí No Sí No 9, 10, 11, 12,
13, 14, 15, 16,
S1 S2 S3 S4 S5 S6 S7 S8
19, 21, 23, 25.
S1 = a1+a2+a3 S2 = a1+a2 S3 = a1+a3 S4 = a1 Repita con
S5 = a2+a3 S6 = a2 S7 = a3 S8 = Æ {2, 4, 9, 15}

Hemos tenido que evaluar 23 = 8 valores Þ (carácter exponencial)


Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 17
© Jorge Ramió Aguirre Madrid (España) 2002
Interés de las mochilas en criptografía
¿Por qué tiene interés este problema en criptografía?
a) Es de tipo NP completo: su resolución por lo general
implica una complejidad exponencial. Luego, será
difícil de atacar o criptoanalizar.
b) Existe un caso en el que la resolución es lineal y, si la
solución existe, es única. Se da si A = {a1, a2, a3, .., an}
está ordenado de menor a mayor y en donde cada ai es
mayor que la suma de los aj que le preceden.
Esto dará lugar a los criptosistemas de mochila
tramposa que veremos en un próximo capítulo.
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 18
© Jorge Ramió Aguirre Madrid (España) 2002
El problema de la factorización

Dado un número n que es el resultado del producto de


dos primos n = p*q, se pide encontrar estos factores.
• Cuando el valor n es muy grande, el Problema de la
Factorización de Números Grandes PFNG se vuelve
computacionalmente intratable.
• No obstante, el caso inverso, dado dos números p y q,
encontrar el resultado p*q = n, se trata de un problema
de tipo polinomial.
• Este problema se usará en la generación del par de
claves del sistema de cifra con clave pública RSA.
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 19
© Jorge Ramió Aguirre Madrid (España) 2002
Tabla de primos del 1 al 1000
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199

211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293

307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397

401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499

503 509 521 523 541 547 557 563 569 571 577 587 593 599

601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691

701 709 711 727 733 739 743 751 757 761 769 773 787 797

809 811 821 823 827 829 839 853 857 859 863 877 881 883 887

907 911 919 929 937 941 947 953 967 971 977 983 991 997

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 20


© Jorge Ramió Aguirre Madrid (España) 2002
Tabla de primos del 1001 al 2000
1009 1013 1019 1021 1031 1033 1039 1049 1051 1061 1063 1069 1087 1091 1093 1097

1103 1109 1117 1123 1129 1151 1153 1163 1171 1181 1187 1193

1201 1213 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283 1289 1291 1297

1301 1303 1307 1319 1321 1327 1361 1367 1373 1381 1399

1409 1423 1427 1429 1433 1439 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493 1499

1511 1523 1531 1543 1549 1553 1559 1567 1571 1579 1583 1597

1601 1607 1609 1613 1619 1621 1627 1637 1657 1663 1667 1669 1693 1667 1699

1709 1721 1723 1733 1741 1747 1753 1759 1777 1783 1787 1789

1801 1811 1823 1831 1847 1861 1867 1871 1873 1877 1879 1889

1901 1907 1913 1931 1933 1949 1951 1973 1979 1987 1993 1997 1999

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 21


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo problema factorización (1)
Ü Cálculo fácil o polinomial (función directa)
Calcule “a mano” los siguientes productos de dos primos y
tome el tiempo aproximado que tarda en la operación:
a) 13*31 b) 113*131 c) 1.013*1.031 calcule...
No vale usar ¿A qué conclusiones
calculadora... puede llegar ahora?
Ü Cálculo difícil o no polinomial (función inversa)
Usando la criba de Eratóstenes, factorice en dos primos los
siguientes números y vuelva a tomar el tiempo empleado:
a) 629 b) 17.399 c) 1.052.627 calcule...
En el caso a) son primos de 2 dígitos, en c) de 3 y en d) de 4.
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 22
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo problema factorización (2)
Ü Cálculo fácil o polinomial
a) 13*31 b) 113*131 c) 1013*1031
A medida que aumenta el tamaño de la entrada, el tiempo de
cálculo aumenta proporcionalmente.
Un computador
Ü Cálculo difícil o no polinomial experimentará lo
mismo....
a) 629 b) 17.399 c) 1.052.627
Aquí resulta evidente que el tiempo de cálculo (da igual que
el algoritmo sea éste u otro más depurado y eficaz) aumenta
mucho al incrementar en un dígito los números en cuestión.
Solución: a), b) y c) son el producto de los números primos
inmediatamente superiores a los de arriba (véase la tabla).
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 23
© Jorge Ramió Aguirre Madrid (España) 2002
El problema del logaritmo discreto

Dado un par de enteros a y b que pertenecen al Campo


de Galois GF(p), se pide encontrar un entero x de forma
que x = loga b mod p.
• Si el valor p es muy grande, el Problema del Logaritmo
Discreto PLD es computacionalmente intratable.
• No obstante, el caso inverso, dado dos números a y x,
encontrar b = ax mod p es un problema polinomial.
• Este problema se usará en la creación de las claves del
sistema de cifra con clave pública ElGamal.

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 24


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo problema logaritmo discreto (1)
Ü Cálculo fácil o polinomial (función directa)
Calcule “a mano” las siguientes exponenciaciones mod p y
tome el tiempo aproximado que tarda en la operación:
a) 54 mod 7 b) 817 mod 41 c) 9211 mod 251
54 = 625
817 = 2.251.799.813.685.248
9211 = 3.996.373.778.857.415.671.808
Nota: Haciendo uso de la propiedad de reducibilidad del capítulo 5,
podrá reducir significativamente el tiempo de cálculo. No obstante,
este tiempo será de tipo polinomial según el tamaño de la entrada.
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 25
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo problema logaritmo discreto (2)
Ü Cálculo difícil o no polinomial (función inversa)
Aunque existen varios algoritmos para este tipo de cálculos
(al igual que para la factorización) use la fuerza bruta que se
explica a continuación para encontrar los siguientes valores y
vuelva a tomar el tiempo empleado:
a) log5 2 mod 7 b) log8 39 mod 41 c) log92 217 mod 251
Aplicando fuerza bruta en el 1er caso (la base elevada a todos
los restos de p) al final se obtiene que log5 2 mod 7 = 4.
51 mod 7 = 5 52 mod 7 = 4 53 mod 7 = 6 En media deberá
recorrer la mitad
54 mod 7 = 2 55 mod 7 = 3 56 mod 7 = 1 del espacio... L

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 26


© Jorge Ramió Aguirre Madrid (España) 2002
Logaritmos discretos en p = 13 (1)
log2 1 mod 13 = 0 log2 2 mod 13 = 1 log2 3 mod 13 = 4
log2 4 mod 13 = 2 log2 5 mod 13 = 9 log2 6 mod 13 = 5
log2 7 mod 13 = 11 log2 8 mod 13 = 3 log2 9 mod 13 = 8
log2 10 mod 13 = 10 log2 11 mod 13 = 7 log2 12 mod 13 = 6

20 mod 13 = 1 21 mod 13 = 2 22 mod 13 = 4


23 mod 13 = 8 24 mod 13 = 3 25 mod 13 = 6
26 mod 13 = 12 27 mod 13 = 11 28 mod 13 = 9
Es 29 mod 13 = 5 210 mod 13 = 10 211 mod 13 = 7
decir Luego, 2 es un generador g en el cuerpo p = 13.
Además se cumple que ap-1 mod p = a0 mod p = 1.
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 27
© Jorge Ramió Aguirre Madrid (España) 2002
Logaritmos discretos en p = 13 (2)
En p=13, el 2 30 mod 13 = 1 31 mod 13 = 3 32 mod 13 = 9
es generador,
pero no así el 33 mod 13 = 1 34 mod 13 = 3 35 mod 13 = 9
número 3... 36 mod 13 = 1 37 mod 13 = 3 38 mod 13 = 9
Luego 39 mod 13 = 1 310 mod 13 = 3 311 mod 13 = 9

log3 1 mod 13 = 0 log3 2 mod 13 = NE log3 3 mod 13 = 1


log3 4 mod 13 = NE log3 5 mod 13 = NE log3 6 mod 13 = NE
log3 7 mod 13 = NE log3 8 mod 13 = NE log3 9 mod 13 = 2
log3 10 mod 13 = NE log3 11 mod 13 = NE log3 12 mod 13 = NE
NE = no existe
Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 28
© Jorge Ramió Aguirre Madrid (España) 2002
¿Hay más funciones NP?

Existen otros problemas matemáticos que dan lugar a


problemas del tipo NP basados en estas funciones
unidireccionales (one way functions) pero las dos
últimas funciones vistas –factorización de números
grandes y logaritmo discreto- son las que más uso
tienen, de momento, en la criptografía.

Algunos de ellos se presentarán en el Tema dedicado


a los Protocolos Criptográficos.
Fin del Tema 6

Curso de Seguridad Informática. Tema 6: Teoría de la Complejidad. 29


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 7
Criptosistemas Clásicos

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 15 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Nota del autor
El contenido de este tema
corresponde sólo a unos
primeros apuntes en
diapositivas. Si lo desea,
puede encontrar una
explicación más detallada
sobre la historia de la criptografía y de los sistemas
de cifra clásicos en el libro guía de la asignatura o
bien usando el software de libre distribución “Libro
Electrónico de Criptografía Clásica” que se comenta
al final de este archivo.
Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 2
© Jorge Ramió Aguirre Madrid (España) 2002
Clasificación histórica de criptosistemas

Los criptosistemas pueden clasificarse según:


a) Su relación con la Historia en:
- Sistemas Clásicos y Sistemas Modernos
No es ésta la mejor clasificación desde el punto de vista
de la ingeniería y la informática ...
No obstante, permitirá comprobar el desarrollo de estas
técnicas de cifra hoy en día rudimentarias y en algunos
casos simples, desde una perspectiva histórica que es
interesante como cultura general para todo ingeniero.

Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 3


© Jorge Ramió Aguirre Madrid (España) 2002
Clasificación actual de los criptosistemas
o bien según:
b) El tratamiento de la información a cifrar en:
- Cifra en Bloque y Cifra en Flujo
c) El tipo de clave utilizada en la cifra en:
- Clave Secreta y Clave Pública
Cifra en flujo Se verá en el Tema 9
Cifra en bloque Se verá en el Tema 10
Cifra con clave secreta Se verá en el Tema 10
Cifra con clave pública Se verá en los Temas 11 y 12
Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 4
© Jorge Ramió Aguirre Madrid (España) 2002
Primera aproximación histórica
• La criptografía es casi tan antigua como las
primeras civilizaciones de nuestro planeta.
• Ya en el siglo V antes de J.C. se usaban técnicas
de cifra para proteger a la información.
• Se pretendía garantizar sólo la confidencialidad y
la autenticidad de los mensajes.
• Los mayores avances se lograron en la Segunda
Guerra Mundial: los países en conflicto tenían un
gran número de técnicos encargados de romper
los mensajes cifrados de los teletipos.
Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 5
© Jorge Ramió Aguirre Madrid (España) 2002
Herramientas de la criptografía clásica
• Tanto máquinas, artilugios de cifra, como los
algoritmos que trabajaban matemáticamente
dentro de un cuerpo finito n, hacen uso de dos
técnicas básicas orientadas a caracteres y que,
muchos siglos después, propone Shannon:
· Sustitución: un carácter o letra se modifica o
sustituye por otro elemento en la cifra.
· Transposición: los caracteres o letras del mensaje
se redistribuyen sin modificarlos y según unas
reglas, dentro del criptograma.

Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 6


© Jorge Ramió Aguirre Madrid (España) 2002
Clasificación de los criptosistemas clásicos
TRANSPOSICIÓN SUSTITUCIÓN y algunos
ejemplos
GRUPOS MONOALFABÉTICA POLIALFABÉTICA

ESCÍTALA

MONOGRÁMICA POLIGRÁMICA NO PERIÓDICA PERIÓDICA


SERIES

COLUMNAS VERNAM

FILAS N-GRÁMICA
DIGRÁMICA
LINEALES PROGRESIVOS
ALFABETO
ESTÁNDAR PLAYFAIR HILL
ENIGMA
ALFABETO ALFABETO ALFABETO
CÉSAR MIXTO ESTÁNDAR MIXTO

AFÍN
OTROS VIGENÈRE OTROS

Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 7


© Jorge Ramió Aguirre Madrid (España) 2002
Hitos históricos de la criptografía
• La criptografía clásica abarca desde tiempos
inmemoriales hasta la mitad del siglo XX.
• El punto de inflexión en esta clasificación la
marcan tres hechos relevantes:
– En el año 1948 se publica el estudio de Claude
Shannon sobre la Teoría de la Información.
C D – En 1974 aparece el estándar de cifra DES.
I I
F G – En el año 1976 se publica el estudio realizado por W.
R I Diffie y M. Hellman sobre la aplicación de funciones
A T matemáticas de un solo sentido a un modelo de cifra,
D A
O L
denominado cifrado con clave pública.
Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 8
© Jorge Ramió Aguirre Madrid (España) 2002
El cifrador de la escítala
• La escítala era usada en el siglo V a.d .C. por el
pueblo griego lacedemonios. Consistía en un
bastón en el que se enrollaba una cinta y luego se
escribía en ella el mensaje de forma longitudinal.
• Al desenrollar la cinta, las letras aparecían sin
orden alguno.
• La única posibilidad de deshacer esta cifra pasaba
por enrollar dicha cinta en un bastón con el mismo
diámetro que el usado en el extremo emisor y leer
el mensaje de forma longitudinal.
Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 9
© Jorge Ramió Aguirre Madrid (España) 2002
Método de cifra de la escítala

A S I C I F R A B Se trata de un
A N C O N L A E S sistema de cifra
C I T A L A por transposición

De aquí proviene el
famoso bastón de
mando que vemos
El texto en claro es: en las Alcaldías
M = ASI CIFRABAN CON LA ESCITALA
El texto cifrado o criptograma será:
C = AAC SNI ICT COA INL FLA RA AE BS
Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 10
© Jorge Ramió Aguirre Madrid (España) 2002
El cifrador de Polybios
Es el cifrador por sustitución de caracteres más antiguo
que se conoce (siglo II a.d.C.) pero duplica el tamaño.
A B C D E 1 2 3 4 5

A A B C D E 1 A B C D E
B F G H IJ K 2 F G H IJ K
C L M N O P 3 L M N O P
D Q R S T U 4 Q R S T U
E V W X Y Z 5 V W X Y Z

M1 = QUÉ BUENA IDEA M2 = LA DEL GRIEGO


C1 = DA DE AE AB DE AE C2 = 31 11 14 15 31 22
CC AA BD AD AE EA 42 24 15 22 34

Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 11


© Jorge Ramió Aguirre Madrid (España) 2002
El cifrador del César
En el siglo I a.d.C., Julio César presenta este cifrador
cuyo algoritmo consiste en el desplazamiento de tres
espacios hacia la derecha de los caracteres del texto
en claro. Es un cifrador por sustitución en el que las
operaciones se realizan módulo n, siendo n igual al
número de elementos del alfabeto (latín).

Mi ABCDEFGHIJKLMNÑOPQRSTUVW XYZ
Ci DEFGHIJKLMNÑOPQRSTUVWXYZABC

Alfabeto de cifrado del César para castellano mod 27


Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 12
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de cifra con cifrador del César

Mi A B C D E F G H IJ K L M N Ñ O P Q R S T U V W X Y Z
Ci D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C

M = EL PATIO DE MI CASA ES PARTICULAR

C = HÑ SDWLR GH OL FDVD HV SDUWLFXÑDU

Cada letra se cifrará siempre igual. Es una gran debilidad y


hace que este sistema sea muy vulnerable y fácil de atacar
simplemente usando las estadísticas del lenguaje.
Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 13
© Jorge Ramió Aguirre Madrid (España) 2002
En construcción ...

ESTIMADO/A LECTOR/A:

AL IGUAL QUE EN CIERTAS PÁGINAS WEB,


ESTE CAPÍTULO ESTARÁ EN CONSTRUCCIÓN
DURANTE ALGÚN TIEMPO... L ... mis disculpas!

NO OBSTANTE, SE SEGUIRÁN PUBLICANDO LOS TEMAS


SIGUIENTES DEL CURSO EN DIAPOSITIVAS SOBRE TÉCNICAS
DE CIFRA MODERNAS, DE MAYOR INTERÉS ACADÉMICO J
DE ACUERDO CON EL AVANCE DE LA ASIGNATURA DE
SEGURIDAD INFORMÁTICA.

Si está muy interesado en el tema...


Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 14
© Jorge Ramió Aguirre Madrid (España) 2002
El libro electrónico de criptografía clásica
Si está interesado en estos temas de criptografía clásica e
historia de las máquinas de cifrar, puede descargar el Libro
Electrónico de Criptografía Clásica hecho en ToolBook desde el
servidor de la Red Temática Iberoamericana de Criptografía y
Seguridad de la Información, CriptoRed.

http://www.criptored.upm.es/paginas/software.htm#propio

El archivo de instalación tiene un tamaño de 5.17 MB.

Su uso es verdaderamente sencillo. Podrá además comprobar y


practicar con estos algoritmos de cifra clásica puesto que el
libro incluye un software específico para ello.
Fin del Tema 7

Curso de Seguridad Informática. Tema 7: Criptosistemas Clásicos. 15


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 8
Introducción a los Criptosistemas
Modernos

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 31 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Conceptos elementales

Un par de ideas básicas


• Los criptosistemas modernos, cuya cifra en bits está
orientada a todos los caracteres ASCII o ANSI usan por
lo general una operación algebraica en Zn, un cuerpo
finito, sin que necesariamente este módulo deba
corresponder con el número de elementos del alfabeto o
código utilizado. Es más, nunca coinciden; siempre será
mucho mayor el cuerpo de trabajo que el alfabeto.
• Su fortaleza está en la imposibilidad computacional de
descubrir una clave secreta única, en tanto que el
algoritmo de cifra es (o debería ser) público.
Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 2
© Jorge Ramió Aguirre Madrid (España) 2002
Clasificación de los criptosistemas
y algunos
MÉTODOS DE CIFRA MODERNA
ejemplos...

CIFRADO EN FLUJO CIFRADO EN BLOQUE

LFSRs A5
Telefonía móvil; CLAVE PÚBLICA CLAVE SECRETA
tiempo real

EXPONENCIACIÓN SUMA/PRODUCTO DES; T-DES; CAST;


RSA; ELGAMAL CE; Mochilas MH ... IDEA; RIJNDAEL ...
Intercambio de claves Protección de Cifrado propiamente
y firma digital SW vía HW de la información

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 3


© Jorge Ramió Aguirre Madrid (España) 2002
Introducción al cifrado de flujo
Usa el concepto de cifra propuesto por Vernam,
que cumple con las ideas de Shannon sobre
sistemas de cifra secreto perfecto, esto es:
a) El espacio de las claves es igual o mayor que el
espacio de los mensajes.
b) Las claves deben ser equiprobables.
c) La secuencia de clave se usa una sola vez y luego
se destruye (sistema one-time pad).
DUDA: ¿Es posible satisfacer la condición a)?
Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 4
© Jorge Ramió Aguirre Madrid (España) 2002
Espacio de claves y del mensaje
¿Espacio de Claves ³ Espacio de Mensajes?
1) La secuencia de bits de la clave deberá enviarse al
destinatario a través de un canal que sabemos es
inseguro (aún no conocemos el protocolo de
intercambio de clave de Diffie y Hellman).
2) Si la secuencia es “infinita”, desbordaríamos la
capacidad del canal de comunicaciones.

¿Qué solución damos


a este problema?

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 5


© Jorge Ramió Aguirre Madrid (España) 2002
El concepto de semilla
Si por el canal supuestamente seguro enviamos esa clave
tan larga ... ¿por qué entonces no enviamos directamente
el mensaje en claro y nos dejamos de historias? J
La solución está en generar una secuencia de tipo
pseudoaleatoria con un algoritmo determinístico a
partir de una semilla de sólo unas centenas de bits.
Podremos generar así secuencias con períodos del
orden de 2n, un valor ciertamente muy alto. Esta
semilla es la que se envía al receptor mediante un
sistema de cifra de clave pública y un algoritmo de
intercambio de clave y no sobrecargamos el canal.
Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Técnica de cifra en flujo
ü El mensaje en claro se leerá bit a bit.
ü Se realizará una operación de cifra, normalmente
la función XOR, con una secuencia cifrante de
bits Si que debe cumplir ciertas condiciones:
– Un período muy alto. Lo veremos en
el capítulo 9...
– Aleatoriedad en sus propiedades.
C C
Mensaje M XOR XOR Mensaje M
Bits del Criptograma

Secuencia cifrante Si Secuencia cifrante Si

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 7


© Jorge Ramió Aguirre Madrid (España) 2002
Introducción a la cifra en bloque

El mensaje se agrupa en bloques, normalmente de 8


bytes, antes de aplicar el algoritmo de cifra a cada
bloque de forma independiente con la misma clave.

Cifrado con Clave Secreta


Hay algunos algoritmos muy conocidos por su uso
en aplicaciones bancarias (DES), correo electrónico
(IDEA, CAST) y en comercio electrónico (T-DES).
No obstante, tienen tres puntos débiles.

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 8


© Jorge Ramió Aguirre Madrid (España) 2002
Debilidades de la cifra con clave secreta
a) Mala gestión de claves. Crece el número de claves
secretas en un orden igual a n2 para un valor n
grande de usuarios D.
b) Mala distribución de claves. No existe posibilidad
de enviar, de forma segura, una clave a través de
un medio inseguro D.
c) No tiene firma digital. Aunque sí será posible
autenticar el mensaje mediante una marca, no es
posible firmar digitalmente el mensaje D.

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 9


© Jorge Ramió Aguirre Madrid (España) 2002
¿Por qué usamos clave secreta?

a) Mala gestión de claves D.


b) Mala distribución de claves D.
c) No tiene firma digital D.

¿Tiene algo de bueno la cifra


en bloque con clave secreta?

Sí: la velocidad de cifra es muy alta C

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 10


© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado en bloque con clave pública
Cifrado con Clave Pública

• Comienza a ser ampliamente conocido a través de


su aplicación en los sistemas de correo electrónico
seguro (PGP y PEM) al permitir incluir una firma
digital adjunta al documento o e-mail enviado.
• Cada usuario tiene dos claves, una secreta o privada
y otra pública, inversas dentro de un cuerpo.
• Usan las funciones unidireccionales con trampa.
Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 11
© Jorge Ramió Aguirre Madrid (España) 2002
Funciones unidireccionales con trampa

Son funciones matemáticas de un solo sentido


(one-way functions) y que nos permiten usar la
función en sentido directo o de cálculo fácil para
cifrar y descifrar (usuarios legítimos) y fuerza el
sentido inverso o de cálculo difícil para aquellos
(impostores, hackers, etc.) si lo que se desea es
atacar o criptoanalizar la cifra.
f (M) = C siempre es fácil.
f -1(C) = M es difícil salvo si se tiene la trampa.

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 12


© Jorge Ramió Aguirre Madrid (España) 2002
Funciones con trampa típicas (1)

Problema de la factorización

Cálculo Directo: Producto de dos primos grandes p*q = n


Cálculo Inverso: Factorización de número grande n = p*q

Problema del logaritmo discreto

Cálculo Directo: Exponenciación discreta b = ax mod n


Cálculo Inverso: Logaritmo discreto x = loga b mod n

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 13


© Jorge Ramió Aguirre Madrid (España) 2002
Funciones con trampa típicas (2)

Problema de la mochila

Cálculo Directo: Sumar elementos de mochila con trampa


Cálculo Inverso: Sumar elementos de mochila sin trampa

Problema de la raíz discreta

Cálculo Directo: Cuadrado discreto x = a*a mod n


Cálculo Inverso: Raíz cuadrada discreta n = Öa mod n

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 14


© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado con clave pública de destino

origen destino
NUESTROS PROTAGONISTAS

Benito Si Benito realiza la Adelaida


operación con las
Claves: eB, nB, dB claves públicas de Claves: eA, nA, dA
Adelaida (eA, nA), la
eB, nB: públicas información que se eA, nA: públicas
transmite mantiene la
dB: privada confidencialidad: dA: privada
eB y dB son sólo ella puede verla. eA y dA son
inversas dentro inversas dentro
de un cuerpo Z de un cuerpo Z
C = EeA(M) mod nA

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 15


© Jorge Ramió Aguirre Madrid (España) 2002
Operación de cifra con clave de destino
Cifrado:
Benito envía un mensaje M a Adelaida

Benito Adelaida
Claves: eB, nB, dB C = EeA(M) mod nA Claves: eA, nA, dA
Claves públicas

Descifrado: Clave privada

M = EdA[EeA(M)] mod nA EdA y EeA son inversos

Recupera el texto en claro: confidencialidad


Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 16
© Jorge Ramió Aguirre Madrid (España) 2002
¿Y si usamos la clave pública de origen?

Si en vez de utilizar la clave pública de destino, el emisor


usa su propia clave pública, la cifra no tiene sentido bajo
el punto de vista de sistemas de clave pública ya que sólo
él o ella sería capaz de descifrar el criptograma (deshacer
la operación de cifra) con su propia clave privada.

Esto podría usarse para cifrar de forma


local uno o varios ficheros, por
ejemplo, pero para ello ya están los
sistemas de clave secreta, mucho más
rápidos y, por tanto, más eficientes.
Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 17
© Jorge Ramió Aguirre Madrid (España) 2002
¿Y si usamos la clave privada de origen?
Si ahora el emisor usa su clave privada en la cifra sobre
el mensaje, se obtiene una firma digital que le autentica
como emisor ante el destinatario y, además, a este último
le permitirá comprobar la integridad del mensaje.

Veamos antes un ejemplo de


algoritmo que usa dos claves

Obviamente, el emisor nunca podrá realizar la cifra del


mensaje M con la clave privada del receptor.
Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 18
© Jorge Ramió Aguirre Madrid (España) 2002
El algoritmo del mensaje en la caja
PROTOCOLO: A envía a B un mensaje M
1 A pone el mensaje M en la caja, la cierra con su
llaveÏy la envía a B.
2 B recibe la caja, la cierra con su llaveÏy envía a
A la caja con las dos cerradurasÏÏ.
3 A recibe la caja, quita su llave Ð y devuelve a B
la caja sólo con la cerradura de BÏ.
4 B recibe la caja, quita su cerradura Ð y puede ver
el mensaje M que A puso en el interior de la caja.

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 19


© Jorge Ramió Aguirre Madrid (España) 2002
¿Todo bien en el algoritmo de la caja?

Durante la transmisión, el mensaje está


protegido de cualquier intruso por lo
que existe integridad del mensaje y hay
protección contra una ataque pasivo.
El usuario B no puede estar seguro si
quien le ha enviado el mensaje M es el Una ligera
usuario A o un impostor. El algoritmo modificación del
algoritmo anterior nos
no permite comprobar la autenticidad permitirá cumplir estos
del emisor pues no detecta suplantación dos aspectos de la
de identidad. seguridad informática

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 20


© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado con clave privada del origen

origen destino
Si ahora Benito realiza
la operación de cifra con
su clave privada dB en el
Benito cuerpo nB Adelaida será Adelaida
capaz de comprobar esa
Claves: eB, nB, dB cifra ya que posee (entre Claves: eA, nA, dA
otras) la clave pública de
eB, nB: públicas Benito. Comprueba así eA, nA: públicas
tanto la autenticidad del
dB: privada dA: privada
mensaje como del autor.
eB y dB son eA y dA son
inversas dentro inversas dentro
de un cuerpo Z C = EdB(M) mod nB de un cuerpo Z

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 21


© Jorge Ramió Aguirre Madrid (España) 2002
Operación de cifra con clave de origen
Cifrado:
Benito firma un mensaje M a Adelaida

Benito Adelaida
Claves: eB, nB, dB C = EdB(M) mod nB Claves: eA, nA, dA
Clave privada

Descifrado: Claves públicas

M = EeB[EdB(M)] mod nB EdB y EeB son inversos

Se comprueba la integridad del origen


Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 22
© Jorge Ramió Aguirre Madrid (España) 2002
Uso de la criptografía asimétrica

¿Qué aplicación tendrán entonces los sistema


de criptografía de clave pública o asimétrica?
• Usando la clave pública del destino se hará el
intercambio de claves se sesión de una cifra con
sistemas simétricos (decenas a centenas de bits).
• Usando la clave privada de origen, se firmará
digitalmente un resumen (decenas a centenas de
bits) del mensaje obtenido con una función hash.

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 23


© Jorge Ramió Aguirre Madrid (España) 2002
Gestión de claves

Gestión de claves
Clave Secreta Clave Pública
Hay que memorizar Sólo es necesario
un número muy alto memorizar la clave
de claves: ® n2. privada del emisor.

En cuanto a la gestión de claves,


serán más eficientes los sistemas
de cifra asimétricos.

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 24


© Jorge Ramió Aguirre Madrid (España) 2002
Espacio de claves

Longitud y espacio de claves


Clave Secreta Clave Pública
Debido al tipo de Por el algoritmo usado
cifrador usado, la en la cifra, la clave
clave será del orden será del orden de los
de la centena de bits. miles de bits.
³ 128 En cuanto al espacio de claves, ³ 1024
no son comparables los sistemas
simétricos con los asimétricos.
Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 25
© Jorge Ramió Aguirre Madrid (España) 2002
Vida de la claves

Vida de una clave


Clave Secreta Clave Pública
La duración es muy La duración de la clave
corta. Normalmente pública, que la entrega
se usa como una y gestiona un tercero,
clave de sesión. suele ser larga.
Segundos, minutos En cuanto a la vida de una Meses, años
clave, en los sistemas simétricos
ésta es muchísimo menor que la
de las usadas en los asimétricos.
Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 26
© Jorge Ramió Aguirre Madrid (España) 2002
Vida de la clave y principio de caducidad
Si en un sistema de clave secreta, ésta se usa como clave
de una sesión que dura muy poco tiempo...
y en este tiempo es imposible romperla...
¿para qué preocuparse entonces?

La confidencialidad de la información tiene


una caducidad. Si durante este tiempo
alguien puede tener el criptograma e intentar
un ataque por fuerza bruta, obtendrá la clave
(que es lo menos importante) ...
¡pero también el mensaje secreto!
Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 27
© Jorge Ramió Aguirre Madrid (España) 2002
El problema de la autenticación

Condiciones de la autenticidad:
a) El usuario A deberá protegerse ante mensajes
dirigidos a B que un tercer usuario desconocido C
introduce por éste. Es la suplantación de identidad o
problema de la autenticación del emisor.
b) El usuario A deberá protegerse ante mensajes
falsificados por B que asegura haberlos recibido
firmados por A. Es la falsificación de documento o
problema de la autenticación del mensaje.

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 28


© Jorge Ramió Aguirre Madrid (España) 2002
Autenticación de origen y destino

Autenticación
Clave Secreta Clave Pública
Sólo será posible Al haber una clave
autenticar el mensaje pública y otra privada,
con una marca pero se podrá autenticar el
no al emisor. mensaje y al emisor.

En cuanto a la autenticación, los


sistemas asimétricos -a diferencia de los
simétricos- permiten una firma digital.
Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 29
© Jorge Ramió Aguirre Madrid (España) 2002
Velocidad de cifra

Velocidad de cifra
Clave Secreta Clave Pública
La velocidad del La velocidad de cifra
cifrado es muy alta. es muy baja. Se usa
Es el algoritmo de para el intercambio de
cifra del mensaje. clave y la firma digital.
Cientos de En cuanto a la velocidad de Cientos de
M Bytes/seg cifra, los sistemas simétricos K Bytes/seg
son de 100 a 1.000 veces más
rápidos que los asimétricos.
Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 30
© Jorge Ramió Aguirre Madrid (España) 2002
Resumen cifra simétrica v/s asimétrica
Cifrado Simétrico Cifrado Asimétrico
• Confidencialidad • Confidencialidad
• Autenticación parcial • Autenticación total
• Sin firma digital • Con firma digital
• Claves: • Claves:
– Longitud pequeña – Longitud grande
– Vida corta – Vida larga
– Número elevado – Número reducido
• Velocidad alta • Velocidad baja
Fin del Tema 8

Curso de Seguridad Informática. Tema 8: Introducción a los Criptosistemas Modernos. 31


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 9
Cifrado en Flujo con Clave Secreta

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 40 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


El cifrador de Vernam
• Siguiendo las propuesta de cifrador hecha en 1917 por
Vernam, los cifradores de flujo usan:
– Una cifra basada en la función XOR.
– Una secuencia cifrante binaria aleatoria.
– Un algoritmo de cifrado es igual que el de descifrado por la
involución de la función XOR.
Clave K secuencia cifrante Clave K

Algoritmo S C S Algoritmo
Determinístico
Å Å Determinístico
Criptograma
MENSAJE M M MENSAJE

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 2


© Jorge Ramió Aguirre Madrid (España) 2002
La secuencia cifrante Si
Condiciones para una clave segura
• Período:
– La clave deberá ser tanto o más larga que el mensaje.
En la práctica se usará una semilla de unos 120 a 250
bits para generar períodos del orden de 1030.
• Distribución de bits: Rachas y AC(k)
– Distribución uniforme de unos y ceros que represente
una secuencia pseudoaleatoria (Postulados Golomb).
Rachas de dígitos: uno o más bits entre dos bits distintos.
Función de Autocorrelación Fuera de Fase AC(k):
desplazamiento de k bits sobre la misma secuencia S.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 3
© Jorge Ramió Aguirre Madrid (España) 2002
Rachas de dígitos
Rachas de una secuencia S de período 15
Bit anterior Próximo
1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
es un 0 bit es un 1

Rachas de 1s
Rachas de 0s Un 1 entre dos 0s
Un 0 entre dos 1s
Racha de 00s
Racha de 1111s Racha de 11s Un 00 entre dos 1s

Un 1111 entre dos 0s Un 11 entre dos 0s Racha de 000s


Un 000 entre dos 1s
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 4
© Jorge Ramió Aguirre Madrid (España) 2002
Distribución de las rachas de dígitos

Las rachas, es decir la secuencia de dígitos iguales entre


dos dígitos distintos, deberán seguir una distribución
estadística de forma que la secuencia cifrante Si tenga un
comportamiento de clave aleatoria o pseudoaleatoria.
Para que esto se cumpla, es obvio que habrá más rachas
cortas que rachas largas como en el ejemplo anterior.
Como veremos más adelante, esta distribución seguirá
una progresión geométrica. Por ejemplo una secuencia Si
podría tener 8 rachas de longitud uno, 4 de longitud dos,
2 de longitud tres y 1 de longitud cuatro.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 5
© Jorge Ramió Aguirre Madrid (España) 2002
Autocorrelación fuera de fase AC(k)

Función de Autocorrelación:
– Autocorrelación AC(k) fuera de fase de una secuencia
Si de período T desplazada k bits a la izquierda:
AC(k) = (A - F) / T
Aciertos Þ bits iguales Fallos Þ bits diferentes
Ejemplo

Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 Si k = 1

A= 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 A=7; F=8

F= AC(1)= -1/15
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Importancia de una AC(k) constante

Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0

Como ejercicio, compruebe que para esta secuencia cifrante


Si la Autocorrelación Fuera de Fase AC(k) para todos los
valores de k (1 £ k £ 14) es constante e igual a -1/15.
Esto será importante para la calidad de la clave.

Para que una secuencia cifrante sea considerada segura,


además de cumplir con la distribución de rachas, deberá
tener una AC(k) constante como veremos más adelante.

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 7


© Jorge Ramió Aguirre Madrid (España) 2002
Imprevisibilidad e implementación de Si
• Imprevisibilidad:
– Aunque se conozca una parte de la secuencia Si, la
probabilidad de predecir el próximo dígito no debe ser
superior al 50%.
– Esto se define a partir de la Complejidad Lineal.

• Facilidad de implementación:
– Debe ser fácil construir un generador de secuencia
cifrante con circuitos electrónicos y chips, con bajo
coste, alta velocidad, bajo consumo, un alto nivel de
integración, etc.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 8
© Jorge Ramió Aguirre Madrid (España) 2002
Primer postulado de Golomb G1
Postulado G1:
– Deberá existir igual número de ceros que de unos. Se
acepta como máximo una diferencia igual a la unidad.

S1 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
En la secuencia S1 de 15 bits, hay 8 unos y 7
ceros, luego cumple con el postulado G1.

S2 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1
En la secuencia S2 de 16 bits, hay 7 unos y 9
ceros, luego no cumple con el postulado G1.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 9
© Jorge Ramió Aguirre Madrid (España) 2002
Significado del postulado G1

Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0

¿Qué significa esto?

Si una secuencia Si cumple con G1, quiere decir que la


probabilidad de recibir un bit 1 es igual a la de recibir un
bit 0, es decir un 50%.
A lo largo de una secuencia Si, en media será igualmente
probable recibir un “1” que un “0” pues hay una mitad de
valores uno y otra mitad de valores cero.

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 10


© Jorge Ramió Aguirre Madrid (España) 2002
Segundo postulado de Golomb G2
Postulado G2:
– En un período T, la mitad de las rachas de Si serán de
longitud 1, la cuarta parte de longitud 2, la octava parte
de longitud 3, etc.
Las rachas de esta
secuencia están en
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 una diapositiva
anterior

En la secuencia Si de 15 bits, hay 4 rachas de longitud uno, 2


rachas de longitud dos, 1 racha de longitud tres y 1 racha de
longitud cuatro. Este tipo de distribución en las rachas para
períodos impares, es típica de las denominadas m-secuencias
como veremos más adelante en el apartado generadores LFSR.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 11
© Jorge Ramió Aguirre Madrid (España) 2002
Significado del postulado G2

Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0

¿Qué significa esto?

Si una secuencia Si cumple con G2, quiere decir que la


probabilidad de recibir un bit 1 ó 0 después de haber
recibido un 1 o un 0 es la misma, es decir un 50%.
Es decir, recibido por ejemplo un “1”, la cadena “10” es
igualmente probable que la cadena “11”. Lo mismo sucede
con un 0 al comienzo, un 00, 01, 10, 11, 000, 001, etc.
Comprobaremos más adelante que la secuencia pasa por
todos sus estados, es decir todos sus restos.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 12
© Jorge Ramió Aguirre Madrid (España) 2002
Tercer postulado de Golomb G3 (1)
• Postulado G3:
– La autocorrelación AC(k) deberá ser constante
para todo valor de desplazamiento de k bits.
Si 0 1 1 1 0 1 0 0 Secuencia original
Desplazamiento de un bit a la izquierda

k=1 1 1 1 0 1 0 0 0 AC(1) = (4-4)/8 = 0


k=2 1 1 0 1 0 0 0 1 AC(2) = (4-4)/8 = 0
k=3 1 0 1 0 0 0 1 1 AC(3) = (2-6)/8 = -1/2
k=4 0 1 0 0 0 1 1 1 AC(4) = (4-4)/8 = 0 sigue
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 13
© Jorge Ramió Aguirre Madrid (España) 2002
Tercer postulado de Golomb G3 (2)

Si 0 1 1 1 0 1 0 0 Secuencia original

k=5 1 0 0 0 1 1 1 0 AC(5) = (2-6)/8 = -1/2


k=6 0 0 0 1 1 1 0 1 AC(6) = (4-4)/8 = 0
k=7 0 0 1 1 1 0 1 0 AC(7) = (4-4)/8 = 0
k=8 0 1 1 1 0 1 0 0 Secuencia original en fase
La secuencia Si = 01110100 de 8 bits no cumple con G3.
Si = 10101100 sí cumple. Compruebe que AC(k) = - ½.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 14
© Jorge Ramió Aguirre Madrid (España) 2002
Significado del postulado G3

Si 0 1 1 1 0 1 0 0 No cumple con G3
Si 1 0 1 0 11 0 0 Sí cumple con G3

¿Qué significa esto?

Si una secuencia cumple con el postulado G3 quiere decir


que, independientemente del trozo de secuencia elegido por
el atacante, no habrá una mayor cantidad de información que
en la secuencia anterior. Será imposible aplicar ataques
estadísticos a la secuencia recibida u observada.

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 15


© Jorge Ramió Aguirre Madrid (España) 2002
Generador de congruencia lineal (1)

xi+1 = (a*xi ± b)(mod n) secuencia cifrante

• Los valores a, b, n caracterizan al generador y


se utilizan como clave secreta.
• El valor x0 se conoce como semilla; es el que
inicia el proceso generador de la clave Xi.
• La secuencia se genera de i = 0 hasta i = n-1.
• Tiene como debilidad que resulta relativamente
fácil atacar la secuencia, de forma similar a los
cifradores afines de la criptografía clásica.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 16
© Jorge Ramió Aguirre Madrid (España) 2002
Generador de congruencia lineal (2)
Sea: xi+1 = (a*xi ± b)(mod n)
a=5 b=1
n = 16 x0 = 10
Si = 10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5

x1 = (5*10+1) mod 16 = 3 x2 = (5*3+1) mod 16 = 0


x3 = (5*0+1) mod 16 = 1 x4 = (5*1+1) mod 16 = 6
x5 = (5*6+1) mod 16 = 15 x6 = (5*15+1) mod 16 = 12
x7 = (5*12+1) mod 16 = 13 x8 = (5*13+1) mod 16 = 2
x9 = (5*2+1) mod 16 = 11 x10 = (5*11+1) mod 16 = 8
x11 = (5*8+1) mod 16 = 9 x12 = (5*9+1) mod 16 = 14
x13 = (5*14+1) mod 16 = 7 x14 = (5*7+1) mod 16 = 4
x15 = (5*4+1) mod 16 = 5 x16 = (5*5+1) mod 16 = 10
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 17
© Jorge Ramió Aguirre Madrid (España) 2002
Generador de congruencia lineal (3)

xi+1 = (a*xi ± b)(mod n)


Ejercicios

¿Qué sucede si ¿Qué sucede si ¿Qué sucede si


a=5 b=2 a=5 b=2 a=4 b=1
n = 16 x0 = 10? n = 16 x0 = 1? n = 16 x0 = 10?

Saque sus propias conclusiones.


No será un generador criptográficamente interesante.

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 18


© Jorge Ramió Aguirre Madrid (España) 2002
Registros de desplazamiento
Generador de secuencia cifrante con registros de desplazamiento
Realimentación
g[a(t-1)a(t-2) ...a(t-n+1)]Åa(t-n)
Si es un bit 0 ó 1
Conexiones de puertas
?
S1 S2 S3 S4 Sn-1 Sn Si
Bit que se pierde
a(t-1) a(t-2) a(t-3) a(t-4) a(t-n+1) a(t-n)
Desplazamiento a(i) es el contenido de la celda i

Genera una secuencia con un período máximo 2n


NLFSR
Registros de Desplazamiento Realimentados No Linealmente
Registros de Desplazamiento Realimentados Linealmente
LFSR
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 19
© Jorge Ramió Aguirre Madrid (España) 2002
Generador NLFSR de 4 celdas (1)
Generador de cuatro celdas (n = 4)
Este es el estado
1
XOR de las celdas y
1
0 las operaciones
Primera
OR previas antes de
operación 0 0 producirse el
AND NOT desplazamiento
de un bit hacia a
la derecha.
S01 S12 S13 S14
S1 S2 S3 S4
Si
Sea la semilla: S1S2S3S4 = 0111 Operaciones

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 20


© Jorge Ramió Aguirre Madrid (España) 2002
Generador NLFSR de 4 celdas (2)

1
XOR
1 Observe que
0
OR primero se
0 0 transmite
AND NOT S4S3S2S1
Si
S101 S012 S13 S14 1
S1 S2 S3 S4
Semilla: S1S2S3S4 = 0111
Continuando la secuencia Si = 1110 1100 1010 0001
Tmáx = 2n = 24 = 16 (Secuencia de De Bruijn)
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 21
© Jorge Ramió Aguirre Madrid (España) 2002
Generadores lineales LFSR (1)
a(t) = C1a(t-1) Å C2a(t-2) Å C3a(t-3) Å ... Å Cna(t-n)
Ci = {1,0} Þ conexión/no conexión celda Cn = 1
Función única: XOR Tmáx = 2n - 1
Polinomio asociado:
f(x) = Cnxn + Cn-1xn-1 + .... + C2x2 + C1x + 1

XOR
Generador
C1 C2 C3 C4 LFSR de 4
etapas/celdas
S1 S2 S3 S4 Si
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 22
© Jorge Ramió Aguirre Madrid (España) 2002
Generadores lineales LFSR (2)
En función del polinomio asociado tendremos:

• LFSR con polinomios factorizables


• No serán criptográficamente interesantes.
• LFSR con polinomios irreducibles
• No serán criptográficamente interesantes.
• LFSR con polinomios primitivos
• Este tipo de polinomio que genera todo el cuerpo
de trabajo será el que nos entregue una secuencia
cifrante de interés criptográfico, de acuerdo a los
postulados de Golomb.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 23
© Jorge Ramió Aguirre Madrid (España) 2002
Generador LFSR con f(x) factorizable
Generador f(x) factorizable de cuatro celdas (n = 4)
Å
Sea f(x) = x4 + x2 +1

f(x) es factorizable porque:


S1 S2 S3 S4 Si
Sea f(x1) = f(x2) = (x2+x+1)
f(x) = f(x1) • f(x2) Problema
f(x) = (x2+x+1) • (x2+x+1) T dependerá de la semilla
f(x) = x4+2x3+3x2+2x+1 n £ T £ 2n - 1
Tras la reducción módulo 2 Y además, habrá períodos
Luego f(x) = x4 + x2 +1 secundarios divisores de T
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 24
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de LFSR con f(x) factorizable (1)
f(x) = x4 + x2 + 1
Sea la semilla: Å
S1S2S3S4 = 1101

S11 S12 S03 S14 Si


Registro Bit Si
1101 1 Observe que
Primer bit: Si = 101 en este caso la
0110 0
resultado de T=3 secuencia Si es
la operación 1011 1 incluso menor
S 1 = S2 Å S 4 1101 1 . . . semilla que la semilla.

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 25


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de LFSR con f(x) factorizable (2)
f(x) = x4 + x2 + 1
Sea ahora la semilla: Å
S1S2S3S4 = 0111

S01 S12 S13 S14 Si


Registro Bit Si Registro Bit Si
0111 1 1110 0
Primer bit:
0011 1 1111 1
resultado de
la operación 1001 1 0111 1 . . . semilla
S 1 = S2 Å S 4 1100 0 Si = 111001 T = 6
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 26
© Jorge Ramió Aguirre Madrid (España) 2002
Generador LFSR con f(x) irreducible
Generador f(x) irreducible de cuatro celdas (n = 4)
Sea f(x) = x4 + x3 + x2 + x + 1
Es imposible factorizar
Å
en módulo 2 la función
f(x) mediante dos
S1 S2 S3 S4 Si
polinomios f(x1) y f(x2)
de grado menor Problema
Ahora T ya no depende de la semilla
pero será un factor de Tmáx = 2n – 1 y
no obtendremos un período máximo.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 27
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de LFSR con f(x) irreducible
f(x) = x4 + x3 + x2 + x + 1
Sea ahora la semilla: Å
S1S2S3S4 = 0001

S01 S02 S03 S14 Si


Registro Bit Si Registro Bit Si
0001 1 0011 1
Primer bit:
resultado de
1000 0 0001 1 . . . semilla
la operación 1100 0 Si = 100011 T = 5 siendo
S 1 = S2 Å S 4 0110 0 Tmáx = 2n - 1 = 24- 1 = 15
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 28
© Jorge Ramió Aguirre Madrid (España) 2002
Generador LFSR con f(x) primitivo
Generador f(x) primitivo de cuatro celdas (n = 4)
Sea f(x) = x4 + x + 1
Å
f(x) no es factorizable
como f(x1)•f(x2) en Si
módulo dos. Es además S1 S2 S3 S4
un generador del grupo.
T ya no dependerá de la
semilla y será un valor
Habrá f(2n - 1)/n máximo Tmáx = 2n - 1.
polinomios primitivos Se generan m-secuencias
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 29
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de LFSR con f(x) primitivo
Generador f(x) primitivo de cuatro celdas (n = 4)
f(x) = x4 + x + 1
Å
S1S2S3S4 = 1001 S 1 = S1 Å S 4
Registro Bit Si Si
S11 S02 S03 S14
1001 1
0100 0 1110 0 1010 0 T = 2n - 1
T = 24 - 1
0010 0 1111 1 1101 1 T = 15
0001 1 0111 1 0110 0
1000 0 1011 1 0011 1
1100 0 0101 1 1001 T = 15
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 30
© Jorge Ramió Aguirre Madrid (España) 2002
Secuencia Si de LFSR con f(x) primitivo
Características
• Secuencia máxima de 2n - 1 bits
• Cumple con G1:
Hay 2n bits 1 y 2n-1 bits 0
• Cumple con G2: m-secuencia
Distribución de rachas de m-secuencia
• Cumple con G3:
Los aciertos (A) serán iguales a 2n-1 - 1
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 31
© Jorge Ramió Aguirre Madrid (España) 2002
Rachas en Si de LFSR con f(x) primitivo
Rachas de Longitud Rachas de Ceros Rachas de Unos
1 2n-3 2n-3
2 2n-4 2n-4
... ... ...
p 2n-p-2 2n-p-2
... ... ...
n-2 1 1
n-1 1 0
n 0 1
TOTAL 2n-2 2n-2
Rachas de una m-secuencia
Sin embargo, no es un generador ideal para la cifra
porque su Complejidad Lineal es muy baja.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 32
© Jorge Ramió Aguirre Madrid (España) 2002
Debilidad de un LFSR con f(x) primitivo
Como este LFSR genera una secuencia de longitud
máxima, ésta será previsible y se puede encontrar la
secuencia completa Si de 2n - 1 bits ...
¡ con sólo conocer 2n bits !
Por ejemplo, si en un sistema de 4 celdas con
período 24 - 1 = 15 conocemos 2•4 = 8 bits, seremos
capaces de encontrar las conexiones de las celdas o
valores de Ci y generar así la secuencia completa Si.
Esto se conoce como el ataque mediante el algoritmo
de Berlekamp-Massey.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 33
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de ataque Berlekamp-Massey (1)
Si conocemos 2*n = 8 bits S1S2S3S4S5S6S7S8 de un LFSR
de 4 celdas C1C2C3C4, tenemos el sistema de ecuaciones:

Å Si asignamos valores
C1 C2 C3 C4=1 de esos 2*n = 8 bits
S1 S2 S3 S4 Si S1S2S3S4S5S6S7S8
seremos capaces de
S5 = C1•S1Å C2•S2Å C3•S3Å C4•S4 resolver este sistema
S6 = C1•S5Å C2•S1Å C3•S2Å C4•S3 Primero se transmite
S7 = C1•S6Å C2•S5Å C3•S1Å C4•S2 S4S3S2S1 (semilla) y
S8 = C1•S7Å C2•S6Å C3•S5Å C4•S1 luego bits S5S6S7S8.

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 34


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de ataque Berlekamp-Massey (2)
S5 = C1•S1Å C2•S2Å C3•S3Å C4•S4 Si los 8 bits
S6 = C1•S5Å C2•S1Å C3•S2Å C4•S3 S1S2S3S4S5S6S7S8
S7 = C1•S6Å C2•S5Å C3•S1Å C4•S2 son 1100 1000

S8 = C1•S7Å C2•S6Å C3•S5Å C4•S1 S1 = 0 S5 = 1


S2 = 0 S6 = 0
1 = C1•0 Å C2•0 Å C3•1Å C4•1 S3 = 1 S7 = 0
S4 = 1 S8 = 0
0 = C1•1 Å C2•0 Å C3•0 Å C4•1
0 = C1•0 Å C2•1 Å C3•0 Å C4•0 C1 = 1 C2 = 0

C3 = 0 C4 = 1
0 = C1•0 Å C2•0 Å C3•1 Å C4•0
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 35
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de ataque Berlekamp-Massey (3)
CONCLUSIONES:
• Como se conoce la configuración del generador
LFSR, y Si es una m-secuencia de período 2n - 1,
entonces por el conjunto de n celdas pasarán todos
los restos del campo de Galois de 2n menos la
cadena de n ceros que está prohibida.
• Para el ejemplo, esto quiere decir que cualquier
grupo de 4 dígitos correlativos de los 8 conocidos
permite generar la secuencia máxima.
• La solución es aumentar la complejidad lineal del
generador por ejemplo conectando varios LFRs.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 36
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmos de cifrado en flujo

Sistemas más conocidos:


• RC4:
– Algoritmo de RSA (Rivest Cipher #4) desarrollado en el
año 1987 (usado en Lotus Notes).
• SEAL:
– Algoritmo propuesto por IBM en 1994.
• A5:
– Algoritmo no publicado propuesto en 1994. Versiones
A5/1 fuerte (Europa) y A5/2 débil (exportación).

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 37


© Jorge Ramió Aguirre Madrid (España) 2002
El algoritmo de cifra A5

El uso habitual de este algoritmo lo encontramos en el


cifrado del enlace entre el abonado y la central de un
teléfono móvil (celular) tipo GSM.
Con más de 100 millones de usuarios en Europa y
otros 100 millones de usuarios en el resto del mundo,
el sistema ha sucumbido a un ataque en diciembre de
1999 realizado por Alex Biryukov y Adi Shamir.
... y su futuro es incierto.

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 38


© Jorge Ramió Aguirre Madrid (España) 2002
Esquema del algoritmo de cifra A5
18 13 C1 0

3 LFSR con R1
C1: bit
m-secuencia
Å de reloj

21 C2 0

Si Å R2
C2: bit
n1 = 19 Å de reloj

n2 = 22 22 C3 7 0

n3 = 23 R3
C3: bit
Clave = 64 bits Å de reloj

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 39


© Jorge Ramió Aguirre Madrid (España) 2002
Consideraciones sobre el período de A5

El período T vendrá dado por el máximo común


múltiplo de los tres períodos individuales:
T = mcm (2n1 - 1, 2n2 - 1, 2n3 - 1)
Como n1, n2 y n3 son primos entre sí, también lo serán
los valores (2n1 -1), (2n2 - 1) y (2n3 - 1). Entonces el
período T será el producto de estos tres períodos:
T = T1*T2*T3
En todo caso T < 264 es un valor demasiado bajo L
Fin del Tema 9

Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 40


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 10
Cifrado en Bloque con Clave Secreta

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 71 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Cifrado y descifrado en bloque genérico
MENSAJE (N bits) A Å Xi B Å Xi
BLOQUE A BLOQUE B
Å
N/2 N/2
Å ki
FUNCIÓN f
ki Xi
FUNCIÓN f
Xi Å Å
Å Å
A B
A Å Xi B Å Xi Puesto que Y Å Xi Å Xi = Y
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 2
© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado tipo Feistel
Horst Feistel: inventor (IBM) del algoritmo LUCIFER a comienzos de
los años 70. El algoritmo fue utilizado por el Reino Unido. En 1974 se
propone a la NSA como estándar y en ese año dará origen al DES.
• Dado un bloque de N bits (típico
64) éste se dividirá en dos mitades.
• Existirá una función unidireccional F
(muy difícil de invertir).
• Se realizan operaciones con la clave
ki sólo con una mitad del bloque, y
se permutan en cada vuelta las dos
mitades, operación que se repite
durante n vueltas.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 3
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo básico de cifra tipo Feistel (1)

El algoritmo usará bloques de tamaño 8 caracteres. Tendrá


dos vueltas y en cada vuelta realizará una operación de
sustitución S y una permutación P sobre la 1ª mitad.
Sustitución S: Desplazamiento +1 mod 27
Permutación P: Õ3241

Mensaje: M = STAR WARS, LA MISIÓN CONTINÚA

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 4
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo básico de cifra tipo Feistel (2)
Si: +1 mod 27
M = STAR WARS, LA MISIÓN CONTINÚA Pi: Õ3241
M1 = STAR WARS LAMI SION CONT INUA
S1 = TUBS WARS MBNJ SION DPÑU INUA Primera
P1 = BUST WARS NBJM SION ÑPUD INUA vuelta

M2 = WARS BUST SION NBJM INUA ÑPUD Segunda


S2 = XBST BUST TJPÑ NBJM JÑVB ÑPUD
vuelta
P2 = SBTX BUST PJÑT NBJM VÑBJ ÑPUD

C = SBTX BUST PJÑT NBJM VÑBJ ÑPUD


Aunque le parezca increíble, el DES hace precisamente esto mismo
trabajando con bits y con funciones algo más “complejas”.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 5
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmos de cifra más conocidos

Algoritmo Bloque (bits) Clave (bits) Vueltas


Lucifer 128 128 16
DES 64 56 16
Loki 64 64 16
RC2 64 variable --
CAST 64 64 8
Blowfish 64 variable 16
IDEA 64 128 8

Skipjack 64 80 32
RIJNDAEL 128 128 o más flexible

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Características de estos algoritmos
• Lucifer: algoritmo original tipo Feistel que dará lugar al DES.
DES: algoritmo tipo Feistel que se convirtió en un estándar de
hecho durante casi treinta años, hoy en día vulnerable.
• Loki: algoritmo australiano similar al DES, tipo Feistel.
• RC2: algoritmo propuesto por Ron Rivest y que se incluye en
los navegadores desde 1999 con una clave de 40 bits.
• CAST: algoritmo tipo Feistel que se ofrece como cifrador por
defecto en últimas versiones de PGP junto a IDEA y T-DES.
• Blowfish: algoritmo tipo Feistel propuesto por Bruce Schneier.
• IDEA: algoritmo seguro y muy usado en correo electrónico.
• Skipjack: propuesta de nuevo estándar en USA a finales de los
90 para comunicaciones oficiales (tiene puerta trasera).
• RIJNDAEL: nuevo estándar mundial desde finales de 2001.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 7
© Jorge Ramió Aguirre Madrid (España) 2002
Otros algoritmos de cifra

Algoritmo Bloque (bits) Clave (bits) Vueltas


Khufu 64 512 16, 24, 32
Khafre 64 128 más vueltas
Gost 64 256 32
RC5 variable variable variable
SAFER 64 64 64 8
Akelarre variable variable variable
FEAL 64 64 32

De éstos, el más conocido es el algoritmo RC5.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 8
© Jorge Ramió Aguirre Madrid (España) 2002
Características de estos algoritmos
• Khufu: algoritmo propuesto por Ralph Merkle con una clave
generada con un sistema de “cajas” S.
• Khafre: algoritmo propuesto por Ralph Merkle en el que la
clave ya no depende de las cajas S.
• Gost: algoritmo similar al DES con cajas S secretas propuesto
en la Unión Soviética.
• RC5: algoritmo propuesto por Ron Rivest; realiza operaciones
or exclusivo, suma modular y desplazamiento de bits.
• SAFER 64: algoritmo propuesto por James Massey.
• Akelarre: algoritmo español propuesto en 1996 por el CSIC,
Consejo Superior de Investigaciones Científicas.
• FEAL: algoritmo propuesto en Japón.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 9
© Jorge Ramió Aguirre Madrid (España) 2002
Algunas tasas de cifra comparativas
Velocidad de cifra de algoritmos en un PC 486 a 33 MHz
Algoritmo Kbytes/seg Algoritmo Kbytes/seg
DES 35 Triple DES 12
IDEA 53 FEAL (32 v) 91
Khufu (16 v) 221 Khufu (32 v) 115
RC5 (8 v) 127 RC5 (16 v) 65
SAFER (6 v) 81 SAFER (12 v) 41
Blowfish (12 v) 182 Blowfish (20 v) 110

Fuente: Criptografía Digital. Fundamentos y Aunque la velocidad es


Aplicaciones. José Pastor y Miguel Angel Sarasa, muy baja, los valores
Prensas Universitarias de Zaragoza (1998). pueden extrapolarse.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 10
© Jorge Ramió Aguirre Madrid (España) 2002
Data Encryption Standard DES
DES (Data Encryption Standard) ha sido el estándar utilizado
mundialmente durante 25 años, generalmente en la banca. Hoy
presenta signos de envejecimiento y ha sucumbido a los diversos
criptoanálisis que contra él se viene realizando hace ya años.
FECHAS DE INTERÉS

1973: En EEUU la NBS National Bureaux of Standards llama a


concurso público para buscar un algoritmo criptográfico estándar.
1974: La NSA National Security Agency declara desierto el
primer concurso, publica unas segundas especificaciones y elige
Lucifer, algoritmo original de IBM (años 70) con variaciones.
1976: El DES se adopta como estándar y se autoriza para ser
utilizado en las comunicaciones no clasificadas del gobierno.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 11
© Jorge Ramió Aguirre Madrid (España) 2002
Especificaciones del algoritmo DES
Especificaciones del concurso
• El nivel de seguridad computacional debe ser alto.
• El algoritmo debe ser fácil de entender y deberá estar
especificado en todos sus detalles.
• La seguridad del sistema no debe verse afectada por la
publicación y divulgación del algoritmo.
• Debe estar disponible para cualquier usuario.
• Deberá poder usarse en diferentes aplicaciones.
• Fabricación con dispositivos electrónicos de bajo costo.
• Se debe poder usar como validación.
• Debe ser exportable.
No se cumplen en 1973 pero sí en 1974, aunque ...
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 12
© Jorge Ramió Aguirre Madrid (España) 2002
El papel de la NSA en el DES
La NSA impone una limitación en la longitud de la clave:

De los 128 bits de Lucifer,


NSA deja la clave en 64
bits. Al final, la clave sólo
son 56 bits efectivos puesto
que al ser datos de 8 bits, se
conoce el bit de paridad.
Luego, el espacio de claves
es 256 = 7.2 ·1016, tan sólo
72 mil billones de valores.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 13
© Jorge Ramió Aguirre Madrid (España) 2002
¿Por qué esta reducción?

Hay distintas versiones sobre esta


reducción del espacio de claves: una
habla de la dificultad de diseñar
chips capaces de operar de forma
eficiente con una clave de 128 bits
en esos años; la otra sobre una
política de seguridad interna para
proteger información sensible ante
ataques externos y ser capaces, no
obstante, de practicar criptoanálisis
en un tiempo razonable.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 14
© Jorge Ramió Aguirre Madrid (España) 2002
Especificaciones técnicas finales del DES
• Bloque a cifrar: 64 bits
• Clave: 8 bytes (con paridad, no caracteres ASCII)
• Normas ANSI:
– X3.92: Descripción del algoritmo.
– X3.108: Descripción de los modos de operación
(ECB, CBC, OFB).
• Fácil implementación en un circuito integrado.
Veremos su descripción y modos de operación.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 15
© Jorge Ramió Aguirre Madrid (España) 2002
Visión general del DES
v Cifrador de bloque
v Tipo Feistel
v Longitud de clave de 56 bits
v Nº de vueltas: 16
v Cifra del bloque
b central:
técnicas de sustituciones y
permutaciones
En el descifrado se aplican claves y
desplazamientos en sentido inverso

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 16
© Jorge Ramió Aguirre Madrid (España) 2002
Permutación inicial del DES: tabla IP
Tabla IP sobre bloque de texto
Sin interés criptográfico
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7

El bit 1 se lleva a la posición 40

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 17
© Jorge Ramió Aguirre Madrid (España) 2002
Bloques izquierdo y derecho de texto
58 50 42 34 26 18 10 2 L0 = 58 50 42 34 26 18 10 02 60 52 44 36
60 52 44 36 28 20 12 4 28 20 12 04 62 54 46 38 30 22 14 06
62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 08
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
R0 = 57 49 41 33 25 17 09 01 59 51 43 35
27 19 11 03 61 53 45 37 29 21 13 05
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 07
63 55 47 39 31 23 15 7

Observe la distribución correlativa que existe entre los


bits del bloque izquierdo L0 y del bloque derecho R0 de
texto. Este tipo de distribución de los bits en tablas, a
simple vista caprichosa, será muy común en el DES.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 18
© Jorge Ramió Aguirre Madrid (España) 2002
Permutación final del DES: tabla IP-1
Tabla IP-1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25

El bit 40 vuelve a la posición 1


y todos los demás bits a su
posición inicial antes de IP.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 19
© Jorge Ramió Aguirre Madrid (España) 2002
Ciclos del DES
EN CADA CICLO:
· Se permuta la mitad derecha Ri
aplicando expansión de bits
· La clave de 56 bits se desplaza,
permuta y se seleccionan los 48
bits de Ki En la próxima
· La mitad derecha Ri y la clave vuelta, la mitad
Ki se unen mediante XOR derecha anterior
pasa íntegra como
· Se reducen los 48 bits de salida
mitad izquierda. La
a 32 mediante las Cajas-S mitad derecha de la
· Se permuta el resultado nueva vuelta será el
· El resultado se une mediante último resultado or
XOR con la mitad izquierda Li exclusivo del ciclo.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 20
© Jorge Ramió Aguirre Madrid (España) 2002
Módulo de cifra en DES
16 bits repetidos
Esquema de la
función de cifra
f en cada ciclo
Columnas 1ª y
2ª repetidas
En las cajas S
se logra la
fortaleza del
algoritmo. Es
una función
unidireccional
y no lineal.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 21
© Jorge Ramió Aguirre Madrid (España) 2002
Operación de las cajas S en DES
Permutación con expansión a 48 bits (Tabla E)
ki (48 bits)

Operación Or Exclusivo con la subclave ki


De cada 6 bits de entrada se obtienen 4 bits de salida

Sustitución con compresión a 32 bits (Cajas S)

1 6 7 12 13 18 19 24 25 30 31 36 37 42 43 48

S1 S2 S3 S4 S5 S6 S7 S8
1 4 5 8 9 12 13 16 17 20 21 24 25 28 29 32

Permutación de Salida del ciclo (Tabla P)


No lineal y unidireccional. Hay cuatro soluciones de entrada para cada salida
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 22
© Jorge Ramió Aguirre Madrid (España) 2002
Valores de las cajas S del DES (1)
COLUM NAS
S1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

F 0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
I 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
L
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
A
S 3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

COLUM NAS
S2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

F 0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
I 1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
L
A 2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
S 3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 23
© Jorge Ramió Aguirre Madrid (España) 2002
Valores de las cajas S del DES (2)
COLUM NAS
S3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

F 0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
I 1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
L
2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
A
S 3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

COLUM NAS
S4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

F 0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
I 1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
L
A 2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
S 3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 24
© Jorge Ramió Aguirre Madrid (España) 2002
Valores de las cajas S del DES (3)
COLUM NAS
S5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

F 0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
I 1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
L
2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
A
S 3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

COLUM NAS
S6 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

F 0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
I 1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
L
A 2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
S 3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 25
© Jorge Ramió Aguirre Madrid (España) 2002
Valores de las cajas S del DES (4)
COLUM NAS
S7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 5

F 0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
I 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
L
2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
A
S 3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

COLUM NAS
S8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

F 0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
I 1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
L
A 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
S 3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 26
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de operación de cajas S del DES

Ejemplo:
Sean los bits 7 al 12 los siguientes: 101100
Los bits corresponderán entonces a la entrada de la caja S2
Para seleccionar la fila tomamos los bits extremos: 102 = 210 = 2
Para seleccionar la columna tomamos los bits centrales: 01102 = 610 = 6
La caja S2 indica una salida igual a 1310 = 11012

explicación

Entrada: 101100
Salida: 1101

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 27
© Jorge Ramió Aguirre Madrid (España) 2002
Cálculo de subclaves en el DES (PC-1)
28 bits 28 bits Tabla PC-1 (56 bits)
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4

Se han eliminado los bits de paridad:


8, 16, 24, 32, 40, 48, 56, 64
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 28
© Jorge Ramió Aguirre Madrid (España) 2002
Cálculo de subclaves en el DES (PC-2)
28 bits 28 bits
Tabla PC-2 (48 bits) Þ k1, k2, ..., k16
4 17 11 24 1 5
3 28 15 6 21 10

48 bits
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
48 bits 44 49 39 56 34 53
46 42 50 36 29 32

Se han eliminado los bits:


48 bits 9, 18, 22, 25, 35, 38, 43, 54
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 29
© Jorge Ramió Aguirre Madrid (España) 2002
Desplazamiento de subclaves en el DES
Se produce un desplazamiento total igual
28 bits 28 bits
a 28, todos los bits de cada bloque Ci y Di
LF1, LF2, ..., LF16
Vuelta i Bits Desp. Izda. Vuelta i Bits Desp. Izda.
1 1 9 1
2 1 10 2
3 2 11 2
4 2 12 2
5 2 13 2
6 2 14 2
7 2 15 2
8 2 16 1 S
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 30
© Jorge Ramió Aguirre Madrid (España) 2002
Operación de descifrado en el DES
64 bits de criptograma
Se toman en sentido contrario:
k16, k15, k14, k13, k12, k11, k10,
k9, k8, k7, k6, k5, k4, k3, k2, k1

Como se aplica un desplazamiento


de 28 bits en cada bloque de clave,
entonces D16 = D0 y C16 = C0
Los desplazamientos para el cálculo de
las subclaves de descifrado son los
mismos de la tabla anterior pero ahora
se toman hacia la derecha
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 31
© Jorge Ramió Aguirre Madrid (España) 2002
Implementaciones HW y SW del DES

Algunas implementaciones:
– Cryptech CRY12C102 (22.5 Mbits/s)
– Pijnenburg PCC100 (20 Mbits/s)
– “Supercrypt” de Computer Elektronic
Infosys (100 Mbits/s)
• Versiones software disponibles via ftp:
– kampi.hut.fi:alo/des-dist.tar.z
– ftp.funet.fi:pub/unix/security/destoo.tar.z

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 32
© Jorge Ramió Aguirre Madrid (España) 2002
Modos de cifra: modo ECB
NOTA: estos modos de cifra se usan en todos los cifradores.
MODO ECB
Electronic CodeBook: cifra cada bloque con la clave k de
forma independiente. Por lo tanto, el resultado es como si se
codificase mediante un gran libro electrónico de códigos. .
F Recuerde que codificar no es lo mismo que cifrar.
Debilidades:
L Se podría reconstruir ese libro electrónico sin necesidad
de conocer la clave.
L Aparece el problema denominado de comienzos y finales
fijos que permiten un tipo de ataque sencillo.
L Se ataca a través de la repetición de bloques similares.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 33
© Jorge Ramió Aguirre Madrid (España) 2002
Características del modo ECB en el DES

& Cada bloque de 64 bits del texto en claro se


pasa por el cifrador, usando la misma clave.

& Se obtiene, por tanto, el mismo criptograma


para bloques de texto en claro iguales.

& Como a cada bloque de texto en claro le


corresponde un único código o texto cifrado de
salida y éste es constante, este modo de cifra
lleva por nombre Libro Electrónico de Códigos.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 34
© Jorge Ramió Aguirre Madrid (España) 2002
Esquema de cifra modo CBC en el DES
Cipher Block Chaining Vector IV = I0

Cifra por encadenamiento


de bloques
• Se encadenan los
bloques de texto cifrado
con el bloque del
criptograma anterior.
• Usa un vector de
inicialización IV de 64
bits que se guarda en
secreto.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 35
© Jorge Ramió Aguirre Madrid (España) 2002
Operaciones de cifra modo CBC en el DES
Cifrado Descifrado
El vector IV se suma Se descifra el primer bloque con
XOR a los 64 bits de vector IV:
texto en claro. P1 = D(C1) Å I0
Se cifra con la clave K P1 = D[E(P1Å I0)] Å I0
esa suma. Guarda bloque Ci-1. en un
El resultado Ci se usa registro. Descifra el bloque Ci y
como vector IV para el se hace el XOR entre los datos:
nuevo bloque. Mi = D(Ci) Å Ci-1
CARACTERÍSTICAS:
Evita el ataque por repetición de bloque; enmascara el mensaje lo
mismo que la cifra en flujo; el espacio de claves es igual a 64 bits;
la propagación de un error afecta a dos bloques contiguos.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 36
© Jorge Ramió Aguirre Madrid (España) 2002
Esquema de cifra modo CFB en el DES
Cipher Feedback
Cifra por realimentación
de bloques
CIFRAR CIFRAR

• Se pueden cifrar
unidades de datos más
pequeñas que bloques,
por lo general un byte.
• Se usa un registro de
desplazamiento RD de
64 bits como vector
inicial IV.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 37
© Jorge Ramió Aguirre Madrid (España) 2002
Operaciones de cifra modo CFB en el DES
Cifrado Descifrado
Se suma XOR cada byte del Se cifra el registro RD.
texto claro con bytes resultado Se obtienen de esta forma
de la cifra de RD y la clave K. los elementos de Ci-d.
El byte Ci se envía al registro; Se suma XOR los Ci-d con
se desplaza 8 bits a la izquierda los Ci del criptograma para
hasta formar otro RD y se repite obtener Pi.
el proceso de cifra. Se realimenta Ci al registro
RD y se repite el proceso.
CARACTERÍSTICAS:
Evita el ataque por repetición de bloque; enmascara el mensaje como
en cifra en flujo, el espacio de claves es igual a 64 bits; la propagación
de un error se limita a un bloque.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 38
© Jorge Ramió Aguirre Madrid (España) 2002
Esquema de cifra modo OFB en el DES
El byte se va desplazando por el registro
Output Feedback
Registro Desplazamiento (64 bits)
Cifra por realimentación
de bloques de salida
La realimentación de la
señal se realiza antes K DES
de la operación XOR.
Bits menos
El DES, la clave y el significativos Ci-1
Registro RD actúan
como un generador de
Byte
secuencia cifrante. Mensaje Bi Å Ci
Si la cifra se realiza bit a bit, OFB se convierte en cifrador de flujo.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 39
© Jorge Ramió Aguirre Madrid (España) 2002
Características del modo OFB en el DES
q Evita el ataque por repetición de bloque.
q Produce un enmascaramiento del mensaje similar al de
un cifrador de flujo.
q El espacio de claves es igual a 64 bits.
q La propagación de un error afecta sólo a un byte, el
que se realimenta en el registro de desplazamiento.
q Las operaciones de cifrado y descifrado son iguales.
A pesar de las propiedades interesantes de los
últimos modos, el más utilizado en los sistemas
de cifra de diversos protocolos es el CBC.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 40
© Jorge Ramió Aguirre Madrid (España) 2002
¿Es el DES un grupo? (1)
Si un sistema forma un grupo, entonces cifrar un mensaje M
con una clave k1 y luego el resultado con una clave k2, es lo
mismo que cifrar el mensaje con una única clave k3.
Por ejemplo, el cifrador de Vigenère es un grupo como se
demuestra a continuación. Sea k1 = PACO y k2 = CINE y el
mensaje a cifrar M = ESTO ES UN GRUPO.
M1 = ESTO ESUN GRUP O M2 = TSVD TSWB VRWE E
k1 = PACO PACO PACO P k2 = CINE CINE CINE C
C1 = TSVD TSWB VRWE E C2 = VAIH VAJF XZJI G

Obtendremos lo mismo si ciframos el mensaje M


con la clave k3 = k1 + k2 = PACO + CINE = RIOS.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 41
© Jorge Ramió Aguirre Madrid (España) 2002
¿Es el DES un grupo? (2)
M1 = ESTO ESUN GRUP O M2 = TSVD TSWB VRWE E
k1 = PACO PACO PACO P k2 = CINE CINE CINE C
C1 = TSVD TSWB VRWE E C2 = VAIH VAJF XZJI G
M3 = ESTO ESUN GRUP O
k3 = RIOS RIOS RIOS R
C3 = VAIH VAJF XZJI G

Como ejercicio compruebe que a resultados similares llega si,


por ejemplo, usa ahora los siguientes pares de claves:
LAPALA y LANUCA; PASA y NADA; PAÑOS y TERMA.
¿Cuáles son las claves k3 en cada caso? J

El DES no será un grupo y, por lo tanto, permitirá el cifrado


múltiple. Esto aumentará el tamaño efectivo de la clave.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 42
© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado DES múltiple ¿Doble DES?
k1 y k2 son
k1 k2
claves n bits

M C’ C
DES DES

¿Se duplica la longitud de la clave?


En este modelo, cabe esperar que la longitud efectiva de la
clave sea 22n donde n representa la longitud de bits de las
claves k1 y k2. No obstante esto no es cierto.
En realidad el tamaño de la clave resultante en este caso es
equivalente a 2n+1, un aumento insignificante para n grande.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 43
© Jorge Ramió Aguirre Madrid (España) 2002
Ataque por encuentro a medio camino
k1 k2 k1 y k2 son
claves n bits
Y
M DES DES C
a) Se descripta el criptograma C por fuerza bruta usando las 2n claves
posibles y realizando entonces 2n cálculos. Se obtiene así Y.
b) Con los “textos intermedios” Y se forma una tabla ordenada de
textos cifrados con sus correspondientes valores k2.
c) Se cifran los textos en claro M elegidos con todas las claves k1 y se
comparan con Y, realizando un máximo de 2n cálculos.
d) Una de las claves será la verdadera y se ha realizado un número
menor que 2n + 2n = 2n+1 cálculos. Luego la clave real es igual a
2n+1.
Este ataque se conoce con el nombre de meet-in-the-middle.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 44
© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado múltiple: triple DES
k1 y k2 son
k1 k2 k1 claves n bits

M C
E (DES) D (DES) E (DES)

• En este caso se logra un valor efectivo de longitud de


clave igual a 22n bits, es decir 22 • 56 = 2112 bits.
• El ejemplo anterior con sólo dos claves (equivalente al
de tres claves) se usa por motivos de compatibilidad con
el DES de clave única. Propuesto por Matyas y Meyer de
IBM, se denomina EDE: Encrypt-Decrypt-Encrypt.
• Es inmune a ataques por encuentro a medio camino.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 45
© Jorge Ramió Aguirre Madrid (España) 2002
Usos de T-DES
k1 y k2
k1 k2 k1 claves de
64 bits

M C
E (DES) D (DES) E (DES)
Aunque el algoritmo DES haya sufrido diversos ataques y no se
haya vuelto a certificar por el NIST como estándar de cifrado, el
Triple DES sí tiene una gran seguridad debido al tamaño de su
clave de 112 bits efectivos y sigue siendo muy válido en el año
2002. De hecho, es el algoritmo propuesto en el protocolo SET y
se encuentra, entre otras aplicaciones, en el programa PGP.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 46
© Jorge Ramió Aguirre Madrid (España) 2002
International Data Encryption Algorithm IDEA
Historia del IDEA
< En 1990 Xuejia Lai y James Massey proponen el PES,
Proposed Encryption Standard.
< En 1991 -debido a los avances de Biham y Shamir en el
criptoanálisis diferencial- los autores proponen el IPES,
Improved Proposed Encryption Standard.
< En 1992 los autores proponen finalmente el algoritmo
IDEA, International Data Encryption Algorithm.
< En 1999 el algoritmo IDEA, mucho más seguro que el
DES y sus versiones, se comienza a usar ampliamente en
el sistema de correo electrónico seguro PGP.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 47
© Jorge Ramió Aguirre Madrid (España) 2002
Estructura y esquema de IDEA
• Cifra bloques de 64 bits
en 8 vueltas
• Divide la entrada M en
cuatro bloques de 16 bits
• Un algoritmo genera 52
subclaves a partir de una
clave de 128 bits
• Usa 6 claves por vuelta
• Hay una transformación
Todas sus operaciones
final con 4 claves para se realizan dentro de
invertir operación inicial un cuerpo finito

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 48
© Jorge Ramió Aguirre Madrid (España) 2002
Operaciones matemáticas en IDEA
Operaciones básicas

XOR Es primo y se
asegura el inverso
multiplicativo
Suma módulo 216 (mod 65.536)

Multiplicación módulo 216+1 (65.537)

Todas las operaciones se realizan con bloques de 16 bits y


el truco está en que los bloques cuyo valor sea 0 (16 bits) se
cambiarán por la constante 216 ... ¡de 17 bits! ... J

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 49
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de operaciones en IDEA (1)
Ejemplo dentro de un grupo n pequeño
Como 2n + 1 debe ser primo, sea n = 2 ya que 22 = 4 y 22 + 1 = 5
X Y X+Y XÄ Y XÅY n=2
0 00 0 00 0 00 1 01 0 00
0 00 1 01 1 01 0 00 1 01 dos bits
0 00 2 10 2 10 3 11 2 10
0 00 3 11 3 11 2 10 3 11
1
1
01
01
0
1
00
01
1
2
01
10
0
1
00
01
1
0
01
00
Veamos cómo
1
1
01
01
2
3
10
11
3
0
11
00
2
3
10
11
3
2
11
10
se opera con la
2 10 0 00 2 10 3 11 2 10 multiplicación.
2
2
10
10
1
2
01
10
3
0
11
00
2
0
10
00
3
0
11
00 La suma y el or
2
3
10
11
3
0
11
00
1
3
01
11
1
2
01
10
1
3
01
11
exclusivo son
3 11 1 01 0 00 3 11 2 10 operaciones
3 11 2 10 1 01 1 01 1 01
3 11 3 11 2 10 0 00 0 00 similares.

Operaciones: + mod 2n (mod 4), Ä mod 2n+1 (mod 5), XOR (mod 2)
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 50
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de operaciones en IDEA (2)
X Y X+Y XÄ Y XÅY
0 00 0 00 0 00 1 01 0 00 Recuerde que 0
0 00 1 01 1 01 0 00 1 01 es igual a 2n = 4
0 00 2 10 2 10 3 11 2 10
0 00 3 11 3 11 2 10 3 11 por lo que:
1 01 0 00 1 01 0 00 1 01
1 01 1 01 2 10 1 01 0 00
0Ä0 = 22 x 22
= 22 x21 = 4 10
1 0Ä1 01 3 11 2 10 3 11 = 16 mod 5
1 01 3 11 0 00 3 11 2 10
2
= 4 mod
10 0
5 00 2 10 3 11 2 10
=1
2 = 4 = 10
10 01 3 11 2 10 3 11
2 10 2 10 0 00 0 00 0 00
(por 10
definición) 10Ä2 =0122 x 21 = 8 01
2 3 11 1 01 0Ä3 = 22 x 3 = 12
3 11 0 00 3 118 mod
=00 2 5 10 3 11
3 11 1 01 0 3 11 2 10 = 12 mod 5
3 11 2 10 1 =013 1 01 1 01 =2
3 11 3 11 2 10 0 00 0 00

Operaciones: + mod 2n (mod 4), Ä mod 2n+1 (mod 5), XOR (mod 2)
Los demás cálculos con los diferentes valores de X e Y son todos similares
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 51
© Jorge Ramió Aguirre Madrid (España) 2002
Detalles del algoritmo IDEA
Operación cifrado

Operaciones inversas
MA
al comienzo y al final
del algoritmo. Esto
permite usar el mismo
algoritmo para cifrar
que para descifrar.

Bloque principal

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 52
© Jorge Ramió Aguirre Madrid (España) 2002
Bloque principal de IDEA
Estas tres operaciones provocan confusión y no
cumplen las leyes distributiva ni asociativa.

La estructura que crea la


difusión es un bloque básico
denominado Estructura MA
Multiplication / Addition.
Usa sólo dos claves por cada
vuelta del algoritmo.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 53
© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves en IDEA
A partir de una entrada de Se produce un desplazamiento de 25
128 bits, se generan las 52 bits a la izquierda en cada una de las
subclaves de cifrado. 7 fases de generación de claves.

26

Con los
Los 64 primeros
últimos 128 bits se
bits de generan 8
la fase 7 subclaves
no se de 16 bits
usan. cada una.
23 86
64 bits de últimas claves

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 54
© Jorge Ramió Aguirre Madrid (España) 2002
Desplazamientos de la clave en IDEA
En cada operación sobre la clave de 128 bits, se obtienen 8
claves de 16 bits de las que sólo se usan 6 en cada vuelta.
Clave Principal k = 128 bits
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032
033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064
065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096
097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128

Primeros 16 bits de clave …. Ultimos 16 bits de clave


1ª 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 …. 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
2ª 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 …. 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025
3ª 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 …. 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050
4ª 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 …. 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075
5ª 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 …. 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100
6ª 126 127 128 001 002 003 004 005 006 007 008 009 010 011 012 103 …. 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
7ª 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 …. 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022

La distribución de bits de subclaves en cada vuelta sigue una lógica

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 55
© Jorge Ramió Aguirre Madrid (España) 2002
Bits de la clave IDEA en cada en vuelta
Primera vuelta: k1k2k3k4k5k6 B[1…96]
Segunda vuelta: k7k8k9k10k11k12 B[97…128; 26…89]
Tercera vuelta: k13k14k15k16k17k18 B[90…128; 1…25; 51…82]
Cuarta vuelta: k19k20k21k22k23k24 B[83…128; 1…50]
Quinta vuelta: k25k26k27k28k29k30 B[76…128; 1…43]
Sexta vuelta: k31k32k33k34k35k36 B[44…75; 101…128; 1…36]
Séptima vuelta: k37k38k39k40k41k42 B[37…100; 126…128; 1…29]
Octava vuelta: k43k44k45k46k47k48 B[30…125]
Transformación: k49k50k51k52 B[23…86]
Las primeras claves de cada vuelta k1, k7, k13, k19, k25, k31, k37 y
k43 usan un conjunto diferente de bits. Excepto en las vueltas
primera y octava, los 96 bits de subclave usados en cada vuelta,
no son contiguos. Debido al desplazamiento en cada fase de 25
bits a la izquierda, hace muy difícil el ataque a la clave.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 56
© Jorge Ramió Aguirre Madrid (España) 2002
Descifrado con IDEA
El algoritmo IDEA, al igual que el DES, permite cifrar y
descifrar con la misma estructura. Como las operaciones se
hacen dentro de un cuerpo finito, en este caso las claves se
toman como los inversos de las operaciones XOR, suma
mod 216 y producto mod 216+1, dependiendo de las
operaciones realizadas en la fase de cifrado.
INVERSOS

Inverso XOR: se aplica la misma función


Inverso aditivo: suma mod 216
Inverso multiplicativo: producto mod 216+1
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 57
© Jorge Ramió Aguirre Madrid (España) 2002
Claves de descifrado en IDEA

d1 = k49-1 d2 = -k50 d3 = -k51 d4 = k52-1 d5 = k47 d6 = k48


d7 = k43-1 d8 = -k45 d9 = -k44 d10 = k46-1 d11 = k41 d12 = k42
d13 = k37-1 d14 = -k39 d15 = -k38 d16 = k40-1 d17 = k35 d18 = k36
d19 = k31-1 d20 = -k33 d21 = -k32 d22 = k34-1 d23 = k29 d24 = k30
d25 = k25-1 d26 = -k27 d27 = -k26 d28 = k28-1 d29 = k23 d30 = k24
d31 = k19-1 d32 = -k21 d33 = -k20 d34 = k22-1 d35 = k17 d36 = k18
d37 = k13-1 d38 = -k15 d39 = -k14 d40 = k16-1 d41 = k11 d42 = k12
d43 = k7-1 d44 = -k9 d45 = -k8 d46 = k10-1 d47 = k5 d48 = k6
d49 = k1-1 d50 = -k2 d51 = -k3 d52 = k4-1

Inversos de la suma Inversos del XOR


Inversos del producto
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 58
© Jorge Ramió Aguirre Madrid (España) 2002
Operación de descifrado con IDEA
Módulo IDEA

Para descifrar, cada


bloque de criptograma
se dividirá en cuatro
subbloques de 16 bits

Las operaciones
se hacen ahora
hacia arriba

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 59
© Jorge Ramió Aguirre Madrid (España) 2002
Uso de claves inversas en descifrado IDEA
Ultimas 6 claves
de descifrado

d1 = k49-1 d2 = -k50 d3 = -k51 d4 = k52-1 d5 = k47 d6 = k48


d7 = k43-1 d8 = -k45 d9 = -k44 d10 = k46-1 d11 = k41 d12 = k42
d13 = k37-1 d14 = -k39 d15 = -k38 d16 = k40-1 d17 = k35 d18 = k36
d19 = k31-1 d20 = -k33 d21 = -k32 d22 = k34-1 d23 = k29 d24 = k30
d25 = k25-1 d26 = -k27 d27 = -k26 d28 = k28-1 d29 = k23 d30 = k24
d31 = k19-1 d32 = -k21 d33 = -k20 d34 = k22-1 d35 = k17 d36 = k18
d37 = k13-1 d38 = -k15 d39 = -k14 d40 = k16-1 d41 = k11 d42 = k12
d43 = k7-1 d44 = -k9 d45 = -k8 d46 = k10-1 d47 = k5 d48 = k6
d49 = k1-1 d50 = -k2 d51 = -k3 d52 = k4-1

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 60
© Jorge Ramió Aguirre Madrid (España) 2002
Fortaleza del algoritmo IDEA
· IDEA se muestra inmune ante un criptoanálisis diferencial. Sus
autores conocían esta debilidad del DES y lo hicieron resistente.
· Joan Daemen descubre en 1992 una clase de claves débiles. La
siguiente clave k = 0000,0000,0x00,0000,0000,000x,xxxx,x000
en hexadecimal es débil, en el sentido de que un criptoanalista
podría identificarla en un ataque con texto en claro elegido. Las
posiciones x pueden ser cualquier número en hexadecimal.
· La probabilidad de que se use este tipo de claves es sólo de uno
en 296 y se puede, además, eliminar por diseño.
· A la fecha, año 2002, no se conoce todavía ningún sistema o
algoritmo de ataque que haya criptoanalizado IDEA.
· Joan Daemen y Vincent Rijmen crearán en 1997 el RIJNDAEL,
nuevo algoritmo estándar del NIST desde finales de 2001.

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 61
© Jorge Ramió Aguirre Madrid (España) 2002
AES, nuevo estándar en cifra (1)

El algoritmo DES, hasta finales del siglo XX


aceptado en USA como estándar de cifrado en
bloque (y por extensión en el resto del mundo) y
cuyo uso principal se encuentra en aplicaciones
bancarias, ha dejado de serlo después de 20 años.

Su baja longitud de clave (56 bits) y los avances de


la informática lo han convertido en un algoritmo
muy vulnerable. Surge un nuevo estándar: el AES

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 62
© Jorge Ramió Aguirre Madrid (España) 2002
AES, nuevo estándar en cifra (2)
AES: Advanced Encryption Standard

Ø El DES, estándar desde 1976, pasa la certificación de la


NBS National Bureaux of Standards en 1987 y en 1993.
Ø En 1997 el NIST National Institute of Standards and
Technology (antigua NBS) no certifica al DES y llama a
concurso público para un nuevo estándar: el AES.
Ø En octubre del año 2000 el NIST elige el algoritmo belga
RIJNDAEL como nuevo estándar para algoritmo de cifra
en bloque del siglo XXI. Es software de libre distribución
y está disponible desde finales del año 2001.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 63
© Jorge Ramió Aguirre Madrid (España) 2002
Características del algoritmo RIJNDAEL
RIJNDAEL: autores Vincent Rijmen y Joan Daemen
• No es de tipo Feistel.
• Implementado para trabajar en los procesadores de 8 bits
usados en tarjetas inteligentes y en CPUs de 32 bits.
• Tamaño de clave variable: 128, 192 y 256 bits (estándar) o
bien múltiplo de 4 bytes.
• Tamaño del bloque de texto: 128 bits o múltiplo de 4 bytes.
• Operaciones modulares a nivel de byte (representación en
forma de polinomios) y de palabra de 4 bytes: 32 bits.
• Número de etapas flexible según necesidades del usuario.
• Usa un conjunto de Cajas S similar al DES.
Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 64
© Jorge Ramió Aguirre Madrid (España) 2002
Operaciones con bytes en RIJNDAEL

Operaciones a nivel de byte en GF(28)

• Suma y multiplicación. Son cálculos en Campos de Galois


GF(28) con 8 bits. Para la reducción de exponente se usará
un polinomio primitivo p(x).
• Producto por x. Esta operación conocida como xtime(a) al
igual que en el caso anterior usa la reducción de exponente.
Puede implementarse fácilmente con desplazamientos y
operaciones or exclusivo.
Ejemplos

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 65
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de suma en GF(28)
Vamos a sumar los valores hexadecimales 57 y 83:
A = 5716 = 0101 01112 B = 8316 = 1000 00112
que expresados en polinomios dentro de GF(28) serán:
A = 0101 01112 = x6 + x4 + x2 + x + 1
B = 1000 00112 = x7 + x + 1
Sumando: A+B = (x6 + x4 + x2 + x + 1) + (x7 + x + 1) mod 2
A+B = (x7 + x6 + x4 + x2 + 2x + 2) mod 2
A+B = x7 + x6 + x4 + x2 = 1101 0100 = D416
Y lo mismo se obtiene con la suma Or exclusivo:
0101 0111 Å 1000 0011 = 1101 0100 = D416

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 66
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de producto en GF(28) (1)
Vamos a multiplicar los valores hexadecimales 57 y 83:
A = 5716 = 0101 01112 B = 8316 = 1000 00112
que expresados en polinomios dentro de GF(28) serán:
A = 0101 01112 = x6 + x4 + x2 + x + 1
B = 1000 00112 = x7 + x + 1
Sea p(x) = x8 + x4 + x3 + x + 1 Þ x8 = x4 + x3 + x + 1
A*B = (x6 + x4 + x2 + x + 1)*(x7 + x + 1) mod 2
A*B = x13 + x11 + x9 + x8 + 2x7 + x6 + x5 + x4 + x3 + 2x2 + 2x +1
A*B = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1
Este resultado hay que reducirlo por p(x) = x8 + x4 + x3 + x + 1

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 67
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de producto en GF(28) (2)
Están fuera del cuerpo de 8 bits p(x): x8 = x4 + x3 + x + 1

A*B = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1

x13 = x5*x8 = x5*(x4 + x3 + x + 1) = x9 + x8 + x6 + x5


x13 = x *(x4 + x3 + x + 1) + (x4 + x3 + x + 1) + x6 + x5
x13 = (x5 + x4 + x2 + x) + (x4 + x3 + x + 1) + x6 + x5
x13 = x6 + x3 + x2 + 1 x13 = x6 + x3 + x2 + 1

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 68
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de producto en GF(28) (3)
Están fuera del cuerpo de 8 bits p(x): x8 = x4 + x3 + x + 1

A*B = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1

x11 = x3*x8 = x3*(x4 + x3 + x + 1) x11 = x7 + x6 + x4 + x3


x11 = x7 + x6 + x4 + x3
x9 = x*x8 = x*(x4 + x3 + x + 1) x9 = x5 + x4 + x2 + x
x9 = x5 + x4 + x2 + x
x8 = x4 + x3 + x + 1

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 69
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de producto en GF(28) (4)

x13 = x6 + x3 + x2 + 1 x11 = x7 + x6 + x4 + x3

x9 = x5 + x4 + x2 + x x8 = x4 + x3 + x + 1

A*B = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1


Reemplazando los cálculo anteriores en la expresión:

A*B = (x6 + x3 + x2 + 1) + (x7 + x6 + x4 + x3) + (x5 + x4 + x2 + x) +


+ (x4 + x3 + x + 1) + x6 + x5 + x4 + x3 + 1 mod 2
A*B = x7 + x6 + 1 = 1100 0001 = C116

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 70
© Jorge Ramió Aguirre Madrid (España) 2002
Transformaciones (capas) de RIJNDAEL
§ Hay tres transformaciones distintas llamadas capas en
las que se tratan los bits. Estas constan de:
§ Capa de Mezcla Lineal: en ella se busca la difusión de
los bits.
§ Capa No Lineal: se trata de una zona similar a las cajas
S del DES.
§ Capa Clave: operaciones con una función Xor de la
subclave y la información de esta etapa intermedia.
§ Las transformaciones realizadas en cada paso del
algoritmo se denominan estados; se representa por un
array de 4 filas. Fin del Tema 10

Curso de Seguridad Informática. Tema 10: Cifrado en Bloque con Clave Secreta. 71
© Jorge Ramió Aguirre Madrid (España) 2002
Tema 11
Cifrado con Mochilas de Clave Pública

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 24 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


El problema de la mochila (1)
El problema matemático de la mochila
referido ahora a números y no elementos
que entran en ella puede plantearse como
sigue:

Dada la siguiente secuencia de m números enteros


positivos S = {S1, S2, S3, ..., Sm-2, Sm-1, Sm} y un valor
u objetivo T, se pide encontrar un subconjunto de S
SS = {Sa, Sb, ..., Sj} que cumpla con el objetivo:
T = S SS = Sa + Sb + ... + Sj
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 2
© Jorge Ramió Aguirre Madrid (España) 2002
El problema de la mochila (2)

Si los elementos de la mochila son números grandes, no


están ordenados y no siguen una distribución supercreciente
-en este tipo de distribución el elemento iésimo Si de la
mochila es mayor que la suma de todos sus antecesores-, la
resolución de este problema es de tipo no polinomial.

Se trata de encontrar los vectores Vi de 0s y 1s de forma que:

S Si*Vi = T
i
Si se cumple esta relación, la mochila tiene solución.

Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 3
© Jorge Ramió Aguirre Madrid (España) 2002
Un ejemplo del problema de la mochila (1)
Tenemos la mochila S = {20, 5, 7, 36, 13, 2} con m = 6 y el
valor T = 35. Se pide encontrar una solución, si es que ésta
existe, en una única vuelta.

SOLUCIÓN: Sin hacer ningún cálculo mental, podemos


recorrer todos los valores (se puede descartar el elemento S4
pues es mayor que el objetivo T) de la mochila S, bien de
izquierda a derecha o al revés (da igual el sentido elegido) y
restaremos el elemento iésimo si es menor que el objetivo T
en esa etapa del algoritmo, como se indica:

Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 4
© Jorge Ramió Aguirre Madrid (España) 2002
Un ejemplo del problema de la mochila (2)
S = {S1, S2, S3, S4, S5, S6} = {20, 5, 7, 36, 13, 2} T = 35

S1 = 20 ¿Es menor que objetivo T = 35? Sí Þ T = 35-20 = 15


S2 = 5 ¿Es menor que objetivo T = 15? Sí Þ T = 15-5 = 10
S3 = 7 ¿Es menor que objetivo T = 10? Sí Þ T = 10-7 = 3
S4 = 36 ¿Es menor que objetivo T = 3? No Þ T=3
S5 = 13 ¿Es menor que objetivo T = 3? No Þ T=3
S6 = 2 ¿Es menor que objetivo T = 3? Sí Þ T = 3-2 = 1

Se ha recorrido toda la mochila y NO se ha encontrado solución.


En cambio sí existe una solución:
SS = {S1+S5+S6} = 20+13+2 = 35 Vi = [1,0,0,0,1,1]
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 5
© Jorge Ramió Aguirre Madrid (España) 2002
¿Puede haber soluciones múltiples?

Si para la misma mochila S = {20, 5, 7, 36, 13, 2} buscamos


ahora el valor T = 27, encontramos tres soluciones válidas:

SS1 = {S1+S3} = 20+7 SS2 = {S1+S2+S6} = 20+5+2


SS3 = {S2+S3+S5+S6} = 5+7+13+2

Esto sería inadmisible en un sistema de cifra puesto que el


resultado de una operación de descifrado debe ser única ya
que proviene de un único mensaje. La solución será el uso
de las denominadas mochilas simples en que la solución al
problema de la mochila, si existe, ES ÚNICA. A
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Mochilas simples

Una mochila es simple o


supercreciente si el elemento Sk
k-1

Sk > S Sj
es mayor que la suma de los j=1

elementos que le anteceden:


Por ejemplo, la mochila S = {2, 3, 7, 13, 28, 55, 110, 221}
con m = 8 elementos es supercreciente y la solución para un
objetivo T = 148 es única: Vi = [S2+S3+S5+S7].
Para resolver cualquier valor T válido para esta mochila,
ésta se recorre de derecha a izquierda una sola vez con el
algoritmo ya visto. Compruébelo para T = 289, 196 y 353.

Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 7
© Jorge Ramió Aguirre Madrid (España) 2002
Operación de cifra con mochila simple
Se representa la información en binario y se pasan los bits
por la mochila. Los bits 1s incluyen en la suma el elemento
al que apuntan y los bits 0s no.
Con la mochila S = {2, 4, 10, 19, 40} de m = 5 elementos
cifraremos el mensaje M = ADIOS.
SOLUCIÓN: Usando código ASCII/ANSI: A = 01000001;
D = 01000100; I = 01001001; O = 01001111; S = 01010011
M = 01000 00101 00010 00100 10010 10011 11010 10011
C = (4), (10+40), (19), (10), (2+19), (2+19+40), (2+4+19), (2+19+40)
C = 4, 50, 19, 10, 21, 61, 25, 61
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 8
© Jorge Ramió Aguirre Madrid (España) 2002
Descifrado con mochila simple
C = 4, 50, 19, 10, 21, 61, 25, 61 S = {2, 4, 10, 19, 40}
La operación de descifrado es elemental: pasamos por la
mochila los valores de C, encontramos el vector Vi y por
último agrupamos el resultado en grupos de 8 bits. En este
caso 4 = 4 Þ Vi = 01000, 50 = 40 + 10 Þ Vi = 00101, etc.

PROBLEMA: Es muy fácil cifrar, descifrar


y también criptoanalizar el sistema de cifra
porque se usa la mochila simple.

Mochilas de Merkle y Hellman Una solución


Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 9
© Jorge Ramió Aguirre Madrid (España) 2002
Mochila de Merkle y Hellman MH
• En 1978 Ralph Merkle y Martin Hellman proponen un
sistema de cifra de clave pública denominado Mochila con
Trampa de Merkle y Hellman.
• El algoritmo se basa en crear una mochila difícil a partir de
una mochila simple de forma que el cifrado se haga con la
mochila difícil y el descifrado con la mochila simple o
fácil. Se puede pasar fácilmente de la mochila simple a la
difícil o viceversa usando una trampa.
La trampa será nuestra clave secreta.
La mochila difícil será nuestra clave pública.
• Hay otros sistemas de cifra basados en la mochila.
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 10
© Jorge Ramió Aguirre Madrid (España) 2002
Diseño mochila de Merkle y Hellman (1)
1. Se selecciona una mochila supercreciente de m elementos
S’ = {S1’, S2’, ..., Sm’}.

2. Se elige un entero m (módulo de m

m > S Si’ más fácil:


trabajo) mayor que la suma de
i=1 m ³ 2*Sm’
los elementos de la mochila.

3. Se elige un entero w primo Se asegura


relativo con m. mcd(w,m) = 1 el inverso
Se recomienda que w no tenga factores con los elementos de S’

4. Se multiplica S’ por w mod m. Si = w*Si’ mod m

Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 11
© Jorge Ramió Aguirre Madrid (España) 2002
Diseño mochila de Merkle y Hellman (2)
5. Se calcula el inverso de w en el cuerpo m. w-1 = inv(w,m)

Clave privada: m, w-1 Esto se interpreta como


encontrar los vectores que
Clave pública: mochila S cumplan con un valor de T.

CIFRADO: DESCIFRADO:
C=S*M M = w-1 * C mod m
como S = w * S’ mod m Entonces obtenemos:
C = w * S’* M mod m S’* M
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 12
© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado mochila de Merkle y Hellman (1)
Vamos a cifrar el mensaje M = Sol usando la mochila simple y
supercreciente S’ = {3, 5, 12, 21}.
1. Elección de m: m ³ 2*S4 ³ 2*21 m = 45
2. Elección de w: mcd(w, m) = 1 w = 32 (w-1 = 38)
3. Mochila S: S = w * S’ mod m
S1 = 32 * 3 mod 45 = 96 mod 45 = 6
S2 = 32 * 5 mod 45 = 160 mod 45 = 25
S3 = 32 * 12 mod 45 = 384 mod 45 = 24
S4 = 32 * 21 mod 45 = 672 mod 45 = 42
Clave pública: S = {6,25,24,42} Clave privada: m=45, w-1=38
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 13
© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado mochila de Merkle y Hellman (2)

Clave pública: S = {6,25,24,42} Clave privada: m = 45, w-1 = 38

Como m = 4, cifraremos bloques de 4 bits,


convirtiendo el mensaje a su equivalente
en binario del código ASCII.

Cifrado: M = Sol = 0101 0011 0110 1111 0110 1100


C = (25+42), (24+42), (25+24), (6+25+24+42), (25+24), (6+25)

C = 67, 66, 49, 97, 49, 31

Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 14
© Jorge Ramió Aguirre Madrid (España) 2002
Descifrado mochila de Merkle y Hellman
Clave pública: S = {6,25,24,42} Clave privada: m = 45, w-1 = 38

Cifrado: M = Sol = 0101 0011 0110 1111 0110 1100


C = (25+42), (24+42), (25+24), (6+25+24+42), (25+24), (6+25)
C = 67, 66, 49, 97, 49, 31
Como S’ = {3,5,12,21}
Descifrado:
38*67 mod 45=2546 mod 45 = 26 38*97 mod 45=3686 mod 45 = 41
38*66 mod 45=2508 mod 45 = 33 38*49 mod 45=1862 mod 45 = 17
38*49 mod 45=1862 mod 45 = 17 38*31 mod 45=1178 mod 45 = 8
M = 0101 0011 0110 1111 0110 1100 = Sol
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 15
© Jorge Ramió Aguirre Madrid (España) 2002
Valores de diseño de mochilas M-H (1)
Merkle y Hellman proponen los siguientes parámetros:
a) Tamaño de la mochila m ³ 100
b) Módulo m uniforme en el siguiente intervalo:
Intervalo m: [22m+1+1, 22m+2-1] Þ 2m+2 bits
Si m = 100: todos los elementos de S son de 202 bits.
c) Valores de Si’ elegidos uniformemente en el intervalo:
Intervalo Si’: [(2i-1-1)*2m +1, 2i-1*2m]
Si m = 100: 1 £ S1’ £ 2100 £ S2’ £ 2101 £ S3’ £ 2102 ...
d) Elegir un valor x en el intervalo [2, m-2]. El factor w se
calcula como: w = mcd (m, x)
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 16
© Jorge Ramió Aguirre Madrid (España) 2002
Mochila con parámetros proporcionales (1)

a) Mochila con m = 6 Todos los elementos serán de (2m+2) = 14 bits

b) Intervalo m: [22m+1+1, 22m+2-1] = [22*6+1+1, 22*6 +2-1]


= [213+1, 214+1] = [8.193, 16.385] m = 13.515

c) Elección de los valores S’i: UNA ELECCIÓN


i=1 : [(21-1-1)*26+1, (21-1) *26] 1 £ S1’ £ 64 S1’ = 39
i=2 : [(22-1-1)*26+1, (22-1) *26] 65 £ S2’ £ 128 S2’ = 72
i=3 : [(23-1-1)*26+1, (23-1) *26] 193 £ S3’ £ 256 S3’ = 216
i=4 : [(24-1-1)*26+1, (24-1) *26] 449 £ S4’ £ 512 S4’ = 463
i=5 : [(25-1-1)*26+1, (25-1) *26] 961 £ S5’ £ 1.024 S5’ = 1.001
i=6 : [(26-1-1)*26+1, (26-1) *26] 1.985 £ S6’ £ 2.048 S6’ = 1.996
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 17
© Jorge Ramió Aguirre Madrid (España) 2002
Mochila con parámetros proporcionales (2)
d) Cálculo del factor w. Buscamos un valor x en el intervalo
[2, m-2] = [2, 13513], por ejemplo x = 9.805.
Como el máximo común divisor entre m = 13.515 y x = 9.805
es 265, luego w = 9.805/265 = 37.
Vamos a elegir:
w = 37 de forma que w-1 = 4.018 inv (37,13.515) = 4.018
Luego, la mochila simple y la clave privada serán:
S’ = {39, 72, 216, 463, 1.001, 1.996}
Módulo: m = 13.515 w-1 = 4.018
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 18
© Jorge Ramió Aguirre Madrid (España) 2002
Mochila con parámetros proporcionales (3)
Mochila simple:
S’ = {39, 72, 216, 463, 1.001, 1.996} Módulo: m = 13.515
Factor multiplicador: w = 37; w-1 = 4018 Clave privada

S1 = 39*37 mod 13515 = 1.443


S2 = 72*37 mod 13515 = 2.664
S3 = 216*37 mod 13515 = 7.882
S4 = 463*37 mod 13515 = 3.616
S5 = 1.001*37 mod 13515 = 10.007
S6 = 1.996*37 mod 13515 = 6.277
Mochila difícil:
S = {1.443, 2.664, 7.882, 3.616, 10.007, 6.277} Clave pública
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 19
© Jorge Ramió Aguirre Madrid (España) 2002
Fortaleza de las mochilas M-H
En el año 1982 Adi Shamir y Richard Zippel encuentran
debilidades a las mochilas de Merkle-Hellman:
• Si se conoce el módulo m (o puede deducirse) ...
• Y si los dos primeros elementos (S1 y S2) de la mochila
difícil se corresponden con los dos primeros elementos
(S1’ y S2’) de la mochila simple y son primos con m ...
• Entonces podemos generar la mochila simple a partir de la
difícil ya que encontraremos la clave secreta w-1 ... M
• Esta debilidad, aunque tenga fuertes restricciones, no hace
recomendable el uso de las mochilas M-H para el cifrado
de la información ... L
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 20
© Jorge Ramió Aguirre Madrid (España) 2002
Criptoanálisis de Shamir y Zippel
El ataque para m = 100 supone:
a) Que los dos primeros elementos de S’ de 100 y 101 bits
son mucho más pequeños que el módulo m de 202 bits.
b) Que podemos identificar los elementos S1 y S2 en la
mochila difícil y hacerlos corresponder con S1’ y S2’.
c) Que conocemos el módulo m o podemos deducirlo.
• Con estos datos se trata de encontrar los valores de S1’ y
S2’ además del factor de multiplicación w.
• Con estos valores podemos generar la mochila fácil.
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 21
© Jorge Ramió Aguirre Madrid (España) 2002
Pasos del ataque de Shamir y Zippel (1)

1. Se calcula q = (S1/S2) mod m


Como Si = Si’* w mod m entonces:
q = (S1’/S2’) mod m = [S1’* inv(S2’, m)] mod m
Esto implica una condición: mcd (S2’, m) = 1
2. Se calculan todos los múltiplos modulares del valor q con
multiplicadores en el rango [1, 2m+1] = [1, 2101]
CM = {1*q mod m, 2*q mod m, ..., 2m+1*q mod m}
3. El candidato para S1’ será el valor más pequeño de CM.

Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 22
© Jorge Ramió Aguirre Madrid (España) 2002
Pasos del ataque de Shamir y Zippel (2)
4. Encontrado el candidato para S1’se calcula:
w = (S1/S1’) mod m = [S1* inv(S1’, m)] mod m
Esto implica una nueva condición: mcd (S1’, m) = 1
5. Conocido w encontramos w-1 = inv(w, m) y así calculamos
todos los elementos de la mochila Si’ = Si * w-1 mod m que
debería ser del tipo supercreciente.
6. Si no se genera una mochila supercreciente, se elige el
siguiente valor más pequeño del conjunto CM y así hasta
recorrer todos sus valores. Si con este conjunto CM no se
obtiene una mochila simple, se repite el punto 2 tomando
ahora valores en el rango 2m+i con i = 2, 3, ...
Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 23
© Jorge Ramió Aguirre Madrid (España) 2002
Usos de protección con mochilas
Existen varios algoritmos propuestos como sistemas de cifra
usando el problema de la mochila: el de Graham-Shamir,
Chor-Rivest, etc.
No obstante todos han sucumbido a los criptoanálisis y en la
actualidad en el único entorno que se usan es en la protección
de diversos programas de aplicación, en forma de hardware
que se conecta en la salida paralela del computador para
descifrar el código ejecutable de esa aplicación dejando, sin
embargo, activa la salida a impresora. De esta manera sólo en
aquel sistema con la mochila instalada se puede ejecutar el
programa. Fin del Tema 11

Curso de Seguridad Informática. Tema 11: Cifrado con Mochilas de Clave Pública. 24
© Jorge Ramió Aguirre Madrid (España) 2002
Tema 12
Cifrado Exponencial

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 32 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Cifrado exponencial con clave del receptor
• En el cifrado del mensaje Ee(M) = C y en el descifrado
del criptograma Ed(C) = M, se usa una exponenciación.
• En la operación de cifrado, el subíndice e significa el uso
de la clave pública del receptor (R) en el extremo emisor
y el subíndice d el uso de la clave privada del receptor
(R) en el extremo receptor.

C = EeR(M) = MeR mod nR Þ M = EdR(C) = CdR mod nR

Esta operación se usará para realizar el intercambio de


una clave de sesión entre un emisor y un receptor.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 2


© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado exponencial con clave del emisor
• En la operación de cifrado el subíndice d significa el uso
de la clave privada del emisor (E) en el extremo emisor y
el subíndice e el uso de la clave pública del emisor (E) en
el extremo receptor.

C’ = EdE(M) = MdE mod nE Þ M = EeE(C’) = C’eE mod nE

Esta operación se usará para autenticar la identidad de un


usuario mediante una firma digital al igual que la
integridad del mensaje.
En ambos casos, la operación en emisión como en recepción se
hace sobre un bloque de unas pocas centenas de bits.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 3


© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado exponencial genérico tipo RSA
Sea el grupo de trabajo n = p*q Þ f(n) = (p-1)(q-1)
Se eligen una clave pública e y una privada d de forma que:
e*d mod f(n) = 1 Þ e*d = k(p-1)(q-1) + 1.

Si e*d = kf(n) + 1 Por el Teorema del Resto


Chino se tiene que:
Por el Teorema de Euler y ... Med = M mod n
se tiene que: ssi Med = M mod p
Mkf(n) mod n = 1 Med = M mod q
para todo M primo con n Válido para cualquier valor M

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 4


© Jorge Ramió Aguirre Madrid (España) 2002
Comprobación de recuperación de texto

Al cifrar el mensaje M con una clave pública e (en este caso


para intercambio de clave, aunque es igual de válido con una
clave d en caso de firma digital) tenemos:
Cifrado: C = Me mod n
Descifrado: Cd mod n = (Me)d mod n = Med mod n
Cd mod n = Mkf(n)+1 mod n = M*Mkf(n) mod n
Cd mod n = M*1 mod n = M mod n
Por lo tanto, la operación Cd mod n recupera el mensaje M.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 5


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de cifrado exponencial genérico
Sea n = p*q = 5*11 = 55 Þ f(n) = (5-1)(11-1) = 40
Mensaje M = 50 = 2*52 (debe ser un elemento de n)
Se elige e = 3 Þ d = inv[e, f(n)] = inv (3,40) = 27
e*d mod f(n) = 3*27 mod 40 = 81 mod 40 = 1
C = Me mod n = 503 mod 55 = (2*52)3 mod 55
C = [(2)3 mod 55 * (52)3 mod 55] mod 55 - por reducibilidad â -
M = Cd mod n = {[(2)3 mod 55 * (52)3 mod 55] mod 55}27 mod 55
M = [(2)3*27 mod 55 * (52)3*27 mod 55] mod 55
M = [22f(n)+1 * 52f(n)+1 * 52f(n)+1] mod 55
Por el Teorema de Euler y del Resto Chino = 2 * 5 * 5 mod 55 = 50
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Intercambio de claves de Diffie y Hellman
• El comienzo de los sistemas de clave pública se debe al estudio
hecho por Whitfield Diffie y Martin Hellman (1976).
Protocolo de Intercambio de Claves de Diffie y Hellman
• A y B seleccionan un grupo multiplicativo (con inverso) p
y un generador a de dicho primo, ambos valores públicos.
• A genera un número aleatorio a y envía a B aa mod p.
• B genera un número aleatorio b y envía a A ab mod p.
• B calcula (aa)b mod p = aab mod p y luego destruye b.
• A calcula (ab)a mod p = aba mod p y luego destruye a.
• El secreto compartido por A y B es el valor aab mod p.
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 7
© Jorge Ramió Aguirre Madrid (España) 2002
Intercambio de claves de Diffie y Hellman

Un intruso que conozca las claves públicas p y a e


intercepte el valor aa mod p que ha transmitido A y
el valor ab mod p transmitido por B no podrá
descubrir los valores de a, b ni aab mod p ...

salvo que se enfrente al Problema del Logaritmo


Discreto (PLD) que, como ya hemos visto, se
vuelve computacionalmente intratable para valores
del primo p grandes.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 8


© Jorge Ramió Aguirre Madrid (España) 2002
Condiciones intercambio de claves de D-H
CONDICIONES DEL PROTOCOLO:
• El módulo p debe ser un primo grande, al menos 512 bits.
• Interesa que el valor (p-1)/2 también sea primo.
• El generador a debe ser una raíz primitiva del módulo p.
L Si el módulo es un primo pequeño, se puede hacer un ataque por
fuerza bruta dentro de un tiempo razonable.
L Si el generador no es una raíz primitiva del grupo p, entonces la
operación ai mod p (1 £ i £ p-1) no genera todos los restos del
grupo y esto facilita el ataque por fuerza bruta.
Ejemplo
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 9
© Jorge Ramió Aguirre Madrid (España) 2002
La necesidad de una raíz a en el protocolo
MALA ELECCIÓN DE LOS PARÁMETROS:
Sean el grupo de trabajo p = 13 y un valor a = 3 ... entonces
31 mod 13 = 3 32 mod 13 = 9 33 mod 13 = 1
34 mod 13 = 3 35 mod 13 = 9 36 mod 13 = 1
37 mod 13 = 3 38 mod 13 = 9 39 mod 13 = 1
310 mod 13 = 3 311 mod 13 = 9 312 mod 13 = 1
Se repiten los restos 3, 9 y 1 porque 3 no es un generador de Z13.
Un ataque por fuerza bruta deberá buscar sólo en una tercera parte
del espacio de claves y, lo que es peor, la probabilidad de éxito de
encontrar un valor verdadero b en ab mod p aumenta de 1/12 a 1/3.
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 10
© Jorge Ramió Aguirre Madrid (España) 2002
La necesidad de una raíz a en el protocolo
¿Y si ahora a = 2 ?

Primero intente calcularlo... y luego para comprobar sus resultados, avance.

21 mod 13 = 2 22 mod 13 = 4 23 mod 13 = 8


24 mod 13 = 3 25 mod 13 = 6 26 mod 13 = 12
27 mod 13 = 11 28 mod 13 = 9 29 mod 13 = 5
210 mod 13 = 10 211 mod 13 = 7 212 mod 13 = 1
Ahora sí están todos los restos multiplicativos del cuerpo Z13
porque el resto 2 es un generador dentro de este cuerpo.
Además del 2, ¿qué otros restos Serán generadores
serán generadores en Z13? g = 2, 6, 7, 11.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 11


© Jorge Ramió Aguirre Madrid (España) 2002
¿Es vulnerable el protocolo de D- H?
• A elige un número a con 1 < a < p-1 y envía a B a a mod p
• C intercepta este valor, elige un número c con 1 < c < p-1 y
envía a B a c mod p
• B elige un número b con 1 < b < p-1 y envía a A a b mod p
• C intercepta este valor y envía a A a c mod p (valor anterior)
• A y B calculan sus claves kA = (ac)a mod p, kB = (ac)b mod p
• C calcula también las claves: ¿Qué hacer? La solución a
• kCA = (aa)c mod p este problema
es el sellado
• kCB = (ab)c mod p de tiempo

Por lo tanto, a partir de ahora C tiene “luz verde” y puede


interceptar todos los mensajes que se intercambian A y B.
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 12
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo de cifra RSA
En febrero de 1978 Ron Rivest, Adi Shamir y Leonard Adleman
proponen un algoritmo de cifra de clave pública: RSA
Algoritmo
1. Cada usuario elige un grupo n = p*q. Trabajará por tanto en Zn.
2. Los valores p y q no se hacen públicos.
3. Cada usuario calcula f(n) = (p-1)(q-1).
4. Cada usuario elige una clave pública e que sea parte del cuerpo n
y que cumpla: mcd [e, f(n)] = 1.
5. Cada usuario calcula la clave privada d = inv [e,f(n)].
6. Se hace público el grupo n y la clave e. Pueden destruirse
7. Se guarda en secreto la clave d. ahora p, q y f(n).

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 13


© Jorge Ramió Aguirre Madrid (España) 2002
Fortaleza del algoritmo RSA
¿Qué fortaleza tendrá este algoritmo ante ataques?

F El intruso que desee conocer la clave secreta d a


partir de los valores públicos n y e se enfrentará al
Problema de la Factorización de Números Grandes
(PFNG) puesto que la solución para conocer esa
clave privada pasa por deducir el valor del Indicador
de Euler f(n) = (p-1)(q-1) para así poder encontrar el
inverso de la clave pública d = inv [e,f(n)].
F Existen, no obstante, otros tipos de ataques a este
sistema que no pasan por la factorización de n.
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 14
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de cifrado y descifrado con RSA
Grupo n = 91 = 7*13; f(n) = f(7*13) = (7-1)(13-1) = 72 M = 48
Elegimos e = 5 pues mcd (5,72) = 1 \ d = inv(5,72) = 29
CIFRADO:
C = Me mod n = 485 mod 91 = 5245.803.968 mod 91 = 55
DESCIFRADO:
M = Cd mod n = 5529 mod 91 = 48 ... 5529 ya es “número grande”
5529 es un número con 51 dígitos...
5529 = 295473131755644748809642476009391248226165771484375
¿Cómo podemos acelerar esta operación?

N C
¿Algo más óptimo?
1ª opción: usar reducibilidad Exponenciación rápida

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 15


© Jorge Ramió Aguirre Madrid (España) 2002
Un método de exponenciación rápida
j
x2
• En xy mod n se representa el exponente y en binario.
j
• Se calculan los productos x2
con j = 0 hasta n-1, siendo n
el número de bits que representan el valor y en binario.
• Sólo se toman en cuenta los productos en los que en la
posición j del valor y en binario aparece un 1.

Ejemplo

Calcular z = 1237 mod 221 = 207


1237 es un número de 40 dígitos

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 16


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de exponenciación rápida
Calcular z = 1237 mod 221 = 207 122 mod 221
1442 mod 221
3710 = 1001012 x = 12 j 0 1 2 3 4 5
j
interesante
2
x mod 221 12 144 183 118 1 1
Bits 5 4 3 2 1 0
z = 12*183*1 mod 221 = 207
En vez de 36 multiplicaciones y sus reducciones módulo
221 en cada paso ... 72 operaciones...
Hemos realizado cinco multiplicaciones (para j = 0 el valor
es x) con sus reducciones módulo 221, más dos al final y su
correspondiente reducción. Un ahorro superior al 80% J.
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 17
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo de exponenciación rápida
Hallar x = AB
mod n Ejemplo: calcule 1983 mod 91 = 24
8310 = 10100112 = b6b5b4b3b2b1b0
• Obtener representación
binaria del exponente B x=1
de k bits: i=6 b6=1 x = 12*19 mod 91 = 19 x = 19
B2 ® bk-1bk-2...bi...b1b0 i=5 b5=0 x = 192 mod 91 = 88 x = 88
• Hacer x = 1 i=4 b4=1 x = 882 *19 mod 91 = 80 x = 80
• Para i = k-1, ..., 0 hacer i=3 b3=0 x = 802 mod 91 = 30 x = 30
x = x2 mod n i=2 b2=0 x = 302 mod 91 = 81 x = 81
Si (bi = 1) entonces i=1 b1=1 x = 812 *19 mod 91 = 80 x = 80
x = x*A mod n i=0 b0=1 x = 802 *19 mod 91 = 24 x = 24

1983 = 1,369458509879505101557376746718e+106 (calculadora Windows)


Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 18
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo de cifra de ElGamal
Taher ElGamal propone en 1985 un algoritmo de cifra
que hace uso del Problema del Logaritmo Discreto PLD.

Características
o Se elige un grupo multiplicativo Zp*, p es primo grande.
o Del grupo p se elige una raíz a, generador del grupo.
o Cada usuario elige un número aleatorio l dentro de p.
o Esta será la clave privada. Para descubrir la clave privada
el atacante deberá enfrentarse
o Cada usuario calcula al mod p. al Problema del Logaritmo
o Junto con p es la clave pública. Discreto para un valor p alto.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 19


© Jorge Ramió Aguirre Madrid (España) 2002
Operación de cifra con ElGamal
Operación Cifrado: A cifra un mensaje M que envía a B
ü El usuario B ha elegido su clave privada b dentro del
cuerpo del número primo p que es público.
ü El usuario B ha hecho pública su clave ab mod p.
ü El emisor A genera un número aleatorio n de sesión y
calcula an mod p.
ü Con la clave pública de B (ab) el emisor A calcula:
ü (ab)n mod p y M*(ab)n mod p
ü A envía a B el par: C = [an mod p, M * (ab)n mod p]
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 20
© Jorge Ramió Aguirre Madrid (España) 2002
Operación de descifrado con ElGamal
Operación Descifrado: B descifra el criptograma C que envía A
ü El usuario B recibe C = [an mod p, M * (ab)n mod p].
ü B toma el valor an mod p y calcula (an)b mod p.
ü B descifra el criptograma C haciendo la siguiente división:
[M * (ab)n mod p ] / [(an)b mod p] (ab)n = (an)b
ü El paso anterior es posible hacerlo porque existirá el
inverso de (an)b en el grupo p al ser p un primo. Luego:
[M * (ab)n * {inv (an)b, p}] mod p = M

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 21


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de cifrado con ElGamal
Adelaida (A) enviará a Benito (B) el mensaje M = 10 cifrado
dentro del cuerpo p = 13 que usa Benito.
CIFRADO
Claves públicas de Benito: p = 13, a = 6, (ab) mod p = 2
Adelaida A elige por ejemplo n = 4 y calcula:
(an) mod p = 64 mod 13 = 9
(ab)v mod p = 24 mod 13 = 3
M*(ab)v mod p = 10*3 mod 13 = 4
Envía a B (an) mod p, M*(ab)v mod p = [9, 4]
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 22
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de descifrado con ElGamal
DESCIFRADO
La clave privada de Benito es b = 5
Benito recibe: [(an) mod p, M*(ab)v mod p] = [9, 4]
Benito calcula:
(an)b mod p = 95 mod 13 = 3
[M*(ab)v] * inv[(an)b, p] = 4 * inv (3, 13) = 4 * 9
M = 4 * 9 mod 13 = 10 (se recupera el mensaje)
Recuerde que a debe ser una raíz de p. Como ya hemos
visto, si a no es una raíz, aunque sí puede hacerse la cifra,
se facilitará el ataque al Problema del Logaritmo Discreto.
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 23
© Jorge Ramió Aguirre Madrid (España) 2002
Consideraciones sobre el bloque

Si el mensaje M es mayor que el módulo de trabajo


(n = p*q para RSA y p para ElGamal)
¿cómo se generan los bloques del mensaje a cifrar?

El mensaje M se transforma en
números y éstos se dividen en bloques
de de g-1 dígitos, siendo g el número
de dígitos del módulo de trabajo: el
valor n para RSA y p para ElGamal.

Ejemplo
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 24
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de elección del bloque con RSA
Se representará el mensaje en su valor ANSI decimal.
n = p*q = 89*127 = 11.303 Þ bloques de cuatro dígitos
f(n) = 11.088; e = 25; d = inv (25, 11.088) = 10.201
M = Olé = 079 108 233 Þ M = 0791 0823 3
Se recupera el mensaje agrupando en
bloques de 4 dígitos excepto el último
CIFRADO DESCIFRADO
C1 = 79125 mod 11.303 = 7.853 M1 = 7.85310201 mod 11.303 = 0791
C2 = 82325 mod 11.303 = 2.460 M2 = 2.46010201 mod 11.303 = 0823
C3 = 325 mod 11.303 = 6.970 M3 = 6.97010201 mod 11.303 = 3

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 25


© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo de cifra de Pohlig y Hellman (1)
Stephen Pohlig y Martin Hellman proponen en enero de 1978
(sólo un mes antes que el RSA) un algoritmo de cifra de clave
secreta que hace uso del problema del Logaritmo Discreto

Características
v Se elige un grupo multiplicativo Zp*, p es un primo grande.
v Cada usuario elige una clave e, que sea primo relativo con el
grupo f(p) = p-1 y luego calcula d = inv (e, f(p)].
v La clave secreta serán los valores e y d.

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 26


© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo de cifra de Pohlig y Hellman (2)

CIFRADO DESCIFRADO
C = Me mod p M = Cd mod p

Para romper la cifra, el atacante se enfrentará al Problema


del Logaritmo Discreto PLD, que para un valor de p alto es
computacionalmente intratable.
El algoritmo es anterior al RSA pero al ser de clave secreta,
carece de firma digital. Además, no puede competir en
velocidad con los algoritmos típicos de clave secreta como
DES, TDES, IDEA, RC2, CAST, etc.

Ejemplo
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 27
© Jorge Ramió Aguirre Madrid (España) 2002
Operación de cifra Pohlig y Hellman
A cifra un mensaje M que envía a B
p = 263 Þ f(p) = 262; e = 15 Þ d = inv(15,262) = 35
Sea M = Adiós = 65 100 105 243 115
Como se usa el código ANSI, podremos cifrar en bloques
de un carácter pues el módulo p es algo mayor que 256.
Operación Cifrado:
C = Me mod p = 6515 mod 263; 10015 mod 263;
10515 mod 263; 24315 mod 263; 11515 mod 263
C = 245; 143; 179; 86; 101
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 28
© Jorge Ramió Aguirre Madrid (España) 2002
Operación de descifrado Pohlig y Hellman

B descifra el criptograma C enviado por A


p = 263; d = inv(15,262) = 35
C = 245; 143; 179; 86; 101

Operación Descifrado:
M = Cd mod p = 24535 mod 263; 14335 mod 263;
17935 mod 263; 8635 mod 263; 10135 mod 263
M = 065; 100; 105; 243; 115
Convirtiéndolo al código ANSI: M = Adiós
Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 29
© Jorge Ramió Aguirre Madrid (España) 2002
Fortaleza de la cifra exponencial
El problema de la Factorización de Números Grandes PFNG
tiene una complejidad similar al del Logaritmo Discreto PLD:
ambos suponen un tiempo de ejecución no polinomial.
Número de pasos que debe realizar el algoritmo PFNG:
eÖ{ln(n)*ln[ln(n)]} Sistema que consuma
1 mseg por paso:
n = 60 dígitos Þ 2,7*1011 pasos 3 días
n = 100 dígitos Þ 2,3*1015 pasos 74 años
n = 200 dígitos Þ 1,2*1023 pasos 3,8*109 años

El PLD es equivalente: número de pasos » eÖ{ln(p)*ln[ln(p)]}


Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 30
© Jorge Ramió Aguirre Madrid (España) 2002
Elección de los números primos
Los valores primos deben elegirse apropiadamente:
Sistema RSA
a) p y q deben diferir en unos pocos dígitos.
¿Cómo?
b) p y q no deben ser primos muy cercanos.
c) Longitud mínima de p y q: 250 bits.
d) Valores de (p-1) y (q-1) del Indicador de
Euler deben tener factores primos grandes.
e) El mcd entre p-1 y q-1 debe ser pequeño.

Para el sistema de ElGamal basta elegir un primo muy grande


Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 31
© Jorge Ramió Aguirre Madrid (España) 2002
Números primos seguros

Primos seguros: se elige r un primo grande de modo que:


p = 2*r + 1 y q = 2*p + 1 también sean primos

EJEMPLO: Si r es el primo de 4 dígitos 1.019:


p = 2*1.019 + 1 = 2.039 Es primo C
q = 2*2.039 + 1 = 4.079 Es primo C
p-1 = 2.038; q-1 = 4.078 Cumplen la condición
p-1 = 2*1.019; q-1 = 2*2.039 mcd (p, q) = 2

El módulo será n = p*q = 8.317.081 Fin del Tema 12

Curso de Seguridad Informática. Tema 12: Cifrado Exponencial. 32


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 13
Funciones Hash

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 29 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Uso de las funciones hash en criptografía
Una de las aplicaciones más interesantes de la
criptografía, que comienza en el año 1976 cuando
Diffie y Hellman presentan el modelo de cifrado
asimétrico con clave pública, es la posibilidad real de
incluir en un mensaje una firma digital. Con los
sistemas de clave simétrica esto era inviable.

No obstante, dado que los sistemas de clave pública


son muy lentos, en vez de firmar digitalmente el
mensaje completo, en un sistema criptográfico se
incluirá como firma una operación con clave privada
sobre un resumen o hash de sólo una centena de bits.

Curso de Seguridad Informática. Tema 13: Funciones Hash. 2


© Jorge Ramió Aguirre Madrid (España) 2002
Funciones hash
Mensaje = M Þ Función Resumen = H(M)
Firma (rúbrica): r = EdE{H(M)}
dE es la clave privada del emisor que firmará H(M)
¿Cómo se comprueba la identidad en destino?
Se descifra la rúbrica r con la clave pública del
emisor eE. Al mensaje en claro recibido M’ (se
descifra si viene cifrado) se le aplica la misma
función hash que en emisión. Si los valores son
iguales, la firma es auténtica y el mensaje íntegro:
Calcula: EeE(r) = H(M)
¿Qué seguridad nos da
Compara: ¿H(M’) = H(M)? un resumen de k bits?

Curso de Seguridad Informática. Tema 13: Funciones Hash. 3


© Jorge Ramió Aguirre Madrid (España) 2002
Propiedades de las funciones hash
H(M) será segura si tiene las siguientes características:
1. Unidireccionalidad.Conocido un resumen H(M), debe
ser computacionalmente imposible encontrar M a
partir de dicho resumen.
2. Compresión. A partir de un mensaje de cualquier
longitud, el resumen H(M) debe tener una longitud
fija. Lo normal es que la longitud de H(M) sea menor.
3. Facilidad de cálculo.
Debe ser fácil calcular H(M) a
partir de un mensaje M.
4. Difusión.
El resumen H(M) debe ser una función
compleja de todos los bits del mensaje M.
Curso de Seguridad Informática. Tema 13: Funciones Hash. 4
© Jorge Ramió Aguirre Madrid (España) 2002
Colisiones: resistencia débil y fuerte
Conocido M, será computacionalmente
5. Colisión simple.
imposible encontrar otro M’ tal que H(M) = H(M’). Se
conoce como resistencia débil a las colisiones.
Será computacionalmente difícil
6. Colisión fuerte.
encontrar un par (M, M’) de forma que H(M) = H(M’).
Se conoce como resistencia fuerte a las colisiones.

Ataque por la paradoja del cumpleaños


Para tener confianza en encontrar dos mensajes con el mismo
resumen H(M) -probabilidad ³ 50%- no habrá que buscar en
2n (p.e. 2128), bastará una búsqueda en el espacio 2n/2 (264).
¡La complejidad algorítmica se reduce de forma drástica!
Curso de Seguridad Informática. Tema 13: Funciones Hash. 5
© Jorge Ramió Aguirre Madrid (España) 2002
La paradoja del cumpleaños
Paradoja del cumpleaños

Problema: Cuál será la confianza (probabilidad mayor que el 50%) de que


en un aula con 365 personas -no se tiene en cuenta el día 29/02 de los años
bisiestos- dos de ellas al azar cumplan años en la misma fecha.
Solución: Se escribe en la pizarra los 365 días del año y entran al aula de
uno en uno, borrando el día de su cumpleaños de la pizarra. Para alcanzar
esa confianza, basta que entren 23 personas al aula, un valor muy bajo, en
principio inimaginable y de allí el nombre de paradoja.
Explicación: El primero en entrar tendrá una probabilidad de que su número
no esté borrado igual a n/n = 1, el segundo de (n-1)/n, etc. La probabilidad p
de no coincidencia será igual a p = n!/(n-k)nk. Para k = 23 se tiene p = 0,493
y entonces la probabilidad de coincidencia es 0,507. Interesante ... J

Curso de Seguridad Informática. Tema 13: Funciones Hash. 6


© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmos de resumen (compresión)
• MD5: Ron Rivest 1992. Mejoras al MD4 y MD2 (1990), es más lento
pero con mayor nivel de seguridad. Resumen de 128 bits.
• SHA-1: Del NIST, National Institute of Standards and Technology,
1994. Similar a MD5 pero con resumen de 160 bits.
• RIPEMD: Comunidad Europea, RACE, 1992. Resumen de 160 bits.
• N-Hash: Nippon Telephone and Telegraph, 1990. Resumen de 128
bits.
• Snefru: Ralph Merkle, 1990. Resúmenes entre 128 y 256 bits. Ha sido
criptoanalizado y es lento.
• Tiger: Ross Anderson, Eli Biham, 1996. Resúmenes de hasta 192 bits.
Optimizado para máquinas de 64 bits (Alpha).
• Panama: John Daemen, Craig Clapp, 1998. Resúmenes de 256 bits de
longitud. Trabaja en modo función hash o como cifrador de flujo.
• Haval: Yuliang Zheng, Josef Pieprzyk y Jennifer Seberry, 1992.
Admite 15 configuraciones diferentes. Hasta 256 bits.
Curso de Seguridad Informática. Tema 13: Funciones Hash. 7
© Jorge Ramió Aguirre Madrid (España) 2002
Message Digest 5, MD5
Algoritmo básico MD5
a) Un mensaje M se convierte en un bloque múltiplo de 512
bits, añadiendo bits si es necesario al final del mismo.
b) Con los 128 bits de cuatro vectores iniciales de 32 bits
cada uno y el primer bloque del mensaje de 512 bits, se
realizan diversas operaciones lógicas entre ambos.
c) La salida de esta operación (128 bits) se convierte en el
nuevo conjunto de vectores; se realiza la misma función
con el segundo bloque de 512 bits del mensaje ... etc.
d) Al terminar, el algoritmo entrega un resumen que
corresponde a los últimos 128 bits de estas operaciones.
Curso de Seguridad Informática. Tema 13: Funciones Hash. 8
© Jorge Ramió Aguirre Madrid (España) 2002
Etapas de MD5

Bloques funcionales de MD5 Esquema

a) Añadir bits para congruencia módulo 512,


reservando los últimos 64 bits para un indicador.
b) Añadir indicación de la longitud del mensaje
con los 64 bits reservados.
c) Inicializar el buffer de claves MD (vector).
d) Procesar bloques de 512 bits.
e) Obtener el resumen de los últimos 128 bits.

Curso de Seguridad Informática. Tema 13: Funciones Hash. 9


© Jorge Ramió Aguirre Madrid (España) 2002
Esquema de la función MD5
Relleno de 1 a 448 bits K mod 264
Mensaje de K bits
(64 bits)
Mensaje 1000... K

L*512 bits = N* 32 bits A16 = 01234567


N palabras de 32 bits B16 = 89ABCDEF
C16 = FEDCBA98
512 bits D16 = 76543210

Y1 Y2 Yq YL-1

RESUMEN
HMD5 HMD5 HMD5 HMD5
ABCD Primer resumen
de 128 bits

Curso de Seguridad Informática. Tema 13: Funciones Hash. 10


© Jorge Ramió Aguirre Madrid (España) 2002
Bloque principal de MD5
¿Qué hacen las funciones F y FF...?
Bloque principal
1er bloque de 512 Nuevo Vector ABCD
bits del mensaje M de 128 bits para el
Vector próximo bloque
inicial
A Vuelta Vuelta Vuelta Vuelta A
+
B 1 2 3 4 B
+
C C
Funciones Funciones Funciones Funciones +
D D
F y FF G y GG H y HH I e II +

+ SUMA MÓDULO 232

Curso de Seguridad Informática. Tema 13: Funciones Hash. 11


© Jorge Ramió Aguirre Madrid (España) 2002
Esquema funciones F, G, H, I en MD5
Vector inicial ABCD a b c d
128 bits
A16 = 01234567
B16 = 89ABCDEF
Función no Lineal
C16 = FEDCBA98
D16 = 76543210 x, y, z Þ b, c, d

F (x, y, z) F (b, c, d)
(x AND y) OR (NOT x AND z) (b AND c) OR (NOT b AND d)
G (x, y, z) G (b, c, d)
(x AND z) OR (y AND NOT z) (b AND d) OR (c AND NOT d)
H (x, y, z) H (b, c, d)
x XOR y XOR z b XOR c XOR d
I (x, y, z) I (b, c, d)
y XOR (x OR NOT z) c XOR (b OR NOT d)
Curso de Seguridad Informática. Tema 13: Funciones Hash. 12
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo de las funciones en MD5
Desplazamiento del registro da ab bc dc
Situación luego del desplazamiento

Se repite el proceso para Función no lineal


Mj+1 hasta 16 bloques del
texto. En las vueltas 2, 3 y 4 +
32 bits
se repite el proceso ahora + Mj
con funciones G, H e I. 32 bits
+ tj
El algoritmo realiza sj bits a la
4*16 = 64 vueltas <<< sj
izquierda
+
para cada uno de los
bloques de 512 bits + Suma
mod 232

Curso de Seguridad Informática. Tema 13: Funciones Hash. 13


© Jorge Ramió Aguirre Madrid (España) 2002
Funciones no lineales en MD5
Vector de 128 bits
Funciones no lineales
en cada vuelta a b c d

1ª Vuelta:
FF(a,b,c,d,Mj,tj,s) Þ a = b + ((a + F(b,c,d) + Mj + tj) <<< s)
2ª Vuelta:
GG(a,b,c,d,Mj,tj,s) Þ a = b + ((a + G(b,c,d) + Mj + tj) <<< s)
3ª Vuelta:
HH(a,b,c,d,Mj,tj,s) Þ a = b + ((a + H(b,c,d) + Mj + tj) <<< s)
4ª Vuelta:
II(a,b,c,d,Mj,tj,s) Þ a = b + ((a + I(b,c,d) + Mj + tj) <<< s)
Curso de Seguridad Informática. Tema 13: Funciones Hash. 14
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo y desplazamiento en MD5
Vector de 128 bits
a b c d

Sea f la función F, G, H o I según la vuelta.


El algoritmo será:
Para j = 0 hasta 15 hacer:
TEMP = [(a + f(b,c,d) + Mj + tj) <<<sj]
a=d
d=c
c=b
b=a
a = TEMP

Curso de Seguridad Informática. Tema 13: Funciones Hash. 15


© Jorge Ramió Aguirre Madrid (España) 2002
Operaciones en 1ª y 2ª vueltas en MD5
FF (a, b, c, d, Mj, tj, s) GG (a, b, c, d, Mj, tj, s)

FF(a, b, c, d, M0, D76AA478, 7) GG(a, b, c, d, M1, F61E2562, 5)


FF(d, a, b, c, M1, E8C7B756, 12) GG(d, a, b, c, M6, C040B340, 9)
FF(c, d, a, b, M2, 242070DB, 17) GG(c, d, a, b, M11, 265E5A51, 14)
FF(b, c, d, a, M3, C1BDCEEE, 22) GG(b, c, d, a, M0, E9B6C7AA, 20)
FF(a, b, c, d, M4, F57C0FAF, 7) GG(a, b, c, d, M5, D62F105D, 5)
FF(d, a, b, c, M5, 4787C62A, 12) GG(d, a, b, c, M10, 02441453, 9)
FF(c, d, a, b, M6, A8304613, 17) GG(c, d, a, b, M15, D8A1E681, 14)

Segunda vuelta
FF(b, c, d, a, M7, FD469501, 22) GG(b, c, d, a, M4, E7D3FBC8, 20)
Primera vuelta

FF(a, b, c, d, M8, 698098D8, 7) GG(a, b, c, d, M9, 21E1CDE6, 5)


FF(d, a, b, c, M9, 8B44F7AF, 12) GG(d, a, b, c, M14, C33707D6, 9)
FF(c, d, a, b, M10, FFFF5BB1, 17) GG(c, d, a, b, M3, F4D50D87, 14)
FF(b, c, d, a, M11, 895CD7BE, 22) GG(b, c, d, a, M8, 455A14ED, 20)
FF(a, b, c, d, M12, 6B901122, 7) GG(a, b, c, d, M13, A9E3E905, 5)
FF(d, a, b, c, M13, FD987193, 12) GG(d, a, b, c, M2, FCEFA3F8, 9)
FF(c, d, a, b, M14, A679438E, 17) GG(c, d, a, b, M7, 676F02D9, 14)
FF(b, c, d, a, M15, 49B40821, 22) GG(b, c, d, a, M12, 8D2A4C8A, 20)
Curso de Seguridad Informática. Tema 13: Funciones Hash. 16
© Jorge Ramió Aguirre Madrid (España) 2002
Operaciones en 3ª y 4ª vueltas en MD5
HH (a, b, c, d, Mj, tj, s) II (a, b, c, d, Mj, tj, s)

HH(a, b, c, d, M5, FFFA3942, 4) II(a, b, c, d, M0, F4292244, 6)


HH(d, a, b, c, M8, 8771F681, 11) II(d, a, b, c, M7, 411AFF97, 10)
HH(c, d, a, b, M11, 6D9D6122, 16) II(c, d, a, b, M14, AB9423A7, 15)
HH(b, c, d, a, M14, FDE5380C, 23) II(b, c, d, a, M5, FC93A039, 21)
HH(a, b, c, d, M1, A4BEEA44, 4) II(a, b, c, d, M12, 655B59C3, 6)
HH(d, a, b, c, M4, 4BDECFA9, 11) II(d, a, b, c, M3, 8F0CCC92, 10)
HH(c, d, a, b, M7, F6BB4B60, 16) II(c, d, a, b, M10, FFEFF47D, 15)
HH(b, c, d, a, M10, BEBFBC70, 23) II(b, c, d, a, M1, 85845DD1, 21)
Tercera vuelta

HH(a, b, c, d, M13, 289B7EC6, 4) II(a, b, c, d, M8, 6FA87E4F, 6)

Cuarta vuelta
HH(d, a, b, c, M0, EAA127FA, 11) II(d, a, b, c, M15, FE2CE6E0, 10)
HH(c, d, a, b, M3, D4EF3085, 16) II(c, d, a, b, M6, A3014314, 15)
HH(b, c, d, a, M6, 04881D05, 23) II(b, c, d, a, M13, 4E0811A1, 21)
HH(a, b, c, d, M9, D9D4D039, 4) II(a, b, c, d, M4, F7537E82, 6)
HH(d, a, b, c, M12, E6DB99E5, 11) II(d, a, b, c, M11, BD3AF235, 10)
HH(c, d, a, b, M15, 1FA27CF8, 16) II(c, d, a, b, M2, 2AD7D2BB, 15)
HH(b, c, d, a, M2, C4AC5665, 23) II(b, c, d, a, M9, EB86D391, 21)
Curso de Seguridad Informática. Tema 13: Funciones Hash. 17
© Jorge Ramió Aguirre Madrid (España) 2002
Función de resumen SHA-1
Un resumen de 128 bits tiene una complejidad algorítmica de
sólo 264, un valor en la actualidad muy comprometido... D
La función SHA-1, Secure Hash Algorithm, entregará un
resumen de 160 bits Þ una complejidad algorítmica de 280. C
Vector Inicial : A = 67452301 B = EFCDAB89
SHA-1
C = 98BADCFE D = 10325476 E = C3D2E1F0

Algoritmo: Esta forma de tomar los bits se verá más adelante


Es muy similar a MD5. El vector inicial tiene una palabra más
de 32 bits (E) por lo que el resumen será de 160 bits. A cada
bloque de 512 bits del mensaje se le aplicarán 80 vueltas.
Curso de Seguridad Informática. Tema 13: Funciones Hash. 18
© Jorge Ramió Aguirre Madrid (España) 2002
Esquema del resumen SHA-1
a b c d e
Vector inicial ABCDE
Función
Registro de 160 bits no lineal
A16 = 67452301 <<< 30
B16 = EFCDAB89 +
C16 = 98BADCFE <<< 5
D16 = 10325476 +
E16 = C3D2E1F0 Bloques del texto a partir
del bloque de 16 palabras +
Wt 32 bits
Después de esta última operación, Una constante en cada
se produce el desplazamiento del +
registro hacia la derecha
una de las cuatro vueltas Kt 32 bits

Suma
Véase la próxima diapositiva...
+ mod 232

Curso de Seguridad Informática. Tema 13: Funciones Hash. 19


© Jorge Ramió Aguirre Madrid (España) 2002
Vueltas en funciones F,G, H e I de SHA-1
Desplazamiento del registro
F (b, c, d) ® vueltas t = 0 a 19 ea ab bc dc de
(b AND c) OR ((NOT b) AND d)
G (b, c, d) ® vueltas t = 20 a 39 Se repite el proceso con la
b XOR c XOR d función F para las restantes 15
H (b, c, d) ® vueltas t = 40 a 59 palabras de 32 bits del bloque
(b AND c) OR (b AND d) OR actual hasta llegar a 20. En
(c AND d) vueltas 2, 3 y 4 se repite el
I (b, c, d) ® vueltas t = 60 a 79 proceso con funciones G, H e I.
b XOR c XOR d

Tenemos 4*20 = 80 pasos por cada bloque de 512 bits.


Pero ... ¿cómo es posible repetir 80 veces un bloque que sólo
cuenta con 16 bloques de texto de 32 bits cada uno?
Curso de Seguridad Informática. Tema 13: Funciones Hash. 20
© Jorge Ramió Aguirre Madrid (España) 2002
Las 80 vueltas de SHA-1
Vector de 160 bits
a b c d e

Cada bloque de 16 palabras del mensaje (M0 ... M15) se


expandirá en 80 palabras (W0 ... W79) según el algoritmo:
Wt = Mt (para t = 0, ..., 15)
Wt = (Wt-3 Å Wt-8 Å Wt-14 Å Wt-16 Å) <<<1 (para t = 16, ..., 79)

y además: Kt = 5A827999 para t = 0, ..., 19


Kt = 6ED9EBA1 para t = 20, ..., 39
Kt = 8F1BBCDC para t = 40, ..., 59
Kt = CA62C1D6 para t = 60, ..., 79
Curso de Seguridad Informática. Tema 13: Funciones Hash. 21
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo y desplazamiento en SHA-1
Vector de 160 bits
a b c d e

El algoritmo para cada bloque de 512 bits será:


Para t = 0 hasta 79 hacer:
TEMP = (a <<<5) + ft(b,c,d) + e + W t + Kt
a=e
e=d
d=c
c = b <<<30
b=a
a = TEMP

Curso de Seguridad Informática. Tema 13: Funciones Hash. 22


© Jorge Ramió Aguirre Madrid (España) 2002
Comparativa entre MD5 y SHA-1

• SHA-1 genera una salida de 160 bits de longitud mientras


que MD5 genera sólo 128 bits.
– La dificultad de generar un mensaje que tenga un resumen
dado es del orden de 2128 operaciones para MD5 y 2160 para
SHA-1.
– La dificultad de generar dos mensajes aleatorios distintos y
que tengan el mismo resumen (ataques basados en paradoja
del cumpleaños) es del orden de 264 operaciones para MD5 y
280 para SHA-1.
• Esta diferencia de 16 bits a favor de SHA-1 lo convierte en
más seguro y resistente a ataques por fuerza bruta que el
algoritmo MD5.

Curso de Seguridad Informática. Tema 13: Funciones Hash. 23


© Jorge Ramió Aguirre Madrid (España) 2002
Operaciones en MD5 y en SHA-1
• Ambos algoritmos procesan bloques de 512 bits y emplean 4
funciones primitivas para generar el resumen del mensaje ... pero

• SHA-1 realiza un mayor número de pasos que MD5 (80 frente a


los 64 que realiza MD5).
• SHA-1 debe procesar 160 bits de buffer en comparación con los
128 bits de MD5.
• Por estos motivos la ejecución del algoritmo SHA-1 es más lenta
que la de MD5 bajo el mismo hardware.
Ejemplos de tiempos de ejecución

Curso de Seguridad Informática. Tema 13: Funciones Hash. 24


© Jorge Ramió Aguirre Madrid (España) 2002
Tiempos de ejecución MD5 v/s SHA-1

Tiempos obtenidos con un Pentium a 90 MHz:


Rendimiento (Mbits / Seg)
Lenguaje C++
MD5 32,4
SHA-1 14,4

Tiempos obtenidos con un Pentium a 266 MHz:


Rendimiento (Mbits / Seg)
Lenguaje Ensamblador Lenguaje C
MD5 113,5 59,7
SHA-1 46,5 21,2

Curso de Seguridad Informática. Tema 13: Funciones Hash. 25


© Jorge Ramió Aguirre Madrid (España) 2002
Más diferencias entre MD5 y SHA-1
• La longitud máxima del mensaje para SHA-1 debe ser
menor de 264 bits, mientras que MD5 no tiene limitaciones
de longitud.
• MD5 emplea 64 constantes (una por cada paso), mientras
que SHA-1 sólo emplea 4 (una para cada 20 pasos).
• MD5 se basa en la arquitectura little-endian, mientras que
SHA-1 se basa en la arquitectura big-endian. Por ello el
vector ABCD inicial en MD5 y SHA-1 son iguales:
– A = 01234567 (MD5) Þ 67452301 (SHA-1)
– B = 89ABCDEF (MD5) Þ EFCDAB89 (SHA-1)
– D = FEDCBA98 (MD5) Þ 98BADCFE (SHA-1)
– E = 76543210 (MD5) Þ 10325476 (SHA-1)

Curso de Seguridad Informática. Tema 13: Funciones Hash. 26


© Jorge Ramió Aguirre Madrid (España) 2002
Arquitecturas little-endian v/s big-endian
Arquitectura little-endian:
• Esta es la arquitectura empleada en procesadores Intel de la
familia 80xxx y Pentium.
• Para almacenar una palabra en memoria, el byte menos
significativo de los que forman dicha palabra se guarda en
la posición más baja de la memoria.
Arquitectura big-endian: Ejemplo
• Empleada por otras arquitecturas como SUN.
• Para almacenar una palabra en memoria, el byte más
significativo de los que forman dicha palabra se guarda en
la posición más baja de memoria.
Curso de Seguridad Informática. Tema 13: Funciones Hash. 27
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo little-endian v/s big-endian
Supongamos que queremos almacenar en memoria la siguiente
palabra de 32 bits (4 bytes) representada en hexadecimal:
76543210 Þ 76 54 32 10

Si consideramos que las posiciones de memoria más bajas se


encuentran a la izquierda y las más altas a la derecha:
En formato little-endian se representa: 01 23 45 67

En formato big-endian se representa: 67 45 23 01

Curso de Seguridad Informática. Tema 13: Funciones Hash. 28


© Jorge Ramió Aguirre Madrid (España) 2002
Funciones hash para la autenticación
Ø Las funciones hash vistas (MD5, SHA-1, etc.) pueden
usarse además para autenticar a dos usuarios.
Ø Como carecen de una clave privada no pueden usarse de
forma directa para estos propósitos. No obstante, existen
algoritmos que permiten esta función.
Ø Entre ellos está HMAC, una función que usando los hash
vistos y una clave secreta, autentica a dos usuarios mediante
sistemas de clave secreta. Las funciones MAC, Message
Authentication Code, se verán en el próximo capítulo.
Ø HMAC se usa en plataformas IP seguras y en Secure Socket
Layer, SSL.
Fin del Tema 13

Curso de Seguridad Informática. Tema 13: Funciones Hash. 29


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 14
Autenticación y Firma Digital

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 40 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Confidencialidad v/s integridad
Confidencialidad:
Para lograrla se cifra el mensaje M Þ criptograma.
Integridad:
Para lograrla se firma el mensaje añadiendo una marca.

Si bien en ciertos escenarios es muy importante


mantener el secreto de la información, si ésta lo
requiere, en muchos casos tiene quizás más
trascendencia el poder certificar la autenticidad
entre cliente y servidor (Internet).
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 2
© Jorge Ramió Aguirre Madrid (España) 2002
Los problemas de la integridad (1)
a) Autenticidad del emisor
¿Cómo comprueba Benito (B) que el mensaje recibido del emisor
que dice ser Adelaida (A) es efectivamente de esa persona?

b) Integridad del mensaje


¿Cómo comprueba Benito (B) que el mensaje recibido del emisor
Adelaida (A) es el auténtico y no un mensaje falso?

c) Actualidad del mensaje


¿Cómo comprueba Benito (B) que el mensaje recibido del emisor
Adelaida (A) es actual, no un mensaje de fecha anterior reenviado?

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 3


© Jorge Ramió Aguirre Madrid (España) 2002
Los problemas de la integridad (2)
d) No repudio del emisor
¿Cómo comprueba Benito (B) que el mensaje enviado por el emisor
Adelaida (A) -y que niega haberlo enviado- efectivamente ha llegado?

e) No repudio del receptor


¿Cómo comprueba Benito (B) que el mensaje enviado al receptor
Adelaida (A) -y que niega haberlo recibido- efectivamente se envió?

d) Usurpación de identidad del emisor/receptor


¿Cómo comprueba Benito (B) que Adelaida (A), Clarisa (C) u otros
usuarios están enviando mensajes firmados como Benito (B)?

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 4


© Jorge Ramió Aguirre Madrid (España) 2002
Escenarios de integridad (1)
A envía un mensaje M a B:
1er escenario de desconfianza
A cifra M con la clave KA Þ
EKA(M) y lo envía al Juez.
Este comprueba la integridad
1ª Solución. Uso de un Juez. de A, lo descifra y envía a B,
El Juez tendrá una clave KA cifrado con KB, el mensaje M,
con la que se comunica con la identidad de A y la firma
A y una clave KB con la que EKA(M): EKB{M, A, EKA(M)}.
se comunica con B. Ambos confían en el Juez y
ante cualquier duda éste puede
Usa criptografía simétrica desvelar la identidad de A
descifrando EKA(M).
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 5
© Jorge Ramió Aguirre Madrid (España) 2002
Escenarios de integridad (2)
2º escenario de desconfianza

No está claro que pueda


2ª Solución. Prescindir de la
convertirse en un estándar.
figura del Juez y aceptar la
Permanece la figura de la
autenticidad e integridad por
Autoridad de Certificación
convencimiento propio y la
... es decir confianza en los algoritmos.

Ambos confiarán en un protocolo seguro


y se autenticarán a través de una
Autoridad de Certificación AC.
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Funciones de autenticación
• Autenticación mediante el cifrado de mensajes con
criptografía simétrica
- La cifra de datos puede servir como autenticación.
• Autenticación con MAC Message Code Authentication o
checksum
- Una función pública y una clave secreta producen un valor
de longitud fija válida como autenticador.
• Autenticación mediante funciones hash
- Una función pública reduce el mensaje a una longitud de
valor hash que sirve como autenticador.
• Autenticación mediante firma digital del mensaje con
criptografía asimétrica
- Una función pública y un par de claves, pública y privada
inversas en un cuerpo, permiten la autenticación completa.
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 7
© Jorge Ramió Aguirre Madrid (España) 2002
Autenticación con sistemas simétricos
Si la clave de un sistema simétrico es segura, es decir no
está en entredicho, podemos afirmar que, además de la
confidencialidad que nos entrega dicha cifra, se
obtienen también simultáneamente la integridad del
emisor y autenticidad del mensaje, en tanto que sólo el
usuario emisor (en quien se confía por el modelo de
cifra) puede generar ese mensaje.

Con los sistemas de cifra simétricos no podremos


realizar una autenticación completa (emisor y mensaje).
Ahora bien, podremos hacerse algo similar con algunos
procedimientos más o menos complejos que usen
sistemas de cifra simétrica como es el caso de Kerberos.

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 8


© Jorge Ramió Aguirre Madrid (España) 2002
Los problemas de la autenticación simétrica
No obstante, subyacen los problemas característicos de
un criptosistema: ¿cómo asegurar que la clave simétrica
entre emisor y receptor es segura? o lo que es lo mismo,
¿cómo intercambiar claves de forma segura?

El intercambio de claves de forma segura ya hemos


visto que se logra sólo a través de sistemas asimétricos.
Las herramientas más usuales para autenticación serán
los códigos de autenticación de mensajes MACs y el
sistema Kerberos con cifras simétricas o bien las firmas
digitales que usan criptografía asimétrica.
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 9
© Jorge Ramió Aguirre Madrid (España) 2002
Redundancia del lenguaje en autenticación
Se añade una marca de autenticación al final del criptograma.
Esta marca depende del mensaje M. Por tanto, se trata de un
texto redundante MR, establecido a priori.
C = EK(M, MR) MR = Resumen o Marca
¿Para qué sirve la redundancia?
• Al ser texto redundante, la probabilidad de una autenticación
errónea será igual que la de descriptar un criptograma que según
el modelo de Hellman visto era PE = 2rN/2RN = 2(r-R)N. Así, la
probabilidad de una autenticación correcta será PA = 1 - PE.
• Como r = 1.3 y R = 4.75, PE decrece rápidamente al crecer N.
• Si no hay redundancia (r » R) PE ® 1 y el ataque prospera L.
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 10
© Jorge Ramió Aguirre Madrid (España) 2002
Autenticación con MAC o Checksum
• Los dos extremos de la comunicación A y B comparten
una única clave secreta que no está en entredicho.
• El MAC o checksum será una función que se aplica al
mensaje M junto a una clave secreta K Þ CK(M).
• A envía el mensaje en claro y el Messsage Authentication
Code (MAC) o Checksum CK(M) a B.
• Integridad: el receptor B puede estar seguro de que nadie
ha modificado el mensaje durante la transmisión pues el
valor CK(M) en destino coincide con el enviado por A.
• Autenticación: como solamente el emisor A y el receptor B
comparten la clave secreta K, se asegura la autenticación
de ambos usuarios Þ la clave K debe ser muy segura.

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 11


© Jorge Ramió Aguirre Madrid (España) 2002
Message Code Authentication con DES
Ø Se inserta un código al final del mensaje M transmitido en
claro, consistente en la cifra con clave secreta de los
últimos bytes del texto, por ejemplo 64 bits de DES.
Ø En destino, con el mismo algoritmo y clave secreta, se
realiza la cifra y se comparan estos últimos bloques.
Ø Como la cifra es por encadenamiento o realimentación,
esos bytes cifrados dependen de todo el mensaje por lo que
cualquier modificación será detectada al no coincidir los
resultados del cifrado de M en emisor y receptor.
Esquema

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 12


© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo de autenticación MAC con DES
Mensaje M Cifrado del último bloque con encadenamiento

M1 M2 ... Mn E (K,M)
emisor K
receptor
M1 M2 ... Mn Am
E (K,M) = Am Î MR MR: espacio de marcas de autenticación
• La Marca Am son sólo 16, 32 ó 64 bits.
¿Cuáles son las
debilidades de • Es un tamaño muy pequeño y puede
este modelo? dar lugar a colisiones: mensajes
distintos con iguales MACs.
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 13
© Jorge Ramió Aguirre Madrid (España) 2002
Aproximación con cifrado convencional

• Utilización de un KDC (Key Distribution Centre) o


Distribuidor de Claves de Confianza, que comparte una
clave llamada maestra con los clientes.
• Cada parte de la red comparte una clave secreta o clave
maestra con el KDC.
• El KDC se ocupa de distribuir una clave de sesión que va a
ser utilizada en la conexión entre las dos partes.
• La clave de sesión se protege con la clave maestra de los
participantes de una comunicación.

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 14


© Jorge Ramió Aguirre Madrid (España) 2002
Propuesta de Needham y Schroeder
1. A ® KDC: IDA||IDB||N1
2. KDC ® A: EKA[KS||IDB||N1||EKB[KS||IDA]]
3. A ® B: EKB[KS||IDA]
4. B ® A: EKS[N2]
f (N2) es una función
5. A ® B: EKS[f (N2)] conocida por A y B.

IDA = Nombre de A o identificador de A ¿Qué sucede si no se


IDB = Nombre de B o identificador de B realizan los pasos 4 y 5?
NX = Valor nonce Un intruso podría capturar
KS = Clave de sesión el mensaje en el paso 3 y
EKX = Cifrado con clave secreta de X repetirlo, interfiriendo así
KX = Clave secreta de X (A ó B) las operaciones de B.

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 15


© Jorge Ramió Aguirre Madrid (España) 2002
Más debilidades de la propuesta N-S
• Algo más improbable es que un intruso X tenga una clave
de sesión antigua y repita el mensaje del paso 3 enviado a
B, quien no tiene porqué recordar todas las claves de
sesión usadas previamente con A.
• Si X captura el mensaje del paso 4, podrá suplantar la
respuesta de A del paso 5, enviando a B mensajes que
parecen venir de A con clave de sesión autenticada.
• Denning propone la inclusión de un valor timestamp en los
pasos 2 y 3. La utilización de timestamps requiere la
sincronización de relojes, pero la utilización de valores
nonce es también vulnerable. Se propone como solución
óptima dar una duración a la clave de sesión (tickets).

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 16


© Jorge Ramió Aguirre Madrid (España) 2002
Solución propuesta por Denning y tickets
1. A ® KDC: IDA||IDB Denning
2. KDC ® A: EKA[KS||IDB||T||EKB[KS||IDA||T]]
3. A ® B: EKB[KS||IDA||T]
4. B ® A: EKS[N1] T = Timestamp
5. A ® B: EKS[f (N1)] | Clock – t | < Dt1 + Dt2

1. A ® B: IDA||NA Tickets
2. B ® KDC: IDB||NB||EKB[IDA||NA||TB]
3. KDC ® A: EKA[IDB||NA||KS||TB]||EKB[IDA||KS||TB]||NB
4. A ® B: EKB[IDA||KS||TB]||EKS[NB]
Tickets
Solución al problema del timestamp

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 17


© Jorge Ramió Aguirre Madrid (España) 2002
Autenticación en un sentido
• El correo electrónico es un ejemplo de aplicación que
requiere este tipo de autenticación:
– No es necesario que el emisor y el receptor estén conectados
al mismo tiempo.
– El receptor necesita confirmar de alguna forma que el emisor
del mensaje es quien dice ser.
1. A ® KDC: IDA||IDB||N1
2. KDC ® A: EKA[KS||IDB||N1||EKB[KS||IDA]]
3. A ® B: EKB[KS||IDA]||EKS[M]

Se garantiza así que sólo el receptor puede leer el mensaje


y autentica además al emisor. Es vulnerable a repeticiones.
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 18
© Jorge Ramió Aguirre Madrid (España) 2002
Autenticación con Kerberos

Servicio de autenticación
desarrollado en el Massachusetts
Institute of Technology (MIT)

§ Perro de tres cabezas y cola de serpiente según mitología


griega, guardián de la entrada del Templo de Hades.
§ Tres componentes guardarán la puerta: Autenticación,
Contabilidad y Auditoría. Las dos últimas cabezas
nunca han sido implementadas.

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 19


© Jorge Ramió Aguirre Madrid (España) 2002
Características y fases de Kerberos

• Está basado en el protocolo de distribución de


claves de Needham & Schroeder.
• Fases de autenticación:
– Obtención de credenciales
• Tickets
• Autenticadores
– Petición de autenticación contra un servicio.
– Presentación de las credenciales al servidor final.

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 20


© Jorge Ramió Aguirre Madrid (España) 2002
Elementos del diálogo de autenticación
• Usuario, cliente y servidor: persona o máquina que necesita
autenticarse en la red.
• Principal: entidad o cliente que usa Kerberos y que ha sido
previamente autenticado por un servidor de autenticación.
• Servicio y servidor: servicio es una entidad abstracta (por
ejemplo correo) y servidor el proceso que lo ejecuta.
• Clave y password: función aplicada a la clave de usuario.
• Credenciales: lo que se utiliza para autenticarse.
• Maestros y esclavos: la máquina que hospeda la base de
datos es el master y esclavos son las máquinas que poseen
copias de ésta.
• Dominio: nombre de entidad administrativa que mantiene
los datos de autenticación..
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 21
© Jorge Ramió Aguirre Madrid (España) 2002
Credenciales en Kerberos (ticket)
• Existen dos tipos de credenciales utilizadas en el modelo de
Kerberos: tickets y autenticadores.
• Es necesario un ticket para pasar de una forma segura la
identidad del cliente entre el servidor de autenticación y el
servidor final.
[s, c, addr, timestamp, life, KS,C]KS
s = nombre del servidor
c = nombre del cliente
addr = dirección Internet del cliente
timestamp = fecha de iniciación del ticket
life = duración
KS = clave de sesión aleatoria
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 22
© Jorge Ramió Aguirre Madrid (España) 2002
Credenciales en Kerberos (autenticador)

• El autenticador contiene información adicional que,


comparada con el ticket, prueba que el cliente que presenta
el ticket es el mismo a quien se le entregó,
[c, addr, timestamp]KS,C
c = nombre del cliente
addr = dirección Internet de la estación de trabajo
timestamp = fecha de iniciación del ticket
KS,C = clave de sesión que es parte del ticket
Los objetivos de las credenciales son minimizar el número de veces
que un usuario tiene que introducir la password así como eliminar el
problema de enviar la password en texto plano por la red.
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 23
© Jorge Ramió Aguirre Madrid (España) 2002
Autenticación con funciones hash
• H(M) es el resultado de un algoritmo que con una entrada
M de cualquier tamaño, produce salida de tamaño fijo.
• El emisor A envía el mensaje M y la función hash H(M) a
B, quien aplica la misma función al mensaje M’ recibido.
Si los mensajes son iguales entonces se asegura que los
hash también son iguales. No obstante, el hecho de que los
hash coincidan no significa que los mensajes M y M’ sean
iguales (ya visto en el capítulo correspondiente).
• Integridad: el receptor B puede confiar en que nadie ha
modificado el mensaje durante la transmisión pues el valor
H(M) en destino coincide con el enviado por A.
• Autenticación: Es imposible la autenticación de usuario.

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 24


© Jorge Ramió Aguirre Madrid (España) 2002
Autenticación con sistemas asimétricos
Al existir una clave pública y otra privada que
son inversas, se autentica el mensaje y al emisor.
Permite la firma digital, única para cada mensaje
Problema:
Los sistemas de cifra asimétricos son muy lentos y el mensaje
podría tener miles o millones de bytes ...
Solución:
Se genera un resumen del mensaje, representativo del mismo, con
una función hash imposible de invertir. La función hash comprime
un mensaje de longitud variable a uno de longitud fija y pequeña.
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 25
© Jorge Ramió Aguirre Madrid (España) 2002
Características de una firma digital

Requisitos de la Firma Digital:


a) Debe ser fácil de generar.
b) Será irrevocable, no rechazable por su propietario.
c) Será única, sólo posible de generar por su propietario.
d) Será fácil de autenticar o reconocer por su propietario
y los usuarios receptores.
e) Debe depender del mensaje y del autor.

Son condiciones más fuertes


que la de una firma manuscrita.

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 26


© Jorge Ramió Aguirre Madrid (España) 2002
Firma digital RSA de A hacia B
Clave Pública (nA, eA) Clave Privada (dA)
Algoritmo:
Rúbrica: rAH(M) = H(M)dA mod nA Adelaida

A envía el mensaje M en claro (o cifrado) al destinatario B


junto a la rúbrica: {M, rAH(M)}
El destinatario B tiene la clave pública eA,nA de A
y descifra rAH(M) Þ {(H(M)dA)eA mod nA}
obteniendo así H(M). Como recibe el mensaje
M’, calcula la función hash H(M’) y compara:
Benito Si H(M’) = H(M) se acepta la firma. A
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 27
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de firma digital RSA (B ® A)
Hola. Te envío el documento. Saludos, Beni.

Sea H(M) = F3A9 (16 bits)


Benito Adelaida

Claves Benito 216 < 65.669 < 217 Claves Adelaida


nB = 65.669 luego, firmará con nA = 66.331
eB = 35, dB = 53.771 bloques de 16 bits eA = 25, dA = 18.377

Firma H (M) = F3A916 = 62.37710 Los primos


elegidos por
rH(M) = H(M)dB mod nB Benito y Adelaida
rH(M) = 62.37753.771 mod 65.669 = 24.622 son (97, 677) y
Benito envía el par (M, r) = (M, 24.622) (113, 587)

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 28


© Jorge Ramió Aguirre Madrid (España) 2002
Comprobación de firma RSA por A
Claves Benito Claves Adelaida
nB = 65.669 nA = 66.331
eB = 35, dB = 53.771 eA = 25, dA = 18.377
Benito Teníamos que: H (M) = F3A916 = 62.37710 Adelaida
rH(M) = H(M)dB mod nB rH(M) = 62.37753.771 mod 65.669 = 24.622
Benito había enviado el par (M, r) = (M, 24.622)

Adelaida recibe un mensaje M’ junto con una rúbrica r = 24.622:


• Calcula reB mod nB = 24.62235 mod 65.669 = 62.377.
• Calcula el resumen de M’ es decir H(M’) y lo compara con H(M).
• Si los mensajes M y M’ son iguales, entonces H(M) = H(M’) y se
acepta la firma como válida.
• NOTA: No obstante, H(M) = H(M’) no implica que M = M’.
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 29
© Jorge Ramió Aguirre Madrid (España) 2002
Firma digital ElGamal de A hacia B
ElGamal: El usuario A generaba un número
aleatorio a (clave privada) del cuerpo p. La
clave pública es aa mod p, con a generador.
Adelaida

Algoritmo de firma: Firma: (r, s)


1º El usuario A genera un número aleatorio h, que será primo
relativo con f(p): h / mcd {h, f(p)} = 1
2º Calcula h-1 = inv {h, f(p)} M = a*r + h*s mod f(p) \
3º Calcula r = ah mod p s = (M - a*r)*inv[h,f(p)] mod f(p)
4º Resuelve la siguiente congruencia:
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 30
© Jorge Ramió Aguirre Madrid (España) 2002
Comprobación de firma ElGamal por B
Algoritmo comprobación de firma:
1º El usuario B recibe el par (r, s) y calcula:
Benito
rs mod p y (aa)r mod p Conoce: p y (aa) mod p
2º Calcula k = [(aa)r * rs] mod p
Como r era igual a ah mod p entonces: Se acepta la firma
k = [(aar*ahs] mod p = a(ar + hs) mod p = ab mod p
3º Como M = (a*r + h*s) mod f(p) y a es una raíz
primitiva de p se cumple que:
ab = ag ssi b = g mod (p-1) Si k = [(aa)r * rs] mod p
4º Comprueba que k = aM mod p es igual a aM mod p ...
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 31
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo firma digital ElGamal (B ® A)
¡Hola otra vez! Soy Benito de nuevo... Salu2.

Sea H(M) = A69B (16 bits)


Benito Adelaida
Claves Benito 216 < 79.903 < 217
pB = 79.903 a = 10 luego, firmará con
ab mod p = 3.631 bloques de 16 bits
Firma b = 20, h = 31

1) h-1 = inv[h, f(p)] = inv (31, 79.902) = 5.155


2) r = ah mod p = 1031 mod 79.903 = 11.755
3) s = [H(M) - b*r]*[inv(h,f(p)] mod f(p) H(M) = A69B16 = 42.65110
4) s = [42.651-20*11.755]*5.155 mod 79.902
5) s = 68.539 Luego, la firma será (r, s) = (11.755, 68.539)
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 32
© Jorge Ramió Aguirre Madrid (España) 2002
Comprobación de firma ElGamal por A
Claves Benito
pB = 79.903 a = 10
H(M) = A69B = 42.651
ab mod p = 3.631
Benito b = 20, h = 31 Adelaida

Adelaida recibe el par (r, s) = (11.755, 68.539)

Comprobación de la firma: Como hay igualdad


1) rs mod p = 11.75568.539 mod 79.903 = 66.404 se acepta la firma
2) (ab)r mod p = 3.63111.755 mod 79.903 = 12.023
3) (ab)r * rs mod p = (12.023 * 66.404) mod 79.903 = 64.419 = k
4) aH(M) mod p = 1042.651 mod 79.903 = 64.419

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 33


© Jorge Ramió Aguirre Madrid (España) 2002
El generador a en la firma de ElGamal
Claves Benito
a = 10 es un generador
pB = 79.903 a = 10
ab mod p = 3.631 del cuerpo p = 79.903
Benito b = 20, h = 31 puesto que:
1039.951 mod 79.903 = 79.902
p-1 = 79.902 = 2*32*23*193 1026.634 mod 79.903 = 71.324
q1 = 2; q2 = 3; q3 = 23; q4 = 193 103.474 mod 79.903 = 2.631
y se cumple 10(p-1)qi mod p ¹ 1 10414 mod 79.903 = 41.829

Por ejemplo, si se elige a = 11, para el exponente 39.951 se


obtiene el valor 1 y entonces no sirve para la firma. Será
imposible comprobarla mediante la ecuación k = aM mod p.
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 34
© Jorge Ramió Aguirre Madrid (España) 2002
Estándares de firma digital
1991: National Institute of Standards and Technology (NIST)
propone el DSA, Digital Signature Algorithm, una
variante de los algoritmos de ElGamal y Schnoor.
1994: Se establece como estándar el DSA y se conoce como
DSS, Digital Signature Standard.
1996: La administración de los Estados Unidos permite la
exportación de Clipper 3.11 en donde viene inmerso el
DSS, que usa una función hash de tipo SHS, Secure
Hash Standard.
El peor inconveniente de la firma propuesta por ElGamal es que
duplica el tamaño del mensaje M al enviar un par (r, s) en Zp y f(p).
No obstante, se solucionará con el algoritmo denominado DSS.
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 35
© Jorge Ramió Aguirre Madrid (España) 2002
Digital Signature Standard DSS
Parámetros públicos de la firma:
• Un número primo grande p (512 bits)
• Un número primo q (160 bits) divisor de p-1
• Un generador a “de orden q” del grupo p ¿y eso qué es?

Generador de orden q es aquella raíz a en el cuerpo Zp de


forma que q es el entero más pequeño que verifica:

aq mod p = 1
En este caso se cumple para todo t que:
at = at (mod q) mod p
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 36
© Jorge Ramió Aguirre Madrid (España) 2002
Generación de firma DSS de A ® B
GENERACIÓN DE LA FIRMA POR PARTE DE A
• Claves públicas de A: primos p, q y el generador a
• Clave secreta de la firma: a (1 < a < q) aleatorio
• Clave pública de la firma: y = aa mod p
• Para firmar un mensaje 1 < M < p, el firmante elige un
valor aleatorio 1 < h < q y calcula:
• r = (ah mod p) mod q
• s = [(M + a*r) * inv (h,q)] mod q
• La firma digital de M será el par (r, s)

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 37


© Jorge Ramió Aguirre Madrid (España) 2002
Comprobación de firma DSS por B
COMPROBACIÓN DE LA FIRMA DE A POR B
• B recibe el par (r, s) La firma tendrá en este caso
• Luego calcula: un tamaño menor que q, es
• w = inv (s, q) decir, menos bits que los del
módulo de firma p ya que se
• u = M * w mod q elige por diseño p >> q
• v = r * w mod q
• Comprueba que se cumple la relación:
• r = (au yv mod p) mod q
• Si se cumple, se acepta la firma como válida.

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 38


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de firma DSS de B ® A
Hola Adelaida, soy Benito y firmo con DSS.
Sea H(M) = 1101000 = 104 (un elemento de pB)
Benito Adelaida
Claves Benito
pB = 223 qB = 37 a = 17 28 < pB = 223 < 27
y = ab mod p = 30 Luego firmará
bloques de 7 bits
Firma b = 25, h = 12

1) inv (h,q) = inv (12, 37) = 34


2) r = (ah mod p) mod q = (1712 mod 223) mod 37 = 171 mod 37 = 23
3) s = [H(M)+b*r]*[inv (h,q)] mod q = [104+25*23]*34 mod 37 = 35
4) La firma digital de H(M) = 104 será: (r, s) = (23, 35)
5) Benito transmite a Adelaida el bloque (M, r, s) = (M, 23, 35)
Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 39
© Jorge Ramió Aguirre Madrid (España) 2002
Comprobación de firma DSS por A
Claves Benito
pB = 223 qB = 37 a = 17 Adelaida recibe:
y = ab mod p = 30
Benito b = 25, h = 12 (M, r, s) = (M, 23, 35) Adelaida

¿igualdad?
Comprobación de firma Se acepta la firma

1) w = inv (s, q) = inv (35, 37) = 18 Y el tamaño será


menor que qB = 37
2) u = M*w mod q = 104*18 mod 37 = 22
es decir << PB = 223 que
3) v = r*w mod q = 23*18 mod 37 = 7
era el punto débil de ElGamal
4) ¿(au yv mod p) mod q = r ?
5) [(1722307) mod 223] mod 37 = 23 Fin del Tema 14

Curso de Seguridad Informática. Tema 14: Autenticación y Firma Digital. 40


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 15
Certificados y Autoridades de Certificación

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 10 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Nota del autor

El contenido de este archivo


corresponde a una primera
introducción básica sobre
certificados digitales, en
particular X.509, y el
intercambio de éstos entre
cliente y servidor para una completa autenticación.
Durante el año 2002 se completará este capítulo y se
incluirán contenidos relacionados con el intercambio
de certificados y Autoridades de Certificación.
Curso de Seguridad Informática. Tema 15: Certificados y Autoridades de Certificación. 2
© Jorge Ramió Aguirre Madrid (España) 2002
¿Qué son los certificados digitales?

Un certificado digital es un documento que


contiene diversos datos, entre ellos el nombre de
un usuario y su clave pública, y que es firmado
por una Autoridad de Certificación (AC).

Como emisor y receptor confiarán en esa AC, el


usuario que tenga un certificado expedido por
ella se autenticará ante el otro, en tanto que su
clave pública está firmada por dicha autoridad.

Curso de Seguridad Informática. Tema 15: Certificados y Autoridades de Certificación. 3


© Jorge Ramió Aguirre Madrid (España) 2002
Certificados digitales X.509
• X.509 está basado en criptografía asimétrica y firma digital.
• En X.509 se define un framework (una capa de abstracción)
para suministrar servicios de autenticación a los usuarios del
directorio X.500.
• La autenticación se realiza mediante el uso de certificados.

- Un certificado contiene: el nombre de la CA, el nombre


del usuario, la clave pública del usuario y cualquier otra
información como puede ser un timestamp.
- El certificado se cifra con la clave privada de la CA.
- Todos los usuarios poseen la clave pública del CA.

Curso de Seguridad Informática. Tema 15: Certificados y Autoridades de Certificación. 4


© Jorge Ramió Aguirre Madrid (España) 2002
Formato del certificado digital X.509
Versión Identificador del algoritmo
Nº de serie
Algoritmo
Parámetros Período de validez
Autoridad de Certificación
Inicio de la validez
Caducidad de la validez Clave pública que se firma
Nombre del usuario
Algoritmo
Parámetros Función hash que se cifra con
Clave pública del usuario la clave privada de la AC
Firma de la AC
Curso de Seguridad Informática. Tema 15: Certificados y Autoridades de Certificación. 5
© Jorge Ramió Aguirre Madrid (España) 2002
Campos del certificado digital X.509
• V: Versión del certificado (actualmente V3).
• SN: Número de serie.
• AI: identificador del algoritmo de firma que sirve para identificar el
algoritmo usado para firmar el paquete X.509.
• CA: Autoridad certificadora.
• TA: Periodo de validez.
• A: Propietario de la clave pública que se está firmando.
• P: Clave pública más identificador de algoritmo utilizado y más
parámetros si son necesarios.
• Y{I}:Firma digital de Y por I usando la clave privada de la unidad
certificadora.
CA<<A>> = CA { V, SN, AI, CA, TA, A, AP }
Y<<X>> es el certificado del usuario X expedido por la autoridad certificadora Y.

Curso de Seguridad Informática. Tema 15: Certificados y Autoridades de Certificación. 6


© Jorge Ramió Aguirre Madrid (España) 2002
Autoridades de Certificación

Autoridad de Certificación es un A B
certificado de B
ente u organismo que, de acuerdo
con unas políticas y algoritmos, certificado de A
certificará -por ejemplo- claves
públicas de usuarios o servidores.

clave pública AC

clave pública AC
El usuario A enviará al usuario B
su certificado (la clave pública
firmada por AC) y éste comprobará AC
con esa autoridad su autenticidad. C C
Lo mismo en sentido contrario. Autoridad de Certificación AC

Curso de Seguridad Informática. Tema 15: Certificados y Autoridades de Certificación. 7


© Jorge Ramió Aguirre Madrid (España) 2002
Elementos de una AC

El sistema de autenticación debe tener:


• Una política de certificación
• Un certificado de la CA
• Los certificados de los usuarios (X.509)
• Los protocolos de autenticación, gestión y obtención
de certificados:
– Se obtienen de bases de datos (directorio X.500)
– O bien directamente del usuario en tiempo de
conexión (WWW con SSL)

Curso de Seguridad Informática. Tema 15: Certificados y Autoridades de Certificación. 8


© Jorge Ramió Aguirre Madrid (España) 2002
Algunas características de diseño de la AC
• Deberá definirse una política de certificación
– Ambito de actuación y estructura
– Relaciones con otras ACs
• Deberá definirse el procedimiento de certificación
para la emisión de certificados:
– Verificación on-line
– Verificación presencial
• Deberá generarse una Lista de Certificados Revocados

Curso de Seguridad Informática. Tema 15: Certificados y Autoridades de Certificación. 9


© Jorge Ramió Aguirre Madrid (España) 2002
Funcionamiento de una AC
• Puesta en marcha de la AC:
– Generará su par de claves
– Protegerá la clave privada con una passphrase
– Generará el certificado de la propio AC
• Distribución del certificado de la AC:
– A través del d Directorio X.500
– Por medio de páginas Web
• Podrá certificar a servidores y a clientes
Fin del Tema 15

Curso de Seguridad Informática. Tema 15: Certificados y Autoridades de Certificación. 10


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 16
Correo Electrónico Seguro

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 68 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Resumen de los sistemas de clave secreta
Pros y contras de los Sistemas de Clave Secreta
• El emisor y el receptor comparten una misma clave.
• La seguridad depende sólo del secreto de la clave. C
• La velocidad de cifra es muy alta y los sistemas con un
espacio de clave grande son muy seguros.
• Permiten autenticar los mensajes con MACs. ... pero

• Es imposible establecer un sistema de distribución y


gestión de claves eficiente entre emisor y receptor.
D
• Carecen de una firma digital.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 2


© Jorge Ramió Aguirre Madrid (España) 2002
Resumen de los sistemas de clave pública
Pros y contras de los Sistemas de Clave Pública
• Emisor y receptor generan un par de claves, pública y
privada, relacionadas por una función con trampa.
• Emisor y receptor de un mensaje usan claves diferentes C
para las operaciones de cifrado, descifrado y firma.
• La seguridad del sistema va asociada a la resolución de un
problema matemático difícil. ... pero
• Tiene firma digital: autenticación de mensaje y del emisor.

• Es necesario contar con mecanismos de certificación


para asegurar la veracidad de las claves públicas: ACs. D
• Son sistemas de cifra muy lentos.
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 3
© Jorge Ramió Aguirre Madrid (España) 2002
El correo electrónico seguro
A comienzos de los años 90 hacen su aparición
dos sistemas de correo electrónico seguro:
* PEM (Private Enhanced Mail)
* PGP (Pretty Good Privacy)
De los dos, ha sido PGP quien se ha convertido en un
estándar de hecho en clientes del e-mail seguro. Por
lo tanto veremos sólo algunos aspectos genéricos de
PEM y analizaremos más en profundidad PGP.
Su estudio nos permitirá ver una aplicación real de
los sistemas de cifra y firma analizados en el curso.
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 4
© Jorge Ramió Aguirre Madrid (España) 2002
Private Enhanced Mail PEM (1)
• Es una propuesta de la IETF Internet Engineering Task
Force en 1985. El documento técnico se publica en 1993.
• Las especificaciones técnicas están en las RFCs Request
For Comments números 1421, 1422, 1423 y 1424.
• Se usa conjuntamente con el protocolo SMTP Simple Mail
Internet Protocol.
• Cifrado de la información: DES modo CBC.
• Generación y gestión de claves: RSA de 508 a 1024 bits.
Estructura de certificados según la norma X.509.
• Clave de sesión: DES modo ECB, TDES-EDE.
• Firma digital: RSA, MD2, MD5.
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 5
© Jorge Ramió Aguirre Madrid (España) 2002
Private Enhanced Mail PEM (2)

• Es compatible con otros modelos de mensajería como, por


ejemplo, X.400.
• PEM se implementa en el nivel de aplicación:
• es independiente de los protocolos de los niveles OSI o
TCP/IP inferiores.
• es independiente de los sistemas operativos o del
ordenador.
• Se puede implementar como un módulo independiente que
trabaje con el cliente de correo habitual para el usuario.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 6


© Jorge Ramió Aguirre Madrid (España) 2002
Servicios de seguridad en PEM
• Servicios de seguridad contemplados:
– Autenticación del origen.
– Confidencialidad.
– Integridad del mensaje.
– No repudio del origen cuando se utiliza gestión de clave
con algoritmo de clave asimétrica.
• Servicios de seguridad no contemplados:
– Control de acceso.
– Confidencialidad del tráfico de mensajes.
– No repudio del mensaje por parte del receptor.
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 7
© Jorge Ramió Aguirre Madrid (España) 2002
Formato e implementación de PEM
TIS/PEM
Plataformas UNIX. Trusted Information
System. Código fuente disponible para los
ciudadanos o empresas estadounidentes y
canadienses. Jerarquía de certificación
múltiple.
RIPEM
Implementa parte de los protocolos PEM
sin certificados para autenticación de
claves. Gratuito para aplicaciones no
comerciales. Exportación prohibida fuera
de Estados Unidos. Existen versiones
utilizadas en todo el mundo.
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 8
© Jorge Ramió Aguirre Madrid (España) 2002
Nota aclaratoria sobre PGP 2.6.3i
Aunque hay más de una oferta de software para correo seguro que
el programa PGP, éste se ha convertido en un estándar de hecho.
Si bien las últimas versiones del programa orientadas a entornos
Windows presentan unas altas prestaciones, la filosofía sigue
siendo la misma que la de aquella mítica versión 2.6.3ix.

Las nuevas versiones de PGP en entornos Windows cambian


rápidamente por lo que resulta muy difícil tener unos apuntes
permanentemente actualizados. Por ello, se presentará PGP en su
versión 2.6.3 como versión simple en entorno MS-DOS y,
posteriormente, una introducción a las nuevas características de
una de estas versiones actuales: la 6.5.1. Internacional.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 9


© Jorge Ramió Aguirre Madrid (España) 2002
Tutorial de PGP 2.6.3i

Si no conoce PGP o no ha trabajado nunca con este


entorno, le recomiendo que descargue desde la página
Web de la Red Temática CriptoRed el archivo del
Tutorial de PGP 2.6.3i en formato HTML.

http://www.criptored.upm.es/paginas/software.htm

Esta aplicación es obra de D. David Liñán Zayas,


alumno que realizó este proyecto como su Trabajo Fin
de Carrera tutorizado por el autor de estos apuntes.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 10


© Jorge Ramió Aguirre Madrid (España) 2002
Pretty Good Privacy PGP
• Philip Zimmermann publica la versión 1.0 de PGP en
1991 con mínimos requisitos de hardware y software.
• En 1992 aparece la versión 2.0 en la que ya participan
programadores de todo el mundo. Su código se escribe
fuera de USA para evitar las leyes restrictivas respecto al
software criptográfico y sus problemas legales.
• En 1993 aparece la versión 2.3a muy popular en sitios FTP
y válida para varias plataformas de sistemas operativos.
• En 1994 participa el MIT Massachusetts Institute of
Technology y aparecen las versiones 2.4, 2.5 y 2.6.
• La versión 2.6.3i se populariza a nivel mundial.
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 11
© Jorge Ramió Aguirre Madrid (España) 2002
Los tiempos cambian ...

PGP se convierte rápidamente en uno de los


freeware más populares en el mundo de los
computadores personales, usando cifrado y firma
digital con criptografía calificada como fuerte.
Sus últimas versiones en entorno Windows, ya a
través de una empresa multinacional, presentan
nuevas opciones orientadas a servicios de red y
autenticación mediante ACs, aunque sigue siendo
fiel a las versiones iniciales en muchas de sus
facetas. Recientemente su código fuente ha dejado
de ser público... L

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 12


© Jorge Ramió Aguirre Madrid (España) 2002
Características de PGP 2.6.3i
• PGP, en su versión 2.6.3i (internacional) se convirtió a
mediados de la década de los 90 un estándar de hecho.
• Cifra todo tipo de datos en MS-DOS. Su orientación
principal es el cifrado y la firma del correo electrónico.
• Aunque hay versiones más actuales en entorno gráfico de
Windows, muchos usuarios “siguen fieles” a esta versión.
• Los algoritmos básicos que usa son:
• IDEA para cifrar con sistema de clave secreta.
• RSA para intercambio de claves y firma digital.
• MD5 para obtener la función hash de la firma digital.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 13


© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmos usados por PGP 2.6.3i
Compresión ZIP · Se comprime el mensaje en claro y la firma para
almacenarlo o transmitirlo.
Generación de claves RSA, MD5 · Genera una clave pública y otra privada, encontrando
dos números primos muy grandes. El valor privado se
guarda cifrado con IDEA usando como clave un resumen
MD5 de la frase de paso secreta.
Cifrado Convencional IDEA · Cifra el mensaje con una clave de sesión de 128 bits
(única) generada en el emisor de forma aleatoria.
Intercambio de claves IDEA, RSA · Cifra la clave de sesión IDEA con la clave pública del
destinatario con RSA y la añade en el criptograma.
Firma Digital MD5, RSA · La función hash MD5 genera un resumen de 128 bits,
que representa al mensaje en claro completo, y que se
cifra en RSA con la clave privada del emisor. Se añade
al mensaje enviado.
Compatibilidad e-mail Base-64 · Permite transmitir el mensaje a todo tipo de aplicaciones
e-mail. Convierte los octetos en caracteres imprimibles.
Segmentación · Divide el criptograma final en bloques de menos de
50.000 bytes para su correcta transmisión en Internet y
su recuperación.
Operación Algoritmo Descripción de su función
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 14
© Jorge Ramió Aguirre Madrid (España) 2002
La codificación en Base 64
Valor Carácter Valor Carácter Valor Carácter Valor Carácter
6 bits codificado 6 bits codificado 6 bits codificado 6 bits codificado
0 000000 A 16 010000 Q 32 100000 g 48 110000 w
1 000001 B 17 010001 R 33 100001 h 49 110001 x
2 000010 C 18 010010 S 34 100010 i 50 110010 y
3 000011 D 19 010011 T 35 100011 j 51 110011 z
4 000100 E 20 010100 U 36 100100 k 52 110100 0
5 000101 F 21 010101 V 37 100101 l 53 110101 1
6 000110 G 22 010110 W 38 100110 m 54 110110 2
7 000111 H 23 010111 X 39 100111 n 55 110111 3
8 001000 I 24 011000 Y 40 101000 o 56 111000 4
9 001001 J 25 011001 Z 41 101001 p 57 111001 5
10 001010 K 26 011010 a 42 101010 q 58 111010 6
11 001011 L 27 011011 b 43 101011 r 59 111011 7
12 001100 M 28 011100 c 44 101100 s 60 111100 8
13 001101 N 29 011101 d 45 101101 t 61 111101 9
14 001110 O 30 011110 e 46 101110 u 62 111110 +
15 001111 P 31 011111 f 47 101111 v 63 111111 /
(Relleno) =
Tabla de codificación en Base 64
Cada 3 bytes ANSI (24 bits) se convierten en 4 elementos Base 64 de 6 bits cada
uno. El fichero aumenta un 33% pero ello se compensará al usar la compresión zip.
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 15
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de codificación Base 64
HolaANSI = 01001000 01101111 01101100 01100001
HolaB64 = 010010 000110 111101 101100 011000 01 (00 00) = SG9sYQ==
Valor Carácter Valor Carácter Valor Carácter Valor Carácter
6 bits codificado 6 bits codificado 6 bits codificado 6 bits codificado
0 000000 A 16 010000 Q 32 100000 g 48 110000 w
1 000001 B 17 010001 R 33 100001 h 49 110001 x
2 000010 C 18 010010 S 34 100010 i 50 110010 y
3 000011 D 19 010011 T 35 100011 j 51 110011 z
4 000100 E 20 010100 U 36 100100 k 52 110100 0
5 000101 F 21 010101 V 37 100101 l 53 110101 1
6 000110 G 22 010110 W 38 100110 m 54 110110 2
7 000111 H 23 010111 X 39 100111 n 55 110111 3
8 001000 I 24 011000 Y 40 101000 o 56 111000 4
9 001001 J 25 011001 Z 41 101001 p 57 111001 5
10 001010 K 26 011010 a 42 101010 q 58 111010 6
11 001011 L 27 011011 b 43 101011 r 59 111011 7
12 001100 M 28 011100 c 44 101100 s 60 111100 8
13 001101 N 29 011101 d 45 101101 t 61 111101 9
14 001110 O 30 011110 e 46 101110 u 62 111110 +
15 001111 P 31 011111 f 47 101111 v 63 111111 /
(Relleno) =
Tabla de codificación en Base 64
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 16
© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado local con PGP
Mensaje El documento se comprime Mensaje
en claro con el algoritmo ZIP cifrado

El archivo cifrado
puede guardarse,
Clave Local por ejemplo, en
de 128 bits disco.
La contraseña es una frase de paso.
Se recomienda que tenga espacios, Borrado del texto
signos y caracteres de puntuación en claro opcional.

CONTRASEÑA

Cada nuevo cifrado requiere una contraseña. Esta puede ser igual o distinta.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 17


© Jorge Ramió Aguirre Madrid (España) 2002
Pasos del cifrado local con PGP
Pasos:

1. PGP solicita una frase de paso: ésta debe ser lo


suficientemente larga como para evitar ataques por
combinaciones.
2. Aplica algoritmo de resumen MD5 a esa contraseña
generando así una clave de 128 bits.
3. Cifra el documento con el algoritmo IDEA y le
pone como extensión .pgp.
4. Permite luego hacer un borrado físico del archivo
en claro.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 18


© Jorge Ramió Aguirre Madrid (España) 2002
Características del cifrado local con PGP

q Esta operación sirve para mantener los archivos


protegidos, por ejemplo en el disco duro.
q El acceso al texto en claro sólo será posible si se
conoce una clave o contraseña que es la frase de
paso usada al cifrar.
q Recuerde que si después de cifrar el archivo borra
físicamente el texto en claro -operación que
realiza una grabación de unos y ceros aleatorios
en la zona de almacenamiento del disco- le será
imposible recuperarlo si olvida la contraseña.
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 19
© Jorge Ramió Aguirre Madrid (España) 2002
Correo seguro con PGP
• Las operaciones de PGP 2.6.3i para cifrar, descifrar, firmar
y la comprobación posterior de la firma digital, usan los
algoritmos de funciones hash, de clave pública y de clave
secreta ya vistos en capítulos anteriores.
• Para poder enviar y recibir correo seguro, es necesario
contar al menos con las siguientes claves:
Clave pública del destinatario.
Par de claves asimétricas del emisor.

Generación de claves con RSA


Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 20
© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves RSA en PGP

• Una vez instalado PGP, se procede a la generación de


claves asimétricas del usuario propietario.
• Se elige el tamaño del módulo n, por ejemplo 1024 bits.
• PGP generará un par de números primos e (clave pública)
y d (clave privada) de forma que e*d mod f(n) = 1.
• Para mayor facilidad en el intercambio de claves, el valor
de la clave pública e será pequeño (por ejemplo 216+1).
• PGP pedirá una contraseña o passphrase y con ella y MD5
generará una clave de 128 bits con la que cifrará la clave
privada antes de almacenarla en el disco.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 21


© Jorge Ramió Aguirre Madrid (España) 2002
Anillos de claves en PGP

• Con las claves pública y privada generadas y otras


claves públicas que podrá importar de otros usuarios,
se crean dos anillos de claves:
Ø Anillo de claves públicas: archivo pubring.pgp
en el que se guardan las claves públicas del
usuario propietario (puede tener más de una
identidad) y las claves públicas de importadas.
Ø Anillo de claves privadas: archivo secring.pgp
en el que se guarda la o las claves privadas del
usuario propietario.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 22


© Jorge Ramió Aguirre Madrid (España) 2002
Anillo de claves privadas en PGP

Sellado de tiempo Clave ID* Clave pública Clave privada cifrada ID usuario
T1 e1 mod 264 Clave púb. 1 Clave priv. 1 Usuario 1
--- --- --- --- ---
Ti ei mod 264 ei EH(FPi)(di) Usuario i
--- --- --- --- ---
Tn en mod 264 Clave púb. n Clave priv. n Usuario n

Descripción de los campos

(*) Se usa este campo para la indexación de la tabla en ambos anillos

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 23


© Jorge Ramió Aguirre Madrid (España) 2002
Campos de los anillos de claves
Sellado de tiempo:
fecha y hora de la generación del par de claves.
Clave ID:
identificador de clave (últimos 64 bits de la clave pública e).
Clave pública:
número primo e, inverso del primo d en el cuerpo f(n).
Clave privada cifrada:
cifra EH(FPi) de la clave privada d con IDEA y la función hash
de la frase de paso del propietario como clave secreta.
ID usuario:
identificación del usuario, normalmente dirección de email.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 24


© Jorge Ramió Aguirre Madrid (España) 2002
Anillo de claves públicas en PGP (1)

Sellado de tiempo Clave ID* Clave pública Confianza propietario ID usuario


T1 e1 mod 264 Clave púb. 1 flag_confianza 1 Usuario 1
...
--- --- --- --- --- ...
Ti ei mod 264 ei flag_confianza i Usuario i
...
--- --- --- --- ---
Tn en mod 264 Clave púb. n Clave priv. n Usuario n ...

continúa en próxima diapositiva

(*) Se usa este campo para la indexación de la tabla en ambos anillos

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 25


© Jorge Ramió Aguirre Madrid (España) 2002
Anillo de claves públicas en PGP (2)
Legitimación de clave Firma(s) Confianza de Firmas
... flag_confianza 1 ••• •••

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


flag_confianza i ••• •••
...
--- --- ---
... flag_confianza n ••• •••

viene de la diapositiva anterior

Con la clave pública del destinatario ya podemos


enviar el correo cifrado y/o firmado. Pero ...
¿cómo se gestionan las claves en PGP?

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 26


© Jorge Ramió Aguirre Madrid (España) 2002
Gestión del anillo de claves públicas
Propietario del anillo E A1 Nivel A
?
?
B1 B2 B3 Nivel B

C1 C2 C3 C4 C5 Nivel C

X Y ?
X es firmado por Y D1 Nivel D

A1 cree en el propietario de la clave para firmar otra clave más


A1 cree parcialmente en el propietario de la clave para firmar otra clave
A1 cree en legitimidad de clave La clave está firmada por un
? usuario o Autoridad que no
A1 no cree que la clave sea legítima está en anillo de claves de A1
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 27
© Jorge Ramió Aguirre Madrid (España) 2002
Otros escenarios de confianza en PGP
Otras situaciones en anillo de claves X Y
A1 X es firmado por Y
Nodo huérfano
con firmas no B1 B2 B3
reconocibles

? ?
C1 estados finales C2
? D1
D2 C1 D1
estados iniciales
A1 cree en el propietario de la clave para firmar otra clave
A1 cree parcialmente en el propietario de la clave para firmar otra clave
PGP hace que A1 crea en la legitimidad de las claves pues tienen al menos dos
firmas parciales (B1-B2)o una completa (C2) pero no da confianza para firmar
A1 no cree que la clave sea legítima
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 28
© Jorge Ramió Aguirre Madrid (España) 2002
Problema en estos escenarios de confianza
La gestión de claves en PGP se
basa en la confianza mutua:
¡los amigos de tus amigos son
mis amigos!
ü En un sistema abierto en Internet como puede ser el
comercio electrónico, esta situación y otras más que
pueden darse en este sistema de gestión de claves de
confianza mutua, resulta inaceptable.
ü La solución, que PGP contempla en sus últimas
versiones, es la aceptación de las Autoridades de
Certificación como certificadores de claves públicas.
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 29
© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado PGP con clave pública destino
Mensaje Mensaje
en claro El documento se comprime
antes con el algoritmo ZIP cifrado

Necesitamos una
clave de sesión... Clave de
sesión
Clave cifrada
Se busca en el anillo de de
claves públicas del emisor sesión
Por compatibilidad de
Clave pública sistemas clientes de
del destinatario correo, se le añade
armadura (Base 64)
antes de transmitirlo

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 30


© Jorge Ramió Aguirre Madrid (España) 2002
Pasos del cifrado PGP

Pasos:

1. PGP genera un número aleatorio de 128 bits que


será la clave de sesión.
2. Se cifra el mensaje con dicha clave usando IDEA.
3. Se cifra la clave de sesión con la clave pública RSA
del destinatario y se añade al criptograma.
4. Se añade el identificador ID de la clave pública del
destinatario a la clave de sesión cifrada en el paso 3
como indicativo de la identidad del receptor.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 31


© Jorge Ramió Aguirre Madrid (España) 2002
Descifrado PGP con clave secreta destino
Mensaje Mensaje
cifrado Se ha quitado la armadura y se descomprime en claro

Clave de Clave
sesión de
cifrada sesión

Clave privada Clave privada


destino cifrada descifrada
Se busca en el anillo de
claves privadas del receptor

CONTRASEÑA

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 32


© Jorge Ramió Aguirre Madrid (España) 2002
Pasos del descifrado PGP

Pasos:

1. PGP busca en la cabecera del criptograma el


identificador de usuario ID (receptor) que se ha
añadido en la clave de sesión cifrada.
2. Se busca la clave privada del identificador ID.
3. Se accede a la clave privada en claro, descifrándola
con IDEA al introducir ID su frase de paso.
4. Con la clave privada se descifra la clave de sesión.
5. Con la clave de sesión se descifra el criptograma.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 33


© Jorge Ramió Aguirre Madrid (España) 2002
Firma digital RSA en PGP
Mensaje
Mensaje Se va a firmar un mensaje en claro en claro
en claro

Clave privada
descifrada Bloque de
Necesitamos nuestra firma
clave privada... digital
Si se desea se puede
Clave privada enviar también cifrado
cifrada IDEA

CONTRASEÑA

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 34


© Jorge Ramió Aguirre Madrid (España) 2002
Formato de un mensaje PGP dirigido a B
IDENTIFICADOR DE CLAVE PUBLICA DEL RECEPTOR COMPONENTES DE
CLAVE DE SESION CLAVE DE SESION
SELLO DE TIEMPO

IDENTIFICADOR DE CLAVE PUBLICA DEL EMISOR


COMPONENTES
DOS PRIMEROS OCTETOS DEL RESUMEN DE LA FIRMA
RESUMEN DEL MENSAJE

NOMBRE DEL FICHERO


R64
SELLO DE TIEMPO
E(eB)
ZIP TEXTO DEL USUARIO
COMPONENTES
DEL MENSAJE

Orden de las operaciones

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 35


© Jorge Ramió Aguirre Madrid (España) 2002
Comprobación de la firma digital RSA
Mensaje Se calcula en destino la función hash del mensaje y comparamos
en claro

Firma
correcta

Bloque de
firma Sí
digital
¿ IGUALES ?
No
Se busca la clave pública del
emisor para descifrar la firma

Firma
incorrecta
Clave pública
del emisor
Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 36
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmos en nuevas versiones de PGP
• Generación de claves
• RSA: 1.024, 1.536, 2.048 bits
• Diffie y Hellman: 1.024, 1.536, 2.048, 3.072, 4.096 bits
• Firma digital
• DSS Digital Signature Standard 1.024 bits
• Cifrado
• CAST, IDEA, TripleDES
• Resumen
• SHA-1 (160 bits) y MD5 (128 bits)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 37


© Jorge Ramió Aguirre Madrid (España) 2002
Versiones de PGP en entorno Windows
Son muchas. Entre las más recientes está la versión 6.5.1 Los
algoritmos de cifra y firma cambian. No obstante, la filosofía
del programa es la misma que en la versión 2.6.3i vista.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 38


© Jorge Ramió Aguirre Madrid (España) 2002
Carpetas y programas de PGP 6.51.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 39


© Jorge Ramió Aguirre Madrid (España) 2002
Opciones generales de PGP 6.5.1

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 40


© Jorge Ramió Aguirre Madrid (España) 2002
Opciones de ficheros de PGP 6.5.1

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 41


© Jorge Ramió Aguirre Madrid (España) 2002
Opciones de e-mail de PGP 6.5.1

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 42


© Jorge Ramió Aguirre Madrid (España) 2002
Opciones de atajos de PGP 6.5.1

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 43


© Jorge Ramió Aguirre Madrid (España) 2002
Opciones de servidores de PGP 6.5.1

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 44


© Jorge Ramió Aguirre Madrid (España) 2002
Opciones de ACs de PGP 6.5.1

Entre otras
Verisign

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 45


© Jorge Ramió Aguirre Madrid (España) 2002
Opciones avanzadas de PGP 6.5.1

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 46


© Jorge Ramió Aguirre Madrid (España) 2002
PGP tray de acceso directo

Barra de tareas del PC

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 47


© Jorge Ramió Aguirre Madrid (España) 2002
PGPtools

Barra flotante
PGPkeys Freespace Wipe

Encrypt Wipe
Sign Decrypt/Verify

Encrypt & Sign

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 48


© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves con PGPkeys (1)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 49


© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves con PGPkeys (2)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 50


© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves con PGPkeys (3)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 51


© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves con PGPkeys (4)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 52


© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves con PGPkeys (5)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 53


© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves con PGPkeys (6)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 54


© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves con PGPkeys (7)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 55


© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves con PGPkeys (8)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 56


© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves con PGPkeys (9)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 57


© Jorge Ramió Aguirre Madrid (España) 2002
Generación de claves con PGPkeys (10)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 58


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de creación de par de claves (1)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 59


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de creación de par de claves (2)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 60


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de creación de par de claves (3)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 61


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de creación de par de claves (4)

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 62


© Jorge Ramió Aguirre Madrid (España) 2002
Cifrado y firma usando clipboard

También puede
escribirse
directamente
desde Clipboard
con PGPtray
usando la opción
editar.

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 63


© Jorge Ramió Aguirre Madrid (España) 2002
Petición de passphrase para la firma

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 64


© Jorge Ramió Aguirre Madrid (España) 2002
Documento final con formato base 64

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 65


© Jorge Ramió Aguirre Madrid (España) 2002
Descifrado y comprobación de firma

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 66


© Jorge Ramió Aguirre Madrid (España) 2002
Lectura del mensaje para Mulder

default

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 67


© Jorge Ramió Aguirre Madrid (España) 2002
Mensaje descifrado y firma comprobada

Fin del Tema 16

Curso de Seguridad Informática. Tema 16: Correo Electrónico Seguro. 68


© Jorge Ramió Aguirre Madrid (España) 2002
Tema 17
Protocolos Criptográficos

Curso de Seguridad Informática

Ultima actualización: 10/02/02


Archivo con 48 diapositivas

Material Docente de Dr. Jorge Ramió Aguirre


Libre Distribución Universidad Politécnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informática y


Criptografía. Se autoriza su uso, reproducción en computador e impresión en
papel sólo para fines docentes, respetando siempre los derechos del autor.

Curso de Seguridad Informática © Jorge Ramió Aguirre


Nota del autor

Las diapositivas que forman


parte de este capítulo presentan
una breve introducción al tema
de los protocolos criptográficos.
Estas nuevas herramientas de la
criptografía permiten solucionar problemas en los
que existe desconfianza entre las partes, usando por
lo general sistemas de clave pública. Durante el año
2002 se actualizarán contenidos en estos esquemas y
se irán añadiendo nuevos apartados.

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 2


© Jorge Ramió Aguirre Madrid (España) 2002
Definición de protocolo criptográfico
• Protocolo: es el conjunto de acciones
coordinadas que realizan dos o más partes
o entidades con el objeto de llevar a cabo
un intercambio de datos o información. ¿Qué es un
• Protocolos criptográficos serán aquellos protocolo?
que cumplen esta función usando para ello
algoritmos y métodos criptográficos.
• Permiten dar una solución a distintos
problemas de la vida real, especialmente
en aquellos en donde puede existir un
Veamos 10 ejemplos
grado de desconfianza entre las partes.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 3
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplos de protocolos criptográficos (1)
1.- El problema de la identificación del usuario
¿Cómo permitir que un usuario se identifique y autentique
ante una máquina -y viceversa- sin que sea posible la
obtención por un tercero de la clave o password?

2.- El problema del lanzamiento de la moneda


¿Cómo permitir que dos usuarios realicen una prueba con
probabilidad ½ -como es el lanzamiento de una moneda-
si éstos no se encuentran físicamente frente a frente y,
a la vez, asegurar que ninguno de los dos hace trampa?
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 4
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplos de protocolos criptográficos (2)
3.- El problema de la firma de contratos
¿Cómo permitir que dos o más usuarios que se encuentran
físicamente alejados puedan realizar la firma de un contrato,
asegurando que ninguno de ellos va a modificar las
condiciones ni negarse a última hora a dicha firma?

4.- El problema del descubrimiento mínimo de un secreto


¿Cómo poder demostrar y convencer a otra persona o
sistema que uno está en posesión de un secreto, sin por ello
tener que desvelarlo ni a ella ni a un tercero?

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 5


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplos de protocolos criptográficos (3)
5.- El problema del juego de póker mental o por teléfono
¿Cómo permitir que varios usuarios puedan jugar a través de
la red un juego de póker -o cualquier otro- si no están
físicamente en una misma mesa de juego y asegurando, al
mismo tiempo, que ninguno de ellos va a hacer trampa?

6.- El problema de la división de un secreto o del umbral


Si tenemos un secreto único y por tanto muy vulnerable,
¿cómo permitir que ese secreto se divida en n partes, de
forma que juntando k partes sea posible reconstruirlo y, en
cambio, con k-1 partes imposible su reconstrucción?
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplos de protocolos criptográficos (4)
7.- El problema del esquema electoral o voto electrónico
¿Cómo realizar unas elecciones a través de una red, de forma
que pueda asegurarse que el voto es único y secreto, que los
votantes estén autenticados y que ese voto se contabiliza en el
cómputo final?

8.- El problema de la transmisión por canales subliminales


Dos usuarios desean intercambiar información a través de un
tercero del cual desconfían. ¿Cómo pueden hacerlo sin cifrar
la información de forma que este tercero sólo vea un mensaje
con texto en claro aparentemente inocente?
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 7
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplos de protocolos criptográficos (5)
9.- El problema del millonario
Dos usuarios desean conocer cuál de los dos tiene más
dinero en su cuenta corriente. ¿Cómo pueden hacerlo de
forma que, una vez terminado el protocolo, ambos sepan
quién de los dos es más rico sin desvelar la cantidad de
dinero del otro?

10.- El problema del correo electrónico con acuse de recibo


¿Cómo hacer que una vez recibido un correo electrónico,
éste sólo pueda ser leído (abierto) si el receptor envía, con
anterioridad al emisor, un acuse de recibo como sucede -de
forma similar- con el correo normal certificado?
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 8
© Jorge Ramió Aguirre Madrid (España) 2002
Transferencia inconsciente o trascordada
Propuesto por Michael Rabin (1981)
• Un usuario A transfiere a un usuario B un dato o
secreto con un cifrado probabilístico del 50%.
• El usuario B recibe el dato y tiene una probabilidad
del 50% de descubrir el secreto. Una vez que ha
recibido el dato, B sabe si éste es el secreto o no.
• No obstante, el usuario A no tiene forma de saber si el
usuario B ha recibido el secreto o no.
Esta incertidumbre forzará a
los protagonistas a terminar el
protocolo sin trampas.

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 9


© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo de transferencia inconsciente (1)
Paso 1º A elige dos primos (p y q), calcula n = p*q y
envía el valor n a B.
Paso 2º B elige un número aleatorio x del CCR(n) de
forma que que mcd (x,n) = 1, y devuelve a A
el valor K = x2 mod n.
Paso 3º A calcula las cuatro raíces de x2 mod n y
envía a B una de ellas. Las raíces de x2 mod n
serán: x, n-x, y, n-y. Sólo él puede hacerlo
porque conoce los valores de p y q.
Paso 4º B intenta descubrir el valor de p o q.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 10
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo de transferencia inconsciente (2)
Si B recibe x o n-x no será capaz de encontrar p o q.
No tiene más información que la que tenía porque
L x y n-x son valores que conoce (él ha elegido x).

Si B recibe y o n-y, podrá encontrar p o q.


En este caso, como x2 mod n = y2 mod n, entonces:
J (x2 - y2) mod n = (x+y)(x-y) mod n = 0
Luego (x+y)(x-y) = k*n y se cumplirá que:
mcd (x+y, n) = p y mcd (x-y, n) = q

Para entenderlo mejor ... veamos un ejemplo

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 11


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de transferencia inconsciente (1)
A Adelaida tiene como números secretos p y q, valores
que corresponden a la factorización del valor n.
B Benito conoce el valor n y deberá descubrir, a partir
del protocolo de transferencia inconsciente, p o q.
Ejemplo con valores:
Sea p = 7; q = 13. Luego, n = p*q = 7*13 = 91.
1.- A envía a B el valor n = 91.
2.- B elige al azar del CCR(91) el valor x = 15 y calcula
K = 152 mod 91 = 225 mod 91 = 43. Se lo envía a A.
3.- A recibe K = 43 y calcula las 4 raíces de x2 mod n.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 12
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de transferencia inconsciente (2)
A calcula las dos raíces de x2 mod n = K de en p y q:
x12 = K mod p = 43 mod 7 = 1 Þ x1 = 1
x22 = K mod q = 43 mod 13 = 4 Þ x2 = 2
Con estos valores usa ahora el Teorema del Resto Chino

Si no recuerda el Teorema del Resto


No siempre
será tan fácil Chino, repase el archivo Sitema05.
el cálculo de
estas raíces Teníamos que: x1 = 1 y x2 = 2.
como se verá
más adelante
Aplicando entonces la ecuación del TRC:

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 13


© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de transferencia inconsciente (3)
y1 = inv (n/p, p) = inv (91/7, 7) = inv (13,7) Þ y1 = 6
y2 = inv (n/q, q) = inv (91/13, 13) = inv (7,13) Þ y2 = 2
x = [(n/p)*y1*x1 + (n/q)*y2*x2] mod n
\ x = (13*6*x1 + 7*2*x2) mod 91
Luego para todas las combinaciones xi, p y q se tiene:
{x1, x2} Þ [1,2] Þ x = 15
{x1, q-x2} Þ [1,13-2] = [1,11] Þ x = 50
{p-x1, x2} Þ [7-1,2] = [6,2] Þ x = 41
{p-x1, q-x2} Þ [7-1,13-2] = [6,11] Þ x = 76

J 152 mod 91 = 502 mod 91 = 412 mod 91 = 762 mod 91 = 43.


J Además se cumple que 15 + 76 = 91 = n y 50 + 41 = 91 = n.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 14
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de transferencia inconsciente (3)
A recibirá cualquiera de estos cuatro valores:15, 50, 41, 76.
• Si A recibe el número 15 (el valor que había enviado a B) o
bien n-15 = 91-15 = 76 (que llamaremos valores x) no tiene
más datos que los que tenía al comienzo del protocolo y no
podrá factorizar n.
• Si A recibe cualquiera de los otros dos valores enviados por B
(50 ó 41) valores que llamaremos y, podrá factorizar n usando
la expresión mcd (x+y, n) con x el valor elegido por A al
comienzo del protocolo, es decir 15.
• Si y = 50 Þ mcd (50+15, 91) = mcd (65, 91) = 13 q = 13
• Si y = 41 Þ mcd (41+15, 91) = mcd (56, 91) = 7 p=7
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 15
© Jorge Ramió Aguirre Madrid (España) 2002
Problema lanzamiento de la moneda (1)
Propuesto por Mario Blum (1982)
Se desea resolver una apuesta entre dos
usuarios A y B distantes entre sí mediante
una moneda (cara o cruz).
Situaciones si A lanza la moneda al aire:
Caso 1
1º A lanza la moneda.
2º B hace su apuesta y se lo dice a A.
3º A le dice a B que ha salido “justo lo contrario” A
... independientemente de lo que haya salido.
En este caso el usuario A hace trampa ...
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 16
© Jorge Ramió Aguirre Madrid (España) 2002
Problema lanzamiento de la moneda (2)
Caso 2
1º A lanza la moneda.
2º B hace su apuesta y se lo dice a A.
3º No sale lo apostado por B y A se lo notifica. B
4º B se desmiente y dice que “esa era su apuesta”.
Ahora es el usuario B quien hace trampa ...
Si A y B están distantes y no hay un testigo de fe, ¿cómo
puede desarrollarse el algoritmo para que ninguno de los
dos pueda hacer trampa y, si lo hace, el otro lo detecte?

Esquema de Blum

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 17


© Jorge Ramió Aguirre Madrid (España) 2002
Esquema general de Blum
Posibles soluciones:
• Usar el protocolo de la transferencia inconsciente de Rabin
con probabilidad del 50% ya visto, o bien...
• Usar el Esquema General de Blum
1º A partir de un conjunto de números que la mitad son pares
y la otra impares y una función unidireccional f : x®y, el
usuario A elige un valor x y calcula y = f (x) que envía a
B.
2º El usuario B apuesta por la paridad de x.
3º A le muestra a B el verdadero valor de x y su paridad.

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 18


© Jorge Ramió Aguirre Madrid (España) 2002
Condiciones del esquema general de Blum

• B tendrá igual probabilidad de recibir un número


par o impar.
• A deberá tener una probabilidad igual (50%) de
recibir una apuesta par o impar por parte B.
• Ninguno de los dos podrá hacer trampa.
¿Búsqueda de esa función f ?
Antes deberemos explicar qué se entiende
por restos cuadráticos y enteros de Blum

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 19


© Jorge Ramió Aguirre Madrid (España) 2002
Restos cuadráticos de Blum
Buscamos una función unidireccional con trampa que
cumpla las características del protocolo anterior.
El valor a es un resto cuadrático de Blum R2 mod n si:
x2 mod n = a
Solución
siendo mcd (a,n) = 1
¿Algún problema? Sí Þ No sigue la paridad deseada.
Por ejemplo, el resto R2 = 4 en mod 11 se obtiene
para x = 2 (par) y x = 9 (impar) ya que:
22 mod 11 = 4 mod 11 = 4 y 92 mod 11 = 81 mod 11 = 4

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 20


© Jorge Ramió Aguirre Madrid (España) 2002
Enteros de Blum
Un entero de Blum es un número resultado del producto de dos
primos p y q, ambos congruentes con 3 módulo 4.
En este caso se cumplirá que:
y = x2 mod n tendrá igual paridad que z = y2 mod n "xÎZn
Ejemplo: sea n = 11*19 = 209 y el valor x = 24
11 mod 4 = 3; 19 mod 4 = 3 (cumplen congruencia mod 4 C)
y = x2 mod n = 242 mod 209 = 576 mod 209 = 158
z = y2 mod n = 1582 mod 209 = 24.964 mod 209 = 93
Como se observa, en este caso y es par y z es impar.
Luego, para todos los restos principales de y = 158 (par) que se obtengan con
valores de x diferentes, el resto cuadrático z2 será siempre el valor 93 (impar).

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 21


© Jorge Ramió Aguirre Madrid (España) 2002
Paridad en enteros de Blum
Es importante recalcar que:

• Existirá igual número de soluciones y (pares o


impares) que de soluciones z (pares o impares).
• Esto no sucederá con enteros que no sean de Blum.
• Por lo tanto, esta igualdad de paridad en los valores de
los restos de z y de y, hará que desde el punto de vista
del usuario B que recibe como dato el valor z o resto
R2 enviado por A, exista una equiprobabilidad.
El siguiente cuadro indica la paridad de R2 para
algunos módulos enteros y no enteros de Blum.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 22
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de paridad en enteros de Blum
Paridad de elementos de R2 para módulos enteros de Blum
n p q y (pares) y (impares) z (pares) z (impares)
21 3 7 10 10 10 10
33 3 11 12 20 12 20
57 3 19 24 32 24 32
69 3 23 36 32 36 32
77 7 11 36 40 36 40
Observe que se obtiene igual cantidad de valores y pares que
de z pares. De la misma forma, se obtiene igual cantidad de
valores y impares que de z impares.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 23
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo de paridad en no enteros de Blum
Paridad de elementos de R2 para módulos no enteros de Blum
n p q y (pares) y (impares) z (pares) z (impares)
15 3 5 8 6 6 8
35 5 7 14 20 8 26
39 3 13 22 16 16 22

En este caso no se obtienen cantidades iguales de valores y, z.


Ejercicios:
1. Compruebe que los números 21, 33, 57, 69 y 77 del ejemplo
anterior son enteros de Blum y que 15, 35 y 39 no lo son.
2. Encuentre todos los restos y y z para n = 33.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 24
© Jorge Ramió Aguirre Madrid (España) 2002
Algoritmo de Blum
1) A elige dos primos p y q de forma que n = p*q es un
entero de Blum (p y q congruentes con 3 mod 4)
2) A elige un elemento x de Zn y calcula y = x2 mod n.
Luego calcula z = y2 mod n y envía z a B.
3) B recibe z y apuesta por la paridad del valor y.
4) A le informa a B si ha acertado o no en su apuesta.
Le muestra también el valor x elegido y el valor de y.
Además le comprueba que n es un entero de Blum.
5) B comprueba que y = x2 mod n y que z = y2 mod n.
6) A y B han actuado con una probabilidad del 50% en
los pasos 2 y 3, respectivamente.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 25
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo del algoritmo de Blum (1)
Sean los primos p = 7 y q = 19
Luego, n = p*q = 7*19 = 133
Comprobación de que 133 es un entero de Blum:
7 mod 4 = 3; 19 mod 4 = 3 B
• A elige el valor x = 41 y calcula:
– y = x2 mod n
• y = 412 mod 133 = 1.681 mod 133 = 85
– z = y2 mod n
• z = 852 mod 133 = 7.225 mod 133 = 43
• A envía a B el valor z = 43.
• B debe apostar por la paridad de y.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 26
© Jorge Ramió Aguirre Madrid (España) 2002
Ejemplo del algoritmo de Blum (2)
Situación 1 (B acierta)
• Si B acierta y dice que y es impar, A no puede negarle que ha
ganado. A debe mostrarle a B los valores x e y. Además debe
demostrarle a B que n era un entero de Blum.
Situación 2 (B no acierta)
• Si B no acierta y dice que y es par, A le dice a B que ha
perdido, le demuestra que n era un entero de Blum y le
muestra el valor x elegido así como el valor y.
Compruebe que a iguales valores de resto principal y resto cuadrático
se llega para x = 22, x = 92 y x = 111. Es decir, si se recibe z = 43
(impar) la única posibilidad es que el valor de y sea 85 (impar) y que
A haya elegido como valor x los siguientes: 22, 41, 92 ó 111.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 27
© Jorge Ramió Aguirre Madrid (España) 2002
La firma de contratos (1)
Dos personas (en sitios distintos) desean firmar un
contrato sin presencia de un ministro de fe.
- Deben cumplirse dos condiciones:
• Que los firmantes queden obligados a culminar la
firma sólo a partir de un punto del protocolo. Esto
se conoce como compromiso de los contratantes.
• Que la firma no pueda falsificarse y que, además,
pueda ser comprobada por la otra parte.
Un posible algoritmo
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 28
© Jorge Ramió Aguirre Madrid (España) 2002
La firma de contratos (2)
1. El usuario A elige dos claves iA y jA en un sistema de clave
pública y calcula sus claves privadas iA-1 y jA-1.
2. El usuario B elige una clave secreta KB.
3. A envía a B sus dos claves públicas iA y jA.
4. B elige una de las dos claves recibidas y con ella cifra su
clave KB, enviando el resultado al usuario A.
5. A elige al azar una de sus dos claves privadas iA-1 y jA-1 y
descifra con dicha clave el valor recibido en el punto 4.
6. A cifra el primer bloque del mensaje de firma usando el
valor elegido en el punto 5 como clave y lo envía a B.
7. B descifrará con la clave recibida el bloque de firma.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 29
© Jorge Ramió Aguirre Madrid (España) 2002
La firma de contratos (3)

Observe que los siete pasos


anteriores corresponden
básicamente al algoritmo de
transferencia inconsciente
entre los usuarios A y B.

Finalización
del protocolo
8. A repite la operación de los pasos 5 y 6 para cada uno de
los bloques de su firma y B el paso 7.
9. Terminados los bloques de su firma, A repite el paso 6
utilizando ahora su otra clave privada y B el paso 7.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 30
© Jorge Ramió Aguirre Madrid (España) 2002
La firma de contratos (4)
@ Si A y B han elegido al azar la misma clave con una
probabilidad del 50% para cada uno, B descifrará un
mensaje con sentido en la primera vuelta. En caso
contrario, B recibe un texto sin sentido y deberá
esperar hasta recibir el último bloque de la segunda
vuelta para obtener el texto en claro.
@ Sin embargo, A no tiene cómo saber en cuál de los dos
pasos (en la primera o la segunda vuelta) ha logrado B
descifrar el criptograma y obtener un texto con sentido
lo que fuerza a ambas partes a terminar el algoritmo.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 31
© Jorge Ramió Aguirre Madrid (España) 2002
Firma de contratos: algoritmo de Even (1)
En el año 1985 Even, Goldreinch y Lempel proponen el uso
de sistemas de cifra simétricos para la firma de contratos.

1. A elige un conjunto de 2n claves en un sistema simétrico:


C1, C2, C3, ..., Cn, Cn+1, ..., C2n. Las claves se tomarán
como parejas (C1, Cn+1), (C2, Cn+2), ..., (Cn,C2n) aunque
no tengan ninguna relación entre sí.
2. A cifra un mensaje estándar MA conocido por B con 2n
claves EC1(MA), ..., EC2n(MA) y envía a B ordenados los
2n criptogramas.
3. A se comprometerá a la firma del contrato si B puede
presentar para algún i el par (Ci, Cn+i).
sigue
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 32
© Jorge Ramió Aguirre Madrid (España) 2002
Firma de contratos: algoritmo de Even (2)

4. B elige también un conjunto de 2n claves en un sistema


simétrico: D1, D2, D3, ..., Dn, Dn+1, ..., D2n. Las claves se
tomarán como parejas (D1, Dn+1), (D2, Dn+2), ..., (Dn,D2n);
cifra un mensaje estándar MB conocido por A con las 2n
claves ED1(MB), ..., ED2n(MB), envía a A 2n criptogramas
y se compromete en los mismos términos que A.
5. A envía a B cada par (Ci, Cn+i) ordenados mediante una
transferencia inconsciente; es decir enviando Ci o Cn+i
con igual probabilidad. Lo mismo hace B enviando a A
ordenadamente uno de los dos valores del par (Di, Dn+i).
En este punto A y B tienen la mitad de las claves del otro.
sigue
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 33
© Jorge Ramió Aguirre Madrid (España) 2002
Firma de contratos: algoritmo de Even (3)
6. Si la longitud de cada clave Ci o Di es de L bits, A y B
realizan el siguiente bucle con 1 £ i £ 2n para la clave Ci
y Di que no han usado en los pasos anteriores:
for 1 £ j £ L
begin
A envía a B el bit jésimo de todas las claves Ci
B envía a A el bit jésimo de todas las claves Di
end (Esto se conoce como compromiso bit a bit)
7. Al realizar el bucle completo, A y B tienen las 2n claves
del otro y se supone firmado el contrato.
A y B pueden generar mensajes del tipo “Esta es mi mitad izquierda
i de mi firma” para cifrar con la clave Ci y Di y “Esta es mi mitad
derecha i de mi firma” para cifrar con la clave Cn+i y Dn+i
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 34
© Jorge Ramió Aguirre Madrid (España) 2002
¿Existe el correo electrónico certificado?
¿Cómo podemos estar seguros que un mensaje enviado por
correo electrónico ha sido abierto y su contenido conocido
sólo por su destinatario autorizado?

¿Será para mí
ese e-mail?
Para evitar estas situaciones podemos
usar el protocolo del correo certificado
Los sistemas actuales de e-mail permiten emitir desde
el cliente de correo del receptor un acuse de recibo.
No obstante, esto sólo significa que “alguien” en
extremo receptor desde el buzón de entrada pincha
sobre un mensaje nuevo y a la pregunta ¿enviar acuse
recibo al emisor? pulsa Enter eligiendo la opción Sí.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 35
© Jorge Ramió Aguirre Madrid (España) 2002
Correo electrónico certificado
• El usuario A desea enviar un mensaje electrónico
como correo certificado al usuario B.
• El usuario A le descubre el mensaje (le envía la
clave) sólo después ed que el usuario B le envíe
el acuse de recibo correspondiente.
• El algoritmo será muy similar al anterior de
firma de contratos propuesto por Even.
Este algoritmo de correo electrónico certificado
se implementará en una próxima edición.

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 36


© Jorge Ramió Aguirre Madrid (España) 2002
El voto electrónico o por ordenador
• Todos tenemos de una u otra forma una idea intuitiva,
aunque quizás no completa, sobre cómo se desarrolla un
proceso electoral.
• La pregunta es si es posible realizar este tipo de eventos
desde Internet, lo que se conoce como esquema electoral.
• La respuesta es sí con la ayuda de técnicas y protocolos
criptográficos aunque no se trata sólo de un problema de
implementación técnica; es menester tener en cuenta otros
factores importantes, a saber:
– Socio-políticos, económicos, jurídicos, legislativos...

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 37


© Jorge Ramió Aguirre Madrid (España) 2002
Definición de esquema electoral

“Un esquema de votación electrónica es una


aplicación distribuida y constituida por un conjunto
de mecanismos criptográficos y protocolos que, de
forma conjunta, permiten que se realicen elecciones
en una red de computadores, de forma segura,
incluso suponiendo que los electores legítimos
pueden tener un comportamiento malicioso.”

Andreu Riera (Tesis Doctoral, UAB, 1999)

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 38


© Jorge Ramió Aguirre Madrid (España) 2002
Requisitos de un esquema electoral (1)

Requisitos de un esquema electoral:

8 Sólo pueden votar quienes estén censados.


8 El voto debe ser secreto.
8 El voto debe ser único por cada votante.
8 Se contabilizarán todos los votos válidos.
8 El recuento parcial no debe afectar a votos
que se emitan con posterioridad.
sigue
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 39
© Jorge Ramió Aguirre Madrid (España) 2002
Requisitos de un esquema electoral (2)
Requisitos de un esquema electoral:

8 Cada votante podrá comprobar que su voto


ha sido tenido en cuenta en el escrutinio.
Esto último es muy importante A
Y, además:

: Se debe proteger el proceso contra ataques en red.


: El proceso debe ser factible, práctico y dentro de lo
posible de uso universal.
Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 40
© Jorge Ramió Aguirre Madrid (España) 2002
Primera aproximación del voto electrónico
MCV: La Mesa Central de Votación
? El votante válido se autentica y envía su voto
? La MCV lo identifica y contabiliza el voto
Problema Þ ¡Se vulnera el secreto del voto!

MCL: La Mesa Central de Legitimación


? Evita que la MCV conozca a quién ha votado el
votante, mediante un protocolo entre ambas, y
además gestionan una lista de votantes censados.

F MCV y MCL deben ser órganos independientes


Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 41
© Jorge Ramió Aguirre Madrid (España) 2002
Un protocolo de voto electrónico (1)

1. El votante A envía a la MCL el mensaje:


Buenos días, soy “A” y vengo a votar.
2. La MCL verifica si “A” está censado. Si no es
un votante legítimo rechaza la solicitud. Si es
legítimo, le envía un número aleatorio de
identificación único i(A) y le borra de la lista
para impedir que vuelva a votar.
Toda la información irá Características
cifrada y firmada de i(A)

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 42


© Jorge Ramió Aguirre Madrid (España) 2002
Un protocolo de voto electrónico (2)

¿Cuáles deben ser Mucho mayor que el


número de votantes.
las características
Por ejemplo, para un
de este número
millón de votantes,
aleatorio? unos 10100 números.

I(A)

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 43


© Jorge Ramió Aguirre Madrid (España) 2002
Un protocolo de voto electrónico (3)

3. La MCL envía a la MCV la lista de números de


validación.
4. El votante A escoge una identificación secreta
s(A) y envía a la MCV el mensaje formado por el
trío [i(A), v(A), s(A)] es decir:
• su identificación i(A) Puede generarlo
internamente con su
• su voto v(A) sistema de cifra. Será
• su número secreto s(A) también un valor de
muchos dígitos.

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 44


© Jorge Ramió Aguirre Madrid (España) 2002
Un protocolo de voto electrónico (4)

5. La MCV verifica que el número i(A) de


identificación se encuentra en el conjunto N de
los números censados y cruza los datos para
evitar que se vote más de una vez. Quita i(A) del
conjunto N y añade s(A) al conjunto de electores
que han optado por la opción v(A).
6. La MCV contabiliza los votos y hace público el
resultado, junto con la lista de números secretos
s(A) que han votado a la opción v(A) ... luego

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 45


© Jorge Ramió Aguirre Madrid (España) 2002
Un protocolo de voto electrónico (5)
J Cada elector puede comprobar si su voto ha sido
contabilizado sin hacer pública su opción.

L ¿Qué pasa si MCV y MCL no son independientes?


Si las dos mesas, MCV y MCL, no tienen la idoneidad y la
integridad que se presume, la solución está en el uso de una
diversidad de esquemas más desarrollados que evitan esta
anomalía mediante protocolos, entre ellos el denominado
ANDOS All-or-Nothing Disclosure Of Secrets, Distribución
Anónima de Números de Validación.

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 46


© Jorge Ramió Aguirre Madrid (España) 2002
Otros esquemas de mesas electorales
Hay muchos otros esquemas con dos mesas, una única
mesa e incluso ninguna, cada uno con sus características
propias:
Entre ellos tenemos:
- Modelo de Cohen y Fisher (1985)
- Modelo de Fujioka y otros (1992)
- Modelo de Park y otros (1993)
- Modelo de Sako y Killian (1995)
- Modelo de Borrel y Rifà (1996)

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 47


© Jorge Ramió Aguirre Madrid (España) 2002
Estado del arte en voto electrónico

• Existen diversos modelos y esquemas,


algunos de ellos probados con un
número reducido de electores.
• No está todavía solucionado el
problema de la protección física y
lógica de la red.
• El proceso de unas elecciones vía ... lo siento, este
Internet realizable y práctico no está capítulo se encuentra
en construcción.
aún completamente logrado, aunque
hoy es completamente factible. Fin del Tema 17

Curso de Seguridad Informática. Tema 17: Protocolos Criptográficos. 48


© Jorge Ramió Aguirre Madrid (España) 2002

También podría gustarte