Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Presentado por:
MARCO TEORICO
Resumen: La criptografía se encarga del estudio de los algoritmos, protocolos y sistemas que se
utilizan para proteger la información, y dotar de seguridad a las comunicaciones y a las entidades
que se comunican. Es una herramienta muy útil cuando se desea tener seguridad informática, ya
que puede garantizar las propiedades de confidencialidad, integridad y disponibilidad de los
recursos de un sistema, teniendo claros los conceptos de los sistemas criptográficos modernos,
como su clasificación, el funcionamiento de los sistemas de cifrado y sus algoritmos, y cómo se
forman los documentos digitales.
Dentro de la criptografía, existen los sistemas criptográficos de clase publica que utilizan un par de
claves para el envío de mensajes, RSA es el primer y más utilizado algoritmo de este tipo que utiliza
una clave de cifrado publica y otra privada, y es válido tanto para cifrar como para firmar
digitalmente, inventado por Ronald Rivest, Adi Shamir y Len Adleman consta de tres pasos:
generación de claves, cifrado y descifrado.
El criptosistema de Rabin es una técnica criptográfica asimétrica cuya seguridad, al igual que RSA,
se basa en la complejidad de la factorización de números enteros.
Palabras clave: Criptografía, cifrado, seguridad informática, clase pública, algoritmos RSA, teorema
chino, criptosistema Rabin.
Esta rama de las ciencias se divide en: “Teoría de Códigos” y en “Criptología”. Y a su vez la Criptología
se divide en Criptoanálisis y Criptografía, como se muestra en la siguiente figura:
En contraparte, el criptoanálisis es la ciencia que estudia los métodos que se utilizan para, a partir
de uno o varios mensajes cifrados, recuperar los mensajes en claro en ausencia de la(s) llave(s) y/o
encontrar la llave o llaves con las que fueron cifrados dichos mensajes.
La criptografía clásica es aquella que se utilizó desde antes de la época actual hasta la mitad del siglo
XX. También puede entenderse como la criptografía no computarizada o mejor dicho no digitalizada.
Los métodos utilizados eran variados, algunos muy simples y otros muy complicados de
criptoanalizar para su época.
Se puede decir que la criptografía moderna se inició después de tres hechos: el primero fue la
publicación de la “Teoría de la Información” por Shannon; el segundo, la aparición del estándar del
sistema de cifrado DES (Data Encryption Standard) en 1974 y finalmente con la aparición del estudio
realizado por Whitfield Diffie y Martin Hellman sobre la aplicación de funciones matemáticas de un
solo sentido a un modelo de cifrado, denominado cifrado de llave pública en 1976.
Tanto la criptografía clásica como la moderna se clasifican de acuerdo a las técnicas o métodos que
se utilizan para cifrar los mensajes. Esta clasificación la podemos ver en la siguiente figura:
En la criptografía moderna se pueden clasificar dos grandes grupos: la criptografía de llave secreta
o asimétrica y la criptografía de llave pública o asimétrica.
Para nuestro caso, se realizará un enfoque en el análisis de la criptografía de clase publica que
incluye el criptosistema RSA, el teorema chino, el criptosistema Rabin, ventajas y desventajas y los
tipos de ataques que se pueden realizar a los mismos, entre otros.
Si se observa la siguiente figura, que ilustra la idea de criptografía de llave pública, se puede ver
claramente que no existe simetría en ella, ya que de un lado de la figura se cifra o descifra con una
llave pública y en el otro lado con una privada. De este hecho es de donde la criptografía asimétrica
debe su nombre.
Por ejemplo, si alguien quisiera enviar un mensaje cifrado a N personas, necesitaría saber N llaves
públicas una de cada persona, pero si N personas le quiere enviar un mensaje cifrado sólo es
necesario que los demás conozcan su llave pública. Así, sólo tengo que preocuparme de que la llave
pública sea de la persona que dice ser. Este es el problema de la criptografía asimétrica, la
autenticidad de las llaves públicas. Algunos ejemplos de este tipo de criptografía son RSA, El Gamal
y Curvas Elípticas.
El algoritmo de clave pública RSA fue creado en 1978 por Rivest, Shamir y Adlman, es el sistema
criptográfico asimétrico más conocido y usado. Estos señores se basaron en el artículo de Diffie-
Hellman sobre sistemas de llave pública, crearon su algoritmo y fundaron la empresa RSA Data
Security Inc., que es actualmente una de las más prestigiosas en el entorno de la protección de
datos.
El sistema RSA se basa en el hecho matemático de la dificultad de factorizar números muy grandes.
Para factorizar un número el sistema más lógico consiste en empezar a dividir sucesivamente éste
entre 2, entre 3, entre 4, y así sucesivamente, buscando que el resultado de la división sea exacto,
es decir, de resto 0, con lo que ya tendremos un divisor del número.
Ahora bien, si el número considerado es un número primo (el que sólo es divisible por 1 y por él
mismo), tendremos que para factorizar habría que empezar por 1, 2, 3, hasta llegar a él mismo, ya
que por ser primo ninguno de los números anteriores es divisor suyo. Y si el número primo es lo
suficientemente grande, el proceso de factorización es complicado y lleva mucho tiempo.
Basado en la exponenciación modular de exponente y módulo fijos, el sistema RSA crea sus claves
de la siguiente forma:
Se buscan dos números primos lo suficientemente grandes: p y q (de entre 100 y 300 dígitos).
Y ya con estos números obtenidos, n es la clave pública y d es la clave privada. Los números p, q y Ø
se destruyen. También se hace público el número e, necesario para alimentar el algoritmo.
En cuanto a las longitudes de claves, el sistema RSA permite longitudes variables, siendo aconsejable
actualmente el uso de claves de no menos de 1024 bits (se han roto claves de hasta 512 bits, aunque
se necesitaron más de 5 meses y casi 300 ordenadores trabajando juntos para hacerlo).
RSA basa su seguridad es ser una función computacionalmente segura, ya que, si bien realizar la
exponenciación modular es fácil, su operación inversa, la extracción de raíces de módulo Ø no es
factible a menos que se conozca la factorización de e, clave privada del sistema.
RSA es el más conocido y usado de los sistemas de clave pública, y también el más rápido de ellos.
Presenta todas las ventajas de los sistemas asimétricos, incluyendo la firma digital, aunque resulta
más útil a la hora de implementar la confidencialidad el uso de sistemas simétricos, por ser más
rápidos. Se suele usar también en los sistemas mixtos para encriptar y enviar la clave simétrica que
se usará posteriormente en la comunicación cifrada.
TEOREMA CHINO DEL RESTO
El Teorema de los Restos Chinos, es llamado así, debido a que las versiones más antiguas sobre estos
problemas de congruencias se encuentran en trabajos matemáticos chinos.
El problema más antiguo se encuentra en el texto Sun Zi Suan Ching (Manual de Matemática de Sun
Zi) escrito aproximadamente en el siglo III por el matemático chino Sun Zi, y corresponde al
problema 26.
Tenemos un número de cosas, pero no sabemos exactamente la cantidad. Si las contamos de a tres,
quedan dos sobrando. Si las contamos de a cinco, quedan tres sobrando. Si las contamos de a siete,
quedan dos sobrando. ¿Cuántas cosas pueden ser?
• Determinó que se podía resolver usando los números 70, 21 y 15, que eran múltiplos de 5⋅7, de
3⋅7 y de 3⋅5 respectivamente.
• Observó que la suma 2⋅70 + 3⋅ 21+ 2⋅15 igual a 233, es una solución del problema.
• Luego, restó a 233 múltiplos de 3⋅5⋅7 tantas veces como fuera posible, obteniendo el número 23,
siendo este número el menor entero positivo que resuelve el problema.
Una versión más popular del problema de Sun Zi, conocida por el nombre Han Xing Dian Bing, que
significa Han Xing cuenta sus soldados, es el siguiente:
¿Cuántos soldados puede tener el ejército de Han Xing si al formarlos en tres columnas quedan dos
soldados, si se ordenan en 5 columnas quedan tres soldados, y al ordenarlos en 7 columnas, quedan
dos soldados?
Un primer enunciado del Teorema, se encuentra en el libro escrito por el matemático chino Qin
Jiushao1 (1202-1261), publicado en el año 1247. En su libro, Qin ofrece un método práctico para
resolver este tipo de problemas.
Aproximadamente mil años después, el matemático italiano conocido como Fibonacci (1170-1250)
trabajó el problema de Sun Zi, pero no descifró el método presentado. Posteriormente, el
matemático suizo Leonhard Euler (1707-1783) se interesó en el teorema y en el método chino y
presentó una versión moderna y más generalizada del teorema.
Luego, el matemático alemán Carl F. Gauss (1777-1885) descubrió un nuevo método para resolver
sistemas de congruencias lineales alrededor del año 1801.
El método de Qin Jiushao fue difundido en Europa por el misionero inglés Alexander Wylie (1815-
1887) en su tratado Jottings on the science of Chinese arithmetic, publicado en 1852
CRIPTOSISTEMA RSA
El RSA es un algoritmo bastante sencillo, ya que su fortaleza radica en las bases matemáticas que
posee, dentro de las cuales se incluyen:
• Anillo de enteros.
• División de enteros. A = b*(cociente) + residuo.
• Múltiplos y divisores de enteros.
• Máximo común divisor (M.C.D.).
• Mínimo común múltiplo (M.C.M.).
• Números primos y números primos entre sí. (Lo que hace fuerte al RSA).
• Descomposición en factores primos.
• Algoritmo de Euclides.
• Algoritmo extendido de Euclides.
• Función multiplicativa de Euler.
Dentro de estas bases matemáticas, las ultimas serán definidas y explicadas a continuación:
Algoritmo de Euclides: Este es un método para calcular el máximo común divisor de dos números
cualesquiera, sin necesidad de descomponerlos en factores primos. Esto es muy importante desde
el punto de vista de la computación, porque descomponer un número en factores primos, según se
sabe, es un algoritmo de coste exponencial en el tamaño del número, es decir, el tiempo que cuesta
ejecutarlo crece exponencialmente con dicho tamaño. Sin embargo, el costo del algoritmo de
Euclides es un tiempo lineal con el tamaño.
El algoritmo usa la siguiente proposición: Dados dos enteros positivos a y b, si se divide el mayor
entre el menor, lo cual da un cociente q y un resto r, es decir, a = bq + r, se cumple que mcd (a, b) =
mcd (b, r). es decir que dados a y b, se calcula la división entera entre ellos, obteniendo un cociente
q y un resto r, entonces se calcula de nuevo la división entera entre b y r, obteniendo un nuevo
cociente y un nuevo resto, el proceso se itera hasta que el resto sea 0, en cuyo caso el último divisor
b es el máximo común divisor, la sucesión de los restos es estrictamente decreciente, y como se
trata de una sucesión de números positivos, llegará a valer 0, con lo que el algoritmo finaliza.
Algoritmo extendido de Euclides: Una variación interesante del algoritmo de Euclides que es muy
útil para el RSA, es el algoritmo extendido. Es posible probar que el máximo común divisor de dos
enteros d = M.C.D(a, b) (y en general cualquier otro divisor) se puede escribir siempre como
combinación lineal de ambos, o sea, existen dos enteros ʎ y µ tales que d = ʎ a + µ b. A esta igualdad
se la llama "Identidad de Bezout".
Para encontrar dichos enteros basta recorrer los pasos del algoritmo de Euclides visto antes, al
revés, realizando en cada paso solo las sustituciones hacia atrás que sean pertinentes. En el paso i-
ésimo se debe sustituir en el despeje del resto correspondiente a dicho paso; debe hacerse en uno
de sus dos sumandos cada vez, y usando para ello la igualdad del paso (i – 2), excepto en el primero,
en que se usa la igualdad del paso inmediatamente anterior.
Función multiplicativa de Euler: Si se tiene un entero p, éste será divisible por algunos, aunque no
todos, los enteros anteriores a él (en el caso extremo de que fuese primo, por ninguno). O sea,
algunos de estos enteros serán primos relativos con p y otros no. La función de Euler dice, para cada
p, cuántos lo son.
Definición: Se define la función multiplicativa de Euler, ɸ(r), como el número de números enteros
mayores o iguales que 1 y menores que r que son primos relativos con él, es decir:
ɸ(r) = # {s / s >= 1 y s < r y mcd (s, r) = 1}, Donde # denota el cardinal del conjunto.
1. Si r es primo, ɸ(r) = r – 1
2. Si r es el producto de dos números primos entre sí, o sea, r = pq con mcd (p, q) = 1,
entonces ɸ(r) = ɸ(p) ɸ(q)
Descripción del cifrado: El algoritmo RSA puede ser explicado de la siguiente manera: Tenemos dos
sujetos A y B que quieren comunicarse, pero solo lo pueden hacer a través de un medio en el que
cualquier otro sujeto C, puede coger ese mensaje y leerlo sin problema. ¿De qué manera pueden
enviar un mensaje que no pueda ser leído por otra persona ajena a A y B?
A envía una caja fuerte con un candado abierto, a B. Luego de esto B mete su mensaje en la caja y
cierra esta con el candado que venía en ella, de modo que cuando la caja es enviada a A de regreso,
este puede abrirla, ya que es él quien posee la llave de dicho candado.
Técnicamente, A envía a B 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» c mediante la siguiente operación:
Como se notará a continuación, RSA es un algoritmo bastante sencillo, y es posible que no se note
su fortaleza, pero sus principios matemáticos, basados en números primos son los que hacen que
este pequeño pueda ser una fortaleza.
n=p*q
Se calcula ɸ:
Se calcula un número natural “e” de manera que MCD (e, ɸ(n)) = 1, es decir, “e” debe ser primo
relativo de ɸ(n). Es lo mismo que buscar un número impar por el que dividir ɸ(n) de cero como
resto.
Puede calcularse:
Ya se tiene la clave publica que son el par de números (e, n), y se tiene la clave privada que son el
par de números (d, n). La dificultad de descifrado de RSA radica en la dificultad del cálculo de ɸ(n),
por ello se debe tomar p y q lo suficientemente grandes.
Envío y recepción de un mensaje cifrado: La persona que envía el mensaje, ha de conocer la parte
pública de la clave del destinatario.
El ataque por interceptación se considera “pasivo”, mientras que los otros tres tipos se clasifican
como ataques “activos”. Para poder detectar y prevenir estos ataques, las redes deben incorporar
mecanismos que proporcionan servicios de seguridad. Estos servicios pueden resumirse en:
No repudio: Debe quedar constatado si un usuario envía o recibe algún mensaje. De esta manera,
ni el emisor del mensaje ni el receptor del mismo pueden negar que se haya efectuado la
transmisión.
Control de acceso: Solo los usuarios autorizados debidamente identificados pueden obtener
permiso de acceso a los recursos del sistema.
Para el estudio de los sistemas criptográficos es conveniente conocer la situación del enemigo. Se
tienen los siguientes ataques posibles:
• Ataque sólo con texto cifrado. Esta es la peor situación posible para el criptoanalista, ya
que se presenta cuando sólo conoce el criptograma.
• Ataque con texto original conocido. Consiste en que el criptoanalista tiene acceso a una
correspondencia del texto inicial y cifrado. Se de este caso, por ejemplo, cuando conoce el tema del
que trata el mensaje, pues eso proporciona una correspondencia entre las palabras más probables
y las palabras cifradas más repetidas.
• Ataque con texto original escogido. Este caso se da cuando el enemigo puede obtener,
además del criptograma que trata de descifrar, el cifrado de cualquier texto que él elija,
entendiéndose que no es que él sepa cifrarlo, sino que lo obtiene ya cifrado.
• Ataque con texto cifrado escogido. Se presenta cuando el enemigo puede obtener el texto
original correspondiente a determinados textos cifrados de su elección.
Ataque a modulo común: Una posible implementación de RSA consiste en asignar el mismo modulo
n a distintos usuarios, pero distintos valores para los exponentes e y d. Esto tiene el fallo de que si
el mismo mensaje se cifra con distintos exponentes y el mismo modulo y ambos exponentes son
primos entre sí (y generalmente lo serán), el texto en claro puede recuperarse sin ninguno de los
exponentes privados.
Sea P el texto en claro. Sean e1 y e2 los exponentes públicos (claves de cifrado) y n el módulo. Los
textos cifrados son:
C1 = pe1 mod n
C2 = pe2 mod n
Ataque basado en un exponente publico “bajo”: Aunque el exponente bajo acelera el cifrado,
también lo hace mas inseguro. Si se encriptan e (e+1) /2 mensajes linealmente dependientes con
diferentes claves publicas y el mismo valor de e hay un ataque contra el sistema. Si los mensajes son
idénticos entonces es suficiente con e mensajes. La solución más sencilla a este problema es añadir
a los mensajes valores aleatorios independientes.
Ataque basado en un exponente privado “bajo”: Otro ataque permite recuperar d cuando este no
supera un cuarto de n y e es menor que n. Esto ocurre raramente si e se elige al azar. El fundamento
matemático del ataque es la representación de los números racionales como fracciones continuas
finitas.
Ataque por iteración: Conocidos n, e y C, un enemigo puede producir una sucesión de mensajes C1
= Ce mod n, C2 = C1e mod n … Ck = Ck-1e mod n. Si existe un Cj tal que C = Cj se deduce que M = Cj-
1 ya que Cj-1e=Cj=C.
Este ataque se vuelve impracticable si p-1 y q-1 contienen factores primos grandes.
ALGORITMO RABIN
El criptosistema de Rabin es una técnica criptográfica asimétrica cuya seguridad, al igual que RSA,
se basa en la complejidad de la factorización. Sin embargo, la ventaja del criptosistema de Rabin es
que se ha demostrado que la complejidad del problema en el que se basa, es tan dura como la
factorización de enteros, cosa que se desconoce si es cierto en el caso del RSA simple. El
inconveniente que tiene es que cada salida de la función de Rabin puede ser generado por 4 posibles
entradas, y si cada salida es un texto cifrado se requiere un tiempo extra en el descifrado para
identificar cuál de las 4 posibles entradas era el correcto texto en claro. El algoritmo se publicó en
enero de 1979 por Michael O. Rabin.
El sistema de llave asimétrica de Rabin se basa en el problema de calcular raíces cuadradas módulo
un número compuesto. Este problema se ha demostrado que es equivalente al de la factorización
de dicho número.
El sistema de llave asimétrica de Rabin se basa en el problema de calcular raíces cuadradas módulo
un número compuesto. Este problema se ha demostrado que es equivalente al de la factorización
de dicho número. En primer lugar, escogemos dos números primos, p y q, ambos congruentes con
3 módulo 4 (los dos últimos bits a 1). Estos primos son la clave privada. La clave pública es su
producto,
n = pq.
c = m2 (mod n)
m1 = c(p+1)/4 (mod p)
m2 = (p - c(p+1)/4) (mod p)
m3 = c(p+1)/4 (mod q)
m4 = (q -c(p+1)/4) (mod q)
Sea P = C = Ζn y definamos
𝐸𝑘 (𝑥) = 𝑥 (𝑥 + 𝐵) (𝑚𝑜𝑑 𝑛)
y
𝐵2 𝐵
𝑑𝑘 (𝑦) = √ 4 + 𝑦 − 2
La función de encripción no es inyectiva, así que la decripción es ambigua. En efecto si w es una raíz
cuadrada no trivial de 1, entonces para todo texto plano x hay tres valores distintos que producen
el mismo texto cifrado, y son
x,
-x – B,
w (x + B/2) – B/2,
-w (x + B/2) – B/2.
Por ejemplo:
= w2 (x + B/2) 2 – B2/4
= x(x-B) (mod n)
= x(x-B) (mod n)
En general, el receptor del mensaje no tiene forma de distinguir entre estos cuatro textos planos
posibles a menos que el texto plano contenga suficiente redundancia como para eliminar tres de las
cuatro posibilidades.
𝑥 2 + 𝐵𝑥 ≡ 𝑦 (𝑚𝑜𝑑 𝑛)
o equivalentemente,
𝐵2
𝑥12 ≡ 𝑦 + 4
(𝑚𝑜𝑑 𝑛)
donde x1 = x + B/2.
𝑥12 ≡ 𝐶 (𝑚𝑜𝑑 𝑝)
𝑥12 ≡ 𝐶 (𝑚𝑜𝑑 𝑞)
Cada una de estas ecuaciones tiene dos raíces. Estas se pueden combinar para obtener las cuatro
soluciones de la ecuación original (por el TCR). Por el criterio de Euler sabemos que si se encriptó
correctamente C es un residuo cuadrático módulo p y módulo q. Pero esto no basta para poder
resolver las ecuaciones. En realidad, el elemento clave para esto es el hecho que
p ≡ 3(mod 4) y q ≡ 4, pues en este caso tenemos un algoritmo determinista polinomial que nos
permite calcular las raíces cuadradas de residuos cuadráticos módulo p o q. Las raíces de la primera
ecuación vienen dadas por
En efecto:
(±C(p+1)/4) 2
≡ C(p+1)/2(mod p).
≡ C (mod p).
esto debido a que C es residuo cuadrático, luego por el criterio de Euler se tiene que: C(p-1) /2 ≡
1(mod p).
Análogamente, las raíces de la segunda ecuación son ±C(q+1) /4(mod q). Teniendo las soluciones de
ambas ecuaciones se obtienen directamente las cuatro raíces de C módulo n usando el Teorema
Chino del Resto.
Cabe hacer dos observaciones:
1. El adversario no sabe cuál de las cuatro es la decripción correcta, pero el receptor tampoco. Esto
se resuelve acordando ciertas reglas de redundancia en el mensaje (i.e. el mensaje se transmite
como dos copias concatenadas, el tercer bit se repite tres veces, etc.) para poder distinguir cuál de
las cuatro raíces corresponde al mensaje original.
CONCLUSIONES
• Ventajas de la criptografía con clave pública: Se debe guardar sólo la cave privada (la
autenticidad de las claves públicas debe ser garantizada). Dependiendo del modo de uso,
un par de clave privada/clave pública quedaría inalterado por ciertos períodos de tiempo.
En una red grande, el número de claves necesarias sería más pequeño que en el contexto
de clave simétrica.
• El método de encriptación de Rabin es sumamente rápido ya que sólo involucra una simple
raíz cuadrada modular en comparación con el sistema RSA. La desencriptación de Rabin es
más lenta que la encriptación, pero es comparable en rapidez con la desencriptación del
RSA.
BIBLIOGRAFÍA