Sistem Kriptografi Hybrid (Hill Cipher Dan Knapsack) Pada Pengmanan File

(1)

SISTEM KRIPTOGRAFI HYBRID (HILL CIPHER DAN

KNAPSACK) PADA PENGAMANAN FILE

SKRIPSI

MARLINA SIHOMBING

091401034

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA


(2)

SISTEM KRIPTOGRAFI HYBRID (HILL CIPHER DAN

KNAPSACK) PADA PENGAMANAN FILE

SKRIPSI

Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer

MARLINA SIHOMBING

091401034

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA


(3)

PERSETUJUAN

Judul : SISTEM KRIPTOGRAFI HYBRID (HILL CIPHER

DAN KNAPSACK) PADA PENGMANAN FILE

Kstegori : SKRIPSI

Nama : MARLINA SIHOMBING

Nomor Induk Mahasiswa : 091401034

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

Diluluskan di

Medan, 29 April 2014 Komisi Pembimbing

Pembimbing 2 Pembimbing 1

Handrizal, S.Si, M.Comp.Sc Maya Silvi Lydia, B.Sc, M.Sc

NIP. - NIP. 197401272002122001

Diketehaui / Disetujui oleh Program Studi S1 Ilmu Komputer Ketua,


(4)

NIP. 196203171991031001

PERNYATAAN

SISTEM KRIPTOGRAFI

HYBRID

(

HILL CIPHER

DAN

KNAPSACK

) PADA PENGMANAN

FILE

SKRIPSI

Saya mengaku bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 29 April 2014

Marlina Sihombing 091401034


(5)

PENGHARGAAN

Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa karena segala berkat dan anugerahNya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada :

1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc(CTM), Ap.A(k) selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Muhammad Zarlis, M.Kom, selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom, selaku Ketua Departemen Ilmu Komputer Universitas Sumatera Utara dan Dosen Penguji.

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc, selaku Sekretaris Departemen Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembimbing.

5. Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Sumatera Utara, semua dosen, dan pegawai pada Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

6. Bapak Handrizal, S.Si, M.Comp.Sc, selaku Dosen Pembimbing. 7. Amer Sharif, S.Si, M.Kom, selaku Dosen Penguji.

8. Bapak Saya Togar Sihombing, Ibu saya Lamria Manurung, Abang Saya Marojahan Sihombing, Adik saya Marthasari Sihombing, Mariani Sihombing, dan Martua Sihombing yang selalu memberikan cinta kasihnya dan dukungannya baik material, spiritual serta kerabat saya terkhusus untuk Bang Briando Silitonga S.Sn, Bang Wira Kurniawan Sihombing S.Kom dan Melati Sinaga Am.Keb, yang berjasa memberikan semangat dan dorongan kepada penulis selama menyelesaikan skripsi ini. 9. Rekan-rekan kuliah, khususnya Ales Sanro Sotardodo Panjaitan S.Kom,

Disahayanti S.Kom, Fransiska Angelia Sebayang S.Kom, Wella Reynanda S.Kom, Juni Santo Sihotang S.kom, Jakub Ginting, satu KTB saya Uly, Helen, dan Andre, PKK saya Kak Debora Nainggolan, S.Kom, Kak Maria Sinaga S.Kom, teman-teman di Klinik TI dan di berdikari 88 Lilis yang selalu memberikan semangat dan dorongan kepada penulis.

Semoga Tuhan memberikan berkat yang berlimpah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelsesaikan skripsi ini.

Medan, 29 April 2014


(6)

ABSTRAK

Berkembangnya kemajuan sistem informasi yang sangat cepat, banyak aspek-aspek negatif yang timbul karena sebagian besar pengguna komputer menggunakan sistem informasi berbasis komputer khususnya informasi yang dikirim atau diperoleh melalui internet. Aspek yang diperoleh berupa penyadapan informasi penting yang dilakukan oleh orang yang tidak berhak (penyadap). Sehingga masalah yang diangkat pada skripsi ini adalah pengamanan informasi pada suatu file dan kunci. Informasi yang terdapat pada file perlu diamankan supaya tidak dirusak ataupun dimodifikasi oleh penyadap. Salah satu teknik yang digunakan untuk menjaga keamanan file adalah kriptografi. Adapun metode kriptografi yang digunakan penulis adalah kriptografi hibrida yaitu metode kriptografi yang mengkombinasikan dua algoritma simetris dan asimetris. Algoritma yang digunakan adalah algoritma Hill Cipher dan Knapsack. Algoritma Hill Cipher memiliki kunci simetris (session key) berbentuk matriks 2x2 digunakan untuk mengamankan file. Sebuah matriks yang digunakan harus memiliki matriks identitas jika kunci matriks dikalikan dengan invers kunci matriks, kunci invers akan digunakan untuk dekripsi file. Algoritma Knapsack memiliki kunci asimetris (kunci privat dan kunci publik) digunakan untuk mengamankan session key. Kunci publik digunakan untuk mengenkripsi session key dan kunci privat digunakan untuk mendekripsi cipherkey (session key yang terenkripsi). Implementasi sistem menggunakan perangkat lunak Visual C# pada Microsoft Visual Studio 2010. Hasil dari sistem ini berupa file yang terenkripsi (cipherfile) dan session key yang terenkripsi (cipherkey) yang tidak bisa dimengerti atau bahkan tidak bisa dibuka oleh penyadap.

Kata kunci: Kriptografi, Kriptografi Hibrida, Hill Cipher dan Knapsack, Session


(7)

CRYPTOGRAPHY HYBRID SYSTEM (HILL CIPHER AND KNAPSACK) FOR FILE SECURITY

ABSTRACT

Development of a information system progress very quickly, many negative aspects that arise because the majority of computer users use the computer-based information systems, particularly the information sent or retrieved over the internet. Aspects of the obtained in the form of tapping vital information which is done by a person not entitled (eavesdroppers). Thus, the issues raised in this paper is securing of information a file and key. The information contained in the files need to be secured so that it is not tampered with or modified by eavesdropper. One technique used to maintain security files is cryptography. As for the cryptographic methods used by the author is a hybrid cryptographic method that combines two cryptographic algorithms symmetric and asymmetric. The algorithm that used is Hill Cipher and Knapsack algorithm. Hill Cipher algorithms have key symmetric (session key) 2x2 matrix is used to secure files. A matrix that is used must have an identity matrix if the matrix is multiplied by the inverse key keys matrix. The inverse matrix that will be used to decrypt the file . the Knapsack algorithm has key asymmetric (public key and private key) is used to secure session key. The public key is used to encrypt the session key and the private key is used to decrypt cipherkey (the encrypted key). Implementation of a software system using Visual C # on the Microsoft Visual Studio 2010. The results of this system in the form of encrypted files (cipherfile) and encrypted session key (cipherkey) that can not be understood or even can not be opened by eavesdropper.

Keyword : Cryptography, Cryptography Hybrid, Hill Cipher, Knapsack, Session


(8)

DAFTAR ISI

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar isi vii

Daftar Tabel xi

Daftar Gambar xii

Daftar Lampiran xiv

Bab I Pendahuluan 1

1.1Latar Belakang 1

1.2Perumusan Masalah 2

1.3Batasan Masalah 2

1.4Tujuan Penelitian 3

1.5Manfaat Penelitian 3

1.6Sistematika Penulisan 3

Bab II Landasan Teori 5

2.1 Kriptografi 5

2.1.1 Istilah dalam Kriptografi 5

2.1.2 Tujuan Kriptografi 8

2.2Jenis Algoritma Kriptografi 9 2.2.1 Algoritma Kriptografi Simetri (Konvensional) 9 2.2.2 Algoritma Kriptografi Asimetri (Publik) 10 2.2.3 Algoritma Kriptografi Hibrida (Hybrid) 11 2.3Landasan Matematika Kriptografi 13

2.3.1 Definisi Matriks 13

2.3.2 Jenis Matriks 14

2.3.2.1 Matriks Persegi ( Bujur Sangkar ) 14 2.3.2.2 Matriks Satuan (Identitas) 14

2.3.3 Operasi Pada Matriks 14

2.3.3.1 Penjumlahan Matriks 14

2.3.3.2 Perkalian matriks 15

i) Perkalian Matriks dengan Bilangan Skalar 15 ii) Perkalian Dua Matriks 15

2.3.3.3 Matriks Transpose 15

2.3.3.4 Determinan Matriks 16

2.3.3.5 Minor dan Kofaktor 17

i) Minor 17

ii)Kofaktor 17

2.3.3.6 Invers Matriks 17


(9)

2.3.5 Relatif Prima 19

2.3.6 Balikan Modulo 19

2.4Algoritma Hill Cipher 20

2.4.1 Teknik Dasar Hill Cipher 21

2.4.2 Teknik Enkripsi Hill Cipher 21

2.5Algoritma Knapsack 22

2.5.1 Bentuk Knapsack 22

2.5.2 Penggunaan Teori Bilangan Bulat Pada Sistem

Kriptografi Merkle-Hellman 23 2.5.2.1 Penggunaan Arimatika Modulo Dan Relatif

Prima Pada Pembangkitan Kunci Merkle-

Hellman 23

2.5.2.2 Penggunaan Balikan Modulo Pada Enkripsi dan Dekripsi Knapsack 24 i) Teknik Enkripsi Knapsack 24 ii) Teknik Dekripsi Knapsack 24

2.6File 25

2.6.2 Jenis-Jenis File 26

2.6.2.1 File Dokumen 26

2.6.2.2 File Grafik dan Multimedia 27

2.6.2.3 File Kompresi 28

2.7Penelitian terkait 28

Bab III Analisis dan Perancangan Sistem 29

3.1 Analisis Sistem 29

3.1.1 Analisis Masalah 29

3.1.2 Analisis Persyaratan 30

3.1.2.1 Persyaratan Fungsional 31 3.1.2.2 Persyaratan Nonfungsional 31

3.1.3 Analisis Proses 32

3.2 Pemodelan Sistem 38

3.2.1 Perancangan Unified Modelling Language (UML) 39

3.2.1.1 Use Case Diagram 39

3.2.1.2 Activity Diagram 43

3.2.1.3 Sequence Diagram 46

3.3 Perancangan Sistem 48

3.3.1 Perancangan Flowchart 48

3.3.1.1 Flowchart Proses Pembangkitan Kunci

Matriks Hill Cipher (Kunci Privat) 50 3.3.1.2 Flowchart Proses Enkripsi File dengan

Kunci Hill Cipher 52

3.3.1.3 Flowchart Proses Pembangkitan Kunci

Knapsack (Kunci Privat dan Kunci Publik) 53

3.3.1.4 Flowchart Proses Enkripsi Kunci Hill Cipher dengan Kunci Publik Knapsack 54 3.3.1.5 Flowchart Dekripsi Cipherkey dengan Kunci


(10)

Privat Knapsack 55 3.3.1.6 Flowchart Dekripsi Cipherfile dengan Kunci

Hill Cipher 56

3.3.2 Perancangan Interface Aplikasi 58 3.3.2.1 Rancangan Interface Form Utama 58 3.3.2.2 Rancangan Interface Form Enkripsi 59 3.3.2.3 Rancangan Interface Form Dekripsi 62 3.3.2.4 Rancangan Interface Form Bantuan 64 3.3.2.5 Rancangan Interface Form Tentang

Programmer 65

Bab IV Implementasi dan Pengujian 67

4.1 Implementasi 67

4.1.1 Form Menu Utama 67

4.1.2 Form Enkripsi 68

