DFD Data Flow Diagram dan Spesifikasi Proses

3.3.Pemodelan Fungsional Hasil yang diharapkan dari tahapan membangun suatu sistem adalah bagaimana caranya agar sistem yang dibangun memiliki fungsi yang berdaya guna maksimal. Oleh karena itu, maka fungsi-fungsi yang ada pada sistem tersebut perlu dianalisis. Pada sistem kriptografi IDEA, secara garis besar terdapat tiga fungsi, yaitu: enkripsi pesan, dekripsi pesan, dan pembentukan subkunci. Pemodelan fungsional menggambarkan aspek dari sistem yang berhubungan dengan transformasi dari nilai, seperti fungsi, pemetaan, batasan, dan ketergantungan fungsional. Pemodelan fungsional menangkap sesuatu yang dikerjakan oleh sistem tanpa memperhatikan bagaimana dan kapan hal itu dikerjakan.

3.4. DFD Data Flow Diagram dan Spesifikasi Proses

Pemodelan fungsional digambarkan dengan diagram aliran data DFD. DFD merupakan cara yang intuitif untuk menunjukkan bagaimana data diproses oleh sistem atau bagaimana data mengalir dalam serangkaian pemrosesan. Data ditransformasikan pada setiap langkah sebelum berlanjut ke tahapan selanjutnya. Langkah-langkah pemrosesan atau transformasi ini merupakan fungsi program ketika diagram aliran data digunakan untuk mendokumentasikan desain perangkat lunak. DFD merupakan model dari sistem untuk menggambarkan pembagian sistem ke modul yang lebih kecil. Keuntungan penggunanan Data Flow Diagram adalah memudahkan pemakai yang kurang menguasai bidang komputer untuk mengerti sistem yang akan dikerjakan atau dikembangkan Pressman. R.S., 2002. Simbol DFD yang akan digunakan dalam pembahasan ini adalah simbol yang sering digunakan oleh Yourdan, De Marco dan lainnya. Data Flow Diagram dari perangkat lunak IDEA Kriptosistem yang penulis rancang dapat dilihat pada gambar-gambar berikut ini. Universitas Sumatera Utara

3.4.1. Diagram Konteks

DFD level 0 di bawah menggambarkan sistem secara garis besar yang memperlihatkan masukan, proses, dan keluaran dari sistem yang akan dirancang. IDEA Kriptosistem akan menghasilkan keluaran berupa pesan rahasia dan pesan asli. User P.0 Sistem Kriptografi algoritma IDEA IdeaCrypt Plainteks, Cipherteks, Kunci Psn_Rhs, Psn_Asli, Sub_knci_enk, Sub_knci_dek Gambar 3.1 Diagram Konteks Sistem Proses yang terjadi pada diagram konteks atau DFD Level 0 di atas dapat dijelaskan dengan menggunakan spesifikasi proses pada tabel 3.1. Tabel 3.1 Spesifikasi Proses Diagram Konteks Nama Input Keterangan Proses Output Proses 0 Plainteks, Cipherteks, Kunci Mengamankan data dengan algoritma kriptografi simetri IDEA Psn_Rhs, Psn_Asli, Sub_knci_enk, Sub_knci_dek Pengembangan proses yang terjadi pada diagram konteks di atas dapat dijabarkan menjadi DFD level 1.

3.4.2. DFD Level 1

DFD level 1 pada gambar 3.2 menggambarkan sistem secara garis besar yang memperlihatkan proses-proses yang dilakukan dalam sistem kriptografi dengan algoritma IDEA, proses ini dimulai dari proses Pembentukan Kunci, yakni proses yang dilakukan untuk mendapatkan seluruh subkunci enkripsi dan subkunci dekripsi yang totalnya masing-masing 52 subkunci yang diperoleh dari 8 subkunci yang dimasukkan user. Universitas Sumatera Utara User P.2 Pemilihan Proses P.3 Proses Enkripsi P.4 Proses Dekripsi P.1 Proses Pembentukan Kunci Kunci Psn_Rhs Psn_Asli Order_ perintah Order_Enk Order_Dek Plainteks Cipherteks Sub_knci_enk Order_knci_enk Order_knci_dek Sub_knci_dek Sub_knci_enk Sub_knci_dek Gambar 3.2 DFD 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 merupakan proses yang dilakukan untuk mengubah pesan asli menjadi pesan terenkripsi yang tidak dapat dipahami. Untuk memperoleh pesan terenkripsi tersebut, user menggunakan kunci simetri kunci untuk proses enkripsi dan dekripsinya sama.

