Saya ingin mengenkripsi bagian dari HDD saya. Tetapi sebelum itu saya ingin membandingkan berbagai algoritma yang tersedia bertanya-tanya apakah saya harus memilih aes-xts-256
atau aes-xts-512
.
Catatan: Saya tidak memiliki aes
akselerasi perangkat keras. Tolok ukur diulang beberapa kali tanpa banyak perubahan. Saya ingin menyatakan dengan jelas bahwa tolok ukur ini hanya berlaku di komputer saya (Debian, core 2 duo). Ini tidak dimaksudkan sebagai perbandingan LUKS-TrueCrypt yang lengkap.
TL; DR: pergi ke bagian 4
1- Cryptsetup
Jadi saya mengunduh cryptsetup v1.6.0
untuk menggunakan cryptsetup benchmark
perintah baru .
Perintah
$cryptsetup benchmark
Hasil
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 128,2 MiB/s 157,2 MiB/s
serpent-cbc 128b 49,6 MiB/s 57,7 MiB/s
twofish-cbc 128b 138,0 MiB/s 183,8 MiB/s
aes-cbc 256b 97,5 MiB/s 121,9 MiB/s
serpent-cbc 256b 51,8 MiB/s 57,7 MiB/s
twofish-cbc 256b 139,0 MiB/s 183,8 MiB/s
aes-xts 256b 156,4 MiB/s 157,8 MiB/s
serpent-xts 256b 55,7 MiB/s 58,7 MiB/s
twofish-xts 256b 161,5 MiB/s 165,9 MiB/s
aes-xts 512b 120,5 MiB/s 120,9 MiB/s
serpent-xts 512b 55,7 MiB/s 58,5 MiB/s
twofish-xts 512b 161,5 MiB/s 165,3 MiB/s
Pikiran
Dalamcbc
mode,serpent
secara mengejutkan cepat mendekripsi!Dalamxts
mode,serpent
jelas yang tercepat.- Ukuran kunci tampaknya hampir tidak memiliki efek nyata .
serpent
twofish
aes
tidak berperilaku baik ketika ukuran kunci ditingkatkan.
Pembaruan dari VM
2- TrueCrypt
Saya sangat terkejut karena aes
dikenal sebagai yang tercepat (bahkan tanpa akselerasi perangkat keras). Jadi saya mengunduh TrueCrypt
untuk memeriksa ulang hasil ini. TrueCrypt
menggunakan xts
mode secara default jadi saya menganggapnya juga menggunakannya dalam tolok ukurnya.
metode
- Alat> Tolok Ukur
- Pilih ukuran buffer (di sini, 5MB)
- Klik pada "Tolok Ukur"
Hasil
# Algorithm | Encryption | Decryption
AES 106 MB/s 107 MB/s
Twofish 78 MB/s 76 MB/s
Serpent 41 MB/s 42 MB/s
Pikiran
Hasil ini lebih sesuai dengan apa yang diharapkan tetapi tidak cocok dengan cryptsetup
hasil.
3- Pikiran umum
cryptsetup
memberikan kinerja umum yang lebih baik daripadaTrueCrypt
dalam hal ini. Ini bisa dijelaskan dengan cara berikut:cryptsetup
dikompilasi di sistem saya dengan rutinisasi optimasi kompiler sementaraTrueCrypt
sudah dikompilasi dengan cara yang umum;- AFAIK
cryptsetup
menggunakan modul kernelspace crypto sambilTrueCrypt
menggunakan rutin pengguna ruang crypto.
- Namun, saya tidak bisa menjelaskan mengapa
serpent-xts-512
tampaknya menjadi cara untuk pergicryptsetup
sementaraaes-xts
satu-satunya cipher layak digunakan.
4 - Pertanyaan
cryptsetup
dan TrueCrypt
memberikan perbedaan kualitatif (kecepatan cipher relatif) dan kuantitatif (kecepatan aktual dari masing-masing cipher) yang sama sekali berbeda, menghasilkan tolok ukur dalam-RAM.
- Apakah itu sesuatu yang sudah Anda perhatikan?
- Haruskah saya percaya
cryptsetup
dan menggunakanserpent-xts-512
sandi untuk kecepatan?
serpent
yang menjadi jauh lebih lambat. Jadi masalah dengan ular terpecahkan.Twofish
masih lebih cepat dariaes
padacryptsetup
dan lebih lambatTrueCrypt
. Dan saya tidak punyaaes
akselerasi perangkat keras sama sekali ... ini bukan hal VM ...cryptsetup
akan lebih cepat daripada yangTrueCrypt
diberikan algoritma enkripsi yang sama sejakTrueCrypt
berjalan di bawahFUSE
(sistem file pengguna-ruang), sedangkancryptsetup
menggunakan LUKS, yang merupakan modul kernel. Saya menyebutkan mesin virtual seolah-olah Anda menjalankan program lain di bawah OS host Anda (bahkan tugas latar belakang), itu akan mempengaruhi hasil tolok ukur Anda.Kernel Linux memiliki modul Serpent SSE2 dan AVX yang dioptimalkan untuk mempercepat beban kerja yang dapat diparalelkan (seperti dekripsi CBC dan XTS enc & dec).
Performa Ular dalam dekripsi CBC dan XTS dengan modul yang dimuat harus mendekati tingkat yang sama dengan perangkat lunak AES dan Twofish (sedikit lebih cepat atau lebih lambat tergantung pada model CPU Anda yang tepat).
sumber
Perhatikan juga bahwa kode SSE2 dijalankan oleh kernel tamu di beberapa VM jauh lebih lambat dari pada kernel host. Saya telah mengalami ini dengan Oracle VirtualBox. Jadi hasil untuk Serpent on VM mungkin tidak selalu berkorelasi dengan kinerja yang diharapkan pada host yang sebenarnya.
sumber