Pengamanan File Teks Dengan Skema Hybrid Menggunakan Algoritma Enigma Dan Algoritma Rabin-Williams

3

LISTING PROGRAM

Form Utama :
using
using
using
using

System;
System.Collections.Generic;
System.Drawing;
System.Windows.Forms;
namespace program_skripsi_rabin{
public partial class MainPage : PhoneApplicationPage
{
void EnkripsiToolStripMenuItemClick(objectsender,EventArgs e)
{
enkripsi pindah = new enkripsi();
pindah.Show();

this.Hide();
}
void MenuToolStripMenuItemClick(objectsender,EventArgs e)
{
bangkit_kunci pindah = new bangkit_kunci();
pindah.Show();
this.Hide();
}
Void

DekripsiToolStripMenuItemClick(object

sender,

EventArgs e)
{
Dekripsi pindah = new Dekripsi();
pindah.Show();
this.Hide();
}

void MainFormLoad(object sender, EventArgs e)
{
}
void

TentangToolStripMenuItemClick(object

sender,

EventArgs e)
{
Form1 pindah = new Form1();
pindah.Show();
this.Hide();
}
}
}

Form Generate Key :
using

using
using
using

System;
System.Drawing;
System.Windows.Forms;
System.IO;

Universitas Sumatera Utara

4

namespace program_skripsi_rabin
public partial class bangkit_kunci : Form
{
int p,q,n;
long d;
Random r = new Random();
public bangkit_kunci()

{
public UInt64 sma(UInt64 x, UInt64 H, UInt64 n)
{
UInt64 r;
int[] bin = new int[32];
int i;
r = x;
i = 0;
/* ubah H ke Biner */
while( H > 0 )
{
if (H % 2 == 0)
{
bin[i] = 0;
}
else
{
bin[i] = 1;
}
H = H/2;

i++;
}
i--;
while(i>0)
{
r = (r * r) % n;
if( bin[--i] == 1 )
{
r = (r * x) % n;
}
}
return r;
}
public Int64 modInverse(Int64 a, Int64 n)
{
Int64 i = n, v = 0, d = 1;
while (a>0)
{
Int64 t = i/a, x = a;
a = i % x;

i = x;
x = d;
d = v - t*x;
v = x;
}
v %= n;
if (v