Vous êtes sur la page 1sur 16

Seguridad Informtica 2010 TEMA 1.

1: Herramientas matemticas para la criptografa


Aritmtica modular
Denicin Sea n 1, se dice que a es congruente con b mdulo n y se
escribe a b mod n si n|(a b).
Denicin Un conjunto de nmeros enteros tales que cualquier entero es
congruente mdulo n con exactamente un elemento del conjunto recibe el
nombre de conjunto completo de residuos mdulo n.
Denicin Z
n
es un conjunto completo de residuos mdulo n. Por ejem-
plo:
Z
n
= {0, 1, 2, ..., n 2, n 1}
Denicin a Z
n
es invertible b Z
n
tal que ab 1 mod n
Teorema a Z
n
es invertible (a, n) = 1
Ingeniera Tcnica en Informtica de Gestin 1
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Algoritmo de Eucldes para calcular el MCD de a y b
Paso 1 Inicializar r
0
= a y r
1
= b
Paso 2 Calcular la secuencia de ecuaciones
r
0
= q
1
r
1
+ r
2
r
1
= q
2
r
2
+ r
3
.
.
.
r
n3
= q
n2
r
n2
+ r
n1
r
n2
= q
n1
r
n1
+ r
n
hasta que haya una iteracin en la cual r
n
= 0 y r
n1
= 0.
Paso 3 El Mximo Comn Divisor de a y b es r
n1
NOTA Si MCD(a, b) = 1 entonces a y b son primos relativos.
Ingeniera Tcnica en Informtica de Gestin 2
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Algoritmo extendido de Eucldes para obtener a
1
mod N
Este algoritmo permite calcular la inversa modular x a
1
mod N tal
que ax 1 mod N
INICIALIZACIN: r
0
= N, r
1
= a, x
0
= 1
q
1
= r
0
/r
1
, r
2
= r
0
mod r
1
, x
1
= q
1
ITERACIN: Mientras r
2
= 0 calcular iterativamente
r
0
= r
1
, r
1
= r
2
, q
1
= r
0
/r
1
, r
2
= r
0
mod r
1
x
2
= x
0
q
1
x
1
, x
0
= x
1
, x
1
= x
2
SOLUCIN: Si r
1
= 1 no existe la inversa
Si x
0
> 0 la inversa es x
0
en caso contrario, la inversa es x
0
+ N
Ingeniera Tcnica en Informtica de Gestin 3
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Algoritmo de exponenciacin modular para y x
m
mod n
Los nmeros que se manejan en la criptografa son muy grandes y se re-
quiere disponer de algoritmos los manejen evitando desbordamientos (over-
ows). En el caso del clculo de la exponenciacin modular y x
m
mod n
se dispone del siguiente algoritmo:
INICIALIZACIN: y = 1, u = x mod n
ITERACIN: Iterar hasta que m = 0
1. Si m mod 2 = 1 entonces y = (y u) mod n
2. m = m/2
3. u = (u u) mod n
SOLUCIN: y x
m
mod n
Ingeniera Tcnica en Informtica de Gestin 4
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
La funcin Totient de Euler
De acuerdo al Teorema fundamental de la aritmtica, cualquier entero
m > 1 se puede factorizar como un producto de potencias de nmeros pri-
mos de acuerdo a
m =
n

i=1
p
e
i
i
donde p
i
son los distintos factores primos y e
i
> 0 sus correspondientes
exponentes, siendo n el nmero de factores primos.
En estas condiciones, se dene la funcin Totient de Euler (n) tal que
(n) =
n