2. Proses Dekripsi

Proses dekripsi merupakan proses untuk mengubah pesan yang telah dienkripsi menjadi pesan asli pesan semula. Untuk melakukan proses dekripsi ini, user menggunakan kunci yang sama dengan yang digunakan pada saat proses enkripsi. Spesifikasi proses dari DFD level 1 dijelaskan pada tabel 3.2. Universitas Sumatera Utara Tabel 3.2 Spesifikasi Proses Diagram Level 1 Nama Input Keterangan Proses Output Proses 1 Kunci, order_knci_enk, order_ knci_dek Membentuk sub-sub kunci yang akan digunakan pada proses enkripsi maupun dekripsi Sub_knci_enk, Sub_knci_dek, order_perintah Proses 2 Order_perintah Memilih proses yang ingin dilakukan, apakah akan mengenkripsi atau mendekripsi pesan Order_enk, Order_dek, Plainteks, Cipherteks Proses 3 Order_enk, Sub_knci_enk, Plainteks Mengenkripsi pesan dari pesan yang dapat dipahami menjadi pesan yang tak dapat dipahami Psn_Rhs, Order_knci_enk Proses 4 Order_dek, Sub_knci_dek, Cipherteks, Mendekripsi pesan dari pesan yang tak dapat dipahami menjadi pesan yang dapat dipahami Psn_Asli, Order_knci_dek

3.4.3. DFD Level 2 Proses P.1 Proses Pembentukan Kunci

Proses 1 pada Gambar 3.3 merupakan proses pembentukan kunci. Proses ini dapat dilakukan dengan menginput kunci secara manual oleh user sebanyak 16 karakter yang setara dengan 128-bit. Pada awalnya sistem akan membentuk seluruh kunci enkripsi terlebih dahulu 52 subkunci, lalu melanjutkannya dengan membentuk kunci dekripsinya yang berkoresponden juga sebanyak 52 subkunci. Untuk lebih jelasnya, proses pembentukan kunci dapat dilihat pada gambar 3.3. User P.1.1 Proses Pembangkitan SubKunci Enkripsi P.1.2 Proses Pembangkitan SubKunci Dekripsi Sub_knci_dek Sub_knci_enk Kunci Sub_knci_enk Gambar 3.3 DFD Level 2 Proses 1.0 Spesifikasi proses pembentukan kunci ditujukkan pada tabel 3.3. Universitas Sumatera Utara Tabel 3.3 Spesifikasi Proses Diagram Level 2 Proses 1 Nama Input Keterangan Proses Output Proses 1.1 Kunci Membangkitkan 52 subkunci enkripsi dari 128 bit yang diinput user Sub_knci_enk Proses 1.2 Sub_knci_enk Membangkitkan 52 subkunci dekripsi dari 52 subkunci enkripsi yang sudah dibangkitkan Sub_knci_dek

3.4.4. DFD Level 3 Proses P.1.1 Proses Pembangkitan Subkunci Enkripsi

