Implementasi Kriptografi Algoritma RSA Pada Berkas-Berkas Teks, Gambar, Audio, Dan Video

IMPLEMENTASI KRIPTOGRAFI ALGORITMA RSA PADA BERKAS-BERKAS TEKS, GAMBAR, SUARA DAN VIDEO

i

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

PERSETUJUAN

ii

Judul

: IMPLEMENTASI KRIPTOGRAFI ALGORITMA


RSA PADA BERKAS-BERKAS TEKS,

GAMBAR, AUDIO, DAN VIDEO

Kategori

: SKRIPSI

Nama

: YOGI ADITIA PUTRA

Nomor Induk Mahasiswa : 071401083

Program Studi

: SARJANA (S1) ILMU KOMPUTER

Departemen


: ILMU KOMPUTER

Fakultas

: ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI (FASILKOM-TI) UNIVERSITAS

SUMATERA UTARA

Komisi Pembimbing : Pembimbing 2

Diluluskan di Medan, 27 Maret 2014
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

PERNYATAAN

iii

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

PENGHARGAAN


iv

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

IMPLEMENTASI KRIPTOGRAFI ALGORITMA RSA PADA BERKAS-BERKAS TEKS, GAMBAR, SUARA DAN VIDEO

v


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

DAFTAR ISI

vii

Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar

Halaman
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
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
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

1 2 3 4 4 4 5
7 7 7 8 9 11 13 14 15 17 17
19 20 21 21 22 24 25 27 28

Universitas Sumatera Utara

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) 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

viii
28 30 30 35 37 39 28 40 48 51
53 53
53 66 70 70
74


Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 5.2. Saran
Daftar Pustaka
Lampiran A : Tabel ASCII Lampiran B : Listing Program

80 80 81
82
A-1 B-1

Universitas Sumatera Utara

DAFTAR TABEL

ix

Halaman

Tabel 3.1 Spesifikasi Use Case Keys generatton Tabel 3.2 Spesifikasi Use Case Enkripsi Tabel 3.3 Spesifikasi Use Case Dekripsi Tabel 3.4 Rincian Rancangan Halaman Utama Kriptografi RSA Tabel 3.5 Rincian Rancangan Halaman Menu Enkripsi Kriptografi RSA Tabel 3.6 Rincian Rancangan Halaman Initial Key Kriptografi RSA Tabel 3.7 Rincian Rancangan Halaman Pembangkit Kunci Kriptografi RSA Tabel 3.8 Rincian Rancangan Halaman Input Plaintext dan Ciphertext
Kriptografi RSA
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
tertentu

Tabel 4.3 Percobaan Dekripsi RSA terhadap berkas yang telah dienkripsi

24 25 27 40 41 42 44
46
47 48 50 51 71
71
73

Universitas Sumatera Utara

DAFTAR GAMBAR

x

Halaman

Gambar 2.1 Perbandingan bentuk plainteks dan cipherteks Gambar 2.2 Skema proses kriptografi simetri Gambar 2.3 Skema kriptografi asimetri Gambar 2.4 Skema kriptografi asimetri Gambar 3.1 Diagram Ishikawa untuk Analisa Masalah Gambar 3.2 Use Case Diagram yang akan dikembangkan Gambar 3.3 Activity Diagram proses Keys Generation Gambar 3.4 Activity Diagram proses Enkripsi Gambar 3.5 Activity Diagram proses Dekripsi Gambar 3.6 Skema Global Diagram Alir Proses Enkripsi dan Dekripsi

9 11 12 12 20 23 25 26 28 29


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

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

IMPLEMENTASI KRIPTOGRAFI ALGORITMA RSA PADA BERKAS-BERKAS TEKS, GAMBAR, SUARA DAN VIDEO

v

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

BAB I PENDAHULUAN

1

1.1 Latar Belakang
Perkembangan dunia komputer dan multimedia pada saat ini memberikan dampak yang besar terhadap pola hidup masyarakat terutama dalam proses penyampaian informasi. Informasi menentukan hampir setiap elemen dari kehidupan manusia. Tanpa adanya suatu informasi hampir semuanya tidak dapat dilakukan dengan baik. Keamanan suatu informasi pada zaman global ini juga telah menjadi sebuah kebutuhan vital dalam beberapa aspek kehidupan. Akan tetapi dalam pesatnya perkembangan teknologi informasi sampai saat ini memberikan dampak positif dan negatif dimana menjadi suatu kemudahan kepada setiap orang untuk mendapatkan suatu informasi ataupun sebuah data tanpa harus membutuhkan proses yang lama. Berbagai cara dilakukan banyak orang untuk mendapatkannya.
Dari permasalahan tersebut tersebut menjadi keharusan kepada pemilik data atau informasi merancang suatu sistem keamanan terhadap data dan informasinya. Masalah keamanan tentunya menjadi salah satu aspek terpenting dari sebuah sistem multimedia. Akan tetapi masalah keamanan seringkali kurang mendapatkan perhatian dari para perancang dan pengelola sistem informasi. Jika tidak mengganggu performa sistem, maka masalah keamanan seringkali tidak begitu dipedulikan, bahkan ditiadakan.
Ilmu yang mempelajari tentang proses pengaman suatu data adalah kriptografi. Secara umum terdapat dua jenis kriptografi, yaitu kriptografi klasik dan kriptografi modern, kriptografi klasik adalah suatu algoritma yang menggunakan satu kunci untuk mengamankan data. Dua teknik dasar yang biasa digunakan adalah subsitusi dan
Universitas Sumatera Utara

