Está en la página 1de 43

MA2002B

A. Martı́nez

Análisis de Criptografı́a y Seguridad


Bloque MA2002B, 4° Semestre

Profr. Alberto F. Martı́nez1

Escuela de Ciencias Aplicadas

Ingenierı́a en Ciencias de Datos y Matemáticas


Febrero-Junio de 2023

1 / 43
MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.

Parte II

Fundamentos de Criptografı́a.

2 / 43
Teorı́a de Números

MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.
Definiciones (conjuntos de números naturales, números enteros,
números racionales, números reales).
Operaciones con enteros.
Divisibilidad y números primos.
Factorización y el teorema fundamental de la aritmética.
Máximo común divisor (gcd) y el algoritmo de Euclides.

3 / 43
Definiciones (conjuntos, números naturales, números
enteros, números racionales, números reales).
MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.

Si bien es cierto que muchos de estos conceptos respecto a Teorı́a


de Números han sido tratados de manera implı́cita desde Educación
Básica, es necesario dar formalidad a los mismos. Y también es
necesario que los estudiantes se habitúen a la notación matemática
que se ocupa en Criptografı́a y en general en Matemáticas.

4 / 43
Definiciones (conjuntos, números naturales, números
enteros, números racionales, números reales).
MA2002B

A. Martı́nez

Fundamentos de Se tiene que [1]:


Criptografı́a.

Definición
Un número natural es aquel elemento contable, cuyo rango es
[1, ∞). Para denotarlos como conjunto se usa el sı́mbolo N. Es
decir, se es número natural si a ∈ N, N = {1, 2, ...}.

No obstante, esa misma fuente aclara que algunos autores definen a


un número natural como un número cuya cuenta inicia desde cero
(0).

5 / 43
Definiciones (conjuntos, números naturales, números
enteros, números racionales, números reales).
MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.
Se tiene que [2]:
Definición
Un número entero es aquel elemento contable, cuyo rango es
(−∞,∞). Para denotarlos como conjunto se usa el sı́mbolo Z (la
letra alemana Zahlen). Es decir, se es número entero si a ∈ Z,
Z = {..., −2, −1, 0, 1, 2, ...}.

6 / 43
Definiciones (conjuntos, números naturales, números
enteros, números racionales, números reales).
MA2002B

A. Martı́nez
Los números enteros pueden ser divididos en los siguientes
Fundamentos de
Criptografı́a.
subconjuntos [2]:
El cero, {0}.
Números enteros positivos, Z+ . Con rango [1, ∞),
Z+ = {1, 2, ...} = N.
Números enteros negativos, Z− . Con rango (−∞, −1]. Es
decir, Z− = {..., −2, −1}.
Números enteros no negativos, Z∗ . Conjunto de números que
abarca desde el cero a ∞. Es decir, Z∗ = {0, 1, 2, ...}. O
también puede ser Z∗ = Z+ ∪ {0}.

7 / 43
Definiciones (conjuntos, números naturales, números
enteros, números racionales, números reales).
MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.
Se tiene que [3]:
Definición
Un número racional es aquel que puede ser expresado como una
fracción de 2 números enteros p, q, con p, q ∈ Z, q ̸= 0, donde p es
conocido como numerador y q es conocido como denominador. Para
denotarlos como conjunto se definen con la letra Q.

8 / 43
Definiciones (conjuntos, números naturales, números
enteros, números racionales, números reales).
MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.
Se tiene que [4]:
Definición
Un número irracional es aquel que NO puede ser expresado como
una fracción de 2 números enteros p, q, con p, q ∈ Z, q ̸= 0, donde
p es conocido como numerador y q es conocido como denominador.
Para denotarlos como conjunto se definen con la notación Q̄.

9 / 43
Definiciones (conjuntos, números naturales, números
enteros, números racionales, números reales).
MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.
Se tiene que [5]:
Definición
El conjunto de los números reales está definida como la unión de los
conjuntos de los números racionales e irracionales. Su notación es
R. Dado lo anterior, si un número a es real, entonces a ∈ R.

10 / 43
Operaciones con enteros

MA2002B
Se tiene que [6, 7]:
A. Martı́nez
Definición
Fundamentos de
Criptografı́a. Un campo es un conjunto de elementos que satisfacen los axiomas de campo
tanto de la suma (+) como de la multiplicación (*), es decir, cumple con las
siguientes definiciones:
Asociatividad. Sean a,b,c, entonces

(a + b) + c = a + (b + c) (1)
(a ∗ b) ∗ c = a ∗ (b ∗ c) (2)

