Sistem Keamanan Pesan Teks Pada Email Menggunakan Algoritma Triple Transposition Vigenre Cipher (TTVC) Dan RSA

BAB 2 TINJAUAN PUSTAKA Pada bab ini akan dibahas landasan teori, penelitian terdahulu, kerangka pikir

  dan hipotesis yang mendasari penyelesaian permasalahan dalan pengamanan pesan teks dengan menggunakan algoritma Triple Transposotion Vigenere

  Chiper dan RSA.

2.1 Keamanan Informasi

  Informasi saat ini sudah menjadi sebuah komoditi yang sangat penting bagi sebuah organisasi, perguruan tinggi, lembaga pemerintahan maupun individual, kemampuan dalam mengakses dan menyediakan informasi secara cepat (Rahardjo, B 2005). Karena pentingnya sebuah informasi, seringkali informasi yang diinginkan hanya dapat diakses oleh orang tertentu misalnya pihak penerima yang diinginkan, dan jika informasi ini sampai diterima oleh pihak yang tidak diinginkan akan berdampak kerugian pada pihak pengirim.

  Keamanan informasi adalah bagaimana kita dapat mencegah penipuan, atau paling tidak mendeteksi adanya penipuan di sebuah sistem yang berbasis informasi, dimana informasinya sendiri tidak bersifat fisik (Rahardjo, B 2005). Untuk itu diperlukanlah sebuah pendekatan dalam melakukan pengamanan pada informasi, seperti melakukan enkripsi, steganografi, cipher dan hashing terhadap informasi tersebut.

2.2 Kriptografi

  Kriptografi adalah ilmu yang berdasarka pada teknik matematika yang berurusan dengan keamanan informasi seperti kerahasian dan otentikasi entitas (Sadikin,2012). Adapun tujuan dari kriptografi yang didefenisikan dalam (Rinaldi, 2006) adalah: 1.

  Kerahasiaan (confidentiality), adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berkepentingan.

2. Integritas Data (data integrity), adalah layanan yang menjamin bahwa pesan masih asli atau belum pernah dimanipulasi selama pengiriman.

  3. Otentikasi (authentication), adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastiak sumber pesan.

  4. Nirpenyangkalan (non-repudiation), adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengiriman pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.

2.3 Mekanisme Kriptografi

  Enkripsi (Encryption), adalah proses yang dilakukan untuk mengubah pesan yang tidak disandikan (plaintext) ke dalam bentuk yang tidak dapat dibaca (ciphertext), dekripsi (Decryption) adalah proses yang dilakukan untuk mengubah pesan yang tidak dapat dibaca kedalam bentuk yang dapat dibaca dan dimengerti. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi (Rinaldi, 2006)

  Dalam suatu sistem dimana terdapat algoritma kriptografi, ditambah seluruh kemungkinan plaintext, ciphertext dan kunci-kuncinya disebut kriptosistem (cryptosystem atau cryptographic system). Cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Urutan proses kerja secara umum dapat digambarkan pada Gambar 1 sebagai berikut:

Gambar 2.1 Mekanisme Kriptografi

  Sumber : (Lia Silviana, 2013) Enkripsi (encryption), adalah proses yang dilakukan untuk mengubah pesan yang tidak disandikan (plaintext) ke dalam bentuk yang tidak dapat dibaca (ciphertext), dekripsi (decryption) adalah proses yang dilakukan untuk mengubah pesan yang tidak dapat dibaca kedalam bentuk yang dapat dibaca dan dimengerti. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Dalam suatu sistem dimana terdapat algoritma kriptografi, ditambah seluruh kemungkinan plaintext, ciphertext dan kunci-kuncinya disebut kriptosistem (cryptosystem atau cryptographic system). Cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya.

  Dalam sistem ini, seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan

  • – dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kunci kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan . Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi kriptografi kunci simetri (Symmetric-key Cryptography) dan kriptografi kunci asimetri (Asymmetric-key Cryptography).

2.4 Algoritma Kriptografi

  Algoritma kriptograafi terdapat beberapa macam berdasakan kunci yang dipakai yaitu :

2.4.1 Algoritma Simetrik (symmetric algorithms)

  Algoritma simetrik adalah algoritma kriptografi berdasarkan kuncinya dibedakan menjadi dua yaitu algoritma aliran (Stream Cipher) dan algoritma blok (Block Cipher). Pada algoritma Stream Cipher, proses penyandiannya berorientasi pada satu bit atau satu byte data. Sedangkan pada algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte data. Contoh algoritma simetris yang terkenal adalah DES (Data Encryption Standard).

  .

  Proses algoritma simetrik dapat dilihat pada Gambar 2.2

