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 berbasis teks dan terbaca-manusia serta digunakan untuk merepresentasikan struktur
data.
Universitas Sumatera Utara
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.
Karakter yang diproses pada aplikasi adalah karakter ASCII di mana 1 karakter berukuran 1 byte. Artinya blok yang berukuran 128 bit berisi 16 karakter,
yang nanti dalam prosesnya akan dibagi menjadi 4 sub blok yang berisi 4 karakter pada tiap sub blok.
Universitas Sumatera Utara
k k
1
k
2
… k
127
k k
1
… k
31
k
32
k
33
… k
63
k
64
k
65
… k
95
k
96
k
97
… k
127
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 =
01010011001100010010000001001001 01001100010011010101010100100000 01001011010011110100110101010000 01010101010101000100010101010010
Universitas Sumatera Utara
Dipecah menjadi 4 sub kunci =
k = 01010011001100010010000001001001
k
1
= 01001100010011010101010100100000 k
2
= 01001011010011110100110101010000 k
3
= 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 fx diterapkan
enam kali diantara pekalian modulo. Proses enkripsi pada MMB terdiri dari 13 langkah, yaitu sebagai berikut:
14. x
i
= x
i
XOR k
i
15. fx
, x
1
, x
2
, x
3
16. x
i
= x
i
XOR k
i+1
17. fx
, x
1
, x
2
, x
3
18. x
i
= x
i
XOR k
i+2
19. fx
, x
1
, x
2
, x
3
Universitas Sumatera Utara
20. x
i
= x
i
XOR k
i+3
21. fx
, x
1
, x
2
, x
3
22. x
i
= x
i
XOR k
i
23. fx
, x
1
, x
2
, x
3
24. x
i
= x
i
XOR k
i+1
25. fx
, x
1
, x
2
, x
3
26. x
i
= x
i
XOR k
i+2
Dan fungsi fx
1
, x
2
, x
3
, x
4
sebagai berikut: d.
x
i
= γ
i
x
i
e. Jika LSB x
= 1, maka x = x
XOR δ
Jika LSB x
3
= 0, maka x
3
= x
3
XOR δ
f. x
i
= x
i-1
XOR x
i
XOR x
i+1
keterangan : x
i
: sub blok Plainteks k
i :
sub blok Kunci key δ : 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 2
32
– 1. Nilai
γ
1
,
γ
2,
γ
3
diperoleh dengan cara sebagai berikut :
γ
1
= 2
γ γ
2
= 2
3
γ γ
3
= 2
7
γ
Contoh proses enkripsi algoritma MMB dengan menggunakan data pada table 3.1
ditunjukkan seperti berikut ini :
Plain hex
= 37 37 7c 5b 7b 22 75 73 65 72 6e 61 6d 65 22 3a 22 75 73 65 72 6e 61 6d 65 31 22 2c 22 70 61 73
73 77 6f 72 64 22 3a 22 70 61 73 73 77 6f 72 64 31 22 2c 22 55 52 4c 22 3a 22 77 77 77 2e 55 52
4c 2d 65 78 61 6d 70 6c 65 2e 63 6f 6d 22 7d 5d
Universitas Sumatera Utara
Plain blok 128- bit : Blok plain 0 :
00110111001101110111110001011011 01111011001000100111010101110011 01100101011100100110111001100001 01101101011001010010001000111010
Blok plain 1 :
00100010011101010111001101100101 01110010011011100110000101101101 01100101001100010010001000101100 00100010011100000110000101110011
Blok Plain 2 :
01110011011101110110111101110010 01100100001000100011101000100010 01110000011000010111001101110011 01110111011011110111001001100100
Blok Plain 3 :
00110001001000100010110000100010 01010101010100100100110000100010 00111010001000100111011101110111 01110111001011100101010101010010
Blok Plain 4 :
01001100001011010110010101111000 01100001011011010111000001101100 01100101001011100110001101101111 01101101001000100111110101011101
BLOK PLAI N 0 Langkah 1:
x[ i] = x[ i] XOR k[ i]
x = x
XOR k = 00110111001101110111110001011011 XOR 01010011001100010010000001001001
= 01100100000001100101110000010010 x
1
= x
1
XOR k
1
= 01111011001000100111010101110011 XOR 01001100010011010101010100100000 = 00110111011011110010000001010011
x
2
= x
2
XOR k
2
= 01100101011100100110111001100001 XOR 01001011010011110100110101010000 = 00101110001111010010001100110001
x
3
= x
3
XOR k
3
= 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
if lsb x[ 0] = = 1, then x[ 0] = x[ 0] XOR delta
lsbx[0] = 0
if lsb x[ 3] = = 0, then x[ 3] = x[ 3] XOR delta
lsbx[3] = 0, x[3] = x[3] XOR delta = 11011000000011001011100011010100 XOR
00101010101010101010101010101010 = 11110010101001100001001001111110
Universitas Sumatera Utara
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
Proses tersebut hanya ditunjukkan untuk 2 langkah awal pada 1 sub blok. Untuk blok selanjutnya proses tetap sama. Operasi hanya berbeda di blok yang akan diproses.
Universitas Sumatera Utara
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 Fx
Xor x,1 Fx
Xor x,2 Fx
Xor x,3 Fx
Xor x,0 Fx
Xor x,1 Fx
Xor x,2
X , X
1
, X
2
, X
3
digabung kembali ciphertext
Selesai Mulai
Gambar 3.3 Flowchart Proses Enkripsi MMB
Universitas Sumatera Utara
Bagan sub proses XORx,k seperti gambar 3.4
For i= 0 to 3 x
= x
i
xor k
i
Mulai
Selesai
Gambar 3.4 Sub proses XORx,k
Sedangkan fungsi fx diatas dapat digambarkan dalam bentuk bagan seperti gambar 3.5
For i= 0 to 3
X
i
=
γ
i
X
i
Mulai
LSB X = 1
LSB X
3
= 0 X
= X xor
δ
X
3 =
X
3
Xor δ
ya tidak
ya tidak
For i= 0 to 3
X
i
= X
i-1
xor X
i
xor X
i+1
Selesai
Gambar 3.5 Fungsi fx pada Proses Enkripsi Algoritma MMB
Universitas Sumatera Utara
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.
x
i
= x
i
XOR k
i+2
15. fx
, x
1
, x
2
, x
3
16. x
i
= x
i
XOR k
i+1
17. fx
, x
1
, x
2
, x
3
18. x
i
= x
i
XOR k
i
19. fx
, x
1
, x
2
, x
3
20. x
i
= x
i
XOR k
i+3
21. fx
, x
1
, x
2
, x
3
22. x
i
= x
i
XOR k
i+2
23. fx
, x
1
, x
2
, x
3
24. x
i
= x
i
XOR k
i+1
25. fx
, x
1
, x
2
, x
3
26. x
i
= x
i
XOR k
i
Fungsi fx
1
, x
2
, x
3
, x
4
sebagai berikut: d.
x
i
= x
i-1
XOR x
i
XOR x
i+1
e. Jika LSB x
= 1, maka x = x
XOR δ
Jika LSB x
3
= 0, maka x
3
= x
3
XOR δ
f. x
i
= γ
i -1
x
i
keterangan : x
i
: sub blok Plainteks k
i :
sub blok Kunci key δ : Konstanta tetapan yang digunakan pada proses enkrip dekrip dengan nilai,
2AAAAAAA γ
-1
: Invers dari konstanta γ dari proses enkripsi yang digunakan untuk proses dekripsi dengan nilai , 0DAD4694
Universitas Sumatera Utara
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
97 f5 b4 18 73 04 ef f8 f5 d6 22 1b c3 d2 49 bf c2 2d 0f dc 96 88 88 a4 ce e8 13 a2 20 4f dc e6
dd 33 42 bd 24 b7 1f 9a 5c 7f 46 c8 63 eb e3 c0 8b b8 3b e4 5d 61 6f 0d 7d 7e 6f c1 d8 ce f1 54
Cipher blok 128- bit = Blok cipher 0 :
00101110010001011011011011000100 10111110001011101000110100101101 11001000110111011110010101110110 10101011011000110000011111101100
Blok cipher 1 :
10010111111101011011010000011000 01110011000001001110111111111000 11110101110101100010001000011011 11000011110100100100100110111111
Blok cipher 2 :
11000010001011010000111111011100 10010110100010001000100010100100 11001110111010000001001110100010 00100000010011111101110011100110
Blok cipher 3 :
11011101001100110100001010111101 00100100101101110001111110011010 01011100011111110100011011001000 01100011111010111110001111000000
Blok cipher 4 :
10001011101110000011101111100100 01011101011000010110111100001101 01111101011111100110111111000001 11011000110011101111000101010100
BLOK CI PHER 0 Langkah 1: x[ i] = x[ i] XOR k[ i+ 2]
x[0] = x[0] XOR k[2] = 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 = 01101001010111100110000100100111
x[1] = x[0] XOR x[1] XOR x[2]
Universitas Sumatera Utara
= 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
lsbx[0] = 1, x[0] = x[0] XOR delta = 10011011111011001100010100111111 XOR
00101010101010101010101010101010 = 10110001010001100110111110010101
if lsb x[ 3] = = 0, then x[ 3] = x[ 3] XOR delta
lsbx[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]
= 11011010110101000110100101000000 00011001110010000110110001100111 = 00110100011001101111110011101101
Universitas Sumatera Utara
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 Fx
-1
Xor x,1 Fx
-1
Xor x,0 Fx
-1
Xor x,3 Fx
-1
Xor x,2 Fx
-1
Xor x,2 Fx
-1
Xor x,1
X , X
1
, X
2
, X
3
digabung kembali plaintext
Mulai
Selesai
Gambar 3.6 Flowchart Proses Dekripsi MMB
Universitas Sumatera Utara
Bagan sub proses XOR x,k proses dekripsi algoritma MMB seperti gambar 3.7
For i= 0 to 3 x
= x
i
xor k
i
Mulai
Selesai
Gambar 3.6 Sub Proses XORx,k
For i= 0 to 3
X
i
= X
i-1
xor X
i
xor X
i+1
Mulai
LSB X = 1
LSB X
3
= 0 X
= X xor
δ
X
3
= X
3
xor
δ
ya tidak
ya tidak
For i= 0 to 3
X
i
=
γ
i
X
i
Selesai
Gambar 3.8 Fungsi fx pada Proses Dekripsi Algoritma MMB
Universitas Sumatera Utara
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
Tambah Data
Ubah Data
Hapus Data
Salin Username
Salin Password
Salin Url
Ganti Master Password
Gambar 3.9 Diagram Pohon Aplikasi
Universitas Sumatera Utara
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.
5. Menu keluar berfungsi untuk menutup keseluruhan aplikasi.
Universitas Sumatera Utara
Start
Database Baru
Buka Database
no yes
Pilih Lokasi Untuk Menyimpan
File Pilih Lokasi
File yes
Tambah Data
Ubah Data
Hapus Data
no no
yes yes
Simpan yes
no no
yes no
Keluar
End yes
Lihat Log Aplikasi
Password Management
no Masukkan
Master Password
Masukkan
Master Password
Masukkan Data
Username Password, URL
Tampilan Form
Utama
Gambar 3.10 Flowchart Aplikasi Password Management
Universitas Sumatera Utara
3.2.3 Flowchart Lihat Log Aplikasi