Sei sulla pagina 1di 55

Operaciones en Zn

Mitchell Paulo Blancas Nez


1
Enteros modulo n: Zn
Este conjunto especial de nmeros enteros,
se define como el conjunto de enteros dado
por {0, 1, . . . , n - 1}. Como en todo conjunto,
en los Zn tambin se pueden efectuar
operaciones tales como adicin, sustraccin y
multiplicacin modulo n. Su importancia esta
en que es muy usado en los criptosistemas
criptogrficos.
2
Operaciones en Zn
3
Adicin
Sean a, b E Zn , la adicin modular se define
por:

a + b
a + b < n
(a + b)mod n =
a + b - n a + b n

4
Adicin
Ejemplo
Sea el conjunto Z
15
= {0, 1, . . . , 14}. La adicin
de los nmeros 6 E Z
15
y 9 E
Z
15
esta dado por 0
E Z
15
, pues por definicin de los Zn se tiene
que 6 + 9 0(mod 15).
Ejemplo
Sea el conjunto Z
25
= {0, 1, . . . , 24}. La adicin de
los nmeros 13 E Z
25
y 16 E Z
25
esta dado por 4
E Z
25
, pues por definicin se tiene que 13 + 16
4(mod 25).
5
Multiplicacin
Siendo a, b E Zn , la multiplicacin modular se
efecta simplemente multiplicndolos como
si fueran nmeros enteros comunes, para
luego coger el resto de la divisin de tal
producto por n.
Ejemplo
Sea el conjunto Z
25
= {0, 1, . . . , 24}. La
multiplicacin de 13 por 16 es 8, pues 13 16
8(mod 25).
6
Inverso Multiplicativo
Dados los nmeros enteros a y n > O, el
inverso multiplicativo de a modulo n esta
dado por el numero entero y E Zn , tal que a
y 1(mod n). Es importante tener en
cuenta que si y existe, entonces es nico, y
a es llamado invertible. Por notacin, el
inverso de a se denota por a1 .








7
Inverso Multiplicativo
Ejemplo
En Z
9
= {0, 1, . . . , 8} los elementos invertibles son 1, 2,
4, 5, 7, 8, pues por ejemplo el inverso de 4 es 7 ya que
4 7 1(mod 9). Anlogamente, el inverso de 7 es 4,
pues 7 4 1(mod 9).
Propiedad 7
Sea a E Z
n
, entonces a es invertible si y solamente si
el mcd(a, n)= 1.
Ejemplo
Sea Z
9
= {0, 1, . . . , 8}, entonces 2 es invertible, pues
el mcd(2, 9) = 1.








8
Inverso Multiplicativo
Algoritmo para el inverso multiplicativo








Entrada: a E Zn
Salida : Existencia del inverso

Hallar x e y tal que ax + ny = d
SI (d > 1)
Inverso no existe;
CASO CONTRARIO;
retornar (x)
9
Divisin
Sean a, b E Z
n
. La divisin de a por b modulo n
esta dado por el producto de a con b
1
modulo
n.
Podemos notar que la divisin modular es
posible, solamente si b es invertible modulo n.
Ejemplo
Sea Z
9
= {0, 1, . . . , 8} el conjunto de los
nmeros enteros modulo 9, entonces
considerando 3 E Z
9
y 4 E Z
9
tenemos que 3
4(mod 9) = 3, pues como 4
1
= 7 entonces
tenemos que 3 7(mod 9) = 3.
10
Exponenciacin
La exponenciacin modular es otra operacin
bsica muy til para la criptografa. El siguiente
algoritmo emplea una representacin binaria de
un numero entero k de modo que k = k
0
2
0
+ k
1
2
1

+ . . . + k
t
2
t
, donde cada k
i
es de la forma binaria,
esto es k
i
= {0, 1}.
Ejemplo
Sea Z
9
= {0, 1, . . . , 8} un conjunto de nmeros
enteros modulo 9. Entonces 5 E Z
9
se puede
representar por 5 = 1 2
0
+ 0 2
1
+ 1 2
2
.
11
Exponenciacin
Algoritmo para la exponenciacin

Entrada: a E Zn , k E Z tal que O k < n, con una representacin binaria.
Salida : a
k
mod n

int exp=1;
int xp= a%n;

Mientras (k>0) Hacer
si(k%2!=0)
exp= (exp*xp)%n;
fin si
xp=(xp*xp)%n;
k= k/2;
Fin Mientras

