BAB II LANDASAN TEORI

dokumen-dokumen yang mirip
BAB 2 LANDASAN TEORI

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

LAMPIRAN A ALGORITMA AES 128

BAB III PENGERTIAN DAN SEJARAH SINGKAT KRIPTOGRAFI

BAB 2 TINJAUAN PUSTAKA

BAB III ANALISIS DAN PERANCANGAN

Algoritma Enkripsi Baku Tingkat Lanjut

Pengenalan Kriptografi

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

BAB 2 TINJAUAN TEORITIS

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

TINJAUAN PUSTAKA. Kriptografi

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

IMPLEMENTASI ALGORITMA AES PADA ENKRIPSI TEKS

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

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


BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi

BAB III ANALISIS DAN PERANCANGAN

BAB I PENDAHULUAN. Universitas Sumatera Utara

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

PERANCANGAN APLIKASI PENGAMANAN DATA DENGAN KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD (AES)

Advanced Encryption Standard (AES)

BAB I PENDAHULUAN. Pada era teknologi informasi yang semakin berkembang, pengiriman data

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

BAB II LANDASAN TEORI

Aplikasi Teori Bilangan dalam Algoritma Kriptografi

Pengantar Kriptografi

BAB 2 TINJAUAN PUSTAKA

BAB III ANALISA DAN DESAIN SISTEM

PERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD

BAB 2 TINJAUAN PUSTAKA

Aplikasi Perkalian dan Invers Matriks dalam Kriptografi Hill Cipher

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

BAB 2 LANDASAN TEORI

IMPLEMENTASI KRIPTOGRAFI MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDAR (AES) UNTUK PENGAMANAN DATA TEKS

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


Pengkajian Metode dan Implementasi AES

BAB II TINJAUAN PUSTAKA

Bab 2 Tinjauan Pustaka

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA MASALAH DAN PERANCANGAN

BAB 1 PENDAHULUAN 1.1. Latar belakang

BAB I PENDAHULUAN. pesat, hal ini yang menyebabkan munculnya kemajuan teknologi informasi.

Gambar 3.1 Flowchart proses enkripsi AES

Rancang Bangun Aplikasi Keamanan Data Menggunakan Metode AES Pada Smartphone

BAB II LANDASAN TEORI

BAB III ANALISIS DAN PERANCANGAN

IMPLEMENTASI ALGORITMA KRIPTOGRAFI AES UNTUK ENKRIPSI DAN DEKRIPSI

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN. Teknologi Quick Response Code (QR-Code) adalah salah satu teknologi

Modul Praktikum Keamanan Sistem

IMPLEMENTASI ALGORITMA KEYED-HASH MESSAGE AUTHENTICATION CODE (HMAC) PADA PESAN TEKS BERBASIS CHATTING

BAB III ANALISIS DAN PERANCANGAN

WINDOWS VISTA BITLOCKER DRIVE ENCRYPTION

Implementasi Enkripsi File dengan Memanfaatkan Secret Sharing Scheme

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

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

PENERAPAN ALGORITMA AES : RIJNDAEL DALAM PENGENKRIPSIAN DATA RAHASIA

PERANAN ARITMETIKA MODULO DAN BILANGAN PRIMA PADA ALGORITMA KRIPTOGRAFI RSA (Rivest-Shamir-Adleman)

Implementasi Algoritma Rot Dan Subtitusional Block Cipher Dalam Mengamankan Data

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

Rancang Bangun Kombinasi Chaisar Cipher dan Vigenere Cipher Dalam Pengembangan Algoritma Kriptografi Klasik

Algoritma Spiral shifting


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

BAB 2 TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

RANCANG BANGUN APLIKASI ENKRIPSI DAN DEKRIPSI CITRA DIGITAL MENGGUNAKAN ALGORITMA RIJNDAEL BERBASIS JAVA SE

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

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

BAB II LANDASAN TEORI. bilangan bulat dan mengandung berbagai masalah terbuka yang dapat dimengerti

Algoritma AES sebagai Metode Enkripsi dalam Password Management

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

BAB I PENDAHULUAN 1.1 Latar Belakang

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

Pemampatan Data Sebagai Bagian Dari Kriptografi

MAKALAH KRIPTOGRAFI KLASIK

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom

ADVANCED ENCRYPTION STANDARD (AES) DENGAN ONE TIME PASSWORD UNTUK KEAMANAN LAYANAN SMS BANKING

Proses Enkripsi dan Dekripsi menggunakan Algoritma Advanced Encryption Standard (AES)

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

