Pseudosatunnaisten sekvenssien testaus on joukko menetelmiä tietyn näennäissatunnaisen sekvenssin ja satunnaisen sekvenssin läheisyyden mittaamiseksi . Tällainen mitta on yleensä tasaisen jakauman läsnäolo , suuri jakso, identtisten osamerkkijonojen yhtä suuri esiintymistiheys jne.
Yksi havainnollistavimmista testeistä on testi kunkin merkin esiintymistiheyden tasaiselle jakautumiselle. Olkoon sarja, jonka pituus on n ja mitta m . Tällöin taajuuksien ν i tulee kuulua väliin . Useimmissa testeissä käytetään kuitenkin eri menetelmää - hyväksytään tai hylätään sekvenssin satunnaisuushypoteesi käyttämällä tilastollisia jakaumia.
Tietäen todella satunnaisen sekvenssin todennäköisyysominaisuudet, voidaan niiden avulla testata hypoteesia siitä, kuinka samanlainen luotu sekvenssi on satunnaisen sekvenssin kanssa. Tätä varten jokaiselle testille valitaan sopiva tilasto, jonka arvot lasketaan ihanteelliselle ja generoidulle sekvenssille. Jos näiden arvojen välinen ero ylittää jonkin etukäteen asetetun kriittisen arvon, sekvenssiä pidetään ei-satunnaisena. "Hyvällä" sekvenssillä tällaisen tapahtuman todennäköisyys on erittäin pieni (oletetaan ~0,001 ja merkitään se α:lla). On kuitenkin mahdollista, että "huono" sekvenssi täyttää kriteerin ja sen satunnaisuudesta tehdään johtopäätös (merkitään tällaisen tapahtuman todennäköisyyttä β:lla). Käytännössä sekvenssin pituudet n , α ja β liittyvät toisiinsa, α on annettu ja n valitaan β:n minimoimiseksi.
Määritellään P-arvo todennäköisyydeksi, että ihanteellinen generaattori generoi vähemmän satunnaisen sekvenssin kuin tutkittava. Sitten jos P-arvo on suurempi kuin α, niin tutkittua sekvenssiä pidetään satunnaisena ja päinvastoin.
Lyhyesti, tilastollisen testauksen vaiheet voidaan kuvata taulukon muodossa:
vaiheen numero | Prosessi | Kommentit |
---|---|---|
yksi | Hypoteesin lausunto | Oletetaan, että sarja on satunnainen |
2 | Tutkitun sekvenssin tilastojen laskenta | Bittitason testaus |
3 | P-arvon laskeminen | P-arvo [0; yksi] |
neljä | P-arvon vertaaminen α:han | Aseta α [0,001; 0,01]; jos P-arvo > α, testi on hyväksytty |
Olkoon binäärisekvenssi s annettu . On selvitettävä, läpäiseekö annettu sekvenssi tilastollisen testin vai ei. Tätä varten käytetään useita erilaisia lähestymistapoja:
Tämä lähestymistapa koostuu binäärisekvenssin c(s) tilastollisen arvon laskemisesta ja sen vertaamisesta johonkin kynnysarvoon. Jos tuloksena saatu arvo c(s) on pienempi kuin kynnysarvo, sekvenssi s läpäisee tämän testin.
Kiinteä arvoalueLähestymistapa koostuu myös binäärisekvenssin c(s) tilastollisen arvon laskemisesta, kuten ensimmäisessä tapauksessa. Nyt sanomme kuitenkin, että jos c(s) on jonkin arvoalueen ulkopuolella, sekvenssi s epäonnistuu tässä testissä.
TodennäköisyysarvoKolmas lähestymistapa sen määrittämiseksi, läpäiseekö binäärisekvenssi s tilastollisen testin, ei lasketa vain tilastollista c: tä vaan myös sitä vastaavaa todennäköisyysarvoa p . Yleensä tietty tilasto lasketaan siten, että sen suuret arvot viittaavat sekvenssin s ei-satunnaiseen luonteeseen . Silloin p on todennäköisyys, että c(s) on suurempi tai yhtä suuri kuin c(s') laskettuna todella satunnaiselle sekvenssille s' . Siksi pienet todennäköisyyden p arvot (yleensä p < 0,05 tai p < 0,01) voidaan tulkita todisteeksi siitä, että s ei ole satunnainen. Siten, jos jollekin kiinteälle arvolle a todennäköisyysarvo p < a , niin binäärisekvenssi s läpäisee tämän testin. Yleensä a ottaa arvot väliltä [0,001; 0,01].
Tähän kategoriaan kuuluvat testit, joiden tulokset näytetään kaavioina, jotka kuvaavat tutkitun sekvenssin ominaisuuksia. Heidän keskuudessaan:
Graafisten testien tulokset ovat ihmisen tulkimia, joten niihin perustuvat johtopäätökset voivat olla epäselviä.
Toisin kuin graafiset testit, tilastolliset testit antavat sekvenssin numeerisen ominaisuuden ja mahdollistavat yksiselitteisen selvityksen, onko testi läpäissyt. Seuraavat tilastotestien ohjelmistopaketit tunnetaan parhaiten:
Ei. | Nimi | Tekijä | Organisaatio |
---|---|---|---|
yksi | NIST-testit [1] | Andrew Rukhin, et. al. | NIST ITL |
2 | TEST-U01 [2] | P. L'Ecuyer ja muut. | Montr'ealin yliopisto |
3 | CRYPT-X [3] | Helen Gustafson et ai. | Queenslandin teknillinen yliopisto |
neljä | pLab-projekti [4] | Peter Hellekalek | Salzburgin yliopisto |
5 | DIEHARD [5] | George Marsaglia | Floridan osavaltion yliopisto |
6 | Dieharder [6] | Robert G Brown | Duken yliopisto |
7 | ENT [7] | John Walker | Autodesk , Inc. |
kahdeksan | The Art Of Computer Programming Voi. 2 puolinumeerista algoritmia [8] | Donald Knuth | Stanfordin yliopisto |
9 | Sovellettavan kryptografian käsikirja [9] | Alfred Menezes ja muut. | C.R.C. Press, Inc. |
DIEHARD-testit kehitti George Marsaglia useiden vuosien aikana, ja ne julkaistiin ensimmäisen kerran satunnaisluvuille omistetulla CD-ROM-levyllä. Niitä pidetään yhtenä tiukimmista tunnetuista testisarjoista.
Knuthin testit perustuvat tilastolliseen testiin . Tilastojen laskettua arvoa verrataan taulukkotuloksiin ja tällaisten tilastojen esiintymistodennäköisyydestä riippuen tehdään johtopäätös sen laadusta. Näiden testien etuja ovat niiden pieni määrä ja nopeiden suoritusalgoritmien olemassaolo. Haittapuolena on tulosten tulkinnan epävarmuus. Tässä on yhteenveto näistä testeistä:
Ero näiden testien ja muiden nykyaikaisten testien välillä on algoritmien avoimuus. Etujen joukossa on myös testitulosten yksiselitteinen tulkinta. Taulukko yleisistä ominaisuuksista:
Ei. | Testin nimi | Määritelty vika |
---|---|---|
yksi | taajuustesti | Liikaa nollia tai ykkösiä |
2 | Tarkistetaan kumulatiivisia määriä | Liikaa nollia tai ykkösiä sarjan alussa |
3 | Tarkistetaan "reiät" osajaksoissa | Poikkeama yksiköiden sekvenssien jakautumisessa |
neljä | "reikien" tarkistaminen | Suuri (pieni) määrä nollien ja ykkösten osasarjoja osoittaa, että bittivirran vaihtelu on liian nopea (hidas) |
5 | Matriisien rivien tarkistaminen | Matriisien rivien jakauman poikkeama vastaavasta jakaumasta todella satunnaiselle sekvenssille, joka liittyy sekvenssien jaksoisuuteen |
6 | Spektritesti | Jakson jaksolliset ominaisuudet |
7 | Ei-päällekkäisten kuvioiden tarkistaminen | Ei-jaksolliset kuviot ovat liian yleisiä |
kahdeksan | Etsitään risteäviä kuvioita | Liian yleisiä ykkösten m -bittisiä sekvenssejä |
9 | Maurerin yleinen tilastollinen testi | Jakson puristuvuus (säännöllisyys). |
kymmenen | Satunnaisten poikkeamien tarkistus | Poikkeama tietyntyyppisten osasekvenssien esiintymisten lukumäärän jakaumasta |
yksitoista | Muunnelma satunnaisten poikkeamien tarkistamisesta | Poikkeama tietyntyyppisten osasekvenssien esiintymisten lukumäärän jakaumasta |
12 | Likimääräisen entropian tarkistaminen | M - bittisten sanojen epätasainen jakautuminen . Pienet arvot tarkoittavat suurta toistettavuutta |
13 | Sarjan tarkistus | Epäsäännöllisyys m - bittisten sanojen jakautumisessa |
neljätoista | Pakkaus käyttämällä Lempel-Ziv-algoritmia | Parempi pakatettavuus kuin todellinen satunnainen sarja |
viisitoista | Lineaarinen monimutkaisuus | Poikkeama äärellisen alijonon pituuden lineaarisesta kompleksisuusjakaumasta |
Satunnais- ja pseudosatunnaislukugeneraattorit ovat linkki tietoturvassa . Tietyssä mielessä nämä ovat tärkeitä salausalgoritmien ja protokollien rakennuspalikoita. Koska tällaisia generaattoreita käytetään monissa salausongelmissa, esimerkiksi salausjärjestelmien satunnaisten parametrien ja avaimien muodostamisessa, niille asetetut vaatimukset ovat melko korkeat. Erityisesti yksi kriteereistä täysin mielivaltaiselle binäärisekvenssille, joka saadaan generaattorin lähdöstä, on mahdottomuus ennustaa sitä, jos generaattorin sisäänmenoon syötetystä tiedosta ei ole tietoa. Tästä syystä käytännössä tehdään tilastollisia testejä satunnais- tai näennäissatunnaislukugeneraattorin generoiman binäärisekvenssin satunnaisuuden tarkistamiseksi. Tämä puolestaan antaa sinun tunnistaa etukäteen tietyn salausongelman vaatimukset täyttävät generaattorit.
Uuden Advanced Encryption Standardin hyväksymiseksi National Institute of Standards and Technology järjesti Yhdysvaltain hallituksen tuella kilpailun, jonka aikana testattiin 15 hakijan algoritmia. Eräs algoritmien arvioinnissa käytetty kriteeri oli niiden soveltuvuus satunnaislukugeneraattoreihin. Tällaisten generaattoreiden testaus satunnaisten binäärisekvenssien muodostamiseksi, joilla on hyvät tilastolliset ominaisuudet, suoritettiin käyttämällä NIST-tilastotestisarjaa .
Ensimmäisen AES-kierroksen aikana testattiin 128-bittisiä avaimia. Vain 9 algoritmia 15 algoritmista läpäisi tilastolliset testit [10] .
Ensimmäisen kierroksen tulosten perusteella AES-finalisteiksi valittiin 5 salausalgoritmia: MARS , RC6 , Rijndael , Serpent ja Twofish . AES-kilpailun toisella kierroksella arvioitiin näiden viiden algoritmin soveltuvuutta satunnaislukugeneraattoreiksi 192- ja 256-bittisten avainten perusteella. NIST-tilastotestien kesto oli useita kuukausia, ja laskelmia tehtiin useilla Sun Ultra -työasemilla . Kaikki tiedot luotiin ja käsiteltiin verkossa. Toisen kierroksen tuloksena kävi ilmi, että jokainen viidestä finalistista generoi satunnaisen binäärisekvenssin, jolla on hyvät tilastolliset ominaisuudet, ja siksi sitä voidaan käyttää näennäissatunnaislukugeneraattorina, ja on mahdollista käyttää avaimia, joiden koko on: 128 , 192 ja 256 bittiä [11] .