BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas...

15
II-1 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.

Transcript of BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas...

Page 1: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

II-1

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.

Page 2: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

II-2

4. Untuk setiap K є κ, terdapat sebuah aturan enkripsi eK є ε dan sebuah aturan dekripsi

yang bersesuaian dK є D. Masing-masing eK : P → C dan dK : C → P adalah fungsi-

fungsi sehingga dK (eK (x)) = x untuk setiap plaintext x є P

Properti utama dari notasi di atas adalah properti 4. Disebutkan bahwa jika sebuah

plaintext x dienkripsi menggunakan eK dan ciphertext yang dihasilkan lalu didekripsi

menggunakan dK, 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 = x1x2…xn

untuk sebuah integer n ≥ 1, dimana masing-masing simbol plaintext xi є P, 1 ≤

i ≤ n.

3. Masing-masing xi dienkripsi menggunakan aturan enkripsi eK yang spesifik

menggunakan kunci yang telah ditentukan sebelumnya, yaitu K. Lalu, Alice

menghitung yi = eK (xi), 1 ≤ i ≤ n, dan string ciphertext yang dihasilkan

berbentuk

y = y1y2…yn

dikirimkan melalui saluran tidak aman.

4. Ketika Bob menerima ciphertext y1y2…yn, dia mendekripsi ciphertext tersebut

menggunakan aturan dekripsi dK, menghasilkan string plaintext awal, x1x2…xn.

Lihat Gambar II-1 sebagai ilustrasi dari saluran komunikasi yang digunakan.

Page 3: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

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 eK adalah fungsi injektif (contoh, satu-ke-satu),

jika tidak, dekripsi tidak dapat dilakukan. Sebagai contoh, jika y = eK (x1) = eK (x2)

dimana x1 ≠ x2, maka Bob tidak dapat mengetahui apakah y harus didekripsi menjadi

x1 atau x2.

Page 4: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

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 = x1x2…xn

dimana xm, 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 = y1y2…yn = eK(x1) eK(x2)… eK(xn)

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]

Page 5: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

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

Page 6: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

II-6

Keterangan Gambar II-3:

1. Ln : bagian kiri dari blok plaintext yang akan dienkripsi.

2. Rn : bagian kanan dari blok plaintext yang akan dienkripsi.

3. Kn : 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:

Li = Ri+1

Ri = Li – 1 ⊕ f(Ri – 1, Ki)

yang dalam hal ini,

i = 1, 2,… r (r adalah jumlah putaran).

Ki = 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.

Page 7: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

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 264 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

Page 8: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

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 DES2

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

Page 9: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

II-9

II.5.2 Algoritma Penyandian

Gambar II-4 Satu Iterasi dalam XXTEA

Keterangan simbol:

1. Xr, Xr-1, Xr+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. Kr : 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.

Page 10: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

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 xr-1, xr+1, DELTA, dan kata kunci sebagai input.

3. Pengacakan pertama: xr-1<<2 di-XOR-kan dengan xr+1>>5.

4. Pengacakan kedua: xr-1>>3 di-XOR-kan dengan xr+1<<4.

5. Hasil yang didapat dari tahap 4 dan 5 ditambahkan.

6. Pengacakan ketiga: xr-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: xr+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.

Page 11: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

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

Page 12: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

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.

Page 13: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

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 [email protected].

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.

Page 14: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

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

Base643.

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+VGhpcyBpcyB0aGUg Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg== --frontier—

Keterangan:

1. Sebuah surat elektronik dapat dibangun dalam beberapa bagian yang

dinyatakan oleh “Content-type: multipart/mixed;” dan masing-

masing 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].

Page 15: BAB II. STUDI LITERATUR - Perpustakaan Digital · PDF filePada subbab ini, akan dibahas definisi, algoritma penyandian, dan detail sandi yang akan digunakan dalam tugas akhir ini.

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.