ब्लोफिश दिसंबर 1993 में Brute Schneier द्वारा आविष्कार किया गया एक सममित ब्लॉक सिफर एल्गोरिथ्म है। ब्लोफिश DES या IDEA का एक विकल्प है। सबसे लोकप्रिय फिस्टल नेटवर्क सिफर में से एक ब्लोफिश है। ब्लोफिश एल्गोरिथम में 64-बिट ब्लॉक आकार और चर कुंजी लंबाई 42 बिट्स से 448 बिट्स तक है। एल्गोरिथ्म में एक कुंजी-विस्तार भाग और डेटा-एन्क्रिप्शन भाग शामिल है।
ब्लोफिश कई उपकुंजी सरणियों में अधिकतम 448 बिट्स की कुंजी बनाता है कुल 1042 32 बिट मान या 4168 बाइट्स है। यह एक 16-राउंड फिस्टल सिस्टम है, जो बहुत उच्च कुंजी-निर्भर एस-बॉक्स का समर्थन करता है और 16 पुनरावृत्तियों को सक्षम करता है।
प्रत्येक दौर को एक कुंजी और डेटा निर्भर प्रतिस्थापन और एक कुंजी-निर्भर क्रमपरिवर्तन के साथ अनुकूलित किया जाता है। 32-बिट शब्द और XOR संचालन परिवर्धन द्वारा कार्यान्वित किए जाते हैं। एक पी-सरणी और चार 32-बिट एस-बॉक्स हैं।
पी-सरणी में 32-बिट उपकुंजियों में से 18 शामिल हैं, जबकि प्रत्येक एस-बॉक्स में 256 प्रविष्टियां शामिल हैं। इनपुट 64 बिट डेटा तत्व है। उप कुंजी पीढ़ी की प्रक्रिया इस प्रकार है -
-
ब्लोफिश बहुत बड़ी संख्या में उपकुंजियों का उपयोग करता है। एन्क्रिप्शन और डिक्रिप्शन प्रकट होने से पहले इन कुंजियों को पहले से तैयार होना चाहिए। कुंजी आकार क्षेत्र 32 बिट से 448 बिट तक। दूसरे शब्दों में, कुंजी का आकार 1 से 14 शब्दों तक होता है, प्रत्येक में 32 बिट का शब्द शामिल होता है। ये कुंजियाँ एक सरणी में इस प्रकार सहेजी जाती हैं -
K1, K2,….Kn जहां 1 n ≤ 14
-
18, 32-बिट उपकुंजियों सहित पी-सरणी की अवधारणा -
P1,P2,………….,P18.
पी-सरणी के निर्माण का वर्णन बाद में किया गया है।
-
चार 32-बिट एस-बॉक्स हैं जिनमें प्रत्येक में 256 प्रविष्टियां शामिल हैं -
S1, 0, S1, 1… S1, 255
S2, 0, S2, 1… S2, 255
S3, 0, S3, 1… S3, 255
S4, 0, S4, 1… S4, 255
पी-सरणी का निर्माण बाद में परिभाषित किया गया है।
-
यह पहले पी-एरे को इनिशियलाइज़ कर सकता है, उसके बाद चार एस-बॉक्स, एक निश्चित स्ट्रिंग के साथ।
-
P Array और चार S बॉक्स Pi के हेक्साडेसिमल अंकों के रूप में इंगित करते हैं।
-
यह पी-एरे के बिटवाइज़ एक्सओआर संचालन को लागू कर सकता है और के एरे से कुंजी बिट्स (यानी, पी 1 एक्सओआर (बत्तीस बिट्स ऑफ की), पी 2 एक्सओआर (कुंजी के बत्तीस बिट्स) के साथ आवश्यक के एरे से पुन:उपयोग करने वाले शब्द।पी>
-
यह 64 बिट ब्लॉक को एन्क्रिप्ट कर सकता है और सामान्य पी और एस सरणी के साथ सभी शून्य को एन्क्रिप्ट करने के लिए निम्नलिखित एन्क्रिप्शन प्रक्रिया का उपयोग कर सकता है।
-
यह एन्क्रिप्शन के आउटपुट के साथ p1 और p2 का स्थान बना सकता है और नए आउटपुट को p1 और p2 कहा जाता है।
-
यह वर्तमान पी बॉक्स और एस बॉक्स का उपयोग करके चरण 3 के आउटपुट को एन्क्रिप्ट कर सकता है और परिणामी एन्क्रिप्टेड टेक्स्ट के साथ ट्रांसफॉर्म पी 3 और पी 4 और नए आउटपुट को पी 3 और पी 4 कहा जाता है।
-
यह निम्न चरणों को तब तक दोहरा सकता है जब तक कि यह P सरणी के सभी तत्वों अर्थात P1, P2 को प्राप्त नहीं कर लेता।