miércoles, 21 de octubre de 2015

Criptografia



Los antecedentes de la criptologia se remontan años a tras donde se hacia con lapiz y papel y después fue evolucionando con el paso de los años hasta llegar aser mas complejo la forma de enviar mensajes encriptados y que otra persona pudiera ver sus mensajes fue algo que revoluciono la forma de comunicación en su momento y que en la actualidad sea hace por medio de aplicaciones web o en otro medio.



De esta forma surguieron nuevas personas que aportaron cosas interesantes a la criptografia como es el caso de Whitfield Diffie criptografo estadounidense que estudia la asimetria.



  • Incorporó a Sun Microsystems Laboratories (en Menlo Park, California).
  • Presentaba un nuevo método de distribución de claves criptográficas para solucionar uno de los problemas fundamentales de la criptografía: la distribución de la clave.
Por otra parte Martín Hellman inventor junto a Diffie de lacriptografía de clave pública junto con Ralph Merkle.

Solucionó uno de los mayores problemas de la criptografía hasta entonces, la distribución de claves.

RSA: Es un es un sistema criptográfico de clave pública, sirve principalmente para cifrar una firma digitalmente, pero el problema de este algoritmo es la factorizacion de numeros enteros.
Como en todo sistema de clave pública, cada usuario posee dos claves de cifrado: una pública y otra privada. Cuando se quiere enviar un mensaje, el emisor busca la clave pública del receptor, cifra su mensaje con esa clave, y una vez que el mensaje cifrado llega al receptor, este se ocupa de descifrarlo usando su clave privada.
  • Patentado por el MIT en 1983 en Estados Unidos
  • Fue publicado antes de patentar la aplicación
  • Está basado en dos problemas matemáticos: el problema de factorizar números grandes y el problema RSA.
  • RSA para realizar una firma electrónica de un documento, o bien el algoritmo DSA específico para firma electrónica .

ENCRIPTACION Y DESENCRIPTACÍON

Se obtienen los números A y B de forma aleatoria y se calcula C.

Se obtiene D que es relativamente primo a (A-1)*(B-1). La manera de obtener este número es cogiendo cualquier primo que se encuentre en el intervalo:

(max(p,q)+1,C-1)



Obtener E dentro del rango (1,(A-1)*(B-1)) de la siguiente manera:

E*D=1mod((A-1)*(B-1))

De alguna manera, se asocian a cada carácter alfabético un valor numérico y ciframos el mensaje en bloques de la misma longitud BLOQ_MENS cuyo valor numérico está comprendido dentro del rango (1 … C).
sha2

SHA-2 es un conjunto de funciones hash criptográficas (SHA-224, SHA-256, SHA-384, SHA-512) diseñadas por la Agencia de Seguridad Nacional(NSA) y publicada en 2001 por el Instituto Nacional de Estándares y Tecnología (NIST) como un Estándar Federal de Procesamiento de la Información 
(FIPS).

  • transforma ("digiere") un conjunto arbitrario de elementos de datos
  • verificación de la integridad de copias de un dato original sin la necesidad de proveer el dato original
  • libremente distribuido o almacenado.
sha 1

  • Consiste en un conjunto de cuatro funciones hash de 224, 256, 384 o 512 bits.
  • Un algoritmo basado en las mismas técnicas que MD5 y denominado SHA
  • Se considera el mejor algoritmo de la familia de Algoritmos HASH
  • Producen una salida resumen de 160 bits


 
MD5 :es uno de los algoritmos de reducción criptográficos diseñados por el profesor Ronald Rivest del MIT (Massachusetts Institute of Technology, Instituto Tecnológico de Massachusetts). Fue desarrollado en 1991 como reemplazo del algoritmo MD4 después de que Hans Dobbertin descubriese su debilidad.



La codificación del MD5 de 128 bits es representada típicamente como un número de 
32 dígitos hexadecimal. El siguiente código de 28 bytes ASCII será tratado con MD5 y 
veremos su correspondiente hash de salida: 
• MD5("Esto sí es una prueba de MD5") = e99008846853ff3b725c27315e469fbc 
• Un simple cambio en el mensaje nos da un cambio total en la codificación hash, 
en este caso cambiamos dos letras, el «sí» por un «no». 
• MD5("Esto no es una prueba de MD5") = dd21d99a468f3bb52a136ef5beef5034 
• Otro ejemplo sería la codificación de un campo vacío: 
• MD5("") = d41d8cd98f00b204e9800998ecf842

Características
  • La unica forma para poder falsear el hash es por colision o fuerza bruta
  • Se puede obtener el algoritmo md5 por diferentes lenguajes de programación