Variabel Yang Diamati Perbandingan RC5 dengan RC6

3.2 Variabel Yang Diamati

Variabel yang akan digunakan dalam penelitian ini yaitu berbentuk pesan teks, dimana pesan tersebut akan diproses melalui proses enkripsi dan dekripsi. Terdapat tiga tahapan dalam proses enkripsi dan dekripsi pesan tersebut. Teks yang digunakan dalam penelitian ini terdiri dari huruf besar dan huruf kecil, angka 0 sampai 9 dan dua karakter khusus yaitu spasi dan titik.

3.3 Teknik Pengembangan

Sistem ini menggunakan penambahan bit dari 128 bit RC6 menjadi 512 bit RC6 dan RC5 dan RC6 yang akan dikombinasikan untuk proses enkripsi dan dekripsi. Dimana proses tersebut akan menghasilkan pesan yang terjaga kerahasiannya dari pihak yang tidak berkepentingan, RC6 adalah sepenuhnya parameter keluarga algoritma enkripsi. versi RC6 lebih akurat ditetapkan sebagai RC6-wrb dimana kata ukuran w bit, enkripsi terdiri dari nomor non negatif putaran r, dan b menunjukkan panjang kunci enkripsi byte pada AES pengajuan ditargetkan pada w = 32 dan r = 20. Nilai lainnya w atau r dimaksudkan dalam teks, nilai parameter akan ditetapkan sebagai RC6-w r. Relevansi khusus untuk AES usaha akan menjadi versi RC6 dengan 16 -, 24 -, dan kunci 32-byte. untuk semua varian, RC6-wrb beroperasi pada unit empat kata w-bit menggunakan enam berikut operasi dasar. Basis-dua logaritma w akan dilambangkan dengan lgw. a + b bilangan bulat penambahan modulo 2 a - b bilangan bulat pengurangan modulo 2 w a w b bitwise eksklusif-atau kata-kata w-bit a × b bilangan bulat perkalian modulo 2 a b memutar kata w-sedikit ke kiri oleh jumlah diberikan oleh sedikitnya bit lgw signifikan b w a b memutar kata w-sedikit ke kanan dengan jumlah yang diberikan oleh sedikitnya bit lgw signifikan b. Universitas Sumatera Utara

3.3.1 Algoritma Enkripsi RC6

RC6 memecah blok 128 bit menjadi 4 buah blok 32 bit, maka algoritma ini bekerja dengan 4 buah register 32-bit A, B, C, D. Byte yang pertama dari plaintext atau ciphertext ditempatkan pada byte A, sedangkan byte yang terakhirnya ditempatkan pada byte D. Dalam prosesnya akan didapatkan A, B, C, D = B, C, D, A yang diartikan bahwa nilai yang terletak pada sisi kanan berasal dari register disisi kiri. Algoritma RC6 menggunakan 44 buah sub kunci yang dibangkitkan dari kunci dan dinamakan dengan S[0] hingga S[43]. Masing-masing sub kunci panjangnya 32 bit. Proses enkripsi pada algoritma RC6 dimulai dan diakhiri dengan proses whitening yang bertujuan untuk menyamarkan iterasi yang pertama dan yang terakhir dari proses enkripsi dan dekripsi. Pada proses whitening awal, nilai B akan dijumlahkan dengan S[0], dan nilai D dijumlahkan dengan S[i]. Pada masing-masing iterasi pada RC6 menggunakan 2 buah sub kunci. Sub kunci pada iterasi yang pertama menggunakan S[2] dan S[3], sedangkan iterasi-iterasi berikutnya menggunakan sub-sub kunci lanjutannya. Setelah iterasi ke-20 selesai, dilakukan proses whitening akhir dimana nilai A dijumlahkan dengan S[42], dan nilai C dijumlahkan dengan S[43]. Setiap iterasi pada algoritma RC6 mengikuti aturan sebagai berikut, nilai B dimasukan ke dalam fungsi f, yang didefinisikan sebagai fx =x2x+1 , kemudian diputar kekiri sejauh lg-w atau 5 bit. Hasil yang didapat pada proses ini dimisalkan sebagai u. Nilai u kemudian di XOR dengan C dan hasilnya menjadi nilai C. Nilai t juga digunakan sebagai acuan bagi C untuk memutar nilainya kekiri. Begitu pula dengan nilai u, juga digunakan sebagai acuan bagi nilai A untuk melakukan proses pemutaran kekiri. Kemudian sub kunci S[2i] pada iterasi dijumlahkan dengan A, dan sub kunci S[2i+1] dijumlahkan dengan C. keempat bagian dari blok kemudian akan dipertukarkan dengan mengikuti aturan, bahwa nilai A ditempakan pada D, nilai B ditempatkan pada A, nilai C ditempatkan apda B, dan nilai asli D ditempatkanpada C. demikian iterasi tersebut akan terus berlangsung hingga 20 kali. Universitas Sumatera Utara