Gambar 2.2 Proses Algoritma Simetrik

  Sumber : (Lia Silviana, 2013) Algoritma ini menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. Dalam system kriptografi kunci simetrik, kunci yang digunakan untuk proses enkripsi dan dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat diturunkan dari kunci yang lainnya. Kunci

  • – kunci ini harus dirahasiakan. Oleh sebab itu sistem ini sering disebut sebagai secret key crypto system.

2.4.2 Algoritma Asimetrik (Asymmetric Algorithms)

  Algortima kriptografi asimetrik adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi. Algoritma ini sering juga disebut algoritma kunci umum (public key algorithm) karena kunci untuk enkripsi dibuat umum (public key) atau dapat di ketahui oleh setiap orang, tapi kunci dekripsi hanya di ketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi (private key). Contoh algoritma terkenal menggunakan kunci asimetrik adalah ECC dan RSA. Proses algoritma asimetrik dapat dilihat pada gambar 2.3. Syarat-syarat yang harus di penuhi oleh algoritma public-cey yaitu :

  1. Mudah secara komputasi bagi suatu pihak B untuk mengkrontuksi sepasang kunci asimetrik (kunci publik KU, kunci pribadi KR).

  2. Mudah secara komputasi bagi pengirim A, dengan memiliki kunci publik B dan data yang ingin dienkripsi, M, untuk menghasilkan ciphertext (C).

  3. Mudah secara komputasi bagi penerima B untuk mendekripsi ciphertext yang dihasilkan menggunakan kunci pribadinya untuk mengembalikan data asli.

  4. Tidak bisa secara komputasi bagi pihak ketiga untuk memperoleh kunci pribadi KRb hanya dengan mengetahui kunci publik KUb.

  5. Tidak bisa secara komputasi bagi pihak ketiga untuk mengembalikan data asli M hanya dengan mengetahui kunci publik KUb dan ciphertext C.

  6. Fungsi enkripsi dan dekripsi bisa diterapkan dengan urutan yang dibalik.

  Kegunaan persyaratan yang keenam adalah untuk penerapan tanda tangan digital (digital signature) yang digunakan memecahkan isu otentikasi dalam masalah keamanan data.

  Proses enkripsi publik key sederhana melibatkan empat tahap berikut : 1.

  Setiap user didalam jaringan membuat sepasang kunci untuk digunakan sebagai kunci enkripsi dan dekripsi dari pesan yang akan diterima.

  2. User kemudian mempublikasikan kunci enkripsinya dengan menempatkan kunci publiknya ke tempat umum. Pasangan kunci yang lain tetap dijaga kerahasiaannya.

  3. Jika user A ingin mengirimkan data ke user B, ia akan mengenkripsikan data dengan menggunakan kunci publik user B.

  4. Pada saat user B mendekripsikan data dari user A, ia akan menggunakan kunci pribadinya sendiri. Tidak ada pihak lain yang bisa mendekripsikan data itu karena hanya B sendiri yang mengetahui kunci pribadi B.

Gambar 2.3 Proses Algoritma Asimetrik

  Sumber : (Lia Silviana, 2013)

2.4.3 Algoritma RSA

  Karena semakin berkembangnya pertukaran data, khususnya dalam wireless dan local area network (LAN), hal ini memberi kesempatan yang besar untuk mencegat data dan memalsukan pesan. Satu-satunya cara yang mudah untuk menjaga keamanan dan keintegritasan informasi antara pengirim dan penerima adalah dengan menggunakan kriptografi kunci publik (Satrya, 2013).

  RSA adalah sistem kriptografi dengan kunci publik yang pertama kali dapat berjalan dan dipraktekkan, ditemukan pada tahun 1977 dan dipublikasikan pada tahun 1978 oleh Rivest, Shamir dan Adleman (RSA) di Institut Teknologi Massachusetts. RSA adalah sistem kriptografi yang masih paling banyak digunakan seperti transaksi online, email, kartu pintar dan umumnya pada aplikasi mobile commerce (Yan, 2008). Rumus dasar dari metode enkripsi dan dekripsi RSA dinotasikan kedalam persamaan (2.1) dan (2.2) berikut :

  C

  C (mod N) (2.1) M

  Dan

  d

  C (2.2)

  

(mod N)

