BAB II. STUDI LITERATUR

dokumen-dokumen yang mirip
Pembangunan Add-on pada Mozilla Thunderbird untuk Enkripsi Surat Elektronik dengan Corrected Block Tiny Encryption Algorithm

BAB III. ANALISIS MASALAH

PEMBANGUNAN ADD-ON PADA MOZILLA THUNDERBIRD UNTUK ENKRIPSI SURAT ELEKTRONIK DENGAN CORRECTED BLOCK TINY ENCRYPTION ALGORITHM

Rancangan Aplikasi Pemilihan Soal Ujian Acak Menggunakan Algoritma Mersenne Twister Pada Bahasa Pemrograman Java

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

BAB V. IMPLEMENTASI DAN PENGUJIAN

BAB IV. ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM

BAB I PENDAHULUAN. 1.1 Latar Belakang

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH

DATA ENCRYPTION STANDARD (DES) STANDAR ENKRIPSI DATA. Algoritma Kriptografi Modern


BAB III ANALISA DAN DESAIN SISTEM

BAB I PENDAHULUAN 1.1. LATAR BELAKANG

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

PERBANDINGAN ALGORITMA KRIPTOGRAFI DES DENGAN ICE

Kriptografi. A. Kriptografi. B. Enkripsi

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

STUDI MENGENAI SERANGAN DIFFERENT CRYPTANALYSIS PADA ALGORITMA SUBSTITUTION PERMUATION NETWORK

Modul Praktikum Keamanan Sistem

BAB 2 TINJAUAN PUSTAKA

Bab 1 PENDAHULUAN Latar Belakang

Data Encryption Standard (DES)

BAB III ANALISIS DAN RANCANGAN

Outline. Sejarah DES Enkripsi DES Implementasi Hardware dan Software DES Keamanan DES

PERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD

BAB 1 PENDAHULUAN. khususnya internet sangatlah cepat dan telah menjadi salah satu kebutuhan dari

STUDI MENGENAI JARINGAN FEISTEL TAK SEIMBANG DAN CONTOH IMPLEMENTASINYA PADA SKIPJACK CIPHER

BAB IV HASIL DAN PEMBAHASAN

Algoritma Kriptografi Modern (Bagian 2)

IMPLEMENTASI ENKRIPSI DATA BERBASIS ALGORITMA DES

BAB I PENDAHULUAN 1.1 Latar Belakang

Ada 4 mode operasi cipher blok: 1. Electronic Code Book (ECB) 2. Cipher Block Chaining (CBC) 3. Cipher Feedback (CFB) 4. Output Feedback (OFB)

BAB 1 PENDAHULUAN 1.1. Latar belakang

BAB 2 LANDASAN TEORI

Analisis dan Perbandingan Algoritma Whirlpool dan SHA- 512 sebagai Fungsi Hash

DESAIN DAN IMPLEMENTASI PROTOKOL KRIPTOGRAFI UNTUK APLIKASI SECURE CHAT PADA MULTIPLATFORM SISTEM OPERASI

Pembangkitan Nilai MAC dengan Menggunakan Algoritma Blowfish, Fortuna, dan SHA-256 (MAC-BF256)

BAB 2 LANDASAN TEORI. 2.1 Pengertian Kriptografi

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB III ANALISA DAN PERANCANGAN

1. Pendahuluan. 1.1 Latar belakang

BAB 2 LANDASAN TEORI

IMPLEMENTASI ALGORITMA DATA ENCRYPTION STANDARD UNTUK PENGAMANAN TEKS DATA ENCRYPTION STANDARD ALGORITHM IMPLEMENTATION FOR TEXT SECURITY

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

BEA A New Block Cipher Algorithm

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

BAB III ANALISIS DAN PERANCANGAN SISTEM. permasalahan-permasalahan dan kebutuhan-kebutuhan yang diharapkan sehingga dapat

SEMINAR TUGAS AKHIR PERIODE JANUARI 2012

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