2 permutasi (transposisi). Sedangkan kriptografi modern adalah algoritma yang lebih kompleks daripada algoritma kriptografi klasik, hal ini disebabkan algoritma sekarang ini harus menggunakan komputer. Dalam hal ini algoritma yang akan penulis pergunakan adalah algoritma kriptografi modern.
Sedangkan Steganografi adalah seni dan ilmu menulis pesan tersembunyi atau menyembunyikan pesan dengan suatu cara sehingga selain si pengirim dan si penerima. Tidak ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Teknik steganografi meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia (teks atau gambar) di dalam berkas-berkas lain yang mengandung teks, image, bahkan audio tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari berkas semula. Oleh karena itu, steganografi semakin dibutuhkan guna memberikan keamanan yang maksimal dalam proses pengiriman informasi. Teknik steganografi umum digunakan bersamaan dengan menggunakan dua media yang berbeda dimana salah satunya berfungsi sebagai media yang berisikan informasi dan yang lain berfungsi sebagai media pembawa informasi tersebut.
Terdapat beberapa algoritma yang dapat digunakan orang untuk melakukan proses pengamanan data tersebut. Diantaranya adalah algoritma Rivest Shamir Adleman (RSA) yang penulis gunakan dalam skripsi ini. Oleh karena itu dari permasalahan tersebut penulis berencana meimplementasikan sistem kriptogafi berbasis komputer dengan membuat suatu aplikasi yang dapat menyembunyikan sebuah data dalam suatu berkas multimedia dimana dilakukan proses enkripsi terlebih dahulu sehingga dalam proses pengiriman data, orang-orang yang berhasil memperoleh data dari berkas pembawa tidak dapat mengetahui berkas sebenarnya meskipun berkas tersebut berhasil diekstrak.
1.2 Rumusan Masalah
Setelah melihat latar belakang masalah yang telah diuraikan di atas maka timbul rumusan masalah dalam skripsi ini yaitu :
Universitas Sumatera Utara


3 a. Bagaimana cara merancang suatu aplikasi untuk mengimplementasikan sistem
kriptografi terhadap berkas-berkas dengan format apapun baik berkas teks, gambar, suara maupun berkas video. b. Apakah seluruh berkas tersebut dapat dienkripsi menggunakan Algoritma RSA ini sehingga orang lain tidak mengetahui dengan baik bentuk dan isi berkas tersebut. c. Apakah pasangan kunci yang digunakan (dalam hal ini kunci publik dan kunci private) memiliki tingkat keamanan yang sangat baik. d. Apakah berkas yang telah dienkripsi dapat dikembali menjadi bentuk berkas orisinil yang utuh seperti sebelum dilakukannya proses enkripsi tanpa ada cacat sedikitpun.
1.3 Batasan Masalah
Untuk menghindari penyimpangan pembahasan dari tujuan awal maka diperlukan batasan masalah skripsi ini adalah sebagai berikut:
a. Aplikasi dapat mengubah sebuah berkas yang memiliki format tertentu menjadi sebuah berkas baru yang tidak dapat dikenali berkas sebenarnya.
b. Dalam batasan ini berkas tersebut adalah berkas teks, gambar, suara, dan video.
c. Algoritma enkripsi dan dekripsi data yang digunakan adalah algoritma RSA (Rivest Shamir Adleman).
d. Proses pembangkitan kunci publik dan kunci privat pada proses enkripsi RSA dilakukan secara acak (random) menggunakan algoritma Monte-Carlo dan dimana kedua nilai acak hanya dilakukan pengecekan apakah bilangan tersebut merupakan bilangan prima apa tidak menggunakan algoritma Miller-Rabin.
e. Panjang kunci publik dan kunci privat yang akan dibangkitkan yaitu maksimal sebesar 64 bit.
Aplikasi yang dirancang merupakan aplikasi kriptografi stand-alone dengan menggunakan bahasa pemrograman Borland Delphi 7.
Universitas Sumatera Utara

1.4 Tujuan Penelitian

4

Tujuan dari penelitian ini adalah 1. Bagaimana cara pengimplementasikan algoritma kriptografi yaitu algoritma RSA dalam proses enkripsi sebuah data dan selanjutnya dilakukan dekripsi terhadap data tersebut kembali. 2. Menganalisa proses dekripsi data menjadi sebuah data utuh seperti sebelum mengalami proses enkripsi. 3. Menganalisa perbandingan data yang telah dienkripsi dan didekripsi dengan data yang orisinil (recovery).

