Rabu, 23 Mei 2012

ENKRIPSI (Encryption) & DEKRIPSI (Decryption)

ENKRIPSI
Enkripsi komputer didasarkan pada ilmu kriptografi, yang telah lama digunakan. Sejarawan Yunani Lucius Mesterius Plutarchus (46-120) menulis tentang para jenderal tentara Spartan yang mengirim dan menerima pesan sensitif menggunakan scytale, sebuah kayu gelondong kecil. Para jenederal tersebut membungkus scytale dengan kertas yang terbuat dari kulit, dan menuliskan pesan sensitif di atasnya.

Ketika gulungan kertas dilepaskan dari gelondong kayu tersebut, tulisan terlihat bercampur aduk dan tidak memiliki makna. Tapi, bila jenderal lain menerima kertas tersebut, dan menggulungkannya di atas scytale dengan ukuran yang sama, sia bisa membaca isi pesan.

Namun saat ini, sebagian besar kriptografi mengandalkan komputer, mengingat kode yang dibuat manusia terlalu mudah untuk dipecahkan komputer. Cipher yang digunakan sekarang pun kini berupa algoritma. Pada umumnya, sistem enkripsi komputer termasuk ke dalam salah satu dari dua kategori enkripsi yakni : symmetric-key dan public-key.

Di bidang kriptografi, enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM pada bank.

Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer.

Enkripsi adalah sebuah proses data encoding atau pemecahan kode data yang hanya dapat dibaca bila kita memiliki sebuah kunci khusus. Dulu enkripsi hanya berkembang di dunia spionase/perang, tetapi saat ini teknologi tersebut telah merambah ke sektor bisnis dan kalangan pengguna rumahan: Enkripsi adalah tool terbaik untuk melindungi data, privasi, dan rahasia Anda.

Yang perlu diketahui tentang enkripsi yaitu:
-Mencegah akses yang tidak diinginkan pada dokumen dan pesan e-mail.
-Level enkripsi yang tinggi sukar untuk dibongkar.
-Perubahan dalam peraturan ekspor teknologi kriptografi akan meningkatkan penjualan software enkripsi.

Ada dua jenis enkripsi:
 
1.Enkripsi simetris 
Dengan enkripsi simetris, Anda menjalankan sebuah file melalui program dan membuat sebuah kunci yang mengacak file. Kemudian Anda mengirim file terenkripsi melalui e-mail ke si penerima dan secara terpisah mentransmit kunci dekodingnya (mungkin berupa sebuah password atau file data lainnya). Si penerima, dengan menjalankan aplikasi enkripsi yang sama, menggunakan kunci yang Anda berikan untuk menyatukan kembali file yang telah diacak. Enkripsi simetris sangat mudah dan sangat cepat dalam penggunaannya, tetapi tidak seaman enkripsi asimetris, karena seseorang dapat saja mencegat kunci dan mendekoding pesan tersebut. Tetapi karena kecepatannya itu, saat ini enkripsi simetris banyak digunakan pada transaksi e-commerce.


        
2.Enkripsi asimetris (public key).
Enkripsi asimetris sangat kompleks--tetapi jauh lebih aman. Diperlukan dua buah kunci yang saling berhubungan: sebuah kunci publik dan sebuah kunci pribadi. Anda membuat kunci publik Anda tersedia bagi siapa saja yang ingin Anda kirim informasi terenkripsi. Kunci tersebut hanya dapat mengenkoding data; ia tidak dapat mendekodingnya. Kunci pribadi Anda terjaga dengan aman bersama Anda. Saat orang-orang hendak mengirim informasi terenkripsi pada Anda, mereka mengenkripsinya menggunakan kunci publik Anda. Saat Anda menerima chipertext tersebut, Anda akan mendekripsikannya dengan menggunakan kunci pribadi Anda. Enkripsi asimetris menambahkan tingkat keamanan pada data Anda, tetapi akibatnya lebih banyak lagi waktu komputasi yang dibutuhkan, sehingga prosesnya menjadi sangat panjang dan lebih lama.

