BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi

BAB IV PENGUJIAN DAN ANALISIS

Bab 2 Tinjauan Pustaka

BAB III ANALISIS SISTEM

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

OZ: Algoritma Cipher Blok Kombinasi Lai-Massey dengan Fungsi Hash MD5

Algoritma Enkripsi Baku Tingkat Lanjut

Algoritma Cipher Block EZPZ

Blox: Algoritma Block Cipher

Rancang Bangun Aplikasi Keamanan Data Menggunakan Metode AES Pada Smartphone

Penggunaan Timing Attack Sebagai Salah Satu Jenis Serangan pada Kriptografi

BAB II TINJAUAN PUSTAKA

Modifikasi Blok Cipher

PRESENTASI TUGAS AKHIR KI091391

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

TINJAUAN PUSTAKA. Kriptografi

BAB IV ANALISIS DAN PERANCANGAN

KRIPTOGRAFI FILE MENGGUNAKAN METODE AES DUAL PASSWORD. Imron Abdul Ilyas 1 Suryarini Widodo 2. Abstrak

Algoritma Spiral shifting

BAB III ANALISIS DAN PERANCANGAN

MENGENAL PROSES PERHITUNGAN ENKRIPSI MENGGUNAKAN ALGORITMA KRIPTOGRAFI ADVANCE ENCRYPTION STANDARD(AES) RIJDNAEL

Algoritma Cipher Block RG-1

BAB 3 METODOLOGI PENELITIAN

IMPLEMENTASI ALGORITMA AES PADA ENKRIPSI TEKS

Algoritma Kriptografi Modern (Bagian 2)

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

PERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD

Algoritma SAFER K-64 dan Keamanannya

BAB 1 PENDAHULUAN 1.1. Latar belakang

Bab 2 Tinjauan Pustaka

Implementasi Enkripsi File dengan Memanfaatkan Secret Sharing Scheme

UNIVERSITAS BINA NUSANTARA

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

POLYNOMIAL FUNCTIONS DAN IMPLEMENTASINYA DALAM ALGORITMA ADVANCED ENCRYPTION STANDARD PADA DATABASE ACCOUNTING

BAB III ANALISIS DAN PERANCANGAN

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

BAB 2 TINJAUAN PUSTAKA

STUDI DAN IMPLEMENTASI ALGORITMA RIJNDAEL UNTUK ENKRIPSI SMS PADA TELEPON GENGGAM YANG BERBASIS WINDOWS MOBILE 5.0

BAB 1 PENDAHULUAN Latar Belakang

Algoritma AES sebagai Metode Enkripsi dalam Password Management

APLIKASI PENGAMANAN DOKUMEN DENGAN MENGGUNAKAN TEKNIK KRIPTOGRAFI ALGORITMA AES-RINJDAEL

PERANCANGAN APLIKASI PENGAMANAN DATA TEKS DENGAN METODE ADVANCED ENCRYPTION STANDARD (AES) DAN METODE END OF FILE (EOF)

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH


BAB II TINJAUAN PUSTAKA

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN PERANCANGAN

Studi dan Implementasi HMAC dengan Fungsi Hash Grøstl dan Perbandingannya dengan CMAC dengan Algoritma Cipher Blok AES

Data Encryption Standard (DES)

Bab 1 PENDAHULUAN Latar Belakang

STUDI MENGENAI SERANGAN DIFFERENT CRYPTANALYSIS PADA ALGORITMA SUBSTITUTION PERMUATION NETWORK

Uji SAC Terhadap Algoritma Speck

BAB 4 IMPLEMENTASI DAN EVALUASI. dan sistem operasi dengan spesifikasi sebagai berikut: 1. Processor: Intel Pentium, Core Duo, 1.

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

Algoritma Block Cipher Mini-Box

BAB 2 TINJAUAN PUSTAKA

BAB I PENDAHULUAN. Universitas Sumatera Utara

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

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

Algoritma Kriptografi Modern (AES, RSA, MD5)

Modul Praktikum Keamanan Sistem

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

