ब्लोफिश सिमेट्रिक ब्लॉक सिफर एल्गोरिथम है और यह एक बार में 64-बिट्स की ब्लॉकइनफॉर्मेशन को एन्क्रिप्ट करता है। यह Feistel नेटवर्क का अनुसरण करता है और इस एल्गोरिथम की कार्य प्रक्रिया को दो भागों में विभाजित किया गया है।
-
उपकुंजी निर्माण - यह प्रक्रिया 448 बिट तक की कुंजी को 4168 बिट्स जोड़कर उपकुंजियों में बदल देती है।
-
डेटा-एन्क्रिप्शन - डेटा एन्क्रिप्शन प्रक्रिया में, यह नेटवर्क के 16 गुना पुनरावृति करेगा। प्रत्येक दौर में कुंजी-निर्भर क्रमपरिवर्तन, और कुंजी और डेटा-निर्भर प्रतिस्थापन शामिल हैं। एल्गोरिदम में संचालन 32-बिट शब्दों पर एक्सओआर या परिवर्धन हैं। केवल अतिरिक्त संचालन चार अनुक्रमित सरणी सूचना लुकअप प्रति चक्कर हैं।
आइए चर्चा करते हैं कि ये दो भाग इस प्रकार हैं -
-
उप-कुंजी पीढ़ी -ब्लोफिश क्रिप्टोग्राफिक एल्गोरिदम बड़ी संख्या में उप कुंजियों का उपयोग करता है। ये कुंजियाँ किसी भी डेटा एन्क्रिप्शन या डिक्रिप्शन के लिए पहले बना रही हैं।
पी-सरणी में 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
उप कुंजी जेनरेट करने के चरण
-
पहले, पी-सरणी और इसलिए चार एस-बॉक्स, क्रम में, एक निश्चित स्ट्रिंग के साथ प्रारंभ करें और इस स्ट्रिंग में π के हेक्साडेसिमल अंक भी शामिल हैं।
P1=0x243f6a88, P2=0x85a308d3, P3=0x13198a2e, P4=0x3707344, आदि।
-
कुंजी के पहले 32 बिट्स के साथ XOR P1, दूसरे के साथ XOR P2, जो कि 32-बिट्स की कुंजी है, आदि। कुंजी के सभी बिट्स (संभवतः P14 तक) के लिए। कुंजी बिट्स के माध्यम से प्रक्रिया को बार-बार चक्रित करें जब तक कि पूर्ण पी-सरणी को कीबिट्स के साथ XORed नहीं किया गया हो। (प्रत्येक छोटी कुंजी के लिए, आंशिक रूप से एक समान लंबी कुंजी होती है। उदाहरण के लिए, यदि Ais 64-बिट कुंजी है, तो AA, AAA, आदि, समान कुंजियाँ हैं।)
-
यह चरण 1 और चरण 2 में परिभाषित उपकुंजियों का उपयोग करते हुए, ब्लोफिश एल्गोरिथ्म के साथ सभी-शून्य स्ट्रिंग को एन्क्रिप्ट कर सकता है।
-
यह चरण (3) के 64 बिट आउटपुट के साथ P1 और P2 को पुनर्स्थापित कर सकता है।
-
यह परिवर्तित उपकुंजियों के साथ एल्गोरिथम का उपयोग करके चरण (3) के आउटपुट को एन्क्रिप्ट कर सकता है।
-
यह चरण (5) के आउटपुट के साथ P3 और P4 को पुनर्स्थापित कर सकता है।
-
इसका उपयोग प्रक्रिया को जारी रखने के लिए किया जा सकता है, पी सरणी की सभी प्रविष्टियों को पुनर्स्थापित करना, और फिर सभी चार एस-बॉक्स क्रम में, लगातार बदलते एल्गोरिदम के आउटपुट के साथ।
-
-
सभी आवश्यक उपकुंजियों को बनाने के लिए कुल 521 पुनरावृत्तियों की आवश्यकता है। एप्लिकेशन इस व्युत्पत्ति प्रक्रिया को कई बार निष्पादित करने के बजाय उपकुंजियों को सहेज सकता है।
-
डेटा एन्क्रिप्शन - ब्लोफिश एक फिस्टेल नेटवर्क है जिसमें 16 राउंड शामिल हैं।
इनपुट एक 64-बिट डेटा तत्व है, x.
x को दो 32-बिट हिस्सों में विभाजित करें:xL , एक्स<उप>आरउप> ।
फिर, i =1 से 16 के लिए;
x<उप>एलउप> =x<उप>एलउप> एक्सओआर पीi
x<उप>आरउप> =एफ(एक्स<उप>एलउप> ) एक्सओआर एक्स<उप>आरउप>
स्वैप xL और xR
16 वें . के बाद राउंड, स्वैप xL और xR पिछले स्वैप को फिर से पूर्ववत करने के लिए।
फिर, सिफरटेक्स्ट =xL . का संयोजन और xR , एक्स<उप>आरउप> =x<उप>आरउप> XOR P17 और xL =x<उप>एलउप> एक्सओआर पी<उप>18उप> ।
अंत में, xL . को पुनः संयोजित करें और xR सिफरटेक्स्ट प्राप्त करने के लिए। डिक्रिप्शन एन्क्रिप्शन के समान है, P1, P2,……P18 के अलावा अन्य रिवर्स ऑर्डर में उपयोग किए जाते हैं।