هل من الممكن استخدام مفاتيح التشفير الخالص وفك تشفيرها في التشفير غير المتماثل بدلاً من المفاتيح الخاصة والعامة؟

StackOverflow https://stackoverflow.com/questions/3061225

سؤال

هل من الممكن استخدام مفاتيح التشفير الخالص وفك تشفيرها بدلاً من المفاتيح الخاصة والعامة؟ كما أعرف في .NET غير متماثل RSA تطبيق المفتاح الخاص RSAParameters parameters = (new RSACryptoServiceProvider()).ExportParameters(true) هو superset من المفتاح العام. وباستخدام مفتاح خاص يمكننا تشفير بياناتنا وفك تشفيرها. ولكن أحتاج إلى مفتاح فقط لفك تشفيره بيانات. كيف افعلها؟

لقد جربت في حقول Rsaparameters Nulling ، لكن كائن RsacryptoserviceProvider لا يمكنه استيراد مثل هذه المعلمات.

هل كانت مفيدة؟

المحلول

إذا كنت تسأل عما أعتقد أنك تسأل ، فأنت تحل مشكلة مثل هذه:

يمكنك تشفير بعض البيانات. ترسلها إلى العملاء ، وتريدهم أن يتمكنوا من فك تشفيرها ، لكنك تفعل ذلك ليس يريدون منهم أن يكونوا قادرين على تشفير أي شيء ، لأنه بعد ذلك يمكنهم إقناعهم آخر العملاء الذين هم أنت.

هل هذا قريب؟ هل يمكن أن تخبرنا ما هي المشكلة التي تحلها؟

بالنسبة لبقية الأشخاص الموجودين على الخيط ، يبدو الأمر واضحًا تمامًا ، فإن OP يريد مفتاح Decrypt فقط ، بدلاً من المفتاح العمومي المعتاد فقط.

تحرير: التعليقات صحيحة في أنه لا يمكن استخدام مفتاح خاص للتشفير ، ولكن ليس من الصعب إنشاء المفتاح العام بالنظر إلى المفتاح الخاص. إذا كان لديك المفتاح الخاص ، فيمكنك بفعالية أن يكون لديك كلا المفتاحين.

تحرير 2: OP ، ربما يجب أن تنظر إلى التوقيعات الرقمية. يمكنك التوقيع على رسالة (باستخدام المفتاح الخاص) ثم تأكيد التوقيع مع المفتاح العام ، وهو ما أعتقد أنه بالضبط ما طلبته.

نصائح أخرى

لفك تشفير البيانات التي تحتاجها إما الجمهور أو المفتاح الخاص. يعتمد على كيفية ترميزها.

التمسك بالأنماط القياسية ، وكن حذرًا فقط أبداً لتوزيع المفتاح الخاص بك.


من تعليقاتك (إلى إجابات مختلفة) ، تحتاج فقط إلى توقيع (من تجزئة بياناتك). لا فائدة من تشفير البيانات باستخدام مفتاح يمكن للجميع الحصول عليه.

هناك وظائف وأنماط قياسية للتوقيع.

أعتقد أنك بحاجة إلى استخدام المفتاح الخاص لفك تشفير المفتاح العام للتشفير.

يرسل جهاز الاستقبال (Decrypter) مفتاحه العام إلى المرسل (Encrypter). حتى يتمكن الجميع من إرسال الرسائل ، فقط يمكن للمستقبل قراءتها. هذا ما تحتاجه؟

إذا كنت بحاجة إلى التأكد من أن الرسالة تأتي من مرسل معين ، فإنها تحتاج إلى إضافة توقيع باستخدام المفتاح الخاص الخاص به. يمكن للمستقبل التحقق من ذلك باستخدام مفتاح المرسلين العامين.

إذا كنت ترغب في التأكد من أن حامل المفاتيح الخاص لا يمكنه تشفير شيء بحيث لا يمكن تمييز النتيجة عن رسالة يرسلها حامل المفاتيح العامة ، فيمكنك ببساطة كتابة بياناتك المزدوجة.

ببساطة لديك اثنين من العناصر الرئيسية.

يحصل الجانب A على المفتاح الخاص للمفتاح 1 ، والمفتاح العام للزواج الرئيسي 2. Side B يحصل على المفتاح العام للزواج الرئيسي 1 ، والمفتاح الخاص للمفتاح 2.

يرسل Side B رسالته/رسالته عن طريق تشفيرها أولاً مع المفتاح العام للزواج المفتاح 1 ، ثم المفتاح الخاص لـ Key-Pair 2.

الجانب A يفكّر النتيجة باستخدام المفتاح العام للزواج الرئيسي 2 ، والمفتاح الخاص للزواج المفتاح 1 (بهذا الترتيب).

يمكن للجانب A إنشاء المفتاح العام للزواج المفتاح 1 ، ولكن لا يمكن إنشاء المفتاح الخاص للزواج المفتاح 2 ، لذلك لا يمكن للجانب A إنشاء رسالة صالحة.

يعمل العكسي في الاتجاه الآخر.

الجانب السفلي: إذا كان لديك شخص مركزي (أو خادم) يتواصل كل شخص آخر (أو كمبيوتر) مع كل طرف يحتاج إلى مفتاح خاص به ، ويجب أن يشارك المفتاح العام المقابل مع الشخص المركزي (أو الخادم ) هم التواصل مع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top