Conmutatividad. Sean a,b, entonces

a+b = b+a (3)


a∗b = b∗a (4)

11 / 43
Operaciones con enteros

MA2002B Se tiene que [6, 7]:


A. Martı́nez Definición
Fundamentos de Distributividad. Sean a,b, entonces
Criptografı́a.

a ∗ (b + c) = (a ∗ b + a ∗ c) (5)
(a + b) ∗ c = (a ∗ c + b ∗ c) (6)

Neutro o identidad. Sean a,b, entonces

a+0 =a= 0+a (7)


a∗1 =a= 1∗a (8)

Existencia del inverso.

a + (−a) =0= (−a) + a (9)


−1 −1
a∗a =1= a ∗a (10)

12 / 43
Operaciones con enteros

MA2002B
Por otro lado, recordemos que existen las siguientes 6 operaciones aritméticas,
A. Martı́nez
que buscaremos acotar a los números enteros positivos. Sean a, b ∈ Z + :
Fundamentos de Suma: c = a + b. La suma de 2 números enteros positivos es un entero
Criptografı́a.
positivo.
Resta: c = a − b. La resta de 2 números enteros positivos no siempre es un
número entero positivo.
Multiplicación: c = a ∗ b. La multiplicación de 2 números enteros positivos
siempre es un número entero positivo.
División: c = a/b. La división entre 2 números enteros positivos no siempre
es un número entero positivo.
Potencia: c = ab . La potencia entre 2 números enteros positivos siempre es
un número entero positivo.

Raı́z: c = b a. La raı́z entre 2 números enteros positivos no siempre es un
número entero positivo.

13 / 43
Operaciones con enteros

MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.
Lo mostrado anteriormente implica que para las operaciones de resta, división y
raiz el resultado no siempre caerá en Z+ . Y es por esa razón que más adelante se
verán formas de que esas operaciones puedan ser re-definidas para Z∗ (con la
inclusión del número cero, teniendo cuidado respecto a la operación del inverso),
con tal de que todas las operaciones antes mencionadas puedan formar un
campo definido en Z∗ .

14 / 43
Operaciones con enteros

MA2002B

A. Martı́nez A manera de adelanto [8]::


Fundamentos de Definición
Criptografı́a.
Un campo finito es aquel cuyo orden de campo es limitado, donde dicho orden es
un número primo p o una potencia de un número primo p n , cuyo rango está
acotado entre [0, p n − 1] y donde cada miembro del campo es un número entero
en el rango dado, o un polinomio con coeficientes enteros en el rango dado. Se
denota como GF (p n ) o Fpn .

A estos campos se les conoce como Campos de Galois. Este tema se retomará
cuando se vea Aritmética Modular (el término suena “extravagante”, pero
simplemente se trata de aritmética con residuos en la operación de división
usando números enteros no negativos, o en Z∗ ). Para fines de este bloque, sólo
trabajaremos con GF (p), p siendo un número primo.

15 / 43
Primos y divisibilidad

MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.

Tomando de referencia a [9, 10]:


Definición
Un número primo es aquel elemento a, a ∈ Z+ \{1}, que es
únicamente divisible entre uno y sı́ mismo.

16 / 43
Primos y divisibilidad

MA2002B

A. Martı́nez
Reglas de divisibilidad: Sea a, a ∈ Z+ \{1}, entonces [11]:
a es divisible entre 2 siempre y cuando su último dı́gito sea cero o par.
Fundamentos de
Criptografı́a. a es divisible entre 3 si la suma de cada uno de los dı́gitos que forman a a
dan como resultado un múltiplo de 3.
a es divisible entre 5 siempre y cuando su último dı́gito sea cero o 5.
a ≡ {an−1 an−2 ...a2 a1 a0 } es divisible entre 7 si después de hacer

b = {an−1 an−2 ...a2 a1 } (11)


c = b − 2a0 (12)

de manera iterativa, la suma de los dı́gitos que componen a c da cero o un


múltiplo de 7.
A manera de ejercicio de diagnóstico, se les pide a los alumnos que revisen si sus
matrı́culas son divisibles entre 2,3,5 y 7, sin usar calculadora.

17 / 43
Primos y divisibilidad

MA2002B
Una de las guı́as más notables para verificar si un número es o no es primo es
A. Martı́nez mediante la bien conocida Criba de Eratóstenes. Una de las maneras
(ineficientes) en que se construye es verificando si cada número en el conjunto
Fundamentos de
Criptografı́a. C = {2, ..., n} es divisible por cada número del conjunto H = {2, ..., n/2} e ir
marcando quienes son únicamente divisibles entre ellos mismos [12, 13, 14].

