BAB II TINJAUAN TEORITIS
2.1. Definisi dan Terminologi 2.1.1. Kriptografi Kriptografi (cryptographi) berasal dari Bahasa Yunani: “cryptos” artinya “secret” (rahasia), sedangkan “graphein” artinya “writing” (tulisan). Sehingga kriptografi berarti “secret writing” (tulisan rahasia). Jadi kriptografi didefinisikan sebagai ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya kebentuk yang tidak dapat dimengerti lagi maknanya. Kata “seni” dalam definisi tersebut berasal dari fakta sejarah bahwa pada masamasa awal sejarah kroptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara-cara tersebut mungkin berbeda-beda pada setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia, pesan tersebut mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan. Definisi di atas mungkin cocok pada masa lalu dimana kriptografi digunakan untuk keamanan komunikasi penting seperti komunikasi di kalangan militer, diplomat dan mata-mata. Namun saat ini kriptografi lebih dari sekedar privacy, tapi juga untuk tujuan data integrasi, authentication, dan non-repudiation. A.Menezes mendefinisikan kriptografi sebagai ilmu yang mempelajari teknikteknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data serta otentikasi. Definisi ini dapat dianggap sebagai
Universitas Sumatera Utara
pembanding antara kriptografi pada masa lalu dan kriptografi masa sekarang. Dewasa ini kriptografi berkembang menjadi sebuah disiplin ilmu sendiri karena teknik-teknik kriptografi dapat diformulasikan secara matematika sehingga menjadi sebuah metode yang formal.
2.1.2. Plainteks dan Cipherteks Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain dari pesan adalah plainteks (plaintext) atau teks jelas (cleartext). Pesan dapat berupa data atau informasi yang dikirim (melalui kurir, saluran telekomunikasi, dll) atau yang disimpan di dalam media perekam (kertas, storage, dll). Pesan yang tersimpan tidak hanya berupa teks, tetapi juga dapat berbentuk citra (image), suara, bunyi (audio), video atau berkas biner lainnya. Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan dapat disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks (ciphertext) atau kriptogram (cryptogram). Cipherteks harus dapat ditransformasikan kembali menjadi plainteks semula agar pesan yang diterima bisa dibaca.
2.1.3. Pengirim dan Penerima Komunikasi data melibatkan pertukaran pesan antara dua
entitas. Pengirim
(sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Entitas disini dapat berupa orang, mesin (komputer), kartu kredit, dan sebagainya. Jadi orang bisa bertukar pesan dari orang lainnya (contoh:
Universitas Sumatera Utara
Alice berkomunikasi dengan di Budi), sedangkan di dalam jaringan komputer, mesin (komputer) berkomunikasi dengan mesin (contoh: mesin ATM berkomunikasi dengan komputer server di Bank). Pengirim tentu menginginkan pesannya dapat dikirim dengan aman yaitu dia yakin bahwa pihak lain tidak dapat membaca isi pesan yang dia kirim. Solusinya adalah dengan cara menyandikan pesan menjadi cipherteks.
2.1.4. Enkripsi dan Dekripsi Proses penyandian plainteks menjadi cipherteks disebut enkripsi (encryption) atau enciphering. Sedangkan proses mengembalikan cipherteks menjadi plainteks semula dinamakan dekripsi (decryption) atau deciphering. Enkripsi dan dekripsi dapat diterapkan baik pada pesan yang dikirim maupun pada pesan yang tersimpan.
2.1.5. Cipher dan Kunci Algoritma kriptografi disebut juga cipher yaitu aturan untuk enchipering dan deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk enciphering dan deciphering. Konsep matematika yang mendasari algoritma kriptografi adalah relasi antar dua buah himpunan yaitu himpunan yang berisi elemen-element plainteks dan himpunan yang berisikan cipherteks. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemenelemen antara dua himpunan tersebut. Misalnya P mewakili plaintels dan C menyatakan cipherteks maka fungsi enkripsi E memetakan P ke C, E(P) = C
Universitas Sumatera Utara
Dan fungsi dekripsi D memetakan C ke P, D(C) = P Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan awal, maka persamaan berikut harus benar, D(E(P)) = P Keamanan algoritma kriptografi sering diukur dari banyaknya kerja (word) yang dibutuhkan untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Kerja ini dapat diekivalenkan dengan waktu, memori, uang dan lainlain. Semakin banyak kerja yang diperlukan berarti juga semakin lama waktu yang dibutuhkan, maka semakin kuat algoritma kriptografi tersebut, yang berarti semakin aman digunakan untuk menyandikan pesan. Jika keamanan kriptografi ditentukan dengan menjaga kerahasiaan algoritmanya, maka algoritma kriptografinya dinamakan algoritma restricted, dimana algoritma restricted ini mempunyai sejarah tersendiri di dalam kriptografi. Algoritma restricted biasanya digunakan oleh sekelompok orang untuk bertukar pesan satu sama yang lain. Mereka membuat suatu algoritma enkripsi dan algoritma enkripsi tersebut hanya diketahui oleh anggota kelompok itu saja. Tetapi algoritma restricted tidak cocok lagi saat ini, sebab setiap kali ada anggota kelompok keluar, maka algoritma kriptografi harus diganti lagi. Kriptografi modern mengatasi masalah di atas dengan menggunakan kunci, yang dalam hal ini algoritma tidak lagi dirahasiakan, tetapi kunci harus dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enciphering dan
Universitas Sumatera Utara
deciphering. Kunci biasanya berupa string atau deretan bilangan. Dengan menggunakan kunci K maka fungsi enkripsi dapat ditulis sebagai: EK(P) = C dan fungsi dekripsi dapat ditulis sebagai: DK(C) = P Dan kedua fungsi ini memenuhi: DK(EK(P)) = P Gambar 2.1.a.
memperlihatkan skema enkripsi dan dekripsi dengan
menggunakan kunci, sedangkan gambar 2.1.b. mengilustrasikan enkripsi dan dekripsi terhadap sebuah pesan kunci
kunci cipherteks
plainteks
Enkripsi
plainteks Dekripsi
(a)
Kunci K Stype xouvatx kutreg
Kirim senjata perang
P plainteks
Kunci K
Enkripsi
C
cipherteks
Kirim senjata perang
Dekripsi
P plainteks
( b)
Universitas Sumatera Utara
Gambar 2.1.(a) Skema enkripsi dan dekripsi, (b) Contoh ilustrasi enkripsi dan deskripsi pesan 2.1.6. Sistem Kriptografi Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistem kriptografi (cryptosystem) adalah kumpulan yang terdiri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin, dan kunci. Di dalam sistem kriptografi, cipher hanyalah salah satu komponen saja.
2.1.7. Penyadap Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan informasi sebanyakbanyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks.
2.1.8. Kriptanalisis dan Kriptologi Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis. Kriptanalisis (crypanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya
dinamakan
kriptanalis.
Jika
seorang
kriptografer
(cryptographer)
mentransformasikan plainteks menjadi cipherteks dengan suatu algoritma dan kunci, maka sebaliknya seorang kriptanalis berusaha untuk memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi (cryptology) adalah studi mengenai kriptografi dan kriptanalisis.
Universitas Sumatera Utara
2.2. Tujuan Kriptograpi Kriptografi bertujuan untuk memberikan layanan keamanan sebagai berikut: 1. Kerahasiaan (confidentiality), adalah layanan yang bertujuan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. Didalam kriptografi, layanan ini direalisasikan dengan menyandikan pesan menjadi cipherteks. 2. Integritas data (data integrity), adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda tangan digital (digital signature). Pesan yang telah ditandatangani menyiratkan bahwa pesan yang dikirim adalah asli. 3. otentikasi (authentication), adalah layanan yang berhubungan dengan identifikasi, baik
mengidentifikasi kebenaran
pihak-pihak
yang
berkomunikasi
maupun
mengidentifikasi kebenaran sumber pesan. Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan kebenaran sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. 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 sumber pesan. Didalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda tangan digital. Tanda-tangan digital menyatakan sumber pesan.
Universitas Sumatera Utara
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 misalnya pengirim pesan memberi otoritas kepada penerima pesan untuk melakukan pembelian, namun ia menyangkal telah memberikan otoritas tersebut.
2.3. Jenis-Jenis Kriptografi Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi dua, yaitu: 1. Kriptografi kunci simetri (symmantric key cryptography) 2. Kriptografi kunci asimetri (asymmetric key cryptography)
2.3.1. Kriptografi Kunci Simetri Pada sistem kriptografi kunci simetri, kunci untuk enkripsi sama dengan kunci untuk dekripsi, oleh karena itu dinamakan kriptografi kunci simetri atau kriptografi simetri. Istilah lain untuk kriptografi simetri adalah kriptografi kunci privat (private key cryptographi), kriptografi kunci rahasia (secret key cryptographi), atau kriptografi konvensional (conventional cryptographi). Sistem kriptografi simetri mengasumsikan pengirim dan penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan. Keamanan kriptografi simetri terletak pada kerahasiaan kuncinya. Kriptografi simetri merupakan satu-satunya jenis kriptografi yang dikenal dalam catatan sejarah hingga tahun 1976. Semua algoritma kriptografi klasik termasuk ke dalam sistem kriptografi
Universitas Sumatera Utara
simetri. Di sisi lain, ada puluhan algoritma kriptografi modern yang termasuk ke dalam sistem kriptografi simetri, diantaranya adalah DES (Data Encryption Standard), Blowfish, Twifish, Triple-DES, IDEA, Serpent dan yang terbaru adalah AES (Advanced Encryption Standard). Secara umum, cipher yang termasuk ke dalam kriptografi simetri beroperasi dalam mode bit dan dapat dikelompokkan dalam dua kategori, yaitu: 1. Cipher blok (block cipher) Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok-blik bit yang panjangnya sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64 bit, maka itu berarti algoritma enkripsi memperlakukan 8 karakter setiap kali enkripsi (1 karakter sama dengan 8 bit dalam pengkodean ASCII). Contoh criptografi yang menggunakan metode ini adalah DES, TripleDES, IDEA, AES, dan lain-lain. 2. Cipher aliran (stream cipher) Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan/didekripsikan bit per bit atau byte per byte. Contoh kriptografi yang menggunakan metode stream cipher adalah RC4 (Ron’s Code 4), A5 dan lain-lain.
Aplikasi kriptografi simetri yang utama adalah melindungi kerahasiaan data yang dikirim melalui media telekomunikasi dan melindungi kerahasiaan data yang disimpan pada media penyimpanan. Kelemahan dari sistem ini adalah baik pengirim maupun
Universitas Sumatera Utara
penerima pesan harus memiliki kunci yang sama, sehingga
pengirim pesan harus
mencari cara yang aman untuk memberitahukan kunci kepada penerima pesan.
Kunci privat, K
Kunci privat, K
Cipherteks, C
Plainteks, P
Plainteks, P Enkripsi EK(P) = C
Dekripsi DK (C) = P
Gambar 2.2. Skema kriptografi kunci simetri. Kunci enkripsi sama dengan kunci dekripsi yaitu K
2.3.1.1. Block Cipher Pada block cipher, rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang yang sama. Enkripsi dilakukan terhadap blok bit plainteks menggunakan bit-bit kunci (yang ukurannya sama dengan ukuran plainteks). Algoritma enkripsi menghasilkan blok cipher yang berukuran sama dengan blok plainteks. Dekripsi dilakukan dengan cara yang sama seperti enkripsi. Misalnya blok plainteks (P) yang ukurannya n bit dinyatakan sebagai vektor P = (p1,p2,,…,pn) yang dalam hal ini pi adalah 0 atau 1 untuk i = 1,2,3,…n, dan blok cipherteks ( C ) adalah C = (c1,c2,,…cn) yang dalam hal ini ci adalah 0 atau 1 untuk i = 1,2,…,n. Bila plainteks dibagi menjadi m buah blok, barisan blok-blok plainteks dinyatakan sebagai (P1,P2,…,Pm). Untuk setiap blok plainteks Pi, bit-bit penyusunnya dapat dinyatakan sebagai vektor
Universitas Sumatera Utara
Pi = (pi1,pi2,…pin) Enkripsi dengan kunci K dinyatakan dengan persamaan Ek(P) = C dan dekripsi dengan kunci K dinyatakan dengan persamaan Dk( C ) = P Fungsi E haruslah fungsi yang berkoresponden satu ke satu, sehingga E-1 = D
2.3.1.2. Stream Cipher Stream cipher membangkitkan plainteks menjadi cipherteks bit per bit (satu bit setiap kali transformasi) atau byte per byte (1 karakter = 1 byte), stream cipher yang memproses data byte per byte adalah vegenere cipher atau one time pad chiper. Nama lain untuk stream cipher adalah cipher status sebab enkripsi setiap bit bergantung pada saat ini(current state). Stream cipher pertama kali diperkenalkan oleh Vernam melalui algoritmanya yang dikenal dengan nama Vernam cipher. Vernam cipher diadopsi dari one time pad cipher, yang dalam hal ini karakter diganti dengan bit (0 atau 1). Cipherteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit plainteks dengan satu bit kunci, Ci = (pi + ki) mod 2 yang dalam hal ini, Pi = bit plainteks Ki = bit kunci Ci = bit cipherteks
Universitas Sumatera Utara
Plainteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit cipherteks dengan satu bit kunci: Pi = (ci + ki) mod 2 Oleh karena itu kita dapat menyatakan bahwa stream cipher merupakan aproksimasi dari unbreakable cipher, yaitu one time pad cipher. Mengingat operasi penjumlahan modulo 2 identik dengan operasi bit dengan operator XOR, maka persamaan diatas dapat ditulis sebagai Ci = pi ⊕ ki Dan proses deskripsi menggunakan persamaan Pi = ci ⊕ ki Keamanan sistem stream cipher bergantung seluruhnya pada pembangkit aliran kunci. Jika pembangkit mengeluarkan aliran kunci yang seluruhnya nol maka cipheteks sama dengan plainteks, dan proses enkripsi menjadi tidak berarti. Jika pembangkit mengeluarkan aliran kunci dengan pola 16 bit yang berulang, maka algoritma enkripsinya menjadi sama seperti enkripsi dengan XOR sederhana yang memiliki tingkat keamanan yang tidak berarti. Jika pembangkit mengeluarkan aliran kunci yang benar-benar acak (truly random), maka algoritma enkripsinya sama dengan one time pad cipher dengan tingkat keamanan sempurna. Pada kasus ini, aliran kunci sama panjangnya dengan panjang plainteks, dan mendapatkan stream cipher sebagai unbreakable cipher. Jadi, tingkat keamanan cipher aliran terletak antara algoritma XOR sederhana dengan one time pad. Semakin acak keluaran yang dihasilkan oleh pembangkit aliran kunci, semakin sulit kriptanalis memecahkan cipherteks.
Universitas Sumatera Utara
2.3.2. Kriptografi Kunci Asimetri Jika kunci untuk enkripsi tidak sama dengan kunci
untuk dekripsi, maka
kriptografinya dinamakan kriptografi kunci asimetri atau kriptografi asimetri. Nama lainnya adalah kriptografi kunci publik (public key cryptographi), sebab kunci untuk enkripsi tidak rahasia dan dapat diketahui oleh siapapun (diumumkan ke publik), sementara kunci untuk dekripsi hanya diketahui oleh penerima pesan. Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci privat dan kunci publik. Pengirim mengenkripsi pesan dengan menggunakan kunci publik si penerima pesan. Hanya penerima pesan yang dapat mendekripsikan pesan karena hanya dia yang mengetahui kunci privatnya sendiri. Keuntungan kriptografi kunci publik ada dua. Pertama tidak ada kebutuhan untuk mendistribusikan kunci privat sebagaimana pada kriptografi simetri. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang digunakan untuk mengirimkan pesan. Perhatikan bahwa saluran untuk mengirim pesan umumnya tidak aman. Kedua, jumlah kunci dapat ditekan. Untuk berkomunikasi secara rahasia dengan banyak orang, tidak perlu kunci rahasia sebayak jumlah orang tersebut, cukup membuat dua buah kunci, yaitu kunci publik bagi para koresponden untuk mengenkripsikan pesan dan kunci privat bagi penerima pesan untuk mendeskripsikan pesan. Berbeda dengan kriptografi kunci simetri dimana jumlah kunci yang dibuat adalah sebanyak jumlah pihak yang diajak untuk berkorespondensi
Contoh algoritma kriptografi
kunci publik
diantaranya RSA, Elgamal, DSA, dan lain sebagainya.
3.2.2.1. Konsep Kriptografi Kunsi Asimetri
Universitas Sumatera Utara
Konsep kriptografi kunci asimetri sederhana dan elegan, tetapi mempunyai konsekuensi penggunaan yang hebat. Seperti yang telah dijelaskan pada bagian awal, pada kriptografi kunci publik, setiap pengguna memiliki sepasang kunci, satu kunci untuk enkripsi dan satu kunci untuk dekripsi. Kunci untuk enkripsi diumumkan kepada publik sehingga dinamakan dengan kunci publik dan disimbolkan dengan e. Kunci untuk dekripsi bersifat rahasia sehingga dinamakan dengan kunci privat dan disimbolkan dengan d.
Kunci publik, e
Kunci privat, d
Cipherteks, C
Plainteks, m Enkripsi Ee(m) = c
Plainteks, m Dekripsi Dd (c) = m
Gambar 2.3. Skema kriptografi kunci asimetri. Kunci enkripsi (e) tidak sama dengan kunci dekripsi (d).
Misalnya E adalah fungsi enkripsi dan D adalah fungsi dekripsi dan e dan d adalah pasangan kunci untuk enkripsi dan dekripsi, sehingga Ee(m) = c dan Dd(c) = m untuk suatu plainteks m dan cipherteks c. Kedua persamaan ini menyiratkan bahwa dengan mengetahui e dan c, maka secara komputasi hampir tidak mungkin menemukan m. Asumsi lainnya, dengan mengetahui e secara komputasi hampir tidak mungkin menurunkan d.
Universitas Sumatera Utara
Konsep di atas menjadi penting bila kriptografi kunci publik digunakan untuk mengamankan pertukaran pesan dari dua entitas yang berkomunikasi. Misalkan Mery berkomunikasi dengan Toni. Toni memilih pasangan kunci (e,d). Toni mengirimkan kunci enkripsi e (kunci publik) kepada Mery melalui sembarang saluran komunikasi tetapi tetap menjaga kerahasiaan kunci dekripsi d (kunci privat). Kemudian Mery ingin mengirim pesan m kepada Toni. Mery mengenkripsi pesan m dengan menggunakan kunci publik Toni, untuk mendapatkan c = Ee(m), lalu mengirimkan c melalui saluran komunikasi. Toni mendekripsikan cipherteks c dengan menggunakan kunci privatnya untuk memperoleh m = Dd( c).
2.3.3. Perbandingan Kriptografi Kunci Simetri dan Kriptografi Kunci Asimetri Baik kriptografi kunci simetri maupun kunci asimetri, keduanya mempunyai kelebihan dan kelemahan masing-masing Kelebihan kriptografi kunci simetri 1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi membutuhkan waktu yang singkat. 2. Ukuran kunci simetri relatif
pendek. Algoritma kriptografi simetri dapat
digunakan untuk membangkitkan bilangan acak. 3. Algoritma kunci simetri dapat disusun untuk menghasilakan cipher yang lebih kuat. 4. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan saja. Kelemahan kriptografi kunci simetri
Universitas Sumatera Utara
1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci ini. 2. Kunci harus sering diubah, mungkin setiap sesi komunikasi. Kelebihan kriptografi kunci asimetri 1. Hanya kunci privat yang perlu dijaga kerahasiaanya oleh setiap entitas yang berkomunikasi (tetapi otentikasi kunci public harus tetap terjamin). Tidak ada kebutuhan untuk mengirim kunci privat sebagaimana kriptografi kunci simetri. 2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktun yang panjang. 3. Dapat digunakan untuk mengamankan pengiriman kunci simetri 4. Beberapa algoritma kunci publik dapat digunakan untuk memberi tandatangan digital pada pesan. Kelemahan kriptografi kunci asimetri 1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem kriptografi simetri, karena enkripsi dan dekripsi menggunakan bilangna yang besar dan melibatkan operasi perpangkatan yang besar. 2. Ukuran cipherteks lebih besar daripada plainteks. 3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri. 4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang maka cipherteks tidak memberikan informasi mengenai otentikasi pengirim.
Karena kelebihan dan kelemahan yang ada pada masing-masing kriptografi, maka tidaklah benar bahwa kriptografi kunci publik menggantikan kriptografi kunci simetri.
Universitas Sumatera Utara
Karena kriptografi kunci publik mempunyai kelemahan dari segi waktu komputasi dan ukuran cipherteks dibandingkan dengan kriptografi kunci simetri, maka hal ini mempunyai implikasi dalam praktek dan penggunaan. Kebanyakan sistem keamanan menggunakan gabungan kriptografi kunci simetri dan kriptografi kunci publik (hybrid cryptosystem). Pada sistem hibrid
ini
enkripsi/dekripsi pesan menggunakan kriptografi kunci simetri, sedangkan kunci simetri dienkripsi/dekripsi dengan menggunakan kunci publik. Kunci simetri (yang disebut juga kunci sesi) dibangkitkan oleh salah satu pihak dan mengenkripsi pesan dengan kunci tersebut. Selanjutnya kunci sesi dienkripsikan dengan kunci publik penerima lalu dikirim bersama-sama dengan pesan yang sudah dienkripsi. Penerima mula-mula mendekripsikan kunci sesi dengan kunci privatnya, lalu mendekripsikan pasan dengan kunci sesi tersebut.
2.4. Serangan Terhadap Kriptografi Tugas utama dari kriptografi adalah menjaga kerahasiaan plainteks maupun kunci ataupun keduanya dari penyadap. Penyadap berusaha mendapatkan data yang digunakan untuk kegiatan kriptanalisis. Penyadap bisa juga disebut sebagai seorang kriptanalis. Istilah lain untuk pihak lawan adalah penyusup pesan (intruder), penyerang (attacker), musuh (enemy, adversaries), atau pencegat (interceptor). Ada beberapa jenis serangan yang ditujukan terhadap sistem kriptografi. Yang dimaksud dengan serangan (attack) adalah setiap usaha (attempt) atau percobaan yang dilakukan oleh kriptanalis untuk menemukan kunci atau plainteks dari cipherteksnya. Seperti yang telah dijelaskan sebelumnya bahwa kriptanalisis bertujuan untuk memecahkan cipherteks menjadi plainteks semula tanpa memiliki akses ke kunci yang
Universitas Sumatera Utara
akan digunakan. Kriptanalis berusaha menemukan kelemahan kunci dan mengungkapkan plainteks. Dalam membahas serangan terhadap kriptografi, selalu
mengasumsikan
kriptanalis mengetahui algoritma kriptografi yang digunakan, sehingga satu-satunya keamanan sistem kriptografi terletak sepenuhnya pada kunci. Hal ini didasarkan pada prinsip Kerckhoff (1883) yang berbunyi “Semua algoritma kriptografi harus publik; hanya kunci yang rahasia”. Dengan kata lain, kriptanalis mengetahui algoritma enkripsi dan dekripsi secara detil. Merahasiakan algoritma kriptografi bukan solusi yang praktis, sebab setiap kali algoritma berhasil diketahui lawan, maka kriptografer harus membuat algoritma baru. Dengan membuat algoritma menjadi publik, maka cukup kunci saja yang dirahasiakan. Jika kunci berhasil dicuri, maka kunci baru dibangkitkan tanpa harus mengganti algoritmanya. Jadi tidak mengherankan kalau semua algoritma kriptografi telah dipublikasikan sehingga siapapun dapat mempelajarinya. Menurut Schneier, algoritma yang terbaik adalah algoritma yang telah dipublikasikan dan telah “diserang” oleh para kriptografer dan kriptanalis yang terbaik di dunia dan hingga kini belum berhasil dipecahkan. Dengan mempublikasikan algoritma kriptografi, kriptografer memperoleh konsultasi gratis dari sejumlah kriptologis akademisi yang
ingin sekali memecahkan algoritma sehingga mereka dapat
mempublikasikan paper yang memperlihatkan kecerdasan mereka. Jika banyak pakar telah mencoba memecahkan algoritma selang lima tahun setelah dipublikasikan dan tidak seorangpun berhasil, maka mungkin algoritma tersebut tangguh.
Universitas Sumatera Utara
Karena keamanan sistem secara eksklusif ditentukan oleh kunci, maka panjang kunci menentukan keamanan sistem. Semakin panjang kunci, maka jumlah kemungkinan diterka semakin besar. Kunci sepanjang 32 bit berarti memiliki kemungkinan diterka sebanyak 232 = 4,3 x 109 buah terkaan. Semakin panjang kunci, maka factor kerja (work factor) untuk menemukan kunci semakin besar.
2.4.1. Keamanan Algoritma Kriptografi Lars Knudsen mengelompokkan hasil kriptanalisis ke dalam beberapa kategori berdasarkan jumlah dan kualitas informasi yang berhasil ditemukan, yaitu: 1. Pemecahan total (total breack), kriptanalis menemukan kunci K, sehingga dekripsi Dk(C) = P. 2. Deduks i global (global deduction), kriptanalis menemukan algoritma alternatif, A, yang ekivalen dengan Dk(C) tetapi tidak mengetahui kunci K. 3. Deduksi Lokal (instance/local deduction), kriptanalis menemukan plainteks dan cipherteks yang disadap. 4. Deduksi informasi (information deduction), kriptanalis menemukan beberapa informasi prihal kunci atau plainterks. Misalnya kriptanalis mengetahui beberapa bit kunci, kriptanalis mengetahui bahasa yang digunakan untuk menulis plainteks, kriptanalis mengetahui format plainteks, dan sebagainya. 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
Universitas Sumatera Utara
sebanyak berapapun yang dimiliki kriptanalis tidak memberikan informasi yang cukup untuk dideduksi plainteks yang berkirespondensi dengan cipherteks tersebut. Sebaliknya, sebuah algoritma kriptografi dikatakan aman secara komputasi (computationally secure) bila memenuhi kriteria berikut: 1. Biaya untuk memecahkan cipherteks melampaui nilai informasi yang terkandung di dalam cipherteks tersebut. 2. Waktu yang diperlukan untuk memecahkan cipherteks melampaui lamanya waktu informasi tersebut harus dijaga kerahasiaannya.
2.4.2. Jenis-jenis Serangan Kriptografi Ada
beberapa jenis serangan yang mungkin dilakukan oleh pemecah code
(criptanalis), dengan asumsi algoritma enkripsi telah dikenal, yaitu 1. Ciphertext only attack, Ini adalah serangan yang paling umum namun paling sulit karena informasi yang tersedia hanyalah cipherteks saja. Kripatanalis memiliki beberapa cipherteks dari beberapa pesan, semuanya dienkripsi dengan algoritma yang sama. Tugas kriptanalis adalah menemukan plainteks sebanyak mungkin dari cipherteks tersebut atau menemukan kunci yang digunakan untuk mendekripsikan cipherteks tersebut. Secara formal hal ini diformulasikan sebagai berikut: Diberikan: C1 = Ek(P1), C2 = Ek(P2),…,Ci = Ek(Pi) Deduksi: P1, P2,…,Pi atau k untuk mendapatkan Pi+1 dari Ci+1 = Ek(Pi+1) Untuk mendeduksi plainteks dari cipherteks, kriptanalis mungkin menggunakan beberapa cara, seperti mencoba semua kemungkinan kunci (exhaustive search),
Universitas Sumatera Utara
menggunakan teknik analisis frekuensi, membuat terkaan berdasarkan informasi yang diketahui (misalnya bahasa yang digunakan untuk menulis plainteks), dan sebagainya. 2. Known plaintext attack Ini adalah jenis serangan dimana kriptanalis memiliki pasangan plainteks dan cipherteks yang berkoresponden. Secara formal hal ini diformulasikan sebagai berikut: Diberikan: P1,C1 = Ek(P1); P2,C2 = Ek(P2); …; Pi,Ci = Ek(Pi) Deduksi: k untuk mendapatkan Pi+1 dari Ci+1 = Ek(Pi+1) Plainteks mungkin diperoleh dengan mempelajari karakteristik pesan. Beberapa pesan yang formatnya terstruktur membuka peluang kepada kriptanalis untuk menerka plainteks dari cipherteks yang bersesuaian. Misalnya surat-surat resmi (seperti surat diplomatik) selalu dimulai dengan kata “Dengan Hormat” , “Dear Sir”, dan sebagainya. Jika kriptanalis memperoleh cipherteks dari surat resmi, ia dapat menerka bahwa bahwa potongan cipherteks pada bagian awal surat berkoresponden dengan plainteks “Dengan hormat”. Contoh lain terdapat pada e-mail yang selalu dimulai dengan kata “From” dan “To”.
Berkas-berkas yang dikodekan dengan format
postscript juga selalu diawali dengan format yang sama sehingga peluang menerka plainteks lebih besar. Begitu juga pesan pengiriman uang secara elektronik yang mempunya format standard. 3. Chosen plainteks attack Serangan jenis ini lebih hebat daripada known plaintext attack, karena kriptanalis dapat memilih plainteks yang dimilikinya untuk dienkripsikan, yaitu plainteks-
Universitas Sumatera Utara
plainteks yang lebih mengarahkan penemuan kunci. Secara formal hal ini diformulasikan sebagau berikut: Diberikan: P1, C1 = Ek(P1); P2, C2 = Ek(P2);…; Pi, Ci = Ek(Pi) dimana kriptanalis dapat memilih diantara P1,P2,…,Pi Deduksi: k untuk mendapatkan Pi+1 dari Ci+1 = Ek(Pi+1) Kasus khusus dari chosen plainteks attack adalah adaptive chosen plainteks attack. Misalnya kriptanalis memilih blok plainteks yang besar, lalu dienkripsikan, kemudian memilih blok lainnya yang lebih kecil berdasarkan hasil enkripsi sebelumnya, begitu seterusnya. 4. Chosen ciphertext attack Ini adalah jenis serangan dimana criptanalis memilih cipherteks untuk didekripsikan dan memiliki akses ke plainteks hasil dekripsi. Jenis serangan ini biasanya dipakai pada sistem kriptografi. Secara formal hal ini diformulasikan sebagai berikut: Diberikan: C1, P1 = Dk(C 1); C2, P2 = Dk(C2);…;Ci, Pi = Dk(Ci) Deduksi: k yang mungkin diperlukan untuk mendekripsikan pesan pada waktu yang akan datang. Kasus khusus dari serangan ini adalah adaptive chosen ciphertext attack. Misalnya kriptanalis memilih sejumlah cipherteks untuk didekripsikan, lalu berdasarkan hasil dekripsi ini kriptanalis memilh cipherteks berikutnya. 5. Chosen text attack Ini adalah jenis serangan yang merupakan kombinasi chosen plaintext attack dan chosen plaintext attack.
Universitas Sumatera Utara
2.5. Data Encryption Standard (DES) Data Encryption Standard (DES) merupakan algoritma enkripsi yang paling banyak dipakai di dunia. DES diadopsi oleh NIST (National Institue of Standard and Technology) sebagai standar pengolahan informasi Federal AS. Secara umum DES terbagi menjadi tiga kelompok, yaitu pemrosesan kunci, enkripsi data 64 bit, dan dekripsi data 64 bit yang mana satu kelompok saling berinteraksi satu dengan yang lainnya.
2.5.1. Sejarah DES Pada akhir tahun 1960, IBM memulai suatu riset Lucifer proyek yang dipimpin oleh Horst Feistel untuk komputer kriptografi. Proyek ini berakhir pada tahun 1971 dan Lucifer yang pertama kali dikenal sebagai blok cipher pada pengoperasian pada blok 64 bit dan menggunakan ukuran kunci 128 bit. Setelah IBM mengembangkan suatu sistem enkripsi yang dikomersilkan, maka Lucifer disebut dengan DES (Data Encryption Standard), proyek ini dipimpin oleh Walter Tuchman, hasil dari riset ini merupakan versi dari Lucifer yang bersifat menentang pemecahan algoritma kriptografi. Pada tahun 1973, National Burean of Standard (NBS), sekarang menjadi National Institute of Standard and Technology (NIST), mengeluarkan proposal cipher standar untuk nasional. IBM menyampaikan hasil risetnya tentang proyek DES dan mengajukan sebagai kandidat untuk cipher standar nasional. NBS meminta agar National Security Agency (NSA) untuk melakukan evaluasi keamanan algoritma dan menentukan apakah pantas menjadi standar pemerintahan. Pada bulan November 1976, DES dipilih sebagai standar yang dipakai pada pemerintahan dan authorize untuk menggunakan atas nama US Government Communication. Undang-undang atas penggunaan DES yaitu PUB 46 diterbitkan pada 15 Januari 1977. Algoritma DES merupakan salah satu proposal yang terbaik pada tahun 1977, tidak ada kritik yang datang dari kalangan ilmuan tentang panjang kunci yang digunakan dan S-Box yang merupakan bagian internal dari DES. Selama 20 tahun algoritma DES dipakai sebagai standar nasinal. Pada tahun 1990 panjang kunci DES dianggap terlalu
Universitas Sumatera Utara
pendek dan pada tahun 1998, 70 ribu PC di internet berhasil membobol satu kunci DES dalam tempo waktu 96 hari, tahun 1999 dalam tempo 22 hari. Dengan alasan tersebut, maka pada tahun 2001 NIST mengganti DES menjadi AES (Advanced Encryption Standard) sebagai standar nasional.
Universitas Sumatera Utara