Anda di halaman 1dari 11

Pembuatan Sistem Kriptografi Caesar Chiper Sederhana

Disusun untuk Memenuhi Tugas Matakuliah Keamanan Jaringan dan Kriptografi yang
dibimbing oleh Agusta Rakhmat Taufani, S.T., M.T.

Oleh:
Nama: Elfonda Daffa Risqullah NIM: 210535614866

S1 TEKNIK INFORMATIKA
UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
JANUARI 2022
A. Pendahuluan
Program ini adalah web yang dibuat menggunakan bahasa pemrograman PHP dan
CSS. Program ini menggunakan teknik kriptografi Caesar Cipher untuk pengkodean
pesan dan decoding. Pengguna dapat memasukkan teks yang ingin mereka enkripsi
bersama kunci yang akan mereka gunakan untuk tujuan itu. Setelah menekan tombol
"Encrypt", teks akan dienkripsi, dan hasilnya akan ditampilkan di layar. Selain itu,
ada tombol "Decrypt" yang dapat digunakan untuk mendekripsi ulang teks yang telah
ditulis sebelumnya. Tampilan antarmuka program ini ramah pengguna dan memiliki
masa pakai yang panjang.
System requirement untuk membuat program Kriptografi Caesar Chiper dengan PHP
dan CSS sebagai berikut:
 PHP versi 5.4
 Menggunakan web server seperti XAMPP
 Menggunakan text editor atau Integrated Development Environment (IDE), Visual
Studio Code contoh nya
 Browser web (untuk menjalankan program nya serta mengakses nya)

B. Perancangan dan Desain


FLOWCHART PROGRAM
Source Code Program
Code PHP

<!DOCTYPE html>
<html>
<head>
<title>Caesar Cipher</title>
<link rel="stylesheet" type="text/css" href="hhoo.css">
</head>
<body>
<div class="container">
<h1>Caesar Cipher</h1>
<h1>by Elfonda Daffa Risqullah</h1>
<form method="post">
<label for="message">Message:</label><br>
<textarea id="message" name="message"></textarea><br>
<label for="key">Key:</label><br>
<input type="number" id="key" name="key"><br><br>
<input type="submit" name="encrypt" value="Encrypt">
<br>
<input type="submit" name="decrypt" value="Decrypt">
</form>
Kode ini mendefinisikan tata letak halaman web yang akan digunakan untuk
melakukan enkripsi pesan menggunakan Cesar Cipher. Ini memiliki bentuk HTML
yang mengharuskan pengguna untuk memasukkan teks dan mengkodekan informasi.
Ketika pengguna mengirimkan formulir dengan mengklik tombol "Enkripsi" atau
"Deskripsi", formulir akan mengirimkan permintaan POST ke server.
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$message = $_POST["message"];
$key = $_POST["key"];

if (isset($_POST["encrypt"])) {
$encryptedMessage = encrypt($message, $key);
echo "<p>Encrypted message: " . $encryptedMessage .
"</p>";
} elseif (isset($_POST["decrypt"])) {
$decryptedMessage = decrypt($message, $key);
echo "<p>Decrypted message: " . $decryptedMessage .
"</p>";
}
}

function encrypt($message, $key) {


$result = "";

for ($i = 0; $i < strlen($message); $i++) {


$ch = $message[$i];
if (ctype_alpha($ch)) {
$offset = $key % 26;

if (ctype_upper($ch)) {
$ch = chr((ord($ch) + $offset - 65) % 26 + 65);
} else {
$ch = chr((ord($ch) + $offset - 97) % 26 + 97);
}
}

$result .= $ch;
}

return $result;
}

function decrypt($message, $key) {


return encrypt($message, 26 - $key);
}
?>
</div>
Ini adalah kode PHP yang akan dijalankan ketika pengguna mengirimkan form.
Kode ini akan mengambil pesan dan kunci enkripsi yang dikirimkan oleh form,
kemudian akan menggunakan fungsi "encrypt()" untuk mengenkripsi pesan dan
menghasilkan pesan terenkripsi.
Code ini dimulai dengan mengecek apakah metode yang digunakan pada form adalah
POST atau bukan. Jika metodenya POST, maka variabel "message" dan "key" akan
diisi dengan nilai yang diinputkan oleh user pada form. Kemudian, dilakukan
pengecekan terhadap tombol yang ditekan oleh user, yaitu tombol "Encrypt" atau
"Decrypt". Jika tombol "Encrypt" ditekan, maka fungsi "encrypt" akan dipanggil
untuk melakukan enkripsi pada pesan dan hasilnya akan ditampilkan. Jika tombol
"Decrypt" ditekan, maka fungsi "decrypt" akan dipanggil untuk melakukan
dekripsi pada pesan dan hasilnya akan ditampilkan.
Fungsi "encrypt" mengambil dua parameter, yaitu pesan yang akan dienkripsi dan
kunci enkripsi. Pada fungsi ini, setiap karakter pada pesan akan diperiksa
apakah termasuk huruf atau bukan. Jika termasuk huruf, maka akan dilakukan
penggeseran karakter sejauh kunci enkripsi. Jika karakter tersebut adalah
huruf besar, maka karakter tersebut akan digeser sejauh kunci ke arah huruf
besar lainnya dalam alfabet, dan jika karakter tersebut adalah huruf kecil,
maka karakter tersebut akan digeser sejauh kunci ke arah huruf kecil lainnya
dalam alfabet. Setelah karakter diproses, karakter tersebut akan ditambahkan
ke dalam variabel "result" yang merupakan hasil akhir dari enkripsi pesan.
Fungsi "decrypt" juga mengambil dua parameter, yaitu pesan yang akan
didekripsi dan kunci dekripsi. Pada fungsi ini, dilakukan dekripsi pada pesan
dengan menggeser setiap karakter sejauh 26-kunci dekripsi. Hal ini
dikarenakan, jarak antara huruf yang telah digeser sejauh kunci dengan huruf
aslinya adalah 26-kunci. Fungsi "decrypt" memanggil fungsi "encrypt" dengan
kunci yang telah diubah untuk melakukan dekripsi pada pesan.
Dengan adanya fungsi "decrypt", user dapat melakukan dekripsi pada pesan yang
telah dienkripsi sebelumnya. User cukup memasukkan pesan yang telah dienkripsi
dan kunci enkripsinya, kemudian menekan tombol "Decrypt". Hasilnya akan
ditampilkan pada halaman HTML dalam bentuk pesan yang telah didekripsi.

