AES-laskentamoodin ja CBC-tilan suojaus

Evgeni Vaknin 09/05/2017. 1 answers, 401 views
aes cbc ctr nonce

AES-CBC: n ollessa CPA: n suojaava käytettävä IV on valittava satunnaisesti jokaiselle paketille. Jos IV on ennustettavissa, salaus ei ole CPA-suojaus. Onko sama asia AES-CTR-tilassa? eli AES-CTR-tilassa ensimmäisen laskurin on oltava satunnainen tai se voi olla nonce? Kiitos

1 Answers


Patrick K 07/31/2017.

AES-CTR-syöttölohkojen vaatimus on, että niiden on oltava unique avaimen koko käyttöiän ajan. Useimmissa tapauksissa satunnaista 96-bittistä noncea käytetään 32-bittisen laskurin kanssa, joka alkaa 0: sta. Jos AES-CTR: llä on sama syöttölohko kahdesti, AES-CTR ei ole enää CPA-suojaus. Tällöin tämä voi johtua vastavirtauksen jälkeen $ 2 ^ {32} $ lohkojen jälkeen tai satunnaisesti valitun 96bit noncesin (syntymäpäivä paradoksi: 50% mahdollisuus $ \ sqrt {2 ^ {96}} $ -sanomien jälkeen. Ota huomioon seuraava tapaus:

Kaksi erillistä 1-Block-viestejä $ P $ ja $ P '$ lähetetään samalla avaimella $ K $ (joka voidaan neuvotella etukäteen) ja samalla nonce $ N $: lla. Hyökkääjä tietää, että siihen liittyvät salakirjoitustekstit $ C $ ja $ C '$, jotka lasketaan XOR: n avulla avaimen avulla (joka perustuu nonceen ja laskuriin):

$ C = P \ oplus E_K (N, 0) $

$ C '= P' \ oplus E_K (N, 0) $

Sitten hyökkääjä voi yksinkertaisesti xor tai salasanoja

$ C \ oplus C '= P \ oplus E_K (N, 0) \ oplus P' \ oplus E_K (N, 0) = P \ oplus P '

ja hän saa "etäisyyden" kahden tavallisen tekstin välillä. Englanninkielisten irtisanomisten vuoksi hän voisi pystyä määrittämään $ P $ ja $ P '$.

Tämä ongelma tunnetaan myös nimellä "kaksitahtinen pad". Kun sama avainruutu on XORoitu selkeällä tekstillä, meistä tulee ongelmia. Siksi on tärkeää, että AES-salauksen syöte on ainutlaatuinen avaimen koko käyttöiän ajan. Sen ei tarvitse olla arvaamaton, ainutlaatuinen.

5 comments
Evgeni Vaknin 07/31/2017
sanomalla "2 ^ 32 viestiä" Luulen, että tarkoitat 2 ^ 32 lohkoa 16 tavua kussakin AES: ssä? Jos näin on, kuin 2 ^ 32 lohkojen aika on 2 ^ 32 * 128 bittiä, joka on 10Gbps, noin 1 minuutti ... joten jokaisen minuutin ajan avainvaihtosalgoritmi on suoritettava uuden avaimen ja nonce ?
1 Patrick K 07/31/2017
Kyllä olet oikeassa. Olen muokannut vastausta. Jos sinulla on staattinen nonce, sinun pitäisi tehdä avain vaihdon joka minuutti tässä tapauksessa. Mutta koska nonce muutetaan yleensä jokaisella viestillä, rajoitat vain enintään 2 $ {32} \ cdot128 $ bittien pituisiin viesteihin. Yhden avaimen aikana lähetettävien viestien enimmäismäärä rajoittaa syntymäpäivän paradoksi. Jos 96-bittinen nonce valitaan satunnaisesti tasaisesti jokaiselle sanomalle, nonce-törmäyksen todennäköisyys on $ \ approx 0.5q ^ 2/2 ^ {96} $ q-viesteille. Jos haluat, että tämä termi on korkeintaan 1%, sinun $ q_ {max} = 4 \ cdot10 ^ {13} $.
Evgeni Vaknin 07/31/2017
Mitä tapahtuu, jos en käytä satunnaista noncea, vaan käytän satunnaisarvoa nonce-aloitusarvolle ja sitä enemmän kuin kasvatetaan jokaista pakettia? Esimerkiksi sanotaan, että jokainen paketti sisältää alle 256 AES-lohkoa (128 bit kukin), ja AES-CTR: n laskuri koostuu 120 bittiä olevasta nonce-koodista, joka alustetaan satunnaisesti avaimen vaihdon yhteydessä ja kuin paketin 8 bittiä laskuria käytetään laskemaan 128-bittiset lohkot. Ja jokainen uusi paketti, (jatka seuraavassa kommentissa)
Evgeni Vaknin 07/31/2017
Kasvatan nonce-arvoa 1: llä ja tyhjennän 8-bittinen laskuri. Tällöin syntymäpäivän paradoksi ei ole merkityksellinen, sillä törmäys on mahdotonta (olettaen, että olen korvannut avaimen ennen kuin nonceen 120-bittinen laskuri umpeutui)
1 Patrick K 08/01/2017
Kyllä, jos jotenkin varmista, ettet koskaan käytä samaa (input-block, key) paria avaimen sukupolvelle, niin kaikki on kunnossa. (tietenkin olettaen, että avain pidetään salaisena ja se valitaan tasaisesti satunnaisesti)

Related questions

Hot questions

Language

Popular Tags