M

  Penjelasan: n = p * q p dan q = Bilangan prima m = Plaintext c = Ciphertext e = Encryption exponent d = Decryption exponent = (p-1) (q-1)

  ɸ (n) Tahapan Algoritma RSA : 1.

  Pilih dua bilangan prima secara acak dan tidak sama.

  2. Hitung perkalian p dan q, simpan dalam variabel n.

  3. Hitung ɸ (n) ≡ (p-1).(q-1) 4.

  Pilih e secara acak dengan syarat, FPB(e, ɸ (n)) = 1

  • 1

  5. (mod ɸ(n))

  Hitung d ≡ e 6. Rahasiakan p, q, ɸ (n) dan d 7. Kirimkan e dan n

  Contoh 1. kasus sederhana algoritma Kriptografi RSA: p = 47 (bilangan prima) dan q = 71 (bilangan prima) n = p.q = 3337 ɸ (n) = (p-1)*(q-1) = 3220 e = 79 (pilih angka acak)

  • 1

  d = 79 mod 3220 dicoba K = 1,2,..,dst d = 1019 (dipilih karena hasilnya bilangan bulat)

  Misalkan plaintext M = “ABC”, ubah kedalam ASCII menjadi “65 66 67”

  Enkripsi dengan kunci publik E = 79 dan N = 3337:

  79 M1 = 65 -> C1 = 65 mod 3337 = 541

  79 M2 = 66 -> C2 = 66 mod 3337 = 795

  79 M3 = 67 -> C3 = 67 mod 3337 = 1479

  Dekripsi dengan kunci D = 1019:

  1019

  C1 = 541 -> M1 = 541 mod 3337 = 65 -> A

  1019

  C2 = 795 -> M2 = 795 mod 3337 = 66 -> B

  1019

  C3 = 1479 -> M3 = 1479 mod 3337 = 67 -> C Untuk mendapatkan nlai dari operasi pemangkatan besar bilangan bulat modulo digunakan metode Fast Exponentiation (Munir, 2006). Berikut Penjelasan metode Fast Exponentiation. Dinotasikan dalam persamaan (2.3) dan (2.4) : ab mod m = [(a mod m)(b mod m)] mod m (2.3) (abc....) mod m = [(a mod m)(b mod m)(c mod m)....] mod m (2.4) Untuk lebih jelasnya mengenai langkah-langkah metode fast exponentiation dapat dilihat pada contoh berikut.

40 Contoh 2. Hitung nilai dari 45 mod 256.

  

40

Sebagai ilustrasi, untuk menghitung 45 mod 256 dapat dilakukan sebagai berikut.

  40

  32

  8

  45 = 45 . 45

  2

  45 mod 256 = 2025 mod 256 = 233

  4

  2

  2

  2

  2

  45 mod 256 = 45 . 45 mod 256 = [(45 mod 256) . (45 mod 256)] mod 256

  2

  = 233 mod 256 = 17

  8

  4

  4

  4

  4

  45 mod 256 = 45 . 45 mod 256 = [(45 mod 256) . (45 mod 256)] mod 256

  2

  = 17 mod 256 = 33

  16

  8

  8

  8

  8

  45 mod 256= 45 . 45 mod 256 = [(45 mod 256) . (45 mod 256)] mod 256

  2

  = 33 mod 256 = 65

  32

  16

  16

  16

  16

  45 mod 256= 45 . 45 mod 256 = [(45 mod 256) . (45 mod 256)] mod 256 = 652 mod 256 = 129

  40

  32

  

8

  45 mod 256 = [(45 mod 256) . (45 mod 256)] mod 256 = 4257 mod 256 = 161

40 Jadi, nilai dari 45 mod 256 = 233.

2.4.4 Algoritma Triple Transposition Vigènere Cipher (TTVC)

  Dalam proses pengiriman pesan kerahasian itu menjadi kunci utama dalam proses pengiriman. Banyak cara user mengamankan pesan email menggunakan beberapa metode pengamanan contohnya algoritma Blowfish, algoritma El gamal, tetapi masih punya beberapa kelemahan yang dapat membuat pesan email dapat disusupi oleh orang yang tidak bertanggung jawab sehingga muncul algoritma terbaru yaitu Triple Tranposition Vigenere Cipher.

  Triple Transposition Vigènere Cipher adalah metode enkripsi dengan

  cara mengulang teknik Vigènere Cipher yang setiap plaintextnya dilakukan transposisi terlebih dahulu sebanyak tiga kali dengan menggunakan kunci yang tiap kuncinya harus berbeda satu dengan yang lainnya. Metode Triple

  Transposition Vigènere Cipher dapat digambarkan seperti Gambar 2.4: Plainteks Transposisi

  3 kali perulangan Subsitusi Enkripsi

