Apa perbedaan antara serangan preimage kedua dan serangan collision?

24

Wikipedia mendefinisikan serangan preimage kedua sebagai:

diberi pesan tetap m1, cari pesan berbeda m2 sedemikian sehingga hash (m2) = hash (m1).

Wikipedia mendefinisikan serangan tabrakan sebagai:

temukan dua pesan berbeda sembarang m1 dan m2 sedemikian sehingga hash (m1) = hash (m2).

Satu-satunya perbedaan yang bisa saya lihat adalah bahwa dalam serangan preimage kedua, m1 sudah ada dan dikenal oleh penyerang. Namun, itu tidak menurut saya signifikan - tujuan akhirnya masih menemukan dua pesan yang menghasilkan hash yang sama.

Apa perbedaan penting dalam bagaimana serangan preimage kedua dan serangan tabrakan dilakukan? Apa perbedaan hasil?

(Selain itu, saya tidak dapat menandai pertanyaan ini dengan benar. Saya mencoba menerapkan tag "kriptografi keamanan pra-gambar tabrakan" tetapi saya tidak memiliki reputasi yang cukup. Dapatkah seseorang menerapkan tanda yang sesuai?)

Thomas Owens
sumber
1
Kesan Anda benar - itulah bedanya. Bagian di mana Anda salah adalah bahwa ini adalah perbedaan BESAR dalam praktik. Adalah satu hal untuk dapat menemukan dua hal yang memiliki tabrakan, dan hal lain untuk dapat menemukan tabrakan untuk plaintext tertentu. Misalnya, jika Anda ingin menipu pesan tertentu, tidak ada gunanya melakukan pemalsuan eksistensial - Anda memerlukan pesan lain yang hash sama dengan pesan yang Anda sadap.
Adrian Petrescu
@Adrian Petrescu: Bisakah Anda membuat jawaban itu dan mungkin menguraikannya lagi? Tambahkan hal-hal seperti kapan masing-masing (Anda memberikan situasi untuk serangan preimage, tetapi tidak untuk serangan tabrakan) paling cocok?
Thomas Owens

Jawaban:

27

Saya dapat memotivasi perbedaan untuk Anda dengan skenario serangan.

