Bagaimana Enkripsi AES / Rijndael secara umum berfungsi?
Halaman ini memiliki menyenangkan A Stick Figure Guide to Advanced Encryption Standard (AES) yang terlihat mudah dimengerti, meskipun terlihat lebih dari 50 gambar, misalnya dua:
dan
Terlalu banyak untuk menduplikasi semuanya di sini, tetapi jika Anda harus memiliki gambar all-in-one, ini yang ini:
Atau, ada penjelasan yang lebih ringkas di http://www.password-depot.com/know-how/blowfish_and_rijndael.htm
Metode enkripsi Rijndael didasarkan pada penggantian, perubahan, dan operasi xor berdasarkan byte. Metodenya terlihat seperti ini:
- Dari tombol 128-bit, Rijndael menghasilkan 10 kunci masing-masing 128 bit.
- Kunci-kunci ini ditempatkan ke dalam array 4x4.
- Teks biasa juga dibagi menjadi array 4x4 (masing-masing 128 bit).
- Setiap item teks biasa 128-bit diproses dalam 10 putaran (10 putaran untuk kunci 128-bit, 12 untuk 192, 14 untuk 256).
- Setelah ronde ke-10 kode dihasilkan.
- Setiap byte tunggal diganti dalam kotak S dan diganti dengan timbal balik pada GF (2 8).
- Kemudian matriks modulo-2 bit-wise diterapkan, diikuti oleh operasi XOR dengan 63.
- Garis-garis matriks diurutkan secara siklis.
- Kolom dari perkalian matriks dipertukarkan pada GF (2 8).
- Subkunci dari setiap putaran dikenai operasi XOR.
Tingkat keamanan metode enkripsi ini meningkat jika Rijndael dilakukan beberapa kali dengan subkunci yang berbeda.
Bagaimana cara kerja Enkripsi Disk Lengkap Ubuntu?
Saya percaya ini bekerja dengan mengenkripsi partisi dengan LUKS (pengaturan default dengan AES), dan kemudian menempatkan beberapa volume di dalamnya dengan LVM (seperti /
, swap), dan mendekripsi dan me-mount mereka saat boot setelah Anda memasukkan frasa sandi. Dan ada partisi boot reguler (tidak terenkripsi) yang melakukan booting cukup untuk meminta frasa sandi.
the_simple_computer's Guide to Full Disk Enkripsi dengan Ubuntu (Diperbarui 28 Juni 2015) mengatakan itu tentang bagaimana enkripsi installer default bekerja, dan menyebutkan bahwa dual-boot tidak akan berfungsi (setidaknya tidak out-of-the-box), drive harus menggunakan MBR jadi " jika komputer Anda memiliki UEFI, distro akan diinstal dalam mode BIOS lama sehingga Anda tidak dapat menggunakan Boot Aman " dan " juga memberi Anda ukuran swap yang sama dengan RAM sistem Anda (seringkali tidak perlu) dan Anda tidak punya pilihan atas jenis enkripsi apa yang digunakan. "
Seberapa cepat enkripsi?
Jika Anda menjalankannya cryptsetup benchmark
akan menjalankan tes dan memberi tahu Anda seberapa cepat enkripsi saja, perhatikan baris aes-xts default (saat ini):
# Algorithm | Key | Encryption | Decryption
aes-xts 256b 150.0 MiB/s 145.0 MiB/s
Kecepatan baca hard drive rata-rata bisa 80-160 MB / s, jadi Anda tidak akan lebih lama dari membaca biasa, dan mungkin saja sektor yang baru saja membaca telah didekripsi saat Anda masih menunggu untuk hard drive untuk membaca lebih lanjut.
SSD mungkin bisa lebih cepat, mungkin 200-550MB / s, jadi Anda mungkin memperhatikannya. Tapi, pembacaan acak bisa lebih lambat, dan saya sudah membaca bahwa kecepatan SSD dapat melambat setelah digunakan (mungkin ketika drive terisi penuh dan harus mulai "menghapus" sektor?)
Bagaimana komputer dapat sepenuhnya mengenkripsi / mendekripsi semua drive hanya dalam beberapa detik (tidak butuh waktu lebih lama untuk mem-boot atau mematikan)?
Tidak harus mendekripsi semuanya terlebih dahulu. Enkripsi (LUKS) bekerja pada blok data , dapat secara acak mendekripsi blok apa pun, dan bertindak seperti lapisan antara data yang dienkripsi drive dan apa yang dilihat oleh sistem file.
Ketika filesystem ingin melihat blok data apa pun, LUKS mendekripsi blok itu terlebih dahulu dan kemudian memberikan data yang didekripsi ke filesystem. Anda pertama-tama menunggu drive untuk membaca blok data (seperti tanpa menggunakan enkripsi), dan hanya memiliki penundaan tambahan untuk dekripsi blok tunggal (atau beberapa blok) data - dan jika dekripsi lebih cepat daripada drive dapat membaca, dekripsi dapat diselesaikan sebelum drive membaca blok data selanjutnya.
Jadi seperti halnya filesystem biasa tidak perlu membaca seluruh drive untuk membaca file, ketika enkripsi ditambahkan tidak perlu membaca keseluruhan drive, dan itu tidak membuat banyak hal lebih lambat.
Data pada hard drive selalu terenkripsi , jadi tidak ada yang dapat dilakukan saat mematikan kecuali melupakan kuncinya.
Ini akan sedikit penyederhanaan, tetapi saya akan mencoba untuk melalui proses mengakses file pada sistem file terenkripsi.
Sebagai contoh, katakanlah awal dari sistem file terenkripsi ada tabel file; katakanlah kita ingin membaca
/foo.bar
. Jadi, hal pertama yang kita lakukan adalah membaca awal partisi, mendekripsi, dan mencari file yang kita inginkan; katakanlah katanya file dimulai pada 0x10000000 byte. Jadi untuk membaca, kita mulai membaca dari disk di lokasi itu dan mendekripsi; sama halnya dengan menulis, kita dapat mengenkripsi konten baru, dan menulisnya di lokasi baru itu.Semoga ini membantu menjernihkan kebingungan pada proses.
sumber
Prosesor menggunakan set instruksi khusus. Itu mungkin karena itu, AES-NI . Ini memungkinkan enkripsi dan dekripsi cepat atau Anda dapat mengatakan itu memotong overhead. Cepat karena implementasi perangkat keras, seperti yang dijelaskan di sini .
Anda dapat memeriksa tentang dampak kinerja di sini dan itu layak untuk keamanan tambahan.
sumber
Komputer modern dapat melakukan milyaran operasi per detik, sehingga tidak mengejutkan saya bahwa enkripsi dan dekripsi cepat.
Ini adalah bagaimana saya menilai secara intuitif seberapa cepat komputer dalam melakukan sesuatu:
Bit kunci lain yang perlu dipahami adalah bahwa operasi tidak perlu mendekripsi seluruh hard disk untuk mem-boot sistem. Sebaliknya, sistem operasi tahu bagaimana mendekripsi hanya bagian-bagian dari hard disk yang dibutuhkan dengan cepat, dan hal yang sama berlaku untuk penulisan.
Jadi secara intuitif, saya tidak terkejut bahwa enkripsi disk penuh tidak memiliki banyak dampak pada kinerja, karena saya membayangkan botol-leher menjadi disk.
Tentu saja, intuisi ini tidak selalu cocok dengan kenyataan. Misalnya, dalam kenyataannya, ada beberapa kasus di mana enkripsi disk penuh telah menyebabkan kinerja yang sangat baik. Tetapi biasanya ini diselesaikan setelah pengembang melalui beberapa putaran mengembangkan optimisasi.
sumber