122m 04 draftx cryptography

38
Pengamanan Data Sistem Billing Warnet dengan Menggunakan RC4 Stream Cipher Tugas Akhir Proteksi dan Teknik Keamanan Sistem Informasi Oleh: 1. Rahmat Sobari 720400033Y 2. Yoyok Andoyo 720400042X 3. Noni Juliasari 7204000314 4. Galuh Dian Maulana 7204000241 Magister Teknologi Informasi Fakultas Ilmu Komputer Universitas Indonesia Jakarta 2005

Upload: amika-heriputra

Post on 26-Jun-2015

56 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 122M 04 DraftX Cryptography

Pengamanan Data Sistem Billing Warnet dengan

Menggunakan RC4 Stream Cipher

Tugas Akhir

Proteksi dan Teknik Keamanan Sistem Informasi

Oleh:

1. Rahmat Sobari 720400033Y

2. Yoyok Andoyo 720400042X

3. Noni Juliasari 7204000314

4. Galuh Dian Maulana 7204000241

Magister Teknologi Informasi

Fakultas Ilmu Komputer

Universitas Indonesia

Jakarta

2005

Page 2: 122M 04 DraftX Cryptography

ii

Daftar Isi

Page 3: 122M 04 DraftX Cryptography

i

Daftar Gambar

Page 4: 122M 04 DraftX Cryptography

ii

Daftar Tabel

Page 5: 122M 04 DraftX Cryptography

1

Bab I Pendahuluan

I. 1. Latar Belakang Perkembangan sistem manajemen dalam berbagai organisasi selama dasawarsa

terakhir menunjukkan bahwa pemanfaatan teknologi informasi dapat menjadi

penunjang pembuatan keputusan yang baik dan tepat bagi organisasi modern, baik

organisasi pemerintah maupun organisasi swasta. Pemakaian teknologi informasi

sudah menjadi suatu kebutuhan. Dengan komputer banyak pekerjaan dalam

berbagai organisasi dapat diselesaikan dengan lebih cepat, akurat dan efisien.

Namun selain berbagai macam keuntungan yang ditawarkan dengan pemakaian

teknologi informasi tersebut, terdapat bahaya yang ditimbulkan dengan adanya

kemungkinan kebocoran data atau penyalahgunaan data yang dapat berakibat fatal

bagi suatu organisasi untuk mengatasi masalah ini dibutuhkan suatu sistem

pengamanan terhadap jaringan komunikasi, khususnya komunikasi antar komputer

yang dimiliki oleh suatu organisasi.

Dalam komunikasi data, terhadap suatu metode pengamanan data yang dikenal

dengan kriptografi (Cryptography). Kriptografi merupakan suatu metode

pengamanan data yang dapat digunakan untuk menjaga kerahasiaan data, keaslian

atau keutuhan data, serta keaslian pengirim. Metode ini bertujuan agar informasi

penting yang bersifat terbatas atau rahasia yang dikirim melalui sarana

telekomunikasi umum tidak dapat diketahui atau dimanfaatkan oleh pihak yang tidak

berhak.

I. 2. Masalah Dalam kriptografi terdapat berbagai macam sistem sandi (Cryptosystem) yang

memiliki algoritma, tujuan penggunaan dan tingkat kerahasiaan berbeda. Dalam

prakteknya, menentukan algoritma kriptografi yang digunakan menjadi suatu

masalah tersendiri, di sisi lain user menginginkan kemudahan baik itu dari sisi

kerahasiaan, ketepatan, kecepatan maupun biaya yang murah.

Page 6: 122M 04 DraftX Cryptography

2

Kenyataan di lapangan, proses penanganan berita dengan menggunakan metode

kriptografi seringkali membutuhkan waktu yang relatif lebih lama dibandingkan tanpa

proses kriptografi. Untuk itu perlu diciptakan suatu sistem sandi yang relatif cepat

dalam proses penanganan berita tanpa mengabaikan kaidah kerahasiaan yang ingin

dicapai dengan biaya yang relatif murah.

Pengamanan berita tidak hanya sebatas mengupayakan agar berita tersebut tidak

dibaca oleh pihak yang tidak berkepentingan, tetapi juga bagaimana agar data

tersebut tidak dapat dimanipulasi atau dimodifikasi, sehingga dibutuhkan suatu cara

agar diperoleh otentikasi yang meyakinkan terhadap data yang dikirimkan/disimpan.

Isu keamanan data tidak hanya menjadi masalah bagi perusahaan besar.

Perusahaan yang berskala kecil dan menengahpun mempunyai isu yang sama

hanya kadar dan dampak yang ditimbulkannya yang berbeda. Karenanya kriptografi

juga dapat diterapkan untuk membantu usaha pengamanan data-data di

perusahaan. Pemilihan teknik kriptografi yang sesuai dengan kebutuhan menjadi hal

penting yang harus dipertimbangkan. Karenanya dalam makalah ini akan diuraikan

mengenai salah satu teknik kriptografi dan kemungkinan penerapannya dalam

sistem pembayaran suatu UKM.

I. 3. Tujuan Penulisan Penyusunan makalah ini dilaksanakan sebagai salah satu tugas akhir semester

dalam mata kuliah Proteksi dan Teknik Keamanan Sistem Informasi. Sehubungan

dengan hal tersebut, tujuan yang dapat dirangkum dari upaya ini, antara lain:

1. Mempelajari salah satu teknik kriptografi dan kemungkinan penerapannya dalam

salah satu bentuk UKM.

2. Membangun kemampuan untuk menjalin kerjasama kelompok dalam bidang

teknologi informasi.

I. 4. Batasan Pengamanan data dengan teknik enkripsi ini dikenal begitu banyak ragam

algoritmanya, maka dalam penulisan ini akan dibatasi hanya pada penjelasan

singkat algoritma dari RC4 Stream Cipher dan pemanfaatannya sebagai dasar dari

sistem sandi serta analisa kriptografinya. Bentuk UKM yang dipilih adalah warnet.

Page 7: 122M 04 DraftX Cryptography

3

Bab II Teori Kriptografi

II. 1. Kriptografi, Enkripsi, dan Dekripsi 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, dilakukan oleh seorang kriptographer.

Enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode dari yang

bisa dimengerti (plaintext) menjadi sebuah kode yang tidak bisa dimengerti

(ciphertext). Sedangkan proses kebalikannya untuk mengubah ciphertext menjadi

plaintext disebut dekripsi. Sebuah sistem pengkodean menggunakan suatu tabel

atau kamus yang telah didefinisikan untuk mengganti kata atau informasi atau yang

merupakan bagian dari informasi yang dikirim. Secara umum operasi enkripsi dan

dekripsi secara matematis dapat digambarkan sebagai berikut :

EK (M) = C {proses enkripsi}

