হাইব্রিড এনক্রিপশন

হাইব্রিড এনক্রিপশন আদিম পাবলিক কী (অসমমিতিক) ক্রিপ্টোগ্রাফির সুবিধার সাথে সিমেট্রিক এনক্রিপশনের দক্ষতাকে একত্রিত করে। যে কেউ সর্বজনীন কী ব্যবহার করে ডেটা এনক্রিপ্ট করতে পারে, তবে শুধুমাত্র ব্যক্তিগত কী সহ ব্যবহারকারীরা ডেটা ডিক্রিপ্ট করতে পারে।

হাইব্রিড এনক্রিপশনের জন্য, প্রেরক একটি সিফারটেক্সট তৈরি করতে প্রতিটি বার্তার প্লেইনটেক্সট এনক্রিপ্ট করার জন্য একটি নতুন সিমেট্রিক কী তৈরি করে। সেই সিমেট্রিক কী প্রাপকের পাবলিক কী দিয়ে এনক্যাপসুলেট করা হয়। হাইব্রিড ডিক্রিপশনের জন্য, সিমেট্রিক কী প্রাপক দ্বারা ডিক্যাপসুলেট করা হয় এবং তারপর মূল প্লেইনটেক্সট পুনরুদ্ধার করতে সাইফারটেক্সট ডিক্রিপ্ট করতে ব্যবহৃত হয়। কী এনক্যাপসুলেশন সহ সাইফারটেক্সট কীভাবে সঞ্চয় বা প্রেরণ করা যায় তার বিশদ বিবরণের জন্য টিঙ্ক হাইব্রিড এনক্রিপশন তারের বিন্যাস দেখুন।

হাইব্রিড এনক্রিপশনের নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

  • গোপনীয়তা : কেউ এনক্রিপ্ট করা প্লেইনটেক্সট (দৈর্ঘ্য ব্যতীত) সম্পর্কে কোনও তথ্য পেতে সক্ষম নয়, যদি না তাদের ব্যক্তিগত কী অ্যাক্সেস না থাকে।
  • অসমতা : সাইফারটেক্সট এনক্রিপ্ট করা পাবলিক কী দিয়ে করা যেতে পারে, কিন্তু ডিক্রিপশনের জন্য, ব্যক্তিগত কী প্রয়োজন।
  • র্যান্ডমাইজেশন : এনক্রিপশন এলোমেলো করা হয়। একই প্লেইনটেক্সট সহ দুটি বার্তা একই সাইফারটেক্সট দেবে না। এটি কোন সাইফারটেক্সট একটি প্রদত্ত প্লেইনটেক্সট এর সাথে সামঞ্জস্যপূর্ণ তা জানতে আক্রমণকারীদের বাধা দেয়।

হাইব্রিড এনক্রিপশন টিঙ্কে এক জোড়া আদিম হিসাবে উপস্থাপন করা হয়েছে:

  • এনক্রিপশনের জন্য হাইব্রিডএনক্রিপ্ট
  • ডিক্রিপশনের জন্য হাইব্রিডডিক্রিপ্ট

প্রসঙ্গ তথ্য প্যারামিটার

প্লেইনটেক্সট ছাড়াও, হাইব্রিড এনক্রিপশন একটি অতিরিক্ত প্যারামিটার গ্রহণ করে, context_info , যা সাধারণত প্রসঙ্গ থেকে নিহিত সর্বজনীন ডেটা, তবে ফলাফলের সাইফারটেক্সটের সাথে আবদ্ধ হওয়া উচিত। এর অর্থ হল সাইফারটেক্সট আপনাকে প্রসঙ্গ তথ্যের অখণ্ডতা নিশ্চিত করতে দেয় তবে এর গোপনীয়তা বা সত্যতার জন্য কোনও গ্যারান্টি নেই। প্রকৃত প্রসঙ্গ তথ্য খালি বা শূন্য হতে পারে, কিন্তু ফলাফলের সাইফারটেক্সট সঠিক ডিক্রিপশন নিশ্চিত করতে, ডিক্রিপশনের জন্য একই প্রসঙ্গ তথ্য মান প্রদান করতে হবে।

