9

हम अपनी परियोजना पर कुछ भारी सुरक्षा आवश्यकताओं को देखना चाहते हैं, और हमें बहुत अधिक एन्क्रिप्शन करने की आवश्यकता है जो अत्यधिक प्रदर्शनकारी है।सममित एन्क्रिप्शन के लिए पीकीआई का प्रदर्शन अंतर क्या है?

मुझे लगता है कि मुझे पता है कि पीकेआई सममित एन्क्रिप्शन की तुलना में बहुत धीमी और जटिल है, लेकिन मुझे अपनी भावनाओं का बैक अप लेने के लिए संख्याएं नहीं मिल रही हैं।

उत्तर

22

हां, पूरी तरह से असममित एन्क्रिप्शन सममित साइपर (जैसे डीईएस या एईएस) की तुलना में बहुत धीमी है, यही कारण है कि वास्तविक अनुप्रयोग hybrid cryptography का उपयोग करते हैं: महंगा सार्वजनिक-कुंजी संचालन केवल एन्क्रिप्शन कुंजी के लिए एन्क्रिप्शन कुंजी (और एक्सचेंज) करने के लिए किया जाता है सममित एल्गोरिदम जो वास्तविक संदेश को एन्क्रिप्ट करने के लिए उपयोग किया जा रहा है।

सार्वजनिक कुंजी क्रिप्टोग्राफी हल करने की समस्या यह है कि कोई साझा रहस्य नहीं है। एक सममित एन्क्रिप्शन के साथ आपको मुख्य गुप्त रखने के लिए सभी शामिल पार्टियों पर भरोसा करना पड़ता है। यह समस्या प्रदर्शन की तुलना में बहुत बड़ी चिंता होनी चाहिए (जिसे हाइब्रिड दृष्टिकोण से कम किया जा सकता है)

4

एल्गोरिदम को बेंचमार्क करने के लिए ओपनएसएसएल speed कमांड का उपयोग करें और स्वयं को देखें।

[[email protected] ~]$ openssl speed aes-128-cbc 
Doing aes-128 cbc for 3s on 16 size blocks: 26126940 aes-128 cbc's in 3.00s 
Doing aes-128 cbc for 3s on 64 size blocks: 7160075 aes-128 cbc's in 3.00s 
... 
The 'numbers' are in 1000s of bytes per second processed. 
type    16 bytes  64 bytes 256 bytes 1024 bytes 8192 bytes 
aes-128 cbc  139343.68k 152748.27k 155215.70k 155745.61k 157196.29k 


[[email protected] ~]$ openssl speed rsa2048 
Doing 2048 bit private rsa's for 10s: 9267 2048 bit private RSA's in 9.99s 
Doing 2048 bit public rsa's for 10s: 299665 2048 bit public RSA's in 9.99s 
... 
        sign verify sign/s verify/s 
rsa 2048 bits 0.001078s 0.000033s 927.6 29996.5 
2

