Cifrado Asimetrico



Cifrado Asimétrico


La criptografía es la ciencia que estudia los métodos, procesos, técnicas, con el término de guardar, procesar y transmitir la información de los datos en formato digital, en la parte del uso masivo de las comunicaciones digitales que han producido un número progresivo de problemas de seguridad. Los intercambios que se hacen a través de la red pueden ser interpretadas por la seguridad de esta información que se debe asegurar.

Una forma de aplicación de la criptografia es el cifrado.Dentro de la clasificación de los cifrados destaca la división de estos en simétricos, los primeros creados fueron los simétricos en los cuales solo había una clave o llave secreta.Estos tenían un gran problema cuando esta llave se revelaba,para darle esta solucion  se crearon los cifrados asimétricos.

Descripción Cifrado Asimétrico


El cifrado asimétrico también conocido como de doble clave o de clave pública consiste en utilizar dos claves, una para cifrar y otra para descifrar.

La clave que se utiliza para cifrar el mensaje es la clave pública del receptor, y es pública porque es conocida por más personas que sólo el emisor y el receptor de un determinado mensaje. El descifrado se lleva a cabo por el receptor y lo hace con su clave privada, lo que implica que ya no hay un intercambio de claves ya que cuando un mensaje es cifrado con la clave pública del receptor, se está asegurando que sólo él puede descifrar el mensaje con su clave privada que se supone sólo está en su poder.

La clave pública de cada persona es derivada de su clave privada mediante funciones de un sentido, es decir que son fáciles de calcular en una dirección pero muy difíciles de calcular a la inversa, lo que hace posible que la clave para cifrar se haga pública.



Es una práctica común utilizar los dos tipos de cifrado (simétrico y asimétrico) al momento de implementar un sistema criptográfico, con ello se busca aprovechar las mayores cualidades de cada uno; por un lado se intercambia de forma segura la clave con el cifrado asimétrico y por el otro el proceso cifrado/descifrado se realiza con rapidez y eficiencia con el cifrado simétrico.

Proceso Cifrado y Descifrado


El emisor utiliza una clave secreta para cifrar el MCla y por tanto un algoritmo simétrico, también cifra dicha clave pero con
 un algoritmo asimétrico y con la clave pública del receptor, con el objetivo de que solo éste pueda recuperarla ya que él es el único que tiene la clave privada para hacerlo, una vez que el receptor descifre la clave secreta podrá descifrar el mensaje con dicha clave.

Tipos de Cifrado:

RSA


Uno de los primeros en ser utilizado de esta clase es el RSA (Rivest, Shamir y Adleman), este fue 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  , y se prevé que su tamaño crezca con el aumento de la capacidad de cálculo de los ordenadores.



El algoritmo RSA funciona de la siguiente manera:
  1. Inicialmente es necesario generar aleatoriamente dos números primos grandes, a los que llamaremos p y q.
  2. A continuación calcularemos n como producto de p y q: n = p * q
  3. Se calcula fi: fi(n)=(p-1)(q-1)
  4. Se calcula un número natural e de manera que MCD(e, fi(n))=1 , es decir e debe ser primo relativo de fi(n).
  5. Es lo mismo que buscar un numero impar por el que dividir fi(n) que de cero como resto.
  6. Mediante el algoritmo extendido de Euclides se calcula d: e.d mod fi(n)=1 Puede calcularse d=((Y*fi(n))+1)/e para Y=1,2,3,… hasta encontrar un d entero.
  7. El par de números (e,n) son la clave pública.
  8. El par de números (d,n) son la clave privada.
  9. Cifrado: La función de cifrado es C = M^e mod n
  10. Descifrado: La función de descifrado es M = C^d mod 


RSA puede también ser usado para autenticar un mensaje. Supongamos que Alicia desea enviar un mensaje autentificado a Bob. Ella produce un valor hash del mensaje, lo eleva a la potencia de d≡ mod n (como ella hace cuando descifra mensajes), y lo adjunta al mensaje como una “firma”. Cuando Bob recibe el mensaje autentificado, utiliza el mismo algoritmo hash en conjunción con la clave pública de Alice. Eleva la firma recibida a la potencia de e≡ mod n (como hace cuando cifra mensajes), y compara el resultado hash obtenido con el valor hash del mensaje. Si ambos coinciden, él sabe que el autor del mensaje estaba en posesión de la clave secreta de Alicia, y que el mensaje no ha sido tratado de forzar (no ha sufrido ataques).

