IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

114
IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN MENGGUNAKAN ALGORITMA GOST SKRIPSI Disusun Oleh : Heni Pratiwi NIM : 035314012 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS SANATA DHARMA YOGYAKARTA 2007

Transcript of IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

Page 1: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN

MENGGUNAKAN ALGORITMA GOST

SKRIPSI

Disusun Oleh :

Heni Pratiwi

NIM : 035314012

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2007

Page 2: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

2

IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN

MENGGUNAKAN ALGORITMA GOST

SKRIPSI

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik

Jurusan Teknik Informatika

Disusun Oleh :

Heni Pratiwi

NIM : 035314012

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2007

Page 3: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

3

IMPLEMENTATION OF DOCUMENTS ENCRYPTION AND

DECRYPTION USING GOST ALGORITHM

A THESIS

Presented as Partial Fulfillment of the Requirements

to Obtain the Sarjana Teknik Degree

in Department of Informatics Technology

Created by:

Heni Pratiwi

NIM : 035314012

DEPARTMENT OF INFORMATICS TECHNOLOGY

FACULTY OF ENGINEERING

SANATA DHARMA UNIVERSITY

YOGYAKARTA2007

Page 4: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

4

Page 5: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

5

Page 6: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

6

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak

memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam

kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, 23 April 2007

Penulis

Heni Pratiwi

Page 7: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

7

Halaman Persembahan

Skripsi ini kupersembahkan untuk :

Tuhan Yesus-ku sumber kekuatan dan sumber segalanya

yang selalu memberkati dan menyertaiku.

Bapak dan Ibuku, ungkapan rasa hormat, cinta

dan baktiku

Kakak - kakakku yang selalu mendukungku dan

mendoakanku

Dosen dosenku yang telah memberikan ilmu pengetahuan

pada saya

Teman-temanku yang selalu membantu dan

menyemangatiku

Kekasih hatiku, sumber semangat dan pendamping setiaku

Page 8: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

8

Halaman Motto

Dekatkan dirimu kepada Tuhan dan serahkanlah segala

kekuatiran, kebencian, dan ketakutanmu. Ia pasti

memeliharamu. (1 Petrus 5:6-7).

Kerjakanlah sesuatu secara tulus dan wajar, dan

segalanya akan baik. Kesempurnaan terletak pada

motivasi kerja, bukan pada pekerjaan. (Guru Ching Hai).

Kesengsaraan menimbulkan ketekunan, dan ketekunan

menimbulkan tahan uji, dan tahan uji menimbulkan pengharapan.

(Roma 5:3-4).

Page 9: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

9

IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMENMENGGUNAKAN ALGORITMA GOST

Heni Pratiwi035314012

ABSTRAKSI

Jika ada data penting yang harus dilindungi kerahasiaannya, makadiperlukan suatu teknik untuk mengamankan data tersebut. Salah satu teknik yangdigunakan yaitu dengan melakukan enkripsi. Enkripsi adalah teknik pengkodeandata oleh algoritma tertentu yang membuat data tidak bisa dibaca oleh programapa saja tanpa kunci decryption. Enkripsi juga dapat digunakan untuk melakukanproteksi pada saat data ditransmisikan melalui jalur komunikasi. Salah satu teknikenkripsi yang digunakan adalah symmetric encryption, yaitu menggunakan kunciyang sama untuk proses enkripsi dan dekripsi. Kunci simetris (symmetricencryption) yang digunakan merupakan kesepakatan antara pengirim danpenerima pesan.

Dalam tugas akhir ini akan menggunakan Algoritma Gost. Algoritma initermasuk dalam symmetric encryption. Algoritma ini dapat mengkodekan isiberkas dokumen asli dalam kode-kode tertentu agar tidak bisa dibaca orang lainyang tidak berhak. Algoritma ini merupakan blok cipher 64 bit dengan panjangkunci 256 bit. Pada tugas akhir ini akan menggunakan bahasa pemrogramanDelphi. Dalam tugas akhir ini akan mencari kecepatan proses dan rerata rasioketiga tipe berkas (.txt,.doc,.rtf). Berkas dokumen yang digunakan untuk uji cobaberjumlah enam buah dengan berbagai ukuran.

Percobaan dilakukan sebanyak tiga kali untuk masing-masing berkas, laludiambil rata-rata waktunya. Kemudian dari rata-rata waktu tersebut dapat dihitungrerata waktu dan rerata rasio untuk ketiga tipe berkas. Hasil percobaanmenunjukkan bahwa semakin besar ukuran berkas maka semakin lama pula waktuprosesnya.

Page 10: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

10

IMPLEMENTATION OF DOCUMENTS ENCRYPTION ANDDECRYPTION USING GOST ALGORITHM

Heni Pratiwi035314012

ABSTRACT

If any important data that must be protect, then it will be need sometechnique to save the data. One of technique is encryption. Encryption is datacoding of some algorithm which can make the data unreadable without decryptionkey. Encryption also can protect the data when its transferred in communicationnetwork. One of techniques of encryption is symmetric encryption, which usingthe same key for encryption and decryption processing. But first, sender andreceiver have a deal for the key that used for this encryption.

On this final project will use Gost Algorithm. This algorithm include insymmetric encryption. This algorithm can make some code in original documentswhich can not read for someone else who don’t have right. This algorithm have 64cipher block with key length 256 bit. This final project will use Delphiprogramming language. On this final project will looking for the speed of timeand rasio average between three type of documents (.txt,.doc,.rtf). There are sixdocuments that used on this project with various size.

There are three times for testing for each documents, then get the timeaverage. After that, it can use to calculate the time average and ratio average forthe three type of documents. The result of testing show that the bigger the size ofdocuments the longer the time.

Page 11: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

11

KATA PENGANTAR

Puji syukur penulis haturkan kepada Tuhan Yang Maha Esa atas segala

karunia dan berkat yang diberikan, sehingga penulis dapat menyelesaikan skripsi

yang berjudul “IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN

MENGGUNAKAN ALGORITMA GOST” ini dengan baik. Penulisan skripsi ini

merupakan salah satu syarat untuk memperoleh gelar Sarjana Teknik pada

Program Studi Teknik Informatika di Universitas Sanata Dharma.

Selama penulisan skripsi ini penulis telah memperoleh bantuan dan

bimbingan dari berbagai pihak. Oleh karena itu penulis mengucapkan terima kasih

kepada:

1. Ibu A.M. Polina, selaku Ketua Jurusan Teknik Informatika Universitas Sanata

Dharma.

2. Bapak Eko Hari Parmadi selaku dosen pembimbing yang telah banyak

membantu dan membimbing selama penulis mengerjakan tugas akhir ini.

3. Ibu Rita Widiarti dan Bapak Joko Nugroho yang telah memberikan banyak

masukan dan bimbingannya.

4. Bapakku Hadrianus Muryono, Ibuku Margareta Sugiyati, serta kedua

kakakku, Antonius Dwi Murdiyanto dan Agustinus Rinto Sukarno, yang telah

memberikan dorongan baik moril maupun materiil, dan yang selalu

menyemangatiku serta mendoakanku.

5. Mas Fadhal yang telah memberikan banyak latihan dan masukan, juga

terimakasih atas testing programnya.

Page 12: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

12

6. Teman-teman terbaikku : Ratih Maharani ”Pigem”, Marcellia Kusuma”,

Kristina Novita Dewi, Antonia Isti Wijayanti. Thanks to be my best friend.

7. Teman-teman TI : Teeka (TI’03), Onezzt (TI’03), Ako (TI’03), Ina (TI’03),

Yansen (TI’03), Monik (TI’03), Mas Radith (TI’02), Mas Meganz (TI’02),

Andhika (TI’02), dan teman-teman lainnya, thanks a lot guys .

8. Teman-teman Alumni SMUN 9: Winda, Narti, Puspa, Dita, Ganjur, Dimas,

Feri, dan teman-teman lainnya atas dukungan serta doanya.

9. My Soulmate : Paulinus Prihnugroho Dwi Yulianto (Alumni TI’00). Terima

kasih atas segala rasa cinta dan kasih sayang yang kamu berikan. I Love You.

10. Semua pihak yang tidak dapat penulis sebutkan satu persatu, yang telah

memberikan dukungan serta bantuannya guna penyusunan skripsi ini

Penulis menyadari sepenuhnya bahwa Tugas Akhir ini masih jauh dari

kesempurnaan dan masih banyak kekurangan. Oleh karena itu penulis sangat

mengharapkan kritik dan saran yang bersifat membangun demi perbaikan lebih

lanjut. Penulis berharap semoga Tugas Akhir ini dapat bermanfaat bagi pembaca.

Yogyakarta, 23 April 2007

Penulis

Page 13: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

13

DAFTAR ISI

HALAMAN JUDUL ................................................................................... i

HALAMAN PERSETUJUAN ................................................................... iii

HALAMAN PENGESAHAN .................................................................... iv

HALAMAN PERNYATAAN KEASLIAN KARYA.................................. v

HALAMAN PERSEMBAHAN ................................................................. vi

HALAMAN MOTTO............................................................................... vii

ABSTRAKSI........................................................................................... viii

ABSTRACT .............................................................................................. ix

KATA PENGANTAR ................................................................................ x

DAFTAR ISI ............................................................................................ xii

DAFTAR GAMBAR ................................................................................ xv

DAFTAR TABEL .................................................................................. xvii

BAB I PENDAHULUAN

1.1. Latar Belakang Masalah ....................................................................... 1

1.2. Rumusan Masalah ................................................................................ 2

1.3. Batasan Masalah .................................................................................. 2

1.4. Tujuan Penulisan.................................................................................. 3

1.5. Metodologi Penelitian .......................................................................... 3

1.5.1. Studi Literatur ................................................................................... 3

1.5.2. Analisis Sistem.................................................................................. 3

1.5.3. Perancangan Sistem........................................................................... 4

1.5.4. Pembuatan Program .......................................................................... 4

1.5.5. Uji Coba Program ............................................................................. 4

1.6. Sistematika Penulisan........................................................................... 4

Page 14: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

14

BAB II LANDASAN TEORI

2.1. Kriptografi ........................................................................................... 6

2.1.1. Algoritma Kriptografi........................................................................ 7

2.1.2. Blok Cipher....................................................................................... 9

2.1.3. S-Boxes........................................................................................... 10

2.2. Algoritma Gost .................................................................................. 10

2.2.1 Enkripsi............................................................................................ 16

2.2.2 Dekripsi ........................................................................................... 22

BAB III ANALISIS DAN PERANCANGAN

3.1. Analisis Sistem .................................................................................. 24

3.1.1. Desain Alur Data............................................................................. 24

3.1.2. Diagram Alir ................................................................................... 26

3.2. Analisis Kebutuhan Sistem................................................................. 30

3.3. Perancangan (Desain) User Interface.................................................. 30

3.3.1. Desain Splash Screen ...................................................................... 31

3.3.2. Desain Main Form........................................................................... 31

3.3.3. Desain Form Enkripsi File............................................................... 32

3.3.4. Desain Form Dekripsi File .............................................................. 33

3.3.5. Desain Form Bantuan...................................................................... 34

3.3.6. Desain Form Tentang Aku .............................................................. 35

BAB IV IMPLEMENTASI DAN ANALISIS HASIL

4.1. Implementasi User Interface............................................................... 36

4.1.1. Form Splash Screen......................................................................... 36

4.1.2. Main Form ...................................................................................... 37

4.2. Uji Coba Program .............................................................................. 55

4.3. Hasil Uji Coba ................................................................................... 57

4.4. Kelebihan dan Kekurangan Program .................................................. 59

4.4.1. Kelebihan........................................................................................ 59

4.4.2. Kekurangan..................................................................................... 60

Page 15: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

15

BAB V PENUTUP

5.1. Kesimpulan ........................................................................................ 61

5.2. Saran.................................................................................................. 62

DAFTAR PUSTAKA

LAMPIRAN

Page 16: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

16

DAFTAR GAMBAR

Gambar 2.1. Enkripsi dan Dekripsi Sederhana...........................................7

Gambar 2.2. Enkripsi dan Dekripsi dengan Kunci Publik ..........................9

Gambar 2.3. Algoritma Gost untuk Enkripsi ...........................................12

Gambar 2.3.1. Lanjutan Algoritma Gost untuk Enkripsi.............................13

Gambar 2.4. Algoritma Gost untuk Dekripsi ...........................................14

Gambar 2.4.1 Lanjutan Algoritma Gost untuk Dekripsi.............................15

Gambar 2.5 Blok Diagram Gost .............................................................16

Gambar 3.1. Context Diagram.................................................................24

Gambar 3.2. Diagram Zero (Level 0) ......................................................24

Gambar 3.3. Diagram Zero (Level 1) ......................................................25

