Está en la página 1de 61

Tema 5

Teora de los Nmeros

Curso de Seguridad Informtica


Ultima actualizacin: 10/02/02
Archivo con 61 diapositivas
Material Docente de
Libre Distribucin

Dr. Jorge Rami Aguirre


Universidad Politcnica de Madrid

Este archivo forma parte de un curso completo sobre Seguridad Informtica y


Criptografa. Se autoriza su uso, reproduccin en computador e impresin en
papel slo para fines docentes, respetando siempre los derechos del autor.
Curso de Seguridad Informtica Jorge Rami Aguirre

Conceptos bsicos de congruencia


Es la base matemtica (matemticas discretas) en
la que se sustentan las operaciones de cifra.
Concepto de congruencia:
Sean dos nmeros enteros a y b: a es congruente
con b en el mdulo o cuerpo n en Zn si y slo si
existe algn entero k que divide de forma exacta la
diferencia (a - b)
a-b=kn
anb
a b mod n
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

Operaciones de congruencia en Zn
Es 18 congruente con 3 mdulo 5?
18 3 mod 5?
S, porque: 18-3 = 15 = k5 con k = 3
Cmo se usar esto en criptografa?
Esta operacin en Zn se expresar as:
18 mod 5 = 3
El valor 3 ser el resto o residuo.
El conjunto de nmeros que forman los restos dentro de
un cuerpo Zn sern muy importantes en criptografa.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

Propiedades de la congruencia en Zn
Propiedad Reflexiva:
a a mod n a Z

Propiedad Simtrica:
a b mod n b a mod n

a,b Z

Propiedad Transitiva:
Si a b mod n y b c mod n
a c mod n a,b,c Z

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

Propiedades de las operaciones en Zn (1)


Propiedad Asociativa:
a + (b + c) mod n (a + b) + c mod n

Propiedad Conmutativa:
a + b mod n b + a mod n
a b mod n b a mod n

Se usar el signo =
en vez de
(algo propio de los
Campos de Galois)

Propiedad Distributiva:
a (b+c) mod n ((a b) + (a c)) mod n
a (b+c) mod n = ((a b) + (a c)) mod n
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

Propiedades de las operaciones en Zn (2)


Existencia de Identidad:
a + 0 mod n = 0 + a mod n = a mod n = a
a 1 mod n = 1 a mod n = a mod n = a

Existencia de Inversos:
a + (-a) mod n = 0
a (a-1) mod n = 1 (si a 0)

Reducibilidad:

No siempre existe

Ambos importantes en criptografa

(a + b) mod n = [(a mod n) + (b mod n)] mod n


(a b) mod n = [(a mod n) (b mod n)] mod n
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

Conjunto completo de restos CCR (1)


Para cualquier entero positivo n, el conjunto
completo de restos ser CCR = {0, 1, 2, ... n-1},
es decir:
aZ

! ri CCR / a ri mod n

CCR (11) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}


CCR (6) = {0, 1, 2, 3, 4, 5} = {12, 7, 20, 9, 16, 35}
El segundo conjunto es equivalente: 12 0, 7 1...
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

Conjunto completo de restos CCR (2)


a Z ! ri CCR / a ri mod n
En este caso se cumple lo siguiente:
a mod n = r a r mod n
a b mod n ssi a mod n = b mod n
7 mod 3 = 4?

S porque:

7 4 mod 3

7-4 = 3 = k3 (k=1)

Y adems: 7 mod 3 = 1 y
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

4 mod 3 = 1

Tema 5: Teora

Homomorfismo de los enteros


Enteros

Enteros mod n

a 1 , a2

(a1 mod n), (a2 mod n)


es lo mismo que

Esta operacin ...

op (y posterior reduccin mod n)


(a1 op a2) mod n

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

esta otra

op
(a1 mod n) op (a2 mod n) mod n

Tema 5: Teora

Un ejemplo de homomorfismo
8893
93mod
mod13
13
88

Ejemplo: una calculadora capaz de


trabajar slo con tres dgitos ...

8.184 mod
mod13
13
8.184

Solucin por
homomorfismo:

Resultado:77
Resultado:
Se desbordara
la memoria de
nuestro sistema
Ahora ya no
se desborda
la memoria

