0% encontró este documento útil (0 votos)
58 vistas21 páginas

Seguridad del criptosistema RSA

Este documento trata sobre la seguridad del criptosistema RSA. Primero introduce brevemente la criptografía moderna y conceptos clave como mensaje, cifrado, claves y funciones de encriptación y desencriptación. Luego presenta conceptos básicos de teoría de números necesarios para entender RSA como divisibilidad, números primos y aritmética modular. A continuación describe el criptosistema RSA y cómo genera y usa claves. Finalmente, explica cómo se puede probar la corrección de RSA mediante la presunción de que factorizar enteros en tiempo

Cargado por

Jordi barcelo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
58 vistas21 páginas

Seguridad del criptosistema RSA

Este documento trata sobre la seguridad del criptosistema RSA. Primero introduce brevemente la criptografía moderna y conceptos clave como mensaje, cifrado, claves y funciones de encriptación y desencriptación. Luego presenta conceptos básicos de teoría de números necesarios para entender RSA como divisibilidad, números primos y aritmética modular. A continuación describe el criptosistema RSA y cómo genera y usa claves. Finalmente, explica cómo se puede probar la corrección de RSA mediante la presunción de que factorizar enteros en tiempo

Cargado por

Jordi barcelo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

El sistema criptográfico asimétrico RSA: Consideraciones de la

seguridad del criptosistema RSA


¿Cómo podemos probar que el criptosistema RSA es seguro?

Ma1temáticas NS

Palabras:

1
Índice

1. Introducción

2. Criptografía moderna (intro to crypt mes web escriure simplificadíssim mates pero no

moltes puto esquizo que no acabes si no fas per damunt, paraules guapes en plan

permutaciones)

2.1 La criptografía moderna

2.2 Mensaje y cifrado

2.3 Claves y funciones Enc, Dec y Gen

2.4 Computacionalmente seguro e incondicionalmente seguro

2.5 Funciones trap-door

2.6 Presunciones de los sistemas criptográficos

3. Teoría de números (retallar coses inútils y revisar problemes notació, 2 y algoritmo

extendido de Euclides)

3.1 Divisibilidad, números primos

3.2 Máximo común divisor, algoritmo de Euclides y la identidad de Bézout

3.3 Aritmética modular

3.4 Función phi de Euler

3.5 El teorema de Euler

4. El sistema RSA

4.1 El criptosistema RSA

4.2 Generación de claves (fer més fácil si no se pot fuck it)

4.3 Funciones de encriptación y desencriptación

4.4 Ejemplo

2
5. Prueba de seguridad (prueba de su funcionamiento no es necesario tiempo polinomial

solo mencionar lo que implicaba ref a toda la sección 3 con tal de probar corrección y ref

importante a la sección de los números primos, criptánalisis sin entrar en detalles solo

mencionar y ejemplos, limitaciones de esta prueba en los supuestos criptoanal y

factorizar enteros en tiempo polinomial)

5.1 Prueba de corrección del funcionamiento del criptosistema RSA

5.2 Presunción de su seguridad

5.3 El problema RSA

6. Conclusión (conclusión, limitaciones, mira si te que haber reflexió)

7. Bibliografía (revisar totes les fonts consultades a Mendeley y preparar citacions)

Ápendices programas utilizados para ejemplos y simulaciones

3
1. Introducción

En esta monografía se considera la pregunta de investigación “ ¿Cómo podemos probar que el

criptosistema RSA?”. Esta surgió a partir de mi curiosidad por entender como funcionaba el

intercambio seguro de información entre computadoras, lo que me llevó a realizar una

investigación preliminar sobre la criptografía y los principales métodos criptográficos,

llevándome esta a interesarme finalmente por el criptosistema RSA debido a que me fascinó la

relativa sencillez de funcionamiento un método tan seguro y comúnmente utilizado actualmente.

Esto me empujó a intentar querer entender como era posible que este funcionase y en que

sostiene esta aparente seguridad.

Si bien soy consciente que este sigue siendo un problema abierto al no estar claro si es posible

computar la factorización de enteros en tiempo polinomial (tal y como será explicado en la

última sección), siendo este hecho una limitación, trataré de probar la corrección del esquema del

criptosistema hasta llegar al porque de este problema. Con tal de realizar esto en esta monografía

se abordará la pregunta desde un enfoque descendente, primeramente, antes de empezar con el ce

