• Tidak ada hasil yang ditemukan

Implementasi Super Enkripsi Algoritma Elgamal Dengan Teknik Transposisi Segitiga

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Super Enkripsi Algoritma Elgamal Dengan Teknik Transposisi Segitiga"

Copied!
114
0
0

Teks penuh

(1)

LISTING PROGRAM

1. Listing Program untuk Mainform

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Infragistics.Win.AppStyling.StyleManager.Load("MyStyleSet3.isl") Timer1.Start()

End Sub

Private Sub UltraToolbarsManager1_ToolClick(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinToolbars.ToolClickEventArgs) Handles UltraToolbarsManager1.ToolClick

System.Diagnostics.Process.Start(Application.StartupPath & "\HelpSystem.chm") ElseIf (e.Tool.Key = "About") Then

Dim ctrl As New AboutForm ctrl.ShowDialog()

UltraStatusBar1.Panels(0).Text = e.Tool.Key ElseIf (e.Tool.Key = "Light") Then

Infragistics.Win.AppStyling.StyleManager.Load("MyStyleSet2.isl") ElseIf (e.Tool.Key = "Dark") Then

Infragistics.Win.AppStyling.StyleManager.Load("MyStyleSet.isl") ElseIf (e.Tool.Key = "Purple") Then

Infragistics.Win.AppStyling.StyleManager.Load("MyStyleSet3.isl") ElseIf (e.Tool.Key = "Exit") Then

Me.Close() End If End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

(2)