88 93 mod 13
[(88) mod 13 (93) mod 13 mod 13
10 2 mod 13
20 mod 13
Resultado: 7

se llega a lo mismo, pero...

... y hemos usado siempre nmeros de 3


dgitos. En este caso la operacin mxima
sera 1212 = 144, es decir tres dgitos.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

10

Divisibilidad de los nmeros (1)


En criptografa muchas veces nos interesar encontrar el
mximo comn denominador mcd entre dos nmeros a y b.
Para la existencia de inversos en un cuerpo n, la base a y el
mdulo n debern ser primos entre s. mcd (a, n) = 1

Algoritmo de Euclides:
a) Si x divide a a y b a = x a y b = x b

b) Por lo tanto: a - k b = x a - k x b
a - k b = x (a - k b)
c) Entonces se concluye que x divide a (a - k b)
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

11

Divisibilidad de los nmeros (2)


Como hemos llegado a que x divide a (a k b) esto nos
permitir encontrar el mcd (a, b):
Si a > b

entonces

a = d1 b + r

(con di un entero y r un resto)


Luego

mcd (a, b) = mcd (b ,r)

(a > b > r 0)

porque:
Si b > r

entonces

b = d2 r + r

(con r un entero y r un resto)


Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

12

Divisibilidad con algoritmo de Euclides


mcd (148, 40)
148 = 3 40 + 28

148 = 22 37

mcd (385, 78)

40 = 23 5

385 = 4 78+ 73

Factor comn
22 = 4

40 = 1 28 + 12

78 = 1 73 + 5

28 = 2 12 + 4

73 = 14 5 + 3

12 = 3 4 + 0

5 = 1 3 + 2

mcd (148, 40) = 4


Ser importante
en criptografa

No hay
factor comn

385 = 5 7 11

2=21+0

78 = 2 3 13

mcd (385, 78) = 1

Curso de Seguridad Informtica.


Jorge Rami Aguirre

3 = 1 2 + 1

Madrid (Espaa) 2002

Tema 5: Teora

13

Inversos en un cuerpo (1)


En criptografa deber estar permitido invertir una
operacin para recuperar un cifrado descifrar.
Si bien la cifra es una funcin, en lenguaje coloquial
la operacin de cifrado sera una multiplicacin y la
operacin de descifrado una divisin.
La analoga anterior slo ser vlida en el cuerpo de
los enteros Zn con inverso.
Luego, si en una operacin de cifra la funcin es el
valor a dentro de un cuerpo n, deberemos encontrar el
inverso a-1 mod n para descifrar; en otras palabras ...
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

14

Inversos en un cuerpo (2)


Si a x mod n = 1
x ser el inverso multiplicativo (a-1) de a en el mdulo n

No siempre existen los inversos. En realidad lo raro


es que existan.

Por ejemplo, en el cuerpo Z = 2 no existirn inversos


porque la nica solucin a 2x mod 2 = 1 sera x =
un valor que est fuera del cuerpo. En este caso los
restos son {0, 1}: el resto cero no es solucin y el
resto 1 es una solucin trivial.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

15

Existencia del inverso por primalidad


inverso a-1 en mod n

ssi

mcd (a, n) = 1

Si mcd (a,n) = 1, el resultado de ai mod n (para i todos los


restos de n) sern valores distintos dentro del cuerpo n.
mcd (a, n) = 1

Sea: a = 4 y n = 9.
S
O
L
U
C
I

N
I
C
A

x ! 0<x<n / a x mod n = 1
Valores de i = {1, 2, 3, 4, 5, 6, 7, 8}

41 mod 9 = 4

42 mod 9 = 8

43 mod 9 = 3

44 mod 9 = 7

45 mod 9 = 2

46 mod 9 = 6

47 mod 9 = 1

48 mod 9 = 5

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Si mcd (a,n) 1

Tema 5: Teora

16

Inexistencia de inverso (no primalidad)


Y si no hay primalidad entre a y n?
Si mcd (a, n) 1
No existe ningn x que
Sea: a = 3 y n = 6

0 < x < n / a x mod n = 1

Valores de i = {1, 2, 3, 4, 5}

31 mod 6 = 3

32 mod 6 = 0

34 mod 6 = 0

35 mod 6 = 3

33 mod 6 = 3

No existe el inverso para ningn resto del cuerpo.


Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

17

Inversos aditivos y multiplicativos


(A+B) mod 4
B + 0 1 2 3
A 0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2

(AB) mod 4
B 0 1 2 3
A 0 0 0 0 0
0+0 = 0
1 0 1 2 3
11 = 1
2 0 2 0 2
Es trivial
3 0 3 2 1

