BAB II LANDASAN TEORI

dokumen-dokumen yang mirip
PENERAPAN ALGORITMA RC6 UNTUK PERANCANGAN APLIKASI PENGAMANAN SMS PADA MOBILE DEVICE BERBASIS ANDROID

BAB II LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

BAB III ANALISIS PENYELESAIAN MASALAH

PERBANDINGAN ALGORITMA

Implementasi Algoritma RC6 Untuk Enkripsi SMS Pada Telepon Selular

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

BAB 1 PENDAHULUAN Latar Belakang

Kriptografi Modern Part -1

Kriptografi Modern Part -1

Ada 4 mode operasi cipher blok: 1. Electronic Code Book (ECB) 2. Cipher Block Chaining (CBC) 3. Cipher Feedback (CFB) 4. Output Feedback (OFB)

PERANCANGAN APLIKASI KEAMANAN DATA MENGGUNAKAN ALGORITMA ENKRIPSI RC6 BERBASIS ANDROID

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

Analisis Keamanan Algoritma Kriptografi RC6

BAB III ANALISIS DAN DESAIN SISTEM

Algoritma Kriptografi Modern (Bagian 2)

BAB III ANALISA DAN PERANCANGAN. 3.1 Analisa Berikut tahap-tahap awal dalam pembuatan:

General Discussion. Bab 4

BAB I PENDAHULUAN. Universitas Sumatera Utara

II Bab II Dasar Teori

Tipe dan Mode Algoritma Simetri (Bagian 2)

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

STUDI & IMPLEMENTASI ALGORITMA TRIPLE DES

Bab 2 Tinjauan Pustaka

PENGAMANAN BASIS DATA KEUANGAN RSUD BANGKINANG MENGGUNAKAN ALGORITMA KRIPTOGRAFI RC6

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

STUDI MENGENAI JARINGAN FEISTEL TAK SEIMBANG DAN CONTOH IMPLEMENTASINYA PADA SKIPJACK CIPHER

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

ANALISIS PERBANDINGAN KINERJA ALGORITMA TWOFISH DAN TEA (TINY ENCRYPTION ALGORITHM) PADA DATA SUARA

STUDI PERBANDINGAN CIPHER BLOK ALGORITMA BLOWFISH DAN ALGORITMA CAMELLIA

Perbandingan Algoritma RC6 dengan Rijndael pada AES

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

Implementasi dan Analisis Perbandingan Algoritma MAC Berbasis Fungsi Hash Satu Arah Dengan Algoritma MAC Berbasis Cipher Block

Algoritma Spiral shifting

Algoritma Enkripsi Baku Tingkat Lanjut

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

Studi dan Analisis Dua Jenis Algoritma Block Cipher: DES dan RC5

Algoritma Kriptografi Modern (AES, RSA, MD5)

Advanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.

RANCANGAN,IMPLEMENTASI DAN PENGUJIAN ZENARC SUPER CIPHER SEBAGAI IMPLEMENTASI ALGORITMA KUNCI SIMETRI

Algoritma Rubik Cipher

Digital Signature Standard (DSS)

Algoritma SAFER K-64 dan Keamanannya

Studi Perbandingan Algoritma Kunci-Simetris Serpent dan Twofish

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

Penerapan Mode Blok Cipher CFB pada Yahoo Messenger

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

TINJAUAN PUSTAKA. Kriptografi

STUDI DAN MODIFIKASI ALGORITMA BLOCK CHIPER MODE ECB DALAM PENGAMANAN SISTEM BASIS DATA. Arief Latu Suseno NIM:

BAB 2 LANDASAN TEORI. 2.1 Kriptografi

WINDOWS VISTA BITLOCKER DRIVE ENCRYPTION

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Studi Mengenai Algoritma Skipjack dan Penerapannya

Add your company slogan TEKNIK BLOCK CIPHER. Kriptografi - Week 9 LOGO. Aisyatul Karima, 2012

BAB II LANDASAN TEORI

Perbandingan Algoritma Kunci Nirsimetris ElGammal dan RSA pada Citra Berwarna

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

