0% encontró este documento útil (0 votos)
45 vistas50 páginas

Criptografía: Cifrado Simétrico y Asimétrico

Cargado por

zeldameme.10
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
45 vistas50 páginas

Criptografía: Cifrado Simétrico y Asimétrico

Cargado por

zeldameme.10
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

INGENIERÍA EN

DESARROLLO Y GESTIÓN DE
SOFTWARE

Seguridad Informática
Unidad II. Criptografía
Temario

2. Criptografía

• Algoritmos de cifrado
• Algoritmos hash
Algoritmos de cifrado
Introducción

• La criptografía es el método que se aplica a un mensaje


para cifrar y descifrar de tal manera que solo sea visible el
texto en claro para el emisor y el receptor de dicho mensaje
• La principal característica es ser totalmente ilegible para
cualquiera que lo intercepte en mitad de la transmisión, y a
su vez, que sea lo suficientemente seguro como para
aguantar cualquier ataque que pueda comprometer la
información que se está transmitiendo.
Introducción

Existen dos tipos de cifrado según el tipo de sus claves:


• La criptografía cuyos algoritmos solo usan una clave, o
criptografía simétrica, y
• la criptografía de algoritmos de dos llaves, criptografía
asimétrica.
Criptografía simétrica

● Un sistema de cifrado simétrico es un tipo de cifrado que


usa una misma clave para cifrar y para descifrar.
● Las dos partes que se comunican mediante el cifrado
simétrico deben estar de acuerdo en la clave a usar de
antemano.
● Una vez de acuerdo, el remitente cifra un mensaje usando
la clave, lo envía al destinatario, y éste lo descifra usando
la misma clave.
Criptografía simétrica

Enigma
Éste es un sistema que fue usado por Alemania, en el que las
claves se distribuían a diario en forma de libros de códigos.
Cada día, un operador de radio, receptor o transmisor,
consultaba su copia del libro de códigos para encontrar la
clave del día.
Todo el tráfico enviado por ondas de radio durante aquel día
era cifrado y descifrado usando las claves del día.
Aplicación actual

Puesto que el cifrado simétrico es más rápido y eficiente que el


cifrado asimétrico, se suele utilizar más para el cifrado de grandes
cantidades de datos.
❏ Aplicaciones de pago, por ejemplo, en transacciones con
tarjetas en las que es preciso proteger el PIN para evitar el
robo de identidad.
❏ Conseguir certificar y afirmar que el emisor del mensaje es la
persona que dice ser.
❏ Protección en comunicación digital, internet o tv digital.
DES (Estándar de cifrado de datos)

• DES fue desarrollado por IBM a principios de la década de


1970 para proporcionar una forma segura de cifrar datos
que es fácil de usar e implementar.
• DES divide los datos en bloques de bits de 64 bits y
utiliza una clave de 56 bits para cifrar los datos. Sin
embargo, se considera que DES es menos seguro y NIST
lo retiró como estándar de cifrado.
DES (Estándar de cifrado de datos)

• El problema con este algoritmo es que no se considera seguro


por el tamaño de la clave de 56 bits.
• La baja cantidad de bits de seguridad hace que este sistema sea
susceptible a ataques de fuerza bruta, es decir, la generación de
claves aleatorias hasta encontrar la correcta.
• El número de claves posibles de este algoritmo puede calcularse
elevando 562, lo cual da un número total de opciones que una
computadora sería capaz de probar en un ciberataque.
3DES (Triple estándar de cifrado de
datos)

• Este algoritmo se basa en el algoritmo DES, que aplica


una serie de operaciones básicas para convertir un texto
en otro cifrado, empleando una clave criptográfica.
• 3DES es el algoritmo que hace triple cifrado del DES; se
basa en aplicarlo tres veces, con tres claves distintas, por
lo que resulta mucho más seguro.
• Este método está siendo paulatinamente sustituido por el
AES, ya que este es hasta seis veces más rápido.
AES (Estándar de cifrado avanzado)

• El algoritmo AES, también conocido como AES GCM, AES-


256-GCM o Rijndael, es una función matemática de
encriptación creada en Bélgica y adoptada por el gobierno
de los Estados Unidos como estándar en el año 2001.
• Desde entonces, se conoce como el método de cifrado
por bloques más seguro que existe, ya que en la práctica
no se puede romper y, además, es rápido y eficiente.
AES (Estándar de cifrado avanzado)

• El algoritmo AES fue descubierto gracias al concurso