Se debe observar que la seguridad de los padding-schemes como RSA-PSS son esenciales tanto para la seguridad de la firma como para el cifrado de mensajes, y que nunca se debería usar la misma clave para propósitos de cifrado y de autentificación.

Diffie-Hellman (Criptografía)

Es un protocolo de establecimiento de claves entre partes que no han tenido contacto previo, utilizando un canal inseguro, y de manera anónima (no autentificada).

Se emplea generalmente como medio para acordar claves simétricas que serán empleadas para el cifrado de una sesión (establecer clave de sesión). Siendo no autenticado, sin embargo, provee las bases para varios protocolos autenticados.

Su seguridad radica en la extrema dificultad (conjeturada, no demostrada) de calcular logaritmos discretos en un cuerpo finito.

Whitfield Diffie y Martin Hellman recibieron el prestigioso premio A.M. Turing de 2015 de la Association for Computer Machinery en 2016 por este trabajo "Que revolucionó la seguridad informática".


Su importancia se debe sobre todo al hecho de ser el inicio de los sistemas asimétricos, ya que en la práctica sólo es válido para el intercambio de claves simétricas, y con esta funcionalidad es muy usado en los diferentes sistemas seguros implementados en Internet, como SSL (Secure Socket Layer) y VPN (Virtual Private Network).

Matemáticamente se basa en las potencias de los números y en la función mod (módulo discreto). Uniendo estos dos conceptos se define la potencia discreta de un número como Y = Xa mod q. Si bien el cálculo de potencias discretas es fácil, la obtención de su función inversa, el logaritmo discreto, no tiene una solución analítica para números grandes.

Para implementar el sistema re realizan los siguientes pasos:
  1. Se busca un número primo muy grande, q.
  2. Se obtiene el número ß, raiz primitiva de q, es decir, que cumple que ß mod q, ß2 mod q,...., ßq-1 mod q son números diferentes.
  3. ß y q son las claves públicas.
            esquema Diffie-Hellman


Para generar una clave simétrica compartida entre dos usuarios, A y B, ambos parten de un generador de números pseudoaleatorios, que suministra un número de este tipo diferente a cada uno, Xa y Xb. Estos son las claves privadas de A y B. Con estos números y las claves públicas ß y q que ambos conocen, cada uno genera un número intermedio, Ya e Yb, mediante las fórmulas:

Ya = ßXa mod q
Yb = ßXb mod q

Estos números son intercambiados entre ambos, y luego cada uno opera con el que recibe del otro, obteniendo en el proceso el mismo número ambos:

K = Yb Xa mod q
K = Ya Xb mod q

Este número K es la clave simétrica que a partir de ese momento ambos comparten, y que pueden usar para establecer una comunicación cifrada mediante cualquiera de los sistemas simétricos.

Con este esquema, si se desea compartir una clave privada con otro usuario cualquiera, basta con acceder a su Yu y enviarle la nuestra. Para facilitar este proceso se suelen publicar las Yu de todos los usuarios interesados en un directorio de acceso común.

Este se usa para:
  1. La red para anonimato Tor usa el protocolo Diffie Hellman, sobre una conexión TLS de una capa inferior previamente establecida, para procurarse claves de sesión entre el cliente y los nodos de enrutamiento de la red. Esas claves son usadas para cifrar las capas de cebolla de los paquetes que transitan por la red.
  2. El protocolo Off.the record messaging para comunicación de mensajería instantánea se apoya​ en el protocolo Diffie-Hellman para ir cambiando de clave de cifrado según se van intercambiando los mensajes.

DSS(Data Signature Standar)

Es un sistema de firma digital adoptado como estándar, el cual fue presentado por el Instituto Nacional de Estándares y Tecnología en NIST en 1994. Utiliza la función Hash SHA y el algoritmo asimétrico DSA (Digital Signature Algorithm).Este genera una firma digital para la autenticación de los documentos electrónicos. Un resumen de datos de la información (llamado un digesto de mensaje ) se crea mediante el uso de una función hash  (llamado el Secure Hash estándar , o SHS). El resumen de datos se utiliza en conjunción con el algoritmo DSA para crear la firma digital que se envía con el mensaje. La verificación de firmas implica el uso de la misma función hash.