MODIFIKASI VIGÈNERE CIPHER DENGAN MENGGUNAKAN MEKANISME CBC PADA PEMBANGKITAN KUNCI

BAB III ANALISIS DAN PERANCANGAN

Cipher Blok JAFT. Ahmad ( ) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika.

Blox: Algoritma Block Cipher

Add your company slogan STREAM CIPHER. Kriptografi - Week 7 LOGO. Aisyatul Karima, 2012

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

STUDI ALGORITMA CIPHER BLOK KUNCI SIMETRI BLOWFISH CIPHER

PERANCANGAN ALGORITMA KRIPTOGRAFI KUNCI SIMETRI DENGAN MENGGUNAKAN JARINGAN SARAF TIRUAN

BAB 2 TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

Modifikasi Cipher Block Chaining (CBC) MAC dengan Penggunaan Vigenere Cipher, Pengubahan Mode Blok, dan Pembangkitan Kunci Berbeda untuk tiap Blok

KEMENTRIAN PENDIDIKAN DAN KEBUDAYAAN UNIVERSITAS BRAWIJAYA FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

BAB I PENDAHULUAN. 1.1 Latar Belakang

Computer Science Industrial Engineering Mechanic Engineering Civil Engineering

Data Encryption Standard (DES)

BAB III ANALISIS DAN DESAIN SISTEM

Advanced Encryption Standard (AES)

ANALISIS FEISTEL CIPHER SEBAGAI DASAR BERBAGAI ALGORITMA BLOCK CIPHER

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

BAB IV PERANCANGAN. SMSSender. - inter : Interface + run () : void. inbox inboxdate outbox outboxdate sender receiver

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

Algoritma Kriptografi Modern (Bagian 2)

Dr. R. Rizal Isnanto, S.T., M.M., M.T. Jurusan Teknik Elektro/Sistem Komputer Fakultas Teknik Universitas Diponegoro

Studi Perbandingan ORYX Cipher dengan Stream Cipher Standard

BAB III ANALISIS DAN DESAIN SISTEM

(S.2) KRIPTOGRAFI METODA MODULAR MULTIPLICATON-BASED BLOCK CIPHER PADA FILE TEXT

BAB IV HASIL DAN UJI COBA

Penerapan Enkripsi Pesan Rahasia untuk Pengiriman Sms Menggunakan Algoritma Arc4 pada Peralatan Teknologi Mobile

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM. Analisa yang dilakukan bertujuan untuk menentukan solusi dari

Pembangunan MAC Berbasis Cipher Aliran (RC4)

Studi Perbandingan SEAL (Software-Optimized Encryption Algorithm) dengan Stream Cipher Biasa

2. Tipe dan Mode Algoritma Simetri

BAB II LANDASAN TEORI

Disusun oleh: Ir. Rinaldi Munir, M.T.

Transkripsi:

BAB II LANDASAN TEORI Bab dua akan berisi berbagai landasan teori. Pada bab ini akan dibahas mengenai struktur dasar sebuah paket pesan SMS, definisi dan konsep dari kriptografi, block cipher dan algoritma RC6. Landasan teori yang akan dibahas pada bab dua ini akan memberikan pemahaman sehingga dapat memudahkan dan membantu dalam analisis penyelesaian masalah pada bab selanjutnya. 2.1 Struktur Pesan SMS Struktur pesan pada sebuah paket SMS dapat dilihat pada Gambar II-1 yang diadopsi dari [CLE03]. Gambar II-1 Struktur Pesan SMS Pada Gambar II-1 dapat terlihat bahwa pada sebuah paket pesan SMS terdiri dari header dan body. Header pesan terdiri dari instruksi-instruksi kepada komponenkomponen yang bekerja dalam jaringan SMS. Pada instruksi-instruksi tersebut, terdapat informasi yang diperlukan selama pengiriman pesan seperti informasi validitas pesan, dan informasi-informasi lainnya. Pada bagian message body, terdapat isi dari pengirim pesan yang akan dikirimkan. II-1

