489 / 691PBKDF2

PBKDF2

اشتقاق البذرة في ⁦BIP39⁩

يحوّل ⁦PBKDF2⁩ النص المدخل والملح إلى مفتاح مشتق بحسابات متكررة. يستخدمه ⁦BIP39⁩ لتحويل عبارة الكلمات و⁦passphrase⁩ إلى بذرة؛ ولا يولّد عشوائية جديدة.

⁦Password-Based Key Derivation Function 2⁩ دالة اشتقاق حتمية بمعلمات تشمل المدخل والملح وعدد التكرارات والدالة شبه العشوائية وطول الناتج. يحدد ⁦BIP39⁩ إعدادًا معينًا من ⁦PBKDF2-HMAC-SHA512⁩، وليس جميع استخدامات ⁦PBKDF2⁩ الممكنة.

المدخل المسمّى ⁦password⁩ هو عبارة الكلمات بصيغة ⁦UTF-8 NFKD⁩. الملح هو ⁦mnemonic + passphrase⁩ وبصيغة ⁦UTF-8 NFKD⁩ أيضًا؛ وتُضاف قيمة فارغة عند غياب ⁦passphrase⁩. يتطلب ⁦BIP39⁩ استخدام ⁦HMAC-SHA512⁩ و⁦2048⁩ تكرارًا وناتجًا بطول ⁦64⁩ بايت، أي ⁦512⁩ بت. [BIP39 — Mnemonic generation and seed conversion]

ينشئ ⁦PBKDF2⁩ أول ناتج وسيط من مدخل كلمة المرور والملح وفهرس كتلة الناتج. ثم يحسب النتائج الوسيطة التالية بتطبيق الدالة شبه العشوائية نفسها على الناتج السابق، ويجمع القيم بعملية ⁦XOR⁩. مع ⁦HMAC-SHA512⁩ يبلغ طول الكتلة ⁦64⁩ بايت، لذا يحتاج ⁦BIP39⁩ كتلة واحدة. لا يكفي تطبيق ⁦SHA-512⁩ على النص ⁦2048⁩ مرة ببساطة. [RFC8018 — PBKDF2 construction] [BIP39 — Mnemonic generation and seed conversion]

المدخلات المطبّعة والمعلمات المتطابقة تنتج البذرة نفسها. زيادة ⁦2048⁩ تكرارًا اعتباطيًا أو تغيير الدالة أثناء الاستعادة لا يحسّن أمان المحفظة الموجودة؛ إذ لا يعود الناتج مطابقًا لاشتقاق ⁦BIP39⁩ المحدد. وترجمة الكلمات إلى قائمة أخرى ليست تعديلًا محايدًا أيضًا. [BIP39 — Mnemonic generation and seed conversion]

تزيد التكرارات العمل لكل محاولة، لكنها لا تضيف عشوائية سرية مستقلة. يستطيع مهاجم يملك الكلمات وبيانات مقارنة المحفظة تجربة ⁦passphrase⁩ ضعيفة دون اتصال. لذلك لا يعني الناتج بطول ⁦512⁩ بت حماية تعادل إنتروبيا من ⁦512⁩ بت، والعدد ⁦2048⁩ ليس توصية عامة للأنظمة الجديدة. [RFC8018 — PBKDF2 construction] [BIP39 — Mnemonic generation and seed conversion]

يساعد ⁦BIP39 checksum⁩ على اكتشاف أخطاء الكلمات قبل استخدامها. تحويل ⁦PBKDF2⁩ نفسه منفصل عن توليد العبارة وفحصها؛ ولا يثبت أن ⁦passphrase⁩ تخص المحفظة المطلوبة. يمكن بعد ذلك أن تستخدم ⁦BIP32⁩ أو طرق حتمية أخرى البذرة في خطوة لاحقة. [BIP39 — Mnemonic generation and seed conversion]

تحدد متجهات ⁦BIP39⁩ العامة الإنتروبيا والكلمات والبذرة المتوقعة مع ⁦passphrase⁩ الاختبارية ⁦TREZOR⁩. يجب أن يعيد التنفيذ الصحيح الناتج كاملًا ويلتزم بـ ⁦NFKD⁩. لا يجوز أن تكون هذه المدخلات المعروفة نسخة شخصية لأموال؛ كما أن تطابق الاختبار وحده لا يثبت أمان التطبيق كله. [BIP39 — Mnemonic generation and seed conversion]

للحصول على صورة أوضح، اقرأ هذا المدخل مع BIP 39, BIP39 passphrase, Seed Generation, HD Wallet. تشير إلى هذا المدخل أيضًا BIP39 passphrase.

DOC · 001BIP39 — Mnemonic generation and seed conversionمواصفة ↗DOC · 002RFC8018 — PBKDF2 constructionمواصفة ↗
المصادر أولًا · ليست نصيحة استثمارية