4.1.3 Form Dekripsi Cipherkey dan Cipherfile 70 4.1.4 Form Bantuan Menggunakan Aplikasi 72 4.1.5 Form Bantuan Tentang Programmer 73

4.2 Pengujian 74

4.2.1 Proses Enkripsi File dan Enkripsi Kunci Kriptografi 75 4.2.1.1Proses Enkripsi File 75

i) Proses Enkripsi File Pada File Dengan Format TXT (.txt) 77 ii) Proses Enkripsi File Pada File Dengan

Format DOCX (.docx) 79 iii) Proses Enkripsi File Pada File Dengan

Format HTM (.htm) 81

iv) Proses Enkripsi File Pada File Dengan Format JPEG (.jpeg) 83 v) Proses Enkripsi File Pada File Dengan

Format MP3 (.mp3) 85

vi) Proses Enkripsi File Pada File Dengan Format MP4 (.mp4) 87 4.2.1.2 Proses Enkripsi Kunci Kriptografi 90

i) Proses Enkripsi Kunci Dengan Barisan

Superincrreasing 2 91

ii) Proses Enkripsi Kunci Dengan Barisan

Superincrreasing 4 93

iii) Proses Enkripsi Kunci Dengan Barisan

Superincrreasing 8 94

iv) Proses Enkripsi Kunci Dengan Barisan

Superincrreasing 16 96

4.2.2 Proses Dekripsi Cipherkey dan Enkripsi Cipherfile 98 4.2.2.1 Proses Dekripsi Cipherkey 98


(11)

Superincrasing 2 98 ii) Proses Dekripsi Cipherkey Dengan Barisan

Superincrasing 4 99

iii) Proses Dekripsi Cipherkey Dengan Barisan

Superincrasing 8 100

iv) Proses Dekripsi Cipherkey Dengan

Barisan Superincrasing 16 101 4.2.2.2 Proses Dekripsi Cipherfile 102

i) Proses Dekripsi Cipherfile Format TXT

(.txt) 102

ii) Proses Dekripsi Cipherfile Format DOCX

(.docx) 104

iii) Proses Dekripsi Cipherfile Format HTM

(.htm) 105

iv) Proses Dekripsi Cipherfile Format JPEG

(.jpeg) 107

v) Proses Dekripsi Cipherfile Format MP3

(.mp3) 108

vi) Proses Dekripsi Cipherfile Format MP4

(.mp4) 109

4.3 Tabel Hasil Pengujian 111

4.4 Grafik Hasil Pengujian 113

Bab V Kesimpulan dan saran 119

5.1 Kesimpulan 119

5.2 Saran 120

Daftar Pustaka 121

Listing Program A-1

Lampiran Tabel ASCII B-1


(12)

DAFTAR TABEL

No Nama Tabel Hal

3.1 3.2 4.1 4.2

Skenario Use Case Enkripsi Skenario Use Case Dekripsi

Tabel Pengujian Enkripsi dan Dekripsi File Tabel Pengujian Enkripsi dan Dekripsi Kunci

41 42 111 112


(13)

DAFTAR GAMBAR

No Nama Gambar Hal

2.1 2.2 2.3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17

Algoritma Kunci Simetri Algoritma Asimetri Kriptografi Hibrida

Ishikawa Diagram untuk Analisis Permasalahan Sistem Use Case Diagram Sistem

Activity Diagram Pengamanan/Enkripsi File dan kunci Activity Diagram Dekripsi Cipherfile dan Cipherkey Sequence Diagram Sistem

Flowchart Aplikasi

Flowchart Pembangkitan Kunci Hill Cipher 2x2 Flowchart Enkripsi File Dengan Kunci Hill Cipher Flowchart Pembangkitan Kunci Knapsack

Flowchart Enkripsi Kunci Hill Cipher Dengan Menggunakan

Kunci Publik Knapsack

Flowchart Dekripsi Cipherkey Dengan Menggunakan Kunci

Privat Knapsack

Flowchart Dekripsi Cipherfile Dengan Menggunakan Kunci

Asli (Kunci Hill Cipher)

Rancangan Interface Form Utama Rancangan Interface Form Enkripsi Rancangan Interface Form Dekripsi

Rancangan Interface Form Bantuan Menggunakan Aplikasi Rancangan Interface Form Bantuan Tentang Programmer Form Menu Utama

Form Enkripsi File dan Kunci

Form Dekripsi Cipherkey dan Cipherfile Form Bantuan Menggunakan Aplikasi Form Bantuan Tentang Programmer Proses Pemilihan File

File Format TXT

Proses Enkripsi File Format TXT Hasil Enkripsi File TXT

File Format DOCX

Proses Enkripsi File Format DOCX Hasil Enkripsi File Format DOCX File Format HTM

Proses Enkripsi File Format HTM Hasil Enkripsi File Format HTM File Format JPEG

Proses Enkripsi File Format JPEG

10 11 12 30 40 43 45 47 49 51 52 53 54 55 57 58 60 63 65 66 68 70 72 73 74 76 77 78 79 79 80 81 81 82 83 83 84


(14)

4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29 4.30 4.31 4.32 4.33 4.34 4.35 4.36 4.37 4.38 4.39 4.40 4.41 4.42 4.43 4.44 4.45 4.46 4.47 4.48 4.49 4.50 4.51 4.52 4.53

Hasil Enkripsi File Format JPEG File Format MP3

Proses Enkripsi File Format MP3 Hasil Enkripsi File Format MP3 File Format MP4

Proses Enkripsi File Format MP4 Hasil Enkripsi File Format MP4 Enkripsi File dan Kunci

Proses Enkripsi Kunci Dengan Banyak Barisan w = 2 Hasil Enkripsi Kunci Dengan Banyak Barisan w = 2 Proses Enkripsi Kunci Dengan Banyak Barisan w = 4 Hasil Enkripsi Kunci Dengan Banyak Barisan w = 4 Proses Enkripsi Kunci Dengan Banyak Barisan w = 8 Hasil Enkripsi Kunci Dengan Banyak Barisan w = 8 Proses Enkripsi Kunci Dengan Banyak Barisan w = 16 Hasil Enkripsi Kunci Dengan Banyak Barisan w = 16 Proses Dekripsi Cipherkey Dengan Banyak Barisan w = 2 Proses Dekripsi Cipherkey Dengan Banyak Barisan w = 4 Proses Dekripsi Cipherkey Dengan Banyak Barisan w = 8 Proses Dekripsi Cipherkey Dengan Banyak Barisan w = 16 Proses Dekripsi File Format TXT

Hasil Dekripsi File Format TXT Proses Dekripsi File Format DOCX Hasil Dekripsi File Format DOCX Proses Dekripsi File Format HTM Hasil Dekripsi File Format HTM Proses Dekripsi File Format JPEG Hasil Dekripsi File Format JPEG Proses Dekripsi File Format MP3 Hasil Dekripsi File Format MP3 Proses Dekripsi File Format MP4 Hasil Dekripsi File Format MP4

Grafik Hasil Pengujian File Sebelum dan Setelah Enkripsi Grafik Hasil Pengujian Lama Enkripsi dan Dekripsi File Grafik Hasil Pengujian Sebelum dan Setelah Enkripsi Kunci Grafik Hasil Pengujian Lama Enkripsi dan Dekripsi Kunci

85 85 86 86 87 88 89 90 91 92 93 94 95 96 97 97 99 100 101 102 103 103 104 105 106 106 107 108 108 109 109 110 114 115 116 117


(15)

DAFTAR LAMPIRAN

A. Listing Program A-1

B. Tabel ASCII B-1


(16)

ABSTRAK

Berkembangnya kemajuan sistem informasi yang sangat cepat, banyak aspek-aspek negatif yang timbul karena sebagian besar pengguna komputer menggunakan sistem informasi berbasis komputer khususnya informasi yang dikirim atau diperoleh melalui internet. Aspek yang diperoleh berupa penyadapan informasi penting yang dilakukan oleh orang yang tidak berhak (penyadap). Sehingga masalah yang diangkat pada skripsi ini adalah pengamanan informasi pada suatu file dan kunci. Informasi yang terdapat pada file perlu diamankan supaya tidak dirusak ataupun dimodifikasi oleh penyadap. Salah satu teknik yang digunakan untuk menjaga keamanan file adalah kriptografi. Adapun metode kriptografi yang digunakan penulis adalah kriptografi hibrida yaitu metode kriptografi yang mengkombinasikan dua algoritma simetris dan asimetris. Algoritma yang digunakan adalah algoritma Hill Cipher dan Knapsack. Algoritma Hill Cipher memiliki kunci simetris (session key) berbentuk matriks 2x2 digunakan untuk mengamankan file. Sebuah matriks yang digunakan harus memiliki matriks identitas jika kunci matriks dikalikan dengan invers kunci matriks, kunci invers akan digunakan untuk dekripsi file. Algoritma Knapsack memiliki kunci asimetris (kunci privat dan kunci publik) digunakan untuk mengamankan session key. Kunci publik digunakan untuk mengenkripsi session key dan kunci privat digunakan untuk mendekripsi cipherkey (session key yang terenkripsi). Implementasi sistem menggunakan perangkat lunak Visual C# pada Microsoft Visual Studio 2010. Hasil dari sistem ini berupa file yang terenkripsi (cipherfile) dan session key yang terenkripsi (cipherkey) yang tidak bisa dimengerti atau bahkan tidak bisa dibuka oleh penyadap.

Kata kunci: Kriptografi, Kriptografi Hibrida, Hill Cipher dan Knapsack, Session


(17)

CRYPTOGRAPHY HYBRID SYSTEM (HILL CIPHER AND KNAPSACK) FOR FILE SECURITY

ABSTRACT

Development of a information system progress very quickly, many negative aspects that arise because the majority of computer users use the computer-based information systems, particularly the information sent or retrieved over the internet. Aspects of the obtained in the form of tapping vital information which is done by a person not entitled (eavesdroppers). Thus, the issues raised in this paper is securing of information a file and key. The information contained in the files need to be secured so that it is not tampered with or modified by eavesdropper. One technique used to maintain security files is cryptography. As for the cryptographic methods used by the author is a hybrid cryptographic method that combines two cryptographic algorithms symmetric and asymmetric. The algorithm that used is Hill Cipher and Knapsack algorithm. Hill Cipher algorithms have key symmetric (session key) 2x2 matrix is used to secure files. A matrix that is used must have an identity matrix if the matrix is multiplied by the inverse key keys matrix. The inverse matrix that will be used to decrypt the file . the Knapsack algorithm has key asymmetric (public key and private key) is used to secure session key. The public key is used to encrypt the session key and the private key is used to decrypt cipherkey (the encrypted key). Implementation of a software system using Visual C # on the Microsoft Visual Studio 2010. The results of this system in the form of encrypted files (cipherfile) and encrypted session key (cipherkey) that can not be understood or even can not be opened by eavesdropper.

Keyword : Cryptography, Cryptography Hybrid, Hill Cipher, Knapsack, Session


(18)

BAB 1 PENDAHULUAN

Pada bab ini akan dibahas mengenai gambaran umum penulisan skripsi. Pembahasan dimulai dari latar belakang, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, dan sistematika penulisan yang dibagi menjadi beberapa bab yang akan dibahas secara garis besar diisi tiap bab.

Latar Belakang

