Sienifunktio - Sponge function
In salakirjoitus , joka on sieni funktio tai sienellä rakentaminen on mikä tahansa luokan algoritmeja , joilla on rajallinen sisäinen tila , joka ottaa syötteenä bittivirran ilman pituus ja tuottaa lähtöbittivirran minkä pituinen tahansa. Sienifunktioilla on sekä teoreettinen että käytännöllinen käyttö. Niitä voidaan käyttää mallia tai toteuttamaan monia kryptografisia , kuten tiivisteitä , viesti autentikointikoodeja , maski sukupolven toimintoja , salausjonon , pseudo-satunnaislukugeneraattorit , ja todennettu salaus .
Sisällys
rakentaminen
Sienifunktio on rakennettu kolmesta osasta:
- valtion muisti, S , joka sisältää b bittiä,
- toiminto, joka muuttaa tilamuistin (usein se on tila-arvojen näennäissatunnainen permutaatio )
- pehmustetoiminto P
Tilamuisti on jaettu kahteen osaan: yksi koon r (bittinopeus) ja loput osan koosta c (kapasiteetti). Näitä osioita on merkitty vastaavasti R ja C.
Täytefunktio lisää riittävästi bittejä syöttöjonoon niin, että pehmustetun sisääntulon pituus on koko bittinopeuden r rikki . Pehmustettu tulo voidaan siten hajottaa r- bittisiksi lohkoiksi.
Operaatio
Sienifunktio toimii seuraavasti:
- Tila S alustetaan nollaan
- Syöttömerkkijono on pehmustettu. Tämä tarkoittaa, että sisääntulo muutetaan r- bittisiksi lohkoiksi täyttöfunktion P avulla .
- jokaiselle pehmustetun tulon r- bittilohkolle B :
- R korvataan R XOR B: llä (käyttämällä bittiä XOR )
- S korvataan f ( S )
Tämä prosessi "imee" (on sieni metafora) kaikki lohkot pehmustettu syötteen.
Sienifunktiotulos on nyt valmis tuottamaan ("puristettu") seuraavasti:
- tilamuistin R- osa tulostetaan
- toista, kunnes tulostetaan tarpeeksi bittejä:
- S korvataan f ( S )
- tilamuistin R- osa tulostetaan
Jos jäljelle jää vähemmän kuin r bittiä, niin R katkaistaan (vain osa R: stä tulostetaan).
Toinen metafora kuvaa tilamuistin " entrooppipooliksi ", jonka tulo "kaadetaan" pooliin, ja muunnosfunktiota kutsutaan "entrooppialtaan sekoittamiseksi".
Huomaa, että syöttöbittejä ei koskaan XORORERoida tilamuistin C- osaan, eikä C: n bittejä koskaan lähetetä suoraan. Se, missä määrin C muuttaa tuloa, riippuu täysin muunnosfunktiosta f. Hajasovelluksissa resistenssi törmäyksille tai esikuvien hyökkäyksille riippuu C: stä , ja sen koko ("kapasiteetti" c ) on tyypillisesti kaksi kertaa haluttu vastus.
Kaksipuolinen rakenne
On myös mahdollista imeä ja puristaa vuorotellen. Tätä toimintoa kutsutaan duplex-rakenteeksi tai duplexing-palveluksi. Se voi olla yhden pass-todennetun salausjärjestelmän perusta.
- Tila S alustetaan nollaan
- R on XOR- syötteen ensimmäisellä r- bittisellä lohkolla
- S korvataan f ( S )
- R on nyt lähtö ensimmäisen r bittiä.
- R on XOR- syötteen seuraavalla r- bittisellä lohkolla
- S korvataan f ( S )
- R on nyt lähdön seuraava r bitti.
- ...
Korvaa tila
XOR-operaatiot on mahdollista jättää huomiotta imeytymisen aikana, samalla kun valittu turvataso säilytetään . Tässä tilassa absorboivassa vaiheessa tulon seuraava lohko korvaa tilan R- osan. Tämä mahdollistaa pienemmän tilan pitämisen vaiheiden välillä. Koska R- osa korvataan joka tapauksessa, se voidaan hylätä etukäteen, vain C- osa on säilytettävä.
Sovellukset
Sienifunktioilla on sekä teoreettinen että käytännöllinen käyttö. Teoreettisessa kryptoanalyysissä satunnainen sienifunktio on sienen rakenne, jossa f on satunnainen permutaatio tai muutos, tapauksen mukaan. Satunnaiset sienifunktiot kaappaavat enemmän salauksen primitiivien käytännön rajoituksia kuin laajalti käytetty satunnainen oraaklimalli , erityisesti äärellinen sisätila.
Sienen rakennetta voidaan käyttää myös rakentamaan käytännöllisiä salausprimaateja. Esimerkiksi NIST on valinnut voittajaksi SHA-3-kilpailussa Keccak-salaussienen , jonka tila on 1600-bittinen . Keccakin vahvuus johtuu sen kirjoittajien kehittämästä monimutkaisesta, monipuolisesta permutaatiosta f . RC4 -redesign kutsutaan Spritz viittaa sieni-konstrukti määrittää algoritmin.
Toisessa esimerkissä sienifunktiota voidaan käyttää rakentamaan todennettu salaus niihin liittyvien tietojen kanssa (AEAD).