If (MessageBox.Show("Exit Application?", "Exit?", MessageBoxButtons.YesNo,

2. Listing Program untuk Form Encrypt

Imports System.Numerics

Private Sub txtPlaintext_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPlaintext.ValueChanged

lblChar.Text = ": " & txtPlaintext.TextLength & " Char" End Sub

Private Function checkKey() As Boolean Dim retValue As Boolean = True

Private Sub btnEncrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEncrypt.Click

If (txtPlaintext.Text = "") Then

MessageBox.Show("Input your Plaintext!", "Encrypt Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

txtPlaintext.Focus() Exit Sub

ElseIf (Not checkKey()) Then

MessageBox.Show("Your Key is missing!", "Encrypt Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

(3)

End If

txtTransCipher.Text = trans.TransposeEncrypt(txtPlaintext.Text) TriGrid.DataSource = trans.getTriangle()

TriGrid.DisplayLayout.Override.DefaultColWidth = 25

TriGrid.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Select TriGrid.DisplayLayout.Override.SelectTypeCol = SelectType.None

TriGrid.DisplayLayout.Override.CellClickAction = CellClickAction.RowSelect txtCiphertext.Text = Elgamal.Encrypt(txtTransCipher.Text)

EncryptTime.Stop()

If EncryptTime.ElapsedMilliseconds < 1000 Then

time = EncryptTime.ElapsedMilliseconds.ToString & " miliseconds" ElseIf EncryptTime.ElapsedMilliseconds < 60000 Then

time = Math.Round((EncryptTime.ElapsedMilliseconds / 1000), 3).ToString & " seconds" Else

time = Math.Round((EncryptTime.ElapsedMilliseconds / 60000), 3).ToString & " minutes" End If

lblTimeEncrypt.Text = "Time to Encrypt File : " & time End Sub

Private Sub btnGetPrime_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetPrime.Click

txtPrime.Text = Elgamal.getPrime(optBit.Value).ToString() End Sub

Private Sub btnGenerate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGenerate.Click

If txtPrime.Text = "" Then

MessageBox.Show("Choose Prime Number First", "Generate Key", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

Elgamal.GenerateKey(BigInteger.Parse(txtPrime.Text)) If Elgamal.isInputPrime = True Then

(4)

txtAlphaA.Text = "" txtPrime.Focus() End If

GenerateTime.Stop() Dim time As String = ""

If GenerateTime.ElapsedMilliseconds < 1000 Then

time = GenerateTime.ElapsedMilliseconds.ToString & " miliseconds" ElseIf GenerateTime.ElapsedMilliseconds < 60000 Then

time = Math.Round((GenerateTime.ElapsedMilliseconds / 1000), 3).ToString & " seconds" Else

time = Math.Round((GenerateTime.ElapsedMilliseconds / 60000), 3).ToString & " minutes" End If

lblTimeGenerate.Text = "Time to Generate Key : " & time End Sub

Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click

Dim saveFileDialog1 As SaveFileDialog = New SaveFileDialog saveFileDialog1.Filter = "txt files |*.txt|All files |*.*"

saveFileDialog1.Title = "Save File" saveFileDialog1.FileName = "*.txt"

If (saveFileDialog1.ShowDialog() = DialogResult.OK) Then Dim filename As String = saveFileDialog1.FileName

(5)

End Sub

Private Sub TriGrid_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TriGrid.MouseHover

Private Sub TriGrid_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TriGrid.DoubleClick

Private Sub TriGrid_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TriGrid.KeyDown

Private Sub TriGrid_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TriGrid.MouseLeave

isLarge = True End Sub

Private Sub EncryptControl_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

primeNumber = 0 alpha = 0

(6)

End Sub

Private Sub txtPrime_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPrime.ValueChanged

3. Listing Program untuk Form Decrypt

Imports System.Numerics Imports System.IO

Imports Infragistics.Win.UltraWinGrid Public Class DecryptControl

Private isLarge As Boolean = False

Private Sub btnDecrypt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecrypt.Click

If (txtCiphertext.Text = "") Then

MessageBox.Show("Input your Ciphertext", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)

txtCiphertext.Focus() Exit Sub

End If

If (txtPrime.Text = "") Then

MessageBox.Show("Prime number is missing", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)

txtPrime.Focus() Exit Sub

End If

If (txtA.Text = "") Then

MessageBox.Show("Private Key is missing", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)

txtA.Focus() Exit Sub End If

If (Not (Elgamal.Fermat(primeNumber))) Then

MessageBox.Show("Number is not Prime", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)

txtPrime.Focus() Exit Sub

End If

(7)

Dim time As String = "" EncryptTime.Start()

txtPlaintext.Text = Elgamal.Decrypt(txtCiphertext.Text) Dim trans As Transpose = New Transpose

txtTransPlain.Text = trans.TransposeDecrypt(txtPlaintext.Text) TriGrid.DataSource = trans.getTriangle()

TriGrid.DisplayLayout.Override.DefaultColWidth = 25

TriGrid.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Select TriGrid.DisplayLayout.Override.SelectTypeCol = SelectType.None

TriGrid.DisplayLayout.Override.CellClickAction = CellClickAction.RowSelect EncryptTime.Stop()

If EncryptTime.ElapsedMilliseconds < 1000 Then

time = EncryptTime.ElapsedMilliseconds.ToString & " miliseconds" ElseIf EncryptTime.ElapsedMilliseconds < 60000 Then

time = Math.Round((EncryptTime.ElapsedMilliseconds / 1000), 3).ToString & " seconds" Else

time = Math.Round((EncryptTime.ElapsedMilliseconds / 60000), 3).ToString & " minutes" End If

lblTimeDecrypt.Text = "Time to Decrypt File : " & time End Sub

Private Sub txtPrime_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPrime.ValueChanged

If (txtPrime.Text <> "") Then

primeNumber = BigInteger.Parse(txtPrime.Text) End If

End Sub

Private Sub txtA_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtA.ValueChanged

If txtA.Text <> "" Then

a = BigInteger.Parse(txtA.Text) End If

End Sub

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click

Dim saveFileDialog1 As SaveFileDialog = New SaveFileDialog saveFileDialog1.Filter = "txt files |*.txt|All files |*.*"

saveFileDialog1.Title = "Save File" saveFileDialog1.FileName = "*.txt"

(8)

sw.BaseStream.Seek(0, seekorigin)

Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click

Private Sub txtCiphertext_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCiphertext.ValueChanged

lblChar.Text = ": " & txtCiphertext.Text.Split(" ").Length - 1 & " Char" End Sub

Private Sub TriGrid_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TriGrid.MouseHover

(9)

ToolTip1.Hide(Me.TriGrid) End If

End Sub

Private Sub TriGrid_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TriGrid.KeyDown

Private Sub DecryptControl_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseLeave

isLarge = True End Sub

Private Sub DecryptControl_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

4. Listing Program untuk Class ElGamal

Imports System.Numerics Imports System.IO Public Class Elgamal

Public Shared isInputPrime As Boolean

Private Shared primitiveRoots As New ArrayList Dim r As BigInteger()

Private Shared Rnd As Random = New Random() Private Shared primitiveRootsTotal As Integer Private Shared KeyLimit As Integer

(10)

End If Next Return True End Function

Public Shared Function Random(ByVal prime As BigInteger) As BigInteger Dim bigVal As BigInteger

Public Shared Function orderNumber(ByVal prime As Integer, ByVal n As Integer) As BigInteger Dim hasil As BigInteger = 0

(11)

Return retValue End Function

Public Shared Function getPrimitiveRoot(ByVal prime As BigInteger) As Integer Dim totienP As Integer = prime - 1 primitiveRoots.Add(leastPrimitive) If prime < 9999 Then

ordNum = orderNumber(prime, Integer.Parse(primitiveRoots(nilaiRandom).ToString())) If totienP = ordNum Then

If (BigInteger.ModPow(BigInteger.Parse(primitiveRoots(nilaiRandom).ToString()), BigInteger.Parse(totienP.ToString()), prime).IsOne) Then

hasil = BigInteger.Parse(primitiveRoots(nilaiRandom).ToString()) End If

(12)

Dim isPrime As Boolean = False

Public Shared Sub GenerateKey(ByVal prime As BigInteger) primitiveRoots.Clear()

MessageBox.Show("The Number is not Prime", "Generate Key", MessageBoxButtons.OK, MessageBoxIcon.Warning)

isInputPrime = False End If

End Sub

(13)

ciphertext &= cipher1(i).ToString() & " "

Public Shared Function Decrypt(ByVal cipher As String) As String Dim cipher1 As BigInteger()

(14)

End If

Public Shared Function powerTest(ByVal factors As List(Of Long)) As Integer Dim hasil As Integer = 1

5. Listing Program untuk Class Transpose

(15)

Public ciphertext As String = ""

(16)

For j = 0 To row

(17)

Next

For i = 0 To row For j = 0 To col

If (triangle(i, j) <> "") Then plain += triangle(i, j) End If

Next Next

plaintext = plain.Trim(Chr(191)) Return plaintext

End Function

Public Function getTriangle() As DataTable Dim dt As DataTable = New DataTable() For i = 0 To col

dt.Columns.Add(New DataColumn(i + 1)) Next

For i = 0 To row dt.Rows.Add() Next

For i = 0 To row For j = 0 To col

dt.Rows(i)(j) = triangle(i, j) Next

Next Return dt End Function

(18)

CURRICULUM VITAE

Nama : Ismail Fata Lubis

Tempat/Tanggal Lahir : Sibolga, 5 Oktober 1990

Agama : Islam

Alamat Sekarang : Jl. Jalak 12 No. 195 P. Mandala Medan Alamat Orang Tua : Jl. Jalak 12 No. 195 P. Mandala Medan

Telp/ Hp : 081375530101

Email : ismailfatalubis@yahoo.co.id

Riwayat Pendidikan

2009 – 2015 : S1 Ilmu Komputer Universitas Sumatera Utara, Medan 2005 – 2008 : SMA Negeri 8 Medan

2002 – 2005 : SMP Negeri 13 Medan 1996 – 2002 : SDN 067980 Medan

Pengalaman Organisasi dan Kegiatan Ilmiah

 Anggota Departemen Komunikasi dan Informasi Pemerintahan Mahasiswa Fakultas Matematika dan Ilmu Pengetahuan Alam (PEMA FMIPA) periode 2010-2011  Anggota Departemen Seni & Olahraga Ikatan Mahasiswa S1 Ilmu Komputer

(IMILKOM) periode 2011-2012

 Anggota Departemen Sumber Daya Mahasiswa Pemerintahan Mahasiswa Fakultas Ilmu Komputer dan Teknologi Informasi (PEMA FASILKOM-TI) periode 2012-2013

 Anggota bidang Programming kepanitiaan ARTechno 2013

(19)

Ariyus, Dony. 2006. Computer Security. Yogyakarta: ANDI.

Bahary, Barra Rizky. 2010. Pengamanan Pesan Teks Menggunakan Algoritma

ElGamal. Skripsi. Universitas Negeri Semarang.

Department of The Army. 1990. Basic Cryptanalysis. Washington D.C.: Aegean Park Press.

Fauzana. 2013. Analisis dan perancangan sistem autentikasi pengguna pada web

menggunakan metode multiple-key RSA. Skripsi. Universitas Sumatera

Utara.

Kromodimoeljo, Sentot. 2010. Teori dan Aplikasi Kriptografi. Jakarta: SPK IT Consulting .

Mollin, Richard. A. 2007. An Introduction to Cryptography. 2nd ed. Florida: Chapman & Hall/CRC.

Munir, Rinaldi. 2006. Kriptografi. Bandung: Informatika Bandung.

Ramdan Mangunpraja, Dadan. 2007. Peningkatan Keamanan Pertukaran Kunci

Deffie-Hellman Dengan pengimbuhan Algoritma Algoritma RSA. Bandung,

Indonesia: STEI ITB.

Sadikin, Rifki. 2012. Kriptografi untuk Keamanan Jaringan. Yogyakarta: ANDI. Singh, Rashmi. 2012. ElGamal's Algorithm in Cryptography. International Journal of

Scientific & Engineering Research Vol. 3, No. 12.

Stallings, William. 2011. Cryptography and Network Security: Principles and

Practice. 5th Edition. New York: Pearson Education, Inc.

(20)

The Security Divison of EMC. 2009. RSA BSafe Security Concept. Sydney: RSA Security, Inc.

(21)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Tahapan dilakukan untuk menjabarkan kebutuhan-kebutuhan dalam perancangan sistem. Tahap ini menjelaskan gambaran sistem yang akan dibuat sesuai dengan permasalahan yang akan diselesaikan.

3.1.1 Analisis Masalah

Masalah utama yang diangkat adalah penyimpanan pesan secara aman dengan mengimplemantasikan algoritma ElGamal dengan transposisi segitiga. Sistem ini menggunakan algoritma ElGamal karena kelebihan dari algoritma ini adalah tingkat keamanannya berdasarkan logaritma diskrit pada bilangan bulat modulo prima yang dipakai. Sedangkan pada transposisi segitiga pengurutan karakter yang didasarkan pada bentuk segitiga yang dibangun akan memperkuat keamanan dari sistem yang akan dipakai.

(22)

Implementasi Super Enkripsi Algoritma

Elgamal dan Transposisi Segitiga

Jaringan User

Proses Metode

Jaringan komunikasi

Yang tidak aman User membutuhkanKeamanan data

Dibutuhkan aplikasi Yang cepat dan tepat

Metode yang memiliki Kunci dan proses yang Sama mudah untuk dipecahkan

Gambar 3.1 Diagram Ishikawa Untuk Analisa Masalah

3.1.2 Analisis Kebutuhan (Requirement Analysis)

Analisis persyaratan terdiri atas dua bagian yaitu analisis fungsional dan analisis nonfungsional. Kedua analisis ini merupakan hal penting untuk menentukan hal-hal yang harus dimiliki sistem.

3.1.2.1 Analisis Fungsional

Analisis fungsional dibutuhkan untuk mengetahui hal-hal yang bisa dikerjakan oleh sistem. Berikut dijabarkan fungsi-fungsi yang dapat dikerjakan oleh sistem. 1. Sistem melakukan enkripsi pesan awal (plaintext) dengan bilangan prima

diinputkan oleh user atau di-generate oleh sistem yang nantinya dilakukan perhitungan oleh sistem untuk mendapatkan kunci.

2. Sistem akan melakukan enkripsi dengan transposisi segitiga dan algoritma ElGamal dan memunculkan ciphertext yang dihasilkan pada layar program. 3. Sistem akan melakukan dekripsi dengan algoritma ElGamal dan transposisi

segitiga dan memunculkan plaintext hasil dekripsi.

4. Plaintext dan ciphertext dapat disimpan dalam bentuk dokumen dengan

(23)

3.1.2.2 Analisis Nonfungsional

Analisis nonfungsional berhubungan dengan hal-hal berikut ini (Fauzana, 2013): 1. Performa

Perangkat lunak yang akan dibangun dapat menunjukkan hasil dari proses enkripsi dan dekripsi yang dilakukan oleh sistem.

2. Mudah dipelajari dan digunakan

Perangkat lunak yang akan dibangun memiliki tampilan yang user friendly dan responsif.

3. Hemat biaya

Perangkat lunak yang dibangun akan menggunakan teknologi yang bebas digunakan (free to use).

4. Dokumentasi

Perangkat lunak yang akan dibangun dapat menyimpan hasil enkripsi dan dekripsi serta memiliki panduan penggunaan.

5. Manajemen kualitas

Perangkat lunak yang akan dibangun akan memiliki kualitas yang baik. 6. Kontrol

Perangkat lunak yang dibangun akan menampilkan pesan error untuk setiap input yang tidak sesuai.

3.1.2.3 Pemodelan Persyaratan Sistem dengan Use Case

Use case adalah salah satu pemodelan yang digunakan untuk memodelkan

persyaratan sistem. Dengan use case ini digambarkan siapa saja yang berinteraksi dengan sistem dan apa saja yang dapat dilakukan sistem.

(24)

Encryptor

Gambar 3.2 Use case Diagram yang akan Dikembangkan

Diagram pada gambar 3.2 menjelaskan aksi yang dapat dilakukan oleh

user, user melakukan enkripsi dengan menggunakan algoritma ElGamal dan

Tranposisi Segitiga. User juga dapat melakukan dekripsi dengan Algoritma ElGamal dan Transposisi Segitiga. Kedua metode yang dipakai baik Algoritma ElGamal dan Transposisi Segitiga dalam sistem ini tidak dapat dipisahkan satu sama lain. Dimana ketika kita melakukan enkripsi, maka kedua metode ini akan dipakai secara berurutan, begitu pula dengan proses dekripsi, kedua metode ini akan digunakan secara berurutan.

Berikut ini merupakan spesifikasi use caseuntuk enkripsi Tabel 3.1 Spesifikasi Use Case Enkripsi

Name Enkripsi

Actors User

Trigger User menginputkan plaintext yang akan dienkripsi dan nilai bilangan

(25)

Preconditions User telah menyimpan plaintext yang akan dienkripsi

Post Conditions User dapat melihat ciphertext hasil proses enkripsi

Success Scenario

1. User telah menginputkan plaintext yang akan dienkripsi dan

bilangan prima yang akan dipakai dapat diinput ataupun

di-generate oleh sistem.

2. User mengakses tombol enkripsi.

3. Sistem akan melakukan proses enkripsi terhadap plaintext yang

diinputkan dan menampilkan hasil enkripsi (ciphertext).

4. User dapat melihat ciphertext hasil proses enkripsi dan dapat

menyimpan ciphertext tersebut dalam format teks dokumen (.txt)

Alternative Flows -

Berikut ini adalah activity diagram untuk proses enkripsi:

Sistem User

masukkan plaintext

masukkan bilangan prima

generate bilangan prima

/ TIDAK

/ YA

enkripsi pesan

Tampil hasil enkrpsi simpan hasil enkripsi

Proses penyimpanan ciphertext

/ YA

(26)

Berikut ini adalah spesifikasi untuk use case dekripsi

Tabel 3.2 Spesifikasi Use Case Dekripsi

Name Dekripsi

Actors User

Trigger User menginputkan ciphertext dan bilangan prima yang digunakan.

Preconditions User telah menyimpan Ciphertext sebelumnya

Post Conditions User dapat melihat Plaintext hasil dekripsi.

Success Scenario

1. User memasukkan ciphertext dan bilangan prima serta kunci

private yang digunakan.

2. Sistem akan mendekripsi pesan dengan kunci yang diinputkan

3. User dapat melihat plaintext hasil dari proses dekripsi

Alternative Flows -

berikut ini adalah activity diagram untuk proses dekripsi

Sistem User

masukkan ciphertext

masukkan bilangan prima dan kunci private Dekripsi pesan

Tampil plaintext yang dihasilkan

Simpan plaintext hasil dekripsi

/ YA

Proses penyimpan plaintext

/ Tidak

(27)

3.1.3 Analisis Sistem Proses

Pada implementasi sistem ini kita menggunakan dua metode dalam proses enkripsi dan dekripsi. Sistem ini mengunakan algoritma ElGamal dan Transposisi Segitiga. Pada proses enkripsi, transposisi segitiga terlebih dahulu digunakan yang dilanjutkan dengan proses enkripsi menggunakan algoritma ElGamal. Pada gambar 3.5 dapat dilihat sequence diagram untuk proses enkripsi.

User Class Transposisi Class ElGamal Sistem

input plaintext

Input Bilangan Prima

Enkripsi Transposisi

Generate Kunci()

Enkripsi ElGamal

Tampilkan Ciphertext

Simpan Ciphertext

Browse Tempat penyimpanan

Simpan Ciphertext

Gambar 3.5 Sequence Diagram Proses Enkripsi

(28)

User Class Transposisi Class ElGamal Sistem

Input Ciphertext Input Bilangan Prima

Dekripsi Transposisi

Generate Kunci

Dekripsi ElGamal

Tampilkan Plaintext

Simpan Plaintext

Browse Tempat penyimpanan

Simpan Plainrtext Input Kunci Private

Gambar 3.6 Sequence Diagram untuk Dekripsi

Dari sequnce diagram pada gambar 3.6 dapat dilihat bahwa user dapat menyimpan kembali plaintext hasil dari proses dekripsi.

3.2 Perancangan Sistem

3.2.1 Flowchart Sistem

3.2.1.1 Flowchart Gambar Umum

(29)

start

plaintext

Ciphertext

End Enkripsi dengan Transposisi Segitiga

Enkripsi dengan Algoritma Elgamal

Dekripsi dengan Algoritma Elgamal

Dekripsi dengan Transposisi Segitiga

Gambar 3.7 Flowchart Umum Sistem

Keterangan :

Dari flowchart pada gambar 3.7 dapat dilihat flowchart umum sistem yang akan dibuat. User akan memasukkan plaintext yang akan dienkripsi. Kemudian dilakukan enkripsi dengan menggunakan transposisi segitiga yang hasil dari enkripsi ini akan dienkripsi kembali dengan mengunakaan algoritma ElGamal.

User akan mendapatkan ciphertext, hasil enkripsi dari plaintext yang diinputkan

(30)

3.2.1.2 Flowchart Proses Enkripsi dengan Algoritma ElGamal

Proses enkripsi pada sistem ini menggunakan algoritma ElGamal. Berikut ini

flowchart yang menggambarkan langkah-langkah mengenkripsi pesan.

start

Plaintext (m)

C1 =

C2 =

End

Ciphertext (C) Pembangkitan Kunci

C = (C1, C2)

Gambar 3.8 Flowchart Enkripsi Pesan dengan Algoritma ElGamal

Keterangan :

Dari flowchart pada gambar 3.8 dapat dilihat proses untuk menghasilkan

ciphertext dengan algoritma ElGamal. Pada algoritma ini, kita terlebih dahulu

(31)

3.2.1.3 Flowchart Pembangkitan Kunci Algoritma ElGamal

Langkah-langkah pembangkitan kunci algoritma ElGamal dapat dilihat pada gambar 3. 9 berikut ini.

Start

Bilangan prima (P)

a = Random(2, p-1)

b = Random(1, p-1)

End

Akar primitif mod p

Gambar 3.9 : Flowchart Pembangkitan Kunci Algoritma ElGamal

Keterangan :

Dari flowchart pada gambar 3.9 dapat dilihat Flowchart pembangkitan kunci untuk memperoleh kunci private dan public yang akan dipakai dalam proses enkripsi dan dekripsi pesan dengan algoritma ElGamal.

3.2.1.4 Flowchart Proses Dekripsi dengan Algoritma ElGamal

(32)

start

Ciphertext (C)

m1 = C1p-1-a mod p

M = m1*C2 mod p

End

Plaintext (M)

Gambar 3. 10 Flowchart Dekripsi Pesan dengan Algoritma ElGamal

Keterangan :

Flowchart pada gambar 3.10 ciphertext yang di proses dengan melakukan

perhitungan terhadap angka-angka dari ciphertext dengan kunci-kunci yang telah dibangkitkan sebelumnya. Hasil perhitungan inilah yang akan mengembalikan nilai plaintext kembali.

3.2.2 Rancangan Antar Muka

(33)

3.2.2.1 Antar Muka Form Awal

Pada form awal ini kita dapat melihat judul Utama dari sistem ini dan nama pembuat sistem ini. Form ini juga merupakan form loading yang akan memproses untuk masuk ke form selanjutnya.

Gambar 3. 11 Rancangan Form Awal

Komponen yang dipakai untuk membangun antar muka pada gambar 3.11 adalah sebagai berikut:

1. Label (Judul) : label yang digunakan sebagai judul utama dari sistem.

2. Picture Box : Digunakan picture box sebagai tempat untuk menambahkan

logo ke dalam form.

3. Label (Pembuat) : label yang digunakan untuk memberikan nama pembuat sistem.

3.2.2.2 Antar Muka Form Enkripsi

(34)

Gambar 3.12 Rancangan Form Enkripsi

Komponen yang dipakai untuk membangun antar muka form enkripsi pada gambar 3.12 adalah sebagai berikut:

1. Label (Judul) : label yang digunakan untuk menampilkan judul dari sistem yang digunakan.

2. Tab : Tab yang digunakan untuk memilih proses yang diinginkan, tab ini terdiri dari 3 proses yang dapat dipilh, 'Encyption', 'Decryption' dan 'About' 3. Groupbox 'Plaintext' : pada grupbox ini kita dapat memilih plaintext yang

akan kita enkripsi.

4. Textbox 4 : textbox yang digunakan sebagai tempat untuk menginputkan plaintext, baik yang berasal dari file yang telah tersimpan maupun text yang

diketik langsung oleh user.

5. Tombol (‘Open File’) : tombol ini berfungsi untuk memilih file text yang

akan dienkripsi.

(35)

7. Group box 'File Info' : pada Group box ini akan muncul spesifikasi dari file

yang diinputkan. File name, Location dan Character akan mucul secara otomatis ketika telah dinginputkan plaintext.

8. Group box 'Generate Key' : bilangan prima yang akan digunakan sebagi

kunci akan diinputkan pada Group box ini, selain itu, kunci public dan private yang lain seperti primitive root (alpha), a dan alpha^a juga akan muncul pada

Group box ini.

9. Textbox 9 : textbox ini berfungsi untuk menampilkan bilangan prima yang

digenerate maupun yang diinputkan langsung oleh user.

10. Textbox 10 : textbox ini berfungsi untuk menampilkan primitive root (alpha).

11. Textbox 11 : textbox ini berfungsi untuk menampilkan a yang merupakan

kunci private.

12. Textbox 12 : textbox ini berfungsi untuk menampilkan hasil perkalian dari a

dikali dengan alpha.

13. Tombol ('Get Prime') : tombol ini berfungsi untuk melakukan proses

generate bilangan prima.

14. Group box 'Triangle Transposition' : Group box ini berfungsi untuk

menampilkan hasil enkripsi dengan teknik transposisi segitiga.

15. Textbox 15 : textbox ini berfungsi untuk memunculkan hasil segitiga yang

dibentuk untuk proses enkripsi.

16. Textbox 16 : textbox ini berfungsi untuk menampilkan ciphertext, hasil

enkripsi mengunakan transposisi segitiga

17. Group box 'ElGamal' : Group box ini berfungsi menampilkan hasil enkripsi

dengan Algoritma ElGamal dan untuk menyimpan ciphertext.

18. Textbox 18 : textbox ini berfungsi untuk menampilkan ciphertext, hasil

enkripsi dengan menggunakan Algoritma ElGamal.

(36)

3.2.2.3 Antar Muka Form Dekripsi

Form ini digunakan untuk melakukan proses dekripsi. Proses dekripsi

menggunakan Algoritma ElGamal terlebih dahulu, kemudian dilajutkan dengan proses transposisi segitiga untuk mendapatkan hasil dekripsi yang sama dengan

plaintext yang sebelumnya.

gambar 3. 13 : Rancangan Form Dekripsi

Komponen yang dipakai untuk membangun antar muka form dekripsi pada gambar 3.13 adalah sebagai berikut:

1. Label (Judul) : label yang digunakan untuk menampilkan judul dari sistem yang digunakan.

2. Tab : Tab yang digunakan untuk memilih proses yang diinginkan, tab ini terdiri dari 3 proses yang dapat dipilh, 'Encryption', 'Decryption' dan 'About' 3. Groupbox 'Ciphertext' : pada groupbox ini kita dapat memilih ciphertext yang

(37)

4. Textbox 4 : textbox yang digunakan sebagai tempat untuk menginputkan ciphertext.

5. Tombol (‘Open File’) : tombol ini berfungsi untuk memilih file text yang

akan didekripsi.

6. Group box 'File Info' : pada Group box ini akan muncul spesifikasi dari file

yang diinputkan. File name, Location dan Character akan mucul secara otomatis ketika telah diinputkan ciphertext.

7. Group box 'Input Key' : Group box ini berfungsi sebagai tempat untuk

memsukkan kunci-kunci yang dibutuhkan untuk mendekripsikan ciphertext. 8. Textbox 8 : textbox ini berfungsi untuk menginputkan bilangan prima yang

akan digunakan sebagi kunci.

9. Textbox 9 : textbox ini berfungsi untuk menginputkan a yang merupakan

kunci private.

10. Tombol ('Decrypt') : tombol ini berfungsi untuk melakukan proses deksripsi. 11. Group box 'ElGamal' : Group box ini berfungsi untuk menampilkan hasil

dekripsi dengan Algoritma ElGamal.

12. Textbox 12 : textbox ini berfungsi untuk memunculkan hasil dekripsi yang

diproses dengan Algoritma ElGamal.

13. Group box 'Triangle Tranposition' : Group box ini berfungsi menampilkan

hasil dekripsi dengan Transposisi Segitiga dan untuk menyimpan plaintext. 14. Textbox 15 : textbox ini berfungsi menampilkan segitiga hasil dekripsi dengan

Transposisi segitiga

15. Textbox 14 : textbox ini berfungsi untuk menampilkan plaintext, hasil dekripsi

dengan menggunakan Transposisi Segitiga.

(38)

3.2.3 Tahapan Sistem

3.2.3.1 Tahapan Transposisi Segitiga untuk Enkripsi Pesan

Transposisi segitiga adalah salah satu dari bentuk transposisi yang pada umumnya enkripsinya untuk mengubah posisi. Dimisalkan, diberikan plaintext : ILMU KOMPUTER yang akan dienkripsi mengunakan transposisi segitiga. Maka, hasil transposisi dapat dilihat pada gambar 3.14

Gambar 3.14 : Enkripsi Untuk Transposisi Segitiga

Untuk menghasilkan ciphertext, maka dilakukan pembacaan segitiga dari kolom paling kiri, sehingga ciphertext yang terbentuk adalah :

U TLKEIMORUM¿P¿ ¿

3.2.3.2 Tahapan Algoritma ElGamal untuk Enkripsi Pesan

Algoritma ElGamal adalah salah satu algoritma kriptografi asimetris. Algoritma ElGamal memiliki keunggulan pada sulitnya memecahkan logaritma yang digunakan. Algoritma ElGamal memiliki dua tahapan secara umum, yaitu proses enkripsi dan dekripsi. Sebelum proses enkripsi terlebih dahulu kunci dibangkitkan. Berikut ini proses untuk membangkitkan kunci publik dan kunci privat:

1. Pilih bilangan prima p dan cari akar primitif mod p

2. Pilih bilangan random a dimana 2 < a < p – 1, dan hitung nilai a

3. Public key yang diperoleh adalah p, , dan a sedangkan private key adalah a

Untuk implementasi dari pembangkit kunci ElGamal, maka dilakukan langkah berikut:

I

L M U

K O M P

(39)

1. Dipilih bilangan prima p = 919

2. Primitive root yang diperoleh () adalah 533 3. Nilai random a = 706

4. a = 121

Proses selanjutnya adalah mengenkripsi pesan. Pesan asli (plaintext) akan dienkripsi dengan langkah sebagai berikut :

1. Pilih bilangan random b dengan syarat b < p - 1

2. Hitung nilai b mod p untuk C1 dan m*ab mod p untuk C2, dimana m adalah plaintext

3. Maka setiap satu karakter plaintext memiliki dua ciphertext.

Plaintext yang akan dienkripsi adalah : U TLKEIMORUM¿P¿ ¿

Maka terlebih dahulu huruf-huruf tersebut dikonversikan ke dalam desimal sesuai dengan tabel ASCII. Berdasarkan tabel ASCII, nilai dari plaintext adalah:

(40)

Maka nilai-nilai di atas akan dienkripsi sesuai langkah-langkah berikut : 1. Pilih bilangan random b dengan syarat b < p - 1

2. Hitung nilai b mod p untuk C1 dan m*ab mod p untuk C2, dimana m adalah plaintext

Untuk karakter “U” dengan nilai 85:

nilai random b = 674

C1 = 533674 mod 919 = 422

C2 = 85*121674 mod 919 = 466

Untuk karakter “(spasi)” dengan nilai 32:

nilai random b = 557

C1 = 533557 mod 919

= 300

C2 = 32*121557 mod 919

= 782

Untuk karakter “T” dengan nilai 84:

nilai random b = 893

C1 = 533893 mod 919 = 508

C2 = 84*121893 mod 919 = 293

Untuk karakter “L” dengan nilai 76:

nilai random b = 614

C1 = 533614 mod 919 = 179

C2 = 76*121614 mod 919 = 120

Untuk karakter “K” dengan nilai 75:

nilai random b = 852

(41)

= 518

C2 = 75*121852 mod 919 = 523

Untuk karakter “E” dengan nilai 69:

nilai random b = 766

C1 = 533766 mod 919 = 773

C2 = 69*121766 mod 919 = 380

Untuk karakter I” dengan nilai 73:

nilai random b = 886

C1 = 533866 mod 919 = 444

C2 = 73*121866 mod 919

= 523

Untuk karakter “M” dengan nilai 77:

nilai random b = 572

C1 = 533572 mod 919 = 100

C2 = 77*121572 mod 919 = 461

Untuk karakter “O” dengan nilai 79:

nilai random b = 52

C1 = 53352 mod 919 = 640

C2 = 79*12152 mod 919 = 296

Untuk karakter “R” dengan nilai 82:

nilai random b = 756

(42)

= 313

Untuk karakter “U” dengan nilai 85:

nilai random b = 76

C1 = 53376 mod 919 = 335

C2 = 85*12176 mod 919 = 736

Untuk karakter “M” dengan nilai 77:

nilai random b = 647

C1 = 533647 mod 919 = 337

C2 = 77*121647 mod 919 = 424

Untuk karakter “¿” dengan nilai 168:

nilai random b = 853

C1 = 533853 mod 919

= 394

C2 = 168*121853 mod 919 = 522

Untuk karakter “P” dengan nilai 80:

nilai random b = 406

C1 = 533406 mod 919 = 876

C2 = 80*121406 mod 919 = 850

Untuk karakter “¿” dengan nilai 168:

nilai random b = 34

C1 = 53334 mod 919 = 526

(43)

Untuk karakter “¿” dengan nilai 168:

nilai random b = 776

C1 = 533776 mod 919 = 531

C2 = 168*121776 mod 919 = 409

Maka didapat ciphertext :

422 300 508 179 518 773 444 100 640 703 335 337 394 876 526 531 /466 782 293 120 523 380 523 461 296 313 736 424 522 850 865 409

3.2.3.3 Tahapan Algoritma ElGamal untuk Dekripsi Pesan

Untuk mendekripsi pesan, penerima membutuhkan kunci private a yang di dapat dari proses generate kunci sebelumnya. Untuk mendekripsi per karakter dilakukan langkah-langkah berikut :

1. Kunci yang digunakan adalah nilai a.

2. Hitung nilai dengan menggunakan C1 dengan cara C1p-1-a mod p yang disebut

m1

3. Dari hasil perhitungan m1 maka untuk memperoleh hasil dilakukan perhitungan m1*C2 mod p.

Dari generate key di atas a = 706, maka untuk masing-masing karakter dilakukan perhitungan berikut:

Untuk nilai C1 = 422 dan C2 = 466 :

m1 = 422919-1-706 mod 919 = 720

m = 720*466 mod 919

(44)

m1 = 300919-1-706 mod 919 = 362

m = 362*782 mod 919

= 32 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “(spasi)”

Untuk nilai C1 = 508 dan C2 = 293 :

m1 = 508919-1-706 mod 919 = 637

m = 637*293 mod 919

= 84 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “T”

Untuk nilai C1 = 179 dan C2 = 120 :

m1 = 179919-1-706 mod 919

= 889

m = 889*120 mod 919

= 76 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “L”

Untuk nilai C1 = 518 dan C2 = 523 :

m1 = 518919-1-706 mod 919 = 884

m = 884*523 mod 919

= 75 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “K”

Untuk nilai C1 = 773 dan C2 = 380 :

m1 = 773919-1-706 mod 919 = 554

m = 554*380 mod 919

= 69 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “E”

Untuk nilai C1 = 444 dan C2 = 523 :

(45)

m = 211*523 mod 919

= 73 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “I”

Untuk nilai C1 = 100 dan C2 = 461 :

m1 = 100919-1-706 mod 919 = 664

m = 664*461 mod 919

= 77 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “M”

Untuk nilai C1 = 640 dan C2 = 296 :

m1 = 640919-1-706 mod 919 = 22

m = 22*296 mod 919

= 79 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “O”

Untuk nilai C1 = 703 dan C2 = 313 :

m1 = 703919-1-706 mod 919 = 288

m = 288*313 mod 919

= 82 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “R”

Untuk nilai C1 = 335 dan C2 = 736:

m1 = 335919-1-706 mod 919 = 336

m = 336*736 mod 919

= 85 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “U”

Untuk nilai C1 = 337dan C2 = 424:

(46)

Untuk nilai C1 = 394 dan C2 = 522:

m1 = 394919-1-706 mod 919 = 782

m = 782*522 mod 919

= 168 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “¿”

Untuk nilai C1 = 876 dan C2 = 850 :

m1 = 876919-1-706 mod 919 = 465

m = 465*850 mod 919

= 80 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “P”

Untuk nilai C1 = 526 dan C2 = 865:

m1 = 526919-1-706 mod 919

= 99

m = 99*865 mod 919

= 168 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “¿”

Untuk nilai C1 = 531 dan C2 = 409:

m1 = 531919-1-706 mod 919 = 670

m = 670*409 mod 919

= 168 dikonversi ke dalam simbol/karakter dalam ASCII menjadi “¿”

(47)

3.2.3.4 Tahapan Transposisi Segitiga untuk Dekripsi Pesan

Untuk mengembalikan plaintext yang telah ditransposisi, dilakukan penyusunan kembali karakter kedalam segitiga, dengan karakter pertama menduduki kolom paling kiri dan dibaca dari baris atas ke bawah. Sehingga dari ciphertext “U

TLKEIMORUM¿P¿ ¿” didapat hasil yang dapat dilihat pada gambar 3.15 :

I

L M U

K O M P

U T E R ¿ ¿ ¿

Gambar 3.15 : Dekripsi dengan Transposisi Segitiga

Untuk menghasilkan plaintext kembali, pembacaan segitiga dimulai dari baris pertama hingga baris terakhir, sehingga diperoleh plaintext "ILMU

(48)

BAB IV

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.2.1 Implementasi

Implementasi sistem dibangun dengan menggunakan bahasa pemrograman VB.Net, dengan memakai Software Microsoft Visual Studio 2010. Terdapat 3

form dalam sistem ini, form awal (loading form), form encryption dan form

decryption. Sistem ini dibangun sesuai dengan rancangan sistem yang telah dibuat

sebelumnya.

4.1.1 Spesifikasi Perangkat Lunak

Untuk membangun sistem ini digunakan perangkat lunak sebagi berikut : 1. Sistem Operasi Windows 7

2. Software Microsoft Visual Studio 2010

3. Infragistics NetAdvantage AppStylist 2010.3

4.1.2 Form Awal (Loading Form)

Loading form ini adalah form awal untuk masuk ke dalam sistem. Pada form ini

(49)

Gambar 4.1 Loading Form

4.1.3 Form Enkripsi

Form enkripsi ini digunakan oleh user untuk mengenkripsi pesan. Pesan yang dapat

(50)

Gambar 4.2 Form enkripsi pesan

Jika user memasukkan bilangan yang bukan prima maka akan muncul dialog box

Gambar 4.3 Dialog Box Bilangan Bukan Prima

Jika user tidak memasukkan plaintext untuk dienkripsi maka akan muncul dialog box sebagai pemberitahuan.

(51)

Jika bilangan prima tidak di-generate untuk menghasilkan kunci, maka sistem juga akan memunculkan dialog box pemberitahuan

Gambar 4.5 : Dialog Box Kunci belum di-generate

4.1.4 Form Dekripsi

Form dekripsi berfungsi untuk mendekripsi ciphertext menjadi plaintext kembali atau

mengubah kembali pesan yang telah dienkripsi. Pada form ini, dapat memasukkan

ciphertext yang telah disimpan sebelumnya. Bilangan prima dan kunci private yang

(52)

4.2.2 Pengujian

Pengujian untuk sistem implementasi algoritma ElGamal dengan teknik transposisi segitiga ini dilakukan untuk mendapatkan waktu melakukan enkripsi pesan dan dekripsi pesan dengan ukuran plaintext yang berbeda-beda, juga menguji sistem dalam segi recovery, apakah sistem ini dapat mengembalikan pesan secara utuh kembali. Kriteria pengujian sistem sebagi berikut:

1. Plaintext berupa file text yang telah terlebih dahulu disimpan didalam komputer

atau dapat diinput langsung oleh user.

2. Ciphertext akan disimpan dalam bentuk file text.

3. Bilangan prima dipilih oleh user dan dinputkan maupun di-generate sesuai pilihan.

4. Sistem ini diuji dengan Personal Computer dengan spesifikasi processor intel core i7 - 2600 CPU @3.40 GHz (8CPUs), Memory 8 GB RAM.

4.2.1 Proses Enkripsi

Dalam proses enkripsi, pesan yang akan dienkripsi adalah file Paper.txt dengan ukuran 2 kb. Kunci yang digunakan akan di-generate oleh sistem. Berikut file yang akan dienkripsi.

Gambar 4.7 : Plaintext Pengujian Proses Enkripsi

(53)

Gambar 4.8 Form Enkripsi Pengujian Sistem

Segitiga yang terbentuk dari proses enkripsi dapat dilihat pada gambar 4.9.

(54)

Gambar 4.10 Ciphertext Hasil Enkripsi Pengujian Sistem

4.2.2 Proses Dekripsi

(55)

Gambar 4.11 Form Dekripsi Pengujian Sistem

(56)

File hasil enkripsi yang disimpan ke dalam file text dapat dilihat pada gambar 4.13.

Gambar 4.13. File Text Hasil Proses Dekripsi

Dari gambar 4.7 dan gambar 4.13 dapat dilihat sebelum pengujian dan sesudah pengujian menghasilkan file dengan teks yang sama dimana proses dekripsi ini berjalan baik sehinggan tidak ada teks file yang terpotong atau hilang.

4.2.3 Pengujian Sistem Berdasarkan Aspek Recovery

Salah satu aspek yang harus diperhatikan dalam pengujian kriptografi adalah aspek

recovery. Recovery adalah pengembalian pesan ke bentuk awal pesan setelah proses

enkripsi. Pengujian ini dilakukan secara berulang dengan ukuran pesan yang berbeda-beda serta kunci publik dan kunci privat yang berberbeda-beda-berbeda-beda pula. Ini dilakukan untuk pembuktian bahwa proses enkripsi dan dekripsi pesan dengan sistem ini tidak mengubah, manambah maupun mengurangi isi pesan.

Berikut hasil pengujian sistem.

1. Pengujian dengan ukuran file 5.02 kb dan kunci 32 bit.

(57)

Gambar 4.14 : File Uji dengan Ukuran 5.02 kb

(58)

Proses enkripsi ini menghasilkan ciphertext yang dapat dilihat pada gambar 4.16.

Gambar 4.16 : File Ciphertext dengan File Uji 5.02 kb

Karena masing-masing karakter memiliki 2 ciphertext, maka file hasil enkripsi yang

disimpan akan memiliki ukuran yang lebih besar dari ukuran pesan awal. Sebagai

contoh pesan yang dienkripsi dengan ukuran 5.02 kb, menghasilkan ciphertext dengan

ukuran 49.2 kb. Maka akan dilakukan proses dekripsi untuk mengembalikan pesan.

(59)

Proses dekripsi membutuhkan waktu 97 miliseconds. File hasil dekripsi dapat dilihat

pada gambar 4.18. Pada gambar ini dapat dilihat, pesan yang telah dienkripsi

kemudian di dekripsi kembali akan sama dengan file yang belum mengalami proses.

Gambar 4.18 : File Hasil Dekripsi dengan File Uji 5.02kb

2. Pengujian dengan ukuran file 10.0 kb dan kunci 32 bit.

(60)

Gambar 4.19: File Uji 10 kb

Proses enkripsi yang dilakukan dapat dilihat pada gambar 4.20.

Gambar 4.20: Proses Enkripsi dengan File Uji 10 kb

(61)

Gambar 4.21 : File Ciphertext dengan File Uji 10 kb

Ciphertext dan kunci yang digunakan akan dimasukkan ke dalam form dekripsi

(62)

Gambar 4.23 dan gambar 4.18 menunjukkan gambar file dengan isi yang sama, dimana hasil setelah proses enkripsi dan dekripsi sama dengan file yang belum mengalami proses.

Gambar 4.23 : File hasil dekripsi dengan File Uji 10 kb

3. Pengujian dengan ukuran file 2 kb dan kunci 64 bit.

File yang akan dienkripsi dengan kunci 64 bit.

(63)

File uji pada gambar 4.24 akan diinput, dan dilakukan proses enkripsi yang

dapat dilihat pada gambar 2.25.

Gambar 4.25 : Proses Enkripsi dengan File Uji 2 kb dengan kunci 64 bit

Proses enkripsi menghasilkan ciphertext pada gambar 4.26.

Gambar 4.26 : File Ciphertext Hasil Enkripsi dengan File Uji 2 kb

Ciphertext akan diinput ke dalam proses dekripsi untuk menghasilkan teks

(64)

Gambar 4.27 : Proses Dekripsi dengan File Uji 2 kb dan Kunci 64 bit.

Proses dekripsi menghasilkan file hasil pada gambar 4.28. Gambar 4.28 dan gambar 4. 24 memperlihatkan bahwa file yang telah mengalami proses enkripsi dan dekripsi memiliki isi yang sama dengan file masukannya.

Gambar 4.28 : File Hasil Proses Dekripsi dengan File Uji 2 kb

Pengujian dengan file dan kunci yang lain akan diperlihatkan pada tabel 4.1. File yang

(65)

Tabel 4.1. Rangkuman Pengujian Sistem

1.

Plaintext

"Algoritma ElGamal juga adalah algoritma kriptografi kunci publik. Algoritma ini pada mulanya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi."

Kunci

"Algoritma ElGamal juga adalah algoritma kriptografi kunci publik. Algoritma ini pada mulanya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan dekripsi." Waktu Enkripsi 19 milisecond

Waktu Dekripsi 3 milisecond

(66)

621 8560 1071 2622 568 2404 1204 5792 6530 6222 2808 8913 4225 6573 5549 1835 1529 5871 3628 8457 1652 1405 8986 2357 6444 675 1382 7833 5168 184 520 7349 1556 3428 6379 1002 1722 203 6230 2666 1835 2169 5726 5200 736 1845 577 6254 644 5213 9004 6341 8923 6277 94 906 4380 5459 7675 2042 850 8977 488 2293 3996 6895 4756 652 3758 5571 3157 707 4709 1592 7327 9085 917 5628 6297 7698 3431 1280 7296 7692 8627 5058 4414 6552 3395 5720 6369 4523 2051 3801 7 1110 2332 1502 146 1938 2177 7745 9512 9118 879 9059 3929 5783 1939 3812 8281 2750 8525 3903 8693 1112 6286 9049 4032 2516 1695 1336 2847 4214 9020 8408 2688 8657 1415 169 9410 8088 6000 2975 105 9038 7559 1836 4407 6869 8058 9453 8529 1140 1404 4625 6561 8904 4426 1607 9528 4143 8484 6294 174 5091 9200 3042 1732 1108 464 5656 4111 6582 7974 8679 6941 8671 5222 1039 7786 7484 1455 319 1169 470 5903 1033 5710 5518 3249 2343 965 2381 3730 4855 3743 2523 793 3719 6705 708 260 8547 9295 2649 1689 5186 4127 9198 1956 6305 5849 6470 5674 1929 2377 326 3478 6964 1364 8713 8638 1714 9031 1537 6570 7254 5886 2443 3960 4719 4395 4725 3727 4256 9381 2102 7352 7451 1415 5738 7773 2440 3040 7478 2140 8755 838 1759 4838 7643 6932 8180 7176 /6190 7765 6866 3189 3659 3820 8885 4072 9129 4424 5994 3227 4349 1504 1600 93 1601 5286 8253 7177 1566 2346 2190 373 5933 4280 7685 214 5261 3330 202 6388 4686 8423 1818 3503 4416 4930 4512 4836 7911 7952 7552 159 4548 5244 3254 7376 26 6605 3084 6671 1282 9205 9031 2581 3512 8971 2428 8264 6522 5771 723 2698 5457 1996 7589 2608 4671 3503 2588 1292 2468 2681 9353 1582 6691 4988 4530 9420 3249 173 237 3341 4567 2959 3378 1104 6589 707 7487 9256 1850 5026 2255 1835 7305 3997 7904 8775 4484 1559 5612 2757 3851 5556 9019 5583 1787 2663 3350 6567 9418 2037 2218 7333 4506 349 4648 4913 7622 2851 2019 4332 1845 3952 3287 1382 1390 2864 1789 9496 7457 7949 5814 4579 2032 8222 1664 3738 1384 7281 7190 6272 5492 3030 6559 5164 8981 3974 6781 4094 6133 89 2355 8110 2546 3880 5707 782 5758 6577 8600 2142 6996 5225 6004 9210 5127 5673 5103 977 8929 7016 6856 598 2889 8776 3018 5240 9028 3403 1185 9077 2919 5862 2791 605 227 758 3575 6125 9527 2874 4603 5530 3676 1427 6050 4776 3608 1006 3403 7777 6950 9209 7458 1152 1650 6594 4950 4865 2660 9290 964 1443 4303 8974 7413 5107 4272 4024 7662 7544 5782 352 5936 2858 8311 8410 1918 388 5229 9112 1164 4150 7049 2419 1719 8603 682 8791 2811 6979 3786 3408 8764 8159 610 6805 7681 269 9060 2833 8696 4092

(67)

Waktu Enkripsi 2.27 second WaktuDekripsi 4 milisecond

3. Plaintext " Menurut terminologinya kriptografi adalah ilmu dan seni

untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain."

Kunci Prima : 2479019

 : 512

a : 752

∗ � : 151284

Ciphertext 1477389 1237111 1411853 2093549 125144 1369797

(68)

1206820 1875044 1270821 2209481 139951 2020763 2408332 2140452 1970106 1447866

Plaintext (Hasil dekripsi) " Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain."

Waktu Enkripsi 2.8 second Waktu Dekripsi 8 milisecond

4. Plaintext "Cryptanalysts often attack both symmetric and public-key

cryptosystems through their key management.

Why should Eve bother going through all the trouble of trying to break the

cryptographic algorithm if she can recover the key because of sloppy key storage procedures? Why

should she spend $10 million building a cryptanalysis machine if she can spend $1000 bribing a

clerk? Spending a million dollars to buy a well-placed communications clerk in a diplomatic"

Kunci Prima : 77062591

 : 6

a : 2792

∗ � : 39966004

Ciphertext 41876594 18939754 22030480 62806599 68244573

51203259 1120291 54024211 30231150 66193204 58934835 42316237 2557754 31240711 33573629 73899826 7112086 30446227 50645925 40321690 34039228 28389113 34421171 49670013 14328086 7245296 38904346 70861297 16166264 1481772 31411623 63797790 304847 71440712 20035276 13656523 21260965 65342837 41726151 71118930 11847698 13636038 62504688 21872887 6804513 69098281 60301375 3621020 30537367 51879127 54052920 37613349 4431722 8261004 51185453 34418752 19347642 29666412 65529452 21337668 59297817 9331138 22471240 28772919 74545338 41195351 18818169 53089603 33774468 61462234 65505127 23700325 30092065 1949754 42470503 74736561 47152852 57951161 75117053 14283228 2841643 45369994 54825039 56085130 18687660

25824613 43312779 782261 52939685 4671554 17111663 51809672 42652402 5038525 59924194 16961844

(69)
(70)

26966635 71776013 51360263 31514857 24895681 75884522 54118728 76967423 60749470 63295342 15018705 51879127 16755178 39358493 27047928 38980299 33391789 10440110 19147172 64734393 35869256 24075679 60501208 61171243 5798463 44487245 62092210 34623339 55085923 38604651 74602528 55735340 70762070 7586864 59120882

38080552 2665881 55831652 69894994 8473542 3016822 67572033 60953356 62436797 70857825 33225621 1474001 51379282 29153620 71167255 /48248898 51241065 7020711 57166435 9116865 58827814 17360518 42525606 58060775 23973711 44871699 26302938 68662020 20195503 40909069 48799658 71342488 73966994 35233936 66729362 2194255 55334677 51414022 56344136 76633466 21975800 19216247 10793460 56904554 9767437 22517424 61104803 65948642 25757260 6563887 29144663

33458375 9542902 16792065 30793023 1333814 9935641 33294838 73686067 476871 72476402 44023625

47610898 45786607 40913892 42944012 39161214 2753406 8941052 59442207 57671052 58683830 20591084 26277593 13666149 58176352 72973002 23164264 36707252 25297279 12581145 6046347 1378293 13445543 34577559 65855088 28237942 25805691 73196779 38205610 7286405 71637121 17441388 37556829 46048308 26999970 1384120 33375275 73639484 34535361 4545730 66790339 59405593 10621726 27633660 74352541 29962389 66401062 62650757 39165104 24633066 57723839 52758848 73778038 19660857 13886835 40080976 37086792 50053370 75274210 12147787 27137035 43116364 27791594 46416799 70736577 45797748 8598771 33660259 57829359 18695780 42740600 64211628 75752868 41235157 7079922 74334195 39419210 30109681 28441743 68133878 4813004 10829372 12355891 62935515 35024032 18224331 22504046 71645339 44231556 74241841 40602924 16365103 52556140 65753921 20437694 70893595 51817130 6813370 23841529 51621940 25812592 9463945 41032615 75705669 11961012 3155881 31128913 48148876 14703440 76954775 55136552 64909101 15335918 68118205 67870881 22054425 4241225 14506389 8910282 59252624 29233263

(71)

47742319 14534671 65524132 55058901 68216695 5850515 7421051 72918987 48771930 31212566

69306920 6654437 1411184 57922540 62833187 4893792 26283101 32944667 24830119 50637606 70450207 36674705 9300366 37952243 73781476 15072694 59359484 58781741 55702404 22073421 3044858 17206223 74664624 51835054 20705844 69542468 38583241 20264668 13984098 40160260 26813233 30706144 34726293 51472611 75593964 58821141 20836152 75131635 13947363 45768469 62391462 21987343 51791966 11273077 46004864 6968538 38763501 23235880 15895335 71888695 6318241 39749425 35034484 46367810 62513733 59262128 3027939 29290763 70350523 17375219 23259742 34625907 2911648 75013526 39263719 57181603 45711006 9053835 19055257 7675427 75386683 64702723 52670146 51491679 28395972 14631729 540178 25753510 38075084 71583918 1617981 74183405 20668893 25258423 34993548 35778347 5178332

(72)

Why should Eve bother going through all the trouble of trying to break the

cryptographic algorithm if she can recover the key because of sloppy key storage procedures? Why

should she spend $10 million building a cryptanalysis machine if she can spend $1000 bribing a

clerk? Spending a million dollars to buy a well-placed communications clerk in a diplomatic"

Waktu Enkripsi 19.7 second WaktuDekripsi 17 milisecond

5. Plaintext "Fabrication merupakan ancaman yang paling berbahaya,

pihak yang tidak memiliki akses tidak hanya dapat

membaca data, juga dapat mengubah dan memalsukan data, sehingga data seolah berasal dari pengirim sebenarnya"

Kunci Prima : 18009133

 : 2048

a : 9233

∗ � : 15085195

Ciphertext 7216014 13470673 17844257 15774612 7784723

15147756 16633662 2928583 10689693 7925138 855113 8804080 4954319 3078773 10354720 2752526 11067140 3735002 6476704 15153942 14332683 8989018 16137965 909545 8851180 17855188 3351636 2908429 12456561 16033528 5673560 14582577 15864222 12468659

12060806 4300773 15818700 16250374 2412984 1787267 14077651 4524573 5351098 11849194 13812659

10235541 16872508 7541853 13428375 11755738 14539204 8445952 5805884 439153 3480165 156755 5023640 4524573 1600428 12269224 908596 16447255 4610662 8299420 15659354 17599389 6949198 5602052 16276466 17080725 6540923 13267354 1736936

10427453 4207958 7517950 8542016 8067630 9929187 3370412 3356137 2686544 8286647 3458337 10375979 15084012 11148233 6180479 11551109 5916488 5626180 4358458 7702884 11310981 17530424 2801331 7897075 4047739 3515275 4455995 4309365 530595 14835633 48818 389355 9126243 17666179 11921790 6851643 106014 7369980 2566548 6989585 122022 14516859 5599122 6707571 17587284 10886625 10385457 3118328 5400050 1326606 9741373 7800397 15976465 13068346 11472484 4558937 3418795 9891750 12673141 2270456 5012063 8311233 14106776 3602246 7621351 14764491 6393365 3394622 4165857 7399663 8769372 17115039 5255175 6811151 434491 9955170 10969978 15790819 11131918 6234421 4558937 16876691 7270973 4363787 8144872 4062569 4743361 1895253 449355 11319174 9626594 3543156 318452 1612603 800453 17472304 15037515 9064417 11982767 7581692 4005128 5521186 2577255 15614215 10494636 9295295 7515492 9944304 12599937 12361183 14581206 8715065 8648199

(73)

1161408 7296296 10290540 7354491 8877471 7643563 9131956 6756074 7153408 10176488 2959565 3352744 11604278 14250665 5100605 12876214 6849048

17771815 2801331 1713689 5104211 /6599337 16668025 14174893 17977570 4813117 17168945 3407686

16097387 11016903 14084696 3509144 3853292 6476202 3543484 8004265 13071274 12670089 10219712 3263307 12780886 6994376 1817544 8292880 17109348 13364379 9557002 12166374 16925640 1953946 3670413 8089248 2175184 3769602 943528 13515381 8700353 7816701 7700500 4281602 14107715 9069171 12287192 4484435 5617659 15434257 17133707 7170747 7084128 13335581 9176660 9812281 13423580 14471736 11148940

12561158 14424407 4438871 12985041 5102345 17810410 4758632 13624427 7653054 15812214 17027057 4130791 15791578 11501344 3683959

10753425 1301325 8578603 15147536 6474695 10710823 5437658 1156447 2935676 15233861 16802750 8675102 13615560 2724214 9831250 6197729 2983733 8817040 8652539 17914773 12305529 7480287 3378875 6555230 1188456 4950214 4008121 4822938 14623128 809037 6883397 3976916 9423010 1242317 8780554 12095166 14652965 333712 8510510 5855385 10908868 7385876 14932203 9995104 2499923 3952580 6865608 3371317 10021471 15970389 11338561 9151843 6963356 6531407 17589889 10907632 14217688 5910545 5111599 8378129 8049899 3292147 16167412 9296679 17880751 4101958 76709 13276812 15867821 8298814 16457088 12425832 11466344 14280137 5977894 2373138 2568840 13699801 17192834 14663309 227609 16074731 2158004 12418900 10593130 13412945 3000397 17498277 16079774

17737527 14925726 15564937 14180926 1927456 11857260 12894608 2516875 14714964 12476114 14615380 7057285 10752611 2768287 16456377 10158136 7559170 11183273 17892869 15161797 4929805 7759729 2805859 12560431 9887752 16114497 12615229 2453832 13829705 9462410 9915085 3692482 16278898 532551 16109516 17117194 3675485 14802643 6633288 2341367 12607543 15354911 5236906 13820509 3919624 1391411 9059688 3265343 15746590 4115688 12138937 16597330 13653632 16930351 15874390 6831947 3547782 2184658 6886712 14235439 15301269 6215226 13374309 12453009 6710500 4411862 6565619

Plaintext (Hasil dekripsi) "Fabrication merupakan ancaman yang paling berbahaya, pihak yang tidak memiliki akses tidak hanya dapat

membaca data, juga dapat mengubah dan memalsukan data, sehingga data seolah berasal dari pengirim sebenar"

(74)

∗ � : 2457

Ciphertext Ciphertext.txt (154 kb)

Plaintext (Hasil dekripsi) Hasil dekripsi.txt (16 kb) Waktu Enkripsi 2.2 minutes

WaktuDekripsi 446 milisecond

7. Plaintext Implementasi Super Enkripsi Algoritma ElGamal dengan

Teknik Transposisi Segitiga

Kunci Prima : 92319287

 : 1953125

a : 2965

∗ � : 65491940

Ciphertext 34945030 79187311 77163589 42570758 88896702

82653213 28673309 3899382 22860732 4471922 74259848 74896883 90760739 56831764 35360709 71898471 34546657 26498445 19948693 32074334 29455077 61860351 33290268 27132406 63077095 30014698 43978505 61802574 30372086 46492259 18219852 54002066 59424053 86820033 50034564 39022627 54699781 5045876 35290976 19428366 64657577 599510 49727337 91772781 39361854 90145297 10819049 21099602 58010829 77595714 66726992 9587663 19686583 69741335 12852850 47043606 1216756 76620360 89854631 7721013 31034836 26802784 11999311 5673276 84542773 72825788 85375160 67471259 19996257 41493074 53675036 65491940 78581338 24275265 11949566 92207477 8741980 91600964 23872771 77438940 79444195 /84583818 46019563 41960554 57174547 71012899 84316922 77412036 88069468 41445683 88066251 5074394 49868439 16474507 36103696 18959978 74372023 19651770 15159912 13384796 37905784 49060816 25077536 31856463 18580091 1615063 52905059 78036150 23120840 71989883 1915425 75296748 56745827 31367745 39829725 59030415 58497407 91521482 50895711 16004882 26899288 48668125 48466832 67510593 29384059 72582563 66873874 65052883 73424393 71662899 49083026 26111542 33549318 46579199 2513544 62327428 8969836 76671199 72104909 42592766 67440436 63869325 72489509 40347101 13029407 56386771 34794787 47605299 16394931 30035647 7731868 87481423 74291692 32793984 87345999 69991308 30804162 327762 38980110 32904268 13594630 13745167

Plaintext (Hasil dekripsi) Implementasi Super Enkripsi Algoritma ElGamal dengan Teknik Transposisi Segitiga

Waktu Enkripsi 3.47 second Waktu Dekripsi 14 milisecond

8. Plaintext File text Konsep SI.txt (32 kb)

Kunci Prima : 9629

(75)

∗ � : 2429

Ciphertext Ciphertext Konsep SI.txt

Plaintext (Hasil dekripsi) Hasil dekripsi.txt Waktu Enkripsi 5.13 minutes WaktuDekripsi 1.32 second

9. Plaintext " Salah satu fungsi kriptografi adalah kerahasian data, namun kriptografi yang sering dipakai justru dibobol oleh pihak yang tidak memiliki hak akses terhadap data rahasia."

Kunci Prima : 82259207

 : 1953125

a : 3044

∗ � : 14458346

Ciphertext 39913860 49743983 52396296 30575979 31877164

77515989 2458191 74226677 48686361 71158100 33367629 15154989 44600255 16864688 82065469 28850425 27355281 80093052 72314992 9501069 22678174 47659780 25554534 18777071 57762171 13073548 63806853 79194287 37302955 69167083 6792653 51364139 28452882 3250352 31694951 17586903 9834954 36179890 77586922 72929784 70769928 38360242 53564586 25508682 18017190 8763717 29426089 43406146 26107004 73153642 21082167 64444933 26594830 55557578 36511631 76740085 18630729 8211046 42157507 49522512 28040464 7668391 65818666 34493329 75040653 5628740 46812167 36671580 47617408 69141726 40878719 56199639 28688740 55744528 66998115 21046450 30628358 54460707 49789965 52398303 75933703 21221013 76664657 20482534 48607096 74610950 47478696 30672959 68857334 24516995 23818930 14053907 26672462 66380168 22113432 9682863 52802500 39610923 2232127 2005021 4296339 80794208 54414269 70769928 45998614 66323213 820901 69426304 23345017 80100116 77252576 28474216 3830495 40471376 19508016 14576538 60497590 44826783 72685929 47908056 73045342 3327015 68478561 78374855 72459954 80754964 15588250 19674268 48792401 30755088 81788461 24970503 78030474 65649107 30755672 8576188 22828669 8036207 6406279 59549856 58023442 40161107 70203297 13575232 56613928 80121893 40843252 69996957 17069338 35460726 50410342 73810784 54537861 57137348 67422523 1872688 48669082 71101190 49454258 27547893 14976860 12738015 35931364 26460525 63589163 29711219 5030260 18063122 22529372 75687381 24257348 82135964 20485361 29688822 2425110 44388944

Gambar

Gambar 3.8 Flowchart Enkripsi Pesan dengan Algoritma ElGamal
gambar 3. 9 berikut ini.
Gambar 3. 10 Flowchart Dekripsi Pesan dengan Algoritma ElGamal
Gambar 3. 11 Rancangan Form Awal
+7

Referensi

Dokumen terkait

Tanah &amp; Bangunan seluas 396 m2 &amp; 176 m2, di Kota JAKARTA TIMUR, yang berasal dari HASIL SENDIRI , perolehan tahun 1998 (Perubahan Atas Data yang dilaporkan

dibuat dalam lembaran komik yang sangat dihargai sebagai suatu karya seni.. Populernya karya-karya Tezuka memacu munculnya banyak serial

Berdasarkan hasil analisis diketahui bahwa nilai R Square mendekati satu artinya variabel yang diukur dengan labelisasi halal, pengetahuan konsumen, gaya hidup dan citra merek

HTML digunakan untuk membangun halaman web, HTML digunakan untuk melakukan mark-up (penandaan) terhadap sebuah dokumen teks. Tanda tersebut digunakan untuk

d. Pajak Pengambilan dan Pemanfaatan Air Bawah Tanah dan Air Permukaan. Dari empat kutipan jenis pajak propinsi tersebut dapat di uraikan sebagai berikut :..

Bab ini berisikan penyajian data hasil survey secara detail dengan berbagai aspek, dan berisikan penyajian data hasil proyeksi dari berbagai aspek,

Penelitian ini telah mengukur tekanan darah pada penderita hipertensi di PSTW unit Abiyoso tahun 2012 yang diadakan pada kelompok eksperimen yang diberikan jus tomat selama 7

menggunakan zip upload maka otomatis file zip akan diekstraksi, Ini sangat berguna jika kita ingin menguload file yang banyak, yaitu dengan cara memampatkan file-file tersebut ke