DK (C) = M {proses dekripsi}

Pada proses enkripsi pesan M dengan suatu kunci K disandikan menjadi pesan C.

Pada proses dekripsi pesan C dengan kunci K disandikan menjadi pesan semula

yaitu M. Misalnya S (sender) mengirim sebuah pesan ke R (receiver) dengan media

transmisi T. Di luar, ada O yang menginginkan pesan tersebut dan mencoba untuk

mengakses secara ilegal pesan tersebut. O disebut interceptor atau intruder. Setelah

S mengirim pesan ke R melalui media T, O bisa mengakses pesan tersebut dengan

cara-cara sebagai berikut :

a. Menganggu pesan, dengan mencegah pesan sampai ke R.

b. Mencegat pesan, dengan cara engetahui isi pesan tersebut.

c. Mengubah pesan dari bentuk aslinya dengan cara apapun.

d. Memalsukan pesan yangterlihat asli, jadi seolah-olah sebuah pesan dikirim oleh

S.

Untuk melindungi pesan asli dari gangguan seperti ini dan menjamin keamanan dan

kerahasiaan data maka mulai dikenal sistem kriptografi untuk melindungi data, yaitu

Page 8: 122M 04 DraftX Cryptography

4

dengan mengenkripsi pesan dan untuk bisa membaca pesan kembali seperti aslinya

pesan harus didekripsi. Kriptografi merupakan cara yang paling praktis untuk

melindungi data yang ditransmisikan melalui sarana telekomunikasi.

II. 2. Pola Penyaringan Transmisi Data Proteksi data/informasi dalam komunikai computer menjadi penting karena nilai

informasi itu sendiri dan meningkatnya penggunaan computer di berbagai sektor.

Melihat pada kenyataan semakin banyak data yang diproses dengan komputer dan

dikirim melalui perangkat komunikasi elektronik maka ancaman terhadap

pengamanan data akan semakin meningkat. Beberapa pola ancaman terhadap

komunikasi data dalam komputer dapat diterangkan sebagai berikut :

1. Interruption

Interception terjadi bila data yang dikirimkan dari A tidak sampai pada orang yang

berhak (B). Interruption merupakan pola penyerangan terhadap sifat availability

(ketersediaan data).

Gambar 2.1: Interruption

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.2: Interception

A B

A B

C

Page 9: 122M 04 DraftX Cryptography

5

3. Modification

Pada serangan ini pihak ketiga C berhasil merubah pesan yang dikirimkan.

Modification merupakan pola penyerangan terhadap sifat integrity (keaslian

data).

Gambar 2.3: 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.4: Fabrication

Ancaman-ancaman tersebut di atas menjadi masalah terutama dengan semakin

meningkatnya komunikasi data yang bersifat rahasia seperti : pemindahan dana

secara elektronik kepada dunia perbankan / pengiriman dokumen rahasia pada

instansi pemerintah. 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.

A B

C

A B

C

Page 10: 122M 04 DraftX Cryptography

6

II. 3. Teknik-teknis Enkripsi dan Dekripsi Enkripsi dan dekripsi diibaratkan seperti dua sisi mata uang. Suatu pesan dibuat seolah tidak bermakna dengan merubahnya menurut prosedur tertentu

(enkripsi), dan dibuat bermakna kembali dengan menggunakan prosedur yang biasanya bersifat kebalikannya (dekripsi). Dalam dunia kriptografi, pesan

yang akan dirahasiakan disebut plaintext, sedangkan bentuk pesan hasil proses

enkripsi disebut ciphertext .

kunci kunci

Gambar 2.5: Proses Enkripsi/dekripsi sederhana

Berikut ini akan dicontohkan prosedur enkripsi dari masing-masing teknik dasar

enkripsi untuk melakukan pengacakan data terhadap plaintext yang sama, yaitu "5

TEKNIK DASAR KRIPTOGRAFI". 1. Subitusi

Langkah pertama dari teknik ini adalah membuat suatu tabel substitusi. Tabel

substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan

memiliki tabel yang sama untuk keperluan dekripsi. Bila tabel substitusi dibuat

secara acak, akan semakin sulit pemecahan ciphertext oleh orang yang tidak

berhak.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 , #

B F 1 K Q G A T P J 6 H Y D 2 X 5 M V 7 C 8 4 I 9 N R E U 3 L S W , # O Z 0

Gambar 2.6: Tabel Substitusi

Tabel substitusi diatas dibuat secara acak. Tanda spas i akan diganti dengan

tanda ‘#’. Dengan menggunakan tabel tersebut, dari plaintext di atas akan

dihasilkan ciphertext "L07Q6DP60KBVBM06MPX72AMBGP". Dengan

menggunakan tabel substitusi yang sama secara dengan arah yang terbalik

(reverse), plaintext dapat diperoleh kembali dari ciphertext-nya.

enkripsi dekripsi plaintext plaintext ciphertext

Page 11: 122M 04 DraftX Cryptography

7

2. Blocking

Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari

beberapa karakter yang kemudian dienkripsikan secara independen. Plaintext

yang dienkripsikan dengan menggunakan teknik blocking adalah :

Gambar 2.7: Enkripsi dengan Blocking

Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk

penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan

teknik ini. Plaintext d ituliskan secara vertikal ke bawah berurutan pada lajur, dan

dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis. Ciphertext-nya

adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan

blok-nya. Jadi ciphertext yang dihasilkan dengan teknik ini adalah "5K G

KRTDRAEAIFKSPINAT IRO". Plaintext dapat pula ditulis secara horizontal dan

ciphertextnya adalah hasil pembacaan secara vertikal.

3. Permutasi

Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga

disebut transposisi. Teknik ini memindahkan atau merotasikan karakter dengan

aturan tertentu. Prinsipnya adalah berlawanan dengan teknik substitusi. Dalam

teknik substitusi, karakter berada pada posisi yang tetap tapi identitasnya yang

diacak. Pada teknik permutasi, identitas karakternya tetap, namun posisinya yang

diacak. Sebelum dilakukan permutasi, umumnya plaintext terlebih dahulu dibagi

menjadi blok-blok dengan panjang yang sama.

Untuk contoh diatas, plaintext akan dibagi menjadi blok-blok yang terdiri dari 6

karakter, dengan aturan permutasi sebagai berikut :

Page 12: 122M 04 DraftX Cryptography

8

Plainte

xt

Ciphertex

Gambar 2.8: Permutasi

Dengan menggunakan aturan diatas, maka proses enkripsi dengan permutasi

dari plaintext adalah sebagai berikut :

Gambar 2.9: Proses Enkripsi dengan Permutasi

Ciphertext yang dihasilkan dengan teknik permutasi ini adalah "N ETK5 SKD

AIIRK RAATGORP FI".

