Puncte:2

Există coliziune în criptare ca în funcțiile hash?

drapel cz

În funcțiile hash, $h(m) = h(m_1)$ se numește coliziune și este foarte nedorit că acestea pot fi găsite, deoarece subminează securitatea hash. Cu toate acestea, există o preocupare în esență analogă în criptare, cum ar fi cifrurile bloc (AES-256) sau RSA? Dacă există o pereche de chei cu text simplu $m,k$ care dă un text cifrat și există o altă cheie, pereche de mesaje $m_1, k_1$ care produce, de asemenea, același text cifrat, este aceasta în esență o problemă similară cu o coliziune hash? Acestea sunt date două perechi pe care le-ați putea face apoi „criptanaliza” și cifrul inovator, „învățând” cum s-au terminat două ca același text cifrat.

Un alt lucru este dacă acest lucru poate ridica probleme precum incapacitatea de a decripta la fel cum ireversibilitatea hash-ului funcționează ca „nu există nicio modalitate de a alege dintre posibilele intrări originale” (ca și în pad-urile unice).

corsiKa avatar
drapel us
Aș dori să spun, bine pentru a avea sentimentul că doar pentru că ceva se aplică hashingului, se aplică criptării și invers. Da, ambele sunt complexe și folosesc adesea aceiași algoritmi sau similari, dar sunt două instrumente diferite pentru două probleme diferite și a face presupuneri despre una pe baza celeilalte este neînțelept - de fapt, când securitatea este preocuparea, ar trebui *întotdeauna* să vă pună la îndoială presupunerile!
nimrodel avatar
drapel cz
Nu am presupus că coliziunile au loc în criptare numai sau chiar parțial cauzează că se întâmplă în hashing. mai degrabă am adus haș ca exemplu „ca în haș”. Eram interesat dacă m1xk1 criptează în m2xk2 în primul rând și dacă există îngrijorare cu privire la care să decriptez atunci când pot exista mai multe opțiuni (la fel ca în hash). deci presupui că am presupus.
Puncte:4
drapel et

Coliziunile au loc în Hashing din cauza Principiul porumbeilor. În Hashing, intrarea este mai mare ca dimensiune decât ieșirea. Prin urmare, se vor produce coliziuni, nu le puteți preveni.

Acesta nu este cazul cu criptarea. Ieșirea Encryption este întotdeauna cel puțin aceeași cu dimensiunea intrării - deci principiul Pigeonhole nu se aplică.

De asemenea, Criptarea trebuie să fie o funcție inversabilă, spre deosebire de Hashing, care este o funcție unidirecțională. Deci, orice algoritm standard de criptare nu poate avea coliziuni, deoarece ar face imposibilă inversarea procesului (adică decriptarea). Deci, nu există coliziuni în Encryption atâta timp cât utilizați aceeași cheie de criptare.

Enc(Text simplu1, cheie1) nu este niciodată egal cu Enc(Text simplu2, cheie1)

ilkkachu avatar
drapel ws
adevărat, deși rețineți că au avut cele două chei distincte $k$ și $k_1$ acolo. Întrebarea nu este $E(m_1, k) = E(m_2, k)$ ci $E(m_1, k_1) = E(m_2, k_2)$
kelalaka avatar
drapel in
Acest lucru a citit greșit așa cum am făcut înainte. OP solicită coliziuni cu diferite chei. a dovedi existența este ușor, a găsi cu text specific este greu. Verificați prima parte a răspunsului meu.
Puncte:3
drapel in

Cifrurile blocate se ciocnesc cu chei diferite

Dacă există o pereche de chei cu text simplu $m,k$ care dă un text cifrat și există o altă cheie, pereche de mesaje $m_1,k_1$ care produce, de asemenea, același text cifrat, este aceasta în esență o problemă similară cu o coliziune hash?

Da, este similar cu coliziunea hash, există un caz de atac dacă se folosește aceeași cheie, vezi secțiunea bonus. Pentru diferite chei nu dezvăluie nimic.

Dacă utilizați CTR (orice mod de streaming), atunci dacă aveți o coliziune cu text cifrat, aceasta nu va dezvălui mesajele, deoarece

$$m_1 \oplus o_1 = c_1 = c_2 = m_2 \oplus o_2$$ deoarece

$$m_1 m_2 \oplus = o_1 \oplus o_2$$ iar acest lucru nu va dezvălui mesajele chiar dacă ghiciți unul.

Și, în mod similar, modul CBC va rezista coliziunilor sub diferite taste.

Posibilitate de coliziune a textului cifrat

să presupunem că criptăm AES „lună” cu cheia „morehotquestions” obține „fjydhpdag”. și criptăm „soare” cu cheia „hotnetworkquestions” obținând și „fjydhpdag”. este chiar posibil acest lucru?

