Anda di halaman 1dari 4

1.2.

5 Fungsi Hash

Fungsi hash kriptografis digunakan untuk mengompresi pesan dengan panjang


sembarang ke intisari pesan pendek, tampak acak, dan panjang tetap. Perhatikan bahwa
fungsi hash adalah fungsi publik yang dianggap diketahui semua orang. Selanjutnya, fungsi
hash tidak memiliki kunci. Fungsi hash dibahas dalam Bab 5.

Setelah Alice meng-hash pesan, dia menandatangani intisari pesan, menggunakan


algoritme penandatanganan pribadinya. Pesan asli, bersama dengan tanda tangan pada pesan,
kemudian ditransmisikan ke Bob, katakanlah. Proses ini disebut hash-then-sign. Untuk
memverifikasi tanda tangan, Bob akan menghitung intisari pesan dengan hashing pesan.
Kemudian dia akan menggunakan algoritma verifikasi publik untuk memeriksa validitas
tanda tangan pada intisari pesan. Ketika tanda tangan digunakan bersama dengan enkripsi
kunci publik, prosesnya sebenarnya adalah hash-lalu-tanda-lalu-enkripsi. Artinya, pesan di-
hash, intisari pesan kemudian ditandatangani, dan akhirnya, pesan dan tanda tangan
dienkripsi. Fungsi hash kriptografis sangat berbeda dari fungsi hash yang digunakan untuk
membuat tabel hash, misalnya. Dalam konteks tabel hash, fungsi hash umumnya diperlukan
hanya untuk menghasilkan tabrakan dengan probabilitas yang cukup kecil. Di sisi lain, jika
fungsi hash kriptografi digunakan, itu harus Tabrakan untuk fungsi h terjadi ketika h(x)=hy)
untuk beberapa xy. Pengantar Kriptografi menjadi komputasi tidak layak untuk menemukan
tabrakan, meskipun mereka harus ada. Fungsi hash kriptografi biasanya diperlukan untuk
memenuhi keamanan tambahan properti, seperti yang dibahas dalam Bagian 5.2. Fungsi hash
kriptografi juga memiliki kegunaan lain, seperti untuk derivasi kunci. Ketika digunakan
untuk derivasi kunci, fungsi hash akan diterapkan ke acak Panjang string untuk membuat
kunci acak pendek. Akhirnya, harus ditekankan bahwa fungsi hash tidak dapat digunakan
untuk enkripsi, karena dua alasan mendasar. Pertama adalah fakta bahwa fungsi hash tidak
memiliki kunci. Yang kedua adalah bahwa fungsi hash tidak dapat dibalik (bukan fungsi
injektif) sehingga intisari pesan tidak dapat "didekripsi" untuk menghasilkan nilai plaintext
yang unik.
8.2 Persyaratan Keamanan untuk Skema Tanda Tangan

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:

serangan hanya kunci

Oscar memiliki kunci publik Alice, yaitu, fungsi verifikasi, verk.

serangan pesan yang diketahui

Oscar memiliki daftar pesan yang sebelumnya ditandatangani oleh Alice, katakanlah

(x1,y1), (x2, y2),...

di mana x, adalah pesan dan y; adalah tanda tangan Alice pada pesan ini

bijak (jadi y = sig(x),i=1,2,...).

serangan pesan terpilih

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

verk (x₁x2 mod 11, y₁₂ mod n) = benar,

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.

8.2.1 Tanda Tangan dan Fungsi Hash

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.

Kriptografi: Teori dan Praktik


Misalkan Alice ingin menandatangani pesan x, yang merupakan bitstring dengan
panjang arbitrer. Dia pertama membangun intisari pesan = h(x), dan kemudian menghitung
tanda tangan pada z, yaitu, y = sig (z). Kemudian dia mentransmisikan pasangan terurut (x,y)
melalui saluran. Sekarang verifikasi dapat dilakukan (oleh siapa saja) dengan terlebih dahulu
membangun kembali intisari pesan z = h(x) menggunakan fungsi hash publik h, dan
kemudian memeriksa bahwa verg (z,y) = true.

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.

Anda mungkin juga menyukai