एक Feistel सिफर एक क्रिप्टोग्राफिक दृष्टिकोण है जिसका उपयोग ब्लॉक सिफर आधारित एल्गोरिदम और संरचना के निर्माण में किया जाता है। एक Feistel नेटवर्क सूचना के एक ब्लॉक पर पुनरावृत्त सिफर के अनुक्रम को लागू करता है और अक्सर ब्लॉक सिफर के लिए डिज़ाइन किया जाता है जो बड़ी मात्रा में डेटा को एन्क्रिप्ट करता है।
एक Feistel नेटवर्क डेटा ब्लॉक को दो समान टुकड़ों में विभाजित करके और कई राउंड में एन्क्रिप्शन का उपयोग करके संचालित होता है। प्रत्येक दौर प्राथमिक कार्य या कुंजी से प्राप्त क्रमपरिवर्तन और अनुक्रम को लागू करता है। एक Feistel नेटवर्क को लागू करने वाले प्रत्येक सिफर के लिए राउंड की संख्या बदल जाती है।
एक Feistel सिफर एक बहु-गोल सिफर है जो सिफर की वर्तमान निजी स्थिति को दो भागों में विभाजित करता है और एन्क्रिप्शन या डिक्रिप्शन के प्रत्येक दौर में केवल एक व्यक्तिगत भाग पर काम करता है।
Feistel ने प्रस्तावित किया कि यह एक उत्पाद सिफर की अवधारणा का उपयोग करके वैचारिक ब्लॉक सिफर का अनुमान लगा सकता है, जो इस तरह से अनुक्रम में दो या दो से अधिक सरल सिफर का निष्पादन है कि अंतिम परिणाम या उत्पाद किसी भी घटक सिफर की तुलना में क्रिप्टोग्राफिक रूप से बेहतर है। ।
विधि का सार k बिट्स की एक प्रमुख लंबाई और n बिट्स की एक ब्लॉक लंबाई के साथ एक ब्लॉक सिफर बनाना है, जो 2n के बजाय कुल संभावित 2k परिवर्तनों को सक्षम करता है! आदर्श ब्लॉक सिफर के साथ उपलब्ध परिवर्तन।
Feistel ने एक सिफर के उपयोग का प्रस्ताव दिया जो प्रतिस्थापन और क्रमपरिवर्तन को वैकल्पिक करता है, जहां इन विधियों को निम्नानुसार परिभाषित किया गया है -
प्रतिस्थापन - प्रत्येक प्लेनटेक्स्ट घटक या घटक के सेट को संबंधित सिफर टेक्स्ट घटक या घटक के सेट द्वारा विशिष्ट रूप से पुनर्स्थापित किया जाता है।
क्रमपरिवर्तन - सादे पाठ घटक का एक क्रम उस क्रम के क्रमपरिवर्तन द्वारा सहेजा जाता है। अर्थात्, क्रम में कोई तत्व सम्मिलित या हटाया या प्रतिस्थापित नहीं किया जाता है, उस क्रम के बजाय जिस क्रम में तत्व अनुक्रम में दिखाई देते हैं उसे बदल दिया जाता है।
फिस्टल सिफर को की शेड्यूल के रूप में जाना जाता है जो सिफर के प्रत्येक राउंड में इनपुट के रूप में सुविधा प्रदान करता है। मुख्य शेड्यूल के लिए दो विकल्प उपलब्ध हैं।
पहला यह है कि सिफर (या "गोल कुंजी") के प्रत्येक दौर की कुंजी दोनों पक्षों द्वारा साझा की गई गुप्त कुंजी में निहित होती है (जिसके परिणामस्वरूप एक उच्च साझा गुप्त कुंजी होती है)।
दूसरा विकल्प यह है कि साझा गुप्त कुंजी का उपयोग "कुंजी विस्तार" फ़ंक्शन के इनपुट के रूप में किया जाता है जो अगले राउंड कुंजी बनाने के लिए पिछली राउंड कुंजी या कुंजी पीढ़ी एल्गोरिदम की वर्तमान आंतरिक स्थिति पर कुछ ऑपरेशन लागू करता है।
K फ़ंक्शन एन्क्रिप्शन के प्रत्येक दौर के लिए मूल गुप्त कुंजी को गोल कुंजियों में बदल देता है। एन्क्रिप्शन फ़ंक्शन के मुख्य स्थान का समर्थन करने के लिए इस फ़ंक्शन का चयन किया जाना चाहिए।
यदि 64-बिट गुप्त कुंजी की आवश्यकता है, लेकिन उसी बिंदु पर प्रभावी कुंजी स्थान 32 बिट तक सिकुड़ जाता है, इसलिए एक हमलावर को सिफरटेक्स्ट को डिक्रिप्ट करने के लिए केवल 32-बिट कुंजियों का स्थान खोजना पड़ता है।