IMPLEMENTASI ALGORITMA AES PADA ENKRIPSI TEKS

dokumen-dokumen yang mirip
Advanced Encryption Standard (AES) Rifqi Azhar Nugraha IF 6 A.

ALGORITMA KRIPTOGRAFI AES RIJNDAEL

Algoritma Enkripsi Baku Tingkat Lanjut

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

BAB III ANALISIS DAN PERANCANGAN

Algoritma Spiral shifting

Advanced Encryption Standard (AES)

BAB II TINJAUAN PUSTAKA

BAB III ANALISIS DAN PERANCANGAN

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

BAB II TINJAUAN PUSTAKA

BAB III ANALISIS DAN DESAIN SISTEM

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

BAB 3 ANALISIS DAN PERANCANGAN. 3.1.Analisis Perancangan Steganografi dan Kriptografi.

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

Implementasi Enkripsi File dengan Memanfaatkan Secret Sharing Scheme

TINJAUAN PUSTAKA. Kriptografi

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

BAB III ANALISA MASALAH DAN PERANCANGAN

IMPLEMENTASI ALGORITMA KRIPTOGRAFI AES UNTUK ENKRIPSI DAN DEKRIPSI

Pengkajian Metode dan Implementasi AES

Rancang Bangun Aplikasi Keamanan Data Menggunakan Metode AES Pada Smartphone

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

BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi

Algoritma Kriptografi Modern (AES, RSA, MD5)

BAB II TINJAUAN PUSTAKA

APLIKASI PENGAMANAN DOKUMEN DENGAN MENGGUNAKAN TEKNIK KRIPTOGRAFI ALGORITMA AES-RINJDAEL

Perbandingan Algoritma RC6 dengan Rijndael pada AES

BAB 2 TINJAUAN PUSTAKA

BAB III ANALISIS DAN PERANCANGAN

BAB 2 TINJAUAN PUSTAKA

BAB I PENDAHULUAN. Universitas Sumatera Utara

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

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

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

Algoritma AES sebagai Metode Enkripsi dalam Password Management

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN Latar Belakang

ADVANCED ENCRYPTION STANDARD (AES): RIJNDAEL. Pertemuan ke-7 Dr. R. Rizal Isnanto, S.T., M.M., M.T.

KRIPTOGRAFI CITRA DIGITAL DENGAN ALGORITMA RIJNDAEL DAN TRANSFORMASI WAVELET DISKRIT HAAR

WINDOWS VISTA BITLOCKER DRIVE ENCRYPTION

PRESENTASI TUGAS AKHIR KI091391

STUDI, IMPLEMENTASI DAN PERBANDINGAN ALGORITMA KUNCI SIMETRI TRIPLE DATA ENCRYPTION STANDARD DAN TWOFISH

RANCANG BANGUN PROGRAM KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD

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

BAB II LANDASAN TEORI

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

BAB II TINJAUAN PUSTAKA

STUDI DAN IMPLEMENTASI ADVANCED ENCRYPTION STANDARD DENGAN EMPAT MODE OPERASI BLOCK CIPHER

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

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

Modul Praktikum Keamanan Sistem

Perlindungan Web pada Login Sistem Menggunakan Algoritma Rijndael

Perancangan dan Implementasi Aplikasi Kriptografi Algoritma AES-128 Pada File Dokumen Artikel Ilmiah

SISTEM PENGAMANAN DATA SIDIK JARI MENGGUNAKAN ALGORITMA AES PADA SISTEM KEPENDUDUKAN BERBASIS RADIO FREQUENCY IDENTIFICATION (RFID)

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

I. PENDAHULUAN. andil yang besar dalam perkembangan komunikasi jarak jauh. Berbagai macam model alat komunikasi dapat dijumpai, baik yang berupa

BAB III ANALISIS DAN PERANCANGAN SISTEM

Keamanan Sistem Komputer DES, AES, RSA

BAB 2 LANDASAN TEORI

Outline. Sejarah DES Enkripsi DES Implementasi Hardware dan Software DES Keamanan DES

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

Modul Praktikum Keamanan Sistem

BAB II TINJAUAN PUSTAKA

Implementasi Algoritma Rijndael dengan Menggunakan Kunci Enkripsi yang Berukuran Melebihi 256 bit

