Está en la página 1de 31

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 2022

1 / 31
MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.

Parte II

Fundamentos de la Criptografı́a.

2 / 31
Agenda. Conceptos básicos.

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.
Tiempo estimado: 2 horas:
Introducción a aritmética modular.
Generador de un campo.
Algoritmo extendido de Euclides.
Pequeño teorema de Fermat.
Algoritmo de exponenciación binaria modular.

3 / 31
Introducción a aritmetica modular

MA2002B

A. Martı́nez

Fundamentos de la
Muchas de las operaciones que se ocuparán en Criptografı́a tienen
Criptografı́a.
que ver con operaciones módulo, es decir se deben tomar los
residuos de la división [1, 2]. Por ejemplo, podemos decir que si
a = 25 y p = 23, tenemos a b como:

25 ≡ 2 mod 23 (1)
O de manera más general

a ≡ b mod p (2)

4 / 31
Introducción a aritmetica modular

MA2002B A como ocurre análogamente con las operaciones existentes en R,


A. Martı́nez se puede definir un conjunto de reglas de operación basada en el uso
Fundamentos de la de los residuos mediante el uso de los números enteros (Z), las
Criptografı́a.
cuales se describen a continuación [1, 2].
Propiedad reflexiva
a ≡ a mod p, ∀a ∈ Z (3)
Propiedad transitiva

a ≡ b mod p y b ≡ c mod p → a ≡ c mod p, ∀a, b, c ∈ Z


(4)
Propiedad simétrica
a ≡ b mod p → b ≡ a mod p , ∀a, b ∈ Z (5)
5 / 31
Introducción a aritmetica modular

MA2002B Las propiedades encontradas en R respecto a la asociatividad,


A. Martı́nez conmutatividad y distribución son aplicables también cuando se
Fundamentos de la utilizan residuos [1, 2]. Sean a, b, c ∈ Z, entonces:
Criptografı́a.
Propiedad asociativa
[a + (b + c)] mod p ≡ [(a + b) + c] mod p (6)
Propiedad conmutativa

(a + b) mod p ≡ (b + a) mod p (7)


(ab) mod p ≡ (ba) mod p (8)
Propiedad distributiva
a(b + c) mod p ≡ (ab + ac) mod p (9)
6 / 31
Introducción a aritmetica modular

MA2002B

A. Martı́nez
Además [1, 2]:
Fundamentos de la
Criptografı́a.
Existencia de identidad

a + 0 mod p ≡ a mod p (10)


a(1) mod p ≡ a mod p (11)

Existencia de inversos

a + (−a) mod p ≡ 0 mod p (12)


−1
a(a ) mod p ≡ 1 mod p (13)

7 / 31
Introducción a aritmetica modular

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a. En la aritmética modular, una de las operaciones más útiles a la
hora de tratar con residuos es el poder aplicar las propiedades de
reducibilidad, [1]. Sean a, b ∈ Z, entonces:

(a + b) mod p ≡ (a mod p + b mod p) mod p (14)


(ab) mod p ≡ [(a mod p)(b mod p)] mod p (15)

8 / 31
Introducción a aritmetica modular

MA2002B

A. Martı́nez

Fundamentos de la En la aritmética modular, a, b, c, d ∈ Z, pero además


Criptografı́a.
c, d ∈ GF (p) = {0, 1, ..., p − 2, p − 1} [1, 2]. Es decir:

a ≡ c mod p; b < p (16)


b ≡ d mod p; d < p (17)

Escrito de otra forma, los residuos deben ser menores al valor de p.


A manera de recordatorio, a GF (p) se le conoce como campo finito,
o también se le conoce como campo de Galois.

9 / 31
Introducción a aritmetica modular

MA2002B

A. Martı́nez
Se proporciona una tabla de guı́a para ver el producto (ab) en
GF(7) [1, 2].
Fundamentos de la
Criptografı́a.
a|b 0 1 2 3 4 5 6
0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6
2 0 2 4 6 1 3 5
3 0 3 6 2 5 1 4
4 0 4 1 5 2 6 3
5 0 5 3 1 6 4 2
6 0 6 5 4 3 2 1

Se deja como ejercicio al alumno que obtenga la tabla de


(a + b) mod p en GF(7).
10 / 31
Introducción a aritmetica modular

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.

Sea p = 17, por tanto, GF (17) tiene definido al conjunto de


números {0, 1, ..., 15, 16}. Un ejemplo de suma puede ser

16 + 15 = 31 ≡ 14 mod 17 (18)
Es decir, la suma de 16 + 15 en GF (17) es 14.

11 / 31
Introducción a aritmetica modular

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.
Seguimos con GF (17). Un ejemplo de resta puede ser

7 − 13 = −6 ≡ 11 mod 17 (19)
Es decir, la resta de 7 − 13 en GF (17) es 11. Y esto viene del hecho
de que 17 − 6 = 11. Recordar que en GF (p) todos los elementos
deben ser positivos y menores a p.

12 / 31
Introducción a aritmetica modular

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.

Seguimos con GF (17). Un ejemplo de multiplicacion puede ser