PERANCANGAN PROGRAM APLIKASI KRIPTOGRAFI MENGGUNAKAN ALGORITMA MARS DENGAN MODUS ECB

BAB IV HASIL DAN UJI COBA

Algoritma AES (Advanced Encryption Standard) dan Penggunaannya dalam Penyandian Pengompresian Data

Prosiding Matematika ISSN:

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

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

BAB III ANALISIS DAN DESAIN SISTEM

Distribusi Difference dari S-Box Berbasis Fungsi Balikan Pada GF(2 8 )

BAB III ANALISA MASALAH DAN PERANCANGAN

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

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

ALGORITMA KRIPTOGRAFI AES RIJNDAEL

MENGAMANKAN BASIS DATA KEUANGAN KOPERASI DENGAN MENGGUNAKAN KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD

BAB 1 PENDAHULUAN. khususnya internet sangatlah cepat dan telah menjadi salah satu kebutuhan dari

DATA ENCRYPTION STANDARD (DES) STANDAR ENKRIPSI DATA. Algoritma Kriptografi Modern

Bab 2: Kriptografi. Landasan Matematika. Fungsi

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

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

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

Perancangan Super Enkripsi Menggunakan Metode Substitusi S-Box AES dan Metode Transposisi dengan Pola Vertical-Horizontal Artikel Ilmiah

PENERAPAN ALGORITMA AES (ADVANCE ENCRYPTION STANDARD) 128 DAN VIGENERE CIPHER PADA APLIKASI ENKRIPSI PESAN SINGKAT BERBASIS ANDROID

BAB 2 TINJAUAN PUSTAKA

BAB III ANALISIS DAN PERANCANGAN SISTEM

Studi dan Analisis Keamanan Data Encryption Standard Dengan Menggunakan Teknik Differential Cryptanalysis

PENGGUNAAN POLINOMIAL UNTUK STREAM KEY GENERATOR PADA ALGORITMA STREAM CIPHERS BERBASIS FEEDBACK SHIFT REGISTER