Dacă considerăm că AES este un PRP, atunci avem exact aceeași condiție ca și atacul de ziua de naștere. Probabilitatea ca două blocuri simple să aibă același text cifrat este $1/2^{128}$ pentru blocul BCE.

Găsirea unuia pentru noi mult mai ușor, deoarece AES este inversabil. Luați în considerare ECB pentru un caz ușor.Deoarece AES este inversabil, luați un text cifrat și decriptați-l cu două chei diferite. Apoi veți primi două mesaje diferite. Desigur, ele nu sunt neapărat semnificative, aceasta este o modalitate ușoară de a găsi/arăta acest lucru.

Sisteme de semnătură precum RSA-Sign

Sistemele de semnătură folosesc un hash al mesajului pentru a semna. Una dintre modalitățile de a falsifica atacatorul are nevoie de un al doilea atac pre-imagine asupra funcției hash. Ce se întâmplă dacă avem un semnatar rău intenționat sau un secretar rău intenționat al semnatarului? Să presupunem că folosesc MD5 pentru care coliziunea este iminentă (nu folosiți MD5 și SHA-1 pentru semnătură), atunci pot găsi două mesaje cu aceleași valori hash. $h(m_1) = h(m_2)$ cu $m_1 \neq m_2$ apoi cele două valori $$\operatorname{RSA-Sign}(h(m_1)) = \operatorname{RSA-Sign}(h(m_2))$$ sunt la fel.

Utilizați întotdeauna funcții hash criptografice rezistente la coliziuni precum SHA-256, SHA-512, SHA-3, BLAKE2 etc. pentru a atenua acest atac.


Partea bonus: Cifrurile blocate se ciocnesc cu aceeași cheie

Da, există atacuri și preocupări în legătură cu acest lucru; ca Sweet32;

  • Sweet32: atacuri de naștere asupra cifrurilor bloc pe 64 de biți în TLS și OpenVPN

    Pe scurt, pentru un cifru bloc de dimensiune $b$, dacă criptați $2^b$ blocuri sub aceeași cheie se poate obține o coliziune pe textul cifrat al modului CBC pe care îl $c_i = c_j$ cu $i \neq j$. Acesta este;

    $$m_i \oplus c_{i-1} = m_j \oplus c_{j-1}$$

    Apoi, folosind proprietățile CBC, putem obține

    $$m_i \oplus m_j = c_{1-1} \oplus c_{j-1}.$$

    După cum putem vedea, acesta este doar x-sau al blocurilor de text simplu un atacator pasiv poate exploata.

Am vorbit doar despre modul CBC, cu toate acestea, pagina menționează mai multe și a lăsat să investigheze similar cu CBC;

Acest lucru este deosebit de important atunci când folosiți moduri comune de operare: avem nevoie de cifrurile bloc să fie securizate cu până la $2^n$ interogări, dar majoritatea modurilor de operare (de ex. CBC, CTR, GCM, OCB, etc.) sunt nesigure cu mai mult de $2^{n/2}$ blocuri de mesaje (legatul zilei de naștere).

Desigur că suntem aproape nu mai folosesc cifruri de dimensiunea unui bloc de 64 de biți. Cu toate acestea, acest atac este posibil chiar dacă criptați prea multe date folosind aceeași cheie. S-ar putea spune criptarea a $2^{64}$ datele sunt prea multe, nu vom cripta o astfel de dimensiune. Atunci avem un argument mai profund, 50% din atacul de ziua de naștere este prea mult pentru avantajul unui atacator, este departe de a fi neglijabil. Ei pot căuta chiar și probabilități mai mici de a dezvălui un bloc de mesaje. Ar trebui să te limitezi la $2^{32}$-blocare pentru a reduce avantajul atacatorului.

nimrodel avatar
drapel cz
să presupunem că criptăm AES „lună” cu cheia „morehotquestions” obține „fjydhpdag”. și criptăm „soare” cu cheia „hotnetworkquestions” obținând și „fjydhpdag”. este chiar posibil acest lucru? Întreb despre două chei și mesaje complet diferite. atunci, dacă pot cripta într-adevăr la același „fjydhpdag”, sistemul de decriptare AES poate fi confuz, adică decriptează ambele texte clare cu chei diferite?
kelalaka avatar
drapel in
Diferite taste selectează diferite permutări și acest lucru, în general, previne atacul. Atacul Sweet32 necesită aceeași cheie pe care nu o aveți.Ar trebui să vă definiți modul de operare pentru a vorbi mai multe despre asta, deoarece diavolul este în detalii (vă rugăm să nu modificați întrebarea deoarece a primit câteva răspunsuri)
kelalaka avatar
drapel in
Am scris o secțiune pentru întrebarea dvs. specifică pe care am omis-o și am răspuns și la comentariul dvs.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.