Tarea SW "Cifado asimétrico"

Cifrado Asimétrico


Introducción 

Dentro del cifrado digital encontramos dos tipos de criptografía: simétrica y asimétrica. La criptografía de clave asimétrica también es conocida como cable pública, emplea dos llaves diferentes en cada uno de los extremos de la comunicación. Cada usuario tendrá una clave pública y otra privada. La clave privada tendrá que ser protegida y guardada por el propio usuario, será secreta y no la deberá conocer nadie. La clave pública será accesible a todos los usuarios del sistema de comunicación.

Desarrollo

Los algoritmos asimétricos están basados en funciones matemáticas fáciles de resolver en un sentido, pero muy complicadas realizarlo en sentido inverso, a menos que se conozca la llave. Las claves públicas y privadas se generan simultáneamente y están ligadas la una a la otra. Esta relación debe ser muy compleja para que resulte muy difícil que obtengamos una a partir de la otra.

RSA

Este algoritmo se basa en la pareja de claves, pública y privada de las que ya hemos hablado antes. La seguridad de este algoritmo radica en el problema de la factorización de números enteros.
Ventajas:
  • Resuelve el problema de la distribución de las llaves simétricas (cifrado simétrico).
  • Se puede emplear para ser utilizado en firmas digitales.
Desventajas:
  • La seguridad depende de la eficiencia de los ordenadores.
  • Es más lento que los algoritmos de clave simétrica.
  • La clave privada debe ser cifrada por algún algoritmo simétrico.

Diffie-Hellman

No es un algoritmo asimétrico propiamente dicho, se usa para generar una clave privada simétrica a ambos extremos de un canal de comunicación inseguro. Se emplea para obtener la clave secreta con la que posteriormente cifrar la información, junto con un algoritmo de cifrado simétrico. Su seguridad radica en la dificultad de calcular el logaritmos discreto de números grandes (DH también permite el uso de curvas elípticas).
El problema de este algoritmo es que no proporciona autenticación, no puede validar la identidad de los usuarios, por tanto si un tercer usuario se pone en medio de la “conversación”, también se le facilitaría las claves y por tanto, podría establecer comunicaciones con el emisor y el receptor suplantando las identidades. Para evitar esto existen varias soluciones que mitigan y solucionan el problema.


Curvas Elípticas (CEE)

Las curvas elípticas fueron propuestas por primera vez para ser usadas en aplicaciones criptográficas en 1985 de forma independiente por Miller y Koblitz. Las curvas elípticas en sí llevan estudiándose durante muchos siglos y están entre los objetos más ricamente estructurados y estudiados de la teoría de números.
La eficiencia de este algoritmo radica en la longitud reducida de las claves, lo cual permite su implementación en sistemas de bajos recursos como teléfonos celulares y Smart Cards. Puede hacerse la siguiente comparación con RSA, obteniendo el mismo nivel de seguridad:
  • CCE de 163 bits = RSA de 1024 bits
  • CCE de 224 bits = RSA de 2048 bits

Otros algoritmos asimétricos conocidos son ElGamal (basado en el Problema de los Logaritmos Discretos de Diffie-Hellman DH), Rabin (basado en el problema del cálculo de raíces cuadradas módulo un número compuesto), DSS LUC.


Cifrado y descifrado

    ECIES (Elliptic curve intpuesto como estándar por Victor Shoup en el año 2001. ECIES combina un mecanismo de encapsulación de la clave (KEM) con un mecanismo de encapsulación de los datos (DEM). El sistema saca por separado una clave para cifrar y una clave MAC a partir de un secreto compartido. Primero, los datos se encriptan sim´etricamente, y después el texto cifrado se autentica con el MAC. Por último, el secreto común se encripta usando el par de claves pública/privada. La salida de la función de cifrado es la tupla {K, C, T}, donde K es el secreto compartido cifrado, C es el texto cifrado y T es la etiqueta de autenticaci´on. 
    Por tanto, ECIES necesita dos funciones hash H1, H2 y una función de cifrado simétrico Ek (dependiente de la clave k).
    Funciona de la siguiente manera:
    1. A elige un entero aleatorio k, 1 ≤ k ≤ N − 1, donde N es el orden del punto G que mencionamos anteriormente.
    2. A calcula R = kG y Z = kKpubB. 
    3. A escribe la salida de H1(R, Z) como dos cadenas k1, k2 concatenadas de longitudes espeíıficas. 
    4. A calcula C = Ek1 (m) y t = H2(C, k2). 
    5. A envía el texto cifrado (R, C, t) a B. 
    Y para descifrar, B deberá hacer: 

    1. B calcula Z = KprivBR. 
    2. B calcula H1(R, Z) y escribe la salida como k1||k2. 
    3. B calcula H2(C, k2). Si no es igual a t, B para y rechaza el descifrado. Y si es igual a t, continúa. 
    4. B calcula m = Dk1 (C), donde Dk1 es la función de descifrado para Ek1.
    Conclusión

    En la actualidad, es necesario utilizar a lo menos un metodo de criptografia o cifrado debido a la muy diversas amenazas que nos acechan día con día, algunos de estos metodos son menos seguros que otros, pero el usar alguno es de vital importancia, pues puede ser la diferencia entre perder información valiosa o asegurarla.

    • Stallings W(2004).FUNDAMENTOS DE SEGURIDAD EN REDES. APLICACIONES Y ESTÁNDARES. Madrid, España: Pearson Educación.
    • De Luz Sergio (2010)Criptografía : Algoritmos de cifrado de clave asimétrica
      https://www.redeszone.net/2010/11/16/criptografia-algoritmos-de-cifrado-de-clave-asimetrica/
    • Criptología - Algoritmos Asimétricos (Llave Privada - Pública)
      http://www.segu-info.com.ar/criptologia/asimetricos.htm

    Comentarios

    Entradas más populares de este blog

    Mapa conceptual "Métricas de calidad"

    Sistemas Distribuidos (Ensayo)

    Cifrado Hash