KRIPTOGRAFI
Disusun untuk memenuhi salah satu tugas mata kuliah Komunikasi Data Dosen : Achmad Syafa’at,Amd,S.Kom
Disusun oleh Ahmad Soleh Afif (D1A.07.0207)
[email protected] [email protected]/javanusco.w .id/javanusco.wordpress.co ordpress.com m
JURUSAN SISTEM INFORMASI
FAKULTAS ILMU KOMPUTER
UNIVERSITAS SUBANG Jalan R.A Kartini Km.3 Telp. (0260) 411415 Fax.(0260) 415677
Januari 2009
KATA PENGANTAR Puji dan syukur penulis haturkan kepada Allah Swt yang telah memberi rahmat dan hidayahnya sehingga penulis dapat menyelesaikan tugas pembuatan makalah ini sembari juga menyampaikan salam kepada Nabiyallah Muhammad Saw yang syafa’atnya kita harapkan di hari akhir. Penulis menyusun makalah ini dengan tujuan untuk memenuhi salah satu tugas mata kuliah Komunikasi Data dan juga penyusun mengharapkan agar makalah ini dapat bermanfaat dan menambah pengetahuan bagi penulis secara khusus juga kepada para pembaca secara umum. Penulis ingin mengucapkan terima kasih kepada berbagai pihak yang telah membantu dalam penyelesaian makalah ini, diantaranya kepada Bapak Achmad Syafa’at yang telah membimbing penulis dalam mata kuliah Komunikasi Data juga kepada kedua orang tuaku yang telah mendukung dalam bidang materil maupun yang lainnya lainnya juga kepada pihak yang telah membantu dalam pembuatan makalah ini yang tidak penulis sebutkan satu persatu. Akhirnya penulis menyadari makalah masih jauh dari kata baik, oleh karena itu penulis mengharapkan kritik dan saran yang membangun guna perbaikan di m asa yang akan datang.
Subang, Januari 2009 Penulis,
DAFTAR ISI
Kata Pengantar .........................................................................................................................................ii Daftar Isi...................................................................................................................................................iii Bab I Pendahuluan 1.1.Latar Belakang.......................................................................................................................4 1.2.Rumusan Masalah..................................................................................................................4 1.3.Tujuan Penulisan...................................................................................................................4 1.4.Batasan Masalah....................................................................................................................4 Bab II Tinjauan Pustaka 2.1.Kriptografi.............................................................................................................................5 2.2.Algoritma Simetri.............................................................................................................. 5-6 2.3.Algoritma Asimetri................................................................................................................6 2.4.Algoritma One Time Pad................................................................................................. 6-7 Bab III Pembahasan 3.1.Algoritma Simetri/Nirsimetri................................................................................................8 3.1.1.DES (Data Encription Standard)...................................................................................8-10 3.1.2.AES (Advanced Encription Standard)........................................................................10-11 3.1.3.RC4………………………………………………………………………………….11-12 3.1.4.Algoritma A5………………………………………………………………………..12-13 3.1.5.Algoritma El Gamal…………………………………………………………………13-14 4.Fungsi Hash……………………………………………………………………………..14-16 5.Caesar Chipper…………………………………………………………………………..16-17 6.Super Enkripsi…………………………………………………………………………...17-18 7.Hill Chipper………………………………………………………………………….......18-20 8.Vigenere Chipper………………………………………………………………………..20-21 9.PlayFair Chipper…………………………………………………………………………21-22 Bab IV Kesimpulan…………………………………………………………………………………..…23 Daftar Pustaka…………………………………………………………………………………………..24
BAB I PENDAHULUAN 1.1.Latar Belakang 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. 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 dua syarat umtuk mengimplementasikan suatu system enkripsi yang aman. 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, dan dikenal dengan sebutan ‘unbreakable’ algorithm’. 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. Pada tugas akhir ini memadukan algoritma OTP dengan algoritma kriptografi RSA sebagai algoritma ‘standar’ pembuatan kunci public dan MD5 sebagai algoritma standar untuk signature. 1.2.Rumusan Masalah Semakin sulit suatu algoritma, semakin banyak proses komputasi yang diperlukan sehingga semakin banyak waktu yang diperlukan untuk mengeksekusinya. Sedangkan user tidak pernah memikirkan, seberapa sulit algoritma yang digunakan, yang penting kerahasiaan data mereka terjamin. Oleh karena itu, tugas khir ini mencoba menggunakan algoritma kriptografi One Time Pad (OTP), algoritma yangsederhana namun handal. 1.3.Tujuan Penulisan • Algoritma OTP dapat dianalisa sifat-sifatnya (kelebihan dan kekurangan) baik dalam aspek ‘one time’ key dan kehandalan. • Algoritma OTP ini dapat dipadukan dengan algoritma RSA dan MD5 sehingga dapat menjadi suatu alternative system enkripsi yang lebih baik daripada system yang menggunakan algoritma OTP saja. • Sistem ini dapat menjadi salah satu alternative untuk penyandian data pada e-mail dengan kebutuhan proses dan waktu yang relative singkat. 1.4.Batasan Masalah • Data yang digunakan berupa data alphanumeric • Mail Server yang digunakan adalah Kerio Mail Server versi 5.5.0. • Penyandian data dilakukan di sisi web server • Pertukaran data dilakukan pada jaringan computer local • Tidak membahas keamanan traffic pada jaringan, misalnya ceil loss • Panjang public key dan private key untuk algoritma RSA 1024 bit (128 byte) • Modul SRA dan MD5 menggunakan Java Cryptography Extention (ICE) yang terintegrasi pada Java Software Development Kit 1.5.03 • Mail Client dibangun menggunakan Java Mail API versi 1.3.3_91 dan JavaBean Activation Framework (JAF) 1.0.2.
BAB II TINJAUAN PUSTAKA 2.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. 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. Algoritma Kriptografi selalu terdiri dari dua bagian, 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 disebut kriptosistem(cryptosystem atau cryptographic system). Secara sederhana proses kriptografi dapat digambarkan sebagai berikut:
Plaintext
Enkripsi
Ciphertext
Kunci
Dekripsi
Plaintext
Kunci
Gbr.1. Proses Enkripsi/Dekripsi Sederhana Aritmatika 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. Seluruh kemungkinan nilai operasi XOR ini dapat dilihat pada table di bawah ini. Tabel 1. Operasi XOR a
0 0 1 1
b 0 1 0 1
a
⊕
b
0 1 1 0
2.2.Algoritma Simetri
Algoritma kriptografi berdasarkan kuncinya dibedakan menjadi dua, yaitu algoritma simetri (konvensional) dan algoritma asimetri (kunci public). Pada algoritma simetri, kunci enkripsi yang digunakan sama dengan kunci dekripsinya, sehingga sering one-key, private-key atau single-key.
Operasi ini dilakukan dalam mod 257d. Hasilnya di-XOR-kan dengan konstanta c=01100011. Masukan 0 dipetakan ke 0 pula. Secara formal[1], proses subtitusi dapat dinyatakan sebagai berikut : Di mana permutasi Φ dari grup simetri 256 elemen dipecah menjadi 3 permutasi Φ 1, L dan Φ 2 Contoh : Masukan kotak-S berupa x = 98hex = 100110002 = x7 + x4 +x3, maka cari x1. x.x-1 mod m(x) = 1. Diperoleh x-1 = 2Ax. Lalu x-1.L + c = 46x. Sehingga bila masukan kotak-S x = 98x, maka keluarannya adalah 46x. Operasi shiftrow dilakukan dengan menggeser baris kedua ke kiri satu byte, baris ketiga kekiri dua byte, baris ketiga ke kiri tiga byte, dan baris pertama tidak digeser. Operasi Mixcolumn dilakukan dengan mengambil setiap kolom yang diperlakukan sebagai vektor kolom GF(28) dan dikalikan dengan
3.1.3.RC4 Termasuk ke dalam cipher aliran ( stream cipher ) Dibuat oleh Ron Rivest (1987) dari Laboratorium RSA dan RC adalah singkatan dari Ron’s Code). Versi lain megatakan Rivest Cipher . Digunakan sistem keamanan seperti: - protokol SSL (Secure Socket Layer ). - WEP (Wired Equivalent Privacy) - WPA (Wi-fi Protect Access) untuk nirkabel RC4 awalnya rahasia Pada September 1994, RC4 dikirim secara anonim ke milis Cypherpunks Lalu dikirim ke newsgroup sci.crypt dan menyebar di internet Karena telah diketahui orang, RC4 bukan lagi rahasia dagang Status sekarang, implementasi tidak resmi adalah legal, tapi tidak boleh menggunakan nama RC4. Maka digunakan nama ARCFOUR untuk menghindari masalah trademark . RC4 membangkitkan aliran kunci (keystream) yang kemudian di-XOR-kan dengan plainteks RC4 memproses data dalam ukuran byte, bukan dalam bit. Untuk membangkitkan aliran kunci, cipher menggunakan status internal yang terdiri dari: Permutasi angka 0 sampai 255 di dalam larik S , S , …, 0 1 S . Permutasi merupakan fungsi dari kunci U dengan panjang variabel. Dua buah pencacah indeks, i 255 dan j Algoritma RC4: Inisialisasi larik S : S = 0, S = 1, …, S = 255 0 1 255 for i 0 to 255 do S[i] i endfor
Jika panjang kunci U < 256, lakukan padding sehingga panjang kunci menjadi 256 byte. Contoh: U = “abc” (3 byte) Padding: U = “abcabcabc…” sampai panjang U mencapai 256 byte Lakukan permutasi nilai-nilai di dalam larik S : j
0
for i
j
0 to 255 do
(j + S[i] + U[i]) mod 256
swap(S[i], S[j]) endfor
Bangkitkan aliran-kunci dan lakukan enkripsi: i
0
j
0
for idx
0 to PanjangPlainteks – 1 do
i
(i + 1) mod 256
j
(j + S[i]) mod 256
swap(S[i], S[j]) t
K c
(S[i] + S[j]) mod 256
S[t]
K
(* keystream *)
P[idx]
endfor
Sampai saat ini tidak ada yang dapat memecahkan RC4 sehinggat dapat dikatakan sangat kuat. Terdapat laporan versi kunci 40 bit dapat dipecahkan secara brute force. Kelemahan: Padding dapat menyebabkan kemungkinan nilai-nilai di dalam larik S ada yang sama. RC4 juga mudah diserang dengan known-plaintext attack , dengan cara meng-XOR-kan dua set byte cipherteks (kelemahan umum pada cipher -aliran) Cara kerja : - Tiap kali sebuah bit dibutuhkan, semua bit di dalam register digeser 1 bit ke kanan - Bit paling kiri (b ) dihitung sebagai fungsi bit-bit lain di dalam register tersebut. n - Keluaran dari register geser adalah 1 bit (yaitu bit b yang tergeser) 1 3.1.4.Algoritma A5 Algoritma A5 adalah cipher aliran yang digunakan untuk mengenkripsi transmisi sinyal percakapan dari standard telepon seluler GSM (Group Special Mobile ). Sinyal GSM dikirim sebagai barisan frame. Satu frame panjangnya 228 bit dan dikirim setiap 4,6 milidetik. A5 digunakan untuk untuk menghasilkan aliran-kunci 228-bit yang kemudian di- XOR-kan dengan frame. Kunci eksternal panjangnya 64 bit.
Pembangkitan KeyStream Algoritma A5 yang digunakan di negara-negara Eropa terdiri dari tiga LSFRs dari tiga panjang yang berbeda. Pada gambar 10, kombinasi tiga panjang LSFRs adalah 64 bits. Output dari tiga register yang di LSFRs tersebut di XOR kan secara bersamaan dan hasil XOR menggambarkan satu keystream bit.LSFR tersebut memiliki panjang 19, 23, dan 23 bit dengan beberapa feedback yang polinomial. Ketiga register tersebut dijadwalkan berdasarkan pada bit tengah pada register. Register dijadwalkan jika bit tengahnya sesuai dengan nilai mayoritas dari tiga bit tengah register lainnya.. Contoh, jika bit tengah dari tiga register tersebut masing-masing 1,1 dan 0, maka dua register pertama dijadwalkan, atau contoh lain bit tengah masing-masing register adalah 0, 1 dan 0 maka register pertama dan ketiga dijadwalkan. Karena itu, maka minimal dua register dijadwalkan bersamaan dalam setiap putaran.
Konstruksi LSFR pada A5 Tiga LSFRs pada gambar diatas diinisialisasi dengan kunci sesi dan jumlah frame. Mekanisme kerjanya yaitu, pertama 64 bit Kc di load ke dalam register bit demi bit, LSB (Left Significant Bit/ bit paling kiri) dari kunci di XORkan dengan masing-masing LSFRs. Semua register dijadwalkan secara bersamaan (aturan mayoritas penjadwalan seperti dijelaskan di atas dinonaktifkan). Semua bit dalam Kc yaitu sejumlah 64 bit di load ke dalam register secara bersamaan. Bit-bit yang menyatakan jumlah frame sebanyak 22 bit juga diload ke dalam register secara bersamaan, kecuali jika aturan penjadwalan iaktifkan dari sekarang. Setelah semua register telah diinisialisasi dengan Kc dan jumlah frame, register tersebut dijadwalkan seratus kali dan pembangkitan keystream bit dihentikan. Hal ini dilakuka sewaktu mencampur frame number dan mengunci material bersamaan. Sekarang 228 bit dari keluaran keystream dibangkitkan. Keystream sejumlah 228 bit tersebut dapat dikategorikan denga 114bit digunakan untuk mengenkripsi frame dari MS ke BTS dan 114 bit sisanya digunakan untuk mengenkripsi frame dari BTS ke MS. Setelah itu algoritma A5 diinisialisasi kembali dengan kunci sesi, Kc, yang sama dan jumlah frame berikutnya. Sejak pertama kali jaringan GSM ada, algoritma selain A5 telah didesain dan diimplementasikan. Motivasi utamanya karena algoritma enkripsi A5 yang orisinil sangat sulit untuk diterapkan di timur tengah. Sehingga algoritma A5 yang orisinil diganti namanya dengan A5/1. Algoritma lain yang termasuk di dalamnya yaitu A5/0, yang berarti tidak ada enkripsi sama sekali, dan A5/2, algoritma udara lemah. Secara umum, algoritma A5 setelah A5/1 memiliki nama A5/x. Sebagian besar algoritma A5/x lebih lemah dibandingkan dengan algoritma A5/1, yang mana waktu kompleksitasnya 254 seperti yang telah diperlihatkan di atas. Perkiraan waktu kompleksitas A5/2 lebih rendah yaitu 216. Enkripsi ini digunakan di USA. Sedangkan untuk algoritma A5 yang lain tidak terapat fakta tentang mereka, sehingga yang diketahui hanya perkiraan dan asumsi. Dari uraian di atas dapat disimpulkan karakteristik A5 yaitu : • A5 adalah stream cipher yang terdiri dari tiga clock yang dikontrol oleh LSFRs dengan derajat 19, 22, dan 23 • Kontrol clock difungsikan dengan melihat bit-bit tengah dari ketiga register. • Jumlah dari masing-masing derajat register tersebut adalah 64 bit. Kunci sesi sejumlah 64 bit digunakan untuk menginisialisasi register. • Jumlah frame sebanyak 22 bit dimasukkan ke dalam register. • Dua keystream dengan panjang 114 bit dibuat untuk tiap frame, yang mana di XORkan dengan saluran atas dan bawah 3.1.5.Algoritma EL Gamal Algoritma ElGamal, ditemukan oleh ilmuwan Mesir Taher ElGamal pada tahun 1984, merupakan algoritma kriptografi kunci publik. Algoritma kunci publik menggunakan kunci yang berbeda untuk proses transformasinya. Untuk proses enkripsi menggunakan kunci publik, sedangkan proses dekripsi menggunakan kunci privat. Sebaliknya untuk proses tanda tangan digital menggunakan kunci privat sedangkan untuk verifikasi tanda tangan digital menggunakan kunci publik.Algoritma ElGamal mendasarkan kekuatannya pada fakta matematis kesulitan menghitung logaritma diskrit. Masalah logaritma diskrit adalah dengan memperhatikan hal berikut ini : 1. Jika diberikan suatu bilangan a, maka menghitung b ≡ αa (mod p) adalah mudah. 2. Tetapi jika diberikan suatu bilangan b, maka untuk menemukan a sehingga b ≡ αa (mod p) adalah permasalahan yang sulit. Selanjutnya bilangan a disebut sebagai logaritma diskrit terhadap b dengan basis α, dinyatakan dengan a = log α b.
DAFTAR PUSTAKA [1] 3GPP Task Force, Specification of the 3GPP Confidentialty and I ntegrity Algorithms. Document 2: KASUMI Algorithm Specification, 1999. [2] David Cereso’s Weblog, “On GSM Security”, URL:http://www.cerezo.name/weblog/ [3] GSM Wrold, “GSM calls even more secure thanks to new A5/3 Algorithm”, URL: http://www.gsmworld.com/news/press_2002/press_15.shtml [4] Matsui, Mitsuru, Toshio Tokita, MISTY, KASUMI and Camellia CipherAlgorithm Development , 2002. [5] Preneel, Bart, “Mobile Network Security”, 2004. [6] Security Algorithms Group of Experts (SAGE), Report on the Evaluation of 3GPP Standard Confidentialty and Integrity Algorithms, 2000.