Algoritmo
RSA
RSA
En criptografía, RSA (Rivest, Shamir y Adle
man) es un sistema criptográfico de clave
pública 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.
Introducción.
La seguridad de este algoritmo radica en el
problema de la factorización dé 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.
Intreducción.
Como en todo sistema de clave pública,
cada usuario posee dos claves de
cifrado: una pública y otra privada.
Se cree que RSA será seguro mientras no
se conozcan formas rápidas de
descomponer un número grande en
producto de primos.
Algoritmo RSA
 Técnicamente, Bob envía a Alicia un «mensaje llano» ”M” en forma de un
número ”m” menor que otro número ”n”, mediante un protocolo reversible
conocido como padding scheme («patrón de relleno»). A continuación
genera el «mensaje cifrado» mediante la siguiente operación:
 donde ”e” es la clave pública de Alicia.
 Ahora Alicia descifra el mensaje en clave “c” mediante la operación
inversa dada por
 donde ”d” es la clave privada que solo Alicia conoce.
Ejemplo
 En el siguiente ejemplo, supongamos que la persona A quiere
hacer una clave pública, y que persona B quiere usar esa tecla
para enviar un mensaje. En este ejemplo, vamos a suponer que el
mensaje A envía a B es sólo un número. Suponemos que A y B han
acordado en un método para codificar el texto como números.
Estos son los pasos:
 1. La persona A selecciona dos números primos. Usaremos p = 23 y
q = 41 para el ejemplo, pero hay que tener en cuenta que el
número real de la persona A debe ser mucho más grande.
 2. La persona A multiplica p y q juntos para conseguir pq = (23) (41)
= 943. 943 es la "clave pública", que le dice a la persona B (y en el
resto del mundo, si lo desea).
Ejemplo
 3. La persona A también elige otro número e que debe ser primos
entre sí (p - 1) (q - 1). En este caso, (p - 1) (q - 1) = (22) (40) = 880, por
lo que e = 7 está muy bien. e es también forma parte de la clave
pública, por lo que B también se cuenta el valor de e.
 4. Ahora B sabe lo suficiente para codificar un mensaje a A.
Supongamos, que el mensaje es el numero M = 35.
 5. B calcula el valor de C = Me (mod N) = 357 (mod 943) .
 6. 357 = 64,339’296,875 y 64,339’296,875 (mod 943) = 545. El número
545 es la codificación que B envía a A.
Ejemplo
 7. Ahora A quiere descifrar 545. Para ello, tiene que encontrar un
número tal que ed = 1 (mod (p - 1) (q - 1)), o en este caso, de tal
manera que 7d = 1 (mod 880). La solución es d = 503, desde el
7*503 = 3521 = 4 (880) + 1 = 1 (mod 880).
 8. Para encontrar la decodificación, A debe calcular Cd (N mod) =
545503 (mod 943). Este parece que será un cálculo horrible, y al
principio parece que lo es, pero hay que darse cuenta que 503 =
256 + 128 + 64 + 32 + 16 + 4 + 2 + 1 (esto es sólo la expansión binaria
de 503). Así que esto significa que:
545503 = 545256 + 128 + 64 + 32 + 16 + 4 + 2 + 1 = 545256 545128 · · · 5451.
Ejemplo
 Pero ya que sólo importa el resultado (mod 943), podemos calcular
todo el parcial resultados en ese módulo, y elevando al cuadrado
repetido de 545, podemos obtener toda los exponentes que son
potencias de 2.
 Por ejemplo, 5452 (MOD 943) = 545 · 545 = 297,025 (mod 943) = 923.
Entonces cuadrado de nuevo: 5454 (mod 943) = (5452)2(mod 943) =
923 · 923 = 851 929 (mod 943) = 400, y así sucesivamente. Podremos
obtener:
Ejemplo
 Podríamos obtener:
 Así que el resultado que queremos es:
 545503 (mod 943) = 324 · 18 · 215 · 795 · 857 · 400 · 923 · 545 (mod 943) = 35.
 El cálculo de esto es tedioso (pero simple para una computadora) cálculo,
A puede decodificar el mensaje de B y obtener el mensaje original N = 35.
5451 (mod 943) = 545 5458 (mod 943) = 633 54564 (mod 943) = 215
5452 (mod 943) = 923 54516 (mod 943) = 857 545128 (mod 943) = 18
5454 (mod 943) = 400 54532 (mod 943) = 795 545256 (mod 943) = 324