BAB III ANALISA DAN DESAIN SISTEM. perancangan pembuatan kriptografi Impementasi AES ( Advanced Encyrption

Gambar 3.1 Flowchart proses enkripsi AES

BAB 2 LANDASAN TEORI

Keamanan Sistem Komputer DES, AES, RSA

Algoritma Rubik Cipher

Studi dan Analisis Mengenai Aplikasi Matriks dalam Kriptografi Hill Cipher

Properti Algoritma RSA

Perancangan Kriptografi Block Cipher 256 Bit Berbasis Pola Tarian Liong (Naga) Artikel Ilmiah

Transkripsi:

BAB 2 LANDASAN TEORI 2.1. Tol Tol adalah biaya yang ditarik oleh pihak yang berwenang kepada orang yang melewati suatu daerah/jalan di mana pendapatan tersebut digunakan untuk biaya pemeliharaan jalan/daerah tersebut. Pengelola tol biasanya merupakan suatu perusahaan yang berfungsi untuk membangun, mengembangkan, dan merawat tol tersebut. Perusahaan ini menarik biaya dari pengguna yang ingin melewati jalan tol untuk mengembangkan perusahaan tersebut. Dengan semakin berkembangnya suatu negara, tingkat produksi dan konsumsi masyarakatnya, akan diperlukan kapasitas jalan yang semakin baik dan luas. Baik secara kuantitas maupun kualitas. Karena itulah dibangun tol yang diharapkan dapat melayani permintaan masyarakat yang semakin meningkat. Pembangunan tol juga bertujuan untuk mengurangi kemacetan. Di Indonesia tol dibangun untuk mengurangi kemacetan dan sebagai sarana penghubung antar kota. 2.1.1. Jalan Tol Jalan di mana pemilik/pihak yang berwenang akan jalan tersebut meminta biaya untuk penggunaaanya. 2.1.2. Pintu Tol / Gerbang Tol Suatu tempat pada jalan tol di mana orang melakukan transaksi pembayaran tol. 9

10 2.2. Sekuriti Sekuriti merupakan faktor penting dalam pengiriman informasi. Konfidensialitas informasi sering kali menjadi kendala dalam pengiriman pesan. Vulnerabilitas atau kelemahan pada sistem sekuriti dapat dieksploitasi sehingga menyebabkan kehilangan atau kerugian informasi. Ancaman terhadap sekuriti ini dapat disebabkan oleh manusia, bencana alam, ataupun kerusakan alat. Menurut Charles P. Pfleeger (1997, p22) ada empat macam ancaman terhadap sistem komputasi, yaitu : Interupsi : suatu cara yang menyebabkan suatu aset penting menjadi hilang, tidak dapat digunakan, atau tidak berguna sama sekali. Intersepsi : suatu cara di mana ada pihak yang tidak berhak memperoleh akses ke sebuah informasi. Modifikasi : suatu cara di mana pihak yang tidak berhak memperoleh akses, dan dapat merusak dengan cara mengubah pesan atau informasi tersebut. Fabrikasi atau pemalsuan : salah satu faktor ancaman yang membahayakan di mana pihak luar yang tidak berhak dapat memalsukan sebuah informasi atau program yang akan digunakan. Sekuritas komputer akan dianggap aman menurut S. Garfinkel (2002,p1), bila memenuhi ketiga hal berikut, yaitu : Kerahasiaan : informasi dari sistem komputer dapat diakses hanya oleh pihak yang berhak atau legal. Integritas : informasi hanya bisa dimodifikasi oleh pihak-pihak yang berhak dengan cara yang legal.

11 Ketersediaan : sebuah asset dapat diakses oleh orang yang berhak saja dimana tidak dibatasi hanya mengakses suatu bagian saja. 2.3. Kriptografi Cryptography (kriptografi) berasal dari bahaya Yunani kryptos yang berarti tersembunyi dan graphein yang artinya menulis. Menurut Trappe (2002, p1-p2), secara teknis Cryptology (Kriptologi) adalah suatu studi tentang komunikasi melalui suatu saluran yang tidak aman, dan masalah-masalah lainnya yang berhubungan. Cryptography (kriptografi) adalah proses merancang sistem untuk hal tersebut. Sehingga kriptografi merupakan ilmu dari penulisan rahasia sehingga sebuah informasi tidak dapat dibaca oleh pihak yang tidak berhak. Ilmu tentang bagaimana memecahkan kode kriptografi disebut crytanalysis (kriptanalisis) atau codebreaking. Kriptografi dan kriptanalisis sering bekerja sama dalam satu wadah yang disebut kriptologi. Karena itu pada prakteknya kriptografi sudah bukan hanya melakukan penyandian tetapi juga memecahkan sandi. 2.3.1. Sandi (Cipher) Cipher adalah suatu algoritma untuk enkripsi dan dekripsi. Operasi utama dari cipher umumnya dikontrol oleh suatu key, suatu standar informasi yang menentukan bagaimana teks cipher dihasilkan. Suatu protokol menentukan bagaimana cipher digunakan untuk menghasilkan sesuatu. Pada umumnya, suatu kode rahasia sering diasumsikan sama dengan cipher. Bagaimanapun juga pada kriptografi, masing-masing istilah tersebut mempunyai arti yang berbeda-beda. Kode adalah suatu metode untuk kriptografi klasik, yang digunakan

12 untuk menggantikan teks yang lebih kompleks, dari teks yang panjang menjadi pendek. Sebaliknya, cipher klasik biasanya hanya menggantikan atau mengatur ulang tiap huruf sehingga panjang teks tersebut tetap. 2.3.1.1. Block Cipher Pada kriptografi, block cipher adalah suatu symmetric key cipher yang beroperasi pada panjang bit tertentu, yang disebut block, dengan transformasi yang tidak berubahubah. Ketika mengenkripsi, suatu block cipher dapat menggunakan (sebagai contoh saja) 128-bit block plain-text (teks murni) sebagai masukan, dan menghasilkan keluaran berupa 128-bit chipertext. Transformasinya dikendalikan menggunakan masukan kedua, yaitu kode rahasia (key). Hal yang sama berlaku juga untuk mendekripsi ciphertext tersebut. Untuk mengenkripsi pesan yang lebih panjang daripada ukuran block, suatu mode operasi digunakan. Gambar 2.1. Block Cipher Block cipher terdiri dari dua pasang algoritma, satu untuk enkripsi (E) dan satunya untuk dekripsi (E -1 ). Kedua algoritma ini menerima dua masukan, suatu block dengan ukuran n-bit dan suatu key dengan ukuran k-bit, yang menghasilkan keluaran

13 block n-bit. Untuk tiap key yang mana saja, dekripsi merupakan kebalikan dari enkripsi sehingga: untuk semua block M dan key K. Untuk setiap key K, E K adalah permutasi (suatu pemetaan bijektif) dari set block masukan. Setiap key memilih satu permutasi dari kemungkinan 2 n! set. Ukuran block, n, umumnya 64 atau 128 bit, walaupun beberapa cipher mempunyai ukuran block bertipe variabel. Ukuran paling umum sampai pertengahan 1990 an adalah 64-bit, setelah itu desain yang baru mulai berubah ke panjang 128-bit. Satu dari beberapa modus operasi sering digunakan bersamaan dengan padding (menambahkan sesuatu ke dalam teks sehingga teks tersebut mempunyai panjang tertentu) untuk membuat teks dengan panjang berapapun dapat dienkripsi. Setiap modus mempunyai karakteristik yang berbeda dalam upaya pengurangan kesalahan, kemudahan dari random access, dan kelemahan dari berbagai macam tipe serangan. Tipe ukuran key (k) yang umum adalah 40, 56, 64, 80, 128, 192 dan 256 bit. Sejak 2005, 80 bit merupakan batas bawah dari panjang key yang dibutuhkan untuk menghindari teknik penyerangan brute force.

14 2.3.1.2. Iterated Block Ciphers Sebagian besar dari block cipher dibentuk dengan cara mengaplikasikan fungsi yang sederhana secara berulang-ulang. Pendekatan ini dikenal dengan istilah iterated block cipher. Setiap iterasi disebut dengan satu round, dan fungsi perulangannya disebut round function; 4 sampai 32 round iterasi merupakan sesuatu yang umum. Banyak block cipher yang dapat dikategorikan sebagai Feistel Networks, atau sebagai substitution-permutation networks yang umum. Operasi aritmetik, logis (khususnya XOR), S-box dan berbagai macam permutasi yang lain sering digunakan sebagai komponen. 2.3.2. Algoritma Suatu set perintah tertentu yang digunakan untuk menyelesaikan suatu tugas, di mana bila diberikan kondisi awal, akan berakhir pada suatu kondisi akhir yang dikenali. Pada algoritma bisa terjadi perulangan (iterasi) atau membutuhkan pengambilan keputusan (seperti logika ataupun perbandingan) sampai tugas tersebut diselesaikan. 2.3.2.1. Algoritma Advanced Encryption Standard (AES) / Rijndael Algoritma ini merupakan block cipher yang banyak digunakan sebagai standar enkripsi. Algoritma Rijndael menggunakan substitution-permutation network yang pengimplementasiannya cukup mudah dan hanya membutuhkan memori yang kecil. Sebagai suatu standar enkripsi, AES sekarang sedang dikembangkan dalam skala yang luas.

15 AES ini menggunakan ukuran block 128-bit dan mempunyai ukuran key 128, 192, dan 256-bit. AES beroperasi menggunakan array 4 4 byte yang disebut state. tahap: Untuk enkripsi, setiap round dari AES (kecuali round terakhir) terdiri dari empat 1. SubBytes : Pada langkah ini, setiap byte pada array ditukar menggunakan S- box 8 bit. Operasi ini mengakibatkan enkripsi ini tidak linear. S-box yang digunakan diturunkan oleh fungsi invers dari fungsi polinomial 2 8 yang dikenal tidak linear. Untuk menghindari serangan yang berdasarkan fungsi aljabar sederhana, S-box ini dibentuk dengan mengkombinasikan fungsi invers dengan transformasi affine yang tidak dapat diubah kembali. S-box juga dipilih untuk menghindari ditemukannya titik tertentu dan juga kebalikan dari titik tersebut. Gambar 2.2. langkah SubBytes 2. ShiftRows : Langkah ini dilakukan pada baris dari tiap state, langkah ini menggeser tiap byte pada tiap baris dengan offset tertentu. Pada AES, baris awal tidak di ubah. Setiap byte dari baris kedua dipindah ke kiri satu. Begitu

16 pula dengan baris ketiga dan keempat, digeser pula sesuai dengan offset kedua dan ketiganya. Dengan cara ini, setiap kolom dari state output terdiri dari byte yang berasal dari kolom state input. Gambar 2.3. langkah ShiftRows 3. MixColumns : Pada langkah ini, keempat byte pada tiap kolom dari state dikombinasikan menggunakan transformasi linear yang invertible. Fungsi ini menggunakan masukan empat byte dan keluaran empat byte, dimana tiap masukan byte mempengaruhi keempat byte keluaran. MixColumns yang digunakan bersama ShiftRows menghasilkan keacakan pada cipher. Tiap kolom diperlakukan sebagai suatu polinomial 2 8 dan kemudian dioperasikan dengan modulo x 4 + 1 dengan suatu fungsi polinomial tertentu c(x). Langkah ini dapat dilihat pula sebagai suatu matrix multiplikatif pada Rijndael's finite field. c(x) yang digunakan untuk enkripsi ialah c(x)=(03)x 3 +(01)x 2 +(01)x+(02). Sedangkan untuk proses deskripsi akan digunakan c(x)=(0b)x 3 +(0D)x 2 +(09)x+(0E).

17 Gambar 2.4. langkah MixColumns 4. AddRoundKey : Pada langkah ini, subkey-nya dikombinasikan dengan tiap state. Untuk tiap giliran, satu subkey diturunkan dari key utama menggunakan key schedule. Tiap subkey mepunyai ukuran yang sama dengan state. Tiap subkey kemudian ditambahkan dengan cara menggabungkan tiap byte pada state dengan byte yang berhubungan pada subkey menggunakan operasi XOR. Gambar 2.5. langkah AddRoundKey Round terakhir melakukan proses MixColumns.

18 2.3.2.2. S-Box Rijndael Nilai S-box yang digunakan pada algoritma Rijndael ditunjukkan dengan nilai hexadesimal dibawah ini: 0 1 2 3 4 5 6 7 8 9 a b c d e f --- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 00 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 10 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 20 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 30 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75 40 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 50 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 60 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 70 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 80 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 90 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db a0 e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79 b0 e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08 c0 ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a d0 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e e0 e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df f0 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16 Tabel 2.1. Tabel S-Box Rijndael Di sini kolom akan ditentukan berdasarkan digit yang paling tidak penting, dan barisnya ditentukan dengan digit utama. Contohnya nilai 0x9a diubah menjadi 0xb8 dengan menggunakan S-box Rijndael. Invers S-box adalah S-box yang dijalankan secara terbalik. Contohnya, invers S- box dari 0xdb adalah 0x9f. Tabel berikut merepresentasikan invers dari S-box Rijndael:

19 0 1 2 3 4 5 6 7 8 9 a b c d e f --- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 00 52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb 10 7c e3 39 82 9b 2f ff 87 34 8e 43 44 c4 de e9 cb 20 54 7b 94 32 a6 c2 23 3d ee 4c 95 0b 42 fa c3 4e 30 08 2e a1 66 28 d9 24 b2 76 5b a2 49 6d 8b d1 25 40 72 f8 f6 64 86 68 98 16 d4 a4 5c cc 5d 65 b6 92 50 6c 70 48 50 fd ed b9 da 5e 15 46 57 a7 8d 9d 84 60 90 d8 ab 00 8c bc d3 0a f7 e4 58 05 b8 b3 45 06 70 d0 2c 1e 8f ca 3f 0f 02 c1 af bd 03 01 13 8a 6b 80 3a 91 11 41 4f 67 dc ea 97 f2 cf ce f0 b4 e6 73 90 96 ac 74 22 e7 ad 35 85 e2 f9 37 e8 1c 75 df 6e a0 47 f1 1a 71 1d 29 c5 89 6f b7 62 0e aa 18 be 1b b0 fc 56 3e 4b c6 d2 79 20 9a db c0 fe 78 cd 5a f4 c0 1f dd a8 33 88 07 c7 31 b1 12 10 59 27 80 ec 5f d0 60 51 7f a9 19 b5 4a 0d 2d e5 7a 9f 93 c9 9c ef e0 a0 e0 3b 4d ae 2a f5 b0 c8 eb bb 3c 83 53 99 61 f0 17 2b 04 7e ba 77 d6 26 e1 69 14 63 55 21 0c 7d Tabel 2.2. Tabel Invers S-Box Rijndael 2.3.2.3. Keamanan Algoritma Rijndael Sejak tahun 2005, belum pernah ada serangan yang berhasil terhadap AES yang bisa ditemui. Dari hasil pemeriksaan National Security Agency (NSA) algoritma AES cukup aman untuk digunakan pada data non-classified pemerintah Amerika Serikat. Pada Juni 2003 pemerintah Amerika serikat menyatakan bahwa AES dapat digunakan untuk informasi classified.

20 2.3.3. Key Key digunakan untuk mengontrol operasi dari cipher sehingga hanya key yang cocok dapat digunakan untuk mengubah teks terenkripsi menjadi teks standar. Keamanan suatu sistem bergantung dari key ini. Karena itulah key ini harus cukup besar ukurannya (key size) sehingga metode serangan brute force akan kesulitan menentukan key yang cocok. 2.3.3.1. Key Schedule Key schedule adalah suatu algoritma untuk menghitung subkey dari setiap round pada produk cipher yang berasal dari enkripsi atau dekripsi key. Beberapa cipher mempunyai key schedule yang sederhana, contohnya block cipher TEA akan membagi empat 128-bit key ke dalam 32-bit key dan menggunakannya secara berulang-ulang pada round yang berkesinambungan. Berdasarkan penelitian oleh Knudsen dan Mathiassen (2004), key schedule mempunyai peran penting dalam menghadapi dekripsi dengan metode linear dan differensial. 2.3.3.2. Key Size dan Block Size Key size atau sering disebut juga key length adalah suatu ukuran dari angka yang mungkin digunakan sebagai key pada cipher. Pada kriptografi modern, panjang ini ditampilkan dalam bentuk bit karena penggunaan key biner. Block size adalah panjang suatu string yang bertipe bit. Block size dari masukan dan keluaran teks yang di cipher sama.

21 2.3.4. Finite Field Arithmetic Aritmetika pada finite field mempunyai perbedaan dengan aritmetika yang biasa. Semua operasi pada finite field mempunyai hasil perhitungan yang berada dalam finite field tersebut. 2.3.4.1. Notasi Walaupun elemen-elemen pada finite field dapat dinyatakan dalam bentuk numerik (desimal, heksadesimal, ataupun biner), seringkali lebih mudah dinyatakan dalam bentuk polinomial, dengan setiap variabel pada polinomialnya mewakili bit-bit pada nilai binernya. Contoh dibawah ini merepresentasikan nilai yang sama pada finite field dengan karakteristik 2: Heksadesimal : {53} Biner : {01010011} Polinomial : x 6 + x 4 + x + 1 Eksponen pada polinomial digunakan sebagai penanda yang memungkinkan untuk mengetahui nilai setiap bit pada saat terjadi operasi aritmetika. Jika yang digunakan adalah nilai heksadesimal atau biner maka digunakan tanda kurung ( { dan } ) yang menunjukkan bahwa nilai tersebut adalah elemen dari finite field. 2.3.4.2. Penambahan dan Pengurangan Penambahan dan pengurangan dilakukan menggunakan dua polinomial. Setiap variabel pada polinomial hanya boleh memiliki nilai satu atau nol. Pada finite field dengan karakteristik 2, penambahan dan pengurangan sama, dan keduanya dilakukan dengan menggunakan operator XOR. Contohnya:

22 Heksadesimal : {53} + {CA} = {99} Biner : {01010011} + {11001010} = {10011001} Polinomial : (x 6 + x 4 + x + 1) + (x 7 + x 6 + x 3 + x) = x 7 + x 4 + x 3 + 1 Pada kedua nilai diatas terdapat x 6, dan x 6 + x 6 menjadi 2x 6. Tetapi karena setiap koefisien harus dimodulo 2 maka hasilnya akan menjadi 0x 6 sehingga nilai tersebut dibuang. 2.3.4.3. Perkalian Perkalian pada finite field ialah perkalian yang dimodulo dengan irreducible polynomial yang digunakan untuk mendefinisikan finite field tersebut. Maksudnya, perkalian tersebut diikuti dengan pembagian yang menggunakan irreducible polynomial sebagai pembagi, sisa hasil bagi tersebut ialah hasilnya. Contoh: jika irreducible polynomial yang digunakan f(x) = x 8 + x 4 + x 3 + x + 1 (irreducable polynomial yang digunakan pada algoritma Rijndael), maka {53} {CA} = {01} (x 6 + x 4 + x + 1)(x 7 + x 6 + x 3 + x) = x 13 + x 12 + x 9 + x 7 + x 11 + x 10 + x 7 + x 5 + x 8 + x 7 + x 4 + x 2 + x 7 + x 6 + x 3 + x = x 13 + x 12 + x 11 + x 10 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + x 2 + x dan

23 x 13 + x 12 + x 11 + x 10 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 + x 2 + x modulo x 8 + x 4 + x 3 + x + 1 = ( 11111101111110 mod 100011011) = 1, yang ditunjukkan dengan pembagian bersusun dibawah ini (menggunakan notasi biner untuk mempermudah): 111101 100011011)11111101111110 100011011 1110000011110 100011011 110110101110 100011011 10101110110 100011011 0100011010 000000000 100011010 100011011 00000001 2.3.5. Metode Serangan Brute Force Metode serangan brute force ini adalah metode yang dapat menemukan key yang digunakan oleh cipher. Metode dilakukan dengan cara mencoba key satu persatu hingga menemukan key yang cocok. Walaupun tidak efisien metode ini dapat memecahkan semua metode cipher. Oleh karena itu key pada cipher menggunakan nilai yang besar sehingga brute force memerlukan waktu yang lebih lama untuk menemukan key yang cocok.

