Upload
trinhngoc
View
245
Download
8
Embed Size (px)
Citation preview
IMD-IS. Aritmética modular
Emmanuel Briand
ETSII. Universidad de Sevilla.
Emmanuel Briand IMD-IS. Aritmética modular
Clases de congruencia modulo n
Pares e impares: clases modulo 2
Pares = {. . . ,−2, 0, 2, 4, 6, . . .} (resto 0)Impares = {. . . ,−1, 1, 3, 5, 7, . . .} (resto 1).
Clases modulo 3
{. . . ,−3, 0, 3, 6, 9, . . .} (resto 0){. . . ,−2, 1, 4, 7, 10, . . .} (resto 1){. . . ,−1, 2, 5, 8, 11, . . .} (resto 2)
Más generalmente, tenemos n clases modulo n.
Emmanuel Briand IMD-IS. Aritmética modular
Clases de congruencia modulo n
Pares e impares: clases modulo 2
Pares = {. . . ,−2, 0, 2, 4, 6, . . .} (resto 0)Impares = {. . . ,−1, 1, 3, 5, 7, . . .} (resto 1).
Clases modulo 3
{. . . ,−3, 0, 3, 6, 9, . . .} (resto 0){. . . ,−2, 1, 4, 7, 10, . . .} (resto 1){. . . ,−1, 2, 5, 8, 11, . . .} (resto 2)
Más generalmente, tenemos n clases modulo n.
Emmanuel Briand IMD-IS. Aritmética modular
Suma y producto modulo 2
+ PAR IMPAR
PAR PAR IMPARIMPAR IMPAR PAR
× PAR IMPAR
PAR PAR PARIMPAR PAR IMPAR
+ [0] [1]
[0] [0] [1][1] [1] [0]
× [0] [1]
[0] [0] [0][1] [0] [1]
Emmanuel Briand IMD-IS. Aritmética modular
Suma y producto modulo 6
+ 0 1 2 3 4 5
0 0 1 2 3 4 51 1 2 3 4 5 02 2 3 4 5 0 13 3 4 5 0 1 24 4 5 0 1 2 35 5 0 1 2 3 4
× 0 1 2 3 4 5
0 0 0 0 0 0 01 0 1 2 3 4 52 0 2 4 0 2 43 0 3 0 3 0 34 0 4 2 0 4 25 0 5 4 3 2 1
Emmanuel Briand IMD-IS. Aritmética modular
Suma y producto modulo 7
+ 0 1 2 3 4 5 6
0 0 1 2 3 4 5 61 1 2 3 4 5 6 02 2 3 4 5 6 0 13 3 4 5 6 0 1 24 4 5 6 0 1 2 35 5 6 0 1 2 3 46 6 0 1 2 3 4 5
× 0 1 2 3 4 5 6
0 0 0 0 0 0 0 01 0 1 2 3 4 5 62 0 2 4 6 1 3 53 0 3 6 2 5 1 44 0 4 1 5 2 6 35 0 5 3 1 6 4 26 0 6 5 4 3 2 1
Emmanuel Briand IMD-IS. Aritmética modular
Los tres tipos de elementos en Zn
Los elementos de Zn se reparten entre tres clases:
Unidades
Divisores de cero
y ponemos el [0] aparte.
Emmanuel Briand IMD-IS. Aritmética modular
Notaciones
Las tres expresiones siguientes son sinónimas:
[x ]n = [y ]n
x ≡ y mod n
�Existe un entero k tal que x = y + kn�
Ejemplo importante
[x ]n es una unidad si y solo siexiste a, ax ≡ 1 mod n.
Emmanuel Briand IMD-IS. Aritmética modular
Notaciones
Las tres expresiones siguientes son sinónimas:
[x ]n = [y ]n
x ≡ y mod n
�Existe un entero k tal que x = y + kn�
Ejemplo importante
[x ]n es una unidad si y solo siexiste a, existe k tal que ax + kn = 1
Emmanuel Briand IMD-IS. Aritmética modular
Notaciones
Las tres expresiones siguientes son sinónimas:
[x ]n = [y ]n
x ≡ y mod n
�Existe un entero k tal que x = y + kn�
Ejemplo importante
[x ]n es una unidad si y solo sia y n son coprimos.
Emmanuel Briand IMD-IS. Aritmética modular
Cálculo del inverso
Modulo 1745, ¾ cuáles son los inversos de las clases de:
1485 ?1744 ?2 ?333 ?
Calcular un inverso se puede hacer por medio del algoritmo deEuclides extendido.
Emmanuel Briand IMD-IS. Aritmética modular
Sistemas de ecuaciones modulares
3x ≡ 1 mod 2x ≡ 2 mod 32x ≡ 1 mod 5x ≡ 4 mod 7
x ≡ 1 mod 2x ≡ 2 mod 3x ≡ 3 mod 5x ≡ 4 mod 7
Emmanuel Briand IMD-IS. Aritmética modular
ax ≡ b mod n
ax ≡ b mod n
Hay tres casos:
Si [a] es una unidad (a y n coprimos): sea [c] su inversa. Laecuación es equivalente a:
x ≡ bc mod n
Sino, sea d = Mcd(a, n).
Si d no divide b, no hay solución.
Si d divide b, la ecuación se simpli�ca en:
a
dx ≡ b
dmod
n
d
Existe k tal que ax = b + kn.Emmanuel Briand IMD-IS. Aritmética modular
Resolución: dos ecuaciones
{x ≡ b1 mod q1x ≡ b2 mod q2
La primera ecuación es equivalente a:
Existe k tal que x = b1 + q1k
Ahora resolvemos en k .Puede no haber soluciones, pero si hay soluciones, son de la forma:
k ≡ c mod q2
Es equivalente a:
Existe j tal que k = c + q2j
Para x :x = b1 + q1(c + q2j) = . . . + jq1q2
Es decirx ≡ . . . mod q1q2
Emmanuel Briand IMD-IS. Aritmética modular
Resolución: dos ecuaciones
{x ≡ b1 mod q1x ≡ b2 mod q2
La primera ecuación es equivalente a:
Existe k tal que x = b1 + q1k
Ahora resolvemos en k .Puede no haber soluciones, pero si hay soluciones, son de la forma:
k ≡ c mod q2
Es equivalente a:
Existe j tal que k = c + q2j
Para x :x = b1 + q1(c + q2j) = . . . + jq1q2
Es decirx ≡ . . . mod q1q2
Emmanuel Briand IMD-IS. Aritmética modular
La forma del conjunto de las soluciones
x ≡ b1 mod q1x ≡ b2 mod q2
...x ≡ br mod qr
x ≡ 1 mod 2x ≡ 0 mod 3x ≡ 2 mod 5
Teorema chino de los restos, caso fácil
Si para cada par (i , j) con i 6= j , los moduli qi y qj son coprimos,entonces el conjunto de los soluciones es una clase modulo elproducto de los moduli q1q2 · · · qr ..
Emmanuel Briand IMD-IS. Aritmética modular
La forma del conjunto de las soluciones
x ≡ b1 mod q1x ≡ b2 mod q2
...x ≡ br mod qr
x ≡ 1 mod 2x ≡ 0 mod 3x ≡ 2 mod 5
Teorema chino de los restos, caso general
En general, el conjunto de las soluciones es:
o bien vacío
o bien una clase modulo mcm(q1, q2, . . . , qr ).
Emmanuel Briand IMD-IS. Aritmética modular
Forma más completa del teorema chino de los restos
Consecuencia del teorema chino de los restos:Ej: 30 = 2× 3× 5, los factores son coprimos.
[x ]30 7−→ ([x ]2, [x ]3, [x ]5)
Es una biyección de Z30 en Z2 × Z3 × Z5.
0 7→(0, 0, 0) 10 7→(0, 1, 0) 20 7→(0, 2, 0)1 7→(1, 1, 1) 11 7→(1, 2, 1) 21 7→(1, 0, 1)2 7→(0, 2, 2) 12 7→(0, 0, 2) 22 7→(0, 1, 2)3 7→(1, 0, 3) 13 7→(1, 1, 3) 23 7→(1, 2, 3)4 7→(0, 1, 4) 14 7→(0, 2, 4) 24 7→(0, 0, 4)5 7→(1, 2, 0) 15 7→(1, 0, 0) 25 7→(1, 1, 0)6 7→(0, 0, 1) 16 7→(0, 1, 1) 26 7→(0, 2, 1)7 7→(1, 1, 2) 17 7→(1, 2, 2) 27 7→(1, 0, 2)8 7→(0, 2, 3) 18 7→(0, 0, 3) 28 7→(0, 1, 3)9 7→(1, 0, 4) 19 7→(1, 1, 4) 29 7→(1, 2, 4)
Emmanuel Briand IMD-IS. Aritmética modular
El número de unidades en Zn
Recordamos: [a] es una unidad de Zn si y solo si a es coprimo con n.
La función φ de Euler
La aplicación que asocia a n el número de unidades modulo n sellama función φ de Euler (���) y se nota φ.
n 1 2 3 4 5 6 7 8 9 10 11 12
φ(n) 1 1 2 2 4 2 6 4 6 4 10 4
Emmanuel Briand IMD-IS. Aritmética modular
Formulas para la función φ de Euler
Unos casos particulares simples:n = p n = pr n = pq
(primo) (potencia de primo) (producto de dos primos distintos)
φ(n) = p − 1 φ(n) = pr−1(p − 1) φ(n) = (p − 1)(q − 1)
φ(n)n
= (1− 1
p) φ(n)
n= (1− 1
p) φ(n)
n= (1− 1
p)(1− 1
q)
Emmanuel Briand IMD-IS. Aritmética modular
Formula general para la función φ de Euler
Formula general para la función de Euler
Si n = pr11pr22· · · prk
k (descomposición en primos, es decir los pi sonprimos distintos y los ri son > 0), entonces
φ(n)/n = (1− 1/p1)(1− 1/p2) · · · (1− 1/pr )
Emmanuel Briand IMD-IS. Aritmética modular
Las potencias de una unidad
Calculamos a, a2, a3 . . . modulo n.
Teorema de Euler
Sea φ(n) el número de unidades modulo n. Entonces:
aφ(n) ≡ 1 mod n (para a coprimo con n)
Pequeño teorema de Fermat
Si p es primo entonces:
ap−1 ≡ 1 mod p (para a no múltiplo de p)
Emmanuel Briand IMD-IS. Aritmética modular
Las potencias de una unidad
Calculamos a, a2, a3 . . . modulo n.
Teorema de Euler
Sea φ(n) el número de unidades modulo n. Entonces:
aφ(n) ≡ 1 mod n (para a coprimo con n)
Pequeño teorema de Fermat
Si p es primo entonces:
ap−1 ≡ 1 mod p (para a no múltiplo de p)
Emmanuel Briand IMD-IS. Aritmética modular
Las potencias de una unidad
Calculamos a, a2, a3 . . . modulo n.
Teorema de Euler
Sea φ(n) el número de unidades modulo n. Entonces:
aφ(n) ≡ 1 mod n (para a coprimo con n)
Pequeño teorema de Fermat
Si p es primo entonces:
ap−1 ≡ 1 mod p (para a no múltiplo de p)
Emmanuel Briand IMD-IS. Aritmética modular
Simpli�cación de cálculos de grandes potencias (con unpequeño modulo)
Calcular 21000 modulo 53.
El número 53 es primo (y 2 no es múltiplo de 53). Por el pequeñoteorema de Fermat, 252 ≡ 1 mod 53.Claro , tenemos también
2104 ≡ 2156 ≡ · · · ≡ 1 mod 53
Calculamos 1000 mod 52, tenemos:
1000 = 19× 52 + 12
Por lo tanto:
21000 = (252)19 × 212 ≡ 119 × 212 ≡ 212 mod 53
Este cálculo puede hacerse a mano.
Emmanuel Briand IMD-IS. Aritmética modular
Simpli�cación de cálculos de grandes potencias (con unpequeño modulo)
Calcular 21000 modulo 53.El número 53 es primo (y 2 no es múltiplo de 53). Por el pequeñoteorema de Fermat, 252 ≡ 1 mod 53.Claro , tenemos también
2104 ≡ 2156 ≡ · · · ≡ 1 mod 53
Calculamos 1000 mod 52, tenemos:
1000 = 19× 52 + 12
Por lo tanto:
21000 = (252)19 × 212 ≡ 119 × 212 ≡ 212 mod 53
Este cálculo puede hacerse a mano.Emmanuel Briand IMD-IS. Aritmética modular
Test de primalidad: test de Fermat
Sea a con 0 < a < p.
Si p NO pasa el test de Fermat en base a (es decir: si ap 6≡ 1mod p) entonces queda demostrado que p no es primo.
Si p pasa el test de Fermat en base a, entonces p puede serprimo o no. Pero probablemente lo es.
Para los enteros < 100 000:
Proporción de primos: 9, 6%.
Porporción de no primos que pasan el test de Fermat en base2: 0, 078%. La probabilidad de no ser primo pasando el testes: 0, 81%.
Emmanuel Briand IMD-IS. Aritmética modular
Test de primalidad: test de Fermat
Sea a con 0 < a < p.
Si p NO pasa el test de Fermat en base a (es decir: si ap 6≡ 1mod p) entonces queda demostrado que p no es primo.
Si p pasa el test de Fermat en base a, entonces p puede serprimo o no. Pero probablemente lo es.
Para los enteros < 100 000:
Proporción de primos: 9, 6%.
Porporción de no primos que pasan el test de Fermat en base2: 0, 078%. La probabilidad de no ser primo pasando el testes: 0, 81%.
Emmanuel Briand IMD-IS. Aritmética modular
Exponenciación rápida modular
Ejemplo de cálculo de ae mod n
En Zn, donde n tiene 520 cifras decimales, queremos calcular 2e con
e = 212960300731342842883386508585891884236647000968439497383038979073106416710748878893112342265866043731665289005787483780386120271622964903883759506751921231714044369373074843374199054262529839256493858945489094008521481618817548188318250883440997105195943367222104942827279928806033089390061346156788765830755067658931895709032029937028583436047160555081615864732901226386885685469005448341552620802273008678257385909313
Exponenciación ingenua: e − 1 multiplicaciones ½ Tarda unaeternidad !
Exponenciación rápida: 1788 multiplicaciones. ½ Inmediato !
Emmanuel Briand IMD-IS. Aritmética modular
Pequeño ejemplo con RSA
Trabajamos modulo n = 91 y mandamos como mensajes m
números entre 1 y 6 (incluidos).Ciframos con m 7→ me mod n, con e = 5. La clave pública es(n, e) = (91, 5).Desciframos con c 7→ cd mod n, con d = 29. La clave privada es(n, d) = (91, 29).Diccionario:
Mensaje en claro Mensaje cifrado
1 12 323 614 235 316 41
Emmanuel Briand IMD-IS. Aritmética modular
Pequeño ejemplo con RSA
Trabajamos modulo n = 91 y mandamos como mensajes m
números entre 1 y 6 (incluidos).Ciframos con m 7→ me mod n, con e = 5. La clave pública es(n, e) = (91, 5).Desciframos con c 7→ cd mod n, con d = 29. La clave privada es(n, d) = (91, 29).Diccionario:
Mensaje en claro Mensaje cifrado
1 12 323 614 235 316 41
Emmanuel Briand IMD-IS. Aritmética modular
Transmisión de un mensaje con RSA
Transmitimos números=mensajes codi�cados en un canal inseguro.
m = número entre 1 y M, �mensaje en claro�.
Codi�camos el mensaje antes de transmitirlo (lo representamoscomo un número, por medio de un proceso público).
Ciframos: c = me mod n, c es el �mensaje cifrado�
Trasmitimos c .
A la recepción, se descifra c por medio de la formula: m = cd
mod n y se descodi�ca.
Hace falta que m = (me)d mod n para todos los mensajes en claroposibles. Esto ocurre cuando:
Todos los mensajes en claro son coprimos con n. ElegirM < menor factor primo de n.
ed ≡ 1 mod φ(n) (por el Teorema de Euler).
Emmanuel Briand IMD-IS. Aritmética modular
Transmisión de un mensaje con RSA
Transmitimos números=mensajes codi�cados en un canal inseguro.
m = número entre 1 y M, �mensaje en claro�.
Codi�camos el mensaje antes de transmitirlo (lo representamoscomo un número, por medio de un proceso público).
Ciframos: c = me mod n, c es el �mensaje cifrado�
Trasmitimos c .
A la recepción, se descifra c por medio de la formula: m = cd
mod n y se descodi�ca.
Hace falta que m = (me)d mod n para todos los mensajes en claroposibles.
Esto ocurre cuando:
Todos los mensajes en claro son coprimos con n. ElegirM < menor factor primo de n.
ed ≡ 1 mod φ(n) (por el Teorema de Euler).
Emmanuel Briand IMD-IS. Aritmética modular
Transmisión de un mensaje con RSA
Transmitimos números=mensajes codi�cados en un canal inseguro.
m = número entre 1 y M, �mensaje en claro�.
Codi�camos el mensaje antes de transmitirlo (lo representamoscomo un número, por medio de un proceso público).
Ciframos: c = me mod n, c es el �mensaje cifrado�
Trasmitimos c .
A la recepción, se descifra c por medio de la formula: m = cd
mod n y se descodi�ca.
Hace falta que m = (me)d mod n para todos los mensajes en claroposibles. Esto ocurre cuando:
Todos los mensajes en claro son coprimos con n. ElegirM < menor factor primo de n.
ed ≡ 1 mod φ(n) (por el Teorema de Euler).
Emmanuel Briand IMD-IS. Aritmética modular
¾ Como fueron elegidos les claves (n, e) y (n, d) ?
Trabajamos modulo n = 91 y mandamos como mensajes m
números entre 0 y 6 (incluidos).Ciframos con m 7→ me mod n, con e = 5. La clave pública es(n, e) = (91, 5).Desciframos con c 7→ cd mod n, con d = 29. La clave privada es(n, d) = (91, 29).
Hemos elegido dos primos p = 7 y q = 13.Ponemos: n = pq. Tenemos n = 91, φ(n) = 72.Elegimos M = 6 (importa que M < p). Elegimos e = 5. El d que lecorresponde es d = 29.
Emmanuel Briand IMD-IS. Aritmética modular
¾ Como fueron elegidos les claves (n, e) y (n, d) ?
Trabajamos modulo n = 91 y mandamos como mensajes m
números entre 0 y 6 (incluidos).Ciframos con m 7→ me mod n, con e = 5. La clave pública es(n, e) = (91, 5).Desciframos con c 7→ cd mod n, con d = 29. La clave privada es(n, d) = (91, 29).Hemos elegido dos primos p = 7 y q = 13.Ponemos: n = pq. Tenemos n = 91, φ(n) = 72.Elegimos M = 6 (importa que M < p). Elegimos e = 5. El d que lecorresponde es d = 29.
Emmanuel Briand IMD-IS. Aritmética modular
Ejemplo de clave RSA 1024 bits
p = 10886749541350314480703606724862073407892331085028739956397237105547037176615145623548568640250593833590973843267235567109644848147330427379985520112979269,
q = 11029667008429807165373145039914621864901082798824920292638334301839453387017970315771818785871989403805508820838149133951943902116850319780199515561950161,
n = p × q
= 120077222245269898358736389250775463206977318305164931431391948943165190750338725982359049504794099008251045283703751376633771055728609203858170596884456881245978589040487632647882539404810918932414703566967083924396792322543651041921538835290375094346200518560043825917460473370490508587653084011973404212309.
Emmanuel Briand IMD-IS. Aritmética modular
φ(n) = (p − 1)(q − 1)= 1200772222452698983587363892507754632069773183051649
31431391948943165190750338725982359049504794099008251045283703751376633771055728609203858170596884456859329562039260365986571130774628115646139000819713306834888825384936053087408805599514902948971762963122077379720532759411781740244406905923826937729282880,
e = 17,
d = inverso de e modulo φ(n),= 2825346405771056431970267982371187369575936901297998
3866209870339568280176550288466437423412892729178412010654989117970972652013112613930319569552208107496312838126884791996840266064618380152032706075226660431738547149396718373507954258709388929169826579558135854051890061038066291822213389629135750053948913.
Emmanuel Briand IMD-IS. Aritmética modular
Otro ejemplo con RSA
Encodamos �MARTES�, cambiando cada letra por su posición en elalfabeto inglés (26 letras, A=1, B=2,. . . ). Esto nos da 6 enteros,que son considerados como 6 mensajes diferentes:
13, 1, 18, 20, 5, 19
Con la clave pública (n, e) = (2491, 17), cifrar estos mensajes.
Se intercepta el mensaje cifrado [1838,764,1072,2081,1072,2470],cifrado con las misma clave publica, ¿ Como lo descifrarías ?
Emmanuel Briand IMD-IS. Aritmética modular