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ă).