4. Ekspansi

Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan

pesan itu dengan aturan tertentu. Salah satu contoh penggunaan teknik ini

adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi

awal dari suatu kata di akhir kata itu dan menambahkan akhiran "an". Bila suatu

kata dimulai dengan huruf vokal atau bilangan genap, ditambahkan akhiran "i".

Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai berikut :

Page 13: 122M 04 DraftX Cryptography

9

5 T E K N I K D A S A R K R I P T O G R A F I

Ciphertext yang dihasilkan

5 A N E K N I K T A N A S A R D A N R I P T O G R A F I K A N

Gambar 2.10: Enkripsi dengan Ekspansi

Ciphertextnya adalah "5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN". Aturan

ekspansi dapat dibuat lebih kompleks. Terkadang teknik ekspansi digabungkan

dengan teknik lainnya, karena teknik ini bila berdiri sendiri terlalu mudah untuk

dipecahkan.

5. Pemampatan (Compaction)

Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk

menyembunyikan isi pesan. Contoh sederhana ini menggunakan cara

menghilangkan setiap karakter ke-tiga secara berurutan. Karakter-karakter yang

dihilangkan disatukan kembali dan disusulkan sebagai "lampiran" dari pesan

utama, dengan diawali oleh suatu karakter khusus, dalam contoh ini digunakan

"&". Proses yang terjadi untuk plaintext kita adalah :

5 T E K N I K D A S A R K R I P T O G R A F I

5 E K I K D A A R K R P T G R F I

T N S I O A

5 E K I K D A A R K R P T G R F I & T N S I O A

Gambar 2.11: Enkripsi dengan Pemampatan

Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai

pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext

kembali.

Dengan menggunakan kelima teknik dasar kriptografi diatas, dapat diciptakan

kombinasi teknik kriptografi yang amat banyak, dengan faktor yang membatasi

semata-mata hanyalah kreativitas dan imajinasi kita. Walaupun sekilas terlihat

sederhana, kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi

plaintext

Ciphertext

Pesan yang dihilangkan

Pesan yang dimampatkan

plaintext

Page 14: 122M 04 DraftX Cryptography

10

turunan yang cukup kompleks, dan beberapa teknik dasar kriptografi masih

digunakan dalam kriptografi modern.

II. 4. Kriptosistem Kriptosistem ( Cryptosystem atau cryptographic system ) adalah suatu fasilitas untuk

mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini,

seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut

suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci

kriptografi. Secara umum, kunci–kunci yang digunakan untuk proses pengenkripsian

dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan.

Suatu cryptosystem terdiri dari sebuah algoritma, seluruh kemungkinan plaintext,

ciphertext dan kunci-kunci. Secara umum cryptosystem dapat digolongkan menjadi

dua buah , yaitu :

1. Symmetric cryptosystem

Dalam symmetric cryptosystem ini, kunci yang digunakan untuk proses enkripsi

dan dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat pula diturunkan

dari kunci yang lainnya. Kunci – kunci ini harus dirahasiakan. Oleh sebab itu

sistem ini sering disebut sebagai secret key cipher system. Contoh dari sistem ini

adalah Data Encryption Standard ( DES ), Blowfish, IDEA.

Plaintext enkripsi ciphertext dekripsi plaintext

User A user B Kunci ( key )

Gambar 2.12: Symmetric cryptosystem

2. Assymmetric cryptosystem

Dalam assymmetric cryptosystem ini digunakan dua buah kunci. Satu kunci yang

disebut kunci publik (public key) dapat dipublikasikan, sedang kunci yang lain

yang disebut kunci privat (private key) harus dirahasiakan. Proses menggunakan

sistem ini dapat diterangkan secara sederhana sebagai berikut: bila A ingin

mengirimkan pesan kepada B, A dapat menyandikan pesannya dengan

menggunakan kunci publik B, dan bila B ingin membaca pesan tersebut , ia perlu

mendekripsikannya dengan kunc i privatnya. Dengan demikian kedua belah pihak

dapat menjamin asal pesan serta keaslian pesan tersebut, karena adanya

Page 15: 122M 04 DraftX Cryptography

11

mekanisme ini. Contoh dari sistem ini antara lain RSA Scheme dan Merkle-

Hellman Scheme.

Plaintext enkripsi ciphertext dekripsi plaintext

User A user B private key

public key

Gambar 2.13: Assymmetric cryptosystem

II. 5. Cipher dalam Enkripsi dan Dekripsi Secara umum dalam proses enkripsi dan dekripsi dikenal dua macam cipher

berdasarkan cara kerja penyandiannya, yaitu :

1. Stream Cipher

Stream cipher adalah suatu sistem dimana proses enkripsi dan dekripsinya

dilakukan dengan cara bit per bit. Pada sistem ini aliran bit kuncinya dihasilkan

oleh suatu pembangkit bit acak. Aliran kunci ini dikenakan operasi XOR dengan

aliran bit – bit dari plaintext untuk menghasilkan aliran bit – bit ciphertext. Pada

proses dekripsi alliran bit ciphertext dikenakan operasi XOR dengan aliran bit

kunci yang identik untuk menghasilkan plaintext.

Keamanan dari sistem ini tergantung dari pembangkit kunci, jika pembangkit

kunci menghasilkan aliran bit – bit 0 maka ciphertext yang dihasilkan akan sama

dengan plaintext, sehingga seluruh operasi akan menjadi tidak berguna oleh

karena itu diperlukan sebuah pembangkit kunci yang dapat menghasilkan aliran

bit – bit kunci yang acak dan tidak berulang. Semakin acak aliran kunci yang

dihasilkan oleh pembangkit kunci, maka ciphertext akan semakin sulit

dipecahkan.

Page 16: 122M 04 DraftX Cryptography

12

Gambar 2.14: Sistem stream cipher

2. Block Cipher

Sistem block cipher mengkodekan data dengan cara memebagi plaintext menjadi

per blok dengan ukuran yang sama dan tetap. Kemudian setiap bloknya

dienkripsi atau didekripsi sekaligus. Cara ini bekerja lebih cepat karena plaintext

dibagi atas beberapa blok. Biasanya proses enkripsi dan dekripsi dilakukan

dalam ukuran blok tertentu.

Transposisi merupakan contoh dari penggunaan block cipher. Pada transposisi

kolumnar dengan menggunakan matriks, pesan diterjemahkan sebagai satu blok.

Ukuran blok yang dibutuhkan tidak memiliki kesamaan dengan ukuran sebuah

karakter. Block cipher bekerja pada blok plaintext dan menghasilkan blok – blok

ciphertext.

Gambar 2.15: Sistem block cipher

Y

encryption plaintext ciphertext

Key (optional)

ISSOPMI wdhuw…

Key (optional)

XN OI TP YR CN ES ba

