5 Fungsi Hash
Di bagian ini, kita membahas apa artinya skema tanda tangan menjadi "aman".
Seperti halnya dengan sistem kripto, kita perlu menentukan model serangan, tujuannya
musuh, dan jenis keamanan yang disediakan oleh skema.
Ingat dari Bagian 2.2 bahwa model serangan mendefinisikan informasi yang tersedia
kepada musuh. Dalam kasus skema tanda tangan, jenis model serangan berikut biasanya
dipertimbangkan:
Oscar memiliki daftar pesan yang sebelumnya ditandatangani oleh Alice, katakanlah
di mana x, adalah pesan dan y; adalah tanda tangan Alice pada pesan ini
Oscar meminta tanda tangan Alice pada daftar pesan. Oleh karena itu dia memilih
pesan 11, 12,..., dan Alice memberikan tanda tangannya pada pesan-pesan ini, yaitu, y = sig
(xi), i = 1, 2,....
Kami mempertimbangkan beberapa kemungkinan tujuan permusuhan:
total break
Oscar dapat menentukan kunci pribadi Alice, yaitu, fungsi penandatanganan sig Oleh karena
itu ia dapat membuat tanda tangan yang valid pada pesan apa pun.
pemalsuan selektif
Dengan beberapa kemungkinan yang tidak dapat diabaikan, Oscar dapat membuat
tanda tangan yang valid pada pesan yang dipilih oleh orang lain. Dengan kata lain, jika Oscar
diberikan pesan x, maka dia dapat menentukan (dengan beberapa kemungkinan) tanda tangan
y seperti itu bahwa verk (x, y) = benar. Pesan x seharusnya bukan yang sebelumnya
ditandatangani oleh Alice.
pemalsuan eksistensial
Skema Tanda Tangan RSA. Pada Bagian 8.1, kami mengamati bahwa Oscar dapat
membuat pesan bertanda yang valid dengan memilih tanda tangan y dan kemudian
menghitung x sedemikian rupa sehingga verk(x,y) = true. Ini akan menjadi pemalsuan
eksistensial menggunakan serangan kunci saja. Jenis serangan lainnya didasarkan pada
properti multiplikatif RSA, yang kami sebutkan di Bagian 6.9.1. Misalkan y₁ = sig(x) dan y2
= sig (12) adalah dua pesan yang sebelumnya ditandatangani oleh Alice. Kemudian
dan oleh karena itu Oscar dapat membuat mod y₁y2 tanda tangan yang valid pada pesan x12
mod 1. Ini adalah contoh pemalsuan eksistensial menggunakan serangan pesan yang
diketahui.
Skema tanda tangan hampir selalu digunakan bersama dengan fungsi hash kriptografi
(publik) yang aman. Fungsi hash : {0,1}* → Z akan mengambil pesan dengan panjang
sembarang dan menghasilkan intisari pesan dengan ukuran tertentu (224 bit adalah pilihan
yang populer). Intisari pesan kemudian akan ditandatangani menggunakan skema tanda
tangan (P, A, K, S, V), di mana Z CP.
Kita harus berhati-hati agar penggunaan fungsi hash h tidak melemahkan keamanan skema
tanda tangan, karena intisari pesan yang ditandatangani, bukan pesan. Akan diperlukan ht
untuk memenuhi sifat-sifat tertentu untuk mencegah berbagai serangan. Properti yang
diinginkan dari fungsi hash adalah yang sudah dibahas di Bagian 5.2. Jenis serangan yang
paling jelas adalah Oscar memulai dengan pesan bertanda tangan yang valid bijak (x, y), di
mana y = sig (h(x)). (Pasangan (x, y) dapat berupa pesan apa saja yang sebelumnya
ditandatangani oleh Alice.) Kemudian dia menghitung z= h(x) dan mencoba mencari x'x
sedemikian rupa sehingga h(x) = h(x). Jika Oscar dapat melakukan ini, (x, y) akan menjadi
pesan bertanda tangan yang valid, jadi y adalah tanda tangan palsu untuk pesan x'. Ini adalah
pemalsuan eksistensial menggunakan serangan pesan yang dikenal. Untuk mencegah jenis
serangan ini, kami mengharuskan saya menjadi tahan pragambar kedua.