• Tidak ada hasil yang ditemukan

Penanganan File Teks dengan Hybrid Cryptosystem Algoritma Knapsack Naccache-Stern dan Algoritma Playfair Cipher

N/A
N/A
Protected

Academic year: 2017

Membagikan "Penanganan File Teks dengan Hybrid Cryptosystem Algoritma Knapsack Naccache-Stern dan Algoritma Playfair Cipher"

Copied!
14
0
0

Teks penuh

(1)

LISTING PROGRAM

1.

Mainform.cs

using System;

using System.Windows.Forms;

namespace TugasAkhir {

public partial class MainForm : Form {

public MainForm() {

InitializeComponent(); }

void MasukClick(object sender, EventArgs e) {

bangkitkunci tampil = new bangkitkunci(); tampil.Show();

this.Hide(); }

} }

2.

Pembangkit Kunci.cs

using System;

using System.Drawing; using System.Windows.Forms; using System.Numerics; using System.IO;

using System.Collections; using System.Diagnostics; using System.Text;

using System.Dynamic; using System.Linq;

namespace TugasAkhir {

public partial class bangkitkunci : Form {

public bangkitkunci() {

InitializeComponent(); }

//---Fungsi Pangkat Bilangan---//

bool isPower(int n){ if (n<=1)

return true;

for (int x=2; x<=Math.Sqrt(n); x++){ BigInteger p = x;

while (p<=n){ p*=x; if (p==n)

return true; }

}

return false; }

//---Menentukan Bilangan Prima---//

(2)

BigInteger a,b,gcd;

int z=0, P, relatifprima=0;

P = Convert.ToInt32(inputnilaiP.Text); if (P==2 || P==3)

status.Text = "Bilangan Prima"; else if (isPower(P))

status.Text = "Bilangan Komposit"; else {

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

gcd = BigInteger.GreatestCommonDivisor(P,i); if (gcd==1){

z = i; break; }

}

a = BigInteger.ModPow((1+z),P,P); b = 1 + BigInteger.ModPow(z,P,P); if (a==b){

status.Text = "Bilangan Prima"; }

else

status.Text = "Bilangan Komposit"; }

for (int j=3; j<=P-1; j++){

gcd = BigInteger.GreatestCommonDivisor(P-1,j); if (gcd==1){

relatifprima = j; break;

} }

nilais.Text = Convert.ToString(relatifprima); }

void AcakClick(object sender, EventArgs e) {

int p0,p1,p2,p3,p4,p5,p6,p7; BigInteger nilaihasilpi;

p0 = Convert.ToInt32(pnol.Text); p1 = Convert.ToInt32(psatu.Text); p2 = Convert.ToInt32(pdua.Text); p3 = Convert.ToInt32(ptiga.Text); p4 = Convert.ToInt32(pempat.Text); p5 = Convert.ToInt32(plima.Text); p6 = Convert.ToInt32(penam.Text); p7 = Convert.ToInt32(ptujuh.Text); nilaihasilpi = p0*p1*p2*p3*p4*p5*p6*p7;

hasilpi.Text = Convert.ToString(nilaihasilpi); }

//---Menentukan nilai v0 - v7---// void ProsesClick(object sender, EventArgs e)

