• Tidak ada hasil yang ditemukan

Pengamanan File Citra Dengan Skema Hybrid Cryptosystem Menggunakan Algoritma RSA-CRT Dan Algoritma Affine Cipher

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pengamanan File Citra Dengan Skema Hybrid Cryptosystem Menggunakan Algoritma RSA-CRT Dan Algoritma Affine Cipher"

Copied!
15
0
0

Teks penuh

(1)

LISTING PROGRAM

Form Pembangkit Kunci using System;

using System.Collections.Generic;

using System.Drawing;

using System.IO;

using System.Windows.Forms;

namespace affine_cipher_dan_rsa_crt

{

/// <summary>

/// Description of Pembangkit_kunci.

/// </summary>

public partial class Pembangkit_kunci : Form

{

int p,q,n,totien,dp,dq;

double qinv;

// List<int> d22 = new List<int>();

// List<int> d11 = new List<int>();

Random r = new Random();

public Pembangkit_kunci()

{

//

// The InitializeComponent() call is required for Windows

Forms designer support.

//

InitializeComponent();

//

// TODO: Add constructor code after the

InitializeComponent() call.

//

}

void GroupBox1Enter(object sender, EventArgs e)

{

(2)

}

void HomeToolStripMenuItemClick(object sender, EventArgs e)

{

MainForm pilih = new MainForm();

pilih.Show();

this.Hide();

}

void EnkripsiToolStripMenuItemClick(object sender, EventArgs

e)

{

ENKRIPSI pilih = new ENKRIPSI();

pilih.Show();

this.Hide();

}

void DekripsiToolStripMenuItemClick(object sender, EventArgs

e)

{

Dekripsi pilih = new Dekripsi();

pilih.Show();

this.Hide();

}

public int GCD(int a, int b)

{

int Remainder;

while( b != 0 )

{

Remainder = a % b;

a = b;

b = Remainder;

}

return a;

}

public UInt64 sma(UInt64 x, UInt64 H, UInt64 n)

{

(3)

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 int lehmann(int n)

{

int a = 0,i = 0;

UInt64 l;

for(i=1;i<=2;i++)

{

a = r.Next(2,n-1);

l = sma(Convert.ToUInt64(a),Convert.ToUInt64

(((n-1)/2)),Convert.ToUInt64(n));

(4)

{

break;

}

}

if(i == 2 && (n%2!=0 && n%5!=0 && n%3!=0 && n%7!=0))

return n;

else

return lehmann(r.Next(100,1000));

}

double dd=0;

void Button1Click(object sender, EventArgs e)

{

p = 0;

q = 0;

n = 0;

totien = 0;

cari :

p = lehmann(r.Next(100,1000));

q = lehmann(r.Next(100,1000));

if (p == q)

{

goto cari;

}

n = p*q;

totien = (p-1)*(q-1);

double e_double=0;

for (int i = 2; i <totien; i++) {

int gcd = GCD(i, totien);

if (gcd==1) {

e_double = i;

break;

}

}

for (int k = 2; k < totien; k++) {

double d_Int= (1+(k*totien))/e_double;

double cek_d = Math.Round(d_Int);

if (cek_d == d_Int) {

(5)

break;

}

}

dp = Convert.ToInt32(dd) % (p-1);

dq = Convert.ToInt32(dd) % (q-1);

for (int k1 = 2; k1 < totien; k1++) {

double q_Int= (double)(1+(k1*p))/q;

String cek = q_Int.ToString();

double cek_q = Math.Round(q_Int);

if (cek_q == q_Int) {

qinv = q_Int;

break;

}

}

textBox1.Text = p.ToString();

textBox2.Text = q.ToString();

textBox3.Text = dp.ToString();

textBox4.Text = dq.ToString();

textBox5.Text = qinv.ToString();

textBox6.Text = e_double.ToString();

textBox7.Text = n.ToString();

}

void Button2Click(object sender, EventArgs e)

{

SaveFileDialog simpankunci = new SaveFileDialog();

simpankunci.Filter = "key Files|*.privatrsa-crt";

simpankunci.FileName = "*.privatrsa-crt";

if (simpankunci.ShowDialog() == DialogResult.OK)

{

FileStream

fstream=new FileStream(simpankunci.FileName,FileMode.OpenOrCreate);

StreamWriter sw = new StreamWriter(fstream);

SeekOrigin seekorigin = new SeekOrigin();

sw.BaseStream.Seek(0, seekorigin);

sw.WriteLine(textBox1.Text);

sw.WriteLine(textBox2.Text);

sw.WriteLine(textBox3.Text);

sw.WriteLine(textBox4.Text);

(6)

sw.Flush();

sw.Close();

}

simpankunci.Filter = "key Files|*.publikrsa-crt";

simpankunci.FileName = "*.publikrsa-crt";

if (simpankunci.ShowDialog() == DialogResult.OK)

{

FileStream

fstream=new FileStream(simpankunci.FileName,FileMode.OpenOrCreate);

StreamWriter sw = new StreamWriter(fstream);

SeekOrigin seekorigin = new SeekOrigin();

sw.BaseStream.Seek(0, seekorigin);

sw.WriteLine(textBox6.Text);

sw.WriteLine(textBox7.Text);

MessageBox.Show("kunci berhasil disimpan");

sw.Flush();

sw.Close();

}

}

}

}

Form Enkripsi using System;

using System.Diagnostics;

using System.Drawing;

using System.Drawing.Imaging;

using System.IO;

using System.Windows.Forms;

namespace affine_cipher_dan_rsa_crt {

/// <summary>

/// Description of ENKRIPSI. /// </summary>

public partial class ENKRIPSI : Form {

int ee,n,m,b; Bitmap gambarasli;

string cpherkey1,cpherkey2; string tipe;

public ENKRIPSI() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

(7)

//

// TODO: Add constructor code after the InitializeComponent() call.

// }

void HomeToolStripMenuItemClick(object sender, EventArgs e) {

MainForm pilih = new MainForm(); pilih.Show();

this.Hide(); }

void PembangkitKunciToolStripMenuItemClick(object sender, Even tArgs e)

{

Pembangkit_kunci pilih = new Pembangkit_kunci(); pilih.Show();

this.Hide(); }

void DekripsiToolStripMenuItemClick(object sender, EventArgs e)

{

Dekripsi pilih = new Dekripsi(); pilih.Show();

this.Hide(); }

public int GCD(int a, int b) {

int Remainder; while( b != 0 ) {

Remainder = a % b; a = b;

b = Remainder; }

return a; }

int x,y;

void bangkitkunciaffine(){ Random ran = new Random(); ulangx :

x= ran.Next(255);

int gcdx = GCD(x, 256); if (gcdx==1) {

ulangy :

y= ran.Next(255); int gcdy = GCD(x, y); if (gcdy==1)

{

bilanganM.Text=x.ToString(); bilanganB.Text=y.ToString(); }

else

{

(8)

} else {

goto ulangx; }

}

void BangkitKunciClick(object sender, EventArgs e) {

bangkitkunciaffine(); }

int red,blue,green;

void EnkripsiCitraClick(object sender, EventArgs e) {

Stopwatch q = new Stopwatch(); q.Start();

m = Convert.ToInt32(bilanganM.Text); b = Convert.ToInt32(bilanganB.Text);

for (int j = 0; j <= gambarasli.Height-1; j++) {

for (int i = 0; i <= gambarasli.Width-1; i++) {

red = (m*gambarasli.GetPixel(i,j).R +b)%256; green = (m*gambarasli.GetPixel(i,j).G +b)%256; blue = (m*gambarasli.GetPixel(i,j).B +b)%256; gambarasli.SetPixel(i,j,Color.FromArgb(red,green,b lue));

}

gambar2.Image= gambarasli; gambar2.Refresh(); }

q.Stop();

string timersa =

Math.Round(Convert.ToDecimal(q.Elapsed.TotalMilliseconds)).ToString(); running.Text= timersa;

EnkripsiCitra.Enabled=false; }

public int modexp(int x, int y, int n) {

int z = 1;

for (int i = 0; i < y ; i++){ z = (x * z) %n;

}

return z; }

void EnkripsiKunciClick(object sender, EventArgs e) {

n = Convert.ToInt32(bilanganN.Text); ee = Convert.ToInt32(bilanganE.Text); cpherkey1

= modexp(Convert.ToInt32(bilanganM.Text),ee,n).ToString(); cpherkey2

= modexp(Convert.ToInt32(bilanganB.Text),ee,n).ToString(); cipherkey.Text =cpherkey1;

cipherkey2.Text=cpherkey2; }

(9)

void CariGambarClick(object sender, EventArgs e) {

OpenFileDialog ofd = new OpenFileDialog(); ofd.InitialDirectory = @"D:\";

ofd.Title = "Browse Image File"; ofd.CheckFileExists = true; ofd.DefaultExt = "bmp";

ofd.Filter = "image files| *.bmp; *.jpg; "; ofd.RestoreDirectory = true;

ofd.ReadOnlyChecked = true; ofd.ShowReadOnly = true;

if (ofd.ShowDialog() == DialogResult.OK) {

gambarasli=new Bitmap(ofd.FileName); gambar.Image = new Bitmap(gambarasli);

gambar.SizeMode = PictureBoxSizeMode.StretchImage; EnkripsiCitra.Enabled=true;

} }

void SimpanGambarClick(object sender, EventArgs e) {

SaveFileDialog save = new SaveFileDialog(); save.Filter = "Image Files(*.bmp) | *.bmp"; if (save.ShowDialog() == DialogResult.OK) {

gambar2.Image.Save(save.FileName, System.Drawing.Imaging.I mageFormat.Bmp);

MessageBox.Show("Gambar tersimpan"); }

}

void ImportKunciClick(object sender, EventArgs e) {

OpenFileDialog dialog = new OpenFileDialog();

dialog.Filter = "key Files( *.publikrsa-crt)|*.publikrsa-crt";

dialog.Title = "Open File : "; dialog.RestoreDirectory = true;

if (dialog.ShowDialog() == DialogResult.OK) {

tipe =

dialog.FileName.Substring(dialog.FileName.Length - 13, 13); if (tipe == "publikrsa-crt")

{

string[] lines = File.ReadAllLines(dialog.FileName);

bilanganE.Text = lines[0]; bilanganN.Text = lines[1]; }

} }

void SimpanKunciClick(object sender, EventArgs e) {

SaveFileDialog simpan = new SaveFileDialog();

simpan.Filter = "key Files( *.cipherkey)|*.cipherkey"; simpan.FileName = "*.cipherkey";

(10)

{

FileStream

fstream=new FileStream(simpan.FileName,FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fstream); SeekOrigin seekorigin = new SeekOrigin(); sw.BaseStream.Seek(0, seekorigin);

sw.WriteLine(cipherkey.Text); sw.WriteLine(cipherkey2.Text);

MessageBox.Show("cipherkey tersimpan"); sw.Flush();

sw.Close(); } }

} }

Form Dekripsi using System;

using System.Diagnostics;

using System.Drawing;

using System.IO;

using System.Windows.Forms;

namespace affine_cipher_dan_rsa_crt {

/// <summary>

/// Description of Dekripsi. /// </summary>

public partial class Dekripsi : Form {

int m,b;

Bitmap gambarasli; string tipe;

public Dekripsi() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call.

// }

void HomeToolStripMenuItemClick(object sender, EventArgs e) {

MainForm pilih = new MainForm(); pilih.Show();

this.Hide(); }

void PemabangkitKunciToolStripMenuItemClick(object sender, Eve ntArgs e)

{

Pembangkit_kunci pilih = new Pembangkit_kunci(); pilih.Show();

(11)

}

void EnkripsiToolStripMenuItemClick(object sender, EventArgs e)

{

ENKRIPSI pilih = new ENKRIPSI(); pilih.Show();

this.Hide(); }

int m1,red,blue,green;

void DekripsiCitraClick(object sender, EventArgs e) {

Stopwatch q = new Stopwatch(); q.Start();

m = Convert.ToInt32(bilanganM.Text); b = Convert.ToInt32(bilanganB.Text); for (int a = 0; a <= 256; a++) { int inv =(a*m) % 256 ;

if (inv == 1){ m1 = a; }

}

for (int j = 0; j <= gambarasli.Height-1; j++) {

for (int i = 0; i <= gambarasli.Width-1; i++) {

red = (m1*(gambarasli.GetPixel(i,j).R - b))%256; green = (m1*(gambarasli.GetPixel(i,j).G

b))%256 ;

blue = (m1*(gambarasli.GetPixel(i,j).B - b))%256; if (red < 0) {

red = red + 256; }

if (green < 0) {

green = green + 256; }

if (blue < 0) {

blue = blue + 256; }

gambarasli.SetPixel(i,j,Color.FromArgb(red,green,b lue));

}

pictureBox2.Image= gambarasli; pictureBox2.Refresh();

}

q.Stop();

string timersa =

Math.Round(Convert.ToDecimal(q.Elapsed.TotalMilliseconds)).ToString(); runing.Text=timersa;

dekripsiCitra.Enabled=false; }

public int modexp(int x, int y, int n) {

int z = 1;

(12)

}

return z; }

void DekripsiKunciClick(object sender, EventArgs e) {

int c1 = Convert.ToInt32(bilanganCipherkey.Text); int c2 = Convert.ToInt32(bilangancipherkey2.Text);

int m1c1

= modexp(c1,Convert.ToInt32(bilanganDP.Text),Convert.ToInt32(bilanganP .Text));

int m2c1

= modexp(c1,Convert.ToInt32(bilanganDQ.Text),Convert.ToInt32(bilanganQ .Text));

int m1c2

= modexp(c2,Convert.ToInt32(bilanganDP.Text),Convert.ToInt32(bilanganP .Text));

int m2c2

= modexp(c2,Convert.ToInt32(bilanganDQ.Text),Convert.ToInt32(bilanganQ .Text));

int h1 = Convert.ToInt32 (bilanganQINV.Text)*(m1c1-m2c1) % Convert.ToInt32(bilanganP.Text);

int h2 = Convert.ToInt32 (bilanganQINV.Text)*(m1c2-m2c2) % Convert.ToInt32(bilanganP.Text);

int p1= m2c1 + (h1 * Convert.ToInt32(bilanganQ.Text)); int p2= m2c2 + (h2 * Convert.ToInt32(bilanganQ.Text));

bilanganM.Text = p1.ToString(); bilanganB.Text = p2.ToString(); }

void CariGambarrClick(object sender, EventArgs e) {

OpenFileDialog ofd1 = new OpenFileDialog ofd1.InitialDirectory = @"D:\";

ofd1.Title = "Browse Image File"; ofd1.CheckFileExists = true

ofd1.DefaultExt = "bmp";

ofd1.Filter = "image files|*.bmp;"; ofd1.RestoreDirectory = true;

ofd1.ReadOnlyChecked = true ofd1.ShowReadOnly = true

if (ofd1.ShowDialog() == DialogResult.OK) {

gambarasli=new Bitmap(ofd1.FileName);

pictureBox1.Image = new Bitmap(gambarasli); pictureBox1.SizeMode =

PictureBoxSizeMode.StretchImage;

dekripsiCitra.Enabled=true; }

}

void ImportChiperkeyClick(object sender, EventArgs e) {

OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "Encrypted Files(

(13)

dialog.Title = "Open File : "; dialog.RestoreDirectory = true;

if (dialog.ShowDialog() == DialogResult.OK) {

tipe =

dialog.FileName.Substring(dialog.FileName.Length - 9, 9); if (tipe == "cipherkey")

{

string[] lines = File.ReadAllLines(dialog.FileName);

bilanganCipherkey.Text = lines[0]; bilangancipherkey2.Text = lines[1]; }

} }

void ImportPrivateClick(object sender, EventArgs e) {

OpenFileDialog dialog = new OpenFileDialog();

dialog.Filter = "key Files( *.privatrsa-crt)|*.privatrsa-crt";

dialog.Title = "Open File : "; dialog.RestoreDirectory = true;

if (dialog.ShowDialog() == DialogResult.OK) {

tipe =

dialog.FileName.Substring(dialog.FileName.Length - 13, 13); if (tipe == "privatrsa-crt")

{

string[] lines = File.ReadAllLines(dialog.FileName);

bilanganP.Text = lines[0]; bilanganQ.Text = lines[1]; bilanganDP.Text = lines[2]; bilanganDQ.Text = lines[3];

bilanganQINV.Text = lines[4]; }

} }

void SimpangambarClick(object sender, EventArgs e) {

SaveFileDialog save = new SaveFileDialog(); save.Filter = "Image Files(*.bmp) | *.bmp"; if (save.ShowDialog() == DialogResult.OK) {

pictureBox2.Image.Save(save.FileName, System.Drawing.Imagi ng.ImageFormat.Bmp);

MessageBox.Show("Gambar tersimpan"); }

(14)

D

AFTAR

R

IWAYAT

H

IDUP

C

URRICULUM

V

ITAE

I.

D

ATA

P

RIBADI

/

Personal Identification

Nama

Lengkap

: Agum Gumelar

Tempat/

Tgl. Lahir

: P.siantar / 31 Maret 1996

Jenis

Kelamin

: Laki-laki

Agama

: Islam

Kebangsaan : Indonesia

Alamat

: Jalan Enggang No 12 BLK,

P.siantar, Sumatera Utara,

Indonesia 21114

HP

: +6287868436297

Email

: agumgumelar836@yahoo.com

II.

K

EMAMPUAN

/

Capabilities

Bahasa

: Bahasa Indonesia, Bahasa Inggris

Bahasa Pemrograman : C#, C++, PHP

Database

: MySQL

Lainnya

: HTML, Ms. Office

III. P

ENDIDIKAN

F

ORMAL

/

Formal Education

[ 2013

2017 ] S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi

Informasi Universitas Sumatera Utara

[ 2010

2013 ] SMA Negeri 4 Pematangsiantar

[ 2007

2010 ] SMP Negeri 4 Pematangsiantar

[ 2001

2007 ] SD Swasta YPHI Pematangsiantar

IV.

P

ENDIDIKAN

N

ON

-

FORMAL

/

Informal Education

(15)

V.

P

ELATIHAN DAN

S

EMINAR

/

Trainings & Workshop

1)

Peserta Seminar Nasional “Melalui Inovasi Teknologi untuk Menciptakan

Mahasiswa Kreatif dan Mandiri”,

Universitas Sumatera Utara [2017]

2)

Peserta Workshop “Bank Indonesia Goes To Campus Bersama NET.”,

Universitas Sumatera Utara [2016]

3)

Peserta acara Kampus Kompas TV, Universitas Sumatera Utara [2016]

4)