Retornar (exp)
12
Exponenciacin
Sea Z
1234
= {0, 1, . . . , 1233}, donde a = 5 E
Z
1234
y k = 596. Entonces
El algoritmo reporta 5 elevado a la
596mod(1234) = 1O13
13
Funcin de Euler
Esta funcin tiene la propiedad de que su
valor en un nmero entero n, esta dado por
el producto de los valores de la funcin de
Euler en las potencias primas que ocurren
en la factorizacin de n. Una funcin con esta
propiedad es llamado multiplicativo.

14
Funcin de Euler
A continuacin se presentan las definiciones y
teoremas mas importantes.
Definicin (Funcin aritmtica): Sea n E Z
+
.
Una funcin aritmtica es aquella funcin que
esta definida para todo numero entero positivo.


15
Funcin de Euler
Definicin (Funcin multiplicativa): Sean m, n
nmeros enteros positivos relativamente primos. Una
funcin aritmtica f es llamada multiplicativa, si se
cumple f (m*n) = f (m)f (n).

f es completamente multiplicativa, si f (m*n) = f
(m)f (n), m, n E Z
+
.

Ejemplo: La funcin constante f (n) = 1, n es
completamente multiplicativa, pues
f (mn) = 1,f (m) = 1 = f (n).
Ejemplo: La funcin identidad.

16
Funcin de Euler
Teorema 1: Si f es una funcin multiplicativa y si
adems n = p
a
1

p
a
2

. . . p
a
s
es la factorizacin prima del entero positivo n,
entonces

Teorema 2: Sea p un nmero primo, entonces (p) = p-
1. Adems, si p E Z
+
con (p) = p - 1, entonces p es primo.
Teorema 3: Sea p un nmero primo y a E Z
+
,
entonces (p
a
) = p
a
- p
a

1
.






17
f (n) = f (p
a
1
)f (p
a
2
) . . . f (p
a
s
)
Funcin de Euler
Ejemplo
Sea p = 5 y a = 3, entonces (5
3
) = 5
3
- 5
3

1
= 100.
Teorema 4: Sean m y n nmeros enteros positivos
relativamente primos, entonces (m*n) = (m)(n).
Ejemplo
Sea m = 5 y n = 3, entonces (5 3) = (5) (3)
= (5 - 1) (3 - 1)

= 8

18
Funcin de Euler
19
Teorema 5: Sean a
i
E Z
+
, p
j
numeros
primos, donde i, j = 1 . . . k, n =

p
2
. . . P
k
entonces
(n) = n(1 -
1
)(1 -
1
) . . . (1 -
1
)
p
1

p
2

p
k

Ejemplo
(720) = (2
4
3
2
5
1
) = 720(1-
1
)(1 -
1
)(1 -
1
) = 192
2 3 5
Funcin de Euler
Teorema 6: Sea 2 < n E Z
+
, entonces (n) es
par.
Un criptosistema asimtrico es seguro si esta
basado en la intratabilidad

de ciertos problemas
computacionales, tales como los problemas de
la factorizacin entera, la raz cuadrada modulo
n, etc.
20
Problema de factorizacin entera
21
Por el teorema fundamental de la aritm'etica se sabe que
cada nu'mero entero positivo puede ser escrito como el
producto de nu'meros primos. En la presente secci'on nos
centramos en este problema comentando los tipos de
factorizaci'on los cuales son importantes para la
criptograf'a, pues es la base para la seguridad de los
criptosistemas RSA y de Rabin. El problema se establece
del modo siguiente:
Dado un nu'mero entero n E Z
+
, el problema es
hallar la factorizaci'on de n en factores primos, es
decir
n = p
e
1
p
e
2
. . . p
e
k
, con p
i
= p
j
, i = j, e
i
1
1
2
k
Problema de factorizacin entera
El problema de decidir cuando un nmero
entero es compuesto o es primo, en general es
mas fcil que el problema de factorizar, por ello
antes de factorizar un nmero es mejor primero
testar para comprobar si tal nmero es o no es
compuesto.
22
Problema de factorizacin entera
La factorizacin no trivial de n es de la forma
n = ab, donde 1 < a < n y 1 < b < n, con a y
b no necesariamente nmeros primos. Si el
valor de n es grande, entonces es necesario
contar con algoritmos que faciliten el trabajo
en dos etapas, es decir que primero se
obtengan los factores a y b y luego testar la
primalidad de tales factores.

