• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB II LANDASAN TEORI"

Copied!
42
0
0

Teks penuh

(1)

BAB II

LANDASAN TEORI

2.1 Kriptografi

2.1.1 Pengertian Kriptografi

Kriptografi (cryptography) berasal dari bahasa yunani, yaitu dari kata Crypto dan Graphia. Crypto yang berarti secret (rahasia) dan Graphia berarti

writing (tulisan). Menurut terminologinya, kriptografi adalah ilmu ataupun

seni yang mempelajari bagaimana membuat suatu pesan yang dikirim oleh pengirim dapat disampaikan kepada penerima dengan aman. Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang disebut kriptologi (cryptology). Kriptografi bertujuan menjaga kerahasiaan informasi yang terkandung dalam data sehingga informasi tersebut tidak dapat diketahui oleh pihak yang tidak sah.(Schneier, 1996).

Perancang Algoritma Kriptografi disebut Kriptografer.

Gambar 2.1 Area Bidang Kriptologi

Kriptanalisis (cryptanalysis) adalah suatu ilmu dan seni membuka (breaking) ciphertext menjadi plaintext tanpa mengetahui kunci yang digunakan. Pelaku kriptanalisis disebut kriptanalis (cryptanalyst). Kriptanalis

(2)

merupakan “lawan” kriptografer. Persamaan kriptanalis dan kriptografer adalah bahwa keduanya sama – sama menerjemahkan cipherteks menjadi plainteks. Sementara perbedaanya adalah :

1. Kriptanalis bekerja atas nama penyadap yang tidak berhak.

2. Kriptografer bekerja atas legitimasi pengirim atau penerima pesan. 2.1.2 Tujuan Kriptografi

Dari paparan awal dapat dirangkumkan bahwa kriptografi bertujuan untuk memberi layanan keamanan yang terkait dengan aspek keamanan suatu sistem informasi seperti kerahasiaan, integritas data, autentikasi dan ketiadaan penyangkalan. keempat aspek tersebut merupakan tujuan fundamental dari suatu sistem kriptografi.(Schneier, 1996).

1. Kerahasiaan (confidentiality)

Kerahasian adalah layanan yang ditujukan untuk menjaga informasi agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. Di dalam kriptografi layanan ini direalisasikan dengan menyandikan plainteks menjadi cipherteks. Misalnya pesan “jadwal bimbingan tugas akhir hari selasa” disandikan menjadi “mdgzdo*elpelqjdq*wxjdv*dnklu*kdul*vhodvd” istilah lain yang senada dengan confidentially adalah secrecy dan privacy.

2. Integritas data (data integrity)

Integritas data adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. Manipulasi yang dimaksud disini meliputi penyisipan, penghapusan, ataupun penggantian data. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pernyataan “apakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi)?”. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak – pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubtitusian data lain kedalam pesan yang sebenarnya.

(3)

3. Autentikasi (authentication)

Autentikasi adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi harus dapat mengotentikasi satu sama lain sehingga bisa dapat memastikan sumber pesan, ataupun keaslian data dari informasi itu sendiri. Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus di otentikasi asalnya. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan: “ Apakah pesan yang diterima benar – benar berasal dari pengirim pesan yang benar ?”. otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. 4. Ketiadaan penyangkalan (non-repudiation)

Ketiadaan penyangkalan adalah layanan yang berfungsi untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. Sebagai contoh pengirim pesan memberi otoritas kepada penerima pesan untuk melakukan pembelian, namun kemudian ia menyangkal telah memberikan otoritas tersebut. (Renaldi munir, 2006:9).

2.1.3 Sejarah kriptografi

Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi sudah digunakan 4000 tahun yang lalu yang diperkenalkan oleh orang – orang mesir untuk mengirim pesan kepasukan militer yang berada dilapangan dan supaya pesan tersebut tidak terbaca oleh pihak musuh walaupun kurir pembawa pesan tersebut tertangkap oleh musuh.

Pada zaman romawi kuno dikisahkan pada suatu saat, ketika Julius Caesar ingin mengirmkan satu pesan rahasia kepada seorang jendral dimedan perang. Pesan tersebut harus dikirimkan melalui seorang kurir, tetapi karena pesan

(4)

tersebut mengandung rahasia, Julius Caesar tidak ingin pesan tersebut terbuka ditengah jalan. Disini Julius Caesar memikirkan bagaimana mengatasinya yaitu dengan cara mengacak pesan tersebut menjadi suatu pesan yang tidak dapat dipahami oleh siapapun kecuali hanya dapat dipahami oleh jendralnya saja. Tentu sang jendral telah diberi tahu sebelumnya bagaimana cara membaca pesan yang teracak tersebut, karena telah mengetahui kuncinya. Yang dilakukan Julius Caesar adalah mengganti semua susunan alphabet dari A, B, C, & yaitu A menjadi D, B menjadi E, C menjadi F dan seterusnya. Sehingga kalau Julius menuliskan kata “ SEKARANG & VHNDUDQI & membacanya. (Dony ariyus, 2006:9).

Sejarah lengkap kriptografi dapat ditemukan di dalam buku david kahn,

the codebreakers. Penulis rahasia ini dapat dilacak kembali ke 3000 tahun

sebelum masahi saat digunakan oleh bangsa mesir. mereka menggunakan hieroglyphcs yang tidak standar untuk menyembunyikan tulisan supaya tidak dapat diketahui oleh mereka yang tidak diharapkan.

Gambar 2.2 contoh Hieroglyphcs untuk menyandikan Huruf

Tag daun, gambar, heroglyph, huruf, lebah, matahari, Mesir, obyek, tanda, tulisan

Hieroglyphcs diturunkan dari bahasa yunani hieroglyphica yang berarti “ukiran rahasia” . Hieroglyphcs berevolusi menjadi hieratic, yaitu aksara bergaya (stylized script) yang lebih mudah digunakan.

(5)

Gambar 2.3 Media kriptografi yang digunakan oleh bangsa Yunani Kuno. Sekitar 400 SM, kriptografi militer digunakan oleh bangsa Sparta dalam bentuk sepotong papyrus atau scytale, perkamen yang dibungkus dengan batang kayu silinder. Pada media tersebut pesan ditulis secara horizontal (baris per baris). Bila pita dilepaskan, huruf – huruf didalamnya tersusun membentuk pesan rahasia. Untuk membaca pesan penerima melilitkan kembali silinder yang diameternya sama dengan diameter silinder pengirim. (Emy setyaningsih, 2015:3 ).

2.2 Keamanan Algoritma Kriptografi

Lard Knudsen mengelompokkan hasil kriptanalis ke dalam beberapa kategori berdasarkan jumlah dan kualitas informasi yang berhasil ditemukan:

1. Pemecahan total (total break). Kriptanalis menemukan kunci K sedemikian sehingga dekripsi Dk ( C ) = P.

2. Deduksi (penarikan kesimpulan) global (global deducation). Kriptanalis menemukan algoritma alternative, A, yang akivalen dengan Dk ( C ) tetapi

tidak mengetahui kunci K.

3. Deduksi lokal (instance/local deduction). Kriptanalis menemukan plainteks dari cipherteks yang disadap.

4. Deduksi informasi (information deduction). Kriptanalis menemukan beberapa informasi perihal kunci atau plainteks. Misalnya kriptanalis mengetahui beberapa kunci, kriptanalis mengetahui bahasa yang digunakan untuk menulis plainteks, kriptanalis mengetahui format plainteks, dan sebagainya. Sebuah algoritma kriptografi dikatakan aman

(6)

mutlak tanpa syarat (unconditionally secure) bila cipherteks yang dihasilkan oleh algoritma tersebut tidak mengandung cukup informasi untuk menentukan plainteksnya. (Renaldi munir, 2006:18).

2.2.1 Ancaman Terhadap Keamanan Data

Keamanan data pada lalu lintas jaringan adalah suatu hal yang di inginkan semua orang untuk menjaga privacy. Supaya data yang dikirim aman dari orang yang tidak bertanggung jawab dengan menyembunyikan data memakai algoritma kriptografi.

