Beranda Proton

Enkripsi > Jenis enkripsi > Enkripsi AES

Apa itu enkripsi AES?

AES dalam kriptografi merujuk pada Advanced Encryption Standard, sebuah algoritma enkripsi yang cepat, efisien, dan aman yang disertifikasi oleh Institut Standar dan Teknologi Nasional AS (NIST). Ini adalah cipher kunci simetris yang menggunakan kunci yang sama untuk mengenkripsi dan mendekripsi data. Proses ini relatif cepat, menjadikannya ideal untuk mengenkripsi data dalam jumlah besar yang tersimpan.

Karena kekuatan dan keandalannya, AES adalah salah satu jenis enkripsi yang paling populer dan umum digunakan dalam keamanan jaringan nirkabel, data dan enkripsi disk, sistem pembayaran daring, penyimpanan cloud, pengelola kata sandi, dan bahkan aplikasi pemerintah serta militer. Pemerintah AS menggunakan enkripsi AES untuk mengamankan informasi rahasianya, yang telah berkontribusi pada popularitasnya.

Apakah algoritma AES aman?

Ya. Pada tahun 2000, setelah proses seleksi yang sangat menyeluruh(jendela baru) dan terbuka, NIST mengumumkan bahwa AES (yang hingga saat itu dikenal sebagai algoritma Rijndael, yang dibuat oleh Vincent Rijmen dan Joan Daemen) akan menggantikan DES sebagai algoritma enkripsi tak rahasia dan diungkapkan kepada publik yang direkomendasikan(jendela baru), yang mampu melindungi informasi sensitif pemerintah hingga abad berikutnya.

Menurut NIST, semua panjang kunci algoritma AES dianggap "cukup" untuk melindungi informasi rahasia hingga tingkat "Rahasia". Untuk informasi "Sangat Rahasia", AES-192 atau AES-256 diperlukan.

Serangan brute force

Bentuk serangan paling mendasar yang mungkin terjadi pada cipher enkripsi apa pun adalah serangan brute-force, yang melibatkan upaya mencoba setiap kombinasi kunci yang mungkin hingga kunci yang benar ditemukan. 

Frontier(jendela baru) adalah superkomputer terkuat di dunia yang diketahui publik. Jika seluruh kinerjanya didedikasikan untuk melakukan brute force pada AES-128, masih diperlukan waktu sekitar 10–12 triliun tahun untuk mencoba semua kemungkinan kombinasi untuk AES-128. Waktu ini jauh lebih lama daripada usia alam semesta. Jadi, bahkan pada ukuran bit yang lebih rendah, AES sangat tahan terhadap serangan brute force dari komputer konvensional. 

AES-256 adalah 340 miliar-miliar-miliar-miliar (2¹²⁸) kali lebih sulit untuk di-brute force daripada AES-128.

Meskipun algoritma Grover(jendela baru) secara teoritis mengurangi setengah keamanan kunci simetris terhadap ancaman kuantum, kunci tersebut masih relatif tahan kuantum, terutama ketika menggunakan kunci 256-bit.

Serangan kunci

Selama bertahun-tahun, sejumlah serangan teoretis pada kunci AES telah dipublikasikan oleh para kriptografer, tetapi semua serangan ini tidak dapat dilakukan dalam praktiknya, atau hanya efektif pada implementasi AES yang menggunakan jumlah putaran yang dikurangi (lihat di bawah). 

Upaya paling sukses adalah serangan biclique(jendela baru) teoretis yang dipublikasikan pada tahun 2011 yang dapat mengurangi waktu yang dibutuhkan untuk melakukan brute force AES dengan faktor empat. Namun, masih diperlukan miliaran tahun untuk melakukan brute force AES pada perangkat keras komputer apa pun saat ini atau yang dapat diperkirakan di masa mendatang. 

Tidak ada serangan kunci yang diketahui praktis terhadap AES-128 atau yang lebih tinggi yang diimplementasikan dengan benar. 

Serangan side-channel

Serangan side-channel mencoba mengurangi jumlah kombinasi yang diperlukan untuk melakukan serangan brute force yang berhasil dengan mencari petunjuk dari komputer yang melakukan perhitungan enkripsi. Petunjuk dapat diperoleh dengan memeriksa:

  • Pengaturan waktu - berapa lama waktu yang dibutuhkan komputer untuk melakukan suatu operasi
  • Kebocoran elektromagnetik
  • Petunjuk audio
  • Petunjuk visual (ditangkap menggunakan kamera beresolusi tinggi).