Panjang isi pesan pada sebuah paket SMS berukuran maksimal 160 karakter, dimana setiap karakter memiliki panjang 7 bit. Beberapa aplikasi standar telepon selular dapat mendukung panjang pesan dengan karakter sepanjang 8 bit (panjang pesan maksimum 140 karakter) dan karakter yang lebih panjang lainnya seperti 16 bit, namun karakter sepanjang 8 bit dan 16 bit ini tidak didukung oleh semua aplikasi standar telepon selular. Pada umumnya karakter sepanjang 8 bit dan 7 bit digunakan untuk menampilkan data seperti gambar dan simbol[pet07]. Secara umum sebuah telepon selular hanya dapat melakukan pengiriman satu buah paket SMS dalam satu pesan, namun dengan kemajuan teknologi yang ada sekarang, beberapa telepon selular mampu mengirimkan beberapa paket SMS dalam satu pesan. Yang dilakukan telepon selular agar dapat melakukan pengiriman beberapa paket dalam satu kali pengiriman pesan adalah melakukan konkatinasi, jadi sebenarnya hal yang dilakukan sama dengan mengirimkan beberapa pesan hanya saja dengan melakukan konkatinasi, beberapa pesan yang disatukan tersebut dapat terlihat menjadi satu buah pesan. Dengan adanya fitur konkatinasi, sebuah SMS seolah-olah dapat mengirim pesan dengan panjang lebih dari 160 karakter (7 bit karakter) dalam satu buah pesan, namun pada fitur konkatinasi ini dibutuhkan sebuah informasi tambahan pada pesan untuk menyambungkan beberapa pesan menjadi satu buah pesan, oleh karena itu panjang satu buah pesan akan menjadi lebih kecil [JSR02]. Pada sebuah aplikasi penerimaan SMS pada telepon selular dikenal nomor port, nomor port ini digunakan sebagai pengenal apabila terdapat dua buah atau lebih aplikasi penerimaan SMS pada sebuah telepon selular. Aplikasi penerimaan SMS tersebut akan menunggu pesan yang ditujukan pada nomor port tersebut. Untuk mengirimkan pesan pada port yang spesifik, pengirim harus menyertakan nomor port pada pesan yang dikirimkannya. Jika pengirim tidak menyertakan nomor port, seperti halnya yang dilakukan oleh aplikasi standar setiap telepon selular, maka pesan akan ditujukan ke aplikasi standar yang dimiliki oleh telepon selular atau aplikasi yang memiliki nomor port 0. Informasi nomor port tersebut dibawa bersama paket pesan yang dikirimkan oleh pengirim, oleh karena itu jika pengirim menyertakan informasi nomor port tujuan, maka panjang maksimal pesan yang dapat dikirimkan akan berkurang karena sebagian terpakai oleh informasi nomor port [JSR02]. II-2

2.2 Kriptografi 2.1.1 Konsep Dasar Kriptografi Kriptografi adalah suatu ilmu pengetahuan yang mempelajari teknik-teknik yang berkaitan dengan keamanan informasi, teknik-teknik yang digunakan pada umumnya menggunakan dasar pengetahuan matematika. Kriptografi bukanlah satu-satunya jalan dalam menjaga keamanan dokumen tetapi kriptografi menyediakan kumpulan teknik untuk menjaga keamanan dokumen[men96]. Secara garis besar kriptografi dibagi menjadi 2 jenis; kriptografi klasik dan kriptografi moderen. Perbedaan mendasar yang terdapat pada ke dua jenis tersebut adalah pada kriptografi moderen, algoritma kriptografi umumnya beroperasi pada mode bit sedangkan pada kriptografi klasik beroperasi pada mode karakter. Teknik kriptografi moderen, secara umum dibagi menjadi 2 jenis, yaitu: 1. Algoritma kriptografi kunci simetris Pada algoritma kriptografi ini, kunci yang digunakan dalam proses dekripsi dan enkripsi merupakan kunci yang sama. Berdasarkan pemrosesan bit, algoritma kunci simetris dibagi menjadi dua bagian, yaitu; algoritma block cipher yang melakukan pemrosesan bit per-blok dan algoritma stream cipher yang memproses blok secara mengalir atau per-bit. 2. Algoritma kriptografi kunci publik Proses enkripsi dan dekripsi pada algoritma kriptografi kunci publik menggunakan kunci yang berbeda. Seperti namanya algoritma ini menggunakan kunci enkripsi yang bersifat publik atau tidak rahasia, namun menggunakan kunci dekripsi yang bersifat rahasia. Kunci dekripsi pada umumnya merupakan hasil perhitungan dari kunci enkripsi yang bukan merupakan pemetaan satu ke satu, sebuah kunci dekripsi dapat memiliki beberapa kunci enkripsi. Dalam penggunaannya, algoritma kriptografi kunci publik tidak hanya digunakan untuk menyembunyikan pesan, tetapi dapat juga digunakan untuk melakukan otentikasi dokumen. Tujuan kriptografi adalah untuk mencegah dan mendeteksi orang yang tidak bertanggung jawab melakukan hal-hal yang mengganggu seperti membaca data II-3