Banyak terjadinya pertukaran informasi setiap detik di internet. Banyak terjadinya pencurian dari informasi itu sendiri oleh pihak – pihak yang tidak bertanggung jawab. Ancaman keamanan yang terjadi terhadap informasi adalah:

1. Interruption: merupakan suatu ancaman terhadap availability, informasi, data yang ada dalam sistem komputer dirusak, dihapus, sehingga jika data informasi tersebut dibutuhkan tidak ada lagi.

2. Interception: merupakan ancaman terhadap kerahasiaan (secrecy). Informasi yang ada disadap atau orang yang tidak berhak mendapat akses ke komputer dimana informasi tersebut disimpan.

3. Modification: merupakan ancaman terhadap integritas. Orang yang tidak berhak berhasil menyadap lalu lintas informasi yang sedang dikirim dan dirubah sesuai dengan keinginan si orang tersebut.

4. Fabrication: merupakan ancaman terhadap integritas. Orang yang tidak berhak berhasil meniru (memalsukan) suatu informasi yang ada sehingga orang yang menerima informasi tersebut menyangka informasi tersebut berasal dari orang yang dikehendaki oleh sipenerima informasi tersebut. (Dony ariyus, 2006:6).

(7)

Gambar 2.4 Ancaman Keamanan Tabel 2.1 Ancaman Terhadap Keamanan

2.3 Serangan Terhadap Kriptografi

Keseluruhan point dari kriptografi adalah menjaga kerahasiaan plainteks atau kunci, atau keduanya dari penyadap. Penyadap berusaha mendapatkan data yang di gunakan untuk kegiatan kriptanalisis (cryptanalysis). Penyadap bisa juga merangkap sebagai seorang kriptanalis. Istilah lain untuk pihak lawan adalah penyusup (intruder), penyerang (attacker), atau pencegat (interceptor). kriptanalisis ialah ilmu yang mempelajari upaya-upaya untuk memperoleh plainteks dari cipherteks tanpa informasi tentang kunci yang digunakan.

(8)

2.3.1 Jenis – Jenis Serangan

Serangan atau kriptanalisis terhadap sistem kriptografi dapat dikelompokkan dengan beberapa cara yaitu:

1. Berdasarkan keterlibatan penyerang dalam komunikasi, serangan dapat dibagi atas dua macam, yaitu, serangan pasif dan serangan aktif :

a. Serangan pasif (passive attack)

Pada serangan ini, penyerang tidak terlibat dalam komunikasi antara pengirim dan penerima, namun penyerang menyadap semua pertukaran pesan antara kedua entitas tersebut. Tujuannya adalah untuk mendapatkan sebanyak mungkin informasi yang digunakan untuk kriptanalisis. Beberapa metode penyadapan antara lain :

1. Wiretapping : penyadap mencegat data yang ditransmisikan pada saluran kabel komunikasi dengan menggunakan sambungan perangkat keras.

2. Electromagnetic eavesdropping : penyadap mencegat data yang ditransmisikan melalui saluran wireless, misalnya radio dan microwave.

3. Acoustic eavesdropping : menangkap gelombang suara yang dihasilkan oleh suara manusia.

b. Serangan aktif (active attack)

Pada jenis serangan ini, penyerang mengintervensi komunikasi dan ikut mempengaruhi sistem untuk keuntungan dirinya. Misalnya penyerang mengubah aliran pesan seperti menghapus sebagian cipherteks , mengubah cipherteks, menyisipkan potongan cipherteks palsu, me-replay pesan lama, mengubah informasi yang tersimpan, dan sebagainya.

Serangan yang termasuk jenis serangan aktif adalah man – in – the – middle attack. Pada serangan ini, penyerang mengintersepsi komunikasi antara dua pihak yang berkomunikasi kemudian “menyerupai” satu pihak

(9)

dengan cara bersikap seolah – olah ia adalah salah satu pihak yang berkomunikasi (pihak lainnya tidak menyadari kalau ia berkomunikasi dengan pihak yang salah). Tujuan dari serangan ini adalah untuk mendapatkan informasi berharga seperti kunci atau nilai rahasia lainnya caranya, penyerang memutus komunikasi antara dua pihak lalu menempatkan dirinya diantara keduannya.

2. Berdasarkan banyaknya informasi yang diketahui oleh kriptanalis, maka serangan dapat dikelompokkan menjadi lima jenis, yaitu:

a. Ciphertext-only attack

Ini adalah jenis serangan yang paling umum namun paling sulit, karena informasi yang tersedia hanyalah cipherteks saja. Kriptanalis memiliki beberapa cipherteks dari beberapa pesan, semuanya dienkripsi dengan algoritma yang sama. Untuk itu kriptanalis menggunakan beberapa cara, seperti mencoba semua kemungkinan kunci secara exhaustive search. Menggunkan analis frekuensi, membuat terkaan berdasarkan informasi yang diketahui dan sebagainya.

b. Known-plaintext attack

Ini adalah jenis serangan dimana kriptanalis memiliki pasangan plainteks dan cipherteks yang berkoresponden.

c. Chosen-plaintext attack

Serangan jenis ini lebih hebat dari pada known-plaintext attack, karena kriptanalis dapat memilih plainteks yang dimilikinya untuk dienkripsikan, yaitu plainteks - plainteks yang lebih mengarahkan penemuan kunci.

d. Chosen-ciphertext attack

Ini adalah jenis serangan dimana kriptanalis memilih cipherteks untuk didekripsikan dan memiliki akses ke plainteks hasil dekripsi.

(10)

e. Chosen-text attack

Ini adalah jenis serangan yang merupakan kombinasi chosen-plaintext attack dan chosen-chiphertext attack.

3. Berdasarkan teknik yang digunakan dalam menemukan kunci, maka serangan dapat dibagi menjadi dua, yaitu :

a. Exhaustive attack atau brute force attack

Ini adalah serangan untuk mengungkap plainteks atau kunci dengan menggunakan semua kemungkinan kunci. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Selain itu kriptanalis memiliki sejumlah cipherteks dan plainteks yang bersesuaian.

b. Analytical attack

Pada jenis serangan ini, kriptanalis tidak mencoba-coba semua kemungkinan kunci tetapi menganalisis kelemahan algoirtma kriptografi untuk mengurangi kemungkinan kunci yang tidak ada. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Analisis dapat menggunakan pendekatan matematik dan statistic dalam rangka menemukan kunci.

Untuk menghadapi serangan ini, kriptografer harus membuat algoritma kriptografi yang kompleks sedemikian sehingga plainteks merupakan fungsi matematika dari cipherteks dan kunci yang cukup kompleks.

c. Related-key attack

Kriptanalis memiliki cipherteks yang dienkripsi dengan dua kunci berbeda. Kriptanalis tidak mengetahui kedua kunci tersebut namun ia mengetahui hubungan antara kedua kunci, misalnya mengetahui kedua kunci hanya berbeda 1 bit.

(11)

Ini mungkin jenis serangan yang paling ekstrim dan paling efektif. Penyerang mengancam, mengirim surat gelap, atau melakukan penyiksaan sampai orang yang memegang kunci memberinya kunci untuk mendekripsi pesan. (Renaldi munir, 2006:19).

2.3.2 Kompleksitas Serangan

Kompleksitas serangan dapat diukur dengan beberapa cara, antara lain kompleksitas data, kompleksitas waktu, dan kompleksitas memori yaitu: 1. Kompleksitas data (data complexity)

Jumlah data (plainteks dan cipherteks) yang dibutuhkan sebagai masukan untuk serangan. Semakin banyak data yang dibutuhkan untuk melakukan serangan, semakin kompleks serangan tersebut, yang berarti semakin bagus sistem kriptografi tersebut.

2. Kompleksitas waktu (time complexity)

Waktu yang dibutuhkan untuk melakukan serangan. Semakin lama waktu yang dibutuhkan untuk melakukan serangan, berarti semakin bagus kriptografi tersebut.

