• Tidak ada hasil yang ditemukan

Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish

N/A
N/A
Protected

Academic year: 2016

Membagikan "Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish"

Copied!
59
0
0

Teks penuh

(1)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

STUDI ENKRIPSI DAN DEKRIPSI FILE DENGAN

MENGGUNAKAN ALGORITMA TWOFISH

SKRIPSI

SETI FAUZIAH TUMANGGOR

060823007

PROGRAM STUDI SARJANA MATEMATIKA

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(2)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

STUDI ENKRIPSI DAN DEKRIPSI FILE DENGAN MENGGUNAKAN ALGORITMA TWOFISH

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains

SETI FAUZIAH TUMANGGOR 060823007

PROGRAM STUDI SARJANA MATEMATIKA DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

(3)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

STUDI ENKRIPSI DAN DEKRIPSI FILE DENGAN

MENGGUNAKAN ALGORITMA TWOFISH

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains

SETI FAUZIAH TUMANGGOR

060823007

PROGRAM STUDI SARJANA MATEMATIKA

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(4)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

PERSETUJUAN

Judul : STUDI ENKRIPSI DAN DEKRIPSI FILE DENGAN

MENGGUNAKAN ALGORITMA TWOFISH

Kategori : SKRIPSI

Nama : SETI FAUZIAH TUMANGGOR

Nomor Induk Mahasiswaa : 060823007

Program Studi : SARJANA (S1) MATEMATIKA

Departemen : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Medan, Februari 2009

Komisi Pembimbing :

Pembimbing 2, Pembimbing1,

Drs. Marwan Harahap, M.Eng. Syahriol Sitorus, S.Si, M.IT.

NIP. 130422437 NIP. 132174687

Diketahui/Disetujui oleh

Departemen Matematika FMIPA USU Ketua,

(5)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

PERNYATAAN

STUDI ENKRIPSI DAN DEKRIPSI FILE DENGAN MENGGUNAKAN ALGORITMA TWOFISH

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Februari 2009

(6)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

PENGHARGAAN

Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Pemurah dan Maha Penyayang, dengan limpahan rahmat dan karunia-Nya skripsi ini berhasil diselesaikan dalam waktu yang telah direncanakan.

(7)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

ABSTRAK

(8)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

ABSTRACT

System of data security and data secret are one of important aspect in growth of world communication, specially communication using computer and incircuit with network. In this final duty will be studied Twofish Algorithm for encrypting and decrypting of file, and the implementation using by Visual Basic 6.0 language program, and time required during the process of decryption file.

(9)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar x

Bab 1 Pendahuluan 1

1.1Latar Belakang 1

1.2Perumusan Masalah 2

1.3Pembatasan Masalah 3

1.4Tujuan Penelitian 3

1.5Kontribusi Penelitian 3

1.6Tinjauan Pustaka 3

1.7Metode Penelitian 5

Bab 2 Landasan Teori 6

2.1 Teori Dasar Kriptografi 6

2.2 Algoritma Kriptografi 7

2.3 Tekhnik Kriptografi 10

2.3.1 Algoritma Simetrik 10

2.3.2Algoritma Asimetrik 11

2.4 Kriptografi Block Cipher 12

2.4.1 Cipher Berulang 12

2.4.2 Feistel Cipher 13

2.4.3 Padding 13

2.4.4 Ekspansi 14

2.4.5 Kompresi 14

2.6 Kunci Lemah dan Kunci Setengah Lemah 14

2.5 Twofish 14

2.5.1 Tujuan Desain Twofish 15

2.5.2 Blok Pembangun Twofish 16

2.5.3 Algoritma Twofish 20

2.7 Keamanan Twofish 23

Bab 3 Pembahasan 24

3.1 Analisa Masukan 24

3.2 Analisa Kebutuhan Perangkat Keras dan Perangkat Lunak 24

(10)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

3.4 Analisa Prosedural 25

3.4.1 Pembangkitan Kunci 25

3.4.2 Pembagian Plainteks 39

3.4.3 Proses Subtitusi 30

3.5 Perancangan Flowchart 31

3.6 Implementasi 32

3.7 Percobaan Enkripsi dan Dekripsi 34

3.8 Twofish Untuk Integritas Data 35

Bab 4 Kesimpulan dan Saran 38

4.1 Kesimpulan 38

4.2 Saran 38

Daftar Pustaka

(11)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

DAFTAR TABEL

Halaman

(12)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

DAFTAR GAMBAR

Halaman

Gambar 2.1 Proses Enkripsi 7

Gambar 2.2 Proses Dekripsi 8

Gambar 2.3 Diagram proses enkripsi dan dekripsi algoritma simetris 10 Gambar 2.4 Diagram proses enkripsi dan dekripsi algoritma asimetris 11

Gambar 2.5 Struktur Algoritma Twofish 20

Gambar 3.1 Flowchart Aplikasi Enkripsi/Dekripsi Algoritma Twofish 31

Gambar 3.2 Form Tab Enkripsi 32

Gambar 3.3 Hasil Enkripsi 33

Gambar 3.4 Form Tab Dekripsi 33

(13)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

BAB 1

PENDAHULUAN

1.1Latar Belakang

Pada zaman sekarang ini, menjaga kerahasiaan informasi merupakan hal yang sangat

penting. Sebagai contoh bagi perusahaan besar, penyimpanan dokumen serta data–

data penting adalah kewajiban yang mesti dilakukan. Penyalahgunaan data–data

rahasia perusahaan tersebut oleh pihak tertentu tentunya bisa saja menimbulkan

kerugian yang sangat besar pada perusahaan tersebut. Contoh lainnya adalah

komunikasi suara lewat jaringan internet. Kemungkinan pihak lain untuk mencuri

informasi yang disampaikan lewat komunikasi elektronik tersebut sangat besar

mengingat belum adanya sekuritas khusus terhadap aplikasi tersebut. Karenanya,

salah satu alternatif yang dapat digunakan untuk menjaga kerahasiaan informasi

tersebut adalah dengan menyamarkannya menjadi bentuk tersandi yang tidak

bermakna. Hal tersebut dapat dilakukan dalam kriptografi.

Kriptografi merupakan salah satu metode pengamanan data yang dapat

digunakan untuk menjaga kerahasiaan data, keaslian data serta keaslian pengirim.

Metode ini bertujuan agar informasi yang bersifat rahasia yang dikirim melalui

telekomunikasi umum seperti LAN atau internet, tidak dapat diketahui atau

dimanfaatkan oleh orang yang tidak berkepentingan atau yang tidak berhak

menerimanya. Kriptografi biasanya dalam bentuk enkripsi. Proses enkripsi merupakan

proses untuk meng-encode dalam bentuk yang hanya dapat dibaca oleh sistem yang

(14)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

menggunakan software atau hardware. Hasil enkripsi tersebut cipher. Cipher

kemudian didekripsi dengan device dan kunci yang sama tipenya (sama softwarenya

serta sama kuncinya).

Dengan kriptografi terdapat berbagai macam sistem sandi yang tujuan

penggunaan dan tingkat kerahasiaannya berbeda sesuai dengan permintaan user, tetapi

dalam prakteknya user menginginkan kemudahan-kemudahan seperti: kerahasiaan

data, kecepatan maupun biaya yang murah. Hal ini merupakan kendala dalam

membuat suatu sistem kriptografi.

Kenyataan dalam proses pengamanan data dengan metode kriptografi sering kali

dibutuhkan waktu yang relatif lama dibandingkan tanpa menggunakan metode

kriptografi. Oleh karena itu, diusahakan membuat sistem yang sandi yang lebih cepat

dalam kriptografi tanpa mengabaikan kaidah kerahasiaan yang ingin dicapai dan

hanya membutuhkan biaya yang murah.

Kriptografi amat luas penggunaannya, oleh karena itulah, pada tahun 1972 dan

1974, National of Standart (sekarang bernama NIST) mengumumkan adanya standar

enkripsi, yaitu DES (Data Encryption Standard). Dalam proses perkembangannya

ternyata kunci dalam DES dirasa terlalu pendek bagi keamanan komersial akhirnya,

NIST mengumumkan AES (Advanced Encryption Standard) pada tahun 1997. Salah

satu kandidat AES adalah Twofish. Hal ini disebabkan Twofish memenuhi semua

kriteria yang dibutuhkan NIST, yaitu 128-bit block, 128 bit, 192 bit dan 256 bit key

(kata kunci), efisien pada platform manapun dan lain-lain, serta beberapa desain berat

lainnya.

1.2PERUMUSAN MASALAH

