Cryptography

didalam titik² ini ada tulisan nya loh.. ayo coba baca..!! :D
didalam titik² ini ada tulisan nya loh.. ayo coba baca..!! 😀

Bidang ilmu cryptography ini sangat dekat dengan berbagai rumus dan algoritma sehingga biasanya bidang ilmu cryptography dimasukkan ke dalam bagian ilmu matematika. Namun sebaliknya, terdapat juga bidang ilmu yang mempelajari bagaimana kelemahan dari sebuah cryptography, yaitu cryptanalysis. Kedua bidang ilmu tersebut biasanya sangat dekat dengan keamanan negara. Di Indonesia sendiri terdapat lembaga yang mempelajari masalah ini, yang dikenal dengan Lembaga Sandi Negara (LSN).

Enkripsi, dekripsi, plain text, dan cipher text
Pada zaman perang dahulu, komunikasi memegang peranan yang sangat vital. Komandan perlu memberikan komando kepada anak buahnya dan pasukan perlu mendapatkan strategi perang dari atasannya. Semua informasi ini tentu tidak bisa disampaikan begitu saja dengan cara berbisik dari satu telinga ke telinga yang lain.
Pengiriman pesan melalui radio merupakan teknologi yang telah digunakan dan tentu saja merupakan cara yang sangat efektif. Namun, strategi perang tentu tidak boleh diketahui oleh musuh. Apabila musuh sampai mengetahui strategi perang, sudah bisa dipastikan kemenangan akan ada di pihak musuh.
Untuk itulah dibutuhkan sebuah metode untuk mengacaukan informasi yang dikirim melalui udara. Sehingga kalau pun data tersebut bisa diambil, musuh tidak akan membaca pesan yang dikirimkan.
Data asli dalam bentuk teks yang bisa dibaca – disebut sebagai plaintext – ini, kemudian akan diacak dengan menjadi karakter “sampah” yang dinamakan sebagai ciphertext. Metode pengacakan ini sendiri dinamakan sebagai enkripsi.
Setelah data sampai ke tujuan, karakter sampah (ciphertext) ini kemudian akan didekripsi kembali menjadi plaintext yang bisa dibaca kembali.

Algoritma dan key
Suatu ketika, Julius Caesar ingin mengirimkan pesan kepada seorang jendral melalui kurir. Namun, Julius khawatir bila kurir tersebut tertangkap atau berkhianat. Untuk itu, pesan dikirim tidak ditulis dalam bentuk teks biasa, namun berbentuk ciphertext!
Untuk mengubah plaintext menjadi cipertext, Julius menggunakan algoritma yang sangat sederhana, yaitu dengan mengubah setiap karakter dengan karakter pengganti. Sebagai contoh, bila menggunakan algoritma geser 1 karakter, maka karakter A akan diganti menjadi B, sedangkan karakter B akan diganti dengan C, dan seterusnya.
Untuk itu, sebuah plaintext “SERANG” akan berubah menjadi sebuah ciphertext “TFSBOH”. Aturan “geser 1 karakter” inilah yang kita namakan sebagai algoritma dari sebuah enkripsi. Tentu saja ini merupakan algoritma yang sangat-sangat lemah saat ini dan tidak seharusnya digunakan lagi karena sangat mudah untuk dipelajari.
Andaikan algoritma dari Julius Caesar ini digunakan oleh semua orang, hanya dalam waktu 1 detik Anda sudah bisa membongkar pesan rahasia yang seharusnya dilindungi oleh sebuah algoritma enkripsi. Anda bisa lansung mengganti huruf B menjadi huruf A, huruf C menjadi huruf B, dan seterusnya.
Agar sebuah algoritma bisa digunakan secara terus menerus, dibutuhkan sebuah kunci atau “Key” yang hanya diketahui oleh orang yang menggunakan algoritma tersebut yang menjadikannya unik untuk setiap orang. Misalnya, untuk si Ucup, karakter A tidak diganti menjadi B namun diganti menjadi C sedangkan karakter B akan diganti menjadi D. Jadi bisa dikatakan algoritma yang digunakan oleh si Ucup masih tetap sama yaitu metode “pergeseran” hanya saja kali ini bukan “pergeseran 1” tapi “geser 2”.
Adanya “key” yang ditentukan oleh masing-masing orang yang menggunakan sebuah algoritma, membuat sebuah algoritma hanya bisa dibalikkan apabila sang hacker mengetahui “key” rahasia yang digunakan.
“Key” atau kunci rahasia ini sering kali disebut juga sebagai password. Namun, beberapa orang ternyata tidak senang dengan kata ini karena password terkesan “kurang aman”. Oleh orang-orang ini kemudian muncul lagi istilah (lagi-lagi) passphrase.
Secara singkat bisa saya katakan bahwa passphrase merupakan password yang aman karena menggunakan jumlah karakter yang cukup banyak dan juga penggunaan karakter acak.
Contoh algoritma yang terkenal adalah DES (Digital Encryption Standard), 3DES (Triple Digital Encryption Standard), RC4 (Rivest Cipher 4), RC5, RC6, Bowfish, dan AES (Advanced Encryption Standard).

Metode enkripsi dan dekripsi tidaklah sesederhana seperti yang Anda bayangkan. Para ahli membagi teknik enkripsi dan dekripsi menjadi 2 jenis, yaitu Symmetric dan Asymmetric Cryptography.