Gambar 3.4. Diagram Zero (Level 2) ......................................................25

Gambar 3.5. Diagram Alir Inisialisasi Kunci Enkripsi .............................26

Gambar 3.6. Diagram Alir Inisialisasi Kunci Dekripsi.............................27

Gambar 3.7. Diagram Alir Baca Data Asli ..............................................28

Gambar 3.8. Diagram Alir Baca Data telah Dienkripsi ............................28

Gambar 3.9. Diagram Alir Tulis Data Asli ..............................................29

Gambar 3.10. Diagram Alir Tulis Data telah Dienkripsi ............................29

Gambar 3.11. Desain Splash Screen..........................................................31

Gambar 3.12. Desain Main Form ..............................................................32

Gambar 3.13. Desain Form Enkripsi File ..................................................33

Gambar 3.14. Desain Form Dekripsi File ..................................................34

Gambar 3.15. Desain Form Bantuan .........................................................34

Gambar 3.16. Desain Form Tentang Aku ..................................................35

Gambar 4.1 Splash Screen......................................................................36

Gambar 4.2 Main Form Gost Encryption................................................37

Gambar 4.3 Form Enkripsi File ..............................................................38

Gambar 4.4 Pesan Peringatan Masukkan File dan atau Kunci.................38

Gambar 4.5 Pesan Peringatan Kunci Maksimal 32 Karakter ...................39

Gambar 4.6 Pesan Kesalahan File yang Dienkripsi Tidak Ada ...............39

Page 17: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

17

Gambar 4.7 Pesan Peringatan Spesifikasi File yang Dienkripsi ..............39

Gambar 4.8 Buka File ............................................................................40

Gambar 4.9 Pesan Konfirmasi Hapus File Asli.......................................40

Gambar 4.10 Pesan Informasi File telah Dihapus .....................................40

Gambar 4.11 Pesan Informasi Simpan File Hasil Enkripsi........................41

Gambar 4.12 Proses pada Tombol Enkrip ................................................41

Gambar 4.13 Dekripsi File .......................................................................46

Gambar 4.14 Pesan Peringatan Masukkan File dan atau Kunci.................46

Gambar 4.15 Pesan Peringatan Kunci Maksimal 32 Karakter ...................46

Gambar 4.16 Pesan Kesalahan File yang Didekripsi Tidak Ada ...............47

Gambar 4.17 Pesan Peringatan Spesifikasi File yang Didekripsi ..............47

Gambar 4.18 Buka File ............................................................................47

Gambar 4.19 Pesan Informasi Proses Dekripsi Selesai .............................48

Gambar 4.20 Simpan File.........................................................................48

Gambar 4.21 Pesan Konfirmasi Melihat Hasil Dekripsi............................48

Gambar 4.22 Proses pada Tombol Dekrip ................................................49

Gambar 4.23 Form Bantuan .....................................................................54

Gambar 4.24 Form Tentang Aku..............................................................54

Gambar 4.25 Pesan Konfirmasi Keluar Program ......................................54

Gambar 4.26 Uji Coba Berkas Tes.txt ......................................................55

Gambar 4.27 Proses Enkripsi File ............................................................55

Gambar 4.28 Pesan Konfirmasi Enkripsi Selesai ......................................56

Gambar 4.29 Hasil Enkripsi Berkas Tes.gost............................................56

Gambar 4.30 Proses Dekripsi File ............................................................56

Gambar 4.31 Pesan Konfirmasi Dekripsi selesai ......................................57

Gambar 4.32 Pesan Konfirmasi Melihat Hasil Dekripsi............................57

Gambar 4.33 Hasil Dekripsi Berkas Tes.txt..............................................57

Page 18: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

18

DAFTAR TABEL

Tabel 2.1. Tabel Kebenaran XOR............................................................ 10

Tabel 2.2. Round dan Subkey dalam Proses Enkripsi............................... 22

Tabel 2.3. Round dan Subkey dalam Proses Dekripsi .............................. 22

Tabel 4.1. Hasil Enkripsi Berkas Dokumen ............................................. 58

Tabel 4.2. Hasil Dekripsi Berkas Dokumen ............................................. 58

Page 19: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

19

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Perkembangan teknologi sekarang ini memberikan kemudahan agar orang

dapat saling berkomunikasi dan mengirimkan informasi secara cepat. Tetapi

terkadang informasi yang dikirimkan bersifat sangat penting dan harus

dirahasiakan agar informasi tersebut tidak disalahgunakan oleh orang yang tidak

berhak. Seperti pada data-data penting milik negara yang penting dan rahasia, bila

sampai diketahui negara lain, maka dapat membahayakan negara tersebut. Selain

itu, juga pada informasi kartu kredit, bila informasi ini jatuh ke tangan orang

jahat, maka kartu kredit tersebut bisa disalahgunakan dan pemilik kartu kredit

harus bersiap menghadapi naiknya tagihan kartu kreditnya.

Dalam pengiriman informasi bersifat rahasia diperlukan suatu metode yang

disebut kriptografi, yaitu ilmu dan seni penyimpanan pesan secara aman sehingga

informasi tersebut tidak dapat diketahui oleh pihak yang tidak sah. Kriptografi

akan mengonversi data asli (plaintext) ke dalam bentuk data sandi (ciphertext)

yang tidak dapat dikenali untuk menjaga kerahasiaan data. Proses ini disebut

enkripsi. Hasil enkripsi disebut ciphertext (teks terenkripsi). Kemudian ciphertext

akan didekripsi dengan kunci yang sama menjadi plaintext kembali. Proses ini

disebut dekripsi.

Metode kriptografi yang digunakan dalam tugas akhir ini yaitu Algoritma

Gost. Metode ini mempunyai algoritma yang sederhana dalam pembuatannya dan

Page 20: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

20

kunci yang cukup panjang untuk pengamanan data. Algoritma Gost merupakan

algoritma blok cipher dengan menggunakan kunci tunggal (symmetric key).

1.2 Rumusan Masalah

Permasalahan pada penelitian ini adalah bagaimana cara membuat program

enkripsi dan dekripsi dengan menggunakan Algoritma Gost. Selain itu, bagaimana

mencari rerata waktu dan rerata rasio ketiga tipe berkas (.txt,.doc,.rtf).

1.3 Batasan Masalah

• Program diimplementasikan dengan menggunakan Delphi 7.0.

• Program ini dibuat untuk pemakaian single user.

• Kunci yang dipakai tidak disimpan dalam berkas tertentu atau berkas

yang terenkripsi. Jadi jika user salah memasukkan kunci sewaktu

mendekripsi berkas tersebut, maka berkas tidak akan kembali seperti

aslinya.

• Program diimplementasikan untuk mengenkripsi dan mendekripsi

berkas dokumen (.txt, .doc, .rtf).

• Program dibuat di sistem operasi Windows.

• Program akan menyimpan nama berkas hasil enkripsi sama dengan

nama berkas aslinya tetapi berbeda tipe (.gost). Hal ini bertujuan agar

user dapat mengetahui berkas mana yang sudah dienkripsi.

• Program dapat menghapus berkas asli yang telah dienkripsi. Jika user

menghapus berkas asli, maka setelah proses dekripsi, user dapat

Page 21: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

21

menentukan apakah ingin menyimpan nama berkas hasil dekripsi sama

atau berbeda dengan nama berkas asli. Jadi untuk mengetahui berkas

terenkripsi yang telah didekripsi tergantung dari nama berkas yang

dimasukkan user pada proses simpan setelah proses dekripsi.

1.4 Tujuan Penulisan

Tujuan penelitian ini adalah untuk mengimplementasikan Algoritma Gost

untuk mengenkripsi dan mendekripsi berkas dokumen (.txt, .doc, .rtf). Penelitian

ini juga bertujuan untuk mencari rerata waktu dan rerata rasio ketiga tipe berkas.

Perangkat lunak yang dihasilkan diharapkan dapat dipergunakan untuk

melindungi berkas-berkas maupun dokumen rahasia dan penting sehingga tidak

dapat dibaca oleh orang yang tidak berkepentingan.

1.5 Metodologi Penelitian

1.5.1 Studi Literatur

• Mengenal prinsip enkripsi dan dekripsi sebagai pengetahuan dasar

untuk memecahkan permasalahan.

• Mengenal dan memahami Algoritma Gost dan proses kerjanya.

• Pendalaman pengetahuan tentang program-program Delphi untuk

mendukung pemecahan permasalahan.

1.5.2 Analisis Sistem

Membuat gambaran mengenai data dan proses serta kebutuhan sistem

yang diperlukan dalam pengimplementasian program.

Page 22: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

22

1.5.3 Perancangan Sistem

Perancangan meliputi desain form-form yang digunakan beserta

tombol-tombol yang digunakan pada setiap form.

1.5.4 Pembuatan Program

Tahap ini adalah penerapan desain ke dalam bentuk program dengan

memanfaatkan bahasa pemrograman yang ada, yaitu Borland Delphi 7.0.

1.5.5 Uji Coba Program

• Menganalisis apakah program sesuai dengan algoritma yang digunakan

dan dapat berjalan dengan baik untuk mengekripsi dan mendekripsi

berkas dokumen (.txt,.rtf.,doc).

• Menganalisis pengaruh ukuran suatu berkas terhadap waktu proses.

1.6 Sistematika Penulisan

BAB I PENDAHULUAN

Berisi latar belakang masalah, rumusan masalah, batasan masalah,

tujuan penulisan, metodologi penelitian, dan sistematika penulisan.

BAB II LANDASAN TEORI

Berisi tentang pengertian kriptografi, algoritma kriptografi, Algoritma

Gost, dan contoh cara melakukan enkripsi dan dekripsi dengan

menggunakan Algoritma Gost.

BAB III ANALISIS DAN PERANCANGAN

Berisi tentang perancangan sistem berupa diagram alir enkripsi dan

dekripsi menggunakan Algoritma Gost. Bab ini juga berisi tentang

Page 23: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

23

rancangan desain user interface, serta dukungan hardware dan software

terhadap program yang telah dibuat.

BAB IV IMPLEMENTASI DAN ANALISIS HASIL

Berisi tentang implementasi perancangan (desain) ke dalam bentuk

program nyata yang dapat dipergunakan secara langsung. Selanjutnya

program akan diuji coba untuk melihat kelebihan dan kekurangannya.

BAB V PENUTUP

Berisi kesimpulan dan saran dari program enkripsi dekripsi

menggunakan Algoritma Gost untuk pengembangan selanjutnya.

Page 24: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

24

BAB II

LANDASAN TEORI

2.1 Kriptografi

Kriptografi berasal dari bahasa Yunani yaitu Crypto dan Graphia yang

berarti penulisan rahasia (www.criptography.com). Kriptografi (cryptography)

berarti ilmu dan seni penyimpanan pesan, data, atau informasi secara aman

sehingga informasi tersebut tidak dapat diketahui oleh pihak yang tidak sah.

Kriptografi mentransformasikan data asli (plaintext) ke dalam bentuk data

sandi (ciphertext) yang tidak dapat dikenali untuk menjaga kerahasiaan data.

Ciphertext inilah yang kemudian dikirimkan oleh pengirim (sender) kepada

penerima (receiver). Setelah sampai di penerima, ciphertext tersebut

ditranformasikan kembali ke dalam bentuk plaintext agar dapat dikenali.

Proses tranformasi dari plaintext menjadi ciphertext disebut enkripsi

(encryption), sedangkan proses mentransformasikan kembali ciphertext menjadi

plaintext disebut proses dekripsi (decryption) (Iswanti, 2003).

Kriptografi menggunakan suatu algoritma (cipher) dan kunci (key) untuk

mengenkripsi dan mendekripsi data. Cipher adalah fungsi matematika yang

digunakan untuk mengenkripsi dan mendekripsi, sedangkan kunci merupakan

sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data. Secara

sederhana dapat digambarkan sebagai berikut :

Page 25: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

25

Kunci

Gambar 2.1 Enkripsi dan Dekripsi Sederhana

Secara umum, enkripsi dan dekripsi dapat diterangkan sebagai berikut :

EK (M) = C (Proses Enkripsi)

DK (C) = M (Proses Dekripsi)

Pada proses enkripsi, pesan M akan disandikan dengan kunci K sehingga

menghasilkan pesan C. Untuk proses dekripsi, pesan C akan diuraikan dengan

menggunakan kunci K sehingga akan menghasilkan pesan M yang sama seperti

sebelumnya (Iswanti, 2003).

Pesan yang diamankan bergantung pada kunci yang digunakan, dan bukan

pada algoritma yang digunakan. Oleh karena itu, walaupun algoritma-algoritma

yang digunakan tersebut dapat dipublikasikan, namun selama kunci yang dipakai

