Kriptografi Implementasi AES dan Rabin pada Aplikasi Klien Surel Perangkat Android

d. Android Run Time Layer yang membuat aplikasi Android dapat dijalankan dimana dalam prosesnya menggunakan implementasi Linux. Dalvik Virtual Machine DVM merupakan mesin yang membentuk kerangka dasar aplikasi android Safaat, 2012. Didalam android run time dibagi menjadi dua bagian yaitu : - Core Libraries : Aplikasi android dibangun dalam bahasa java, sementara dalvik sebagai virtual mesinnya bukan virtual machine java, sehingga diperlukan sebuah libraries yang berfungsi menerjemahkan bahasa javac yang ditangani oleh core libraries. - Dalvik Virtual Machine : Virtual mesin berbasis register yang dioptamilkan untuk menjalankan fungsi-fungsi secara effisien, dimana merupakan pengembangan yang mampu membuat linux kernel untuk melakukan threading dan manajemen tingkat rendah. e. Linux Kernel Linux kernel adalah layer dimana inti dari operating sistem dari Android itu berada. Berisi file-file system yang mengatur sistem processing, memory, resource, drivers, dan sistem-sistem operasi android lainnya. Linux kernel yang digunakan android adalah linux kernel realese 2.6 Safaat, 2012.

2.4. Kriptografi