Symmetric cryptography
Ini merupakan jenis enkripsi yang mudah untuk dipahami. Anda dapat menggunakan key atau kunci yang sama untuk melakukan enkripsi dan dekripsi.
Jadi, ketika Anda menggunakan kata kunci “xyz” guna melakukan enkripsi, maka untuk melakukan dekripsi kembali, Anda harus menggunakan kata “xyz” juga. Anda bisa membayangkan sebuah kunci rumah yang sama, digunakan untuk mengunci pintu Anda dan juga untuk membuka pintu yang terkunci.
Symmetric Cryptography menggunakan dua teknik untuk melakukan enkripsi maupun dekripsi, yaitu Block Cipher dan Stream Cipher.

Block Cipher
Block Cipher akan melakukan enkripsi terhadap sejumlah blok data sekaligus. Jadi, misalnya Anda mempunyai kalimat “HalloApaKabar”
dan blok cipher menggunakan blok berukuran empat byte (4 karakter), maka proses enkripsi akan dilakukan per-empat karakter.
Enkripsi pertama akan dilakukan pada empat karakter pertama yaitu “Hall”, diikuti oleh enkripsi kedua pada blok kedua, yaitu “oApa”, dan seterusnya. Algoritma Enkripsi Block Cipher yang terkenal adalah RC4 yang juga digunakan oleh jaringan wireless.
Enkripsi semacam ini sangat mudah dipecahkan, apalagi bila hacker sudah mempunyai contoh plaintext dan ciphertext seperti pada contoh. Kasus yang sama terjadi pada enkripsi yang dilakukan dengan Block Cipher dan masalah ini merupakan masalah yang sangat besar untuk sebuah algoritma enkripsi.
Untuk itu, diperlukan suatu metode agar suatu huruf atau karakter yang dienkripsi tidak akan selalu menghasilkan ciphertext yang sama. Misalnya, hasil dari enkripsi huruf “A”, terkadang berubah menjadi “*” dan terkadang berubah menjadi “^”. Namun, mungkinkah hal ini dilakukan ?
Untuk menghasilkan hasil enkripsi yang selalu berbeda-beda dengan enkripsi yang sama adalah suatu pekerjaan yang rumit. Namun, para ahli menemukan suatu metode yang sederhana dan efektif yaitu dengan melakukan dua kali enkripsi! Enkripsi pertama dilakukan antara plaintext dengan sebuah nilai acak yang dinamakan sebagai Initialization Vector (IV). Karena enkripsi pertama ini dilakukan antara plaintext dengan IV yang unik, hasilnya akan membuat plaintext yang sama dan menghasilkan ciphertext yang berbeda.
Enkripsi pertama ini cukup dilakukan dengan metode yang paling sederhana dalam dunia enkripsi, yaitu XOR. Ini dimaksudkan agar proses enkripsi secara keseluruhan tidak terlalu terbebani. Hasil enkripsi pertama ini kemudian dilempar ke proses enkripsi yang lebih rumit untuk menghasilkan sebuah ciphertext yang kuat. Syarat penting agar enkripsi ini tidak bisa dibongkar adalah nilai IV yang digunakan haruslah selalu berubah dan harus dipastikan IV tidak digunakan lebih dari sekali. Permasalahan semacam inilah yang terjadi pada keamanan jaringan wireless yang menyebabkan para produsen dan konsumen kebakaran jenggot.
Contoh dari Block Cipher yang terkenal dan digunakan secara luas adalah DES dan AES.

Stream Cipher
Untuk menghindari hasil enkripsi ciphertext yang sama ketika melakukan enkripsi plaintext yang sama, metode stream cipher menggunakan pendekatan yang sedikit berbeda. Stream Cipher menggunakan key yang berbeda-beda untuk melakukan proses enkripsi, artinya pada metode ini dibutuhkan jumlah key yang sangat banyak.
Misalnya, Anda mempunyai key table yang berisi 1 dan 4, kemudian Anda mempunyai plaintext “aa”. Untuk itu, stream cipher akan melakukan enkripsi karater “a” pertama dengan key pertama yaitu 1. Sedangkan plaintext kedua yang ternyata juga berisi karakter yang sama yaitu “a” akan dienkripsi dengan key kedua dari key table yaitu 4. Dengan cara ini, plaintext yang sama akan menghasilkan ciphertext yang berbeda.

Asymmetric cryptography
Para pakar penyandian menciptakan jenis enkripsi yang sangat-sangat unik yang dinamakan Asymmetric Cryptography atau yang juga sering dinamakan Public Key Cryptography. Berbeda dengan symmetric cryptography yang menggunakan key yang sama untuk enkripsi dan dekripsi, pada asymmetric cryptography Anda menggunakan key yang berbeda untuk enkripsi dan dekripsi.
Key yang berbeda ini dinamakan sebagai private key dan public key. Private key merupakan key yang dipegang sendiri oleh pemiliknya sendiri. Sedangkan public key merupakan key yang boleh diketahui oleh siapa pun juga. Public key bisa digunakan untuk melakukan enkripsi namun hanya bisa didekripsi kembali dengan private key.

materi referensi:

http://id.wikipedia.org/wiki/Kriptografi
http://www.kriptonesia.com
http://id.wikipedia.org/wiki/Lembaga_Sandi_Negara
http://hadiwibowo.wordpress.com

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s