Serangan cache-timing, khususnya, telah terbukti cukup efektif dalam meretas AES dengan sukses. Dalam contoh yang paling menonjol, para peneliti pada tahun 2016 berhasil memulihkan(jendela baru) kunci AES-128 hanya menggunakan “sekitar 6 - 7 blok teks biasa atau teks sandi (secara teori bahkan satu blok saja sudah cukup)”.

Namun, beberapa hal dapat dilakukan untuk memitigasi ancaman serangan side-channel:

  • AES yang diimplementasikan dengan benar dapat mencegah cara-cara kebocoran data.
  • Perangkat keras yang mengintegrasikan rangkaian instruksi AES semakin memperkecil area serangan side-channel pada AES.
  • Teknik pengacakan dapat digunakan untuk mengacaukan hubungan antara data yang dilindungi oleh AES dan data bocor apa pun yang dapat dikumpulkan menggunakan serangan side-channel. 

Dalam banyak kasus, serangan side-channel mengharuskan penyerang berada dalam jarak dekat atau memiliki akses fisik ke perangkat saat perangkat tersebut mendekripsi data, meskipun serangan jarak jauh dimungkinkan jika perangkat lunak berbahaya dipasang pada perangkat, khususnya dalam kasus serangan pengaturan waktu.

Cara kerja AES

AES adalah sandi blok yang mengenkripsi dan mendekripsi data dalam blok 128 bit menggunakan kunci 128-bit, 192-bit, atau 256-bit. Seperti yang telah disebutkan sebelumnya, kunci yang sama digunakan untuk mengenkripsi dan mendekripsi data. AES yang menggunakan kunci 128-bit sering disebut sebagai AES-128, begitu pula untuk AES-192 dan AES-256.

Data dienkripsi menggunakan beberapa putaran, yang masing-masing terdiri dari serangkaian operasi matematika. 

Proses ini dimulai dengan menggunakan algoritma penjadwalan kunci Rijndael untuk menghasilkan serangkaian kunci putaran baru dari kunci rahasia asli. Ini dikenal sebagai ekspansi kunci.

Setiap putaran kemudian terdiri dari satu atau beberapa (atau kombinasi dari) operasi berikut:

1. Add Round Key: Sebuah operasi XOR(jendela baru) dilakukan untuk menggabungkan data yang akan dienkripsi (teks sandi) dengan setiap kunci putaran.

2. Sub Bytes: Tabel substitusi digunakan untuk mengacak data lebih lanjut. Secara prinsip, bayangkan sandi substitusi sederhana yang digunakan saat masih anak-anak, ketika setiap huruf dalam pesan diganti dengan huruf lain yang berjarak beberapa posisi setelahnya dalam alfabet.

3. Shift Rows: Setiap blok data 128-bit terdiri dari blok 4x4 16-bit. Operasi ini menggeser setiap byte dalam baris blok dengan offset tertentu ke kiri.

4. Mix Columns: Transformasi linear yang dapat dibalik tambahan dilakukan pada setiap kolom dalam blok.

Rangkaian transformasi ini merupakan satu putaran, yang kemudian diulangi pada data untuk jumlah putaran tertentu, tergantung pada ukuran kunci:

  • AES-128 — 10 putaran
  • AES-192 — 12 putaran
  • AES 256 — 14 putaran

Untuk mendekripsi data, semua langkah yang digunakan untuk mengenkripsinya cukup dilakukan secara terbalik. Hal ini memerlukan kunci rahasia asli untuk membalikkan proses menggunakan setiap kunci putaran invers.

Mengapa AES-256 lebih disukai daripada AES-192 atau AES-128?

Diperlukan waktu lebih lama dari usia alam semesta untuk melakukan brute force pada AES-128 dengan teknologi saat ini dan yang dapat diprediksi di masa mendatang. Kriptografer legendaris Bruce Schneier bahkan berpendapat(jendela baru) bahwa AES-128 mungkin lebih kuat daripada AES-256 karena memiliki jadwal kunci yang lebih kuat — algoritma yang menghitung semua kunci putaran dari kunci rahasia asli.