Twofish merupakan algoritma yang beroperasi dalam mode blok. Algoritma Twofish

sendiri merupakan pengembangan dari algoritma Blowfish. Adapun perumusan

(15)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

menggunakan algoritma twofish agar kriptanalisis sulit memecahkan ciphertextnya

sehingga keamanan data tetap terjaga keasliannya.

1.3PEMBATASAN MASALAH

Pada penelitian ini, masalah dibatasi pada pengaplikasian metode enkripsi dan

dekripsi file dengan menggunakan algoritma twofish. File yang dapat diproses adalah

file-file yang ada pada Microsoft office, file berektensi jpg, pdf. Serta melihat sejauh

mana kecepatan enkripsi dan dekripsi dalam algoritma Twofish.

1.4TUJUAN PENELITIAN

Skripsi ini bertujuan untuk mengaplikasikan metode enkripsi dan dekripsi file dengan

menggunakan algoritma Twofish.

1.5KONTRIBUSI PENELITIAN

Bermanfaat untuk mengamankan informasi yang dapat di aplikasikan pada

kebutuhan enkripsi dan pengamanan data. Sebagai contoh kriptografi dapat digunakan

dalam jaringan komputer, aplikasi bisnis, internet, dan lain sebagainya yang

membutuhkan keamanan informasi.

1.6TINJAUAN PUSTAKA

Kriptografi berasal dari bahasa Yunani. Menurt bahasa tersebut kata kriptografi dibagi

menjadi dua, yaitu kripto dan graphia. Kripto berarti secret (rahasia) dan graphia

berarti writing (tulisan). Menurut terminologinya kriptografi adalah ilmu dan seni

(16)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

lain. Dalam perkembangannya kriptografi juga digunakan untuk mengidentifikasi

pengiriman pesan dengan tanda tangan digital dan keaslian pesan dengan sidik jari

digital. [2]

Algoritma adalah urutan langkah-langkah logis untuk menyelesaikan masalah

yang disusun secara sistematis. Algoritma kriptografi merupakan langkah-langkah

logis bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak atas

pesan tersebut. [3]

Kriptografi adalah suatu ilmu untuk menjaga kerahasiaan data. [5]

Lingkup keamanan data dari suatu sistem komputer mencakup hal-hal yang

tidak saja berkaitan dengan :

1. Keamanan fisik

Komputer harus diletakkan pada tempat yang dapat dikontrol, karena

kemungkinan penyalahgunaan dapat terjadi (user yang tidak disiplin

meninggalkan komputer dalam keadaan hidup sehingga orang tidak berhak

dapat menggunakan fasilitas komputer tersebut).

2. Keamanan akses

Seluruh akses terhadap sistem komputer secara administrasi harus dikontrol

dan terdokumentasi, sehingga apabila ada suatu permasalahan dapat diketahui

penyebabnya dan mencari solusi/pemecahannya.

3. Keamanan file adau data

Untuk file/data yang sensitif dan bersifat rahasia, diperlukan tingkat akses dan

bahkan dapat dibuatkan suatu kode tertentu sehingga apabila ada file/data

tersebut dicuri, isi informasinya tidak mudah didapat.

4. Keamanan jaringan

Dengan pemanfaatan jaringan publik, data yang ditransmisikan dalam jaringan

harus aman dari kemungkinan dapat diketahui isi informasinya sehingga untuk

informasi yang sensitif harus dibuatkan kode sandi tertentu untuk

pengamanannya pada saat transmisi. [1]

(17)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

sebagai aspek-aspek keamanan yaitu: Kerahasiaan (confidentiality), Integritas Data

(Data Integrity), Otentikasi (Authentication) dan Nirpenyangkalan (non-repudiation).

[6]

Pesan atau informasi yang dapat dibaca disebut sebagai plaintext. Teknik

untuk membuat pesan menjadi tidak dapat dibaca disebut sebagai enkripsi. Pesan yang

tidak dapat dibaca tersebut disebut ciphertext. Proses yang merupakan kebalikan dari

enkripsi disebut dekripsi. Jadi dekripsi akan membuat ciphertext menjadi plaintext. [8]

Twofish merupakan algoritma yang beroperasi dalam mode blok. Algoritma

Twofish sendiri merupakan pengembangan dari algoritma blowfish. Perancangan

dilakukan dengan memperhatikan kriteria-kriteria yang diajukan National Institute of

Standards and Technology (NIST) untuk kompetisi Advanced Encryption Standard

(AES). [4]

1.7METODE PENELITIAN

Dalam penyusunan skripsi ini, penulis menggunakan tahapan sebagai berikut:

1. Membahas karakteristik dan cara kerja algoritma enkripsi dengan metode twofish

dalam enkripsi dan dekripsi file.

2. Mengimplementasikan algoritma twofish ke dalam bahasa pemrograman dengan

menggunakan bahasa pemrograman Visual Basic 6.0.

3. Menguji kinerja dari aplikasi yang telah di rancang, dengan mengenkripsi dan

(18)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

BAB 2

LANDASAN TEORI

2.1 Teori Dasar Kriptografi

Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto berarti secret

(rahasia) dan graphia berarti writing (tulisan). Jadi kriptografi berarti secret writing

(tulisan rahasia). Menurut terminologinya, kriptografi adalah ilmu dan seni untuk

menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ketempat lain.

Kriptografi pada dasarnya sudah dikenal sejak lama. Menurut catatan sejarah,

kriptografi sudah digunakan oleh bangsa Mesir sejak 4000 tahun yang lalu oleh

raja-raja Mesir pada saat perang untuk mengirimkan pesan rahasia kepada panglima

perangnya melalui kurir-kurinya. Orang yang melakukan penyandian ini disebut

kriptografer, sedangkan orang yang mendalami ilmu dan seni dalam membuka atau

memecahkan suatu algoritma kriptografi tanpa harus mengetahui kuncinya disebut

kriptanalis.

Ada empat tujuan mendasar dari ilmu kriptografi, yaitu :

1. Kerahasiaan (Confidentiality), yaitu layanan agar isi pesan yang dikirimkan tetap

(19)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

penerima/pihak-pihak memiliki ijin). Layanan ini direalisasikan dengan

menyandikan pesan menjadi cipherteks.

2. Integritas data (data integrity), adalah berhubungan dengan penjagaan dari

perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus

memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak

yang tidak berhak, antara lain menyangkut penyisipan, penghapusan, dan

pensubtitusian data lain ke dalam data yang sebenarnya.

3. Otentikasi (authentication) yaitu layanan yang berhubungan dengan identifikasi.

Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi

keaslian data/informasi.

4. Nirpenyangkalan (non-repudiation), yaitu layanan yang dapat mencegah suatu pihak

untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan

tersebut berasal dirinya).

2.2 Algoritma Kriptografi

Ditinjau dari asal usulnya, kata algoritma mempunyai sejarah yang menarik. Kata ini

muncul di dalam kamus Webster sampai akhir tahun 1975. Kata algorism mempunyai

arti proses perhitungan dalam bahasa Arab. Algoritma berasal dari nama penulis buku

Arab yang terkenal, yaitu Abu Ja’far Muhammad Ibnu Musa al-Khuwarizmi

(al-Khuwarizmi dibaca oleh orang barat sebagai algorism). Kata algorism lambat laun

berubahmenjadi algorithm.

Defenisi terminologi algoritma adalah urutan langkah-langkah logis untuk

menyelesaikan masalah yang disusun secara matematis. Algoritma kriptografi

merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari

orang-orang yang tidak berhak atas pesan tersebut.

(20)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

1. Enkripsi: proses menyandikan plainteks menjadi cipherteks. Dimana plainteks

disebut dengan pesan asli (pesan yang ingin dikirim), sedangkan cipherteks adalah

pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi.

Enkripsi

Plaintext Ciphertext

Gambar 2.1 Proses Enkripsi

2. Dekripsi: adalah kebalikan dari enkripsi yakni mengubah ciphertext menjadi plaintext,

sehingga berupa data awal/asli.

Deskripsi Plaintext

Ciphertext

Gambar 2.2 Proses Dekripsi

3. Kunci: yang dimaksud disini adalah kunci yang dipakai untuk melakukan enkripsi dan

dekripsi. Kunci terbagi menjadi dua bagian, kunci rahasia (private key) dan kunci umum

(public key).

Sebelum membahas lebih jauh, berikut ini diberikan beberapa istilah yang umum

digunakan dalam pembahasan kriptografi:

a. Pesan, Plainteks dan Cipherteks

Pesan (message) adalah data atau informasi yang dapat dibaca dan