En la operacin suma siempre


existir el inverso (0) para
cualquier resto del cuerpo.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

En la operacin producto, de
existir un inverso (1) ste es
nico y para ello debe haber
primalidad entre A y B.

Tema 5: Teora

18

Conjunto reducido de restos CRR (1)


El conjunto reducido de restos, conocido como
CRR de n, es el subconjunto {0, 1, ... ni, ... n-1} de
restos primos con el grupo n.
Si n es primo, todos los restos sern primos con l.
Como el cero no es una solucin, entonces:
CRR = {1, ..., ni, ... n-1} / mcd (ni, n) = 1

Ejemplo: CRR mod 8 = {1, 3, 5, 7}


CRR mod 5 = {1, 2, 3, 4}
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

19

Conjunto reducido de restos CRR (2)


Qu utilidad tiene esto en criptografa?
El conocimiento del CRR permitir aplicar un algoritmo
para el clculo del inverso multiplicativo de un nmero x
dentro de un cuerpo o grupo n a travs de la funcin (n),
denominada Funcin de Euler o Indicador de Euler.
Ser muy importante tanto en los sistemas
simtricos (salvo alguna excepcin) como en
los asimtricos, siendo en este ltimo caso
esencial para el clculo del par de claves.
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

20

Funcin de Euler (n)


Funcin (n) de Euler
Entregar el nmero de elementos del CRR.
Podremos representar cualquier nmero n de estas
cuatro formas:

a) n es un nmero primo.
b) n se representa como n = pk con p primo y k entero.
c) n es el producto n = pq con p y q primos.
d) n es un nmero cualquiera (genrico).
t

n = p1e1 p2e2 ... ptet = piei

Veamos cada
uno de ellos

i=1

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

21

Funcin (n) de Euler (n = p)


Caso 1: n es un nmero primo
Si n es primo, (n) ser igual a CCR menos el 0.
(n) = n - 1

Se usar en sistemas ElGamal y DSS

Si n es primo, entonces CRR = CCR - 1 ya que todos


los restos de n, excepto el cero, sern primos entre s.
Ejemplo

CRR(7) = {1,2,3,4,5,6} seis elementos


(7) = n - 1 = 7-1 = 6
(11) = 11-1 = 10; (23) = 23-1 = 22

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

22

Funcin (n) de Euler (n = pk)


Caso 2: n = pk (con p primo y k un entero)
(n) = (pk) = pk - pk-1

(pk) = pk-1(p-1)

De los pk elementos del CCR, restaremos todos los


mltiplos 1p, 2p, 3p, ...(pk-1-1)p y el cero.
Ejemplo

CRR(16) = {1,3,5,7,9,11,13,15} ocho elementos


(16) = (24) = 24-1(2-1) = 231 = 8
(125) = (53) = 53-1(5-1) = 524 = 254 = 100

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

23

Funcin (n) de Euler (n = pq) (1)


Caso 3: n = pq (con p y q primos)
(n) = (pq) = (p)(q) = (p-1)(q-1)
De los pq elementos del CCR, restaremos todos los
mltiplos de p = 1p, 2p, ... (q - 1)p, todos los
mltiplos de q = 1q, 2q, ... (p - 1)q y el cero.
(pq) = pq - (q-1) + (p-1) +1 = pq - q - p + 1
(p-1)(q-1)
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

24

Funcin (n) de Euler (n = pq) (2)


Ejemplo

CRR(15) = {1,2,4,7,8,11,13,14} ocho elementos


(15) = (35) = (3-1)(5-1) = 24 = 8
(143) = (1113) = (11-1)(13-1) = 1012 = 120
Ser una de las funciones ms utilizadas ya
que es la base del sistema RSA, durante
muchos aos un estndar de hecho.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

25

Funcin (n) de Euler (n = genrico)


Caso 4: n = p1e1p2e2 ... ptet

(pi son primos)

(n) = piei-1 (pi - 1)


Ejemplo

i=1
(demostracin no inmediata)

CRR(20) = {1, 3, 7, 9, 11, 13, 17, 19} ocho elementos


(20) = (22 5) = 22-1(2-1)51-1(5-1) = 21114 = 8
(360) = (23 325) = 23-1(2-1)32-1(3-1)51-1(5-1) = 96
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

26

