Beveiliging van AES-tellerstand versus CBC-modus

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

Voor AES-CBC als CPA-beveiliging moet de IV die wordt gebruikt willekeurig worden geselecteerd voor elk pakket. Als de IV voorspelbaar is, dan is de codering niet CPA veilig. Is hetzelfde waar voor de AES-CTR-modus? dat wil zeggen, voor de AES-CTR-modus moet de eerste teller willekeurig zijn of een nonce zijn? Bedankt

1 Answers


Patrick K 07/31/2017.

De vereiste voor de AES-CTR-invoerblokken is dat ze tijdens de levensduur van een sleutel unique moeten zijn. In de meeste gevallen wordt een willekeurige 96-bits nonce gebruikt met een 32bit-teller die begint bij 0. Als hetzelfde invoerblok voor AES-CTR twee keer voorkomt, is AES-CTR niet meer CPA-beveiligd. In dit geval kan dit het gevolg zijn van een tegen-overloop na $ 2 ^ {32} $ blokken of als gevolg van botsende willekeurig gekozen 96bit nonces (verjaardagsparadox: 50% kans na $ \ sqrt {2 ^ {96}} $ berichten. Beschouw het volgende geval:

Twee verschillende 1-Block berichten $ P $ en $ P '$ worden verzonden onder dezelfde sleutel $ K $ (dat kan van tevoren worden onderhandeld) en met dezelfde nonce $ N $. De aanvaller weet dat de bijbehorende cipher-teksten $ C $ en $ C '$ zijn berekend door ze te XORen met de keystream (die is gebaseerd op de nonce en de teller):

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

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

Dan kan de aanvaller eenvoudigweg tegen de coderingsteksten ingaan

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

en hij verkrijgt de '' afstand '' tussen de twee gewone teksten. Wegens overtolligheden in de Engelse taal kan hij mogelijk $ P $ en $ P '$ bepalen.

Dit probleem wordt ook wel het 'tweevoudige pad' genoemd. Zodra dezelfde sleutelstroom is XORed met de leesbare tekst, komen we in de problemen. Daarom is het belangrijk dat de invoer voor de AES-codering uniek is gedurende de levensduur van een sleutel. Het hoeft niet onvoorspelbaar te zijn, alleen uniek.

5 comments
Evgeni Vaknin 07/31/2017
door de verklaring "2 ^ 32 berichten" Ik denk dat je bedoelt 2 ^ 32 blokken van 16 bytes elk in AES? als dat zo is, dan is 2 ^ 32 blokken tijd 2 ^ 32 * 128 bits, wat in 10 Gbps is, ongeveer 1 minuut ... dus elke 1 minuut moet een sleuteluitwisselingsalgoritme worden uitgevoerd om een ​​nieuwe sleutel en nonce op te zetten ?
1 Patrick K 07/31/2017
Ja je hebt gelijk. Ik heb het antwoord bewerkt. Als je een statische nonce hebt, zou je in dit geval elke minuut een sleuteluitwisseling moeten doen. Maar aangezien de nonce meestal wordt gewijzigd bij elk bericht, bent u beperkt tot berichten met een maximumlengte van $ 2 ^ {32} \ cdot128 $ -bits. Het maximale aantal berichten dat onder een bepaalde sleutel kan worden verzonden, wordt beperkt door de verjaardagsparadox. Als de 96bit-nonce voor elk bericht willekeurig wordt gekozen, is de kans op een nonce-botsing $ \ approx 0.5q ^ 2/2 ^ {96} $ voor q-berichten. Als u deze term maximaal 1% wilt hebben, is uw $ q_ {max} = 4 \ cdot10 ^ {13} $.
Evgeni Vaknin 07/31/2017
Wat gebeurt er als ik geen willekeurige nonce gebruik, maar ik gebruik een willekeurige waarde voor de nonce-beginwaarde en verhoog deze dan met elk pakket? Laten we bijvoorbeeld zeggen dat elke pakket minder dan 256 AES-blokken bevat (elk 128 bit), en de teller voor de AES-CTR is samengesteld uit nonce van 120 bits, die willekeurig zijn geïnitialiseerd als de sleutel wordt uitgewisseld, en dan binnen de 8 bits van het pakket teller wordt gebruikt om de 128-bits blokken te tellen. En elk nieuw pakket (ga verder met de volgende opmerking)
Evgeni Vaknin 07/31/2017
Ik verhoog de nonce met 1 en wis de 8-bit-teller. In dit geval is de verjaardagsparadox niet relevant, omdat een botsing onmogelijk is (ervan uitgaande dat ik de sleutel vervang voordat de 120-bit-teller van de nonce is verlopen)
1 Patrick K 08/01/2017
Ja, als je op de een of andere manier ervoor zorgt dat je nooit hetzelfde (input-blok, sleutel) paar hergebruikt voor de keystream-generatie, dan is alles in orde. (natuurlijk in de veronderstelling dat de sleutel geheim wordt gehouden en uniform wordt gekozen uit willekeurige volgorde)

Related questions

Hot questions

Language

Popular Tags