problema se establece marco de conocimiento en el que se enmarca este, siendo este el de la

criptografía moderna y de las características generales de esta, con la finalidad de tener los

conocimientos necesarios con tal de entenderlo.

A continuación, se presentan (y en caso de ser necesario se prueban) los conceptos de teoría de

números necesarios con tal de comprender como funciona el sistema y poder probar

posteriormente su seguridad. Tras la presentación de estos conocimientos indispensables se

procede a la descripción del criptosistema la cual será necesaria con tal de finalmente probar su

seguridad aplicando los conocimientos de las secciones anteriores, teniendo en cuenta las

limitaciones inherentes.

4
2. Criptografía moderna

2.1 La criptografía moderna

Según la RAE la criptografía puede ser definida como el “Arte de escribir con clave secreta o de

un modo enigmático.”1, refiriéndose a esta como un arte de escribir códigos con tal de ocultar

información. Sin embargo, si bien está definición puede ser considerada correcta para la

criptografía clásica (la cual era en gran medida dependiente de la creatividad y habilidades

personales y en gran medida su seguridad era subjetiva), actualmente esta definición puede

considerarse obsoleta, ya que debido a el desarrollo del paradigma de una teoría de sólida a

finales del siglo XX esta ha dejado atrás su consideración de arte hasta pasar a ser una rama de

las matemáticas bien establecida con estrechas relaciones con la teoría de la información y la

computación. Deja atrás su noción de arte dependiente de la creatividad personal hasta permitir

su estudio científico, gracias a la creación de unas definiciones rigurosas (sabiendo así que se

quiere conseguir al desarrollar un sistema criptográfico) y la posibilidad de realizar pruebas de

seguridad estableciendo exactamente, las presunciones formales tomadas en estas. Sumado a

esto, cabe mencionar la multitud de aplicaciones que esta sirve en la era de la información,

siendo la transmisión de mensajes secretos tan solo meramente una de ellas. Debido a esto en su

libro “Introduction to Modern Cryptography” J. Katz y Y. Lindell ven necesario redefinir a la

criptografía moderna como “the scientic study of techniques for securing digital information,

Real Academia Española. (2019). Criptografía. En Diccionario de la lengua española (22.a ed.).
Recuperado de [Link]

5
transactions, and distributed computations.”2, estableciendo con esta definición su categoría de

ciencia rigurosa y multitud de aplicaciones actuales.

2.2 Mensaje y cifrado

La criptografía se basa en una serie de esquemas de encriptación los cuales tienen como objetivo

esconder información en una comunicación por un canal no seguro entre dos usuarios de un

posible atacante malicioso. Llamamos a la información que se quiere llegar a compartir por las

dos partes mensaje (denotado m) y a la información compartida por el canal tras ser encriptada

cifrado (denotado c)3

2.3 Claves y funciones Enc, Dec y Gen

Con tal de realizarse este intercanvio de información de manera segura todo criptosistema consta

de tres funciones4:

2.3.1 La función generatriz de claves Gen, la cual genera una clave/s k a partir de una

distribución probabilística diferente según el criptosistema utilizado. Esta clave/s será/n usada

por las otras funciones con tal de encriptar y desencriptar el mensaje.

2.3.2 La función encriptadora (denotada por Enc k (m) ) la cual utiliza el usuario que quiere enviar

el mensaje y mediante una clave k y m devuelve el cifrado c.

