Proses dekripsi algoritma Rijndael AES Key expantion

2.3.2. Proses dekripsi algoritma Rijndael AES

Proses dekripsi algoritma Rijndael tidak jauh berbeda dengan proses enkripsi namun berbeda pada urutan prosesnya saja. Untuk urutan proses dekripsi yaitu: 1. Key Expantion Pada proses dekripsi juga dilakukan ekspansi kunci. Kunci pada proses enkripsi kemudian diekspansi terlebih dahulu untuk menghasilkan RoundKey yang akan digunakan pada setiap putaran. 2. AddRoundKey Dilakukan proses XOR antara state awal cipherteks dengan key terakhir hasil ekspansi. Tahap ini disebut juga initial round. Gambar 2.5 Diagram Proses Dekripsi Rijndael Universitas Sumatera Utara 3. Putaran sebanyak Nr-1 kali Proses yang dilakukan pada setiap putaran adalah: a. InvShiftRow Pergeseran baris-baris array state ke kanan dengan aturan pergesaran sama seperti pada tahap enkripsi. b. InvByteSub Dilakukan substitusi byte dengan menggunakan tabel substitusi kebalikan inverse S-box. Tabel substitusi dapat dilihat pada Tabel 2.4. Tabel 2.4 S-Box yang Digunakan dalam Transformasi Invbytesub Rijndael Rijmen Daemen,2002 Universitas Sumatera Utara c. AddRoundKey Pada proses ini dilakukan XOR antara state sekarang dengan round key. d. InvMixColumn Seperti pada proses MixColumn, InvMixColumn juga dilakukan pengacakan di masing-masing data pada kolom array state. 4. Final round Proses untuk putaran terakhir hanya dilakukan tiga tahap saja, proses dari ketiga tahap tersebut sama seperti proses pada tahap sebelumnya, yaitu: a. InvShiftRow b. InvSubByte c. AddRoundKey

2.3.3. Key expantion

Algoritma Rijndael AES membuat suatu ekspansi kunci untuk menghasilkan suatu key schedule. Jika ekspansi kunci yang diperlukan Rijndael AES NbNr+1 word, sehingga bisa digunakan AES 128 bit, maka 410+1=40 word=44x32 bit=1408 bit subkey. Ekspansi dari 128 menjadi 1408 bit subkey, proses ini disebut dengan key schedule. Subkey ini diperlukan karena setiap round merupakan suatu inisial dari Nb word untuk Nr=0 dan 2 Nb untuk Nr=1, 3 untuk Nr=2,…,11 Nb untuk Nr=10, dari operasi ini akan didapatkan schedule kunci yang berisi array linier 4 byte word Wi, 0=iNr+1. Arriyus,2008. Universitas Sumatera Utara 2.4.Algoritrma Kriptografi RSA Sistem kriptografi asimetris pertama kali dipublikasikan pada tahun 1997 oleh Whitfield Diffie dan Martin Hellman dari Stanford University. Penelitian mereka membahas tentang pendistribusian kunci rahasia pada saluran komunikasi umum, metode ini kemudian dikenal dengan nama algoritma Diffie Hellman. Algoritma ini beranjak dari hasil penelitian sistem kriptografi asimetris yang pertama kali dilakukan oleh James H. Ellis, Clifford Cocks, dan Malcom Williamson pada tahun1970. Namun sayangnya algoritma tersebut dirahasiakan dan tidak dipublikasikan. Berkat penemuan tersebut pada tahun 1976 tiga orang ilmuan dari MIT Massachusset Institute Of Technology yaitu Ron Rivest, Adi Shamir, dan Leonard Adleman, mencoba mengembangkan teknik algoritma kriptografi kunci publik, algoritma tersebut kemudian dikenal dengan naman RSA. Munir, 2006. RSA merupakan salah satu algoritma kriptografi yang bersifat asimetris, artinya setiap pengguna memiliki sepasang kunci, satu kunci untuk enkripsi dan satu kunci lagi untuk dekripsi. Kunci enkripsi public-key bersifat tidak rahasia sedangkan untuk kunci dekripsi dirahasiakan private-key. Untuk kunci publik disimbulkan dengan e dan untuk kunci privat disimbulkan dengan d. karena kunci enkripsi tidak sama dengan kunci dekripsi itulah kriptografi RSA disebut kunci asimetris. Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan menjadi faktor primanya. Pada algoritma RSA terdapat 3 langkah utama yaitu key generation pembangkitan kunci, enkripsi, dan dekripsi. Kunci pada RSA mencakup dua buah kunci, yaitu public key dan private key. Public key digunakan untuk melakukan enkripsi, dan dapat diketahui oleh orang lain. Sedangkan private key tetap dirahasiakan dan digunakan untuk melakukan dekripsi. Besaran besaran yang digunakan pada RSA adalah sebagai berikut : 1. p dan q bilangan prima dirahasiakan 2. n= p .q tidak dirahasiakan 3. φn = p-1 q-1 dirahasiakan Universitas Sumatera Utara 4. e kunci enkripsi tidak rahasia 5. d kunci dekripsi dirahasiakan 6. m Plainteks dirahasiakan 7. c Cipherteks tidak rahasia Proses pembangkitan kunci atau RSA adalah sebagai berikut: 1. Pilih dua buah bilangan prima sembarang p dan q. Jaga kerahasiaan p dan q ini. 2. Hitung n = p q. Besaran n ini tidak dirahasiakan. 3. Hitung φn= p-1 q-1. Sekali φn telah dihitung, p dan q dapat dihapus untuk mencegah diketahuinya oleh pihak lain. 4. Pilih sebuah bilangan bulat untuk kunci publik e, yang relatif prima terhadap n GCDe, φn = 1 dengan syarat e ≠ p-1, e ≠ q-1, dan e n. 5. Kunci publik Public Key = n,e 6. Hitung kunci privat d. Kunci privat dapat dihitung dengan persamaan: dengan syarat k dan d adalah anggota bilangan bulat. N ilai k = 1, 2, 3, ...,n diperoleh nilai d yang bulat. Nilai itu yang akan dipakai sebagai kunci pribadi untuk dekripsi pesan. Proses enkripsi dapat dilakukan dengan: Sedangkan proses dekripsi dilakukan dengan: Dalam implementasi sebenarnya, nilai p dan q diharapkan sangat besar sekali misalnya 100 digit agar pekerjaan memfaktorkan n menjadi faktor primanya menjadi sangat sukar, sehingga lebih susah untuk ditembus. C i = P i e mod n P i = C i d mod n � = 1 + �φn � Universitas Sumatera Utara

2.4.1. Algoritma pembangkit bilangan prima