i
IMPLEMENTASI KRIPTOGRAFI ALGORITMA RSA PADA BERKAS-BERKAS TEKS, GAMBAR, SUARA DAN VIDEO
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer YOGI ADITIA PUTRA. 071401083
PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMATIKA UNIVERSITAS SUMATERA UTARA MEDAN 2014
Universitas Sumatera Utara
ii PERSETUJUAN
Judul
:
Kategori Nama Nomor Induk Mahasiswa Program Studi Departemen Fakultas
: : : : : :
IMPLEMENTASI KRIPTOGRAFI ALGORITMA RSA PADA BERKAS-BERKAS TEKS, GAMBAR, AUDIO, DAN VIDEO SKRIPSI YOGI ADITIA PUTRA 071401083 SARJANA (S1) ILMU KOMPUTER ILMU KOMPUTER ILMU KOMPUTER DAN TEKNOLOGI INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, 27 Maret 2014 Komisi Pembimbing : Pembimbing 2
Pembimbing 1
Amer Sharif,S.Si,M.Kom NIP : -
Dian Rachmawati,S.Si,M.Kom NIP. 198307232009122004
Diketahui/Disetujui oleh Program Studi Ilmu Komputer FASILKOM-TI USU Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 196203171991021001
Universitas Sumatera Utara
iii
PERNYATAAN
IMPLEMENTASI KRIPTOGRAFI ALGORITMA RSA PADA BERKAS-BERKAS TEKS, GAMBAR, SUARA DAN VIDEO
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Maret 2014
Yogi Aditia Putra NIM : 071401083
Universitas Sumatera Utara
iv PENGHARGAAN
Puji dan syukur yang tiada henti penulis ucapkan kehadirat Allah SWT yang telah memberikan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan tugas akhir ini. Dengan sepenuh ketulusan hati, pada kesempatan ini penulis menyampaikan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi ini. Penulis mengucapkan terima kasih teristimewa kepada: 1. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi Ilmu Komputer sekaligus sebagai dosen pembanding yang telah memberikan saran, masukan dan kritikan yang sangat berguna bagi penulis sehingga skripsi ini dapat selesai dengan baik. 2. Ibu Maya Silvi Lydia, BSc. MSc sebagai Sekretaris Program Studi Ilmu Komputer. 3. Bapak Prof. Dr. Muhammad Zarlis sebagai Dekan Fakultas Ilmu Komputer dan Teknologi Informasi . 4. Para Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi . 5. Ibu Dian Rachmawati, S.Si, M.Kom sebagai dosen pembimbing yang telah banyak memberikan saran dan masukan yang sangat berguna bagi penulis sehingga skripsi ini dapat selesai dengan baik 6. Bapak Amer Sharif,S.Si,M.Kom sebagai dosen pembimbing yang telah banyak meluangkan waktunya dalam memberikan bimbingan, kritik dan masukan kepada penulis. 7. Bapak M. Andri Budiman,S.T,M.Comp.Sc sebagai dosen pembanding yang telah banyak meluangkan waktu untuk memberikan bimbingan kritik dan masukan pada penulis. 8. Seluruh dosen serta pegawai di Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer FMIPA USU. 9. Ayahanda dan Ibunda Joni Indra,S.T,M.T dan Erita Rustam,S.pd yang selalu memberikan cinta kasih dan semangat serta kepercayaan selama masa kuliah baik dalam bentuk maetriil serta moril dalam menyelesaikan skripsi ini. 10. Kakanda dan adinda tercinta Aulia Khairina dan Fauzan Ramadhana yang telah banyak membantu dan member semangat kepada penulis. 11. Dan juga kepada teman-teman seperjuangan stambuk 2007, khususnya Subardi Wansyah, Indra Gunawan, Kalsum Mustika, Reza Affandy, Berki Rahmat, dan Isnan Nisa Nasution yang telah memberikan semangat dan motivasi kepada saya. Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan. Oleh karena itu penulis mengharapkan kritik dan saran dari semua pihak yang bersifat membangun demi kesempurnaan dan pengembangan skripsi ini. Penulis berharap semoga skripsi ini bermanfaat bagi penulis sendiri pada khususnya dan pembaca pada umumnya. Medan,
April 2012
Penulis
Universitas Sumatera Utara
v
IMPLEMENTASI KRIPTOGRAFI ALGORITMA RSA PADA BERKAS-BERKAS TEKS, GAMBAR, SUARA DAN VIDEO
ABSTRAK Data komputer sekarang ini telah menjadi hal yang penting dalam kehidupan manusia. Segala informasi dulunya dicitrakan pada sebuah kertas, rekaman, atau perangkat sedangkan sekarang hanya cukup membutuhkan suatu perangkat berbasis komputer untuk menghasilkan informasi yang tidak terbatas jumlahnya dalam sebuah data digital. Keamanan sebuah data belum menjadi perhatian oleh masyarakat saat ini. Mudahnya akses terhadap data-data digital berbanding dengan tingginya kriminal dalam dunia komputer seperti pembajakan, manipulasi, dan Spekulasi terhadap data sangat kerap terjadi. Teknik kriptografi menjadi salah satu pilihan bagus untuk meningkatkan keamanan data. Kriptogafi merupakan suatu teknik manipulasi sebuah data sehingga orang lain hanya mengetahui data tersebut berbentuk sebuah kode yg tidak dikenalinya. Algoritma RSA merupakan bagian dari algoritma dengan kunci asimetri, yaitu kunci yang digunakan dalam proses pengkodean (enkripsi) berbeda dengan kunci pada proses pengekstrakan (dekripsi). Parameter dari kehandalan algoritma kriptografi ini terletak dari nilai-nilai prima yang digunakan dalam proses pembangkitan kedua pasangan kunci, yaitu kunci publik dan kunci privat. Semakin besar nilai prima maka semakit kuat kunci yang digunakan sehingga kesulitan para pemecah kode juga semakin tinggi. Proses pembangkitan kunci juga tidak terlepas dari algoritma pendukung yang digunakan yaitu algoritma Monte-Carlo sebagai pembangkit bilangan acak, dan algoritma Miller-Rabin sebagai algoritma pengecekan keprimaan suatu bilangan. Penggabungan dua algoritma dalam pembangkitan kunci tentu juga meningkatkan tingkat keberhasilan menghasilkan Kunci yang handal. Algoritma ini mampu memanipulasi berkas dengan format apapun dengan estimasi waktu yang relatif cepat. Hasil Enkripsi ini dapat dikembalikan melalui proses dekripsi ke berkas orisinil dengan persentase keberhasilan recovery sebesar 100 persen. Kata Kunci : Kriptografi, Algoritma RSA, Monte Carlo, Miller Rabin, Semua berkas
Universitas Sumatera Utara
vi THE IMPLEMENTATION OF RSA CRYPTOGRAPHY ALGORITHM ON THE TEXT, IMAGE, SOUND, AND VIDEO FILES
ABSTRACT
Presently, computer Data had being an important thing on human life. Before, all of information was put on a paper, in recording, and or other device whereas now we only need the computer to produce unlimited information on a digital data. Data security is not the main attention today. The digital data that people can access easily are proportional with Cyber Crime increase such as Piracy, data manipulation, and speculation happening today. Cryptography Technic is one of the best choice to improve data security. Cryptography is data manipulation technic so peoples can only see the data in the form of unknown codes. RSA algorithm is one of the asymmetric key algorithm, so the key used in ecnryption is different with key used for Decryption. Realibility parameters of this cryptography algorithm is the prime values used so the large the keys is more difficult to solve. Key Generation process is also part of algorithm used. This research uses Monte Carlo Algorithm for Random Numbers Generation, and Miller Rabin Algorithm as Primality Test Algorithm of the numbers. Combining these algorithms in Keys Generation surely improve the Large Prime Number Generation Success rate thus improving data security. The algorithm is applied to files with different formats and sizes. The result of encryption from this application maybe restored to its original form by using the decryption process with successful recovery percentage of 100 percent. Keywords : Cryptography, RSA Algorithm, Monte Carlo, Miller Rabin, All Files
Universitas Sumatera Utara
vii DAFTAR ISI
Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar
ii iii iv v vi vii x xi
Bab 1 Pendahuluan 1.1 Latar Belakang 1.2 Rumusan Masalah 1.3 Batasan Masalah 1.4 Tujuan Penelitian 1.5 Manfaat Penelitian 1.6 Metodologi Penelitian 1.7 Sistematika Penulisan
1 2 3 4 4 4 5
Bab 2 Landasan Teori 2.1 kriptografi 2.1.1 pengertian Kriptografi 2.1.2 Komponen Kriptografi 2.1.3 Tujuan Kriptografi 2.1.4 Terminologi dan Konsep Dasar kriptografi 2.1.5 Jenis kriptografi 2.1.6 Algoritma Kriptografi Rivest Shamir Adleman (RSA) 2.1.6.1 Proses Pembangkitan Kunci 2.1.6.2 Pembangkitan dan Pengecekan Bilangan Prima 2.1.6.3 Algoritma Enkripsi 2.1.6.4 Algoritma Dekripsi
7 7 7 8 9 11 13 14 15 17 17
Bab 3 Analisis dan Perancangan Sistem 3.1 Analisis Permasalahan 3.2 Analisis Persyaratan (Requirment Analysis) 3.2.1 Persyaratan Fungsional (Functional Requirment) 3.2.2 Persyaratan Nonfungsional (Nonfunctional Requirment) 3.3 Permodelan Sistem dengan Use Case dan Activity Diagram 3.3.1 Use Case Key Generation 3.3.2 Use Case Enkripsi 3.3.3 Use Case Dekripsi 3.4 Analisis Sistem
19 20 21 21 22 24 25 27 28
Universitas Sumatera Utara
viii
3.4.1 Analisis Sistem utama 3.4.2 Analisis Sistem Algoritma RSA 3.4.3 Pembangkitan (Generate) Kunci Publik dan Kunci Privat 3.4.4 Sistem Enkripsi Sebuah Berkas 3.4.5 Sistem Enkripsi Sebuah Berkas 3.5 Perancangan Antarmuka (Interface) 3.5.1 Rancangan Halaman Utama 3.5.2 Rancangan Halaman Menu Enkripsi Kriptografi RSA 3.5.3 Rancangan Halaman Menu Enkripsi Kriptografi RSA 3.5.4 Rancangan Halaman Help Bab 4 Implementasi dan Pengujian Sistem 4.1 Implementasi 4.1.1 Sistem Algoritma Kriptografi RSA 4.1.2 Sistem Antarmuka (Interface)
28 30 30 35 37 39 28 40 48 51 53 53 53 66
4.2 Pengujian Sistem 4.2.1 Pengujian Proses Enkripsi dan Dekripsi Algoritma RSA 4.2.2 Pengujian Proses Enkripsi dan Dekripsi Algoritma RSA Terhadap Berkas
70 70 74
Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 5.2. Saran
80 80 81
Daftar Pustaka
82
Lampiran A : Tabel ASCII Lampiran B : Listing Program
A-1 B-1
Universitas Sumatera Utara
ix DAFTAR TABEL
Halaman Tabel 3.1 Tabel 3.2 Tabel 3.3 Tabel 3.4 Tabel 3.5 Tabel 3.6 Tabel 3.7 Tabel 3.8
Spesifikasi Use Case Keys generatton Spesifikasi Use Case Enkripsi Spesifikasi Use Case Dekripsi Rincian Rancangan Halaman Utama Kriptografi RSA Rincian Rancangan Halaman Menu Enkripsi Kriptografi RSA Rincian Rancangan Halaman Initial Key Kriptografi RSA Rincian Rancangan Halaman Pembangkit Kunci Kriptografi RSA Rincian Rancangan Halaman Input Plaintext dan Ciphertext
24 25 27 40 41 42 44
Kriptografi RSA
46
Tabel 3.9 Rincian Rancangan Halaman Data Information Kriptografi RSA Tabel 3.10 Rincian Rancangan Halaman Menu Enkripsi Kriptografi RSA Tabel 3.11 Rincian Rancangan Halaman Insert Ciphertext Kriptografi RSA Tabel 3.12 Rincian Rancangan Halaman Help Tabel 4.1 Percobaan Pembangkitan Kunci-Kunci RSA Tabel 4.2 Percobaan Enkripsi RSA terhadap beberapa berkas dengan format
47 48 50 51 71 71
tertentu Tabel 4.3 Percobaan Dekripsi RSA terhadap berkas yang telah dienkripsi
73
Universitas Sumatera Utara
x DAFTAR GAMBAR
Halaman Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 3.1 Gambar 3.2 Gambar 3.3 Gambar 3.4 Gambar 3.5 Gambar 3.6
Perbandingan bentuk plainteks dan cipherteks Skema proses kriptografi simetri Skema kriptografi asimetri Skema kriptografi asimetri Diagram Ishikawa untuk Analisa Masalah Use Case Diagram yang akan dikembangkan Activity Diagram proses Keys Generation Activity Diagram proses Enkripsi Activity Diagram proses Dekripsi Skema Global Diagram Alir Proses Enkripsi dan Dekripsi
Gambar 3.7 Skema Global Diagram Alir Proses Pembangkitan Kunci RSA Gambar 3.8 Skema Global Diagram Alir Algoritma Pembangkit Bilangan Acak monte Carlo Gambar 3.9 Skema Global Diagram Alir Algoritma Miller Rabin Gambar 3.10 Skema Global Diagram Alir Proses Enkripsi RSA Gambar 3.11 Skema Global Diagram Alir Proses Dekripsi RSA Gambar 3.12 Rancangan halaman Utama antarmuka Sistem Gambar 3.13 Tampilan Halaman Menu RSA Gambar 3.14 Tampilan Halaman Menu Initial Key RSA Gambar 3.15 Tampilan Pembangkitan Kunci Gambar 3.16 Tampilan Halaman Menu Input Plaintext dan Ciphertext RSA Gambar 3.17 Tampilan Halaman Data Information enkripsi RSA Gambar 3.18 Tampilan Halaman Menu Dekripsi RSA Gambar 3.19 Tampilan Halaman Insert Cipherteks RSA Gambar 3.20 Tampilan Halaman Help Gambar 4.1 Prosedur Generate Kunci Gambar 4.2 inisialisasi kunci Gambar 4.3 Prosedur insert plaintext Gambar 4.4 Data Information Gambar 4.5 Berkas SecretKey.ini Gambar 4.6 Prosedur Inisialisasi kunci Dekripsi Gambar 4.7 Prosedur Insert Ciphertext Gambar 4.8 Isi Berkas Plainteks Berkas 2coba.Txt Gambar 4.9 Informasi Parameter Proses Enkripsi Pada Berkas Text Gambar 4.10 Hasil Enkripsi Berkas Text Gambar 4.11 Hasil Dekripsi Berkas Text yang telah Dienkripsi Gambar 4.12 Penampakan Berkas Gambar (Kunka1.Png) Gambar 4.13 Informasi Parameter Proses Enkripsi pada Berkas Gambar Gambar 4.14 Hasil Enkripsi Berkas Gambar Gambar 4.15 Hasil Dekripsi Berkas Gambar yang telah Dienkripsi Gambar 4.16 Informasi Parameter Proses Enkripsi Pada Berkas Suara Gambar 4.17 Hasil Enkripsi Berkas Suara Gambar 4.18 Informasi Parameter Proses Enkripsi Pada Berkas Video
9 11 12 12 20 23 25 26 28 29 32 33 34 36 38 39 41 42 43 45 47 48 50 51 66 67 67 68 68 69 70 74 75 75 75 76 76 77 77 78 78 79
Universitas Sumatera Utara