स्ट्रीम सिफर (Stream Cipher) प्लेनटेक्स्ट जानकारी पर टाइम-वेरिंग ट्रांसफॉर्मेशन का उपयोग करके बाइनरी नंबरों की एक सतत स्ट्रिंग को एन्क्रिप्ट करता है। इसलिए, इस प्रकार का एन्क्रिप्शन बिट-दर-बिट काम करता है, कीस्ट्रीम का उपयोग करके प्लेन टेक्स्ट संदेशों की मनमानी लंबाई के लिए सिफरटेक्स्ट बनाने के लिए।
कार्यप्रणाली
- सिफर एक कुंजी (128/256 बिट्स) और एक नॉन्स अंक (64-128 बिट्स) को जोड़कर कीस्ट्रीम बनाता है और एक स्यूडोरैंडम नंबर को प्लेनटेक्स्ट के साथ XOR करके सिफरटेक्स्ट बनाता है।
- जबकि कुंजी और नॉन्स का पुन: उपयोग किया जा सकता है, सुरक्षा सुनिश्चित करने के लिए प्रत्येक एन्क्रिप्शन रिडंडेंसी के लिए कीस्ट्रीम अद्वितीय होना चाहिए।
- स्ट्रीम एन्क्रिप्शन सिफर फीडबैक शिफ्ट रजिस्टर का उपयोग करके एक अद्वितीय नॉन्स (नंबर यूज्ड ओनली वन्स) उत्पन्न करके कीस्ट्रीम का उत्पादन करते हैं।
विशेषताएं
- त्रुटि प्रसार कम: स्ट्रीम सिफर की आवश्यकता वाली एन्क्रिप्शन योजनाएं सिस्टम-वाइड त्रुटियों को प्रसारित करने की कम संभावना रखती हैं क्योंकि एक बिट के अनुवाद में त्रुटि आमतौर पर पूरे प्लेनटेक्स्ट ब्लॉक को प्रभावित नहीं करती।
- रैखिक और निरंतर: स्ट्रीम एन्क्रिप्शन एक रैखिक, निरंतर तरीके से भी प्रकट होता है, जिससे इसे लागू करना सरल और तेज़ हो जाता है।
- डिफ्यूजन का अभाव: दूसरे शब्दों में, स्ट्रीम सिफर में डिफ्यूजन की कमी होती है क्योंकि प्रत्येक प्लेनटेक्स्ट अंक एक सिफरटेक्स्ट आउटपुट पर मैप होता है।
- प्रामाणिकता सत्यापित नहीं करता: इसके अलावा, वे प्रामाणिकता सत्यापित नहीं करते, और उन्हें इंसर्शन के प्रति संवेदनशील बनाते हैं। यदि हैकर्स एन्क्रिप्शन एल्गोरिदम को तोड़ते हैं, तो वे बिना पता चले एन्क्रिप्टेड संदेश को जोड़ या बदल सकते हैं।
उपयोग के मामले
- स्ट्रीम सिफर आमतौर पर उन अनुप्रयोगों में जानकारी एन्क्रिप्ट करने के लिए उपयोग किए जाते हैं जहां प्लेन टेक्स्ट की मात्रा तय नहीं की जा सकती और कम विलंबता उपयोग-विधियों में।
- स्ट्रीम सिफर कीस्ट्रीम (Keystream) के रूप में जानी जाने वाली किसी चीज़ का उपयोग करते हैं।
- एक कीस्ट्रीम एक रैंडम 8-बिट आउटपुट है जो एक कुंजी को स्यूडोरैंडम बिट जनरेटर में आपूर्ति करके उत्पन्न होता है।
- बनाया गया 8-बिट आउटपुट कीस्ट्रीम के रूप में जाना जाता है और दिए गए स्ट्रीम सिफर एल्गोरिदम में जानकारी के एन्क्रिप्शन और डिक्रिप्शन में उपयोग किया जाता है।
बिट-स्ट्रीम जनरेटर
- बिट-स्ट्रीम जनरेटर को एक एल्गोरिदमिक प्रक्रिया के रूप में कार्यान्वित किया जाना चाहिए, ताकि क्रिप्टोग्राफिक बिट स्ट्रीम दोनों उपयोगकर्ताओं द्वारा बनाई जा सके।
- इस विधि में, बिट-स्ट्रीम जनरेटर एक कुंजी-नियंत्रित एल्गोरिदम है और एक बिट स्ट्रीम उत्पन्न करना चाहिए जो क्रिप्टोग्राफिक रूप से मजबूत हो।
- अब, दोनों उपयोगकर्ताओं को केवल जनरेटिंग कुंजी साझा करने की आवश्यकता है, और प्रत्येक की स्ट्रीम बना सकता है।
स्ट्रीम सिफर के फायदे
- उचित रूप से डिज़ाइन किए गए स्यूडोरैंडम नंबर जनरेटर के साथ, एक स्ट्रीम सिफर समान कुंजी लंबाई के ब्लॉक सिफर जितना सुरक्षित हो सकता है।
- मुख्य लाभ यह है कि स्ट्रीम सिफर जो बिल्डिंग ब्लॉक के रूप में ब्लॉक सिफर का उपयोग नहीं करते, आमतौर पर तेज़ होते हैं और ब्लॉक सिफर की तुलना में बहुत कम कोड का उपयोग करते हैं।
- उन अनुप्रयोगों के लिए जिन्हें डेटा के स्ट्रीम के एन्क्रिप्शन/डिक्रिप्शन की आवश्यकता होती है, जिसमें डेटा संचार चैनल या ब्राउज़र/वेब लिंक पर शामिल है, एक स्ट्रीम सिफर बेहतर विकल्प हो सकता है।
- जो अनुप्रयोग जानकारी के ब्लॉकों का प्रबंधन करते हैं, जिसमें फ़ाइल ट्रांसफर, ई-मेल, और डेटाबेस शामिल हैं, ब्लॉक सिफर अधिक उपयुक्त हो सकते हैं।
- हालांकि, इस प्रकार के सिफर का उपयोग अनिवार्य रूप से किसी भी अनुप्रयोग में किया जा सकता है।