8 ∗ 12 ≡ 96 mod 17 = 11 (20)
Es decir, la multiplicación de 8 ∗ 12 en GF (17) es 11.

13 / 31
Generador de un campo.

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a. Un generador para GF(p) es aquel valor que, elevado a todos los
elementos de GF (p), genera todos los elementos de GF (p), con
excepción del cero. Es decir, se tiene que si a ∈ {1, 2, ..., p − 1},
entonces [1]

g a mod p = b , b ∈ {1, 2, ..., p − 1} (21)


Naturalmente, g ̸= {0, 1}.

14 / 31
Generador de un campo.

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.

Una forma de obtener g es factorizar (p-1), donde sus factores son


q1 , q2 , ..., qk , ..., qm . Ası́, para que se cumpla que g es un generador,
se tiene que [1]

g (p−1)/qk mod p ̸= 1 (22)

15 / 31
Generador de un campo.

MA2002B

A. Martı́nez
Sea GF(7), por tanto, (p − 1) = (7 − 1) = 6 = 2(3), es decir
q1 = 2, q2 = 3. Entonces, probando para cada valor y desplegando
Fundamentos de la
Criptografı́a. en una tabla, se tiene que:
g qk v = (p − 1)/qk h = gv h mod p Criterio
2 2 3 8 1 NO
2 3 2 4 4 SI
3 2 3 27 6 SI
3 3 2 9 2 SI
4 2 3 64 1 NO
4 3 2 16 2 SI
5 2 3 125 6 SI
5 3 2 25 4 SI
6 2 3 216 6 SI
6 3 2 36 1 NO

16 / 31
Generador de un campo.

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.
Tomemos a g = 3 para GF(7), por tanto
a h = ga h mod p Criterio
1 3 3 SI
2 9 2 SI
3 27 6 SI
4 81 4 SI
5 243 5 SI
6 729 1 SI

Se comprueba que g = 3 sı́ es un generador en GF(7)

17 / 31
Algoritmo extendido de Euclides.

MA2002B
Mientras que varias de las propiedades mostradas acá tienen una
A. Martı́nez
equivalencia relativamente directa en R, la operación del inverso
Fundamentos de la multiplicativo no lo es, pero se proporciona un ejemplo para clarificar
Criptografı́a.
en qué consiste obtener dicho “inverso” [1, 2]. Sea a = 5 y p = 7,
entonces GF (7) = {0, 1, 2, 3, 4, 5, 6}. Se crea la siguiente tabla:

i ai ai mod p
0 0 0
1 5 5
2 10 3
3 15 1
4 20 6
5 25 4
6 30 2
18 / 31
Algoritmo extendido de Euclides.

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.
A como se mostró en la filmina anterior, puede deducirse que
5(3) = 3(5) ≡ 1 mod 7. No obstante, el probar por fuerza bruta
todos los números para encontrar el inverso multiplicativo no es
viable, dado que en la práctica, p es un número muy grande. Por
tanto, se requieren algoritmos que permitan facilitar dichos cálculos
[1, 2].

19 / 31
Algoritmo extendido de Euclides.

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.

Una de las formas de calcular el inverso multiplicativo es mediante


el uso del Algoritmo Extendido de Euclides (AEE), útil si no se
conoce ϕ(x) [1, 2].

20 / 31
Algoritmo extendido de Euclides.

MA2002B

A. Martı́nez
Algorithm 1 Pseudo-código del AEE para calcular el inverso [1, 2].
1: function x=inveuclides(a,p);
Fundamentos de la
Criptografı́a.
2: b=p;
3: if b=0 then
4: d=a; x=1, y=0;
5: return NULL
6: end if
7: x2 = 1; x1 = 0; y2 = 0; y1 = 1;
8: while b > 0 do
9: q = fix(a/b); r = a − q ∗ b; x = x2 − q ∗ x1 ; y = y2 − q ∗ y1 ;
10: a = b; b = r ; x2 = x1 ; x1 = x; y2 = y1 , y1 = y ;
11: end while
12: if d > 1 then
13: return NULL
14: else
15: return x = x2
16: end if 21 / 31
Algoritmo extendido de Euclides.

MA2002B
Se calcula el inverso de 6 en GF (17) s mediante el uso del Algoritmo Extendido
A. Martı́nez
de Euclides, el cual se describe a continuación.
Fundamentos de la
Criptografı́a. q r x y a b x2 x1 y2 y1
- - - - 6 17 1 0 0 1
0 6 1 0 17 6 0 1 1 0
2 5 -2 1 6 5 1 -2 0 1
1 1 3 -1 5 1 -2 3 1 -1
5 0 -17 6 1 0 3 -17 -1 6

Cuadro: Ejemplo del cálculo del inverso mediante el Algoritmo Extendido


de Euclides (disposición en tabla basada en [2]).

Se puede apreciar que el último valor calculado para x2 es de x2 = 3. Y, por


tanto, de acuerdo al AEE, x = x2 = 3, lo cual es consistente con el cálculo del
inverso multiplicativo dado que 6 ∗ 3 = 18 ≡ 1 mod 17.
22 / 31
Pequeño teorema de Fermat.

