سؤال

لقد كنت أعمل على نظام يستخدم التشفير غير المتماثل في عدد كبير من الملفات. أنا أستخدم حاليًا RSA مع مفاتيح 4096 بت لتشفير مفتاح AES الذي تم إنشاؤه عشوائيًا بحجم 256 بت لكل ملف ، لكن الأداء غير موجود إلى حد ما ، حيث أن عملية مطلوبة هي المسح الضوئي من خلال جميع الملفات (الرقم المقدر عندما يكون النظام في النظام الاستخدام هو حوالي 10000) وتحديد أي منها يمكن فك تشفيره باستخدام مفتاح خاص معين. على الرغم من أنني لا أتوقع أن تكون هذه العملية فورية ، إلا أنها تستغرق وقتًا طويلاً في الوقت الحالي (~ 2 ملف تتم معالجته في الثانية). فكرت في تقليل طول المفتاح ، ولكن حتى أخذها إلى 2048 بت لا توفر مستوى الأداء الذي أحتاجه. 512 بت من شأنها أن تقطعها ، ولكن يمكن الآن تكسير المفاتيح بشكل غير وارد.

هل يمكن لأي شخص أن يوجهني في اتجاه نظام أسرع ولكن بقوة تشفير مماثلة؟ يجب تنفيذها عبر موفر Java JCA (مثل شيء مثل Bouncycastle) من أجل توصيل طلبي الحالي بدقة. أعلم أن Castle Bouncy تدعم El Gamal ، لكن لا يمكنني العثور على أي تفاصيل حول مدى قوة هذه الخوارزمية ، أو إذا كان من المحتمل أن تكون أسرع من RSA. أسمع أيضًا عن أنظمة المنحنى الإهليلجي التي تحتاج فقط إلى مفاتيح قصيرة نسبيًا (384 بت أو ما شابه) ، لكن لا تعرف مكان العثور على أحد هذه الأشياء.

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

المحلول

لسؤالك كما هو موضح ، جرب Diffie-Hellman على المنحنيات الإهليلجية ، والمعروفة أيضًا باسم "ECDH". يعد تقدير الأمن أمرًا صعبًا بعض الشيء بمجرد أن نتعامل مع الأحجام التي لا يمكن تصدعها بالتكنولوجيا الحالية ، لأن هذا يعتمد على كيفية المراهنة على التطورات التكنولوجية المستقبلية. ومع ذلك ، يمكن للمرء أن يقول أن ECDH على منحنى P-256 يوفر "128 بت" من الأمان ، وهو مستوى مشابه لما ستحصل عليه من RSA 2048 بت. هذا المستوى كافٍ على نطاق واسع لجميع الاستخدامات الحالية ، أو ، أو القول بشكل أكثر ملاءمة ، إذا لم يكن P-256 كافياً بالنسبة لك ، فإن مشكلتك لها احتياجات خاصة جدًا ومن المحتمل أن تكون قوة التشفير أقل مخاوفك.

على جهاز الكمبيوتر الخاص بي (وضع INTEL Core2 ، 64 بت ، 64 بت ، تشغيل Linux) ، يفتح مطالبات أن تتجاوز حوالي 900 حالة ECDH في الثانية ، باستخدام نواة واحدة.

تعديل: لتقدير الأمن الرئيسي ، اعتمادًا على الطول ، للعديد من الخوارزميات ، انظر هذا الموقع.

نصائح أخرى

لماذا لا تحسب تجزئة قوية من كل مفتاح ، ثم قم بتخزين ذلك في كل اسم ملف؟ بعد ذلك ، بالنظر إلى مفتاح تحتاج إلى مطابقة جميع الملفات ، يمكنك ببساطة تجزئة المفتاح والبحث عنه في الجدول.

سأذهب للحصول على نهج يتطلب عمليات RSA أقل. SSL/TLS ، على الرغم من أنها تستخدم RSA وما إلى ذلك لتشفير مفاتيح AES ETC ، لا تستخدم AEs للبيانات ببساطة لأنها عملية باهظة الثمن في أحجام مفاتيح كبيرة بما فيه الكفاية للأمان ليتم القيام به على حزمة لكل حزمة ، أو في حالتك ، لكل ملف.

نظام مفتاح عام آخر هو: http://en.wikipedia.org/wiki/elgamal_encryption. من الناحية الأمنية ، أعتقد أنه لم يتم كسره بعد ، ولكنه شخصياً وضع ثقتي في RSA في الوقت الحالي. لا أعرف ما إذا كانت هناك أي خوارزميات تشفير منحنى إهليلجي متوفرة حاليًا - بمعنى أنني أعلم أنه يتم بحثها ولكنهم أفهم أنها قد لا تكون مستعدة للاستخدام في الإنتاج وسمعت أن هناك مشاكل في براءات الاختراع.

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