Selasa, 17 Oktober 2017

Implementasi kegunaan algoritma DES, RSA dan PGP

  • IMPLEMENTASI ALGORITMA DES

DES merupakan algoritma enkripsi yang dikembangkan oleh NIST (National Institute of Standards and Technology) sebagai standar pengolahan informasi Federal AS. Secara umum, Data Encryption Standard (DES) terbagi menjadi tiga kelompok, yaitu pemrosesan kunci, enkripsi data 64 bit dan deskripsi data 64 bit, dimana satu kelompok saling berinteraksi satu dengan yang lainnya.

Data dienkripsi dalam blok-blok 64 bit menggunakan kunci 56 bit, DES mentransformasikan input 64 bit dalam beberapa tahap enkripsi ke dalam output 64 bit. Dengan demikian, DES termasuk lama block cipher dengan tahapan pemakaian kunci yang sama untuk deskripsinya.

Sejarah DES

DES, atau juga dikenal sebagai Data Encryption Algorithm (DEA) oleh ANSI dan DEA-1 oleh ISO, merupakan algoritma kriptografi simetris yang paling umum digunakan saat ini. Sejarahnya DES dimulai dari permintaan
pemerintah Amerika Serikat untuk memasukkan proposal enskripsi. DES memiliki sejarah dari Lucifer1, enkripsi yang dikembangan di IBM kala itu. Horst Feistel merupakan salah satu periset yang mula-mulA mengembangkan DES ketika bekerja di IBM Watson Laboratory di Yorktown Heights, New York. DES baru secara resmi digunakan oleh pemerintah Amerika Serikat (diadopsi oleh National Bureau of Standards)
di tahun 1977. Ia dikenal sebagai Federal Information Processing Standard 46 (FIPS PUB46).

Aplikasi yang menggunakan DES antara lain:
• enkripsi dari password di sistem UNIX
• berbagai aplikasi di bidang perbankan

Memecahkan DES

DES merupakan block chiper yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran 56-bit. Brute force attack dengan mencoba segala kombinasi membutuhkan 256 kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi. DES dengan penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda coba-coba (brute force attack). Ada berbagai group yang mencoba memecahkan DES dengan berbagai cara. Salah satu group yang bernama distributed.net menggunakan teknologi Internet untuk memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok). Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini untuk mengambil beberapa blok, via Internet, kemudian memecahkannya di komputer pribadinya. Program yang disediakan meliputi berbagai operating system seperti Windows, DOS, berbagai variasi Unix, Macintosh. Blok yang sudah diproses dikembalikan ke distributed.net via Internet. Dengan cara ini puluhan ribu orang, termasuk penulis, membantu memecahkan DES. Mekanisme ini dapat memecahkan DES dalam waktu 30 hari. Sebuah group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah komputer yang dilengkapi dengan Integrated Circuit chip DES cracker. Dengan mesin seharga US$50.000 ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai lima (5) hari. DES cracker yang mereka kembangkan dapat melakukan eksplorasi keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari. Dikarenakan 56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit, maka untuk memecahkan DES 40-bit hanya dibutuhkan waktu sekitar 12 detik1. Dikarenakan hukum average, waktu rata-rata untuk memecahkan DES 40-bit adalah 6 detik.
Perlu diingat bahwa group seperti EFF merupakan group kecil dengan budget yang terbatas.











IMPLEMENTASI ALGORITMA RSA


Seiring perkembangan zaman, segala sesuatu dapat lebih mudah dilakukan, contohnya dalam bidang komunikasi. Dahulu kita masih menggunakan surat untuk berkomunikasi. Sekarang kita dapat melakukan komunikasi jarak jauh dimana pun dan kapan pun dengan cepat. Seperti email, layanan pesan singkat, dan internet merupakan bentuk kemajuan teknologi dalam bidang komunikasi.

Pada proses pengiriman data (pesan) terdapat beberapa hal yang harus diperhatikan, yaitu kerahasiaan, integritas data, autentikasi dan non repudiasi. Maka dari itu dibutuhkan sebuah proses penyandian atau pengkodean pesan sebelum dilakukan suatu proses pengiriman. Sehingga pesan yang dikirim terjaga informasi nya dari orang yang tidak berhak mengakses, serta menjaga integritas pesan tersebut.

