Studi Kasus Pada E-Mail

Makalah Penyandian Data Alfanumerik Menggunakan Algoritma Kriptografi One Time Pad 
Oleh: Sujono


PENDAHULUAN

Kerahasiaan data adalah hal yang penting dalam komunikasi data. Ada beberapa algoritma enkripsi yang biasa digunakan seperti DES, Triple DES, Blowfish, IDEA dan sebagainya. Algoritma-algoritma tersebut begitu rumit dan sulit dimengerti dengan dalih ‘faktor keamanan’, katanya semakin sulit suatu algoritma dimengerti, maka semakin aman. Namun bagi para pengguna mereka tidak memikirkan seberapa sulit algoritmanya, yang penting data mereka aman.

Ada 2 syarat keamanan suatu system enkripsi, yaitu true random bits dan key space yang sangat besar untuk algoritma enkripsi tersebut. Jika kedua syarat dipenuhi, maka tidak ada masalah seberapa kompleks algoritma enkripsinya. Bahakan semakin sederhana semakin baik, karena semakin sederhana, maka makin sedikit proses komputasinya, dan semakin sedikit waktu yang dibutuhkan untuk mengeksekusinya.

Tugas akhir membahas algoritma One Time Pad (OTP) yang terkenal sederhana dan ‘unbreakable’, pada data yang bertipe alphanumeric serta bagaimana kemungkinan pengulangan kunci simetrik yang digenerate. Algoritma OTP ini dipadukan dengan algoritma RSA dan MD5 untuk keamanan kunci dan tanda tangan digital. Sistem e-mail OTP yang dipadukan dengan RSA dan MD5 ini menawarkan kemydahan dan keamanan dengan key yang tidak berulang pada ukuran message tertentu. Menggunakan OS Windows Server 2003, mail server Kerio versi 5.5.0 dan tools pembantu lainnya serta bahasa pemrograman Java.


Kerahasiaan dan keamanan saat melakukan pertukaran data adalah hal yang sangat penting dalam komunikasi data, baik untuk tujuan keamanan bersama, maupun untuk privasi individu. Mereka yang menginginkan agar datanya tidak diketahui oleh pihsk-pihak yang tidak berkepentingan selalu berusaha menyiasati cara mengamankan informasi yang akan dikomunikasikannya. Perlindungan terhadap kerahasiaan datapun meningkat, salah satu caranya dengan dengan penyandian data atau enkripsi.

Enkripsi merupakan suatu proses pengubahan pesan asal menjadi karakter yang tidak dapat dibaca[9]. Ada beberapa algoritma enkripsi yang biasa digunakan seperti DES, Triple DES, Blowfish, IDEA dan sebagainya. Algoritma-algoritma tersebut begitu rumit dan sulit dimengerti dengan dalih ‘faktor keamanan’, katanya semakin sulit suatu algoritma dimengerti, maka semakin aman. Namun bagi para pengguna mereka tidak memikirkan seberapa sulit algoritma dan aplikasinya, yang mereka inginkan adalah menjaga kerahasiaan data.

Ada 2 syarat umtuk mengimplementasikan suatu system enkripsi yang aman[6]. Pertama, true random bits (benar-benar hanya dihasilkan.sekali) dan kedua, key space yang besar untuk algoritma enkripsi tersebut. Jika kedua syarat dipenuhi, tidak masalah seberapa kompleks algoritma enkripsinya. Bahkan semakin sederhana semakin baik, karena semakin sederhana suatub algoritma, maka akan semakin sedikit proses komputasinya dan semakin sedikit waktu yang dibutuhkan untuk mengeksekusinya. Kesederhanaan itulah yang ditawarkan oleh algoritma One Time Pad (OTP), algoritma kriptografi yang secara teori dan praktek aman dari tangan-tangan penyadap[3], dan dikenal dengan sebutan ‘unbreakable’ algorithm’[10].

