Teori Dasar Kriptografi
Penyandian Monoalfabetik
Penyandian Polialfabetik
Penggunaan Publik Key
H
ISTORY
Kriptografi / cryptography berasal dari bahasa Yunani: “cryptos” artinya “secret” (rahasia), sedangkan “graphein” artinya “writing” (tulisan). Jadi, kriptografi berarti “secret writing” (tulisan rahasia). Namun saat ini krptografi lebih dari sekedar
suatu bentuk privacy, untuk tujuan data integrity,
authentication, dan non-repudiation.
Jadi kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentifikasi.
Dalam bab ini, kita akan memeriksa dan mempelajari apa enkripsi dan bagaimana kerjanya. Disini diperkenalkan dasar prinsip enkripsi dengan dua metode enkripsi sederhana:
Selanjutnya, kita akan mengeksplorasi bagaimana enkripsi dapat diperluas dan ditingkatkan untuk menciptakan sebuah kunci yang kuat dan melindungi sebuah data. Sebuah enkripsi yang lemah atau cacat, bisa dikatakan hanya menyediakan ilusi perlindungan, dan dari sini kita bisa
melihat bagaimana sebuah enskripsi tersebut bisa gagal.
T
ERMINOLOGY
Skenario
Mempertimbangkan langkah-langkah yang terlibat dalam
pengiriman pesan dari si pengirim sebagai berikut :
> S, dan ke penerima > R. Jika S mempercayakan pesan ke --> T, yang kemudian memberikan kepada R, T kemudian menjadi media transmisi. Jika orang luar yang adalah O, ingin mengakses
pesan (untuk membaca, mengubah, atau bahkan
menghancurkannya), kita sebut O sebuah pencegat atau penyusup. Setiap saat setelah S mentransmisikan melalui T, pesan tersebut rentan terhadap eksploitasi, dan O mungkin mencoba untuk mengakses pesan tersebut. Contoh dalam skenario berikut.
T
ERMINOLOGY
PLAINTEXT
Alice, I love you, Will you marry me?
CIPHERTEXT *bþòäµNœ¢bóQ†T…( Ñ!““ttØÄQúaìJ«$fÕ W¬ ¦»EÊ• ORIGINAL PLAINTEXT Hi bob, me too… OMG, why not !
yes I want to marry you, and i want to have kids with you
Decrypt
Bob Alice
Hacker (blackhat)
Hmm…I will Decrypt your Plaintext
Encrypt
you cheated me, i hate you, it's over, we are never ever
getting back together
Encrypt Decrypt CIPHERTEXT *bþòäµNœ¢bóQ†T…( Ñ!““ttØÄQúaìJ«$fÕ W¬ ¦»EÊ•
T
ERMINOLOGY
Melakukan block dengan mencegah alice mencapai tujuan
tersebut ke bob, sehingga ini bisa mempengaruhi ketersediaan
(availability) pesan.
Mencegat dengan membaca atau mendengarkan pesan, sehingga
mempengaruhi kerahasiaan pesan.
Mempengaruhi integritas pesan (integrity).
Mengarang pesan otentik yang tampak seperti aslinya, dan
mengaturnya sehingga yang disampaikan seolah-olah itu berasal dari Alice, yang akhirnya mempengaruhi integritas pesan.
Seperti yang telah kita lihat, kerentanan pesan ini mencerminkan empat kegagalan keamanan yang diidentifikasi.
Dengan adanya enkripsi tersebut, maka kita dapat mengatasi semua masalah ini, yang dimana enkripsi adalah suatu metode bagaimana kita dapat membuat suatu program atau data yang telah dienkripsi dari sebuah komputasi yang aman dan juga sarana untuk mempertahankan data yang aman dalam lingkungan. Dalam session ini, kita mempelajari enkripsi sebagai keamanan teknik, dan kita melihat bagaimana ia digunakan dalam program perlindungan, database, jaringan, dan elektronik komunikasi.
T
ERMINOLOGY
Enkripsi adalah proses pengkodean pesan sehingga maknanya tidak jelas, dekripsi adalah sebaliknya dimana proses mengubah pesan terenkripsi kembali ke bentuk normal, atau, istilah encode dan
decode atau menulis dalam kode dan menguraikan menggunakan pengganti enkripsi dan dekripsi.
Artinya, kita mengatakan bahwa kita encode, mengenkripsi, atau menulis dalam kode pesan asli untuk menyembunyikan
maknanya. Kemudian, kita decode, mendekripsi, atau
memahaminya untuk mengungkapkan pesan asli, dimana sebuah sistem untuk enkripsi dan dekripsi disebut cryptosystem.
T
ERMINOLOGY
Enkripsi juga terdapat didalam suatu bahasa pemograman contohnya pemograman php, bagaimana cara melakukan encode pada sebuah text email didalam script php dan melakukan teknik encode dengan string yang dihasilkan dan akan menjadikan nilai tersebut kedalam ASCII yang telah di encode ketika digunakan pada halaman web seperti ini
<ahref="mailto:kevin@ph 12;ro.org">kevi n@phpro.org ;<a>
Dan lebih penting lagi, apa yang dilakukan adalah dengan menggunakan teknik filter_var () fungsi pada sebuah array, sama seperti kita melakukan string. Prinsip yang sama juga berlaku dan mem-filter dan menerapkan fungsi callback kepada setiap anggota array.
E
NKRIPSI DAN
D
EKRIPSI
Dekripsi (D) Plaintext (P) Enkripsi (E) Ciphertext (C) Plaintext (P) K (E) K (D)Proses Enkripsi dan Dekripsi dengan kunci K
Fungsi enkripsi E dioperasikan dengan P kemudian menghasilkan C, yang digambarkan seperti notasi berikut :
E ( P ) = C
Pada proses dekripsi data yang sudah diproses pada enkripsi ( ciphertext ) melalui proses dekripsi data akan dikembalikan lagi ke dalam bentuk plaintext/ data aslinya, yang digambarkan seperti notasi berikut :
E
NKRIPSI DAN
D
EKRIPSI
Dekripsi (D) Plaintext (P) Enkripsi (E) Ciphertext(C) Plaintext (P) K (E) K (D)Proses Enkripsi dan Dekripsi dengan kunci K
Data atau informasi yang telah melalui proses enkripsi dan dekripsi, dimana data yang sudah diacak akan menghasilkan data atau informasi aslinya ( plaintext ), yang digambarkan seperti notasi berikut :
E
NKRIPSI DAN
D
EKRIPSI
Algoritma enkripsi digunakan pada saat melakukan proses enkripsi terhadap suatu plaintext dan algoritma dekripsi digunakan pada saat melakukan proses dekripsi terhadap suatu ciphertext.
Sedangkan dalam penerapannya algoritma enkripsi dan algoritma dekripsi harus menggunakan kunci untuk membuka dan menutup sandinya, hal ini untuk menjaga keamanan data atau informasi tersebut. Kunci yang dimaksud dapat dilambangkan dengan K.
E
NKRIPSI DAN
D
EKRIPSI
Kunci yang digunakan dapat berupa sebuah angka bernilai kecil atau besar sesuai dengan angka-angka yang telah ditentukan untuk melakukan nilai transformasi matematis yang memetakan plaintext ke ciphertext dan sebaliknya. Ciphertext sangat dipengaruhi oleh keberadaan plaintext dan kuncinya, jadi nilai dari suatu kunci akan mempengaruhi fungsi enkripsi dan dekripsi, sehingga fungsi
enkripsi tersebut dapat dinotasikan seperti berikut : Ek ( P ) = C
E
NKRIPSI DAN
D
EKRIPSI
Dekripsi (D) Plaintext (P) Enkripsi (E) Ciphertext (C) Plaintext (P) K (E) K (D)Proses Enkripsi dan Dekripsi dengan kunci K
Bila kunci yang dipakai untuk proses enkripsi sama dengan kunci yang dipakai untuk proses dekripsi, maka dapat digambarkan dengan notasi sebagai berikut : ( Dk ( Ek ) ) = P Keterangan : K : Kunci Ek : Kunci Enkripsi Dk : Kunci Dekripsi
E
NKRIPSI
Monoalphabet, yaitu setiap karakter teks kode menggantikan
salah satu karakter teks asli.
Polyalphabet, setiap karakter teks-kode dapat menggantikan lebih
dari satu macam karakter teks asli
Monograf, adalah satu enkripsi dilakukan terhadap satu karakter
teks-asli
Polygraph, adalah satu enkripsi dilakukan terhadap lebih dari
E
NKRIPSI
Caesar code
Subsitusi kode yang pertama dalam dunia penyandian terjadi pada pemerintahan Yulius Caesar yang dikenal dengan kode Kaesar
(Caesar code), dengan mengganti posisi huruf dari alfabet atau
disebut juga dengan algoritma ROT3
X Y Z A B C D E F
E
NKRIPSI
Secara detail, perhatikan table dibawah ini :
Jika penggeseran yang dilakukan sebanyak tiga kali maka kunci untuk dekripsinya adalah 3. Penggeseran kunci yang dilakukan tergantung keinginan pengirim. Bisa saja kunci yang dipakai a = 7, b = 9, dan seterusnya.
Dalam algoritma kode caesar: biasaya teks-asli diberika simbol “P” dan teks kodenya “C” dan kunci “K”, sehingga didapatkan rumus sebagai berikut.
Pada contoh diatas, kita bisa memasukkan kunci dengan nilai tiga sehingga menjadi:
C=E(P) = (P+K) mod (26)
E
NKRIPSI
Sebagai contoh jika diberikan teks-asli sebagai berikut: “STMIK WIDURI TEKNIK INFORMATIKA”
Dengan menggunakan kunci 3 maka kita akan mendapatkan teks-kode sebagai berikut :
“VWPLN ZLGXUL WHNQLN LQJRUPDWLND”
Kode caesar bisa dipecahkan dengan cara Brute Force attack, yaitu dimana suatu bentuk serangan yang mencoba-coba berbagai kemungkinan untuk menemukan kunci. Karena jumlah kunci yang sangat sedikit (hanya 26 kunci). Meski sedikit, kunci suatu kode cukup untuk merepotkan seorang cryptanalyst, Karena untuk menemukannya dengan brute force attack dibutuhkan waktu yang cukup lama.
Brute force attack juga digunakan untuk mencari Password dan User ID dari suatu sistem komputasi. Pada serangan ini, para
penyerang mencoba beberapa kemungkinan yang ada dari daftar kata (wordlist) yang ada di dalam kamus. Umumnya serangan ini dapat berhasil, hanya saja memerlukan waktu yang lama.
E
NKRIPSI
ROT13
Pada sistem operasi Unix, ROT13 adalah fungsi yang menggunakan kode caesar dengan pergeseran k = 13.
E
NKRIPSI
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
Sistem enkripsi pada Unix, dengan membagi alfabet n = 26 menjadi 13 sehingga satu huruf dengan huruf yang lain saling berhadapan. Jika text aslinya adalah “A” maka teks-kode adalah “N”. Begitu seterusnya Notasi matematika dapat ditulis sebagai berikut:
Untuk melakukan dekripsi dengan proses enkripsi ROT13 dua kali adalah sebagai berikut:
C = ROT13(M)
M = ROT13 (ROT 13 (M))
ROT13 juga didesain untuk keamanan pada sistem operasi UNIX yang sering digunakan pada forum online, yang berfungsi untuk menyelubungi isi artikel sehingga hanya orang yang berhak yang dapat membacanya. Contoh proses enkripsi ROT13 dapat dilihat dibawah ini:
Ekripsi dengan menggunakan ROT13
E
NKRIPSI
S I S T E M O P E R A S I
Proses dekripsi
E
NKRIPSI
S I S T E M O P E R A S I
Pada perkembangannya algoritma kode Caesar memberikan suatu gagasan baru untuk menggunakan kunci lain yang disebut
poly-alphabetic. Kunci bisa jadi nama, alamat atau apa saja yang
diinginkan oleh pengirim pesan.
Kode Caesar dengan menggunakan satu kunci bisa disebut dengan subsitusi deret campur kata kunci. Yang perlu diingat, tidak ada perulangan huruf dalam hal ini. STMIK WIDURI menjadi STMIKWDUR. Karena ada pengulangan huruf “I”, maka huruf itu tidak dipakai lagi.