BAB III ANALISA DAN PERANCANGAN

dokumen-dokumen yang mirip
BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS DAN DESAIN SISTEM

BAB IV HASIL DAN PENGUJIAN

Membuka file prjenkripsi.vbp kemudian tekan tombol Run.

BAB IV HASIL DAN PEMBAHASAN

Key Strengthening Menggunakan KD5 Eko Budhi Susanto 1

BAB IV HASIL DAN PEMBAHASAN

BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM

Aplikasi Laporan Keuangan Akuntansi Bulog-Jakarta Menggunakan Algoritma MD5 dan RSA

BAB III ANALISA DAN PERANCANGAN. 3.1 Analisa Berikut tahap-tahap awal dalam pembuatan:


BAB III Metode Perancangan

IV. RANCANG BANGUN SISTEM. Perangkat lunak bantu yang dibuat adalah perangkat lunak yang digunakan untuk

IMPLEMENTASI HASH FUNCTION DALAM MESSAGE DIGEST 5 (MD5)

BAB III ANALISIS DAN PERANCANGAN SISTEM. penambahan dalam sistem tersebut, maka akan untuk diselesaikan.

BAB III ANALISIS DAN PERANCANGAN

BAB IV HASIL DAN UJI COBA

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER)

Simposium Nasional Teknologi Terapan (SNTT) ISSN: X PERANGKAT LUNAK PENGAMANAN DATA MENGGUNAKAN ALGORITMA MESSAGE DIGEST-5 (MD-5)

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

BAB III ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM. KriptoSMS akan mengenkripsi pesan yang akan dikirim menjadi ciphertext dan

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB 3 PERANCANGAN PROGRAM

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

BAB III ANALISIS DAN DESAIN SISTEM

BAB 3 ANALISIS DAN PERANCANGAN. utuh ke dalam bagian-bagian komponennya dengan maksud untuk

BAB III ANALISA MASALAH DAN PERANCANGAN

BAB III. ANALISIS MASALAH

Rancangan Algoritma Kriptografi Boink2 Berbasis Subtitusi Karakter

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

BAB 3 METODOLOGI. Metodologi penelitian yang digunakan dalam penulisan ini adalah studi

BAB III ANALISIS DAN PERANCANGAN SISTEM

ANALISIS METODE MASKING-FILTERING DALAM PENYISIPAN DATA TEKS

Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISA DAN PERANCANGAN

BAB III ANALISIS SISTEM

BAB IV PERANCANGAN Perancangan Proses Kriptanalisis

BAB III ANALISIS DAN PERANCANGAN

DAFTAR ISI. 1.1 Latar Belakang Masalah Maksud Tujuan Batasan Masalah Metode Pengumpulan Data...

Gambar 3.1 Flowchart proses enkripsi AES

BAB IV HASIL DAN UJI COBA

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

BAB III ANALISIS DAN PERANCANGAN

Tipe Data dan Variabel. Dosen Pengampu Muhammad Zidny Naf an, M.Kom

Keamanan Sistem Komputer. Authentication, Hash Function, Digital Signatures, Quantum Cryptography

BAB III PERANCANGAN SISTEM

BAB III METODE PENELITIAN. Langkah penelitian yang digunakan disajikan pada Gambar 4.

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN PERANCANGAN

APLIKASI KRIPTOGRAFI DOKUMEN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC 4) BERBASIS WEB. Laporan Tugas Akhir

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS DAN PERANCANGAN

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB 4 IMPLEMENTASI DAN EVALUASI. dan sistem operasi dengan spesifikasi sebagai berikut: 1. Processor: Intel Pentium, Core Duo, 1.

BAB IV HASIL DAN UJI COBA

Implementasi SHA untuk Komparasi File

BAB IV HASIL DAN UJI COBA