Ilmu yang mempelajari tentang cara-cara pengamanan data dikenal dengan istilah Kriptografi, sedangkan langkah-langkah dalam kriptografi disebut algoritma kriptografi. Contoh algoritma kriptografi yang dapat dihandalkan adalah RSA, dimana RSA merupakan proses penyandian kunci asimetrik (asymmetric key). Proses perumusan RSA didasarkan pada Teorema Euler, sedemikian sehingga menghasilkan kunci umum dan kunci pribadi yang saling berkaitan. Sehingga meskipun proses enkripsi dan dekripsi menggunakan dua kunci yang berbeda hasilnya akan tetap benar. Kunci umum dan kunci pribadi yang digunakan adalah suatu bilangan prima, dan disarankan bilangan prima yang besar. Hal ini digunakan untuk pencegahan usaha pemecahan teks rahasia, karena semakin besar bilangan prima yang digunakan sebagai kunci maka semakin sulit mencari bilangan besar sebagai faktornya.


Contoh implementasi RSA adalah sebuah sistem purwarupa mail server dengan kliennya. Mail client dapat melakukan metode enkripsi - dekripsi menggunakan algoritma RSA pada isi pesan bertipe plaintext. Langkah yang dilakukan adalah pertama, mengunduh email dari Google server kemudian mengenkripsi pesan tersebut. Kedua, pesan yang telah dienkripsi selanjutnya akan didekripsi untuk membuktikan pesan tersebut masih sama dengan pesan asli sebelum dienkripsi dengan menggunakan kunci yang sama.

Program aplikasi enkripsi dan dekripsi email ini dibuat untuk menerapkan ilmu pelajaran kriptografi, yaitu sebuah seni dan bidang keilmuan dalam penyandian informasi atau pesan dengan tujuan menjaga keamanannya. Perangkat lunak ini hanya mengamankan isi pesan masuk email bukan mengamankan jalur transfer email. Dalam aplikasi ini telah dibuktikan bahwa pesan dapat dienkripsi dengan menggunakan kunci sehingga pesan yang pada awalnya adalah pesan asli diubah menjadi pesan rahasia. Kemudian, untuk mengembalikan pesan tersebut menjadi pesan asli lagi harus menggunakan kunci yang sama pada saat enkripsi tadi. Proses tersebut dinamakan proses dekripsi. Saat mendekripsi pesan yang telah dienkripsi harus memasukkan password terlebih dahulu, apabila masukan password salah pesan tidak akan didekripsi. Untuk proses enkripsi maupun dekripsi pesan dengan memasukan bit yang berbeda akan menghasilkan ciphertext yang berbeda pula, bahkan untuk jumlah bit yang sama bisa menghasilkan ciphertext yang berbeda. Hal ini dikarenakan nilai pembangkit kunci yaitu P dan Q berbeda apa bila masukan bitnya juga berbeda. Jadi terdapat pengamanan ganda untuk membuka pesan tersandi. Pesan kesalahan akan ditampilkan apabila terjadi kesalahan saat memasukkan suatu nilai yang salah saat enkripsi atau dekripsi pesan. Saat enkripsi masukan bit bernai kosong dan saat dekripsi masukan password salah.

  • IMPLEMENTASI ALGORITMA PGP
PGP (Pretty Good Privacy) adalah Suatu metode program enkripsi informasi yang memiliki tingkat keamanan cukup tinggi bersifat rahasia dengan menggunakan “Private-Public Key” sebagai dasar autentifikasinya sehingga jangan sampai dengan mudah diketahui oleh orang lain yang tidak berhak. PGP dikembangkan oleh Phill Zimmermann pada akhir tahun1980. Program yang dibuat oleh Phill Zimmerann memiliki 2 versi yaitu “USA Version “ dan “International Version”. PGP versi USA hanya dapat digunakan di wilayah USA dan oleh warganegara USA saja. PGP versi USA ini menggunakan algoritma RSA (yang telah menjadi hak paten) dalam enkripsinya. Sedangkan versi internasional menggunakan algoritma MPILIB yang diciptakan khusus oleh Phill Zimmermann sendiri. PGP Versi internasional bisa digunakan oleh seluruh dunia.

Dasar – Dasar PGP

