DAFTAR RIWAYAT HIDUP
DATA PRIBADI
Nama Lengkap : Muhammad Ahyal Husna Jenis Kelamin : Laki-Laki
Tempat, Tanggal Lahir : Medan, 14 Agustus 1988
Alamat : Jl. Sisingamangaraja, Simp. Limun, GG. Mesjid No. 16,
Medan Amplas, Medan, Sumatera Utara
Agama : Islam
E-mail : onetayal@gmail.com
Pendidikan Terakhir : Universitas Sumatera Utara Medan, Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan S1 Ilmu Komputer
PENDIDIKAN FORMAL
1994 – 2000 : SD Negeri 060924 Medan Amplas 2000 – 2003 : SMP Negeri 1 Medan
2003 – 2006 : SMU Negeri 2 Medan
2006 –2013 : Universitas Sumatera Utara Medan,
Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan S1 Ilmu Komputer
PENGALAMAN ORGANISASI dan KEGIATAN ILMIAH
DAFTAR PUSTAKA
[1] Ariyus, Dony. 2008. Pengantar Ilmu Kriptografi: Teori Analisis dan Implementasi. Yogyakarta. Penerbit: Penerbit Andi.
[2] Enterprise, Jubilee. 2010. Trik Mengamankan Password. Jakarta : PT. Elex Media Komputindo.
[3] Kadir, A. 2012. Algoritma dan Pemrograman Menggunakan Java. Yogyakarta : Penerbit Andi.
[4] Munir, R. 2006. Kriptografi. Bandung : Penerbit Informatika Bandung.
[5] Munir, R. Matematika Diskrit. Bandung : Penerbit Informatika Bandung.
[6] Sulianta, F. 2009. Teknik Mengoptimalkan Password. Jakarta : PT. Elex Media Komputindo.
[7] Schneier, B. 2001. Applied Cryptography. Canada: JhonWiley & Sons inc.
[8] Stalling, W. 2005. Cryptography and Network Security Principles and Practices, Fourth Edition. USA : Pearson Education, Inc.
[9] Sari, Y. 2009. Perancangan dan Implementasi Sistem Keamanan Data
Menggunakan Algoritma TEA Dengan Bahasa Pemrograman Delphi 7.0. Skripsi. Universitas Sumatera Utara
[10] Daemen, J., Govaerts, R., Vandewalle, J. 1993. Block Cipher Based On Modular Arithmertic. Proceeding of the 3rd Symposium on the State
and Progress of Research in Cryptography. W. Wolfowicz, Ed.,
[11] Latief, M. 2010. Studi Perbandingan Enkripsi Menggunakan Algoritma IDEA
dan MMB. Media Elektrik. Volume 5, Nomor 2, Desember 2010.
[12] Devidas, S.P. 2013. " Passwords Management Using Blowfish Algorithm”.
IJRREST:International Journal of Research Review in Engineering
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis
Analisis adalah penguraian dari suatu pembahasan, dalam hal ini pembahasan mengenai aplikasi keamanan manajemen password menggunakan algoritma kriptografi MMB (Modular Multiplication-based Block Cipher), yang berguna untuk mengetahui apa saja yang dapat dijadikan isi dari sebuah aplikasi dan perangkat yang dapat digunakan dalam perancangan aplikasi yang akan dibuat.
3.1.1 Analisis Masalah
Aplikasi multiuser baik aplikasi berbasis web maupun aplikasi berbasis
desktop saat ini sudah bukan hal baru lagi. Bersifat multiuser berarti memungkinkan setiap pengguna memiliki hak penggunaan yang berbeda juga memungkinkan setiap pengguna memiliki barang atau item yang dimiliki secara privat. Di dalam sistem tersebut, pengguna saling berinteraksi melalui sebuah pengenal untuk merepresentasikan dirinya. Pengenalan ini lazim disebut identitas pengguna.
Pengertian identitas dalam hal ini lebih ditekankan pada identitas secara digital atau sering disebut digital identity. Identitas digital merupakan representasi identitas seseorang yang digunakan untuk berinteraksi dengan orang lain atau mesin dalam sebuah jaringan terdistribusi. Secara sederhana, identitas digital berupa pasangan ID (username) dan sebuah authentifikasi rahasia (password).
menggunakan password adalah email, messenger, operating system, database, social network, dokumen, USB, dan hal-hal lain yang memiliki informasi bernilai tinggi.
3.1.2 Penyelesaian Masalah
Setiap pengguna aplikasi tentunya paham akan kerahasiaan identitas digital tersebut dan menyimpannya seaman mungkin. Bahkan tak jarang pengguna aplikasi memiliki banya password dan username yang berbeda. Namun, sering terjadi kasus pengguna lupa username dan password yang dimilikinya. Oleh karena itu, diperlukan suatu solusi untuk mengatasi kasus seperti ini.
Salah satu solusi yang ingin penulis terapkan adalah pembuatan aplikasi
passwordmanager yang membantu pengguna dalam menyimpan data identitas digital
yang dimilikinya. Aplikasi ini membantu seseorang mengelola data username dan
password. Dengan master password yang dapat ditentukan, seseorang cukup
mengingat master password ini. Selanjutnya, semua datanya bisa disimpan ke dalam database file password manager.
Untuk menjamin keamanan dalam password management, sebaiknya turut dipertimbangkan juga proses enkripsi password sebelum disimpan, pengamanan akses menuju tempat disimpannya password dan username tersebut, menjamin keamanan proses validasi sebuah password. Salah satu penerapan yang tepat terhadap sistem
password management adalah dengan menerapkan algoritma kriptografi. Penggunaan
kriptografi simetris, dalam hal ini algoritma MMB (Modular Multiplication-based
Block Cipher) diharapkan mampu meningkatkan kemanan data identitas digital
pengguna yang berupa username dan password.
proses enkripsi dan dekripsi data dengan menggunakan master password sebagai key
(kunci). Gambaran umum aplikasi ini dapat dilihat sebagai berikut.
Aplikasi ini memilik 3 menu utama, yaitu :
1. Menu Database, untuk membuat file baru, membuka file yang telah disimpan serta menyimpan file data username, password dan url yang akan dienkripsi
2. Menu Data, untuk menambah data, mengubah data dan menghapus data. Pada menu Data terdapat submenu untuk menyalin (copy) data dan mengganti master password.
3. Menu Aplikasi, untuk melihat catatan proses enkripsi dan dekripsi data. Pada menu Aplikasi terdapat submenu Log Aplikasi yang berfungsi untuk melihat proses enkripsi dan dekripsi aplikasi. Tentang aplikasi fungsinya seperti menu
about pada aplikasi umumnya. Pada menu aplikasi ini juga ada submenu untuk
keluar dari aplikasi.
Gambar 3.1 Analisis permasalahan
Dari gambar 3.1 diatas dapat dijelaskan sebagai berikut :
1. Input dan output berupa data-data username, password, dan url.
2. Proses enkripsi dengan algoritma MMB :
a. Username, password, dan url merupakan file yang akan dienkripsi.
b. Enkripsi data, menggunakan enkripsi algoritma MMB dan memasukkan
master password sebagai kunci yang digunakan.
c. Hasil enkripsi disimpan pada file berekstensi *.apm
3. Proses dekripsi dengan MMB
a. Dekripsi data menggunakan algoritma MMB dan master password sebagai
kunci.
b. Hasi dari dekripsi akan ditampilkan seperti data sebelum dienkripsi yaitu data
3.1.4 Analisis Kebutuhan Perangkat
Berikut dibawah ini perangkat yang dapat mendukung dalam perancangan aplikasi yang akan dibuat.
3.1.4.1 Perangkat Keras
Perangkat keras yang digunakan dalam pembuatan aplikasi ini adalah sebagai berikut :
1. Pentium Intel Core 2 duo 2. RAM 512 MB
3. Harddisk 10 GB
4. 1024x768 resolusi monitor dengan 16-bit video card.
3.1.4.2 Perangkat Lunak
Perangkat lunak atau software yang digunakan dalam program aplikasi ini adalah sebagai berikut :
1. Java (perancangan aplikasi) 2. Windows 7 (sistem operasi)
3.1.5 Penerapan Algoritma MMB
Username Password URL
username1 password1 www.URL-example.com
Tabel 3.1 Contoh Data yang Pada Aplikasi
Sebelum melakukan proses enkripsi dan dekripsi menggunakan data diatas. Aplikasi akan mengubah format penulisan data tersebut ke bentuk JSON (JavaScript Object
Notation). JSON adalah suatu format ringkas pertukaran data komputer. Formatnya
Format data yang telah dirubah menjadi seperti berikut ini.
[ {
"username": "username1", "password": "password1", "URL": "www.URL-example.com" }
]
Kemudian jumlah karakter dihitung. Ketika menghitung, abaikan karakter yang tidak penting. Karakter tersebut hanya berguna untuk mempercantik tampilan. Tanpa karakter tersebut format JSON tetap valid. Namun penulisannya menjadi satu baris panjang dan padat, sehingga lebih sulit dibaca. Beberapa karakter tidak penting yaitu enter, spasi di awal baris sebelum buka kurung kurawal, spasi setelah buka kurung kurawal, simbol titik dua, simbol koma, spasi sebelum tutup kurung kurawal.
Selanjutnya data akan disusun menjadi format seperti berikut.
<PANJANG>|<JSON setelah membuang karakter tidak penting>
Format data inilah yang akan menjadi plaintext dalam proses enkripsi.
77|[{"username":"username1","password":"password1","URL": "www.URL-example.com"}]
Algoritma MMB merupakan algoritma enkripsi yang bekerja pada blok berukuran 128 bit. Dalam setiap prosesnya, blok yang 128 bit ini nantinya dibagi menjadi 4 sub-blok yang masing-masing berukuran 32 bit.
k0 k1 k2 … k127
k0 k1 … k31 k32 k33 … k63 k64 k65 … k95 k96 k97 … k127 Berdasarkan keterangan diatas, plaintext akan disusun seperti berikut.
77|[{"username": "username1","pas sword":"password 1","URL":"www.UR L-example.com"}]
Plaintext diatas akan diubah ke dalam bentuk biner. Jumlahnya ada 8 blok, di
mana 7 blok pertama berukuran 128 bit dan blok terakhir (blok ke-8) berukuran kurang dari 128 bit. Agar pas berukuran 128 bit, maka ditambahkan karakter null (0) sejumlah yang dibutuhkan pada saat data telah dikonversi ke bentuk biner.
3.1.5.1 Proses Pembangkitan Kunci
Proses pembentukan kunci pada metode MMB ini dapat dilihat pada bagan berikut ini :
Gambar 3.2 Proses Pembentukan Kunci pada Metode MMB
Untuk lebih memahami proses pembentukan kunci pada metode MMB, diberikan sebuah contoh berikut ini :
Misalkan diketahui input kunci = S1 ILMU KOMPUTER, maka proses pembentukan kuncinya adalah sebagai berikut :
Kunci = S1 ILMU KOMPUTER
Ubah ke bentuk hexadesimal = 53 31 20 49 4c 4d 55 20 4b 4f 4d 50 55 54 45 52
Ubah ke bentuk biner =
Dipecah menjadi 4 sub kunci =
k0 = 01010011001100010010000001001001 k1 = 01001100010011010101010100100000 k2 = 01001011010011110100110101010000 k3 = 01010101010101000100010101010010
Kunci diperoleh dari master password dan memiliki panjang 128 bit. Lalu apabila master password tidak 16 karakter, maka akan diterapkan fungsi hashing pada master password untuk memperoleh kunci (key) tepat 128 bit atau 16 karakter. Cara kerja fungsi hashing ini sebagai berikut:
1. Kalau panjang master password adalah 16 karakter, maka tidak ada perubahan.
2. Kalau panjang master password kurang dari 16 karakter, maka ditambahkan karakter ASCII = 0 dalam heksa = 00 dalam binary = 0000 0000 sebanyak yang diperlukan agar panjangnya menjadi 16 karakter.
3. Kalau panjang master password lebih dari 16 karakter, maka dibagi menjadi beberapa bagian berukuran 16 karakter. Selanjutnya bagian-bagian tersebut di XOR kan (tentunya setiap karakter dikonversi terlebih dulu ke nilai ASCII-nya sebelum di-XOR).
3.1.5.2 Proses Enkripsi Algoritma MMB
Enkripsi dilakukan dengan menerapkan transformasi iteratif pada blok-blok plaintext
dengan blok-blok kunci sebagai parameter. Fungsi putaran non-linear f(x) diterapkan enam kali diantara pekalian modulo.
Proses enkripsi pada MMB terdiri dari 13 langkah, yaitu sebagai berikut: 14. xi = xi XOR ki
15. f(x0, x1, x2, x3)
20. xi = xi XOR ki+3
δ : Konstanta tetapan yang digunakan pada proses enkrip dekrip dengan nilai, 2AAAAAAA
γ : Konstanta tetapan yang digunakan pada proses enkripsi dengan nilai, 025F1CDB
Operasi perkalian yang digunakan merupakan operasi perkalian modulo 232 – 1. Nilai
γ
1,γ
2,γ
3 diperoleh dengan cara sebagai berikut :Contoh proses enkripsi algoritma MMB dengan menggunakan data pada table 3.1 ditunjukkan seperti berikut ini :
Plain ( blok 128- bit) :
= 00110111001101110111110001011011 XOR 01010011001100010010000001001001 = 01100100000001100101110000010010
x1 = x1 XOR k1
= 01111011001000100111010101110011 XOR 01001100010011010101010100100000 = 00110111011011110010000001010011
x2 = x2 XOR k2
= 01100101011100100110111001100001 XOR 01001011010011110100110101010000 = 00101110001111010010001100110001
x3 = x3 XOR k3
= 01101101011001010010001000111010 XOR 01010101010101000100010101010010 = 00111000001100010110011101101000
Langkah 2: x[ i] = f( x[ i] ) x[ i] = gamma[ i] * x[ i]
x[0] = gamma[0] * x[0]
= 00000010010111110001110011011011 * 01100100000001100101110000010010 = 10010011000111011111000111000000
x[1] = gamma[1] * x[1]
= 00000100101111100011100110110110 * 00110111011011110010000001010011 = 01110001110101000110001101111100
x[2] = gamma[2] * x[2]
= 00010010111110001110011011011000 * 00101110001111010010001100110001 = 01111110000110001111100010111101
x[3] = gamma[3] * x[3]
= 100101111100011100110110110000000 * 00111000001100010110011101101000 = 11011000000011001011100011010100
x[ i] = x[ i- 1] XOR x[ i] XOR x[ i+ 1]
x[0] = x[3] XOR x[0] XOR x[1]
= 11110010101001100001001001111110 XOR 10010011000111011111000111000000 XOR 01110001110101000110001101111100
= 00010000011011111000000011000010 x[1] = x[0] XOR x[1] XOR x[2]
= 00010000011011111000000011000010 XOR 01110001110101000110001101111100 XOR 01111110000110001111100010111101
= 00011111101000110001101100000011 x[2] = x[1] XOR x[2] XOR x[3]
= 00011111101000110001101100000011 XOR 01111110000110001111100010111101 XOR 11110010101001100001001001111110
= 10010011000111011111000111000000 x[3] = x[2] XOR x[3] XOR x[0]
= 10010011000111011111000111000000 XOR 11110010101001100001001001111110 XOR 00010000011011111000000011000010
= 01110001110101000110001101111100
3.1.5.3 Flowchart Enkripsi MMB
Gambar 3.3 merupakan proses enkripsi MMB :
Plaintext
Dipecah menjadi blok-blok 128 bit
For i= 1 to jumlah blok
Xor (x,0)
F(x)
Xor (x,1)
F(x)
Xor (x,2)
F(x)
Xor (x,3)
F(x)
Xor (x,0)
F(x)
Xor (x,1)
F(x)
Xor (x,2)
X0 , X1, X2, X3 digabung kembali
ciphertext
Selesai Mulai
Bagan sub proses XOR(x,k) seperti gambar 3.4
For i= 0 to 3
x = xi xor ki Mulai
Selesai
Gambar 3.4 Sub proses XOR(x,k)
Sedangkan fungsi f(x) diatas dapat digambarkan dalam bentuk bagan seperti gambar 3.5
For i= 0 to 3
Xi = γi * Xi
Mulai
LSB (X0) = 1
LSB (X3) = 0
X0 = X0 xor δ
X3 = X3 Xor δ ya
tidak
ya
tidak
For i= 0 to 3
Xi = Xi-1 xor Xi xor Xi+1
Selesai
3.1.5.4 Proses Dekripsi Algoritma MMB
Proses dekripsi tidak jauh berbeda dengan proses enkripsi. Proses dekripsi dilakukan dengan membalik urutan proses enkripsi dan melakukan penyesuaian di beberapa proses.
14. xi = xi XOR ki+2
15. f(x0, x1, x2, x3)
16. xi = xi XOR ki+1
17. f(x0, x1, x2, x3)
18. xi = xi XOR ki
19. f(x0, x1, x2, x3)
20. xi = xi XOR ki+3
21. f(x0, x1, x2, x3)
22. xi = xi XOR ki+2
23. f(x0, x1, x2, x3)
24. xi = xi XOR ki+1
25. f(x0, x1, x2, x3)
26. xi = xi XOR ki
Fungsi f(x1, x2, x3, x4) sebagai berikut:
d. xi = xi-1 XOR xi XOR xi+1
e. Jika LSB (x0) = 1, maka x0 = x0 XOR δ
Jika LSB (x3) = 0, maka x3 = x3 XOR δ
f. xi= γi-1 * xi
keterangan :
xi : sub blok Plainteks
ki : sub blok Kunci (key)
δ : Konstanta tetapan yang digunakan pada proses enkrip dekrip dengan nilai, 2AAAAAAA
Sebagai contoh, akan ditunjukkan sebagian proses dekripsi metode MMB dengan menggunakan kunci dan data sebelumnya seperti berikut :
Cipher ( hex) = 2e 45 b6 c4 be 2e 8d 2d c8 dd e5 76 ab 63 07 ec
= 00101110010001011011011011000100 XOR 01001011010011110100110101010000 = 01100101000010101111101110010100
x[1] = x[1] XOR k[3]
= 10111110001011101000110100101101 XOR 01010101010101000100010101010010 = 11101011011110101100100001111111
x[2] = x[2] XOR k[0]
= 11001000110111011110010101110110 XOR 01010011001100010010000001001001 = 10011011111011001100010100111111
x[3] = x[3] XOR k[1]
= 10101011011000110000011111101100 XOR 01001100010011010101010100100000 = 11100111001011100101001011001100
Langkah 2: x[ i] = fI nverse( x[ i] ) x[ i] = x[ i- 1] XOR x[ i] XOR x[ i+ 1]
x[3] = x[2] XOR x[3] XOR x[0]
= 10011011111011001100010100111111 XOR 11100111001011100101001011001100 XOR 01100101000010101111101110010100
= 00011001110010000110110001100111 x[2] = x[1] XOR x[2] XOR x[3]
= 11101011011110101100100001111111 XOR 10011011111011001100010100111111 XOR 00011001110010000110110001100111
= 01100101000010101111101110010100 XOR 11101011011110101100100001111111 XOR 01101001010111100110000100100111
= 11100111001011100101001011001100 x[0] = x[3] XOR x[0] XOR x[1]
= 00011001110010000110110001100111 XOR 01100101000010101111101110010100 XOR 11100111001011100101001011001100
= 10011011111011001100010100111111
if lsb( x[ 0] ) = = 1, then x[ 0] = x[ 0] XOR delta
lsb(x[0]) = 1, x[0] = x[0] XOR delta
= 10011011111011001100010100111111 XOR 00101010101010101010101010101010 = 10110001010001100110111110010101
if lsb( x[ 3] ) = = 0, then x[ 3] = x[ 3] XOR delta
lsb(x[3]) = 1
x[ i] = gammaI nverse[ i] * x[ i]
x[0] = gammaInverse[0] * x[0]
= 00001101101011010100011010010100 * 10110001010001100110111110010101 = 11000001011001001101000101000111
x[1] = gammaInverse[1] * x[1]
= 11011010110101000110100101000000 *11100111001011100101001011001100
= 01010110110100001011110100010111 x[2] = gammaInverse[2] * x[2]
= 11011010110101000110100101000000 * 01101001010111100110000100100111 = 11101100001000111001111000101001
x[3] = gammaInverse[3] * x[3]
3.1.5.5 Flowchart Dekripsi MMB
Proses dekripsi algoritma MMB ditunjukkan pada gambar 3.6
Ciphertext
Dipecah menjadi blok-blok 128 bit
For i= 1 to jumlah blok
Xor (x,2)
F(x)-1
Xor (x,1)
F(x)-1
Xor (x,0)
F(x)-1
Xor (x,3)
F(x)-1
Xor (x,2)
F(x)-1
Xor (x,2)
F(x)-1
Xor (x,1)
X0 , X1, X2, X3 digabung kembali
plaintext
Mulai
Selesai
Bagan sub proses XOR (x,k) proses dekripsi algoritma MMB seperti gambar 3.7
For i= 0 to 3
x = xi xor ki Mulai
Selesai
Gambar 3.6 Sub Proses XOR(x,k)
For i= 0 to 3
Xi = Xi-1 xor Xi xor Xi+1
Mulai
LSB (X0) = 1
LSB (X3) = 0
X0 = X0 xor δ
X3 = X3 xor δ ya
tidak
ya
tidak
For i= 0 to 3
Xi = γi * Xi
Selesai
3.2 Perancangan Aplikasi
Perancangan aplikasi merupakan bagian dari metodologi pengembangan suatu perangkat lunak yang dilakukan setelah melalui tahapan analisis. Perancangan bertujuan untuk memberikan gambaran secara terperinci. Perancangan aplikasi merupakan tahap lanjutan dari analisis sistem, dimana pada perancangan sistem digambarkan rancangan sistem yang akan dibangun sebelum dilakukan pengkodean kedalam suatu bahasa pemrograman.
Pada perancangan aplikasi sistem keamanan manajemen password
menggunakan algoritma kriptografi MMB (Modular Multiplication-based Block
Cipher)., penulis menggunakan empat tahapan perancangan yaitu perancangan
dengan Diagram Pohon (Tree Chart), perancangan dengan FlowChart, dan perancangan dengan DFD (Data Flow Diagram).
3.2.1 Perancangan Diagram Pohon (Tree Chart)
Adapun diagram pohon untuk Perancangan Aplikasi sistem keamanan manajemen
password menggunakan algoritma kriptografi MMB (Modular Multiplication-based
Block Cipher) ini dapat dilihat pada Gambar 3.9
Menu Utama
Aplikasi
Database
Log Aplikasi Tentang Aplikasi Keluar Baru Buka Simpan
Data
3.2.2 Perancangan Flowchart Aplikasi
Pada flowchart aplikasi akan ditampilkan bagaimana sistem bekerja secara keseluruhan.
Dari flowchart aplikasi tersebut dapat dijelaskan tahapan penggunaan aplikasi
password management ini sebagai berikut:
1. Pengguna memilih menu “database-baru” untuk membuat database password yang baru. Pengguna diminta untuk menentukan master password. Lalu database tersebut disimpan di lokasi yang diinginkan.
2. Jika pengguna memilih menu “buka database” maka akan munful form
pencarian lokasi file yang sudah pernah disimpan. Lalu pengguna memasukkan
master password.
3. Pada menu tambah data dan ubah data pengguna mengisi tabel-tabel data
username, password, dan url yang akan dienkripsi dengan master password. 4. Menu simpan berfungsi untuk menyimpan database file ke lokasi yang
diinginkan.
Start
3.2.3 Flowchart Lihat Log Aplikasi
Pada flowchart ini akan terlihat proses kerja pada saat user memilih menu log aplikasi yang menampilkan proses enkripsi dan dekripsi data.
Gambar 3.11 Flowchart Log Aplikasi Password Management
Dari flowchart tersebut dapat dijelaskan sebagai berikut:
1. Pengguna akan diberikan pilihan untuk memilih proses apa yang ingin ditampilkan di layar.
3.2.4 Data Flow Diagram (DFD)
Pemodelan proses adalah cara formal untuk menggambarkan bagaimana aplikasi beroperasi. Mengilustrasikan aktivitas-aktivitas yang dilakukan dan bagaimana data berpindah di antara aktivitas-aktivitas itu. Ada banyak cara untuk mempresentasikan proses model. Cara yang populer adalah dengan menggunakan data flow diagram
(DFD).
3.2.4.1 Diagram Konteks
USER
APLIKASI PASSWORD
MANAGER Master password
Data account Daftar account
Master password
Gambar 3.12 Diagram Konteks
Aliran data bersumber dari pengguna (user) yang memasukkan data-data master
password, username, password, URL ke dalam system. Kemudian akan diproses dan
3.2.4.2 DFD Level 1
Gambar 3.13 DFD Level 1
Penjelasan proses DFD level 1 pada aplikasi ini adalah: a. Proses 1.0
Nama Proses : Database Baru. Masukan : - Master password
-Daftar account. Keluaran : - Master password
- Daftar account - Log aplikasi enkripsi
Keterangan : Proses untuk membuat file baru dimana data account dan master password disimpan ke dalam bentuk file *.apm
Keluaran : - Master password.
-Daftar Account
-Log proses enkripsi
Keterangan : Proses untuk membuka database yang telah disimpan.
3.2.4.3 DFD Level 2 (Proses Enkripsi)
1.1
Gambar 3.14 DFD Level 2 (Proses Enkripsi)
. Penjelasan proses DFD level 2 pada aplikasi ini adalah: a. Proses 1.1
Nama Proses : Tambah/Ubah/Hapus Data Masukan : Daftar account.
Keluaran : Daftar account
Keterangan : Proses untuk menambah data, mengubah data dan menghapus data daftar account.
b. Proses 1.2
Nama Proses : Enkripsi Data. Masukan : - Master password.
Keluaran : - Master password. -Daftar account
Keterangan : Proses yang mengenkripsi daftar account yang akan disimpan ke dalam file *.apm
c. Proses 1.3
Nama Proses : Log Enkripsi. Masukan : - Master password.
-Daftar account
Keluaran : Log enkripsi
Keterangan : Proses menampilkan log (proses) enkripsi data daftar account.
3.2.4.4 DFD Level 2 (Proses Dekripsi)
2.1
Keluaran : Daftar account
Keterangan : Proses untuk menambah data, mengubah data dan menghapus data daftar account.
b. Proses 2.2
Nama Proses : Enkripsi Data. Masukan : - Master password.
-Daftar account
Keluaran : - Master password. -Daftar account
Keterangan : Proses yang mendekripsi daftar account.
c. Proses 2.3
Nama Proses : Log Dekripsi. Masukan : - Master password.
-Daftar account
Keluaran : Log dekripsi.
BAB 4
IMPLEMENTASI DAN PENGUJIAN
Pada bab ini akan dijelaskan tentang implementasi dari aplikasi yang telah dirancang pada bab 3. Implementasi dilakukan untuk mengetahui hasil dari perangkat lunak yang dibangun berjalan dengan baik dan output yang dihasilkan sudah sesuai dengan yang diharapkan.
4.1 Spesifikasi Perangkat Lunak
Perangkat lunak yang digunakan dalam pembuatan aplikasi password manager ini adalah netbean dan notepad++, yang sangat membantu dalam proses pengkodean dan dapat mengurangi kesalahan penulisan sintaks program. Aplikasi ini dibangun pada sistem operasi Windows 7.
4.2 Spesifikasi Perangkat Keras
Dalam proses pembuatan aplikasi, konfigurasi komputer yang digunakan adalah
notebook MSI Gx400 dengan spesifikasi processor Intel Centrino 2 – 450M 2,4 Ghz,
RAM 2.00 GB dengan sistem operasi Microsoft Windows 7. Tetapi aplikasi ini juga dapat dijalankan dengan konfigurasi minimal komputer sebagai berikut:
1. Prosesor 233 Mhz
2. Memory (RAM) untuk windows 7, Windows Vista, Windows XP : 756 MB RAM.
4.3 Implementasi
4.3.1 Proses Input Data
Gambar 4.1 Data yang Telah Disimpan
Dari gambar 4.1 data-data berupa username, password dan URL yang di masukkan ke dalam aplikasi untuk dienkripsi. Sebelum data ini dimasukkan. Aplikasi meminta pengguna memasukkan Master Password yang berperan sebagai kunci (key) pada aplikasi.
4.3.2 Proses Pembentukan Kunci
Kunci (key) algoritma MMB pada aplikasi ini berasal dari master password yang dimasukkan oleh pengguna. Sebagai contoh, master password yang penulis gunakan adalah “password manager” (tanpa tanda kutip).
Master password dalam bentuk string akan diubah kedalam bentuk biner.
Seperti pada gambar 4.2.
Proses pembentukan kunci (key) ini dimulai dengan mengubah kunci yang masih dalam bentuk string ke dalam bentuk biner sepanjang 128 bit. Lalu, dilanjutkan dengan proses membagi 128 bit key menjadi 4. Sehingga masing-masing subkey memiliki panjang 32 bit.
4.3.3 Proses Enkripsi
Pada proses enkripsi akan ditampilkan plaintext yang telah dikonversi kedalam bentuk biner. Seperti pada gambar 4.3.
Gambar 4.3 Plainteks Dalam Bentuk Heksadesimal dan Biner
Pada bab sebelumnya telah dijelaskan bahwa algoritma MMB bekerja pada blok berukuran 128 bit yang dibagi menjadi 4 sub blok berukuran 32 bit. Maka, akan didapat susunan key (k0,k1, k2, k3) dan plaintext (x0, x1, x2, x3).
Gambar 4.4 Langkah 1 pada Blok Plain 0
Setelah didapatkan nilai plaintext dari langkah pertama. Lalu nilai plaintext
tersebut digunakan sebagai plaintext untuk proses fungsi F(x) pada langkah 2. Fungsi f yang digunakan memiliki 3 langkah yaitu :
1. xi= γi * xi
2. Jika LSB (x0) = 1, maka x0 = x0XOR δ
Jika LSB (x3) = 0, maka x3 = x3XOR δ
3. xi = xi-1 XOR xi XOR xi+1
Gambar 4.5 Langkah 2 untuk Blok Plain 0
Operasi perkalian yang digunakan merupakan operasi perkalian modulo 232 – 1. Sedangkan konstanta yang digunakan dapat dirincikan sebagai berikut :
δ = 2AAAAAAA γ = 025F1CDB
Nilai γ1, γ2, γ3 diperoleh dengan cara sebagai berikut : γ1= 2 * γ
Gambar 4.6 Langkah 2 untuk Blok Plain 0 (lanjutan)
Setiap operasi yang dilakukan akan di-modulo 232 – 1. Ini dilakukan terutama untuk operasi yang ada kemungkinan menghasilkan nilai yang besar (melebihi 32 bit), seperti operasi perkalian. Hasil operasi XOR tidak perlu di-modulo, karena hasil XOR dua variabel 32 bit akan selalu 32 bit.
Langkah 5 – langkah 13 tidak akan dijelaskan lagi secara mendetail. Proses di langkah ini tidak jauh berbeda dengan yang sudah ditunjukkan sebelumnya. Di akhir langkah 13, kita akan memperoleh hasil enkripsi plaintext menjadi ciphertext dalam bentuk heksadesimal dan biner. Dapat dilihat pada gambar 4.7
4.3.4 Proses Dekripsi
Algoritma yang digunakan pada proses dekripsi agak sedikit berbeda dengan proses enkripsi. Proses dekripsi dari metode MMB merupakan kebalikan dari proses enkripsi. Pada proses ini nilai ciphertext didapatkan dari hasil enkripsi.
Pada langkah pertama untuk blok cipher 0 dilakukan operasi XOR antara sub-sub blok key (k0,k1, k2, k3) dengan sub blok ciphertext (x0, x1, x2, x3).
Setelah didapatkan nilai plaintext dari langkah pertama. Lalu nilai plaintext
tersebut digunakan sebagai plaintext untuk proses fungsi F(x) pada langkah 2. Fungsi f yang digunakan memiliki 3 langkah yaitu :
1. xi= γi * xi
2. Jika LSB (x0) = 1, maka x0 = x0XOR δ
Jika LSB (x3) = 0, maka x3 = x3XOR δ
3. xi = xi-1 XOR xi XOR xi+1
Gambar 4.10 Langkah 2 blok cipher 0 (lanjutan)
Pada proses dekripsi konstanta yang digunakan adalah δ = 2AAAAAAA
γ-1
= 0DAD4694
Nilai γ1, γ2, γ3 diperoleh dengan cara sebagai berikut : γ1= 2 * γ
γ2 = 23* γ γ3 = 27* γ
Gambar 4.11 Plainteks hasil dekripsi
Dekripsi dilakukan dengan menerapkan transformasi iteratif pada blok-blok ciphertext
dengan blok-blok kunci sebagai parameter. Fungsi putaran non-linear f(x) diterapkan enam kali diantara pekalian modulo. Plaintext hasil dekripsi dibagi menjadi 4 subblock yang sama besar (x0, x1, x2, x3).
4.4 Pengujian Sistem
Pengujian yang dilakukan adalah pengujian validasi (validation testing) dengan menggunakan metode blackbox. Metode blackbox merupakan metode pengujian perangkat lunak tanpa memperhatikan perincian detail dari perangkat lunak tersebut. Pengujian validasi berfokus pada tindakan pengguna yang terlihat dan pengguna dapat mengenali output dari sistem. Pengujian ini menjalankan sistem pada lingkungan yang aktif dengan menggunakan data yang benar. (Whitten, 2004).
Tabel 4.1 Tabel Hasil Uji Aplikasi
No. Nama Modul Prosedur Pengujian Masukan
Keluaran
Mengubah username,
password dan URL
Master Password yang
baru
yang akan disalin pada tabel kemudian
password yang akan
disalin pada tabel
--
Konfirmasi data username
Tabel 4.1 Tabel Hasil Uji Aplikasi (lanjutan) pada table ke suatu
BAB 5
KESIMPULAN DAN SARAN
5.1Kesimpulan
Berdasarkan pembahasan, evaluasi dan pengujian terhadap aplikasi password
manager menggunakan algoritma MMB dapat ditarik beberapa kesimpulan, yaitu :
1. Pada Algoritma MMB proses enkripsi berbeda dengan algoritma pada proses dekripsi. Algoritma proses dekripsi merupakan proses kebalikan dari proses enkripsi. Algoritma MMB merupakan algoritma enkripsi yang bekerja pada blok berukuran 128 bit. Dalam setiap prosesnya, blok yang 128 bit ini nantinya dibagi menjadi 4 sub-blok yang masing-masing berukuran 32 bit.
2. Proses enkripsi dan dekripsi menggunakan operasi perkalian modulo 232 – 1. Setiap operasi yang dilakukan akan di-modulo 232 – 1. Ini dilakukan terutama untuk operasi yang ada kemungkinan menghasilkan nilai yang besar (melebihi 32 bit), seperti operasi perkalian. Hasil operasi XOR tidak perlu di-modulo, karena hasil XOR dua variabel 32 bit akan selalu 32 bit.
5.2Saran
Beberapa saran untuk pengembangan dan perbaikan diantaranya:
1. Agar kinerja algoritma lebih optimal dalam mengamankan data yang disimpan. Aplikasi password manager ini dapat dikembangkan dengan menerapkan dua algoritma berbeda. Dimana algoritma pertama digunakan sebagai pembentukan kunci dalam hal ini dikenal dengan nama master password dan algoritma kedua untuk proses enkripsi dan dekripsi. Misalkan, penggunaan fungsi Hash-satu arah untuk pembentukan master password dan algoritma cipher blok sebagai algoritma enkripsi dan dekripsi nya.
2. Sebaiknya Log Aplikasi menampilkan proses enkripsi dan dekripsi sekaligus dalam satu kali pembuatan database file.
BAB 2
TINJAUAN PUSTAKA
2.1 Kriptografi
Kriptografi (cryptography) berasal dari kata kryptos yang artinya tersembunyi dan
grafia yang artinya sesuatu yang tertulis (bahasa Yunani) sehingga kriptografi dapat
juga disebut sebagai sesuatu yang tertulis secara rahasia (tersembunyi).
Kriptografi adalah ilmu yang mempelajari teknik – teknik matematika yang berhubungan dengan aspek-aspek pada keamanan informasi misalnya kerahasiaan, integritas data, otentikasi pengirim / penerima data, dan otentikasi data (Menezes. et al,1996). Sedangkan lawan dari kriptografi adalah kriptanalisis (cryptanalysis),
merupakan ilmu yang memecahkan ciphertext menjadi plaintext kembali tanpa mengatahui kunci, dan pelakunya ialah kriptanalis (criptanalys) [4].
Menurut Stalling [9], ada beberapa tuntutan yang terkait dengan isu keamanan data yaitu :
1. Confidentiality yaitu menjamin bahwa data-data tersebut hanya bisa diakses oleh
pihak-pihak tertentu saja.
2. Authentication, baik pada saat mengirim atau menerima informasi, kedua belah
pihak perlu mengetahui bahwa pengirim dari pesan tersebut adalah orang yang sebenarnya seperti yang diklaim.
3. Integrity, tuntutan ini berhubungan dengan jaminan setiap pesan yang dikirim
dikirim oleh pengirim yang tertera. Sebaliknya, jika sebuah pesan diterima, pengirim dapat membuktikan bahwa pesannya telah diterima oleh pihak yang ditujunya.
5. Access Control membatasi sumber-sumber data hanya kepada orang-orang
tertentu.
6. Availability, jika diperlukan setiap saat semua informasi pada sistem komputer
harus tersedia bagi semua pihak yang berhak atas informasi tersebut.
Dari keenam aspek keamanan data tersebut, empat diantaranya dapat diatasi dengan menggunakan kriptografi yaitu confidentiality, integrity, authentication, dan
nonrepudiation.
2.1.1 Sejarah Kriptografi
Sejarah kriptografi dimulai pertama sekali dengan menggunakan metode pertukaran posisi untuk mengenkripsi suatu pesan. Dalam sejarah perkembangannya, Julius Caesar dalam mengirimkan pesan yang dibawa oleh hulubalangnya, sengaja mengacak pesan tersebut sebelum diberikan kepada kurir. Hal ini dilakukan untuk menjaga kerahasiaan pesan baik bagi kurir maupun bagi musuh jika kurir tertangkap di tengah jalan oleh musuh. Ada orang yang mengatakan bahwa apa yang dilakukan oleh Julius Caesar dianggap sebagai awal dari kriptografi.
Dalam sebuah buku yang berjudul The Codebreaker yang dikarang oleh David Kahn pada tahun 1963, disebutkan bahwa kriptografi digunakan pertama sekali oleh bangsa Mesir 4000 tahun yang lalu sampai saat sekarang ini. Sejak munculnya buku tersebut maka kriptografi pun mulai diperbincangkan secara luas. Peminat dari buku tersebut ialah peminat yang berhubungan dengan kemiliteran, layanan diplomatik dan pemerintahan. Kriptografi digunakan sebagai suatu alat untuk melindungi rahasia dan strategi – strategi negara.
memuncak pada tahun 1977 dengan diadopsinya sistem kriptografi DES (Data
Encryption Standard) oleh U.S. Federal Information Processing Standard untuk
mengenkripsi informasi rahasia. DES merupakan mekanisme kriptografi yang paling terkenal dalam sejarah dan tetap menjadi standar pengamanan data elektronik komersial pada kebanyakan institusi keuangan di seluruh dunia.
Pada tahun 1978, Rivest, Shamir, dan Adleman menemukan enkripsi kunci publik yang pertama dan sekarang ini dikenal dengan nama RSA (Rivest, Shamir, and
Adleman). Skema RSA didasarkan pada permasalahan matematika sulit yang terdiri
dari pemfaktoran terhadap bilangan yang besar nilainya. Karena adanya permasalahan matematika tersebut maka muncul usaha – usaha untuk mencari cara yang paling efisien dalam pemfaktoran bilangan. Skema kunci publik lainnya yang kuat dan praktis ditemukan oleh ElGamal. Skema ini juga berdasarkan masalah logaritma diskrit.
2.1.2 Proses Kriptografi
Algoritma kriptografi adalah urutan langkah-langkah logis bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak atas pesan tersebut.
Algoritma kriptografi terdiri dari tiga fungsi dasar, yaitu [1] :
1. Enkripsi: merupakan hal yang sangat penting dalam kriptografi, merupakan
pengamanan data yang dikirimkan agar terjagakerahasiaanya. Pesan asli disebut plaintext, yang diubah menjadi kode-kode yag tidak dimengerti. Enkripsi dapat diartikan dengan cipher atau kode. Sama halnya dengan kita tidak mengerti akan sebuah kata maka kita akan melihatnya didalam kamus atau daftar istilah. Beda halnya dengan enkripsi, untuk mengubah text asli kebentuk text kode kita menggunakan algoritma yang dapat mengkodekan data yang kita inginkan.
2. Dekripsi: merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi
3. Kunci: yang dimaksud disini adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci terbagi menjadi dua bagian, kunci rahasia (private key) dan kunci umum (public key).
Urutan proses kriptografi secara umum dapat dilihat pada gambar 2.1 sebagai berikut.
Plaintext Ciphertext Plaintext
Gambar 2.1 Mekanisme Kriptografi
Sebuah plaintext (p) akan dilewatkan pada proses enkripsi (E) sehingga menghasilkan suatu ciphertext (c). kemudian untuk memperoleh kembali plaintext, maka ciphertext (c) melalui proses dekripsi (D) akan menghasilkan kembali plaintext
(m), secara matematis pernyataan tersebut dapat dinyatakan sebagai berikut,
E(m) = c
D(c) = m
D(E(m)) = m
Kriptografi sederhana seperti ini menghasilkan output yang disebut ciphertext.
Keamanannya bergantung pada kerahasiaan algoritma penyandian tersebut, oleh karenanya algoritma yang digunakan harus dirahasiakan. Pada kelompok dengan jumlah besar dan anggota yang senantiasa berubah, penggunaannya akan menimbulkan masalah. Setiap ada anggota yang meninggalkan kelompok, algoritma ini harus diganti karena anggota yang keluar mempunyai kesempatan untuk membocorkan rahasia.
Dalam kriptografi modern, selain memanfaatkan algoritma juga menggunakan kunci (key) untuk memecahkan masalah tersebut. Proses enkripsi dan dekripsi dilakukan dengan menggunakan kunci.
Kunci adalah nilai yang terlepas dari pesan asli (plaintext) dan mengontrol algoritma yang dipakai. Penerapan algoritma akan menghasilkan output yang berbeda sesuai dengan kunci yang digunakan. Merubah kunci bearti juga merubah output yang dari algoritma yang dipakai. Setelah ciphertext dihasilkan, ciphertext tersebut dapat
diubah kembali menjadi pesan asli dengan algoritma dekripsi dan dengan kunci yang sama seperti yang digunakan.
Pada saat enkripsi setiap anggota memiliki kuncinya masing-masing yang digunakan untuk proses enkripsi dan dekripsi yang akan dilakukannya. Dengan demikian ada sedikit perubahan yang dilakukan pada mekanisme yang digambarkan pada gambar 2.1 akan menjadi seperti gambar 2.2 berikut ini
kunci kunci
plaintext ciphertext plaintext
Gambar 2.2 Kriptografi Berbasis Kunci
Mekanisme kriptografi seperti ini dinamakan kriptografi berbasis kunci. dengan demikian cryptosystem nya akan terdiri atas kunci dan algoritma, serta plaintext dan
ciphertext.
Persamaan matematisnya menjadi seperti berikut,
Ee(m) = c
Dd(c) = m
Dd(Ee(m)) = m
2.1.3 Jenis Sistem Kriptografi
Berdasarkan pemakaian kunci maka sistem kriptografi (cryptosystems) dapat digolongkan atas 2 jenis sistem [5] yakni:
a. Sistem kriptografi kunci publik (public key cryptography). Dalam sistem kriptografi kunci publik atau dikenal dengan assymmetric cryptosystem, pihak pengirim maupun pihak penerima mendapatkan sepasang kunci yakni kunci
b. Sistem kriptografi kunci rahasia (secret key cryptography), dalam sistem kriptografi kunci rahasia yang dikenal juga dengan symmetric cryptosystems, pihak pengirim dan penerima bersama-sama menyepakati sebuah kunci rahasia yang akan digunakan dalam proses enkripsi dan dekripsi tanpa diketahui oleh pihak lain
2.1.3.1Kriptografi Kunci Rahasia (Secret Key Cryptography)
Kriptografi kunci rahasia merupakan bentuk kriptografi yang lebih tradisional, dimana kunci tunggal dapat digunakan untuk enkripsi dan dekripsi suatu pesan. Kriptografi kunci rahasia tidak hanya digunakan untuk enkripsi, tetapi juga untuk otentikasi. Salah satu teknik untuk pekerjaan ini disebut message authentication codes (MAC).
Masalah utama dengan kriptografi kunci rahasia membuat pengirim dan penerima pesan setuju atas kunci rahasia yang digunakan tanpa orang lain mampu mendapatkan dan mengetahuinya. Atau dengan kata lain bagaimana memilih kunci rahasia yang benar-benar aman. Hal ini membutuhkan suatu metode dimana kedua pihak dapat berkomunikasi tanpa kekhawatiran akan tercecernya kunci tersebut. Akan tetapi, keuntungan dari kriptografi kunci rahasia adalah biasanya lebih cepat dibandingkan dengan kriptografi kunci publik. Metode yang paling umum untuk kriptografi kunci rahasia adalah block ciphers, stream ciphers, dan message
authentication codes (MAC).
Kunci
enkripsi dekripsi
Gambar 2.3. Model sederhana dari Secret Key Cryptosystem
2.1.3.2 Kriptografi Kunci Publik (Public Key Cryptography)
Kriptografi kunci publik diperkenalkan oleh Whitfield Diffie dan Martin Hellman pada tahun 1976. Kriptografi kunci publik memiliki dua penggunaan utama, yakni enkripsi dan tanda tangan digital (encryption and digital signatures). Dalam sistem
kriptografi kunci publik, masing-masing pihak mendapat sepasang kunci, satu disebut kunci publik (public key) dan satu lagi disebut kunci rahasia (private key). Kunci publik dipublikasikan, sementara kunci rahasia tetap dirahasiakan. Keharusan penggunaan kunci secara bersama antara pengirim dan penerima pesan rahasia dihilangkan, semua komunikasi hanya melibatkan kunci publik, dan tidak ada kunci rahasia yang ditransmisikan atau digunakan bersama. Dalam sistem ini, tidak ada lagi kecurigaan terhadap keamanan dari sistem komunikasi. Satu-satunya kebutuhan bahwa kunci publik dikaitkan dengan penggunanya dalam lingkup yang saling mempercayai (contoh dalam suatu trusted directory). Seseorang dapat mengirimkan pesan rahasia dengan hanya menggunakan informasi yang umum (kunci publik), tetapi pesan tersebut hanya mungkin didekrip dengan menggunakan kunci rahasia, dimana satu-satunya yang memiliki kunci rahasia tersebut hanyalah orang yang diharapkan menerima pesan tersebut. Kriptografi kunci publik tidak hanya digunakan untuk merahasiakan pesan, tetapi juga untuk otentikasi (tanda tangan digital) dan teknik lainnya.
Dalam kriptografi kunci publik, kunci rahasia selalu berhubungan secara matematis terhadap kunci publik. Oleh karena itu, selalu dimungkinkan untuk menembus (menyerang) sistem kunci publik dengan menurunkan kunci rahasia dari kunci publik. Biasanya, cara untuk menangkal kemungkinan tersebut adalah membuat sesulit mungkin untuk menghasilkan kunci privat dari kunci publik. Sebagai contoh, beberapa kripto sistem kunci publik dibuat sedemikian hingga penurunan kunci rahasia (privat) dari kunci publik mengharuskan penyerang melakukan faktorisasi terhadap bilangan yang sangat besar, dalam hal ini sangat sulit untuk melakukan penurunan. Inilah ide di belakang RSA public-key cryptosystem.
2.1.4 Kategori Cipher Kunci Simetri
Algoritma kunci-simetri mengacu pada metode enkripsi yang dalam hal ini baik pengirim maupun penerima memiliki kunci yang sama. Algoritma kunci-simetri modern beroperasi dalam mode bit dan dapat dikelompokkan menjadi dua kategori:
1. Cipher Aliran (Stream Cipher)
Algoritma kriptografi beroperasi pada plaintext dan ciphertext dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsi/didekripsikan bit per bit. Cipher aliran mengenkripsi satu bit pada setiap kali proses enkripsi.
2. Cipher Blok (Block Cipher)
Algoritma kriptografi beroperasi pada plaintext dan ciphertext dalam bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64- bit, maka itu berarti algoritma enkripsi memerlukan 8 karakter setiap kali enkripsi (1 karakter = 8 bit dalam pengkodean ASCII). Cipher blok mengenkripsi satu blok bit pada setiap kali proses enkripsi.
2.2 Algoritma MMB
2.2.1 Sejarah Singkat MMB
Algoritma MMB (Modular Multiplication-based Block Cipher) pertama kali diperkenalkan pada tahun 1993 oleh Joan Daemen, Rene Govaerts dan Joos Vandewalle [10]. Algoritma ini merupakan revisi dari algoritma sebelumnya yakni algoritma IDEA yang diperkenalkan pada tahun 1991.
Algoritma MMB termasuk ke dalam kriptografi simetri (symmetric
cryptography) yang dikenal juga dengan kriptografi kunci rahasia (secret key
cryptography). Beroperasi dalam mode blok (block cipher), yaitu setiap kali enkripsi
2.2.2 Spesifikasi Algoritma MMB
Kriptografi algoritma MMB menggunakan plaintext 128 bit dan algoritma iteratif yang terdiri dari langkah-langkah linier (seperti XOR dan aplikasi kunci) serta aplikasi paralel dari empat substitusi non linier besar yang dapat dibalik. Substitusi ini ditentukan oleh sebuah operasi perkalian modulo 232 – 1 dengan faktor konstan. MMB menggunakan 32 bit subblock text (x0, x1, x2, x3) dan 32 bit subblock kunci (k0,
k1, k2, k3). Hal ini membuat algoritma MMB sangat cocok diimplementasikan pada
prosesor 32 bit. Sebuah fungsi non linier, f, diterapkan enam kali bersama dengan fungsi XOR.
Algoritma utama dari sistem kr iptografi MMB adalah sebagai berikut : 1. Proses enkripsi : ek(M) = C
2. Proses dekripsi : dk(C) = M
keterangan :
e = adalah fungsi enkripsi d = adalah fungsi dekripsi
M = adalah pesan terbuka (plaintext) C = adalah pesan rahasia (ciphertext) k = adalah kunci enkripsi atau dekripsi
2.2.3 Proses Pembentukan Kunci
Metode MMB menggunakan kunci sepanjang 128 bit. Proses pembentukan kunci pada metode MMB ini sangat sederhana. Kunci yang di-input hanya dibagi menjadi 4 buah subblock kunci dengan panjang masing-masing 32 bit.
2.2.4 Proses Enkripsi Algoritma MMB
Enkripsi dilakukan dengan menerapkan transformasi iteratif pada blok-blok plaintext
dengan blok-blok kunci sebagai parameter. Fungsi putaran non-linear f(x) diterapkan enam kali diantara pekalian modulo. Plaintext dibagi menjadi 4 subblock yang sama besar (x0, x1, x2, x3).
Lalu, lakukan langkah berikut ini. 1. xi = xi XOR ki
δ : Konstanta tetapan yang digunakan pada proses enkrip dekrip dengan nilai, 2AAAAAAA
Operasi perkalian yang digunakan merupakan operasi perkalian modulo 232 – 1. Dengan indeks terkecil adalah modulo 4. Nilai γ1, γ2, γ3 diperoleh dengan cara sebagai
berikut : γ1= 2 * γ
γ2 = 23* γ
γ3 = 27* γ
2.2.5 Proses Dekripsi Algoritma MMB
Proses dekripsi tidak jauh berbeda dengan proses enkripsi. Proses dekripsi dilakukan dengan membalik urutan proses enkripsi dan melakukan penyesuaian di beberapa proses. Ciphertext dibagi menjadi 4 subblock yang sama besar (x0, x1, x2, x3).
Lalu, diterapkan langkah-langkah berikut ini. 1. xi = xi XOR ki+2
2. f(x0, x1, x2, x3)
3. xi = xi XOR ki+1
4. f(x0, x1, x2, x3)
5. xi = xi XOR ki
6. f(x0, x1, x2, x3)
7. xi = xi XOR ki+3
8. f(x0, x1, x2, x3)
9. xi = xi XOR ki+2
10. f(x0, x1, x2, x3)
11. xi = xi XOR ki+1
12. f(x0, x1, x2, x3)
13. xi = xi XOR ki
Fungsi f(x1, x2, x3, x4) sebagai berikut:
keterangan :
xi : sub blok Plainteks
ki : sub blok Kunci (key)
δ : Konstanta tetapan yang digunakan pada proses enkrip dekrip dengan nilai, 2AAAAAAA
γ-1
: Konstanta tetapan yang digunakan pada proses enkrip dekrip dengan nilai , 0DAD4694
2.3 Password Management
Password atau yang biasa sering disebut sebagai kata sandi merupakan salah satu
otentikasi yang diketahui pemakai, dimana pemakai memilih suatu kata kode, mengingatnya, dan mengetikkannya saat akan mengakses sistem.
Dalam sebuah perusahaan atau bisnis yang bersifat komersial, masalah pengelolaan password bagi karyawan menjadi cukup signifikan. Perusahaan harus mengeluarkan biaya tambahan dengan membuat semacam help desk atau support
center untuk menangani kasus pengguna yang lupa passwordnya
Dengan password management pengguna dapat mengatur dan mengatasi sendiri masalah tersebut. Aplikasi ini membantu seseorang mengelola data username
dan password. Dengan master password yang dapat ditentukan, seseorang cukup mengingat master password ini. Selanjutnya, semua datanya bisa disimpan ke dalam database file password manager.
Untuk menjamin keamanan dalam password management, sebaiknya turut dipertimbangkan juga proses enkripsi password sebelum disimpan, pengamanan akses menuju tempat disimpannya password tersebut, dan menjamin keamanan proses validasi sebuah password. Salah satu penerapan yang tepat terhadap sistem password
management adalah dengan menerapkan algoritma kriptografi. Penggunaan
kriptografi simetris, dalam hal ini algoritma Modular Multiplication-based Block
2.3.1 Konsep Password Management.
Pengelolaan password pada dasarnya mengkombinasikan proses dan teknologi untuk mengelola dan mengamankan akses menuju informasi/resource sekaligus melindungi profil identitas pengguna. Setiap pengguna diidentifikasi lalu akses masing-masing pengguna dikontrol sesuai dengan hak dan batasan yang diberikan. Password
management memiliki kemampuan untuk mengelola hal tersebut tersebut secara
efektif baik untuk pengguna di dalam maupun di luar perusahaan/organisasi (karyawan, pelanggan, partner bisnis, atau bahkan sebuah aplikasi, pada dasarnya semua orang atau alat yang hendak berhubungan dengan perusahaan/organisasi).
Banyak definisi yang diberikan oleh para pakar dalam menjelaskan konsep pengelolaan password. Namun demikian konsep pengelolaan password secara umum dapat dipandang sebagai suatu cara untuk:
1. Mendefinisikan identitas dari sebuah entitas/obyek (orang,tempat, alat)
2. Menyimpan informasi-informasi yang berkaitan dengan entitas tersebut, seperti nama/pengenal, dalam sebuah tempat penyimpanan (biasanya direktori aktif) yang aman, fleksibel, dan dapat disesuaikan.
3. Menjadikan informasi-informasi tersebut dapat diakses melalui beberapa ketentuan.
4. Menyediakan infrastruktur yang baik, terdistribusi dan memiliki performansi yang tinggi.
5. Mengatur hubungan antara resource dan entitas/obyek sesuai dengan konteks dan dalam waktu tertentu.
2.3.2 Penerapan Proses Enkripsi Pada Password
Password dapat disimpan pada workstation yang digunakan pengguna atau server.
Password perlu ditransmisi dalam bentuk tertentu dari workstation yang digunakan
pengguna ke server ketika pengguna pertama kali login dan mungkin akan ditransfer lagi berikutnya. Tidak banyak yang dapat dilakukan untuk memaksa enkripsi
password atau hashing pada produk server yang ada. Namun, jika kita bertanggung
jawab untuk mengembangkan server atau aplikasi baru yang mengatur passwordnya sendiri, maka sangat baik bila menyimpan password tersebut menggunakan algoritma hashing yang dipercaya, seperti MD5 atau SHA. Password ditransmisi dari workstation ke server mirip halnya dengan subyek ke protokol yang dikembangkan oleh vendor server. Pada umunya, mainframe, mini-komputer, dan server UNIX cenderung tidak menggunakan enkripsi secara default, meskipun enkripsi tersedia dari banyak vendor.
Jika sekuritas password penting dalam suatu perusahaan dan sekuritas fisik media komunikasi antara pengguna dan sistem tidak dapat dipercaya, maka perlu untuk mempertimbangkan mekanisme tambahan untuk melindungi sesi login. Beberapa workstation dapat menyimpan password dan secara otomatis menyediakan
password tersebut ke server ketika pengguna memerlukan akses. Password cache ini
juga memerlukan proteksi kriptografi. Pada beberap kasus, protokol yang disediakan oleh suatu vendor dapat mengenkripsikan passsword ketika password digunakan untuk login ke sistem, tetapi tidak ketika perubahan password ditransmisi. Pada kasus ini, jika manajemen password diterapkan, akan sangat berguna membuat perangkat lunak untuk mengimplementasikan enkripsinya sendiri daripada menggunakan enkripsi yang disediakan sistem vendor.
2.4 Flowchart
Flowchart adalah diagram yang menunjukan alur data melalui program atau sistem
misalnya segi empat, belah ketupat dan oval untuk menyatakan berbagai operasi. Garis dan ujung panah menghubungkan lambang-lambang tersebut untuk menunjukkan arah arus data dari satu titik ke titik lain. Sebagai diagram grafis yang menunjukkan program atau sistem lainnya, flowchart berguna sebagai sarana pembantu untuk menunjukkan bagaimana bekerjanya program yang diusulkan dan sebagai sarana untuk memahami operasi-operasi sebuah program.
Tabel 3.1 Simbol-simbol Flowchart
Simbol Nama Fungsi
TERMINATOR Permulaan/akhir program
GARIS ALIR
(FLOW LINE)
Arah aliran program
PREPARATION
Proses inisialisasi/pemberian Hargaawal
PROCESS Proses perhitungan/proses pengolahan data
INPUT/OUTPU T DATA
Proses input/output data, parameter, informasi
PREDEFINED PROCESS
(SUB
PROGRAM)
Permulaan sub program/proses menjalankan sub program
ON PAGE CONNECTOR
Penghubung bagian-bagian Flowchart yang berada pada satu halaman
OFF PAGE CONNECTOR
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Pada era teknologi informasi saat ini, pengiriman data dan informasi menjadi hal yang sangat penting. Dibutuhkan suatu sistem keamanan yang dapat menjaga kerahasiaan suatu data maupun informasi, sehingga data tersebut dapat dikirimkan dengan aman. Salah satu cara untuk menjaga keamanan dan kerahasiaan suatu data maupun informasi adalah dengan teknik enkripsi dan dekripsi guna membuat pesan, data, maupun informasi agar tidak dapat dibaca atau dimengerti oleh sembarang orang, kecuali untuk penerima yang berhak.
Teknik pengamanan data menggunakan enkripsi dan dekripsi dikenal dengan nama kriptografi, sebagai sebuah ilmu atau seni untuk mengamankan pesan atau data dengan cara menyamarkan pesan tersebut sehingga hanya dapat dibaca oleh pengirim dan penerima pesan. Penerapan kriptografi pada komputer dapat menyamarkan pesan yang berupa file teks, gambar, suara, gambar bergerak dan lain-lain.
dirancang oleh Daemen, Govaerts dan Vandewalle, pada tahun 1993, sebagai alternatif terhadap block cipher IDEA. Kriptografi metode MMB menggunakan block size 128 bit dan algoritma iteratif yang terdiri dari langkah-langkah linier (seperti XOR dan aplikasi kunci) serta aplikasi paralel dari empat substitusi non linier besar yang dapat dibalik.
Algoritma MMB menggunakan 32 bit subblock text (X0, X1, X2, X3) dan 32 bit
subblock kunci (K0, K1, K2, K3). Kerumitan algoritma ini, yang terletak pada proses
operasi perkalian modulo 232 – 1, perhitungan fungsi non linier f pada proses enkripsi
dan dekripsi, serta operasi invers pada proses dekripsi, menyebabkan algoritma ini sulit diproses secara manual.
Terlepas dari beraneka-ragamnya keberadaan sistem dan model keamanan informasi berbasis teknologi yang canggih yang ada di pasaran, pada tataran penggunaannya terutama untuk pengguna awam. Kata kunci atau yang dikenal sebagai “password” merupakan pendekatan keamanan yang paling sering dipakai. Salah satu cara mengamankan password yang terbaik adalah menggunakan aplikasi manajemen penyimpan password. Ada banyak cara yang dapat diterapkan dalam menjaga keamanan penyimpanan password. Setiap cara memiliki kelebihan dan kekurangannya masing-masing. Penerapan kriptografi pada penyimpanan password
dapat meningkatkan keamanan password yang disimpan.
Berdasarkan uraian di atas, penulis bermaksud untuk mengambil tugas akhir (skripsi) yang membahas perancangan dan implementasi sistem keamanan manajemen
password menggunakan algoritma kriptografi MMB (Modular Multiplication-based
Block Cipher).
1.2 Rumusan Masalah
Masalah yang akan dibahas di dalam skripsi ini adalah bagaimana merancang suatu aplikasi sistem keamanan data yang dapat mengamankan data username dan password
1.3 Batasan Masalah
Pembatasan permasalahan dalam membuat aplikasi password manager yang menggunakan algoritma kriptografi MMB ini adalah sebagai berikut :
1. Analisis pada algoritma MMB dilakukan berfokus pada aspek kerahasiaan (Confidentiality), sebagai salah satu layanan keamanan data.
2. Proses kerja dari aplikasi ditampilkan dalam bentuk biner.
3. Input data berupa karakter (string) dengan menggunakan panjang kunci adalah
16 karakter yang diubah kedalam bentuk biner dengan pengkodean ASCII 128-bit.
4. Menggunakan bahasa pemrograman Java dan berbasis aplikasi desktop.
5. Analisa dan perancangan yang dilakukan untuk pembuatan program menggunakan Diagram Alir (Flowchart).
6. Pembahasan hanya pada pengimplementasian dan proses kerja enkripsi dan dekripsi pada Password Management.
1.4 Tujuan Penelitian
Tujuan penyusunan tugas akhir (skripsi) ini adalah merancang suatu aplikasi untuk membantu menyimpan informasidata aku berupa username dan password agar lebih aman dengan menggunakan algoritma kriptografi MMB (Modular Multiplication-based Block Cipher).
1.5 Manfaat Penelitian
Manfaat penelitian ini adalah sebagai berikut:
1. Memudahkan siapa saja untuk menjaga kerahasiaan dan keamanan data
1.6 Metodologi Penelitian
Dalam menyusun skripsi ini penulis melakukan beberapa penerapan metode penelitian untuk menyelesaikan permasalahan. Adapun metode penelitian yang dilakukan adalah dengan cara:
1. Studi literatur
Mengumpulkan referensi dari buku, jurnal, internet dan sumber lainnya yang mendukung penulisan dan penyusunan skripsi ini.
2. Analisis
Melakukan analisis terhadap cara kerja algoritma MMB (Modular
Multiplication-based Block Cipher) dalam melakukan proses enkripsi dan
proses dekripsi. 3. Pengkodean
Menyusun kode program untuk melakukan proses enkripsi dan dekripsi. Program yang digunakan untuk skripsi ini adalah bahasa pemrograman Java. 4. Pengujian dan perbaikan
Melakukan proses pengujian terhadap program dan memperbaiki kelemahan yang didapat pada program yang dirancang.
5. Penyusunan laporan dan kesimpulan akhir
Menyusun laporan hasil perancangan dan perbaikan kelemahan program disertai penarikan kesimpulan.
1.7 Sistematika Penulisan
Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai berikut:
BAB 1 PENDAHULUAN
BAB 2 TINJAUAN PUSTAKA
Pada bab ini dibahas mengenai teori-teori yang mendukung pembahasan bab selanjutnya, implementasi terhadap cara kerja algoritma MMB (Modular
Multiplication-based Block Cipher) dalam melakukan proses enkripsi dan proses
dekripsi.
BAB 3 ANALISIS DAN PERANCANGAN
Bab ini berisikan analisis sistem yang dilakukan dan perancangan sistem serta pemodelan sistemnya.
BAB 4 IMPLEMENTASI DAN PENGGUNAAN
Bab ini membahas tentang cara kerja dari perangkat lunak yang mengulas analisis hasil pengujian, gambaran rancangan desain antarmuka, perancangan basis pengetahuan, serta memberikan gambaran rancang bangun yang lengkap kepada
pengguna dan pemakai komputer yang lain serta implementasinya yaitu menguji
untuk menemukan kesalahan.
BAB 5 KESIMPULAN DAN SARAN
ABSTRAK
Manajemen password dengan menerapkan algoritma kriptografi merupakan salah satu cara untuk menyimpan dan mengamankan kerahasiaan identitas digital seseorang. Tujuan penelitian ini adalah mengimplementasikan algoritma Modular
Multiplication-Based Block Cipher (MMB) pada aplikasi manajemen password. Algoritma MMB
merupakan algoritma block cipher dengan panjang 128 bit yang nantinya dibagi menjadi 4 sub-blok masing-masing berukuran 32 bit subblock text (x0, x1,x2, x3) dan
32 bit subblock kunci (k0. k1,k2, k3), dan penerapan proses operasi perkalian modulo
232–1, perhitungan fungsi non linier f pada proses enkripsi dan dekripsi, serta operasi invers pada proses dekripsi. Hasil yang diperoleh adalah algoritma MMB yang diterapkan pada aplikasi manajemen password dapat menjaga keamanan dan kerahasiaan data identitas digital pengguna dengan menerapkan proses enkripsi dan dekripsi antara plainteks dan cipherteks dengan kunci. Kelemahan dari aplikasi yang dibangun terletak pada pola plainteks, karena blok plainteks yang sama selalu menghasilkan blok cipherteks yang sama. Sehingga jika cryptanalyst mengetahui hasil enkripsi dari salah satu blok plainteks maka dia dapat dengan mudah mendekripsi cipherteks dengan bentuk yang sama setiap kali cipherteks tersebut terlihat di dalam pesan.
ABSTRACT
Password management by implementing a cryptographic algorithm is one way to save and secure the confidentiality of a person's digital identity. The purpose of this study is to implement Modular Multiplication-Based Block Cipher (MMB) Algorithms on password management application. MMB algorithm is a block cipher algorithm with a 128 bit long block which will be divided into 4 sub-blocks each measuring 32 bit subblock texts (x0, x1, x2, x3) and a 32 bit subblock key (k0, k1, k2, k3). And
implementation process of multiplication operations modulo 232-1, the calculation of non linear function f in the process of encryption and decryption, as well as the inverse operation in the decryption process. The result is that MMB algorithm applied to password management application can maintain the security and confidentiality of the user's digital identity data by applying encryption and decryption process between plaintext and ciphertext with a key. The weakness of this application is the plaintext scheme. because the same plaintext blocks always produces the same ciphertext blocks. So, if the cryptanalyst knows the encryption result of one block of plaintext then he can easily decrypt the ciphertext with the same form whenever the ciphertext is seen in the message.
IMPLEMENTASI ALGORITMA MMB (MODULAR MULTIPLICATION
BASED BLOCK CIPHER) PADA PEMBUATAN APLIKASI
MANAJEMEN KATA SANDI (PASSWORD MANAGEMENT)
SKRIPSI
MUHAMMAD AHYAL HUSNA
061401034
PROGRAM STUDI ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
IMPLEMENTASI ALGORITMA MMB (MODULAR MULTIPLICATION
BASED BLOCK CIPHER) PADA PEMBUATAN APLIKASI
MANAJEMEN KATA SANDI (PASSWORD MANAGEMENT)
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
MUHAMMAD AHYAL HUSNA
061401034
PROGRAM STUDI ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA MMB (MODULAR
MULTIPLICATION-BASED BLOCK CIPHER) PADA
PEMBUATAN APLIKASI MANAJEMEN KATA SANDI (PASSWORD MANAGEMENT)
Kategori : SKRIPSI
Nama : MUHAMMAD AHYAL HUSNA
Nomor Induk Mahasiswa : 061401034
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : FAKULTAS ILMU KOMPUTER DAN
TEKNOLOGI INFORMASI Diluluskan di
Medan, Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Amer Sharif, S.Si, M.Kom Dr. Poltak Sihombing, M.Kom NIP 196203171991021001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
IMPLEMENTASI ALGORITMA MMB (MODULAR MULTIPLICATION-BASED
BLOCK CIPHER) PADA PEMBUATAN APLIKASI MANAJEMEN
KATA SANDI (PASSWORD MANAGEMENT)
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 16 April 2013