BAB II TINJAUAN PUSTAKA
II.1. Kriptografi Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari bagaimana penyembunyian pesan. Namun pada pengertian modern kriptografi adalah ilmu yang berdasarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti keamanan kerahasiaan, keutuhan data dan otentikasi entitas. Jadi pengertian kriptografi modern adalah tidak hanya berurusan hanya penyembunyian pesan, namun lebih pada sekumpulan teknik yang menyediakan keamanan informasi. Berikut ini adalah rangkuman beberapa mekanisme yang berkembang pada kriptografi modern. 1. Fungsi Hash, Fungsi hash adalah fungsi yang melakukan pemetaan pesan dengan panjang sembarang ke sebuah teks khusus yang disebut mesagge digest dengan panjang tetap. Fungsi hash umumnya dipakai sebagai nilai uji ( check value ) pada mekanisme keutuhan data. 2. Penyandian dengan fungsi simetrik ( Symmetric key encipherment ). Penyandian dengan kunci simetrik adalah penyandian yang kunci enkripsi dan kunci dekripsi bernilai sama. Kunci pada penyandian simetrik diasumsikan bersifat rahasia hanya pihak yang melakukan enkripsi dan dekripsi yang mengetahui nilainya. Oleh karena itu penyandian dengan
7
8
kunci simetrik disebut juga penyandian dengan kunci rahasia secret key encipherment. 3. Penyandian dengan kunci asimetrik ( Asymmetric key encipherment). Penyandian dengan kunci asimetrik atau sering juga disebut dengan penyandian kunci public ( public key ) adalah penyandian dengan kunci enkripsi dan dekripsi berbeda nilai. Kunci enkripsi yang juga disebut dengan kunci public ( public key ) bersifat terbuka. Sedangkan, kunci dekripsi yang disebut juga kunci privat ( private key ) bersifat rahasia / tertutup. ( Rifki Sadikin;2012:10 )
Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi. Dekripsi menggunakan kunci dekripsi mendapatkan kembali data asli. Proses enkripsi dilakukan menggunakan suatu algoritma dengan beberapa parameter. Biasanya algoritma tidak dirahasiakan, bahkan enkripsi yang mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia terletak di beberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter. Parameter yang menentukan kunci dekripsi itulah yang harus dirahasiakan (parameter menjadi ekuivalen dengan kunci). Dalam kriptografi klasik, teknik enkripsi yang digunakan adalah enkripsi simetris dimana kunci dekripsi sama dengan kunci enkripsi. Untuk public key cryptography, diperlukan teknik enkripsi asimetris dimana kunci dekripsi
9
tidak sama dengan kunci enkripsi. Enkripsi, dekripsi dan pembuatan kunci untuk teknik enkripsi asimetris memerlukan komputasi yang lebih intensif dibandingkan enkripsi simetris, karena enkripsi asimetris menggunakan bilangan-bilangan yang sangat besar. Namun, walaupun enkripsi asimetris lebih mahal dibandingkan enkripsi simetris, public key cryptography sangat berguna untuk key management dan digital signature.
Gambar II.1.Proses enkripsi dan dekripsi
Gambar II.1 diatas menunjukkan efek dari proses enkripsi dan proses dekripsi. Secara garis besar, proses enkripsi adalah proses pengacakan naskah asli (plaintext) menjadi naskah acak (ciphertext) yang sulit untuk dibaca oleh seseorang yang tidak mempunyai kunci dekripsi. Yang dimaksud dengan sulit untuk dibaca disini adalah probabilitas mendapat kembali naskah asli oleh seseorang yang tidak mempunyai kunci dekripsi dalam waktu yang tidak terlalu lama adalah sangat kecil. Jadi suatu proses enkripsi yang baik menghasilkan naskah acak yang memerlukan waktu yang lama (contohnya satu juta tahun) Dalam kriptografi, waktu yang dimaksud adalah rerata waktu, ada kemungkinan waktu lebih singkat dan ada kemungkinan waktu lebih lama. Untuk didekripsi
10
oleh seseorang yang tidak mempunyai kunci dekripsi. Satu cara untuk mendapatkan kembali naskah asli tentunya dengan menerka kunci dekripsi, jadi proses menerka kunci dekripsi harus menjadi sesuatu yang sulit. Tentunya naskah acak harus dapat didekripsi oleh seseorang yang mempunyai kunci dekripsi untuk mendapatkan kembali naskah asli. Walaupun awalnya kriptografi digunakan untuk merahasiakan naskah teks, kini kriptografi digunakan untuk data apa saja yang berbentuk digital. (Sentot Kromodimoeljo; 2009 : 6) Kehidupan kita saat ini dilingkupi oleh kriptografi. Mulai transaksi di mesin ATM, transaksi di bank, transaksi dengan kartu kredit, percakapan melalui telepon genggam,mengakses internet, sampai mengaktifkan peluru kendali pun menggunakan kriptografi. Begitu pentingnya kriptografi untuk keamanan informasi (information security), sehingga jika berbicara mengenai masalah keamanan yang berkaitan dengan penggunaan komputer, maka orang tidak bisa memisahkannya dengan kriptografi. (Rinaldi Munir; 2006:1) Di jaman Romawi kuno, Julius Caesar telah menggunakan teknik kriptografi yang dijuluki Caesar cipher untuk mengirim pesan secara rahasia, meskipun teknik yang digunakan tidak memadai untuk ukuran kini. Casanova menggunakan pengetahuan mengenai kriptografi untuk mengelabui Madame d’Urfe ( ia mengatakan kepada Madame bahwa sesosok jin memberi tahu kunci rahasia berdasarkan pengetahuannya mengenai kriptografi ), sehingga ia mampu mengontrol kehidupan Madame d’Urfe secara total. Sewaktu perang dunia kedua, pihak sekutu berhasil memecahkan kode mesin kriptografi jerman, Enigma; keberhasilan yang sangat membantu pihak sekutu dalam memenangkan perang.
11
Sejarah kriptografi penuh dengan intrik dan banyak orang melihat kriptografi sebagai sesuatu yang penuh misteri. (Sentot Kromodimoeljo; 2009 : 1 )
II.2. Sistem Kriptografi Sistem kriptografi terdiri dari 5 bagian yaitu : 1. Plaintext : pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi. Untuk selanjutnya digunakan istilah teks asli sebagai pedanan kata plaintext 2. Secret Key : Secret Key yang juga merupakan masukan bagi algoritma merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi. Untuk selanjutnya digunakan istilah kunci rahasia sebagai padanan kata secret key. 3. Ciphertext : ciphertext adalah keluaran algoritma enkripsi. Ciphertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik akan menghasilkan ciphertext yang terlihat acak. Untuk selanjutnya digunakan istilah teks sandi sebagai padanan kata ciphertext. 4. Algoritma Enkripsi : Algoritma enkripsi memiliki 2 masukan teks asli dan kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan teks sandi. 5. Algoritma Dekripsi : Algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia yang dipakai algoritma enkripsi.
12
Eve
Alice
Bob Algoritma Enkripsi
C
Algoritma Dekripsi
M K
Sumber Kunci
Saluran Publik
M
K
Saluran Aman
Gambar II.2.Sistem Kriptografi Konvensional
Sistem enkripsi harus memenuhi kaidah correctness yaitu untuk setiap K € K dengan K adalah himpunan kunci dan terdapat teks sandi hasil enkripsi teks alsi m, c = e K (m) maka harus berlaku d K (c) = m untuk semua kemungkinan teks asli. Pada Gambar II.2 kunci rahasia dibangkitkan oleh pembangkit kunci dan dikirim melalui saluran aman kepihak penyandi ( encryptor ) maupun penyulih sandi ( decryptor ). Teks sandi dikirim melalui saluran umum sehingga ada pihak ketiga yang dapat membaca teks sandi itu. (Rifki Sadikin;2012:16)
II.3. Karakteristik Sistem Kriptografi Berdasarkan Gambar II.2 sistem kriptografi dapat dikarakteristikan berdasarkan :
13
1 Tipe Operasi dipakai dalam enkripsi dan dekripsi. tipe operasi yang dipakai dalam enkripsi dan dekripsi : Subtitusi, elemen pada pesan (karakter, byte atau bit) ditukar/disubtitusi dengan elemen lain dari ruang pesan. Misalnya subtitusi sederhana A ditukar B, B ditukar D dan C ditukar Z, pesan “BACA” menjadi “DBZB” . Tipe operasi lainnya adalah transposisi, elemen pada pesan berpindah posisi misalnya posisi 1 menjadi posisi 4 dan posisi 2 menjadi posisi 3, posisi 3 menjadi posisi 1 dan posisi 4 menjadi posisi 2, pesan “KAMI” menjadi “MAIK” . Sistem kriptografi modern mencakup kedua tipe operasi ini. 2 Tipe Kunci Yang Dipakai. Umumnya sistem kriptografi klasik dan beberapa sistem kriptografi modern menggunakan kunci yang sama pada kunci penyandi dan penyulih sandi. Sistem kriptografi seperti ini disebut dengan kriptografi dengan kunci simetri. Baru pada tahun 1976 sistem kriptografi yang menperbolehkan kunci yang tidak sama diusulkan oleh Whitfield Deffe dan Martin Hellman, ( Deffe & Hellman, 1976 ). Sistem kriptografi ini disebut dengan kriptografi dengan kunci asimetri. 3 Tipe Pengolahan Pesan. Ketika melakukan penyandian pesan yang akan dienkripsi ataupun didekripsi diolah pesatuan blok elemen disebut dengan block cipher. Cara lain adalah dengan menganggap masukan untuk enkripsi dan
14
dekripsi sebagai aliran elemen secara terus menerus disebut dengan stream cipher.(Rifki Sadikin;2012:17)
II.4. Algoritma Ditinjau dari asal usulnya, kata algoritma mempunyai sejarah yang menarik. Kata ini muncul di dalam kamus webster sampai akhir tahun 1957.Kata algorism mempunyai arti proses perhitungan dalam bahasa arab. Algoritma berasal dari nama penulis buku arab yang terkenal yaitu abu ja'far muhammad Ibnu Musa al-Khuwarizmi (al-Khuwariz di baca oleh orang barat sebagai algorism).Kata algorism lambat laun berubah menjadi algorithm. (Dony Ariyus; 2008 : 43) Sebuah algoritma kriptografi dikatakan aman mutlak tanpa syarat (unconditionally secure) bila cipherteks yang dihasilkan oleh algoritma tersebut tidak mengandung cukup informasi untuk menentukan plainteksnya. Artinya cipherteks sebanyak berapapun yang dimiliki kriptanalis tidak memberikan informasi yang cukup untuk mendedukasi plainteks yang berkoreponden dengan chiperteks tersebut. ( Dony Ariyus; 2006 : 30)
II.5. Kriptografi Klasik Berbasis Subtitusi Sistem-sistem kriptografi klasik dapat dilihat dari operasi yang digunakan dalam enkripsi dan dekripsi. Salah satu operasi yang digunakan untuk enkripsi dan dekripsi adalah subtitusi. Prinsip utama subtitusi adalah mengganti kemunculan sebuah simbol dengan simbol lainnya. Sistem kriptografi yang
15
menggunakan operasi subtitusi adalah shift cipher, affine cipher, vigenare cipher dan hill cipher.
II.6. Sandi Caesar Sandi Caesar adalah sistem persandian klasik yang berbasis subtitusi yang sederhana. Enkripsi dan dekripsi pada sistem persandian Caesar menggunakan operasi shift. Operasi shift adalah menubtitusi suatu huruf menjadi huruf pada daftar alphabet berada di-k sebelah kanan atau sebelah kiri huruf itu. Misal k=3 (ganti dengan huruf k-3 sebelah kanan) maka “A” menjadi huruf “D”, “B” menjadi “E” dan seterusnya. Bagaimana dengan “X”, “Y”, dan“Z”.supaya semuanya memiliki subtitusi, huruf “A” dianggap sebelah kanan huruf “Z” sehingga “X” menjadi”A”,”Y” menjadi”B” dan “Z” menjadi “C”. Untuk mengolah teks asli yang merupakan deretan simbol huruf diperlukan pemetaan dari huruf menjadi angka sehingga dapat diaplikasi operasi matematika. Misalnya huruf “A” sampai “Z” dipetakan ke angka integer dari “0” sampai “25”. Perhatikan nilai yang mungkin bagi teks asli dan teks sandi adalah 0 sampai 25, dan apabila hasil penggeseran (penjumlahan) melebihi 26 angka tersebut dibagi 26 dan nilai yang dipakai adalah sisa bagi. Oleh karena itu aritmatika modular Z26 digunakan pada sistem persandian Caesar. (Rifki Sadikin; 2012:40)
16
II.7 Visual Basic.Net Microsoft Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi dari Microsoft Visual Basic versi sebelumnya yang diimplementasikan diatas .NET Framework. Peluncurannya mengundang kontroversi, mengingat banyak sekali perubahan yang dilakukan oleh Microsoft. Visual Basic.Net 2008 merupakan versi terbaru yang dirilis oleh Microsoft pada tanggal 19 November 2007, bersamaan dengan dirilisnya Microsoft Visual C# 2008, Microsoft Visual C++ 2008, dan Microsoft .NET Framework 3.5. Dalam versi ini, Microsoft menambahkan banyak fitur baru, termasuk di antaranya adalah: Operator If sekarang merupakan operator ternary (membutuhkan tiga operand), dengan sintaksis If (boolean, nilai, nilai). Ini dimaksudkan untuk mengganti fungsi IIF. a. Dukungan anonymous types b. Dukungan terhadap Language Integrated Query (LINQ) c. Dukungan terhadap ekspresi Lambda d. Dukungan terhadap literal XML e. Dukungan terhadap inferensi tipe data.
17
f. dukungan terhadap 'LINQ' baru ini tidak kompatibel dengan versi terdahulu.
Gambar II.3 adalah tampilan dari Microsoft Visual Basic.Net 2008 yang akan penulis gunakan untuk membuat aplikasi enkripsi dan dekripsi plainteks penggabungan metode Caesar cipher dan balik urut baca teks.
Gambar II.3. Microsoft Visual Basic.Net 2008
Berikut adalah keterangan dari masing-masing item objek dari visual basic.net secara umum: 1. Toolbox Toolbox digunakan sebagai tempat komponen yang digunakan untuk membuat aplikasi, berikut adalah objek toolbox visual basic.net 2008
18
Gambar II.4.Toolbox
2. Solution Explorer Solution explorer digunakan untuk mengelompokkan form-form, module dan class module yang dibuat, berikut adalah form pada solution explorer
Gambar II.5.Solution Explorer
19
3. Properties Window Properties window digunakan untuk pengaturan properties dari masingmasing objek yang terdapat pada form ataupun form itu sendiri.
Gambar II.6.Properties Window