dimengerti maknanya. Nama lain untuk pesan adalah plainteks (plaintext)

atau teks-jelas (cleartext). Bentuk pesan yang tersandi disebut cipherteks

(chipertext) atau kriptogram (cryptogram). Cipherteks harus dapat

ditransformasikan kembali menjadi plainteks semula agar pesan yang

diterima bisa dibaca.

b. Pengirim dan Penerima

Komunikasi data melibatkan pertukaran pesan antara 2 (dua) entitas.

(21)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Entitas di

sini dapat berupa orang, mesin (komputer), kartu kredit dan sebagainya.

c. Enkripsi dan Dekripsi

Proses penyandian plainteks menjadi cipherteks disebut enkripsi

(encryption) atau enciphering (standard nama menurut ISO 7498-2).

Sedangkan proses mengembalikan cipherteks menjadi plainteks semula

dinamakan dekripsi (decryption) atau deciphering (standard nama menurut

ISO 7498-2).

d. Cipher dan Kunci

Algoritma kriptografi disebut juga cipher, yaitu aturan untuk enciphering

dan deciphering atau fungsi matematika yang digunakan untuk enkripsi dan

dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk

enciphering dan deciphering.

konsep matematis yang mendasari proses enkripsi dan dekripsi adalah

relasi antara dua himpunan yaitu yang berisi elemenen plaintext dan yang

berisi elemen chipertext. Enkripsi dan dekripsi merupakan fungsi transformasi

antara himpunan-himpunan tersebut. Apabila elemen-elemen plaintext

dinotasika dengan P, elemen-lemen chipertext dinotasikan dengan notasi D,

maka secara matematis proses kriptografi dapat dinyatakan sebagai berikut :

Enkripsi : E(P)=C

Dekripsi : D(C)=P

Pada skema enkripsi konvensional atau symentric-key, digunakan

sebuah kunci untuk melakukan proses enkripsi dan dekripsinya. Kunci tersebut

dinotasikan dengan K. Sehingga proses kriptografinya adalah sebagai berikut:

Enkripsi : EK(P)=C

(22)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Sedangkan pada sistem asymentric-key digunakan kunci umum (public

key) untuk enkripsi dan kunci pribadi (private key) untuk proses dekripsinya.

Sehingga kedua proses tersebut dinyatakan dengan :

Enkripsi :EPK (P)=C

Dekripsi : DSK (C)=P atau DSK (EPK (P))=P

e. Sistem Kriptografi

Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi.

Sistem Kriptografi (cryptosystem) adalah kumpulan yang terdiri dari

algoritma kriptografi, semua plainteks dan cipherteks yang mungkin dan

kunci. Di dalam sistem kriptografi, cipher hanyalah salah satu komponen

saja.

f. Penyadap

Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan

selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan

informasi sebanyak-banyaknya mengenai sistem kriptografi yang digunakan

untuk berkomunikasi dengan maksud untuk memecahkan cipherteks.

g. Kriptanalisis dan Kriptologi

Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan

cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan.

Pelakunya disebut kriptanalis. Jika seorang kriptografer (cryptographer)

mentransformasikan plainteks menjadi cipherteks dengan suatu algoritma

dan kunci, maka sebaliknya seorang kriptanalis berusaha untuk memecahkan

cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi

(cryptologi) adalah studi mengenai kriptografi dan kriptanalisis.

(23)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Pada umumnya terdapat dua teknik yang digunakan dalam kriptografi, yakni: kunci

simetris dan kunci asimetris (public-key).

2.3.1 Algoritma Kunci Simetris

Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana kunci enkripsi

yang digunakan sama dengan kunci dekripsi sehingga algoritma ini disebut juga sebagai

single-key algorithm.

Gambar 2.3 Diagram proses enkripsi dan dekripsi algoritma simetris

Sebelum melakukan pengiriman pesan, pengirim dan penerima harus memilih

suatu suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci ini haruslah

rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini disebut juga

algoritma kunci rahasia (secret-key algorithm).

Kelebihan :

• Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik. • Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem

real-time.

Kelemahan :

• Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam

manajemen kunci tersebut.

Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key

distribution problem”.

Contoh algoritma : TwoFish, Rijndael, Camellia

(24)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma dimana kunci

enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada algoritma ini

menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (private key).

Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara

rahasia oleh si pengguna. Walau kunci publik telah diketahui namun akan sangat sukar

mengetahui kunci privat yang digunakan.

Gambar 2.4 Diagram proses enkripsi dan dekripsi algoritma asimetris

Pada umumnya kunci publik (public key) digunakan sebagai kunci enkripsi

sementara kunci privat (private key) digunakan sebagai kunci dekripsi.

Kelebihan :

• Masalah keamanan pada distribusi kunci dapat lebih baik.

• Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit.

Kelemahan :

• Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris. • Untuk tingkat keamanan sama, kunci yang digunakan lebih

panjang dibandingkan dengan algoritma simetris.

Contoh algoritma : RSA, DSA, ElGamal

2.4 Kriptografi Block Cipher

Block cipher merupakan sebuah fungsi yang memetakan n-bit blok plaintext ke n-bit

blok ciphertext, dengan n adalah panjang blok. Blok cipher umumnya memproses

(25)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

2.4.1 Cipher Berulang

Pada teknik cipher berulang (iterated cipher), blok plaintext mengalami pengulangan

fungsi transformasi beberapa kali untuk mendapatkan blok ciphertext. Fungsi

transformasi pada umumnya merupakan gabungan proses subtitusi, permutasi,

kompresi, atau ekspansi terhadap blok plaintext. Sebuah kunci pada setiap putaran

akan dikombinasikan dengan plaintext. Parameter dalam cipher ini adalah jumlah

putaran r, besar blok n dan besar kunci k. Sub-kunci Ki pada setiap putaran diperoleh

dari penurunan kunci input K.

2.4.2 Feistel Cipher

Feistel cipher beroperasi terhadap panjang blok data tetap sepanjang n (genap),

kemudian membagi 2 blok tersebut dengan panjang masing-masing n/2, yang

dinotasikan dengan L dan R. Feistel cipher menerapkan metode cipher berulang

dengan masukan pada putaran ke-I yang didapat dari keluaran sebelumnya, yang

secara matematis dapat dinyatakan sebagai berikut :

Li=Ri-1

Ri=Li-1 ⊕ f(Ri-1,Ki); i=1,2,3,…,r

Ki adalah kunci untuk putaran ke-i dan f adalah fungsi transformasi.

Blok plaintext adalah gabungan L dan R awal atau secara formal plaintext

dinyatakan dengan (Lo, Ro). Sedangkan blok ciphertext didapatkan dari L dan R hasil

putaran terakhir setelah terlebih dahulu dipertukarkan atau dinyatakan dengan (Rr,

Lr).

(26)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Padding pada blok terakhir bisa dilakukan dengan berbagai macam cara,misalnya

penambahan bit-bit tertentu. Salah satu contoh penerapan padding dengan cara

menambahkan jumlah total padding sebagai byte terakhir pada blok terakhir plaintext.

Misal panjang blok adalah 128 bit (16 byte), dan pada blok terakhir terdiri dari 88

bit(11 byte). Sehingga jumlah padding yang diperlukan adalah 5 byte, yaitu dengan

menambahkan angka nol sebanyak 4 byte,kemudian menambahkan angka 5 sebanyak

satu byte. Cara lain dapat menggunakan karakter end-of-file pada byte terakhir lalu

diberi padding setelahnya.

2.4.4 Ekspansi

Teknik ini memperbanyak jumlah bit pada blok plainteks berdasarkan aturan tertentu,

misalnya dari 32 bit menjadi 48 bit. Dalam praktek, aturan eskpansi dinyatakan

dengan tabel.

2.4.5 Kompresi

Teknik ini kebalikan dari ekspansi, di mana jumlah bit pada blok plainteks diciutkan

berdasarkan aturan tertentu. Dalam praktek, aturan kompresi dinyatakan dengan tabel.

2.5 Kunci Lemah dan Kunci Setengah Lemah

Dalam kriptografi dikenal istilah kunci lemah (weak-key) dan kunci setengah lemah

(semi weak-key). Kunci lemah adalah kunci yang apabila mengenkripsi suatu plaintext

(27)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

plaintext itu sendiri. Sedangkan yang disebut dengan kunci setengah lemah adalah

sepasang kunci yang memiliki sifat jika sebuah plaintext dienkripsi dengan suatu

kunci, akan dapat dienkripsi dengan kunci yang lain.

2.6 Twofish