Dalam serangan preimage pertama , kami meminta lawan, hanya diberikan , untuk menemukan atau sehingga = . Misalkan sebuah situs web menyimpan dalam basis datanya alih-alih . Situs web masih dapat memverifikasi keaslian pengguna dengan menerima kata sandi mereka dan membandingkan (dengan probabilitas untuk beberapa besar untuk positif palsu). Sekarang anggaplah basis data ini bocor atau dikompromikan. Sebuah serangan preimage pertamam m H ( m ) H ( m ) { u s e r n a m e , H ( p a s s w o r d ) } { u s e r n a m e , p a s s w o r d } H ( i nH(m)mmH(m)H(m){username,H(password)}{username,password}1 / 2 n nH(input)=?H(password)1/2nnadalah situasi di mana musuh hanya memiliki akses ke pesan intisari dan sedang berusaha menghasilkan pesan yang hash untuk nilai ini.

Dalam serangan preimage kedua , kami mengizinkan lawan informasi lebih lanjut. Secara khusus, kita tidak hanya memberinya tetapi juga memberinya . Pertimbangkan fungsi hash mana dan adalah bilangan prima besar dan adalah konstanta publik. Jelas untuk serangan preimage pertama ini menjadi masalah RSA dan diyakini sulit. Namun, dalam kasus serangan preimage kedua menemukan tabrakan menjadi mudah. Jika seseorang menetapkan ,m H ( m ) = m dH(m)mp q d m = m p q + m H ( m p q + m ) = ( m p q + m ) dH(m)=mdmodpqpqdm=mpq+mH(mpq+m)=(mpq+m)dmodpq=mdmodpq. Dan musuh telah menemukan tabrakan dengan sedikit atau tanpa perhitungan.

Kami ingin fungsi hash satu arah agar tahan terhadap serangan preimage kedua karena skema tanda tangan digital, dalam hal ini dianggap informasi publik dan diteruskan (melalui tingkat tipuan) dengan setiap salinan dokumen. Di sini penyerang memiliki akses ke dan . Jika penyerang dapat membuat variasi pada dokumen asli (atau pesan yang sama sekali baru) sedemikian rupa sehingga ia dapat menerbitkan dokumennya seolah-olah ia adalah penandatangan asli.d o c u m e n t H ( d o c u m e n t ) d H ( d ) = H ( d o c u m e n t )H(document)documentH(document)dH(d)=H(document)

Sebuah serangan tabrakan memungkinkan musuh bahkan lebih banyak kesempatan. Dalam skema ini, kami meminta lawan (dapatkah saya memanggilnya Bob?) Untuk menemukan dua pesan dan sedemikian rupa sehingga . Karena prinsip pigeonhole dan paradoks ulang tahun, bahkan fungsi hash 'sempurna' secara quadratically lebih lemah untuk serangan tabrakan daripada serangan preimage. Dengan kata lain, diberikan fungsi intisari pesan yang tidak dapat diprediksi dan tidak dapat diubah, yang membutuhkan waktu untuk memaksa, tabrakan dapat selalu ditemukan dalam waktu yang diharapkan .m 2m1m2f ( { 0 , 1 } ) = { 0 , 1 } n O ( 2 n ) O ( s q r t ( 2 n ) ) = O ( 2 n / 2 )H(m1)=H(m2)f({0,1})={0,1}nO(2n)O(sqrt(2n))=O(2n/2)

Bob dapat menggunakan serangan tabrakan untuk keuntungannya dalam banyak hal. Berikut adalah salah satu yang paling sederhana: Bob menemukan tabrakan antara dua binari dan ( ) sehingga b adalah patch keamanan Microsoft Windows yang valid dan adalah malware. (Bob bekerja untuk Windows). Bob mengirimkan patch keamanannya ke atas rantai komando, di mana di belakang lemari besi mereka menandatangani kode dan mengirimkan biner ke pengguna Windows di seluruh dunia untuk memperbaiki kesalahan. Bob sekarang dapat menghubungi dan menginfeksi semua komputer Windows di seluruh dunia dengan dan tanda tangan yang dikomputasi oleh Microsoft untukb H ( b ) = H ( b ) b b bbbH(b)=H(b)bbb. Di luar skenario serangan seperti ini, jika fungsi hash diyakini tahan benturan, fungsi hash itu juga lebih cenderung tahan terhadap preimage.

Ross Snider
sumber
Itu dijelaskan dengan indah. Matematika jauh lebih banyak daripada yang saya cari, tetapi saya sangat menghargai upaya - saya mengikuti Anda menembus masing-masing. Terima kasih.
Thomas Owens
Dan wow. Seorang teman mahasiswa RIT.
Thomas Owens
1
Bagaimana kabarnya Thomas? Saya pikir Anda memiliki Fisika dengan teman saya Alan Meekins. Senang melihat orang-orang RIT di sini! Juga, terima kasih telah menerima jawabannya.
Ross Snider
Cukup bagus. Jika Anda akan berada di sekitar kampus pada musim gugur dan tertarik pada keamanan, mungkin kita dapat mengejar ketinggalan secara langsung. Saya telah melakukan beberapa pekerjaan keamanan terapan (menerapkan stenografi, steganalisis, enkripsi kunci publik, tanda tangan digital) musim panas ini dan akan senang mendengar tentang sisi teoretis (sebanyak yang saya minati - saya tidak punya waktu atau latar belakang matematika untuk melewati banyak makalah tentang subjek).
Thomas Owens
[email protected]
Ross Snider
2

Serangan tabrakan mungkin jauh lebih mudah, tetapi jika berhasil, jauh lebih bermanfaat.

Jukka Suomela
sumber
1

Masalah yang Ross sebutkan sebagai masalah log diskrit dalam kenyataannya adalah masalah yang sama sekali berbeda, masalah RSA, yang jauh lebih terkait dengan komputasi akar daripada log diskrit.


sumber
2
Ini memang benar! Ups. Awalnya saya menggunakan masalah log diskrit dan kemudian diedit rincian skema. Tangkapan yang bagus. Tidak yakin bahwa ini merupakan jawaban baru - mungkin lebih tepat untuk memberikan komentar di bawah jawaban saya.
Ross Snider