Bagaimana cara kerja AES?
Operasi dasar
AES dapat digambarkan sebagai blok terenkripsi berulang dan simetris. AES menggunakan struktur loop untuk berulang kali melakukan pengaturan ulang data, atau permutasi. Loop ini menggantikan satu unit data dengan yang lain untuk data input. Rutin enkripsi menggunakan kunci yang sama untuk mengenkripsi dan mendekripsi data, dan menerapkan kunci tersebut ke blok data dengan panjang tetap.
Program utama
Enkripsi enkripsi AES menyimpan kunci enkripsi utama dalam sebuah array. Matriks adalah sekelompok objek dengan atribut yang sama yang dapat diatasi secara individual. Matriks terdiri dari empat baris, masing-masing berisi empat, enam atau delapan byte, tergantung pada ukuran kunci. Di belakang layar, rutin enkripsi menggunakan matriks ini untuk menghasilkan tabel, yang dikenal sebagai program kunci, yang berisi beberapa kunci. Kunci ini disebut tombol bulat untuk membedakannya dari kunci master asli.
Matriks status
AES menggunakan kunci enkripsi yang dapat 128, 192 atau 256 bit, dan itu diterapkan dalam unit data, yang disebut blok, masing-masing adalah 128 bit. Algoritma AES dimulai dengan menyalin setiap 16-bit blok ke array dua dimensi yang disebut Negara, untuk membuat array 4x4 byte. Algoritme melakukan operasi eksklusif "O" yang mengembalikan "benar" jika salah satu atau yang lain dari operandnya benar. Ini dikenal sebagai "AddRoundKey", dan berada di antara empat baris pertama dari program kunci dan matriks Negara.
Operasi matematis
Setelah operasi awal yang eksklusif "O", algoritma enkripsi AES memasuki loop utamanya, di mana ia berulang kali melakukan empat operasi matematika yang berbeda dalam matriks Negara: "SubBytes", "ShiftRows", "MixColumns" dan "AddRoundKey" . Operasi ini menggunakan kombinasi penambahan, perkalian, rotasi dan substitusi untuk mengenkripsi setiap byte dalam matriks Negara. Lingkaran utama berjalan 10, 12 atau 14 kali tergantung pada ukuran kunci enkripsi. Setelah eksekusi selesai, algoritma menyalin matriks status ke outputnya dalam bentuk teks terenkripsi.