Pada tahun 1972 dan 1974, US the National Bureau of Standards (sekarang bernama

the National Institute of Standards and Technology, atau NIST) mengeluarkan

publikasi pertama untuk sebuah standar enkripsi, yang menghasilkan algoritma data

Encryption Standard (DES), yang tidak dapat disangkal sebagai algoritma kriptografi

yang sangat terkenal dan sangat berhasil.

Disamping kepopulerannya, DES sering diserang dengan berbagai kontroversi.

Beberapa orang kriptografer mempertanyakan desain algoritma DES yang

mengimplementasikan kunci dan ukuran blok yang terlalu kecil. Dengan

berkembangnya pengetahuan tentang kunci terdistribusi akhir-akhir ini, tidak ada

keraguan bahwa DES memang memiliki ukuran blok dan kunci yang tidak sesuai

dengan kebutuhan masyarakat saat ini.

Triple-DES ditawarkan untuk menjawab pertanyaan diatas, dan memang

merupakan solusi sementara dari permaslahan diatas. TDES telah diadopsi oleh

banyak sekali aplikasi yang membutuhkan tingkat keamanan tinggi seperti perbankan

namun algoritma TDES dirasakan sangat lamban, apalagi dengan hardware pada saat

itu.

Merespon kebutuhan masyarakat untuk pengganti DES, NIST mengeluarkan

semacam sayembara bernamakan program Advanced Encryption Standard (AES)

pada tahun 1997. Sebuah sayembara untuk para kriptografer dunia untuk merancang

algoritma kriptografi baru sebagai calon pengganti DES. NIST mengumumkan

(28)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Cara penilaian untuk menentukan algoritma terbaik yaitu dengan cara

algoritma yang masuk dipublikasikan ke umum, dan dengan mendengar tanggapan

masyarakat akan ditemukan algoritma yang terbaik.

2.6.1 Tujuan Desain Twofish

Algoritma Twofish didesain untuk memenuhi kriteria yang ditetapkan oleh NIST

untuk sayembara penentuan standar algoritma. Kriteria tersebut diantaranya adalah :

1. Menggunakan 128-bit enkripsi dengan metode blok cipher.

2. Panjang kunci 128 bit, 192 bit, dan 256 bit.

3. Tidak memiliki kunci lemah

4. Efisien baik jika digunakan di Intel Pentium Pro maunum perangkat lunak ataupun

keras lainnya

5. Memiliki desain yang fleksibel sehingga dapat digunakan untuk stream chiper,

hash function, dan MAC.

6. Design yang sederhana.

Kriteria tambahan yang dimiliki oleh algoritma Twofish adalah :

1. Dapat menerima kunci lebih dari 256 bit

2. Untuk versi dengan optimasi penuh proses enkripsi data dapat dilakukan kurang

dari 500 clock cycle per blok pada Pentium, Pentium Pro, dan Pentium II.

3. Untuk pemrosesan 32 blok dengan 128 bit kunci dapat memakan waktu yang lebih

sedikit.

4. Tidak memiliki operasi yang dapat mengurangi efisiensi jika digunakan pada

mikroprosesor 8-bit, 16-bit, 32-bit maupun 64 bit.

5. Memiliki berbagai variasi performansi dari key schedule

(29)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Secara garis besar algoritma twofish dibangun dari beberapa algoritma utama,

algoritmaalgoritma tersebut diambil dari prinsip pembangunan algoritma cipher blok.

Ada 6 prinsip yang digunakan yaitu :

1. Jaringan Feistel

Hampir semua algoritma cipher blok bekerja dalam model jaringan Feistel.

Jaringan Feistel ditemukan oleh Horst Feistel dalam desainnya tentang Lucifer,

dan dipopulerkan oleh DES. Jaringan Feistel adalah metode umum untuk

mentransformasi fungsi apapun (biasa disebut fungsi F) ke dalam permutasi.

Beberapa algoritma kriptografi lain yang menggunakan jaringan Feistel misalnya

LOKI, GOST, FEAL, Blowfish, Khufu Khafre, dan RC-5. Model jaringan Feistel

bersifat reversible, untuk proses enkripsi dan dekripsi, sehingga kita tidak perlu

membuat algoritma baru untuk mendekripsi cipherteks menjadi plainteks.

Bagian yang penting dari jaringan Feistel adalah fungsi F, pemetaan string

input menjadi string output berdasarkan kunci yang digunakan. Fungsi F selalu

tidak linear dan mungkin tidak surjektif:

di mana :

n : ukuran blok dari jaringan Feistel

F : fungsi yang menerima n=2 bit dari blok dan N bit kunci sebagai input dan

menghasilkan output n=2 bit.

Dalam setiap putaran, blok sumber adalah input fungsi F dan output dari

fungsi F di-XOR-kan dengan blok target, lalu dua blok ini dipertukarkan sebelum

masuk ke putaran berikutnya. Ide yang digunakan adalah untuk mengambil fungsi

F, yang mungkin merupakan algoritma enkripsi yang lemah jika berdiri sendiri,

dan melakukan perulangan untuk membuat algoritma enkripsi yang kuat. Dua

(30)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

dari blok teks telah dimodifikasi sekali. Twofish merupakan jaringan Feistel

16-putaran, dengan fungsi F bijektif.

Feistel cipher beroperasi terhadap panjang blok data tetap sepanjang n

(genap), kemudian membagi 2 blok tersebut dengan panjang masing-masing n/2,

yang dinotasikan dengan L dan R. Feistel cipher menerapkan metode cipher

berulang dengan masukan pada putaran ke-I yang didapat dari keluaran

sebelumnya, yang secara matematis dapat dinyatakan sebagai berikut :

Li=Ri-1

Ri=Li-1 ⊕ f(Ri-1,Ki); i=1,2,3,…,r

Ki adalah kunci untuk putaran ke-i dan f adalah fungsi transformasi.

Blok plaintext adalah gabungan L dan R awal atau secara formal plaintext

dinyatakan dengan (Lo, Ro). Sedangkan blok ciphertext didapatkan dari L dan R

hasil putaran terakhir setelah terlebih dahulu dipertukarkan atau dinyatakan

dengan (Rr, Lr).

2. Kotak-S (S-boxes)

Kotak-S adalah matriks yang berisi substitusi non-linear yang memetakan satu

atau lebih bit dengan satu atau lebih bit yang lain dan digunakan di banyak cipher

blok. Kotak-S memiliki ukuran input dan ukuran output yang bervariasi. Ada

empat pendekatan yang digunakan dalam mengisi Kotak-S : dipilih secara acak,

dipilih secara acak lalu diuji, dibut oleh orang, dihitung secara matematis. Kotak-S

pertama digunakan di Lucifer, lalu DES dan diikuti banyak algoritma enkripsi

yang lain. Twofish menggunakan empat buah 8x8 bit Kotak-S yang berbeda,

bijektif, dan bergantung pada kunci. Kotak-S ini dibuat menggunakan 8x8 bit

(31)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

3. MDS Matrices

Kode MDS (Maximum Distance Separable) pada sebuah field adalah pemetaan

liner dari x elemen field ke y elemen field, dan menghasilkan vektor komposit x +

y elemen, dengan ketentuan bahwa jumlah minimum dari elemen bukan nol pada

setiap vektor bukan nol paling sedikit y + 1. Dengan kata lain, jumlah elemen yang

berbeda diantara dua vektor berbeda yang dihasilkan oleh pemetaan MDS paling

sedikit y + 1. Dapat dibuktikan dengan mudah bahwa tidak ada pemetaan yang

dapat memiliki jarak pisah yang lebih besar diantara dua vektor yang berbeda,

maka disebut jarak pisah maksimum (maximum distance separable). Pemetaan

MDS dapat direpresentasikan dengan sebuah MDS matriks yang teridiri dari x × y

elemen.

Kode perbaikan-kesalahan Reed-Solomon (RS) adalah MDS. Kondisi yang

diperlukan untuk sebuah x × y matriks untuk menjadi MDS adalah semua

kemungkinan submatriks kotak, yang diperoleh dengan membuang kolom atau

baris, adalah tidak singular.

Serge Vaudenay pertama kali mengajukan matriks MDS sebagai elemen

desain kode. Shark dan Square menggunakan matrika MDS, meskipun

konstruksinya pertama kali ditemukan di kode Manta yang tidak dipublikasikan.

Twofish menggunakan matriks MDS tunggal 4x4.

4. Transformasi Pseudo-Hadamard

Transformasi Pseudo -Hadamard (PHT) adalah sebuah operasi pencampuran

