IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN MENGGUNAKAN ALGORITMA GOST

IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN MENGGUNAKAN ALGORITMA GOST SKRIPSI

  Disusun Oleh :

  Heni Pratiwi NIM : 035314012 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS SANATA DHARMA YOGYAKARTA

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

  

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

YOGYAKARTA

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

  

Halaman Persembahan

Skripsi ini kupersembahkan untuk : Tuha n Yesus-ku sumber kekuatan dan sumber segalanya yang selalu member kati dan menyer taiku.

  Ba pa k da n I buku, ungkapan r asa hor mat, cinta dan baktiku

  K a ka k - ka ka kku yang selalu mendukungku dan mendoakanku

  

D osen dosenku yang telah member ikan ilmu pengetahuan

pada saya

  Tem a n-tem a nku yang selalu membantu dan menyemangatiku

  

Halaman M otto

Dekatkan dirimu kepada Tuhan dan serahkanlah segala

kekuatiran, kebencian, dan ketakutanmu. Ia pasti

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

  

Ke rja kanla h se sua tu se c a ra tulus dan waja r, da n

se g a lanya a ka n ba ik. Ke se mpurna a n te rle ta k pa da

motiva si ke rja , buka n pa da pe ke rja a n. (Guru Ching Ha i).

  

K esengsaraan menimbulkan ketekunan, dan ketekunan

menimbulkan tahan uji, dan tahan uji menimbulkan pengharapan.

  ( Roma 5:3- 4) .

  

IMPLEMENTASI ENKRIPSI DAN DEKRIPSI DOKUMEN

MENGGUNAKAN ALGORITMA GOST

Heni Pratiwi

035314012

  

ABSTRAKSI

  Jika ada data penting yang harus dilindungi kerahasiaannya, maka diperlukan suatu teknik untuk mengamankan data tersebut. Salah satu teknik yang digunakan yaitu dengan melakukan enkripsi. Enkripsi adalah teknik pengkodean data oleh algoritma tertentu yang membuat data tidak bisa dibaca oleh program apa saja tanpa kunci decryption. Enkripsi juga dapat digunakan untuk melakukan proteksi pada saat data ditransmisikan melalui jalur komunikasi. Salah satu teknik enkripsi yang digunakan adalah symmetric encryption, yaitu menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. Kunci simetris (symmetric

  

encryption) yang digunakan merupakan kesepakatan antara pengirim dan

penerima pesan.

  Dalam tugas akhir ini akan menggunakan Algoritma Gost. Algoritma ini termasuk dalam symmetric encryption. Algoritma ini dapat mengkodekan isi berkas dokumen asli dalam kode-kode tertentu agar tidak bisa dibaca orang lain yang tidak berhak. Algoritma ini merupakan blok cipher 64 bit dengan panjang kunci 256 bit. Pada tugas akhir ini akan menggunakan bahasa pemrograman Delphi. Dalam tugas akhir ini akan mencari kecepatan proses dan rerata rasio ketiga tipe berkas (.txt,.doc,.rtf). Berkas dokumen yang digunakan untuk uji coba berjumlah enam buah dengan berbagai ukuran.

  Percobaan dilakukan sebanyak tiga kali untuk masing-masing berkas, lalu diambil rata-rata waktunya. Kemudian dari rata-rata waktu tersebut dapat dihitung rerata waktu dan rerata rasio untuk ketiga tipe berkas. Hasil percobaan menunjukkan bahwa semakin besar ukuran berkas maka semakin lama pula waktu prosesnya.

  

IMPLEMENTATION OF DOCUMENTS ENCRYPTION AND

DECRYPTION USING GOST ALGORITHM

Heni Pratiwi

035314012

ABSTRACT

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

  On this final project will use Gost Algorithm. This algorithm include in

  

symmetric encryption. This algorithm can make some code in original documents

  which can not read for someone else who don’t have right. This algorithm have 64 cipher block with key length 256 bit. This final project will use Delphi programming language. On this final project will looking for the speed of time and rasio average between three type of documents (.txt,.doc,.rtf). There are six documents that used on this project with various size.

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

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 GOSTini 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

  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

  

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

  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

BAB V PENUTUP

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

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

DAFTAR PUSTAKA LAMPIRAN

  

DAFTAR GAMBAR