Función HASH
Nos permite asegurarnos que nuestra comunicación llegue a su destino sin que haya sido modificada, es decir, la integridad. Las funciones hash transforman un mensaje de  longitud arbitraria en un número fijo de bits, de tal forma que dos mensajes diferentes  generaran dos secuencias HASH distintas. Así vamos a identificar de forma única al mensaje original.



Generación de claves:
  • Elegir un número primo p de L bits, donde 512 ≤ L ≤ 1024 y L es divisible por 64.
    · Elegir un número primo q de 160 bits, tal que p−1 = qz, donde z es algún número natural.
    · Elegir h, donde 1 < h < p − 1 tal que g = hz(mod p) > 1.
    · Elegir x de forma aleatoria, donde 1 < x < q-1.
    · Calcular y = gx(mod p).

·         Los datos públicos son p, q, g e y. x es la llave privada.

Parámetros:     
  • KG claves públicas de grupo. Son comunes y públicas para un grupo de usuarios.
    • KU clave pública. Se genera una por usuario a partir de las KG y es pública
    • KP clave privada. Es privada de cada usuario, se genera a partir de las anteriores.
    • k número aleatorio. Se genera uno para cada firma.
    • s y r. Son dos palabras de 160 que forman la firma de un texto.

El número k permite que el mismo texto del mismo usuario no genere siempre la misma firma.

Criptografía de curva elíptica (CCE)


Es una variante de la criptografía asimétrica o de clave pública basada en las matemáticas de las curvas elípticas. Sus autores argumentan que la CCE puede ser más rápida y usar claves más cortas que los métodos antiguos — como RSA — al tiempo que proporcionan un nivel de seguridad equivalente. La utilización de curvas elípticas en criptografía fue propuesta de forma independiente por Neal Koblitz y Victor Miller en 1985.


Los sistemas de criptografía asimétrica o de clave pública utiliza dos claves distintas: una de ellas puede ser pública, la otra es privada. La posesión de la clave pública no proporciona suficiente información para determinar cuál es la clave privada. Este tipo de sistemas se basa en la dificultad de encontrar la solución a ciertos problemas matemáticos. Uno de estos problemas es el llamado logaritmo discreto. Encontrar el valor de b dada la ecuación , cuando a y c son valores conocidos, puede ser un problema de complejidad exponencial para ciertos grupos finitos de gran tamaño; mientras el problema inverso, la exponenciación discreta puede ser evaluado eficientemente usando por ejemplo exponenciación binaria

Una curva elíptica es una curva plana definida por una ecuación de la forma:
.

Con el conjunto de puntos G que forman la curva (i.e., todas las soluciones de la ecuación más un punto O, llamado punto en el infinito) más una operación aditiva +, se forma un grupo abeliano. Si las coordenadas x e y se escogen desde un cuerpo finito, entonces estamos en presencia de un grupo abeliano finito. El problema del logaritmo discreto sobre este conjunto de puntos (PLDCE) se cree que es más difícil de resolver que el correspondiente a los cuerpos finitos (PLD). De esta manera, las longitudes de claves en criptografía de curva elíptica pueden ser más cortas con un nivel de seguridad comparable.



En criptografía, se elige un punto base G específico y publicado para utilizar con la curva E(q). Se escoge un número entero aleatorio k como clave privada, y entonces el valor P = k*G se da a conocer como clave pública (nótese que la supuesta dificultad del PLDCE implica que k es difícil de deducir a partir de P). Si María y Pedro tienen las claves privadas kA y kB, y las claves públicas PA y PB, entonces María podría calcular kA×PB = (kA×kB)×G; y Pedro puede obtener el mismo valor dado que kB×PA = (kB×kA)×G.

Esto permite establecer un valor «secreto» que tanto María como Pedro pueden calcular fácilmente, pero que es muy complicado de derivar para una tercera persona. Además, Pedro no consigue averiguar nada nuevo sobre kA durante esta transacción, de forma que la clave de María sigue siendo privada.

