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