Secure Hash Algorithm SHA

Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009 s t U Q R S { e f : ; Q R H Tabel 2.2 Daftar Pertukaran Substitusi Mono Alphabet lanjutan Plaintext Ciphertext Plaintext Ciphertext Plaintext Ciphertext Plaintext Ciphertext v w x T U V g s C , . l o p Proses pengubahannya dilakukan karakter per karakter. Sebagai contoh, misalnya terdapat suatu pesan awal : Raja Salomo, maka bentuk ciphernya adalah : ez]z~fz:,:. Hal ini dapat dilihat pada gambar 2.3 dibawah ini : Gambar 2.3 Substitusi Mono Alphabetic Untuk mengubahnya kembali ke bentuk awal plaintext maka dilakukan dengan cara membalik proses perubahannya berdasarkan tabel yang sudah ada.

2.4 Secure Hash Algorithm SHA

Secure Hash Algorithm SHA adalah salah satu fungsi satu arah yang dibuat oleh NIST National Institute of Standards and Technology dan digunakan bersama DSS Digital Signature Standard. Oleh NSA National Security Agency, SHA dinyatakan sebagai standard fungsi hash satu arah. SHA didasarkan pada algoritma MD4 yang dibuat oleh Ronald L. Rivest dari MIT. SHA disebut aman secure karena algoritma ini dirancang sedemikian rupa sehingga secara komputasi tidak mungkin menemukan pesan yang berkoresponden dengan message digest yang diberikan. Raja Salomo ez]z~fz:,: Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009 Fungsi satu arah one-way function sering disebut juga sebagai fungsi hash, message digest, fingerprint, fungsi kompresi, dan Message Authentication Code MAC. Fungsi ini biasanya diperlukan bila diperlukan pengambilan “sidik jari” dari suatu pesan. Sebagaimana sidik jari manusia yang menunjukkan identitas si pemilik sidik jari, fungsi ini diharapkan memiliki kemampuan yang serupa dengan sidik jari manusia, dimana “sidik jari” pesan diharapkan menunjuk ke satu pesan dan tidak dapat menunjuk kepada pesan lainnya. Dinamakan sebagai fungsi kompresi karena biasanya, masukan fungsi satu arah ini selalu lebih besar daripada keluarannya, sehingga seolah-olah mengalami kompresi. Namun kompresi hasil fungsi ini tidak dapat dikembalikan ke asalnya sehingga disebut sebagai fungsi satu arah. Dinamakan sebagai message digest karena seolah-olah merupakan inti sari pesan. Namun kondisi sebenarnya tidak demikian sebab inti sari pesan seharusnya merupakan ringkasan pesan yang masih dapat dipahami maknanya, sedangkan kondisi yang terjadi adalah kebalikannya, bahkan dengan mengetahui sidik jari ini, justru pihak-pihak yang tidak berkepentingan tidak mengetahui pesan aslinya.Munir, 2007:35 Fungsi hash satu arah H beroperasi pada pesan M dengan panjang sembarang, dan menghasilkan keluaran h yang selalu sama panjangnya. Maka dapat ditulis HM = h. Sebagai contoh, untuk MD5, masukan pesan bisa sembarang panjangnya, sedangkan keluarannya selalu sepanjang 128 bit. Fungsi hash harus memiliki sifat-sifat sebagai berikut: 1. Diberikan M, untuk menghitung HM = h. 2. Diberikan h, sangat sulit atau mustahil mendapatkan M sedemikian sehingga HM = h. 3. Diberikan M, sangat sulit atau mustahil mendapatkan M’ sedemikian sehingga HM = HM’. Bila diperoleh pesan M’ yang semacam ini, maka akan disebut tabrakan collision. 4. Sangat sulit atau mustahil mendapatkan dua pesan M dan M’ sedemikian sehingga HM = HM’. Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009 Point ketiga berbeda dari point keempat, di mana pada point ketiga, sudah ada pesan tertentu M, kemudian mencari pesan lain M’ sedemikian sehingga HM = HM’. Sedangkan pada point keempat, dua pesan sembarang M dan M’ yang memenuhi HM = HM’ dicari. Serangan terhadap point keempat lebih mudah dari pada point ketiga. Karena sangat mungkin M dan M’ yang diperoleh tidak memiliki arti pada point keempat. Sedangkan serangan pada point ketiga lebih sulit karena baik pesan M maupun pesan M’ harus memiliki arti yang diinginkan. Keberhasilan serangan terhadap point keempat tidak berarti algoritma telah dipecahkan. Namun keberhasilan serangan terhadap point ketiga berarti berakhirnya riwayat algoritma fungsi hash. Algoritma SHA menerima masukan berupa pesan dengan ukuran maksimum 2 64 bit 2.147.483.648 gigabyte dan menghasilkan message digest yang panjangnya 160 bit. Proses tersebut dapat ditunjukkan pada Gambar 2.4 berikut ini. Gambar 2.4 Pembuatan message digest dengan algoritma SHA Langkah-langkah dalam pembuatan message digest secara garis besar adalah sebagai berikut: 1. Penambahan bit-bit pengganjal padding bits. 100..0 Message K bits L x 512 bits = N x 32 bits Padding 1 to 512 bits Message length K mod 2 64 . . . . . . Y Y 1 Y q Y L-1 512 bits 512 bits 512 bits 512 bits 512 512 512 512 160 160 160 160 160-bits digest CV 1 CV q CV L-1 IV H SHA H SHA H SHA H SHA Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009 Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan dalam satu bit kongruen dengan 448 modulo 512. Ini berarti panjang pesan setelah ditambahi bit-bit pengganjal adalah 64 bit kurang dari kelipatan 512. Angka 512 ini muncul karena SHA memproses pesan dalam blok-blok yang berukuran 512. Pesan dengan panjang 448 bit tetap ditambah dengan bit-bit pengganjal. Jika bit pesan 448 bit, maka pesan tersebut ditambahi dengan 512 bit menjadi 960 bit. Maka, panjang bit- bit pengganjal adalah antara 1 sampai 512. Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0. Contoh 1: Pesan asal adalah huruf A capital : “A” = 0100 0001 2 = 41 16 panjang pesan asal 8 bit Tambahan : 1000 0000 00…….dalam biner. Dalam bentuk hexa: 8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000 0000 0000 0000 00 Jumlah bit tambahan adalah 440 bit. Bila tambahan 440 bit ditambahkan ke pesan asal 8 bit, maka jumlah totalnya menjadi 448 bit. Ini disebut pula sebagai kongruen dengan 448 mod 512. Dalam contoh ini n = 1, sehingga k = 5121-64 = 448. Untuk memenuhi syarat bahwa masukan SHA harus kelipatan 512 bit maka terdapat kekurangan sebanyak 64 bit. 64 bit ini diisi dengan panjang asli pesan yaitu 8 bit = 8 16 sehingga masukannya menjadi dalam hexa: 4180 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0008 2. Penambahan nilai panjang pesan semula. Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009 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 512 bit perhatikan contoh 1 diatas. 3. Inisialisasi penyangga buffer pada message digest. SHA membutuhkan 5 buah penyangga buffer yang masing-masing panjangnya 32 bit. Total panjang penyangga adalah 5 x 32 = 160 bit. Kelima penyangga ini diberi nama A,B,C,D,E. Setiap penyangga diinisialisasi dengan niai-nilai dalam notasi Hexa sebagai berikut: A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0 4. Pengolahan pesan dalam blok berukuran 512 bit. Pesan kemudian dibagi menjadi L buah blok yang masing-masing panjangnya 512-bit Y sampai Y L-1 . Setiap blok 512 bit diproses bersama dengan penyangga menjadi keluaran 128-bit, dan ini disebut dengan proses H SHA . Gambaran proses H SHA diperlihatkan pada gambar 2.5. Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009 , , K Y ABCDE f ABCDE q ← A B C D ... A B C D + + + + MD q MD q + 1 160 Y q 512 E A B C D E , , 1 K Y ABCDE f ABCDE q ← , , 79 K Y ABCDE f ABCDE q ← E Gambar 2.5 Pengolahan blok 512 bit Proses H SHA Proses H SHA terdiri dari 80 buah putaran, dan masing-masing putaran menggunakan bilangan penambah K t , yaitu: Putaran 0 ≤ t ≤ 19 K t = 5A827999 Putaran 20 ≤ t ≤ 39 K t = 6ED9EBA1 Putaran 40 ≤ t ≤ 59 K t = 8F1BBCDC Putaran 60 ≤ t ≤ 79 K t = CA62C1D6 Pada gambar diatas, Y q menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula. MD q adalah nilai message digest 160-bit dari proses H SHA ke-q. Pada awal proses, MD q berisi nilai inisialisasi penyangga MD. Setiap putaran menggunakan operasi dasar yang sama dinyatakan dengan fungsi f. Operasi dasar SHA dapat ditunjukkan pada gambar 2.6. S 5 f t + + A B C D E Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009 Gambar 2.6 Operasi dasar SHA dalam satu putaran fungsi f Operasi dasar SHA yang diperlihatkan pada gambar diatas dapat ditulis dengan 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 peubah penyangga 32-bit berisi nilai penyangga A, B, C, D, E t = Putaran, 0 ≤ t ≤ 79 f t = Fungsi logika CLS s = Circular left shift sebanyak s bit W t = Word 32-bit yang diturunkan dari blok 512 bit yang sedang diproses K t = Konstanta penambah + = Operasi penjumlahan modulo 2 32 Atau dapat dinyatakan dalam kode program berikut: for t to 79 do TEMP a5 + f t b,c,d + e + Wt + K t S 30 W t K t + + A B C D E Raja Salomo Tarigan : Implementasi Secure Hash Algorithm SHA Dan Substitusi Mono Alfabet Dalam Sistem Pengamanan Data, 2009. USU Repository © 2009 e d d c c b 30 b a a TEMP endfor dalam hal ini, lambang “” menyatakan operasi pergeseran circular left shift. Fungsi f t adalah fungsi logika yang melakuk an operasi logika bitwise. Operasi logika yang dilakukan dapat dilihat pada tabel 2.3 berikut: Tabel 2.3 Fungsi logika f t pada setiap putaran Putaran f t

b, c, d