Skema enkripsi yang akan dibangun pada tugas akhir ini menerapkan teknik pada kriptografi modern, yang menganut kerahasiaan pada kunci (key), sehingga keamanan enkripsi hanya tergantung pada key dan tidak tergantung apakah algoritmanya diketahui orang atau tidak[9]. Pada tugas akhir ini memadukan algoritma OTP dengan algoritma kriptografi RSA sebagai algoritma ‘standar’ pembuatan kunci public dan MD5 sebagai algoritma standar untuk signature.


PEMBAHASAN

1. Kriptografi

Kriptografi adalah suatu ilmu atau seni mengamankan pesan, dan dilakukan oleh cryptographer. Sedangkan cryptanalys adalah suatu ilmu dan seni membuka (breaking) ciphertext dan orang yang melakukannya disebut cryptanalys [9]. Ditinjau dari terminologinya, kata kriptografi berasal dari bahasa Yunani yaitu kryptos, ‘menyembunyikan’, dan graphein ‘menulis;, sehingga dapat didefinisikan sebagai ilmu yang mengubah informasi dari keadaan/bentuk normak (dapat dipahami) menjadi bentuk yang tidak dapat dipahami[2].

Algoritma Kriptografi selalu terdiri dari dua bagian[9], yaitu enkripsi dan dekripsi. Enkripsi (encryption) merupakan proses yangdilakukan untuk mengubah pesan yang tidak disanikan (plaintext atau cleartext) ke dalam bentuk yang tidak dapat dibaca (ciphertext) Sdangkan dekripsi (decryption) adalah proses kebalikannya. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Dalam suatu sistem dimana terdapat algoritma kriptografi, ditambah seluruh kemungkinan plaintext, ciphertext dan kunci-kuncinya[9] disebut kriptosistem(cryptosystem atau cryptographic system). 

matika modular merupakan operasi matematika yang banyak dipergunakan pada metoda kriptogarfi simetris, adalag aritmatika modulo dua dan operasi XOR (Exlusive OR) dengan symbol . Operadi modulo dua ini melibatkan o dan 1 saja sehingga identik dengan bit pada komputer. 


2. Algoritma Simetri

Algoritma kriptografi berdasarkan kuncinya dibedakan menjadi dua, yaitu algoritma simetri (konvensional) dan algoritma asimetri (kunci public)[9]. Pada algoritma simetri, kunci enkripsi yang digunakan sama dengan kunci dekripsinya, sehingga sering one-key, private-key atau single-key.


Algoritma simetri masih terbagi dalam 2 kategori, yakni algoritma block cipher dan algoritma stream cipher. Algoritma block cipher adalah algoritma yang masukkan dan keluarannya berupa satu dan setiap bloknya terdiri dari banyak bit. Sedangkan algoritma stream cipher, ciphernya berasal dari hasil XOR antara setiap bit plaintext dengan kuncinya, atau mengenkripsi satu bit pada suatu waktu.

Gambar 2.2 menunjukkan stream cipher. Key merupakan kunci induk yang digunakan untuk membangkitkan aliran kunci acak semu (yang dibangkitkan dari Pseudo Random Sequence Generator). Kunci acak semu ini di-XOR-kan dengan plaintext untuk menghasilkan ciphertext.


3. Algoritma Asimetri 

Algoritma kriptografi asimetris adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan deskripsinya. Algoritma ini disebut algoritma kunci umum (public key algorithm) karena kunci untuk enkripsi dapat dibuat umum (public key) atau dapat diketahui setiap orang, tetapi kunci untuk deskripsi hanya diketahui oleh orang yang berwenang mengetahui data yang disandikan atau sering disebut kunci pribadi

4. Algoritma One Time Pad

Suatu algoritma dikatakan aman, apabila belum ada tidak ada cara untukmenemukan plaintext-nya[9]. Sampai saat ini, hanya algoritma One Time Pad (OTP) yang dinyatakan tidak dapat dipecahkan meskipun diberikan sumber daya yang tidak terbatas[2,9,11].