Advanced Encryption Standard, al cual se presentó con su
nombre original, Rijndael, que luego fue reemplazado con
el mismo nombre del premio.
• El concurso lo organizó el gobierno de los Estados Unidos
con el fin de reemplazar al algoritmo DES (Data
Encryption Standard), que se utilizaba desde 1976, pero
era demasiado vulnerable a un ataque de fuerza bruta.
AES (Estándar de cifrado avanzado)

• Con una seguridad de 128, 192 o AES-256-GCM bits y un


tamaño de bloque de 128 bits, se puede afirmar que el
algoritmo AES GCM es seguro, rápido y eficiente.
• Por eso es el algoritmo de cifrado por bloques más
utilizado de la actualidad y la mayoría de procesadores
incluyen instrucciones para cifrar y descifrar información
con este método.
AES (Estándar de cifrado avanzado)

• Con una seguridad de 128, 192 o AES-256-GCM bits y un


tamaño de bloque de 128 bits, se puede afirmar que el
algoritmo AES GCM es seguro, rápido y eficiente.
• Por eso es el algoritmo de cifrado por bloques más
utilizado de la actualidad y la mayoría de procesadores
incluyen instrucciones para cifrar y descifrar información
con este método.
Algoritmo general de AES
Funcionamiento

Texto en claro (128bits):

Contrary to play, Lorem Ipsum is not simply random text. It


has roots in a piece of classical Latin literature from 45 BC,
making it over 2000 years old. Richard McClintock, a Latin
professor at Hampden-Sydney College in Virginia, looked up
one of the more obscure Latin words, consectetur, from a
Lorem Ipsum passage, and going through the cites of the
word in classical literature, discovered the undoubtable
source.
Funcionamiento

Texto en claro (128bits):


C o n t r a r y t o p l a y (ASCII)
43 6F 6E 74 72 61 72 79 20 74 6F 20 70 6C 61 79 (Hex)

Clave de cifrado:
c l a v e d e 1 2 8 b i t s (ASCII)
63 6C 61 76 65 20 64 65 20 31 32 38 62 69 74 73 (Hex)

* Puede ser de 128, 192 o 256 bits


Funcionamiento

Matriz de estado:

C r p
43 72 20 70
Operaciones sobre la
o a t l matriz:
6F 61 74 6C
● Sustitución
n r o a ● Permutación
6E 72 6F 61
● Polinómicas
t y y
74 79 20 79
Funcionamiento

Texto en claro

Inicio

Clave de cifrado:
c l a v e d e 1 2 8 b i t s (ASCII) 9
rondas
63 6C 61 76 65 20 64 65 20 31 32 38 62 69 74 73
(Hex)
Ronda
* Para clave de 192 o 256 bits serán 12 y 14
10
vueltas respectivamente

Criptograma
Funcionamiento

Clave128 Texto en claro

En cada una de estas vueltas se K0 Inicio


usará una clave de vuelta
generada a partir de la clave
N-1
principal. Ki
rondas

Ronda
Kn
N

Criptograma
Funciones principales

En esta operación realiza la suma XOR exclusiva de la


AddRoundKey
clave de cada vuelta con los valores de la matriz de
estado.

En esta operación se ejecuta una sustitución de cada uno


SubBytes
de los 16 bytes de la matriz de estado mediante una
tabla.

En esta operación consiste en una permutación de las


ShiftRows filas del estado, de forma que la primera fila no rota, la
segunda rota 1 byte, la tercera 2 bytes y la cuarta 3
bytes.
En esta operación es más compleja, que consiste en
MixColumns multiplicar cada una de las columnas de la matriz de
estado por un polinomio fijo.
Funciones principales

Aquí se inicia y se realiza la Clave128 Texto en claro


suma XOR entre bytes de
mensaje y clave K0 AddRoundKe
y
63 65 20 62 43 72 20 70

6C 20 31 69 ⊕ 6F 61 74 6C
N-1
61 64 32 74 6E 72 6F 61 Ki
rondas
76 65 38 73 74 79 20 79

Clave Mensaj
20 17 00 12 e Ronda
Kn
03 41 45 05 N
0F 16 5D 15

02 1C 18 0A Resultad Criptograma
o
• , Lorem Ipsum is

63 65 20 62

6C 20 31 69

61 64 32 74

76 65 38 73

Clave Mensaj
e

