Sei sulla pagina 1di 21

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE CIENCIAS

Aritmética Modular y Criptografía

Introducción a la Matemática Discreta

Integrantes
Mechan Osorio, Rodrigo 20160496I

Micha Velasque, Junior 20162171J

Paima Mijahuanca, Kevin 20151483E

Yagi Vasquez, Alesandra 20162230F

Vito Gutierrez, Jafer 20174059E


Índice

1. Introducción 2
2. Resumen 2
3. Objetivo 4
4. Marco Teórico 5
4.1. Criptografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1.1. Denición . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1.2. Transformación del texto claro en texto cifrado y la
forma de procesar de este . . . . . . . . . . . . . . . . 6
4.1.3. Criptoanálisis . . . . . . . . . . . . . . . . . . . . . . . 6
4.1.4. Tiempo Medio para la búsqueda exhaustiva de claves . 7
4.1.5. DES (Data Encryption Standar) . . . . . . . . . . . . . 8
4.1.6. Estructura de los algoritmos de C.S incluidos el DES . 8
4.1.7. Descifrado . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.1.8. Algoritmos de cifrado convencional . . . . . . . . . . . 10
4.1.9. Criptograa de la llave publica . . . . . . . . . . . . . 10
4.2. ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3. Aritmética Modular . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.1. Congruencia de números enteros . . . . . . . . . . . . . 14
4.3.2. Aritmética en Zn . . . . . . . . . . . . . . . . . . . . . 15
4.3.3. Residuos de Potencias . . . . . . . . . . . . . . . . . . 16

5. Aplicación 17
5.1. Certicados digitales . . . . . . . . . . . . . . . . . . . . . . . 18

6. Bibliografía 19

1
1. Introducción

Antes de empezar el siguiente trabajo, daremos las deniciones de crip-


tografía y encriptación.
La encriptación es el proceso de volver ilegible información considerada
importante o sensible. Se trata de una medida de seguridad que es usada para
almacenar o transmitir información que no debería ser visible a terceros.
La criptografía es el arte o ciencia de cifrar y descifrar información
mediante técnicas especiales y se emplea frecuentemente para permitir un
intercambio de mensajes que sólo puedan ser leídos por personas a las que
van dirigidos y que poseen los medios para descifrarlos. Por lo tanto, se
pueden considerar ambos sinónimos. Sólo que encriptación originalmente fue
una palabra desaconsejada de usar, por tratarse de una mala traducción del
inglés.
Encriptado y desencriptado, son ambos anglicismos de los términos in-
gleses encrypt y decrypt. La Real Academia Española recogió esa acepción
en la edición de su diccionario de 2014, por lo que es correcta su utilización
también.
Ahora para evitar confusiones, en el siguiente informe utilizaremos el
termino criptografía.

2. Resumen

Para encriptar un mensaje necesitamos previamente representarlo en for-


ma numérica. Esto no es un gran problema dado que las computadoras de
hecho son como representa los caracteres y letras. Así la letra `a' corresponde
en código ASCII al número decimal 97, la letra `o' se representa como 111,
y el número 2, también en ASCII, se representa como 50.
Por ejemplo, para codicar `onda2' en ASCII escribimos los números: 111
110 100 97 50.
La encriptación, más propiamente llamada cifrado, consiste en realizar
transformaciones sobre el texto representado en forma numérica de modo que
su apariencia diera del texto original tanto que sea irreconocible. Algunas
propiedades que necesariamente deben tener estas transformaciones son:

Deben ser invertibles, para a partir del texto cifrado ser capaces de
recuperar el texto original.

2
Tanto el proceso de encriptar como el de desencriptar deben ser fáciles
de realizar si uno posee las claves necesarias para ello.

El proceso de desencriptar debe ser prácticamente imposible de realizar


si no se posee la clave para hacerlo.

Podemos realizar un símil con la apertura de una caja de seguridad; si se


conoce la combinación se tardará algunos segundos en abrir la caja. Si no
es así, se deberá probar tanteando todos los casos posibles, y salvo una gran
casualidad se tardará un tiempo tan grande en abrir la caja que tornara esta
tarea en impracticable. En el último punto tratado se consideró un método
para abrir la caja que consiste en probar todos los casos posibles. Es lo que se
llama un ataque de `fuerza bruta'. Lo mismo es válido para la Criptografía,
un espía puede siempre intentar descifrar un mensaje probando todos los
casos posibles.
Un método de encriptar se considera seguro si el mejor método aplicado
para intentar descifrar un mensaje es equivalente al ataque por fuerza bruta.
Con el aumento de la velocidad de los ordenadores se logra que el ataque
por fuerza bruta sea cada vez más ecaz. Si un computador puede probar 1
millón de claves por segundo, la siguiente tabla da una idea del valor esperado
que tarda en hallar la clave correcta dependiendo del largo del clave medido
en bytes Se recuerda que un byte está formado por 8 bits. Como cada bit
puede valer 0 o 1, los posibles valores de un byte son 256 en total, para dos
bytes son 216 = 65536, para 4 bytes son 232 = 4294967296 ≈ 109,63. Para
8 bytes tenemos una clave del orden de 1019.
El tiempo de búsqueda en un ataque por fuerza bruta crece exponencial-
mente con el largo de clave, así como muestra la siguiente tabla.

