Si lo quieren descargar esta en
http://ar.geocities.com/parahdl/criptografia.zipUn poco de criptografia y sus conceptos. Por Phantom Lord dedicado a su BB andy.
1- Que es la criptografia?
2-Concepto de hash
3-Encriptacion simetrica (una llave)
4-Encriptacion asimetrica(llave publica y llave privada)
5-Colisiones Hash.
1- Que es la criptografia?
la criptografia es una ciencia que nos permite proteger datos realizando una transformacion de una cadena de caracteres ,por ejemplo una palabra, en una cadena totalmente ilegible a nuestra vision de numeros o una combinacion de numeros y letras. Esto se utiliaz para enviar informacion a travez de una red o internet, en este caso podemos decir que es un herramienta fundamental para proteger datos.
La criptografia permite realzar varias funciones de seguridad como:
>Autenticacion: Quien recive el mensaje este seguro de recivirlo de la persona qeu dice ser.
>Confidencialidad: Asegura que nadie leyo el mensaje desde que fue enviado, solo el destinatario podra leerlo.
>Integridad: Asegura que el mensaje no fue modificado.
Para lograr esto se deben tener en claro 3 conceptos basicos de criptografia comom son :
>A-Algoritmos hash
>B-Encriptacion con llaves , keys o claves simetricas ( utiliza una sola llave)
>D-Encriptacion con llaves publicas y privadas ( se utilizan 2 llaves)
2- que es un Hash ?
Es un tipo de transformacion de datos , es decir es la conversionm de determinados datos de cualquier tamaño en un numero de longitud fija mediante una funcion matematica unidireccional llamada "algoritmo hash".
Un ejemplo seria el siguiente ( no pidan mas porque a esta hora no me da la cabeza.)
Supongamos que la cadena a encriptar es "mi mama" y quiero que se resula en un solo numero (valor hash). Para esto vamos a asociar cada caracter con su equivalente a el valor ASCII y veamos como queda.
mi mama
m=195
i=105
espacio=32
m=109
a=97
m=109
a=97
sumamos todos los numeros 195+105+32+109+97= 685
Es decir 685 es valor hash a nuestra cadena mi mama en codigo ascii, y notemos que es unidireccional , es decir si tomamos el numero resultante 685 podriamos desencriptarlo? Es casi imposible saber a que cadena corresponde a menos que probemos con todas las combinaciones posibles. Quiero aclarar que la ecuacion que explique es la mas pelotuda por asi decirlo y que en l apractica real son usados algoritmos millones de veces mas complejos que no puedo llegar a explicar.
Las funciones de hash mas utilizadas :
MD5: Message Digest 5 = digestin de mensaje version 5
SHA-1: Secure Hash Algoritm = algoritmo de hash seguro -revision 1 de 160 bits
3- Encriptacin con llaves simetricas (una sola llave)
esta tambien es denominada encriptacion con llaves compartidas o criptografia de llaves secretas porque se utiliza una sola llave que posee el remitente y el destinatario. Es una unica llave que se utiliza para ecriptar y desencriptar los datos. Esto es muy utilizado para la encriptacion gran cantidad e datos. hay muchos algoritmos para la encriptacion con llaves simetricas y cuanto mayor tamaño tiene la llave mas convinaciones se tienen que probar para desencriptar los datos , esto es bueno porque hace mas seguro los datos y teniendo una buena llave y un buen algoritmo es imposible que en un tiempo razonable puedan desencriptar los datos personas ajenas a el mismo.
Algunos algoritmos de llaves simetricas:
DES (data encription standard): 64 bits
3DES (triple DES) encripta 3 veces la informacion que DES
AES (advanced encription standard)128 , 192 o 256 bits :p
IDEA (International data encription algoritm) 64bits
4 - Encriptacion con llaves asimetricas: ( Una publica y una privada)
Weno en estase utilizan 2 llaves una publica y una privada que estan relacionadas matematicamente .
La llave publica puede ser distribuida libremente sin problemas pero el unico que podra ver el dato encriptado por la llave publica sera el que tenga la llave privada y viceversa. Los datos encriptados con la llave privada solo pueden verse con la llave publica. Este tipo de encriptacion tambien tiene varios algoritmos y estos son ecuaciones matematicas muy jodidas que utilizan numeros muy grandes y lo malo que tienen es que proporcionan formas lentas de criptografia y por eso se utilizan en situaciones criticas.
Algoritmos mas comunes de llaves asimetricas:
RSA:(Rivest-Shamir-Adleman( no saben un carajo)) generalmente usadas para las firmas digitales y los intercambios de llaves.
DSA: Es utilizada solamente para firmas digitales (no para encriptacion de datos)
y Existen otros que no voy a explicar porque se me canso el cerebro y quiero poner un ejemplo de la ecuacion matematica del algoritmo RSA.
Ecuacion del algoritmo RSA.
La ecuacion consiste basicamente en factorizar numeros muy grandes. Es decir lo ams comun para factorizar es dividir el numero por 2 ,3 ,4 y asi sucesivamentey buscar que el resultado de la divicion sea exacto es decir con resto 0 y obtendremos un "divisor del numero".
Supongamos que el numero a factorear es un numero primo por ejemplo el 10, en este caso de debe dividir por 2, 3 ,4 hasat llegar al numero 10 en este caso se hace corto el tramite pero si es un numero extremadamente grande podriamos estar mucho tiempo.
Weno ahora les dejo la formula para que se den una idea
1-. se buscan 2 numeros primos suficientemente grandes que llamaremos a y b ( entre 100 y 300 dijitos de longitud)
2- se obtienen los numeros n=p*q y o=(p-1)*(q-1)
3- se busca un numero u( n menor que o) tal que no tenga multiplos comunes con o
4- se encuentra d tal que (ud-1) sea divisible por o
Weno con estos numeros tenemos la clave publica u y la clave privada d. Si tienen dudas consulte a su profesor de analisis matematico.
Que son las colisiones hash?
las colisiones hash es cuando dos mensajes distintos generan el mismo hash.
Un ejemplo seria en el alfaveto de 26 letras con mensajes de 20 digitos , es decir la cantidad de mensajes posibles seria (26 veces 20) o 19.948.895.209.409.152.340.197.376: jojo es mucho no?
Y supongamos qu equeremos generar un hash con el mismo alfabeto, pero con 0 caracteres ahora serian (10 veces 26) o 141.167.095.635.376 es un poco menos pero siguen siendo muchos.
Esto quiere decir que no hay sificientes hashes para todos los mensajes por lo tanto siempre va a haber colisiones. Hasta aca todo lindo pero tengan en cuenta que lo explique con 10 letras o 20 pero si nos ponemos a pensar una cadena con mas de 20 digitos se hace un numero bastante larguito y los mensajes siempre tienen mas de 20 diggitos. Sino imaginense un hash para todo este texto y piensen las colisiones posibles.
Eso fue todo espero que les sirva de algo.
Salu2 Phantom Lord.
Si queres publicar el texto no lo modifiques. Si lo modificas no quietes el autor. Si quetas el autor estas en problemas. Dedicado a mi bb Andy que se fue a dormir.