rahasia atau mengubah suatu data penting. Untuk tujuan itu, kriptografi menyediakan empat aspek keamanan yaitu; kerahasiaan, integritas data, otentikasi dan nirpenyangkalan[mun06]. Algoritma kripografi melibatkan proses pengubahan pesan menjadi tersembunyi atau tidak dikenali isi dan maksudnya. Pesan yang belum diubah tersebut disebut dengan plainteks dan pesan yang telah diubah disebut dengan cipherteks. Proses pengubahan plainteks menjadi cipherteks disebut dengan enkripsi dan proses pengembalian cipherteks menjadi plainteks disebut dengan dekripsi. 2.1.2 Block Cipher Block cipher adalah suatu tipe algoritma kriptografi kunci simetris yang mengubah plainteks yang dibagi dalam blok-blok dengan panjang yang sama menjadi cipherteks yang memiliki panjang blok yang sama. Ukuran panjang blok dapat beragam bergantung kepada algoritma yang digunakan, ukuran yang sering digunakan adalah 64 bit dan menuju 128 bit. Seperti semua algoritma kunci simetri, proses enkripsi yang dilakukan akan menggunakan suatu input dari user yang disebut sebagai kunci rahasia. Kunci rahasia ini juga akan dipakai ketika melakukan proses dekripsi. Cara kerja secara umum dari block cipher dapat dilihat pada Gambar II-2. Gambar II-2 Skema cara kerja block cipher II-4

Dalam penggunaannya block cipher dikombinasikan dengan suatu teknik yang dinamakan mode operasi dari block cipher. Mode operasi yang sederhana dan sering digunakan adalah mode Electronic Code Book (ECB). Pada mode ECB setiap blok pada plainteks dienkripsi satu persatu secara independen. Hasil enkripsi masingmasing blok tidak mempengaruhi blok yang lain. Proses enkripsi pada mode ini sangat sederhana, setiap blok plainteks dienkripsi dengan fungsi enkrispsi secara terpisah. Seperti halnya dalam proses enkripsi, dalam proses dekripsi, masing-masing blok-blok cipherteks dikenakan dengan fungsi dekripsi secara independen. Proses enkripsi dan dekripsi dari mode ECB dapat dilihat pada Gambar II-3 Gambar II-3 (i)proses enkripsi ECB dan (ii)proses dekripsi ECB pada sebuah blok Dalam melakukan perancangan block cipher, beberapa prinsip harus dipertimbangkan. Prinsip-prinsip tersebut yaitu: 1. Prinsip Confusion dan Diffusion dari Shannon. Tujuan dari prinsip confusion adalah untuk menyembunyikan hubungan apapun yang ada antara plainteks, cipherteks, dan kunci, sehingga dapat membuat kripanalis kesulitan dalam menemukan pola-pola pada cipherteks. Tujuan dari prinsip diffusion adalah menyebarkan pengaruh satu bit plainteks atau kunci ke sebanyak mungkin cipherteks, sehingga dengan berubahnya satu bit plainteks dapat mengubah cipherteks yang sulit untuk diprediksi[mun06]. II-5