24 2.4. Perangkat Lunak (Software) Menurut Pressman (2001, p6), perangkat lunak adalah (1) instruksi (program komputer) yang ketika dieksekusi akan memberikan fungsi dan performa seperti yang diinginkan (2) struktur data yang memungkinkan program memanipulasi informasi secara proporsional, dan (3) dokumen yang menggambarkan operasi dan penggunaan program. Menurut Sommerville (2001, p6), perancangan perangkat lunak adalah disiplin perancangan yang berhubungan dengan semua aspek dari produksi perangkat lunak dari tahap awal spesifikasi sistem sampai dengan pemeliharaan setelah sistem dalam tahap berjalan. 2.4.1. Daur Hidup Perangkat Lunak Salah satu model perancangan perangkat lunak adalah dengan menggunakan model air terjun (waterfall model). Menurut Sommerville (2001, p45), tahap-tahap utama dalam model air terjun yang menggambarkan aktivitas dasar pengembangan perangkat lunak adalah sebagai berikut: - Analisis dan penentuan kebutuhan Tugas, kendala dan tujuan sistem ditentukan melalui konsultasi dengan pemakai sistem. Kemudian ditentukan cara yang dapat dipahami, baik oleh user maupun pengembang. - Desain sistem dan perangkat lunak. Proses desain sistem terbagi dalam kebutuhan perangkat keras dan perangkat lunak. hal ini menentukan arsitektur perangkat lunak secara keseluruhan. Desain perangkat lunak mewakili fungsi sistem perangkat

