Enkripsi Caesar Cipher dengan PHP
Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan. Terdapat 2 jenis
kriptografi dipandang dari masanya :
- Kriptografi klasik : Caesar cipher, Affine cipher, Vigenere cipher dll.
- Kriptografi modern, terbagi 2 yaitu :
- Kriptografi simetrik : RC4, DES, AES, IDEA
- Kriptografi asimetrik : RSA, DSA, El gama
Kriptografi Klasik (Caesar)
Pada Caesar cipher, tiap huruf disubstitusi dengan huruf ketiga berikutnya dari
susunan alphabet yang sama. Dalam hal ini kuncinya adalah jumlah pergeseran huruf yaitu 3).
Susunan alphabet setelah digeser sejauh 3 huruf membentuk sebuah table
substitusi sebagai berikut :
Kriptografi Simetrik
Kriptografi simetrik atau dikenal pula sebagai kriptografi kunci rahasia,
merupakan kriptografi yang menggunakan kunci yang sama baik untuk proses
enkripsi maupun dekripsi. Secara metematis dapat dinyatakan bahwa :
- E = d = k.....................(4
- Ek(m) = c.....................(5
- Dk(c) = m.....................(6
Dalam algoritma simetri, kunci yang digunakan dalam proses enkripsi dan
dekripsi adalah sama atau pada prinsipnya identik. Kunci ini pun bisa diturunkan dari
kunci lainnya. Oleh karena itu sistem ini sering disebut secret-key ciphersystem.
Agar komunikasi tetap aman, kunci yang menggunakan teknik enkripsi ini harus
betul-betul dirahasiakan.
Kriptografi simetrik sangat menekankan pada kerahasiaan kunci yang digunakan
untuk proses enkripsi dan dekripsi. Oleh karena itulah kriptografi ini dinamakan pula sebagai kriptografi kunci rahasia. Gambaran proses sederhana enkripsi dengan
algoritma simetri:
Kriptografi klasik (Caesar cipher)
Pembuatan Form Masukan PHP
a. Buat file untuk masukan plainteks dan key (berupa bilangan), beri nama file :
awal.php di PC Server
<html>
<head>
<title>FORM UNTUK ENKRIPSI</title>
</head>
<body>
<form action="enkcaesar.php" method="get">
Plainteks : <input type="text" name="kata"> <br>
Key : <input type="text" name="key" maxlength="2"> <br>
<input type="submit" value="kirim">
<input type="reset" value="ulangi">
</form>
</body>
</html>
Proses Enkripsi dengan Caesar Algorithm
b. Buat file untuk melakukan proses enkripsi, beri nama file : enkcaesar.php di PC Server
<?php
$kalimat = $_GET["kata"];
$key = $_GET["key"];
for($i=0;$i<strlen($kalimat);$i++)
{
$kode[$i]=ord($kalimat[$i]); //rubah ASCII ke desimal
$b[$i]=($kode[$i] + $key ) % 256; //proses enkripsi
$c[$i]=chr($b[$i]); //rubah desimal ke ASCII
}
echo "kalimat ASLI : ";
for($i=0;$i<strlen($kalimat);$i++)
{
echo $kalimat[$i];
}
echo "<br>";
echo "hasil enkripsi =";
$hsl = '';
for ($i=0;$i<strlen($kalimat);$i++)
{
echo $c[$i];
$hsl = $hsl . $c[$i];
}
echo "<br>";
//simpan data di file
$fp = fopen ("enkripsi.txt","w");
fputs ($fp,$hsl);
fclose($fp);
?>
Tes Proses Enkripsi
c. Buka web browser dari PC Client dan akseslah file php dari PC Server
http:///awal.php
Pembuatan Form untuk proses dekripsi
<html>
<head>
<title>Form untuk Dekripsi</title>
</head>
<body>
<form action="dekCaesar.php" method="get">
Key : <input type="text" name="key" maxlength="2"> <br>
<input type="submit" value="kirim">
<input type="reset" value="ulangi">
</form>
</body>
</html>
Proses Dekripsi dengan Caesar Algorithm
f. Buat file untuk melakukan proses dekripsi, beri nama file : dekCaesar.php di
PC Server
<?php
$key = $_GET["key"];
$nmfile = "enkripsi.txt";
$fp = fopen($nmfile,"r"); // buka file hasil enkripsi
$isi = fread($fp,filesize($nmfile));
for($i=0;$i<strlen($isi);$i++)
{
$kode[$i]=ord($isi[$i]); // rubah ASII ke desimal
$b[$i]=($kode[$i] - $key ) % 256; // proses dekripsi Caesar
$c[$i]=chr($b[$i]); //rubah desimal ke ASCII
}
echo "kalimat ciphertext : ";
for($i=0;$i<strlen($isi);$i++)
{
echo $isi[$i];
}
echo "<br>";
echo "hasil dekripsi =";
for ($i=0;$i<strlen($isi);$i++)
{
echo $c[$i];
}
echo "<br>";
?>
Tes Proses Dekripsi
g. Buka web browser dari PC Client dan akseslah file php dari PC Server
http:///akhir.php
EmoticonEmoticon