qc kd em mc

IH

plaintext encryption

ciphertext

Page 17: 122M 04 DraftX Cryptography

13

Bab III RC4

III. 1. RC4 Stream Cipher RC4 merupakan salah satu jenis stream cipher yang didesain oleh Ron Rivest di

laboratorium RSA ( RSA Data Security inc ) pada tahun 1987. RC4 sendiri

merupakan kepanjangan dari Ron Code atau Rivest’s Cipher. RC4 stream cipher ini

merupakan teknik enkripsi yang dapat dijalankan dengan panjang kunci yang

variabel dan beroperasi dengan orientasi byte.

Algoritma yang sesungguhnya tidak dipatenkan oleh RSADSI, hanya saja tidak

diperdagangkan secara bebas sampai sekarang. Namun pada bulan September

1994 ada seseorang yang telah mengirimkan sebuah source code yang diyakini

sebagai RC4 ke mailinglist Cypherpunks dan keberadaannya pun langsung tersebar.

Karena algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4

pada produk resmi.

III. 2. Algoritma RC4 Stream Cipher RC4 mempunyai sebuah S-Box, S0,S1,……,S255, yang berisi permutasi dari bilangan

0 sampai 255.Menggunakan dua buah indeks yaitu i dan j di dalam algoritmanya.

Indeks I digunakan untuk memastikan bahwa suatu elemen berubah, sedangkan

indeks j akan memastikan bahwa suatu elemen berubah secara random. Intinya,

dalam algoritma enkripsi metode ini akan membangkitkan pseudorandom byte dari

key yang akan dikenakan operasi Xor terhadap plaintext untuk menghasilkan

ciphertext. Dan untuk menghasilkan plaintext semula, maka ciphertext nya akan

dikenakan operasi Xor terhadap pseudorandom bytenya. Berikut ini akan diberikan

sebuah bagan yang menggambarkan rangkaian proses yang dijalankan untuk

mengenkripsi atau mendekripsi data.

Page 18: 122M 04 DraftX Cryptography

14

Gambar 3.1: Rangkaian proses RC4 Stream Cipher

Secara garis besar algoritma dari metode RC4 Stream Cipher ini terbagi menjadi dua

bagian, yaitu : key setup dan stream generation. Berikut ini akan dijelaskan bagian-

bagian dari algoritma RC4 Stream Cipher tersebut disertai dengan penerapannya

sebagai berikut :

Plaintext : enkripsi

Ascii plaintext : 101 110 107 114 105 112 115 105

Key : mahabbah

Ascii key : 109 97 104 97 98 98 97 104

a. Key Setup

Pada bagian ini, terdapat tiga tahapan proses di dalamnya, yaitu:

1) Inisialisasi S-Box

Pada tahapan ini, S-Box akan diisi dengan nilai sesuai indeksnya untuk

mendapatkan S-Box awal. Algoritmanya adalah sebagai berikut:

a) Untuk i = 0 sampai i = 255 lakukan

b) Isikan S ke i dengan nilai i

c) Tambahkan i dengan 1, kembali ke 2.

Generate Pseudorandom byte stream

Permutasi untuk S - Box

Simpan Key dalam key

byte array

Inisialisasi S – Box

Page 19: 122M 04 DraftX Cryptography

15

Dari algoritma di atas akan didapat urutan nilai S-Box sebagai berikut:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159

160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175

176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207

208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223

224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239

240 240 241 242 243 245 246 247 248 249 250 251 252 253 254 255

2) Menyimpan key dalam Key Byte Array

Pada tahapan ini, kunci ( key) yang akan kita gunakan untuk mengenkripsi

atau dekripsi akan dimasukkan ke dalam array berukuran 256 byte secara

berulang sampai seluruh array terisi. Algoritmanya adalah sebagai berikut :

a) Isi j dengan 1

b) Untuk i = 0 sampai i = 255 lakukan

c) Jika j > panjang kunci maka

d) J diisi dengan nilai 1

e) Akhir jika

f) Isi K ke i dengan nilai Ascii karakter kunci ke j

g) Nilai j dinaikkan 1

h) Tambahkan i dengan 1, kembali ke 2

Page 20: 122M 04 DraftX Cryptography

16

Dari algoritma tersebut akan didapat urutan array key sebagai berikut :

109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104 109 97 104 97 98 98 97 104

3) Permutasi pada S-Box

Pada tahapan ini, akan dibangkitkan sebuah nilai yang akan dijadikan aturan

untuk permutasi pada S-Box. Misalkan untuk nilai i = 2 dihasilkan nilai j =

26 , maka nilai pada S(2) akan ditukar dengan nilai pada S(26). Algoritmanya

adalah sebagai berikut :

a) Isi nilai j dengan 0

b) Untuk i = 0 sampai i = 255 lakukan

c) Isi nilai j dengan hasil operasi ( j + S( i ) + K( i )) mod 256

d) Swap S( i ) dan S( j )

e) Tambahkan i dengan 1, kembali ke 2.

Dari algoritma tersebut akan diperoleh nilai S-Box yang yang telah

mengalami proses transposisi sehingga urutannya sekarang adalah sebagai

berikut :

Page 21: 122M 04 DraftX Cryptography

17

109 26 57 76 157 245 52 49 181 31 45 103 84 240 73 192 61 235 28 98 3 205 160 128 130 59 22 38 92 122 137 30

247 121 4 135 156 148 231 170 228 16 68 208 159 53 210 20 176 168 220 214 136 19 87 42 120 219 27 169 183 116 200 96 204 110 64 216 89 222 44 126 105 213 164 188 23 47 194 33 209 65 162 142 107 195 119 80 166 238 237 72 246 102 243 241 35 40 77 215 141 100 74 115 146 56 189 163 113 55 67 229

236 185 83 46 18 140 118 50 233 248 99 8 172 203 54 132 13 124 152 252 151 153 147 139 179 190 82 154 224 161 86 0 34 149 29 225 78 14 48 158 25 104 150 184 218 187 95 193 79 43 155 223 143 232 177 251 66 114 202 10 9 88 6 226

239 250 178 71 106 51 11 60 125 242 17 90 197 91 249 173 94 15 201 101 108 234 227 41 75 117 165 174 230 138 207 62 70 244 129 145 182 131 112 7 171 253 111 198 134 180 167 211 39 255 2 1 32 85 254 21 63 217 212 175 12 93 123 191 36 186 37 133 144 24 69 81 206 5 196 199 97 221 58 127

b. Stream Generation

Pada tahapan ini akan dihasilkan nilai pseudorandom yang akan dikenakan

operasi XOR untuk menghasilkan ciphertext ataupun sebaliknya yaitu untuk

menghasilkan plaintext. Algoritmanya adalah sebagai berikut:

