Komputer kuantum mungkin memiliki beberapa keunggulan dibandingkan komputer klasik untuk beberapa kasus. Contoh yang paling luar biasa adalah Algoritma Shor yang dapat memfaktorkan sejumlah besar waktu polinomial (sementara secara klasik, algoritma yang paling terkenal membutuhkan waktu yang eksponensial). Ini benar-benar merusak skema seperti RSA, berdasarkan kekerasan faktorisasi.
Ini belum tentu kasus untuk fungsi hash. Pertama, kita perlu mendefinisikan apa artinya memecah fungsi hash. Salah satu cara untuk memecahnya disebut serangan pra-gambar : Anda memberi saya nilai hash , dan saya perlu menemukan pesan sedemikian sehingga . Serangan lain adalah serangan tabrakan , di mana Anda tidak memberi saya apa-apa, dan saya perlu membuat dua pesan berbeda yang memiliki hash . Ini lebih mudah daripada menemukan preimage, karena saya tidak terikat pada tertentu .vmhash( m ) = vm1, m2hash( m1) = hash( m2)v
Apa yang dapat dilakukan komputer Quantum? Hasil utama adalah algoritma pencarian Grover : metode untuk komputer kuantum untuk mencari dalam database berukuran tidak disortir dengan waktu (sementara secara klasik akan membutuhkan waktu yang diharapkan dari ).NO ( N--√)N/ 2
Dengan algoritma Grover, menemukan preimage dari fungsi hash yang outputnya bit membutuhkan waktu , daripada .kO ( 2k / 2)O ( 2k)
Apakah ini masalah ? Belum tentu. Fungsi hash dirancang sedemikian rupa sehingga waktu dianggap "aman" (dengan kata lain, desainer hash selalu menggandakan ). Ini disebabkan oleh paradoks Ulang Tahun yang dengannya menemukan tabrakan dimungkinkan dengan waktu oleh komputer klasik.2k / 2kO ( 2k / 2)
Hal yang menyenangkan tentang algoritma Grover yang optimal - setiap algoritma kuantum lainnya untuk menemukan elemen dalam basis data yang tidak disortir akan berjalan dalam waktu .Ω ( N--√)
Dapatkah komputer kuantum melakukan serangan tabrakan yang lebih baik ? Sebenarnya saya tidak yakin tentang itu. Algoritma Grover dapat diperpanjang, sehingga jika ada item (yaitu, preimage), waktu untuk menemukannya dikurangi menjadi . Tapi ini tidak memberikan benturan - menjalankan algoritma lagi mungkin mengembalikan preimage yang sama. Di sisi lain, jika kita memilih secara acak, dan kemudian menggunakan Algoritma Grover, besar kemungkinan akan mengembalikan pesan yang berbeda. Saya tidak yakin apakah ini memberikan serangan yang lebih baik.tO ( N/ t----√)m1
(ini menjawab pertanyaan yang lebih umum, tanpa membatasi komputer hingga 20 qubit, yang tidak akan cukup untuk memecahkan hash 1024-bit saat ini).