2. Iterated Cipher Untuk menambah keamanan, pada algoritma-algoritma block cipher dilakukan iterasi pada pemrosesan setiap blok, pada setiap rotasi dari iterasi tersebut digunakan fungsi transformasi yang sama namun memakai kunci yang berbeda yang disebut dengan kunci internal. Kunci internal pada umumnya merupakan hasil dari kunci yang dimasukan oleh pengguna yang dikomputasi menggunakan suatu fungsi tertentu. Dengan adanya iterasi tersebut keamanan akan semakin terjamin, namun performansi akan berkurang karena adanya waktu lebih yang dibutuhkan untuk melakukan iterasi. Block cipher yang menerapkan konsep iterasi ini disebut juga dengan iterated block cipher. 3. Kunci Lemah Suatu hal yang perlu dihindari dalam melakukan perancangan algoritma kriptografi adalah kunci yang dapat menghasilkan cipherteks yang mirip atau serupa dengan plainteks. 2.3 Algoritma RC6 2.3.1 Deskripsi Algoritma RC6 adalah suatu algoritma kriptografi block cipher yang dirancang oleh Ronald L. Rivest, Matt J.B. Robshaw, Ray Sidney, dan Yuqin Lisa Yin dari RSA Laboratories. Algoritma ini pada mulanya dirancang untuk menjadi AES (Advance Encryption Standard). Algoritma RC6 ini berhasil menjadi finalis dan menjadi kandidat kuat untuk menjadi AES walaupun pada akhirnya algoritma ini tidak terpilih menjadi AES melainkan algoritma rinjdael. Versi 1.1 dari RC6 mulai dipublikasikan pada tahun 1998. Dasar desain dari algoritma RC6 ini didasarkan pada pendahulunya yaitu algoritma RC5. Desain algoritma RC5 mengutamakan kesederhanaan agar mudah untuk diimplementasikan, selain itu juga kecepatan dan penggunaan memori yang rendah menjadi faktor utama perancangan algoritma RC5. Algoritma RC5 dirancang agar dapat beradaptasi dengan prosesor yang beragam dan juga didesain dengan struktur yang iteratif dengan jumlah iterasi yang dapat beragam, sehingga algoritma RC5 memiliki parameter agar dapat bekerja dengan jumlah iterasi dan blok yang beragam. Algoritma RC5 bekerja dengan dua buah register A dan B sebesar panjang blok II-6

dibagi dua, proses enkripsi dari algoritma RC5 dengan S adalah array yang berisi kunci internal dan r adalah jumlah iterasi adalah sebagai berikut: A A+S[0] B B+S[1] for i 1 to r do A ((A B)<<<B)+S[2*i] B ((B A)<<<A)+S[2*i+1] endfor Proses dekripsi algoritma RC5 adalah sebagai berikut: for i r downto r do B ((B-S[2*i+1])>>>A) A A ((A-S[2*i])>>>B) B endfor B B-S[1] A A-S[0] Seperti halnya algoritma RC5, algoritma RC6 merupakan algoritma dengan parameter penuh, algoritma RC6 dispesifikasikan dengan notasi RC6-w/r/b. Dimana w adalah ukuran dari word dalam bit, karena pada RC6 menggunakan 4 buah register maka word adalah ukuran blok dibagi 4. r adalah jumlah iterasi, dimana r tidak boleh negatif. Dan b adalah panjang kunci dalam bytes. Dalam rancangan untuk menjadi kandidat AES algoritma RC6 yang digunakan menggunakan ukuran w sebesar 32 bit dan jumlah iterasi r sebesar 20 kali putaran. Cara kerja dari algoritma RC6 adalah menggunakan 4 buah register dan menggunakan prinsip Iterated Block Cipher yang mengunakan iterasi, dalam algoritma ini tidak digunakan S-box. 2.3.2 Pembentukan Kunci Internal Untuk membangkitkan urutan kunci internal yang akan digunakan selama proses enkripsi, algoritma RC6 melakukan proses pembangunan kunci yang identik dengan algoritma RC5, yang membedakan hanyalah pada algoritma RC6, jumlah word yang II-7

