خوارزمية السمكة المنتفخة Blowfish
هل تعلم ما هي خوارزمية السمكة المنتفخة Blowfish؟!
في عالم متزايد من السرعة الرقمية حيث تتنقل بيانات الأفراد والشركات عبر الإنترنت بشكل مستمر، بات الحفاظ على الأمان الإلكتروني لهذه البيانات من الأولويات القصوى.
هنا يأتي دور الخوارزميات المشفرة كحلفاء حصينين في ميدان الأمان السيبراني. و من بين هذه الخوارزميات، تبرز خوارزمية السمكة المنتفخة (Blowfish) كأداة تشفير رئيسية لا تزال تحتل مكانة مهمة رغم مرور عقود على نشأتها.
ليس فقط لأنها عرفت بسرعتها وفعاليتها، بل أيضًا لحريتها من براءات الاختراع والتراخيص. موفرةً بذلك خياراً مفتوحاً للكثيرين في ميدان صناعة التكنولوجيا. وهذا ما سنتعرف إلى تفاصيله في هذه المقالة ضمن الفقرات التالية:
- ما هي السمكة المنتفخة؟
- ممَّ تتكون خوارزمية السمكة المنتفخة؟
- ما هو مثال عملية فك التشفير عبر خوارزمية السمكة المنتفخة؟
- ما هي مزايا وسلبيات خوارزمية تشفير السمكة المنتفخة؟
- ما هي تطبيقات خوارزمية السمكة المنتفخة؟
ما هي السمكة المنتفخة؟
تُعدّ السمكة المنتفخة (Blowfish) خوارزمية تشفير بلوك سايفر تتمتع بكتل تشفير طول كل منها 64 بت.
تم تطويرها على يد بروس شناير في 1993 كخوارزمية تشفير ذات استخدامات متعددة بغرض أن تكون خيارًا سريعًا، مجانيًا وفعالًا بديلًا لخوارزميات التشفير الأسبق كالمعيار المعروف بمعيار تشفير البيانات (DES) وخوارزمية تشفير البيانات الدولية (IDEA).
تمتاز السمكة المنتفخة بسرعتها المتفوقة على DES وIDEA، وتتيح الاستخدام دون حاجة لدفع رسوم براءات الاختراع. ومع ذلك، بسبب صغر حجم الكتلة فيها، فإن هذا يعيق قدرتها على استبدال DES بشكل تام نظرًا للقيود الأمنية المترتبة على ذلك.
توفر خوارزمية Twofish، وهي خلف للسمكة المنتفخة، حلاً لهذه المشكلة عبر استخدام كتل تشفير بحجم 128 بت. حتى الآن، لم يتم اختراق خوارزمية السمكة المنتفخة بطريقة فعّالة، وهي تظل جزءًا من العديد من مجموعات التشفير ومنتجاته المستخدمة.
بالتفصيل، تشتهر Blowfish بقدرتها على تشغيل مفاتيح تشفير بأحجام تتراوح من 32 بت حتى 448 بت، وأسلوبها في التشفير يعتمد على نموذج Feistel لمدة 16 جولة من عمليات التشفير. حيث يتم معالجة كل كتلة 64 بت على أنها نصفين كل منهما 32 بت. وما يميزها أيضًا هو استخدامها لمفتاح تشفير واحد في كل من عمليات التشفير وفك التشفير.
ممَّ تتكون خوارزمية السمكة المنتفخة؟
خوارزمية السمكة المنتفخة تتألف من عنصرين أساسيين:
1. تشفير البيانات
يجري تشفير البيانات عبر استخدام نموذج Feistel خلال 16 جولة من التشفير، حيث تنطوي كل مرحلة على تبديل واستبدال يتوقفان على المفتاح والبيانات المعطاة.
و تعتبر الـS-boxes المتضخمة والتي تتشكل بناءً على المفتاح قطعة محورية في نظام Blowfish لتشفير البيانات. حيث تعتمد كل الأنشطة التشفيرية على العمليات الحصرية المعكوسة (XOR) بالإضافة إلى عمليات الجمع لكلمات ذات طول 32 بت.
2. توسعة المفتاح والمفاتيح الفرعية
خلال عملية توسعة المفتاح، يمر تحويل المفتاح الأساسي ذو الحجم الأقصى 448 بت، ليصبح عدة مجموعات من المفاتيح الفرعية تصل مجموعتها إلى 4168 بايت.
تُعدّ هذه المفاتيح الفرعية عنصر أساسي في خوارزمية السمكة المنتفخة، وهي تُشكل من خلال استخدام عدد هائل منها. يتم تجهيز هذه مسبقًا قبل البدء بأي من عمليتي التشفير أو فك التشفير.
تُشكل مصفوفة الـP في Blowfish من 18 مفتاحًا فرعيًا كل منها يبلغ 32 بت، بالإضافة إلى أربعة S-boxes كل واحدة منهم تحوي على 256 مدخلًا. تتم عملية التوليد للمفاتيح الفرعية بالترتيب الآتي:
- يبدأ بتهيئة مصفوفة الـP والـS-boxes باستخدام متتالية ثابتة من الأرقام السداسية العشرية للعدد باي.
- يتم بعد ذلك عمل XOR بين أول عنصر في مصفوفة الـP (P1) مع أول 32 بت من المفتاح. تتابع العملية بنفس الطريقة مع P2 والـ32 بت التالية من المفتاح، وهكذا حتى تستكمل كافة عناصر الـP بالمفتاح.
- بعدها يتم تشفير سلاسل البيانات التي تحتوي على أصفار بكاملها باستخدام الخطوات الموضحة أعلاه.
- بعد ذلك يتم استبدال الخرج من الخطوة الثالثة بالمفتاحين الفرعيين P1 وP2.
- تتم إعادة تشفير الناتج من هذه العملية باستخدام خوارزمية السمكة المنتفخة مع المفاتيح الفرعية الجديدة.
- من ثم، يبدأ استخدام الناتج من الخطوة الخامسة لتعديل P3 وP4 داخل المصفوفة.
- تستمر هذه العملية بالتكرار حتى يتم تحديث كل مصفوفات P والـS-boxes الأربعة.
إجمالًا، تتطلب خوارزمية السمكة المنتفخة تنفيذ 521 مرة لتنتج كل المفاتيح الفرعية وتسجل العمليات – ما يعادل حوالي 4 كيلوبايت من البيانات.
ما هو مثال عملية فك التشفير عبر خوارزمية السمكة المنتفخة؟
دعونا نأخذ “Hi World” كمثال لكيفية أداء عملية التشفير/فك التشفير باستخدام السمكة المنتفخة (Blowfish). فيما يلي الخطوات المتخذة خلال العملية:
- مبدئيًا، تتألف الرسالة “Hi World” من سبعة أحرف وفراغ واحد يعادلون مجتمعين 64 بت أو ثمانية بايت.
- يتم تقسيم الرسالة إلى جزأين كل منهما 32 بت؛ الجزء الأول “Hi w” يُجرى عليه عملية XOR مع المفتاح الفرعي P1 الذي ينتج من عملية توسع المفتاح ليكون قيمة تدعى P1. (للتوضيح: P تعني العدد الأولي، وهو العدد الذي يقبل القسمة على نفسه وعلى الواحد فقط.)
- يتم بعد ذلك تمرير P1 عبر دالة التحويل F (F In)، إذ تنقسم الـ32 بت إلى أربعة أقسام (بايت)، كل منها يمر خلال واحد من صناديق S الأربعة.
- يتم جمع أول قيمتين في البداية من الصناديق S الأول والثاني، والنتيجة تُعمل بال-XOR مع القيمة الثالثة من صندوق S الثالث.
- ثم تتم إضافة هذه النتيجة إلى مخرج الـS-box الرابع ليُنتج مخرج 32 بت.
- بعدها يتم إجراء XOR على مخرج F In بالجزء الأيمن من الإدخال – “orld” – لينشأ عنه ناتج يُسمى F1′.
- يأخذ F1′ مكان الجزء الأيسر من الرسالة في حين يحل P1′ محل الجزء الأيمن.
- يتم تكرار هذه العملية السابقة مع باقي عناصر صفيف P-array عبر مجموع 16 جولة في الإجمال.
- أخيرًا، وبعد الانتهاء من الـ16 جولة، يتم إجراء عملية XOR للناتجين الأخيرين P16′ وF16′ مع المفتاحين الفرعيين النهائيين في الصفيف، وهما P17 وP18، ومن ثم يُعاد دمج قسمي البيانات لتشكيل النص المشفر النهائي 64 بت للرسالة المدخلة.
ما هي مزايا وسلبيات خوارزمية تشفير السمكة المنتفخة؟
تشهد خوارزمية السمكة المنتفخة (Blowfish) اعتمادًا واسع النطاق لكونها من ضمن نظم تشفير البيانات الأسرع والأكثر فعالية المتاحة للاستخدام الشائع.
المزايا
باعتماد مفتاح تشفير متماثل، تحول البيانات إلى نص مشفر وتُفيد بالمزايا التالية منذ تطورها الأول قبل حوالي ثلاثة عقود:
- أداءً أسرع وكفاءة أعلى في مقارنة مع خوارزميات DES وIDEA؛
- الحرية الكاملة في الاستخدام دون الحاجة لدفع رسوم براءة اختراع أو الحصول على ترخيص؛
- رغم تعقيدات مرحلة التحضير الأولية، إلا أن تشفير البيانات يظل معالجًا بفاعلية عالية، خصوصًا على المعالجات الدقيقة ذات الحجم الأكبر.
- تأمين قوي للبرمجيات والتطبيقات المطورة بلغة Java.
- يضمن سبل وصول آمنة لأدوات النسخ الاحتياطي للبيانات ويدعم تحقق المستخدم الآمن عن بُعد.
السلبيات
مع ذلك، تبرز بعض التحديات أو العيوب باستخدام خوارزمية السمكة المنتفخة، منها:
- تأثر الأداء السريع بالسلب عند تغيير المفاتيح؛
- طول الوقت الذي يستغرقه جدول المفاتيح الرئيسي للعمل؛
- عرضة لهجمات أعياد الميلاد نتيجة لحجم الكتلة الصغير البالغ 64 بت، وهي تقع ضمن فئة الهجمات السيبرانية،
- ضرورة المعالجة المسبقة لكل مفتاح جديد تستلزم استهلاك 4 كيلوبايت من النص، الأمر الذي يؤثر على سرعة الخوارزمية ويحد من تطبيقاتها في بعض المجالات.
تطبيقات خوارزمية السمكة المنتفخة
عند الحديث عن التطبيقات، تُستخدم السمكة المنتفخة بشكل فعال في العديد من المجالات، بما يشمل:
- النسخ الاحتياطي للبيانات
- إنتاج توليفات بت عشوائية
- الحزم المشفرة
- تجزئة كلمات المرور وإدارتها
- المعالجات الحاسوبية المتنقلة
- تشفير البريد الإلكتروني، الملفات، والأقراص المدمجة
ختاماً:
إن المنتجات مشهورة مثل CryptoDisk، PasswordWallet، Access Manager، Symantec NetBackup وSplashID تتضمن استخدام Blowfish في طيات أنظمتها.
كما أنها تحظى بثقة منصات التواصل الاجتماعي ومواقع التجارة الإلكترونية لحماية بيانات المستخدمين بشكل فعال.
اقرأ أيضًا:
ما هو معيار تشفير البيانات DES ؟!