2010-09-07 12 views
19

एक सुरक्षित प्रणाली बनाने के लिए, क्या हम मान सकते हैं कि एक सुरक्षित प्रोग्रामिंग शुरू करने से पहले एन्क्रिप्शन गारंटी अखंडता सच है?क्या एन्क्रिप्शन गारंटी अखंडता करता है?

  • दोनों सममित और सार्वजनिक कुंजी एन्क्रिप्शन में, मेरे सवाल का अच्छी तरह-रहित है?
  • यदि नहीं, भेद्यताएं क्या हैं, तो क्या आप उदाहरण दे सकते हैं?
+1

ईमानदारी से आपका क्या मतलब है? डेटा अखंडता? – NullUserException

+0

निश्चित रूप से, डेटा अखंडता – berkay

+1

+1 महान प्रश्न। – rook

उत्तर

21

नहीं। यह देखना आसान है कि क्या आप one-time pad, एक साधारण (सैद्धांतिक रूप से) पूरी तरह से सुरक्षित प्रणाली पर विचार करते हैं।

यदि आप आउटपुट का कोई भी हिस्सा बदलते हैं, तो स्पष्ट टेक्स्ट का थोड़ा सा बदल जाएगा, और प्राप्तकर्ता के पास इसका पता लगाने का कोई तरीका नहीं है।

यह एक स्पष्ट मामला है, लेकिन एक ही निष्कर्ष अधिकांश एन्क्रिप्शन सिस्टम पर लागू होता है। वे केवल गोपनीयता के लिए प्रदान करते हैं, अखंडता नहीं।

इस प्रकार, आप digital signature जोड़ना चाह सकते हैं। दिलचस्प बात यह है कि सार्वजनिक कुंजी क्रिप्टोग्राफी का उपयोग करते समय, एन्क्रिप्ट (एसई) पर हस्ताक्षर करने के लिए पर्याप्त नहीं है, या फिर एन्क्रिप्ट करने के लिए साइन (ES)। ये दोनों हमले को फिर से चलाने के लिए कमजोर हैं। आम तौर पर एक सुरक्षित समाधान के लिए आपको या तो साइन-एन्क्रिप्ट-साइन या एन्क्रिप्ट-साइन-एन्क्रिप्ट करना होगा। यह paper बताता है कि विस्तार से क्यों।

यदि आप एसई का उपयोग करते हैं, तो प्राप्तकर्ता संदेश को डिक्रिप्ट कर सकता है, फिर उसे एक अलग प्राप्तकर्ता को फिर से एन्क्रिप्ट कर सकता है। इसके बाद प्रेषक के इच्छित प्राप्तकर्ता के बारे में नया प्राप्तकर्ता धोखा देता है।

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

+0

क्या होगा यदि मैं अपना संदेश अपनी निजी कुंजी से एन्क्रिप्ट करता हूं और भेजता हूं? कैसे अखंडता संपत्ति का उल्लंघन किया जा सकता है? – berkay

+1

आपकी निजी कुंजी के साथ एन्क्रिप्ट करना आमतौर पर हस्ताक्षर के रूप में जाना जाता है। यह ईमानदारी प्रदान करता है, लेकिन गोपनीयता नहीं। हर कोई आपकी सार्वजनिक कुंजी जानता है, इसलिए वे संदेश को "डिक्रिप्ट" (सत्यापित) कर सकते हैं। –

+0

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

2

डेटा अखंडता आप के लिए एक विशिष्ट चिंता का विषय है, तो आप का उपयोग एक cryptographic hash function, एक एक एन्क्रिप्शन एल्गोरिथ्म के साथ संयुक्त चाहिए।

लेकिन यह वास्तव में नौकरी के लिए सही उपकरण का उपयोग करने के लिए नीचे आ गया है। कुछ एन्क्रिप्शन एल्गोरिदम अंतर्निहित चेकसम सत्यापन का कुछ स्तर प्रदान कर सकते हैं, अन्य शायद नहीं।

+0

या cmac मोड का उपयोग करें ... – rook

10

संक्षेप में उत्तर नहीं है। संदेश ईमानदारी और गोपनीयता अलग हैं, और विभिन्न उपकरणों की आवश्यकता है।

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

इस परिदृश्य में कुछ हमले हो सकते हैं।

1) एक हमलावर ट्रांजिट में बिट को संशोधित कर सकता है, अगर यह 0 था तो 50% मौका यह 1 बन जाएगा और इसके विपरीत यह सच है। ऐसा इसलिए है क्योंकि आरसी 4 एक प्रांग स्ट्रीम उत्पन्न करता है जो सादे पाठ के साथ एक्सओआरड होता है, एक बार पैड के समान, सिफर टेक्स्ट का उत्पादन करता है।

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

एक ब्लॉक सिफर का उपयोग करने के लिए एक समाधान CMAC Mode है। एक सीएमएसी एक संदेश प्रमाणीकरण कोड है जो एचएमएसी के समान होता है लेकिन यह संदेश डाइजेस्ट फ़ंक्शन के बजाय ब्लॉक सिफर का उपयोग करता है। गुप्त कुंजी (के) एक ही कुंजी है जिसका उपयोग आप संदेश को एन्क्रिप्ट करने के लिए करते हैं। यह सिफर टेक्स्ट में एन + 1 ब्लॉक जोड़ता है। मेरे परिदृश्य में यह दोनों 1 और 2 हमलों को रोकता है। एक हमलावर एक साधारण बिट नहीं फिसल सकता है क्योंकि सादा पाठ गद्देदार है, भले ही संदेश केवल 1 बिट लेता है, मुझे ब्लॉक सिफर का उपयोग करके कम से कम 1 ब्लॉक ट्रांसमिट करना होगा। अतिरिक्त प्रमाणीकरण ब्लॉक मुझे कुंजी को चेन करने से रोकता है, और यह पारगमन में सिफर टेक्स्ट को संशोधित करने का प्रयास करने वाले किसी भी व्यक्ति से ईमानदारी प्रदान करता है (हालांकि अभ्यास में यह करना मुश्किल होगा, सुरक्षा की अतिरिक्त परत उपयोगी है)।

WPA2 इन कारणों से एईएस-सीएमएसी का उपयोग करता है।

+0

+1 सीएमएसी – NullUserException

+0

का उल्लेख करने के लिए उत्तर के लिए धन्यवाद, मैं इसके लिए इंतजार कर रहा था ... – berkay

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