Resultad
o
Funciones principales
Clave128 Texto en claro
Se calcularán 10 subclaves
para 128 bits, una para cada K0 AddRoundKe
y
vuelta mediante una función
llamada expansión de clave.
N-1
Ki
K0 rondas

K1 K2 K3 K4 K5 Ronda
Kn
N

K6 K7 K8 K9 K1 Criptograma
Funciones principales
Texto en claro
Clave128
Se realizarán las 4
AddRoundKe
operaciones durante 9 K0 y

vueltas.
SubBytes
ShiftRows
Ki
Al finalizar, solo se ejecutarán MixColumns
AddRoundKe
3 operaciones. y

SubBytes
Kn
ShiftRows
AddRoundKe
y

Criptograma
Criptograma

Matriz de estado:

5D D4 63 59 Criptograma resultante del primer


bloque:
42 A1 EA 31
5D42A7AB D4A11FE4 63EAFE15
A7 1F FE 69 593169A2

AB E4 15 A2
Descifrado

Texto en claro
Clave128
Para el descifrado se
InvAddRoundK
recorrerá el algoritmo en K0 ey

sentido inverso y cada


operación tiene su función InvSubBytes

inversa. Ki
InvShiftRows
InvMixColumns
InvAddRoundK
ey

InvSubBytes
Kn
InvShiftRows
InvAddRoundK
ey

Criptograma
Criptografía asimétrica

● El principal problema con los sistemas de cifrado


simétrico no está ligado a su seguridad, sino al
intercambio de claves, básicamente el canal de
comunicación de la clave.
● Otro problema es el número de claves que se necesitan,
porque si tenemos un número de n personas, entonces se
necesitan n(n-1)/2 claves para cada pareja de personas
que tengan que comunicarse de modo privado.
● Los sistemas de cifrado de clave pública se inventaron
con el fin de evitar por completo el problema del
intercambio de claves.
Criptografía asimétrica

● Un sistema de cifrado de clave pública usa un par de


claves para el envío de mensajes.
● Las dos claves pertenecen a la misma persona a la que
se ha enviado el mensaje.
● Una clave es pública y se puede entregar a cualquier
persona.
● La otra clave es privada y el propietario debe guardarla
para que nadie tenga acceso a ella.
● El remitente usa la clave pública del destinatario para
cifrar el mensaje, y una vez cifrado, sólo la clave privada
del destinatario podrá descifrar este mensaje.
Criptografía asimétrica

● No hay necesidad de que el remitente y el destinatario


tengan que ponerse de acuerdo en una clave.
● Todo lo que se requiere es que, antes de iniciar la
comunicación secreta, el remitente consiga una copia de la
clave pública del destinatario.
● Es más, esa misma clave pública puede ser usada por
cualquiera que desee comunicarse con su propietario. Por
tanto, se necesitarán sólo n pares de claves por cada n
personas que deseen comunicarse entre ellas.
Aplicación actual

La criptografía de clave pública suele utilizarse en:


• el tráfico de correo electrónico, en el método de cifrado
estándar S/MIME,
• en las firmas digitales y en
• protocolos criptográficos como SSL/TLS, SSH y HTTPS
Algoritmos hash
Función Hash

• Una función hash es un proceso que transforma cualquier


conjunto arbitrario de datos en una nueva serie de
caracteres con una longitud fija, independientemente del
tamaño de los datos de entrada.
• El resultado obtenido se denomina hash, resumen, digest
o imagen. Muchas veces, el término “hash” se utiliza tanto
para referirse a la función hash como al valor resultado de
ejecutar dicha función sobre un mensaje en particular.
Función Hash

• A los datos que van a ser procesados por la función hash


se le denomina mensaje o preimagen.
• El conjunto de todos los posibles mensajes o preimágenes
es el dominio o espacio de mensajes.
Función Hash

• A los datos que van a ser procesados por la función hash


se le denomina mensaje o preimagen.
• El conjunto de todos los posibles mensajes o preimágenes
es el dominio o espacio de mensajes.
Función Hash

Por ejemplo, si se utiliza la función hash SHA2562 para determinar el


valor hash de “Hola” se obtendrá como resultado el siguiente
resumen:

SHA256(Hola) =
E633F4FC79BADEA1DC5DB970CF397C8248BAC47CC3ACF9915BA60B5D76B0E8
8F

En este caso, “Hola” se traduce en un conjunto de bits, a partir de los


cuales y tras una serie de operaciones, se obtiene una cadena de 256
bits (representados aquí con su valor en decimal).
Función Hash