1) Isi indeks i dan j dengan nilai 0

2) Untuk i = 0 sampai i = panjang plaintext

3) Isi nilai i dengan hasil operasi ( i + 1 ) mod 256

4) Isi nilai j dengan hasil operasi ( j + S( i ) ) mod 256

5) Swap S( i ) dan S( j )

6) Isi nilai t dengan hasil operasi ( S( I ) + (S( j ) mod 256)) mod 256

7) Isi nilai y dengan nilai S( t )

8) Nilai y dikenakan operasi XOR terhadap plaintext

9) Tambahkan i dengan 1, kembali ke 2.

Dengan demikian akan dihasilkan ciphertext sebagai berikut :

Õ G Ó • • [ Ð

Page 22: 122M 04 DraftX Cryptography

18

III. 3. Penjabaran Proses Enkripsi dan Dekripsi RC4 Stream Cipher Pada metode ini, proses enkripsi akan berjalan sama dengan proses dekripsinya

sehingga hanya ada satu fungsi yang dijalankan untuk menjalankan kedua proses

tersebut. Langkah- langkah yang akan diempuh oleh program dalam menjalankan

kedua proses tersebut meliputi hal-hal berikut ini :

a. User memasukkan secret key yang akan digunakan dalam proses

enkripsi/dekripsi.

b. Lakukan proses inisialisasi awal S-Box berdasarkan indeksnya.

c. Simpan secret key yang telah dimasukkan user ke dalam array 256 byte

secara berulang sampai array terisi penuh.

d. Bangkitkan nilai pseudorandom berdasarkan nilai key sequence.

e. Lakukan proses permutasi/transposisi nilai dalam S-Box selama256 kali.

f . Bangkitkan nilai pseudorandom key byte stream berdasarkan indeks dan nilai

S-Box.

g. Lakukan operasi XOR antara plaintext /ciphertext dan pseudorandom key

byte stream untuk menghasilkan ciphertext/plaintext.

III. 4. Masalah RC4 Stream Cipher Permasalahan yang didapati dalam penerapan metode RC4 Stream Cipher ini

merupakan kelemahan yang terdapat pada metode itu sendiri, antara lain :

a. Terlalu tingginya kemungkinan terjadi S-Box yang sama karena nilai

pseudorandom yang sama seringkali dibangkitkan berulang, hal ini terjadi

karena kunci user diulang-ulang untuk mengisi 256 bytes array. Meskipun

metode ini memungkinkan penggunaan variabel yang panjangnya dapat

mencapai 256 karakter/byte namun pada kenyataannya jarang sekali ada

yang menggunakan kunci sepanjang itu, selain karena sulit mencari

kombinasinya juga sulit untuk mengingatnya. Sehingga jika kunci yang

digunakan sebanyak 8 byte misalnya, maka kunci ini akan diulang sebanyak

32 kali untuk mengisi key byte array sampai penuh.

b. Enkripsi RC4 adalah XOR antara data bytes dan pseudorandom byte stream

yang dihasilkan dari kunci, maka penyerang akan mungkin untuk menentukan

beberapa byte pesan orisinal dengan meng-XOR dua set cipher byte, bila

beberapa byte plaintext diketahui ( atau mudah ditebak ). Diasumsikan A

berhasil menyadap dua buah message berbeda yang dienkripsi

menggunakan algoritma stream cipher dengan menggunakan kunci yang

sama. A kemudian meng-XOR-kan kedua ciphertext yang berhasil

Page 23: 122M 04 DraftX Cryptography

19

disadapnya untuk menghilangkan pengaruh rangkaian kunci. Jika A berhasil

mengetahui plaintext dari salah satu message terenkripsi tersebut maka A

akan dengan mudah menemukan plaintext message yang lain tanpa

mengetahui rangkaian kuncinya :

Plaintext 1 : 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1

Key : 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1

Ciphertext 1 : 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0

Plaintext 2 : 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1

Key : 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1

Ciphertext 2 : 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0

Ciphertext 1 : 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0

Ciphertext 2 : 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0

1 1 0 1 1 1 1 0 1 1 0 1 0 0 0 0

Plaintext 1 : 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1

0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 plaintext 2

III. 5. Pemecahan Masalah Untuk mengatasi permasalahan di atas , terdapat beberapa cara yang bisa dilakukan

antara lain :

a. Gunakanlah kunci yang panjang (minimal panjang kunci • 3 karakter dan

maksimal • 255 karakter) agar kemungkinan kunci dimasukkan berulang

dalam key byte array semakin kecil dan gunakan kombinasi yang berlainan.

b. Usahakan untuk tidak menggunakan kunci yang sama untuk mengenkripsi

file yang berbeda.

c. Jika kita akan menggunakan kunci yang sama untuk setiap kali

mengenkripsi file, maka diperlukan Initialization Vector ( IV ) pada secret

key. Jika IV yang digunakan untuk setiap kali proses enkripsi dijalankan

tidak pernah sama maka akan dihasilkan ciphertext yang berbeda meskipun

dienkrip plaintext yang sama.

Page 24: 122M 04 DraftX Cryptography

20

d. Mengacak (mengubah susunan) plaintext sebelum diubah ke dalam cipher ,

sehingga jika seorang pengganggu memperoleh 1 byte data dari plaintext

maka ia tidak dapat memperoleh data yang lainnya dengan cara meng-

XOR-kan dua buah ciphertext dan byte data yang ia ketahui.

e. Mengubah metode pengisian key ke dalam key array. Caranya adalah key

cukup diisikan sekali dalam array kemudian sisa variabel array key yang

lainnya akan diisi dengan nilai yang dibangkitkan secara random.

Berdasarkan keterangan di atas, dapat dilihat bahwa ada beberapa cara yang dapat

digunakan sebagai solusi dari kekurangan yang terdapat dalam metode RC4 Stream

Cipher.

Dalam makalah ini, metode enkripsi tersebut akan diterapkan dalam suatu database

sistem billing suatu warbet sehingga pengembangan algoritmanya juga diusahakan

untuk dapat mengikuti karakteristik database yang memungkinkan proses search

dan save . Proses enkripsi dijalankan setiap kali proses save dijalankan. Sedangkan

proses dekripsi dijalankan setiap kali proses search dipanggil. Untuk proses save

tidak ada masalah yang ditemui dalam penerapan metode ini baik dengan

pengembangan algoritma apapun, namun dalam proses search harus

dipertimbangkan pula kecepatan prosesnya. Jika menggunakan Initialization Vector

program akan melakukan pencarian secara sequensial karena IV yang dibangkitkan

secara random sudah pasti tidak dapat diprediksikan sehingga untuk mencari suatu

data kita harus mengenkripsi data yang dijadikan primary key tersebut untuk

kemudian dicarikan data yang sesuai dengannya dalam database satu persatu. Dan

proses inilah yang dapat memperlambat jalannya program, dibandingkan dengan

pencarian berdasarkan indeks yang dapat lebih cepat prosesnya. Dan kelemahan

kedua yang terdapat dalam pengembangan algoritma dengan IV adalah data yang

telah dienkripsi akan mengalami pengembangan size karena IV yang digunakan

untuk enkripsi akan digabungkan bersama ciphertext agar dipergunakan IV yang

sama untuk proses dekripsinya.

Setiap nasabah peminjam modal pada Baitul Maal Wat Tamwil Al-Ukhuwah memiliki

nomor rekening yang unik sehingga nomor rekening nasabah satu dan yang lainnya

akan berbeda. Nomor rekening inilah yang nantinya akan dijadikan sebagai primary

key dalam database. Melihat keistimewaan nomor rekening tersebut maka penulis

mengambil langkah untuk menggunakan bagian nomor rekening yang tidak pernah

berulang untuk dijadikan sebagai nilai seed yang kemudian akan dikenakan fungsi

Page 25: 122M 04 DraftX Cryptography

21

randomize yang disediakan oleh bahasa pemrograman yang digunakan. Setelah itu

akan dibangkitkan nilai random untuk mengisi sisa key byte array yang telah diisi key

satu kali. Dengan menggunakan bagian nomor rekening tersebut kita tidak perlu

menyimpan nilai seed yang kita gunakan dalam ciphertext karena jika suatu saat

data berdasarkan nomor rekening tertentu akan didekripsi maka nilai seed cukup

diambil dari indeks datanya (nomor rekening). Untuk nilai seed yang sama akan

dibangkitkan urutan nilai random yang sama, namun bila nilai seednya berbeda

maka hasil angka randomnya juga akan berbeda. Karena nomor rekening yang

dimiliki nasabah tidak pernah sama maka jika ditemui data nama, alamat, jumlah

pinjaman maupun tempo peminjaman yang sama akan dihasilkan ciphertext yang

berbeda.

III. 6. Algoritma Password Dalam pengembangannya, algoritma enkripsi dan dekripsi tidak dapat berdiri sendiri.

Yaitu dilengkapi juga dengan algoritma password. Algoritma password diletakkan

sebelum user melakukan input data nasabah. Maksudnya agar program hanya bias

diakses oleh orang yang berhak saja yang mengetahui password dari program.

Untuk lebih jelasnya, akan diuraikan algoritma password dari program tersebut di

bawah ini

key = “mahabbah”

Jika user id <> “noni” maka

Tampilkan pesan “ Maaf, Anda tidak punya hak!!!” Jika user id = “noni” maka

Cek apakah password = key Jika sama maka

Tutup form password Tampilkan form pencetakan tagihan

Selain itu Tampilkan pesan “ Maaf,password Anda salah”

Ulangi input password

Akhir jika Akhir jika

Page 26: 122M 04 DraftX Cryptography

22

Pertama kali user akan menginput user id pada txtuser kemudian menginput

password pada txtpwd. Pada saat tombol Masuk ke Program ditekan maka program

akan mengecek validasi user id dan password yang dimasukkan. Jika user id dan

password yang dimasukkan benar maka form entry data nasabah akan ditampilkan.

Tapi jika user id dan password yang dimasukkan salah maka program akan terus

mengulang sampai data user id dan password yang dimasukkan benar atau user

bisa keluar dari program dengan menekan tombol Exit.

III. 7. Pengembangan Algoritma RC4 Stream Cipher Pengembangan algoritma dari RC4 Stream cipher di sini akan dilakukan dengan

cara membangkitkan nilai random untuk pengisian key byte array sehingga pengisian

key ke dalam array tidak berulang dan dalam penerapannya akan dipadukan dengan

teknik dasar enkripsi blocking untuk mengacak susunan plainteks sebelum diubah ke

dalam ciphertext.Misalkan :

Plaintext : enkripsi

Ascii plaintext : 101 110 107 114 105 112 115 105

Key : mahabbah

Ascii key : 109 97 104 97 98 98 97 104

Nilai seed : 57

a. Algoritma enkripsi

Proses enkripsi terdiri atas tahapan, antara lain :

1) Random Number Generator

