Algoritmos de Cifrado

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

UNIVERSIDAD AUTONÓMA DE NUEVO LEÓN

FACULTAD DE CIENCIAS FÍSICO MATEMÁTICAS

Seguridad en informática.
Algoritmos de cifrado.

Profesor: Lic. Miriam Patricia Vargas Zúñiga.

Nombres Matriculas
Karen Marlene Álvarez Valdez 1630724
Johana Stephany Barroso Zeferino 1719784
Jorge Aguilar Carrasco 1542908

San Nicolás de los Garza a martes, 20 de Marzo de 2017.


Contenido.
Introducción........................................................................................................... 3
Diffie-Hellman. ....................................................................................................... 4
RSA (Rivest, Shamir y Adleman). ........................................................................ 5
DSA (Digital Signature Algorithm). ...................................................................... 7
WEP (Wired Equivalent Privacy). ......................................................................... 9
AES (Advanced Encryption Estándar). ............................................................. 10
Conclusión. .......................................................................................................... 12
Bibliografía........................................................................................................... 13

2
Introducción.

En la actualidad, es muy importante tener seguridad en todos aquellos medios que


utilizamos a diario, ya que en ellos compartimos una cantidad infinita de información, que
puede ser desde alguna muy simple hasta aquella personal y confidencial. Es por eso que
ya existen métodos de criptografía para que esos mensajes que contienen nuestra
información puedan ser cifrados y descifrados y así poder darles confidencialidad. Es
necesario que estos mensajes utilicen alguno de los algoritmos existentes para poder llevar
a cabo el cifrado.

3
Diffie-Hellman.

Fue uno de los métodos pioneros de intercambio de claves en un esquema de alta


seguridad. Para la implementación de un ejemplo sencillo de este algoritmo sobre la
programación con Socket, se debe de hacer lo siguiente:

1. Definir dos números primos muy grandes los cuales tendrán las funciones de generador
(g) y primo de referencia (p). Por lo general, siempre se designa, en el esquema de
intercambio a un equipo/entidad, con funciones de servidor, que defina estos números y los
de a conocer a sus pares del mismo esquema.
Esta primera notificación indica el inicio del ciclo de seguridad de intercambio de claves.

2. Cada equipo/entidad debe de definir una clave privada, la cual puede de ser un número
no primo; sin embargo, debe de ser un número muy alejado del cero en la recta numérica,
es decir, un número muy grande.
3. Cada equipo/entidad debe de generar una clave pública, a partir del número generador
(g), del número primo de referencia (p) y de la clave privada, según la fórmula siguiente:

4. Cada equipo/entidad debe de intercambiar la clave pública generada en el inciso anterior.


Al momento de la recepción de la clave pública de los pares, se debe de generar una clave
de verificación, como lo muestra el siguiente procedimiento:

5. Las claves de verificación deben de ser iguales entre sí, tal a como se muestra en la
ilustración siguiente:

4
RSA (Rivest, Shamir y Adleman).

El sistema criptográfico con clave pública RSA es un algoritmo asimétrico cifrador de


bloques, que utiliza una clave pública, la cual se distribuye (en forma autenticada
preferentemente), y otra privada, la cual es guardada en secreto por su propietario.

Una clave es un número de gran tamaño, que una persona puede conceptualizar como un
mensaje digital, como un archivo binario o como una cadena de bits o bytes. Cuando se
envía un mensaje, el emisor busca la clave pública de cifrado del receptor y una vez que
dicho mensaje llega al receptor, éste se ocupa de descifrarlo usando su clave oculta.

Los mensajes enviados usando el algoritmo RSA se representan mediante números y el


funcionamiento se basa en el producto de dos números primos grandes (mayores que
10100) elegidos al azar para conformar la clave de descifrado.

La seguridad de este algoritmo radica en que no hay maneras rápidas conocidas de


factorizar un número grande en sus factores primos utilizando computadoras tradicionales.
La computación cuántica podría proveer una solución a este problema de factorización.

RSA es desarrollado en 1977 en el MIT por Ronald Rivest, Adi Shamir y Leonard Adelman.
Fue registrado el 20 de Septiembre de 1983. El 20 de Septiembre del 2000, tras 17 años,
expiró la patente RSA, pasando a ser un algoritmo de dominio público. Este popular sistema
se basa en el problema matemático de la factorización de números grandes.

El algoritmo RSA funciona de la siguiente manera:

Inicialmente es necesario generar aleatoriamente dos números primos grandes, a los que
llamaremos p y q.

