CRYPTOGRAPHY /KRIPˈTÄGRƏFĒ/ Teori Dasar Kriptografi Penyandian Monoalfabetik Penyandian Polialfabetik Penggunaan Publik Key
HISTORY 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.
TERMINOLOGY 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.
TERMINOLOGY 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.
TERMINOLOGY CIPHERTEXT Decrypt Alice, I love you, Will you marry me? *bþòäµnœ bóq T ( Ñ! ttøäqúaìj«$fã  W»EÊ Hi bob, me too OMG, why not! yes I want to marry you, and i want to have kids with you PLAINTEXT ORIGINAL PLAINTEXT Bob Encrypt Decrypt Alice you cheated me, i hate you, it's over, we are never ever getting back together Hmm I will Decrypt your Plaintext Hacker (blackhat)
TERMINOLOGY 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.
TERMINOLOGY 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.
TERMINOLOGY 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.
ENKRIPSI DAN DEKRIPSI K (E) K (D) Ciphertext (C) Plaintext (P) Enkripsi (E) Dekripsi (D) Plaintext (P) 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 : D ( C ) = P
ENKRIPSI DAN DEKRIPSI K (E) K (D) Ciphertext(C) Plaintext (P) Enkripsi (E) Dekripsi (D) Plaintext (P) 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 : D ( E ( P ) ) = P
ENKRIPSI DAN DEKRIPSI 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.
ENKRIPSI DAN DEKRIPSI 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
ENKRIPSI DAN DEKRIPSI K (E) K (D) Ciphertext (C) Plaintext (P) Enkripsi (E) Dekripsi (D) Plaintext (P) 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
ENKRIPSI 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 satu karakter teks-asli.
ENKRIPSI
ENKRIPSI 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 A B C D E F G H I
ENKRIPSI Contoh Caesar Cipher ROT3
ENKRIPSI 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. C=E(P) = (P+K) mod (26) Pada contoh diatas, kita bisa memasukkan kunci dengan nilai tiga sehingga menjadi: C=E(P) = (P+3) mod (26)
ENKRIPSI 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.
ENKRIPSI 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. Figure : Wifi crack dengan brute force attack
ENKRIPSI ROT13 Pada sistem operasi Unix, ROT13 adalah fungsi yang menggunakan kode caesar dengan pergeseran k = 13. 13 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
ENKRIPSI 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: C = ROT13(M) Untuk melakukan dekripsi dengan proses enkripsi ROT13 dua kali adalah sebagai berikut: M = ROT13 (ROT 13 (M))
ENKRIPSI 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 S I S T E M O P E R A S I F V F G R Z B C R G N F V
ENKRIPSI Proses dekripsi F V F G R Z B C R G N F V S I S T E M O P E R A S I
ENKRIPSI Pada perkembangannya algoritma kode Caesar memberikan suatu gagasan baru untuk menggunakan kunci lain yang disebut polyalphabetic. 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.