1 / 8

14 de Dezembro de 2009

Teste Diehard aplicado ao gerador da biblioteca OpenSSL. Instituto Superior Técnico. Segurança em Redes Móveis. Elaborado por: Luís Ricardo Fonseca. 14 de Dezembro de 2009. Indice. A. Objectivos B. Geração de Números ( OpenSSL ) C. Testes Diehard D. Resultados. 2 / 8.

axl
Download Presentation

14 de Dezembro de 2009

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Teste Diehard aplicado ao gerador da biblioteca OpenSSL Instituto Superior Técnico Segurança em Redes Móveis Elaborado por: Luís Ricardo Fonseca 14 de Dezembro de 2009

  2. Indice A. Objectivos B. Geração de Números (OpenSSL) C. Testes Diehard D. Resultados 2 / 8 Teste Diehard aplicado ao gerador da biblioteca OpenSSL

  3. A. Objectivos O Diehard consiste numa bateria de testes estatísticos que permite aferir a qualidade de uma função geradora de números pseudo-aleatórios. A biblioteca OpenSSL disponibiliza um gerador de números pseudo-aleatórios. Esta biblioteca é usada, essencialmente, para manter a privacidade e integridade dos dados de uma aplicação, e da informação trocada entre aplicações. Este trabalho teve como objectivo executar os testes do Diehard sobre um ficheiro binário de números gerados utilizando a biblioteca OpenSSL, de modo a estudar a aleatoriedade da função geradora. 3 / 8 Teste Diehard aplicado ao gerador da biblioteca OpenSSL

  4. B. Geração de Números (OpenSSL) O ficheiro binário de input ao teste Diehard deverá ter no mínimo 10/11MB. Assim, foi gerado um ficheiro de 12MB (Num_Gerados.dh), utilizando o programa seguinte: • #include <stdlib.h> • #include <stdio.h> • #include <string.h> • #include <unistd.h> • #include <sys/types.h> • #include <sys/stat.h> • #include <fcntl.h> • #include <openssl/rand.h> • intmain(intargc, char * argv[]) • { • int i,j=1024; • charstring[j]; • intfich=open(“Num_Gerados.dh",O_WRONLY|O_CREAT|O_APPEND,S_IRUSR|S_IWUSR); • for (i=1;i<=12*1024;i=i+1) • { • RAND_bytes(string,j); • write(fich,string,j); • } • return 0; • } 4 / 8 Teste Diehard aplicado ao gerador da biblioteca OpenSSL

  5. C. Testes Diehard Os testes realizados (Diehard) foram os seguintes: Birthday Spacings Overlapping Permutations Ranks of 31x31 and 32x32 matrices Ranks of 6x8 Matrices Monkey Tests on 20-bit Words Monkey Tests OPSO,OQSO,DNA Count the 1`s in a Stream of Bytes Count the 1`s in Specific Bytes Parking Lot Test Minimum Distance Test Random Spheres Test The Sqeeze Test Overlapping Sums Test Runs Test The Craps Test 5 / 8 Teste Diehard aplicado ao gerador da biblioteca OpenSSL

  6. C. Testes Diehard • O Diehard retorna para cada um dos testes, valores-p que pertencem ao intervalo [0,1]. Caso se obtenha um valor-p <0.025 ou >0.975, o teste falhou. • De qualquer maneira, o criador dos testes, G. Marsaglia, deixa uma nota a referir que pontualmente, mesmo bons geradores, poderão falhar alguns testes. • Os 15 testes mencionados são de 3 tipos distintos: • c2 - Birthday spacing, Overlapping permutations, Rank of matrices (2), count the 1s (2), squeeze, craps; • KS - Minimum distance, random spheres, overlapping sums, runs; • N - Monkey (2), parking lot. 6 / 8 Teste Diehard aplicado ao gerador da biblioteca OpenSSL

  7. D. Resultados Da análise aos resultados obtidos (Resultados.txt) verifica-se que: Legenda: Passou Falhou 7 / 8 Teste Diehard aplicado ao gerador da biblioteca OpenSSL

  8. D. Resultados • O ficheiro utilizado como input do Diehard passou em todos os testes, com excepção do teste 2. Overlapping Permutations, podendo eventualmente existir fragilidades que poderão ser exploradas por um atacante. • Assim, é possível concluir que o OpenSSL é um bom gerador de números pseudo-aleatórios. • Em termos de desempenho de execução, foram obtidas performances excelentes: • Geração do ficheiro de números aleatórios com 12 MB – 20s; • Execução dos testes Diehard – 60s. 8 / 8 Teste Diehard aplicado ao gerador da biblioteca OpenSSL

More Related