BAB 2
LANDASAN TEORI
2.1 Pengertiaan Kriptografi
Kata kriptografi berasal dari bahasa Yunani, yaitu kata kryptos, yang berarti rahasia dan kata graphein yang berarti menulis. Schineir (1996) mendefinisikan kriptografi sebagai ilmu yang mempelajari teknik-teknik untuk menjaga keamanan pesan. Tujuan utama kriptografi adalah untuk menjaga isi pesan dari pihak yang tidak berhak. Menezes (1996) menyatakan bahwa kriptografi merupakan suatu ilmu mengenai teknik matematis yang ditujukan pada aspek pengamanan data yang meliputi tingkat kepercayaan terhadap data tersebut, integritas data, otentikasi entitas data, otentifikasi terhadap keaslian data. Sedangkan Rhee (1994), mendefinisikan kriptografi sebagai suatu ilmu mengenai kripto sistem dimana privasi dan otentikasi dari data dapat dijamin. Menurut Kurniawan (2004) kripografi adalah ilmu yang mempelajari bagaimana supaya pesan atau dokumen aman, tidak bisa dibaca oleh pihak yang tidak berhak. Menurut
Tom
Thomas
(2005),
autentikasi
adalah
proses
mengidenfikasi individu atau peranti didasarkan pada kombinasi username dan password yang benar. Autentikasi tidak menentukan akses apa yang diizinkan bagi individu, tetapi cenderung apa yang mereka nyatakan. Otorisasi menentukan individu mana yang diizinkan untuk mengakses dengan mengasumsikan bahwa individu telah diautentikasi
Universitas Sumatera Utara
tentunya. Menurut Dony Ariyus (2006), autentikasi (pembuktian keabsahan) waktu mengirim pesan adalah hal yang sangat penting dalam keamanan data. User B yakin bahwa pesan yang dikirim A benar-benar datang dari A. Secara garis besar, teknik
kriptografi dapat digunakan untuk
menyamarkan pesan dan untuk autentikasi pesan. Dalam hal ini, akan dibahas teknik kriptografi untuk autentikasi pesan untuk mengetahui keutuhan (integritas) pesan.
2.1.1 Tujuan Kriptografi
Secara garis besar, teknik kriptografi digunakan untuk menyamarkan pesan menekankan pada confidentiality, yaitu pencegahan akan pengaksesan informasi (passive attack) yang dilakukan oleh pihak yang tidak berhak, sedangkan teknik kriptografi untuk autentikasi pesan lebih menekankan pada pencegahan akan modifikasi informasi (active attack) yang dilakukan oleh pihak yang tidak berhak. Dalam hal ini, akan melindungi identitas pemakai atau isi pesan agar tidak dapat dibaca oleh orang lain yang tidak berhak. Data integrity adalah melindungi pesan agar tidak diubah oleh orang lain. Untuk mencapai ini, perlu ditetapkan suatu tujuan sebagai titik tolak dalam pengembangan ilmu kriptografi itu sendiri. Menurut Rhee (1994) tujuan dari kriptografi dapat memenuhi satu atau lebih dari hal-hal berikut ini: 1. Melakukan proteksi terhadap sistem komputer yang khusus ditujukan untuk pemrosesan dan penyimpanan data. 2. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk mengambil ataupun menghapus suatu informasi dari pesan-pesan yang dikirim melalui saluran terbuka. 3. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk memodifikasi data ataupun informasi pada saluran terbuka.
Universitas Sumatera Utara
Sejalan dengan penjabaran dari Man Young Rhee, Menezes (1996) menjelaskan tujuan dari kriptografi dalam beberapa butir keterangan berikut ini: 1. Confidentiality. Menjaga muatan informasi dari campur tangan pihak-pihak lain, selain yang memiliki otoritas. 2. Data Integrity. Meyakinkan tidak terjadinya pengubahan data oleh pihak yang tidak memiliki otoritas. Untuk meyakinkan integritas dari suatu data, harus dapat dilakukan pendeteksian apakah data tersebut telah mengalami manipulasi. Manipulasi data meliputi penyisipan, penghapusan, dan pensubstitusian. 3. Authentification. Fungsi untuk pemberian identifikasi. Fungsi ini diberikan baik kepada pengirim maupun kepada penerima informasi itu sendiri. Ke dua belah pihak yang ingin melakukan komunikasi sebaiknya dapat saling melakukan identifikasi. Informasi yang dikirimkan sebaiknya dapat dipastikan sumbernya, keasliannya, muatannya, waktu pembuatannya, dan lain-lain.
4. Non-Repudiation. Mencegah suatu pihak yang menyangkal telah melakukan pengiriman pesan ataupun informasi.
2.2. Jenis-Jenis Algoritma Kriptografi
Terdapat 2 (dua) jenis algoritma kriptografi berdasarkan jenis kuncinya yaitu algoritma simetri (konvensional) dan algoritma asimetri (kunci publik) (Munir, 2006).
Universitas Sumatera Utara
2.2.1. Algoritma Simetri
Algoritma simetri disebut juga sebagai algoritma konvensional adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Disebut konvensional karena algoritma yang biasa digunakan orang sejak berabad-abad yang lalu adalah algoritma jenis ini. Algoritma simetri sering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan algoritma simetri tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkrip dan mendekrip pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan. Kriptografi yang termasuk algoritma kunci simetri adalah OTP, DES, RC2, RC4, RC5, RC6, Message Digest (MD), IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rinjael (AES), Blowfish, GOST, AS, Kasumi, dan lain-lain.
Gambar 2.1 Kriptografi Simetris
2.2.2 Algoritma Asimetri
Algoritma asimetri (juga disebut algoritma kunci publik) didesain sedemikian sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Kunci dekripsi tidak dapat
Universitas Sumatera Utara
dihitung dari kunci enkripsi. Algoritma disebut kunci publik karena kunci enkripsi dapat dibuat publik yang berarti semua orang boleh mengetahuinya. Sebarang orang dapat menggunakan kunci enkripsi tersebut untuk mengenkrip pesan, namun hanya tertentu (calon penerima pesan dan sekaligus pemilik kunci dekripsi yang merupakan pasangan kunci publik) yang dapat melakukan dekripsi pada pesan tersebut. Dalam sistem ini, kunci enkripsi sering disebut kunci publik, sementara kunci dekripsi sering disebut kunci privat. Kunci privat disebut kunci rahasia. Kriptografi yang termasuk dalam algoritma asimetri adalah ECC, LUC, RSA, EI Gamal dan DH.
Gambar 2.2 Kriptografi ASimetris
2.3. Teknik–Teknik Enkripsi dan Dekripsi
Enkripsi dan dekripsi diibaratkan seperti dua sisi mata uang. Pesan-pesan dibuat seolah-olah tidak bermakna dengan mengubahnya menurut prosedur tertentu (enkripsi), dan dibuat bermakna kembali dengan menggunakan prosedur yang biasanya bersifat kebalikannya (dekripsi). Dalam dunia kriptografi, pesan yang akan dirahasiakan disebut plaintext, sedangkan bentuk pesan hasil proses enkripsi disebut ciphertext.
2.4. Keamanan Algoritma
Suatu algoritma dikatakan aman harus memiliki keadaan seperti berikut: 1. Jika harga untuk menjebol algoritma lebih besar daripada nilai informasi yang dibuka, maka algoritma aman. Misalkan
Universitas Sumatera Utara
diperlukan komputer senilai 1 juta dollar untuk menjebol algoritma senilai 100 ribu dollar, algoritma itu aman. 2. Jika waktu yang diperlukan untuk menjebol algoritma tersebut lebih lama daripada lamanya waktu yang diperlukan oleh informasi tersebut harus tetap aman, maka algoritma aman. Misalnya waktu untuk membobol sebuah kartu kredit 1 tahun, sedangkan sebelum setahun kartu tersebut sudah tidak berlaku lagi, algoritma itu aman. 3. Jika jumlah data yang dienkrip dengan kunci dan algoritma yang sama lebih sedikit dari jumlah data yang diperlukan untuk menembus algoritma tersebut, maka algoritma itu aman. Misalkan diperlukan 100 ciphertext untuk menebak kunci yang digunakan untuk satu pesan, algoritma itu aman.
2.5. Fungsi Hash Satu Arah
Fungsi hash satu arah (one-way hash function) adalah hash function yang bekerja satu arah, yaitu suatu hash function yang dengan mudah dapat menghitung hash value dari pre-image, tetapi sangat sukar untuk menghitung pre-image dari hash value. Menurut Rinaldi Munir (2004), fungsi hash satu arah adalah fungsi yang menerima masukan string yang panjangnya sembarang dan mengkonversinya menjadi string keluaran yang panjangnya tetap (fixed) (umumnya berukuran jauh lebih kecil daripada ukuran string semula). Fungsi hash satu-arah adalah fungsi hash yang bekerja dalam satu arah: pesan yang sudah diubah menjadi message digest tidak dapat dikembalikan lagi menjadi pesan semula.
Menurut Yusuf Kurniawan
(2004), salah satu fungsi hash satu arah yang banyak digunakan dalam keamanan jaringan komputer dan internet adalah Message Digest 5 (MD5) yang dirancang oleh Ron Rivest. MD5 merupakan kelanjutan MD4 yang dirancang untuk keamanan. Secara matematis tidak dimungkinkan untuk mendapatkan dua pesan yang memiliki hash yang sama. Tidak ada
Universitas Sumatera Utara
serangan yang lebih efisien dibanding brute force. untuk autentikasi pesan lebih menekankan pada pencegahan akan modifikasi informasi (active attack) yang dilakukan oleh pihak yang tidak berhak. Dalam hal ini, akan dibahas teknik kriptografi untuk autentikasi pesan untuk mengetahui keutuhan (integritas) pesan. Solusi untuk menanggulangi active attack adalah dengan metode Message Digest Authentication (MDA). Teknik ini biasanya dikenal juga sebgai fungsi hash satu arah. Fungsi hash satu arah didefinisikan sebagai transformasi yang mengambil ukuran input bervariasi dan mengubahnya ke dalam ukuran tetap atau disebut message digest. Fungsi hash satu arah dirancang sedemikian sehingga sangat sulit untuk menentukan pesan yang berkaitan dengan message digest yang dihasilkan, atau dapat dikatakan fungsi ini hanya bekerja satu arah saja.
Gambar 2.3 Pengiriman pesan menggunakan fungsi hash satu arah.
Dengan menggunakan metode fungsi hash satu arah, dari sebuah pesan dapat dihasilkan message digest atau ringkasan kecil yang unik untuk menjaga keutuhan dari pesan yang dikirimkan. Setiap pesan yang berbeda akan menghasilkan message digest yang berbeda pula sehingga dapat diketahui apabila sebuah pesan telah dimodifikasi. Sebagai contoh, dalam pengiriman email yang tidak rahasia (dapat dibaca orang) tetapi ingin dijaga integritasnya, isi dari email atau pesan dapat dilewatkan ke fungsi hash sehingga menghasilkan message digest dari isi email tersebut. Output atau message digest dari fungsi hash ini dapat disertakan dalam
Universitas Sumatera Utara
email. Ketika email diterima, penerima juga menjalankan fungsi hash terhadap isi email dan kemudian membandingkannya dengan message digest yang dikirim. Agar lebih aman, verifikasi nilai message digest penerima tersebut ke pengirim, dimana messae digest dikirim secara terpisah dengan pesan. Jika email diubah di tengah jalan, maka ke dua nilai message digest berbeda (Gambar 2.3). Contoh lain, dalam sistem login user, user terlebih dahulu mengisi form pendaftaran sebagai legal user (user mengisi username dan password). Setelah mengisi username dan password sistem akan mengecek apakah username yang didaftarkan sudah ada yang memiliki atau belum. Jika sudah ada, maka user diminta mengisi kembali username yang lain beserta passwordnya. Sedangkan jika bila belum ada, maka data user ini akan disimpan dalam data base, dengan password yang terenkirpsi. Proses autentikasi pada sistem login, user yang akan mengakses sistem diminta memasukkan username dan password (asli). Setelah memasukkan username dan password sistem akan mencari password terenkripsi yang tersimpan dalam database berdasarkan username yang terdaftar, kemudian sistem akan mencocokkan antara password asli terenkripsi yang diisikan user melalui form login, dengan password terenkripsi yang tersimpan dalam database. Jika password asli terenkripsi yang dikirim via form login ini sama dengan password terenkripsi dalam database, maka user tadi biasa masuk ke dalam sistem. Namun jika tidak sama, maka user tadi tidak berhak. Begitulah proses autentifikasi dalam sistem login yang menyatakan user asli atau user palsu. Algoritma yang menggunakan metode ini, disebut juga algoritma hash. Algoritma ini menerima input berupa blok pesan M dengan panjang bit yang bervariasi dan menghasilkan output H(M) dengan panjang tertentu. Jika H adalah fungsi hash satu arah, maka H(M) adalah nilai hash dari pesan M atau disebut message digest. Menurut Rinaldi Munir (2004), Algoritma hash harus memiliki 6 sifat fungsi hash satu arah sebagai berikut:
Universitas Sumatera Utara
1. Fungsi H dapat diterapkan pada blok data berukuran berapa saja. 2. H menghasilkan nilai (h) dengan panjang tetap (fixedlength output). 3. H(x) mudah dihitung untuk setiap nilai x yang diberikan. 4. Untuk
setiap
h
yang
dihasilkan,
tidak
mungkin
dikembalikan nilai x sedemikian sehingga H(x) = h. Itulah sebabnya fungsi H dikatakan fungsi hash satu-arah (oneway hash function). 5. Untuk setiap x yang diberikan, tidak mungkin mencari y ¹ x sedemikian sehingga H(y) = H(x). 6. Tidak mungkin mencari pasangan x dan y sedemikian sehingga H(x) = H(y). Secara umum, masukan fungsi hash adalah blok pesan (M) dan keluaran dari hashing blok pesan sebelumnya, hi = H(Mi, hi – 1) skema fungsi hash ditunjukkan pada Gambar 2.4.
Gambar 2.4 Fungsi hash satu arah.
Menurut Merkle (1990) perancangan algoritma hash ini sangat dipengaruhi oleh fungsi konversinya. Fungsi konversi mengambil sebuah rangkaian input dan mengubahnya ke dalam sebuah nilai tetap (biasanya keluaran lebih pendek) sebagai outputnya. Sedangkan, fungsi hash satu
Universitas Sumatera Utara
arah dapat juga didefinisikan sebagai operasi berulang dari fungsi kompresi sampai seluruh langkah proses selesai (Gambar 2.5).
Gambar 2.5. Fungsi konversi
2.6 Message Digest 5
Message Digest 5 (MD5) merupakan algoritma hash yang umum digunakan. Algoritma ini menerima input dari sebuah dokumen dengan panjang maksimum 264 bit dan dirancang untuk bekerja pada mesin 32 bit. Prinsip dasar perancangan MD5 diambil dari MD4 yang diciptakan oleh Ronald L. Rivest, RSA Laboratories, yang mengembangkan algoritma MD4,
menganjurkan
untuk
memakai
algoritma
tersebut
sejak
diperkenalkannya MD5. Hal tersebut dikarenakan para praktisi kriptografi (kriptografer) telah menemukan beberapa kelemahan pada MD4 dan menyimpulkan bahwa algoritma tersebut tidak cukup aman untuk digunakan. Oleh karena itu diciptakan MD5 yang merupakan perbaikan dari MD4. Secara umum, MD5 terdiri dari 4 (empat) langkah proses untuk menghasilkan message digest, yaitu: 1. Message padding 2. Penambahan panjang bit 3. Inisialisasi buffer 4. Memproses 16 subblok 32 bit
Universitas Sumatera Utara
2.6.1 Message padding
Input pesan pada algoritma MD5 akan dibagi menjadi blok-blok yang masing-masing panjangnya adalah 512 bit. Karena pembagian ini, jumlah blok terakhir akan lebih kecil atau sama dengan 512 bit. Blok terakhir tersebut akan mengalami message padding. Langkah-langkah message padding adalah sebagai berikut: (1) Diawali dengan masuknya input pesan yang memiliki kode American Standart Code for Information (ASCII) dan kemudian diubah ke dalam rangkaian bit. Hitung panjang rangkaian bit (K). (2) Rangkaian bit tersebut dibagi menjadi blok yang masing-masing panjangnya 512 bit. Hasil pembagian akan menyebabkan jumlah blok terakhir lebih kecil atau sama dengan 512 bit. (3) Lakukan penambahan bit-bit isian (padding) pada blok terakhir pesan tersebut. Bit-bit yang digunakan sebagai bit isian adalah bit „1‟ diikuti sejumlah bit „0‟ sesuai dengan kebutuhan, dengan ketentuan sebagai berikut: a) Jika panjang bit pesan asli lebih kecil dari 448 bit, maka ditambahkan bit “1” pada posisi bit paling akhir, diikuti dengan beberapa bit “0” sedemikian sehingga total panjang bit setelah proses tersebut adalah 448 bit. b) Jika panjang bit pesan asli lebih besar atau sama dengan 448 bit, maka ditambahkan bit “1” pada posisi bit paling akhir, diikuti dengan beberapa bit “0” sedemikian sehingga total panjang bit setelah proses tersebut 512 bit. Kemudian membuat 448 bit baru yang isinya “0”. c) Jika panjang bit pesan asli sama dengan 512 bit, maka harus dibuat blok baru untuk menampung proses message padding. Bit pertama dari blok baru diisi bit “1”, sedangkan
Universitas Sumatera Utara
bit-bit berikutnya sampai dengan panjang bit 448 diisi oleh bit “0”. Jumlah total bit isian yang ditambahkan adalah 448 bit. Sebagai contoh misalkan suatu pesan dengan panjang (dalam bit) 616 bit dinotasikan sebagai K. setelah dibagi ke dalam blok 512 bit, menjadi blok1=512 bit dan blok2=104 bit. Blok terakhir (blok2) ditambah dengan bit-bit isian dengan ketentuan message padding, tambahkan “1” pada bit terakhir blok2 dan tambahkan beberapa bit “0” sedemikian sehingga total panjang bit blok2 setelah proses message padding adalah 448 bit.
2.6.2 Penambahan Panjang Bit
Setelah proses message padding, jumalah bit pada blok terakhir adalah 448 bit. Representasikan K ke dalam bilangan biner untuk memproleh 64 bit terakhir, agar total panjang blok terakhir 512 bit. a. Pada MD5 urutan byte paling kanan dari representasi K dijadikan high order (urutan paling kiri). b. Tambahkan representasi K tersebut pada 448 bit terakhir, sehingga jumlah panjang blok terakhir adalah 512 bit. Pada contoh di atas, K=616 bit dan direpresentasikan ke dalam bilangan biner 16 bit adalah: 00000010
01101000
Nilai ini dijadikan 64 bit sehingga hasilnya: 00000010
00000000
00000000 00000000
00000000
00000000
00000010 01101000
Karena urutannya bit paling kanan dijadikan high order, maka susunan 64 bit terakhir adalah: 01101000
00000000
00000000 00000000
00000000
00000000
00000010 00000010
Tambahkan representasi K ini pada blok terakhir, sehingga panjang totalnya 512 bit.
Universitas Sumatera Utara
2.6.3 Inisialisasi Buffer
Sebelum proses perhitungan, perlu disisipkan suatu nilai awal atau disebut juga inisialisasi vektor (IV), yaitu buffer (A, B, C, D) dengan panjang masing-masing 32 bit. Nilainya dalam notasi heksadesimal adalah: A: 67452301 B: EFCDAB89 C: 98BADCFE D: 10325476 Selain digunakan untuk menyimpan nilai awal buffer tersebut juga akan digunakan untuk penyimpanan nilai sementara hasil perhitungan MD5.
2.6.4 Memproses 16 subblok 32 bit
Bagian ini merupakan inti dari proses algoritma MD5, yang terdiri dari 4 round, masing-masing roundnya mempunyai 16 operasi. Untuk memproses setiap satu blok pesan 512 bit diperlukan 64 operasi.
Gambar 2.6. Struktur proses satu langkah operasi algoritma MD5
Universitas Sumatera Utara
a. Untuk setiap round, didefinisikan sebagai berikut: F(B, C, D) = (B AND C) OR (NOT(B)) AND D G(B, C, D) = (B AND D) OR C AND (NOT(D)) H(B, C, D) = B XOR C XOR D I(B, C, D ) = C XOR (B OR NOT (D)) b. Diperlukan tabel berdimensi satu yang terdiri dari 64 elemen T[1…64]. Tabel tersebut dihasilkan berdasar fungsi sinus. Notasi t[i] menunjukkan elemen ke-I dari tabel T[1…64] yang akan dipergunakan sebagai konstanta 4294967296 = 232 menunjukkan kemungkinan banyaknya kombinasi bit untuk masing-masing buffer 32 bit. T[i] = 4294967296 x abs(sin(i)), I dalam satuan radian
atau
T[i]
=
4294967296
x
abs(sin
((ix180)/π)),
π=3.14159265358979323846264338327950288. c. Blok 512 bit yang akan dinotasikan M1, M2, …, Mn diproses. Untuk memproses Mi digunakan langkah-langkah sebagai berikut: i.
Bagi Mi ke dalam 16 subblok 32 bit yaitu X[k], 0≤k≤15. Pada setiap subblok, urutan byte paling kanan dijadikan high order diikuti oleh byte selanjutnya sampai dengan byte paling kiri dijadikan low order.
ii.
Simpan nilai A, B, C, D ke AA, BB, CC, DD sebagai inisialisasi awal. Selanjutnya, buffer A, B, C, D digunakan untuk penyimpanan nilai sementara yaitu: AA = A, BB = B, CC = C, DD = D.
iii.
Lakukan proses untuk setiap blok Mi yang terdiri dari 4 round, yang masing-masing roundnnya terdiri dari 16 operasi, sebagai berikut: Notasi [abcd k s i] menunjukkan operasi a=b+((a+F1(B, C, D)+X[k]+T[i]<<<s). ABCD adalah buffer 32-bit, X[k]
Universitas Sumatera Utara
merupakan notasi dari 16 subblok 32 bit, T[i] adalah konstanta tambahan dan <<<s merupakan operasi pergeseran bit ke kiri sebanyak s bit. /* Round 1.*/ /* Notasi [abcd k s i] menunjukkan operasi a= b + ((a + F(b,c,d) + X[k] + T[i] <<<s). */ /* Lakukan 16 operasi berikut.*/ [ABCD 0 7 1]
[DABC 1 12 2]
[CDAB 2 17 3]
[BCDA 3 22 4]
[ABCD 4 7 5]
[DABC 5 12 6]
[CDAB 6 17 7]
[BCDA 7 22 8]
[ABCD 8 7 9]
[DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]
/* Round 2.*/ /* Notasi [abcd k s i] menunjukkan operasi a= b + ((a + G(b,c,d) + X[k] +
T[i] <<<s). */
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20] [ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24] [ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28] [ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]
/* Round 3.*/ /* Notasi [abcd k s i] menunjukkan operasi a= b + ((a + H(b,c,d) + X[k] + T[i] <<<s). */ [ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36] [ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39]
[BCDA 10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43]
[BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
/* Round 4.*/ /* Notasi [abcd k s i] menunjukkan operasi a= b + ((a + I(b,c,d) + X[k] + T[i] <<<s). */ [ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52] [ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56] [ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60] [ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
Universitas Sumatera Utara
d. Untuk penyelesaian akhir, tambahkan nilai A, B, C, D dengan inisialisasi awal atau nilai hash sebelumnya. A=A+AA, B=B+BB, C=C+CC, D=D+DD. Secara umum, satu langkah operasi pada MD5, didefinisikan dengan mengoperasikan fungsi terhadap 3 buffer (B, C, D). Hasilnya ditambahkan dengan
dengan X [k], T[i] dan kemudian mengalami
pergeseran sebanyak s bit.
2.6.5 Output Output diperoleh setelah semua blok 512 bit diproses. Blok terakhir menghasilkan output (message digest) dari pesan tersebut, yaitu nilai dari buffer A, B, C dan D. Panjang message digestnya adalah 128 bit. Masing-masing buffernya terdiri dari 32 bit. Pada setiap buffer A, B, C, D urutan byte paling kanan dijadikan high order diikuti oleh byte selanjutnya hingga byte paling kiri. Representasikan masing-masing buffer tersebut ke dalam 8 digit heksadesimal.
Universitas Sumatera Utara