Yunita Sari : Perancangan Dan Implementasi Sistem Keamanan Data Menggunakan Algoritma Simetri Tea Dengan Bahasa Pemrograman Delphi 7.0, 2009.
USU Repository © 2009
DATA MENGGUNAKAN ALGORITMA SIMETRI TEA
DENGAN BAHASA PEMROGRAMAN DELPHI 7.0
SKRIPSI
YUNITA SARI
041401031
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA MENGGUNAKAN
ALGORITMA SIMETRI TEA DENGAN BAHASA PEMROGRAMAN DELPHI 7.0
Kategori : SKRIPSI
Nama : YUNITA SARI
Nomor Induk Mahasiswa : 041401031
Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 17 Maret 2009
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Syahriol Sitorus, S.Si, MIT Prof. Dr. Iryanto, M.Si
NIP. 132 174 687 NIP. 130 353 140
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
PERNYATAAN
PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA MENGGUNAKAN ALGORITMA SIMETRI TEA DENGAN
BAHASA PEMROGRAMAN DELPHI 7.0
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 17 Maret 2009
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Allah SWT, dengan limpahan karunia-Nya kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan.
Ucapan terima kasih penulis sampaikan kepada Bapak Prof. Dr. Iryanto, M.Si selaku pembimbing 1 dan Bapak Syahriol Sitorus S.Si, MIT selaku Sekretaris Program Studi S-1 Ilmu Komputer serta pembimbing 2 pada penyelesaian skripsi ini yang telah memberikan panduan, motivasi serta kepercayaan yang penuh kepada penulis untuk menyempurnakan kajian ini, panduan ringkas dan padat serta profesional telah diberikan kepada penulis agar penulis dapat menyelesaikan penelitian ini. Selanjutnya kepada Bapak Drs. Muhammad Firdaus, M.Si selaku pembimbing akademik yang telah memberikan banyak arahan dalam perkuliahan pada penulis sejak penulis berada di Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara hingga menyelesaikan ujian sarjana lengkap. Kepada Bapak Prof. Dr. Muhammad Zarlis selaku Ketua Program Studi S-1 Ilmu Komputer serta pembanding 1 dan Bapak Drs. Agus Salim Harahap, M.Si selaku pembanding 2 Skripsi yang telah banyak memberikan saran, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen serta seluruh pegawai pada Program Studi Ilmu Komputer FMIPA USU, pegawai di FMIPA USU, pegawai di Biro Rektor USU.
ABSTRAK
DESIGN AND IMPLEMENTATION OF DATA SECURITY SYSTEM BY USING TEA SYMETRI ALGORITHM BY DEPLHI 7.0
PROGRAMMING LANGUAGE
ABSTRACT
DAFTAR ISI
1.1. Latar Belakang Masalah 11
1.2. Rumusan Masalah 12
1.3. Batasan Masalah 12
1.4. Tujuan Penelitian 13
1.5. Manfaat Penelitian 13
1.6. Metode Penelitian 13
1.7. Sistematika Penulisan 14
BAB 2 LANDASAN TEORI 16
2.1. Kriptografi 16
2.1.1. Definisi Kriptografi 17
2.1.2. Sejarah Kriptografi 19
2.1.3. Tujuan Kriptografi 20
2.1.4. Konsep Dasar Kriptografi 20
2.1.4.1. Message, Plaintext, dan Ciphertext 20
2.2. Tiny Encryption Algorithm 41
2.3. Masalah Keamanan Informasi Di Negara Republik Indonesia 46 2.3.1. Hari Persandian Nasional 46
2.3.2. 47
2.3.3. Standar Keamanan Nasional 48 2.4. Rekayasa Perangkat Lunak 51 2.5. Pemrograman dengan Delphi 7.0 53
3.4. Analisis Proses Deskripsi Algoritma TEA 61
3.5. Pemodelan Fungsional 61
3.5.1. DFD dan Spesifikasi Proses 61
3.5.2. Kamus Data 69
BAB 4 PERANCANGAN DAN IMPLEMENTASI 72
4.1. Perancangan 72
4.1.1. Perancangan Struktur Data 72 4.1.2. Perancangan Struktur Program 73 4.1.3. Perancangan Antarmuka Pemakai 75
4.1.4. Perancangan Prosedural 79
4.2. Implementasi 84
BAB 5 PENUTUP 90
5.1. Kesimpulan 90
5.2. Saran 91
DAFTAR PUSTAKA 92
DAFTAR TABEL
Halaman
Tabel 2.1 Perbandingan Estimasi Proses Algoritma TEA 45 dengan Algoritma Simetri lainnya.
Tabel 3.1 Spesifikasi proses diagram konteks/DFD Level 0 62 Tabel 3.2 Spesifikasi proses diagram level 1 64 Tabel 3.4 Spesifikasi Proses DFD Level 2 Proses 2 (Proses Enkripsi) 66 Tabel 3.5 Spesifikasi Proses DFD Level 3 Proses 3 (Proses Deskripsi) 68
Tabel 3.6 Kamus Data Proses Enkripsi 70
DAFTAR GAMBAR
Halaman
Gambar 2.1 Mesin Enkripsi Enigma 18
Gambar 2.2 Proses Enkripsi dan Deskripsi 20 Gambar 2.3 Contoh Plainteks dan Cipherteks 21 Gambar 2.4 Skema Komunikasi dengan Proses Enkripsi 22 Gambar 2.5 Hubungan Kriptografi, Kriptanalisis dan Steganografi 23 Gambar 2.6 Proses Enkripsi – Deskripsi Menggunakan Algoritma Simetri 24 Gambar 2.7 Proses Enkripsi – Deskripsi Menggunakan Algoritma Asimetri 55 Gambar 2.8 Skema enkripsi dan dekripsi dengan mode ECB 32
Gambar 4.7 Flowchart Prosedur Deskripsi 83
Gambar 4.8 Tampilan Layar Utama KripTEA 84
Gambar 4.9 Tampilan Layar Encryption 85
Gambar 4.10 Tampilan Layar Encryption Pada Saat Menampilkan Output 86
Enkripsi File
Gambar 4.11 Tampilan Layar Descryption 87
Gambar 4.12 Tampilan Layar Descryption Pada Saat Menampilkan Output 88
Deskripsi File
BAB 1
PENDAHULUAN
1.1 Latar Belakang Masalah
Masalah keamanan dan kerahasiaan data merupakan hal yang sangat penting
dalam suatu organisasi maupun pribadi. Apalagi jika data tersebut berada dalam
suatu jaringan komputer yang terhubung/terkoneksi dengan jaringan lain. Hal
tersebut tentu saja akan menimbulkan resiko bilamana informasi yang sensitif dan
berharga tersebut diakses oleh orang-orang yang tidak berhak. Yang mana jika hal
tersebut sampai terjadi, kemungkinan besar akan merugikan bahkan
membahayakan orang yang mengirim pesan atau menerima pesan, maupun
organisasinya. Informasi yang terkandung di dalamnya pun bisa saja berubah
sehingga menyebabkan salah penafsiran oleh penerima pesan. Selain itu data yang
dibajak tersebut akan memiliki kemungkinan rusak bahkan hilang yang akan
menimbulkan kerugian material yang besar.
Oleh karena itu, untuk menghindari agar hal tersebut tidak terjadi,
digunakanlah sebuah program khusus proteksi/enkripsi data. Saat ini banyak
beredar program khusus proteksi data, pada umumnya program tersebut tidak
hanya menyediakan satu metoda saja, tetapi beberapa jenis sehingga kita dapat
memilih yang menurut kita paling aman. Dewasa ini, dalam dunia dengan arus
informasi yang semakin global, kriptografi telah menjadi suatu bagian yang tidak
dapat dipisahkan dari sistem keamanan jaringan. Ada berbagai algoritma
kriptografi yang sekarang ini telah dan sedang dikembangkan, salah satunya
diantaranya algoritma kunci simetris ataupun asimetris (pembagian berdasarkan
kunci). Salah satu metode enkripsi data adalah Tiny Encryption Algorithm (TEA).
Tiny Encryption algorithm (TEA) merupakan suatu algoritma sandi yang
diciptakan oleh David Wheeler dan Roger Needham dari Computer Laboratory,
merupakan algoritma penyandian block cipher yang menggunakan proses feistel
network dengan panjang kunci 128 bit, dengan cara memproses 64-bit input sekali
waktu dan menghasilkan 64-bit output.
Dalam tugas akhir ini penulis akan membahas bagaimana kinerja dari
algoritma Tiny Encrytion Algorithm (TEA) dalam proses enkripsi dan deskripsi
pesan, sejauh manakah tingkat keamanannya.
1.2 Rumusan Masalah
Dalam tugas akhir ini penulis akan membahas masalah tentang :
a. Bagaimana merancang sistem keamanan data menggunakan Algoritma simetri
Tiny Encryption algorithm (TEA).
b. Bagaimana mengimplementasikan Tiny Encryption Algorithm (TEA) dalam
bentuk aplikasi sederhana menggunakan bahasa pemrograman Delphi 7.0.
1.3 Batasan Masalah
a. Dalam penelitian ini hanya membahas mengenai proses penyandian pesan
yang meliputi : proses enkripsi dan deskripsi pesan menggunakan algoritma
TEA serta mengimplementasikannya dalam sebuah program sederhana.
b. Dalam penelitian ini hanya membahas mengenai proses penyandian yang
dilakukan pada pesan dalam format teks (seperti dalam format *.doc dan *.txt).
c. Tidak membahas mengenai mekanisme pemecahan kunci sandi (kriptanalisis).
d. Tidak membahas tentang cara memecahkan masalah feistel network,
penjumlahan bilangan delta ((5/4)1/2 - 1/2 ~ 0.618034) 232 yang merupakan
e. Proses enkripsi dan deskripsi dilakukan secara sederhana hanya pada data yang
disimpan di dalam storage, bukan pada data yang dikirim (ditransmisikan)
dalam suatu saluran komunikasi.
f. Sistem yang dibangun lebih memfokuskan pada kerahasian data
(confidentiality).
g. Aplikasi dibuat menggunakan bahasa pemrogaraman Delphi 7.0.
1.4 Tujuan Penelitian
Adapun tujuan dari Tugas Akhir ini adalah merancang suatu sistem keamanan data
yang cukup handal yang dapat digunakan dalam hal pengamanan data agar tidak
dapat diganggu ataupun diakses oleh pihak yang tidak berhak meskipun digunakan
pada jaringan yang tidak aman, sehingga keamanan data tetap terjaga.
1.5 Manfaat Penelitian
Adapun manfaat dari penelitian yang dilakukan adalah untuk mengetahui sejauh
manakah keamanan data dapat terjaga dengan menggunakan algoritma Tiny
Encryption Algorithm (TEA) dan menilik lebih lanjut bahwa masih banyak
algoritma yang lebih baik daripada DES khususnya dalam pengamanan data serta
dengan adanya software yang dirancang nantinya diharapkan akan memudahkan
bagi siapa saja yang ingin melindungi datanya agar tidak dapat dibaca oleh
1.6 Metode Penelitian
Adapun langkah-langkah yang akan ditempuh dalam proses penelitian selama
pengerjaan tugas akhir ini adalah sebagai berikut :
a. Studi literatur. Penulisan ini dimulai dengan studi kepustakaan, yaitu dengan
mengumpulkan bahan-bahan referensi baik dari buku, artikel, paper, jurnal,
makalah, situs internet mengenai algoritma kriptografi Tiny Encryption
Algorithm (TEA) dan konsep matematis yang mendasarinya serta
pemrograman untuk pembuatan aplikasinya, dan beberapa referensi lainnya
untuk menunjang pencapaian tujuan tugas akhir yang dibuat.
b. Analisis permasalahan. Pada tahap ini dilakukan analisis terhadap Tiny
Encryption Algorithm (TEA) baik dari aspek matematis maupun proses
penyandiannya.
c. Perancangan Sistem. Perancangan sistem yang dapat menjaga keamanan data.
d. Implementasi sistem yang dirancang kedalam sebuah bahasa pemrograman.
e. Testing Program. Untuk mengetahui sejauh manakah tingkat kesuksesan
program yang dibuat.
f. Penyusunan laporan dan penarikan kesimpulan. Menyusun laporan hasil
analisis dan perancangan ke dalam format penulisan tugas akhir disertai
penarikan kesimpulan.
1.7 Sistematika Penulisan
BAB 1 : PENDAHULUAN
Bab ini akan menjelaskan mengenai latar belakang pemilihan judul, rumusan
masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode
penelitian, dan sistematika penulisan.
BAB 2 : LANDASAN TEORI
Pada bab ini dibahas mengenai teori-teori yang mendukung pembahasan bab
BAB 3 : ANALISIS DAN PEMODELAN PERANGKAT LUNAK
Berisikan analisa permasalahan dan kebutuhan algoritma Tiny Encryption
Algorithm (TEA) serta pemodelan sistem secara fungsional.
BAB 4 : PERANCANGAN DAN IMPLEMENTASI
Berisikan gambaran rancangan struktur program dan desain antar muka, serta
memberikan gambaran dari rancang bangun yang lengkap kepada user dan
pemakai komputer yang lain serta implementasinya yaitu menguji untuk
menemukan kesalahan serta implementasi enkripsi/dekripsi data menggunakan
algoritma Tiny Encryption Algorithm (TEA).
BAB 5 : PENUTUP
Bab terakhir akan memuat kesimpulan isi dari keseluruhan uraian bab-bab
sebelumnya dan saran-saran dari hasil yang diperoleh yang diharapkan dapat
BAB 2
LANDASAN TEORI
2.1 Kriptografi
2.1.1 Definisi Kriptografi
Untuk dapat mengenal kriptografi diperlukan pemahaman mengenai masalah yang
berhubungan dengan keamanan informasi secara umum. Keamanan informasi
membangun dirinya sendiri dalam berbagai cara sesuai dengan situasi dan kebutuhan
(Menezes, van Oorschot dan Vanstone, 1996).
Kata kriptografi berasal dari bahasa Yunani, “krypós” yang berarti
tersembunyi dan “gráphein” yang berarti tulisan. Sehingga kata kriptografi dapat
diartikan berupa frase “tulisan tersembunyi”.
Bishop (2005) menyatakan bahwa kriptografi merupakan seni dan ilmu yang
ditujukan untuk menyembunyikan arti yang sesungguhnya.
Menezes, van Oorschot dan Vanstone (1996) menyatakan bahwa kriptografi
adalah suatu studi teknik matematika yang berhubungan dengan aspek keamanan
informasi seperti kerahasiaan, integritas data, otentikasi entitas dan otentikasi keaslian
data. Kriptografi tidak hanya berarti penyediaan keamanan informasi, melainkan
sebuah himpunan teknik-teknik.
Selain definisi di atas, Scheiner (1996) mengemukakan pendapatnya tentang
defenisi kriptografi yaitu : ilmu dan seni untuk menjaga keamanan pesan. Penggunaan
kata “seni” di dalam definisi di atas berasal dari fakta sejarah bahwa pada masa-masa
awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk
pelaku kriptografi sehingga setiap cara menulis pesan rahasia pesan mempunyai nilai
estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan
pesan (kata “graphy” di dalam “cryptography” itu sendiri sudah menyiratkan sebuah
seni) (Munir, 2006).
2.1.2 Sejarah Kriptografi
Kriptografi mempunyai sejarah yang sangat menarik dan panjang. Kriptografi sudah
digunakan 4000 tahun yang lalu dan diperkenalkan oleh bangsa mesir untuk mengirim
pesan ke pasukan militer yang berada di lapangan. Mereka menggunakan hieroglyphcs
untuk menyembunyikan tulisan dari pihak yang tidak diinginkan. Hieroglyphcs
diturunkan dari bahasa Yunani hieroglyphica yang berarti ”ukiran rahasia”.
Hieroglyphs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk
digunakan. Dengan demikian, pesan tersebut tidak dapat terbaca oleh pihak musuh
walaupun kurir pembawa pesan tersebut tertangkap oleh musuh. Demikianlah hingga
penggunaan kriptografi pada abad ke-20 (Menezes, van Oorschot dan Vanstone, 1996)
( Ariyus, 2005).
Sejarah kriptografi sebagian besar merupakan sejarah kriptografi klasik, yaitu
metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan bantuan
alat mekanik sederhana. Secara umum algoritma kriptografi klasik dikelompokkan
menjadi dua kategori, yaitu algoritma transposisi (transposition cipher) dan algoritma
substitusi (substitution cipher). Transposition cipher mengubah susunan huruf-huruf
di dalam pesan, sedangkan substitution cipher mengganti setiap huruf atau kelompok
huruf dengan sebuah huruf atau kelompok huruf lain.
Sejarah kriptografi klasik mencatat penggunaan cipher transposisi oleh tentara
Sparta di Yunani pada permulaan tahun 400 SM. Mereka menggunakan alat yang
namanya scytale. Scytale terdiri dari sebuah kertas panjang dari daun papyrus yang
dililitkan pada sebuah silinder dari diameter tertentu (diameter silender menyatakan
dilepaskan, maka huruf-huruf di dalamnya telah tersusun secara acak membentuk
pesan rahasia. Untuk membaca pesan, penerima pesan harus melilitkan kembali kertas
tersebut ke silinder yang diameternya sama dengan diameter silinder pengirim.
Sedangkan algoritma substitusi paling awal dan paling sederhana adalah
Caesar cipher, yang digunakan oleh raja Yunani kuno, Julius Caesar. Caranya adalah
dengan mengganti setiap karakter di dalam alfabet dengan karakter yang terletak pada
tiga posisi berikutnya di dalam susunan alfabet (Munir, 2006).
Pada perang dunia kedua, Jerman menggunakan enigma atau juga disebut
dengan mesin rotor yang digunakan Hitler untuk mengirim pesan kepada tentaranya.
Jerman sangat percaya bahwa pesan yang dikirim melalui enigma tidak terpecahkan
kode – kode enkripsinya. Akan tetapi, anggapan tersebut keliru. Ternyata setelah
bertahun – tahun, sekutu dapat memecahkan kode – kode tersebut setelah
mempelajarinya. Setelah jerman mengetahui bahwa kode – kode tersebut dapat
terpecahkan, enigma yang digunakan pada perang dunia kedua beberapa kali
mengalami perubahan. Demikianlah, karena Enigma berhasil dipecahkan oleh pihak
Sekutu dan keberhasilan memecahkan Enigma sering dikatakan sebagai faktor yang
memperpendek perang dunia kedua (Ariyus, 2005).
Kriptografi modern dipicu oleh perkembangan peralatan komputer digital.
Dimulai dari usaha Feistel dari IBM di awal tahun 70-an dan mencapai puncaknya
pada 1977 dengan pengangkatan DES (Data Encryption Standard) sebagai standar
pemrosesan informasi federal Amerika Serikat untuk mengenkripsi informasi yang
belum diklasifikasi. DES merupakan mekanisme kriptografi yang paling dikenal
sepanjang sejarah. Kemudian karena lama kelamaan DES dianggap tidak aman, maka
untuk menjawab tantangan dalam dunia kriptografi, NIST (National Institue of
Standards and Technology) sebagai standar pengolah informasi Federal AS bersiap –
siap mengganti DES. pada tahun 1997 dimulailah diadakan kontes yang diikuti oleh
21 pelamar. Kemuidan pada bulan agustus 1999 terpilihlah 5 kandidat sebagai finalis :
Mars ( IBM Amerika), RC6 (RSA corp, Amerika), Rijndael(belgia), Serpent(Israel,
Norwegia, dan Inggris), dan Twofish (Counterpane Amerika). ( Kurniawan, 2004).
2.1.3 Tujuan Kriptografi
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek
keamanan informasi, yaitu :
a. Kerahasiaan (confidentiality), adalah layanan yang digunakan untuk menjaga isi
informasi dari siapapun kecuali yang memiliki otoritas atau kunci sandi untuk
membuka/mengupas informasi yang telah disandi. Ada beberapa pendekatan untuk
menjaga kerahasiaan, dari pengamanan secara fisik hingga penggunaan algoritma
matematika yang membuat data tidak dapat dipahami. Istilah lain yang senada
dengan confidentiality adalah secrecy dan privacy.
b. Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara
tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk
mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain
penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang
sebenarnya. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan
tanda-tangan digital (digital signature). Pesan yang telah ditandatangani
c. Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara
kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling
berkomunikasi harus memperkenalkan diri. Informasi yang dikirimkan melalui
kanal harus diautentikasi keaslian isi datanya, waktu pengiriman, dan lain-lain.
Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan
otentikasi sumber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan
menggunakan tanda-tangan digital (digital signature). Tanda-tangan digital
menyatakan sumber pesan.
d. Non-Repudiasi atau nirpenyangkalan, adalah usaha untuk mencegah terjadinya
penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang
mengirimkan/membuat. (Kurniawan, 2004).
2.1.4 Konsep Dasar Kriptografi
2.1.4.1 Message, Plaintext, dan Ciphertext
Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti
maknanya. Nama lain untuk pesan adalah plainteks atau data asli yang bisa
memberikan informasi bila dibaca/dianalisa (cleartext). Ciphertext adalah data yang
sudah mengalami proses kriptografi, sehingga informasi yang terkandung di dalamnya
biasa disembunyikan. Ciphertext inilah yang kemudian akan dikirimkan melalui
jaringan. Encrypt/enkripsi adalah proses untuk mengubah Plaintext menjadi
Ciphertext. Decrypt/deskripsi adalah proses untuk mengubah Ciphertext menjadi
Plaintext kembali. Secara sederhana proses tersebut digambarkan sebagai berikut :
Adapun dasar matematis yang mendasari proses enkripsi dan deskripsi adalah relasi
dua himpunan yaitu himpunan berisi elemen plaintext dan himpunan berisi elemen
ciphertext. (B. Schneier, 1996).
Adapun tujuan dari adanya enkripsi adalah untuk meningkatkan keamanan
data tetapi juga berfungsi untuk :
1. Melindungi data agar tidak dapat dibaca oleh orang-orang yang tidak berhak.
2. Mencegah agar orang-orang yang tidak berhak, menyisipkan atau mengahapus data.
(a) Plainteks (teks) (b) Cipherteks dari (a)
Gambar 2.3 Contoh plainteks dan cipherteks.
2.1.4.2Peserta Komunikasi
a. Entitas atau peserta adalah orang atau sesuatu yang mengirim, menerima, atau
memanipulasi informasi. Entitas bisa berupa orang, terminal komputer, kartu
kredit, dan sebagainya. Jadi, orang bisa bertukar pesan dengan orang lainnya
(contoh: Alice berkomunikasi dengan Bob) sedangkan di dalam jaringan
komputer, mesin (komputer) berkomunikasi dengan mesin (contoh: mesin ATM
berkomunikasi dengan komputer server di bank).
b. Pengirim adalah entitas dalam komunikasi yang mengirimkan informasi kepada
entitas lainnya lainnya.
d. Penyusup (adversary) adalah entitas diluar pengirim dan penerima yang mencoba
untuk membobol keamanan informasi. Penyusup biasanya bertindak seolah-olah
sebagai pengirim yang sah ataupun penerima yang sah. Adapun keterangan
tersebut dapat dilihat pada gambar berikut :
Gambar 2.4 Skema komunikasi dengan proses enkripsi
2.1.4.3 Kriptologi
Kriptologi berasal dari bahasa Yunani, “kryptós” yang berarti “tersembunyi” dan
“lógos” yang berarti “kata”. Jadi, kriptologi dapat diartikan sebagai frase kata yang
tersembunyi (Oppliger, 2005). Kriptologi dapt juga diartikan sebagai seni dan ilmu
untuk membuat dan memecahkan kode rahasia. Kriptologi dibagi menjadi kriptografi
(seni dan ilmu membuat kode rahasia), kriptanalisis (ilmu dan seni untuk memecahkan
chiperteks menjadi plainteks tanpa mengetahui kunci yang digunakan) dan
steganografi (metoda menyembunyikan pesan atau data lainnya) (Oppliger, 2005).
Pelaku kriptanalisis disebut kriptanalis. Jika seorang kriptografer
(cryptographer) mentransformasikan plainteks menjadi cipherteks dengan suatu
algoritma dan kunci maka sebaliknya seorang kriptanalis berusaha untuk memecahkan
Gambar 2.5. Hubungan kriptografi, kriptanalisis dan steganografi
2.1.4.4Algoritma Kriptografi
Berdasarkan kunci yang dipakai algoritma kriptografi dapat dibedakan menjadi 2
golongan yaitu algoritma kriptografi simetris dan asimetris.
1. Algoritma Simetri
Algoritma kriptografi simetris maksudnya adalah proses enkripsi dan dekripsi
dilakukan dengan memakai 1 key yang sama. Istilah lain untuk kriptografi
kunci-simetri adalah kriptografi kunci privat (private-key cryptography), kriptografi kunci
rahasia (secret-key cryptography), atau kriptografi konvensional (conventional
cryptography). Sistem kriptografi kunci-simetri (atau disingkat menjadi “kriptografi
simetri” saja), mengasumsikan pengirim dan penerima pesan sudah berbagi kunci
yang sama sebelum bertukar pesan. Keamanan sistem kriptografi simetri terletak pada
kerahasiaan kuncinya. Jadi, pembuat pesan dan penerimanya harus memiliki kunci
yang sama persis. Sehingga siapapun yang memiliki kunci tersebut termasuk pihak –
pihak yang tidak diinginkan dapat membuat dan membongkar rahasia cipherteks.
Berikut ini adalah gambaran proses enkripsi dan deskripsi menggunakan algoritma
Gambar 2.6 Proses Enkripsi – Deskripsi Menggunakan Algoritma
Simetri
Contoh algoritma kriptografi simetris yang terkenal diantaranya adalah TEA,
DES, Blowfish, IDEA, RC4, dan lain sebagainya. Salah satu kelemahan algoritma ini
adalah permasalahan distribusi kunci (key distribution).
Algoritma kriptografi simeteris dibagi menajdi 2 kategori yaitu algoritma
aliran (Stream Ciphers) dan algoritma blok (Block Cipher). Pada algoritma aliran,
proses penyandiannya berorientasi pada satu bit atau satu byte data. Sedang pada
algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte data
(per blok).
Kelebihan kriptografi simetri:
1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi
membutuhkan waktu yang singkat.
2. Ukuran kunci simetri relatif pendek.
3. Algoritma kriptografi simetri dapat digunakan untuk membangkitkan bilangan
acak.
4. Algorima kriptografi simetri dapat disusun untuk menghasilkan cipher yang lebih
kuat.
5. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima,
Kelemahan kriptografi simetri:
1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang
berkomunikasi harus menjaga kerahasisan kunci ini.
2. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.
2. Algoritma Asimetri
Pada kriptografi asimetris masing-masing pihak yang berkepentingan memiliki 2 key,
yaitu secrete / private key (SK) dan public key (PK). Nama lainnya adalah kriptografi
kunci-publik (public-key cryptography). SK harus tetap disimpan dan dijaga
kerahasiaannya dengan tidak pernah mengirimkannya melalui jalur pengiriman data.
Sedangkan PK turut dikirimkan ke pihak penerima data. Perpaduan antara SK dan PK
inilah yang nantinya dipakai pada proses enkripsi dan dekripsi.
Berikut adalah gambaran untuk proses enkripsi dan deskripsi yang
mengggunakan algoritma asimetri :
Gambar 2.7 Proses Enkripsi – Deskripsi Menggunakan Algoritma Asimetri
Contoh algoritma kriptografi asimetris, atau yang juga dikenal dengan kriptografi
public key, misalnya adalah RSA, DSA, ECC, dan HECC, Elgamal, Hill Cipher, dan
lain sebagainya.
Keuntungan dari Algoritma ini ada dua. Pertama, tidak ada kebutuhan untuk
mendistribusikan kunci privat sebagaimana pada sistem kriptografi simetri. Kunci
digunakan untuk mengirim pesan. Saluran untuk mengirim pesan umumnya tidak
aman.
Kedua, jumlah kunci dapat ditekan. Untuk berkomunikasi secara rahasia dengan
banyak orang tidak perlu kunci rahasia sebanyak jumlah orang tersebut, cukup
membuat dua buah kunci, yaitu kunci publik bagi para koresponden untuk
mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan
kriptografi kunci-simetris dimana jumlah kunci yang dibuat adalah sebanyak jumlah
pihak yang diajak berkorespondensi.
Kelebihan kriptografi kunci-publik (asimetri):
1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang
berkomuniaksi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada
kebutuhan mengirim kunci kunci privat sebagaimana pada sistem simetri.
2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode
waktu yang panjang.
3. Dapat digunakan untuk mengamankan pengiriman kunci simetri.
4. Beberapa algoritma kunci-publik dapat digunakan untuk memberi tanda tangan
digital pada pesan.
Kelemahan kriptografi kunci-publik (asimetri):
1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri, karena
enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi
perpangkatan yang besar.
2. Ukuran cipherteks lebih besar daripada plainteks (bisa dua sampai empat kali
ukuran plainteks).
3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri.
4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka
cipherteks tidak memberikan informasi mengenai otentikasi pengirim.
5. Tidak ada algoritma kunci-publik yang terbukti aman (sama seperti block cipher).
Kebanyakan algoritma mendasarkan keamanannya pada sulitnya memecahkan
persoalan-persoalan aritmetik (pemfaktoran, logaritmik, dan sebagainya) yang
2.1.4.5 Sistem Kriptografi
Sistem kriptografi adalah suatu 5- tuple (P, C, K, E, D) yang memenuhi kondisi
sebagai berikut :
1. P adalah himpunan plainteks,
2. C adalah himpunan cipherteks,
3. K atau ruang kunci (keyspace), adalah himpunan kunci,
4. E adalah himpunan fungsi enkripsi :
5. D adalah himpunan fungsi dekripsi : ,
6. Untuk setiap terdapat dan . Setiap dan
merupakan fungsi sedemikian hingga , untuk setiap
plainteks . .
Suatu sistem kriptografi merupakan sebuah himpunan algoritma, seluruh
kemungkinan plainteks, cipherteks, kunci, dan proses manajemen kunci yang
digunakan. Sistem kriptografi merupakan suatu fasilitas untuk mengkonversikan
plainteks menjadi cipherteks, dan sebaliknya. (Oppliger, 2005) .
1. Keamanan Sistem Kriptografi
Suatu sistem kriptografi dikatakan aman jika para penyusup (adversary) dengan
kemampuan yang dimilikinya tidak dapat memecahkan atau membobol sistem
tersebut.
Berdasarkan kemampuan yang dimiliki penyusup, terdapat dua jenis keamanan
sistem kriptografi, yaitu (Oppliger, 2005) :
a. Keamanan tak kondisional : jika penyusup tidak dapat membobol sistem dengan
kemampuan komputer yang tidak terbatas. Keamanan ini berhubungan dengan
teori informasi dan teori probabilitas.
b. Keamanan kondisional : jika secara teoritis mungkin bagi penyusup untuk
sumberdaya dan kemampuan penyusup untuk mengakses informasi). Kemanan ini
berhubungan dengan teori kompleksitas.
Sistem kriptografi dikatakan aman bila memiliki keadaan sebagai berikut :
a. Bila harga untuk membobol sistem lebih besar daripada nilai informasi yang
dibuka.
b. Bila waktu yang diperlukan untuk membobol sistem tersebut lebih lama daripada
lamanya waktu yang diperlukan oleh informasi itu untuk tetap aman.
c. Bila jumlah data yang dienkrip dengan kunci dan algoritma yang sama lebih
sedikit dari jumlah data yang diperlukan untuk menembus algoritma tersebut
(Kurniawan, 2004).
Pengamanan selalu bertolak belakang dengan kenyamanan. Semakin aman,
sebuah sistem akan semakin tidak nyaman karena akan memerlukan beberapa langkah
tambahan yang dirasa merepotkan. Dan semakin nyaman dan bebas, sebuah sistem
menjadi semakin tidak aman.
2. Jenis-jenis Serangan
Berdasarkan keterlibatan penyerang dalam melakukan kegiatannya :
a. Serangan pasif (passive attack) : penyerang tidak terlibat dalam komunikasi
antara pengirim dan penerima, penyerang hanya melakukan penyadapan untuk
memperoleh data atau informasi sebanyak-banyaknya
Metode yang digunakan dalam melakukan penyadapan ini biasanya wiretapping,
electromagnetic eavesdropping atau acoustic eavesdropping
b. Serangan aktif (active attack) : penyerang mengintervensi komunikasi dan ikut
mempengaruhi sistem untuk keuntungan dirinya. Penyerang mengubah aliran
pesan seperti menghapus sebagian ciphertext, mengubah ciphertext, menyisipkan
potongan ciphertext palsu, me-replay pesan lama, mengubah informasi yang
3. Metode Serangan Pada Kriptografi
Terdapat beberapa metode melakukan serangan kriptografi yang pada dasarnya berupa
metode yang berbasiskan plaintext dan metode yang berbasiskan ciphertext.
a. Hanya ciphertext yang diketahui : Kriptanalis (orang yang melakukan kripanalisis)
hanya memiliki ciphertext tanpa memiliki plaintext-nya. Sebelum melakukan
serangan, kriptanalis selalu membuat asumsi algoritma sandi yang digunakan
dalam ciphertext itu untuk menentukan tehnik memecahkannya.
Teknik yang digunakan untuk menemukan plaintext/kunci :
1. Analisa frekuensi huruf : setiap bahasa memiliki kekhasan atas huruf-huruf yang
digunakannya. Frekuensi kemunculan setiap huruf dalam suatu bahasa menjadi
ciri penting yang dapat dipakai sebagai patokan untuk menganalisis
plaintext/kunci suatu teks sandi. Teknik ini umumnya digunakan untuk
memecahkan metode penyandian sederhana seperti misalny
2. Exhaustive attack/brute-force attack : yaitu teknik untuk mengungkap
plaintext/kunci dengan mencoba secara sistematis semua kemungkinan kunci.
Walaupun tehnik ini akan berhasil menemukan plaintext/kunci, namun waktu yang
dibutuhkan relatif lama dan sangat bergantung kepada kecepatan mesin
(komputer) yang melakukan serangan ini.
3. Analytical attack : yaitu teknik memecahkan teks sandi dengan melakukan analisis
kelemahan algoritma kriptografinya untuk mengurangi kemungkinan kunci yang
memang tidak ada (pasti tidak muncul).
Dilakukan dengan cara memecahkan persamaan-persamaan matematik (yang
diperoleh dari definisi suatu algoritma kriptografi) yang mengandung
perubah-perubah yang merepresentasikan plaintext atau kunci. Dengan menggabungkan
metode analytical attack dan exhaustive attack akan mempercepat diketemukannya
b. Ciphertext terpilih : Kriptanalis memilih ciphertext, dan kemudian melalui
ciphertext itu berusaha untuk mendapatkan plaintext yang sesuai. Biasanya
dilakukan untuk menyerang kriptografi sistem kunci publik.
c. Plaintext dan ciphertext diketahui : Kriptanalis mempunyai baik plaintext maupun
ciphertext-nya dan berusaha untuk mencari hubungan diantara keduanya. Biasanya
dilakukan untuk menemukan kunci dan algoritma penyandiannya yang akan
berguna untuk memecahkan pesan tersandi berikutnya. Beberapa pesan biasanya
terdapat format baku (template) yang sudah terstruktur. Format baku ini
merupakan celah yang membuka peluang untuk menerka ciphertext dari plaintext
yang bersesuaian. Misalnya :
From, To, kepada, dari, perihal, di dalam sebuah e-mail
Dengan hormat, wassalam, best regards, pada surat resmi.
#include, program, go, di dalam source code
d. Plaintext terpilih : Kriptanalis memilih plaintext tertentu, yaitu plaintexts yang
lebih mengarahkan ke penemuan kunci, untuk disandikan dan
mempelajari/membandingkan hasil sandinya (ciphertext). Biasanya cara ini
digunakan untuk memecahkan sandi pada metode
mana kripanalis biasanya telah memiliki kunci publik-nya.
e. Ciphertext atau plaintext diketahui secara adaptif : Kriptanalis memilih blok
plaintext atau ciphertext yang besar, lalu disandi, kemudian memilih blok lainnya
yang lebih kecil berdasarkan hasil serangan sebelumnya, begitu seterusnya.
f. Kunci terpilih : Kriptanalis memiliki pengetahuan mengenai hubungan antara
kunci-kunci yang berbeda, dan kemudian memilih kunci yang tepat untuk
membuka pesan bersandi. Biasanya digunakan untuk mengetahui algoritma
penyandian suatu pesan.
g. Social engineering rubber-hose cryptanalysis : Mencari informasi algoritma/kunci
(black-mail) atau melakukan penculikan/penyiksaan sampai orang yang
memegang kunci memberinya kunci untuk membuka pesan.
2.1.4.6 Kategori Cipher Kunci-Simetri
Algoritma kunci-simetri mengacu pada metode enkripsi yang dalam hal ini baik
pengirim maupun penerima memiliki kunci yang sama.
Algoritma kunci-simetri modern beroperasi dalam mode bit dan dapat
dikelompokkan menjadi dua kategori:
1. Cipher Aliran (Stream Cipher)
Algoritma kriptografi beroperasi pada plaintext/ciphertext dalam bentuk bit
tunggal, yang dalam hal ini rangkaian bit dienkripsi/didekripsikan bit per bit.
Cipher aliran mengenkripsi satu bit pada setiap kali proses enkripsi.
2. Cipher Blok (Block Cipher)
Algoritma kriptografi beroperasi pada plaintext/ciphertext dalam bentuk blok bit,
yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya
sudah ditentukan sebelumnya. Misalnya panjang blok adalah 64 bit, maka itu
berarti algoritma enkripsi memerlukan 8 karakter setiap kali enkripsi (1 karakter =
8 bit dalam pengkodean ASCII). Cipher blok mengenkripsi satu blok bit pada
setiap kali proses enkripsi. (Munir, 2006)
2.1.4.6.1 Mode Operasi Cipher Blok
Plaintext dibagi menjadi beberapa blok dengan panjang tetap. Beberapa mode operasi
dapat diterapkan untuk melakukan enkripsi terhadap keseluruhan blok plaintext.
1. Electronik Code Book (ECB)
Pada mode ini, setiap blok plainteks dienkripsi secara individual dan independen
menjadi blok cipherteks . Secara matematis, enkripsi dengan mode ECB dinyatakan
sebagai
= ( )
dan dekripsi sebagai
= ( )
yang dalam hal ini, K adalah kunci, sedangkan dan masing-masing adalah blok
plainteks dan cipherteks ke-i.
Istilah “code book” di dalam ECB muncul dari fakta bahwa blok plainteks
yang sama selalu dienkripsi menjadi blok cipherteks yang sama, maka secara teoritis
dimungkinkan membuat buku kode plaintext dan ciphertext yang berkoresponden.
Namun, semakin besar ukuran blok, semakin besar pula ukuran buku kodenya.
Misalkan jika blok berukuran 64 bit, maka buku kode terdiri dari -1 buah kode
(entry), yang berarti terlalu besar untuk disimpan. Lagipula semua kunci mempunyai
buku kode yang berbeda (Munir, 2006).
Kelebihan Mode ECB:
1. Karena tiap blok plainteks dienkripsi secara independen, maka kita tidak perlu
mengenkripsi file secara linier. Kita dapat mengenkripsi 5 blok pertama, kemudian
blok-blok di akhir, dan kembali ke blok-blok di tengah dan seterusnya. Mode ECB
cocok untuk mengenkripsi arsip (file) yang diakses secara acak, misalnya
arsip-arsip basis data. Jika basis data dienkripsi dengan mode ECB, maka sembarang
record dapat dienkripsi atau didekripsi secara independen dari record lainnya
(dengan asumsi setiap record terdiri dari sejumlah blok diskrit yang sama
banyaknya). Jika mode ECB dikerjakan dengan prosesor paralel (multiple
processor), maka setiap prosesor dapat melakukan enkripsi atau dekripsi blok
plainteks yang berbeda-beda.
2. Jika satu atau lebih bit pada blok cipherteks mengalami kesalahan, maka kesalahan
ini hanya mempengaruhi cipherteks yang bersangkutan pada waktu dekripsi.
Blok-blok cipherteks lainnya bila didekripsi tidak terpengaruhi oleh kesalahan bit
cipherteks tersebut.
Kekurangan Mode ECB:
1. Karena bagian plainteks sering berulang (sehingga terdapat blok-blok plainteks
yang sama), maka hasil enkripsinya menghasilkan blok cipherteks yang sama.
Misalnya kriptanalis mempelajari bahwa blok plainteks 5EB82F (dalam notasi HEX) dienkripsi menjadi blok AC209D, maka setiap kali ia menemukan cipherteks AC209D, ia dapat langsung mendekripsikannya menjadi 5EB82F.
2. Pihak lawan dapat memanipulasi cipherteks untuk “membodohi” atau mengelabui
penerima pesan. Manipulasi misalnya dengan menghapus atau menyisipkan
beberapa buah blok ciphertext baru.
Kedua kekurangan di atas dapat diatasi dengan mengatur enkripsi tiap blok
individual bergantung pada semua blok-blok sebelumnya. Dengan cara ini, blok
2. Cipher Block Chaining (CBC)
Mode ini menerapkan mekanisme umpan-balik (feedback) pada sebuah blok, yang
dalam hal ini hasil enkripsi blok sebelumnya di-umpan-balikkan ke dalam enkripsi
blok yang current (sekarang). Caranya, blok plainteks yang current di-XOR-kan
terlebih dahulu dengan blok cipherteks hasil enkripsi sebelumnya, selanjutnya hasil
peng-XOR-an ini masuk ke dalam fungsi enkripsi. Dengan mode CBC, setiap blok
cipherteks bergantung tidak hanya pada blok plainteksnya, tetapi juga pada seluruh
blok plainteks sebelumnya (Munir, 2006).
Dekripsi dilakukan dengan memasukkan blok cipherteks yang current ke
fungsi dekripsi, kemudian meng-XOR-kan hasilnya dengan blok cipherteks
sebelumnya. Dalam hal ini, blok cipherteks sebelumnya berfungsi sebagai
umpan-maju (feedforward) pada akhir proses dekripsi.
Gambar 2.9 Skema enkripsi dan dekripsi dengan mode CBC
Secara matematis, enkripsi dan dekripsi dengan mode CBC dinyatakan sebagai
= ( )
= (
Pada enkripsi blok pertama, = IV (initialization vector). IV dapat diberikan
blok cipherteks pertama ( ), IV digunakan untuk menggantikan blok cipherteks
sebelumnya, . Sebaliknya pada dekripsi, blok plainteks pertama diperoleh dengan
cara meng-XOR-kan IV dengan hasil dekripsi terhadap blok cipherteks pertama. IV
tidak perlu rahasia. Jadi, untuk m buah blok plainteks, enkripsinya adalah:
= ( )
= ( )
= ( )
.
.
.
= ( )
dan dekripsi m buah blok cipherteks adalah :
= (
= (
= (
.
.
.
= (
Kelebihan Mode CBC:
Karena blok-blok plainteks yang sama tidak menghasilkan blok-blok cipherteks yang
sama, maka kriptanalis menjadi lebih sulit dalam memecahkan pesan tersandi tersebut.
Kekurangan Mode CBC:
Karena blok cipherteks yang dihasilkan selama proses enkripsi bergantung pada
blok-blok cipherteks sebelumnya, maka kesalahan satu bit pada sebuah blok-blok plainteks akan
berikutnya. Tetapi hal ini berkebalikan pada proses dekripsi, kesalahan satu bit pada
blok cipherteks, hanya mempengaruhi blok plainteks yang berkoresponden dan satu
bit pada blok plainteks berikutnya (pada posisi bit yang berkoresponden pula).
Kesalahan bit cipherteks biasanya terjadi karena adanya gangguan (noise) saluran
komunikasi data selama transmisi atau malfunction pada media penyimpanan.
3. Cipher Feedback (CFB)
Pada mode CFB, data dienkripsi dalam unit yang lebih kecil daripada ukuran blok.
Unit yang dienkripsikan dapat berupa bit per bit (jadi seperti cipher aliran atau stream
cipher), 2 bit, 3 bit, dan seterusnya. Bila unit yang dienkripsikan satu karakter setiap
kalinya, maka mode CFB-nya disebut CFB 8-bit (Munir, 2006).
Gambar 2.10 Skema enkripsi dengan mode CFB
Secara umum, CFB p-bit mengenkripsi plainteks sebanyak p bit setiap kalinya,
yang dalam hal ini p ≤ n (ukuran blok). Dengan kata lain, CFB mengenkripsi cipher
blok seperti pada cipher aliran. Mode CFB membutuhkan sebuah antrian (queue) yang
berukuran sama dengan ukuran blok masukan. Tinjau mode CFB 8-bit yang bekerja
Gambar 2.11 Skema dekripsi dengan mode CFB
Algoritma enkripsi dengan mode CFB adalah sebagai berikut:
1. Antrian diisi dengan IV (initialization vector) seperti pada mode CBC.
2. Enkripsikan antrian dengan kunci K. Delapan bit paling kiri dari hasil enkripsi
berlaku sebagai keystream ( ) yang kemudian di-XOR-kan dengan karakter 8-bit
dari plainteks menjadi karakter 8-bit pertama dari cipherteks. Karakter cipherteks
ini dikirim (pada aplikasi komunikasi data) atau disimpan (pada aplikasi
penyimanan data). Salinan (copy) dari karakter cipherteks ini juga dimasukkan ke
dalam antrian (menempati 8 posisi bit paling kanan antrian), dan semua byte
lainnya di dalam antrian digeser ke kiri menggantikan 8 bit pertama yang sudah
digunakan.
3. Karakter plainteks berikutnya dienkripsikan dengan cara yang sama seperti pada
langkah 2.
4. Dekripsi dilakukan sebagai kebalikan dari proses enkripsi. Baik enkripsi maupun
dekripsi, algoritma E dan D yang digunakan sama.
Perambatan kesalahan: kesalahan 1-bit pada blok plainteks akan merambat pada
blok-blok cipherteks yang berkoresponden dan blok-blok cipherteks selanjutnya
4. Output Feedback (OFB)
Mode OFB mirip dengan mode CFB, kecuali p-bit dari hasil enkripsi terhadap antrian
disalin menjadi elemen posisi paling kanan di antrian. Dekripsi dilakukan sebagai
kebalikan dari proses enkripsi (Munir, 2006).
Gambar 2.12 Skema enkripsi dengan mode OFB
Gambar 2.13 Skema dekripsi dengan mode OFB
Perambatan kesalahan: kesalahan 1-bit pada blok plainteks hanya mempengaruhi blok
cipherteks yang berkoresponden saja. Begitu pula pada proses dekripsi, kesalahan
1-bit pada blok cipherteks hanya mempengaruhi blok plainteks yang bersangkutan saja.
Karakteristik kesalahan semacam ini cocok untuk transmisi analog yang di-digitasi,
seperti suara atau video, yang dalam hal ini kesalahan 1-bit dapat ditolerir, tetapi
2.1.4.7 Prinsip – Prinsip Perancangan Cipher Blok
Perancangan algoritma kriptografi yang berbasis blok mempertimbangkan beberapa
prinsip berikut:
1. Prinsip Confusion dan Diffusion dari Shannon
Pada tahun 1949, Shannon mengemukakan dua prinsip (properties) penyandian
(encoding) data di dalam makalahnya yang berjudul Communication Theory of
Secrecy Systems. Kedua prisnsip ini dipakai dalam perancangan cipher blok yang kuat.
Kedua prinsip Shannon itu adalah :
a. Confusion
Prinsip ini menyembunyikan hubungan apapun yang ada antara plainteks, cipherteks,
dan kunci. Sebagai contoh, pada cipher substitusi seperti Caesar Cipher, hubungan
antara cipherteks dan plainteks mudah diketahui, karena satu huruf yang sama pada
plainteks diganti dengan satu huruf yang sama pada cipherteksnya. Akibatnya, huruf
yang paling sering muncul di dalam plainteks akan sering muncul pula di dalam
cipherteksnya sehingga cipherteks tersebut mudah dipecahkan dengan teknik analisis
frekuensi. Dengan demikian kita katakan Caesar Cipher tidak menganut prinsip
confusion. Karena prinsip confusion akan membuat kriptanalis frustasi untuk mencari
pola-pola statistik yang muncul pada cipherteks. Confusion yang bagus membuat
hubungan statistik antara plainteks, cipherteks, dan kunci menjadi sangat rumit.
b. Diffusion
Prinsip ini menyebarkan pengaruh satu bit plainteks atau kunci ke sebanyak mungkin
cipherteks. Sebagai contoh, pengubahan kecil pada plainteks sebanyak satu atau dua
bit menghasilkan perubahan pada cipherteks yang tidak dapat diprediksi. Prinsip
diffusion juga menyembunyikan hubungan statistik antara plainteks, cipherteks, dan
kunci sehingga membuat kriptanalisis menjadi sangat sulit.
Untuk mendapatkan keamanan yang bagus, prisnip confusion dan diffusion diulang
2. Cipher berulang (Iterated Cipher)
Fungsi transformasi sederhana yang mengubah plainteks menjadi cipherteks diulang
sejumlah kali. Pada setiap putaran digunakan sub-kunci (subkey) atau kunci putaran
(round key) yang dikombinasikan dengan plainteks.
3. Jaringan Feistel (Feistel Network)
Jaringan Feistel ditemukan oleh Horst Feistel tahun 1970. Model jaringan Feistel
adalah sebagai berikut:
1. Bagi blok yang panjangnya n bit menjadi dua bagian, kiri (L) dan kanan (R), yang
masing-masing panjangnya n/2 (hal ini mensyaratkan n harus genap).
2. Defenisikan cipher blok berulang dimana hasil dari putaran ke-i ditentukan dari
hasil putaran sebelumnya, yaitu:
=
f( )
yang dalam hal ini,
i = 1,2,…,r (r adalah jumlah putaran).
= sub-kunci (subkey) pada putaran ke-i
f = fungsi transformasi (di dalamnya terdapat fungsi substitusi, permutasi dan/atau
ekspansi, kompresi).
Plainteks adalah gabungan L dan R awal, atau secara formal dinyatakan
dengan ( ), sedangkan cipherteks didapatkan dari L dan R hasil dari putaran
terakhir setelah terlebih dahulu dipertukarkan, atau secara formal dinyatakan
4. Kunci lemah (Weak Key)
Kunci lemah adalah kunci yang menyebabkan tidak adanya perbedaan antara enkripsi
dan dekripsi. Dekripsi terhadap cipherteks tetap mengahasilkan plainteks semula,
namun enkripsi dua kali berturut-turut terhadap plainteks akan menghasilkan kembali
plainteksnya.
5. Kotak-S (S-box)
Kotak-S adalah matriks yang berisi substitusi sederhana yang memetakan satu atau
lebih bit dengan satu atau lebih bit yang lain. Pada kebanyakan algoritma cipher blok,
kotak-S memetakan m bit masukan menjadi n bit keluaran, sehingga kotak-S tersebut
dinamakan kotak m x n S-box.
2.2 Tiny Encryption Algorithm (TEA)
Tiny Encryption Algorithm (TEA) merupakan suatu algoritma sandi yang diciptakan
oleh David Wheeler dan Roger Needham dari Computer Laboratory, Cambridge
University, England pada bulan November 1994.
Sistem penyandian Tiny Encryption Algorithm (TEA) menggunakan proses feistel
network dengan menambahkan fungsi matematik berupa penambahan dan
pengurangan sebagai operator pembalik selain XOR. Hal ini dimaksudkan untuk
menciptakan sifat non-linearitas. Pergeseran dua arah (ke kiri dan ke kanan)
menyebabkan semua bit kunci dan data bercampur secara berulang ulang.
Tiny Encryption Algorithm (TEA)memproses 64-bit input sekali waktu dan
menghasilkan 64-bit output. Tiny Encryption Algorithm (TEA) menyimpan 64-bit
input kedalam L0 dan R0 masing masing 32-bit. Sedangkan 128-bit kunci disimpan
teknik ini cukup dapat mencegah penggunaan teknik exshautive search secara efektif.
Hasil outputnya akan disimpan dalam L16 dan R16. (D. Wheeler and R. Needham,
1994).
Bilangan delta konstan yang digunakan adalah 9E3779B9, dimana bilangan delta
berasal dari golden number ((5/4)1/2 - 1/2 ~ 0.618034) 232 . Berbeda dengan sruktur
feistel yang semula hanya mengoperasikan satu sisi yaitu sisi sebelah kanan dengan
sebuah fungsi F, pada algoritma Tiny Encryption Algorithm (TEA) kedua sisi
dioperasikan dengan sebuah fungsi yang sama.
Berikut adalah gambaran proses pada algoritma TEA:
Untuk melakukan enkripsi, proses diawali dengan input-bit teks terang
sebanyak 64-bit. Kemudian 64-bit teks terang tersebut dibagi menjadi dua bagian,
yaitu sisi kiri (L0) sebanyak 32-bit dan sisi kanan (R0) sebanyak 32-bit. Setiap bagian
teks terang akan dioperasikan sendiri-sendiri. R0 (z) akan digeser kekiri sebanyak
empat (4) kali dan ditambahkan dengan kunci k[0]. Sementara itu z ditambah dengan
sum (delta) yang merupakan konstanta. Hasil penambahan ini di-XOR-kan dengan
penambahan sebelumnya. Kemudian di-XOR-kan dengan hasil penambahan antara z
yang digeser kekanan sebanyak lima (5) kali dengan kunci k[1]. Hasil tersebut
kemudian ditambahkan dengan L0 (y) yang akan menjadi R1.
Sisi sebelah kiri akan mengalami proses yang sama dengan sisi sebelah kanan.
L0 (y) akan digeser kekiri sebanyak empat (4) kali lalu ditambahkan dengan kunci
k[2]. Sementara itu, Y ditambah dengan sum (delta). Hasil penambahan ini
di-XOR-kan dengan penambahan sebelumnya. Kemudian di-XOR-di-XOR-kan dengan hasil
penambahan antara Y yang digeser ke kanan sebanyak lima (5) kali dengan unci k[3].
Hasil tersebut kemudian ditambahkan dengan R0 (Z) yang akan menjadi L1.
Berikut adalah langkah langkah penyandian dengan algoritma TEA dalam satu
cycle (dua round) :
1. Pergeseran (shift)
Blok teks terang pada kedua sisi yang masing masing sebanyak 32-bit akan digeser
kekiri sebanyak empat (4) kali dan digeser ke kanan sebanyak lima (5) kali.
2. Penambahan
Setelah digeser kekiri dan kekanan, maka Y dan Z yang telah digeser akan
ditambahkan dengan kunci k[0]-k[3]. Sedangkan Y dan Z awal akan ditambahkan
dengan sum (delta).
3. Peng-XOR-an
Setelah dioperasikan dengan penambahan pada masing-masing register maka akan
y = y + (((z<<4)+k[0])^z+sum^((z>>5)+k[1]))
z = z + (((y<<4)+k[2]^y+sum^((y>>5)+k[3]))
dalam hal ini sum=sum+delta.
Hasil penyandian dalam satu cycle satu blok teks terang 64-bit menjadi 64-bit
teks sandi adalah dengan menggabungkan y dan z. Untuk penyandian pada cycle
berikutnya y dan z ditukar posisinya, sehingga y1 menjadi z1 dan z1 menjadi y1 lalu
dilanjutkan proses seperti langkah-langkah diatas sampai dengan 16 cycle (32 round).
4. Key Schedule
Pada algoritma TEA, key schedule-nya sangat sederhana. Yaitu kunci k[0] dan k[1]
konstan digunakan untuk round ganjil sedangkan kunci k[2] dan k[3] konstan
digunakan untuk round genap.
Dalam proses dekripsi sama halnya seperti pada proses penyandian yang
berbasis feistel cipher lainnya. Yaitu pada prinsipnya adalah sama pada saat proses
enkripsi. Namun hal yang berbeda adalah penggunaan teks sandi sebagai input dan
kunci yang digunakan urutannya dibalik. Pada proses dekripsi semua round ganjil
menggunakan k[1] terlebih dahulu kemudian k[0], demikian juga dengan semua round
genap digunakan k[3] terlebih dahulu kemudian k[2].
Adapun beberapa keunggulan dari algoritma Tiny Encryption Algorithm (TEA) ini
adalah :
a. Pada Algoritma Tiny Encryption Algorithm (TEA) panjang kuncinya yaitu
128-bit, merupakan jumlah kunci yang cukup panjang untuk algoritma kriptografi
modern saat ini yang dapat menahan serangan kriptanalis.
b. Teknik yang digunakan TEA cukup baik, yaitu pada setiap prosesnya
menggunakan jaringan feistel yang memuat operasi permutasi, subtitusi dan
modular arithmatic berupa XOR dan penambahan bilangan delta yang diharapkan
dari operasi tersebut menciptakan efek difusi dan konfusi yang baik, karena
semakin baik efek difusi dan konfusi yang dihasilkan suatu algoritma makin
c. Ukuran blok input pada TEA yaitu 64-bit, sebuah jumlah yang cukup panjang
untuk menghindari analisis pemecahan kode dan cukup kecil agar dapat bekerja
dengan cepat.
d. Tidak membutuhkan S-Box dan P-Box dalam proses enkripsi dan deskripsinya,
karena S-Box dan P-Box tersebut tidak dapat dijamin keamanannya dikarenakan
struktur dari S-Box dan P-Box tersebut hanya diketahui oleh NSA (National
Security Agency) dan diubah menurut saran dari NSA, sehingga jika S-Box dan
P-Box tersebut diubah maka maka sangat mungkin sekali algoritma yang digunakan
akan lebih mudah dibobol. Selain itu, juga dapat meminimalkan penggunaan
memory pada saat melakukan proses enkripsi dan deskripsi sehingga dapat
memaksimalkan proses.
e. Algoritma TEA diketahui sangat kuat terhadap metode penyerangan berupa hanya
ciphertext yang diketahui, plaintext yang diketahui dan plaintext terpilih.
Sedangkan kelemahan dari algoritma Tiny Encryption Algorithm (TEA) ini
adalah karena TEA ini termasuk kedalam kelompok Algoritma Simetri, maka masih
rentan untuk dibobol, karena dalam algortima simetri masalah utama memang terletak
dari segi pendistribusian kuncinya, dimana harus benar-benar aman pada saat
mendistribusikan kunci yang akan digunakan. Berdasarkan data yang didapat,
estimasi proses enkripsi dan deskripsi algoritma TEA yang dibandingkan dengan
algoritma simetri lainnya secara umum adalah sebagai berikut :
Summary
Tabel 2.1 Perbandingan Estimasi Proses Algoritma TEA dengan Algoritma
2.3 Masalah Keamanan Informasi Di Negara Republik Indonesia
2.3.1 Hari Persandian Nasional
Tidak banyak masyarakat yang mengetahui kalau tanggal 4 April dicanangkan sebagai
hari Persandian Nasional di Indonesia. Mungkin karena mitos persandian adalah
rahasia, sehingga pencanangan hari jadinya pun dirahasiakan.
Pada tanggal 4 April 1946, tepatnya Pemerintah Indonesia mulai merintis
Persandian sebagai bagian resmi Pemerintah Indonesia. Saat itu Menhan RI
memerintahka
persandian pemerintah.
Usia Institusi Pemerintah yang mengurusi persandian yang kini sudah
menginjak tahun ke-62, adalah usia yang terbilang cukup matang bagi perkembangan
sebuah institusi. Pengalaman jatuh bangun dalam mempertahankan eksistensi,
pertarungan dalam pengamanan pemberitaan, persaingan dalam ilmu dan teknologi,
suka duka membesarkan organisasi dan sebagainya menjadi kekayaan tersendiri yang
jika disikapi dengan positif akan menjadi aset berharga yang patut didokumentasikan
sebagai sejarah.
Di era teknologi informasi yang berkembang sangat pesat, tantangan yang
menghadang menjadi begitu banyaknya. Tantangan tersebut menjadi tugas tersendiri
yang harus diselesaikan oleh institusi yang menangani persandian yaitu
Salah satu tantangan yang perlu mendapatkan penanganan segera adalah
adanya kebutuhan pengamanan informasi dihadapkan dengan kebebasan memperoleh
informasi. Baru-baru ini telah disahkan oleh DPR RI
(UU KIP). Sedangkan RUU Kerahasiaan Negara belum disahkan dan regulasi tentang
keamanan informasi belum ada.
Karena pengamanan informasi merupakan kegiatan yang tidak terlihat,
tersebut dicuri atau hilangpun tidak diketahui. Kita baru akan menyadari bahwa ada
data/informasi yang telah hilang atau dicuri orang atau dimanipulasi setelah akibat
yang ditimbulkannya mulai terlihat.
Jadi sesungguhnya semua informasi patut diberikan pengamanan, terlebih lagi
informasi yang bersifat rahasia seperti data-data pribadi, akun keuangan atau
kesehatan. Tingkat pengamanan yang diberikan mengikuti tingkat kerahasiaan dari
informasinya. Jadi kekhawatiran bahwa regulasi “keamanan informasi” akan
berbenturan dengan regulasi “kebebasan informasi” hanyalah ilusi. Kedua regulasi
tersebut justru akan saling mendukung.
Momen hari persandian yang baik ini selayaknya dijadikan sebagai pelecut
semangat untuk berkarya menyelesaikan tugas yang diberikan oleh perkembangan
teknologi informasi dan komunikasi, UU ITE, UU KIP dan karena kebutuhan gaya
hidup di era masyarakat informasi. Serta tugas yang tidak kalah penting adalah
mensosialisasikan dan mencatatkan hari persandian nasional di lembar negara RI..
2.3.2
UU KIP atau Undang Undang Republik Indonesia nomor 14 tahun 2008 tentang
Keterbukaan Informasi Publik, ditujukan untuk mengatur hal ihwal informasi yang
berkaitan dengan kepentingan umum dan negara.
Seperti disebutkan dalam penjelasannya, keberadaan Undang-undang tentang
Keterbukaan Informasi Publik sangat penting sebagai landasan hukum yang berkaitan
dengan :
1. Hak setiap Orang untuk memperoleh Informasi
2. Kewajiban Badan Publik menyediakan dan melayani permintaan Informasi secara
cepat, tepat waktu, biaya ringan/proporsional, dan cara sederhana
3. Pengecualian bersifat ketat dan terbatas;
4. Kewajiban Badan Publik untuk membenahi sistem dokumentasi dan pelayanan
Dengan membuka akses publik terhadap Informasi diharapkan Badan Publik
termotivasi untuk bertanggung jawab dan berorientasi pada pelayanan rakyat yang
sebaik-baiknya. Dengan demikian, hal itu dapat mempercepat perwujudan
pemerintahan yang terbuka yang merupakan upaya strategis mencegah praktik
korupsi, kolusi, dan nepotisme (KKN), dan terciptanya kepemerintahan yang baik
(good governance).
Ditegaskan juga sebagai bahan pertimbangan pembuatan UU ini salah satunya
adalah bahwa informasi merupakan kebutuhan pokok setiap orang bagi
pengembangan pribadi dan lingkungan sosialnya serta merupakan bagian penting bagi
ketahanan nasional.
2.3.3 Standar Keamanan Nasional
Teknologi informasi dan komunikasi telah sangat maju dan menembus pada hampir
semua aspek organisasi. Pengolahan dan penyimpanan informasi telah menjadi aspek
yang menentukan kehidupan organisasi. Sehingga standarisasi keamanan informasi
secara nasional bagi sebuah pemerintahan negara tentunya juga menjadi sangat
penting.
Tujuan utama membuat Standar Keamanan Informasi Nasional (sebutan
singkatnya SKIN) adalah agar kegiatan pengamanan informasi pemerintah menjadi
efisien dan efektif, sehingga tidak mudah untuk dibongkar pihak asing. Standar
keamanan informasi ini penekanannya lebih pada syarat, prosedur, kebijakan,
pengelolaan serta pendidikan dan pelatihan. Standarisasi yang dimaksud disini
bukanlah standar teknis (spesifikasi), bukan pengarahan ke suatu teknologi atau
produk, bukan kumpulan tip serta bukan sebagai jaminan dan berfungsinya sebuah
alat keamanan informasi. Pendekatan ini memungkinkan SKIN diaplikasikan dan
diterapkan dalam berbagai tipe organisasi dan aplikasi.
Selain itu, SKIN akan memudahkan dalam menciptakan regulasi yang dapat
memberikan keputusan apakah sebuah kegiatan keamanan informasi sudah baik atau
juga dapat menentukan sampai tingkat berapa pengamanan yang diperlukan, dan
sebagainya. Sehingga regulasi tentang keamanan informasi tidak perlu menciptakan
badan/institusi lagi yang khusus untuk mengambil keputusan keamanan informasi atau
tingkat kerahasiaan sebuah data/informasi.
Standarisasi yang akan dipakai bisa saja mengacu pada standar internasional
yang sudah ada atau bisa juga sama sekali baru disesuaikan dengan kekhasan keadaan
di dalam negeri sendiri.
Standar keamanan informasi yang sudah terkenal adalah BS7799 yaitu Code of
Practise for Information Security Management, yang dikeluarkan oleh pemerintah
Inggris
secara internasional menjadi ISO27001 yaitu Information Security Management
System (ISMS) oleh organisasi internasional urusan standarisasi
Organization for Standardization). Sedangkan SKIN mungkin belum dibuat oleh
pemerintah Indonesia (saya tidak menemukannya di
dibuat, tulisan ini ditujukan untuk memicu standarisasi keamanan informasi dalam
lingkup nasional Indonesia.
Saat ini informasi adalah suatu aset organisasi penting dan berharga yang harus
dilindungi dari ancaman yang mungkin timbul untuk menjamin kesinambungan bisnis
dan meminimalisir kerugian atas ketidakamanan yang terjadi. Oleh karena itu,
pengelolaan informasi yang baik sangat penting untuk meningkatkan kesuksesan
dalam kompetisi disemua sektor.
ISO27001 dalam pengelolaan informasinya berfokus pada melindungi :
a. Kerahasiaan (confidentiality) : memastikan bahwa informasi hanya dapat diakses
oleh pihak yang memang berwenang.
b. Keutuhan (integrity) : menjaga kelengkapan dan keakuratan informasi serta
metode pemrosesannya.
c. Ketersediaan (availability) : memastikan bahwa pihak yang berwenang dapat
Untuk SKIN, perlu ditambahkan satu syarat yaitu
d. Tidak dapat disangkal (non repudiation) : memastikan bahwa pihak pengakses
tersebut adalah memang pihak yang benar, sehingga dapat dijadikan sebagai alat
bukt i sesua
Standarisasi keamanan informasi pada dasarnya adalah mengenai pengelolaan
resiko yang dilakukan dengan cara mengembangkan manajemen risiko dan strategi
mitigasi melalui pengidentifikasian aset, ancaman dan vulnerabilities serta
pengukuran resiko.
Analisa risiko keamanan informasi (security risk assessment) adalah metode
untuk memaksimalkan penggunaan aset organisasi yang terbatas melalui pengukuran
risiko dan pengelolaan risiko yang dapat ditoleransi. Untuk kemudian dapat
menetapkan syarat-syarat keamanan informasi dan jenis pengendalian yang diperlukan
untuk meminimalisir ancaman dan risiko tersebut yang disesuaikan dengan benefit
organisasi yang paling optimal.
Pengendalian adalah cara yang dipilih untuk menyingkirkan atau meminimalkan
risiko ke level yang dapat diterima. Berikut adalah dasar-dasar pengendalian yang
biasa digunakan untuk membuat security risk assessment :
1. Pengendalian kebijakan keamanan informasi : ditujukan sebagai dukungan
manajemen, komitmen dan pengarah dalam pencapaian tujuan pengamanan
informasi.
2. Pengendalian keamanan informasi secara organisasional : ditujukan pada
kebutuhan kerangka kerja manajemen yang membuat, menyokong dan mengelola
infrastruktur keamanan informasi.
3. Pengendalian dan pengklasifikasian aset : ditujukan pada kemampuan infratruktur
keamanan informasi untuk melindungi aset organisasi.
4. Pengendalian keamanan personel : ditujukan pada kemampuan untuk
5. Pengandalian keamanan fisik dan lingkungannya : ditujukan pada perlindungan
terhadap resiko yang timbul secara fisik di tempat/lingkungan sekitar sistem
berada.
6. Pengendalian komunikasi dan manajemen operasional : ditujukan pada
kemampuan organisasi untuk menjamin ketepatan dan keamanan operasional
aset-asetnya.
7. Pengendalian akses : ditujukan pada kemampuan organisasi untuk mengontrol
akses kepada aset-aset organisasi berdasarkan kebutuhan bisnis dan keamanan.
8. Pengendalian pengembangan dan pemeliharaan sistem : ditujukan pada
kemampuan organisasi untuk menjamin terintegrasi dan terpeliharanya
pengendalian terhadap sistem keamanan informasi yang tepat.
9. Pengendalian kelangsungan manajemen bisnis : ditujukan pada kemampuan
organisasi untuk menghadapi hambatan yang timbul sehingga operasional
organisasi dapat berjalan dengan baik.
10. Pengendalian kepatuhan : ditujukan pada kemampuan organisasi untuk secara
disiplin mematuhi semua regulasi, peraturan, kontrak dan syarat-syarat yang telah
dibuat.
2.4 Rekayasa Perangkat Lunak
Rekayasa perangkat lunak adalah disiplin ilmu yang membahas semua aspek produksi
perangkat lunak, mulai dari awal spesifikasi sistem sampai pemeliharaan sistem
setelah digunakan.( Kendall & Kendall, 2003).
Ada banyak proses dalam pembuatan perangkat lunak, namun ada kegiatan –
kegiatan yang mendasar yang umum bagi semua proses perangkat lunak. Kegiatan