sederhana yang berjalan secara cepat dalam perangkat lunak. 32-bit PHT dengan

dua masukkan didefinisikan sebagai :

a’ = a + b mod 232

(32)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

SAFER menggunakan 8-bit PHT untuk difusinya. Twofish menggunakan

32-bit PHT untuk mengubah keluaran dari fungsi g- nya. PHT ini dapat dieksekusi

dalam dua opcodes di mikroprosesor modern seperti keluarga Pentium.

5. Whitening

Whitening, sebuah teknik meng-XOR-kan material kunci sebelum putaran

pertama dan setelah putaran terakhir, digunakan oleh Merkle dalam Khufu/Khafre,

dan ditemukan oleh Rivest untuk DES-X. Whitening menambah tingkat kesulitan

serangan pencarian kunci terhadap ciphertext, dengan menyembunyikan masukkan

spesifik terhadap putaran pertama dan putaran terakhir dari fungsi F.

Twofish meng-XOR-kan 128-bit sub-kunci sebelum putaran Feistel yang

pertama, dan 128-bit lagi setelah putaran Feistel terakhir. Sub-kunci ini

diperhitungkan dengan cara yang sama seperti sub-kunci putaran, tetapi tidak

digunakan di tempat lain dalam cipher.

6. Penjadwalan Kunci

Penjadwalan kunci adalah proses pengubahan bit-bit kunci menjadi sub-kunci tiap

putaran yang dapat digunakan oleh cipher. Twofish memerlukan banyak material

kunci dan memiliki penjadwalan kunci yang rumit. Untuk memfasilitasi analisis,

penjadwalan kunci menggunakan primitif yang sama seperti fungsi putaran.

2.6.3 Algoritma Twofish

Twofish merupakan algoritma kriptografi kunci simetrik cipher blok dengan panjang

setiap blok adalah tetap 128 bit. Sedangkan kunci yang dapat diterima adalah: 128,

192, atau 256 bit. Twofish memanfaatkan teknik pemanipulasian bit, kotak

(33)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

dengan jumlah perputaran dan pergiliran kunci sebanyak 16 kali, tranformasi

pseudo-Hadamard, ekspansi dan filter, dan kotak MDS (Most Distance Separable).

Berikut diagram dari blok cipher Twofish

[image:33.595.126.522.149.647.2]

Gambar 2.5 Struktur Algoritma Twofish

Langkah-langkah algoritma twofish adalah sebagai berikut:

1. Masukan satu blok plain teks adalah 128 bit. Satu blok tersebut dibagi menjadi

4 buah subblok yang masing-masing sepanjang 32 bit (A, B, C, dan D).

2. Masing-masing subblok tersebut diputihkan dengan mengxorkan dengan kunci

(34)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Langkah-langkah 1 putaran adalah sebagai berikut:

1. 2 buah 32 bit yang kiri (A dan B) merupakan input dari fungsi g (yang

merupakan bagian dari fungsi f), yang salah satunya (B) di geser ke kiri sejauh

8 bit dahulu.

2. Fungsi g memiliki 4 buah kotak substitusi yang dibangkitkan oleh kunci.

3. Keluaran fungsi kotak substitusi dilakukan percampuran linear menggunakan

kotak Most Distance Separable.

4. Keluaran fungsi g dimasukkan ke fungsi transformasi pseudo-Hadamard,

kemudian ditambahkan dengan 2 buah 32 bit dari kunci.

5. Dua buah 32 bit hasil kemudian di xorkan dengan C dan D. Hasil xor dengan

C digeser ke kanan sejauh 1 bit. Dan untuk D sebelum dixorkan digeser ke kiri

sejauh 1 bit.

6. 2 buah 32 bit kiri dan kanan dipertukarkan (A dan B dipertukarkan dengan C

dan D).

Langkah diatas dilakukan hingga 16 kali putaran. Kemudian langkah-langkah

selanjutnya:

1. Hasil keluaran setelah diputar 16 kali, ditukar lagi (A dan B diperukarkan

dengan C dan D).

2. Hasil dari pertukaran tersebut di xorkan dengan empat buah 32 bit dari kunci

menghasilkan cipher teks.

1. Fungsi F

Fungsi F adalah permutasi yang bergantung pada kunci dengan nilai 64 bit. Fungsi ini

(35)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

menentukan subkunci mana yang dipakai. R0 akan diserahkan ke fungsi g yang akan

mengembalikan T0. R1 akan digeser sejauh 8 bit yang kemudian di berikan juga ke

fungsi g yang akan mengembalikan T1. Hasil T0 dan T1 kemudian dikombinasikan

ulang menggunakan transformasi pseudo-Hadamard, yang kemudian ditambahkan

dengan dua buah 32 bit dari kunci.

T0 = g(R0)

T1 = g(shiftLeft(R1,8))

F0 = (T0+T1+K2r+8) mod 232

F1 = (T0+2T1+K2r+9) mod 232

F0 dan F1 adalah hasil dari F, yang masingmasing sepanjang 32 bit. Hasil keluaran ini

nantinya akan dipertukarkan dan dimasukkan kembali ke putaran selanjutnya.

2. Fungsi G

Fungsi g merupakan jantung dari keseluruhan algoritma twofish. 32 bit masukan X

dari fungsi F dipecah menajdi 4 buah yang masingmasing sepanjang 8 bit. Setiap 8 bit

kemudian diproses dengan kotak S yang bersesuaian. Setiap kotak S bersifat bijektif,

yaitu menerima 8 bit dan mengeluarkan 8 bit pula. 4 buah 8 bit hasil keluaran

kemudian dikalikan dengan matriks Most Distance Separable (MDS) 4x4. Hasil

pengalian kemudian diartikan sebagai 32 bit, yang merupakan keluaran dari fungsi g,

yang kemudian akan dikembalikan kembali ke fungsi F.

Matriks MDS yang setiap elemennya ditampilkan sebagai heksadesimal adalah

sebagai berikut:

2.7 Keamanan Twofish

Tingakat keamanan suatu algoritma kunci simetris tipe cipher blok dapat diukur dari

(36)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

digunakan dan tingkat pengacakan plainteks terhadap cipherteks. Algoritma Twofish

menggunakan jaringan Feistel dan kotak-S dalam implementasinya. Karena itu tingkat

keamanan algoritma ini juga dipengaruhi oleh cara penjadwalan kunci internal dan

cara pembangkitan kunci-S.

Semakin tinggi tingkat kerumitan suatu algoritma maka algoritma tersebut

semakin sulit dipecahkan. Semakin besar ukuran blok yang digunakan akan

mengakibatkan semakin jarangnya terdapat chiperteks berulang yang berasal dari

plainteks yang sama. Hal ini menyebabkan hubungan antara plainteks dan chiperteks

menjadi kabur, sehingga mempersulit kriptanalisis untuk melakukan penyerangan

terhadap algoritma kriptografi yang digunakan.

Ukuran panjang suatu kunci juga berpengaruh pada kekuatan algoritma.

Biasanya semakin panjang dan acak suatu kunci akan mempersulit penyerangan

algoritma kriptografi. Tingkat pengacakan plainteks dan cipherteks yang tinggi

mengakibatkan sulitnya mencari hubungan antara plainteks dan cipherteks. Hal ini

akan mempersulit kriptanalisis untuk melakukan penyerangan.

Kotak-S digunakan algoritma Twofish dalam fungsi f pada jaringan feistel.

Cara pembangkitan kotak-S ini mempengaruhi tingkat kerumitan pada fungsi f

tersebut. Ada dua macam pendekatan dalam pembangkitan kotak-S ini. Pertama

adalah pembangkitan kotak-S secara statis, pembangkitan secara statis ini berarti

kotak-S yang digunakan tidak bergantung pada plainteks dan kunci yang dimasukkan.

Pendekatan kedua adalah pembangkitan kotak-S secara dinamis. Pembangkit dinamis

ini biasanya diimplementasikan dengan menggunakan fungsi bilangan acak.

(37)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

PEMBAHASAN

3.1 Analisa Masukan

Masukan dari aplikasi enkripsi dengan algoritma twofish adalah adalah plaintext dan

kunci. Plaintext dapat berupa file teks,file grafik,file sound dan lain sebagainya. Kunci

dimasukkan secara manual setelah proses input plaintext.

3.2 Analisa Kebutuhan Perangkat Keras dan Perangkat Lunak

Perangkat keras yang digunakan ketika menguji implementasi dari algoritma twofish

ini adalah sebagai berikut :

1. Procesor Pentium IV 1,8D GHz

2. Memory 512 MB

