
خوارزمية blowfish احد انواع خوارزميات التشفير المتماثل ( symmetric ) تم تطويرها من قبل بروس سينر ( Bruce Schneier) يمكن استخدام هذهِ الخوارزمية بدلاً من معيار تشفير البيانات Data Encryption Standard (DES) لما تمتلكه من مميزات. حيث تأخذ هذهِ الخوارزمية لمفتاحها اطوال مختلفه (من 32 بت الى 448 بت) حيث يتراوح الـ length key بين هاذين الرقمين المذكورين. وهذا ما يجعلها مثاليه وتمتاز بسرعه عالية مقارنة بخوارزمية الـ Des.
———————-
كيف تعمل خوارزمية blowfish
تقسم هذهِ الخوارزمية من حيث العمل الى جزئين
الجزء الاول : توسيع المفتاح ( Key-expansion )
الجزء الثاني : تشفير البيانات (Data Encryption)
يتم توسيع المفتاح المتكون من 448 بت الى مفاتيح فرعيه مجموعها 4168 بايت . ويتم توليد هذهِ المفاتيح قبل عملية التشفير وفك التشفير بقليل. حيث يحتوي الـ P على 18 مصفوفه , كل مصفوفه تمتلك 32 بت.
P1,P2,………….,P18
* هنالك اربعه من (S-boxes 32 bit ) تتكون من 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
———————–
كيف يتم حساب المفاتيح الفرعيه بأستخدام خوارزمية (Blowfish)؟
1- تهيئة المصفوفة ( P-array) ومن ثم تهيئة الـ ( Four S-Boxes ) بالترتيب مع سلسلة ثابته, تتكون هذهِ السلسلة من ارقام الست عشرية (hexadecimal digits) للـ Pi
2- تطبيق عملية XOR على P1 مع الـ 32 بت الاولى , ومن ثم تطبيق عملية الـ XOR على P2 مع الـ 32 بت الثانية , ونكرر هذهِ العملية مراراً وتكراراً على الـ Pi المتبقية مع نفس المفتاح ( 32 بت )
3- تشفير سلسلة الاصفار مع خوارزمية ( BlowFish ) وذلك بأستخدام المفاتيح الفرعيه التي تحدثنا عنها اعلاه .
4- استبدال P1 و P2 بمخرج ( Output ) الخطوة ( 3 )
5- تشفير المخرج من الخطوة رقم ( 3 ) بأستخدام المفاتيح الفرعيه
6- استبدال P3 و P4 بمخرج ( Output ) الخطوة 5
7- الاستمرار بالتشفير بتكرير الخطوات الثلاثه اعلاه على كل الـ P-arrays
#منقول
Leave a Reply