Peserta Kuliah Umum Entrepreneurdhip & Pengembangan Wirausaha Muda

2015

dengan tema “

Membangun Ekonomi Indonesia Menghadapi

Persaingan Ekonomi Global

”, Universitas Sumatera Utara

[2015]

5)

Peserta Seminar

“What Will You Be?” IMILKOM Universitas Sumatera

Utara [2013]

6)

Peserta Pesantren Kilat Ramadhan, SMA Negeri 4 Pematangsiantar [2010]

Referensi

Dokumen terkait

Dalam rumusan pasal tersebut di atas tidak disebutkan kiasifikasi perbedaan antara benda buatan manusia dan benda alam, benda yang diduga sebagai benda cagar budaya,

Narasumber yang dipilih penulis adalah dua orang perawat yang telah bekerja lebih dari lima tahun di Panti Lansia Santa Anna dan dua orang lansia yang tinggal di Panti Lansia Santa

[r]

Jika seorang pemimpin memiliki kredibilitas yang baik, maka akan menjadi inspirasi bagi orang lain untuk mengerjakan segala sesuatu dengan tegas, pasti, jelas, adil,

Menindaklanjuti Surat Edaran dari Sekretariat Daerah Kota Yogyakarta Tanggal 26 Maret 2018 Nomor : 027/968/SE/2018 tentang Usulan RKMBD Pemerintah Kota Yogyakarta Tahun

Ibu-ibu rumah tangga di Kota Bandung yang diwakili oleh 103 responden penelitian mendapatkan informasi mengenai Kebijakan Kantong Plastik Tidak Gratis ini dari saluran

• Bila subclass yang diturunkan dari abstract y g class tidak mengimplementasikan isi semua method abstrak parent class, maka subclass tersebut harus tetap dideklarasikan abstract..

Dalam penelitian ini digunakan teknik triangulasi sumber untuk mendapatkan data dari sumber yang berbeda dengan teknik yang sama (Sugiyono, 2014). Peneliti juga