Autentikointitunnisteen laskemiseksi Galois / Counter-tilassa (GCM) ensin lasketaan MAC käyttäen GHASH salausta teksti ja lisätiedot. Sen jälkeen tämä MAC salataan käyttämällä GCTR : ää (käyttäen ensimmäistä laskuria).
Kysymykseni kuuluu: Miksi tämä viimeinen salausvaihe on välttämätön? Mikä turvallisuusongelma olisi, jos käytän vain todennuskoodina GHASH -lähtöä?
Vastaa
Mikä olisi tietoturvaongelma, jos käytän vain GHASH: n lähtöä suoraan todennustunnisteena?
Sitten salattuja viestejä kuunteleva henkilö voi palauttaa $ H $ , joista yksi on oikea.
GHASH: n tulos on julkinen polynomi (salakirjoituksen ja AAD: n perusteella), joka arvioidaan salaisella arvolla $ H $ . On käynyt ilmi, että tällaisen polynomin perusteella $ H $ voidaan palauttaa tehokkaasti joko kirjoittamalla polynomi uudelleen nimellä $ \ mathrm {GHASH} (H) + \ mathrm {Tag} = 0 $ , ja sen juurien palauttaminen (mikä voidaan tehdä rajallisessa kentässä) tai jopa helpompaa saada kaksi tällaista salattua tekstiä, kirjoittaa molemmat uudelleen heille ja käytä laajennettua euklidista arvoa palauttaakseen yhteisen juurensa.
Kun otetaan huomioon $ H $ , hyökkääjä voi tehdä triviaalia muutoksia salattuihin viesteihin. ; kyllä, se on huono.
Kommentit
- Vielä yksi kysymys: Miksi GHTR-lohkon salaamiseen on käytettävä GCTR: ää pelkän käyttämisen sijaan $ Enc_H (GHASH) $ tagiksi? Tällä tavoin GMAC: ää voitaisiin käyttää ilman IV: tä.
- @mat: tarkoitat $ GHASH $: n lähettämistä AES: n kautta (käyttäen avainta $ H $ )? No, oikeastaan tällainen asia toimisi (no, en käytä ' en käytä $ H $: ta avaimena, mutta muu kuin se …) ja olisi konservatiivisempi suunnittelu; Kuitenkin GCM suunniteltiin alun perin putkilinjattavaksi tilaksi; toisin sanoen se voitaisiin toteuttaa antamalla AES-laitteistototeutus, jossa jokaisessa kellosyklissä annamme laitteelle seuraavan selkokielisen lohkon ja jokaisen kellosyklin salausteksti 10–14 jaksoa sitten ponnahtaa esiin. Suorittamalla salauksen GHASH: lla ' d estämme putkilinjan …
- Tarkoitan yksinkertaista EKP: n GHASH-salaus (käyttäen avaimena joko $ H $ tai $ K $) sen sijaan, että tekisit sen GCTR: n kanssa. sillä voisi olla etu, että GMAC: ää olisi helpompi käyttää, koska se ei enää tarvitsisi '. Pipelinig ei ole tässä ongelma, koska tunnisteen salaus on viimeinen vaihe, joka tehdään joka tapauksessa GCM: ssä, joten putki on ehdottomasti tyhjä tässä vaiheessa.
- @David 天宇 Wong: enimmäkseen suorituskyky ( GHASH on rinnastettavissa, avaamattomia hajautuksia ei tyypillisesti ole ' t)
- @David 天宇 Wong: Voi, niin, niin …