laporan kriptografi ( cipher substitusi homofonik )

15

Click here to load reader

Upload: sand-dhyie

Post on 02-Jan-2016

744 views

Category:

Documents


87 download

DESCRIPTION

Kriptografi adalah ilmu yang mempelajari kerahasiaan berita, dalam hal ini adalahkerahasiaan sebaris huruf atau lebih yang di rahasiakan dengan melakukan Enkripsi denganmenggunakan kunci tertentu

TRANSCRIPT

Page 1: Laporan Kriptografi ( Cipher Substitusi Homofonik )

1 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

KRIPTOGRAFI

Cipher Substitusi Homofonik dengan PHP

Disusun oleh:

Sandhi Yani Zulqifli 24010310141038

PROGRAM STUDI TEKNIK INFORMATIKA – R2

JURUSAN MATEMATIKA

FAKULTAS MATEMATIKA ILMU PENGETAHUAN ALAM

UNIVERSITAS DIPONEGORO

SEMARANG

2012

Page 2: Laporan Kriptografi ( Cipher Substitusi Homofonik )

2 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

DAFTAR ISI

DAFTAR ISI …………………………………………………………………………… 2

BAB I PENDAHULUAN ……………………………………………………………… 3

Rumusan Masalah ……………………………………………………………… 4

Tujuan ………………………………………………………………………….. 4

BAB II PEMBAHASAN ………………………………………………………………. 5

BAB III PENUTUP …………………………………………………………………… 15

Page 3: Laporan Kriptografi ( Cipher Substitusi Homofonik )

3 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

BAB I PENDAHULUAN

Kriptografi adalah ilmu yang mempelajari kerahasiaan berita, dalam hal ini adalah

kerahasiaan sebaris huruf atau lebih yang di rahasiakan dengan melakukan Enkripsi dengan

menggunakan kunci tertentu, kunci ini dapat bermacam-macam bentuk, misalkan kata SAYA

bila di enkripsi dapat menjadi BHWZ atau SDJK menyesuaikan dengan kunci apa yang di

gunakan dalam melakukan enkripsi tersebut. Selain metode Enkripsi ada juga kebalikannya

yaitu Dekripsi, Dekripsi ini adalah kebalikan dari Enkripsi yaitu merubah kata / huruf /

kalimat yang telah di kodekan menjadi sebuah kata / huruf / kalimat yang readable ( mudah

di baca ).

Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan

informasi yaitu :

Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari

siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas

informasi yang telah disandi.

Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak

sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi

manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan,

dan pensubsitusian data lain kedalam data yang sebenarnya.

Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan

sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling

memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi

keaslian, isi datanya, waktu pengiriman, dan lain-lain.

Non-repudiasi., atau nirpenyangkalan adalah usaha untuk mencegah terjadinya

penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang

mengirimkan/membuat.

Page 4: Laporan Kriptografi ( Cipher Substitusi Homofonik )

4 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

Rumusan Masalah o Bagaimana melakukan Enkripsi dan Dekripsi dengan menggunakan Bahasa

PHP ?

o Bagaimana melakukan Enkripsi dan Dekripsi homofon dengan bahasa PHP ?

Tujuan o Membuat sebuah Program Enkripsi / Dekripsi dengan menggunakan Bahasa

PHP.

o Enkripsi / Dekripsi dilakukan dengan menggunakan Cipher Substitusi

Homofonik.

Page 5: Laporan Kriptografi ( Cipher Substitusi Homofonik )

5 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

BAB II

PEMBAHASAN

Cipher Substitusi Homofonik bisa dibuat dengan menggunakan bahasa PHP, kali ini

kita akan membuat sebuah program kecil berbasis WEB yang mampu melakukan

fungsi Enkripsi dan Dekripsi dengan menggunakan metode Cipher Substitusi

Homofonik.

Tampilan Program

Page 6: Laporan Kriptografi ( Cipher Substitusi Homofonik )

6 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

Source Code

Pada program ini saya menggunakan 3 file yang berbeda :

