Skripsi - 21110886-Dedi Koswara-STMIK-MArdira Indonesia - BAB II (Landasan Teori)
Skripsi - 21110886-Dedi Koswara-STMIK-MArdira Indonesia - BAB II (Landasan Teori)
Skripsi - 21110886-Dedi Koswara-STMIK-MArdira Indonesia - BAB II (Landasan Teori)
LANDASAN TEORI
2.1 Kriptografi
Kata kriptografi berasal dari bahasa Yunani, kryptos (tersembunyi) dan
penting kedalam suatu bentuk yang tidak dapat dibaca (ciphertext) menggunakan
dapat diketahui oleh pihak manapun yang bukan pemilik atau yang tidak
berkepentingan. Tujuan akhir atau goal yang hendak dicapai dari pengaplikasian
kriptografi ialah membentuk sebuah informasi yang samar atau tidak dapat
dimengerti oleh orang awam yaitu berupa pesan seperti teks, suara, gambar dan
video yang teracak atau cipher. Menurut Mollin, sistem kriptografi (Cryptosystem)
adalah kumpulan dari fungsi enkripsi dan dekripsi yang berkoresponden terhadap
Secara global, kriptografi terdiri atas dua unsur penting/utama yaitu bagian
informasi/data/pesan yang dapat berupa teks, audio, gambar ataupun video yang
kita sebut plaintext menjadi bentuk lain (cipher) yang tidak dapat dipahami atau
dimengerti oleh pihak manapun selain pengguna yang memiliki sistem dan kunci
atas algoritma enkripsi tersebut, hal ini dimaksudkan agar informasi tetap
terlindungi dari pihak yang tidak berhak menerima. Sedangkan Dekripsi adalah
17
keamanan, yaitu:
informasi dari pihak yang tak berhak terhadap data dan informasi tersebut yang
data/informasi.
tidak ada penolakan atau membantah data yang dikirim atau diperoleh.
Plaintext (M) adalah pesan asli yang akan dikirimkan (berisi data asli).
Ciphertext (C) adalah pesan yang terenkripsi dengan teknik algoritma tertentu
Kunci (K) adalah suatu digit angka desimal (0-9) yang dirahasiakan yang
Berikut ini adalah gambaran mekanisme kerja dalam kriptografi untuk proses
Enkripsi Dekripsi
sandi. Analisis sandi atau juga dikenal dengan istilah Cryptanalysis merupakan
ilmu yang mempelajari tentang cara menganalisa dan memecahkan sebuah teks
didapat pola, kunci rahasia serta teks aslinya. Apabila terdapat ciphertext dapat
cryptanalyst.
19
menjadi beberapa macam diantaranya Caesar Cipher, Viginere Cipher, Hill Cipher.
1. Kriptografi Klasik
teknik substitusi dan permutasi dengan mengubah tiap karakter pada pesan asli
dengan karakter lain yang sudah digeser beberapa urutan baik ke kanan ataupun
kekiri sehingga pesan asli menjadi tersamarkan. Pesan yang sama bila dienkripsi
dengan menggunakan kunci yang berbeda pada algoritma yang sama akan
menghasilkan pesan rahasia yang berbeda pula. Proses persandian dilakukan pada
setiap karakter pesan. Semua algoritma klasik termasuk ke dalam sistem kriptografi
simetris dan digunakan jauh sebelum ada komputer dan digunakan jauh sebelum
utama cipher substitusi ialah mengganti setiap karakter pada pesan asli
dalam teks. Pada Cipher transposisi huruf demi huruf pada plaintext tetap
sandi permutasi (Sadikin, 2012). Salah satu contoh algoritma cipher ini
2. Kriptografi Modern
dalam mode bit berarti semua data dan informasi (baik kunci, plaintext maupun
Perkembangan algoritma kriptografi modern yang berbasis bit ini didorong oleh
(angka 0 dan 1). Hal ini sangat berguna untuk melindungi confidentiality, data
mode bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan atau
dideskripsikan bit per bit. Stream Cipher atau Stream Encryption merupakan
suatu teknik enkripsi dengan cara melakukan transformasi dari tiap bit secara
terpisah berdasarkan posisi tiap bit dalam aliran data yang biasanya
dari operasi XOR setiap bit plaintext dengan setiap bit kuncinya. Pada stream
cipher bila terjadi kesalahan selama transisi maka kesalahan pada teks
mode blok bit, yang mana rangkaian bit dibagi menjadi blok-blok bit yang
matematis yang digunakan untuk melakukan enkripsi dan dekripsi. Ada dua tipe
algorithms).
menggunakan kunci yang sama untuk proses enkripsi dan dekripsi nya. Penggunaan
kunci yang sama menjadikan kekuatan algoritma simetrik menjadi sangat lemah
dan mudah untuk ditembus oleh kriptanalis, karena proses dekripsi pada algoritma
simetrik juga menggunakan kunci yang sama dari proses enkripsi. Apabila
plaintext
t
ciphertext
plaintext
t
Sumber: https://id.wikipedia.org/wiki/Kriptografi
Penggunaan kunci public (public key) merupakan ciri khas dari algoritma
asimetrik. Algoritma asimetris ialah pasangan kunci kriptografi yang salah satunya
digunakan untuk proses enkripsi dan satu lagi untuk mendeskripsikan pesan. Semua
23
pesan menjadi ciphertext, sedangkan hanya satu orang saja yang memiliki kunci
rahasia itu (private key), untuk melakukan dekripsi terhadap pesan yang dikirim
RSA (yaitu singkatan dari nama penemunya, Rivest, Shamir dan Adleman).
menggunakan kunci publik dan kunci private yang digunakan pada algoritma
asimetris.
plaintext
t
ciphertext
plaintext
t
Sumber: https://id.wikipedia.org/wiki/Kriptografi
enkripsi paling klasik, paling sederhana dan paling terkenal karena telah banyak
digunakan pada masa kerajaan untuk mengirimkan pesan rahasia. Sandi ini
termasuk sandi substitusi (Substitution Ciphers) dimana setiap huruf pada teks asli
(plaintext) dalam jajaran alfabet yang berjumlah 26 digantikan oleh huruf lain yang
memiliki selisih posisi tertentu dalam alfabet. Misalnya, jika menggunakan geseran
24
teks asli "HELLO" akan menjadi "KHOOR" pada teks tersandi (ciphertext). Nama
Caesar diambil dari seorang raja di masa Romawi kuno yakni Julius Caesar, yang
Sumber: https://id.wikipedia.org/wiki/Sandi_Caesar
Cara kerja caesar cipher ini dapat digambarkan pada gambar dibawah ini
yaitu dengan menyandingkan dua set alfabet sebanyak 26, alfabet asli disusun
secara normal berurutan dan alfabet sandi digeser baik ke kanan ataupun ke kiri
sebanyak angka tertentu (angka ini disebut kunci). Misalnya sandi Caesar dengan
Sumber: https://id.wikipedia.org/wiki/Sandi_Caesar
Untuk menyandikan sebuah pesan, cukup mencari setiap huruf yang hendak
disandikan di alfabet biasa, lalu tuliskan huruf yang sesuai pada alfabet sandi. Untuk
Sumber: https://id.wikipedia.org/wiki/Sandi_Caesar
operator aritmetika modulo 26 sesuai dengan urutan abjad dari A hingga Z dan
setiap huruf di transformasi kedalam angka decimal begitupun kunci K nya, yaitu:
A=0, B=1, C=3, …., Z=25. Maka secara matematis caesar chiper untuk
dengan C adalah ciphertext, P adalah plaintext, K adalah kunci rahasia, E(P) adalah
menjadi sebuah Caesar Cipher dengan kunci 3 maka hasil ciphertext nya akan
Kunci (K): 3
1) Cek urutan nilai pada alfabet pada gambar 6, didapat: I=8, N=13, D=3,
E(I) = (P + K) mod 26
E(N) = (P + K) mod 26
E(D) = (P + K) mod 26
E(O) = (P + K) mod 26
E(E) = (P + K) mod 26
27
E(S) = (P + K) mod 26
E(A) = (P + K) mod 26
Kunci (K) :3
1) Cek nilai/no urut alfabet pada gambar 6 dari karakter-karakter ter enkripsi
tersebut, didapat: L=11, Q=16, G=6, R=17, Q=16 ,H=7, V=21, L=11,
D=3
nilainya positif (+) kemudian nilai nya dicek pada tabel alphabet (gambar
D(L) = (P - K) mod 26
D(Q) = (P - K) mod 26
D(G) = (P - K) mod 26
D(R) = (P - K) mod 26
D(H) = (P - K) mod 26
D(V) = (P - K) mod 26
D(D) = (P - K) mod 26
2.5 ASCII
ASCII (American Standard Code for Information Interchange) atau kode
internasional dalam kode huruf dan numeric seperti Hex dan Unicode tetapi ASCII
lebih bersifat universal, contohnya decimal 65 adalah untuk karakter “A”. Biasanya
Dalam kriptografi, kode ASCII ini merupakan urutan bit dengan panjang 8
bit untuk mewakili satu karakter unik yang dapat bernilai decimal ataupun
hexadecimal yang mewakili setiap satu karakter yang kemudian dienkripsi untuk
mendapatkan karakter lain dalam bentuk urutan bit atau nilai decimal ataupun nilai
communication.
Jumlah kode ASCII seluruhnya adalah 255 kode. Kode ASCII urutan 0
kode ASCII urutan 128 hingga 255 merupakan kode ASCII untuk manipulasi
grafik. Kode ASCII ini banyak dijumpai pada keyboard komputer atau instrumen-
instrumen digital (Kharisma & Muhammad, 2017). Berikut adalah tabel susunan
Sumber: https://simple.m.wikipedia.org/wiki/File:ASCII-Table-wide.svg
Gambar 2. 9 Tabel printable ASCII
30
Sumber: https://id.wikipedia.org/wiki/PHP
Gambar 2. 10 Logo PHP
PHP merupakan singkatan dari: Pre Hypertext Processor adalah salah satu
Bahasa pemrograman open source yang banyak digunakan oleh Web Developer
untuk pengembangan Web, PHP ini berjalan di sisi server atau disebut juga (server
Bahasa Pemrograman PHP ditemukan pada tahun 1994 oleh Rasmus Lerdorf
versi pertama PHP tidak dirilis ke publik, melainkan digunakan oleh Rasmus
Lerdorf untuk melacak siapa saja yang melihat resume onlinenya pada homepage
websitenya. Versi pertama yang digunakan oleh kebanyakan orang tersedia sekitar
awal tahun 1995 dan dikenal sebagai Personal Home Page Tools.
dengan Python. Namun, PHP dijalankan atau diproses pada sisi server karena
digunakan disisi klien (client script) sebagai frontend. Sementara itu, Python hanya
untuk sisi server (backend). PHP banyak digunakan untuk membuat banyak project
aplikasi yang berbasis web karena sangat mudah dipelajari dan diaplikasi, terbuka
sangat populer dikalangan web developer karena semua sifatnya dan serbaguna
tersebut.
Dalam pengembangan web, manipulasi data adalah salah satu aspek paling
penting. PHP, sebagai salah satu bahasa pemrograman web yang paling populer,
menyediakan struktur data yang kuat dan cukup komplit yang dikenal sebagai array
atau larik. Array atau larik adalah struktur data yang dapat menyimpan satu atau
lebih nilai dalam satu variabel tunggal. Setiap nilai dalam array memiliki indeks
unik, yang memungkinkan kita untuk mengakses nilai tersebut dengan mudah.
Dalam PHP, array dapat digunakan untuk menyimpan berbagai jenis data, seperti
Ada 3 jenis array dalam pemrograman PHP yaitu array numeric, array
1. Array numeric
Array numeric ialah array standar (default) yang sudah disediakan oleh
PHP yang mana setiap elemen dalam isi array berindeks 0 sampai dengan n
dan indeks sebuah array selalu dimulai dari angka 0, contoh: kita memiliki
sebuah array bernama buah dengan isi Mangga, Jeruk, Apel, Pepaya dan
berikut:
atau:
2. Array asosiatif
karena ada array jenis lain yang memiliki indeks bukan angka melainkan
string. Indeks array asosiatif terdiri dari nama kunci (keyname) dan nilai (key
value), pada array asosiatif, kita menggunakan tanda => (rocket) untuk
Array multi dimensi adalah array yang memiliki indek dan nilai array
lebih dari satu atau multi dimensi. Jenis array ini biasanya digunakan untuk
membuat nilai berupa matrik, grapik, dan struktur data lainnya yang cukup
rumit.
$mobil = array (
array("Toyota",22,18),
array("Honda",15,13),
array("Mitsubishi",5,2),
array("Nissan",17,15)
);
Cara pengaksesan nya, misalkan kita ingin menampilkan data mobil merk
$matriks = [
[3,4,7],
[1,5,6],
[8,3,2]
];
Bila ingin mengakses nilai 5 pada array matriks tersebut maka sintaksnya:
Array multi dimensi dapat juga memuat array yang bertipe asosiatif, contoh
nya:
34
$dtktp = [
[
"nik" => "215415121500015",
"nama" => "Dedi Koswara",
"agama" => "Islam",
],
[
"nik" => "215475328900012",
"nama" => "Dadan Nugraha",
"agama" => "Islam",
],
[
"nik" => "214719121901020",
"nama" => "Opan Maulana",
"agama" => "Islam",
]
];
Perintah untuk menampilkan seluruh data array multi dimensi diatas sebagai
berikut:
4. Array Flip
PHP mempunyai banyak fungsi terkait data array dan salah satu nya
yaitu fungsi array_flip yang fungsinya yaitu untuk membalikan nilai (value)
$arrayku=array("1"=>"Merah","2"=>"Kuning","3"=>"Hijau");
$myarray=array_flip($arrayku);
print_r($myarray);
5. Array Shuffle
penggunaan shuffle($array):
$array_ku=array("1"=>"Merah","2"=>"Kuning","3"=>"Hijau");
shuffle($array_ku);
print_r($array_ku);
2.7 MySQL
Sumber: https://id.wikipedia.org/wiki/MySQL
lunak sistem untuk manajemen basis data SQL (database management system) atau
DBMS yang multi alur, multi pengguna, dengan sekitar 6 juta instalasi di seluruh
bawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual di
dipakai lebih dari 66 juta pengguna di seluruh belahan dunia. Adapun MySQL
memiliki dua bentuk lisensi, yaitu Free Software dan Shareware atau perangkat
database server yang gratis (free), artinya kita bebas menggunakan database ini
untuk keperluan pribadi atau usaha tanpa harus membeli atau membayar lisensinya.
MySQL pertama kali dirintis oleh seorang programmer database bernama Michael
Widenius .
bahasa yang dipakai di dalam mengolah data pada relational database atau database
pada sisi server dengan bahasa pemrograman SQL. Hingga saat ini, dominan
provider hosting internet selalu menyediakan MySQL dalam paket nya untuk
pengembangan web. Selain itu, MySQL juga menjadi salah satu arsitektur database
terpopuler setelah Oracle Database. Hal ini tak lain karena MySQL memiliki
3) MySQL Merupakan sebuah database server yang gratis (free), artinya kita
bebas menggunakan database ini untuk keperluan pribadi atau bisnis tanpa
diakses dari aplikasi lain termasuk berupa visual seperti visual Basic dan
Delphi.
10) MySQL mendukung field yang dijadikan sebagai kunci primer dan kunci
unik (Unique)
table
38
juga memberikan standar penulisan sebuah sistem blueprint, yang meliputi konsep
proses bisnis, penulisan kelas-kelas dalam bahasa program yang spesifik, skema
versi awal 1.0 pada bulan Januari 1997. Dengan menggunakan UML sebagai bahasa
Sesuai dengan pengertian dan konsep UML, maka ada beberapa diagram
Class diagram atau diagram kelas merupakan suatu diagram yang digunakan
luas dari suatu sistem dengan menunjukan kelas-kelasnya dan hubungan mereka.
39
Class diagram bersifat statis, menggambarkan hubungan apa yang terjadi bukan
Use Case Diagram adalah satu jenis dari diagram UML (Unified Modelling
Language) yang menggambarkan hubungan interaksi antara sistem dan aktor. Use
Case dapat menggambarkan tipe interaksi antara si pengguna sistem (user) dengan
sistemnya. Use Case merupakan sesuatu yang mudah dipelajari, Use Case
sebuah diagram yang menggambarkan alir aktifitas dalam sebuah sistem yang juga
dapat memodelkan berbagai aliran proses yang terjadi pada sistem. Seperti
layaknya runtutan proses berjalannya suatu sistem dan digambarkan secara vertikal.
Activity diagram merupakan state diagram khusus, dimana sebagian besar state
adalah action dan sebagian besar transisi di-trigger oleh selesainya state
sebelumnya.
41
skripsi ini yang berjudul “Implementasi Algoritma Triple Caesar Cipher Untuk
Dipublikasi
No Penulis Judul Kesimpulan
pada
Retnani Modifikasi Jurnal Fakultas Penelitian ini
1 Latifah, Sitti Algoritma Caesar Teknik penggabungan metode
Nurbaya Cipher Dan Rail Universitas Caesar Cipher dan Rail
Ambo, Fence Untuk Muhammadiyah Fence untuk
Syafitri Peningkatan Jakarta mengamankan
Indah Keamanan Teks teks alfanumerik dan
Kurnia Alfanumerik Dan karakter khusus ASCII
(2017) Karakter Khusus printable characters.
Metode Caesar Cipher
42
menggunakan modulus
95 dengan sedikit
modifikasi, selain itu
juga dilakukan Reverse
order pada setiap baris
Rail Fence untuk
meningkatkan kualitas
cipher text.
2 (Egar Dika Implementasi Tugas Akhir Menggabungkan
Santosa, Algoritma Program Studi Algoritma Caesar Cipher
2015) Caesar Teknik dan Hill Cipher untuk
cipher dan Hill Informatika - meng enkripsi dan
cipher pada S1, Fakultas dekripsi Database di TB
Database Ilmu Komputer, Mitra Jepara sehingga
Sistem Inventori Universitas menjadi lebih aman
TB Mita Jepara Dian dengan menggunakan
Nuswantoro bahasa pemograman web
PHP & MySQL.
3 (Jahuda Algoritma Tugas Akhir penggabungan algoritma
Dolf Bacas, Caesar Cipher Teknik Caesar cipher dan hill
2021) dan Hill Cipher Informatika cipher dan implementasi
Untuk Politeknik dari penggabungan
Meningkatkan Negeri Jakarta algoritma kedalam
Keamanan bahasa pemrograman
Database Java, maka dapat
disimpulkan bahwa
gabungan dari kedua
algoritma ini dapat
digunakan untuk
meningkatkan keamanan
data yang berada dalam
Database.
4 (Muhammad Perancangan Jurnal STMIK Aplikasi Keamanan
Anas Fauzi, Aplikasi Budi Darma Pesan untuk Enkripsi dan
2019) Keamanan Pesan Medan Dekripsi menggunakan
Teks dengan algoritma triple
menggunakan transposition vigenere
Algoritma Triple cipher yang dilakukan
Transposition sebanyak 3 kali proses
Vigenere Cipher enkripsi dan dekripsi
dengan teknik transposisi
dan 3 kali proses enkripsi
dan dekripsi dengan
teknik substitusi sehingga
menghasilkan ciphertext
yang sulit untuk dibaca
atau dipecahkan
penyadap mengunakan
bahasa pemrograman
43