Enkripsi simetris dan asimetris menggunakan dua buah algoritma yang berbeda untuk menghasilkan chipertext. Pada enkripsi simetris, algoritmanya akan memecah-mecah data menjadi potongan-potongan kecil yang disebut blok. Kemudian ia akan mengganti letak huruf, mengubah informasi pada setiap blok menjadi angka, menkompresinya dan memperbesar ukuran data, dan kemudian menjalankannya melalui formula matematis termasuk kunci di dalamnya. Kemudian algoritma mengulangi proses tersebut, kadang-kadang sampai selusin pengulangan. Pada algoritma enkripsi asimetris, memperlakukan teks sebagai sebuah angka yang sangat besar, terus mengkalikannya menjadi angka yang lebih besar, dan kemudian mengkalkulasi sisanya setelah dibagi dengan angka terbesar ketiga lainnya. Akhirnya, angka sisa ini dikonversi menjadi teks kembali. Program enkripsi dapat menggunakan algoritma yang sama secara berbeda, itu sebabnya mengapa para penerima informasi yang terenkripsi harus memiliki program yang sama dengan si pengirim untuk mengenkoding data yang mereka terima.

Contoh alur dari ENKRIPSI
plaintext -> key + alogaritma -> ciphertext -> alogaritma + key -> plaintext.

Apa perbedaan enkripsi, encoding dan hash?
Enkripsi:
membutuhkan script/tool/alat bantu tambahan untuk membacanya. Jika kalian mengunakan enkripsi pada sistem kalian, maka kalian juga harus membuat decryptor nya juga. Hal ini karena program yang ada tidak bisa membaca enkripsi anda. Misal jika anda menggunakan caesar cipher pada PHP maka anda juga harus membuat decryptor nya, karena PHP tidak mengenali enkripsi model ini. Digunakan untuk menyimpan pesan rahasia misal: database intelejen, session, cookies
Encoding:
tidak membutuhkan alat bantu untuk membacanya. Karena biasanya sudah di include kan ke dalam program tersebut. Misal PHP yang langsung bisa membaca encoding base64 anda dengan hanya menggunakan fungsi base64_decode().
Hash:
tidak digunakan untuk dijalankan/script tapi hanya untuk di baca / diketahui. Hanya digunakan untuk menyimpan data-data tertentu yang biasanya penting. Misal: password.

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):
Plaintext     Ciphertext
hello              khoos
bye          ebh
freelynx      iuhhobqa
dst..

dalam melakukan proses untuk meng-enkripsi diperlukan sebuah algoritma dan key. Pada contoh diatas, algoritma yang digunakan adalah:
-Konversikan huruf menjadi angka
-Masing-masing angka yang diperoleh jumlahkan dengan $n
-konversikan angka yang diperoleh kembali menjadi huruf

dengan:
-$n adalah Key yang dapat ditentukan sendiri.

Jika key yang kita gunakan adalah 1, algortima tersebut akan mengubah huruf:
-A menjadi B
-B menjadi C
-D menjadi E
-s menjadi t
dlsb

DEKRIPSI 
Dekripsi merupakan proses kebalikan dari enkripsi dimana proses ini akan mengubah ciphertext menjadi plaintext dengan menggunakan algortima ‘pembalik’ dan key yang sama. Contoh:

Ciphertext     Plaintext
khoos           hello
ebh          bye
iuhhobqa      freelynx
dst..

Untuk melakukan dekripsi ini, algoritma yang digunakan tentu saja berbeda dengan algortima enkripsi, namun pada dasarnya adalah “membalik” algoritma enkripsi. Perhatikan contoh algortima dekripsi berikut yang diambil dari algoritma enkripsi diatas:

-Konversikan huruf menjadi angka
-Masing-masing angka yang diperoleh kurangkan dengan $n
-Konversikan angka yang diperoleh kembali menjadi huruf

dengan:

-$n adalah key yang sama dengan yang digunakan dalam proses enkripsi.

Jika diperhatikan, baik algoritma enkripsi maupun dekripsi tidak jauh berbeda, yang berbeda hanyalah ketika memasukkan unsur key kedalam algoritma tersebut, dimana enkripsi menggunakan proses penjumlahan sedangkan dekripsi menggunakan pengurangan.

Masih menggunakan contoh yang sama dengan enkripsi, apabila kita gunakan key sama dengan 1, algoritma dekripsi diatas akan mengubah huruf:

-B menjadi A
-C menjadi B
-Z menjadi Y
-A menjadi Z
dst..

Tidak ada komentar:

Posting Komentar