tidak diketahui, maka pesan tetap tidak bisa dibaca (Kurniawan, 2004).

2.1.1 Algoritma Kriptografi

Berdasarkan kunci yang dipakai, algoritma kriptografi dapat dibedakan

menjadi 2, yaitu :

a. Kunci Tunggal (Symmetric Algorithm)

Algoritma simetris (konvensional) adalah algoritma yang menggunakan

satu kunci yang sama untuk proses enkripsi dan dekripsi. Jika misalkan A ingin

mengirim pesan kepada B, maka pesan tersebut akan dienkrip dengan

PlaintextEnkripsi DekripsiCiphertextPlaintext

Page 26: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

26

menggunakan suatu kunci. Jika B menerima pesan tersebut, maka B harus

mendekrip pesan dengan menggunakan kunci yang sama dengan kunci yang

digunakan oleh A. Keuntungan algoritma simetris yaitu memiliki kecepatan

proses enkripsi dan dekripsi jauh lebih cepat daripada menggunakan kunci publik.

Kelemahan kunci simetris yaitu kunci yang digunakan hanya satu, sehingga jika

kunci disergap ditengah jalan atau sudah ditebak orang lain, maka sistem ini sudah

tidak aman lagi (Raharjo, 2002). Contohnya DES, Gost, IDEA.

Algoritma simetris dibagi menajdi 2 yaitu algoritma aliran (Stream

Ciphers) dan algoritma blok (Block Ciphers). Pada algoritma aliran, proses

penyandiannya berorientasi pada satu bit atau satu byte data. Sedangkan pada

algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte

data (per blok).

b. Kunci Publik (Public Key Algorithms)

Algoritma kunci umum adalah algoritma yang menggunakan kunci yang

berbeda untuk proses enkripsi dan dekripsinya. Jika A ingin mengirim pesan

kepada B, maka A akan mengenkripsi pesan tersebut dengan menggunakan kunci

publik dari B. Jika B menerima pesan dari A, maka B akan mendekrip pesan

tersebut dengan menggunakan kunci pribadi dari B sendiri. Keuntungan kunci

publik yaitu memberikan jaminan keamanan dalam melakukan pertukaran

informasi karena kunci yang dipublikasikan adalah kunci publik, sedangkan kunci

rahasia tidak pernah disebarkan secara umum. Kunci umum (public key) dapat

diketahui oleh setiap orang dibuat untuk enkripsi, sedangkan kunci pribadi

Page 27: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

27

(private key) hanya diketahui oleh pihak yang sah (Raharjo, 2002). Contohnya

RSA, Elgamal, Diffie-Hellman.

Kunci Publik Kunci Private

Gambar 2.2 Enkripsi dan Dekripsi dengan Kunci Publik

2.1.2 Blok Cipher

Algoritma blok cipher adalah algoritma yang mempunyai masukan dan

keluaran berupa satu blok dan setiap bloknya terdiri dari banyak bit (misalnya 1

blok terdiri dari 64 atau 128 bit). (Kurniawan, 2004). Sebagian besar algoritma

kunci simetris yang ada menggunakan blok cipher. Iterasi yang digunakan dalam

blok cipher sebagian merupakan jaringan Feistel.

Jaringan Feistel merupakan suatu blok cipher dengan struktur tertentu.

Jaringan Feistel dirancang oleh Feistel dan Don Coppersmith. Operasi dasar dari

Jaringan Feistel yaitu :

• Bagi blok plaintext menjadi 2 bagian yang sama (L0,R0).

• Untuk tiap putaran i=1,2,3....n hitung

Li = Ri-1

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

• f adalah fungsi perputaran dan Ki adalah sub kuncinya.

• Kemudian ciphertext (Ln,Rn)

PlaintextEnkripsi DekripsiCiphertextPlaintext

Page 28: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

28

• Tanpa memperhatikan fungsi f, dekripsi dapat diselesaikan dengan

Ri-1= Li

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

• Tabel Kebenaran XOR (Schneier, 1996)

Tabel 2.1 Tabel Kebenaran XOR

A B XOR

0 0 0

0 1 1

1 0 1

1 1 0

2.1.3 S-Boxes

Substitution Box (S-box) merupakan komponen dasar dari algoritma kunci

simetris yang digunakan untuk mengaburkan hubungan antara plaintext dengan

ciphertext. Pada umumnya, suatu S-box akan mengambil sejumlah besar inputan

yang berukuran m dan mengubahnya menjadi sejumlah besar bit keluaran n.

dimana m×n tersebut akan dipetakan ke dalam sebuah tabel.

(en.wikipedia.org/wiki/Substitution_box).

2.2 Algoritma Gost

Gost berasal dari kata Gosudarstvennyi Standard (Standar Pemerintah).

(en.wikipedia.org/wiki/GOST). Gost merupakan blok cipher dari bekas Uni

Sovyet. Gost didesain untuk memodifikasi DES dan mencoba untuk mencapai

keseimbangan antara efisiensi dan keamanan. Gost mempunyai prosedur algoitma

Page 29: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

29

yang lebih mudah dibandingkan dengan DES. Gost tidak menggunakan ekspansi

permutasi seperti yang digunakan DES, melainkan menggunakan rotasi (cyclic

shift rotation) sebanyak 11 bit. Gost mempunyai 4 input dan 4 output S-box,

sehingga jika terjadi perubahan satu inputan akan berpengaruh terhadap satu S-

box dalam satu putaran, dimana hal ini juga akan berpengaruh terhadap putaran

berikutnya. Gost membutuhkan delapan putaran sebelum satu perubahan dari

inputan mempengaruhi setiap output bit. Gost mempunyai panjang kunci lebih

panjang dan dua kali putaran lebih banyak daripada DES. (Schneier, 1996).

Algoritma Gost merupakan blok cipher 64 bit dengan panjang kunci 256 bit.

Algoritma ini mengiterasi algoritma enkripsi sederhana sebanyak 32 putaran

(round) Semakin banyak putaran, semakin sulit di-attack. Algoritma Gost

menggunakan subkunci dan substitution box (S-box). Subkunci dihasilkan dari

256 bit kunci dibagi menjadi delapan bagian yang masing-masing mempunyai 32

bit :

(k32,……...k1) = K1

(k64,…….k33) = K2

…...

(k256,….k225) = K8

Gost mempunyai 8 S-box yang didalamnya terdapat 16 kolom. Setiap putaran

menggunakan subkunci yang berbeda. Berikut Algoritma Gost untuk enkripsi

pada gambar 2.3.

Page 30: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

30

Gambar 2.3 Algoritma Gost untuk Enkripsi

Page 31: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

31

Gambar 2.3.1 Lanjutan Algoritma Gost untuk Enkripsi

Page 32: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

32

Gambar 2.4 Algoritma Gost untuk Dekripsi

Page 33: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

33

Gambar 2.4.1 Lanjutan Algoritma Gost untuk Dekripsi

Page 34: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

34

Untuk blok diagram Gost dapat dilihat pada gambar 2.5.

32 bit 64 bit 32 bit

K1

+

K2

+

29 putaran lagi

K32

+

32 bit 32 bit

64 bit

Gambar 2.5 Blok Diagram Gost

2.2.1 Enkripsi

Proses enkripsi dalam Algoritma Gost mempunyai beberapa proses yaitu:

1. Inisialisasi kunci enkripsi

Algoritma Gost menggunakan kunci 256 bit. Kemudian kunci akan

dimasukkan ke 8 sub blok kunci yang masing-masing berisi 32 bit. Kunci yang

dimasukkan berupa karakter. Pertama, kunci akan diubah ke dalam kode ASCII

Plaintext

S-Box<<<11

S-Box<<<11

S-Box<<<11

Chipertext

Page 35: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

35

(American Standard Code for International Interchange). Satu karakter yang

diubah berisi 8 bit (Sukmawan, 2006). Jika kunci yang dimasukkan kurang dari

256 bit (32 karakter), maka sisanya akan diset 0. Setelah semua kunci diubah ke

bentuk biner, kunci akan dimasukkan ke dalam 8 sub blok kunci yang masing-

masing berisi 32 bit. Contoh prosesnya seperti di bawah ini :

Kunci : ab

Konversi kunci ke kode ASCII :

a 97 0 0 0 0 0 0

b 98 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Kunci yang dimasukkan hanya terdapat 2 karakter kunci sedangkan sisanya

diset 0. Kemudian dari ASCII, kunci diubah ke bentuk biner. Setelah semua kunci

diubah ke bentuk biner, kunci akan dimasukkan ke dalam 8 sub blok kunci yang

masing-masing berisi 32 bit.

1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

...

...

8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Page 36: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

36

2. Baca Data Asli

Algoritma Gost memerlukan 64 bit data masukan yang akan masuk dalam

proses. Data asli ( plaintext) 64 bit diubah ke kode ASCII. Setelah itu, diubah ke

dalam bentuk biner. Proses penggambarannya seperti contoh berikut :

Data asli : keretaku

Konversi data asli ke biner :

k 107 0 1 1 0 1 0 1 1 t 116 0 1 1 1 0 1 0 0

e 101 0 1 1 0 0 1 0 1 a 97 0 1 1 0 0 0 0 1

r 114 0 1 1 1 0 0 1 0 k 107 0 1 1 0 1 0 1 1

e 101 0 1 1 0 0 1 0 1 u 117 0 1 1 1 0 1 0 1

3. Proses enkripsi data

Proses enkripsi dapat dilakukan bila terdapat data asli dan kunci yang

dimasukkan. Total putaran dalam Algoritma Gost ini berjumlah 32 putaran. Sub

blok kunci (subkey) untuk putaran i adalah Ki. Pada satu putaran ke-i operasinya

adalah sebagai berikut :

pkirii = pkanani-1 , untuk i=1,2,3....32 rounds

pkanani = pkirii-1 xor f(pkanani-1,Ki)

Pada bagian penambahan pkanani-1 dengan subkey Ki, terdapat aturan :

if pkanan i-1 +Ki < 232 then pkanan i-1 +Ki

if pkanan i-1 +Ki > 232 then pkanan i-1 +Ki -232 (modulus 232)

Fungsi modulus yaitu agar setiap bilangan tidak melebihi 255 (hitungan per byte)

atau tidak melebihi 232 (untuk semua byte) (Sukmawan, 2006).

Page 37: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

37

Setelah diubah ke bentuk biner, data asli (plaintext) dibagi menjadi 2 yaitu 32

bit bagian kiri, pkiri dan 32 bit bagian kanan, pkanan. Proses enkripsi yang terjadi

pada pkanan mulai dari putaran pertama sampai putaran 32 (terakhir) yaitu tahap

penambahan dengan kunci, substitusi dengan S-box, rotasi bit dan proses XOR.

Hasilnya akan menjadi pkanan yang baru dan pkanan semula menjadi pkiri

(swap). Namun pada proses penggabungan, maka akan dibalik kembali, yaitu

pkanan akan menjadi pkiri dan kiri menjadi pkanan.

Jika data lebih dari 8 byte maka akan diambil 8 byte data berikutnya. Hal ini

dapat dilakukan setelah 8 byte sebelumnya sudah dienkripsi. Proses ini akan

dilakukan hingga semua data sudah dienkripsi semua. Sebagai gambaran dapat

dilihat proses berikut :

Pkiri0 : Pkanan0 :

k 107 0 1 1 0 1 0 1 1 t 116 0 1 1 1 0 1 0 0

e 101 0 1 1 0 0 1 0 1 a 97 0 1 1 0 0 0 0 1

r 114 0 1 1 1 0 0 1 0 k 107 0 1 1 0 1 0 1 1

e 101 0 1 1 0 0 1 0 1 u 117 0 1 1 1 0 1 0 1

1) Hsl 1 =pkanan 0 +K1

Pkiri1 =pkanan 0

Berikut contoh proses untuk putaran pertama :

pka0 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1

K 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

+

Hsl1 1 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1

Setelah dijumlah, maka hasilnya diubah ke bentuk hexadesimal seperti di

bawah ini :

Page 38: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

38

Urutan (Xn) X1 X2 X3 X4 X5 X6 X7 X8

Hsl1 1111 0101 1100 0011 0110 1011 0111 0101

Hexa 15 5 12 3 6 11 7 5

Setelah diubah menjadi hexadesimal, lalu dibagi menjadi delapan bagian

yang masing-masing berisi 4 bit dan setiap bagian menjadi input S-box

yang berbeda. Algoritma Gost mempunyai 8 buah S-box, urutan 4 bit

pertama (X1) menjadi S-box pertama, 4 bit kedua (X2) menjadi S-box

kedua, dan seterusnya. Sebagai contoh proses dapat dilihat di bawah ini :

Xn 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

s-box 1 4 9 10 2 13 8 0 14 6 11 1 12 7 15 5 3

