Sunteți pe pagina 1din 24

Teste statistice

Testarea PRNG
Cuprins
„ Obiective
„ Baterii de teste
„ Abordări de evaluare
„ Interpretarea rezultatelor

Securitatea comunicaţiilor şi a informaţiei 2


Testele statistice
„ În securitatea informaţiei rezultatele
măsurabile sunt obiectivele principale
„ Necesitatea determinării gradului de
aleatorism a secvenţelor binare generate cu
ajutorul generatoarelor
„ Soluţii de generare multiple – alegere dificilă
„ Aprecieri măsurabile asupra rezultatelor
obţinute

Securitatea comunicaţiilor şi a informaţiei 3


Baterii de teste
„ Donald Knuth (Stanford University) – The Art Of
Computer Programming, Vol. 2, Seminumerical
Algorithms
„ George Marsaglia (Florida State University) –
DIEHARD
„ Helen Gustafson (Queensland University of
Technology) – Crypt-XS
„ Alfred Menezes – Handbook of Applied
Cryptography
„ Andrew Rukhin – NIST Statistical Test Suite

Securitatea comunicaţiilor şi a informaţiei 4


Bateria de teste – Donald Knuth
„ Frequency
„ Serial
„ Gap
„ Poker
„ Coupon collector's
„ Permutation
„ Run
„ Maximum-of-t
„ Collision
„ Birthday spacings
„ Serial correlation
Securitatea comunicaţiilor şi a informaţiei 5
Bateria de teste – DIEHARD
„ 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
„ Minimum distance
„ Random spheres
„ Squeeze
„ Overlapping
„ Sums
„ Runs
„ Craps

Securitatea comunicaţiilor şi a informaţiei 6


Bateria de teste – Crypt-XS
„ Frequency
„ Binary derivative
„ Change point
„ Runs
„ Sequence
„ Complexity
„ Linear complexity

Securitatea comunicaţiilor şi a informaţiei 7


Bateria de teste
Handbook of Applied Cryptography
„ Testul de frecvenţă
„ Testul serial
„ Testul Poker
„ Testul seriilor
„ Testul autocorelaţiei

Securitatea comunicaţiilor şi a informaţiei 8


Testul de frecvenţă

„ Test monobit
„ Numărul simbolurilor binare să fie aproximativ egal
( n0 − n1 )
2

X= , n = n0 + n1
n
„ Comparăm valoarea obţinută cu distribuţia Hip
„ Dacă valoarea obţinută este mai mică decât cea aflată
în tabel, atunci secvenţa trece testul
„ Secvenţa este respinsă şi dacă X=0, deoarece fiind
prea bună poate fi suspectă

Securitatea comunicaţiilor şi a informaţiei 9


Testul de frecvenţă – exemplu
„ n0 = 84, n1 = 76, X=0.4
„ Pentru α = 0.05, pragul este 3.8415
„ Secvenţa a trecut testul

( n0 − n1 )
2

X = , n = n0 + n1
n

Securitatea comunicaţiilor şi a informaţiei 10


Testul serial
„ Folosit pentru a asigura că probabilităţile de tranziţie
sunt egale sau foarte apropiate
„ Demonstrează că fiecare bit este independent de
predecesorul său
„ nxy – numărul de apariţie a secvenţei xy
„ Ideal nxy=(n-1)/4 ⎧n + n = n sau n − 1
00 01 0 0
„ Se calculează ⎨
⎩ n10 + n11 = n1 sau n1 − 1

X=
4
n −1
( n 2
00 + n 2
01 + n 2
10 + n11 )
2

n
(
2 2
n0 + n1 ) + 1, n = n0 + n1
2

„ Această valoare are o distribuţie Hip cu două grade de


libertate

Securitatea comunicaţiilor şi a informaţiei 11


Testul serial
„ nxy – numărul de apariţie a secvenţei xy
„ Ideal nxy=(n-1)/4

⎧n00 + n01 = n0 sau n0 − 1



⎩ n10 + n11 = n1 sau n1 − 1

X=
4
n −1
( n 2
00 + n 2
01 + n 2
10 + n11 )
2

n
(
2 2
n0 + n1 ) + 1, n = n0 + n1
2

Securitatea comunicaţiilor şi a informaţiei 12


Testul Poker
„ m – număr întreg pozitiv ⎡n⎤
⎢⎣ m ⎥⎦ ≥ 5 ⋅ 2 m
„ n – lungimea secvenţei binare testate
„ Se împarte secvenţa
‰ k părţi care nu se suprapun
‰ lungime m
‰ ni – numărul de apariţii a secvenţei i de lungime m 1 ≤ i ≤ 2m
„ Testul Poker va determina dacă secvenţele de lungime m apar
de aproximativ acelaşi număr de ori în secvenţa testată cum ar fi
de aşteptat în cazul unei secvenţe aleatoare
„ Mărimea statistică evaluată în cazul acestui test este definită de
relaţia: m
⎛2
m

2
X= ⎜∑ i ⎟− k
n 2

k ⎝ i =1 ⎠
„ Va urma aproximativ o distribuţie Hip cu 2m-1 grade de libertate

Securitatea comunicaţiilor şi a informaţiei 13


Testul Poker
„ Testul Poker va determina dacă secvenţele de
lungime m apar de aproximativ acelaşi număr de ori în
secvenţa testată cum ar fi de aşteptat în cazul unei
secvenţe aleatoare
„ Va urma aproximativ o distribuţie Hip cu 2m-1 grade de
libertate

