domingo, 12 de marzo de 2017

Bibliografía

IBM. (27 de febrero de 2017). IBM.
Obtenido de la internet:
https://www.ibm.com/support/knowledgecenter/es/SSGU8G_12.1.0/com.ibm.sec.doc/ids_en_010.htm


Jesús Javier Ortega Triguero, M. Á. (27 de febrero de 2017). Google Books.
Obtenido de la internet:
https://books.google.com.mx/books?id=fEV4Iffwt2oC&pg=PA9&dq=criptografia+en+informatica&hl=es-419&sa=X&ved=0ahUKEwjYzoOBmZ_SAhVJ62MKHRYBAYsQ6AEIGzAA#v=onepage&q=criptografia%20en%20informatica&f=false


UNAM. (27 de febrero de 2017). Fundamentos de Criptografía.
Obtenido de la internet:
http://redyseguridad.fi-p.unam.mx/proyectos/criptografia/criptografia/index.php/2-tecnicas-clasicas-de-cifrado/22-opereraciones-utilizadas/223-algoritmos-de-transposicion


UTN. (27 de febrero de 2017). UTN.
Obtenido de la internet:
http://www.frlp.utn.edu.ar/materias/stri/Intro-Cripto.pdf

http://es.ccm.net/contents/130-introduccion-al-cifrado-mediante-des

http://www.segu-info.com.ar/proyectos/p1_algoritmos-llave-publica.htm

https://es.slideshare.net/kreaten/algoritmos-de-clave-secreta-privada-o-simetrica

Man Young Rhee: Cryptography and Secure Data Communications.
http://es.ccm.net/contents/126-criptografia-de-clave-privada-o-clave-secreta

http://www.criptored.upm.es/guiateoria/gt_m117b.htm

https://www.ibiblio.org/pub/linux/docs/LuCaS/Manuales-LuCAS/SEGUNIX/unixsec-2.1-html/node309.html

http://es.ccm.net/contents/127-sistemas-de-clave-publica

M. E. Hellman and R. C. Merkle: Public Key Cryptographic Apparatus and Method. US Patent 4,218,582, 1980
http://www.cert.fnmt.es/curso-de-criptografia/criptografia-de-clave-asimetrica/cifrado-de-clave-publica 

López, Manuel Lucen: Criptografía y Seguridad en Computadores. 1999.
http://www3.uah.es/libretics/concurso2014/files2014/Trabajos/Criptografia%20y%20Metodos%20de%20Cifrado.pdf


2.3 Criptosistemas de Cifrado en Flujo

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. Este generador expande una clave corta, lla-mada semilla, para obtener una mucho más larga. Además, la operación de expansión tiene que tener unas características determinadas, ya que la secuen-cia que resulta se utiliza para cifrar el texto en claro.

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á.


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.

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 seguno postulados) y su impredecibilidad(tercer postulador). 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.

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 pseudoaleatorios: Este tipo de cifradores no son totalmente aleatorios ya que para generar una secuencia obedecen a algún algoritmo o cierto procedimiento repetitivo.


Generador de congruencia lineal.

Un generador de congruencia lineal ( LCG ) es un algoritmo que produce una secuencia de números pseudo-aleatorios calculados con una discontinua ecuación lineal por tramos . El método representa una de las más antiguas y más conocidas número de generadores pseudoaleatorios algoritmos. La teoría detrás de ellos es relativamente fácil de entender, y se implementa fácilmente y rápido, sobre todo en el hardware que puede proporcionar la aritmética módulo de almacenamiento de bits truncamiento.

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.4 Criptosistemas de Clave Pública




En 1976 Whitfield Diffie y Martin Hellman, de la Universidad de Stanford, demostraron la posibilidad de construir criptosistemas que no precisaran de la transferencia de una clave secreta en su trabajo.









Introducción a la cifra con clave pública.

El principio del cifrado asimétrico (conocido como cifrado con clave pública) apareció en 1976, con la publicación de un trabajo sobre criptografía.
En un criptosistema asimétrico (o de clave pública), las claves se dan en pares:
  • Una clave pública para el cifrado;
  • Una clave secreta para el descifrado.
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..


El uso de claves asimétricas ralentiza el proceso de cifrado. Para solventar dicho inconveniente, el procedimiento que suele seguirse para realizar el cifrado de un mensaje es utilizar un algoritmo de clave publica junto a uno de clave simétrica. A continuación veremos como se produce el cifrado de un mensaje, mediante el cual obtenemos plena garantía de confidencialidad.



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.





Cifradores de mochila de Merkle-Hellman.


En 1978 Ralph Merkle y Martin Hellman proponen un sistema de cifra de clave pública denominado mochila con trampa de Merkle y Hellman. El algoritmo se basa en crear una mochila difícil a partir de una mochila simple de forma que el cifrado se haga con la mochila difícil y el descifrado con la mochila simple o fácil. Se puede pasar fácilmente de la mochila simple a la difícil o viceversa usando una trampa.

Generador de las claves.

En Merkle-Hellman, las claves están compuestas por secuencias. La clave pública es una secuencia "difícil", y la clave privada es una "fácil", o secuencia de valores supercrecientes, junto con dos números adicionales, un multiplicador y un módulo, los cuales son usados para convertir la secuencia supercreciente en una secuencia difícil. Estos mismos números son usados para transformar la suma de la subsecuencia de la secuencia "difícil" en la suma de la subsecuencia de la secuencia "fácil", la cual se puede solucionar en tiempo polinómico.