Prinsip enkripsi pada algoritma ini adalah dengan mengkombinasikan masing-masing karakter pada plaintext dengan satu karakter pada kunci[9]. Oleh karena itu, panjang kunci setidaknyaharus sama denganpanjang plaintext. Secara teori , adalah hal yang tak mungkin untuk mendeskripsi chipertext tanpa mengetahui kuncinya. Sebab jika kunci yang digunakan salah, akan diperoleh hasil yang salah juga, atau bukan plintext yang seharusnya. Kemudian setiap kuncinya hanya boleh digunakan untuk sekali pesan. Pengambilan kunci harus dilakukan secara acak supaya tidak dapat diterka lawan dan jumlah karakter kunci harus sebanyak jumlah karakter pesan.

Sebagai contoh : Sebuah pesan ”HELLO” akan dienkripsi dengan kunci”XMCKL” dengan perhitungan sebagai berikut, maka akan diperoleh hasil enkripsi”EQNVZ”

Pesan (plaintext) : 7(H) 4(E) 11(L) 11(L) 14(O)

Kunci : 23(X) 12(M) 2(C) 10(K) 11(L)

Pesan kunci : 30 16 13 21 25

Pesan + kunci mod 26 : 4(E) 16(Q 13(N) 21(V) 25(Z)

Untuk mendeskripsinya, maka dilakukan proses kebalikannya, yaitu.

Ciphertext : 4(E) 16(Q 13(N) 21(V) 25(Z

Kunci : 23(X) 12(M) 2(C) 10(K) 11(L)

Ciphertext - kunci : -19 4 11 11 14

Ciphertext - kunci mod 26 : 7(H) 4(E) 11(L) 11(L) 14(O)

Ketika tidak ada pihak lain yang ingin mencoba mendeskripsi ciphertext tersebur, tanpa mengetahui kuncinya, maka dapat diperoleh plaintext yang berbeda dari yang seharusnya, contohnya;

Ciphertext : 4(E) 16(Q 13(N) 21(V) 25(Z

Kunci yang mungkin : -19(T) 16(Q) 20(U) 17(R) 8(I)

Ciphertext - kunci : -15 0 -7 4 17

Ciphertext - kunci mod 26 : 11(L) 0(A) 19(T) 4(E) 17 R)


Pada deskripsi ini, diperoleh plaintext ”LATER”. Sistem pada contoh di atas


ANALISA DAN DESAIN SISTEM

1 Analisa Sistem

Gambaran Umum Sistem

Tugas Akhir yang berjudul “Penggunaan Algoritma Kriptografi One Time Pad Untuk Penyandian Data Alphanumerik (Studi Kasus Pada E-mail)” ini, sistem dibangun pada sisi client, dengan menggunakan mail server yang telah tersedia.

Ketika user menggunakan mail client ini, client tidak perlu memasukkan kunci untuk enkripsi ataupun deskripsi, client pada sisi pengirim cukup menuliskan message (e-mail) yang dikirimkan berupa alphanumerik (akan dianggap sebagai plaintext oleh mail server) dan client pada sisi penerima akan dikirim (bukan dalam keadaan terenkrip, tetapi sudah didekrip). 


1 Desain Sistem

Perancangan sistem yang digunakan merupakan sebuah perancangan perangkat lunak yang berorientasi pada proses dan prosedural, untuk itu perancangan dilakukan dengan membuat diagram aliran data yang bisa memodelkan proses yang terjadi dalam sistem. Selain dengan menggunakan Data Flow Diagram (Diagram Aliran Data), proses perancangan juga didukung oleh pembuatan kamus data serta spesifikasi proses.


2.Analisis Kebutuhan Sistem

Sistem yang dibangun pada Tugas Akhir ini dirancang sebagai mail client, karenanya sistem ini diharapkan dapat memenuhi kebutuhan-kebutuhan antara lain sebagai berikut:

- Mail client dapat mengirim e-mail (berupa data alphanumerik)
- E-mail dapat dienkrip pada saat dikirim dan didekrip pada saat diterima
- Mail server tidak dapat membaca isi e-mail (message body)
- E-mail dapat bertahan saat ada penyadap (tetap pada kondisi awal (terenkrip) tanpa ada perubahan, tidak dapat dibaca oleh pihak yang tidak berkepentingan)
- Sistem membutuhkan waktu yang relatif singkat untuk memproses message (enkrip-dekrip)


3.Diagram Aliran Data

Diagram Konteks

Diagram ini menjelaskan secara global bahwa sistem berinteraksi dengan sebuah entitas luar yang bernama user. Input user diawali dengan message yang nantinya dianggap sebagai plaintext oleh sistem, clockseed sebagai nilai awal pengacak untuk menghasilkan key-key yang acak, nilai ini diambil dari waktu sistem, dan passphrase yang merupakan authentifikasi untuk user masuk ke sistem.


DAD Level 1

Model proses yang lebih detail, yang merupakan subfungsi dari proses sebelumnya, didapatkan dari paritisi DAD level 0 (diagram konteks) di atas, yang kemudian disebut sebagai DAD level 1. DAD pada level ini menggambarkan inputan yang dimasukkan oleh user, yang selanjutnya inputan tersebut digunakan untuk proses-proses selanjutnya. Untuk lebih jelasnya dapat dilihat pada gambar 7.


DAD Level 2

Pada DAD level 1 terdapat 6 proses, yaitu proses generate simetrik key, signature, enkripsi message, enkripsi key, pengiriman dan dekripsi. Proses 4 dan 6 akan dipartisi lagi, sehingga terdapat 2 buah DAD level 2, yaitu DAD level 2 yang menjelaskan proses yang terjadi pada Proses 4 dan 6.


DAD Level 2 Proses 4

Proses yang keenpat dari DAD level 1 adalah menunjukkan identitas si pengirim dan memastikan keaslian e-mail. Masukkan yang diperlukan antara lain plaintext dan kunci privat pengirim. Untuk lebih jelasnya lihat gambar 8.


DAD Level 2 Proses 6

Proses 6 adalah proses dekripsi. Proses ini dilakukan ketika e-mail yang datang berupa ciphertext, sehingga harus didekrip dan divalidasi untuk dapat diterima dan dibaca user penerima. Masukkan pada proses ini adalah ciphertex, cipher simetrik key, dan sign. Kemudian akan dihasilkan keluaran berupa plaintext semula jika proses validasi berhasil dan valid.



IMPLEMENTASI DAN ANALISIS HASIL PENGUJIAN
1 Implementasi

Sistem ini diimplementasikan pada sistem Windows 2003 server. Sistem operasi ini digunakan karena mempunyai Graphical User Interface (GUI) atau antarmuka dengan basis grafis yang baik. Sehingga antarmuka tersebut lebih user-friendly jika dibandingkan dengan antarmuka berbasis teks.

2 Pengujian dan Analisa Hasil

Pengujian dilakukan untuk menguji apakah perangkat lunak yang dibuat sesuai tujuan yang diharapkan dan memenuhi kebutuhan sebagaimana ditetapkan pada tahap analisis dan menentukan parameter kebenaran hasil keluaran dari perangkat lunak. Ada beberapa jenis pengujian yang dilakukan dengan dibedakan berdasarkan aspek yang dijadikan acuan, seperti halnya ‘one time’ key serta kehandalan sistem.


Tujuan Pengujian

Pengujian yang dilakukan pada Tugas Akhir ini memiliki dua tujuan, yaitu:

1. Mengetahui kemungkinan perulangan key dan pengaruhnya terhadap sistem
2. Mengetahui kehandalan sistem OTP


Data yang akan diujicobalan merupakan data alphanumerik, yakni data berupa huruf ‘a’’ A’ sampai dengan ‘z’'’ Z’ dan angka ‘1’ sampai dengan ‘9’. Kunci yang digunakan (simetrik key) diperoleh dari generator pembangkit bilangan acak L’Ecuyer[12]. Hasil dari proses enkripsi atau ciphertext akan disimpan pada mail server, kemudian oleh mail server dikirimkan ke alamat tujuan. Sesampainya di tujuan, ciphertext tersebut langsung dapat membaca e-mailnya seperti keadaan ketika dikirim (plaintext).

Disini akan dianalisa bagaimana kemungkinan perulangan simetri key. Jumlah key yang diuji coba berkisar antara 1 sampai 188 buah key. Hal ini ditentukan dengan pertimbangan jumlah user yang akan login bersamaan pada satu sesi dan keterbatasan kemampuan perangkat keras yang digunakan dalam pengujian. Sedangkan untuk panjang key berkisar antara 21 sampai 215 bytes dengan pertimbangan bahwa untuk key akan kecil kemungkinannya hanya berjumlah 1 dan tentunya hal itu juga terlalu membahayakan keamanan, dan hanya 215 bytes atau 32768 bytes karena semakin besar ukuran message yang ditulis, maka ukuran keseluruhan e-mail akan semakin besar juga, sehingga harus dibatasi mengingat keterbatasan kemampuan perangkat keras yang digunakan untuk pengujian ini.

Grafik diatas memperlihatkan bahwa dengan range jumlah key dan panjang key yang telah disebutkan di atas kemungkinan untuk terjadinya pengulangan key adalah sebagai berikut:

• Pada range jumlah key 2-46 buah: key tidak pernah berulang
• Mulai terjadi pengulangan key ketika jumlah key yang digenerate 47 buah
• Key yang mengalami perulangan hanya ketika panjang key adalah 2 bytes

Mengingat syarat penting amannya suatu penyandian data adalah key yang hanya dipakai sekali , maka dengan kondisi seperti yang telah disebutkan di atas (jumlah key 1-188 dan panjang key 21-215), dilihat dari kemungkinan perulangan key-nya, sistem ini dapat dikatakan aman. Hal ini disebabkan karena pengulangan hanya terjadi ketika panjang key 2 bytes dan dimulai ketika jumlah key 47 buah, secara praktek hal seperti ini kemungkinan kejadiannya sangat kecil.


Ada beberapa yang tidak ditampilkan dalam makalah ini karena terlalu banyak dan memuat tabel serta gambar, untuk mendapatkannya secara lengkap dapat anda download di sini


DAFTAR PUSTAKA

[1] Chambers, Josyanne and Carl Morgan. September, 2003. COMS W4995 Introduction to Cryptography. Lecture 3: Introduction to Computational Security.

[3] Eisenman, Shane. September, 2003. COMS W4995 Introduction to Criptography, Lecture 2: Perfect Secrecy.

[4] Faisal. April 2003. Memahami Enkripsi. Faisal WebSite, Fisika ITB.

[7] Jack Febrian dan Farida Andayani. April 2002. Kamus Komputer dan Istilah Teknologi Informasi. Bandung: Informatika.

[9] Kurniawan, Yusuf. April 2004. Kriptografi Keamanan Internet dan jaringan Telekomunikasi. Bandung: Penerbit Informatika

[10] Medeiros, Breno de. 2004. Confidental Channels, Using encryption for network security. Florida State University.

[12] Rubin, Frank. 1997. One Time Pad Cryptography Protocols. Algorithms, And Source Code In C. Second Edition. USA: John Wilwy & Sons, Inc.

[13] Wagner, Neal R. 2002. The Laws of Cryptography: Perfect Cryptography: The One-Time Pad.

Tidak ada komentar:

Posting Komentar