Figura: Criba de Eratóstenes, tomada de [12]

18 / 43
Factorización y el teorema fundamental de la aritmética

MA2002B

A. Martı́nez
Tomando de referencia a [9, 15], se tiene que:
Fundamentos de
Criptografı́a.
Definición
El Teorema Fundamental de la Aritmética establece que cualquier
numero a, a ∈ Z+ \{1}, puede ser descompuesto y representado de
manera única como un producto de números primos de la forma

a = p1e1 p2e2 ...pkek (13)

donde pi ∈ Z+ \{1} son primos con diferente valor, ei ∈ Z∗ son


exponentes con diferente valor, y donde i ∈ {1, ..., k}.

19 / 43
Factorización y el teorema fundamental de la aritmética

MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a. Para descomponer un número en sus factores primos, basta con ir probando cada
número primo en cada división subsecuente de tal cantidad, hasta que no quede
residuo alguno [11]. Probemos con 85. Considerar a p como el divisor primo.

a p
85 5
17 17
1 1

∴, la descomposición en factores primos de 85 es 5*17.

20 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a. Revisando en [9], se tiene que:

Definición
Un algoritmo es un procedimiento computacional bien definido que toma una
entrada variable y que se detiene con una salida.

Es decir, un algoritmo es un conjunto de pasos claros, concisos y concretos que


reciben un conjunto dado de entradas para terminar generando una salida, lo que
implica que ese conjunto de pasos es finito, es decir tiene un final.

21 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.

Revisando en [9], se tiene que:

Definición
Sean a, b ∈ Z. Entonces, a divide exactamente a b si existe un entero c tal que
b = a ∗ c. Su notación es a|b.

22 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.
Las propiedades de la división son [9]:
a|a. A es divisible por sı́ misma.
Propiedad transitiva. Si a|b y b|c, entonces a|c.
Si a|b y a|c, entonces a|(b ∗ x + c ∗ y ), ∀x, y ∈ Z. Implica propiedades de
distribución.
Si a|b y b|a, entonces a = ±b. Implica obtener un ±1 como resultado en el
cociente.

23 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a. El algoritmo de la división nos indica que [9]:

Definición
Si a y b son enteros, con b ≥ 1, entonces la división puede ser expresada en
términos de un único cociente q y un único residuo r de la forma

a=q∗b+r (14)

donde 0 ≤ r < b

24 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez Se tiene que [9]:


Propiedad 1, operador cociente y operador residuo
Fundamentos de
Criptografı́a.
Definición
Si a y b son enteros, con b ̸= 0, entonces

q = a div b = ⌊a/b⌋ (15)


r = a mod b = a − q ∗ b (16)

Propiedad 2, común divisor:

Definición
Si un número c tiene la propiedad de que c|a y c|b, entonces c es común divisor
de a y b.

25 / 43
El gcd y el algoritmo de Euclides

MA2002B Se tiene que [9]:


A. Martı́nez Propiedad 3, máximo común divisor (m.c.d o gcd -the greatest common
divisor-):
Fundamentos de
Criptografı́a. Definición
Si existe un número entero positivo d que divida a a y b al mismo tiempo,
entonces el gcd(a, b) es el número entero positivo más grande que divide a
ambos números.
Propiedad 4, mı́nimo común múltiplo (m.c.m o lcm -the least common
multiple-):
Definición
Si existe un número entero positivo d que sea divisible por a y b al mismo
tiempo, entonces el lcm(a, b) es el número entero positivo más pequeño que es
divisible por ambos números. Y además

lcm(a, b) = a ∗ b/gcd(a, b) (17)


26 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez
Acá se recuerdan algunas reglas referentes a calcular el máximo común divisor y
Fundamentos de el mı́nimo común múltiplo. Pongamos un ejemplo de calcular el mı́nimo común
Criptografı́a. múltiplo en Aritmética (mayores detalles en [11]). Considerar a p como el divisor
primo.

a b p
85 20 2
85 10 2
85 5 5
17 1 17
1 1 1

∴, el mı́nimo común múltiplo entre 85 y 20 es el producto de los números de la


tercer columna, es decir m.c.m(85, 20) = 2 ∗ 2 ∗ 5 ∗ 17 = 340.

