Aspek keamanan data telah menjadi aspek yang sangat penting dari suatu sistem
informasi. Kepedulian pegawai Kandepag Kota Jakarta Timur terhadap data-data kantor
dan kurangnya informasi mengenai keamanan data, membuat mereka menginginkan
sebuah aplikasi yang mudah untuk digunakan dan dapat membantu mereka dalam
mengamankan data-data penting, seperti data kepegawaian, data umum, data keuangan dan
data internal kantor lainnya. Salah satu cara menjaga keamanan dan kerahasiaan data
tersebut yaitu dengan digunakannya algoritma kriptografi untuk melakukan penyandian
data. Kriptografi adalah ilmu yang mempelajari bagaimana supaya pesan atau dokumen
kita aman, tidak bisa dibaca oleh pihak yang tidak berhak, sehingga tidak menimbulkan
banyak kerugian.
Dalam pembuatan aplikasi keamanan data ini, penulis menggunakan algoritma
simetris yaitu DES (
Data Encryption Standard
) dan asimetris RSA (Rivest, Shamir,
Addlemen). Dengan menggabungkan dua algoritma yang berbeda ini dapat menghasilkan
sebuah aplikasi keamanan data yang cukup aman dan mudah untuk digunakan. Penulis
menggunakan
Visual Basic
6.0
Enterprise Edition
sebagai bahasa pemrograman,
Adobe
Photoshop
7.0,
Macromedia Fireworks
MX, dan
Dreamwever
MX untuk mendesain
background
aplikasi serta HTML
Help Workshop Install version
4.74.8703 untuk membuat
menu bantuan aplikasi dan
Clickteam Install Creator version
2.0.0.29 untuk membuat
instalasi program MeinCrypt. Metode penelitian yang penulis gunakan terdiri dari
observasi, wawancara dan metode literatur. Sedangkan metode pengembangan sistem yang
penulis gunakan ialah metode Sekuensial Linier.
Dari pembahasan materi sebelumnya, penulis menarik kesimpulan bahwa di
Kandepag belum terdapat sistem keamanan data yang dapat memberikan solusi keamanan
yang baik, Kriptografi dengan menggunakan kombinasi
cipher
simetris dan asimetris
melalui metode DES dan RSA dapat memberikan pengamanan ganda terhadap kerahasiaan
data dan info penting di kandepag.
Kata kunci : keamanan, kriptografi, algoritma, DES, RSA
Lembar Persetujuan Pembimbing ... ii
Lembar Pengesahan Ujian ... iii
Lembar Pengesahan Pembimbing ... iv
Lembar Pernyataan ... v
Abstrak... vi
Kata Pengantar ... vii
Lembar Persembahan ... viii
Daftar Isi ... ix
Daftar Tabel ... xv
Daftar Gambar ... xvi
Daftar Lampiran ... xix
Daftar Simbol ... xx
BAB I PENDAHULUAN... 1
1.1 Latar Belakang ... 1
1.2 Perumusan Masalah ... 2
1.3 Batasan Masalah ... 2
1.4 Tujuan Penelitian ... 3
1.5 Manfaat Penelitian ... 3
1.6 Metodologi Penelitian ... 4
BAB II LANDASAN TEORI ... 8
2.1 Keamanan Data ... 8
2.2 Aspek-Aspek Keamanan Data ... 8
2.3 Enkripsi dan Dekripsi ... 10
2.3.1 Pengertian Dasar ... 10
2.4 Kriptografi... 10
2.4.1 Sejarah Kriptografi... 10
2.4.2 Tujuan Kriptografi ... 12
2.4.3 Algoritma Kriptografi ... 13
2.4.4 Macam-macam Algoritma Kriptografi ... 15
2.4.4.1 Algoritma Kriptografi Kunci Rahasia... 15
2.4.4.1 Algoritma Kriptografi Kunci Publik ... 17
2.4.4.1 Algoritma Hash ... 18
2.4.5 Kriptografi Klasik ... 21
2.4.6 Kriptografi Modern ... 26
2.5 Metode DES ... 28
2.6 Algoritma DES... 28
2.7 Metode RSA... 36
2.8 Algoritma RSA ... 38
2.8.1 Properti Algoritma RSA ... 38
2.8.2 Algoritma Membangkitkan Pasangan Kunci ... 38
2.9 Keamanan Algoritma ... 42
2.10 Standar Kriptografi... 43
2.10.1 ANSI X3.92 ... 44
2.10.2 FIPS... 45
2.10.3 PKCS... 46
2.10.4 IEEE P1363 ... 48
2.11 Metode Pengembangan Sistem ... 48
2.12 Tools Perancangan Sistem ... 50
2.12.1 Diagram Alir (Flowchart) ... 50
2.12.2 STD (State Transition Diagram) ... 51
2.13 Pengenalan Microsoft Visual Basic 6.0 ... 52
2.13.1 Pengertian Dasar ... 52
2.13.2 Mengenal Integrated Development Environment(IDE) ... 53
BAB III METODOLOGI PENELITIAN ... 56
3.1 Metode Pengumpulan Data ... 56
3.1.1 Metode Pengamatan Langsung ... 56
3.1.2 Metode Wawancara (Interview) ... 57
3.1.3 Metode Literatur ... 57
3.2 Metode Pengembangan Sistem ... 57
3.2.1 Rekayasa Sistem ... 57
3.2.4 Coding (Kode) ... 59
3.2.5 Testing (Pengujian) ... 59
3.2.6 Implementation (Implementasi) ... 60
3.2.7 Maintenance (Pemeliharaan) ... 60
3.3 Bahan dan Peralatan... 61
3.3.1 Bahan ... 61
3.3.2 Peralatan... 61
BAB IV PEMBAHASAN DAN IMPLEMENTASI ... 63
4.1 Gambaran Umum Kandepag Kota Jakarta Timur... 63
4.1.1 Sejarah Departemen Agama Republik Indonesia ... 63
4.1.2 Geografi dan Iklim ... 65
4.1.3 Jumlah Penduduk Menurut Agama... 66
4.1.4 Jumlah Tempat Ibadah Menurut Agama... 66
4.1.5 Tugas Pokok Departemen Agama Kota Jakarta Timur ... 67
4.1.6 Pelaksana Tupoksi ... 70
4.2 Aplikasi MeinCrypt ... 75
4.3 Analisis ... 75
4.4 Perancangan (Desain) ... 76
4.4.1 Perancangan Algoritma Program Kriptografi ... 76
4.4.2 Desain Prosedural ... 77
3. Perancangan Blok Diagram ... 89
4.4.3 Desain Interface (Antarmuka) ... 92
4.4.3.1 Perancangan Form Splash ... 92
4.4.3.2 Perancangan Form Menu Utama ... 93
4.4.3.3 Perancangan Form Input DES Passphrase ... 94
4.4.3.4 Perancangan Form Input Key RSA... 95
4.4.3.5 Perancangan Form Info ... 95
4.4.3.6 Perancangan Form Bantuan ... 96
4.5 Kode ... 97
4.6 Pengujian (Testing) ... 97
4.6.1 Pengujian Enkripsi ... 98
4.6.2 Pengujian Dekripsi ... 99
4.7 Implementasi... 100
4.7.1 Instalasi Aplikasi MeinCrypt ... 101
4.7.2 Penggunaan Aplikasi MeinCrypt ... 101
4.8 Pemeliharaan ... 101
BAB V PENUTUP... 102
5.1 Kesimpulan ... 102
5.2 Saran ... 102
Halaman
Tabel 2. 1 : Tabel PC-1... 29
Tabel 2. 2 : Tabel Pemindahan Bit... 30
Tabel 2. 3 : Tabel PC-2 ... 31
Tabel 2. 4 : Tabel Pemilihan Bit E... 32
Tabel 2. 5 : Tabel Sbox 1 ... 33
Tabel 2. 6 : Tabel Sbox 2 ... 33
Tabel 2. 7 : Tabel Sbox 3 ... 33
Tabel 2. 8 : Tabel Sbox 4 ... 34
Tabel 2. 9 : Tabel Sbox 5 ... 34
Tabel 2. 10 : Tabel Sbox 6 ... 34
Tabel 2. 11 : Tabel Sbox 7 ... 35
Tabel 2. 12 : Tabel Sbox 8 ... 35
Tabel 2. 13 : Tabel Lima Hak Paten dalam Kriptografi ... 44
Tabel 2. 14 : Tabel Publikasi FIPS ... 45
Tabel 4. 6. 1 : Tabel Ukuran dan Waktu Enkripsi ... 99
Tabel 4. 6. 2 : Tabel Ukuran dan Waktu Dekripsi ... 100
Tabel a. 1 : Jadwal Waktu Pengerjaan ... 106
Tabel f. 1 : Tabel Summary of security requirements... 129
Gambar 2. 1 : Proses Enkripsi/ Dekripsi Sederhana ... 10
Gambar 2. 2 : Algoritma kriptografi kunci rahasia ... 16
Gambar 2. 3 : Algoritma kriptografi kunci publik ... 18
Gambar 2. 4 : Skema Fungsi Hash ... 19
Gambar 2. 5 : Skema Kriptografi Modern ... 27
Gambar 2. 6 : Skema Global Algoritma DES ... 29
Gambar 2. 7 : Model Sequensial Linier ... 50
Gambar 2. 8 : Kotak Dialog New Project ... 53
Gambar 2. 9 : Integrated Development Enviroment ... 54
Gambar 2. 10 : Komponen Toolbox... 55
Gambar 3. 1 : Model Sequensial Linier ... 61
Gambar 4. 1 : Lambang Departemen Agama RI ... 70
Gambar 4. 2 : Struktur Kandepag Kota Jakarta Timur ... 75
Gambar 4. 3 : Proses Enkripsi dan Dekripsi ... 77
Gambar 4. 4 : Flowchart Proses Enkripsi ... 78
Gambar 4. 5 : Flowchart Proses Enkripsi dengan Metode DES ... 79
Gambar 4. 6 : Flowchart Proses Enkripsi dengan Metode RSA ... 80
Gambar 4. 7 : Flowchart Generate Key ... 81
Gambar 4. 8 : Flowchart Proses Kompresi Dengan Metode Huffman ... 82
Gambar 4. 9 : Flowchart Proses Dekripsi ... 83
Gambar 4. 10 : Flowchart Proses Dekompresi Dengan Metode Huffman .... 84
Gambar 4. 13 : STD Menu Utama ... 87
Gambar 4. 14 : STD Form Splash... 88
Gambar 4. 15 : STD Form Input DES Passphrase ... 88
Gambar 4. 16 : STD Form Input Key RSA ... 88
Gambar 4. 17 : STD Form Info... 88
Gambar 4. 18 : STD Form Bantuan ... 88
Gambar 4. 19 : Blok Diagram Enkripsi DES... 89
Gambar 4. 20 : Blok Diagram Enkripsi RSA... 90
Gambar 4. 21 : Blok Diagram Dekripsi RSA ... 91
Gambar 4. 22 : Blok Diagram Dekripsi DES... 92
Gambar 4. 23 : Rancangan Form Splash ... 93
Gambar 4. 24 : Rancangan Form Menu Utama ... 94
Gambar 4. 25 : Rancangan Form Input DES Passphrase... 94
Gambar 4. 26 : Rancangan Form Input Key RSA... 95
Gambar 4. 27 : Rancangan Form Info ... 95
Gambar 4. 28 : Rancangan Form Bantuan ... 97
Gambar 4. 6. 1 : Tujuh Tipe File Yang Terenkripsi ... 98
Gambar 4. 6. 2 : Tujuh Tipe File Yang Terdekripsi ... 100
Gambar a. 1 : Tampilan Setup MeinCrypt ... 108
Gambar a. 2 : Tampilan Aplikasi MeinCrypt Setup ... 108
Gambar a. 3 : Tampilan Informasi MeinCrypt ... 109
Gambar a. 6 : Tampilan konfirmasi untuk memulai instalasi ... 111
Gambar a. 7 : Tampilan Akhir Proses Instalasi Program... 112
Gambar b. 1 : Form Splash ... 112
Gambar b. 2 : Form Menu Utama ... 113
Gambar b. 3 : Tampilan Window Pilih File Sumber ... 114
Gambar b. 4 : Tampilan Form DES Passphrase... 114
Gambar b. 5 : Tampilan Jendela Peringatan ... 114
Gambar b. 6 : Tampilan Form Input Key RSA... 115
Gambar b. 7 : Tampilan Jendela Pesan Enkripsi Selesai ... 115
Gambar b. 8 : Tampilan Form Pilih File yang akan didekripsi... 116
Gambar b. 9 : Tampilan Form Dekripsi ... 116
Gambar b. 10 : Tampilan Form Input Key RSA ... 117
Gambar b. 11 : Tampilan Form DES Passphrase... 117
Gambar b. 12 : Tampilan Jendela Peringatan Deksripsi selesai ... 117
Gambar b. 13 : Tampilan Form Dekripsi ... 117
Gambar b. 14 : Tampilan Jendela Pesan Untuk Exit... 118
Gambar b. 15 : Tampilan Form Info ... 118
Gambar b. 16 : Tampilan Form Bantuan ... 118
Halaman
Lampiran Surat Keterangan Riset... 105
Lampiran A : Jadwal Waktu Pengerjaan... 106
Lampiran B : Wawancara... 107
Lampiran C : Penggunaan Aplikasi MeinCrypt... 108
Lampiran D : Kode ASCII... 119
Lampiran E : Pengertian Algoritma Kompresi Huffman... 125
Lampiran F : Standar Kriptografi... 126
Lampiran G : Kode Program... 131
1. TERMINAL Simbol ini digunakan untuk mengawali dan mengakhiri suatu proses atau kegiatan.
2. PREPARATION Simbol ini digunakan untuk mempersiapkan harga awal atau nilai awal dari suatu variable yang akan
diproses dan juga untuk penggunaan proses Loop.
3. DECISION Simbol ini digunakan untuk mengambil keputusan dalam pengujian suatu kondisi yang sedang
diproses.
4. PROSES Simbol ini digunakan untuk melakukan kegiatan proses instruksi di dalam suatu program.
5. INPUT/OUTPUT Simbol ini digunakan untuk menggambarkan proses
Input dan Output Program.
6. SUBROUTIN Simbol ini digunakan untuk menggambarkan proses pemanggilan (Call System) pada Sub Program dari yang memiliki beberapa simbol untuk digunakan sebagai gambaran dari rangkaian
proses yang harus dilaksanakan, akan tetapi simbol-simbol tersebut ada yang
sering digunakan dan ada juga yang jarang digunakan. Berikut ini akan dijelaskan
gambar simbol tersebut dan arti atau kegunaannya di bawah ini (Sugiyono,
2005:32) :
Main Program.
pada kegiatan lain.
8. CONNECTOR Simbol ini digunakan untuk penghubung antara suatu proses dengan proses lainnya yang berada
pada posisi halaman yang sama.
9. PAGE CONNECTOR Simbol ini digunakan untuk penghubung antara suatu proses dengan proses lainnya yang berada
pada posisi halaman yang berbeda.
10. PRINTER Simbol ini digunakan untuk menggambarkan suatu Dokumen atau untuk kegiatan Mencetak.
11. CONSOLE Simbol ini digunakan untuk menggambarkan kegiatan dalam menampilkan data atau informasi
dengan Media Visual Display Unit (VDU) atau
disebut juga Monitor.
12. MANUAL INPUT Simbol ini digunakan untuk menggambarkan kegiatan pemasukan Data dengan Media Keyboard.
Menurut Roger, S. Pressman
No Simbol Name Keterangan
1 Tindakan Menggambarkan tindakan yang
diambil jika suatu even terjadi
2 Tampilan Menggambarkan tayangan atau
layer yang tampil
1.1 Latar Belakang
Aspek keamanan data telah menjadi aspek yang sangat penting dari
suatu sistem informasi. Banyak orang mulai mencari cara untuk
mengamankan data atau informasi, karena perkomputeran secara global telah
menjadi tidak aman dan seringkali luput dari perhatian pemakai komputer dan
mulai menjadi isu yang sangat serius. Sehingga, diperlukan suatu cara untuk
mengamankan data yang rahasia dan penting. Salah satu cara menjaga
keamanan dan kerahasiaan data tersebut yaitu dengan digunakannya algoritma
kriptografi untuk melakukan penyandian data.
Kepedulian pegawai Kandepag Kota Jakarta Timur terhadap data-data
kantor dan kurangnya informasi mengenai keamanan data, merupakan salah
satu alasan penulis untuk membuat sebuah aplikasi yang mudah untuk
digunakan dan dapat membantu mereka dalam mengamankan data-data
penting, seperti data kepegawaian, data umum, data keuangan dan data
internal kantor lainnya.
Dengan tingginya kepedulian mereka, maka penulis berupaya untuk
membantu mewujudkan implementasi kriptografi menggunakan metode
kriptografi algoritma DES dan RSA ke dalam suatu perangkat lunak yang
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas, masalah pokok yang akan di bahas
penulis adalah :
a. Bagaimana menjaga kerahasiaan data atau informasi penting yang ada di
komputer user ?
b. Bagaimana membangun aplikasi yang mudah digunakan untuk
mengamankan data atau informasi penting dengan metode DES dan kunci
publik RSA?
1.3 Batasan Masalah
Berdasarkan penelitian yang penulis lakukan, penulis akan membatasi
beberapa hal, yaitu :
1. Terdapat banyak sekali metode kriptografi yang dapat digunakan untuk
mengamankan data. Oleh karena itu, penulis membatasi penulisan dengan
menggunakan metode DES (Data Encryption Standard) dan kunci publik
RSA (Rivest, Shamir, Adlemen).
2. Pada program ini proses enkripsi dan dekripsi yang dilakukan hanya
terbatas pada satu file dan tidak dapat memproses lebih dari satu file
secara bersamaan.
3. Aplikasi yang dirancang tidak membahas sistem keamanan data pada
1.4 Tujuan Penelitian
Tujuan penelitian ini ialah :
a. Membuat suatu aplikasi kriptografi yang mengimplementasikan algoritma
DES dan RSA sehingga dapat mengatasi masalah keamanan data serta
menjaga kerahasiaan data di Kandepag Kota Jakarta Timur.
1.5 Manfaat Penelitian
Manfaat yang didapat oleh penulis dalam menulis skripsi ini adalah :
1. Bagi Penulis
a. Menerapkan ilmu-ilmu yang diperoleh selama kuliah
b. Guna menumbuhkan kesiapan mental mahasiswa untuk memasuki
dunia kerja.
c. Dapat mempelajari lebih jauh mengenai algoritma DES dan RSA
serta mengimplementasikannya untuk penyandian data.
2. Bagi Kandepag
a. Mendapatkan pengetahuan mengenai algoritma DES dan kunci
publik RSA untuk penyandian data.
b. Keamanan yang berlapis karena menggunakan dua metode yang
berbeda.
3. Bagi Universitas
a. Memberikan kemajuan ilmu pengetahuan dalam bidang keamanan
data khususnya mengenai kriptografi di lingkungan Fakultas Sains
1.6 Metodologi Penelitian
1.6.1 Metode Pengumpulan Data
Metodologi pengumpulan data yang digunakan penulis dalam skripsi ini
adalah :
1.6.1.1 Metode Pengamatan Langsung Metode Observasi
Pengamatan dilakukan secara langsung pada bagian umum dan
kepegawaian di Kandepag (Kantor Departemen Agama).
1.6.1.2 Metode Wawancara (Interview)
Wawancara adalah proses memperoleh keterangan untuk tujuan
penelitian dengan cara Tanya-jawab sambil bertatap muka antara
penanya atau pewawancara dengan yang ditanya (penjawab).
1.6.1.3 Metode Literatur
Membaca maupun mempelajari referensi yang ada sebagai pelengkap
dan mencari referensi tambahan dari internet.
1.6.2 Metode Pengembangan Sistem
Pengembangan sistem dalam penelitian ini, penulis lakukan
menggunakan model sekuensial linier (Pressman, 2002:38), terdiri dari tahap-
1. Rekayasa Sistem
Yaitu mengumpulkan kebutuhan pada tingkat sistem, tingkat bisnis
strategis dan tingkat area bisnis.
2. Analysis (Analisis)
Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya
pada sistem yang dibuat. Untuk memahami sifat program yang dibangun,
analis harus memahami domain informasi, proses, dan antarmuka
(interface) yang diperlukan.
3. Design (Desain)
Desain, yaitu melakukan desain untuk membuat gambaran sistem dan lain
sebagainya yang diperlukan untuk pengembangan sistem informasi. Pada
tahap ini digunakan :
a. Flowchart atau Diagram Alir adalah gambar simbol-simbol yang
digunakan untuk menggambarkan urutan proses atau instruksi-
instruksi yang terjadi di dalam suatu program komputer secara
sistematis dan logis.
b. State Transition Diagram merupakan suatu modeling tools yang
menggambarkan sifat ketergantungan dari suatu sistem.
4. Coding (Kode)
Desain harus diterjemahkan ke dalam bentuk mesin yang bisa dibaca.
5. Testing (Pengujian)
Pada tahap ini dilakukan uji coba terhadap sistem yang akan
dan memastikan bahan input yang dimasukkan akan memberikan hasil
aktual yang sesuai dengan hasil yang dibutuhkan.
6. Implementation (Implementasi)
Pada tahap ini sistem diimplementasikan ke dalam komputer pengguna,
sehingga dapat menjamin bahwa program dapat berjalan secara optimal.
7. Maintenance (Pemeliharaan)
Pada tahap ini sistem yang telah diuji coba dan dinyatakan lolos dapat
mulai digunakan untuk menangani prosedur bisnis yang sesungguhnya.
1.7 Sistimatika Penulisan
Untuk mempermudah pembaca dalam memahami isi skripsi ini, maka
penulis membagi laporan ini menjadi beberapa bab yang singkat serta dapat
dijelaskan sebagai berikut :
BAB I PENDAHULUAN
Bab ini berisi pendahuluan yang terdiri dari latar belakang,
rumusan masalah, ruang lingkup masalah, tujuan dan manfaat,
metodologi penulisan serta sistimatika penulisan.
BAB II LANDASAN TEORI
Bab ini membahas tentang landasan teori yang berhubungan
dengan materi yang penulis buat. Teori-teori tersebut antara lain
adalah aspek keamanan data, konsep dasar kriptografi,
menjabarkan pengertian algoritma kriptografi DES dan kunci
BAB III METODOLOGI PENELITIAN
Bab ini berisi metode-metode penelitian yang penulis gunakan
dalam melakukan analisa pada laporan ini.
BAB IV PEMBAHASAN DAN IMPLEMENTASI
Bab ini menguraikan tentang gambaran umum objek penelitian
yaitu Kandepag Kota Jakarta Timur serta pengembangan sistem
aplikasi kriptografi yang dibuat.
BAB V PENUTUP
Bab ini berisi kesimpulan akhir serta saran-saran yang berguna
bagi perbaikan dan pengembangan sistem kriptografi lebih lanjut.
2.1 Keamanan Data
Keamanan dan kerahasiaan data merupakan sesuatu yang sangat penting
dalam era informasi ini dan telah menjadi kebutuhan dasar karena perkomputeran
secara global telah menjadi tidak aman. Informasi akan tidak berguna lagi apabila
di tengah jalan informasi itu disadap atau dibajak oleh orang yang tidak berhak.
Bahkan mungkin beberapa pengguna dari sistem itu sendiri, mengubah data yang
dimiliki menjadi sesuatu yang tidak kita inginkan.
Keamanan data pada komputer tidak hanya tergantung pada teknologi
saja, tetapi dari aspek prosedur dan kebijakan keamanan yang diterapkan serta
kedisiplinan sumber daya manusianya. Jika
firewall
dan perangkat keamanan
lainnya bisa dibobol oleh orang yang tidak berhak maka, peran utama kriptografi
untuk mengamankan data atau dokumen dengan menggunakan teknik enkripsi
sehingga data atau dokumen tidak bisa dibaca (Dony Ariyus, 2006).
2.2 Aspek-aspek Keamanan Data
1. Kerahasiaan (
Privacy
).
Privacy
menjamin perlindungan data / informasi yang bersifat pribadi (
user
ID,
password
, nomor rekening kartu kredit, dsb) dari akses pihak-pihak yang
tidak berhak dan berwenang.
2. Keutuhan (
Integrity
).
Penerima harus dapat memeriksa, apakah data/informasi yang dikirim atau
dipertukarkan oleh pihak yang mengirimkan terjadi perubahan di tengah
jalan atau tidak.
3. Keaslian (
Authentication
).
Penerima pesan dapat memastikan keaslian pengirimnya yang dapat
dibuktikan keabsahannya.
4.
Authority
.
Informasi yang berada pada sistem jaringan seharusnya hanya dapat
dimodifikasi oleh pihak yang berwenang. Modifikasi yang tidak diinginkan,
dapat berupa penulisan tambahan pesan, pengubahan isi, pengubahan status,
penghapusan, pembuatan pesan baru (pemalsuan), atau menyalin pesan untuk
digunakan kemudian oleh penyerang.
5. Tidak ada penyangkalan (
Non Repudiation
).
2.3 Enkripsi dan Dekripsi
2.3.1 Pengertian Dasar
Pesan asli atau informasi yang dapat dibaca disebut sebagai
plaintext
atau
cleartext
. Proses yang dilakukan untuk membuat pesan
menjadi tidak dapat dibaca disebut sebagai
encryption
atau
enkripsi
.
Sedangkan proses untuk mengubah
ciphertext
kembali ke
plaintext
disebut
decryption
atau
dekripsi
. Secara sederhana istilah-istilah di atas dapat
digambarkan sebagai berikut (Materi Kuliah
e-Business
, 1998:11) :
Gambar 2.1
Proses Enkripsi/Dekripsi Sederhana
2.4 Kriptografi
2.4.1 Sejarah Kriptografi
Kriptografi berasal dari bahsa Yunani, menurut bahasa dibagi
menjadi dua kata, yakni kripto berarti
secret
(rahasia) dan graphia berarti
ini digunakan dibidang militer dan intelejen untuk menyandikan pesan-
pesan panglima perang kepada prajurit-prajurit yang berada di garis depan
pertahanan. Pertumbuhan teknologi yang semakin cepat menyebabkan
para ilmuwan selalu membahas topik ini untuk diteliti lebih dalam lagi.
Ilmu Kriptografi sudah lama digunakan oleh tentara Sparta di
Yunani pada permulaan abad 400 SM. Mereka menggunakan alat yang
bernama
scytale
.
Scytale
merupakan pita panjang dari daun
papyrus
ditambah dengan sebatang silinder (Rinaldi Munir: Bahan Kuliah Ke-1,
2004:4). Ketika zaman Romawi, Yulius Caesar telah menggunakan teknik
kriptografi (“Caesar
Cipher
”) yang sekarang dianggap kuno dan sangat
mudah dibobol untuk keperluan militernya. Pada perang dunia kedua,
Jepang dan Jerman juga menggunakan kriptografi untuk keperluan
komunikasi militernya. Namun sekutu dapat menembus produk kriptografi
buatan mereka, sehingga sekutu memenangkan perang dunia kedua.
2.4.2 Tujuan Kriptografi
Dalam teknologi informasi, telah dan sedang dikembangkan cara-
cara untuk menangkal berbagai bentuk serangan semacam penyadapan
maupun pengubahan data. Salah satu cara yang ditempuh untuk mengatasi
masalah ini ialah dengan menggunakan kriptografi, yang memberikan
solusi pada dua masalah utama keamanan data, yaitu masalah privasi
(
privacy
) dan keautentikan (
authentication
). Privasi mengandung arti
bahwa data yang dikirimkan hanya dapat dimengerti oleh penerima yang
sah. Sedangkan keautentikan mencegah pihak ketiga untuk mengirimkan
data yang salah atau mengubah data yang dikirimkan.
Adapun tujuan dari sistem kriptografi adalah sebagai berikut
(WAHANA KOMPUTER, 2003:95-96) :
Confidentiality
Yaitu memberikan kerahasiaan pesan dan menyimpan data dengan
menyembunyikan informasi lewat teknik-teknik enkripsi.
Message Integrity
Non-repudiation
Yaitu memberikan cara untuk membuktikan bahwa suatu dokumen
datang dari seseorang apabila ia mencoba menyangkal memiliki
dokumen tersebut.
Authentication
Yaitu memberikan dua layanan.
Pertama
, mengidentifikasi keaslian
suatu pesan dan memberikan jaminan keautentikannya.
Kedua
,
menguji identitas seseorang apabila ia akan memasuki sebuah sistem.
2.4.3 Algoritma Kriptografi
Kata algoritma mempunyai sejarah yang menarik, kata ini muncul
di dalam kamus Webster sampai akhir tahun 1975 hanya menemukan kata
algorism
yang mempunyai arti proses perhitungan dengan bahasa Arab.
Algoritma berasal dari nama penulis buku Arab yang terkenal yaitu Abu
Ja’far Muhammad Ibnu Musa Al-Khuwarizmi (al-khuwarizmi dibaca oleh
orang Barat menjadi algorism). Kata
algorism
lambat laun berubah
menjadi
algorithm
(Ariyus, 2006:13).
tersebut. Menurut Ariyus (2006:13), algoritma kriptografi terdiri dari tiga
fungsi dasar, yaitu :
Enkripsi
: Enkripsi merupakan pesan asli disebut
plaintext
yang
dirubah menjadi kode-kode yang tidak dapat dimengerti. Enkripsi bisa
diartikan dengan
chiper
atau kode.
Dekripsi
: Dekripsi merupakan kebalikan dari enkripsi, pesan yang
telah dienkripsi dikembalikan ke bentuk asalnya (
Plaintext
) disebut
dengan dekripsi pesan. Algoritma yang digunakan untuk dekripsi tentu
berbeda dengan yang digunakan untuk enkripsi.
Kunci
: Kunci yang dimaksud di sini adalah kunci yang dipakai untuk
melakukan enkripsi dan dekripsi, kunci terbagi jadi dua bagian, yaitu
kunci pribadi (
private key
) dan kunci umum (
public key
).
Secara umum operasi enkripsi dan dekripsi dapat diterangkan
secara matematis sebagai berikut (Wahana Komputer, 2003:97) :
EK (M) = C (Proses Enkripsi)
DK (C) = M (Proses Dekripsi)
Dengan demikian, keamanan suatu pesan tergantung pada kunci
ataupun kunci-kunci yang digunakan dan tidak tergantung pada algoritma
yang digunakan sehingga algoritma-algoritma yang digunakan tersebut
dapat dipublikasikan dan dianalisis, serta produk-produk yang
menggunakan algoritma tersebut dapat diproduksi secara umum. Tidaklah
menjadi masalah apabila seseorang mengetahui algoritma yang kita
gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak
dapat membaca pesan (Wahana Komputer, 2003:98).
2.4.4 Macam-macam Algoritma Kriptografi
Algoritma Kriptografi secara umum dibagi menjadi 2 (dua)
berdasarkan jenis kuncinya dan fungsi hash.
2.4.4.1 Algoritma Kriptografi Kunci Rahasia
Gambar 2.2
Algoritma kriptografi kunci rahasia
(Materi Kuliah
e-Business
, 1998:13)
Algoritma kriptografi kunci rahasia juga disebut algoritma kriptografi
kunci simetris. Disebut juga algoritma kriptografi
konvensional
, karena algoritma
yang biasa digunakan orang sejak berabad-abad lalu adalah algoritma jenis ini.
Keamanan algoritma kriptografi simetri tergantung
pada kunci
(
password
). Membocorkan kunci berarti orang lain dapat mengenkrip dan
mendekrip pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan.
Yang termasuk algoritma kunci simetri adalah OTP, DES, RC2, RC4, RC5, RC6,
IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES),
Blowfish, GOST, A5, Kasumi dan lain-lain.
Algoritma kriptografi kunci rahasia (simetri) dapat dibagi dalam dua
kategori ( Kurniawan, 2004: 9 dan 50), yaitu :
b.
Jenis kedua beroperasi pada plaintext dalam grup bit-bit. Grup bit-bit
ini disebut
blok
. Dan algoritmanya disebut sebagai
algoritma blok
atau
kode rahasia blok
. Untuk algoritma komputer modern, ukuran
blok dasarnya adalah 64 bit atau 128 bit, cukup besar untuk
menghindari analisis pemecahan kode dan cukup kecil agar dapat
bekerja dengan cepat. Yang termasuk dalam algortima blok
ciphers
ialah DES, AES, dan IDEA.
2.4.4.2 Algoritma Kriptografi Kunci Publik
Gambar 2.3
Algoritma kriptografi kunci publik
2.4.4.3 Algoritma
Hash
Fungsi satu arah (
one-way function
) sering disebut juga sebagai fungsi
hash
,
message digest
,
fingerprint
(sidik jari), fungsi kompresi dan
message
authentication code
(MAC). Fungsi ini biasanya diperlukan bila kita
menginginkan pengambilan sidik jari suatu pesan.
Gambar 2.4
Skema Fungsi Hash (Materi Kuliah
e-Business
, 1998:20)
Fungsi
hash
beroperasi pada pesan M dengan panjang sembarang dan
menghasilkan keluaran h yang selalu sama panjangnya. Jadi persamaannya yaitu
h = H (M)
M
= pesan panjang sembarang
h
= nilai
hash
(
hash value
) atau pesan-ringkas (
message-digest
)
h
<<<<
M
Fungsi
hash
harus memiliki sifat-sifat sebagai berikut:
1. Diberikan M, harus mudah menghitung H (M) = h;
2. Diberikan h, sangat sulit atau mustahil mendapatkan M sedemikian
sehingga H(M) = h;
4. Sangat sulit atau mustahil mendapatkan dua pesan M dan M’
sedemikian sehingga H(M) = H(M’).
1. Secure Hash Algorithm (SHA)
NIST bersama NSA mendesain
Secure Hash Algorithm
(SHA) untuk
digunakan sebagai komponen
Digital Signature Standard
(DSS). Standar
hash
adalah
Secure Hash Standard
(SHS) sedangkan SHA adalah Algoritma. SHA
dikatakan aman karena didesain supaya secara matematis tidak dimungkinkan
untuk mendapatkan pesan aslinya bila diberikan
hash
-nya atau tidak mungkin
mendapatkan dua pesan yang berbeda yang menghasilkan MD (
Message Digest
)
yang sama (Kurniawan, 2004:116).
2. MD5
Salah satu fungsi
hash
yang paling banyak digunakan dalam keamanan
jaringan komputer dan internet adalah MD5 (
Message Digest
) versi 5 yang
dirancang oleh Ron Rivest. MD5 merupakan kelanjutan MD4 yang dirancang
dengan tujuan sebagai berikut ( Kurniawan, 2004:120) :
penyerang mencoba kemungkinan-kemungkinan untuk menemukan kunci
sampai kunci itu ditemukan).
Keamanan Langsung
. Keamanan MD5 tidak didasarkan pada suatu asumsi,
seperti kesulitan pemfaktoran.
Kecepatan.
MD5 sesuai untuk diimplementasikan dengan perangkat lunak
yang berkecepatan tinggi, karena berdasar pada sekumpulan manipulasi
operan 32-bit.
Kesederhanaan dan Kompak
. MD5 sederhana tanpa struktur data atau
program yang komplek.
Selain pada PGP, MD5 juga digunakan untuk mengkodekan
password
pada
Windows NT 4.0, Windows 2000 dan sistem operasi Linux.
2.4.5 Kriptografi Klasik
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0 1 2
2.4.5.1 Teknik Substitusi
Substitusi adalah penggantian setiap karakter
plaintext
dengan karakter
lain. Beberapa istilah yang mungkin perlu diingat adalah:
a.
Monoalphabet
: Setiap karakter
ciphertext
mengganti satu macam karakter
plaintext
tertentu.
b.
Polyalphabet
: Setiap karakter
ciphertext
dapat mengganti lebih dari satu
macam karakter
plaintext
.
c.
Monograf / unilateral
: Satu enkripsi dilakukan terhadap satu karakter
plaintext
.
d.
Polygraph / multilateral
: Satu enkripsi dilakukan terhadap lebih dari satu
karakter
plaintext
sekaligus.
Jenis-jenis Teknik Substitusi yang ada saat ini yaitu :
1. Caesar Cipher
Substitusi
chiper
yang pertama dalam dunia penyandian pada waktu
pemerintahan Yulius Caesar dikenal dengan nama
Caesar Cipher
(Ariyus,
2006:16), dengan mengganti posisi huruf awal dari alphabet sebagai contoh :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
D O N Y A R I U S B C E F G H J K L M P Q T V W X Z
Jika pergeseran yang dilakukan sebanyak tiga kali maka, kunci untuk
dekripsinya adalah 3, penggeseran kunci yang dilakukan tergantung dari
keinginan pengirim pesan. Bisa saja kunci yang dipakai a = 7, b = 9 dan
seterusnya. Untuk plaintext diberikan symbol “P” dan ciphertextnya “C” dengan
kunci “K”, jadi rumusnya adalah sebagai berikut (Ariyus, 2006:17) :
C = E (P) = (P+K) mod 26
Dan rumus untuk dekripsinya sebagai berikut :
P = D (C) = (C-K) mod 26
2. Substitusi Deret Campuran Kata Kunci
Caesar Cipher dengan menggunakan satu kunci atau bisa disebut dengan
substitusi deret campur kata kunci, yang perlu diingat, tidak ada perulangan huruf
dalam hal ini. DONY ARIYUS menjadi DONYARIUS, huruf Y terjadi
perulangan jadi tidak dipakai lagi
Menggunakan satu kunci :
Plaintext
: “KENAIKAN HARGA BBM MEMBUAT RAKYAT
KECIL MENDERITA”
Kunci
: DONY ARIYUS menjadi DONYARIUS
Ciphertext
: CAGDSCDGUDLIDOOFFAFOQDPLDCXDP
3. Substitusi Monome-Dinome-Trinome
Monome berarti bahwa setiap satu karakter
plaintext
akan disubstitusi oleh 1
karakter
ciphertext
, dinome disubstitusi 2 karakter
ciphertext
, sedangkan trinome
disubstitusi 3 karakter
ciphertext
. Jadi sistem monomer-dinome-trinome berarti
sistem yang menggunakan campuran ketiga sistem dasarnya.
4. Substitusi Polialfabet Periodik
Dalam sistem Polialfabet, setiap
ciphertex
t dapat memiliki banyak
kemungkinan
plaintext
. Jadi, bila
plaintext
“a” memiliki
ciphertext
“1” atau “23””
atau “43”, maka sistem tetap dikatakan sebagai mono alfabet, karena
ciphertext
“1” pasti melambangkan
plaintext
“a”, demikian pula dengan
plaintext
“23” dan
“43”. Sedangkan, pada sistem Polialfabet,
ciphertext
“1” mungkin menggantikan
plaintext “a” pada suatu saat dan dapat menggantikan
plaintext
“b” pada saat yang
lain. Jenis poli alfabet klasik yang terkenal adalah
Vigenere
(Kurniawan,
2004:29). Pada teknik
vigenere
, setiap
ciphertext
bisa memiliki banyak
kemungkinan
plaintext
nya. Teknik dari substitusi
vigenere
bisa dilakukan dengan
dua cara, yaitu angka dan huruf.
2.4.5.2 Teknik Transposisi
M
S
A Y A
B E L A J
A R K E A M A
N A N K O M P U T
E R X X X X X X X X X
kunci untuk mengembalikan pesan tersebut ke bentuk semula atau disebut dengan
dekripsi (Ariyus, 2006:36). Metode transposisi dapat berupa :
Zig –zag
: Memasukkan plaintext degan pola zig-zag seperti contoh di bawah
ini :
A G A A X
Y S N B J R N O P R
A E A E A K A A K U E
S D
L
E
N
T
Ciphertext dari teknik ini yaitu dengan membaca dari baris atas ke baris
bawah, yaitu
“AGAAMXYSNBJRMNOPRAEAEAKAAKUESDLENTX”
Segi tiga
: dengan pola ini masukkan plaintext dengan pola segi tiga dan
dibaca dari atas ke bawah.
Ciphertextnya adalah :
“ENRAAX BRNXAE KKXSYL EOXAAA MXJMPX AUXTXX”
S A Y A S E
A M A N A D
E E R X N A
K T X X K N
R U P M O G
A J A L E B
Ciphertextnya adalah :
“
SAEKRA AMETUJ YARXPA ANXXML SANKOE EDANGB
”
Diagonal
: dengan menggunakan pola ini, plaintext dimasukkan dengan cara
diagonal, perhatikan contoh dibawah ini :
S D L E N T
A A A A K E
Y N J M O R
A G A A M X
S B R N P X
E E K A U X
Ciphertextnya adalah :
“
SDLENT AAAAKE YNJMOR AGAAMX SBRNPX EEKAUX
”
Dari teknik Transposisi (Permutasi) dengan berbagai macam pola yang
bisa dilakukan untuk menyembunyikan pesan dari orang-orang yang tidak berhak.
Dari kombinasi tersebut merupakan dasar dari pembentukan algoritma kriptografi
yang kita kenal sekarang ini (modern).
2.4.6 Kriptografi Modern
H ash Function
pengoperasiannya, yang berfungsi mengamankan data baik yang ditransfer
melalui jaringan komputer maupun tidak. Hal ini sangat berguna untuk
melindungi
privacy
, integritas data,
authentication
dan
non repudiation
(Ariyus, 2006:49). Di bawah ini digambarkan bagaimana enkripsi modern
saling mendukung satu dengan yang lainnya.
S ecure Network Protocols
Confidentiality Data
Integrity A uthentication R epudiation N on-
Encryption M ACs M ICs Challenge R esponses Sm art Cards D igital Signatures
Sym m etric Key Cryptograph y
M essage
D igest IVs Nonces Secret Ke ys
[image:42.612.114.545.197.519.2]Public Key C ryptography Block C ipher Stream C ipher Pseudo Random Random Source Elliptic C urve DH R SA
Gambar 2.5
Skema Kriptografi Modern (Munir, 2006:4)
Enkripsi terdiri dari
symmetric key
,
public key
dan IVs, sedangkan
symmetric key
terdiri dari
block cipher
dan
stream cipher
. Sedangkan
public key
terdiri dari ECC dan RSA. MAC dibentuk dari hash function
yang kan menghasilkan
message digests
,
Pseudo Random
digunakan
untuk IVs, Nonces, serta pembuatan
Secret Key
yang disimpan di dalam
Smart Cards
, sedangkan untuk Nonces sendiri digunakan untuk
menghasilkan
Challenge Response
(Ariyus, 2006:50).
2.5 Metode DES (
Data Encryption Standard
)
Data Encryption Standard
(DES) merupakan algoritma yang paling
banyak dipakai di dunia yang diadopsi oleh NIST (
National Institute of Standards
and Technology
) sebagai standar pengolahan informasi
Federal
AS. Secara
umum
Data Encryption Standard
(DES) terbagi menjadi tiga kelompok, yaitu
pemrosesan kunci, enkripsi data 64-bit, dan dekripsi data 64-bit
yang
masing-masing saling berinteraksi satu dengan yang lainnya (Ariyus, 2006:64).
2.6 Algoritma DES
Setiap blok (plainteks dan cipherteks) dienkripsi dalam 16 putaran. Setiap
putaran menggunakan kunci internal berbeda. Kunci internal (56-bit)
dibangkitkan dari kunci eksternal. Setiap blok mengalami permutasi awal (IP), 16
putaran
enciphering
dan
inverse
permutasi awal (IP
-1).
Gambar 2.6
Skema Global Algoritma DES
(Rinaldi Munir:Bahan Kuliah ke-1 DES, 2004:8)
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
Tabel 2.1
Tabel
PC-1
bit tersebut diurutkan perbaris dari
57
sampai
4
menjadi
K+
, jadi bit pertama
K+
adalah bit
57
dari bit
K
, bit kedua
K+
adalah bit ke-
49
dari bit
K
dan begitu
seterusnya sampai bit
K+ 56
adalah bit ke-
4
dari
K
, setelah itu, kunci
K+
dibagi
menjadi 2 (dua)
K
kirin
dan
K
kanann
dari
K
kirin
dan
K
kanann
dibagi 16 (enam
belas) blok, dimana 1<=n<=16.
Pemindahan Bit
Iterasi
Ke
Jumlah
Step
1
1
2
1
3
2
4
2
5
2
6
2
7
2
8
2
9
1
10
2
11
2
12
2
13
2
14
2
15
2
16
1
Tabel 2.2
Tabel Pemindahan Bit
Tiap pasang
K
kirin
dan
K
kanann
dibuat dari pasang
K
kirin-1
dan
K
kanann-1
ke paling Kanan dari bit
K
kiri0
dan
K
kanan0
, untuk mendapatkan
K
kiri4
dan
K
kanan4
pindahkan bit paling sebelah Kiri sebanyak 2 bit ke paling Kanan dari bit
K
kiri3
dan
K
kanan3,
begitu seterusnya sampai putaran ke 16 yaitu n sudah mencapai 16.
Setelah selesai
K
kirin
dan
K
kanann
digabungkan kembali dan di
permutasikan kembali mengikuti aturan tabel
PC-2
menjadi 48 bit, hasilnya akan
mendapatkan
K
n dimana 1<=n<=16.
PC-2
[image:46.612.113.503.244.509.2]14
17
11
24
1
5
3
28
15
6
21
10
23
19
12
4
26
8
16
7
27
20
13
2
41
52
31
37
47
55
30
40
51
45
33
48
4
49
39
56
34
53
46
42
50
36
29
32
Tabel 2.3
Tabel PC-2
Setelah selesai, gabungkan
K
kiridan
K
kanankembali setelah digabung
permutasikan
K
kirin
dan
K
kanann
sesuai aturan
PC-2
yang akan menghasilkan
P
n
pada
PC-2
di atas dari 64 bit
K
kirin
dan
K
kanann
hanya diambil 48 bit. Bit pertama
pada
K
n adalah bit ke-14 dan
K
kirin
dan
K
kanann
bit ke-2 dari
P
n adalah bit ke-17
dari
K
kirin
dan
K
kanann
begitu seterusnya sampai bit ke-48 dari
P
n adalah bit ke-32
dari
K
kirin
dan
K
kanann
.
melakukan 16 iterasi untuk 1<=n<=16 menggunakan fungsi yang beroperasi pada
2 blok 32 bit kita anggap
⊕
adalah penambahan XOR (pertambahan bit demi bit
Modulo 2) dan n bertambah sampai 16
M
kirin
=
M
kanann-1
M
kanann
=
M
kirin-1
⊕
f (
M
kanann-1, Kn
)
Pemilihan Bit E
32
1
2
3
4
5
4
5
6
7
8
9
[image:47.612.114.524.168.489.2]8
9
10
11
12
13
12
13
14
15
16
17
16
17
18
19
20
21
20
21
22
23
24
25
24
25
26
27
28
29
28
29
30
31
32
1
Tabel 2.4
Tabel Pemilihan Bit E
Untuk fungsi
f
pertama, kita harus menambahkan tiap blok
M
kanann-1
menjadi
E
(
M
kanann-1
) dari 32 bit menjadi 48 bit agar bisa dioperasikan dengan
K
n. Untuk itu, perlu tabel pemilihan bit
E
sehingga persamaan
M
kanann-1
menjadi
E
(
M
kanann-1
)
setelah itu
kita
XOR-kan E(
M
kanann-1
)dengan
persamaannya menjadi :
Kn
⊕
E
(
M
kanann-1
).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 5 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
K
n +
E
(
M
kanann-1
) =
B1, B2, B3, B4, B4, B5, B6, B7, B8
Dimana setiap
B1
adalah sekumpulan bit. Sekarang kita hitung :
S1(B1), S2(B2), S3(B3), S4(B4), S5(B5), S6(B6), S7(B7), S8(B8)
Dimana setiap S1B1 adalah hasil dari
Sbox
ke
Sbox 1
Tabel 2.5
Tabel Sbox 1
Sbox 2
Tabel 2.6
Tabel Sbox 2
Sbox 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
Sbox 4
Tabel 2.8
Tabel Sbox 4
Sbox 5
Tabel 2.9
Tabel Sbox 5
Sbox 6
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
2 1 4 11 13 12 13 7 14 10 15 6 8 0 5 9 2
3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
Sbox 7
Tabel 2.11
Tabel Sbox 7
Sbox 8
Tabel 2.12
Tabel Sbox 8
Setiap kelompok akan memberikan kita sebuah alamat pada sebuah Sbox
yang berbeda. Ada 4 bit angka pada alamat tersebut yang akan menggantikan 6
bit tersebut, hasil setiap kelompok 6 bit dirubah menjadi 4 bit untuk menjadi 32
bit. Misalkan kita memasukkan sebuah nilai 32
10= 100000
2ke dalam Sbox1,
pertama pisahkan bit pertama dan terakhir kemudian satukan keduanya menjadi
10
2= 2
10nilai yang kita dapat akan kita gunakan untuk menentukan baris pada
Sbox1 kemudian bit ke-2 sampai bit-5 atau nilai tengah 0000
2= 0
10kita gunakan
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 5 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Sbox 1
Tabel 2.5
Tabel Sbox 1
Nilai yang kita dapatkan akan kita substitusi dengan nilai yang kita input
(32=>4). Dengan penjelasan tersebut, maka akan kita dapatkan nilai
M
kanann
=
M
kiri
n-1
⊕
f
(
M
kanann-1
,
K
n) dan ini berlangsung sampai nilai
n
mencapai 16,
setelah didapati nilai
M
kiri16
dan
M
kanan16
gabungkan kembali, akan tetapi
dengan urutan di balik menjadi 64 bit blok :
M
kanan16 M
kiri16
.
Setelah digabungkan, maka lakukan operasi terakhir dengan mengikuti
aturan IP-1 hasilnya adalah
ciphertext
. Untuk melakukan dekripsi cukup
membalik dari yang akhir ke paling awal dari proses enkripsi (Wirawan,
2006:42).
2.7 Metode RSA (Rivest, Shamir, Adleman)
sangat besar. RSA termasuk algoritma asimetri, yang berarti memiliki dua kunci,
yaitu kunci publik dan kunci privat.
Skema yang dikembangkan oleh Rivest, Shamir dan Adleman
mengekspresikan bahwa
plaintext
dienkripsi menjadi
block-block
yang setiap
block
memiliki nilai bilangan biner yang diberi simbol “n”,
plaintext
blok “M”
dan
ciphertext
“C”. Untuk melakukan enkripsi pesan “M”, pesan dibagi ke dalam
block-block numeric
yang lebih kecil daripada “n” (data biner dengan pangkat
terbesar), jika bilangan prima yang panjangnya 200 digit dan dapat menambah
beberapa bit 0 di kiri bilangan untuk menjaga agar pesan tetap kurang dari nilai
“n” (Ariyus, 2006:113).
Sekali kunci telah diciptakan, sebuah pesan dapat dienkrip dalam blok dan
melewati persamaan berikut ini :
C = M
emod n (1)
, dimana C adalah
ciphertext
. M adalah
message
(
plaintext
), sedangkan
e
adalah kunci publik penerima. Dengan demikian, pesan
di atas dapat didekrip dengan persamaan berikut :
M = C
dmod n (2)
, dimana
d
adalah kunci pribadi penerima.
2.8 Algoritma RSA
2.8.1 Properti Algoritma RSA
Besaran-besaran yang digunakan pada algoritma RSA (Rinaldi Munir:
Bahan Kuliah ke-15, 2004:1) :
1)
p
dan
q
bilangan prima
(rahasia)
2)
n
=
p . q
(tidak rahasia)
3)
φ
(
n
) = (
p
– 1)(
q
– 1)
(rahasia)
4)
e
(kunci enkripsi)
(tidak rahasia)
5)
d
(kunci dekripsi)
(rahasia)
6)
m
(plainteks)
(rahasia)
7)
c
(cipherteks)
(tidak rahasia)
2.8.2 Algoritma Membangkitkan Pasangan Kunci
(Stallings, 2004:569)
1. Pilih dua buah bilangan prima sembarang,
p
dan
q
dan
p
q
.
2. Hitung
n
=
p x q
3. Hitung
φ
(
n
) = (
p
– 1)(
q
– 1)
4. Pilih bilangan integer
e
,
gcd(
φ
(
n
),
e
) = 1
; 1<
e
<
φ
(
n
)
5. Hitung
d
yang didapatkan dari :
de
mod
φ
(
n
) = 1
6.
Public Key
KU = {
e, n
}
2.8.3 Algoritma Enkripsi/Dekripsi
(Stallings, 2004:569)
Enkripsi
1.
Plaintext
:
M
<
n
2.
Ciphertext
:
C
=
M
e(mod
n
)
Contoh (
1
) Misalkan A mengirim pesan ke B. pesan (plainteks) yang akan
dikirim oleh A adalah :
m
= PUASA atau dalam sistem desimal
(pengkodean ASCII) adalah : 8085658365.
B memecah
m
menjadi blok yang lebih kecil, misalnya
m
dipecah menjadi
enam blok yang berukuran 3 digit :
m
1= 808
m
3= 836
m2
= 565
m4
= 005
A memilih p = 53 dan q = 61 (keduanya prima). Hitung n = 53x61 = 3233.
Hitung
φ
(
n
)
= (
p
– 1)(
q
– 1) = (53-1)(61-1) = 52x60 =
3120
.
Pilih
e = 71
karena gcd(
φ
(
n
),
e
) = 1; 1<
e
<
φ
(
n
)
Hitung
de
mod
φ
(
n
) = 1, d*71 mod 3120 = 1 dan d < 3120, maka
didapatkan
d = 791
, karena 791*71 mod 3120 = 1.
C
1= 808
71mod 3233 = 2696
C
3= 836
71mod 3233 = 722
C
2= 565
71mod 3233 = 2770
C
4= 005
71mod 3233 = 2261
Dekripsi
1.
Ciphertext
:
C
2.
Plaintext
:
M
=
C
d(mod
n
)
Contoh (
2
) dekripsi dilakukan dengan mengunakan kunci privat, d = 791
Blok-blok cipherteks didekripsikan sebagai berikut :
M
1= 2696
791mod 3233 = 808
M
3= 722
791mod 3233 = 836
M
2= 2770
791mod 3233 = 565
M
4= 2261
791mod 3233 = 005
Akhirnya kita memperoleh kembali plainteks semula
M = 8085658365 atau M = PUASA
2.8.4 Keamanan RSA
•
Keamanan algoritma RSA didasarkan pada sulitnya memfaktorkan
bilangan besar menjadi faktor-faktor primanya. Masalah pemfaktoran:
Faktorkan
n
, yang dalam hal ini
n
adalah hasil kali dari dua atau lebih
bilangan prima.
Pada RSA, masalah pemfaktoran berbunyi: Faktorkan
n
menjadi dua
faktor primanya,
p
dan
q
, sedemikian sehingga
n
=
p
.
q
φ
(n) = (
p
– 1) (
q
– 1) dapat dihitung. Selanjutnya, karena kunci
enkrispi
e
diumumkan (tidak rahasia), maka kunci dekripsi
d
dapat
dihitung dari persamaan
de
mod
φ
(
n
)
≡
1
•
Penemu algoritma RSA menyarankan nilai
p
dan
q
panjangnya lebih
dari 100 digit. Dengan demikian hasil kali
n
=
p
•
q
akan berukuran
lebih dari 200 digit.
Menurut Rivest dan kawan-kawan, usaha untuk mencari faktor prima
dari bilangan 200 digit membutuhkan waktu komputasi selama 4
milyar tahun, sedangkan untuk bilangan 500 digit membutuhkan
waktu 10
25tahun! (dengan asumsi bahwa algoritma pemfaktoran yang
digunakan adalah algoritma yang tercepat saat ini dan komputer yang
dipakai mempunyai kecepatan 1 milidetik).
•
Untunglah algoritma yang dapat memfaktorkan bilangan yang besar
belum ditemukan. Selama 300 tahun para matematikawan mencoba
mencari faktor bilangan yang besar namun tidak banyak membuahkan
hasil. Semua bukti yang diketahui menunjukkan bahwa upaya
pemfaktoran itu luar biasa sulit.
•
Untuk
informasi
RSA
lebih
lanjut,
kunjungi
situs
web
www.rsasecurity.com
2.9 Keamanan Algoritma
Suatu algoritma dikatakan aman, bila tidak ada cara untuk ditemukan
plaintext
nya, berapa pun banyaknya
ciphertext
yang dimiliki
cryptanalyst
.
Sampai saat ini, hanya algoritma
one-time-pad
(OTP) yang dinyatakan tidak
dapat dipecahkan meskipun diberikan sumber daya yang tidak terbatas.
Karena selalu terdapat kemungkinan ditemukannya cara baru untuk
menembus suatu algoritma kriptografi, maka algoritma kriptografi yang dikatakan
“cukup“ atau “mungkin” aman bila memiliki keadaan sebagai berikut
(Kurniawan, 2004:14-15) :
Bila harga untuk menjebol algoritma lebih besar daripada nilai informasi yang
dibuka, maka algoritma tersebut cukup aman. Misalkan, diperlukan komputer
senilai 1 juta dolar untuk menjebol algoritma yang digunakan untuk
melindungi informasi senilai 100 ribu dolar, maka anda mungkin aman.
Bila jumlah data yang dienkrip dengan kunci dan algoritma yang sama lebih
sedikit dari jumlah data yang diperlukan untuk menembus algoritma tersebut,
maka anda aman. Misalnya diperlukan 100
ciphertext
untuk menebak kunci
yang digunakan pada algoritma X. Sedangkan satu kunci hanya digunakan
untuk satu pesan, maka anda mungkin aman.
2.10
Standar Kriptografi
Standar kriptografi dibutuhkan sebagai landasan dari teknik-teknik
kriptografi karena protokol yang rumit cenderung memiliki cacat dalam
rancangan. Dengan menerapkan standar yang telah diuji dengan baik, industri
dapat memproduksi produk yang lebih terpercaya. Bahkan protokol yang
aman pun dapat lebih dipercaya pelanggan setelah menjadi standar, karena
telah melalui proses pengesahan.
kesempatan untuk memilih diantara produk atau layanan yang berkompetisi
(Rahayu, 2005:37).
Based on Handbook of Applied Cryptography, there are five Basic
cryptographic patents which are fundamental to current cryptographic
practice, three involving basic ideas of public-key cryptography. These
patents are discussed in chronological order. (Berdasarkan ebook Handbook
of Applied Cryptography, ada lima dasar hak paten dalam kriptografi
berdasarkan kriptografi tertentu, 3 (tiga) diantaranya merupakan kunci publik
kriptografi. Hak paten ini didiskusikan dalam permintaan kronologis).
Tabel 2. 13
Lima Hak Paten dalam Kriptografi
2.10.1 ANSI X3.92 (
American National Standards Institute
)
[image:59.612.112.540.123.521.2]2.10.2 FIPS (
Federal Information Processing Standards
)
Standar FIPS merupakan ketentuan untuk semua badan federal
Amerika Serikat yang menggunakan sistem keamanan berbasis kriptografi
untuk melindungi informasi dalam komputer dan sistem telekomunikasi.
Penting juga bagi Pemerintah Kanada dan di banyak negara-negara anggota
NATO di Eropa. Divisi Keamanan Komputer di NIST (
National Institute of
Standards and Technology
) mempertahankan standar kriptografi seperti FIPS
dan mengkoordinasikan program Modul Validasi Kriptografi (CMV) untuk
menguji modul kriptografi dan algoritma. Ketentuan keamanan mencakup 11
daerah yang berhubungan dengan rancangan dan penerapan modul kriptografi
(http://csrc.nist.gov). Di bawah ini merupakan beberapa FIPS :
[image:60.612.110.525.217.586.2]2.10.3 PKCS (
Public-Key Cryptography Standards
)
PKCS adalah sekumpulan standar untuk kriptografi kunci publik,
dikembangkan oleh RSA
Laboratories
bekerja sama dengan konsorsium
informal, termasuk
Apple, Microsoft
, DEC,
Lotus, Sun
dan MIT. PKCS
mendapatkan pujian dari OIW (
OSI Implementers' Workshop
) sebagai metode
untuk implementasi standar OSI. PKCS dirancang untuk data biner dan
ASCII; PKCS juga kompatibel dengan standar ITU-T X.509. Standar yang
telah dipublikasikan adalah PKCS #1, #3, #5, #7, #8, #9, #10 #11, #12, dan
#15; PKCS #13 dan #14 sedang dalam pengembangan (Rahayu, 2005:40).
PKCS terdiri dari standar implementasi yang
algorithm-specific
dan
algorithm-independent
. Banyak algoritma didukung, termasuk RSA dan
Diffie-Hellman
key exchange
. Bagaimanapun juga, hanya dua algoritma ini
yang dispesifikasikan secara detail. PKCS juga mendefinisikan
algorithm-
independent syntax
untuk tanda tangan digital, amplop digital, dan sertifikat.
Ini memungkinkan seseorang untuk mengimplementasi algoritma kriptografi
apapun untuk disesuaikan dengan sintaks standar, sehingga dapat mencapai
interoperabilitas. Dibawah ini adalah
Public-Key Cryptography Standards
<