सवाल संपीड़ित करें और फिर एन्क्रिप्ट करें, या इसके विपरीत?


मैं एक वीपीएन प्रणाली लिख रहा हूं जो नेट पर अपने यातायात को एन्क्रिप्ट करता है (क्यों खुद को लिखते हैं जब 1,000,001 अन्य लोग पहले से बाहर हैं? अच्छा, मेरा एक विशिष्ट कार्य के लिए एक विशेष व्यक्ति है जो दूसरों में से कोई भी फिट नहीं है)।

असल में मैं यह सुनिश्चित करने के लिए आपकी सोच को चलाने के लिए चाहता हूं कि मैं इसे सही क्रम में कर रहा हूं।

फिलहाल पैकेट को बाहर भेजने से पहले एन्क्रिप्ट किया गया है, लेकिन मैं डेटा के ट्रैनफ़र को अनुकूलित करने के लिए उन्हें कुछ स्तर का संपीड़न जोड़ना चाहता हूं। भारी संपीड़न नहीं - मैं हर समय सीपीयू को अधिकतम नहीं करना चाहता, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि संपीड़न जितना संभव हो उतना कुशल हो जाएगा।

तो, मेरी सोच है, मुझे पैकेट को संपीड़ित करना चाहिए से पहले एक अनएन्क्रिप्टेड पैकेट के रूप में एन्क्रिप्टिंग एक एन्क्रिप्टेड से बेहतर संपीड़ित होगा? या फिर इसके विपरीत?

मैं शायद संपीड़न के लिए zlib का उपयोग कर रहा हूँ।

और पढो सुपर उपयोगकर्ता ब्लॉग पर


86
2018-03-15 09:37


मूल


"प्रोग्रामिंग" के रूप में लिख रहे हैं? तब स्टैक ओवरफ़्लो के लिए बेहतर अनुकूल होगा। - Suma
अगर मैं इसके प्रोग्रामिंग के बारे में पूछ रहा था, हाँ, लेकिन मैं नहीं हूं। यह एक सामान्य संपीड़न है, फिर एन्क्रिप्ट या एन्क्रिप्ट करें, फिर प्रश्न को संपीड़ित करें जो सादे फाइलों के साथ काम करने के लिए लागू हो सकता है यदि आप चाहते थे। प्रोग्रामिंग पक्ष सिर्फ संदर्भ है कि मैं सवाल क्यों पूछ रहा हूं। - Majenko
यह भी देखें: stackoverflow.com/questions/4676095  stackoverflow.com/questions/4399812 - BlueRaja - Danny Pflughoeft
शायद एक सवाल के लिए सबसे अच्छा मतलब है security.stackexchange.com - Jeff Ferland
वे संपीड़न के बारे में जानते हैं वे वहाँ करते हैं? - Majenko


जवाब:


अगर एन्क्रिप्शन ठीक से किया जाता है तो परिणाम मूल रूप से यादृच्छिक डेटा है। अधिकांश संपीड़न योजनाएं आपके डेटा में पैटर्न ढूंढकर काम करती हैं जो कि किसी भी तरह से फैक्टर हो सकती हैं, और एन्क्रिप्शन के लिए धन्यवाद अब कोई नहीं है; डेटा पूरी तरह से असम्पीडित है।

एन्क्रिप्ट करने से पहले संपीड़ित करें।


172
2018-03-15 10:41



अधिक महत्वपूर्ण: संपीड़न एन्ट्रॉपी जोड़ता है। एंट्रॉपी जोड़ना आपके एन्क्रिप्शन के लिए अच्छा है (ज्ञात-सादे टेक्स्ट हमलों के साथ तोड़ना मुश्किल है)। - Olli
साथ ही, लागत संसाधनों को एन्क्रिप्ट करना, एक छोटी फ़ाइल को एन्क्रिप्ट करना कम संसाधन लेगा। तो एन्क्रिप्ट करने से पहले संपीड़ित करें। - GAThrawn
@ ओली - जरूरी नहीं कि संपीड़न योजना ज्ञात पाठ जोड़ती है। सबसे खराब मामले में कल्पना करें कि क्या यह डेटा के सामने एक ज्ञात 512byte हेडर डालता है और आप ब्लॉक मोड एन्क्रिप्शन का उपयोग कर रहे थे। - Martin Beckett
मुझे यकीन नहीं है कि क्यों @ ओली की टिप्पणी उभरी जाएगी, क्योंकि यह गलत है; न केवल यह महत्वपूर्ण है कम से महत्वपूर्ण है, किसी भी अर्द्ध सभ्य एन्क्रिप्शन के लिए यह होना चाहिए बिल्कुल महत्वपूर्ण नहीं है। यही है, एन्क्रिप्शन की ताकत संदेश की एंट्रॉपी से पूरी तरह से असंबंधित नहीं होनी चाहिए। - BlueRaja - Danny Pflughoeft
यदि आप बिल्कुल संकुचित करते हैं, तो यह संदेश को एन्क्रिप्ट करने से पहले ही किया जा सकता है, लेकिन ध्यान रखें, यह मूल संदेश की 'संपीड़न' के बारे में जानकारी को रिसाव कर सकता है, इसलिए आप इस बात पर विचार करना चाहेंगे कि इस तरफ से कोई परिणाम हैं या नहीं चैनल। एक निश्चित आकार की फ़ाइल पर विचार करें जो या तो सभी 0s या एक संदेश है। सभी 0 फ़ाइल के परिणामस्वरूप किसी भी उचित संपीड़न योजना के तहत एक छोटा पेलोड होगा। हालांकि इस विशेष उपयोग मामले में कोई समस्या नहीं है। - Edward KMETT


