BAB II
LANDASAN TEORI
Bab ini menjelaskan teori dan konsep yang menjadi landasan materi dari sistem yang
akan dibuat. Beberapa teori dan konsep yang akan dibahas antara lain pembahasan
konsep dasar voting, e-voting, konsep dasar kriptografi, cara kerja algoritma AES, cara kerja algoritma RSA, cara kerja tanda tangan digital (digital signature), dan penelitian terdahulu.
2.1. Voting
Voting atau pemungutan suara yang biasa dilakukan dengan cara manual oleh masyarakat dalam mengambil sikap dan keputusannya menentukan pemimpin sering
menimbulkan permasalahan-permasalah yang disebabkan oleh human error maupun sistemik. Berikut ini adalah beberapa permasalahan yang timbul dalam pelaksanaan
voting di Indonesia selama ini:
1. Banyak terjadi kesalahan dalam proses pendaftaran pemilih. Konsep
penggunaan banyak kartu identitas menyebabkan banyaknya pemilih yang
memiliki kartu suara lebih dari satu buah. Keadaan ini seringkali dimanfaatkan
oleh pihak-pihak tertentu untuk meningkatkan jumlah suara pilihannya
sehingga dapat memenangkan voting tersebut.
2. Pemilih salah dalam memberi tanda pada kertas suara, karena ketentuan
keabsahan penandaan yang kurang jelas, sehingga banyak kartu suara yang
dinyatakan tidak sah. Pada tahapan verifikasi keabsahan dari kartu suara,
sering terjadi kontroversi peraturan dan menyebabkan konflik.
3. Proses pengumpulan kartu suara yang berjalan lambat, karena perbedaan
4. Penyebab lainnya adalah kesulitan untuk memeriksa keabsahan dari sebuah
kartu suara, sehingga pengumpulan tidak berjalan sesuai dengan rencana.
5. Proses penghitungan suara yang dilakukan di setiap daerah berjalan lambat
karena proses tersebut harus menunggu semua kartu suara terkumpul terlebih
dahulu. Keterlambatan yang terjadi pada proses pengumpulan, akan berimbas
kepada proses penghitungan suara. Lebih jauh lagi, proses tabulasi dan
pengumuman hasil perhitungan akan meleset dari perkiraan sebelumnya.
6. Keterlambatan dalam proses tabulasi hasil penghitungan suara dari daerah.
Kendala utama dari proses tabulasi ini adalah kurangnya variasi metode
pengumpulan hasil penghitungan suara. Hal ini disebabkan oleh masih
lemahnya infrastruktur teknologi komunikasi di daerah. Oleh karena itu,
seringkali pusat tabulasi harus menunggu data penghitungan yang dikirimkan
dari daerah dalam jangka waktu yang lama. Akibat dari hal tersebut, maka
pengumuman hasil voting akan memakan waktu yang lama.
7. Permasalahan yang terpenting adalah kurang terjaminnya kerahasiaan dari
pilihan yang dibuat oleh seseorang. Banyak pemilih mengalami tekanan dan
ancaman dari pihak tertentu untuk memberikan suara mereka kepada pihak tertentu. Lebih buruk lagi, terjadi “jual-beli suara“ di kalangan masyarakat tertentu, sehingga hasil voting tidak mewakili kepentingan seluruh golongan masyarakat.
2.2. E-Voting
E-Voting yaitu suatu metode pemungutan suara dan penghitungan suara dalam pemilihan umum dengan menggunakan perangkat elektronik (Priyono & Dihan,
2010). Proses pendaftaran pemilih, pelaksanaan pemilihan, penghitungan suara, dan
pengiriman hasil suara dilakukan secara elektronik atau digital (Rokhman, 2011). Pilihan teknologi yang digunakan dalam implementasi dari e-voting sangat bervariasi, seperti penggunaan smart card untuk otentikasi pemilih, penggunaan internet sebagai pemungutan suara, penggunaan touch screen sebagai pengganti kartu suara, dan masih banyak variasi teknologi yang digunakan (Azhari, 2005). Penggunaan teknologi ini di
menimbulkan kerawanan (Agustina & Kurniati, 2009). Kerawanan ini terkait dengan
keamanan informasinya. Berikut beberapa requirement dasar pada e-voting (Schneier, 1996):
1. Tidak ada seorang pun yang dapat mengetahui pilihan orang lain.
2. Setiap orang dapat memastikan dan memverifikasi pilihannya telah masuk ke
rekapitulasi akhir pemilihan dengan benar sesuai pilihannya.
3. Hanya orang yang sah dan terdaftar yang dapat memberikan suara/pemilih
4. Tidak seorangpun dapat menduplikasi suara orang lain tanpa diketahui.
5. Tidak ada pemilih/voter yang dapat memilih lebih dari satu kali.
6. Sistem harus dapat menyimpan dan menghitung suara yang diberikan oleh
pemilih/voter dengan benar dan akurat.
7. Prosedur pemilihan dalam sistem harus dapat dengan mudah dimengerti dan
digunakan oleh pengguna.
E-Voting merupakan teknologi yang relatif baru untuk mendukung pelaksanaan pesta demokrasi dan telah diterapkan di sejumlah negara (Kahani, 2005).
Penerapan e-voting dengan berbagai model dan dalam 10 tahun terakhir tidak hanya di Amerika, tetapi negara-negara lain juga mengadopsi sistem ini (Gefen et al., 2005). Sejumlah negara yang telah menerapkan e-voting yaitu Brazil (sejak 1990 dan tahun 1998 merupakan proses e-voting terbesar karena melibatkan 60 juta pemilih), Inggris (sejak tahun 2002 sebagian telah menerapkan dan mulai tahun 2011 digunakan secara
nasional), Australia (mulai digunakan tahun 2001), Selandia Baru (mulai tahun 2006),
Jepang (sejak tahun 2002), Irlandia (dipersiapkan sejak tahun 1998 dan mulai
diujicoba tahun 2002 dan mulai diterapkan secara nasional tahun 2004), Swiss (sejak
tahun 1998) dan Lithuania. Menurut Hajjar et al. (2006) bahwa pertimbangan diterapkannya e-voting adalah karena kecepatan dan akurasi.
Di Indonesia sendiri, penggunaan e-voting telah dilakukan Nopember – Desember 2009 pada 31 kepala dusun (banjar) yang ada di 18 desa/kelurahan di
Jembrana – Bali yaitu menggunakan kartu identitas dengan chip dan komputer layar sentuh sebagai sarana pemungutan suara.
Penerapan e-voting akan membuat pesta demokrasi menjadi semakin efisien dan efektif dan hasilnya lebih cepat diketahui kurang dari 24 jam (Indriastuti &
system juga harus diperhatikan seperti ditegaskan oleh Zamora, et.al. (2005). Artinya, jika kerahasiaan dan keamanan terpenuhi, maka e-voting sangatlah tepat digunakan. Berikut sejumlah aspek manfaat dari penerapan e-voting adalah (Zafar & Pilkzaer, 2007).
1. Biaya
Terkait sumber daya dan investasi yang lebih hemat dibanding dengan sistem
tradisional yang ribet, kompleks dan tidak efisien.
2. Waktu
Terkait waktu pelaksanaan pemilihan yang lebih cepat dan kalkulasi hasil yang
lebih tepat dibandingkan sistem yang tradisional.
3. Hasil
Terkait dengan hasil kalkulasi yang lebih tepat dan akurat serta minimalisasi
terjadinya kasus human error selama sistem yang dibangun terjamin dari berbagai ancaman kejahatan.
4. Transparansi
Terkait dengan transparansi dari semua proses karena semua dilakukan oleh
suatu sistem yang otomatis dan real time online.
2.3. Kriptografi
Kriptografi (cryptography) berasal dari bahasa Yunani yaitu cryptos yang berarti
secret yaitu rahasia dan graphein artinya writing yaitu tulisan (Agustina & Kurniati, 2009). Sehingga kriptografi berarti secret writing yaitu tulisan rahasia. Dan arti sebenarnya dari kriptografi itu adalah ilmu yang mempelajari tentang bagaimana
menjaga kerahasiaan suatu pesan, agar isi pesan yang disampaikan tersebut aman
sampai ke penerima pesan (Ariyus, 2008).
Tujuan kriptografi adalah melindungi data dari ancaman yang disengaja atau
tidak disengaja. Dewasa ini ancaman bertambah karena semakin meluasnya akses
melalui internet atau teknologi bergerak. Aspek - aspek keamanan data dalam
kriptografi adalah sebagai berikut (Kurniawan, 2004).
1. Confidentiality / Privacy
Merupakan usaha untuk menjaga kerahasiaan data. Data hanya boleh diakses
daftar gaji, data nasabah dan lainnya. Aspek keamanan data menjadi sangat
sensitif dalam e-commerce dan militer. Serangan dalam aspek ini antara lain dilakukan dengan penyadapan, misalnya sniffer atau logger.
2. Integrity
Memastikan bahwa informasi yang dikirim melalui jaringan tidak mengalami
modifikasi oleh pihak yang tidak berhak. Serangan dapat berupa pengubahan
data oleh orang yang tidak berhak, misalnya dengan spoofing yaitu virus yang dapat mengubah berkas.
3. Availability
Informasi harus tersedia ketika dibutuhkan. Serangan dapat berupa
meniadakan layanan (Denial of Service/DoS attack) atau menghambat layanan dengan membuat server lambat.
4. Non-repudiation
Pengirim tidak dapat menyangkal bahwa yang bersangkutan telah melakukan
transaksi tersebut.
5. Authentication
Meyakinkan keaslian data, sumber data, orang yang mengakses data, dan
server yang digunakan. Beberapa cara yang dapat digunakan untuk membuktikan keaslian data antara lain dengan what you have (misalnya kartu identitas), what you know (misalnya password atau PIN) dan what you are
(misalnya dengan biometric identity). Serangan dapat dilakukan dengan menggunakan identitas palsu, terminal palsu ataupun situs gadungan.
6. Access Control
Aspek ini berhubungan dengan mekanisme pengaturan akses ke informasi,
untuk mengatur siapa yang boleh melakukan apa. Membutuhkan adanya
klasifikasi data, misalnya umum (public), pribadi (private), rahasia (confidential) atau sangat rahasia (top secret).
7. Accountability
Di dalam kriptografi juga akan sering ditemukan berbagai istilah atau
terminologi. Berikut beberapa istilah yang penting untuk diketahui :
1. Pesan, plaintext,dan ciphertext
Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti
maknanya. Nama lain untuk pesan adalah plaintext atau teks jelas (cleartext) (Schneier, 1996). Pesan dapat berupa data atau informasi yang dikirim (melalui
kurir, saluran telekomunikasi, dsb.) atau yang disimpan di dalam media
perekaman (kertas, storage, dan sebagainya). Pesan yang tersimpan tidak hanya berupa teks, tetapi juga dapat berbentuk citra (image), suara/bunyi (audio), dan
video, atau berkas biner lainnya. Agar pesan tidak dapat dimengerti maknanya
oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat
dipahami (enkripsi). Bentuk pesan yang tersandi disebut ciphertext. Proses pembalikan dimana ciphertext diubah kembali menjadi plaintext di sebut dekripsi
(Stamp, 2007).
2. Entitas, pengirim, penerima, dan penyusup
Entitas atau peserta adalah orang atau sesuatu yang mengirim, menerima, atau
memanipulasi informasi. Entitas bisa berupa orang, terminal komputer, kartu
kredit, dan sebagainya. Jadi, orang bisa bertukar pesan dengan orang lainnya
(contoh: Alice berkomunikasi dengan Bob) sedangkan di dalam jaringan
komputer, mesin (komputer) berkomunikasi dengan mesin (contoh: mesin
ATM berkomunikasi dengan komputer server di bank). Pengirim adalah entitas
dalam komunikasi yang mengirimkan informasi kepada entitas lainnya
lainnya. Penerima adalah entitas dalam komunikasi yang diharapkan menerima
informasi. Penyusup (adversary) adalah entitas diluar pengirim dan penerima yang mencoba untuk membobol keamanan informasi. Penyusup biasanya
bertindak seolah-olah sebagai pengirim yang sah ataupun penerima yang sah.
3. Enkripsi dan dekripsi
dan dekripsi dapat diterapkan baik pada pesan yang dikirim maupun pada
pesan yang tersimpan.
4. Cipher dan kunci
Algoritma kriptografi disebut juga cipher yaitu aturan untuk enchiphering dan
deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk
enciphering dan dechipering.
Berdasarkan kunci yang digunakan, algoritma kriptografi dapat dibedakan atas
dua golongan yaitu algoritma kunci simetrik dan algoritma kunci asimetrik.
2.3.1. Kunci Simetrik
Kunci Simetrik yang sering disebut algoritma konvensional adalah algoritma yang
menggunakan kunci yang sama untuk proses enkripsi dan dekripsinya (Schneier,
1996). Dari gambar 2.2 ini terlihat bahwa untuk mengenkripsi dan mendekripsinya
pesan hanya menggunakan satu buah kunci saja (K) saja :
Encryption Decryption
Plaintext Ciphertext Plaintext
Key Key
Gambar 2.1 Skema enkripsi dan dekripsi kunci simetrik (Schneier, 1996)
Untuk menjaga kerahasiaan pesan antar komunikan pada kriptografi ini dibutuhkan
sebuah kunci untuk tiap pasangan komunikan. Sehingga untuk n komunikan jumlah kunci yang dibutuhkan adalah:
𝑛 (𝑛−1)
2
Contoh kasus yang melibatkan 4 komunikan A, B, C, dan D. Maka untuk
4 (4 −1) = 4 (3) = 6 kunci untuk setiap pasangan.
2 2
Kunci - kunci yang diperoleh untuk setiap pasangan komunikan antara lain adalah kunci pasangan komunikan A – B, A – C, A – D, B – C, B – D, dan C – D.
Beberapa algoritma yang memakai kunci simetrik adalah Data Encryption
Standard (DES), RC2, RC4, RC5, RC6, International Data Encryption Algorithm
(IDEA), Advanced Encryption Standard (AES), One Time Pad (OTP), Blowfish, dan
lain sebagainya.
2.3.2. Kunci Asimetrik
Kriptografi kunci simetrik sering disebut dengan kunci publik karena menggunakan
kunci yang berbeda untuk enkripsi dan dekripsi. Kriptografi ini memiliki dua kunci (e
dan d). Seperti yang diuraikan Menezes (1997), kunci e dibuat untuk umum sehingga disebut kunci publik, sementara kunci d tetap disimpan aman dan rahasia sehingga disebut kunci privat. Demi keamanan maka harusnya menghitung d menjadi lebih sulit bila e diketahui. Skema kriptografi kunci simetri dapat dilihat pada gambar 2.3.
Encryption Decryption
Plaintext Ciphertext Plaintext
Public Key Private Key
Gambar 2.2 Skema enkripsi dan dekripsi kunci asimetrik (Schneier, 1996)
Kriptografi kunci publik dapat dianalogikan seperti kotak surat yang terkunci
dan memiliki lubang untuk memasukkan surat. Kotak surat diletakkan di depan rumah
pemiliknya. Setiap orang dapat memasukkan surat ke dalam kotak tersebut, tetapi
hanya pemilik kotak yang dapat membuka kotak dan membaca suratnya karena hanya
ia yang memiliki kuncinya.
Beberapa algoritma yang memakai kunci asimetri adalah Digital Signature Algorithm (DSA), RSA, ElGamal, Diffie-Hellman, Elliptic Curve Cryptography
2.3.3. Perbandingan Algoritma Simetrik dan Algoritma Asimetrik
Baik kriptografi simetrik maupun kriptografi asimetrik (kunci publik), keduanya
mempunyai kelebihan dan kelemahan.
a. Kelebihan kriptografi simetrik:
1. Algoritma kriptografi simetri dirancang sehingga proses enkripsi/dekripsi
membutuhkan waktu yang singkat.
2. Ukuran kunci simetri relatif pendek.
3. Algorima kriptografi simetri dapat disusun untuk menghasilkan cipher
yang lebih kuat.
4. Otentikasi pengirim pesan langsung diketahui dari ciphertext yang diterima, karena kunci hanya diketahui oleh pengirim dan penerima pesan
saja.
b. Kelemahan kriptografi simetrik:
1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas
yang berkomunikasi harus menjaga kerahasisan kunci ini.
2. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.
c. Kelebihan kriptografi kunci asimetrik (Munir, 2006):
1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas
yang berkomuniaksi (namun, otentikasi kunci publik juga tetap harus
terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada
kunci simetrik.
2. Pasangan kunci publik maupun privat tidak perlu diubah, bahkan dalam
periode waktu yang panjang.
3. Dapat digunakan untuk mengamankan pengiriman kunci simetrik.
4. Beberapa algoritma kunci-publik dapat digunakan untuk memberi tanda
d. Kelemahan kriptografi kunci asimetrik (Munir, 2006):
1. Enkripsi dan dekripsi data pada umumnya berjalan lebih lambat daripada
kunci simetrik, karena enkripsi dan dekripsi menggunakan bilangan yang
besar dan operasi perpangkatan yang besar pula.
2. Ukuran ciphertext lebih besar daripada plaintext (bisa dua sampai empat kali ukuran plaintext).
3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetrik.
4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap
orang, maka ciphertext yang dihasilkan tidak memberikan informasi mengenai otentikasi pengirim.
2.4. Algoritma Kriptografi AES
Sejak tahun 1976, Data Encryption Standard (DES) dipilih sebagai standar kriptografi yang dipakai pada pemerintahan Amerika Serikat. Namun pada tahun 1990, panjang
kunci DES dianggap terlalu pendek, dan pada tahun 1998 DES berhasil dipecahkan
dalam waktu 96 hari, kemudian di tahun 1999 dapat dipecahkan dalam waktu 22 hari.
Karena alasan tersebut maka kemudian diadakan kompetisi oleh NIST
(National Institute of Standard and Technology) untuk mencari pengganti DES. NIST mengundang peserta dari seluruh dunia untuk berpartisipasi dengan mengajukan
algoritma baru untuk menggantikan DES (Ariyus, 2008). Pada tahun 1997 ada 21
pelamar dan 6 dari mereka gugur karena tidak masuk dalam kriteria pemilihan.
Konferensi umum pun diselenggarakan untuk menilai keamanan algoritma yang
diusulkan. Pada Agustus 1998, dipilih 5 kandidat untuk seleksi akhir, yaitu :
1. Rijndael (dari John Daemen dan Vincent Rijmen – Belgia, 86 suara)
2. Serpent (dari Ross Anderson, Eli Biham, dan Lars Knudsen – Inggris, Israel dan Norwegia, 59 suara)
3. Twofish (dari tim yang diketuai oleh Bruce Schneier – USA, 31 suara) 4. RC6 (dari Laboratorium RSA – USA, 23 suara)
Kriteria penilaian yang dikemukakan NIST didasarkan pada 3 kriteria utama
berikut (Nechvatal, 2000) .
1. Aspek keamanan.
Keamanan merupakan aspek terpenting dalam penilaian yang mengacu pada
ketahanan algoritma terhadap serangan, kompleksitas penghitungan matematis,
output yang dihasilkan, dan perbandingan aspek keamanan satu sama lain. 2. Aspek biaya.
Aspek biaya mengacu pada lisensi, efisiensi komputasional di berbagai
platform, dan kebutuhan memory sesuai dengan tujuan NIST yang menginginkan agar algoritma AES dapat digunakan secara luas dan bebas
tanpa harus membayar royalti, dan juga murah untuk diimplementasikan pada
smart card yang memiliki ukuran memori kecil.
3. Aspek implementasi dan karakteristik algoritma.
Aspek ini mengacu pada fleksibilitas, kesesuaian terhadap perangkat lunak
maupun keras, serta kesederhanaan algoritma.
Pada bulan Oktober 2000, NIST mengumumkan untuk memilih Rinjdael,
kemudian pada bulan November 2001, Rinjdael ditetapkan sebagai AES, dan
diharapkan menjadi standard kriptografi yang dominan paling sedikit selama 10 tahun.
Terhitung pada 26 Mei 2002 AES telah menjadi standard dalam kriptografi kunci
simetrik modern.
Berikut disertakan tabel perbandingan algoritma Rijndael (AES) dengan
beberapa algoritma lain (Munir, 2006).
Tabel 2.1 Tabel Perbandingan Beberapa Cipher
Cipher Pembuat Keterangan
DES IBM Too weak to use now
Tripple DES IBM Second best choice
GOST Uni Soviet Good
RC4 Ronald Rivest Some keys are weak
RC5 Ronald Rivest Good but patented
Tabel 2.1 Tabel Perbandingan Beberapa Cipher (lanjutan)
Cipher Pembuat Keterangan
Twofish Brue Schneier Very strong, widely used
Blowfish Brue Schneier Old and slow
IDEA Massey dan Xuejia Good but patented
Pada algoritma AES, jumlah blok input, blok output, dan state adalah 128-bit. Dengan besar data 128-bit, berarti Nb = 4 (Nb = panjang blok plaintext dibagi 32 dan Nk = panjang kunci dibagi 32) yang menunjukkan panjang data tiap baris adalah 4
byte. Dengan blok input atau blok data sebesar 128-bit, key yang digunakan pada algoritma AES tidak harus mempunyai besar yang sama dengan blok input. Cipherkey
pada algoritma AES dapat menggunakan kunci dengan panjang 128-bit, 192-bit, atau 256-bit. Perbedaan panjang kunci akan mempengaruhi jumlah round yang akan diimplementasikan pada algoritma AES ini. Berikut adalah tabel yang
memperlihatkan jumlah round (Nr) yang harus diimplementasikan pada masing-masing panjang kunci (Daemen & Rijmen, 1999).
Tabel 2.2 Tabel Perbandingan panjang kunci AES.
Jumlah Key (Nk) Besar Blok (Nb) Jumlah Round (Nr)
AES – 128 4 4 10
AES – 192 6 4 12
AES – 256 8 4 14
2.4.1. Proses Enkripsi AES
Langkah-langkah enkripsi untuk algoritma rijndael:
a. Mengekspansi kunci (Key Expansion)
Pada algoritma Rijndael proses pertama yang dilalui adalah mengekspansi
kunci. Kunci hasil ekspansi ini disebut dengan RoundKey yang kemudian
digunakan pada tiap-tiap putaran transformasi.
c. Melakukan transformasi putaran sebanyak Nr kali sebagai berikut:
1. SubByte
Proses mensubstitusi plaintext yang telah diekspansi ke dalam S-Box.
Gambar 2.3 Ilustrasi transformasi SubByte (Daemen & Rijmen, 1999)
Tabel 2.3 S-Box Algoritma AES
| 0 1 2 3 4 5 6 7 8 9 a b c d e f ---|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
00 |63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 10 |ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 20 |b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 30 |04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75 40 |09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 50 |53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 60 |d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 70 |51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 80 |cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 90 |60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db a0 |e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79 b0 |e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08 c0 |ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a d0 |70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e e0 |e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df f0 |8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16
2. Shiftrow
Rotasi yang dilakukan mulai baris kedua hingga baris ke-4 ke kanan
3. MixClolumn
State yang dihasilkan dari proses ShiftRow di-XOR-kan dengan matriks yang telah ditentukan. Matriks tersebut adalah:
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
Ilustrasi hasil state yang telah di-XOR dengan matriksdapat dilihat pada gambar .
Gambar 2.5 Ilustrasi transformasi MixColoumn (Daemen & Rijmen, 1999)
4. AddRoundKey
Hasil dari MixColumn di-XOR-kan dengan RoundKey masing-masing
putaran. RoundKey diperoleh pada proses ekspansi kunci. Secara garis
besar setiap proses dapat dilihat pada gambar 2.7.
Plaintext
KeyAddition
SubByte ShiftRow MixColoumn AddRoundKey
SubByte ShiftRow AddRoundKey
Ciphertext 9 putaran
Gambar 2.7 Alur proses enkripsi algoritma AES, key 128-bit (Stallings, 2003)
2.4.2 Proses Dekripsi AES
Langkah-langkah dekripsi untuk algoritma Rijndael:
a. Pada proses dekripsi yang diketahui hanyalah kunci, kunci yang ada
diekspansi dahulu, prosesnya sama dengan enkripsi dengan tujuan agar
diperoleh RoundKey.
b. Ciphertext di-XOR-kan dengan RoundKey terakhir yang diperoleh dari proses Key Schedule. Proses ini disebut Inverse of AddRoundKey.
c. Ciphertext hasil yang berasal dari proses AddRoundKey digeser baris keduanya ke kanan 1 langkah, baris ketiga 2 langkah ke kanan, dan seterusnya
hingga baris keempat=3 langkah ke kanan. Proses ini disebut dengan Inverse
d. Ciphertext yang dihasilkan dari proses Invers of ShiftRow kemudian ditransformasikan ke dalam kotak Inverse S-Box yang telah ditentukan. Proses
ini dinamakan inverse of SubBytes.
e. Ciphertext yang telah ditransformasikan kemudian di XOR kan dengan matriks yang telah ditentukan. Matriks tersebut adalah sebagai berikut:
0e 0b 0d 09
09 0e 0b 0d
0d 09 0e 0b
0b 0d 09 0e
Pada putaran pertama dalam proses dekripsi ini proses Inverse of MixColumn
ini diabaikan.
f. Hasil dari Inverse of MixColumn ini di-XOR-kan dengan RoundKey putaran
selanjutnya. Begitu seterusnya hingga putaran terakhir.
Tabel 2.4 Inverse S-Box Algoritma AES
Ciphertext
AddRoundKey InvShiftRow
InvSubByte
AddRoundKey InvMixColoumn
InvShiftRow InvSubByte
KeyAddition
Plaintext 9 putaran
Gambar 2.8 Alur proses dekripsi algoritma AES, key 128-bit (Stallings, 2003)
2.5. Algoritma Kriptografi RSA
Algoritma kriptografi RSA ditemukan oleh tiga orang yang kemudian nama-nama
mereka disingkat menjadi RSA. Ketiga penemu itu adalah Ron Riverst, Adi Shamir,
dan Leonard Adleman. RSA dibuat di MIT pada tahun 1977 dan dipatenkan oleh MIT
(Massachussets Institute of Technology) pada tahun 1983. Sejak 21 September tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat menggunakannya
dengan bebas (Brian, 2000). RSA merupakan algoritma kriptografi asimetrik yang
paling mudah untuk diimplementasikan dan dimengerti (Ariyus, 2008).
Algoritma kriptografi RSA merupakan algoritma yang termasuk dalam
didesain sesuai fungsinya sehingga kunci yang digunakan untuk enkripsi berbeda dari
kunci yang digunakan untuk dekripsi. Algoritma RSA disebut kunci publik karena
kunci enkripsi dapat dibuat publik yang berarti semua orang boleh mengetahuinya,
namun hanya orang tertentu (si penerima pesan sekaligus pemilik kunci dekripsi yang
merupakan pasangan kunci publik) yang dapat melakukan dekripsi terhadap pesan
tersebut. Keamanan algoritma RSA didasarkan pada sulitnya memfaktorkan bilangan
besar menjadi faktor-faktor primanya (Sulistyanto, 2004). Secara umum ada beberapa
besaran-besaran yang harus diperhatikan dalam algoritma RSA, yaitu :
1. p dan q adalah 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 (plaintext) (tidak rahasia)
7. c (ciphertext) (rahasia)
2.6. Konsep Dasar Perhitungan Matematis
Dalam setiap proses pada algoritma RSA terdapat perhitungan matematis. Pada proses
pembangkitan kunci dibutuhkan perhitungan untuk menentukan nilai Totient n dan perhitungan dengan algoritma Euclidean untuk menentukan nilai dua buah bilangan yang
relatif prima. Sedangkan pada proses enkripsi dan dekripsi dilakukan perhitungan
menggunakan metode Fast Exponentiation.
2.6.1. Fungsi Totient Euler ϕ
Fungsi Totient Euler ϕ atau biasa disebut dengan fungsi Euler merupakan salah satu fungsi yang dipakai dalam perhitungan matematis pada algoritma RSA. Fungsi Euler
mendefinisikan ϕ (n) untuk n ≥ 1 yang menyatakan jumlah bilangan bulat positif < n
yang relatif prima dengan n (Munir, 2006). Dua bilangan bulat a dan b dikatakan relatif prima jika gcd(a,b) = 1 (pembagi bersama terbesar dari a dan b adalah 1).
Jika n = pq (p dan q bilangan prima)
Contoh : ϕ (15) = ϕ (3) ϕ (5) = 2x4 = 8 buah bilangan bulat yang relatif prima
terhadap 15, yaitu 1,2,4,7,8,11,13,14.
2.6.2. Algoritma Euclidean
Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar (PBB) dari
dua bilangan bulat (Munir, 2006). Algoritma ini didasarkan pada pernyataan bahwa
ada dua buah bilangan bulat tak negatif yakni m dan n dimana nilai m ≥ n. Adapun tahap-tahap pada algoritma Euclidean adalah:
1. Jika n = 0 maka m adalah PBB(m, n); stop.
Jikalau tidak (yaitu n ≠ 0) lanjutkan ke langkah nomor 2. 2. Bagilah m dengan n dan misalkan sisanya adalah r.
3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah nomor 1.
Algoritma Euclidean dapat digunakan untuk mencari dua buah bilangan bulat yang relatif prima. Dua buah bilangan bulat dikatakan relatif prima jika GCD dari
kedua bilangan bernilai 1.
Contoh : menghitung nilai GCD(100, 64) dan GCD(43, 19).
100 mod 64 43 mod 19
64 = 1 . 36 + 28 43 = 2 . 19 + 5
36 = 1 . 28 + 8 19 = 3 . 5 + 4
28 = 2 . 8 + 4 5 = 1 . 4 + 1
8 = 2 . 4 + 0 4 = 4 . 1 + 0
Nilai GCD(100, 64) = 4 Nilai GCD(43, 19) = 1 GCD(100, 64) ≠ 1
2.6.3. Metode Fast Exponentiation
Metode ini digunakan untuk menghitung operasi pemangkatan besar bilangan
bulat modulo dengan cepat (Munir, 2006). Metode ini berdasarkan pada
pernyataan berikut ini:
ab mod m = [(a mod m)(b mod m)] mod m
Untuk lebih jelasnya mengenai langkah-langkah metode fast exponentiation dapat dilihat pada contoh berikut.
Sebagai ilustrasi, untuk menghitung 1504283 mod 2077 dapat dilakukan sebagai
berikut.
15041 = 1504 (mod 2077)
15042 = 163 (mod 2077)
15044 = 1632 (mod 2077) = 1645 (mod 2077)
15048 = 16452 (mod 2077) = 1771 (mod 2077)
150416 = 17712 (mod 2077) = 171 (mod 2077)
150432 = 1712 (mod 2077) = 163 (mod 2077)
150464 = 1632 (mod 2077) = 1645 (mod 2077)
1504128 = 16452 (mod 2077) = 1771 (mod 2077)
1504256 = 17712 (mod 2077) = 171 (mod 2077)
Maka,
1504283 mod 2077 = 1504(1+2+8+16+256) mod 2077
= 15041 . 15042. 15048 . 150416 . 1504256 mod 2077
= [(15041 mod 2077) . (15042 mod 2077) . (15048 mod 2077) .
(150416 mod 2077). (1504256 mod 2077)] mod 2077
= [(1504 mod 2077) . (163 mod 2077) . (1771 mod 2077) . (171
mod 2077) . (171 mod 2077) ] mod 2077
= [ 1504 . 163 . 1771 . 171 . 171 ] mod 2077
= [ 66 . 1771 . 171 . 171 ] mod 2077
= [ 574 . 171 . 171 ] mod 2077
= [ 535 . 171 ] mod 2077
= [ 97 ] mod 2077
2.7. Cara Kerja Algoritma RSA
Skema algoritma kunci publik sandi RSA terdiri dari tiga proses yaitu, proses
pembentukan kunci, proses enkripsi, dan proses dekripsi (Mollin, 2002).
2.7.1. Proses Pembentukan Kunci RSA
1. Memilih dua bilangan prima yang diberi simbol sebagai p dan q.
2. Menghitung nilai n = p.q ( n ≠ p , karena jika n = p , maka nilai n = p2 dan akan mudah mendapatkan nilai n).
3. Hitung ϕ (n) = (p-1) (q-1).
4. Memilih kunci publik e yang relatif prima terhadap ϕ (n)
5. Bangkitkan kunci privat dengan persamaan 𝑑.e ≡ 1 (𝑚o𝑑 ϕ (𝑛)), dimana 1<𝑑<ϕ (𝑛)
Hasil dari algoritma di atas adalah :
a. Kunci publik adalah pasangan (e, n) b. Kunci privat adalah pasangan (d, n)
2.7.2. Proses Enkripsi RSA
1. Ambil kunci publik penerima pesan (e) ,dan modulus (n).
2. Plaintext dinyatakan dengan blok-blok m1, m2, .., sedemikian sehingga setiap blok merepresentasikan nilai [0, n-1].
3. Setiap blok mi dienkripsikan menjadi blok ci dengan rumus
Ci = mie mod n
2.7.3. Proses Dekripsi RSA
Setiap blok chiperteks Ci didekripsikan kembali menjadi blok mi dengan rumus :
mi = Cid mod n
Ketiga proses yang telah dibahas yakni pembangkitan kunci, enkripsi, dan dekripsi
1. Pilih dua bilangan prima yakni p = 10477 dan q = 53887
2. Hitung nilai n = p.q , sehingga nilai n = 564574099
3. Hitung ϕ (n) = (p-1)(q-1), sehingga nilai ϕ (n) = (10477-1)(53887-1) adalah 564509736
4. Kemudian bangkitkan kunci publik (e), dimana nilai e relatif prima terhadap ϕ (n) Nilai GCD(ϕ (n), e) harus bernilai 1. Nilai e yang relatif prima dengan 564509736 adalah 5.
5. Hitung kunci privat (d) dengan menggunakan persamaan 𝑑.e (𝑚o𝑑ϕ (𝑛) ≡ 1.
Tabel 2.5 Tabel Proses Mencari Kunci Privat RSA (d)
Nilai d Persamaan (𝑑.e) 𝑚o𝑑ϕ (𝑛) Hasil
1 (1 . 5) mod 564509736 5
2 (2 . 5) mod 5645509736 10
... ... ...
451607789 (451607789 . 5) mod 5645509736 1
Maka, nilai dari kunci privat (d) yang diperoleh adalah 451607789.
6. Fahry mengirimkan pesan kepada Rozy. Pesan yang akan dikirimkan adalah:
m = SKRIPSI
atau dalam desimal (kode ASCII) adalah :
83758273808373
Kemudian nilai di atas akan dipecah-pecah menjadi blok-blok m. Nilai m
haruslah masih dalam [0, 564574099-1]
m1 = 83 m5 = 80
m2 = 75 m6 = 83
m3 = 82 m7 = 73
Fahry telah mengetahui kunci publik Rozy adalah e = 5 dan n = 564574099. Fahry dapat mengenkripsikan pesan sebagai berikut :
Jadi ciphertext yang akan dihasilkan adalah: 551596049
114750479
319953838
379349296
453929505
551596049
379349296
7. Maka pesan yang telah terenkripsi tersebut akan dikirimkan kepada Rozy,
yang mana Rozy sudah mempunyai kunci privat d = 451607789
8. Setelah itu ciphertext akan didekripsikan oleh Rozy sebagai berikut : m1 = 551596049 . 451607789 mod 564574099 = 83
m2 = 114750479 . 451607789 mod 564574099 = 75
m3 = 319953838 . 451607789 mod 564574099 = 82
m4 = 379349296 . 451607789 mod 564574099 = 73
m5 = 453929505 . 451607789 mod 564574099 = 80
m6 = 551596049 . 451607789 mod 564574099 = 83
m7 = 379349296 . 451607789 mod 564574099 = 73
maka akan dihasilkan kembali :
m = 83758273808373
Yang dalam pengkodean ASCII dapat dibaca sebagai berikut :
m = SKRIPSI
C1 = 835 mod 564574099 = 551596049
C2 = 755 mod 564574099 = 114750479
C3 = 825 mod 564574099 = 319953838
C4 = 735 mod 564574099 = 379349296
C5 = 805 mod 564574099 = 453929505
C6 = 835 mod 564574099 = 551596049
2.8. Tanda Tangan Digital (Digital Signature)
Tanda tangan digital (digital signature) adalah mekanisme otentikasi yang mengijinkan pemilik pesan membubuhkan sebuah sandi pada pesannya yang
bertindak sebagai tanda tangan. Tanda tangan dibentuk dengan mengambil nilai hash
dari pesan dan mengenkripsi nilai hash pesan tersebut dengan kunci privat pemilik pesan.
Jika dalam proses pengiriman pesan saluran komunikasi yang digunakan sudah
aman dan kunci hanya diketahui oleh pihak yang berhak, sekarang masalahnya siapa
yang menjamin bahwa pesan yang dikirim memang berasal dari orang yang berhak.
Atau bagaimana meyakinkan pihak yang akan menerima kiriman data bahwa memang
benar-benar berasal dari pengirim aslinya. Untuk mengatasi validitas pengiriman
tersebutlah digunakan teknologi tanda tangan digital.
Tanda tangan digital berfungsi untuk melakukan validasi terhadap setiap data
yang dikirim. Dalam pengiriman data, walaupun saluran komunikasi yang digunakan
sudah sangat aman, tentu saja perlu diperhatikan validitasnya. Validitas tersebut
berkaitan dengan pertanyaan apakah data yang sampai ke penerima dalam keadaan
utuh dengan aslinya saat dikirim tanpa sedikitpun adanya gangguan-gangguan dari
pihak lain. Teknik yang umum digunakan untuk membentuk tanda-tangan digital
adalah dengan fungsi hash dan melibatkan algoritma kriptografi kunci-publik (Munir, 2004). Fungsi tersebut akan menghasilkan sebuah kombinasi karakter yang unik yang
disebut dengan message digest.
Keunikannya adalah jika di tengah perjalanan data mengalami modifikasi,
penghapusan maupun di sadap diam-diam oleh hacker walaupun hanya 1 karakter saja, maka message digest yang berada si penerima akan berbeda dengan yang dikirimkan pada awalnya. Keunikan lainnya adalah message digest tersebut tidak bisa dikembalikan lagi ke dalam bentuk awal seperti sebelum disentuh dengan fungsi
Gambar 2.9 Skema proses tanda tangan digital (Munir, 2005)
Mekanisme kerja untuk menghasilkan tanda tangan digital tersebut adalah sebagai
berikut:
1. Proses hashing algorithm akan mengambil nilai hash dari pesan yang akan dikirim dan menghasilkan message digest. Kemudian message digest tersebut dienkripsi mengunakan kunci privat dan menghasilkan tanda tangan digital.
2. Kemudian tanda tangan digital tersebut dikirimkan bersama isi pesan tersebut.
3. Sesampainya di penerima, akan dilakukan proses hashing algorithm terhadap pesan tersebut seperti yang dilakukan saat pengiriman. Dari proses tersebut menghasilkan message digest sekunder (MD‟).
4. Secara paralel digital signature yang diterima tadi langsung didekripsi oleh kunci publik. Hasil dekripsi tersebut akan memunculkan message digest yang serupa seperti message digest sebelum dienkripsi oleh pengirim pesan.
Message digest disebut message digest primer (MD).
5. Proses selanjutnya adalah membandingkan message digest primer dengan
message digest primer. Segera mekanisme tanda tangan digital tersebut akan menyampaikan peringatan bahwa telah terjadi pengubahan isi pesan.
SHA-1 menerima masukkan berupa pesan dengan ukuran maksimum adalah
264-bit dan menghasilkan message digest yang panjangnya 160 bit, lebih panjang dari yang dihasilkan oleh MD5 yaitu 128-bit. Langkah-langkah proses SHA-1 secara garis besar adalah sebagai berikut :
1. Penambahan bit-bit pengganjal (padding bits) 2. Penambahan nilai panjang pesan semula
3. Inisialisasi penyangga (buffer) MD
4. Pengelolaan pesan dalam blok berukuran 512 bit.
Mula-mula pesan diberi tambahan untuk membuat panjangnya menjadi
kelipatan 512-bit (L x 512). Jumlah bit data asal adalah K bit. Tambahkan bit „1‟
kemudian tambahkan bit „0‟ secukupnya sampai 64-bit kurangnya dari kelipatan 512 (512 - 64 = 448), yang disebut juga sebagai kongruen dengan 448 (mod 512).
Akhirnya tambahkan 64-bit yang menyatakan panjang pesan sebelum diberi tambahan. Pesan dibagi-bagi menjadi blok-blok berukuran 512-bit dan setiap blok diolah. Keluaran setiap blok digabungkan dengan keluaran blok berikutnya. Sehingga
akhirnya diperoleh digest. Pengubahan satu huruf dapat menghasilkan cipher yang jauh berbeda.
Contoh enkripsi SHA:
Plaintext : “I heard you crying loud all the way accross the town”
Ciphertext : eaeb1b86f6e41c1b40d7c288f6d7fbff3f948a6e Menghilangkan huruf “d” pada kata “heard”
Plaintext: “I hear you crying loud all the way accross the town” akan
menghasilkan:
Ciphertext : d9aee3365c0ef380f4021fd618b4d4ea3ad9e5a4
2.9. Penelitian Terdahulu
Terdapat beberapa penelitian terdahulu yang berkaitan dengan penggunaan kriptografi
sebagai metode pengamanan sistem pemungutan suara elektronik (e-voting). Beberapa penelitian terdahulu dalam penelitian ini akan dijadikan sebagai bahan
acuan agar peneliti dapat memperoleh informasi mengenai topik pembahasan
penelitian yang akan dilakukan. Pada tahun 2012, Polin melakukan penelitian terkait
keamanan informasi pada e-voting secara online dengan menggunakan algoritma kriptografi kunci publik. Algoritma kunci publik yang digunakan Polin adalah
algoritma RSA yang memiliki kelebihan dalam tingkat kerumitan memfaktorkan
bilangan enkripsi, namun tingkat kerumitan yang digunakan Polin masih relatif rendah
dikarenakan keterbatasan bahasa pemrograman yang digunakannya untuk membangun
sistem e-voting. Dyah Ayu pada tahun 2014 menerapkan digital signature pada sistem
e-voting dengan arsitektur rancangan sistem yang lebih kompleks, namun pembatasan masalah yang dibahas Dyah Ayu hanya pada otentikasi keaslian pertukaran data dan
informasi yang digunakan. Di tahun yang sama penggunaan kombinasi algoritma
kunci simetrik dan asimetrik (publik) diajukan oleh Rojali. Kunci simetrik yang
digunakan Rojali adalah algoritma AES, sedangkan kunci asimetrik yang digunakan
adalah RSA. Kombinasi keduanya mampu melindungi data dan informasi dengan
baik, serta memiliki ketahanan terhadap berbagai serangan keamanan informasi.
Namun, terkait penggunaan algoritma yang memiliki tingkat kerumitan dalam
memfaktorkan bilangan yang digunakan oleh Rojali masih relatif rendah,
mengakibatkan kemanan sistem e-voting yang dibangun belum optimal. Hal ini diakui Rojali yang didukung pernyataan dari beberapa ahli bahwa untuk menerapkan
keamanan informasi yang efektif dengan algoritma RSA digunakan kunci dengan