</body>
</html>

Code CSS

body {
background-image: linear-gradient(to right, #23a6d5, #23d5ab);
font-family: 'Open Sans', sans-serif;
font-weight: 300;
font-size: 16px;
}

/* Container */
.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
background-color: #fff;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

/* Heading */
h1 {
text-align: center;
font-size: 36px;
font-weight: 600;
margin-bottom: 30px;
color: #3f3f3f;
}

/* Form */
form {
display: flex;
flex-direction: column;
align-items: center;
}

label {
font-weight: 600;
margin-bottom: 10px;
color: #3f3f3f;
}

textarea,
input[type="number"] {
width: 100%;
padding: 15px;
margin-bottom: 20px;
border: none;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

input[type="submit"] {
width: 100%;
background-color: #23a6d5;
color: #fff;
border: none;
border-radius: 5px;
padding: 15px;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

input[type="submit"]:hover {
background-color: #1a8cbf;
}
Kode di atas adalah CSS styling untuk sebuah halaman web. Ini termasuk
pengaturan latar belakang, font, ukuran font, bayangan box, dan tata letak
untuk elemen halaman web tertentu seperti kontainer, heading, form, label,
textarea, input, dan tombol submit. Semua elemen ini diberi tampilan yang
menarik dengan warna biru dan bayangan box yang disesuaikan. Saat tombol
submit di-hover, warna latar belakang berubah untuk meningkatkan interaksi
pengguna dengan halaman web tersebut.

C. Analisa Aplikasi
Fungsi "encrypt()" melakukan huruf penggeseran pada data dan menghasilkan
terrainkripse data. Untuk menentukan penggeseran yang diperlukan untuk setiap huruf,
fungsi ini menggunakan modul 26. Ia kemudian menggunakan huruf tersebut untuk
menghasilkan huruf baru yang akan menggantikannya. Kode ini adalah implementasi
dari algoritma Caesar Cipher untuk melakukan pengkodean pesan dan decoding.
Algoritma ini menggunakan teknik yang disebut cipher penggantian, di mana setiap
karakter pada baris akan dibandingkan dengan karakter yang berbeda yang memiliki
nilai alfanumerik yang lebih tinggi (Jarak) daripada karakter di tangan. Dalam kode ini,
"keyword" digunakan untuk merujuk pada karakter yang dikodekan atau didekodkan
dan dikirim dari formulir input HTML.

Gambar 1. Proses memasukkan pesan dan menentukan kunci untuk enkripsi

Pada gambar 1 user memasukkan pesan yang ingin di enkripsi dan menentukan kunci
pada program diatas.
Gambar 2. Menampilkan proses enkripsi

Pada gambar 2 setelah mengisi form user memilih proses enkripsi dengan cara di klik
lalu muncul hasil dari pesan yang di enkripsi.

Gambar 3. Tes deskripsi pesan

Pada gambar 3 user menguji untuk mendeskripsikan kembali pesan yang ter enkripsi
dengan kunci enkripsi yang berbeda, dengan hasil proses deskripsi tidak berhasil karena
tidak sesuai dengan kunci yang ditentukan di awal mengisi form.
Gambar 4. Deskripsi berhasil

Pada gambar 4 user mencoba mengisi kembali form dengan mendeskripsikan pesan dan
menggunakan kunci yang sesuai di awal, didapatkan pesan kembali pada awal nya
setelah di proses deskripsi.

D. Kesimpulan
Program yang tersedia adalah program khusus untuk encoding dan decoding pesan
berbasis Caesar Cipher. Program saat ini menggunakan formulir input dan output
yang identik dalam satu operasi HTTP POST. Pengguna dapat memasukkan teks
untuk encrypsi, dekripsi, dan kunci enkripsi. Program ini juga memiliki kemampuan
untuk melakukan enkripsi dan decoding berdasarkan kunci yang disediakan. Dalam
hal ini, fungsi enkripsi menggunakan cipher Caesar untuk menganalisis masing-
masing karakter dalam teks dan menghasilkan draft, sementara fungsi enkrypsi
dekripsi melanjutkan proses encrypsi menggunakan kunci dimodifikasi untuk
menghasilkan pesan yang awalnya dimaksudkan. Antarmuka program yang tersedia
cukup ramah pengguna dan sederhana, dengan gradient latar belakang yang menarik
secara visual dan input formulir. Namun, satu-satunya kelemahan dari program ini
adalah bahwa itu hanya menggunakan algoritma Caesar Cipher, yang dapat dengan
mudah dipahami oleh pengguna dan memiliki hambatan rendah untuk masuk atau
yang paham akan kriptografi khususnya metode Caesar Chiper.
E. Lampiran
https://drive.google.com/drive/folders/19hjNgJqfYq5EEVwNmyviwNg9heuvpRBu?usp=shari
ng

Anda mungkin juga menyukai