3. Kompleksitas ruang memori (space/storage complexity)

Jumlah memori yang dibutuhkan untuk melakukan serangan. Semakin banyak memori yang dibutuhkan untuk melakukan serangan, berarti semakin bagus sistem kriptografi tersebut. (Renaldi munir, 2006:19).

2.4 Algoritma Kriptografi

Algoritma ditinjau dari asal usul kata, kata algoritma mempunyai sejarah yang menarik, kata ini muncul didalam kamus Webster sampai akhir tahun 1957 hanya menemukan kata algorism yang mempunyai arti peroses perhitungan dengan bahasa arab. Algoritma berasal dari nama penulis buku arab yang terkenal yaitu abu jafar Muhammad ibnu musa al-khuwarizmi (al-khuwarizmi dibaca oleh orang barat menjadi algorism). Kata algorism lambat laun berubah menjadi algorithm.

(12)

Dalam perkembangannya, kriptografi juga digunakan untuk mengidentifikasi pengiriman pesan dan tanda tangan digital dan keaslian pesan dengan sidik jari digital. (Dony ariyus, 2005:13).

Definisi terminologinya algoritma adalah urutan langkah – langkah logis untuk penyelesaian masalah yang disusun secara sistimatis. Algoritma kriptografi merupakan langkah – langkah logis bagaimana menyembunyikan pesan dari orang – orang yang tidak berhak atas pesan tersebut.

Beberapa istilah yang harus diketahui yaitu : 1. Pesan, Plainteks dan Cipherteks

Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah (plaintext) atau teks jelas (cleartext). Agar pesan tidak dapat dimengerti maknanya oleh pihak lain yang tidak berkepentingan, maka pesan perlu disandikan kebentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks (ciphertext) atau kriptogram (cryptogram). Cipherteks harus dapat ditransformasikan kembali menjadi plainteks semula agar dapat diterima dan bisa dibaca.

2. Pengirim dan Penerima

Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Pengirim tentu menginginkan pesan dapat dikirm secara aman, yaitu pengirim yakin bahwa pihak lain tidak dapat membaca isi pesan yang dikirim. Solusinya adalah dengan cara meyandikan pesan menjadi cipherteks.

3. Enkripsi dan Dekripsi

Proses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption) atau enciphering. Sedangkan proses mengembalikan cipherteks menjadi plainteks disebut dekripsi (decryption) atau deciphering.

(13)

4. Cipher dan Kunci

Algoritma kriptografi disebut juga chipper, yaitu aturan untuk enkripsi dan dekripsi, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk enciphering dan deciphering.

Keamanan dari algoritma kriptografi tergantung dari bagaimana suatu algoritma itu bekerja, maka algoritma semacam ini disebut dengan algoritma terbatas. Algoritma terbatas merupakan suatu algoritma yang dipakai sekelompok orang untuk merahasiakan pesan yang dikirimnya. Jika salah satu dari anggota kelompok itu keluar dari kelompoknya maka, algoritma yang dipakai diganti dengan yang baru, jika tidak hal ini bisa menjadi masalah dikemudian hari.

Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yang berisi elemen – elemen plainteks dan himpunan yang berisi cipherteks. enkripsi dan dekripsi merupakan fungsi yang memetakan elemen – elemen antara dua himpunan tersebut. Misalkan P menyatakan plainteks dan C menyatakan cipherteks, maka fungsi enkripsi E memetakan P ke C.

E ( P ) = C

Dan fungsi dekripsi D memetakan C ke P

D ( C ) = P

Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan semula, maka kesamaan berikut harus benar.

D ( E ( P )) = P

Kriptografi mengatasi masalah keamanan data dengan menggunakan kunci, yang dalam hal ini algoritma tidak dirahasiakan lagi, tetapi kunci harus tetap dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enciphering dan deciphering.

(14)

Kunci biasanya berupa string atau deretan bilangan. Dengan menggunakan K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai :

𝐸𝑘( P ) = C dan 𝐷𝑘 ( C ) = P

Dan kedua fungsi ini memenuhi

Dk ( Ek ( P )) = P

Keterangan : P = plainteks C = cipherteks K = kunci

Ek = Proses enkripsi menggunakan kunci K

Dk = Proses dekripsi menggunakan kunci K

Skema enkripsi dan dekripsi dengan menggunakan kunci diperlihatkan pada gambar dibawah ini :

Gambar 2.5 Skema Enkripsi dan Dekripsi dengan menggunakan Kunci

5. Sistem kriptografi

Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistem kriptografi (cryptosystem) adalah kumpulan yang tediri dari algoritma kriptografi, semua plainteks dan cipherteks yang mungkin, dan kunci. Di dalam kriptografi, cipher hanyalah salah satu komponen saja.

(15)

6. Penyadap

Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan selama ditransmisi. Tujuan penyadap adalah untuk mendapat informasi sebanyak – banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. Nama lain penyadap: enemy, adversary, intruder, interceptor, bad guy.

7. Kriptanalisis dan kriptologi

Kriptologi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis. Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalis. Jika seorang kriptografer (cryptographer) mentransformasikan plainteks menjadi cipherteks dengan suatu algoritma dan kunci maka sebaliknya seorang kriptanalis berusaha untuk memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi (cryptology) adalah studi mengenai kriptografi dan kriptanalisis. Baik kriptografi maupun kriptanalisis keduanya saling berkaitan, dapat dilihat seperti gambar dibawah ini:

(16)

Keamanan dari algoritma kriptografi tergantung dari bagaimana suatu algoritma itu bekerja, maka algoritma semacam ini disebut dengan algoritma terbatas. Algoritma terbatas merupakan suatu algoritma yang dipakai sekelompok orang untuk merahasiakan pesan yang dikirimnya. Jika salah satu dari anggota kelompok itu keluar dari kelompoknya maka, algoritma yang dipakai diganti dengan yang baru, jika tidak hal ini bisa menjadi masalah dikemudian hari. (Renaldi munir, 2006:3).

2.5 Macam – Macam Algoritma Kriptografi

Algoritma kriptografi dibagi menjadi tiga bagian berdasarkan dari kunci yang dipakainya :

1. Algoritma simetri (menggunakan satu kunci untuk proses enkripsi dan dekripsinya)

2. Algoritma asimetri (menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya)

3. Hash Function (fungsi hash satu arah) 2.5.1 Algoritma Simetri

Algoritma ini juga sering disebut dengan algoritma klasik, karena memakai kunci yang sama untuk proses enkripsi dan dekripsinya. Algoritma ini sudah ada lebih dari 4000 tahun yang lalu. Mengirim pesan dengan menggunakan algoritma ini, sipenerima pesan harus diberi tahu kunci dari pesan tersebut agar bisa mendekripsi pesan yang dikirim. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci, jika kunci tersebut diketahui oleh orang lain maka, orang tersebut bisa melakukan enkripsi dan dekripsi terhadap pesan tersebut. Algoritma yang memakai kunci simetri diantaranya adalah:

1. Data Encryption Standard (DES) 2. RC2, RC4, RC5, RC6

3. International Data Encryption Algorithm (IDEA) 4. Advanced Encryption Standard (AES)

(17)

5. One Time Pad (OTP) 6. A5, dan lain – lain

Gambar 2.7 Skema Kriptografi Simetri 2.5.2 Algoritma Asimetri

Algoritma asimetri sering juga disebut dengan algoritma kunci public, dengan arti kata kunci yang digunakan untuk melakukan enkripsi dan dekripsinya berbeda. Pada algoritma asimetri kunci terbagi menjadi dua bagian :

1. Kunci umum (public key): kunci yang boleh semua orang tahu (dipublikasikan)

2. Kunci pribadi (private key): kunci yang dirahasiakan (hanya boleh diketahui oleh satu orang)

Gambar 2.8 Skema Kriptografi Asimetri