3.3.2 Algoritma Dekripsi RC6

Proses dekripsi ciphertext pada algoritma RC6 merupakan pembalikan dari proses enkripsi. Pada proses whitening, bila proses enkripsi menggunakan operasi penjumlahan, maka pada proses dekripsi menggunakan operasi pengurangan. Sub kunci yang digunakan pada proses whiteneing setelah iterasi terakhir diterapkan sebelum iteasi pertama, begitu juga sebaliknya sub kunci yang diterapkan pada proses whitening sebelum iterasi pertama digunakan pada whitening setelah iterasi terkahir. Akibatnya, untuk melakukan dekripsi, hal yang harus dilakukan semata-mata hanyalah menerapkan algoritma yang sama dengan enkripsi, dengan tiap iterasi menggunakan sub kunci yang sama dengan yang digunakan pada saat enkripsi, hanya saja urutan sub kunci yang digunakan terbalik .

3.3.3 Kunci Penjadwalan algoritma

Dari 255 byte kunci ini kemudian ditempatkan dalam array c w-bit words L[0]…L[c- 1]. Byte pertama kunci akan ditempatkan sebagai pada L[0], byte kedua pada L[1], dan seterusnya. Catatan, bila b=0 maka c=1 dan L[0]=0. Masing-masing nilai kata w-bit akan dibangkitkan pada penambahan kunci round 2r+4 dan akan ditempatkan pada array S[0,…,2r+3]. ≤b≤Pengguna memasukkan sebuah kunci yang besarnya b byte, dimana 0 dapat dikatakan sebagai “golden ratio” rasio emas. ∅-1, dimana ∅Konstanta P32 = B7E15163 dan Q32 = 9E3779B9 dalam satuan heksadesimal adalah “konstanta ajaib”yang digunakan dalam penjadwalan kunci pada RC6. nilai P32 diperoleh dari perluasan bilangan biner e-2, dimana e adalah sebuah fungsi logaritma. Sedangkan nilai Q32 diperoleh dari perluasan bilangan biner Array S. [0; :::, 2r + 3] array ini digunakan dalambaik enkripsi dan dekripsi. Berikut ini algoritma-algoritma untuk mengimplementasikan simulator kriptografi RC6. Dengan algoritma-algoritma ini dibuat sebuah simulator kriptografi RC6 yang dapat menghasilkan data analaisis performansinya. a. Algoritma Pembangkit Sub Kunci Universitas Sumatera Utara KAMUS Type Word32 : 32 bit {tipe data 32 bit} Kunci : string {kunci yang dimasukkan oleh pemakai} i, j, c, s, v : integer A : integer B : integer S : array [0..43] of word32 L : array [0..43] of word32 Word32 ◊Function ROTL X:Word32; Y : integer fungsi untuk merotasi bit sebanyak variabel kedua ALGORITMA Input Kunci P32 ⇓S[0] 1 to 43 do ⇓For i S[i-1]+Q32 ⇓S[i] Endfor ⇓j⇓i⇓B⇓A 44 ⇓V If cv then c ⇓V v3 ⇓V 1 to v do ⇓For s ROTL S[i]+A+B,3 ⇓ S[i] ⇓A ROTL L[j]+A+B,A+B ⇓L[j] ⇓B i+1 mod 44 ⇓I j+1 mod c ⇓J Endfor Universitas Sumatera Utara b. Algoritma Baca File Masukan Procedure baca_file {I.S : File belum dibuka} {F.S : File dibaca per 16 karakter dan ditampung dalam buffer} KAMUS Nama_file : string {nama file masukan} Buff : array [0..15] of char i : integer ALGORITMA Input nama_file Open nama_file ⇓i 15 and not EOF do ≤while i Read nama_file, Buff[i] Endwhile Close nama_file 3. Algoritma whitening awal Procedure whitening_awal {I.S : blok kedua dan keempat belum dijumlahkan dengan sub kunci} {F.S : blok kedua dan keempat yang telah dijumlahkan dengan sub kunci} KAMUS Type word32 : 32 bit tipe data sebesar 32 bit X : word32 array [0..3] {blok enkripsiplaintext} S : array [0..43] of word32 {sub kunci} ALGORITMA X[1] + S[0] ⇓X[1] X[3] +S[1] ⇓X[3] Universitas Sumatera Utara c. Algoritma Iterasi Procedure iterasi {I.S : keempat blok setelah whitening awal belum diproses} {F.S : keempat blok yang telah diproses dan saling dipertukarkan} KAMUS Type word32 : 32 bit {tipe data sebesar 32 bit} X : word32 array [0..3] {blok enkripsiplaintext} word32 ◊Function ROTLX:Word32; Y : integer {Merotasi bit kekiri sebanyak variabel kedua} Temp : word32 u, t: word32 i : integer ALGORITMA 1 to 20 do ⇓For i ROTL X[1]2X[1]+1, 5 ⇓t ROTL X[3]2X[3]+1, 5 ⇓u ROTLX[0] XOR t, u + S[2i] ⇓X[0] ROTLX[2] XOR u, t + S[2i + 1] ⇓X[0] X[0] ⇓Temp X[1] ⇓X[0] X[2] ⇓X[1] X[3] ⇓X[2] Temp ⇓X[3] End for d. Algoritma Whitening Akhir Procedure Whitening_akhir {I.S : blok pertama dan ketiga belum dijumlahkan dengan sub kunci} {F.S : blok pertama dan ketiga yang telah dijumlahkan dengan sub kunci} KAMUS Type word32 : 32 bit tipe data sebesar 32 bit Universitas Sumatera Utara X : word32 array [0..3] {blok enkripsiplaintext} S : array[0..43] of word32 {sub kunci} ALGORITMA X[0] + S[42] ⇓X[0] X[2] + S[43] ⇓X[2] 3.4 Analisis Kriptografi RC6 3.4.1 Kajian Teoritis Pada struktur cipher Mekanisme yang digunakan pada algoritma RC6 ini adalah pembagian blok dari 128 bit menjadi empat buah blok yang masing-masing besarnya 32 bit. Fungsi fx= x2x+1 yang diikuti dengan pergeseran 5 bit ke kiri digunakan untuk memberikan tingkat keamanan data yang tinggi. Pada RC6 tidak ditemui adanya Feistel Network seperti pada DES, namun fungsi fx=x2x+1 dan pergeseran 5 bit ke kiri sudah dapat menghasilkan tingkat pengacakan data yang tidak kalah dengan algoritma yang menggunakan feistel network. Penentuan banyaknya iterasi didasarkan atas azas keseimbangan. Dimana jika jumlah round sedikit akan menyebabkan cipher menjadi mudah untuk dipecahkan. Sedangkan jika jumlah iterasi semakin banyak, akan menyebabkan kecepatan proses enkripsidekripsi akan semakin berkurang. Sebenarnya jumlah round sebanyak 20 cukup beralasan. Akan tetapi berdasarkan analisis keamanan yang sangat mendalam, diketahui serangan terbaik terahadap RC6 dapat mencapai 8 round. Untuk alasan ini, pencipta RC6 memeberikan “security margin” yang cukup besar yaitu sebanyak 20 round untuk memberikan perlindungan keamanan yang tinggi terhadap RC6 . Penjadwalan kunci pada RC6 menggunakan sebuah sBox untuk melakukan iterasi awal terhadap S[0]…S[43]. Nilai konstanta P32=B7E15163 heksadesimal didefinisikan sebagai inisialisasi awal terhadap S[0] dan inisialisasi awal S[1] hingga S[43] didapatkan dengan menambahkan Q32=9E3779B9 heksadesimal terhadap inisialisasi awal subkunci-subkunci sebelumnya. Pada proses utama penjadwalan kunci, digunakan beberapa operasi seperti pergeseran bit dan operasi penjumlahan Universitas Sumatera Utara yang menyebabkan proses penjadwalan kunci pada RC6 mempunyai kekuatan yang sama dengan RC6 cipher itu sendiri.

