Puncte:2

De ce reutilizarea cheilor nu este o problemă într-un cifr Feistel?

drapel ec

Am o bună înțelegere a cifrurilor de flux și un singur bloc de timp. Știu, de asemenea, pericolele utilizării aceleiași chei într-un PRG pentru un cifru de flux.

Totuși, din câte îmi pot da seama, cifrul bloc Feistel folosește aceeași cheie pentru fiecare bloc de text simplu (care este extins în chei pentru fiecare rundă). Dacă acest lucru este adevărat, de ce nu este aceasta o problemă? Este pentru că funcția F și în special casetele S utilizate nu sunt inversabile (adică o singură ieșire are multe intrări posibile)?

drapel et
Un cifru de flux funcționează ca un bloc de o singură dată - folosind aceeași cheie de două ori îl face un bloc de două ori care poate fi atacat - https://crypto.stackexchange.com/questions/59/taking-advantage-of-one- time-pad-key-reutilizare
drapel et
Chiar și în cifrul bloc, trebuie să modificați cheia de fiecare dată prin schimbarea IV-ului etc., alte informații despre scurgerile de text simplu care încalcă securitatea. Verificați modurile de operare pentru cifrurile bloc.
user2357 avatar
drapel us
@user93353 Cred că problema modernă a cifrului de flux a prejudiciului utilizării aceleiași chei a fost rezolvată prin utilizarea IV, am dreptate?
Puncte:2
drapel in

Reutilizarea unică a pad-urilor dezvăluie diferențele dintre textele clare datorită liniarității sale: $$c_1 = m_1 \oplus k,~~~~ c_2 = m_2 \oplus k,~~~~ c_1 \oplus c_2 = m_1 \oplus m_2.$$

Cifrurile bloc bune (bazate pe Feistel Networks sau SPN sau orice altceva) pe de altă parte reduc informațiile scurse direct de reutilizarea cheii: dacă $c_1 = E_k(m_1), c_2 = E_k(m_2)$, apoi, dat $c_1$ și $c_2$ putem doar concluziona dacă $m_1$ și $m_2$ sunt egale sau nu (verificând dacă $c_1$ și $c_2$ sunt egali sau nu).

În primul rând, acest lucru nu este suficient pentru cerințele moderne de criptare: o astfel de criptare este încă considerată nesigură, deoarece încă scurge informații despre mesaje.

Cu toate acestea, folosind un mod adecvat de criptare bloc (cum ar fi CBC, CTR), putem randomiza intrările la criptul bloc, astfel încât, chiar dacă mesajele sunt aceleași, intrările și ieșirile către cifrul bloc vor fi diferite ( cu probabilitate foarte mare). În acest fel, un atacator nu va putea spune dacă mesajele au fost egale sau nu doar având în vedere textele cifrate.

UPD: pentru a conduce punctul acasă, nu este vorba de neinvertibilitatea funcției Feistel $F$ în sine: poate fi inversabil și FN-ul va fi în continuare securizat (poate cu încă câteva runde). De fapt, nici nu trebuie să inversați $F$ pentru a decripta un bloc. Dificultatea de a sparge este că o cheie secretă necunoscută este utilizată într-un mod complex neliniar, făcând extragerea oricărei relații semnificative între blocurile de text simplu/ciphertext foarte dificilă (dimpotrivă de pad-ul de mai multe ori, unde relația este liniară și simplă).

Maarten Bodewes avatar
drapel in
Unele indicii de ce nu ar fi posibil să se regăsească cheia având în vedere atât blocurile de text simplu, cât și blocurile de text cifrat cunoscute pentru un cifr bazat pe Feistel ar fi bine, având în vedere întrebarea.
Abhisek Dash avatar
drapel ec
@Fractalice Vă mulțumim pentru răspuns. Înțeleg ce insinuezi. Întrebarea mea a vizat găsirea „dinamicii de guvernare” a cifrurilor bloc. Toată complexitatea care intră într-un cifru bloc, cum ar fi funcția F, care ia jumătate din intrare și cheia în cifrurile Feistel, face ceva care nu poate fi inversat. Deci, întoarcerea nu este posibilă (sau cel puțin foarte dificilă). Este raționamentul meu corect?
Fractalice avatar
drapel in
@RajavelPeriyarajan nu este vorba despre neinversabilitatea funcției $F$ în sine. $F$ inversabil poate fi ușor securizat. De fapt, nici măcar nu trebuie să inversați $F$ pentru a decripta un bloc. Dificultatea este că este folosită o cheie secretă necunoscută (înainte, după sau în interiorul $F$), iar acest lucru face decriptarea foarte dificilă.
Abhisek Dash avatar
drapel ec
@Fractalice Da, ai dreptate. Cheia este ceea ce face cifrul sigur. Dar există o altă problemă și anume reutilizarea cheilor. Cred că toată complexitatea din interiorul funcției F non-invertibile din cifra Feistel facilitează reutilizarea cheilor pentru fiecare bloc de text simplu. După cum ați subliniat, cifrul poate fi vulnerabil la Chosen Plaintext Attack, dar cel puțin nu este la fel de periculos ca două time pad.Fără funcția F, cifrul Feistel ar fi vulnerabil la două blocuri de timp. Am dreptate să presupun asta? De asemenea, îmi puteți indica niște cifruri care folosesc o funcție inversabilă?
Abhisek Dash avatar
drapel ec
Cu alte cuvinte, ce realizează funcția F? Cred că asta este tot ce voiam să întreb.
Fractalice avatar
drapel in
@RajavelPeriyarajan de ex. [LBlock](https://eprint.iacr.org/2011/345.pdf)
Fractalice avatar
drapel in
@RajavelPeriyarajan Realizează ceva numit „confuzie”: face relația dintre text simplu/ciphertext/cheie foarte complexă.
Abhisek Dash avatar
drapel ec
@Fractalice Am înțeles. Funcția F este o PRF (Pseudo Random Function, care nu este inversabilă), dar Cifrul Feistel în ansamblu este un PRP (Pseudo Random Permutation, care este inversabilă.) Acum am o înțelegere mai clară.

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.