1.5 Manfaat Penelitian
Manfaat yang dapat diperoleh dari penulisan skripsi ini adalah sebagai berikut: Meningkatkan keamanan terhadap data dimana pengguna dapat
menyembunyikan sebuah data pada sebuah media pembawa terutama dalam proses pengiriman sebuah data.

1.6 Metodologi Penelitian
Metodologi penelitian yang akan digunakan adalah: 1. Studi Literatur Pada tahap ini dilakukan pencarian sumber pengetahuan dan informasi dari jurnal, buku-buku, paper dan e-book yang terkait dengan pokok bahasan penelitian. 2. Analisis dan Perancangan Sistem Pada tahap ini dilakukan analisis terhadap data-data yang dibutuhkan dalam pembuatan aplikasi, algoritma yang digunakan dan salanjutnya dilakukan perancangan interface yang dapat dimengerti dengan mudah oleh pengguna aplikasi.

Universitas Sumatera Utara

5 3. Implementasi Sistem
Pada tahap ini dilakukan proses pengkodean (coding) berdasarkan analisis kebutuhan yang telah dilakukan sebelumnya kedalam bahasa pemrograman. Dalam hal ini bahasa pemrograman yang digunakan yaitu Borland Delphi 7. 4. Pengujian dan Analisa Sistem Pada tahap ini dilakukan pengujian dari aplikasi yang dibangun terhadap beberapa data yang akan dienkripsi dan dilakukan analisis terhadap data-data tersebut. 5. Penyusunan Laporan dan Dokumentasi Sistem Pembuatan report terhadap analisis yang dilakukan serta penjelasan sistem secara keseluruhan.
1.7 Sistematika Penulisan
Agar penulisan menjadi lebih terstruktur, maka penulisan ini dibagi menjadi lima bab, antara lain sebagai berikut:
BAB 1 : Pendahuluan Bab ini berisi mengenai latar belakang masalah, perumusan masalah, batasan masalah, tujuan penulisan dan sistematika penulisan.
BAB 2 : Tinjauan Teoritis Bab ini dibahas mengenai teori-teori apa saja yang menjadi tinjauan penulis dalam menyelesaikan penelitian ini diantaranya teori algoritma kriptografi RSA, dan algoritma pembangkitan bilangan acak Monte Carlo, dan algoritma pengecekan bilangan prima Miller-Rabin.
BAB 3: Analisis dan Perancangan Sistem Bab ini berisi tentang analisis masalah yang akan dibangun pada sistem pakar ini, dan menganalisis apa saja kebutuhan sistem yang akan dibangun kemudian tahapan selanjutnya adalah melakukan perancangan sistem yakni dengan membuat Data Flow Diagram (DFD), basis data pengetahuan dan merancang antarmuka sistem.
Universitas Sumatera Utara

6 BAB 4: Implementasi dan Pengujian Sistem
Bab ini berisi mengenai implementasi sistem berdasarkan tahapan perancangan dengan menggunakan bahasa pemrograman Borland Delphi 7 serta tahapan pengujian sistem untuk melihat apakah sistem sudah berjalan sesuai perancangan atau tidak. BAB 5: Kesimpulan dan Saran Bab ini berisi mengenai kesimpulan yang diperoleh selama penulisan dan saran yang diberikan untuk pengembangan lebih lanjut.
Universitas Sumatera Utara

7
BAB 2
LANDASAN TEORI
2.1 Kriptografi
2.1.1 Pengertian kriptografi
Kriptografi (Cryptography) berasal dari Bahasa Yunani. Menurut bahasanya, istilah tersebut terdiri dari kata kripto dan graphia. Kripto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya, kriprografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain. Dalam kamus bahasa Inggris Oxford, pengertian kriptografi adalah ”Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan menggunakan huruf dan karakter di luar bentuk aslinya, atau dengan metode-metode lain yang hanya dapat dipahami oleh pihak-pihak yang memproses kunci, juga semua hal yang ditulis dengan cara seperti ini ”(Dony ariyus, ”Keamanan Multimedia”, 2007, hal : 19).
2.1.2 Komponen kriptografi
Pada dasarnya, kriptografi terdiri dari beberapa komponen penting seperti (Dony Aryus, ”keamanan Multimedia”, 2007, hal :19-20) :
a. Enkripsi, merupakan hal yang sangat penting dalam kriptografi sebagai pengamanan atas data yang dikirimkan agar rahasianya terjaga. Pesan asalnya disebut plaintext yang diubah menjadi kode-kode yang tidak dimengerti menggunakan sebuah algoritma tertentu. Enkripsi bisa diartikan sebagai cipher atau kode.
Universitas Sumatera Utara