Hoy en día, suponiendo que se posean los recursos más potentes en compu-
tación, y que el ataque por fuerza bruta sea el más eciente se consideran
seguras claves de una longitud de 16 bytes, unos 128 bits. Cuando decimos
esto, nos referimos a sistemas de encriptado donde la clave de encriptar y la

3
de desencriptar son ambas secretas. Tales sistemas se llaman de clave simé-
trica o privada. La característica de tales sistemas es que, conociendo la clave
para encriptar, la de desencriptar o bien coincide con la de encriptar, o bien
el cálculo de la clave de desencriptar a partir de la de encriptar es sencillo.
Para los sistemas de encriptar de clave pública las claves deben ser mucho
más largas para tener el mismo nivel de seguridad. Lo que se usa al establecer
una comunicación encriptada con clave simétrica, entre dos interlocutores es
generar una clave al azar para esa comunicación concreta. El problema es
que los interlocutores deben ponerse de acuerdo en la clave sin revelarla a un
posible espía.

3. Ob jetivo

Crear un código de tal manera que haga lo siguiente:


Lea un texto que sólo contenga caracteres del código ASCII. Muestre el texto
encriptado al aplicar el siguiente método:

El código ASCII de un carácter se debe dividir entre 16 y extraer el


cociente y el residuo de esa división.

Se debe calcular el inverso módulo p(p=17) del cociente y el residuo


hallados anteriormente.

Los inversos hallados anteriormente se unen para formar un nuevo nú-


mero en base 16 (de tal forma que, si se convirtiera a base 2, el cociente
conformaría los bits de las posiciones del 0 al 3 y el residuo conformaría
los bits de las posiciones del 4 al 7).

El nuevo número, hallado en el paso anterior, es el código encriptado


y se debe devolver el carácter ASCII asociado a ese código. Muestre el
texto desencriptado usando un procedimiento parecido al anterior

4
4. Marco Teórico

4.1. Criptografía
4.1.1. Denición
La criptografía proviene del griego kryptos: ocultar, y grafos: escribir.
Es decir, signica escritura oculta. Como concepto son las técnicas utiliza-
das para cifrar y descifrar información utilizando técnicas matemáticas que
hagan posible el intercambio de mensajes de manera que sólo puedan ser
leídos por las personas a quienes van dirigidos.

Figura 1: Criptosistema

Sea cual sea el medio de transmisión o almacenamiento (enlace, red tele-


fónica, red de datos, disco magnético, disco óptico, etc.), éste será siempre y
por denición un medio inseguro. Por lo tanto, habrá que adaptarse a este
medio usando el cifrado.
Ahora bien, los sistemas criptográcos se clasican en:

El número de claves usadas.

El tipo de operación utilizado para transformar el texto claro en texto


cifrado.

La forma de procesar el texto claro.

Si tanto el emisor como el receptor usan la misma clave, el sistema se deno-


mina simétrico, de clave única, de clave secreta o cifrado convencional. En
cambio, si el emisor y el receptor usan cada uno claves diferentes, el sistema
se denomina asimétrico, de dos claves o cifrado de clave pública.