BAB III ANALISIS DAN DESAIN SISTEM

PERANCANGAN PEMBANGKIT TANDA TANGAN DIGITAL MENGGUNAKAN DIGITAL SIGNATURE STANDARD (DSS) Sudimanto

Studi dan Analisis Dua Jenis Algoritma Block Cipher: DES dan RC5

(pencurian, penyadapan) data. Pengamanan data dapat dilakukan dengan dua cara, yaitu steganography dan cryptography.

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah. Pada dasarnya sistem administrasi kependudukan merupakan sub sistem dari

Algoritma SAFER K-64 dan Keamanannya

Algoritma Rubik Cipher

RANCANGAN,IMPLEMENTASI DAN PENGUJIAN ZENARC SUPER CIPHER SEBAGAI IMPLEMENTASI ALGORITMA KUNCI SIMETRI

Penggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi

Fungsi Hash. Bahan Kuliah IF3058 Kriptografi. Rinaldi Munir/Teknik Informatika STEI-ITB

Aplikasi Enkripsi Short Message Service (SMS) Berbasis Android Menggunakan Metode XXTEA

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

BAB II TINJAUAN PUSTAKA

STUDI DAN MODIFIKASI ALGORITMA BLOCK CHIPER MODE ECB DALAM PENGAMANAN SISTEM BASIS DATA. Arief Latu Suseno NIM:

BAB III ANALISA DAN PERANCANGAN. 3.1 Analisa Berikut tahap-tahap awal dalam pembuatan:

SISTEM PENGAMANAN PESAN SMS MENGGUNAKAN INTERNASIONAL DATA ENCRYPTION ALGORITHM

Bab 3. Metode dan Perancangan Sistem

Key Strengthening Menggunakan KD5 Eko Budhi Susanto 1

Security Sistem Informasi

BAB III ANALISIS DAN DESAIN SISTEM

PENYANDIAN MENGGUNAKAN ALGORITMA KRIPTOGRAFI WAKE (WORD AUTO KEY ENCRYPTION)

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

SKRIPSI ENKRIPSI TEKS MENGGUNAKAN ALGORITMA TWOFISH

Dasar-Dasar Keamanan Sistem Informasi

IMPLEMENTASI ALGORITMA TEA DAN FUNGSI HASH MD4 UNTUK ENKRIPSI DAN DEKRIPSI DATA

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

BAB III ANALISIS PENYELESAIAN MASALAH

ABSTRACT. Data security is very important at this moment, because many hackers or

BAB I PENDAHULUAN. pengiriman data elektronik melalui dan media lainnya yang sering

BAB III ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM. KriptoSMS akan mengenkripsi pesan yang akan dikirim menjadi ciphertext dan

PENGAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA STREAM CIPHER SEAL

BAB III ANALISIS DAN PERANCANGAN

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

Yama Fresdian Dwi Saputro

ANALISIS PERBANDINGAN KINERJA ALGORITMA TWOFISH DAN TEA (TINY ENCRYPTION ALGORITHM) PADA DATA SUARA

Vol. 3, No. 2, Juli 2007 ISSN PERANAN KRIPTOGRAFI DALAM KEAMANAN DATA PADA JARINGAN KOMPUTER

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Kriptografi Kunci Simetris Dengan Menggunakan Algoritma Crypton

Modifikasi SHA-1 Untuk Mengurangi Hash collision

BAB III ANALISA DAN PERANCANGAN

Kriptografi Elliptic Curve Dalam Digital Signature

BAB 1 PENDAHULUAN Latar Belakang

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN DESAIN SISTEM

Transkripsi:

BAB II. STUDI LITERATUR Pada bab ini, akan dipaparkan teori-teori yang mendasari pengerjaan tugas akhir ini. Secara umum, teori yang dibahas adalah mengenai kriptografi, XXTEA, dan format penulisan surat elektronik. II.1 Kriptografi Kriptografi adalah ilmu menganalisis dan menguraikan kode dan sandi rahasia dan kriptogram (sebuah potongan tulisan dalam kode atau sandi rahasia) [PRI08]. Tujuan utama kriptografi adalah memungkinkan 2 (dua) orang, direpresentasikan sebagai Alice dan Bob, untuk berkomunikasi melalui saluran tidak aman dalam sebuah cara sehingga lawannya, Oscar, tidak mampu mengerti isi percakapan mereka. Saluran tidak aman yang dimaksud dapat berupa jalur telepon atau jaringan komputer. Informasi yang Alice ingin kirim ke Bob, disebut sebagai plaintext, dapat berupa teks berbagai bahasa, data numerik atau lainnya strukturnya dibebaskan kombinasinya. Alice mengenkripsi plaintext, menggunakan sebuah kunci, dan mengirimkan ciphertext hasil melalui saluran komunikasi. Oscar yang mencuri dengar ciphertext dalam saluran komunikasi tidak bisa menentukan plaintext-nya, tetapi jika Bob mengetahui kunci enkripsinya, Bob dapat mendekripsi ciphertext dan merekonstruksi plaintext yang bersesuaian. Konsep di atas dideskripsikan secara formal menggunakan notasi matematis berikut [STI95]: Sebuah kriptosistem adalah sebuah tuple berukuran 5 (lima), yaitu (P,C,κ,ε,D), dimana kondisi berikut dipenuhi: 1. P adalah kumpulan terbatas dari plaintext yang mungkin. 2. C adalah kumpulan terbatas dari ciphertext yang mungkin. 3. κ, ruang kunci, adalah kumpulan terbatas dari kunci yang mungkin. II-1

II-2 4. Untuk setiap K є κ, terdapat sebuah aturan enkripsi e K є ε dan sebuah aturan dekripsi yang bersesuaian d K є D. Masing-masing e K : P C dan d K : C P adalah fungsifungsi sehingga d K (e K (x)) = x untuk setiap plaintext x є P Properti utama dari notasi di atas adalah properti 4. Disebutkan bahwa jika sebuah plaintext x dienkripsi menggunakan e K dan ciphertext yang dihasilkan lalu didekripsi menggunakan d K, plaintext awal x akan dihasilkan. Alice dan Bob akan menggunakan protokol berikut dalam menjalankan sebuah kriptosistem spesifik: 1. Alice dan Bob memilih sebuah kunci random K є κ. Hal ini dilakukan ketika mereka berada di tempat yang sama dan tidak sedang diamati oleh Oscar, atau ketika mereka mempunyai akses ke saluran komunikasi yang aman, dimana mereka dapat berada di tempat yang berbeda. 2. Suatu saat, Alice ingin mengirimkan pesan pada Bob melalui saluran tidak aman. Pesan dimisalkan sebagai sebuah string berbentuk x = x 1 x 2 x n untuk sebuah integer n 1, dimana masing-masing simbol plaintext x i є P, 1 i n. 3. Masing-masing x i dienkripsi menggunakan aturan enkripsi e K yang spesifik menggunakan kunci yang telah ditentukan sebelumnya, yaitu K. Lalu, Alice menghitung y i = e K (x i ), 1 i n, dan string ciphertext yang dihasilkan berbentuk y = y 1 y 2 y n dikirimkan melalui saluran tidak aman. 4. Ketika Bob menerima ciphertext y 1 y 2 y n, dia mendekripsi ciphertext tersebut menggunakan aturan dekripsi d K, menghasilkan string plaintext awal, x 1 x 2 x n. Lihat Gambar II-1 sebagai ilustrasi dari saluran komunikasi yang digunakan.

II-3 Gambar II-1 Ilustrasi Saluran Komunikasi Keterangan Gambar II-1: 1. X : plaintext, pesan yang akan dikirimkan. 2. Y : ciphertext, pesan yang telah terenkripsi. 3. K : kata kunci yang digunakan untuk enkripsi X. 4. Alice : pengirim pesan. 5. Bob : penerima pesan. 6. Oscar : kriptanalis, orang yang berusaha memecahkan ciphertext. 7. Encrypter : program enkripsi plaintext dengan kata kunci enkripsi. 8. Decrypter : program dekripsi ciphertext dengan kata kunci dekripsi. 9. Key source : sumber generasi kata kunci yang random. 10. Secure channel: saluran komunikasi aman yang digunakan untuk mengirimkan kata kunci. Jelas terlihat bahwa fungsi enkripsi e K adalah fungsi injektif (contoh, satu-ke-satu), jika tidak, dekripsi tidak dapat dilakukan. Sebagai contoh, jika y = e K (x 1 ) = e K (x 2 ) dimana x 1 x 2, maka Bob tidak dapat mengetahui apakah y harus didekripsi menjadi x 1 atau x 2.

II-4 II.2 Block Cipher Block cipher adalah sebuah tipe algoritma enkripsi kunci simetris yang mentransformasikan sebuah blok plaintext berukuran tetap (teks yang tidak terenkripsi) menjadi blok ciphertext (teks yang terenkripsi) dengan ukuran yang sama [RSA09]. Transformasi ini berlangsung dengan menggunakan kunci rahasia masukan dari user. Proses dekripsi dilakukan dengan menjalankan transformasi kebalikan ke blok ciphertext dengan menggunakan kunci rahasia yang sama. Ukuran 1 (satu) blok yang selalu tetap dinamakan block size dan untuk sebagian besar block cipher, block size sebesar 64 bits. Sebagai contoh, misalkan terdapat sebuah plaintext x. Plaintext tersebut dapat dilihat sebagai kumpulan blok: x = x 1 x 2 x n dimana x m, 1 m n, merupakan satuan blok dari ciphertext yang berukuran 64 bits. Ketika user mengenkripsi x, proses enkripsi dilakukan per blok sehingga menghasilkan ciphertext y yang dapat dilihat sebagai berikut: y = y 1 y 2 y n = e K (x 1 ) e K (x 2 ) e K (x n ) Gambar II-2 Skema Enkripsi dan Dekripsi Block Cipher di bawah menampilkan proses enkripsi dan dekripsi block cipher secara umum [MUN06]. Gambar II-2 Skema Enkripsi dan Dekripsi Block Cipher [ MUN06]

II-5 Keterangan Gambar II-2: 1. Diagram kiri menggambarkan proses enkripsi, sedangkan diagram kanan proses dekripsi. 2. E : proses enkripsi dengan masukan plaintext X dan kunci K yang menghasilkan ciphertext Y. 3. D : proses dekripsi dengan masukan ciphertext Y dan kunci K yang menghasilkan plaintext X. II.3 Jaringan Feistel Horst Feistel (1915-1990) adalah seorang peneliti non-militer pertama dalam bidang kriptografi dan dapat dinilai sebagai pendiri dari dasar block cipher modern [EXH09]. Pada 1973, dia mempublikasikan sebuah artikel dengan judul Cryptography and Computer Privacy dalam sebuah majalah bernama Scientific American 1, yang di dalamnya dia berusaha untuk mencakup aspek terpenting mesin enkripsi dan memperkenalkan sesuatu yang sekarang dikenal dengan nama jaringan Feistel. Pemodelan dengan Jaringan Feistel kemudian menjadi terkenal digunakan sebagai basis untuk banyak skema algoritma enkripsi. Gambar II-3 Skema Penyandian dari Feistel Cipher 1 Isi dari majalah Scientific American dapat dibaca di http://www.prism.net/user/dcowley/docs.html

