Tutorial enkripsi Caesar Cipher dengan PHP

Enkripsi Caesar Cipher dengan PHP

Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan. Terdapat 2 jenis kriptografi dipandang dari masanya :
  1. Kriptografi klasik : Caesar cipher, Affine cipher, Vigenere cipher dll. 
  2. 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 
d. Catat hasil enkripsi diatas. 

Pembuatan Form untuk proses dekripsi

e. Buat file untuk masukan key (berupa bilangan), agar bisa menghasilkan kembali plainteks maka key harus sama dengan proses enkripsi, beri nama file: akhir.php di PC Server 


<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 
h. Catat hasil dekripsi diatas. 
i. Ubah-ubahlah nilai key, dan catat hasilnya. 
j. Ulangi proses 3.c dan masukkan kata yang sama dan berulang-ulang. Setelah itu analisa hasilnya. 


EmoticonEmoticon