3.4.2 Perubahan Besar Arsip

Arsip ciphertext mempunyai ukuran yang lebih besar dari arsip plaintext. Hal ini terjadi karena adanya proses pedding. Pada mode EBC maupun pada metode CBC, perubahan maksimum besarnya arsip ciphertext adalah sebesar satu blok penyandian data 16 byte. Hal ini terjadi semata-mata karena adanya proses padding 16 byte. Walaupun pada metode CBC terdapat proses inisial vektor, namun yang terjadi hanyalah operasi XOR antara inisial vektor dan blok 128 bit sehingga tidak akan merubah besar ukuran ciphertext menjadi lebih besar dibanding mode EBC.

3.4.3 Avallanche Effect

Salah satu karakteristik untuk menentukan baik atau tidaknya suatu algoritma kriptografi adalah dengan melihat avalanche effect-nya. Perubahan yang kecil pada plaintext maupun key akan menyebabkan perubahan yang signifikan terhadap ciphertext yang dihasilkan. Atau dengan kata lain, perubahan satu bit pada palintext maupun key akan menghasilkan perubahan banyak bit pada ciphertext. Suatu avalanche effect dikatakan baik jika perubahan bit yang dihasilkan berkisar antara 45- 60 sekitar separuhnya, 50 adalah hasil yang sangat baik. Hal ini dikarenakan perubahan tersebut berarti membuat perbedaan yang cukup sulit untuk kriptanalis melakukan serangan. RC6 memperlihatkan sebuah avalanche effect yang baik. Hasil yang ditunjukan ini sesuai dengan parameter yang ditetapkan yaitu 50 dari besar blok penyandian. Hal tersebut ditunjukan dari hasil yang diperlihatkan dibawah ini: Plaintext 1 : 0000000000000000000000000000000016 Plaintext 2 : 1000000000000000000000000000000016 Kunci : 000000000000000000000000000000000000000000000000000000000000000016 Ciphertext 1 : 8F5FBD0510D15FA893FA3FDA6E857EC216 Ciphertext 2 : 2321D38ACCAAEA5DBA682E7BDCE095AB16 Universitas Sumatera Utara Dari hasil diatas terlihat bahwa perbedaan bit yang dihasilkan pada ciphertext 1 dan ciphertext 2 adalah sebanyak 72 bit atau sekitar 56 dari besar blok 128 bit. Sedangkan untuk perubahan kunci satu bit akan ditunjukan pada hasil dibawah ini Plaintext : 0000000000000000000000000000000016 Kunci 1 000000000000000000000000000000000000000000000000000000000000000016 Kunci 2 100000000000000000000000000000000000000000000000000000000000000016 Ciphertext 1 8F5FBD0510D15FA893FA3FDA6E857EC216 Ciphertext 2 11395D4BFE4C8258979EE2BF2D24DFF416 Dari hasil tersebut tampak bahwa perbedaan kunci satu bit menghasilkan perbedaan bit sebesar 64 bit atau sekitar 50 dari besar blok 128 bit.