(pencurian, penyadapan) data. Pengamanan data dapat dilakukan dengan dua cara, yaitu steganography dan cryptography.

Aplikasi Kriptografi Dengan Algoritma (Advanced Encryption Standard) AES Menggunakan Microsoft Visual C Sharp Berbasis Desktop

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

BAB II TINJAUAN PUSTAKA

KRIPTOGRAFI MATERI KE-2

APLIKASI PENGAMANAN DOKUMEN DENGAN MENGGUNAKAN TEKNIK KRIPTOGRAFI ALGORITMA AES-RINJDAEL

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

BAB II TINJAUAN PUSTAKA

KRIPTOGRAFI SISTEM KEAMANAN KOMPUTER

PERANCANGAN APLIKASI KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD BERBASIS ANDROID NASKAH PUBLIKASI

PERANCANGAN APLIKASI KOMPRESI CITRA DENGAN METODE RUN LENGTH ENCODING UNTUK KEAMANAN FILE CITRA MENGGUNAKAN CAESAR CHIPER

Perancangan Aplikasi Kriptografi File Dengan Metode Algoritma Advanced Encryption Standard (AES)

BAB I PENDAHULUAN. Dewasa ini teknologi pengiriman pesan teks semakin berkembang,

Transkripsi:

BAB II LANDASAN TEORI 2.1 Kriptografi Kriptografi (cryptography) berasal dari bahasa Yunani : cryptos artinya secret (rahasia), sedangankan graphein artinya writing (tulisan). Jadi, kriptografi berarti secret writing (tulisan rahasia). Ada beberapa definisi kriptografi yang telah dikemukakan di dalam berbagai literatur. Definisi yang dipakai di dalam buku-buku yang lama (sebelum tahun 1980-an) menyatakan bahwa kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikan ke dalam bentuk yang tidak dapat dimengerti lagi maknanya.. Kriptografi adalah ilmu dan seni untuk menjaga kemanan pesan (Munir, 2006). Namun saat ini kriptografi lebih dari sekadar privacy, tetapi juga untuk tujuan data integrity, authentication, dan non-repudiation. Kata seni di dalam definisi di atas berasal dari fakta sejarah bahwa pada masa-masa awal sejarah kriptografi, setiap orang mungkin punya cara yang unik untuk merahasiakan pesan. Cara-cara unik tersebut mungkin berbeda-beda pada setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia pesan mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata graphy didalam cryptography itu sendiri sudah menyiratkan sebuah seni). Gambar 2.1 Proses Kriptografi Secara Umum 6

7 2.2 Sejarah Kriptografi Kriptografi mempunya sejarah yang sangat menarik dan panjang. Kriptografi sudah digunakan 4000 tahun yang lalu, diperkenalkan oleh orang orang Mesir lewat hieroglyph. Jenis tulisan ini bukanlah standar untuk menulis pesan (Ariyus, 2008). Gambar 2.2 Tulisan yang menggunakan Hieroglyph Sebagian besar sejarah kriptografi bagian dari kriptografi klasik, yaitu metode kriptografi yang menggunakan kertas dan pensil atau menggunakan alat bantu mekanik yang sederhana. Kriptografi klasik secara umum dapat dikelompokan menjadi dua kategori, yaitu algoritma transposisi (transposition cipher) dan algoritma subtitusi (substitution cipher). Algoritma transposisi adalah algoritma yang mengubah susunan-susunan huruf didalam pesan, sedangkan algoritma subtitusi yaitu mengganti setiap huruf atau kelompok huruf dengan sebuah huruf.-huruf lain. Penggunaan transposition cipher yaitu oleh tentara Sparta di Yunani pada permulaan tahun 400 SM. Mereka menggunakan apa yang dinamakan scytale (Gambar 2.3). Scytale terdiri dari sebuah kertas panjang dari daun papyrus yang dililitkan pada sebuah silinder dari diameter tertentu (diameter dari silinder merupakan kunci dari penyandian tersebut).pesan ditulis baris per baris dan secara horizontal. Apabila pitadilepas, maka setiap huruf akan tersusun secara acak membentuk pesan rahasia (pesan yang tidak dapat dibaca). Agar pesan tersebut dapat dibaca, maka pesan tersebut kembali dililitkan kesilinder yang diameternya sama dengan diameter silinder pengirim.