Teorema de Euler
Dice que si mcd (a,n) = 1 a(n) mod n = 1
Ahora igualamos ax mod n = 1 y a(n) mod n = 1

a(n) a-1 mod n = x mod n


x = a(n)-1 mod n

El valor x ser el inverso de a en el cuerpo n


Nota: Observe que se ha dividido por a en el clculo anterior.
Esto se puede hacer porque mcd (a, n) = 1 y por lo tanto hay
un nico valor inverso en el cuerpo n que lo permite.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

27

Clculo de inversos con Teorema Euler


Ejemplo
Cul es el inverso de 4 en mdulo 9?

inv (4, 9)

Pregunta: Existe a x mod n = 4 x mod 9 = 1?


Como mcd (4, 9) = 1 S ... aunque 4 y 9 no son primos.
(9) = 6 x = 46-1 mod 9 = 7
Resulta obvio que:

inv (4, 9) = 7 e inv (7, 9) = 4

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

74 = 28 mod 9 = 1

Tema 5: Teora

28

Teorema de Euler para n = pq


Si el factor a es primo relativo con n y n es el producto
de 2 primos, seguir cumplindose el Teorema de Euler
tambin en dichos primos.
Por ejemplo:
En el captulo
Si n = pq (n) = (p-1)(q-1)
dedicado a la
a / mcd {a, (p,q)} = 1
cifra con clave
pblica RSA,
se cumple que:
relacionaremos
a(n) mod p = 1
este tema con el
Teorema del
a(n) mod q = 1
Resto Chino.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

29

Ejemplo Teorema de Euler para n = pq


Sea

n = pq = 711 = 77
(n) = (p - 1)(q - 1) = (7 - 1)(11 - 1) = 610 = 60
Si k = 1, 2, 3, ...
Para a = k7
a(n) mod n = k760 mod 77 = 56
Para a = k11
a(n) mod n = k1160 mod 77 = 22
Para a k7,11 a(n) mod n = a60 mod 77 = 1
Y se cumple que:
Para a k7,11 a(n) mod p = a60 mod 7 = 1
a(n) mod q = a60 mod 11 = 1
En caso contrario:
a(n) mod p = 0
a(n) mod q = 0
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

30

Teorema de Fermat
Si el cuerpo de trabajo n es un primo p
mcd (a, p) = 1 a(p) mod p = 1
Entonces a x mod p = 1 y a(n) mod p = 1
Adems, en este caso (p) = p-1 por lo que igualando las
dos ecuaciones de arriba tenemos:

a(p) a-1 mod p = x mod p


x = ap-2 mod p

Luego x ser e inverso de a en el primo p.


Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

31

Qu hacemos si no se conoce (n)?


Calcular ai mod n cuando los valores de i y a son
grandes, se hace tedioso pues hay que utilizar la
propiedad de la reducibilidad repetidas veces.
Si no conocemos (n) o no queremos usar el
teorema de Euler/Fermat, siempre podremos
encontrar el inverso de a en el cuerpo n usando el
Algoritmo Extendido de Euclides
Es el mtodo ms rpido y prctico
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

32

Algoritmo Extendido de Euclides (1)


Si mcd (a, n) = 1 a x mod n = 1 x = inv (a, n)
Luego podemos escribir:
n = C1a + r1
a > r1
a = C2r1+ r2
r 1> r 2
r1 = C3r2+ r3
r 2> r 3
... ...
rn-2 = Cnrn-1 + 1 rn-1> 1
rn-1 = Cn+11 + 0
Concluye el algoritmo
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Sivolvemos
volvemoshacia
hacia
Si
atrsdesde
desdeeste
este
atrs
valor,obtenemos
obtenemos
valor,
inversode
deaaen
en
elelinverso
cuerpon.n.
elelcuerpo

Tema 5: Teora

33

Algoritmo Extendido de Euclides (2)


Ordenando por restos desde el valor 1 se llega a una expresin
del tipo (k1 n + k2 a) mod n = 1, en donde el inverso lo dar
el coeficiente k2 puesto que k1 n mod n = 0

C1

C2

C3

C4

...

Cn-1 Cn

r1

r2

r3

...

rn-2

rn-1

Cn+1
1

(k1 n + k2 a) mod n = 1
Tabla de restos

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

34

Clculo de inversos con el AEE


Encontrar el inv (9, 25) por el mtodo de restos de Euclides.
a) 25 = 29 + 7