8
b. Dekripsi, merupakan kebalikan dari enkirpsi yakni pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (plaintext), yang disebut dekripsi pesan. Algoritma yang digunakan untuk dekripsi berbeda dengan yang digunakan untuk enkripsi.
c. Key (kunci), kunci yang dimaksud disini adalah kunci yang dipakai untuk melakukan proses enkripsi dan dekripsi. Kunci terbagi menjadi dua bagian, yakni kunci pribadi (private key) dan kunci umum (public key).
d. Ciphertext, merupakan suaut pesan yang sudah melalui proses enkripsi. Pesan yang ada pada ciphertext tidak bisa dibaca karena berisi karakter-karakter yang tidak memiliki makna (arti).
e. Plaintext (atau cleartext) merupakan suatu pesan bermakna yang ditulis atau diketik dan plaintext itulah yang akan diproses menggunakan algoritma kriptografi agar menjadi chipertext.
f. Pesan, dapat berupa data atau informasi yang dikirim (melalui media tertentu) atau disimpan dalam media perekaman.
g. Kriptanalisis, bisa diartikan sebagai analisis sandi atau suatu ilmu untuk mendapatkan plaintext tanpa harus mengetahui kunci secara wajar.
2.1.3 Tujuan kriptografi
Kriptografi memiliki tujuan untuk memberi layanan keamanan yakni sebagai berikut (Munir, 2006, hal : 9) :
a. Kerahasiaan (confidentiality), adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.
b. Integritas Data (data integrity), adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriminan.
c. Otentikasi (authentication), adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi maupun mengidentifikasi kebenaran sumber pesan.
d. Nirpenyangkalan (non-repudiation), adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan
Universitas Sumatera Utara

9
menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.
2.1.4 Terminologi dan Konsep Dasar Kriptografi Dalam bidang kriptografi akan ditemukan beberapa istilah atau teminologi.
Istilah-istilah tersebut sangat penting untuk diketahui dalam memahami ilmu kriptografi. Oleh karena itu penulis akan menjelaskan beberapa istilah penting dalam bidang kriptografi yang akan sering penulis gunakan dalam tulisan ini. Berikut merupakan istilah-istilah tersebut. a. Plainteks dan Cipherteks
Pesan merupakan data atau informasi yang dimengerti maknanya secara langsung. Nama latin dari pesan adalah plainteks (plaintext). Pesan tersebut dapat dikirim (melalui kurir, saluran telekomunikasi, dan lain-lain) dan dapat juga disimpan dalam media penyimpanan (kertas, perangkat storage, dan lain-lain). Pesan dapat berupa teks, video, gambar, dan lain-lain. Agar pesan tersebut tidak dapat dimengerti makanya bagi pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dipahami. Bentuk pesan yang telah tersandikan tersebut dinamakan dengan cipherteks. Perbandingan antara plainteks dan cipherteks dapat kita lihat pada gambar 2.1 berikut.
Gambar 2.1 Perbandingan bentuk plainteks dan cipherteks
Universitas Sumatera Utara