Cifrado.
Para cifrar un mensaje, el cual debe ser una secuencia de bits de la misma longitud de la secuencia difícil, se eligen los elementos de la secuencia difícil que correspondan a bits en 1 del mensaje (mientras que los elementos correspondientes a bits en 0 son descartados). Luego se suman los elementos así elegidos, y el resultado de esto es el texto cifrado.
En caso que el mensaje no sea de la misma longitud de la llave, se subdivide en secuencias que tengan esta longitud y se aplica el mismo procedimiento.



Descifrado.
El descifrado es posible, porque el multiplicador y el módulo usados para transformar la secuencia supercreciente (la llave privada) y por tanto "fácil" en la secuencia general (la llave pública) y por tanto difícil, también pueden ser usados para transformar el texto cifrado (representado por un número) en la suma de los elementos que conforman la subsecuencia supercreciente (una subsecuencia de una secuencia supercreciente, también es supercreciente). Luego, usando un algoritmo voraz, el problema "fácil" de la mochila puede ser resuelto usando O(n) operaciones, con lo cual se logra descifrar el mensaje.


Cifrado RSA.

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.



Cifrado ElGamal.

Es un algoritmo de criptografía asimétrica, basado en la idea de Diffie-Hellman y que funciona de una forma parecida a este algoritmo discreto.
El algoritmo de ElGamal puede ser utilizado tanto para generar firmas digitales como para cifrar o descifrar.

En las firmas digitales que es muy utilizado, un tercero puede falsificar firmas si encuentra la clave secreta x del firmante o si encuentra colisiones en la función de Hash . Se considera que ambos problemas son suficientemente difíciles. El firmante debe tener cuidado y escoger una clave diferente de forma uniformemente aleatoria para cada firma. Así asegura que clave o aún información parcial sobre la clave no es deducible. Malas selecciones de claves pueden representar fugas de información que facilitan el que un atacante deduzca la clave secreta. En particular, si dos mensajes son enviados con el mismo valor de la clave escogida entonces es factible deducir el valor de la clave secreta. Hasta el momento el algoritmo ElGamal de cifrado/descifrado puede ser considerado un algoritmo efectivo. Un adversario con la habilidad de calcular logaritmos discretos podría ser capaz de romper un cifrado ElGamal.


2.2 Criptosistemas de Clave Secreta

El cifrado simétrico (también conocido como cifrado de clave privada o cifrado de clave secreta) consiste en utilizar la misma clave para el cifrado y el descifrado.



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. Algunas de las características más destacadas de este tipo de algoritmos son las siguientes:



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ó ampliamente 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.

Actualmente DES se considera un algoritmo inseguro, y no debe utilizarse. Su ventaja es que es uno de los sistemas más empleados y extendidos, por tanto es de los más probados, pero no es seguro. Implementación sencilla y rápida. 
Tiene un listado de inconvenientes como por ejemplo:
  • No se permite una clave de longitud variable, es decir, no se puede aumentar para tener una mayor seguridad. 
  • Es vulnerable al criptoanálisis diferencial, aunque solo es un ataque teórico. 
  • La longitud de clave de 56 bits es demasiado corta, y por tanto vulnerable. 
  • Actualmente DES ya no es un estándar, debido a que en 1999 fue roto. 

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.



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.


Generación de las llaves:
  • Se divide la llave original en 8 partes de 16 bits cada una.
  • Las primeras 6 partes son las llaves k1 a k6 de izquierda a derecha respectivamente, utilizadas en la primer ronda de IDEA. 
  • Las ultimas dos partes ser´an las llaves K7 y K8. 
  • Las otras 44 llaves son generadas de realizar un corrimiento circular a la izquierda de 25 bits sobre la llave original.

Desifrado:


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.

El AES utiliza una estructura de bucle para realizar repetidamente reordenamientos de datos, o permutaciones. El bucle reemplaza una unidad de datos con otra para datos de entrada. La rutina de cifrado utiliza la misma clave para cifrar y descifrar los datos, y aplica esa clave a los bloques de datos de longitud fija.

Ejemplo en una base de datos:

jueves, 9 de marzo de 2017

Introducción a la Criptografía


La palabra criptografía proviene del griego “criptos” que significa “oculto” y “grafe” de escritura que alude textualmente a la “escritura oculta”. La criptografía es la ciencia que resguarda documentos y datos que actúa a través del uso de las cifras o códigos para escribir algo secreto en documentos y datos que se aplica a la información que circulan en las redes locales o en Internet. Los romanos utilizaban códigos para guardar sus ideas y proyectos de guerra de aquellos que no lo conocían y lo hicieron con el propósito de que los entes que conocían el significado del código interpretan el mensaje oculto.

A través de la criptografía la información puede ser protegida contra el acceso no autorizado, su interceptación, su modificación y la inserción de información extra. También puede ser usada para prevenir el acceso y uso no autorizado de los recursos de una red o sistema informático y para prevenir a los usuarios la denegación de los servicios a los que sí están permitidos. Modernamente, la criptografía es la metodología para proveer la seguridad de las redes telemáticas, incluyendo la identificación de entidades y autenticación, el control de acceso a los recursos, la confidencialidad de los mensajes transmitidos, la integridad de los mensajes y su no repudio.





2.1 Definición de Criptografía


La criptografía estudia las técnicas para hacer que la información en un mensaje se codifique y que sea más “difícil” de entender para el destinatario que no tiene una clave secreta para el descifrado de la información y así tener acceso a ella.

Tipos de Cifrado.

En el tipo de cifrados podemos encontrar dos tipos diferentes:
  • 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.