Kemajuan sistem informasi banyak sekali memberikan keuntungan dalam dunia bisnis, selain itu juga aspek-aspek dari sisi negatif dari kemajuan sistem informasi tersebut. Sebagai pengguna komputer hampir semua aspek masyarakat menggunakan sistem informasi berbasis komputer, apalagi informasi-informasi mudah didapatkan dengan adanya jaringan komputer seperti Local Area network (LAN) dan internet memungkinkan menyediakan informasi secara cepat dan akurat. Biasanya pengiriman informasi melalui LAN melakukan pengiriman data tanpa pengamanan terhadap konten dari kata yang terkirim, sehingga cukup berbahaya jika sebuah informasi itu penting dan mudah disadap oleh yang berkepentingan. Oleh karena itu, diperlukan sistem keamanan data yang menggunakan metode penyandian tertentu sehingga keamanan informasi bisa terjamin.

Salah satu teknik pengamanan data adalah teknik kriptografi. Dalam kriptografi terdapat metode yang cukup penting dalam pengamanan data, untuk menjaga kerahasiaan suatu data salah satunya adalah enkripsi. Enkripsi adalah proses yang dilakukan untuk mengubah pesan asli menjadi ciphertext. Sedangkan suatu proses yang dilakukan untuk mengubah pesan tersembunyi menjadi pesan biasa disebut dekripsi. Bentuk algoritma yang akan digunakan disini adalah


(19)

pengggabungan antar dua algoritma yaitu algoritma kriptografi kunci simetri Hill Cipher dan algoritma kriptografi kunci asimetri Knapsack. Sehingga keamanan data akan lebih terjamin dan bisa saling menutupi kekurangan antar masing-masing metode. Metode penggabungan dua algoritma ini disebut Hybrid Cryptosystem. Pada metode ini algoritma kunci simetri digunakan untuk mengamankan pesan atau data yang akan dikirimkan, sedangkan algoritma kunci asimetri digunakan untuk mengamankan kunci kriptografi simetri.

Berdasarkan beberapa uraian di atas, maka penulis berniat membuat skripsi dengan judul “Sistem Kriptografi Hybrid (Hill Cipher dan Knapsack) Pada Pengamanan File”.

Rumusan Masalah

Adanya kecenderungan untuk penyadapan terhadap file yang dikirim dan juga kunci yang dapat juga disadap, maka rumusan masalah dalam penelitian ini adalah:

1. Bagaimana mengkombinasikan dua algoritma kriptografi kunci simetri dan kunci asimetri untuk mengenkripsi dan mendekripsi file.

2. Bagaimana mengimplementasikan kombinasi algoritma Hill Cipher dengan Knapsack ke dalam sebuah aplikasi pengamanan file.

Batasan Masalah

Adapun batasan masalah dalam penelitian ini adalah:

1. Membahas dua algoritma yaitu algoritma Knapsack dan Hill Cipher yang akan digabungkan dalam pengamanan file.

2. Menggunakan matriks 2x2 untuk algoritma Hill Cipher.

3. File yang akan dienkripsi adalah file dokumen (.txt, .doc, .docx, .pdf, .dot, .rtf), file multimedia (.bmp, .gif, .jpeg.,.mp3, .wmv/.mp4), file kompresi (.rar), file lain (.html, .xml).


(20)

4. Bahasa pemrograman yang akan digunakan adalah Visual C# pada Microsoft Visual Studio 2010.

Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah untuk menghasilkan sistem kriptografi hibrida yang mengkombinasikan algoritma Hill Cipher dan Knapsack dimana Hill Cipher mengenkripsi dan mendekripsi file sedangkan Knapsack mengenkripsi dan mendekripsi kunci Hill Cipher (session key). Sehingga, kombinasi dua algoritma tersebut dapat diimplementasikan ke dalam sebuah pengamanan file.

Manfaat Penelitian

Manfaat penulisan skripsi ini adalah supaya dihasilkan aplikasi pengamanan file dengan menerapkan kombinasi dua algoritma kriptografi sehingga dalam pengiriman dokumen tersebut melalui jaringan menjadi lebih aman sesuai dengan kebutuhan pengguna.

Sistematika Penulisan

Dalam penelitian sistem kriptografi Hybrid ini, penulis melakukan sistem penulisan dalam lima bab, yaitu:

BAB I Pendahuluan

Berisi tentang latar belakang, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitan, dan sistematika penulisan.

BAB II Landasan Teori

Berisi tentang penjelasan singkat mengenai defenisi kriptografi, jenis kriptografi, algoritma kriptografi Hill


(21)

Cipher dan Knapsack, serta penjelasan tentang kombinasi dua algoritma yang disebut dengan Kriptografi Hybrid.

BAB III Analisis dan Perancangan

Berisi tentang analisis mengenai proses kerja dari algoritma kriptografi Hill Cipher dan Knapsack serta kombinasi dua agoritma tersebut dan perancangan tampilan form dari aplikasi.

BAB IV Algoritma dan Implementasi

Berisi tentang algoritma dan implementasi dari aplikasi. BAB V Kesimpulan dan Saran

Berisi tentang kesimpulan yang dapat diperoleh secara keseluruhan setelah menyelesaikan skripsi ini dan saran-saran yang dapat diberikan untuk pengembangan sistem selanjutnya.


(22)

BAB II

LANDASAN TEORI

Pada bab ini akan dibahas mengenai landasan teori yang berhubungan dengan sistem yaitu mengenai Kriptografi, Jenis Algoritma Kriptografi, Landasan Matematika Kriptografi, Algoritma Hill Cipher, Algoritma Knapsack, File, dan Penelitian Terkait.

2.1 Kriptografi

Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman. (cryptography is the art and science of keeping message secure. “Crypto” berarti “secret” (rahasia) dan “graphy” berarti “writing” (tulisan) (Sasangko, 2005).

Dalam hal ini kriptografi disebut dengan ilmu dan seni, karena dari sejak jaman dahulu orang-orang mempelajari dan memperdalam sistem pengamanan pesan ini, sehingga menghasilkan berbagai macam algoritma yang sudah banyak dikenal saat ini (Ariyus, 2006).

2.1.1 Istilah dalam Kriptografi

Di dalam kriptografi sering ditemukan berbagai istilah atau terminology penting yang perlu diketahui seperti beberapa istilah di bawah ini :

1. Pesan, Plainteks, dan Cipherteks

Pesan (messege) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan ini adalah plainteks (plaintext). Pesan dapat berupa data atau informasi yang dikirim (melalui saluran telekomunikasi atau sejenisnya) atau yang disimpan dalam media perekaman. Pesan yang tersimpan


(23)

tidak hanya berupa teks, teteapi juga berbentu citra (mage), suara/bunyi (audio), atau berkas biner lainnya. Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersaindi disebut cipherteks (ciphertext) atau kriptogram (cryptogram).

2. Pengirim dan Penerima

Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim oesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Entitas di sini dapat berupa orang, mesin computer, kartu kredit, dan sebagainya.

3. Enkripsi dan Dekripsi

Proses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption). Sedangkan proses mengembalikan cipherteks menjadi plainteks semula dinamakan dekripsi (decryption).

4. Cipher dan Kunci

Algoritma kriptografi disebut juga cipher yaitu aturan untuk enchipering dan dechipering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yaitu himpunan yang berisi elemn-elemn plainteks dan himpunan yang berisi cipherteks. Dalam kriptografi modern, enkripsi dan dekripsi merupakan fungsi yang memetakan elemen-elemen antara kedua himpunan tersebut. Yang dalam hal ini algoritma tidak lagi dirahasiakan, tetapi kunci harus dijaga kerahasiannya. Kunci adalah parameter yang digunakan untuk transformasi enciphering dan deciphering. Misalkan P menyatakan plainteks, dan C menyatakan chiperteks, maka fungsi enkripsi E memetakan P ke C, dan dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai berikut :

Ek(P) = C Dan fungsi dekripsi D memetakan C ke P,

Dk(C) = P

Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka kesamaan berikut benar,


(24)

Dk(Ek(P)) = P

Keamanan algoritma sering kripstografi diukur dari banyaknya kerja yang dibutuhkan untuk memecahkan cipherteks menjadi plainteksnya tanpa mengetahui kunci yang digunakan (Munir, 2006)

5. Sistem Kriptografi

Kriptografi membentuk sebuah sistem yang dinakaman sistem kriptografi. Sistem kriptografi (Cryptosystem) adalah kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin, dan kunci. Di dalam sistem kriptografi, cipher hanyalah salah satu komponen saja

6. Penyadap

Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan selama ditansmisikan. Tujuan penyadap adalah untuk mendapatkan informasi sebanyak-bnayknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. Nama lain peyadap: enemi, adversary, intruder, interceptor, bad guy.

7. Kriptanalisis dan Kriptologi

Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis. Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalisis. Jika seorang kriptografer (cryptographer) mentransformasikan plainteks menjadi cipherteks dengan suaatu algoritma dan kunci maka sebaliknya seorang kripatanalisis berusaha untuk memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi (cryptologi) adalah studi mengenai kriptografi dan kriptanalisis. Baik kriptografi dan kriptanalisis keduanya saling berkaitan (Munir, 2006).

2.1.2 Tujuan Kriptografi

Kriptografi bertujuan untuk memberi layanan keamanan (yang juga dianamakan sebagai aspek-aspek keamanan) sebagai berikut:


(25)

Kerahasiaan (confidentiality) adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibca oleh pihak-pihak yang tidak berhak. Di dalam kriptografi, layanan ini direalisasikan dengan menyandikan pesan menjadi cipherteks.

2. Integritas Data (Data Integrity)

Integritas Data (Data Integrity) adlaah layanan yang menjamin bahwa pesan masih utuh atau belum pernah dimanipulasi selama pengirimin. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebaga pertanyaan : “Apakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi)?”. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubtitusian data laian ke dalam pesan yang sebenarnya. Dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda tangan digital. Pesan yang ditandatangani menyiratkan bahwa pesan yang dikirim adalah asli.

3. Otentikasi (authentication)

Otentikasi (authentication) adalahan layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran semua pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan : “Apakah pesan yang diterima benar-benar berasal dari pengirim yan benar?”. Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda tangan digital. Tanda-tangan digital menyatakan sumber pesan.


(26)

4. Nirpenyangkalan (non-repudiation)

Nirpenyangkalan (non-repudiation) adalah layanan untk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengirim atau penerima pesan menyangkal telah menerima pesan. Sebagai conto misalkan pengirim pesan memberikan otoritas kepada penerima pesan untuk melakukan pembelian, namun kemudian ia menyangkal telah memberikan otoritas terseut. Contoh lainnya, misalkan seorang pemilik emas mengajukan tawaran kepasa took mas bahwa ia akan menjual emasnya. Tetapi, tiba-tiba harga emas turun dastis, lalu ia membantah telah mengajukan tawaran menjual emas. Dalam hal ini, pihak took emal perlu proseud nirpenyangkalan untuk membuktikan bahwa pemilik emas telah melakukan kebohongan (Munir, 2006).

2.2 Jenis Algoritma Kriptografi

Berdasarkan kunci yang digunakan untuk melakukan proses enkripsi dan dekripsi, algoritma kriptografi dibagi menjadi tiga bagian yaitu :

1. Algoritma Simetri (Konvensional) 2. Algoritma Asimetri (Kunci Publik) 3. Algoritma Kriptografi Hibirda (Hybrid)

2.2.1 Algoritma Kriptografi Simetri (Konvensional)

Kunci simetri merupakan jenis kriptografi yang paling umum dipergunakan. Kunci simetri seringan juga disebut kunci privat. Kunci untuk membuat pesan yang disandikan sama dengan kunci untuk membuka pesan yang disandikan itu. Jadi pembuat pesan dan penerimanya harus memiliki kunci yang sama persis. Siapapun yang memiliki kunci tersebut, termasuk pihak-pihak yang tidak diinginkan, dapat membuat dan membongkar rahasia ciphertext. Problem yang