Menurut Sadikin 2012, kriptografi adalah ilmu yang bersandarkan pada teknik matematika yang berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas. Kriptografi terbagi atas dua kategori yaitu kriptografi klasik dan kriptografi modern. Kriptografi klasik adalah sistem kriptografi yang menggunakan penyandian kunci simetris dan menggunakan metode subtitusi pergantian huruf atau transposisi pertukaran tempat. Dan kriptografi modern adalah sistem kriptografi yang menggunakan penyandian kunci asimetris Sadikin, 2012. Berikut ini adalah beberapa mekanisme yang berkembang pada kriptografi: Universitas Sumatera Utara 1. Fungsi Hash Fungsi hash adalah fungsi yang melakukan pemetaan pesan dengan panjang sembarang ke sebuah teks khusus yang disebut message digest dengan panjang yang tetap. Fungsi hash pada umumnya digunakan untuk menguji keutuhan pada sebuah data serta sebagai tanda tangan digital untuk menjamin keaslian dokumen Sadikin, 2012. 2. Penyandian dengan kunci simetris Penyandian dengan kunci simetris adalah penyandian yang menggunakan sebuah kunci yang sama pada proses enkripsi dan dekripsinya. Kunci yang digunakan pada proses enkripsi dan dekripsi bersifat rahasia. Beberapa jenis kriptografi dengan penyandian kunci simetris antara lain Data Encryption Standard DES, 3DES, Advance Encryption Standard AES, Blowfish dan International Data Encryption Algorithm IDEA Sadikin, 2012. 3. Penyandian dengan kunci asimetris Penyandian dengan kunci asimetris adalah penyandian yang memiliki kunci yang berbeda pada proses enkripsi dan dekripsinya. Pada kunci yang digunakan untuk enkripsi bersifat publik public key. Kunci publik bebas disebarluaskan ke public. Sedangkan kunci yang digunakan untuk dekripsi bersifat rahasia private key. Beberapa jenis kriptografi dengan penyandian kunci asimetris antara lain RSA, Diffie-Helman, ELGamal, Rabin, dan beberapa penerapan teknik Elliptic Curve Sadikin, 2012. 2.4.1 Algoritma AES Universitas Sumatera Utara Karena semakin berkembangnya pertukaran data, khususnya dalam wireless dan local area network LAN, hal ini memberi kesempatan yang besar untuk mencegat data dan memalsukan pesan. Salah satu yang mudah untuk menjaga keamanan dan keintegritasan informasi antara pengirim dan penerima adalah dengan menggunakan kriptografi kunci privat. Algoritma AES merupakan algoritma blok cipher yang didesain oleh Joan Daemen dan Vincent Rijment Daemen,1999. Kunci AES dapat memiliki panjang kunci 128,192, dan 256 bit. Penyandian AES menggunakan proses yang berulang yang disebut dengan ronde. Jumlah ronde yang digunakan tergantung dengan panjang kunci yang digunakan. Kunci ronde dibangkitkan berdasarkan kunci yang diberikan. Proses didalam AES adalah transformasi terhadap state yang merupakan blok128 bit yang ditata menjadi matriks byte berukuran 4x4. State yang menjadi keluaran ronde k menjadi masukan untuk ronde k+1. Tahapan Algoritma AES Sadikin, 2012: 1. Pra-ronde,blok teks asli dicampur dengan kunci ronde ke-0transformasi ini disebut AddRoundKey. 2. Proses ronde 1 hingga ke ronde n-1, yang masing-masing terdiri atas 4 jenis transformasi, yaitu SubBytes, ShiftRows, MixColumns, dan AddRoundKey. 3. Ronde n, dilakukan transformasi seperti ronde sebelumnya namun tanpa transformasi MixColumns. Detail transformasi yang digunakan pada proses enkripsi akan dijelaskan pada bahasan selanjutnya. A. SubBytes Transformation Transformasi SubBytes menggunakan tabel substitusi, yaitu dengan cara menginterpretasikan byte masukan sebagai 2 bilangan heksadesimal, kemudian digit kiri menunjukkan indeks baris dan digit kanan menunjukkan indeks kolom di tabel substitusi. Nilai byte pada tabel substitusi yang dirujuk oleh baris dan kolom menjadi nilai yang mensubstitusi byte masukan awal. Tabel substitusi diberikan oleh tabel 2.1 Universitas Sumatera Utara Tabel 2.1 Tabel substitusi untuk transformasi SubBytesSadikin,2012 1 2 3 4 5 6 7 8 9 A B C D E F 63 7C 77 7B F2 6B 6F C5 30 01 67 2B FE D7 AB 76 1 CA 82 C9 7D FA 59 47 F0 AD D4 A2 AF 9C A4 72 C0 2 B7 FD 93 26 36 3F F7 CC 34 A5 E5 F1 71 D8 31 15 3 04 C7 23 C3 18 96 05 9A 07 12 80 E2 EB 27 B2 75 4 09 83 2C 1A 1B 6E 5A A0 52 3B D6 B3 29 E3 2F 84 5 53 D1 00 ED 20 FC B1 5B 6A CB BE 39 4A 4C 58 CF 6 D0 EF AA FB 43 4D 33 85 45 F9 02 7F 50 3C 9F A8 7 51 A3 40 8F 92 9D 38 F5 BC B6 DA 21 10 FF F3 D2 8 CD 0C 13 EC 5F 97 44 17 C4 A7 7E 3D 64 5D 19 73 9 60 81 4F DC 22 2A 90 88 46 EE B8 14 DE 5E 0B DB A E0 32 3A 0A 49 06 24 5C C2 D3 AC 62 91 95 E4 79 B E7 C8 37 6D 8D D5 4E A9 6C 56 F4 EA 65 7A AE 08 C BA 78 25 2E 1C A6 B4 C6 E8 DD 74 1F 4B BD 8B 8A D 70 3E B5 66 48 03 F6 0E 61 35 57 B9 86 C1 1D 9E Universitas Sumatera Utara E E1 F8 98 11 69 D9 83 94 9B 1E 87 E9 CE 55 28 DF F 8C A1 89 0D BF E6 42 68 41 99 2D 0F B0 54 BB 16 B. ShiftRows Transformation Transformasi ShiftRows dilakukan dengan menjalankan operasi circular shift left sebanyak i pada baris ke-i pada state. Ilustrasi transformasi ShiftRows dapat dilihat pada Gambar 2.2 ShiftRows S00 S01 S02 S03 S13 S12 S11 S10 S20 S21 S22 S23 S33 S32 S31 S30 S00 S01 S02 S03 S10 S22 S23 S33 S13 S12 S11 S20 S21 S32 S31 S30 Gambar 2.2 Transformasi ShiftRowsSadikin,2012 C. MixColumn Transformation Transformasi MixColumns akan mencampurkan nilai kolom kolom pada state awal dengan suatu perkalian matriks dengan sebuah matriks konstan yang ditunjukkan pada Gambar 2.3 S00 S01 S02 S03 S13 S12 S11 S10 S20 S21 S22 S23 S33 S32 S31 S30 S’00 S’01 S’02 S’03 S’13 S’12 S’11 S’10 S’20 S’21 S’22 S’23 S’33 S’32 S31 S’30 02 03 1 1 1 03 02 1 1 1 02 03 02 1 1 03 Gambar 2.3 Transformasi MixColumnsSadikin,2012 Untuk kolom ke-j, dengan j={0,1,2,3} pada keluaran transformasi MixColumns lakukan: Universitas Sumatera Utara ⨁ ⨁ 2.1 ⨁ ⨁ ⨁ ⨁ ⨁ ⨁ D. AddRoundKey Transformation Transformasi AddRoundKey mencampur sebuah state masukan dengan kunci ronde dengan operasi eksklusif OR. Setiap elemen pada state masukan yang merupakan sebuah byte dikenakan operasi eksklusif OR dengan byte pada posisi yang sama di kunci rondekunci ronde direpresentasikan sebagai sebuah state. E. KeyExpansion Langkah-langkah ekspansi kunci AES 128-bit dijelaskan pada algoritma dibawah ini Input: byte kunci[16] Output:word w[44] word temp For i=0 to 3 do w[i]= kunci[4i], kunci[4i+1] , kunci[4i+2] , kunci[4i+3] End For For i=4 to 43 do temp = w[i-1] If i4 = 0 then temp= SubWordRotWordtemp + RC[i4] End If w[i] = temp + w[i-4] End For Universitas Sumatera Utara Dari algoritma diatas, bisa dilihat proses ini akan menerima input berupa kunci awal yang akan menghasilkan 44 word kunci dengan 4 word kunci untuk setiap ronde. Pertama sekali kunci AES 128-bit akan diorganisir menjadi 4 word dan disalin ke word keluaran pada 4 elemen pertamaw[0],w[1],w[2],w[3]. Untuk elemen keluaran selanjutnya w[i] dengan i = {4,…,43} dihitung sebagai berikut 1. Salin w[i-1] pada word t 2.2 2. Jika i mod 4=0 lakukan w[i]=ft,i XOR w[i-4] dengan fungsi ft,i adalah sebagai berikut ft,i = SubWordRotWordt XOR RC[i4] Konstan RC[i] ditunjukkan pada tabel 2.2 Tabel 2.2 Konstan RC dalam heksadesimalSadikin,2012 i 1 2 3 4 5 6 7 8 9 10 RC[i] 01 02 04 05 10 20 40 80 1B 3C 3. Jika i mod 4 =0, lakukan w[i] = t XOR w[i-4] 2.4.2 Algoritma Rabin Universitas Sumatera Utara Algoritma Rabin dipublikasikan oleh Michael O.Rabin pada Januari 1979 di Institut Teknologi Massachusetts. Algoritma ini merupakan algoritma asimetris pertama yang menerapkan konsep dimana mendapatkan keseluruhan plaintext dari cyphertext memiliki kesulitan yang sama dalam faktorisasi. Rumus dasar dari metode enkripsi dan dekripsi Rabin adalah 2.3 Dan Penjelasan: N = p qkunci publik p dan q = Bilangan primakunci privat M = Plaintext C = Ciphertext Tahapan Algoritma Rabin 1. Pilih dua bilangan prima secara acak dan tidak sama. 2. Hitung perkalian p dan q, simpan dalam variabel n. 3. Rahasiakan p, q. 4. Kirimkan n dan C .

2.5. Sistem Surat Elektronik Surel