5
4.1.2. Transformación del texto claro en texto cifrado y la forma
de procesar de este
Todos los algoritmos de cifrado se basan en dos principios: sustitución*
y transposición*. Lo fundamental es que todas las operaciones sean inversas
(descifrar). Un cifrador de bloques procesa un bloque de elementos cada vez,
produciendo un bloque de salida por cada bloque de entrada. Un cifrador de
ujo procesa los elementos de entrada continuamente, produciendo la salida
de un elemento cada vez.

4.1.3. Criptoanálisis
Es el proceso por el que se intenta descubrir un texto claro o una clave de
cifrado. La estrategia usada por el criptoanalista depende de la naturaleza
del esquema de cifrado y de la información disponible.
Un termino muy usado en encriptación es el llamado ataque de fuer-
za bruta que implica intentar cada clave posible hasta que se obtenga la
traducción legible del texto cifrado al texto claro y como promedio, se debe
intentar la mitad de todas las claves posibles para conseguir descubrirla.

6
4.1.4. Tiempo Medio para la búsqueda exhaustiva de claves

Figura 2: Esquema de cifrado Simétrico

7
4.1.5. DES (Data Encryption Standar)
El texto en claro tiene una longitud de 64 bits y la clave de 56; si el texto
es más largo se procesa en bloques de 64 bits, además el cifrado y descifrado
de cada bloque de 64 bits es realizado mediante:

Permutaciones de bits.

Sumas binarias tipo XOR entre los datos y la llave secreta.

Funciones de sustitución que mediante tablas jas mapean un grupo


de bits a un grupo de bits diferente.

Figura 3: Modo de trabajo del DES

4.1.6. Estructura de los algoritmos de C.S incluidos el DES


Son 16 etapas de proceso y se generan 16 sub claves partiendo de la clave
original de 56 bits, una para cada etapa.

8
Figura 4: Estructura de los algoritmos de C.S

9
4.1.7. Descifrado
El proceso de descifrado del DES es básicamente el mismo que el de
cifrado. Simplemente se utiliza el texto cifrado como entrada al algoritmo del
DES, pero las subclases Ki se pasan en orden inverso. Es decir, en la primera

etapa se usa K16, K15 en la segunda y así hasta K1 en la 16 y última etapa.

4.1.8. Algoritmos de cifrado convencional

4.1.9. Criptograa de la llave publica


Los algoritmos de clave pública están basados en funciones matemáticas
y no en simples operaciones sobre los patrones de bits. Esta criptografía es
asimétrica, lo que implica el uso de dos claves separadas (una clave pública
y otra privada) y no solo de una como en la criptografía simétrica.

Claves Como los nombres lo sugieren, la clave pública de dicha pareja


de claves se hace pública para que los otros la usen, mientras que la clave
privada sólo es conocida por su propietario. Un algoritmo criptográco de
clave pública con propósito general se basa en una clave para el cifrado y
otra diferente, aunque relacionada para el descifrado.

10
Figura 5: Criptografía de la llave pública

Figura 6: Generación de las claves

11
4.2. ASCII
ASCII (acrónimo inglés de American Standard Code for Information In-
terchange Código Estándar Estadounidense para el Intercambio de Infor-
mación), pronunciado generalmente [áski] , es un código de caracteres ba-
sado en el alfabeto latino, tal como se usa en inglés moderno. Fue creado
en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde
1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI)
como una refundición o evolución de los conjuntos de códigos utilizados en-
tonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se
redenieron algunos códigos de control para formar el código conocido como
US-ASCII.
El código ASCII utiliza 7 bits para representar los caracteres, aunque
inicialmente empleaba un bit adicional (bit de paridad) que se usaba para
detectar errores en la transmisión. A menudo se llama incorrectamente ASCII
a varios códigos de caracteres de 8 bits que extienden el ASCII con caracteres
propios de idiomas distintos al inglés.
ASCII fue publicado como estándar por primera vez en 1967 y fue ac-
tualizado por última vez en 1986. En la actualidad dene códigos para 32
caracteres no imprimibles, de los cuales la mayoría son caracteres de control
que tienen efecto sobre cómo se procesa el texto, más otros 95 caracteres
imprimibles que les siguen en la numeración (empezando por el carácter es-
pacio).
Casi todos los sistemas informáticos actuales utilizan el código ASCII o
una extensión compatible para representar textos y para el control de dispo-
sitivos que manejan texto como el teclado.

