penerapan algoritma rsa untuk pengamanan data...

16
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

Upload: doanphuc

Post on 26-Feb-2019

248 views

Category:

Documents


0 download

TRANSCRIPT

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.