Está en la página 1de 4

Ejemplo 2:

Por ejemplo, cada carácter se representa como un número. Si un


espacio en blanco se representa como 1, A como 2, B como 3, etcétera.
El mensaje ENVIA DINERO se representaría como 6, 15, 23,10, 2, 1, 5,
10, 15, 6, 19, 16. Si se desea, los enteros se pueden combinar en un
solo entero 061523100201051015061916 (observe que se agregaron
ceros a la izquierda para todos los números de un dígito).

A continuación, se describe cómo trabaja un sistema RSA, se presenta


un ejemplo concreto y se analiza por qué funciona. Cada receptor
potencial elige dos primos p y q y calcula z=pq. Puesto que la seguridad
del sistema RSA se basa en la incapacidad de otros de conocer el valor
de z para descubrir los números p y q, es común que p y q se elijan de
manera que cada uno tenga 100 o más dígitos. Después el receptor
potencial calcula φ= (p– 1) (q– 1) y elige un entero n tal que el mcd(n,
φ) =1. En la práctica, n suele ser primo. El par z, n se hace público. Por
último, el receptor potencial calcula el número único s, 0 <s <φ, que
satisface ns=1(mod φ). El número s se guarda en secreto y se usa para
descifrar los mensajes. Para enviar el entero a, 0 ≤ a ≤ z–1, al
propietario de la llave pública z, n, el remitente calcula c= a n mod z y
envía c. (El algoritmo 5.2.19 proporciona una manera eficiente de
calcular a nmod z). Para descifrar el mensaje, el receptor calcula c s mod z,
que se puede demostrar que es igual a “a”.

Suponga que se elige p=23, q=31 y n=29. Entonces z=pq=713 y φ=


(p–1) (q–1) =660. Ahora s=569 ya que ns=1 (mod 660), entonces (29)
(569)=1mod (660), es decir 16501-1= 16500 es divisible por 660. El
par z=569, n=713, 29 se hace público.
Para trasmitir a=572 al dueño de la llave pública 713, 29, el remitente
calcula a n=(579)(29) mod (713) =113. El receptor calcula c s mod z=
(113)(569) mod 713 =572 para poder descifrar el mensaje.

El resultado principal que hace que funcione el ciframiento y


desciframiento es que a n mod z=a para todo 0 ≤ a < z y umod φ=1 (vea
la demostración en [Cormen: Teorema 31.36, p. 885]). Usando este
resultado se demuestra que el desciframiento produce el resultado
correcto. Como ns mod φ=1.

c s mod z=¿

La seguridad del sistema RSA para cifrar se basa principalmente en el


hecho de que, hasta ahora, no se cuenta con un algoritmo eficiente para
factorizar enteros; es decir, no se conoce un algoritmo para factorizar
enteros de d dígitos en tiempo polinomial, O( ). Entonces, si se
seleccionan primos p y q suficientemente grandes, es impráctico calcular
la factorización z= pq . Si una persona que intercepta un mensaje pudiera
encontrar la factorización, podría descifrar el mensaje igual que el
receptor autorizado. Hasta ahora, no se conoce un método práctico para
factorizar enteros con 200 dígitos o más, de manera que si p y q se
eligen cada uno con 100 dígitos o más, pq tendrá alrededor de 200
dígitos o más, lo que parece lograr que el sistema RSA sea seguro.
La primera descripción del sistema criptográfico RSA se encuentra en la
columna de Matin Gardner, en el número de febrero de 1977 de
Scientific American (vea [Gardner, 1977]).

Incluyó en esta columna un mensaje encriptado usando la clave z, n,


donde será el producto de primos con 64 y 65 dígitos, y n=9007,
además de una oferta de $100 a la primera persona que descifrará el
código. Cuando se escribió el artículo, se estimaba que tomaría 40 mil
billones de años factorizar z. De hecho, en abril de 1994, Arjen Lenstra,
Paul Leyland, Michaek Graff y Derek Atkins, con la ayuda de 600
voluntarios de 25 países, usando más de 1600 computadoras,
factorizaron z (vea [Taubes]). El trabajo se coordinó por Internet.

La idea es que llaves secretas diferentes requieren tiempos diferentes


para descifrar los mensajes y, al usar esta información de tiempos, una
persona no autorizada quizá sea capaz de descubrir la llave secreta y
descifrar el mensaje. Para frustrar estos ataques, quienes están a cargo
del RSA han tomado medidas para alterar el tiempo observado para
descifrar los mensajes.

Como en el ejemplo 2, encuentre los datos de los ejercicios, suponga


que se eligen los primos p=13, q=19 y n=31

1. Calcule z
2. Calcule φ.
3. Calcule s, teniendo en cuenta que ns=1(mod φ)
En los ejercicios , suponga que se eligen los primos p=11, q=17 y n=23

4. Calcule z
5. Calcule φ.
6. Calcule s, teniendo en cuenta que ns=1(mod φ)

También podría gustarte