Kunci – kunci tersebut saling berhubungan satu dengan yang lainnya. Dengan kunci public orang dapat mengenkripsi pesan tapi tidak bisa mendekripsinya, hanya orang yang memiliki kunci pribadi yang dapat mendekripsi pesan tersebut. Algoritma asimetris bisa melakukan pengiriman pesan lebih aman dari pada algoritma simetris. Algoritma yang memakai kunci public diantaranya adalah:

(18)

1. Digital Signature Algorithm (DSA) 2. RSA

3. Diffie – Hellman (DH)

4. Elliptic Curve Cryptography (ECC) dan lain – lain 2.5.3 Hash Function (Fungsi hash)

Fungsi hash sering disebut dengan fungsi hash satu arah

(one-way-function), message digest, fingerprint, fungsi kompresi dan message

authentication code (MAC), hal ini merupakan suatu fungsi matematika yang

mengambil input panjang variabel dan mengubahnya kedalam urutan biner dengan panjang yang tetap. Fungsi hash biasanya diperlukan bila ingin membuat sidik jari dari suatu pesan. Sidik jari pada pesan merupakan suatu tanda yang menandakan bahwa pesan tersebut benar – benar dari orang yang di inginkan. (Dony ariyus, 2006:14).

2.6 Kriptografi Klasik dan Kriptografi Modern 2.6.1 Kriptografi Klasik

Sebelum komputer ada, kriptografi dilakukan dengan menggunakan pensil dan kertas. Algoritma kriptografi (cipher) yang digunakan saat itu, dinamakan juga algoritma klasik, adalah berbasis karakter, yaitu enkripsi dan dekripsi dilakukan pada setiap karakter pesan. Semua algoritma klasik termasuk ke dalam sistem kriptografi simetri dan digunakan jauh sebelum kriptografi kunci publik ditemukan.

Kriptografi klasik memiliki beberapa ciri: 1. Berbasis Karakter

2. Menggunakan pena dan kertas saja, belum ada komputer 3. Termasuk ke dalam kriptografi kunci simetris.

Tiga alasan mempelajari algoritma klasik: 1. Memahami konsep dasar kriptografi

(19)

2. Dasar algoritma kriptografi modern 3. Memahami kelemahan sistem cipher

Pada dasarnya, algoritma kriptografi klasik dapat dikelompokkan ke dalam dua macam cipher, yaitu :

1. Cipher substitusi (substitution cipher)

Di dalam cipher substitusi setiap unit plainteks diganti dengan satu unit cipherteks. Satu “unit” di sini berarti satu huruf, pasangan huruf, atau dikelompokkan lebih dari dua huruf. Algoritma substitusi tertua yang diketahui adalah Caesar cipher yang digunakan oleh kaisar Romawi , Julius Caesar (sehingga dinamakan juga caesar cipher), untuk mengirimkan pesan yang dikirimkan kepada gubernurnya.

2. Cipher transposisi (transposition cipher)

Pada cipher transposisi, huruf - huruf di dalam plainteks tetap saja, hanya saja urutannya diubah. Dengan kata lain algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Nama lain untuk metode ini adalah permutasi atau pengacakan (scrambling) karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter - karkater tersebut. (Renaldi munir, 2006:55).

2.6.2 Kriptografi Modern

Kriptografi modern menggunakan gagasan dasar yang sama seperti kriptografi klasik (permutasi dan transposisi) tetapi penekanannya berbeda. Pada kriptografi klasik, kriptografer menggunakan algoritma yang sederhana, yang memungkinkan cipherteks dapat dipecahkan dengan mudah (melalui penggunaan statistik, terkaan, dan sebagainya). Algoritma kriptografi modern dibuat sedemikian kompleks sehingga kriptanalis sangat sulit memecahkan cipherteks tanpa mengetahui kunci.

Algoritma kriptografi modern umumnya beroperasi dalam mode bit ketimbang mode karakter (seperti yang dilakukan pada cipher substitusi atau

(20)

cipher transposisi dari algoritma kriptografi klasik). Operasi dalam mode bit berarti semua data dan informasi (baik kunci, plainteks, maupun cipherteks) dinyatakan dalam rangkaian (string) bit biner, 0 dan 1. Algoritma enkripsi dan dekripsi memproses semua data dan informasi dalam bentuk rangkaian bit. Rangkaian bit yang menyatakan plainteks di enkripsi menjadi cipherteks dalam bentuk rangkaian bit, demikian juga sebaliknya. Perkembangan algoritma kriptografi modern berbasis bit di dorong oleh penggunaan komputer digital yang merepresentasikan data dalam bentuk biner. Muara dari kriptografi modern adalah menyediakan keamanan pesan di dalam jaringan komputer. (Renaldi munir, 2006:97).

2.7 Cipher Substitusi

Di dalam cipher substitusi setiap unit plainteks diganti dengan satu unit cipherteks. Satu “unit” disini bisa berarti satu huruf, pasangan huruf, atau kelompok lebih dari dua huruf. Algoritma substitusi tertua yang diketahui adalah

Caesar Cipher yang digunakan oleh Kaisar Romawi, Julius Caesar (sehingga

dinamakan juga Caesar cipher), untuk menyandikan pesan yang ia kirim kepada gubernurnya.

2.7.1 Caesar Cipher

Pada Caesar Cipher, tiap huruf disubtitusi dengan huruf ketiga berikutnya dari susunan alfabet yang sama. Dalam hal ini kuncinya adalah jumlah pergeseran huruf. Susunan alfabet setelah digeser sejauh 3 huruf membentuk sebuah tabel subtitusi, sebagai berikut :

Jadi, huruf A pada plainteks disubtitusi dengan D, huruf B disubtitusi dengan E, demikian seterusnya. Gambar 2.9 memperlihatkan Caesar Wheel yang berfungsi sebagai tabel subtitusi. Caesar wheel terdiri dari dua buah

(21)

lempeng lingkaran besi. Lingkaran besi paling luar menyatakan huruf - huruf plainteks sedangkan lingkaran besi terdalam menyatakan huruf - huruf cipherteks. Lingkaran besi dapat diputar sejauh pergeseran yang diinginkan. Misalnya jika lingkaran besi terdalam digeser sejauh 3 huruf, maka susunan huruf di dalam kedua lingkaran besi mempresentasikan tabel subtitusi di atas.

Gambar 2.9 Caesar Wheel (Sumber:www.pricecodebreaker.com) Contoh 2.9

Dengan menggunakan Caesar Cipher, maka pesan: P = AWASI ASTERIX DAN TEMANNYA OBELIX K = 3

Disandikan dengan Caesar Cipher menjadi

DZDVL DVWHULA GDQ WHPDQQBA REHOLA

Dengan mengkodekan setiap huruf alfabet dengan integer: ’A’ = 0, ’B’ = 1, …, ’Z’ = 25, maka secara matematis pergeseran 3 huruf alfhabet dengan melakukan operasi modulo terhadap plainteks P menjadi cipherteks C dengan persamaan.

(22)

Karena ada 26 huruf di dalam alfhabet. Penerima pesan mengembalikan lagi cipherteks dengan operasi kebalikan, yang secara matematis dapat dinyatakan dengan persamaan.

P = D ( P ) = ( C – 3 ) mod26 (2.10)

Perhatikan bahwa fungsi D adalah kebalikan (inverse) dari fungsi E, yaitu D ( C ) = E-1 (P ).

Cipherteks pada contoh 2.9 dapat juga dihitung dengan persamaan 2.9 sebagai berikut: P1 = ” A ” = 0 C1 = E ( 0 ) = ( 0 + 3 ) mod 26 = 3 = ” D ” P2 = ” W ” = 22 C2 = E ( 22 ) = ( 22 + 3 ) mod 26 = 25 = ” Z ” P3 = ” A ” = 0 C3 = E ( 0 ) = ( 0 + 3 ) mod 26 = 3 = ” D ” P4 = ” S ” = 18 C4 = E ( 18 ) = ( 18 + 3 ) mod 26 = 21 = ” V ” P5 = ” I ” = 8 C5 = E ( 8 ) = ( 8 + 3 ) mod 26 = 11 = ” L ” Dst…….

