JURNAL TEKNOLOGI DAN INFORMATIKA (TEKNOMATIKA) Algoritma ElGamal Untuk Enkripsi Data Menggunakan GnuPG
VOL. 1 NO. 1 JANUARI 2011
ALGORITMA ELGAMAL UNTUK ENKRIPSI DATA MENGGUNAKAN GNUPG Agustinus Widyartono STMIK PalComTech Palembang Abstract The progress of the computer and telecommunications technology as a double-edged knife. On the one hand we are simplified by the technologist, but on the other aspects of the crime by using this technology have also increased. Data security on the network traffic is a thing that everyone wants. El-Gamal algorithm used to encrypt the digital signature. Security of El-Gamal algorithm lies in the difficulty of calculating logarithms when the number selected is a large prime numbers. In El-Gamal cryptographic algorithms included in the asymmetric algorithm. This algorithm has the public key consists of a number and a secret key consisting of a number. One of the software that can be used to encrypt data using the GnuPG ElGamal algorithm. Keywords : Data Security, Cryptography, El Gamal, GnuPG
PENDAHULUAN Saat ini data dan informasi menjadi suatu hal yang tidak dapat dipisahkan lagi dari setiap aspek kehidupan. Data merupakan sebuah bahan baku untuk menghasilkan sebuah informasi. Sedangkan informasi sangat dibutuhkan dalam setiap pengambilan keputusan. Informasi yang lengkap dan up to date menghasilkan kualitas keputusan yang tinggi. Atas dasar kesadaran inilah maka perlu adanya penanganan tersendiri atas data-data yang dihasilkan. Masalah keamanan merupakan salah satu aspek penting dari sebuah sistem informasi. Namun dalam kenyaataannya kadang hal ini bertolak belakang. Masalah keamanan kurang mendapat perhatian dari perancang dan pengelola sistem informasi. Hal sering terjadi malah keamanan berada diurutan terakhir dalam hal-hal yang dianggap penting, setelah urusan tampilan. Saat ini masyarakat kita disebut sebagai information-based sociaty yang artinya bahwa dunia sudah terlibat dalam hal pengumpulan, pertukaran, pembuatan dan pengaksesan informasi. Sebuah organisasi yang baik dilihat dari kemampuannya untuk menyediakan informasi secara cepat dan tepat. Hal ini menjadi sangat mungkin untuk saat ini terutama dengan semakin berkembangnya teknologi komputer dan telekomunikasi. Kemajuan sisi teknologi komputer dan telekomunikasi bagaikan pisau bermata dua. Di satu sisi kita dimudahkan dengan adanya teknolog itu, namun di sisi lain aspek kejahatan dengan menggunakan teknologi ini juga semakin meningkat. Sebagai contoh banyak informasi milik perusahaan yang hanya boleh diketahui oleh orang-orang tertentu dalam perusahaan. Untuk itulah maka keamanan dari sistem informasi yang digunakan harus terjamin dalam batas tertentu.
29
JURNAL TEKNOLOGI DAN INFORMATIKA (TEKNOMATIKA) Algoritma ElGamal Untuk Enkripsi Data Menggunakan GnuPG
VOL. 1 NO. 1 JANUARI 2011
Ancaman Terhadap Keamanan Data Beberapa ancaman keamanan terjadi saat data tidak lagi dipertukarkan dengan menggunakan media penyimpanan yang bersifat mobile, namun saat data melalui jalur telekomunikasi. Dalam jaringan komputer terjadi banyak pertukaran informasi dalam setiap waktunya, sehingga menimbulkan beberapa ancaman yaitu (Ariyus, 2008) : 1. Interruption Mengancam ketersediaan data dan informasi yang ada di dalam sistem komputer dan komunikasi secara fisik, sehingga saat data dan informasi dibutuhkan mengalami kesulitan dalam mengaksesnya. 2. Interception Mengancam kerahasiaan sebuah data, merupakan penyadapan informasi oleh pihak-pihak yang tidak berhak atas sebuah informasi. 3. Modification Mengancam validitas isi sebuah data, selain berhasil melakukan penyadapan juga dilakukan perubahan atas data sehingga informasi yang dihasilkan menjadi bias. 4. Fabrication Mengacam integritas sumber pengiriman data, pihak yang tidak berhak berhasil melakukan peniruan sehingga dianggap sebagai pihak yang benar-benar dikehendaki. Strategi Keamanan Data Keamanan data pada lalu lintas jaringan merupakan hal yang diinginkan setiap orang. Agar data yang dikirimkan aman dari gangguan pihak-pihak yang tidak bertanggung jawab, pesan/data dapat disembunyikan menggunakan algoritma kriptografi.
1. Plaintext Merupakan pesan asli yang biasa disebut cleartext, pesan ini biasanya ditulis dalam bentuk yang mudah dipahami. 2. Encryption Merupakan proses mengubah pesan asli menjadi kode-kode yang tidak dimengerti. 3. Ciphertext Merupakan pesan yang tidak bermakna, pesan yang ada berupa kode-kode tertentu yang tidak dapat dibaca. 4. Decryption Merupakan kebalikan dari encryption, berupa proses menterjemahkan ciphertext menjadi plaintext.
30
JURNAL TEKNOLOGI DAN INFORMATIKA (TEKNOMATIKA) Algoritma ElGamal Untuk Enkripsi Data Menggunakan GnuPG
VOL. 1 NO. 1 JANUARI 2011
Algoritma Asimetris Algoritma asimetris, sering juga disebut dengan algoritma kunci publik, menggunakan dua jenis kunci, yaitu kunci publik (public key) dan kunci rahasia (secret key). Kunci publik merupakan kunci yang digunakan untuk mengenkripsi pesan. Sedangkan kunci rahasia digunakan untuk mendekripsi pesan. Kunci publik bersifat umum, artinya kunci ini tidak dirahasiakan sehingga dapat dilihat oleh siapa saja. Sedangkan kunci rahasia adalah kunci yang dirahasiakan dan hanya orang-orang tertentu saja yang boleh mengetahuinya. Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan kepada siapa saja yang melakukan pertukaran informasi meskipun di antara mereka tidak ada kesepakatan mengenai keamanan pesan terlebih dahulu maupun saling tidak mengenal satu sama lainnya. (Massandy, 2009) Algoritma ElGamal Standar enkripsi data (Data Encryption Standard – DES) adalah algoritma enkripsi yang paling banyak digunakan di dunia. Munculnya DES diawali dengan reset yang dilakukan oleh IBM pada tahun 1960 untuk kriptografi komputer. DES termasuk sistem kriptografi simetri dan tergolong jenis blok node. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit teks asli menjadi 64 bit teks kode. Skema global dari algoritma DES sebagai berikut : 1. Blok asli teks dipermutasi dengan matriks permutasi awal. 2. Hasil permutasi awal kemudian di enciphering sebanyak 16 kali (16 putaran). 3. Hasil enciphering kemudian dipermutasi dengan permutasi balik menjadi blok teks-kode. ElGamal adalah suatu kriptografi dengan kunci publik yang dibuat pada tahun 1985. Algoritma ElGamal digunakan untuk melakukan enkripsi pada tanda tangan digital. Keamanan dari algoritma ElGamal terletak pada sulitnya perhitungan logaritma ketika bilangan yang dipilih adalah bilangan prima yang besar. Sistem ElGamal memilih suatu bilangan prima p dan dua bilangan acak g dan x, g < p dan x < p, jika x adalah kunci rahasia. Bilangan acak g adalah akar dari modulo p, kunci publik digambarkan oleh y, g dan p dengan perhitungan y ≡ gx (mod p). Untuk mengenkripsi sebuah pesan m, 0 < m _ p -1, pertama mengambil suatu bilangan acak k seperti gcd (k, p – 1) = 1. Teks kode diekspresikan dengan dua penanda (r,s) yaitu r ≡ gk (mod p) ; s ≡ (ykm (mod p)) (m (mod p – 1). Untuk mendekripsi pesan m, dibagi s dengan rx seperti s/rx ≡ m (mod p – 1) dan untuk mendapatkan tanda tangan dari pesan m yang pertama dilakukan adalah memilih suatu bilangan acak k seperti gcd (k, p – 1) dan menghitung m ≡ xr + ks (mod p – 1). (Ariyus, 2008). Enkripsi Data Menggunakan GnuPG Enkripsi data dengan menggunakan cara manual harus dilakukan huruf demi huruf tentunya merepotkan apalagi dengan algoritma yang rumit. Guna mengatasi hal tersebut kriptografi modern sudah mulai diterapakan dengan basis komputer. Salah satu perangkat lunak yang dapat digunakan yaitu GnuPG. Selain sifatnya yang free, perangkat lunak ini juga praktis dalam proses pengenkripsian data. Data yang sudah diubah menjadi chipertext selanjutnya dapat dikirim melalu email atau media lainnya. Syarat pertama dalam menggunakan GnuPG adalah membuat pasangan kunci privat dan publik. Lakukan dengan cara:
31
JURNAL TEKNOLOGI DAN INFORMATIKA (TEKNOMATIKA) Algoritma ElGamal Untuk Enkripsi Data Menggunakan GnuPG
VOL. 1 NO. 1 JANUARI 2011
wisanggeni:/home/widhi# gpg --gen-key gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Please select what kind of key you want: (1) DSA and Elgamal (default) (2) DSA (sign only) (5) RSA (sign only) Your selection?
Langkah pertama ini adalah pemilihan algoritma, anda bisa memilih option 1 atau 4, option 2 hanya signature tanpa enkripsi. Kita ambil default option DSA keypair will have 1024 bits. ELG-E keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) 1024 Requested keysize is 1024 bits
Langkah kedua ini adalah pemilihan tingkat enkripsi yang kita pakai. Kita ambil default 1024bit. Please specify how long the key should be valid. 0 = key does not expire
= key expires in n days w = key expires in n weeks m = key expires in n months y = key expires in n years Key is valid for? (0) 0
Langkah ketiga adalah pengisian sampai berapa lama kunci yang kita buat berlaku. Anda bisa memilih option di atas, kita tidak menentukan jangka waktu berlakunya kunci maka kita pilih 0 Langkah keempat adalah mengisi infomasi identitas kita. Bagian comment bisa anda isi atau tidak, menunjukkan informasi tambahan misalnya institusi tempat anda sekolah/bekerja.
32
JURNAL TEKNOLOGI DAN INFORMATIKA (TEKNOMATIKA) Algoritma ElGamal Untuk Enkripsi Data Menggunakan GnuPG
VOL. 1 NO. 1 JANUARI 2011
You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) " Real name: Agustinus Widyartono Email address: [email protected] Comment: You selected this USER-ID: "Agustinus Widyartono <[email protected]>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O You need a Passphrase to protect your secret key. Enter passphrase:
Passphrase adalah password kunci privat yang sedang dibuat. Berguna untuk melindungi kunci privat jika diketahui orang lain. Pada saat GnuPG membuat kunci dibutuhkan entropi sistem yang sangat banyak untuk membuat kombinasi kunci yang aman. Untuk menambah entropi di sistem gerakan mouse atau mengetik di keyboard secara cepat dan random. public and secret key created and signed. Terakhir adalah pesan dari GnuPG bahwa kunci privat dan publik telah selesai dibuat dan ditandatangani. Mengekspor kunci publik dan disimpan menjadi sebuah file teks biasa. wisanggeni:/home/widhi# gpg -a --export > widhipub-key.asc Kini anda sudah bisa mempublikasikan kunci publik (misalnya dipublikasikan di homepage personal) atau dikirim melalui email ke rekan anda yang menggunakan PGP, juga anda bisa mengirimkannya ke keyserver wwwkeys.pgp.net. Mengimport kunci publik rekan anda. Misalnya anda mendapat kunci publik dalam sebuah file teks bernama gpgpub-firman.asc $ gpg --import gpgpub-firman.asc gpg: key 49B688BF: public key imported gpg: /home/jay/.gnupg/trustdb.gpg: trustdb created gpg: Total number processed: 1 gpg: imported: 1
Kini kita dapat berkorespondensi dengan aman dengan rekan kita yang juga telah mengimport kunci publik. Tanpa aplikasi frontend kita bisa mengirim pesan dalam bentuk file teks, kemudian kita encrypt dan dikirim melalui email. Penerima akan membuka email dan menyimpannya ke dalam file dan di-decrypt untuk bisa melihat pesan kita. Misalnya pesan kita tulis dalam file pesan.txt untuk dikirim ke rekan kita.
33
JURNAL TEKNOLOGI DAN INFORMATIKA (TEKNOMATIKA) Algoritma ElGamal Untuk Enkripsi Data Menggunakan GnuPG
VOL. 1 NO. 1 JANUARI 2011
$ gpg -a -o surat.gpg -e -r [email protected] surat.txt
Isi pesan yang sudah di enkrpsi -----BEGIN PGP MESSAGE----Version: GnuPG v1.4.9 (GNU/Linux) hQEOA8biO68mipVDEAP/d2BGW+JmzuiD/Zlr0FumqR2g0WiIVblo0QMh/g1uH0F3 331w+2jgr4oyMTevEFYqNYxoxbZkDOFyOnSpnIVc+Cvu7YBkHkCt7kEgZIQmT5Wy vEbcs7L6qvUxUZSh9lv2CUPszwZ4SWQ5lMWnmqRBcCww3+nThdo0BlB5SlZkEcsD /2mQEKEy8Yw3uw6bj6RlKZPXTBW2/RrVav8bpsI1Q45u+tZ5TKmsv7xDQ1kBDJh7 1fo3uudTAHoqma4MUQeJXCP37ouvKI10cPtIBNJh5AcI8QVwmIZl00DJnXWJwD5C d6JJhtVo4Hxu5+rL1s4Voyz8zg8txhQU5Eqi1ugX5qCw0qgBf4HShvVGj/v2f0k5 2R9AlJwo8q96tluHTaPSK0ktHctH3gOKe3HQZeRsiKXNNDtLTlzNEfK3M6a0cMZ8 qMIyZPLKl2WYng2CbJGXU8eaJXiRVocqdXeBMBeZPgrD4yuwEQrCEAycvCqnissC Q0z5okFwzj7SmJZnsrYcpwN4+7ZiNgaMoXX6Nez6qfQceScWPpsHuwxTlaXrVK3C bhCwWX/T5bt6WXo= =aUq3 -----END PGP MESSAGE-----
Anda tinggal mengirimkan file pesan.gpg melalui email. Rekan anda setelah menyimpan ke dalam file bisa men-decrypt dengan cara: $ gpg -a -d surat.gpg You need a passphrase to unlock the secret key for user: "Agustinus Widyartono <[email protected]>" 1024-bit ELG-E key, ID 268A9543, created 2009-06-05 (main key ID F8925570) gpg: encrypted with 1024-bit ELG-E key, ID 268A9543, created 2009-06-05 "Agustinus Widyartono <[email protected]>" Apa kabar, ini pesan yang sangat rahasia loh, jangan disebar-luaskan ya. Bisa-bisa ditangkap.
Selain pesan yang diencrypt anda juga bisa menambahkan tandatangan (signature) terhadap pesan tersebut. Untuk kasus tertentu misalnya dalam diskusi melalui mailing list anda cukup membubuhkan tandatangan saja.
34
JURNAL TEKNOLOGI DAN INFORMATIKA (TEKNOMATIKA) Algoritma ElGamal Untuk Enkripsi Data Menggunakan GnuPG
VOL. 1 NO. 1 JANUARI 2011
PENUTUP 1. Algoritma Asimetris menggunakan dua kunci yang berbeda saat melakukan proses enkripsi dan dekripsi. Kunci yang digunakan untuk enkripsi disebut kunci publik sedangkan kunci untuk dekripsi disebut kunci rahasia. 2. Dalam kriptografi Algoritma ElGamal termasuk dalam algoritma asimetris. Algoritma ini memiliki kunci publik yang terdiri atas sebuah bilangan dan kunci rahasia yang terdiri atas sebuah bilangan. 3. Salah satu perangkat lunak yang dapat digunakan untuk mengenkripsi data dengan menggunakan algoritma ElGamal yaitu GnuPG. DAFTAR PUSTAKA Ariyus, Donny. 2008. Pengantar Kriptografi Teori, Analisis dan Implementasi. Penerbit Andi. Ifanto, Mukhammad. 2009. Metode Enkripsi Dan Dekripsi Dengan Menggunakan Algoritma ElGamal. ,…… Majid, Agus Hilman. 2009. Implementasi Algoritma ElGamal Sebagai Program Add-In Di Microsoft Word. ,…… Massandy, Danang Tri. 2009. Algoritma ElGamal Dalam Pengamanan Pesan Rahasia. ,……
35