ব্লোফিশ হল সিমেট্রিক ব্লক সাইফার অ্যালগরিদম এবং এটি একটি সময়ে 64-বিটের ব্লক ইনফরমেশন এনক্রিপ্ট করে। এটি ফিস্টেল নেটওয়ার্ক অনুসরণ করে এবং এই অ্যালগরিদমের কার্যপ্রণালী দুটি ভাগে বিভক্ত।
-
সাবকি জেনারেশন − এই প্রক্রিয়াটি 448 বিট পর্যন্ত লম্বা কীটিকে 4168 বিট যোগ করে সাবকিতে রূপান্তরিত করে।
-
ডেটা-এনক্রিপশন - ডেটা এনক্রিপশন প্রক্রিয়ায়, এটি নেটওয়ার্কের 16 বার পুনরাবৃত্তি করবে। প্রতিটি রাউন্ডে কী-নির্ভর স্থানচ্যুতি এবং কী এবং ডেটা-নির্ভর প্রতিস্থাপন অন্তর্ভুক্ত থাকে। অ্যালগরিদমের ক্রিয়াকলাপগুলি হল XORs বা 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 যা thekey-এর 32-বিট, ইত্যাদি কী-এর সমস্ত বিটের জন্য (অনুমানযোগ্যভাবে P14 পর্যন্ত)। সম্পূর্ণ P-অ্যারে কীবিট দিয়ে XOR করা না হওয়া পর্যন্ত কী বিটের মাধ্যমে পদ্ধতিটি বারবার চক্রাকারে চালান। (প্রতিটি সংক্ষিপ্ত কীর জন্য, আংশিকভাবে একটি সমতুল্য দীর্ঘ কী রয়েছে৷ উদাহরণস্বরূপ, যদি Ais একটি 64-বিট কী, তাহলে AA, AAA, ইত্যাদি একই কী৷)
-
এটি ব্লোফিশ অ্যালগরিদমের সাথে অল-জিরো স্ট্রিংকে এনক্রিপ্ট করতে পারে, ধাপ 1 এবং ধাপ 2 এ সংজ্ঞায়িত সাবকি ব্যবহার করে৷
-
এটি ধাপ (3) এর 64 বিট আউটপুট সহ P1 এবং P2 পুনরুদ্ধার করতে পারে।
-
এটি পরিবর্তিত সাবকিগুলির সাথে অ্যালগরিদম ব্যবহার করে ধাপ (3) এর আউটপুট এনক্রিপ্ট করতে পারে৷
-
এটি ধাপ (5) এর আউটপুট সহ P3 এবং P4 পুনরুদ্ধার করতে পারে।
-
এটি ক্রমাগত পরিবর্তনশীল অ্যালগরিদমের আউটপুট সহ P অ্যারের সমস্ত এন্ট্রি এবং তারপরে সমস্ত চারটি এস-বক্সকে ক্রমানুসারে পুনরুদ্ধার করে প্রক্রিয়াটি চালিয়ে যেতে ব্যবহার করা যেতে পারে।
-
-
সমস্ত প্রয়োজনীয় সাবকি তৈরি করতে মোট 521টি পুনরাবৃত্তি প্রয়োজন। অ্যাপ্লিকেশন একাধিকবার এই ডেরিভেশন প্রক্রিয়া চালানোর পরিবর্তে সাবকিগুলি সংরক্ষণ করতে পারে।
-
ডেটা এনক্রিপশন − Blowfish হল একটি Feistel নেটওয়ার্ক যার মধ্যে 16 রাউন্ড রয়েছে।
ইনপুট একটি 64-বিট ডেটা উপাদান, x.
x কে দুটি 32-বিট অর্ধে ভাগ করুন:xL , xR .
তারপর, i =1 থেকে 16;
এর জন্যxL =xL XOR Pi
xR =F(xL ) XOR xR
অদলবদল xL এবং xR
16 th এর পরে বৃত্তাকার, অদলবদল xL এবং xR আবার শেষ অদলবদল পূর্বাবস্থায় ফেরাতে।
তারপর, ciphertext =xL এর সংমিশ্রণ এবং xR , xR =xR XOR P17 এবং xL =xL XOR P18 .
অবশেষে, xL পুনরায় সংযুক্ত করুন এবং xR সাইফারটেক্সট পেতে। ডিক্রিপশন হল এনক্রিপশনের সমতুল্য, P1, P2, … P18 ব্যতীত বিপরীত ক্রমে ব্যবহার করা হয়।