Gambar 2.4 Proses Algoritma Triple Transposition Vigènere Cipher

  Sumber : (Caroline, 2010) Proses yang terjadi pada Triple Transposition Vigènere Cipher terbagi menjadi dua bagian. Metode transposisi dapat disimbolkan dengan T dan metode substitusi menggunakan vigenere yang disimbolkan dengan E serta kunci untuk melakukan vigenere K. Secara matematis metode Triple Transposition Vigènere Cipher ini dapat dituliskan sebagai:

  Proses enkripsi: P = T1’(S1’(T2’(S2’(T3’(S3’(C))))))

  Bila dijabarkan, ciphertext diperoleh dengan mentransposisikan

  

plaintext , kemudian hasilnya disubstitusi menggunakan kunci pertama, lalu

  ditransposisikan kembali, lalu disubstitusi dengan menggunakan kunci yang berbeda dari kunci pertama, disebut saja kunci kedua, setelah itu dilakukan transposisi lagi yang kemudian diakhiri dengan proses substitusi menggunakan kunci ketiga. Substitusi disini menggunakan Vigènere Cipher.

  Ketiga algoritma transposisi sudah didefinisikan terlebih dahulu dengan suatu kunci atau suatu aturan tertentu setiap kali proses enkripsi metode transposisinya akan selalu tetap. Untuk metode enkripsi ini, spasi tidak diperhitungkan sehingga lebih baik dihilangkan saja. Rumus untuk transposisi adalah membagi panjang ciphertext dengan suatu kunci tertentu yang ditentukan oleh pengguna yang kemudian teks dibaca secara vertikal dari kolom pertama. Berikut adalah tabel bujursangkar vigenere, dapat dilihat pada Gambar 2.5.

Gambar 2.5 Bujurangkar Vigenere

  Sumber : (Caroline, 2010) Cara menggunakan bujursangkar Vigènere adalah sebagai berikut: baris paling atas menyatakan huruf-huruf plaintext dan kolom paling kiri menyatakan huruf-huruf pada kunci. Pertama tarik garis vertikal dari huruf plaintext kebawah. Setelah itu tarik garis horizontal dari huruf kunci ke kanan. Cari titik perpotongannya. Perpotongan kedua garis tersebut menyatakan huruf

  ciphertext dari huruf plaintext yang bersangkutan. Sebenarnya karakter ciphertext didapat dengan rumus c(p) = (p+k) mod 26.

  Rumus enkripsi Vigenere Cipher : C i = ( P i + C i ) -26 kalau hasil penjumlahan P i dan K i lebih dari 26 Rumus dekripsi Vigenere Cipher : P = (C ) +26 kalau hasil pengurangan C dengan K minus

  i i – K i i i

  Dimana : C = nilai desimal karakter ciphertext ke

  i – i

  P i = nilai desimal karakter plaintext ke

  • – i K i = nilai desimal karakter ke
  • – i Berikut ini adalah contoh proses transposisi dan substitusi dari algoritma TTVC, dapat dilihat pada Tabel 2.1.

Table 2.1. Tabel proses transposisi dan substitusi menjadi hasil TTVC

  Plaintext ( P ) :

  INI ADALAH PLAINTEKS KRIPTOGRAFI Transposisi Pertama ( T

  1 ) dengan kunci = 3 I N

  I A D A L A H P

  I A

  I N T E K S K R

  I P T O G R A F

  I Hasil T

  1 = IALPIEKPGFNDAINKRTRIIAHTSIOA

  Subsititusi pertama ( S1) dengan kunci = SEMBILAN AEQQPKCYJZEIWNXJXDJQLHNLWUPI

  Transposisi kedua ( T2 ) dengan kunci = 5 Substitusi ketiga ( S3 ) dengan kunci = SEBELAS : YYXTRIAUBYTAXVFGIWPYDLUFJBCJV

  Hasil enkripsi adalah YYXTRIAUBYTAXVFGIWPYDLUFJBCJV A E

  X Q Q P K C Y J Z E

  I W N

  X J

  X D J Q L H N L W U P

  I Hasil T2 = APZXQWEKEJLUXCIXHPQYWDNIOJNJL Transposisi ketiga ( T3 ) dengan kunci = 11 :

  G P

  I X

  X C T E Q R U G C P D H Q F C D W

  I X P N S Hasil T3 = GUWPGIICXXPPXDNCHSTQEFQCRD Kemudian Proses dekripsi dapat dilakukan dengan arah sebaliknya. Bila dirumuskan maka akan terlihat sebagai berikut: Proses dekripsi: C = S3(T3(S2(T2(S1(T1(P))))))

  Maksud T’ disini adalah transposisi kebalikkannya

  2.5 PHP

  Menurut Prasetyo (2008), PHP (Hypertext Preprocessor) merupakan skrip yang bersifat server-side yang ditambahkan ke dalam skrip HTML. PHP merupakan singkatan dari Personal Home Page Tools. Skrip ini yang akan membuat suatu aplikasi website dapat diintegrasikan ke dalam HTML sehingga website tersebut tidak lagi bersifat statis, namun menjadi bersifat dinamis. Maksud dari bersifat

  