APLIKASI KRIPTOGRAFI UNTUK PERTUKARAN PESAN MENGGUNAKAN TEKNIK STEGANOGRAFI DAN ALGORITMA AES

Data Encryption Standard (DES)

Prosiding Matematika ISSN:

Analisis AES Rijndael terhadap DES

Pengaruh Variasi Panjang Kunci, Ukuran Blok, dan Mode Operasi Terhadap Waktu Eksekusi pada Algoritma Rijndael

BAB II LANDASAN TEORI

LAMPIRAN A ALGORITMA AES 128

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

Implementasi Disk Encryption Menggunakan Algoritma Rijndael

PERBANDINGAN ALGORITMA AES DENGAN ALGORITMA XTS-AES UNTUK ENKRIPSI DAN DEKRIPSI TEKS SMS BERBASIS JAVA ME

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

Aplikasi Penyembunyian Pesan pada Citra dengan Metode AES Kriptografi dan Enhanced LSB Steganografi

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

2.4.1 Teknik Blok Teknik Permutasi dan Transposisi Teknik teknik Kriptanalis Know Plainteks Analisys...

STUDI TERHADAP ADVANCED ENCRYPTION STANDARD (AES) DAN ALGORITMA KNAPSACK DALAM PENGAMANAN DATA

TUGAS AKHIR. Oleh : Muammar Renaldy PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS BUDI LUHUR

Studi dan Analisis Enkripsi Sistem File Pada Sistem Operasi Macintosh

Algoritma Rubik Cipher

PENERAPAN ALGORITMA AES : RIJNDAEL DALAM PENGENKRIPSIAN DATA RAHASIA

BAB II LANDASAN TEORI

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

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

BAB III ANALISIS DAN PERANCANGAN

PERBANDINGAN DAN ANALISIS PERFORMANSI ENKRIPSI-DEKRIPSI TEKS MENGGUNAKAN ALGORITMA AES DAN AES YANG TERMODIFIKASI BERBASIS ANDROID

PERANCANGAN APLIKASI KRIPTOGRAFI ADVANCED ENCRYPTION STANDARD BERBASIS ANDROID NASKAH PUBLIKASI

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

IMPLEMENTASI ALGORITMA KRIPTOGRAFI RIJNDAEL UNTUK PENGAMANAN SISTEM SMS BANKING DAN INTERNET BANKING I Wayan Ordiyasa. Abstraksi

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

BAB III ANALISA DAN DESAIN SISTEM

BAB 2 TINJAUAN PUSTAKA

Implementasi Algoritma MAC Berbasis Cipher Blok Sebagai Program Add-in di Microsoft Word untuk Otentikasi Dokumen


ANALISIS ALGORITME DAN WAKTU ENKRIPSI VERSUS DEKRIPSI PADA ADVANCED ENCRYPTION STANDARD (AES)

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

Transkripsi:

IMPLEMENTASI ALGORITMA AES PADA ENKRIPSI TEKS A. Latar Belakang Algoritma AES (Advanced Encryption Standard) muncul akibat penggunaan standart enkripsi kriptografi simetri terdahulu (DES) yang dianggap sudah tidak aman lagi, karena dengan perangkat keras khusus kunci bisa ditemukkan dalam beberapa hari. National Institute of Standards and Technology (NIST) sebagai agency Departemen Perdagangan AS mengusulkan kepada Pemerintah Federal AS untuk sebuah standard kriptografi yang baru. Persyaratan yang diajukan oleh NIST mengenai standar baru yang diusulkan antara lain: 1. Algoritma yang ditawarkan termasuk ke dalam kelompok algoritma kriptografi simetri berbasis cipher blok 2. Seluruh rancangan algoritma harus public (tidak dirahasiakan) 3. Panjang kunci fleksibel yaitu: 128,192 dan 256 4. Ukuran blok yang dienkripsi adalah 128 bit 5. Algoritma dapat diimplementasikan baik sebagai software maupun hardware NIST menerima 15 proposal algoritma yang masuk. Konferensi diselenggarakan untuk menilai keamanan algoritma yang diusulkan. Pada bulan agustus 1998, NIST memilih 5 finalis yang didasarkan pada aspek keamanan algoritma, efisiensi, fleksibilitas dan kebutuhan memory. Kelima finalis tersebut adalah: 1. Rijndael 2. Serpent 3. Twofish 4. RC6 5. MARS Pada bulan oktober 2000, NIST menggumumkan untuk memilih Rijndael dan dinobatkan sebagai AES bulan november 2001 yang merupakan standart kriptografi yang dominan paling sediket 10 tahun.

