Katakanlah kita memiliki satu miliar gambar unik, masing-masing satu megabita. Kami menghitung hash SHA-256 untuk konten setiap file. Kemungkinan tabrakan tergantung pada:
- jumlah file
ukuran file tunggal
Seberapa jauh kita bisa mengabaikan kemungkinan ini, dengan asumsi itu nol?
Jawaban:
Jawaban yang biasa berlaku sebagai berikut: berapakah probabilitas asteroid jahat menabrak Bumi dalam detik berikutnya, melenyapkan peradaban-seperti-kita-ketahui-itu, dan membunuh beberapa miliar orang? Dapat dikatakan bahwa setiap peristiwa sial dengan probabilitas lebih rendah dari itu sebenarnya tidak terlalu penting.
Jika kita memiliki fungsi hash "sempurna" dengan output ukuran n , dan kami memiliki p pesan ke hash (panjang pesan individu tidak penting), maka kemungkinan tabrakan adalah tentang p 2 /2 n + 1 (ini adalah perkiraan yang berlaku untuk p "kecil" , yaitu jauh lebih kecil dari 2 n / 2 ). Misalnya, dengan SHA-256 ( n = 256 ) dan satu miliar pesan ( p = 10 9 ) maka probabilitasnya sekitar 4,3 * 10 -60 .
Batuan ruang-pembunuh massal terjadi rata-rata setiap 30 juta tahun sekali. Hal ini mengarah pada kemungkinan kejadian seperti itu terjadi pada detik berikutnya menjadi sekitar 10 -15 . Itu 45 pesanan besarnya lebih mungkin daripada tabrakan SHA-256. Singkatnya, jika Anda menemukan SHA-256 bertabrakan menakutkan maka prioritas Anda salah.
Dalam pengaturan keamanan, di mana penyerang dapat memilih pesan yang akan di-hash, maka penyerang dapat menggunakan secara substansial lebih dari satu miliar pesan; Namun, Anda akan menemukan bahwa probabilitas keberhasilan penyerang masih akan semakin kecil. Itulah inti menggunakan fungsi hash dengan output 256-bit: sehingga risiko tabrakan dapat diabaikan.
Tentu saja, semua hal di atas mengasumsikan bahwa SHA-256 adalah fungsi hash "sempurna", yang masih jauh dari terbukti. Meski begitu, SHA-256 tampaknya cukup kuat.
sumber
Kemungkinan tabrakan tidak tergantung pada ukuran file, hanya pada jumlah mereka.
Ini adalah contoh dari paradoks ulang tahun . Halaman Wikipedia memberikan perkiraan kemungkinan tabrakan. Jika Anda menjalankan angka, Anda akan melihat bahwa semua hardisk yang pernah diproduksi di Bumi tidak dapat menampung cukup file 1MB untuk mendapatkan kemungkinan tabrakan bahkan 0,01% untuk SHA-256.
Pada dasarnya, Anda bisa mengabaikan kemungkinan itu.
sumber
Pertama-tama, ini bukan nol, tetapi sangat dekat dengan nol .
Pertanyaan kuncinya adalah apa yang terjadi jika tabrakan benar-benar terjadi ? Jika jawabannya adalah "pembangkit listrik tenaga nuklir akan meledak" maka Anda kemungkinan tidak akan mengabaikan kemungkinan tabrakan. Dalam kebanyakan kasus, konsekuensinya tidak terlalu mengerikan sehingga Anda dapat mengabaikan kemungkinan tabrakan.
Juga jangan lupa bahwa perangkat lunak Anda (atau sebagian kecil dari itu) dapat digunakan dan secara bersamaan digunakan dalam trilyun komputer (beberapa mikrokomputer kecil yang tertanam yang hampir di mana-mana saat ini termasuk). Jika demikian, Anda perlu melipatgandakan estimasi yang Anda dapatkan dengan jumlah salinan sebanyak mungkin.
sumber