Logo Studenta

TellezGonzalezJorgeLuis_RSA

¡Estudia con miles de materiales!

Vista previa del material en texto

Universidad Nacional Autónoma de México
Facultad de Ingeniería
Criptografía
Grupo: 02 - Semestre: 2023-2
Tarea:
Lectura RSA.
Fecha de entrega: 27/03/2023
Profesora:
Dra. Rocío Alejandra Aldeco Pérez
Alumno:
Téllez González Jorge Luis
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
Introducción
RSA es un algoritmo de cifrado de clave pública ampliamente utilizado en la seguridad
informática. RSA se basa en la idea de que la factorización de números grandes es difícil y se
utiliza para cifrar y descifrar mensajes. Al emplear el paradigma asimétrico, cada usuario
tiene dos claves: una pública y una privada. La clave pública se utiliza para cifrar un mensaje
que solo puede ser descifrado con la clave privada correspondiente. De esta manera,
cualquier persona puede enviar mensajes cifrados a otra persona sin conocer su clave
privada. Una gran ventaja de RSA es que también puede usarse para el firmado digital
invirtiendo el proceso: cifrando con la clave privada y descifrando con la clave pública.
A continuación se presenta un resumen del artículo A Method for Obtaining
Digital Signatures and Public-Key Cryptosystems (1978) de R.L. Rivest, A. Shamir, and L.
Adleman, en donde se propone un nuevo algoritmo criptográ�co que más tarde sería
conocido como RSA.
Desarrollo
El artículo inicia presentando un método de cifrado que presenta una propiedad novedosa
consistente en poder compartir una clave de cifrado que no es, a su vez, la clave de
descifrado. Esto tiene importantes implicaciones, ya que no se requieren mensajeros u otros
medios seguros para transmitir claves, y un mensaje puede ser cifrado utilizando una clave
de cifrado revelada públicamente por el destinatario previsto. Además, un mensaje puede
ser �rmado mediante el uso de una clave de descifrado mantenida en privado, y cualquier
persona puede veri�car esta �rma utilizando la clave de cifrado correspondiente revelada
públicamente. Las �rmas no pueden ser falsi�cadas, y un �rmante no puede negar
posteriormente la validez de su �rma. Para probar la validez del método, los autores emplean
pruebas matemáticas y teóricas de su implementación en un sistema de correo electrónico.
Criptosistemas de Clave Pública
A continuación, se introduce el concepto de criptosistemas de clave pública descrito por
primera vez por Di�e y Hellman. En un criptosistema de clave pública, cada usuario coloca
en un archivo público un procedimiento de cifrado E. El archivo público es un directorio
que da el procedimiento de cifrado de cada usuario. El usuario mantiene en secreto los
detalles de su correspondiente procedimiento de descifradoD. Estos procedimientos tienen
cuatro propiedades:
2
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
● A)Descifrar la forma cifrada de un mensaje M produce M.
● B) Tanto E como D son fáciles de calcular.
● C)Al revelar públicamente E, el usuario no revela una manera fácil de calcular D;.
● D) Si un mensaje M se descifra primero y luego se cifra, M es el resultado. Un
procedimiento de cifrado (o descifrado) típicamente consiste en un método general
y una clave de cifrado.
Privacidad
El cifrado es el medio estándar para garantizar la privacidad de una comunicación. El
remitente cifra cada mensaje antes de transmitirlo al destinatario. El destinatario (pero
ninguna persona no autorizada) conoce la función de descifrado adecuada que debe aplicar
al mensaje recibido para obtener el mensaje original. Un espía que escucha el mensaje
transmitido solo oye "basura" (el texto cifrado) que no tiene sentido para él ya que no sabe
cómo descifrarlo.
La gran cantidad de información personal y sensible que se encuentra actualmente
en bancos de datos informatizados y se transmite por líneas telefónicas hace que el cifrado
sea cada vez más importante. Todos los métodos de encriptación clásicos sufren del
"problema de distribución de claves". El problema es que antes de que pueda comenzar una
comunicación privada, es necesaria otra transacción privada para distribuir las claves de
cifrado y descifrado correspondientes al remitente y al destinatario, respectivamente. Un
criptosistema de clave pública no necesita mensajeros privados; las claves se pueden
distribuir a través del canal de comunicación inseguro.
Dos usuarios también pueden establecer una comunicación privada a través de un
canal de comunicación inseguro sin consultar un archivo público. Cada usuario envía su
clave de cifrado al otro. Después, todos los mensajes se cifran con la clave de cifrado del
destinatario, como en el sistema de clave pública. Un intruso que escucha el canal no puede
descifrar ningún mensaje, ya que no es posible deducir las claves de descifrado a partir de las
claves de cifrado.
3
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
Firmas
Si los sistemas de correo electrónico van a reemplazar al sistema de correo en papel existente
para las transacciones comerciales, debe ser posible "�rmar" un mensaje electrónico. El
destinatario de un mensaje �rmado tiene la prueba de que el mensaje proviene del
remitente.
Para implementar �rmas, debe implementarse el sistema criptográ�co de clave
pública con permutaciones de una sola dirección con puerta trasera (es decir, tener la
propiedadD, ya que el algoritmo de descifrado se aplicará a mensajes sin cifrar.
¿Cómo puede el usuario Bob enviar a Alice un mensaje "�rmado" M en un sistema
criptográ�co de clave pública? Primero calcula su "�rma" S para el mensaje M utilizando
DB:
S = DB(M).
Luego cifra S usando EA (para la privacidad) y envía el resultado EA(S) a Alice. No es
necesario que envíe M también; se puede calcular a partir de S.
Alice primero descifra el cifrado con DA para obtener S. Ella sabe quién es el
supuesto remitente de la �rma (en este caso, Bob); esto se puede proporcionar si es necesario
en texto plano adjunto a S. Luego extrae el mensaje con el procedimiento de cifrado del
remitente, en este caso EB (disponible en el archivo público):
M = EB(S).
Ahora ella posee un par mensaje-�rma (M, S) con propiedades similares a las de un
documento en papel �rmado. Bob no puede negar más tarde haber enviado a Alice este
mensaje, ya que nadie más podría haber creado S = DB(M). Alice puede convencer a un
"juez" de que EB(S) =M, por lo que tiene la prueba de que Bob �rmó el documento.
Método RSA
Para cifrar un mensaje M con el método presentado, utilizando una clave de cifrado pública
(e, n), procedemos de la siguiente manera. (Aquí e y n son un par de enteros positivos.)
4
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
1. Primero, representamos el mensaje como un entero entre 0 y n - 1. El propósito aquí
no es cifrar el mensaje, sino solo ponerlo en la forma numérica necesaria para el
cifrado.
2. Luego, cifre el mensaje elevándolo a la potencia de emódulo n. Es decir, el resultado
(el texto cifrado C) es el resto cuandoMe se divide por n.
3. Para descifrar el texto cifrado, eleve otro número d, nuevamente módulo n. Los
algoritmos de cifrado y descifrado E y D son así:
C ≡ E(M) ≡Me (mod n), para un mensaje M.
D(C) ≡ Cd (mod n), para un texto cifrado C.
.
Por lo tanto, la clave de cifrado es el par de enteros positivos (e, n). De manera similar, la
clave de descifrado es el par de enteros positivos (d, n). Cada usuario hace pública su clave
de cifrado y guarda la clave de descifrado correspondiente en privado. (Estos enteros deben
estar debidamente subíndice como en nA, eA y dA, ya que cada usuario tiene su propio
conjunto.
¿Cómo debe elegir sus claves de cifrado y descifrado si desea utilizar este
método?
1. Primero, calcule n como el producto de dos números primos p y q:
n = p · q
Estos primos sonprimos "aleatorios" muy grandes. Aunque hará que n sea público,
los factores p y q estarán efectivamente ocultos para todos los demás debido a la enorme
di�cultad de factorizar n. Esto también oculta la forma en que se puede derivar d de e.
2. Luego, elija el número entero d como un número aleatorio grande que sea
relativamente primo a (p - 1) · (q - 1). Es decir, veri�que que d satisfaga:
gcd (d, (p - 1) · (q - 1)) = 1
("gcd" significa "máximo común divisor").
3. El número entero e se calcula �nalmente a partir de p, q y d para ser el "inverso
multiplicativo" de d, módulo (p - 1) · (q - 1). Así tenemos
5
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
e · d≡ 1 (mod (p - 1) · (q - 1))
Demostramos en la siguiente sección que esto garantiza que se cumplen (1) y (2), es decir,
que E y D son permutaciones inversas.
Algoritmos
Cifrado y Descifrado e�ciente
El algoritmo descrito para la operación de cifrado (y descifrado) se llama "exponenciación
mediante cuadrados y multiplicaciones repetidas". El procedimiento requiere a lo sumo 2 ·
log2(e) multiplicaciones y 2 · log2(e) divisiones. El algoritmo es simple y se puede
implementar en chips de circuitos integrados especiales. La velocidad de cifrado para un
bloque no aumenta más rápido que el cubo del número de dígitos en n. Un ordenador de
alta velocidad puede cifrar un mensaje de 200 dígitos en unos segundos, mientras que el
hardware especializado sería mucho más rápido.
Cómo encontrar números primos grandes
Cada usuario debe elegir dos números aleatorios grandes, p y q, de forma privada para crear
sus propias claves de cifrado y descifrado. Estos números deben ser grandes para que no sea
factible computacionalmente factorizar n = p · q. Se recomienda usar números primos de
100 dígitos (decimales) para p y q, de modo que n tenga 200 dígitos.
Para encontrar un número primo "aleatorio" de 100 dígitos, se generan números
aleatorios de 100 dígitos (impares) hasta que se encuentre un número primo. Según el
teorema de los números primos, se probarán alrededor de (ln 10^100)/2 = 115 números
antes de encontrar un número primo.
Por último, para probar un número grande b con respecto a si es primo o no, se
recomienda el algoritmo "probabilístico" de Solovay y Strassen. Se debe considerar que este
algoritmo no prueba si un número es primo tratando de factorizarlo.
Para obtener protección adicional contra algoritmos so�sticados de factorización, p
y q deben diferir en longitud por algunos dígitos, tanto (p − 1) como (q − 1) deben contener
factores primos grandes, y gcd(p − 1, q − 1) debe ser pequeño.
6
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
Cómo elegir d
Es muy fácil elegir un número d que sea relativamente primo a φ(n). Por ejemplo, cualquier
número primo mayor que max(p, q) servirá. Es importante que d se elija de un conjunto lo
su�cientemente grande para que un criptoanalista no pueda encontrarlo mediante
búsqueda directa.
Cómo calcular e de d y φ(n).
Para calcular e se una variación del algoritmo de Euclides para calcular el mayor común
divisor de φ(n) y d. Si e resulta ser menor que log2(n), comience de nuevo eligiendo otro
valor de d. Esto garantiza que cada mensaje cifrado (excepto M = 0 o M = 1) sufra algún
"envolvimiento" (reducción módulo n).
Seguridad del método: enfoques criptoanalíticos
La seguridad de un esquema de cifrado se prueba únicamente viendo si alguien puede
encontrar una forma de romperlo. El estándar NBS fue "certificado" de esta manera, ya que
IBM intentó durante diecisiete años sin éxito romper el esquema. Una vez que un método
ha resistido un ataque de este tipo, se puede considerar seguro para propósitos prácticos. Sin
embargo, existe controversia sobre la seguridad del método NBS.
Aunque la factorización de números grandes no es indudablemente difícil, es un
problema conocido que ha sido estudiado durante los últimos trescientos años por muchos
matemáticos famosos. Nadie ha encontrado aún un algoritmo que pueda factorizar un
número de 200 dígitos en un tiempo razonable. Se concluye que el sistema ya ha sido
parcialmente "certificado" por estos esfuerzos previos para encontrar algoritmos de
factorización e�cientes. Se exploran, sin embargo, posibles opciones para un plausible
ataque criptográ�co.
Factorizando n
Factorizar n permitiría a un criptoanalista enemigo "romper" el método. Los factores de n le
permiten calcular φ(n) y, por lo tanto, d. Afortunadamente, factorizar un número parece ser
mucho más difícil que determinar si es primo o compuesto. Se recomienda que n tenga
alrededor de 200 dígitos de longitud para una seguridad adecuada. Esta �exibilidad para
elegir la longitud de clave (y, en consecuencia, el nivel de seguridad) para adaptarse a una
aplicación particular es una característica no encontrada en muchos esquemas de cifrado
anteriores.
7
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
Calculando φ(n) sin factorizar n
Si un criptoanalista pudiera calcular φ(n), podría descomponer n y, por lo tanto, romper el
sistema. Sin embargo, se concluye que romper el sistema al calcular φ(n) no es más fácil que
la factorización de n y que φ(n) es fácil de calcular solo si n es primo.
Determinar d sin factorizar n o calcular φ(n)
Elegir d de un conjunto lo su�cientemente grande es importante para evitar que un
criptoanalista lo encuentre mediante una búsqueda directa. Además, se argumenta que
encontrar d no es más fácil que factorizar n, ya que si se conoce d, n se puede factorizar
fácilmente. También, encontrar un valor d equivalente al valor secreto no es más fácil que
factorizar n, puesto que todos estos valores di�eren del mínimo común múltiplo de (p - 1) y
(q - 1), y encontrar uno de ellos permite factorizar n.
Calcular D de otra manera
Aunque el problema de "calcular raíces e-ésimas módulo n sin factorizar n" no es tan
conocido como el factorizar, se considera que es computacionalmente intratable. Es posible
que se pueda demostrar que cualquier método general para romper el esquema conduzca a
un algoritmo e�ciente de factorización. Sin embargo, no ha sido posible probar esta
conjetura.
Conclusiones
RSA es uno de los algoritmos criptográ�cos más resistentes con el paso de los años. Debido
a su fundamento matemático que se basa en la escasez de los números primos conforme
aumenta el tamaño de p y q, realizar un ataque criptográ�co a este sistema implicaría
encontrar un método e�ciente de factorización de N. Debido a lo anterior, RSA se
considera como un mecanismo criptográ�co probado y seguro en los sistemas
computacionales actuales. Sin embargo, existen cada vez opiniones más fuertes que
mencionan el riesgo latente que RSA enfrenta con la computación cuántica, la cual podría
proveer por primera vez una solución computacional mínimamente e�ciente al problema
de la factorización, por tanto, RSA podría verse quebrantado en las próximas décadas.
Conocer los fundamentos de este algoritmo resulta interesante debido a que es
posible observar el gran re�namiento que la criptografía tuvo con el pasar de los años. En la
actualidad, existen métodos con fundamentos aún más intrincados (curvas elípticas); y
8
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
aunque personalmente me resulta un tanto complicado poder entender a detalle el aspecto
matemático, observar su aplicación en diversos procesos en línea me ayuda a comprender un
poco más su modo de operación y la seguridad que proveen en la actualidad.
Referencias
Rivest, R.L, Shamir, A, Adleman, L. (1978). AMethod for Obtaining Digital
Signatures and Public-Key Cryptosystems. https://dl.acm.org/doi/10.1145/359340.359342
9
https://dl.acm.org/doi/10.1145/359340.359342

Continuar navegando