Hasilnya = [X1, s-box 1] = [15,3]

2) Output dari 8 S-box kemudian diubah ke bentuk biner kembali dan

dikombinasikan menjadi bilangan 32 bit. Sebagai contoh proses dapat

dilihat di bawah ini :

Hsl1 3 13 6 1 13 5 9 7

Biner 0011 1101 0110 0001 1101 0101 1001 0111

Rotasi 11 bit ke kiri :

3) Hsl=Hsl XOR pkiri 0 dengan hasil di bawah ini :

Biner 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1

Hsl1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1

Hsl1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0

Page 39: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

39

4) Hasilnya yaitu Hsl1 menjadi pkanan dan pka0 menjadi pkiri (swap) untuk

proses berikutnya.

pkanan1 = Hsl1

pkiri 1 =pka 0

Hasil pkanan didapat dari hasil akhir perhitungan dan pkiri didapat dari

pkanan putaran sebelumnya. Bila sudah sampai putaran ke-32 (terakhir),

jika akan ditulis maka hasilnya dibalik, pkanan di bagian kiri dan pkiri di

bagian kanan. Jika masukan kunci (subkey) dan data asli sama seperti yang

dicontohkan sebelumnya, maka hasil akhirnya sebagai berikut:

pkanan32

0 1 0 0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0

pkiri32 :

0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1

4. Tulis data telah dienkripsi

Penulisan data yang telah dienkripsi hampir sama dengan proses

pembacaan. Penulisan data yang telah dienkripsi akan ditulis per byte. Cara

penulisannya karakter pertama yang sudah dienkripsi akan digabung dengan

karakter kedua dan seterusnya. Karakter yang masih berbentuk biner akan

diubah ke bilangan desimal, yang kemudian akan diterjemahkan ke dalam

kode ASCII untuk mendapatkan karakter hasil enkripsinya. Kemudian pkanan

dan pkiri akan digabung menjadi data terenkripsi (Ciphertext) 64 bit. Berikut

hasilnya :

Page 40: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

40

Pkanan32 0 1 0 0 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0

ASCII 73 181 187 32

Cipher I µ »

Pkiri32 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1

ASCII 8 76 15 131

Cipher L

Ciphertext = pkanan32+pkiri32

= Iµ» L

2.2.2 Dekripsi

Proses dekripsi juga mempunyai beberapa proses di bawah ini :

1. Inisialisasi kunci dekripsi

Inisialisasi kunci dekripsi sama dengan kunci enkripsi karena kunci yang

dimasukkan sama (simetris). Kunci yang dimasukkan akan diubah ke dalam kode

ASCII. Kemudian kunci akan dimasukkan ke 8 sub blok kunci yang masing-

masing berisi 32 bit. Setelah dimasukkan ke 8 sub blok kunci 32 bit, maka urutan

kunci yang digunakan (key schedule) dalam proses dekripsi akan dibalik.

Perbandingan urutan sub blok kunci tiap putaran dalam proses enkripsi dan

dekripsi (Schneier, 1996) dapat dilihat pada tabel 2.2 dan tabel 2.3 di bawah ini.

Round 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Subkey 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

Round 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Subkey 1 2 3 4 5 6 7 8 8 7 6 5 4 3 2 1

Tabel 2.2 Round dan subkey dalam Proses Enkripsi

Page 41: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

41

Round 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Subkey 1 2 3 4 5 6 7 8 8 7 6 5 4 3 2 1

Round 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Subkey 8 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1

Tabel 2.3 Round dan subkey dalam Proses Dekripsi

2. Baca data telah dienkripsi

Pembacaan data yang telah dienkripsi sama dengan pembacaan data asli.

Proses penggambarannya seperti contoh berikut :

Data terenkripsi : Iµ» L

Konversi data terenkripsi ke biner :

I 73 0 1 0 0 1 0 0 1 8 0 0 0 0 1 0 0 0

µ 181 1 0 1 1 0 1 0 1 L 76 0 1 0 0 1 1 0 0

» 187 1 0 1 1 1 0 1 1 15 0 0 0 0 1 1 1 1

32 0 0 1 0 0 0 0 0 131 1 0 0 0 0 0 1 1

3. Proses dekripsi data

Proses dekripsi sama dengan enkripsi. Jika kunci yang dimasukkan

sama, urutan sub blok kunci digunakan terbalik, dan masukan data sesuai yang

dicontohkan pada proses enkripsi, maka hasil data asli (plaintext) yang dihasilkan:

Pka32 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1

Pkiri32 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1

4. Tulis data asli (hasil dekripsi)

Page 42: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

42

Penulisan data asli (data hasil dekripsi) sama dengan data telah dienkripsi.

Berikut hasilnya :

Pka32 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1

ASCII 107 101 114 101

plain k e r e

Pkiri32 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

ASCII 116 97 107 117

plain t a k u

Ciphertext = pkanan32+pkiri32

= keretaku

Page 43: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

43

BAB III

ANALISIS DAN PERANCANGAN

3.1 ANALISIS SISTEM

3.1.1 Desain Alur Data

Sistem enkripsi dan dekripsi ini dapat dimodelkan dengan

menggunakan DFD (Data Flow Diagram) sebagai berikut :

1. Context Diagram

Gambar 3.1 Context Diagram

2. Diagram Zero (Level 0)

Gambar 3.2 Diagram Zero (Level 0)

Page 44: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

44

3. Diagram Zero (Level 1)

Gambar 3.3 Diagram Zero (Level 1)

4. Diagram Zero (Level 2)

Gambar 3.4 Diagram Zero (Level 2)

Page 45: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

45

3.1.2 Diagram Alir

Diagram alir menjelaskan proses yang terjadi dalam sistem kecuali

proses perhitungan algoritma yang digunakan. Diagram alir menjelaskan

proses dalam DFD (Data Flow Diagram) seperti beberapa diagram berikut:

1. Inisialisasi Kunci Enkripsi

Gambar 3.5 Diagram Alir Inisialisasi Kunci Enkripsi

Page 46: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

46

2. Inisialisasi Kunci Dekripsi

Gambar 3.6 Diagram Alir Inisialisasi Kunci Dekripsi

Page 47: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

47

3. Baca Data Asli

Gambar 3.7 Diagram Alir Baca Data Asli

4. Baca Data telah Dienkripsi

Gambar 3.8 Diagram Alir Baca Data telah Dienkripsi

Page 48: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

48

5. Tulis Data Asli

Gambar 3.9 Diagram Alir Tulis Data Asli

6. Tulis Data telah Dienkripsi

Gambar 3.10 Diagram Alir Tulis Data telah Dienkripsi

Page 49: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

49

3.2 ANALISIS KEBUTUHAN SISTEM

Kebutuhan hardware dan software untuk membuat dan menguji program :

§ Kebutuhan Hardware :

Pentium III/IV CPU 1,7Ghz

RAM 256 MB

Harddisk 20Gb

Mouse, Keyboard

§ Kebutuhan Software :

Windows 98/XP

Borland Delphi 7.0

3.3 PERANCANGAN (DESAIN) USER INTERFACE

3.3.1 Desain Splash Screen

Form Splash Screen berfungsi sebagai tampilan awal yang muncul hanya

beberapa detik sebelum masuk ke Form Utama. Gambar 3.11 menunjukkan desain

desain Form Splash Screen.

Page 50: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

50

Gambar 3.11 Desain Splash Screen

3.3.2 Desain Main Form

Main Form berguna untuk memanggil form-form lainnya. Pada Main Form

terdapat beberapa menu, sebagai berikut :

• Enkripsi : Menu Enkripsi untuk memanggil Form Enkripsi.

• Dekripsi : Menu Dekripsi untuk memanggil Form Dekripsi.

• Bantuan : Menu Bantuan yang dapat membantu user dalam

penggunaan program ini.

• Tentang Aku : Menu Tentang Aku berisi keterangan pembuat program.

• Keluar : Menu Keluar untuk keluar dari program.

IMAGE DAN TEXT TITLE

TEXT

TEXT

Page 51: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

51

IMAGE

Gambar 3.12 Desain Main Form

3.3.3 Desain Form Enkripsi File

Form Enkripsi berfungsi untuk melakukan proses enkripsi. File yang

dienkripsi akan diperoleh dengan menekan tombol Buka disampingnya. Tombol

tersebut yang akan digunakan untuk mencari lokasi dan nama file yang akan

dienkripsi. Kemudian tombol Enkrip jika user telah memasukkan kunci dan setuju

untuk melakukan enkripsi. Tombol Keluar digunakan untuk menolak atau selesai

melakukan enkripsi. Terdapat kolom waktu dan progres bar untuk menunjukkan

lama proses enkripsi. Terdapat ukuran file untuk menampilkan ukuran file setelah

file dienkripsi. Gambar 3.13 berikut ini adalah gambar desain Form Enkripsi File.

Main Form – GOST Encryption

ENKRIPSI DEKRIPSI BANTUAN TENTANG AKU KELUAR

NamaJamHari, Tgl Copyright 2007Main Form - Welcome

Page 52: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

52

File yang dienkripsi :

Kunci Enkripsi:

Ukuran file

Gambar 3.13 Desain Form Enkripsi File

3.3.4 Desain Form Dekripsi File

Form Dekripsi berfungsi untuk melakukan proses dekripsi. File yang

didekripsi akan diperoleh dengan menekan tombol Buka disampingnya. Tombol

tersebut digunakan untuk mencari lokasi dan nama file yang akan didekripsi.

Kemudian tombol Dekrip jika user telah memasukkan kunci dan setuju untuk

melakukan dekripsi. Untuk menyimpan file yang telah didekripsi, dapat dilakukan

dengan menekan tombol Simpan dibawahnya. Tombol Keluar digunakan untuk

menolak atau selesai melakukan dekripsi. Terdapat kolom waktu dan progres bar

untuk menunjukkan lama proses dekripsi. Terdapat ukuran file untuk

menampilkan ukuran file setelah file didekripsi. Gambar 3.14 berikut ini adalah

gambar desain Form Dekripsi File.

Waktu

Enkripsi File

Buka

Proses

Keluar

Enkrip

Page 53: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

53

Ukuran File

HELP ME PLEASE…!

TEXT

File yang didekripsi :

Kunci Dekripsi :

Gambar 3.14 Desain Form Dekripsi File

3.3.5 Desain Form Bantuan

Desain Form Bantuan dapat dilihat pada gambar 3.15 dibawah ini:

Gambar 3.15 Desain Form Bantuan

Waktu

Dekripsi File

Buka

Proses

Keluar

Dekrip

Simpan

Bantuan

OK

Icon

Page 54: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

54

IMAGE DAN TEXT

3.3.6 Desain Form Tentang Aku

Desain Form Tentang Aku dapat dilihat pada gambar 3.16 dibawah ini:

Gambar 3.16 Desain Form Tentang Aku

Tentang Aku

TEXT LOGO

Page 55: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

55

BAB IV

IMPLEMENTASI DAN ANALISIS HASIL

4.1 Implementasi User Interface

Implementasi program enkripsi dekripsi menggunakan Algoritma Gost ini

terdiri dari beberapa form yaitu Form Splash Screen, Form Gost Encryption, Form

Enkripsi File, Form Dekripsi File, Form About, dan Form Programmer.

4.1.1 Form Splash Screen

Form ini berada pada awal tampilan program ketika program diklik. Form

ini hanya tampil selama beberapa detik dengan menggunakan timer. Program

yang terdapat pada form ini yaitu:

Tampilan Form ini dapat dilihat pada gambar 4.1

Gambar 4.1 Splash Screen

during:=during+1;

if during=7 then

begin

form1.show;

form8.Hide;

end;

label7.Caption:=label7.Caption+'* ';

Page 56: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

56

4.1.2 Main Form

Program yang terdapat pada form ini yaitu :

• Program untuk memanggil Form Enkripsi :

Form3.ShowModal;

• Program untuk memanggil Form Dekripsi :

Form4.ShowModal;

• Program untuk memanggil Form Bantuan :

Form5.ShowModal;

• Program untuk memanggil Form Tentang Aku :

Form6.ShowModal;

• Program untuk keluar :

Tampilan Form ini dapat dilihat pada gambar 4.2.

Gambar 4.2 Main Form Gost Encryption

if(messagebox(0,'Anda ingin keluar dari program ?' ,

'Confirmation',MB_YESNO+MB_ICONQUESTION))=IDYES then

postquitmessage(0);

exit;

Page 57: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

57

Form ini mempunyai beberapa menu yaitu :

• Enkripsi : Jika akan melakukan proses enkripsi, user dapat memilih Menu

Enkripsi atau Ctrl-E. Selanjutnya akan muncul Form Enkripsi File.

Sebelum melakukan enkripsi, user terlebih dulu membuka file yang akan