27 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez
Pongamos un ejemplo de calcular el máximo común divisor en Aritmética
Fundamentos de (mayores detalles en [11]), usando los mismos valores numéricos. Considerar a p
Criptografı́a. como el divisor primo.

a b p Usar
85 20 2 No
85 10 2 No
85 5 5 Si
17 1 17 No
1 1 1 Si

∴, el máximo Común divisor entre 85 y 20 es el producto de los números de la


tercer columna que dividan a ambos números en las primeras 2 columnas al
mismo tiempo, es decir m.c.d(85, 20) = 5.

28 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez

Fundamentos de De manera más formal [9]


Criptografı́a.

Definición
e f
Sean a,b, a, b ∈ Z+ \{1}, con a = p1e1 p2e2 ...pkk , b = p1f1 p2f2 ...pkk , i ∈ {1, ..., k}
+
,ei , fi ∈ Z . Entonces

min(e1 ,f1 ) min(e2 ,f2 ) min(e ,f )


m.c.d(a, b) = p1 p2 ...pk k k (18)
max(e1 ,f1 ) max(e2 ,f2 ) max(ek ,fk )
m.c.m(a, b) = p1 p1 ...pk (19)

29 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez

Fundamentos de Usemos el ejemplo con a = 85 = 5 ∗ 17 y b = 20 = 22 ∗ 5. Entonces:


Criptografı́a.

m.c.d(85, 20) = 2min(2,0) 5min(1,1) 17min(1,0) = 5 (20)


max(2,0) max(1,1) min(1,0)
m.c.m(85, 20) = 2 5 17 = 340 (21)

Y ası́ demostramos consistencia con lo calculado previamente.

Nota: Versión corregida de la filmina.

30 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez Usemos el ejemplo con a = 85 = 5 ∗ 17 y b = 20 = 22 ∗ 5. Los detalles de como


Fundamentos de
se obtuvieron los resultados de la filmina anterior recaen en los hechos tipo:
Criptografı́a.
El caso de a = 85 = 5 ∗ 17 puede ser expresado como
a = 85 = 20 ∗ 51 ∗ 171 .
El caso de b = 20 = 22 ∗ 5 puede ser expresado como
b = 20 = 22 ∗ 51 ∗ 170 .
Entonces, se tienen para p1 = 2 los exponentes 0 y 2, para p2 = 5 el mismo
exponente en 1 y para p3 = 17 los exponentes 1 y 0, para a y b
respectivamente.
Se aplica el operador max y min según sea el caso.

Nota: Versión extendida de la filmina previa.

31 / 43
El gcd y el algoritmo de Euclides

MA2002B
Consecuencias de las propiedades anteriores [9]:
A. Martı́nez
Divisibilidad por un número primo
Fundamentos de
Criptografı́a. Definición
Si p es primo y p|a ∗ b, entonces al menos p divide a uno de los factores en a ∗ b,
es decir p|a, o p|b, o los 2.

Contabilidad de números primos


Definición
La cantidad de números primos es infinta.

No obstante, su existencia se va haciendo “escasa” conforme el valor de los


números crece. Esto puede ser estimado mediante la fórmula asintótica

π(x)
lı́m =1 (22)
x→∞ x/ln(x)
32 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.

Consecuencias de las propiedades anteriores es [9]:


Primos relativos:
Definición
Se dice que a y b son primos relativos entre sı́, o coprimos, si gcd(a, b) = 1.

33 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez Este es el algoritmo de Euclides para calcular el gcd

Fundamentos de
Criptografı́a. Algorithm 1 Algoritmo de Euclides versión iterativa [9].
1: Entradas: Dos entradas enteras a y b, con a > b
2: Salida: a
3: while b ̸= 0 do
4: r = mod(a,b)
5: a=b
6: b=r
7: end while
8: return a

Se recomienda hacerlo de manera iterativa a como se muestra en el algoritmo.


Existe una versión recursiva, que con números grandes no conviene usar.

34 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez

Fundamentos de
Este es el algoritmo de Euclides para calcular el gcd versión recursiva:
Criptografı́a.

Algorithm 2 Algoritmo de Euclides versión recursiva [16].


1: Entradas: Dos entradas enteras a y b, con a > b
2: Salida: a
3: if mod(a,b)==0 then
4: return a
5: else
6: return gcd(b,mod(a,b))
7: end if

35 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.
Apliquemos la versión iterativa del gcd euclidiano con gcd(85,20). Entonces

Iteración r a b q
0 - 85 20 -
1 5 20 5 4
2 0 5 0 4