Akan diambil sebuah nilai yang akan dijadikan “seed”. Kemudian

dibangkitkan nilai random berdasarkan nilai “seed” ini. Algoritmanya adalah

sebagai berikut :

a) Kerjakan fungsi Rnd -1

b) Kerjakan fungsi Randomize dengan nilai seed yang diambil.

2) Inisialisasi S-Box

Pada tahapan ini, S-Box akan diisi dengan nilai sesuai indeksnya untuk

mendapatkan S-Box awal. Algoritmanya adalah sebagai berikut :

a) Untuk i = 0 sampai i = 255 lakukan

b) Isikan S ke i dengan nilai i

c) Tambahkan i dengan 1 , kembali ke 1.

Page 27: 122M 04 DraftX Cryptography

23

Dari algoritma di atas akan didapat urutan nilai S-Box sebagai berikut:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

3) Menyimpan key dalam key byte array

Pada tahapan ini, kunci ( key ) yang akan kita gunakan untuk mengenkripsi

atau dekripsi akan dimasukkan ke dalam array berukuran 256 byte hanya

sekali saja, kemudian sisa array lainnya akan diisikan dengan nilai random

yang dibangkitkan oleh mesin seluruh array terisi. Algoritmanya adalah

sebagai berikut :

a) Isi j dengan 1

b) Untuk i = 0 sampai i = 255 lakukan

c) Jika j <= panjang kunci maka

d) Isi K ke i dengan nilai Ascii karakter key ke j

e) Selain itu

f) Isi K ke i dengan nilai random

g) Akhir jika

h) Nilai j dinaikkan 1

i) Tambahkan i dengan 1 kemudian kembali ke 2.

Page 28: 122M 04 DraftX Cryptography

24

Dari algoritma di atas akan diperoleh urutan nilai sebagai berikut:

109 97 104 97 98 98 97 104 68 244 221 33 137 47 81 154 224 26 252 158 7 85 136 128 15 111 221 216 66 100 149 41 41 101 176 192 231 215 137 223 205 159 9 28 41 158 26 4 94 119 94 3 58 152 34 135 131 120 141 99 211 30 30 114

166 226 85 125 178 119 175 95 119 41 216 103 22 100 29 254 102 118 32 138 69 149 206 145 44 36 150 34 7 50 212 113 67 68 140 193 40 84 94 135 105 25 180 203 249 137 65 210 33 156 167 251 207 84 120 231 50 249 97 221 131 170 160 109 39 118 191 83 241 118 124 158 203 247 7 17 122 22 112 201

