بالنظر إلى المفتاح الخاص، هل من الممكن استخلاص مفتاحه العام؟

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

سؤال

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

[يحرر]

ما جعلني أكثر إرباكًا هو أنه لا يمكن إجراء تسلسل لمفتاح RSA إلى XML باستخدامه فقط المفتاح الخاص (باستخدام فئة .NET RSACryptoServiceProvider).لست متأكدا ما إذا كان هذا القيد مقصود أم لا!

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

المحلول

ذلك يعتمد على نظام التشفير.

في آر إس إيه, ، لدينا (نقلا عن ويكيبيديا):

يتكون المفتاح العام من المعامل n والأس العام (أو التشفير) e.يتكون المفتاح الخاص من المعامل N و Private (أو فك التشفير) D التي يجب أن تبقى سرية.

الآن إذا كان لدينا n وd (المفتاح الخاص)، فلن ينقصنا سوى e للمفتاح العام.لكن e غالبًا ما يكون صغيرًا إلى حد ما (أقل من ثلاثة أرقام)، أو حتى ثابتًا (القيمة المشتركة هي 65537).في هذه الحالات، يعد الحصول على المفتاح العام أمرًا تافهًا.

ل منحنى ديفي هيلمان الإهليلجي, ، المفتاح الخاص هو d، والمفتاح العام dG (مع G أيضًا عام)، لذا فهو تافه أيضًا.

نصائح أخرى

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

على سبيل المثال، في RSA، يمكنك إنشاء مفتاح عام من المفتاح الخاص باستخدام:

openssl rsa -in private.pem -pubout -out public.pem

ما هو مضلل هو المصطلح:يشير "المفتاح الخاص" إلى مفهومين مختلفين سواء كنت تتحدث عن النظرية، أو سواء كنت تتحدث عن التنفيذ العملي:

  • ال نظري المفتاح الخاص هو الزوجين (د، ن) التي تشترك في علاقة تناظرية (رياضية) مثالية مع (ه، ن).إذا كنت تقارن هذه، فلا يمكن حساب أحدهما من الآخر.
  • ال عملي يشير المفتاح الخاص (كما هو الحال في تطبيق openssl على سبيل المثال)، إلى ملف يحتوي على (د، ن) ولكن أيضًا العديد من القيم الوسيطة المهمة لغرض سرعة فك التشفير.بالإضافة إلى ذلك، الجزء "غير المعروف" نظريًا من المفتاح العام ه غالبًا ما يتم تثبيته على القيم المشتركة عن طريق الاتفاقية (أي 0x10001 بشكل افتراضي في opensl وعلى الرغم من إمكانية تغييره، فمن المستحسن الالتزام به فقط قيم محددة للغاية).لذلك نستنتج المفتاح العام (ه، ن) من المفتاح الخاص أمر تافه لأكثر من سبب.

وهذا يعتمد على خوارزمية، وماذا تقصد ب "المفتاح الخاص".

غالبا ما تخزن

ومفاتيح RSA خاصة في شكلها "مبرهنة الباقي الصيني". على سبيل المثال، وهيكل RSAPrivateKey المحددة في PKCS # 1 وإعادة استخدامها من قبل العديد من المعايير التشفير أخرى تأخذ هذا الشكل. يتضمن هذا النموذج رقمين سرية غالبا ما يرمز p وq، الذي يحسب totient. مع totient والأس الخاص، يتم احتساب الأس العام بسرعة.

في أي حال، فإن معظم أزواج مفتاح RSA استخدام 65537 كما الأس العام، وقامت معامل دائما كجزء من المفتاح الخاص.

في أي نظام التشفير بالمفتاح العمومي المفتاح العمومي يرتبط رياضيا إلى المفتاح الخاص. الأمر في غاية البساطة.

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

وليس من الممكن أن تذهب في الاتجاه الآخر. إعطاء المفتاح العمومي أنه ليس من السهل لاشتقاق المفتاح الخاص. هذا هو السبب في أننا يمكن أن تشترك بأمان مفاتيح العامة مع أشخاص آخرين. إذا كان لديك الوقت دورات / وحدة المعالجة المركزية بما فيه الكفاية يمكن أن القوة الغاشمة ولكن من المحتمل أن يكون أسهل لانتظار الهجوم الرياضي على المفتاح.

لحالة معينة من المفتوح و سه-كجن و نعم يمكنك : ل

<اقتباس فقرة>   

وسه-كجن -y

     

وهذا الخيار سوف قراءة ملف تنسيق المفتوح الخاص وطباعة المفتاح العمومي للالمعياري.


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

وهناك سوء فهم على ما هو المفتاح الخاص. المفتاح الخاص هو مجرد (د، ن) زوج، وبالنظر فحسب، فإنه من غير الممكن لتوليد المفتاح العمومي من ذلك إلا إذا كنت يمكن أن نفترض أن الأس العام هو 65537، كما هو الحال في جميع مفاتيح RSA تقريبا.

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

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

ونعم مع إمكانية الوصول إلى المفتاح الخاص يمكن أن تتولد المفتاح العمومي

والمفتاح العمومي هو معامل avo N (والأس البريد العام، عادة 65537)، ويرد المفتاح الخاص من قبل اثنين يعبي ع، ف (والخاص الأس د، وأحيانا أيضا أجزاء CRT d_p، d_q لتسريع) أساسا لديك N = الانفصالى والبريد <م> د = 1 وزارة الدفاع ((ف 1) (ف 1))، يمكنك أيضا بحساب d_p وd_q باستخدام CRT نظرا المفتاح الخاص، وحساب معامل المفتاح العام هو "مملة" الضرب والأس العام في مواصفات أو حسابها باستخدام خوارزمية إقليدس طويلة إذا كان البريد العادي يست جيدة بما فيه الكفاية. نظرا المفتاح العمومي، حساب المفتاح الخاص يتطلب إما إيجاد د (مشكلة RSA) أو ص، ف (العوملة، انظر غربال حقل رقم للحصول على أفضل البرودة؛ الصقيع للقيام بذلك). وتظهر هذه المشاكل ليكون معادلا في ظل ظروف معقولة [كسر RSA بشكل عام ما يعادل العوملة، D. أجروال وU. مورير، 2008]

ومن الممكن نظريا ولكن لمفاتيح كبيرة يمكن تحقيقها حاسوبيا.

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