3.5 Proses Kombinasi

Ada empat kombinasi dalam proses enkripsi dan dekripsi pengembangan algoritma tersebut.

3.5.1 Proses Kombinasi Pertama RC5 dan RC5

Tahapan enkripsi digunakan untuk mengubah plainteks menjadi cipherteks agar pesan tidak dapat dibaca oleh orang yang tidak berhak. Tahapan ini dimulai dari proses penginputan kunci simetris dengan menggunakan algoritma RC5, Setelah kunci diinputkan kemudian dilanjutkan ke proses penginputan plainteks. Proses selanjutnya penerima pesan melakukan proses dekripsi terhadap cipherteks tersebut dengan algoritma RC5, dan hasil dari proses dekripsi tersebut masih berbentuk cipherteks dan di kirim kembali kepada penerima pesan. Penerima pesan melakukan proses dekripsi kembali terhadap cipherteks yang diterima dari pengirim Dan hasil dari proses enkripsi tersebut berbentuk cipherteks juga. Cipherteks tersebut dikirim kembali oleh penerima pesan kepada pengirim pesan. Universitas Sumatera Utara pesan, algoritma yang digunakan yaitu RC5 untuk proses dekripsi nya sehingga menghasilkan sebuah plainteks. Flowchart dari proses kombinasi pertama RC5 dengan RC5 block Cipher digambarkan pada gambar 3.7.1 Pass 1 Pass 3 Pass 2 Gambar 3.5.1 Flowchart Kombinasi Pertama RC5 dengan RC5