Gambar 3.7. Diagram Alir Baca Data Asli .............................................. 28Gambar 4.4 Pesan Peringatan Masukkan File dan atau Kunci.................38Gambar 4.3 Form Enkripsi File .............................................................. 38Gambar 4.2 Main Form Gost Encryption................................................ 37Gambar 4.1 Splash Screen...................................................................... 36Gambar 3.16. Desain Form Tentang Aku .................................................. 35Gambar 3.15. Desain Form Bantuan ......................................................... 34Gambar 3.14. Desain Form Dekripsi File .................................................. 34Gambar 3.13. Desain Form Enkripsi File .................................................. 33Gambar 3.12. Desain Main Form .............................................................. 32Gambar 3.11. Desain Splash Screen .......................................................... 31Gambar 3.10. Diagram Alir Tulis Data telah Dienkripsi ............................ 29Gambar 3.9. Diagram Alir Tulis Data Asli .............................................. 29Gambar 3.8. Diagram Alir Baca Data telah Dienkripsi ............................28Gambar 3.6. Diagram Alir Inisialisasi Kunci Dekripsi............................. 27Gambar 2.1. Enkripsi dan Dekripsi Sederhana...........................................7Gambar 3.5. Diagram Alir Inisialisasi Kunci Enkripsi ............................. 26Gambar 3.4. Diagram Zero (Level 2) ...................................................... 25Gambar 3.3. Diagram Zero (Level 1) ...................................................... 25Gambar 3.2. Diagram Zero (Level 0) ...................................................... 24Gambar 3.1. Context Diagram................................................................. 24Gambar 2.5 Blok Diagram Gost ............................................................. 16

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

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

  Gambar

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

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

  Gambar

Gambar 2.2. Enkripsi dan Dekripsi dengan Kunci Publik ..........................9Gambar 4.5 Pesan Peringatan Kunci Maksimal 32 Karakter ...................39Gambar 4.7 Pesan Peringatan Spesifikasi File yang Dienkripsi .............. 39Gambar 4.21 Pesan Konfirmasi Melihat Hasil Dekripsi............................ 48Gambar 4.32 Pesan Konfirmasi Melihat Hasil Dekripsi............................ 57Gambar 4.31 Pesan Konfirmasi Dekripsi selesai ...................................... 57Gambar 4.30 Proses Dekripsi File ............................................................ 56Gambar 4.29 Hasil Enkripsi Berkas Tes.gost............................................ 56Gambar 4.28 Pesan Konfirmasi Enkripsi Selesai ...................................... 56Gambar 4.27 Proses Enkripsi File ............................................................ 55Gambar 4.26 Uji Coba Berkas Tes.txt ...................................................... 55Gambar 4.25 Pesan Konfirmasi Keluar Program ...................................... 54Gambar 4.24 Form Tentang Aku.............................................................. 54Gambar 4.23 Form Bantuan .....................................................................54Gambar 4.22 Proses pada Tombol Dekrip ................................................ 49Gambar 4.20 Simpan File......................................................................... 48Gambar 4.8 Buka File ............................................................................ 40Gambar 4.19 Pesan Informasi Proses Dekripsi Selesai ............................. 48Gambar 4.18 Buka File ............................................................................ 47Gambar 4.17 Pesan Peringatan Spesifikasi File yang Didekripsi .............. 47Gambar 4.16 Pesan Kesalahan File yang Didekripsi Tidak Ada ............... 47Gambar 4.15 Pesan Peringatan Kunci Maksimal 32 Karakter ...................46Gambar 4.14 Pesan Peringatan Masukkan File dan atau Kunci.................46Gambar 4.13 Dekripsi File ....................................................................... 46Gambar 4.12 Proses pada Tombol Enkrip ................................................ 41Gambar 4.11 Pesan Informasi Simpan File Hasil Enkripsi........................ 41Gambar 4.10 Pesan Informasi File telah Dihapus .....................................40Gambar 4.9 Pesan Konfirmasi Hapus File Asli....................................... 40Gambar 4.33 Hasil Dekripsi Berkas Tes.txt.............................................. 57

  

DAFTAR TABEL