Bila keseluruhan perhitungan diselesaikan, maka diperoleh cipherteksnya adalah:

DZDVL DVWHULA GDQ WHPDQQBA REHOLA

Cipherteks tersebut dapat dikembalikan menjadi plainteks asal dengan persamaan 2.10 menjadi:

AWASI ASTERIX DANTEMANNYA OBELIX Keterangan:

C = Cipherteks E = Enkripsi P = Plainteks

(23)

Mod = Sisa Bagi

Secara umum, teknik pergeseran huruf sejauh K (dalam hal ini K adalah kunci enkripsi dan dekripsi), fungsi enkripsi adalah

C = E ( P ) = ( P + K ) mod26 (2.9)

Dan fungsi dekripsi adalah

P = D ( C ) = ( C – K ) mod26 (2.10)

Catatan:

1. Pergeseran 0 sama dengan pergeseran 26 (susunan huruf tidak berubah) 2. Pergeseran lain untuk K > 25 dapat juga dilakukan namun hasilnya akan

kongruen dengan bilangan bulat dalam modulo 26. Misalnya k=37 kongruen dengan 11 dalam modulo 26, atau 37 ≡ 11( mod26 )

3. Karena ada operasi penjumlahan dalam persamaan ( 3 ) dan ( 4 ), maka Caesar cipher kadang - kadang dinamakan juga additive cipher. (Renaldi munir, 2006:56).

pada perkembangannya algoritma Caesar Cipher memberikan suatu gagasan baru untuk menggunakan kunci lain atau bisa di sebut dengan

polyalfabetic, kunci bisa jadi nama, alamat atau apa saja yang di ingini oleh

pengirim pesan. Coba perhatikan contoh dibawah ini:

Caesar Cipher dengan menggunakan satu kunci atau bisa di sebut dengan subtitusi deret campur kata kunci, yang perlu di ingat, tidak ada perulangan huruf dalam hal ini. DONY ARIYUS menjadi DONYARIUS, huruf Y terjadi perulangan jadi tidak dipakai lagi.

Menggunakan satu kunci:

Plaintext : “KENAIKAN HARGA BBM MEMBUAT RAKYAT

(24)

Kunci : DONY ARIYUS

Ciphertext : CAGDSCDG UDLID OOF FAFOQDP LDCXDP

CANSE FAGYALSPD

Caesar Cipher bisa di pecahkan dengan cara brute force suatu bentuk dari sebuah serangan yang dimana mencoba kemungkinan untuk menemukan kunci sampai kunci itu ditemukan. Banyaknya kunci dari suatu cipher , cukup meresponkan para cryptanalysis, walaupun dicoba dengan cara brute force attack akan membutuh waktu untuk menemukan kunci dari cipherteks. Tapi cara ini selalu berhasil walaupun memerlukan waktu yang lama. (Dony ariyus, 2006:20).

2.8 Pengertian Smartphone

Beberapa tahun terakhir ini terjadi perkembangan yang sangat pesat pada teknologi, salah satunya perangkat mobile teknologi yang kita sadari telah banyak ada di sekitar kita adalah banyaknya “Ponsel Cerdas” (Smartphone) atau telepon genggam berteknologi. Smartphone ini tidak hanya mampu untuk melakukan tugas telepon genggam biasa, namun juga tugas – tugas yang biasa dilakukan oleh komputer pada umumnya.

Smartphone atau yang dikenal arti bahasa Indonesia adalah telepon pintar. Merupakan alat telekomunikasi yang menggunakan sistem operasi sebagai penggerak aplikasi yang ada dalam telepon tersebut. Smartphone memiliki fungsi yang lebih dibandingkan dengan telepon genggam biasa yang sering digunakan. Selain dapat digunakan sebagai alat telekomunikasi, smartphone juga dapat menjadi alat sosialisasi dalam dunia nyata, dapat membuka dokumen yang ada, koneksi yang juga lebih lengkap seperti Wi-Fi, BroadBand, dan juga Bluetooth 2.9 Android Studio

Android adalah sistem operasi mobile berbasis Linux yang dimodifikasi untuk perangkat bergerak (mobile devices) yang terdiri dari sistem operasi, middleware, dan aplikasi – aplikasi utama. Awalnya, android dikembangkan oleh android Inc. perusahaan ini kemudian dibeli oleh google pada tahun 2005. Sistem operasi

(25)

android kemudian diluncurkan bersamaan dengan dibentuknya organisasi Open Handset Al-Liance tahun 2007. Selain google, beberapa nama – nama besar juga ikut serta dalam Open Handset Alliance, antara lain Motorola, Samsung, LG, Sony Ericsson, T-Mobile, Vodafone, Toshiba, dan Intel.

Gambar 2.10 logo android

Platform pengembang aplikasi android ini bersifat open-source atau terbuka. Sehingga anda dapat mengembangkan kemampuan untuk membangun aplikasi yang kaya dan inovatif. Bahkan seseorang pengembang (developer) android dapat membuat aplikasi yang bervariasi, kemudian menjual untuk keuntungan pribadi tanpa ada lisensi ke produsan atau vendor tertentu. (Zamrony P. juhara, 2016:1).

2.9.1 Arsitektur Android Studio

Secara garis besar, arsitektur android terdiri dari atas applications dan widgets, applications frameworks, libraries, android run time, dan Linux karnel. Applications dan widgets merupakan layar atau lapis, dimana kita berhubungan dengan aplikasi saja.

Applications frameworks merupakan open development platform yang ditawarkan android untuk dapat dikembangkan guna membangun aplikasi. Pengembangan memiliki akses penuh menuju API Frameworks seperti yang dilakukan oleh aplikasi kategori inti. Komponen – komponen yang termasuk didalam applications frameworks adalah sebagai berikut: views, content

(26)

provider, resource manager, notification manager, dan activity manager. Libraries merupakan layar, dimana fitur – fitur android berada.

2.9.2 Struktur Aplikasi Android

Struktur aplikasi android atau fundamental aplikasi ditulis dalam bahasa pemrograman java. Kode java dikompilasi bersama dengan file resource yang dibutuhkan oleh aplikasi, dimana prosesnya di package oleh tools yang dinamakan “apt tools” kedalam paket android, sehingga menghasilkan file dengan ekstensi apk. File apk ini yang disebut dengan aplikasi, dan nantinya dapat dijalankan pada device atau peralatan mobile. Ada empat komponen pada aplikasi android sebagai berikut:

a. activities merupakan komponen untuk menyajikan user interface ( tampilan program ) kepada pengguna.

b. Service merupakan komponen yang tidak memiliki user interface ( tampilan program ), tetapi service berjalan secara backgrounds.

c. Broadcast receiver merupakan komponen yang berfungsi menerima dan bereaksi untuk menyampaikan notifikasi.

d. Content provider merupakan komponen membuat kumpulan aplikasi data secara spesifik sehingga bisa digunakan oleh aplikasi lain.

2.9.3 Kelebihan dan Kekurangan Android

Android merupakan system operasi yang dirancang dan dipublikasikan oleh google, sebuah perusahaan mesin pencari dan raksasa internet. Dewasa ini pabrikan ponsel dan smartphone ramai – ramai memakai android sebagai sistem operasi mereka lebih memilih android sebagai OS yang dipakai dari pada menggunakan sistem operasi lain dikarenakan OS android terdapat kelebihan didalamnya sebagai sistem operasi saat ini.

Kelebihan android diantaranya yaitu:

1. Android bersifat terbuka, karena berbasis Linux yang open sourcenya bisa dikembangkan oleh siapa saja.

(27)

2. Akses mudah ke android app market, pengguna android adalah orang yang gemar utak atik handphone. Dengan google android app market dapat mendownload berbagai aplikasi dengan geratis.

3. Widget, pada layar utama android terdapat widget yang memudahkan user mengakses aplikasi android, misalnya menampilkan status terbaru FB, Twitter atau melihat kondisi cuaca daerah tertentu (tentunya dibutuhkan koneksi dengan internet).