12
Figura 7: Alguno de los caracteres ASCII

13
4.3. Aritmética Modular
4.3.1. Congruencia de números enteros
Denición
Sea n ∈ N jo, sea J={nk : k ∈ Z}, se dene la relación ≡ (mod n), donde:

x, y ∈ Z, x ≡ y(mod n) ⇔ x − y ∈ J

Entonces esta denición nos dice que x es congruente con y módulo n si y


solo si la diferencia entre ambos números es múltiplo de n o en otras palabras
que cuando se divide a x y y con n,esto nos darán el mismo residuo.

Relación de Equivalencia
Es fácil observar que la relacion ≡ (mod n) , es decir:

1. ∀a ∈ Z, a ≡ a(mod n) (Reexividad)

2. Sea a,b ∈Z / a ≡ b (mod n) ⇒ b ≡ a (mod n) (Simetría)

3. Sea a,b,c ∈ Z /a ≡b (mod n) ∧ b ≡ c(mod n) ⇒a ≡c (mod n)(Transitividad)

Clase de Equivalencia y Espacio Cociente


Como ≡ (mod n) dene una relación de equivalencia, entonces es válido
poder denir una clase de equivalencia:

[x] = {y ∈ Z : x ≡ y(mod n)}

El conjunto cociente denido por esta relación será dentado por Zn , entonces:

Zn = {[x] ∈ Z} = {[0], [1], · · · , [n − 1]}

Proposición: Sea n∈ N. Si x≡y(mod n) y p≡q (mod n), entonces:

1. x + p ≡ y + q (mod n)

2. x · p = y · q (mod n)

14
Demostración: Por hipótesis se tiene qye x - y = k·n y que p-q = s·n,
donde k, s ∈Z

1. (x + p) - (p - q) = k ·n + s · n , como (k + s) ∈ Z, entonces
x + p ≡ y + q (mod n)

2. x · p = (y + k ·n)·(q + s ·n) = y ·q +(y ·s)·n+(q ·k) ·n + (k ·s) ·n ·n


= y·q+(y·s+ q·k+k·s·n)·n ⇒ x·p ≡ y · q (mod n)

Proposición: Si x ≡ y (mod n), entonces mcd(x,n) = mcd(y,n).

Demostración: Sea mcd(x,n)=d ∧ mcd(y,n)= e ⇒ d|x ∧ d|y, como


existe algún -k que pertenece a los enteros, tal que x - y = (-k)·n ⇒ x+k·n
= y ⇒ como d|x ∧ d|y, entonces d|y ∧ d|n, como mcd(y,n) = e ⇒ d|e, de
forma análoga pero iniciando con que mcd(y,n) = e se llega a que e|d ⇒ e|d
∧ d|e ⇒ e = d.

Proposición: Si mcd(m,n) = 1, entonces : x · m ≡ y · m (mod n)


n
⇒ x ≡ y (mod n). En general si x·m ≡ y·m(mod n) ⇒ x ≡ y (mod mcd(m,n) )

Demostración: x·m-y·m=k·n,k ∈ Z ⇒ n|(x·m-y·m),sea mcd(n,m)=a


n n n
⇒ a
|(x-y) ⇒ x-y=r· ,r ∈ Z ⇒ x ≡ y (mod )
a a

4.3.2. Aritmética en Zn
Como se vió en la proposición la congruencia es compatible con la suma
y el producto, entonces se puede denir las siguientes operaciones:

+ :Zn × Zn → Zn · :Zn × Zn → Zn
([x], [y]) 7→ [x] + [y] = [x + y] ([x], [y]) 7→ [x] · [y] = [x · y]

En un curso de álgebra se puede notar facilmente que (Zn ,+,·) es un anillo.

Divisores de cero
Se dice que Zn tiene divisor de cero, si ∃[x],[y] ∈ Zn ,[x]6= [0] ∧ [y]6=[0]/[x]·[y]=[0].