(27)

Plaintext Ciphertext Plaintext

Enkripsi Dekripsi

Kunci

paling jelas disini terkadang bukanlah masalah pengiriman ciphertext, melainkan masalah bagaimana menyampaikan kunci simetri tersebut kepada pihak yang diinginkan. Aplikasi dari algoritma simetri digunakan oleh bebarapa algoritma, seperti Data Encryption Standard (DES), Advance Encryption Standard (AES), International Data Encryption Algoritma (IDEA), A5, RC2, RC4, RC5, RC6, dan lain sebgainya (Ariyus, 2006)

Sketsa ataupun gambaran umum kunci simetri terdapat pada gambar 2.1 di bawah:

Gambar 2.1 Algoritma Kunci Simetri

2.2.2 Algoritma Kriptografi Asimetri (Publik)

Kunci asimetri adalah pasangan kunci kriptografi yang salah satunya dipergunakan untuk proses enkripsi dan yang satu lagi untuk dekripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsikan suatu pesan, sedangkan hanya satu orang saja yang memiliki rahasia tertentu, dalam hal ini kunci privat untuk melakukan pembongkaran terhadap sandi yang dikirim untuknya. Dengan cara seperti ini, jika seorang pihak pertama mengirim pesan untuk pihak kedua, pihak pertama tersebut dapat merasa yakin bahwa pesan tersebut hanya dapat dibaca oleh pihak yang bersangkutan, karena hanya dia yang bisa melakukan dekripsi dengan kunci privatnya. Aplikasi dari algoritma simetri digunakan pleh bebara algoritma, seperti RSA, Elgamal, DSA, Knapsack, dan lain sebagainya (Ariyus, 2006).


(28)

Kunci Publik Kunci Privat

Plaintext Ciphertext Plaintext

Enkripsi Dekripsi

Sketsa ataupun gambaran umum kunci simetri terdapat pada gambar 2.2 di bawah:

Gambar 2.2 Algoritma Asimetri

2.2.3 Algoritma Kriptografi Hibrida (Hybrid)

Permasalahan yang menarik pada bidang keamanan informasi adalah adanya tradeoff antara keamanan dengan kenyamanan. Semakin aman semakin tidak nyaman, berlaku juga sebaliknya semakin nyaman semakin tidak aman. Salah satu contohnya adalah bidang kriptografi. Tetapi hal ini dapat diatasi dengan penggunaan kriptografi hibrida. Kriptografi hibrida sering dipakai karena memanfaatkan keunggulan kecepatan pemrosesan data oleh algoritma simetri dan kemudahan transfer kunci menggunakan algoritma asimetri. Hal ini mengakibatkan peningkatan kecepatan tanpa mengurangi kenyamanan serta keamanan (Annelis, 2010)

Pada sistem kriptografi hibrida ini, enkripsi/dekripsi pesan ataupun file dilakukan menggunakan kriptografi kunci simetri, sedangkan kunci simetri dienkripsi/dekripsi menggunakan kriptografi kunci asimetri(kunci publik). Kunci simetri (yang juga disebut Session Key) dibangkitkan oleh salah satu pihak dan mengenkripsi pesan dengan kunci tersebut. Selanjutnya Session Key dienkripsi dengan kunci publik penerima lalu dikirim bersama-sama dengan pesan yang sudah dienkripsi. Penerima mula-mula mendekripsi Session Key dengan kunci privatnya, lalu mendekripsi file dokumen dengan Session Key tersebut seperti yang terdapat pada sketsa atau gambar 2.3 di bawah ini:


(29)

Plain File Plain File Plain File

Enkripsi File Dengan Kunci Hill Cipher

8m7$gY gT6K8@ Im?.<)*

Pertukaran Kunci

Dekripsi Cipherfile Dengan Kunci Hill

Cipher Dekripsi Cipherkey Dengan Kunci Privat Knapsack Plain File Plain File Plain File

Session Key Session Key

Privat Key Public Key

PENERIMA PENGIRIM

File Cipherfile File

Enkripsi Kunci Hill Cipher Dengan Kunci

Publik Knapsack

Gambar 2.3 Prinsip Kriptografi Hibrida Pada Sistem

Berdasarkan gambar 2.3 metode hibrida terdiri dari enkripsi simetri dengan satu kunci (Session Key) dan enkripsi asimetri dengan sepasang kunci (Public/Private Key). Langkah-langkah enkripsi dekripsi pada sistem ini adalah:

Langkah 1 : Pengirim mengenkripsi file dengan Session Key. Langkah 2 : Mengenkripsi Session Key dengan Public Key.

Langkah 3 : Penerima mendekripsi Session Key dengan Private Key. Langkah 4 : Mendekripsi file dengan Session Key.

Dalam penelitian ini dibahas mengenai perancangan sebuah aplikasi kriptografi hibrida yang ditujukan untuk kalangan tertentu, terutama pemakai hardware dengan kekuatan pemrosesan yang terbatas. Aplikasi yang ingin dicapai adalah aplikasi yang sederhana, ringan dan cepat tanpa mengurangi tingkat keamanan. Dalam hal ini, gabungan ataupun kombinasi dua algoritma yang akan dipakai adalah algoritma Hill Cipher sebagai algoritma kriptografi kunci simetri dan algoritma Knapsack sebagai algoritma kriptografi kunci asimetri (kunci publik).

2.3 Landasan Matematika Kriptografi

Berikut beberapa landasan matematika kriptografi yang akan digunakan pada sistem dapat dilihat sebagai berikut.


(30)

2.3.1 Definisi Matriks

Matriks adalah himpunan skalar ( bilangan riil atau kompleks ) yang disusun secara empat persegi maupun persegi panjang menurut baris-baris dan kolom-kolom.

Skalar – skalar itu disebut elemen matriks. Untuk pembatasnya biasanya diberikan tanda [ ] atau ( ) atau || || (Nugraha, 2001)

Notasi Matriks

Sebuah matriks yang diberi variabel A memiliki elemen-elemen baris dan kolom seperti notasi berikut (Leon, 2001).

Matriks A dapat ditulis matriks A(mxn) = a(ij). Keterangan :

i = 1, 2, 3, … m j = 1, 2, 3, … n m = jumlah baris n = jumlah kolom 2.3.2 Jenis Matriks

Beberapa jenis matriks yang dipakai dalam proses pembuatan sistem dapat dilihat sebagai berikut.

2.3.2.1 Matriks Persegi ( Bujur Sangkar ) Jika m=n, maka :


(31)

merupakan matriks 2x2, merupakan matriks 3x3 (Leon, 2001).

2.3.2.2 Matriks Satuan (Identitas)

Jika aij = 0 untuk i j dan aij = 1 untuk i=j, maka :

(Leon, 2001).

2.3.3 Operasi Pada Matriks

Berikut akan dijelaskan beberapa operasi matriks yang akan digunakan pada sistem.

2.3.3.1 Penjumlahan Matriks

Jika matriks A = (aij), matriks B = (bij), dan matriks C = (cij), maka :

...(1)

jika aij + bij = cij untuk setiap i dan j dan kedua matriks memiliki ukuran yang sama (Leon, 2001)

Contoh penjumlahan matriks 2x2 :

2.3.3.2 Perkalian matriks


(32)

i) Perkalian Matriks dengan Bilangan Skalar

Jika α = bilangan skalar, matriks A = (aij), matriks B = (bij), maka :

...(2)

jika bij = α x aij untuk setiap i dan j (Leon, 2001). Contoh perkalian matriks 2x2 dengan bilangan skalar : 3 x

ii) Perkalian Dua Matriks

Jika matriks A = (aij), matriks B = (bij), dan matriks C = (cij), maka :

...(3)

jika untuk setiap i dan j (Leon, 2001). Contoh perkalian dua matriks 2x2 :

x =

2.3.3.3 Matriks Transpose

Jika matriks A = (aij), matriks B = (bij), maka :

...(4)

jika bij = aji untuk setiap i dan j (Leon, 2001). Contoh Matriks Transpose 2x2 :

=

2.3.3.4 Determinan Matriks

Jika matriks A2x2 = , maka nilai determinan matriks adalah :


(33)

Contoh determinan matriks 2x2 : = 2.4 – 1.3 = 5 (Leon, 2001).

Sifat Determinan :

1. Nilai determinan suatu matriks tidak berubah jika matriks tersebut ditranspose |AT| = |A|

2. Nilai determinan akan berubah tanda bila salah satu baris atau kolom dipertukarkan dengan baris atau kolom lain.

3. Nilai determinan akan berubah menjadi k kali jika setiap elemen suatu baris atau kolom dikalikan dengan k.

2.3.3.5Minor dan Kofaktor

Berikut dapat dilihat penjelasan tentang operasi matriks minor dan kofakor.

i) Minor

Minor dari sebuah matriks

adalah matriks yang berasal dari matriks yang baris ke-i dan kolom ke-j dihilangkan (Leon, 2001).

Contoh minor dari matriks 2x2 :

=

: dari matriks A, baris ke-1 dan kolom ke-1 dihilangkan, maka = ] : dari matriks A, baris ke-1 dan kolom ke-2 dihilangkan, maka = ] : dari matriks A, baris ke-2 dan kolom ke-1 dihilangkan, maka = ] : dari matriks A, baris ke-2 dan kolom ke-2 dihilangkan, maka = ]


(34)

Jika sebuah matriks , maka disebut matriks kofator (Leon, 2001).

Contoh kofaktor dari matriks 2x2 : =

2.3.3.6 Invers Matriks

Jika matriks , matriks , maka dikatakan invers jika =

Invers matriks diberi simbol atau .

Sifat Invers Matriks :

1. 2.

Cara menghitung Invers Matriks :

= ...(6)

Keterangan :

Adjoint A = transpose dari matriks kofaktor A A-1 = invers matriks A


(35)

Catatan :

Di dalam skripsi ini metode pencarian iinvers matriks dilakukan dengan metode :

= (Det(A))-1 ...(7)

Dimana (Det(A))-1 dicari dengan operasi aritmatika modulo yang menghasilkan bilangan bulat.

Cara mencari Invers Determian A :

...(8)

Keterangan :

Det (A) = determinan matriks A

(Det(A))-1 = invers dari determinan matriks A

N = banyaknya karakter ataupun nilai yang akan dimodulokan (Leon, 2001).

2.3.4 Aritmatika Modulo

Aritmetika modulo (modular arithmetic) memainkan peranan yang penting dalam komputasi integer, khususnya pada aplikasi kriptografi. Operator yang digunakan pada aritmetika modulo adalah mod. Operator mod, jika digunakan pada pembagian bilangan bulat, memberikan sisa pembagian. Misalnya 23 dibagi 5 memberikan hasil = 4 dan sisa = 3, sehingga ditulis 23 mod 5 = 3.

Definisi dari operator mod dinyatakan sebagai berikut :

Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m (dibaca “a modulo m”) memberikan sisa jika a dibagi dengan m. Dengan kata lain, a mod m = r sedemikian sehingga a = mq + r, dengan 0 ≤ r < m. Notasi: a mod m = r sedemikian sehingga

a= mq + r, dengan 0 ≤ r < m...(9)

Bilangan m disebut modulus atau modulo, dan hasil aritmetika modulo m terletak di dalam himpunan {0,1, 2, …, m – 1}

