ما هي الطريقة الآمنة إلى حد ما لإنشاء توقيع 64 بت؟

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

سؤال

وأود أن لافتة جهاز ولدي 64 بت لتخزين توقيعي في الجهاز.يحتوي هذا الجهاز على عنوان MAC وبعض التفاصيل الأخرى (حوالي 30 بايت) يمكنني التلاعب بها لإنشاء توقيعي.

إذا أمكن، أود أن تكون الطريقة أحادية الاتجاه، حتى أتمكن من التحقق من صحة التوقيع دون معرفة كيفية إنشاء توقيع صالح.تحتوي معظم المفاتيح العامة والخاصة على هذه الميزة ولكنها تنشئ توقيعات يبلغ طولها 48 بايت (لدي 8 بايت فقط).

يعد التنفيذ في بايثون ميزة إضافية.

شكرًا

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

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

المحلول

وظائف التجزئة والتوقيعات الرقمية هي جداً أشياء مختلفة.

يعتمد حجم التوقيع الرقمي على وظيفة التجزئة الأساسية وطول المفتاح.لذا، من الناحية النظرية، يمكنك إنشاء تطبيق RSA الذي ينشئ توقيعات 64 بت، لكن هذا سيكون توقيعًا ضعيفًا للغاية.

بالنسبة لأطوال المفاتيح الأصغر، قد ترغب في إلقاء نظرة على تشفير المنحنى الإهليلجي.

يحرر: نعم، أنا متخصص في التشفير.

تحرير 2: ومع ذلك، إذا كنت تحتاج فقط إلى وظيفة التجزئة، فيمكنك النظر إلى elf64 أو RIPEMD-64 كما اقترح فرناندو ميغيليز.

تحرير 3: عند إجراء العمليات الحسابية، ستحتاج إلى استخدام مفاتيح 16 بت في ECC لإنشاء توقيعات 64 بت، وهو أمر ضعيف جدًا.بالنسبة لـ ECC، أي شيء أقل من 128 بت يمكن اعتباره ضعيفًا.بالنسبة لـ RSA، هذا هو 1024 بت.

نصائح أخرى

وأساسا ما تحتاجه هو 64 بت التشفير تجزئة funcion ، مثل Ripemd- 64 أو قزم-64. ثم قمت بتشفير التجزئة مع طريقة التشفير وكنت حصلت على توقيع 64 بت. والمشكلة الوحيدة هي، من وجهة نظر غير cryptoanalyst، أن 64 بت يقدم توقيع أضعف بكثير من نموذجي التجزئة على 128 بت. ومع ذلك فإنه لا يزال من الممكن تكون مناسبة للتطبيق الخاص بك.

هل يمكن أن مجرد استخدام دالة التجزئة القياسية (MD5 SHA1) واستخدام فقط في أول أو آخر 30 بايت.
عدد البايتات يولد وظيفة التجزئة هو إجراء تعسفي إلى حد ما - أنه من الواضح أنه مقايضة بين الفضاء والتفرد. لا يوجد شيء خاص حول الأدني لتوقيع يستخدمونها.

وتحرير - آسف أنا أفكر أن MD5 عاد 32bytes- ذلك actaulyl عوائد 16bytes لكن هو مكتوب Ussually لكما ارقام 32hex

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