2.3.3 La función desencriptadora (denotada por Dec k (c) ¿ la cual utiliza el usuario que recibe el

cifrado con tal de obtener el mensaje, obteniendose m a partir de usando una clave k.

J. Katz y Y. Lindsell, Introduction to Modern Cryptography: CRC PRESS, 2007, p. 3-4


3

Introduction to modern c
4

Introduction to modern c

6
2.3.4 Según si se genera una con Gen una sola clave que tiene que ser compartida de antemanos

a la comunicación por los usuarios o dos claves una pública y una privada (la pública es

conocida por los dos usuarios y es usada por Enc y la privada no es compartida, tan solo es

conocida por el usuario que usa Dec), se distinguen dos tipos de criptosistemas los simétricos y

los asimétricos, teniendo estos últimos la ventaja de no tener que compartirse información

susceptible de antemano otorgando una mayor fiabilidad al sistema.

2.4 Computacionalmente seguro y incondicionalmente seguro

Con tal de poder analizar la seguridad de un criptosistema es necesario establecer que

entendemos por seguridad en la criptografía.

2.5 Funciones “trap-door”

Decimos que una función

2.6 Presunciones en los sistemas criptográficos

[Link]ía de números

Para poder comprender el funcionamiento del algoritmo RSA y proceder a la posterior prueba de

su seguridad, es necesario entender ciertos conceptos elementales de la llamada teoría de

números, rama de las matemáticas puras que se encarga del estudio de los enteros y sus

propiedades.

3.1 Divisibilidad, división euclidiana y números primos

3.1.1 Decimos que un número a divide a un número b (relación expresada con la notación a∨b)

si b = ac para un entero c. A partir de esta definición podemos derivar ciertas propiedades 5 las

cuáles serán útiles en partes posteriores de la monografía:

Andreescu, T., & Andrica, D. (2009). Number Theory: Structures, Examples, and Problems. p. 15

7
[Link] Si a∨b , b ≠ 0 entonces |a|≤|b| (ya que si ¿ a∨¿∨b∨¿ entonces ningún numero

entero c puede igualarla con b)

[Link] Si a∨bi a∨c entonces a∨αb + βc para cualquier entero α , β. (Esto puede ser

probado al observar que

b=ab' , c=ac ' siendo c ' y b ' un número entero → αb+ βc=αa b ' + βa c ' =a(α b ' + β c ' )

[Link] Si a∨b y a∨b ± c entonces a∨c (b = ab’ entonces b ± c=ab ' ± c , entonces c debe

ser dividible ya que sino seria imposible dividir la suma)

[Link] a∨a (Ya que a = ac, c =1)

[Link] Si a|b y b| c entonces a∨c (Ya que si b=b' a y c=c ' b entonces c=c ' b ' a

implicando a∨c)

[Link] Si a∨c y a∨b entonces en c ±b=n ,implica a∨n (Ya que

c ±b=c ' a+b' a=a(c ' +b' )

3.1.2 Si bien no todos los números se dividen podemos encontrar para cualquier entero positivo a

y b un par de enteros (q, r) que cumplen b=aq+ r ,r < a, siendo esta la llamada división

euclidiana. Este teorema puede ser probado de la siguiente manera:

Consideramos el set de enteros de forma a - nb S = { a−n b : n ∈ Z }. Al ser b no igual a 0, el set es

infinito al existir infinitas n. S ∩ N ≠ ∅ al existir una n para la que a−nb> 0, existiendo por tanto

enteros positivos en el set. Definimos r como el menor número positivo en S. Por la definición del

set podemos ver que existe una q, q ∈ Z para la cuál r =a−q∗b. Por tanto, a=qb+ r , r >0

Suponemos que r ≥ b, entonces r −b=a−( q+1 ) a implicando que 0 0< r−b< r, llevandonos a una

contradicción, implicando que r <b Queda así demostrada la existencia de q y r para la ecuación.

Con tal de demostrar su unicidad asumimos que existen unos enteros r ' , a' para los cuales

' ' ' ' '


a=qa+r =q ' a+r ' , 0 ≤ r ,r ' <a qa−q a=r −r , a ( q−q ) =r −r → a ∣(r −r ). Por lo tanto, ∣r −r ' ∣<a

8
, implica que r −r ' ha de ser 0 siendo por tanto equivalentes. Por lo tanto para que ( q−q ' ) a=0 , q

debe ser igual a q’, ya que a no es cero, implicando que solo existen un solo r y q.

3.1.3 Considerando la definición 3.1.1 podemos definir a los números primos como aquellos

enteros p que solo se dividen por 1 y p, p>1, llamándose compuestos todos los otros. Dos

propiedades básicas (y útiles en la criptografía) de estos números son:

[Link] Todo número puede ser expresado como un producto de una secuencia única de

números primos. Este es el llamado teorema fundamental de la aritmética.

Podemos probarlo de la siguiente manera6: Primeramente, probamos que existe una

manera de factorizar a n. Sea p1 un primo divisor de un entero n. Entonces en el caso que

n= p1 esta es su factorización. Si p1 <n entonces n= p1 r 1 , r 1 >1. Si r 1 es primo entonces

ya hemos terminado. Si no podemos volver a expresar el número como p1 p 2 r 2 y así

sucesivamente, probando así la existencia de su factorización, siendo ahora necesario

probar su unicidad. Asumimos que existe un entero compuesto n que tiene 2

combinaciones posibles de factores primos, es decir

n= p1 p2 … p k =q 1 q2 … q j , k > 2, j>2 , k =1 ,2 , 3 , … , k , j=1 ,2 , 3 , … , jDecimos que pk ≠ q j,

siendo n es el entero mínimo que cumple estas características. Asumimos que p1 es el

factor primo más pequeño de n. Aplicando el algoritmo de división euclidiana (3.1.2) se

entiende que cualquiera de los primos q jde la secuencia puede representarse como

q j= p 1 c k +r k , 1≤ r k < p1, por lo tanto, sabemos que

n=q1 q 2 … q j=( p1 c1 +r 1 )( p ¿ ¿ 1 c2 +r 2 ) …( p1 c k + r k )¿, llamamos A a todos aquellos enteros

Andreescu

9
del resultado de la expansión que tienen como factor p1 , y al producto de la permutación

r k n’ siendo por tanto n= p1 p2 … p k = A p1 +n ' , implicando por [Link] que p1∨n ' y que al

ser este divisible tiene una factorización en primos tal y como hemos probado en la parte

inicial de la demostración, n' = p 1 s 1 s 2 … si, siendo siprimos. Sabemos según 3.1.2 que

r k < p1 por tanto n ' debe tener una factorización de forma t 1 t 2 … t j , siendo t j < p1, teniendo

n' por tanto dos posibles factorizaciones. Sin embargo, sabemos que n' <n por lo tanto se

contradice la minimalidad de n, produciendo una prueba por contradicción.

[Link] Existen infinitos números primos, hecho que en los sistemas criptográficos los

vuelve muy útiles al no tener el límite, la difiultad de la factorización de un producto de

dos primos. Una prueba7 es conocida desde los tiempos del matemático Euclides

(matemático griego que vivió hace más de 2000 años) la cual fue descrita en su libro

Elementos:

Asumimos que existe un número finito de primos creando la secuencia { p1 , p 2 , … , pn }.

Consideramos el número P = p1 ∙ p1 ∙ … pn +1. Si P es primo entonces es mayor que pn,

contradiciendo por tanto su maximalidad. Entonces si P no es primo es compuesto y debe

tener al menos un factor primo pk . Es fácil observar que pk ∨ p 1 ∙ p 1 ∙ … p n. Por tanto,

según la propiedad [Link] debe dividir a 1 al dividir a P, implicando una contradicción y,

probando por tanto que hay infinitos primos.

Traducción elementos

10
3.2 Máximo común divisor, algoritmo de Euclides, la identidad de Bézout

3.2.1 El máximo común divisor de dos números a y b (denotado mcd(a, b)) se define como el

mayor divisor que tienen en común dos números. Matemáticamente podemos decir que un entero

d es el mcd de dos números a y b si y solo si d | a y d | b y si y solo si un entero c c | a y c | b

implica c | d8

3.2.1.1Si el mcd de dos números es 1 estos son llamados coprimos.

3.2.2 Con tal de hallar el máximo común divisor existe un algoritmo eficiente llamado el

algoritmo de Euclides9. Para dos enteros a y b se aplica la división euclidiana (3.1.2), obteniendo

r (único por 3.1.2). Después de realizar la división euclidiana se repite el procedimiento con b y

r, ya que mcd(a,b) = mcd(b,r). Podemos probar esto de la siguiente manera:

Sea c = mcd(a,b). Vemos que c∨a y c ∨b, implicando que c debe también dividir a r por [Link],

ya que a = bq + r (3.1.2). Si existiera un número mayor que c que dividiera a bq y a r también

dividiria a a ([Link]) implicando que no sería el mcd, por tanto el mcd(b,r) = c. Este proceso se

repite con el nuevo residuo hasta obtener (c,0), siendo entonces c el mcd al ser el máximo divisor

con 0.

Ejemplo:

mcd(58, 9)

58 = 9*6 + 4

mcd (9, 4)

Chicago paper
9

Doc uni (posible canviar)

11
9=4*2+1

mcd(4,1)

4 = 1* 4 + 0

mcd(58,9) = 1

3.2.3 La identidad de Bézout establece que para dos enteros positivos a y b existen dos enteros x

y y que cumplen ax +by=mcd(a ,b).

3.2.4 Algoritmo extendido de Euclides:

Existe una extensión del algoritmo de Euclides que nos permite computar x y y. Observamos que

a medida que utilizamos 3.2.1, se forman una serie de ecuaciones de números de la forma

a=b q+ r → r =a−qb.

3.3 Aritmética modular

La aritmética modular, sistema introducido por Carl Friedrich Gauss en su libro Disquistiones

Arithmeticae10, es un sistema aritmético que se basa en las llamadas relaciones de congruencia.

Las relaciones establecidas en este sistema constituyen una de las partes fundamentales de la

teoría de números, teniendo además aplicaciones en multitud de campos, entre ellos el de la

criptografía moderna, siendo uno de los pilares que sustentan el criptosistema RSA tal y como

más adelante será descrito.

3.3.1 Decimos que dos enteros a y b son congruentes módulo n (escrito a ≡ b mod m) con n ≠ 0 si

m∨(a−b), siendo esto equivalente a afirmar que lo son si y solo si al realizar la división

10

.
12
euclidiana de a y b por m se obtiene la misma r 11 (siendo probado al observar que

a−b=n q1 −n q2 +r 1−r 2 implicando que a - b tan solo será dividido por m si r 1−r 2=0 ,es decir

r 1=r 2.

Por ejemplo, 7 ≡25 mod 6 al ser el residuo de 7 y 25 al ser divididos por división euclidiana

(3.1.2) con 6 1 para los dos.

Las congruencias tienen las siguientes propiedades fundamentales:

[Link] Reflexividad (es decir a ≡ a mod m, ya que a−a=0 , m∨0)

[Link] Transitividad (es decir a ≡ b mod m y b ≡ c mod n implica a ≡c mod n , m ya que el

residuo es igual para todos los números divididos por n.

[Link] Si a ≡ b mod n y c ≡ d mod n entonces a+ c ≡ b+dmod n y a−c ≡b−d mod n y

ac ≡bd mod n

[Link] Si ka ≡ kb mod n y k es coprimo con n ([Link]) entonces se puede cancelar k

siendo a ≡ b mod n ya que12:

k (a−b)≡ 0 mod nal ser r a −r b=0 Entonces n |k (a−b), por tanto, para un entero c

k ( a−b )=c∗n. Al ser k coprimo con n no puede contener factores de n, siendo por tanto .

n∨( a−b) y entonces u−v ≡mod n implicando que u ≡ v mod n.

3.3.2 El anillo de todos los enteros módulo n se denota por la notación Z n, es decir, cada residuo

que cada entero da al ser dividido por n.

11

12

Dragonwins

13
3.4 Función phi de Euler

La función indicatriz o phi de Euler denotada por el símbolo φ ( n ) es definida como el número de

enteros menores o iguales a n que sean coprimos ([Link]) con n 13. Con tal de mostrar su valor

Ilustración 1: Primeros 1000 valores de phi

para los primeros 1000 números he realizado un programa que ha devuelto este gráfico

(Ápendice)

El teorema de Euler en el cuál esta aparece es sobre lo cual se sustenta la seguridad del sistema

RSA tal y como veremos más adelante. Además, esta posee ciertas características relevantes en el

RSA con tal de utilizar la función Gen como más adelante será explicado:

3.4.1 Para todo primo p la función φ ( p )=φ ( p−1 ), esto puede ser fácilmente probado al observar

que por su propia definición (3.1.3) el número primo es coprimo con todos los números menores

que el siendo por tanto phi equivalente a phi – 1.

3.4.2 Para todos los números coprimos ([Link]) m y n que al computarseφ ( n ) , n=m∗n que la

función es equivalente a φ ( m )∗φ ( n ) si m y n coprimos ([Link]), es decir, es una función

13

Weisstein, Eric W. «Euler's Totient Function». MathWorld (en inglés). Wolfram Research.

14
multiplicativa (función que es equivalente al producto del cómputo de sus factores en la

función14).

Por lo tanto, según la propiedad 3.4.2 el valor de phi puede computarse fácilmente si se conoce

todos los factores primos ([Link]) de un número n y se produce la multiplicación de estos

aplicando la propiedad 3.4.1.

3.5 El teorema Euler

3.5.1 El teorema de Euler establece que para todos los enteros coprimos a y n se cumple que a

elevado a la función phi de n es congruente con 1 módulo n, es decir:

a φ ( n) ≡ 1(mod n)

Tal y como veremos en las siguientes secciones de la monografía, es tan solo a partir de este

teorema que nos es posible probar el correcto funcionamiento del esquema de encriptación-

desencriptación del sistema RSA, es por tanto necesario probarlo con tal de poder probar como

funciona este.

Este teorema puede ser probado de la siguiente manera15:


¿
Digamos que definimos el set Z n como el conjunto de todos aquellos enteros k pertenecientes a

(0,n) coprimos con n, es decir Z n = { k ∈ ( 0 , n )|mcd ( k , n ) =1.


¿

¿
Vemos entonces que φ ( n )=¿ Z n ∨¿.

14

Andreescu
15

Mit proof chapter 8.10

15
Tenemos entonces el lema: dos elementos j , k ∈ Z n entonces j n k ∈ Z n ( j n denota el residuo de j
¿

en el anillo Z n)16

Para un elemento cualquiera k ∈ Z n y un subconjunto cualquiera S ⊆Z n sea kS :≔ {k n s∨s ∈ S } .


¿

Debido a [Link] podemos ver que |kS|=|S|, ya que k ∈ Z n siendo entonces cancelable k en la
¿

congruencia k s ≡ kt mod n, implicando que todos los elementos de S están en kS pero en distinto

orden, siendo entonces del mismo tamaño.


¿ ¿
Sabemos entonces aplicando los dos lemas anteriores que k Z n =Z n ya que la multiplcación en el

conjunto es cerrada siendo entonces k Z n ⊆ Z n , y al ser estos iguales se prueba que k Z n =Z n .


¿ ¿ ¿ ¿

Sea P el producto de todos de los enteros Z n módulo n, es decir, P=k 1 ∙ k 2 … k φ (n ) ( Z n ) .


¿

Sea entonces también Q para un elemento k ∈ Z n , el producto de todos los enteros que están Z n
¿ ¿

φ ( n)
en módulo n, Q=( k ∙ k 1 ) ∙ ( k ∙ k 3 ) … ( k ⋅ k φ (n) ) ( Z n )=k P ( Z n ) . Al ser Q=k Z n¿ y P=Z n¿ , vemos que P

φ ( n)
=Q=k P ( Z n ), siendo por tanto P ≡k φ ( n) P mod n . Al ser P el producto de los coprimos con n es

coprimo n, siendo entonces P cancelable ([Link]), quedando probado entonces que 1 ≡k φ (n ) mod n

sí k es coprimo con n.

16

Vease para prueba

16
4. El sistema RSA

El algoritmo RSA es un sistema criptográfico de clave asimétrica, desarrollado en 1979 por R.L.

Rivest, A. Shamir, y L. Adleman en su papel “A Method for Obtaining Digital

Signatures and Public-Key Cryptosystems”. Fue el primer sistema en incorporar todos los

elementos descritos por W. Diffie y M. Hellman anteriormente mencionados, incluyendo la

posibilidad de generar firmas digitales, creando el primer ejemplo funcional de una función

trapdoor. Tal y como fue originalmente descrito el sistema funciona de la siguiente manera17:

4.1 Gen, Enc, Dec

4.1.1 La función Gen genera dos conjuntos de claves, siendo el conjunto (e, n) la clave pública y

el conjunto (d, n) las claves privada. Primeramente, se elige “aleatoriamente” dos primos p y q,

teniendo estos la longitud deseada considerando la dificultad que quiere imponerse al sistema.

Seguidamente se computa n = pq. A continuación, se computa la función phi de Euler (3.4) la

cuál utilizando (3.4.1). Se elige un entero positivo e que ha de cumplir la condición de ser

coprimo con φ(n).18 A continuación, se define d como el inverso multiplicativo modular de e

17

RSA paper
18

En la publicación original se elegía d y se encontraba e optimizando la encriptación al poder ser e


pequeño.

17
módulo φ(n), es decir d cumple ed ≡1 mod( φ ( n ) ), aplicándose el algoritmo extendido de

Euclides (3.2.4). Finalmente, la función devuelve el conjunto de la clave pública y el conjunto

de la clave privada.

4.1.2 La función de encriptación del sistema Enc que deberá utilizar un usuario de este con tal de

encriptar un mensaje m y obtener un cifrado c mediante el uso de la clave pública se define de la

siguiente forma:

c=E nc( e, n) ( m )=me mod ( n )

4.1.3 La función de desencriptación del sistema Dec que el receptor de c utiliza para obtener m

mediante su clave privada se define de la siguiente manera


d
m=D ec ( d ,n ) ( C )=C mod ¿)

4.3 Ejemplo

Con tal de ilustrar con un ejemplo el funcionamiento del criptosistema he desarrollado un

programa para mostrar su funcionamiento paso por paso19:

Digamos que un usuario de una app de mensajería (la cual encripta los mensajes mediante el uso

de RSA), llamado Bob quiere mandarle un mensaje m =“¿Hola, qué tal?” a otra usuaria llamada

Alice. Primeramente, la terminal de Alice aplica Gen con tal de generar el par de claves. En este

caso, son p y q generados mediante una cuña de Erástotenes20, siendo p = 941 y q = 739. A

continuación, la terminal de Bob transforma el mensaje en su representación numérica mediante

19

Programa incluido en el Ápendice


20

Método de búsqueda de números primos

18
cualquier código21 siendo entonces m = [72, 111, 108, 97, 44, 32, 98, 117, 101, 110, 97, 115, 32,

116, 97, 114, 100, 101, 115].

Estos números son encriptados por su terminal mediante el uso de la clave pública de Alice, la

cuál consiste en el número e = 6553722 y n= p∗q=695399. Usando la función E(e, n) para carácter

de m (es decir aplicando m 65537 mod ( 695399 ) ¿estos son encriptados por el terminal de Alice

obteniendo el cifrado: [641582, 343454, 578242, 653882, 604219, 288756, 76919, 163336,

126097, 639059, 76919, 214976, 604219, 653882, 251161], siendo enviados a la terminal de

Alice, la cuál será la única capaz de descifrar m en un tiempo razonable al poseer la clave

privada. El terminal de Alice al recibir el mensaje aplica la función D( d ,n ) (m), siendo en este caso

d equivalente al entero obtenido resolviendo 65537∗d ≡1 mod 693720 , es decir ,364913,

obteniendose entonces m mediante la operación c 364913 mod ¿) para cade carácter, devolviéndose

así el mensaje original tras invertir la transformación a números.

5. Prueba de seguridad

Habiendo aprendido entonces todos los conocimientos necesarios con tal de entender el

criptosistema y las matemáticas detrás de este se procede a probar su corrección y a presentar su

seguridad y que supondría una prueba de esta.

5.1 Prueba de corrección del funcionamiento del criptosistema RSA

5.2 Presunción del RSA, el problema RSA

Conclusión

21

ASCII en el ejemplo
22

Primo usuado habitualmente en la mayoría de implementaciones RSA

19
He podido probar con un nivel de formalidad adecuado la seguridad del criptosistema RSA,

demostrando todo aquello necesario con tal de establecer la corrección de la seguridad del

sistema y la presunción en la cual se sustenta, consiguiendo así en gran medida los objetivos

planteados para la monografía.

He podido establecer la noción de seguridad que brinda el criptosistema RSA y probar su

corrección dejando la presunción que presenta el problema RSA.

Si bien es cierto que creo que he podido alcanzar a responder en gran medida esta pregunta, esta

investigación tiene ciertas limitaciones. Debido al alcance de esta monografía no he podido

alcanzar a profundizar sobre el problema RSA al requerir este muchos más conocimientos que

los presentes aquí con tal de atacarlo al continuar este siendo un problema abierto. Tan solo he

podido mostrar porque la presunción de la dificultad de la factorización de enteros lo sustenta,

sin embargo, creo que este es la repuesta a la pregunta ya que seria tan solo presentando una

prueba de que un algoritmo eficiente de factorización de enteros que podría ser probado y esto es

mostrado.

Finalmente, debo también destacar que otra limitación de la monografía es que no se ha

considerado el posible criptoanálisis del criptosistema, existiendo diversos ataques

criptoanalíticos viables que pueden computar en ciertos casos específicos el mensaje a partir del

cifrado, los cuales he obviado debido a su especificidad al ser la pregunta de investigación de

una extensión más amplia que estos.

20
Bibliografía

-RSA paper

-Introduction to group theory

-Introduction to modern cryptography

-Number theory andreescu

-Number theory other book

-Introduction to algorithms

-PKSC1

-asymptomatic notation paper

-Integer factoring

-Curso aritmética

-Math UChicgo modular arithmethic

Matthew Morgado, Modular arithmetic, [online] Recuperado de:

[Link]

- Weisstein, Eric W. «Euler's Totient Function». MathWorld, Wolfram Research.

Proof of Euler’s φ (Phi) Function Formula Juan Vargasa Shashank Chorg

Apéndice

21

También podría gustarte