10
b. Peserta Komunikasi
Komunikasi data melibatkan pertukaran pesan antara dua entitas. Entitas yang pertama adalah pengirim, yang berfungsi mengirim pesan kepada entitas lain. Entitas kedua ada penerima, yang berfungsi menerima pesan yang dikirimkan. Entitas-entitas ini dapat berupa orang, mesin komputer, sebuah kartu kredit, dan sebagainya. Pengirim ingin mengirimkan pesan dengan aman sampai ke penerima. Jadi solusinya adalah dilakukan penyandian terhadap pesan tersebut agar tidak diketahui pihak-pihak yagn tidak berkepentingan terhadap pesan tersebut.
c. Enkripsi dan Dekripsi
Proses penyandian pesan, dari plainteks ke cipherteks dinamakan dengan enkripsi (encryption) dan enchipering (standar nama menurut ISO 7498-2). Sedangkan proses mengembalikan pesan dari cipherteks ke plainteks dinamakan dengan dekripsi (decryption) dan dechipering (standar nama menurut ISO 7498-2). Proses enkripsi dan dekripsi dapat diterapkan pada pesan yagn dikirim ataupun pesan yang disimpan. (M Yuli Andri, 2009, hal 13)
d. Kriptanalis dan Kriptologi
Kriptografi selalu memiliki perkembangan, karena kriptografi memiliki ilmu yang berlawan yang disebut dengan kriptanalisis. Kriptanalisis (Cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks, tanpa memerlukan kunci yang digunakan. Pelakunya disebut dengan kriptanalis. Jika seorang kriptografer (istilah bagi pelaku kriptografi) mentrasnformasikan plainteks ke cipherteks dengan menggunakan kunci, maka sebaliknya seorang kriptanalis berusaha memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi (cryptology) adalah studi mengenai kriptografi dan kriptanalisis.
Universitas Sumatera Utara

11

2.1.5 Jenis kriptografi
Kriptografi dibagi menjadi dua bagian berdasarkan kunci yang dipakai dalam proses enkripsi dan dekripsi, yaitu (M Yuli Andri, 2009, hal 14) :
a. Kriptografi simetri, algoritma ini disebut juga algoritma klasik karena memakai kunci yang sama untuk proses enkripsi dan dekripsi. Istilah lain dari kriptografi ini adalah kriptografi kunci privat (privat-key cryptography), kriptografi kunci rahasia (secret-key cryptography), atau kriptografi konvensional (conventional cryptography). Dalam kriptografi kunci simetri dapat diasumsikan bahwa si penerima dan pengirim pesan telah terlebih dahulu berbagi kunci sebelum pesan dikirimkan. Keamanan dari sistem ini terletak pada kerahasiaan kuncinya.
Skema dari proses kriptografi simetri ini dapat dilihat pada gambar 2.2 berikut.
Private Key, K

Plaintext,P

Enkripsi Ek(P) = C

Ciphertext, C

Enkripsi Dk(C) = P

Gambar 2.2 Skema proses kriptografi simetri

Plaintext, P

Terdapat dua teknik dasar yang biasa diguna kan pada kriptografi simetri yaitu teknik subsitusi dimana pergantian setiap karakter plaintext dengan karakter lain dan teknik transposisi (permutasi) dimana teknik ini menggunakan permutasi karakter.
Beberapa algoritma yang menggunakan kunci yang sama (simetri) antara lain : o Data encryption Standard (DES) o International Data Encryption Algorithm (IDEA) o Advanced Encryption Standard (AES)

Universitas Sumatera Utara

12

b. Kriptografi Asimetri, Berbeda dengan kripfotgrafi kunci simetri, kriptografi kunci publik memiliki dua buah kunci yang berbeda pada proses enkripsi dan deskripsinya. Nama lain dari kunci asimetris ini adalah kriptografi kuncipublik (public-key cryptography). Kunci untuk enkripsi pada kriptografi asimetri ini tidak rahasia (diketahui oleh publik), sedangkan kunci untuk dekripsi bersifat rahasia (kunci privat). Enititas pengirim akan mengenkripsi dengan menggunakan kunci publik, sedangkan entitas penerima mendekripsi menggunakan kunci privat. Skema dari proses kriptografi asimetri ini dapat dilihat pada gambar 2.3 berikut.

Kunci Publik, K1

Kunci Privat, K2

Plaintext,P

Enkripsi Ek(P) = C

Ciphertext, C

Enkripsi Dk(C) = P

Plaintext, P

Gambar 2.3 Skema kriptografi asimetri

Kriptografi asimetri ini dapat dianalogikan seperti kotak surat yang terkunci dan memiliki lubang untuk memasukkan surat. Setiap orang dapat memasukkan surat ke dalam kotak surat tersebut, tetapi hanya pemilik surat yang memiliki kunci dan yang dapat membuka kotak surat. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang digunakan untuk mengirim pesan, tidak perlu takut karena pihak yang tidak berkepentingan tidak akan dapat mendekripsi pesan tersebut, karena tidak memiliki kunci privat, atau penerima dapat memberikan kunci publik yang diinginkan kepada pengirim.
Beberapa algoritma yang menggunakan kunci yang berbeda (asimetri) antara lain :
o Digital Signature Algorithm (DSA) o Rivest Shamir Adleman (RSA) o Diffie-Helman (DH) o Cryptography Quantum

Universitas Sumatera Utara

13

2.1.6 Algoritma Kriptografi Rivest Shamir Adleman (RSA)

Dari sekian banyak algoritma kriptografi kunci publik yang pernah dibuat, algoritma RSA merupakan algoritma yang paling populer dan cukup aman dikarena algoritma RSA melakukan menfaktoran bilangan yang cukup besar. Algoritma RSA sendiri dibuat oleh tiga orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976. Mereka adalah Ron Rivest, Adi Shamir, Leonard Adleman. RSA diambil dari tiap nama belakang mereka. (Dony Ariyus,”keamanan Multimedia”, 2007, hal 80).

Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci pribadi. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin. Dikarenakan makin besar ukuran kunci, maka makin besar juga kemungkinan kombinasi kunci yang bisa dijebol dengan metode memeriksa kombinasi satu persatu kunci atau lebih dikenal dengan istilah brute force attack sehingga tidak ekonomis dan sulit untuk memecahkan sandi tersebut.

Terdapat beberapa besaran yang digunakan pada algoritma RSA, yakni:

1. p dan q bilangan prima

(rahasia)

2. N = p ⋅ q

(tidak rahasia)

3. φ(N) = (p – 1)(q – 1)

(rahasia)

4. e (kunci enkripsi)

(tidak rahasia)

5. d (kunci dekripsi)

(rahasia)

6. X (plainteks)

(rahasia)

7. Y (cipherteks)

(tidak rahasia)

2.1.6.1 Proses Pembangkitan Kunci

Dalam membuat suatu kode, RSA mempunyai cara kerja dalam membuat kunci publik dan kunci privat adalah sebagai berikut (Satma Rachendu dkk, 2007, hal:2):

Universitas Sumatera Utara

14
a. Pilih dua bilangan (integer) prima p dan q secara acak, dimana p q. Bilangan ini harus cukup besar untuk memperoleh tingkat keamanan yang tinggi.
b. Hitung N = p.q, (p q, karena jika p=q maka nilai N= p2 dan akan mudah mendapatkan nilai N),bilangan N disebut parameter sekuriti.
c. Hitung φ(N)= (p-1)(q-1). φ(N) merupakan nilai totient euler dari suatu bilangan N dimana menyatakan jumlah bilangan bulat positif yang lebih kecil dari N dan prima terhadap N.
d. Pilih bilangan bulat (integer) sebagai kunci publik antara satu dan φ(N) (1< e < φ(N)) yang tidak mempunyai faktor pembagi dari φ(N). sehingga gcd(e. φ(N)) = 1. Dapat dikatakan bahwa e relatif prima terhadap φ(N).
e. Greatest Common Divisor (gcd) dari dua buah bilangan tidak lain adalah irisan dari himpunan faktor bilangan prima dari kedua bilangan tersebut. Contohnya,
gcd (a,b) gcd(10,15) = 5 gcd((2 x 5),(3 x 5)) = 5
ketika kedua bilangan tidak memiliki faktor bersama, maka gcdnya menjadi 1
f. Menghitung bilangan bulat d dimana 1 < d < φ(N), sehingga e.d 1 (mod φ(N)). Menurut persamaan Chinese Remainder Theorem (CRT) yang menyatakan bahwa a b (mod m) ekivalen dengan a = b+ k.m, atau dapat dinyatakan dengan persamaan : e.d 1 (mod φ(N)) atau e.d (mod φ(N)) = 1
Dengan mencoba nilai d = 0,1,2,3, .. sehingga memenuhi persamaan tersebut. hasil dari algoritma tersebut adalah : 1) Kunci publik adalah pasangan (e,N) 2) Kunci privat adalah pasangan (d,N)
Universitas Sumatera Utara

