هل هناك طريقة لتغيير مفتاح عام بطريقة لا يزال بإمكان فك التشفير القيام به مع المفتاح الخاص بعد بعض التغيير؟

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

سؤال

في مخطط التشفير غير المتماثل ، كنت أتساءل عما إذا كان من الممكن تحقيق ما يلي:

  1. يرسل بوب إلى أليس مفتاحه العام
  2. Alice يغير مفتاح بوب العمومي ويشفير بعض المستندات معها
  3. ترسل أليس المستند المشفر إلى بوب
  4. بوب يسترجع الوثيقة ولكن لا يمكن أن فك تشفيره بمفتاحه الخاص
  5. في وقت لاحق ، ترسل أليس بعض المعلومات الإضافية (ربما تتعلق بالطريقة التي استخدمتها لتغيير مفتاح بوب العام) إلى بوب
  6. يستخدم بوب هذه المعلومات الإضافية لتعديل مفتاحه الخاص وفك تشفير المستند بنجاح

أي واحد؟

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

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

المحلول

(أفترض أنك تتحدث عن RSA.)

نعم هذا ممكن، لكن ليس 100 ٪.

المفتاح العام هو جزء من المفتاح الخاص. أنه يحتوي على المعامل والأسس من المفتاح.

يمكنك أن تنسى تغيير المعامل تمامًا ، لأنه سيتعين عليك إنشاء RSA Keypair جديد ، وهي نفس المشكلة التي نحاول حلها.

ولكن من الممكن تغيير الأسس. يمكنك تحديد أي رقم (رئيسي) بين 1 و Provonent كأسعار جديدة و أمل أنه coprime مع totient. دون معرفة TOTIENT ، من المستحيل تحديد الأسعار الصحيح دائمًا. لمعرفة TOTIENT ، يجب أن تعرف العوامل الأولية للمفتاح ، مما يعني أنه سيتعين عليك كسر المفتاح (استمتع!).

لذا، إنه في الواقع مستحيل للحصول على طريقة عمل بنسبة 100 ٪ للقيام بذلك ، على الأقل ليس أثناء معرفة المفتاح العام فقط.

إذا كنت بحاجة إلى مزيد من المعلومات حول التحقق من النظرية هنا

نصائح أخرى

آمل أن تعمل فكرتي.

دعنا نفترض ذلك (e,d,n) هو تول من RSA الأسعار العامة. الأسد الخاص RSA الخاص ومعامل RSA ن :

حدد رقمًا رئيسيًا ، قل ص, ، بين 1 و 256 بت عدد صحيح.

إلى تشفير رسالة م, ، حساب الأسس العام الجديد على أنه e*p والنص المشفر على النحو التالي:

c= m^{e*p} mod n.

إلى فك التشفير, ، يجب أن يعرف المتلقي البرايم ص, ، لذلك ترسل هذا ص في وقت لاحق له ، مع هذا يحسب

(1) P = p^{-1} mod phi(n)

و

(2) m^e=c^{P} mod n

و

أخيرا m=(m^e)^d mod n. هذا يعمل كما يعرف المتلقي PHI (N).

بالمناسبة ، أين يمكننا استخدام هذا؟ هل هناك أي تطبيق لديك في الاعتبار لهذا؟

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

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

هم ، مثيرة للاهتمام.

أنت تشير إلى RSA, ، انا افترض؟

لمعلوماتك ، RSA لا تستخدم فعليا لتشفير المستندات. يتم استخدامه لتبادل المفاتيح (مفاتيح لخوارزمية متماثلة ، مثل AES).

إذن ما تتحدث عنه حقًا هو نهج يغير المفاتيح.

من الناحية الفنية (الرياضي) إذا وضعت رقمًا مختلفًا ، فستحصل على رقم مختلف. هذه ليست مشكلة ؛ سيؤدي تغيير المفتاح العام بطريقة ما (على افتراض أنك تقنع تطبيق RSA الخاص بك باستخدامه ، أو إعداد رقم مختلف بشكل مناسب) يؤدي إلى مفتاح متماثل مختلف ، وبالتالي وثيقة غير قابلة للتشفير من قبل Bob (لأنه سيتوقع مفتاحًا مختلفًا).

حقا ، رغم أنني لست متأكدًا من أنك تهتم بهذا. إنه شيء عديم الفائدة إلى حد ما. ربما, ومع ذلك ، فأنت مهتم بالفعل تقسيم المفتاح (أو "المشاركة السرية" كما يبدو أن ويكيبيديا تسميها).

HTH. أنا لست خبيرًا بأي حال من الأحوال.

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