BAB III ANALISA DAN DESAIN SISTEM. perancangan pembuatan kriptografi Impementasi AES ( Advanced Encyrption

Studi mengenai Collision pada MD5 dan Modifkasi Program Lama dalam menjawab solusi tersebut

KAJIAN PENERAPAN OPERASI BITWISE PADA STEGANOGRAFI

BAB 3 ALGORITMA DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB IV PERANCANGAN. proses utama yaitu pembentukan kunci, proses enkripsi dan proses dekripsi.

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB IV PERANCANGAN. SMSSender. - inter : Interface + run () : void. inbox inboxdate outbox outboxdate sender receiver

MESSAGE DIGEST 5 YANG MENGGUNAKAN APLIKASI KRIPTOGRAFI DAN FUNGSI HASH

Pemanfaatan Metode Pembangkitan Parameter RSA untuk Modifikasi SHA-1

Studi dan Implementasi Pengamanan Basis Data dengan Teknik Kriptografi Stream Cipher

Algoritma QR Code Digital Signature dengan Memanfaatkan Fingerprint

BAB IV HASIL DAN UJI COBA

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

Yama Fresdian Dwi Saputro Pendahuluan

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN PENGUJIAN


BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN PERANCANGAN

Pengenalan C++ Oleh : Dewi Sartika

BAB III ANALISIS DAN PERANCANGAN

Tegar Meda Rahman

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISA DAN PERANCANGAN. pengamanan file teks dengan menggunakan algoritma triangle chain dan rivest cipher (RC4).

BAB III PERANCANGAN DAN PEMBUATAN PERANGKAT LUNAK

Algoritma MAC Berbasis Jaringan Syaraf Tiruan

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

IMPLEMENTASI ALGORITMA TEA DAN FUNGSI HASH MD4 UNTUK ENKRIPSI DAN DEKRIPSI DATA

BAB IV HASIL DAN UJI COBA

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM. Analisa yang dilakukan bertujuan untuk menentukan solusi dari

BAB IV HASIL DAN UJI COBA

Algoritma dan Pemrograman

BAB 4 Implementasi dan Pengujian

PENYANDIAN MENGGUNAKAN ALGORITMA KRIPTOGRAFI WAKE (WORD AUTO KEY ENCRYPTION)

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB IV IMPLEMENTASI DAN EVALUASI

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

MODEL KEAMANAN INFORMASI BERBASIS DIGITAL SIGNATURE DENGAN ALGORITMA RSA

Transkripsi:

BAB III ANALISA DAN PERANCANGAN 1.1 Analisa Masalah Masalah yang ingin diselesaikan pada Tahap Akhir ini antara lain adalah menerapkan algoritma Message Digest 5 (MD5) agar bisa digunakan untuk enkripsi data teks pada sebuah aplikasi dengan menggunakan Microsoft Visual C++. Kekuatan dari metode-metode enkripsi adalah pada kunci (dari password yang dimasukkan) sehingga walaupun algoritma metode tersebut telah tersebar luas, orang tidak akan dapat membongkar data tanpa kunci yang tepat. Walaupun tentunya untuk menemukan metode tersebut diperlukan teori matematika yang cukup rumit. Tapi intinya adalah bagaimana mengimplemetasikan metode-metode yang telah dibuat tersebut ke dalam sebuah aplikasi sehingga dapat meningkatkan keamanan dari aplikasi yang dibuat. Program enkripsi yang baik adalah yang dapat mengenkripsi semua ukuran file, baik yang kecil atau yang besar. Dalam mengenkripsi diusahakan dapat dilakukan dalam waktu yang cukup singkat. 1.2 Strategi Pemecahan Masalah Algoritma Message Digest 5 (MD5) adalah algoritma enkripsi yang menggunakan metode fungsi hash satu arah. Fungsi hash satu arah adalah suatu fungsi dimana kita dengan mudah melakukan enkripsi untuk mendapatkan chipertext-nya tetapi sangat sulit untuk mendapatkan plaintext-nya (melakukan dekripsi). MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah file. Algoritma MD5 secara garis besar adalah mengambil pesan yang mempunyai panjang variabel diubah menjadi sidik jari atau intisari pesan yang mempunyai panjang tetap yaitu 128 bit. Sidik jari ini tidak dapat dibalik untuk

mendapatkan pesan, dengan kata lain tidak ada orang yang dapat melihat pesan dari sidik jari MD5. Perubahan satu bit saja akan mengubah hasil keluaran hash secara drastis. Fungsi hash biasanya digunakan untuk menjamin integritas dan digital signatue (tanda tangan digitial). Metode fungsi hash satu arah adalah berfungsi untuk melindungi data dari modifikasi. Dalam bab 3 ini akan diberikan analisa tentang algoritma enkripsi Message Digest 5 (MD5) seperti bagaimana algoritma ini mengolah kuncinya, enkripsi data, pengolahan datanya dan masih banyak lagi. 1.3 Pembahasan Algoritma Algoritma enkripsi Message Digest 5 (MD5) seperti halnya algoritma yang lain juga memiliki algoritma umum. Pada sub bab ini akan diberikan gambaran umum dari algoritma Message Digest 5 (MD5) dan penjelasan dari prosedurprosedur yang digunakan. 1.3.1 Gambaran Umum Algoritma Message Digest 5 (MD5) Pada suatu proses enkripsi pasti ada data atau berkas yang akan dienkripsi, dan hasil enkripsi yaitu data atau berkas chiper teks. Message Digest 5 (MD5) memproses teks masukan ke dalam blok-blok sebanyak 512 bit, kemudian dibagi ke dalam 32 bit sub blok sebanyak 16 buah. Keluaran dari Message Digest 5 (MD5) berupa empat buah blok yang biasa disebut nilai hash. Setiap pesan yang akan dienkripsi terlebih dahulu dicari berapa banyak bit yang terdapat pada pesan. Kita anggap sebanyak n bit. Dimana n adalah bit non negatif integer. Nilai n bisa saja nol dan tidak harus selalu kelipatan 8. Pesan dengan panjang n bit dapat digambarkan sebagai berikut : m0, m1,... m(n-1) Operasi-operasi dasar yang digunakan pada proses enkripsi Message Digest 5 (MD5) adalah sebagai berikut: 1. Operasi AND

Tabel 3.1 Tabel Operasi AND 2. Operasi NOT Tabel 3.2 Tabel Operasi NOT 3. Operasi OR Tabel 3.3 Tabel Operasi OR 4. Operasi XOR Tabel 3.4 Tabel Operasi XOR

5. Operasi pergeseran bit kearah kanan (ROTATE_RIGHT) Tabel 3.5 Tabel Operasi pergeseran bit ke kanan 6. Operasi pergeseran bit kearah kiri (ROTATE_KIRI) Tabel 3.6 Tabel Operasi pergeseran bit ke kiri 1.3.2 Algoritma Enkripsi Secara garis besar proses enkripsi Plain text atau text file dengan menggunakan MD5 dapat digambarkan sebagai berikut:

Gambar 3.1 Flowchart Enkripsi Data Menggunakan MD5 Penjelasan dari algoritma enkripsi dengan MD5 ini adalah misalnya kita akan mengenkripsi teks "Selamat datang di Universitas Mercu Buana" menjadi bentuk enkripsi MD5. Teks tersebut akan dienkripsi dengan teknik hash dari MD5

sehingga akan menghasilkan Chiper teks 9d164a4d1a0708c777110b8cdbaf7610. Inti dari enkripsi adalah algoritmanya, langkah-langkah yang dilakukan Message Digest 5 (MD5) adalah sebagai berikut: 1. Inisialisasi Message Digest 5 (MD5) yang utama beroperasi pada kondisi 128-bit, dibagi menjadi empat word 32-bit, yaitu A,B,C, dan D. Operasi tersebut diinisialisasi dan dijaga untuk tetap konstan. Register A, B, C dan D diinisialisasi dengan bilangan hexadecimal, yaitu: word A: 01 23 45 67 word B: 89 AB CD EF word C: FE DC BA 98 word D: 76 54 32 10 Pada tahap Inisialisasi ini adalah dimulainya proses operasi MD5. Siapkan sebuah konteks bertipe struktur (struct) yang didalamnya beranggotakan 3 variabel array yaitu variable state dengan nilai indexnya 4 yang akan digunakan untuk initialisasi nilai state ABCD dimana nilainya masing-masing adalah sebagai berikut: state[0] = 0x67452301; state[1] = 0xefcdab89; state[2] = 0x98badcfe; state[3] = 0x10325476; Variabel yang kedua adalah variabel array count yaitu sebagai jumlah bit dengan indexnya adalah 2, dan yang ketiga adalah variabel array buffer dengan indexnya 64 berfungsi sebagai buffer masukan. 2. Operasi mengupdate string teks masukan. Yaitu melakukan update blok MD5, melanjutkan operasi MD5, memproses blok pesan serta melakukan update pada konteks. a. Menghitung jumlah byte dengan sisa hasil baginya adalah 64. Siapkan sebuah variabel index untuk menentukan jumlah byte-nya. Dimana nilai index tersebut adalah alamat pertama dari count tersebut dilakukan operasi pergeseran bit kearah kanan sebanyak 3 kali serta dilakukan operasi AND dengan nilai Hexa 0x3f.

index = (unsigned int)((konteks->count[0] >> 3) & 0x3F); Melakukan update jumlah bit, dimana sudah diketahui teksnya dan panjang teksnya. Mengecek apakah jumlah (count) dari konteks pada index 0 ditambah panjang teks masukan digeser sebanyak 3 bit ke kiri masih lebih kecil dari teks masukan digeser sebanyak 3 bit ke kiri, jika iya maka jumlah (count) dari konteks index 1 ditambahkan satu. Jika tidak maka jumlah (count) dari konteks index 1 adalah jumlah (count) dari konteks index 1 ditambahkan dengan panjang teks masukan yang digeser ke kanan sebanyak 29 bit. Siapkan satu variabel untuk menampung panjang bagian (partlen), dimana nilainya adalah 64 dikurangi dengan index. if((konteks->count[0] += ((unsigned long int)inputlen << 3)) < ((unsigned long int)inputlen << 3) konteks->count[1]++; konteks->count[1] += ((unsigned long int)inputlen >> 29); partlen = 64 - index; b. Mengubah sesuai dengan jumlah kemungkinan yang ada. Cek apakah panjang masukan lebih besar atau sama dengan partlen, jika iya maka pindahkan isi masukan ke dalam index sesuai panjang PartLen. if (inputlen >= partlen) { MD5_memcpy((POINTER)&konteks->buffer[index], (POINTER)input, partlen); MD5Transform (konteks->state, konteks->buffer); for (i = 0; i < partlen; i++) konteks->buffer[i] = input[i]; index = 0; } Dimana output merupakan buffer index dan input adalah masukan.

Ubah konteks buffer ke dalam konteks state. Serta melakukan proses decoding dari masukan menjadi output dengan asumsi panjang adalah kelipatan empat. MD5Decode (unsigned long int *output, unsigned char *input, unsigned int len) { unsigned int i, j; for (i = 0, j = 0; j < len; i++, j += 4) output[i] = ((unsigned long int)input[j]) (((unsigned long int)input[j+1]) << 8) (((unsigned long int)input[j+2]) << 16) (((unsigned long int)input[j+3]) << 24); } Lakukan perulangan untuk merubah dari masukan input kedalam konteks- >state sebanyak panjang input. for (i = partlen; i + 63 < inputlen; i += 64) MD5Transform (konteks->state, &input[i]); Berikan nilai index menjadi nol index = 0; c. Pengisian buffer Mengisi nilai konteks buffer dari nilai masukan panjang sesuai panjang masukan dikurangi dengan i. MD5_memcpy((POINTER)&konteks->buffer[index], (POINTER)&input[i],inputLen-i); 3. Pembuatan Hash atau proses Finalisasi Yaitu tahap akhir proses MD5, dimana terjadi proses merubah pesan data konteks ke dalam hash buffer dan mengubah dari hash buffer menjadi string. Siapkan sebuah variabel buffer bertipe array dengan nomor indexnya adalah 16. a. Menyimpan dan mengenkode ke dalam bentuk bit-bit, sepanjang 8 bit dengan asumsi panjang adalah kelipatan 4. for (i = 0, j = 0; j < 8; i++, j += 4) { bits[j] = (unsigned char)( konteks->count [i] & 0xff);

bits[j+1] = (unsigned char)(( konteks->count [i] >> 8) & 0xff); bits[j+2] = (unsigned char)(( konteks->count [i] >> 16) & 0xff); bits[j+3] = (unsigned char)(( konteks->count [i] >> 24) & 0xff); } b. Padding kedalam 56 dengan sisa hasil bagi 64. Siapkan sebuah variabel index untuk menentukan jumlah bytenya. Dimana nilai index tersebut adalah alamat pertama dari count tersebut dilakukan operasi pergeseran bit kearah kanan sebanyak 3 kali serta dilakukan operasi AND dengan nilai Hexa 0x3f. index = (unsigned int)((konteks->count[0] >> 3) & 0x3F); Pemberian nilai panjang padding, jika panjang index kurang dari 56, maka panjang padding (padlen) sama dengan 56 index. Kalau tidak maka panjang padding sama dengan 120 index. padlen = (index < 56)? (56 - index) : (120 - index); Melakukan proses update padding kedalam konteks dengan panjang senilai padlen, dengan proses seperti yang dilakukan pada langkah no.2 diatas. MD5Update (konteks, PADDING, padlen); c. Penambahan panjang bit sebanyak 8, dengan proses seperti yang dilakukan pada langkah no.2 diatas. MD5Update (konteks, bits, 8); d. Menyimpan ke dalam digest (Inti). Dengan melakukan proses encoding dari konteks state ke dalam digest dengan panjang 16. for (i = 0, j = 0; j < 16; i++, j += 4) { digest[j] = (unsigned char)( konteks->state [i] & 0xff); digest[j+1] = (unsigned char)(( konteks->state [i] >> 8) & 0xff);

digest[j+2] = (unsigned char)(( konteks->state [i] >> 16) & 0xff); digest[j+3] = (unsigned char)(( konteks->state [i] >> 24) & 0xff); } Sehingga didapat hasil hash sebagai berikut:. e. Pengosongan buffer dengan len merupakan panjang konteks. for (i = 0; i < len; i++) ((char *)konteks)[i] = 0; f. Mengubah dari hash menjadi string. Mengkonversi hash bernilai numeric kedalam bentuk string dengan menggunakan fungsi KonversiString. CString KonversiString(unsigned char *bytes) { CString asciihash; CString s; for(int i=0; i<16; i++) { s.format(l"%02x",bytes[i]); asciihash += s; } return asciihash; } Sehingga setelah dikonvesi ke string data mentah yang tadinya adalah. dikonversi ke dalam format string menjadi 9d164a4d1a0708c777110b8cdbaf7610 1.4 Perancangan Applikasi Program implementasi dari algoritma Message Digest 5 (MD5) dibuat dengan menggunakan MS Visual C++, untuk mempermudah dalam pembuatan implementasi dan meningkatkan fleksibilitas maka penulis membagi program

dalam fungsi-fungsi. Kemudian di dalam program utama hanya digunakan sebagai program pemanggil saja. Sedangkan inti dari program ada dalam berkas-berkas (file) tersendiri. Setelah program selesai dibuat, program dikompile terlebih dahulu sehingga didapat berkas (file) executable yang berdiri sendiri. Alasan program dicompile terlebih dahulu adalah karena source program hanya bisa dijalankan dengan menggunakan program MS Visual C++ saja. Tanpa MS Visual C++, program tersebut tidak dapat dijalankan. Dan yang perlu diperhatikan adalah tidak semua orang yang punya MS Visual C++ untuk menjalankan program ini. Dengan mengubah file program ke file executable kita dapat peroleh beberapa keuntungan antara lain : 1. Proses program akan lebih cepat dikarenakan bahasanya telah dikonversi menjadi bahasa mesin. 2. Fleksibilitas tinggi sebab jika kita ingin mendistribusikan program yang kita buat cukup dibuatkan instalasi programnya 3. Source program yang kita buat akan aman, sebab yang kita distribusikan hanya file.exe nya saja. File exe hanya terdiri dari bahasa yang dimengerti oleh mesin dan tidak dapat dibaca oleh manusia. 1.5 Rancangan Tampilan Layar Rancangan layar yang ada dalam program ini menggunakan beberapa form yaitu sebagai berikut:

Gambar 3.2 Rancangan Tampilan Awal. Rancangan ini adalah tampilan yang akan muncul pertama kali jika program MD5 Enkripsi ini dijalankan. Tombol Lanjut jika di klik maka akan menampilkan program utama dan tombol Keluar digunakan untuk keluar dari program. Gambar 3.3 Rancangan Tampilan Form Utama. Pada tampilan utama ini ditampilkan text box untuk memasukkan teks atau yang akan dienkrip, dan juga text box untuk menentukan lokasi dan nama teks file yang akan dienkripsi dan kemudian akan menampilkan direktori aktif sesuai dengan drive yang kita pilih bersama dengan nama filenya. Terdapat juga tombol Reset untuk mengosongkan masing-masing text box, selain itu juga ada tombol Enkrip untuk melakukan proses enkripsi. Pada menu File terdapat pilihan Open untuk membuka file yang akan dienkrip serta pilihan Exit untuk keluar dari program utama. Sedangkan dalam menu Help terdapat pilihan About.

Gambar 3.4 Rancangan Tampilan Menu File. Gambar 3.5 Rancangan Tampilan About MD5. Pada rancangan ini ditampilkan informasi tentang pembuat program Enkripsi MD5, email dan ucapan terima kasih. 1.6 Pengukuran Tingkat Kecepatan Aplikasi Enkripsi MD5 Pengukuran dari tingkat kecepatan aplikasi enkripsi MD5 adalah suatu analisa yang digunakan untuk mengukur tingkat kecepatan dari proses enkripsi menggunakan aplikasi MD5 dengan menggunakan sintaks-sintak dari bahasa pemrograman Microsoft Visual C++ 2005. Rumus yang dipakai untuk menghitung kecepatannya adalah:

Jumlah panjang karakter (bytes) Kecepatan : Selisih Waktu (millisecond) Dengan demikian satuan dalam kecepatan enkripsi ini adalah bytes / millisecond.