Proposición: Zn no tiene divisores de cero si y solo si n es un número


primo.

15
Demostración:
(⇒)Supongamos que n no sea un número primo, entonces sea n = x·y/x6=1
∧ x 6= n, entonces [x]6=[0]
∧ [y]6=[0],entonces [x]·[y]=[x·y]=[n]=[0], entonces
se tiene que Zn tiene divisores de cero. (⇒⇐)
(⇐) Sea n un número primo y sean [x],[y] ∈ Zn / [x]·[y]=[0] ⇒ [x·y]=[0],
entonces n|x·y entonces como n es un número primo se tiene que n|x ∨ n|y,
entonces [x]=[n]=[0] ∨ [y]=[n]=[0], entonces Zn no tiene divisores de cero.

Elemento Inverso
Se dice que [x] ∈ Zn es un elemento inversible o unidad, si existe algún [y]
∈ Zn tal que [x]·[y] = [1] y se dene Un ⊂ Zn , este conjunto está conformado
por todos los elementos inversibles de Zn .

Proposición: Si n es un número primo ⇒ ∀[x] ∈ Zn , [x]6=[0],


∃[y] ∈ Zn :[x]·[y]=[y]·[x] = [1]

Demostración: Sea n un número primo, sea [x] ∈ Zn ,[x]6=[0], sin pér-


dida de generaliada se puede considerar 0 <x <n ⇒ mcd(x,n)=1, por un
teorema conocido de teoría de números y se tiene que ∃ a,b ∈ Z/
a·x + b·n = 1 ⇒ [1]=[a·x + b·n] = [a]·[x] + [b]·[n] = [a]·[x], entonces [a] es
la inversa de [x].

4.3.3. Residuos de Potencias


Proposición: Todo [x] ∈ Zn tiene inversa si y solo si mcd(x,n) = 1,
para todo [x] ∈ Zn .

Demostración:
(⇒) Sea [x]∈ Zn ⇒ ∃[y] ∈ Zn / [x]·[y] = [1] ⇒ [x·y]=[1] ⇒ ∃k ∈ Z /
x·y=k·n + 1 ⇒ mcd(x·y,n)⇒mcd(x,n) = 1
(⇐)Sea [x] ∈ Zn ⇒ mcd(x,n) = 1 ⇒ ∃y,r ∈ Z/y·x + r·n =1
⇒ y·x - 1 = (-r)·n ⇒ [x·y]=[1]=[x]·[y], entonces [x] es inversible.

Función de Euler
Sea n ∈ Zn , se dene la función indicatriz de Euler ,expresado como ϕ(n) :

ϕ(n) = |{x ∈ N : 1 ≤ x ≤ n ∧ mcd(x, n) = 1}|

16
Propiedades:

1. ϕ(n)= n - 1, si n es primo.

2. ϕ(nk ) = (n - 1)n
k−1
donde n es primo y k es un número natural.

3. ϕ(nm) = ϕ(n)ϕ(m), donde m y n son primos.

Por el teorema fundamental de la aritmética se tiene que n puede expresarse


como :
r
Y
n= pki i , ∀i 6= j ⇒ pi 6= pj
i=1

Entonces por recursividad se tiene:

r r
Y
ki −1
Y 1
ϕ(n) = (pi − 1)pi = n (1 − )
i=1 i=1
pi

Entonces con esta nueva función se puede calcular |Un |=ϕ(n).

Teorema de Euler
Si mcd(x,n) = 1 ⇒ ϕϕ(n) ≡ 1(mod n)

5. Aplicación

La aplicación principal de los algoritmos de cifrado es garantizar la con-


dencialidad de los documentos, aunque estos resultasen accesibles a personas
no autorizadas. La situación práctica en la que más se utiliza es la transferen-
cia de información por canales de comunicación no seguros, como es Internet.
Las técnicas de cifrado, además de garantizar la condencialidad, garantizan
colateralmente la integridad, ya que si el documento no es accesible para
usuarios no autorizados tampoco es modicable. Los algoritmos de cifrado
juegan un papel decisivo en la transferencia de archivos, por ejemplo, por
correo electrónico, y en la transferencia de información mediante navegado-
res, por ejemplo, durante el acceso a la página web de un banco. También se
utilizan las técnicas de cifrado para proteger documentos importantes dentro
del disco de duro o en cualquier medio de almacenamiento digital, por si se
produce un acceso ilegal. Un acceso no autorizado a información condencial