Jika a mod m = 0, maka dikatakan bahwa a adalah kelipatan dari m, yaitu a habis dibagi dengan m (Munir, 2006).


(36)

Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB(a, b) = 1. Sebagai contoh, 20 dan 3 relatif prima sebab PBB(20, 3) = 1. Jika a dan

b relatif prima, maka dapat ditemukan bilangan bulat m dan n sedemikian

sehingga

ma + nb = 1...(10)

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 (Munir, 2006).

2.3.6 Balikan Modulo

Jika a dan m relatif prima (PBB(a, m) = 1) dan m > 1, maka kita dapat menemukan balikan (invers) dari a modulo m. Balikan dari a modulo m adalah bilangan bulat a-1 sedemikian sehingga

a.a-1≡ 1 (mod m)...(11)

Dari definisi relatif prima diketahui bahwa PBB(a,m) = 1 terdapat bilangan bulat p dan q sedemikian sehingga

pa + qm = 1 yang mengimplikasikan bahwa pa + qm ≡ 1 (mod m) karena qm ≡ 0

(mod m), maka

pa ≡ 1 (mod m)...(12)

Contoh: Tentukan balikan modulo dari 4 (mod 9)

Jawab: Karena PBB(4,9) = 1, maka balikan dari 4 (mod 9) ada. Dari algoritma Euclidean diperoleh bahwa

9 = 2 . 4 + 1 -2 . 4 + 1 . 9 = 1

Dari persamaan terakhir ini diperoleh -2 adalah balikan dari 4 mod 9. Periksalah bahwa -2 . 4 ≡ 1 (mod 9) (9 habis membagi -2 . 4 – 1 = -9)


(37)

Hill Cipher merupakan penerapan aritmatika modulo pada kriptografi. Teknik kriptografi ini menggunakan sebuah matriks persegi sebagai kunci yang digunakan untuk melakukan enkripsi dan dekripsi (Sasongko, 2005).

Hill Cipher diciptakan oleh Lester S. Hill pada tahun 1929. Teknik kriptografi ini diciptakan dengan maksud untuk dapat menciptakan cipher (kode) yang tidak dapat dipecahkan menggunakan teknik analisis frekuensi. Hill Cipher tidak mengganti setiap abjad yang sama pada plaintext dengan abjad lainnya yang sama pada ciphertext karena menggunakan perkalian matriks pada dasar enkripsi dan dekripsinya (Sasongko, 2005).

Hill Cipher yang merupakan polyalphabetic cipher dapat dikategorikan

sebagai block cipher karena teks yang akan diproses akan dibagi menjadi blok-blok dengan ukuran tertentu. Setiap karakter dalam satu blok-blok akan saling mempengaruhi karakter lainnya dalam proses enkripsi dan dekripsinya, sehingga karakter yang sama tidak dipetakan menjadi karakter yang sama pula. (Sansani, 2008).

2.4.1 Teknik Dasar Hill Cipher

Dasar dari teknik Hill Cipher adalah aritmatika modulo terhadap matriks. Dalam penerapannya, Hill Cipher menggunakan teknik perkalian matriks dan teknik invers terhadap matriks. Kunci pada Hill Cipher adalah matriks n x n dengan n merupakan ukuran blok. Matriks K yang menjadi kunci ini harus merupakan matriks yang invertible, yaitu memiliki invers K-1 sehingga :

... (13)

Keterangan: K = Kunci

K-1 = Invers Kunci I = Matriks identitas

Kunci harus memiliki invers matriks K yaitu K-1 akan dipakai melakukan dekripsi (Sansani, 2008).


(38)

2.4.2 Teknik Enkripsi Hill Cipher

Proses enkripsi pada Hill Cipher dilakukan per blok plaintext. Ukuran blok tersebut sama dengan ukuran matriks kunci. Sebelum membagi teks menjadi deretan blok-blok, plaintext terlebih dahulu dikonversi menjadi angka (Sansani, 2008).

Secara matematis, proses enkripsi pada Hill Cipher adalah:

... (14)

Keterangan: C = Ciphertext K = Kunci P = Plaintext

2.4.3 Teknik Dekripsi Hill Cipher

Proses dekripsi pada Hill Cipher pada dasarnya sama dengan proses enkripsinya. Namun matriks kunci harus dibalik (invers) terlebih dahulu.

Secara matematis, proses dekripsi pada Hill Cipher adalah :

... (15)

2.5 Algoritma Knapsack

Algoritma Knapsack juga disebut algoritma kriptografi kunci publik. Keamanan algoritma ini terletak pada sulitnya memecahkan persoalan Knapsack (Knapsack

Problem). Knapsack artinya karung/kantung. Karung mempunyai kapasitas muat

terbatas. Barang-barang dimasukkan ke dalam karung hanya sampai batas kapasitas maksimum karung saja (Marta, 2006).

2.5.1 Bentuk Knapsack


(39)

1. General Knapsack / Normal Knapsack diberikan bobot Knapsack adalah M. Diketahui n buah objek yang masing-masing bobotnya adalah w1, w2, ... , w3. Tentukan nilai bi sedemikian sehingga

... (16)

Yang dalam hal ini, bernilai 0 atau 1. Jika =1, berarti objek i dimasukkan ke dalam knapsack, sebaliknya jika =0, objek i tidak dimasukkan.

Dalam teori algoritma, persoalan knapsack termasuk ke dalam tidak dapat dipecahkan dalam orde waktu polinomial. Sehingga algoritma ini hanya dapat digunakan untuk enkripsi tetapi tidak dirancang untuk dekripsi (Marta, 2006).

2. Superincreasing Knapsack

Superincreasing Knapsack adalah persoalan Knapsack yang dapat dipecahkan

dalam orde polinimial. Ini adalah persoalan Knapsack yang mudah sehingga tidak disukai untuk dijadikan sebagai algoritma kriptografi yang kuat. Jika senarai bobot disebut barisan superincreasing, maka kita dapat membentuk Superincreasing Knapsack. Barisan Superincreasing adalah suatu barisan di mana setiap nilai di dalam barisan lebih besar daripada jumlah semua nilai sebelumnya.

Solusi dari Superincreasing Knapsack (yaitu ) mudah dicari sebagai berikut :

1. Jumlahkan semua bobot di dalam barisan.

2. Bandingkan bobot total dengan bobot terbesar di dalam barisan. Jika bobot terbesar lebih kecil atau sama dengan bobot total, maka bobot dapat dimasukkan ke dalam knapsack, jika tidak, maka bobot tidak dimasukkan. 3. Kurangi bobot total dengan bobot yang telah dimasukkan, kemudian

bandingkan bobot total sekarang dengan bobot terbesar selanjutnya. Demikian seterusnya sampai seluruh bobot di dalam barisan selesai dibandingkan.

4. Jika bobot total menjadi nol, maka terdapat solusi persoalan Superincreasing Knapsack, tetapi jika tidak nol, maka tidak ada solusinya (Marta, 2006).


(40)

Algoritma Superincreasing Knapsack adalah algoritma yang lemah, karena ciphertext dapat didekripsi menjadi plaintext secara mudah dalam waktu polinomial. Algoritma non-superincreasing knapsack atau normal knapsack adalah kelompok algoritma yang sulit (dari segi komputasi) karena membutuhkan waktu dalam orde eksponensial untuk memecahkannya.

Namun, Superincreasing Knapsack dapat dimodifikasi menjadi non-Superincreasing Knapsack dengan menggunakan kunci publik (untuk enkripsi) dan kunci privat (untuk dekripsi). Kunci publik merupakan barisan non-Superincreasing sedangkan kunci privat tetap merupakan barisan superincreasing. Hasil modifikasi tersebut dinamakan algoritma Merkle-Helman karena modifikasi ini ditemukan oleh Martin Hellman dan Ralph Merkle. Modifikasi dilakukan dengan perhitungan aritmatika modulo (Munir, 2006).

2.5.2 Penggunaan Teori Bilangan Bulat Pada Sistem Kriptografi Merkle-Hellman

2.5.2.1 Penggunaan Arimatika Modulo Dan relatif Prima Pada Pembangkitan Kunci Merkle-Hellman

Untuk mengenkripsikan n-bit pesan, caranya adalah sebagai berikut:

a. Tentukan barisan Superincreasing. w = (w1, w2, ..., wn) dari bilangan bukan nol b. Pilih salah satu bilangan integer q sehingga memenuhi dan salah

satu angka integer r secara acak sehingga PBB(r,q) =1 (r relatif prima dengan q). Bilangan q dipilih dengan cara di atas untuk memastikan keunikan dari ciphertext. Jika bilangan yang digunakan lebih kecil, lebih dari satu plaintext akan dienkripsi menjadi ciphertext yang sama. Sedangkan r harus tidak memiliki persekutuan dengan q karena jika tidak, maka balikan modulo dari r mod q tidak dapat ditemukan. Bilangan yang merupakan balikan modulo dari r mod q adalah penting agar memungkinkan dekripsi.

c. Kemudian hitung barisan yang memenuhi

d. Kunci publik adalah , sedangkan kunci privat adalah w barisan superincreasing semula (Munir, 2006).


(41)

2.5.2.2 Penggunaan Balikan Modulo Pada Dekripsi Enkripsi Knapsack

Terdapat n-bit pesan α = (α1, α2, ..., αn) dengan αi adalah bit ke-i dari pesan dan αi ∈{0, 1}.

i) Teknik Enkripsi Knapsack

Cara untuk mengenkripsi pesan tersebut adalah sebagai berikut:

a. Pilih himpunan bagian dari normal Knapsack (kunci publik) yang berkorespondensi dengan 1 pada plainteks dan mengabaikan bagian yang berkorespondensi dengan 0 pada plainteks.

b. Elemen dari himpunan bagian yang telah dipilih dijumlahkan dan hasilnya menjadi ciphertext (Marta, 2006)

...(17)

ii) Teknik Dekripsi Knapsack

Untuk mendekripsi ciphertext c, penerima harus menemukan pesan dalam bentuk sehingga memenuhi

Nilai βi dipilih sehingga dekripsi mudah dilakukan jika kunci privat (w, q, r) diketahui. Hal yang penting dari dekripsi adalah menemukan suatu bilangan integer n-1 yang merupakan balikan modulo (modular inverse) dari r modulo q. Ini berarti n-1 memenuhi persamaan n-1.r mod q = 1 atau n-1.r ≡ 1 (mod q) atau terdapat bilangan integer k sehingga n-1.r = kq + 1. Karena r dipilih sehingga memenuhi persamaan PBB(r,q) = 1, maka s dan k mungkin ditemukan dengan menggunakan perhitungan balikan modulo yang memenuhi sr ≡ 1 (mod q). Kekongruenan ini dapat dihitung dengan cara yang sederhana sebagai berikut:

n-1= (1 + kq)/r...(18)


(42)

Kalikan setiap kriptogram dengan n-1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen kunci privat untuk memperoleh plainteks dengan menggunakan algoritma pencarian solusi superincreasing knapsack (Marta, 2006).

Bentuk persamaan dekripsi algoritma Knapsack adalah sebagai berikut :

...(19)

Keterangan :

plainkey (pada sistem disebut session key) = balikan modulo

= cipherkey

2.6 File

File adalah entitas dari data yang disimpan dalam berkas sistem yang dapat

diakses dan diatur oleh pengguna. Sebuah file memiliki nama yang unik beserta atributnya, yang akan disimpin dalam folder atau direktori suatu dirve. Setiap drive pada penyimpanan diberikan identitas berupa huruf . pada umunya hard disk utama yang merupakan lokasi penyimpan file diberi nama dirve “C”. adapun partisi ataupun penyimpanan media lain, makan akan diberikan huruf secara berurutan setelah “C”.

