Gera¸c˜ao de n´umeros aleat´orios
Gera¸c˜
ao de n´
umeros aleat´
orios
Dionathan Nakamura Orientador: Routo Terada
DCC – IME – USP
Gera¸c˜ao de n´umeros aleat´orios
Roteiro
1 Resumo
2 Introdu¸c˜ao
3 Geradores de bits aleat´orios
4 Geradores de bits pseudoaleat´orios
5 Testes estat´ısticos
6 Cryptographically secure PRBG
7 Hardcore bit theory
Gera¸c˜ao de n´umeros aleat´orios Resumo
Roteiro
1 Resumo
2 Introdu¸c˜ao
3 Geradores de bits aleat´orios 4 Geradores de bits pseudoaleat´orios 5 Testes estat´ısticos
6 Cryptographically secure PRBG 7 Hardcore bit theory
Gera¸c˜ao de n´umeros aleat´orios Resumo
Resumo
introdu¸c˜ao e defini¸c˜oes;
classifica¸c˜ao dos geradores (bits e n´umeros);
tipos de geradores de bits aleat´orios (hardware, software, inclinado);
exemplos de geradores de bits pseudoaleat´orios (prop´osito de simula¸c˜ao);
testes estat´ısticos;
geradores de bits pseudoaleat´orios criptograficamente seguros; conex˜ao com a teoria do hardcore bit;
Gera¸c˜ao de n´umeros aleat´orios Introdu¸c˜ao
Roteiro
1 Resumo
2 Introdu¸c˜ao
3 Geradores de bits aleat´orios 4 Geradores de bits pseudoaleat´orios 5 Testes estat´ısticos
6 Cryptographically secure PRBG 7 Hardcore bit theory
Gera¸c˜ao de n´umeros aleat´orios Introdu¸c˜ao
Motiva¸c˜
ao
Nessa parte referente `a revis˜ao dos fundamentos de gera¸c˜ao de n´umeros aleat´orios ´e utilizado o livro [1]: “Handbook of Applied Cryptography” de Menezes, Vanstone e Oorschot de 1996.
gera¸c˜ao de chaves;
NONCEs (number used once); simula¸c˜oes estat´ısticas;
loterias (slot machines);
Gera¸c˜ao de n´umeros aleat´orios Introdu¸c˜ao
Exemplo — gera¸c˜
ao de chaves
Vamos ver dois m´etodos para gerar uma chave para o DES: ao escolher uma chave k de 56 bits temos um espa¸co amostral de 256;
essa chave ´e obtida a partir de um gerador verdadeiramente aleat´orio;
Gera¸c˜ao de n´umeros aleat´orios Introdu¸c˜ao
Exemplo — gera¸c˜
ao de chaves
Vamos ver um outro cen´ario:
primeiramente ´e escolhido um segredo s de 16 bits; usamos para isso um gerador verdadeiramente aleat´orio; em seguida, expandimos s em uma chave k de 56 bits; essa expans˜ao ´e feita usando uma complicada fun¸c˜ao f, todavia conhecida;
assim, o advers´ario teria em m´edia apenas que testar 215 poss´ıveis k;
Gera¸c˜ao de n´umeros aleat´orios Introdu¸c˜ao
Classifica¸c˜
ao
Um gerador de bits aleat´orio (RBG – random bit generator ) ´e um dispositivo ou algoritmo que produz uma seq¨uˆencia de d´ıgitos bin´arios estatisticamente independentes e uniformes (unbiased ).
Um RBG pode ser usado para gerar n´umeros aleat´orios (uniformemente distribu´ıdos). Por exemplo:
obter um inteiro aleat´orio no intervalo [0, N];
geramos com um RBG uma seq¨uˆencia de tamanho blg Nc + 1; convertemos essa seq¨uˆencia em um inteiro;
Gera¸c˜ao de n´umeros aleat´orios Introdu¸c˜ao
Classifica¸c˜
ao
Fontes de bits verdadeiramente aleat´orios tˆem como origem meios f´ısicos, na pr´atica. Que na maioria s˜ao lentos e ineficientes. Ainda, pode ser impratic´avel armazenar com seguran¸ca tais fontes de dados e transmitir uma grande quantidade de bits.
Uma maneira de amenizar o problema seria utilizar um gerador de bits pseudoaleat´orio (PRBG – pseudorandom bit generator ):
´
e um algoritmo determin´ıstico (para uma mesma semente, sempre gera a mesma seq¨uˆencia de bits);
dada uma seq¨uˆencia bin´aria de entrada (semente) de tamanho k,
Gera¸c˜ao de n´umeros aleat´orios Introdu¸c˜ao
Estudo sobre o PRBG
a sa´ıda de um PRBG n˜ao ´e aleat´oria;
de todas poss´ıveis seq¨uˆencias bin´arias, apenas uma fra¸c˜ao delas 22kl poder´a ser gerada;
a inten¸c˜ao ´e conseguir expandir uma pequena seq¨uˆencia de bits verdadeiramente aleat´oria para uma seq¨uˆencia maior; um advers´ario n˜ao poder´a eficientemente disting¨uir a sa´ıda de uma seq¨uˆencia verdadeiramente aleat´oria;
um restri¸c˜ao m´ınima de seguran¸ca ´e que a semente tenha um tamanho k suficientemente grande,
desse modo, para um advers´ario computar os 2k poss´ıveis elementos ´e impratic´avel;
Gera¸c˜ao de n´umeros aleat´orios Introdu¸c˜ao
Exemplo — linear congruential generator
gera uma seq¨uˆencia de n´umeros pseudoaleat´orios x1, x2, x3, ...; xn= axn−1+ b mod m, n ≥ 1;
sendo x0 a semente;
este gerador passa em testes estat´ısticos;
pode ser utilizado para simula¸c˜oes probabil´ısticas;
Gera¸c˜ao de n´umeros aleat´orios Introdu¸c˜ao
Defini¸c˜
oes
Um PRBG ´e dito passar em um teste estat´ıstico, se nenhum algoritmo de tempo polinomial ´e capaz de disting¨uir a sa´ıda do gerador de uma seq¨uˆencia verdadeiramente aleat´oria de mesmo tamanho; acertando com uma probabilidade significativamente maior que 12.
Gera¸c˜ao de n´umeros aleat´orios Introdu¸c˜ao
Defini¸c˜
oes
universality of next-bit test: um PRBG passa em um next-bit test se e somente se, ele passa em todos os testes estat´ısticos de tempo polinomial.
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits aleat´orios
Roteiro
1 Resumo 2 Introdu¸c˜ao
3 Geradores de bits aleat´orios
4 Geradores de bits pseudoaleat´orios 5 Testes estat´ısticos
6 Cryptographically secure PRBG 7 Hardcore bit theory
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits aleat´orios
Baseados em hardware
tempo decorrido entre a emiss˜ao de part´ıculas durante um decl´ınio radioativo,
ru´ıdo t´ermico de um diodo semicondutor ou um resistor, a instabilidade de freq¨uˆencia de um ocilador livre, a quantidade de carga em um capacitor dentro de um intervalo fixo,
a turbulˆencia dentro de um d´ısco r´ıgido selado, a entrada de som de um microfone,
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits aleat´orios
Contrapartida
tais fontes s˜ao sucept´ıveis a fatores externos e tamb´em, mal funcionamento,
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits aleat´orios
Baseados em software
a hora do sistema;
o tempo decorrido entre toques de teclado ou movimentos do mouse;
conte´udo dos buffers de entrada e sa´ıda; entrada do usu´ario;
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits aleat´orios
Contrapartida
o comportamento de tais processos podem variar conforme a plataforma;
algumas fontes podem dar a um advers´ario uma boa id´eia do estado do computador,
ele poderia adivinhar a hora do sistema com um alto grau de acur´acia;
a constru¸c˜ao do gerador deveria utilizar tantas boas fontes quanto dispon´ıveis,
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits aleat´orios
Fontes de erros
H´a duas fontes de erros bastante comuns em geradores: a sa´ıda pode estar inclinada (biased ),
ou seja, a probabilidade de emitir um 1 n˜ao ´e igual a 12; a sa´ıda pode estar correlacionada,
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits aleat´orios
De-skewing
Vamos ver um m´etodo para endireitar (de-skewing) uma fonte defeituosa (inclinada apenas):
suponha Pr (1) = p e Pr (0) = 1 − p; sendo p desconhecido, mas 0 < p < 1; a sa´ıda do gerador ´e agrupada aos pares; o par “10” ´e transformado em 1;
o par “01” ´e transformado em 0; o par “11” ´e descartado;
o par “00” ´e descartado.
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits pseudoaleat´orios
Roteiro
1 Resumo 2 Introdu¸c˜ao
3 Geradores de bits aleat´orios
4 Geradores de bits pseudoaleat´orios
5 Testes estat´ısticos
6 Cryptographically secure PRBG 7 Hardcore bit theory
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits pseudoaleat´orios
Defini¸c˜
oes
Uma one-way function f ´e uma fun¸c˜ao que pode calcular eficientemente f (x ). Por outro lado, dado y ∈ Im(f ) n˜ao ´e f´acil calcular x de modo que f (x ) = y .
Uma one-way function f pode ser utilizada para gerar seq¨uˆencias de bits aleat´orios. Usando-se a semente s, aplica-se os valores s, s + 1, s + 2, ... em f, a sa´ıda ´e f (s), f (s + 1), f (s + 2), ....
Vamos ver dois PRBG padronizados ad-hoc que utilizam o SHA1 e o DES como f.
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits pseudoaleat´orios
Ansi X9.17
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits pseudoaleat´orios
FIPS 186
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits pseudoaleat´orios
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits pseudoaleat´orios
Gera¸c˜ao de n´umeros aleat´orios Geradores de bits pseudoaleat´orios
Gera¸c˜ao de n´umeros aleat´orios Testes estat´ısticos
Roteiro
1 Resumo 2 Introdu¸c˜ao
3 Geradores de bits aleat´orios 4 Geradores de bits pseudoaleat´orios
5 Testes estat´ısticos
6 Cryptographically secure PRBG 7 Hardcore bit theory
Gera¸c˜ao de n´umeros aleat´orios Testes estat´ısticos
Caracter´ısticas
Apresentamos cincos testes estat´ısticos b´asicos, eles verificam se um PRBG gera uma seq¨uˆencia que apresenta cinco caracter´ısticas que se espera encontrar em uma seq¨uˆencia verdadeiramente aleat´oria.
Gera¸c˜ao de n´umeros aleat´orios Testes estat´ısticos
Frequency test (monobit test)
O prosp´osito desse teste ´e verificar se o n´umeros de 0s e 1s s˜ao aproximadamente os mesmos. Seja n0 e n1 os n´umeros de 0s e 1s respectivamente:
X1 = (n0− n1) 2 n
Gera¸c˜ao de n´umeros aleat´orios Testes estat´ısticos
Serial test (two-bit test)
Gera¸c˜ao de n´umeros aleat´orios Testes estat´ısticos
Poker test
Seja m um inteiro positivo tal que bmnc ≥ 5.2m e k = bn mc. Divide a seq¨uˆencia (s) em (k) partes disjuntas de tamanho (m). O teste verifica se seq¨uˆencias de tamanho (m) aparecem o mesmo n´umero de vezes.
Gera¸c˜ao de n´umeros aleat´orios Testes estat´ısticos
Runs test
run: uma seq¨uˆencia de 0s (ou 1s) adjacentes; gap: uma run de 0s;
block: uma run de 1s.
O prosp´osito do testes ´e verificar se o n´umero de runs ´e o esperado de uma seq¨uˆencia aleat´oria. O n´umero esperado de gaps (ou blocks) ´e:
Gera¸c˜ao de n´umeros aleat´orios Testes estat´ısticos
Autocorrelation test
Seja d um inteiro fixado tal que 1 ≤ d ≤ bn2c. O objetivo ´e checar as correla¸c˜oes entre a seq¨uˆencia s e vers˜oes deslocadas (n˜ao c´ıclicas) dela. Para isso calcula:
A(d ) = n−d −1
X
i =0
Gera¸c˜ao de n´umeros aleat´orios Testes estat´ısticos
FIPS 140-1 statistical tests for randomness
Gera¸c˜ao de n´umeros aleat´orios Testes estat´ısticos
Maurer’s universal statistical test
uma seq¨uˆencia verdadeiramente aleat´oria n˜ao deveria ser pass´ıvel de compress˜ao;
esse teste verifica o n´ıvel de compressibilidade da seq¨uˆencia gerada;
ele n˜ao comprime efetivamente a seq¨uˆencia, mas faz um c´alculo relacionado com o n´ıvel de compressibilidade; isso torna o teste bastante r´apido;
a universalidade do teste se baseia no fato de conseguir capturar as falhas obtidas nos outros testes;
Gera¸c˜ao de n´umeros aleat´orios Cryptographically secure PRBG
Roteiro
1 Resumo 2 Introdu¸c˜ao
3 Geradores de bits aleat´orios 4 Geradores de bits pseudoaleat´orios 5 Testes estat´ısticos
6 Cryptographically secure PRBG
Gera¸c˜ao de n´umeros aleat´orios Cryptographically secure PRBG
Gera¸c˜ao de n´umeros aleat´orios Cryptographically secure PRBG
Eficiˆ
encia do RSA PRNG
assume a intratabilidade do problema do RSA; o valor de e presisa ser pequeno para gerar poucas multiplica¸c˜oes modulares;
para aumentar a eficiˆencia, no passo 3.2, podem ser extra´ıdos c.lg lg n bits
Gera¸c˜ao de n´umeros aleat´orios Cryptographically secure PRBG
Gera¸c˜ao de n´umeros aleat´orios Cryptographically secure PRBG
Seguran¸ca do Micali-Schnorr PRNG
basta ter r de um tamanho que n˜ao seja poss´ıvel tentar todas possibildades;
suposi¸c˜ao matem´atica: a distribui¸c˜ao de xemod n para seq¨uˆencias de x de r-bits ´e indisting¨u´ıvel de uma distribui¸c˜ao uniforme;
Gera¸c˜ao de n´umeros aleat´orios Cryptographically secure PRBG
Gera¸c˜ao de n´umeros aleat´orios Cryptographically secure PRBG
Eficiˆ
encia do Blum-Blum-Shub
assume a intratabilidade do problema da fatora¸c˜ao em primos; o valor de e j´a ´e pequeno;
para aumentar a eficiˆencia, no passo 3.2, podem ser extra´ıdos c.lg lg n bits
Gera¸c˜ao de n´umeros aleat´orios Hardcore bit theory
Roteiro
1 Resumo 2 Introdu¸c˜ao
3 Geradores de bits aleat´orios 4 Geradores de bits pseudoaleat´orios 5 Testes estat´ısticos
6 Cryptographically secure PRBG
7 Hardcore bit theory
Gera¸c˜ao de n´umeros aleat´orios Hardcore bit theory
Estudos sobre a seguran¸ca dos bits
Shafi Goldwasser and Silvio Micali and Po Tong. Why and How to Establish a Private Code on a Public Network. 1982. [2]
computar a paridade da mensagem (LSB) ´e equivalente a inverter o RSA;
M. Ben-Or and B. Chor and A. Shamir. On the Cryptographic Security of Single RSA Bits. 1983. [3]
n˜ao ´e poss´ıvel predizer o LSB da mensagem no RSA com vantagem maior que 75%;
Gera¸c˜ao de n´umeros aleat´orios Hardcore bit theory
Estudos sobre a seguran¸ca dos bits
Werner Alexi and Benny Chor and Oded Goldreich and Claus P. Schnorr. RSA and Rabin Functions: Certain Parts Are as Hard as the Whole. 1988. [4]
o LSB da mensagem do RSA ´e imprevis´ıvel; isto ´e, o LSB ´e 12 +poly (n)1 -seguro;
os lg n bits menos significativos s˜ao seguros.
Dan Boneh and Ramarathnam Venkatesan. Hardness of
computing the most significant bits of secret keys in Diffie-Hellman and related schemes. 1996. [5]
os √lg p bits mais significativos (MSBs) no problema do logaritmo discreto s˜ao seguros;
Gera¸c˜ao de n´umeros aleat´orios Hardcore bit theory
Estudos sobre a seguran¸ca dos bits
Dan Boneh and Igor Shparlinski. On the Unpredictability of Bits of the Elliptic Curve Diffie–Hellman Scheme. 2001. [6]
prova que o LSB da abscissa do ponto combinado ´e imprevis´ıvel e seguro;
Dimitar Jetchev and Ramarathnam Venkatesan. Bits Security of the Elliptic Curve Diffie-Hellman Secret Keys. 2008. [7]
Gera¸c˜ao de n´umeros aleat´orios Hardcore bit theory
Trabalhos recentes
Chevalier, C´eline and Fouque, Pierre-Alain and Pointcheval, David and Zimmer, S´ebastien. Optimal Randomness Extraction from a Diffie-Hellman Element. 2009. [8]
apresenta um m´etodo para extrair aleatoridade de uma fonte de entropia;
trabalhos anteriores conseguiam extrair 82 bits de uma curva de 200 bits;
nesse artigo, os autores extraem 102 bits com a mesma distˆancia estat´ıstica;
fazem uma otimiza¸c˜ao no NIST SP 800-90 elliptic curve Dual Random Bit Generator (DRBG);
Gera¸c˜ao de n´umeros aleat´orios Hardcore bit theory
Trabalhos recentes
Roh, Dongyoung and Hahn, Sang Geun. On the bit security of the weak Diffie-Hellman problem. 2010. [9]
expandem resultados anteriores de Shparlinski;
Gera¸c˜ao de n´umeros aleat´orios Referˆencias
Roteiro
1 Resumo 2 Introdu¸c˜ao
3 Geradores de bits aleat´orios 4 Geradores de bits pseudoaleat´orios 5 Testes estat´ısticos
6 Cryptographically secure PRBG 7 Hardcore bit theory
Gera¸c˜ao de n´umeros aleat´orios Referˆencias
[1] Alfred J. Menezes, Scott A. Vanstone, and Paul C. Van Oorschot.
Handbook of Applied Cryptography.
CRC Press, Inc., Boca Raton, FL, USA, 1st edition, 1996. [2] Shafi Goldwasser, Silvio Micali, and Po Tong.
Why and how to establish a private code on a public network (extended abstract).
In FOCS, pages 134–144, Chicago, Illinois, November 1982. IEEE.
[3] M. Ben-Or, B. Chor, and A. Shamir.
On the cryptographic security of single RSA bits.
Gera¸c˜ao de n´umeros aleat´orios Referˆencias
RSA and Rabin functions: Certain parts are as hard as the whole.
SIAM Journal on Computing, 17(2):194–209, April 1988. [5] Dan Boneh and Ramarathnam Venkatesan.
Hardness of computing the most significant bits of secret keys in Diffie-Hellman and related schemes.
In Neal Koblitz, editor, Advances in Cryptology – CRYPTO ’ 96, volume 1109 of Lecture Notes in Computer Science, pages 129–142. International Association for Cryptologic Research, Springer-Verlag, Berlin Germany, 1996.
[6] Dan Boneh and Igor Shparlinski.
On the unpredictability of bits of the elliptic curve Diffie–Hellman scheme.
Gera¸c˜ao de n´umeros aleat´orios Referˆencias
Bits security of the elliptic curve Diffie-Hellman secret keys.
In David Wagner, editor, CRYPTO 2008, volume 5157 of Lecture Notes in Computer Science, pages 75–92. Springer, 2008.
[8] C´eline Chevalier, Pierre-Alain Fouque, David Pointcheval, and
S´ebastien Zimmer.
Optimal randomness extraction from a diffie-hellman element.
In Proceedings of the 28th Annual International Conference on Advances in Cryptology: the Theory and Applications of Cryptographic Techniques, EUROCRYPT ’09, pages 572–589, Berlin, Heidelberg, 2009. Springer-Verlag.
[9] Dongyoung Roh and Sang Geun Hahn.
On the bit security of the weak diffie-hellman problem.