4. Sistem operasi merakyat, ponsel android beda sekali dengan IOS yang terbatas pada iphone dari apple, maka android memiliki banyak produsen dengan gadget andalan masing – masing mulai dari HTC hingga Samsung. 5. Fasilitas penuh USB, anda dapat mengganti baterai, mass storage,

diskdrive, dan USB tathering.

6. Mudah dalam hal notifikasi, sistem operasi ini bisa memberitahukan anda tentang adanya SMS, Email, atau bahkan artikel terbaru dari RSS Reader. Bahkan anda tidak akan terlewat dalam hall miscall sekalipun.

7. Mendukung semua layanan google, sistem operasi android mendukung semua layanan dari google mulai dari gmail sampai google reader. Semua layanan google biasa dimiliki dengan satu sistem operasi yaitu android. 8. Install ROM modifikasi, jika mendapati ROM yang tidak resmi,

maksudnya adalah versi yang telah rilis tidak sesuai dengan spesifikasi ponsel kita, jalan terakhir adalah modifikasi. Jangan khawatir ada banyak custom ROM yang dapat dipakai di ponsel android dan dijamin tidak akan membahayakan perangkat anda.

Kekurangan android diantaranya yaitu:

1. Terhubung dengan internet, android dapat dikatakan sangat memerlukan koneksi internet yang aktif. setidaknya harus ada koneksi internet GPRS didaerah anda, agar perangkat siap untuk online sesuai dengan kebutuhan kita.

2. Perusahaan perangkat terkadang lambat mengeluarkan versi resmi dari android, meskipun terkadang tidak ada perbedaan mencolok dalam hal UI.

(28)

3. Android market kurang control dari pengelola, terkadang masih terdapat malware.

4. Sebagai penyedia layanan langsung, terkadang pengguna sangat sulit sekali terhubung dengan pihak google.

5. Iklan, disetiap aplikasi hampir selalu muncul iklan, kecuali aplikasi bawaan android sendiri atau aplikasi berbayar. Karena mudah dan geratis, terkadang sering diboncengi iklan. Secara tampilan memang tidak mengganggu kinerja aplikasi itu sendiri, karena memang kadang berada dibagian atas atau bawah aplikasi.

6. Boros baterai.

2.9.4 Versi Android Studio

Android telah mengalami sejumlah pembaruan sejak pertama kali dirilis. Rata – rata, versi terbaru dari android dirilis setiap 6 bulan. Beberapa jenis versi android dan nama kodenya. Penamaan kode menggunakan nama makanan dan huruf depannya urut sesuai abjad sebagai berikut:

Tabel 2.2 Versi Android

Berikut beberapa jenis versi android dan penjelasannya: a. Banana Bread

Sebagai hasil pengembang versi perdana, versi ini pertama kali dirilis oleh google pada tanggal 9 maret 2009. Versi ini memiliki fitur – fitur : jam,

(29)

alarm, voice search (pencarian suara), pengiriman pesan dengan gmail dan pemberitahuan dengan email.

b. Cupcake

Android 1.5 (API Level 3) yang dikenal dengan nama kode Cupcake ini dirilis pada april 2009. API Level 3 membawa perbaikan dari versi sebelumnya dan tentu saja fitur baru. Misalnya, dukungan On-screen keyboard, video recording, home screen widget, fitur auto pairing pada Bluetooth, karnel Linux versi 2.6.7, dan kemampuan memperbaiki filesistem SD Card yang rusak.

c. Donut

Android 1.6 (API Level 4) yang dirilis pada oktober 2009 ini merupakan rilis minor dengan fitur utama berupa dukungan teknologi CDMA, gesture, text-to-speech engine, dan fitur pencarian cepat yang memungkinkan anda mencari semua hal seperti kontak, riwayat jelajah internet, bookmark, dan lainnya.

d. Eclair

Android 2.1 (API Lavel 7) yang dirilis pada januari 2010 ini mengusung fitur baru seperti live wallpaper dan beberapa fitur baru seperti android 2.0, misalnya menggunakan banyak akun, kontak cepat, Bluetooth 2.1 dan profil Bluetooth baru yaitu object push profile (OPP) dan phone book access profile (PBAP).

e. Froyo

Android 2.2 (API Level 8) dirilis pada mei 2010. Fitur baru yang dibawa adalah dukungan OpenGL ES 2.0, instalasi aplikasi penyimpan eksternal (SD Card), dan android cloud to device messaging yang memungkinkan aplikasi melakukan push messaging dan portable hotspot yang memungkinkan piranti android menjadi hotspot Wi-Fi untuk berbagai koneksi internet.

f. Gingerbread

Android 2.3 (API Level 9 dan 10) mengusung beberapa fitur baru, antara lain dukungan banyak kamera, near field communication (NFC), download

(30)

manager service, dukungan terhadap sensor lain seperti giroskop, dan barometer.

g. Honeycomb

Android 3.0 (API Level 11) membawa perubahan besar terutama pada tampilan UI yang berubah drastis supaya optimal untuk piranti layar besar seperti tablet. Pada versi ini diperkenalkan fragment, action bar, system clipboard, dan cursor loader.

h. Ice Cream Sandwich

Android 4.0 (API Level 14) membawa perubahan besar terutama pada tampilan UI android 3.0 supaya cocok pada layar kecil sehingga memungkinkan aplikasi anda tampak konsisten di tablet maupun ponsel. Fitur baru seperti android beam dan Wi-Fi direct juga ditambahkan.

i. Jellybean

Android 4.1 (API Level 16) adalah rilis minor yang membawa perbaikan fungsionalitas dan performa rendering user – interface (UI). Versi 4.2 (API Lavel 17) mengusung fitur baru seperti gesture typing dan dukungan multiuser dipiranti tablet. Versi 4.3 (API Level 18) membawa perbaikan berupa dukungan Bluetooth low energy dan OpenGL ES 3.0. beberapa fitur baru antara lain dukungan terhadap bahasa internasional dan penulisan teks dua arah (kiri ke kanan atau kanan ke kiri untuk bahasa – bahasa tertentu seperti bahasa arab).

j. Kitkat

Android 4.4 (API evel 19) ini mengusung sejumlah perbaikan dan fitur baru, terutama dukungan teknologi near field communication (NFC) melalui host card emulation, percetakan ke printer nirkabel, WebView dengan rendering engine Chromium, dan dukungan yang lebih baik bagi piranti yang menggunakan RAM rendah.

2.10 Barcode 2D Quick Response Code (QR Code)

Barcode 2D Biasa disebut dengan QR Code merupakan matrix code yang dikembangkan pada tahun 1994 oleh Denso-Wave, yakni divisi Toyota Corporation Jepang. Kepanjangan dari QR adalah Quick Response yang artinya

(31)

bisa meng-encode data yang ada didalam code tersebut dengan cepat. QR Code ini berisi informasi baik dalam arah vertikal dan horizontal dan Pola simbol berupa matriks titik dalam suatu area berbentuk persegi empat, ukuran kotak sekitar 1,5 centi meter persegi. QR Code bisa menyimpan data numerik sepanjang 7.089 digit dan 4.296 karakter huruf.

Fungsi dari QR Code hampir sama dengan sistim barcode satu dimensi yang kita kenal selama ini yaitu digunakan untuk mengidentifikasi suatu barang secara cepat dan mudah, tetapi di era modern saat ini QR Code ini bisa digunakan lebih luas untuk segala macam kebutuhan seperti tiketing pesawat, tiket bioskop, iklan, MMS, kartu nama, dalam bidang post digunakan sebagai perangko online, dan dalam bidang industri digunakan sebagai kode informasi untuk komponen elektronika, perhiasan dsb. Sehingga dapat disimpulkan keuntungan yang paling utama dari penggunaan 2D adalah efisiensi, kecepatan, ketepatan dan keamanan data serta mengalokasian waktu yang ada.

