• Tidak ada hasil yang ditemukan

Perancangan Keamanan Informasi Sistem Pemungutan Suara Elektronik (E-Voting) Menggunakan Kombinasi Algoritma AES Dan RSA

N/A
N/A
Protected

Academic year: 2019

Membagikan "Perancangan Keamanan Informasi Sistem Pemungutan Suara Elektronik (E-Voting) Menggunakan Kombinasi Algoritma AES Dan RSA"

Copied!
28
0
0

Teks penuh

(1)

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

(2)
(3)

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

(4)

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 &

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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)

(12)

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

(13)

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.

(14)

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

(15)

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.

(16)

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

(17)

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

(18)

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

(19)

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)

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

Gambar

Gambar 2.1 Skema enkripsi dan dekripsi kunci simetrik (Schneier, 1996)
Gambar 2.2 Skema enkripsi dan dekripsi kunci asimetrik (Schneier, 1996)
Tabel 2.1 Tabel Perbandingan Beberapa Cipher
Tabel 2.2 Tabel Perbandingan panjang kunci AES.
+7

Referensi

Dokumen terkait

Berdasarkan hasil uji hipotesis yang dilakukan maka secara parsial dapat diketahui bahwa kepuasan dan swiching cost memiliki pengaruh yang positif dan signifikan terhadap

Karena kedua tema besar tersebut sesungguhnya berbicara tentang upaya membangun kerukunan antara manusia (perempuan dan laki-laki) dengan tujuan untuk mempertahankan harmoni

Setelah dikocok dan terbentuk 2 lapisan, fraksi diklorometana kemudian diambil dan diberi perlakuan seperti fraksi netral di atas untuk memperoleh fraksi tak

1. Peserta didik belum terlibat dalam proses pembelajaran, sehingga materi yang diberikan menjadi sulit dipahami oleh siswa dan mengakibatkan hasil belajar

menyatakan bahwa ”Skripsi” yang saya buat untuk memenuhi persyaratan kelulusan pada Jurusan Manajemen Fakultas Ekonomi Universitas Islam Negeri (UIN) Maulana

Jika perawat merasa bahwa mereka memiliki peluang untuk mendapatkan pelatihan dan pengembangan, maka tidak hanya membantu memastikan bahwa perawat memiliki keterampilan

Berdasarkan hasil tes Akhir/pos-test dengan menggunakan model pembelajaran make a match bermedia kartu bergambar menunjukan peningkatan yang signifikan setelah anak