BAB 2
LANDASAN TEORI
2.1 Kriptografi
Menurut sejarahnya, kriptografi sudah lama digunakan oleh tentara Sparta di Yunani pada permulaan tahun 400 SM. Mereka menggunakan alat yang disebut scytale. Alat ini terdiri dari sebuah pita panjang dari daun papyrus yang dililitkan pada sebatang selinder (lihat gambar 2.1). Pesan yang akan dikirim ditulis secara horizontal (baris per baris). Bila pita dilepaskan, maka huruf-huruf di dalamnya telah tersusun membentuk pesan rahasia. Untuk membaca pesan, penerima melilitkan kembali silinder yang diameternya sama dengan diameter silinder pengirim. Teknik kriptografi ini dikenal dengan nama transposisi cipher, yang merupakan metode enkripsi tertua. (Munir, 2012:205)
Gambar 2.1 Scytale yang digunakan oleh tentara Yunani (Munir, 2012:205)
mencapai kemajuan yang pesat. Akan tetapi, karena kriptografi telah menjadi bagian penting dalam komunikasi militer, kriptografi menjadi sesuatu yang sangat rahasia.
Perkembangan komputer dan sistem komunikasi pada tahun 1960-an mengakibatkan kebutuhan pihak swasta akan alat untuk melindungi informasi dalam bentuk digital. Dimulai dengan usaha Feistel di IBM pada awal tahun 1970-an dan mencapai puncaknya pada tahun 1977, ketika Data Encryption Standard (DES) diadopsi sebagai Standar Pemrosesan Informasi pemerintah Amerika Serikat. Metode ini menjadi alat standar untuk mengamankan electronic commerce bagi banyak institusi financial di seluruh dunia. (Munir, 2006:2)
2.1.1 Definisi Kriptografi
Di dalam bukunya yang berjudul „Handbook of Applied Cryptography‟, Menezes Alfred, Paul van Oorschot dan Scott A. Vanstone (1996:4) mengartikan kriptografi sebagai ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi, seperti kerahasiaan, integritas data serta otentikasi. Sedangkan Bruce Schneier (1996:1) dalam bukunya „Applied Cryptography‟, mengartikan kriptografi sebagai ilmu sekaligus seni untuk menjaga keamanan pesan. (Munir, 2006:2)
Keamanan pesan diperoleh dengan menyandikannya menjadi pesan yang tidak mempuyai makna. Pada zaman sekarang, kerahasiaan informasi menjadi sesuatu yang penting. Informasi yang rahasia perlu disembunyikan agar tidak diketahui oleh orang yang tidak berhak. Seseorang tentu tidak ingin nomor PIN kartu kredit atau kartu ATM-nya diketahui orang. Atau, jika suatu pesan ditulis secara rahasia dan tidak ingin diketahui atau dibaca oleh orang lain. Kriptografi dapat digunakan untuk menyamarkan informasi yang bersifat rahasia dari orang atau pihak yang tidak berhak membacanya. (Munir, 2012:203)
penyandian dan memiliki kunci penyandian). Proses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption), sedangkan proses mengembalikan cipherteks menjadi plainteks disebut dekripsi (decryption). Gambar 2.2 memperlihatkan diagram kedua proses yang dimaksud. (Munir, 2012:203)
Enkripsi Dekripsi
plainteks cipherteks plainteks
Gambar 2.2 Proses Enkripsi dan Proses Dekripsi (Munir, 2012:203)
Algoritma kriptografi terdiri dari tiga fungsi dasar, yaitu: (Ariyus, 2008:43) 1. Enkripsi: merupakan hal yang sangat penting dalam kriptografi, merupakan
pengamanan data yang dikirimkan agar terjaga kerahasiaannya. Pesan asli disebut plaintext, yang diubah menjadi kode-kode yang tidak dimengerti. Enkripsi bisa diartikan dengan cipher atau kode atau sandi. Ketika seseorang tidak mengerti suatu kata maka orang tersebut akan mencarinya di dalam kamus atau daftar istilah. Beda halnya dengan enkripsi, untuk mengubah teks asli ke bentuk teks kode, digunakan algoritma yang dapat mengkodekan data yang diinginkan.
2. Dekripsi: merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (teks asli), disebut dengan dekripsi pesan.
3. Kunci: yang dimaksud di sini adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi.
Secara umum, operasi enkripsi dan dekripsi dapat dijelaskan secara matematis sebagai berikut:
EK (P) = C (Proses Enkripsi) DK (C) = P (Proses Dekripsi)
tersebut disandikan kembali dengan menggunakan kunci K sehingga dihasilkan pesan P yang sama seperti pesan sebelumnya.
Dengan demikian, keamanan suatu pesan tergantung pada kunci yang digunakan dan tidak tergantung pada algoritma yang digunakan. Sehingga algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan algoritma tersebut dapat diproduk-produksi massal. Tidak menjadi masalah apabila seseorang mengetahui algoritma yang kita gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat membaca pesan. (Munir, 2006:3)
2.1.2 Tujuan Kriptografi
Kriptografi bertujuan untuk memberi layanan keamanan (yang juga dinamakan sebagai aspek-aspek keamanan) sebagai berikut: (Munir, 2006:9)
1. Kerahasiaan (confidentiality), adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. Di dalam kriptografi, layanan ini direalisasikan dengan menyandikan pesan menjadi ciphertext. Misalnya pesan “Dimohonkan untuk datang tepat waktu” disandikan menjadi “ncVbd$56%&”. Istilah lain yang senada dengan confidentiality adalah secrecy dan privacy.
2. Integritas data (data integrity) , adalah layanan yang menjamin bahwa pesan masih asli / utuh atau belum pernah dimanipulasi selama pengiriman. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan: “Apakah benar pesan ini adalah Asli dan tidak dimodifikasi?” Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubstitusian data lain ke dalam pesan yang sebenarnya. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Pesan yang telah ditandatangani menyiratkan pesan yang dikirim adalah asli.
sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan: “Apakah pesan ini benar dari pengirimnya?”. Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi umber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Tanda-tangan digital menyatakan sumber pesan.
4. Nirpenyangkalan (non-repudiation), adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. Sebagai contoh misalkan pengirim pesan memberi otoritas kepada penerima pesan untuk melakukan pembelian, namun kemudian ia menyangkal telah memberikan otoritas tersebut. Contoh lainnya, misalkan seorang pemilik emas mengajukan tawaran kepada toko mas bahwa ia akan menjual emasnya. Tetapi, tiba-tiba harga emas turun drastis, lalu ia membantah telah mengajukan tawaran menjual emas. Dalam hal ini, pihak toko emas perlu prosedur nirpenyangkalan untuk membuktikan bahwa pemilik emas telah melakukan kebohongan. (Munir, 2012:154)
2.1.3 Jenis Algoritma Kriptografi
Menurut Mollir (2001) seperti yang diutip oleh Kurniawan (2004), terdapat 2 jenis algoritma kriptografi berdasarkan jenis kuncinya, yaitu:
1. Algoritma Simetri (konvensional) 2. Algoritma Asimetri (kunci-publik)
Algoritma Simetri, atau disebut juga dengan algoritma konvensional, adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Disebut konvensional, karena algoritma yang biasa digunakan orang sejak berabad-abad yang lalu adalah algoritma jenis ini. Algoritma Simetri sering juga disebut dengan algoritma kunci rahasia, algoritma kunci tunggal atau algoritma satu kunci dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan algoritma simetri tergantung pada kunci. Membocorkan kunci berarti bahwa pihak lain dapat melakukan proses enkripsi dan dekripsi terhadap pesan yang sifatnya rahasia. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan. Yang termasuk algoritma kunci simetri adalah One-Time-Pad (OTP), DES, RC2, RC4, RC5, RC6, IDEA, TwoFish, FEAL, SAFER, CAST, AES, Blowfish, GOST, A5 dan lain-lain. (Kurniawan, 2004:6)
Plaintext
Enkripsi
Ciphertext Plaintext
Dekripsi KUNCI
Gambar 2.3 Prosedur kerja algoritma simetris (Kurniawan, 2004:6)
Gambar 2.3 memperlihatkan kriptografi simetri yang biasa disebut juga sebagai kriptografi kunci konvensional. Pesan plaintext P, misalnya SAYA dikodekan (dienkrip) menjadi ciphertext @#$% menggunakan password (kunci K) TES. Untuk mengembalikan ciphertext @#$% menjadi SAYA dilakukan proses dekripsi dengan kunci yang sama, yaitu TES. Karena kunci yang digunakan sama, maka disebut kriptografi kunci simetri. Dan karena jenis ini telah digunakan selama berabad-abad yang lalu, maka dinamakan pula kriptografi konvensional.
adalah proses pengubahan karakter yang tidak dapat dibaca menjadi pesan asal. Ciphertext inilah yang biasanya dikirimkan melalui saluran internet yang rawan penyadapan. (Kurniawan, 2004:7)
Gambar 2.4 Lingkungan Kriptografi Konvensional (Kurniawan, 2004:8) Gambar 2.4 memperlihatkan lingkungan di mana kriptografi sering digunakan. Cipher C dikirimkan ke tujuan melalui saluran yang umumnya tidak aman, misalnya melalui internet. Sedangkan kunci K sendiri harus dikirimkan melalui saluran yang aman. Untuk mengirimkan kunci dengan aman, pengirim dan penerima dapat menyepakati kunci tertentu untuk dipakai bersama dalam komunikasi berikutnya. Dalam saluran yang tidak aman, seorang penyerang atau pemecah kode (cryptanalyst) dapat menyadap cipher C dan melakukan analisis untuk menemukan nilai P. Nilai K dan P perkiraan yang dihasilkan oleh penyerang disebut dengan K‟ dan P‟.
Notasi matematika sering digunakan untuk mempermudah penulisan dan analisis, sehingga kriptografi modern selalu berhubungan dengan matematika. Dengan pesan asal P dan kode rahasia C yang diperoleh dari enkripsi dengan kunci K, kita dapat menuliskan:
C = Ek (P)
Notasi ini menyatakan bahwa C dihasilkan oleh fungsi Enkripsi E yang dioperasikan terhadap masukan P dengan kunci K. Operasi ini dilakukan oleh pengirim pesan. Penerima pesan melakukan operasi sebaliknya:
2.1.3.2 Algoritma Asimetri
Algoritma Asimetri, atau disebut juga dengan algoritma kunci publik, didesain sedemikian rupa sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Kunci dekripsi tidak dapat dihitung dari kunci enkripsi. Algoritma ini disebut kunci publik karena kunci enkripsi dapat dibuat publik yang berarti semua pihak boleh mengetahuinya. Pihak manapun dapat menggunakan kunci enkripsi untuk melakukan enkripsi terhadap pesan, namun hanya orang tertentu (calon penerima pesan dan sekaligus pemilik kunci dekripsi yang merupakan pasangan kunci publik), yang dapat melakukan dekripsi terhadap pesan tersebut. Dalam sistem ini, kunci enkripsi sering disebut kunci publik, sementara kunci dekripsi sering disebut kunci privat. Kunci privat kadang-kadang disebut kunci rahasia. Yang termasuk algoritma asimetri adalah ECC, LUC, RSA, El Gamal dan DH.
Enkripsi dengan kunci publik Ke dinyatakan sebagai:
EKe (P) = C
Dengan kunci privat (Kd) sebagai pasangan kunci publik (Ke), dekripsi dengan
kunci privat yang bersesuaian dapat dinyatakan dengan: DKd (C) = P
Di sini, Ke merupakan pasangan Kd. Artinya tidak ada Kd lain yang dapat
digunakan untuk melakukan dekripsi kode C yang merupakan hasil enkripsi dengan kunci Ke. Sebaliknya, pesan dapat dienkripsi dengan kunci privat dan didekripsi
dengan kunci publik. Metode ini digunakan pada skema tanda tangan digital. Artinya kunci privat dan kunci publik digunakan secara berlawanan dengan tujuan yang berbeda. Sifat ini hanya berlaku untuk algoritma kunci publik tertentu semacam RSA. (Kurniawan, 2004:9-10)
2.2 Tiny Encryption Algorithm (TEA)
menggunakan 128 bit kunci dan mengoperasikan 64 bit blok data yang kemudian dibagi menjadi dua buah blok 32 bit pada saat proses enkripsi. (Andrews, dkk, 2001)
TEA memiliki 128 bit kunci yang dibagi menjadi 4 buah 32 bit sub kunci, yang ditulis sebagai K[0-3] pada gambar 2.5. Delta adalah sebuah konstanta 2^32 dibagi golden ratio (1.61803398875), atau Delta bernilai 2654435769. Nilai Delta akan bertambah 2 kali lipat pada putaran ke-2, bertambah 3 kali lipat pada putaran ke-3, dan seterusnya. Penambahan nilai Delta dapat dimodulokan dengan 2^32, karena nilai yang terpakai pada proses enkripsi dan dekripsi hanya 32 bit terakhir.
Cipher dimulai dari 64 bit blok data yang dibagi menjadi dua buah 32 bit data, dan disebut L dan R. L adalah 32 bit sebelah kiri, dan R adalah 32 bit sebelah kanan. Kedua blok ini akan bertukar posisi (swap) pada setiap putaran.
Deltai K[0]
< < 4
> > 5
K[1]
Deltai K[2]
< < 4
> > 5
K[3]
Keterangan gambar:
: fungsi penambahan modulo (2^32) : fungsi XOR
<< 4 : left shift sebanyak 4 bit >> 5 : right shift sebanyak 5 bit
Satu putaran proses enkripsi dari algoritma TEA dapat dijabarkan sebagai berikut:
1. R di-left shift sebanyak 4 bit dan ditambah dengan K[0] 2. R ditambahkan dengan Delta.
3. R di-right shift sebanyak 5 bit dan ditambah dengan K[1] 4. Hasil pada langkah-1, 2 dan 3 dimasukkan ke fungsi-XOR. 5. Tambahkan langkah ke-4 dengan L.
6. R(baru) = hasil dari langkah ke-5. 7. L(baru) = R (lama)
8. R di-left shift sebanyak 4 bit dan ditambah dengan K[2] 9. R ditambahkan dengan 2*Delta.
10. R di-right shift sebanyak 5 bit dan ditambah dengan K[3] 11. Hasil pada langkah-8, 9 dan 10 dimasukkan ke fungsi-XOR. 12. Tambahkan langkah ke-11 dengan L.
13. R(baru) = hasil dari langkah ke-12. 14. L(baru) = R (lama)
Langkah-langkah ini dilakukan sebanyak 32 putaran, lalu L dan R disatukan kembali untuk membentuk ciphertext. Proses dekripsi memiliki langkah yang terbalik dari proses enkripsi. (Andrews, dkk, 2001)
2.3 Visual Cryptography
dilakukan oleh sistem visual manusia dan lebih sederhana tanpa melakukan komputasi. Tanpa bantuan komputer Visual Cryptography diawali dengan memilih gambar rahasia, kemudian menggunakan metode Visual Cryptography dienkripsi menjadi beberapa bagian terpisah. Apabila bagian terpisah digabungkan maka sistem visual pada manusia akan melakukan dekripsi. Hal ini memungkinkan rata-rata orang menggunakan sistem tanpa pengetahun tentang kriptografi dan tanpa melakukan setiap perhitungan apapun. (Feng Liu & Wei Qi Yan, 2014)
Visual Cryptography (VC) juga merupakan mekanisme perlindungan rahasia berbasis gambar dimana proses decoding dilakukan dengan memeriksa saham bertumpuk dengan mata tanpa bantuan. (Ran-Zan Wang, Yung-Ching Lan, Yeuan-Kuen Lee, Shih-Yu Huang, Shyong-Jian Shyu & Tsong-Lin Chia, 2010)
Visual Cryptography, terdiri dari 2 tahapan, yaitu tahap enkripsi (pengubahan dan pemecahan file menjadi bebeberapa bagian) dan tahap dekripsi (penggabungan beberapa share file untuk merekonstruksi kembali file awal). (Kandar, S. & Maiti, A, 2011)
2.3.1 Proses Enkripsi
Proses enkripsi citra menghasilkan sebuah file cipher yang kemudian dilakukan proses ekspansi piksel-piksel file cipher tersebut secara acak untuk menghasilkan bebarapa pecahan file atau file share (n). Gambar 2.6 menunjukkan proses enkripsi file. (Kandar, S. & Maiti, A, 2011)
Langkah-langkah untuk enkripsi file dengan melakukan operasi XOR pada file awal dan kunci simetri yang dimasukkan adalah sebagai berikut:
1. Masukkan file awal.
2. Hitung panjang (h) dan lebar (w) file.
3. Buat array satu dimensi [w*h*24] untuk menyimpan biner piksel file. 4. Masukkan kunci simetri.
5. Hitung panjang kunci simetri kemudian ubah ke dalam 24 bit biner. 6. Buat array satu dimensi untuk menyimpan hasil konversi.
7. Lakukan operasi XOR antara kunci simetri dengan piksel file awal, simpan ke dalam array satu dimensi [w*h].
File yang telah dienkripsi (file cipher) akan dipecah atau dibagi menjadi
beberapa file share (n) kemudian dilakukan proses pemilihan file konstruksi (k) secara acak setelah dilakukan proses ekspansi piksel dari sebuah file cipher. Langkah-langkah pemecahan file dengan skema k-n adalah sebagai berikut: (Kandar, S. & Maiti, A, 2011)
1. Masukkan file cipher.
2. Hitung panjang (w) dan lebar (h) file.
3. Tentukan nilai jumlah file share (n) dan nilai jumlah file share konstruksi (k).
4. Hitung RECONS = (n-k)+1 untuk melakukan ekspansi piksel secara acak. 5. Buat array tiga dimensi [n][w*h][24] untuk menyimpan piksel dari file
share(n).
6. Scan setiap piksel dari file cipher, kemudian konversi ke 24 bit biner (RGB).
7. Buat array satu dimensi [n] untuk menyimpan piksel-piksel dari file share yang telah dilakukan ekspansi piksel secara acak.
2.3.2 Proses Dekripsi
Langkah kedua adalah dengan melakukan operasi XOR antara setiap piksel dari file cipher dengan input kunci simetri, seperti yang ditunjukkan pada gambar 2.7. (Kandar, S. & Maiti, A, 2011)
Gambar 2.7 Skema Proses Dekripsi (Kandar, S. & Maiti, A, 2011)
Tahap pertama, yaitu menumpukkan file share dengan melakukan fungsi OR terhadap file share yang digunakan untuk merekonstruksi kembali file. Langkah-langkahnya adalah sebagai berikut: (Kandar, S. & Maiti, A, 2011)
1. Masukkan file share yang tersedia. 2. Hitung panjang (h) dan lebar (w) file.
3. Buat array dua dimensi [k][w*h] untuk menyimpan piksel-piksel file share
4. Buat array satu dimensi [w*h] untuk menyimpan hasil Operasi OR pada semua file share yang di-input.
Tahap kedua, yaitu mengubah file cipher kembali ke file awal dengan menggunakan fungsi XOR antara file cipher dengan bit kunci. Langkah-langkahnya adalah sebagai berikut: (Kandar, S. & Maiti, A, 2011)
1. Masukkan file cipher. 2. Masukkan kunci simetri.
2.4 Penelitian Terdahulu
Pengguna Visual Cryptography sebelumnya pernah dilakukan (Shyamalendu Kandar dan Arnab Maiti, 2011) pada citra dengan membagi citra menjadi n bagian dan dapat direkonstruksi harus dengan n bagian juga. Jadi apabila terjadi kerusakan pada salah satu pecahan citra tidak dapat direkonstruksi kembali.
Shyamalendu Kandar dan Bibhas Chandra Dhara kemudian menggunakan Visual Cryptography dengan Skema k-n Secret Sharing dengan membagi citra pada n bagian dan membutuhkan hanya k bagian untuk merekonstruksi kembali citra.
Pada penelitian yang dilakukan oleh Feng Liu & Wei Qi Yan, 2014, pengembangan terdapat pada penerapan multi-secret sharing yang dapat diverifikasi jika terdapat shares yang tidak valid pada saat rekonstruksi pesan.
Tabel 2.1 Penelitian Terdahulu
No. Judul Peneliti Metode Keterangan
1. k-n Secret
Aplikasi ini menerapkan metode k-n Secret
Sharing Visual
Cryptography untuk membagi citra menjadi beberapa pecahan. Pada
proposal ini
menggunakan metode yang sama namun melakukan pecahan pada file dan menambahkan TEA.
Hasil penelitian ini menyatakan Protokol pertukaran share, pihak
tersebut harus
melakukan brute-force terhadap shares tersandi tersebut sebanyak pn bilangan acak (dimana p adalah modulo dalam secret sharing, dan n adalah panjang share), hal ini akan mustahil bagi pihak penyerang untuk mengetahui share yang benar, walaupun memiliki sumber daya
Tabel 2.1 Penelitian Terdahulu
No. Judul Peneliti Metode Keterangan
4. Variable image, sedangkan pada penelitian yang akan