Namun diantara standar-standar Barcode 2D tersebut hanya Barcode 2D dengan standar QR Code yang memiliki keunggulan lebih dibanding yang lainnya, diantaranya QR Code dapat menampung data lebih banyak dengan ukuran yang kecil, dapat dipergunakan untuk semua kategori penggunaan dan telah menjadi Barcode 2D yang diakui oleh dunia. Dengan adanya perangkat Smatrphone Berbasis android memudahkan informasi pengenalan suatu produk yang menggunakan sistem Barcode tersebut.

Sekarang QR Code tidak hanya diletakkan pada barang saja sekarang informasi apa saja menggunakan QR Code karena Barcode 2D dengan standar QR Code telah menjadi standar dunia dan memiliki banyak kelebihan termasuk dari segi penggunaannya.

Pembacaan QR Code Dengan menggunakan software khusus, untuk pembacaan data yang ada pada QR Code salah satunya bisa menggunakan HP yang didalam nya sudah terdapat software QR Code reader

(32)

Selain dengan menggunakan HP dan Barcode reader bahkan ada sejumlah produk kamera digital yang mampu menangkap citra barcode 2D untuk kemudian dapat diterjemahkan oleh software ke dalam pesan yang dapat dibaca oleh kita.

2.11 Rekaya Perangkat Lunak

RPL (Rekayasa Perangkat Lunak) adalah suatu disiplin ilmu yang mempelajari semua aspek produksi dalam suatu proses perancangan suatu perangkat lunak / sistem dengan tujuan untuk dapat menghasilkan suatu perangkat lunak / sistem dengan cara yang efektif dan efisien dari segi biaya, waktu dan tenaga. Pada dasarnya rekayasa perangkat lunak lebih memfokuskan pada tahapan – tahapan pengembangan suatu perangkat lunak yakni: Analisis, desain, implementasi, pengujian, pemeliharaan, dan dokumentasi. (Roger S Pressman, 2002).

2.12 Metode Pengembangan Sistem

2.12.1 Software Development Life Cycle (SDLC)

Pada setiap pengembangan perangkat lunak tidak akan terlepas dari sebuah

Software Development Life Cycle (SDLC). SDLC merupakan sebuah siklus

pengembangan perangkat lunak yang terdiri dari beberapa tahapan. Tahapan-tahapan tersebut adalah requirements (analisis kebutuhan), design (perancangan), coding/implementation (implementasi), testing (pengujian), dan maintenance (perawatan). Dalam SDLC terdapat banyak metode yang dapat dipakai untuk mengembangkan sebuah perangkat lunak misal Metode Waterfall.

2.12.2 Metode Waterfall

Metode Waterfall sering juga disebut model sekuensial linier (sequential

linear) atau alur hidup klasik (classic life cycle) adalah metode yang

menyarankan sebuah pendekatan yang sistematis dan sekuensial melalui tahapan - tahapan yang ada pada SDLC untuk membangun sebuah perangkat lunak. bahwa metode Waterfall menekankan pada sebuah keterurutan dalam proses pengembangan perangkat lunak. Model air terjun (waterfall)

(33)

menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengodean, pengujian dan tahap akhir pemeliharaan.

Pada penulisan Tugas Akhir yang berjudul “Aplikasi Enkripsi dan Dekripsi Menggunakan Algoritma Caesar Cipher Dalam Bentuk QR Code Berbasis Android”. Metodologi penelitian ini menggunakan satu metode rancang bangun aplikasi dengan siklus pengembangan model air terjun atau metode waterfall. Metode ini adalah sebuah metode yang tepat untuk membangun sebuah perangkat lunak yang tidak terlalu besar dan sumber daya manusia yang terlibat dalam jumlah yang terbatas.

Model waterfall menurut Roger S. Pressman:

Gambar 2.11 Model waterfall menurut Roger S. Pressman

Model pengembangan ini tidak mengizinkan tahapan tertentu langsung menggantikan tahapan berikutnya sampai operasi tahapan yang terdahulu telah

(34)

terpenuhi. Berikut adalah penjelasan umum dari tahap - tahap yang dilakukan di dalam Model waterfall menurut Roger S. Pressman:

a. Analisis kebutuhan perangkat lunak

Proses pengumpulan kebutuhan dilakukan secara intensif untuk menspesifikasikan kebutuhan perangkat lunak agar dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user. Spesifikasi kebutuhan perangkat lunak pada tahap ini perlu untuk didokumentasikan. b. Desain

Desain perangkat lunak adalah proses multilangkah yang fokus pada desain pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat lunak, representasi antarmuka, dan prosedur pengodean. Tahap ini mentranslasi kebutuhan perangkat lunak dari tahap analisis kebutuhan ke refresentasi desain agar dapat di implementasikan menjadi program pada tahap selanjutnya. Desain perangkat lunak yang dihasilkan pada tahap ini juga perlu didokumentasikan.

c. Pembuatan kode program

Desain harus ditranslasikan kedalam program perangkat lunak. Hasil dari tahap ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahap desain.

d. Pengujian

Pengujian fokus pada perangkat lunak secara dari segi lojik dan fungsional dan memastikan bahwa semua bagian sudah di uji. Hal ini dilakukan untuk meminimalisir kesalahan (error) dan memastikan keluaran yang dihasilkan sesuai dengan yang diinginkan.

e. Pendukung (support) atau pemeliharaan (maintenance)

Tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan ketika sudah dikirimkan ke user. Perubahan bisa terjadi karena adanya kesalahan yang muncul dan tidak terdeteksi saat pengujian atau perangkat lunak harus beradaptasi dengan lingkungan baru. Tahap pendukung atau pemeliharaan dapat mengulangi proses pengembangan mulai dari analisis spesifikasi untuk perubahan perangkat lunak yang sudah ada, tapi tidak untuk membuat perangkat lunak baru.

(35)

2.13 Pengujian Black Box

Salah satu metode pengujian perangkat lunak adalah black box testing. black box testing merupakan sebuah metode yang digunakan untuk menemukan kesalahan dan mendemonstrasikan fungsional aplikasi saat dioperasikan, apakah input diterima dengan benar dan output yang dihasilkan telah sesuai dengan yang diharapkan.

pengujian yang dilakukan hanya mengamati hasil eksekusi melalui data uji dan memeriksa fungsional dari perangkat lunak. Jadi dianalogikan seperti kita melihat suatu kotak hitam, kita hanya bisa melihat penampilan luarnya saja, tanpa tau ada apa dibalik bungkus hitam nya. Sama seperti pengujian black box, mengevaluasi hanya dari tampilan luarnya (interface nya), fungsionalitasnya.tanpa mengetahui apa sesungguhnya yang terjadi dalam proses detilnya (Hanya tau input dan outputnya):

a). Metode Black Box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program.

b). Black Box dapat menemukan kesalahan dalam kategori berikut : 1. Fungsi-fungsi yang tidak benar atau hilang

2. Kesalahan interface

3. Kesalahan dalam strutur data atau akses basis data eksternal 4. Inisialisasi dan kesalahan terminasi

5. Validitas fungsional

6. Kesensitifan sistem terhadap nilai input tertentu 7. batasan dari suatu data

(36)

Gambar 2.12 Skema Kerja dari Teknik Pengujian Black Box

Pengujian black box berfokus pada persyaratan fungsional perangkat lunak dan output yang dihasilkan aplikasi. dengan demikian, pengujian black box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan persyaratan fungsional untuk suatu program. Pengujian black box bukan merupakan alternatife dari teknik white-box, tetapi merupakan pendekatan komplemeter yang kemungkinan besar mampu mengungkap kelas kesalahan dari pada metode white-box.

Metode black box testing ini lebih menitikberatkan pada kebutuhan fungsi dari suatu program aplikasi . pengujian dengan metode ini dilakukan dengan cara memberikan sejumlah masukan pada program aplikasi yang kemudian proses sesuai dengan kebutuhan fungsionalnya untuk menghasilkan keluaran sesuai dengan spesifikasi rancangan, maka program aplikasi yang bersangkutan adalah benar. (Roger S Pressman, 2002).

