PDF Portable Document Format Algoritma Rinjdael

informasi yang asli, dilakukan proses deskripsi decipher, dengan menggunakan kunci yang benar.

2.3. PDF Portable Document Format

PDF adalah sebuah format dokumen yang memungkinkan memuat di dalamnya text, gambar, grafik. PDF merupakan singkatan dari Portable Document Format, PDF pertama kali dibuat oleh perusahaan Adobe System pada tahun 1993 sekaligus pemilik hak paten PDF tersebut Abdul, 2013. PDF pertama kali dibuat dimaksudkan untuk mempermudah pertukaran dokumen, keunggulan dari dokumen yang dibuat dengan format PDF adalah dia tidak bisa diubah secara langsung oleh si penerima dokumen tidak seperti file dokumen dengan format .doc, .txt atau yang lainnya. Namun belakangan file dokumen yang dibuat dengan format PDF bisa diubah isinya dengan menggunakan bantuan software PDF editor yang sudah banyak beredar.

2.4. Algoritma Rinjdael

Algoritma Rijndael dibaca Rhinedoll adalah algoritma yang telah dipilih oleh National Institute of Standards and Technology NIST sebagai calon Advanced Encryption Standard AES. Algoritma Rijndael dipilih dari daftar lima finalis, yang dipilih lebih dari 15 pengaju. Algoritma Rijndael akan mulai menggantikan data Encryption Standard DES dan kemudian Triple DES selama beberapa tahun ke depan dalam banyak aplikasi kriptografi. Algoritma ini dirancang oleh dua ahli kriptologi Belgia yaitu Vincent Rijmen dan Joan Daemen. Garis besar algoritma Rijndael yang beroperasi pada blok 128-bit dengan kunci 128-bit adalah sebagai berikut atau di luar proses pembangkitan round key: 1. AddRoundKey: melakukan XOR antara state awal plainteks dengan cipher key. Tahap ini disebut juga initial round. 2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah: a. SubBytes: substitusi byte dengan menggunakan table substitusi Sbox. b. ShiftRows: pergeseran baris-baris array state secara wrapping. c. MixColumns: mengacak data di masing-masing kolom array state. d. AddRoundKey: melakukan XOR antara state sekarang dengan round key. Universitas Sumatera Utara 3. Final round: proses untuk putaran terakhir: a. SubBytes b. ShiftRows c. AddRoundKey Garis besar algoritma enkripsi. Algoritma Rijndael termasuk dalam jenis algoritma kriptografi yang sifatnya simetri dan cipher block. Dengan demikian algoritma ini mempergunakan kunci yang sama saat enkripsi dan dekripsi serta masukan dan keluarannya berupa blok dengan jumlah bit tertentu. Rijndael mendukung berbagai variasi ukuran blok dan kunci yang akan digunakan. Namun Rijndael mempunyai ukuran blok dan kunci yang tetap sebesar 128, 192, 256 bit. Pemilihan ukuran blok data dan kunci akan menentukan jumlah proses yang harus dilalui untuk proses enkripsi dan dekripsi Surian, 2009. Algoritma Rinjdael adalah proses mengenkripsi dan mendekripsi blok data sepanjang 128 bit dengan panjang kunci 128 bit, 192 bit atau 256 bit. Proses enkripsi pada algoritma Rinjdael terdiri dari 4 jenis transformasi bytes, yaitu SubBytes, ShiftRows, Mixcolumns dan AddRoundKey. Pada algoritma Rinjdael, jumlah blok input, blok output, dan stateadalah 128 bit. Dengan besar data 128 bit, berarti Nb= 4 yang menunjukkan panjang data tiap baris adalah 4 byte Nur, 2012. Dengan blok input atau blok data sebesar 128 bit, key yang digunakan pada algoritma Rinjdael tidak harus mempunyai besar yang sama dengan blok input. Cipher key pada algoritma Rinjdael bisa menggunakan kunci dengan panjang 128 bit, 192 bit, atau 256 bit. Perbedaan panjang kunci akan mempengaruhi jumlah round yang akan diimplementasikan pada algoritma Rinjdael ini. Pada tahun 2001, Algoritma Rijndael, karya peneliti dari universitas di Belgia ditetapkan menjadi AES. Rijndael merupakan algoritma yang dapat menerima masukan data 128 bit dan menghasilkan data 128 bit pula. Bila digunakan dengan kunci 128 bit, maka kita menyebutnya sebagai AES-128. Selain 128 bit, AES juga dapat menerima kunci 192 dan 256 bit. Dalam tulisan ini akan dibahas AES-128. Plaintext diletakkan pada matrik segiempat yang disebut state berukuran 4x4 atau setiap sel berisi 1 byte untuk AES-128 Gambar 1. Universitas Sumatera Utara Gambar 2.5 Contoh State AES sumber : Surian, 2009 Kemudian dilakukan operasi pada setiap ronde yang dalam notasi pseudo C sebagai berikut : AddRoundKeyState; RondeState,KunciRonde { ByteSubState; ShiftRowState; MixColumnState; AddRoundKeyState; } Pada bagian akhir terdapat sedikit perbedaan operasi agar struktur dekripsinya menyerupai struktur enkripsinya. Operasi Mixcolumn ditiadakan pada ronde terakhir. RondeState,KunciRonde { ByteSubState; ShiftRowState; AddRoundKeyState; } Universitas Sumatera Utara Kotak subtitusi atau untuk ByteSub dibentuk dari fungsi inversi perkalian pada GF28 dan kemudian ditambahkan operasi XOR terhadap fungsi affine atau semacam fungsi linear yang didefinisikan sebagai berikut: Gambar 2.6 Contoh Keluaran Fungsi Inversi sumber : Surian, 2009 Di mana x adalah keluaran fungsi inversi dan y menjadi keluaran kotak subtitusi. Atau dengan kata lain, bila masukan kotak subtitusi adalah w dan keluarannya y, maka di dalam kotak subtitusi ini, w ini akan diinversi menjadi w-1 = x pada GF28, dan kemudian x ini akan dimasukkan ke dalam persamaan affine di atas untuk mendapatkan y. Operasi ShiftRow menggeser baris ke-1 ke kiri 1 byte, baris ke- 2 ke kiri 2 byte, dan baris ke-3 ke kiri 3 byte. Baris ke-0 tidak digeser. Kemudian operasi Mixcolumn merupakan operasi perkalian satu kolom dengan polinomial cx mod x4+1 di mana cx = 03x3 + 01x2 + 01x + 02. Persamaan ini dapat dituliskan juga dalam bentuk matrik sebagai berikut: Gambar 2.7 Contoh Mixcolumn sumber : Surian, 2009 Di mana a merupakan masukan dan b keluaran Mixcolumn. Sedangkan operasi AddRoundKey merupakan operasi sederhana berupa pengXORan data dengan key. Untuk membuktikan apakah AES kebal terhadap ASD, kita harus dapat memastikan jumlah kotak subtitusi yang aktif setelah beberapa ronde. Telah diketahui bahwa Universitas Sumatera Utara jumlah minimal kotak subtitusi yang aktif pada jalur diferensial adalah 25 buah untuk 4 ronde. Karena itu peluang diferensial maksimal 4 ronde = 2-625 = 2-150. Jadi, diperlukan 2150 pasang plaintext, sedangkan diketahui bahwa hanya terdapat maksimal 2128 plaintext yang mungkin, sehingga karakteristik AES 4R dapat menghalangi serangan terhadap AES 7 ronde 3R attack. Misalkan kita memasukkan karakteristik plaintext 0,0 a =1 dan i, j a lain =0 untuk i,j=0...3 atau perhatikan lagi gambar 1 dengan asumsi bahwa ai,j menunjukkan posisi pada baris i kolom j dengan peluang maksimal 2-6. Maka pada keluaran ByteSub BS ronde pertama, karekteristik akan tetap, demikian juga setelah ShiftRow SR di ronde pertama. Namun, Mixcolumn MC pada ronde pertama menyebabkan diferensial pada posisi a0,0 menyebar ke ai,0. Operasi AddRoundKey AK tidak mengubah kondisi, karena operasi XOR tidak mempengaruhi diferensial. Perhatikan bahwa bila kita memiliki 2 masukan x1 dan x2 maka x1 k = y1 dan x2 k = y2. Kemudian ∆x k k = x1 x2, jadi operator XOR tidak mempengaruhi diferensial. Sementara itu, diferensial pada byte-byte yang lain tetap nol, karena tidak ada operasi yang mengubahnya Akibatnya, masukan pada ronde kedua menjadi i,0 a = 1 untuk i=0..3 dan i, j a = 0 untuk i=0..3 dan j=1..3. Bila kita telusuri lebih lanjut, maka SB pada ronde ke-2 tidak mempengaruhi diferensial, sedangkan SR menyebarkan posisi diferensial tidak nol ke seluruh kolom. Akibatnya, pada keluaran MC, seluruh byte pada state memiliki diferensial = 1. Sehingga dalam 2 ronde, terdapat 5 buah kotak subtitusi yang aktif, dan pada ronde ketiga terdapat 16 buah kotak subtitusi yang aktif. Jalur diferensial ke ronde keempat, maka karena pada setiap kolom di ronde ketiga terdapat 4 byte aktif, maka pada ronde keempat paling sedikit akan terdapat 4 kotak subtitusi yang aktif. Akibatnya, dalam 4 ronde, akan terdapat minimal 25 kotak subtitusi yang aktif, sama seperti penjelasan di atas. Rijndael termasuk dalam jenis algoritmakriptografi yang sifatnya simetri dan cipher block . Dengan demikian algoritma ini mempergunakan kunci yang sama saat enkripsi dan dekripsi serta masukan dan keluarannya berupa blok dengan jumlah bit tertentu. Rijndael mendukung berbagai variasi ukuran blok dan kunci yang akan digunakan. Namun Rijndael mempunyai ukuran blok dan kunci yang tetap sebesar 128, 192, 256 bit. Pemilihan ukuran blok data dan kunci akan menentukan jumlah proses yang harus dilalui untuk proses enkripsi dan dekripsi. Berikut adalah perbandingan jumlah proses yang harus dilalui untuk masing-masing masukan. Universitas Sumatera Utara Tabel 2.1 Jumlah Proses Berdasarkan Bit Blok Dan Kunci sumber : Surian, 2009 Blok-blok data masukan dan kunci dioperasikan dalam bentuk array. Setiap anggota rray sebelum menghasilkan keluaran ciphertext dinamakan dengan state. Setiap state akan mengalami proses yang secara garis besar terdiri dari empat tahap yaitu, AddRoundKey, SubBytes, hiftRows dan MixColumns. Kecuali tahap MixColumns, ketiga tahap lainnya akan diulang pada setiap proses sedangkan tahap MixColumns tidak akan dilakukan pada tahap terakhir. Proses dekripsi adalah kebalikkan dari dekripsi. Karena terjadi beberapa tahap dalam proses enkripsi, maka diperlukan subkey yang akan dipakai pada tiap tahap. Pengembangan jumlah kunci yang akan dipakai diperlukan karena kebutuhan subkeysubkeyn yang akan dipakai dapat mencapai ribuan bit, sedangkan kunci yang disediakan secara default hanya 128-256 bit. Jumla total kunci yang diperlukan sebagai subkey adalah sebanyak NbNr+1, dimana Nb adalah besarnya blok data dalam satuan word. Sedangkan Nr adalah jumlah tahapan yang harus dilalui dalam satuan word. Sebagai contoh, bilamana digunakan 128 bit 4 word blok data dan 128 bit 4 word kunci maka akan dilakukan 10 kali proses. Dengan demikian dari rumus didapatkan 410+1=44 word=1408 bit kunci. Untuk melakukan pengembangan jumlah kunci yang akan dipakai dari kunci utama maka dilakukan key schedule.

2.5. 3DES Triple Data Encryption Standard