• Tidak ada hasil yang ditemukan

IMPLEMENTASI ALGORITMA ONE TIME PAD DAN ALGORITMA HILL CIPHER PADA APLIKASI SHORT MESSAGE SERVICE (SMS) BERBASIS ANDROID SKRIPSI

N/A
N/A
Protected

Academic year: 2022

Membagikan "IMPLEMENTASI ALGORITMA ONE TIME PAD DAN ALGORITMA HILL CIPHER PADA APLIKASI SHORT MESSAGE SERVICE (SMS) BERBASIS ANDROID SKRIPSI"

Copied!
80
0
0

Teks penuh

(1)

SKRIPSI

JONATHAN SIMAMORA 111401106

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN

2016

(2)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

JONATHAN SIMAMORA 111401106

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN

2016

(3)

PERSETUJUAN

Judul : IMPLEMENTASI ALGORITMA ONE TIME PAD DAN ALGORITMA HILL CIPHER PADA APLIKASI SHORT MESSAGE SERVICE (SMS) BERBASIS ANDROID

Kategori : SKRIPSI

Nama : JONATHAN SIMAMORA

Nomor Induk Mahasiswa : 111401106

Program Studi : SARJANA (S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA

UTARA

Diluluskan di

Medan, Januari 2016

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Amer Sharif, S.Si, M.Kom M. Andri Budiman, ST, M.Comp.Sc, M.E.M

NIP. - NIP. 19751008 200801 1 011

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001

(4)

PERNYATAAN

IMPLEMENTASI ALGORITMA ONE TIME PAD DAN ALGORITMA HILL CIPHER PADA APLIKASI SHORT MESSAGE SERVICE (SMS)

BERBASIS ANDROID

SKRIPSI

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

Medan, Januari 2016

Jonathan Simamora 111401106

(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa atas segala berkat- Nya sehingga penulis dapat menyelesaikan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.

Selama pengerjaan skripsi dengan judul Implementasi Algoritma One Time Pad dan algoritma Hill Cipher pada aplikasi Short Message Service (SMS) berbasis Android, penulis menyadari bahwa banyak pihak yang turut membantu, baik dari pihak keluarga, sahabat dan orang-orang terkasih yang memotivasi dalam pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:

1. Bapak Prof. Drs. Subhilhar, M.A., Ph.D.selaku Pj. 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, M.Kom. selaku Ketua Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara sekaligus selaku Dosen Penguji I yang telah memberikan kritik, saran dan dukungan kepada penulis dalam menyelesaikan skripsi ini.

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc. selaku Sekretaris Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara

5. Bapak M. Andri Budiman, ST, M.Comp.Sc, M.E.M selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran, nasehat dan masukan kepada saya dalam pengerjaan skripsi ini.

6. Bapak Amer Sharif, S.Si, M. Kom selaku Dosen Pembimbing II yang telah memberikan kritik, saran dan dukungan kepada penulis dalam menyelesaikan skripsi ini.

7. Bapak Drs. Dahlan Sitompul, M.Eng selaku Dosen Penguji II Yang telah memberikan kritik, saran dan dukungan kepada penulis dalam menyelesaikan skripsi ini.

8. Seluruh dosen dan pegawai Program studi S1 Ilmu Komputer Fasilkom-TI USU.

(6)

9. Bapak saya Armen Simamora, S.H, Ibu saya Sulastri A.R Simbolon, S.Kep, N.ers., Abang saya Daniel B.H. Simamora, S.H, Gandar Brisson Siregar, A.md dan Kakak saya Dr. Arlentina B. Simamora yang selalu memberikan Doa, dukungan dan bantuan yang ternilai harganya kepada penulis dalam menyelesaikan skripsi ini.

10. Teman-teman kuliah saya KOM A angkatan 2011 khususnya Hari, Edwin, Fernandes, Samuel, Henry, Stephen, Farid, Ridho, Edi, Deka, Joshua, Johan, Mey, Adit, Ari, Agung, Ari, Rifai, Afif yang telah memberi inspirasi dan semangat kepada penulis.

11. Dan teman-teman SMA saya PSIWAK4 angkatan 53 yang selalu memberi semangat dan motivasi kepada penulis dalam menyelesaikan skripsi ini.

Semoga Tuhan Yang Maha Esa melimpahkan berkat dan karunia kepada semua pihak yang telah memberikan inspirasi, bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan pengerjaan skripsi ini.

Penulis menyadari bahwa skripsi ini masih memiliki banyak kekurangan dan jauh dari kesempurnaan. Oleh karena itu, penulis mengharapkan kritik dan saran yang bersifat membangun untuk menyempurnakan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.

Medan, Januari 2016

Penulis

(7)

ABSTRAK

Seiring dengan perkembangan zaman, keamanan suatu pesan sangat penting untuk dijaga ataupun dirahasiakan guna menghindari hal-hal yang tidak diinginkan. Ilmu yang mempelajari tentang pengamanan data dinamakan Kriptografi. Dalam penelitian ini penulis menggabungkan Algoritma One Time Pad digunakan untuk mengamankan pesan dan Algoritma Hill Cipher untuk mengamankan kunci dari pesan. Dalam penelitian ini penulis membuat sebuah aplikasi yang berisikan implementasi kombinasi algoritma simetris berbasis Android. Besar data sesudah proses enkripsi akan meningkat, akan tetapi akan kembali ke ukuran semula setelah proses dekripsi. Waktu yang dibutuhkan untuk proses enkripsi berkisar selama 0,00178 detik dan waktu yang dibutuhkan untuk proses dekripsi berkisar selama 0,0039 detik.

Kunci : Kriptografi, One Time Pad, Hill Cipher, Pesan, Android

(8)

IMPLEMENTATION OF ONE TIME PAD ALGOTIRHM AND HILL CIPHER ALGORITHM IN SHORT MESSAGE SERVICE APLICATION BASED ON

ANDROID

ABSTRACT

Along with the modernisation of time, security of a message is very important to be kept or kept secret to avoid unwanted things. Science study about security data is named Cryptography. In this study authors combine algorithm One Time Pad used for securing and algorithm Hill Cipher for securing key of the message. In this study authors make an application that contained symmetric algorithm combination implementation based Android. Large data encryption process after will be increased, but will return to the size again after the decrypt. Time needed for encryption process is around 0.00178 seconds and the time needed for decryption process is around 0.0039 seconds.

Keywords : Cryptography, One Time Pad, Hill Cipher, Message, Android

(9)

DAFTAR ISI

Hal.

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar isi viii

Daftar Gambar x

DaftarTabel xi

Daftar Lampiran xii

Bab I Pendahuluan

1.1 Latar Belakang 1

1.2 Perumusan 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 Landasan Teori

2.1 Kriptografi 6

2.1.1 Sejarah Kriptografi 6

2.1.2 Algoritma Kriptografi 7

2.2 Jenis-jenis Algoritma Kriptografi 9

2.2.1Algoritma Simetris 9

2.2.2Algoritma Asimetris 11

2.3 Algoritma One Time Pad 12

2.3.1 Enkripsi One Time Pad 12

2.3.2 Dekripsi One Time Pad 13

2.4 Algoritma Hill Cipher 14

2.4.1 Enkripsi Hill Cipher 16

2.4.2 Dekripsi Hill Cipher 17

2.5.Algoritma Blum-Blum Shub 22

2.6 Aritmatika Modulo 23

2.6.1Greatest Common Divisor (GCD) 24

2.6.2Bilangan Prima 24

2.6.3Relatif Prima 25

2.6.4 Algoritma Euclid 26

2.6.5 Extended Euclidean 26

2.6.6 Chinese Remainder Theorem 27

2.7 Android 28

2.8 Penelitan Relevan 29

(10)

Bab III Analisis dan Perancangan Sistem

3.1 Analisis Sistem 30

3.1.1 Analisis Masalah 30

3.1.2 Analisis Persyaratan 31

3.1.2.1 Persyaratan Fungsional 31

3.1.2.2 Persyaratan Nonfungsional 32

3.1.3 Analisis Proses 32

3.2 Pemodelan (UML) 33

3.2.1 Use Case Diagram 33

3.2.2 Activity Diagram 35

3.2.3 Sequence Diagram 35

3.3 Flowchart 37

3.3.1 Flowchart Sistem 37

3.3.2 Flowchart Enkripsi 39

3.3.3 Flowchart Dekripsi 40

3.4 Perancangan sistem 41

3.4.1 Form Utama 41

3.4.2 Form Pengirim 42

3.4.3 Form Penerima 43

Bab IV Implementasi dan Pengujian

4.1 Implementasi Sistem 45

4.1.1Form Main Menu 45

4.1.2 Form Buat Pesan 46

4.1.3 Form Pesan Keluar 46

4.1.4 Form Tentang 47

4.1.5 Form Bantuan 48

4.2 Pengujian Sistem 49

4.2.1 Pengujian Hasil Enkripsi 49

4.2.1.1 Pengujian Hasil Enkripsi dengan Sistem 49 4.2.1.2 Pengujian Hasil Enkripsi dengan Perhitungan Manual 50

4.3 Pengujian Lama Waktu Enkripsi dan Dekripsi 52

4.3.1 Pengujian Lama Waktu Enkripsi 52

4.3.2 Pengujian Lama Waktu Dekripsi 53

4.3.3 Perbandingan Waktu Enkripsi dan Dekripsi 54 Bab V Kesimpulan dan Saran

5.1 Kesimpulan 55

5.2 Saran 55

Daftar Pustaka 56

(11)

DAFTAR GAMBAR

Hal.

Gambar 2.1 Proses Enkripsi dan Dekripsi 8

Gambar 2.2 Skema Kriptografi Simetris 9

Gambar 2.3 Skema Kriptografi Asimetris 11

Gambar 2.4 Illustrasi Enkripsi Hill Cipher 16

Gambar 2.5 Illustrasi Dekripsi Hill Cipher 18

Gambar 3.1 Diagram Ishikawa 31

Gambar 3.2 Use Case Diagram 33

Gambar 3.3 Activity Diagram 35

Gambar 3.4 Activity Diagram Pada Prose Enkripsi 36

Gambar 3.5 Activity Diagram Pada Proses Dekripsi 37

Gambar 3.6 Flowchart Sistem 38

Gambar 3.7 Flowchart Enkripsi 39

Gambar 3.8 Flowchart Dekripsi 40

Gambar 3.9 Form Menu Utama 41

Gambar 3.10 Perancangan Form Pengirim 42

Gambar 3.11 Perancangan Form Penerima 43

Gambar 4.1 Form main Menu 45

Gambar 4.2 Form Enkripsi 46

Gambar 4.3 Form Dekripsi 47

Gambar 4.4 Form tentang 48

Gambar 4.5 Form Bantuan 49

Gambar 4.6 Proses enkripsi dan hasilnya 50

Gambar 4.7 Grafik waktu enkripsi 53

Gambar 4.8 Grafik waktu dekripsi 54

Gambar 4.9 Grafik perbandingan waktu enkripsi dan dekripsi 54

(12)

DAFTAR TABEL

Hal.

Tabel 2.1 Enkripsi One Time Pad 12

Tabel 2.2 Dekripsi One Time Pad 13

Table 2.3 Transformasi Alphabet 16

Table 2.4 Enkripsi Hill Cipher 17

Table 2.5 Dekripsi Hill Cipher 19

Table 2.6 Hasil Adjoint matrix K 19

Tabel 2.7 Proses determinan matrix K 19

Tabel 2.8 Proses pencarian 𝐾−1 20

Tabel 2.9 Proses Pembulatan 20

Tabel 2.10 Proses saling Invers 20

Tabel 2.11 Tabel Cipher teks 20

Tabel 2.12 Proses dekripsi Hill Cipher 22

Tabel 3.1 Naratif Use Case Encryption 33

Tabel 3.2 Naratif Use Case Decryption 34

Tabel 4.1 Tabel Enkripsi Pesan One Time Pad 51

Tabel 4.2 Proses Enkripsi Hill Cipher 51

Tabel 4.3 Hasil Enkripsi Hill Cipher 52

Tabel 4.5 Hasil Pengujian Lamanya Proses Enkripsi 52 Tabel 4.5 Hasil Pengujian Lamanya Proses Dekripsi 53 Tabel 4.6 Perbandingan Waktu Enkripsi dan Dekripsi 54

(13)

DAFTAR LAMPIRAN

Hal.

A. Listing Program A-1

B. Curriculum Vitae B-1

(14)

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Perkembangan ilmu pengetahunan yang sangat pesat terutama di bidang informatika dapat dirasakan dalam berbagai dimensi kehidupan manusia. Perkembangan ilmu pengetahuan itu sendiri telah memicu manusia untuk lebih mengembangkan teknologi.

Perkembangan teknologi juga menuntut kita untuk meningkatkan keamanan. Seiring dengan itu keamanan informasi yang dipertukarkan juga sangat diperlukan guna menghindari hal-hal yang tidak diinginkan.

Ada beberapa teknik yang digunakan untuk menjaga keamanan informasi maupun pesan. Salah satu metode pengamanan informasi maupun pesan adalah dengan menggunakan enkripsi dan dekripsi data. Bidang ilmu yang mempelajari metode tersebut dinamakan Kriptografi.

Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan atau informasi yang dapat dibaca. Pesan biasanya disebut juga plaintext. (Kromodimoeljo, 2010). Dalam kriptografi banyak algoritma yang bias diterapkan seperti: Hill Cipher, Vigenere Cipher, Caesar Cipher, Affine Cipher, AES, DES, IDEA, RSA, dan lain-lain.

Proses menyamarkan pesan sedemikian rupa untuk menyembunyikan substansinya disebut enkripsi. Sebuah pesan yang dienkripsi disebut ciphertext. Proses untuk mengubah ciphertext kembali ke plaintext adalah dekripsi (Mollin, 2007).

Metode dalam mengenkripsi dan dekripsi data sudah banyak dan telah dimulai sejak zaman dahulu. Mulai dari era sebelum Masehi, hingga sekarang algoritma penyandian ini selalu berkembang. Namun demikian, penelitian akademis yang ekstensif dalam bidang kriptografi masih tergolong baru. Pada pertengahan tahun 1970-an, muncul konsep baru dalam kriptografi yaitu kriptografi kunci publik (Kromodimoeljo, 2010).

(15)

Algoritma kriptografi memiliki 2 jenis, yaitu algoritma simetris dan algoritma asimetris. Algoritma simetris adalah suatu algoritma dimana kunci enkripsi yang digunakan sama dengan kunci dekripsi. Sebelum mengirim pesan, pengirim dan penerima pesan harus memiliki kunci yang sama untuk digunakan bersama, dan kunci itu haruslah rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini sering disebut juga algoritma kunci rahasia. Algoritma asimetris adalah algoritma dimana kunci yang digunakan untuk proses enkripsi dan dekripsi tidaklah sama.

Salah satu algoritma klasik adalah One Time Pad. One Time Pad adalah salah satu algoritma simetris, algortima yang sempurna dan tidak dapat dipecahkan sehingga diberi gelar Unbreakable Cipher (Munir, 2006). Algoritma ini menggunakan satu kunci untuk satu pesan dan untuk pesan berikutnya dilakukan proses pengacakkan. Tetapi algoritma ini memiliki kelemahan yaitu kunci yang digunakan harus benar-benar acak dan panjang kunci harus sama dengan panjang pesan.

Algoritma Hill Cipher merupakan algoritma simetris dan jenis lain dari Polygraphic Cipher. Sandi ini mngenkripsi suatu string huruf menjadi bentuk string yang lain dengan panjang yang sama.

Pada penelitian ini pesan teks nantinya akan dienkripsi dengan menggunakan algoritma One Time Pad sehingga menghasilkan cipherteks pesan. kemudian kunci yang digunakan pada Hill Cipher. Dengan demikian baik pesan maupun kuncinya akan terjaga kerahasiaannya dikarenakan sama-sama mengalami proses enkripsi tetapi menggunakan algoritma yang berbeda.

Agar mempermudah dalam penggunaan aplikasi dekripsi dan enkripsi, penulis akan membangun aplikasi tersebut berbasis Android pada smartphone. Penulis memilih Android dikarenakan pengguna Android sudah sangat banyak sehingga diharapkan pengguna aplikasi ini nantinya banyak juga.

1.2 Perumusan Masalah

Berdasarkan uraian latar belakang yang telah diuraikan, maka rumusan masalah yang akan dibahas adalah bagaimana mengimplementasikan algoritma One Time Pad dan algoritma Hill Cipher berbasis Android sebagai cara merahasiakan pesan dalam bentuk Short Message Service (SMS).

(16)

1.3 Batasan Masalah

Ruang lingkup dalam penelitian ini adalah sebagai berikut:

1. Bahasa pemrograman yang digunakan adalah Java dengan Eclipse sebagai IDE.

2. Pada algoritma Hill Cipher menggunakan matriks 3x3.

3. Tidak membandingkan kedua algoritma.

4. Karakter yang digunakan menggunakan tabel ASCII 127.

5. Blum-Blum Shub sebagai pembangkit kunci.

6. Penelitian ini hanya membahas teknik pengamanan pesan teks dengan algoritma One Time Pad serta algoritma Hill Cipher sebagai pengaman kunci.

1.4 Tujuan Penelitian

Dalam penelitian ini, tujuan yang ingin dicapai adalah menerapkan aplikasi Short Message Service (SMS) untuk merahasiakan pesan dengan menggunakan algoritma One Time Pad dan Algoritma Hill Cipher pada perangkat berbasis Android.

1.5 Manfaat Penelitian

Diharapkan penelitian ini bermanfaat untuk:

1. Menambah pengetahuan penulis dalam melakukan proses enkripsi dan dekripsi suatu pesan dengan menggunakan algoritma One Time Pad dan algoritma Hill Cipher.

2. Penelitian ini diharapkan mampu menghasilkan solusi dengan membangun aplikasi dekripsi dan enkripsi yang lebih aman dan tidak mudah dipecahkan oleh pihak-pihak yang tidak berwenang.

3. Sebagai bahan referensi bagi peneliti yang ingin membahas topik yang terkait dengan penelitian ini.

(17)

1.6 Metodologi Penelitian

Metodologi penelitian yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut:

1. Studi Literatur

Pada tahapan ini penulis mengumpulkan bahan dan data sebagai referensi dari berbagai buku, jurnal, prosiding, skripsi dan sumber lainnya yang berkaitan dengan penulisan tugas akhir. Ini dilakukan untuk memperoleh informasi yang terkait dengan metode One Time Pad, Hill Cipher, serta pemrograman java untuk pemrograman android.

2. Analisis

Tahap ini digunakan untuk mengolah data dari hasil studi literatur yang kemudian dilakukan analisis terhadap cara kerja proses enkripsi dan dekripsi dengan menggunakan algoritma One Time Pad dan algoritma Hill Cipher.

3. Perancangan Sistem

Pada tahap ini dilakukan perancangan sistem yang meliputiproses pembuatan algoritma program, use case scenario, flowchart sistem, flowchart algoritma, rancangan aplikasi, dan pembuatan user interface aplikasi.

4. Implementasi Sistem

Metode ini dilakukan dengan mengimplementasikan rancangan sistem yang telah dibuat pada analisis dan perancangan sistem ke dalam program komputer dengan menggunakan bahasa pemrograman Java kemudian nantinya diimplementasikan kedalam Eclipse sehingga dapat dijalankan di perangkat smartphone berbasis Android.

5. Pengujian Sistem

Pada tahapan ini dilakukan pengujian aplikasi yang di buat telah berhasil berjalan sesuai dengan keinginan dan akan melakukan perbaikan apabila terdapat error.

6. Dokumentasi

Berisikan laporan dan kesimpulan akhir dari penelitian dan pengujian dalam bentuk skripsi.

(18)

1.7 Sistematika Penulisan

Agar pembahasan lebih sistematis, maka tulisan ini dibuat dalam lima bab, yaitu : BAB I PENDAHULUAN

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

BAB II LANDASAN TEORI

Berisi teori mengenai kriptografi, enkripsi, dekripsi, algoritma modern, algoritma klasik, algoritma One Time Pad, Algoritma Hill Cipher dan Algoritma Blum-Blum Shub.

BAB III ANALISIS DAN PERANCANGAN

Berisi tentang analisis algoritma autokey cipher dan algoritma kunci publik rabin terhadap proses enkripsi dan dekripsi yang terdiri dari Use Case Diagram, Activity Diagram, Flowchart dan perancangan tampilan form aplikasi.

BAB IV IMPLEMENTASI DAN PENGUJIAN

Berisi mengenai sistem dan pembuatan program sesuai dengan analisis dan perancangan sistem kemudian dilakukan pengujian terhadap sistem.

BAB V KESIMPULAN DAN SARAN

Berisi kesimpulan yang diperoleh dari hasil penelitian dan saran-saran yang berguna untuk pengembangan penelitian selanjutnya.

(19)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Kriptografi berasal dari bahasa Yunani, Crypto dan graphia. Crypto berarti secret (rahasia) dan graphien bererti writing (tulisan). Menurut terminologinya kriptografi adalah ilmu dan seni menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain (Ariyus, 2008).

2.1.1 Sejarah Kriptografi

Kriptografi pada dasarnya sudah dikenal sejak lama. Menurut catatan sejarah, kriptografi sudah digunakan oleh bangsa Mesir sejak 4000 tahun yang lalu oleh raja- raja Mesir pada saat perang untuk mengirimkan pesan rahasia kepada panglima perangnya melalui kurir-kurinya. Orang yang melakukan penyandian ini disebut kriptografer, sedangkan orang yang mendalami ilmu dan seni dalam membuka atau memecahkan suatu algoritma kriptografi tanpa harus mengetahui kuncinya disebut kriptanalis.

Seiring dengan perkembangan teknologi, algoritma kriptografi pun mulai berubah menuju ke arah algoritma kriptografi yang lebih rumit dan kompleks. Kriptografi mau tidak mau harus diakui mempunyai peranan yang paling penting dalam peperangan sehingga algoritma kriptografi berkembang cukup pesat pada saat Perang Dunia I dan Perang Dunia II. Menurut catatan sejarah, terdapat beberapa algoritma kriptografi yang pernah digunakan dalam peperangan, diantaranya adalah ADFVGX yang dipakai oleh Jerman pada Perang Dunia I, Sigaba/M-134 yang digunakan oleh Amerika Serikat pada Perang Dunia II, Typex oleh Inggris, dan Purple oleh Jepang. Selain itu

(20)

Jerman juga mempunyai mesin legendaris yang dipakai untuk memecahkan sandi yang dikirim oleh pihak musuh dalam peperangan yaitu Enigma.

Algoritma kriptografi yang baik tidak ditentukan oleh kerumitan dalam mengolah data atau pesan yang akan disampaikan.

Ada 4 syarat yang perlu dipenuhi, yaitu:

1. Kerahasiaan.

Pesan (plaintext) hanyadapat dibaca oleh pihak yang memliki kewenangan.

2. Autentikasi.

Pengirim pesan harus dapat diidentifikasi dengan pasti, penyusup harus dipastikan tidak bisa berpura-pura menjadi orang lain.

3. Integritas.

Penerima pesan harus dapat memastikan bahwa pesan yang dia terima tidak dimodifikasi ketika sedang dalam proses transmisi data.

4. Non-Repudiation.

Pengirim pesan harus tidak bisa menyangkal pesan yang dia kirimkan (Andri, 2009).

2.1.2 Algoritma Kriptografi

Algoritma ditinjau dari asal usul kata, kata algoritma mempunyai sejarah yang menarik, kata ini muncul dalam kamus Webster sampai akhir tahun 1957 hanya menemukan kata algorism yang mempunyai arti proses perhitungan dengan bahasa Arab. Algoritma berasal dari nama penulis buku Arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa al-Khuwarizmi (al-Khuwarizmi dibaca oleh orang barat menjadi algorism). Kata algorism lambat laun berubah menjadi algorithm.

Definisi terminologinya Algoritma adalah urutan langkah-langkah logis untuk penyelesaian masalah yang disusun secara sistematis. Algoritma kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari orang- orang yang tidak berhak atas pesan tersebut.

Algoritma kriptografi dibagi tiga berdasarkan kunci yang dipakai, yaitu algoritma simetri (menggunakan satu kunci untuk proses enkripsi dan dekripsi), algoritma

(21)

asimetri (menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi) dan fungsi hash (Ariyus, 2008).

Karakter kriptografi dibagi dua berdasarkan tipe operasi yang dipakai untuk enkripsi dan dekripsi (teknik subtitusi dan teknik permutasi) serta berdasarkan tipe pengolahan pesan (Block Cipher dan Stream Cipher).

Algoritma kriptografi terdiri dari tiga fungsi dasar yaitu:

1. Enkripsi: Enkripsi merupakan hal yang sangat penting dalam kriptografi yang merupakan pengamanan data yang dikirimkan dan terjaga kerahasiannya.

Pesan asli disebut plaintext yang dirubah menjadi kode-kode yang tidak dimengerti atau disebut dengan ciphertext.

2. Dekripsi: Dekripsi merupakan kebalikan dari enkripsi, pesan yang telah dienkripsi dikembalikan kebentuk asalnya (plaintext) disebut dengan dekripsi pesan.

3. Kunci: Kunci yang dimaksud disini adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi, kunci pada plaintext digunakan kunci One Time Pad.

Secara umum fungsi tersebut digambarkan:

Gambar 2.1 Proses Enkripsi dan Dekripsi (Andri, 2009)

Keamanan dari algoritma kriptografi tergantung dari bagaimana suatu algoritma itu bekerja, maka algoritma semacam ini disebut dengan algoritma terbatas. Algoritma terbatas merupakan suatu algoritma yang dipakai sekelompok orang untuk merahasiakan pesan yang dikirimnya. Jika salah satu dari anggota kelompok itu keluar dari kelompoknya maka, algoritma yang dipakai diganti dengan yang baru, jika tidak hal ini bisa menjadi masalah dikemudian hari.

Jika keseluruhan dari keamanan algoritma tergantung pada kunci yang dipakai maka, ini bisa dipublikasikan dan dianalisis oleh orang lain. Jika algoritma yang telah

(22)

dipublikasikan bisa dipecahkan dalam waktu singkat oleh orang lain maka, algoritma tersebut belum aman untuk digunakan (Ariyus, 2008).

2.2 Jenis-jenis Algoritma Kriptografi

Algoritma kriptografi dibagi menjadi dua jenis, yaitu algoritma simetris dan algoritma asimetris.

2.2.1 Algoritma Simetris

Algoritma Simetris adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya (Kromodimoeljo, 2010). Pada prosesnya, pengirim pesan dan penerima pesan harus saling berbagi kunci rahasia tersebut.

Jika kunci tersebut diketahui oleh orang lain maka orang tersebut dapat melakukan enkripsi dan dekripsi pada pesan (Sadikin, 2012). Skema kriptografi simetris dapat dilihat pada gambar 2.2.

Gambar 2.2 Skema Kriptografi Simetris (Andri, 2009)

Algoritma simetri memiliki banyak macam, berdasarkan bit yang dienkripsi dapat dibagi menjadi dua kategori:

1. Cipher aliran (stream cipher)

Algoritma kriptografi beroperasi pada plainteks atau cipherteks dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan atau didekripsikan bit per bit.

2. Cipher blok (block cipher)

Algoritma kriptografi beroperasi pada plainteks atau cipherteks dalam bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64 bit, maka itu berarti algoritma enkripsi memperlakukan 8 karakter setiap kali penyandian (1 karakter = 8 bit dalam pengkodean ASCII).

Algoritma Enkripsi

Algoritma Dekripsi Kunci Rahasia

Teks Asli Ciphertext Teks Asli

(23)

Pada cipher blok, rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang sama. Enkripsi dilakukan terhadap blok bit plainteks menggunakan bit-bit kunci (yang ukurannya sama dengan blok plainteks). Algoritma enkripsi menghasilkan blok cipherteks yang berukuran sama dengan blok plainteks. Dekripsi dilakukan dengan cara yang serupa seperti enkripsi. Algoritma standar yang menggunakan prinsip kunci simetri antara lain OTP (One Time Pad), DES, RC2, RC4, RC5, RC6, IDEA, Twofish, Blowfish, FEAL, SAFER, LOKI, CAST, RIJNDEL, GOST, A5, Kasumi dan lain lain(Ariyus, 2008).

Salah satu teknik enkripsi menggunakan kunci simetri adalah teknik subtitusi, yaitu mengganti setiap karakter plaintext dengan karakter lain. Terdapat empat cara dalam menggunakan teknik subtitusi, yaitu :

1. Monoalphabet, dimana setiap karakter ciphertext mengganti satu macam karakter plaintext tertentu.

2. Polialphabet, dimana setiap karakter ciphertext mengganti lebih dari satu macam karakter plaintext.

3. Monograf/unilateral, dimana satu enkripsi dilakukan terhadap satu karakter plaintext.

4. Poligraf/multilateral, dimana satu enkripsi dilakukan terhadap lebih dari satu karakter plaintext (Alfred et al., 1996 dalam Nugroho, 2010).

Kelebihan kriptografi kunci simetri:

1. Proses enkripsi / dekripsi membutuhkan waktu yang singkat.

2. Ukuran kunci simetri relatif pendek.

3. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja.

Kelemahan kriptografi kunci simetri:

1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci ini.

2. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi (Andri, 2009).

(24)

2.2.2 Algoritma Asimetris

Algoritma Asimetris adalah algoritma yang kunci untuk enkripsi dan dekripsinya jauh berbeda. Algoritma ini dikenal juga dengan sebutan Kunci Publik. Kriptografi kunci publik menggunakan sepasang kunci kriptografi yang terhubung secara matematis.

Jika kunci yang satu digunakan untuk enkripsi pesan, maka hanya kunci pasangannya yang dapat melakukan dekripsi terhadap pesan tersebut. Mengetahui salah satu kunci, bukan berarti dapat mengetahui kunci pasangannya dengan mudah.

Gambar 2.3 Skema Kriptografi Asimetris (Wandani, 2012)

Algoritma standar yang termasuk algoritma asimetri adalah ECC, LUC, RSA, EI- Gamal dan DH(Ariyus, 2008).

Kelebihan kriptografi kunci publik:

1. Hanya kunci privat yang perlu dijaga kerahasiannya oleh setiap entitas yang berkomunikasi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada kriptografi kunci simetri.

2. Pasangan kunci publik/ kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang.

3. Dapat digunakan untuk mengamankan pengiriman kunci simetri.

4. Beberapa algoritma kunci publik dapat digunakan untuk memberi tanda tangan digital pada pesan.

Kelemahan kriptografi kunci publik:

1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri, karena enkripsi dan dekripsi menggunakan bilangan yang lebih besar dan melibatkan operasi perpangkatan yang besar.

2. Ukuran cipherteks lebih besar daripada plainteks.

3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri (Andri, 2009).

(25)

2.3 Algoritma One Time Pad

Algoritma ini ditemukan pada tahun 1917 oleh Mayor Joseph Mauborgne dan Gilbert Vernam. Cipher ini termasuk ke dalam kelompok algoritma kriptografi simetri (Prameswara, 2013). One Time Pad berisi deretan karakter kunci yang dibangkitkan secara acak dan setiap kunci hanya bisa dipakai sekali pakai (Ariyus, 2008).

Pemilihan kunci harus secara acak agar tidak bisa diproduksi ulang dan membuat lawan tidak mudah memecahkannya (Ariyus, 2008). Panjang stream karakter kunci sama dengan panjang pesan. One Time Pad (pad = kertas bloknot) berisi barisan karakter-karakter kunci yang dibangkitkan secara acak. Satu pad hanya digunakan sekali (one time) saja untuk mengenkripsi pesan, setelah itu pad yang telah digunakan dihancurkan. Panjang kunci One Time Pad – panjang teks asli sehingga tidak ada kebutuhan untuk mengulang penggunaan kunci selama proses enkripsi.

2.3.1 Enkripsi One Time Pad

Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere.

Enkripsi: Ci = (Pi + Ki) mod n …….………... (1) Dekripsi: Pi = (Ci – Ki) mod n………... (2)

Dimana:

Ci= ciphertext;

Pi=plaintext;

Ki= kunci;

N= 26 (alfabetis);

Contoh:

Bila diketahui teks – asli: (Pi) = “ONETIMEPAD”

Dengan kunci (Ki): “TBFRGFARFM”

Diasumsikan A= 0, B = 1, . . . , Z=25.

Maka akan didapat teks-kode (Ci) : “HOJKOREGFP” yang mana diperoleh sebagai berikut:

Kunci (Ki) Plaintext

(Pi) Ci= (Pi+Ki)Mod 26 Ciphertext Hasil Akhir (Ci)

T=19 O=14 (14+19)mod26=7 7=H

HOJKOREGFP

B=1 N=13 (13+1)mod26=14 14=O

(26)

F=5 E=4 (4+5)mod26=9 9=J

R=17 T=19 (19+17)mod26=10 10=K

G=6 I=8 (8+6)mod26=14 14=O

F=5 M=12 (12+5)mod26=17 17=R

A=0 E=4 (4+0)mod26=4 4=E

R=17 P=15 (15+17)mod26=6 6=G

F=5 A=0 (0+5)mod26=5 5=F

M=12 D=3 (3+12)mod26=15 15=P

Tabel 2.1 Enkripsi One Time Pad 2.3.2 Dekrepsi One Time Pad

Contoh:

Bila diketahui Ci= “HOJKOREGFP”

Dengan Kunci (Ki)= “TBFRGFARFM”

Diasumsikan A= 0, B = 1, . . . , Z=25.

Maka akan didapat teks (Pi)= ”ONETIMEPAD” yang diperoleh sebagai berikut:

Ciphertext (Ci) Kunci (Ki) Pi=(Ci-Ki)mod26 Plaintext Hasil Akhir

7=H T=19 (7-19)mod26=14 O=14

ONETIMEPAD

14=O B=1 (14-1)mod26=13 N=13

9=J F=5 (9-5)mod26=4 E=4

10=K R=17 (10-17)mod26=19 T=19

14=O G=6 (14-6)mod26=8 I=8

17=R F=5 (17-5)mod26=12 M=12

4=E A=0 (4-0)mod26=4 E=4

6=G R=17 (6-17)mod26=15 P=15

5=F F=5 (5-5)mod26=0 A=0

15=P M=12 (15-12)mod26=3 D=3

Tabel 2.2 Dekripsi One Time Pad

Sistem One Time Pad tidak dapat dipecahkan karena beberapa alasan:

1. Barisan kunci acak + teks asli yang tidak acak = teks kode yang seluruhnya acak.

2. Mendekripsi teks kode dengan beberapa kunci berbeda dapat menghasilkan teks asli yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan teks asli mana yang benar.

(27)

Meskipun algoritma ini algoritma sempurna dan sangat aman, tetapi dalam praktiknya One Time Pad jarang digunakan karena dikategorikan sedikit rumit yang disebabkan panjang kunci = panjang pesan, sehingga timbul beberapa masalah penyimpanan kunci, pendistribusian kunci, dan masalah pengiriman kunci karena kunci yang dibangkitkan secara acak, maka ”tidak mungkin” pengirim dan penerima membangkitkan kunci yang sama secara simultan.

One Time Pad hanya dapat digunakan jika tersedia saluran komnunikasi alternative yang cukup aman untuk mengirim kunci. Saluran ini pada umumnya cukup mahal dan lambat. (Ariyus, 2008).

Algoritma ini memiliki kelemahan lain yakni kunci yang dipakai haruslah benar-benar acak. Menggunakan pseudorandom generator tidak dihitung, karena algoritma ini memiliki bagian yang tidak acak. Oleh karena itu, algoritma ini hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman untuk mengirim kunci (Prameswara, 2013).

2.4 Algoritma Hill Cipher

Sejak kekaisaran Romawi, kriptosistem yang lebih rumit dikembangkan oleh orang seperti ahli matematika Italia Leon Battista Alberti (lahir pada tahun 1404), matematikawan Jerman Johannes Trithernius (lahir pada tahun 1492), seorang kriptographer dan diplomat Perancis Blaise de Vigenere (1523-1596), Lester S.Hill, yang menemukan Hill Cipher pada tahun 1929. Hill Cipher merupakan jenis lain dari Polygraphic cipher. Sandi ini mengenkripsi suatu string huruf menjadi bentuk string yang lain dengan panjang sama. Teknik Hill Cipher dikembangkan oleh Lester S.Hill pada Hunter Collage dan dipublikasikan pada American Mathematical Monthly, Volume 36, Issue 6 (Juni-Juli, 1929) halaman 106-312. Hill Cipher menggunakan matriks untuk mentransformasi string berupa blok huruf.

Hill Cipher berdasarkan pada aljabar linier dan seperti sandi Vignere, Hill Cipher merupakan Block Cipher. Sandi ini dapat dipecahkan dengan Known-Plaintext Attacks tetapi tahan melawan ciphertext-only attack. Cara kerja sandi ini berdasarkan atas perkalian matriks dengan menggunakan sebuah kunci K.

Penjelasan mengenai Hill Cipher ini dapat diuraikan sebaai berikut:

(28)

Misalkan m adalah bilangan bulat positif dan 𝑃 = 𝐶 = 𝑍26 𝑚 dan misalkan K

={ 𝑚 × 𝑚 merupakan matriks yang nilai elemenya terdiri dari 𝑍26}, maka untuk suatu kunci K, dapat didefenisikan sebagai ℮𝐾 𝑋 = 𝐾 × 𝑀𝑜𝑑 26

Dan 𝑑𝐾 𝑦 = 𝐾−1𝑦 𝑀𝑜𝑑 26 dimana semua operasi dilakukan dalam matriks 𝑍26. Karena 𝐾−1 dengan mudah dapat dihitung dari K, maka Hill Cipher merupakan suatu kriptosistem asimetrik. Hill Cipher juga merupakan blok cipher linier umum. Suatu blok cipher linier dapat dengan mudah dipecahkan yang dikenal cara Known-plaintext attacks. Maka bagi penyerang yang mengetahui beberapa contoh plaintext dengan enkripsi yang berhubungan, tidaklah sulit baginya untuk mencari kunci yang dipakai untuk mengenkripsikan plaintext tersebut. Metode dari perhitungan frekuensi sering dipakai untuk usaha ini. Metode ini mengeksplorasi perulangan (redundancy) dari bahasa alami yang dipakai sebagai plaintext pada pesan.

Penjelasan cara kerja Hill Cipher dapat disederhanakan dengan cara seperti berikut ini:

Misalkan K merupakan sebuah matriks kunci 𝑚 × 𝑚 yang merupakan represantasi dari suatu persamaan linier. Ciphertext (C) dan plaintext (P) merupakan matriks 𝑚 × 1. Maka didapat persamaan untuk menghasilkan ciphertextsebagai berikut:

C= ( K . P )mod n………..(3) 𝐶1

𝐶2 𝐶3

=

𝐾11 𝐾12 𝐾13 𝐾21 𝐾22 𝐾23 𝐾31 𝐾32 𝐾33

𝑥 𝑃1 𝑃2 𝑃3

𝑀𝑜𝑑 𝑛 Keterangan:

C = ciphertext;

P = plaintext;

K = kunci;

N = 26 (alfabetis);

Dekripsi memerlukan kunci K yang bersifat invertible (dapat dibalik kembali).

Contohnya 𝐾. 𝐾−1 𝑀𝑜𝑑 26 = 𝐼 dimana I merupakan matriks identitas.

(29)

Karena C= K.P Mod 26 maka 𝐾 = 𝐶 . 𝑃−1 𝑀𝑜𝑑 26 tidak semua Plaintext bersifat invertible (dapat dibalik kembali). Sandi Caesar, Hill Cipher, dan sandi Playfair semua bekerja dengan sebuah alphabet tunggal saat disubtitusikan.

2.4.1 Enkripsi Hill Cipher

Langkah-langkah untuk proses enkripsi plaintext dengan Hill Cipher adalah sebagai berikut:

1. Pilih suatu matriks kunci K yang berupa matriks bujur sangkar yang dipakai sebagai kunci.

2. Transformasikan tiap huruf dalam teks ke bilangan bulat yang sesuai (A=1;

B=2; .… Z=26).

3. Kelompokkan barisan angka yang didapat ke dalam beberapa blok vektor P yang panjangnya sama dengan ukuran matriks K.

4. Hitung C = K . P (Mod 26) untuk tiap vector P.

5. Kembalikan tiap angka dalam vektor sandi C ke huruf yang sesuai untuk mendapatkan teks sandi.

Gambar 2.4 Illustrasi Enkripsi Hill Cipher

Bagian ini akan menjelaskan enkripsi dengan Hill Cipher dengan memberikan contoh.

Hill Cipher menggunakan matriks untuk mentransformasikan string plaintext menjadi ciphertext.

Untuk mentransformasikan plaintext maka pertama sekali semua alphabet dinyatakan dalam nilai seperti berikut:

A B C D E F G H I J K L M 0 1 2 3 4 5 6 7 8 9 10 11 12 N O P Q R S T U V W X Y Z 13 14 15 16 17 18 19 20 21 22 23 24 25

Tabel 2.3 Transformasi alphabet

(30)

Contoh:

Kode Hill dengan mengunakan matriks 3×3 dengan kunci matriks:

4 2 3

6 3 3

3 2 1

Diketahui teks asli adalah: “ILOVETHEWAYYOULOVEME”

Kunci Matriks

3×3 Plaintext

Hasil perkalian kunci dengan

Plaintext

Hasil Akhir Ciphertext

4 2 3

6 3 3

3 2 1

ILO=

8 11 14

32 + 22 + 42 48 + 33 + 42 24 + 22 + 14

96

123 60

𝑀𝑜𝑑 26 18 19 8

= S T I

VET=

21 4 20

84 + 8 + 57 126 + 12 + 57

63 + 8 + 19

149 195 90

𝑀𝑜𝑑 26 19 13 12

= T N M

HEW=

7 4 22

28 + 8 + 66 42 + 12 + 66

21 + 8 + 22

102 120 51

𝑀𝑜𝑑 26 24 16 25

= Y Q Z

AYY=

0 24 24

0 + 48 + 72 0 + 72 + 72 0 + 48 + 24

120 144 72

𝑀𝑜𝑑 26 16 14 20

= Q O U

OUL=

14 20 11

56 + 40 + 33 84 + 60 + 33 42 + 40 + 11

129 177 93

𝑀𝑜𝑑 26 25 21 15

= Z V P

OVE=

14 21 4

56 + 42 + 12 84 + 63 + 12 42 + 42 + 4

110 159 88

𝑀𝑜𝑑 26 6 3 10

= G D K

MEA=

12 4 0

48 + 8 + 0 72 + 12 + 0

36 + 8 + 0

56 84 44

𝑀𝑜𝑑 26 4 6 18

= E G S

Tabel 2.4 Enkripsi Hill Cipher

Jadi teks asli dari “ILO VET HEW AYY OUL OVE MEA” adalah “ STI TNM YQZ QOU ZVP GDK EGS”.1

2.4.2 Dekripsi Hill Cipher

Algoritma proses pendekripsian Hill Cipher dapat diuraikan dalam bentuk langkah- langkah sebagai berikut:

1. Hitung matriks 𝐾−1 (Mod 26) sebagai kunci pembuka. 𝐾−1ada jika FPB ((det(K),26)=1.

(31)

2. Transformasikan tiap huruf dalam teks ke bilangan bulat yang sesuai (A=1;

B=2;… Z=26).

3. Kelompokkan barisan angka yang didapat ke dalam beberapa blok vektor C yang panjangnya sama dengan ukuran matriks 𝐾−1.

4. Hitung P = 𝐾−1. 𝐶 (𝑀𝑜𝑑 26) untuk tiap vector C.

5. Kembalikan tiap angka dalam vektor sandi P ke huruf yang sesuai untuk mendapatkan teks sandi.

Berikut adalah ilustrasi dekripsi Hill Cipher:

Gambar 2.5 Illustrasi dekripsi Hill Cipher

Contoh kode Hill pada dekripsi Hill Cipher:

Diketahui Kode Hill dengan mengunakan matriks 3×3 dengan kunci matriks:

4 2 3

6 3 3

3 2 1

Diketahui teks adalah: “STITNMYQZQOUZVPGDKEGS”.

1. Cari Adjoint dari matrix K

𝐾11

4 2 3

6 3 3

3 2 1

=> = 3*1-3*2= -3 => 𝐾11 = (−1)1+1∗ −3

= (−3) 3 3

2 1

𝐾12

4 2 3

6 3 3 3 2 1

=> = (6*1)-(3*3)=

-3 => 𝐾12 = (−1)1+2∗ −3 6 3 = 3

3 1

𝐾13

4 2 3

6 3 3 3 2 1

=> = (6*2)-(3*3)=

3 => 𝐾13 = (−1)1+3 ∗ 3 = 3 6 3

3 2

𝐾21

4 2 3

6 3 3

3 2 1

=> = (2*1)-(3*2)=

-4 => 𝐾12 = (−1)2+1∗ −4 2 3

(32)

2 1 = 4 𝐾22

4 2 3

6 3 3

3 2 1

=> = (4*1)-(3*3)=

-5 => 𝐾22 = (−1)2+2 ∗ −5

= −5 4 3

3 1

𝐾23 4 2 3

6 3 3

3 2 1

=> = (4*2)-(2*3)=

2 => 𝐾23 = (−1)2+3∗ 2

= −2 4 2

3 2

𝐾31

4 2 3

6 3 3

3 2 1

=> = (2*3)-(3*3)=

-3 => 𝐾31 = (−1)3+1 ∗ −6

= −3 2 3

3 3

𝐾32 4 2 3

6 3 3

3 2 1

=> = (4*3)-(3*6)=

-6 => 𝐾32 = (−1)3+2 ∗ −6 4 3 = 6

6 3

𝐾33 4 2 3

6 3 3

3 2 1

=> = (4*3)-(2*6)=

0 => 𝐾33 = (−1)3+3∗ 0 = 0 4 2

6 3

Tabel 2.5 Dekripsi Hill Cipher

Tabel 2.6 hasil adjoint dari matrix K

2. Adjoint diperoleh, Cari determinan matrix K,

4 2 3 4 2

6 3 3 6 3

3 2 1 3 2

Tabel 2.7 Proses determinan matrix K

Det K = ((4*3*1)+(2*3*3)+(3*6*2))-((3*3*3)-(4*3*2)-(2*6*2))

= 12+18+36-27-24-12

= 66-63

= 3 Adj K adalah

𝐾11 𝐾21 𝐾31

𝐾12 𝐾22 𝐾32

𝐾13 𝐾23 𝐾33

Adj K adalah

-3 4 -3

3 -5 6

3 -2 0

(33)

3. Invers dari Determinan K Det K * X = 1 mod 26

=> 3*9 = 1 mod 26

=> 27 = 1 mod 26

=> 27 mod 26 = 1

4. Kemudian 𝐶𝑎𝑟𝑖 𝐾−1 = det 𝐾−1∗ adj K mod 26

𝐾−1

= 9*

−3 4 −3

3 −5 6

3 −2 0

𝑀𝑜𝑑 26 =

−27 36 −27

27 −45 54

27 −18 0

𝑚𝑜𝑑 26 =

−1 10 −1

1 −19 2

1 −18 0

Tabel 2.8 Proses pencarian 𝑲−𝟏

5. Ketika adanya hasil yang negative (-) maka, ditambahkan 26 agar tetap memperoleh bilangan Positif (+), ini dilakukan karena yang digunakan adalah bilangan 0 hingga 25.

−1 10 −1

1 −19 2

1 −18 0

(+26) (Hanya yang bernilai

negative)

25 10 25

1 7 2

1 8 0

Tabel 2.9 Proses pembulatan

6. Pembuktian bahwa K saling invers dengan 𝐾−1, dengan melakukan perkalian, dan hasil akhirnya adalah matriks identitas.

K 𝐾−1

=

K* 𝐾−1

4 2 3

6 3 3

3 2 1

*

25 10 25

1 7 2

1 8 0

4*25+2*1+3*

1

4*10+2*7+3*

8

4*25+2*2+3*

0 6*25+3*1+3*

1

6*10+3*7+3*

8

6*25+3*2+3*

0 3*25+2*1+1*

1

3*10+2*7+1*

8

3*25+2*2+3*

0 100+2+3 40+14+24 100+40+0

Mod 26 =

105 78 104

156 105 156

78 52 79

𝑚𝑜𝑑 26

1 0 0

0 1 0

0 0 1

150+3+3 60+21+24 150+6+0

75+2+1 30+14+8 75+2+0

Tabel 2.10 Proses saling invers

7. Mendekripsikan dengan mengalikan matrix 𝐾−1 dengan Ciphertext (𝐾−1∗ 𝐶𝑖) 𝑀𝑜𝑑 26.

S T I T N M Y Q Z

18 19 8 19 13 12 24 16 25

Q O U Z V P G D K

16 14 20 25 21 15 6 3 10

(34)

E G S

4 6 18

Tabel 2.11 Tabel cipher teks STI

(𝐾−1 ∗ 𝐶𝑖) 𝑚𝑜𝑑 26 Plain text

25 10 25

1 7 2

1 8 0

∗ 18 19 8

mod 26

(25*18+10*19+25*8) Mod 26

840 167 170

mod 26

8 11 14

=ILO (1*18+7*19+2*8)

Mod 26

(1*18+8*19+0*8) Mod 26

TNM

(𝐾−1∗ 𝐶𝑖) 𝑚𝑜𝑑 26 Plain text

25 10 25

1 7 2

1 8 0

∗ 19 13 12

mod 26

(25*19+10*13+25*12) Mod 26

905 134 123

mod 26

21 4 19

=VET (1*19+7*13+2*12)

Mod 26

(1*19+8*13+0*12) Mod 26

YQZ

(𝐾−1∗ 𝐶𝑖) 𝑚𝑜𝑑 26 Plain text

25 10 25

1 7 2

1 8 0

∗ 24 16 25

mod 26

(25*24+10*16+25*25) Mod 26

1385 186 152

mod 26 7 4 22

=HEW (1*24+7*16+2*25)

Mod 26

(1*24+8*16+0*25) Mod 26

QOU

(𝐾−1∗ 𝐶𝑖) 𝑚𝑜𝑑 26 Plain text

25 10 25

1 7 2

1 8 0

∗ 16 14 20

mod 26

(25*16+10*14+25*20) Mod 26

1040 154 128

mod 26 0 24 24

=AYY (1*16+7*14+2*20)

Mod 26

(1*16+8*14+0*20) Mod 26

(35)

Tabel 2.12 Proses dekripsi Hill Cipher

Jadi teks asli dari “STI TNM YQZ QOU ZVP GDK EGS” adalah “ILO VET HEW AYY OUL OVE MEA”.

2.5 Algoritma Blum-Blum Shub

Algoritma Blum-blum Shub adalah pembangkit bilangan acak yang dikatakan aman dan memenuhi untuk kriptografi. Algoritma Blum- Blum Shub diusulkan menjadi pembangkit bilangan pseudorandom sejak tahun 1986 oleh Lenore Blum, Manuel Blum dan Michael Shub. Algoritma Blum- Blum Shub merupakan CSPRNG (Cryptographically Secure Pseudorandom Number Generator) yang paling sederhana dan paling mangkus (secara kompleksitas teoritis) dan berbasis teori bilangan. Blum- Blum Shub memiliki keunggulan yakni BBS tidak dapat diprediksi dari arah kiri (unpredictable to the left) dan tidak dapat diprediksi dari arah kanan (unpredictable to the kanan), artinya jika diberikan barisan bit yang

ZVP

(𝐾−1∗ 𝐶𝑖) 𝑚𝑜𝑑 26 Plain text

25 10 25

1 7 2

1 8 0

∗ 25 21 15

mod 26

(25*25+10*21+25*15) Mod 26

1210 202 193

mod 26 14 20 11

=OUL (1*25+7*21+2*15)

Mod 26

(1*25+8*21+0*15) Mod 26

GDK

(𝐾−1∗ 𝐶𝑖) 𝑚𝑜𝑑 26 Plain text

25 10 25

1 7 2

1 8 0

∗ 6 3 10

mod 26

(25*6+10*3+25*10) Mod 26

430 47 30

mod 26

14 21 4

=OVE (1*6+7*3+2*10) Mod

26

(1*6+8*3+0*10) Mod 26

EGS

(𝐾−1 ∗ 𝐶𝑖) 𝑚𝑜𝑑 26 Plain text

25 10 25

1 7 2

1 8 0

∗ 4 6 18

mod 26

(25*4+10*6+25*18) Mod 26

12 4 0

mod 26

12 4 0

=MEA (1*4+7*6+2*18) Mod

26

(1*4+8*6+0*18) Mod 26

(36)

dihasilkan oleh BBS, kriptanalis tidak dapat memprediksi barisan bit sebelumnya dan barsian bit sesudahnya.

Algoritma:

1. Pilih dua buah bilangan prima rahasia, p dan q, yang masing-masing kongruen dengan 3 modulo 4.

2. Kalikan keduanya menjadi n = pq. Bilangan m ini disebut bilangan bulat Blum

3. Pilih bilangan bulat acak lain, s(seed) sebagai umpan sedemikian sehingga:

(i) 2  s < n

(ii) s dan n relatif prima kemudian hitung x0 = s2 mod n

4. Barisan bit acak dihasilkan dengan melakukan iterasi berikut sepanjang yang diinginkan:

(i) Hitung xi = xi – 1 2 mod n

(ii) zi = bit LSB (Least Significant Bit) dari xi Barisan bit acak adalah z1, z2, z3, …

Contoh. Misalkan kita memilih p = 11 dan q = 23 sehingga n = pq = 253. Kita pilih s = 3 dan kita hitung x0 =32 mod 253 = 9. Barisan bit acak kita hasilkan sebagai berikut:

x1 = x02

mod n = 92 mod 253 = 81  z1 = 1 (karena 81 ganjil, bit LSB-nya pasti 1) x2 = x12

mod n = 812 mod 253 = 236  z2 = 0 (karena 236 genap, bit LSB-nya pasti 0)

x3 = x22

mod n = 2362 mod 253 = 36  z1 = 0 x4 = x32

mod n = 362 mod 253 = 31  z1 = 1 x5 = x42

mod n = 312 mod 253 = 202  z1 = 0 dst

Barisan bit acak yang dihasilkan 10010..

2.6 Aritmatika Modulo

Aritmatika modulo merupakan sisa hasil pembagian 2 (dua) bilangan. Operator yang digunakan dalam aritmatika modulo adalah mod. Misalkan a adalah bilangan bulat dibagi dengan m adalah bilangan bulat > 0 , maka akan menghasilkan sisa bagi r dengan q adalah hasil bagi. Sehingga dapat dinotasikan sebagai berikut :

(37)

a mod m = r sedemikian sehingga a = mq + r, dengan 0 ≤ r < m Contoh : 65 mod 7 = 2, dimana 65 = (7*9) + 2.

2.6.1 Greatest Common Divisor (GCD)

Greatest common divisor (GCD) merupakan bilangan bulat terbesar yang merupakan pembagi yang sama dari dua bilangan bulat. Misalkan a dan b adalah 2 (dua) bilangan bulat yang tidak nol. Greatest common divisor (GCD) dari a dan b adalah bilangan bulat terbesar c sedemikian sehingga c|a dan c|b. Greatest common divisor (GCD) dari a dan b dapat dinotasikan dengan gcd(a,b)(Mollin, 2008).

Contoh : GCD(100,30) adalah:

100 mod 30 = 10 30 mod 10 = 0

Karena telah menghasilkan sisa pembagian sama dengan 0, maka proses berakhir dan didapatlah GCD(100,30) = 10.

2.6.2 Bilangan Prima

Bilangan prima adalah bilangan bulat positif a, dimana a ≥ 2 hanya dapat dibagi dengan 1 dan bilangan itu sendiri. Seluruh bilangan prima adalah bilangan ganjil, kecuali 2 yang merupakan bilangan genap. Contoh bilangan prima adalah 2, 3, 5, 7, 11, 13, 17, ….

Untuk menguji apakah n merupakan bilangan prima atau bukan, kita cukup membagi n dengan sejumlah bilangan prima, dengan syarat bilangan prima ≤ √n. Jika n habis dibagi dengan salah satu dari bilangan prima tersebut, maka n bukan bilangan prima, tetapi jika n tidak habis dibagi oleh semua bilangan prima tersebut, maka n adalah bilangan prima.

Terdapat metode lain yang dapat digunakan untuk menguji keprimaan suatu bilangan bulat, yang terkenal dengan Teorema Fermat. Berikut pernyataan dari Teorema Fermat : Jika p adalah bilangan prima dan a adalah bilangan bulat yang tidak habis dibagi dengan p, yaitu GCD(a,p) = 1, maka : ap-1 ≡ 1 (mod p) (Mollin, 2008).

Teorema Fermat ini memiliki kelemahan yaitu terdapat bilangan bulat bukan prima p sedemikian sehingga ap–1 ≡ 1 (mod p). Bilangan bulat p seperti itu disebut bilangan prima semu (pseudoprimes). Bilangan bulat a yang menyebabkan ap–1 ≡ 1 (mod p),

(38)

dimana p adalah bilangan prima semu disebut dengan bilangan carmichael atau fermat’s liar. Akan tetapi, bilangan prima semu relatif jarang ditemukan.

Contoh :

Apakah p = 49 adalah bilangan prima?

a. Pilihlah sembarang bilangan bulat positif a dengan syarat 1<a<p.

b. Hitung ap-1 mod p sebanyak dua kali untuk menghindari ditemukan bilangan prima semu. Jika salah satu hasil perhitungan tidak sama dengan 1, maka bilangan bulat p bukan bilangan prima.

348 mod 49 = 43 648 mod 49 = 8

Karena ap-1 mod p ≠ 1, maka bilangan bulat p = 49 bukan bilangan prima.

2.6.3 Relatif Prima

Dua bilangan bulat a dan b dikatakan relatif prima jika GCD(a,b) = 1. Bilangan- bilangan a1, a2, …, anadalah relatif prima berpasangan (pairwise relatively prime) jika GCD(ai, aj) = 1 untuk 1 ≤ i <j ≤ n. Dengan demikian, sekumpulan bilangan bisa ditunjukkan apakah relatif prima atau tidak dengan mengevaluasi GCD dari semua pasangan bilangan yang mungkin. Jika GCD pasangan-pasangan tersebut semuanya bernilai 1, maka syarat pairwise relatively prime dipenuhi. Sebaliknya, jika salah satu GCD dari pasangan bilangan tersebut tidak sama dengan 1, maka kumpulan bilangan tersebut bukan pairwise relatively prime. Dan 2 (dua) bilangan prima pasti adalah pairwise relatively prime.

Contoh :

a. GCD(25,15) adalah : 25 mod 15 = 10 15 mod 10 = 5 10 mod 5 = 0

Bilangan-bilangan 27 dan 15 adalah bukan pairwise relatively prime karena GCD(27,15) = 3.

b. GCD(19,7) adalah : 19 mod 7 = 5 7 mod 5 = 2 5 mod 2 = 1 3 mod 1 = 0

(39)

Bilangan – bilangan prima 11 dan 7 adalah pairwise relatively prime karena GCD(11,7) = 1.

2.6.4 Algoritma Euclid

Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar dari 2 (dua) bilangan bulat. Algoritma ini didasarkan pada pernyataan berikut ini :

Dua bilangan bilangan bulat positif r0dan r1, dengan r0 ≥ r1, kemudian dihitung menggunakan algoritma pembagian :

r0 = q1 * r1+ r2, 0 <r2<r1 r1 = q2 * r2+ r3, 0 <r3<r2 rn-2 = qn-1 * rn-1+ rn 0 <rn<rn-1 rn-1 = qn * rn

Dari pernyataan tersebut, dapat diperoleh :

GCD(r0, r1) = GCD(r1, r2) = ……….. = GCD(rn-1,rn) = GCD(rn,0) = rn

Contoh : GCD(30,18) adalah : 30 = 1*18 + (30-18) 30 = 1*18 + 12

18 = 1*12 + (18 – 12) 18 = 1*12 + 6

12 = 2*6 Jadi, GCD(40,24)=6

2.6.5 Extended Euclidean

Algoritma Extended Euclidean ini merupakan perluasan dari algoritma Euclidean yang berfungsi untuk menentukan nilai x dan y sedemikian sehingga r0*x + r1*y = GCD(r0,r1) dengan r0 , r1merupakan bilangan bulat positif serta x dan y merupakan bilangan bulat. Dua bilangan bulat r0dan r1yang merupakan pairwise relatively prime dapat menemukan bilangan bulat x dan y sedemikian sehingga r0*x + r1*y = 1.

Dengan menggunakan algoritma Euclidean dan rumus : tj = tj-2 - qj–1 * tj-1 , j ≥ 2

Dengan tjadalah suatu barisan bilangan t1 , t2 , t3 ,…, tn dan qjdiperoleh dari perhitungan GCD(r0, r1) = 1 dengan r1-1

= tn. Sehingga diperoleh : rn = tn*r1 atau 1 = tn*r1.

Contoh : 13x + 8y = 1

(40)

Step 1: Hitung GCD dengan Algoritma Euclidean:

(1) 13 = 1 * 8 + 5 (2) 8 = 1 * 5 + 3 (3) 5 = 1 * 3 + 2 (4) 3 = 1 * 2 + 1

2 = 2 * 1 Maka GCD(13,8) = 1 Step 2: Menggunakan substitusi terbalik:

(4) 1 = 3 - 2

(3) = 3 – (5 - 3) = 2 * 3 – 5 (2) = 2(8 - 5) – 5= 2 * 8 – 3 * 5 (1) = 2 * 8 – 3(13 - 8) = 5 * 8 – 3 * 13 Penyelesaian: 13(-3) + 8(5)

Sehingga didapat nilai x = -3 dan y = 5.

2.6.6 Chinese Remainder Theorem

Chinese Remainder Theorem (CRT) adalah suatu teorema untuk menyelesaikan permasalahan pada seluruh sistem persamaan jika diketahui faktorisasi prima dari n.

Chinese Remainder Theorem ini ditemukan oleh matematikawan cina pada abad pertama, yang bernama Sun Tse. Jika ada suatu pertanyaan sebagai berikut:

“Tentukan sebuah bilangan bulat yang bila dibagi dengan 3 menyisakan 2, bila dibagi 4 menyisakan 3, dan bila dibagi 5 menyisakan 4.”

Dengan menggunakan Chinese Remainder Theorem akan ditemukan penyelesaian dari pertanyaan tersebut. Misalkan m1, m2, …, mn adalah bilangan bulat positif sedemikian sehingga PBB(mi, mj) = 1 untuk i ≠ j. Maka sistem dapat dihasilkan : x ≡ ak(mod mk), mempunyai sebuah solusi unik modulo m = m1x m2 x … x mn.. Maka, pernyataan Sun Tse dapat dapat diselesaikan sebagai berikut :

a. Rumuskan pernyataan Sun Tse dengan rumus x ≡ ak (mod mk).

x ≡ 2 (mod 3) x ≡ 3 (mod 4) x ≡ 4 (mod 5)

b. Hitung semua perkalian modulus.

N = 3*4*5 = 60

(41)

c. Buat himpunan untuk masing – masing persamaan dari angka terkecil yang memenuhi sampai perkalian ketiga modulus.

x1 = {2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59}

x2 = {3,7,11,15,19,23,27,31,35,39,43,47,51,55,59}

x3= {4,9,14,19,24,29,34,39,44,49,54,59}

d. Iriskan ketiganya untuk mendapat nilai x.

x = x1⋂x2⋂x3= 59

e. Hitung interval LCM (The Least Common Multiple) dari ketiga modulus.

LCM(3,4,5) = 60 , sehingga x memenuhi akan berulang setiap interval 60 angka, yaitu x = {…,59,119,179,…} (Wandani, 2012).

2.7 Android

Android adalah sistem operasi untuk telepon seluler yang berbasiskan Linux.Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri sehingga dapat digunakan oleh bermacam peranti penggerak. Awalnya Google Inc. membeli Android Inc. pendatang baru yang membuat software (perangkat lunak) untuk telepon genggam. Kemudian untuk mengembangkan Android di bentuklah Open Handset Alliance yang merupakan gabungan dari 34 perusahaan peranti keras, peranti lunak dan telekomunikasi termasuk Google, HTC, Intel, Motorola, Qualcomm, TMobile, dan NVidia.

Pada saat perilisan perdana Android pada tanggal 5 november 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan pada perangkat seluler. Di lain pihak, Google merilis kode-kode Android dibawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler.

Terdapat dua jenis distributor sistem operasi Android. Pertama yang dapat dukungan penuh dari Google atau Google Mail Service (GMS) dan kedua adalah yang benar- benar bebas distribusinya tanpa dukungan langsung dari Google atau dikenal sebagai Open Handset Distribution (DHD) (Ardiansyah, 2011).

(42)

Sejak April 2009, versi Android dikembangkan dengan nama kode yang dinamai berdasarkan makanan pencuci mulut dan penganan manis. Masing-masing versi dirilis sesuai urutan alfabet. Berikut adalah rangkaian perjalanan android

1. Kerjasama Android Inc. dengan Google Inc.8. Android Versi 2.3 (Gingerbread) 2. 2007 - 2008 Produk awal Android 9. Android Versi 3.0 (Honeycomb) 3. Android Versi 1.1 10. Android Versi 4.0 (ICS)

4. Android Versi 1.5 (Cupcake) 11. Android Versi 4.1-4.3 (Jelly Bean) 5. Android Versi 1.6 (Donut) 12. Android Versi 4.4 (KitKat) dan 6. Android Versi 2.0/2.1 (Eclair) 13. Android Versi 5.0 (Lollipop) 7. Android Versi 2.2 (Froyo)

2.8. Penelitian yang Relevan

Berikut ini beberapa penelitian tentang kriptografi yang berkaitan dengan algoritma One Time Pad dan Algoritma Hill Cipher:

1. Firman Rickson Saragih, membuat penelitian yang berjudul Penggunaan Kriptografi One Time Pad (Algoritma Vernam) dalam Pengamanan Informasi. Hasil penelitian yang diperoleh adalah One-time pad merupakan algoritma pengenkripsian data dan informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan kepada penerima pesan tanpa dapat diketahui oleh pihak lain.

2. M. Rizki Novriandi Nasution membuat penelitian yang berjudul Implementasi Algoritma Hill Cipher dan RSA pada Enkripsi Hybrid Pesan SMS pada Android. Hasil penelitian yang diperoleh adalah kedua algoritma yang digunakan untuk melekukan proses enkripsi masing-masing algoritma memliki kelebihan masing-masing

Gambar

Gambar 2.1 Proses Enkripsi dan Dekripsi (Andri, 2009)
Gambar 2.2 Skema Kriptografi Simetris (Andri, 2009)
Gambar 2.3 Skema Kriptografi Asimetris (Wandani, 2012)
Tabel 2.1 Enkripsi One Time Pad  2.3.2 Dekrepsi One Time Pad
+7

Referensi

Dokumen terkait

Hasil penelitian yang berkaitan dengan Peningkatan Keterampilan Proses Siswa Dalam Pembelajaran Ilmu Pengetahuan Alam dengan menggunakan metode inkuiri di Kelas V Sekolah

imunisasi pada penelitian ini didukung oleh penelitian Prusty et al yang menemukan alasan ketidaklengkapan imunisasi anak yang paling banyak diutarakan responden secara

Mahasiswa dapat menganalisis Bagaimana perusahaan dan para pebisnis menanggapi tantangan- tantangan baru terhadap Bisnis dan Etika 2 Kompetensi Dasar : Mahasiswa dapat

Berdasarkan hasil wawancara dengan pimpinan perusahaan mengenai pengetahuan yang dimiliki oleh Internal Auditor maka dapat disimpulkan bahwa Auditor Internal sudah memiliki

Informan Kalau itu sebenarnya kenapa, karena strategi marketnya udah benar kenapa kita masuk pasar LCGC intinya sih secara keseluruhan dulu itu logo Nissan sama dengan logo

Varibel utama adalah karakteristik organ reproduksi betina yang terdiri atas bentuk/morfologi dan panjang organ reproduksi betina, panjang dan berat Ovarium, panjang dan

dengan kata-kata yang dapat membantu siswa dalam memecahkan suatu masalah. masih

Terlepas dari keunggulan yang dimiliki, kayu sebagai produk alam memiliki beberapa kelemahan diantaranya bersifat biodegradable terhadap rayap, jamur dan organisme perusak