Proses 1.1. pada Gambar 3.4 menjelaskan proses pembentukan kunci enkripsi. Proses ini dimulai dari penginputan 16 karakter sebagai kunci enkripsi, kemudian pemotongan karakter-karakter tersebut dan mengubah masing-masing karakter ke dalam ASCII-nya, lalu mengkoonversinya menjadi 128-bit. Untuk lebih jelasnya, proses pembentukan kunci dapat dilihat pada gambar 3.4. User P.1.1.1 Proses pemotongan kunci jadi karakter P.1.1.6 Proses penggabungan 52 subkunci enk P.1.1.5 Proses rotasi partisi 128-bit yg diulang trus untuk memperoleh sub-sub kunci berikutnya P.1.1.4 Proses partisi 128-bit jadi 8 subkunci 16-bit 8 kunci I P.1.1.3 Proses konversi ASCII ke biner 128-bit P.1.1.2 Proses konversi ke ASCII Kunci Krk_knci_ enk Kode ASCII Kode_ASCII Krk_ASCII Biner_knci_ enk Bnr_knci 52 sub_knci_enk sub_knci_enk Gambar 3.4 DFD Level 3 Proses 1.1 Spesifikasi proses pembangkitan subkunci enkripsi ditujukkan pada tabel 3.4. Universitas Sumatera Utara Tabel 3.4 Spesifikasi Proses Diagram Level 3 untuk Proses 1.1 Nama Input Keterangan Proses Output Proses 1.1.1 Kunci Memotong kunci menjadi karakter-karakter Krk_knci_enk Proses 1.1.2 Krk_knci_enk Mengkonversi karakter tersebut ke ASCII Krk_ASCII Proses 1.1.3 Krk_ASCII Mengkonversikan kode ASCII tersebut menjadi biner dalam hexadesimal Biner_knci_enk Proses 1.1.4 Biner_knci_enk Mempartisi bit-bit kunci tersebut menjadi 8 subkunci yang masing-masing terdiri dari 16-bit Bnr_knci Proses 1.1.5 Bnr_knci Merotasi 128 bit awal dari kiri sepanjang 25-bit dan mempartisinya menjadi 8 subkunci berikutnya, lalu mengulang proses tersebut sampai diperoleh 52 subkunci 52 sub_knci_enk Proses 1.1.6 52 sub_knci_enk Menggabungkan keseluruhan subkunci enkripsi yang telah dibentuk untuk digunakan pada proses enkripsi sub_knci_enk

3.4.5. DFD Level 3 Proses P.1.2 Proses Pembentukan Subkunci Dekripsi

Proses 1.2 pada Gambar 3.5 menjelaskan proses pembentukan kunci dekripsi. Kunci dekripsi dibentuk berdasarkan subkunci enkripsi yang sudah terbentuk, dengan menentukan invers yang berkoresponden dengan proses enkripsinya, yakni apakah invers penjumahan atau perkalian. Untuk lebih jelasnya, proses pembentukan kunci dapat dilihat pada gambar 3.5. P.1.2.3 Proses pencarian invers penjumlahan mod 216 P.1.2.2 Proses pencarian invers perkalian mod 216 + 1 P.1.2.1 Proses penentuan invers yg berkoresponden dgn enk sub_knci_enk Sub_knci_dek Invers_kali Invers_jlh Kunci_d -1 - Kunci_d User P.1.2.4 Proses penggabungan invers penjumlahan perkalian Gambar 3.5 DFD Level 3 Proses P.1.2 Universitas Sumatera Utara Spesifikasi proses pembentukan subkunci dekripsi ditujukkan pada tabel 3.5. Tabel 3.5 Spesifikasi Proses Diagram Level 3 Proses P.1.2 Nama Input Keterangan Proses Output Proses 1.2.1 Sub_knci_enk Menentukan apakah mencari invers dari perkalian mod +1 atau invers dari penjumlahan mod , sesuai dengan proses pada enkripsinya Invers_kali, Invers_jlh Proses 1.2.2 Invers_kali Mencari invers perkalian mod +1 , dengan rumus: A adalah invers perkalian dari B iff AxB mod +1= 1 Kunci_d -1 Proses 1.2.3 Invers_jlh Mencari invers penjumlahan mod , dengan rumus: A adalah invers penjumlahan dari B iff A+B mod = 0 - Kunci_d Proses 1.2.4 Kunci_d -1 - Kunci_d , Menggabungkan keseluruhan subkunci enkripsi dekripsi yang diperoleh Sub_knci_dek

