Enkripsi dan Kriptografi BAB 2 Enkripsi dan Kriptografi
Outline Definisi Kriptografi Tujuan Kriptografi Prinsip Kriptografi Skema Sistem Kriptografi Algoritma Kriptografi
Definisi kriptografi: Berasal dari kata cryptography diadopsi dari bahasa Yunani untuk merujuk kepada “secret-writing” Ilmu yang ditujukan untuk mempelajari dan melakukan eksplorasi seputar keamanan pengiriman sebuah pesan (message). Praktisi yang menggunakannya sering disebut dengan kriptografer (cryptographer).
Implementasi kriptografi: Dasar pengembangannya menggunakan model matematika. Banyak digunakan terutama dalam bidang pertahanan dan keamanan. Umum diaplikasikan untuk segala aktivitas yang berhubungan dengan Teknologi Informasi.
Prinsip Kriptografi: Menjaga kerahasiaan (confidentiality) pesan. Keabsahan pengirim (user authentication). Keaslian pesan (message authentication). Anti-penyangkalan (non-repudiation).
Skema Sistem Kriptografi
Pemodelan Matematis: Plaintext : x Algoritma : tambahkan x dengan bilangan 13 Key : f(x) Ciphertext : (x+13)
Contoh: Plaintext Televisi sudah dibeli Key Key enkripsi dekripsi Ciphertext Gryrivfv fhqnu qvoryv
Elemen Sistem Kriptografi: Plaintext: yakni pesan sumber yang pertama dibuat oleh user; dapat dibaca oleh orang umumnya . Ciphertext: ini adalah bentuk setelah pesan dalam plaintext telah diubah bentuknya menjadi lebih aman dan tidak dapat dibaca. Proses mengubah plaintext menjadi ciphertext disebut encryption (enciphering), dan proses membalikkannya kembali disebut decryption (deciphering). Cryptographic algorithm: yaitu mekanisme/ tahapan yang digunakan berdasar operasi matematika untuk mengubah plaintext menjadi ciphertext.
Elemen Sistem Kriptografi: Key: yakni kunci yang digunakan berdasar pada cryptographic algorithm untuk melakukan proses enkripsi dan dekripsi kepada pesan yang dikirimkan. Ini berarti bahwa hanya user yang memiliki key saja yang dapat men-decrypt sebuah pesan dalam bentuk ciphertext.
Skema Proses Enkripsi dan Dekripsi Plaintext dekripsi Ciphertext
Algoritma Kriptografi Berdasarkan jenis kunci yang digunakan : Algoritma Simetris Algoritma Asimetris Berdasarkan besar data yang diolah : Algoritma Block Cipher Algoritma Stream Cipher
Berdasarkan jenis kunci yang digunakan : Algoritma Simetris Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana kunci enkripsi yang digunakan sama dengan kunci dekripsi sehingga algoritma ini disebut juga sebagai single-key algorithm.
Berdasarkan jenis kunci yang digunakan : Kelebihan algoritma simetris : Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real-time Kelemahan algoritma simetris : Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut. Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution problem”
Berdasarkan jenis kunci yang digunakan : Algoritma Asimetris Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma dimana kunci enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (private key). Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara rahasia oleh si pengguna. Walau kunci publik telah diketahui namun akan sangat sukar mengetahui kunci privat yang digunakan.
Berdasarkan jenis kunci yang digunakan : Kelebihan algoritma asimetris : Masalah keamanan pada distribusi kunci dapat lebih baik Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit Kelemahan algoritma asimetris : Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang dibandingkan dengan algoritma simetris.
Berdasarkan besar data yang diolah : Block Cipher algoritma kriptografi ini bekerja pada suatu data yang berbentuk blok/kelompok data dengan panjang data tertentu (dalam beberapa byte), jadi dalam sekali proses enkripsi atau dekripsi data yang masuk mempunyai ukuran yang sama. Stream Cipher algoritma yang dalam operasinya bekerja dalam suatu pesan berupa bit tunggal atau terkadang dalam suatu byte, jadi format data berupa aliran dari bit untuk kemudian mengalami proses enkripsi dan dekripsi.
Keamanan Kriptografi: Sistem yang handal bisa melewatkan sebuah pesan dalam bentuk ciphertext pada sebuah kanal yang belum tentu aman. Ada tiga aspek untuk melindungi sebuah pesan yang ingin dikirimkan, yaitu dengan memberi lapisan keamanan pada sisi: pengirim, penerima, dan kanal yang digunakan untuk media pengiriman.
Kesimpulannya, sistem kriprografi (cryptosystem) adalah interaksi diantara elemen-elemen sistem yang terdiri dari: algoritma kriptografi, plaintext, ciphertext, dan kunci untuk menghasilkan bentuk baru dari perubahan bentuk sebelumnya. Orang yang berusaha untuk melakukan penyadapan atau pembongkaran disebut dengan penyadap (eavesdropper) atau intruder.
Cryptography Proses menyandikan plaintext menjadi ciphertext disebut enkripsi (encryption) atau enciphering Proses mengembalikan ciphertext menjadi plaintextnya disebut dekripsi (decryption) atau deciphering plaintext ciphertext plaintext semula enkripsi dekripsi
Apa hubungan antara cryptanalysis dan cryptology ???
Definisi : Cryptanalysis adalah cara yang digunakan untuk memecahkan chipertext menjadi plaintext tanpa mengetahui kunci (key) yang sebenarnya. User yang melakukannya disebut cryptanalyst. Cryptology adalah studi yang dilakukan untuk mempelajari segala bentuk tentang cryptography dan cryptanalysis.
Persamaan cryptography dan cryptanalysis: Mengeksplorasi bagaimana proses menerjemahkan ciphertext menjadi plaintext. Perbedaan cryptography dan cryptanalysis: cryptography bekerja secara legal berdasar proses legitimasi sebagaimana mestinya (yakni pengirim atau penerima pesan). cryptanalysis bekerja secara ilegal karena dilakukan dengan cara menyadap untuk memungkin yang tidak berhak mengakses informasi.
Fakta sejarah penggunaan kriptografi: Tentara Yunani pada perang di Sparta (400SM) menggunakan scytale, yakni pita panjang dari daun papyrus + sebatang silinder, yang digunakan sebagai alat untuk mengirimkan pesan rahasia perihal strategi perang.
Skema Scytale: Plaintext ditulis secara horisontal (yakni baris per baris). Jika pita dilepas, maka huruf-huruf pada pita telah tersusun membentuk pesan rahasia (ciphertext). Agar penerima bisa membaca pesan tersebut, maka pita dililitkan kembali menggunakan silinder yang diameternya sama dengan diameter silinder si pengirim.
Implementasi enkripsi proses pengiriman data melalui kanal komunikasi (kanal suara atau kanal data). mekanisme penyimpanan data ke dalam disk-storage.
Skema Implementasi Kriptografi: dikirimkan transmitter di-enkripsi menjadi ciphertext plaintext Basisdata
Contoh Cipherteks (cipher.txt): Contoh-contoh pada data tersimpan: Dokumen teks Plainteks (plain.txt): Ketika saya berjalan-jalan di pantai, saya menemukan banyak sekali kepiting yang merangkak menuju laut. Mereka adalah anak-anak kepiting yang baru menetas dari dalam pasir. Naluri mereka mengatakan bahwa laut adalah tempat kehidupan mereka Cipherteks (cipher.txt): Ztâxzp/épêp/qtüyp{p}<yp{p}/sx/p}âpx;épêp/|t}t|äzp}/qp}êpz/étzp{x/ztxâx}vêp}v/|tüp}vzpz/|t}äyä/{päâ=/\tützppsp{pw/p}pz<p}pz/ztxâx}v/êp}v/qpüä|t}tâpé/spüx/sp{p|/péxü=/]p{äüx|ttüzp/|t}vpâpzp}/qpwåp/{päâ/psp{pwât|pâ/ztwxsäp}/|tützp=
Implementasi Kriptografi pada image: Ciphertext (sabrina1.jpg): Plaintext (sabrina.jpg):
Contoh Dokumen basisdata Plainteks (siswa.dbf): NIM Nama Tinggi Berat 000001 Soleha 160 46 000002 Cahaya 156 41 000003 Aisyah 165 55 000004 Kasih 170 62 Cipherteks (siswa2.dbf): NIM Nama Tinggi Berat 000001 tüp}vzpz/| {äâ |äzp} épêp 000002 tâpé/spüx/sp péxü= ztwx 000003 pâ/ztwxsäp }/|tü spüx 000004 |äzp}/qp qp}ê wxsä
Kekuatan sebuah sistem kriptografi: Semakin banyak usaha yang diperlukan, untuk membongkar sebuah cryptosystems, maka semakin lama waktu yang dibutuhkan; sehingga semakin kuat algoritma kriptografi yang digunakan, artinya semakin aman digunakan untuk menyandikan pesan
Kekuatan sebuah sistem kriptografi: Sebuah algoritma cryptography bersifat restricted, apabila kekuatan kriptografi-nya ditentukan dengan menjaga kerahasiaan algoritma tersebut. Saat ini algoritma bersifat restricted tidak lagi banyak digunakan; dengan alasan tidak cocok dalam penggunaan pada karakter open-systems.
Kekuatan sebuah sistem kriptografi: Pada lingkungan dengan karakter open-systems, kekuatan algoritma cryptograpy-nya terletak pada key yang digunakan, yakni berupa deretan karakter atau bilangan bulat.
Fungsi pemetaan PC ; disebut E (encryption): P = plaintext Jika disimbolkan: C = chipertext maka: Fungsi pemetaan PC ; disebut E (encryption): E(P) = C Fungsi pemetaan C P disebut D (decryption): D(C) = P
dan ekivalen menjadi: EK(P) = C DK(C) = P DK(EK(P)) = P Dengan menggunakan key (K), fungsi enkripsi dan dekripsi berubah menjadi: EK(P) = C untuk enkripsi DK(C) = P untuk dekripsi dan ekivalen menjadi: DK(EK(P)) = P
Skema Proses Enkripsi dan Dekripsi dengan K: Plaintext dekripsi Ciphertext K
Apabila kunci (K) enkripsi sama dengan kunci dekripsi, maka sistem kriptografi-nya disebut sistem simetris (sistem konvensional); dan algoritma kriptografi-nya disebut dengan algoritma simetri atau algoritma konvensional. Contohnya: Algoritma DES (Data Encyption Standard).
K yang sama digunakan untuk enkripsi dan dekripsi pesan: Kriptografi simetris K yang sama digunakan untuk enkripsi dan dekripsi pesan:
Kelebihan algoritma simetris: Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetris. Karena kecepatan operasinya yang cukup tinggi, maka dapat digunakan pada sistem real-time.
Kelemahan algoritma simetris: Untuk tiap pengiriman pesan dengan user yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut. Permasalahan dalam pengiriman kunci itu sendiri yang disebut "key distribution problem".
Contoh algoritma simetris Data Encryption Standard (DES), RC2, RC4, RC5, RC 6, International Data Encryption Algorithm (IDEA), Advanced Encryption Standard (AES), On Time Pad (OTP), A5, dan lain sebagainya.
Algoritma asimetris Menggunakan dua kunci yakni kunci publik (public-key), umumnya digunakan sebagai kunci enkripsi; dan kunci privat (private-key) yang umumnya digunakan sebagai kunci dekripsi. Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara rahasia oleh user. Walaupun kunci publik telah diketahui namun akan sangat sukar mengetahui kunci privat yang digunakan
Pada kriptografi asimetris, K1 digunakan untuk enkripsi plaintext dan K2 digunakan untuk dekripsi ciphertext:
Kelebihan algoritma asimetris: Masalah keamanan pada distribusi kunci dapat lebih baik. Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit.
Kelemahan algoritma asimetris: Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris. Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang dibandingkan dengan algoritma simetris.
Klasifikasi algoritma kriptografi berdasar panjang data digunakan dalam sekali proses: Algoritma block cipher : Informasi/data yang hendak dikirim dalam bentuk blok-blok besar (misal 64-bit) dimana blok-blok ini dioperasikan dengan fungsi enkripsi yang sama dan akan menghasilkan informasi rahasia dalam blok-blok yang berukuran sama juga. Contoh: RC4, Seal, A5, Oryx. Algoritma stream cipher : Informasi/data yang hendak dikirim dioperasikan dalam bentuk blok-blok yang lebih kecil (byte atau bit), biasanya satu karakter per-satuan waktu proses, menggunakan tranformasi enkripsi yang berubah setiap waktu. Contohnya: Blowfish, DES, Gost, Idea, RC5, Safer, Square, Twofish, RC6, Loki97.
Contoh algoritma asimetris Digital Signature Algorithm (DSA), RSA, Diffle-Hellman (DH), Elliptic Curve Cryptography (ECC), Kriptografi Quantum, dan lain sebagainya.
Crytography Serangan Terhadap Kriptografi Penyadap berusaha mendapatkan data yang digunakan untuk kegiatan kriptanalisis Kriptanalis berusaha mengungkapkan plainteks atau kunci dari data yang disadap Kriptanalis dapat juga menemukan kelemahan dari sistem kriptografi yang pada akhirnya mengarah untuk menemukan kunci dan mengungkapkan plainteks Penyadapan dapat dilakukan melalui saluran kabel komunikasi dan saluran wireless
Crytography Jenis-jenis serangan: 1. Exhaustive attach atau brute force attack Percobaan yang dibuat untuk mengungkapkan plainteks atau kunci dengan mencoba semua kemungkinan kunci (trial and error) Diasumsikan kriptanalis: Memiliki sebagian plainteks dan cipherteks yang bersesuaian Caranya: Plainteks yang diketahui dienkripsi dengan setiap kemungkinan kunci, lalu hasilnya dibandingkan dengan cipherteks yang bersesuaian Jika hanya cipherteks yang tersedia, cipherteks tersebut didekripsi dengan setiap kemungkinan kunci dan plainteks hasilnya diperiksa apakah mengandung makna atau tidak Serangan ini membutuhkan waktu yang sangat lama Untuk menghindari serangan ini, gunakan kunci yang panjang dan tidak mudah ditebak
Crytography Waktu yang diperlukan untuk exhaustive key search (Sumber: William Stallings, Data and Computer Communication Fourth Edition) Ukuran Kunci Jumlah Kemungkinan Kunci Lama waktu untuk 106 percobaan per detik Lama waktu untuk 1012 percobaan per detik 16 bit 216 = 65536 32.7 milidetik 0.0327 mikrodetik 32 bit 212 = 4.3 X 109 35.8 menit 2.15 milidetik 56 bit 256 = 7.2 X 1016 1142 tahun 10.01 jam 128 bit 2128 = 4.3 X 101 5.4 1024 tahun 5.4 1018 tahun
Crytography Jenis-jenis serangan: 2. Analytical attach Kriptanalis tidak mencoba semua kemungkinan kunci, tetapi menganalisa kelemahan algoritma kriptografi untuk mengurangi kemungkinan kunci yang tidak ada. Analisa yang dilakukan dengan memecahkan persamaan-persamaan matematika yang diperoleh dari definisi suatu algoritma kriptografi Diasumsikan kriptanalis mengetahui algoritma kriptografi Metode analytical attack biasanya lebih cepat menemukan kunci dibandingkan dengan exhaustive attack. Untuk menghindari serangan ini, kriptografer harus membuat algoritma yang kompleks.
Crytography Memastikan keamanan dari algoritma kriptografi Algoritma harus dievaluasi oleh pakar Algoritma yang tertutup (tidak dibuka kepada publik) dianggap tidak aman Membuat algoritma yang aman tidak mudah Code maker VS code breaker akan terus berlangsung