23
Problema de factorizacin entera
De acuerdo a su comportamiento computacional, tenemos
diversos algoritmos los cuales son clasificados en dos tipos a
seguir:
Factorizacin de propsito especial
En este tipo de factorizacin el tiempo de ejecucin de los
algoritmos dependen de las propiedades de los factores de n.
Los algoritmos conocidos son:
1. Algoritmo de divisin trial.
2. Algoritmo de Rho Pollard
3. Algoritmo de (p - 1) Pollard.
4. Algoritmo de curva elptica.


24
Problema de factorizacin entera
Factorizacin de propsito especial
En este tipo de factorizacin el tiempo de
ejecucin de los algoritmos dependen del
tamao de n.

1. Algoritmo de quadratic sieve.
2. Algoritmo de number field sieve.

25
El algoritmo de Rho Pollard
El algoritmo de Rho Pollard es utilizado para hallar factores
pequeos de cierto nmero compuesto. En efecto:
Entrada: Un nmero entero n que no sea una potencia
prima.
Salida : Factor no trivial d de n
a 2;
b 2;
PARA (i = 1, 2, . . .);
a a
2
+ 1 mod n;
b b
2
+ 1 mod n;
b b
2
+ 1 mod n;
d mcd(abs(a b), n);
SI (1 < d < n)
Retornar d;
SI (d >= n)
Retornar Sin exito;
FIN PARA;
26
El algoritmo de Rho Pollard
El algoritmo de Rho Pollard es utilizado para hallar factores
pequeos de cierto nmero compuesto. En efecto:
Entrada: Un nmero entero n que no sea una potencia
prima.
Salida : Factor no trivial d de n
a 2;
b 2;
PARA (i = 1, 2, . . .);
a a
2
+ 1 mod n;
b b
2
+ 1 mod n;
b b
2
+ 1 mod n;
d mcd(abs(a b), n);
SI (1 < d < n)
Retornar d;
SI (d >= n)
Retornar Sin exito;
FIN PARA;
27
una potencia prima es una
potencia entera y positiva de
un nmero primo. Por
ejemplo 5=5, 9=3 y 16=2
4

son potencias primas,
mientras que 6=23, 15=35
y 36=6=23 no lo son....
El algoritmo de Rho Pollard
Los algoritmos Rho Pollard y (p - 1) Pollard, creados en 1974 por
J.M. Pollard, tienen como caracterstica su lentitud para factorizar
problemas difciles, a menos que los nmeros a factorizar tengan
propiedades especiales.

Ejemplo
Sea n = 455459 un nmero entero, al aplicar el algoritmo se
obtiene el factor 743. El otro factor se obtiene al dividir n entre
el factor reportado por el algoritmo, es decir 613.

Ejemplo
Sea n = 8051 un nmero entero, el algoritmo reporta el factor no
trivial 97. El otro factor es 83.
28
El algoritmo Quadratic sieve
El mtodo descrito mediante el algoritmo de
Quadratic sieve creado por Carl Pomerance
en 1981, hizo posible por primera vez
factorizar nmeros de mas cien dgitos. Tuvo
gran suceso cuando factoriz un entero de
129 dgitos, conocido como RSA-129 cuya
factorizacin fue considerado como un
descubrimiento por los creadores del RSA.

29
El algoritmo Quadratic sieve
30
El algoritmo Quadratic sieve
31
El algoritmo Quadratic sieve
32
El algoritmo Quadratic sieve
El valor de b es llamado suave si se cumple que:


En la actualidad el mejor algoritmo para factorizar
nmeros enteros con mas de 115 dgitos es el
number field sieve, que inicialmente fue propuesto
por J.M. Pollard y mejorado posteriormente por
Buhler, Lenstra y Pomerance. Su xito lo tuvo
cuando factoriz el nmero entero de 160 dgitos en
el ao 2003, conocido como RSA-160.

33
j
Residuo cuadrtico y Residuo no
cuadrtico
Definicin (residuo cuadrtico): Si n es un
nmero primo impar, entonces a es un residuo
cuadrtico de n, si el mcd(a,n) = 1 y la
congruencia x
2
a(mod n) tiene solucin.
Podemos deducir que si la congruencia
x
2
a(mod n) no tiene solucin, entonces se
dice que a no es residuo cuadrtico de n.