Tabel 2.1. Tabel Kebenaran XOR............................................................ 10Tabel 2.2. Round dan Subkey dalam Proses Enkripsi............................... 22Tabel 2.3. Round dan Subkey dalam Proses Dekripsi .............................. 22Tabel 4.1. Hasil Enkripsi Berkas Dokumen ............................................. 58Tabel 4.2. Hasil Dekripsi Berkas Dokumen ............................................. 58

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 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
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

  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 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.

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 :

  Kunci

  

Plaintext Enkripsi Ciphertext Dekripsi Plaintext

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 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

  (private key) hanya diketahui oleh pihak yang sah (Raharjo, 2002). Contohnya RSA, Elgamal, Diffie-Hellman.

  Kunci Publik Kunci Private

  

Plaintext Ciphertext Plaintext

  Enkripsi Dekripsi

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 (L ,R ).
  • Untuk tiap putaran i=1,2,3....n hitung

  L i = R i-1 R i = L i-1 xor f(R i-1 ,K i )

  • f adalah fungsi perputaran dan Ki adalah sub kuncinya.
  • Kemudian ciphertext (Ln,Rn)
  • Tanpa memperhatikan fungsi f, dekripsi dapat diselesaikan dengan

  R L

i-1= i

  L i-1 = R i xor f(L i , K i )

  • 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 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 :

  (k

  32 ,……...k 1 ) = K

  1

  (k

  64 ,…….k 33 ) = K

  2 …...

  (k 256 ,….k 225 ) = K

  8 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.

Gambar 2.3 Algoritma Gost untuk EnkripsiGambar 2.3.1 Lanjutan Algoritma Gost untuk EnkripsiGambar 2.4 Algoritma Gost untuk DekripsiGambar 2.4.1 Lanjutan Algoritma Gost untuk Dekripsi

  • K
  • 29 putaran lagi

  32 bit 64 bit

  

Chipertext

  S-Box <<<11 S-Box <<<11 S-Box <<<11

  Plaintext

  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

  Proses enkripsi dalam Algoritma Gost mempunyai beberapa proses yaitu:

Gambar 2.5 Blok Diagram Gost

  32

  K

  2

  1

  K

  32 bit 64 bit 32 bit

  Untuk blok diagram Gost dapat dilihat pada gambar 2.5.

  • 32 bit

2.2.1 Enkripsi

  (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

  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 K i . Pada satu putaran ke-i operasinya adalah sebagai berikut : pkiri i = pkanan i-1 , untuk i=1,2,3....32 rounds pkanan = pkiri xor f(pkanan ,K )

  i i-1 i-1 i

  Pada bagian penambahan pkanan i-1 dengan subkey K i, terdapat aturan :

  32

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

  32

  32

  32

  if pkanan +Ki > 2 then pkanan +Ki -2 (modulus 2 )

   i-1 i-1

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

  32 atau tidak melebihi 2 (untuk semua byte) ( Sukmawan, 2006). 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 : Pkiri : Pkanan : 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 +K

  1 Pkiri 1 =pkanan

  Berikut contoh proses untuk putaran pertama : pka 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 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

1

  • 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

  Hsl

1 Setelah dijumlah, maka hasilnya diubah ke bentuk hexadesimal seperti di

  Urutan (Xn) X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8

  1111 0101 1100 0011

  Hsl 1 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 (X

  1 ) menjadi S-box pertama, 4 bit kedua (X 2 ) 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 = [X

  1 , 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 :

  Hsl 3 13 6 1 13 5 9 7 1 Biner 0011 1101 0110 0001 1101 0101 1001 0111

  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 Hsl 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 1 Rotasi 11 bit ke kiri :

  3) Hsl=Hsl XOR pkiri dengan hasil di bawah ini : 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

  Hsl

  1

  4) Hasilnya yaitu Hsl menjadi pkanan dan pka menjadi pkiri (swap) untuk

  1 proses berikutnya.

  pkanan

  1 = Hsl

  1

  pkiri =pka

1 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: pkanan 32

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  pkiri 32 :

  1

  1

  1

  1

  1

  1

  1

  1

  1

  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 Pkanan

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

32 ASCII

  73 181 187

  32 Cipher

  I µ »

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1 Pkiri

32 ASCII

  8

  76 15 131

  Cipher

  L

   Ciphertext = pkanan 32 +pkiri

  32

  = 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

  

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:

  Pka 32

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1 Pkiri 32

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1

  1