182 116 95 33 130 219 6 210 187 130 84 95 241 141 107 175 119 211 85 252 182 229 242 237 198 76 53 255 64 18 144 42 78 131 173 192 4 53 95 152 242 69 216 108 249 227 28 128 95 19 181 132 31 170 169 188 131 159 169 94 243 133 139 60 16 83 250 162 252 103 109 130 253 202 86 206 67 181 155 38 6 85 74 179 211 203 135 83 39 120 202 245 61 119 72 72

37 107 175 143 22 122 23 215 5 153 52 78 118 11 207 233

4) Permutasi pada S – Box

Pada tahapan ini, akan dibangkitkan nilai pseudorandom yang akan dijadikan aturan untuk permutasi pada S-Box. Misalkan untuk nilai i = 2

dihasilkan nilai j = 26 , maka nilai pada S(2) akan ditukar dengan nilai

pada S(26). Algoritmanya adalah sebagai berikut : a) Isi nilai j dengan 0

b) Untuk i = 0 sampai i = 255 lakukan c) Isi nilai j dengan hasil operasi ( j + S( i ) + K( i )) mod 256

d) Swap S( i ) dan S( j ) e) Tambahkan i dengan 1 kemudian kembali ke 2.

Page 29: 122M 04 DraftX Cryptography

25

Dari algoritma di atas akan diperoleh urutan nilai sebagai berikut: 234 51 57 4 24 106 209 37 140 23 40 29 49 0 198 44 101 144 158 45 225 212 33 50 185 63 41 194 109 69 219 124 169 75 96 28 156 64 182 188 177 121 172 97 72 79 91 142 157 60 137 206 165 215 95 136 67 152 132 129 165 81 232 153 70 105 94 108 104 31 85 192 15 183 250 130 134 53 211 191

208 116 13 141 133 34 20 78 11 71 181 164 238 138 229 61 59 199 251 2 240 7 257 115 159 178 126 222 90 196 3 201 1 207 223 27 8 205 200 236 10 12 46 73 151 120 168 202

220 36 235 193 111 231 233 122 9 110 125 249 203 58 19 227 214 147 93 25 180 255 228 82 118 74 62 226 107 55 175 32 84 56 210 113 166 26 155 117 243 254 186 35 42 204 76 21

190 112 18 128 145 86 127 170 65 48 149 6 237 88 83 239 80 143 162 242 213 171 192 98 47 119 217 176 14 218 77 244

173 30 100 154 252 99 179 22 163 87 160 52 253 123 224 248 43 5 139 148 146 187 103 245 230 174 66 114 89 39 102 247 16 241 38 17 150 92 131 189 221 246 184 161 68 54 197 216

5) Teknik blok

Pada tahapan ini, plaintext awal akan diubah susunannya mengikuti teknik

blocking.plaintext akan disusun secara vertical menurut baris kemudian akan

dibaca secara horizontal menurut kolom. Algoritmanya adalah sebagai berikut

:

a) Hitung panjang plaintext

b) Buat kolom yang masing-masing berisi 5 baris sepanjang plaintext.

c) Isikan plaintext menurut baris, hasilnya sebagai berikut :

e p

n s

k i

r

i

d) Baca plaintext menurut kolom, hasilnya adalah :

e p n s k i r i

Sebut saja hasilnya cipher1.

Page 30: 122M 04 DraftX Cryptography

26

6) Stream generation

Pada tahapan ini akan dihasilkan nilai pseudorandom yang akan dikenakan

operasi XOR untuk menghasilkan ciphertext ataupun sebaliknya yaitu untuk

menghasilkan plaintext. Algoritmanya adalah sebagai berikut :

a) Isi indeks i dan j dengan nilai 0

b) Untuk i = 0 sampai i = panjang cipher1.

c) Isi nilai i dengan hasil operasi ( i + 1 ) mod 256

d) Isi nilai j dengan hasil operasi ( j + S( i ) ) mod 256

e) Swap S( i ) dan S( j )

f) Isi nilai t dengan hasil operasi ( S( I ) + (S( j ) mod 256)) mod 256

g) Isi nilai y dengan nilai S( t )

h) Nilai y dikenakan operasi XOR terhadap plaintext untuk menghasilkan

ciphertext

i) Tambahkan i dengan 1 kemudian kembali ke 2.

Dari algoritma di atas akan diperoleh ciphertext sebagai berikut :

« I ζ 8 ½ , o Ý

b. Algoritma dekripsi

Hampir sama dengan algoritma dekripsi,yaitu :

Proses dekripsi terdiri atas tahapan, antara lain :

1) Random Number Generator

Akan diambil sebuah nilai yang akan dijadikan “seed”. Kemudian

dibangkitkan nilai random berdasarkan nilai “seed” ini. Algoritmanya adalah

sebagai berikut :

a) Kerjakan fungsi Rnd -1

b) Kerjakan fungsi Randomize dengan nilai seed yang diambil.

2) Inisialisasi S-Box

Pada tahapan ini, S-Box akan diisi dengan nilai sesuai indeksnya untuk

mendapatkan S-Box awal. Algoritmanya adalah sebagai berikut :

a) Untuk i = 0 sampai i = 255 lakukan

b) Isikan S ke i dengan nilai I

c) Tambahkan i dengan 1 , kembali ke 1.

Page 31: 122M 04 DraftX Cryptography

27

Dari algoritma di atas akan didapat urutan nilai S-Box sebagai berikut:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159

160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175

176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207

208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223

224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239

240 240 241 242 243 245 246 247 248 249 250 251 252 253 254 255

3) Menyimpan key dalam key byte array

Pada tahapan ini, kunci ( key ) yang akan kita gunakan untuk mengenkripsi

atau dekripsi akan dimasukkan ke dalam array berukuran 256 byte hanya

sekali saja, kemudian sisa array lainnya akan diisikan dengan nilai random

yang dibangkitkan oleh mesin seluruh array terisi. Algoritmanya adalah

sebagai berikut :

a) Isi j dengan 1

b) Untuk i = 0 sampai i = 255 lakukan

c) Jika j <= panjang kunci maka

d) Isi K ke i dengan nilai Ascii karakter key ke j

e) Selain itu

f) Isi K ke i dengan nilai random

g) Akhir jika

h) Nilai j dinaikkan 1

i) Tambahkan i dengan 1 kemudian kembali ke 2.

Page 32: 122M 04 DraftX Cryptography

28

Dari algoritma di atas akan diperoleh urutan nilai sebagai berikut :

109 97 104 97 98 98 97 104 68 244 221 33 137 47 81 154 224 26 252 158 7 85 136 128 15 111 221 216 66 100 149 41 41 101 176 192 231 215 137 223 205 159 9 28 41 158 26 4 94 119 94 3 58 152 34 135 131 120 141 99 211 30 30 114