एन्क्रिप्शन से पहले संपीड़ित करें। संपीड़ित डेटा स्रोत डेटा में छोटे बदलावों के लिए काफी भिन्न हो सकता है, इसलिए अंतर क्रिप्टैनालिसिस को निष्पादित करना बहुत मुश्किल हो जाता है।

इसके अलावा, जैसा कि श्री अल्फा बताते हैं, अगर आप पहले एन्क्रिप्ट करते हैं, तो परिणाम को संपीड़ित करना बहुत मुश्किल होता है।


21
2018-03-15 13:01



खैर, यह सही है, लेकिन पोस्ट करने से 2 घंटे पहले पोस्ट किया गया था ... Entropy - Konerak


यहां तक ​​कि यदि यह विशिष्ट उपयोग-मामले पर निर्भर करता है, तो भी मैं एन्क्रिप्टेड-फिर-संपीड़न की सलाह दूंगा। अन्यथा एक हमलावर एन्क्रिप्टेड ब्लॉक की संख्या से जानकारी रिसाव कर सकता है।

हम मानते हैं कि एक उपयोगकर्ता सर्वर पर एक संदेश भेज रहा है और हमलावर (जावास्क्रिप्ट के माध्यम से) भेजने से पहले उपयोगकर्ता संदेश में टेक्स्ट संलग्न करने की संभावना के साथ एक हमलावर। उपयोगकर्ता सर्वर पर कुछ समझदार डेटा भेजना चाहता है और हमलावर यह डेटा प्राप्त करना चाहता है। तो वह उपयोगकर्ता को सर्वर पर भेजे गए डेटा को अलग-अलग संदेशों को जोड़ने का प्रयास कर सकता है। फिर उपयोगकर्ता अपने संदेश और हमलावर से संलग्न पाठ को संपीड़ित करता है। हम एक डीएफएलएटी एलजेड 77 संपीड़न मानते हैं, इसलिए फ़ंक्शन एक ही जानकारी को पहली उपस्थिति में पॉइंटर के साथ बदल देता है। तो अगर हमलावर छेद सादे टेक्स्ट को पुन: पेश कर सकता है, तो संपीड़न-फ़ंक्शन सादा पाठ के आकार को मूल आकार और सूचक में कम कर देता है। और एन्क्रिप्शन के बाद, हमलावर सिफर ब्लॉक की संख्या को गिन सकता है, इसलिए वह देख सकता है, अगर उसका संलग्न डेटा सर्वर के सर्वर को भेजे गए डेटा के समान ही था। भले ही यह मामला थोड़ा सा निर्माण करता है, यह टीएलएस में एक गंभीर सुरक्षा समस्या है। सत्रों को चुरा लेने के लिए टीएलएस कनेक्शन में कुकीज़ को रिसाव करने के लिए सीआरआईएमई नामक हमले द्वारा इस विचार का उपयोग किया जाता है।

स्रोत: http://www.ekoparty.org/archive/2012/CRIME_ekoparty2012.pdf


3
2018-01-14 21:32





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


2
2017-10-09 04:11





एन्क्रिप्शन से पहले संपीड़न किया जाना चाहिए। कोई उपयोगकर्ता डेटा के हस्तांतरण के लिए समय बिताना नहीं चाहता है, लेकिन उसे किसी भी समय बर्बाद किए बिना तुरंत किया जाना चाहिए।


1
2018-03-16 08:39





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


1
2018-06-19 19:54



यह स्वीकार्य और दूसरे उत्तरों का दोहराना प्रतीत होता है। प्रत्येक उत्तर को प्रश्न के लिए एक नया नया समाधान योगदान देना चाहिए। - fixer1234


संपीड़न सूचना एंट्रॉपी को कम कर देता है। अधिकतम संपीड़न न्यूनतम एन्टोपी बनाता है। पूरी तरह से एन्क्रिप्टेड डेटा (शोर) अधिकतम और न्यूनतम एन्ट्रॉपी समान है।


0
2018-03-16 00:19



रुको, क्या आपके पीछे यह नहीं है? मैंने सोचा कि एंट्रॉपी में कमी आई है क्योंकि रिडंडेंसी कम हो गई है। इसलिए संपीड़न एंट्रॉपी बढ़ाना चाहिए। - Zan Lynx
एनओपी, कम एन्ट्रॉपी = अधिक पैटर्न। यादृच्छिकता में अधिकांश एन्ट्रॉपी है। - AbiusX
लकिन यह है जानकारी एन्ट्रॉपी तो यह सब अर्थ के बारे में है। यादृच्छिकता का मतलब कुछ भी नहीं है, इसलिए यह लागू नहीं होता है। एक अंग्रेजी वाक्य में अक्षर बदल सकते हैं और अभी भी वही बात है जिसका अर्थ कम एन्ट्रॉपी है। एक संपीड़ित अंग्रेजी वाक्य अपठनीय हो सकता है यदि एक बिट थोड़ा बदलता है तो इसमें सबसे अधिक है। या तो मुझे लगता है। - Zan Lynx
एंट्रॉपी समझने और समझने की क्षमता, पैटर्न के बारे में सब कुछ नहीं है। संपीड़ित फ़ाइलें पैटर्न से भरे हुए हैं। - AbiusX
@ एबियसएक्स: ठीक है। पैटर्न। और कम पैटर्न, अधिक एन्ट्रॉपी। जिसका अर्थ यह है कि संपीड़न जो एक ही प्रतिलिपि के साथ सभी दोहराए गए पैटर्न को प्रतिस्थापित करता है, एन्ट्रॉपी बढ़ाता है। - Zan Lynx