Gândurile mele sunt prea lungi pentru a comenta, așa că le voi încheia ca răspuns...
Există unele probleme serioase cu celelalte două răspunsuri, în măsura în care unii dintre noi au interpretat greșit ce este un test de aleatorie. Ca puncte: -
1.
„Neîncredere în orice algoritm cripto care iese din NIST”. Nu există algoritmi generați de NIST în FIPS. Cu siguranță nimic din complexitatea Dual_EC_DRBG. Runs și teste de poker nu sunt algoritmi proprietari ai Departamentului de Comerț al SUA (NIST). Sunt caracteristici matematice ale unei distribuții uniform aleatoare. Dacă presupun că numărul așteptat de unități ar trebui să fie de ~50%, asta mă face un subversiv? Nici extinderea mediei de 0,5 cu $n$ abateri standard. $\mathcal{N}(\mu, \sigma^2)$ este forma standardizată pentru acea distribuție și nu m-aș aștepta la ceva mai puțin incomplet. Verificarea blocurilor de ieșire repetate (testul generator de numere aleatoare continue) nu este o subversiune, este de bun simț.
2.
Pot oferi acest test FIPS ca dovadă:-
$cat /dev/urandom | rngtest
rngtest 5
Copyright (c) 2004 de Henrique de Moraes Holschuh
Acesta este software gratuit; consultați sursa pentru condițiile de copiere. NU există garanție; nici măcar pentru VANTABILITATE sau ADEPTEREA PENTRU UN ANUMIT SCOP.
rngtest: pornește teste FIPS...
rngtest: biți primiți de la intrare: 8310580032
rngtest: FIPS 140-2 succese: 415198
rngtest: Eșecuri FIPS 140-2: 331
Rngtest: FIPS 140-2(2001-10-10) Monobit: 41
Rngtest: FIPS 140-2(2001-10-10) Poker: 53
Rngtest: FIPS 140-2 (2001-10-10) Rulări: 123
rngtest: FIPS 140-2(2001-10-10) Pe termen lung: 115
rngtest: FIPS 140-2(2001-10-10) Executare continuă: 0
rngtest: viteza canalului de intrare: (min=10.703; avg=1976.720; max=19073.486) Mibits/s
rngtest: viteza testelor FIPS: (min=75.092; avg=199.723; max=209.599) Mibits/s
rngtest: Timp de rulare a programului: 43724402 microsecunde
Rata de eșec este p=0,0008. Este foarte comparabil cu pragul p=0,001 din suita de teste SP800 STS și cu cel mai greu:-
NOTĂ BINE: Evaluarea (evaluările) pentru rngs poate fi, de fapt, completă
incorectă sau înșelătoare. În special, ar trebui să apară valori p „slabe”.
un test la o sută, iar valorile p „Eșuate” ar trebui să apară la un test în
o mie -- asta înseamnă p. Folosește-le pe propriul tău risc! Fii avertizat!
Deci nu aparent controversat.
3.
„Nu este specificat că aceste teste ar trebui să fie efectuate pe sursa de entropie necondiționată”. Desigur că nu. Este corect. Nimeni nu are caracteristici statistice pentru distribuțiile sursei de entropie necondiționate. Ele vin în toate formele și locațiile. Unele dintre ele nu au nici măcar nume matematice (probă dublă de log normal, cadă MOD $x$ e.t.c.) Putem rula numai teste statistice standardizate pe rezultatul final condiționat.
4.
„Este imposibil să detectezi un generator cu ușă în spate competent doar din ieșirea lui”. Din nou, desigur. Nu aceasta este intenția de ex. Testare de pornire FIPS. Ai nevoie de programatori și criptografi pentru asta. FIPS automatizează pur și simplu testarea aleatoriei și stabilește linii directoare pentru programarea de securitate de bază, cum ar fi fără șir de caractere literal pentru control și cod relocabil. Toate foarte normale.
Prin urmare, FIPS 140 nu este chiar atât de controversat. A spune acest lucru este echivalent cu a spune că NIST a făcut ușă în spate distribuția Normală, sau că dieharder este inutil. FIPS nu este grozav la câteva lucruri. Și testarea blocurilor de 20.000 de biți se potrivește perfect la capătul de jos al scalei pentru testarea aleatoriei, chiar mai jos ent
(500.000 de biți).