DigiSign Data Security Logo   Productos, servicios, consultoría Seguridad en la transmisión de información y en el comercio electrónico Noticias sobre Seguridad, Criptografía, etc.
  Temas de hacking y seguridad Pagina Central Preguntas Frecuentes y Ayudas
  Ir a la Página Superior
 
El sistema de claves públicas RSA

En base a documentación de RSA Data Security

 

El sistema de claves públicas RSA
El sistema RSA y el sistema DES
Utilización del RSA / DES en la práctica para Encriptar
Utilización del RSA / DES en la práctica para Firmar
Detección de documentos alterados y/o errores de transmisión
Uso actual del sistema RSA
RSA: un estándar oficial
 

El sistema de claves públicas RSA

El RSA es un sistema criptográfico con clave pública tanto para encriptado como para autenticación que fue desarrollado por Ron Rivest, Adi Shamir y Leonard Adleman en 1977.

Se basa en algoritmos matemáticos, en donde el encriptado y la autenticación se producen sin compartir ninguna clave secreta: cada persona utiliza sólo las claves públicas de otros usuarios y su propia clave privada.  Cualquier persona puede enviar un mensaje encriptado o verificar un documento firmado por otra utilizando sólo claves públicas, pero solamente alguien que posee la clave privada correcta puede desencriptar o firmar el mensaje.

El punto a tener en cuenta es que la seguridad del sistema RSA se basa en el siguiente concepto: factorear números primos fuertes (grandes) es difícil.
 

El sistema RSA y el sistema DES

El RSA no es una alternativa del sistema DES (de clave secreta)  ni lo reemplaza, lo complementa (como cualquier otro cifrado para encriptado masivo de datos) y se utiliza junto con el sistema DES para crear un medio seguro de comunicaciones.

El RSA agrega dos funciones importantes que no proporciona el sistema DES: el intercambio seguro de claves sin un previo intercambio de claves secretas y la firma digital. Para encriptar mensajes, utilizamos RSA y DES en combinación de la siguiente forma:

1. Se encripta el mensaje con una clave DES elegida al azar.

2. Antes de enviarlo por un medio poco seguro, se encripta la clave DES por medio del RSA.

3. Se envían juntos, el mensaje DES encriptado y la clave DES encriptada a través del RSA.

Este protocolo se conoce como el sobre digital RSA.

Se podría preguntar el motivo por el cual no se utiliza el sistema RSA para encriptar el mensaje directamente y así evitar el uso del sistema DES.  Aunque podría aplicarse a mensajes cortos, el DES (u otro sistema de encriptado) es preferible en el caso de un mensaje largo ya que es mucho más veloz que el RSA.

En algunas situaciones, RSA no es necesario y basta con DES. Esto incluye a los entornos con multiusuarios donde es posible intercambiar claves DES en forma segura, por ejemplo, si ambas partes se reúnen en privado. El sistema RSA es poco necesario en un entorno con un solo usuario, por ejemplo, si se desea mantener encriptados los archivos personales, solo se necesita el sistema DES.  El RSA y la criptografía con clave pública, en general, se aplican mejor en entornos con multiusuarios. Cualquier sistema que utilice firmas digitales necesita del RSA o de algún otro sistema con clave pública.
 

Utilización del RSA / DES en la práctica para Encriptar

El sistema RSA se combina con un sistema criptográfico con clave secreta, como DES, para encriptar un mensaje por medio de un "sobre digital RSA".

Supongamos que Alicia quiere enviar un mensaje encriptado a Juan:

  • Encripta el mensaje con el sistema DES y utiliza una clave DES elegida al azar.
  • Busca la clave pública de Juan y la utiliza para encriptar esa clave DES.
  • El mensaje encriptado mediante el sistema DES y la clave DES encriptada mediante el sistema RSA, forman el sobre digital RSA y se envían a Juan.
  • Una vez recibido el sobre digital, Juan desencripta la clave DES con su clave privada y luego utiliza esa clave DES para desencriptar el mensaje.

Utilización del RSA / DES en la práctica para Firmar

Supongamos que Alicia quiere enviar un mensaje firmado a Juan:

  • Utiliza una función de "hashing" en el mensaje para crear un resumen del mensaje (message digest) que sirve como huella digital del mensaje.
  • Luego, encripta el "message digest" con su clave privada RSA. Esta es la firma digital que envía a Juan junto con el mensaje.
  • Juan recibe el mensaje y la firma, desencripta la firma con la clave pública de Alicia para recuperar el "message digest".
  • Ejecuta el "hash" del mensaje con la misma función de "hash" que utilizó Alicia y compara el resultado con el "message digest'" desencriptado de la firma.
  • Si son iguales, la firma queda verificada y se puede comprobar que el mensaje proviene de Alicia. Si no son iguales el mensaje no fue enviado por Alicia, es falso.

Se debe tener en cuenta que para la autenticación o firma digital, los roles de las claves pública y privada son los opuestos que en el encriptado, donde la clave pública se utiliza para encriptar y la privada para desencriptar.