3. Hard Disk 40 GB

4. O/S Windows XP

5. Monitor Samsung 17’’

Sedangkan perangkat lunak yang digunakan adalah sebagai berikut :

1. Sistem Operasi Windows XP

2. Microsoft Visual Basic 6.0

3. Microsoft Visio 2003

3.3 Analisa Proses Enkripsi

Ukuran blok chipper simetries yang digunakan untuk enkripsi data pada algoritma

Twofish adalah 128 bit. Tahap dalam enkripsi dengan menggunakan algoritma

(38)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

1. Penjadwalan

2. Pembagian Plaintext dan proses subsitusi

3.4 Analisa Prosedural

Analisa prosedural merupakan analisa implementasi pada pemrograman sistem.

Sistem yang dimaksud disini adalah analisa sistem pemograman enkripsi dengan

menggunakan algoritma twofish.

3.4.1 Pembangkitan Kunci

Jumlah kunci internal yang harus dibangkitkan adalah sejumlah 40 kunci

masing-masing 32 bit (K0 hingga K39). Dan juga dibutuhkan pembangkitan 4 buah kotak

substitusi dari yang bergantung pada kunci. Twofish dapat menerima kunci sepanjang

128, 192, dan 256 bit (N).

Kemudian terdefinisi k=N/64. Kunci M terdiri dari 8k byte, m0, ..., m8k-1.

Byte-byte tersebut pertama-tama diubah menjadi 2k buah yang masing-masing terdiri dari

32 bit.

Hasil fungsi diatas kemudian digolongkan menjadi dua buah, ganjil dan genap.

Me = (M0, M2, ..., M2k-2)

Mo = (M1, M3, ..., M2k-1)

Selanjutnya adalah kotak S. Langkah pertama adalah dengan

mengelompokkan kunci tersebut dikalikan dengan matriks 4x8 yang diturunkan dari

RS. Setiap hasil sepanjang 4 byte duartikan sebagai satu buah 32 bit, menghasilkan

(39)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Hasil keluaran tahap ini adalah 2 buah matriks, matriks M genap dan matriks M ganjil,

dan sebuah matriks kotak substitusi.

Adapun algoritma untuk membangkitan kunci adalah sebagai berikut

Tahap I :

Pada tahap pertama adalah pengujian ukuran kunci apakah sudah memenuhi syarat berikut pseudocode untuk menguji kunci :

If (KeyLength > 192) Then

ReDim Preserve Key(31)

KeyLength = 256

ElseIf (KeyLength > 128) Then

ReDim Preserve Key(23)

KeyLength = 192

ElseIf (KeyLength > 64) Then

ReDim Preserve Key(15)

KeyLength = 128

ElseIf (KeyLength > 32) Then

ReDim Preserve Key(7)

KeyLength = 64

Else

ReDim Preserve Key(3)

KeyLength = 32

End I

Tahap II :

Pada tahap kedua adalah pembentukan kunci yang tergantung pada S-box

pseudocodenya adalah:

Private Static Sub KeyCreate(K() As Byte, KeyLength As Long)

Dim i As Long

Dim lA As Long

(40)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Dim b(3) As Byte

Dim k64Cnt As Long

Dim k32e(3) As Long

Dim k32o(3) As Long

Dim subkeyCnt As Long

Dim sBoxKey(3) As Long

Dim Key(0 To 3, 0 To 3) As Byte

Const SK_STEP = &H2020202

Const SK_BUMP = &H1010101

Const SK_ROTL = 9

k64Cnt = KeyLength \ 8

subkeyCnt = ROUND_SUBKEYS + 2 * ROUNDS

For i = 0 To IIf(KeyLength < 32, KeyLength \ 8 - 1, 3)

Call CopyMem(k32e(i), K(i * 8), 4)

Call CopyMem(k32o(i), K(i * 8 + 4), 4)

sBoxKey(KeyLength \ 8 - 1 - i) =

RS_Rem(RS_Rem(RS_Rem(RS_Rem(RS_Rem(RS_Rem(RS_Rem(RS_Rem(k32o(i)

)))) Xor k32e(i)))))

Next

ReDim sKey(subkeyCnt)

For i = 0 To ((subkeyCnt / 2) - 1)

lA = F32(k64Cnt, i * SK_STEP, k32e)

lB = F32(k64Cnt, i * SK_STEP + SK_BUMP, k32o)

lB = lBSL(lB, 8) Or lBSRU(lB, 24)

If (m_RunningCompiled) Then

lA = lA + lB

Else

lA = UnsignedAdd(lA, lB)

End If

sKey(2 * i) = lA

If (m_RunningCompiled) Then

(41)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Else

lA = UnsignedAdd(lA, lB)

End If

sKey(2 * i + 1) = lBSL(lA, SK_ROTL) Or lBSRU(lA, 32 -

SK_ROTL)

Next

Call CopyMem(Key(0, 0), sBoxKey(0), 16)

For i = 0 To 255

If ((k64Cnt And 3) = 1) Then

sBox(2 * i) = MDS(0, P(0, i) Xor Key(0, 0))

sBox(2 * i + 1) = MDS(1, P(0, i) Xor Key(1, 0))

sBox(&H200 + 2 * i) = MDS(2, P(1, i) Xor Key(2, 0))

sBox(&H200 + 2 * i + 1) = MDS(3, P(1, i) Xor Key(3, 0))

Else

b(0) = i

b(1) = i

b(2) = i

b(3) = i

If ((k64Cnt And 3) = 0) Then

b(0) = P(1, b(0)) Xor Key(0, 3)

b(1) = P(0, b(1)) Xor Key(1, 3)

b(2) = P(0, b(2)) Xor Key(2, 3)

b(3) = P(1, b(3)) Xor Key(3, 3)

End If

If ((k64Cnt And 3) = 3) Or ((k64Cnt And 3) = 0) Then

'(exception = True) Then

b(0) = P(1, b(0)) Xor Key(0, 2)

b(1) = P(1, b(1)) Xor Key(1, 2)

b(2) = P(0, b(2)) Xor Key(2, 2)

b(3) = P(0, b(3)) Xor Key(3, 2)

End If

