Hai readers, dalam post ini aku mau bahas - bahas sedikit ilmu yg aku dapat tentang kriptografi..Semoga bermanfaat dan selamat membaca :) terimakasih
kriptografi
Pesan : Plaintext atau Cleartext
Merupakan ilmu sekaligus seni untuk menjaga keamanan pesan (message) dengan cara menyandikannya ke dalam bentuk yang tidak dapat dimengerti lagi maknanya.
Kata cryptography berasal dari kata Yunani yaitu “kryptos” yang artinya tersembunyi dan “graphein” yang artinya menulis.
- Pesan dapat berupa data atau informasi yang dikirim (melalui kurir, saluran komunikasi data, dsb)
- Pesan dapat disimpan di dalam media perekaman (kertas, storage, dsb)
- Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan disandikan ke bentuk lain.
- Bentuk pesan yang tersandi disebut ciphertext atau cryptogram. Tidak bergantung dengan suatu program
- Ciphertext harus dapat ditransformasi kembali menjadi plaintext.
ILUSTRASI
KOMPONEN UTAMA KRIPTOGRAFI
Pada prinsipnya, Kriptografi memiliki 4 komponen utama yaitu:
- Plaintext, yaitu pesan yang dapat dibaca
- Ciphertext, yaitu pesan acak yang tidka dapat dibaca
- Key, yaitu kunci untuk melakukan teknik kriptografi
- Algorithm, yaitu metode untuk melakukan enkrispi dan dekripsi
TUJUAN KRIPTOGRAFI
- Menjaga kerahasiaan (confidentiality) pesan.
- Keabsahan pengirim (user authentication).
- Keaslian pesan (message authentication).
- Anti-penyangkalan (non-repudiation).
- Proses menyandikan plaintext menjadi ciphertext disebut enkripsi (encryption) atau enciphering
- Proses mengembalikan ciphertext menjadi plaintextnya disebut dekripsi (decryption) atau deciphering
ENKRIPSI
Enkripsi (Encryption) adalah sebuah proses menjadikan pesan yang dapat dibaca (plaintext) menjadi pesan acak yang tidak dapat dibaca (ciphertext). Berikut adalah contoh enkripsi yang digunakan oleh Julius Caesar, yaitu dengan mengganti masing-masing huruf dengan 3 huruf selanjutnya (disebut juga Additive/Substitution Cipher)
CONTOH ENKRIPSI
Plain Text: TEST ONLY
dienkripsi menjadi
Cipher Text: &^*#^@%&*
DEKRIPSI
Dekripsi merupakan proses kebalikan dari enkripsi dimana proses ini akan mengubah ciphertext menjadi plaintext dengan menggunakan algortima „pembalik‟ dan key yang sama.Sehingga Kata yang telah di Enkripsi akan dapat dimengerti oleh pembaca.
CONTOH DEKRIPSI
Cipher Text : ^(*^#@()#($
didekripsi menjadi
Plain Text : Test Only
DEFINISI
- Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan
- Praktisi (pengguna kriptografi) disebut kriptografer (cryptographer).
- Algoritma kriptografi adalah:
- aturan/metode untuk enkripsi dan dekripsi
- fungsi matematika yang digunakan untuk enkripsi dan dekripsi.
- Kunci adalah parameter yang digunakan untuk transformasi enkripsi dan dekripsi.
- Sistem kriptografi (atau cryptosystem) adalah algoritma kriptografi, plainteks, cipherteks, dan kunci.
- Penyadap adalah orang yang mencoba menangkap pesan selama ditransmisikan. Nama lain: enemy, adversary, intruder, interceptor, bad guy
- Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang diberikan. Pelakunya disebut kriptanalis.
- Kriptologi (cryptology) adalah studi mengenai kriptografi dan kriptanalisis
KRIPTOGRAFI
Persamaan kriptografer dan kriptanalis:
- Keduanya sama-sama menerjemahkan
cipherteks menjadi plainteks
Perbedaan kriptografer dan kriptanalis:
- Kriptografer bekerja atas legitimasi
pengirim atau penerima pesan
- Kriptanalis bekerja atas nama penyadap
yang tidak berhak.
Aplikasi kriptografi:
- Pengiriman data melalui saluran komunikasi
- Penyimpanan data di dalam disk storage.
Contoh-contoh pada pengiriman data melalui saluran
komunikasi
- ATM tempat mengambil uang
- Internet
- Militer
- Wi-Fi
- Pay TV
- GSM
Contoh-contoh pada data tersimpan:
- Dokumen teks
Plainteks (plain.txt):
Cipherteks (cipher.txt):
Dokumen gambar
plainteks (lena.bmp):
Cipherteks (lena2.bmp):
Dokumen basisdata
Plainteks (siswa.dbf):
Cipherteks (siswa2.dbf):
Algoritma Enkripsi dan Dekripsi
- Kekuatan algoritma kriptografi TIDAK ditentukan dengan menjaga kerahasiaan algoritmanya.
- Cara tersebut tidak aman dan tidak cocok lagi di saat ini.
- Pada sistem kriptografi modern, kekuatan kriptografinya terletak pada kunci, yang berupa deretan karakter atau bilangan bulat, dijaga kerahasiaannya.
Algoritma Enkripsi dan Dekripsi
Dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi menjadi
E(P,K) = C
D(C,K) = P
dan kedua fungsi ini memenuhi
D(E(P,K),K) = P
D(C,K) = P
dan kedua fungsi ini memenuhi
D(E(P,K),K) = P
TEKNIK DASAR KRIPTOGRAFI
Substitusi
- Langkah pertama adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan dekripsi.
- Bila tabel substitusi dibuat secara acak, akan semakin sulit pemecahan ciphertext oleh orang yang tidak berhak.
Contoh :
Tabel subsitusi
Caesar Chipher
ROT 13
A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-RS-T-U-V-W-X-Y-Z-1-2-3-4-5-6-7-8-9-0-.-,
B-F-1-K-Q-G-A-T-P-J-6-H-Y-D-2-X-5-MV-7-C-8-4-I-9-N-R-E-U-3-L-S-W-,-.-O-Z-0
Contoh :
SISTEM
7P7CQY (TABEL SUBSITUSI)
VLVWHP (CAESAR CHIPHER)
FVFGRZ (ROT13)
CAESAR CHIPHER
Algoritma enkripsi sederhana pada masa raja Julius Caesar. Tiap huruf alfabet digeser 3 huruf ke kanan secara wrapping
Plainteks : AWASI ASTERIX DAN TEMANNYA OBELIX
Cipherteks : DZDVL DVWHULA GDQ WHPDQQBA REHOLA
MODEL PERHITUNGAN
Misalkan setiap huruf dikodekan dengan angka:
A = 0, B = 1, C = 2, …, Z = 25
Maka secara matematis enkripsi dan dekripsi pada Caesar cipher dirumuskan sebagai berikut:
Enkripsi: ci = E(pi) = (pi + 3) mod 26
Dekripsi: pi = D(ci) = (ci – 3) mod 26
Jika pergeseran huruf sejauh k, maka :
Enkripsi: ci = E(pi) = (pi + k) mod 26
Dekripsi: pi = D(ci) = (ci – k) mod 26
k = kunci rahasia
Pada Caesar Cipher, k = 3
Untuk alfabet ASCII 256 karakter :
Enkripsi: ci = E(pi) = (pi + k) mod 256
Dekripsi: pi = D(ci) = (ci – k) mod 256
CONTOH SOAL:
Plainteks : MATH
Cipherteks: RFYM
k = 5
p1 = „M‟ = 12 : c1 = E(12) = (12 + 5) mod 26 = 17 = „R‟
p2 = „A‟ = 0 : c2 = E(0) = (0 + 5) mod 26 = 5 = „F‟
p3 = „T‟ = 19 : c3 = E(19) = (19 + 5) mod 26 = 24 = „Y‟
p4 = „H‟ = 7 : c4 = E(7) = (7 + 5) mod 26 = 12 = „M‟
ROT13
Pada sistem ini sebuah huruf digantikan dengan huruf yang letaknya 13 posisi darinya.
Sebagai contoh, huruf “A” digantikan dengan huruf “N”, huruf “B” digantikan dengan huruf “O”, dan seterusnya.
Secara matematis, hal ini dapat dituliskan sebagai:
C ROT13 = (M)
Untuk mengembalikan kembali ke bentuk semulanya dilakukan proses enkripsi ROT13 dua kali.
M = ROT13(ROT13(M))
Blocking
- Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian dienkripsikan secara independen.
- Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini.
- Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur, dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis. Ciphertextnya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan blok-nya.
Jika plaintext adalah 5 TEKNIK DASAR KRIPTOGRAFI maka hasil chipertext ) . Jika menggunakan teknik blocking dengan 1blok berisi 4 karakter.
Permutasi
- Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut transposisi. Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu. Prinsipnya adalah berlawanan dengan teknik substitusi.
- Dalam teknik substitusi, karakter berada pada posisi yang tetap tapi identitasnya yang diacak. Pada teknik permutasi, identitas karakternya tetap, namun posisinya yang diacak.
- Sebelum dilakukan permutasi, umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama.
- Untuk contoh diatas, plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter, dengan aturan permutasi sebagai berikut :
Dengan menggunakan aturan diatas, maka proses enkripsi dengan permutasi dari plaintext adalah sebagai berikut :
Ciphertext yang dihasilkan dengan teknik permutasi ini adalah "N ETK5
SKD AIIRK RAATGORPIF.
Ekspansi
Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan itu dengan aturan tertentu. Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran "an". Bila suatu kata dimulai dengan huruf vokal atau bilangan genap, ditambahkan akhiran "i". Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai berikut :
Ciphertextnya adalah "5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN". Aturan ekspansi dapat dibuat lebih kompleks. Terkadang teknik ekspansi digabungkan dengan teknik lainnya, karena teknik ini bila berdiri sendiri terlalu mudah untuk dipecahkan.
Pemampatan
Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi pesan. Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ke‐tiga secara berurutan. Karakter‐karakter yang dihilangkan disatukan kembali dan disusulkan sebagai "lampiran" dari pesan utama, dengan diawali oleh suatu karakter khusus, dalam contoh ini digunakan "&". Proses yang terjadi untuk plaintext kita adalah :
- Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali.
- Dengan menggunakan kelima teknik dasar kriptografi diatas, dapat diciptakan kombinasi teknik kriptografi yang amat banyak, dengan faktor yang membatasi semata‐mata hanyalah kreativitas dan imajinasi kita. Walaupun sekilas terlihat sederhana, kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan yang cukup kompleks, dan beberapa teknik dasar kriptografi masih digunakan dalam teknik kriptografi modern.
ALGORITMA KRIPTOGRAFI
Berdasarkan jenis kunci yang digunakan :
o 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.
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”
o 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.
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 :
o 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.
o Algoritma Stream Cipher
Informasi/data yang hendak dikirim dioperasikan dalam bentuk blokblok yang lebih kecil (byte atau bit), biasanya satu karakter persatuan waktu proses, menggunakan tranformasi enkripsi yang
berubah setiap waktu. Contohnya: Blowfish, DES, Gost, Idea, RC5, Safer, Square, Twofish, RC6, Loki97.
Kriptografi Dengan Kunci Simetris/Private
Bentuk kriptografi tradisional
Kunci Simetris digunakan untuk mengenkrip dan mendekrip pesan
Kunci Simetris juga berkaitan dengan otentikasi
Masalah utama:
- Pengirim dan penerima menyetujui kunci simetris tanpa ada orang lain yang mengetahui.
- Butuh metode dimana kedua pihak dapat berkomunikasi tanpa takut disadap
Contoh Metode Kriptografi Dengan Kunci Simetris/Private
1. Metode Caesar Cipher
- Huruf A-Z diberi nilai 0-25
- Karakter pesan dijumlah dengan kunci lalu di modulo 26
2. Metode Vigenere Cipher
- Huruf A-Z diberi nilai 0-25
- Kunci terdiri dari sekumpulan random karakter
- Karakter pesan dijumlah dengan kunci lalu di modulo 26
3.Metode Book Key Cipher
- Menggunakan teks dari sebuah sumber (misalnya buku) untuk mengenkrip plainteks
- Karakter pesan dijumlah dengan kunci lalu di modulo 26
- Metode DES (Data Encryption Standard)
- Metode Triple DES
Melakukan 3 kali pengenkripan
- Metode AES (Advanced Encryption Standard)
Menggantikan DES (karena dapat dibobol)
- Metode Rijndael Block Cipher
- Metode IDEA (Internatinal Data Encryption Algorithm)
- Metode RC5 dan RC6
Kriptografi Dengan Kunci Nirsimetris/Publik
- Setiap orang memiliki sepasang kunci, kunci publik dan kunci private.
- Kunci publik dipublikasikan
- Kunci private disimpan rahasia dan tidak boleh ditransmisikan atau dipakai bersama
Contoh Metode Kriptografi Dengan Kunci NirSimetris/Publik
- Metode RSA (Ronald Rivest, Adi Shamir, Leonard Adleman)
- Metode Diffie Hellman Key Exchange
- Metode El Gamal
One-Way Function / Fungsi Hash
- Merupakan fungsi satu arah yang dapat menghasilkan ciri (signature) dari data (berkas)
- Fungsi yang memproduksi output dengan panjang tetap dari input yang berukuran variabel
- Perubahan satu bit saja akan mengubah keluaran hash secara drastis
- Digunakan untuk menjamin integritas dan digital signature
- Plaintext yang di hash, tidak dapat dikembalikan ke bentuk asalnya.
- Oleh karena itu Hash sering disebut sebagai one-way Hash, proses mengubah plaintext menjadi bentuk unik dari plaintext.
- Hasil dari hash algorithm disebut hash atau digest
Contoh:
MD5 (Message Diggest)
Hasilnya 128-bit
SHA (Secure Hash Function)
Hasilnya 160-bit
Contoh penggunaan Hash Function adalah pada mesin ATM.
- Pengguna memiliki nomer PIN
- Nomer PIN tersebut di hash dan tersimpan dalam pita magnet yang ada dalam ATM.