BIODATA MAHASISWA
A. DATA MAHASISWA
1. Nama Lengkap : Syabrul Majid
2. Tempat dan Tanggal Lahir : Batang Hari, 26 Maret 1992
3. Agama : Islam
4. Jenis Kelamin : Laki-laki
5. NIM : 131421058
6. E-mail : majidadnese@gmail.com
7. Golongan Darah : O
8. Anak ke : 2 (dua) dari 4 (Empat) bersaudara 9. Departemen/Program Studi : S1 Ilmu Komputer
10.Alamat Rumah : Jl. Dr.Mansyur No 70 Medan 11.No. Telepon Rumah/HP : 085362050610
12.Asal SMA/SMK/MA : SMA Negeri 1 Danau Kembar 13.Tahun Lulus SMA/SMK/MA : 2010
14.Kodya/Kabupaten : Solok, Sumatera Barat
15.Alamat Sekolah : Jl. Panorama danau Kembar, Solok
16.Nilai NEM** : 48,00
3. Tempat dan Tanggal Lahir
- Ayah : Syahril, 07 September 1964
6. Pendidikan Terakhir
- Ayah : SMP
- Ibu : SD
7. Jumlah Tanggungan Orangtua : 4 (Empat) Orang
8. Alamat Kantor : -
9. Alamat Rumah Orangtua : Jl. Batang Hari, Kecamatan Lembah Gumanti, Alahan Panjang, Kabupaten Solok, Sumatera Barat
10. No. Telepon/HP : 087868606468
Medan, 06 Januari 2016 Hormat Saya,
LISTING PROGRAM
Index.php
<?php
session_start();
include "elgamal.php";
require 'nor1.class.php'; require 'norctr.class.php';
$timer = microtime(true);
$pw = empty($_POST['pw']) ? '' : $_POST['pw']; $pt = empty($_POST['pt']) ? '' : $_POST['pt'];
$cipher = empty($_POST['cipher']) ? '' :
$_POST['cipher'];
$plain = empty($_POST['plain']) ? '' :
$_POST['plain'];
$encr = empty($_POST['encr']) ? $cipher :
FEALCtr::encrypt($pt, $pw, 256) ;
$decr = empty($_POST['decr']) ? $plain :
FEALCtr::decrypt($cipher, $pw, 256);
$enkripsi = new
elgamal($_SESSION['p'],$_SESSION['g'],$_SESSION['x'],$_SE SSION['y'],$_SESSION['k']);
$dekripsi = new
elgamal($_SESSION['p'],$_SESSION['g'],$_SESSION['x'],$_SE SSION['y'],$_SESSION['k']);
$cipherkey = empty($_POST['cipherkey']) ? '' : $_POST['cipherkey'];
$plainkey = empty($_POST['plainkey']) ? '' : $_POST['plainkey'];
$chippertextkey = empty($_POST['enkey']) ?
$cipherkey : $enkripsi->_enkripsi($plainkey) ;
$plaintextkey = empty($_POST['dekey']) ? $pw :
$enkripsi->_dekripsi($cipherkey) ;
if(!isset($_SESSION['username'])) { header('location:login.php'); }
else { $username = $_SESSION['username']; } require_once("koneksi.php");
$query = mysql_query("SELECT * FROM user WHERE username = '$username'");
$hasil = mysql_fetch_array($query); ?>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js"> <!--<![endif]--> <html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<meta name="viewport"
content="width=device-width, initial-scale=1">
<title>IMPLEMENTASI DAN ANALISIS KRIPTOGRAFI HYBRID ALGORITMA FEAL DAN ALGORITMA ELGAMAL DALAM PENGAMANAN FILE TEKS</title>
<!-- Bootstrap -->
<link href="css/stylexFeal.css"
rel="stylesheet" /> <!-- canvas -->
</head> <header>
<section class="hero"> <div class="container">
<div class="row nav-wrapper">
<div class="col-md-6 col-sm-6 col-xs-6 text-right
navicon">
<p><a href="logout.php"> <img src="exit.png" width="50px" height="50px" alt="Exit"></a>
<div class="lg-container4">Proccess time : <?=
round(microtime(true) - $timer, 3) ?>s</div></p>
<a id="trigger-overlay" class="nav_slide_button
nav-toggle"
href="../template/index.php"><span></span></a></div> </div>
<div class="row hero-content"> <div class="col-md-12">
<body bgcolor="#284666">
<script language="JavaScript" type="text/javascript"> // function to hide and show a navigation menu
var aMenu = document.getElementById(aMenu);
aMenu.style.display = (aMenu.style.display == "block") ? "none" : "block";
}
</script>
<script language="JavaScript" type="text/JavaScript"> function DisplayShowHide()
{
if (document.NamaForm.NamaSelection.value ==
"muncul"){document.getElementById('DivTampil').style.disp lay="inline"}
if (document.NamaForm.NamaSelection.value ==
"muncul"){document.getElementById('DivTampil2').style.dis play="none"}
if (document.NamaForm.NamaSelection.value ==
"hilang"){document.getElementById('DivTampil').style.disp lay="none"}
if (document.NamaForm.NamaSelection.value ==
"hilang"){document.getElementById('DivTampil2').style.dis play="inline"}
}
</script>
<div class="lg-container">
<h3><b>File and Text Encryption using FEAL </b></h3>
<font color="black"> <table>
<tr>
<td>Choose : </td>
<td><form name='NamaForm' method='post' action='#'>
<select style="width:500px" name='NamaSelection'
onchange='DisplayShowHide()'>
<option value='hilang' selected>Text</option> <option value='muncul'>File</option></td>
</select> </form> <br> </table>
<div id='DivTampil' style='display:none'> <p>
<table class="fixed-layout"
style="border-collapse:collapse;">
<form action="file-processor.php" method="post"
enctype="multipart/form-data">
<td><select style="width:572px" name="aksi"> <option value="enc">Enkrypt</option> <option value="dec">Dekrypt</option> </select></br></td>
<tr><td><input type="text" name="pw" style="width:567px" size="62" placeholder="key">
<tr><td><input type="image" src="logo.png" width="50px" height="50px" alt="Submit button"></td>
</form> </table> </p> </div>
<div id='DivTampil2'> <p><form method="post">
<table class="fixed-layout"
style="border-collapse:collapse;"> <tr>
<td width="60"><span
style="width:70px">Plaintext:</span></td>
<td width="50"><textarea type="text" name="pt"
style="width:500px"><? echo stripslashes($pt);
?></textarea></td> </tr> <tr>
<td width="69">Key:</td>
<td><input type="text" name="pw"
style="width:500px" value="<?= $pw ?>">
</div> </tr>
</table>
<table class="fixed-layout"
style="border-collapse:collapse;">
</td><tr><br>
<td width="69">Mode
<td><select name="Mode">
<option value="">Block CHiper</option> </select>
</td></table>
<td><button type="submit" name="encr"
style="width:70px" value="Encrypt
it">Encrypt</button></td>
<td><input type="text" name="cipher"
style="width:500px" value="<?= $encr ?>"></td></br> </tr>
<tr><td><button type="submit" name="decr"
style="width:70px" value="Decrypt
it">Decrypt</button></td>
<td><textarea name="plain"
style="width:500px" "\t"><? echo stripslashes($decr);
?></textarea> </table> </form>
</p>
</div></div>
<aside><div class="lg-container2">
<b><h3>Key Generator</h3></b>
<input type="text" size="27" value="<?= $_SESSION['p'] ?>"></td>
</tr> <tr>
<td>g</td><td> :
<input type="text" size="27" value="<?= $_SESSION['g'] ?>"></td>
</tr>
<tr>
<td>y</td><td> :
<input type="text" size="27" value="<?= $_SESSION['y'] ?>"></td>
<input type="text" size="27" value="<?= $_SESSION['x'] ?>"></td>
<td>p</td><td> :
<input type="text" size="27" value="<?= $_SESSION['p'] ?>"></td>
</tr> </table> <table>
<b>Bilangan Acak Pengirim (k)</b>
<tr>
<td>k</td><td> :
<input type="text" size="27" value="<?= $_SESSION['k'] ?>"></td>
</tr> </table> <tr>
<td><input type='button'
style="width:227px" value='Bangkitkan Kunci'
onclick="javascript:location.href='key.php';"></td> </tr>
<div class="lg-container3"> <b><h3>Elgamal Key Encryption</b></h3>
<form method="post"> Key :
<table>
<tr>
<td><input type="text" name="plainkey" style="width:219px" placeholder="type key here"><?= $pw ?></td>
</tr>
type="submit" name="enkey" value="Encrypt
it">Encrypt</button></td>
<td><input type="text"
name="cipherkey" size="20" value="<?=
rtrim($chippertextkey) ?>" "/t"></td> </tr> </table>
<table>
<tr>
Encrypted Key:
</tr>
<td><button type="submit" name="dekey" value="Decrypt it">Decrypt</button></td>
<td><input type="text" name="pw" size="20" value="<?= $plaintextkey ?>"></td>
</tr>
</table> </form>
</div></div></aside>
</body> </html>
Login.php
<html> <head>
<link href="css/stylecov.css" rel="stylesheet" /> <link href="css/animate.css" rel="stylesheet">
<table>
<body bgcolor="#284666"> <div class="lg-container">
<h3 align="center" class="animated
fadeInDown">IMPLEMENTASI DAN ANALISIS KRIPTOGRAFI HYBRID <BR>ALGORITMA FEAL DAN ALGORITMA ELGAMAL <br> DALAM PENGAMANAN FILE TEKS </h3>
<h3 align="center"
class="animated fadeInDown"> <br> SKRIPSI</h3>
<h3 align="center"
class="animated fadeInDown"> <br> Syabrul Majid <br> 131421058</br> <br> <img position="center" src="img/Logo Fasilkom-TI.png" class="single_image"> </br> </h3>
<h3 align="center" class="animated
fadeInDown">FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI <br> PROGRAM STUDI SARJANA ILMU KOMPUTER</br> UNIVERSITAS SUMATERA UTARA </br> MEDAN</br>2015</br></h3>
</div>
<form action="proseslogin.php" method="post">
<center><input name="username" align="center" type="text" placeholder="username"><br>
<input name="password" align="center" type="password" placeholder="password">
<br><input type="submit" value="Login" /> </center>
</table> </div> </html> </body>
ProsesLogin.php
<?php session_start();
require_once("koneksi.php"); $username = $_POST['username']; $pass = $_POST['password'];
$cekuser = mysql_query("SELECT * FROM user WHERE username = '$username'");
$cekpass = mysql_query("SELECT * FROM user WHERE username = '$pass'");
$jumlah = mysql_num_rows($cekuser); $hasil = mysql_fetch_array($cekpass); if($jumlah == 0)
{
echo 'Username Belum Terdaftar!'; echo '<a href="login.php">Back</a>'; }
else {
if($pass = $hasil['password']) {
echo 'Password Salah!';
echo '<a href="login.php">Back</a>'; }
else
{
$_SESSION['username'] = $hasil['username']; header('location:index.php');
} }
?>
Logout.php
<?php session_start();
echo "<script language=\"javascript\">location.href='login.php';</scrip t>";
?>
Nor1.class.php
<?php
Class FEAL {
public static function cipher($input, $w) {
$Nb = 4;
$Nr = count($w) / $Nb - 1;
$state = array();
for ($i = 0; $i < 4 * $Nb; $i++) $state[$i % 4][floor($i / 4)] = $input[$i];
$state = self::addRoundKey($state, $w, 0, $Nb);
for ($round = 1; $round < $Nr; $round++) { $state = self::subBytes($state, $Nb); $state = self::shiftRows($state, $Nb); $state = self::mixColumns($state, $Nb);
$state = self::addRoundKey($state, $w,
$round, $Nb); }
$state = self::subBytes($state, $Nb); $state = self::shiftRows($state, $Nb);
$state = self::addRoundKey($state, $w, $Nr, $Nb);
$output = array(4 * $Nb);
for ($i = 0; $i < 4 * $Nb; $i++) $output[$i] = $state[$i % 4][floor($i / 4)];
return $output; }
private static function addRoundKey($state, $w, $rnd, $Nb)
{
for ($r = 0; $r < 4; $r++) {
for ($c = 0; $c < $Nb; $c++) $state[$r][$c] ^= $w[$rnd * 4 + $c][$r];
}
private static function subBytes($s, $Nb) {
private static function shiftRows($s, $Nb) {
private static function mixColumns($s, $Nb) {
$Nb = 4; self::$rCon[$i / $Nk][$t];
} else if ($Nk > 6 && $i % $Nk == 4) {
private static function subWord($w) {
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16);
Norctr.class.php
<?php
Class FEALCtr extends FEAL {
public static function encrypt($plaintext, $password, $nBits)
{
$blockSize = 16;
if (!($nBits == 128 || $nBits == 192 || $nBits == 256)) return '';
$nBytes = $nBits / 8; $pwBytes = array();
for ($i = 0; $i < $nBytes; $i++) $pwBytes[$i] = ord(substr($password, $i, 1)) & 0xff;
$key = FEAL::cipher($pwBytes,
FEAL::keyExpansion($pwBytes));
$key = array_merge($key, array_slice($key, 0, $nBytes - 16));
$counterBlock = array();
$nonce = floor(microtime(true) * 1000); $nonceMs = $nonce % 1000;
$nonceSec = floor($nonce / 1000); $nonceRnd = floor(rand(0, 0xffff));
for ($i = 0; $i < 2; $i++) $counterBlock[$i] = self::urs($nonceMs, $i * 8) & 0xff;
for ($i = 0; $i < 2; $i++) $counterBlock[$i + 2] = self::urs($nonceRnd, $i * 8) & 0xff;
for ($i = 0; $i < 4; $i++) $counterBlock[$i + 4] = self::urs($nonceSec, $i * 8) & 0xff;
$ctrTxt = '';
for ($i = 0; $i < 8; $i++) $ctrTxt .= chr($counterBlock[$i]);
$keySchedule = FEAL::keyExpansion($key);
$blockCount = ceil(strlen($plaintext) /
$blockSize);
$ciphertxt = array();
for ($b = 0; $b < $blockCount; $b++) {
for ($c = 0; $c < 4; $c++) $counterBlock[15 - $c] = self::urs($b, $c * 8) & 0xff;
$cipherCntr = FEAL::cipher($counterBlock, $keySchedule);
$blockLength = $b < $blockCount - 1 ? $blockSize : (strlen($plaintext) - 1) % $blockSize + 1; $cipherByte = array();
for ($i = 0; $i < $blockLength; $i++) {
$cipherByte[$i] = $cipherCntr[$i] ^
ord(substr($plaintext, $b * $blockSize + $i, 1));
$cipherByte[$i] = chr($cipherByte[$i]); }
$ciphertxt[$b] = implode('', $cipherByte); }
$ciphertext = $ctrTxt . implode('', $ciphertxt); $ciphertext = base64_encode($ciphertext);
return $ciphertext; }
public static function decrypt($ciphertext,
$password, $nBits) {
$blockSize = 16;
if (!($nBits == 128 || $nBits == 192 || $nBits == 256)) return '';
$ciphertext = base64_decode($ciphertext);
$nBytes = $nBits / 8; $pwBytes = array();
for ($i = 0; $i < $nBytes; $i++) $pwBytes[$i] = ord(substr($password, $i, 1)) & 0xff;
$key = FEAL::cipher($pwBytes,
FEAL::keyExpansion($pwBytes));
$key = array_merge($key, array_slice($key, 0, $nBytes - 16));
$counterBlock = array();
$ctrTxt = substr($ciphertext, 0, 8);
for ($i = 0; $i < 8; $i++) $counterBlock[$i] = ord(substr($ctrTxt, $i, 1));
$keySchedule = FEAL::keyExpansion($key);
$nBlocks = ceil((strlen($ciphertext) - 8) / $blockSize);
$ct = array();
for ($b = 0; $b < $nBlocks; $b++) $ct[$b] = substr($ciphertext, 8 + $b * $blockSize, 16);
$ciphertext = $ct; $plaintxt = array();
for ($b = 0; $b < $nBlocks; $b++) {
for ($c = 0; $c < 4; $c++) $counterBlock[15 - $c] = self::urs($b, $c * 8) & 0xff;
for ($c = 0; $c < 4; $c++) $counterBlock[15 - $c - 4] = self::urs(($b + 1) / 0x100000000 - 1, $c * 8) & 0xff;
$cipherCntr = FEAL::cipher($counterBlock,
$keySchedule);
$plaintxtByte = array();
for ($i = 0; $i < strlen($ciphertext[$b]); $i++) {
$plaintxtByte[$i] = $cipherCntr[$i] ^
ord(substr($ciphertext[$b], $i, 1));
$plaintxtByte[$i] =
chr($plaintxtByte[$i]);
}
$plaintxt[$b] = implode('', $plaintxtByte); }
$plaintext = implode('', $plaintxt);
return $plaintext; }
private static function urs($a, $b) {
$a &= 0xffffffff; $b &= 0x1f;
if ($a & 0x80000000 && $b > 0) { $a = ($a >> 1) & 0x7fffffff; $a = $a >> ($b - 1);
} else {
$a = ($a >> $b); }
}
/* - - - - - - */
Key.php
<?php
session_start();
include "elgamal.php";
$key = new elgamal(0,0,0,0,0); $key->_key(258);
$_SESSION[p] = $key->p; $_SESSION[g] = $key->g; $_SESSION[x] = $key->x; $_SESSION[y] = $key->y; $_SESSION[k] = $key->k;
echo "<script
language=\"javascript\">location.href='index.php';</scrip t>";
?>
<html><h1>Please Wait</h1> </html>
feal.php
<?php
session_start();
include "elgamal.php";
require 'nor1.class.php'; require 'norctr.class.php';
$timer = microtime(true);
$pw = empty($_POST['pw']) ? '' : $_POST['pw'];
$pt = empty($_POST['pt']) ? '' : $_POST['pt'];
$cipher = empty($_POST['cipher']) ? '' :
$_POST['cipher'];
$plain = empty($_POST['plain']) ? '' :
$_POST['plain'];
$encr = empty($_POST['encr']) ? $cipher :
FEALCtr::encrypt($pt, $pw, 256) ;
$decr = empty($_POST['decr']) ? $plain :
FEALCtr::decrypt($cipher, $pw, 256);
$enkripsi = new
$dekripsi = new elgamal($_SESSION['p'],$_SESSION['g'],$_SESSION['x'],$_SE SSION['y'],$_SESSION['k']);
$cipherkey = empty($_POST['cipherkey']) ? '' : $_POST['cipherkey'];
$plainkey = empty($_POST['plainkey']) ? '' : $_POST['plainkey'];
$chippertextkey = empty($_POST['enkey']) ?
$cipherkey : $enkripsi->_enkripsi($pw) ;
$plaintextkey = empty($_POST['dekey']) ? $plainkey : $enkripsi->_dekripsi($cipherkey) ;
?>
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js"> <!--<![endif]--> <html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<meta name="viewport"
content="width=device-width, initial-scale=1">
<title>IMPLEMENTASI DAN ANALISIS KRIPTOGRAFI HYBRID <br> ALGORITMA FEAL DAN ALGORITMA ELGAMAL <br> DALAM PENGAMANAN FILE TEKS</title>
<!-- Bootstrap -->
<link href="css/stylexFeal.css"
rel="stylesheet" /> <!-- canvas -->
</head> <header>
<section class="hero"> <div class="container">
<div class="row nav-wrapper">
<div class="col-md-6 col-sm-6 col-xs-6 text-right
<a id="trigger-overlay" class="nav_slide_button nav-toggle"
href="../template/index.php"><span></span></a></div> </div>
<div class="row hero-content"> <div class="col-md-12">
<body bgcolor="#284666">
<script language="JavaScript" type="text/javascript"> // function to hide and show a navigation menu
function showHide(aMenu) {
var aMenu = document.getElementById(aMenu);
aMenu.style.display = (aMenu.style.display == "block") ? "none" : "block";
}
</script>
<script language="JavaScript" type="text/JavaScript"> function DisplayShowHide()
{
if (document.NamaForm.NamaSelection.value ==
"muncul"){document.getElementById('DivTampil').style.disp lay="inline"}
if (document.NamaForm.NamaSelection.value ==
"muncul"){document.getElementById('DivTampil2').style.dis play="none"}
if (document.NamaForm.NamaSelection.value ==
"hilang"){document.getElementById('DivTampil').style.disp lay="none"}
if (document.NamaForm.NamaSelection.value ==
"hilang"){document.getElementById('DivTampil2').style.dis
<td>Choose : </td>
<td><form name='NamaForm' method='post' action='#'>
<select style="width:500px" name='NamaSelection'
onchange='DisplayShowHide()'>
<option value='hilang' selected>Text</option> <option value='muncul'>File</option></td>
</table>
<div id='DivTampil' style='display:none'> <p>
<table class="fixed-layout"
style="border-collapse:collapse;">
<form action="file-processor.php" method="post"
enctype="multipart/form-data">
<br><input type="file" name="fName"> <br>Pilih Proses :
<select style="width:770px" name="aksi"> <option value="enc">Enkripsi</option> <option value="dec">Dekripsi</option> </select></br>
<tr><td><input type="text" name="pw" style="width:770px" size="62" placeholder="key">
<tr><td><input type="image" src="logo.png" width="50px" height="50px" alt="Submit button"></td>
</form> </table> </p> </div>
<div id='DivTampil2'> <p><form method="post">
<table class="fixed-layout"
style="border-collapse:collapse;"> <tr>
<td width="60"><span
style="width:70px">Plaintext:</span></td>
<td width="50"><textarea type="text" name="pt"
style="width:500px"><? echo stripslashes($pt);
?></textarea></td> </tr> <tr>
<td width="69">Key:</td>
<td><input type="text" name="pw"
style="width:500px" value="<?= $pw ?>">
<div class="wrapper"> <div class="menuHeader"
onclick="showHide('menu1')">Encrypt Key </div>
<tr>
<td colspan='2'><b>Kunci
Publik</b></td>
</tr> <tr>
<td
width='150'>p</td><td>: <input type="text" rows="10" cols="60" value="<?= $_SESSION['p'] ?>"></td>
</tr> <tr>
<td>g</td><td>: <input type="text" rows="10" cols="60" value="<?= $_SESSION['g'] ?>"></td>
</tr> <tr> <tr>
<td>y</td><td>: <input type="text" rows="10" cols="60" value="<?= $_SESSION['y'] ?>"></td>
</tr>
<td colspan='2'><b>Kunci
Privat</b></td>
</tr> <tr>
<td>x</td><td>: <input type="text" rows="10" cols="60" value="<?= $_SESSION['x'] ?>"></td>
</tr> <tr>
<td>p</td><td>: <input type="text" rows="10" cols="60" value="<?= $_SESSION['p'] ?>"></td>
</tr> </tr>
<td colspan='2'><b>Bilangan Acak Pengirim (k)</b></td>
</tr> <tr>
<td>k</td><td>: <input type="text" rows="10" cols="60" value="<?= $_SESSION['k'] ?>"></td>
</tr> <tr>
<td colspan='2'><input
type='button' value='Bangkitkan Kunci'
onclick="javascript:location.href='key.php';"></td> </tr>
<td width='150' valign='top'>PlainText</td>
<td>
<form
enctype="multipart/form-data" method='POST'
action='enkripsi.php'>
<td width='150'
valign='top'>ChipperText</td>
<td>
<form
enctype="multipart/form-data" method='POST'
action='dekripsi.php'>
<td width="50"><input type="text" name="pw" rows="10" cols="60"><? echo stripslashes($pw); ?></td>
</tr>
</tr>
</table>
<td><button
type="submit" name="enkey" value="Encrypt
it">Encrypt</button></td>
<td><input type="text" name="cipherkey" size="79" value="<?= $chippertextkey ?>" "/t"></td>
<td><button type="submit" name="dekey" value="Decrypt it">Decrypt</button></td>
<td><input type="text" name="plainkey" size="79" value="<?= $plaintextkey, $del2 ?>"></td>
<table class="fixed-layout"
style="border-collapse:collapse;">
</td><tr><br>
<td width="69">Mode
<td><select name="Mode">
<option value="">Block CHiper</option> </select>
</td></table>
<table height="164"> <br><tr>
<td><button type="submit" name="encr"
style="width:70px" value="Encrypt
it">Encrypt</button></td>
<td><input type="text" name="cipher"
<tr><td><button type="submit" name="decr"
style="width:70px" value="Decrypt
it">Decrypt</button></td>
<td><textarea name="plain"
style="width:500px" "\t"><? echo stripslashes($decr);
?></textarea> </table> </form>
</p>
</div><a class="chosen-single" tabindex="-1"> <tr id="row-frm-text">
<td style="vertical-align:top;"> <div style="padding-top: 3px;">
</body> </html>
Elgamal.php
<?php
class elgamal{
public static $p,$g,$x,$y,$k;
public function __construct($p,$g,$x,$y,$k){ $this->p = $p;$this->g = $g;
$this->x = $x;$this->y = $y; $this->k = $k;
}
public function _key($batas){
$this->p = $this->_p($batas); $this->g = $this->_g();
$this->x = $this->_x();
$this->y = $this->_y($batas); $this->k = $this->_k();
}
private function _p($batas){
return $this->_p($batas); }
}
private function _g(){
return rand(1,$this->p - 1); }
private function _x(){
return rand(1,$this->p - 1); }
private function _y($batas){
return
$this->_rekursifMod($this->g,$this->x,$this->p);
}
private function _k(){
return rand(1,$this->p - 2); }
public function _rekursifMod($basis,$pangkat,$mod){ if ($pangkat <= 2)
return ((pow($basis,$pangkat)) % $mod); else{
$s = $pangkat % 2; if ($s == 0){
$b = $pangkat / 2; $b1 = $b; $b2 = $b; }
else{
$b = floor($pangkat/2); $b1 = $b; $b2 = $b + 1; }
return
((($this->_rekursifMod($basis,$b1,$mod)) *
($this->_rekursifMod($basis,$b2,$mod))) % $mod); }
}
$chipperText = "";
for ($i=0;$i<(strlen($ascii));$i+=3){ $tmp = substr($ascii,$i,3);
if (strlen($tmp)==1) $tmp = "00".$tmp; if (strlen($tmp)==2) $tmp = "0".$tmp;
$r = $this->_rekursifMod($this->g,$this->k,$this->p);
$s =
((($this->_rekursifMod($this- >y,$this->k,$this->p))*($this->_rekursifMod($tmp,1,$this->p))) % $this->p);
$chipperText .= $r." ".$s." ";
}
return $chipperText; }
public function _dekripsi($chipperText){ $t = explode(" ",$chipperText); $ascii = ""; if (strlen($b)==1) $b = "00".$b; if (strlen($b)==2) $b = "0".$b; $ascii .= $b;
}
return $this->_toText($ascii); }
private function _toAscii($text){ $ascii = "";
for ($i=0;$i<(strlen($text));$i++){ $char = substr($text,$i,1); $a = ord($char);
if (strlen($a)==1) $a = "00".$a; if (strlen($a)==2) $a = "0".$a;
private function _toText($ascii){ $text = "";
$text .= chr($bil); }
return $text; }
} ?>
File-processor.php
<?php
require 'nor1.class.php'; require 'norctr.class.php';
$timer = microtime(true);
$pt = empty($_POST['pt']) ? '' : $_POST['pt'];
$cipher = empty($_POST['cipher']) ? '' :
$_POST['cipher'];
$plain = empty($_POST['plain']) ? '' :
$_POST['plain'];
$target_dir = "upload/"; $aksi=$_POST['aksi']; $pw=$_POST['pw'];
$targetFile = basename( $_FILES["fName"]["name"]); //option aksi
if($aksi=='enc'){
if (move_uploaded_file($_FILES["fName"]["tmp_name"],
$target_dir.$targetFile)) { $success=true;
/*---*/
$fh = fopen($target_dir.$targetFile,
'r');//membuka file hasil upload
$pt = fread($fh, 2097152); fclose($fh);
$encr = rtrim($_POST["fName"]) ?
$cipher : FEALCtr::encrypt($pt, $pw, 256) ;
$fp = fopen($target_dir.$targetFile,
'wb');//menimpa file hasil upload dengan file hasil enkripsi
fwrite($fp,$encr); fclose($fp);
$success=false; }
}
else if($aksi='dec'){
if(move_uploaded_file($_FILES["fName"]["tmp_name"], $target_dir.'/'.$targetFile)){
/*---*/
$fh = fopen($target_dir.'/'.$targetFile, 'r');
$cipher = fread($fh, 2097152); fclose($fh);
$decr = rtrim($_POST['decr']) ? $plain : FEALCtr::decrypt($cipher, $pw, 256);
$fp = fopen($target_dir.$targetFile,
'wb');
fwrite($fp,$decr); fclose($fp);
} }
?> <html>
<header><link href="css/stylepro.css" rel="stylesheet" /> </header>
<body bgcolor="#284666">
<p> <a href="index.php"> <img src="back.png" width="50px" height="50px" alt="Back"></a>
<a href="logout.php"> <img src="exit.png" width="50px" height="50px" alt="Exit"></p></a>
<div class="lg-container">
<h2>Succes Proccess:</h2> <h3><br><i><u><?= $targetFile ?></u></i></h3>
<a download href="<?= $target_dir.$targetFile ?>"
style="text-decoration:none">
<center><br><img src="download.png"
width="50px" height="50px" alt="Home" > </br>
<br>Save File</center></br></a> </div>