Truecrypt और cryptsetup (LUKS) बेंचमार्किंग के परिणाम इतने अलग क्यों हैं?


10

मैं अपने HDD के एक हिस्से को एन्क्रिप्ट करना चाहता हूं। लेकिन इससे पहले कि मैं सोच रहा था कि उपलब्ध अलग एल्गोरिथ्म को बेंचमार्क करना चाहता हूं अगर मुझे चुनना चाहिए aes-xts-256या aes-xts-512

नोट: मेरे पास aesहार्डवेयर त्वरण नहीं है । बेंचमार्क कई बार बिना किसी बदलाव के दोहराया गया। मैं स्पष्ट रूप से बताना चाहता हूं कि ये बेंचमार्क केवल मेरे कंप्यूटर (डेबियन, कोर 2 डुओ) पर मान्य हैं। यह पूरी तरह से LUKS-TrueCrypt तुलना करने का इरादा नहीं है।

टीएल; डीआर: भाग 4 पर जाएं


1- क्रायसिपेटअप

इसलिए मैंने cryptsetup v1.6.0नई cryptsetup benchmarkकमांड का उपयोग करने के लिए डाउनलोड किया ।

आदेश

$cryptsetup benchmark

परिणाम

 #  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

विचार

  • में cbcमोड, serpentdecrypting पर आश्चर्यजनक रूप से तेजी से है!
  • में xtsमोड, serpentस्पष्ट रूप से सबसे तेज है।
  • मुख्य आकार पर लगभग कोई ध्यान देने योग्य प्रभाव नहीं है ।serpent twofish
  • aes जब कुंजी आकार बढ़ाया जाता है तो अच्छा व्यवहार नहीं करता है।

VM से अपडेट


2- ट्रूकॉलर

मैं वास्तव में आश्चर्यचकित था क्योंकि aesइसे सबसे तेज (हार्डवेयर त्वरण के बिना भी) जाना जाता है। इसलिए मैंने TrueCryptइन परिणामों को दोबारा जांचने के लिए डाउनलोड किया। डिफ़ॉल्ट रूप TrueCryptसे xtsमोड का उपयोग करता है, इसलिए मुझे लगता है कि इसका उपयोग इसके बेंचमार्क में भी किया जाता है।

तरीका

  1. उपकरण> बेंचमार्क
  2. कोई भी बफर आकार चुनें (यहां, 5MB)
  3. "बेंचमार्क" पर क्लिक करें

परिणाम

 #  Algorithm | Encryption |  Decryption
         AES     106 MB/s      107 MB/s
     Twofish      78 MB/s       76 MB/s
     Serpent      41 MB/s       42 MB/s

विचार

ये परिणाम बहुत अधिक मेल खाते हैं जो अपेक्षित है लेकिन अच्छे cryptsetupपरिणामों के साथ मेल नहीं खाते हैं ।


3- सामान्य विचार

  • cryptsetupTrueCryptइस मामले में बेहतर सामान्य प्रदर्शन प्रदान किया । इसे निम्नलिखित तरीके से समझाया जा सकता है:
    • cryptsetupमेरे सिस्टम पर संकलक अनुकूलन दिनचर्या के साथ TrueCryptसंकलित किया गया था जबकि पहले से ही एक सामान्य तरीके से संकलित किया गया था;
    • AFAIK cryptsetupउपयोगकर्ता के TrueCryptक्रिप्टो दिनचर्या का उपयोग करते समय कर्नेलस्पेस क्रिप्टो मॉड्यूल का उपयोग करता है।
  • हालांकि, मैं व्याख्या नहीं कर सकते क्यों serpent-xts-512साथ जाने के लिए जिस तरह से हो रहा है cryptsetup, जबकि aes-xtsका उपयोग करते हुए केवल सिफर लायक।

4- प्रश्न

cryptsetupऔर TrueCryptपूरी तरह से अलग-अलग गुणात्मक (सापेक्ष सिफर गति) और मात्रात्मक (प्रत्येक सिफर की वास्तविक गति) इन-रैम बेंचमार्क परिणाम देते हैं।

  • क्या आपने पहले ही कुछ देखा है?
  • क्या मुझे भरोसा करना चाहिए cryptsetupऔर serpent-xts-512गति के लिए सिफर का उपयोग करना चाहिए ?

जवाबों:


5