15
2.1.6.2 Pembangkit dan Pengecekan Bilangan Prima
Dalam proses pembangkitan kunci publik dan privat pada algoritma kriptografi RSA, dibutuhkan dua bilangan p dan q yang merupakan bilangan prima dan merupakan bilangan yang dapat dikatakan sangat besar. Hal ini dapat diantisipasi dengan menggunakan suatu algoritma pembangkit bilangan acak serta dilakukan pengecekan bilangan tersebut merupakan bilangan Prima atau bukan.
Terdapat banyak algoritma pembangkit bilangan acak yang digunakan pada dunia komputer. Akan tetapi algoritma yang digunakan adalah algoritma pembangkit bilangan acak Monte Carlo. Dikarenakan pada hal ini sistem hanya akan menggenerate suatu angka dari suara batasan kumpulan angka yang nantinya akan digunakan pada proses pembangkitan kunci pada RSA. Akan tetapi sebelum digunakan dilakukan kembali pengecekan apakah nilai tersebut merupakan bilangan prima atau tidak. Algoritma pengecekan bilangan prima penulis menggunakan algoritma Miller Rabin.
• Algoritma pembangkit bilangan acak Monte Carlo
Metode Monte Carlo merupakan dasar untuk semua algoritma dari metode simulasi yang didasari pada pemikiran penyelesaian suatu masalah untuk mendapatkan hasil yang lebih baik dengan cara memberi nilai sebanyakbanyaknya (generated Random Number) untuk mendapatkan ketelitian yang lebih tinggi. Metode ini menganut sistem pemrograman yang bebas tanpa terlalu banyak diikat oleh aturan tertentu. Secara umum algoritma ini dapat diperlihatkan pada pseudocode sederhana seperti berikut.
Input : n,k , dimana n < a < k; Output : a MonteCRandom (a,n,k)
I 0 dan z = 1, maka p bukan prima. 8) Nyatakan j = j + 1. Jika j < b dan z ≠ p – 1, nyatakan z = z2 mod p dan kembali ke langkah (6). Jika z = p – 1, maka p lolos pengujian dan mungkin prima. 9) Jika j = b dan z ≠ p – 1, maka p tidak prima. 10) Ulangi pengujian dengan algoritma Rabin-Miller di atas sebanyak t kali (dengan nilai a yang berbeda).
Universitas Sumatera Utara