166 226 85 125 178 119 175 95 119 41 216 103 22 100 29 254 102 118 32 138 69 149 206 145 44 36 150 34 7 50 212 113 67 68 140 193 40 84 94 135 105 25 180 203 249 137 65 210 33 156 167 251 207 84 120 231 50 249 97 221 131 170 160 109 39 118 191 83 241 118 124 158 203 247 7 17 122 22 112 201

182 116 95 33 130 219 6 210 187 130 84 95 241 141 107 175 119 211 85 252 182 229 242 237 198 76 53 255 64 18 144 42 78 131 173 192 4 53 95 152 242 69 216 108 249 227 28 128 95 19 181 132 31 170 169 188 131 159 169 94 243 133 139 60 16 83 250 162 252 103 109 130 253 202 86 206 67 181 155 38 6 85 74 179 211 203 135 83 39 120 202 245 61 119 72 72

37 107 175 143 22 122 23 215 5 153 52 78 118 11 207 233

4) Permutasi pada S – Box

Pada tahapan ini, akan dibangkitkan nilai pseudorandom yang akan dijadikan

aturan untuk permutasi pada S-Box. Misalkan untuk nilai i = 2 dihasilkan nilai j

= 26 , maka nilai pada S(2) akan ditukar dengan nilai pada S(26).

Algoritmanya adalah sebagai berikut :

a) Isi nilai j dengan 0

b) Untuk i = 0 sampai i = 255 lakukan

c) Isi nilai j dengan hasil operasi ( j + S( i ) + K( i )) mod 256

d) Swap S( i ) dan S( j )

e) Tambahkan i dengan 1 kemudian kembali ke 2.

Dari algoritma di atas akan diperoleh urutan nilai sebagai berikut :

234 51 57 4 24 106 209 37 140 23 40 29 49 0 198 44 101 144 158 45 225 212 33 50 185 63 41 194 109 69 219 124 169 75 96 28 156 64 182 188 177 121 172 97 72 79 91 142 157 60 137 206 165 215 95 136 67 152 132 129 165 81 232 153 70 105 94 108 104 31 85 192 15 183 250 130 134 53 211 191

208 116 13 141 133 34 20 78 11 71 181 164 238 138 229 61 59 199 251 2 240 7 257 115 159 178 126 222 90 196 3 201 1 207 223 27 8 205 200 236 10 12 46 73 151 120 168 202

220 36 235 193 111 231 233 122 9 110 125 249 203 58 19 227 214 147 93 25 180 255 228 82 118 74 62 226 107 55 175 32 84 56 210 113 166 26 155 117 243 254 186 35 42 204 76 21

190 112 18 128 145 86 127 170 65 48 149 6 237 88 83 239

Page 33: 122M 04 DraftX Cryptography

29

80 143 162 242 213 171 192 98 47 119 217 176 14 218 77 244 173 30 100 154 252 99 179 22 163 87 160 52 253 123 224 248 43 5 139 148 146 187 103 245 230 174 66 114 89 39 102 247 16 241 38 17 150 92 131 189 221 246 184 161 68 54 197 216

5) Stream generation

Pada tahapan ini akan dihasilkan nilai pseudorandom yang akan dikenakan

operasi XOR untuk menghasilkan ciphertext ataupun sebaliknya yaitu untuk

menghasilkan plaintext. Algoritmanya adalah sebagai berikut :

a) Isi indeks i dan j dengan nilai 0

b) Untuk i = 0 sampai i = panjang cipher1.

c) Isi nilai i dengan hasil operasi ( i + 1 ) mod 256

d) Isi nilai j dengan hasil operasi ( j + S( i ) ) mod 256

e) Swap S( i ) dan S( j )

f) Isi nilai t dengan hasil operasi ( S( I ) + (S( j ) mod 256)) mod 256

g) Isi nilai y dengan nilai S( t )

h) Nilai y dikenakan operasi XOR terhadap plaintext untuk

menghasilkan ciphertext

i) Tambahkan i dengan 1 kemudian kembali ke 2.

6) Teknik blok

Pada tahapan ini, plaintext awal akan diubah susunannya mengikuti teknik

blocking.plaintext akan disusun secara vertical menurut baris kemudian akan

dibaca secara horizontal menurut kolom. Algoritmanya adalah sebagai berikut

:

a) Hitung panjang plaintext

b) Buat kolom yang masing-masing berisi 5 baris sepanjang plaintext.

c) Isikan plaintext menurut kolom, hasilnya sebagai berikut :

e p

n s

k i

r

i

d) Baca plaintext menurut baris, hasilnya adalah :

e n k r i p s i

Page 34: 122M 04 DraftX Cryptography

30

III. 8. Spesifikasi Basis Data

Page 35: 122M 04 DraftX Cryptography

31

Bab IV Profil UKM

IV. 1. Pengertian UKM

IV. 2. Profil Warnet

1. Struktur Organisasi

2. Bidang Usaha

Page 36: 122M 04 DraftX Cryptography

32

Bab V Penerapan RC4 dalam Sistem Billing Warnet

V. 1. Sistem Billing

V. 2. Alasan Pemilihan RC4

V. 3. Enkripsi dalam Sistem Billing

Page 37: 122M 04 DraftX Cryptography

33

Bab VI Penutup

VI. 1. Kesimpulan

VI. 2. Saran

Page 38: 122M 04 DraftX Cryptography

34

Daftar Pustaka

1. Alam, M.agus J., Manajemen Database dengan Microsoft Visual Basic 6.0,

Elexmedia Komputindo, cetakan kedua, Jakarta, 2000.

2. David Wagner, RC4 Algorithm Description,

http://www.achtung.com/crypto/rc4.html, diakses tanggal 10 Agusutus 2001.

3. Juliasari, N., Penerapan Teknik Enkripsi Blok dan RC4 Stream Cipher pada

Database Nasabah Koperasi, Budi Luhur, 2002.

4. Menezes, A., Oorshoot, P.,Vanstone, S., Handbook of Applied Cryptography,

Boca Raton, FL, CRC Press, 1997.

5. Michael Howard, RC4 Usage Errors Leave Your Data Exposed,

http://security.devx.com/bestdefense/2001/mh0201/mh0201-4.asp, diakses

tanggal 4 Januari 2002.

6. Pfleeger,Charles P., Security In Computing, Prentice Hall, cetakan pertama,

USA, 1989.

7. Schneier, B., Applied Cryptography, John Wiley & Sons, Inc, cetakan kedua, New

York, 1996.

8. Stallings, William, Cryptography and Network Security, Prentice Hall, cetakan

kedua, 1995.

9. Steve D.S, Mengenal Teknik-teknik Enkripsi Data, Mikrodata, Volume 1 seri 12,

hal 45-47 dan hal 61.