BAB 3: ANALISIS DAN PERANCANGAN SISTEM
3.2. Pemodelan Sistem
Pemodelan sistem merupakan tahap penggambaran komponen-komponen di dalam suatu sistem yang akan dirancang sesuai dengan spesifikasi dan kebutuhan sistem, sehingga sistem dapat diidentifikasi dan dianalisis dengan lebih mudah. Sistem keamanan data ini akan dimodelkan dengan UML (Unified Modeling Language) menggunakan beberapa diagram, di antaranya: Use-case, Activity, dan Sequence. 3.2.1. Use-case diagram
Diagram use-case menggambarkan interaksi antara sistem dengan pengguna dan sistem yang lain, serta menjelaskan siapa yang akan menggunakan sistem dan dengan cara apa pengguna dapat berinteraksi dengan sistem. Gambar 3.5 adalah diagram use-case sistem keamanan data dengan kombinasi algoritma Rijndael dan ElGamal kurva eliptik.
Pengirim
Penerima Mengirim Pesan Acak
(Cipher) dan Kunci Acak
(Cipher-key)
Enkripsi Pesan Rahasia dengan AES
Enkripsi Kuncidengan ElGamal Kurva Eliptik
Dekripsi Pesan Acak
(Cipher) dengan AES
Dekripsi Kunci Acak dengan ElGamal Kurva Eliptik
Membangkitkan Kunci Publik Membangkitkan Kunci Privat <<include>> <<include>> <<include>> <<include>> <<include>> <<include>> Enkripsi Plain-text Enkripsi File <<extend>> <<extend>> Dekripsi File Dekripsi Plain-text <<extend>> <<extend>> Membangkitkan Bilangan Prima dengan Metode
Miller-Rabin
<<include>>
Gambar 3.5: Diagram use-case sistem keamanan data.
Setiap use-case pada Gambar 3.5 akan dijelaskan lebih detail menggunakan naratif use-case pada Tabel 3.1 sampai Tabel 3.8:
Nama Use-Case Enkripsi Pesan Rahasia dengan AES Prioritas Tinggi
Aktor Utama Pengirim Deskripsi
Proses pengenkripsian naskah asli, berupa plain-text atau file. Use-case ini memiliki dua extended use-case, yaitu Enkripsi Plain-text dan Enkripsi File. Proses keduanya adalah sama, yang membedakannya hanya objeknya.
Kondisi Awal Pengirim memiliki naskah asli yang akan dienkripsi dan menentukan kuncinya.
Pemicu Pengirim ingin mengenkripsi naskah aslinya.
Urutan Kejadian
Aksi dari Aktor Respon dari Sistem
1: Pengirim
menginisialisasi kunci.
2: Sistem membaca kunci dan menentukan apakah menggunakan AES-128, AES-192, atau AES-256.
3: Sistem melakukan proses key schedule terhadap kunci.
4: Pengirim
menginisialisasi naskah asli.
5: Sistem membaca naskah asli dan melakukan proses pengisian blok.
6: Sistem mengenkripsi naskah asli dengan melakukan sejumlah transformasi terhadap semua blok.
7: Sistem mengubah kembali himpunan blok menjadi teks. Kesimpulan Proses berakhir jika semua blok telah ditransformasi. Kondisi Akhir Naskah asli menjadi naskah acak (cipher).
Aturan Proses
Jika panjang kunci lebih besar dari 32 byte, maka proses tidak dapat dilakukan.
Proses gagal jika direktori adalah folder atau direktori tidak ada (salah).
Tabel 3.1: Naratif Use-Case Enkripsi Pesan Rahasia dengan AES. Nama Use-Case Mengirim Pesan Acak (Cipher) dan Kunci Acak (Cipher-key) Prioritas Tinggi
Aktor Utama Pengirim Deskripsi
Proses pengiriman naskah acak (cipher) dan kunci acak
(cipher-key) melalui e-mail. Use-case ini menunggu output dari use-case Enkripsi Pesan Rahasia dengan AES dan Enkripsi Kunci dengan ElGamal Kurva Eliptik.
Kondisi Awal Pengirim memiliki naskah acak yang akan dikirim kepada penerima beserta kunci acaknya, dan alamat penerima.
Pemicu Pengirim ingin mengirimkan naskah acaknya dengan memilih pilihan Send.
Urutan Kejadian
Aksi dari Aktor Respon dari Sistem
1: Pengirim memilih naskah acak.
2: Pengirim menentukan alamat e-mail penerima.
3: Sistem mengirim naskah acak beserta kunci acaknya sesuai dengan alamat e-mail penerima. Kesimpulan Proses berakhir jika naskah acak dan kunci acak telah terkirim. Kondisi Akhir Naskah acak (cipher) dan kunci acak (cipher-key) telah
diterima oleh penerima.
Aturan Proses Proses tidak dapat dilanjutkan jika tidak ada koneksi internet. Proses gagal jika ukuran file terlalu besar.
Tabel 3.2: Naratif Use-Case Mengirim Pesan Acak (Cipher) dan Kunci Acak (Cipher-key).
Nama Use-Case Membangkitkan Kunci Privat Prioritas Tinggi
Aktor Utama Penerima Deskripsi
Proses membangkitkan bilangan bulat acak � yang besar. Nilai � nantinya akan ditambahkan secara geometri berdasarkan kurva eliptik , dengan titik ∈ untuk membuat kunci publik.
Pemicu Penerima menerima permintaan untuk membuat kunci publik. Urutan Kejadian
Aksi dari Aktor Respon dari Sistem
1: Sistem membangkitkan sebuah bilangan bulat acak � yang besar. Kesimpulan Proses berakhir jika bilangan bulat acak berhasil dibangkitkan. Kondisi Akhir Diperoleh bilangan bulat acak � yang besar.
Tabel 3.3: Naratif Use-Case Membangkitkan Kunci Privat. Nama Use-Case Membangkitkan Kunci Publik
Prioritas Sedang
Aktor Utama Penerima
Deskripsi
Use-case ini menunggu output dari use-case Membangkitkan Kunci Privat dan Membangkitkan Bilangan Prima dengan Metode Miller-Rabin. Prosesnya adalah menambahkan titik
∈ � dengan kunci privat � secara geometri berdasarkan kurva eliptik ∈ � .
Kondisi Awal Bilangan prima , persamaan kurva eliptik ∈ � , sebuah titik acak ∈ � , dan kunci privat � sudah terinisialisasi. Pemicu Penerima menerima permintaan untuk membuat kunci publik.
Urutan Kejadian
Aksi dari Aktor Respon dari Sistem
1: Penerima menerima permintaan pengirim untuk membuat kunci publik.
2: Sistem membaca parameter yang dikirim bersama dengan permintaan dari pengirim.
3: Sistem penambahkan titik ∈ � dengan kunci privat
� secara geometri.
Kesimpulan Sistem berakhir jika titik ∈ � berhasil ditambahkan dengan kunci privat �.
Kondisi Akhir Diperoleh kunci publik hasil penambahan � = � ∈ � . Tabel 3.4: Naratif Use-Case Membangkitkan Kunci Publik.
Nama Use-Case Membangkitkan Bilangan Prima dengan Metode Miller-Rabin Prioritas Tinggi
Aktor Utama Pengirim Deskripsi
Proses membangkitkan bilangan bulat ganjil yang besar untuk diperiksa apakah (mungkin) prima atau komposit
menggunakan algoritma Miller-Rabin.
Kondisi Awal Pengirim menginisialisasi panjang bit bilangan prima yang akan dibangkitkan.
Pemicu Pengirim membutuhkan kunci publik yang akan dibuat oleh penerima.
Urutan Kejadian
Aksi dari Aktor Respon dari Sistem
1: Pengirim menentukan panjang bit .
2: Sistem membangkitkan sebuah bilangan bulat ganjil dengan panjang bit sama dengan .
3: Sistem memeriksa apakah (mungkin) prima atau komposit dengan algoritma Miller-Rabin.
4: Jika bilangan komposit, lanjutkan proses hingga ditemukan
yang (mungkin) prima. Kesimpulan Proses berakhir jika bilangan (mungkin) prima berhasil
dibangkitkan.
Kondisi Akhir Diperoleh bilangan (mungkin) prima sesuai dengan panjang bit yang diinisialisasi.
Aturan Proses Panjang bit memenuhi < .
Tabel 3.5: Naratif Use-Case Membangkitkan Bilangan Prima dengan Metode Miller-Rabin.
Nama Use-Case Enkripsi Kunci dengan ElGamal Kurva Eliptik Prioritas Tinggi
Aktor Utama Pengirim Deskripsi
Proses pengenkripsian kunci block cipher AES menggunakan algoritma kriptografi ElGamal kurva eliptik. Use-case ini menunggu output dari use-case Membangkitkan Kunci Publik. Kondisi Awal Pengirim memiliki kunci block cipher AES.
Pemicu
Pengirim ingin mengirimkan naskah acaknya yang berarti harus mengirim juga kuncinya yang harus terenkripsi.
Urutan Kejadian
Aksi dari Aktor Respon dari Sistem
1: Pengirim meminta kunci publik.
2: Sistem mengirim permintaan kunci publik kepada penerima.
3: Sistem menerima kunci publik yang diminta.
4: Pengirim menginisialisasi kunci.
5: Sistem mengubah kunci yang berupa teks (string) menjadi himpunan titik � ∈ � .
6: Sistem menginisialisasi kunci ephemeral � dengan bilangan bulat acak.
7: Sistem melakukan
perhitungan: � ∈ � dan
� + � ∈ � untuk
menghasilkan himpunan titik baru �, � ∈ � .
Kesimpulan Proses berakhir jika seluruh titik � ∈ � telah dihitung, sehingga menghasilkan himpunan titik baru �, � ∈ � . Kondisi Akhir Kunci block cipher AES � ∈ � menjadi kunci acak
�, � ∈ � .
Aturan Proses Proses gagal jika parameter publik tidak memenuhi aturan kriptografi kurva eliptik.
Tabel 3.6: Naratif Use-Case Enkripsi Kunci dengan ElGamal Kurva Eliptik. Nama Use-Case Dekripsi Kunci Acak dengan ElGamal Kurva Eliptik
Prioritas Tinggi Aktor Utama Penerima Deskripsi
Proses pendekripsian kunci acak (cipher-key) menjadi kunci block cipher AES menggunakan algoritma kriptografi ElGamal kurva eliptik. Use-case ini menunggu output dari use-case Membangkitkan Kunci Privat.
Kondisi Awal Penerima memiliki kunci acak yang akan didekripsi. Pemicu Penerima menerima naskah acak dan kunci acak, lalu ingin
membuka kiriman tersebut.
Urutan Kejadian
Aksi dari Aktor Respon dari Sistem
1: Pengirim
menginisialisasi kunci acak dan kunci
privatnya.
2: Sistem melakukan perhitungan
�− � � ∈ (� ) dan
3: Sistem mengubah kembali
himpunan titik � ∈ � menjadi teks (string).
Kesimpulan Proses berakhir jika seluruh titik �, � ∈ � selesai dihitung, sehingga mendapatkan kembali � ∈ � . Kondisi Akhir Kunci acak �, � ∈ � menjadi kunci asli � ∈ � . Aturan Proses Proses gagal jika parameter publik tidak sama dengan yang
digunakan pada proses enkripsi.
Tabel 3.7: Naratif Use-Case Dekripsi Kunci Acak dengan ElGamal Kurva Eliptik. Nama Use-Case Dekripsi Pesan Acak (Cipher) dengan AES
Prioritas Tinggi Aktor Utama Penerima
Deskripsi
Proses pendekripsian naskah acak (cipher) menjadi naskah asli menggunakan algoritma kriptografi Rijndael. Use-case ini menunggu output dari use-case Dekripsi Kunci Acak dengan ElGamal Kurva Eliptik. Sama seperti use-case Enkripsi Pesan Rahasia dengan AES, use-case ini juga memiliki dua extended use-case, yaitu Dekripsi Plain-text dan Dekripsi File.
Kondisi Awal Penerima memiliki naskah acak yang akan didekripsi dan kunci block cipher AES.
Pemicu
Penerima menerima naskah acak, membukanya (jika naskah acaknya berupa string, salin ke clipboard), kemudian memilih pilihan Decrypt.
Urutan Kejadian
Aksi dari Aktor Respon dari Sistem
1: Penerima menginisialisasi kunci.
2: Sistem membaca kunci dan menentukan apakah
menggunakan 128, AES-192, atau AES-256.
3: Sistem melakukan proses key schedule terhadap kunci.
4: Penerima menginisialisasi naskah acak.
5: Sistem membaca naskah acak dan melakukan proses pengisian blok.
6: Sistem mendekripsi naskah acak dengan melakukan sejumlah transformasi terhadap semua blok.
7: Sistem mengubah kembali himpunan blok menjadi teks.
Kesimpulan Proses berakhir jika semua blok telah ditransformasi. Kondisi Akhir Naskah acak menjadi naskah asli.
Aturan Proses
Proses gagal jika kunci tidak sama dengan yang digunakan saat enkripsi.
Proses gagal jika direktori adalah folder atau direktori tidak ada (salah).
Tabel 3.8: Naratif Use-Case Dekripsi Pesan Acak (Cipher) dengan AES. 3.2.2. Activity diagram
Diagram activity adalah diagram yang digunakan untuk menggambarkan aliran proses bisnis, langkah-langkah dalam use-case, atau perilaku (metode) dari sebuah objek.
Diagram activity sistem keamanan data dengan kombinasi algoritma Rijndael (AES) yang akan mengenkripsi naskah asli, dan ElGamal kurva eliptik yang akan mengenkripsi kunci Rijndael diperlihatkan pada Gambar 3.6.
Enkripsi pesan rahasia dengan AES
Membangkitkan bilangan prima dengan
metode Miller-Rabin
Membangkitkan kunci publik Mengenkripsi kunci dengan
ElGamal kurva eliptik Mengirim pesan acak (cipher) dan kunci acak
Dekripsi kunci acak dengan ElGamal kurva eliptik
Dekripsi pesah acak (cipher) dengan AES
Pengirim Penerima
Meminta kunci publik
Enkripsi file Enkripsi plain-text Enkripsi file Enkripsi plain-text Membangkitkan kunci privat
3.2.3. Sequence diagram
Diagram sequence digunakan untuk menggambarkan interaksi antara aktor dengan sistem dalam skenario use-case dengan mendeskripsikan waktu hidupnya, serta meng-identifkasi messages yang masuk ke dan keluar dari sistem.
Pengirim Penerima :AES Service :ECElGamal Service
generatePublicKey(securityLevel) :Main Service decrypt(cipher) message :PrimeGenerator Service probablePrime(bitLength) large prime p encrypt(message) cipher public key Q encrypt(key, Q) cipher key send(cipher + cipherKey) secret message decrypt(cipherKey, n) key
Gambar 3.7: Diagram sequence sistem keamanan data.