Secara teknis, ini penundaan yang disengaja adalah untuk mencegah serangan seperti "Serangan linierisasi" (ada serangan dan alasan lain juga) .
Untuk menggambarkan serangan itu, pertimbangkan sebuah program (tanpa ini
penundaan yang disengaja), yang memeriksa serial yang dimasukkan untuk melihat apakah itu
cocok dengan seri yang benar, yang dalam hal ini kebetulan
" xyba " . Untuk efisiensi, programmer memutuskan untuk memeriksanya
karakter sekaligus dan untuk keluar segera setelah karakter yang salah
ditemukan, sebelum memulai, panjang juga diperiksa.
Panjang serial yang benar akan membutuhkan waktu lebih lama untuk diproses daripada panjang serial yang salah. Bahkan lebih baik (untuk penyerang), nomor seri
yang memiliki karakter pertama yang benar akan membutuhkan waktu lebih lama dari itu
memiliki karakter pertama yang salah. Langkah-langkah berturut-turut dalam waktu tunggu
karena setiap kali ada satu loop lagi, perbandingan harus dilalui
pada input yang benar.
- Jadi, penyerang dapat memilih a string empat karakter dan bahwa string dimulai dengan x membutuhkan waktu paling banyak. (dengan tebakan)
- Penyerang kemudian dapat memperbaiki karakter sebagai x dan bervariasi karakter kedua, dalam hal ini mereka akan menemukan itu y butuh waktu lama.
- Penyerang kemudian dapat memperbaiki dua karakter pertama sebagai xy dan bervariasi karakter ketiga, dalam hal ini mereka akan menemukan itu b mengambil
terpanjang.
- Penyerang kemudian dapat memperbaiki tiga karakter pertama sebagai xyb dan bervariasi karakter keempat, dalam hal ini mereka akan menemukan itu Sebuah mengambil
terpanjang.
Oleh karena itu, para penyerang dapat memulihkan karakter serial satu per satu.
Linearization.java.
Linearization.docx, sampel keluaran
Nomor seri panjangnya empat karakter dan setiap karakter memiliki 128 nilai yang memungkinkan. Lalu ada 128 4 = 2 28 =
268.435.456 serial yang memungkinkan . Jika penyerang harus menebak secara acak
nomor seri lengkap, dia akan menebak nomor seri di sekitar 2 27 = 134.217.728 percobaan, yang merupakan pekerjaan yang sangat besar . Di sisi lain, dengan menggunakan serangan linierisasi di atas, sebuah
rata-rata hanya 128/2 = 64 tebakan diperlukan untuk setiap huruf, untuk a
total pekerjaan yang diharapkan sekitar 4 * 64 = 2 8 = 256 tebakan, yang merupakan jumlah pekerjaan sepele.
Banyak bela diri tertulis diadaptasi dari ini (diambil dari "Keamanan Informasi: Prinsip dan Praktik" Mark Stamp). Juga perhitungan di atas tidak memperhitungkan jumlah dugaan yang diperlukan untuk mengetahui panjang seri yang benar.