25 lunak dalam suatu bentuk yang dapat ditransformasikan ke dalam satu atau lebih program yang dapat dieksekusi. - Implementasi dan pengujian unit. Dalam tahap ini, desain perangkat lunak direalisasikan dalam suatu himpunan program atau unit-unit program. Pengujian unit mencakup kegiatan verifikasi terhadap suatu unit sehingga memenuhi syarat spesifikasinya. - Integrasi dan pengujian sistem. Unit program secara individual diintegrasikan dan diuji sebagai satu sistem yang lengkap untuk memastikan bahwa kebutuhan perangkat lunak telah terpenuhi. Setelah pengujian, sistem perangkat lunak disampaikan kepada user. - Pengoperasian dan pemeliharaan. Secara normal, walaupun tidak selalu diperlukan, tahap ini merupakan bagian siklus hidup yang terpanjang. Sistem telah terpasang dan sedang dalam penggunaan. Pemeliharaan mencakup perbaikan kesalahan yang tidak ditemukan dalam tahap-tahap sebelumnya, meningkatkan implementasi unit-unit sistem dan mempertinggi pelayanan sistem yang disebabkan oleh ditemukannya kebutuhan baru.

26 Gambar 2.6. Daur Hidup Perangkat Lunak Sumber: Sommerville (2001). 2.5. Alat Bantu Perancangan 2.5.1. State Transition Diagram State Transition Diagram adalah salah satu cara menggambarkan jalannya proses. Di dalamnya dapat dilihat input / kondisi, state proses, output / aksi yang terjadi dan perubahan state. Komponen dasar state transition diagram dapat dilihat pada Gambar 2.3.