diambil dari kunci yang dimasukan oleh pengguna ketika melakukan enkripsi ataupun dekripsi lebih banyak. Tujuan dari proses pembangunan kunci tersebut adalah untuk membangun suatu array S yang berukuran 2r+4 dari kunci masukan pengguna sepanjang b bytes (0 b 255), array tersebut akan digunakan baik dalam proses enkripsi maupun dekripsi. Proses untuk membangun kunci-kunci internal menggunakan dua buah konstanta yang disebut dengan magic constant. Dua buah magic constant P w dan Q w tersebut didefinisikan sebagai berikut: P w = Odd((e-2)2 w )..(2.1) Q w = Odd(( -1)2 w )..(2.2) Dimana : e = 2.7182818284859 (basis dari logaritma natural) = 1.618022988749 (golden ratio) Odd (x) adalah integer ganjil terdekat dari x, jika x genap maka diambil integer ganjil setelah x. Berikut adalah daftar magic constant pada beberapa panjang blok dalam heksadesimal: P 16 = b7e1 Q 16 = 9e37 P 32 = b7e15163 Q 32 = 9e3779b9 P 64 = b7e151628aed2a6b Q 64 = 9e3779b97f4a7c15 Dengan menggunakan dua buah magic constant tersebut, pembangunan kunci terdiri dari tiga tahap : 1. Konversi kunci rahasia dari bytes ke words Langkah pertama adalah menyalin kunci rahasia K[0..b-1] kedalam sebuah array L[0..c-1], dimana c = pembulatan keatas(b/u) dan u = w/8, penyalinan tersebut dilakukan secara little endian. Untuk semua posisi byte pada L yang kosong diberi nilai nol. Untuk kasus dimana b = 0, maka c = 1 dan L[0] = 0. Langkah ini dapat dilakukan dengan cara berikut : II-8

if c=0 then c 1 endif for i b-1 downto 0 do L[i/u] (L[i/u]<<<8) + K[i] endfor 2. Inisialisasi array S Langkah kedua adalah melakukan inisialisasi array S agar memiliki pola pseudo-random bit tertentu menggunakan progresi aritmatika modulo 2 w yang ditentukan dengan P w dan Q w. Berikut langkah kedua dalam pseudo code : S[0] P w for i 0 to 2r+3 do S[i] S[i-1]+ Q w endfor 3. Mencampurkan L dan S Langkah terakhir adalah mencampurkan kunci rahasia dari pengguna yang sudah tersimpan dalam L dengan S sebanyak 3 kali iterasi. Berikut adalah langkah pencampuran tersebut: i 0 j 0 A 0 B 0 V 3*max(c,2r+4) for index 1 to v do S[i] (S[i]+A+B) <<< 3 A S[i] L[j] (L[j]+A+B) <<< (A+B) B L[j] i (i+1)mod(2r+4) j (j+1)mod c endfor II-9

