MCRYPT_RIJNDAEL_128
, MCRYPT_RIJNDAEL_256
, MCRYPT_BLOWFISH
, आदि के बीच क्या अंतर है वेब पर डेटा स्थानांतरण के लिए कौन सा सबसे उपयुक्त है?इन एन्क्रिप्शन एल्गोरिदम के बीच अंतर क्या हैं?
उत्तर
रिजंडेल एईएस के लिए एक और नाम है, वर्तमान "एक अच्छा मानक" एल्गोरिदम। संख्या 128 या 256 कुंजी लंबाई है।
ब्लोफिश कुछ हद तक पुराना 64 बिट ब्लॉक सिफर है (एईएस 128 बिट ब्लॉक साइफर है)।
आप वास्तव में यह नहीं कह सकते कि उनमें से कोई भी "बेहतर" या "बदतर" है, क्योंकि उनमें से कोई भी वास्तव में टूटा नहीं गया है, लेकिन आम तौर पर एईएस बेहतर होना चाहिए, और अधिकांश कार्यान्वयन भी तेज हैं। इसके अलावा, सबसे आधुनिक सीपीयू हार्डवेयर में एईएस का समर्थन करते हैं, जो इसे और भी तेज बना देगा ... इसलिए एईएस का उपयोग करने के लिए नहीं है।
कुंजी लंबाई के लिए, 128 बिट वास्तव में एक सममित सिफर के लिए काफी पर्याप्त है। बेशक आप अपने देश के परमाणु हथियार कोड के रखवाले नहीं हैं, उस स्थिति में आप इसके बजाय 256 बिट कुंजी का उपयोग करना चाहेंगे।
ध्यान दें कि यदि आप एक समझदार तरीके से 256 बिट कुंजी का उपयोग करना चाहते हैं, तो आपको लगभग 40 वर्णों का पासवर्ड चाहिए। जो एक बार फिर दिखाता है कि क्रिप्टो एल्गोरिदम सुरक्षा श्रृंखला में कमजोर लिंक नहीं है, लेकिन मानव है।
संपादित करें: दूसरे विचार पर, 50-60 वर्ण शायद 256 बिट कुंजी पर आवश्यक पासवर्ड लंबाई के लिए एक अधिक उचित अनुमान है। अंग्रेजी भाषा में प्रति चरित्र एंट्रॉपी के 2 बिट से काफी कम है। आइए मान लीजिए कि आप अक्षरों और अंकों के कुछ और यादृच्छिक चरित्र अनुक्रम का उपयोग करते हैं (हालांकि इसे अभी भी याद रखने में सक्षम होना चाहिए ...), तो हो सकता है कि हमारे पास प्रति चरित्र एंट्रॉपी के 4-5 बिट्स (काफी आशावादी!) हों। इसके लिए आपको 51 से 64 वर्णों के बीच टाइप करने की आवश्यकता होगी, इसलिए पासवर्ड की एन्ट्रॉपी मोटे तौर पर कुंजी से मेल खाती है।
अब सवाल यह है कि: हम में से कितने में 50 वर्ण पासवर्ड हैं? :-)
अद्यतन:
2011 के अंत के रूप में, क्रिप्ट/एईएस (बोग्डैनोव, Khovratovich, Rechberger) जो "ज्यादातर सैद्धांतिक" या "प्रफुल्लित कम से एक नहीं है पर एक प्रमुख वसूली हमले मौजूद है गोल "हमले के प्रकार। हमला पूर्ण दौर एईएस पर काम करता है और ब्रूट फोर्स की तुलना में लगभग 4 गुना तेज है। औपचारिक रूप से, इसलिए कोई व्यक्ति रिजेंडेल को "टूटा" मान सकता है।
व्यावहारिक रूप से, हमला आज तक अप्रासंगिक है। यहां तक कि सबसे छोटी समर्थित कुंजी लंबाई के साथ, ब्रूट फोर्स की तुलना में चार गुना तेजी से हमले की आवश्यकता होती है 2 संचालन, जो कि बड़े पैमाने पर हार्डवेयर कार्यान्वयन के साथ भी व्यावहारिक नहीं है। हालांकि, अगर हमले में सुधार किया जा सकता है तो भविष्य में यह बदल सकता है।
कौन कहता है कि एन्क्रिप्शन कुंजी (और चतुर्थ) मानव-पठनीय होना चाहिए? ['openssl_random_pseudo_bytes (32)'] (http://us3.php.net/manual/en/function.openssl-random-pseudo-bytes.php) आपको क्रिप्टोग्राफिक रूप से पर्याप्त यादृच्छिकता के 256 बिट मिलेगा, जो होता है एईएस -256 में अधिकतम कुंजी आकार। इसे सुरक्षित रूप से बेस 64-एन्कोड किया जा सकता है। – Charles
प्रति चरित्र एंट्रॉपी के 2 बिट्स? पासवर्ड के लिए कम रास्ता लगता है, मैं प्रति चरित्र 5 या 6 बिट्स की तरह अनुमान लगाता हूं। मुझे लगता है कि अंग्रेजी पाठ (जैसे समाचार पत्र लेख) के प्रति चरित्र एंट्रॉपी पासवर्ड के मुकाबले बहुत कम होगा। –
@ चार्ल्स: यह सच है कि आप एक कुंजी के लिए यादृच्छिक रूप से 256 बिट्स बना सकते हैं, लेकिन यह क्या अच्छा है? इससे समस्या एक चरण आगे बढ़ जाती है: आप इस यादृच्छिक कुंजी की रक्षा कैसे करते हैं? कोई फर्क नहीं पड़ता कि यादृच्छिक रूप से जेनरेट की गई कुंजी कितनी यादृच्छिक बिट है, यह सुरक्षा श्रृंखला में सबसे कमजोर लिंक की तुलना में और अधिक सुरक्षा नहीं रखती है। सममित एन्क्रिप्शन कभी कमजोर लिंक नहीं है। 99% समय यह मानव है (क्योंकि इंसान अच्छे पासवर्ड चुनने और उन्हें सुरक्षित रखने में पूरी तरह असफल होते हैं), और शेष 1% के लिए यह लगभग हमेशा एक प्रमुख विनिमय प्रोटोकॉल होगा। – Damon
यह आपके इच्छित उत्तर के प्रकार पर निर्भर करता है: कार्यान्वयन में अंतर केवल एक प्रोग्रामिंग चिंता है जबकि डिजाइन में अंतर आमतौर पर विस्तृत गणितीय सबूत होते हैं। कई एन्क्रिप्शन एल्गोरिदम के बीच जटिल डिजाइन अंतरों को समझाते हुए संभवतः इस साइट के दायरे से बाहर है। इसके अलावा, प्रत्येक एल्गोरिदम में कमजोरियां होती हैं, कुछ जानी जाती हैं, कुछ नहीं। मौजूदा एल्गोरिदम में विशिष्ट कमजोरियों का परिणाम आमतौर पर उनकी सेवानिवृत्ति में होता है, लेकिन उनके आसपास काम करने के तरीके हो सकते हैं (क्लासिक उदाहरण: डीईएस में चाबियों का एक सबसेट था जिसके परिणामस्वरूप आसानी से क्रैक करने योग्य कोड होता था। कामकाज उन चाबियों का उपयोग नहीं करना था।)।
दोनों रिजेंडेल और ब्लोफिश को सुरक्षित माना जाता है।
MCRYPT_RIJNDAEL_128 बनाम MCRYPT_RIJNDAEL_256:
ब्लॉक अंतर केवल अंतर है। आप या तो 128 बिट, 1 9 2 बिट, या 256 बिट कुंजी के साथ उपयोग कर सकते हैं।
बड़ी चाबियाँ ब्रूट-बल के लिए अधिक समय लेती हैं।
256-बिट संस्करण अधिक सुरक्षित के लिए है।
नोट: 128-बिट संस्करण अभी भी बहुत समय ब्रूट-बल के लिए समय लेता है।
वर्तमान में क्रिप्ट उन्नत एन्क्रिप्शन मानक है:
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
एईएस आम तौर पर तेजी से होता है तो ब्लोफिश है क्योंकि:
- एल्गोरिथ्म ही प्रोसेसर के लिए और अधिक कुशल है (बिट बाइट ब्लॉक बनाम)।
- मैनी प्रोसेसर एईएस के लिए हार्डवेयर त्वरण का समर्थन करते हैं।
निष्कर्ष:
- सभी तीन विकल्प डेटा स्थानांतरण के लिए पर्याप्त सुरक्षित हैं।
- विकल्प इस बात पर निर्भर करता है कि डेटा कैसे 'गुप्त' है।
- रिजेंडेल व्यापक रूप से उपयोग किया जाता है और इसलिए कुछ स्थितियों को लागू करना आसान है।
एक 128 कुंजी पर ब्रूट फोर्स यथार्थवादी नहीं है। यह बस नहीं होगा। यदि आपके पास i7 है, तो आप प्रति सेकेंड लगभग 40 मिलियन एईएस ऑपरेशन कर सकते हैं। मान लें कि मेरी संख्या 1000 गलत के कारक से है, और मान लीजिए कि एक हमलावर के पास 500 मिलियन ऐसी मशीनों के साथ एक विशाल ज़ोंबी नेटवर्क है। अब उन संख्याओं द्वारा 2^128 विभाजित करें और फिर से विभाजित करें (86400 * 365)। यह अभी भी 10^11 साल है। बिल्ली, हमारा ग्रह अभी तक 10^11 साल तक अस्तित्व में नहीं है। यह * अधिक * अधिक संभावना है कि आपका पासफ्रेज टूटा जाएगा। – Damon
यही कारण है कि मैंने उल्लेख किया कि इसमें 'बहुत समय लगता है'। वर्तमान में ब्रूट-बल कुंजी के बिना एईएस एन्क्रिप्टेड डेटा को डिक्रिप्ट करने का एकमात्र तरीका है, दूसरे शब्दों में, हर संभव विकल्प की कोशिश करने के बाद कोई तेज विधि नहीं है। अनिवार्य रूप से 128-बिट एईएस एन्क्रिप्शन अभी भी बेहद सुरक्षित है, वहां बहुत अधिक संभावनाएं हैं :) – Anne
'RIJNDAEL_256' एईएस नहीं है। केवल 'RIJNDAEL_128' – CodesInChaos
आरएसए एक असममित एन्क्रिप्शन एल्गोरिथ्म और प्रस्तावित वर्ष 2030 के लिए अधिकतम कुंजी लंबाई 2048 एईएस अधिकतम कुंजी आकार के साथ एक सममित एल्गोरिथ्म है प्रस्तावित वर्ष 2015 के लिए 256 बिट एक नाग एन्क्रिप्शन एल्गोरिथ्म भी कुंजी आकार 256 के साथ सममित एल्गोरिथ्म और प्रस्तावित वर्ष 2015 है
यह प्रश्न का उत्तर नहीं देता है! – alfasin
इस प्रश्न का उत्तर यह है कि, MCRYPT_RIJNDAEL_128 और MCRYPT_RIJNDAEL_256 के संबंध में, "128 या 256 की संख्या मुख्य लंबाई है" - यह गलत है। ये संख्या को को अवरुद्ध करते हैं, जो कि मुख्य तरंगदैर्ध्य नहीं है। हालांकि, दोनों कार्यान्वयन (128 या 256 बिट्स के ब्लॉक आकार का उपयोग करके) 128 या 256 बिट्स की कुंजी स्वीकार कर सकते हैं।
- 1. जेनेटिक एल्गोरिदम और विकास रणनीतियों के बीच अंतर क्या हैं?
- 2. इन कार्यों के बीच क्या अंतर है
- 3. इन "ओपन" प्रारूपों के बीच अंतर क्या हैं
- 4. इन कार्यों के बीच क्या अंतर है?
- 5. जीईटी और पोस्ट एन्क्रिप्शन के बीच क्या अंतर है?
- 6. एन्कोडिंग और एन्क्रिप्शन के बीच अंतर
- 7. 'इन इन' और 'मौजूद नहीं' के बीच क्या अंतर है?
- 8. इन अंतर कैश-नियंत्रण पैरा के बीच क्या अंतर है?
- 9. एसएचए और एईएस एन्क्रिप्शन के बीच क्या अंतर है?
- 10. इन 2 आयातों के बीच कोई अंतर?
- 11. 'कॉन्स्ट रेफ' और 'इन' के बीच अंतर?
- 12. ट्रिकी एन्क्रिप्शन एल्गोरिदम डिजाइन
- 13. "पहाड़ी चढ़ाई" और "लालची" एल्गोरिदम के बीच क्या अंतर है?
- 14. इन सभी ओपनसीवी पायथन इंटरफेस के बीच क्या अंतर है?
- 15. सी में इन घोषणाओं के बीच क्या अंतर है?
- 16. इन मैट्रिक्स मोड के बीच क्या अंतर है?
- 17. JQuery: इन दो बयानों के बीच क्या अंतर है?
- 18. इन दो फ़ंक्शन प्रकार परिभाषाओं के बीच क्या अंतर है?
- 19. इन रूबी नेमस्पेस सम्मेलनों के बीच क्या अंतर है?
- 20. सममित-कुंजी एन्क्रिप्शन एल्गोरिदम
- 21. इन LINQ प्रश्नों के बीच क्या अंतर है?
- 22. $ {} और # {} के बीच अंतर क्या हैं?
- 23. इन तीन MySQL प्रश्नों के बीच क्या अंतर है?
- 24. इन दो बयानों के बीच क्या अंतर है
- 25. इन दो सी ++ कोड ब्लॉक के बीच क्या अंतर है?
- 26. इन सभी ऑडियो ढांचे के बीच क्या अंतर है?
- 27. इन 2 स्प्रिंग आईओसी इंजेक्शन के बीच क्या अंतर है?
- 28. इन दो कोड नमूने के बीच क्या अंतर है?
- 29. इन दो चयनकर्ताओं के बीच क्या अंतर है?
- 30. पर्ल और रूबी के बीच ब्लाफिश एन्क्रिप्शन में अंतर
कौन सा डेटा स्थानांतरित किया जा रहा है, इसे किस स्थानांतरित किया जा रहा है? –
यह प्रश्न बहुत व्यापक है - क्या आप इस दायरे को कम कर सकते हैं? –