2.14 Pengertian Unified Modeling Language(UML)

UML singkatan dari Unified Modeling Language yang berarti bahasa pemodelan standar. (Chonoles, 2003:bab 1) mengatakan sebagai bahasa, berarti UML memiliki sintaks dan semantic. Ketika kita membuat model menggunakan konsep UML ada aturan – aturan yang harus di ikuti. Bagaimana elemen pada model – model yang kita buat berhubungan satu dengan lainnya harus mengikuti standar yang ada. UML bukan hanya sekedar diagram, tetapi juga menceritakan konteksnya. UML diaplikasikan untuk maksud tertentu, biasanya antara lain untuk:

1. Merancang perangkat lunak

2. Sarana komunikasi antara perangkat lunak dengan proses bisnis

3. Menjabarkan sistem secara rinci untuk analisa dan mencari apa yang diperlukan sistem

(37)

4. Mendokumentasi sistem yang ada, proses – proses dan organisasinya UML telah diaplikasikan dalam bidang investasi perbankan, lembaga kesehatan, dapartemen pertahanan, sistem terdistribusi sistem pendukung alat kerja, retail, sales dan supplier. (Prabowo pudjo widodo, 2011:6).

2.14.1 Use Case Diagram

Use case atau diagram use case merupakan pemodelan untuk melakukan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih actor dengan sistem informasi yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi – fungsi itu.

Syarat penamaan pada use case adalah nama di definisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut actor dan use case.

a. Actor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang.

b. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit – unit yang saling bertukar pesan antar-unit atau aktor.

Tabel 2.3 Simbol – simbol yang ada pada diagram use case:

simbol Nama simbol Keterangan

Use Case Fungsionalitas yang disediakan sistem

sebagai unit – unit yang saling bertukar pesan antara unit atau aktor; biasanya dinyatakan dengan menggunakan kata kerja di awal frase nama use case

(38)

Aktor / actor Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya dinyatakan menggunakan kata benda diawal frase nama aktor.

Asosiasi /

Association Komunikasi antara aktor dan use case yang berpartisipasi pada use case atau use case memiliki interaksi dengan aktor.

Ekstensi /

Extend Relasi use case tambahan ke sebuah use case dimana use case yang ditambahkan dapat berdiri sendiri walau tanpa use case tambahan itu.

Generalisasi /

generalization Hubungan generalisasi dan spesialisasi (umum-khusus) antara dua buah use case dimana fungsi yang satu adalah fungsi yang lebih umum dari lainnya.

2.14.2 Activity Diagram

Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem.

Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal – hal berikut:

a. Rancang proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang di definisikan.

b. Urutan atau pengelompokan tampilan dari sistem / user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antar muka tampilan c. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan

(39)

Tabel 2.4 Simbol – simbol yang ada pada diagram activity:

Simbol Nama Simbol Keterangan

Status Awal Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal

Aktivitas Aktivitas yang dilakukan sistem, aktivitas biasanya diawali dengan kata kerja

Percabangan / decision

Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu

Penggabungan / join

Asosiasi penggabungan dimana lebih dari satu aktivitas digabungkan menjadi satu Status akhir Status akhir yang dilakukan sistem,

sebuah diagram aktivitas memiliki sebuah status akhir

Swimlane Memisahkan organisasi bisnis yang

bertanggung jawab terhadap aktivitas yang terjadi

2.14.3 Sequence Diagram

Diagram sekuen menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambar diagram sekuen maka harus diketahui objek – objek yang terlibat dalam sebuah use case beserta metode – metode yang dimiliki kelas yang di instansiasi menjadi objek itu.

(40)

Banyak diagram sekuen yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah di definisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak.

Tabel 2.5 Simbol – simbol yang ada pada diagram Sequence:

Simbol Nama Simbol Keterangan

Aktor / actor Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya dinyatakan menggunakan kata benda diawal frase nama aktor.

Garis hidup / lifeline

Menyatakan kehidupan suatu objek

Pesan tipe send dan return

Menyatakan bahwa suatu objek mengirim dan menerima data atau informasi pada sistem

Objek Menyatakan objek yang berinteraksi

pesan

Pesan terakhir Digunakan untuk menggambarkan sebuah

pesan yang mendefinisikan komunikasi tertentu antara lifelines dalam interaksi dari lifeline

Pesan ditemukan

Digunakan untuk menggambarkan sebuah pesan yang mendefinisikan komunikasi

(41)

komunikasi tertentu antara lifelines dalam interaksi dari lifeline ke lifeline selanjutnya

kerangka/ frame Digunakan untuk menggambarkan sebuah interaksi

Waktu aktif Menyatakan objek dalam keadaan aktif

2.14.4 Flowchart

Flowchart adalah bagan – bagan yang mempunyai arus yang mengambarkan langkah – langkah penyelesaian suatu masalah. Flowchart merupakan cara penyajian dari suatu algoritma. Berikut flowchart yang menggambarkan proses dengan komputer. simbol yang menunjukan jenis operasi pengolahan dalam suatu proses / prosedur tersebut.

Tabel 2.6 Simbol – simbol yang ada pada Flowchart

Simbol Nama Simbol Keterangan

Offline Connector

Untuk menyatakan sambungan dari suatu proses ke proses lainnya dalam halaman / lembar yang berbeda

Manual Untuk menyatakan suatu tindakan

(proses) yang tidak dilakukan oleh komputer (manual)

Decision/ logika Untuk menunjukan suatu kondisi suatu tertentu yang akan menghasilkan dua kemungkinan jawaban, ya / tidak

Predefined proses

Untuk menyatakan penyediaan tempat penyimpanan suatu pengolahan untuk memberi harga awal

(42)

Terminal Untuk menyatakan pemulaan atau akhir suatu program

Keying operation

segala jenis operasi yang di proses dengan menggunakan suatu mesin yang Untuk mempunyai keyboard

Off-line storage Untuk menunjukkan bahwa data dalam simbol ini akan disimpan kesuatu media tertentu

Manual input Untuk memasukan data secara manual

dengan menggunakan online keyboard

Input output Untuk menyatakan proses input dan

output tanpa tergantung dengan jenis peralatannya

Punched card Untuk menyatakan input berasal dari kartu atau output di tulis ke kartu

Magnetic- tanpa unit

Untuk menyatakan input berasal dari pita magnetic atau output di simpan kepita magnetik

Document Untuk mencetak laporan ke printer

Arus / flow Untuk menyatakan jalannya arus suatu proses

Gambar

Gambar 2.1 Area Bidang Kriptologi
Gambar 2.2 contoh Hieroglyphcs untuk menyandikan Huruf
Gambar 2.3 Media kriptografi yang digunakan oleh bangsa Yunani Kuno.
Gambar 2.4 Ancaman Keamanan  Tabel 2.1 Ancaman Terhadap Keamanan
+7

Referensi

Dokumen terkait

Menyatakan tidak sah dan batal serta tidak mempunyai kekuatan hukum mengikat Keputusan Komisi Pemilihan Umum Kabupaten Padang Lawas Nomor

Aktor / actor Orang, proses atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang dibuat itu sendiri, jadi

• Pengaruh penambahan lilin lebah pada pembuatan edible film yaitu, semakin banyak jumlah lilin lebah yang ditambahkan pada pembuatan edible film maka kadar air, kuat

Dalam upayanya menciptakan iklim yang aman dan mendukung wartawan, negara-negara harus memberikan kebebasan wartawan menjalankan tugas mereka secara independen, tanpa intervensi

Pada laporan PERFITRI tahun 2012, Klinik Melati berada pada urutan kedelapan dari 19 pusat pelayanan bayi tabung di Indonesia berdasarkan jumlah pasien

Meskipun memiliki pengertian yang sama, masing- masing bahasa memiliki ciri khas dalam pembentukannya (Bloomfield, 1995:224- 225). Misalnya antara kata majemuk bahasa Jepang dan

Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari

Aktor / actor orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri,