BAB II LANDASAN TEORI Pada bab ini, akan dijelaskan tentang teori-teori dan konsep-konsep yang relevan dengan pokok permasalahan dalam penelitian. Landasan teori digunakan sebagai pedoman dan penjelas untuk mempermudah pembahasan serta penyelesaian masalah. 2.1 Aplikasi Aplikasi adalah perangkat lunak komputer yang memanfaatkan kemampuan komputer untuk melakukan tugas yang diinginkan user. Pada umumnya, pengertian aplikasi adalah suatu alat terapan yang difungsikan secara khusus dan terpadu sesuai dengan kemampuan yang dimiliki aplikasi tersebut. Contoh utama aplikasi adalah pengolah data, lembar kerja, dan pemutar media. Aplikasi dapat digolongkan menjadi beberapa kelas, antara lain: 1. Perangkat lunak perusahaan (enterprise), 2. Perangkat lunak infrastruktur perusahaan, 3. Perangkat lunak informasi kerja, 4. Perangkat lunak media dan hiburan, 5. Perangkan lunak pendidikan, 6. Perangkat lunak pengembangan media, 7. Perangkat lunak rekayasa produk. 10 11 2.2 Dokumen Teks Kata dokumen berasal dari bahasa latin “docere” yang berarti mengajar. Dokumen meliputi semua sumber, baik dalam bentuk tulisan, gambar, film, dan sebagainya, yang merupakan catatan peristiwa yang telah berlalu. Teks merupakan data yang terdiri dari karakter-karakter yang menyatakan kata-kata atau lambang-lambang dalam bentuk tulisan yang digunakan manusia untuk berkomunikasi. Contoh teks adalah karakter-karakter pada lembar kerja. Jadi, dokumen teks merupakan sumber-sumber tertulis dalam bentuk karakter-karakter yang menyatakan kata-kata yang digunakan dalam komunikasi. Dokumen teks mempunyai beragam ekstensi, seperti .txt, .doc, .text, .ODT dan sebagainya. Dalam pembuatan aplikasi pengamanan dokumen teks ini, yang digunakan adalah dokumen teks yang berekstensi .txt dan .doc. File berekstensi .txt biasanya berisi teks yang tidak diformat, misalnya tidak bercetak tebal atau bercetak miring. Ekstensi ini merupakan format untuk text editor sederhana. File dengan ekstensi .txt bersifat universal sebab dapat dibuka oleh berbagai program yang dapat membaca teks. Umumnya program yang digunakan untuk membuka file dengan ekstensi .txt adalah Notepad. Ekstensi .doc merupakan ekstensi bagi dokumen-dokumen yang dibuat dengan Microsoft Word. Dokumen dengan ekstensi .doc dapat berisi teks yang telah diformat. File .doc untuk setiap versi Microsoft Word berbeda. Format untuk Microsoft Word sebelum Word 97 berbeda dengan format setelah Microsoft Word 97. 12 2.2.1 Notepad Notepad adalah aplikasi text editor sederhana untuk Microsoft Windows yang umum digunakan. Aplikasi ini telah dimasukkan dalam semua versi Microsoft Windows sejak Windows 1.0 pada tahun 1985. Notepad dapat membuka file yang sedang dibuka prosesor, user, ataupun komputer lainnya. Notepad mengedit dokumen yang isinya hanya teks, tanpa format apapun. Ekstensi dokumen hasil editannya adalah .txt. Awalnya, fungsi-fungsi yang terdapat pada Notepad hanya fungsi sederhana, seperti mencari teks. Fungsi seperti replace ditambahkan pada versi-versi selanjutnya. Notepad juga dapat digunakan untuk mengedit teks markup, seperti HTML. Akan tetapi, oleh karena banyaknya fitur yang tidak dimiliki Notepad, para web developer cenderung menggunakan aplikasi lainnya. Kekurangan pada Notepad adalah tidak memiliki fungsi-fungsi tertentu, misalnya memformat teks. Meskipun demikian, banyak orang merasa interface Notepad yang sederhana lebih cocok dan mudah digunakan untuk pengeditan dasar dan sederhana pada teks. 2.2.2 Microsoft Word Microsoft Word adalah perangkat lunak pengolah data (word processor) yang dibuat perusahaan Microsoft. Diterbitkan pertama kali pada tahun 1983 dengan nama Multi-Tool Word untuk Xenix. Untuk Microsoft Windows, Microsoft Word dikembangkan pada tahun 1989. 13 Banyak ide dan konsep Microsoft Word diambil dari Bravos, pengolah kata berbasis grafik pertama yang dikembangkan di Xerox. Pencipta Bravo, Charles Simonyi, pindah ke Microsoft pada tahun 1981. Pada 1 Februari 1983, pengembangan Multi-Tool Word dimulai. Setelah bernama Microsoft Word, program ini diterbitkan untuk IBM PC. Word merupakan program pertama yang dapat menampilkan cetak tebal dan cetak miring pada IBM PC. Karena Word banyak menggunakan mouse yang saat itu tidak lazim, mereka menawarkan paket Word-with-Mouse. Beberapa fitur unggulan dari Microsoft Word adalah AutoCorrect, MailMerge, Autopage Index, Macro, Auto Formating, HTML editor, Booklet Layout, dan What You See Is What You Get (WYSIWIG). Word 2010 mendukung format XML dan ODF. Dokumen Microsoft Word berekstensi .doc. 2.3 Pengamanan Pengamanan adalah perbuatan mengamankan. Masalah keamanan merupakan salah satu aspek penting dalam era informasi ini. Pertukaran informasi didukung oleh perkembangan yang pesat dalam bidang teknologi komputer, yang disebut dengan end user computing. Kemajuan ini membawa banyak keuntungan bagi kehidupan manusia. Akan tetapi, kemajuan ini juga mendatangkan dampak negatif, seperti kejahatan komputer yang meliputi pencurian, penipuan, pemerasan, kompetitif, dan sebagainya. Jika informasi jatuh ke pihak lain, akan menimbulkan kerugian bagi pemilik informasi. 14 Aspek-aspek keamanan komputer meliputi: 1. Authentication, informasi yang diterima benar-benar berasal dari orang yang dikehendaki. 2. Integrity, informasi yang diterima tidak dimodifikasi pihak lain. 3. Nonrepudiation, pengirim tidak dapat menyangkal bahwa dia yang mengirim informasi tersebut. 4. Authority, informasi tidak dapat dimodifikasi pihak yang tidak berhak atas akses tersebut. 5. Confidentiality, usaha menjaga informasi dari pihak yang tidak berhak. 6. Privacy, keamanan dari data yang bersifat pribadi. 7. Availability, ketersediaan informasi ketika dibutuhkan. Penyerangan dapat menghambat atau meniadakan akses ke informasi. 8. Access control, pengaturan akses informasi yang biasanya berhubungan dengan authentication dan privacy. Aspek-aspek ancaman keamanan antara lain: 1. Interruption, merupakan ancaman terhadap availability, dimana informasi dan data dirusak atau dihapus. 2. Interception, merupakan ancaman terhadap kerahasiaan, berupa penyadapan informasi atau pengaksesan oleh pihak yang tidak berhak. 3. Modifikasi, merupakan ancaman terhadap integritas. 4. Fabrication, merupakan ancaman terhadap integritas dengan memalsukan informasi. 15 Keamanan komputer memiliki cabang-cabang, seperti keamanan database, keamanan data, keamanan komputer, keamanan perangkat komputer, keamanan aplikasi, keamanan jaringan, dan keamanan informasi. Langkahlangkah keamanan komputer meliputi aset, analisis resiko, perlindungan, alat, dan prioritas. Istilah-istilah bagi mereka yang menggunakan teknologi untuk kejahatan adalah hacker dan cracker. Perbedaannya antara hacker dan cracker ditentukan oleh etika, moral, dan integritas dari pelaku. Pelaku yang bersifat merusak disebut cracker. Beberapa macam serangan dalam kejahatan komputer antara lain: 1. Intrusion: penyerang dapat menggunakan sistem komputer yang lain. 2. Intelligence: para hacker atau cracker yang melakukan kejahatan untuk mengumpulkan informasi yang berkaitan dengan sistem target. 3. Logic bomb: program yang dimasukkan ke dalam komputer yang akan mengeksekusi perintahnya jika menemukan kondisi sistem yang sesuai. 4. Sniffer: program untuk melakukan pencurian atau penyadapan data. 5. Scanning: kegiatan yang dilakukan hacker, cracker, dan cryptanalyst untuk mengidentifikasi sistem yang akan menjadi target serangan. Tujuannya adalah untuk mencari kelemahan yang dapat dimanfaatkan sebagai permulaan dari serangan. 6. Back door: akses khusus yang dibuat programmer agar dapat masuk ke dalam sistem. 16 Kriptografi, enkripsi, dan dekripsi merupakan dasar dari keamanan komputer. Pengamanan informasi dengan menggunakan enkripsi memiliki dampak yang luar biasa terhadap kehidupan seseorang. Misalnya mengenai Queen Mary, ratu Skotlandia, yang dipancung setelah surat terenkripsinya yang berisikan rencana pembunuhan Ratu Elizabeth I berhasil dipecahkan oleh seorang pemecah kode. 2.4 Kriptografi Berikut adalah penjabaran mengenai kriptografi, yaitu ilmu untuk mengamankan pesan dengan menggunakan enkripsi dan dekripsi. 2.4.1 Definisi Kriptografi Kriptografi (cryptography) berasal dari Bahasa Yunani, yaitu “cryptós” dan “gráphein”. Cryptós berarti rahasia, sedangkan gráphein memiliki arti tulisan. Jadi, ditinjau dari segi asal kata, kriptografi berarti tulisan rahasia. Menurut Rinaldi Munir dalam bukunya yang berjudul “Kriptografi”, kriptografi adalah “ilmu dan seni untuk menjaga keamanan pesan.”1 Kriptografi juga dapat diartikan sebagai “ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi.”2 1 2 Rinaldi Munir, Kriptografi [ Bandung – Informatika Bandung, 2006], hal. 2. Ibid. hal. 2. 17 Pada masa-masa awal sejarah kriptografi, setiap orang memiliki cara tersendiri untuk merahasiakan pesan mereka, sehingga kriptografi pada masa itu dipandang sebagai suatu seni. Seiring dengan perkembangan yang terjadi, kriptografi menjadi suatu disiplin ilmu yang mempelajari teknik-teknik dalam merahasiakan pesan yang dapat dirumuskan ke dalam suatu metode formal. 2.4.2 Terminologi Kriptografi Dalam kriptografi, terdapat beberapa terminologi atau istilah yang akan sering ditemukan, antara lain: 1. Pesan, Plain Text, dan Cipher Text Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti, sering disebut sebagai plain text. Pesan dapat berupa teks, citra, bunyi atau suara, video, ataupun berkas biner lainnya. Untuk menjaga kerahasiaan pesan agar tidak dapat dibaca oleh pihak lain, maka dilakukan proses penyandian pada pesan. Hasil penyandian disebut cipher text atau kriptogram (cryptogram). Cipher text harus dapat diubah kembali menjadi plain text agar pesan tetap dapat dibaca. 2. Pengirim dan Penerima Pengirim dan penerima pesan merupakan entitas yang terlibat dalam proses pertukaran pesan. Entitas dapat berupa orang, mesin, dan sebagainya. 18 3. Enkripsi dan Dekripsi Enkripsi (encryption) atau enciphering adalah proses penyandian plain text menjadi cipher text. Proses pengembalian cipher text menjadi plain text disebut dekripsi (decryption) atau deciphering. Enkripsi dan dekripsi dapat diterapkan pada pesan yang disimpan atau yang dikirim. 4. Cipher dan Kunci Cipher atau algoritma kriptografi merupakan aturan untuk proses enkripsi dan dekripsi, atau fungsi matematika yang digunakan dalam kedua proses tersebut. Beberapa cipher menggunakan algoritma yang berbeda untuk enkripsi dan dekripsi. Dasar dari algoritma kriptografi adalah, enkripsi dan dekripsi merupakan pemetaan himpunan plain text dan himpunan cipher text. Jika P merupakan plain text dan C adalah cipher text, maka fungsi enkripsi E memetakan P ke C. Fungsi dekripsi D memetakan C ke P. Dalam kriptografi modern, kunci (key) digunakan sebagai parameter dalam proses enkripsi dan dekripsi. Algoritma yang digunakan tidak dirahasiakan, tetapi kerahasiaan kunci harus tetap dijaga. Kunci yang digunakan dapat berupa deretan bilangan ataupun string. Gambar 2.1 Skema enkripsi dan dekripsi3 3 Ibid. hal. 6. 19 5. Sistem Kriptografi Sistem kriptografi (cyptosystem) merupakan sistem yang dibentuk oleh kriptografi. Sistem kriptografi terdiri atas algoritma kriptografi, semua kemungkinan plain text dan cipher text, dan kunci. 6. Penyadap Orang yang mencoba menangkap pesan selama proses transmisi dinamakan penyadap (eavesdropper). Tujuannya adalah untuk mendapat informasi sebanyak mungkin mengenai sistem kriptografi yang digunakan agar dapat memecahkan cipher text. 7. Kriptanalisis dan kriptologi Kriptanalisis (cryptanalisis) merupakan kebalikan dari kriptografi, yaitu ilmu memecahkan cipher text tanpa mengetahui kunci yang digunakan. Pelakunya dinamakan kriptanalis. Sedangkan kriptologi (cryptology) merupakan studi tentang kriptografi dan kriptanalisis. 2.4.3 Tujuan Kriptografi Tujuan dari kriptografi adalah untuk memberikan keamanan dalam hal: 1. Kerahasiaan (confidentiality) 2. Integritas data (data integrity) 3. Otentikasi (authentication) 4. Nirpenyangkalan (non-repudiation) 20 2.4.4 Sejarah Kriptografi Sejarah kriptografi diawali dari bangsa Mesir yang menggunakan hieroglyph pada piramid 4000 tahun yang lalu, dan terus berkembang. Yang memberikan kontribusi paling penting dalam perkembangan kriptografi adalah kalangan militer, karena rumitnya teknik enkripsi dan dekripsi yang digunakan dalam pengiriman pesan. Selain kalangan militer, kelompok yang juga berperan dalam sejarah kriptografi adalah kalangan diplomatik, penulis buku harian, dan pecinta (lovers). Sebagian besar dari sejarah kriptografi adalah sejarah kriptografi klasik yang menggunakan kertas dan pensil atau dengan bantuan alat sederhana dalam pengenkripsian. Algoritma kriptografi klasik dikelompokkan menjadi algoritma transposisi dan algoritma substitusi. Algoritma transposisi mengubah susunan huruf dalam pesan, seperti yang digunakan oleh tentara Sparta di Yunani pada permulaan 400 SM dengan menggunakan alat bernama scytale. Sedangkan algoritma substitusi mengganti setiap huruf dengan huruf yang lain, yang digunakan oleh Julius Caesar dalam Caesar cipher. Pada Perang Dunia ke II, pemerintah Nazi membuat mesin enkripsi Enigma yang mampu mengenkripsi dengan cara yang rumit. Namun Enigma cipher berhasil dipecahkan oleh pihak Sekutu. Kriptografi modern menggunakan cipher yang lebih kompleks, misalnya DES dan RSA yang merupakan algoritma yang paling dikenal dalam sejarah kriptografi modern. Kriptografi modern beroperasi pada string biner. 21 2.4.5 Kriptografi Kunci-Simetri dan Nirsimetri Berdasarkan kunci yang digunakan, kriptografi dibedakan menjadi kriptografi kunci-simetri dan kriptografi kunci-nirsimetri. Pada kriptografi kunci-simetri (symmetric-key cryptography), enkripsi dan dekripsi menggunakan kunci yang sama, disebut juga dengan kriptografi kunci privat, kriptografi kunci rahasia, dan kriptografi konvensional. Keamanan sistem ini terletak pada kerahasiaan kunci, dan hingga tahun 1976 merupakan satu-satunya sistem kriptografi yang digunakan. Kriptografi modern yang menggunakan sistem ini antara lain DES, Triple DES, dan AES. Kelemahan dari kriptografi kunci-simetri adalah pengirim dan penerima harus memiliki kunci yang sama. Pengirim harus mempunyai cara yang aman dalam memberikan kunci kepada penerima pesan. Sistem kriptografi nirsimetri (asymmetric-key cryptography), atau kriptografi kunci publik, menggunakan kunci yang berbeda untuk enkripsi dan dekripsi. Kunci enkripsi bersifat publik, tetapi kunci dekripsi hanya diketahui penerima pesan dan bersifat rahasia. Pesan dienkripsi dengan kunci publik penerima, dan hanya dapat didekripsi oleh penerima pesan. Contoh algoritma kriptografi kunci publik antara lain RSA, Elgamal, dan DSA. Keuntungan dari kriptografi kunci publik adalah tidak perlu mendistribusikan kunci privat, sedangkan kunci publik dapat dikirim melalui saluran apapun. Keuntungan kedua adalah jumlah kunci yang digunakan dapat ditekan. Kunci yang dibutuhkan hanya dua buah, yaitu kunci publik bagi para pengirim untuk mengenkripsi pesan dan kunci privat untuk mendekripsi pesan. 22 2.4.6 Serangan Terhadap Kriptografi Serangan terhadap kriptografi dapat dikelompokkan dengan berbagai cara, yaitu berdasarkan keterlibatan penyerang, berdasarkan banyaknya informasi yang diketahui, dan berdasarkan teknik yang digunakan dalam menemukan kunci. Berdasarkan keterlibatan penyerang dalam komunikasi, serangan dibagi menjadi serangan pasif, dengan menyadap pertukaran pesan tanpa terlibat secara langsung, dan serangan aktif. Berdasarkan banyaknya informasi yang diketahui oleh kriptanalis, serangan dikelompokkan menjadi ciphertext-only attack, known-plaintext attack, chosen-plaintext attack, chosen-ciphertext attack, dan chosen-text attack. Berdasarkan teknik yang digunakan dalam menemukan kunci, serangan dibedakan menjadi exhaustive attack dan analytical attack. Exhaustive attack mencoba semua kemungkinan kunci. Sedangkan analytical attack menganalisis algoritma kriptografi untuk mengurangi kemungkinan kunci. 2.5 Teori Bilangan Teori bilangan (number theory) merupakan teori dasar dalam memahami kriptografi. Bilangan yang dimaksud hanya bilangan bulat (integer), yang tidak mempunyai pecahan desimal. Teori bilangan yang akan dibahas dalam skripsi ini adalah teori-teori yang merupakan dasar dari algoritma RSA, seperti algortima Euclidean, relatif prima, aritmetika modulo, bilangan prima, dan fungsi Totient Euler. 23 2.5.1 Algoritma Euclidean dan Relatif Prima Algoritma Euclidean merupakan cara untuk menemukan PBB (Pembagi Bersama Terbesar). Algoritma ini ditemukan oleh Euclid, matematikawan Yunani, dan dituliskan dalam bukunya yang berjudul “Element”. Jika m dan n adalah bilangan bulat tidak negatif, dengan m ≥ n, maka algoritma Euclidean dapat digunakan untuk mencari PBB dari kedua bilangan tersebut. Jika m ≤ n, maka nilai m dan n ditukarkan terlebih dahulu. Algoritma Euclidean: 1. Jika n = 0, maka m adalah PBB(m, n); stop. Jika n ≠ 0, lanjut ke langkah 2. 2. Bagi m dengan n dan misalkan sisa pembagian tersebut sebagai r. 3. Ganti nilai m dengan n dan nilai n dengan r. Ulang kembali dari awal. Menurut Rinaldi Munir dalam bukunya yang berjudul “Matematika Diskrit”, definisi relatif prima adalah “dua buah bilangan bulat a dan b dikatakan relatif prima (relatively prime) jika PBB(a, b) = 1.”4 2.5.2 Aritmetika Modulo Aritmetika modulo (modular arithmetic) berperan penting dalam kriptografi. Operator yang digunakan adalah mod, yang memberikan sisa pembagian. Misalnya, 21 mod 5 = 1, berarti 21 dibagi 5 memberikan sisa 1. 4 Rinaldi Munir, Matematika Diskrit [ Bandung – Informatika Bandung, 2010], hal. 190. 24 Operasi mod dapat dinyatakan sebagai berikut: “Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m (dibaca “a modulo m”) memberikan sisa jika a dibagi dengan m. Dengan kata lain, a mod m = r sedemikian hingga a = mq + r, dengan 0 ≤ r < m.”5 Bilangan m disebut modulus atau modulo. Hasil aritmetika modulo m terletak dalam himpunan {0, 1, 2, …, m - 1}. Jika a mod m = 0, maka a adalah kelipatan dari m. Jika dua buah bilangan bulat, misalkan a dan b, mempunyai sisa yang sama jika dibagi dengan bilangan m, maka a dan b adalah kongruen dalam modulo m. Lambangnya adalah a ≡ b (mod m), dengan ‘≡’ dibaca ‘kongruen’. Definisi kekongruenan yaitu “Misalkan a dan b adalah bilangan bulat dan m adalah bilangan > 0, maka a ≡ b (mod m) jika m habis membagi a – b.”6 Kekongruenan a ≡ b (mod m) dapat ditulis menjadi a = b + km, dimana k adalah bilangan bulat. Menurut definisi kekongruenan, jika a ≡ b (mod m), berarti m habis membagi (a – b), maka terdapat bilangan bulat k sedemikian hingga a – b = km atau a = b + km. Berdasarkan definisi aritmetika modulo, a mod m = r dapat ditulis sebagai a ≡ r (mod m). Sifat-sifat perhitungan pada aritmetika modulo adalah: 1. Jika a ≡ b (mod m) dan c adalah sembarang bilangan bulat, maka: a. (a + c) ≡ (b + c) (mod m) b. ac ≡ bc (mod m) c. ap ≡ bp (mod m) untuk bilangan bulat tidak negatif p. 5 6 Ibid. hal. 191. Ibid. hal. 192. 25 2. Jika a ≡ b (mod m) dan c ≡ d (mod m), maka: a. (a + c) ≡ (b + d) (mod m) b. ac ≡ bd (mod m) Jika a dan m relatif prima dan m > 1, maka inversi dari a (mod m) dapat dicari dengan aa-1 ≡ 1 (mod m). Kekongruenan ini dapat ditulis dalam hubungan aa-1 = 1 + km, sehingga a-1 dapat ditemukan dengan a-1 = (1 + km) / a, dimana k adalah bilangan bulat yang menghasilkan a-1 sebagai bilangan bulat. Aritmetika modulo cocok digunakan dalam kriptografi karena: 1. Nilai-nilai aritmetika modulo berada dalam himpunan berhingga, yaitu dari 0 hingga modulus m-1, maka hasil perhitungan tidak akan berada di luar himpunan. 2. Aritmetika modulo bekerja dengan bilangan bulat, sehingga tidak akan terjadi kehilangan informasi akibat pembulatan. 2.5.3 Bilangan Prima Bilangan bulat positif yang mempunyai peran penting dalam ilmu komputer adalah bilangan prima. Bilangan prima adalah “bilangan bulat positif yang lebih besar dari 1 yang hanya habis dibagi oleh 1 dan dirinya sendiri.”7 Barisan bilangan prima dimulai dari 2, yaitu 2, 3, 5, 7, 11, 13, dan seterusnya. Kecuali 2, seluruh bilangan prima merupakan bilangan ganjil. Untuk bilangan selain prima disebut bilangan komposit (composite). 7 Ibid. hal. 200. 26 Teorema penting mengenai bilangan prima adalah teorema fundamental aritmetik (The Fundamental Theorem of Arithmetic), yang berbunyi: “Setiap bilangan bulat positif yang lebih besar atau sama dengan 2 dapat dinyatakan sebagai perkalian satu atau lebih bilangan prima.”8 Untuk menguji apakah n merupakan bilangan prima atau komposit, bagikan n dengan sejumlah bilangan prima, mulai dari 2, 3, …, hingga bilangan prima ≤ √n. Jika n habis dibagi salah satu bilangan prima, maka n adalah bilangan komposit. Jika n tidak habis dibagi semua bilangan prima, maka n bilangan prima. Keprimaan dapat diuji dengan teorema Fermat (Fermat’s Little Theorem), yakni “Jika p adalah bilangan prima dan a adalah bilangan bulat yang tidak habis dibagi dengan p, yaitu PBB(a, p) = 1, maka ap-1 ≡ 1 (mod p).”9 Kekurangan pada teorema Fermat adalah adanya bilangan prima semu (pseudoprimes) terhadap basis 2, yaitu bilangan komposit yang sesuai dengan teorema Fermat. Untungnya, bilangan prima semu jarang terdapat. Untuk menguji bilangan prima semu, dapat digunakan bilangan selain 2 sebagai basis pengujian. 2.5.4 Fungsi Totient Euler Fungsi Totient Euler mendefinisikan φ(n), dibaca ‘fungsi phi Euler’, untuk n ≥ 1 yang menyatakan jumlah bilangan bulat positif < n yang relatif prima dengan n. Jika n prima, maka setiap bilangan bulat yang lebih kecil dari n relatif prima terhadap n. Berarti φ(n) = n-1 hanya jika n prima. 8 9 Ibid. hal. 200. Ibid. hal. 202. 27 Contoh : φ(1) = 0, φ(2) = 1, φ(3) = 2, φ(5) = 4, φ(20) = 8. Dari contoh di atas, φ(20) = 8 berarti terdapat 8 angka yang relatif prima dengan 20, yaitu 1, 3, 7, 9, 11, 13, 17, 19. Menurut fungsi Totient Euler, “Jika n = pq adalah bilangan komposit dengan p dan q prima, maka φ(n) = φ(p) φ(q) = (p – 1)(q – 1).”10 Teorema Euler menyatakan bahwa φ(pk) = pk – pk-1 = pk-1 (p – 1), jika p bilangan prima dan k > 0. Sedangkan generalisasi Euler terhadap teorema Fermat (Euler’s generalization of Fermat theorem) berbunyi “Jika PBB(a, n) = 1, maka aφ(n) mod n = 1 (atau aφ(n) ≡ 1 (mod n)).”11 2.6 Teknik Enkripsi RSA Algoritma RSA menggunakan algoritma kriptografi kunci-publik, dan merupakan salah satu yang paling maju dan populer dalam bidang tersebut. RSA dipercaya dalam mengamankan pesan dengan menggunakan kunci yang panjang. 2.6.1 Sejarah RSA Algoritma RSA dibuat pada tahun 1976 oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology), yaitu Ron Rivest, Adi Shamir, dan Leonard Adleman. Nama RSA diambil dari inisial nama peneliti-peneliti tersebut (Rivest-Shamir-Adleman). 10 11 Rinaldi Munir, Kriptografi [ Bandung – Informatika Bandung, 2006], hal. 47. Ibid. hal. 48. 28 2.6.2 Algoritma RSA Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan-bilangan besar menjadi faktor-faktor prima, yang dilakukan untuk memperoleh kunci privat. Dalam perhitungannya, algoritma RSA menggunakan beberapa besaran. Tabel 2.1 Besaran-Besaran Algoritma RSA No. Besaran Sifat 1. p dan q bilangan prima Rahasia 2. n=p.q Tidak rahasia 3. φ (n) = (p – 1) (q -1) Rahasia 4. e (kunci enkripsi) Tidak rahasia 5. d (kunci dekripsi) Rahasia 6. m (plain text) Rahasia 7. c (cipher text) Tidak rahasia Algoritma RSA berdasarkan pada teorema Euler, yang berbunyi aφ(n) ≡ 1 (mod n). Persyaratannya adalah a harus relatif prima terhadap n, dan φ(n) = n (1 – 1/p1) (1 – 1/p2) … (1 – 1/pr) dimana p1, p2, …, pr adalah faktor prima dari n. φ(n) adalah fungsi yang menentukan banyaknya bilangan dari 1 hingga n yang relatif prima terhadap n. Berdasarkan sifat perhitungan aritmetika modulo, jika a diganti dengan m, maka akan mendapatkan persamaan mkφ(n) + 1 ≡ m (mod n), dengan m relatif prima terhadap n. Misalkan e dan d dipilih sedemikian hingga ed ≡ 1 (mod φ(n)) yang dapat ditulis menjadi ed = kφ(n) + 1. 29 Jika digabungkan dengan persamaan m dan n sebelumnya, maka med ≡ m (mod n) atau (me)d ≡ m (mod n). Persamaan ini berarti perpangkatan m dan e yang diikuti dengan perpangkatan dengan d akan menghasilkan m semula. Berdasarkan persamaan di atas, perumusan enkripsi dan dekripsi12 adalah Ee(m) = c ≡ me mod n dan Dd(c) = m ≡ cd mod n. Karena ed = de, maka enkripsi diikuti dengan dekripsi ekivalen dengan dekripsi diikuti dengan enkripsi: Dd(Ee(m)) = Ee(Dd(m)) ≡ md mod n. Secara garis besar, algoritma RSA terdiri dari tiga bagian, yaitu membangkitkan pasangan kunci, enkripsi, dan dekripsi. Masing-masing bagian didasarkan pada perhitungan matematis menurut teori bilangan sesuai dengan perhitungan dalam algoritma RSA. 2.6.3 Keamanan dan Kecepatan RSA Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan besar menjadi faktor-faktor prima. Pada RSA, n difaktorkan hingga mendapatkan p dan q untuk menemukan φ(n) dan menghitung kunci dekripsi d. Algoritma pemfaktoran bilangan besar belum ditemukan, dan juga tidak dapat dibuktikan bahwa algoritma tersebut ada. Hal ini membuat algoritma RSA dianggap aman. RSA aman jika nilai n cukup besar. Jika panjang n 256 bit, maka n dapat difaktorkan dalam hitungan jam dengan sebuah komputer. Jika panjang n 512 bit, n dapat difaktorkan dengan menggunakan beberapa ratus komputer. 12 Ibid. hal. 180. 30 Oleh sebab RSA lebih lambat dibandingkan dengan algoritma kuncisimetri, RSA biasanya digunakan untuk mengenkripsi kunci rahasia. Sedangkan pesan dienkripsi dengan algoritma kunci-simetri seperti DES dan AES. Pesan dan kunci rahasia dikirim bersama. Penerima pesan mendekripsi kunci rahasia dengan kunci privatnya terlebih dahulu, sebelum menggunakan kunci rahasia tersebut untuk mendekripsi pesan. 2.6.4 Penyerangan Terhadap RSA Penyerangan yang sering terjadi terhadap RSA adalah man-in-themiddle attack. Karena pengirim dan penerima harus berbagi kunci publik, maka distribusi kunci tersebut dapat mengalami serangan ini. Penyerangan yang lainnya adalah chosen-plaintext attack Jika kriptanalis memiliki beberapa plain text pesan, dia dapat mengenkripsikannya dengan kunci publik. Setelah mendapat cipher text, dia membandingkannya dengan cipher text miliknya. Isi pesan dapat dipelajari jika terdapat kesamaan. 2.7 Kode ASCII Kode ASCII (American Standard Code for Information Interchange) merupakan standar internasional dalam kode huruf dan simbol yang bersifat universal, dan digunakan oleh komputer untuk menunjukkan teks. Kode ASCII memiliki komposisi bilangan biner sebanyak 8 bit, dengan total kombinasi sebanyak 256, dari kode 0 hingga 255 dalam sistem bilangan desimal. 31 32 karakter pertama dari kode ASCII adalah karakter kontrol yang tidak dapat ditulis, yang digunakan untuk mengontrol perangkat tambahan. Tabel 2.2 Karakter Kontrol ASCII Desimal Simbol Desimal Simbol Desimal Simbol Desimal Simbol 0 NUL 8 BS 16 DLE 24 CAN 1 SOH 9 HT 17 DC1 25 EM 2 STX 10 LF 18 DC2 26 SUB 3 ETX 11 VT 19 DC3 27 ESC 4 EOT 12 FF 20 DC4 28 FS 5 ENQ 13 CR 21 NAK 29 GS 6 ACK 14 SO 22 SYN 30 RS 7 BEL 15 SI 23 ETB 31 US Kode ke-32 hingga kode ke-127 adalah karakter-karakter yang mewakili abjad, angka, tanda baca, dan simbol-simbol lainnya. Hampir semua karakter dapat ditemukan di keyboard. Karakter 127 mewakili perintah DEL. Tabel 2.3 Karakter Printable ASCII Desimal 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 Simbol SPACE ! “ # $ % & ‘ ( ) * + , . / 0 1 2 Desimal 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 Simbol 8 9 : ; < = > ? @ A B C D E F G H I J Desimal 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 Simbol P Q R S T U V W X Y Z [ \ ] ^ _ ` a b Desimal 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 Simbol h i j k l m n o p q r s t u v w x y z 32 51 52 53 54 55 3 4 5 6 7 75 76 77 78 79 K L M N O 99 100 101 102 103 c d e f g 123 124 125 126 127 { | } ~ DEL Kode ASCII 8 bit, dari kode ke-128 hingga ke-255, merupakan karakter ASCII yang diperluas. Beberapa kode dalam Windows dicadangkan. Gambar 2.2 Daftar Kode ASCII yang Diperluas 33 Gambar 2.2 merupakan daftar kode ASCII 8 bit, dari 128 hingga 255. Kelompok kode ini terdapat beberapa variasi simbol yang berbeda untuk masingmasing kode. Dalam daftar di atas, DOS berarti karakter dalam DOS dan WIN mewakili karakter pada Windows. Untuk penyusunan skripsi ini, karakter ASCII yang digunakan adalah karakter-karakter printable, yaitu karakter mulai dari kode ke-32 hingga ke-255, dengan beberapa pengecualian seperti kode 127 yang tidak printable. 2.8 Tools Perancangan Tahap perancangan dilakukan setelah tahap analisis. Pada tahap perancangan, hasil analisis diubah ke dalam bentuk yang lebih mudah dipahami, yaitu berupa diagram-diagram. Tujuan dari perancangan adalah untuk memberikan gambaran yang lebih jelas mengenai aplikasi yang dibuat. Berikut adalah diagram-diagram yang digunakan dalam tahap perancangan: 1. Flowchart Flowchart merupakan diagram yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya, yang dinyatakan dengan simbolsimbol. Flowchart yang akan digunakan dalam penyusunan skripsi ini adalah flowchart program, yaitu “diagram alir yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah.”13 13 Budi Sutedjo S.Kom, Mm dan Michael AN, S.Kom, Algoritma dan Teknik Pemrograman Konsep, Implementasi, dan Aplikasi [ Yogyakarta – C.V Andi Offset, 2004], hal. 48. 34 2. Diagram Konteks (Context Diagram) Diagram konteks merupakan diagram digunakan untuk menggambarkan ruang lingkup sistem secara global. Hubungan antara entitas eksternal dengan aplikasi, input dan output sistem, serta batasan sistem digambarkan dalam diagram konteks. 3. Diagram Alur Data / Data Flow Diagram (DFD) DFD merupakan diagram yang digunakan untuk menggambarkan arus data dalam sebuah sistem. Penggambaran dilakukan dengan rinci dan terstruktur dengan cara membagi keseluruhan sistem ke dalam beberapa proses. Proses-proses kemudian dijelaskan secara rinci dengan memecahkan suatu proses ke beberapa tingkatan. 2.9 Borland Delphi 7.0 Tool pengembangan yang digunakan dalam pembuatan aplikasi adalah bahasa pemrograman Borland Delphi 7.0. Borland Delphi 7.0 merupakan perangkat pengembangan aplikasi berbasis Windows yang diproduksi oleh Borland. Bahasa pemrograman ini merupakan pengembangan dari bahasa pemrograman Pascal. Program Delphi dikenal dengan nama IDE (Integrated Development Environment), yaitu lingkungan pengembangan aplikasi yang terpadu. Melalui IDE, dapat dibangun aplikasi-aplikasi dari rancangan user interface, menulis kode hingga mencari penyebab kesalahan (debugging). 35 Beberapa keunggulan Borland Delphi 7.0 adalah : 1. Source code Borland Delphi 7.0 merupakan pengembangan dari bahasa pemrograman Pascal yang mudah digunakan. 2. Bahasa pemrograman Borland Delphi 7.0 merupakan bahasa pemrograman tingkat tinggi, sehingga memudahkan user dalam menggunakan tools yang tersedia. 3. Pemberian perintah untuk membuat objek dapat dilakukan secara visual. 4. IDE dalam pemrograman Borland Delphi memudahkan programmer dalam mengembangkan aplikasi. 5. Borland Delphi 7.0 lebih stabil, berkecepatan tinggi, dan tidak memerlukan spesifikasi hardware yang tinggi. 2.10 Sistem Operasi Windows 7 Windows 7 merupakan sistem operasi yang dirilis Microsoft Windows untuk menggantikan Windows Vista. Windows 7 dirilis untuk pabrik komputer pada 22 Juli 2009, dan dirilis untuk publik pada 22 Oktober 2009. Tujuan dirilisnya Windows 7 adalah agar lebih kompatibel dengan software dan hardware yang sebelumnya tidak kompatibel dengan Windows Vista. Windows 7 tidak memperkenalkan banyak fitur baru dan lebih fokus pada pengembangan dasar Windows, seperti dukungan multi-touch pada layar, desain ulang taskbar yang dinamakan Superbar, sistem jaringan rumahan yang bernama HomeGroup, dan peningkatan performa. Aplikasi-aplikasi seperti Windows Calendar, Windows Mail, Windows Movie Maker, dan Windows Photo Gallery 36 tidak disertakan dalam Windows 7, melainkan ditawarkan secara terpisah sebagai bagian dari Windows Live Essentials yang gratis. Berikut adalah spesifikasi kebutuhan minimum perangkat keras untuk Windows 7. Tabel 2.4 Spesifikasi Minimal Windows 7 Arsitektur Kecepatan Prosesor RAM Unit Pengolah Grafis Hard disk (HDD) Drive Room 32-bit 64-bit 1 GHz 32-bit 1 GHz 64-bit 1 GB 2 GB Pengolah grafis dengan dukungan DirectX 9 dan WDDM Driver Model 1.0 16 GB 20 GB DVD drive Windows 7 memiliki 6 versi, yaitu: 1. Windows 7 Ultimate 2. Windows 7 Professional 3. Windows 7 Enterprise 4. Windows 7 Home Premium 5. Windows 7 Home Basic 6. Windows 7 Starter