En la práctica, el exponente público es mucho menor que el exponente privado. Esto significa que la verificación de una firma se efectúa más rápidamente que la firma misma. Es mejor así, ya que un mensaje o documento será firmado por un individuo una vez, en cambio, la firma será verificada varias veces.

No es probable que alguien encuentre un mensaje cuyo "hash" arroje un valor predeterminado o dos mensajes cuyos "hash" arrojen el mismo valor.  Si alguna de estas alternativas fuera posible, un intruso podría adjuntar un mensaje falso a la firma de Alicia.  Las funciones de "hash" como MD4 y MD5 se han diseñado específicamente para demostrar que encontrar un número duplicado es casi imposible y se las considera apropiadas para utilizarlas en criptografía.

La firma digital puede estar acompañada por uno o más certificados. Un certificado es un documento firmado que atestigua la identidad del firmante y su clave pública. Su propósito es evitar que una persona se haga pasar por otra utilizando una clave pública fraudulentamente registrada por ésta en nombre de otro. Si se incluye un certificado, el receptor del mensaje (o un tercero) puede comprobar la autenticidad de la clave pública del mensaje, presuponiendo que la clave pública es confiable.
 

Detección de documentos alterados y/o errores de transmisión

Una firma digital RSA es superior a una firma manuscrita ya que atestigua el contenido del mensaje y, al mismo tiempo, la identidad del firmante. Siempre que se utilice la función segura de "hash", no hay posibilidades de quitarle la firma a un documento y adjuntársela a otro o de alterar el mensaje firmado.

El más mínimo cambio en un documento firmado hará fracasar el proceso de verificación de la firma digital. El sistema de autenticación RSA permite verificar la integridad de un documento firmado. Por supuesto, si la verificación de la firma falla, no quedará claro si hubo un intento de fraguarla o si se trató de un mero error en la transmisión de la información.
 

Uso actual del sistema RSA

La utilización del sistema RSA está experimentando una rápida expansión y puede llegar a ser omnipresente en los próximos años. Hoy en día, se utiliza en una gran variedad de productos, plataformas e industrias del mundo entero. Se encuentra en productos comerciales de software y se planea una expansión mayor. RSA está incluido en sistemas Apple, Microsoft, Netscape, Novell,  Sun, etc.  actuales y futuros.

En cuanto al hardware, el sistema RSA se puede encontrar en teléfonos seguros, en tarjetas de redes Ethernet y en tarjetas inteligentes. El RSA se utiliza también en muchos organismos estatales estadounidenses, grandes compañías, laboratorios y universidades.

La adopción del sistema RSA parece utilizarse más rápidamente para autenticación (firmas digitales) que para una mayor privacidad (encriptado). Quizá, esto se deba a que los productos para autenticación son más fáciles de exportar.
 

RSA: un estándar oficial

El sistema RSA forma parte de muchos estándares oficiales en todo el mundo. El estándar ISO 9796 (Organización Internacional de Estándares, "International Standards Organization") incluye al RSA como un algoritmo criptográfico, como así también el CCITT (Comité Internacional de Consulta en Telegrafía y Telefonía, "Consultative Committee in International Telegraphy and Telephony") mediante el estándar de seguridad X.509.

El RSA forma parte de los estándares de SWIFT (Sociedad para las Telecomunicaciones Financieras Interbancarias Mundiales, "Society for Worldwide Interbank Financial Telecommunications"), de los estándares de ETEBAC 5 del sistema financiero francés y del borrador del estándar ANSI X9.31 del sistema bancario estadounidense. También el estándar australiano de administración de claves, AS2805.6.5.3 especifica RSA.

El RSA se encuentra en el PEM (Correo con Privacidad del Internet "Privacy Enhanced Mail") y en el PKCS para la industria del software. El taller de implementadores de OSI (OIW) ha lanzado acuerdos entre implementadores referidos a PKCS y PEM, que incluyen al sistema RSA.

Otros estándares están en etapa de desarrollo y se anunciarán dentro de los próximos años. Se espera que muchos incluyan el RSA como sistema adicional o recomendado para autenticación y/o privacidad.
 

Ventajas del sistema RSA (criptografía de clave pública):

  • No requiere claves secretas.
  • Permite Encriptar y Firmar digitalmente.
  • Utilizado conjuntamente con DES otorga una mayor velocidad de operación.
  • La clave DES, empleada por RSA, es válida para un único mensaje, en el peor de los casos en que se logre 'quebrar' la clave, ésta no se puede aplicar para otro mensaje o documento.
  • Permite además la detección de:
    • Alteraciones en los documentos.
    • Errores en la transmisión de documentos.
  • Es un estándar internacional.
  • Es un estándar "de facto" en la industria del software:
    • Microsoft
    • Netscape
    • Novell
    • Sun
    • Apple
    • Etc.

 

Por: Miguel Angel Fraga

Volver al Comienzo de Página