PADA CITRA DIGITAL
SKRIPSI
JOHANES PRIMA SARAGIH
101401049
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
PADA CITRA DIGITAL
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
JOHANES PRIMA SARAGIH 101401049
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJ UAN
Judul : IMPLEMENTASI ALGORITMA
ADLEMAN UNTUK PENGAMANAN KUNCI
ALGORITMA HILL CIPHER PADA CITRA DIGITAL
Kategori : SKRIPSI
Nama : JOHANES PRIMA SARAGIH
Nomor Induk Mahasiswa : 101401049
Program Studi : SARJANA (S1) ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Drs. Dahlan Sitompul, M. Eng. Drs. Agus Salim Harahap, M.Si. NIP. 196707252005011002 NIP. 195408281981031004
Diketahui/Disetujui oleh
Departemen Ilmu Komputer FASILKOM-TI USU Ketua,
PERNYATAAN
IMPLEMENTASI ALGORITMA RIVEST-SHAMIR-ADLEMAN UNTUK PENGAMANAN KUNCI ALGORITMA HILL CIPHER
PADA CITRA DIGITAL
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 15 Januari 2015
UCAPAN TERIMA KASIH
Puji syukur dan terima kasih penulis ucapkan kepada Tuhan Yesus Kristus yang telah menjaga, merawat dan melimpahkan kasih dan karunia-Nya kepada penulis, sehingga skripsi ini dapat diselesaikan dalam waktu yang telah ditetapkan.
Dengan segala kerendahan hati, pada kesempatan ini penulis menyampaikan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi ini. Penulis mengucapkan terima kasih kepada:
1. Bapak Prof. Dr. dr. Syahril Pasaribu, D.T.M.&H., M.Sc.(C.T.M.). Sp.A.(K.) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing sebagai Ketua Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara.
4. Ibu Maya Silvi Lydia, B.Sc., M.Sc. sebagai Sekretaris Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara.
5. Bapak Prof. Dr. Muhammad Zarlis selaku Dosen Pembimbing Akademik yang telah memberikan bimbingan dan dukungan kepada penulis.
6. Bapak Drs. Agus Salim Harahap, M.Si. selaku Dosen Pembimbing I yang telah memberikan arahan dan bimbingan kepada penulis.
7. Bapak Drs. Dahlan Sitompul, M. Eng. selaku Dosen Pembimbing II yang telah memberikan arahan dan bimbingan kepada penulis.
8. Bapak M. Andri Budiman, S.T., M.Comp.Sc., M.E.M., selaku Dosen Pembanding I yang telah memberikan saran dan kritikan dalam penyempurnaan skripsi ini kepada penulis.
9. Bapak Sajadin Sembiring, S.Si, M.Comp. Sc. selaku Dosen Pembanding II yang telah memberikan saran dan kritikan dalam penyempurnaan skripsi ini kepada penulis.
10.Kedua orangtua penulis Bapak N. M. Saragih, Ibu F. Sinaga, Kakak Chika F. Saragih, Amd. yang telah memberikan dukungan berupa doa, harapan dan dukungan baik moril maupun materi serta terkhusus kepada Widanatasia Siahaan, S.Pd. yang telah memberikan semangat dan motivasi sehingga skripsi ini dapat terselesaikan.
11.Seluruh tenaga pengajar dan pegawai pada Fakultas Ilmu Komputer dan Teknologi Informasi USU, khususnya Program Studi S-1 Ilmu Komputer. 12.Teman-teman mahasiswa S-1 Ilmu Komputer Rivai H. Purba, Hengky P. F.
Gulo, Lorent O. Barus, S.Kom., Kurniawan W.A.P. Hutagaol, Yansen B. Simatupang, Gunalan Anggirasa, Timothy, S. Kom., Janwandi Ruliansen Sinaga S.Kom, dan semua rekan-rekan kuliah Stambuk 2010 yang telah berbagi kebersamaan selama berada di S-1 Ilmu Komputer.
13.Teman-teman komunitas LOGIC yang telah berbagi kebersamaan selama menyelesaikan skripsi ini.
Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan. Oleh karena itu penulis menerima kritik dan masukan dari semua pihak yang bersifat membangun dan menyempurnakan skripsi ini. Penulis berharap semoga skripsi ini bermanfaat bagi penulis sendiri pada khususnya dan pembaca pada umumnya.
Medan, 15 Januari 2015
ABSTRAK
Keamanan merupakan suatu kebutuhan penting dalam proses pertukaran data. Kriptografi adalah suatu cabang ilmu pengetahuan yang bertujuan mempelajari, meningkatkan, dan mengembangkan cara-cara dalam mengamankan suatu data. Suatu algoritma kriptografi dapat ditingkatkan keamanannya dengan cara digabungkan dengan algoritma kriptografi lainnya. Pada penelitian ini, penulis menggunakan Hill cipher sebagai salah satu algoritma kriptografi simetris yang digunakan untuk mengamankan citra digital dimana matriks kunci yang telah digunakan untuk proses enkripsi citra digital akan diamankan (dienkripsi) kembali dengan menggunakan algoritma Rivest-Shamir-Adleman (RSA) yang merupakan salah satu algoritma kriptografi asimetris. Rentang elemen-elemen matriks kunci yang digunakan pada algoritma Hill cipher adalah 0 sampai 550 dan panjang kunci n yang digunakan pada algoritma RSA adalah 112-bit. Metode pengecek bilangan prima yang digunakan adalah Lehmann Primality Test. Perubahan panjang rentang elemen matriks kunci yang akan diamankan dengan RSA tidak mempengaruhi lama waktu proses enkripsi dan dekripsi matriks kunci tersebut. Waktu yang digunakan untuk proses dekripsi cipher matrix lebih besar dibandingkan proses enkripsinya karena cipher matrix hasil enkripsi RSA memiliki ukuran yang lebih besar dari matriks kunci aslinya. Citra digital berwarna yang diuji memiliki tingkat keamanan yang lebih tinggi karena alur gambar tidak terlihat sama sekali. Namun dengan mengamankan kembali matriks kunci yang telah digunakan untuk enkripsi citra, maka keamanan citra digital yang digunakan akan semakin meningkat.
THE IMPLEMENTATION OF RIVEST-SHAMIR-ADLEMAN ALGORITHM FOR SECURING HILL CIPHER ALGORITHM KEY ON DIGITAL IMAGES
ABSTRACT
Security is an essential requirement in data-exchange process. Cryptography is a branch of science which studies, enhances, and developes all techniques to secure data. A crypthography algorithm security level will increase when combined with other algorithms. On this research, the author uses Hill cipher as a symetric algorithm whose the key is used for encrypting digital images, will be secured again (to be encrypted) with Rivest-Shamir-Adleman (RSA) algorithm, which one of the asymetric algorithm. The range of the key matrix elements used on Hill cipher is 0 to 550 and the length of the n-key used on RSA is 112-bit. Lehmann Primality Test is used as primality test method. The differences of key matrix element’s range that will be secured with RSA does not affect the encryption process and decryption process running times of the key matrix. The running time of cipher matrix decryption process is longer than the encryption process because the cipher matrix created by RSA encryption has bigger elements size than the original key matrix. Color digital images tested on this research, has better or high security level because the image patterns couldn’t be seen visually. But the images security level could be enhanced if the key matrix used for image encryption is secured again with RSA.
DAFTAR ISI
Hal.
PERSETUJUAN ii
PERNYATAAN iii
UCAPAN TERIMA KASIH iv
ABSTRAK vi
ABSTRACT vii
DAFTAR ISI viii
DAFTAR TABEL xi
DAFTAR GAMBAR xii
DAFTAR LAMPIRAN xiii
BAB I PENDAHULUAN
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 4
1.7 Sistematika Penulisan 5
BAB II TINJ AUAN PUSTAKA
2.1 Kriptografi 6
2.2 Algoritma Kriptografi Simetris 7
2.2.1 Algoritma Hill cipher 8
2.3 Algoritma Kriptografi Asimetris (Kunci Publik) 9 2.3.1 Algoritma Rivest-Shamir-Adleman (RSA) 10
2.4 Landasan Matematika Kriptografi 12
2.4.1 Bilangan Prima 12
2.4.2 Pembagi Bilangan Terbesar (PBB) 12
2.4.3 Relatif Prima 14
2.4.4 Aritmatika Modulo 14
2.4.5 Lehmann Primality Test 16
2.4.6 Invers Modulo 16
2.4.7 Euler Totient 18
2.5 Citra Digital 18
2.5.1 Citra PNG (Portable Network Graphics) 19
2.6 Penelitian yang relevan 20
BAB III ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem 21
3.1.2 Analisis Persyaratan 22 3.1.2.1 Persyaratan Fungsional 22 3.1.2.2 Persyaratan Non-Fungsional 23
3.1.3 Analisis Proses 23
3.2 Perancangan Sistem 24
3.2.1 Perancangan Flowchart 24
3.2.1.1 Flowchart Aplikasi 24 3.2.1.1.1 Flowchart proses pembangkitan
matriks kunci Hill cipher 26 3.2.1.1.2 Flowchart proses enkripsi plain image
dengan Hill cipher 27 3.2.1.1.3 Flowchart proses pembangkitan kunci RSA 28 3.2.1.1.4 Flowchart proses enkripsi matriks kunci dengan RSA 30 3.2.1.1.5 Flowchart proses dekripsi cipher matrix dengan RSA 31 3.2.1.1.6 Flowchart proses dekripsi cipher image dengan Hill cipher 31
3.2.2 Perancangan Unified Modeling Language (UML) 32
3.2.1.1 Use-case diagram 33
3.2.1.2 Sequence diagram 34
3.2.1.3 Activity diagram 36
3.2.3 Perancangan Interface Aplikasi 37 3.2.3.1 Rancangan interfaceform halaman utama 37 3.2.3.2 Rancangan interfaceform bantuan 40 3.2.3.3 Rancangan interfaceform tentang 41
BAB IV IMPLEMENTASI DAN PENGUJ IAN SISTEM
4.1 Implementasi 43
4.1.1 Form halaman utama 43 4.1.2 Form bantuan 45 4.1.3 Form tentang 45
4.2 Pengujian 46
4.2.1 Proses enkripsi citra digital dan enkripsi matriks kunci 47 4.2.2 Proses dekripsi cipher matrix dan dekripsi citra
terenkripsi 51
4.2.3 Proses pengujian algoritma Hill cipher untuk enkripsi citra digital berwarna 54 4.2.4 Proses pengujian tingkat keamanan dan lama proses
dekripsi algoritma Hill cipher pada citra digital 56 4.2.5 Proses pengujian tingkat keamanan citra digital terhadap
matriks kunci pada algoritma Hill cipher 59 4.2.6 Proses pengujian proses pembangkitan bilangan prima
dengan metode Lehmann 61
4.2.7 Proses pengujian waktu proses enkripsi dan dekripsi matriks kunci algoritma Hill cipher dengan algoritma
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan 66
5.2 Saran 67
DAFTAR TABEL
Hal.
Tabel 4.1 Perbandingan Pengujian Tingkat Keamanan dan Lama Proses Enkripsi
pada Citra Digital Berwarna 54
Tabel 4.2 Perbandingan Pengujian Tingkat Keamanan dan Lama Proses Dekripsi
pada Citra Digital Berwarna 56
Tabel 4.3 Perbandingan Ukuran dan Kualitas Citra Sebelum Enkripsi dan Citra
Setelah Dekripsi 58
Tabel 4.4 Perbandingan Tingkat Keamanan Citra Digital Berwarna terhadap
Matriks Kunci 60
Tabel 4.5 Perbandingan Panjang Kunci n dan Waktu Proses Pembangkitan
Kunci 62
Tabel 4.6 Perbandingan Waktu Proses Enkripsi dan Dekripsi terhadap
DAFTAR GAMBAR
Hal.
Gambar 2.1 Citra Digital dalam Piksel 19
Gambar 3.1 Flowchart Aplikasi 25
Gambar 3.2 Flowchart Proses Pembangkitan Matriks Kunci Algoritma
Hill Cipher 26
Gambar 3.3 Flowchart Enkripsi Plain Image dengan Algoritma Hill Cipher 27 Gambar 3.4 Flowchart Proses Pembangkitan Kunci RSA 29 Gambar 3.5 Flowchart Proses Enkripsi Matriks Kunci dengan RSA 30 Gambar 3.6 Flowchart Proses Dekripsi Cipher Matrix dengan RSA 31 Gambar 3.7 Flowchart Proses Dekripsi Cipher Image dengan Hill Cipher 32
Gambar 3.8 Use-Case Diagram Sistem 33
Gambar 3.9 Sequence Diagram Proses Enkripsi 35
Gambar 3.10 Sequence Diagram Proses Dekripsi 35
Gambar 3.11 Activity Diagram Proses Enkripsi 36
Gambar 3.12 Activity Diagram Proses Dekripsi 37
Gambar 3.13 Rancangan InterfaceForm Halaman Utama 38 Gambar 3.14 Rancangan Interface Form Bantuan 40 Gambar 3.15 Rancangan Interface Form Tentang 41
Gambar 4.1 Form Halaman Utama 44
Gambar 4.2 Form Bantuan 45
Gambar 4.3 Form Tentang 46
Gambar 4.4 Proses Pemilihan Citra Digital 47
Gambar 4.5 Proses Penampilan Citra Digital 48
Gambar 4.6 Proses Pembangkitan Matriks Kunci 49
Gambar 4.7 Proses Penampilan Citra Hasil Enkripsi 49 Gambar 4.8 Proses Pembangkitan Kunci Publik dan Kunci Privat 50
Gambar 4.9 Proses Enkripsi Matriks Kunci 51
Gambar 4.10 Proses Pemilihan Citra Digital Terenkripsi 52 Gambar 4.11 Proses Penampilan Citra Terenkripsi Hasil Inputan 52
Gambar 4.12 Proses Dekripsi Matriks Kunci 53
Gambar 4.13 Proses Dekripsi Matriks Kunci 54
Gambar 4.14 Plain5.png 60
Gambar 4.15 Perbandingan Kunci n dengan Waktu Proses 62 Gambar 4.16 Grafik Perbandingan Waktu Proses Enkripsi dan Dekripsi
DAFTAR LAMPIRAN
Hal.
LISTING PROGRAM A-1
ABSTRAK
Keamanan merupakan suatu kebutuhan penting dalam proses pertukaran data. Kriptografi adalah suatu cabang ilmu pengetahuan yang bertujuan mempelajari, meningkatkan, dan mengembangkan cara-cara dalam mengamankan suatu data. Suatu algoritma kriptografi dapat ditingkatkan keamanannya dengan cara digabungkan dengan algoritma kriptografi lainnya. Pada penelitian ini, penulis menggunakan Hill cipher sebagai salah satu algoritma kriptografi simetris yang digunakan untuk mengamankan citra digital dimana matriks kunci yang telah digunakan untuk proses enkripsi citra digital akan diamankan (dienkripsi) kembali dengan menggunakan algoritma Rivest-Shamir-Adleman (RSA) yang merupakan salah satu algoritma kriptografi asimetris. Rentang elemen-elemen matriks kunci yang digunakan pada algoritma Hill cipher adalah 0 sampai 550 dan panjang kunci n yang digunakan pada algoritma RSA adalah 112-bit. Metode pengecek bilangan prima yang digunakan adalah Lehmann Primality Test. Perubahan panjang rentang elemen matriks kunci yang akan diamankan dengan RSA tidak mempengaruhi lama waktu proses enkripsi dan dekripsi matriks kunci tersebut. Waktu yang digunakan untuk proses dekripsi cipher matrix lebih besar dibandingkan proses enkripsinya karena cipher matrix hasil enkripsi RSA memiliki ukuran yang lebih besar dari matriks kunci aslinya. Citra digital berwarna yang diuji memiliki tingkat keamanan yang lebih tinggi karena alur gambar tidak terlihat sama sekali. Namun dengan mengamankan kembali matriks kunci yang telah digunakan untuk enkripsi citra, maka keamanan citra digital yang digunakan akan semakin meningkat.
THE IMPLEMENTATION OF RIVEST-SHAMIR-ADLEMAN ALGORITHM FOR SECURING HILL CIPHER ALGORITHM KEY ON DIGITAL IMAGES
ABSTRACT
Security is an essential requirement in data-exchange process. Cryptography is a branch of science which studies, enhances, and developes all techniques to secure data. A crypthography algorithm security level will increase when combined with other algorithms. On this research, the author uses Hill cipher as a symetric algorithm whose the key is used for encrypting digital images, will be secured again (to be encrypted) with Rivest-Shamir-Adleman (RSA) algorithm, which one of the asymetric algorithm. The range of the key matrix elements used on Hill cipher is 0 to 550 and the length of the n-key used on RSA is 112-bit. Lehmann Primality Test is used as primality test method. The differences of key matrix element’s range that will be secured with RSA does not affect the encryption process and decryption process running times of the key matrix. The running time of cipher matrix decryption process is longer than the encryption process because the cipher matrix created by RSA encryption has bigger elements size than the original key matrix. Color digital images tested on this research, has better or high security level because the image patterns couldn’t be seen visually. But the images security level could be enhanced if the key matrix used for image encryption is secured again with RSA.
BAB I
PENDAHULUAN
1.1. Latar Belakang
Melalui pertumbuhan perkembangan aplikasi multimedia yang semakin pesat, keamanan merupakan isu penting dalam komunikasi dan penyimpanan citra digital, dan enkripsi adalah salah satu cara untuk menjamin keamanan. Teknik enkripsi citra digital dapat mengubah citra asli menjadi citra lain yang sulit untuk dimengerti untuk menjaga citra tersebut tetap rahasia antar pengguna, dengan kata lain, adalah suatu hal yang penting bahwa tidak seorang pun yang dapat mengetahui isi dari data tersebut tanpa memiliki kunci untuk proses pendekripsian. Selanjutnya, keamanan khusus dan dapat dipercaya pada penyimpanan dan pengiriman citra digital dibutuhkan dalam banyak aplikasi, seperti TV Kabel, album fotografi pribadi online, sistem pencitraan medis, komunikasi citra militer, dan video conference rahasia, dan lain-lain. Untuk memenuhi kebutuhan tersebut, banyak metode enkripsi citra yang telah di ajukan (Patel & Belani, 2011).
apabila jumlah pelaku penukaran bertambah, khususnya apabila terdapat lebih dari satu kunci untuk tiap pelaku (Encryption, 2014).
Kriptografi kunci publik (asimetris) merupakan solusi terhadap masalah manajemen kunci kriptografi simetris. Kriptografi kunci publik menyederhanakan manajemen kunci simetris pada titik dimana kunci tersebut tidak hanya dapat digunakan oleh tiap pelaku pertukaran namun juga pada tiap sesi pertukaran antar pelaku (Encryption, 2014). Rivest - Shamir - Addleman (RSA) sebagai salah satu kriptografi kunci publik dimana keamanannya terletak pada kesulitan dalam memfaktorisasi bilangan besar. Kunci publik dan kunci privat adalah fungsi dari pasangan bilangan prima yang besar (100 sampai 200 digit atau lebih besar). Proses pengembalian plainteks dari kunci publik dan cipherteks diperkirakan sama dengan memfaktorkan hasil kali dari dua buah bilangan prima (Schneier, 1996). Pada penelitian ini RSA digunakan untuk mengamankan kembali kunci algoritma Hill cipher yang berupa matriks yang pada sebelumnya digunakan untuk mengenkripsi citra digital.
Berdasarkan uraian di atas, maka penulis bermaksud untuk mempelajari algoritma Hill cipher dan algoritma RSA dengan merancang suatu perangkat lunak sekaligus untuk mengimplementasikan algoritma Hill cipher dalam pengamanan citra digital dan algoritma RSA dalam pengamanan kunci. Oleh sebab itu, penulis mengambil tugas akhir dengan judul “Implementasi Algoritma Rivest-Shamir-Adleman untuk Pengamanan Kunci Algoritma Hill cipher pada Citra Digital”.
1. 2. Rumusan Masalah
1.3. Batasan Masalah
Batasan masalah yang dapat diambil dari latar belakang di atas adalah :
1. Bahasa pemrograman yang digunakan dalam aplikasi ini adalah bahasa pemrograman Python dan Ms. Visual C#.
2. Tools yang digunakan adalah Wing IDE 101 dan Ms. Visual Studio 2013. 3. Kunci yang digunakan pada algoritma Hill cipher berupa matriks berukuran
3 x 3 dengan rentang elemen 0 - 550.
4. Panjang kunci RSA yang digunakan adalah sebesar 112 - bit.
5. Metode penguji bilangan prima yang digunakan adalah Lehmann Primality Test.
6. Citra digital yang digunakan adalah citra asli dengan format PNG (.png).
1.4. Tujuan Penelitian
Tujuan penelitian ini adalah untuk meningkatkan keamanan suatu citra digital dengan menerapkan algoritma RSA untuk mengamankan kunci dari algoritma Hill cipher dimana Hill cipher sebelumnya digunakan untuk mengenkripsi suatu citra digital.
1.5. Manfaat Penelitian
Manfaat dari penelitian ini antara lain adalah :
1. Penelitian ini diharapkan menghasilkan suatu aplikasi yang mampu meningkatkan keamanan suatu citra digital dengan menggabungkan algoritma simetris Hill cipher dan Rivest-Shamir-Adleman.
1.6. Metodologi Penelitian
Metodologi penelitian yang akan digunakan adalah: 1. Studi Literatur
Peninjauan terhadap buku-buku, artikel-artikel, jurnal-jurnal maupun hasil penelitian terdahulu yang berkaitan dengan algoritma kriptografi pada citra digital, algoritma Hill cipher dan RSA, dan metode pembangkit bilangan prima Lehmann Primality Test.
2. Analisis dan Perancangan
Dengan adanya rumusan dan batasan masalah, kebutuhan perancangan dianalisis disertai pembuatan flowchart, diagram Unified Modeling Language (UML), dan design interface.
3. Implementasi
Implementasi berupa aplikasi yang mampu mengenkripsi citra digital berformat PNG dengan menggunakan algoritma Hill cipher dan kemudian mengamankan kembali kunci algoritma Hill cipher tersebut dengan algoritma RSA sehingga keamanannya lebih tinggi begitu juga dengan proses dekripsinya.
4. Pengujian
Metode ini dilaksanakan dengan melakukan pengujian terhadap aplikasi untuk mengenkripsi / mendekripsi citra digital berupa pencarian bug atau kesalahan program.
5. Dokumentasi dan Laporan Akhir
1.7. Sistematika Penulisan
Skripsi ini terbagi menjadi beberapa bab yang disusun secara sistematis, yaitu : BAB I PENDAHULUAN
Bab ini akan menjelaskan mengenai latar belakang penilitian judul skripsi “Implementasi Algoritma Rivest-Shamir-Adleman untuk Pengamanan Kunci Algoritma Hill cipher pada Citra Digital.”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, tinjauan pustaka, dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisi teori – teori yang digunakan sebagai bahan rujukan dalam penelitian ini. Adapun teori – teori tersebut antara lain : Teori dasar kriptografi, algoritma kriptografi simetris, algoritma Hill cipher, algoritma kriptografi asimetris, algoritma Rivest-Shamir-Adleman (RSA), landasan – landasan matematika untuk kriptografi, dan teori dasar citra digital.
BAB III ANALISIS DAN PERANCANGAN
Bab ini berisi pembahasan mengenai cara kerja algoritma Hill Cipher pada citra digital dan pengamanan kuncinya dengan menggunakan algoritma Rivest-Shamir-Adleman (RSA) yang terdiri dari flowchart, Unified Modeling Language (UML) serta perancangan antarmuka dari aplikasi.
BAB IV IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi implementasi dan pembahasan mengenai cara kerja sistem sesuai dengan perancangan. Kemudian melakukan pengujian sistem.
BAB V KESIMPULAN DAN SARAN
BAB II
TINJ AUAN PUSTAKA
2.1.
Kriptografi
Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu
kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki
kunci dekripsi. Dekripsi menggunakan kunci dekripsi untuk mendapatkan data asli
kembali. Proses enkripsi dilakukan menggunakan suatu algoritma dengan beberapa
parameter. Biasanya algoritma tidak dirahasiakan, bahkan enkripsi yang mengandalkan
kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia terletak di beberapa
parameter yang digunakan, jadi kunci ditentukan oleh parameter. Parameter yang
menentukan kunci dekripsi itulah yang harus dirahasiakan (parameter menjadi ekuivalen
dengan kunci) (Kromodimoeljo, 2010).
Dalam kriptografi klasik, teknik enkripsi yang digunakan adalah enkripsi simetris
dimana kunci dekripsi sama dengan kunci enkripsi. Untuk kriptografi kunci publik,
diperlukan teknik enkripsi asimetris dimana kunci dekripsi tidak sama dengan kunci
enkripsi. Enkripsi, dekripsi dan pembuatan kunci untuk teknik enkripsi asimetris
memerlukan komputasi yang lebih intensif dibandingkan enkripsi simetris, karena
enkripsi asimetris menggunakan bilangan - bilangan yang sangat besar. Namun, walaupun
enkripsi asimetris lebih “mahal" dibandingkan enkripsi simetris, kriptografi kunci publik
Menurut Schneier (1996), dalam pemenuhan kerahasiaan, kriptografi sering digunakan
untuk :
1.
Authentication.
Memungkinkan penerima pesan menegaskan keaslian dari data
tersebut; penyusup tidak dapat menyamar sebagai orang lain.
2.
Integrity.
Memungkinkan penerima pesan memeriksa bahwa data tersebut tidak
dimodifikasi selama pengiriman; penyusup tidak dapat mengganti pesan yang
salah dengan yang asli.
3.
Non-repudiation.
Pengirim tidak dapat menyangkal telah melakukan pengiriman.
2.2.
Algoritma Kriptografi Simetris
Algoritma simetris, biasanya disebut juga sebagai algoritma konvensional, merupakan
algoritma dimana kunci enkripsi dapat dihitung dari kunci dekripsi dan sebaliknya. Pada
kebanyakan algoritma simetris, kunci enkripsi dan dekripsi nya adalah sama. Algoritma
ini, disebut juga algoritma kunci-privat (
secret-key
), algoritma kunci-tunggal (
single-key
),
algoritma satu kunci (
one-key
), dimana pengirim dan penerima sepakat dengan sebuah
kunci sebelum berkomunikasi dengan aman. Keamanan algoritma simetris terletak pada
kunci; mengumumkan kunci berarti siapa saja dapat mengenkripsi dan mendekripsi
pesan. Sepanjang komunikasi yang diharapkan agar aman, maka kunci harus dijaga tetap
aman (Schneier, 1996).
Menurut Schneier (1996), enkripsi dan dekripsi dengan menggunakan algoritma
simetris disimbolkan dengan :
E
K(M) = C
2.2.1. Algoritma Hill cipher
Hill cipher
pertama kali dibuat pada tahun 1929 oleh penemunya, seorang
matematikawan Lester S. Hill, dalam jurnal
The American Mathematical Monthly
.
Hill
cipher
merupakan cipher
polygraphic
pertama.
Cipher
polygraphic
adalah
cipher
dimana
plainteks dibagi menjadi grup-grup karakter yang berdekatan dengan panjang tetap
n
, dan
kemudian tiap grup diubah ke grup lain dengan
n
karakter. Fitur
polygraphic
menambah
kecepatan dan kemampuan transfer
Hill cipher.
Di samping itu, keuntungan lainnya
adalah pada enkripsi data misalnya kemampuan pertahanannya terhadap analisis
frekuensi. Inti dari
Hill cipher
adalah manipulasi matriks
.
Rumus aljabar linier nya adalah
C = K
x
P
(mod
m
)
dimana
C
adalah adalah blok cipherteks,
P
adalah blok plainteks dan
K
adalah kunci.
Kunci
K
berbentuk matriks. Jadi, untuk dekripsi, kunci matriks invers.
K
-1dibutuhkan
(Rahman et al, 2013).
Contoh :
Contoh di bawah ini akan menggunakan beberapa aljabar linier dan beberapa teori
bilangan. Kunci untuk
Hill cipher
adalah sebuah matriks, misalnya:
2 4 5
9 2 1
3 17 7
Pada kasus di atas, telah ditentukan bahwa ukuran matriks tersebut adalah 3 x 3,
namun ukurannya dapat diubah-ubah (matriks harus tetap berbentuk matriks persegi).
pesan ini perlu dibagi menjadi potongan 3 huruf. Sekarang diambil 3 huruf pertama dari
plainteks, “ATT” dan buat suatu vector yang berhubungan dengan huruf tersebut (ganti A
dengan 0, B dengan 1 … Z dengan 25 dsb) untuk mendapatkan: [0 19 19] (sama dengan
[‘A’,’T’,’T’]).
Untuk mendapatkan cipherteks, dilakukan perkalian matriks :
2 4 5
9 2 1
3 17 7
0 19 19
=
171 57 456( mod 26 ) =
15 5 14
= ‘PFO’
Proses ini dilakukan untuk semua 3 huruf blok dari plainteks. Plainteks dapat
ditambah dengan beberapa huruf untuk memastikan setiap blok genap memiliki 3 huruf.
Untuk dekripsi, dibutuhkan invers matriks modulo 26 yang akan digunakan
sebagai kunci dekripsi, dimana ‘PFO’ akan dikembalikan ke ‘ATT’. Jika matriks 3 x 3
disebut
K
, maka kunci dekripsinya adalah matriks 3 x 3 ,
K
-1, yang adalah inverse matriks
K
(Hill Cipher, 2014).
K
-115 5 14
( mod 26 ) =
0 19 19
= ‘ATT’
2.3.
Algoritma Kriptografi Asimetris (Kunci Publik)
Algoritma kunci publik (disebut juga algoritma asimetris) dirancang sehingga kunci yang
digunakan untuk enkripsi berbeda dari kunci yang digunakan untuk dekripsi. Selanjutnya,
kunci dekripsi tidak dapat dihitung dengan kunci enkripsi (setidaknya dengan waktu yang
cukup lama). Algoritma ini disebut kunci publik karena kunci enkripsi dapat
diberitahukan ke publik : Orang asing yang menggunakan kunci enkripsi untuk
menengkripsi pesan, namun hanya orang-orang tertentu saja dengan kunci dekripsi yang
cocok dapat mendekripsi pesan. Dalam sistem ini, kunci enkripsi sering disebut sebagai
disebut kunci rahasia, tetapi untuk menghindari kerancuan dengan algoritma simetris,
istilah tersebut tidak digunakan (Schneier, 1996).
Enkripsi menggunakan kunci publik
K
disimbolkan :
E
K(M) = C
Walaupun kunci publik dan kunci privat berbeda, dekripsi dengan kunci privat yang
cocok disimbolkan dengan :
D
K(C) = M
Menurut Schneier (1996), terkadang, pesan akan dienkripsi dengan kunci privat
dan didekripsi dengan kunci publik; ini digunakan pada tanda tangan digital. Walaupun
kerancuan mungkin terjadi, operasi ini disimbolkan dengan:
E
K(M) = C
D
K(C) = M
Keterangan :
E
= Fungsi enkripsi
D
= Fungsi dekripsi
C
= Cipherteks
M
= Pesan (
Message
) atau plainteks
2.3.1. Algoritma Rivest-Shamir-Adleman (RSA)
RSA diciptakan oleh Ron Rivest, Adi Shamir, dan Leonard Adleman, sesuai dengan nama
penemunya, pada tahun 1970-an. Rancangan ini bergantung pada kerumitan dalam
memfaktorisasi bilangan bulat (integer) yang berbeda dari penyelesaian algoritma diskrit
Pembangkitan kunci algoritma RSA antara lain :
1.
Pilih dua bilangan prima acak ukuran besar,
p
dan
q
.
2.
Hitung modulus sistem
n = p * q
3.
Pilih kunci enkripsi
e
secara acak
Dimana 1 <
e
<
ϕ
(
n
), gcd (
e
,
ϕ
(
n
)) = 1(dimana
ϕ
(
n
) = (p – 1)(q – 1))
4.
Selesaikan rumus berikut untuk menentukan kunci dekripsi
d
e * d
= 1 (mod
ϕ
(
n
)) and 0 ≤
d ≤ n
5.
Kemudian tiap pengguna memberikan kunci enkripsi publik :
PU =
{
e, n
} dan
menyimpan kunci dekripsi :
PR =
{
d, p, q
}.
Jika m adalah pesan yang akan dikirim, maka rumus enkripsinya adalah :
•
gunakan kunci publik
PU =
{
e, n
}
•
c
=
m
e(mod
n
), dimana 0 ≤
m
˂
n
dan untuk mendekripsi digunakan rumus :
•
gunakan kunci privat
PR =
{
d, p, q
}.
•
m = c
d(mod
n
).
Contoh :
Ruth membuat sistem kunci publiknya dengan pertama-tama memilih dua
bilangan prima,
p
= 17 dan
q
= 11. Nilai
n
= 187 dan
ϕ
(
n
) = 16 * 10 = 160. Dia
membutuhkan sebuah
e
dimana gcd(
e,
160) = 1 dan memilih
e =
7.
Sekarang dia harus menemukan
d
, invers
e
modulo
ϕ
(
n
). Dia menyadari bahwa 23
* 7 = 161 = 10 * 16 + 1 ( atau menggunakan algoritma
Euclidean
), dan maka
d
= 23.
2.4.
Landasan Matematika Kriptografi
2.4.1. Bilangan Prima
Bilangan prima adalah bilangan bulat positif yang lebih besar dari 1 yang hanya habis
dibagi oleh 1 dan dirinya sendiri. Sebagai contoh, 23 adalah bilangan prima karena ia
hanya habis dibagi oleh 1 dan 23. Karena bilangan prima harus lebih besar dari 1, maka
barisan bilangan dimulai dari 2, yaitu 2, 3, 5, 7, 11, 13, dst. Seluruh bilangan prima adalah
bilangan ganjil, kecuali 2 yang merupakan bilangan genap (Munir, 2007).
2.4.2. Pembagi Bilangan Terbesar (PBB)
Dua buah bilangan bulat dapat memiliki faktor pembagi yang sama. Misalkan
a
dan
b
adalah dua buah bilangan bulat tidak nol. Pembagi bersama terbesar (PBB) dari
a
dan
b
adalah bilangan bulat terbesar
d
sedemikian sehingga
d|a
dan
d|b
. Dalam hal ini kita
nyatakan bahwa PBB (
a,b
) =
d
. Misalnya 45 memiliki faktor pembagi 1, 3, 5, 9, 15, dan
45 sendiri; sedangkan 36 memiliki faktor pembagi 1, 2, 3, 4, 9, 12, 18, dan 36 sendiri.
Faktor pembagi bersama dari 45 dan 36 adalah 1, 3, 9, yang terbesar adalah 9 sehingga
disimpulkan PBB(45, 36) = 9 (Munir, 2007). Dalam menentukan PBB perlu digunakan
suatu algoritma yang lebih baik yaitu dengan algoritma
Euclidean
.
Menurut Munir (2007), langkah-langkah dalam algoritma
Euclidean
adalah sebagai
berikut :
1.
Jika
n
= 0 maka
2.
m
adalah PBB(
m, n
);
3.
stop.
4.
Bagilah
m
dengan
n
dan misalkan
r
adalah sisanya .
5.
Ganti nilai
m
dengan nilai
n
dan nilai
n
dengan nilai
r
, lalu ulang kembali ke
langkah 1.
Contoh:
PBB dari 80 dan 12 dicari dengan algoritma
Euclidean
sebagai berikut:
m
= 80,
n
= 12 dan dipenuhi syarat
m ≥ n
Karena
m
= 12 ≠ 0, maka langkah instruksi 2 dikerjakan : 80 dibagi 12 memberikan hasil
6 dan sisa
r
= 8,
80 = 6 . 12 + 8
Kerjakan langkah instruksi 3:
m
= 12,
n
= 8
Kembali ke langkah instruksi 1, karena
n
= 8 ≠ 0, maka langkah instruksi 2 dikerjakan: 12
dibagi 8 memberikan hasil 1 dan sisa
r
= 4,
12 = 1 . 8 + 4
Kerjakan langkah instruksi 3:
m
= 8,
n
= 4
Kembali ke langkah instruksi 1, karena
b
= 4 ≠ 0, maka langkah instruksi 2 dikerjakan : 8
dibagi 4 memberikan hasil 2 dan sisa
r
= 0,
8 = 2 . 4 + 0
Kerjakan langkah instruksi 3:
m =
4
, n =
0
Kembali ke langkah instruksi 1, karena
b
= 0, maka PBB dari 80 dan 12 adalah
Secara ringkas proses perhitungan dengan algoritma
Euclidean
di atas dinyatakn
dalam runtunan pembagian berikut ini:
80 = 6 . 12 + 8
12 = 1 . 8 + 4
8 = 2 . 4 + 0
Sisa pembagian terakhir sebelum 0 adalah 4, maka PBB(80, 12) = 4 (Munir, 2007).
2.4.3. Relatif Prima
Dua buah bilangan bulat
a
dan
b
dikatakan relatif prima (
relatively prime
) jika PBB(
a, b
)
= 1. Sebagai contoh : 20 dan 3 relatif prima sebab PBB (20, 3) = 1. Tetapi 20 dan 5 tidak
relatif prima sebab PBB(20, 5) = 5 ≠ 1 (Munir, 2007).
Jika
a
dan
b
relatif prima, maka kita dapat menemukan bilangan bulat
m
dan
n
sedemikian sehingga
ma
+
nb
= 1
Contoh :
Bilangan 20 dan 3 adalah relatif prima karena PBB(20, 3) = 1, atau dapat ditulis
2 . 20 + (-13) . 3 = 1
Dengan
m
= 2 dan
n
= -13. Tetapi 20 dan 5 tidak relatif prima karena PBB(20, 5)
= 5 ≠ 1 sehingga 20 dan 5 tidak dapat dinyatakan dalam
m
. 20 +
n
. 5 = 1 (Munir, 2007).
2.4.4. Aritmatika Modulo
Aritmatika modulo (modular arithmetic) memainkan peranan yang penting dalam
komputasi integer, khususnya pada aplikasi kriptografi. Operator yang digunakan pada
dibagi 5 memberikan hasil = 4 dan sisa = 3, sehingga kita tulis 23 mod 5 = 3 (Munir,
2007).
Notasi :
a
mod
m = r
sedemikian sehingga
a = mq + r
, dengan
0 ≤ r ˂ m
.
Bilangan
m
disebut modulus atau modulo, dan hasil aritmatika modulo
m
terletak di
dalam himpunan {0, 1, 2, ...,
m
- 1 }.
Contoh:
Beberapa hasil operasi dengan operator modulo:
•
23 mod 5 = 3 (karena 23 dibagi 5 memberikan hasil (
q
) = 4 dan sisa (
r
) = 3, atau
ditulis sebagai 23 = 5 . 4 + 3)
•
27 mod 3 = 0
( 27 = 3 . 9 + 0)
•
6 mod 8 = 6
(6 = 8 . 0 + 6)
•
0 mod 12 = 12
(0 = 12 . 0 + 12)
•
- 41 mod 9 = 4
( - 41 = 9 (- 5) + 4)
•
- 39 mod 13 = 0
(- 39 = 13 (- 3) + 0)
Penjelasan untuk (
v
): karena
a
negatif, bagi |
a
| dengan m mendapatkan sisa
r’
.
Maka
a
mod
m = m – r’
bila
r’
≠0. Jadi |- 41| mod 9 = 5, sehingga – 41 mod 9 = 9 – 5 = 4.
Jika
a
mod
m
= 0, maka dikatakan bahwa
a
adalah kelipatan dari
m
, yaitu a habis
dibagi dengan
m
. Misalnya pada 27 mod 3 = 0, berarti 27 adalah kelipatan 3 (Munir,
2.4.5. Lehmann Primality Test
Menurut Schneier (1996), berikut merupakan pengujian apakah
p
adalah prima:
1.
Pilih sebuah bilangan acak
a
kurang dari
p
.
2.
Hitung
a
(p-1)/2mod
p
.
3.
Jika
a
(p-1)/2≠ 1 atau -1 (mod
p
), maka
p
bukan bilangan prima.
4.
Jika
a
(p-1)/2= 1 atau -1 (mod
p
), maka kemungkinan
p
bukan prima lebih dari 50%.
Demikian sehingga, kemungkinan acak
a
sebagai
witness
pada bilangan
p
sebagai
bilangan tidak prima. Ulangi pengujian
t
kali. Jika perhitungan menghasilkan 1 atau -1,
tetapi tidak selalu menghasilkan 1, maka tingkat kesalahan kemungkinan
p
sebagai prima
dengan (1/2)
t.
Contoh :
Misal sebuah bilangan bulat positif
p
yang akan di uji adalah 37. Kemudian dipilih
a
adalah 7. Hitung
a
(p-1)/2mod
p
, dimana hasilnya adalah 1. Maka,
p
= 37 dianggap
sebagai bilangan prima dengan kemungkinan kesalahan 50%.
2.4.6. Invers Modulo
Apabila suatu bilangan dikalikan dengan inversnya hasilnya adalah 1. Dari aritmatika
dasar diketahui bahwa:
•
Invers dari bilangan
A
adalah
I
/
A
dimana
A * I
/
A
= 1
Contoh: invers dari 5 adalah 1/5
•
Semua bilangan riil lebih besar dari 0 memiliki invers
•
Pengalian sebuah bilangan dengan invers dari
A
sama dengan pembagian dengan
A
Dalam aritmatika modulo tidak terdapat operasi pembagian. Tetapi terdapat invers
modulo.
•
Invers modulo dari
A
(mod
C
) adalah
A
-1•
(
A * A
-1) ≡ 1 (mod
C
) atau ekivalen dengan (
A * A
-1) mod
C
= 1
•
Hanya bilangan yang relatif prima terhadap
C
(bilangan yang tidak memiliki
faktor prima yang sama dengan
C
) memiliki invers modulo (mod
C
)
Metode biasa yang digunakan untuk menemukan invers modulo
A (
mod
C)
adalah:
Langkah 1. Hitung
A * B
mod
C
untuk
B
nilainya 0 sampai (
C
– 1)
Langkah 2. Invers modulo dari
A
mod
C
adalah
B
dimana nilainya didapat dari
A * B
mod
C
= 1
Perlu diketahui bahwa
B
mod
C
hanya akan mendapatkan nilai integer 0 sampai
C
– 1,
jadi pengujian dengan nilai
B
yang lebih besar hanya akan membuat perulangan.
Contoh:
A = 3 , C = 7
Langkah 1. Hitung
A * B
mod
C
untuk
B
nilainya 0 sampai
C - 1
3 * 0 ≡ 0 (mod 7)
3 * 1 ≡ 3 (mod 7)
3 * 2 ≡ 6 (mod 7)
3 * 3 ≡ 9 ≡ 2 (mod 7)
3 * 4 ≡ 12 ≡ 5 (mod 7)
3 * 5 ≡ 15 (mod 7) ≡
1
(mod 7)
invers ditemukan.
Langkah 2. Invers modulo dari
A
mod
C
adalah
B
dengan nilai yang membuat
A * B
mod
C
= 1.
5 adalah invers modulo dari 3 mod 7 karena 5 * 3 mod 7 = 1 (Modular Inverse, 2014).
2.4.7. Euler Totient
Jika
n
≥ 1 adalah integer. Maka dapat didefinisikan Fungis
Euler Phi
ϕ
dengan
ϕ
(
n
) =
jumlah bilangan bulat (integer) positif yang kurang dari
n
dan relatif prima dengan
n
.
Contoh :
ϕ
(1)
=
1
, ϕ
(2)
=
1
, ϕ
(3)
=
2
, ϕ
(4)
=
2
, ϕ
(5)
=
4
, ϕ
(6)
=
2
, ϕ
(15)
=
8
ϕ
(15)
=
8
,
artinya terdapat 8 bilangan bulat positif yang kurang dari 15 dan relatif prima
dengan 15 yaitu 1, 2, 4, 7, 8, 11, 13, 14 (Sizemore, 2012).
Relatif prima atau koprima adalah himpunan bilangan dimana Faktor Pembagi Terbesar
(GCD) adalah 1 (Turner, 2008).
2.5.
Citr a Digital
Citra digital adalah hasil potret elektronik yang diambil dari suatu pemandangan atau di
scan
dari dokumen, seperti fotografi, manuskrip, cetak teks, dan karya seni. Citra digital
dicontohkan dan dipetakan sebagai suatu gabungan titik-titik atau elemen gambar
(piksel). Tiap piksel terdiri dari nilai warna (hitam, putih, derajat keabuan atau warna),
yang direpresentasikan dalam kode biner (0 atau 1). Binari digit (“bit”) untuk tiap piksel
disimpan dalam suatu rangkaian oleh komputer dan sering diperkecil ke dalam
representasi matematis (dikompresi). Kemudian bit-bit tersebut diinterpretasi dan dibaca
Gambar 2.1. Citra digital dalam piksel
(Cornell University Library, 2003).
Nilai piksel : seperti ditunjukkan pada citra bitonal diatas, tipa piksel terdiri dari nilai
tonal, contohnya 0 untuk hitam dan 1 untuk putih.
Format file pada citra digital terdiri dari bit – bit yang terdapat pada citra tersebut
dan informasi
header
tentang bagaimana membaca dan meninterpretasi file tersebut.
Format file dibedakan berdasarkan resolusi, kedalaman bit, warna yang dapat diproses,
dan mendukung kompresi dan meta data (Cornell University Library, 2003).
2.5.1. Citra PNG (Portable Network Graphics)
Format PNG (dilafalkan “
PING
”) dirancang untuk menggantikan format lama GIF, dan
mengembangkan format TIFF. Format ini menggunakan kompresi
lossless
, yang berarti
tidak ada citra yang hilang saat penyimpanan atau penampilan gambar. Format PNG tidak
memiliki hak paten dan dibaca dan ditulis secara bebas oleh pengembang
software
da
n
webmaster
. PNG tidak hanya dapat disimpan sebagai 8 bit, tetapi juga 24 bit dan
mencapai 64 bit. PNG memiliki level dukungan transparansi yang lebih tinggi. Kelebihan
lain dari PNG dibandingkan GIF secara jelas adalah ukuran PNG yang 20% lebih kecil
2.6.
Penelitian yang relevan
Adapun penelitian-penelitian yang relevan terhadap penelitian ini adalah :
1.
Pada penelitian yang telah dilakukan oleh Bibhudendra Acharya dkk (2010)
dengan judul “Image Encryption Using Advanced
Hill cipher
Algorithm”
menyimpulkan bahwa matriks yang digunakan sebagai kunci pada
Hill cipher
harus memiliki invers, jika tidak maka tidak dapat digunakan untuk mengenkripsi
atau mendeskripsi teks atau gambar. Dalam jurnal ini matriks
involuntary
invertible
di gunakan karena matriks dan inversnya memiliki bentuk yang sama
sehingga waktu yang dibutuhkan untuk proses enkripsi dan dekripsi akan semakin
cepat. Dalam penerapannya pada citra digital, matriks
involuntary invertible
mampu mengenkripsi seluruh citra sedangkan matriks biasa tidak dapat
mengenkripsi wilayah citra yang memiliki warna yang sama atau abu-abu.
2.
Pada penelitian yang dilakukan oleh Arya Widyanarko (2007), dengan judul
“Studi dan Analisis mengenai
Hill cipher
, Teknik Kriptanalisis dan Upaya
Penanggulangannya” menyimpulkan bahwa matriks kunci
Hill cipher
harus
merupakan matriks yang
invertible
.
Hill cipher
kuat dalam menghadapi
ciphertext-only attack
namun lemah terhadap
known-plaintext attack
. Dalam
jurnal ini penulis menggunakan
Chaining Hill cipher
yang dapat mempersulit
pemecahan dengan teknik
known-plaintext attack
.
3.
Pada penelitian yang dilakukan oleh Hersatoto Listiyono (2009), dengan judul
“Implementasi Algoritma Kunci Publik pada Algoritma RSA” menyimpulkan
bahwa pemilihan p dan q untuk mendapatkan p * q = M haruslah sebuah bilangan
yang sangat besar sehingga sulit untuk melakukan pemfaktoran bilangan.
Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang
besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh
kunci
private
. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima
belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan
BAB III
ANALISIS DAN PERANCANGAN
3.1. Analisis Sistem
Dalam tahap perancangan diperlukan analisis sistem yang akan dibangun. Analisis sistem mendeskripsikan fase-fase awal pengembangan sistem. Fase awal dalam analisis sistem ini adalah fase analisis masalah yang bertujuan untuk mempelajari dan memahami masalah yang akan diselesaikan dengan menggunakan sistem ini. Kemudian dilanjutkan dengan fase analisis persyaratan yang akan memenuhi kebutuhan dan permintaan pengguna (user). Analisis selanjutnya dan merupakan analisis terakhir adalah analisis proses yang berisi cara kerja dari sistem yang akan dibuat.
3.1.1. Analisis Masalah
Pendistribusian data antar pengguna membutuhkan jaminan keamanan dimana data yang dikirim tidak dapat dicuri, dihapus, diubah isinya, ataupun dirusak sehingga dibutuhkan suatu teknik untuk mengamankannya. Kriptografi adalah salah satu teknik untuk mengamankan data dengan cara mengubah bentuk data menjadi bentuk yang tidak dapat dikenali sehingga pihak asing hanya dapat mengetahui isi data tersebut dengan memecahkan kunci algoritma kriptografi.
Kunci Hill cipher yang merupakan matriks berukuran 3x3 diamankan kembali dengan menggunakan algoritma Rivest-Shamir-Adleman (RSA). Masukan algoritma RSA adalah berupa 2 bilangan prima acak berbeda. Dengan algoritma RSA kunci matriks algoritma Hill cipher dienkripsi sehingga matriks kunci menjadi acak dan berbeda dengan bentuk aslinya.
Citra digital terdiri dari piksel-piksel yang direpresentasikan dengan kombinasi warna merah (R), hijau (G), dan biru (B). Algoritma Hill cipher digunakan untuk mengenkripsi citra digital sehingga citra yang dihasilkan akan berbeda dengan aslinya. Untuk mengembalikan citra ke bentuk asli, maka dibutuhkan nilai d dari algoritma RSA dan matriks cipher hasil enkripsi dari algoritma RSA.
3.1.2. Analisis Persyaratan
Analisis persyaratan terdiri dari persyaratan fungsional dan non-fungsional. Persyaratan fungsional berisi persyaratan pokok dari suatu sistem dimana persyaratan tersebut wajib ada atau disediakan dalam sistem tersebut. Sedangkan persyaratan non-fungsional berupa persyaratan tambahan yang dapat menunjang kinerja dari persyaratan fungsional.
3.1.2.1. Persyaratan Fungsional
Adapun persyaratan fungsional dari sistem ini adalah sebagai berikut:
1. Citra digital yang akan dienkripsi adalah citra digital dengan format PNG. 2. Elemen matriks kunci yang akan dibangkitkan sebagai kunci pada algoritma
Hill cipher adalah bilangan bulat positif yaitu 0 sampai 550. 3. Citra digital yang dienkripsi disimpan dalam format PNG.
3.1.2.2. Persyaratan Non-fungsional
Adapun persyaratan non-fungsional pada sistem ini adalah sebagai berikut : 1. Performa
Perangkat lunak yang dibangun harus dapat menunjukkan hasil dari proses enkripsi dan dekripsi citra digital maupun kunci yang dilakukan oleh sistem. 2. Mudah dipelajari dan digunakan
Perangkat lunak harus mudah digunakan dan dipelajari. 3. Hemat biaya
Perangkat lunak yang dibangun tidak memerlukan peralatan tambahan ataupun perangkat pendukung dalam proses eksekusinya.
4. Dokumentasi
Perangkat lunak yang akan dibangun mampu menyimpan citra digital yang dienkripsi dan kunci yang dienkripsi.
5. Manajemen kualitas
Perangkat lunak yang akan dibangun harus memiliki kualitas yang baik yaitu proses enkripsi dan dekripsi citra digital dan kunci relatif cepat.
6. Kontrol
Perangkat lunak harus mampu memanajemen proses error yang terjadi pada saat penggunaan.
3.1.3. Analisis Proses
data pada komputer kemudian akan dikirimkan kepada penerima pesan. Jika penerima pesan ingin menggunakan dan mengetahui pesan citra yang dikirim maka penerima harus mendeskripsikan cipher matrix tersebut.
3.2. Per ancangan Sistem
Dalam perancangan sistem ini yang pertama dilakukan adalah pembuatan flowchart sistem, kemudian dilanjutkan dengan pembuatan diagram Unified Modeling Language (UML) dari sistem.
3.2.1. Perancangan Flowchart
Pada bagian ini akan dijelaskan langkah-langkah pembuatan sistem dalam flowchart sistem kemudian akan dijelaskan dalam bagian-bagian flowchart algoritma.
3.2.1.1. Flowchart Aplikasi
Dalam aplikasi ini terdapat dua algoritma yang digunakan yaitu algoritma Hill cipher dan algoritma Rivest-Shamir-Adleman (RSA). Algoritma Hill cipher akan digunakan untuk mengamankan citra digital dan algoritma RSA untuk mengamankan kunci. Pada aplikasi ini, proses pertama yang akan dikerjakan sistem jika user adalah seorang penerima pesan adalah proses pembangkitan kunci. Dari proses ini akan diperoleh matriks kunci yang akan digunakan untuk mengenkripsikan dan mendeskripsikan citra digital dan kunci publik untuk mengenkripsi matriks kunci dan kunci privat untuk mendeskripsikan cipher matriks. Kunci privat hanya boleh diketahui oleh penerima pesan.
terlebih dahulu dilakukan adalah proses dekripsi cipher matriks. Berikut gambaran rancangan flowchart aplikasi yang akan dibuat pada gambar 3.1.
Gambar 3.1 Flowchart aplikasi
[image:41.612.274.370.140.595.2]pembangkitan kunci publik dan privat algoritma RSA, proses enkripsi matriks kunci dengan RSA, proses dekripsi cipher matrix dengan algorima RSA, dan proses dekripsi cipher image dengan algoritma Hill cipher.
3.2.1.1.1 Flowchart proses pembangkitan matriks kunci Hill cipher
[image:42.612.258.399.448.701.2]Keterangan :
key_range : Rentang nilai yang akan digunakan sebagai batasan pengecekan pada pembangkitan matriks kunci yaitu dari 0 sampai key_range.
3.2.1.1.2. Flowchart proses enkripsi plain image dengan Hill cipher
[image:43.612.254.389.430.702.2]Keterangan :
ci : nilai pixel citra hasil enkripsi (cipher image ke - i) pi : nilai pixel citra asli (plain image ke – i)
K : matriks kunci 3 x 3 (cipher matrix)
3.2.1.1.3. Flowchart proses pembangkitan kunci RSA
:
[image:45.612.201.454.70.697.2]Keterangan :
p, q : bilangan prima acak n : nilai hasil perkalian p dan q
e : nilai yang digunakan untuk mengenkripsi matriks kunci d : nilai yang digunakan untuk mendekripsi cipher matrix ϕ(n) : nilai totient dari n
3.2.1.1.4. Flowchart proses enkripsi matriks kunci dengan RSA
Pada proses ini setiap elemen pada matriks kunci akan dipangkatkan dengan nilai e kemudian dimodulokan dengan n . Hasil dari proses enkripsi berupa cipher matrix dengan ukuran 3 x 3. Gambar 3.5 di bawah ini merupakan flowchart dari proses ini :
Gambar 3.5 Flowchart proses enkr ipsi matr ik s kunci dengan RSA
Keterangan :
Ki : matriks kunci ke - i
[image:46.612.274.369.331.568.2]3.2.1.1.5. Flowchart proses dekripsi cipher matrix dengan RSA
Pada proses ini pengguna harus memasukkan nilai d untuk dapat mendeskripsikan cipher matrix menjadi matriks kunci (plain matrix). Cipher matrix didekripsi dengan mempangkatkan tiap elemen matriks dengan nilai d dan kemudian dimodulokan dengan nilai n. Hasil dari proses ini adalah matriks kunci yang akan digunakan untuk mendekripsikan cipher image menjadi plain image. Proses ini dapat digambarkan dengan flowchart pada gambar 3.6 di bawah ini :
Gambar 3.6 Flowchart proses dekr ipsi cipher matr ix dengan RSA
3.2.1.1.6. Flowchart proses dekripsi cipher image dengan Hill cipher
[image:47.612.274.372.234.504.2]Gambar 3.7 Flowchart proses dekr ipsi cipher image dengan Hill cipher
Keterangan :
K-1: invers matriks K
3.2.2. Perancangan Unified Modeling Language (UML)
[image:48.612.244.398.76.486.2]3.2.2.1. Use-case diagram
Diagram ini menggambarkan interaksi antara sistem dan sistem eksternal dan para pengguna. Dengan kata lain, diagram ini secara visual menjelaskan siapa yang akan menggunakan sistem dan dengan cara apa pengguna mengharapkan untuk berinteraksi dengan sistem. Naratif use-case digunakan sebagai tambahan menjelaskan langkah-langkah dari setiap interaksi secara tertulis (Bentley & Whitten, 2007).
Ga mbar 3.8 Use-case diagram sistem
Pada gambar 3.8 terdapat 1 actor yaitu Pengguna yang memiliki peran sebagai pengirim dan penerima pesan citra digital. Untuk dapat mengenkripsi atau
Implementasi Algoritma Rivest-Shamir-Adleman untuk Pengamanan Kunci Algoritma Hill
cipher pada Citra Digital
Pengguna Enkripsi Citra Enkripsi Matriks Dekripsi Citra Dekripsi Cipher Matrix Import Citra Bangkitkan Matriks Bangkitkan Kunci Publik dan Privat
Input Rentang Matriks
Input Panjang Digit Bilangan Prima
Input Kunci Privat
Input Determinan
Input Cipher Matrix
Bangkitkan Kunci Publik dan Kunci Privat
<<depends on>> <<de
pend s on>
>
<<depends on>>
<<depends on>> <<depends on>>
<<de pend
s on >>
<<depends on>>
<<de pend
s on> >
<<depends on>>
<<de pend
s on >>
[image:49.612.132.522.235.619.2]mengenkripsi citra, pengguna membangkitkan matriks kunci berukuran 3 x 3 dengan terlebih dahulu memasukkan rentang matriks yang akan dibangkitkan. Kemudian matriks kunci yang telah digunakan untuk mengenkripsi citra dienkripsi kembali dengan menggunakan algoritma RSA. Untuk mengenkripsi matriks tersebut, pengguna harus membangkitkan kunci publik dan kunci privat dengan memasukkan panjang digit bilangan prima yang akan dibangkitkan. Pada akhir proses enkripsi pengguna dapat menyimpan kunci privat dan determinan ke dalam file dengan format *.txt. Untuk proses dekripsi citra, maka syarat yang harus dipenuhi adalah pengguna harus memasukkan citra hasil enkripsi dan invers matriks kunci. Invers matriks kunci diperoleh dari matriks kunci yang telah dienkripsi dengan algoritma RSA. Untuk mendeskripsikan cipher matrix tersebut pengguna harus memasukkan kunci privat (d, n). Setelah diperoleh matriks kunci maka citra dapat didekripsikan.
3.2.2.2. Sequence diagram
Gambar 3.9 Sequence diagram Pr oses Enkr ipsi
3.2.2.3. Activity diagram
Activity diagram adalah suatu diagram yang digunakan untuk menggambarkan aliran proses usaha secara grafis, langkah-langkah dari suatu use case, atau logika dari suatu tingkah laku objek (method) (Bentley & Whitten, 2007). Nodes bulat berwarna hitam menunjukkan awal proses sedangkan nodes bulat berwarna hitam ditengah menunjukkan akhir proses. Sistem ini dibagi menjadi dua bagian terpisah untuk menunjukkan atau menyederhanakan proses-proses yang terjadi pada user maupun pada sistem. Berikut merupakan activity diagram untuk penelitian ini yang ditunjukkan pada gambar 3.9 dibawah ini.
Ga mbar 3.12 Activity diagram Pr oses Dekr ipsi
3.2.3. Perancangan Interface Aplikasi
Sistem ini dirancang dalam 3 form yaitu form halaman utama, form bantuan, dan form tentang.
3.2.3.1. Rancangan interface form halaman utama
Gambar 3.13 Rancangan InterfaceForm Utama
Keterangan :
1) Merupakan groupbox yang berfungsi untuk menampilkan citra asli dan citra hasil enkripsi.
2) Merupakan button yang berfungsi untuk mengimport citra berformat *.png dari tempat penyimpanan.
3) Merupakan combobox yang berfungsi untuk menampilkan proses yang akan dilakukan yaitu proses enkripsi dan dekripsi.
4) Merupakan picturebox yang berfungsi untuk menampilkan citra hasil import. 5) Merupakan label untuk citra hasil import.
6) Merupakan picturebox yang berfungsi untuk menampilkan citra hasil enkripsi atau dekripsi.
7) Merupakan label untuk citra hasil enkripsi atau dekripsi. 8) Merupakan button untuk menampilkan form bantuan. 9) Merupakan button untuk menampilkan form tentang. 10)Merupakan grupbox untuk proses enkripsi.
11)Merupakan label untuk proses enkripsi algoritma Hill cipher.
13)Merupakan kumpulan textbox untuk menampilkan matriks yang dibangkitkan. 14)Merupakan textbox untuk menampilkan hasil determinan matriks yang
dibangkitkan.
15)Merupakan button untuk membangkitkan matriks dengan ukuran 3 x 3. 16)Merupakan button untuk mengenkripsi citra digital.
17)Merupakan label untuk proses algoritma RSA.
18)Merupakan textbox untuk menyimpan panjang digit bilangan prima p dan q yang akan dibangkitkan.
19)Merupakan textbox untuk menampilkan bilangan prima p. 20)Merupakan textbox untuk menampilkan bilangan prima q. 21)Merupakan textbox untuk menampilkan nilai n.
22)Merupakan textbox untuk menampilkan nilai e.
23)Merupakan textbox untuk menampilkan nilai hasil ϕ (n). 24)Merupakan textbox untuk menampilkan nilai d.
25)Merupakan button untuk membangkitkan kunci publik dan kunci privat untuk algoritma RSA.
26)Merupakan button untuk mengenkripsi matriks. 27)Merupakan label untuk cipher matrix.
28)Merupakan kumpulan textbox untuk menampilkan cipher matrix hasil enkripsi. 29)Merupakan button untuk menyimpan kunci privat dan determinan ke dalam
file *.txt.
30)Merupakan button untuk menghapus semua textbox pada groupbox enkripsi dan citra yang diimport.
31)Merupakan groupbox untuk proses dekripsi. 32)Merupakan label untuk kunci dekripsi. 33)Merupakan textbox untuk menyimpan nilai d. 34)Merupakan textbox untuk menyimpan nilai n.
35)Merupakan textbox untuk menyimpan nilai determinan. 36)Merupakan textbox untuk menyimpan cipher matrix.
37)Merupakan button yang berfungsi untuk mendeskripsi cipher matrix menjadi matriks kunci.
39)Merupakan kumpulan textbox yang berfungsi untuk menampilkan matriks kunci hasil dekripsi.
40)Merupakan label untuk invers matriks kunci.
41)Merupakan kumpulan textbox yang berfungsi untuk menampilkan invers matriks kunci.
42)Merupakan button yang berfungsi untuk mendekripsikan citra menjadi citra asli.
43)Merupakan button yang berfungsi untuk menghapus semua textbox pada groupbox dekripsi dan citra yang diimport.
3.2.3.2. Rancangan interface form bantuan
Keterangan:
1) Merupakan tabcontrol yang berfungsi untuk menampilkan cara kerja program untuk proses enkripsi.
2) Merupakan tabcontrol yang berfungsi untuk menampilkan cara kerja program untuk proses dekripsi.
3) Merupakan picturebox yang berfungsi untuk menampilkan screenshot form utama untuk proses enkripsi atau dekripsi.
4) Merupakan richtext yang berfungsi untuk menjelaskan cara kerja proses enkripsi atau dekripsi.
3.2.3.3. Rancangan interface form tentang
Gambar 3.15 Rancangan interface form tentang
Keterangan :
1) Merupakan label yang berisi judul skripsi penulis. 2) Merupakan label yang berisi skripsi.
4) Merupakan label yang berisi logo Fakultas Ilmu Komputer dan Teknologi Informasi (Fasilkom - TI) USU.
BAB IV
IMPLEMENTASI DAN PENGUJ IAN
4.1. Implementasi
Tahap implementasi merupakan tahapan yang dikerjakan setelah tahap analisis dan perancangan selesai dilakukan. Sistem ini menggunakan dua bahasa pemrograman yaitu Python 2.7.8 dan C#. Intergrated Development Environment (IDE) yang digunakan adalah Wing IDE 101 5.0 dan Microsoft Visual Studio Ultimate 2013. Form yang digunakan pada sistem ini antara lain form Halaman Utama, form Bantuan, dan form Tentang.
4.1.1. Form halaman utama
Form Halaman Utama merupakan form yang pertama kali muncul ketika sistem dijalankan. Pada form ini terdapat button import citra yang berfungsi untuk mengimport citra digital berformat *.png dari tempat penyimpanan. Citra yang telah diimport, ditampilkan pada picturebox dengan label citra asli dan hasil enkripsi akan ditampilkan pada picturebox dengan label citra terenkripsi. Label ini akan berubah, apabila mode yang dipilih diubah. Apabila mode dekripsi yang dipilih, maka label citra asli akan diubah menjadi citra terenkripsi dan citra terenkripsi menjadi citra asli. Kemudian combobox pada form ini digunakan untuk memilih proses yang akan dikerjakan yaitu proses enkripsi atau dekripsi. Groupbox akan aktif (enabled) apabila salah satu mode dipilih. Pada form ini terdapat button bantuan untuk menampilkan form bantuan dan button tentang untuk menampilkan form tentang.
kunci acak dengan determinan 1 atau -1 akan ditampilkan pada sembilan textbox dengan label K. Kemudian nilai determinan dari matriks tersebut juga ditampilkan pada textbox dengan label determinan. Setelah matriks ditampilkan, button enkripsi citra digunakan untuk mengenkripsi citra yang telah diimport dan menampilkan hasilnya pada picturebox dengan label citra terenkripsi. Untuk mengenkripsi matriks kunci dengan algorita RSA, textbox panjang digit diisi untuk membangkitkan bilangan prima p dan q, kemudia nilai n, e, ϕ(n), dan d dan ditampilkan pada textbox masing-masing. Button enkripsi matriks kunci digunakan untuk mengenkripsi matriks kunci dan menampilkan hasilnya pada sembilan textbox dengan label C. Button simpan kunci digunakan untuk menyimpan kunci privat RSA dan determinan matriks ke dalam file *.txt. Button Reset digunakan untuk menghapus citra yang diimport dan semua textbox pada groupbox enkripsi.
Pada groupbox dekripsi, untuk mendekripsikan cipher matrix menjadi matriks kunci maka textbox dengan labeld, n, determinan, dan C harus diisi. Kemudian button dekripsi matriks kunci akan memproses data tersebut dan menampilkan hasilnya pada s