Return a=5.

36 / 43
El gcd y el algoritmo de Euclides

MA2002B

A. Martı́nez
Apliquemos la versión iterativa del gcd euclidiano con gcd(4864, 3458) (ejemplo
Fundamentos de
Criptografı́a. tomado de [9]). Entonces

Iteración r a b q
0 - 4864 3458 -
1 1406 3458 1406 1
2 646 1406 646 2
3 114 646 114 2
4 76 114 76 5
5 38 76 38 1
6 0 38 0 2

Return a=38.

37 / 43
Bibliografı́a I

MA2002B

A. Martı́nez
Eric W. Weisstein.
Fundamentos de Natural Number.
Criptografı́a.
Consultado el 18/02/2023 en From MathWorld–A Wolfram Web Resource
https://mathworld.wolfram.com/NaturalNumber.html, 2023.

Eric W. Weisstein.
Integer.
Consultado el 18/02/2023 en From MathWorld–A Wolfram Web Resource
https://mathworld.wolfram.com/Integer.html, 2023.

Eric W. Weisstein.
Rational Number.
Consultado el 18/02/2023 en From MathWorld–A Wolfram Web Resource
https://mathworld.wolfram.com/RationalNumber.html, 2023.

38 / 43
Bibliografı́a II

MA2002B

A. Martı́nez
Eric W. Weisstein.
Fundamentos de Irrational Number.
Criptografı́a.
Consultado el 18/02/2023 en From MathWorld–A Wolfram Web Resource
https://mathworld.wolfram.com/IrrationalNumber.html, 2023.

Eric W. Weisstein.
Real Number.
Consultado el 18/02/2023 en From MathWorld–A Wolfram Web Resource
https://mathworld.wolfram.com/RealNumber.html, 2023.

Eric W. Weisstein.
Field.
Consultado el 18/02/2023 en From MathWorld–A Wolfram Web Resource
https://mathworld.wolfram.com/Field.html, 2023.

39 / 43
Bibliografı́a III

MA2002B

A. Martı́nez
Eric W. Weisstein.
Fundamentos de
Criptografı́a.
Field Axioms.
Consultado el 18/02/2023 en From MathWorld–A Wolfram Web Resource
https://mathworld.wolfram.com/FieldAxioms.html, 2023.

Eric W. Weisstein.
Finite Field.
Consultado el 18/02/2023 en From MathWorld–A Wolfram Web Resource
https://mathworld.wolfram.com/FiniteField.html, 2023.

Paul C Van Oorschot, Alfred J Menezes, and Scott A Vanstone.


Handbook of applied cryptography.
CRC press, 1996.

40 / 43
Bibliografı́a IV

MA2002B

A. Martı́nez
Eric W. Weisstein.
Fundamentos de
Criptografı́a.
Prime Number.
Consultado el 18/02/2023 en From MathWorld–A Wolfram Web Resource
https://mathworld.wolfram.com/PrimeNumber.html, 2023.

J. A. Baldor.
Aritmética.
Grupo Editorial Patria, 2016.

Breanna Widner.
Sieve of Eratosthenes.
Consultado el 18/02/2023 en New Mexico State University https://web.
nmsu.edu/~pbaggett/Lessons/primeNumbers/primeNumbers.html, s.f.

41 / 43
Bibliografı́a V

MA2002B
Eric W. Weisstein.
A. Martı́nez
Sieve of Eratosthenes.
Fundamentos de Consultado el 18/02/2023 en From MathWorld–A Wolfram Web Resource
Criptografı́a.
https://mathworld.wolfram.com/SieveofEratosthenes.html, 2023.

Kulwinder Kaur.
Sieve of Eratosthenes Algorithm.
Consultado el 18/02/2023 en Top Coder Web Page https://www.
topcoder.com/thrive/articles/sieve-of-eratosthenes-algorithm,
2021.
Eric W. Weisstein.
Fundamental Theorem of Arithmetic.
Consultado el 18/02/2023 en From MathWorld–A Wolfram Web Resource
https:
//mathworld.wolfram.com/FundamentalTheoremofArithmetic.html,
2023.
42 / 43
Bibliografı́a VI

MA2002B

A. Martı́nez

Fundamentos de
Criptografı́a.

Kenneth J. Goldman.
Recursive Algorithms.
Consultado el 18/02/2023 en Top Coder Web Page
https://www.cs.wustl.edu/~cytron/101Pages/swf12/Notes/
Recursion/recursion.html, 1997.

43 / 43

También podría gustarte