proses, struktur perulangan, teknik pengambilan keputusan serta mekanisme kalkulasi yang ada pada sistem. Setelah algoritma dan flowchart terbentuk, barulah dilakukan
proses pembentukan sistem yang sebenarnya.
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 Hill Cipher Tergeneralisasi, secara garis besar terdapat tiga
fungsi yaitu pembentukan kunci, enkripsi pesan, dan dekripsi pesan.
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.3.1 DFD dan Spesifikasi Proses
Pemodelan fungsional digambarkan dengan diagram aliran data DFD. Data Flow Diagram 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.
Simbol DFD yang akan digunakan dalam pembahasan ini adalah simbol yang sering digunakan oleh Yourdan, De Marco, dan lainnya. Data Flow Diagram dari
sistem keamanan data dengan algoritma Hill Cipher Tergeneralisasi yang dirancang dapat dilihat pada Gambar 3.1 untuk diagram konteks sedangkan untuk diagram level
1 dapat dilihat pada Gambar 3.2, dan untuk diagram level 2 ditunjukkan oleh Gambar 3.3, Gambar 3.4, dan Gambar 3.5.
P.0 HILL CIPHER
TERGENERALISASI USER
pesan, matriks_kunci, inv_terg_matriks_kunci, pilihan
cipherteks, plainteks, inv_terg_matriks_kunci
Gambar 3.1 Diagram Konteks atau DFD level 0.
DFD level 0 di atas menggambarkan sistem secara garis besar yang memperlihatkan masukan, proses, dan keluaran dari sistem yang akan dirancang. Hill
Cipher Tergeneralisasi 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 Konteks atau DFD level 0.
Nama Input
Keterangan Proses
Output
Proses 0 pesan, matriks_ku nci,
inv_terg_matriks_kunci, pilihan
Mengamankan data dengan
algoritma Hill Cipher
Tergeneralisasi Cipherteks, plainteks,
inv_terg_matriks_kunci
Pengembangan proses yang terjadi pada DFD level 0 di atas dapat di jabarkan pada DFD level 1 berikut.
USER
P.1 Pemilihan
proses P.3
Enkripsi
P.4 Dekripsi
P.2 Pembentukan
kunci
pilihan order_enkripsi
order_kunci
Order_dekripsi pesan, matriks_kunci
matriks_kunci Inv_terg_matriks_kunci
inv_terg_mariks_kunci, cipherteks plainteks
cipherteks
Gambar 3.2 Diagram level 1 Proses 0.
Pada gambar di atas dapat dilihat bahwa terdapat tiga pilihan proses yang dapat dilakukan pada kriptosistem ini yaitu:
1. Proses Pembentukan Kunci Proses pembentukan kunci merupakan proses yang dilakukan untuk mendapatkan
matriks kunci matriks A dan invers tergeneralisasi matiks kunci matriks B yang
di input oleh user.
2. 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 matriks kunci yang diperoleh dari proses
pembentukan kunci.
3. Proses Dekripsi Proses dekripsi merupakan proses untuk mengubah pesan yang telah di enkripsi
menjadi pesan asli seperti semula. Untuk melakukan proses dekripsi ini user menggunakan invers tergeneralisasi matriks kunci.
Spesifikasi proses dari DFD level 1 pada Gambar 3.2 dijelaskan pada tabel berikut.
Tabel 3.2 Spesifikasi Proses Diagram Level 1.
Nama Input
Keterangan Proses Output
Proses 1 pilihan
Memilih proses yang ingin dilakukan
order kunci atau order enkripsi
atau order dekripsi
Proses 2 matriks_kunci,
order_kunci Proses pembentukan
kunci . inv_terg_matriks_
kunci Proses 3
pesan, matriks_kunci
Proses enkripsi pesan menjadi cipherteks atau
pesan yang tidak dapat dipahami.
cipherteks
Proses 4 pesan,
inv_terg_matriks _kunci
Proses pengembalian kembali cipherteks
menjadi pesan jelas. plainteks
Proses dua pada Gambar 3.2 merupakan proses pembentukan kunci. Proses ini dapat dilakukan dengan menginput sebuah matriks dari user yang disebut matriks
kunci sehingga akan dihasilkan sebuah matriks baru yaitu invers tergeneralisasi matriks kunci, atau user dapat menginput sebuah kalimat untuk diubah menjadi
sebuah matriks yang akan digunakan sebagai kunci.
Untuk lebih jelasnya, proses pembentukan kunci dapat dilihat pada gambar DFD level 2 proses pembentukan kunci berikut ini.
USER P2.1
Pemilihan proses P2.2
Input martiks mxn
P2.3 Periksa matriks
P2.4 Cari inv_terg_
Matriks_kunci
P2.5 Input kalimat
P2.6 Periksa kalimat
P2.7 Bentuk
matriks mxn pilihan
matriks_kunci m
_input m1
_hasil
m2 _hasil
k _hasil
k _input
kalimat
inv_terg_matriks_kunci
Gambar 3.3 DFD Level 2 Proses Pembentukan Kunci.
Spesifikasi proses pada DFD level 2 proses pembentukan kunci, dapat dilihat pada tabel berikut .
Tabel 3.3 Spesifikasi Proses DFD Level 2 Proses 2.
Nama Proses Input
Keterangan Proses Output
Proses 2.1 pilihan
Memilih proses yang ingin dilakukan
Order matriks_kunci
atau order_kalimat
Proses 2.2 matriks_kunci
Menginput matriks mxn m _input
Proses 2.3 m_input
Memeriksa apakah matriks memenuhi syarat
untuk digunakan m_hasil
Proses 2.4 m_hasil
Menghitung invers matriks tergeneralisasi
matriks kunci inv_terg_matriks_
kunci
Proses 2.5 kalimat
Menginput kalimat kalimat_input
Proses 2.6 kalimat_input
Memeriksa apakah kalimat memenuhi syarat
untuk digunakan kalimat_hasil
Proses 2.7 kalimat_hasil
Membentuk matriks mxn dari kalimat
matriks_hasil
Proses enkripsi akan dilakukan pada file. Setiap karakter yang ada pada file dikonversikan ke dalam
Z
p
karena pada algoritma Hill Cipher Tergeneralisasi digunakan bilangan prima yaitu
Z
29
. Karakter-karakter tersebut di enkripsi menggunakan matriks kunci yang diperoleh dari proses pembentukan kunci.
USER
P3.1 Input
matriks_kun ci
P3.2 Input pesan
P3.5 Hitung
cipher blok
P3.3 Partisi
perkarakter P3.4
Konversi Ke Zp
P3.7 Gabungkan
cipher P3.6
Konversi ke char
kunci_input matriks_kunci
order_enkripsi pesan
pesan_input char_pesan
char_Zp
cipher
Char_cipher
cipherteks
Gambar 3.4 DFD Level 2 Proses Enkripsi.
Spesifikasi proses enkripsi ditunjukkan pada tabel berikut.
Tabel 3.4 Spesifikasi Proses DFD Level 2 Proses 3.
Nama Input
Keterangan Proses Output
Proses 3.1 matriks_kunci
Menginput matriks kunci kunci_input Proses 3.2
pesan, order_enkripsi
Menginput pesan yang akan di enkripsi
pesan_input
Proses 3.3 pesan_input
Memotong isi pesan menjadi blok-blok
karakter char_pesan
Proses 3.4 char_pesan
Mengkonversikan plainteks ke dalam
Z
char_
Z
p p
Proses 3.5 char_
Z
Menghitung cipherteks perblok
p
cipher
Proses 3.6 cipher
Mengkonversikan cipherteks ke karakter
char_cipher
Proses 3.7 char_cipher
Proses menggabungkan blok cipherteks
cipherteks
Untuk mengembalikan cipherteks sehingga dapat dipahami, maka file yang telah dienkripsi didekripsi. Untuk melakukan proses dekripsi digunakan invers
tergeneralisasi matriks kunci. Proses dekripsi dapat dilihat pada gambar DFD level 2 proses dekripsi berikut.
USER
P4.1 Input
inv_terg_ matriks_kunci
P4.2 Input pesan
P4.5 Hitung plain
P4.3 Partisi
perkarakter P4.4
Konversi Ke Zp
P4.7 Gabungkan
cipher P4.6
Konversi ke char
kunci_input
inv_terg_matriks_kunci
order_dekripsi
pesan
pesan_input char_pesan
char_Zp
plain
Char_plain
plainteks
Gambar 3.5 DFD Level 2 Proses Dekripsi.
Spesifikasi proses dekripsi dapat dilihat pada tabel berikut.
Tabel 3.5 Spesifikasi Proses DFD Level 2 Proses 4.
Nama Input
Keterangan Proses Output
Proses 4.1 inv_terg_matriks
_kunci Menginput invers matriks
tergeneralisasi matriks kunci
matriks_input
Proses 4.2 pesan,
order_dekripsi Menginput pesan yang
akan di dekripsi pesan_input
Proses 4.3 pesan_input
Memotong isi pesan menjadi blok-blok
karakter char_pesan
Proses 4.4 char_pesan
Mengkonversikan plainteks ke dalam
Z
char_
Z
p p
Proses 4.5 char_
Z
Menghitung plainteks perblok
p
plain
Proses 4.6 plain
Mengkonversikan cipherteks ke karakter
char_plain
Proses 4.7 char_plain
Proses menggabungkan blok plainteks
plainteks
3.3.2 Kamus Data
Kamus data merupakan suatu data yang disusun untuk memudahkan selama proses analisis dan desain. Selain suatu dokumen, kamus data mengumpulkan dan
mengoordinasi istilah-istilah data yang terdapat pada diagram alir. Penganalisis sistem harus hati-hati dalam mengatalogkan 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.
Masukan-masukan kamus data dapat dibuat setelah diagram aliran data dilengkapi atau dapat juga disusun saat diagram aliran data sedang dikembangkan.
Penganalisis sistem mungkin 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 dapat memodifikasi masukan-masukan kamus data yang baru sesuai dengan aliran
data pada diagram alir anak.
3.3.2.1 Kamus Data Proses Pembentukan Kunci
Kamus data untuk proses pembentukan kunci diperlihatkan pada tabel berikut ini.
Tabel 3.6 Kamus Data Proses Pembentukan Kunci.
Nama Tipe Data
Deskripsi
inv_terg_matriks_kunci integer Matriks yang digunakan untuk
dekripsi pesan. kalimat
integer Kalimat yang akan dibentuk
menjadi matriks. k_hasil
integer Kalimat yang telah diuji.
k_input integer
Kalimat yang merupakan input dari user.
m_input integer
Matriks yang merupakan input dari user
matriks_kunci integer
Matriks yang digunakan untuk enkripsi pesan.
m1_hasil integer
Matriks kunci yang telah diuji m2_hasil
integer Matriks kunci yang dibentuk dari
kalimat pilihan
string Perintah untuk memilih proses.
3.3.2.2 Kamus Data Proses Enkripsi
Kamus data untuk proses enkripsi diperlihatkan pada tabel berikut.
Tabel 3.7 Kamus Data Proses Enkripsi.
Nama Tipe Data
Deskripsi
char_cipher char
Karakter cipher hasil enkripsi. char_pesan
integer Karakter pesan yang telah dipotong.
char_
Z
integer
p
Karakter pesan yang telah dikonversikan kedalam
Z
p
. cipher
integer Hasil enkripsi.
cipherteks char
Pesan yang telah disandikan. kunci_input
integer Kunci rahasia untuk enkripsi.
matriks_kunci integer
Matriks yang digunakan untuk enkripsi.
pesan integer
File yang akan dienkripsi pesan_input
integer Pesan yang di input user
order_enkripsi string
Perintah untuk menginput pesan
3.3.2.3 Kamus Data Proses Dekripsi Kamus data untuk proses dekripsi diperlihatkan pada tabel berikut.
Tabel 3.8 Kamus Data Proses Dekripsi.
Nama Tipe Data
Deskripsi
char_pesan integer
Karakter pesan yang telah dipotong. char_plain
char Karakter plain hasil ekripsi.
char_
Z
integer
p
Karakter pesan yang telah dikonversikan kedalam
Z
p
inv_terg_matriks_kunci integer
Matriks kunci yang digunakan untuk proses dekripsi.
kunci_input integer
Matriks kunci yang di input untuk proses dekripsi.
pesan integer
File yang akan didekripsi. pesan_input
integer Blok-blok file input.
plain integer
Hasil enkripsi. plainteks
char Pesan yang sebenarnya.
order_dekripsi string
Perintah untuk menginput pesan.
BAB 4
PERANCANGAN DAN IMPLEMENTASI
4.1 Perancangan.