নীচে আমার উত্তরটি কিছুটা দীর্ঘ, তবে আশা করি এটি এমন কিছু বিবরণ সরবরাহ করে যা পূর্ববর্তী উত্তরে অনুপস্থিত। আমি কিছু সম্পর্কিত বিবৃতি দিয়ে শুরু করব এবং অবশেষে প্রাথমিক প্রশ্নের উত্তর দেব।
আরএসএ অ্যালগরিদম ব্যবহার করে কিছু এনক্রিপ্ট করার জন্য আপনার মডুলাস এবং এনক্রিপশন (পাবলিক) এক্সপোশন জোড় (এন, ই) প্রয়োজন। এটি আপনার সার্বজনীন চাবি। আরএসএ অ্যালগরিদম ব্যবহার করে কিছু ডিক্রিপ্ট করার জন্য আপনার মডুলাস এবং ডিক্রিপশন (প্রাইভেট) এক্সপোশন জোড় (এন, ডি) প্রয়োজন। এটি আপনার ব্যক্তিগত কী।
আরএসএ পাবলিক কী ব্যবহার করে কোনও কিছু এনক্রিপ্ট করার জন্য আপনি আপনার প্লেইনেক্সটকে একটি সংখ্যা হিসাবে বিবেচনা করুন এবং এটি ই মডুলাস এন এর শক্তিতে বাড়িয়ে তোলেন:
ciphertext = ( plaintext^e ) mod n
আরএসএ প্রাইভেট কী ব্যবহার করে কোনও কিছু ডিক্রিপ্ট করার জন্য আপনি নিজের সিফারেক্সটেক্সটটিকে একটি সংখ্যা হিসাবে বিবেচনা করবেন এবং এটি ডি মডুলাস এন এর শক্তিতে বাড়িয়ে তুলবেন:
plaintext = ( ciphertext^d ) mod n
ওপেনসেল ব্যবহার করে ব্যক্তিগত (ডি, এন) কী তৈরি করতে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
openssl genrsa -out private.pem 1024
ওপেনসেল ব্যবহার করে ব্যক্তিগত কী থেকে সর্বজনীন (ই, এন) কী তৈরি করতে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:
openssl rsa -in private.pem -out public.pem -pubout
উপরের ওপেনসেল কমান্ড দ্বারা উত্পাদিত প্রাইভেট.পিএম প্রাইভেট আরএসএ কী এর বিষয়বস্তুগুলি ছড়িয়ে দিতে নিম্নলিখিতগুলি চালান (আউটপুট এখানে লেবেলে কাটা হয়েছে):
openssl rsa -in private.pem -text -noout | less
modulus - n
privateExponent - d
publicExponent - e
prime1 - p
prime2 - q
exponent1 - d mod (p-1)
exponent2 - d mod (q-1)
coefficient - (q^-1) mod p
ব্যক্তিগত কীতে কেবল (এন, ডি) জুটি থাকা উচিত নয়? 6 টি অতিরিক্ত উপাদান কেন? এতে ই (সার্বজনীন এক্সপোজনার) রয়েছে যাতে জনসাধারণের আরএসএ কীটি প্রাইভেট.পিএম প্রাইভেট আরএসএ কী থেকে উত্পন্ন / আহরণ / উত্পন্ন করা যায়। বাকী 5 টি উপাদান ডিক্রিপশন প্রক্রিয়াটি গতি বাড়ানোর জন্য রয়েছে। এটি প্রমাণিত হয়েছে যে প্রাক 5 টি গণনা করে এবং 5 টি মান সংরক্ষণ করে এটি 4 এর ফ্যাক্টর দ্বারা আরএসএ ডিক্রিপশনকে গতিযুক্ত করা সম্ভব ry 5 টি উপাদান ছাড়াই ডিক্রিপশন কাজ করবে, তবে আপনি যদি সেগুলি কার্যকর করেন তবে তা দ্রুত সম্পন্ন করা যায়। গতি বাড়ানোর অ্যালগরিদমটি চীনা রেমেন্ডার উপপাদ্যের উপর ভিত্তি করে ।
হ্যাঁ, প্রাইভেট.পিএম আরএসএ প্রাইভেট কীটিতে আসলে এই 8 টি মান রয়েছে; আপনি পূর্ববর্তী কমান্ডটি চালানোর সময় এগুলির কোনওটিই ফ্লাইতে উত্পন্ন হয় না। নিম্নলিখিত কমান্ডগুলি চালনার চেষ্টা করুন এবং আউটপুট তুলনা করুন:
# Convert the key from PEM to DER (binary) format
openssl rsa -in private.pem -outform der -out private.der
# Print private.der private key contents as binary stream
xxd -p private.der
# Now compare the output of the above command with output
# of the earlier openssl command that outputs private key
# components. If you stare at both outputs long enough
# you should be able to confirm that all components are
# indeed lurking somewhere in the binary stream
openssl rsa -in private.pem -text -noout | less
আরএসএ প্রাইভেট কীটির এই কাঠামোটিকে পিকেসিএস # 1 ভি 1.5 বিকল্প হিসাবে ( দ্বিতীয় ) উপস্থাপন হিসাবে সুপারিশ করেছে । পিকেসিএস # 1 ভি 2.0 স্ট্যান্ডার্ড বিকল্প উপস্থাপনা থেকে সম্পূর্ণভাবে ই এবং ডি এক্সপেনটারকে বাদ দেয়। পিকেসিএস # 1 ভি 2.1 এবং ভি 2.2 আরও বেশি সিআরটি-সম্পর্কিত উপাদানগুলি অন্তর্ভুক্ত করে বিকল্প উপস্থাপনায় আরও পরিবর্তনের প্রস্তাব দেয়।
পাবলিক.পেমের সামগ্রিক সামগ্রীগুলি দেখতে পাবলিক আরএসএ কী নীচেরটি চালান (আউটপুট এখানে লেবেলে ছাঁটা হয়েছে):
openssl rsa -in public.pem -text -pubin -noout
Modulus - n
Exponent (public) - e
এখানে কোন বিস্ময় নেই। প্রতিশ্রুতি অনুসারে এটি ঠিক (এন, ই) জুটি।
এখন অবশেষে প্রাথমিক প্রশ্নের উত্তর দেওয়া: যেমন ওপেনসেল ব্যবহার করে উত্পন্ন বেসরকারী আরএসএ কী উপরে দেখানো হয়েছে তাতে সরকারী এবং বেসরকারী কী এবং আরও কিছু কিছু রয়েছে। আপনি যখন ব্যক্তিগত কী থেকে সর্বজনীন কী উত্পন্ন / এক্সট্রাক্ট / উত্পন্ন করেন, ওপেনসেল সেগুলির দুটি উপাদান (ই, এন) একটি পৃথক ফাইলে অনুলিপি করে যা আপনার সর্বজনীন কী হয়ে যায়।