Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MA2002BAritmeticaModular PDF
MA2002BAritmeticaModular PDF
A. Martı́nez
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. Martı́nez
Además [1, 2]:
Fundamentos de la
Criptografı́a.
Existencia de identidad
Existencia de inversos
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:
8 / 31
Introducción a aritmetica modular
MA2002B
A. Martı́nez
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
MA2002B
A. Martı́nez
Fundamentos de la
Criptografı́a.
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.
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]
14 / 31
Generador de un campo.
MA2002B
A. Martı́nez
Fundamentos de la
Criptografı́a.
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
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.
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
MA2002B
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.
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
27 / 31
Algoritmo de exponenciación binaria.
MA2002B
A. Martı́nez
Fundamentos de la
Criptografı́a.
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.
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