3.5.2 Proses Kombinasi Kedua RC6 dan RC6

Pada proses kombinasi yang kedua si pengirim pesan menggunakan algoritma RC6 untuk proses enkripsi dan dekripsi dan si penerima pesan juga menggunakan algoritma RC6 untuk proses enkripsi dan dekripsi serta masing-masing pihak tidak berbagi kunci enkripsi. Pada tahapan yang pertama dalam kombinasi yang kedua ini, dimana si pengirim pesan akan menggunakan algoritma RC6 untuk melakukan proses enkripsi pesan. Dalam proses tersebut pesan, plainteks akan dienkripsi dengan kunci Cipherteks A Cipherteks di enkripsi dengan RC5 Input kunci -2 Start Input Plainteks, Kunci -1 Plainteks di enkripsi dengan RC5 Cipherteks Stop Plainteks Cipherteks di dekripsi dengan RC5 Cipherteks Cipherteks di dekripsi dengan RC5 A Universitas Sumatera Utara yang di inputkan oleh si pengirim pesan kemudian melakukan proses enkripsi dengan menggunakan algoritma RC6 dan menghasilkan sebuah cipherteks Setelah pengirim pesan menerima cipherteks tersebut, maka akan dilakukan proses dekripsi pertama terhadap cipherteks tersebut dengan menggunakan algoritma RC6, hasil dari proses dekripsi pertama masih berbentuk cipherteks dan dikirim kembali kepada penerima pesan. Untuk proses selanjutnya si penerima pesan akan melakukan proses dekripsi yang kedua dengan menggunakan algoritma RC6 dan hasil dekripsi yang kedua ini akan menghasilkan sebuah plainteks. flowchart dari proses kombinasi Kedua RC6 dengan RC6 digambarkan pada gambar 3.7.2 Pass 1 Pass 3 Pass 2 Gambar 3.5.2 Flowchart Kombinasi kedua RC6 dengan RC6

3.5.3 Proses Kombinasi Ketiga RC5 dengan RC6

Pada proses kombinasi yang ketiga dimana pihak pengirim pesan menggunakan algoritma RC5 untuk proses enkripsi dan dekripsi sedangkan penerima pesan Cipherteks B Cipherteks di enkripsi dengan RC6 Input kunci -2 Start Input Plainteks, Kunci -1 Plainteks di enkripsi dengan RC6 Cipherteks Stop Plainteks Cipherteks di dekripsi dengan RC6 Cipherteks Cipherteks di dekripsi dengan RC6 B Universitas Sumatera Utara menggunakan algoritma RC6 untuk proses enkripsi dan dekripsi. Pada proses pertama dalam kombinasi ketiga ini pengirim pesan melakukan penginputan plainteks dan kunci nya, lalu menggunakan algoritma RC5 untuk mengubah plainteks menjadi cipherteks. Untuk proses selanjutnya pengirim pesan melakukan proses dekripsi terhadap cipherteks yang dikirim oleh penerima pesan dan algoritma yang digunakan dalam proses dekripsi ini yaitu algoritma RC, selanjutnya penerima pesan melakukan dekripsi kembali terhadap cipherteks tersebut dengan menggunakan algoritma RC6 dan hasil dari proses dekripsi tersebut berupa plainteks yang merupakan pesan yang dapat dipahami atau dimengerti. F lowchart dari proses kombinasi Ketiga RC5 dengan RC6 digambarkan pada gambar 3.7.3 Pass 1 Pass 3 Pass 2 Gambar 3.5.3 Flowchart Kombinasi Ketiga RC5 dengan RC6 Stop Plainteks Cipherteks di dekripsi dengan RC6 Cipherteks Cipherteks di dekripsi dengan RC5 C Cipherteks C Cipherteks di enkripsi dengan RC6 Input kunci -2 Start Input Plainteks, Kunci -1 Plainteks di enkripsi dengan RC5 Cipherteks Universitas Sumatera Utara