B. Deksrisi Algoritma Rijndael AES 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. Berikut adalah perbandingan jumlah proses harus dilalui untuk masing-masing masukan. Panjang kunci Ukuran Blok Jumlah Putaran (Nk Words) (Nb Words) (Nr) AES-128 4 4 10 AES-192 6 4 12 AES-256 8 4 14 Tabel 1. Jumlah putaran berdasarkan panjang kunci yang Algoritma Rinjdael menggunakan substitusi dan permutasi dan sejumlah putaran (chiper berulang). Setiap putaran menggunakan kunci internal yang berbeda (kunci setiap putaran disebut round key). Algoritma rinjdael beroperasi pada byte, tidak seperti pada DES yang beroperasi pada bit. Secara garis besar algoritma rijndael yang beroperasi pada blok 128-bit dengan kunci 128- bit adalah sebagai berikut: 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 tabel substitusi (S-Box) 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 round key 3. Final Round: Proses untuk putaran terakhir a. Subbytes b. ShiftRows c. AddRoundKey State Cipher Key 0 AddRoundKey Initial Round Round 0 1-SubBytes 2-ShiftRows 3-MixColumns 4-AddRoundKey Round Key 0 9 Rounds SubBytes ShiftRows AddRoundKey Round Key 10 Final Round Gambar 1. Proses Algoritma AES Rijndael C. Key Schedule Expansi cipher key menjadi round key dengan menggunakan rijndael s key schedule. Ekspansi key digunakan untuk membentuk round key yang akan digunakan langkah-langkah enkripsi plainteks (state). Secara umum rijndael s key schedule memanfaatkan beberapa operasi sebagai berikut:

1. Rotate Operasi ini merupakan operasi pemindahan byte. Byte terujung dipindahkan ke ujung lainnya tanpa mengubah keterurutan komponen lain 2. Rcon Operasi ini merupakan operasi eksponensial dari bilangan bulat 2 dalam semesta rijndael finite field. 3. S-Box Substitusi s-box merupakan tabel yang mensubstitusikan nilai byte dengan nilai yang ditentukan. Umumnya, iterasi tahapan rounds pada AES diulang sebanyak sembilan kali. Oleh karenanya, terdapat sebelas round key yang dibutuhkan dalam satu kali enkripsi state. Round key tersebut adalah sebuah cipher key pada initial round, sembilan lainnya pada tahapan rounds, serta satu round key yang digunakan pada final round. Operasi-operasi di atas kemudian diimplementasikan pada key schedule dan diulang sebanyak kebutuhan. Komponen byte paling kanan dari cipher key diambil dan di-rotate. Masing-masing komponen kemudian disubtitusi dengan acuan S- box.

Gambar 2. Proses Key Schedule D. Sub Bytes Proses SubBytes adalah dalam operasi ini setiap bytes yang akan dienkripsi dengan cara mengganti setiap bytes states dengan bytes pada sebuah tabel yang dinamakan tabel S-Box. Sebuah Tabel S-Box terdiri dari 16x16 baris dan kolom dengan masing-masing berukuran 1 bytes. Tabel S-Box diperlihatkan pada Gambar 2 dibawah ini :

Tabel 2. S-Box Sedangkan Proses SubBytes diperlihakan pada Gambar 3 dibawah ini : Gambar 3. Proses SubBytes Seperti yang kita ketahui bahwa Algoritma AES merupakan Algoritma simetri yang berarti tabel substitusi yang dibutuhkan untuk mengeksripsi berbeda dengan untuk mendekripsi.

