• Tidak ada hasil yang ditemukan

IMPLMMMNTASI DAN PMNGUJIAN SISTMM

4.2. Pengujian Sistem

Pengujian dilakukan terhadap algoritma One Time Pad pada sistem kendali pintu untuk mengukur keberhasilan sistem dalam melakukan proses enkripsi dan dekripsi algoritma. Pengujian ini dilakukan dengan beberapa kriteria sebagai berikut :

1. Plainteks berupa password yang terdiri dari karakter ASCII Printable dengan panjang 10 karakter yang diinputkan secara langsung padatextboxtanpa spasi. 2. List yang digunakan adalahASCII printable yaitu = { , !, “, #, $, %, &, ‘,

(, ), *, +, , , -, ., /, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ;, <, +, >, ?, @, A, B, C, D, M, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, [, \, ], ^, _, `, a, b, c, d, e, f, g, h, i, j, k, l, m, n,o, p, q, r, s, t, u, v, w, x, y, z,{, |, },~} || = 95

3. Kunci One Time Pad terdiri dari karakter ASCII Printable yang dibangkitkan secara acak dengan algoritmaRandomNumber Blum Blum Shub.

4.2.1. Pengujian One Time Pad

Mnkripsi yang dilakukan pada tahap ini akan menghasilkan cipherteks. Cipherteks ini terdiri 10 karakter plainteks. Pada enkripsi ini diperlukan kunci di mana panjang

49 karakternya juga sama dengan plainteksnya. Misalkan, kata plainteks = ‘agungagung’ dan kunci = ‘TOGGHJZMQI’. Tampilan pada sistem dapat ditunjukkan pada Gambar 4.18 (a).

(a) (b)

Gambar 4.18 Pengujian pada sistem android (a) Lock dan (b) Unlock Gambar 4.18 (b) menunjukkan hasil enkripsi berupa cipherteks=’VW]VPLbc’Q’. Cipherteks ini didapat melalui operasi penjumlahan dari kunciOne Time Padterhadap plainteks awal. Proses Mnkripsi dapat dilihat pada Tabel 4.1

Tabel 4.1 Proses Mnkripsi One Time Pad Plainteks ASCII Kunci ASCII C

= ((K+P)-127) + 32 Cipherteks a 97 T 84 86 V g 103 O 79 87 W u 117 G 71 93 ] n 110 G 71 86 V g 103 H 72 80 P a 97 J 74 76 L g 103 Z 90 98 b u 117 M 77 101 c n 110 Q 81 96 ‘ g 103 I 73 81 Q

Pada Tabel 4.1 dihasilkan cipherteks yang ditunjukkan pada kolom Cipherteks. Cipherteks ini dihasilkan dari kunci yang telah diacak oleh algoritmaBlum Blum Shub

dan dijumlahkan dengan index ASCII pada plainteks. Hasil penjumlahan bilangan itu dihitung kembali dengan rumus pada kolom C.

(a)

(b)

(c)

Gambar 4.19 Pengujian hardware (a) cipherteks (b) key dan password (c) plainteks

Dekripsi yang dilakukan pada tahap ini akan menghasilkan plainteks. Plainteks ini terdiri 10 karakter cipherteks. Pada dekripsi ini diperlukan kunci dimana panjang karakternya juga sama dengan cipherteks. Misalkan, kata cipherteks = ‘VW]VPLbc’Q’ dan kunci = ‘TOGGHJZMQI’. Tampilan pada sistem dapat ditunjukkan pada Gambar 4.19 (a) dan Gambar 4.19 (b). Hasil dekripsi dari kunci dan cipherteks menghasilkan plainteks=’agungagung’ seperti terlihat pada Gambar 4.19(c).

Tabel 4.2 Proses Dekripsi One Time Pad Cipherteks ASCII Kunci ASCII P

= ((C + 127)-32) - K ) Plainteks V 86 T 84 97 a W 87 O 79 103 g ] 93 G 71 117 u V 86 G 71 110 n P 80 H 72 103 g L 76 J 74 97 a b 98 Z 90 103 g c 101 M 77 117 u ‘ 96 Q 81 110 n Q 81 I 73 103 g

51 Pada Tabel 4.2 dihasilkan plainteks yang ditunjukkan pada kolom plainteks. Plainteks ini dihasilkan dari kunci yang telah diacak oleh algoritma Blum Blum Shub dan dikurangkan dengan index ASCII pada cipherteks. Hasil pengurangan bilangan itu dihitung kembali dengan rumus pada kolom P.

4.2.2 Pengujian Kompleksitas Algoritma

Pengujian ini dilakukan untuk mengetahui tingkat nilai masukan n suatu algoritma. Kompleksitas algoritma ini dapat dilihat dari kode program yang digunakan. Untuk kompleksitas algoritma enkripsiOne Time Padditunjukkan pada Tabel 4.3.

Tabel 4.3 Kompleksitas algoritma enkripsi one time pad

No Code C # C x #

1 cipher=" "; C1 1 C1

2 int temp=0; C2 1 C2

3 char c; C3 1 C3

4 for(int i= 0; i<key.length();i++){ C4 n C4n 5 temp = key.charAt(i) + plain.charAt(i); C2 n C2n

6 if(temp>126){ C5 n C5n 7 temp=(temp-126)+31;} C2 n C2n 8 c= (char) temp; C3 n C3n 9 cipher=cipher + c;} C1 n C1n T(n)=C1+C2+C3+C4n+C5n+C2n+C2n+C3n+C1n T(n)=(C1+C2+C3)n0+(C1+2C2+C3+C4+C5)n1

T(n)(n)

Tabel 4.3 menunjukkan hasil dari kompleksitas algoritma dari enkripsi One Time Pad. Pada Tabel 4.3 terdapat Kolom C yaitu sebagai variabel menghitung seberapa banyak

processor melakukan komputasi. Kolom # sebagai variabel untuk menghitung kalimat (statement) program yang dieksekusi. Kolom C x # yaitu menunjukkan hasil perkalian dari C dan #. Sehingga, berdasarkan akumulasi dari kompleksitas algoritma enkripsi One Time Pad adalah (n). Kompleksitas algoritma selanjutnya adalah dekripsiOne Time Padyang ditunjukkan pada Tabel 4.5.

Tabel 4.5 Kompleksitas algoritma dekripsione time pad

No Code C # Cx #

1 scanf("%s",cipher); C1 1 C1

2 for(i=0;i<10;i++){ C2 n C2n

3 kunci[i] = (char) key[i];} C3 n C3n

4 for(i=0;i<10;i++){ C4 n C4n

5 temp=0; C5 n C5n

6 if(cipher[i]<126){ C6 n C6n

7 temp= cipher[i]+126-31;} C7 n C7n

8 plain[i] =(char) (temp -

key[i]);} C8 n C8n

9 for(i=0;i<10;i++){ C9 n C9n

10 pass[i] = (char )password[i];} C10 n C10n

11 for(i=0;i<10;i++){ C11 n C11n 12 if(plain[i]== pass[i]){ C12 n C12n 13 stat=1;}else{stat=0; break;}} C13 n C13n 14 if (stat==1){ C14 n C14n 15 flag=1;}else{ C15 n C15n 16 lcd_puts("Password salah");} C16 n C16n T(n)=C1+C2n+C3n+C4n+C5n+C6n+C7n+C8n+C9n+C10n+C11n+C12n+C13n+C14n+ C15n+C16n T(n)=(C1)n0+(C2+C3+C4+C5+C6+C7+C8+C9+C10+C11+C12+C13+C14+C15+C16)n1

T(n)(n)

Tabel 4.5 menunjukkan hasil dari kompleksitas algoritma dari dekripsiOne Time Pad. Pada Tabel 4.5 terdapat Kolom C yaitu sebagai variabel menghitung seberapa banyak

processor melakukan komputasi. Kolom # sebagai variabel untuk menghitung kalimat (statement) program yang dieksekusi. Kolom C x # yaitu menunjukkan hasil perkalian dari C dan #. Sehingga, berdasarkan akumulasi dari kompleksitas algoritma dekripsiOne Time Padadalah(n).

BAB 5 PMNUTUP

5.1. Kesimpulan

Setelah melakukan studi literatur, analisis dan perancangan dan pengujian terhadap sistem kendali pintu berbasis Android dengan menggunakan algoritmaOne Time Pad

dan Blum Blum Shub pada password sistem kendali pintu, maka dapat disimpulkan sebagai berikut:

1. Sistem ini dapat melakukan enkripsi dan dekripsi password 10 karakter dengan menggunakan algoritma One Time Pad dan algoritma Blum Blum Shub sebagai pembangkit kunci.

2. Cipherteks yang didekripsi akan mengembalikan password asli. Apabila pesan cipherteks tidak sempurna atau kunci tidak sesuai, maka password tidak akan kembali ke bentuk asli.

3. Berdasarkan perhitugan kompleksitas algoritma, kompleksitasalgoritma One Time Paddiperoleh(n).

5.2. Saran

Berikut ini adalah hal-hal yang menjadi saran dari penelitian ini atau untuk penelitian selanjutnya yang terkait:

1. Sistem ini hanya bisa diakses oleh satu user sehingga dapat dikembangkan dengan menggunakanmulti user.

2. Sistem hanya mampu melakukan enkripsi dan dekripsi 10 karakter password

sehingga diharapkan dapat menambah jumlah karakterpassword.

3. Sistem ini diharapkan dapat dikembangkan dengan tampilan antarmuka yang lebih menarik.

4. Pada penelitian selanjutnya disarankan menerapkan algoritma kriptografi

2.1. Kriptografi

Ditinjau dari segi terminologinya, kata kriptografi berasal dari bahasa Yunani yaitucrypto

yang berarti secret (rahasia) dan graphia yang berarti writing (tulisan). Jadi kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. Maka secara termonologi kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak atas pesan tersebut (Ariyus, 2008).

2.1.1. Jenis-jenis algoritma kriptografi

Algoritma Kriptografi dibagi tiga berdasarkan kunci yang dipakai, yaitu algoritma simetri (menggunakan satu kunci untuk proses enkripsi dan dekripsi), algoritma asimetri (menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi), dan fungsihash(Ariyus, 2008).

2.1.1.1. Algoritma simetris

Algoritma simetris adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya (Wandani, 2012). Algoritma simetris sering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal atau algoritma satu kunci (Lilda, 2008). Bila mengirim pesan dengan algoritma ini, si penerima pesan harus diberitahu kunci dari pesan tersebut agar bisa mendekripsikan pesan yang dikirim. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci.

6 Jika kunci tersebut diketahui oleh orang lain maka orang tersebut dapat melakukan enkripsi dan dekripsi pada pesan (Sadikin, 2012). Yang termasuk algoritma kunci simetris adalah hill cipher, vigenere cipher, caesar cipher, OTP, DMS, RC2, RC4, RC5, IDMA,Twofish, Magenta, FMAL, SAFMR, LOKI, CAST, Rijndael (AMS),

Blowfish, GOST, A5, Kasumi dan lain-lainnya.

Gambar 2.1 Skema Kriptografi Simetris

2.1.1.2. Algoritma asimetris

Kunci yang digunakan dalam algoritma asimetri (asymmetric cryptosystems) untuk melakukan enkripsi dan dekripsi berbeda (Smart, 2004). Algoritma asimetris disebut juga dengan kriptografi kunci publik karena algortima ini memiliki kunci yang berbeda untuk enkripsi dan dekripsi, dimana enkripsi menggunakan public key dan untuk dekripsinya menggunakan private key. Public key dan private key harus saling berpasangan secara matematis. Dengan memberikanpublic key, pembuat kunci berhak memberikan dan mendapatkanpublic keyagar pesan aman dan hanya bisa dibaca oleh si pembuat kunci. Dalam kriptografi kunci asimetri, hampir semua algoritma kriptografinya menggunakan konsep kunci publik, seperti Rivest-Shamir-Adleman (RSA), Ml-Gamal, Rabin dan sebagainya (Harahap, 2014). Kecuali algoritma Pohlig˗Hellman karena kunci enkripsi maupun kunci dekripsinya bersifat rahasia.

Gambar 2.2 Kriptografi Asimetris

2.1.2. Algoritma One Time Pad

Algoritma ini ditemukan pada tahun 1917 oleh Mayor Joseph Mauborgne dan Gilbert Vernam. Cipher ini termasuk ke dalam kelompok algoritma kriptografi simetri

Algoritma

Mnkripsi AlgoritmaDekripsi

Kunci Rahasia Teks

(Prameswara, 2013). One Time Pad berisi deretan karakter kunci yang dibangkitkan secara acak dan setiap kunci hanya bisa dipakai sekali pakai.

Pemilihan kunci harus secara acak dan kunci hanya bisa digunkan satu kali saja agar algoritma One Time Pad tidak mudah dipecahkan (Mollin, 2007). Panjang stream karakter kunci sama dengan panjang pesan. One Time Pad (pad = kertas bloknot) berisi barisan karakter-karakter kunci yang dibangkitkan secara acak. Satu pad hanya digunakan sekali (one time) saja untuk mengenkripsi pesan, setelah itu pad yang telah digunakan dihancurkan. Panjang kunci One Time Pad = panjang teks asli sehingga tidak ada kebutuhan untuk mengulang penggunaan kunci selama proses enkripsi.

Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere. Mnkripsi: ci = (pi + ki) mod 26...(2.1)

Dekripsi: pi = (ci–ki) mod 26... (2.2)

Dimana: ci= cipherteks pi= plainteks ki= kunci

Bila diketahui teks asli: “ONMTIMMPAD”

Dengan kunci: “TBFRGFARM”

Diasumsikan A= 0, B = 1, . . . , Z=25.

Maka akan didapat teks-kode : “IPKLPSFHGQ” yang mana diperoleh sebagai

berikut: (O + T ) mod 26 = I (N + B ) mod 26 = P (M + F ) mod 26 = K ( T + R ) mod 26 = L ( I + G ) mod 26 = P ( M + F ) mod 26 = S ( M + A ) mod 26 = F ( P + R ) mod 26 = H ( A + F ) mod 26 = G ( D + M ) mod 26 = Q

8 Sistem One Time Pad tidak dapat dipecahkan karena beberapa alasan yaitu barisan kunci acak + teks asli yang tidak acak = teks kode yang seluruhnya acak. Mendekripsi teks kode dengan beberapa kunci berbeda dapat menghasilkan teks asli yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan teks asli mana yang benar.

Algoritma ini memiliki beberapa kelemahan, yaitu : Kunci yang dipakai haruslah benar-benar acak. Menggunakan pseudorandom generator tidak dihitung, karena algoritma ini memiliki bagian yang tidak acak. Panjang kunci juga harus sama dengan panjang pesan, sehingga hanya cocok untuk pesan berukuran kecil. Selain itu, karena kunci dibangkitkan secara acak, maka tidak mungkin pengirim dan penerima membangkitkan kunci yang sama secara simultan, dan karena kerahasiaan kunci harus dijamin, maka perlu ada perlindungan selama pengiriman kunci. Oleh karena itu, algoritma ini hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman untuk mengirim kunci (Prameswara, 2013).

2.1.3. Blum Blum Shub generator

Blum Blum Shub generator merupakan algoritma pembangkit bilangan yang cukup sederhana. BBS diperkenalkan pada tahun 1986 pada Lenore Blum, Manuel Blum, dan Michael Shub (Schneier, 1996) . Berikut ini algoritma dari BBS :

1. Pilih dua bilangan primapdanq, di manap danqkeduanya kongruen 3 modulo 4.

p≡ 3 (mod 4) danq≡ 3 (mod 4)

2. Hasilkan bilangan bulat blumndengan menghitungn= p x q.

3. Pilih lagi sebuah bilangan acak s sebagai seed, bilangan yang dipilih harus memenuhi kriteria:

a. 2 ≤s<n.

b.sdannrelatif prima. 4. Hitung nilaix0=s2modn.

5. Hasilkan bilangan bit acak dengan cara : a. Hitungxi =xi-12modn.

b. Hasilkanzi= bit - bit yang diambil darixi.

Bit yang diambil bisa merupakan LSB (Least Significant Bit) / hanya satu bit atau sebanyakjbit (j tidak melebihilog2(log2n)).

6. Bilangan bit acak dapat digunakan langsung atau diformat dengan aturan tertentu, sedemikian hingga menjadi bilangan bulat.

Dokumen terkait