A continuación calcularemos n como producto de p y q: n = p * q


Se calcula fi: fi(n)= (p-1) (q-1)

Se calcula un número natural e de manera que MCD (e, fi(n))= 1, es decir e debe ser primo
relativo de fi(n). Es lo mismo que buscar un número impar por el que dividir fi(n) que de cero
como resto.

Mediante el algoritmo extendido de Euclides se calcula d: e.d mod fi(n)=1


Puede calcularse d= ((Y*fi(n))+1)/e para Y=1, 2, 3,… hasta encontrar un d entero.

El par de números (e,n) son la clave pública.


El par de números (d,n) son la clave privada.

Cifrado: La función de cifrado es C = M^e mod n


Descifrado: La función de descifrado es M = C^d mod n
Ejemplo con números pequeños

Escogemos dos números primos, por ejemplo p=3 y q=11.

5
n = 3 * 11 = 33
fi (n) = (3-1) * (11-1) = 20

Buscamos e: 20/1=0, 20/3=6.67.e =3

Calculamos d como el inverso multiplicativo módulo z de e, por ejemplo, sustituyendo Y por


1, 2, 3,… hasta que se obtenga un valor entero en la expresión:
d = ((Y * fi(n)) + 1) / e = (Y * 20 + 1) / 3 = 21 / 3 = 7

e = 3 y n = 33 son la clave pública


d = 7 y n = 33 son la clave privada

Cifrado: Mensaje = 5, C = M^e mod n = 5^3 mod 33 = 26


Descifrado: M = C^d mod n = 26^7 mod 33 = 8031810176 mod 33 = 5

6
DSA (Digital Signature Algorithm).

El algoritmo de firma digital (DSA, Digital Signature Algorithm) emplea un algoritmo de


firma y cifrado distinto al del RSA, aunque ofrece el mismo nivel de seguridad. Lo propuso
el National Institute of Standards and Technology (NIST) en 1991 y fue adoptado por los
Federal Information Processing Standards (FIPS) en 1993. Desde entonces se ha
revisado cuatro veces.
Con el certificado DSA es más fácil estar al día en cuanto a normas gubernamentales, ya
que lo respaldan las agencias federales (incluyendo el cambio obligatorio a las claves de
2048 bits).
Si quiere mejorar aún más la seguridad, puede ejecutar RSA y DSA de forma simultánea.
Los servidores Apache, por ejemplo, pueden ejecutar los certificados RSA y DSA
simultáneamente en el mismo servidor web. En una ventaja para aquellas empresas que
quieran maximizar el alcance en la correspondencia corporativa de su organigrama.
Generación de la clave:

 Elegir un número primo p de L bits, donde 512 ≤ L ≤ 1024 y L es divisible por 64.
 Elegir un número primo q de 160 bits, tal que p−1 = qz, donde z es algún número
natural.
 Elegir h, donde 1 < h < p − 1 tal que g = hz(mod p) > 1.
 Elegir x de forma aleatoria, donde 1 < x < q-1.
 Calcular y = gx(mod p).
Los datos públicos son p, q, g e y. x es la clave privada.
Firma:

 Elegir un número aleatorio k, donde 1 < k < q.


 Calcular r = (gk mod p)mod q.
 Calcular s = k-1(H(m)+r*x) mod q, donde H(m) es la función hash SHA-1 aplicada al
mensaje m.
 La firma es el par (r, s).
Si r ó s es cero, se vuelve a repetir el procedimiento.
Verificación:

 Calcular w = (s)-1(mod q).


 Calcular u1 = H(m)*w(mod q).
 Calcular u2 = r*w(mod q).
 Calcular v = [gu1*yu2mod p] mod q.
 La firma es válida si v = r.

Demostración del algoritmo:


El esquema de la firma está correcto en el sentido que el verificador aceptará siempre firmas
genuinas. Esto puede ser demostrado como sigue:

7
El firmante computa

Entonces

Ya que g tiene orden q tenemos que

Finalmente, la correctitud de DSA surge de

8
WEP (Wired Equivalent Privacy).
WEP, siglas del inglés de Wired Equivalent Privacy o "Privacidad Equivalente a
Cableado", es el sistema de cifrado incluido en el estándar IEEE 802.11 como protocolo
para redes Wireless que permite cifrar la información que se transmite. Proporciona un
cifrado a nivel 2. Según el estándar 802.11, el cifrado de datos WEP se utiliza para
impedir

