Về mặt kỹ thuật, điều này cố tình trì hoãn này là để ngăn chặn các cuộc tấn công như "Cuộc tấn công tuyến tính hóa" (còn có các cuộc tấn công và lý do khác nữa) .
Để minh họa cuộc tấn công, hãy xem xét một chương trình (không có sự cố ý trì hoãn này), chương trình này sẽ kiểm tra một chuỗi đã nhập để xem liệu nó có khớp với chuỗi chính xác hay không, trong trường hợp này là " xyba " . Để hiệu quả, lập trình viên quyết định kiểm tra từng ký tự một và thoát ra ngay khi phát hiện thấy ký tự không chính xác, trước khi bắt đầu độ dài cũng được kiểm tra.
Độ dài nối tiếp chính xác sẽ mất nhiều thời gian để xử lý hơn độ dài nối tiếp không chính xác. Thậm chí tốt hơn (đối với kẻ tấn công), một số sê-ri có ký tự đầu tiên chính xác sẽ mất nhiều thời gian hơn bất kỳ số nào có ký tự đầu tiên không chính xác. Các bước liên tiếp trong thời gian chờ là do mỗi lần có thêm một vòng lặp, hãy so sánh để thực hiện đúng đầu vào.
- Vì vậy, kẻ tấn công có thể chọn một chuỗi bốn ký tự và chuỗi bắt đầu bằng x sẽ mất nhiều thời gian nhất. (bằng cách đoán công việc)
- Kẻ tấn công sau đó có thể sửa chữa nhân vật là x và thay đổi ký tự thứ hai, trong trường hợp đó họ sẽ thấy rằng y mất nhiều thời gian nhất.
- Kẻ tấn công sau đó có thể sửa hai ký tự đầu tiên là xy và thay đổi ký tự thứ ba, trong trường hợp đó, họ sẽ thấy rằng b mất nhiều thời gian nhất.
- Kẻ tấn công sau đó có thể sửa ba ký tự đầu tiên thành xyb và thay đổi ký tự thứ tư, trong trường hợp đó chúng sẽ thấy rằng một mất nhiều thời gian nhất.
Do đó, những kẻ tấn công có thể khôi phục từng ký tự nối tiếp một.
Tuyến tính hóa.java.
Tuyến tính hóa.docx, đầu ra mẫu
Số sê-ri dài bốn ký tự, mỗi ký tự có 128 giá trị có thể. Khi đó có 128 4 = 2 28 = 268.435.456 nối tiếp có thể có . Nếu kẻ tấn công phải đoán ngẫu nhiên các số sê-ri đầy đủ, cô ta sẽ đoán số sê-ri trong khoảng
2 27 = 134.217.728 lần thử, đó là một khối lượng công việc khổng lồ . Mặt khác, bằng cách sử dụng cuộc tấn công tuyến tính hóa ở trên, trung bình chỉ cần 128/2 = 64 lần đoán cho mỗi chữ cái, cho tổng công việc dự kiến là khoảng 4 * 64 = 2 8 = 256 lần đoán,
đó là một số tiền nhỏ. của công việc.
Phần lớn văn bản võ thuật được chuyển thể từ điều này (trích từ "Bảo mật thông tin: Nguyên tắc và thực hành" của Mark Stamp). Ngoài ra, các tính toán ở trên không tính đến số lượng phỏng đoán cần thiết để tìm ra độ dài nối tiếp chính xác.