2.11.1 Karakteristik Fungsi Hash
Dari beberapa definisi yang telah dijelaskan sebelumnya, dapat ditarik kesimpulan mengenai beberapa karakteristik fungsi hash, antara lain:
1. Fungsi hash dapat diimplementasikan untuk input data berapapun panjangnya,
2. Fungsi hash menghasilkan output dengan ukuran panjang yang tetap.
3. Untuk semua nilai input x, y = fx mudah untuk dihitung. Dengan kata lain
terdapat polynomial time algorithm untuk menghitung y = fx dengan mengetahui nilai x.
4. Untuk semua nilai y yang berada pada daerah hasil f, dengan mengetahui nilai
y, akan sulit untuk mengetahui nilai x. Dengan kata lain dibutuhkan suatu super polynomial time algorithm untuk menyelesaikan permasalahan tersebut.
5. Untuk suatu nilai x, secara komputasi sulit
untuk mencari x‟≠ x, di mana fx‟ = fx, bila hal ini terjadi, maka kasus ini disebut bentrokan collision.
2.11.2 Secure Hash Algorithm SHA
SHA adalah fungsi hash satu arah merupakan kelanjutan dari algoritma MD5 Message-Digest. SHA-1 adalah fungsi hash yang umum digunakan dalam
berbagai aplikasi. SHA-1 dipublikasikan pada tahun 1995. SHA-1 menerima berupa pesan dengan ukuran maksimum 2
64
bit menghasilkan message digest yang panjangnya 160 bit, lebih panjang dibandingkan dengan MD5 yang hanya
128 bit Munir, 2006 .
Universitas Sumatera Utara
Langkah –langkah pembuatan message digest dengan SHA-1 secara garis besar
adalah sebagai berikut:
1. Penambahan bit-bit pengganjal padding bit.
Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan dalam satuan bit kongruen dengan 448 modulo 512, sehingga panjang
pesan setelah ditambahkan bit-bit pengganjal adalah 64 bit kurang dari kelipatan 512. Angka 512 ini muncul karena SHA-1 memproses pesan dalam
blok –blok berukuran 512. Pesan yang panjang 448 bit juga ditambah dengan
bit –bit pengganjal. Jika panjang pesan 448 bit, maka pesan tersebut ditambah
dengan 512 bit menjadi 960 bit. Jadi panjang bit –bit pengganjal antara 1
sampai 512. Bit-bit pengganjal terdiri sebuah bit 1 diikuti sisanya dengan bit 0. 2.
Penambahan nilai panjang pesan semula. Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64
bit yang menyatakan panjang pesan semula. Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi kelipatan 512 bit.
3. Inisialisasi penyangga buffer MD.
SHA membutuhkan 5 buah penyangga yang masing –masing panjangnya 32
bit. Total panjang penyangga adalah 5 x 32 = 160 bit. Ke lima penyangga ini menampung hasil antara dan hasil akhir. Ke lima penyangga ini diberi nama A,
B, C, D, dan E. setiap penyangga diinisialisasi dengan nilai –nilai dalam notasi
HEX sebagai berikut:
A = 67452301 B = EFCDAB89
Universitas Sumatera Utara
C = 98BADCFE D = 10325476
E = C3D2E1F0
4. Pengelohan pesan dalam blok berukuran 512 bit Prosesnya dapat dilihat pada
Gambar 1.2. Diagram Alir Fungsi Hash SHA-1 satu putaran.
Operasi dasar SHA-1 yang diperlihatkan pada Gambar 1.3. dapat dituliskan sebagai persamaan sebagai berikut:
a,b,c,d,e ← CLS
5
a + f
t
b,c,d +e +W
t
+ K
t
, a, CLS
30
b,c,d Keterangan:
a, b, c, d, e = lima buah penyangga 32 bit berisi nilai penyangga A, B ,
C, D, E t
= putaran, 0 ≤ t ≤ 79 F
= fungsi logika f
t
CLS
s
= circular left shift sebanyak s bit W
t
= Integer 32-bit yang diturunkan dari blok 512-bit yang sedang diproses
K
t
= konstanta penambah
Tabel 2.1 Fungsi logika f
t
pada setiap putaran
Putaran f
t
b,c,d 0 .. 19
b
c
b
d 20 .. 39
b
c
d 40 .. 59
b
c
b
d
c
d 60 .. 79
b
c
d
Universitas Sumatera Utara
Nilai W sampai W
15
berasal dari 16 Integer pada blok yang diproses, sedangkan nilai W
t
berikutnya didapat dari persamaan berikut:
W
t
= W
t – 16
W
t – 14
W
t – 8
W
t – 3
Setelah putaran ke – 79, a, b, c, d, dan e dijumlahkan ke A, B, C, D, dan E dan
selanjutnya algoritma memproses blok data selanjutnya. Keluaran akhir dari algoritma SHA-1 adalah hasil penyambungan bit-bit di dalam A, B, C, D, E.
2.12 Cryptanalisys