Namun, AES-256 telah menjadi standar emas de facto untuk enkripsi kunci simetris. AES-256 sering kali (meskipun agak kontroversial) dipandang sebagai pilihan yang lebih kuat karena ukuran kuncinya yang lebih besar menunjukkan margin keamanan tambahan sehingga data yang terenkripsi akan tetap aman bahkan jika ditemukan cara untuk melemahkan algoritma tersebut secara drastis. Argumen ini menjadi semakin kuat seiring dengan semakin mendesaknya kebutuhan akan ketahanan pasca-kuantum. 

AES-CBC vs AES-GCM

Hingga belum lama ini, AES biasanya digunakan dalam mode cipher block chaining (CBC), di mana setiap blok teks biasa di-XOR dengan blok teks sandi sebelumnya sebelum dienkripsi. Saat digunakan dalam mode CBC, algoritme hashing HMAC(jendela baru) seperti HMAC-SHA256 diperlukan untuk memverifikasi data.

Namun, semakin umum bagi AES untuk digunakan dalam mode Galois/counter (GCM), yang menggunakan mode counter(jendela baru) dari enkripsi. Keuntungan utamanya adalah penggunaan medan Galois(jendela baru) untuk memverifikasi data tanpa memerlukan algoritme luar. Oleh karena itu, ini lebih efisien daripada menggunakan algoritme autentikasi terpisah yang dapat memiliki overhead komputasi yang tinggi.

Meskipun AES-CBC dengan autentikasi HMAC umumnya dianggap aman, CBC berpotensi rentan terhadap serangan padding(jendela baru), seperti POODLE(jendela baru). Sedangkan GCM tidak.

AES dengan akselerasi perangkat keras

Sebagian besar CPU modern menyertakan Advanced Encryption Standard New Instructions (AES-NI(jendela baru)), serangkaian instruksi perangkat keras yang melakukan operasi AES secara langsung pada prosesor. Hal ini membuat AES jauh lebih cepat dan juga membantu mencegah serangan side-channel berbasis waktu karena operasi tersebut terjadi di dalam unit eksekusi aman prosesor, sehingga variasi waktu yang dapat diamati lebih sedikit bagi penyerang untuk dieksploitasi.

Proton dan AES

AES digunakan secara luas untuk mengamankan produk Proton:

Acara dan kontak diamankan menggunakan AES-256 yang dikombinasikan dengan ECC untuk pertukaran kunci guna memastikan privasi melalui enkripsi end-to-end.

Proton VPN berfokus terutama pada protokol VPN WireGuard® yang cepat dan efisien (yang menggunakan ChaCha20), tetapi koneksi OpenVPN menggunakan AES-256.

Proton Pass menyimpan kata sandi, catatan, identitas, dan item lainnya di dalam brankas aman menggunakan AES-256.

Proton Drive mengenkripsi semua file yang diunggah secara end-to-end dengan AES-256 menggunakan ECC untuk pertukaran kunci. Proton Docs dan Proton Sheets juga menggunakan AES-256 dengan pertukaran kunci berbasis ECC, meskipun implementasi enkripsinya berbeda dari skema enkripsi file umum milik Proton Drive.

Proton Mail menyimpan email dan lampiran menggunakan AES-256 melalui standar OpenPGP. Bahkan kunci pribadi, yang membuka email, dienkripsi dengan AES-256 sebelum disimpan di server.

Proton Meet menggunakan Messaging Layer Security (MLS) untuk mengenkripsi audio, video, dan pesan obrolan, guna memastikan kerahasiaan ke depan (PFS) dan keamanan pascakompromi (PCS) untuk semua komunikasi. Semua data rapat terenkripsi secara end-to-end menggunakan AES-256-GCM.

Memitigasi serangan enkripsi AES

Keamanan hanya sekuat mata rantai terlemahnya, yang biasanya adalah kata sandi. Ini berarti skema rekayasa sosial, serangan phishing, dan keylogger(jendela baru) juga merupakan ancaman bagi data yang terenkripsi AES. Jadi, bahkan saat AES digunakan, langkah pencegahan berikut sebaiknya dilakukan:

Proton

Pegang kendali atas data

Proton dibangun untuk melindungi data sejak awal. Dengan enkripsi end-to-end, aplikasi sumber terbuka, dan audit independen, informasi tetap menjadi milik Anda.

Pertanyaan yang sering diajukan tentang enkripsi AES

Mana yang lebih baik: AES vs. DES?
Mana yang lebih baik: AES vs. RSA?
Seberapa kuatkah keamanan AES?

Pelajari lebih lanjut tentang enkripsi