3.5.4 Proses Kombinasi Keempat RC6 dengan RC5

Kombinasi yang keempat ini merupakan kebalikan dari kombinasi ketiga dimana pada proses kombinasi keempat si pengirim pesan menggunakan algoritma RC6 untuk proses enkripsi dan dekripsi sedangkan si penerima pesan menggunakan algoritma RC5 untuk proses enkripsi dan dekripsi pesan. Pada kombinasi keempat ini untuk proses pertama pengirim pesan menginputkan kunci dan plainteksnya dan menggunakan algoritma RC6 untuk mengubah plainteks tersebut menjadi cipherteks dan mengirimkan nya kepada penerima pesan. F lowchart dari proses kombinasi Keempat RC6 dengan RC5 digambarkan pada gambar 3.7.4 Pass 1 Pass 3 Pass2 Gambar 3.5.4 Flowchart Kombinasi Keempat RC6 dengan RC5 Cipherteks D Cipherteks di enkripsi dengan RC5 Input kunci -2 Start Input Plainteks, Kunci -1 Plainteks di enkripsi dengan RC6 Cipherteks Stop Plainteks Cipherteks di dekripsi dengan RC5 Cipherteks Cipherteks di dekripsi dengan RC6 D Universitas Sumatera Utara

3.6 Perbandingan RC5 dengan RC6

Beberapa perbedaan mendasar antara RC5 dengan RC6. 1. RC6 menggunakan 4 register berukuran b4-bit, sedangkan RC5 menggunakan 2 register berukuran b2-bit, dengan b menyatakan panjang blok. RC6 menggunakan 4 register karena dirancang untuk memenuhi spesifikasi AES, yaitu kemampuan beroperasi dalam mode 128 bit. Dengan 4 register kerja, maka besar masing- masing register kerja yang diperlukan hanya 32 bit 4 × 32 = 128 bit 2. RC6 memiliki operasi primitif tambahan, yaitu perkalian integer. Operasi perkalian ini digunakan untuk meningkatkan penyebaran bit yang dicapai setiap ronde. Hal ini tentunya berakibat pada tidak diperlukannya banyak ronde untuk mencapai tingkat penyebaran bit yang optimal, sehingga meningkatkan kecepatan pemrosesan. 3. RC6 menggunakan fungsi transformasi fx = x2x + 1 mod 2w yang kemudian diikuti oleh rotasi ke kiri sebanyak 5 bit untuk menentukan banyaknya bit yang akan dirotasi dalam setiap ronde. Pemilihan fungsi transformasi ini adalah demi memberikan RC6 ketahanan terhadap serangankriptanalisis diferensial. Fungsi kuadrat yang digunakan dapat memberikan tingkat penyebaran bit yang lebih cepat yang oleh karena itu akan memungkinkan RC6 menggagalkan proses menemukan karakteristiknya. Selain itu, dengan menggunakan fungsi kuadrat, maka RC6 dapat mengurangi sifat linearitas yang dapat dieksploitasi dalam kriptanalisis linear. Selain itu, rotasi sebanyak 5 bit yang mengikuti fungsi kuadrat juga memiliki peran dalam meningkatkan kompleksitas penyerangan RC6 dengan kriptanalisis diferensial dan kriptanalisis linear.

3.7 Perancangan Program