Si, por el contrario, se introduce en la función hash un


mensaje más complejo, por ejemplo, el texto completo del
libro de El Quijote en formato pdf (471 páginas), el resultado
de la función hash será distinto, pero el resultado será un
resumen con el mismo tamaño en bits:
SHA256 (<<Texto de El Quijote en pdf>>) =
6030695808272962748720037573007478266683539207
7101919947310301380935652572169
Propiedades de una Función Hash

Las propiedades ideales de una función hash son:


• Permite ejecutarse sobre contenido digital de cualquier tamaño y
formato. Al final, todo contenido digital son números para el
ordenador: textos, fotografías, videos, etc.
• Dada una entrada cualquiera, produce una salida numérica de
tamaño fijo.
• Reconstruir el mensaje original a partir del resultado de la función
hash debe ser extremadamente costoso, sino imposible.
• Una mínima variación en el mensaje original (un bit) ha de producir
un hash totalmente distinto (difusión).
Propiedades de una Función Hash

• Si se selecciona un mensaje de entrada, encontrar otro mensaje que


tenga el mismo resumen ha de resultar extremadamente costoso
(colisión débil).
• También ha de ser extremadamente costoso encontrar dos mensajes
cualesquiera que tengan el mismo resumen (colisión fuerte).
• El algoritmo de hash deberá cubrir de forma uniforme todo el espacio
de hash, los que significa que cualquier resultado de la función hash
tiene, a priori, la misma probabilidad de ocurrencia que cualquier
otro.
Descripción de una Función Hash

En general, una función hash funciona de la siguiente forma:


• El mensaje de entrada se divide en bloques.
• Un fórmula calcula el hash, un valor con un tamaño fijo, para
el primer bloque.
• Se calcula el hash del siguiente bloque y suma al resultado
anterior.
• Se realiza el mismo proceso sucesivamente hasta que se
recorren todos los bloques.
Ejemplo de una Función Hash

Un ejemplo muy sencillo de función hash lo podemos plantear a


continuación.
• Diseñemos una función hash que a partir de un texto genera un
hash de tamaño tres dígitos decimales (del 000 al 999). A su
vez, como mensaje para calcular el hash sea el texto de El
Quijote:
En un lugar de la Mancha de cuyo nombre no quiero acordarme
no ha mucho tiempo que vivía un hidalgo de los de lanza en
astillero … etc.
Ejemplo de una Función Hash

En primer lugar, se dividiría el texto en bloques de, para este


ejemplo, veinte caracteres. De esta forma, en la siguiente
tabla cada fila representa un bloque:
Ejemplo de una Función Hash

A continuación, a cada carácter se le asignaría un valor


numérico, por ejemplo: A=1; B=2; C=3; ….
Y finalmente cero para el espacio. Para el primer bloque del
ejemplo se obtendría la siguiente codificación:
Ejemplo de una Función Hash

El valor de hash se podría calcular de muchas formas, por ejemplo, se


puede multiplicar el valor asociado a un carácter con su posición en el
bloque y, a continuación, sumar todos los resultados.
Para este bloque en concreto, dicho proceso daría como resultado el
valor 1331.
Como se ha comentado que esta función hash tendrá como resultado
sólo tres dígitos decimales, podemos truncar el resultado
directamente eliminando los dígitos por encima del tercero, por lo
tanto, el valor obtenido del hash para el primer bloque sería 331.
Ejemplo de una Función Hash

A continuación, se procedería con la segunda fila o bloque:

Operando la función hash sobre el mismo bloque se


obtendría el valor 1947,trucando por encima del tercer
dígito el resultado final sería 947.
Ejemplo de una Función Hash

A continuación, se encadenarían los dos bloques mediante


una operación de suma del resultado de los dos bloques
331+947 = 1278, truncando de nuevo el valor de hash de
los dos primeros bloques tendría como resultado 278.
El proceso se repetiría con todas las filas o bloques hasta
obtener el resultado final.
Ejemplo de una Función Hash

El sistema aquí presentado no tiene unas buenas


propiedades como función hash: el valor del hash tiene una
longitud demasiado pequeña (solo existen 1000 valores
posibles), hay medios puede alterar el texto y preservar el
hash9, no es eficiente su implementación, etc.
Por ello, se han desarrollado otros tipos de funciones hash
más adecuadas como la familia SHA10, MD511 u otros12.

También podría gustarte