i=1
(p
e
i
i
p
e
i
1
i
)
es el nmero de enteros positivos menores que m primos relativos con m.
Ingeniera Tcnica en Informtica de Gestin 5
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Teorema de Euler
Sean N y a valores enteros con a primo relativo con respecto de N. Bajo
estas condiciones, si (N) es la funcin Totient de Euler, entonces se verica
que
a
(N)
1 mod N
Teorema de Fermat
Si p es un nmero primo y a es un entero relativamente primo con p,
entonces se verica la congruencia
a
p1
1 mod p
lo cual es un caso particular del Teorema de Euler, puesto que para un primo
p la funcin Totient de Euler (p) est dada por (p) = p 1.
Ingeniera Tcnica en Informtica de Gestin 6
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Corolarios al Teorema de Fermat
1. Si p es primo, para cualquier entero de a se verica que
a
p1
a a mod p
2. Si p es primo, para cualesquiera valores enteros de a y k se verica que
a
k(p1)
a a mod p
3. Si p es primo, para cualesquiera valores enteros de a y b se verica que
a
b
a
b mod (p1)
mod p
Ingeniera Tcnica en Informtica de Gestin 7
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Teorema chino de los restos congruentes
Sean x
1
, x
2
, ..., x
r
valores enteros y p
1
, p
2
, ..., p
r
valores enteros relativa-
mente primos dos a dos cuyo producto es N = p
1
p
2
p
r
Bajo estas condi-
ciones, el sistema de ecuaciones en congruencia denotado por
x x
i
mod p
i
para i = 1, 2, ..., r tiene una solucin nica x [0, N 1] tal que
x
_
r

i=1
N
p
i
y
i
x
i
_
mod N
donde y
i
son valores enteros tales que
y
i

_
N
p
i
_
1
mod p
i
para i = 1, 2, ..., r
Ingeniera Tcnica en Informtica de Gestin 8
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Grupos cclicos y races primitivas I
Denicin Un grupo se denomina cclico cuando puede ser generado
por un solo elemento del mismo.
Dado un nmero primo p, el conjunto Z
p
formado por los enteros positivos
menores que p es un grupo cclico y nito de orden p 1 con respecto de la
multiplicacin mdulo p.
Esto quiere decir que existe al menos un valor Z
p
tal que cualquier
otro entero Z
p
se puede expresar de la forma

i
mod p
para algn entero i tal que 0 < i < p
El elemento se denomina generador, elemento primitivo o raz prim-
itiva del grupo Z
p
.
Ingeniera Tcnica en Informtica de Gestin 9
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Grupos cclicos y races primitivas II
Los grupos cclicos, y en particular Z
p
, tienen las siguientes propiedades:
1. En un grupo cclico nito existe un nico subgrupo de orden igual a cada
uno de los divisores del orden del grupo. En el caso de Z
p
, para cada uno
de los divisores de p 1 existe un nico subgrupo de ese orden.
2. Todo subgrupo de un grupo cclico es a su vez cclico. En el caso de Z
p
,
todos sus subgrupos son cclicos y nitos.
3. Todo grupo cclico nito tiene (d
i
) generadores de orden d
i
, siendo d
i
cada uno de los divisores del orden del grupo. En el caso de Z
p
, existen
(d
i
) generadores de orden d
i
para cada d
i
que divide a p 1
Ingeniera Tcnica en Informtica de Gestin 10
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Grupos cclicos y races primitivas III
Si a es una raz primitiva del grupo cclico Z
p
, entonces todos los elemen-
tos de Zp se pueden obtener como
Z
p
=
_
a
k
mod p
_
para k = 1, 2, ..., p 1
y cada elemento de Z
p
es generador de un subgrupo cclico cuyo orden t
k
est dado por
t
k
=
p 1
(p 1, k)
y as, a
k
ser a su vez una raz primitiva del grupo Z
p
si su orden t
k
es
igual a p 1; es decir, si (p 1, k) = 1.
Ingeniera Tcnica en Informtica de Gestin 11
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Generacin de nmeros primos por criba de Eratstenes
Este mtodo fue desarrollado por Eratstenes y se basa en una criba
que elimina paulatinamente todos los nmeros no primos menores que un
cierto entero positivo N.
1. Construir una lista o tabla de nmeros desde 1 hasta N.
2. Descartar el 1 porque, por denicin, no es un nmero primo.
3. Marcar el 2 porque es el nmero primo ms pequeo.
Para 2 < n N descartar todos los mltiplos de 2.
4. Elegir x como el siguiente nmero que no fue descartado. Marcarlo
como nmero primo y descartar todos sus mltiplos en el intervalo.
5. Repetir el paso 4 hasta que no haya ms nmeros para elegir.
Ingeniera Tcnica en Informtica de Gestin 12
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Otro algoritmo para generar nmeros primos
El siguiente algoritmo permite conocer todos los nmeros primos
menores que un entero positivo N.
1. Crear un conjunto inicial N
N
con todos los nmeros n tal que 1 < n < N.
Es decir, N
N
= {2, 3, 4, ..., N 1}
2. Para todos los enteros n <