1. Index.php ( sebagai halaman depan dari program/aplikasi )

2. Style.css ( untuk tampilan dari program yang dibuat )

3. SubstitusiHomofon.php ( ini adalah file yang di panggil ketika submit di

tekan, berisi fungsi-fungsi yang dapat di jalankan.

1. Index.php

Page 7: Laporan Kriptografi ( Cipher Substitusi Homofonik )

7 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

Penjelasana perbagian :

Di bawah adalah bagian dari PHP yang digunakan untuk menampung nilai yang kita

masukkan pada bagian kolom textarea yang merupkan Cipherteks ataupun Plainteks.

$_POST [‘text’] = digunakan untuk menangkap nilai yang kita masukkan pada kolom

teksarea.

<?php

include dirname(__FILE__).'/SubstitusiHomofon.php';

/** Variabel penampung hasil deksripsi/enkripsi */

$hasil_text = null; pertama variable $hasil_text kita isi null

if(isset($_POST['text'])&&isset($_POST['submit'])){ jika nilai text masuk dan kita klik

submit maka variable $text di isi dengan nilai yang dimasukkan

$text = $_POST['text'];

/** Enkripsi plainteks ke chiperteks */

if($_POST['submit']=="Enkripsi"){ ketika klik submit dan name = Enkripsi

$hasil_text = enkripsi($text); $hasil_text diisi dengan hasil dari fungsi enkripsi text

}

Page 8: Laporan Kriptografi ( Cipher Substitusi Homofonik )

8 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

/** Dekripsi chiperteks ke plainteks */

else if($_POST['submit']=='Dekripsi'){ ketika klik submit dan name = Enkripsi

$hasil_text = dekripsi($text); $hasil_text diisi dengan hasil dari fungsi dekripsi text

}

}

else{

$text = null;

}

?>

Bagian tampilan atau HTML Pada bagian ini anda akan menemukan code <?php echo $hasil_text;?>, ini adalah code php

yang digunakan untuk mengambil nilai dari teks yang di masukkan pada kolom textarea. <html>

<link href="style.css" rel="stylesheet" type="text/css"/>

<title>Substitusi Homofon by Sandhi</title>

<body>

<p align="center" style="font-size:28px">Tugas Kriptografi</p>

<table width="600px" border="0" align="center">

<tr>

<td>

<table align="left" border="0">

<tr>

<td>Nama</td>

<td>:</td>

<td>Sandhi Yani Z</td>

</tr>

<tr>

<td>NIM</td>

<td>:</td>

Page 9: Laporan Kriptografi ( Cipher Substitusi Homofonik )

9 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

<td>24010310141038</td>

</tr>

</table>

</td>

</tr>

</table>

<table width="500px" border="1" align="center">

<form action="index.php" method="post">

<tr><td align="center" height="40px" style="font-size:26px; background-color:#333"><span

style="color:#FFF">Substitusi Homofon</span></td></tr>

<tr><td align="center"></td></tr>

<tr><td align="center" style="background-color:#333"><span style="color:#FFF"><b>Hasil

Enkripsi / Dekripsi</b></span></td></tr>

<tr><td width="300"><textarea style="background-color:#CCC;" readonly="true" rows="5"

cols="70" > <?php echo $hasil_text;?></textarea></td></tr>

<tr><td align="center" style="background-color:#333"><span

style="color:#FFF"><b>Tuliskan Plaintext / Chipertext di bawah ini</b></span></td></tr>

<tr><td width="300"><textarea name="text" rows="5" cols="70" ><?php echo

$text;?></textarea></td></tr>

<tr align="center" ><td colspan="2" border="0"><input class="input" type="submit"

value="Enkripsi" name="submit"/> ||| <input class="input" type="submit" value="Dekripsi"

name="submit"/></td></tr>

</form>

</table>

<div style="height:10px"></div>

<p align="center"><a href="http://www.sandhiyaniz.com">Home</a> | <a

href="http://id.wikipedia.org/wiki/Kriptografi">Kriptografi</a> | <a

href="http://id.wikipedia.org/wiki/Homofon">Homofon</a> | <a

href="http://id.wikipedia.org/wiki/Enkripsi">Enkripsi/Dekripsi</a></br></br>

Page 10: Laporan Kriptografi ( Cipher Substitusi Homofonik )

10 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

<a href="http://www.if.undip.ac.id/">INFORMATIKA</a> </br> <a

href="http://undip.ac.id/">UNDIP</a></p>

</br><p align="center" >Copyright &copy; 2012 by <a

href="http://www.sandhiyaniz.com">sandhiyaniz.com</a>. All Rights Reserved.</p>

</body>

</html>

2. SubstitusiHomofon.php

Ini adalah file PHP yang berisi fungsi-fungsi yang digunakan saat kita memilih Enkripsi atau

Dekripsi pada saat melakukan pengkodean.

Page 11: Laporan Kriptografi ( Cipher Substitusi Homofonik )

11 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

di bawah ini adalah bagian dari table array yang kita gunakan sebagai kunci <?php

function getTable(){

/** Tabel plainteks ke chiperteks */

$tabel = array("A"=>array("BU","CP","AV","AH","BT","BS","CQ"),

"B"=>array("AT"),

"C"=>array("DL","BK","AU"),

"D"=>array("BV", "DY", "DM", "AI"),

"E"=>array("DK", "CO", "AW", "BL","AA", "CR", "BM", "CS","AF",

"AG", "BO","BN", "BE"),

"F"=>array("BW","CM","CN"),

"G"=>array("DN","BJ"),

"H"=>array("AS","CL","CK"),

"I"=>array("DJ","BI","AX","CJ","AB","BP","CU","CT"),

Page 12: Laporan Kriptografi ( Cipher Substitusi Homofonik )

12 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

"J"=>array("BX"),

"K"=>array("DI"),

"L"=>array("AR", "BH", "CI", "AJ"),

"M"=>array("DH", "BG", "AY"),

"N"=>array("BY","DG","DF","CH","AC","BR","DU","DT"),

"O"=>array("DZ","BF","DX","AK","CG","BQ","DR"),

"P"=>array("BZ", "DE", "AZ"),

"Q"=>array("DD"),

"R"=>array("AQ","DC","DQ","AL","CE","CF","CV","DS"),

"S"=>array("AP","AN","AO","CD","DW","DV"),

"T"=>array("CB","DB","DP","CC","AD","CY","CW","CX","AE"),

"U"=>array("CA","AM","BA"),

"V"=>array("BB"),

"W"=>array("CZ"),

"X"=>array("BD"),

"Y"=>array("DO", "DA"),

"Z"=>array("BC"));

return $tabel;

}

Di bawah ini adalah bagian fungsi yang digunakan dalam melakukan Enkripsi

Plainteks

/** Fungsi yang digunakan untuk mengenkripsi plainteks */

function enkripsi($str){

/**Fungsi untuk menghilangkan spasi pada string */

$str = str_ireplace(' ','',$str);

/** Fungsi untuk merubah semua huruf menjadi huruf kapital */

$str = strtoupper($str);

/** Ambil jumlah huruf untuk pencacah */

$len = strlen($str);

/** Ambil pemetaan plainteks ke chiperteks pada tabel */

$tabel = getTable();

$chiper = '';

for($i=0;$i<$len;$i++){

Page 13: Laporan Kriptografi ( Cipher Substitusi Homofonik )

13 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

/** Cek apakah huruf plainteks ada pada tabel di atas */

if(array_key_exists($str[$i], $tabel)){

/** Hitung jumlah kemungkinan chiperteks pada huruf*/

$c = count($tabel[$str[$i]]);

/** Ambil salah satu chiperteks dari huruf plainteks */

$chiper .= $tabel[$str[$i]][rand(0,$c-1)];

}

}

return $chiper;

}

Di bawah ini adalah bagian fungsi yang digunakan dalam melakukan Dekripsi

Chipertext

/** Fungsi yang digunakan untuk melakukan dekripsi pada chiperteks */

function dekripsi($chipertext){

/** Hitung panjang karakter yang ada pada chiperteks */

$len = strlen($chipertext);

/** Jika chiperteks berjumlah genap, maka dapat dilakukan dekripsi pada chiperteks */

if($len%2==0){

/** Ambil peta plainteks ke chiperteks pada tabel*/

$tabel = getTable();

$plaintext = '';

$i=0;

while($i<$len){

foreach($tabel as $tab=>$tabs){

/** cek apakah setiap 2 huruf chiperteks ada pada array di tabel ? jika ada berikan nilai index

*/

if(in_array($chipertext[$i].$chipertext[$i+1], $tabel[$tab])){$plaintext .= $tab;}

}

$i+=2;

}

}

Page 14: Laporan Kriptografi ( Cipher Substitusi Homofonik )

14 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

Ini adalah fungsi yang berjalan atau di eksekusi jika keadaan di atas tidak terpenuhi

/** Jika chiperteks tidak berjumlah genap berarti chiperteks tidak dapat di dekripsi */

else{

$plaintext = 'Chipertext tidak lengkap';

}

return $plaintext;

}

3. Style.css Berikut adalah file yang berisi code untuk tampilan program.

@charset "utf-8";

/* CSS Document */

/*author : sandhi yani z*/

/*NIM : 24010310141038 */

a:link {color:#000000; text-decoration:none} /* unvisited link */

a:visited {color:#999;} /* visited link */

a:hover {color:#000; text-decoration:underline} /* mouse over link */

a:active {color:#000;} /* selected link */

.input {border: 1px solid #006; background:#FFF; height:40px; width:275px; font-size:16px;

text-align:center;}

.input:hover {

border: 1px solid #000;

background:#F0F0F0;

}

Page 15: Laporan Kriptografi ( Cipher Substitusi Homofonik )

15 | K r i p t o g r a f i | c i p h e r s u b s t i t u s i h o m o f o n i k

BAB III PENUTUP

PHP dapat digunakan untuk membuat program yang menggunakan fungsi Enkripsi &

Dekripsi, kita telah melihat bagaimana program tersebut di buat dengan melihat perbagian

dan fungsi-fungsi yang ada pada program tersebut. Program tersebut menggunakan metode

cipher substitusi homofonik yang menggunakan pemetaan dari Plainteks ke Cipherteks, 1

huruf Plainteks mempunyai kunci 2 huruf di Cipherteks dan mempunyai beberapa

kemungkinan sesuai dengan presentasi kemunculan huruf tersebut dalam sebuah kalimat

yang akan di Enkripsi.

Di atas telah berhasil di buat sebuah program yang mampu melakukan fungsi Ekripsi

& Dekripsi dengan metode Cipher Substitusi Homofonik, dengan memanfaatkan table /

array yang telah di buat sebelumnya, program ini mampu mengenkripsi satu huruf ( Plainteks

) ke dalam 2 huruf ( Ciphertext ), sehingga jika kita memasukkan 5 huruf ( Plainteks ) maka

akan menghasilkan 10 huruf ( Cipherteks ) dengan rumus hasil = 2P ( 2 x huruf Plainteks ).

Untuk fungsi Dekripsi tidak dapat dilakukan jika jumlah Huruf adalah ganjil, hal ini

dikarenakan 2 huruf ( Cipherteks ) memetakan 1 huruf ( Plainteks ) atau one-to-one,

sedangkan dari Plainteks Cipherteks disebut hubungan one-to-many.

Dari program di atas masih ada kelemahan. Yaitu pada fungsi Dekripsi tidak adanya

Space diantara kata. Jadi jika kita ingin menDekripsi nilai dari sebuah deretan huruf hasil dari

dekripsi tersebut tidak akan memiliki Space.

Untuk melihat Live Demo dari program di atas dapat dilihat di sini :

http://www.sandhiyaniz.com/kripto