dienkripsi dan memasukkan kunci. Setelah itu, user dapat menekan tombol

Enkrip untuk melakukan enkripsi. Tampilan Form Enkripsi File dapat

dilihat pada gambar 4.3.

Gambar 4.3 Form Enkripsi File

Jika file dan atau kunci belum dimasukkan, maka akan muncul pesan

kesalahan ”Silakan masukkan File dan atau Kunci terlebih dahulu.”

Tampilan pesan kesalahan dapat dilihat pada gambar 4.4.

Gambar 4.4 Pesan Peringatan Masukkan File dan atau Kunci

Jika file sudah dimasukkan namun kunci lebih dari 32 karakter, maka akan

muncul tampilan seperti gambar 4.5 di bawah ini :

Page 58: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

58

Gambar 4.5 Pesan Peringatan Kunci Maksimal 32 Karakter

Jika kunci sudah dimasukkan, tetapi file diketik manual dalam textbox atau

file tidak ada dalam disk, maka akan tampil pesan seperti pada gambar 4.6.

Gambar 4.6 Pesan Kesalahan File yang Dienkripsi Tidak Ada

Jika file yang dimasukkan bukan berekstensi .txt,.doc, dan .rtf, maka akan

tampil pesan pada gambar 4.7 berikut:

Gambar 4.7 Pesan Peringatan Spesifikasi File yang Dienkripsi

Untuk membuka file yang akan dienkripsi, user dapat menekan tombol

Buka. Tombol ini berguna untuk mencari path dari file yang dicari.

Tampilan Buka File dapat dilihat pada gambar 4.8.

Page 59: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

59

Gambar 4.8 Buka File

Jika proses enkripsi telah selesai, maka user dapat menentukan apakah file

/berkas asli akan dihapus atau tidak. Berikut tampilan Pesan Konfirmasi

pada gambar 4.9.

Gambar 4.9 Pesan Konfirmasi Hapus File Asli

Jika user menentukan bahwa file/berkas asli dihapus, setelah menekan

tombol Yes, maka file akan dibuang ke Recycle Bin. Tampilan pesan

seperti gambar 4.10 di bawah ini.

Gambar 4.10 Pesan Informasi File telah Dihapus

Page 60: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

60

Program akan menyimpan file yang telah dienkripsi secara otomatis di

direktori yang sama dengan direktori file asli. Tampilan pesan seperti pada

gambar 4.11 di bawah ini.

Gambar 4.11 Pesan Informasi Simpan File Hasil Enkripsi

Beberapa proses yang terjadi ketika tombol Enkrip diklik :

Gambar 4.12 Proses pada Tombol Enkrip

Page 61: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

61

Berikut isi program beberapa proses pada tombol Enkrip seperti yang telah

dijelaskan pada bab analisis dan perancangan :

1. Inisialisasi kunci enkripsi

Berikut baris-baris perintah untuk inisialisasi kunci :

2. Baca data asli

Berikut baris-baris perintah untuk baca data asli :

isi:=edit2.text;

for i:=1 to 8 do

kunci[i]:='';

j:=1;

for i:=1 to length(edit2.text) do

begin

kodeascii:=ord(isi[i]);

biner:=caribiner(kodeascii);

kunci[j]:=kunci[j]+biner;

if length(kunci[j])=32 then inc(j);

end;

if j<=8 then

begin

for i:=length(kunci[j])+1 to 32 do

kunci[j]:=kunci[j]+'0';

for k:=j+1 to 8 do

kunci[k]:='00000000000000000000000000000000';

end;

namafile:=copy(opendialog1.FileName,1,length(opendialog1.fi

lename)-3);

namafile:=namafile+'gost';

AssignFile(tmp,namafile);

rewrite(tmp,1);

AssignFile(buka,opendialog1.FileName);

reset(buka,1);

Page 62: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

62

3. Proses enkripsi

Berikut baris-baris perintah untuk mengenkripsi berkas dokumen :

for ulang1:=1 to 3 do

for ulang2:=1 to 8 do

begin

tampung:=pkanan;

biner:=jumlahbinerdankunci(pkanan,kunci[ulang2]);

hexanya:=carihexanya(biner);

for i:=1 to 8 do

hexanya[i]:=sbox[i,hexanya[i]];

pkanan:='';

for i:=1 to 8 do

pkanan:=pkanan+hexatobiner(hexanya[i]);

a:=copy(pkanan,1,11);

b:=copy(pkanan,12,21);

long:=now;

i:=0;

repeat

begin

BlockRead(buka,buffer,128,recdata);

plaintext:='';

hit128:=0;

for ulang5:=1 to 128 do

begin

gauge1.Progress:=gauge1.Progress+1;

biner:=caribiner(buffer[ulang5]);

plaintext:=plaintext+biner;

if ulang5 mod 8=0 then

begin

pkiri:=copy(plaintext,1,32);pkanan:=copy(plaintext,33,32);

Page 63: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

63

pkanan:=b+a;

hsl:='';

for i:=1 to length(pkanan) do

begin

if pkanan[i]=pkiri[i] then

hsl:=hsl+'0'

else

hsl:=hsl+'1';

end;

pkanan:=hsl;

pkiri:=tampung;

end;

end;

for ulang3:=8 downto 1 do

begin

tampung:=pkanan;

biner:=jumlahbinerdankunci(pkanan,kunci[ulang3]);

hexanya:=carihexanya(biner);

for i:=1 to 8 do

hexanya[i]:=sbox[i,hexanya[i]];

pkanan:='';

for i:=1 to 8 do

pkanan:=pkanan+hexatobiner(hexanya[i]);

a:=copy(pkanan,1,11);//dari bit 1 sebanyak 11 bit

b:=copy(pkanan,12,21); //dari 12 sebanyak 21 bit

pkanan:=b+a;

hsl:='';

for i:=1 to length(pkanan) do

begin

if pkanan[i]=pkiri[i] then

hsl:=hsl+'0'

else

hsl:=hsl+'1';

end;

pkanan:=hsl;

pkiri:=tampung;

end;

Page 64: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

64

4. Tulis data terenkripsi

Berikut baris-baris perintah untuk menulis data telah dienkripsi ke berkas :

• Dekripsi : Jika akan melakukan proses dekripsi, user dapat memilih Menu

Dekripsi atau Ctrl-D. Selanjutnya akan muncul Form Dekripsi File.

Seperti pada Form Enkripsi File, sebelum melakukan dekripsi, user

terlebih dulu membuka file yang akan didekripsi dan memasukkan kunci

yang sama dengan kunci yang dimasukkan pada saat enkripsi. Setelah itu,

user dapat menekan tombol Dekrip untuk melakukan dekripsi file.

Selanjutnya user dapat menyimpan hasilnya. Tampilan Form Dekripsi File

dapat dilihat pada gambar 4.13.

str1:=pkanan+pkiri;

i:=0;

while i<>length(str1)do

begin

inc(i);

des:=des+str1[i];

if (i mod 8=0)or(i=length(str1))then

begin

inc(hit128);

buffer2[hit128]:=(binerkedesimal(des));

des:='';

end;

plaintext:='';

Blockwrite(tmp,buffer2,recdata,recdata2);

hit128:=0;

until (recdata =0)or(recdata<>recdata2);

closefile(buka);

closefile(tmp);

Page 65: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

65

Gambar 4.13 Dekripsi File

Sama seperti pada Form Enkripsi, jika file dan atau kunci belum

dimasukkan, maka akan muncul pesan kesalahan ”Silakan masukkan File

dan atau Kunci terlebih dahulu.” Tampilan pesan kesalahan dapat dilihat

pada gambar 4.14.

Gambar 4.14 Pesan Peringatan Masukkan File dan atau Kunci

Jika file sudah dimasukkan namun kunci lebih dari 32 karakter, maka akan

muncul tampilan seperti gambar 4.15 di bawah ini :

Gambar 4.15 Pesan Peringatan Kunci Maksimal 32 Karakter

Page 66: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

66

Jika kunci sudah dimasukkan, tetapi file diketik dalam textbox atau file

tidak ada dalam disk, maka akan tampil pesan seperti pada gambar 4.16.

Gambar 4.16 Pesan Kesalahan File yang Didekripsi Tidak Ada

Jika file yang dimasukkan bukan berekstensi .gost, maka akan tampil

pesan pada gambar 4.17 berikut.

Gambar 4.17 Pesan Peringatan Spesifikasi File yang Didekripsi

Untuk membuka file yang akan dienkripsi, user dapat menekan tombol

Buka File. Buka File berguna untuk mencari path dari file yang dicari.

Tampilan Buka File dapat dilihat pada gambar 4.18.

Gambar 4.18 Buka File

Page 67: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

67

Jika proses dekripsi telah selesai, maka akan tampil pesan seperti gambar

4.19 di bawah ini :

Gambar 4.19 Pesan Informasi Proses Dekripsi Selesai

Setelah proses dekripsi sudah selesai, maka user dapat menyimpan dengan

menekan tombol Simpan. Tampilan Simpan File seperti pada gambar 4.20.

Gambar 4.20 Simpan File

Jika file sudah tersimpan, maka akan tampil pesan dimana user dapat

memilih apakah ingin melihat file hasil dekripsi saat itu juga atau tidak.

Tampilan Pesan Konfirmasi dapat dilihat pada gambar 4.21 di bawah ini:

Gambar 4.21 Pesan Konfirmasi Melihat Hasil Dekripsi

Page 68: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

68

Jika ditekan yes, maka akan ditampilkan isi berkas yang telah didekripsi.

Beberapa proses yang terjadi ketika tombol Dekrip diklik :

Gambar 4.22 Proses pada Tombol Dekrip

Page 69: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

69

Berikut isi program beberapa proses pada tombol Enkrip seperti yang telah

dijelaskan pada bab analisis dan perancangan :

1. Inisialisasi kunci dekripsi

Berikut baris-baris perintah untuk inisialisasi kunci :

2. Baca data terenkripsi

Berikut baris-baris perintah untuk baca data terenkripsi :

isi:=edit2.text;

for i:=1 to 8 do

kunci[i]:='';

j:=1;

for i:=1 to length(edit2.text) do

begin

kodeascii:=ord(isi[i]);

biner:=caribiner(kodeascii);

kunci[j]:=kunci[j]+biner;

if length(kunci[j])=32 then

inc(j);

end;

if j<=8 then

begin

for i:=length(kunci[j])+1 to 32 do //untuk kolom=32

kunci[j]:=kunci[j]+'0';

for k:=j+1 to 8 do //untuk baris=8

kunci[k]:='00000000000000000000000000000000';

end;

AssignFile(tmp,'C:\temp.txt');

rewrite(tmp,1);

AssignFile(buka,opendialog1.FileName);

reset(buka,1);

long:=now;

i:=0;

Page 70: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

70

3. Proses dekripsi

Berikut baris-baris perintah untuk mendekripsi berkas dokumen :

for ulang2:=1 to 8 do

begin

tampung:=pkanan;

biner:=jumlahbinerdankunci(pkanan,kunci[ulang2]);

hexanya:=carihexanya(biner);

for i:=1 to 8 do

hexanya[i]:=sbox[i,hexanya[i]];

pkanan:='';

for i:=1 to 8 do

pkanan:=pkanan+hexatobiner(hexanya[i]);

a:=copy(pkanan,1,11);//dari bit 1 sebanyak 11 bit

b:=copy(pkanan,12,21); //dari 12 sebanyak 21 bit

pkanan:=b+a;

hsl:='';

for i:=1 to length(pkanan) do

begin

if pkanan[i]=pkiri[i] then

repeat

begin

BlockRead(buka,buffer,128,recdata);

plaintext:='';

hit128:=0;

for ulang5:=1 to 128 do

begin

gauge1.Progress:=gauge1.Progress+1;

biner:=caribiner(buffer[ulang5]);

plaintext:=plaintext+biner;

if ulang5 mod 8=0 then

begin

pkiri:=copy(plaintext,1,32);

pkanan:=copy(plaintext,33,32);

Page 71: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

71

hsl:=hsl+'0'

else

hsl:=hsl+'1';

end;

pkanan:=hsl;

pkiri:=tampung;

end;

for ulang1:=1 to 3 do

for ulang3:=8 downto 1 do

begin

tampung:=pkanan;

biner:=jumlahbinerdankunci(pkanan,kunci[ulang3]);

hexanya:=carihexanya(biner);

for i:=1 to 8 do

hexanya[i]:=sbox[i,hexanya[i]];

for i:=1 to 8 do

begin

pkanan:='';

end;

for i:=1 to 8 do

pkanan:=pkanan+hexatobiner(hexanya[i]);

a:=copy(pkanan,1,11);//dari bit 1 sebanyak 11 bit

b:=copy(pkanan,12,21); //dari 12 sebanyak 21 bit

