Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
para criptografa
Juan Alfredo Salas Santillana
Universidad Catolica San Pablo
juan.salas.santillana@ucsp.edu.pe
20 de Junio de 2014
Resumen
This paper review the interest of using strong primes in crypto-
graphy.
To generate eciently prime numbers, I need of an ecient random
generator and a primality test.
In the second part, I compare some algorithms to generate strong pri-
mes.
1. Introducci on
Los sistemas de criptograa como RSA necesitan de la generacion de
n umeros primos grandes, por lo cual se necesitan metodos efectivos y e-
cientes para la generacion de estos.
Dichos n umeros son la base de estos sistemas, deben cumplir ciertas
caracteristicas para que el sistema sea mas seguro. Los n umeros deben ser
generados de la manera m as aleatoria posible, ser de gran cantidad de bits
y ser primos fuertes.
2. Que es un n umero primo fuerte
En esta seccion deniremos que es un primo fuerte, por lo cual antes
necesitamos denir |Q| como el tama no en bits de Q.
Un n umero primo fuerte es aquel que cumple las siguientes caractersticas
[7]:
1
|P| debe ser grande (Actualmente se propone 2048 bits o mas).
El mayor factor de P 1, llamado P
| sea grande.
El mayor factor de P
1, llamado P
| sea
grande.
El mayor factor de P + 1, llamado P
+
debe cumplir que |P
+
| sea
grande.
Estas deniciones pueden variar en la diversa literatura, segun el autor.
3. Generar primos rapidamente
Debido a que los algoritmos de generacion de n umeros primos fuertes
hacen uso a su vez de otros generadores de primos, es necesario implementar
un algoritmo para esta tarea.
3.1. Encontrar primos
Debido a que para saber si un n umero es primo de manera determinista
es necesario probar la divisibilidad del numero N con todos los primos me-
nores o iguales a
= A
+ 1
Para alg un entero A
+ 1
A
.
4.2. Algoritmo de Williams/Schmid
En 1979, Williams y Schmid propusieron el siguiente algoritmo, es efec-
tivo y altamente recomendado para generar primos fuertes.
4.2.1. Algoritmo
1. Encontrar dos primos P
y P
+
del tama no de bits elegido.
2. Calcular R = (P
)
1
mod P
+
Por tanto 0 < r < p
+
, La inversa de P
en modulo P
+
puede ser
calculada mediante el algoritmo extendido de Euclides.
3. Encontrar el menor A tal que
P
= 2AP
P
+
+ 2RP
+ 1, y
P = 4AP
P
+
+ 4RP
+ 3
O encontrado P
P = 2P
+ 1
Hasta que sean primos.
4.3. Algoritmo de Gordon
En 1984, John Gordon [4] y [3] propuso un nuevo algoritmo para generar
primos fuertes, este es un poco mas eciente que el de Williams/Schmid,
debido a que no necesita calcular un P
fuerte.
4.3.1. Algoritmo
1. Encontrar dos primos P
y P
+
del tama no de bits elegido.
2. Calcular el menor primo de la forma P
= A
4
3. Dejar
P
0
= ((P
+
)
P
1
(P
)
P
+
1
)(P
P
+
)
Notar que esto por el teorema de Fermat implicaria que P
0
1
(mod P
) y P
0
1 (mod p
+
)
4. Calcular el menor primo P de la siguiente manera
P = P
0
+ AP
P
+
para algun entero A.
5. Factorizacion
Para poder validar la seguridad que nos ofrecen los generadores de primos
fuertes con respecto al original, basta con regresar al concepto de numero
primo. Un n umero primo es un entero mayor que 1 que tiene unicamente
dos divisores distintos: el mismo y el 1 [2]. Por tanto como los algoritmos
anteriores usan como semilla un primo P