3.4 Analisis Proses Deskripsi Algoritma TEA
Untuk proses deskripsi pada algoritma TEA sama halnya dengan proses enkripsinya. Hanya saja terjadi perbedaan pada penjadwalan kuncinya yaitu pada proses enkripsi
untuk cipher R yang mengalami pergeseran bit ke kiri sebanyak 4 bit digunakan kunci k[0] pada proses deskripsi digunakan kunci k[1], untuk cipher R yang mengalami
pergeseran ke kanan sebanyak 5 bit menggunakan kunci [1] pada proses deskripsi menggunakan kunci k[0]. Begitu juga halnya dengan cipher L, pada proses enkripsi
untuk cipher L yang mengalami pergeseran ke kiri sebanyak 4 bit menggunakan kunci k[2] pada proses deskripsi digunakan kunci k[3]. Untuk cipher L yang mengalami
pergeseran ke kanan sebanyak 5 bit digunkan kunci k[3] pada proses deskripsi digunkan kunci k[2].
3.5 Pemodelan Fungsional
Hasil yang diharapkan dari tahapan membangun suatu sistem adalah bagaimana caranya agar sistem yang dibangun memiliki fungsi yang berdayaguna maksimal.
Oleh karena itu, maka fungsi – fungsi yang ada pada sistem tersebut perlu dianalisis. Adapun pada perangkat lunak algoritma TEA, secara garis besar terdiri atas 2 fungsi
yaitu fungsi enkripsi dan fungsi deskripsi. Untuk melengkapi mekanisme dari kedua fungsi tersebut maka terdapat fungsi-fungsi pendukung, seperti fungsi untuk input
data secara browsing file ataupun secara manual, serta fungsi untuk mendapatkan informasi dari panjang file, dan fungsi-fungsi lainnya.
3.5.1 Data Flow Diagram DFD
Data Flow Diagram DFD dapat digunakan untuk menggambarkan aliran informasi dan proses data yang bergerak dari pemasukan data hingga keluaran. Keuntungan
penggunaan Data Flow Diagram DFD ini adalah memudahkan pemakai yang kurang menguasai bidang komputer untuk mengerti sistem yang akan dikerjakan atau
dikembangkan. Berikut adalah Data Flow Diagram DFD dari perangkat lunak yang akan dirancang. Kendall Kendall, 2003.
user P.0
Sistem keamanan data
Menggunakan algoritma TEA
Order_perintah, plaintext, ciphertext, kunci_enkripsi,
kunci_deskripsi
File_output ciphertextpesan rahasia, plaintextpesan asli
Gambar 3.1 Diagram KonteksDFD Level 0
DFD level 0 di atas menggambarkan sistem secara garis besar yang memperlihatkan masukan, proses, dan keluaran dari sistem yang akan dirancang. Tiny
Encryption Algorithm kriptosistem akan menghasilkan keluaran berupa file output.
Proses yang terjadi pada diagram konteks atau DFD Level 0 di atas dapat dijelaskan dengan menggunakan spesifikasi proses pada tabel 3.1 berikut :
Tabel 3.1 Spesifikasi proses diagram konteksDFD Level 0
NoNama Input
Keterangan Proses
Output
P.0 Sistem Keamanan data
menggunakan Algoritma TEA
Order Perintah, plaintext,
ciphertext, kunci_enkripsi,
kunci_deskripsi Sistem yang bertujuan
mengamankan data file menggunakan
algoritma kriptografi simetri Tiny Encryption
Algorithm TEA File Output
ciphertextpesan rahasia,
plaintextpesan asli
Pengembangan proses yang terjadi pada DFD level 0 di atas dapat di jabarkan pada DFD level 1 berikut :
user
P.1 Pilih proses
yang akan dijalankan
P.3 Proses
deskripsi Algoritma
TEA P.2
Proses enkripsi
algoritma TEA
+
Order_perintah Order_enkripsi
Order_deskripsi Plaintext, kunci_enkripsi
Ciphertext, kunci_deskripsi File_output ciphertextpesan
rahasia
File_output plaintextpesan asli
Gambar 3.2 Diagram Level 1
Pada gambar di atas dapat dilihat bahwa terdapat 2 pilihan proses yang dapat dilakukan pada kriptosistem ini yaitu :
1. Proses Enkripsi
Proses Enkripsi adalah proses untuk mengubah Plaintext pesan asli menjadi Ciphertext pesan rahasia. Untuk melakukan proses enkripsi, user harus
menginput plaintext serta menginput kunci password. 2.
Proses Deskripsi Proses Deskripsi adalah proses untuk mengubah Ciphertext pesan tersandi
menjadi Plaintext pesan asli kembali. Untuk melakukan proses deskripsi, user harus menginput ciphertext yang telah terenkripsi sebelumnya dan
menggunakan kunci yang sama pada saat proses enkripsi.
Spesifikasi proses dari DFD level 1 pada Gambar 3.2 akan dijelaskan pada tabel berikut :
Tabel 3.2 Spesifikasi proses diagram level 1
Proses enkripsi dilakukan pada file. Setiap karakter yang ada pada file dikonversikan ke kode ASCII kemudian ke biner. Karakter-karakter tersebut
dienkripsi menggunakan kunci rahasia. Berikut adalah gambar diagram alir untuk proses enkripsi :
No Nama Input
Keterangan Proses
Output
P.1 pilih proses yang akan
dijalankan Order_Perintah
Konfirmasi order perintah untuk
melakukan proses Enkripsi atau
proses Dekripsi Order Enkripsi atau
Order Dekripsi
P.2 proses enkripsi algoritma TEA
Order_perintah Enkripsi, plaintext,
kunci_enkripsi Enkripsi data
File Output ciphertextpesan
rahasia P.3 Proses
deskripsi Algoritma TEA
Order_perintah Dekripsi,
ciphertext, kunci_deskripsi
Dekripsi data File Output
plaintextpesan asli
P.3.1 Browsing file
user
P.3.6 Proses gabung
keseluruhan blok 64 bit
P.3.5 Proses deskripsi II
P.3.4 Proses deskripsi I
P.3.2 Proses potong
ciphertext
File_data
P.3.8 Konversi dari
ASCII
P.3.7 Konversi biner Ke
ASCII
File_data
ciphertext
cipher2
P.3.3 Partisi kunci 128 bit
menjadi k[0], k[1], k[2], k[3] masing –
masing 32 bit
subblok_cipher
cipher1 Biner_plain
ASCII_plain k[0], k[1],
k[2], k[3]
k[0], k[1], k[2], k[3]
Kunci deskripsi 128 bit
Order_deskripsi
P.3.9 Proses gabung
plaintext
Kode ASCII Kode_ASCII
D1
D2
Plaintext D3
Krk_plain File_output
Gambar 3.3 Diagram level 2 Proses Enkripsi
Berikut adalah tabel spesifikasi proses enkripsi :
Tabel 3.3 Spesifikasi Proses DFD Level 2 Proses 2 proses enkripsi No Nama
Input Keterangan
Proses Output
P.2.1 Browsing File File Data,
order_enkripsi Melakukan browsing file yang akan
dienkripsi File data
Plaintext
P.2.2 Potong File Plaintext
Memotong isi file menjadi blok- blok karakter
krk_plain
P.2.3 Konversi ke ASCII
krk_plain, kode_ASCII
Mengkonversikan karakter plainteks ke dalam kode ASCII
ASCII_plain
P.2.4 Konversi ke biner
ASCII_plain Mengkonversikan kode ASCII
plainteks ke biner Biner_plain
P.2.5 proses partisi jadi 64 bit
Biner_plain Mempartisi keseluruhan bit
plaintext menjadi blok-blok 64-bit Blok_p lain
P.2.6 Proses partisi 64 bit jadi 2 subblok bit
32 bit Blok_p lain
Mempartisi setiap blok-blok plainteks 64-bit menjadi 2 subblok
32-bit Subblok_pla
in
P.2.7 Partisi kunci 128 bit menjadi k[0],
k[1], k[2], k[3] masing – masing 32 bit
Kunci enkripsi 128 bit
Mempartisi masukan kunci 128 bit menjadi k[0, k[1], k[2], k[3] yang
masing – masing 32 bit K[0], k[1],
k[2], k[3]
P.2.8 Proses Enkripsi I
Subblok_plain Melakukan proses enkripsi tahap I
Cipher1
P.2.9 Proses Enkripsi II
Cipher1 Melakukan proses enkripsi tahap I I Cipher2
P.2.10 Proses gabung ciphertext
Cipher2 Menggabungkan seluruh karakter
cipherteks
File_Output Ciphertext
Untuk mengembalikan cipherteks menjadi plaintext kembali agar dapat dipahami, maka dilakukan proses dekripsi pada file tersebut. Untuk melakukan proses
dekripsi digunakan kunci yang sama pada saat melakukan proses enkripsi. Proses dekripsi dapat dilihat pada gambar DFD level 2 proses dekripsi berikut :
P.3.1 Browsing file
user
P.3.6 Proses gabung
keseluruhan blok 64 bit
P.3.5 Proses deskripsi II
P.3.4 Proses deskripsi I
P.3.2 Proses potong
ciphertext
File_data
P.3.8 Konversi dari
ASCII
P.3.7 Konversi biner Ke
ASCII
File_data
ciphertext
cipher2
P.3.3 Partisi kunci 128 bit
menjadi k[0], k[1], k[2], k[3] masing –
masing 32 bit
subblok_cipher
cipher1 Biner_plain
ASCII_plain k[0], k[1],
k[2], k[3]
k[0], k[1], k[2], k[3]
Kunci deskripsi 128 bit
Order_deskripsi
P.3.9 Proses gabung
plaintext
Kode ASCII Kode_ASCII
D1
D2
Plaintext D3
Krk_plain File_output
Gambar 3.4 Diagram level 2 Proses Deskripsi
Berikut adalah tabel spesifikasi proses deskripsi :
Tabel 3.4 Spesifikasi Proses DFD Level 2 Proses 3 Proses Deskripsi
Spesifikasi proses dekripsi dapat dilihat pada tabel berikut :
NoNama Input
Keterangan Proses Output
P.3.1Browsing file File Data,
order_enkripsi Melakukan browsing file yang
akan dideskripsi File data
ciphertext P.3.2 Proses potong
ciphertext Ciphertext
Memotong pesan yang akan didekripsi menjadi blok-blok
cipher 64-bit, lalu mempartisi ke dalam 2 subblok 32-bit untuk
didekripsi pada tahap I Subblok_Ci
pher
P.3.3 Partisi kunci 128 bit menjadi k[0],
k[1], k[2], k[3] masing – masing 32
bit Kunci deskripsi
128 bit Mempartisi masukan kunci 128 bit
menjadi k[0], k[1], k[2], k[3] yang masing – masing 32 bit
K[0], k[1], k[2], k[3]
P.3.4 Proses deskripsi I
Subblok_Cipher Melakukan proses dekripsi tahap I Cipher1
P.3.5proses deskripsi II
Cipher1 Melakukan proses dekripsi tahap I
I Cipher2
P.3.6 Proses gabung keseluruhan blok 64
bit Cipher2
Menggabungkan setiap 32-bit subblok ciphertext menjadi blok-
blok 64 bit Biner_Plain
P.3.7 Konversi biner ke ASCII
Biner_Plain Mengkonversi setiap blok-blok
plainteks menjadi kode ASCII nya ASCII_Plain
P.3.8 Konversi dari ASCII
ASCII_plain, kode_ASCII
Mengkonversi setiap kode ASCII menjadi karakter-karkter nya
Krk_plain
P.3.9 Proses gabung plaintext
Krk_plain Menggabungkan seluruh karakter-
karakter plainteks File_Output
Plaintext
3.5.2 Kamus Data
Kamus data merupakan suatu data yang disusun untuk memudahkan proses analisis dan desain. Selain suatu dokumen, kamus data mengumpulkan dan mengkoordinasi
istilah-istilah data yang terdapat pada diagram alir. Penganalisis sistem harus hati-hati dalam mengkatalogkan istilah-istilah yang berbeda-beda yang menunjuk pada item
yang sama. Kehati-hatian ini membantu dalam menghindari duplikasi, memungkinkan adanya komunikasi yang baik antara bagian-bagian yang saling berbagi basis data, dan
membuat upaya pemeliharaan lebih bermanfaat. Kamus data juga bertindak sebagai standar tetap untuk elemen-elemen data. Kendall Kendall, 2003
Masukan-masukan kamus data bisa dibuat setelah diagram aliran data dilengkapi atau bisa juga disusun saat diagram aliran data sedang dikembangkan.
Penganalisis sistem bisa saja membuat suatu diagram aliran data level 0 dan sekaligus membuat masukan-masukan data awal. Selanjutnya, sewaktu penganalisis sistem
mengembangkan diagram level data menjadi diagram anak, penganalisis juga bisa memodifikasi masukan-masukan kamus data yang baru sesuai dengan aliran data pada
diagram alir anak.
Berikut ini merupakan kamus data yang berisikan data yang digunakan pada diagram alir data pada proses enkripsi dan dekripsi.
3.5.2.1 Kamus Data Proses Enkripsi
Tabel 3.5 Kamus Data Proses Enkripsi
Nama Tipe data
Deskripsi
ASCII_plain Integer
Karakter plainteks yang telah diubah ke dalam kode ASCII
Biner_plain Integer
Bentuk biner plainteks dari setiap kode ASCII karakter pesan
Blok_plain Integer
Blok-blok 64-bit plainteks hasil partisi plainteks
Blok_cipher Integer
Hasil penggabungan seluruh cipher yang diperoleh
Cipher1 Integer
Hasil proses enkripsi tahap I Cipher2
Integer Hasil proses enkripsi tahap II
File_data Boolean
Semua jenis file yang tersimpan di komputer
File_Output Boolean
File hasil enkripsi Krk_plain
Char Karakter plainteks yang telah dipotong
Kode_ASCII Integer
Bentuk desimal kode ASCII Kunci_enkripsi
string Kunci enkripsi yang diinput oleh user
maksimal 16 karakter k[0], k[1], k[2], k[3]
string 128 bit kunci yang dipartisi menjadi 4
blok yang masing – masing 32 bit untuk proses enkripsi
Order_enkripsi String
Perintah untuk melakukan browsing file.
Plaintext boolean
File yang akan dienkripsi
3.5.2.2 Kamus Data Proses Deskripsi
Tabel 3.6 Kamus Data Proses Deskripsi
Nama Tipe data
Deskripsi
ASCII_plain Integer
kode ASCII hasil konversi dari biner plainteks
Blok_c ipher Integer
blok ciphertext hasil deskripsi Cipherteks
boolean File yang akan didekripsi
Cipher2 Integer
Karakter cipher yang telah dipotong Cipher1
Integer Hasil proses dekripsi tahap I
File_data Boolean
Semua jenis file yang tersimpan di komputer
File_output Boolean
File hasil dekripsi gabungan seluruh karakter plainteks
Krk_plain Char
Karakter plainteks yang telah dikonversi dari kode ASCII
Kunci_deskripsi String
Kunci dekripsi yang diinput user maksimal 16
k[0], k[1], k[2], k[3] string
128 bit kunci yang dipartisi menjadi 4 blok yang masing – masing 32 bit untuk
proses deskripsi Order_deskripsi
String Perintah untuk melakukan browsing
file. Subblok_cipher
Integer Hasil proses dekripsi tahap II
BAB 4
PERANCANGAN DAN IMPLEMENTASI
4.1 Perancangan