segunda-feira, 15 de fevereiro de 2010

Criptografia : Números Aleatórios

Criptografia : Números Aleatórios


Os números aleatórios desempenham um papel importante na criptografia, principalmente em diversas aplicações em segurança da rede. Diversos algoritmos voltados a segurança de rede baseados na criptografia utilizam números aleatórios.

Números aleatórios uniforme (0,1) são gerados por dispositivos eletrônicos (computadores), geração esta baseada em operações aritméticas. Estes números não são verdadeiramente aleatórios, já que, os mesmos podem ser gerados repetidas vezes. Assim, é mais conveniente denominá-los de números pseudo-aleatórios.

O método mais popular para gerar números aleatórios (0,1) é o congruente multiplicativo, o qual descrevemos a seguir:

Considere a expressão recorrente pn = (apn-1+b) mod m para m = 1,2,3...

Onde a, b, m e o valor inicial p0 são parâmetros. Um número pseudo-aleatório An pode ser gerado de acordo com este método fazendo

An = pn/m ; n = 1,2,3…

O valor inicial p0 é conhecido como semente do método gerador. Note que este processo é de fácil programação pois trata-se de um algoritmo recorrente.

Como ilustração vamos gerar cinco números pseudo-aleatórios, baseado neste método, usando a=8,b=5,m=17 e a semente p0 = 11. Temos pn = (8pn-1+5) mod 17 . Assim,
P1 = (8p0+5) mod 17 = 93 mod 17 = 8

P2 = (8p1+5) mod 17 = 69 mod 17 = 1

P3= (8p2+5) mod 17 = 13 mod 17 = 13

P4= (8p3 +5) mod 17 = 109 mod 17 = 7

P5= (8p4 +5) mod 17 = 61 mod 17 = 10

Prosseguindo, obtemos os números pseudo-aleatórios :

A1 = p1/17 = 8 / 17 = 0,4706

A2= p2/17 = 1/17 = 0,0588

A3= p3/17 = 13/ 17 = 0,7647

A4= p4/17 = 7 / 17 = 0,4118

A5= p5/17 = 10 / 17 = 0,5882

Dependendo da conveniência estes numeros podem ser normalizados para o padrão 10 000 escrevendo a sequência 4706; 588; 7647; 4118; 5882.

A qualidade de uma sequência de números obtida é medida pela sua aleatoriedade (distribuição uniforme e independência), e imprevisibilidade. A escolha dos parâmetros a, b,m e o gerador p0 é crítica na determinação de uma boa sequência.Variações este método para gerar números aleatórios, são encontrados em Laww, A. e Kelton, W.; Simulation Modeling & Analysis; 3a edição McGraw-Hill, New York.

Um comentário: