Lompat ke konten Lompat ke sidebar Lompat ke footer

Tutorial Enkripsi Caesar Cipher Dengan Php

Enkripsi Caesar Cipher dengan PHP

Kriptografi yaitu 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 abjad disubstitusi dengan abjad ketiga berikutnya dari susunan alphabet yang sama. Dalam hal ini kuncinya yaitu jumlah pergeseran abjad (yaitu 3). Susunan alphabet sehabis digeser sejauh 3 abjad membentuk sebuah table substitusi sebagai berikut : 


Kriptografi Simetrik 

Kriptografi simetrik atau dikenal pula sebagai kriptografi kunci rahasia, merupakan kriptografi yang memakai kunci yang sama baik untuk proses enkripsi maupun dekripsi. Secara metematis sanggup dinyatakan bahwa : 
  • E = d = k.....................(4 
  • Ek(m) = c.....................(5 
  • Dk(c) = m.....................(6
 Dalam algoritma simetri, kunci yang dipakai dalam proses enkripsi dan dekripsi yaitu sama atau pada prinsipnya identik. Kunci ini pun sanggup diturunkan dari kunci lainnya. Oleh alasannya yaitu itu sistem ini sering disebut secret-key ciphersystem. Agar komunikasi tetap aman, kunci yang memakai teknik enkripsi ini harus betul-betul dirahasiakan. Kriptografi simetrik sangat menekankan pada kerahasiaan kunci yang dipakai untuk proses enkripsi dan dekripsi. Oleh alasannya yaitu 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 melaksanakan 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), supaya sanggup 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 melaksanakan 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.