Việc sử dụng lại bộ đệm một lần cho thấy sự khác biệt của các bản rõ do tính tuyến tính của nó:
$$c_1 = m_1 \oplus k,~~~~ c_2 = m_2 \oplus k,~~~~ c_1 \oplus c_2 = m_1 \oplus m_2.$$
Mặt khác, mật mã khối tốt (dựa trên Feistel Networks hoặc SPN hoặc bất kỳ thứ gì khác) làm giảm thông tin bị rò rỉ trực tiếp do sử dụng lại khóa: nếu $c_1 = E_k(m_1), c_2 = E_k(m_2)$, sau đó, đưa ra $c_1$ và $c_2$ chúng ta chỉ có thể kết luận liệu $m_1$ và $m_2$ có bằng nhau hay không (bằng cách kiểm tra xem $c_1$ và $c_2$ có bằng nhau hay không).
Trước hết, điều này là không đủ đối với các yêu cầu mã hóa hiện đại: cách mã hóa như vậy vẫn được coi là không an toàn vì nó vẫn làm rò rỉ thông tin về các tin nhắn.
Tuy nhiên, bằng cách sử dụng chế độ mật mã khối thích hợp (chẳng hạn như CBC, CTR), chúng ta có thể ngẫu nhiên hóa các đầu vào của mật mã khối, sao cho, ngay cả khi các thông điệp giống nhau, đầu vào và đầu ra của mật mã khối sẽ khác nhau ( với xác suất rất cao). Bằng cách này, kẻ tấn công sẽ không thể biết liệu các thông báo có bằng nhau hay không chỉ được cung cấp các bản mã.
CẬP NHẬT: để đưa vấn đề về nhà, vấn đề không phải là tính không khả nghịch của hàm Feistel $F$ chính nó: nó có thể đảo ngược và FN sẽ vẫn an toàn (có thể với một vài vòng nữa). Trên thực tế, bạn thậm chí không cần phải đảo ngược $F$ để giải mã một khối. Khó khăn trong việc phá vỡ nó là một khóa bí mật không xác định được sử dụng theo cách phi tuyến tính phức tạp, làm cho việc trích xuất bất kỳ mối quan hệ có ý nghĩa nào giữa các khối văn bản gốc/bản mã trở nên rất khó khăn (ngược lại với bộ đệm nhiều lần, trong đó mối quan hệ là tuyến tính và đơn giản).