Secara visual, file merupakan dokumen-dokumen yang disimpan dalam sebuah arsip yang sering identik dengan kertas-kertas kerja yang masing-masing memiliki fungsi dan makna tersendiri. Sering dengan perkembangan teknologi komputerisasi, kini file tidak lagi identik dengan tumpukan kertas dalam arsip. Sebuah file menjadi dokumen yang secara visual tampak maya tetapi bisa disimpan dan bisa juga direalisasikan dalam bentuk nyata pada lembaran kertas.

File dalam dunia komputerisasi tidak hanya sebatas pada dokumen berupa teks

saja, tetapi bisa juga gambar, baik sketsa, desain, grafik, audio, video, dan lain sebagainya. Keragaman jenis file tersebut berpengaruh pada beragamnya format


(43)

file. Format file merupakan suatu cara khusus untuk mengkodekan informasi yang disimpan dalam file computer. Selain format file, ada juga yang disebut dengan file extension. Secara sekilas format file tidak jauh berbeda dengan file extension, terutama dalam hal penyebutan nama jenis file. Namun, jika ditelisik secara mendalam, format file berbeda dengan file extension.

File extension umumnya terdiri atas tiga atau lebih karakter yang

ditempatkan pada akhir nama sebuah file. Adapun fungsi file extension, yaitu membantu mempermudah sistem operasi computer untuk mengidentifikasi informasi data yang terdapat dalam file beserta dengan aplikasi atau program yang terkait dalam file tersebut.

Format file cenderung mengarah pada nama jenis file, sedangkan file extension merupakan salah satu metode untuk mengidentifikasi jenis file. Secara lebih jauh, file umumnya dituliskan dalam huruf capital, sedangkan file extension dituliskan dalam huruf kecil yang mengikuti nama file. Sebagai contoh, misalnya untuk jenis video salah satu formatnya adalah flv sehingga seringkali ditulis file FLV. Sementara untuk menunjukkan extension untuk format file tersebut adalah .flv (Enterprise, 2010).

2.6.1 Jenis-Jenis File

Berikut beberpa jenis –jenis file yaitu file dokumen, file grafik dan multimedia, dan file kompresi dapat dilihat sebagai berikut.

2.6.1.1 File Dokumen

Kategori file dokumen yang dimaksud dalam hal ini adalah file-file yang berisi teks. File teks merupakan file komputer yang tersusun atas rangkaian baris teks.

Jenis file yang termasuk dalam kategori file dokumen beberapa diantaranya adalah sebagai berikut :


(44)

Beberapa format file dalam dokumen office 1997-2003 seperti file DOC (.doc) pada Microsoft Word, file XLS (.xls) pada Microsoft Excel, file PPT (.ppt) pada Microsoft Power Point, dan lain-lain.

2. File dokumen office 2007-Sekarang

Beberapa format file dokumen office 2007-Sekarang seperti file DOCX (.docx) pada Microsoft Word), file XLSX (.xlsx) pada Microsoft Excel, file PPTX (.pptx) pada Mincrosoft Power Point, dan lain-lain.

Adapun file dokumen lain seperti file PDF (.pdf), file TXT (.txt), file RTF (.rtf), dan lain-lain (Enterprise, 2010).

2.6.1.2 File Grafik dan Multimedia

Kategori file grafik dan multimedia mengarah pada jenis-jenis file image atau gambar, video, dan audio atau musik. Banyak jenis file yang termasuk dalam kategori ini adalah sebagai berikut :

1. File JPG (.jpg) merupakan format kompresi image atau gambar yang