pkanan:=b+a;

hsl:='';

for i:=1 to length(pkanan) do

begin

if pkanan[i]=pkiri[i] then

hsl:=hsl+'0'

else

hsl:=hsl+'1';

end;

pkanan:=hsl;

pkiri:=tampung;

end;

Page 72: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

72

4. Tulis data asli

Berikut baris-baris perintah untuk menulis data telah asli ke berkas :

• Bantuan : Form ini merupakan keterangan yang akan membantu user

dalam menggunakan program ini. Selain itu juga berisi penjelasan singkat

mengenai Algoritma Gost dan bagaimana cara menggunakan program ini.

Tampilan dapat dilihat pada gambar 4.23.

str1:=pkanan+pkiri;

i:=0;

while i<>length(str1)do

begin

inc(i);

des:=des+str1[i];

if (i mod 8=0)or(i=length(str1))then

begin

inc(hit128);

buffer2[hit128]:=(binerkedesimal(des));

des:='';

end;

end;

plaintext:='';

end;

end;

Blockwrite(tmp,buffer2,recdata,recdata2);

hit128:=0;

end;

until (recdata =0)or(recdata<>recdata2);

closefile(buka);

closefile(tmp);

Page 73: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

73

Gambar 4.23 Form Bantuan

• Tentang Aku berisi tentang profil dan alamat email pembuat program,

dapat dilihat pada gambar 4.24.

Gambar 4.24 Form Tentang Aku

• Untuk keluar dari program, user dapat memilih Menu Keluar atau

menekan Ctrl-K. Kemudian tampil pesan pada gambar 4.25 di bawah ini.

Gambar 4.25 Pesan Konfirmasi Keluar Program

Page 74: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

74

4.2 Uji Coba Program

Uji coba program dimaksudkan untuk mengetahui apakah program dapat

bekerja sesuai dengan Algoritma Gost. Hal ini dapat dilakukan dengan cara

membandingkan hasil program dengan hasil di teori. Berikut beberapa langkah

untuk melakukan enkripsi :

a) Membuat berkas .txt seperti gambar 4.26 berikut :

Gambar 4.26 Uji Coba Berkas Tes.txt

b) Membuka program dan menjalankan menu Enkripsi.

c) Tombol Buka ditekan untuk mencari file Tes.txt, lalu masukkan kunci ab.

d) Untuk melakukan enkripsi, tinggal menekan tombol Enkrip. Tampilan

seperti gambar 4.27 di bawah ini :

Gambar 4.27 Proses Enkripsi File

e) Setelah selesai, user dapat memilih apakah berkas asli akan dihapus atau

tidak. Tampilannya seperti gambar 4.28 berikut.

Page 75: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

75

Gambar 4.28 Pesan Konfirmasi Enkripsi selesai

f) Membuka berkas hasil enkripsi Tes.gost seperti gambar 4.29 berikut :

Gambar 4.29 Hasil Enkripsi Berkas Tes.gost

g) Gambar di atas menunjukkan bahwa hasil program sama dengan teori.

Berikut beberapa langkah untuk dekripsinya :

a) Membuka program dan menjalankan menu Dekripsi. Tombol Buka

ditekan untuk mencari file Tes.gost, lalu masukkan kunci ab. Untuk

melakukan Dekripsi, tinggal menekan tombol Dekrip. Tampilan seperti

gambar 4.30 di bawah ini.

Gambar 4.30 Proses Dekripsi File

Page 76: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

76

Gambar 4.31 Pesan Konfirmasi Dekripsi selesai

b) Menyimpan berkas hasil dekripsi dan diberi nama Tes_1.txt. Membuka

hasil dekripsi secara langsung setelah ada pesan seperti pada gambar 4.32 :

Gambar 4.32 Pesan Konfirmasi Melihat Hasil Dekripsi

c) Hasil dekripsi setelah ditekan Yes:

Gambar 4.33 Hasil Dekripsi Berkas Tes.txt

4.3 Hasil Uji Coba

Dari hasil uji coba (pada lampiran) dapat dijelaskan pada tabel sebagai berikut :

Page 77: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

77

Tabel 4.1 Hasil Enkripsi Berkas Dokumen

No Nama Tipe Ukuranasli

Ukuranenkripsi(bytes)

Waktu(second)

Rasio(bytes/sec)

RerataWaktu

RerataRasio

1 Testxt1 txt 12232 12232 5.016 2424.0982 Testxt2 txt 19968 19968 8.177 2441.9713 Testxt3 txt 162528 162528 64.489 2520.2434 Testxt4 txt 405872 405872 160.625 2526.8295 Testxt5 txt 604608 604608 237.823 2542.2606 Testxt6 txt 887584 887584 348.427 2544.970

137.426 2500.061

7 Tesdoc1 doc 19968 19968 8.088 2468.8428 Tesdoc2 doc 73728 73728 29.224 2522.8579 Tesdoc3 doc 162304 162304 64.072 2533.15010 Tesdoc4 doc 406528 406528 159.911 2542.21411 Tesdoc5 doc 604672 604672 237.552 2545.43012 Tesdoc6 doc 887296 887296 348.469 2546.269

141.219 2526.460

13 Tesrtf1 rtf 11488 11488 4.781 2402.84414 Tesrtf2 rtf 19968 19968 8.083 2467.01215 Tesrtf3 rtf 162760 162760 64.479 2524.23216 Tesrtf4 rtf 406488 406488 160.510 2532.47717 Tesrtf5 rtf 604565 604565 237.879 2541.48118 Tesrtf6 rtf 886920 886920 348.932 2541.813

137.444 2501.643

Tabel 4.2 Hasil Dekripsi Berkas Dokumen

No Nama Tipe Ukuranenkripsi

Ukurandekripsi(bytes)

Waktu Rasio(bytes/sec)

RerataWaktu(sec)

RerataRasio

1 Testxt1 gost 12232 12232 4.999 2446.8892 Testxt2 gost 19968 19968 7.973 2504.4523 Testxt3 gost 162528 162528 64.485 2520.4004 Testxt4 gost 405872 405872 160.568 2527.7265 Testxt5 gost 604608 604608 238.719 2532.7186 Testxt6 gost 887584 887584 350.088 2535.316

137.276 2510.692

7 Tesdoc1 gost 19968 19968 8.031 2486.3658 Tesdoc2 gost 73728 73728 29.390 2508.6089 Tesdoc3 gost 162304 162304 64.438 2518.762

10 Tesdoc4 gost 406528 406528 161.083 2523.71711 Tesdoc5 gost 604672 604672 237.963 2541.03312 Tesdoc6 gost 887296 887296 347.687 2551.996

140.432 2520.127

13 Tesrtf1 gost 11488 11488 4.729 2429.26614 Tesrtf2 gost 19968 19968 7.989 2499.43615 Tesrtf3 gost 162760 162760 64.968 2505.23316 Tesrtf4 gost 406488 406488 161.005 2524.69117 Tesrtf5 gost 604565 604565 238.218 2537.86418 Tesrtf6 gost 886920 886920 346.75 2557.808

137.840 2519.049

Page 78: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

78

Dari hasil uji coba dapat dianalisis beberapa hal yaitu :

1. Program Enkripsi Dekripsi Berkas Dokumen dengan Algoritma Gost ini

ternyata telah berjalan sesuai dengan algoritma yang ada dan dapat

berfungsi dengan baik untuk enkripsi dekripsi berkas dokumen bertipe txt,

doc, rtf.

2. Tidak ada perubahan ukuran berkas pada berkas asli baik setelah dikenai

proses enkripsi maupun proses dekripsi.

3. Semakin besar ukuran berkas makin lama pula waktu yang dibutuhkan

untuk proses enkripsi. Demikian pula yang terjadi pada proses dekripsi.

4.4 Kelebihan dan Kekurangan Program

Setelah melakukan uji coba beberapa berkas dokumen ke dalam program,

penulis memperoleh beberapa kelebihan dan kekurangan dari program yang

dibuat.

4.4.1. Kelebihan

Kelebihan program untuk enkripsi dekripsi berkas dokumen menggunakan

Algoritma Gost ini mempunyai beberapa kelebihan, antara lain:

1. Program dapat menampilkan secara langsung hasil proses dekripsi.

2. Program sederhana dan mudah digunakan (user friendly).

3. Program dapat menghapus berkas asli.

4. Program dapat menyimpan secara otomatis berkas hasil proses enkripsi.

5. Program dapat menampilkan informasi ukuran berkas secara otomatis.

Page 79: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

79

6. Program dapat mengenkripsi dan mendekripsi gambar yang berada dalam

berkas dokumen bertipe doc.

4.4.2. Kekurangan

Program yang telah dibuat mempunyai kelemahan, antara lain:

1. Program hanya dapat mengenkripsi dan mendekripsi berkas dokumen

(.txt,.doc,.rtf) yang berukuran 8 bytes dan kelipatannya.

2. Program belum dapat melakukan penyimpanan kunci yang dipakai user

untuk proses enkripsi dan dekripsi.

3. Program belum dapat secara otomatis melakukan pembatalan proses

enkripsi maupun dekripsi bila berkas yang dimasukkan sudah terenkripsi

atau sudah didekripsi.

Page 80: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

80

BAB V

PENUTUP

5.1 Kesimpulan

Kesimpulan dari pembuatan program enkripsi dekripsi berkas dokumen ini

adalah :

1) Algoritma Gost dapat mengenkripsi dan mendekripsi berkas dokumen

(.txt,.doc,.rtf) dengan benar. Hal ini ditunjukkan dari hasil uji coba yang

sesuai dengan perhitungan manualnya.

2) Program Enkripsi Dekripsi Berkas Dokumen menggunakan Algoritma

Gost dapat berjalan dengan baik untuk mengenkripsi dan mendekripsi

berkas dokumen (.txt,.doc,.rtf). Hal ini menunjukkan bahwa Algoritma

Gost dapat bekerja untuk enkripsi dekripsi berkas dokumen (.txt,.doc,.rtf).

3) Semakin besar ukuran berkas maka semakin lama waktu proses yang

dibutuhkan untuk proses enkripsi maupun dekripsi.

4) Tidak ada perubahan ukuran berkas pada berkas asli baik setelah dikenai

proses enkripsi maupun proses dekripsi.

5.2 Saran

Pembuatan program ini tentunya dapat dikembangkan lebih lanjut untuk

mengatasi beberapa kelemahan dari program ini dan dapat dipergunakan juga

untuk program aplikasi yang besar. Beberapa pengembangan yang dapat

dilakukan adalah :

Page 81: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

81

1) Program dapat melakukan enkripsi dan dekripsi semua tipe dan ukuran

file.

2) Program dapat melakukan enkripsi dekripsi beberapa berkas dokumen

sekaligus yang kemudian disimpan dalam suatu berkas.

3) Program dapat mengetahui kunci yang dimasukkan ketika enkripsi,

sehingga jika pada saat didekripsi, user salah memasukkan kunci, maka

program akan membatalkan proses dekripsi.

4) Program dapat membatalkan proses enkripsi bila berkas yang dimasukkan

sudah terenkripsi. Jadi berkas hanya dapat dienkripsi sebanyak satu kali.

Begitu pula dengan proses dekripsi.

5) Program dapat melindungi berkas yang telah dienkripsi agar tidak dapat

diubah isinya.

Page 82: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

82

DAFTAR PUSTAKA

Anonim. Handout Mata Kuliah Rekayasa Perangkat Lunak. FT USD.

Yogyakarta.

Anonim. 2006. http://www.cryptography.com. 2 September 2006.

Anonim. 2006. http://en.wikipedia.org/wiki/Substitution_box. 2 September 2006.

Anonim. 2006. http://en.wikipedia.org/wiki/GOST. 21 September 2006.

Iswanti. 2003. Sistem Keamanan Data dengan Metode Public Key Cryptography.

Penerbit ITB. Bandung.

Kurniawan, Yusuf. 2004. Kriptografi: Keamanan Internet dan Jaringan

Komunikasi. Penerbit Informatika. Bandung.

Madcoms. 2002. Pemrograman Borland Delphi 7. Penerbit Andi. Yogyakarta.

Polina, Agnes Maria, dan Siang, Jong Jek. 2005. Kiat Jitu Menyusun Skripsi

Jurusan Informatika / Komputer. Penerbit Andi. Yogyakarta.

Pranata, Antony. 1997. Pemrograman Borland Delphi 6. Edisi 4. Penerbit Andi.

Yogyakarta.

Raharjo, Budi. 2002. Keamanan Sistem Informasi Berbasis Internet. PT. Insan

Infonesia – Bandung & PT INDOCISC – Jakarta.

Page 83: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

83

Schneier, Bruce. 1996. Applied Cryptography: Protocols, Algorithms, and Source