Pembentukan kunci yang dilakukan, mengubah kunci dari user yang panjangnya beragam (0-255) menjadi suatu rangkaian kunci dengan sepanjang word sebanyak 2r +3 buah. Hal ini menjadikan RC6 dapat bekerja dengan kunci masukkan pengguna yang beragam. Kunci yang dihasilkan oleh proses pembentukian kunci ini memiliki sifat satu arah[riv98], sehingga proses pembentukan kunci ini dapat digunakan sebagai fungsi hash satu arah. Dengan sifat satu arah tersebut, maka kunci internal akan sangat berbeda dengan kunci yang dimasukkan oleh pengguna, hal ini akan membuat hubungan statistik antara kunci yang dimasukan oleh pengguna dengan plainteks dan cipherteks menjadi lebih rumit karena dalam melakukan enkripsi, kunci yang dipakai adalah kunci internal. Pada pembentukan kunci internal digunakan iterasi yang cukup banyak baik pada tahap satu, dimana untuk melakukan ekspansi kunci dibutuhkan iterasi, dan pada tahap dua, dimana dibutuhkan iterasi untuk melakukan inisialisai array serta pada tahap terakhir yang dibutuhkan untuk menggabungkan dua buah array, yang bahkan dilakukan selama tiga kali. Iterasi-iterasi ini membutuhkan waktu yang cukup besar untuk dilakukan. 2.3.3 Proses Enkripsi dan Dekripsi Algoritma RC6 bekerja dengan empat buah register A,B,C,D yang masing-masing berukuran w-bit, register-register tersebut akan diisi oleh plainteks yang kemudian akan digunakan selama proses enkripsi dan setelah proses enkripsi berakhir isi dari register-register tersebut merupakan cipherteks. Byte pertama dari plainteks atau cipherteks akan disimpan pada least significant byte dari A dan byte terakhir dari plainteks atau cipherteks disimpan pada most significant byte dari D. Proses enkripsi dan dekripsi algoritma RC6 menggunakan enam buah operasi dasar: a + b = penjumlahan integer modulo 2 w a - b = pengurangan integer modulo 2 w a b = operasi bitwise exclusive-or sebesar w-bit words II-10

a * b = perkalian integer modulo 2 w a<<<b = rotasi sejumlah w-bit word ke kiri sebanyak jumlah yang diberikan oleh least sifnificant lg w bit dari b a>>>b = rotasi sejumlah w-bit word ke kanan sebanyak jumlah yang diberikan oleh least sifnificant lg w bit dari b Dimana lg w adalah logaritma basis dua dari w. Proses enkripsi dapat dilihat pada Gambar II-4 dan dekripsi dapat dilihat pada Gambar II-6 dengan f(x)=x * (2x+1). Gambar II-4 Diagram Enkripsi RC6 II-11

Prosedure Enkripsi ( Input : Plainteks dalam A,B,C,D r : integer (jumlah rotasi) S[0..2r+3] : kunci internal Output : Cipherteks dalam A,B,C,D) Kamus u : integer t : integer Algoritma B B + S[0] D D + S[1] for i 1 to r do t (B * (2B + 1))<<<lg w u (D * (2D + 1))<<<lg w A ((A t)<<<u) + S[2i] C ((C u)<<<t) + S[2i+ 1] (A,B,C,D) (B,C,D,A) endfor A A + S[2r + 2] C C + S[2r + 3] Gambar II-5 Algoritma Enkripsi RC6 A B C D - S[2r+2] - S[2r+3] - S[2i] - S[2i+1] >>> >>> XOR <<< f XOR <<< f lg w lg w - S[0] - S[1] A B C D Gambar II-6 Proses Dekripsi RC6 II-12

Prosedure Dekripsi ( Input : Cipherteks dalam A,B,C,D r : integer (jumlah rotasi) S[0..2r+3] : kunci internal Output : Plainteks dalam A,B,C,D) Kamus u : integer t : integer Algoritma C C - S[2r + 3] A A - S[2r + 2] for i r downto 1 do (A,B,C,D) (D,A,B,C) u (D * (2D + 1))<<<lg w t (B * (2B + 1))<<<lg w C ((C - S[2i+ 1])>>>t) u A ((A - S[2i])>>>u) t endfor D D - S[1] B B - S[0] Gambar II-7 Proses Dekripsi RC6 Langkah-langkah enkripsi algoritma RC6 secara detil adalah sebagai berikut : 1. Blok plainteks dibagi menjadi 4 bagian, A, B, C dan D yang masing-masing memiliki panjang w bit atau panjang blok dibagi 4. Kemudian B dan D dijumlahkan (dalam modulo 2 w ) dengan kunci internal S[0] dan S[1]. B B + S[0] D D + S[1] 2. Selanjutnya pada setiap putaran dari 1 sampai r, lakukan XOR dan pergeseran kekiri terhadap A dengan f(x) yang di geser ke kiri sebanyak lg w, dimana f(x) = x* (2x+1) dan x = B. Setelah itu melakukan penjumlahan (dalam modulo 2 w ) dengan kunci internal. Hal serupa dilakukan pula terhadap C dengan x = D. Kemudian melakukan swapping A B, B C, C D dan D A. II-13