sBox(2 * i) = MDS(0, P(0, P(0, b(0)) Xor Key(0, 1)) Xor

(42)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

sBox(2 * i + 1) = MDS(1, P(0, P(1, b(1)) Xor Key(1, 1))

Xor Key(1, 0))

sBox(&H200 + 2 * i) = MDS(2, P(1, P(0, b(2)) Xor Key(2,

1)) Xor Key(2, 0))

sBox(&H200 + 2 * i + 1) = MDS(3, P(1, P(1, b(3)) Xor

Key(3, 1)) Xor Key(3, 0))

End If

Next

End Sub

3.4.2 Pembagian Plaintext

Plainteks dibagi menjadi beberapa blok, setiap blok (P1,….) memiliki panjang 128

bit, kemudian setiap blok dibagi menjadi 4 bagian (K0 K1, K 2, K 3).

Selanjutnya masing-masing bagian diolah dengan menggunakan proses

whitening masukan terdapat di xor dengan empat kata kunci. Proses ini akan diikuti

oleh enam belas putaran. Adapun pseudocode pada pembagian plaintext adalah

sebagai berikut :

1. Panggil GetWord(LeftWord, ByteArray(), Offset)

2. Panggil GetWord(LeftWord, ByteArray(), Offset + 4)

Pseudocode untuk fungsi GetWord adalah sebagai berikut:

1. CryptBuffer(3) = bb(Offset)

2. CryptBuffer(2) = bb(Offset + 1)

3. CryptBuffer(1) = bb(Offset + 2)

4. CryptBuffer(0) = bb(Offset + 3)

5. Panggil CopyMem(LongValue, CryptBuffer(0),4)

Untuk pengembalian nilainya, data kiri ataupun kanan akan dipisah kembali menjadi 4

bilangan (masing-masing 8 bit). Pseudocodenya sebagai berikut:

(43)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

2. Panggil PutWord(LeftWord, ByteWord(), Offset + 4)

Pseudocode untuk fungsi PutWord adalah sebagai berikut:

1. Panggil CopyMem(CryptBuffer(0), LongValue, 4)

2. aByte(Offset) = CryptBuffer(3)

3. aByte(Offset + 1) = CryptBuffer(2)

4. aByte(Offset + 2) = CryptBuffer(1)

5. aByte(Offset + 3) = CryptBuffer(0)

3.4.3Proses Subtitusi

Setelah dibentuk subkey, dilanjutkan dengan melakukan enkripsi plaintext sebanyak

16 putaran dengan operasi:

Li = Ri-1

Ri = Li-1 xor f(Ri-1,Ki)

Adapun pseudocode untuk proses subtitusi adalah sebagai berikut :

For Offset = 0 To (CipherLen - 1) Step 16

Call CopyMem(DWord(0), ByteArray(Offset), 16)

DWord(0) = DWord(0) Xor CipherWord(0)

DWord(1) = DWord(1) Xor CipherWord(1)

DWord(2) = DWord(2) Xor CipherWord(2)

DWord(3) = DWord(3) Xor CipherWord(3)

Call EncryptBlock(DWord())

Call CopyMem(ByteArray(Offset), DWord(0), 16)

Call CopyMem(CipherWord(0), DWord(0), 16)

(44)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

3.5 Perancangan Flowchart

[image:44.595.154.480.196.596.2]

Adapun flowchart dari program enkripsi dan deksripsi adalah sebagai berikut:

Gambar 3.1 Flowchart Aplikasi Enkripsi/Dekripsi Algoritma Twofish

Mulai

Tampilan Form Utama

Selesai Enkripsi

Input File

Masukkan Kunci

Enkripsi Dekripsi

Tampilkan Hasil

Dekripsi

Y

T T

Y

T T

(45)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

3.6 Implementasi

Implementasi dari algoritma twofish dibuat dengan menggunakan bahasa

pemograman Visual Basic 6.0. Berikut tampilan dari implementasi algoritma Twofish.

[image:45.595.124.507.267.558.2]

Aplikasi ini terdiri dari 2 tab yaitu enkripsi, dekripsi.

Gambar 3.2 Form Tab Enkripsi

Tab berisi nama file yang akan di ekripsi. Untuk memasukkan nama file yang

dienkripsi dapat mengklik tombol buka. Untuk pengisian kunci, isi kunci pada isian

pertama dan ulangi sekali lagi. Untuk mengenkrpi file terpilih klik tombol enkrip.

Untuk melihat hasil dari file yang telah di enkripsi, file tersebut dapat dilihat

(46)
[image:46.595.141.515.118.392.2]

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Gambar 3.3 Hasil Enkripsi

Sedangkan untuk proses dekripsi, pilih tab dekripsi, cara penggunaan sama

dengan tab enkripsi . Berikut tampilan dari tab dekripsi.

[image:46.595.125.507.418.691.2]
(47)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

3.7 Percobaan Enkripsi dan Dekripsi

Berikut terdapat data hasil uji coba enkripsi dan dekripsi algoritma Twofish.

Percobaan ini dilakukan dengan panjang kunci 10 karakter. Percobaan ini dilakukan

untuk mengukur kecepatan proses enkripsi dan dekripsi dari algoritma Twofish.

Ukuran file yang digunakan berbeda-beda, sehingga dapat dilihat kecepatan proses

[image:47.595.106.533.268.425.2]

enkripsi dan dekripsi.

Tabel 3.1 Hasil Percobaan dengan Kunci 10 Karakter

No Nama File Ukuran File Sumber

(Byte)

Waktu Komputasi (Detik)

Enkripsi Dekripsi

1. Deny_report.doc 234,496 2.49 2.4

2. KriptoTWOFISH.doc 79,360 0.93 0.88 3. Enkripsi-Dekripsi.pdf 78,875 0.96 0.89 4. Makalah1-004.pdf 245,964 2.67 2.51

5. DSC00438.jpg 67,167 0.81 0.75

6. Foto(17).jpg 137,529 1.58 1.43

7. Slide Proposal.ppt 241,664 2.64 2.45 8. Pengantar Kriptografi.ppt 912,896 9.61 9.06 9. Yang Terlewatkan.mp3 4,004,595 42.06 39.26

Dapat terlihat juga bahwa file dengan ukuran yang lebih besar akan diproses

lebih lama dibandingkan dengan file yang berukuran lebih kecil.

Kecepatan komputasi dalam proses enkripsi dan dekripsi kadang-kadang

terdapat perbedaan meskipun di uji dalam satu komputer. Hal ini dikarenakan

kecepatan komputer tidak persis sama dalam setiap detik. Hal ini dapat dibuktikan

dengan membuka task manager seperti pada gambar di bawah ini :

Gambar 3.5 Task Manager Windows XP

Nilai persentase pada CPU Usage selalu berubah, aplikasi dan service yang

[image:47.595.257.412.580.687.2]
(48)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

3.8 Twofish Untuk Integritas Data

Pada saat mengirimkan pesan agar pesan yang dikirimkan tersebut sampai di tujuan

dengan aman serta tidak mengalami campur tangan pihak lain. Syarat ini menjadi jauh

lebih utama, apabila pesan yang dikirimkan tergolong pesan rahasia.

Pada pesan dikirimkan, pesan tersebut akan melalui berbagai jenis komputer,

router atau gateway dan melintasi berbagai macam media fisik komunikasi.

Tujuannya adalah mencegah terjadinya perubahan pesan ketika sedang dalam proses

transmisi data terhadap pesan yang dikirimkan maupun pesan yang diterima. Jika

seorang penyadap melakukan perubahan data, maka penyadap tersebut akan

memperoleh pesan-pesan yang terenkripsi saja sehingga tidak mencerminkan isi pesan

yang sebenarnya.

Jika menginginkan isi pesan tetap terjaga keasliannya (tidak diubah oleh orang

yang tidak berhak), maka struktur twofish dapat mengakomendasikan banyak blok

dan kunci pada berbagai 32 bit dengan penukaran pada nomor putaran.

Berikut contoh proses enkripsi dan dekripsi file dengan melakukan perubahan

(49)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Contoh 1

File : proposal.doc

Kunci : bunda

Cipherteks : proposal.doc.twf

Proposal.doc

(50)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Kemudian dilakukan perubahan dengan cara melakukan perubahan pada kunci.

cipherteks : proposal.doc.twf

kunci : undab

plainteks : proposal.doc

Di dalam twofis jika terjadi perubahan kunci hasilnya tidak akan terbaca lagi, dan

(51)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

BAB 4

KESIMPULAN DAN SARAN

4.1Kesimpulan

Adapun kesimpulan yang dapat diperoleh adalah:

1. Twofish memiliki algoritma enkripsi dan penjadwalan kunci yang dibuat

berpasangan, perubahan pada satu bagian mempengaruhi bagian lainnya. Hal

ini disebabkan tidak cukup jika hanya mendesain fungsi round yang kuat dan

menerapkan penjadwalan kunci yang kuat pada funsi tersebut, keduanya harus

selalu dikerjakan bersama.

2. Dari hasil ujicoba yang telah dilakukan lama proses yang diperlukan untuk

enkripsi dan dekripsi tidak nampak perbedaan yang begitu jauh.

3. Key harusnya dibuat sependek mungkin. Dianggap sangat berat untuk

mendesain suatu algoritma dengan key panjang jika dibandingkan dengan

algoritma yang menggunakan key pendek.

4.2Saran

Sebagai saran yang ditujukan kepada pembaca yang ingin melakukan enkripsi dan

(52)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

ini hanya dalam cakupan kecil dan benar-benar sangat mendasar yang menggunakan

bahasa pemrograman Microsoft Viaual Basic 6.0

Untuk itu penulis berharap agar pembaca dapat mengembangkannya baik

dalam menganalisa maupun mengimplementasikannya kedalam bahasan

pemrograman lain. Terutama dalam menganalisa tujuan dari ilmu kriptografi itu

sendiri yaitu menyangkut tentang kerahasian, integritas data, autentikasi dan non

(53)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

DAFTAR PUSTAKA

[1] Andi. 2003. Memahami Model Enkripsi dan Security Data. Yogyakarta: Penerbit Andi.

[2] Ariyus, Dony. 2005. Computer Security. Yogyakarta: Penerbit Andi.

[3] Ariyus, Dony. 2006. Kriptografi Keamanan Data dan Komunikasi. Yogyakarta: Graha Ilmu.

[4] Ariyus, Dony. 2008. Pengantar Ilmu Kriptografi Teori, Analisis, dan

Implementasi. Yogyakarta: Penerbit Andi.

[5] Delfs, Hans dan Helmut Knebl, 2007. Introduction to Cryptography Principles

and Aplications. New York : Springer.

[6] Munir, Rinaldi. 2006. Kriptografi. Bandung: Informatika.

[7] Mukmin, Indra. Algoritma Twofish:Kinerja dan Implementasinya Sebagai Salah

Satu Kandidat Algoritma AES(Advanced Encryption Standard). Bandung:

Informatika ITB.

(54)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

LISTING PROGRAM

Dim OFile As String

Dim OFile2 As String

Private WithEvents Twofish As clsTwofish

Private Sub Twofish_Progress(Percent As Long)

Select Case SSTab1.Tab

Case 0

Me.LblProg.Caption = Percent & " %"

Me.Prog.Value = Percent

DoEvents

Case 1

Me.lblProg2.Caption = Percent & " %"

Me.Prog2.Value = Percent

DoEvents

Case 2

End Select

End Sub

Private Sub cmdDekrip_Click()

Dim oldtimer As Single, hasil As Double

oldtimer = Timer

If Me.txtDekrip.Text = "" Then

Exit Sub

Else

Me.lblp2.Caption = ""

Dim l As Integer

Dim StatusEnkrip As Boolean

Dim Ln As Integer

Ln = Len(txtDekrip.Text)

(55)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

'MsgBox txtDekrip.Text

On Error Resume Next

Kill OFile2

On Error GoTo 0

Call Twofish.DecryptFile(txtDekrip.Text, OFile2, Me.Text6.Text)

hasil = Timer - oldtimer

Me.lblp2.Caption = Round(hasil, 2) & " detik"

MsgBox "Proses Dekripsi Selesai"

End If

End Sub

Private Sub cmdEnkrip_Click()

Dim oldtimer As Single, hasil As Double

If Me.Text1.Text = "" Then Exit Sub

If Me.Text2.Text = "" Or Me.Text5.Text = "" Then

MsgBox " Masukkan Kunci", vbCritical, "Masukkan Kunci"

Exit Sub

End If

If Me.Text2.Text <> Me.Text5.Text Then

MsgBox " Kunci tidak sama,Ulangi memasukkan kunci",

vbExclamation, "Kunci"

Me.MousePointer = vbNormal

Exit Sub

End If

'Me.RtfEnkripsi.Text = ""

Dim StatusEnkrip As Boolean, l As Integer

l = Len(Me.Text1.Text)

OFile = Me.Text1.Text & "." & "twf" 'Mid(Text1.Text, 1, l - 3) & "twf"

MsgBox OFile

oldtimer = Timer

Me.MousePointer = vbHourglass

Twofish.EncryptFile Me.Text1.Text, OFile, Me.Text2.Text

'If StatusEnkrip = twofish.EncryptFile(Me.Text1.Text, OFile, True,

Me.Text2.Text) = False Then

