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)
{
}
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)
{
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));
{
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) {
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);
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.
//
//
// 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
{
} 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; }
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";
{
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();
}
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;
}
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(
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"); }
D
AFTAR
R
IWAYAT
H
IDUP
C
URRICULUMV
ITAEI.
D
ATAP
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
: 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
ENDIDIKANF
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
ENDIDIKANN
ON-
FORMAL/
Informal Education
V.
P
ELATIHAN DANS
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)