Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

ब्लोफिश एल्गोरिथम के संचालन क्या हैं?

<घंटा/>

ब्लोफिश सिमेट्रिक ब्लॉक सिफर एल्गोरिथम है और यह एक बार में 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 के अलावा अन्य रिवर्स ऑर्डर में उपयोग किए जाते हैं।


  1. सी टोकन क्या हैं?

    सी प्रोग्राम निर्देशों का एक संग्रह है और प्रत्येक निर्देश अलग-अलग इकाइयों का संग्रह है। C प्रोग्राम की प्रत्येक छोटी व्यक्तिगत इकाई को आम तौर पर टोकन कहा जाता है और C प्रोग्राम में प्रत्येक निर्देश टोकन का एक संग्रह होता है। टोकन का उपयोग C प्रोग्राम के निर्माण के लिए किया जाता है और उन्हें C प्र

  1. C लैंग्वेज में शिफ्ट ऑपरेशंस क्या हैं?

    समस्या C भाषा का उपयोग करके किसी संख्या के बाएँ, दाएँ पाली और पूरक को दिखाने का सरल कार्यक्रम क्या है? समाधान बायां शिफ़्ट यदि किसी चर के मान को एक बार बाएँ-शिफ्ट किया जाता है, तो उसका मान दुगना हो जाता है। उदाहरण के लिए, a =10, फिर a<<1 =20 राइट शिफ्ट यदि किसी चर का मान एक बार दायाँ-शिफ्ट किय

  1. सी # में टिप्पणियां क्या हैं?

    टिप्पणियों का उपयोग कोड समझाने के लिए किया जाता है। संकलक टिप्पणी प्रविष्टियों की उपेक्षा करते हैं। C# प्रोग्राम में बहुपंक्ति टिप्पणियाँ /* से शुरू होती हैं और नीचे दिखाए गए अनुसार */ के साथ समाप्त होती हैं। बहु-पंक्ति टिप्पणियां /* The following is a mult-line comment In C# /* . में एक बहु-पंक्ति