Ambele nu sunt foarte clare, mai ales dacă nu înțelegeți matematica implicată, deși ambele au descrieri foarte asemănătoare. Aș spune că prima carte are o descriere mai bună pentru confuzie, dar a doua este mai bună pentru difuzare, deși este cheia care este difuzată în text simplu pentru a face textul cifrat, într-un mod „confuz”, astfel încât să nu poți „nedifuza”. " fie din textul cifrat.
De fapt, cu un strat de „confuzie” suficient de mare, nu ai nevoie de un strat de „difuzie”. Confuzia se referă la o operație neliniară, iar difuzia o operație liniară. Operațiile mari neliniare sunt FOARTE costisitoare din punct de vedere computațional, motiv pentru care o operație neliniară mică este combinată cu operații liniare pentru a face treaba.
Ceea ce face combinația de amestecare liniară și non-liner este să facă din relația dintre text cifrat și cheie și dintre text cifrat și text simplu, o problemă de matematică extrem de complexă de rezolvat.Dacă cineva cunoaște textul simplu și textul cifrat, nu doriți să găsească cheia, iar dacă cunoaște doar textul cifrat, nu doriți să găsească cheia sau textul simplu.
Vă ajută să vedeți cum acestea se aplică unui cifr comun precum AES. AES folosește un bloc de 128 de biți, cu o sbox neliniară de 8 biți și o multiplicare matrice liniară într-un câmp finit care operează pe 32 de biți ai blocului în 4 căi paralele.
În AES, confuzia vine de la s-box (stratul Sub Byte), care este folosit în funcția rotundă, precum și în programul cheie. Difuzia provine din operațiunea matricei (stratul Mix Column) combinată cu deplasarea rândurilor, astfel încât toți biții de intrare să fie complet amestecați pe parcursul a 2 runde, în combinație cu modul în care sunt generate subcheile rotunde în programul cheilor.
Cu suficiente runde, munca de rezolvare a problemei de matematică devine mai grea decât forțarea brută a cheii, iar AES le are aproape la același nivel. Bineînțeles că este mai complicat decât atât, dar acestea sunt notele de stâncă.
Imagine prin amabilitatea wikipediei