Los métodos utilizados en la práctica para cifrar mensajes basándose en este valor secreto consisten en adaptaciones de antiguos criptosistemas de logaritmos discretos originalmente diseñados para ser usados en otros grupos. Entre ellos se podrían incluir Diffie-Hellman, ElGamal y DSA.

La realización de las operaciones necesarias para ejecutar este sistema es más lenta que para un sistema de factorización o de logaritmo discreto módulo entero del mismo tamaño. De todas maneras, los autores de sistemas de CCE creen que el PLDCE es significativamente más complicado que los problemas de factorización o del PLD, y así se puede obtener la misma seguridad mediante longitudes de clave mucho más cortas utilizando CCE, hasta el punto de que puede resultar más rápido que, por ejemplo, RSA. Los resultados publicados hasta la fecha tienden a confirmar esto, aunque algunos expertos se mantienen escépticos.

La CCE ha sido ampliamente reconocida como el algoritmo más fuerte para una determinada longitud de clave, por lo que podría resultar útil sobre enlaces que tengan requisitos muy limitados de ancho de banda.

Resultado de imagen para curva eliptica criptografia
Gráfica ecuación


APLICACIONES


Los sistemas de clave pública se caracterizan
por el uso de un tipo de algoritmo criptográfico con dos claves, una no se revela
y la otra sí. Dependiendo de la aplicación, el emisor usa su clave privada o la clave
pública del receptor, o las dos, para realizar algún tipo de función criptográfica. En términos
generales, podemos clasificar el uso de criptosistemas de clave pública en tres
categorías:

• Cifrado/descifrado: el emisor cifra un mensaje con la clave pública del receptor. 
• Firm a digital: el emisor «firma» un mensaje con su clave privada. Esto se consigue
mediante un algoritmo criptográfico aplicado al mensaje o a un pequeño bloque
de datos que es una función del mensaje.
• Intercambio d e claves: dos partes cooperan para intercambiar una clave de sesión.
Hay distintas posibilidades que implican la clave privada de una o de las dos partes.

Algunos algoritmos son adecuados para las tres aplicaciones, mientras otros sólo se
pueden usar para una o dos de ellas.

Aplicaciones para criptosistemas de clave pública

Conclusión


Aunque la criptografía asimétrica resuelve las dos desventajas principales de la simétrica:
a) No se necesita canales seguros para mandar la clave. La distribución de claves es más fácil y segura ya que la clave que se distribuye es la pública manteniéndose la privada para el uso exclusivo del propietario.
b) No hay desbordamiento en el tratamiento de claves y canales.

También tiene desventajas:

a) Son poco eficientes. Las claves deben de ser largas y se tarda bastante tiempo en aplicarlas.
b) Utilizar las claves privadas repetidamente puede hacer que reciban ataques criptográficos que se basan en analizar paquetes cifrados.
c) Hay que proteger la clase privada. Las claves privadas se guardan todas juntas en un archivo llamado keyring, que a su vez está protegido con cifrado simétrico, lo que quiere decir que para usar la clave privada, hay que introducir una clave que descifra el archivo keyring y permita leerla. Esto hace que se necesite una copia de seguridad del llavero keyring.
d) Hay que transportar la clave privada.

Por estas razones aunque los cifrado asimétricos son atractivos por el hecho de su complejidad, estos no siempre son los indicados para un sistema .Por lo cual demuestra que mantener un sistema seguro hay que pensar cuidadosamente el conjunto de métodos y estrategias para matner nuestro sistema seguro sin sacrificar otro elemento.

Fuentes:

https://www.redeszone.net/2010/11/16/criptografia-algoritmos-de-cifrado-de-clave-asimetrica/
https://seguinfo.wordpress.com/2007/09/14/%C2%BFque-es-rsa/
https://infosegur.wordpress.com/unidad-4/criptografia-simetrica-y-asimetrica/
http://www.mejor-antivirus.es/terminologia-informatica/que-es-diffie-hellman.html
http://www.javiercampos.es/blog/2011/07/22/el-algoritmo-de-diffie-hellman/
https://seguinfo.wordpress.com/2007/10/02/%C2%BFque-es-la-criptografia-de-curva-eliptica/
https://es.wikipedia.org/wiki/DSA



Comentarios

Entradas populares de este blog

CIfrado

Kerberos