1. El acceso a la red de "intrusos" que utilicen equipos de LAN inalámbrica similares


2. Para capturar el tráfico de LAN inalámbrica a través de escucha secreta

WEP permite al administrador definir un conjunto de "claves" para cada usuario de la red
inalámbrica basadas en "cadenas de clave" que se someten al algoritmo de cifrado WEP.
Se deniega el acceso a todo aquel que no disponga de la clave exigida. Conforme a lo
especificado en la norma, WEP utiliza el algoritmo RC4 con una clave de 40 bits o de 128
bits. Cuando está activada la seguridad WEP, cada estación (clientes y puntos de acceso)
dispone de una clave. La clave se utiliza para cifrar los datos antes de transmitirlos a
través de ondas. Si una estación recibe un paquete que no está cifrado con la clave
adecuada, el paquete es rechazado y no se envía al host, lo que impide el acceso no
autorizado y el espionaje.

9
AES (Advanced Encryption Estándar).

El estándar de cifrado (encriptación) avanzado, es uno de los algoritmos más seguros y


más utilizados hoy en día. Está clasificado por la Agencia de Seguridad Nacional (NSA), de
EE.UU para la seguridad más alta de información secreta “Top Secret”. AES es uno de los
algoritmos más populares usados en criptografía simétrica.
Su algoritmo no se basa en redes de Feistel, y en su lugar se ha definido una estructura de
"capas" formadas por funciones polinómicas reversibles (tienen inversa) y no lineales.
El algoritmo se basa en varias sustituciones, permutaciones y transformaciones lineales,
ejecutadas en bloques de datos de 16 bytes - por lo que se le llama blockcipher. Estas
operaciones se repiten varias veces, llamadas "rondas". En cada ronda, un único
“roundkey” se calcula de la clave de encriptación, y es incorporado en los cálculos. Basado
en esta estructura de bloque de AES, el cambio de un solo bit, ya sea en la clave, o en los
bloques de texto simple y claro, resulta en un bloque de texto cifrado/encriptado
completamente diferente - una clara ventaja sobre cifrados de flujo tradicionales.
La diferencia entre AES-128, AES-192 y AES-256, es la longitud de la clave: 128, 192 o
256 bits. A modo de ejemplo: Descifrar una clave de 128 bits AES con una
supercomputadora estándar del momento, llevaría más tiempo que la presunta edad del
universo.
Hasta el día de hoy, no existe posible ataque contra AES. Por lo tanto, sigue siendo
preferido por los gobiernos, los bancos y los sistemas de alta seguridad de todo el mundo.

10
Pseudocódigo

 Expansión de la clave usando el esquema de claves de Rijndael.


 Etapa inicial:

1. AddRoundKey

 Rondas:
1. SubBytes: Se realiza una sustitución no lineal donde cada byte es reemplazado
con otro de acuerdo a una tabla de búsqueda.
2. ShiftRows: Se realiza una transposición donde cada fila del «state» es rotada
de manera cíclica un número determinado de veces.
3. MixColumns: Operación de mezclado que opera en las columnas del «state»,
combinando los 4 bytes en cada columna usando una transformación lineal.
4. AddRoundKey: Cada byte del «state» es combinado con la clave «round»; cada
clave «round» se deriva de la clave de cifrado usando una iteración de la clave.

11
Conclusión.

La mayoría de los algoritmos actuales se apoyan en los conceptos de Confusión y Difusión,


ya que estos métodos consisten en ocultar la relación entre el texto plano, el texto cifrado y
la clave (Confusión); y repartir cada bit del mensaje original lo más posible entre el mensaje
cifrado (Difusión).
El proceso de funcionamiento de un algoritmo comienza partiendo de un mensaje original
al cual se le aplica un algoritmo de cifrado que usa una clave, este nos produce un mensaje
cifrado, el cual es trasmitido a través de un medio, por ejemplo una red de internet, de forma
que llegue al destino, donde se aplicará el proceso inverso, es decir toma el mensaje
cifrado, le aplica el algoritmo de descifrado usando una clave y obtiene el mensaje original.

12
Bibliografía.

http://socialgeek.co/noticias/diffie-hellman/
http://neo.lcc.uma.es/evirtual/cdd/tutorial/presentacion/ejmrsa.html
http://daniellerch.com/sources/doc/algoritmo_rsa.html
http://seguroinformatica.blogspot.mx/2014/03/aes-seguridad-informatica.html

13

También podría gustarte