Proses pemilihan kunci ephemeral hanya menginisialisasi variabel dengan bilangan bulat acak.
Proses pengenkripsian pesan ∈ � menggunakan kriptografi ElGamal kurva eliptik akan menghasilkan dua nilai, yaitu
dan . Masing-masing nilai
dan dihitung dengan persamaan
= ∈
� dan =
+
�
∈ � .
Berikut adalah pseudocode-nya.
encryptM[],
�
, P 1.
C ← [M.length][2] 2.
for i ← 0; i M.length; i ← i + 1 3.
k ← random integer
4. C[i][0]
← P.sumk 5.
tmp ← Q.sumk
6. C[i][2]
← M[i].sumtmp 7.
return C
Proses dekripsi merupakan kebalikan invers dari alur proses enkripsi. Seperti ditunjukkan pada Gambar 3.2, output pada proses enkripsi akan menjadi input pada
proses dekripsi. Jadi, jika pada proses enkripsi yang pertama sekali diproses adalah naskah asli dilanjutkan dengan memroses kunci, maka proses dekripsi akan melakukan
alur proses yang berlawanan, yaitu dengan memroses kunci acak cipher-key terlebih dahulu yang kemudian dilanjutkan dengan memroses naskah acak cipher untuk
mendapatkan kembali naskah asli.
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.
Universitas Sumatera Utara
Pengirim Penerima
Mengirim Pesan Acak Cipher dan Kunci Acak
Cipher-key Enkripsi Pesan Rahasia
dengan AES Enkripsi Kunci dengan
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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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 mendapatkan kembali
�
∈ � .
Universitas Sumatera Utara
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 AES-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.
Universitas Sumatera Utara
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
Gambar 3.6: Diagram activity sistem keamanan data.
Universitas Sumatera Utara
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 :AES Service
:ECElGamal Service Penerima
generatePublicKeysecurityLevel
:Main Service
decryptcipher message
:PrimeGenerator Service
probablePrimebitLength large prime
p
encryptmessage cipher
public key
Q
encryptkey, Q cipher key
sendcipher + cipherKey secret message
decryptcipherKey, n key
Gambar 3.7: Diagram sequence sistem keamanan data.
3.3. Perancangan Sistem