lunes, 13 de marzo de 2017

2.4.4 Cifrado RSA.



es un sistema criptográfico de clave pública desarrollado en 1977. Es el primer y más utilizado algoritmo de este tipo y es válido tanto para cifrar como para firmar digitalmente.

La seguridad de este algoritmo radica en el problema de la factorización de números enteros. Los mensajes enviados se representan mediante números, y el funcionamiento se basa en el producto, conocido, de dos números primos grandes elegidos al azar y mantenidos en secreto. Actualmente estos primos son del orden de {\displaystyle 10^{200}}, y se prevé que su tamaño crezca con el aumento de la capacidad de cálculo de los ordenadores.

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.

Se cree que RSA será seguro mientras no se conozcan formas rápidas de descomponer un número grande en producto de primos. La computación cuántica podría proveer de una solución a este problema de factorización.

2.4.3 Cifradores de mochila de Merkle-Hellman.



Merkle-Hellman es un criptosistema asimétrico, esto significa que para la comunicación, se necesitan dos llaves: una llave pública y una privada. Otra diferencia con RSA, es que sirve sólo para cifrado, es decir, la llave pública es usada sólo para cifrar (no para verificar firma) y la llave privada es usada sólo para descifrar (no para firmar). De este modo, no se puede usar para tareas de autentificación por firma electrónica.

El algoritmo de Merkle-Hellman está basado en el problema de la mochila de decisión (un caso especial del problema de la mochila de optimización): dados una secuencia de números y un número, determinar si existe un subconjunto de la secuencia cuya suma dé dicho número. En general, es sabido que este problema es de clase NP-completo. Sin embargo, si la secuencia de números es supercreciente -- esto es, si cada elemento de la secuencia es mayor que la suma de todos los anteriores -- el problema es "fácil", y es posible resolverlo en tiempo polinómico con un simple algoritmo voraz.

2.4.2 Protocolo de Diffie y Hellman para el intercambio de claves.



Este protocolo se utiliza principalmente para intercambiar claves simétricas de forma segura para posteriormente pasar a utilizar un cifrado simétrico, menos costoso que el asimétrico. Se parte de la idea de que dos interlocutores pueden generar de forma conjunta una clave sin que esta sea comprometida


Diffie-Hellman (DH) no es un mecanismo de cifrado y no se suele utilizar para cifrar datos. En cambio, es un método para intercambiar con seguridad las claves que cifran datos. Los algoritmos (DH) permiten que dos partes establezcan la clave secreta compartida que usan el cifrado y los algoritmos de hash.




2.4 Criptosistemas de Clave Pública



En un sistema de cifrado con clave pública, los usuarios eligen una clave aleatoria que sólo ellos conocen (ésta es la clave privada). A partir de esta clave, automáticamente se deduce un algoritmo (la clave pública). Los usuarios intercambian esta clave pública mediante un canal no seguro.


Cuando un usuario desea enviar un mensaje a otro usuario, sólo debe cifrar el mensaje que desea enviar utilizando la clave pública del receptor (que puede encontrar, por ejemplo, en un servidor de claves como un directorio LDAP Lightweight Directory Access Protocol (en español Protocolo Ligero/Simplificado de Acceso a Directorio). El receptor podrá descifrar el mensaje con su clave privada (que sólo él conoce).



En un sistema de cifrado con clave pública, los usuarios eligen una clave aleatoria que sólo ellos conocen (ésta es la clave privada). A partir de esta clave, automáticamente se deduce un algoritmo (la clave pública). Los usuarios intercambian esta clave pública mediante un canal no seguro.

Cuando un usuario desea enviar un mensaje a otro usuario, sólo debe cifrar el mensaje que desea enviar utilizando la clave pública del receptor (que puede encontrar, por ejemplo, en un servidor de claves como un directorio LDAP Lightweight Directory Access Protocol (en español Protocolo Ligero/Simplificado de Acceso a Directorio)





El receptor podrá descifrar el mensaje con su clave privada (que sólo él conoce).

jueves, 9 de marzo de 2017

2.3.4 Cifrados en flujo con registros de desplazamiento.



Un registro de desplazamiento es básicamente una construcción con varias celdas de memoria conectadas entre sí, donde cada celdas almacena un bit.Así, el valor de todas estas celdas conforman el estado del registro. Cuando se cambia el estado del registro (generalmente al ritmo de un reloj), el nuevo estado del registro se forma simplemente desplazando los bits de cada celda a la celda de su derecha. Así, el bit de más a la derecha sale del registro, y un nuevo bit entra en la celda de más a la izquierda.



En esta figura podemos ver una implementación de registro de desplazamiento de 4 bits:




2.3.3 Estructuras generadoras de secuencias cifrantes.

Las claves pueden ser creadas por el usuario o generadas automáticamente con la ayuda de generadores de claves los cuales se clasifican en dos tipos:


Generadores aleatorios: para generar secuencias cifrantes utilizan datos provenientes de ruido físico aleatorio (ruido de un micrófono, ruido térmico en un semiconductor, etc.) o bien provenientes del estado de una computadora (interrupciones, posición del ratón, actividad en la red, uso del teclado, etc.). Es conveniente combinar varias técnicas para que la secuencia resultante sea imposible de predecir. Este tipo de generadores se utilizan para generar claves cortas.

Generadores pseudo-aleatorios: Este tipo de cifradores no son totalmente aleatorios ya que para generar una secuencia obedecen a algún algoritmo o cierto procedimiento repetitivo.Un número pseudoaleatorio no es más que el valor de una variable aleatoria x que tiene una distribución de probabilidad uniforme definida en el intervalo (0, 1).

2.3.2 Postulados de Golomb para secuencias cifrantes.



Son herramienta que ayudan a determinar la calidad y seguridad de una secuencia en términos de aleatoriedad (primero y segundo postulados) y su impresionabilidad(tercer postulado). Golomb, formulo tres postulados que en una secuencia finita debe satisfacer para denominarse secuencia pseudoaleatoria o PN (Pseudo Noise). Estos postulados pueden resumirse de la siguiente manera, en cada periodo de la secuencia considerada:


G1: El número de 1 tiene que ser aproximadamente igual al número de 0. Es decir, el número de 1 en cada periodo debe diferir del número de 0 por no más que 1.


G2: La probabilidad de ocurrencia, aproximada por su frecuencia relativa, de cada k-grama (muestras de n dígitos consecutivos) debe ser muy cercana a :


G3: La función de auto correlación, AC(K), fuera de fase es constante para todo valor de K. Para que una secuencia satisfaga este postulado, la función de auto correlación debe ser bivaluada. Una secuencia que cumpla estos tres postulados se denomina secuencia pseudoaleatoria, PN y disfruta de todas las propiedades de una secuencia binaria con distribución uniforme.