distandardisasi ole Joint Photographic Ex[erts Group (JPEG). Adapun file gambar lain seperti file PNG (.png), file GIF (.gif), file BMP (.bmp), dan lain-lain.

2. File FLV (.flv) merupakan salah satu format file video berhubungan

dengan Flash-compatible file video yang diekspor Flash Vidio Explorer plug-in termasuk Adobe Flash atau program lain yang support terhadap

file ini. Adapaun format file video lain adalah seperti Audi Vidio

Interleaved (AVI) dimana file extensionnya berupa .avi, file 3GP (.3gp), dan lain-lain.

3. File MP3 (.mp3) merupakan salah satu format file audio yang tidak lepas dari format file Motion Pictures Expert Group (MPEG). Sebelum munculnya MP3, telah ada format file audio digital yang menggunakan teknologi kompresi seperti, AAC, Dolby, Windows Mwdia Audio (WMA), Real Audio, dan lain-lain (Enterprise, 2010).


(45)

File kompresi yang dimaksdukan adalah file-file yang digabungkan menjadi satu dengan tujuan untuk memperoleh ukuran file yang lebih kecil dibandingkan dengan file lainnya. Berikut beberapa file yang termasuk dalam kategori kompresi file :

1. File ZIP (.zip)

File ZIP adalah format kompresi file yang paling tua. ZIP menggabungkan beberapa file ke dalam satu file.

2. File RAR (.rar)

Standar kompresi RAR mengkompres file 15 persen lebih kecil daripada ZIP. Program RAR dan WinRAR (untuk windows) tidak hanya mengkompres file dalam bentuk format RAR, tetapi juga membaca file ZIP dan beberapa format file kompresi lainnya (Enterprise, 2010).

Selain beberapa jenis file di atas, masih banyak jenis file yang tidak disebutkan, seperti file aplikasi berupa file EXE (.exe), , file photoshop berupa file PSD (.psd), file pemograman berupa file PHP (.php), HTML (.html), ASP (.asp), dan lain-lain.

2.7 Penelitian Terkait

1. Penelitian oleh Silvia Annelis menggunakan teknik kriptografi hibrida dengan menggunakan kombinasi dua algoritma Caesar Cipher dan RSA untuk pengkodean pesan. Algoritma Caesar Cipher merupakan algoritma kunci simetri yang digunakan untuk mengkodekan pesan dan algoritma RSA merupakan algoritma kunci asimetri yang digunakan untuk mengkodekan kunci simetri Caesar Cipher. Teknik metode krptografi hibrida ini akan lebih aman digunakan jika dibandingkan dengan menggunakan hanya satu algoritma sehingga penulis menggunakan algoritma yang berbeda untuk kriptografi hibrida.

2. Penelitian oleh Eko Ariwibowo menggunakan algoritma kunci asimetri Elgmal untuk keamanan dokumen office. Pada penelitian tersebut hanya sebatas mengamankan dokumen office dan menggunakan satu algoritma


(46)

sehingga penulis menambahkan pengamanan pada file yang sudah diuji dengan algoritma yang berbeda.

3. Penelitian oleh Hendry Yuandi menggunakan metode Hill (algoritma Hill Cipher) untuk merancang perangkat lunak pengenkrpsian citra .bmp dan .jpg. Pada penelitian tersebut hanya mengenkripsi sebatas format file citra dengan dua file ekstensi yang berbeda sehingga penulis menambahkan pengamanan pada semua file dengan menggunakan algoritma yang sama yaitu Hill Cipher.


(47)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

Dalam bab ini berisi beberapa hal diantaranya analisis sistem, pemodelan sistem, dan perancangan sistem dapat dilihat sebagai berikut.

3.1 Analisis Sistem

Analisis sistem didefenisikan sebagai bagaimana memahami dan membuat spesifikasi dengan detail apa yang harus dilakukan oleh sistem.

3.1.1 Analisis Masalah

Masalah yang akan diselesaikan dengan menggunakan sistem ini adalah pengamanan semua file dalam bentuk, gambar, teks, dokumen office, video, dll yang akan dikirim melalui suatu jaringan yang berupa internet supaya tidak terjadi hal-hal yang tidak diinginkan seperti yang kita ketahui sekrang ini, banyaknya penyimpangan yang terjadi di jaringan. Salah satunya penyadapan file oleh yang berkepentingan juga tentang itu, pemodifikasian suatu file sehingga kemungkinan besar akan menjadi masalah bagi suatu organisasi. Dalam sistem file ini, file akan diamankan dengan metode algoritma kriptografi hibirda, dimana file akan diamankan oleh algoritma kunci simetris Hill Cipher dan kunci simetris tersebut akan diamankan lagi dengan algoritma kunci asimetris Knapsack. Kunci asimetris Knapsack ini menggunakan dua kunci yang berbeda, yaitu kunci publik dan kunci privat. Kunci publik digunakan untuk enkripsi dan kunci privat digunakan untuk dekripsi. Kunci publik dapat diketahui orang lain tetapi kunci privat hanya pengirim dan penerima pesan yang dapat mengetahuinya.


(48)

Berikut ini isikhawa untuk analisis permasalahan :

User Metode

Material Sistem

Meningkatkan keamanan file dan kunci Pesan yang dikirim rahasia

Harus dilindungi dari orang lain Membutuhkan biaya yang mahal untuk

pendistribusian yang lebih aman Media pendistribusian harus aman

Pesan berupa file

Sistem masih menggunakan pengamanan file tertentu Banyak tingkat pengamanan rendah Semakin banyak tingkat pengamanan semakin

banyak tingkat pembobolan Cipher objek beruba file Hill Cipher dan Knapsack

Gambar 3.1 Ishikawa Diagram untuk Analisis Permasalahan Sistem

Diagram ishikawa pada gambar 3.1 menunjukkan ada dua hal yang utama, yaitu bagian permasalahan dan penyebabnya. Permasalahannya dalam meningkatkan keamanan file dan kunci, sedangkan penyebabnya ada 4 hal yaitu pertama metode yang diguanakan adalah kriptografi hibrida, kedua user yaitu pengirim dan penerima pesan, ketiga material, dan yang keempat sistem yang merupakan sistem yang sudah ada sebelumnya.

3.1.2 Analisis Persyaratan

Analisis persyaratan bertujuan untuk mengidentifikasi dan menyatakan persyaratan. Dalam suatu sistem analisis persyaratan dibagi menjadi dua bagian yaitu persyaratan fungsional (functional requirement) dan persyaratan nonfungsional (nonfunctional requirement). Persyaratan fungsional merupakan deskripsi mengenai aktivitas dan layanan yang harus diberikan / disediakan oleh sebuah sistem, dan persyaratan nonfungsional merupakan deskripsi mengenai fitur, karakteristik, dan batasan lainnya yang menentukan apakah sistem memuaskan atau tidak.


(49)

3.1.2.1 Persyaratan Fungsional

Dalam pengamanan file Algoritma Hill Cipher dan pengaman kunci dengan Algoritma Knapsack ini mempunyai persyaratan fungsional yang harus dipenuhi, antara lain:

1. File yang akan dienkripsi mencakup semua file.

2. Kunci yang digunakan dalam pengamanan file adalah berupa kunci matriks 2x2.

3. Untuk menentukan kunci matriks Hill Cipher, harus memiliki matriks identitas

4. Bilangan-bilangan yang digunakan untuk kunci matriks adalah bilangan bulat positif

5. Untuk menentukan kunci Knapsack, terlebih dahulu membuat barisan superincreasing dimana kunci matriks berpengaruh dengan barisan tersebut

6. File dokumen yang sudah dienkripsi disimpan dalam format tanpa ada syarat

tertentu

3.1.2.2 Persyaratan Nonfungsional

Dalam sistem kriptografi hibrida, persyaratan nonfungsional meliputi performa, mudah dipelajari dan digunakan, hemat biaya, dokumentasi, manajemen kualitas, dan kontrol.

1. Performa

Perangkat lunak yang akan dibangun harus dapat menunjukkan hasil dari proses enkripsi dan dekripsi file maupun kunci yang digunakan oleh sistem. 2. Mudah dipelajari dan digunakan

Perangkat lunak yang akan dibangun harus sederhana agar mudah dipelajari oleh pengguna (user).


(50)

Perangkat lunak yang akan dibangun tidak perlu perangkat tambahan ataupun perangkat pendukung dalam proses eksekusinya.

4. Dokumentasi

Perangkat lunak yang akan dibangun dapat menyimpan file dan kunci yang telah dienkripsi.

5. Manajemen kualitas

Perangkat lunak yang akan dibangun harus memiliki kualitas yang baik yaitu proses enkripsi dan proses dekripsi file dokumen dan kunci yang relatif cepat. 6. Kontrol

Perangkat lunak yang akan dibangun harus memiliki messege error (pesan kesalahan) supaya tidak terjadi kesalahan maupun kesulitan oleh pengguna dalam memasukkan inputan.

3.1.3 Analisis Proses

Pada sistem ini ada dua algoritma kriptografi yang dikombinasikan untuk mengamankan file yaitu algoritma kunci simetris Hill Cipher dan algoritma kunci asimetris Knapsack. Algoritma kunci simetris (Session Key) Hill Cipher digunakan untuk mengamankan file dokumen office (Plaintext), sedangkan algoritma kunci asimetris Knapsack digunakan untuk mengamankan Session Key tersebut. Kombinasi dua algoritma inilah yang disebut dengan sistem kriptografi Hibrida (Hybrid).

Pada analisis proses ini tahapan yang akan dilakukan ataupun dikerjakan oleh sistem adalah sebagai berikut:

1. Proses enkripsi Plaintext (file) dan Key Session

Pada proses ini, enkripsi Plaintext dapat dikerjakan jika nilai bit-bit pada file sudah didapatkan. File yang sudah dienkripsi dinamakan dengan cipherfile dan Key Session terenkripsi disebut Cipherkey. Semua yang sudah terenkripsi akan disimpan dalam drive penyimpanan data sistem komputer, kemudian akan dikirimkan kepada penerima pesan lewat jaringan.


(51)

Pada proses ini, penerima yang telah memperoleh file dan kunci yang terenkripsi akan melakukan dekripsi. Pertama penerima mendekripsi Cipherkey supaya dapat dugunakan kembali untuk mendekripsikan file yang terenkripsi. Berikut ini merupakan contoh penggunaan metode kriptografi hibrida yaitu kombinasi antar dua algoritma kriptografi simetri dan asimetri dimana algoritma Hill Cipher sebagai algoritma untuk kunci simetri dan algoritma Knapsack sebagai algoritma untuk kunci asimetri. Di sini saya akan mencontohkan file dalam bentuk teks “HANNA”

Tahap 1 : Pengirim mengenkripsi teks dengan kunci simetri

Tahap 2 : Enkripsi kunci simetri dengan public key (kunci asimetri Knapsack) Tahap 3 : Penerima mendekripsi Session Key degan Private key (kunci asimetri Knapsack)

Tahap 4 : Mendekripsi teks dengan Session Key Hill Cipher Penyelesaian :

Tahap 1: Pengirim mengenkripsi teks dengan Session Key dengan metode Hill

Cipher

Sebelum masuk dalam proses, ditentukan harga dalam abjad tersebut, tiap harga dari tiap abjad bisa dilihat dalam tabel ASCII (terlampir)

Disini saya buat key matriksnya 2x2 yaitu: K =

Karena kolom dari matriks adalah 2, maka kata yang akan dienkripsi juga harus dibagi agar membentuk 2 huruf, ini dilakukan karena syarat perkalian matriks adalah “baris matriks A = kolom matriks B”

Pertama semua kata/kalimat digabung menjadi HANNA, lalu dibagi dan tentukan nilai tiap-tiap huruf:

H A N = 72, 65, 78 N A S = 78, 65, 83


(52)

(ditambahkan karakter sembarang supaya jumlah baris pada matriks A sama dengan jumlah pada matriks B. Pada contoh ini karakter yang ditambahkan adalah karakter S yang bilangan desimalnya 83.

Selanjutnya dilakukan perkalian matriks untuk mencari ciphertext: P = 72 65 78 78 65 83

= = =

= (mod 256)

Karakter yang berkorespondensi dengan 206, 134, 237, 248, 81, dan 86 adalah ╬, Å, φ, °, Q, dan V

Ciphertext yang diperoleh : { ╬Åφ°QV }

Tahap 2 : Enkripsi Key Session dengan kunci publik (Kunci asimetri) dengan

Knapsack

Key Session: {1 5 9 8}

Misalnya barisan superincreasing kita buat : w = [1, 2, 4, 8], = 86, r = 71

- Key dibuat dalam bentuk biner 8 bit: 1 = 00000001

5 = 00000110 9 = 00001001 8 = 00001000

- Barisan non superincreasing

Jadi kunci publik adalah : {71, 56, 26, 52} Sedangkan kunci privat : w = {1, 2, 4, 8}


(53)

- Plainkey (session key) yang akan dienkripsi dipecah menjadi blok-blok 4 bit: 0000 0001 0000 0110 0000 1001 0000 1000

Blok Plainteks key 1 : 0000

Kunci Publik : 71, 56, 26, 52

Kriptogram : (0*71)+(0*56)+(0*26)+(0*52) = 0 Blok Plainteks key 2 : 0001

Kunci Publik : 71, 56, 26, 52

Kriptogram : (0*71)+(0*56)+(0*26)+(1*52) = 52 Blok Plainteks key 3 : 0000

Kunci Publik : 71, 56, 26, 52

Kriptogram : (0*71)+(0*56)+(0*26)+(0*52) = 0 Blok Plainteks key 4 : 0110

Kunci Publik : 71, 56, 26, 52

Kriptogram : (0*71)+(1*56)+(1*26)+(0*52) = 82 Blok Plainteks key 5 : 0000

Kunci Publik : 71, 56, 26, 52

Kriptogram : (0*71)+(0*56)+(0*26)+(0*52) = 0 Blok Plainteks key 6 : 1001

Kunci Publik : 71, 56, 26, 52

Kriptogram : (1*71)+(0*56)+(0*26)+(1*52) = 123 Blok Plainteks key 7 : 0000

Kunci Publik : 71, 56, 26, 52

Kriptogram : (0*71)+(0*56)+(0*26)+(0*52) = 0 Blok Plainteks key 8 : 1000

Kunci Publik : 71, 56, 26, 52

Kriptogram : (1*71)+(0*56)+(0*26)+(0*52) = 71 Jadi cipherkey yang dihasilkan adalah :

0, 52, 0, 82, 0, 123, 0, 7


(54)

- Dekripsi dilakukan dengan kunci privat {1, 2, 4, 8}. Disini dan

Nilai diperoleh sebagai berikut:

Dengan mencoba maka untuk diperoleh bilangan bulat, yaitu:

- Session key yang diperoleh dari enkripsi key sebelumnya adalah 0, 52, 0, 82, 0, 123, 0, 71.

Plaintext yang berkoresponden diperoleh kembali sebagai berikut: , berkorespondensi dengan 0000

, berkorespondensi dengan 0001 , berkorespondensi dengan 0000

, berkorespondensi dengan 0110

, berkorespondensi dengan 0000

, berkorespondensi dengan 1001

, berkorespondensi dengan 0000 , berkorespondensi dengan 1000

Total hasil korespondensi :

0000 0001 0000 0110 0000 1001 0000 1000

- Ubah Session Key ke dalam bentuk blok 8 bit untuk memperoleh session key kembali dan konversi ke decimal sehingga diperoleh :

00000001 00000110 00001001 00001000 1 5 9 8

Tahap 4 : Mendekripsi teks dengan Session Key (dekripsi Hill Cipher)


(55)

1 5 9 8 Sehingga :

- Cari Adjoint dari Session Key K

- Cari Determinan K

- Cari Invers dari Determinan K

- Cari K-1


(56)

Catatan : Setiap hasil yang bernilai negatif, ditambahkan 256 agar tetap positif, ini dilakukan karena yang digunakan adalah bilangan dari 0-255

- Lakukan pembuktian bahwa K saling invers dengan K-1 dengan melakukan perkalian, dan hasilnya adalah matriks identitas

terbukti

- Jika telah terbukti menghasilkan matriks identitas, selanjutnya lakukan dekripsi dengan mengalikan matriks K-1 dengan ciphertext

Ciphertext:

╬ Å φ ° Q V 206 134 237 248 81 86

Karakter yang berkorespondensi dengan 72, 65, 78, 78, 65, dan 83 adalah H, A, N, N, A, S

Sehingga plaintext yang dihasilkan kembali adalah 72, 65, 78, 78, 65, 83

H, A, N , N, A, S

- Hapus huruf terakhir, karena pada saat kita melakukan enkripsi, telah ditambahkan 1 sembarang karakter untuk memenuhi syarat perkalian matriks. - Hasil Dekripsi adalah HANNA


(57)

Sistem ini menggunakan kombinasi dua algoritma untuk pengamanan file dan kunci antara lain adalah kriptografi algoritma Hill Cipher dan kriptografi algoritma Knapsack. Kombinasi kedua algoritma inilah yang disebut dengan Kriptografi Hibrida. Algoritma Hill Cipher digunakan untuk mengamankan file dimana algoritma ini memiliki kunci simetris berupa kunci matriks untuk melakukan pengenkripsian. Kunci matriks ini harus memiliki matriks identitas karena berpengaruh dalam proses dekripsi file sebagai pengembalian hasil enkripsi (cipherfile) ke file asli semula (plaintext). Algoritma Knapsack digunakan untuk mengamankan kunci simetris dimana algoritma ini memiliki kunci asimetris yaitu kunci publik dan kunci privat. Kunci publik digunakan untuk mengenkripsi kunci simetris menghasilkan cipherkey, sedangkan kunci privat digunakan untuk mendekripsi cipherkey ke kunci asli semula.

3.2.1 Perancangan Unified Modelling Language (UML)

Unified Modelling Language (UML) merupakan metode pemodelan berupa gambar grafis yang digunakan sebagai sarana perancangan aplikasi/perangkat lunak yang berorientasi objek. Perancangan UML yang akan dibahas disini adalalah use case diagram, activity diagram, dan sequence diagram.

3.2.1.1 Use Case Diagram

Use case diagram adalah metode berbasis teks untuk menggambarkan dan mendokumentasikan proses yang kompleks di dalam sistem. Proses yang digmbarkan akan berlangsung secara terstruktur.

Use case diagram berikut merupakan inti dari penggunaan aplikasi yang dibuat. Jadi aplikasi tersebut akan diimplementasikan dan hanya digunakan oleh satu aktor yaitu user yang akan berinteraksi langsung dengan sistem. Di dalam penggunaan aplikasi dibutuhkan perawatan atau perbaikan jika terjadi kesalahan yang dapat mempengaruhi kinerja program.


(58)

Pada gambar 3.2 dijelaskan user mempunyai beberapa kontrol proses untuk melakukan fungsi yang akan dibangun, yaitu enkripsi dan dekripsi. Pada proses enkripsi terdapat beberapa fungsi yaitu enkripsi file dengan algoritma Hill Cipher dan enkripsi kunci (session key) dengan kunci publik algoritma Knapsack dimana masing-masing fungsi dibutuhkan pembangkit kunci yang dapat dibangkitkan secara langsung oleh sistem untuk proses enkripsi. Pada fungsi dekripsi terdapat dekripsi kunci yang terenkripsi dengan algoritma Knapsack dan dekripsi file yang terenkripsi algoritma Hill Cipher, dimana algoritma Knapsack memiliki kunci privat untuk mendekripsi kunci yang terenkripsi dan algoritma Hill Cipher memiliki kunci (session key) yang sudah didekripsi oleh algoritma Knapsack sebelumnya.


(59)

Berikut merupakan gambaran use case diagram untuk sistem yang akan dibangun pada gambar 3.2 :

Actor1

Kontrol Proses

Dekripsi Enkripsi

«uses»

«uses»

Enkripsi Hill Cipher

Enkripsi Knapsack «uses»

«uses»

Bangkitkan session key

Bangkitkan Kunci publik dan privat «extends»

«extends»

Dekripsi dengan Kunci Privat Knapsack

Dekripsi Hill Cipher «uses»

«uses»

Gambar 3.2 Use Case Diagram Sistem

Berikut merupakan skenario use case sistem :

i) Skenario Use Case Enkripsi

Use case : Enkripsi

Actor : User

Pre-Condition : Actor ingin melakukan proses enkripsi Post-Condition : Actor telah melakukan proses enkripsi

Decription : Actor melakukan proses enkrpsi untuk mengamankan file dan kunci.


(60)

Tabel 3.1 Tabel Skenario Use Case Enkripsi

User Sistem

1. Menginputkan file dan men-generate key matriks (key session)

2. Ekseskusi generate key session secara acak

3. Mencari file direktori penyimpanan untuk menyimpan file terenkripsi

4. Eksekusi pencarian direktori penyimpanan

5. Menekan tombol enkripsi 6. Eksekusi enkripsi file

7. Jika Berhasil, tampil messege box bahwa enkripsi file berhasil

8. Memilih banyak barisan

superincreasing w

9. Ekseskusi pemilihan barisan w 10.Jika terjadi kesalahan, maka

cek ke 1

11.Jika tidak ada kesalahan, maka dapat melakukan generate kunci publik dan kunci privat 12.Menekan tombol Generate untuk

pencarian kunci publik dan kunci privat

13.Eksekusi pencarian kunci publik dan kunci privat

14.Mencari file direktori penyimpanan untuk menyimpan file kunci yang ternekripsi dengan menekan tombol cari

15.Menekan proses enkripsi dengan menakan tombol enkripsi

16.Eksekusi enkripsi key session 17.Jika berhasil akan tampil


(61)

kunci berhasil

ii) Skenario Use Case Dekripsi Use case : Dekripsi