N del conjunto N
N
remover sus mltiplos
dejando n en el conjunto.
3. El conjunto reducido N
N
contiene a todos los primos p menores que N.
Ingeniera Tcnica en Informtica de Gestin 13
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Prueba de primalidad de Miller-Rabin
Esta es una prueba probabilstica que permite establecer la primalidad
de un cierto nmero N con una probabilidad mayor que (1 4
k
) donde k
es un parmetro de conanza que establece el grado de probabilidad.
ENTRADAS: N 3 y k 1
SALIDAS: N es compuesto o N
es primo con probabilidad (1 4
k
)
1. Calcular r y s tales que N1 = 2
s
r con r impar.
2. Para i = 1, 2, ..., k {
3. Elegir a
i
tal que 1 < a
i
< N
4. Calcular y
i
a
r
i
mod N
5. Si (y
i
= 1) e (y
i
= N 1) {
6. j = 1
7. Mientras (j < s) e (y
i
= N 1) {
8. y
i
y
2
i
mod N
9. Si (y
i
= 1) {
10. N es compuesto
11. Salir
12. } - Fin del si en 9
13. j = j + 1
14. } - Fin del mientras en 7
15. Si (y
i
= N 1) {
16. N es compuesto
17. Salir
18. } - Fin del si en 15
19. } - Fin del si en 5
20. } - Fin del para en 2
21. N es primo con probabilidad > (1 4
k
)
Ingeniera Tcnica en Informtica de Gestin 14
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Nmeros primos fuertes
Los nmeros primos fuertes son un tipo especial de nmeros cuyo uso
fortalece a los sistemas criptogrcos al hacer ms difcil el criptoanlisis.
Un nmero primo p se dice que es fuerte si:
p 1 = r, o bien, p 1 mod r
donde es un entero pequeo y r un nmero primo grande.
r 1 = t, o bien, r 1 mod t
donde es un entero pequeo y t un nmero primo grande.
p + 1 = s, o bien, p 1 mod s
donde es un entero pequeo y s un nmero primo grande.
Ingeniera Tcnica en Informtica de Gestin 15
Seguridad Informtica 2010 TEMA 1.1: Herramientas matemticas para la criptografa
Nmeros primos fuertes por el algoritmo de Gordon
1. Generar dos nmeros primos grandes s y t
2. Elegir un valor entero i
0
3. Encontrar el primer nmero primo de la secuencia {2it + 1} para
i = i
0
, i
0
+ 1, i
0
+ 2, ... y asignarlo a r
4. Calcular p
0
=
_
2s
r2
mod r

s 1
5. Si p
0
es par calcular p
0
= p
0
+ rs
6. Elegir un valor entero j
0
7. Encontrar el primer nmero primo de la secuencia {p
0
+ 2jrs} para
j = j
0
, j
0
+ 1, j
0
+ 2, ... ste es el nmero primo fuerte p buscado.
Ingeniera Tcnica en Informtica de Gestin 16

Vous aimerez peut-être aussi