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