MA2002B

A. Martı́nez Antes de aplicar el pequeño teorema de Fermat, es necesario definir


una función denominada ϕ(x) (Phi de Euler), donde se tienen los
Fundamentos de la
Criptografı́a. siguientes casos [1].
Con x = p primo.
ϕ(p) = p − 1 (23)
Con un producto x = pq, con p y q primos.

ϕ(pq) = (p − 1)(q − 1) (24)

Con un número en la forma x = p k , siendo p primo.

ϕ(p k ) = p (k−1) (p − 1) (25)

23 / 31
Pequeño teorema de Fermat.

MA2002B

A. Martı́nez
El pequeño teorema de Fermat nos indica que [1, 2].
Fundamentos de la
Criptografı́a.

aϕ(x) mod p ≡ 1 mod p (26)


−1 ϕ(p)−1
∴a mod p ≡ a mod p (27)

donde ϕ(x) = p − 1, p primo, entonces:

1 mod p ≡ ap−1 mod p (28)


−1 p−2
∴a mod p ≡ a mod p (29)

24 / 31
Algoritmo de exponenciación binaria.

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.
Por supuesto, si p es muy grande, nos invita a pensar en usar
maneras más eficientes de calcular el inverso mediante el uso del
Pequeño teorema de Fermat. Ante esto, se ocupa el algoritmo de
exponenciación binaria, el cual se describe en la siguiente filmina
[1, 2]. Por supuesto, si un número es elevado a un exponente, este
mismo algoritmo tambı́en se aplica.

25 / 31
Algoritmo de exponenciación binaria.

MA2002B

A. Martı́nez
Algorithm 2 Pseudo-código del algoritmo de exponenciacion binaria
[1, 2].
Fundamentos de la
Criptografı́a. 1: function x=binaryexponentiation(a,e,p);
2: ebin=binaryrepresentation(e);
3: n=length(ebin);
4: x = 1;
5: for j = n − 1 to 0 do
6: x = x*x mod p;
7: if ebinj = 1 then
8: x=x*a mod p;
9: end if
10: end for
11: return x;
26 / 31
Algoritmo de exponenciación binaria.

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a. Sea a = 6 en GF (17). Entonces su inverso mediante el Pequeño
teorema de Fermat se calcula como

ap−2 mod p = 617−2 mod 17 (30)


17−2
6 mod 17 = 470, 184, 984, 576 mod 17 (31)
17−2
6 mod 17 =3 (32)

27 / 31
Algoritmo de exponenciación binaria.

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.

Se comprueba que, en efecto, 3 es el inverso de 6 en GF(17) ya que

6 ∗ 3 ≡ 18 mod 17 = 1 (33)

28 / 31
Algoritmo de exponenciación binaria.

MA2002B

A. Martı́nez
Representemos a e = p − 2 = 15 en forma binaria, es decir
ebin = 1111. Aplicando el algoritmo de exponenciación binaria, se
Fundamentos de la
Criptografı́a. obtiene la siguiente tabla.

j ebinj x = x*x mod p x = x*a mod p


3 1 1*1 mod 17 = 1 1*6 mod 17 = 6
2 1 6*6 mod 17 = 2 2*6 mod 17 = 12
1 1 12*12 mod 17 = 8 8*6 mod 17 = 14
0 1 14*14 mod 17 = 9 9*6 mod 17 = 3
Cuadro: Ejemplo del cálculo del inverso mediante exponenciación modular.

Como puede observarse, se obtiene el mismo resultado que al


calcular el exponente con fuerza bruta.
29 / 31
Algoritmo de exponenciación binaria.

MA2002B Naturalmente el uso de la exponenciación modular binaria nos lleva


A. Martı́nez a poder calcular la potencia de una operación modular de manera
Fundamentos de la eficiente. Otro ejemplo es 39 mod 17, con a = 3, p = 17 y e = 9.
Criptografı́a.
Obtenemos que ebin = 1001 y n = 4. Entonces
j ebinj x = x*x mod p x = x*a mod p
3 1 1*1 mod 17 = 1 1*3 mod 17 = 3
2 0 3*3 mod 17 = 9 Nada se hace
1 0 9*9 mod 17 = 13 Nada se hace
0 1 13*13 mod 17 = 16 16*3 mod 17 = 14
Cuadro: Ejemplo del cálculo del inverso mediante exponenciación modular.

A diferencia del ejemplo que se mostró para calcular el inverso de 6,


acá se tienen ceros en la representación binaria del exponente, y por
tanto en ese caso algunas operaciones se omiten. 30 / 31
Bibliografı́a I

MA2002B

A. Martı́nez

Fundamentos de la
Criptografı́a.
Jorge Ramió Aguirre.
Seguridad Informática.
Universidad Politécnica de Madrid, Carretera de Valencia Km 7,
28031, Madrid - España, 4.1 edition, Marzo 2006.
Paul C Van Oorschot, Alfred J Menezes, and Scott A Vanstone.
Handbook of applied cryptography.
CRC press, 1996.

31 / 31

También podría gustarte