Algoritma AES (Advanced Encryption Standard) adalah salah satu algoritma yang dapat digunakan untuk melakukan enkripsi data sehingga data asli hanya dapat dibaca oleh seseorang yang memiliki kunci enkripsi tersebut. Contoh yang dibahas kali ini adalah mengenai enkripsi dan dekripsi dari sebuah kalimat.
Algoritma ini beroperasi dengan menggunakan urutan matriks bertipe byte berukuran 4×4, yang dinamakan sebagai state. AES kemudian melakukan perulangan transformasi untuk mengkonversi input (dinamakan teks mentah) menjadi output (dinamakan teks cipher) sesuai dengan besarnya ukuran byte yang digunakan.
Langkah-langkah penggunaan algoritma ini adalah
1. Tentukan kalimat yang akan dienkrip
Console.WriteLine("Masukkan kalimat yang akan dienkrip: ") Dim input As String = Console.ReadLine
2. Tentukan kata kunci enkripsi yang digunakan
Kata kunci enkripsi harus berjumlah tepat 16 digit
Dim kataKunci As String = "" Do Console.WriteLine("Masukkan kata kunci enkripsi: ") kataKunci = Console.ReadLine If kataKunci.Length <> 16 Then Console.WriteLine("Panjang kata kunci enkripsi harus berjumlah 16 digit.") End If Console.WriteLine("") Loop Until kataKunci.Length = 16
3. Lakukan enkripsi kalimat awal menggunakan algoritma ini
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini
Dim hasilEnkripsi As String = EnkripsiAES(input, kataKunci)
* Gunakan fungsi ini untuk melakukan enkripsi pada sebuah teks
Public Function EnkripsiAES(ByVal input As String, ByVal pass As String) As String Dim AES As New System.Security.Cryptography.RijndaelManaged Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider Dim hasilEnkripsi As String = "" Try Dim hash(31) As Byte Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass)) Array.Copy(temp, 0, hash, 0, 16) Array.Copy(temp, 0, hash, 15, 16) AES.Key = hash AES.Mode = Security.Cryptography.CipherMode.ECB Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateEncryptor Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(input) hasilEnkripsi = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length)) Return hasilEnkripsi Catch ex As Exception MsgBox(ex.Message) Return "" End Try End Function
4. Lakukan dekripsi dari kalimat yang telah terenkripsi
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini
Dim hasilDekripsi As String = DekripsiAES(hasilEnkripsi, kataKunci)
* Gunakan fungsi ini untuk melakukan dekripsi dari teks yang telah terenkripsi
Public Function DekripsiAES(ByVal input As String, ByVal pass As String) As String Dim AES As New System.Security.Cryptography.RijndaelManaged Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider Dim hasilDekripsi As String = "" Try Dim hash(31) As Byte Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass)) Array.Copy(temp, 0, hash, 0, 16) Array.Copy(temp, 0, hash, 15, 16) AES.Key = hash AES.Mode = Security.Cryptography.CipherMode.ECB Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateDecryptor Dim Buffer As Byte() = Convert.FromBase64String(input) hasilDekripsi = System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length)) Return hasilDekripsi Catch ex As Exception MsgBox(ex.Message) Return "" End Try End Function
Hasil akhir adalah: (klik untuk perbesar gambar)
Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:
Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.