8 Gambar 2.3 Scytale Contoh penggunaan substitution cipher adalah pada Zaman Romawi kuno, disaat Julius Caesar ingin mengirimkan sebuah pesan rahasia kepada seorang jendral di medan perang. Pesan tersebut akan dikirimkan melalui seorang kurir. Karena tingkat kerahasiaan pesan yang tinggi, maka Julius Caesar tidak mau mengambil resiko jika pesan tersebut sampai ketangan musuh. Maka Caesar mensubtitusi pesan tersebut dengan cara mengganti huruf-huruf alphabet a menjadi d, b menjadi e, c menjadi f, dan seterusnya. Sebelumnya kunci dari pesan tersebut telah diberitahukan oleh Julius Caesar kepada jendral yang akan menerima pesan tersebut. Dengan demikian, walaupun pesan tersebut jatuh ke pihak musuh, maka musuh tersebut tidak akan dapat membaca pesan tersebut. Pada abad ke-15, ditemukan kode roda (wheel cipher) oleh Leo Battista Alberti.Kode ini terus dikembangkan menjadi alat enkripsi dan dekripsi hingga saat ini. Metode ini dikembangkan pada awalnya oleh Thomas Jefferson yang kemudian diberi nama roda kode Jefferson. Kemudian kode ini dikembangkan lagi oleh Bazeries yang diberi nama silinder Bazeries. Alat ini lebih fleksibel, memungkinkan untuk dikembangkan secara terus menerus untuk menghindar kode breaking. Meskipun demikian metode ini dapat dipecahkan oleh De Viaris pada tahun 1892. Meskipun demikian metode ini tetap terus dikembangkan dan dianggap aman untuk kasus-kasus tertentu. Pada abad ke-20, kriptografi lebih banyak digunakan oleh kalangan militer.pada perang dunia ke II, pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan enigma. Mesin ini menggunakan beberapa buah rotor (roda berputar), dan melakukan proses enkripsi yang sangat rumit. Jerman percaya akan dikirim melalui enigma tidak akan terpecahkan kode enkripsinya. Tetapi anggapan Jerman tersebut salah, setelah mempelajari mesin enigma bertahun

9 tahun, sekutu berhasil memecahkan kode-kode tersebut. Setelah Jerman mengetahui kode-kode mereka telah terpecahkan, kemudian enigma mengalami beberapa kali perubahan. Enigma yang digunakan Jerman bisa mengenkripsi satu pesan dengan 15 milyar kemungkinan. Enigma termasuk kriptografi berbasis rotor. Mesin berbasis rotor ini dibangun dan dipatenkan oleh beberapa orang penemu dari negara-negara yang berbeda dari tahun 1917 sampai 1921, diantaranya oleh warga Amerika Edwad Hug Habern, warga Jerman Arthur Scherbuis, warga Belanda Alexsander Koch, dan warga Swedia Arvid Gerhard Damm. Milik Koch dikembangkan oleh Arthur Scherbuis yang dipatenkan diberi nama enigma.angkatan laut jerman memperkenalkan mesin kode Scherbius.Tahun 1930,enigma untuk versi militer dibangun. Diperkirakan mesinenigma yang digunakan pada tahun 1935 sampai 1945 adalah 100.000 mesin. Mesin enigma pada Gambar 2.4. Gambar 2.4 Mesin Enigma Perkembangan peralatan computer digital memicu terbentuknya kriptografi modern. Dengan computer digital, akan sangat mungkin untuk menghasilkan cipher yang lebih kompleks dan rumit. Kriptografi klasik pada umumnya dienkripsi karakter per karakter (menggunakan alphabet tradisional), sedangkan kriptografi modern beroperasi pada string biner cipher yang lebih kompleks.

10 Adapun tujuan kriptografi menurut (Munir, 2006 : 9) adalah sebgai berikut: 1. Confidentiality (Kerahasiaan) Adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca. 2. Authentiation (Otentikasi) Adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication). Maupun mengidentifikasi kebenaran sumber pesan (Satria, 2008). 3. Data Integrity (Integritas Data) Adalah layanan yang menjamin bahwa pesan masih asli atau belum pernah dimanipulasi selama pengiriman. 4. Non - repudiation (Tanpa Penyangkalan) Adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan yaitu pengiriman atau penerima pesan menyangkal telah menerima pesan. 2.3 Algoritma Kriptografi Algoritma kriptografi disebut juga cipher yaitu aturan untuk enchipering dan dechipering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi (Nugraha, 2006). Beberapa cipher memerlukan algoritma yang berbeda untuk enchipering dan dechipering. Keamanan algoritma kriptografi sering dukur dari banyaknya kerja yang dibutuhkan untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Apabila semakin banyak proses yang diperlukan berarti juga semakin lama waktu yang dibutuhkan, maka semakin kuat algoritma tersebut dan semakin aman digunakan untuk menyandikan pesan. Algoritma kriptografi terdiri dari tiga fungsi dasar, yaitu: 1. Enkripsi, merupakan hal yang sangat penting dalam kriptografi, merupakan pengamanan data yang dikirmkan agar terjaga kerahasiaanya. Pesan asli