hasil = Timer - oldtimer

(56)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

MsgBox "Proses Enkripsi Selesai"

'Else

'MsgBox "Proses Enkripsi Gagal"

'End If

Me.MousePointer = vbNormal

End Sub

Function ReadTextFileContents(Filename As String) As String

Dim fnum As Integer, isOpen As Boolean

On Error GoTo Error_Handler

fnum = FreeFile()

Open Filename For Input As #fnum

isOpen = True

ReadTextFileContents = Input(LOF(fnum), fnum)

Error_Handler:

MsgBox Err.Description

If isOpen Then Close #fnum

' If Err Then Err.Raise Err.Number, , Err.Description

End Function

Private Sub CmdMasukkan2_Click()

Me.CommonDialog1.Filter = "Twofish Files|*.twf"

Me.CommonDialog1.Filename = ""

Me.CommonDialog1.ShowOpen

On Error Resume Next

Dim nmfile As String

nmfile = Me.CommonDialog1.Filename

If nmfile <> "" Then

Me.txtDekrip.Text = nmfile

Me.cmdDekrip.Enabled = True

Me.cmdView2.Enabled = True

Me.lblFIlelen2.Caption = Format(FileLen(nmfile), "#,###") & " byte"

End If

(57)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Private Sub cmdMasukkanFIile_Click()

Me.CommonDialog1.Filter = "All Files|*.*"

Me.CommonDialog1.ShowOpen

On Error Resume Next

Dim nmfile As String

nmfile = Me.CommonDialog1.Filename

If nmfile <> "" Then

Me.Text1.Text = nmfile

Me.Text2.Text = ""

Me.Text5.Text = ""

Dim l As Integer

l = Len(Me.Text1.Text)

Me.cmdView.Enabled = True

Me.cmdEnkrip.Enabled = True

Me.lblFilelen.Caption = Format(FileLen(nmfile), "#,###") & " byte"

Me.lblP.Caption = ""

Text1.SetFocus

End If

End Sub

Private Sub cmdTampilkHasil_Click()

On Error GoTo ERRHANDLE

If OFile <> "" Then

Call ShellExecute(hwnd, "Open", OFile, "", App.Path, 1)

End If

Exit Sub

ERRHANDLE:

MsgBox Err.Description, vbCritical, "Error" & Err.Number

End Sub

Private Sub cmdTampilkHasil2_Click()

On Error GoTo ERRHANDLE

(58)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Call ShellExecute(hwnd, "Open", OFile2, "", App.Path, 1)

End If

Exit Sub

ERRHANDLE:

MsgBox Err.Description, vbCritical, "Error" & Err.Number

End Sub

Private Sub cmdView_Click()

Dim Opfile As String

Opfile = Trim(Me.Text1.Text)

If Opfile <> "" Then

Call ShellExecute(hwnd, "Open", Opfile, "", App.Path, 1)

End If

End Sub

Private Sub Command4_Click()

End Sub

Private Sub cmdView2_Click()

Dim Opfile As String

Opfile = Trim(Me.txtDekrip.Text)

If Opfile <> "" Then

Call ShellExecute(hwnd, "Open", Opfile, "", App.Path, 1)

End If

End Sub

Private Sub Command1_Click()

frmConverter.Show

End Sub

Private Sub Form_Load()

Set Twofish = New clsTwofish

(59)

Seti Fauziah Tumanggor : Studi Enkripsi Dan Dekripsi File Dengan Menggunakan Algoritma Twofish, 2009. USU Repository © 2009

Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, x

As Single, Y As Single)

Me.PicHelp.Visible = False

Me.picHelp2.Visible = False

End Sub

Private Sub Frame3_MouseMove(Button As Integer, Shift As Integer, x

As Single, Y As Single)

Me.Picture2.Visible = False

Me.Picture1.Visible = False

End Sub

Private Sub Image1_Click()

Me.picHelp2.Visible = True

End Sub

Private Sub Image2_Click()

Me.Picture1.Visible = True

End Sub

Private Sub Image3_Click()

Me.Picture2.Visible = True

End Sub

Gambar

Tabel 3.1 Hasil Percobaan dengan kunci 10 karakter
Gambar 2.2 Proses DekripsiGambar 2.1 Proses Enkripsi  Gambar 2.3 Diagram proses enkripsi dan dekripsi algoritma simetris
Gambar 2.1 Proses Enkripsi
Gambar 2.3  Diagram proses enkripsi dan dekripsi algoritma simetris Sebelum melakukan pengiriman pesan, pengirim dan penerima harus memilih
+7

Referensi

Dokumen terkait

Sebagai saran yang ditujukan kepada pembaca yang ingin menggunakan algoritma RSA dan Triple DES dalam proses enkripsi dan dekripsi, agar dapat memproses tipe file yang lain

Dari berbagai macam algoritma kriptografi, Algoritma RC4 dan Rijndael adalah algoritma yang dapat digunakan untuk enkripsi dan dekripsi pesan.. Pada penelitian ini, aplikasi

Pada proses pengambilan data untuk masing – masing file didapatkan bahwa algoritma 3DES yang paling lambat dalam proses enkripsi maupun dekripsi.. Ini berlaku untuk semua

Pada penelitian ini proses enkripsi dan dekripsi pesan menggunakan algoritma simetri yaitu affine cipher dengan metode matriks menggunakan kunci sesi, sedangkan untuk mengamankan

Ditinjau dari kecepatan dalam proses enkripsi dan dekripsi dan ukuran file yang dihasilkan setelah enkripsi algoritma rijndael lebih unggul, sedangkan jika

Plaintext Algoritma Enkripsi Chipertext Algoritma Dekripsi Plaintext Pembuatan Kunci Kunci Publik Penerima Pengirim Kunci Privat.. Dari gambar di atas terlihat bahwa

Pada aplikasi ini perangkat keras yang digunakan adalah smartphone dengan sistem operasi android versi 2.3 (Gingerbread) untuk sarana penerapan aplikasi enkripsi dan dekripsi

Untuk itu perlunya sebuah keamanan dengan cara enkripsi dan dekripsi data email menggunakan algoritma kriptografi Rivest Code 2 (RC2).. Dalam algoritma kriptografi Rivest