Itamaracá CSPRNG Uma nova maneira simples de gerar números pseudoaleatórios Portuguese Version

advertisement
U M A N OVA M A N E I R A S I M P L E S D E
GERAR NÚMEROS PSEUDO-ALEATÓRIOS
I TA M A R AC Á
FRNS = ABS [N - (PN * XRN)]
DH PEREIRA
U N D E R S TA N D I N G
I TA M A R AC Á
• Itamaracá ou simplesmente "Ita" é uma base
matemática nova (para GNPAs), simples, rápida e que
gera uma sequência de "infinitos" números "não
periódicos" dentro de um intervalo [0, 1] levando-se a
cabo uma distribuição uniforme.
• Seu nome é derivado do idioma Tupi Guarani, no qual
significa "Pedra que canta". Neste sentido, uma
referência a algo que seja "aleatório", "inesperado".
C O M O I TA F U N C I O N A
Como todo GNPA (Gerador de Números Pseudo-aleatórios) Ita tem
algumas características distintivas. Abaixo apresenta-se suas condições
iniciais:
• Primeiramente, escolha N, isto é, um valor máximo dentro de um
intervalo entre 0 e N selecionado por um critério escolhido pelo
usuário, onde N ∈ ℕ.
• Neste modelo, há 3 sementes S0, S1 and S2. Para cada uma destas
sementes escolha qualquer número ∈ ℕ pertencentes ao intervalo
entre 0 e N.
C O M O I TA F U N C I O N A
Após ter escolhido de forma arbitrária os valores 3 sementes S0, S1 eS2,
o processo de cálculo é dividido em duas principais etapas muito
simples:
• Pn (n Process) ou Estado Intermediário
• Cálculo Final ou Fórmula Geral
C O M O I TA F U N C I O N A
Pn (n Process) ou Estado Intermediário
Nesta etapa, precisamos levar em consideração os valores absoluto tendo-se as
diferenças entre as 2 sementes que são 'móveis' no tempo, preferivelmente
dizendo, na sequência.
Pn = ABS (S2 – S0)
C O M O I TA F U N C I O N A
Cálculo Final ou Fórmula Geral
Nesta etapa, devemos multiplicar “x” resultado obtido na primeira etapa (em Pn)
por Xrn, isto é, qualquer valor desejado pelo usuário, desde que este valor seja
muito próximo de 2 (ex: 1.97, 1.98, 1.99789...).
FRNS = ABS [N – (Pn * Xrn)]
EXEMPLO PRÁTICO
Vamos assumir que gostaríamos gerar números de 0 a 10.000:
N
10.000
Semente 0
8.777
Semente1
11
Semente 2
8
EXEMPLO PRÁTICO
Podemos gerar o primeiro número usando o estado intermediário (Pn) e então
usamos a formulação geral, como demontrado abaixo:
P1 = ABS (8 – 8,777) = 8,769
FRNS1 = ABS [10,000 - (8,769*1.97) = 7,275
EXEMPLO PRÁTICO
Segundo número:
P2 = ABS (7,275 – 11) = 7,264
FRNS2 = ABS [10,000 - (7,264*1.97) = 4,310
Terceiro número:
P3 = ABS (4,310 – 8) = 4,302
FRNS3 = ABS [10,000 - (4,302*1.97) = 1,525
EXEMPLO PRÁTICO
Então, obtemos os três primeiros números gerados:
7,275 - 4,310 e 1,525...
Os próximos números gerados por esta sequência de agora em diante seguir-se-á
com a mesma lógica.
R E S U LTA D O S D E A L G U N S T E S T E S E
F E R R A M E N TA S E S TAT Í S T I C A S
Comparando resultados entre Ita e TRNG por Random Org considerando 10.000 números gerados
Testes
Ita
TRNG
Teste Qui-Quadrado
11.26
3.65
Números Repetidos / N
3.618
3.763
Média / Desvio Padrão
4,941 / 2,884
4.925 / 2.905
Run Test (Par/Ímpar)
-0.914634
0.004101
Run Test (Mediana)
0.759184
0.603023
Autocorrelação (Média dos
10 primeiros k-lags diferente de 0)
0.000103
0.000980
Entropia de Shannon
3.45327
3.45284
Nota: A metodologia utilizada para avaliar os resultados é exatamente a mesma que a contida na versão publicada.
R E S U LTA D O S D E A L G U N S T E S T E S E
F E R R A M E N TA S E S TAT Í S T I C A S
Histograma pelo modelo Ita
R E S U LTA D O S D E A L G U N S T E S T E S E
F E R R A M E N TA S E S TAT Í S T I C A S
Run Sequence para o modelo Ita
Line Graph for 1,000 numbers generated by Itamaracá
12000
10000
8000
6000
4000
2000
1
19
37
55
73
91
109
127
145
163
181
199
217
235
253
271
289
307
325
343
361
379
397
415
433
451
469
487
505
523
541
559
577
595
613
631
649
667
685
703
721
739
757
775
793
811
829
847
865
883
901
919
937
955
973
991
0
R E S U LTA D O S D E A L G U N S T E S T E S E
F E R R A M E N TA S E S TAT Í S T I C A S
Gráfico de Dispersão para o modelo Ita
Scatter Plot for 1,000 numbers generated by Ita
12000
10000
8000
6000
4000
2000
0
0
200
400
600
Série1
800
1000
1200
ALGUMAS CONSIDERAÇÕES
• O modelo Ita tem demonstrado ser um bom gerador de números aleatórios,
especialmente no critério que avalia independência e uniformidade. Apesar de
ser um estudo recente, há boas perspectivas quanto ao seu custo computacional e
sua aplicabilidade para o campo de estudo na Criptografia. Neste sentido,
podendo-se em breve obter o selo de CSPRNG.
• Outro ponto a ser destacado tratar-se-á do fato de que não fora observado
quaisquer regras com relação a escolha dos valores das sementes, sendo
suficiente apenas escolher de forma arbritrária quaisquer valores dentro do
intervalo de 0 a N ∈ ℕ, seu valor máximo.
ALGUMAS CONSIDERAÇÕES
• Independentemente dos valores iniciais das sementes utilizadas, existe uma forte
tendência para que o algoritmo passe nos testes estatísticos padrões de
uniformidade e independência. No entanto, embora aprovados, alguns valores
destas sementes escolhidos podem fazer com que os resultados de certos testes
sejam "melhores" ou "piores" do que quando se utilizam outras sementes.
ALGUMAS CONSIDERAÇÕES
• O modelo de Ita assim como todos PRNGs também tem algumas limitações identificadas. Como
exemplo, em algum momento, provavelmente após uma grande quantidade de números gerados, a
repetição da mesma sequência de números gerados tende a se repetir. No entanto, isso somente
ocorrerá se e somente se os valores das 3 sementes iniciais (S0, S1 e S2) aparecerem no meio da
sequência gerada exatamente na mesma ordem.
• Apesar dessa limitação, podemos observar que é muito difícil esta sequência de números vir a
se repetir novamente em sua totalidade a medida em que o valor de N aumente se
considerarmos uma distribuição uniforme [0, 1].
Logo, podemos inferir que trata-se de um gerador que gera "infinitos" e "não-periódicos" números
aleatórios.
A geração de números aleatórios é demasiado
importante para vários campos de estudo e aplicações
práticas para o desenvolvimento da Humanidade.
CONCLUSÃO
O presente estudo, apresentou uma nova e simples
proposta de um Gerador de Números Pseudo Aleatórios
(PRNG) denominado "Itamaracá" (Ita em forma
abreviada). O modelo Ita, como todos os algoritmos
PRNG, tem algumas limitações, mas de uma forma geral,
mostrou bons resultados nos testes estatísticos
considerados. Neste sentido, mais um modelo no portfólio
plenamente disponível para uso e, sobretudo, para novos
estudos, especialmente aqueles aplicáveis a um objetivo
específico e a problemas reais.
Download