एक ब्लॉक सिफर और एक धारा सिफर के बीच प्रमुख अंतर यह है कि ब्लॉक सिफर एक बार में पाठ के एक ब्लॉक को एन्क्रिप्ट और डिक्रिप्ट करता है। दूसरी ओर, सिफर एनक्रिप्ट और स्ट्रीम को एक बार में टेक्स्ट के एक बाइट को ले कर डिक्रिप्ट करता है।
तुलना चार्ट
तुलना के लिए आधार | ब्लॉक सिफर | स्ट्रीम साइफर |
---|---|---|
बुनियादी | एक बार में इसका ब्लॉक लेकर सादे पाठ को रूपांतरित करता है। | सादे पाठ के एक बाइट को एक बार में लेकर पाठ को रूपांतरित करता है। |
जटिलता | सरल डिजाइन | तुलनात्मक रूप से जटिल |
बिट्स का इस्तेमाल नहीं किया | 64 बिट्स या अधिक | 8 बिट्स |
भ्रम और प्रसार | भ्रम और प्रसार दोनों का उपयोग करता है | केवल भ्रम पर भरोसा करता है |
एल्गोरिथ्म मोड का इस्तेमाल किया | ईसीबी (इलेक्ट्रॉनिक कोड बुक) सीबीसी (सिफर ब्लॉक चेनिंग) | सीएफबी (सिफर फीडबैक) OFB (आउटपुट फीडबैक) |
उलटने अथवा पुलटने योग्यता | एन्क्रिप्टेड पाठ को उलटना कठिन है। | यह एन्क्रिप्शन के लिए XOR का उपयोग करता है जिसे आसानी से सादे पाठ में बदला जा सकता है। |
कार्यान्वयन | फिस्टल सिफर | वेरनाम सिफर |
ब्लॉक सिफर की परिभाषा
ब्लॉक सिफर एक संदेश लेता है और इसे ब्लॉक के एक निश्चित आकार में तोड़ता है और एक पल में संदेश के एक ब्लॉक को परिवर्तित करता है। उदाहरण के लिए, हमारे पास सादे पाठ "STREET_BY_STREET" में एक संदेश है जिसे एन्क्रिप्ट करने की आवश्यकता है। बॉक सिफर का उपयोग करते हुए, "STREET" को पहले एन्क्रिप्ट किया जाना चाहिए, उसके बाद "_BY_" और अंत में "STREET" पर।
वास्तविक व्यवहार में, संचार केवल बिट्स में होता है। इसलिए, STREET का अर्थ वास्तव में STREET के ASCII वर्ण के बाइनरी समतुल्य है। इसके बाद, कोई भी एल्गोरिथम इनको एन्क्रिप्ट करता है; परिणामी बिट्स अपने ASCII समकक्ष में बदल जाते हैं।
ब्लॉक सिफर्स के उपयोग के बारे में एक स्पष्ट समस्या पाठ को दोहरा रही है, जिसके लिए समान सिफर उत्पन्न होता है। इसलिए, यह क्रिप्टैनालिस्ट को एक संकेत देगा जो बनाता है कि सादे पाठ के आवर्ती तारों का पता लगाना आसान है। नतीजतन, यह पूरे संदेश को प्रकट कर सकता है।
इस समस्या से उबरने के लिए चैनिंग मोड का उपयोग किया जाता है। इस तकनीक में, सिफर टेक्स्ट के पूर्ववर्ती ब्लॉक को वर्तमान ब्लॉक के साथ मिलाया जाता है, इसलिए सिफर टेक्स्ट अस्पष्ट के रूप में, यह उसी सामग्री के साथ ब्लॉक के आवर्ती पैटर्न से बचा जाता है।
स्ट्रीम सिफर की परिभाषा
स्ट्रीम सिफर आमतौर पर ब्लॉक का उपयोग करने के बजाय उस क्षण संदेश के एक बाइट को एन्क्रिप्ट करता है। आइए एक उदाहरण लेते हैं , मान लीजिए कि मूल संदेश (सादा पाठ) ASCII में "नीला आकाश" है (यानी पाठ प्रारूप)। जब आप इन ASCII को समकक्ष बाइनरी मान में परिवर्तित करते हैं, तो यह 0 और 1 के फॉर्म में आउटपुट देगा। इसे 010111001 में अनुवादित होने दें।
एन्क्रिप्शन और डिक्रिप्शन के लिए, एक छद्म आयामी बिट जनरेटर का उपयोग किया जाता है जिसमें एक कुंजी और सादा पाठ लोड किया जाता है। एक छद्म आयामी बिट जनरेटर 8-बिट संख्याओं की एक धारा बनाता है जो प्रतीत होता है यादृच्छिक रूप से कीस्ट्रीम के रूप में जाना जाता है। इनपुट कुंजी 100101011 है। अब कुंजी और प्लेटेक्स्ट XORed हैं। XOR तर्क समझने में सरल है।
XOR 1 का आउटपुट उत्पन्न करता है जब एक इनपुट 0 होता है, और दूसरा 1 होता है। आउटपुट 0 होता है यदि दोनों इनपुट 0 हैं या दोनों इनपुट 1 हैं।
भ्रम एक विधि है जो गारंटी देती है कि एक सिफर पाठ मूल सादे पाठ के बारे में कोई सुराग नहीं देता है।
डिफ्यूजन एक ऐसी रणनीति है जिसका इस्तेमाल सादे पाठ की अतिरेक को पंक्तियों और स्तंभों में फैलाकर किया जाता है।
ब्लॉक सिफर और स्ट्रीम सिफर के बीच महत्वपूर्ण अंतर
- ब्लॉक सिफर तकनीक में एक समय में एक ब्लॉक यानी एक एकल पाठ का एन्क्रिप्शन शामिल होता है। इसी तरह, एक के बाद एक ब्लॉक लेकर टेक्स्ट को डिक्रिप्ट करें। इसके विपरीत, स्ट्रीम साइफर तकनीक में एक समय में पाठ के एक बाइट का एन्क्रिप्शन और डिक्रिप्शन शामिल होता है।
- ब्लॉक साइफर भ्रम और प्रसार दोनों का उपयोग करता है जबकि स्ट्रीम साइफर केवल भ्रम पर निर्भर करता है।
- ब्लॉक साइपर में ब्लॉक का सामान्य आकार 64 या 128 बिट्स हो सकता है। के रूप में, एक समय में 1 बाइट (8 बिट) धारा सिफर में परिवर्तित होता है।
- ब्लॉक सिफर ईसीबी (इलेक्ट्रॉनिक कोड बुक) और सीबीसी (सिफर ब्लॉक चेनिंग) एल्गोरिदम मोड का उपयोग करता है। इसके विपरीत, स्ट्रीम साइफर सीएफबी (सिफर फीडबैक) और ओएफबी (आउटपुट फीडबैक) एल्गोरिदम मोड का उपयोग करता है।
- स्ट्रीम सिफर, सादे पाठ को सिफर टेक्स्ट में परिवर्तित करने के लिए XOR फ़ंक्शन का उपयोग करता है, यही कारण है कि XORS बिट्स को उल्टा करना आसान है। जबकि ब्लॉक सिफर ऐसा करने के लिए XOR का उपयोग नहीं करता है।
- ब्लॉक सिफर प्रत्येक ब्लॉक को एन्क्रिप्ट करने के लिए एक ही कुंजी का उपयोग करता है जबकि स्ट्रीम साइफर प्रत्येक बाइट के लिए एक अलग कुंजी का उपयोग करता है।
निष्कर्ष:
ब्लॉक सिफर और स्ट्रीम सिफर उस तरीके से अलग होता है जिसमें सादा पाठ एन्क्रिप्ट और डिक्रिप्ट होता है। ब्लॉक सिफर के पीछे का विचार है कि सादे पाठ को ब्लॉक में विभाजित करें और उन ब्लॉकों को एन्क्रिप्ट करें। जबकि स्ट्रीम साइफर स्ट्रीम के समान सादे टेक्स्ट बिट को परिवर्तित करता है।