Cifrado de mensajes con una clave pública

 

 

          El método de cifrado de mensajes con una clave pública está basado en el empleo de dos números primos grandes (por ejemplo, de unas 100 cifras decimales). El resultado de su multiplicación es la llamada clave pública y tiene unas 200 cifras decimales. Este método de cifrado es hoy el mejor para enviar una cantidad indefinida de mensajes cifrados porque para que un intruso descifre un mensaje debería descomponer en factores primos el número de la clave pública que es conocida por todos; y para esto necesitaría efectuar 1,2 x 1023 operaciones matemáticas; a un ritmo de 0,000001 segundos por operación, tardaría 3.800.000.000 años. Una ventaje añadida del método es que permite al receptor estar seguro de que el mensaje lo ha enviado el emisor; esto se llama autentificar la firma de un mensaje.

 

          La explicación matemática se puede encontrar en el artículo “A method for obtaining digital signatures and public-key cryptosystems” escrito por R.L. Rivest, A. Shamir y L. Adleman en la revista “Communications of the ACM” de febrero de 1978 que se puede obtener del Laboratory of Computing Sciences, Massachusetts Institute of Technology (545 Technology Square, Cambrige, MA 02139, E.U.A.). Me temo que esta explicación matemática es inteligible sólo por matemáticos especializados. La parte no matemática del método está explicada un poco confusamente en dicho artículo y es la que pretendo exponer más claramente en lo que sigue.

 

          Etapas de envío del primer mensaje cifrado desde un emisor hasta un receptor con el método de la clave pública:

 

1. El emisor escoge 2 números primos grandes. R. Solovay y V. Strassen han creado un algoritmo probabilístico relativamente fácil para ello; pero si por error no fuesen primos, el receptor se daría cuenta porque el mensaje sería ininteligible. El emisor calcula su producto que es su clave pública.

 

2. El receptor escoge 2 números primos grandes y calcula su producto que es su clave pública.

 

3. El emisor pone su clave pública en un fichero público (que actúa como un notario) o lo envía al receptor por un canal de comunicación inseguro. Pero el receptor debe estar seguro de que la clave pública del emisor corresponde al emisor; un método es que el emisor lo dé en mano al receptor; otro método es que el receptor lo obtenga en una visita en persona al local del fichero público en el momento de darse de alta en el sistema de cifrado; en esta visita, el receptor da su clave pública (y el receptor recibe la clave pública que emplea el local del fichero público para que éste, convirtiéndose en emisor, le proporcione en el futuro todas las claves públicas que se vayan creando en el sistema de cifrado).

 

4. El receptor pone su clave pública en un fichero público o lo envía al receptor por un canal de comunicación inseguro. Pero el emisor debe estar seguro de que la clave pública del receptor corresponde al receptor, similarmente al punto 3.

 

5. El emisor crea un mensaje M1.

 

6. El emisor aplica su clave secreta (basada en los 2 números primos que sólo él conoce) al mensaje M1 y obtiene el mensaje M2.

 

7. El emisor aplica la clave pública del receptor al mensaje M2 y obtiene el mensaje M3.

 

8. El emisor envía el mensaje M3 al receptor.

 

9. El receptor aplica su clave secreta (basada en los 2 números primos que sólo él conoce) al mensaje M3 y obtiene el mensaje M4.

 

10. El receptor aplica la clave pública del emisor al mensaje M4 y obtiene el mensaje M1 original (autentificado como enviado por el emisor). Si el receptor quisiese crear un mensaje M3 y decir falsamente que lo ha recibido del emisor, no podría porque no tiene la clave secreta del emisor.

 

 

Volver al Índice.