11 disebut plaintext, yang diubah menjadi kode-kode yang tidak dimengerti. Enkripsi bisa diartikan dengan cipher atau kode. 2. Dekripsi, merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (teks-asli), disebut dengan dekripsi pesan. Algoritma yang digunakan untuk dekripsi tentu berbeda dengan algoritma enkripsi. 3. Kunci, yang dimaksud adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci terbagi menjadi dua bagian, kunci rahasia (private key) dan kunci umum (public key). Konsep matematis yang mendasari kriptografi adalah relasi antara 2 (dua) buah himpunan yaitu himpunan yang berisi elemen-elemen plainteks dan himpunan yang berisi cipherteks. Enkripsi dan dekripsi merupakan fungsi yang memetakan eleme-elemen antara kedua himpunan tersebut. Misalkan P menyatakan plainteks dan C menyatakan cipherteks, maka fungsi enkripsi E memetakan P ke C, E(P)=C dan fungsi dekripsi D memetakan C ke himpunan P. D(C) = P Karena funsi proses dekripsi D mengembalikan himpunan C menjadi himpunan P asal, maka algoritma kriptografi harus memenuhi persamaan D(E(P)) = P Tingkat keamanan suatu algoritma dalam kriptografi seringkali diukur dari kuantitas proses yang dilakukan dalam suatu fungsi, baik itu fungsi enkripsi maupun fungsi dekripsi. Proses tersebut juga dapat dihubungkan dengan sumber data yang dibutuhkan, menunjukkan semakin kuat algoritma kriptografi tersebut.

12 2.4 Sejarah (Advanced Encryption Standard) AES Algoritma AES diperoleh melalui kompetisi yang dilakukan pada tahun 1997 oleh NIST (National Institute of Standard and Technology) untuk mencari standar algoritma enkripsi yang dapat dipergunakan dalam berbagai aplikasi. Proses seleksi ini amat ketat dan membutuhkan waktu yang cukup lama. Pada akhirnya, tanggal 2 Oktober 2000 terpilihlah algoritma Rijndael yang dibuat oleh Rijmen dan Daemen dari Belgia sebagai standar algoritma enkripsi yang biasa disebut AES (Cormen, 1989). Meskipun masih baru, algoritma ini sudah dipergunakan pada berbagai aplikasi, salah satunya adalah untuk penyandian password. Penggunaan algoritma ini sudah sering dilihat pada perangkat lunak untuk kompresi data. Dalam perangkat lunak tersebut, salah satu metode yang digunakan untuk mengenkripsi password adalah dengan algoritma AES. 2.5 Panjang Kunci dan Ukuran Blok AES Rijndael mendukung panjang kunci 128 bit sampai 256 bit dengan step 32 bit. Panjang kunci dan ukuran blok dapat dipilih secara independen. Setiap blok dienkripsi dalam sejumlah putaran tertentu, sebagai mana halnya pada DES. Karena AES menetapkan panjang kunci adalah 128, 192, dan 256, maka dikenal AES-128, AES-192, dan AES-256 (Munir, 2004). Tabel 2.1 Tabel Panjang Kunci dan Ukuran Blok Rijndael Panjang Kunci (Nk word) Ukuran Blok (Nb word) Jumlah Putaran (Nr) AES-128 4 4 10 AES-192 6 4 12 AES-256 8 4 14 Catatan: 1 word = 32 bit

