Diffie-Hellman কী এক্সচেঞ্জ।
Alice ও Bob গোপন তথ্য শেয়ার করার জন্য Diffie-Hellman কী এক্সচেঞ্জ ব্যবহার করেন। তারা মৌলিক সংখ্যা দিয়ে শুরু করেন, প্রাইভেট কী বেছে নেন, পাবলিক কী তৈরি করে শেয়ার করেন, এবং তারপর একটি শেয়ার করা সিক্রেট কী তৈরি করেন।
টেস্ট প্রোগ্রামটি মৌলিক সংখ্যা p ও g সরবরাহ করে।
Alice একটি প্রাইভেট কী a বেছে নেন, যা ১-এর চেয়ে বড় এবং p-এর চেয়ে ছোট। Bob একইভাবে একটি প্রাইভেট কী b বেছে নেন।
Alice একটি পাবলিক কী A গণনা করেন।
A = gᵃ mod p
একই p ও g ব্যবহার করে Bob একইভাবে তার প্রাইভেট কী b থেকে একটি পাবলিক কী B গণনা করেন।
Alice ও Bob পাবলিক কী বিনিময় করেন। Alice সিক্রেট কী s গণনা করেন।
s = Bᵃ mod p
Bob গণনা করেন
s = Aᵇ mod p
গণনাগুলো একই ফলাফল দেয়! এখন Alice ও Bob সিক্রেট s শেয়ার করেন।
Python 3.6 থেকে শুরু করে "র্যান্ডম" সংখ্যা তৈরির জন্য দুটি ভিন্ন মডিউল রয়েছে:
random নামের মডিউলটি সিউডো-র্যান্ডম, অর্থাৎ এটি সত্যিকারের র্যান্ডমনেস তৈরি করে না, বরং এমন একটি অ্যালগরিদম অনুসরণ করে যা র্যান্ডমনেস সিমুলেট করে। যেহেতু এই "র্যান্ডম সংখ্যাগুলো" একটি জানা অ্যালগরিদমের মাধ্যমে তৈরি হয়, তাই এগুলো সত্যিকার অর্থে র্যান্ডম নয়। ফলে random মডিউলটি ক্রিপ্টোগ্রাফির জন্য সঠিকভাবে উপযুক্ত নয় এবং এটি ব্যবহার করা উচিত নয়, কারণ এটি সিউডো-র্যান্ডম।
secrets নামের মডিউলটি ক্রিপ্টোগ্রাফিকভাবে শক্তিশালী "র্যান্ডম" সংখ্যা তৈরি করে, যা ক্রিপ্টোগ্রাফির জন্য প্রয়োজনীয় বেশি নিরাপত্তা দেয়। কঠোর অর্থে এগুলো এখনও সিউডো-র্যান্ডম, তবে এদের একটি নিশ্চয়তা আছে যে এরা যে সংখ্যাগুলো তৈরি করে সেগুলো একেবারেই অনুমানযোগ্য নয়।
যেহেতু এটি কেবল একটি অনুশীলনী, তাই random মডিউল ব্যবহার করাই ঠিক আছে, তবে মনে রাখবেন যে এটি সত্যিই ক্রিপ্টোগ্রাফিতে ব্যবহার করা হলে বেশ অনিরাপদ হবে।
Exercism-এ সাইন আপ করুন, Python ট্র্যাকের 17টি কনসেপ্ট146টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।