Pada dasarnya, PGP merupakan program yang digunakan untuk mengenkripsi satu atau lebih dokumen. Dengan PGP tersebut, hanya orang – orang tertentu saja yang bisa membaca file – file enkripsi tersebut.
PGP (Pretty Good Privacy) dibuat dengan berdasarkan konsep Private Key Cryptography sebagai dasar otorisasinya. Private Key Cryptography ini digunakan untuk mengenkripsi dalam suatu hubungan komunikasi antara dua mesin. Dalam menjaga kerahasiaan data, kriptografi mentransformasikan data jelas (plaintext) ke dalam bentuk data sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah yang kemudian dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah sampai di penerima, ciphertext tersebut ditranformasikan kembali ke dalam bentuk plaintext agar dapat dikenali. Sehingga dalam penulisannya lebih dikenal dalam bentuk enkripsi (encryption) dan deskripsi (descryption).
Enkripsi (encryption) merupakan suatu proses di mana sebuah pesan (plaintext) ditranformasikan atau diubah menjadi bentuk pesan lain (chipertext) menggunakan suatu fungsi matematis dan enkripsi password khusus yang lebih dikenal sebagai key. Sementara Deskripsi (descryption) merupakan proses kebalikan, dari chiphertext dirubah kembali ke plaintext dengan menggunakan fungsi matematis dan key.Pada saat kita membuat kunci, PGP akan menciptakan duah buah kunci yaitu private key dan public key yang merupakan sebuah pasangan bersesuaian. Private Key adalah kunci yang hanya diketahui oleh kita sendiri sedangkan Public Key adalah kunci yang kita beritahukan kepada orang – orang yang kita percaya. Public key digunakan sebagai dasar proses pengenkripsian dokumen – dokumen yang hanya bisa dibuka oleh orang yang memiliki private key yang bersesuaian.

Prinsip Kerja PGP


PGP bekerja dengan menggabungkan beberapa bagian yang terbaik dari key konvensional dan public key cryptography, jadi PGP ini adalah sebuah a hybrid cryptosystem. Ketika seorang pengguna mengenkrip sebuah plaintext dengan menggunakan PGP, maka awal PGP akan mengkompress plaintet ini. Data yang dikompress menghebat waktu dan media transmisi dan lebih penting adalah keamanan kriptograpik yang kuat. Kebanyakan teknik analisis sandi mengeksplotasi pola yang ditemukab dalam plaintext untuk men-crack chipernya. Kompressi mengurangi pola-pola ini dalam plaintext, dengan cara demikian perbaikan yang lebih baik untuk menghambat analisa kode-kode.PGP membuat sebuah session key, dimana sebuah kunci rahasia pada saat itu. Kunci adalah sebuah bilangan acak yang dihasilkan dari gerakan acak dari mouse dan tombol yang anda tekan. Session Key ini berkerja dengan sangat aman, algoritma enkripsi konvesional yang cepat untuk meng-enkrip plaintext. Hasilnya adalah berupah chiper text. Sekali data dienkripsi, lalu session key ini dienkripsi lagi menggunakan kunci publik penerima. session key yang terenkripsi kunci publik key penerima dikirim dengn chipertext ke penerima.

Proses deskripsi bekerja sebaliknya, Penerima menerima pesan lalu membuka pesan tersebut dengan kunci privatnya, namun pesan tersebut masih terenkripsi dengan session key. Dengan Menggunakan PGP, penerima mendekrip chipertext yang terenkripsi secara konvensional.Kombinasi dari 2 metode enkripsi menggabungkan kehandalan dari enkripsi kunci publik dengan kecepatan pada enkripsi konvensional. Enkripsi Konvensional kuarang lebih 1000x lebih cepat dari enkripsi kunci publik. Jadi enkripsi kunci publik memberikan sebuah solusi pada distribusi kunci dan masalah transmisi data. Dengan menggunakan keduanya, perfoma dan distribusi kunci dapat ditingkatkan tanpa mengorbankan sesuatu dalam keamanan.Prinsip – prinsip kerja dari PGP itu sendiri adalah :PGP menggunakan teknik yang disebut Public-key encryption dengan dua kode yang saling berhubungan secara intrinsik, namun tidak mungkin untuk memecahkan satu dan yang lainnya.Jika membuat suatu kunci, secara otomatis akan dihasilkan sepasang kunci yaitu public key dan secret key. Kita dapat memberikan public key ke manapun tujuan yang kita inginkan, melalui telephone, internet, keyserver, dsb. Secret key yang disimpan pada mesin kita dan menggunakan messager decipher akan dikirimkan ke kita. Jadi orang yang akan menggunakan public key kita (yang hanya dapat didekripsi oleh oleh secret key kita), mengirimkan messages kepada kita , dan kita akan menggunak an secret key untuk membacanya.PGP menggunakan dua kunci yaitu kunci public (proses enkripsi) dan privet (proses deskripsi).menggunakan dua kuci tersebut dikarenakan adanya conventional crypto, disaat terjadi transfer informasi kunci, suatu secure channel diperlukan. Dan jika kita memiliki suatu secure channel, tapi mengapa kita menggunakan crypto? Namun dengan public-key syistem, tidak akan menjadi masalah siapa yang melihat kunci milik kita, karena kunci yang dilihat oleh orang lain adalah yang digunakan hanya untuk enkripsi dan hanya pemiliknya saja yang mengetahui kunci rahasia tersebut.