7 = 25 - 29

7 = 25 - 29

b) 9 = 17 + 2

2 = 9 - 17

2 = 9 - 1(25 - 29) = 39 -125

c) 7 = 32 + 1

1 = 7 - 32

1 = (25 - 29) - 3(39 -125)

d) 2 = 21 + 0

restos

1 = 425 - 119 mod 25

Tabla de Restos

25

Elinv
inv(9,25)
(9,25)==-11
-11
El

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

-11++25
25==14
14
-11

inv(9,
(9,25)
25)==14
14
inv

Tema 5: Teora

35

Algoritmo para el clculo de inversos


Para encontrar x = inv (A, B)
Hacer (g0, g1, u0, u1, v0, v1, i) = (B, A, 1, 0, 0, 1, 1)
Mientras gi 0 hacer
i
yi
Hacer yi+1 = parte entera (gi-1/gi)
0
Hacer gi+1 = gi-1 - yi+1 gi
Hacer ui+1 = ui-1 - yi+1 ui
1
Hacer vi+1 = vi-1 - yi+1 vi
2
2
Hacer i = i+1
3
1
x = inv (9, 25) = -11+25 = 14
Si (vi-1 < 0) Hacer
4
3
Hacer vi-1 = vi-1 + B
5
2
Hacer x = vi-1
Ejemplo

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

x = inv (A, B)
x = inv (9, 25)
gi

ui

vi

25

-2

-1

-11

-9

25

Tema 5: Teora

36

Inversos en el cuerpo n = 27
Para el alfabeto castellano con maysculas (n = 27) tenemos:
x
1
2
4
5
7
8

inv (x, 27)


1
14
7
11
4
17

x
10
11
13
14
16
17

inv (x, 27)


19
5
25
2
22
8

x
19
20
22
23
25
26

inv (x, 27)


10
23
16
20
13
26

27 = 33 luego no existe inverso para a = 3, 6, 9, 12, 15, 18, 21, 24.


inv (x, n) = a inv (a, n) = x
inv (1, n) = 1

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Inversos en sistemas de
cifra clsicos orientados a
alfabetos de 27 caracteres.

Tema 5: Teora

37

Habr inversos si mcd (a, n) 1?


Pueden existir inversos?
No, pero...
Si a x mod n = b con b 1 y mcd (a, n) = m, siendo
m divisor de b, habr m soluciones vlidas.
Esto no nos sirve en criptografa ...
6x mod 10 = 4
mcd (6, 10) = 2
No existe inv (6, 10) pero ... habr 2 soluciones vlidas
x1 = 4
64 mod 10 = 24 mod 10 = 4
x2 = 9
69 mod 10 = 54 mod 10 = 4

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

38

Teorema del Resto Chino TRC


Si n = d1d2d3 ... dt
El sistema de ecuaciones:
x mod di = xi

con di = piei (p primo)


(i = 1, 2, 3, ... t)