34
Residuo cuadrtico y Residuo no
cuadrtico
Ejemplo
Sea n = 11. Entonces para determinar que enteros son residuos cuadrticos de 11,
debemos computar los cuadrados de los nmeros enteros 1, 2, . . . , 10, es decir
x
2
a(mod m) = 1
2
1(mod 11) x
2
a(mod m) = 9
2
4(mod 11)
x
2
a(mod m) = 2
2
4(mod 11) x
2
a(mod m) = 10
2
1(mod 11)
x
2
a(mod m) = 3
2
9(mod 11)
x
2
a(mod m) = 4
2
5(mod 11)
x
2
a(mod m) = 5
2
3(mod 11)
x
2
a(mod m) = 6
2
3(mod 11)
x
2
a(mod m) = 7
2
5(mod 11)
x
2
a(mod m) = 8
2
9(mod 11)|
35
Residuo cuadrtico y Residuo no
cuadrtico
Por lo tanto, los residuos cuadrticos son: 1, 3,
4, 5, 9 y los residuos no cuadrticos son: 2, 6,
7, 8, 10.
Lema 3.22: Sean p un nmero primo impar,
a un entero no divisible por p. Entonces la
expresin x
2
a(mod p) no tiene soluciones o
tiene exactamente dos soluciones incongruentes
modulo p.

36
Residuo cuadrtico y Residuo no
cuadrtico
Teorema 3.23: Sea p un nmero primo
impar, entonces existen exactamente (p-1)/2
residuos cuadrticos de p y (p-1)/2 residuos
no cuadrticos de p entre los nmeros enteros
1, 2, . . . , p - 1.


37
Smbolo de Legendre
Definicin: Sean p un nmero primo e
impar, a un nmero entero no divisible por
p. Entonces el smbolo de Legendre

(

) se
define por:
(

)

38
1 si a es residuo cuadrtico de p.
-1 si a no es residuo cuadrtico de p.

Smbolo de Legendre
39
Smbolo de Jacobi
El smbolo de Jacobi

es una generalizacin
del smbolo de Legendre y es til para
evaluar los smbolos de Legendre as como en
la definicin de un tipo de nmeros llamados
pseudoprimos.
El siguiente algoritmo permite obtener el
smbolo de Jacobi:


40
Smbolo de Jacobi
Algoritmo previo necesario
Func_exp(x)
cont=0
Mientras (x mod 2 == 0) hacer
x=x/2
cont=cont+1
Fin mientras
retornar (cont)

41
Smbolo de Jacobi
42
Smbolo de Jacobi
43
FIN SI
FIN SI
FIN SI
Smbolo de Jacobi
44
FIN SI
FIN SI
Smbolo de Jacobi
Teorema 3.26: Existe un algoritmo de tiempo
polinomial que computa el smbolo de Jacobi
(

) , siempre que n es un nmero impar


grande mayor que l y a es relativamente
primo con n.


45
Smbolo de Jacobi
Aplique el algoritmo de Jacobi para hallar:
1. (
5
23
)
2. (
6
21
)
3. (
1001
9907
)
46
Investigar: Kronecker symbol

47
Problema de la raz cuadrada modulo n
El problema de la raz cuadrada modulo n
es muy usado en criptografa, donde para
hallar la raz se debe tener en cuenta que un
nmero entero n es primo o tal vez
compuesto. Si n es primo, entonces la raz
cuadrada mdulo n es fcilmente obtenida,
pero si n es un nmero compuesto entonces
hallar tal raz es difcil ya que sus factores
primos son desconocidos.

48
Raz cuadrada cuando n es un
nmero primo
El siguiente algoritmo encuentra la raz
cuadrada usando O((log p)
4
) operaciones bit:

49
FIN SI
Algoritmo
Raz cuadrada cuando n es un
nmero primo
50
Algoritmo
Raz cuadrada cuando n es un
nmero primo
51
)
Algoritmo
//Usar algoritmo de exponenciacin
Raz cuadrada cuando n es un
nmero primo
Ejemplo
Sean los nmeros p = 23 y a = 4. Entonces las
races son r = 2.
Ejemplo
Sean los nmeros enteros p = l0l y a = 80. Las
races reportadas por el algoritmo anterior son r =
79.
Ejemplo
Sean los nmeros p = 7 y a = 4. Entonces las
races son r = 2.

52
Raz cuadrada cuando n es un
nmero compuesto
Para este caso se considera a n=p*q, donde p
y q son dos nmeros primos distintos e
impares.
El siguiente algoritmo, efecta O((log p)
3
)
operaciones bit, permite hallar races
modulo n cuando se conocen los primos p y
q, respectivamente:

53
Raz cuadrada cuando n es un
nmero compuesto
54
Algoritmo
Raz cuadrada cuando n es un
nmero compuesto
Ejemplo
Sean los nmeros p = 77 y a = 4. Entonces
las races son x = 68 , y = 2.
Ejemplo
Sean los nmeros p = 91 y a = 9. Entonces
las races son x = 10 , y = 3.

55

Potrebbero piacerti anche