Algoritma Kriptografi TINJAUAN PUSTAKA

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 : Universitas Sumatera Utara 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 : Universitas Sumatera Utara 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. Universitas Sumatera Utara 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 M C mod N 2.1 Dan C M d mod N 2.2 Penjelasan: n = p q p dan q = Bilangan prima m = Plaintext c = Ciphertext Universitas Sumatera Utara e = Encryption exponent d = Decryption exponent ɸ n = p-1 q-1 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, FPBe, ɸ n = 1 5. Hitung d ≡ e -1 mod ɸn 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-1q-1 = 3220 e = 79 pilih angka acak d = 79 -1 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: M1 = 65 - C1 = 65 79 mod 3337 = 541 M2 = 66 - C2 = 66 79 mod 3337 = 795 M3 = 67 - C3 = 67 79 mod 3337 = 1479 Dekripsi dengan kunci D = 1019: C1 = 541 - M1 = 541 1019 mod 3337 = 65 - A C2 = 795 - M2 = 795 1019 mod 3337 = 66 - B C3 = 1479 - M3 = 1479 1019 mod 3337 = 67 - C Universitas Sumatera Utara 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 mb mod m] mod m 2.3 abc.... mod m = [a mod mb mod mc mod m....] mod m 2.4 Untuk lebih jelasnya mengenai langkah-langkah metode fast exponentiation dapat dilihat pada contoh berikut. Contoh 2. Hitung nilai dari 45 40 mod 256. Sebagai ilustrasi, untuk menghitung 45 40 mod 256 dapat dilakukan sebagai berikut. 45 40 = 45 32 . 45 8 45 2 mod 256 = 2025 mod 256 = 233 45 4 mod 256 = 45 2 . 45 2 mod 256 = [45 2 mod 256 . 45 2 mod 256] mod 256 = 233 2 mod 256 = 17 45 8 mod 256 = 45 4 . 45 4 mod 256 = [45 4 mod 256 . 45 4 mod 256] mod 256 = 17 2 mod 256 = 33 45 16 mod 256= 45 8 . 45 8 mod 256 = [45 8 mod 256 . 45 8 mod 256] mod 256 = 33 2 mod 256 = 65 45 32 mod 256= 45 16 . 45 16 mod 256 = [45 16 mod 256 . 45 16 mod 256] mod 256 = 652 mod 256 = 129 Universitas Sumatera Utara 45 40 mod 256 = [45 32 mod 256 . 45 8 mod 256] mod 256 = 4257 mod 256 = 161 Jadi, nilai dari 45 40 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: 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 Plainteks Transposisi Subsitusi Enkripsi 3 kali perulangan Universitas Sumatera Utara 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 Universitas Sumatera Utara 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 cp = 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 i = C i – K i +26 kalau hasil pengurangan C i dengan K i minus Dimana : C i = nilai desimal karakter ciphertext ke – 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 Universitas Sumatera Utara 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 Universitas Sumatera Utara 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 Universitas Sumatera Utara Kemudian Proses dekripsi dapat dilakukan dengan arah sebaliknya. Bila dirumuskan maka akan terlihat sebagai berikut: Proses dekripsi: C = S3T3S2T2S1T1P Maksud T’ disini adalah transposisi kebalikkannya

2.5 PHP