হাইব্রিড এনক্রিপশনের একটি সুনির্দিষ্ট বাস্তবায়ন বিভিন্ন উপায়ে প্রসঙ্গ তথ্যকে সাইফারটেক্সটের সাথে আবদ্ধ করতে পারে, উদাহরণস্বরূপ:

  • AEAD সিমেট্রিক এনক্রিপশন (cf. RFC 5116 ) এর জন্য সম্পর্কিত ডেটা ইনপুট হিসাবে context_info ব্যবহার করুন।
  • HKDF এর জন্য "CtxInfo" ইনপুট হিসাবে context_info ব্যবহার করুন (যদি বাস্তবায়ন HKDF কে কী ডেরিভেশন ফাংশন হিসাবে ব্যবহার করে, cf. RFC 5869 )।

একটি কী টাইপ বেছে নিন

আমরা বেশিরভাগ ব্যবহারের ক্ষেত্রে DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_AES_256_GCM কী প্রকার ব্যবহার করার পরামর্শ দিই। এই কী প্রকারটি RFC 9180- এ উল্লেখিত হাইব্রিড পাবলিক কী এনক্রিপশন (HPKE) মান প্রয়োগ করে। HPKE একটি কী এনক্যাপসুলেশন মেকানিজম (কেইএম), একটি কী ডেরিভেশন ফাংশন (কেডিএফ) এবং সংশ্লিষ্ট ডেটা (AEAD) অ্যালগরিদমের সাথে একটি প্রমাণীকৃত এনক্রিপশন নিয়ে গঠিত।

DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_AES_256_GCM বিশেষভাবে নিয়োগ করে:

  • KEM: ভাগ করা গোপন তথ্য বের করার জন্য HKDF-SHA-256-এর সাথে Curve25519 ওভার ডিফি-হেলম্যান।
  • KDF: HKDF-SHA-256 প্রেরক এবং প্রাপকের প্রসঙ্গ বের করতে।
  • AEAD: 12-বাইট ননসেস সহ AES-256-GCM HPKE মান অনুযায়ী তৈরি করা হয়েছে।

অন্যান্য সমর্থিত HPKE কী প্রকারের মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত, কিন্তু সীমাবদ্ধ নয়:

  • DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_AES_128_GCM
  • DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_CHACHA20_POLY1305
  • DHKEM_P256_HKDF_SHA256_HKDF_SHA256_AES_128_GCM
  • DHKEM_P521_HKDF_SHA512_HKDF_SHA512_AES_256_GCM

KEM, KDF, এবং AEAD-এর জন্য অ্যালগরিদম পছন্দ সম্পর্কে আরও বিস্তারিত জানার জন্য RFC 9180 দেখুন।

যদিও আর সুপারিশ করা হয় না, Tink ECIES-এর কিছু বৈচিত্র্যকে সমর্থন করে যেমনটি ভিক্টর শপ-এর ISO 18033-2 স্ট্যান্ডার্ডে বর্ণিত। কিছু সমর্থিত ECIES কী প্রকার নীচে তালিকাভুক্ত করা হয়েছে:

  • ECIES_P256_HKDF_HMAC_SHA256_AES128_GCM
  • ECIES_P256_COMPRESSED_HKDF_HMAC_SHA256_AES128_GCM
  • ECIES_P256_HKDF_HMAC_SHA256_AES128_CTR_HMAC_SHA256
  • ECIES_P256_COMPRESSED_HKDF_HMAC_SHA256_AES128_CTR_HMAC_SHA256

ন্যূনতম বৈশিষ্ট্য

  • প্লেইনটেক্সট এবং প্রসঙ্গ তথ্যের নির্বিচারে দৈর্ঘ্য থাকতে পারে (0..2 32 বাইট পরিসীমার মধ্যে)
  • অভিযোজিত নির্বাচিত সাইফারটেক্সট আক্রমণের বিরুদ্ধে সুরক্ষিত
  • উপবৃত্তাকার বক্ররেখা ভিত্তিক স্কিমগুলির জন্য 128-বিট নিরাপত্তা

উদাহরণ ব্যবহার ক্ষেত্রে

দেখুন আমি ডেটা বিনিময় করতে চাই।