tiene una solucin comn en [0, n-1


t

x = (n/di)yixi mod n

desarrollo

i=1

con yi = inv [(n/di), di


Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

39

Clculos en el cuerpo n con el TRC (1)


Encontrar x de forma que :
12 x mod 3.960 = 36
Tenemos la ecuacin genrica: a xi mod di = b
n = 3.960 n = 2332511 = d1d2d3d4 = 89511
a = 12
b = 36

Como n d4, existirn 4 soluciones de xi

ax1 mod d1 = b mod d1

12x1 mod 8 = 36 mod 8 = 4

ax2 mod d2 = b mod d2

12x2 mod 9 = 36 mod 9 = 0

ax3 mod d3 = b mod d3

12x3 mod 5 = 36 mod 5 = 1

ax4 mod d4 = b mod d4

12x4 mod 11 = 36 mod 11 = 3

4 ecuaciones en x

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Resolviendo para xi

Tema 5: Teora

40

Clculos en el cuerpo n con el TRC (2)


x1 = 1

x2 = 0

x3 = 3

x4 = 3

4 ecuaciones en x

12x1 mod 8 = 4

4x1 mod 8 = 4

x1 = 1

12x2 mod 9 = 0

3x2 mod 9 = 0

x2 = 0

12x3 mod 5 = 1

2x3 mod 5 = 1

x3 = 3

12x4 mod 11 = 3 1x4 mod 11 = 3


Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

x4 = 3

Tema 5: Teora

41

Clculos en el cuerpo n con el TRC (3)


Resolvemos ahora la
ecuacin auxiliar del
Teorema Resto Chino

y1 = 7

y2 = 8

y3 = 3

y4 = 7

yi = inv [(n/di), di
y1 = inv [(n/d1), d1 y1 = inv[(3960/8),8 = inv (495,8)
y2 = inv [(n/d2), d2 y2 = inv[(3960/9),9 = inv (440,9)
y3 = inv [(n/d3), d3 y3 = inv[(3960/5),5 = inv (792,5)
y4 = inv[(n/d4), d4 y4 = inv[(3960/11),11 = inv(360,11)
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

42

Clculos en el cuerpo n con el TRC (4)


x1 = 1

x2 = 0

x3 = 3

x4 = 3

y1 = 7

y2 = 8

y3 = 3

y4 = 7

Aplicando ecuacin del Resto


Chino para el caso 12 x mod
3.960 = 36 con d1 = 8, d2 = 9, d3 = 5,
d4 = 11:
tt

(n/di)y
modnn
xx==(n/d
i)yix
ixi imod
i=1
i=1

x = [(n/d1)y1x1 + (n/d2)y2x2 + (n/d3)y3x3 + (n/d4)y4x4


x = [49571 + 44080 + 79233 + 36073 mod 3.960
x = [3.465 + 0 + 7.128 + 7.560 mod 3.960 = 2.313
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

43

Todo marcha bien en este ejemplo?


Es la solucin de 12x mod 3.960 = 36 nica?

NO
Qu ha sucedido?
Puesto que mcd (a, n) = mcd (12, 3.960) = 12, ya hemos visto
en una diapositiva anterior que habr 12 soluciones vlidas.
x1 = 3; x2 = 333; x3 = 663; x4 = 993 .....

x8 = 2.313 ...

xi = 3 + (i-1)330 mod 3.960 ... hasta llegar a x 12 = 3.633

Observe que x = 2.313, uno de los valores solucin,


fue el resultado encontrado en el ejercicio anterior.
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

44

Otros casos con resultados positivos


Qu sucede ahora con:

12x mod 3.960 = 35

12x mod 3.960 = 35?

mcd (a, n) = 12 no es un
divisor de b = 35, luego
aqu no existe solucin.

Tenamos que
3.960 = 2332511

Encuentre x como ejercicio

49x mod 3.960 = 1


Qu sucede ahora con:
49x mod 3.960 = 1?

S existir x, en este caso es el


inverso de 49, y ser nico ya que
49 = 77 no tiene factores en n.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

45

Slo sirve para este el TRC?


Calcular el inverso de 49 en el cuerpo 3.960 por medio
del Teorema del Resto Chino es algo tedioso ..........
ya lo habr comprobado .
No obstante, ya habr comprobado que en este caso el
inverso de 49 en el cuerpo 3.960 es x = 889.
Para qu sirve entonces este algoritmo?
Entre otras cosas, cuando veamos el sistema de cifra
RSA y el tema dedicado a Protocolos Criptogrficos,
encontraremos una interesante aplicacin del Teorema.
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

46

Raz primitiva o generador g de grupo p


Un generador o raz primitiva de un nmero primo
p n es aqul que, elevado a todos los restos del
cuerpo y reducido mdulo n, genera todo el grupo.
G es un generador si: 1 a p-1
ga mod p = b (con 1 b p-1, todos los b )

Sea p = 3 CCR = {1,2}


(el cero no es solucin)
Resto 1: no generar nada porque 1k mod p = 1
Resto 2: 21 mod 3 = 2; 22 mod 3 = 1
Luego el 2 es un generador del cuerpo n = 3
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

47

Cuntas races hay en un grupo?


Existen muchos nmeros dentro del CRR que son
generadores del cuerpo ... pero
Su bsqueda no es fcil ... alguna solucin?
Conociendo la factorizacin de p-1 (q1, q2, ..., qn)
con qi los factores primos de p-1, diremos que un
nmero g ser generador en p si qi: Ejemplo
g(p-1)/qi mod p 1

En cambio...

si algn resultado es igual a 1, g no ser generador


Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

48

Bsqueda de races primitivas (1)


BSQUEDA DE RACES EN EL CUERPO Z13*

Como p = 13 p-1 = 12 = 223


Luego:
q1 = 2
q2 = 3
Si se cumple g(p-1)/qi mod p 1 qi
entonces g ser un generador de p

2(13-1)/2 mod 13 = 26 mod 13 = 12


2(13-1)/3 mod 13 = 24 mod 13 = 3
3(13-1)/2 mod 13 = 36 mod 13 = 1
3(13-1)/3 mod 13 = 34 mod 13 = 3
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Generadores en Z13

g: 2,

Resto 2
El resto 2 es generador
Resto 3
El resto 3 no es generador
Tema 5: Teora

49

Bsqueda de races primitivas (2)


Generadores en Z13

g: 2, 6, 7,

4(13-1)/2 mod 13 = 46 mod 13 = 1


4(13-1)/3 mod 13 = 44 mod 13 = 9

Resto 4
El resto 4 no es generador

5(13-1)/2 mod 13 = 56 mod 13 = 12


5(13-1)/3 mod 13 = 54 mod 13 = 1

Resto 5
El resto 5 no es generador

6(13-1)/2 mod 13 = 66 mod 13 = 12


6(13-1)/3 mod 13 = 64 mod 13 = 9

Resto 6
El resto 6 es generador

7(13-1)/2 mod 13 = 76 mod 13 = 12


7(13-1)/3 mod 13 = 74 mod 13 = 9

Resto 7
El resto 7 es generador

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

50

Bsqueda de races primitivas (3)


Generadores en Z13

g: 2, 6, 7, 11

8(13-1)/2 mod 13 = 86 mod 13 = 12


8(13-1)/3 mod 13 = 84 mod 13 = 1

Resto 8
El resto 8 no es generador

9(13-1)/2 mod 13 = 96 mod 13 = 1


9(13-1)/3 mod 13 = 94 mod 13 = 9

Resto 9
El resto 9 no es generador

10(13-1)/2 mod 13 = 106 mod 13 = 1


Resto 10
10(13-1)/3 mod 13 = 104 mod 13 = 3 El resto 10 no es generador
11(13-1)/2 mod 13 = 116 mod 13 = 12
11(13-1)/3 mod 13 = 114 mod 13 = 3
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Resto 11
El resto 11 es generador

Tema 5: Teora

51

Bsqueda de races primitivas (4)


Generadores en Z13

g: 2, 6, 7, 11

12(13-1)/2 mod 13 = 126 mod 13 = 1


Resto 12
12(13-1)/3 mod 13 = 124 mod 13 = 1 El resto 12 no es generador
Latasa
tasade
degeneradores
generadoresen
enelelgrupo
grupopp
La
seraproximadamente
aproximadamente==(p-1)/(p-1).
(p-1)/(p-1).
ser
Porlo
lotanto
tantopor
porlo
logeneral
generalelel30%
30%de
delos
los
Por
elementosdel
delConjunto
ConjuntoReducido
Reducidode
de
elementos
Restosde
deppser
serun
ungenerador
generadoren
enp.p.
Restos
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

= (12)/12
= 4/12 = 1/3

Tema 5: Teora

52

Generadores en cuerpos de primos seguros


Un nmero primo p se dice que es un primo seguro o primo
fuerte si: p = 2p + 1 (con p tambin primo).
Por ejemplo:
Si p = 11, entonces p = 211 + 1 = 23 es un primo seguro.
En este caso la tasa de nmeros generadores del cuerpo ser
mayor que en el caso anterior (con p = 13 era del 30%).
Probabilidad: pseguro = (p-1)/p-1
Casi la mitad de los nmeros del
grupo sern generadores en p.

Curso de Seguridad Informtica.


Jorge Rami Aguirre

Madrid (Espaa) 2002

Comprobacin

Tema 5: Teora

53

Comprobacin de generadores en p = 2p+1


p = 11; 2p = 22; p = 2p + 1 = 23 primo seguro
Como 2p = p - 1 existirn:
(p) = p- 1 elementos de orden (p) en el CRR
(11) = 10 = {1,2,3,4,5,6,7,8,9,10}
(2p) = [p- 1 elementos de orden (p-1) en el CRR
(22) = 10 = {1,3,5,7,9,13,15,17,19,21}
= (p- 1)/(p-1) = (p- 1)/2p

Sigue
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

54

Comprobacin de generadores en p = 2p+1


Usando la ecuacin g(p-1)/qi mod p
En este caso con q1 = 2 y q2 = 11
g(23-1)/2 mod 23 = g11 mod 23
g(23-1)/11 mod 23 = g2 mod 23
Encontramos los siguientes 10 generadores en p = 23
{5, 7, 10, 11, 14, 15, 17, 19, 20, 21}
Prcticamente la mitad de los valores de CRR que en
este caso es igual a 23 1 = 22. Comprubelo Ud.
mismo/a con el software de la asignatura.
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

55

Utilidad de la raz primitiva en criptografa


Para qu sirve conocer la raz primitiva de p?
La utilidad de este concepto en
criptografa lo veremos cuando
se estudien los sistemas de clave
pblica y, en particular, el
protocolo de intercambio de
claves de Diffie y Hellman.
Tambin se recurrir a esta
propiedad de los primos cuando
estudiemos la firma digital
segn estndar DSS (ElGamal).
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

56

Clculos en campos de Galois (GF)


Cuando trabajamos en un cuerpo primo p, sabemos que se
asegura la existencia de un nico inverso multiplicativo.
En este caso se dice que estamos trabajando en Campos
de Galois GF(p).
Algunos usos en criptografa:
Sistemas de clave pblica cuando la operacin de
cifra es C = Me mod p (cifrador ElGamal)
Aplicaciones en GF(qn), polinomios mdulo q y de
grado n: a(x) = an-1xn-1 + an-2xn-2 + ... + a1x + a0
(Cifrador de flujo A5 y cifrador RIJNDAEL)
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

57

Campos de Galois del tipo GF(qn)


a(x) = an-1xn-1 + an-2xn-2 + ... + a1x + a0
Es un polinomio de grado n-1 o menor.
Los elementos ai son parte del CCR del mdulo q.
Cada elemento a(x) es un resto mdulo p(x), siendo p(x)
un polinomio irreducible de grado n (que no puede ser
factorizado en polinomios de grado menor que n).
GF(2n) es interesante porque CCR(2) = {0, 1} bits.
GF(23) 8 elementos o restos polinmicos que son: 0,
1, x, x+1, x2, x2+1, x2+x, x2+x+1, los 8 restos de un
polinomio de grado n-1 (n = 3).
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

58

Suma en campos de Galois GF(2n)


Si el mdulo de trabajo es 2 (con restos = bits 0 y 1), las
operaciones suma y resta sern un OR Exclusivo:
0 1 mod 2 = 1
1 0 mod 2 = 1
CG(22)
0 0 mod 2 = 0
1 1 mod 2 = 0

0
1
x
x+1

0
1
x
x+1

x+1

1
x x+1
0 x+1 x
x+1 0
1
x
1
0

Como los resultados debern


pertenecer al cuerpo, aplicaremos
Reduccin por Coeficientes:

x + (x +1) = 2x + 1 mod 2 = 1

Restos: 0, 1, x, x+1

1 + 1 = 2 mod 2 = 0

Curso de Seguridad Informtica.

Tema 5: Teora

Jorge Rami Aguirre

Madrid (Espaa) 2002

59

Producto en campos de Galois GF(2n)


La operacin multiplicacin puede entregar elementos
que no pertenezcan al cuerpo, potencias iguales o
mayores que n Reduccin por Exponente.
Sea el polinomio irreducible de
grado n = 2, p(x) = x2 + x + 1
Luego: x2 = x + 1

CG(22)

0
1
x
x+1

0
0
0
0

x+1

0
0
0
1
x x+1
x x+1 1
x+1 1
x

(x + 1)(x + 1) = x2 + 2x + 1

Restos: 0, 1, x, x+1
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

= (x + 1) + 2x +1
= 3x + 2 mod 2 = x

Tema 5: Teora

60

Operaciones con campos de Galois en AES


La suma y multiplicacin de polinomios dentro de un
cuerpo binario descritas en las dispositivas anteriores,
conforman las operaciones bsicas del algoritmo de
cifra Advanced Encryption Algorithm AES, que con
el nombre RIJNDAEL es el estndar mundial desde
finales de 2001, desplazando al ya viejo DES.
En este caso, se trabaja con 8 bits por lo que las
operaciones se realizan en GF(2 8). En el captulo 10
sobre sistemas de cifra con clave secreta encontrar
ejemplos de suma y multiplicacin polinmica dentro
de este cuerpo binario.
Fin del Tema 5
Curso de Seguridad Informtica.
Jorge Rami Aguirre

Madrid (Espaa) 2002

Tema 5: Teora

61