server -side itu sendiri adalah pengerjaan skrip di lakukan di server, baru kemudian

  hasilnya dikirim ke browser. Cara penulisan script PHP terbagi atas empat style, yaitu:

  1. Standard Style , dengan format:

  <?php … ?>

  2. Short Style , dengan format:

  <? … ?>

  3. Javascript Style , dengan format:

  <script language=’PHP’> … </script>

  4. ASP Style , dengan format:

  

<% … %>

  2.6 MySQL

  MySQL merupakan server database yang mendukung perintah SQL (Structured

  

Query Language ). Perintah dalam MySQL disebut dengan pernyataan (statement)

  dengan ciri khas pengakhirannya yang di tutup dengan tanda titik koma (;). Prinsip kerja dari MySQL yaitu dengan mengetikkan sejumlah pernyataan dan di akhiri dengan titik koma, maka program klien MySQL akan segera mengirim perintah tersebut ke server database MySQL dan kemudian memberikan respon yang sesuai dengan pernyataan yang diberikan.

  2.7 UML(Unified Modelling Languange)

  Untuk membantu dalam pengembangan perangkat lunak dikenal istilah pemodelan. Salah satu pemodelan yang saat ini paling banyak digunakan oleh pengembang perangkat lunak adalah UML (Unified Modelling Language). UML adalah standar bahasa yang sering digunakan dalam bidang industri untuk mendefinisikan requirement (kebutuhan), membuat analisis dan desain, serta menggambarkan arsitektur dalam pemrograman berorientasi objek (Satrya, 2013).

  Ada beberapa hal yang dimaksud dalam kompleksitas pada perangkat lunak (Rosa, et al. 2011):

  1. Kompleksitas domain atau permasalahan perangkat lunak

  2. Kesulitas mengelola proses pengembangan perangkat lunak

  3. Kemungkinan fleksibilitas perubahan perangkat lunak

  4. Permasalahan karakteristik bagian-bagian perangkat lunak secara diskrit UML terbagi atas 3 (tiga) kategori, yaitu diagram struktur (structure diagram), diagram kelakuan sistem (behaviour diagram), dan diagram interaksi (interaction diagram). Dalam pembangunan sistem, penulis menggunakan diagram use dari kategori diagram kelakuan sistem, untuk menggambarkan interaksi

  case antara satu atau lebih aktor dengan perangkat lunak (Rosa, et al. 2011).

  2.8 Penelitian Terdahulu

  Dalam melakukan peneletian, penulis membutuhkan beberapa bahan peneletian yang sudah pernah dilakukan peneliti-peneliti lainnya mengenai masalah sistem keamanan file teks pada email menggunakan kombinasi algoritna kriptografi TTVC dan RSA.

  Satria Prayudi (2013) telah mencoba menggunkanan pendekatan kombinasi

  

Algoritma RSA 512-Bit dan One Time Pad dalam penelitian pengamanan pesan

pada nic messenger.

  Lia Silviana (2013) telah mencobamenggunakan pendekatan Algortima kunci

  

public RSA dalam penelitian sistem tanda tangan digital pada pesan teks.Untuk

  penelitian yang dilakukan oleh peneliti sebelumnya dapat dilihat pada table 2.2

Table 2.2 Tabel penelitian terdahulu No Peneliti Judul Penelitian

  1 Satrya Kombinasi Algoritma RSA 512-Bit dan One Time Pad Prayudi Untuk Pengamanan Pesan Pada NIC MESSENGGER (2013)

  2 Lia silviana Sistem Tanda Tangan Digital Pada Pesan Teks (2013) Menggunakan Algoritma Kriptografi Kunci Publik RSA