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
PENGHARGAAN
Alhamdulillah, puji syukur saya ucapkan kehadirat Allah SWT yang telah
memberikan rahmat dan hidayah-Nya, sehingga saya dapat menyelesaikan
penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer
pada Program Studi S1 Ilmu Komputer Universitas Sumatera Utara. Shalawat beriring
salam saya persembahkan kepada Nabi Besar Muhammad SAW.
Skripsi ini dapat saya selesaikan berkat dorongan , saran, bantuan dan kerja
sama dari berbagai pihak, baik moril maupun materil. Oleh karena itu, saya ingin
menyampaikan rasa hormat dan terima kasih yang sebesar–besarnya kepada :
1. Rektor Universitas Sumatera Utara, Bapak Prof. Dr. dr. Syahril Pasaribu,
D.T.M.&H., M.Sc. (C.T.M.), Sp.A.(K.)
2. Dekan Fakultas Ilmu Komputer dan Teknologi Informasi USU, Bapak Prof.
Dr. Muhammad Zarlis, M.Kom
3. Ketua Program Studi S1 Ilmu Komputer, Bapak Dr. Poltak Sihombing,
M.Kom dan juga selaku Dosen Pembimbing I yang telah memberikan
bimbingan, saran, dan masukan kepada saya untuk menyelesaikan skripsi ini.
4. Sekretaris Program Studi S1 Ilmu Komputer, Ibu Maya Silvi Lydia,
B.Sc.,M.Sc.
5. Bapak Amer Sharif, S.Si, M.Kom sebagai Dosen Pembimbing II yang telah
memberikan bimbingan, saran, dan masukan kepada saya untuk
menyempurnakan skripsi ini.
6. Dosen Penguji Bapak Syahriol Sitorus, S.Si, MIT dan Bapak Drs. Dahlan
Sitompul, M.Eng atas saran dan kritikan yang sangat berguna bagi saya.
7. Dosen-dosen serta pegawai-pegawai di Program Studi S1 Ilmu Komputer
USU.
8. Kedua orang tua saya yang telah memberikan dukungan dan motivasi,
ayahanda (alm) Drs. KH. Usman Husni, M.A dan ibunda Hj. Aidatul Fauziah
Hsb, S.Pd yang selalu sabar dalam mendidik saya.
9. Abangda M. Najmil Husna, S.T.Hi, MA dan Kakanda Zulfa Yalid, S.H.I. Serta
Abangda M. Aidil Husna, S.S yang selalu memberikan dorongan kepada saya
10.Pocut Rizky Azhari atas semangat, pengertian, perhatian dan kesabaran yang
selalu diberikan kepada saya.
11.Sri Melvani Hardi, S.Kom , Muhammad Alvin, S.Kom, Bambang Budiarto
S.Kom, Andika Novaldy, S.Kom, Bagoes Harsono, S.Kom, Dameria Gloria,
S.Kom, Januar Rambe, S.Kom, Bobbie Medana, S.Kom yang telah memberi
saran, masukan dan dukungannya selama pengerjaan skripsi ini dan selalu
memberikan dukungan dan dorongan baik moril maupun materil.
12.Rekan-rekan di S-1 Ilmu Komputer USU terutama angkatan 2006, juga teman-
teman saya dari semua angkatan yang secara tidak langsung telah membantu
selama penyusunan tugas akhir ini.
13.Dan semua pihak yang telah banyak membantu yang tidak bisa disebutkan
satu-persatu.
Semoga kebaikan yang telah diberikan kepada saya mendapatkan pahala yang
melimpah dari Allah SWT.
Penyusun menyadari bahwasanya dalam penyusunan Tugas Akhir ini masih memiliki
banyak kekurangan baik dari segi materi maupun dari segi penyusunannya mengingat
terbatasnya pengetahuan dan kemampuan saya. Untuk itu, dengan kerendahan hati
saya mohon maaf dan saya menerima saran dan kritik yang bersifat membangun demi
kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.
Medan, 16 April 2013
Penyusun
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.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan v
Abstrak vi
Daftar Isi viii
Daftar Gambar x
Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 3
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 4
1.6 Metode Penelitian 4
1.7 Sistematika Penulisan 5
Bab 2 Tinjauan Pustaka
2.1 Kriptografi 7
2.1.1 Sejarah Kriptografi 8
2.1.2 Proses Kriptografi 9
2.1.3 Jenis Sistem Kriptografi 12
2.1.2.1 Kriptografi Kunci Rahasia 12
2.1.2.2 Kriptografi Kunci Publik 13
2.1.3 Kategori Chiper Kunci Simetri 14
2.2 Algoritma MMB 15
2.2.1 Sejarah Singkat MMB 15
2.2.2 Spesifikasi Algoritma MMB 15
2.2.3 Proses Pembentukan Kunci 16
2.2.4 Proses Enkripsi Algoritma MMB 16
2.2.5 Proses Dekripsi Algoritma MMB 17
2.3 Password Management 19
2.3.1 Konsep Password Management 19
2.3.2 Penerapan Enkripsi pada Password Management 20
2.4 Flowchart 21
Bab 3 Analisis dan Perancangan
3.1 Analisis 23
3.1.1 Analisis Masalah 23
3.1.2 Penyelesaian Masalah 24
3.1.4 Analisis Kebutuhan Perangkat 27
3.1.4.1 Perangkat Keras 27
3.1.4.2 Perangkat Lunak 27
3.1.5 Penerapan Algoritma MMB 27
3.1.5.1 Proses Pembangkitan Kunci 29
3.1.5.2 Proses Enkripsi Algoritma MMB 30
3.1.5.3 Flowchart Enkripsi MMB 35
3.1.5.4 Proses Dekripsi Algoritma MMB 37
3.1.5.5 Flowchart Dekripsi MMB 41
3.2 Perancangan Aplikasi 43
3.2.1 Perancangan Diagram Pohon (Tree Chart) 43
3.2.2 Flowchart Aplikasi 44
3.2.3 Flowchart Lihat Log Aplikasi 46
3.2.4 Data Flow Diagram (DFD) 47
3.2.4.1 Diagram Konteks 47
3.2.4.2 DFD Level 1 48
3.2.4.3 DFD Level 2 (Proses Enkripsi) 49
3.2.4.3 DFD Level 2 (Proses Dekripsi) 50
Bab 4 Implementasi dan Penggunaan
4.1 Spesifikasi Perangkat Lunak 52
4.2 Spesifikasi Perangkat Keras 52
4.3 Implementasi 53
4.3.1 Proses Input Data 53
4.3.2 Proses Pembentukan Kunci 53
4.3.3 Proses Enkripsi 54
4.3.4 Proses Dekripsi 58
4.4 Pengujian Sistem 61
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan 64
5.2 Saran 65
DAFTAR GAMBAR
Halaman
Gambar 2.1 Mekanisme Kriptografi 10
Gambar 2.2 Kriptografi Berbasis Kunci 11
Gambar 2.3 Model Sederhana dari Secret Key Cryptography 13
Gambar 2.4 Model Sederhana dari Public Key Cryptography 14
Gambar 2.5 Proses Pembentukan Kunci 16
Gambar 3.1 Analisis Permasalahan 26
Gambar 3.2 Proses Pembentukan Kunci pada Algoritma MMB 29
Gambar 3.3 Flowchart Proses Enkripsi MMB 35
Gambar 3.4 Sub Proses XOR(x,k) 36
Gambar 3.5 Flowchart Fungsi f(x) pada Proses Enkripsi Algoritma MMB 36
Gambar 3.6 Flowchart Proses Dekripsi MMB 41
Gambar 3.7 Sub Proses XOR(x,k) 42
Gambar 3.8 Flowchart Fungsi f(x) pada Proses Dekripsi Algoritma MMB 42
Gambar 3.9 Diagram Pohon Aplikasi 43
Gambar 3.10 Flowchart Aplikasi Password Management 45
Gambar 3.11 Flowchart Log Aplikasi Password Management 46
Gambar 3.12 Diagram Konteks 47
Gambar 3.13 DFD Level 1 48
Gambar 3.14 DFD Level 2 (proses enkripsi) 49
Gambar 3.15 DFD Level 2 (proses dekripsi) 50
Gambar 4.1 Data yang Telah Disimpan 53
Gambar 4.2 Pembentukan key (kunci) 54
Gambar 4.3 Plainteks Dalam Bentuk Heksadesimal dan Biner 54
Gambar 4.4 Langkah 1 pada Blok Plain 0 55
Gambar 4.5 Langkah 2 pada Blok Plain 0 56
Gambar 4.6 Langkah 2 pada Blok Plain 0 (Lanjutan) 57
Gambar 4.7 Ciphertext hasil enkripsi 57
Gambar 4.8 Langkah 1 Blok Cipher 0 58
Gambar 4.9 Langkah 2 Blok Cipher 0 59
Gambar 4.10 Langkah 2 Blok Cipher 0 (Lanjutan) 60
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.
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.
Algoritma-algoritma dalam proses enkripsi dan dekripsi sebenarnya terbagi
menjadi dua macam, yaitu yang bersifat stream cipher dan block cipher. Stream
cipher mengenkripsi plaintext atau mendekripsi ciphertext secara bit per bit, yaitu
satu bit dienkripsi atau didekripsi per satuan waktu. Sedangkan algoritma tipe block
cipher mengenkripsi plaintext dan mendekripsi ciphertext secara blok per blok (blok
adalah kumpulan bit), yaitu satu blok dienkripsi atau didekripsi per satuan waktu.
Tentu saja proses enkripsi dan dekripsi menggunakan metode block cipher memiliki
kecepatan yang lebih baik dibandingkan metode stream cipher.
Salah satu contoh algoritma kriptografi block cipher adalah algoritma MMB
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
username dan password menggunakan algoritma MMB (Modular
Multiplication-based Block Cipher).
2. Menambah aplikasi dalam bidang kriptografi dan juga dapat dijadikan alat
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 ini menjelaskan mengenai latar belakang pemilihan judul, rumusan masalah,
batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan
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
Membuat kesimpulan-kesimpulan yang merupakan rangkuman dari hasil analisis kerja
pada bagian sebelumnya dan saran yang perlu diperhatikan berdasarkan keterbatasan
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
pasti sampai pada penerimanya tanpa ada bagian dari pesan tersebut yang diganti,
diduplikasi, dirusak, diubah urutannya, dan ditambahkan.
4. Nonrepudiation mencegah pengirim maupun penerima mengingkari bahwa
mereka telah mengirimkan atau menerima suatu pesan/informasi. Jika sebuah
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.
Perkembangan komputer dan sistem komunikasi pada tahun 1960-an
mengakibatkan munculnya kebutuhan pihak swasta akan alat untuk melindungi
informasi dalam bentuk digital dan untuk menyediakan layanan keamanan informasi.
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
dikembalikan kebentuk asalnya (text asli), disebut dengan dekripsi pesan.
Algoritma yang digunakan untuk dekripsi tentu berbeda dengan algoritma
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
publik (public key) dan kunci rahasia (private key) dimana kunci publik
dipublikasikan dan kunci rahasia tetap dirahasiakan
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.1 Kriptografi 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.
kunci publik kunci pribadi
penerima penerima
enkripsi dekripsi
Gambar 2.4 Model Sederhana dari Public Key Cryptography
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.
k0 k1 k2 … k127
k0 k1 … k31 k32 k33 … k63 k64 k65 … k95 k96 k97 … k127
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:
a. xi = xi-1 XOR xi XOR xi+1
b. Jika LSB (x0) = 1, maka x0 = x0 XOR δ
Jika LSB (x3) = 0, maka x3 = x3 XOR δ
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.
Untuk mengetahui sejauh mana pentingnya hal ini, seseorang perlu memahami
struktur dari suatu sistem keamanan yang terintegrasi serta teknologi-teknologi yang
terlibat di dalamnya. Ada tiga komponen penting dalam sebuah sistem keamanan
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
penanganan informasi dan operasi-operasi yang dikenakan pada data pada titik-titik
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
DECISION
Perbandingan pernyataan,
penyeleksian data yang memberikan
ON PAGE CONNECTOR
Penghubung bagian-bagian Flowchart
yang berada pada satu halaman
OFF PAGE CONNECTOR
Penghubung bagian-bagian Flowchart
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).
Password digunakan sebagai salah satu otentikasi yang hanya diketahui oleh
pemakai. Untuk itu, biasanya sebelum kita masuk atau ingin membuka sesuatu yang
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
password manager 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.
3.1.3 Gambaran Umum Aplikasi
Aplikasi password management yang akan dibangun akan disesuaikan dengan kebutuhan
pengguna dalam menyimpan dan mengamankan password. Implementasi aplikasi
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.
Dalam pembahasan kriptografi yang sedang dibahas yaitu mengenai penerapan
password manager pada pengamanan data username dan password menggunakan
algoritma kriptografi MMB. Implementasi aplikasi password manager menggunakan
algoritma kriptografi MMB untuk melakukan proses enkripsi dan dekripsi data. Dan
menggunakan master password sebagai kunci (key) proses enkripsi dan dekripsi.
Berikut dibawah ini analisis rancangan dari permasalahan yang sedang dibahas,
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
berbasis teks dan terbaca-manusia serta digunakan untuk merepresentasikan struktur
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
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 =
01010011001100010010000001001001 01001100010011010101010100100000
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)
16. xi = xi XOR ki+1
17. f(x0, x1, x2, x3)
18. xi = xi XOR ki+2
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) :
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]
x0 = x0 XOR k0
= 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
Proses tersebut hanya ditunjukkan untuk 2 langkah awal pada 1 sub blok. Untuk blok
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
γ-1: Invers dari konstanta γ dari proses enkripsi yang digunakan untuk proses
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