Upload
doanphuc
View
254
Download
0
Embed Size (px)
Citation preview
PENERAPAN ALGORITMA RSA UNTUK PENGAMANAN DATA
DAN DIGITAL SIGNATURE DENGAN . NET
Naskah Publikasi
diajukan oleh
ANDRIANUS TRIORIZKA
06.12.1748
kepada
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM
YOGYAKARTA
2010
RSA ALGORITHM APPLICATION FOR DATA SECURITY
AND DIGITAL SIGNATURE WITH .NET
PENERAPAN ALGORITMA RSA UNTUK PENGAMANAN DATA
DAN DIGITAL SIGNATURE DENGAN . NET
Andrianus Triorizka
Jurusan Sistem Informasi
STMIK AMIKOM YOGYAKARTA
ABSTRACT
Cryptography is the science and art to maintain data security with encryption and
description using a specific mathematical models, and one model of asymmetric
cryptography used to determine the public key and private key. In this cryptosystem
model have algorithms and functions that make use of cryptography. RSA is an algorithm
in public key encryption. RSA is one of the most advanced algorithms in the field of public
key cryptography. RSA is believed in using secure key long enough.
The cryptosystem model will also perform a digital signature by using the MD5
hash function, used for testing the integrity of a file. Kriptosistem model is expected to
help users in securing critical data and confidential and can communicate securely with
the relationship over the world via the Internet or through other networks.
Keywords : Cryptography, Asymmetric Cryptography, RSA algorithm,
MD5 Algorithm, Cryptosystem Model, Network.
1. Pendahuluan
Kriptografi merupakan salah satu komponen yang tidak dapat diabaikan dalam
membangun keamanan komputer. Kriptografi merupakan suatu ilmu dan seni (science
and art) dalam penyandian data, yang bertujuan untuk menjaga kerahasiaan dan
keamanan data dari serangan ataupun diketahui oleh pihak yang tidak berhak. Dikatakan
ilmu (science) karena menggunakan matematika aljabar, terutama teori bilangan sebagai
dasarnya. Dikatakan seni (art) karena dalam aplikasinya memiliki pola-pola tertentu
dalam proses penyandian yang unik.
Penelitian mengenai kriptografi pun telah banyak dilakukan oleh para
kriptoanalis. Antara lain Inu Laksito Wibowo (2001), Gok Asido Haro (2006), Retno Aji
Wulandari (2009), Roby Irawan (2009), Eka Saefan Rukzam (2009), dan Nefianti (2009).
Dari penelitian yang telah mereka lakukan menghasilkan program aplikasi untuk
melakukan enkripsi data, baik berupa teks maupun gambar dengan berbagai metode dan
algoritma yang berbeda-beda dan platform yang berbeda pula dalam
pengimplementasiannya. Namun dari semua penelitian tersebut belum ada yang
melakukan proses enkripsi dan dekripsi data sekaligus melakukan proses digital
signature (tanda tangan digital), yang digunakan untuk mengetahui apakah ini benar-
benar data yang berasal dari sistem yang dimaksud, maka perlu melakukan suatu
verifikasi. Kemudian data yang terenkripsi dan data signature selanjutnya dikirim.
Penulis melakukan penelitian ini dengan harapan mampu menghasilkan sebuah
model kriptosistem untuk mengenkripsi dan mendekripsi data yang sangat penting dan
rahasia sekaligus melakukan digital signature, sehingga dapat digunakan secara luas di
berbagai bidang. Oleh sebab itu penulis mengambil judul penelitian yaitu “ Penerapan
Algoritma RSA untuk Pengamanan Data dan Digital Signature Dengan .NET “.
2. Landasan Teori
Kriptografi adalah ilmu yang mempelajari bagaimana melakukan enkripsi dan
dekripsi, dengan memanfaatkan model matematika tertentu. Kriptografi diilhami dengan
teknik enkripsi atau teknik penyandian yang mengubah sebuah pesan yang dapat dibaca
(plaintext) menjadi sebuah pesan yang acak dan sulit diartikan. Untuk dapat membaca
pesan yang terenkripsi diperlukan proses terbalik dari enkripsi yang disebut dekripsi.
[Kurniawan, 2008]
Cryptosystem adalah prosedur secara matematika, bagaimana suatu plaintext
diubah menjadi ciphertext. Cryptanalysis adalah ilmu untuk menemukan suatu metode
yang dapat membongkar algoritma kriptografi, dengan cara menganalisis algoritma
tersebut. Orang yang melakukan cryptanalysis adalah cryptoanalist. Dari orang-orang
inilah, kita dapat mengetahui apakah algoritma kriptografi itu lemah atau kuat.
[Kurniawan, 2008].
2.1 Model Algoritma RSA
Algoritma RSA, ditemukan oleh 3 orang peneliti dari MIT (Massachussets
Institute of Technology) pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard
(A)dleman. RSA merupakan salah satu dari public key cryptosystem yang sangat sering
digunakan untuk memberikan kerahasiaan terhadap keaslian suatu data digital.
Keamanan enkripsi dan dekripsi data model ini terletak pada kesulitan untuk
memfaktorkan modulus n yang sangat besar. Sebuah operasi RSA, baik enkripsi,
dekripsi, penandaan, atau verifikasi intinya adalah sebuah eksponensial terhadap modul.
Proses perhitungan ini ditunjukkan oleh sebuah rangkaian dari multiplikasi terhadap
modul. Dalam aplikasi praktikal, adalah umum untuk menentukan sebuah eksponen kecil
yang umum sebagai kunci publik. Faktanya, keseluruhan kelompok dari user (pemakai)
bisa memakai eksponen yang sama, dengan berbeda modulus (terdapat beberapa
pembatasan pada faktor-faktor prima dari eksponen publik ketika diputuskan.) Hal ini
menyebabkan proses enkripsi lebih cepat daripada proses dekripsi dan verifikasi lebih
cepat dari pada penandaan. Dengan algoritma eksponensial modular (modular
exponentiation) yang khas yang digunakan untuk mengimplementasikan algoritma RSA,
operasi kunci publik membutuhkan O(k2) langkah, operasi kunci privat membutuhkan
O(k3) langkah, pembangkitan kunci membutuhkan O(k4) langkah, dimana k adalah
jumlah bit dari modulus [Haro, 2006].
2.2 Digital Signature
Tanda tangan pada data digital ini disebut sidik digital (digital signature). Yang
dimaksud dengan sidik digital bukanlah tanda tangan yang di-digitalisasi dengan alat
scanner, tetapi suatu nilai kriptografis yang bergantung pada pesan dan pengirim pesan
(hal ini kontras dengan tanda tangan pada dokumen kertas yang bergantung hanya pada
pengirim dan selalu sama untuk semua dokumen) [Munir, 2006].
Dengan sidik digital, maka integritas data dapat dijamin, disamping itu juga
digunakan untuk membuktikan asal pesan (keabsahan pengirim dan anti-
penyanggahan). Hanya sistem kriptografi kunci-publik yang cocok dan alami untuk
pemberian sidik digital. Hal ini disebabkan karena skema sidik digital berbasis sistem
kunci-publik dapat menyelesaikan masalah non-repudiation (baik penerima dan pengirim
pesan mempunyai pasangan kunci masing-masing).
3. Analisis
Sebelum melakukan penerapan algoritma RSA ke dalam sebuah model
kriptosistem, maka yang harus dilakukan terlebih dahulu adalah menyiapkan alat-alat
yang digunakan. Dalam penelitian ini terdapat beberapa alat-alat pendukung yang
digunakan untuk menyelesaikan masalah yang dihadapi. Alat-alat ini dapat berupa
hardware (perangkat keras) maupun software (perangkat lunak). Dalam melakukan
penelitian ini, penulis menggunakan beberapa cara penelitian yang disusun secara
terstruktur yang dimulai dari awal penelitian hingga penelitian selesai, sehingga
memudahkan dalam penyelesaian masalah yang dihadapi dan mencapai hasil yang
diharapkan. Cara-cara tersebut antara lain:
3.1 Melakukan Studi Pustaka
Seperti yang telah dijelaskan pada bab sebelumnya, dalam penelitian ini penulis
mengacu dari beberapa hasil penelitian yang sudah dilakukan sebelumnya dengan cara
melakukan tinjauan pustaka. Dari tinjauan pustaka yang dilakukan, penulis menemukan
beberapa penelitian mengenai kriptografi dan proses enkripsi/dekripsi dengan berbagai
model algoritma, platform yang digunakan, dan bahasa pemrograman yang digunakan.
Selain itu, penulis juga dapat mengetahui hasil penelitian yang telah diperoleh dan
kekurangan dari penelitian tersebut. Kemudian mencari beberapa sumber mengenai
metode algoritma yang akan digunakan serta software yang diperlukan nantinya.
3.2 Persiapan dalam Penelitian
Sebelum masuk ke tahap yang lebih dalam, maka diperlukan persiapan awal
dalam melakukan penelitian. Persiapan ini berkaitan dengan hardware dan software yang
akan digunakan untuk membangun model kriptosistem. Selain itu juga ada beberapa hal
penting yang juga perlu dipersiapkan, yaitu penentuan langkah-langkah yang harus
dikerjakan terlebih dahulu agar penelitian tersusun secara terstruktur sehingga
memudahkan dalam penyelesaian penelitian dan mendapatkan hasil yang diharapkan.
3.3 Perancangan Antarmuka
Tahapan awal dalam membangun model kriptosistem ini adalah membuat
perancangan antar muka berupa form-form yang berisi beberapa fungsi yang diperlukan
oleh pengguna. Kemudian menentukan alur program dari form-form tersebut.
3.4 Penerapan Algoritma
Tahap selanjutnya setelah melakukan perancangan adalah menerapkan
algoritma kedalam form-form yang telah dibuat, agar dapat melakukan fungsinya sesuai
dengan yang diharapkan. Dalam tahapan ini juga menjelaskan alur algoritma
pemrosesan enkripsi/dekripsi data sekaligus proses digital signature (tanda tangan
digital).
3.5 Melakukan Serangkaian Uji Coba dan Simulasi Model
Setelah model selesai dibuat, langkah selanjutnya adalah melakukan
serangkaian uji coba. Tujuan utama uji coba terhadap model yaitu sebagaimana telah
dijelaskan pada tujuan penelitian pada bab satu, selain itu juga untuk mengetahui
kesesuaian model dengan perancangan yang dibuat sebelumnya dan untuk mengetahui
apakah ada kesalahan dalam kode-kode program maupun fungsi-fungsi yang ada di
dalamnya. Kemudian melakukan simulasi model untuk memperlihatkan alur proses
model kriptosistem dan cara menggunakan model kriptosistem dengan benar.
4. Hasil Penelitian dan Pembahasan
4.1 Implementasi
Tahapan selanjutnya setelah melakukan analisis dan perancangan pada bab
sebelumnya adalah implementasi yaitu menerapkan algoritma ke dalam form-form yang
telah dibuat, sehingga dapat melakukan fungsinya sesuai dengan yang diharapkan.
4.1.1 Uji Coba Program
Setelah model selesai dibuat, maka langkah selanjutnya adalah perlu dilakukan
uji coba terhadap model untuk menemukan kesalahan-kesalahan yang mungkin terjadi,
uji coba dilakukan pada tiap-tiap form dan dilanjutkan dengan uji coba untuk semua
modul yang telah dirangkai. Pada tahap uji coba model dilakukan sebagai dasar analisa
kelayakan. Jika uji coba model memberikan hasil yang sesuai dengan tujuan pembuatan,
maka rancangan program dikatakan layak dan dapat diimplementasikan ke dalam
sistem. Sedangkan tujuan utama uji coba terhadap model yaitu sebagaimana telah
dijelaskan pada tujuan penelitian pada bab sebelumnya. Berikut ini penjelasan bebrapa
uji coba yang dilakukan pada model :
4.2 Pembahasan
Model ini masih sederhana dan kesederhanaan itu terdapat pada fungsi, struktur
dan kode program yang terdapat di dalamnya. Berikut ini gambaran struktur model
kriptosistem ini :
Gambar 4.1 Struktur model kriptosistem
Dari struktur model di atas, dapat dilihat bahwa ada lima menu utama pada
model kriptosistem ini. Yaitu menu Keys, menu Encryption, menu Tools, menu Help, dan
menu Exit, dan diantara menu-menu tersebut terdapat sub-sub menu yang melakukan
proses secara individual. Berikut penjelasan algoritma yang diimplementasikan kedalam
form masing-masing menu dan sub-sub menu :
1. Form Utama untuk Memanggil Form-Form Lain
Form utama merupakan form yang akan di-load atau muncul pertama kali ketika
program dijalankan. Form utama merupakan aplikasi MDI (Multiple Document Interface),
yaitu antarmuka yang akan menampilkan banyak dokumen secara bersamaan dimana
masing-masing dokumen ditampilkan dalam windows tersendiri. Form utama didesain
semenarik mungkin dan sangat user friendly untuk pengguna awam maupun pengguna
mahir. Berikut tampilan form utama dari model kriptosistem ini :
Gambar 4.2 Tampilan form utama
2. Form Key untuk Membuat Pasangan Kunci
Form ini dirancang untuk membuat pasangan kunci publik dan kunci privat
sebelum pengguna melakukan proses enkripsi/dekripsi dan signature data. Pada form ini,
terdapat fungsi untuk membuat pasangan kunci RSA dimana pengguna tidak perlu
menginputkan kunci secara manual tetapi secara otomatis dibuat langsung dari sistem.
Berikut gambar tampilan form key :
Gambar 4.3 Tampilan form key
3. Form Encrypt Text untuk Mengenkripsi dan Signature File Teks
Form ini berfungsi mengenkripsi dan memberi signature file teks yaitu
menggunakan algoritma RSA dan menerapkan algoritma hashing MD5. Output yang
dihasilkan dari form ini adalah ciphertext dan signature data yang secara terpisah. Form
ini didesain dengan semenarik mungkin dan memperhatikan pada aspek user friendly.
Dengan fungsi tombol-tombol yang biasa digunakan dengan simbol-simbol yang umum.
Sehingga memudahkan pengguna dalam mengoperasikannya. Berikut gambar tampilan
form encrypt text :
Gambar 4.4 Tampilan form encrypt text
4. Form Decrypt Text Untuk Mendekripsi dan Verifikasi Signature File Teks
Untuk mengembalikan file teks yang telah dienkripsi ke bentuk teks aslinya, maka
dilakukan proses dekripsi. Namun tidak sekedar melakukan dekripsi tetapi juga
melakukan verifikasi pada signature teks yang telah dibuat, untuk mengetahui apakah file
teks mengalami perubahan atau tidak. Berikut gambar tampilan form decrypt text dapat
dilihat di bawah ini :
Gambar 4.5 Tampilan form decrypt text
5. Form Encrypt File Untuk Mengenkripsi File Non Teks
Form ini berfungsi untuk mengenkripsi file non teks berupa file dokumen (doc dan
pdf), gambar (bmp, gif dan jpg), dan audio (mp3). Form ini terbagi menjadi beberapa
fungsi utama. Fungsi pertama adalah memasukkan kunci untuk mengekripsi file. Fungsi
kedua adalah menambahkan file yang akan dienkripsi dan proses enkripsi itu sendiri.
Fungsi yang ketiga adalah memberikan pilihan pada pengguna terhadap file asli yang
akan dienkripsi, apakah tetap disimpan, dihapus, atau dihancurkan. Form ini juga
memberikan informasi mengenai proses enkripsi yang terjadi. Untuk mengenkripsi file
non teks digunakan komponen dari .NET Framework 2.0 yaitu
RC2CryptoServiceProvider. Berikut gambar tampilan form encrypt file seperti di bawah
ini:
Gambar 4.6 Tampilan form encrypt file
6. Form Decrypt File Untuk Mendekripsi File Non Teks
Form ini berfungsi untuk mengdekripsi file non teks berupa file dokumen (doc dan
pdf), gambar (bmp, gif dan jpg), dan audio (mp3) yang terenkripsi. Form ini tidak jauh
berbeda dengan form untuk enkripsi file non teks. Form ini terbagi menjadi beberapa
fungsi utama. Fungsi pertama adalah memasukkan kunci untuk mendekripsi file. Fungsi
kedua adalah menambahkan file yang akan didekripsi dan proses dekripsi itu sendiri.
Fungsi yang ketiga adalah memberikan pilihan pada pengguna terhadap file asli yang
akan didekripsi, apakah tetap disimpan, dihapus, atau dihancurkan. Form ini juga
memberikan informasi mengenai proses dekripsi yang terjadi. Untuk mendekripsikan file
non teks sama halnya dengan saat proses enkripsi, komponen yang digunakan yaitu
komponen dari .NET Framework 2.0 yaitu RC2CryptoServiceProvider. Berikut gambar
tampilan form decrypt file non teks :
Gambar 4.7 Tampilan form decrypt file
7. Form File Shredder Untuk Menghancurkan File
Form ini berfungsi untuk menghancurkan file yang sudah tidak digunakan lagi,
tetapi bukan menghapus file seperti remove atau delete file seperti biasanya. Tetapi
menghancurkan file dalam arti sesungguhnya, yaitu membuat file benar-benar terhapus
dan tidak bisa di-restore kembali, sehingga dapat menjaga kerahasiaan suatu data. Pada
saat dijalankan, tombol Shred them now berada dalam posisi disable. Ini untuk
menghindari kesalahan dalam program.
Gambar 4.8 Tampilan form file shredder
8. Menu Send Mail
Menu ini berfungsi untuk mengirimkan kunci maupun file yang sudah dienkripsi
melalui email. Menu ini akan mengarahkan pengguna untuk membuka web browser dan
membuka link alamat web yaitu www.yahoo.com. Sehingga memudahkan pengguna
dalam men-share file yang penting dan rahasia. Berikut cuplikan kode untuk menu send
mail :
9. Menu Reference
Menu ini berfungsi untuk membantu pengguna dalam menggunakan aplikasi
dengan benar, sehingga pengguna tidak akan menemui kesulitan dalam
pengoperasiannya. Menu reference akan membuka file help.html pada web browser
secara localhost. Dan terdapat penjelasan mengenai program di dalamnya. Berikut
tampilan file reference :
Gambar 4.26 Tampilan menu reference
Private Sub MenuSendMail_Click(ByVal sender As Object,_
ByVal e As System.EventArgs) Handles_
MenuSendMail.Click
Dim webAddress As String = "www.yahoo.com"
Process.Start(webAddress)
End Sub
5. Kesimpulan
Dari keseluruhan bab pada skripsi ini, maka dapat diambil kesimpulan sebagai
berikut :
Pada proses enkripsi/dekripsi menggunakan algoritma RSA dan digital signature
menggunakan kunci publik dan kunci private, file hasil enkripsi bertambah besar
karena adanya penambahan bit-bit kunci dan kode-kode enkripsi. Adanya
perbedaan kode hasil proses enkripsi baik inputan secara manual melalui keyboard
ataupun inputan file teks yang sudah ada. Setiap kali proses enkripsi teks dilakukan,
maka akan menghasilkan kode yang berbeda-beda, walaupun plaintext yang
dimasukkan sama.
Pada proses enkripsi/dekripsi file non-teks, ukuran file hasil enkripsi bertambah,
karena adanya penambahan dua array bytes terpisah yang digunakan dalam proses
enkripsi, yaitu kunci dan kunciIV, yang digunakan untuk menghindari seseorang
melakukan rekayasa balik agar mendapatkan kunci dan untuk mengenkrip blok
pertama data.
Digital signature diberikan pada teks yang telah dienkripsi berupa bit-bit yang
berfungsi untuk menjaga keabsahan data. Digital signature memanfaatkan fungsi
hashing MD5CryptoServiceProvider.
Tool File Shredder dapat menghancurkan file dengan baik dan waktu yang
dibutuhkan untuk menghancurkan masing-masing file tergantung kepada ukuran file
itu sendiri dan kekuatan penghancuran yang dipilih. Semakin besar ukuran file,
maka waktu yang dibutuhkan untuk menghancurkan file akan semakin lama.
Daftar Pustaka
Ardhian, Ardhi dan Riyanto, M. Zaki. 2008. Kriptografi Kunci Publik: Sandi RSA,
http://sandi.math.web.id/download/paper/kssy-algoritma_sandi_rsa .pdf, diakses
tanggal 4 Noverber 2009.
Ariyus, Dony. 2006. Kriptografi Keamanan Data dan Komunikasi. Yogyakarta: Graha
Ilmu.
Haro, Gok Asido. 2006. Studi dan Penggunaan Algoritma RSA Sebagai Algoritma
Kriptografi yang Aman, http://www.informatika.org/~rinaldi/Matdis/2006-
2007/Makalah/Makalah 0607-101.pdf, diakses tanggal 4 November 2009.
Hill, McGraw. 2008. Cryptography And Network Security. Singapore: McGraw-Hill Book
co.
Komputer, Wahana. 2006. Pemrograman Visual Basic.NET 2005. Yogyakarta: Andi.
Komputer, Wahana. 2003. Memahami Model Enkripsi dan Security Data. Yogyakarta:
Andi.
Kurniawan, Agus. 2008. Konsep dan Implementasi Cryptography Dengan .NET. Jakarta:
PC Media.
Kurniawan, Ir. Yusuf. 2004. Kriptografi Keamanan Internet dan Jaringan Telekomunikasi.
Bandung: Informatika Bandung.
Kusrini S.Kom dan Andri Konio. 2007. Tuntunan Praktis Membangun Sistem Informasi
Akuntansi Dengan Visual Basic dan Microsoft SQL Server. Yogyakarta: Andi.
Kusumo, Drs. Ario Suryo. 2004. Buku Latihan Visual Basic .NET Versi 2002 dan 2003.
Jakarta: PT. Elex Media Komputindo.
Mackenzei, Duncan. 2002. Teach Yourself Visual Basic.NET In 21 Days. Pearson
Education.
Rhee, Man Young. 1994. Cryptography and Secure Communication. Singapore:
McGraw-Hill Book Co.
Rinaldi, Munir. 2006. Kriptografi. Bandung: Informatika Bandung.
Rinaldi, Munir. 2006. Otentikasi dan Sidik Digital,
http://kur2003.if.itb.ac.id/file/Otentikasi%20dan%20Sidik%20Dijital.doc, diakses
pada tanggal 4 November 2009.
Sismoro, Heri. 2005. Pengantar Logika Informatika, Algoritma dan Pemrograman
Komputer. Yogyakarta: Andi.
Sofwan, Aghus, dkk. 2006. Aplikasi Kriptografi Dengan Algoritma Message Diggest 5
(MD5),
Wibowo, Inu Laksito. 2001. Algoritma RSA Pada Sistem Pengamanan Data Yang
Menjamin Keaslian dan Kerahasiaan Data,
http://www.fmipa.its.ac.id/isi%20mipa/jurnal/jurnal/KAPPA%20%282001%29%20
Vol.2,%20No.2,%2012-20.pdf, diakses pada tanggal 6 November 2009.