Está en la página 1de 1

Criptografía – Generadores de Números Pseudoaleatorios 2014

Blum Blum Shub EJEMPLO. Si son considerados 𝑝 = 199, 𝑞 = 151 y 𝑋0 = 317 las restricciones para
obtener una secuencia óptima son satisfechas. Se tomará el bit menos significativo para los
primeros 20 elementos de la serie.
Creado a mediados de la década de 1980 por Lenore Blum, Manuel Blum y Michael Shub, es
un algoritmo basado en congruencias cuadráticas que permite generar una secuencia de 𝑋1 = (317)2 mod 30049 ⇒ 10342
números pseudoaleatorios. 𝑋2 = (10342)2 mod 30049 ⇒ 12573
𝑋3 = (12573)2 mod 30049 ⇒ 22589
El algoritmo es recursivo; es decir, se utiliza el resultado de una iteración para calcular el
𝑋4 = (22589)2 mod 30049 ⇒ 852
siguiente número. La ecuación en congruencias se establece como
𝑋5 = (852)2 mod 30049 ⇒ 4728
𝑋𝑖 = (𝑋𝑖−1 )2 mod 𝑝𝑞 𝑋6 = (4728)2 mod 30049 ⇒ 27577
𝑋7 = (27577)2 mod 30049 ⇒ 10837
Las consideraciones para generar una secuencia óptima y larga son: 𝑋8 = (10837)2 mod 30049 ⇒ 9077
𝑋9 = (9077)2 mod 30049 ⇒ 27620
 𝑝 y 𝑞 son dos números primos muy grandes, tales que 𝑝 = 3 mod 4 y 𝑞 = 3 mod 4; 𝑋10 = (27620)2 mod 30049 ⇒ 10437
esto permite asegurar que cada residuo posee una raíz cuadrada. Además el máximo
𝑋11 = (10437)2 mod 30049 ⇒ 3344
común divisor entre 𝜑(𝑝) = 𝑝 − 1 y 𝜑(𝑞) = 𝑞 − 1 debe ser mínimo.
𝑋12 = (3344)2 𝑚𝑜𝑑 30049 ⇒ 4108
 la semilla 𝑋0 debe ser primo relativo con el producto 𝑝𝑞.
𝑋13 = (4108)2 mod 30049 ⇒ 18175
El algoritmo se utiliza para generar una secuencia binaria pseudoaleatoria, tomando como 𝑋14 = (18175)2 mod 30049 ⇒ 1968
criterios para la elección de los bits los siguientes puntos: 𝑋15 = (1968)2 mod 30049 ⇒ 26752
𝑋16 = (26752)2 mod 30049 ⇒ 22520
 se toma el bit menos significativo de 𝑋𝑖 . 𝑋17 = (22520)2 mod 30049 ⇒ 13427
 se toma el bit más significativo de 𝑋𝑖 ; en este caso es necesario considerar cuántos bits 𝑋18 = (13427)2 mod 30049 ⇒ 20378
representan al número más grande de la secuencia. 𝑋19 = (20378)2 mod 30049 ⇒ 15753
 se toma el bit de paridad de 𝑋𝑖 . 𝑋20 = (15753)2 mod 30049 ⇒ 12367

Este generador es muy eficaz, puesto que cuando se eligen adecuadamente los parámetros Considerando el bit menos significativo la secuencia generada es
de generación la secuencia pseudoaleatoria tendrá período grande, será imprevisible y
probabilísticamente uniforme. La gran desventaja es el alto costo computacional que plantea, 𝑆 = {01100111010010001011}
puesto que existen productos y potencias cuadradas de números muy grandes.

Un aspecto interesante es que cada elemento de una secuencia BBS se puede calcular con
base en la semilla y los números 𝑝 y 𝑞 sin necesidad de depender directamente del elemento
anterior:

2𝑖 mod(𝑝−1)(𝑞−1)
𝑋𝑖 = 𝑋0 mod 𝑝𝑞

1 Ing. Aldo Jiménez Arteaga

También podría gustarte