3.4.6. DFD Level 2 Proses P.3 Proses Enkripsi

Proses enkripsi akan dilakukan pada setiap karakter yang telah dikonversi ke kode ASCII lalu dikonversi ke bilangan biner, karena pada algoritma IDEA digunakan bilangan biner dalam bentuk subblok, baik plainteks, kunci, maupun cipherteks. Karakter-karakter tersebut dienkripsi menggunakan 52 subblok kunci enkripsi. Untuk lebih jelasnya, proses enkripsi dapat dilihat pada gambar 3.6. Universitas Sumatera Utara User P.3.1 Input file P.3.6 Proses enkripsi I round 1-8 P.3.7 Proses enkripsi II transformasi Kode ASCII Plainteks ASCII_plain Kode_ASCII biner_plain Blok_plain cipher1 cipher2 Blok_cipher Order_enk Krktr_plain P.3.5 Proses partisi 64-bit jadi 4 subblok 16-bit P.3.4 Konversi ASCII ke biner 16-bit per karakter P.3.3 Konversi ke ASCII P.3.2 Potong file Sub_knci_enk P.3.8 Proses gabung cipherteks Sub_knci_enk File kunci Gambar 3.6 DFD Level 2 Proses 3 Spesifikasi proses enkripsi ditujukkan pada tabel 3.6. Tabel 3.6 Spesifikasi Proses Diagram Level 2 untuk Proses 3 Nama Input Keterangan Proses Output Proses 3.1 Order_enk Menginput file yang akan dienkripsi Plainteks Proses 3.2 Plainteks Memotong pesan yang akan dienkripsi menjadi karakter Krktr_plain Proses 3.3 Krktr_plain Mengkonversikan karakter palinteks ke dalam kode ASCII ASCII_plain Proses 3.4 ASCII_plain Mengkonversikan kode ASCII palinteks ke dalam biner dalam hexadesimal Biner_plain Proses 3.5 Biner_plain Mempartisi keseluruhan bit plainteks menjadi blok-blok 64-bit Blok_p lain Proses 3.6 Blok_plain, Sub_knci_enk Mempartisi setiap blok-blok plainteks 64-bit menjadi 4 subblok 16-bit Cipher1 Proses 3.7 Cipher1, Sub_knci_enk Melakukan proses enkripsi tahap I dilakukan dalam 8 round Cipher2 Proses 3.8 Cipher2 Melakukan proses enkripsi tahap I I dilakukan pada round ke- 9 Blok_c ipher

3.4.7. DFD Level 2 Proses P.4 Proses Dekripsi

Universitas Sumatera Utara Untuk mengembalikan cipherteks sehingga dapat dipahami, maka file yang telah dienkripsi harus didekripsi. Untuk melakukan proses dekripsi digunakan kunci yang sama, sehingga algoritma ini tergolong pada algoritma kriptografi simetris. Untuk lebih jelasnya, proses dekripsi dapat dilihat pada gambar 3.7. User P.4.1 Input file P.4.8 Proses gabung keseluruhan blok bit P.4.11 Proses gabung plainteks P.4.6 Proses dekripsi I round 1-8 P.4.7 Proses dekripsi II transformasi P.4.10 Konversi dari ASCII P.4.9 Konversi biner ke ASCII Kode ASCII Cipherteks ASCII_plain Kode_ASCII biner_plain Krktr_plain Plainteks Order_dek Sub_knci_dek P.4.2 Proses potong cipherteks blok_cipher cipher2 cipher1 P.4.3 Konversi ke ASCII P.4.4 Konversi ASCII ke biner 16-bit per karakter P.4.5 Proses partisi 64-bit jadi 4 subblok 16-bit biner_cipher ASCII_cipher Krktr_cipher Kode_ASCII File kunci Sub_knci_dek Gambar 3.7 DFD Level 2 Proses 4 Spesifikasi proses dekripsi ditujukkan pada tabel 3.7.

3.5. Kamus Data