17
puede tener lugar tanto por un acceso ilícito al sistema como por el robo de
los medios físicos de almacenamiento (especialmente en ordenadores portáti-
les o ash drive). Para garantizar la condencialidad, se pueden utilizar tanto
las técnicas de cifrado de tipo simétrico donde existe una clave secreta que se
utiliza para cifrar y descifrar, como las técnicas de cifrado de tipo asimétrico
donde existe una clave pública y otra privada.
Una de las aplicaciones más extendidas de las técnicas de cifrado en la
comunicación en modo seguro del navegador de Internet, es decir cuando
el usuario pone https en lugar de http, al establecer una conexión https
el navegador solicita la clave pública del servidor y luego se establece la
comunicación mediante algoritmos simétricos.
En el caso del correo electrónico cifrado. Análogamente se aplican cifra-
dos simétricos con claves autogeneradas y luego dichas claves se cifran con
algoritmos asimétricos.

5.1. Certicados digitales


Los algoritmos asimétricos, es decir los que utilizan una clave pública y
una clave privada, fueron diseñados para poder intercambiar información de
manera segura sin necesidad de haber acordado previamente una clave se-
creta de cifrado. En efecto todo mensaje cifrado con la clave pública de un
usuario sólo puede ser descifrado con la clave privada que el usuario mantiene
segura. Sin embargo, existe una vulnerabilidad en este proceso que consiste
en suplantar la identidad del receptor en un mecanismo de ataque conocido
con el nombre de man-in-the-middle attack o bien MITM .Suponiendo que
un atacante (representado en rojo) tiene capacidad de interceptar la comuni-
cación entre dos usuarios, el atacante puede hacer una sustitución de claves
que le dan capacidad para ver y modicar los mensajes sin que los usuarios
sean conscientes de la intrusión. Según el ejemplo de la Figura, el usuario ver-
de quiere enviar un mensaje condencial al usuario azul, por lo que reclama
su clave pública. Sin embargo, la clave pública del usuario azul es intercepta-
da por el atacante, que la almacena y la sustituye por una clave pública falsa
(en rojo) que es enviada al usuario verde. Entonces los mensajes cifrados por
el usuario verde con la clave pública falsa son interceptados y descifrados
por el atacante, que los puede ver y modicar antes de reenviarlos al usua-
rio azul cifrados con su clave pública auténtica. En este esquema el usuario
verde piensa que está utilizando la clave pública de su destinatario cuando
realmente está utilizando una clave pública falsa, y el usuario azul recibe un

18
mensaje perfectamente cifrado con su clave pública auténtica y no detecta
que el mensaje ha sido interceptado. Para evitar este tipo de ataque, que ha-
ría perder toda la utilizada de los algoritmos asimétricos, es imprescindible
que cada usuario tenga un mecanismo para vericar si las claves públicas de
los demás usuarios son reales o falsas. Un mecanismo para garantizar la au-
tenticidad de las claves públicas es tomarlas de servidores de claves públicas
en lugar de hacerlo directamente del destinatario del mensaje. Este mecanis-
mo diculta considerablemente el ataque man-in-the-middle ya que además
de interceptar la comunicación entre emisor y receptor habría que interceptar
la comunicación entre el emisor y el repositorio de claves. Este último canal
de comunicación puede ser muy difícil de romper, especialmente si existen
varios servidores de claves que además pueden estar incluidos en la Intranet
del emisor.

Figura 8: esquema del ataque man-in-the-middle

19
6. Bibliografía

https://es.slideshare.net/econtinua/criptografa-y-su-importancia-en-nuestra-
vida-diaria

https://www.icai.es/contenidos/publicaciones/anales-get.php?id=1235

https://www.ng.edu.uy/-jvieitez/cripto2001.pdf

https://es.slideshare.net/econtinua/criptografa-y-su-importancia-en-nuestra-
vida-diaria

20

Potrebbero piacerti anche