Sabtu, 20 Juni 2009

Encryption & Decryption: Lindungi data Anda!

Sewaktu kecil, saya sering menulis pesan pada teman sekelas pada secarik kertas, lalu mengoperkannya secara estafet kepada teman saya itu. Asal tidak ketahuan guru, biasanya cara ini bisa menjadi media komunikasi karena saat itu belum ada sms. Masalahnya adalah semua teman yang dilewati pesan itu akan dapat membaca tulisan tersebut, sehingga saya harus mencari cara agar pesan tersebut tidak dapat dibaca oleh teman lain, misalnya karena bisa membuat saya jadi bahan tertawaan teman satu kelas.
Untuk itu saya dan teman saya itu mempunyai metode yang baru belakangan saya tahu bernama ROT 13. Caranya yaitu dengan menggeser/menukar semua huruf dalam pesan sejauh 13 huruf dalam alfabet. Jadi A ditukar dengan N, B menjadi O dan sebaliknya, dst. Jadi pesan "pinjamin duit dong" akan saya tulis sebagai "cvawnzva qhvg qbat".

Ini adalah sebuah contoh enkripsi atau pengacakan data yang sederhana, bahkan tidak memerlukan kunci atau password. Saking sederhananya, akhirnya bisa dipecahkan oleh teman lain yang pintar matematika hanya dalam satu-dua jam saja, dan akhirnya saya tetap menjadi bahan tertawaan. :(

Proses enkripsi adalah proses atau metode untuk menyembunyikan informasi agar tidak dapat dibaca pihak yang tidak berhak. Sedangkan dekripsi adalah proses kebalikannya, menterjemahkan pesan yang sudah dienkripsi kembali ke pesan semula. Enkripsi/dekripsi termasuk dalam Cryptography (atau Cryptology), yaitu iIlmu yang mempelajari metode menyembunyikan informasi, yang sudah ada sejak jaman Yunani kuno. Disini saya hanya akan membahas sekilas tentang enkripsi/dekripsi, karena proses itu (apalagi Cryptography) terlalu luas untuk diuraikan dalam satu artikel pendek.

Contoh enkripsi yang terkenal adalah mesin Enigma yang digunakan tentara Jerman pada saat Perang Dunia II, untuk mengenkripsi pesan radio atau telegraf sehingga tidak dapat dimengerti oleh pihak Sekutu. Mesin yang mirip mesin ketik ini dirancang oleh Arthur Scherbius, seorang insinyur Jerman dan dipatenkan tahun 1918. Militer Jerman kemudian mengadopsi beberapa variannya untuk kepentingan intelijen dan komunikasi.
Enigma terhitung sangat canggih untuk masa itu antara lain karena menggunakan beberapa lapis enkripsi, lalu sebuah kata yang diulang akan muncul sebagai dua kata yang sama sekali berbeda, dan kunci atau passwordnya setiap hari berubah, membuat para ahli cryptology Sekutu kelimpungan berusaha memecahkan kode Enigma.
Dengan bantuan ahli cryptography dan matematika Polandia Marian Rejewski akhirnya kode Enigma berhasil dipecahkan. Keberhasilan ini sangat membantu berakhirnya Perang Dunia II, terutama pertempuran di benua Eropa. Jika seandainya kode Enigma tidak dapat dipecahkan, mungkin sejarah dunia akan menjadi sangat berbeda.
Selain Enigma, ada juga mesin Lorentz yang digunakan untuk mengenkripsi komunikasi tingkat tinggi antara Hitler dan jendral-jendralnya. Untuk memecahkan kode Lorentz, para ilmuwan Inggris membuat sebuah mesin penghitung raksasa yang disebut Collosus, yang kemudian menjadi cikal-bakal komputer modern.
Ada banyak artikel, buku dan film baik fiksi maupun non-fiksi tentang Enigma dan Lorentz jika Anda tertarik untuk mengetahui lebih dalam. Jika Anda suka baca novel, cobalah "Cryptonomicon" karangan Neal Stephenson. Untuk penggemar film, tonton saja "Das Boot" (th 1981) atau "U-571" (th 2000).

Dimasa kini, enkripsi dan dekripsi sudah bukan lagi monopoli militer, diplomat dan agen rahasia saja. Sudah banyak program komputer untuk enkripsi (contoh favorit saya adalah TrueCrypt) untuk membantu Anda menyembunyikan file atau dokumen digital rahasia.

Untuk aplikasi digital, ada dua macam enkripsi yang penting:
1. Enkripsi simetrik. Sifat metode ini adalah proses enkripsi dan dekripsi menggunakan password yang sama. Enkripsi ini adalah yang paling umum dipakai dan biasanya sangat cepat sehingga komputer modern mampu mengenkripsi/dekripsi file yang cukup besar hanya dalam sepersekian detik saja. Ada banyak cara enkripsi simetrik, misalnya DES (sudah kadaluarsa), AES, dsb. TrueCrypt menggunakan enkripsi simetrik.
Jika enkripsi ini digunakan untuk mengirim data rahasia ke orang lain, kedua belah pihak harus sudah mengetahui metode enkripsi dan password yang digunakan.
Anda dapat melindungi data yang sensitif dengan metode ini, sehingga jika seandainya perlindungan data secara fisik gagal, data tetap tidak dapat dimengerti orang lain. Misalnya saat mengirim data menggunakan USB flashdisk, jika data sudah dienkripsi maka seandainya flashdisk itu jatuh ketangan pihak lain, data tersebut tetap tidak dapat dibaca. TrueCrypt bahkan memiliki feature 'whole disc encryption' dimana seluruh isi harddisk dienkripsi. Anda akan diminta memasukkan password begitu menyalakan komputer. Tanpa password yang tepat, seluruh isi harddisk tak dapat dibaca. Ini berguna jika Anda harus membawa-bawa laptop berisi data penting dan rahasia kemana-mana.

2. Enkripsi asimetrik, dimana kedua belah pihak menggunakan kunci/password yang berbeda namun berpasangan (berbeda dengan enkripsi simetrik, Anda tidak dapat menentukan password kesukaan Anda, melainkan harus menggunakan program untuk membuatnya). Metode ini dipakai dalam komunikasi digital yang aman seperti misalnya SSL (mungkin secara tidak sadar sudah sering Anda gunakan saat browser Anda menampilkan https:// dan bukan hanya http:// didepan alamat website) atau TLS, dsb. Enkripsi ini menggunakan sepasang password atau kunci yang berpasangan, satu disebut private key dan satu lagi public key. Private key disimpan rapat-rapat, sementara public key, sesuai namanya, dipublikasikan agar semua orang tahu.
Sifat enkripsi asimetrik adalah pesan yang dienkripsi dengan private key hanya dapat didekripsi dengan public key pasangannya saja. Juga sebaliknya, pesan yang dienkripsi dengan public key hanya dapat didekripsi dengan private key yang sesuai.
Misalnya saya ingin mengirim email rahasia ke seorang teman, sebut saja si A, maka pertama-tama saya akan mengambil public key milik si A (banyak server yang menyediakan tempat publikasi public key). Kemudian saya mengenkripsi email tersebut dengan public key tersebut. Dengan demikian saya yakin hanya si A dengan private key miliknya saja yang dapat mendekripsi email saya tersebut. Email terenkripsi itu sendiri bisa dengan bebas dikirim melalui media/server apa saja tanpa perlu khawatir ada orang yang bisa membacanya. Jika Anda sudah menggunakan Mozilla Thunderbird sebagai email client Anda, hal ini akan dengan sangat mudah Anda lakukan. Ini akan saya bahas minggu depan.

Metode enkripsi asimetrik ini juga menjadi dasar apa yang disebut 'digital signature', atau tanda-tangan digital.
Untuk meyakinkan bahwa sebuah file/data (sebut saja 'asli.txt') benar-benar berasal dari saya, maka saya akan mengenkripsi file/data itu dengan private key saya dan menyertakan hasil enkripsi itu (misalnya 'hasil.enc') bersama file/data aslinya.
Untuk mengecek, semua orang dapat mengambil public key saya lalu dengan public key itu mendekripsi lampiran hasil enkripsi saya ('hasil.enc') dan membandingkan hasilnya dengan file asli ('asli.txt').
Jika sama, maka terbukti bahwa file tersebut memang berasal dari saya, karena saya satu-satunya orang yang punya private key yang berpasangan dengan public key tadi. Jika berbeda, maka itu berarti bahwa file itu bukan berasal dari saya atau sudah diubah.

Tidak ada komentar:

Posting Komentar