II-6 Keterangan Gambar II-3: 1. L n : bagian kiri dari blok plaintext yang akan dienkripsi. 2. R n : bagian kanan dari blok plaintext yang akan dienkripsi. 3. K n : kata kunci yang digunakan untuk enkripsi pada putaran ke-n. 4. F : fungsi transformasi, yang tidak perlu memiliki kebalikan sehingga dapat berupa fungsi yang rumit. Model jaringan Feistel pada Gambar II-3 adalah sebagai berikut [MUN06]: 1. Bagi blok yang panjangnya n bit menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya n/2 (hal ini mensyaratkan n harus genap). 2. Definisikan cipher blok berulang dimana hasil dari putaran ke-i ditentukan dari hasil putaran sebelumnya, yaitu: L i = R i+1 R i = L i 1 f(r i 1, K i ) yang dalam hal ini, i = 1, 2, r (r adalah jumlah putaran). K i = upa-kunci (subkey) pada putaran ke-i f = fungsi transformasi (di dalamnya terdapat fungsi substitusi, permutasi, dan/atau ekspansi, kompresi). II.4 Fungsi Hash SHA Fungsi hash adalah fungsi yang menerima masukan string yang panjangnya sembarang, lalu mentransformasikannya menjadi string keluran yang panjangnya tetap (umumnya berukuran jauh lebih kecil daripada ukuran string semula) [MUN06]. Tujuan dari fungsi hash [MUN06], yaitu: 1. Menjaga integritas data, dimana fungsi hash sangat peka terhadap perubahan pesan. 2. Menghemat waktu pengiriman ketika melakukan pengecekan validitas sebuah file dengan melakukan perbandingan message digest antara file salinan dengan file asli.

II-7 3. Menormalkan panjang data yang beraneka ragam, misalkan penyimpanan password. Password masukan user dapat beragam ukurannya, tetapi dengan menggunakan fungsi hash, panjang message digest-nya akan selalu sama. Terdapat beberapa fungsi hash yang ada [MUN06], yaitu: 1. MD2, MD4, MD5. 2. Secure Hash Function (SHA), yang terdiri dari SHA0, SHA1, dan SHA2 (memiliki varian berupa SHA224, SHA256, SHA384, dan SHA512). 3. Snefru. 4. N-hash. 5. RIPE-MD, dan lain-lain. Fungsi hash SHA1 dikembangkan oleh National Institute of Standards and Technology (NIST) dan National Security Agency (NSA) melalui publikasi Federal Information Processing Standards (FIPS) 180: Secure Hash Standard (SHS) pada Mei 1993. SHA1 digunakan untuk menghitung representasi singkat dari sebuah pesan atau file [FAQ09]. Ketika sebuah pesan dengan panjang lebih kecil dari 2 64 bits sebagai input, SHA1 menghasilkan sebuah keluaran yang dinamakan message digest yang berukuran 160 bit. Setiap perubahan pada input akan menghasilkan perubahan message digest dengan probabilitas tinggi. SHA1 dikatakan aman karena fungsi hash ini secara penghitungan tidak dapat dicari sebuah pesan yang bersesuaian dengan message digest yang diberikan. II.5 Corrected Block Tiny Encryption Algorithm Pada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini. Secara umum, algoritma yang digunakan adalah block cipher. II.5.1 Definisi Corrected Block Tiny Encryption Algorithm, untuk selanjutnya disebut sebagai XXTEA, adalah sebuah algoritma penyandian yang sederhana, tapi kuat yang berbasis

