Sifat-sifat fungsi hash kriptografi : 1.
Preimage resistant Bila diketahui nilai hash h maka sulit secara komputasi tidak layak untuk
mendapatkan m dimana h = hashm. 2.
Second Preimage resistant Bila diketahui input m
1
maka sulit mencari input m
2
tidak sama dengan m
1
yang menyebabkan hashm
1
=hashm
2
3. Collision-resistant
Sulit mencari dua input berbeda m
1
dan m
2
yang menyebabkan hashm
1
= hashm
2
Beberapa contoh algoritma fungsi hash kriptografi yaitu MD4, MD5, SHA-0, SHA-1, SHA-256, SHA-512.
2.7 DSA
DSA dikembangkan dari algoritma ElGamal. DSA tidak dapat digunakan untuk enkripsi tetapi di spesifikasikan khusus untuk tanda tangan digital. Pada DSA,
algoritma signature dan verifikasi berbeda. DSA menggunakan dua buah kunci, yaitu kunci publik dan kunci privat. Pembentukan tanda tangan menggunakan
kunci rahasia privat, sedangkan verifikasi tanda tangan menggunakan kunci publik pengirim.
DSA menggunakan fungi hash SHA Secure Hash Algorithm untuk mengubah pesan menjadi message digest yang berukuran 160 bit. Tingkat
keamanan DSA bergantung kepada dua masalah logaritma yang jauh akan tetapi saling berkaitan. Pertama adalah masalah logaritma di Zp dimana metode index
kalkulus yang kuat diterapkan. Yang kedua adalah masalah logaritma pada cyclic subgroup
pada urutan q, dimana metode berjalan pada waktu yang “square-root” Wizanajani, 2013.
Mekanisme tanda tangan menggunakan sebuah fungsi hash h: 0,1 » Zq untuk sebuah integer q. Pembuatan kunci untuk algoritma DSA sebagai berikut :
1. Ambil sebuah angka prima q 160-bit dimana 2
159
q 2
160
Universitas Sumatera Utara
2. Ambil t dimana 0 ≤ t ≤ 8
3. Ambil bilangan prima p dimana 2
511 + 64t
q 2
512 + 64t
, dengan tambahan bahwa q dapat dibagi oleh p-1
4. Pilih sebuah generator α dari uniqe cyclic group berdasar urutan q di Zp
5. Ambil bilangan integer acak dimana 1 ≤ a ≤ q-1
6. Hitung y = α
a
mod p K
unci publik mengandung p, q, α, y, dan kunci privat adalah a.
2.8 Elgamal
Algoritma ElGamal dibuat oleh Taher ElGamal pada tahun 1984. Algoritma ini pada mulanya digunakan untuk tanda tangan digital atau digital signature. Namun
kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi. ElGaMal digunakan dalam perangkat lunak yang dikembangkan oleh GNU,
program PGP, dan pada program keamanan jaringan lainnya. Keamanan algoritma ini terletak pada sulitnya menghitung algoritma diskrit. Masalah algoritma diskrit
adalah, jika p adalah bilangan prima dan g dan y adalah sembarang bilangan bulat. Carilah x sedemikian
sehingga gx ≡ y mod p. Rinaldi, 2006. Besaran - besaran yang digunakann dalam algoritma ElGamal adalah :
1. Bilangan Prima p Publik 2. Bilangan acak, g gp Publik
3. Bilangan acak,x xp-3 Privat 4. y = gx mod p Publik
5. m Plainteks Privat 6. a dan b Chiperteks Publik
Prosedur Membuat Pasangan Kunci :
1. Pilih sembarang bilangan prima p. 2. Pilih dua buah bilangan acak, g dan x, dengan syarat g p dan x p.
3. Hitung y = g
x
mod p.
Universitas Sumatera Utara
4. Kunci publik adalah y, kunci rahasia adalah x. Nilai g dan p tidak dirahasiakan dan dapat diumumkan kepada anggota kelompok.
Enkripsi :
1. Plainteks disusun menjadi blok-blok m
1
, m
2
, …, sedemikian sehingga setiap blok merepresentasikan nilai di dalam rentang 0 sampai p
– 1. 2. Pilih bilangan acak k, yang dalam hal ini 0 k p
– 1, sedemikian sehingga k relatif prima dengan p
– 1. 3. Setiap blok m dienkripsi dengan rumus :
a = g
k
mod p b
= y
k
m mod p
Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya.
Dekripsi :
Untuk mendekripsi a dan b digunakan kunci rahasia, x, dan plainteks m diperoleh kembali dengan persamaan :
m = ba
x
mod p karena :
a
x
g
kx
mod p maka :
b a
x
y
k
m a
x
g
xk
m g
xk
m mod p yang berarti bahwa plainteks dapat ditemukan kembali dari pasangan cipherteks a
dan b.
2.9 ECC Elliptical Curve Cryptography