Entropiaa tuottavat rakennusosat (syventävä)

Entropia tarkoittaa järjestelmän arvaamattomuuden eli satunnaisuuden määrää. Satunnaislukujen olemusta, merkitystä ja tuottamista on käsitelty sekä kryptototeutusten että avaintenhallinnan yhteydessä (jälkimmäisessä on myös kerrottu asiaan liittyvästä PUF-laitteesta). Satunnaisuutta tarvitaan myös kryptografian ulkopuolella, esim. peleissä, arvontasovelluksissa ja stokastisissa simulaatioissa. Vaatimukset eivät ole yhtä suuret kuin kryptografiassa, mutta arvatenkin ennustamattomuus on tärkeää myös arvonnoissa ja joissain peleissä. Tietoturva-alalla satunnaisuus tulee käyttöön myös, kun halutaan peittää toteutettuja vastatoimia hyökkääjiltä. Myös edeltävän alaluvun käsittelemä sivukanavan torjuminen voi hyödyntää satunnaisuutta.

Satunnaislukuja on kahta lajia, näennäisiä ja todellisia. Kumpikaan ominaisuus ei tietenkään koske mitään yhtä lukua vaan menetelmää, jolla se on tuotettu, generoitu. Termejä ovat PRNG ja TRNG, missä P=pseudo, T=true, ja RNG=random number generator. N:n tilalla on usein B=bit. Satunnaisuutta on se, että kaikki mahdolliset luvut ovat yhtä todennäköisiä ja kukin generoitu luku on riippumaton edellisistä ja seuraavista numeroista.

RNG-toteutusten suunnittelu, ominaisuudet ja testaus on kuvattu standardeissa NIST800-90A (PRNG), NIST800-90B (entropialähteet) ja NIST800-90C (RNG-rakenteet). Saksalainen BSI on julkaissut kaksi tärkeää standardia: AIS-20 toiminnallisuusluokille ja arviointikriteerit PRNG:lle ja AIS-31 fyysisille RNG:lle. Jokainen standardi sisältää suuren joukon testejä, joiden tarkoituksena on löytää tilastollisia heikkouksia, eli poikkeamia tasajakaumasta.

PRNG:t ovat deterministisiä algoritmeja, joten on tärkeää aloittaa ne aina eri käynnistysarvolla, siemenluvulla. Se voidaan tuottaa myös hitaalla TRNG:llä. Vähintään sen pitää olla ei-toistuva, kuten esim. kasvatettu laskurin arvo. Sekin voi riittää kryptografiseen turvallisuuteen, jos hyökkääjä ei pysty useastakaan peräkkäin generoidusta luvusta laskemaan aiempia tai tulevia lukuja.

PRNG:n tarjoama turvallisuus perustuu siinä käytettyyn kryptoalgoritmiin. TRNG:t sitä vastoin tarjoavat täyden entropian sellaisenaan riippumatta matematiikan ja krypto-analyysin kehittymisestä.

TRNG:n ydin koostuu entropialähteestä eli fyysisestä ilmiöstä, jolla on täysin satunnainen käyttäytyminen. Elektroniikkapiireissä entropialähteitä ovat yleensä lämpökohina, tärinä ja metastabiilisuus. Nämä lähteet eivät kuitenkaan ole täydellisiä: niiden tuottamat bitit voivat sisältää vinoumaa, korrelaatiota tai muuta poikkeamaa. Siksi niiden lisäksi käytetään tyypillisesti entropiaerottimia tai -puhdistimia. Koska nämä ovat deterministisiä prosesseja, ne eivät voi lisätä kokonaisentropiaa. Niiden ulostulo on siis aina lyhyempi kuin syöte.

Ympäristöolosuhteiden, mm. lämpötilan tai jännitteen, vaihteluiden vuoksi TRNG:n tuotosten laatu saattaa vaihdella ajan myötä. Siksi standardit kuvaavat testejä, joita tulisi soveltaa generointiprosessin alussa ja jatkuvasti sen aikana. Testeistä voidaan erottaa kolme pääluokkaa. Ensimmäinen on täydellisen epäonnistumisen testi, jota sovelletaan entropian lähteeseen. Toisena pääluokkana ovat online-eheystestit, joilla seurataan entropian erottajien laatua. Kolmantena ovat jälkikäsiteltyjen bittien testit.

TRNG:n suunnittelun haasteena on ensinnäkin tarjota selkeä ja vakuuttava todiste entropian lähteestä ja toiseksi suunnitella sellaisia online-testejä, jotka ovat samalla sekä kompakteja että kykeneviä havaitsemaan laajan valikoiman vikoja. TRNG:n vastaiset hyökkäykset, niiden vastatoimet sekä TRNG-anturit ovat aktiivinen tutkimuksen aihealue erityisesti IoT:n ja sulautettujen laitteiden kontekstissa.

Palautusta lähetetään...