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.


2.3.1 Cifradores con clave continua de un solo uso.



Como su nombre lo indica solo se usa una vez, en caso de que sea interceptada y haya sido usada, ya no funcionara. Normalmente se generan mediante un algoritmo y no se recurre a la introducción por parte del usuario.

Los métodos para obtener claves de un solo uso son

· Usar una calculadora que da claves sincronizadas en el tiempo con el servidor. Ambos utilizar el mismo algoritmo y por tanto la clave de la calculadora y la esperada por el servidor coinciden.



· Petición por teléfono móvil. Algún banco envía la clave de un solo uso al móvil, en un SMS.

2.3 Criptosistemas de Cifrado en Flujo

Los cifradores de flujo son algoritmos de cifrado que pueden realizar el cifrado incrementalmente, convirtiendo el texto en claro, en texto cifrado bit a bit. Esto se logra construyendo un generador de flujo de clave. Un flujo de clave es una secuencia de bits de tamaño arbitrario que puede emplearse para oscurecer los contenidos de un flujo de datos combinando el flujo de clave con el flujo de datos mediante la función XOR. Si el flujo de clave es seguro, el flujo de datos cifrados también lo será.

Las cifras en flujo surgen como una aproximación optimizada del cifrado de Vernam. La idea es construir una clave lo bastante larga, cuando menos de la longitud del mensaje, a partir de una clave inicial corta mediante lo que se lla-ma generador pseudoaleatorio.

2.2.5 Algoritmo AES (Advanced Encryption Standard).

•Es uno de los algoritmos más seguros y más utilizados hoy en día
•El algoritmo se basa en varias sustituciones, permutaciones y transformaciones lineales, ejecutadas en bloques de datos de 16 bytes
•Estas operaciones se repiten varias veces, llamadas "rondas“


• 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

2.2.4 Algoritmo IDEA (International Data Encryption Algorithm).

•Es un cifrador por bloques
•Fue un algoritmo propuesto como reemplazo del DES
•Es utilizado para cifrar textos con un tamaño de bloque de 64 bits, utilizando una llave de 128 bits.
•IDEA consiste de ocho transformaciones idénticas (cada una llamada ronda) y una transformación de salida, llamada media ronda


•El proceso para cifrar y para descifrar es el mismo, solo cambian las llaves de ronda, en total 52 de 16 bits cada una.

2.2.3 Modos de cifra en bloque.

•Es una unidad de cifrado de clave simétrica que opera en grupos de bits de longitud fija, llamados bloques, aplicándoles una transformación invariante

•Para cifrar mensajes más largos que el tamaño del bloque, se utiliza un modo de operación.


2.2.2 Algoritmo DES (Data Encryption Standard).

DES es un algoritmo de cifrado escogido como un estándar FIPS en los Estados Unidos en 1976, y cuyo uso se propagó amplia mente por todo el mundo.

  • DES permite bloques de texto ordenados de 64 bits, 
  • claves privadas de 56 bits, tiene 16 interacciones, 
  • se generan 16 subclaves de 48 bits una para cada interacción.


Es uno de los sistemas más empleados y extendidos, por tanto es de los más probados, pero no es seguro. Implementacion sencilla y rápida.

2.2.1 Generalidades sobre sistemas de clave secreta.



Se incluyen en esta familia el conjunto de algoritmos diseñados para cifrar un mensaje utilizando una única clave conocida por los dos interlocutores, de manera que el documento cifrado sólo puede descifrarse conociendo dicha clave secreta





2.2 Criptosistemas de Clave Secreta.

El cifrado consiste en aplicar una operación (un algoritmo) a los datos que se desea cifrar utilizando la clave privada para hacerlos ininteligibles.
El cifrado simétrico requiere que se utilice un canal seguro para intercambiar la clave y esto disminuye en gran medida la utilidad de este tipo de sistema de cifrado.
La mayor desventaja de un criptosistema de clave secreta está relacionada con el intercambio de las claves. El cifrado simétrico se basa en el intercambio de un secreto (las claves).

2.1 Definición de criptografía

La criptografia es la técnica que protege documentos y datos. Funciona a través de la utilización de cifras o códigos para escribir algo secreto en documentos y datos confidenciales que circulan en redes locales o en Internet. Su utilización es tan antigua como la escritura. Los romanos usaban códigos para ocultar sus proyectos de guerra de aquellos que no debían conocerlos, con el fin de que sólo las personas que conocían el significado de estos códigos descifren el mensaje oculto.

Las llaves pueden ser:

Simétricas: Es la utilización de determinados algoritmos para descifrar y encriptar (ocultar) documentos. Son grupos de algoritmos distintos que se relacionan unos con otros para mantener la conexión confidencial de la información.

Asimétrica: Es una fórmula matemática que utiliza dos llaves, una pública y la otra privada. La llave pública es aquella a la que cualquier persona puede tener acceso, mientras que la llave privada es aquella que sólo la persona que la recibe es capaz de descifrar.

2.1.1 Tipos de cifrado




Cifrado por sustitución

En un cifrado por sustitución, cada letra o grupo de letras se reemplazan por otra letra o grupo de letras para “disfrazarla”. Uno de los cifrados más viejos conocidos es el cifrado del César, atribuido a Julio César. En este cifrado, el alfabeto se desplaza un número igual a 3 utilizando mayúsculas. Es decir “a” se vuelve “D”, “b” se vuelve “E”…..y “z” se vuelve “C”. Por ejemplo “ataque” se convierte en “DWDTXH”.


Cifrado por transposición

A diferencia de los algoritmos de sustitución en donde los caracteres que conforman el mensaje en claro son sustituidos por otros, los algoritmos de transposición los cambian de posición dentro del mismo mensaje dando lugar al criptograma el cual no puede ser comprendido a simple vista.