{

int NilaiP,s;

NilaiP = Convert.ToInt32(inputnilaiP.Text); s = Convert.ToInt32(nilais.Text);

int [] p = new int[8];

BigInteger [] hasil = new BigInteger[8]; int [] n = new int[8]{1,1,1,1,1,1,1,1}; p[0] = Convert.ToInt32(pnol.Text); p[1] = Convert.ToInt32(psatu.Text); p[2] = Convert.ToInt32(pdua.Text); p[3] = Convert.ToInt32(ptiga.Text); p[4] = Convert.ToInt32(pempat.Text); p[5] = Convert.ToInt32(plima.Text); p[6] = Convert.ToInt32(penam.Text);

(3)

for (int i = 0; i<=7; i++){

(4)
(5)

bukakunci.Filter = "Cipherkey(*.cipher)|*.cipher"; if (bukakunci.ShowDialog() == DialogResult.OK) { string nama = bukakunci.FileName.Substring(0, bukakunci.FileName.Length);

FileStream fstreamm = new FileStream(nama, FileMode.Open, FileAccess.ReadWrite);

StreamReader sreader = new StreamReader(fstreamm); sreader.BaseStream.Seek(0, SeekOrigin.Begin); cipherkeydek= sreader.ReadLine();

sreader.Close();

tb_cipherkeydek.Text = cipherkeydek; }

}

//---Dekripsi->Import Private Key---//

void OpenkunciClick(object sender, EventArgs e) {

OpenFileDialog bukakunci = new OpenFileDialog(); bukakunci.Filter = "Kunci(*.key)|*.key";

if (bukakunci.ShowDialog() == DialogResult.OK) { string nama = bukakunci.FileName.Substring(0, bukakunci.FileName.Length);

FileStream fstreamm = new FileStream(nama, FileMode.Open, FileAccess.ReadWrite);

StreamReader sreader = new StreamReader(fstreamm); sreader.BaseStream.Seek(0, SeekOrigin.Begin); kuncipublik = sreader.ReadLine();

kunciprivate = sreader.ReadLine(); sreader.Close();

tb_privatekey.Text = kunciprivate; }

}

//---Dekripsi->Kunci Simetris---//

void DecryptClick(object sender, EventArgs e) {

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

string ambilkunci, ambilkey;

ambilkunci = Convert.ToString(tb_cipherkeydek.Text); ambilkey = Convert.ToString(tb_privatekey.Text); string [] bagi = ambilkunci.Split('-');

int [] cipher = new int[bagi.Length]; string [] baginilai = ambilkey.Split('-'); int [] key = new int[baginilai.Length]; double [] hasil = new double[8];

BigInteger [] gcd = new BigInteger[8]; int [] m = new int[8];

double [] nilai1 =new double[8];

double [] plainteks = new double[bagi.Length]; BigInteger [] pangkat = new BigInteger[bagi.Length]; int [] konversi = new int[bagi.Length];

char [] karakter = new char[bagi.Length]; double [] nilaiakhir = new double[8];

double [] nilaipangkat = new double[8]{1,2,4,8,16,32,64,128};

for (int k=0; k<=bagi.Length-2; k++) int.TryParse(bagi[k], out cipher[k]);

for (int mulai=0; mulai<=baginilai.Length-1; mulai++) int.TryParse(baginilai[mulai], out key[mulai]);

int tambah=0;

(6)

pangkat[i] = BigInteger.ModPow(cipher[i],key[8],key[9]);

wordApp.Documents.Open(ref filenameO, ref objFalse, ref objTrue, ref missing,

ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,

(7)

aDoc.ActiveWindow.Selection.Copy();

wordApp.Documents.Open(ref filenameO, ref objFalse, ref objTrue, ref missing,

(8)

}

pesan = new string (pesanarray); }

if (pesan.Length%2!=0) pesan = pesan + "¿"; return pesan;

}

public char [,] setkey(string kunci){

char [] kunciarray = kunci.ToCharArray(); char [] realarray = new char[256];

char [,] thematrix = new char [16,16]; int indexarray=0;

char [] karakterarray = new char[kunciarray.Length+256]; for (int i=0, j=1; i<karakterarray.Length; i++){

if (i<kunciarray.Length){

karakterarray[i] = kunciarray[i]; }

else{

karakterarray[i] = (char) j; j++;

} }

for (int i=0; i<256; i++){ if (i==0){

realarray[i] = karakterarray[i]; }

else{

for (int j=0; j<karakterarray.Length;j++){ bool duplikat = false;

for (int k=i-1; k>=0; k--){

if (karakterarray[j]==realarray[k]) duplikat = true;

}

if (duplikat==false){

realarray[i]=karakterarray[j]; break;

} } } }

for (int i=0; i<16; i++){ for (int j=0; j<16; j++){

thematrix[i,j]=realarray[indexarray]; indexarray++;

} }

return thematrix; }

bool CheckPairedChars(string pesan){ char [] pesanarray = pesan.ToCharArray(); for (int i=0; i<pesanarray.Length; i+=2){

if ((i ==pesanarray.Length-1) || (i == pesanarray.Length)) return true;

if (pesanarray[i]==pesanarray[i+1]) return false;

}

return true; }

int []GetXY(char karakter, char [,] kunci){ int [] xy = new int[2];

for (int i=0; i<16; i++){ for (int j=0; j<16; j++){ if (kunci[i,j]==karakter){ xy[0]=i;

(9)
(10)
(11)

FileStream fstreamm = new

bukaciphertext.Filter = "Ciphertext(*.ciphertext)|*.ciphertext"; bukaciphertext.RestoreDirectory = true;

(12)

for (int i=0; i<rtb_plaintext.Lines.Length; i++){ sww.WriteLine(rtb_plaintext.Lines[i]);

}

sww.Flush(); sww.Close(); }

(13)

RAVIZA SITEPU

DATA DIRI

Nama Lengkap

: Raviza Sitepu

Nama Panggilan

: Ravi

Tempat/Tanggal Lahir : Pematangsiantar/11 September 1995

Jenis Kelamin

: Laki-Laki

Kebangsaan

: Indonesia

Alamat

: Jl. Kenanga Raya Gg. Kenanga XI

No.

8A Kel. Tanjung Sari, Kec. Meda

Selayang

Nomor HP

: 085276025862

E-mail

: ravizasitepu@gmail.com

RIWAYAT PENDIDIKAN

S1 Ilmu Komputer

Universitas Sumatera Utara, Medan

131401078

Sekolah Menengah Atas

SMAN 2 PEMATANGSIANTAR

2010-2013

Sekolah Menengah Pertama

SMP SWASTA TAMAN ASUHAN PEMATANGSIANTAR

2007-2010

Sekolah Dasar

SD SWASTA TAMAN ASUHAN PEMATANGSIANTAR

2001-2007

SEMINAR/KURSUS/WORKSHOP

No.

Nama Seminar/Kursus/Workshop

Tahun

1.

Workshop GIT Repository

2017

2.

International Conference on Computing and Applied

Informatics (ICCAI)

2016

3.

Seminar Nasional Pengembangan Strategi Pariwisata

Kawasan Danau Toba

2016

(14)

Bahasa Pemrograman

: C++, Java for Mobile, C#, HTML

DMBS

: MySQL

Software

: Office Application

PENGALAMAN ORGANISASI & KEPANITIAAN

No.

Organisasi

Posisi

Tahun

1.

IMILKOM USU

Kepala Departemen

Kemahasiswaan

2016 - Sekarang

2.

IMILKOM USU

Anggota Departemen

Kemahasiswaan

2015 - 2016

3.

Penerimaan Mahasiswa Baru

Koordinator Acara

2015

4.

Porseni IMILKOM 2015

Bendahara

2015

5.

Ilmu Komputer Goes To

School 2014

Koordinator Acara

2014

Referensi

Dokumen terkait

Pada landasan teori akan dibahas lebih lanjut mengenai Indeks Pembangunan Manusia (IPM), Dana Perimbangan yang terdiri dari Dana Alokasi Umum (DAU), Dana Alokasi Khusus

Sifat individu baru yang dihasilkan akan berbeda dengan kedua induknya, tetapi peleburan sifat keduanya.. Sifat individu baru yang dihasilkan sama

Membantu Direksi dalam memenuhi tanggungjawab pengelolaan perusahaan, dengan cara audit atas ketaatan, operasional dan kinerja seluruh kegiatan unit kerja perusahaan secara

Para pelanggan dikelompokkan ke dalam industri-industri yang berbeda dan perusahaan-perusahaan dalam industri yang sama dianggap mempunyai kebutuhan jasa logistik yang sama,

A. Dalam masyrakat terkadang terjadi konflik. Hal ini terjadi karena perbedaan kepentingan. Pada masyarakat industri juga acapkali terjadi konflik antara buruh pabrik

Analisis masalah terkait dengan analisis faktor-faktor yang menimbulkan downtime pada mesin produksi kelapa sawit sehingga diperoleh tindakan perawatan hasil pendekatan RCM,

Oleh karena hal tersebut diperlukan sebuah aplikasi sistem informasi yang dapat menangani data serta mengolah data yang ada dalam proses sewa menyewa kaset sampai

Dari hasil penelitian yang peneliti lakukan pada PI,. PIII, IV, peneliti menemukan bahwa