13 2.6 Algoritma Advanced Encryption Standard (AES) AES merupakan sistem penyandian blok yang bersifat non-fiestel karena AES menggunakan komponen yang selalu memiliki invers dengan panjang blok 128 bit (Sadikin, 2012). Garis besar Algoritma Rijndael yang beroperasi pada blok 128-bit dengan kunci 128-bit adalah sebagai berikut (diluar proses pembangkitan round key): 1. AddRoundKey, melakukan X-or antara state awal (plainteks) dengan chiper key. Tahap ini disebut juga initial round. 2. Putaran sebanyak Nr - 1 kali. Proses yang dilakukan pada setiap putaran adalah: a. SubBytes adalah substitusi byte dengan menggunakan tabel substitusi (S- Box). b. ShiftRows adalah pergeseran baris-baris array state secara wrapping. c. MixColumns adalah mengacak data di masing-masing kolom array state. d. AddRoundKey adalah melakukan XOR antara state sekarang round key. 3. Final round, proses untuk putaran terakhir. a. SubBytes b. ShiftRows c. AddRoundKey Algoritma Rijndael mempunyai 3 parameter yaitu : 1. Plainteks adalah array yang berukuran 16 byte, yang berisi data masukan. 2. Cipherteks adalah array yang berukuran 16 byte, yang berisi hasil enkripsi. 3. Key adalah array yang berukuran 16 byte, yang berisi kunci ciphering (disebut juga cipher key).

14 Gambar 2.5 Blok Diagram Proses Enkripsi Rijndael mendukung panjang kunci 128 bit sampai 256 bit. Panjang kunci dan ukuran blok dapat dilihat secara independen, dan setiap blok dienkripsi sejumlah putaran tertentu. Jumlah putaran yang digunakan algoritma AES-128 dapat dilihat pada table 2.1. Sedangkan algoritma dekripsi teorema AES 128 yang beroperasi pada blok 128-bit adalah sebagai berikut : 1. AddRoundKey : melakukan X-or antara state awal (cipherteks) dengan cipher key. Tahap ini disebut juga initial round. 2. Putaran sebanyak Nr 1 kali. Proses yang dilakukan pada setiap putaran adalah: a. InvShiftRow : pergeseran baris-baris array state secara wrapping.

15 b. InvSubByte : substitusi byte dengan menggunakan tabel substitusi Inverse S-box. c. AddRoundKey : melakukan operasi X-or antara state sekarang dengan round key. d. InvMixColumn : mengacak data pada masing-masing kolom array state. 3. Final round : proses untuk putaran terakhir: a. InvShiftRow. b. Inv SubByte. c. AddRoundKey Blok diagram algoritma dekripsi AES 128 dapat dilihat pada Gambar 2.6 Untuk selanjutnya akan dijelaskan setiap iterasi tahapan rounds dari algoritma enkripsi dan dekripsi AES 128. Gambar 2.6 Blok Diagram Dekripsi AES-128

16 2.6.1 Key Expansion Ekspansi cipher key digunakan untuk membentuk round key yang akan digunakan pada langkah-langkah enkripsi dan dekripsi. Ekspansi kunci ini memiliki tahapan khusus yang dikenal sebagai Rijndael s key schedule.iterasi tahapan AddRoundKey pada algoritma AES 128 diulang sebanyak sebelas kali. Ilustrasi tahapan key schedule dapat dilihat pada Gambar 2.7 dan 2.8. Gambar 2.7 Ilustrasi Prosedur rijndael key schedule Oleh karenanya, terdapat sepuluh kali round key yang dibutuhkan dalam satu kali enkripsi state. Melalui key schedule tersebut, key yang menjadi parameter masukan akan diekspansi menjadi beberapa round key.

17 2.6.2 Transformasi AddRoundKey Tahapan AddRoundKey pada algoritma enkripsi AES sesungguhnya hanyalah operasi X-or terhadap komponen byte plaintext dengan acuan cipher key (W) yang dihasilkan pada prosedur key schedule. Masing-masing komponen byte diubah ke dalam bentuk biner untuk kemudian dioperasikan masing masing bit dengan fungsi logika X-or. Bilangan biner yang terbentuk kemudian dikonversi lagi menjadi komponen byte yang mewakili. Gambar 2.8 Lanjutan Ilustrasi Prosedur rijndael key schedule

18 2.6.3 Transformasi SubBytes() Dalam operasi ini, setiap byte yang akan dienkripsi disubtitusikan dengan nilai byte lain dengan menggunakan S-box Table S-box yang dimaksud dapat dilihat pada gambar 2.9. AES merupakan algoritma simetri, yang berarti table subtitusi yang dibutuhkan untuk enkripsi berbeda dengan dekripsi. Table S-box inverse dapat dilihat pada gambar 2.10. Gambar 2.9 S-box

