• Tidak ada hasil yang ditemukan

Implementasi Algoritma Mmb (Modular Multiplication Based Block Cipher) Pada Pembuatan Aplikasi Manajemen Kata Sandi (Password Management)

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Mmb (Modular Multiplication Based Block Cipher) Pada Pembuatan Aplikasi Manajemen Kata Sandi (Password Management)"

Copied!
78
0
0

Teks penuh

(1)

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

(2)

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.,

(3)

[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

(4)

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).

(5)

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.

(6)

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.

(7)

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

(8)

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

(9)

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.

(10)

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 =

(11)

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)

(12)

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 :

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

= 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]

(20)

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

(21)

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

(22)

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

(23)

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.

(24)

Start

(25)

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.

(26)

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

(27)

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

(28)

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.

(29)

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

(30)

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.

(31)

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.

(32)

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.

(33)

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).

(34)

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

(35)

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 * γ

(36)

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.

(37)

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).

(38)

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

(39)

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* γ

(40)

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).

(41)

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

(42)

Tabel 4.1 Tabel Hasil Uji Aplikasi (lanjutan) pada table ke suatu

(43)

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.

(44)

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.

(45)

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

(46)

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.

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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.

(52)

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

(53)

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.

(54)

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

(55)

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:

(56)

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

(57)

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.

(58)

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

(59)

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

(60)

ON PAGE CONNECTOR

Penghubung bagian-bagian Flowchart yang berada pada satu halaman

OFF PAGE CONNECTOR

(61)

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.

(62)

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

(63)

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

(64)

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

(65)

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

(66)

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.

(67)

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.

(68)

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

(69)

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

(70)

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,

(71)

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

Gambar

Gambar 3.2 Proses Pembentukan Kunci pada Metode MMB
Gambar 3.3 merupakan proses enkripsi MMB :
Gambar 3.4 Sub proses XOR(x,k)
Gambar 3.6 Flowchart Proses Dekripsi MMB
+7

Referensi

Dokumen terkait

Dari hasil pengujian beta yang telah dilakukan yaitu dengan wawancara langsung denga pengguna aplikasi, maka dapat disimpulkan bahwa Aplikasi Algoritma C4.5 untuk

Bagaimana cara merealisasikan suatu program yang dapat melakukan proses enkripsi dan deskripsi menggunakan algoritma MMB (Modular Multiplication-based Block cipher) untuk

Dalam hal ini pesan akan disajikan dengan cara aplikasi keamanan algoritma enkripsi caesar cipher pada pesan email dengan menggunakan bahasa pemrograman PHP, sehingga kerahasiaan

Berdasarkan latar belakang yang telah dikemukakan, maka permasalahan yang dapat dirumuskan adalah bagaimana membuat aplikasi Notes menggunakan algoritma kriptografi

Kombinasi algoritma kriptografi ini nantinya digunakan untuk fitur enkripsi teks pada aplikasi catatan yang penulis buat, dengan menggunakan algoritma kriptografi

Dengan memanfaatkan algoritma AES ini, maka dapat dikembangkan suatu aplikasi SMS yang memungkinkan pengguna untuk mengirimkan pesan singkat dengan enkripsi teks