Code in C. Second Edition. John Wiley & Sons Inc. United States of

America.

Setiawan, Yudha. 2004. Trik & Tip Delphi. Penerbit Andi. Yogyakarta.

Sukmawan, Budi. 2006. http://www.bimacipta.com/gost.htm. 15 September 2006.

Page 84: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

84

LAMPIRAN I

HASIL UJI COBA

A. Uji Coba Enkripsi Berkas Dokumen

1) Hasil uji coba enkripsi berkas berekstensi txt

Berkas txt yang dienkripsi antara lain :

o Testxt1.txt (12232 bytes)

o Testxt2.txt (19968 bytes)

o Testxt3.txt (162728 bytes)

o Testxt4.txt (405872 bytes)

o Testxt5.txt (604608 bytes)

o Testxt6.txt (887584 bytes)

Berikut tampilan hasil enkripsi untuk keenam berkas diatas :

Page 85: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

85

Page 86: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

86

2) Hasil uji coba enkripsi berkas berekstensi doc

Berkas doc yang dienkripsi antara lain :

o Tesdoc1.doc (19968 bytes)

o Tesdoc2.doc (73728 bytes)

o Tesdoc3.doc (162304 bytes)

o Tesdoc4.doc (406528 bytes)

o Tesdoc5.doc (604672 bytes)

o Tesdoc6.doc (887296 bytes)

Berikut tampilan hasil enkripsi untuk keenam berkas diatas :

Page 87: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

87

Page 88: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

88

Page 89: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

89

3) Hasil uji coba enkripsi berkas berekstensi rtf

Berkas rtf yang dienkripsi antara lain :

o Tesrtf1.rtf (11488 bytes)

o Tesrtf2.rtf (19968 bytes)

o Tesrtf3.rtf (162760 bytes)

o Tesrtf4.rtf (406488 bytes)

o Tesrtf5.rtf (604565 bytes)

o Tesrtf6.rtf (886920 bytes)

Berikut tampilan hasil enkripsi untuk keenam berkas diatas :

Page 90: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

90

Page 91: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

91

B. Hasil Uji Coba Dekripsi Berkas Dokumen

1) Hasil uji coba dekripsi berkas berekstensi txt

Berkas txt yang didekripsi antara lain :

o Testxt1.gost (12232 bytes)

o Testxt2.gost (19968 bytes)

o Testxt3.gost (162728 bytes)

o Testxt4.gost (405872 bytes)

o Testxt5.gost (604608 bytes)

o Testxt6.gost (887584 bytes)

Berikut tampilan hasil dekripsi untuk keenam berkas diatas :

Page 92: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

92

Page 93: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

93

Page 94: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

94

2) Hasil uji coba dekripsi berkas berekstensi doc

Berkas doc yang didekripsi antara lain :

o Tesdoc1.gost (19968 bytes)

o Tesdoc2.gost (73728 bytes)

o Tesdoc3.gost (162304 bytes)

o Tesdoc4.gost (406528 bytes)

o Tesdoc5.gost (604672 bytes)

o Tesdoc6.gost (887296 bytes)

Berikut tampilan hasil dekripsi untuk keenam berkas diatas :

Page 95: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

95

Page 96: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

96

3) Hasil uji coba dekripsi berkas berekstensi rtf

Berkas rtf yang didekripsi antara lain :

o Tesrtf1.gost (11488 bytes)

o Tesrtf2.gost (19968 bytes)

o Tesrtf3.gost (162760 bytes)

o Tesrtf4.gost (406488 bytes)

o Tesrtf5.gost (604565 bytes)

o Tesrtf6.gost (886920 bytes)

Berikut tampilan hasil dekripsi untuk keenam berkas diatas :

Page 97: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

97

Page 98: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

98

Page 99: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

99

LAMPIRAN II

TABEL ASCII

Page 100: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

100

LAMPIRAN III

LISTING PROGRAM

Program Splash Screen

unit splash;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls, ExtCtrls, jpeg, ComCtrls, Gauges;type TForm1 = class(TForm) Label1: TLabel; Timer1: TTimer; Label2: TLabel; Label5: TLabel; Image5: TImage; Image2: TImage; Bevel1: TBevel; Label3: TLabel; Label7: TLabel; Timer2: TTimer; Image1: TImage; Label4: TLabel; procedure Timer1Timer(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Timer2Timer(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; during:integer;implementationuses menu_utama;{$R *.dfm}procedure TForm1.Timer1Timer(Sender: TObject);beginduring:=during+1;if during=2 thenbeginform2.show;form1.Hide; end;end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);beginform1.close;end;end.

Page 101: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

101

Program Main Form

unit menu_utama;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms, Dialogs, Menus, ExtCtrls, ComCtrls, jpeg, StdCtrls;type TForm2 = class(TForm) MainMenu1: TMainMenu; StatusBar1: TStatusBar; Timer1: TTimer; Timer2: TTimer; Label1: TLabel; Label2: TLabel; Enkripsi1: TMenuItem; Dekripsi1: TMenuItem; bantu1: TMenuItem; Keluar1: TMenuItem; aku1: TMenuItem; Label4: TLabel; Image3: TImage; Image1: TImage; Image4: TImage; Label3: TLabel; Bevel1: TBevel; Image2: TImage; procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Keluar1Click(Sender: TObject); procedure Enkripsi1Click(Sender: TObject); procedure Dekripsi1Click(Sender: TObject); procedure aku1Click(Sender: TObject); procedure bantu1Click(Sender: TObject); Boolean); private { Private declarations } public { Public declarations } end;var Form2: TForm2; waktu: string;implementation uses enkripsi, programmer, help, dekripsi;{$R *.dfm}procedure TForm2.Timer1Timer(Sender: TObject);begin Waktu := TimeToStr(Date); StatusBar1.Panels[1].Text := FormatDateTime(' dddd, dd mmmm yyyy',Date)end;

procedure TForm2.Enkripsi1Click(Sender: TObject);begin Form3.ShowModal;end;

procedure TForm2.bantu1Click(Sender: TObject);begin

Page 102: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

102

Form5.ShowModal;end;

procedure TForm2.Dekripsi1Click(Sender: TObject);begin Form4.ShowModal;end;

procedure TForm2.Timer2Timer(Sender: TObject);begin Waktu := DateToStr(Time); StatusBar1.Panels[2].Text := FormatDateTime(' hh:mm:ss WIB', Time)end;

procedure TForm2.Keluar1Click(Sender: TObject);beginif(messagebox(0,'Anda ingin keluar dari program?','Confirmation',MB_YESNO+MB_ICONQUESTION))=IDYES thenbegin postquitmessage(0);exit;end;end;

procedure TForm2.aku1Click(Sender: TObject);beginform6.ShowModal;end;end.

Program Enkripsi File

unit enkripsi;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms,Dialogs, StdCtrls, Buttons, ExtDlgs, ComCtrls, ExtCtrls, Gauges,jpeg,shellAPI;typehexa8=array[1..8] of byte; TForm3 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Bevel2: TBevel; Keluar: TBitBtn; Enkrip: TBitBtn; Gauge1: TGauge; OpenDialog1: TOpenDialog; Openfile: TBitBtn; Image1: TImage; Waktu: TLabel; Edit3: TEdit; Size: TLabel; procedure KeluarClick(Sender: TObject); procedure OpenfileClick(Sender: TObject); procedure EnkripClick(Sender: TObject); procedure FormActivate(Sender: TObject); private { Private declarations } public

Page 103: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

103

{ Public declarations } end;varForm3: TForm3;plaintext : string[64];pkiri,pkanan : string[32];kunci : array[1..8] of string;sbox:array[1..8,0..15] of byte;hexanya:hexa8;tampung:string;implementationuses splash; {$R *.dfm}function caribiner(x:word):string;var biner,bin:string;var sisa,i,j:integer;beginbiner:=''; while x<>0 do begin sisa:=x mod 2; biner:=biner+inttostr(sisa); x:=x div 2; end;

if length(biner)=0 thenbiner:=biner+'00000000';if length(biner)=1 thenbiner:=biner+'0000000';if length(biner)=2 thenbiner:=biner+'000000';if length(biner)=3 thenbiner:=biner+'00000';if length(biner)=4 thenbiner:=biner+'0000';if length(biner)=5 thenbiner:=biner+'000';if length(biner)=6 thenbiner:=biner+'00';if length(biner)=7 thenbiner:=biner+'0';bin:='';for i:=8 downto 1 dobeginbin:=bin+biner[i];end;caribiner:=bin;end;

function caribiner32(x:word):string;var biner,bin:string;sisa,i,j:integer;beginbiner:=''; while x<>0 do begin sisa:=x mod 2; biner:=biner+inttostr(sisa); x:=x div 2; end;

for i:=length(biner)+1 to 32 dobiner:=biner+'0';

Page 104: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

104

bin:='';for i:=32 downto 1 dobeginbin:=bin+biner[i];end;caribiner32:=bin;end;

function jumlahbinerdankunci(biner1,biner2:string):string;var sisa,i,total,pkt,hsl:integer;hasil,hasil1:string;jml,a,b:integer;beginsisa:=0;hasil:='';for i:=length(biner1)downto 1 dobegina:=strtoint(biner1[i]);b:=strtoint(biner2[i]);jml:=a+b+sisa;end;

function carihexanya(biner:string):hexa8;var hexa1,hexa2:integer;begincarihexa(copy(biner,1,8),hexa1,hexa2);carihexanya[1]:=hexa1;carihexanya[2]:=hexa2;carihexa(copy(biner,9,16),hexa1,hexa2);carihexanya[3]:=hexa1;carihexanya[4]:=hexa2;carihexa(copy(biner,17,24),hexa1,hexa2);carihexanya[5]:=hexa1;carihexanya[6]:=hexa2;carihexa(copy(biner,25,32),hexa1,hexa2);carihexanya[7]:=hexa1;carihexanya[8]:=hexa2;end;

procedure TForm3.OpenfileClick(Sender: TObject);var ekstensi:string;begin if (OpenDialog1.Execute) thenbeginedit1.Text:=OpenDialog1.FileName;Enkrip.Enabled:=true;gauge1.Progress:=0;edit3.Text:=formatdatetime(' hh:mm:ss:zzz', 0); endelsemessagebox(0,'File yang dienkripsi harus berekstensi .txt, .doc, dan.rtf.','Warning',MB_OK+MB_ICONEXCLAMATION); end; end;

procedure TForm3.EnkripClick(Sender: TObject);varisi,biner: string;i,j,k,ulang2,ulang1,ulang3,ulang5,hit128: integer;awal,akhir:TDatetime;kodeascii:word;a,b,hsl,str1,des,namafile:string;

Page 105: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

105

buka,tmp:file;buffer,buffer2:array[1..128] of byte;recdata,recdata2:integer;SearchRec: TSearchRec;

begin if(edit1.text='') or(edit2.text='') thenbegin messagebox(0,'Silakan masukkan File dan atau Kunci terlebih dahulu.', 'Warning',MB_OK+MB_ICONEXCLAMATION); edit2.Text:=''; end

else if length(edit2.text) <= 32 then begin Keluar.Enabled:=false; openfile.Enabled:=false; enkrip.Enabled:=false; awal:=(now);

//inisialisasi kunciisi:=edit2.text;for i:=1 to 8 dokunci[i]:='';j:=1;if length(kunci[j])=32 then //jika kolom sudah 32 maka pindah bariskebawahnya inc(j);end;

if j<=8 thenbeginfor i:=length(kunci[j])+1 to 32 do //untuk kolom=32 kunci[j]:=kunci[j]+'0'; for k:=j+1 to 8 do //untuk baris=8 kunci[k]:='00000000000000000000000000000000';end;//awal proses filenamafile:=copy(opendialog1.FileName,1,length(opendialog1.filename)-3);namafile:=namafile+'gost';

//buka fileAssignFile(tmp,namafile);rewrite(tmp,1);AssignFile(buka,opendialog1.FileNamereset(buka,1);i:=0;repeat BlockRead(buka,buffer,128,recdata); inc(i); until (recdata=0); reset(buka,1);Gauge1.MaxValue:=i*16;

//baca filerepeatBlockRead(buka,buffer,128,recdata); plaintext:=''; //plaintext kosonghit128:=0;for ulang5:=1 to 128 dobegingauge1.Progress:=gauge1.Progress+1; //awal prulangan forulang 5biner:=caribiner(buffer[ulang5]);

Page 106: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

106

plaintext:=plaintext+biner;if ulang5 mod 8=0 thenbegin //awal jika ulang5 dibagi 8 sisa 0//akhir proses filepkiri:=copy(plaintext,1,32);pkanan:=copy(plaintext,33,32);//perulangan enkripsifor ulang1:=1 to 3 dobegin //awal perulangan ulang1 for ulang2:=1 to 8 do begin //awal perulangan ulang2 tampung:=pkanan; //mod 232 biner:=jumlahbinerdankunci(pkanan,kunci[ulang2]); hexanya:=carihexanya(biner);