for i 1 to r do t (B * (2B + 1))<<<lg w u (D * (2D + 1))<<<lg w A ((A t)<<<u) + S[2i] C ((C u)<<<t) + S[2i+ 1] (A,B,C,D) = (B,C,D,A) Endfor Fungsi f(x) = x * (2x+1) memiliki keistimewaan dalam diterapkan pada iterated cipher, kesitimewaannya adalah fungsi ini memiliki sifat satu ke satu pada aritmatik modulo 2 w dan cenderung merubah bit yang high-order (dekat MSB) [RIV98]. Sifat satu arah tersebut dapat terlihat sebagai berikut : Misalkan A dan B adalah bilangan bulat positif dan A B, jika A * (2A + 1) = B * (2B + 1) (mod 2 w ), maka: 2A 2 +A = 2B 2 + B (mod 2 w ) 2A 2 2B 2 + A B = 0 (mod 2 w ) (A - B) (2A + 2B + 1) = 0 (mod 2 w ) Namun, A B, jadi (A - B) 0 kemudian, 2A dan 2B merupakan genap sehingga (2A + 2B + 1) merupakan bilangan ganjil dan tidak mungkin nol, maka tidak ada A dan B yang memenuhi A* (2A + 1) = B * (2B + 1) (mod 2 w ) atau f(x) bersifat satu ke satu pada modulo 2 w. Sifat satu ke satu ini cenderung berbeda pada bit yang high-order atau menuju MSB, hal ini dikarenakan fungsi f(x) = x * (2x + 1) merupakan fungsi kuadratik dimana pada perkalian dua buah bilangan akan cenderung menambah digit didepan. Apabila x pada f(x) yang terdiri dari i bit mengalami perubahan bit pada posisi ke j maka f(x) akan berubah pada bit posisi ke j dan cenderung pada posisi > j. Dengan sifat satu ke satu pada fungsi f(x) tersebut, maka kemungkinan hasil f(x) yang berulang dalam iterasi-iterasi yang terjadi akan sangat kecil, sehingga semakin banyak jumlah iterasi, maka keamanan akan semakin terjaga, hal ini diperkuat dengan kemungkinan perubahan yang terjadi pada high-order bit sehingga pengaruh perbuatan lebih besar. II-14

Jika tidak terdapat sifat satu ke satu tersebut, algoritma enkripsi akan menjadi tidak baik, karena pada algoritma ini terdapat XOR dan apabila suatu bilangan di XOR-kan 2 kali maka bilangan tersebut akan muncul kembali. 3. Setelah iterasi selesai langkah terakhir adalah melakukan penjumlahan (dalam modulo 2 w ) terhadap A dan C dengan dua kunci internal terakhir. Setelah semua selesai blok yang terbagi menjadi 4 bagian disatukan kembali. A A + S[2r + 2] C C + S[2r + 3] Algoritma RC6 termasuk kedalam iterated cipher, kekuatan utama algoritma ini terletak pada iterasi yang dilakukannya. Dengan dilakukannya iterasi yang berulangulang dengan menggunakan kunci yang berbeda-beda, maka prinsip confusion dan diffusion dilakukan secara berulang-ulang pula, sehingga keamanan akan semakin baik. Serangan yang paling baik untuk memecahkan algoritma RC6 adalah serangan dengan menggunakan exhaustive search yang ditujukan kepada kunci yang dimasukkan oleh pengguna atau kunci internal. Untuk serangan yang lebih rumit seperti kripanalisis diferensial dan linier, dapat digunakan untuk memecahkan algoritma RC6 yang menggunakan jumlah rotasi yang kecil, untuk jumlah rotasi 20 keatas, serangan ini tidak dapat bekerja dengan baik karena sulitnya menemukan karakteristik iteratif yang baik atau perkiraan linier[riv98]. II-15