contoh salah satu menggunakan digital signature
1. Implementasi Algoritma SHARSA
Algoritma
SHARSA merupakan penggabungan algoritma RSA dengan fungsi hash SHA-1. Pada
fungsi hash SHA-1 masukan berupa string. Untuk mendapatkan message
digest dari masukan tersebut, dilakukan fungsi hash sesuai yang telah
dijelaskan pada bab sebelumnya.
Sedangkan
pada algoritma RSA yang diimplementasikan, terdapat 3 fungsi utama, yaitu
pembangkitan kunci berdasarkan username, fungsi enkripsi, dan fungsi dekripsi.
Pada
proses pembangkitan kunci, dilakukan pencarian tiga bilangan prima secara acak
berdasarkan username masukan pengguna dengan menjumlahkan jumlah karakter
username dengan representasi integer dari setiap karakter pada username. Ketiga
bilangan prima tersebut yang akan menjadi nilai p, q, dan e.
Dari ketiga nilai tersebut dilakukan pembangkitan kunci sehingga mendapatkan
kunci publik berupa nilai e, kunci privat berupa nilai d, dan
modulo berupa nilai n.
Pada
proses enkripsi menggunakan ukuran blok 8 byte. Untuk setiap bloknya dilakukan
fungsi enkripsi dengan kunci publiknya untuk mendapatkan hasil cipherteks
berupa representasi heksadesimal dari hasil penghitungan. Kemudian proses ini
dilakukan secara terus menerus untuk blok selanjutnya sampai selesai.
Representasi hasilnya menjadi “Hex0 Hex1 Hex2 ...”.
Pada
porses dekripsi, masukan berupa string seperti di atas dibagi untuk setiap
bloknya. Pada proses dekripsi tiap blok, dilakukan proses dekripsi dengan kunci
privatnya sehingga mendapatkan array of byte dari blok tersebut. Proses
ini dilakukan secara terus-menerus sampai selesai. Array of byte tersebut
kemudian dijadikan string sehingga menjadi pesan plainteksnya.
2. Implementasi Keseluruhan
Secara keseluruhan, saya mengimplementasikan
semua keempat algoritma tersebut ke dalam suatu aplikasi login sederhana.
Tampilan utama aplikasi tersebut tampak pada gambar di bawah ini.
Gambar 1. Tampilan Utama Aplikasi
Login Sederhana
Pada gambar tersebut terdapat dua
pilihan algoritma,yaitu GamalD5 dan SHARSA. Terdapat dua bagian pada setiap
gabungan algoritma, yaitu login dan registrasi. Login merupakan proses
pengecekan username dan password masukan pengguna dengan yang ada dalam basis
data, sedangkan registrasi merupakan proses penyimpanan username dan password
ke dalam basis data. Jika username atau password kosong saat tombol ditekan,
maka akan muncul pesan kesalahan. Username masukan pengguna juga dibatasi hanya
sampai 50 karakter. Proses registrasi hanya dapat dilakukan bila username belum
ada dalam basis data, sedangkan proses login hanya dapat dilakukan apabila
username terdapat pada basis data.
Pembangkitan kunci pada kedua gabungan algoritma tersebut berdasarkan username. Pada proses registrasi, password masukan pengguna diolah dengan fungsi hash terlebih dahulu. Kemudian hasil hash tersebut dienkripsi dengan algoritma ElGamal atau RSA dengan kunci publik yang telah dibangkitkan. Kemudian hasil enkripsi tersebut dimasukkan ke dalam basis data. Contoh proses registrasi tampak pada gambar di bawah ini.
Pembangkitan kunci pada kedua gabungan algoritma tersebut berdasarkan username. Pada proses registrasi, password masukan pengguna diolah dengan fungsi hash terlebih dahulu. Kemudian hasil hash tersebut dienkripsi dengan algoritma ElGamal atau RSA dengan kunci publik yang telah dibangkitkan. Kemudian hasil enkripsi tersebut dimasukkan ke dalam basis data. Contoh proses registrasi tampak pada gambar di bawah ini.
Tidak ada komentar:
Posting Komentar