19 Gambar 2.10 S-box invers 2.6.4 Transformasi ShiftRows() Pada operasi ini, byte-byte (128 bit) pada setiap baris digeser secara memutar dengan pergeseran yang berbeda dari tiap-tiap baris sesuai aturan. Baris ke-satu tidak akan mengalami proses pergeseran, sedangkan untuk baris ke-dua di geser satu kali ke kiri. Baris ketiga digeser ke kiri sebanyak dua kali dan baris ke-empat digeser ke kiri sebanyak tiga kali. Untuk lebih jelasnya, proses tersebut dapat dilihat pada Gambar 2.11. Gambar 2.11 Operasi ShiftRows Pada Blok 128-bit

20 2.6.5 Transformasi MixColumns Transformasi ini mengoperasikan blok pada masing-masing kolomnya. Setiap kolom akan dilakukan perkalian dengan matriks sesuai persamaan [ ] [ ] [ ] Dengan c adalah letak kolom, sehingga hasilnya adalah sebagai berikut: = ({02} ) ({03} ) = ({02} ) ({03} ) = ({02} ) ({03} ) = ({03} ) ({02} ) Jika hasil perkalian memiliki lebih dari 8 bit, bit yang lebih tidak begitu saja dibuang. Hasil tersebut dilakukan operasi X-or dengan 100011011. Sebagai contoh, perkalian 11001010 dengan 11 dengan GF( ) akan berlangsung sebagai berikut : 11001010 11 -------------- * 11001010 11001010 ---------------- xor 101011110 100011011 ---------------- xor 1000101

21 Nilai 1000101 merupakan hasil dari perkalian tersebut. Ilustrasi pencampuran kolom dapat dilihat pada Gambar 2.12. Gambar 2.12 Ilustrasi Transformasi Mixcolumns 2.7 Microsoft Visual C Sharp Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite) yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic.NET, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe 2.7.1 Visual C Sharp (C#) Microsoft Visual C Sharp atau yang lebih dikenal dengan Visual C# adalah sebuah bahasa yang tidak diragukan dalam proses pengembangan aplikasi berbasis.net Framework, di mana C# bebas dari masalah kompatibilitas dilengkapi dengan berbagai fitur yang sebagian besar merupakan fitur baru, menarik dan tentu saja menjanjikan. Visual C# dibuat berdasarkan pemrograman C# yang merupakan bahasa pemrograman berorientasi objek dan mempunyai banyak kesamaan

22 dengan C++, kesederhanaan pemrograman Java, dan penyederhanaan dari pemrograman Visual Basic (Probawati, 2011). 2.8 Metode Waterfall Waterfall adalah metode klasik yang bersifat sistematis, berurutan dalam membangun software (Roger, 2001). Dalam pengembangannya metode waterfall memiliki beberapa tahapan yaitu analisa (requirement), desain sistem (system design), Coding & Testing, penerapan program, dan pemeliharaan diantaranya: 1. Analisa Proses menganalisis dan pengumpulan kebutuhan sistem yang sesuai dengan domain tingkah laku, unjuk kerja, dan antar muka (interface) yang diperlukan. 2. Desain Sistem Proses design akan menterjemahkan syarat kebutuhan kesebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat koding. Proses ini berfokus pada struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirement. 3. Coding & Testing Coding merupakan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer. Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu sistem.dalam artian penggunaan computer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap system tersebut dan kemudian bisa diperbaiki. 4. Penerapan / Pengujian Program Tahapan ini bisa dikatakan final dalam pembuatan sebuah sistem. Setelah melakukan analisa, design dan pengkodean maka sistem yang sudah jadikan digunakan oleh user. 5. Pemeliharaan / Maintance

23 Dalam masa oprasional sehari-hari, suatu perangkat lunak mungkin saja mengalamin kesalahan atau kegagalan dalam menjalankan fungsi-fungsi. Atau, pemilik bisa saja meminta peningkat kemampuan perangkat lunak pada pengembangannya. Dapat dilihat pada 2.13 sistem metode waterfall Gambar 2.13 Metode Waterfall 2.9 Bagan Alir Sistem (flowchart) Bagan alir sistem (system flowchart) merupakan bagan yang menunjukkan arus pekerjaan secara keseluruhan dari sistem. Bagan ini menjelaskan urutan dari prosedur-prosedur yang ada di dalam sistem. Bagan alir sistem menunjukkan apa yang dikerjakan dalam sistem. Bagan alir sistem digambarkan dengan menggunakan simbol-simbol yang telah ditentukan (Krismiaji, 2010)

24 Gambar 2.14 Daftar simbol flowchart