II-8 iterasi Feistel dan menggunakan banyak ronde untuk mendapatkan keamanan [MOV08]. XXTEA dirancang berupa program kecil yang dapat berjalan pada banyak mesin dan mengenkripsi dengan aman. Algoritma ini menggunakan banyak iterasi dibandingkan program yang rumit sehingga algoritma ini dapat diterjemahkan ke dalam banyak bahasa pemrograman dengan mudah. XXTEA juga merupakan sebuah algoritma enkripsi efektif yang mirip dengan DES 2 yang dapat digunakan untuk aplikasi web yang membutuhkan keamanan. Ketika menggunakan algoritma ini, sebuah perubahan dari teks asal akan mengubah sekitar setengah dari teks hasil tanpa meninggalkan jejak dimana perubahan berasal. XXTEA beroperasi pada blok yang berukuran tetap yang merupakan kelipatan 32 bits dengan ukuran minimal 64 bits. Jumlah dari putaran lengkap bergantung pada ukuran blok, tetapi terdapat minimal 6 (bertambah terus hingga 32 untuk ukuran blok yang lebih kecil). Algoritma ini menggunakan lebih banyak fungsi pengacakan yang menggunakan kedua blok tetangganya dalam pemrosesan setiap kata dalam blok. Untuk kemudahan penggunaan dan keamanan secara umum, XXTEA lebih tepat digunakan ketika dapat dipakai untuk kondisi berikut: 1. Perubahan satu bit pada plaintext akan mengubah sekitar setengah dari total bits dari seluruh blok tanpa meninggalkan jejak dimana perubahan dimulai. 2. Walaupun terdapat perubahan yang teratur pada plaintext (misalkan nomor pesan), hanya pesan yang sama yang akan memberikan ciphertext yang sama dan kebocoran informasi minimal. 3. Jika tidak memungkinkan untuk memasukkan pesan yang panjang, pesan tersebut dapat dipecah menjadi beberapa bagian yang masing-masing berukuran 60 kata. 2 Keterangan lebih lengkap mengenai DES dapat dibaca di http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf

II-9 II.5.2 Algoritma Penyandian Gambar II-4 Satu Iterasi dalam XXTEA Keterangan simbol: 1. X r, X r-1, X r+1 : blok plaintext, dimana r adalah urutan blok yang sedang diacak. 2. q : jumlah iterasi yang sedang dilakukan. 3. DELTA : q dikalikan dengan konstanta yang bernilai 0x9E3779B. 4. K r : blok kata kunci ke-r, dimana r sama dengan keterangan di atas. 5. <<n : pergeseran bit ke kiri sebanyak n kali. 6. >>n : pergeseran bit ke kanan sebanyak n kali. 7. : operasi XOR. 8. : operasi penambahan.

II-10 Keterangan warna: 1. Kotak berwarna merah : input user. 2. Kotak berwarna hijau : output program. Gambar II-4 Satu Iterasi dalam XXTEA menampilkan proses pengacakan yang dilakukan pada satu iterasinya. Proses iterasi dalam XXTEA dilakukan dalam 2 kali iterasi yang dilakukan secara bersarang. Pada iterasi teratas, iterasi dilakukan sebanyak q, dimana q = 6 + 52/n dengan n 1 dimana n adalah jumlah blok dari plaintext. Lalu, pada iterasi selanjutnya, iterasi dilakukan sebanyak n kali. Proses pengacakan yang dilakukan dalam satu iterasi XXTEA adalah sebagai berikut: 1. Algoritma akan mengacak blok ke-r dari plaintext. 2. Proses akan mengambil x r-1, x r+1, DELTA, dan kata kunci sebagai input. 3. Pengacakan pertama: x r-1 <<2 di-xor-kan dengan x r+1 >>5. 4. Pengacakan kedua: x r-1 >>3 di-xor-kan dengan x r+1 <<4. 5. Hasil yang didapat dari tahap 4 dan 5 ditambahkan. 6. Pengacakan ketiga: x r-1 di-xor-kan dengan D yang merupakan perkalian antara konstanta DELTA yang bernilai 0x9E3779B dengan jumlah iterasi pertama yang telah dilakukan. 7. Pengacakan keempat: x r+1 di-xor-kan dengan salah satu blok kata kunci, yaitu blok ke-(r XOR D>>2). 8. Hasil yang didapat dari tahap ke 6 dan 7 ditambahkan. 9. Hasil yang didapat dari tahap 5 dan 8 di-xor-kan. 10. Hasil yang didapat pada tahap 9 ditambahkan ke blok plaintext ke-r. II.5.3 Detail Sandi Tabel II-1 menjelaskan detail algoritma XXTEA secara singkat mengenai panjang kata kunci, ukuran masing-masing blok, struktur algoritma, dan banyaknya ronde dalam satu proses pengacakan.

