Security ng AES counter mode kumpara sa CBC mode

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

Para sa AES-CBC na maging CPA secure ang IV na ginamit ay sapalarang napili para sa bawat packet. Kung ang IV ay predictable kaysa sa encryption ay hindi CPA secure. Tama bang totoo para sa AES-CTR mode? ibig sabihin, para sa AES-CTR mode ang unang counter ay dapat na random o maaari itong maging isang nonce? Salamat

1 Answers


Patrick K 07/31/2017.

Ang kinakailangan para sa mga bloke ng pag-input ng AES-CTR ay, na dapat itong maging unique panahon ng isang susi. Sa karamihan ng mga kaso isang random na 96bit nonce ay ginagamit sa isang 32bit counter na nagsisimula mula sa 0. Kung ang parehong input block para sa AES-CTR nangyayari nang dalawang beses, ang AES-CTR ay hindi CPA na ligtas na. Sa kasong ito, maaaring ito ay dahil sa isang counter-overflow pagkatapos ng $ 2 ^ {32} $ bloke o dahil sa pag-collide ng random na piniling 96bit nonces (kaarawan paradox: 50% na pagkakataon pagkatapos ng $ \ sqrt {2 ^ {96}} $ na mga mensahe. Isaalang-alang ang sumusunod na kaso:

Dalawang natatanging mga mensahe ng 1-Block $ P $ at $ P '$ ay ipinadala sa ilalim ng parehong key na $ K $ (na maaaring ma-negotiate muna) at may parehong nonce $ N $. Alam ng magsasalakay na ang mga kaugnay na teksto ng cipher $ C $ at $ C '$ kung saan kinakalkula sa pamamagitan ng XORing ang mga ito sa keystream (na kung saan ay batay sa nonce at ang counter):

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

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

Kung gayon ang magsasalakay ay maaari lamang i-text ang mga cipher

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

at nakukuha niya ang '' distansya '' sa pagitan ng dalawang plain na teksto. Dahil sa pag-redundant sa wikang Ingles, maaari niyang matukoy ang $ P $ at $ P '$.

Ang problemang ito ay kilala rin bilang "two-time-pad". Kapag ang parehong keystream ay XORed sa plaintext, nakakakuha kami sa problema. Samakatuwid, ito ay mahalaga, na ang input para sa pag-encrypt ng AES ay natatangi sa panahon ng buhay ng isang key. Hindi ito kailangang maging mahuhulaan, kakaiba lamang.

5 comments
Evgeni Vaknin 07/31/2017
sa pamamagitan ng pahayag na "2 ^ 32 mga mensahe" Sa palagay ko ibig mo bang sabihin 2 ^ 32 bloke ng 16 byte bawat isa sa AES? kung gayon, kaysa sa 2 ^ 32 mga oras ng bloke ay 2 ^ 32 * 128 bits, na nasa 10Gbps, halos 1 minuto ... kaya bawat 1 minuto ang isang key exchange algorithm ay kailangang isagawa upang mag-set up ng isang bagong key at nonce ?
1 Patrick K 07/31/2017
Oo tama ka. Na-edit ko ang sagot. Kung mayroon kang static na nonce, kailangan mo munang gawin ang isang mahalagang palitan bawat minuto sa kasong ito. Subalit dahil ang karaniwan ay nagbago sa bawat mensahe, ikaw ay limitado sa mga mensahe ng isang max na haba ng $ 2 ^ {32} \ cdot128 $ bits. Ang maximum na bilang ng mga mensahe na maaaring ipadala sa ilalim ng isang ibinigay na key ay limitado sa paradox ng kaarawan. Kung ang 96bit nonce ay pare-pareho ang napili nang random para sa bawat mensahe, ang posibilidad ng isang banggaan ng nonce ay $ \ approx 0.5q ^ 2/2 ^ {96} $ para q mga mensahe. Kung gusto mo ang terminong ito ay halos 1%, ang iyong $ q_ {max} = 4 \ cdot10 ^ {13} $.
Evgeni Vaknin 07/31/2017
Ano ang mangyayari kung hindi ako gumagamit ng random na nonce, sa halip ay gumagamit ako ng isang random na halaga para sa unang halaga ng nonce at kaysa sa pagdagdag ng bawat packet? Halimbawa, hinahayaan nating sabihin na ang bawat packet ay naglalaman ng mas mababa sa 256 AES block (128 bit bawat isa), at ang counter para sa AES-CTR ay binubuo ng mga nonce ng 120 bits, na inisyal na random kapag ang key ay ipinagpapalit, at kaysa sa loob ng packet 8 bits Ang counter ay ginagamit upang mabibilang ang 128 bit block. At bawat bagong packet, (magpatuloy sa susunod na komento)
Evgeni Vaknin 07/31/2017
Nagdagdag ako ng 1 sa pamamagitan ng 1, at i-clear ang 8 bit counter. Sa kasong ito, ang hindi babala sa kaarawan ay hindi nauugnay, dahil imposible ang banggaan (ipagpalagay na pinapalitan ko ang susi bago ang 120 bit counter ng di-natapos na nonce)
1 Patrick K 08/01/2017
Oo, kung sa anumang paraan tiyakin na hindi mo muling gamitin ang parehong (input-block, key) na pares para sa keystream-generation, kung gayon ang lahat ay maganda. (siyempre ipagpapalagay na ang susi ay pinananatiling lihim at pinili nang pantay mula random)

Related questions

Hot questions

Language

Popular Tags