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