কম্পিউটার

ব্লোফিশ অ্যালগরিদমের অপারেশনগুলি কী কী?


ব্লোফিশ হল সিমেট্রিক ব্লক সাইফার অ্যালগরিদম এবং এটি একটি সময়ে 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 ব্যতীত বিপরীত ক্রমে ব্যবহার করা হয়।


  1. Blowfish এনক্রিপশন অ্যালগরিদম কি?

  2. সি টোকেন কি?

  3. সি ভাষায় শিফট অপারেশন কি কি?

  4. C# এ মন্তব্য কি?