E. Sift Row Proses Shift Rows akan beroperasi pada tiap baris dari tabel state. Proses ini akan bekerja dengan cara memutar bytes-bytes pada 3 baris terakhir ( baris 1, 2, dan 3 ) dengan jumlah perputaran yang berbeda-beda. Baris 1 akan diputar sebanyak 1 kali, baris 2 akan diputar sebanyak 2 kali, dan baris 3 akan diputar sebanyak 3 kali. Sedangkan baris 0 tidak akan diputar. Proses ShiftRows perlihatkan pada Gambar 6 dibawah ini : Gambar 4. Proses SiftRow F. Mix Columns Proses MixColumns akan beroperasi pada tiap kolom dari tabel state. Operasi ini menggabungkan 4 bytes dari setiap kolom tabel state dan menggunakan transformasi linier. Operasi Mix Columns memperlakukan setiap kolom sebagai polinomial 4 suku dalam Galois field dan kemudian dikalikan dengan c(x) modulo (x4+1), dimana c(x)=3x 3 +x 2 +x+2. Kebalikkan dari polinomial ini adalah c(x)=11x 3 +13x 2 +9x+14. Operasi MixColumns juga dapat dipandang sebagai perkalian matrix. Langkah MixColumns dapat ditunjukkan dengan mengalikan 4 bilangan di dalam Galois field oleh matrix berikut ini.

Atau bila dijabarkan r0=2a0+a3+a2+3a1 r1=2a1+a0+a3+3a2 r2=2a2+a1+a0+3a3 a3=2a3+a2+a1+3a0 Operasi penjumlahan di atas dilakukan dengan operasi XOR, sedangkan operasi perkalian dilakukan dalam Galois field. Gambar 5. Proses MixColumns G. Add Round Key Pada proses ini subkey digabungkan dengan state. Proses penggabungan ini menggunakan operasi XOR untuk setiap byte dari subkey dengan byte yang bersangkutan dari state. Untuk setiap tahap, subkey dibangkitkan dari kunci utama dengan menggunakan proses key schedule. Setiap subkey berukuran sama dengan state yang bersangkutan. Proses AddRoundKey diperlihatkan pada gambar berikut.

Gambar 6. Proses Add Round Key H. Implementasi Program Penulis mengimplementasikan algoritma AES Rijndael ini ke dalam sebuah program sederhana untuk mengenkripsi sebuah inputan string. Program ini ditulis dengan menggunakan bahasa pemrograman Java. Algoritma AES sudah terintegrasi dengan bahasa pemrograman Java. Dalam Java Development Kit sudah tersedia paket class-class yang dapat digunakan untuk proses enkripsi maupun deskripsi menggunakan algoritma AES ini. Paket-paket class tersebut dapat dipelajari dalam dokumentasi Java Development Kit pada paket java.security.* dan javax.cripto.chiper.

Gambar 7. Implementasi Program (Enkripsi) Melalui aplikasi sederhana ini kita dapat menginputkan sebuah string sembarang dan sebuah key yang panjangnya adalah 16 karakter (128 bit). Kemudian untuk melakukan enkripsi kita menekan tombol Enkripsi. Gambar 8. Implementasi Program (Deskripsi)

Berikut adalah potongan kode program java yang mengimplementasikan algoritma AES untuk mengenkripsi sebuah inputan string. import java.security.*; import javax.crypto.cipher; import javax.crypto.spec.secretkeyspec; import sun.misc.*; public class SimpleAES { } private static final String ALGORITHM = "AES"; private Key key = null; public String encrypt(string valuetoenc) throws Exception { Cipher c = Cipher.getInstance(ALGORITHM); c.init(cipher.encrypt_mode, key); byte[] encvalue = c.dofinal(valuetoenc.getbytes()); String encryptedvalue = new BASE64Encoder().encode(encValue); return encryptedvalue; } public String decrypt(string encryptedvalue) throws Exception { Cipher c = Cipher.getInstance(ALGORITHM); c.init(cipher.decrypt_mode, key); byte[] decordedvalue = new BASE64Decoder().decodeBuffer(encryptedValue); byte[] decvalue = c.dofinal(decordedvalue); String decryptedvalue = new String(decValue); return decryptedvalue; } public void generatekey(string inputkey) throws Exception { try { byte[] keyvalue = inputkey.getbytes("utf-8"); this.key = new SecretKeySpec(keyValue, ALGORITHM); } catch (Exception ex) { throw ex; } }

I. Daftar Pustaka 1. http://en.wikipedia.org/wiki/advanced_encryption_standard 2. http://docstore.mik.ua/orelly/java-ent/jnut/ch26_01.htm 3. Surian, Didi, Algoritma Kriptografi AES Rijndael,Jurnal Teknik Elektro, Vol. 8 No. 2, 97-101