II-11 Tabel II-1 Detail Sandi No Variabel Keterangan 1 Panjang kunci 128 bits 2 Ukuran blok Tidak tetap, bergantung pada panjang teks asal 3 Struktur Jaringan Feistel 4 Ronde Tidak tetap, 6-32 ronde Feistel (sekitar 3-16 putaran) bergantung pada panjang blok. II.6 Kata Kunci Pada subbab ini, akan dibahas definisi kata kunci, kekuatan kata kunci, dan cara pengukurannya. Semakin kuat kata kunci yang digunakan dalam enkripsi sebuah plaintext, semakin sulit sebuah ciphertext untuk dipecahkan. Selain kerumitan algoritma enkripsi yang digunakan, kerumitan kata kunci juga menentukan keamanan ciphertext yang didapatkan. II.6.1 Definisi Kata kunci adalah sekumpulan karakter yang dimasukkan seorang pengguna untuk mendapatkan akses ke sumber informasi yang diproteksi [MIC08]. Terdapat sebuah dilema dalam pemilihan dan penggunaan kata kunci, dimana pengguna tidak mudah, atau bahkan tidak mampu mengingat kata kunci yang kuat dan kata kunci yang diingat justru kata kunci yang mudah ditebak. Kata kunci yang baik harus mengandung karakter campuran atau karakter khusus, dan tidak boleh mengandung kata-kata yang dapat ditemukan dalam kamus [LAW08]. Kata kunci dapat berupa gabungan huruf kapital atau huruf kecil. Sebuah teknik yang bagus untuk memilih kata kunci adalah dengan menggunakan huruf pertama dari sebuah frase, tapi jangan mengambil frase yang umum diketahui, seperti An apple a day keeps the doctor away (Aaadktda). Contoh: ambil frase yang bersifat pribadi dan tidak umum digunakan, seperti My dog s first name is Rex (MdfniR). Selain itu, kata kunci yang baik memiliki panjang minimal 8 (delapan) karakter dan harus

