BAB III ANALISIS
Pada tahap analisis, dilakukan penguraian terhadap topik penelitian untuk mengidentifikasi dan mengevaluasi proses-prosesnya serta kebutuhan yang diperlukan agar dapat diusulkan suatu solusi untuk diterapkan pada tahap perancangan. Penjabaran tahap analisis akan dikelompokkan menjadi tiga bagian, yaitu analisis proses, hasil analisis, dan analisis kebutuhan.
3.1 Analisis Proses
Sesuai dengan judul skripsi “Aplikasi Pengamanan Dokumen Teks Menggunakan Teknik Enkripsi Rivest-Shamir-Adleman (RSA) dan Kode American Standard Code for Information Interchange (ASCII)”, maka prosesproses yang akan dianalisis adalah proses pengenkripsian dokumen teks dengan algoritma RSA dan proses pengkodean dengan kode ASCII.
3.1.1 Enkripsi dan Dekripsi Dokumen Teks dengan Algoritma RSA
Pengenkripsian dokumen teks dengan algoritma RSA dilakukan dengan menggunakan perhitungan matematis, baik dalam proses pembangkitan kunci, pengenkripsian pesan, maupun pendekripsian teks. Algoritma RSA didasarkan pada konsep bilangan prima, aritmetika modulo, dan teorema Euler.
37
38
Secara ringkas, algoritma RSA terdiri dari tiga bagian, yaitu membangkitkan kunci, enkripsi, dan dekripsi. 1. Algoritma Pembangkitan Kunci a. Pilih dua buah bilangan prima p dan q yang berbeda. b. Hitung n = p q. c. Hitung φ(n) = (p – 1)(q – 1). φ(n) dibaca “fungsi phi Euler”. d. Pilih integer untuk kunci publik e yang relatif prima terhadap φ(n). e. Hitung kunci privat d dengan rumus d = (1 + k φ(n)) / e. Perhitungan dilakukan dengan memasukkan nilai k = 1, 2, 3, …, hingga memperoleh nilai d yang bulat. Hasil algoritma di atas adalah pasangan kunci publik (e, n) dan kunci privat (d, n). 2. Algoritma Enkripsi a. Gunakan kunci publik e dan modulus n. b. Pecahkan plain text m ke dalam blok-blok mi sedemikian hingga setiap blok m1, m2, … merupakan representasi nilai 0 hingga n-1. c. Setiap blok mi dienkripsikan menjadi blok ci dengan rumus ci = mie mod n. Nilai ci merupakan nilai setiap blok cipher text dari c1, c2, …, hingga banyak ci yang sama dengan mi. 3. Algoritma Dekripsi a. Gunakan kunci privat d dan modulus n. b. Setiap blok cipher text ci didekripsikan menjadi blok mi dengan rumus mi = cid mod n.
39
Proses membangkitan kunci dengan algoritma RSA adalah: 1. Pilih dua buah bilangan prima yang berbeda, misalkan sebagai bilangan p dan bilangan q. Jaga kerahasiaan kedua bilangan ini. 2. Hitung n yang didapati dari n = p q. Nilai n dapat diumumkan sebab akan digunakan dalam proses enkripsi nanti. 3. Hitung φ(n) = (p – 1) (q – 1). Nilai φ(n) harus dijaga kerahasiaannya. 4. Pilih integer e, yang akan dijadikan sebagai kunci publik. Nilai e harus relatif prima terhadap φ(n), yaitu jika PBB(φ(n), e) = 1. 5. Hitung kunci privat d dengan rumus d = (1 + k φ(n)) / e. Untuk mencari nilai d, cobakan nilai k mulai dari 1, 2, 3, …, hingga mendapat nilai d yang bulat.
Proses mengenkripsi dokumen teks adalah: 1. Ubah teks yang akan dienkripsi ke dalam bentuk angka. Hal ini dapat dilakukan dengan menentukan perwakilan angka untuk setiap karakter atau dengan menggunakan kode ASCII. 2. Pecahkan angka-angka tersebut ke dalam beberapa bagian, yaitu m1, m2, m3, dan seterusnya. Nilai setiap bagian harus terletak di dalam selang 0 hingga n – 1. Nilai n telah dihitung dalam proses pembangkitan kunci sebelumnya. 3. Gunakan kunci publik e dan nilai n untuk mengenkripsi setiap bagian tersebut dengan rumus enkripsi ci = mie mod n. 4. Hasilnya adalah deretan angka c1, c2, c3, dan seterusnya, yang merupakan cipher text.
40
Proses mendekripsi dokumen teks adalah: 1. Gunakan kunci privat d dan nilai n untuk mendekripsi setiap blok cipher text. Pendekripsian dilakukan dengan memasukkan nilai ci dari setiap blok, nilai d, dan nilai n ke dalam rumus mi = cid mod n. 2. Hasilnya adalah deretan angka m1, m2, m3, dan seterusnya. 3. Ubah angka-angka tersebut kembali menjadi plain text sesuai dengan cara pengubahan sebelumnya, baik dengan penggantian karakter atau dengan kode ASCII.
3.1.2 Contoh Kasus Enkripsi dan Dekripsi Dokumen Teks dengan Algoritma RSA
Andrew dan Bryan akan bertukar dokumen rahasia yang akan dikirim oleh Bryan kepada Andrew. Maka Bryan memerlukan kunci publik Andrew untuk mengenkripsi teks tersebut. Jadi, langkah pertama adalah bagi Andrew untuk membangkitkan kunci publik dan kunci privatnya. Langkah Andrew membangkitkan kunci adalah: 1. Andrew memilih dua buah bilangan prima p dan q. Bilangan yang dipilih adalah p = 13 dan q = 23. 2. Andrew menghitung nilai n dengan n = p q = 13 · 23 = 299. 3. Andrew menghitung φ(n) = (p – 1) (q – 1) = (13 – 1) (23 – 1) = 264. 4. Andrew memilih kunci enkripsi e yang relatif prima dengan 264, dibuktikan dengan PBB(264, e) = 1. Karena PBB (264, 29) = 1, Andrew memilih kunci enkripsi e = 29.
41
5. Andrew menghitung kunci dekripsi d dengan d = (1 + k φ(n)) / e. Andrew mencobakan k = 1, 2, 3, …, hingga memperoleh d yang bulat. k = 1, d = (1 + (1 x 264)) / 29 = 9,1379 k = 2, d = (1 + (2 x 264)) / 29 = 18, 2413 k = 3, d = (1 + (3 x 264)) / 29 = 27, 3448 k = 4, d = (1 + (4 x 264)) / 29 = 36, 4482 k = 5, d = (1 + (5 x 264)) / 29 = 45, 5517 k = 6, d = (1 + (6 x 264)) / 29 = 54, 6551 k = 7, d = (1 + (7 x 264)) / 29 = 63, 7586 k = 8, d = (1 + (8 x 264)) / 29 = 72, 8620 k = 9, d = (1 + (9 x 264)) / 29 = 81, 9655 k = 10, d = (1 + (10 x 264)) / 29 = 91, 0689 k = 11, d = (1 + (11 x 264)) / 29 = 100, 1724 k = 12, d = (1 + (12 x 264)) / 29 = 109, 2758 k =13, d = (1 + (13 x 264)) / 29 = 118, 3793 k = 14, d = (1 + (14 x 264)) / 29 = 127, 4827 k = 15, d = (1 + (15 x 264)) / 29 = 136, 5862 k = 16, d = (1 + (16 x 264)) / 29 = 145, 6896 k = 17, d = (1 + (17 x 264)) / 29 = 154, 7931 k = 18, d = (1 + (18 x 264)) / 29 = 163, 8965 k = 19, d = (1 + (19 x 264)) / 29 = 173 6. Dari proses pembangkitan kunci ini, Andrew mendapat pasangan kunci publik (e = 29, n = 299) dan kunci privat (d = 173, n = 299).
42
Andrew memberikan kunci publiknya kepada Bryan agar Bryan dapat menggunakan kunci publik ini untuk mengenkripsi dokumen teks yang akan dikirim. Isi dokumen teks, yang dilambangkan dengan m, adalah 24 Agustus. Berikut langkah Bryan melakukan proses enkripsi: 1. Bryan mengubah m = 24 Agustus ke dalam bentuk angka. Untuk ini, Bryan menggunakan kode ASCII untuk mendapat bentuk desimalnya. Maka m = 24 Agustus akan menjadi 50523265103117115116117115. 2. Bryan memecahkan m ke dalam blok-blok kecil. m1 = 50,
m2 = 52,
m3 = 32,
m4 = 65,
m5 = 10,
m6 = 31,
m7 = 17,
m8 = 11,
m9 = 51,
m10 = 16,
m11 = 11, m12 = 71,
m13 = 15.
Nilai setiap blok harus terletak di dalam selang 0 hingga 299 – 1. 3. Bryan mengenkripsi setiap blok plain text dengan memasukkan kunci publik Andrew (e = 29, n = 299) ke dalam rumus ci = mie mod n. c1 = 5029 mod 299 = 215;
c2 = 5229 mod 299 = 26;
c3 = 3229 mod 299 = 119;
c4 = 6529 mod 299 = 130;
c5 = 1029 mod 299 = 290;
c6 = 3129 mod 299 = 265;
c7 = 1729 mod 299 = 296;
c8 = 1129 mod 299 = 7;
c9 = 5129 mod 299 = 155;
c10 = 1629 mod 299 = 87;
c11 = 1129 mod 299 = 7;
c12 = 7129 mod 299 = 197;
c13 = 1529 mod 299 = 149. 4. Cipher text yang dihasilkan adalah: c = 215 26 119 130 290 265 296 7 155 87 7 197 149.
43
Bryan mengirim deretan cipher text tersebut kepada Andrew. Untuk dapat membacanya, Andrew harus mendekripsi deretan angka tersebut terlebih dahulu. Langkah-langkah Andrew mendekripsi cipher text adalah: 1. Andrew mendekripsi setiap blok cipher text dengan menggunakan kunci privatnya sendiri (d = 173, n = 299) dan rumus mi = cid mod n. m1 = 215173 mod 299 = 50;
m2 = 26173 mod 299 = 52;
m3 = 119173 mod 299 = 32;
m4 = 130173 mod 299 = 65;
m5 = 290173 mod 299 = 10;
m6 = 265173 mod 299 = 31;
m7 = 296173 mod 299 = 17;
m8 = 7173 mod 299 = 11;
m9 = 155173 mod 299 = 51;
m10 = 87173 mod 299 = 16;
m11 = 7173 mod 299 = 11;
m12 = 197173 mod 299 = 71;
m13 = 149173 mod 299 = 15. 2. Dari hasil perhitungan di atas, diperoleh bentuk desimal plain text, yaitu 50523265103117115116117115, yang dalam sistem pengkodean ASCII berarti m = 24 Agustus.
Dari contoh di atas dapat dilihat bahwa keseluruhan proses enkripsi dan dekripsi dengan algoritma RSA menggunakan perhitungan secara matematis, baik dari proses pembangkitan kunci, hingga enkripsi dan dekripsi pesan. Agar dapat dihitung, teks yang ingin dirahasiakan harus diubah ke dalam bentuk angka terlebih dahulu. Hasil pengenkripsian adalah cipher text yang juga merupakan deretan angka.
44
3.1.3
Pengkodean Teks dengan Kode ASCII
Pengkodean teks dengan kode ASCII dilakukan sesuai dengan tabel karakter ASCII. Yang perlu dilakukan dalam pengkodean ini hanya mengubah setiap karakter dari teks ke dalam sistem pengkodean ASCII. Untuk membaca teks asli, cukup mengubah kode-kode tersebut menjadi karakter-karakter yang sesuai. Dalam pengkodean dengan kode ASCII, yang digunakan adalah karakter dengan nilai desimal 32 hingga 255. Karakter untuk nilai desimal 0 hingga 31 adalah karakter kontrol yang tidak dapat ditampilkan. Akan tetapi beberapa karakter di antara nilai desimal 32 hingga 255 juga tidak dapat ditampilkan sehingga tidak dapat digunakan dalam proses pengkodean, seperti karakter dengan nilai 127 yang mewakili DEL pada keyboard. Proses pengkodean adalah: 1. Membandingkan setiap karakter dalam teks dengan tabel karakter ASCII. 2. Menuliskan karakter-karakter tersebut ke dalam bentuk desimal sesuai dengan tabel ASCII. Untuk mengembalikannya menjadi teks asal, maka langkahlangkahnya adalah: 1. Memecahkan kode tersebut ke dalam bagian-bagian yang sesuai agar dapat diubah ke dalam karakter menurut tabel ASCII. 2. Ubah angka-angka tersebut ke dalam karakter sesuai dengan tabel karakter ASCII.
45
3.1.4 Contoh Kasus Mengkodekan Teks dengan Kode ASCII
Bryan mengirim dokumen teks rahasia kepada Andrew. Isi dari dokumen tersebut adalah 24 Agustus. Langkah-langkah Bryan mengkodekan teks tersebut adalah: 1. Bryan membandingkan setiap karakter dalam teks tersebut dengan tabel karakter ASCII hingga mendapatkan hasil: 2 = 50;
4 = 52;
spasi = 32;
A = 65;
g = 103;
u = 117;
s = 115;
t = 116;
u = 117;
s = 115.
2. Jadi, hasil pengkodeannya adalah 50523265103117115116117115. Deretan angka ini dikirim Bryan kepada Andrew. Untuk dapat membacanya, Andrew harus mengembalikannya ke teks asli. Langkah-langkah yang digunakan Andrew adalah: 1. Dari deretan angka 50523265103117115116117115, Andrew harus memecahkannya ke bagian-bagian kecil yang memungkinkan agar dapat diubah ke bentuk simbol menurut kode ASCII. Deretan angka tersebut dipisahkan menjadi 50 52 32 65 103 117 115 116 117 115. 2. Andrew membandingkan angka-angka tersebut dengan tabel ASCII. 50 = 2;
52 = 4;
32 = spasi;
65 = A;
103 = g;
117 = u;
115 = s;
116 = t;
117 = u;
115 = s.
3. Berdasarkan tabel karakter ASCII, teks awal adalah 24 Agustus. Setiap karakter diubah sesuai dengan kode ASCII. Hasil pengodean dapat berupa deretan angka, atau gabungan dari abjad, angka dan simbol. Karena itu, kode ASCII dapat digunakan dalam pengodean simbol, abjad, dan angka.
46
3.2 Analisis SWOT Terhadap Enkripsi dan Dekripsi dengan Algoritma RSA
Analisis SWOT adalah suatu metode untuk menggambarkan kondisi dan mengevaluasi suatu masalah. 1. Strengths (kekuatan): a. Keamanan algoritma RSA terletak pada susahnya memfaktorkan nilai n menjadi faktor prima untuk menghitung nilai kunci dekripsi d. b. Dekripsi cipher text menjadi teks asli memerlukan nilai d yang benar. 2. Weaknesses (kelemahan): a. Keseluruhan algoritma RSA menggunakan perhitungan yang rumit. b. Kemungkinan terjadinya kekeliruan dalam perhitungan yang ada. 3. Opportunities (peluang): a. Menggabungkan algoritma RSA dengan kode ASCII. b. Otomasi semua proses perhitungan, enkripsi, dan dekripsi. 4. Threats (ancaman): a. Pengumuman kunci publik untuk enkripsi dapat diganggu pihak luar. b. Jika nilai d diketahui, maka cipher text dapat didekripsi. 5. Strengths to Opportunities a. Dengan menggabungkan algoritma RSA dengan kode ASCII, hasil enkripsi akan berupa gabungan dari angka, abjad, dan simbol. b. Otomasi dapat meningkatkan efisiensi proses enkripsi dan dekripsi. 6. Strengths to Threats a. Susahnya memfaktorkan nilai n menjamin keamanan kunci dekripsi d. b. Kerahasiaan teks asli dapat dijaga selama nilai d tidak diketahui.
47
7. Weaknesses to Opportunities a. Seluruh proses perhitungan dapat diotomasi untuk menghemat waktu. b. Otomasi proses perhitungan dapat menurunkan tingkat kekeliruan. 8. Weaknesses to Threats a. Jika pengumuman kunci publik diganggu pihak ketiga, hasil enkripsi akan berupa hasil pengenkripsian dengan kunci yang salah. b. Meskipun kunci yang digunakan diketahui pihak luar, enkripsi dan dekripsi tidak akan berhasil jika terjadi kesalahan dalam perhitungan.
3.3 Hasil Analisis
Hasil dari analisis dari kedua proses enkripsi tersebut adalah: 1. Algoritma RSA yang mengenkripsi dengan perhitungan matematis sehingga
menghasilkan
deretan
angka.
Sedangkan
kode
ASCII
menyimbolkan karakter menurut tabel karakter ASCII. 2. Algoritma RSA dapat digabungkan dengan penggunaan kode ASCII. 3. Cipher text hasil enkripsi algoritma RSA dapat dikodekan menurut tabel karakter ASCII, baik ke dalam simbol ataupun ke bentuk desimal ASCII.
3.4 Analisis Kebutuhan
Untuk mempermudah proses enkripsi yang menggabungkan teknik enkripsi RSA dan kode ASCII, dibutuhkan suatu perangkat lunak yang dapat mengotomasi proses-proses tersebut.
48
3.4.1 Kebutuhan Perangkat Lunak
Berikut adalah kebutuhan software yang akan dikembangkan. 1. Aplikasi mampu membangkitkan kunci menurut algoritma RSA. 2. Aplikasi mampu mengenkripsi dan mendekripsi teks dalam dokumen dengan algoritma RSA dan menyimbolkannya ke dalam kode ASCII. 3. Aplikasi harus memiliki interface yang user friendly untuk mempermudah penggunaan.
3.4.2 Kebutuhan Informasi
Kebutuhan informasi yang akan disajikan oleh aplikasi adalah : 1. Aplikasi
mampu
mengamankan
isi
dokumen
teks
dengan
penggabungan teknik enkripsi RSA dan kode ASCII. 2. Aplikasi mampu mendekripsi cipher text menjadi plain text asli.
3.4.3 Kebutuhan Pengguna
Kebutuhan user yang akan mengoperasikan aplikasi adalah : 1. Aplikasi mampu membantu user mengamankan teks dalam dokumen dengan mengenkripsikannya. 2. Aplikasi mampu mengembalikan cipher text user ke teks asal.