for i:=1 to 8 do hexanya[i]:=sbox[i,hexanya[i]]; pkanan:=''; for i:=1 to 8 do pkanan:=pkanan+hexatobiner(hexanya[i]); a:=copy(pkanan,1,11);//dari bit 1 sebanyak 11 bit b:=copy(pkanan,12,21); //dari 12 sebanyak 21 bit pkanan:=b+a;

//XOR hsl:=''; for i:=1 to length(pkanan) do begin //awal ulang i if pkanan[i]=pkiri[i] then hsl:=hsl+'0' else hsl:=hsl+'1'; end; //akhir ulang i pkanan:=hsl; pkiri:=tampung; end; //akhir dari ulang 2end; //akhir ulang1 for ulang3:=8 downto 1 do begin //awal perulangan ulang3 tampung:=pkanan; //mod 232 biner:=jumlahbinerdankunci(pkanan,kunci[ulang3]); hexanya:=carihexanya(biner);

for i:=1 to 8 do hexanya[i]:=sbox[i,hexanya[i]]; pkanan:=''; for i:=1 to 8 do pkanan:=pkanan+hexatobiner(hexanya[i]); a:=copy(pkanan,1,11);//dari bit 1 sebanyak 11 bit b:=copy(pkanan,12,21); //dari 12 sebanyak 21 bit pkanan:=b+a;

//XOR hsl:=''; for i:=1 to length(pkanan) do begin //awal perulangan i if pkanan[i]=pkiri[i] then hsl:=hsl+'0' else hsl:=hsl+'1'; end; //akhir perulangan i

Page 107: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

107

pkanan:=hsl; pkiri:=tampung; end; //akhir erulangan ulang3

//penggabungan plaintext dalam bentuk biner str1:=pkanan+pkiri;i:=0; //counter i=0 bacakarakterwhile i<>length(str1)dobegin //awal perulangan whileinc(i);//baca satu angka di urutan ides:=des+str1[i];if (i mod 8=0)or(i=length(str1))thenbegin //awal ifinc(hit128); //counter masukin bufer2buffer2[hit128]:=(binerkedesimal(des));des:='';end; //akhir ifend; //akhir perulangan whileplaintext:='';end; //akhir dari jika ulang5di bagi 8 sisa 0end; //akhir perulangan for ulang5 Blockwrite(tmp,buffer2,recdata,recdata2); hit128:=0;until (recdata =0)or(recdata<>recdata2); closefile(buka);closefile(tmp); akhir:=now-awal; edit3.Text:=formatdatetime(' hh:mm:ss:zzz', akhir);

size.Visible:=true; Enkrip.Enabled:=false; openfile.Enabled:=true; Keluar.Enabled:=true; end; //end procedure

procedure TForm3.KeluarClick(Sender: TObject);begin close; end;end.

Program Dekripsi File

unit dekripsi;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls, Buttons, Gauges, ExtCtrls, jpeg,ShellAPI;typehexa8=array[1..8] of byte; TForm4 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Bevel2: TBevel; Gauge1: TGauge; Edit3: TEdit; Saveas: TBitBtn; SaveDialog1: TSaveDialog; Keluar: TBitBtn;

Page 108: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

108

Openfile: TBitBtn; OpenDialog1: TOpenDialog; Dekrip: TBitBtn; Image1: TImage; Image2: TImage; Label3: TLabel; Size: TLabel; procedure OpenfileClick(Sender: TObject); procedure SaveasClick(Sender: TObject); procedure DekripClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure KeluarClick(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form4: TForm4; plaintext : string[64];pkiri,pkanan : string[32];kunci : array[1..8] of string;sbox:array[1..8,0..15] of byte;hexanya:hexa8;tampung:string;implementation{$R *.dfm}function caribiner(x:word):string;var biner,bin:string;var sisa,i,j:integer;beginbiner:=''; while x<>0 do begin sisa:=x mod 2; biner:=biner+inttostr(sisa); x:=x div 2; end;

if length(biner)=0 thenbiner:=biner+'00000000';if length(biner)=1 thenbiner:=biner+'0000000';if length(biner)=2 thenbiner:=biner+'000000';if length(biner)=3 thenbiner:=biner+'00000';if length(biner)=4 thenbiner:=biner+'0000';if length(biner)=5 thenbiner:=biner+'000';if length(biner)=6 thenbiner:=biner+'00';if length(biner)=7 thenbiner:=biner+'0';bin:='';for i:=8 downto 1 dobeginbin:=bin+biner[i];end;caribiner:=bin;end;

Page 109: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

109

function caribiner32(x:word):string;var biner,bin:string;var sisa,i,j:integer;beginbiner:=''; while x<>0 do begin sisa:=x mod 2; biner:=biner+inttostr(sisa); x:=x div 2; end;

for i:=length(biner)+1 to 32 dobiner:=biner+'0';bin:='';for i:=32 downto 1 dobeginbin:=bin+biner[i];end;caribiner32:=bin;end;

function jumlahbinerdankunci(biner1,biner2:string):string;var sisa,i,total,pkt,hsl:integer;hasil,hasil1:string;jml,a,b:integer;beginsisa:=0;hasil:='';for i:=length(biner1)downto 1 dobegina:=strtoint(biner1[i]);b:=strtoint(biner2[i]);jml:=a+b+sisa; end;end;

function carihexanya(biner:string):hexa8;var hexa1,hexa2:integer;begincarihexa(copy(biner,1,8),hexa1,hexa2);carihexanya[1]:=hexa1;carihexanya[2]:=hexa2;carihexa(copy(biner,9,16),hexa1,hexa2);carihexanya[3]:=hexa1;carihexanya[4]:=hexa2;carihexa(copy(biner,17,24),hexa1,hexa2);carihexanya[5]:=hexa1;carihexanya[6]:=hexa2;carihexa(copy(biner,25,32),hexa1,hexa2);carihexanya[7]:=hexa1;carihexanya[8]:=hexa2;end;

procedure TForm4.DekripClick(Sender: TObject);varisi,biner: string;i,j,k,ulang1,ulang2,ulang3,ulang5: integer;buka,tmp:file;kodeascii:word;awal,akhir:TdateTime;buffer,buffer2:array[1..128] of byte;a,b,hsl,str1,des:string;

Page 110: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

110

recdata,recdata2,hit128:integer; SearchRec: TSearchRec;

begin if(edit1.text='') or(edit2.text='') thenbegin if (messagebox(0,'Silakan masukkan File dan atau Kunci terlebihdahulu.', 'Warning',MB_OK+MB_ICONEXCLAMATION))=IDYES then edit2.Text:=''; end

openfile.Enabled:=false; dekrip.Enabled:=false; awal:=(now); isi:=edit2.text;for i:=1 to 8 dokunci[i]:='';j:=1;if length(kunci[j])=32 then //jika kolom sudah 32 maka pindah bariskebawahnya inc(j);end;

if j<=8 thenbeginfor i:=length(kunci[j])+1 to 32 do //untuk kolom=32 kunci[j]:=kunci[j]+'0'; for k:=j+1 to 8 do //untuk baris=8 kunci[k]:='00000000000000000000000000000000';end;

AssignFile(tmp,'C:\temp.txt');rewrite(tmp,1);AssignFile(buka,opendialog1.FileName);reset(buka,1);i:=0;repeat BlockRead(buka,buffer,128,recdata); inc(i); until (recdata=0); reset(buka,1);Gauge1.MaxValue:=i*16;

repeatBlockRead(buka,buffer,128,recdata);plaintext:='';hit128:=0;for ulang5:=1 to 128 dobegingauge1.Progress:=gauge1.Progress+1;biner:=caribiner(buffer[ulang5]);plaintext:=plaintext+biner;if ulang5 mod 8=0 thenbegin

pkiri:=copy(plaintext,1,32);pkanan:=copy(plaintext,33,32);for ulang2:=1 to 8 dobegintampung:=pkanan;//mod 232biner:=jumlahbinerdankunci(pkanan,kunci[ulang2]);

Page 111: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

111

hexanya:=carihexanya(biner);

for i:=1 to 8 dohexanya[i]:=sbox[i,hexanya[i]];pkanan:='';for i:=1 to 8 dopkanan:=pkanan+hexatobiner(hexanya[i]);a:=copy(pkanan,1,11);//dari bit 1 sebanyak 11 bitb:=copy(pkanan,12,21); //dari 12 sebanyak 21 bitpkanan:=b+a;

//XORhsl:='';for i:=1 to length(pkanan) do begin if pkanan[i]=pkiri[i] then hsl:=hsl+'0' else hsl:=hsl+'1'; end; pkanan:=hsl; pkiri:=tampung;end;

for ulang1:=1 to 3 dofor ulang3:=8 downto 1 dobegintampung:=pkanan;//mod 232biner:=jumlahbinerdankunci(pkanan,kunci[ulang3]);hexanya:=carihexanya(biner);

for i:=1 to 8 dohexanya[i]:=sbox[i,hexanya[i]];

for i:=1 to 8 dobeginpkanan:='';end;for i:=1 to 8 dopkanan:=pkanan+hexatobiner(hexanya[i]);a:=copy(pkanan,1,11);//dari bit 1 sebanyak 11 bitb:=copy(pkanan,12,21); //dari 12 sebanyak 21 bitpkanan:=b+a;

//XORhsl:='';for i:=1 to length(pkanan) do begin if pkanan[i]=pkiri[i] then hsl:=hsl+'0' else hsl:=hsl+'1'; end; pkanan:=hsl; pkiri:=tampung;end;str1:=pkanan+pkiri;i:=0;while i<>length(str1)dobegininc(i);des:=des+str1[i];

Page 112: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

112

if (i mod 8=0) or (i=length(str1))thenbegininc(hit128);buffer2[hit128]:=(binerkedesimal(des));des:='';end;end;plaintext:='';end;end;Blockwrite(tmp,buffer2,recdata,recdata2); hit128:=0;until (recdata =0)or(recdata<>recdata2); closefile(buka);closefile(tmp);

messagebox(0,'Proses Dekripsi telahselesai.','Confirmation',MB_OK+MB_ICONASTERISK); Saveas.Enabled:=true; openfile.Enabled:=true; Keluar.Enabled:=false; Dekrip.Enabled:=false; end;end;

procedure TForm4.OpenfileClick(Sender: TObject);var ekstensi:string;beginif opendialog1.execute then //untuk mencari letak file (path)beginedit1.Text:=opendialog1.filename; Dekrip.Enabled:=true; gauge1.Progress:=0;edit3.Text:=formatdatetime(' hh:mm:ss:zzz', 0); end;end;end;

procedure TForm4.SaveasClick(Sender: TObject);vartmp,simpan:file;buffer:array[1..128] of byte;recdata,recdata2:integer;ekstensi,namafile:string;beginif savedialog1.execute then //untuk mencari letak file (path)beginassignfile(tmp,'C:\temp.txt');reset(tmp,1); //bacaassignfile(simpan,savedialog1.FileName);rewrite(simpan,1);repeatbeginBlockRead(tmp,buffer,128,recdata);Blockwrite(simpan,buffer,recdata,recdata2);end;until(recdata < 128)or(recdata<>recdata2);closefile(tmp);closefile(simpan); size.Visible:=true; Keluar.Enabled:=false;openfile.Enabled:=true;end;

Page 113: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

113

procedure TForm4.KeluarClick(Sender: TObject);beginclose;end;end.

Program Bantuan

unit bantuan;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls, jpeg, ExtCtrls, Buttons;type TForm5 = class(TForm) BitBtn1: TBitBtn; Label1: TLabel; Image2: TImage; Bevel2: TBevel; Image1: TImage; Memo1: TMemo; procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form5: TForm5;implementation{$R *.dfm}procedure TForm5.BitBtn1Click(Sender: TObject);beginExit;end;end.

Program Tentang Aku

unit tentang_aku;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms,Dialogs, jpeg, ExtCtrls, StdCtrls,shellAPI;type TForm6 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Image3: TImage; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label10: TLabel; Label11: TLabel; Bevel2: TBevel;

Page 114: IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN …

114

Image2: TImage; Label8: TLabel; Timer1: TTimer; Image4: TImage; Image1: TImage; Bevel3: TBevel; Bevel1: TBevel; Label9: TLabel; procedure Timer1Timer(Sender: TObject); procedure Label9Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form6: TForm6;implementation{$R *.dfm}procedure TForm6.Timer1Timer(Sender: TObject);beginif label8.Visible=true thenlabel8.Visible:=falseelselabel8.Visible:=true;end;end.