II-12 mengandung sedikitnya 2 (dua) karakter bukan huruf. Disarankan agar kata kunci selalu diganti minimal sekali sebulan. II.6.2 Pengukuran Kekuatan Kata Kunci Melihat adanya sejumlah saran yang dapat digunakan dalam membangun kata kunci yang baik, kata kunci dapat diukur derajat kekuatannya. Pengukuran kekuatan kata kunci dilakukan dengan melakukan penilaian terhadap kata kunci masukan. Terdapat sejumlah faktor penilaian yang dapat digunakan [GEE08], yaitu: 1. Panjang karakter kata kunci minimal 8. 2. Gunakan campuran huruf kapital atau huruf kecil. 3. Gunakan minimal 1 angka. 4. Gunakan karakter khusus (!,@,#,$,%,^,&,*,?,_,~). 5. Gunakan prinsip Leet, yaitu penggunaan karakter non-alfabet untuk menggantikan huruf yang memiliki kemiripan yang dekat atau perubahan pengucapan, seperti penggantian huruf s yang terakhir dengan z atau (c)ks untuk x [NAT08]. Untuk masing-masing faktor penilaian di atas, diberikan sebuah nilai tambahan jika faktor tersebut dipenuhi. Dengan menggunakan faktor-faktor penilaian di atas, sebuah kata kunci masukan akan dinilai derajat kekuatannya. II.7 Surat Elektronik Surat elektronik adalah sebuah sistem komunikasi elektronik dunia yang di dalamnya sebuah pengguna komputer dapat membuat pesan pada sebuah terminal yang nantinya dapat diregenerasi di terminal penerima ketika penerima login [PRI09]. Sistem pengiriman surat elektronik modern didasarkan pada model store-and-forward yang di dalamnya server surat elektronik menerima, meneruskan, atau menyimpan pesan atas nama pengguna yang hanya terkoneksi ke infrastruktur surat elektronik dengan menggunakan komputer pribadinya.

II-13 Gambar II-5 Proses Pengiriman Surat Elektronik menjelaskan skema sederhana proses pengiriman surat elektronik dari Alice sebagai pengirim sampai Bob sebagai penerima. Gambar II-5 Proses Pengiriman Surat Elektronik Ketika Alice menekan tombol Send pada mail user agent (MUA)-nya, terjadi tahapan berikut: 1. MUA memformat pesan menggunakan protokol berkaitan untuk dikirimkan ke mail transfer agent (MTA) lokal, yang dimiliki oleh Internet Service Provider (ISP) Alice. 2. MTA melihat alamat tujuan dalam surat elektronik, yang pada contoh di atas adalah bob@b.org. 3. DNS server untuk domain b.org, yaitu ns.b.org, merespon dengan memberikan daftar MX yang menampilkan server mail untuk domain tersebut, yaitu mx.b.org, yang dimiliki oleh ISP Bob. 4. smtp.a.org mengirimkan pesan ke mx.b.org menggunakan protokol surat elektronik yang akan dimasukan ke mailbox Bob. 5. Ketika Bob menekan tombol Read, MUA akan mengambil pesan tersebut.

II-14 II.8 MIME MIME adalah format standar internet yang memperluas format surat elektronik untuk mendukung [MHO09]: 1. Teks dalam set karakter selain ASCII, biasanya dalam format encoding Base64 3. 2. Non-text attachments. 3. Badan pesan dalam banyak bagian. 4. Informasi header dalam non-ascii set karakter. Contoh surat elektronik dalam format MIME: MIME-version: 1.0 Content-type: multipart/mixed; boundary="frontier" This is a message with multiple parts in MIME format. --frontier Content-type: text/plain This is the body of the message. --frontier Content-type: application/octet-stream Content-transfer-encoding: base64 PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcy BpcyB0aGUg Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg== --frontier Keterangan: 1. Sebuah surat elektronik dapat dibangun dalam beberapa bagian yang dinyatakan oleh Content-type: multipart/mixed; dan masingmasing bagian dibatasi oleh sebuah boundary yang dinyatakan oleh boundary="frontier". 2. Bagian Content-type: text/plain This is the body of the message. --frontier 3 Keterangan mengenai Base64 dapat dibaca di referensi [AAR09].

II-15 menyatakan bagian body dari surat elektronik yang dibangun dalam tipe text/plain. 3. Bagian selanjutnya Content-type: application/octet-stream menyatakan attachment dari surat elektronik dalam bentuk binary file. II.9 Mekanisme Add-on pada Mozilla Thunderbird Pada subbab I.1 telah dijelaskan sebelumnya, add-on adalah sebuah fitur yang disediakan pada Mozilla Thunderbird untuk memungkinkan developer menambah fungsionalitas Thunderbird. Dalam pembangunannya, add-on dibagi menjadi 2 (dua) bagian penting, yaitu modul antarmuka dan modul controller. Pertama, developer membangun antarmuka add-on. Pembangunan antarmuka menggunakan bahasa XUL. XUL adalah Extensible Markup Language (XML) grammar yang menyediakan komponen dasar antarmuka, seperti button, menu, toolbar, tree, dan lain-lain. Aksi user yang dikaitkan dengan fungsionalitas dibangun dengan menggunakan Javascript. Untuk mengembangkan Thunderbird, pengembang memodifikasi antarmuka Thunderbird dengan menambahkan atau memodifikasi komponen dasarnya. Pengembang menambahkan komponen dasar dengan memasukan elemen DOM XUL ke window Thunderbird dan memodifikasinya dengan menggunakan scripts dan event handlers yang sesuai [DEV09]. Scripts dan event handlers dapat dibangun dengan menggunakan bahasa C dan Javascript. Pada tugas akhir ini, scripts dan event handlers dibangun dengan Javascript.