17
2.1.6.3 Algoritma Enkripsi
Proses enkripsi dilakukan dengan menggunakan kunci publik. Prosedurnya antara lain:
1) Ambil kunci publik penerima pesan (e), dan modulus N. 2) Plainteks dinyatakan dengan blok-blok m1,m2,...,mn sedemikian sehingga setiap
blok mempresentasikan nilai di dalam selang [0,N-1]. 3) Setiap blok mi dienkripsikan menjadi blok ci dengan rumus
ci = mie mod N 2.2.6.4 Algoritma dekripsi
Proses dekripsi dilakukan dengan menggunakan kunci privat (d,N) dimana setiap blok chiperteks ci didekripsikan kembali menjadi blok mi dengan rumus :
mi = cid mod N Penggunaan algoritma tersebut diatas dapat dicontohkan sebagai berikut : Misalkan p = 47 dan q = 71 (keduanya prima). Selanjutnya menghitung nilai
N = p ⋅ q = 3337 dan φ(N)= (p – 1)(q – 1) = 3220
Pilih kunci publik e = 79, karena 79 relatif prima dengan 3220. e dan N dapat dipublikasikan ke umum.
Selanjutnya akan dihitung kunci dekripsi d menggunakan : e.d 1 (mod φ(N)) atau ed mod φ
sehingga dapat diperoleh (e=79 dan φ
Universitas Sumatera Utara

18
Dengan mencoba nilai-nilai d = 1, 2, 3, …, diperoleh nilai SK yang bulat adalah 1019. Ini adalah kunci dekripsi yang harus dirahasiakan.
Selanjutnya pesan yang akan dikirim adalah m = SKRIPSIKU Atau dalam desimal (kode ASCII) adalah : 837582738083737585
Kemudian nilai tersebut akan dipecah menjadi blok-blok m. Nilai-nilai m harus masih dalam selang [0, 3337-1]. Maka blok yang akan terbentuk adalah : m1 = 837 ; m2 = 582 ; m3 = 738 ; m4 = 083 ; m5 = 737 ; m6 = 585
Sebelumnya telah diketahui kunci publik adalah e = 79 dan N = 3337. Maka pesan m dapat dienkripsikan, yakni : c1 = 83779 mod 3337 = 792 ; c2 = 58279 mod 3337 = 776 ; c3 = 73879 mod 3337 = 2623 ; c4 = 08379 mod 3337 = 2251; c5 = 73779 mod 3337 = 2037 ; c6 = 58579 mod 3337 = 685 ;
Sehingga chiperteks yang dihasilkan adalah : 792 776 2623 2251 2037 685 Selanjutnya pesan yang telah terenkripsi tersebut dikirimkan kepada penerima pesan, yang mana telah memiliki kunci privat (d,N) = (1019,3337) sehingga : m1 = 7921019 mod 3337 = 837 ; m2 = 7761019 mod 3337 = 582 ; m3 = 26231019 mod 3337 = 738 ; m4 = 22511019 mod 3337 =083 ; m5 = 20371019 mod 3337 = 737 ; m2 = 6851019 mod 3337 =585 ;
maka akan dihasilkan kembali m = 837 582 738 083 737 585
yang dalam pengkodean ASCII dapat dibaca sebagai berikut : m = SKRIPSIKU
Universitas Sumatera Utara

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

19

3.1 Analisis Permasalahan
Penggunaan algoritma kriptografi dalam aktivitas teknologi informasi pada saat ini sudah sering digunakan. Begitu juga halnya steganografi dalam proses penyembunyian data dalam jenis data lainnya.
Dalam merancang suatu sistem diperlukan analisis terhadap sistem yang akan dirancang terlebih dahulu. Tujuan dari analisis itu sendiri adalah agar sistem yang dirancang menjadi tepat guna dan ketahanan dari sistem tersebut akan lebih baik. Disamping itu dengan melakukan sebuah analisis kita akan dapat mempermudah kerja kita dalam membuat sistem, dan jika suatu saat nanti ada perbaikan atau penambahan dalam sistem tersebut, maka akan mudah diselesaikan.
Dalam hal ini penulis menggunakan algoritma Rivest Shamir Adleman (RSA) sebagai algoritma kriptografi dan berkas yang menjadi objek kriptografi adalah seluruh berkas berformat apapun baik berkas teks, gambar, suara, ataupun video. Masalah autentikasi data pada proses kriptografi ini menjadi perhatian utama. Dimana keberhasilan proses kriptografi sangat dipengaruhi oleh bilangan prima pada pembangkitan kedua kunci RSA. Apabila ada ketidaksesuaian dari parameterparameter yang dibutuhkan maka proses pengembalian berkas kode menjadi berkas orisinil tidak akan berhasil.
Analisis masalah digambarkan dengan diagram Ishikawa (Fishbone Diagram) pada gambar 3.1 berikut ini. Diagram Ishikawa merupakan diagram sebab akibat yang
Universitas Sumatera Utara

20 membantu mempermudah dalam membangun sebuah sistem. Bagian kepala atau kotak yang berada di sisi kanan merupakan masalah utamanya, sedangkan di bagian tulangnya merupakan penyebab.
Gambar 3.1 : Diagram Ishikawa untuk Analisa Masalah
3.2 Analisis Persyaratan (Requirment Analysis) Analisa ini bertujuan untuk mengidentifikasikan dan menyatakan persyaratan
apa saja yang dibutuhkan oleh sistem agar dapat berjalan sesuai dengan yang diharapkan. Analisis persyaratan ini terdiri atas dua bagian yaitu analisis fungsional (functional requirement) dan analisis nonfungsional (nonfunctional requirement). Dimana persyaratan fungsional adalah aktifitas dan layanan yang harus diberikan/disediakan oleh sebuah sistem, dan persyaratan nonfungsional berkaitan dengan fitur, karakteristik, dan batasan lainnya yang menentukan apakah sistem memuaskan atau tidak. Kedua analisis ini merupakan hal yang penting untuk menentukan hal-hal yang harus dimiliki sistem.
Universitas Sumatera Utara

3.2.1 Persyaratan Fungsional (Functional Requirment)

21

Analisis fungsional dibutuhkan untuk mengetahui hal-hal yang bisa dikerjakan oleh sistem. Berikut akan dijabarkan fungsi-fungsi yang dapat dikerjakan oleh sistem.

1. Kunci publik dan kunci privat yang akan dipakai dapat dilakukan secara manual ataupun otomatis (dengan menggunakan sebuah modul pembangkit kunci RSA).
2. Pembangkitan bilangan prima yang akan digunakan dalam mendapatkan kunci asimetri RSA juga dilakukan secara acak.
3. Sistem akan melakukan proses enkripsi terhadap seluruh berkas dengan format apapun dan dekripsi terhadap berkas enkripsi dengan tingkat keberhasilan sempurna (menghasilkan berkas plainteks orisinil).

3.2.2 Persyaratan Nonfungsional (Nonfunctional Requirment)
Analisis nonfungsional berhubungan dengan hal-hal berikut ini :
1. Performa Perangkat lunak yang akan dibangun dapat menunjukkan hasil dari proses pembangkitan kunci dan dapat memilih apakah kunci akan digunakan apa tidak serta proses enkripsi dan dekripsi dilakukan secara bertahap atau terstruktur.
2. Mudah dipelajari dan digunakan Perangkat lunak yang akan dibangun memiliki tampilan yang user friendly dan simpel sehingga user tidak mengalami kesulitan dalam mempelajari sistem.

Universitas Sumatera Utara

22 3. Keamanan
Parameter yang digunakan pada pembangkitan kunci menggunakan nilai yang cukup besar sehingga sangat sulit yang dilakukan pemecahan kunci. Hasil generate akan disimpan pada sebuah berkas lain yang hanya dimiliki oleh pengguna aplikasi.
4. Efisien Setiap proses pada perangkat lunak tidak membutuhkan waktu yang cukup lama tergantung dari ukuran berkas yang akan diolah.
5. Dokumentasi Perangkat lunak yang akan dibangun menyimpan semua paramater yang telah digunakan dan menampilkan kembali kepada user sebelum melakukan eksekusi.
6. Kontrol Perangkat lunak yang akan dibangun akan menampilkan pesan error untuk setiap kesalahan atau parameter yang tidak sesuai
3.3 Permodelan Sistem dengan Use Case dan Activity Diagram
Permodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang objek-objek yang berinteraksi antara user dan sistem. Use case adalah salah satu permodelan yang digunakan dalam memodelkan persyaratan sistem. Dengan use case digambarkan siapa saja yang berinteraksi dengan sistem dan apa saja dilakukan oleh sistem.
Berdasarkan analisis persyaratan sistem, secara garis besar sistem melakukan banyak interaksi terhadap user. Mulai dari penginputan parameter-parameter, pembangkitan bilangan prima serta kunci-kunci RSA dan memilih kunci yang akan digunakan juga berkas-berkas yang akan diolah dan disimpan untuk proses selanjutnya.
Universitas Sumatera Utara

23 Berikut ini adalah diagram use case yang dirancang sebagai permodelan persyaratan sistem.
Gambar 3.2 : Use Case Diagram yang akan dikembangkan Diagram pada gambar 3.2 menjelaskan segala aktivitas yang dilakukan user terhadap sistem. User pertama memilih menu yang akan digunakan (enkripsi/dekripsi), selanjutnya untuk enkripsi user harus menginput plainteks, menggenerate parameter (yang nantinya menghasilkan dua kunci yaitu kunci publik dan kunci privat). Sedangkan untuk dekripsi user harus menginputkan cipherteks dan kunci privat untuk melanjutkan ke proses dekripsi berkas. 3.3.1 Use Case Key Generation
Berikut merupakan spesifikasi dan tabel activity Diagram untuk use case Keys Generation seperti yang digambarkan pada tabel 3.1 dan gambar 3.3 berikut.
Universitas Sumatera Utara

24

Name

Key Generation

Actors

User

Trigger

User meng-Generate dua bilangan prima p dan q dan melakukan

perhitungan yang kemudian user memilih kunci tersebut

digunakan apa tidak dan dapat di-generate kembali.

Preconditions -

Post Conditions Nilai p dan q akan menghasi