आपके पास एईएस हार्डवेयर त्वरण नहीं है, और एक आभासी मशीन में परीक्षण चला रहे थे। यह संभावना नहीं है कि आपके परीक्षण के परिणाम वास्तविक-विश्व परिणामों के प्रतिबिंबित होंगे, क्योंकि एन्क्रिप्शन / डिक्रिप्शन गति वर्तमान सीपीयू और डिस्क लोड पर बहुत अधिक निर्भर करती है। आपका सबसे अच्छा शर्त दो स्वतंत्र Truecrypt विभाजन बनाना है, और प्रत्येक विभाजन से / के लिए कुछ बड़ी फ़ाइलों की प्रतिलिपि बनाकर मैनुअल बेंचमार्क प्रदर्शन करना है।

LUKS और Truecrypt में भी थोड़ा अलग कार्यान्वयन है, और जैसा कि आपने कहा, "ये बेंचमार्क केवल मेरे कंप्यूटर पर मान्य हैं"। आपको वास्तव में वास्तविक प्रदर्शन के लिए वास्तविक फ़ाइल स्थानांतरण के साथ अपने सिस्टम पर दोनों का परीक्षण करने की आवश्यकता है।


मतभेदों के लिए, Truecrypt एक यूजरस्पेस फाइल सिस्टम को लागू करने के लिए FUSE का उपयोग करता है , जबकि LUKS आमतौर पर वास्तविक कर्नेल में किया जाता है। इस कारण से, यह संभावना है कि आप Truecrypt के विपरीत LUKS / dm-crypt / cryptsetup का उपयोग करके लिनक्स सिस्टम में बेहतर थ्रूपुट प्राप्त करेंगे, हालांकि आप कौन सा विकल्प चुनते हैं यह आपके एन्क्रिप्शन की आवश्यकताओं पर निर्भर करता है (जैसे Truecrypt सिस्टम को संचालन के बीच स्थानांतरित किया जा सकता है सिस्टम यदि आवश्यक हो)।


अजीब बात है: मैंने सीधे अपने सिस्टम में कोशिश की और मूल रूप से सब कुछ एक्सेप्ट serpentहो गया जो बहुत धीमा हो गया। तो सर्प की समस्या हल हो जाती है। Twofishअभी भी की तुलना में तेजी है aesमें cryptsetup और में धीमी TrueCrypt। और मैं aesहार्डवेयर त्वरण बिल्कुल नहीं है ... यह एक VM चीज नहीं है ...

मैंने नतीजे अपडेट किए।

@Gael (यूजर-स्पेस फाइल सिस्टम) के तहत चलने के बाद से समान एन्क्रिप्शन एल्गोरिदम दिए cryptsetupजाने से अधिक तेज़ होगा , जबकि LUKS का उपयोग करता है, जो कर्नेल मॉड्यूल है। मैंने वर्चुअल मशीन का उल्लेख किया जैसे कि आप अपने होस्ट ओएस (यहां तक ​​कि पृष्ठभूमि कार्यों) के तहत कोई अन्य कार्यक्रम चला रहे थे, यह आपके बेंचमार्क के परिणामों को प्रभावित करेगा। TrueCryptTrueCryptFUSEcryptsetup
ब्रेकथ्रू

1

लिनक्स कर्नेल में समानांतर कार्यभार (जैसे सीबीसी डिक्रिप्शन और एक्सटीएस एन्क और डिक) में तेजी लाने के लिए एसएसई 2 और एवीएक्स अनुकूलित सर्प मॉड्यूल हैं।

सीबीसी डिक्रिप्शन और एक्सटीएस में सर्पोट का प्रदर्शन, जो लोड किए गए मॉड्यूल (एस) के साथ सॉफ्टवेयर एईएस और ट्वोफिश के समान स्तर पर होना चाहिए (आपके सटीक सीपीयू मॉडल के आधार पर थोड़ा तेज या धीमा)।


0

यह भी ध्यान दें कि कुछ VMs में अतिथि कर्नेल द्वारा चलाया गया SSE2 कोड होस्ट कर्नेल की तुलना में बहुत धीमा है। मैंने ओरेकल वर्चुअलबॉक्स के साथ इसका अनुभव किया है। इसलिए वीएम पर सर्प के लिए परिणाम आवश्यक रूप से वास्तविक मेजबान पर अपेक्षित प्रदर्शन से संबंधित नहीं हो सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.