PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN
DATA MENGGUNAKAN ALGORITMA KRIPTOGRAFI
SIMETRI IDEA
SKRIPSI
DEWI TRY AGUSTINA
041401015
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA
MENGGUNAKAN ALGORITMA KRIPTOGRAFI SIMETRI IDEA
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer
DEWI TRY AGUSTINA
041401015
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul
: PERANCANGAN DAN IMPLEMENTASI SISTEM
KEAMANAN DATA MENGGUNAKAN ALGORITMA
KRIPTOGRAFI SIMETRI IDEA
Kategori
: SKRIPSI
Nama
: DEWI TRY AGUSTINA
Nomor Induk Mahasiswa
: 041401015
Program Studi
: SARJANA (S1) ILMU KOMPUTER
Departemen
: ILMU KOMPUTER
Fakultas
: MATEMATIKA DAN ILMU PENGETAHUAN ALAM
(FMIPA) USU
Diluluskan di
Medan, 20 Desember 2008
Komisi Pembimbing
:
Pembimbing 2 :
Pembimbing 1
:
Maya Silvi Lydia, B.Sc., M.Sc.
Prof. Dr. Iryanto, M.Si.
NIP 132 299 349
NIP 130 353 140
Diketahui / Disetujui oleh
Departemen Ilmu Komputer FMIPA USU
Ketua,
PERNYATAAN
PERANCANGAN DAN IMPLEMENTASI SISTEM KEAMANAN DATA
MENGGUNAKAN ALGORITMA KRIPTOGRAFI SIMETRI IDEA
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan
dan ringkasan yang masing – masing disebutkan sumbernya.
Medan, 20 Desember 2008
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Allah SWT, Tuhan Yang Maha Pemurah dan Maha
Penyayang, dengan limpahan karunia–Nya maka kajian ini berhasil diselesaikan dalam waktu
yang telah ditetapkan.
Ucapan terima kasih saya sampaikan kepada:
1.
Bapak Prof. Dr. Iryanto, M.Sc. dan Ibu Maya Silvi Lydia, B.Sc, M.Sc. selaku
pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh
kepercayaan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas dan
padat dan professional telah diberikan kepada saya agar penulis dapat menyelesaikan
tugas ini.
2.
Ketua dan Sekretaris Departemen Bapak Prof. Dr. Muhammad Zarlis dan Syahriol
Sitorus,S.Si,MIT, serta Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu
Pengetahuan Alam Universitas Sumatera Utara.
3.
Semua dosen pada Departemen Ilmu Komputer FMIPA USU, pegawai di FMIPA
USU, dan rekan – rekan kuliah.
4.
Juga tidak terlupakan kepada bapak, ibu, dan semua ahli keluarga yang saya cintai,
yaitu bang Toni, bang Aris, Ihsan,serta para paman bibi yang selama ini memberikan
bantuan dan dorongan yang diperlukan.
5.
Serta takkan luput juga kepada sahabat-sahabat tersayang, yaitu: Nisa, Leni, Dian,
Farida, Nita, Dewi, Tya, Tika, dll. yang telah berjuang membantu, baik material,
pikiran, tenaga, dan waktu.
6.
Terakhir kepada teman kuliah yang sudah sangat membantu dalam penyelesaian
program skripsi ini yaitu Fahrur Razi.
7.
Juga tidak terlewatkan kepada Bang Yunza, sahabat sekaligus abang, yang sudah
banyak memberikan semangat dan dukungan serta motivasi yang membangun dalam
menyelesaikan skripsi ini.
ABSTRAK
Banyak algoritma kriptografi modern yang walaupun menyediakan keamanan tinggi, namun
sangat susah dimengerti dan dipelajari masyarakat awam. Tujuan dari penelitian ini adalah
untuk membangun suatu perangkat lunak yang tidak hanya bisa menjaga keamanan data
dengan kuat dan andal, tapi juga mudah dimengerti banyak orang. Untuk itulah algoritma
IDEA dipilih, karena algoritma ini termasuk algoritma yang memuaskan user selain dengan
kekuatan dan keandalannya dari berbagai serangan para kriptanalis, juga dengan
kemudahannya dipelajari semua orang. Sistem ini dikembangkan menggunakan bahasa
pemrograman C++. Analisis kebutuhan perangkat lunak algoritma IDEA dilakukan dengan
menentukan nama perangkat lunak yang akan dibangun, mengetahui siapa yang akan
menggunakan perangkat lunak tersebut, memahami konsep teknologi yang akan dipakai,
membuat tampilan antarmuka yang mendidik, menentukan teknik yang dipergunakan untuk
membentuknya, serta menguji hasil perangkat lunak tersebut. Objektif utama sistem ini
adalah untuk melihat dan mempelajari berbagai konsep dan prinsip untuk merancang dan
mengimplementasikan sistem keamanan data menggunakan algoritma IDEA.
DESIGN AND IMPLEMENTATION OF DATA SECURITY SYSTEM
USING THE SYMETRIC CRYPTOGRAPHY IDEA ALGORITHM
ABSTRACT
DAFTAR ISI
Halaman
Persetujuan
ii
Pernyataan
iii
Penghargaan
iv
Abstrak
v
Abstract
vi
Daftar Isi
vii
Daftar Tabel
ix
Daftar Gambar
x
Bab 1 Pendahuluan
1
1.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
3
1.7
Sistematika Penulisan
4
Bab 2 Landasan Teori
6
2.1
Kriptografi
6
2.1.1
Sejarah Kriptografi
7
2.1.2
Enkripsi dan Dekripsi
8
2.1.2.1
Enkripsi Konvensional
9
2.1.2.2
Enkripsi Kunci Publik
9
2.1.3
Pola-pola Penyerangan Data
10
2.1.4
Serangan terhadap Kriptografi
12
2.1.5
Kategori Cipher Kunci Simetri
12
2.2
Rekayasa Perangkat Lunak
13
2.2.1
Proses Rekayasa Perangkat Lunak
13
2.3
Matematika Kriptografi
13
2.3.1
Teorema Euclidean
13
2.3.2
PBB
14
2.3.3
Algoritma Euclidean
14
2.3.4
Relatif Prima
15
2.3.5
Aritmatika Modulo
15
2.3.6
Kekongruenan
15
2.3.7
Inversi Modulo
16
2.4
Algoritma IDEA
17
2.4.1
Proses Enkripsi IDEA
19
2.4.2
Pembentukan Subkunci Enkripsi
21
2.4.3
Proses Dekripsi IDEA
22
2.4.3.2
Invers Perkalian
24
2.4.3.3
Algoritma Extended Euclidean
24
2.4.4
Contoh Komput asi Penggunaan Algoritma IDEA
26
2.4.4.1
Proses Enkripsi
26
2.4.4.2
Proses Dekripsi
27
Bab 3 Analisis dan Pemodelan Perangkat Lunak
30
3.1
Analisis Permasalahan Algoritma IDEA
30
3.2
Analisis Kebutuhan Algoritma IDEA
30
3.3
Pemodelan Fungsional
32
3.4
DFD dan Spesifikasi Proses
32
3.4.1
Diagram Konteks
33
3.4.2
DFD level 1
33
3.4.3
DFD level 2 proses P.1
35
3.4.4
DFD level 3 proses P.1.1
36
3.4.5
DFD level 3 proses P.1.2
37
3.4.6
DFD level 2 proses P.3
38
3.4.7
DFD level 2 proses P.4
39
3.5
Kamus Data
40
3.5.1
Proses Pembentukan Kunci Enkripsi dan Dekripsi
41
3.5.2
Proses Enkripsi
42
3.5.3
Proses Dekripsi
42
Bab 4 Perancangan dan Implementasi Perangkat Lunak
44
4.1
Perancangan
44
4.1.1
Perancangan Data
44
4.1.2
Perancangan Struktur Program
45
4.1.3
Perancangan Prosedural
47
4.1.3.1
Algoritma dan
flowchart
Proses
Pembangkitan Subkunci Enkripsi dan Dekripsi
47
4.1.3.2
Algoritma dan
flowchart
Proses Enkripsi
49
4.1.3.3
Algoritma dan
flowchart
Proses Dekripsi
50
4.2
Implementasi
54
4.2.1
Halaman Menu Utama
54
4.2.2
Halaman Menu Enkripsi
57
4.2.3
Halaman Menu Dekripsi
58
Bab 5 Penutup
60
5.1
Kesimpulan
60
5.2
Saran
60
Daftar Pustaka
61
Lampiran Listing Program
63
DAFTAR TABEL
Halaman
Tabel 2.1
Penggunaan Kunci di Tiap Putaran
22
Tabel 2.2
Subblok Kunci Enkripsi
23
Tabel 2.3
Subblok Kunci Dekripsi
23
Tabel 2.4
Subkunci-subkunci Enkripsi yang Berhasil Dibentuk
27
Tabel 2.5
Hasil
Perhitungan Setiap Subblok 16-bit dalam 9 Round
28
Tabel 2.6
Subkunci-subkunci Dekripsi yang Berhasil Dibentuk
29
Tabel 3.1
Spesifikasi Proses Diagram Konteks
33
Tabel 3.2
Spesifikasi Proses Diagram Level 1
35
Tabel 3.3
Spesifikasi Proses Diagram Level 2 Proses 1
36
Tabel 3.4
Spesifikasi Proses Diagram Level 3 untuk Proses 1.1
37
Tabel 3.5
Spesifikasi Proses Diagram Level 3 untuk Proses 1.2
38
Tabel 3.6
Spesifikasi Proses Diagram Level 2 untuk Proses 3
39
Tabel 3.7
Spesifikasi Proses Diagram Level 2 untuk Proses 4
41
Tabel 3.8
Kamus Data Proses Pembentukan Kunci Enkripsi dan Dekripsi
42
Tabel 3.9 Kamus Data Proses Enkripsi
43
DAFTAR GAMBAR
Halaman
Gambar 2.1
Proses Enkripsi–Dekripsi pada Enkripsi Konvensional
9
Gambar 2.2
Proses Enkripsi–Dekripsi pada Enkripsi Kunci Publik
9
Gambar 2.3
Interruption
10
Gambar 2.4
Interception
11
Gambar 2.5
Modification
11
Gambar 2.6
Fabrication
11
Gambar 2.7 Kotak MA (
Multiplication
-
Addition
)
18
Gambar 2.8 Algoritma kriptografi simetri IDEA
20
Gambar 3.1
Diagram Konteks
33
Gambar 3.2
DFD Level 1
34
Gambar 3.3
DFD Level 2 Proses 1
35
Gambar 3.4
DFD Level 3 Proses 1.1
36
Gambar 3.5
DFD Level 3 Proses 1.2
37
Gambar 3.6
DFD Level 2 Proses 3
39
Gambar 3.7
DFD Level 2 Proses 4
40
Gambar 4.1
Struktur Program
IDEACrypt
46
Gambar 4.2 Flowchart Proses Pembangkitan Subkunci Enkripsi dan Dekripsi 48
Gambar 4.3 Flowchart Proses Enkripsi 52
Gambar 4.4 Flowchart Proses Dekripsi 53
Gambar 4.9
Tampilan Menu Utama
54Gambar 4.10
Tampilan dengan Kunci yang Salah
55
Gambar 4.11
Tampilan Setelah Input Kunci
55
Gambar 4.12
Tampilan Kunci Enkripsi dan Dekripsi
56
Gambar 4.13
Tampilan Layar Enkripsi
57
Gambar 4.14
Tampilan Layar Enkripsi dengan Input yang Salah
58
Gambar 4.15
Tampilan Layar Dekripsi
59
ABSTRAK
Banyak algoritma kriptografi modern yang walaupun menyediakan keamanan tinggi, namun
sangat susah dimengerti dan dipelajari masyarakat awam. Tujuan dari penelitian ini adalah
untuk membangun suatu perangkat lunak yang tidak hanya bisa menjaga keamanan data
dengan kuat dan andal, tapi juga mudah dimengerti banyak orang. Untuk itulah algoritma
IDEA dipilih, karena algoritma ini termasuk algoritma yang memuaskan user selain dengan
kekuatan dan keandalannya dari berbagai serangan para kriptanalis, juga dengan
kemudahannya dipelajari semua orang. Sistem ini dikembangkan menggunakan bahasa
pemrograman C++. Analisis kebutuhan perangkat lunak algoritma IDEA dilakukan dengan
menentukan nama perangkat lunak yang akan dibangun, mengetahui siapa yang akan
menggunakan perangkat lunak tersebut, memahami konsep teknologi yang akan dipakai,
membuat tampilan antarmuka yang mendidik, menentukan teknik yang dipergunakan untuk
membentuknya, serta menguji hasil perangkat lunak tersebut. Objektif utama sistem ini
adalah untuk melihat dan mempelajari berbagai konsep dan prinsip untuk merancang dan
mengimplementasikan sistem keamanan data menggunakan algoritma IDEA.
DESIGN AND IMPLEMENTATION OF DATA SECURITY SYSTEM
USING THE SYMETRIC CRYPTOGRAPHY IDEA ALGORITHM
ABSTRACT
Bab 1
PENDAHULUAN
1.1.
Latar Belakang
Sistem keamanan pengiriman data (komunikasi data yang aman) dipasang untuk
mencegah pencurian, kerusakan, dan penyalahgunaan data yang terkirim melalui
jaringan komputer. Dalam praktek, pencurian data berwujud pembacaan oleh pihak
yang tidak berwenang biasanya dengan menyadap saluran publik. Teknologi jaringan
komputer telah dapat mengurangi bahkan membuang kemungkinan adanya kerusakan
data akibat buruknya konektivitas fisik, namun gangguan tetap bisa terjadi karena ada
unsur kesengajaan yang mengarah ke penyalahgunaan sistem dari pihak-pihak
tertentu.
IDEA (International Data Encryption Algorithm) merupakan sebuah algoritma
kriptografi simetri yang diciptakan pada awalnya sebagai pengganti
Data Encryption
Standard
(DES). IDEA adalah sebuah revisi kecil dari cipher yang lebih awal, yakni
PES (
Proposed Encryption Standard
). Pada awalnya, IDEA disebut IPES (
Improved
PES
). Algoritma IDEA terbilang sederhana karena hanya melibatkan 3 proses utama
dan 9 putaran.
Algoritma ini merupakan algoritma yang menyediakan keamanan cukup tinggi
yang tidak didasarkan atas kerahasiaan algoritmanya (algoritma
restricted
), akan
tetapi lebih ditekankan pada keamanan/kerahasian kunci yang digunakan (algoritma
kriptografi modern
). Algoritma
restricted
biasanya digunakan oleh sekelompok orang
untuk bertukar pesan satu sama lain, mereka membuat suatu algoritma enkripsi yang
hanya diketahui oleh anggota kelompok itu saja, sehingga setiap kali ada anggota
kelompok yang keluar, maka algoritma
restricted
tersebut harus diganti karena
Namun algoritma
kriptografi modern,
seperti algoritma IDEA ini, dapat
mengatasi masalah tersebut dengan menggunakan kunci, yang dalam hal ini
algoritmanya tidak lagi dirahasiakan, tetapi kunci harus dijaga kerahasiaannya.
Sehingga setiap kali ada anggota kelompok yang keluar, maka algoritma yang dipakai
tidak perlu diganti, namun cukup mengganti kuncinya saja.
Dengan perkataan lain, diperlukan algoritma
kriptografi modern
yang dapat
digunakan dan gampang dimengerti oleh semua orang, juga algoritma yang
menyediakan keamanan cukup tinggi yang tidak didasarkan atas kerahasiaan
algoritmanya. Untuk itulah penulis mengambil judul “Perancangan dan Implementasi
Sistem Keamanan Data Menggunakan Algoritma Kriptografi Simetri IDEA”.
1.2. Perumusan masalah
Bagaimana merancang suatu perangkat lunak pada sistem keamanan data
menggunakan algoritma kriptografi simetri IDEA.
1.3. Batasan Masalah
Agar penelitian yang dilakukan terfokus, maka penelitian dibatasi pada hal-hal
berikut:
1.Komputer yang digunakan hanya berupa komputer pribadi (
personal computer
)
dengan spesifikasi minimal.
2.Dilakukan secara sederhana hanya pada data yang disimpan di dalam
storage
(
encryption of data at-rest
), bukan pada data yang dikirim (ditransmisikan)
dalam suatu saluran komunikasi (
encryption of data in motion
). Contoh
encryption of data in motion
adalah pengiriman nomor PIN dari mesin ATM
ke komputer server di kantor bank pusat, sedangkan contoh
encryption of data
at-rest
adalah enkripsi/dekripsi yang dilakukan pada
file
basis data, yakni
proses tersebut hanya dilakukan terhadap
field-field
tertentu saja.
3.Interaksi antara program dan user hanya berupa proses pembangkitan kunci
dibentuk; serta proses enkripsi dan dekripsi dengan menampilkan seluruh hasil
setiap roundnya.
4.Plaintext hanya berupa file berupa teks yang dapat dipilih panjang karakternya:
8, 16, 24, atau 32 karakter.
5.Membahas dan menganalisis masalah XOR, penjumlahan modulo
dan
perkalian modulo (
+ 1) yang merupakan konsep dasar dari algoritma
IDEA.
6.Menggunakan bahasa pemrograman C++ dengan
command line
(tampilan yang
mengarahkan user menggunakan barisan perintah).
1.4.
Tujuan Penelitian
Penelitian ini bertujuan untuk memperoleh perangkat lunak dalam sistem keamanan
data yang kuat (handal) dari berbagai serangan dengan menggunakan algoritma
kriptografi simetri IDEA.
1.5. Manfaat Penelitian
Manfaat dilakukannya penelitian ini adalah sebagai berikut:
1.Menambah/memperkaya perangkat lunak dalam sistem keamanan data atau
bidang kriptografi bagian algoritma simetris.
2.Memudahkan
user
untuk melindungi data agar tidak dapat dibaca oleh
pihak-pihak yang tidak berhak, serta mencegah agar pihak-pihak-pihak-pihak yang tidak berhak
tersebut tidak dapat memanipulasi, menyisipkan, atau menghapus data.
1.6. Metodologi Penelitian
Penelitian dalam skripsi ini dilakukan dengan beberapa tahapan, yaitu:
1. Studi Literatur
Penulisan ini dimulai dengan studi kepustakaan yaitu mengumpulkan
bahan-bahan referensi baik dari buku, artikel, jurnal, makalah, maupun situs internet
mendasarinya, serta bahasa pemrograman untuk pambuatan aplikasinya, dan
beberapa referensi lainnya.
2. Analisis masalah
Pada tahap ini dilakukan analisis terhadap algoritma kriptografi simetri IDEA,
yakni meliputi XOR, penjumlahan modulo
dan inversnya, serta perkalian
modulo (
+1) dan inversnya dari aspek matematis dan proses penyandian
kemudian menerapkannya pada algoritma kriptografi simetri IDEA.
3. Perancangan Sistem
Pada tahap ini, sistem dirancang sehingga dapat menjamin keamanan data.
4. Pengkodean
Pada tahap ini, sistem yang telah dirancang kemudian diimplementasikan
menggunakan bahasa pemrograman C++.
5. Pengujian
Pada tahap ini, menguji program dan mencari kesalahan pada program hingga
program itu dapat berjalan sesuai dengan yang dirancang.
6. Penyusunan laporan dan kesimpulan akhir
Pada tahap ini, menyusun laporan hasil analisis dan perancangan kedalam
format penulisan skripsi dengan disertai kesimpulan akhir.
1.7. Sistematika Penulisan
BAB 1 : PENDAHULUAN
Bab ini menjelaskan mengenai latar belakang pemilihan judul, rumusan masalah,
batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan
BAB 2 :
LANDASAN TEORI
Pada bab ini dibahas mengenai teori-teori yang mendukung pembahasan bab
selanjutnya, implementasi enkripsi/dekripsi data sebagai hasil dari pengaplikasian
XOR, penjumlahan modulo
, dan perkalian modulo (
+1) pada algoritma
kriptografi simetri IDEA.
BAB 3 :
ANALISIS dan PEMODELAN PERANGKAT LUNAK
Bab ini berisikan analisis yang dilakukan terhadap perangkat lunak algoritma
kriptografi simetri IDEA, yaitu analisis kebutuhan perangkat lunak algoritma
kriptografi simetri IDEA dan analisis fungsi perangkat lunak algoritma kriptografi
simetri IDEA, serta pemodelan sistemnya.
BAB 4
: PERANCANGAN dan IMPLEMENTASI
Bab ini berisikan gambaran rancangan struktur program dan desain, serta memberikan
gambaran dari rancang bangun yang lengkap kepada user dan pemakai komputer yang
lain serta implementasinya yaitu menguji untuk menemukan kesalahan.
BAB 5
: PENUTUP
Bab terakhir akan memuat kesimpulan isi dari keseluruhan uraian bab-bab
Bab 2
LANDASAN TEORI
2.1.
Kriptografi
Kriptografi berasal dari dua suku kata yaitu
kripto
dan
grafi
. Kripto artinya
menyembunyikan, sedangkan grafi artinya ilmu. Kriptografi (
Cryptography
) adalah
suatu ilmu yang mempelajari sistem sandi untuk menjamin kerahasiaan dan keamanan
data, yang kegiatannya dilakukan oleh seorang
kriptographer
.
Kriptografi secara umum merupakan ilmu dan seni untuk menjaga kerahasian
berita (Scheiner. B., 1996). Kriptografi juga dapat diartikan sebagai ilmu yang
mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan
informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi
data (Menezes. et al,1996).
Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek
keamanan informasi (Menezes. et al,1996) (Scheiner. B., 1996), yaitu:
1.Kerahasiaan (
Confidentiality
), adalah layanan yang digunakan untuk menjaga isi
informasi dari siapapun, kecuali yang memiliki kunci rahasia atau otoritas untuk
membuka informasi yang telah disandikan.
2.Integritas Data (
Message Integrity
), berhubungan dengan penjagaan (perlindungan
data) dari upaya-upaya pengubahan data secara tidak sah. Untuk dapat menjaga
integritas data, suatu sistem harus memiliki kemampuan untuk mendeteksi
pemanipulasian data yang dilakukan oleh pihak-pihak yang tidak berhak, antara lain
penyisipan, penghapusan, dan pendistribusian data lain ke dalam data yang asli.
3.Autentifikasi (
Authentication
), berhubungan dengan identifikasi, baik secara
harus saling memperkenalkan diri. Informasi yang dikirimkan harus diautentikasi
keasliannya, isi datanya, waktu pengirimannya dan lain sebagainya.
4.Nirpenyangkalan (
Non-repudiation
), merupakan usaha untuk mencegah terjadinya
penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang
mengirimkan/membuat, juga sebaliknya.
2.1.1. Sejarah Kriptografi
Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan rahasia ini
dapat dilacak kembali ke 3000 tahun SM saat digunakan oleh bangsa Mesir. Mereka
menggunakan
hieroglyphcs
untuk menyembunyikan tulisan dari pihak yang tidak
diharapkan. Hieroglyphcs diturunkan dari bahasa Yunani
hieroglyphica
yang berarti
“ukiran rahasia”. Hieroglyphs berevolusi menjadi
hieratic
, yaitu
stylized
script
yang
lebih mudah untuk digunakan (Rahayu. F.S., 2005).
Sekitar 400 SM, kriptografi militer digunakan oleh bangsa Spartan dalam
bentuk sepotong papyrus atau perkamen dibungkus dengan batang kayu. Sistem ini
disebut
Scytale
. Sekitar 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher
substitusi untuk mengirim pesan ke Marcus Tullius Cicero. Pada cipher ini,
huruf-huruf alfabet disubstitusi dengan huruf-huruf-huruf-huruf yang lain pada alfabet yang sama.
Pada tahun 20-an, Herbert O. Yardley bertugas pada organisasi rahasia US
MI-8 yang dikenal sebagai “Black Chamber”. MI-MI-8 menjebol kode-kode sejumlah negara.
Selama konferensi Angkatan Laut Washington tahun 1921-1922, US membatasi
negosiasi dengan Jepang karena MI-8 telah memberikan rencana negosiasi Jepang
yang telah disadap oleh sekretaris negara US. Departemen negara menutup MI-8 pada
tahun 1929 sehingga Yardley merasa kecewa. Sebagai wujud kekecewaanya, Yardley
menerbitkan buku
The American Black Chamber
, yang menggambarkan kepada dunia
rahasia dari MI-8. Sebagai konsekuensinya, pihak Jepang menginstal kode-kode baru.
Karena kepeloporannya dalam bidang ini, Yardley dikenal sebagai “Bapak Kriptografi
2.1.2. Enkripsi dan Dekripsi
Enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi
tersebut tidak dapat dibaca tanpa bantuan pengetahuan dan atau alat khusus.
Sedangkan dekripsi merupakan algoritma atau cara yang dapat digunakan untuk
membaca informasi yang telah dienkripsi untuk dapat dibaca kembali (Kurniawan. Y.,
2004).
Cara yang digunakan untuk melakukan enkripsi ialah dengan cara melakukan
perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak
bisa dimengerti (tidak terbaca). Enkripsi dapat diartikan sebagai sebuah kode atau
cipher. Sebuah
cipher
menggunakan suatu algoritma yang dapat mengkodekan semua
aliran data (stream) bit dari sebuah pesan menjadi
cryptogram
yang tidak dapat
dimengerti (Aryus. D., 2005).
Dengan demikian keamanan suatu pesan tergantung pada kunci-kunci yang
digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga
algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan dianalisis. (Kristanto. A.,
2003).
Terdapat tiga kategori enkripsi, yaitu:
1.Kunci enkripsi rahasia.
Dalam hal ini, terdapat sebuah kunci yang digunakan untuk mengenkripsi dan
juga sekaligus mendekripsikan informasi.
2.Kunci enkripsi publik.
Dalam hal ini, terdapat dua kunci yang digunakan, satu kunci untuk proses
enkripsi dan kunci yang lain untuk proses dekripsi.
3.Fungsi
one-way
(fungsi satu-arah)
Suatu fungsi dimana informasi dienkripsi untuk menciptakan
signature
dari
Terdapat dua macam teknik enkripsi yang biasa digunakan dalam sistem
keamanan pada sistem komputer dan jaringan, yaitu teknik enkripsi konvensional dan
teknik enkripsi publik.
2.1.2.1. Enkripsi Konvensional (Kunci Simetri)
Pada enkripsi konvensional, kunci yang digunakan untuk mendekripsikan cipherteks
ialah kunci yang sama dengan kunci yang digunakan saat mengenkripsi plainteks.
Plainteks
Kunci/Key User B
User A
Plainteks Algoritma
Dekripsi Cipherteks
Algoritma Enkripsi
Gambar 2.1
Proses Enkripsi – Dekripsi pada Enkripsi Konvensional
Keamanan pada enkripsi konvensional terdiri dari beberapa faktor. Pertama,
algoritma enkripsi harus cukup kuat sehingga menjadikan kriptanalis sangat kesulitan
dalam mendekripsikan cipherteks. Kedua, bergantung pada kerahasiaan kuncinya,
yaitu tidak perlu merahasiakan algoritma, tetapi cukup merahasiakan kuncinya.
2.1.2.2. Enkripsi Kunci Publik
Kelemahan yang terdapat pada enkripsi konvensional yaitu perlunya mendistribusikan
kunci yang digunakan dalam keadaan aman. Ada cara agar tidak perlu lagi
mendistribusikan kunci, cara tersebut dikenal dengan nama enkripsi kunci publik.
Plainteks
Private Key B
User B User A
Plainteks Algoritma
Dekripsi Cipherteks
Algoritma Enkripsi
Public Key B
Teknik yang dilakukan pada enkripsi ini yaitu:
a)Masing-masing sistem dalam jaringan akan menciptakan sepasang kunci yang
digunakan untuk enkripsi dan dekripsi dari informasi yang diterima.
b)Masing-masing sistem akan menerbitkan kunci enkripsinya yaitu kunci publik
(public key) dengan memasang dalam register umum atau file, sedang
pasangannya tetap dijaga sebagai kunci pribadi (private key).
c)Jika A ingin mengirim pesan kepada B, maka A akan mengenkripsi pesannya
dengan kunci publik B.
d)Ketika B menerima pesan dari A, maka B akan menggunakan kunci privatnya
untuk mendekripsi pesan dari A.
Enkripsi cara ini memang akan memecahkan masalah distribusi kunci, namun
memiliki kelemahan dibandingkan enkripsi konvensional, yaitu algoritma enkripsi ini
mempunyai algoritma yang lebih kompleks sehingga akan menghasilkan kinerja yang
lebih rendah.
2.1.3. Pola-pola Penyerangan Data
Proteksi data dan informasi dalam komunikasi komputer menjadi penting karena nilai
informasi itu sendiri dan meningkatnya penggunaan komputer di berbagai sektor.
Melihat kenyataan semakin banyak data yang diproses dengan komputer dan dikirim
melalui perangkat komunikasi elektronik maka ancaman terhadap pengamanan data
akan semakin meningkat (Sobari. R., 2005).
Beberapa pola ancaman terhadap komunikasi data dalam komputer dapat
diterangkan sebagai berikut:
1. Interruption
Interruption terjadi bila data yang dikirimkan dari A tidak sampai pada orang yang
berhak (B).
Interruption
merupakan pola penyerangan terhadap sifat
availability
(ketersediaan data).
2. Interception
Serangan ini terjadi bila pihak ketiga C berhasil membaca data yang dikirimkan.
Interception
merupakan pola penyerangan terhadap sifat
confidentiality
(kerahasiaan
data).
Gambar 2.4
Interception
3. Modification
Pada serangan ini pihak ketiga C berhasil merubah pesan yang dikirimkan dari A
sebelum sampai ke B.
Modification
merupakan pola penyerangan terhadap sifat
integrity
(keaslian data).
Gambar 2.5
Modification
4. Fabrication
Pada serangan ini, penyerang berhasil mengirimkan data ke tujuan dengan
memanfaatkan identitas orang lain.
Fabrication
merupakan pola penyerangan
terhadap sifat
authenticity
.
Gambar 2.6
Fabrication
Untuk mengantisipasi ancaman-ancaman tersebut perlu dilakukan usaha untuk
melindungi data yang dikirim melalui saluran komunikasi, salah satunya adalah
dengan teknik enkripsi. Dan untuk masalah kekuatan pengamanannya tergantung pada
algoritma metode enkripsi tersebut dan juga kunci yang digunakan di dalamnya
2.1.4. Serangan terhadap Kriptografi
Pada dasarnya serangan terhadap primitif dan protokol kriptografi dapat dibedakan
menjadi dua jenis yaitu:
1)Serangan pasif adalah serangan dimana penyerang hanya memonitor saluran
komunikasi. Penyerang pasif hanya mengancam kerahasiaan data.
2)Serangan aktif adalah serangan dimana penyerang mencoba untuk menghapus,
menambahkan, atau dengan cara yang lain mengubah transmisi pada saluran.
Penyerang aktif mengancam integritas, otentikasi, dan kerahasiaan data.
2.1.5. 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 plainteks/cipherteks 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 plainteks/cipherteks 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
2.2. Rekayasa Perangkat Lunak
Rekayasa perangkat lunak adalah disiplin ilmu yang membahas semua aspek produksi
perangkat lunak, mulai dari tahap awal spesifikasi sistem sampai pemeliharaan sistem
setelah digunakan (Sommerville. I., 2001).
2.2.1. Proses Rekayasa Perangkat Lunak
Ada empat kegiatan proses dasar yang umum bagi seluruh kegiatan proses perangkat
lunak, yaitu:
1.
Spesifikasi perangkat lunak
. Fungsionalitas perangkat lunak dan batasan
kemampuan operasinya harus didefenisikan.
2.
Pengembangan perangkat lunak
. Perangkat lunak yang memenuhi spesifikasi
tersebut harus diproduksi.
3.
Validasi
perangkat lunak.
Perangkat lunak harus divalidasi untuk menjamin
bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan.
4.
Evolusi
perangkat lunak.
Perangkat lunak harus berkembang untuk memenuhi
kebutuhan pelanggan yang berubah-ubah.
2.3. Matematika Kriptografi
Untuk memahami algoritma IDEA, terlebih dahulu perlu dipahami beberapa notasi
matematika dasar, teori dan formula. Hal tersebut dibutuhkan untuk mendukung
semua kalkulasi yang dilakukan dalam algoritma IDEA.
2.3.1. Teorema Euclidean
Jika
0 r < n ; n > 0 ; m > n, maka:
……(1)
m = nq + r
…….(2)
Dimana: r = sisa (remainder)
q = hasil bagi (quotient)
Contoh:
= 7 sisa 1 , jadi 22 = 3(7) + 1
→ memenuhi teorema
.
2.3.2. PBB (Pembagi Bersama terBesar)
Jika a, b, dan d adalah bilangan bulat bukan 0, serta d|a (dibaca: d habis membagi a
atau a mod d = 0) dan demikian juga dengan d|b, maka:
PBB(a,b) = d
……(3)
Contoh:
PBB (45,36) = 9
Karena memenuhi:
9|45 atau = 5 sisa 0 dan juga 9|36 atau = 4 sisa 0
2.3.3. Algoritma Euclidean
Jika m dan n positif, serta m
≥ n, maka:
1)Jika n = 0
→ PBB (m,n) = m → stop
jika
≠ 0 → maju ke langkah 2).
2) = q sisa r
3)
← n (ganti m dengan nilai n)
n
← r (ganti n dengan nilai r)
kembali ke langkah 1.
Contoh: m = 80 ; n = 12 ; m
≥ n
Solusi: m = qn + r
80 = 6.12 +
8
12 = 1.8 +
4
8 = 2.4 +
0
2.3.4. Relatif prima
Jika PBB (a,b) = 1 serta a dan b merupakan bilangan bulat, maka: a dan b dikatakan
relatif prima, sehingga dapat dibentuk suatu persamaan:
pa + qb = 1
……(4)
dimana p dan q adalah bilangan bulat.
Contoh:
20 dan 3 relatif prima, sebab PBB (20,3) = 1, sehingga dapat dinyatakan:
2.20 + (-13).3 = 1
Dengan p = 2 dan q = -13
2.3.5. Aritmatika Modulo
Jika a dan b adalah bilangan bulat, serta m > 0 dan 0
≤ r < m , maka:
a mod m = r
……(5)
atau:
a = mq + r
……(6)
dengan m = modulo/modulus.
Contoh:
23 mod 5 = 3 ; atau 23 = 5.4 + 3
2.3.6. Kekongruenan
Jika a dan b adalah bilangan bulat, dan m > 0, serta (a-b) mod m = 0 atau m|(a-b),
maka:
a
≡ b (mod m)
……(7)
dibaca: a kongruen dengan b dalam modulus m
lawannya:
a
≡/ b (mod m)
……(8)
dibaca: a tidak kongruen dengan b dalam modulus m
Contoh:
38 mod 5 = 3 38
≡
13 (mod 5) , atau
Jadi 38 kongruen dengan 13 dalam modulus 5.
Catatan:
a
≡ b (mod m)
dapat juga ditulis:
a mod m = b
,dan
a = b + km
Dengan b = sisa, k = hasil bagi.
2.3.7. Inversi Modulo
Jika a dan b adalah relatif prima atau PBB (a,b) = 1; serta b > 1, maka
invers perkalian dari a mod b =
dan dapat ditulis:
a.
= 1 mod b
……(9)
dari defenisi relatif prima diketahui bahwa PBB (a,b) = 1 dan menurut persamaan (4)
terdapat bilangan bulat p dan q sedemikian hingga:
pa + qb = 1
yang mengimplikasikan bahwa:
pa + qb = 1 (mod b)
dan karena
qb
≡ 0 (mod b)
maka
pa
≡ 1 (mod b)
kekongruenan yang terakhir ini berarti bahwa p adalah invers perkalian dari a (mod b)
Contoh:
Invers dari 17 mod 7 adalah = …?
Solusi:
PBB (17,7) = 1, maka 17 dan 7 adalah relative prima, sehingga pasti memiliki invers.
17 = 7.2 + 3
→ 3 = 17
– 7.2
7 = 3.2 + 1
→ 1 = 7
- 3.2
3 = 1.3 + 0
1 = 7 – 3.2
= 7 – (17 – 7.2).2
= 7 – 2.17 + 14.7
1 = 15.7 – 2.17
atau
Sudah memenuhi bentuk: p.a + q.b = 1, dengan p = invers perkalian, jadi kita telah
memperoleh invers perkalian dari 17 mod 7 yaitu: p = -2.
2.4. Algoritma IDEA
Kriptografi IDEA (International Data Encryption Algorithm) diperkenalkan pertama
kali tahun 1991 oleh Xuejia Lai dan James L Massey. Algoritma ini dimaksudkan
sebagai pengganti DES (Data Encryption Standard). IDEA adalah revisi minor cipher
yang lebih awal, yakni PES, dan pada awalnya disebut IPES (Improved PES). IDEA
didesain di bawah kontrak Hasler Foundation (Al Bahr, Brian. 2007).
Algoritma utama dari sistem kriptografi IDEA adalah sebagai berikut :
1. Proses enkripsi : e
k
2. Proses dekripsi : d
(M) = C
k
(C) = M
Dimana :
e = adalah fungsi enkripsi
d = adalah fungsi dekripsi
M = adalah pesan terbuka (plainteks)
C = adalah pesan rahasia (cipherteks)
K = adalah kunci enkripsi atau dekripsi
Dalam melakukan enkripsi, algoritma IDEA memakai delapan putaran. Setiap
putarannya digunakan enam kunci. Pesan dekripsi menggunakan blok penyandi yang
sama dengan blok proses enkripsi dimana kunci dekripsinya diturunkan dari kunci
enkripsi. Algoritma ini menggunakan operasi campuran dari tiga operasi aljabar yang
berbeda, yaitu XOR, operasi penjumlahan modulo 2
16dan operasi perkalian modulo
(2
16+ 1 ) . Semua operasi ini digunakan dalam pengoperasian sub-blok 16-bit. Prinsip
perancangan dari algoritma kriptografi IDEA adalah :
1)Diffusion
(Konfusi)
Konsep ini dilakukan dengan mengusahakan setiap bit plainteks
dan setiap bit kunci
(
Multiplication - Addition
), blok dasar ini hanya menggunakan dua kunci untuk setiap
putarannya, dan masukannya adalah F1, F2 sama seperti keluarannya G1, G2 yang
[image:31.595.165.495.170.434.2]dihubungkan oleh penjumlahan mod 2
16dan perkalian mod 2
16+1, serta XOR.
Gambar 2.7
Kotak MA (
Multiplication
-
Addition
)
2)Confusion
(Difusi)
Konsep ini dilakukan dengan menggabung tiga prinsip operasi grup aljabar yang
berbeda-beda :
1. XOR (penambahan modulo 2).
2. Penambahan modulo 2
3. Perkalian dengan modulo 2
16
16
+ 1
Algoritma ini melakukan iterasi yang terdiri dari 8 putaran dan 1 transformasi
keluaran pada putaran ke-9, dimana gambaran komputasi dan transformasi keluaran
2.4.1. Proses Enkripsi IDEA
Pada proses enkripsi algoritma kriptografi simetri IDEA yang ditunjukkan oleh
gambar 2.7, terdapat tiga operasi yang berbeda untuk pasangan subblok 16-bit yang
digunakan, yakni:
1)XOR dari 2 subblok 16-bit; bit per bit.
2)Penjumlahan modulo
2 subblok 16-bit, dimana kedua subblok itu dianggap
sebagai representasi biner dari integer biasa,
3)Perkalian modulo (
+1) 2 subblok 16-bit, dimana kedua subblok 16-bit itu
dianggap sebagai representasi biner dari integer biasa kecuali subblok nol
dianggap mewakili integer 2
16.
Simbol dari ketiga operasi tersebut yaitu:
1.
= penjumlahan (mod
)
2.
⊗
= perkalian (mod
+1)
3.
= XOR
Algoritma sistem kriptografi simetri IDEA yakni:
a)Blok masukan pesan 64-bit mula-mula dibagi menjadi 4 subsub blok 16-bit,
yakni: X1, X2, X3, X4.
b)Keempat subblok 16-bit tadi kemudian ditransformasikan menjadi subblok
16-bit, Y1, Y2, Y3, Y4. Semua proses ini berada di bawah kendali 52
subblok kunci 16-bit yang dibentuk dari blok kunci 128-bit.
c)Keempat subblok 16-bit: X1, X2, X3, X4, digunakan sebagai masukan
putaran pertama dari algoritma IDEA. Dapat dilihat dari gambar bahwa
dalam setiap putaran dilakukan operasi XOR, penjumlahan modulo dan
perkalian modulo.
d)Dari gambar juga terlihat bahwa keluaran dari putaran sebelumnya
merupakan masukan dari putaran berikutnya. Hal ini terus berlangsung
sampai 8 putaran. Pada putaran terakhir (putaran 9) dilakukan
transformasi keluaran yang dikendalikan oleh 4 subblok kunci 16-bit. Sub
Gambar 2.8
Algoritma kriptografi simetri IDEA
e)Operasi yang dilakukan pada setiap putaran dapat dirangkum sebagai
berikut:
1) Perkalian
dengan
(Z ke-1 round ke-1)
2) Penjumlahan
dengan
(Z ke-2 round ke-1)
3) Pejumlahan
dengan
(Z ke-3 round ke-1)
4) Perkalian
dengan
(Z ke-4 round ke-1)
5) Operasi XOR hasil langkah (1) dan (3)
6) Operasi XOR hasil langkah (2) dan (4)
7) Perkalian hasil langkah (5) dengan
(Z ke-5 round ke-1)
8) Penjumlahan hasil langkah (6) dengan langkah (7)
9) Perkalian hasil langkah (8) dengan
(Z ke-6 round ke-1)
11) Operasi XOR hasil langkah (1) dan (9)
12) Operasi XOR hasil langkah (3) dan (9)
13) Operasi XOR hasil langkah (2) dan (10)
14) Operasi XOR hasil langkah (4) dan (10)
f)Keluaran dari setiap putaran ((11), (12), (13), (14)) menjadi masukan bagi
operasi selanjutnya. Pada putaran ke-9 dilakukan transformasi keluaran :
1) Perkalian
dengan
(Z ke-1 round ke-9)
2) Penjumlahan
dengan
(Z ke-3 round ke-9)
3) Penjumlahan
dengan
(Z ke-2 round ke-9)
4) Perkalian
dengan
(Z ke-4 round ke-9)
g)Setelah semua selesai, keempat subblok 16-bit yang merupakan keluaran
dari 9 putaran operasi tadi digabung kembali menjadi blok pesan rahasia
64-bit.
2.4.2. Pembentukan Subkunci Enkripsi
Sebanyak 52 subkunci yang masing-masing panjangnya 16-bit untuk proses enkripsi
dibangkitkan dari kunci utama yang panjangnya 128-bit. Kunci utama dimasukkan
oleh pengguna. Pada tiap putaran, digunakan enam buah subkunci sehingga dalam
delapan putaran digunakan 48 buah subkunci. Empat buah subkunci sisanya
digunakan untuk trasformasi akhir. Proses pembangkitan kuncinya (
key-schedule
)
adalah sebagai berikut.
Kunci utama yang panjangnya 128-bit dipartisi tiap 16-bit sehingga dihasilkan
delapan bagian dengan panjang masing-masing bagian 16-bit. Delapan bagian ini
menjadi delapan kunci pertama proses enkripsi. Kemudian blok kunci yang
panjangnya 128-bit dirotasi dari kiri sepanjang 25-bit untuk dipartisi lagi menjadi 8
subblok kunci 16-bit berikutnya. Proses partisi dan rotasi diulangi terus sampai
diperoleh 52 buah subkunci , yang panjang tiap subkuncinya 16-bit. Pada tabel berikut
Tabel 2.1
Penggunaan Kunci di Tiap Putaran
Round
i = 1
0 – 15
16 – 31
32 – 47
48 – 63
64 – 79
80 – 95
i = 2
96 – 111 112 – 127 25 – 40
41 – 56
57 – 72
73 – 88
i = 3
89 – 104 105 – 120
121 – 8
9 – 24
50 – 65
66 – 81
i = 4
82 – 97
98 – 113
114 – 1
2 – 17
18 – 33
34 – 49
i = 5
75 – 90
91 – 106 107 – 122 123 – 10
11 – 26
27 – 42
i = 6
43 – 58
59 – 74
100 – 115
116 – 3
4 – 19
20 – 35
i = 7
36 – 51
52 – 67
68 – 83
84 – 99
125 – 12
13 – 28
i = 8
29 – 44
45 – 60
61 – 76
77 – 92
93 – 108 109 – 124
i = 9
22 – 37
38 – 53
54 – 69
70 – 85
Pada setiap operasi pada kunci 128-bit, 8 kunci dengan panjang 16-bit diperoleh.
Namun hanya enam kunci yang digunakan pada tiap putaran. Kunci yang tersisa
disimpan untuk putaran berikutnya.
2.4.3. Proses Dekripsi IDEA
Proses dekripsi menggunakan algoritma yang sama dengan proses enkripsi tetapi 52
buah subblok kunci yang digunakan masing-masing merupakan hasil turunan 52 buah
subblok kunci enkripsi. Pada kasus ini akan diambil invers dari operasi XOR,
penambahan oleh mod
dan perkalian mod
+1, tergantung pada operasi yang
dibuat pada fase enkripsi. Setiap subkunci dekripsi adalah salah satu dari invers
penambahan atau perkalian yang berkorespondensi dengan subkunci enkripsi. Tabel
subblok kunci enkripsi yang digunakan pada proses enkripsi dapat dilihat pada tabel
2.2. Tabel subblok kunci dekripsi yang diturunkan dari subblok kunci enkripsi dapat
dilihat pada tabel 2.3.
Keterangan tabel:
• Z
-1merupakan invers perkalian modulo (2
16+1) dari Z, dimana Z Z
-1• -Z merupakan invers penjumlahan modulo 2
= 1
16
Tabel 2.2
Subblok Kunci Enkripsi
Putaran ke-1
Putaran ke-2
Putaran ke-3
Putaran ke-4
Putaran ke-5
Putaran ke-6
Putaran ke-7
Putaran ke-8
Transformasi
Output
Tabel 2.3
Subblok Kunci Dekripsi
Putaran ke-1
Putaran ke-2
Putaran ke-3
Putaran ke-4
Putaran ke-5
Putaran ke-6
Putaran ke-7
Putaran ke-8
Transformasi
Output
2.4.3.1. Invers Penjumlahan Modulo 2
16
atau Modulo 65536
A adalah invers penjumlahan dari B iff (A + B) mod 65536 = 0
[image:36.595.120.514.390.635.2](A+B)
≡ 0 mod 2
16kongruen dengan
(A+B) mod 2
16= 0
Dengan A adalah invers penjumlahan B, sehingga:
A = 2
16– (B mod 2
16Contoh:
)
Invers penjumlahan 189
Solusi:
A = 2
16– (B mod 2
16= 2
)
16
– (189 mod 2
16= 2
)
16
= 65537 – 189
– 189
= 65347
Jadi, invers penambahan dari 189 adalah
65347
atau (189+65347) mod 2
16=
0
2.4.3.2. Invers Perkalian
Modulo (2
16+ 1) = Modulo 65537
1)A adalah invers perkalian dari B iff (A × B) mod 65537 = 1
2)Gunakan algoritma
Extended Euclidean
untuk mencari invers perkalian.
2.4.3.3. Algoritma
Extended Euclidean
Karena (2
16+ 1) adalah bilangan prima, maka B dan (2
16+ 1) adalah saling prima
relatif, untuk B
≠ (2
16+ 1). Sehingga invers perkalian B mod (2
16AB
≡
1 mod (2
+ 1) adalah bilangan
bulat A sedemikian hingga:
16
kongruen dengan
+ 1)
Karena (2
16+ 1) dan B relatif prima, maka PBB (B, 2
16+ 1) =1, dan menggunakan
algoritma
Extended Euclidean
terdapat:
p.B + q.(2
16+ 1) = 1
dengan p adalah invers dari B mod (2
16A.B + q.(2
+ 1) atau p = A, sehingga dapat juga ditulis:
16
Langkah-langkah:
+ 1) = 1
1)Dengan algoritma
Extended Euclidean
diperoleh rangkaian pembagian
2)Ekspresikan 1 sama dengan kombinasi linier dari B dan (2
16+ 1), sehingga
diperoleh : AB + q.(2
163)Maka A adalah invers dari B mod (2
+ 1) = 1
16
Contoh:
+ 1)
Tentukan invers perkalian dari 125 mod (2
16Solusi:
+ 1) !
1)Dengan algoritma
Extended Euclidean
diperoleh:
65537 = (524)(125) + 37
→ 37 = 65537
– (524)(125)
125 = (3)(37) + 14
→ 14 = 125
– (3)(37)
37 = (2)(14) + 9
→ 9 = 37
– (2)(14)
14 = (1)(9) + 5
→ 5 = 14
– (1)(9)
9 = (1)(5) + 4
→ 4 = 9
– (1)(5)
5 = (1)(4) + 1
→ 1= 5
– (1)(4)
4 =(4)(1) + 0
Semua kombinasi di atas digunakan untuk membentuk:
AB + q.(2
16Sehingga benar bahwa PBB(125, 2
+ 1) = 1
16
+ 1) = 1
2)1 = 5 – 1.4
= 5 – 1(9 – 1.5)
= 2.5 – 1.9
= 2 (14 – 1.9) – 1.9
= 2.14 – 2.9 – 1.9
= 2.14 – 3.9
= 2.14 – 3(37 – 2.14)
= 2.14 – 3.37 + 6.14
= 8.14 – 3.37
= 8(125 – 3.37) – 3.37
= 8.125 – 24.37 – 3.37
= 8.125 – 27.37
= 8.125 – 27(65537-524.125)
= 8.125 – 27((2
16= 8.125 – 27(2
+ 1) – 524.125)
16
= 14156.125 – 27(2
+ 1) + 14148.125
16
Sudah diperoleh bentuk: 1 = AB + q.(2
+ 1)
16
Sehingga diperoleh
14156
adalah invers perkalian dari 125 mod (2
+ 1)
16
Dan (14156)(125)
≡ 1 mod (2
+ 1)
16
+ 1)
2.4.4. Contoh Komputasi Penggunaan Algoritma IDEA
2.4.4.1. Proses enkripsi
Asumsi diberikan 64-bit plainteks X:
X = (X1 ,X2, X3, X4) = (7fa9 1c37 ffb3 df05)
→ dalam hexadesimal
Untuk lebih jelas, lihat tabel 2.1 pada pembahasan pembentukan subkunci enkripsi.
Subkunci-subkunci enkripsi yang berhasil dibentuk dapat dilihat pada tabel 2.4.
Panjang plainteks 64-bit yang dipartisi menjadi empat subblok plainteks
dengan panjang 16-bit per blok dan kunci enkripsi 52 subkunci yang juga terdiri dari
16-bit per blok, dilakukan pada blok satu dengan blok lainnya: operasi XOR,
terakhir (transformasi) sehingga menghasilkan cipherteks Y 64-bit, yang juga
[image:40.595.105.532.185.597.2]merupakan gabungan dari empat subblok cipherteks 16-bit: Y1, Y2, Y3, Y4.
Tabel 2.4
Subkunci-subkunci Enkripsi yang Berhasil Dibentuk
Putaran ke-1
5a14
fb3e
021c
79e0
6081
46a0
Putaran ke-2
117b
ff03
7c04
38f3
c0c1
028d
Putaran ke-3
4022
f7fe
06b4
29f6
e781
8205
Putaran ke-4
1a80
45ef
fc0d
6853
ecf8
0871
Putaran ke-5
0a35
008b
dff8
1ad0
a7d9
f010
Putaran ke-6
e3cf
0304
17bf
f035
a14f
b3e0
Putaran ke-7
21c7
9e06
0814
6a01
6b42
9f67
Putaran ke-8
c043
8f3c
0c10
28d
022f
7fe0
Transformasi
Output
cf80
871e
7818
2051
Cipherteks Y merupakan hasil dari output round terakhir (transformasi), yaitu:
Y = (Y1, Y2, Y3, Y4) = (106b dbfd f323 0867).
Dekrispi dilakukan dengan cara yang sama dengan proses enkripsi, kecuali
pembentukan subkunci-subkuncinya. Input merupakan blok cipherteks 64-bit dan
outputnya merupakan plainteks. Untuk melakukan dekripsi, coba perhatikan kembali
tabel 2.3.
Pada dasarnya, ada empat kunci pertama untuk dekripsi, yaitu:
Z1 =
Z2 =
Z3 =
[image:41.595.173.459.344.625.2]Z4 =
Tabel 2.5
Hasil
Perhitungan Setiap Subblok 16-bit dalam 9 Round
Subkunci untuk melakukan dekripsi dapat dilihat pada tebel 2.6.
Round
Round output
X1
X2
X3
X4
7fa9
1c37
ffb3
df05
1
c579
f2ff
0fbd
0ffc
2
d7a2
80cb
9a61
27c5
3
ab6c
e2f9
f3be
36bd
4
ef5b
9cd2
6808
3019
5
7e09
2445
d223
d639
6
4a6e
d7ac
ac8c
8b09
7
244d
6f5c
4459
3a9c
8
0f86
7b0b
54df
75f9
9
106b
dbfd
f323
0867
Tabel 2.6
Subkunci-subkunci Dekripsi yang Berhasil Dibentuk
Putaran
ke-1
=
=
=
=
=
=
9194
78e2
87e8
712a
022f
7fe0
Putaran
ke-2
=
=
=
=
=
=
a24c
f3f0
70c4
3305
6b42
9f67
Putaran
ke-3
=
=
=
=
=
=
c579
f7ec
61fa
bf28
a14f
b3e0
Putaran
ke-4
=
=
=
=
=
=
c53c
e841
fcfc
3703
a7d9
f010
Putaran
ke-5
=
=
=
=
=
=
cc14
2008
ff75
24f6
ecf8
0871
Putaran
ke-6
=
=
=
=
=
=
4396
03f3
ba11
dfa7
e781
8205
Putaran
ke-7
=
=
=
=
=
=
18a7
f94c
0802
9a13
c0c1
028d
ke-8
55ed
83fc
00fd
2cd9
6081
46a0
Transformasi
Output
=
=
=
=
Bab 3
ANALISIS DAN PEMODELAN PERANGKAT LUNAK
3.1.Analisis Permasalahan Algoritma IDEA
Tahapan analisis terhadap suatu sistem dilakukan sebelum tahapan perancangan
dilakukan. Tujuan diterapkannya analisis terhadap suatu sistem adalah untuk
mengetahui alasan mengapa sistem tersebut diperlukan, merumuskan
kebutuhan-kebutuhan dari sistem tersebut untuk mereduksi sumber daya yang berlebih serta
membantu merencanakan penjadwalan pembentukan sistem, meminimalisir
penyimpangan yang mungkin terdapat di dalam sistem tersebut sehingga fungsi yang
dalam sistem tersebut bekerja secara optimal.
Salah satu unsur pokok yang harus dipertimbangkan dalam tahapan analisis
sistem ini yaitu masalah perangkat lunak, karena perangkat lunak yang digunakan
haruslah sesuai dengan masalah yang akan diselesaikan. Untuk itu, analisis yang
dilakukan terhadap perangkat lunak algoritma IDEA terbagi ke dalam dua aspek,
yaitu analisis kebutuhan perangkat lunak algoritma IDEA dan analisis fungsi
perangkat lunak algoritma IDEA.
3.2.Analisis Kebutuhan Algoritma IDEA
Faktor yang mendasari dibentuknya perangkat lunak dengan algoritma kriptografi
IDEA adalah keamanan data. Keamanan telah menjadi aspek yang sangat penting dari
suatu sistem informasi. Sebuah informasi umumnya hanya ditujukan bagi segolongan
tertentu. Oleh karena itu sangat penting untuk mencegahnya jatuh kepada pihak-pihak
lain yang tidak berkepentingan. Untuk keperluan tersebut, maka diperlukan teknik
kriptografi dengan metode enkripsi dan dekripsi. Salah satu metode enkripsi dan
Setiap sistem yang akan dibangun selalu memiliki kebutuhan. Analisis yang
dilakukan terhadap kebutuhan suatu sistem dapat berfungsi untuk mereduksi sumber
daya yang berlebih dari sistem tersebut serta membantu pembentukan penjadwalan
pembentukan sistem (Pressman. R.S., 2002). Analisis yang dilakukan untuk mencari
kebutuhan dari perangkat lunak algoritma IDEA dapat dilakukan dengan cara
menentukan nama dari perangkat lunak yang akan dibangun, mengetahui siapa yang
akan menggunakan perangkat lunak tersebut, memahami konsep teknologi yang akan
dipakai, tampilan antar muka yang akan dipergunakan, teknik apa yang dipergunakan
untuk membentuknya, serta apa yang akan dihasilkan oleh perangkat lunak tersebut.
Berdasarkan analisis yang dilakukan terhadap keperluan perangkat lunak,
maka dapat diambil keputusan bahwa nama dari perangkat lunak yang akan dibangun
adalah
IdeaCrypt
, dimana
Crypt
menunjukkan fungsi dari perangkat lunak dan
Idea
merupakan nama algoritma yang di gunakan. Perangkat lunak yang dibangun
nantinya akan menghasilkan
file
kunci yang berisikan pasangan kunci enkripsi dan
kunci dekripsi yang diperoleh dari proses pembentukan kunci,
file
cipherteks dari
proses enkripsi dan menghasilkan
file
plainteks dari proses dekripsi. Format
file
cipherteks nantinya akan tetap sama dengan file asli tetapi tidak dapat dipahami oleh
pihak yang tidak berhak. Kemudian pengguna dari perangkat lunak ini adalah setiap
individu yang membutuhkan keamanan data, untuk itu maka sistem yang dibangun
harus dapat dipakai oleh setiap orang secara umum. Maka perangkat lunak yang
dibentuk harus memiliki antarmuka yang sederhana dan mudah untuk dipergunakan.
Untuk memenuhi kebutuhan tersebut maka perangkat lunak algoritma IDEA dibangun
pada sistem operasi dengan
platform
Microsoft Windows XP, dan bahasa
pemrograman yang dipergunakan adalah C++.
Untuk memudahkan perancangan perangkat lunak dengan algoritma IDEA
tersebut maka dibutuhkan algoritma dan
flowchart
dari setiap mekanisme yang ada.
Alasan penggunaan algoritma dan
flowchart
adalah karena dengan menggunakan
algoritma dan
flowchart
dapat digambarkan secara jelas alur dari proses, struktur
perulangan, teknik pengambilan keputusan serta mekanisme kalkulasi yang ada pada
sistem. Setelah algoritma dan
flowchart
terbentuk, barulah dilakukan proses
3.3.Pemodelan Fungsional
Hasil yang diharapkan dari tahapan membangun suatu sistem adalah bagaimana
caranya agar sistem yang dibangun memiliki fungsi yang berdaya guna maksimal.
Oleh karena itu, maka fungsi-fungsi yang ada pada sistem tersebut perlu dianalisis.
Pada sistem kriptografi IDEA, secara garis besar terdapat tiga fungsi, yaitu: enkripsi
pesan, dekripsi pesan, dan pembentukan subkunci.
Pemodelan fungsional menggambarkan aspek dari sistem yang berhubungan
dengan transformasi dari nilai, seperti fungsi, pemetaan, batasan, dan ketergantungan
fungsional. Pemodelan fungsional menangkap sesuatu yang dikerjakan oleh sistem
tanpa memperhatikan bagaimana dan kapan hal itu dikerjakan.
3.4.
DFD (Data Flow Diagram) dan Spesifikasi Proses
Pemodelan fungsional digambarkan dengan diagram aliran data (
DFD
).
DFD
merupakan cara yang intuitif untuk menunjukkan bagaimana data diproses oleh sistem
atau bagaimana data mengalir dalam serangkaian pemrosesan. Data ditransformasikan
pada setiap langkah sebelum berlanjut ke tahapan selanjutnya. Langkah-langkah
pemrosesan atau transformasi ini merupakan fungsi program ketika diagram aliran
data digunakan untuk mendokumentasikan desain perangkat lunak.
DFD
merupakan model dari sistem untuk menggambarkan pembagian sistem
ke modul yang lebih kecil. Keuntungan penggunanan
Data Flow Diagram
adalah
memudahkan pemakai yang kurang menguasai bidang komputer untuk mengerti
sistem yang akan dikerjakan atau dikembangkan (Pressman. R.S., 2002). Simbol DFD
yang akan digunakan dalam pembahasan ini adalah simbol yang sering digunakan
oleh Yourdan, De Marco dan lainnya.
Data Flow Diagram
dari perangkat lunak IDEA Kriptosistem yang penulis
3.4.1. Diagram Konteks
DFD level 0 di bawah menggambarkan sistem secara garis besar yang
memperlihatkan masukan, proses, dan keluaran dari sistem yang akan dirancang.
IDEA Kriptosistem akan menghasilkan keluaran berupa
pesan rahasia
dan
pesan asli
.
User
P.0 Sistem Kriptografi
algoritma IDEA (IdeaCrypt) Plainteks, Cipherteks, Kunci
Psn_Rhs, Psn_Asli, Sub_knci_enk, Sub_knci_dek
Gambar 3.1
Diagram Konteks Sistem
[image:47.595.205.428.190.301.2]Proses yang terjadi pada diagram konteks atau DFD Level 0 di atas dapat
dijelaskan dengan menggunakan spesifikasi proses pada tabel 3.1.
Tabel 3.1
Spesifikasi Proses Diagram Konteks
Nama
Input
Keterangan
Proses
Output
Proses 0
Plainteks,
Cipherteks, Kunci
Mengamankan data
dengan algoritma
kriptografi simetri
IDEA
Psn_Rhs,
Psn_Asli,
Sub_knci_enk,
Sub_knci_dek
Pengembangan proses yang terjadi pada diagram konteks di atas dapat
dijabarkan menjadi DFD level 1.
3.4.2. DFD Level 1
DFD level 1 pada gambar 3.2 menggambarkan sistem secara garis besar yang
memperlihatkan proses-proses yang dilakukan dalam sistem kriptografi dengan
algoritma IDEA, proses ini dimulai dari proses Pembentukan Kunci
,
yakni
proses
yang dilakukan untuk mendapatkan seluruh subkunci enkripsi dan subkunci dekripsi
(yang totalnya masing-masing 52 subkunci) yang diperoleh dari 8 subkunci yang
User
P.2 Pemilihan Proses
P.3 Proses Enkripsi
P.4 Proses Dekripsi P.1
Proses Pembentukan Kunci Kunci
Psn_Rhs
Psn_Asli
Order_ perintah
Order_Enk
Order_Dek Plainteks
Cipherteks Sub_knci_enk
Order_knci_enk
Order_knci_dek
Sub_knci_dek Sub_knci_enk
Sub_knci_dek
Gambar 3.2
DFD Level 1
Pada gambar di atas dapat dilihat bahwa terdapat 2 pilihan proses yang dapat
dilakukan pada Kriptosistem ini yaitu :
1. Proses Enkripsi
Proses enkripsi merupakan proses yang dilakukan untuk mengubah pesan asli
menjadi pesan terenkripsi yang tidak dapat dipahami. Untuk memperoleh pesan
terenkripsi tersebut,
user
menggunakan kunci simetri (kunci untuk proses
enkripsi dan dekripsinya sama).
2. Proses Dekripsi
Proses dekripsi merupakan proses untuk mengubah pesan yang telah dienkripsi
menjadi pesan asli (pesan semula). Untuk melakukan proses dekripsi ini,
user
menggunakan kunci yang sama deng