BAB II LANDASAN TEORI

advertisement
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
Download