LISTING PROGRAM Home :
<?php
session_start();
if ( !isset($_SESSION['userid']) ) { header('location:login.php'); } else
{ $usr = $_SESSION['userid']; } require_once('connect.php');
$query = mysql_query("SELECT * FROM anggota WHERE userid = '$usr'"); $hasil = mysql_fetch_array($query);
?> <html> <head>
<title>Halaman Utama</title> </head>
<body> <?php
echo "<h2>Selamat Datang, $usr</h2>";
echo "Nama Lengkap : " . $hasil['nama'] . "<br />"; echo "Email : " . $hasil['email'];
?>
<a href="logout.php"><b>Logout</b></a> </body>
Profil :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>
<head>
<title>Aplikasi Enkripsi & Dekripsi</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style>
#css3pic{background: rgb(176,174,38); /* Fallback Background color */
background: url(images/pattern.png), -moz-linear-gradient(top, rgba(176,174,38,1) 0%, #6e6c00 100%);
background:url(images/pattern.png), -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(176,174,38,1)), color-stop(100%,rgba(110,108,0,1)));width:980px;border-top:1px solid #ccc;margin:0 auto;padding:0 auto;border-radius: 5px;
-webkit-border-radius: 5px;
#css3bar a.trigger{padding:8px 13px 8px 9px} #css3bar li{float:left;position:static;width:auto} #css3bar li ul,#css3bar ul li{width:140px}
a{text-align:left;color:#fff;font-size:11px;font-weight:400;text-#css3bar li:hover a,a{text-align:left;color:#fff;font-size:11px;font-weight:400;text-#css3bar a:active,a{text-align:left;color:#fff;font-size:11px;font-weight:400;text-#css3bar a:focus,a{text-align:left;color:#fff;font-size:11px;font-weight:400;text-#css3bar li.hvr a{;color:#fff;-webkit-transition: all .2s ease-in-out;
-moz-transition: all .2s ease-in-out; -ms-transition: all .2s ease-in-out; -o-transition: all .2s ease-in-out; transition: all .2s ease-in-out; }
#css3bar li:hover ul,#css3bar li.hvr ul{background: rgb(176,174,38); /* Fallback Background color */
background: url(images/pattern.png), -moz-linear-gradient(top, rgba(176,174,38,1) 0%, #6e6c00 100%);
background:url(images/pattern.png), -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(176,174,38,1)), color-stop(100%,rgba(110,108,0,1)));display:block} #css3bar li:hover ul a,#css3bar li.hvr ul a{color:#fff;background-color:transparent;text-decoration:none}
#css3bar li ul li.hr{border-top:1px solid #444;display:block;font-size:1px;height:0;line-height:0;margin:2px 0}
#css3bar ul a:hover{background-image: -webkit-linear-gradient(top, #990066, #cc0099, #990066);
background-image: -moz-linear-gradient(top, #990066, #cc0099, #990066); background-image: -ms-linear-gradient(top, #990066, #cc0099, #990066); background-image: -o-linear-gradient(top, #990066, #cc0099,
<table align="center" height="200" width="1000"> <tr>
<td align="center">
align="middle" type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" /> </td>
</tr> </table>
<table border"5" align="center" width="1000"> <tr>
<td>
<div id='css3pic'> <div id='css3wrapper'> <ul id='css3bar'>
<li><a href='index2.php'>Home</a></li> <li><a href='profil.php'>Profil</a></li> <li><a class='trigger' href='#'>Tutorial</a> <ul>
<li><a href='bahan.php'>Bahan Jurnal PDF</a></li> </ul>
</li>
<li><a class='trigger' href='#'>Enkripsi/Dekripsi PDF</a> <ul>
<li><a class='trigger' href='programenkripsi.php'> (AES-128/Rinjdael)</a></li> <li><a class='trigger' href='programenkripsi3des.php'>Triple DES (3 DES)</a></li> </ul>
</li>
<li><a href='logout.php'>Keluar Aplikasi</a></li> </ul>
<br class='clearit'/> </div>
</td>
Encryption menjadi kebutuhan bagi mereka yang ingin menyimpan file salinan yang tidak dapat diakses tanpa izin.
Encryption adalah proses membuat sandi atau mengacak data untuk menyelubungi pesan yang sesungguhnya dari orang-orang yang tidak mempunyai kunci khusus untuk membaca pesan tersebut. Untuk informasi lebih lanjut tentang encryption ...
<a href="read.php">Silakan Baca...</a></p> </td>
</tr> </table>
<table align="center" background="gambar/oke.jpg" height="500" width="1000"> <tr>
<table align="center" background="gambar/putih.jpg" height="30" width="1000"> <tr>
<td align="center">
---TERIMA KASIH-2016@Rahman--- </td>
</table> </td> </tr> </table> </body> </html>
Index :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>
<head>
<title>Aplikasi Enkripsi & Dekripsi</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style>
#css3pic{background: rgb(176,174,38); /* Fallback Background color */
background: url(images/pattern.png), -moz-linear-gradient(top, rgba(176,174,38,1) 0%, #6e6c00 100%);
background:url(images/pattern.png), -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(176,174,38,1)), color-stop(100%,rgba(110,108,0,1)));width:980px;border-top:1px solid #ccc;margin:0 auto;padding:0 auto;border-radius: 5px;
-webkit-border-radius: 5px; -moz-border-radius: 5px; border: solid 1px #251400;}
#css3wrapper{width:980px;height:27px;margin:0 auto} .clearit{clear:both;height:0;line-height:0.0;font-size:0} #css3bar{width:100%}
#css3bar,#css3bar ul{list-style:none;font-family:Arial, serif;margin:0;padding:0} #css3bar a{display:block;text-decoration:none;font-size:12px;font-weight:bold;text-transform:uppercase;color:#333;padding:8px 8px 8px}
#css3bar ul li
a{text-align:left;color:#fff;font-size:11px;font-weight:400;text-#css3bar li:hover a,a{text-align:left;color:#fff;font-size:11px;font-weight:400;text-#css3bar a:active,a{text-align:left;color:#fff;font-size:11px;font-weight:400;text-#css3bar a:focus,a{text-align:left;color:#fff;font-size:11px;font-weight:400;text-#css3bar li.hvr a{;color:#fff;-webkit-transition: all .2s ease-in-out;
-moz-transition: all .2s ease-in-out; -ms-transition: all .2s ease-in-out; -o-transition: all .2s ease-in-out; transition: all .2s ease-in-out; }
#css3bar li:hover ul,#css3bar li.hvr ul{background: rgb(176,174,38); /* Fallback Background color */
background: url(images/pattern.png), -moz-linear-gradient(top, rgba(176,174,38,1) 0%, #6e6c00 100%);
background:url(images/pattern.png), -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(176,174,38,1)), color-stop(100%,rgba(110,108,0,1)));display:block} #css3bar li:hover ul a,#css3bar li.hvr ul a{color:#fff;background-color:transparent;text-decoration:none}
#css3bar li ul li.hr{border-top:1px solid #444;display:block;font-size:1px;height:0;line-height:0;margin:2px 0}
#css3bar ul a:hover{background-image: -webkit-linear-gradient(top, #990066, #cc0099, #990066);
background-image: -moz-linear-gradient(top, #990066, #cc0099, #990066); background-image: -ms-linear-gradient(top, #990066, #cc0099, #990066); background-image: -o-linear-gradient(top, #990066, #cc0099,
#990066);!important;color:#fff!important;text-decoration:none} </style>
</head>
<body background="gambar/putih.jpg" >
<tr>
<td align="center">
<embed src="kepalarahman1.swf" quality="high" width="950" height="200" align="middle" type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" /> </td>
</tr> </table>
<table border"5" align="center" width="1000"> <tr>
<td>
<div id='css3pic'> <div id='css3wrapper'> <ul id='css3bar'>
<li><a href='index2.php'>Home</a></li> <li><a href='profil.php'>Profil</a></li> <li><a class='trigger' href='#'>Tutorial</a> <ul>
<li><a href='bahan.php'>Bahan PDF</a></li> </ul>
</li>
<li><a class='trigger' href='#'>Enkripsi/Dekripsi PDF</a> <ul>
<li><a class='trigger' href='enkripsi_aes.php'> (AES-128/Rinjdael)</a></li> <li><a class='trigger' href='enkripsi_tripledes.php'>Triple DES (3 DES)</a></li> </ul>
</li>
<li><a href='logout.php'>Keluar Aplikasi</a></li> </ul>
</div>
<table align="center" background="gambar/oke.jpg" height="500" width="1000"> <tr>
<td>
<p align="center"><h3><font size="6">APLIKASI ENKRIPSI DAN DEKRIPSI PDF<br><br></font></h3>\
<br><br>
<img src="gambar/kunci2.jpg"><br><br> <img src="gambar/data2.jpg"><br><br>
<h4><font size="4">Keamanan data merupakan hal yang sangat penting dalam menjaga kerahasiaan informasi, terutama yang berisi informasi sensitif yang hanya boleh diketahui isinya oleh pihak tertentu, sehingga perlu dilakukan penyandian data supaya beberapa pihak yang tidak memiliki kewenangan tidak akan dapat membuka informasi yang dikirim. Salah satu cara yang digunakan untuk pengamanan data adalah menggunakan sistem kriptografi yaitu dengan menyediakan isi informasi (plaintext) menjadi isi yang tidak dipahami melalui proses enkripsi (encipher), dan untuk memperoleh kembali informasi yang asli, dilakukan proses deskripsi (decipher), dengan menggunakan kunci yang benar
</h4>
<table align="center" background="gambar/putih.jpg" height="30" width="1000"> <tr>
<td align="center">
</td> </tr> </table> </td> </tr> </table> </body> </html>
Enkripsi Rinjdael : <!DOCTYPE html> <html>
<head>
<meta charset="utf-8"/>
<title>ENKRIPSI DAN DEKRIPSI FILE PDF KE DOC MENGGUNAKAN AES DAN TRIPLE DES</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="http://fonts.googleapis.com/css?family=Raleway:400,700" rel="stylesheet" /> <link href="assets/css/style.css" rel="stylesheet" />
</head> <body>
<a class="back"></a> <div id="stage"> <div id="step1"> <div class="content">
<h1>Apakah Yang Ingin Anda Lakukan?</h1>
</div>
<div id="step2">
<div class="content if-encrypt">
<h1>Pilih Mana File Yang Ingin Dienkripsi</h1> <h2>Silakan Pilih File PDF.</h2>
<a class="button browse blue">Browse</a> <input type="file" id="encrypt-input" /> </div>
<div class="content if-decrypt">
<h1>Pilih File Yang Akan DiDekripsi</h1>
<h2>Hanya File Yang Sudah Terenkripsi Yang Dapat Diproses </h2> <a class="button browse blue">Browse</a>
<input type="file" id="decrypt-input" /> </div>
</div>
<div id="step3">
<div class="content if-encrypt"> <h1>Masukan Kunci</h1>
<h2>Kunci Yang Dimasukan Sebagai Kunci Membuka File Ter-Enkripsi </h2> <input type="password" />
<a class="button process red">Encrypt!</a> </div>
<div class="content if-decrypt"> <h1>Masukan Kunci</h1>
<h2>Masukan Kunci Untuk Membuka File Ter-Enkripsi</h2> <input type="password" />
<a class="button process red">Decrypt!</a> </div>
<div id="step4"> <div class="content">
<h1>File PDF Di Enkripsi Ke Format Doc Sukses!</h1>
<a class="button download green"><Font size="2">Silakan Download</font></a> </div>
</div> </div> <footer>
<a href="http://localhost/programRahman/index2.php">Kembali Kehalaman Utama >>>>HOME</a>
<div id="tzine-actions"></div> <span class="close"></span> </footer>
</body>
<!-- Include the AES algorithm of the crypto library --> <script src="assets/js/aes.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="assets/js/script.js"> </script>
</html>
Enkripsi 3DES : <!DOCTYPE html> <html>
<head>
<meta charset="utf-8"/>
<title>ENKRIPSI DAN DEKRIPSI FILE PDF KE DOC MENGGUNAKAN AES-128(Rinjdael) DAN TRIPLE DES</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="assets2/css/style.css" rel="stylesheet" /> </head>
<body>
<a class="back"></a> <div id="stage"> <div id="step1"> <div class="content">
<h1>Apakah Yang Ingin Anda Lakukan?</h1>
<a class="button encrypt green"><Font size="2">Enkripsi File PDF Triple DES</font></a> <a class="button decrypt magenta"><Font size="2">Dekripsi File PDF Triple
DES</font></a> </div>
</div>
<div id="step2">
<div class="content if-encrypt">
<h1>Pilih Mana File Yang Ingin Dienkripsi</h1> <h2>Silakan Pilih File PDF.</h2>
<a class="button browse blue">Browse</a> <input type="file" id="encrypt-input" /> </div>
<div class="content if-decrypt">
<h1>Pilih File Yang Akan DiDekripsi</h1>
<h2>Hanya File Yang Sudah Terenkripsi Yang Dapat Diproses.</h2> <a class="button browse blue">Browse</a>
<input type="file" id="decrypt-input" /> </div>
</div>
<div id="step3">
<h2>Kunci Yang Dimasukan Sebagai Kunci Membuka File Ter-Enkripsi . </h2> <input type="password" />
<a class="button process red">Encrypt!</a> </div>
<div class="content if-decrypt"> <h1>Masukan Kunci</h1>
<h2>Masukan Kunci Untuk Membuka File Ter-Enkripsi.</h2> <input type="password" />
<a class="button process red">Decrypt!</a> </div>
</div>
<div id="step4"> <div class="content">
<h1>File PDF Di Enkripsi Ke Format Doc Sukses!</h1> <a class="button download green">Silakan Download</a> </div>
</div> </div> <footer>
<a class="tz" href="http://localhost/programRahman/index2.php">Kembali Kehalaman Utama >>>>HOME</a>
<div id="tzine-actions"></div> <span class="close"></span> </footer>
</body>
<!-- Include the AES algorithm of the crypto library --> <script src="assets2/js/aes.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="assets2/js/script.js"></script>
Pilih Bahan :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>
<head>
<title>Aplikasi Enkripsi & Dekripsi</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style>
#css3pic{background: rgb(176,174,38); /* Fallback Background color */
background: url(images/pattern.png), -moz-linear-gradient(top, rgba(176,174,38,1) 0%, #6e6c00 100%);
background:url(images/pattern.png), -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(176,174,38,1)), color-stop(100%,rgba(110,108,0,1)));width:980px;border-top:1px solid #ccc;margin:0 auto;padding:0 auto;border-radius: 5px;
-webkit-border-radius: 5px;
#css3bar a.trigger{padding:8px 13px 8px 9px} #css3bar li{float:left;position:static;width:auto} #css3bar li ul,#css3bar ul li{width:140px}
a{text-align:left;color:#fff;font-size:11px;font-weight:400;text-border: solid 1px #251400;}
#css3bar li:hover a,#css3bar a:active,#css3bar a:focus,#css3bar li.hvr a{;color:#fff;-webkit-transition: all .2s ease-in-out;
-moz-transition: all .2s ease-in-out; -ms-transition: all .2s ease-in-out; -o-transition: all .2s ease-in-out; transition: all .2s ease-in-out; }
#css3bar li:hover ul,#css3bar li.hvr ul{background: rgb(176,174,38); /* Fallback Background color */
background: url(images/pattern.png), -moz-linear-gradient(top, rgba(176,174,38,1) 0%, #6e6c00 100%);
background:url(images/pattern.png), -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(176,174,38,1)), color-stop(100%,rgba(110,108,0,1)));display:block} #css3bar li:hover ul a,#css3bar li.hvr ul a{color:#fff;background-color:transparent;text-decoration:none}
#css3bar li ul li.hr{border-top:1px solid #444;display:block;font-size:1px;height:0;line-height:0;margin:2px 0}
#css3bar ul a:hover{background-image: -webkit-linear-gradient(top, #990066, #cc0099, #990066);
background-image: -moz-linear-gradient(top, #990066, #cc0099, #990066); background-image: -ms-linear-gradient(top, #990066, #cc0099, #990066); background-image: -o-linear-gradient(top, #990066, #cc0099,
#990066);!important;color:#fff!important;text-decoration:none} </style>
</head>
<body background="gambar/putih.jpg" >
<table align="center" height="200" width="1000"> <tr>
<td align="center">
<embed src="kepalarahman1.swf" quality="high" width="950" height="200" align="middle" type="application/x-shockwave-flash"
</tr> </table>
<table border"5" align="center" width="1000"> <tr>
<td>
<div id='css3pic'> <div id='css3wrapper'> <ul id='css3bar'>
<li><a href='index2.php'>Home</a></li> <li><a href='profil.php'>Profil</a></li> <li><a class='trigger' href='#'>Tutorial</a> <ul>
<li><a href='bahan.php'>Bahan Jurnal PDF</a></li> </ul>
</li>
<li><a class='trigger' href='#'>Enkripsi/Dekripsi PDF</a> <ul>
<li><a class='trigger' href='programenkripsi.php'> (AES-128/Rinjdael)</a></li> <li><a class='trigger' href='programenkripsi3des.php'>Triple DES (3 DES)</a></li> </ul>
</li>
<li><a href='logout.php'>Keluar Aplikasi</a></li> </ul>
<br class='clearit'/> </div>
<div style='clear:both;'/> </div>
</table>
<table align="center" border="3" background="gambar/oke.jpg" height="600" width="1000">
<tr>
<td align="center">
<table align="center" border="3" background="gambar/hijau.jpg" width="600" height="400">
<td><a href="saputra2014.docx">Download Jurnal Oleh Saputra
<td><a href="transformasi_jurnal2.pdf">Download
transformasi_jurnal2.pdf</a></td><td>transformasi_jurnal2</td><td>162Kb</td><td>PDF< /td>
</tr> </table> </td> </tr> </table> <br><br>
<table align="center" background="gambar/putih.jpg" height="30" width="1000"> <tr>
<td align="center">
---TERIMA KASIH-2016@Rahman---
Abdul, Muhammad, Rahim. 2013. Implementasi Kombinasi Algoritma 3DES Dan Algoritma BASE64 Pada Sistem Keamanan Handshaking Animation Store Di CV. Edukreasi. Universitas Dian Nuswantoro
Dwi, Hartanto, Anggit. 2011. Penerapan Teknik Komputer Forensik Untuk Pengembalian Dan Penghapusan Berkas Digital. STMIK AMIKOM Yogyakarta
Edhy, Sutanta. 2012. Aplikasi Penjualan Toko Online dengan menggunakan PHP.
Jakarta: PT. Elex Media Komputindo.
Efendi. 2012. Implementation Sms Gateway In The Development Web Based Information System Schedule Seminar Thesis. Lampung, UNILA
Fauziah, Yuli. 2014. Tinjauan Keamanan Sistem Pada Teknologi Cloud Computing UPN, Yogyakarta
Haviluddin. 2011. Memahami Penggunaan UML (Unified Modelling Language).
Samarinda, Universitas Mulawarman
Hendry. 2002. Perancangan Sistem Keamanan Untuk Aplikasi Survey Berbasis Web.
STMIK Budi Darma Jakarta, Jakarta
Herny, Februarianti. 2014. Rancang Bangun Sistem Perpustakaan untuk Jurnal Elektronik. Universitas Stikubank
Kroenke. 2010. Database Processing Dasar-Dasar, Desain & Implementasi. Jakarta, Erlangga
Kurniawan. 2011. Pengembangan Aplikasi Helpdesk Pada PT. JICT (Jakarta International Container Terminal). Universitas Islam Negeri Syarif Hidayatullah, Jakarta
Mustafa. 2010. Perancangan Keamanan Database Server mySQL Bebasis Sistem Operasi Open Sourcee Pada PT. PLN P3B Sumatera Utara UPT Palembang.
Universitas Palembang, Palembang
Nugroho. 2010. Perencanaan dan Implementasi Sistem Basis Data. ANDI OFFSET, Yogyakarta
Nur, Rohmat, Ibrahim. 2012. Kriptografi Algoritma DES, AES/Rijndael, Blowfish Untuk Keamanan Citra Digital Dengan Menggunakan Metode Discrete Wavelet Transformation (DWT). STMIK Mardira Indonesia, Bandung
Surian. 2009. Algoritma Kriptografi Aes Rijndael.Universitas Tarumanegara, Jakarta Sulindawati. 2010. Pengantar Analisa Perancangan Sistem. AMIKOM, Jakarta
BAB 3
ANALISA DAN PERANCANGAN SISTEM
3.1. Analisa Sistem
Dalam tahap analisa ini menentukan informasi, fungsi, proses atau prosedur yang diperlukan beserta antar muka. Maka sistem ini nantinya dapat mengamankan data input yang berupa plainteks yang kemudian di enkripsi menggunakan algoritma 3DES (Triple DES) dan algoritma AES Advanced Encryption Standard dengan proses yang relatif cepat sehingga pada saat pengujian dapat dilakukan perbandingan.
3.1.1 Analisa Algoritma 3DES
Algoritma 3DES sebagai salah satu algoritma enkripsi data yang sering digunakan di dunia. Algoritma ini sendiri berasal dari pengembangan algoritma DES (Data Encryption Standard) yang diulang sebanyak 3 kali. Algoritma ini sangat cocok dan memang kerap digunakan pada teknologi VPN (Virtual Private Network) yang menjamin keamanan interkoneksi.
VPN adalah teknologi yang menjamin keamanan jaringan meskipun memakai jaringan publik seperti internet atau yang lainnya dengan menggunakan tunnel diantara ujung-ujung koneksinya. Ketika data akan masuk ke dalam tunnel, maka data teersebut akan terlebih dahulu dienkripsi. Setelah proses enkripsi tersebut selesai barulah data yang teelah terenkripsi masuk kedalam tunnel. Ketika data teersebut keluar dari ujung tunnel yang satunya lagi, barulah data tersebut kembali di konversi ke bentuk semula dengan proses dekripsi. Selain yang penulis sbutkan, masih ada beberapa langkah proses dalam VPN yang menjadikan VPN
sebagai solusi keamanan interkoneksi yang melewati jaringan publik. Ada banyak implementasi perangkat lunak dan perangakat keras DES. Melihat pengertian 3DES
diatas, pengulangan sebanyak 3 kali sangatlah penting guna mencegah meet-in-the-middle-attack. Ada beberapa versi 3DES yang bisa dibentuk dalam bentuk sederhana yaitu:
Enkripsi: C=Ek3(Ek2(Ek1(P)))
Versi pertama 3DES menggunakan 2 buah kunci (mode EDE):
Enkripsi: C=Ek1(Ek2(Ek1(P)))
Dekripsi: D=Dk1(Dk2(Dk1(C)))
Versi kedua 3DES menggunakan 3 buah kunci (mode EDE):
Enkripsi: C=Ek3(Dk2(Ek1(P)))
Dekripsi: D=Dk1(Ek2(Dk3(P)))
3DES memungkinkan pengguna memakai tiga sub kunci dengan masing-masing panjang 64 bit. Data dienkrip dengan kunci pertama kemudian didekrip dengan kunci kedua dan terakhir dienkrip lagi dengan kunci ke tiga seperti gambar 3.7 proses enkripsi dan dekripsi 3DES berikut.
Gambar 3.1 Proses Enkripsi dan Dekripsi Algoritma 3DES
Gambar 3.2 Enkripsi dan Dekripsi Algoritma 3DES
3.1.2 Algoritma AES
Algoritma AES atau Rijndael menyandikan data dalam empat langkah dasar yaitu, langkah SubBytes(), langkah ShiftRows(), langkah MixColumns() dan AddRoundkey(). Langkah-langkah tersebut dapat di deskripsikan lebih mudah dengan memvisualisasikan data yang akan dikonversi dalam array byte segi empat.
SubBytes() diperoleh dengan memakai atau mensibtusikan kedalam tabel nonliniear
yang dikenal dengan tabel S-Box. ShiftRows() dilakukan melalui permutasi byte-byte
data dari kolom array yang berbeda.
Langkah MixColumns() menyandikan data menjadi kombinasi linear dari byte-byte dari data dalam satu kolom array tersebut. AddRoundKey() dilakukan dengan operasi XOR antara data dengan kunci. Keempat langkah tersebut akan memiliki nama khusus dalam algoritma yang diterangkan AES pada gambar 3.3 dibawah ini.
Plaintext : tampilkerenlebihbaik
Kunci : 47034 9 53 0 04
State : tampilkerenlebihbaik
AES mempresentasikan data dengan cara urutan byte dan bit (0 atau 1 pada bn), dimana data diturunkan dari urutan input 128 bit per blok. Bit-bit tersebut diberi indeks mulai dari 0 sampai dengan 127 (0 ≤ I < 128). Setiap urutan 8 bit (1 byte) diberlakukan sebagai entitas tunggal yang merupakan elemen finite field, sesuai persamaan (3.1).
Tabel 3.1 Pengindeksan Aliran Input Urutan
Bit
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 …
Input Input0 Input1
Posisi Bit/Byte
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 …
State State0 State1
Cipher AES dilakukan pada array byte dua dimensi yang disebut state. Block data disusun dalam state yang terdiri atas empat baris Nb byte (Nb= panjang block/4 adalah 4 untuk AES-128). Setiap byte diberi dua indeks yang menyatakan posisinya, dinyatakan sebagai sr,c atau s[r,c], dengan indeks baris r(row) dalam interval 0 ≤ r < 4,
sedangkan indeks kolom c (coloum) dalam 0 ≤ c < Nb. Data dalam state
menginformasikan hasil setiap tahap transformasi (intermediate result). Input dikopi ke state array pada permulaan cipher dan inverse cipher, kemudian state diperbaharui pada akhir setiap transformasi sesuai pada gambar 3.1. Nilai state pada transformasi yang terakhir kemudian dikopi ke output kembali sesuai tabel 3.1.
Input State Output
In0 In4 In8 In12 S0,0 S0,1 S0,2 S0,3 Out0 Out4 Out8 Out12 In1 In5 In9 In13 S1,0 S1,1 S1,2 S1,3 Out1 Out5 Out9 Out13 In2 In6 In10 In14 S2,0 S2,1 S2,2 S2,3 Out2 Out6 Out10 Out14 In3 In7 In11 In15 S3,0 S3,0 S3,2 S3,3 Out3 Out7 Out11 Out15
Gambar 3.3 State Array Pada Input dan Output
State juga dapat dipandang sebagai word 4 byte dalam setiap word. Dengan kata lain, state ekivalen dengan array dari empat word yang berindeks c atau indek kolom dari Sr,c seperti gambar 3.4.
W0 = S0,0 . S1,0 . S2,0 . S3,0 W2 = S0,2 . S1,2 . S2,2 . S3,2
S0,0 S0,1 S0,2 S0,3
=
W0 W1 W2 W3 S1,0 S1,1 S1,2 S1,3S2,0 S2,1 S2,2 S2,3 S3,0 S3,1 S3,2 S3,3
Gambar 3.4 State ArrayEkivalen Pada Word Array
AES termasuk dalam jenis algoritma kriptografi yang sifatnya simetri dan cipher block. Dengan demikian algoritma ini mempergunakan kunci yang sama saat enkripsi dan dekripsi serta masukan dan keluarannya berupa blok dengan jumlah bit tertentu. Contoh Penerapan, misalkan Jodi mengirim data kepada Mira. Data (plainteks) yang akan dikirimkan oleh Mira adalah :
Plaintex : 0 1 2 3 4 5 6 7 8 9 A B C D E F
In HEX : 30 31 32 33 34 35 36 37 38 3 41 42 43 44 45 46 Key : A B C D E F G H I J K L M N O P
In HEX : 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50
3.1.3 Proses Enkripsi Menggunakan AES
1. SubBytes()
Operasi ini merupakan suatu operasi subtitusi nonlinier yang beroperasi secara mandiri pada setiap byte dengan menggunakan tabel S-Box pada tabel 3.2, transformasi yang telah ditabelkan tersebut mengambil invers multiplikatif
GF(28) tiap byte, kemudian diikuti dengan transformasi yang terdiri dari perkalian oleh matriks yang diikuti dengan penjumlahan vector seperti yang ditunjukan pada persamaan 3.2.
2. Add Round Key
Add Round Key pada dasarnya adalah mengkombinasikan chiper teks yang sudah ada dengan chiper key yang chiper key dengan hubungan XOR.
Gambar 3.5 AddRoundKey
XOR dilakukan per kolom yaitu kolom-1 chiper teks di XOR dengan kolom-1
round key dan seterusnya.
3.1.4 Proses Dekripsi Menggunakan AES
InvShiftRows :
InvShiftRows adalah transformasi byte yang berkebalikan dengan transformasi
ShiftRows. Pada transformasi InvShiftRows, dilakukan pergeseran bit ke kanan sedangkan pada ShiftRows dilakukan pergeseran bit ke kiri.
Gambar 3.6 Proses Dekripsi
3.1.5 Analisa Perbandingan Algoritma 3DES dengan Algoritma AES
proses dekripsi. Algoritma 3DES adalah suatu algoritma pengembangan dari algoritma
DES (Data Encryption Standard). Perbedaan DES dengan 3DES terletak pada panjangnya kunci yang digunakan. Pada DES menggunakan satu kunci yang panjangnya 56-bit, sedangkan pada 3DES menggunakan 3 kunci yang panjangnya 168- bit atau masing-masing panjangnya 56-bit. Pada 3DES, 3 kunci yang digunakan bisa bersifat saling bebas (K1 ≠ K2 ≠ K3) atau hanya dua buah kunci yang saling bebas dan satu kunci lainnya sama dengan kunci pertama (K1 ≠ K2 dan K3 = K1). Karena tingkat kerahasiaan algoritma 3DES terletak pada panjangnya kunci yang digunakan, maka penggunaan algoritma 3DES dianggap lebih aman dibandingkan dengan algoritma DES.
Tahap pertama, plainteks yang diinputkan dioperasikan dengan kunci eksternal pertama (K1) dan melakukan proses enkripsi dengan menggunakan algoritma DES. Sehingga menghasilkan pra-cipherteks pertama. Tahap kedua, pra-cipherteks pertama yang dihasilkan pada tahap pertama, kemudian dioperasikan dengan kunci eksternal kedua (K2) dan melakukan proses enkripsi atau proses dekripsi atau tergantung cara pengenkripsian yang digunakan dengan menggunakan algoritma DES. Sehingga menghasilkan prs-cipherteks kedua.
Tahap terakhir, pra-cipherteks kedua yang dihasilkan pada tahap kedua, dioperasikan dengan kunci eksternal ketiga (K3) dan melakukan proses enkripsi dengan menggunakan algoritma DES, sehingga menghasilkan cipherteks (C). Dalam kriptografi, Triple DES adalah nama umum untuk algoritma data Encryption Triple
(TDEA atau Triple DEA) blok cipher, yang menerapkan Standar Enkripsi Data (DES) algoritma cipher tiga kali untuk setiap blok data. Ukuran kunci DES asli cipher dari 56 bit pada umumnya cukup ketika algoritma yang dirancang, tetapi ketersediaan daya komputasi semakin membuat serangan semakin layak. Triple DES menyediakan metode yang relatif sederhana meningkatkan ukuran kunci DES untuk melindungi terhadap serangan tersebut, tanpa perlu merancang sebuah algoritma blok cipher
Gambar 3.7 Blok Chiper
Seperti semua blok cipher pada gambar 3.7 diatas, enkripsi dan dekripsi dari beberapa blok data dapat dilakukan dengan menggunakan berbagai modus operasi, yang secara umum dapat didefinisikan secara independen dari algoritma blok cipher. Namun, ANS X9.52 menentukan secara langsung dan NIST SP 800-67 menentukan melalui SP 800-38A bahwa beberapa mode hanya dapat digunakan dengan batasan tertentu pada mereka yang belum tentu berlaku untuk spesifikasi umum dari mode. Sebagai contoh, ANS X9.52 menetapkan bahwa untuk chaining blok cipher, vektor inisialisasi akan berbeda setiap kali, sedangkan ISO / IEC 10116 tidak. PUB FIPS 46-3 dan ISO / IEC 18033-3 mendefinisikan hanya algoritma blok tunggal, dan tidak menempatkan batasan pada mode operasi untuk beberapa blok. Perbedaan antara
Triple Data Encryption Standard dengan AES adalah :
3DES = Triple DES
Key: 112 ato pake 168 bit
Resource and Speed: Medium and Low
AES = Advanced Encryption Standard
Key: 128, 192, atau 256bit
Resource and Speed: Low and High
3.2 Analisa Kebutuhan Sistem
1. Kebutuhan Perangkat Keras (Hardware)
Adapun perangkat keras yang digunakan dalam membuat aplikasi ini, yaitu: a. Laptop Toshiba Satellite L510
b. Core2Duo 2.20 Ghz
c. RAM 2 GB DDR3
d. Hardisk 320 GB
2. Analisis Perangkat Lunak
Adapun spesifikasi perangkat lunak yang dibutuhkan untuk sistem yang akan dibangun adalah sebagai berikut :
a. Sistem operasi menggunakan minimal Microsoft Windows XP. b. Database system menggunakan MySQL.
c. Bahasa pemrograman menggunakan PHP d. Server localhost menggunakan XAMPP
e. Browser yang digunakan diantaranya seperti mozilla firefox ,opera, google chrome
3. Analisis Kebutuhan Pengguna
Adapun untuk mendukung dalam mengolah informasi, dibutuhkan spesifikasi pengguna yang dibutuhkan untuk sistem yang akan dibangun. Kebutuhan pengguna terdiri dari beberapa kategori adalah sebagai berikut:
a. Admin
Seorang admin harus memiliki kemampuan diantaranya, harus mempunyai kemampuan dasar di bidang komputer khususnya di bidang pemrograman PHP dapat mengolah database. Mampu mengoperasikan sistem operasi minimal Microsoft Windows XP. Selanjutnya mampu menggunakan fasilitas internet. b. Pengunjung
3.3 Model Perancangan Sistem
Model perancangan sistem perangkat lunak yang dibuat meliputi perancangan model perangkat lunak meliputi pembuatan antarmuka aplikasi sistem keamanan data yang terintegrasi dengan 3DES dan AES.
3.3.1 Activity Diagram
Diagram aktivitas menggambarkan suatu urutan proses yang terjadi pada sistem dari dimulainya aktivitas hingga aktivitas berhenti. Diagram aktivitas hampir mirip dengan
flowchart sistem. Diagram aktivitas merupakan salah satu cara untuk memodelkan
event-event yang terjadi dalam suatu use-case.
Gambar 3.8. Activity Diagram
3.3.2 Use Case Diagram
sistem. Gambar 3.6 menunjukkan use case enkripsi dan menunjukkan use case
dekripsi.
Gambar 3.9. Use Case Diagram
3.3.3 Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem atau termasuk pengguna, display dan sebagainya berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal atau waktu dan dimensi horizontal atau objek-objek yang terkait.
3.3.4 Class Diagram
Class diagram menggambarkan struktur dan deskripsi kelas, paket dan objek beserta hubungan satu sama lain seperti containment, pewarisan dan asosiasi. Gambar 10 menunjukkan diagram kelas dari aplikasi enkripsi dan dekripsi email.
2. Flowchart Enkripsi dan Dekripsi Algoritma AES
Pada gambar 3.12 flowcahrt enkripsi dan dekripsi algoritma AES memiliki dasar pengoprasian pada blok 128 bit dengan pembangkitan kunci 128 bit adalah yang pertama dilakukan adalah SubByte melakuakan substitusi byte dengan menggunakan tabel Substitusi (S-box). ShiftRows melakukan pergesaran baris-baris array secara wrapping. MixColumns mengacak data masing-masing kolom
array state dan ADdRoundKey melakukan XOR antara state sekarang Roun key. Pada final round proses yang dilakukan adalah SubBytes, ShiftRows dan
AddRoundKey.
Gambar 3.12(b) FlowchartSistem Proses Enkripsi Dan Dekripsi Algoritma AES
3.4 Perancangan Interface Sistem 3.4.1 Perancangan Menu Home
Gambar 3.13 Perancangan Menu Home
Sedang Berada di Halaman Menu Home….
SELAMAT DATANG
PERBANDINGAN ALGORITMA 3DES DENGAN RINJDAEL DALAM PERANCANGAN APLIKASI
KEAMANAN DATA PDF
Menu Home Menu Profil Menu Enkripsi/Dekripsi Menu Administrator
Foother
3.4.2 Perancangan Menu Profil
Gambar 3.14 Perancangan Menu Profil
3.4.3 Perancangan Menu Enkripsi Algoritma 3DES Dan AES
Gambar 3.15 Perancangan Enkripsi 3DES Dan AES
Sedang Berada di Halaman profil
Profil
Menu Home Menu Profil Menu Enkripsi/Dekripsi Menu Administrator
Foother
Sedang Berada di Halaman enkripsi
Menu Home Menu Profil Menu Enkripsi/Dekripsi Menu Administrator
Foother
Enkripsi/Dekripsi AES Enkripsi/Dekripsi 3DES Enkripsi/Dekripsi AES Enkripsi/Dekripsi 3DES
Plainteks : Pesan : Password :
Enkripsi 3DES
Enkripsi AES
3.4.4 Perancangan Menu Dekripsi Algoritma 3DES Dan AES
Gambar 3.16 Perancangan Dekripsi 3DES Dan AES
3.4.5 Perancangan Menu Administrator
Gambar 3.17 Perancangan Menu Login Sistem Aplikasi
Sedang Berada di Halaman administrator….
Menu Home Menu Profil Menu Enkripsi/Dekripsi Menu Administrator
Foother
Enkripsi/Dekripsi AES Enkripsi/Dekripsi 3DES
LOGIN SISTEM PERBANDINGAN ALGORITMA 3DES DENGAN RINJDAEL (AES)
DALAM PERANCANGAN APLIKASI KEAMANAN DATA PDF
USERNAME
PASSWORD
LOGIN
Sedang Berada di Halaman dekripsi
Menu Home Menu Profil Menu Enkripsi/Dekripsi Menu Administrator
Foother
Enkripsi/Dekripsi AES Enkripsi/Dekripsi 3DES
Plainteks : Pesan : Password :
Dekripsi 3DES
Gambar 3.17 menampilkan perancangan login sistem perbandingan algoritma 3DES dengan Rinjdael (AES) dalam perancangan aplikasi keamanan data PDF.
BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Sistem
Pada bab ini akan diuraikan cara dan langkah-langkah untuk mengimplementasikan rancangan perangkat lunak, kebutuhan perangkat lunak maupun perangkat keras yang digunakan, pengujian sistem dan klasifikasi infrastruktur.
4.1.1 Kebutuhan Sistem
Kebutuhan sistem yang diperlukan dan yang digunakan dalam pembuatan sistem perbandingan algoritma 3DES dengan rinjdael dalam perancangan aplikasi keamanan data PDF ini yang diantaranya yaitu, kebutuhan perangkat keras, kebutuhan perangkat lunak.
4.1.2 Perangkat Keras
Perangkat keras menjelaskan spesifikasi perangkat keras standart yang dibutuhkan dalam merancang aplikasi adalah sebagai berikut:
1. Processor Intel Core 2 Ghz
2. RAM 1 GB
3. Hardisk40 GB
4. Keyboard dan Mouse
5. Monitor 14“
4.1.3 Perangkat Lunak
Perangkat lunak menjelaskan spesifikasi perangkat lunak standart yang dibutuhkan dalam merancang aplikasi adalah sebagai berikut :
3. Bahasa pemrograman menggunakan PHP
4. Server localhost menggunakan XAMPP
5. Browser yang digunakan diantaranya seperti mozilla firefox, opera, google chrome
4.2 Antarmuka Aplikasi Enkripsi dan Dekripsi File Jurnal
Antarmuka (interface) dilakukan dengan mempertimbangkan factor kemudahan pengguna dan secara tidak langsung dapat digunakan untuk menuntun pengguna agar terhindar dari kekeliruan pada saat mengisi masukan ke dalam perangkat lunak. Proses input output menu enkripsi perancangan antarmuka perancangan keamanan file jurnal menggunakan algoritma aes (rijndael) dan 3DES sebagai berikut :
Gambar 4.1 Antarmuka Menu Login Aplikasi Enkripsi dan Dekripsi
Gambar 4.2 Antarmuka MenuHome
Gambar 4.3 Antarmuka Menu Enkripsi dan Dekripsi AES Dengan 3DES
Gambar 4.3 antarmuka menu enkripsi dan dekripsi file dapat dilakukan dengan memilih antarmuka menu enkripsi dan dekripsi file dan dilanjutkan dengan memilih salah satu proses yang akan dilakukan antara proses enkripsi atau proses dekripsi file.
Gambar 4.4 Antarmuka MenuUpload File Enkripsi AES Dengan 3DES
Gambar 4.5 Antarmuka Menu Input Kode Enkripsi AES Dengan 3DES
Gambar 4.5 antarmuka menu input kode enkripsi dapat dimulai dengan memasukan angka minimal 6 digit. Selanjutnya setelah kode angka dimasukan sistem dapat melanjutkan proses enkripsi file.
Gambar 4.6 Antarmuka Proses Download Enkripsi File Jurnal1.PDF
Gambar 4.6 antarmuka proses enkripsi file jurnal bab1.doc. proses
Gambar 4.7 Download Hasil Enkripsi File Jurnal 1.PDF
Gambar 4.7 merupakan antarmuka proses download hasil enkripsi file jurnal skripsi pada jurnal1.doc. proses ini dimulai dengan menyelesaikan proses upload
kemudian proses input kode kunci dan proses download file. Pada proses
download file sukses maka sistem menampilkan hasil download file yang telah di enkripsi.
Gambar 4.8 Tampil Hasil Enkripsi File Jurnal 1.PDF
Gambar 4.9 Antarmuka Proses Upload File PDF
Gambar 4.9 merupakan antarmuka proses dekripsi file pdf. Proses dekripsi dimulai dengan proses upload file pdf. Kemudian dilanjutkan dengan memilih
browse, pada proses akhir sistem melakukan proses browse file.
Gambar 4.10 Upload File Jurnal1.PDF
Gambar 4.10 merupakan proses upload file jurnal1.pdf, setelah proses
upload dengan memilih browse file dilakukan maka sistem menampilkan form
Gambar 4.11 Input Kode Dekripsi File Jurnal1.PDF
Gambar 4.11 merupakan input kode dekripsi file jurnal 1.PDF, yang dimulai dengan memasukan kode input minimal 6 digit dan memilih enter.
Gambar 4.12 Hasil Proses Dekripsi File Jurnal 1.PDF
Gambar 4.12 merupakan proses dekripsi file jurnal1.pdf, yang dimulai dengan proses upload, selanjutnya setelah proses upload selesai memilih
Gambar 4.13 Hasil Proses Dekripsi File Jurnal1.PDF
Gambar 4.13 merupakan hasil proses dekripsi file jurnal pada jurnal1.pdf, yang dimulai dengan proses upload dan dilanjutkan dengan proses download file, setelah itu sistem akan menampilkan jurnal1.pdf yang telah di dekripsi.
Gambar 4.14 Hasil Dekripsi File Jurnal1.PDF
4.3 Pengujian Aplikasi Program
Pada bagian ini dilakukan pengujian aplikasi untuk mengenkripsi file dan setelah proses enkripsi selesai dilakukan akan dilihat hasilnya kemudian dilakukan pengujian apakah file tersebut bisa dikembalikan seperti semula. Pengujian dilakukan pada beberapa file dengan ekstensi berbeda, yaitu ekstensi-ekstensi file
yang didukung oleh aplikasi ini kemudian akan dilihat perubahan dari setiap ekstensi serta hasil enkripsi dari masing-masing file. Pengujian dilakukan pada ukuran file yang berbeda dan membandingkan waktu proses untuk masing-masing proses enkripsi atau dekripsi. Kemudian hasil pengujian terhadap ukuran file dan waktu proses. Hasil pengujian pada beberapa file di atas dapat dirangkum dalam tabel berikut yang menunjukkan ukuran dan waktu proses untuk masing-masing
file pada tiap proses enkripsi dan dekripsi. Hasil proses enkripsi beberapa file yang berekstensi berbeda dapat dilihat pada tabel 4.1.
Tabel 4.1. Hasil Perbandingan Enkripsi Beberapa File Perbandingan Algoritma 3DES Dengan Rinjdael Dalam Perancangan Aplikasi Keamanan
Tabel 4.2. Hasil Proses Dekripsi Beberapa File Hasil Enkripsi No Nama File
Plainteks
Ukuran File Cipherteks (KB)
Ukuran File Plainteks(KB)
Waktu Proses Enkripsi (s)
3DES Rinjdael 3DES Rinjdael 3DES Rinjdael
1 Cover.pdf 843 KB 672KB 378 KB 378 KB 3.98 s 3.25 s
2 Berkas.pdf 738 KB 565KB 317 KB 317 KB 3.57 s 3.04 s
3 Bab1.pdf 296 KB 161 KB 90 KB 90 KB 2.49 s 2.07 s
4 Bab2.pdf 781 KB 597 KB 336 KB 336 KB 3.65 s 3.13 s
5 Bab3.pdf 968 KB 736 KB 414 KB 414 KB 4.13 s 3.47 s 6 Bab4.pdf 1.780 KB 1.445 KB 981 KB 981 KB 6.14 s 5.79 s
7 Bab5.pdf 387 KB 227 KB 128 KB 128 KB 2.68 s 2.14 s
Dari hasil di atas dapat dilihat bahwa besarnya ukuran file mempengaruhi waktu atau lamanya proses enkripsi atau dekripsi. Dari tujuh file yang diproses oleh aplikasi ini terlihat bahwa semakin besar ukuran file, maka semakin banyak waktu yang diperlukan untuk proses tersebut. Waktu proses untuk enkripsi dan dekripsi untuk masing-masing file sedikit berbeda, diakibatkan ukuran antara file plainteks dan file cipherteks-nya sedikit berbeda. Ukuran file cipherteks sedikit lebih besar dibandingkan plainteksnya. Perbedaan ukuran antara plainteks dan
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari hasil perbandingan algoritma 3DES dengan AES-128 (Rinjdael) pada data
PDF ini, dapat diambil kesimpulan sebagai berikut :
1. Dalam perbandingan Algoritma 3DES dan Rinjdael dalam aplikasi ini menunjukan bahwa kompleksitas runtime 3DES lebih besar dari pada Rinjdael.
2. Selain dalam ukuran runtime yang berbeda, perbedaan kedua algortima dari hasil pengujian nya, dapat dilihat bahwa hasil ukuran file yang di enkripsi menggunakan Algoritma 3DES lebih besar dari pada file Algoritma Rinjdael.
3. Mengubah data yang ingin diamankan ke dalam bilangan hexadesimal baik plainteks dan kuncinya dengan menggunakan tabel ASCII, kemudian dilakukan dengan proses enkripsi dan dekripsi, proses enkripsi dilakukan proses sebanyak empat (4) langkah, langkah pertama yang dilakukan proses
AddRoundkey, melakukan XOR antara plainteks dengan cipher key, langkah ke dua proses subbbytes, substitusi byte dengan menggunakan tabel substitusi (S-BOX), langkah ke tiga proses ShiftRows, mengacak data di masing-masing kolom array state, langkah ke empat proses MixColumns, mengajak data di masing-masing kolom array state.
5.2. Saran
Saran – saran yang berguna untuk pengembangan lebih lanjut dalam membandingkan kedua algoritma adalah sebagai berikut:
enkripsi tidak hanya dilakukan untuk format pdf namun dapat juga digunakan untuk mengenkripsi data berformat docx, excel, notepad dan lain-lain
BAB 2
LANDASAN TEORI
2.1. Kriptografi
Kriptografi merupakan langkah- langkah logis bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak atas pesan tersebut dengan melakukan pembangkitan kunci, enkripsi dan dekripsi. Kriptografi bertujuan untuk memberi layanan keamanan atau yang juga dinamakan sebagai aspek-aspek keamanan (Mustafa, 2010).
Secara bahasa kriptografi berasal dari kata crypto yang berarti rahasia dan
graphy yang berarti tulisan. Jadi kriptografi dapat diartikan sebagai tulisan rahasia. Secara istilah dapat didefinisikan sebagai studi tentang teknik-teknik matematika yang berhubungan dengan keamanan informasi. Teknik kriptografi terdiri dari simetri dan asimetri. Teknik ini digunakan untuk mengamankan aplikasi atau kemanan informasi sehingga dapat menjaga kerahasiaan, integritas data, autentikasi data dan non-repudiation kriptografi diperlukan karena pada dasarnya informasi sangat peting bagi segala aspek, tuntutan kemanan informasi berubah dari waktu ke waktu. Perubahan tuntutan ini terjadi karena transformasi atau penggunaan perlengkapan kebutuhan utama untuk pertukaran informasi, dari mulai cara tradisional atau fisik yang membutuhkan mekansime pengarsipan atau administrasi secara fisik dan membutuhkan ruang yang lebih besar, menggunakan otomatisasi komputer personal, sampai transfer informasi melalui penggunaan jaringan komputer, baik intranet maupun internet yang sekarang menjadi tren dan kebutuhan.
bahwa pengirimnya merupakan orang yang sudah kita percaya atau otentifikasi dan berfungsi juga agar pengirim tidak dapat mengingkari telah mengirim pesan (non repudiation). Sebaliknya, analisis sandi berusaha memecahkan algoritma kriptografi. Tanpa analisis sandi, sangat sulit bagi kita untuk mengukur kekuatan algoritma kriptografi. Kebanyakan peneliti di tanah air hanya menitikberatkan penelitiannya pada bagaimana membuat algoritma kriptografi yang dianggap aman, tanpa sedikitpun memberikan bukti bahwa algoritmanya aman, setidaknya terhadap serangan atau analisis sandi tertentu. Seringkali algoritma dianggap aman hanya berdasar kompleksitasnya. Oleh karena itu, kami mencoba melakukan penelitian bagaimana membuktikan keamanan algoritma enkripsi, khususnya terhadap Analisis Sandi Diferensial (ASD). ASD sendiri dapat diterapkan untuk memeriksa keamanan stream cipher, block cipher, dan fungsi hash.
AES menggunakan struktur yang berbeda. Penggunaan struktur yang sama ini dimaksudkan agar lebih efisien jika diimplementasikan pada perangkat keras. Penggunaan ulang struktur pengacakan untuk ekspansi kunci juga bertujuan agar setiap bit kunci utama memiliki pengaruh yang sama ke setiap ronde, karena memiliki difusi yang sangat besar. Sehingga ekspansi kunci pada AE1 memiliki difusi yang jauh lebih cepat daripada AES. Hal ini bertujuan untuk menggagalkan serangan related key attack. Akibat lanjutnya adalah, setiap perubahan satu bit kunci utama akan mengakibatkan perubahan sejumlah besar bit ciphertext. Dalam makalah ini, penelitian ditekankan pada bagaimana cara mengukur kekuatan AE1 terhadap analisis sandi diferensial, dan perbandingannya dengan DES serta AES. Kriptografi dapat memenuhi kebutuhan umum suatu transaksi yaitu, kerahasiaan (confidentiality), keutuhan (integrity), jaminan atas identitas dan keabsahan (authenticity), tidak bisa disangkal (non-repudiation). Mekanisme kriptografi dibagi menjadi dua bagian yaitu : a. Kriptografi Sederhana
Gambar 2.1 Mekanisme kriptografi sederhana
b. Kriptografi Berbasis Kunci
Gambar 2.2 Mekanisme kriptografi berbasis kunci
Suatu data yang tidak disandikan disebut plaintext atau cleartext. Sedangkan data yang telah tersandikan disebut ciphertext. Proses yang dilakukan untuk mengubah plaintext menjadi ciphertext disebut enkripsi (encryption) atau
encipherment. Sedangkan proses untuk mengubah ciphertext kembali ke plaintext
disebut dekripsi (decryption) atau decipherment. Dalam kriptografi diperlukan parameter yang digunakan untuk proses konversi data yaitu suatu set kunci. Berdasarkan jenis kunci yang digunakan dalam proses enkripsi dan dekripsi, kriptografi dapat dibedakan menjadi dua jenis, yaitu kriptografi simetrik dan kriptografi asimetrik. Perbedaan utama di antara keduanya terletak pada sama dan tidaknya kunci yang digunakan dalam proses enkripsi dengan kunci yang digunakan pada proses dekripsi. Berdasarkan kunci yang dipakai, algoritma kriptografi dapat dibedakan atas dua jenis yaitu algoritma simetrik (symmetric) dan asimetrik
(asymmetric) :
2.1.1 Proses Enkripsi Menggunakan Algoritma AES
Proses enkripsi pada algoritma. AES terdiri dari 4 jenis transformasi bytes, yaitu
SubBytes, ShiftRows, Mixcolumns dan AddRoundKey. Pada awal proses enkripsi, input yang telah dikopikan ke dalam state akan mengalami transformasi byte AddRoundKey. Setelah itu, state akan mengalami transformasi SubBytes, ShiftRows, MixColumns dan
AddRoundKey secara berulang-ulang sebanyak Nr. Proses ini dalam algoritma AES
disebut sebagai round function. Round yang terakhir agak berbeda dengan round-round sebelumnya dimana pada round terakhir, state tidak mengalami transformasi
Gambar 2.3 Diagram Alir Proses Enkripsi Metode Rijndael (AES 128)
(sumber : Sudrajat, 2009)
2.1.2 Proses Dekripsi Menggunakan Algoritma AES Atau Rinjdael
Transformasi cipher dapat dibalikkan dan diimplementasikan dalam arah yang berlawanan untuk menghasilkan inverse cipher yang mudah dipahami untuk algoritma
Gambar 2.4 Diagram Alir Proses Dekripsi Metode Rijndael (AES 128)
(sumber : Sudrajat, 2009)
2.2 Data
Data merupakan sekumpulan informasi yang diperlukan untuk pengambilan kesimpulan. Secara umum data dapat diartikan dalam beberapa pengertian diantaranya, data adalah fakta berupa angka, karakter, simbol, gambar, tanda-tanda, isyarat, tulisan, suara, bunyi yang merepresentasikan keadaan sebenarnya yang selanjutnya digunakan sebagai masukan suatu sistem informasi (Saharia, 2013).
Data adalah deskripsi dari sesuatu dan kejadian yang dihadapi (data is the description of things and events that we face). Data adalah kenyataan yang menggambarkan suatu kejadian-kejadian dan kesatuan nyata. Data adalah bahan yang akan diolah atau diproses berupa angka-angka, huruf-huruf, simbol-simbol, kata-kata yang akan menunjukkan situasi dan lain-lain yang berdiri sendiri. Dalam bahasa sehari-hari data adalah fakta tersurat atau dalam bentuk catatan atau tulisan tentang suatu obyek. Dalam dunia komputer data adalah segala sesuatu yang dapat disimpan dalam memori menurut format tertentu.
perusahaan memiliki banyak sekali data untuk diolah menjadi suatu informasi yang penting untuk kemajuan perusahaan itu, misalnya data dalam format *.doc. Data tersebut bisa didapatkan dari berbagai sumber, diantaranya adalah data yang diterima oleh komputer dari suatu jaringan, PDA, sistem komputer standar, alat konsumen seperti flashdisk, disket dan lain-lain. Tetapi jika distrukturkan maka sumber data tersebut bisa dibagi dalam empat kategori sumber data utama yaitu file, sistem operasi,
network traffic dan berbagai aplikasi lainnya
2.2.1 File (Berkas)
Berkas adalah kumpulan informasi berkait yang diberi nama dan direkam pada penyimpanan sekunder. Dari sudut pandang pengguna, berkas merupakan bagian terkecil dari penyimpanan logis, artinya data tidak dapat ditulis ke penyimpanan sekunder kecuali jika berada di dalam berkas. Biasanya berkas mempresentasikan program dan data. Data dari berkas dapat bersifat numerik, alfabetik, alfanumerik ataupun biner (Dwi, Hartanto, Anggit, 2011).
Format berkas juga biasa bebas, misalnya berkas teks atau dapat juga diformat pasti. Secara umum berkas adalah urutan bit, byte, baris atau catatan yang didefinisikan oleh pembuat berkas dan pengguna. Informasi dalam berkas ditentukan oleh pembuatnya. Ada banyak bergam jenis informasi yang dapat disimpan dalam berkas. Hal ini disebabkan oleh struktur tertentu yang dimiliki oleh berkas, sesuai dengan jenisnya masing-masing.
2.2.2 Keamanan Data
Keamanan data merupakan hal yang sangat penting dalam menjaga kerahasiaan informasi, terutama yang berisi informasi sensitif yang hanya boleh diketahui isinya oleh pihak tertentu, sehingga perlu dilakukan penyandian data supaya beberapa pihak yang tidak memiliki kewenangan tidak akan dapat membuka informasi yang dikirim (Fauziah, 2014).
informasi yang asli, dilakukan proses deskripsi (decipher), dengan menggunakan kunci yang benar.
2.3. PDF (Portable Document Format)
PDF adalah sebuah format dokumen yang memungkinkan memuat di dalamnya text,
gambar, grafik. PDF merupakan singkatan dari Portable Document Format, PDF pertama kali dibuat oleh perusahaan Adobe System pada tahun 1993 sekaligus pemilik hak paten PDF tersebut (Abdul, 2013).
PDF pertama kali dibuat dimaksudkan untuk mempermudah pertukaran dokumen, keunggulan dari dokumen yang dibuat dengan format PDF adalah dia tidak bisa diubah secara langsung oleh si penerima dokumen tidak seperti file dokumen dengan format .doc, .txt atau yang lainnya. Namun belakangan file dokumen yang dibuat dengan format PDF bisa diubah isinya dengan menggunakan bantuan software PDF editor yang sudah banyak beredar.
2.4. Algoritma Rinjdael
Algoritma Rijndael dibaca Rhinedoll adalah algoritma yang telah dipilih oleh National Institute of Standards and Technology (NIST) sebagai calon Advanced Encryption Standard (AES). Algoritma Rijndael dipilih dari daftar lima finalis, yang dipilih lebih dari 15 pengaju. Algoritma Rijndael akan mulai menggantikan data Encryption Standard (DES) dan kemudian Triple DES selama beberapa tahun ke depan dalam banyak aplikasi kriptografi. Algoritma ini dirancang oleh dua ahli kriptologi Belgia yaitu Vincent Rijmen dan Joan Daemen.
Garis besar algoritma Rijndael yang beroperasi pada blok 128-bit dengan kunci 128-bit adalah sebagai berikut atau di luar proses pembangkitan round key:
1. AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga initial round.
2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah: a. SubBytes: substitusi byte dengan menggunakan table substitusi (Sbox).
b. ShiftRows: pergeseran baris-baris array state secara wrapping. c. MixColumns: mengacak data di masing-masing kolom array state.
3. Final round: proses untuk putaran terakhir: a. SubBytes
b. ShiftRows
c. AddRoundKey Garis besar algoritma enkripsi.
Algoritma Rijndael termasuk dalam jenis algoritma kriptografi yang sifatnya simetri dan cipher block. Dengan demikian algoritma ini mempergunakan kunci yang sama saat enkripsi dan dekripsi serta masukan dan keluarannya berupa blok dengan jumlah bit tertentu. Rijndael mendukung berbagai variasi ukuran blok dan kunci yang akan digunakan. Namun Rijndael mempunyai ukuran blok dan kunci yang tetap sebesar 128, 192, 256 bit. Pemilihan ukuran blok data dan kunci akan menentukan jumlah proses yang harus dilalui untuk proses enkripsi dan dekripsi (Surian, 2009).
Algoritma Rinjdael adalah proses mengenkripsi dan mendekripsi blok data sepanjang 128 bit dengan panjang kunci 128 bit, 192 bit atau 256 bit. Proses enkripsi pada algoritma Rinjdael terdiri dari 4 jenis transformasi bytes, yaitu SubBytes, ShiftRows, Mixcolumns dan AddRoundKey. Pada algoritma Rinjdael, jumlah blok input, blok output, dan stateadalah 128 bit. Dengan besar data 128 bit, berarti Nb= 4 yang menunjukkan panjang data tiap baris adalah 4 byte (Nur, 2012).
Dengan blok input atau blok data sebesar 128 bit, key yang digunakan pada algoritma Rinjdael tidak harus mempunyai besar yang sama dengan blok input. Cipher key pada algoritma Rinjdael bisa menggunakan kunci dengan panjang 128 bit, 192 bit, atau 256 bit. Perbedaan panjang kunci akan mempengaruhi jumlah round yang akan diimplementasikan pada algoritma Rinjdael ini. Pada tahun 2001, Algoritma Rijndael, karya peneliti dari universitas di Belgia ditetapkan menjadi AES. Rijndael merupakan algoritma yang dapat menerima masukan data 128 bit dan menghasilkan data 128 bit pula. Bila digunakan dengan kunci 128 bit, maka kita menyebutnya sebagai AES-128.
Selain 128 bit, AES juga dapat menerima kunci 192 dan 256 bit. Dalam tulisan ini akan dibahas AES-128. Plaintext diletakkan pada matrik segiempat yang disebut state
Gambar 2.5 Contoh State AES
(sumber : Surian, 2009)
Kemudian dilakukan operasi pada setiap ronde yang dalam notasi pseudo C sebagai berikut :
AddRoundKey(State);
Ronde(State,KunciRonde)
{
ByteSub(State);
ShiftRow(State);
MixColumn(State);
AddRoundKey(State);
}
Pada bagian akhir terdapat sedikit perbedaan operasi agar struktur dekripsinya menyerupai struktur enkripsinya. Operasi Mixcolumn ditiadakan pada ronde terakhir.
Ronde(State,KunciRonde)
{
ByteSub(State);
ShiftRow(State);
AddRoundKey(State);
Kotak subtitusi atau untuk ByteSub dibentuk dari fungsi inversi perkalian pada GF(28) dan kemudian ditambahkan operasi XOR terhadap fungsi affine atau semacam fungsi linear yang didefinisikan sebagai berikut:
Gambar 2.6 Contoh Keluaran Fungsi Inversi
(sumber : Surian, 2009)
Di mana x adalah keluaran fungsi inversi dan y menjadi keluaran kotak subtitusi. Atau dengan kata lain, bila masukan kotak subtitusi adalah w dan keluarannya y, maka di dalam kotak subtitusi ini, w ini akan diinversi menjadi w-1 = x pada GF(28), dan kemudian x ini akan dimasukkan ke dalam persamaan affine di atas untuk mendapatkan y. Operasi ShiftRow menggeser baris 1 ke kiri 1 byte, baris ke-2 ke kiri ke-2 byte, dan baris ke-3 ke kiri 3 byte. Baris ke-0 tidak digeser. Kemudian operasi Mixcolumn merupakan operasi perkalian satu kolom dengan polinomial c(x) mod (x4+1) di mana c(x) = '03'x3 + '01'x2 + '01'x + '02'. Persamaan ini dapat dituliskan juga dalam bentuk matrik sebagai berikut:
Gambar 2.7 Contoh Mixcolumn
(sumber : Surian, 2009)
Di mana a merupakan masukan dan b keluaran Mixcolumn. Sedangkan operasi
jumlah minimal kotak subtitusi yang aktif pada jalur diferensial adalah 25 buah untuk 4 ronde. Karena itu peluang diferensial maksimal 4 ronde = (2-6)25 = 2-150. Jadi, diperlukan 2150 pasang plaintext, sedangkan diketahui bahwa hanya terdapat maksimal 2128 plaintext yang mungkin, sehingga karakteristik AES 4R dapat menghalangi serangan terhadap AES 7 ronde (3R attack). Misalkan kita memasukkan karakteristik plaintext '0,0 a =1 dan 'i, j a lain =0 untuk i,j=0...3 atau perhatikan lagi gambar 1 dengan asumsi bahwa ai,j menunjukkan posisi pada baris i kolom j dengan peluang maksimal 2-6. Maka pada keluaran ByteSub (BS) ronde pertama, karekteristik akan tetap, demikian juga setelah ShiftRow (SR) di ronde pertama. Namun, Mixcolumn (MC) pada ronde pertama menyebabkan diferensial pada posisi a0,0 menyebar ke ai,0.
Operasi AddRoundKey (AK) tidak mengubah kondisi, karena operasi XOR tidak mempengaruhi diferensial. Perhatikan bahwa bila kita memiliki 2 masukan x1 dan x2 maka x1 k = y1 dan x2 k = y2. Kemudian ∆x k k = x1 x2, jadi operator XOR tidak mempengaruhi diferensial. Sementara itu, diferensial pada byte-byte yang lain tetap nol, karena tidak ada operasi yang mengubahnya Akibatnya, masukan pada ronde kedua menjadi 'i,0 a = 1 untuk i=0..3 dan 'i, j a = 0 untuk i=0..3 dan j=1..3. Bila kita telusuri lebih lanjut, maka SB pada ronde ke-2 tidak mempengaruhi diferensial, sedangkan SR menyebarkan posisi diferensial tidak nol ke seluruh kolom. Akibatnya, pada keluaran MC, seluruh byte pada state memiliki diferensial = 1. Sehingga dalam 2 ronde, terdapat 5 buah kotak subtitusi yang aktif, dan pada ronde ketiga terdapat 16 buah kotak subtitusi yang aktif. Jalur diferensial ke ronde keempat, maka karena pada setiap kolom di ronde ketiga terdapat 4 byte aktif, maka pada ronde keempat paling sedikit akan terdapat 4 kotak subtitusi yang aktif. Akibatnya, dalam 4 ronde, akan terdapat minimal 25 kotak subtitusi yang aktif, sama seperti penjelasan di atas.
Rijndael termasuk dalam jenis algoritmakriptografi yang sifatnya simetri dan