Actor : User

Pre-Condition : Actor ingin melakukan proses dekripsi Post-Condition : Actor telah melakukan proses dekripsi

Decription : Actor melakukan proses dekripsi untuk memperoleh file yang diinginkan

Tabel 3.1 Tabel Skenario Use Case Dekripsi

User Sistem

1. Mencari kunci yang terenkripsi (cipherkey) dengan menakan tombol cari

2. Eksekusi pencarian file kunci

3. Melakukan proses dekripsi kunci dengan menekan tombol dekripsi

4. Eksekusi proses dekripsi cipherkey

5. Jika berhasil maka akan tampil messegebox bahwa dekripsi kunci berhasil 6. Mencari file yang terenkripsi (cipherfile)

dengan menekan tombol cari

7. Eksekusi pencarian file 8. Mencari direktori penyimpanan

cipherfile yang akan didekripsi dengan menekan tombol cari

9. Eksekusi pencarian direktori penyimpanan

10. Melakukan proses dekripsi dengan menekan tombol dekripsi

11.Eksekusi dekripsi cipherfile 12.Jika berhasil maka akan

tampil messegebox bahawa dekripsi file berhasil


(1)

} }

10. Class Double Matrix using System;

using System.Collections;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace hybrid.Lib {

public class DoubleMatrix

{

public double determinant() {

if (this.ColumnCount != this.RowCount) {

throw new Exception("Determinan berlaku pada matrix NxN"); }

if (this.ColumnCount == 1) {

return this[0, 0]; }

if (this.ColumnCount != 2) {

throw new NotImplementedException("Fungsi hanya bisa melakukan determinant n=2");

}

int n = this.RowCount; if (n == 2) {

//(kunci[0, 0] * kunci[1, 1]) - (kunci[1, 0] * kunci[0, 1]);

return (this[0, 0] * this[1, 1]) - (this[0, 1] * this[1, 0]);

}

public DoubleMatrix adjoint() {

if (this.ColumnCount != this.RowCount) {

throw new Exception("Adjoint berlaku pada matrix NxN"); }

DoubleMatrix cofactor = new DoubleMatrix(this.ColumnCount,

this.RowCount);

for (int baris = 0; baris < this.RowCount; baris++ ) {

for (int kolom = 0; kolom < this.ColumnCount; kolom++ ) {

// ambil matrix yang sisa DoubleMatrix matrixSisa = new

DoubleMatrix(this.ColumnCount - 1, this.RowCount-1); int traceBaris = 0;

int traceKolom = 0;


(2)

for (int loopKolom = 0; loopKolom <

this.ColumnCount; loopKolom++) {

if (baris == loopBaris || kolom == loopKolom) { continue;

}

matrixSisa[traceKolom, traceBaris] =

this[loopKolom, loopBaris]; traceKolom++;

if (traceKolom >= matrixSisa.ColumnCount) { traceKolom = 0;

traceBaris++; }

} }

cofactor[kolom, baris] = Math.Pow(-1, baris + kolom) * matrixSisa.determinant();

} }

return cofactor.Transposed; }

public void mod(int mod) {

for (int baris = 0; baris < this.RowCount; baris++) {

for (int kol = 0; kol < this.ColumnCount; kol++) {

this[kol, baris] = this[kol, baris] % mod; }

} } } }

11. Class GCD

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace hybrid.Lib {

class GCD

{

public static long GCD1(long a, long b) {

while (b != 0) {

long tmp = b; b = a % b; a = tmp; }

return a; }

} }


(3)

TABEL ASCII

No Kode No Kode No Kode No Kode No Kode No Kode

0 44 , 88 X 132 Ä 176 220

1 ☺ 45 - 89 Y 133 À 177 221 ¦

2 46 . 90 Z 134 Å 178 222 Ì

3 47 / 91 [ 135 Ç 179 223

4 ♦ 48 0 92 \ 136 Ê 180 224 α

5 49 1 93 ] 137 Ë 181 Á 225 ß

6 ♠ 50 2 94 ^ 138 È 182 Â 226 Γ

7 51 3 95 _ 139 Ï 183 À 227 π

8 52 4 96 140 Î 184 © 228 Σ

9 53 5 97 a 141 Ì 185 ╣ 229 σ

10 54 6 98 b 142 Ä 186 || 230 µ

11 55 7 99 c 143 Å 187 231 τ

12 ♀ 56 8 100 d 144 É 188 ╝ 232 Φ

13 57 9 101 e 145 Æ 189 ¢ 233 Θ

14 ♫ 58 : 102 f 146 Æ 190 ¥ 234 Ω

15 ☼ 59 ; 103 g 147 Ô 191 ┐ 235 δ

16 60 < 104 h 148 Ö 192 └ 236

17 ◄ 61 = 105 i 149 Ò 193 ┴ 237 φ

18 ↕ 62 > 106 j 150 Û 194 238 ε

19 ‼ 63 ? 107 k 151 Ù 195 239

20 ¶ 64 @ 108 l 152 Ÿ 196 ─ 240 ≡

21 § 65 A 109 m 153 Ö 197 241 ±

22 ▬ 66 B 110 n 154 Ü 198 ã 242 ≥

23 ↨ 67 C 111 o 155 ¢ 199 Ã 243 ≤

24 ↑ 68 D 112 p 156 £ 200 244 (

25 ↓ 69 E 113 q 157 ¥ 201 ╔ 245 )

26 → 70 F 114 r 158 P 202 246 ÷

27 ← 71 G 115 s 159 Ƒ 203 247

28 ∟ 72 H 116 t 160 Á 204 ╠ 248 °

29 ↔ 73 I 117 u 161 Í 205 249 ·

30 ▲ 74 J 118 v 162 Ó 206 ╬ 250 ·

31 ▼ 75 K 119 w 163 Ú 207 ¤ 251 √

32 76 L 120 x 164 Ñ 208 ð 252 n


(4)

No Kode No Kode No Kode No Kode No Kode No Kode

34 " 78 N 122 z 166 ª 210 Ê 254

35 # 79 O 123 { 167 º 211 Ë 255

36 $ 80 P 124 | 168 ¿ 212 È

37 % 81 Q 125 } 169 ¬ 213 ı

38 & 82 R 126 ~ 170 ¬ 214 Í

39 :' 83 S 127 Ç 171 ½ 215 Î

40 :( 84 T 128 Ü 172 ¼ 216 Ï

41 ) 85 U 129 É 173 ¡ 217 ┘

42 * 86 V 130 Â 174 « 218 ┌

43 + 87 W 131 Ä 175 » 219 █

Keterangan : No : Nilai byte


(5)

CURRICULUM VITAE

DETAIL PROFIL

Nama Lengkap : Marlina Sihombing

Alamat Sekarang : Jln.Berdikari No 88 Pasar 1 Padang Bulan Alamat Orangtua : Pangaribuan, Kabupaten Tapanuli Utara Telp/Handphone : - / 082304593490

e-mail :[email protected]/[email protected] PendidikanTerakhir : Strata 1 (S1)

RIWAYAT PENDIDIKAN FORMAL

NAMASEKOLAH JURUSAN LOKASI KETERANGAN

S1 Universitas Sumatera Utara

S1 IlmuKomputer Medan 2009-2014

SMA SMA Negeri 1 Pangaribuan

IPA Pangaribuan 2005-2008

SMP SMP Negeri 1 Pangaribuan

- Pangaribuan 2002-2005

SD LumbanSormin - Pangaribuan 1996-2002

KEMAMPUAN DI DALAM BIDANG KOMPUTER

Pemrograman : Bahasa Pemograman PHP

: Bahasa Pemrograman C#, Basic.net (Beginner) DBMS : Menggunakan MySQL (Intermediate)


(6)

KEMAMPUAN BAHASA ASING

BahasaInggris : Listen (Passive) : Writing (Active) : Reading (Active)

ORGANISASI YANG TELAH DIIKUTI

SEBAGAI ORGANISASI TAHUN

ANGGOTA IMILKOM (Ikatan Mahasiswa Ilmu Komputer) 2009-SKRG ANGGOTA

ANGGOTA

KMKI (Komunitas Mahasiswa Kristen Ilmu Komputer)

Paduan Suara El-Shaddai USU

2009-SKRG 2010-2012

SEMINAR YANG TELAH DIIKUTI SEBAGAI SEMINAR

PESERTA SEMINAR TEKNOLOGI INFORMASI

“The Development of Modern Operating System Technology : Android – The New Trend in Modern Operating System”

Di Universitas Sumatera Utara (2011) PESERTA SEMINAR TEKNOLOGI INFORMASI

“Internet Masa Depan : Prospek dan Tantangannya” Di Universitas Sumatera Utara (2009)

PESERTA

PESERTA

WORKSHOP TEKNOLOGI INFORMASI “Graphic Design: Unlimited”

Di Universitas Sumatera Utara (2010) WORKSHOP TEKNOLOGI INFORMASI “Teknik Dasar Fotografi”