Sistemas de encriptación

Criptografía moderna, de clave pública o asimétrica

La criptografía actual nace ligada al uso de los ordenadores y las telecomunicaciones digitales y hace uso de técnicas muy complicadas que sólo pueden tener lugar en un ámbito de comunicaciones digitales. La seguridad de estos métodos, al contrario que en la criptografía clásica, no la da el secreto de la clave, sino los algoritmos utilizados.

Estas técnicas se basan en la existencia de dos claves o llaves: una pública (de libre difusión) para encriptar y la otra privada (que sólo su propietario conoce) para desencriptar, de forma que de una no se deriva la otra. El hecho de que la llave de encriptación sea diferente a la de desencriptación nos permite hablar también de estos sistemas como sistemas asimétricos.

Además de la confidencialidad estas técnicas permiten otras aplicaciones:

  • Integridad: Garantizan que el mensaje no ha sido alterado por terceros.
  • Autenticación: Garantizan que el mensaje ha sido mandado por quien dice.
  • No repudio: El remitente no puede negar haber mandado el mensaje.

Para ver la utilidad de estas opciones supongamos el siguiente caso:

Un individuo (Juan) quiere mandar un mensaje a otro (Pedro). Para hacerlo, Juan encripta el texto plano que quiere mandar con la llave pública de Pedro (recordemos que era de libre difusión) y genera un texto cifrado que sólo Pedro podrá leer. Si un tercero captura el mensaje, no podrá leerlo aunque conozca la clave pública de Pedro. Además, y para mayor seguridad, Juan firma el mensaje, valiéndose para ello de su propia clave privada.

Pedro, por su parte, recibe un mensaje cifrado. Sabe que nadie más que el emisor conoce su contenido. Lo desencripta con su llave privada y lo lee. Ve que el mensaje dice haber sido mandado por Juan. Con la clave pública de Juan comprueba que el mensaje, ciertamente lo ha mandado Juan y que, además, no ha sido alterado. Además, Juan no podrá negar que ese mensaje lo ha mandado él.

Todas estas operaciones son muy importantes en un entorno de comercio electrónico. La confidencialidad asegura que sólo el comprador y el vendedor tienen información sobre el pedido o la cuenta corriente donde se cargará la compra. La integridad garantiza que el pedido que llega al vendedor es realmente el que envió el comprador, que no ha sido alterado accidental o deliberadamente. La autenticación permite al vendedor demostrar a una entidad bancaria que quien ha hecho el pedido es realmente el propietario de la cuenta que desea a cargar. El no repudio garantiza al vendedor que, una vez enviado el pedido, este no podrá ser rechazado.

 

El algoritmo RSA.

Existen varios algoritmos que hacen posible todo esto. El más importante es el RSA. Desarrollado en el MIT en 1.978 fue llamado así por las iniciales de sus creadores, R. Rivest, A. Shamir y L. Adleman.

Este algoritmo se basa en que es muy fácil encontrar números primos de gran tamaño, pero muy difícil factorizar su producto. Básicamente el algoritmo funciona de la siguiente forma:

Obtención de la pareja de llaves:

  1. Elegimos dos números primos grandes, P1 y P2
  2. Calculamos su producto A = P1 * P2
  3. Calculamos otro número B = (P1-1) * (P2 - 1)
  4. Escogemos un número V, donde B y V sean primos entre si (no tienen factores comunes).
  5. Buscamos un valor W, donde W * V = 1 mod B

La clave pública obtenida estaría constituida por la pareja de números (W, A) y la clave secreta por (V, A).

Encriptación y desencriptación:

Dividimos el texto plano en bloques. Para que cada bloque del texto plano M, sea menor al antes calculado A, generalmente estos bloques se agrupan en n bits, donde 2^n sea menor que A con el mayor valor posible.

Para, dado el mensaje M, encriptarlo (C), hallaríamos C = M^W (mod A).

Para desencriptarlo (D), sería D = M = C^V (mod A).

 

web@alt64.org

Índice de artículos
Página principal de Alt+64