Академический Документы
Профессиональный Документы
Культура Документы
Página 1 de 35
PRINCIPIOS DE CRIPTOGRAFÍA....................................................................................... 3
Página 2 de 35
Principios De Criptografía
La criptografía consiste en tomar un documento original y aplicarle un algoritmo cuyo resultado
es un nuevo documento. Ese documento está cifrado: no se puede entender nada al leerlo
directamente. Podemos, tranquilamente, hacerlo llegar hasta el destinatario, que sabrá aplicar
el algoritmo para recuperar el documento original.
Realmente, hace falta algo más que el algoritmo, porque otra persona también puede
conocerlo (incluso lo utiliza en sus propias comunicaciones). La privacidad se consigue gracias
a la clave del algoritmo: un conjunto de valores que, combinados con el documento original tal
y como se indica en el algoritmo, generan un documento cifrado de tal forma que, solo con ese
documento, es imposible deducir ni el documento original ni la clave utilizada. Por supuesto,
debemos evitar que otra persona no autorizada pueda llegar a conocer nuestra clave.
Las claves son combinaciones de símbolos (letras, números, signos de puntuación, etc.). Por
tanto, nuestra seguridad está expuesta a los ataques de fuerza bruta: probar todas las
combinaciones posibles de símbolos. Para evitarlo tomaremos estas medidas:
Las claves no son el único punto débil de la criptografía; pueden existir vulnerabilidades en el
propio algoritmo o en la implementación del algoritmo en alguna versión de un sistema
operativo o un driver concreto. Estas vulnerabilidades las estudia el criptoanálisis.
CRIPTOGRAFIA: (del griego "Kryptos", oculto y "Graphos", escritura) es la ciencia que hace
uso de métodos y herramientas con el objetivo principal de cifrar y, por tanto proteger, un
mensaje o archivo por medio de un algoritmo, usando para ello dos o más claves, con lo que se
logra en algunos casos la confidencialidad, en otros la autenticidad, o bien ambas
simultáneamente.
CRIPTOANALISIS: Estudia los métodos empleados para romper textos cifrados con objeto de
recuperar la información original en ausencia de claves, es decir, estudia las vulnerabilidades
que pueden existir en el propio algoritmo o en la implementación del algoritmo en alguna
versión de un sistema operativo o un driver concreto.
Página 3 de 35
En la criptografía se encuentran los siguientes términos:
Información general: texto que debe protegerse, también se denomina texto claro o
texto plano.
Cifrado: Proceso de convertir texto plano en texto ilegible, denominado texto cifrado o
criptograma.
Cifrado en bloque: dividen el texto origen en bloques de bits de tamaño fijo y los
cifran de manera independiente.
Cifrado de flujo: el cifrado se realza bit a bit, byte a byte o carácter a carácter.
Descifrado: proceso inverso que recupera el texto plano a partir del criptograma.
Página 4 de 35
Ejemplo algoritmo de sustitución:
Los romanos utilizaron sistemas de sustitución, siendo el método actualmente conocido como
César, porque supuestamente Julio César lo empleó en sus campañas. César utilizó un
esquema criptográfico simple pero efectivo para comunicarse con sus generales. El método de
cifrado introducido por Julio César introduce el concepto de clave criptográfica. El
desplazamiento de 3 letras es la clave que se utiliza por César para cifrar el mensaje,
necesitándose la misma clave para descifrarlo. El ejemplo de César muestra un criptosistema
de clave simétrica en el que se utiliza la misma clave para cifrar y descifrar el mensaje.
Ejecutar el siguiente comando para cifrar mediante codificación César un archivo de texto
plano:
#cat document
Este archivo contiene información relevante y datos de los ingresos
periódicos
Pass1: jokoala
Pass2: Ingresos
etc
#cat document_cesar
Hvwh dufklyr frqwlhqh lqirupdflrq b gdwrv gh lqjuhvrv shulrglfrv
Sdvv1: mrnrdod
Sdvv2: Lqjuhvrv
hwf
El comando tr permite realizar una sustitución carácter a carácter. Mediante tuberías o pipes se
han incorporado mayúsculas.
Página 5 de 35
Historia de la Criptografía
El ser humano siempre ha tenido secretos de muy diversa índole, y ha buscado mecanismos
para mantenerlos fuera del alcance de miradas indiscretas. Julio César empleaba un sencillo
algoritmo para evitar que sus comunicaciones militares fueran interceptadas. Leonardo Da
Vinci escribía las anotaciones sobre sus trabajos de derecha a izquierda y con la mano zurda.
Otros personajes, como Sir Francis Bacon o Edgar Allan Poe eran conocidos por su afición a
los códigos criptográficos, que en muchas ocasiones constituían un apasionante divertimento y
un reto para el ingenio.
CLASIFICACIÓN
Página 6 de 35
La Escítala
Página 7 de 35
El cifrado de Polybios
El cifrado de César
Página 8 de 35
El cifrado de Vigenère
Página 9 de 35
Página 10 de 35
La máquina Enigma - Turing
Durante la segunda guerra mundial en un lugar llamado Bletchley Park (70 Km al norte de
Londres) un grupo de científicos trabajaba en Enigma, la máquina encargada de cifrar los
mensajes secretos alemanes.
Página 11 de 35
Tipos De Algoritmos De Cifrado
SIMETRICOS O DE CLAVE SIMETRICA O PRIVADA: Algoritmos que usan una única clave
tanto en el proceso cifrado como en el de descifrado.
Un buen sistema de cifrado pone toda la seguridad en la clave y ninguna en el algoritmo, por lo
tanto es muy importante que sea muy difícil adivinar el tipo de clave, entonces el abanico de
posibles claves debe ser amplio, esto lo posibilita la longitud y el conjunto de caracteres que
emplee.
Ejemplos:
Cifrado DES: Usa una clave de 56 bits, lo que significa que hay 256 claves posibles. Un
ordenador genérico, puede comprobar el conjunto posible de claves en cuestión de días.
3DES, Blowfish e IDEA: Usan claves de 128 bits, que significa que usan 2128 claves
posibles. La mayoría de tarjetas de crédito y otros medios de pago electrónico tienen como
estándar 3DES.
RC5 y AES (Advanced Encryption Estándar), también conocido como Rijndael, estándar
de cifrado por el gobierno de EEUU.
Página 12 de 35
Ejemplos de criptografía simétrica:
el método de Vigenère.
la autenticación de un móvil GSM: por qué sabe que es nuestro número, aunque
metamos la tarjeta SIM en otro teléfono.
El procedimiento es el siguiente:
Los principales problemas de los sistemas del cifrado simétrico, NO son su seguridad, sino:
la gestión de las claves almacenadas. Si en una empresa hay diez trabajadores y todos
tienen conversaciones privadas con todos, cada uno necesita establecer nueve claves
distintas y encontrar nueve canales seguros para actualizarlas cada vez (en total 81 claves
y 81 canales). Si aparece un trabajador nuevo, ahora son 100 claves y 100 canales. Y las
empresas pueden tener muchos trabajadores: 500, 5 000, 50 000... ¿Cada vez que cambie
mi clave tengo que avisar a 49 999 compañeros?
Página 13 de 35
Cifrado simétrico en Linux
Objetivo. Cifrar ficheros con algoritmos simétricos mediante la herramienta gpg, visto
anteriormente en el tema 1.
Recordamos los comandos básicos:
#gpg --symmetric mensaje
#gpg --decrypt mensaje.gpg
Página 14 de 35
Criptografía de clave Asimétrica
En los años setenta, los criptógrafos Diffie y Hellman publicaron sus investigaciones sobre
criptografía asimétrica.
Comparado con la clave simétrica, ahora el emisor no necesita conocer y proteger una clave
propia; es el receptor quien tiene el par de claves. Elige una de ellas (llamada clave pública)
para comunicarla al emisor por si quiere enviarle algo cifrado. Pero ya no hace falta buscar
canales protegidos para enviarla porque, aunque un tercer individuo la conozca, todo lo que se
cifre con esa clave solo se podrá descifrar con la otra clave de la pareja (la clave privada), que
nunca es comunicada. Y matemáticamente es imposible deducir la clave privada conociendo
solo la clave pública.
Como se ilustra en la figura, cuando el emisor quiere hacer llegar un mensaje confidencial al
receptor, primero consigue la clave pública del receptor. Con esa clave y el documento original,
aplica el algoritmo asimétrico. El resultado es un documento cifrado que puede enviar al
receptor por cualquier canal. Cuando el mensaje cifrado llega al receptor, él recupera el
documento original aplicando el algoritmo asimétrico con su clave privada. Si el receptor quiere
enviar al emisor una respuesta cifrada, debería conseguir la clave pública del emisor y seguir el
mismo procedimiento.
Esta pareja de claves es complementaria: lo que cifra una solo lo puede descifrar la otra.
Estas claves se obtienen mediante algoritmos y funciones matemáticas complejas, de forma
que por razones de tiempo de cómputo, es imposible conocer una clave a partir de la otra. Se
basan en funciones resumen o funciones hash de un solo sentido que aprovechan
propiedades particulares, por ejemplo números primos. Una función de un solo sentido es
aquella cuya computación es fácil, mientras que su inversión es extremadamente difícil.
Ejemplo: es fácil multiplicar dos números primos juntos para obtener uno compuesto en sus
componentes primos. Una función resumen o hash de un sentido es algo parecido, pero tiene
una simplificación o atajo.
Algunos de los algoritmos empleados como funciones resumen o hash son MD5 Y SHA. En un
ataque de fuerza bruta sobre un cifrado de clave simétrico con una clave de 80 bits, el atacante
debe probar 280-1 claves para encontrar la clave correcta. En un ataque de fuerza bruta sobre
Página 15 de 35
un cifrado de clave pública con una clave de 512 bits, el atacante debe factorizar un número
compuesto codificado en 512 bits.
Para una misma longitud de clave y mensaje se necesita mayor tiempo de proceso
(debido a la complejidad de los métodos utilizados), por lo que es poco eficiente.
Las claves deben ser de mayor tamaño que las simétricas. Se recomienda el uso de
claves públicas de 1024 bits (mínimo).
DSS (Digital Signature Standard) con el algoritmo DSA (Digital Signature Algorithm).
PGP y GPG una implementación OpenPGP.
SSH, SSL Y TLS.
Página 16 de 35
Página 17 de 35
Página 18 de 35
Página 19 de 35
Criptografía Hibrida
El uso de claves asimétricas ralentiza el proceso de cifrado, para solventarlo, el procedimiento
que se suele seguir es utilizar un esquema híbrido:
Criptografía asimétrica solo para el inicio de la sesión, cuando hay que generar un
canal seguro donde acordar la clave simétrica aleatoria que se utilizará en esa
conversación.
La clave que utiliza se llama clave de sesión y se genera aleatoriamente. Para enviar la
clave de sesión de forma segura, ésta se cifra con la clave pública de B, utilizando por lo
tanto criptografía de clave asimétrica.
B recibe el mensaje cifrado con la clave de sesión y esta misma cifrada con su clave
pública. Para realizar el proceso inverso, en primer lugar utiliza su clave privada para
descifrar la clave de sesión.
Una vez obtenida la clave de sesión, pueden seguir el diálogo cifrando con el algoritmo
simétrico acordado y la clave simétrica recibida.
Página 20 de 35
Firma Digital
La firma digital permite al receptor de un mensaje verificar la autenticidad del origen de la
información, así como verificar que dicha información no ha sido modificada desde su
generación. Ofrece el soporte para la autenticación e integridad de los datos así como para el
no repudio en origen, ya que la persona que origina un mensaje firmado digitalmente no
puede argumentar que no lo hizo.
Una firma digital es imposible de falsificar, mientras no se descubra la clave privada del
firmante. La firma digital es el resultado de cifrar con clave privada el resumen de los datos
a firmar, haciendo uso de funciones resumen o hash, para evitar el inconveniente de los
algoritmos de clave pública (lentitud, que crece con el tamaño del mensaje a cifrar).
Las funciones hash son cálculos matemáticos (algoritmos) que asocian a cada documento un
número y que sirven para comprobar que la información recibida se corresponde
exactamente con la información enviada.
2. A resume el mensaje o datos mediante una función hash. El resultado de esta función es
una lista de caracteres, el resumen, que la función garantiza que solo se pueden haber
obtenido con el documento original (el algoritmo de la función hash no necesita una clave
extra como los algoritmos de cifrado)
3. Cifra el resultado de la función hash con su clave privada. De esta forma obtiene su firma
digital
4. Envía a B el mensaje original junto con firma. B recibe el mensaje junto a la firma digital.
Debe comprobar la validez de ésta para dar por bueno el mensaje y reconocer el autor del
mismo (integridad y autenticación).
7. Compara el resumen recibido descifrado, con el obtenido a partir de la función hash. Si son
iguales, B puede estar seguro de quien ha enviado el mensaje es A y que este no ha sido
modificado.
Página 21 de 35
Por supuesto, si queremos que el documento original no pueda ser interceptado en la
transmisión desde el emisor al receptor, debemos cifrarlo. Para ello usaremos la clave pública
del receptor.
El emisor toma su clave privada para aplicar el algoritmo asimétrico al documento resumen.
El resultado es un documento resumen cifrado.
El emisor toma la clave pública del receptor para aplicar el algoritmo asimétrico al
documento original y al documento resumen. El resultado es un documento conjunto
cifrado que se envía al receptor.
En el receptor, utiliza su clave privada para descifrar los documentos y la clave pública del
origen para comprobar la firma.
Página 22 de 35
Página 23 de 35
Página 24 de 35
-o /tmp/profesor.
Página 25 de 35
Página 26 de 35
Página 27 de 35
Página 28 de 35
Página 29 de 35
Certificados Digitales
Para garantizar la unicidad de las claves privadas se suele recurrir a soportes físicos tales
como tarjetas inteligentes (SmartCards) que garantizan la imposibilidad de la duplicación de las
claves. Además, las tarjetas criptográficas suelen estar protegidas por un numero personal o
PIN solo conocido por su propietario que garantiza que, aunque se extravíe la tarjeta, nadie
que no conozca dicho numero podrá hacer uso de ella, como caso particular se encuentra el
DNI electrónico DNIe.
Por otra parte, para asegurar que una determinada clave pública pertenece a un usuario en
concreto se utilizan los certificados digitales o documento electrónico que asocia una
clave pública con la identidad de su propietario. Un certificado digital es un archivo que
puede emplear un software para firmar digitalmente archivos y mensajes, en los cuales
puede verificarse la identidad del firmante.
Con clave privada (suele tener extensión *.pfx ó *.p12) más seguro y destinado a un uso
privado de exportación e importación posterior como método de copia de seguridad.
Solo con clave pública (suele ser extensión *.cer ó *.crt), destinado a la distribución no
segura, para que otras entidades o usuarios tan solo puedan verificar la identidad, en los
archivos o mensajes firmados.
Los dos primeros apartados son el contenido fundamental del certificado (identidad y clave
pública asociada), en tanto que los otros dos son datos imprescindibles para poder validar el
certificado.
Página 30 de 35
Terceras Partes De Confianza - PKI
¿Cómo confiar si un determinado certificado es válido o esta falsificado? La validez de un
certificado es la confianza en que la clave pública contenida en el certificado pertenece al
usuario indicado en el certificado.
La manera en que se puede confiar en el certificado de un usuario con que nunca se ha tenido
relación previa es mediante la confianza en terceras partes. La idea consiste en que dos
usuarios puedan confiar directamente entre sí, si ambos tienen relación con una tercera
parte y que ésta puede dar fe de la fiabilidad de los dos.
La necesidad de una Tercera Parte Confiable (TPC o TTP Trusted Third Party) es fundamental
en cualquier entorno de clave pública de tamaño considerable debido a que es impensable que
los usuarios hayan tenido relaciones previas antes de intercambiar información cifrada o
firmada. Además, la mejor forma de permitir la distribución de las claves públicas (o
certificados digitales) de los distintos usuarios es que algún agente, en quien todos los
usuarios confíen, se encargue de su publicación en algún repositorio al que todos los usuarios
tengan acceso.
La forma en la que esta tercera parte avala la fiabilidad del certificado es mediante su
firma digital sobre el certificado. La TPC que se encarga de la firma digital de los certificados
de los usuarios de un entorno de clave pública, se conoce con el nombre de Autoridad de
Certificación (CA).
De esta manera se alcanzan los cuatro objetivos de la seguridad informática que estudiamos
en la primera unidad: autenticidad, confidencialidad, integridad y no repudio.
Página 31 de 35
El funcionamiento es el siguiente:
Durante el inicio de la sesión, el servidor envía su clave pública al cliente para que cifre el
diálogo que van comenzar (autenticación usuario/contraseña, etc.); pero el cliente, antes de
utilizarla, desconfía: necesita comprobar que el servidor es quien dice ser.
El servidor lo ha supuesto y ha enviado, junto con su clave pública, la firma digital de esa
clave. Esa firma digital ha sido realizada por una CA oficial utilizando la clave privada de
esa CA.
El cliente puede verificar la firma recibida utilizando la clave pública de la CA. Si la firma es
correcta, la clave pública del servidor también lo es y podemos iniciar la sesión segura con
toda confianza.
Por tanto, para que funcione la autenticación de una clave pública mediante PKI, se necesitan
dos pasos previos:
El servidor ha conseguido que una CA le firme su clave pública. Por ejemplo: VeriSign,
FNMT, etc.
Realmente, las CA no emiten un simple fichero con la firma, como hemos visto hasta ahora en
los casos prácticos (ficheros .gpg o .asc); ni encontramos suelta la clave pública de una CA
para importarla. Es importante la información complementaria: quién firma, para quién firma,
qué usos tiene la clave (cifrado y firmado, solo firmado, etc.), en qué fecha se firmó, cuándo
caduca esa firma, qué algoritmos se han utilizado, etc. Esta información se recoge en una
estructura que constituye el certificado digital, según el estándar X.509. Por tanto, en el
funcionamiento de una PKI los usuarios importan certificados de CA y los servidores envían
sus claves públicas dentro de certificados. Ahora bien, ¿cómo podemos estar seguros de que
la clave pública de la CA es auténtica? Porque se ha instalado en nuestro ordenador de
manera segura: bien porque forma parte de la instalación del sistema operativo, bien porque en
algún momento la hemos importado voluntariamente. Se suelen llamar certificados raíz (root
certificates).
Página 32 de 35
Página 33 de 35
Página 34 de 35
DNIe
A modo de ejemplo de PKI vamos a estudiar el DNI electrónico (DNIe), recientemente
implantado en nuestro país. Tiene el mismo tamaño que el DNI anterior y también aparecen
escritos los datos de identificación de la persona. La diferencia es un pequeño chip que lo
convierte en una tarjeta inteligente.
Claves de cifrado asimétrico. El DNIe incluye claves distintas para firmar y para cifrar:
utilizar mucho una clave la expone a análisis criptográficos. Si al final alguien consigue
nuestra clave de cifrado, por lo menos que no pueda firmar contratos en nuestro nombre.
Según el esquema PKI, la misma comisaría (en general, la Policía) hace de CA (emite el
certificado) y también de RA (ha confirmado quiénes somos). El sobre ciego que nos entregan
con el DNIe contiene la clave simétrica que permite utilizar la clave privada para descifrar o
firmar.
Página 35 de 35