27 State X State sekarang Input Output State X State selanjutnya Gambar 2.7. Komponen Dasar State Transition Diagram Sumber: Kowal (1988). State, menunjukkan satu atau lebih kegiatan atau keadaan atau atribut yang menjelaskan bagian tertentu dari proses. Anak panah berarah, menunjukkan perubahan state yang disebabkan oleh input tertentu (state X ke state Y). Input / kondisi merupakan suatu kejadian pada lingkungan eksternal yang dapat dideteksi oleh sistem, misal sinyal, interupsi atau data. Hal ini menyebabkan perubahan dari satu state ke state lainnya atau dari satu aktivitas ke aktivitas lainnya. Output / aksi merupakan hal yang dilakukan oleh sistem jika terjadi perubahan state atau merupakan reaksi terhadap kondisi. Aksi dapat menghasilkan output, tampilan pesan pada layar, kalkulasi atau kegiatan lainnya. 2.5.2. Pseudocode Pseudocode adalah suatu bahasa umum yang menggunakan kosa kata dari satu bahasa (misal: bahasa Inggris) dan perintah (syntax) dari bahasa yang lain (misal: bahasa pemrograman terstruktur). (Pressman, 1997, p411)

28 Pseudocode adalah suatu bahasa pemrograman yang informal dan sangat fleksibel, yang tidak dimaksudkan untuk dieksekusi pada mesin, tetapi hanya digunakan untuk mengorganisir cara berpikir pemrogram sebelum melakukan coding. (Pege-Jones, 1980, p11) Pseudocode dapat menjadi alternatif dalam perancangan perangkat lunak di samping alat bantu berupa diagram. Tidak ada standarisasi dalam hal penulisan pseudocode. Pemrogram dapat menulisnya dalam bahasa apa saja yang mereka sukai dan dipadukan dengan bahasa pemrograman tertentu. Pemrogram juga bebas menggunakan teknik dan aturannnya sendiri.