operaciones en zn
TRANSCRIPT
-
5/24/2018 Operaciones en Zn
1/55
Operaciones en Zn
Mitchell Paulo Blancas Nez
1
-
5/24/2018 Operaciones en Zn
2/55
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 criptosistemascriptogrficos.
2
-
5/24/2018 Operaciones en Zn
3/55
Operaciones en Zn
3
-
5/24/2018 Operaciones en Zn
4/55
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
-
5/24/2018 Operaciones en Zn
5/55
Adicin
Ejemplo
Sea el conjunto Z15= {0, 1, . . . , 14}. La adicinde los nmeros 6 E Z15y 9 EZ15 esta dado por 0
E Z15 , pues por definicin de los Zn se tieneque 6 + 9 0(mod 15).
Ejemplo
Sea el conjunto Z25= {0, 1, . . . , 24}. La adicin delos nmeros 13 E Z25y 16 E Z25 esta dado por 4E Z25 , pues por definicin se tiene que 13 + 164(mod 25).
5
-
5/24/2018 Operaciones en Zn
6/55
Multiplicacin
Siendo a, b E Zn , la multiplicacin modular seefecta simplemente multiplicndolos comosi fueran nmeros enteros comunes, para
luego coger el resto de la divisin de talproducto por n.
Ejemplo
Sea el conjunto Z25 = {0, 1, . . . , 24}. Lamultiplicacin de 13 por 16 es 8, pues 13 168(mod 25).
6
-
5/24/2018 Operaciones en Zn
7/55
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 encuenta que si y existe, entonces es nico, y
a es llamado invertible. Por notacin, el
inverso de a se denota por a1 .
7
-
5/24/2018 Operaciones en Zn
8/55
Inverso Multiplicativo
Ejemplo
En Z9 = {0, 1, . . . , 8} los elementos invertibles son 1, 2,4, 5, 7, 8, pues por ejemplo el inverso de 4 es 7 ya que4 7 1(mod 9). Anlogamente, el inverso de 7 es 4,
pues 7 4 1(mod 9).Propiedad 7
Sea a E Zn, entonces a es invertible si y solamente siel mcd(a, n)= 1.
Ejemplo Sea Z9 = {0, 1, . . . , 8}, entonces 2 es invertible, pues
el mcd(2, 9) = 1.
8
-
5/24/2018 Operaciones en Zn
9/55
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
-
5/24/2018 Operaciones en Zn
10/55
Divisin
Sean a, b E Zn . La divisin de a por b modulo nesta dado por el producto de a con b1 modulon.
Podemos notar que la divisin modular esposible, solamente si b es invertible modulo n.
Ejemplo
Sea Z9 = {0, 1, . . . , 8} el conjunto de losnmeros enteros modulo 9, entoncesconsiderando 3 E Z9 y 4 E Z9 tenemos que 3 4(mod 9) = 3, pues como 41 = 7 entoncestenemos que 3 7(mod 9) = 3.
10
-
5/24/2018 Operaciones en Zn
11/55
Exponenciacin
La exponenciacin modular es otra operacinbsica muy til para la criptografa. El siguientealgoritmo emplea una representacin binaria de
un numero entero k de modo que k = k020
+ k121
+ . . . + kt2t, donde cada kies de la forma binaria,
esto es ki= {0, 1}.
Ejemplo
Sea Z9 = {0, 1, . . . , 8} un conjunto de nmerosenteros modulo 9. Entonces 5 E Z9 se puederepresentar por 5 = 1 20+ 0 21 + 1 22.
11
-
5/24/2018 Operaciones en Zn
12/55
Exponenciacin
Algoritmo para la exponenciacinEntrada: a E Zn , k E Z tal que O k < n, con una representacin binaria.
Salida : akmod 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
-
5/24/2018 Operaciones en Zn
13/55
Exponenciacin
Sea Z1234 = {0, 1, . . . , 1233}, donde a = 5 E
Z1234 y k = 596. Entonces
El algoritmo reporta 5 elevado a la
596mod(1234) = 1O13
13
-
5/24/2018 Operaciones en Zn
14/55
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 ocurrenen la factorizacin de n. Una funcin con esta
propiedad es llamado multiplicativo.
14
-
5/24/2018 Operaciones en Zn
15/55
Funcin de Euler
A continuacin se presentan las definiciones y
teoremas mas importantes.
Definicin (Funcin aritmtica): Sea n EZ + .
Una funcin aritmtica es aquella funcin que
esta definida para todo numero entero positivo.
15
-
5/24/2018 Operaciones en Zn
16/55
Funcin de Euler
Definicin (Funcin multiplicativa): Sean m, nnmeros enteros positivos relativamente primos. Unafuncin aritmticaf es llamada multiplicativa, si secumplef (m*n) =f (m)f (n).
f es completamente multiplicativa, sif (m*n) =f
(m)f (n), m, n EZ + .Ejemplo: La funcin constantef (n) = 1, n es
completamente multiplicativa, puesf (mn) = 1,f (m) = 1 =f (n).
Ejemplo: La funcin identidad.
16
-
5/24/2018 Operaciones en Zn
17/55
Funcin de Euler
Teorema 1: Sif es una funcin multiplicativa y siadems n =pa1
pa2. . . pas
es la factorizacin prima del entero positivo n,
entonces
Teorema 2: Sea p un nmero primo, entonces (p) =p-
1. Adems, sip EZ + con (p) =p - 1, entonces p es primo. Teorema 3: Seap un nmero primo y a EZ + ,
entonces (pa ) =pa -pa1 .
17
f (n) =f (pa1 )f (pa2 ) . . . f (pas )
-
5/24/2018 Operaciones en Zn
18/55
Funcin de Euler
Ejemplo Seap = 5 y a = 3, entonces (53 ) = 53 -531 = 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
-
5/24/2018 Operaciones en Zn
19/55
Funcin de Euler
19
Teorema 5: Sean ai EZ+ ,pj numeros
primos, donde i, j = 1 . . . k, n =p2 . . . Pkentonces(n) = n(1 - 1 )(1 - 1 ) . . . (1 - 1 )p1 p2 pk
Ejemplo
(720) = (2
4
3
2
5
1
) = 720(1-
1
)(1- 1
)(1-
1
) = 1922 3 5
-
5/24/2018 Operaciones en Zn
20/55
Funcin de Euler
Teorema 6: Sea 2 < n EZ + , entonces (n) es
par.
Un criptosistema asimtrico es seguro si estabasado en la intratabilidad de ciertos problemas
computacionales, tales como los problemas de
la factorizacin entera, la raz cuadrada modulo
n, etc.
20
-
5/24/2018 Operaciones en Zn
21/55
Problema de factorizacin entera
21
Por el teorema fundamental de la aritm'etica se sabe quecada 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 lacriptograf'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 EZ + , el problema es
hallar la factorizaci'on de nen factores primos, esdecir
n =pe1pe2 . . . pek , conpi =pj, i =j, ei 11 2 k
-
5/24/2018 Operaciones en Zn
22/55
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 elloantes de factorizar un nmero es mejor primero
testar para comprobar si tal nmero es o no es
compuesto.
22
-
5/24/2018 Operaciones en Zn
23/55
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 necesariocontar con algoritmos que faciliten el trabajo
en dos etapas, es decir que primero se
obtengan los factores a y b y luego testar laprimalidad de tales factores.
23
-
5/24/2018 Operaciones en Zn
24/55
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 losalgoritmos 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
-
5/24/2018 Operaciones en Zn
25/55
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
-
5/24/2018 Operaciones en Zn
26/55
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 potenciaprima.
Salida : Factor no trivial d de na 2;
b 2;
PARA (i = 1, 2, . . .);a a2+ 1 mod n;
b b2+ 1 mod n;
b b2+ 1 mod n;
d mcd(abs(ab), n);SI (1 < d < n)
Retornar d;
SI (d >= n)
Retornar Sin exito;
FIN PARA; 26
-
5/24/2018 Operaciones en Zn
27/55
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 potenciaprima.
Salida : Factor no trivial d de na 2;
b 2;PARA (i = 1, 2, . . .);
a a2+ 1 mod n;
b b2+ 1 mod n;
b b2+ 1 mod n;
d mcd(abs(ab), 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=24
son potencias primas,mientras que 6=23, 15=35
y 36=6=23 no lo son....
-
5/24/2018 Operaciones en Zn
28/55
El algoritmo de Rho Pollard
Los algoritmos Rho Pollard y (p - 1) Pollard, creados en 1974 porJ.M. Pollard, tienen como caracterstica su lentitud para factorizarproblemas difciles, a menos que los nmeros a factorizar tenganpropiedades 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 entreel 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
-
5/24/2018 Operaciones en Zn
29/55
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. Tuvogran suceso cuando factoriz un entero de
129 dgitos, conocido como RSA-129 cuya
factorizacin fue considerado como undescubrimiento por los creadores del RSA.
29
-
5/24/2018 Operaciones en Zn
30/55
El algoritmo Quadratic sieve
30
-
5/24/2018 Operaciones en Zn
31/55
El algoritmo Quadratic sieve
31
-
5/24/2018 Operaciones en Zn
32/55
El algoritmo Quadratic sieve
32
-
5/24/2018 Operaciones en Zn
33/55
El algoritmo Quadratic sieve
El valor de b es llamado suave si se cumple que:
En la actualidad el mejor algoritmo para factorizarnmeros enteros con mas de 115 dgitos es elnumber field sieve, que inicialmente fue propuestopor J.M. Pollard y mejorado posteriormente por
Buhler, Lenstra y Pomerance. Su xito lo tuvocuando factoriz el nmero entero de 160 dgitos enel ao 2003, conocido como RSA-160.
33
-
5/24/2018 Operaciones en Zn
34/55
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 lacongruencia x2 a(mod n) tiene solucin.
Podemos deducir que si la congruencia
x2a(mod n) no tiene solucin, entonces sedice que a no es residuo cuadrtico de n.
34
-
5/24/2018 Operaciones en Zn
35/55
Residuo cuadrtico y Residuo no
cuadrticoEjemplo 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
x2 a(mod m) =12 1(mod 11) x2a(mod m) =92 4(mod 11)x2 a(mod m) =22 4(mod 11) x2a(mod m) =102 1(mod 11)
x2 a(mod m) =32 9(mod 11)x2 a(mod m) =42 5(mod 11)x2 a(mod m) =52 3(mod 11)
x2 a(mod m) =62 3(mod 11)
x2 a(mod m) =72 5(mod 11)x2 a(mod m) =82 9(mod 11)|
35
-
5/24/2018 Operaciones en Zn
36/55
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 x2 a(mod p) no tiene soluciones o
tiene exactamente dos soluciones incongruentesmodulop.
36
-
5/24/2018 Operaciones en Zn
37/55
Residuo cuadrtico y Residuo no
cuadrtico
Teorema 3.23: Seap 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 enteros1, 2, . . . , p - 1.
37
-
5/24/2018 Operaciones en Zn
38/55
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.
-
5/24/2018 Operaciones en Zn
39/55
Smbolo de Legendre
39
-
5/24/2018 Operaciones en Zn
40/55
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 llamadospseudoprimos.
El siguiente algoritmo permite obtener el
smbolo de Jacobi:
40
-
5/24/2018 Operaciones en Zn
41/55
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
-
5/24/2018 Operaciones en Zn
42/55
Smbolo de Jacobi
42
-
5/24/2018 Operaciones en Zn
43/55
Smbolo de Jacobi
43
FIN SI
FIN SI
FIN SI
-
5/24/2018 Operaciones en Zn
44/55
Smbolo de Jacobi
44
FIN SI
FIN SI
-
5/24/2018 Operaciones en Zn
45/55
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
-
5/24/2018 Operaciones en Zn
46/55
Smbolo de Jacobi
Aplique el algoritmo de Jacobi para hallar:
1. (5
23)
2. (6
21)
3. (1001
9907)
46
-
5/24/2018 Operaciones en Zn
47/55
Investigar: Kronecker symbol
47
-
5/24/2018 Operaciones en Zn
48/55
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 vezcompuesto. Si n es primo, entonces la raz
cuadrada mdulo n es fcilmente obtenida,
pero si n es un nmero compuesto entonceshallar tal raz es difcil ya que sus factores
primos son desconocidos.
48
R d d d
-
5/24/2018 Operaciones en Zn
49/55
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
R d d d
-
5/24/2018 Operaciones en Zn
50/55
Raz cuadrada cuando n es un
nmero primo
50
Algoritmo
R d d d
-
5/24/2018 Operaciones en Zn
51/55
Raz cuadrada cuando n es un
nmero primo
51
)
Algoritmo
//Usar algoritmo de exponenciacin
R d d d
-
5/24/2018 Operaciones en Zn
52/55
Raz cuadrada cuando n es un
nmero primo
Ejemplo Sean los nmeros p = 23 y a = 4. Entonces las
races son r = 2.
EjemploSean los nmeros enteros p = l0l y a = 80. Lasraces reportadas por el algoritmo anterior son r =79.
Ejemplo Sean los nmeros p = 7 y a = 4. Entonces las
races son r = 2.
52
R d d d
-
5/24/2018 Operaciones en Zn
53/55
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 primosp y
q, respectivamente:
53
R d d d
-
5/24/2018 Operaciones en Zn
54/55
Raz cuadrada cuando n es un
nmero compuesto
54
Algoritmo
R d d d
-
5/24/2018 Operaciones en Zn
55/55
Raz cuadrada cuando n es un
nmero compuesto
Ejemplo
Sean los nmeros p = 77 y a = 4. Entonces
las races sonx = 68 , y = 2.
Ejemplo
Sean los nmeros p = 91 y a = 9. Entonces
las races sonx = 10 , y = 3.