Algoritmo rsa

  • 1.
  • 2.
    RSA En criptografía, RSA(Rivest, Shamir y Adle man) es un sistema criptográfico de clave pública 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.
  • 3.
    Introducción. La seguridad deeste algoritmo radica en el problema de la factorización dé 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.
  • 4.
    Intreducción. Como en todosistema de clave pública, cada usuario posee dos claves de cifrado: una pública y otra privada. Se cree que RSA será seguro mientras no se conozcan formas rápidas de descomponer un número grande en producto de primos.
  • 5.
  • 6.
     Técnicamente, Bobenvía a Alicia un «mensaje llano» ”M” en forma de un número ”m” menor que otro número ”n”, mediante un protocolo reversible conocido como padding scheme («patrón de relleno»). A continuación genera el «mensaje cifrado» mediante la siguiente operación:  donde ”e” es la clave pública de Alicia.  Ahora Alicia descifra el mensaje en clave “c” mediante la operación inversa dada por  donde ”d” es la clave privada que solo Alicia conoce.
  • 7.
    Ejemplo  En elsiguiente ejemplo, supongamos que la persona A quiere hacer una clave pública, y que persona B quiere usar esa tecla para enviar un mensaje. En este ejemplo, vamos a suponer que el mensaje A envía a B es sólo un número. Suponemos que A y B han acordado en un método para codificar el texto como números. Estos son los pasos:  1. La persona A selecciona dos números primos. Usaremos p = 23 y q = 41 para el ejemplo, pero hay que tener en cuenta que el número real de la persona A debe ser mucho más grande.  2. La persona A multiplica p y q juntos para conseguir pq = (23) (41) = 943. 943 es la "clave pública", que le dice a la persona B (y en el resto del mundo, si lo desea).
  • 8.
    Ejemplo  3. Lapersona A también elige otro número e que debe ser primos entre sí (p - 1) (q - 1). En este caso, (p - 1) (q - 1) = (22) (40) = 880, por lo que e = 7 está muy bien. e es también forma parte de la clave pública, por lo que B también se cuenta el valor de e.  4. Ahora B sabe lo suficiente para codificar un mensaje a A. Supongamos, que el mensaje es el numero M = 35.  5. B calcula el valor de C = Me (mod N) = 357 (mod 943) .  6. 357 = 64,339’296,875 y 64,339’296,875 (mod 943) = 545. El número 545 es la codificación que B envía a A.
  • 9.
    Ejemplo  7. AhoraA quiere descifrar 545. Para ello, tiene que encontrar un número tal que ed = 1 (mod (p - 1) (q - 1)), o en este caso, de tal manera que 7d = 1 (mod 880). La solución es d = 503, desde el 7*503 = 3521 = 4 (880) + 1 = 1 (mod 880).  8. Para encontrar la decodificación, A debe calcular Cd (N mod) = 545503 (mod 943). Este parece que será un cálculo horrible, y al principio parece que lo es, pero hay que darse cuenta que 503 = 256 + 128 + 64 + 32 + 16 + 4 + 2 + 1 (esto es sólo la expansión binaria de 503). Así que esto significa que: 545503 = 545256 + 128 + 64 + 32 + 16 + 4 + 2 + 1 = 545256 545128 · · · 5451.
  • 10.
    Ejemplo  Pero yaque sólo importa el resultado (mod 943), podemos calcular todo el parcial resultados en ese módulo, y elevando al cuadrado repetido de 545, podemos obtener toda los exponentes que son potencias de 2.  Por ejemplo, 5452 (MOD 943) = 545 · 545 = 297,025 (mod 943) = 923. Entonces cuadrado de nuevo: 5454 (mod 943) = (5452)2(mod 943) = 923 · 923 = 851 929 (mod 943) = 400, y así sucesivamente. Podremos obtener:
  • 11.
    Ejemplo  Podríamos obtener: Así que el resultado que queremos es:  545503 (mod 943) = 324 · 18 · 215 · 795 · 857 · 400 · 923 · 545 (mod 943) = 35.  El cálculo de esto es tedioso (pero simple para una computadora) cálculo, A puede decodificar el mensaje de B y obtener el mensaje original N = 35. 5451 (mod 943) = 545 5458 (mod 943) = 633 54564 (mod 943) = 215 5452 (mod 943) = 923 54516 (mod 943) = 857 545128 (mod 943) = 18 5454 (mod 943) = 400 54532 (mod 943) = 795 545256 (mod 943) = 324

Notas del editor

  • #3 Leonard Adleman, Ronald Linn Rivest y Adi Shamir.
  • #4 Actualmente estos primos son del orden de 10^200, y se prevé que su tamaño crezca con el aumento de la capacidad de cálculo de los ordenadores
  • #5 Cuando se quiere enviar un mensaje, el emisor busca la clave pública del receptor, cifra su mensaje con esa clave, y una vez que el mensaje cifrado llega al receptor, este se ocupa de descifrarlo usando su clave privada.
  • #6 Alicia envía a Bob una caja con una cerradura abierta, de la que solo Alicia tiene la llave. Bob recibe la caja, escribe el mensaje, lo pone en la caja y la cierra con su cerradura. Bob envía la caja a Alicia y ella la abre con su llave. En este ejemplo, la caja con la cerradura es la «clave pública» de Alicia, y la llave de la cerradura es su «clave privada»