• Tidak ada hasil yang ditemukan

Implementasi Algoritma Rivest-Shamir-Adleman Untuk Pengamanan Kunci Algoritma Hill Cipher Pada Citra Digital

N/A
N/A
Protected

Academic year: 2016

Membagikan "Implementasi Algoritma Rivest-Shamir-Adleman Untuk Pengamanan Kunci Algoritma Hill Cipher Pada Citra Digital"

Copied!
101
0
0

Teks penuh

(1)

PADA CITRA DIGITAL

SKRIPSI

JOHANES PRIMA SARAGIH

101401049

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

(2)

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

(3)

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,

(4)

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

(5)

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.

(6)

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

(7)

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.

(8)

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.

(9)

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

(10)

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

(11)

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan 66

5.2 Saran 67

(12)

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

(13)

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

(14)

DAFTAR LAMPIRAN

Hal.

LISTING PROGRAM A-1

(15)

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.

(16)

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.

(17)

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

(18)

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

(19)

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.

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

-1

dibutuhkan

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

(25)

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

-1

15 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

(26)

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

(27)

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.

(28)

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.

(29)

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

(30)

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

(31)

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,

(32)

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

mod

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

mod

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

(33)

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.

(34)

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

(35)
[image:35.612.270.381.77.208.2]

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

(36)

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

(37)

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.

(38)

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.

(39)

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

(40)

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.

(41)

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]
(42)

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]
(43)

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]
(44)

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

(45)

:

[image:45.612.201.454.70.697.2]
(46)

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]
(47)

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]
(48)

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]
(49)

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]
(50)

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

(51)

Gambar 3.9 Sequence diagram Pr oses Enkr ipsi

(52)

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.

(53)

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

(54)

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.

(55)

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.

(56)

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

(57)

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.

(58)

4) Merupakan label yang berisi logo Fakultas Ilmu Komputer dan Teknologi Informasi (Fasilkom - TI) USU.

(59)

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.

(60)

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

Gambar

Gambar 2.1. Citra digital dalam piksel (Cornell University Library, 2003).
Gambar 3.1 Flowchart aplikasi
Gambar 3.2 Flowchart proses pembangkitan matriks kunci algoritma Hill cipher
Gambar 3.3 Flowchart enkripsi plain image dengan algoritma Hill cipher
+7

Referensi

Dokumen terkait

Dalam hal ini adalah cara-cara yang dilakukan oleh guru atau dosen dan peserta didik dalam hal ini adalah siswa maupun mahasiswa dalam melaksanakan kegiatan

Hal ini dapat disimpulkan bahwa pemberian usaha kesehatan jiwa sekolah yang meliputi 4 jenis kegiatan dapat berpengaruh dalam meningkatkan motivasi belajar siswa SMP

peraturan perundang-undangan men^enai peninjauan kembali dalam bidang hukum acara perdata dan pidana, mengeluarkan Peraturan Mahkamah Agung no. Bahwa oleh karena itu,

Sehingga apabila sepanjang mengenai kepastian hukum anak sah maka diatur dalam Pasal 250 Burgelijk Wetboek voor Indonesie (BW) atau yang dikenal juga dengan Kitab

Larangan bagi manusia untuk mengkonsumsi daging babi, sebagimana yang tersurat secara tegas pada ayat diatas, ternyata diperkuat oleh penemuan ilmiah kontemporer

Secara umum, keseluruhan tahap penelitian Aplikasi Penurunan Kejenuhan Belajar Berbasis Android untuk siswa kelas VIII SMP Negeri 3 Babat telah terlaksana dengan

Untuk penelitian yang akan dating disarankan untuk menambah variable lain dalam penelitian ini sehingga penelitiannya lebih baik lagi,Dengan mengambil subyek