स्पष्ट रूप से यह 1000x खराब है। (http://windowsitpro.com/article/articleid/93787/symmetric-vs-asymmetric-ciphers.html)। लेकिन जब तक कि आप वास्तव में बहुत सारे डेटा के माध्यम से काम नहीं कर रहे हैं, इससे कोई फर्क नहीं पड़ता है। आप एक सममित एन्क्रिप्शन कुंजी का आदान-प्रदान करने के लिए असममित एन्क्रिप्शन का उपयोग कर सकते हैं।

4

प्रैक्टिकल पीकेआई-आधारित एन्क्रिप्शन सिस्टम एक सममित कुंजी को एन्क्रिप्ट करने के लिए असममित एन्क्रिप्शन का उपयोग करते हैं, और उसके बाद डेटा को एन्क्रिप्ट करने के लिए उस कुंजी के साथ सममित एन्क्रिप्शन का उपयोग करते हैं (ऐसा कहा जाता है कि कोई काउंटर-उदाहरण इंगित करेगा)।

तो सममित के ऊपर असममित क्रिप्टो एल्गोरिदम द्वारा लगाया गया अतिरिक्त ओवरहेड तय किया गया है - यह केवल मुख्य आकारों पर डेटा आकार पर निर्भर नहीं है।

पिछली बार मैंने इसका परीक्षण किया था, 3 या तो X.50 9 प्रमाणपत्रों की एक श्रृंखला को सत्यापित करने के लिए [जोड़ने के लिए संपादित करें: और जिस डेटा पर वे हस्ताक्षर कर रहे थे] एक एमआरएम पर एक दूसरे का अंश ले रहा था जो 100 मेगाहर्ट्ज पर चल रहा था या तो (औसत स्पष्ट रूप से कई पुनरावृत्ति पर)। मुझे याद नहीं है कि कितना छोटा - नगण्य नहीं, बल्कि एक सेकंड के नीचे भी।

क्षमा करें मुझे सटीक विवरण याद नहीं हैं, लेकिन सारांश यह है कि जब तक कि आप बहुत प्रतिबंधित सिस्टम पर न हों या बहुत सी एन्क्रिप्शन न करें (जैसे कि आप जितना संभव हो सके एसएसएल कनेक्शन को स्वीकार करना चाहते हैं) , एनआईएसटी-अनुमोदित असममित एन्क्रिप्शन विधियां तेजी से हैं।

0

शायद आप अपने प्रोजेक्ट के बारे में कुछ विवरण जोड़ सकते हैं ताकि आपको बेहतर गुणवत्ता वाले उत्तर मिल सकें। आप सुरक्षित करने की क्या कोशिश कर रहे हैं? किस से? यदि आप अपनी सुरक्षा की आवश्यकताओं को समझा सकते हैं, तो आपको एक बेहतर जवाब मिलेगा। निष्पादन का अर्थ यह नहीं है कि अगर एन्क्रिप्शन तंत्र आपको जो भी लगता है उसकी रक्षा नहीं कर रहा है।

उदाहरण के लिए, X509 certs क्लाइंट/सर्वर एंडपॉइंट्स को सुरक्षित करने का एक औद्योगिक मानक तरीका है। लाइसेंस फ़ाइलों को सुरक्षित करने के लिए पीजीपी कवच ​​का उपयोग किया जा सकता है। सादगी के लिए, यदि आप दोनों अंत बिंदुओं को नियंत्रित करते हैं, तो पर्ल या जावा में ब्लोफिश (और कई अन्य सिफर) के साथ सिफर ब्लॉक का उपयोग करना आसान है।

धन्यवाद।

18

एक मैकबुक पर ओएस एक्स 10.5.5 चल रहा है और ओपनएसएसएल का स्टॉक बिल्ड, "ओपनस्ल स्पीड" घड़ियों एईएस-128-सीबीसी प्रति सेकंड 46,000 1024 बिट ब्लॉक पर घड़ियों। उसी बॉक्स में प्रति सेकंड 16 9 हस्ताक्षर पर 1024 बिट आरएसए घड़ियों। एईएस-128-सीबीसी "पाठ्यपुस्तक" ब्लॉक एन्क्रिप्शन एल्गोरिदम है, और आरएसए 1024 "पाठ्यपुस्तक" सार्वजनिक कुंजी एल्गोरिदम है।यह सेब-टू-संतरे है, लेकिन जवाब है: आरएसए बहुत धीमा है

यही कारण है कि आपको सार्वजनिक कुंजी एन्क्रिप्शन का उपयोग नहीं करना चाहिए। यहाँ असली कारणों है:

  1. सार्वजनिक कुंजी क्रिप्टो संचालन कच्चे डेटा एन्क्रिप्शन के लिए नहीं हैं। डिफी-हेलमैन और आरएसए जैसे एल्गोरिदम ब्लॉक क्रिप्टो एल्गोरिदम के लिए चाबियों का आदान-प्रदान करने के तरीके के रूप में तैयार किए गए थे। इसलिए, उदाहरण के लिए, आप AES के लिए 128 बिट यादृच्छिक कुंजी उत्पन्न करने के लिए एक सुरक्षित यादृच्छिक संख्या जेनरेटर का उपयोग करेंगे, और उन 16 बाइट्स को आरएसए के साथ एन्क्रिप्ट करें।

  2. आरएसए जैसे एल्गोरिदम एईएस से बहुत कम "उपयोगकर्ता के अनुकूल" हैं। एक यादृच्छिक कुंजी के साथ, आप एक एईईएस को फ़ीड करने वाले सादे टेक्स्ट ब्लॉक को कुंजी के बिना किसी को यादृच्छिक रूप से बाहर आने जा रहे हैं। वास्तव में यह आरएसए के साथ मामला नहीं है, जो --- एईएस से कहीं अधिक --- सिर्फ गणित समीकरण है। तो कुंजी को व्यवस्थित करने और प्रबंधित करने के अलावा, आपको अपने आरएसए सादे टेक्स्ट ब्लॉक को प्रारूपित करने के तरीके से बेहद सावधान रहना होगा, या आप कमजोरियों के साथ समाप्त हो जाते हैं।

  3. सार्वजनिक कुंजी एक महत्वपूर्ण प्रबंधन आधारभूत संरचना के बिना काम नहीं करती। यदि आपके पास सार्वजनिक कुंजी को सत्यापित करने की कोई योजना नहीं है, तो हमलावर वास्तविक लोगों के लिए "मध्य में आदमी" हमलों को लॉन्च करने के लिए अपने स्वयं के कीपरों को प्रतिस्थापित कर सकते हैं। यही कारण है कि एसएसएल आपको प्रमाण पत्र के rigamarole के माध्यम से जाने के लिए मजबूर करता है। एईएस जैसे क्रिप्टो एल्गोरिदम ब्लॉक करें इस समस्या से पीड़ित हैं, लेकिन पीकेआई के बिना, एईएस आरएसए से कम सुरक्षित नहीं है।

  4. सार्वजनिक कुंजी क्रिप्टो ऑपरेशंस एईएस की तुलना में अधिक कार्यान्वयन कमजोरियों के लिए अतिसंवेदनशील हैं। उदाहरण के लिए, आरएसए लेनदेन के दोनों पक्षों को पैरामीटर पर सहमत होना है, जो आरएसए समीकरण को खिलाए गए नंबर हैं। बुराई मूल्य हमलावर चुपचाप एन्क्रिप्शन अक्षम करने के लिए विकल्प कर सकते हैं। एलीप्टीक वक्र के लिए डिफी हेलमैन और इससे भी ज्यादा कुछ भी है। एक और उदाहरण आरएसए हस्ताक्षर फोर्जरी भेद्यता है जो 2 साल पहले कई उच्च अंत एसएसएल कार्यान्वयन में हुआ था।

  5. सार्वजनिक कुंजी का उपयोग यह सबूत है कि आप "साधारण से बाहर" कुछ कर रहे हैं। सामान्य से बाहर क्या है आप कभी क्रिप्टोग्राफी के साथ रहना चाहते हैं; केवल एल्गोरिदम से परे, क्रिप्टो डिज़ाइन को सुरक्षित माना जाने से पहले वर्षों तक ऑडिट और परीक्षण किया जाता है।

    • "आराम से डेटा" के लिए, पीजीपी का उपयोग करें:

हमारे ग्राहकों को जो अपने आवेदन में क्रिप्टोग्राफी का उपयोग करना चाहते हैं के लिए, हम दो सिफारिशों हैं। वास्तव में! पीजीपी को एक दशक से भी ज्यादा समय तक हराया गया है और इसे गूंगा कार्यान्वयन गलतियों से सुरक्षित माना जाता है। इसके खुले स्रोत और वाणिज्यिक रूप हैं।

  • "उड़ान में डेटा" के लिए, टीएलएस/एसएसएल का उपयोग करें। दुनिया में कोई सुरक्षा प्रोटोकॉल बेहतर नहीं माना जाता है और टीएलएस की तुलना में बेहतर परीक्षण किया जाता है; वित्तीय संस्थान हर जगह इसे सबसे संवेदनशील डेटा को स्थानांतरित करने के लिए एक सुरक्षित विधि के रूप में स्वीकार करते हैं।

  • Here's a decent writeup [matasano.com] मुझे और नैट लॉसन, एक पेशेवर cryptographer, कुछ साल वापस ऊपर लिखा था। यह इन बिंदुओं को अधिक विस्तार से शामिल करता है।

    +0

    ऐसा प्रतीत होता है कि लेखन का आपका लिंक अब काम नहीं करता है। – skiwi

    संबंधित मुद्दे