2011-04-12 15 views
9

मैं समझता हूं कि ब्लॉक सिफर सॉफ़्टवेयर में अधिक लोकप्रिय हैं क्योंकि स्ट्रीम सिफर के विपरीत आमतौर पर हार्डवेयर आधारित होते हैं। हालांकि, स्ट्रीम सिफर में एक कुंजी का पुन: उपयोग क्यों नहीं किया जा सकता है? क्या यह पैटर्न के कारण हो सकता है?ब्लॉक सिफर और स्ट्रीम सिफर

उत्तर

30

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

एक ब्लॉक सिफर एक सामान्य क्रिप्टोग्राफिक तत्व है जो "ब्लॉक" जो एक निश्चित लंबाई (AES के लिए उदाहरण के लिए 128 बिट) के साथ बिट्स के दृश्यों रहे हैं पर काम करता है है। ब्लॉक साइफर ब्लॉक का क्रमपरिवर्तन है; कुंजी का चयन करता है कि हम किस क्रमपरिवर्तन के बारे में बात कर रहे हैं। अकेले एक ब्लॉक सिफर एक मनमाना लंबे संदेश को संसाधित नहीं कर सकता है; ब्लॉक सिफर और डेटा को mode of operation नामक एक विस्तृत निर्माण के भीतर उपयोग किया जाना चाहिए (जिसे अक्सर "चेनिंग मोड" भी कहा जाता है)।

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

धारा सिफर, क्या हर हालत में बचा जाना चाहिए दो अलग-अलग संदेशों के लिए बिट्स की एक ही कुंजी पर निर्भर अनुक्रम पुन: उपयोग किया जाता है के साथ

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

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

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

+0

वाह, कि अधिक से अधिक मैं की तलाश में गया था। इस तरह के एक विस्तृत प्रतिक्रिया के लिए धन्यवाद। सादर – Joeblackdev

1

ब्लॉक साइफर: ब्लॉक साइफर ब्लॉक द्वारा संदेश ब्लॉक एन्क्रिप्ट करने जैसा है। संदेश के एन्क्रिप्शन के बाद ब्लॉक द्वारा ब्लॉक को तोड़ रहा है।

स्ट्रीम सिफर: स्ट्रीम सिफर मूल संदेश के बिट एन्क्रिप्शन द्वारा थोड़ा सा है।

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