0. Amaç:
Bir süredir disk şifreleme programları ile biraz oynamak istiyordum, ama fırsat bulup da elimi sürememiştim. Bu hafta artık bu işe el atayım dedim (Önce arkadaş tavsiyesi Luks ile başladım ama daha sonra kendime kurban olarak Truecrypt’i seçtim.) Hatta el atmışken biraz da uykusuz kalıp, hangi şifreleme algoritması ne kadar yük getiriyor test ettim. Aslında internette aranırken birkaç karşılaştırmaya denk geldim ama tatmin edici değillerdi, ben de kendime göre bir test ortamı geliştirdim. Testleri ve sonuçları sizlerle paylaşayım:
I. Test ortamı:
Testleri gerçekleştirdiğim sistemin özellikleri:
- 2 x 2GHz AMD Turion 64 CPU (512 MB Cache)
- 2 GB RAM
- 160 GB SATA Disk (5400 RPM - dahili)
- USB 500 GB (7200 RPM * 8 MB cache - harici)
- İşletim Sistemi: GNU/Linux-2.6.24
- Yazılım: Truecrypt 5.1a
Bütün testleri dahili disk üzerinde aynı disk bölümlemesini şifreleyerek gerçekleştirdim, Testlerin bir kısmında şifrelenmemiş harici diskten şifrelenmiş dahili diske kopyalama işlemleri gerçekleştirip sonuçları gözlemeye çalıştım. Testlerin tanımlarını aşağıda ayrıca detaylı olarak vereceğim
II. Veri Setleri:
Salt arabelleklenen okuma/yazma (buffered read/write), veya ardışık okuma/yazma (sequential read/write) testleri yapmak yerine kendi davranışlarımdan yola çıkarak, data somut işlemleri test etmeye çalıştım. Çok sayıda küçük boylu dosya kopyalama, büyük dosya kopyalama, tar arşivi açmak, arşiv oluşturmak, program derlemek gibi. Bu testler sırasında kullandığım veri setlerinin listesi:
data-set1: 9321 dosya - 145184 KB -> ortalama 15.5 KB/dosya
date-set2: 21 dosya -99568 KB -> ortalama 4741.3 KB/dosya
data-set3: 12 dosya -2139672 KB -> ortalama 178306 KB/dosya
data-set4: 1 dosya -2139608 KB -> ortalama 2139608 KB/dosya
Bunlar dışında ayrıca bir arşiv işlemleri için linux çekirdek kaynak kod arşivini (linux-2.6.25.6.tar.bz2) ve derleme işlemleri için Truecrypt-5.1a kaynak kodunu kullandım.
III. Testler (Tanımlar ve Test Sonucçları):
Testlerin tanımlarını ve nasıl gerçekleştirdiğmi aşağıda açıklayacağım. Bu testleri Truecrypt’in desteklediği bütün şifreleme algoritmaları için, SHA-512 hash algoritması kullanarak, aynı sıra ile, her ardışık test arasında 10 sn. bekleyerek gerçekleştirdim. Burada amacım, bir test sırasında işlemcide oluşabilecek olası yükün, ardından gelen teste etki etmesini önlemekti. Aşağıda açıklayacağım her bir test adımının ne kadar zamanda tamamlandığını kaydedip, aynı işlemlerin şifrelenmemiş disk üzerinde gerçekleştirildiğinde alınan sonuzlar ile normalize ettim. (şifrelenmemiş disk üzerindeki test sonuçlarını 1 birim kabul ettim.)
Test adımlarını okumayı kolaylaştırmak için, ufak bir not:
SOURCE = usb harici disk üzerinde şifrelenmemiş bir ext3 disk bölümü
TARGET = dahili SATA disk üzerinde şifrelenmiş bir ext3 disk bölümünü şu parametreler ile oluşturdum:
# mkfs.ext3 -j -m 1 -O dir_index,filetype,sparse_super
Şimdi test adımarını sıralayabilirim:
-Test1: Küçük dosya kopyalama
# cp -pr $SOURCE/data-set1 $TARGET/

-Test2: Orta büyüklükte dosya kopyalama (MP3′lerimi kopyalasam ne olur?)
# cp -pr $SOURCE/data-set2 $TARGET/

- Test3: Büyük boyutlu dosya kopyalama (internetten indirdiğim dizinin 1. ve 2. sezon bölümleri:) )
# cp -pr $SOURCE/data-set3 $TARGET/

- Test4: 2 GB civarında tek dosya kopyalama testi:
# cp -pr $SOURCE/data-set4 $TARGET/

- Test5: Küçük dosyalardan olşan bir arşivin açılması:
# cd $TARGET/ && tar -jxf linux-2.6.25.6.tar.bz2

-Test6: Kaynak kod derleme testi (Truecrypt 5.1.a):
# cd $TARGET/truecrypt-5.1a-source && make WX_ROOT=$TARGET/wxWidgets-2.8.7 wxbuild && make

-Test7: Küçük dosyaların arşivlenmesi:
# cd $TARGET && tar czf kernel-surce.tar.gz linux-2.6.25.6

- Test8: Büyük bir arşiv oluşturulması:
# cd $TARGET && tar cf data-set3.tar data-set3

- Test9: Büyük bir dosya okuma:
# cd $TARGET && cat data-set3.tar > /dev/null

Testlerin Toplamı:

IV. Yorumlar:
Testlerin genelinde AES ve Twofish şifreleme yöntemleri en az gecikmeye yol açan yöntemler olarak görülüyor, gecikmeler genelde %20 - %50 civarında. Ard-arda sıralı (cascade) yöntemler beklenildiği gibi çok daha yavaş kalıyorlar; özellikle büyük dosyalar ile yapılan işlemlerde (kopyalama, arşiv oluşturma ve okuma) bu yavaşlama diğer işlemlere nazaran çok daha hissedilir oluyor. Kod derleme testinde ise belirgin bir farklılık göze çarpmıyor.
Not:Testlerin tamamlanma zamanları ile ilgili tabloya buradan erişebilirsiniz.