2 ⎛ m
⎞ 2m
X= ⎜ ∑ ni ⎟ − k
2

k ⎝ i =1 ⎠

Securitatea comunicaţiilor şi a informaţiei 14


Testul Poker – exemplu
„ O variantă de aplicare a acestui test ar fi următoarea
„ se împarte secvenţa în blocuri de m biţi (de exemplu m = 4)
„ se transformă în baza 10 numărul scris cu patru biţi obţinându-se numerele
de la 0 la 15
„ şirul de numere astfel obţinut se împarte la rândul său în grupe de câte 5 a
căror structură poate fi
‰ cinci numere identice
‰ patru plus unu
‰ trei plus două
‰ două plus două, plus unu
‰ trei plus unu, plus unu
‰ două plus unu, plus unu, plus unu
‰ cinci numere diferite
„ se determină frecvenţele de apariţie ale acestor grupuri şi se compară cu
valorile calculate pentru un şir de numere aleatoare
„ pe baza unor diferenţe admise se decide dacă secvenţa analizată trece
sau nu testul
Securitatea comunicaţiilor şi a informaţiei 15
Testul Autocorelaţiei

„ Obiectiv – verificarea corelaţiei între secvenţa generată şi o


variantă şiftată a acesteia
n − d −1
A(d ) = ∑ s ⊕s
i =0
i i+d

„ d – şiftarea
⎡n⎤
1≤ d ≤ ⎢ ⎥
⎣2⎦
„ Statistica utilizată în acest caz se defineşte cu relaţia
⎛ n−d ⎞
2⎜ A(d ) − ⎟
X= ⎝ 2 ⎠
n−d
„ Va urma aproximativ o distribuţie normală dacă n − d ≥ 10

Securitatea comunicaţiilor şi a informaţiei 16


Bateria de teste – NIST
„ Testul de Frecvenţă (Monobit) – Frequency
(Monobit) Test
„ Testul de Frecvenţă pe Blocuri – Frequency Test
within a Block
„ Testul de Succesiuni – Run Test
„ Testul pentru cea mai lungă succesiune de 1 pe
blocuri – Test for the Longest Run of Ones in a
Block
„ Testul Serial – Serial Test
„ Testul Sumelor Cumulative – Cumsum Test

Securitatea comunicaţiilor şi a informaţiei 17


Testele NIST
„ Set de teste - algoritmi perfecţionaţi an de an
„ Calculează o valoare – comparată cu un prag
‰ secvenţa acceptată ca având o serie de proprietăţi
aleatoare
„ Fiecare test se bazează pe o anumită proprietate de
aleatorism
„ Nu putem spune dacă secvenţa este într-adevăr
aleatoare sau nu
„ Putem concluziona asupra faptului ca acea secvenţă are
sau nu proprietatea respectivă
„ Există anumite teste, Testul de Frecvenţă (Monobit) care
evaluează o proprietate esenţială a numerelor aleatoare
‰ Fără trecerea acestui test generatorul în cauză nu poate fi
considerat aleator
Securitatea comunicaţiilor şi a informaţiei 18
Testele de aleatorism NIST
„ Calculează pe baza unor proprietăţi de aleatorism şi a
secvenţei de evaluat o valoare care va fi comparată cu
o valoare prag impusă
„ Pe baza acestei comparaţii vom putea interpreta dacă
secvenţa supusă testării are sau nu acea proprietate
de aleatorism
„ Pragul este stabilit are spre exemplu valoarea de 0.01
„ Dacă valoarea calculată este mai mare de acest prag
se poate afirma ca secvenţa deţine acea proprietate
„ Valoarea prag de recomandată de NIST poate fi
modificată în funcţie de aplicaţia care foloseşte
secvenţa testată

Securitatea comunicaţiilor şi a informaţiei 19


Structura generală a testului statistic

„ Fiecare test se bazează pe calcularea unei valori


statistice, care depinde de secvenţa testată
„ Valoarea statistică a testului este folosită pentru a
calcula valoarea P
„ Valoarea P este probabilitatea ca un generator de
numere aleatoare să fi produs o secvenţa mai puţin
aleatoare decât secvenţa care a fost testată

Securitatea comunicaţiilor şi a informaţiei 20


Testul de frecvenţă

1 n−1
Statistica: S n (x0 , x1 , ... , xn−1 ) = ⋅ ∑ (2 ⋅ xi − 1)
n i =0

Pvalue : Pvalue = erfc⎛⎜ S n ⎞⎟


⎝ 2⎠

Regula de decizie: Dacă Pvalue > α atunci acceptă, altfel refuză

Nivelul semnificativ: α∈[0.001 – 0.01]

Securitatea comunicaţiilor şi a informaţiei 21


Implementarea testelor statistice

Securitatea comunicaţiilor şi a informaţiei 22


Implementarea testelor statistice

Securitatea comunicaţiilor şi a informaţiei 23


Concluzii
„ Aleatorismul generatoarelor poate fi evaluat
„ Baterii de teste
„ Interpretarea rezultatelor este probabilistică
„ Un generator este acceptat ca fiind aleator şi
nu garantat
„ Generatorul poate avea caracteristici aleatorii
dar să fie considerat insuficient de bun

Securitatea comunicaţiilor şi a informaţiei 24